pax_global_header00006660000000000000000000000064144415424720014521gustar00rootroot0000000000000052 comment=d811f73c02a1cc8df7bf96e9e123e3b3e7ddfff4 ipv6calc-4.1.0/000077500000000000000000000000001444154247200132325ustar00rootroot00000000000000ipv6calc-4.1.0/.gitattributes000066400000000000000000000003171444154247200161260ustar00rootroot00000000000000README* ident ChangeLog ident CHANGES ident COPYING ident CREDITS ident INSTALLING ident TODO ident USAGE ident VERSION* ident Makefile ident *.c ident *.h ident *.lyx ident *.sh ident *.in ident *.pl ident ipv6calc-4.1.0/.github/000077500000000000000000000000001444154247200145725ustar00rootroot00000000000000ipv6calc-4.1.0/.github/FUNDING.yml000066400000000000000000000000751444154247200164110ustar00rootroot00000000000000custom: https://paypal.me/PeterBieringer liberapay: ~1780160 ipv6calc-4.1.0/.github/workflows/000077500000000000000000000000001444154247200166275ustar00rootroot00000000000000ipv6calc-4.1.0/.github/workflows/codeql-analysis.yml000066400000000000000000000044361444154247200224510ustar00rootroot00000000000000# For most projects, this workflow file will not need changing; you simply need # to commit it to your repository. # # You may wish to alter this file to override the set of languages analyzed, # or to provide custom queries or build logic. # # ******** NOTE ******** # We have attempted to detect the languages in your repository. Please check # the `language` matrix defined below to confirm you have the correct set of # supported CodeQL languages. # name: "CodeQL" on: push: branches: [ master ] pull_request: # The branches below must be a subset of the branches above branches: [ master ] schedule: - cron: '32 9 * * 4' jobs: analyze: name: Analyze runs-on: ubuntu-latest permissions: actions: read contents: read security-events: write strategy: fail-fast: false matrix: language: [ 'cpp' ] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] # Learn more about CodeQL language support at https://git.io/codeql-language-support steps: - name: Checkout repository uses: actions/checkout@v2 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v1 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. # By default, queries listed here will override any specified in a config file. # Prefix the list here with "+" to use these queries and those in the config file. # queries: ./path/to/local/query, your-org/your-repo/queries@main # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild uses: github/codeql-action/autobuild@v1 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines # and modify them (or add more) to build your code if your project # uses a compiled language #- run: | # make bootstrap # make release - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1 ipv6calc-4.1.0/.gitignore000066400000000000000000000016061444154247200152250ustar00rootroot00000000000000*.o *.so *.so.* *.a *.la *.lo *.slo *~ Makefile autogen-all-variants.status autom4te.cache/ config.h config.log config.status databases/lib/Makefile getopt/Makefile ipv6calc/Makefile ipv6calcweb/Makefile ipv6loganon/Makefile ipv6logconv/Makefile ipv6logstats/Makefile lib/Makefile man/Makefile md5/Makefile mod_ipv6calc/Makefile tools/DBIP-update.sh tools/GeoIP-update.sh tools/IP2Location-update.sh tools/Makefile tools/ipv6calc-db-update.sh ipv6calc/ipv6calc ipv6calcweb/ipv6calcweb.cgi ipv6loganon/ipv6loganon ipv6logconv/ipv6logconv ipv6logstats/ipv6logstats databases/*/*.db */.libs/* databases/ieee-iab/iab.csv databases/ieee-oui/oui.csv databases/ieee-oui28/mam.csv databases/ieee-oui36/oui36.csv databases/registries/afrinic/ databases/registries/apnic/ databases/registries/arin/ databases/registries/iana/ databases/registries/lacnic/ databases/registries/lisp/ databases/registries/ripencc/ ipv6calc-4.1.0/CHANGES000066400000000000000000000053001444154247200142230ustar00rootroot00000000000000Major Changes/Enhancements of ipv6calc 1.xx -> 2.xx ============ - add support for MaxMindDB based database files like GeoIP version 2 or db-ip.com - drop IP2Location library support < 7.0.0 0.94 -> 0.95 ============ - full IPv6 address (prefix + IID) anonymization added by selecting method "kp" e.g. 2001:0a60:11e1:9501:e876:aee4:0721:e8ac => a909:16fa:9092:23ff:a909:4941::7 - type string "iid-privacy" is replaced with "iid-random" - add support for options to specify database directories db-ip2location-dir db-geoip-dir - add support for options to specify library files (in case of dynamic linking is configured) db-ip2location-lib db-geoip-lib - add support for options to disable GeoIP and IP2Location on runtime db-ip2location-disable db-geoip-disable - ignore options for specifying files for GeoIP & IP2Location db-ip2location-ipv4 db-ip2location-ipv6 db-ip2location-default db-ip2location-ipv4-default db-ip2location-ipv6-default db-geoip-ipv4 db-geoip-ipv6 db-geoip-default db-geoip-ipv4-default db-geoip-ipv6-default - add configure options --with-ip2location-db --with-geoip-db --with-ip2location-dyn-lib --with-geoip-dyn-lib - remove configure options --with-ip2location-ipv4-default-file=file --with-ip2location-ipv6-default-file=file --with-geoip-ipv4-default-file=file --with-geoip-ipv6-default-file=file - add support for anonymization of EUI-64 addresses option --mask-iid is now deprecated and replaced by new option --mask-eui64 - anonymization/zeroize: add option to autoadjust mask to keep some type or OUI/IAB values universal/local bit will be always kept on zeroizing EUI-48/EUI-64 ipv6calc - '-A filter' is autoselected if '-E ' is given ipv6calcweb.cgi - remove support for environment values HTTP_IPV6CALCWEB_DB_IP2LOCATION_IPV4 HTTP_IPV6CALCWEB_DB_IP2LOCATION_IPV6 HTTP_IPV6CALCWEB_DB_GEOPIP_IPV4 HTTP_IPV6CALCWEB_DB_GEOPIP_IPV6 - add support for environment values HTTP_IPV6CALCWEB_DB_IP2LOCATION_DIR HTTP_IPV6CALCWEB_DB_IP2LOCATION_LIB HTTP_IPV6CALCWEB_DB_GEOPIP_DIR HTTP_IPV6CALCWEB_DB_GEOPIP_LIB - ipv6logstats is now able to create additional statistics by CountryCode & AS Number (in case of related database support) DateTime and Unixtime is now displayed on generated statistics - ipv6calc/showinfo IP2LOCATION_DATABASE_INFO_IPV4 (replaced) IP2LOCATION_DATABASE_INFO_IPV6 (replaced) IP2LOCATION_DATABASE_INFO (reintroduced) GEOIP_DATABASE_INFO_IPV4 (replaced) GEOIP_DATABASE_INFO_IPV6 (replaced) GEOIP_DATABASE_INFO (reintroduced) IPV6CALC_OUTPUT_VERSION=7 0.93 -> 0.94 ============ - add OUI-36 database support ipv6calc-4.1.0/COPYING000066400000000000000000000431321444154247200142700ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the 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 Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. ipv6calc-4.1.0/CREDITS000066400000000000000000000043011444154247200142500ustar00rootroot00000000000000Credits to * Ville Skyttä for various spelling and grammar fixes * Paul Streander for testing db-ip.com "full" database support * Nikoli for supplying compilation compatibility patches * Luca Bruno for supplying security patches * Raphaël Assénat for contributing the 6rd extension * Evan Hunt & Dave Täht for bug hunting on MIPS platform * Pedro LaWwrench for bug reporting * JC Janos for bug reporting * Niko Tyni - clean reimplementation of RFC 1924 conversion code - some help on configure.in - contribution of patches and man files * Eric S. Raymond - contribution of patches for man page * Authors of ircd for RFC 1884 decompress algorithms * Authors of net-tools (recycling of some code) * Authors of Linux kernel (recycling of some code) * Arkadiusz Miskiewicz - for previously used RFC 1884 compress example code - for hints how to use AC_CHECK_* in configure.in * Jun-ichiro itojun Hagino for previously used RFC 1884 compress example code * Horacio J. Peña for previously used RFC 1884 compress example code * Hubert Feyrer for BSD enabling patches, NetBSD testbed and several help * Pekka Savola for bug reporting * YOSHIFUJI Hideaki for MD5 hints * Vladimir Kotal for getopt patch for compiling on OpenBSD * Peter Poeml for bug reporting * Rolf Holtsmark for bug reporting * for contributing man pages * Radek Vokal some fixes * Simon Arlott patch to extend IPv6 TLA assignment * Brad Allen/sonic.net for bug reporting * VMware, in which my OpenBSD and FreeBSD installation is running * Peter A. Darnell and Philip E. Margolis C - A software engineering approach [one of the best books about programming language C around the world, forget Kerningham/Ritchie, use this book instead like me for over 17 years ] Peter Bieringer, 2022-01-27 ipv6calc-4.1.0/ChangeLog000066400000000000000000002346431444154247200150200ustar00rootroot00000000000000/* * $Id: c8ef94cd4ca07441a5454e5b08fa5c23ee80a63c $ */ Info: PB = Peter Bieringer NT = Niko Tyni ESR = Eric S. Raymond PV = Peter Volkov AGP = Anthony G. Basile VZ = Vadim Zhukow https://github.com/grayedhttps://github.com/grayed -------------------------------------------------------------------- 20230612/PB: tag version 4.1.0 20230609/PB: databases/lib/libipv6calc_db_wrapper_IP2Location.c: adjustments depending on IP2Location version databases/lib/libipv6calc_db_wrapper.c: adjustments depending on IP2Location version 20230608/PB: databases/lib/libipv6calc_db_wrapper_IP2Location.[h|c]: add support for DB-26 databases/lib/libipv6calc_db_wrapper.c: extension for ASN from IP2Location (DB-26) databases/lib/libipv6calc_db_wrapper.h: minor bugfix configure[.in]: add support for -Wno-deprecated-declarations (openssl/md5 workaround) autogen-all-variants.sh: disable static build for --enable-openssl-md5 autogen.sh: remove -Wl,--as-needed from LDFLAGS as causing issues with -S internal databases: update 20230606/PB: tools/IP2Location-update.sh.in: add option -S to download a specific sample file 20230112/PB: ipv6calc/ipv6calc.c: bugfix related to ACTION_addr_to_countrycode and pipe mode 20221204/PB: internal databases: update tag version 4.0.2 20220730/PB: databases/tools/create_ieee_headerfile.pl: extend hints in case of entries have to be extended in lib/libieee.h internal databases: update 20220127/PB: tag version 4.0.1 20220125/PB: databases/lib/libipv6calc_db_wrapper_External.c: bugfix related to db_ptr_cache internal databases: update 20211114/PB: various spelling and grammar fixes (credits to Ville Skyttä) 20211020/PB: ipv6calcweb/ipv6calcweb.cgi.in: change geonames URL to https 20211019/PB: ipv6calcweb/ipv6calcweb.cgi.in: several cosmetic updates and fixes databases/ieee*/Makefile: alignments related to libieee.[ch] changes internal databases: update tag version 4.0.0 20211003/PB: tools/ipv6calc-create-update-ipset.sh: (add) 20210930/PB: configure[.in]: add support for OpenSSL EVP MD5 legacy (OpenSSL 1.0.x) lib/librfc3041.c: add support for OpenSSL EVP MD5 legacy (OpenSSL 1.0.x) configure[.in]: try to resolve BerkeleyDB library version required for static builds 20210927/PB: ipv6calc/ipv6calc.c(+dependent files): add option '--print-ipset ' to be honored by action "dbdump" 20210924/PB: ipv6calc/ipv6calc.c: improve error message in case input and output type is given but no action autodetected ipv6calc/ipv6calc.c: new output format ip6to4 for IPv4 addresses (also supported on action "dbdump") 20210921/PB: *.c/*.h: complete reorg of static includes in *.h to avoid private copies where possible 20210919/PB: internal databases: update lib/libipaddr.c: copy also flags/prefixlengths lib/ipv6calctypes.h ipv6calc/ipv6calc.c databases/lib/libipv6calc_db_wrapper_External.[h,c] databases/lib/libipv6calc_db_wrapper.[h,c] ipv6calc/test_ipv6calc.sh lib/ipv6calchelp.c: add new action -A dbdump 20210918/PB: lib/libipv6addr.c: ipv6addrstruct_to_uncompaddrprefix: print prefix length if given and not suppressed by option lib/librfc3056.c,lib/ipv6calchelp.c,ipv6calc/test_ipv6calc.sh: action conv6to4 keeps (and mask) prefix length if not suppressed by option 20210916/PB: configure[.in]: add support for OpenSSL EVP MD5 (with precedence), add additional MD5 implementation selection options lib/librfc3041.c: add support for OpenSSL EVP MD5 lib/ipv6calchelp.c: display linked MD5 implementation */Makefile[.in]: fixes related to static builds autogen-all-variants.sh: add additional variants for OpenSSL legacy and EVP MD5 configure[.in]: define CFLAG_EXTRAS=-fPIC to fix linker issues since use of regex was introduced 20210809/PB: ipv6calc/ipv6calc.c ipv6calc/ipv6calcoptions_local.h ipv6calc/test_ipv6calc.sh lib/ipv6calchelp.c lib/ipv6calctypes.h lib/libipv4addr.c: add support for output of IPv4 in dot separated octal and also autodetect/parse such input 20210801/PB: tools/DBIP-update.sh.in: add support for deleting older files (-C ) 20210714/PB: tag version 3.2.0 20210712/PB: internal databases: update 20210708/PB: lib/librfc1884.c ipv6calc/test_ipv6calc.sh ipv6calc/test_scenarios.sh ipv6loganon/test_ipv6loganon.sh: output format fix for compressed IPv6 addresses (https://github.com/pbiering/ipv6calc/issues/28) 20210529/PB: databases/lib/libipv6calc_db_wrapper_IP2Location.c|h: add support for blacklisting IP2Location DB25 files < 8.4.0 databases/lib/libipv6calc_db_wrapper_IP2Location.c: fix broken dedicated db selection option Bugfixes related to "pull/20" (https://github.com/pbiering/ipv6calc/issues/25) 20210528/PB: replace NI_MAXHOST with IPV6CALC_STRING_MAX or PATH_MAX where applicable (https://github.com/pbiering/ipv6calc/issues/24) tools/IP2Location-update.sh[.in]: add support for 'token' authentication databases/lib/libipv6calc_db_wrapper_IP2Location.h: add initial support for IP2Location DB25 files autogen-support.sh: add IP2Location 8.3.0 8.3.1 8.4.0 Bugfixes related to "pull/20" (https://github.com/pbiering/ipv6calc/issues/25) 20210522/PB: Bugfixes related to "pull/20" (https://github.com/pbiering/ipv6calc/issues/25) tag version 3.1.1 20210518/PB: Improve revnibble handling (TLD+NLD given given -> prefix, missing -> suffix), add related online help tag version 3.1.0 20210516/VZ: Fix tests on OpenBSD (https://github.com/pbiering/ipv6calc/pull/21) 20210516/PB: Improve autodetection of nibble strings, add additional test cases, triggered by "pull/19" Bugfixes related to "pull/20" internal databases: update 20210515/VZ: Shell scripts refinement (https://github.com/pbiering/ipv6calc/pull/20) add support for compressed IPv4 addresses, like 10/8 (https://github.com/pbiering/ipv6calc/pull/19) 20210116/PB: all */test_*.sh: enforce use of "bash" (FreeBSD regression test result) ipv6loganon/test_ipv6loganon.sh: fix for "sed" which is not supporting \W (FreeBSD regression test result) databases/lib/libipv6calc_db_wrapper.c databases/lib/libipv6calc_db_wrapper_MMDB.c: use different way to access union members in in6_addr (FreeBSD regression test result) ipv6calcweb/test_ipv6calcweb_form.sh ipv6calcweb/test_ipv6calcweb.sh: use different way of calling cgi with optional -T where not causing issues (FreeBSD regression test result) ipv6calcweb/create_ipv6calcweb-cgi.sh: remove -T on FreeBSD (FreeBSD regression test result) ipv6calcweb/test_ipv6calcweb.sh: skip AntiDDoS test on FreeBSD (FreeBSD regression test result) ipv6calcweb/Makefile.in: remove explicit make of ipv6calc (FreeBSD regression test result) autogen.sh-support.sh: autodetect GNU make if available (FreeBSD regression test result) autogen.sh: add additional 'hint' regarding includes/libs in case of "clang" is used (FreeBSD regression test result) autogen-all-variants.sh: skip bundled getopt/md5 + 32-bit tests (FreeBSD regression test result) tag version 3.0.2 20210115/PB: configure[.in]: add missing predefine ENABLE_BUNDLED_GETOPT=0 ENABLE_BUNDLED_MD5=0 20210113/PB: ipv6calc/showinfo.c: fix for compilers < C99 20210113/PB: internal databases: update lib/libieee.h: add 6 new OUI28 prefixes configure[.in]: remove obsolete and incomplete function checks tag version 3.0.1 20210110/PB: ipv6calc/showinfo.c: add support for wildcard in select token ipv6loganon/ipv6loganon.c ipv6calc/ipv6calc.c: autodetect support for ANON_ANONYMIZE ipv6calc/ipv6calc.c: do not enforce output type for revnibbles and ipv6literal in case of showinfo ipv6calc/test_scenarios.sh: add test cases for wildcard support in select token ipv6calc/test_ipv6calc_anonymization.sh: take use of wildcard support in select token config.h.in databases/lib/libipv6calc_db_wrapper.c configure: don't check/use 'memcmp' lib/libipv6addr.c: fix missing settype for extracted IPv4 address 20210109/PB: databases/lib/libipv6calc_db_wrapper_BuiltIn.c databases/lib/libipv6calc_db_wrapper.c: fixes for case of all internal databases are disabled configure configure.in: fix typo and builtin default, add disable-builtin option (catch-all) autogen.sh: add test case for disabling all internal databases ipv6calc/test_ipv6calc_anonymization.sh: skip standard anonymization tests if not supported ipv6calc/ipv6calc.c: disable standard anonymization feature if builtin database is not enabled autogen-all-variants.sh: add additional variants 20210108/PB: autogen.sh: add test case for gcc -Os lib/ipv6calctypes.h lib/libipv4addr.c lib/libipv6addr.c: fix 'maybe-uninitialized' issue found by gcc -Os 20201108/PB: tag version 3.0.0 20201107/PB: internal databases: update 20201019/PB: Drop support of GeoIP(legacy) and db-ip.com(BerkeleyDB): README README.DBIP README.GeoIP autogen.sh config.h.in configure databases/lib/Makefile.in databases/lib/libipv6calc_db_wrapper.c doc/ipv6calc.[lyx|sgml|xml|html] ipv6calc/Makefile.in ipv6calc/ipv6calc.c ipv6calc/showinfo.c ipv6loganon/Makefile.in ipv6logconv/Makefile.in ipv6logstats/Makefile.in ipv6logstats/ipv6logstats.c lib/Makefile.in lib/ipv6calccommands.h lib/ipv6calchelp.c lib/ipv6calcoptions.c lib/ipv6calcoptions_common.h ipv6calcweb/ipv6calcweb.cgi.in mod_ipv6calc/Makefile.in mod_ipv6calc/ipv6calc.conf mod_ipv6calc/test_mod_ipv6calc.sh autogen-all-variants.sh: drop also support of EOL IP2Location library version contrib/ipv6calc.spec[.in]: sync also with FedoraProject version databases/lib/libipv6calc_db_wrapper_DBIP.[c|h]: deleted databases/lib/libipv6calc_db_wrapper_GeoIP.[c|h]: deleted external-fallback/GeoIP/*: deleted external-fallback/IP2Location/*: deleted tools/DBIP-update.sh.in: fix database directory tools/GeoIP-update.sh.in: fix database directory databases/lib/libipv6calc_db_wrapper_IP2Location.c: remove support of EOL IP2Location library version, adjust for 8.2.0 README.DBIP2: add additional hints internal databases: update 20200910/PB: mod_ipv6calc/test_mod_ipv6calc.sh: add additional test cases for new config/environment options mod_ipv6calc/ipv6calc.conf: add info about new config/environment/debug options mod_ipv6calc/Makefile[.in]: add additional test cases for new config/environment options mod_ipv6calc/mod_ipv6calc.c: add new debug option IPV6CALC_DEBUG_SHOW_ENVIRONMENT, add support for new config/environment options 20200908/PB: ipv6calcweb/ipv6calcweb.conf: unset all possible headers related to supported environment variables to avoid unexpected preset via extra headers in request mod_ipv6calc/ipv6calc.conf: disable legacy databases GeoIP(v1) and DBIP(Berkeley) by default databases/lib/libipv6calc_db_wrapper_External.c: stdout->stderr bugfixes, remove redundant #ifdef mod_ipv6calc/mod_ipv6calc.c: add new debug option IPV6CALC_DEBUG_SHOW_CLIENT_IP 20200905/PB: databases/lib/libipv6calc_db_wrapper_External.c: remove unused function, do not close database in case an error is found, log extended information instead, fix variable handling for strtok ipv6calc/test_scenarios.sh: some fixes related to database updates 20200904/PB: lib/libipv6addr.c: extract ASN from anonymized included IPv4 address in IID ipv6calcweb/ipv6calcweb.cgi[.in]: HTTP_IPV6CALCWEB_ANTIDOS_PROCMAX: activate test only if proc_max != 0 (solve "make test" issue) 20200825/PB: ipv6calcweb/ipv6calcweb.cgi[.in]: HTTP_IPV6CALCWEB_ANTIDOS_PROCMAX default 0 and activate test only if proc_max > 0 to avoid SELinux issues (until a better solution is found) 20200824/PB: tools/DBIP-update.sh[.in]: honor also IPV6CALC_DB_DBIP2_DIR tools/GeoIP-update.sh[.in]: honor also IPV6CALC_DB_GEOIP2_DIR, remove legacy no-longer-working download mode, improve verbose mode tools/IP2Location-update.sh[.in]: honor also IPV6CALC_DB_IP2LOCATION_DIR, add verbose option, mask password in verbose mode tools/ipv6calc-db-update.sh[.in]: honor also IPV6CALC_DB_EXTERNAL_DIR lib/ipv6calchelp.c: add hint about predefined long options from environment, fix missing catch for db-prio regarding DBIP2 and GEOIP2 20200822/PB: spec: add requirement "unzip" (for IP2Location-update.sh) tools/IP2Location-update.sh: check for existing "unzip" tools/ipv6calc-db-update.sh[.in]: fix broken options -D|h|? 20200720/PB: databases: update lib/libipv4addr.h lib/libipv4addr.c: fix not working --no-prefixlength, add support maskprefix/suffix lib/ipv6calctypes.h: add support maskprefix/suffix, forceprefix length ipv6calc/ipv6calc.c: add support maskprefix/suffix 20200718/PB: ipv6calc/ipv6calc.c,ipv6calc/ipv6calcoptions_local.h,lib/librfc1884.c: fix not working --forceprefix / --no-prefixlength 20200621/PB: databases: update databases/tools/create_ieee_headerfile.pl: minor improvement contrib/ipv6calc.spec[.in]: cover 2 potential ldconfig locations 20200512/PB: tools/ipv6calc-update-registries.sh: adjust LISP URL (website moved) 20200124/PB: ipv6logconv/ipv6logconv.{h,c}: fix multiple definition of 'cache_lru_limit' 20191209/PB: ipv6calcweb/ipv6calcweb.cgi[.in]: fix missing description for GeoName ID, remove unexpected GenName links 20191012/PB: tag version 2.2.0 20191011/PB: external-fallback/IP2Location: update to 8.0.9 20191008/PB: ipv6calc/showinfo.c: fix bug regarding decoding anonymized EUI-48/64 ipv6calc/test_scenarios.sh: add additional test cases for OUI-24/28/36 20191007/PB: databases/ieee*: update, switch to CSV mode databases/tools/create_ieee_headerfile.pl: remove TXT parser, add CSV parser databases/ieee-oui/create_ieee_oui_headerfile.pl: removed, EOL lib/libeui64.c,lib/libieee.c,lib/libieee.h,lib/libmac.c: add support for oui28 20191006/PB: autogen-all-variants.sh: add permutations for --clang and --m32 {getopt,md5}/Makefile.in: remove unnecessary -s option (make clang happy), fix --m32 support lib/Makefile.in: fix --m32 support databases/lib/Makefile.in: fix --m32 support autogen.sh/configure.in: improve --m32 support configure.in: fix LDFLAGS issue (ldb) databases/lib/libipv6calc_db_wrapper_MMDB.h: add workaround for libmaxminddb header file pinning to m32 or m64 {ipv6calc,ipv6logconv,ipv6loganon,ipv6logstats}/Makefile.in: fix LDFLAGS usage Makefile.in: catch error during single update, add support for oui28 databases/tools/create_ieee_headerfile.pl: add support for oui28 databases/ieee-{iab,oui,oui36}/{Makefile,README}: fix URLs databases/ieee-oui28: new databases/lib/libipv6calc_db_wrapper_BuiltIn.{c,h}: add support for oui28 20191005/PB: databases/lib/libipv6calc_db_wrapper_{GeoIP2,DBIP2}.c: remove not necessary dependencies to db.h update documentation internal databases: update 20190923/PB: tools/DBIP-update.sh[.in]: drop CSV database support tools/DBIP-generate-db.pl: removed, no longer needed 20190908/PB: autogen.sh: small bugfix databases/lib/libipv6calc_db_wrapper_MMDB.c: make clang happy by initialization of "result_MMDB_lookup_sockaddr" configure[.in]: adjust fix --disable-mod_ipv6calc to support also EL6 databases/lib/libipv6calc_db_wrapper.c: fix for 32 bit systems ipv6calc/test_ipv6calc.sh: adjust IP to test tag version 2.1.1 20190907/PB: databases/lib/libipv6calc_db_wrapper_MMDB.c: add support for registered_country (fallback) contrib/ipv6calc.spec[.in]: add build requirement: automake make databases/lib/libipv6calc_db_wrapper.c: fix format token lib/libipv6addr.c: make clang happy by initialization of "flags" 20190607/PB: configure[.in]: fix broken logic in case of --disable-mod_ipv6calc is given 20190428/PB: databases/lib/libipv6calc_db_wrapper_IP2Location.c: cosmetic fixes + reorg 20190405/PB databases: update tag version 2.1.0 20190308/PB some files: add IP address anonymization support "keep-type-geonameid" ipv6calcweb: disable GeoIP/DBIP legacy databases by default databases: update ipv6calc: add action "address to countrycode" and for machine readable "match token suffix" 20190128/PB many files: add MaxMindDB support, internal improvements and fixes databases: update ipv6calc/showinfo: add tokensuffix filter option tag version 2.0.0 20190120/PB ipv6calc/ipv6calc.c: Merge pull request #10 from packetloop/segment-fault-when-pipe 20190109/PB tools/DBIP-update.sh[.in]: fix buggy download error handling 20181010/PB tools/DBIP-update.sh[.in]: switch to 'lite' database files tools/DBIP-generate-db.pl: accept also format of 'lite' databases without quotes 20181003/PB databases: update tag version 1.1.0 20180902/PB lib/{ipv6calccommands.h,ipv6calcoptions.c,ipv6calcoptions_common.h}: catch DB disable options even if support is not compiled in ipv6calcweb/ipv6calcweb.cgi[.in],ipv6calcweb/test_ipv6calcweb.sh: implement test for Anti-DoS protection, minor adjustments lib/libeui64.c: fix syntax checker ipv6calc/ipv6calc.c,lib/ipv6calctypes.h: add support for new extract actions of MAC/EUI64 from IPv6 address 20180901/PB databases: update 20180827/PB ipv6calcweb/ipv6calcweb.cgi[.in]: implement lightweight Anti-DoS protection 20180502/PB tools/DBIP-update.sh[.in]: keep downloaded file in case of error tools/DBIP-generate-db.pl: remove special escaping, no longer necessary 20180203/PB ipv6calc/ipv6calc.c: replace sprintf with snprintf configure[.in]: disable errors related to format-truncation databases/lib/libipv6calc_db_wrapper_DBIP.c: replace strncpy with snprintf 20170701/PB minor update regarding database update information, pack database infos into RPM 20171002/PB tools/DBIP-update.sh[.in]: add option for URL to download "full" database 20170918/PB extend configure to add extra library link flags also to mod_ipv6calc build 20170701/PB minor update regarding database update information, pack database infos into RPM 20170625/PB mod_ipv6calc/test_mod_ipv6calc.sh: add fallback path for ps binary databases: update tag version 1.0.0 20170622/PB various: cosmetics and fix help/version option handling 20170621/PB doc/*: update ipv6calc/ipv6calc.c, ipv6loganon/ipv6loganon.c, ipv6logconv/ipv6logconv.c, ipv6logstats/ipv6logstats.c: improve option handling 20170618/PB databases/lib/libipv6calc_db_wrapper_IP2Location.c: add fallback for library version display < 8.0.4 20170617/PB external-fallback/IP2Location: update to version 8.0.4 databases/lib/libipv6calc_db_wrapper.c: improve the limiter of a binary search autogen-support.sh: add GeoIP 1.6.10 1.6.11, IP2Location 8.0.4 20170616/PB databases/lib/libipv6calc_db_wrapper.c: detect loops in binary search earlier then reaching the limit 20170614/PB databases/lib/libipv6calc_db_wrapper_External.c: fix caching wrong pointers of subdbs 20170613/PB databases/lib/libipv6calc_db_wrapper.c: fix potential endless lookups in binary search in case database has holes 20170607/PB databases: update 20170228/PB ipv6calc/showinfo.h: increase output version to 11 20170227/PB various files: bugfixes tools/DBIP-generate-db.pl: add support for isp/location version of DBIP.com 20170226/PB various files: add LISP support in External database IP2Location: add enhancements for upcoming 8.0.4 20170225/PB various files: add LISP support in BuiltIn database ipv6calcweb/ipv6calcweb.cgi[.in]: add URL support for LISP and Longitude/Latitude (Openstreetmap) 20170219/PB tools/DBIP-generate-db.pl: add support for full version of DBIP.com databases/lib/libipv6calc_db_wrapper_DBIP.[ch]: add support for full version of DBIP.com databases/lib/libipv6calc_db_wrapper.c, lib/ipv6calchelp.c, lib/ipv6calccommands.h, lib/ipv6calcoptions_common.h: add support for DBIP.com DB selection options 20170205/PB databases/lib/libipv6calc_db_wrapper.c: add support for LISP internal: rename 'scope' to 'typeinfo' internal: switch from ipv*addr_gettype ipv*addr_settype test scripts: various cosmetics and add LISP tests lib/libipv6addr.[ch]: add support for anonymization of LISP addresses lib/libipv6calc.h: add LISP registry 20170127/PB lib/libipv4addr.[ch]: implement support for LISP-IPv4 lib/libipv6addr.[ch]: extend filter structure for typeinfo2 20170124/PB lib/libipv6addr.[ch]: implement support for LISP-IPv6 ipv6calc/showinfo.c: add typeinfo2 also on human readable output 20161231/PB lib/Makefile.in,databases/lib/Makefile.in: skip build of shared library if not selected by configure option (https://github.com/pbiering/ipv6calc/issues/3) 20161228/PB configure[.in]: add conditional support for -Wextra (clang) various *.c/*.h: fixes regarding -Wextra TODO: update contrib/ipv6calc.spec[.in]: add support for git commit hash tag version 0.99.2 20161224/PB databases: update databases/cc-assignment/create-cc-to-registry-list.pl: perl syntax fix databases/registries/Makefile: fix distclean 20161218/PB ipv6calc/ipv6calc.c: remove unnecessary parenthesis to fulfill -Wparentheses-equality configure[.in]: add conditional support for -Wparentheses-equality (seen on FreeBSD 12) README.BUILDING-IP2LOCATION: updates databases: update autogen.sh: add option '--clang' autogen-support.sh: add additional versions of GeoIP and IP2Location databases/lib/libipv6calc_db_wrapper_IP2Location.c: remove unnecessary parenthesis to fulfill -Wparentheses-equality 20160907/PB README,doc/ipv6calc.*: replace CVS with GitHub URL doc/ldp.dsl: original copy from TLDP databases/lib/libipv6calc_db_wrapper_IP2Location.c: add support for version 8 lib/ipv6calchelp.c: add support for IP2Location API version feature (new in version 8) TODO: update README: updates contrib/ipv6calc.spec: fix typos 20161004/PB ipv6calc: support (<|<=|>=|>) option in address filter strings ipv6calc: support =(lt|le|ge|gt)= as an alternative option in address filter strings 20161003/PB ipv6calc: add option --test_lt|gt|le|ge 20160929/PB ipv6calc: add option --test_prefix 20160902/PB databases/lib/libipv6calc_db_wrapper_IP2Location.c, lib/ipv6calchelp.c: display IP2Location library version if provided by library 20160309/ESR tools/ipv6calc-update-registries.sh: be more quiet in case called by cron 20160307/ESR man/*.8: cleaned-up, lift cleanly to XML-DocBook and HTML 20160204/PB man/ipv6logstats.8: cosmetic fixes contrib/ipv6calc.spec[.in]: add post/postun, minor fixes 20160203/PB use -Wno-unused-const-variable if available 20150905/PB databases: update, fix ieee parser ignoring " tag version 0.99.1 20150823/PB ipv6calc: autoselect IPv4 output on action 'conv6to4' if undefined ipv6calc: add new action 'convnat64' 20150818/PB databases: update 20150802/PB databases: update 20150712/PB databases/lib/libipv6calc_db_wrapper.c: implement last use cache for cc_index, as_num32, registry 20150614/PB databases/lib/libipv6calc_db_wrapper_IP2Location.c: some bugfixes regarding commercial DB file handling 20150527/PB ipv6calc: add action --6rd_extract_ipv4 20150526/PB ipv6calc: add option --6rd_prefixlength to specify a length of the 6RD prefix ipv6calc: --6rd_relay_prefix is now optional 201505xx/PB databases/lib/libipv6calc_db_wrapper.c: implementation of database priority selector 20150513/PB mod_ipv6calc: new 20150508/PB add internal library version checks for future usage lib/libipv6calc.c: fix bug in IPv4 address autodetection (e.g. 253.134.12.143/0) introduce new defines regarding program and API versions major/minor/bugfix 20150505/PB add support for IPv4/IPv6 address/mask filtering for option -E 20150504/PB display on -vv whether MD5 or GETOPT are bundled 20150503/PB fix missing prefix informational DB output on ipv6logstats add used DB info in row mode on ipv6logstats 20150502/PB add option: --db-ip2location-lite-to-sample-autoswitch-max-delta-months add option: --db-ip2location-comm-to-lite-switch-min-delta-months add option: --db-ip2location-only-type add option: --db-ip2location-allow-softlinks internal databases: updates tag version 0.99.0 20150429/PB add filter for token match and empty value on machine readable output 20150423/PB add extension for IP2Location LITE disclaimer improve quoting of machine readable ipv6calc output add additional options for controlling quoting and filter machine readable output add all database fields to non-machinereadable output 20150417/PB internal databases: updates 20150416/PB external-fallback/IP2Location: update to 7.0.1 20150415/PB autogen-support.sh: add IP2Location 7.0.1 IP2Location: add support for 7.0.1 20150414/PB autogen-support.sh: add GeoIP 1.6.2 1.6.3 1.6.4 1.6.5 20150409/PB fallback compatibility for EOL IP2Location 4.x/6.x libraries (incompatible database layout for IPv6) ipv6calcweb.cgi: add additional IP2Location output (version 10) 20150406/PB IP2Location: add support for LITE databases and improve db autodetection ipv6calc action filter: add support for CountryCode and ASN filter 20150301/PB spec file: rebase with fedora-scm spec fix VERSION (still containing rc4) retag version 0.98.0 20150220/PB doc/*: update databases: update tag version 0.98.0 20150218/PB spec file: align with fedora-scm spec tools/*: remove now by autoconf generated scripts 20150215/PB tools/ipv6calc-db-update.sh: new for dedicated database update capability tools/ipv6calc-create-registry-list-ipv4.pl: migration from database dir tools/ipv6calc-create-registry-list-ipv6.pl: migration from database dir tools/ipv6calc-registries-check-run-create.sh: migration from database dir tools/ipv6calc-update-registries.sh: migration from database dir databases: update 20150213/PB ipv6calcweb/ipv6calcweb.cgi[.in]: add support for EXTERNAL db directory ipv6calcweb/ipv6calcweb.conf: add default ACL restriction to localhost 20150211/PB databases: update 20150123/PB databases/lib/libipv6calc_db_wrapper_GeoIP|IP2Location.c: add some missing dlerror calls 20141209/PB databases: update databases/registries/update-registries.sh: add dst directory option, some review databases/ipv4-assignment/create-registry-list.pl: add src/dst directory option, some review databases/ipv6-assignment/create-registry-list.pl: add src/dst directory option, some review databases/tools/ipv6calc-db-update.sh: new 20141127/PB lib/ipv6calcoptions.c: replace improper use of the MAXINTARRAY macro configure[.in]: add -Wsizeof-array-argument to CFLAGS if supported 20141024/PB recognize RFC6666 addresses databases: update ipv6calc/showinfo.c: add EXTERNAL db information ipv6calcweb/ipv6calcweb.cgi[.in]: support EXTERNAL db information 20141011/PB switch in DBIP and External db info from hash to btree (improves db compatibility) 20141008/PB some fixes 20141007/PB adjust DBIP generation tool for new db format: DBIP-generate-db.p 20141005/PB lib/libipaddr.[ch]: new generic library introduced to simplify code 20141003/PB autogen-support.sh: add GeoIP 1.6.1 1.6.2, IP2Location 6.0.3 20140927/PB ipv6calcweb/ipv6calcweb.cgi[.in]: minor bugfix, use background colors for optional database subcolumn mode 20140926/PB ipv6calcweb/ipv6calcweb.conf: extend with ipv6calcweb/ipv6calcweb.cgi[.in]: implement optional database subcolumn mode 20140924/PB databases: update implement "External" database lookups (superseeding BuiltIn databases for IP->Registry lookups) 20140913/PB libipv6addr.c: suppress ASN / country code lookup for IPV6_NEW_ADDR_6BONE showinfo.c: add IPV6_COUNTRYCODE_SOURCE, IPV4_COUNTRYCODE_SOURCE databases: update 20140909/PB more abstract implementation of BerkeleyDB and BuiltIn db lookups 20140901/PB [databases/]lib/Makefile[.in]: support different options for so library on OSX 20140831/PB add DBIP update tools: DBIP-generate-db.pl, DBIP-update.sh implement also output of DBIP_REGION add support for DBIP to ipv6calcweb.cgi 20140830/PB implement IPv6 city code lookup for DBIP, add DBIP output to DBIP_COUNTRY_SHORT, DBIP_CITY, DBIP_DATABASE_INFO 20140829/PB implement IPv6 country code lookup for DBIP 20140828/PB further DBIP support proper detection of options with missing arguments implement IPv4 country code lookup for DBIP 20140827/PB start implementation of db-ip.com (DBIP) support 20140826/PB implement for output type 'hex' prefix/suffix/uppercase print improve online help 20140802/PB tag version 0.97.4 20140731/PB add new output item on showinfo -i: IPV6CALC_CAPABILITIES databases: update 20140729/PB add external-fallback headers for GeoIP (1.4.8) and IP2Location (6.0.2) and add following config options: --with-ip2location-headers-fallback, --with-geoip-headers-fallback (only usable with dynamic load option) 20140723/PB man/*: major review of man pages 20140722/PB harmonize online help of binaries 20140721/PB lib/libipv6addr.c: extend countrycode retrievement for included client IPv4 addresses ipv6calc/ipv6logconv/ipv6logstats/ipv6loganon: extend online help for -v 20140720/PB ipv6calc/ipv6calchelp_local.c databases/lib/libipv6calc_db_wrapper_IP2Location.h databases/lib/libipv6calc_db_wrapper_GeoIP.c databases/lib/libipv6calc_db_wrapper.h databases/lib/libipv6calc_db_wrapper.c reorg feature string handling rename feature string DB_IPV{4,6} to DB_IPV{4,6}_REG 20140719/PB configure[.in]: fix broken IP2Location dynamic library support autogen.sh: add ldd check for dynamic library support 20140718/PB lib/libeui64.c,lib/libipv4addr.c,lib/libipv6addr.c,lib/libmac.c,lib/librfc1924.c,lib/librfc2874.c: align parser error messages ipv6calc/test_ipv6calc.sh: check for proper exit code on invalid input tests 20140716/PB ipv6calc/showinfo: display CC/ASN only for global unicast addresses lib/librfc2874.c: bugfix in snprintf lib/libipv6addr.c: bugfix in libipv6addr_cc_index_by_addr 20140714/PB databases: update tag version 0.97.3 20140705/PB configure[.in]: add option --disable-compiler-warning-to-error 20140704/PB several Makefile[.in]: add support for @CFLAGS_EXTRA@ defined by configure configure[.in]: add check for compiler supporting -Werror=format-security autogen.sh: remove support of -W (now handled automatically by configure) 20140625/PB autogen-support.sh: add support for GeoIP 1.5.2/1.6.0 20140624/PB autogen-all-variants.sh: improve disabling GeoIP/IP2Location if system wide no libraries are available 20140623/PB autogen-support.sh/autogen-all-variants.sh: skip default 'make test' on GeoIP/IP2Location cross version checks 20140622/PB databases/lib/libipv6calc_db_wrapper_GeoIP.c: improve detection of maximum database types autogen-support.sh/autogen-all-variants.sh: add support for GeoIP/IP2Location cross version checks 20140621/PB autogen-support.sh/autogen-all-variants.sh: minor adjustments 20140620/PB autogen-support.sh: add download and extract feature for GeoIP/IP2Location 20140619/PB autogen-support.sh: new, centralize support for autogen.sh and autogen-all-variants.sh autogen-all-variants.sh/autogen.sh: improvements for regression tests 20140617/PB configure[.in]: improve IP2Location include/library definition support several Makefile[.in]: fixes regarding include/library definition support autogen-all-variants.sh: extend for GeoIP/IP2Location version based regression tests 20140616/PB configure[.in]: improve GeoIP include/library definition support 20140611/PB configure[.in]: apply suggested changes from AGB to fix improper use of AC_ARG_ENABLE 20140523/PB ipv6logstats/ipv6logstats.c: skip cc/asn retrievement in case of simple and column mode (major speed up) ipv6logstats/ipv6logstats.c: fix missing ALL in column mode (column 1), add option -N|--column-numbers ipv6logstats/example_gnuplot.cmd: fix to run with newer gnuplot versions, extend with registries and IID pictures tag version 0.97.2 20140520/PB databases/lib/libipv6calc_db_wrapper_GeoIP.c: fix 2x improper GeoIP_delete call which causes trouble inside GeoIP library in case of a huge amount of calls ipv6logstats,ipv6loganon,ipv6logconv: add new test for processing huge amount of addresses tag version 0.97.1 20140518/PB databases: update tag version 0.97.0 20140511/PB (many files): replace NI_MAXHOST used in various functions by size_t option 20140503/PB libipv4addr.c: improve registry retrievement for anonymized IPv4 addresses 20140426/PB Add missing support for machinereadable output for IPv6 addresses (format flag allowed, but was not supported) ipv6logstats: add support for AFRINIC, change major output version to 4 ipv6logconv: add support of anonymized addresses ipv6logstats: improve support of anonymized addresses ipv6logstats: add output version column in column format 20140425/PB Introduce new functions for countrycode,AS and registry lookup covering also anonymized addresses 20140423/PB Add dedicated support for 6bone address anonymization 20140422/PB Small bugfix in ipv6calc test scripts 20140331/PB RFC1886 printout (reverse nibbles): mask prefix only in case of no printsuffix,printstart,printend 20140225/PB databases/ipv4-assignment: change from aggregated ip/networt to first-last structure, saving some space & getting rid of use of 'aggregate' 20140223/PB apply patch from gentoo regading order of LIBS in Makefile[.in] 20140213/PB prepend /sbin to ldconfig call tag version 0.96.0 20140211/PB databases: update 20140209/PB add tool for checking database lookup code against raw database information databases: update and fix of IPv4 data prep step before aggregation (found during db lookup tests) ipv6calc: add input type "asn" for testing ASN database lookups 20140205/PB change lookup code for IPv4 registry assignment to binary sort, fix bug in binary sort for AS lookup 20140204/PB builtin IPv4/IPv6 databases: replace registry string by define, change related lookup code (saves space) databases: update 20140203/PB minor improvements in Makefiles, configure checks now for openssl/md5.h replace old debug code with macros in lib 20140202/PB move IEEE database from libieee to databases/BuiltIn apply some compilation compatibility fixes submitted by Nikoli move IPv4/IPv6 registriy database from libipv4addr.c/libipv6addr.c to databases/BuiltIn improve error catching in Makefiles add options to force bundled md5 or getopt (otherwise it depends on autodetection) configure: --enable-bundled-md5 --enable-bundled-getopt 20140201/PB add support for building with shared libraries: configure: --enable-shared autogen.sh: -S 20140115/PB databases: update ipv6calcweb/ipv6calcweb.cgi.in: add new outputformat "textkeyvalue" 20131201/PB databases/lib/libipv6calc_db_wrapper.c: fix snprintf usage (missing format string) 20131117/PB databases: update tag version 0.95.0 major changes were applied, but not listed here in detail, for overview see file: CHANGES 20131015/PB databases: update and add support for changed ARIN format 20130920/PB review and enhance option handling 20130903/PB databases/lib: finish implementation of IP2Location wrapper incl. dynamic load support 20130828/PB databases/lib: start implementation of IP2Location wrapper (dynamic load still missing) 20130820/PB further review 20130815/PB further improvements and review 20130811/PB commit IPv6 prefix and IPv4 address anonymization 20130708/PB recognize RFC 6598 addresses, extend test cases 20130707/PB ipv6logstats: further enhance output by country code / AS Number / proto statistics 20130702/PB migrate displaying verbose features into lib 20130701/PB ipv6logstats: enhance output by country code / AS Number / proto statistics databases/lib: major extensions of wrapper 20130622/PB databases/lib: start implementation of dynamic load of GeoIP library by adding a wrapper layer 20130513/PB ipv6calcweb/ipv6calcweb.cgi.in: improve colored output for some fields tag version 0.94.1 20130512/PB several *.c: replace strncpy/strcpy by snprintf (implicit fix of some improper/missing \0 termination) several *.c: fixes according to splint 20130510/PB ipv6calc/test_ipv6calc.sh: fix 2 typos (issue reported by PV) 20130413/PB fix code or add pragmas to avoid warnings tag version 0.94.0 20130412/PB lib/libmac.c/lib/libipv6calc.c: support Cisco format xxxx.xxxx.xxxx lib/libipv6calc.c: support Check Point IPsec debug log format of IPv4 addresses if first octet is < 16: xxxxxx (7 hex chars) ipv6calc/test_scenarios.sh: add related test scenarios 20130410/PB databases: update lib/libipv6addr.[hc]: add support for reliable anonymization of IAB/OUI36 based EUI-48/64 based IPv6 addresses lib/libieee.[hc]: add support for mapping of IAB/OUI36 ipv6calc/showinfo.c, ipv6calc/test_scenarios.sh: changes related to anonymized of IAB/OUI36 20130409/PB databases/ieee-oui36/*, lib/libieee.h, lib/libieee.c: add support for OUI36 databases/tools/create_ieee_headerfile.pl: replace databases/ieee-iab/create_ieee_iab_headerfile.pl Makefile[.in]: add support for databases/ieee-oui36 lib/libipv6calc.c: add detection for EUI-64 lib/libeui64.h, lib/libeui64.c: add support for parsing EUI-64 ipv6calc/showinfo.[hc], ipv6calc/ipv6calc.c: add support for EUI-64 ipv6calc/test_showinfo.sh, ipv6calc/test_scenarios.sh: add support for EUI-64 tests 20130408/PB databases: update databases/ieee-iab/create_ieee_iab_headerfile.pl: fixed for current supplied txt format databases/ieee-oui/create_ieee_oui_headerfile.pl: fixed for current supplied txt format 20130407/PB lib/libipv6addr.[hc]: support Microsoft 6to4 IID (includes IPv4 address) anonymization ipv6calc/showinfo.c: minor bugfix + support of printing Microsoft 6to4 IID information 20130330/PB lib/libipv6calc.h, lib/ipv6calctypes.h: minor reorg lib/libipv6calc.c, lib/ipv6calcoptions.h, lib/ipv6calccommands.h: add support for anonymization sets lib/libipv6addr.[ch]: switch anonymization to use sets instead of dedicated values lib/ipv6calchelp.[ch]: add help for anonymization ipv6loganon/test_ipv6loganon.sh: add anonymization options test cases ipv6loganon/ipv6loganon.c, ipv6loganon/ipv6loganonoptions.h: add additional anonymization options ipv6loganon/ipv6loganonhelp.c: update help for anonymization lib/libmac.[ch]: add compatible function names (alignment) ipv6calc/test_scenarios.sh, ipv6calc/test_ipv6calc.sh: test additional anonymization cases 20130326/PB lib/libipv6addr.[ch]: store/retrieve global/local flag for anonymized EUI & ISATAP lib/libmac.[ch], ipv6calc/ipv6calc.c: implement MAC address anonymization ipv6calc/ipv6calc.c: improve anonymization depending on various formats lib/libipv6addr.[ch]: fix reliable anonymization ipv6loganon/test_ipv6loganon.sh: fix testcases ipv6calc/ipv6calc.c: don't normalize input in filter mode 20130324/PB lib/libipv6addr.[ch]: add support for ORCHID anonymization, fix OUI storage in anonymized IID ipv6calc/showinfo.c: restructure display of anonymized information ipv6loganon/test_ipv6loganon.sh: add some testcases lib/librfc1884.c: fix for anonmized IIDs 20130319/PB lib/libipv6addr.h: fix duplicate merge lib/libipv6addr.c: proper handling of prefix anonymization/masking lib/ipv6calchelp.[ch]: implement online help for actions ipv6loganon/ipv6loganonhelp.c: fix online help ipv6calc/ipv6calc.c: fix online help and debug option value parser 20130317/PB bin/ipv6logconv.c: dedicated token for privacy & Teredo IID ipv6calcweb/ipv6calcweb.cgi[.in]: show date/time of generated output lib/libipv6addr.[ch]: support reliable prefix anonymization 20130226/PB lib/libipv6addr.[ch]: switch ISATAP anonymization to new method, extend ISATAP recognition ipv6calc/showinfo.c: improve ISATAP information lib/librfc1884.c: print included IPv4 address in proper notation ipv6loganon/test_ipv6loganon.sh,ipv6calc/test_scenarios.sh: adjust test scenarios 20130225/PB lib/libipv6addr.[ch]: simplified checksum verification for anonymized IID, skip anonymization for already anonymized addresses ipv6calc/ipv6calc.c: change forgotten default for mask_iid to 0 20130224/PB lib/libipv6addr.[ch]: introduce new format for anonymized IID ipv6calc/showinfo.c: extend display for anonymized IIDs ipv6loganon/ipv6loganon.c, ipv6calc/ipv6calc.c: change default of anonymization presets: mask_iid is now disabled by default and replaced by new anoymized IID ipv6loganon/test_ipv6loganon.sh, ipv6calc/test_ipv6calc.sh, ipv6calc/test_scenarios.sh: adjusted for new anonymization ipv6calc/ipv6calc.c, ipv6loganon/ipv6loganon.c, lib/ipv6calcoptions.h, lib/ipv6calccommands.h: replace --no-mask-iid by --mask-iid option 20130224/PB ipv6calcweb/ipv6calcweb.cgi[.in]: improved display of proxy information 20130223/PB ipv6calcweb/ipv6calcweb.cgi[.in]: display now information of all passed proxies 20121221/PB ipv6calcweb/ipv6calcweb.cgi: display X-Via header, if given, display also address information of first proxy, if given lib/libipv6addr.c: fix type info for teredo address ipv6calc/showinfo.c: improve debug output 20121216/PB ipv6calc/ipv6calc.c: accept also debug value in hexadecimal notation ipv6calc/test_scenarios.sh: extend with testscenarios for detection of already anonymized addresses lib/libipv6addr.c lib/libipv6addr.h lib/librfc3041.h: use special value for anonymization also of static defined IID, introduce new type flag 'anonymized' ipv6calcweb/ipv6calcweb.cgi[.in]: display also X-Forward-For header, if given lib/librfc1884.c ipv6calc/test_ipv6calc.sh: fix a long outstanding bug not compressing only one block of '0' ipv6loganon/test_ipv6loganon.sh: fix examples according to special value for static defined IID 20121215/PB databases: update 20121105/PB databases: update databases/ipv4-assignment/create-registry-list.pl: fix long undetected bug regarding calculation of IP mask (not easy detectable on 32-bit systems) 20121014/PB ipv6calc/showinfo: add anonymized IPv4/IPv6 addresses on machinereadable output lib/libipv4addr: add ipv4_copy function ipv6calcweb.cgi: support anoymized IPv4/IPv6 addresses 20121012/PB databases: update README.BUILDING-GeoIP: new README.BUILDING-IP2LOCATION: minor update lib/libipv6addr.c: minor fix to avoid compiler warning man/ipv6loganon.8: update spec: - change requirements for ip2location to Mandrake Linux compatible names - change location of "ipv6calc" from bin to %{_bindir} tools/GeoIP-update.sh: new tools/IP2Location-update.sh: new 20120509/PB lib/libipv6addr.c lib/librfc3041.h: anoymize a privacy extension IID to a special value and recognize this also ipv6logstats: add output related to IID type 20120505/PB databases: update 20120424/PB lib/libieee.c: remove QEMU prefix handling databases/ieee-oui/create_ieee_oui_headerfile.pl: extend with information about MAC prefixes used by Virtual Machines 20120423/PB ipv6calcweb.cgi: allow spaces around input in form mode 20120422/PB lib/libieee.c: detect standard QEMU MAC prefix lib/libipv6addr.c: blacklist expanded EUI-48 from privacy extension ipv6calcweb.cgi: cell background for OUI is now yellow, for EUI64_TYPE=local-privacy green 20120419/PB lib/*: extend filter handling, implement address token, improve privacy detection databases: update 20120401/PB ipv6calc/showinfo: finalze autodetection for privacy IIDs 20120325/PB ipv6calc: improve autodetection (for IID), improve genprivacyiid 20120322/PB ipv6calc/ipv6calc: add suppport for --print-iid-var lib/*: some improvements 20120321/PB lib/*: extend filter handling, implement address token, improve privacy detection 20120320/PB lib/*: extend filter handling, implement negate 20120319/PB databases/*: cosmetic fix for suppressing unused-variable during compilation lib/*: review filter tokens databases: update 20120318/PB lib/*: extend for action 'filter' ipv6calc/ipv6calc.c: implement action (-A) 'filter' with expression '-E', currently only supporting IPv6 addresses lib/libipv4addr.*: implement gettype with proper values 20120306/PB lib/libipv6addr.*: adjust calc of IID privacy detection ipv6logstats/*: add option -w FILE to write IID privacy statistics, fix gnuplot example 20120304/PB lib/libipv6addr.[ch]: extend IID privacy detection ipv6logstats/*: extend for IID privacy detection 20120303/PB lib/libipv6addr.[ch]: add IID privacy detection, fix productive IPv6 address detection */Makefile.in: add -lm for linking math (req. for IID privacy detection) 20120205/PB lib/libipv6addr.c lib/libipv4addr.c: extend RFC info with section ipv6calcweb.cgi: add support for RFC URLs COPYING: update FSF address databases: update tag version 0.93.1 20120204/PB ipv6loganon/ipv6loganon.c: don't cache unmodified lines lib/libipv6addr.c: extend detection for reserved addresses ipv6calc/showinfo.c: use function from lib/libipv6addr.c for retrieving IPv6 registry string lib/libipv4addr.c: minor review 20120121/PB ipv6calcweb.cgi: some improvements databases: update lib/libipv4addr.c: extend detection for reserved addresses (RFC5735) ipv6calc/test_showinfo.sh,test_scenarios.sh: extend for testing reserved IPv4 addresses tag version 0.93.0 20120120/PB ipv6calcweb.cgi: fix taint problem for external environment 20120110/PB ipv6calc/test_ipv6calc.sh: split good testscenarios into dedicated file test_scenarios.sh ipv6calcweb/test_ipv6calcweb_form.sh: new for testing form mode ipv6calcweb/test_ipv6calcweb.sh: improve error handling by output check lib/ipv6calctypes.h: support machinereadable for FORMAT_ipv6literal lib/libipv6calc.c: minor bugfix ipv6calc/test_showinfo.sh: add FORMAT_ipv6literal tests ipv6calc/test_ipv6calc.sh: split some test scenarios ipv6calc/test_scenarios: new file ipv6calcweb.cgi: minor improvements 20120102/PB ipv6calcweb.cgi: additional check on unescaped input 20120101/PB ipv6calcweb.cgi: minor review ipv6calc.spec: create subpackage for ipv6calcweb VERSION[.in]: new for improve scripting of build process databases - update 20111231/PB ipv6calc/showinfo.c: fix show show_types output ipv6calcweb.cgi: improve form mode, implement some Anti-DoS code, some review 20111219/PB ipv6calcweb.cgi: add support for form mode and configuration via SetEnv 20111127/PB lib/*: support scope IDs on IPv6 addresses (also on literal format) 20111126/PB lib/* ipv6calc/ipv6calc.c: support input/output format "ipv6literal" lib/libmac.c, lib/libipv6calc.c: support MAC format xxxxxxxxxxxx (seen on some network devices) 20111105/PB lib/libmac.c, lib/libipv6calc.c: support MAC format xxxxxx-xxxxxx (seen on HP switches) 20111104/PB ipv6calc/ipv6calc.c: autodetect -A geneui64 in case of -O eui64 and autodetected -I mac (only in non-pipe mode) 20111103/PB ipv6loganon/ipv6loganon.c, ipv6logconv/ipv6logconv.c: - using sprintf for LRU cache in more secure way (credits to Luca Bruno) 20111102/PB ipv6calc/ipv6calc.c: force -O eui64 to request either -I mac or -A geneui64 20111029/PB update doc, add ldp.dsl and adjust generate script 20111026/PB update documentation and INSTALLING 20111009/PB configure.in - Exclude use of GeoIP_lib_version also for GeoIP 1.4.5 IPv6 support ipv6calc/ipv6calc.c - display GeoIP IPv6 compat mode, if enabled 20111008/PB configure.in, ipv6calc/showinfo.c - Extend for GeoIP 1.4.5 IPv6 support (which has reduced function set) Makefile.in (all) - introduce "make test-minimal" to skip GeoIP/IP2Location tests on RPM build systems ipv6calc.spec.in - replace 'make test' by 'make test-minimal' ipv6calc/showinfo - increase output version to 5, adding IPV6CALC_FEATURES in machine readable output ipv6calcweb/ipv6calcweb.cgi.in - fix broken ARIN whois URL - show information from IPV6CALC_FEATURES - claim about missing IP2Location or GeoIP database files, if feature is enabled tag version 0.92.0 20111008/PB databases - update ipv6calc - support option "-v -v" to show extended version information database generation programs - retrieve and store database status (last update) into related header file tag version 0.91.0 20111006/PB configure.in - checking GeoIP library for IPv6 support ipv6calc/ipv6calc.c, ipv6calc/showinfo.c, lib/ipv6calchelp.c, ipv6calc/test_showinfo.sh - skip IPv6 related GeoIP parts, if support is missing in GeoIP library 20110916/PB 6rd extension: change options to support stdin for IPv4 addresses minor code review extend online help for action types 20110915/PB Makefile: catch exit code on sub tests syntax fix "octett" -> "octet" ipv6calc, ipv6calccommands.h, ipv6calcoptions.h, ipv6calctypes.h, librfc5569.c, librfc5569.h, Makefile.in - add 6rd extension from Raphaël Assénat and add test case database - update 20110610/PB database - update tag version 0.90.1 20110601/PB add configure options for disabling compiled-in databases: --disable-db-ieee --disable-db-ipv4 --disable-db-ipv6 20110526/PB database -update minor fixes tag version 0.90.0 20110515/PB ipv6calc - disable accept of 'printstart' & 'printend' option for output type 'ipv6addr' (not suppported at all at the moment) - add option 'forceprefix ' - add option 'f|flush' for pipe mode - implement pipe mode (autodetected) - GeoIP option '--db-geoip-default|-G' enables now IPv4 and IPv6 default database, if file locations are compiled in - new options for specifying GeoIP file locations: '--db-geoip-ipv4' and '--db-geoip-ipv6' - new option '--db-ip2location-default|-L' for enabling IPv4 or IPv6 default database, if file locations are compiled in - extend test cases BUILD --with-geoip-default-file is replaced by --with-geoip-ipv4-default-file - new options for specifying IP2Location default file locations --with-ip2location-ipv4-default-file --with-ip2location-ipv6-default-file registry databases - update 20110512/PB ipv6loganon: - add support for option -f (flush) - some bugfixes ipv6calc, ipv6calcweb.cgi - implement support for GeoIP IPv6 database ipv6calcweb.cgi - skip not-useful entries for IP2LOCATION in case of unsupported by database update information for IP2Location 4.0.2 20110511/PB ipv6loganon: - add support for option -w (write) and -a (append) output to a given file - IPv6 address output is now in compressed format 20110505/PB lib/librfc1884.c - cosmetic improvement of debug information lib/ipv6calchelp.c - add space between token and ":" - fix --out -h not showing explanation update-registries.sh - add workaround for buggy encoding information in XML databases - update tag version 0.82.1 20110504/PB ipv6calc/ipv6calc.c - add some debug code - improve selection of format switch for revipv4 lib/libipv4addr.c lib/libmac.c - clear 'valid' flag also if structure is cleared 20110329/PB ipv6calc/test_ipv6calc.sh, ipv6calc/showinfo.c, lib/libipv6addr.[h,c] - add support for RFC 6052 (NAT64) databases: - update tag version 0.82.0 20110305/PB ipv6calc/test_ipv6calc.sh: - add test cases for RFC 5952 doc - add URL to openSUSE, minor cleanup 20110227/PB databases: - change from txt to xml for IANA data - update ipv6calc/test_ipv6calc.sh: -add good/bad testcases for explicit and autodetection input - improve catch of errors ipv6calc/showinfo.c: - fix buggy fprintf output devices ipv6calc/ipv6calc.c: - add support for output format FORMAT_mac - extend auto-output detection for input format FORMAT_mac, FORMAT_bitstring, FORMAT_base85 - add dedicated error message if auto-input detection doesn't work lib/librfc1886.c: - fix librfc1886_formatcheck for proper work with autodetection lib/librfc1884.c: - fix debug messages lib/libmac.[ch]: - add function macaddrstruct_to_string lib/libipv6calc.c: - improve autodetection lib/libipv6addr.c, lib/libipv4addr.c: - improve format check lib/ipv6calctypes.h: - add new format type for non-working autodetection 20100921/PB update databases lib/librfc1886.c: take care of prefix length before printing nibbles (bugfix, but breaking old behavior, if prefix length is used) tag version 0.80.0 20100520/PB configure.in: add value for copyright year, update version number some header files: replace hardcoded copyright year with value lib/librfc1884.c: minor bugfix From http://patch-tracker.debian.org/package/ipv6calc/0.73.0-3 ipv6calc/showinfo.c: fix typo regarding Teredo addresses (not affecting -m) lib/ipv6calchelp.c: fix segfault */Makefile.in: fixes 20100427/PB lib/librfc1884.c: bugfix regarding uncompressing an address ipv6calc/test_ipv6calc.c: add some testcases 20090808/PB ipv6calc/ipv6calc.c - add auto-output format detection for revnibble - do not print resultstring, if empty ipv6calc/test_ipv6calc.sh - add input validation tests lib/ipv6calchelp.[ch] - support machine readable output for input types lib/libifinet6.c lib/librfc2874.c - cosmetic fixes of error messages lib/libipv4addr.c lib/libipv6addr.c lib/librfc1886.c - improve input validation - cosmetic fixes of error messages 20090811/PB update databases ipv6calc/ipv6calc.c - add support for '-m' for '--out|action -?' lib/ipv6calchelp.[ch] - support machine readable output for output/action types tag version 0.73.0 20090808/PB ipv6calc/ipv6calc.c - add auto-output format detection for revnibble - do not print resultstring, if empty - add support for '-m' for '--in -?' ipv6calc/test_ipv6calc.sh - add input validation tests lib/ipv6calchelp.[ch] - support machine readable output for input types lib/libifinet6.c lib/librfc2874.c - cosmetic fixes of error messages lib/libipv4addr.c lib/libipv6addr.c lib/librfc1886.c - improve input validation - cosmetic fixes of error messages 20090620/PB databases/registries/update-registries.sh - fix IANA ipv6-unicast-address-assignments weblink problem 20090611/PB update databases add /usr/bin/ipv6calc to binary list of ipv6calcweb.cgi tag version 0.72.2 20090111/PB update databases tag version 0.72.1 20090106/PV various Makefile.in and Makefile - rename $(root) into $(DESTDIR) to respect GNU coding standards - fixed datarootdir warning 20081231/PB ipv6calc/ipv6calc.c - print token GeoIP, IP2Location, if supported update databases 20081231/PV configure.in - apply fix for GeoIP option various Makefile.in and Makefile - adjust/switch to Makefile.in and improvements (use of @CC@, remove CFLAGS, LDFLAGS, fix @ENABLE_BUNDLED_GETOPT@) 20081119/PB databases/registries/update-registries.sh - create registry subdir if not existing - fix IANA ipv4-address-space weblink problem databases/ieee-iab/create_ieee_iab_headerfile.pl - remove '"' from names to avoid problems in generated header file databases/ieee-oui/Makefile - adjust remote filename on webserver ipv6calc/ipv6calc.c - do not show warning messages for missing GeoIP/IP2Location support if option "-q" is used (good for ipv6calcweb.cgi) Makefile[.in] - move "make test" from "make install" to dedicated "make ..." - remove "make installonly" Several files - minor cleanup tag version 0.72.0 20070811/PB lib/libipv6addr.{c,h} - detect link-local-teredo addresses 20070705/PB ipv6loganon/test_ipv6loganon.sh - add ORCHID test scenario lib/libipv6addr.{c,h} - fix octal printout - add hex printout - support ORCHID in anonymize lib/libipv4addr.{c,h} - add octal & hex printout ipv6calc/showinfo.c - print warning message in IP2Location longitude/latitude if 0 - do not print GeoIP/IP2Location information on non-global IPv6 addresses - fix output on ISATAP addresses (stderr->stdout) ipv6calc/ipv6calc.c - support octal output for IPv4 and hex output for IPv4 and IPv6 20070704/PB lib/libipv6addr.{c,h} ipv6calc/showinfo.c - add support for ORCHID address type 20070605/PB ipv6calcweb/ipv6calcweb.cgi.in - fix built-in list for GeoCityLite ipv6calc/showinfo.c - do not show "GeoIP|IP2Location returned no record" in quiet mode 20070601/PB update databases update doc files minor fixes in test scripts tag version 0.71.0 20070426/PB lib/libipv6addr.{c,h} lib/ipv6calcoptions.h lib/ipv6calccommands.h ipv6loganon/ipv6loganon* ipv6calc/ipv6calc.c - add support for anonymizing IPv6 prefix flexible (mask-ipv6) - add new preset options for anonmiyzing (careful,paranoid) 20070402/PB ipv6calc/showinfo.c - skip displaying of IPV4_SOURCE if no data is given - fix month of IP2Location database - separate IP2Location information for IPv4 and IPv6 (increase output version to 4) ipv6calcweb/ipv6calcweb.cgi.in - fix database options according to changes before releasing 0.70.0 - if server address is skipped, do not retrieve information at all - use built-in list for detecting binary and database files on various locations 20070401/PB update databases tag version 0.70.0 20070303/PB autogen.sh - add support for more options, see -? for more ipv6calc/showinfo.[h,c] - revert to pre 20070215 release, IP2Location (2.1.3) was fixed now ipv6calc/ipv6calc.h - adjust copyright year databases/registries/update-registries.sh - remove unconditional exit code 0 databases/registries/update-registries.sh databases/ipv{4,6}-assignment/create-registry-list.pl - change from %Y%m%d to -latest databases/ipv6-assignment/create-registry-list.pl - reenable all registries databases/registries/Makefile - support "lacnic" on distclean databases/ipv4-assignment/Makefile - cleanup 20070215/PB ipv6calc/showinfo.[h,c] - move prototypes in case of use of IP2Location (2.1.2) because of a strange compilation warning ipv6calc/Makefile.in - reorder CFLAGS according to patch from NT 20070214/PB contrib/ipv6calc.spec[.in] ipv6calc/Makefile[.in] - adjustments according to remove of static GeoIP/IP2Location support 20070214/NT databases/GeoIP databases/IP2Location - remove support of static (built-in) support 20070207/PB ipv6calc/ipv6calc.c lib/ipv6calctypes.h - add support for action anonymize 20070205/PB lib/libipv{4,6}addr.{c,h} - migrate IPv4/IPv6 address anonymization code into ipv6loganon to libraries 20070202/NT ipv6loganon/ipv6loganonhelp.c - spelling fixes man/ipv6loganon.8 - contribution 20070201/PB database update ipv6loganon/* - minor improvements, add README 20070131/PB ipv6calc/showinfo.c - fix bug by exchange TEREDO SERVER<->CLIENT tokens - code improvements (triggered by splint) ipv6loganon/* - improve ipv6loganon lib/*.c - code improvements (triggered by splint) 20070130/PB ipv6loganon/* - initial creation 20070116/ESR man/ipv6calc.8 - code fixes 20061028/NT+PB GeoIP support - add new configure options --enable-geoip-system: use system GeoIP library --enable-geoip-default-file: specify default database file Getopts support - configure detects now the presence of system getopts library 20061021/PB IP2Location support - update to API 2.1.0 (which supports IPv6 now) GeoIP support - update to API 1.4.0 configure.in Makefile.in - add support for global version numbers of APIs ipv6calc/showinfo.c ipv6calc/ipv6calc.c - add support for 2 different database files for IP2Location - change options -p => --db-ip2location-ipv4 -g => --db-geoip - new option --db-ip2location-ipv6 update databases 20060828/PB ipv6calcweb/ipv6calcweb.cgi.in - remove non-ascii chars on GEOIP_DATABASE_INFO update databases tag version 0.61.0 20060807/PB ipv6calc/showinfo.c - make code for printing GeoIP and IP2Location universal for IPv4 and IPv6 - fix missing printout of footer in case of IPv6 address is given ipv6calcweb/ipv6calcweb.cgi.in - toggle background for lines with embedded IPv4 address 20060806/PB - add support for GeoIP (GeoIP-1.3.17) LICENSE - updates according to changes update databases 20060710/PB - change internal version number handling from dedicated file(s) to configure.in update databases tag version 0.60.1 20060707/NT ipv6calc/test_ipv6calc.sh - catch result proper configure.in - define AC_C_BIGENDIAN for proper support of big-endian arch - improve version definition, remove acconfig.h (no longer needed) config.h.in - regenerated during autoheader md5/Makefile md5/md5.c - fix code for proper support of big-endian arch autogen.sh - add call to autoheader 20060625/PB update databases tag version 0.60.0 Makefile[.in] - remove autom4te.cache also in subdirectories 20060612/PB databases/IP2Location/C-IP2Location-1.1.0/libIP2Location/IP2Location.c - fix bug in original code according to retrieve date from database config.h.in configure.in - add support for SUPPORT_IP2LOCATION in config.h lib/ipv6calchelp.c - add comment for option -p ipv6calc/ipv6calc.c - add internal flag for IP2Location support lib/ipv6calctypes.h ipv6calc/showinfo.c - print embedded IPv4 addresses explicitly in embedded format [] this solves the issue if more than one IPv4 address is included in IPv6 address lib/libipv6addr.c - support new Teredo prefix (RFC 4380) lib/libipv4addr.c - exclude some RFC1918/RFC3330 addresses from registry lookup, report reserved(reason) instead lib/libipv6addr.h - lower case "teredo" lib/ipv6calctypes.h - add new (internal used) format "printembedded" lib/Makefile - fix elements in $(OBJS), minor review ipv6calcweb/ipv6calcweb.cgi - add support for variables with embedded IPv4 address - keep sort order of ipv6calc -m output - fix whois URL of ARIN,APNIC,LACNIC - remove whois URL for 6bone addresses, no longer valid - add IP2Location information in footer (if used) - add required output version for check ipv6calc/showinfo.h - define output version ipv6calc/showinfo.c - support embedded IPv4 addresses in machine readable output ipv6calc/ipv6calc.c - missing IP2Location database is now only a soft error - add flag whether IP2Location database is given man/ipv6logconv.8 - fix small problem with hyphens (thanks to Niko Tyni) 20060610/PB ipv6calc/showinfo.c/print_ipv4addr - check for result != of IP2Location before using (prevents segfault) 20060608/PB ipv6calcweb/ipv6calcweb.cgi - add support for format= in QUERY_STRING 20060607/PB ipv6calcweb/ipv6calcweb.cgi - add support for IP2Location according to showinfo.c contrib/ipv6calc.spec[.in] - add support for rebuild option --with-ip2location LICENSE - updates according to changes Makefile.in configure.in ipv6calc/Makefile.in - make IP2Location support switchable (--enable-ip2location) ipv6calc/ipv6calc.c lib/ipv6calcoptions.h - fix wrong named option (-f instead of -p) lib/librfc1924.c - replace conversion code with clean reimplementation created by Niko Tyni because of unknown license issue of the old piece of code update databases 20060317/PB databases/ipv6-assignment/create-registry-list.pl databases/ipv4-assignment/create-registry-list.pl databases/ipv6-assignment/dbipv6addr_assignment.h databases/ipv4-assignment/dbipv4addr_assignment.h lib/libipv6addr.h lib/libipv4addr.h - store also prefix length in lookup table update databases 20060316/PB lib/libipv4addr.c - fix wrong use of () in ipv4addr_setword 20060306/PB Makefile.in ipv6calc/Makefile.in ipv6calc/ipv6calc.c ipv6calc/showinfo.c - add support for IP2Location lib/ipv6calcoptions.h - add new option: -p 20060213/PB ipv6calc/Makefile.in - replace "make" by "${MAKE}" (forgotten in 20051119) 20060212/PB update databases databases/ieee-oui/create_ieee_oui_headerfile.pl - replace " with ' in entries Makefile.in - remove also autom4te.cache on distclean contrib/ipv6calc.spec[.in] - remove CVS version line to avoid problems tag version 0.51 20060126/PB lib/ipv6calchelp.c lib/ipv6calctypes.h ipv6calc/ipv6calc.c ipv6calc/ipv6calc.h - fix help for {upper|lower}case option inconsistency - add new shortcut options: --in|-I --out|-O --action|-A --printcompressed|-C --printuncompressed|-U --printfulluncompressed|-F - update copyright range update databases 20051119/PB various make files - replace "make" by "${MAKE}" - add definitions for prefix and exec_prefix update databases 20051026/PB restructure registry database directory - process now registry files 2 days ago to prevent problems short after local day switches add support for new registry AFRINIC extend IPv6 registry data from 32 to 64 bits, adapt related function in lib/libipv6addr 20051021/PB lib/libipv6addr - fix bug for unique local unicast detection ipv6calc/showinfo - minor review ipv6calcweb.cgi - updates according to changes of showinfo.c 20051020/PB lib/libipv6addr ipv6calc/showinfo ipv6logconv ipv6logstats - add support for Teredo addresses 20050916/PB various make files - add missing entries to fullfil NetBSD's make 20050915/PB various c files - fix snprintf size parameter (credits to Radek Vokál for pointing this out) lib/libipv6addr.c#ipv6addr_copy - fix bug which causes stack overflow (credits to Radek Vokál for finding the bug) several Makefiles - add compiler switch -O2, reason for segfault was found - remove also static on clean ipv6logconv: - add support for unique local unicast update databases tag version 0.50 20050914/PB databases/ipv4-assignment - fix update check script Update databases spec file fix Tag version 0.49 20050725/PB several Makefiles - remove compiler switch -O2, this causes segfaults on Fedora Core 4 using gcc-4.0.0-8 lib/libipv6addr ipv6calc/showinfo - add support for Unique Local IPv6 Unicast Addresses 20050719/PB ipv6logstats, ipv6logconf - remove not really needed uid check in test step md5/md5.c - fix for proper support of big endian machines ipv6calc/test_ipv6calc.sh - fix proper error reporting Further prototyping fixes lib/libipv6addr - replace hardcoded IPv6 assignement by dynamic one Update databases 20050714/PB Update databases lib/libipv6addr - IPv6 TLA update 20050711/PB lib/librfc2874.c lib/libipv6calc.c - Fix prototyping to avoid warnings md5/Makefile getopt/Makefile - Add CC definition 20050628/PB ipv6calc: - replace hardcoded $(root)/bin with $(root)@bindir@ (suggested by Andrew Walrond) 20050214/PB ipv6logconv: - fix online help 20050212/PB Update databases ipv6logconv: - implement a lookup cache for speed-up (around 20%) lib/libipv4addr databases/ipv4-assignment/dbipv4addr_assignment.h - add a hint table for speed-up IPv4 registry lookups (around 10 times!) 20041121/PB Update databases Tag version 0.48 20041101/PB General: - add missing directories to Makefile - fix typo in man page 20041030/PB General: - replace md5 function from openssl with a copy of coreutils (licence issue) - add support for IEEE/iab.txt database Update databases - minor fixes in scripting 20040830/PB ipv6calc: - add support for recognizing 6to4 addresses generated by Microsoft OS ipv6logconv: - add support for recognizing 6to4 addresses generated by Microsoft OS - add support for ISATAP addresses Update databases - fix URL of RIPE ARIN, APNIC, LACNIC and add support for compressed files 20031122/PB ipv6logstats: - add option "-q|--quiet" for be more quiet - minor fixes ipv6calc.spec.in - review, also install examples now Some cleanups tag version 0.47 20031121/PB IPv4 address database update Some redesign on Makefile usage, move some Makefile to Makefile.in - minor redesign in Makefile.in - take now use of "bindir" and "mandir" in configure run Update ipv6calc.spec.in ipv6calcweb.cgi: - renamed to ipv6calcweb.cgi - version numbering will now be done using autoconf ipv6logconv: - add option "-q|--quiet" for be more quiet 20031026/PB add contributed man pages 20030907/PB untag version 0.46 ipv6calcweb.cgi: - replace deprecated hash reference code with proper one - add forgotten lacnic support - allow ":" in SERVER_NAME to allow IPv6 addresses here also tag version 0.46 20030906/PB update databases tag version 0.46 20030815/PB enable option "printfulluncompressed" on output format octal add example for output format octal 20030722/PB enable "printprefix", "printsuffix" for normal IPv6 addresses (autoswitch to uncompressed format) prefix length of 6to4 addresses changed from 16 to 48 for proper support of format "printprefix" 20030717/PB add IPv6 LACNIC range 20030628/PB minor adjustments to "ipv6logstats", add a gri example 20030623/PB lib/librfc1886.c/librfc1886_addr_to_nibblestring: don't print trailing "." on middle part end 20030615/PB add support for new registry LACNIC (in IPv4) add new program "ipv6logstats" to create historic address distribution statistics of webservers for use e.g. with gnuplot (add an example cmd script also) remove autodetection code for EUI-64 (can misinterpret a proper IPv6 address) fix some bugs in autodection 20030404/PB add new output format "octal" as requested from Lionel Elie Mamane to create proper input for tinydns 20030202/PB: add new input type "ipv4hex" (hexadecimal IPv4 address) add new input type "ipv4revhex" (reverse hexadecimal IPv4 address) add support of spaces as delimiter of MAC/EUI-48 addresses (above support was added to convert information got by 'martian source' logging) 20021112/PB: fix not proper handling of option "-q|--quiet" in some cases enhance help options (-h|--help now also valid) on --out|action|in ipv6logconf: "make test" can be now also executed by root (su to nobody) tag version 0.45 20021104/PB: minor cosmetics in IEEE/OUI database 20021104/PB: update IPv6 address allocation for 2001::/16 update IPv4 databases remove user/group on "make install" to enable non-root RPM build update text on ipv6calcweb.cgi minor reviews tag version 0.44 20020830/PB: add support of dashes on MAC/EUI-48 addresses showinfo prints now type of EUI-48 addresses 20020817/PB: fix configure.in, learnt now how to proper use AC_CHECK_LIB and AC_CHECK_HEADERS credits to Arkadiusz Miskiewicz! 20020730/PB: fix not proper autodetection code for MAC addresses tag version 0.43 20020717/PB: update URL to OUI database, cosmetic OUI fixes, update databases tag version 0.42 20020511/PB: bugfix not showing OUI on showinfo "-i" update CIDR and OUI data 20020421/PB: review inttypes definitions, create new header file minor fixes to suppress compiler warnings tag version 0.40rc5 tag version 0.40 20020420/PB: fix defines for FreeBSD and OpenBSD minor fixes 20020410/PB: tag version 0.40rc4 20020410/PB: new format feature: printmirrored for reverse dot separated format minor fixes 20020409/PB: add new feature: printing IPv4 address in reverse PTR/DNS format minor help extension 20020408/PB: fix completly broken online help add some autodetection printprefix|suffix now works also for fulluncompressed some cleanups tag version 0.40rc3 20020407/PB: minor cosmetic fixes, import forgotten ipv6logconv changes tag version 0.40rc2 20020405/PB: fix some database dependencies fix NetBSD has inttypes.h instead of stdint.h change back to not splint'ed librfc1924.c because of a self made not easy to find bug :-( some minor fixes tag version 0.40rc1 20020403/PB: more splint'ing, some type review 20020401/PB: more splint'ing, some type review 20020331/PB: more splint'ing extend ipv6logconv 20020325/PB: ipv6calcweg.cgi: extension for new showinfo extension 20020324/PB: fix alignment bugs in libipv4addr.c for word/dword access libip4addr.c: add support for registry information finish IPv4 registry detection code 20020323/PB: new feature: prefix+mac -> IPv6 address 20020320/PB: showinfo: add new info: registry, fix a bug in output of non machinereadable some snprintf fixes 20020318/PB: move files to dedicated subdirectories add program information on ipv6calc -m enhance ipv6calcweb.cgi begin to replace "sprintf" with "snprintf" (for security reasons) -> release 0.40pre7 20020317/PB: ipv6calc: fix not working showtypes new: ipv6calcweb.cgi: Perl wrapper program for web interface replace all "strtok" to "strtok_r" because of problems due calls in subfunctions (thanks to manpage...) remove "-ansi" from compiling options ipv6logconv: add output format "any", fills address, referer and user with proper information some code lint 20020316/PB: new: ipv6logconv is able to convert addresses of webserver logs into special domain names new: analog example for creating stats from converted logfiles some fixes and enhancements 20020311/PB: new: add vendor database for global EUI-64/48 identifiers new: libieee to display an OUI, if available showinfo: machinereadable now printout one info per line (switchable later) minor fixes tag release 0.40pre5 20020306/PB: enhance help, adapt format to 80 chars per line bugfix in showinfo.c relating to display EUI-64 id began some code audit using splint 20020303/PB: migrate eui64 to privacy into new style more cleanup extend test script tag release 0.40pre2 implement auto detection for input showinfo now understands IPv4 address extraction of autoconfigured link local addresses check format options against matrix understand now input of revnibble (limited support) and bitstring labels tag release 0.40pre3 20020302/PB: major work of redesign is done, test script runs well, unused files removed tag release 0.40pre1 20020301/PB: start redesign 20020227/PB: libipv6addr.c: fixed a bug in ipv6addr_setoctett.c regarding num limit (oops..) ipv6calc.c: move structure definitions to... libmac.h: add related structure definition ipv6calc.c libipv6addr.h: add related structure definition from ipv6calc.c libipv4addr.*: new for handling IPv4 addresses ipv4_to_6to4addr.*: new for handling conversion IPv4 -> IPv6to4 librfc3056.*: library for conversion IPv4 -> IPv6to4 libipv6calc.c: fix array index bug of compat[] (oops..) tag release 0.39 20020226/PB: add original getopt tarball into samplecode, fill related READMEs tag release 0.38 20020224/PB: move nibble string function to librfc1886 minor fixes restore original samplecode files and remove CVS id to prevent CVS changes add original getopt code to samplecode tag release 0.37 20020224/PB: minor Makefile fixes fix getopt Makefile minor cosmetic fix in test script cosmetic cleanups some code cleanup and minor redesign, some optimizing fixes stupid help call bugs format options can be used now in more functions add support of "printstart" and "printend" in "ip6int", "bitstring" extend "showinfo", add "machine_readable" for easier postprocessing 20020223/PB: complete limited support of bistring labels change examples to 6bone dummy address (3ffe:ffff:...) add a trailling dot on ip6.[int|arpa] output migrate getopt patch for OpenBSD submitted by Vladimir Kotal minor Makefile fixes tag release 0.37pre1 20020219/PB: fix a minor bug tag release 0.36 20020218/PB: fix bug relating to ipv6calc.h (changes now in ipv6calc.h.in) start preparation for implementing bitstring conversions tag release 0.35 20020218/PB: add new options: --addr_to_ip6arpa|-a does the same like --addr_to_ip6int|-r, but ends with "ip6.arpa" instead of "ip6.int" addr_to_ip6int now understands "--uppercase|--lowercase" tag release 0.35 20020127/PB: tag release 0.34 20020124/PB: use now "-lcrypto" instead of full defined lib name 20020121/PB: update "COPYING" to current GPLv2, add "LICENSE" with some comments to make Debian people happy add both in spec file 20020120/PB: showinfo now understands "solicited-node link-local multicast", "ISATAP", SLA on 6bone addresses input now understands also "ISATAP" addresses 20011227/PB: Make tarball ready to use 20011218/PB: Change version numbering to autoconf/configure Extend "showinfo" a little bit 20011009/PB: release 0.30 20011009/PB: Fix missing scope initialization "base85_to_ipv6addr" bug found by Greg Daley changed: libipv6addr.c/ipv6addr_clear librfc1924.c/base85_to_ipv6addrstruct 20011007/PB: Push source into local CVS system 0.28: Peter Bieringer Refixing compiling on BSD Add a forgotten include in "eui64_to_privacy.c" 0.27: Peter Bieringer Migrate files used from Linux kernel for address type resolution to libipv6addr.* add some extended tests (still not catch all) "--showinfo" now rudimentary works 0.26: Peter Bieringer Create wrapper functions to be independend of byte order storage in structure "in6_addr" "--eui64_to_privacy" now calculate expected results Begin of splitting "ipv6calc.h" into several smaller header files Some code cleanup 0.25: Peter Bieringer Restructure central address structure to use "in6_addr" struct Some code cleanup 0.24: Peter Bieringer Add option "--eui64_to_privacy" to calculate pseudo random suffices (experimental, result is not verified) Add option "--showinfo" (experimental, not finnished) Add option "-d|--debug value" Partially new debug code 0.23: Peter Bieringer Fix permissions of doc files in spec file 0.22: Peter Bieringer ANSI compiling cleanup Cleanup special types to ANSI types 0.21: Peter Bieringer Fix typo (strings.h -> string.h) at ifinet6_to_compressed.c 0.20: Peter Bieringer Activate "--printsuffix" + "--printprefix" for "--addr_to_uncompressed" Change format of "--mac_to_eui64" to described one (now without prefix) 0.19: Peter Bieringer Extend "TODO" list Print also info on "-?" Fixes in spec file, see changelog at the end of that file Add "COPYING" and "INSTALLING" Add "installonly" on "Makefile" to support changes in spec file 0.18: Peter Bieringer Add "make test" after "make" in spec file to stop build process, if compiling do not result in working code Add samplecode directory 0.17: Peter Bieringer Fix "addr_to_ip6int" (sprintf) Minor reviews 0.16: Peter Bieringer Review "Makefile" to make it usable on BSD systems Minor reviews to enable a clean make on BSD systems 0.15: Peter Bieringer Create TODO Some review New option: mac_to_eui64 0.14: Peter Bieringer Review CREDITS 0.13: Peter Bieringer Add base85 support Add compatv4/mapped support Split away some RFC depended libaries Rename internal used functions Rename options (old ones still work) Change IPv6 address compression method from getaddrinfo to native calculation (hopefully bugless) Some review 0.12: Peter Bieringer Add some format checks 0.11: Peter Bieringer Add code for successful compiling under BSD, credits to Hubert Feyrer Cosmetic cleanups 0.10: Peter Bieringer redesigned to use a central libary for most of the functions moved option handling to getopts add option --maskprefix, --masksuffix for [full]uncompressed format 0.09: Peter Bieringer fix in 0.07 (addr2uncompaddr) won't work, refix now 0.08: Peter Bieringer fix Makefile and spec-file for RedHat 7.0.91 0.07: Peter Bieringer fix addr2uncompaddr, now ::/prefixlength is well converted 0.06: Peter Bieringer fix glibc-2.2.2 compilation problems, credits to Pekka Savola in addr2if_inet6.c, ipv6calc.c 0.05: Peter Bieringer if_inet62addr added, printhelp_function moved into related source file 0.04: Peter Bieringer addr2if_inet6 will now display scope value in hex (use some sources of kernel files to get scope rather than writing my own) cosmetic cleanups 0.03: Peter Bieringer Splitt away each function in a seperate file Working: addr2compaddr, addr2uncompaddr, addr2fulluncompaddr, addr2if_inet6 addr2ip6_int 0.02: Peter Bieringer Never published release, "addr2compaddr" is working 0.01: Peter Bieringer Initial start ipv6calc-4.1.0/INSTALLING000066400000000000000000000105351444154247200146250ustar00rootroot00000000000000ipv6calc INSTALLING Please read the file `README' before you start with the installation of the ipv6calc. USING RPM --------- This tar-ball provides a spec file for building a source and binary RPM using rpmbuild -ta ipv6calc-$version.tar.gz Available build options: --with ip2location --with geoip After successful build you got two packages: one source RPM ipv6calc-$version-$release.src.rpm and one binary RPM ipv6calc-$version-$release.$arch.rpm For installing use rpm -ihv ipv6calc-$version-$release.$arch.rpm For updating use rpm -Fhv ipv6calc-$version-$release.$arch.rpm For deinstalling use rpm -e ipv6calc RPM is currently tested on CentOS 5/6/7 / Fedora 20 HACKERS WAY ----------- cd /usr/src ; tar xvzf ipv6calc*.tar.gz ./configure --exec_prefix=/usr --mandir=/usr/share/man && make && make test && make -n install exec_prefix=/usr make install exec_prefix=/usr If you want to suppress configure's exec_prefix, specify bindir directly, e.g. ./configure --prefix=/usr/local --bindir /usr/local/bin --mandir /usr/local/share/man For Solaris 8 you need following packages installed: autoconf automake gcc make binutils cvs (optional) perl m4 For Gentoo you need following packages installed: dev-perl/URI dev-perl/Digest-SHA1 CONFIGURE --------- There is a configure script available. Following options are used: --bindir=/usr/bin (@bindir@) --mandir=/usr/share/man (@mandir@) --enable-ip2location (see below for more information) --enable-geoip (see below for more information) Execute: ./configure --bindir=/usr/bin --mandir=/usr/share/man UPDATE OF DATABASES ------------------- ipv6calc contains several databases, currently * OUI (24/36) type (IEEE) * IAB type (IEEE) * IPv4 address space assignment * IPv6 address space assignment * AS * CC to update this database before compilation you need: - install perl, wget - run "make update" See also: ./databases/registries/README ./databases/ipv4-assignment/README ./databases/ipv6-assignment/README ./databases/ieee-iab/README ./databases/ieee-oui/README ./databases/ieee-oui36/README IP2LOCATION LIBRARY ------------------- You can use the IP2Location library with ipv6calc. The library is available at , and the currently supported version is at least 2.1.3 (versions below are NOT supported). The support is enabled with the --enable-ip2location configure option. If you have installed the IP2Location library in a non-standard place, you may find the --with-ip2location-headers=DIR and --with-ip2location-lib=DIR configure options useful. If you have problems finding the library at runtime, try linking it statically the --with-ip2location-static configure option. If you have problems building the IP2Location library, see the README.BUILDING-IP2LOCATION file in the ipv6calc distribution. GEOIP LIBRARY ------------- You can also use the GeoIP library with ipv6calc. The library is available at , and the currently supported version is 1.4.1 (although others may work too). The support is enabled with the --enable-geoip configure option. If you have installed the GeoIP library in a non-standard place, you may find the --with-geoip-headers=DIR and --with-geoip-lib=DIR configure options useful. If you have problems finding the library at runtime, try linking it statically the --with-geoip-static configure option. You can set the path to a default GeoIP database file by using the --with-geoip-default-file configure option. This file is used when ipv6calc is invoked with the '-G' (or '--db-geoip-default') option. See also README.BUILDING-GeoIP PREPARATIONS ------------ "make update" updates the databases for static built-in "make distclean" cleans the source "make updateclean" also cleans the database header files COMPILE ------- To compile simply use "make". There should be no warnings or errors occur. TESTING ------- It's very recommended to test the created binaries using "make test" or at least "make test-minimal" (this skips external database related tests). If using a build system, which has not GeoIP or IP2Location databases installed, but support was was enabled, use at least "make test-minimal" INSTALLATION ------------ If you want to install the binary use "make install". Peter Bieringer $Id: 19d44654331c7500d314d1607f0518a7da64cfa3 $ ipv6calc-4.1.0/LICENSE000066400000000000000000000020031444154247200142320ustar00rootroot000000000000000. The program "ipv6calc" is produced and copyright 2001-2015 by Peter Bieringer , except * some codelines regarding address type resolving, which were directly copied from Linux kernel source (also GPL license) related files are: - libipv6addr.c - libipv6addr.h * code for uncompressing IPv6 addresses, which was copied from "ircd" related file is - librfc1884.c * code for getopt (needed by OpenBSD) related files are: - getopt/getopt.c - getopt/getopt.h - getopt/getopt1.c * external databases fallback code (header files only) IP2Location (7.0.1): LGPL version 3 GeoIP (1.4.8): LGPL version 2.1 -> see directory "samplecode" in the source file for original versions * source data of databases IAB/OUI data is taken from IEEE IPv4/IPv6 assignment data is taken from registries RIPE NCC, APNIC, ARIN, LACNIC, AfriNIC 1. The program "ipv6calc" is distributed under the GNU GPL version 2 (see COPYING file for more) 2015-05-07, Peter Bieringer ipv6calc-4.1.0/Makefile.in000066400000000000000000000140721444154247200153030ustar00rootroot00000000000000# Project : ipv6calc # File : Makefile[.in] # Version : $Id: cb8f99510c18573121b4784ad54f34e0ec93d788 $ # Copyright : 2001-2019 by Peter Bieringer # # Information: # Main Makefile for ipv6calc project # # Compiler and Linker Options export DEFAULT_CFLAGS = -D_GNU_SOURCE -O2 -Wall -g @CFLAGS_EXTRA@ ifeq (@ENABLE_BUNDLED_GETOPT@, 1) GETOPT_MAKE = getopt-make GETOPT_DIR = getopt endif ifeq (@ENABLE_BUNDLED_MD5@, 1) MD5_MAKE = md5-make MD5_DIR = md5 endif ifeq (@ENABLE_MOD_IPV6CALC@, 1) MOD_IPV6CALC_MAKE = mod_ipv6calc-make MOD_IPV6CALC_DIR = mod_ipv6calc endif CC = @CC@ all: $(MD5_MAKE) $(GETOPT_MAKE) ipv6calc ipv6logconv ipv6logstats ipv6loganon $(MOD_IPV6CALC_MAKE) .c.o: $(CC) -c $< $(DEFAULT_CFLAGS) $(CFLAGS) $(INCLUDES) ipv6logconv: $(GETOPT_MAKE) lib-make ipv6logconv-make ipv6loganon: $(GETOPT_MAKE) lib-make ipv6loganon-make ipv6logstats-make ipv6logstats: $(GETOPT_MAKE) lib-make ipv6logstats-make ipv6calc: $(GETOPT_MAKE) lib-make ipv6calc-make ipv6calcweb-make updateclean: ${MAKE} distclean for dir in databases/ieee-oui databases/ieee-iab databases/ipv4-assignment databases/ipv6-assignment; do \ ocwd=`pwd`; \ cd $$dir || exit 1; \ ${MAKE} $@ ; r=$$?; \ rm -rf autom4te.cache; \ rm -rf autogen-all-variants.status; \ cd $$ocwd; if [ $$r -ne 0 ]; then echo "Result: $$r"; exit $$r; fi; \ done || exit 1 distclean: ${MAKE} clean rm -f config.cache config.status config.log rm -rf autom4te.cache for dir in ipv6logconv ipv6loganon ipv6logstats ipv6calcweb ipv6calc mod_ipv6calc man lib md5 getopt databases/lib databases/ieee-oui36 databases/lib databases/ieee-oui28 databases/lib databases/ieee-oui databases/ieee-iab databases/ipv4-assignment databases/ipv6-assignment databases/registries databases/as-assignment databases/cc-assignment tools; do \ ocwd=`pwd`; \ cd $$dir || exit 1; \ ${MAKE} $@ ; r=$$?; \ rm -rf autom4te.cache; \ cd $$ocwd ; if [ $$r -ne 0 ]; then echo "Result: $$r"; exit $$r; fi; \ done || exit 1 autoclean: ${MAKE} distclean rm -f Makefile rm -f contrib/ipv6calc.spec rm -f config.h for dir in ipv6logconv ipv6loganon ipv6logstats ipv6calcweb ipv6calc mod_ipv6calc man lib databases/lib md5 getopt tools; do \ ocwd=`pwd`; \ cd $$dir || exit 1; \ ${MAKE} $@ ; r=$$?; \ cd $$ocwd ; if [ $$r -ne 0 ]; then echo "Result: $$r"; exit $$r; fi; \ done || exit 1 clean: for dir in ipv6logconv ipv6loganon ipv6logstats ipv6calcweb ipv6calc mod_ipv6calc man lib databases/lib md5 getopt tools; do \ ocwd=`pwd`; \ cd $$dir || exit 1; \ ${MAKE} $@ ; r=$$?; \ cd $$ocwd ; if [ $$r -ne 0 ]; then echo "Result: $$r"; exit $$r; fi; \ done || exit 1 install: for dir in ipv6logconv ipv6loganon ipv6logstats ipv6calcweb ipv6calc $(MOD_IPV6CALC_DIR) man lib databases/lib tools; do \ ocwd=`pwd`; \ cd $$dir || exit 1; \ ${MAKE} install; r=$$?; \ cd $$ocwd ; if [ $$r -ne 0 ]; then echo "Result: $$r"; exit $$r; fi; \ done || exit 1 getopt-make: cd getopt && ${MAKE} md5-make: cd md5 && ${MAKE} lib-make: $(MD5_MAKE) $(GETOPT_MAKE) db-ieee-oui-make db-ieee-iab-make db-ipv4-assignment-make db-ipv6-assignment-make db-wrapper-make db-lib-make cd lib && ${MAKE} GETOPT_INCLUDE=@GETOPT_INCLUDE@ ipv6logconv-make: lib-make cd ipv6logconv && ${MAKE} ipv6loganon-make: lib-make cd ipv6loganon && ${MAKE} ipv6logstats-make: lib-make cd ipv6logstats && ${MAKE} ipv6calc-make: lib-make cd ipv6calc && ${MAKE} ipv6calcweb-make: ipv6calc-make cd ipv6calcweb && ${MAKE} mod_ipv6calc-make: lib-make cd mod_ipv6calc && ${MAKE} db-wrapper-make: cd databases/lib && ${MAKE} db-ieee-oui-make: cd databases/ieee-oui && ${MAKE} db-ieee-oui36-make: cd databases/ieee-oui36 && ${MAKE} db-ieee-iab-make: cd databases/ieee-iab && ${MAKE} db-ipv4-assignment-make: cd databases/ipv4-assignment && ${MAKE} db-ipv6-assignment-make: cd databases/ipv6-assignment && ${MAKE} db-cc-assignment-make: cd databases/cc-assignment && ${MAKE} db-as-assignment-make: cd databases/as-assignment && ${MAKE} db-lib-make: db-ieee-oui-make db-ieee-iab-make db-ipv4-assignment-make db-ipv6-assignment-make db-wrapper-make db-lib-make db-cc-assignment-make db-as-assignment-make cd databases/lib && ${MAKE} update: update-ieee for dir in databases/registries; do \ ocwd=`pwd`; \ cd $$dir || exit 1; \ ${MAKE} $@ || exit 1; \ cd $$ocwd ; \ done || exit 1 update-ieee: for dir in databases/ieee-oui databases/ieee-oui28 databases/ieee-oui36 databases/ieee-iab; do \ ocwd=`pwd`; \ cd $$dir || exit 1; \ ${MAKE} update || exit 1; \ cd $$ocwd ; \ done || exit 1 static: ipv6logconv-make ipv6loganon-make ipv6logstats-make ipv6calc-make for dir in ipv6logconv ipv6logstats ipv6loganon ipv6calc; do \ ocwd=`pwd`; \ cd $$dir || exit 1; \ ${MAKE} $@ ; r=$$?; \ cd $$ocwd ; if [ $$r -ne 0 ]; then echo "Result: $$r"; exit $$r; fi; \ done || exit 1 test: for dir in ipv6calc ipv6logconv ipv6logstats ipv6loganon ipv6calcweb $(MOD_IPV6CALC_DIR); do \ ocwd=`pwd`; \ cd $$dir || exit 1; \ ${MAKE} $@ ; r=$$?; \ cd $$ocwd ; if [ $$r -ne 0 ]; then echo "Result: $$r"; exit $$r; fi; \ done || exit 1 echo "ALL TESTS SUCCESSFUL" test-minimal: for dir in ipv6calc ipv6logconv ipv6logstats ipv6loganon ipv6calcweb; do \ ocwd=`pwd`; \ cd $$dir || exit 1; \ ${MAKE} $@ ; r=$$?; \ cd $$ocwd ; if [ $$r -ne 0 ]; then echo "Result: $$r"; exit $$r; fi; \ done test-ldlibpath: for dir in ipv6calc ipv6logconv ipv6logstats ipv6loganon ipv6calcweb; do \ ocwd=`pwd`; \ cd $$dir || exit 1; \ ${MAKE} $@ ; r=$$?; \ cd $$ocwd ; if [ $$r -ne 0 ]; then echo "Result: $$r"; exit $$r; fi; \ done codecheck: # catch use of strncpy LC_ALL=C find . -type f -name '*.c' | xargs -r grep strncpy || exit 0 # catch use of strcpy LC_ALL=C find . -type f -name '*.c' | xargs -r grep strcpy || exit 0 for dir in ipv6calc ipv6logconv ipv6logstats ipv6loganon; do \ ocwd=`pwd`; \ cd $$dir || exit 1; \ ${MAKE} $@ ; r=$$?; \ cd $$ocwd ; if [ $$r -ne 0 ]; then echo "Result: $$r"; exit $$r; fi; \ done || exit 1 ipv6calc-4.1.0/README000066400000000000000000000077021444154247200141200ustar00rootroot00000000000000ipv6calc will do some format changes and calculations for you (P) & (C) 2001-2023 by Peter Bieringer published under GNU GPLv2 For suggestions and bug report please contact author More help is available using 'ipv6calc -?' Intention: * This utility can be used by the IPv6 enabled initscripts for better duplicate address detection on setup of IPv6 addresses * Also migrate "ip6_int" of Keith Owens into this utility Known bugs: * ipv6calc is sure not the securest C program around the world Contents: * "ipv6calc": the main utility * "ipv6calcweb": CGI wrapper for ipv6calc's address information output * "ipv6logconv": log converter (IPv4/IPv6) * "ipv6loganon": log anonymizer (IPv4/IPv6) * "ipv6logstats": log statistic generator (IPv4/IPv6) * "mod_ipv6calc": Apache module Included internal databases: * IEEE IAB, OUI, OUI-36 databases (for decoding vendor part of MAC/EUI-48/EUI-64) * IPv4 assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for selecting proper registry in ipv6calcweb.cgi and IPv4 anonymization) * IPv6 assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for selecting proper registry in ipv6calcweb.cgi and IPv6 anonymization) * ASN assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for IPv4/IPv6 anonymization) Supported external databases: * GeoIP(MaxMindDB) - internally handled as GEOIP2 * IP2Location * DB-IP.com(MaxMindDB) - internally handled as DBIP2 Where to get: Homepage: https://www.deepspace6.net/projects/ipv6calc.html Latest version of sources: ftp://ftp.bieringer.de/pub/linux/IPv6/ipv6calc/ http://www.bieringer.de/ftp/pub/linux/IPv6/ipv6calc/ https://www.bieringer.de/ftp/pub/linux/IPv6/ipv6calc/ ftp://ftp.deepspace6.net/pub/ds6/sources/ipv6calc/ http://www.deepspace6.net/ftp/pub/ds6/sources/ipv6calc/ https://www.deepspace6.net/ftp/pub/ds6/sources/ipv6calc/ GitHub access: https://github.com/pbiering/ipv6calc Available formats: tar.gz spec-file is included, so you can build an RPM from source tarball using rpm -ta ipv6calc-version.tar.gz Ready to use packages for several operating systems: Linux: Fedora (https://src.fedoraproject.org/rpms/ipv6calc) Core 6: initial developing platform, so use given hint above to create a RPM since 7: package is included Enterprise Linux (https://src.fedoraproject.org/rpms/ipv6calc / https://koji.fedoraproject.org/koji/packageinfo?packageID=366): EL3: build from source package potentially still work but not tested anymore, OS is EOSL EL4: build from source package potentially still work but not tested anymore, OS is EOSL EL5: build from source package potentially still work but not tested anymore, OS is EOSL EL6: build from source package potentially still work but not tested anymore, OS is EOSL EL7: package is available via EPEL EL8: package is available via EPEL EL9: package is available via EPEL Mandrake (EOSL): similar to Red Hat, rebuild should work, too Debian: maintained package at http://packages.debian.org/ipv6calc Ubuntu: maintained package at http://packages.ubuntu.com/ipv6calc or http://packages.ubuntu.com/cgi-bin/search_packages.pl?searchon=names&version=all&exact=1&keywords=ipv6calc BSD: NetBSD: ftp://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/net/ipv6calc/README.html FreeBSD: http://www.freshports.org/net-mgmt/ipv6calc/ (http://www.freebsd.org/cgi/query-pr.cgi?pr=34441) OpenBSD: http://www.openbsd.org/cgi-bin/cvsweb/ports/net/ipv6calc/ Mailing lists: ipv6calc-announce Reason: sending announcements of new versions Traffic: very low Postings: only moderators are allowed to post, others are rejected automatically Subscription: http://lists.deepspace6.net/listinfo/ipv6calc-announce ipv6calc Reason: discussions Traffic: medium Postings: only subscribers are allowed to post Subscription: http://lists.deepspace6.net/listinfo/ipv6calc ipv6calc-4.1.0/README.DBIP000066400000000000000000000001161444154247200146250ustar00rootroot00000000000000GENERAL ------- db-ip.com(BerkeleyDB) support is dropped since ipv6calc 3.0.0 ipv6calc-4.1.0/README.DBIP2000066400000000000000000000025421444154247200147140ustar00rootroot00000000000000GENERAL ------- db-ip.com distributes since some time also binary loation file in MaxMindDB format see also README.MaxMindDB ENABLING SUPPORT ---------------- Install following RPMs (usually supported by distribution) maxminddb maxminddb-devel If you want to use the db-ip.com databases with ipv6calc, you will have only to enable the support using configure: --enable-maxminddb In case, dynamic load of library should be enabled (conditional MaxMindDB support), add --with-maxmindd-dynamic In case db-ip.com MaxMindDB support should be explicitly *disabled*, use --disable-dbip2 DATA UPDATE ----------- For regular (monthls) updates of the free available databases a download tool is also provided: DBIP-update.sh Commercial databases need a subscription and must be downloaded, decompressed and softlinked $ cd /var/local/share/DBIP $ wget http://download.db-ip.com/key/.mmdb -O dbip-location-isp-$(date +'%Y-%m').mmdb.gz $ gunzip dbip-location-isp-$(date +'%Y-%m').mmdb.gz $ ln -sf dbip-location-isp-$(date +'%Y-%m').mmdb.gz dbip-location-isp.mmdb the tool can help you here: $ DBIP-update.sh -U https://download.db-ip.com/key/.mmdb example ( is NOT working): $ DBIP-update.sh -U https://download.db-ip.com/key/0123456789abcdef0123456789abcdef01234567.mmdb $Id: f4c90c34014b897b6b43282136f5a28b9c207ede $ ipv6calc-4.1.0/README.External000066400000000000000000000021151444154247200156720ustar00rootroot00000000000000GENERAL ------- ipv6calc's internal databases * IPv4 assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for selecting proper registry in ipv6calcweb.cgi and IPv4 anonymization) * IPv6 assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for selecting proper registry in ipv6calcweb.cgi and IPv6 anonymization) * ASN assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for IPv4/IPv6 anonymization) can be overruled by using updated ones converted into Berkeley DB format. Therefore ipv6calc package contains the tools ipv6calc-create-registry-list-ipv4.pl ipv6calc-create-registry-list-ipv6.pl ipv6calc-update-registries.sh ipv6calc-registries-check-run-create.sh to generate Berkeley DB files from various registry data ENABLING SUPPORT ---------------- If you want to use the 'external' databases with ipv6calc, you will have only to enable the support using configure: --enable-external DATA UPDATE ----------- For regular (monthls) updates of the free available databases a download tool is also provided: ipv6calc-db-update.sh ipv6calc-4.1.0/README.GeoIP000066400000000000000000000001301444154247200150460ustar00rootroot00000000000000GENERAL ------- GeoIP(legacy) version 1 support is dropped since ipv6calc version 3.0.0 ipv6calc-4.1.0/README.GeoIP2000066400000000000000000000016151444154247200151410ustar00rootroot00000000000000GENERAL ------- MaxMind distributes since some time also binary loation file in MaxMindDB format (aka GeoIPv2) See also README.MaxMindDB ENABLING SUPPORT ---------------- Install following RPMs (usually supported by distribution) maxminddb maxminddb-devel If you want to use the GeoIPv2 databases with ipv6calc, you will have only to enable the support using configure: --enable-maxminddb In case, dynamic load of library should be enabled (conditional MaxMindDB support), add --with-maxmindd-dynamic In case GeoIPv2 support should be explicitly *disabled*, use --disable-geoip2 DATA UPDATE ----------- For regular (monthls) updates of the free available databases a download tool is also provided: GeoIP-update.sh Commercial databases need a subscription and must be downloaded and softlinked $ cd /var/local/share/GeoIP $Id: aeb337ebc91f9a9070b4808d2792d1562bd68cbd $ ipv6calc-4.1.0/README.IP2Location000066400000000000000000000077471444154247200162130ustar00rootroot00000000000000GENERAL ------- IP2Location changed the API layer several times 2.x (no longer in scope) 4.x -> 6.x 6.x -> 7.x 7.x -> 8.x To avoid issues caused by undetectable incompatibilities (no library version function provided so far), program will not start in case of dynamic linking an incompatible library. Supported so far: compiled with 4.0.2, supported library: 4.0.2 - 6.0.3 compiled with 6.0.x, supported library: 6.0.1 - 6.0.3 compiled with 7.0.0, supported library: 7.0.0 compiled with 8.0.4, supported library: 8.0.0 - In dynamic load configuration, this will detected and features will be deactivated Description of the various fields: http://www.ip2location.com/databases/db24-ip-country-region-city-latitude-longitude-zipcode-timezone-isp-domain-netspeed-areacode-weather-mobile-elevation-usagetype BUILDING IP2Location -------------------- If you want to use the IP2Location library with ipv6calc, you will have to build and install it yourself separately. Versions below 2.1.3 are NOT supported. Instructions for version 4.0.2 building as RPM Check for installed "libtool" package (otherwise, following error message appears: "configure.ac:40: error: possibly undefined macro: AC_PROG_LIBTOOL") Rebuild available SRPMS (this requires an RPM build environment): -Download SRPMS from http://rpm.pbone.net/index.php3 e.g. ftp://ftp.icm.edu.pl/vol/rzm2/linux-mandriva/official/2011/SRPMS/contrib/release/ip2location-4.0.2-1.src.rpm - extend .rpmmacros: # for Mandrake SRPMS on non Mandrake systems %mkrel() %1 %mklibname(ds) %{1}%{?2:%{2}}%{?3:_%{3}}%{-s:-static}%{-d:-devel} %mdkversion 201200 %configure2_5x %configure %make make %makeinstall_std %makeinstall - rebuild by $ rpmbuild --rebuild ip2location-4.0.2-1.src.rpm at least on Fedora 17 + RHEL/CentOS 6: $ QA_RPATHS=$[ 0x0002 ] rpmbuild --rebuild /tmp/ip2location-4.0.2-1.src.rpm Instructions for version 6.0.1 building as RPM "on-top" of SRPMS for 4.0.2 - download RPM from above, install source rpm rpm -ihv PATH/TO/ip2location-4.0.2-1.src.rpm - download newest version: https://www.ip2location.com/downloads/ip2location-c-6.0.1.tar.gz - store file in rpmbuild/SOURCES - apply changes to spec file - change version and source in spec file Version: 6.0.1 Source0: https://www.ip2location.com/downloads/ip2location-c-%{version}.tar.gz - remove Patch0 lines - remove IP2LOCATION_PRODUCTS_CATALOG.PDF from 2 lines - build binary package rpm -bb rpmbuild/SPECS/ip2location.spec From source code: See also instructions on https://www.ip2location.com/developers/c Note that sources are now available on GitHub Extract, configure & compile $ unzip -l master.zip $ cd IP2Location-C-Library-master $ autoreconf -i && ./configure && make Install as user "root" # make install This will install following files: /usr/local/include/IP2Location.h /usr/local/include/imath.h /usr/local/lib/libIP2Location.a /usr/local/lib/libIP2Location.la /usr/local/lib/libIP2Location.so Extend dynamic linking # echo "/usr/local/lib" >>/etc/ld.so.conf.d/usr-local-lib.conf # ldconfig Install databases # mkdir -p /var/local/share/IP2Location # cp data/IP* /var/local/share/IP2Location/ # chmod 644 /var/local/share/IP2Location/* Update databases (requires subscription) http://www.ip2location.com/IPV6-COUNTRY.aspx Enable IP2Location support by using following configure options: --enable-ip2location In case, dynamic load of library should be enabled (conditional IP2Location support), add --with-ip2location-dynamic Having IP2Location databases not stored in /usr/share/IP2Location (or a softlink created), add e.g. --with-ip2location-db=/var/local/share/IP2Location For more specifc options see ./configure --help DATA UPDATE --------------------- Create as user "root" database custom data directories: # mkdir -p /var/local/share/IP2Location For regular (monthls) updates of available free and permitted commercial databases a download tool is also provided: IP2Location-update.sh ipv6calc-4.1.0/README.MaxMindDB000066400000000000000000000010211444154247200156460ustar00rootroot00000000000000GENERAL ------- MaxMindDB support added since version 2.0.0 See also README.GeoIP2, README.DBIP2 ENABLING SUPPORT ---------------- Install following RPMs (usually supported by distribution) maxminddb maxminddb-devel In case, dynamic load of library should be enabled (conditional MaxMindDB support), add --with-maxmindd-dynamic COMPATIBILITY ------------- ipv6calc is tested against following MaxMindDB library versions 1.1.1 (EL6) 1.2.0 (EL7, FC29) $Id: 40a4d12de7538375cb97e459f5a72e10b061a8b4 $ ipv6calc-4.1.0/TODO000066400000000000000000000023001444154247200137150ustar00rootroot00000000000000# Project: ipv6calc # File : TODO # Version: $Id: 530b3e6934f5b3f85b9996d3fa9f9d9cc0ff775e $ TODO list ========= Next ---------- Short term ---------- Middle term ----------- * replace Berkeley DB with MMDB Format: * octal: should also be understandable by input (currently, only output is supported) IEEE/OUI library: * perhaps more filtering of unnecessary information Code quality: * review & improvements Help: * add more examples in inline help ipv6calcweb.cgi: * add alarm wrapper around call of ipv6calc Documentation: * add more information to USAGE docs Features requested from others: -call no kernel-specific or userland-specific functions, just C. ipv6calc C library would contain routines to represent the following forms (and convert between them): -x:x:x:x:x:x:x:x -:: -x:x:x:x:x:x:d.d.d.d -ipv6-address/prefix-length -scoped_address%scope_id -base 85 (compact notation) -URL's -binary labels -comparing addresses, v4/v4, v4/v6 -not use malloc or strxxx functions. External dependencies --------------------- Use of "splint" once variadic macros are supported http://splint.org/faq.html#quest18b ipv6calc-4.1.0/USAGE000066400000000000000000000026121444154247200140220ustar00rootroot00000000000000$Id: 5d35ac59733b0e774e5da52acb811c60bb1561c2 $ File: ipv6calc/ipv6calc see docs/ipv6calc.html for more Example for IP2Location information: $ ./ipv6calc/ipv6calc --db-ip2location-ipv4 /path/to/IP-COUNTRY-SAMPLE.BIN -q -m -i 66.1.2.3 IPV4=66.1.2.3 IPV4_REGISTRY=ARIN IP2LOCATION_COUNTRY_SHORT=US IP2LOCATION_COUNTRY_LONG=UNITED STATES IP2LOCATION_REGION=This parameter is unavailable for selected data file. Please upgrade the data file. IP2LOCATION_CITY=This parameter is unavailable for selected data file. Please upgrade the data file. IP2LOCATION_ISP=This parameter is unavailable for selected data file. Please upgrade the data file. IP2LOCATION_LATITUDE=0.000000 IP2LOCATION_LONGITUDE=0.000000 IP2LOCATION_DOMAIN=This parameter is unavailable for selected data file. Please upgrade the data file. IP2LOCATION_ZIPCODE=This parameter is unavailable for selected data file. Please upgrade the data file. IPV6CALC_NAME=ipv6calc IPV6CALC_VERSION=0.52cvs IPV6CALC_COPYRIGHT="(P) & (C) 2001-2006 by Peter Bieringer " pipe mode: $ cat /proc/net/if_inet6 | awk '{ print $1 " " $3 }' | ./ipv6calc --ifinet6_to_compressed File: ipv6calcweb/ipv6calcweb.cgi see ipv6calcweb/USAGE for more File: ipv6logconv/ipv6logconv see examples/analog/run_analog.sh for more File: ipv6loganon/ipv6loganon see ipv6loganon/README for more File: ipv6logstats/ipv6logstats see ipv6logstats/example* for more ipv6calc-4.1.0/VERSION000066400000000000000000000000061444154247200142760ustar00rootroot000000000000004.1.0 ipv6calc-4.1.0/VERSION.in000066400000000000000000000000221444154247200147010ustar00rootroot00000000000000@PACKAGE_VERSION@ ipv6calc-4.1.0/autogen-all-variants.sh000077500000000000000000000243201444154247200176270ustar00rootroot00000000000000#!/usr/bin/env bash # # Project : ipv6calc # File : autogen-all-variants.sh # Copyright : 2011-2023 by Peter Bieringer # # Information: run autogen.sh with all supported variants # # history: can run also through various version of GeoIP (-g) and IP2Location (-i) libraries # see autogen-support.sh for details status_file="autogen-all-variants.status" ## Generate configure variants autogen_variants() { autogen_variants_list autogen_variants_list | while IFS="#" read options list; do echo "${options:+$options }--clang#$list" done autogen_variants_list | while IFS="#" read options list; do echo "${options:+$options }--gcc-Os#$list" done case "$OSTYPE" in freebsd*) # skip 32-bit builds on freebsd return ;; esac # skip IP2Location and MaxMindDB based autogen_variants_list | grep -Evw "(IP2LOCATION|GEOIP2|DBIP2)" | while IFS="#" read options list; do echo "${options:+$options }--m32#$list" done autogen_variants_list | grep -Evw "(IP2LOCATION|GEOIP2|DBIP2)" | while IFS="#" read options list; do echo "${options:+$options }--clang --m32#$list" done } autogen_variants_list() { if ! $skip_main_test; then cat <&2 exit 1 ;; esac done shift $[ $OPTIND - 1 ] source ./autogen-support.sh "source" if [ -n "$options_add" ]; then echo "INFO : additional options: $options_add" fi if [ -f "$status_file" ] && ! $dry_run; then echo "INFO : status file found: $status_file" if $force; then echo "NOTICE: remove status file (force)" rm $status_file else if grep -q ":END:" $status_file; then if $rerun; then echo "NOTICE: all runs successful, option -r given, status file removed (re-run)" rm $status_file else echo "NOTICE: all runs successful, nothing more to do (use -r for force a re-run)" exit 0 fi else if $rerun; then echo "NOTICE: option -r for forcing a re-run is useless, last run was not finished (use -f)" exit 0 fi fi fi fi if ! $dry_run; then if [ ! -f "$status_file" ]; then echo "INFO : status file missing, create: $status_file" date "+%s:START:${batch:+BATCHMODE}" >$status_file fi fi IONICE="ionice -c 3" if ! $IONICE true; then echo "NOTICE: disable use of ionice, not supported" IONICE="" fi # variants for liboption in "normal" "shared"; do if $skip_shared && [ "$liboption" = "shared" ]; then continue fi autogen_variants | while IFS="#" read token buildoptions testlist; do case "$OSTYPE" in freebsd*) case $token in BUNDLED) echo "NOTICE: disable on OSTYPE=$OSTYPE: $buildoptions" continue ;; esac esac buildoptions=$(echo $buildoptions) if [ -n "$options_add" ]; then if $no_static_build; then options="--no-static-build $options_add $buildoptions" else options="${options_add:+$options_add }$buildoptions" fi else if $no_static_build; then options="--no-static-build $buildoptions" else options="$buildoptions" fi fi case $liboption in shared) options="${options:+$options }-S" ;; esac # extend options in fallback case if [ -n "$ip2location_options_extra" ]; then if echo "$token" | grep -Fwq "IP2LOCATION"; then options="${options:+$options }$ip2location_options_extra" fi fi # check for already executed option combination if [ -f "$status_file" ]; then if [ -z "$testlist" ]; then if grep -Eq ":FINISHED:variants:$options:" $status_file; then echo "NOTICE: skip variant run (already finished) with: $options" continue fi else echo "NOTICE: testlist not empty, check dedicated build (testlist: $testlist) with: $options" fi fi if echo "$token" | grep -Ewq "$skip_token"; then echo "NOTICE: skip variant because of token: $token" if $dry_run; then date "+%s:FINISHED:variants:$options:SKIPPED" >>$status_file fi continue fi options_test="" if [ -n "$testlist" ]; then options_test="--no-test" fi if $dry_run; then echo "INFO : would call(dry-run): ./autogen.sh $options_test $options" if [ -z "$testlist" ]; then continue fi else # run autogen echo "INFO : call: ./autogen.sh $options_test $options" nice -n 20 $IONICE ./autogen.sh $options_test $options if [ $? -ne 0 ]; then echo "ERROR : autogen.sh reports an error with options: $options_test $options" if $batch; then date "+%s:BROKEN:variants:$options" >>$status_file else exit 1 fi else # add entry in log date "+%s:FINISHED:variants:$options:OK" >>$status_file fi fi if [ -n "$testlist" ]; then for entry in $testlist; do if grep -Eq ":FINISHED:variants:$options:TESTLIST-ENTRY=$entry" $status_file; then echo "NOTICE: skip variant test (already finished) with: $options and $entry" continue fi if $dry_run; then echo "INFO : would call(dry-run): ./autogen.sh $options (testlist entry: $entry)" continue fi name=${entry/:*} version=${entry/*:} lib=$(options_from_name_version $name $version "only-lib") libdir=$(options_from_name_version $name $version "only-libdir") if [ -z "$lib" ]; then echo "ERROR : something wrong in call of: options_from_name_version $name $version 'only-lib'" exit 1 fi if [ -z "$libdir" ]; then echo "ERROR : something wrong in call of: options_from_name_version $name $version 'only-libdir'" exit 1 fi if [ ! -e "$lib" ]; then echo "ERROR : library missing: $lib (got from: options_from_name_version $name $version 'only-lib')" exit 1 fi if [ ! -d "$libdir" ]; then echo "ERROR : library directory missing: $libdir (got from: options_from_name_version $name $version 'only-libdir')" exit 1 fi if $dynamic_load; then case $name in I*) feature_string="IP2Location" ;; G*) feature_string="GeoIP" ;; esac # check for feature dynamic load echo "INFO : call: LD_LIBRARY_PATH=$libdir ./ipv6calc/ipv6calc -v" if ! LD_LIBRARY_PATH="$libdir" ./ipv6calc/ipv6calc -v 2>&1 | grep version | grep -qw $feature_string; then echo "ERROR : call has not included required feature string '$feature_string': LD_LIBRARY_PATH=$libdir ./ipv6calc/ipv6calc -v" exit 1 fi echo "INFO : call: LD_LIBRARY_PATH=$libdir make test-ldlibpath" LD_LIBRARY_PATH="$libdir" $MAKE test-ldlibpath result=$? else echo "INFO : call: LD_PRELOAD=$lib make test-ldlibpath" LD_LIBRARY_PATH="$libdir" $MAKE test-ldlibpath result=$? fi if [ $result -ne 0 ]; then echo "ERROR : autogen.sh reports an error with options: $options during testlist entry: $entry" if $dynamic_load; then echo "NOTICE: executed command: LD_LIBRARY_PATH=$libdir make test-ldlibpath" else echo "NOTICE: executed command: LD_PRELOAD="$lib" make test-ldlibpath" fi if $batch; then date "+%s:BROKEN:variants:$options:TESTLIST-ENTRY=$entry" >>$status_file else exit 1 fi else date "+%s:FINISHED:variants:$options:TESTLIST-ENTRY=$entry" >>$status_file fi done fi done || exit 1 done if ! $dry_run; then if grep -q ":BROKEN:" $status_file; then echo "ERROR : there are BROKEN builds:" grep ":BROKEN:" $status_file exit 1 else echo "INFO : congratulations, all variants built successful!" fi date "+%s:END:" >>$status_file cat $status_file $MAKE autoclean >/dev/null if [ $? -ne 0 ]; then echo "ERROR : 'make autoclean' failed" exit 1 fi fi ipv6calc-4.1.0/autogen-support.sh000077500000000000000000000352041444154247200167510ustar00rootroot00000000000000#!/bin/bash # # Project : ipv6calc # File : autogen-support.sh # Copyright : 2014-2023 by Peter Bieringer # # Information: provide support functions to autogen.sh/autogen-all-variants.sh # # $BASE_DEVEL_IP2LCATION/ (default if unset: "..") # ip2location-c-8.2.0 # 20201011 #### Definitions # check for proper make if make -v 2>&1 | grep -wq "GNU"; then echo "INFO : make is GNU make -> OK" MAKE="make" else echo "WARN : make is NOT GNU make -> check for dedicated 'gmake'" if gmake -v 2>&1 | grep -wq "GNU"; then echo "NOTICE: gmake found and is GNU make -> OK" MAKE="gmake" else echo "ERROR : no GNU make found in path" exit 1 fi fi ## List of IP2Location versions (append newest one rightmost!) ip2location_versions="8.2.0 8.3.0 8.3.1 8.4.0 8.5.1 8.6.1" ip2location_versions_download="8.2.0 8.3.0 8.3.1 8.4.0 8.5.1 8.6.1" ip2location_url_base="https://www.ip2location.com/downloads/" ip2location_url_github="https://codeload.github.com/chrislim2888/IP2Location-C-Library/tar.gz/" ip2location_cross_version_test_blacklist() { local version_have=$(echo $1 | awk -F. '{ print $3 + $2 * 100 + $1 * 10000}') local version_test=$(echo $2 | awk -F. '{ print $3 + $2 * 100 + $1 * 10000}') if [ $version_have -ge 60000 -a $version_test -lt 60000 ]; then # incompatible API return 1 fi if [ $version_have -ge 60003 -a $version_test -lt 60003 ]; then # incompatible (library name got suffix .1) return 1 fi if [ $version_have -ge 70000 -a $version_test -lt 70000 ]; then # incompatible return 1 fi if [ $version_have -lt 70000 -a $version_test -ge 70000 ]; then # incompatible return 1 fi return 0 } #### NO CHANGES BELOW ### Automatic Definitions ### base directory for GeoIP/IP2Location BASE_SOURCES=${BASE_SOURCES:-~/Downloads} BASE_DEVEL_GEOIP=${BASE_DEVEL_GEOIP:-~/tmp} BASE_DEVEL_IP2LOCATION=${BASE_DEVEL_IP2LOCATION:-~/tmp} ### Functions Definitions ## generate GeoIP/IP2Location source package name from version # in download mode provide full URL nameversion_from_name_version() { local name="$1" local version="$2" local mode="$3" # optional (download|extract|outfile) local nameversion="" local version_numeric=$(echo "$version" | awk -F. '{ print $3 + $2 * 100 + $1 * 10000}') case $name in GeoIP|G) if [ "$mode" = "download" ]; then if [ $version_numeric -ge 10502 ]; then # since 1.5.2 on github nameversion="${geoip_url_github}v$version" else nameversion="${geoip_url_maxmind}GeoIP-$version.tar.gz" fi elif [ "$mode" = "outfile" ]; then if [ $version_numeric -ge 10502 ]; then # since 1.5.2 on github nameversion="geoip-api-c-$version.tar.gz" else nameversion="GeoIP-$version.tar.gz" fi else if [ $version_numeric -ge 10502 ]; then nameversion="geoip-api-c-$version" else nameversion="GeoIP-$version" fi fi ;; IP2Location|I) case $version in 4.*) nameversion="C-IP2Location-$version" ;; *) # default if [ "$mode" = "download" ]; then if [ $version_numeric -ge 80000 ]; then # since 8.0.0 on github nameversion="${ip2location_url_github}$version" else nameversion="${ip2location_url_base}ip2location-c-$version.tar.gz" fi elif [ "$mode" = "outfile" ]; then nameversion="ip2location-c-$version.tar.gz" elif [ "$mode" = "extract" ]; then case $version in 6.0.1|6.0.2|6.0.3|7.*|8.*) nameversion="ip2location-c-$version" ;; *) # default nameversion="IP2Location-c-$version" ;; esac else case $version in 8.*) nameversion="IP2Location-C-Library-$version" ;; 6.0.1|6.0.3|7.*) nameversion="ip2location-c-$version" ;; *) # default nameversion="IP2Location-c-$version" ;; esac fi esac ;; *) echo "ERROR : unsupported: $name" >&2 return 1 ;; esac echo "$nameversion" } ## retrieve IP2Location options from version options_from_name_version() { local name="$1" local version="$2" local output="$3" local nameversion=$(nameversion_from_name_version $name $version) case $name in IP2Location|I) local dir="$BASE_DEVEL_IP2LOCATION/$nameversion" libdir="$dir/libIP2Location/.libs" lib="$libdir/libIP2Location.so" result="--with-ip2location-headers=$dir/libIP2Location --with-ip2location-lib=$libdir" ;; *) echo "ERROR : unsupported: $name" >&2 return 1 ;; esac case $output in 'only-lib') echo "$lib" ;; 'only-libdir') echo "$libdir" ;; *) echo "$result" ;; esac } ## build IP2Location libraries build_library() { local name="$1" local version_selected="$2" echo "INFO : build: name=$name version=$version_selected" >&2 local versions="" local base_devel="" case $name in IP2Location|I) versions="$ip2location_versions" base_devel="$BASE_DEVEL_IP2LOCATION" ;; *) echo "ERROR : unsupported: $name" >&2 return 1 ;; esac result_all=0 autoreconf_version=$(autoreconf -V |grep autoreconf | awk '{ print $NF }' | awk -F. '{ print $1 * 1000 + $2 }') for version in $versions; do if [ ${version:0:1} = "!" ]; then echo "NOTICE: skip blacklisted version: $version" >&2 continue fi if [ -n "$version_selected" -a "$version" != "$version_selected" ]; then echo "NOTICE: skip not selected version: $version" >&2 continue fi local version_numeric=$(echo "$version" | awk -F. '{ print $3 + $2 * 100 + $1 * 10000}') local nameversion=$(nameversion_from_name_version $name $version) if [ ! -d "$base_devel/$nameversion" ]; then echo "ERROR : devel directory missing: $base_devel/$nameversion (forgot to extract?)" >&2 return 1 fi pushd $base_devel/$nameversion >/dev/null if [ $? -ne 0 ]; then echo "ERROR : can't change to directory: $base_devel/$nameversion (skip)" >&2 continue else echo "INFO : changed to directory: $base_devel/$nameversion" fi if $dry_run; then echo "INFO : would build library (dry-run): $name-$version ($nameversion)" continue else echo "INFO : build library: $name-$version ($nameversion)" fi case $name in IP2Location) case $version in 6.0.3) echo "NOTICE: $name-$version requires patching of Makefile.am" perl -pi -e 's/data/ /g' Makefile.am ;; esac autoreconf -fi && ./configure && make clean && make result=$? ;; esac popd >/dev/null if [ $result -ne 0 ]; then echo "ERROR : trouble during build of $name-$version ($nameversion)" >&2 result_all=1 break else echo "INFO : successful build of $name-$version ($nameversion)" >&2 build_library_status="$build_library_status $nameversion" fi done return $result_all } ## clean IP2Location libraries clean_versions() { local name="$1" local version_selected="$2" echo "INFO : clean: name=$name version=$version_selected" >&2 local versions="" local base_devel="" case $name in IP2Location|I) versions="$ip2location_versions" base_devel="$BASE_DEVEL_IP2LOCATION" ;; *) echo "ERROR : unsupported: $name" >&2 return 1 ;; esac result_all=0 for version in $versions; do if [ ${version:0:1} = "!" ]; then echo "NOTICE: skip blacklisted version: $version" >&2 continue fi if [ -n "$version_selected" -a "$version" != "$version_selected" ]; then echo "NOTICE: skip not selected version: $version" >&2 continue fi local nameversion=$(nameversion_from_name_version $name $version) if [ ! -d "$base_devel/$nameversion" ]; then echo "NOTICE: devel directory missing: $base_devel/$nameversion (nothing to clean)" >&2 continue fi if $dry_run; then echo "INFO : would remove: $base_devel/$nameversion" >&2 continue else echo "INFO : remove: $base_devel/$nameversion" >&2 fi rm -rf $base_devel/$nameversion result=$? if [ $result -ne 0 ]; then echo "ERROR : trouble during remove of of $name-$version ($nameversion)" >&2 result_all=1 break else echo "INFO : successful remove of $name-$version ($nameversion)" >&2 clean_library_status="$clean_library_status $nameversion" fi done return $result_all } ## extract IP2Location source packages extract_versions() { local name="$1" local version_selected="$2" echo "INFO : extract: name=$name version=$version_selected" >&2 case $name in IP2Location|I) versions="$ip2location_versions" base_devel="$BASE_DEVEL_IP2LOCATION" ;; *) echo "ERROR : unsupported: $name" >&2 return 1 ;; esac result_all=0 for version in $versions; do if [ ${version:0:1} = "!" ]; then echo "NOTICE: skip blacklisted version: $version" >&2 continue fi if [ -n "$version_selected" -a "$version" != "$version_selected" ]; then echo "NOTICE: skip not selected version: $version" >&2 continue fi local nameversion=$(nameversion_from_name_version $name $version extract) local nameversion_internal=$(nameversion_from_name_version $name $version) local file="$BASE_SOURCES/$nameversion.tar.gz" if [ ! -f "$file" ]; then echo "NOTICE: file not existing, can't extract: $file" >&2 continue fi if $dry_run; then echo "INFO : would extract source package (dry-run): $name-$version ($nameversion) from $file" >&2 continue else echo "INFO : extract source package: $name-$version ($nameversion): $file" >&2 fi if [ ! -d "$base_devel" ]; then echo "ERROR : base devel directory missing: $base_devel" >&2 return 1 fi # check contents of tgz base_dir=$(tar tzf "$file" | head -1 | sed 's/^\.\///g' | awk -F / '{ print $1 }') if [ -z "$base_dir" ]; then echo "ERROR : can't extract base_dir from: $file" >&2 return 1 fi echo "INFO : file contains base_dir: $base_dir" >&2 if [ "$nameversion_internal" != "$base_dir" ]; then echo "ERROR : nameversion is not matching base_dir: $nameversion_internal <=> $base_dir (download broken or workaround required)" return 1 fi tar xzf "$file" -C $base_devel result=$? if [ $result -ne 0 ]; then echo "ERROR : trouble during extract of $name-$version ($nameversion) from $file" >&2 result_all=1 break else echo "INFO : successful extract of $name-$version ($nameversion) from $file to $base_devel" >&2 extract_library_status="$extract_library_status $nameversion" fi done return $result_all } ## retrieve IP2Location source packages download_versions() { local name="$1" local version_selected="$2" echo "INFO : download: name=$name version=$version_selected" >&2 case $name in IP2Location|I) versions="$ip2location_versions_download" base_devel="$BASE_DEVEL_IP2LOCATION" ;; *) echo "ERROR : unsupported: $name" >&2 return 1 ;; esac result_all=0 for version in $versions; do if [ ${version:0:1} = "!" ]; then echo "NOTICE: skip blacklisted version: $version" >&2 continue fi if [ -n "$version_selected" -a "$version" != "$version_selected" ]; then echo "NOTICE: skip not selected version: $version" >&2 continue fi local url=$(nameversion_from_name_version $name $version download) local outfile="$(nameversion_from_name_version $name $version outfile)" local outfile_option="" local outfile_option_info="" if ! echo "$url" | grep -q "$outfile"; then # URL does not contains outfile outfile_option="-O $outfile" outfile_option_info="($outfile_option)" fi if [ ! -d "$BASE_SOURCES" ]; then echo "ERROR : base source directory missing: $BASE_SOURCES (BASE_SOURCES)" >&2 return 1 fi pushd $BASE_SOURCES >/dev/null if [ $? -ne 0 ]; then echo "ERROR : can't change to directory: $BASE_SOURCES (BASE_SOURCES)" >&2 return 1 fi if $dry_run; then echo "INFO : would download source package (dry-run): $name-$version from $url $outfile_option_info" >&2 continue else echo "INFO : download source package: $name-$version from $url $outfile_option_info" >&2 fi wget -c -q "$url" $outfile_option result=$? popd >/dev/null if [ $result -ne 0 ]; then echo "ERROR : trouble during downloading of $name-$version from $url" >&2 result_all=1 break else echo "INFO : successful downloaded of $name-$version from $url to $BASE_SOURCES" >&2 download_library_status="$download_library_status $name:$version" fi done return $result_all } ## help help() { cat <]] $0 [-A] [-n] [GeoIP|IP2Location []] source: source mode (using functions only in main script) -D : download IP2Location source packages -C : clean IP2Location source packages -X : extract IP2Location source packages -B : build IP2Location libraries -A : whole chain: download/extract/build -n : dry-run (optionally, type and version can be specified) IP2Location: $ip2location_versions Prefix '!' means not supported on this platform -h|?: this online help used values from environment (or defaults): BASE_SOURCES=$BASE_SOURCES BASE_DEVEL_IP2LOCATION=$BASE_DEVEL_IP2LOCATION END } if [ "$1" != "source" ]; then # use script not only as source (function-mode) #### Main dry_run=false do_download=false do_clean=false do_extract=false do_build=false while getopts ":ADCXnB?h" opt; do case $opt in 'n') dry_run=true echo "NOTICE: dry-run selected" >&2 ;; 'A') action="prepare" do_download=true do_clean=true do_extract=true do_build=true ;; 'C') action="prepare" do_clean=true ;; 'D') action="prepare" do_download=true ;; 'X') action="prepare" do_extract=true ;; 'B') action="prepare" do_build=true ;; \?|h) help exit 1 ;; *) echo "Invalid option: -$OPTARG" >&2 exit 1 ;; esac done shift $[ $OPTIND - 1 ] case $action in 'prepare') if $do_download; then if [ -z "$*" ]; then download_versions GeoIP || exit 1 download_versions IP2Location || exit 1 else download_versions $* || exit 1 fi echo "INFO : following libraries were successfully downloaded: $download_library_status" >&2 fi if $do_clean; then if [ -z "$*" ]; then clean_versions GeoIP || exit 1 clean_versions IP2Location || exit 1 else clean_versions $* || exit 1 fi echo "INFO : following libraries were successfully cleaned: $clean_library_status" >&2 fi if $do_extract; then if [ -z "$*" ]; then extract_versions GeoIP || exit 1 extract_versions IP2Location || exit 1 else extract_versions $* || exit 1 fi echo "INFO : following libraries were successfully extracted: $extract_library_status" >&2 fi if $do_build; then if [ -z "$*" ]; then build_library IP2Location || exit 1 else build_library $* || exit 1 fi echo "INFO : following libraries were successfully built: $build_library_status" >&2 fi ;; *) help ;; esac fi ipv6calc-4.1.0/autogen.sh000077500000000000000000000162521444154247200152410ustar00rootroot00000000000000#!/usr/bin/env bash # # Project : ipv6calc # File : autogen.sh # Version : $Id: 04f3269586757e25087f0812cbad4785e3958fbc $ # Copyright : 2003-2021 by Peter Bieringer # # Information: autogeneration of projects with optional features OPTIONS_CONFIGURE="" flag_no_make=false use_ip2location=false use_ip2location_dyn=false RELAX=false SKIP_STATIC=false SKIP_TEST=false USE_CLANG=false LAST="" while [ "$1" != "$LAST" ]; do LAST="$1" case $1 in '--no-make'|'-n') shift flag_no_make=true ;; '--all'|'-a') shift OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE --enable-ip2location --enable-mmdb --enable-external --enable-mod_ipv6calc" SKIP_STATIC=true use_ip2location=true ;; '--ALL'|'-A') shift OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE --enable-ip2location --enable-mmdb --with-ip2location-dynamic --with-mmdb-dynamic --enable-external --enable-mod_ipv6calc" SKIP_STATIC=true use_ip2location=true ;; '--mmdb'|'-m') shift OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE --enable-mmdb" SKIP_STATIC=true ;; '--mmdb-dyn'|'-M') shift OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE --enable-mmdb --with-mmdb-dynamic" SKIP_STATIC=true ;; '--ip2location'|'-i') shift OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE --enable-ip2location" SKIP_STATIC=true use_ip2location=true ;; '--ip2location-dyn'|'-I') shift OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE --enable-ip2location --with-ip2location-dynamic" SKIP_STATIC=true use_ip2location=true use_ip2location_dyn=true ;; '--external'|'-e') shift OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE --enable-external" SKIP_STATIC=true ;; '--disable-db-ieee') shift OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE --disable-db-ieee" ;; '--disable-db-ipv4') shift OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE --disable-db-ipv4" ;; '--disable-db-ipv6') shift OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE --disable-db-ipv6" ;; '--disable-builtin') shift OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE --disable-db-ipv6 --disable-db-ipv4 --disable-db-ieee --disable-db-ipv4 --disable-db-ipv6 --disable-db-as-registry --disable-db-cc-registry" ;; '-S') shift OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE --enable-shared" SKIP_STATIC=true ;; '--no-static-build') shift SKIP_STATIC=true ;; '--no-test') shift SKIP_TEST=true ;; '--clang') shift USE_CLANG=true ;; '--gcc-Os') shift CFLAGS="$CFLAGS -Os" ;; '--m32') shift OPTIONS_CONFIGURE="${OPTIONS_CONFIGURE:+$OPTIONS_CONFIGURE }--enable-m32" ;; '--openssl-md5') shift OPTIONS_CONFIGURE="${OPTIONS_CONFIGURE:+$OPTIONS_CONFIGURE }--enable-openssl-md5" ;; '--relax') shift RELAX=true ;; '-?'|'-h'|'--help') echo "Supported options:" echo " -?|-h|--help : this help" echo " -n|--no-make : stop before running 'make'" echo " -a|--all : enable GeoIP/IP2Location/db-ip.com/External/mod_ipv6calc support" echo " -A|--ALL : enable GeoIP/IP2Location/db-ip.com/External/mod_ipv6calc support with dynamic library support" echo " -m|--mmdb : enable MaxMindDB support (GeoIP/db-ip.com)" echo " --mmdb-dyn|-M : switch to dynamic library loading of MaxMindDB" echo " --disable-geoip2 : disable MaxMindDB support for GeoIP" echo " --disable-dbip2 : disable MaxMindDB support for db-ip.com" echo " -i|--ip2location : enable IP2Location support" echo " --ip2location-dyn|-I: switch to dynamic library loading of IP2Location" echo " -e|--external : enable external database support" echo " --disable-db-ieee : disable built-in IEEE database" echo " --disable-db-ipv4 : disable built-in IPv4 database" echo " --disable-db-ipv6 : disable built-in IPv6 database" echo " --disable-builtin : disable all internal databases" echo " -S : enable shared library mode" echo " --no-static-build : skip static build" echo " --no-test : skip 'make test'" echo " --clang : use 'clang' instead of default (usually 'gcc')" echo " --gcc-Os : use 'gcc' option '-Os'" echo " --m32 : compile for 32-bit" echo " --enable-openssl-md5: use legacy OpenSSL MD5 implementation" echo " --relax : don't stop on compiler warnings" exit 1 ;; *) if [ -n "$1" ]; then OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE $1" shift fi ;; esac done source ./autogen-support.sh "source" if $use_ip2location; then if ! echo "$OPTIONS_CONFIGURE" | grep -q 'with-ip2location-headers='; then OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE" fi fi if $RELAX; then if ! echo "$OPTIONS_CONFIGURE" | grep -q 'disable-compiler-warning-to-error'; then OPTIONS_CONFIGURE="$OPTIONS_CONFIGURE --disable-compiler-warning-to-error" fi fi if [ -f Makefile ]; then echo "*** cleanup" $MAKE autoclean fi if $USE_CLANG; then if [ -x "/usr/bin/clang" ]; then export CC=/usr/bin/clang else echo "ERROR : --clang selected but binary is missing: /usr/bin/clang" exit 1 fi case "$OSTYPE" in freebsd*) # clang requires hint to /usr/local LDFLAGS=-L/usr/local/lib CFLAGS=-I/usr/local/include ;; esac fi echo "*** run: autoheader" autoheader || exit 1 echo "*** run: autoconf" autoconf || exit 1 echo "*** run: configure, options: $OPTIONS_CONFIGURE $*" CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" ./configure --bindir=/usr/bin --mandir=/usr/share/man $OPTIONS_CONFIGURE $* || exit 1 if $flag_no_make; then echo echo "Stop before running 'make'" exit fi echo "*** run: make clean" $MAKE clean || exit 1 if $use_ip2location_dyn; then if ldd ./ipv6calc/ipv6calc | grep -i IPLocation; then echo "ERROR : dynamic library mode enabled, but ldd of binary still reports reference to IP2Location" exit 1 fi fi if [ "$use_geoip_dyn" = "1" ]; then if ldd ./ipv6calc/ipv6calc | grep -i GeoIP; then echo "ERROR : dynamic library mode enabled, but ldd of binary still reports reference to GeoIP" exit 1 fi fi $MAKE if [ $? -ne 0 ]; then echo "ERROR : 'make' was not successful with configure options: $OPTIONS_CONFIGURE" exit 1 fi if $SKIP_TEST; then echo "*** skip: make test" else echo "*** run: make test" $MAKE test if [ $? -ne 0 ]; then echo "ERROR : 'make test' was not successful with configure options: $OPTIONS_CONFIGURE" exit 1 fi fi if ! $SKIP_STATIC && ! [ -e /etc/redhat-release ]; then # skip static on non Fedora/RedHat/CentOS systems SKIP_STATIC=true echo "NOTICE: 'make static' skipped on non Fedora/RedHat/CentOS systems" fi if grep -qF "#define ENABLE_OPENSSL_EVP_MD5 1" config.h; then # skip static when OpenSSL EVP MD5 is selected (unresolved issue) SKIP_STATIC=true echo "NOTICE: 'make static' skipped because OpenSSL EVP MD5 implementation is selected" fi if ! $SKIP_STATIC; then echo "*** run: make static" $MAKE static if [ $? -ne 0 ]; then echo "ERROR : 'make static' reports an error (perhaps glibc-static/openssl-static/zlib-static/libdb-devel-static is missing)" exit 1 fi fi echo "*** run: make -n install (dummy install test)" $MAKE -n install if [ $? -ne 0 ]; then echo "ERROR : 'make -n install' reports an error" exit 1 fi echo echo "For installing the binaries, type: make install" ipv6calc-4.1.0/config.h.in000066400000000000000000000157021444154247200152620ustar00rootroot00000000000000/* config.h.in. Generated from configure.in by autoheader. */ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD /* Copyright year */ #undef COPYRIGHT_YEAR /* Define db-ip.com (MaxMindDB) database directory. */ #undef DBIP2_DB /* Define if bundled GETOPT should be used */ #undef ENABLE_BUNDLED_GETOPT /* Define if bundled MD5 should be used */ #undef ENABLE_BUNDLED_MD5 /* Define if OpenSSL EVP MD5 should be used */ #undef ENABLE_OPENSSL_EVP_MD5 /* Define if OpenSSL legacy MD5 should be used */ #undef ENABLE_OPENSSL_MD5 /* Define external database directory. */ #undef EXTERNAL_DB /* Define GeoIP (MaxMindDB) database directory. */ #undef GEOIP2_DB /* Define if Berkeley DB support is required. */ #undef HAVE_BERKELEY_DB_SUPPORT /* Define to 1 if you have the declaration of `API_VERSION', and to 0 if you don't. */ #undef HAVE_DECL_API_VERSION /* Define to 1 if you have the declaration of `IP2Location_api_version_string', and to 0 if you don't. */ #undef HAVE_DECL_IP2LOCATION_API_VERSION_STRING /* Define to 1 if you have the declaration of `IP2Location_close', and to 0 if you don't. */ #undef HAVE_DECL_IP2LOCATION_CLOSE /* Define to 1 if you have the declaration of `IP2Location_get_country_long', and to 0 if you don't. */ #undef HAVE_DECL_IP2LOCATION_GET_COUNTRY_LONG /* Define to 1 if you have the declaration of `IP2Location_get_country_short', and to 0 if you don't. */ #undef HAVE_DECL_IP2LOCATION_GET_COUNTRY_SHORT /* Define to 1 if you have the declaration of `MMDB_lib_version', and to 0 if you don't. */ #undef HAVE_DECL_MMDB_LIB_VERSION /* Define to 1 if you have the declaration of `USAGETYPE', and to 0 if you don't. */ #undef HAVE_DECL_USAGETYPE /* Define to 1 if you have the `EVP_DigestFinal_ex' function. */ #undef HAVE_EVP_DIGESTFINAL_EX /* Define to 1 if you have the `EVP_DigestInit_ex' function. */ #undef HAVE_EVP_DIGESTINIT_EX /* Define to 1 if you have the `EVP_DigestUpdate' function. */ #undef HAVE_EVP_DIGESTUPDATE /* Define to 1 if you have the `EVP_md5' function. */ #undef HAVE_EVP_MD5 /* Define to 1 if you have the `EVP_MD_CTX_free' function. */ #undef HAVE_EVP_MD_CTX_FREE /* Define to 1 if you have the `EVP_MD_CTX_init' function. */ #undef HAVE_EVP_MD_CTX_INIT /* Define to 1 if you have the `EVP_MD_CTX_new' function. */ #undef HAVE_EVP_MD_CTX_NEW /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `MD5_Final' function. */ #undef HAVE_MD5_FINAL /* Define to 1 if you have the `MD5_Init' function. */ #undef HAVE_MD5_INIT /* Define to 1 if you have the `MD5_Update' function. */ #undef HAVE_MD5_UPDATE /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define IP2Location database directory. */ #undef IP2LOCATION_DB /* Define IP2Location dynamic library. */ #undef IP2LOCATION_DYN_LIB /* IP2Location include file version. */ #undef IP2LOCATION_INCLUDE_VERSION /* "API version Bugfix" */ #undef IPV6CALC_API_VERSION_BUGFIX /* "API version Major" */ #undef IPV6CALC_API_VERSION_MAJOR /* "API version Minor" */ #undef IPV6CALC_API_VERSION_MINOR /* "API version numeric" */ #undef IPV6CALC_API_VERSION_NUMERIC /* "API version as string" */ #undef IPV6CALC_API_VERSION_STRING /* "Package version Bugfix" */ #undef IPV6CALC_PACKAGE_VERSION_BUGFIX /* "Package version Major" */ #undef IPV6CALC_PACKAGE_VERSION_MAJOR /* "Package version Minor" */ #undef IPV6CALC_PACKAGE_VERSION_MINOR /* "Package version numeric" */ #undef IPV6CALC_PACKAGE_VERSION_NUMERIC /* "Package version as string" */ #undef IPV6CALC_PACKAGE_VERSION_STRING /* Define MaxMindDB database directory. */ #undef MMDB_DB /* Define MaxMindDB dynamic library. */ #undef MMDB_DYN_LIB /* MaxMindDB include file version. */ #undef MMDB_INCLUDE_VERSION /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define if you want ipv6calc binaries compiled with shared library libipv6calc */ #undef SHARED_LIBRARY /* Define to 1 if all of the C90 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* Define if you want general BuiltIn database included. */ #undef SUPPORT_BUILTIN /* Define if you want db-ip.com (MaxMindDB) support included. */ #undef SUPPORT_DBIP2 /* Define if you want AS-to-Registry database included. */ #undef SUPPORT_DB_AS_REG /* Define if you want CC-to-Registry database included. */ #undef SUPPORT_DB_CC_REG /* Define if you want IEEE database included. */ #undef SUPPORT_DB_IEEE /* Define if you want IPv4-to-Registry database included. */ #undef SUPPORT_DB_IPV4_REG /* Define if you want IPv6-to-Registry database included. */ #undef SUPPORT_DB_IPV6_REG /* Define if you want external support included. */ #undef SUPPORT_EXTERNAL /* Define if you want GeoIP (MaxMindDB) support. */ #undef SUPPORT_GEOIP2 /* Define if you want IP2Location support. */ #undef SUPPORT_IP2LOCATION /* Define if you want IP2Location support with dynamic loading support - requires also additional linker options. */ #undef SUPPORT_IP2LOCATION_DYN /* Define if you want IP2Location support statically linked - requires also additional linker options. */ #undef SUPPORT_IP2LOCATION_STATIC /* Define if you want MaxMindDB support. */ #undef SUPPORT_MMDB /* Define if you want MaxMindDB support with dynamic loading support - requires also additional linker options. */ #undef SUPPORT_MMDB_DYN /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD # if defined __BIG_ENDIAN__ # define WORDS_BIGENDIAN 1 # endif #else # ifndef WORDS_BIGENDIAN # undef WORDS_BIGENDIAN # endif #endif /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `long int' if does not define. */ #undef off_t /* Define to `unsigned int' if does not define. */ #undef size_t ipv6calc-4.1.0/configure000077500000000000000000007171441444154247200151570ustar00rootroot00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.71 for ipv6calc 4.1.0. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="as_nop=: if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ) then : else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 blah=\$(echo \$(echo blah)) test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null then : as_have_required=yes else $as_nop as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$as_shell as_have_required=yes if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null then : break 2 fi fi done;; esac as_found=false done IFS=$as_save_IFS if $as_found then : else $as_nop if { test -f "$SHELL" || test -f "$SHELL.exe"; } && as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$SHELL as_have_required=yes fi fi if test "x$CONFIG_SHELL" != x then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno then : printf "%s\n" "$0: This script requires a shell more modern than all" printf "%s\n" "$0: the shells that I found on your system." if test ${ZSH_VERSION+y} ; then printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and $0: ipv6calc@deepspace6.net about your system, including $0: any error possibly output before this message. Then $0: install a modern shell, or manually run the script $0: under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='ipv6calc' PACKAGE_TARNAME='ipv6calc' PACKAGE_VERSION='4.1.0' PACKAGE_STRING='ipv6calc 4.1.0' PACKAGE_BUGREPORT='ipv6calc@deepspace6.net' PACKAGE_URL='https://www.deepspace6.net/projects/ipv6calc.html' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_STDIO_H # include #endif #ifdef HAVE_STDLIB_H # include #endif #ifdef HAVE_STRING_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_header_c_list= ac_subst_vars='LTLIBOBJS LD_LIBRARY_PATH_BASIC LD_LIBRARY_PATH LDFLAGS_EXTRA_STATIC LDFLAGS_EXTRA_MOD_IPV6CALC LDFLAGS_EXTRA CFLAGS_EXTRA HTTPD_VERSION_MAJOR_MINOR HTTPD_SYSCONFDIR HTTPD_LIBEXECDIR APXS ENABLE_MOD_IPV6CALC DYNLOAD_LIB IP2LOCATION_DYN_LIB IP2LOCATION_DB IP2LOCATION_LIB_L2 IP2LOCATION_LIB_L1 IP2LOCATION_LIB IP2LOCATION_INCLUDE_L2 IP2LOCATION_INCLUDE_L1 IP2LOCATION_INCLUDE DBIP2_DB MMDB_DYN_LIB MMDB_LIB_L2 MMDB_LIB_L1 MMDB_LIB MMDB_INCLUDE_L1 MMDB_INCLUDE_L2 MMDB_INCLUDE_VERSION MMDB_INCLUDE EXTERNAL_DB IPV6CALC_LIB SHARED_LIBRARY ENABLE_OPENSSL_MD5 ENABLE_OPENSSL_EVP_MD5 ENABLE_BUNDLED_MD5 MD5_INCLUDE ENABLE_BUNDLED_GETOPT GETOPT_INCLUDE LIBOBJS EGREP GREP SET_MAKE RANLIB OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC AWK COPYRIGHT_YEAR target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_m32 enable_compiler_warning_to_error enable_bundled_getopt enable_bundled_md5 enable_openssl_evp_md5 enable_openssl_md5 enable_shared enable_dynamic_load enable_db_ieee enable_db_ipv4 enable_db_ipv6 enable_db_as_registry enable_db_cc_registry enable_builtin enable_external with_external_db enable_mmdb with_mmdb_dynamic with_mmdb_headers with_mmdb_lib with_mmdb_dyn_lib enable_geoip2 enable_dbip2 enable_dbip with_dbip_db enable_ip2location with_ip2location_dynamic with_ip2location_headers with_ip2location_headers_fallback with_ip2location_lib with_ip2location_static with_ip2location_db with_ip2location_dyn_lib enable_geoip with_geoip_dynamic with_geoip_headers with_geoip_headers_fallback with_geoip_lib with_geoip_static with_geoip_dyn_lib with_geoip_ipv6_compat with_geoip_db enable_mod_ipv6calc with_apxs ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures ipv6calc 4.1.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/ipv6calc] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of ipv6calc 4.1.0:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-m32 Enable 32-bit compilation --disable-compiler-warning-to-error Disable extra CFLAGS for mapping warnings to errors during compilation --enable-bundled-getopt Enable bundled getopt library (default: autoselected) --enable-bundled-md5 Enable bundled MD5 library (default: autoselected) --enable-openssl-evp-md5 Enforce use of OpenSSL EVP MD5 implementation (default: autoselected) --enable-openssl-md5 Enforce use of OpenSSL legacy MD5 implementation (default: autoselected) --enable-shared Enable shared library build (default: disabled) --disable-dynamic-load Disable dynamic load of libraries (default: enabled) --disable-db-ieee Disable built-in IEEE database (default: enabled) --disable-db-ipv4 Disable built-in IPv4-to-Registry database (default: enabled) --disable-db-ipv6 Disable built-in IPv6-to-Registry database (default: enabled) --disable-db-as-registry Disable built-in AS-to-Registry database (default: enabled) --disable-db-cc-registry Disable built-in CountryCode-to-Registry database (default: enabled) --disable-builtin Disable all built-in databases (default: enabled) --enable-external Enable external db support (default: disabled) --enable-mmdb Enable MaxMindDB support (GeoIP/db-ip.com) (default: disabled) --disable-geoip2 Disable MaxMindDB support for GeoIP (default: enabled) --disable-dbip2 Disable MaxMindDB support for db-ip.com (default: enabled) --enable-dbip Compatibility Dummy (no longer supported) --enable-ip2location Enable IP2Location support (default: disabled) --enable-geoip Compatibility Dummy (no longer supported) --enable-mod_ipv6calc Enable build of mod_ipv6calc for Apache (default: disabled) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-external-db=DIR Use specified external database directory, default: /usr/share/ipv6calc/db --with-mmdb-dynamic Enable use of dynamic loading of MaxMindDB library (default=no) --with-mmdb-headers=DIR MaxMindDB include files location --with-mmdb-lib=DIR MaxMindDB library location --with-mmdb-dyn-lib=NAME Use specified MaxMindDB dynamic library, default: libmaxminddb.so.0 --with-dbip-db=DIR Use specified db-ip.com database directory, default: /usr/share/DBIP --with-ip2location-dynamic Enable use of dynamic loading of IP2Location library (default=no) --with-ip2location-headers=DIR IP2Location include files location --with-ip2location-headers-fallback Compatibility Dummy (no longer supported) --with-ip2location-lib=FILE IP2Location library location --with-ip2location-static Explicitly link IP2Location statically (default=no) --with-ip2location-db=DIR Use specified IP2Location database directory, default: /usr/share/IP2Location --with-ip2location-dyn-lib=NAME Use specified IP2Location dynamic library, default: libIP2Location.so --with-geoip-dynamic Compatibility Dummy (no longer supported) --with-geoip-headers=DIR Compatibility Dummy (no longer supported) --with-geoip-headers-fallback Compatibility Dummy (no longer supported) --with-geoip-lib=DIR Compatibility Dummy (no longer supported) --with-geoip-static Compatibility Dummy (no longer supported) --with-geoip-dyn-lib=NAME Compatibility Dummy (no longer supported) --with-geoip-ipv6-compat Compatibility Dummy (no longer supported) --with-geoip-db=DIR Use specified GeoIP database directory, default: /usr/share/GeoIP --with-apxs=NAME name of the apxs executable (apxs) Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . ipv6calc home page: . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for configure.gnu first; this name is used for a wrapper for # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF ipv6calc configure 4.1.0 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_try_run LINENO # ---------------------- # Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that # executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: program exited with status $ac_status" >&5 printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. */ #include #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main (void) { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR # ------------------------------------------------------------------ # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. ac_fn_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 printf %s "checking whether $as_decl_name is declared... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` eval ac_save_FLAGS=\$$6 as_fn_append $6 " $5" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext eval $6=\$ac_save_FLAGS fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_check_decl ac_configure_args_raw= for ac_arg do case $ac_arg in *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_configure_args_raw " '$ac_arg'" done case $ac_configure_args_raw in *$as_nl*) ac_safe_unquote= ;; *) ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. ac_unsafe_a="$ac_unsafe_z#~" ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; esac cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by ipv6calc $as_me 4.1.0, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Sanitize IFS. IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && printf "%s\n" "$as_me: caught signal $ac_signal" printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi for ac_site_file in $ac_site_files do case $ac_site_file in #( */*) : ;; #( *) : ac_site_file=./$ac_site_file ;; esac if test -f "$ac_site_file" && test -r "$ac_site_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Test code for whether the C compiler supports C89 (global declarations) ac_c_conftest_c89_globals=' /* Does the compiler advertise C89 conformance? Do not test the value of __STDC__, because some compilers set it to 0 while being otherwise adequately conformant. */ #if !defined __STDC__ # error "Compiler does not advertise C89 conformance" #endif #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ struct buf { int x; }; struct buf * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not \xHH hex character constants. These do not provoke an error unfortunately, instead are silently treated as an "x". The following induces an error, until -std is added to get proper ANSI mode. Curiously \x00 != x always comes out true, for an array size at least. It is necessary to write \x00 == 0 to get something that is true only with -std. */ int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) '\''x'\'' int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), int, int);' # Test code for whether the C compiler supports C89 (body of main). ac_c_conftest_c89_main=' ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); ' # Test code for whether the C compiler supports C99 (global declarations) ac_c_conftest_c99_globals=' // Does the compiler advertise C99 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L # error "Compiler does not advertise C99 conformance" #endif #include extern int puts (const char *); extern int printf (const char *, ...); extern int dprintf (int, const char *, ...); extern void *malloc (size_t); // Check varargs macros. These examples are taken from C99 6.10.3.5. // dprintf is used instead of fprintf to avoid needing to declare // FILE and stderr. #define debug(...) dprintf (2, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK #error "your preprocessor is broken" #endif #if BIG_OK #else #error "your preprocessor is broken" #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) continue; return 0; } // Check varargs and va_copy. static bool test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str = ""; int number = 0; float fnumber = 0; while (*format) { switch (*format++) { case '\''s'\'': // string str = va_arg (args_copy, const char *); break; case '\''d'\'': // int number = va_arg (args_copy, int); break; case '\''f'\'': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); return *str && number && fnumber; } ' # Test code for whether the C compiler supports C99 (body of main). ac_c_conftest_c99_main=' // Check bool. _Bool success = false; success |= (argc != 0); // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[0] = argv[0][0]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' || dynamic_array[ni.number - 1] != 543); ' # Test code for whether the C compiler supports C11 (global declarations) ac_c_conftest_c11_globals=' // Does the compiler advertise C11 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L # error "Compiler does not advertise C11 conformance" #endif // Check _Alignas. char _Alignas (double) aligned_as_double; char _Alignas (0) no_special_alignment; extern char aligned_as_int; char _Alignas (0) _Alignas (int) aligned_as_int; // Check _Alignof. enum { int_alignment = _Alignof (int), int_array_alignment = _Alignof (int[100]), char_alignment = _Alignof (char) }; _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); // Check _Noreturn. int _Noreturn does_not_return (void) { for (;;) continue; } // Check _Static_assert. struct test_static_assert { int x; _Static_assert (sizeof (int) <= sizeof (long int), "_Static_assert does not work in struct"); long int y; }; // Check UTF-8 literals. #define u8 syntax error! char const utf8_literal[] = u8"happens to be ASCII" "another string"; // Check duplicate typedefs. typedef long *long_ptr; typedef long int *long_ptr; typedef long_ptr long_ptr; // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. struct anonymous { union { struct { int i; int j; }; struct { int k; long int l; } w; }; int m; } v1; ' # Test code for whether the C compiler supports C11 (body of main). ac_c_conftest_c11_main=' _Static_assert ((offsetof (struct anonymous, i) == offsetof (struct anonymous, w.k)), "Anonymous union alignment botch"); v1.i = 2; v1.w.k = 5; ok |= v1.i != 5; ' # Test code for whether the C compiler supports C11 (complete). ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} ${ac_c_conftest_c11_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} ${ac_c_conftest_c11_main} return ok; } " # Test code for whether the C compiler supports C99 (complete). ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} return ok; } " # Test code for whether the C compiler supports C89 (complete). ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} return ok; } " as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu COPYRIGHT_YEAR=2023 PACKAGE_VERSION_MAJOR=4 PACKAGE_VERSION_MINOR=1 PACKAGE_VERSION_BUGFIX=0 API_VERSION_MAJOR=4 API_VERSION_MINOR=1 API_VERSION_BUGFIX=0 printf "%s\n" "#define COPYRIGHT_YEAR \"$COPYRIGHT_YEAR\"" >>confdefs.h PACKAGE_VERSION_NUMERIC=$(echo "$PACKAGE_VERSION_MAJOR $PACKAGE_VERSION_MINOR $PACKAGE_VERSION_BUGFIX" | awk '{ print ( $1 * 1000 + $2 ) * 1000 + $3 }') PACKAGE_VERSION_STRING=$(echo "$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_BUGFIX") printf "%s\n" "#define IPV6CALC_PACKAGE_VERSION_MAJOR $PACKAGE_VERSION_MAJOR " >>confdefs.h printf "%s\n" "#define IPV6CALC_PACKAGE_VERSION_MINOR $PACKAGE_VERSION_MINOR " >>confdefs.h printf "%s\n" "#define IPV6CALC_PACKAGE_VERSION_BUGFIX $PACKAGE_VERSION_BUGFIX " >>confdefs.h printf "%s\n" "#define IPV6CALC_PACKAGE_VERSION_STRING \"$PACKAGE_VERSION_STRING\"" >>confdefs.h printf "%s\n" "#define IPV6CALC_PACKAGE_VERSION_NUMERIC $PACKAGE_VERSION_NUMERIC " >>confdefs.h API_VERSION_NUMERIC=$(echo "$API_VERSION_MAJOR $API_VERSION_MINOR $API_VERSION_BUGFIX" | awk '{ print ( $1 * 1000 + $2 ) * 1000 + $3 }') API_VERSION_STRING=$(echo "$API_VERSION_MAJOR.$API_VERSION_MINOR.$API_VERSION_BUGFIX") printf "%s\n" "#define IPV6CALC_API_VERSION_MAJOR $API_VERSION_MAJOR " >>confdefs.h printf "%s\n" "#define IPV6CALC_API_VERSION_MINOR $API_VERSION_MINOR " >>confdefs.h printf "%s\n" "#define IPV6CALC_API_VERSION_BUGFIX $API_VERSION_BUGFIX " >>confdefs.h printf "%s\n" "#define IPV6CALC_API_VERSION_STRING \"$API_VERSION_STRING\"" >>confdefs.h printf "%s\n" "#define IPV6CALC_API_VERSION_NUMERIC $API_VERSION_NUMERIC " >>confdefs.h ac_config_headers="$ac_config_headers config.h" for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AWK+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 printf "%s\n" "$AWK" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AWK" && break done ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. set dummy ${ac_tool_prefix}clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "clang", so it can be a program name with args. set dummy clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi fi test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 printf %s "checking whether the C compiler works... " >&6; } ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else $as_nop ac_file='' fi if test -z "$ac_file" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 printf %s "checking for C compiler default output file name... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else $as_nop { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 printf %s "checking for suffix of object files... " >&6; } if test ${ac_cv_objext+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 printf "%s\n" "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 printf %s "checking whether the compiler supports GNU C... " >&6; } if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes else $as_nop ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } ac_compiler_gnu=$ac_cv_c_compiler_gnu if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 printf %s "checking whether $CC accepts -g... " >&6; } if test ${ac_cv_prog_cc_g+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 printf "%s\n" "$ac_cv_prog_cc_g" >&6; } if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi ac_prog_cc_stdc=no if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c11_program _ACEOF for ac_arg in '' -std=gnu11 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c11=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } CC="$CC $ac_cv_prog_cc_c11" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 ac_prog_cc_stdc=c11 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c99_program _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c99" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c99" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } CC="$CC $ac_cv_prog_cc_c99" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 ac_prog_cc_stdc=c99 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c89_program _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c89" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c89" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } CC="$CC $ac_cv_prog_cc_c89" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 ac_prog_cc_stdc=c89 fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_RANLIB+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 printf "%s\n" "$RANLIB" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_RANLIB+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 printf "%s\n" "$ac_ct_RANLIB" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval test \${ac_cv_prog_make_${ac_make}_set+y} then : printf %s "(cached) " >&6 else $as_nop cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } SET_MAKE= else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi ac_header= ac_cache= for ac_item in $ac_header_c_list do if test $ac_cache; then ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then printf "%s\n" "#define $ac_item 1" >> confdefs.h fi ac_header= ac_cache= elif test $ac_header; then ac_cache=$ac_item else ac_header=$ac_item fi done if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes then : printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 printf %s "checking for grep that handles long lines and -e... " >&6; } if test ${ac_cv_path_GREP+y} then : printf %s "(cached) " >&6 else $as_nop if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in grep ggrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 printf "%s\n" "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" # Autoupdate added the next two lines to ensure that your configure # script's behavior did not change. They are probably safe to remove. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 printf %s "checking for egrep... " >&6; } if test ${ac_cv_path_EGREP+y} then : printf %s "(cached) " >&6 else $as_nop if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in egrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 printf "%s\n" "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 printf %s "checking for an ANSI C-conforming const... " >&6; } if test ${ac_cv_c_const+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* IBM XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_const=yes else $as_nop ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 printf "%s\n" "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then printf "%s\n" "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" if test "x$ac_cv_type_off_t" = xyes then : else $as_nop printf "%s\n" "#define off_t long int" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes then : else $as_nop printf "%s\n" "#define size_t unsigned int" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 printf %s "checking whether byte ordering is bigendian... " >&6; } if test ${ac_cv_c_bigendian+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO" then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main (void) { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main (void) { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_bigendian=yes else $as_nop ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_bigendian=yes else $as_nop ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ unsigned short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; unsigned short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } unsigned short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; unsigned short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main (void) { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main (void) { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_c_bigendian=no else $as_nop ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 printf "%s\n" "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h ;; #( no) ;; #( universal) printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) as_fn_error $? "unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac CFLAGS_EXTRA=-fPIC # Check whether --enable-m32 was given. if test ${enable_m32+y} then : enableval=$enable_m32; if test "$enable_m32" = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** switch to 32-bit compilation" >&5 printf "%s\n" "*** switch to 32-bit compilation" >&6; } CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-m32 -DMMDB_UINT128_IS_BYTE_ARRAY=1" LDFLAGS="${LDFLAGS:+$LDFLAGS }-m32" fi fi # Check whether --enable-compiler-warning-to-error was given. if test ${enable_compiler_warning_to_error+y} then : enableval=$enable_compiler_warning_to_error; else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: **** analyze compiler options: CC=$CC" >&5 printf "%s\n" "**** analyze compiler options: CC=$CC" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** check for CFLAGS: -Werror=format-security" >&5 printf "%s\n" "*** check for CFLAGS: -Werror=format-security" >&6; } CFLAGS_SAVE="$CFLAGS" CFLAGS="$CFLAGS -Wformat -Werror -Werror=format-security" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a=1; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** CFLAGS supported: -Werror=format-security" >&5 printf "%s\n" "*** CFLAGS supported: -Werror=format-security" >&6; } CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Wformat -Werror -Werror=format-security" else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** missing CFLAGS support: -Werror=format-security" >&5 printf "%s\n" "$as_me: WARNING: *** missing CFLAGS support: -Werror=format-security" >&2;} CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Wformat" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$CFLAGS_SAVE" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** check for CFLAGS: -Wsizeof-array-argument" >&5 printf "%s\n" "*** check for CFLAGS: -Wsizeof-array-argument" >&6; } CFLAGS_SAVE="$CFLAGS" CFLAGS="$CFLAGS -Wsizeof-array-argument" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a=1; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** CFLAGS supported: -Wsizeof-array-argument" >&5 printf "%s\n" "*** CFLAGS supported: -Wsizeof-array-argument" >&6; } CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Wsizeof-array-argument" else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** missing CFLAGS support: -Wsizeof-array-argument" >&5 printf "%s\n" "$as_me: WARNING: *** missing CFLAGS support: -Wsizeof-array-argument" >&2;} fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$CFLAGS_SAVE" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** check for CFLAGS: -Wparentheses-equality" >&5 printf "%s\n" "*** check for CFLAGS: -Wparentheses-equality" >&6; } CFLAGS_SAVE="$CFLAGS" CFLAGS="$CFLAGS -Wparentheses-equality" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a=1; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** CFLAGS supported: -Wparentheses-equality" >&5 printf "%s\n" "*** CFLAGS supported: -Wparentheses-equality" >&6; } CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Wparentheses-equality" else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** missing CFLAGS support: -Wparentheses-equality" >&5 printf "%s\n" "$as_me: WARNING: *** missing CFLAGS support: -Wparentheses-equality" >&2;} fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$CFLAGS_SAVE" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** check for CFLAGS: -Wextra" >&5 printf "%s\n" "*** check for CFLAGS: -Wextra" >&6; } CFLAGS_SAVE="$CFLAGS" CFLAGS="$CFLAGS -Wextra" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a=1; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** CFLAGS supported: -Wextra" >&5 printf "%s\n" "*** CFLAGS supported: -Wextra" >&6; } CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Wextra" else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** missing CFLAGS support: -Wextra" >&5 printf "%s\n" "$as_me: WARNING: *** missing CFLAGS support: -Wextra" >&2;} fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$CFLAGS_SAVE" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** check for CFLAGS: -Werror=format-truncation=0" >&5 printf "%s\n" "*** check for CFLAGS: -Werror=format-truncation=0" >&6; } CFLAGS_SAVE="$CFLAGS" CFLAGS="$CFLAGS -Werror -Werror=format-truncation=0" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a=1; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** CFLAGS supported: -Werror=format-truncation=0" >&5 printf "%s\n" "*** CFLAGS supported: -Werror=format-truncation=0" >&6; } # disable errors related to format-truncation CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Werror=format-truncation=0" else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** missing CFLAGS support: -Werror=format-truncation=0" >&5 printf "%s\n" "$as_me: WARNING: *** missing CFLAGS support: -Werror=format-truncation=0" >&2;} fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$CFLAGS_SAVE" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** check for CFLAGS: -Werror=char-subscripts" >&5 printf "%s\n" "*** check for CFLAGS: -Werror=char-subscripts" >&6; } CFLAGS_SAVE="$CFLAGS" CFLAGS="$CFLAGS -Werror -Werror=char-subscripts" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a=1; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** CFLAGS supported: -Werror=char-subscripts" >&5 printf "%s\n" "*** CFLAGS supported: -Werror=char-subscripts" >&6; } # disable errors related to format-truncation CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Werror=char-subscripts" else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** missing CFLAGS support: -Werror=char-subscripts" >&5 printf "%s\n" "$as_me: WARNING: *** missing CFLAGS support: -Werror=char-subscripts" >&2;} fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$CFLAGS_SAVE" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** check for CFLAGS: -Wno-deprecated-declarations" >&5 printf "%s\n" "*** check for CFLAGS: -Wno-deprecated-declarations" >&6; } CFLAGS_SAVE="$CFLAGS" CFLAGS="$CFLAGS -Werror -Wno-deprecated-declarations" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int a=1; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** CFLAGS supported: -Wno-deprecated-declarations" >&5 printf "%s\n" "*** CFLAGS supported: -Wno-deprecated-declarations" >&6; } # disable errors related to deprecated-declarations CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Wno-deprecated-declarations" else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** missing CFLAGS support: -Wno-deprecated-declarations" >&5 printf "%s\n" "$as_me: WARNING: *** missing CFLAGS support: -Wno-deprecated-declarations" >&2;} fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS="$CFLAGS_SAVE" fi ENABLE_BUNDLED_GETOPT=0 # Check whether --enable-bundled-getopt was given. if test ${enable_bundled_getopt+y} then : enableval=$enable_bundled_getopt; if test "$enable_bundled_getopt" = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** use of bundled getopt library forced" >&5 printf "%s\n" "*** use of bundled getopt library forced" >&6; } ENABLE_BUNDLED_GETOPT=1 else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** use of system getopt library forced" >&5 printf "%s\n" "*** use of system getopt library forced" >&6; } fi else $as_nop ac_fn_c_check_func "$LINENO" "getopt_long" "ac_cv_func_getopt_long" if test "x$ac_cv_func_getopt_long" = xyes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** use of system getopt library autoselected" >&5 printf "%s\n" "*** use of system getopt library autoselected" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** use of bundled getopt library autoselected" >&5 printf "%s\n" "*** use of bundled getopt library autoselected" >&6; } ENABLE_BUNDLED_GETOPT=1 fi fi if test "$ENABLE_BUNDLED_GETOPT" = "1"; then case " $LIBOBJS " in *" ../getopt/getopt.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS ../getopt/getopt.$ac_objext" ;; esac case " $LIBOBJS " in *" ../getopt/getopt1.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS ../getopt/getopt1.$ac_objext" ;; esac GETOPT_INCLUDE=-I../getopt printf "%s\n" "#define ENABLE_BUNDLED_GETOPT 1" >>confdefs.h fi ENABLE_BUNDLED_MD5=0 HAVE_OPENSSL_EVP_MD5=0 HAVE_OPENSSL_MD5=0 ENABLE_OPENSSL_EVP_MD5=0 ENABLE_OPENSSL_MD5=0 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** check for OpenSSL EVP MD5" >&5 printf "%s\n" "*** check for OpenSSL EVP MD5" >&6; } ac_fn_c_check_header_compile "$LINENO" "openssl/evp.h" "ac_cv_header_openssl_evp_h" "$ac_includes_default" if test "x$ac_cv_header_openssl_evp_h" = xyes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: openssl/evp.h header file found" >&5 printf "%s\n" "openssl/evp.h header file found" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EVP_DigestInit_ex in -lcrypto" >&5 printf %s "checking for EVP_DigestInit_ex in -lcrypto... " >&6; } if test ${ac_cv_lib_crypto_EVP_DigestInit_ex+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char EVP_DigestInit_ex (); int main (void) { return EVP_DigestInit_ex (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_crypto_EVP_DigestInit_ex=yes else $as_nop ac_cv_lib_crypto_EVP_DigestInit_ex=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_EVP_DigestInit_ex" >&5 printf "%s\n" "$ac_cv_lib_crypto_EVP_DigestInit_ex" >&6; } if test "x$ac_cv_lib_crypto_EVP_DigestInit_ex" = xyes then : LDFLAGS_ORIG="$LDFLAGS" LDFLAGS="-lcrypto $LDFLAGS" HAVE_OPENSSL_EVP_MD5=1 HAVE_OPENSSL_EVP_MD5_LEGACY=1 for ac_func in EVP_MD_CTX_new EVP_md5 EVP_DigestInit_ex EVP_DigestUpdate EVP_DigestFinal_ex EVP_MD_CTX_free do : as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF #define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: OpenSSL crypto library DOES NOT support MD5 via EVP" >&5 printf "%s\n" "$as_me: WARNING: OpenSSL crypto library DOES NOT support MD5 via EVP" >&2;} HAVE_OPENSSL_EVP_MD5=0 fi done for ac_func in EVP_MD_CTX_init EVP_md5 EVP_DigestInit_ex EVP_DigestUpdate EVP_DigestFinal_ex do : as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF #define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: OpenSSL crypto library DOES NOT support MD5 via EVP LEGACY" >&5 printf "%s\n" "$as_me: WARNING: OpenSSL crypto library DOES NOT support MD5 via EVP LEGACY" >&2;} HAVE_OPENSSL_EVP_MD5_LEGACY=0 fi done LDFLAGS="$LDFLAGS_ORIG" if test "$HAVE_OPENSSL_EVP_MD5" = "1"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** OpenSSL crypto library supports MD5 via EVP implementation" >&5 printf "%s\n" "*** OpenSSL crypto library supports MD5 via EVP implementation" >&6; } fi else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: OpenSSL crypto library DOES NOT support MD5 via EVP" >&5 printf "%s\n" "$as_me: WARNING: OpenSSL crypto library DOES NOT support MD5 via EVP" >&2;} fi else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: openssl/evp.h header file not found" >&5 printf "%s\n" "$as_me: WARNING: openssl/evp.h header file not found" >&2;} fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** check for OpenSSL legacy MD5" >&5 printf "%s\n" "*** check for OpenSSL legacy MD5" >&6; } ac_fn_c_check_header_compile "$LINENO" "openssl/md5.h" "ac_cv_header_openssl_md5_h" "$ac_includes_default" if test "x$ac_cv_header_openssl_md5_h" = xyes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: openssl/md5.h header file found" >&5 printf "%s\n" "openssl/md5.h header file found" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MD5_Init in -lcrypto" >&5 printf %s "checking for MD5_Init in -lcrypto... " >&6; } if test ${ac_cv_lib_crypto_MD5_Init+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char MD5_Init (); int main (void) { return MD5_Init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_crypto_MD5_Init=yes else $as_nop ac_cv_lib_crypto_MD5_Init=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_MD5_Init" >&5 printf "%s\n" "$ac_cv_lib_crypto_MD5_Init" >&6; } if test "x$ac_cv_lib_crypto_MD5_Init" = xyes then : LDFLAGS_ORIG="$LDFLAGS" LDFLAGS="-lcrypto $LDFLAGS" HAVE_OPENSSL_MD5=1 for ac_func in MD5_Init MD5_Update MD5_Final do : as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF #define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: OpenSSL crypto library supports MD5 via legacy implementation" >&5 printf "%s\n" "OpenSSL crypto library supports MD5 via legacy implementation" >&6; } HAVE_OPENSSL_MD5=0 fi done LDFLAGS="$LDFLAGS_ORIG" if test "$HAVE_OPENSSL_MD5" = "1"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** OpenSSL crypto library supports MD5 via legacy implementation" >&5 printf "%s\n" "*** OpenSSL crypto library supports MD5 via legacy implementation" >&6; } fi else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: OpenSSL crypto library DOES NOT support MD5 via legacy implementation" >&5 printf "%s\n" "$as_me: WARNING: OpenSSL crypto library DOES NOT support MD5 via legacy implementation" >&2;} fi else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: openssl/md5.h header file not found" >&5 printf "%s\n" "$as_me: WARNING: openssl/md5.h header file not found" >&2;} fi # Check whether --enable-bundled-md5 was given. if test ${enable_bundled_md5+y} then : enableval=$enable_bundled_md5; if test "$enable_bundled_md5" = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** use of bundled MD5 library forced" >&5 printf "%s\n" "*** use of bundled MD5 library forced" >&6; } ENABLE_BUNDLED_MD5=1 else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** use of OpenSSL MD5 library forced" >&5 printf "%s\n" "*** use of OpenSSL MD5 library forced" >&6; } fi else $as_nop if test "$HAVE_OPENSSL_EVP_MD5" = "0"; then if test "$HAVE_OPENSSL_MD5" = "0"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** use of bundled MD5 library autoselected because no OpenSSL support found" >&5 printf "%s\n" "*** use of bundled MD5 library autoselected because no OpenSSL support found" >&6; } ENABLE_BUNDLED_MD5=1 fi fi fi if test "$HAVE_OPENSSL_EVP_MD5" = "1"; then # precedence ENABLE_OPENSSL_EVP_MD5=1 elif test "$HAVE_OPENSSL_EVP_MD5_LEGACY" = "1"; then # precedence ENABLE_OPENSSL_EVP_MD5=1 else if test "$HAVE_OPENSSL_MD5" = "1"; then # fallback ENABLE_OPENSSL_MD5=1 fi fi # Check whether --enable-openssl-evp-md5 was given. if test ${enable_openssl_evp_md5+y} then : enableval=$enable_openssl_evp_md5; if test "$enable_openssl_evp_md5" = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** use of OpenSSL EVP MD5 implementation forced" >&5 printf "%s\n" "*** use of OpenSSL EVP MD5 implementation forced" >&6; } ENABLE_OPENSSL_EVP_MD5=1 ENABLE_OPENSSL_MD5=0 fi fi # Check whether --enable-openssl-md5 was given. if test ${enable_openssl_md5+y} then : enableval=$enable_openssl_md5; if test "$enable_openssl_md5" = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** use of OpenSSL legacy MD5 implementation forced" >&5 printf "%s\n" "*** use of OpenSSL legacy MD5 implementation forced" >&6; } ENABLE_OPENSSL_EVP_MD5=0 ENABLE_OPENSSL_MD5=1 fi fi if test "$ENABLE_BUNDLED_MD5" = "1"; then case " $LIBOBJS " in *" ../md5/md5.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS ../md5/md5.$ac_objext" ;; esac MD5_INCLUDE=-I../md5 printf "%s\n" "#define ENABLE_BUNDLED_MD5 1" >>confdefs.h else if test "$ENABLE_OPENSSL_EVP_MD5" = "1"; then LDFLAGS_EXTRA="${LDFLAGS_EXTRA:+$LDFLAGS_EXTRA }-lcrypto" LDFLAGS_EXTRA_MOD_IPV6CALC="-lcrypto $LDFLAGS_EXTRA_MOD_IPV6CALC" LDFLAGS_EXTRA_STATIC="${LDFLAGS_EXTRA_STATIC:+$LDFLAGS_EXTRA_STATIC }-lcrypto -lz -ldl -lpthread -lc" printf "%s\n" "#define ENABLE_OPENSSL_EVP_MD5 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** use of OpenSSL EVP MD5 implementation" >&5 printf "%s\n" "*** use of OpenSSL EVP MD5 implementation" >&6; } fi if test "$ENABLE_OPENSSL_MD5" = "1"; then LDFLAGS_EXTRA="${LDFLAGS_EXTRA:+$LDFLAGS_EXTRA }-lcrypto" LDFLAGS_EXTRA_MOD_IPV6CALC="-lcrypto $LDFLAGS_EXTRA_MOD_IPV6CALC" LDFLAGS_EXTRA_STATIC="${LDFLAGS_EXTRA_STATIC:+$LDFLAGS_EXTRA_STATIC }-lcrypto -lz -ldl -lpthread -lc" printf "%s\n" "#define ENABLE_OPENSSL_MD5 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** use of OpenSSL legacy MD5 implementation" >&5 printf "%s\n" "*** use of OpenSSL legacy MD5 implementation" >&6; } fi fi geoip_db_default="/usr/share/GeoIP" ip2location_db_default="/usr/share/IP2Location" dbip_db_default="/usr/share/DBIP" external_db_default="/usr/share/ipv6calc/db" mmdb_dyn_lib_default="libmaxminddb.so.0" ip2location_dyn_lib_default="libIP2Location.so.3" # Check whether --enable-shared was given. if test ${enable_shared+y} then : enableval=$enable_shared; fi if test "$enable_shared" = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** Shared library build enabled" >&5 printf "%s\n" "*** Shared library build enabled" >&6; } SHARED_LIBRARY="yes" printf "%s\n" "#define SHARED_LIBRARY 1" >>confdefs.h LDFLAGS_EXTRA_MOD_IPV6CALC="-Wl,../lib/libipv6calc.so.$PACKAGE_VERSION -Wl,../databases/lib/libipv6calc_db_wrapper.so.$PACKAGE_VERSION $LDFLAGS_EXTRA" LDFLAGS_EXTRA="../lib/libipv6calc.so.$PACKAGE_VERSION ../databases/lib/libipv6calc_db_wrapper.so.$PACKAGE_VERSION $LDFLAGS_EXTRA" LD_LIBRARY_PATH=../lib:../databases/lib:$LD_LIBRARY_PATH LD_LIBRARY_PATH_BASIC=../lib:../databases/lib:$LD_LIBRARY_PATH_BASIC else SHARED_LIBRARY="no" IPV6CALC_LIB="-L../lib/ -L../databases/lib/ -lipv6calc_db_wrapper -lipv6calc" fi ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" if test "x$ac_cv_header_dlfcn_h" = xyes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** Dynamic loading of libraries is SUPPORTED" >&5 printf "%s\n" "*** Dynamic loading of libraries is SUPPORTED" >&6; } DYNAMIC_LOAD_SUPPORT="yes" else $as_nop DYNAMIC_LOAD_SUPPORT="no" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: \"Dynamic loading of libraries is not supported, no header file found\"" >&5 printf "%s\n" "$as_me: WARNING: \"Dynamic loading of libraries is not supported, no header file found\"" >&2;} fi # Check whether --enable-dynamic-load was given. if test ${enable_dynamic_load+y} then : enableval=$enable_dynamic_load; fi if test "$enable_dynamic_load" = "yes"; then DYNAMIC_LOAD="no" else DYNAMIC_LOAD="yes" fi if test "$DYNAMIC_LOAD_SUPPORT" = "yes"; then if test "$DYNAMIC_LOAD" = "no"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: \"Dynamic loading of libraries forced to be disabled\"" >&5 printf "%s\n" "$as_me: WARNING: \"Dynamic loading of libraries forced to be disabled\"" >&2;} fi fi BUILTIN="no" # Check whether --enable-db-ieee was given. if test ${enable_db_ieee+y} then : enableval=$enable_db_ieee; DB_IEEE="$enable_db_ieee" else $as_nop DB_IEEE="yes" BUILTIN="yes" fi if test "$DB_IEEE" = "yes"; then printf "%s\n" "#define SUPPORT_DB_IEEE 1" >>confdefs.h fi # Check whether --enable-db-ipv4 was given. if test ${enable_db_ipv4+y} then : enableval=$enable_db_ipv4; DB_IPV4="$enable_db_ipv4" else $as_nop DB_IPV4="yes" BUILTIN="yes" fi if test "$DB_IPV4" = "yes"; then printf "%s\n" "#define SUPPORT_DB_IPV4_REG 1" >>confdefs.h fi # Check whether --enable-db-ipv6 was given. if test ${enable_db_ipv6+y} then : enableval=$enable_db_ipv6; DB_IPV6="$enable_db_ipv6" else $as_nop DB_IPV6="yes" BUILTIN="yes" fi if test "$DB_IPV6" = "yes"; then printf "%s\n" "#define SUPPORT_DB_IPV6_REG 1" >>confdefs.h fi # Check whether --enable-db-as-registry was given. if test ${enable_db_as_registry+y} then : enableval=$enable_db_as_registry; DB_AS_REG="$enable_db_as_registry" else $as_nop DB_AS_REG="yes" BUILTIN="yes" fi if test "$DB_AS_REG" = "yes"; then printf "%s\n" "#define SUPPORT_DB_AS_REG 1" >>confdefs.h fi # Check whether --enable-db-cc-registry was given. if test ${enable_db_cc_registry+y} then : enableval=$enable_db_cc_registry; DB_CC_REG="$enable_db_cc_registry" else $as_nop DB_CC_REG="yes" BUILTIN="yes" fi if test "$DB_CC_REG" = "yes"; then printf "%s\n" "#define SUPPORT_DB_CC_REG 1" >>confdefs.h fi # Check whether --enable-builtin was given. if test ${enable_builtin+y} then : enableval=$enable_builtin; DB_CC_REG="$enable_builtin" DB_AS_REG="$enable_builtin" DB_IEEE="$enable_builtin" DB_IPV4="$enable_builtin" DB_IPV6="$enable_builtin" fi if test "$BUILTIN" = "yes"; then printf "%s\n" "#define SUPPORT_BUILTIN 1" >>confdefs.h fi # Check whether --enable-external was given. if test ${enable_external+y} then : enableval=$enable_external; EXTERNAL="$enable_external" else $as_nop EXTERNAL="no" fi # Check whether --with-external-db was given. if test ${with_external_db+y} then : withval=$with_external_db; external_db="$with_external_db" else $as_nop external_db=$external_db_default fi if test "$EXTERNAL" = "yes"; then require_libdb="yes" printf "%s\n" "#define SUPPORT_EXTERNAL 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** external db dir: $external_db" >&5 printf "%s\n" "*** external db dir: $external_db" >&6; } printf "%s\n" "#define EXTERNAL_DB \"$external_db\"" >>confdefs.h fi EXTERNAL_DB=$external_db if test "$require_libdb" = "yes"; then ac_fn_c_check_header_compile "$LINENO" "db.h" "ac_cv_header_db_h" "$ac_includes_default" if test "x$ac_cv_header_db_h" = xyes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for db_create in -ldb" >&5 printf %s "checking for db_create in -ldb... " >&6; } if test ${ac_cv_lib_db_db_create+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ldb $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char db_create (); int main (void) { return db_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_db_db_create=yes else $as_nop ac_cv_lib_db_db_create=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_db_db_create" >&5 printf "%s\n" "$ac_cv_lib_db_db_create" >&6; } if test "x$ac_cv_lib_db_db_create" = xyes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Berkeley DB library found and usable: db_create" >&5 printf "%s\n" "Berkeley DB library found and usable: db_create" >&6; } else $as_nop as_fn_error $? "Berkeley DB library file misses: db_create" "$LINENO" 5 fi else $as_nop as_fn_error $? "Berkeley DB library header files not found (perhaps missing one of the following packages: db4-devel libdb-devel)" "$LINENO" 5 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for /sbin/ldconfig" >&5 printf %s "checking for /sbin/ldconfig... " >&6; } if test ${ac_cv_file__sbin_ldconfig+y} then : printf %s "(cached) " >&6 else $as_nop test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "/sbin/ldconfig"; then ac_cv_file__sbin_ldconfig=yes else ac_cv_file__sbin_ldconfig=no fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__sbin_ldconfig" >&5 printf "%s\n" "$ac_cv_file__sbin_ldconfig" >&6; } if test "x$ac_cv_file__sbin_ldconfig" = xyes then : DB_VERSION=`/sbin/ldconfig -p | grep -E '#?\s*libdb-[0-9]+.[0-9]+' | sed -e 's/^#\?\s*libdb-\([0-9]*\)\.\([0-9]*\).*/\1.\2/' | sort -n | tail -1` if test -n "$DB_VERSION"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Berkeley DB library version found: libdb-$DB_VERSION" >&5 printf "%s\n" "Berkeley DB library version found: libdb-$DB_VERSION" >&6; } LDFLAGS_EXTRA_STATIC="-ldb-$DB_VERSION${LDFLAGS_EXTRA_STATIC:+ $LDFLAGS_EXTRA_STATIC}" fi else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Missing /sbin/ldconfig, cannot detect Berkeley DB library version" >&5 printf "%s\n" "$as_me: WARNING: Missing /sbin/ldconfig, cannot detect Berkeley DB library version" >&2;} fi LDFLAGS_EXTRA="${LDFLAGS_EXTRA:+$LDFLAGS_EXTRA }-ldb" LDFLAGS_EXTRA_MOD_IPV6CALC="-ldb $LDFLAGS_EXTRA_MOD_IPV6CALC" HAVE_BERKELEY_DB_SUPPORT=1 printf "%s\n" "#define HAVE_BERKELEY_DB_SUPPORT 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** Berkeley DB library found and usable (required)" >&5 printf "%s\n" "*** Berkeley DB library found and usable (required)" >&6; } fi MMDB_LIB_NAME="maxminddb" MMDB_INCLUDE_VERSION="" # Check whether --enable-mmdb was given. if test ${enable_mmdb+y} then : enableval=$enable_mmdb; if test "$enable_mmdb" != "no"; then MMDB="$enable_mmdb" fi else $as_nop MMDB="no" fi # Check whether --with-mmdb-dynamic was given. if test ${with_mmdb_dynamic+y} then : withval=$with_mmdb_dynamic; if test "$with_mmdb_dynamic" != "no"; then MMDB_DYN="yes" fi fi # Check whether --with-mmdb-headers was given. if test ${with_mmdb_headers+y} then : withval=$with_mmdb_headers; MMDB_INCLUDE_DIR="$with_mmdb_headers" fi if test -n "$MMDB_INCLUDE_DIR"; then MMDB_INCLUDE="-I$MMDB_INCLUDE_DIR" if echo "$MMDB_INCLUDE_DIR" | grep -q "^/"; then # absolute path MMDB_INCLUDE_L1="-I$MMDB_INCLUDE_DIR" MMDB_INCLUDE_L2="-I$MMDB_INCLUDE_DIR" else MMDB_INCLUDE_L1="-I../$MMDB_INCLUDE_DIR" MMDB_INCLUDE_L2="-I../../$MMDB_INCLUDE_DIR" fi fi # Check whether --with-mmdb-lib was given. if test ${with_mmdb_lib+y} then : withval=$with_mmdb_lib; if test -d "$with_mmdb_lib"; then MMDB_LIB_DIR="$with_mmdb_lib" MMDB_LIB="-L$MMDB_LIB_DIR $MMDB_LIB" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: MaxMindDB library directory given: $MMDB_LIB_DIR" >&5 printf "%s\n" "MaxMindDB library directory given: $MMDB_LIB_DIR" >&6; } else as_fn_error $? "MaxMindDB library directory not found: $with_mmdb_lib" "$LINENO" 5 fi if echo "$MMDB_LIB_DIR" | grep -q "^/"; then # absolute path MMDB_LIB_L1="-L$MMDB_LIB_DIR" MMDB_LIB_L2="-L$MMDB_LIB_DIR" LD_LIBRARY_PATH=$MMDB_LIB_DIR:$LD_LIBRARY_PATH else MMDB_LIB_L1="-L../$MMDB_LIB_DIR" MMDB_LIB_L2="-L../../$MMDB_LIB_DIR" LD_LIBRARY_PATH=../$MMDB_LIB_DIR:$LD_LIBRARY_PATH fi fi # Check whether --with-mmdb-dyn-lib was given. if test ${with_mmdb_dyn_lib+y} then : withval=$with_mmdb_dyn_lib; mmdb_dyn_lib="$with_mmdb_dyn_lib" else $as_nop mmdb_dyn_lib=$mmdb_dyn_lib_default fi if test "$MMDB" = "yes"; then if test "$MMDB_DYN" != "yes"; then MMDB_LIB="-l$MMDB_LIB_NAME $MMDB_LIB" MMDB_LIB_L1="-l$MMDB_LIB_NAME $MMDB_LIB_L1" MMDB_LIB_L2="-l$MMDB_LIB_NAME $MMDB_LIB_L2" else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** MaxMindDB dynamic load support enabled, disable MaxMindDB linker options" >&5 printf "%s\n" "*** MaxMindDB dynamic load support enabled, disable MaxMindDB linker options" >&6; } fi CPPFLAGS="$CPPLAGS $MMDB_INCLUDE" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** MaxMindDB support requested" >&5 printf "%s\n" "*** MaxMindDB support requested" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ***** CPPFLAGS=$CPPFLAGS" >&5 printf "%s\n" "***** CPPFLAGS=$CPPFLAGS" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ***** CFLAGS =$CFLAGS" >&5 printf "%s\n" "***** CFLAGS =$CFLAGS" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ***** LDFLAGS =$LDFLAGS" >&5 printf "%s\n" "***** LDFLAGS =$LDFLAGS" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } if test ${ac_cv_c_undeclared_builtin_options+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_CFLAGS=$CFLAGS ac_cv_c_undeclared_builtin_options='cannot detect' for ac_arg in '' -fno-builtin; do CFLAGS="$ac_save_CFLAGS $ac_arg" # This test program should *not* compile successfully. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { (void) strchr; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop # This test program should compile successfully. # No library function is consistently available on # freestanding implementations, so test against a dummy # declaration. Include always-available headers on the # off chance that they somehow elicit warnings. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include extern void ac_decl (int, char *); int main (void) { (void) ac_decl (0, (char *) 0); (void) ac_decl; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : if test x"$ac_arg" = x then : ac_cv_c_undeclared_builtin_options='none needed' else $as_nop ac_cv_c_undeclared_builtin_options=$ac_arg fi break fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done CFLAGS=$ac_save_CFLAGS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } case $ac_cv_c_undeclared_builtin_options in #( 'cannot detect') : { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot make $CC report undeclared builtins See \`config.log' for more details" "$LINENO" 5; } ;; #( 'none needed') : ac_c_undeclared_builtin_options='' ;; #( *) : ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; esac ac_fn_c_check_header_compile "$LINENO" "maxminddb.h" "ac_cv_header_maxminddb_h" "$ac_includes_default" if test "x$ac_cv_header_maxminddb_h" = xyes then : if test -n "$MMDB_INCLUDE_DIR"; then if test -e "$MMDB_INCLUDE_DIR/maxminddb.h"; then CPPFLAGS="$CPPFLAGS -include $MMDB_INCLUDE_DIR/maxminddb.h" else as_fn_error $? "MaxMindDB library header file not found: $MMDB_INCLUDE_DIR/maxminddb.h" "$LINENO" 5 fi else CPPFLAGS="$CPPFLAGS -include maxminddb.h" fi ac_fn_check_decl "$LINENO" "MMDB_open" "ac_cv_have_decl_MMDB_open" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_MMDB_open" = xyes then : else $as_nop as_fn_error $? "MaxMindDB library header file misses MMDB_open" "$LINENO" 5 fi ac_fn_check_decl "$LINENO" "MMDB_lib_version" "ac_cv_have_decl_MMDB_lib_version" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_MMDB_lib_version" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_MMDB_LIB_VERSION $ac_have_decl" >>confdefs.h else $as_nop as_fn_error $? "MaxMindDB library header files not found" "$LINENO" 5 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** MaxMindDB database directory: $mmdb_db" >&5 printf "%s\n" "*** MaxMindDB database directory: $mmdb_db" >&6; } printf "%s\n" "#define MMDB_DB \"$mmdb_db\"" >>confdefs.h if test "$MMDB_DYN" != "yes"; then CPPFLAGS="$CFLAGS" if test -n "$MMDB_LIB_DIR"; then if test -e "$MMDB_LIB_DIR/lib$MMDB_LIB_NAME.so"; then LDFLAGS="$LDFLAGS -L$MMDB_LIB_DIR" CFLAGS="$CFLAGS -L$MMDB_LIB_DIR" LIBS="-L$MMDB_LIB_DIR" else as_fn_error $? "MaxMindDB library file not found: $MMDB_INCLUDE_DIR/lib$MMDB_LIB_NAME.so" "$LINENO" 5 fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ***** CPPFLAGS=$CPPFLAGS" >&5 printf "%s\n" "***** CPPFLAGS=$CPPFLAGS" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ***** CFLAGS =$CFLAGS" >&5 printf "%s\n" "***** CFLAGS =$CFLAGS" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ***** LDFLAGS =$LDFLAGS" >&5 printf "%s\n" "***** LDFLAGS =$LDFLAGS" >&6; } as_ac_Lib=`printf "%s\n" "ac_cv_lib_$MMDB_LIB_NAME""_MMDB_open" | $as_tr_sh` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MMDB_open in -l$MMDB_LIB_NAME" >&5 printf %s "checking for MMDB_open in -l$MMDB_LIB_NAME... " >&6; } if eval test \${$as_ac_Lib+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-l$MMDB_LIB_NAME $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char MMDB_open (); int main (void) { return MMDB_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$as_ac_Lib=yes" else $as_nop eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes" then : printf "%s\n" "#define SUPPORT_MMDB 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** MaxMindDB support enabled" >&5 printf "%s\n" "*** MaxMindDB support enabled" >&6; } else $as_nop as_fn_error $? "MaxMindDB library header files given but the library was not found, LDFLAGS=$LDFLAGS" "$LINENO" 5 fi else # wrapper detects by itself the real support { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** GeoIP dyn lib: $mmdb_dyn_lib" >&5 printf "%s\n" "*** GeoIP dyn lib: $mmdb_dyn_lib" >&6; } printf "%s\n" "#define MMDB_DYN_LIB \"$mmdb_dyn_lib\"" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** MaxMindDB support will be implemented by using dynamic load of library" >&5 printf "%s\n" "*** MaxMindDB support will be implemented by using dynamic load of library" >&6; } printf "%s\n" "#define SUPPORT_MMDB 1" >>confdefs.h printf "%s\n" "#define SUPPORT_MMDB_DYN 1" >>confdefs.h fi # GeoIPv2 and DBIPv2 support # Check whether --enable-geoip2 was given. if test ${enable_geoip2+y} then : enableval=$enable_geoip2; GEOIP2="no" else $as_nop GEOIP2="yes" fi # Check whether --enable-dbip2 was given. if test ${enable_dbip2+y} then : enableval=$enable_dbip2; DBIP2="no" else $as_nop DBIP2="yes" fi else GEOIP2=no DBIP2=no fi if test -n "$MMDB_INCLUDE_VERSION"; then printf "%s\n" "#define MMDB_INCLUDE_VERSION \"$MMDB_INCLUDE_VERSION\"" >>confdefs.h fi # Check whether --enable-dbip was given. if test ${enable_dbip+y} then : enableval=$enable_dbip; fi # Check whether --with-dbip-db was given. if test ${with_dbip_db+y} then : withval=$with_dbip_db; dbip_db="$with_dbip_db" else $as_nop dbip_db=$dbip_db_default fi if test "$DBIP2" = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** db-ip.com (MaxMindDB) support auotenabled\"" >&5 printf "%s\n" "*** db-ip.com (MaxMindDB) support auotenabled\"" >&6; } printf "%s\n" "#define SUPPORT_DBIP2 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** db-ip.com (MaxMindDB) database directory: $dbip_db" >&5 printf "%s\n" "*** db-ip.com (MaxMindDB) database directory: $dbip_db" >&6; } printf "%s\n" "#define DBIP2_DB \"$dbip_db\"" >>confdefs.h fi DBIP2_DB=$dbip_db IP2LOCATION_LIB_NAME="IP2Location" IP2LOCATION_INCLUDE_VERSION="" # Check whether --enable-ip2location was given. if test ${enable_ip2location+y} then : enableval=$enable_ip2location; IP2LOCATION="$enable_ip2location" else $as_nop IP2LOCATION="no" fi # Check whether --with-ip2location-dynamic was given. if test ${with_ip2location_dynamic+y} then : withval=$with_ip2location_dynamic; if test "$enable_ip2location_dynamic" != "no"; then IP2LOCATION_DYN="yes" fi fi # Check whether --with-ip2location-headers was given. if test ${with_ip2location_headers+y} then : withval=$with_ip2location_headers; IP2LOCATION_INCLUDE_DIR="$with_ip2location_headers" fi # Check whether --with-ip2location-headers-fallback was given. if test ${with_ip2location_headers_fallback+y} then : withval=$with_ip2location_headers_fallback; fi if test -n "$IP2LOCATION_INCLUDE_DIR"; then IP2LOCATION_INCLUDE="-I$IP2LOCATION_INCLUDE_DIR" if test -d "$IP2LOCATION_INCLUDE_DIR/iMath"; then # include iMath where existing (API < 7.0.0) IP2LOCATION_INCLUDE="$IP2LOCATION_INCLUDE -I$IP2LOCATION_INCLUDE_DIR/iMath" fi if echo "$IP2LOCATION_INCLUDE_DIR" | grep -q "^/"; then # absolute path IP2LOCATION_INCLUDE_L1="-I$IP2LOCATION_INCLUDE_DIR" IP2LOCATION_INCLUDE_L2="-I$IP2LOCATION_INCLUDE_DIR" if test -d "$IP2LOCATION_INCLUDE_DIR/iMath"; then # include iMath where existing (API < 7.0.0) IP2LOCATION_INCLUDE_L1="$IP2LOCATION_INCLUDE_L1 -I$IP2LOCATION_INCLUDE_DIR/iMath" IP2LOCATION_INCLUDE_L2="$IP2LOCATION_INCLUDE_L2 -I$IP2LOCATION_INCLUDE_DIR/iMath" fi else IP2LOCATION_INCLUDE_L1="-I../$IP2LOCATION_INCLUDE_DIR" IP2LOCATION_INCLUDE_L2="-I../../$IP2LOCATION_INCLUDE_DIR" if test -d "$IP2LOCATION_INCLUDE_DIR/iMath"; then # include iMath where existing (API < 7.0.0) IP2LOCATION_INCLUDE_L1="$IP2LOCATION_INCLUDE_L1 -I../$IP2LOCATION_INCLUDE_DIR/iMath" IP2LOCATION_INCLUDE_L2="$IP2LOCATION_INCLUDE_L2 -I../../$IP2LOCATION_INCLUDE_DIR/iMath" fi fi fi # Check whether --with-ip2location-lib was given. if test ${with_ip2location_lib+y} then : withval=$with_ip2location_lib; if test -d "$with_ip2location_lib"; then IP2LOCATION_LIB_DIR="$with_ip2location_lib" IP2LOCATION_LIB="-L$IP2LOCATION_LIB_DIR $IP2LOCATION_LIB" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: IP2Location library directory given: $IP2LOCATION_LIB_DIR" >&5 printf "%s\n" "IP2Location library directory given: $IP2LOCATION_LIB_DIR" >&6; } else as_fn_error $? "IP2Location library directory not found: $with_ip2location_lib" "$LINENO" 5 fi if echo "$IP2LOCATION_LIB_DIR" | grep -q "^/"; then # absolute path IP2LOCATION_LIB_L1="-L$IP2LOCATION_LIB_DIR" IP2LOCATION_LIB_L2="-L$IP2LOCATION_LIB_DIR" if test -n "$LD_LIBRARY_PATH"; then LD_LIBRARY_PATH=$IP2LOCATION_LIB_DIR:$LD_LIBRARY_PATH else LD_LIBRARY_PATH=$IP2LOCATION_LIB_DIR fi else IP2LOCATION_LIB_L1="-L../$IP2LOCATION_LIB_DIR" IP2LOCATION_LIB_L2="-L../../$IP2LOCATION_LIB_DIR" if test -n "$LD_LIBRARY_PATH"; then LD_LIBRARY_PATH=../$IP2LOCATION_LIB_DIR:$LD_LIBRARY_PATH else LD_LIBRARY_PATH=$IP2LOCATION_LIB_DIR fi fi fi # must be tested #AC_ARG_WITH([ip2location-lib-name], # AS_HELP_STRING([--with-ip2location-lib-name=NAME], # [IP2Location library name]), # [ # IP2LOCATION_LIB_NAME="$with_ip2location_lib_name" # IP2LOCATION_LIB="-l$IP2LOCATION_LIB_NAME $IP2LOCATION_LIB" # AC_MSG_RESULT([IP2Location library name given: $IP2LOCATION_LIB_NAME]) # ],[ # ]) # Check whether --with-ip2location-static was given. if test ${with_ip2location_static+y} then : withval=$with_ip2location_static; if test "$with_ip2location_static" != "no"; then IP2LOCATION_LIB="-Wl,-Bstatic $IP2LOCATION_LIB -Wl,-Bdynamic" fi fi # Check whether --with-ip2location-db was given. if test ${with_ip2location_db+y} then : withval=$with_ip2location_db; ip2location_db="$with_ip2location_db" else $as_nop ip2location_db=$ip2location_db_default fi # Check whether --with-ip2location-dyn-lib was given. if test ${with_ip2location_dyn_lib+y} then : withval=$with_ip2location_dyn_lib; ip2location_dyn_lib="$with_ip2location_dyn_lib" else $as_nop ip2location_dyn_lib=$ip2location_dyn_lib_default fi if test "$IP2LOCATION" = "yes"; then if test "$IP2LOCATION_DYN" != "yes"; then IP2LOCATION_LIB="-l$IP2LOCATION_LIB_NAME $IP2LOCATION_LIB" IP2LOCATION_LIB_L1="-l$IP2LOCATION_LIB_NAME $IP2LOCATION_LIB_L1" IP2LOCATION_LIB_L2="-l$IP2LOCATION_LIB_NAME $IP2LOCATION_LIB_L2" else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: **** IP2Location dynamic load support enabled, disable IP2Location linker options" >&5 printf "%s\n" "**** IP2Location dynamic load support enabled, disable IP2Location linker options" >&6; } fi CPPFLAGS="$CPPFLAGS $IP2LOCATION_INCLUDE" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2Location support requested" >&5 printf "%s\n" "*** IP2Location support requested" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ***** CPPFLAGS=$CPPFLAGS" >&5 printf "%s\n" "***** CPPFLAGS=$CPPFLAGS" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ***** CFLAGS =$CFLAGS" >&5 printf "%s\n" "***** CFLAGS =$CFLAGS" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ***** LDFLAGS =$LDFLAGS" >&5 printf "%s\n" "***** LDFLAGS =$LDFLAGS" >&6; } ac_fn_c_check_header_compile "$LINENO" "IP2Location.h" "ac_cv_header_IP2Location_h" "$ac_includes_default" if test "x$ac_cv_header_IP2Location_h" = xyes then : if test -n "$IP2LOCATION_INCLUDE_DIR"; then if test -e "$IP2LOCATION_INCLUDE_DIR/IP2Location.h"; then CPPFLAGS="$CPPFLAGS -include $IP2LOCATION_INCLUDE_DIR/IP2Location.h" else as_fn_error $? "IP2Location library header file not found: $IP2LOCATION_INCLUDE_DIR/IP2Location.h" "$LINENO" 5 fi else CPPFLAGS="$CPPFLAGS -include IP2Location.h" fi ac_fn_check_decl "$LINENO" "IP2Location_open" "ac_cv_have_decl_IP2Location_open" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_IP2Location_open" = xyes then : else $as_nop as_fn_error $? "IP2Location library header file misses IP2Location_open" "$LINENO" 5 fi ac_fn_check_decl "$LINENO" "IP2Location_close" "ac_cv_have_decl_IP2Location_close" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_IP2Location_close" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_IP2LOCATION_CLOSE $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "IP2Location_get_country_short" "ac_cv_have_decl_IP2Location_get_country_short" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_IP2Location_get_country_short" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_IP2LOCATION_GET_COUNTRY_SHORT $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "IP2Location_get_country_long" "ac_cv_have_decl_IP2Location_get_country_long" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_IP2Location_get_country_long" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_IP2LOCATION_GET_COUNTRY_LONG $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "API_VERSION" "ac_cv_have_decl_API_VERSION" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_API_VERSION" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_API_VERSION $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "IP2Location_api_version_string" "ac_cv_have_decl_IP2Location_api_version_string" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_IP2Location_api_version_string" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_IP2LOCATION_API_VERSION_STRING $ac_have_decl" >>confdefs.h if test $ac_have_decl = 1 then : IP2LOCATION_HAS_API_STRING="yes" fi ac_fn_check_decl "$LINENO" "IP2Location_lib_version_string" "ac_cv_have_decl_IP2Location_lib_version_string" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_IP2Location_lib_version_string" = xyes then : IP2LOCATION_HAS_LIB_STRING="yes" fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include IP2Location loc; void test() { loc.ipv6_database_address = 1; }; int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: IP2Location has full (and updated) IPv6 support (API >= 8.2.0)" >&5 printf "%s\n" "IP2Location has full (and updated) IPv6 support (API >= 8.2.0)" >&6; } else $as_nop as_fn_error $? "IP2Location has only compat IPv6 support (API < 7.0.0) or old (API < 8.2.0) which is no longer supported" "$LINENO" 5 fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_fn_check_decl "$LINENO" "USAGETYPE" "ac_cv_have_decl_USAGETYPE" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_USAGETYPE" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_USAGETYPE $ac_have_decl" >>confdefs.h if test $ac_have_decl = 1 then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: IP2Location has full support (library >= 6.0.0)" >&5 printf "%s\n" "IP2Location has full support (library >= 6.0.0)" >&6; } else $as_nop as_fn_error $? "IP2Location library header file misses USAGETYPE (library < 6.0.0) which is no longer supported" "$LINENO" 5 fi else $as_nop as_fn_error $? "IP2Location library header files not found" "$LINENO" 5 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2location db dir: $ip2location_db" >&5 printf "%s\n" "*** IP2location db dir: $ip2location_db" >&6; } printf "%s\n" "#define IP2LOCATION_DB \"$ip2location_db\"" >>confdefs.h if test "$IP2LOCATION_DYN" != "yes"; then if test "$IP2LOCATION_STATIC" = "yes"; then printf "%s\n" "#define SUPPORT_IP2LOCATION_STATIC 1" >>confdefs.h fi CPPFLAGS="$CFLAGS" if test -n "$IP2LOCATION_LIB_DIR"; then if test -e "$IP2LOCATION_LIB_DIR/lib$IP2LOCATION_LIB_NAME.so"; then LDFLAGS="$LDFLAGS -L$IP2LOCATION_LIB_DIR" CFLAGS="$CFLAGS -L$IP2LOCATION_LIB_DIR" LIBS="-L$IP2LOCATION_LIB_DIR" else as_fn_error $? "IP2Location library file not found: $IP2LOCATION_INCLUDE_DIR/lib$IP2LOCATION_LIB_NAME.so" "$LINENO" 5 fi fi as_ac_Lib=`printf "%s\n" "ac_cv_lib_$IP2LOCATION_LIB_NAME""_IP2Location_api_version_string" | $as_tr_sh` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IP2Location_api_version_string in -l$IP2LOCATION_LIB_NAME" >&5 printf %s "checking for IP2Location_api_version_string in -l$IP2LOCATION_LIB_NAME... " >&6; } if eval test \${$as_ac_Lib+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-l$IP2LOCATION_LIB_NAME $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char IP2Location_api_version_string (); int main (void) { return IP2Location_api_version_string (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$as_ac_Lib=yes" else $as_nop eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2Location library supports API version string" >&5 printf "%s\n" "*** IP2Location library supports API version string" >&6; } else $as_nop as_fn_error $? "IP2Location library file misses IP2Location_api_version_string - no longer supported" "$LINENO" 5 fi as_ac_Lib=`printf "%s\n" "ac_cv_lib_$IP2LOCATION_LIB_NAME""_IP2Location_lib_version_string" | $as_tr_sh` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IP2Location_lib_version_string in -l$IP2LOCATION_LIB_NAME" >&5 printf %s "checking for IP2Location_lib_version_string in -l$IP2LOCATION_LIB_NAME... " >&6; } if eval test \${$as_ac_Lib+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-l$IP2LOCATION_LIB_NAME $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char IP2Location_lib_version_string (); int main (void) { return IP2Location_lib_version_string (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$as_ac_Lib=yes" else $as_nop eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes" then : if test "$IP2LOCATION_HAS_LIB_STRING" != "yes"; then as_fn_error $? "IP2Location library header file misses IP2Location_lib_version_string while library contains" "$LINENO" 5 else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2Location library supports LIB version string" >&5 printf "%s\n" "*** IP2Location library supports LIB version string" >&6; } fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ***** CPPFLAGS=$CPPFLAGS" >&5 printf "%s\n" "***** CPPFLAGS=$CPPFLAGS" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ***** CFLAGS =$CFLAGS" >&5 printf "%s\n" "***** CFLAGS =$CFLAGS" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ***** LDFLAGS =$LDFLAGS" >&5 printf "%s\n" "***** LDFLAGS =$LDFLAGS" >&6; } as_ac_Lib=`printf "%s\n" "ac_cv_lib_$IP2LOCATION_LIB_NAME""_IP2Location_open" | $as_tr_sh` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IP2Location_open in -l$IP2LOCATION_LIB_NAME" >&5 printf %s "checking for IP2Location_open in -l$IP2LOCATION_LIB_NAME... " >&6; } if eval test \${$as_ac_Lib+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-l$IP2LOCATION_LIB_NAME $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char IP2Location_open (); int main (void) { return IP2Location_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$as_ac_Lib=yes" else $as_nop eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes" then : printf "%s\n" "#define SUPPORT_IP2LOCATION 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2Location support enabled" >&5 printf "%s\n" "*** IP2Location support enabled" >&6; } else $as_nop as_fn_error $? "IP2Location library header files were found but the library was not found, LDFLAGS=$LDFLAGS, CFLAGS=$CFLAGS" "$LINENO" 5 fi else ac_fn_check_decl "$LINENO" "IP2Location_api_version_string" "ac_cv_have_decl_IP2Location_api_version_string" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_IP2Location_api_version_string" = xyes then : ac_have_decl=1 else $as_nop ac_have_decl=0 fi printf "%s\n" "#define HAVE_DECL_IP2LOCATION_API_VERSION_STRING $ac_have_decl" >>confdefs.h if test $ac_have_decl = 1 then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2Location header supports API version string" >&5 printf "%s\n" "*** IP2Location header supports API version string" >&6; } else $as_nop as_fn_error $? "IP2Location library header file misses IP2Location_api_version_string - no longer supported" "$LINENO" 5 fi # wrapper detects by itself the real support { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2Location dyn lib: $ip2location_dyn_lib" >&5 printf "%s\n" "*** IP2Location dyn lib: $ip2location_dyn_lib" >&6; } printf "%s\n" "#define IP2LOCATION_DYN_LIB \"$ip2location_dyn_lib\"" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2Location support will be implemented by using dynamic load of library" >&5 printf "%s\n" "*** IP2Location support will be implemented by using dynamic load of library" >&6; } printf "%s\n" "#define SUPPORT_IP2LOCATION 1" >>confdefs.h printf "%s\n" "#define SUPPORT_IP2LOCATION_DYN 1" >>confdefs.h fi fi IP2LOCATION_DB=$ip2location_db if test -n "$IP2LOCATION_INCLUDE_VERSION"; then printf "%s\n" "#define IP2LOCATION_INCLUDE_VERSION \"$IP2LOCATION_INCLUDE_VERSION\"" >>confdefs.h fi GEOIP_LIB_NAME="GeoIP" GEOIP_INCLUDE_VERSION="" # Check whether --enable-geoip was given. if test ${enable_geoip+y} then : enableval=$enable_geoip; fi # Check whether --with-geoip-dynamic was given. if test ${with_geoip_dynamic+y} then : withval=$with_geoip_dynamic; fi # Check whether --with-geoip-headers was given. if test ${with_geoip_headers+y} then : withval=$with_geoip_headers; fi # Check whether --with-geoip-headers-fallback was given. if test ${with_geoip_headers_fallback+y} then : withval=$with_geoip_headers_fallback; fi # Check whether --with-geoip-lib was given. if test ${with_geoip_lib+y} then : withval=$with_geoip_lib; fi # Check whether --with-geoip-static was given. if test ${with_geoip_static+y} then : withval=$with_geoip_static; fi # Check whether --with-geoip-dyn-lib was given. if test ${with_geoip_dyn_lib+y} then : withval=$with_geoip_dyn_lib; fi # Check whether --with-geoip-ipv6-compat was given. if test ${with_geoip_ipv6_compat+y} then : withval=$with_geoip_ipv6_compat; fi if test "$GEOIP2" = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** GeoIP (MaxMindDB) auotenabled\"" >&5 printf "%s\n" "*** GeoIP (MaxMindDB) auotenabled\"" >&6; } fi # Check whether --with-geoip-db was given. if test ${with_geoip_db+y} then : withval=$with_geoip_db; geoip_db="$with_geoip_db" else $as_nop geoip_db=$geoip_db_default fi if test "$GEOIP2" = "yes"; then printf "%s\n" "#define SUPPORT_GEOIP2 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** GeoIP (MaxMindDB) support enabled" >&5 printf "%s\n" "*** GeoIP (MaxMindDB) support enabled" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** GeoIP (MaxMindDB) database directory: $geoip_db" >&5 printf "%s\n" "*** GeoIP (MaxMindDB) database directory: $geoip_db" >&6; } printf "%s\n" "#define GEOIP2_DB \"$geoip_db\"" >>confdefs.h fi GEOIP2_DB=$geoip_db if test "$DYNAMIC_LOAD" = "yes"; then if test "$GEOIP_DYN" = "yes" -o "$IP2LOCATION_DYN" = "yes" -o "$MMDB_DYN" = "yes"; then DYNAMIC_LOAD="yes" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** Dynamic loading of libraries is ENABLED" >&5 printf "%s\n" "*** Dynamic loading of libraries is ENABLED" >&6; } DYNLOAD_LIB="-rdynamic -ldl" fi fi # Check whether --enable-mod_ipv6calc was given. if test ${enable_mod_ipv6calc+y} then : enableval=$enable_mod_ipv6calc; fi if test "$enable_mod_ipv6calc" = "yes"; then ENABLE_MOD_IPV6CALC="1" else ENABLE_MOD_IPV6CALC="0" fi # Check whether --with-apxs was given. if test ${with_apxs+y} then : withval=$with_apxs; APXS="$with_apxs" fi if test "$ENABLE_MOD_IPV6CALC" = "1"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Build of mod_ipv6calc enabled" >&5 printf "%s\n" "Build of mod_ipv6calc enabled" >&6; } if test -z "$APXS"; then for ac_prog in apxs2 apxs do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_APXS+y} then : printf %s "(cached) " >&6 else $as_nop case $APXS in [\\/]* | ?:[\\/]*) ac_cv_path_APXS="$APXS" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:/usr/local/apache/bin:/usr/sbin" for as_dir in $as_dummy do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_APXS="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi APXS=$ac_cv_path_APXS if test -n "$APXS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $APXS" >&5 printf "%s\n" "$APXS" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$APXS" && break done fi if test -z "$APXS"; then as_fn_error $? "No APXS binary found: cannot create Apache module - missing httpd-devel?" "$LINENO" 5 else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: APXS binary found: $APXS" >&5 printf "%s\n" "APXS binary found: $APXS" >&6; } # partially taken from configure.ac from mod_wsgi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Apache version" >&5 printf %s "checking Apache version... " >&6; } HTTPD="`${APXS} -q SBINDIR`/`${APXS} -q TARGET`" HTTPD_INCLUDEDIR="`${APXS} -q INCLUDEDIR`" if test -x ${HTTPD}; then HTTPD_VERSION=`${HTTPD} -v | awk '/version/ {print $3}' \ | awk -F/ '{print $2}'` else if test -f ${HTTPD_INCLUDEDIR}/ap_release.h; then HTTPD_VERSION=`grep '^#define AP_SERVER_MAJORVERSION_NUMBER ' \ ${HTTPD_INCLUDEDIR}/ap_release.h | sed -e \ 's/^#define AP_SERVER_MAJORVERSION_NUMBER \([0-9]\).*/\1.X/'` else if test -f ${HTTPD_INCLUDEDIR}/httpd.h; then HTTPD_VERSION=`grep '^#define APACHE_RELEASE ' \ ${HTTPD_INCLUDEDIR}/httpd.h | sed -e \ 's/^#define APACHE_RELEASE \([0-9]\).*/\1.X/'` else HTTPD_VERSION="2.?" fi fi fi HTTPD_LIBEXECDIR="`${APXS} -q libexecdir`" if test -z "$HTTPD_LIBEXECDIR"; then as_fn_error $? "${APXS} cannot retrieve libexecdir" "$LINENO" 5 fi HTTPD_SYSCONFDIR="`${APXS} -q sysconfdir`" if test -z "$HTTPD_SYSCONFDIR"; then as_fn_error $? "${APXS} cannot retrieve sysconfdir" "$LINENO" 5 fi if test -n "$HTTPD_SYSCONFDIR"; then HTTPD_SYSCONFDIR="$HTTPD_SYSCONFDIR.d" fi if test -n "$HTTPD_VERSION"; then HTTPD_VERSION_MAJOR_MINOR=`echo "$HTTPD_VERSION" | awk -F. '{ print $1 "." $2 }'` fi fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Build of mod_ipv6calc NOT enabled" >&5 printf "%s\n" "$as_me: WARNING: Build of mod_ipv6calc NOT enabled" >&2;} fi ac_config_files="$ac_config_files tools/ipv6calc-db-update.sh" ac_config_files="$ac_config_files tools/DBIP-update.sh" ac_config_files="$ac_config_files tools/IP2Location-update.sh" ac_config_files="$ac_config_files tools/GeoIP-update.sh" ac_config_files="$ac_config_files Makefile md5/Makefile tools/Makefile getopt/Makefile ipv6calc/Makefile lib/Makefile man/Makefile databases/lib/Makefile ipv6logconv/Makefile ipv6loganon/Makefile ipv6logstats/Makefile ipv6calcweb/Makefile contrib/ipv6calc.spec mod_ipv6calc/Makefile VERSION" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by ipv6calc $as_me 4.1.0, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to . ipv6calc home page: ." _ACEOF ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ ipv6calc config.status 4.1.0 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX printf "%s\n" "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "tools/ipv6calc-db-update.sh") CONFIG_FILES="$CONFIG_FILES tools/ipv6calc-db-update.sh" ;; "tools/DBIP-update.sh") CONFIG_FILES="$CONFIG_FILES tools/DBIP-update.sh" ;; "tools/IP2Location-update.sh") CONFIG_FILES="$CONFIG_FILES tools/IP2Location-update.sh" ;; "tools/GeoIP-update.sh") CONFIG_FILES="$CONFIG_FILES tools/GeoIP-update.sh" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "md5/Makefile") CONFIG_FILES="$CONFIG_FILES md5/Makefile" ;; "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; "getopt/Makefile") CONFIG_FILES="$CONFIG_FILES getopt/Makefile" ;; "ipv6calc/Makefile") CONFIG_FILES="$CONFIG_FILES ipv6calc/Makefile" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; "databases/lib/Makefile") CONFIG_FILES="$CONFIG_FILES databases/lib/Makefile" ;; "ipv6logconv/Makefile") CONFIG_FILES="$CONFIG_FILES ipv6logconv/Makefile" ;; "ipv6loganon/Makefile") CONFIG_FILES="$CONFIG_FILES ipv6loganon/Makefile" ;; "ipv6logstats/Makefile") CONFIG_FILES="$CONFIG_FILES ipv6logstats/Makefile" ;; "ipv6calcweb/Makefile") CONFIG_FILES="$CONFIG_FILES ipv6calcweb/Makefile" ;; "contrib/ipv6calc.spec") CONFIG_FILES="$CONFIG_FILES contrib/ipv6calc.spec" ;; "mod_ipv6calc/Makefile") CONFIG_FILES="$CONFIG_FILES mod_ipv6calc/Makefile" ;; "VERSION") CONFIG_FILES="$CONFIG_FILES VERSION" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; esac case $ac_file$ac_mode in "tools/ipv6calc-db-update.sh":F) chmod a+x tools/ipv6calc-db-update.sh ;; "tools/DBIP-update.sh":F) chmod a+x tools/DBIP-update.sh ;; "tools/IP2Location-update.sh":F) chmod a+x tools/IP2Location-update.sh ;; "tools/GeoIP-update.sh":F) chmod a+x tools/GeoIP-update.sh ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ***** Summary" >&5 printf "%s\n" "***** Summary" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** MMDB =$MMDB" >&5 printf "%s\n" "*** MMDB =$MMDB" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** MMDB_DYN =$MMDB_DYN" >&5 printf "%s\n" "*** MMDB_DYN =$MMDB_DYN" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** MMDB_DYN_LIB =$mmdb_dyn_lib" >&5 printf "%s\n" "*** MMDB_DYN_LIB =$mmdb_dyn_lib" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** MMDB_INCLUDE =$MMDB_INCLUDE" >&5 printf "%s\n" "*** MMDB_INCLUDE =$MMDB_INCLUDE" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** MMDB_INCLUDE_VERSION =$MMDB_INCLUDE_VERSION" >&5 printf "%s\n" "*** MMDB_INCLUDE_VERSION =$MMDB_INCLUDE_VERSION" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** MMDB_LIB =$MMDB_LIB" >&5 printf "%s\n" "*** MMDB_LIB =$MMDB_LIB" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** MMDB_LIB_NAME =$MMDB_LIB_NAME" >&5 printf "%s\n" "*** MMDB_LIB_NAME =$MMDB_LIB_NAME" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** MMDB_LIB_DIR =$MMDB_LIB_DIR" >&5 printf "%s\n" "*** MMDB_LIB_DIR =$MMDB_LIB_DIR" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 printf "%s\n" "" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2LOCATION =$IP2LOCATION" >&5 printf "%s\n" "*** IP2LOCATION =$IP2LOCATION" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2LOCATION_DB =$IP2LOCATION_DB" >&5 printf "%s\n" "*** IP2LOCATION_DB =$IP2LOCATION_DB" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2LOCATION_DYN =$IP2LOCATION_DYN" >&5 printf "%s\n" "*** IP2LOCATION_DYN =$IP2LOCATION_DYN" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2LOCATION_DYN_LIB =$ip2location_dyn_lib" >&5 printf "%s\n" "*** IP2LOCATION_DYN_LIB =$ip2location_dyn_lib" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2LOCATION_INCLUDE =$IP2LOCATION_INCLUDE" >&5 printf "%s\n" "*** IP2LOCATION_INCLUDE =$IP2LOCATION_INCLUDE" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2LOCATION_INCLUDE_VERSION=$IP2LOCATION_INCLUDE_VERSION" >&5 printf "%s\n" "*** IP2LOCATION_INCLUDE_VERSION=$IP2LOCATION_INCLUDE_VERSION" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2LOCATION_LIB =$IP2LOCATION_LIB" >&5 printf "%s\n" "*** IP2LOCATION_LIB =$IP2LOCATION_LIB" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2LOCATION_LIB_NAME =$IP2LOCATION_LIB_NAME" >&5 printf "%s\n" "*** IP2LOCATION_LIB_NAME =$IP2LOCATION_LIB_NAME" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** IP2LOCATION_LIB_DIR =$IP2LOCATION_LIB_DIR" >&5 printf "%s\n" "*** IP2LOCATION_LIB_DIR =$IP2LOCATION_LIB_DIR" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 printf "%s\n" "" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** GEOIP2 =$GEOIP2" >&5 printf "%s\n" "*** GEOIP2 =$GEOIP2" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** GEOIP2_DB =$GEOIP2_DB" >&5 printf "%s\n" "*** GEOIP2_DB =$GEOIP2_DB" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 printf "%s\n" "" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** DBIP2 =$DBIP2" >&5 printf "%s\n" "*** DBIP2 =$DBIP2" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** DBIP2_DB =$DBIP2_DB" >&5 printf "%s\n" "*** DBIP2_DB =$DBIP2_DB" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 printf "%s\n" "" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** EXTERNAL =$EXTERNAL" >&5 printf "%s\n" "*** EXTERNAL =$EXTERNAL" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** EXTERNAL_DB =$EXTERNAL_DB" >&5 printf "%s\n" "*** EXTERNAL_DB =$EXTERNAL_DB" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 printf "%s\n" "" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** BUILTIN =$BUILTIN" >&5 printf "%s\n" "*** BUILTIN =$BUILTIN" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** DB_IPV4 =$DB_IPV4" >&5 printf "%s\n" "*** DB_IPV4 =$DB_IPV4" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** DB_IPV6 =$DB_IPV6" >&5 printf "%s\n" "*** DB_IPV6 =$DB_IPV6" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** DB_IEEE =$DB_IEEE" >&5 printf "%s\n" "*** DB_IEEE =$DB_IEEE" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** DB_AS_REG =$DB_AS_REG" >&5 printf "%s\n" "*** DB_AS_REG =$DB_AS_REG" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** DB_CC_REG =$DB_CC_REG" >&5 printf "%s\n" "*** DB_CC_REG =$DB_CC_REG" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 printf "%s\n" "" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** CC =$CC" >&5 printf "%s\n" "*** CC =$CC" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** CFLAGS_EXTRA =$CFLAGS_EXTRA" >&5 printf "%s\n" "*** CFLAGS_EXTRA =$CFLAGS_EXTRA" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** LDFLAGS_EXTRA =$LDFLAGS_EXTRA" >&5 printf "%s\n" "*** LDFLAGS_EXTRA =$LDFLAGS_EXTRA" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** LDFLAGS_EXTRA_STATIC =$LDFLAGS_EXTRA_STATIC" >&5 printf "%s\n" "*** LDFLAGS_EXTRA_STATIC =$LDFLAGS_EXTRA_STATIC" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** LD_LIBRARY_PATH =$LD_LIBRARY_PATH" >&5 printf "%s\n" "*** LD_LIBRARY_PATH =$LD_LIBRARY_PATH" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** LD_LIBRARY_PATH_BASIC =$LD_LIBRARY_PATH_BASIC" >&5 printf "%s\n" "*** LD_LIBRARY_PATH_BASIC =$LD_LIBRARY_PATH_BASIC" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** CPPLAGS =$CPPLAGS" >&5 printf "%s\n" "*** CPPLAGS =$CPPLAGS" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** CFLAGS =$CFLAGS" >&5 printf "%s\n" "*** CFLAGS =$CFLAGS" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** LDFLAGS =$LDFLAGS" >&5 printf "%s\n" "*** LDFLAGS =$LDFLAGS" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 printf "%s\n" "" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** HAVE_OPENSSL_EVP_MD5 =$HAVE_OPENSSL_EVP_MD5" >&5 printf "%s\n" "*** HAVE_OPENSSL_EVP_MD5 =$HAVE_OPENSSL_EVP_MD5" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** HAVE_OPENSSL_EVP_MD5_LEGACY=$HAVE_OPENSSL_EVP_MD5_LEGACY" >&5 printf "%s\n" "*** HAVE_OPENSSL_EVP_MD5_LEGACY=$HAVE_OPENSSL_EVP_MD5_LEGACY" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** HAVE_OPENSSL_MD5 =$HAVE_OPENSSL_MD5" >&5 printf "%s\n" "*** HAVE_OPENSSL_MD5 =$HAVE_OPENSSL_MD5" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** ENABLE_BUNDLED_MD5 =$ENABLE_BUNDLED_MD5" >&5 printf "%s\n" "*** ENABLE_BUNDLED_MD5 =$ENABLE_BUNDLED_MD5" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** ENABLE_OPENSSL_EVP_MD5 =$ENABLE_OPENSSL_EVP_MD5" >&5 printf "%s\n" "*** ENABLE_OPENSSL_EVP_MD5 =$ENABLE_OPENSSL_EVP_MD5" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** ENABLE_OPENSSL_MD5 =$ENABLE_OPENSSL_MD5" >&5 printf "%s\n" "*** ENABLE_OPENSSL_MD5 =$ENABLE_OPENSSL_MD5" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 printf "%s\n" "" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** HAVE_BERKELEY_DB_SUPPORT =$HAVE_BERKELEY_DB_SUPPORT" >&5 printf "%s\n" "*** HAVE_BERKELEY_DB_SUPPORT =$HAVE_BERKELEY_DB_SUPPORT" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** DB_VERSION =$DB_VERSION" >&5 printf "%s\n" "*** DB_VERSION =$DB_VERSION" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 printf "%s\n" "" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** PACKAGE_VERSION_NUMERIC =$PACKAGE_VERSION_NUMERIC" >&5 printf "%s\n" "*** PACKAGE_VERSION_NUMERIC =$PACKAGE_VERSION_NUMERIC" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** PACKAGE_VERSION_STRING =$PACKAGE_VERSION_STRING" >&5 printf "%s\n" "*** PACKAGE_VERSION_STRING =$PACKAGE_VERSION_STRING" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** API_VERSION_NUMERIC =$API_VERSION_NUMERIC" >&5 printf "%s\n" "*** API_VERSION_NUMERIC =$API_VERSION_NUMERIC" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** API_VERSION_STRING =$API_VERSION_STRING" >&5 printf "%s\n" "*** API_VERSION_STRING =$API_VERSION_STRING" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5 printf "%s\n" "" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** ENABLE_MOD_IPV6CALC =$ENABLE_MOD_IPV6CALC" >&5 printf "%s\n" "*** ENABLE_MOD_IPV6CALC =$ENABLE_MOD_IPV6CALC" >&6; } if test "$ENABLE_MOD_IPV6CALC" = "1"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** APXS =$APXS" >&5 printf "%s\n" "*** APXS =$APXS" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** HTTPD_SYSCONFDIR =$HTTPD_SYSCONFDIR" >&5 printf "%s\n" "*** HTTPD_SYSCONFDIR =$HTTPD_SYSCONFDIR" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** HTTPD_LIBEXECDIR =$HTTPD_LIBEXECDIR" >&5 printf "%s\n" "*** HTTPD_LIBEXECDIR =$HTTPD_LIBEXECDIR" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** HTTPD_VERSION =$HTTPD_VERSION" >&5 printf "%s\n" "*** HTTPD_VERSION =$HTTPD_VERSION" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** HTTPD_VERSION_MAJOR_MINOR =$HTTPD_VERSION_MAJOR_MINOR" >&5 printf "%s\n" "*** HTTPD_VERSION_MAJOR_MINOR =$HTTPD_VERSION_MAJOR_MINOR" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: *** LDFLAGS_EXTRA_MOD_IPV6CALC =$LDFLAGS_EXTRA_MOD_IPV6CALC" >&5 printf "%s\n" "*** LDFLAGS_EXTRA_MOD_IPV6CALC =$LDFLAGS_EXTRA_MOD_IPV6CALC" >&6; } fi ipv6calc-4.1.0/configure.in000066400000000000000000001337441444154247200155570ustar00rootroot00000000000000dnl Project : ipv6calc dnl File : configure.in dnl Copyright: 2001-2023 by Peter Bieringer dnl Process this file with autoconf to produce a configure script. AC_INIT(ipv6calc, 4.1.0, ipv6calc@deepspace6.net, ipv6calc, https://www.deepspace6.net/projects/ipv6calc.html) COPYRIGHT_YEAR=2023 dnl Program/library version (align with version above) PACKAGE_VERSION_MAJOR=4 PACKAGE_VERSION_MINOR=1 PACKAGE_VERSION_BUGFIX=0 dnl API version API_VERSION_MAJOR=4 API_VERSION_MINOR=1 API_VERSION_BUGFIX=0 dnl Generic data definitions AC_SUBST(COPYRIGHT_YEAR) AC_DEFINE_UNQUOTED(COPYRIGHT_YEAR, "$COPYRIGHT_YEAR", [Copyright year]) dnl Program/library version variants PACKAGE_VERSION_NUMERIC=$(echo "$PACKAGE_VERSION_MAJOR $PACKAGE_VERSION_MINOR $PACKAGE_VERSION_BUGFIX" | awk '{ print ( $1 * 1000 + $2 ) * 1000 + $3 }') PACKAGE_VERSION_STRING=$(echo "$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_BUGFIX") AC_DEFINE_UNQUOTED(IPV6CALC_PACKAGE_VERSION_MAJOR, $PACKAGE_VERSION_MAJOR , "Package version Major") AC_DEFINE_UNQUOTED(IPV6CALC_PACKAGE_VERSION_MINOR, $PACKAGE_VERSION_MINOR , "Package version Minor") AC_DEFINE_UNQUOTED(IPV6CALC_PACKAGE_VERSION_BUGFIX, $PACKAGE_VERSION_BUGFIX , "Package version Bugfix") AC_DEFINE_UNQUOTED(IPV6CALC_PACKAGE_VERSION_STRING, "$PACKAGE_VERSION_STRING", "Package version as string") AC_DEFINE_UNQUOTED(IPV6CALC_PACKAGE_VERSION_NUMERIC, $PACKAGE_VERSION_NUMERIC , "Package version numeric") dnl API version variants API_VERSION_NUMERIC=$(echo "$API_VERSION_MAJOR $API_VERSION_MINOR $API_VERSION_BUGFIX" | awk '{ print ( $1 * 1000 + $2 ) * 1000 + $3 }') API_VERSION_STRING=$(echo "$API_VERSION_MAJOR.$API_VERSION_MINOR.$API_VERSION_BUGFIX") AC_DEFINE_UNQUOTED(IPV6CALC_API_VERSION_MAJOR, $API_VERSION_MAJOR , "API version Major") AC_DEFINE_UNQUOTED(IPV6CALC_API_VERSION_MINOR, $API_VERSION_MINOR , "API version Minor") AC_DEFINE_UNQUOTED(IPV6CALC_API_VERSION_BUGFIX, $API_VERSION_BUGFIX , "API version Bugfix") AC_DEFINE_UNQUOTED(IPV6CALC_API_VERSION_STRING, "$API_VERSION_STRING", "API version as string") AC_DEFINE_UNQUOTED(IPV6CALC_API_VERSION_NUMERIC, $API_VERSION_NUMERIC , "API version numeric") dnl Define version header AC_CONFIG_HEADER(config.h) dnl Checks for programs. AC_PROG_AWK AC_PROG_CC dnl AC_PROG_INSTALL AC_PROG_RANLIB AC_PROG_MAKE_SET dnl Checks for header files. AC_HEADER_STDC dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_OFF_T AC_TYPE_SIZE_T AC_C_BIGENDIAN dnl Default extra CFLAGS CFLAGS_EXTRA=-fPIC dnl Copy initial provided LDFLAGS into LDFLAGS_EXTRA dnl LDFLAGS_EXTRA=$LDFLAGS // not required ?! dnl ************************************************* dnl 32-bit mode dnl ************************************************* AC_ARG_ENABLE( [m32], AS_HELP_STRING([--enable-m32], [Enable 32-bit compilation]), [ if test "$enable_m32" = "yes"; then AC_MSG_RESULT([*** switch to 32-bit compilation]) CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-m32 -DMMDB_UINT128_IS_BYTE_ARRAY=1" LDFLAGS="${LDFLAGS:+$LDFLAGS }-m32" fi ]) dnl ************************************************* dnl check for compiler options for several -W* dnl ************************************************* AC_ARG_ENABLE([compiler-warning-to-error], AS_HELP_STRING([--disable-compiler-warning-to-error], [Disable extra CFLAGS for mapping warnings to errors during compilation]), [ ],[ AC_MSG_RESULT([**** analyze compiler options: CC=$CC]) AC_MSG_RESULT([*** check for CFLAGS: -Werror=format-security]) CFLAGS_SAVE="$CFLAGS" CFLAGS="$CFLAGS -Wformat -Werror -Werror=format-security" AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[int a=1;]]) ], [ AC_MSG_RESULT([*** CFLAGS supported: -Werror=format-security]) CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Wformat -Werror -Werror=format-security" ], [ AC_MSG_WARN([*** missing CFLAGS support: -Werror=format-security]) CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Wformat" ]) CFLAGS="$CFLAGS_SAVE" AC_MSG_RESULT([*** check for CFLAGS: -Wsizeof-array-argument]) CFLAGS_SAVE="$CFLAGS" CFLAGS="$CFLAGS -Wsizeof-array-argument" AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[int a=1;]]) ], [ AC_MSG_RESULT([*** CFLAGS supported: -Wsizeof-array-argument]) CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Wsizeof-array-argument" ], [ AC_MSG_WARN([*** missing CFLAGS support: -Wsizeof-array-argument]) ]) CFLAGS="$CFLAGS_SAVE" AC_MSG_RESULT([*** check for CFLAGS: -Wparentheses-equality]) CFLAGS_SAVE="$CFLAGS" CFLAGS="$CFLAGS -Wparentheses-equality" AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[int a=1;]]) ], [ AC_MSG_RESULT([*** CFLAGS supported: -Wparentheses-equality]) CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Wparentheses-equality" ], [ AC_MSG_WARN([*** missing CFLAGS support: -Wparentheses-equality]) ]) CFLAGS="$CFLAGS_SAVE" AC_MSG_RESULT([*** check for CFLAGS: -Wextra]) CFLAGS_SAVE="$CFLAGS" CFLAGS="$CFLAGS -Wextra" AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[int a=1;]]) ], [ AC_MSG_RESULT([*** CFLAGS supported: -Wextra]) CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Wextra" ], [ AC_MSG_WARN([*** missing CFLAGS support: -Wextra]) ]) CFLAGS="$CFLAGS_SAVE" AC_MSG_RESULT([*** check for CFLAGS: -Werror=format-truncation=0]) CFLAGS_SAVE="$CFLAGS" CFLAGS="$CFLAGS -Werror -Werror=format-truncation=0" AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[int a=1;]]) ], [ AC_MSG_RESULT([*** CFLAGS supported: -Werror=format-truncation=0]) # disable errors related to format-truncation CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Werror=format-truncation=0" ], [ AC_MSG_WARN([*** missing CFLAGS support: -Werror=format-truncation=0]) ]) CFLAGS="$CFLAGS_SAVE" AC_MSG_RESULT([*** check for CFLAGS: -Werror=char-subscripts]) CFLAGS_SAVE="$CFLAGS" CFLAGS="$CFLAGS -Werror -Werror=char-subscripts" AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[int a=1;]]) ], [ AC_MSG_RESULT([*** CFLAGS supported: -Werror=char-subscripts]) # disable errors related to format-truncation CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Werror=char-subscripts" ], [ AC_MSG_WARN([*** missing CFLAGS support: -Werror=char-subscripts]) ]) CFLAGS="$CFLAGS_SAVE" AC_MSG_RESULT([*** check for CFLAGS: -Wno-deprecated-declarations]) CFLAGS_SAVE="$CFLAGS" CFLAGS="$CFLAGS -Werror -Wno-deprecated-declarations" AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[int a=1;]]) ], [ AC_MSG_RESULT([*** CFLAGS supported: -Wno-deprecated-declarations]) # disable errors related to deprecated-declarations CFLAGS_EXTRA="${CFLAGS_EXTRA:+$CFLAGS_EXTRA }-Wno-deprecated-declarations" ], [ AC_MSG_WARN([*** missing CFLAGS support: -Wno-deprecated-declarations]) ]) CFLAGS="$CFLAGS_SAVE" ]) dnl ************************************************* dnl add -Wno-unused-const-variable if supported dnl ************************************************* dnl AC_MSG_RESULT([*** check for CFLAGS: -Wno-unused-const-variable]) dnl CFLAGS_SAVE="$CFLAGS" dnl CFLAGS="$CFLAGS -Wno-unused-const-variable" dnl AC_COMPILE_IFELSE([AC_LANG_PROGRAM( dnl [[int a=1;]]) dnl ], dnl [ dnl AC_MSG_RESULT([*** CFLAGS supported: -Wno-unused-const-variable]) dnl CFLAGS_EXTRA="-Wno-unused-const-variable" dnl ], dnl [ dnl AC_MSG_WARN([*** missing CFLAGS support: -Wno-unused-const-variable]) dnl CFLAGS_EXTRA="-Wformat" dnl ]) dnl CFLAGS="$CFLAGS_SAVE" dnl ************************************************* dnl getopt library dnl ************************************************* ENABLE_BUNDLED_GETOPT=0 AC_ARG_ENABLE( [bundled-getopt], AS_HELP_STRING([--enable-bundled-getopt], [Enable bundled getopt library (default: autoselected)]), [ if test "$enable_bundled_getopt" = "yes"; then AC_MSG_RESULT([*** use of bundled getopt library forced]) ENABLE_BUNDLED_GETOPT=1 else AC_MSG_RESULT([*** use of system getopt library forced]) fi ], [ AC_CHECK_FUNC(getopt_long, [ AC_MSG_RESULT([*** use of system getopt library autoselected]) ], [ AC_MSG_RESULT([*** use of bundled getopt library autoselected]) ENABLE_BUNDLED_GETOPT=1 ]) ]) if test "$ENABLE_BUNDLED_GETOPT" = "1"; then AC_LIBOBJ(../getopt/getopt) AC_LIBOBJ(../getopt/getopt1) GETOPT_INCLUDE=-I../getopt AC_DEFINE(ENABLE_BUNDLED_GETOPT, 1, Define if bundled GETOPT should be used) fi AC_SUBST(GETOPT_INCLUDE) AC_SUBST(ENABLE_BUNDLED_GETOPT) dnl ************************************************* dnl MD5 library dnl ************************************************* ENABLE_BUNDLED_MD5=0 HAVE_OPENSSL_EVP_MD5=0 HAVE_OPENSSL_MD5=0 ENABLE_OPENSSL_EVP_MD5=0 ENABLE_OPENSSL_MD5=0 dnl Check capabilities AC_MSG_RESULT([*** check for OpenSSL EVP MD5]) AC_CHECK_HEADER(openssl/evp.h, [ AC_MSG_RESULT([openssl/evp.h header file found]) AC_CHECK_LIB(crypto, EVP_DigestInit_ex, [ LDFLAGS_ORIG="$LDFLAGS" LDFLAGS="-lcrypto $LDFLAGS" HAVE_OPENSSL_EVP_MD5=1 HAVE_OPENSSL_EVP_MD5_LEGACY=1 dnl OpenSSL 3.x AC_CHECK_FUNCS(EVP_MD_CTX_new EVP_md5 EVP_DigestInit_ex EVP_DigestUpdate EVP_DigestFinal_ex EVP_MD_CTX_free, [ ],[ AC_MSG_WARN([OpenSSL crypto library DOES NOT support MD5 via EVP]) HAVE_OPENSSL_EVP_MD5=0 ]) dnl OpenSSL 1.x AC_CHECK_FUNCS(EVP_MD_CTX_init EVP_md5 EVP_DigestInit_ex EVP_DigestUpdate EVP_DigestFinal_ex, [ ],[ AC_MSG_WARN([OpenSSL crypto library DOES NOT support MD5 via EVP LEGACY]) HAVE_OPENSSL_EVP_MD5_LEGACY=0 ]) LDFLAGS="$LDFLAGS_ORIG" if test "$HAVE_OPENSSL_EVP_MD5" = "1"; then AC_MSG_RESULT([*** OpenSSL crypto library supports MD5 via EVP implementation]) fi ],[ AC_MSG_WARN([OpenSSL crypto library DOES NOT support MD5 via EVP]) ]) ],[ AC_MSG_WARN([openssl/evp.h header file not found]) ]) AC_MSG_RESULT([*** check for OpenSSL legacy MD5]) AC_CHECK_HEADER(openssl/md5.h, [ AC_MSG_RESULT([openssl/md5.h header file found]) AC_CHECK_LIB(crypto, MD5_Init, [ LDFLAGS_ORIG="$LDFLAGS" LDFLAGS="-lcrypto $LDFLAGS" HAVE_OPENSSL_MD5=1 AC_CHECK_FUNCS(MD5_Init MD5_Update MD5_Final, [ ],[ AC_MSG_RESULT([OpenSSL crypto library supports MD5 via legacy implementation]) HAVE_OPENSSL_MD5=0 ]) LDFLAGS="$LDFLAGS_ORIG" if test "$HAVE_OPENSSL_MD5" = "1"; then AC_MSG_RESULT([*** OpenSSL crypto library supports MD5 via legacy implementation]) fi ],[ AC_MSG_WARN([OpenSSL crypto library DOES NOT support MD5 via legacy implementation]) ]) ],[ AC_MSG_WARN([openssl/md5.h header file not found]) ]) AC_ARG_ENABLE( [bundled-md5], AS_HELP_STRING([--enable-bundled-md5], [Enable bundled MD5 library (default: autoselected)]), [ if test "$enable_bundled_md5" = "yes"; then AC_MSG_RESULT([*** use of bundled MD5 library forced]) ENABLE_BUNDLED_MD5=1 else AC_MSG_RESULT([*** use of OpenSSL MD5 library forced]) fi ],[ if test "$HAVE_OPENSSL_EVP_MD5" = "0"; then if test "$HAVE_OPENSSL_MD5" = "0"; then AC_MSG_RESULT([*** use of bundled MD5 library autoselected because no OpenSSL support found]) ENABLE_BUNDLED_MD5=1 fi fi ] ) if test "$HAVE_OPENSSL_EVP_MD5" = "1"; then # precedence ENABLE_OPENSSL_EVP_MD5=1 elif test "$HAVE_OPENSSL_EVP_MD5_LEGACY" = "1"; then # precedence ENABLE_OPENSSL_EVP_MD5=1 else if test "$HAVE_OPENSSL_MD5" = "1"; then # fallback ENABLE_OPENSSL_MD5=1 fi fi AC_ARG_ENABLE( [openssl-evp-md5], AS_HELP_STRING([--enable-openssl-evp-md5], [Enforce use of OpenSSL EVP MD5 implementation (default: autoselected)]), [ if test "$enable_openssl_evp_md5" = "yes"; then AC_MSG_RESULT([*** use of OpenSSL EVP MD5 implementation forced]) ENABLE_OPENSSL_EVP_MD5=1 ENABLE_OPENSSL_MD5=0 fi ] ) AC_ARG_ENABLE( [openssl-md5], AS_HELP_STRING([--enable-openssl-md5], [Enforce use of OpenSSL legacy MD5 implementation (default: autoselected)]), [ if test "$enable_openssl_md5" = "yes"; then AC_MSG_RESULT([*** use of OpenSSL legacy MD5 implementation forced]) ENABLE_OPENSSL_EVP_MD5=0 ENABLE_OPENSSL_MD5=1 fi ] ) if test "$ENABLE_BUNDLED_MD5" = "1"; then AC_LIBOBJ(../md5/md5) MD5_INCLUDE=-I../md5 AC_DEFINE(ENABLE_BUNDLED_MD5, 1, Define if bundled MD5 should be used) else if test "$ENABLE_OPENSSL_EVP_MD5" = "1"; then LDFLAGS_EXTRA="${LDFLAGS_EXTRA:+$LDFLAGS_EXTRA }-lcrypto" LDFLAGS_EXTRA_MOD_IPV6CALC="-lcrypto $LDFLAGS_EXTRA_MOD_IPV6CALC" LDFLAGS_EXTRA_STATIC="${LDFLAGS_EXTRA_STATIC:+$LDFLAGS_EXTRA_STATIC }-lcrypto -lz -ldl -lpthread -lc" AC_DEFINE(ENABLE_OPENSSL_EVP_MD5, 1, Define if OpenSSL EVP MD5 should be used) AC_MSG_RESULT([*** use of OpenSSL EVP MD5 implementation]) fi if test "$ENABLE_OPENSSL_MD5" = "1"; then LDFLAGS_EXTRA="${LDFLAGS_EXTRA:+$LDFLAGS_EXTRA }-lcrypto" LDFLAGS_EXTRA_MOD_IPV6CALC="-lcrypto $LDFLAGS_EXTRA_MOD_IPV6CALC" LDFLAGS_EXTRA_STATIC="${LDFLAGS_EXTRA_STATIC:+$LDFLAGS_EXTRA_STATIC }-lcrypto -lz -ldl -lpthread -lc" AC_DEFINE(ENABLE_OPENSSL_MD5, 1, Define if OpenSSL legacy MD5 should be used) AC_MSG_RESULT([*** use of OpenSSL legacy MD5 implementation]) fi fi AC_SUBST(MD5_INCLUDE) AC_SUBST(ENABLE_BUNDLED_MD5) AC_SUBST(ENABLE_OPENSSL_EVP_MD5) AC_SUBST(ENABLE_OPENSSL_MD5) dnl ************************************************* dnl defaults dnl ************************************************* geoip_db_default="/usr/share/GeoIP" ip2location_db_default="/usr/share/IP2Location" dbip_db_default="/usr/share/DBIP" external_db_default="/usr/share/ipv6calc/db" mmdb_dyn_lib_default="libmaxminddb.so.0" ip2location_dyn_lib_default="libIP2Location.so.3" dnl ************************************************* dnl Create binaries ushing shared library dnl ************************************************* AC_ARG_ENABLE( [shared], AS_HELP_STRING([--enable-shared], [Enable shared library build (default: disabled)]) ) if test "$enable_shared" = "yes"; then AC_MSG_RESULT([*** Shared library build enabled]) SHARED_LIBRARY="yes" AC_DEFINE(SHARED_LIBRARY, 1, Define if you want ipv6calc binaries compiled with shared library libipv6calc) LDFLAGS_EXTRA_MOD_IPV6CALC="-Wl,../lib/libipv6calc.so.$PACKAGE_VERSION -Wl,../databases/lib/libipv6calc_db_wrapper.so.$PACKAGE_VERSION $LDFLAGS_EXTRA" LDFLAGS_EXTRA="../lib/libipv6calc.so.$PACKAGE_VERSION ../databases/lib/libipv6calc_db_wrapper.so.$PACKAGE_VERSION $LDFLAGS_EXTRA" LD_LIBRARY_PATH=../lib:../databases/lib:$LD_LIBRARY_PATH LD_LIBRARY_PATH_BASIC=../lib:../databases/lib:$LD_LIBRARY_PATH_BASIC else SHARED_LIBRARY="no" IPV6CALC_LIB="-L../lib/ -L../databases/lib/ -lipv6calc_db_wrapper -lipv6calc" fi AC_SUBST(SHARED_LIBRARY) AC_SUBST(IPV6CALC_LIB) dnl ************************************************* dnl Check for dynamic loading of libraries capability dnl ************************************************* AC_CHECK_HEADER(dlfcn.h, [ AC_MSG_RESULT([*** Dynamic loading of libraries is SUPPORTED]) DYNAMIC_LOAD_SUPPORT="yes" ], [ DYNAMIC_LOAD_SUPPORT="no" AC_MSG_WARN(["Dynamic loading of libraries is not supported, no header file found"]) ]) AC_ARG_ENABLE( [dynamic-load], AS_HELP_STRING([--disable-dynamic-load], [Disable dynamic load of libraries (default: enabled)]) ) if test "$enable_dynamic_load" = "yes"; then DYNAMIC_LOAD="no" else DYNAMIC_LOAD="yes" fi if test "$DYNAMIC_LOAD_SUPPORT" = "yes"; then if test "$DYNAMIC_LOAD" = "no"; then AC_MSG_WARN(["Dynamic loading of libraries forced to be disabled"]) fi fi dnl ************************************************* dnl internal databases default dnl ************************************************* BUILTIN="no" dnl ************************************************* dnl disable built-in database IEEE dnl ************************************************* AC_ARG_ENABLE([db-ieee], AS_HELP_STRING([--disable-db-ieee], [Disable built-in IEEE database (default: enabled)]), [ DB_IEEE="$enable_db_ieee" ],[ DB_IEEE="yes" BUILTIN="yes" ]) if test "$DB_IEEE" = "yes"; then AC_DEFINE(SUPPORT_DB_IEEE, 1, Define if you want IEEE database included.) fi dnl ************************************************* dnl disable built-in database IPv4 dnl ************************************************* AC_ARG_ENABLE([db-ipv4], AS_HELP_STRING([--disable-db-ipv4], [Disable built-in IPv4-to-Registry database (default: enabled)]), [ DB_IPV4="$enable_db_ipv4" ],[ DB_IPV4="yes" BUILTIN="yes" ]) if test "$DB_IPV4" = "yes"; then AC_DEFINE(SUPPORT_DB_IPV4_REG, 1, Define if you want IPv4-to-Registry database included.) fi dnl ************************************************* dnl disable built-in database IPv6 dnl ************************************************* AC_ARG_ENABLE([db-ipv6], AS_HELP_STRING([--disable-db-ipv6], [Disable built-in IPv6-to-Registry database (default: enabled)]), [ DB_IPV6="$enable_db_ipv6" ], [ DB_IPV6="yes" BUILTIN="yes" ]) if test "$DB_IPV6" = "yes"; then AC_DEFINE(SUPPORT_DB_IPV6_REG, 1, Define if you want IPv6-to-Registry database included.) fi dnl ************************************************* dnl disable built-in database AS->Registry dnl ************************************************* AC_ARG_ENABLE([db-as-registry], AS_HELP_STRING([--disable-db-as-registry], [Disable built-in AS-to-Registry database (default: enabled)]), [ DB_AS_REG="$enable_db_as_registry" ], [ DB_AS_REG="yes" BUILTIN="yes" ]) if test "$DB_AS_REG" = "yes"; then AC_DEFINE(SUPPORT_DB_AS_REG, 1, Define if you want AS-to-Registry database included.) fi dnl ************************************************* dnl disable built-in database CC->Registry dnl ************************************************* AC_ARG_ENABLE([db-cc-registry], AS_HELP_STRING([--disable-db-cc-registry], [Disable built-in CountryCode-to-Registry database (default: enabled)]), [ DB_CC_REG="$enable_db_cc_registry" ], [ DB_CC_REG="yes" BUILTIN="yes" ]) if test "$DB_CC_REG" = "yes"; then AC_DEFINE(SUPPORT_DB_CC_REG, 1, Define if you want CC-to-Registry database included.) fi dnl ************************************************* dnl Built-in database support (catch-all) dnl ************************************************* AC_ARG_ENABLE([builtin], AS_HELP_STRING([--disable-builtin], [Disable all built-in databases (default: enabled)]), [ DB_CC_REG="$enable_builtin" DB_AS_REG="$enable_builtin" DB_IEEE="$enable_builtin" DB_IPV4="$enable_builtin" DB_IPV6="$enable_builtin" ] ) dnl ************************************************* dnl enable built-in database support in general dnl ************************************************* if test "$BUILTIN" = "yes"; then AC_DEFINE(SUPPORT_BUILTIN, 1, Define if you want general BuiltIn database included.) fi dnl ************************************************* dnl External ipv6calc db support dnl ************************************************* AC_ARG_ENABLE([external], AS_HELP_STRING([--enable-external], [Enable external db support (default: disabled)]), [ EXTERNAL="$enable_external" ], [ EXTERNAL="no" ]) dnl defaults for database directories AC_ARG_WITH([external-db], AS_HELP_STRING([--with-external-db=DIR], [Use specified external database directory, default: /usr/share/ipv6calc/db]), [ external_db="$with_external_db" ], [ external_db=$external_db_default ]) if test "$EXTERNAL" = "yes"; then require_libdb="yes" AC_DEFINE(SUPPORT_EXTERNAL, 1, Define if you want external support included.) AC_MSG_RESULT([*** external db dir: $external_db]) AC_DEFINE_UNQUOTED(EXTERNAL_DB, "$external_db", Define external database directory.) fi EXTERNAL_DB=$external_db AC_SUBST(EXTERNAL_DB) dnl ************************************************* dnl libdb required dnl ************************************************* if test "$require_libdb" = "yes"; then AC_CHECK_HEADER(db.h, [ AC_CHECK_LIB(db, db_create, [ AC_MSG_RESULT([Berkeley DB library found and usable: db_create]) ],[ AC_MSG_ERROR([Berkeley DB library file misses: db_create]) ]) ],[ AC_MSG_ERROR([Berkeley DB library header files not found (perhaps missing one of the following packages: db4-devel libdb-devel)]) ]) AC_CHECK_FILE(/sbin/ldconfig, [ dnl try to retrieve installed version: '#?'/'#\?' -> ugly workaround to avoid that autoconf parser removes '[' and ']' DB_VERSION=`/sbin/ldconfig -p | grep -E '#?\s*libdb-[0-9]+.[0-9]+' | sed -e 's/^#\?\s*libdb-\([0-9]*\)\.\([0-9]*\).*/\1.\2/' | sort -n | tail -1` if test -n "$DB_VERSION"; then AC_MSG_RESULT([Berkeley DB library version found: libdb-$DB_VERSION]) LDFLAGS_EXTRA_STATIC="-ldb-$DB_VERSION${LDFLAGS_EXTRA_STATIC:+ $LDFLAGS_EXTRA_STATIC}" fi ],[ AC_MSG_WARN([Missing /sbin/ldconfig, cannot detect Berkeley DB library version]) ]) LDFLAGS_EXTRA="${LDFLAGS_EXTRA:+$LDFLAGS_EXTRA }-ldb" LDFLAGS_EXTRA_MOD_IPV6CALC="-ldb $LDFLAGS_EXTRA_MOD_IPV6CALC" HAVE_BERKELEY_DB_SUPPORT=1 AC_DEFINE(HAVE_BERKELEY_DB_SUPPORT, 1, Define if Berkeley DB support is required.) AC_MSG_RESULT([*** Berkeley DB library found and usable (required)]) fi dnl ************************************************* dnl MaxMindDB support (GeoIP2, DB-IP) dnl ************************************************* MMDB_LIB_NAME="maxminddb" MMDB_INCLUDE_VERSION="" AC_ARG_ENABLE([mmdb], AS_HELP_STRING([--enable-mmdb], [Enable MaxMindDB support (GeoIP/db-ip.com) (default: disabled)]), [ if test "$enable_mmdb" != "no"; then MMDB="$enable_mmdb" fi ],[ MMDB="no" ]) AC_ARG_WITH([mmdb-dynamic], AS_HELP_STRING([--with-mmdb-dynamic], [Enable use of dynamic loading of MaxMindDB library (default=no)]), [ if test "$with_mmdb_dynamic" != "no"; then MMDB_DYN="yes" fi ]) AC_ARG_WITH([mmdb-headers], AS_HELP_STRING([--with-mmdb-headers=DIR], [MaxMindDB include files location]), [ MMDB_INCLUDE_DIR="$with_mmdb_headers" ]) if test -n "$MMDB_INCLUDE_DIR"; then MMDB_INCLUDE="-I$MMDB_INCLUDE_DIR" if echo "$MMDB_INCLUDE_DIR" | grep -q "^/"; then # absolute path MMDB_INCLUDE_L1="-I$MMDB_INCLUDE_DIR" MMDB_INCLUDE_L2="-I$MMDB_INCLUDE_DIR" else MMDB_INCLUDE_L1="-I../$MMDB_INCLUDE_DIR" MMDB_INCLUDE_L2="-I../../$MMDB_INCLUDE_DIR" fi fi AC_ARG_WITH([mmdb-lib], AS_HELP_STRING([--with-mmdb-lib=DIR], [MaxMindDB library location]), [ if test -d "$with_mmdb_lib"; then MMDB_LIB_DIR="$with_mmdb_lib" MMDB_LIB="-L$MMDB_LIB_DIR $MMDB_LIB" AC_MSG_RESULT([MaxMindDB library directory given: $MMDB_LIB_DIR]) else AC_MSG_ERROR([MaxMindDB library directory not found: $with_mmdb_lib]) fi if echo "$MMDB_LIB_DIR" | grep -q "^/"; then # absolute path MMDB_LIB_L1="-L$MMDB_LIB_DIR" MMDB_LIB_L2="-L$MMDB_LIB_DIR" LD_LIBRARY_PATH=$MMDB_LIB_DIR:$LD_LIBRARY_PATH else MMDB_LIB_L1="-L../$MMDB_LIB_DIR" MMDB_LIB_L2="-L../../$MMDB_LIB_DIR" LD_LIBRARY_PATH=../$MMDB_LIB_DIR:$LD_LIBRARY_PATH fi ]) AC_ARG_WITH([mmdb-dyn-lib], AS_HELP_STRING([--with-mmdb-dyn-lib=NAME], [Use specified MaxMindDB dynamic library, default: libmaxminddb.so.0]), [ mmdb_dyn_lib="$with_mmdb_dyn_lib" ], [ mmdb_dyn_lib=$mmdb_dyn_lib_default ]) if test "$MMDB" = "yes"; then if test "$MMDB_DYN" != "yes"; then MMDB_LIB="-l$MMDB_LIB_NAME $MMDB_LIB" MMDB_LIB_L1="-l$MMDB_LIB_NAME $MMDB_LIB_L1" MMDB_LIB_L2="-l$MMDB_LIB_NAME $MMDB_LIB_L2" else AC_MSG_RESULT([*** MaxMindDB dynamic load support enabled, disable MaxMindDB linker options]) fi CPPFLAGS="$CPPLAGS $MMDB_INCLUDE" AC_MSG_RESULT([*** MaxMindDB support requested]) AC_MSG_RESULT([***** CPPFLAGS=$CPPFLAGS]) AC_MSG_RESULT([***** CFLAGS =$CFLAGS]) AC_MSG_RESULT([***** LDFLAGS =$LDFLAGS]) AC_CHECK_HEADER(maxminddb.h, [ if test -n "$MMDB_INCLUDE_DIR"; then if test -e "$MMDB_INCLUDE_DIR/maxminddb.h"; then CPPFLAGS="$CPPFLAGS -include $MMDB_INCLUDE_DIR/maxminddb.h" else AC_MSG_ERROR([MaxMindDB library header file not found: $MMDB_INCLUDE_DIR/maxminddb.h]) fi else CPPFLAGS="$CPPFLAGS -include maxminddb.h" fi AC_CHECK_DECL([MMDB_open],, AC_MSG_ERROR([MaxMindDB library header file misses MMDB_open])) AC_CHECK_DECLS([MMDB_lib_version]) ], [ AC_MSG_ERROR([MaxMindDB library header files not found]) ]) AC_MSG_RESULT([*** MaxMindDB database directory: $mmdb_db]) AC_DEFINE_UNQUOTED(MMDB_DB, "$mmdb_db", Define MaxMindDB database directory.) if test "$MMDB_DYN" != "yes"; then CPPFLAGS="$CFLAGS" if test -n "$MMDB_LIB_DIR"; then if test -e "$MMDB_LIB_DIR/lib$MMDB_LIB_NAME.so"; then LDFLAGS="$LDFLAGS -L$MMDB_LIB_DIR" CFLAGS="$CFLAGS -L$MMDB_LIB_DIR" LIBS="-L$MMDB_LIB_DIR" else AC_MSG_ERROR([MaxMindDB library file not found: $MMDB_INCLUDE_DIR/lib$MMDB_LIB_NAME.so]) fi fi AC_MSG_RESULT([***** CPPFLAGS=$CPPFLAGS]) AC_MSG_RESULT([***** CFLAGS =$CFLAGS]) AC_MSG_RESULT([***** LDFLAGS =$LDFLAGS]) AC_CHECK_LIB($MMDB_LIB_NAME, MMDB_open, [ AC_DEFINE(SUPPORT_MMDB, 1, Define if you want MaxMindDB support.) AC_MSG_RESULT([*** MaxMindDB support enabled]) ], [ AC_MSG_ERROR([MaxMindDB library header files given but the library was not found, LDFLAGS=$LDFLAGS]) ]) else # wrapper detects by itself the real support AC_MSG_RESULT([*** GeoIP dyn lib: $mmdb_dyn_lib]) AC_DEFINE_UNQUOTED(MMDB_DYN_LIB, "$mmdb_dyn_lib", Define MaxMindDB dynamic library.) AC_MSG_RESULT([*** MaxMindDB support will be implemented by using dynamic load of library]) AC_DEFINE(SUPPORT_MMDB, 1, Define if you want MaxMindDB support.) AC_DEFINE(SUPPORT_MMDB_DYN, 1, Define if you want MaxMindDB support with dynamic loading support - requires also additional linker options.) fi # GeoIPv2 and DBIPv2 support AC_ARG_ENABLE([geoip2], AS_HELP_STRING([--disable-geoip2], [Disable MaxMindDB support for GeoIP (default: enabled)]), [ GEOIP2="no" ],[ GEOIP2="yes" ]) AC_ARG_ENABLE([dbip2], AS_HELP_STRING([--disable-dbip2], [Disable MaxMindDB support for db-ip.com (default: enabled)]), [ DBIP2="no" ],[ DBIP2="yes" ]) else GEOIP2=no DBIP2=no fi AC_SUBST(MMDB_INCLUDE) AC_SUBST(MMDB_INCLUDE_VERSION) AC_SUBST(MMDB_INCLUDE_L2) AC_SUBST(MMDB_INCLUDE_L1) AC_SUBST(MMDB_LIB) AC_SUBST(MMDB_LIB_L1) AC_SUBST(MMDB_LIB_L2) AC_SUBST(MMDB_DYN_LIB) if test -n "$MMDB_INCLUDE_VERSION"; then AC_DEFINE_UNQUOTED(MMDB_INCLUDE_VERSION, "$MMDB_INCLUDE_VERSION", MaxMindDB include file version.) fi dnl ************************************************* dnl DB-IP.com support dnl ************************************************* AC_ARG_ENABLE([dbip], AS_HELP_STRING([--enable-dbip], [Compatibility Dummy (no longer supported)]), [ ]) dnl defaults for database directories AC_ARG_WITH([dbip-db], AS_HELP_STRING([--with-dbip-db=DIR], [Use specified db-ip.com database directory, default: /usr/share/DBIP]), [ dbip_db="$with_dbip_db" ], [ dbip_db=$dbip_db_default ]) if test "$DBIP2" = "yes"; then AC_MSG_RESULT([*** db-ip.com (MaxMindDB) support auotenabled"]) AC_DEFINE(SUPPORT_DBIP2, 1, Define if you want db-ip.com (MaxMindDB) support included.) AC_MSG_RESULT([*** db-ip.com (MaxMindDB) database directory: $dbip_db]) AC_DEFINE_UNQUOTED(DBIP2_DB, "$dbip_db", Define db-ip.com (MaxMindDB) database directory.) fi DBIP2_DB=$dbip_db AC_SUBST(DBIP2_DB) dnl ************************************************* dnl IP2Location support dnl ************************************************* IP2LOCATION_LIB_NAME="IP2Location" IP2LOCATION_INCLUDE_VERSION="" AC_ARG_ENABLE([ip2location], AS_HELP_STRING([--enable-ip2location], [Enable IP2Location support (default: disabled)]), [ IP2LOCATION="$enable_ip2location" ],[ IP2LOCATION="no" ]) AC_ARG_WITH([ip2location-dynamic], AS_HELP_STRING([--with-ip2location-dynamic], [Enable use of dynamic loading of IP2Location library (default=no)]), [ if test "$enable_ip2location_dynamic" != "no"; then IP2LOCATION_DYN="yes" fi ]) AC_ARG_WITH([ip2location-headers], AS_HELP_STRING([--with-ip2location-headers=DIR], [IP2Location include files location]), [ IP2LOCATION_INCLUDE_DIR="$with_ip2location_headers" ]) AC_ARG_WITH([ip2location-headers-fallback], AS_HELP_STRING([--with-ip2location-headers-fallback], [Compatibility Dummy (no longer supported)]), [ ]) if test -n "$IP2LOCATION_INCLUDE_DIR"; then IP2LOCATION_INCLUDE="-I$IP2LOCATION_INCLUDE_DIR" if test -d "$IP2LOCATION_INCLUDE_DIR/iMath"; then # include iMath where existing (API < 7.0.0) IP2LOCATION_INCLUDE="$IP2LOCATION_INCLUDE -I$IP2LOCATION_INCLUDE_DIR/iMath" fi if echo "$IP2LOCATION_INCLUDE_DIR" | grep -q "^/"; then # absolute path IP2LOCATION_INCLUDE_L1="-I$IP2LOCATION_INCLUDE_DIR" IP2LOCATION_INCLUDE_L2="-I$IP2LOCATION_INCLUDE_DIR" if test -d "$IP2LOCATION_INCLUDE_DIR/iMath"; then # include iMath where existing (API < 7.0.0) IP2LOCATION_INCLUDE_L1="$IP2LOCATION_INCLUDE_L1 -I$IP2LOCATION_INCLUDE_DIR/iMath" IP2LOCATION_INCLUDE_L2="$IP2LOCATION_INCLUDE_L2 -I$IP2LOCATION_INCLUDE_DIR/iMath" fi else IP2LOCATION_INCLUDE_L1="-I../$IP2LOCATION_INCLUDE_DIR" IP2LOCATION_INCLUDE_L2="-I../../$IP2LOCATION_INCLUDE_DIR" if test -d "$IP2LOCATION_INCLUDE_DIR/iMath"; then # include iMath where existing (API < 7.0.0) IP2LOCATION_INCLUDE_L1="$IP2LOCATION_INCLUDE_L1 -I../$IP2LOCATION_INCLUDE_DIR/iMath" IP2LOCATION_INCLUDE_L2="$IP2LOCATION_INCLUDE_L2 -I../../$IP2LOCATION_INCLUDE_DIR/iMath" fi fi fi AC_ARG_WITH([ip2location-lib], AS_HELP_STRING([--with-ip2location-lib=FILE], [IP2Location library location]), [ if test -d "$with_ip2location_lib"; then IP2LOCATION_LIB_DIR="$with_ip2location_lib" IP2LOCATION_LIB="-L$IP2LOCATION_LIB_DIR $IP2LOCATION_LIB" AC_MSG_RESULT([IP2Location library directory given: $IP2LOCATION_LIB_DIR]) else AC_MSG_ERROR([IP2Location library directory not found: $with_ip2location_lib]) fi if echo "$IP2LOCATION_LIB_DIR" | grep -q "^/"; then # absolute path IP2LOCATION_LIB_L1="-L$IP2LOCATION_LIB_DIR" IP2LOCATION_LIB_L2="-L$IP2LOCATION_LIB_DIR" if test -n "$LD_LIBRARY_PATH"; then LD_LIBRARY_PATH=$IP2LOCATION_LIB_DIR:$LD_LIBRARY_PATH else LD_LIBRARY_PATH=$IP2LOCATION_LIB_DIR fi else IP2LOCATION_LIB_L1="-L../$IP2LOCATION_LIB_DIR" IP2LOCATION_LIB_L2="-L../../$IP2LOCATION_LIB_DIR" if test -n "$LD_LIBRARY_PATH"; then LD_LIBRARY_PATH=../$IP2LOCATION_LIB_DIR:$LD_LIBRARY_PATH else LD_LIBRARY_PATH=$IP2LOCATION_LIB_DIR fi fi ]) # must be tested #AC_ARG_WITH([ip2location-lib-name], # AS_HELP_STRING([--with-ip2location-lib-name=NAME], # [IP2Location library name]), # [ # IP2LOCATION_LIB_NAME="$with_ip2location_lib_name" # IP2LOCATION_LIB="-l$IP2LOCATION_LIB_NAME $IP2LOCATION_LIB" # AC_MSG_RESULT([IP2Location library name given: $IP2LOCATION_LIB_NAME]) # ],[ # ]) AC_ARG_WITH([ip2location-static], AS_HELP_STRING([--with-ip2location-static], [Explicitly link IP2Location statically (default=no)]), [ if test "$with_ip2location_static" != "no"; then IP2LOCATION_LIB="-Wl,-Bstatic $IP2LOCATION_LIB -Wl,-Bdynamic" fi ]) dnl defaults for database directories AC_ARG_WITH([ip2location-db], AS_HELP_STRING([--with-ip2location-db=DIR], [Use specified IP2Location database directory, default: /usr/share/IP2Location]), [ ip2location_db="$with_ip2location_db" ], [ ip2location_db=$ip2location_db_default ]) AC_ARG_WITH([ip2location-dyn-lib], AS_HELP_STRING([--with-ip2location-dyn-lib=NAME], [Use specified IP2Location dynamic library, default: libIP2Location.so]), [ ip2location_dyn_lib="$with_ip2location_dyn_lib" ], [ ip2location_dyn_lib=$ip2location_dyn_lib_default ]) if test "$IP2LOCATION" = "yes"; then if test "$IP2LOCATION_DYN" != "yes"; then IP2LOCATION_LIB="-l$IP2LOCATION_LIB_NAME $IP2LOCATION_LIB" IP2LOCATION_LIB_L1="-l$IP2LOCATION_LIB_NAME $IP2LOCATION_LIB_L1" IP2LOCATION_LIB_L2="-l$IP2LOCATION_LIB_NAME $IP2LOCATION_LIB_L2" else AC_MSG_RESULT([**** IP2Location dynamic load support enabled, disable IP2Location linker options]) fi CPPFLAGS="$CPPFLAGS $IP2LOCATION_INCLUDE" AC_MSG_RESULT([*** IP2Location support requested]) AC_MSG_RESULT([***** CPPFLAGS=$CPPFLAGS]) AC_MSG_RESULT([***** CFLAGS =$CFLAGS]) AC_MSG_RESULT([***** LDFLAGS =$LDFLAGS]) AC_CHECK_HEADER(IP2Location.h, [ if test -n "$IP2LOCATION_INCLUDE_DIR"; then if test -e "$IP2LOCATION_INCLUDE_DIR/IP2Location.h"; then CPPFLAGS="$CPPFLAGS -include $IP2LOCATION_INCLUDE_DIR/IP2Location.h" else AC_MSG_ERROR([IP2Location library header file not found: $IP2LOCATION_INCLUDE_DIR/IP2Location.h]) fi else CPPFLAGS="$CPPFLAGS -include IP2Location.h" fi AC_CHECK_DECL([IP2Location_open],, AC_MSG_ERROR([IP2Location library header file misses IP2Location_open])) AC_CHECK_DECLS([IP2Location_close, IP2Location_get_country_short, IP2Location_get_country_long]) AC_CHECK_DECLS([API_VERSION]) AC_CHECK_DECLS([IP2Location_api_version_string], IP2LOCATION_HAS_API_STRING="yes") AC_CHECK_DECL([IP2Location_lib_version_string], IP2LOCATION_HAS_LIB_STRING="yes") AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[ #include IP2Location loc; void test() { loc.ipv6_database_address = 1; }; ]])],[ AC_MSG_RESULT([IP2Location has full (and updated) IPv6 support (API >= 8.2.0)]) ],[ AC_MSG_ERROR([IP2Location has only compat IPv6 support (API < 7.0.0) or old (API < 8.2.0) which is no longer supported]) ] ) AC_CHECK_DECLS([USAGETYPE], [ AC_MSG_RESULT([IP2Location has full support (library >= 6.0.0)]) ], [ AC_MSG_ERROR([IP2Location library header file misses USAGETYPE (library < 6.0.0) which is no longer supported]) ] ) ], [ AC_MSG_ERROR([IP2Location library header files not found]) ]) AC_MSG_RESULT([*** IP2location db dir: $ip2location_db]) AC_DEFINE_UNQUOTED(IP2LOCATION_DB, "$ip2location_db", Define IP2Location database directory.) if test "$IP2LOCATION_DYN" != "yes"; then if test "$IP2LOCATION_STATIC" = "yes"; then AC_DEFINE(SUPPORT_IP2LOCATION_STATIC, 1, Define if you want IP2Location support statically linked - requires also additional linker options.) fi CPPFLAGS="$CFLAGS" if test -n "$IP2LOCATION_LIB_DIR"; then if test -e "$IP2LOCATION_LIB_DIR/lib$IP2LOCATION_LIB_NAME.so"; then LDFLAGS="$LDFLAGS -L$IP2LOCATION_LIB_DIR" CFLAGS="$CFLAGS -L$IP2LOCATION_LIB_DIR" LIBS="-L$IP2LOCATION_LIB_DIR" else AC_MSG_ERROR([IP2Location library file not found: $IP2LOCATION_INCLUDE_DIR/lib$IP2LOCATION_LIB_NAME.so]) fi fi AC_CHECK_LIB($IP2LOCATION_LIB_NAME, IP2Location_api_version_string, [ AC_MSG_RESULT([*** IP2Location library supports API version string]) ],[ AC_MSG_ERROR([IP2Location library file misses IP2Location_api_version_string - no longer supported]) ]) AC_CHECK_LIB($IP2LOCATION_LIB_NAME, IP2Location_lib_version_string, [ if test "$IP2LOCATION_HAS_LIB_STRING" != "yes"; then AC_MSG_ERROR([IP2Location library header file misses IP2Location_lib_version_string while library contains]) else AC_MSG_RESULT([*** IP2Location library supports LIB version string]) fi ]) AC_MSG_RESULT([***** CPPFLAGS=$CPPFLAGS]) AC_MSG_RESULT([***** CFLAGS =$CFLAGS]) AC_MSG_RESULT([***** LDFLAGS =$LDFLAGS]) AC_CHECK_LIB($IP2LOCATION_LIB_NAME, IP2Location_open, [ AC_DEFINE(SUPPORT_IP2LOCATION, 1, Define if you want IP2Location support.) AC_MSG_RESULT([*** IP2Location support enabled]) ], [ AC_MSG_ERROR([IP2Location library header files were found but the library was not found, LDFLAGS=$LDFLAGS, CFLAGS=$CFLAGS]) ]) else AC_CHECK_DECLS([IP2Location_api_version_string], [ AC_MSG_RESULT([*** IP2Location header supports API version string]) ],[ AC_MSG_ERROR([IP2Location library header file misses IP2Location_api_version_string - no longer supported]) ]) # wrapper detects by itself the real support AC_MSG_RESULT([*** IP2Location dyn lib: $ip2location_dyn_lib]) AC_DEFINE_UNQUOTED(IP2LOCATION_DYN_LIB, "$ip2location_dyn_lib", Define IP2Location dynamic library.) AC_MSG_RESULT([*** IP2Location support will be implemented by using dynamic load of library]) AC_DEFINE(SUPPORT_IP2LOCATION, 1, Define if you want IP2Location support.) AC_DEFINE(SUPPORT_IP2LOCATION_DYN, 1, Define if you want IP2Location support with dynamic loading support - requires also additional linker options.) fi fi IP2LOCATION_DB=$ip2location_db AC_SUBST(IP2LOCATION_INCLUDE) AC_SUBST(IP2LOCATION_INCLUDE_L1) AC_SUBST(IP2LOCATION_INCLUDE_L2) AC_SUBST(IP2LOCATION_LIB) AC_SUBST(IP2LOCATION_LIB_L1) AC_SUBST(IP2LOCATION_LIB_L2) AC_SUBST(IP2LOCATION_DB) AC_SUBST(IP2LOCATION_DYN_LIB) if test -n "$IP2LOCATION_INCLUDE_VERSION"; then AC_DEFINE_UNQUOTED(IP2LOCATION_INCLUDE_VERSION, "$IP2LOCATION_INCLUDE_VERSION", IP2Location include file version.) fi dnl ************************************************* dnl GeoIP v1 support dnl ************************************************* GEOIP_LIB_NAME="GeoIP" GEOIP_INCLUDE_VERSION="" AC_ARG_ENABLE([geoip], AS_HELP_STRING([--enable-geoip], [Compatibility Dummy (no longer supported)]), [ ]) AC_ARG_WITH([geoip-dynamic], AS_HELP_STRING([--with-geoip-dynamic], [Compatibility Dummy (no longer supported)]), [ ]) AC_ARG_WITH([geoip-headers], AS_HELP_STRING([--with-geoip-headers=DIR], [Compatibility Dummy (no longer supported)]), [ ]) AC_ARG_WITH([geoip-headers-fallback], AS_HELP_STRING([--with-geoip-headers-fallback], [Compatibility Dummy (no longer supported)]), [ ]) AC_ARG_WITH([geoip-lib], AS_HELP_STRING([--with-geoip-lib=DIR], [Compatibility Dummy (no longer supported)]), [ ]) AC_ARG_WITH([geoip-static], AS_HELP_STRING([--with-geoip-static], [Compatibility Dummy (no longer supported)]), [ ]) AC_ARG_WITH([geoip-dyn-lib], AS_HELP_STRING([--with-geoip-dyn-lib=NAME], [Compatibility Dummy (no longer supported)]), [ ]) AC_ARG_WITH([geoip-ipv6-compat], AS_HELP_STRING([--with-geoip-ipv6-compat], [Compatibility Dummy (no longer supported)]), [ ]) dnl ************************************************* dnl GeoIP v2 support powered by MaxMindDB dnl ************************************************* if test "$GEOIP2" = "yes"; then AC_MSG_RESULT([*** GeoIP (MaxMindDB) auotenabled"]) fi dnl ************************************************* dnl GeoIP common support powered by MaxMindDB dnl ************************************************* AC_ARG_WITH([geoip-db], AS_HELP_STRING([--with-geoip-db=DIR], [Use specified GeoIP database directory, default: /usr/share/GeoIP]), [ geoip_db="$with_geoip_db" ], [ geoip_db=$geoip_db_default ]) if test "$GEOIP2" = "yes"; then AC_DEFINE(SUPPORT_GEOIP2, 1, Define if you want GeoIP (MaxMindDB) support.) AC_MSG_RESULT([*** GeoIP (MaxMindDB) support enabled]) AC_MSG_RESULT([*** GeoIP (MaxMindDB) database directory: $geoip_db]) AC_DEFINE_UNQUOTED(GEOIP2_DB, "$geoip_db", Define GeoIP (MaxMindDB) database directory.) fi GEOIP2_DB=$geoip_db dnl ************************************************* dnl Dynamic load used? dnl ************************************************* if test "$DYNAMIC_LOAD" = "yes"; then if test "$GEOIP_DYN" = "yes" -o "$IP2LOCATION_DYN" = "yes" -o "$MMDB_DYN" = "yes"; then DYNAMIC_LOAD="yes" AC_MSG_RESULT([*** Dynamic loading of libraries is ENABLED]) DYNLOAD_LIB="-rdynamic -ldl" fi fi AC_SUBST(DYNLOAD_LIB) dnl ************************************************* dnl mod_ipv6calc / apxs - APache eXtension tool dnl ************************************************* AC_ARG_ENABLE([mod_ipv6calc], AS_HELP_STRING([--enable-mod_ipv6calc], [Enable build of mod_ipv6calc for Apache (default: disabled)]) ) if test "$enable_mod_ipv6calc" = "yes"; then ENABLE_MOD_IPV6CALC="1" else ENABLE_MOD_IPV6CALC="0" fi AC_SUBST(ENABLE_MOD_IPV6CALC) AC_ARG_WITH(apxs, AC_HELP_STRING([--with-apxs=NAME], [name of the apxs executable (apxs)]), [APXS="$with_apxs"]) if test "$ENABLE_MOD_IPV6CALC" = "1"; then AC_MSG_RESULT([Build of mod_ipv6calc enabled]) if test -z "$APXS"; then AC_PATH_PROGS(APXS, apxs2 apxs, [], [$PATH:/usr/local/apache/bin:/usr/sbin]) fi if test -z "$APXS"; then AC_MSG_ERROR([No APXS binary found: cannot create Apache module - missing httpd-devel?]) else AC_MSG_RESULT([APXS binary found: $APXS]) # partially taken from configure.ac from mod_wsgi AC_MSG_CHECKING(Apache version) HTTPD="`${APXS} -q SBINDIR`/`${APXS} -q TARGET`" HTTPD_INCLUDEDIR="`${APXS} -q INCLUDEDIR`" if test -x ${HTTPD}; then HTTPD_VERSION=`${HTTPD} -v | awk '/version/ {print $3}' \ | awk -F/ '{print $2}'` else if test -f ${HTTPD_INCLUDEDIR}/ap_release.h; then HTTPD_VERSION=`grep '^#define AP_SERVER_MAJORVERSION_NUMBER ' \ ${HTTPD_INCLUDEDIR}/ap_release.h | sed -e \ 's/^#define AP_SERVER_MAJORVERSION_NUMBER \([0-9]\).*/\1.X/'` else if test -f ${HTTPD_INCLUDEDIR}/httpd.h; then HTTPD_VERSION=`grep '^#define APACHE_RELEASE ' \ ${HTTPD_INCLUDEDIR}/httpd.h | sed -e \ 's/^#define APACHE_RELEASE \([0-9]\).*/\1.X/'` else HTTPD_VERSION="2.?" fi fi fi HTTPD_LIBEXECDIR="`${APXS} -q libexecdir`" if test -z "$HTTPD_LIBEXECDIR"; then AC_MSG_ERROR([${APXS} cannot retrieve libexecdir]) fi HTTPD_SYSCONFDIR="`${APXS} -q sysconfdir`" if test -z "$HTTPD_SYSCONFDIR"; then AC_MSG_ERROR([${APXS} cannot retrieve sysconfdir]) fi if test -n "$HTTPD_SYSCONFDIR"; then HTTPD_SYSCONFDIR="$HTTPD_SYSCONFDIR.d" fi if test -n "$HTTPD_VERSION"; then HTTPD_VERSION_MAJOR_MINOR=`echo "$HTTPD_VERSION" | awk -F. '{ print $1 "." $2 }'` fi fi AC_SUBST(HTTPD_LIBEXECDIR) AC_SUBST(HTTPD_SYSCONFDIR) AC_SUBST(HTTPD_VERSION_MAJOR_MINOR) AC_SUBST(APXS) else AC_MSG_WARN([Build of mod_ipv6calc NOT enabled]) fi dnl ************************************************* dnl Files to create from .in dnl ************************************************* AC_SUBST(CFLAGS_EXTRA) AC_SUBST(LDFLAGS_EXTRA) AC_SUBST(LDFLAGS_EXTRA_MOD_IPV6CALC) AC_SUBST(LDFLAGS_EXTRA_STATIC) AC_SUBST(LD_LIBRARY_PATH) AC_SUBST(LD_LIBRARY_PATH_BASIC) AC_CONFIG_FILES([ tools/ipv6calc-db-update.sh ], [ chmod a+x tools/ipv6calc-db-update.sh ]) AC_CONFIG_FILES([ tools/DBIP-update.sh ], [ chmod a+x tools/DBIP-update.sh ]) AC_CONFIG_FILES([ tools/IP2Location-update.sh ], [ chmod a+x tools/IP2Location-update.sh ]) AC_CONFIG_FILES([ tools/GeoIP-update.sh ], [ chmod a+x tools/GeoIP-update.sh ]) AC_OUTPUT([ Makefile md5/Makefile tools/Makefile getopt/Makefile ipv6calc/Makefile lib/Makefile man/Makefile databases/lib/Makefile ipv6logconv/Makefile ipv6loganon/Makefile ipv6logstats/Makefile ipv6calcweb/Makefile contrib/ipv6calc.spec mod_ipv6calc/Makefile VERSION ]) AC_MSG_RESULT([***** Summary]) AC_MSG_RESULT([*** MMDB =$MMDB]) AC_MSG_RESULT([*** MMDB_DYN =$MMDB_DYN]) AC_MSG_RESULT([*** MMDB_DYN_LIB =$mmdb_dyn_lib]) AC_MSG_RESULT([*** MMDB_INCLUDE =$MMDB_INCLUDE]) AC_MSG_RESULT([*** MMDB_INCLUDE_VERSION =$MMDB_INCLUDE_VERSION]) AC_MSG_RESULT([*** MMDB_LIB =$MMDB_LIB]) AC_MSG_RESULT([*** MMDB_LIB_NAME =$MMDB_LIB_NAME]) AC_MSG_RESULT([*** MMDB_LIB_DIR =$MMDB_LIB_DIR]) AC_MSG_RESULT([]) AC_MSG_RESULT([*** IP2LOCATION =$IP2LOCATION]) AC_MSG_RESULT([*** IP2LOCATION_DB =$IP2LOCATION_DB]) AC_MSG_RESULT([*** IP2LOCATION_DYN =$IP2LOCATION_DYN]) AC_MSG_RESULT([*** IP2LOCATION_DYN_LIB =$ip2location_dyn_lib]) AC_MSG_RESULT([*** IP2LOCATION_INCLUDE =$IP2LOCATION_INCLUDE]) AC_MSG_RESULT([*** IP2LOCATION_INCLUDE_VERSION=$IP2LOCATION_INCLUDE_VERSION]) AC_MSG_RESULT([*** IP2LOCATION_LIB =$IP2LOCATION_LIB]) AC_MSG_RESULT([*** IP2LOCATION_LIB_NAME =$IP2LOCATION_LIB_NAME]) AC_MSG_RESULT([*** IP2LOCATION_LIB_DIR =$IP2LOCATION_LIB_DIR]) AC_MSG_RESULT([]) AC_MSG_RESULT([*** GEOIP2 =$GEOIP2]) AC_MSG_RESULT([*** GEOIP2_DB =$GEOIP2_DB]) AC_MSG_RESULT([]) AC_MSG_RESULT([*** DBIP2 =$DBIP2]) AC_MSG_RESULT([*** DBIP2_DB =$DBIP2_DB]) AC_MSG_RESULT([]) AC_MSG_RESULT([*** EXTERNAL =$EXTERNAL]) AC_MSG_RESULT([*** EXTERNAL_DB =$EXTERNAL_DB]) AC_MSG_RESULT([]) AC_MSG_RESULT([*** BUILTIN =$BUILTIN]) AC_MSG_RESULT([*** DB_IPV4 =$DB_IPV4]) AC_MSG_RESULT([*** DB_IPV6 =$DB_IPV6]) AC_MSG_RESULT([*** DB_IEEE =$DB_IEEE]) AC_MSG_RESULT([*** DB_AS_REG =$DB_AS_REG]) AC_MSG_RESULT([*** DB_CC_REG =$DB_CC_REG]) AC_MSG_RESULT([]) AC_MSG_RESULT([*** CC =$CC]) AC_MSG_RESULT([*** CFLAGS_EXTRA =$CFLAGS_EXTRA]) AC_MSG_RESULT([*** LDFLAGS_EXTRA =$LDFLAGS_EXTRA]) AC_MSG_RESULT([*** LDFLAGS_EXTRA_STATIC =$LDFLAGS_EXTRA_STATIC]) AC_MSG_RESULT([*** LD_LIBRARY_PATH =$LD_LIBRARY_PATH]) AC_MSG_RESULT([*** LD_LIBRARY_PATH_BASIC =$LD_LIBRARY_PATH_BASIC]) AC_MSG_RESULT([*** CPPLAGS =$CPPLAGS]) AC_MSG_RESULT([*** CFLAGS =$CFLAGS]) AC_MSG_RESULT([*** LDFLAGS =$LDFLAGS]) AC_MSG_RESULT([]) AC_MSG_RESULT([*** HAVE_OPENSSL_EVP_MD5 =$HAVE_OPENSSL_EVP_MD5]) AC_MSG_RESULT([*** HAVE_OPENSSL_EVP_MD5_LEGACY=$HAVE_OPENSSL_EVP_MD5_LEGACY]) AC_MSG_RESULT([*** HAVE_OPENSSL_MD5 =$HAVE_OPENSSL_MD5]) AC_MSG_RESULT([*** ENABLE_BUNDLED_MD5 =$ENABLE_BUNDLED_MD5]) AC_MSG_RESULT([*** ENABLE_OPENSSL_EVP_MD5 =$ENABLE_OPENSSL_EVP_MD5]) AC_MSG_RESULT([*** ENABLE_OPENSSL_MD5 =$ENABLE_OPENSSL_MD5]) AC_MSG_RESULT([]) AC_MSG_RESULT([*** HAVE_BERKELEY_DB_SUPPORT =$HAVE_BERKELEY_DB_SUPPORT]) AC_MSG_RESULT([*** DB_VERSION =$DB_VERSION]) AC_MSG_RESULT([]) AC_MSG_RESULT([*** PACKAGE_VERSION_NUMERIC =$PACKAGE_VERSION_NUMERIC]) AC_MSG_RESULT([*** PACKAGE_VERSION_STRING =$PACKAGE_VERSION_STRING]) AC_MSG_RESULT([*** API_VERSION_NUMERIC =$API_VERSION_NUMERIC]) AC_MSG_RESULT([*** API_VERSION_STRING =$API_VERSION_STRING]) AC_MSG_RESULT([]) AC_MSG_RESULT([*** ENABLE_MOD_IPV6CALC =$ENABLE_MOD_IPV6CALC]) if test "$ENABLE_MOD_IPV6CALC" = "1"; then AC_MSG_RESULT([*** APXS =$APXS]) AC_MSG_RESULT([*** HTTPD_SYSCONFDIR =$HTTPD_SYSCONFDIR]) AC_MSG_RESULT([*** HTTPD_LIBEXECDIR =$HTTPD_LIBEXECDIR]) AC_MSG_RESULT([*** HTTPD_VERSION =$HTTPD_VERSION]) AC_MSG_RESULT([*** HTTPD_VERSION_MAJOR_MINOR =$HTTPD_VERSION_MAJOR_MINOR]) AC_MSG_RESULT([*** LDFLAGS_EXTRA_MOD_IPV6CALC =$LDFLAGS_EXTRA_MOD_IPV6CALC]) fi ipv6calc-4.1.0/contrib/000077500000000000000000000000001444154247200146725ustar00rootroot00000000000000ipv6calc-4.1.0/contrib/ipv6calc.spec000066400000000000000000000366161444154247200172710ustar00rootroot00000000000000# Project : ipv6calc # File : contrib/ipv6calc.spec # Copyright : 2001-2023 by Peter Bieringer # enable the following for intermediate builds #%#define gitcommit d3a4108cb7aeb6f731bb07989f91d8a7f449f0f0 %if 0%{?gitcommit:1} %global shortcommit %(c=%{gitcommit}; echo ${c:0:7}) %define build_timestamp %(date +"%Y%m%d") %global gittag .%{build_timestamp}git%{shortcommit} %endif # shared library support (deselectable) %if "%{?_without_shared:0}%{?!_without_shared:1}" == "1" %define enable_shared 1 %endif Summary: IPv6 address format change and calculation utility Name: ipv6calc Version: 4.1.0 Release: 48%{?gittag}%{?dist} URL: http://www.deepspace6.net/projects/%{name}.html License: GPLv2 %if 0%{?gitcommit:1} Source: https://github.com/pbiering/%{name}/archive/%{gitcommit}/%{name}-%{gitcommit}.tar.gz %else Source: ftp://ftp.bieringer.de/pub/linux/IPv6/ipv6calc/%{name}-%{version}.tar.gz %endif BuildRequires: automake make BuildRequires: gcc BuildRequires: openssl-devel BuildRequires: perl-generators BuildRequires: perl(Digest::MD5), perl(Digest::SHA1), perl(URI::Escape) BuildRequires: perl(strict), perl(warnings) BuildRequires: procps-ng Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Requires: unzip %if %{enable_shared} Provides: ipv6calc-libs = %{version}-%{release} %else Conflicts: ipv6calc-libs %endif # mod_ipv6calc related %{!?_httpd_apxs: %{expand: %%global _httpd_apxs %%{_sbindir}/apxs}} %{!?_httpd_moddir: %{expand: %%global _httpd_moddir %%{_libdir}/httpd/modules}} %{!?_httpd_confdir: %{expand: %%global _httpd_confdir %%{_sysconfdir}/httpd/conf.d}} # database support (deselectable) %if "%{?_without_ip2location:0}%{?!_without_ip2location:1}" == "1" %define enable_ip2location 1 %endif %if "%{?_without_mmdb:0}%{?!_without_mmdb:1}" == "1" %define enable_mmdb 1 %endif %if "%{?_without_external:0}%{?!_without_external:1}" == "1" %define enable_external 1 %endif %if "%{?_without_mod_ipv6calc:0}%{?!_without_mod_ipv6calc:1}" == "1" %define enable_mod_ipv6calc 1 %endif # database locations %define ip2location_db %{_datadir}/IP2Location %define geoip_db %{_datadir}/GeoIP %define dbip_db %{_datadir}/DBIP %define external_db %{_datadir}/%{name}/db # Berkeley DB selector %define require_db4 %(echo "%{dist}" | grep -Eq '^\.el(5|6)$' && echo 1 || echo 0) %if %{require_db4} BuildRequires: db4-devel Requires: db4 %else BuildRequires: libdb-devel Requires: libdb %endif %if %{enable_mmdb} BuildRequires: libmaxminddb-devel Recommends: libmaxminddb %endif %if %{enable_ip2location} BuildRequires: IP2Location-devel >= 8.6.0 Recommends: IP2Location >= 8.6.0 %endif # RPM license macro detector %define rpm_license_extra %(echo "%{_defaultlicensedir}" | grep -q defaultlicensedir && echo 0 || echo 1) %description ipv6calc is a small utility which formats and calculates IPv4/IPv6 addresses in different ways. Install this package, if you want to retrieve information about a particular IPv4/IPv6/MAC address (-i ADDRESS) or make life easier in adding entries to reverse IPv6 DNS zones (e.g. -a 2001:db8:1234::1/48). In addition many format and type conversions are supported, see online help and/or given URL for more. Also this package contains additional programs - ipv6loganon: anonymize Apache web server logs - ipv6logconv: special Apache web server log converter (examples included for use with analog) - ipv6logstats: create statistics from list of IPv4/IPv6 addresses (examples included for use with gnu-plot) - mod_ipv6calc: Apache module for anonymization/information logging on-the-fly Support for following databases - IP2Location %{?enable_ip2location:ENABLED}%{?!enable_ip2location:DISABLED} default directory for downloaded db files: %{ip2location_db} (requires also external library on system) - GeoIP v2 %{?enable_mmdb:ENABLED}%{?!enable_mmdb:DISABLED} default directory for downloaded db files: %{geoip_db} (requires also external library on system) - db-ip.com v2 %{?enable_mmdb:ENABLED}%{?!enable_mmdb:DISABLED} (once generated database files are found on system) default directory for generated db files: %{dbip_db} - External %{?enable_external:ENABLED}%{?!enable_external:DISABLED} default directory for generated db files: %{external_db} Built %{?enable_shared:WITH}%{?!enable_shared:WITHOUT} shared-library Available rpmbuild rebuild options: --without ip2location --without mmdb (which disables GeoIP v2 and db-ip.com v2) --without external --without shared --without mod_ipv6calc %package ipv6calcweb Summary: IP address information web utility Requires: ipv6calc httpd Requires: perl(URI) perl(Digest::SHA1) perl(Digest::MD5) perl(HTML::Entities) BuildRequires: perl(URI) perl(Digest::SHA1) perl(Digest::MD5) perl(HTML::Entities) %description ipv6calcweb ipv6calcweb contains a CGI program and a configuration file for displaying information of IP addresses on a web page using ipv6calc. Check/adjust %{_sysconfdir}/httpd/conf.d/ipv6calcweb.conf Default restricts access to localhost %if %{enable_mod_ipv6calc} %package mod_ipv6calc Summary: Apache module for ipv6calc BuildRequires: httpd-devel psmisc curl Requires: httpd >= 2.4.0 Requires: httpd <= 2.4.99999 Requires: ipv6calc = %{version}-%{release} %if %{enable_shared} Requires: ipv6calc-libs = %{version}-%{release} %endif %description mod_ipv6calc mod_ipv6calc contains an Apache module and a default configuration file. Features: - store anonymized IPv4/v6 address in environment variable - store CountryCode of IPv4/v6 address in environment variable (environment variables can be used for custom log format) Check/adjust %{_sysconfdir}/httpd/conf.d/ipv6calc.conf By default the module is disabled. %endif %prep %if 0%{?gitcommit:1} %setup -q -n %{name}-%{gitcommit} %else %setup -q %endif %configure \ %{?enable_ip2location:--enable-ip2location} \ %{?enable_ip2location:--with-ip2location-dynamic} \ --with-ip2location-db=%{ip2location_db} \ --with-geoip-db=%{geoip_db} \ --with-dbip-db=%{dbip_db} \ %{?enable_mmdb:--enable-mmdb --with-mmdb-dynamic} \ %{?enable_external:--enable-external} \ --with-external-db=%{external_db} \ %{?enable_shared:--enable-shared} \ %{?enable_mod_ipv6calc:--enable-mod_ipv6calc} %build make clean make %{?_smp_mflags} COPTS="$RPM_OPT_FLAGS" %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} ## Install examples and helper files install -d -p %{buildroot}%{_docdir}/%{name}-%{version}/ ## examples install -d %{buildroot}%{_datadir}/%{name}/examples/ # ipv6logconv install -d %{buildroot}%{_datadir}/%{name}/examples/ipv6logconv for file in examples/analog/*.{cfg,txt,tab,sh}; do install $file %{buildroot}%{_datadir}/%{name}/examples/ipv6logconv/ done # ipv6loganon install -d %{buildroot}%{_datadir}/%{name}/examples/ipv6loganon for file in ipv6loganon/README; do install $file %{buildroot}%{_datadir}/%{name}/examples/ipv6loganon/ done # ipv6logstats install -d %{buildroot}%{_datadir}/%{name}/examples/ipv6logstats for file in ipv6logstats/README ipv6logstats/example_* ipv6logstats/collect_ipv6logstats.pl; do install $file %{buildroot}%{_datadir}/%{name}/examples/ipv6logstats/ done # db directory install -d %{buildroot}%{external_db} # selinux install -d %{buildroot}%{_datadir}/%{name}/selinux # ipv6calcweb install -d %{buildroot}%{_sysconfdir}/httpd/conf.d install -d %{buildroot}%{_localstatedir}/www/cgi-bin install ipv6calcweb/ipv6calcweb.conf %{buildroot}%{_sysconfdir}/httpd/conf.d/ install -m 755 ipv6calcweb/ipv6calcweb.cgi %{buildroot}%{_localstatedir}/www/cgi-bin/ install -m 644 ipv6calcweb/ipv6calcweb-databases-in-var.te %{buildroot}%{_datadir}/%{name}/selinux/ # mod_ipv6calc install -d %{buildroot}%{_datadir}/%{name}/examples/mod_ipv6calc install -m 755 mod_ipv6calc/ipv6calc.cgi %{buildroot}%{_datadir}/%{name}/examples/mod_ipv6calc %clean rm -rf %{buildroot} %check %ifnarch ppc64 make test %endif %files %if %{rpm_license_extra} %doc ChangeLog README README.* CREDITS TODO USAGE doc/ipv6calc.lyx doc/ipv6calc.sgml doc/ipv6calc.html doc/ipv6calc.xml %license COPYING LICENSE %else %doc ChangeLog README README.* CREDITS TODO USAGE doc/ipv6calc.lyx doc/ipv6calc.sgml doc/ipv6calc.html doc/ipv6calc.xml COPYING LICENSE %endif %defattr(644,root,root,755) # binaries %attr(755,-,-) %{_bindir}/* # man pages %{_mandir}/man8/* # tools %attr(755,-,-) %{_datadir}/%{name}/tools/* # selinux %attr(644,-,-) %{_datadir}/%{name}/selinux/* # shared library %{?enable_shared:%attr(755,-,-) %{_libdir}/libipv6calc*} # database directory %{external_db} # examples %attr(755,-,-) %{_datadir}/%{name}/examples/*/*.pl %attr(755,-,-) %{_datadir}/%{name}/examples/*/*.sh %{_datadir}/%{name}/examples/ipv6loganon/ %{_datadir}/%{name}/examples/ipv6logconv/ %{_datadir}/%{name}/examples/ipv6logstats/ %files ipv6calcweb %if %{rpm_license_extra} %doc ipv6calcweb/README ipv6calcweb/USAGE %license COPYING LICENSE %else %doc ipv6calcweb/README ipv6calcweb/USAGE COPYING LICENSE %endif %defattr(644,root,root,755) %attr(755,-,-) %{_localstatedir}/www/cgi-bin/ipv6calcweb.cgi %config(noreplace) %{_sysconfdir}/httpd/conf.d/ipv6calcweb.conf %files mod_ipv6calc %if %{rpm_license_extra} %doc mod_ipv6calc/README.mod_ipv6calc %license COPYING LICENSE %else %doc mod_ipv6calc/README.mod_ipv6calc COPYING LICENSE %endif %defattr(644,root,root,755) %config(noreplace) %{_httpd_confdir}/ipv6calc.conf %attr(755,-,-) %{_httpd_moddir}/mod_ipv6calc.so %attr(755,-,-) %{_datadir}/%{name}/examples/mod_ipv6calc/ipv6calc.cgi %post if [ -x /usr/sbin/ldconfig ]; then /usr/sbin/ldconfig elif [ -x /sbin/ldconfig ]; then /sbin/ldconfig fi %postun if [ -x /usr/sbin/ldconfig ]; then /usr/sbin/ldconfig elif [ -x /sbin/ldconfig ]; then /sbin/ldconfig fi %changelog * Wed Jun 07 2023 Peter Bieringer - increase minimum IP2Location version to 8.6.0 (support of DB-26) * Tue Oct 13 2020 Peter Bieringer - remove obsolete BuildRoot and Group, fix requirement of unzip * Mon Oct 12 2020 Peter Bieringer - remove support for GeoIP(legacy) and force minimum IP2Location version, add some recommendations and remove legacy support * Sun Jun 21 2020 Peter Bieringer - cover 2 potential ldconfig locations * Sat Sep 07 2019 Peter Bieringer - add build requirement: automake make * Tue Jan 29 2019 Peter Bieringer - subpackage ipv6calcweb: remove dependency Perl(Proc::ProcessTable) because no longer used * Sat Jan 26 2019 Peter Bieringer - add option for libmaxminddb supporting GeoIP v2 and db-ip.com v2 * Sun Sep 23 2018 Peter Bieringer - subpackage ipv6calcweb: add dependency Perl(Proc::ProcessTable) * Wed Dec 28 2016 Peter Bieringer - add support for git commit hash - align RPM build requires with fedora-scm * Thu Jul 30 2015 Peter Bieringer - add automatic RPM license feature detection * Sat Jul 25 2015 Peter Bieringer - replace ipv6calc.{lyx,sgml,html,xml} by dedicated file.suffix * Mon Jun 01 2015 Peter Bieringer - add subpackage mod_ipv6calc * Sat Mar 07 2015 Peter Bieringer - take use of license macro * Sun Mar 01 2015 Peter Bieringer - remove not necessary x-bits for some files by proper definition in %%files section * Wed Feb 18 2015 Peter Bieringer - delete subpackage db, major spec file alignment with Fedora-SCM version * Sun Feb 15 2015 Peter Bieringer - extend sub-package db * Tue Dec 09 2014 Peter Bieringer - create new sub-package: db with all related tools - configure: --enable-external * Sat Oct 25 2014 Peter Bieringer - add /usr/share/ipv6calc/db directory * Fri Oct 10 2014 Peter Bieringer - add DBIP-update.sh DBIP-generate-db.pl * Mon Jul 14 2014 Peter Bieringer - review description * Sun Feb 02 2014 Peter Bieringer - add support for optional shared-library build * Tue Nov 12 2013 Peter Bieringer - add datadir with tools * Thu Sep 26 2013 Peter Bieringer - add support for --with geoip-dyn and --with ip2location-dyn * Wed Sep 12 2012 Peter Bieringer - change requirements for ip2location to Mandrake Linux compatible names - change location of "ipv6calc" from bin to %%{_bindir} - install tools/GeoIP-update.sh tools/IP2Location-update.sh to doc dir * Sun Jan 01 2012 Peter Bieringer - create subpackage for ipv6calcweb - minor review * Sat Oct 08 2011 Peter Bieringer - reduce "make test" to "make test-minimal" * Wed Nov 19 2008 Peter Bieringer - switch from "make installonly" to "make install" * Wed Feb 14 2007 Peter Bieringer - remove support for build option --with-geoip-system - add support for 'ipv6loganon' * Sat Oct 28 2006 Peter Bieringer - add support for build option --with-geoip-system * Sun Aug 06 2006 Peter Bieringer - add support for build option --with-geoip * Wed Jun 07 2006 Peter Bieringer - add support for build option --with-ip2location * Wed Jul 20 2005 Peter Bieringer - adjust code because of use of "bindir" in Makefile of ivp6calc * Sat Oct 30 2004 Peter Bieringer - remove openssl(-devel) from requirements, no longer needed * Sat Nov 22 2003 Peter Bieringer - adjustments * Fri Nov 21 2003 Peter Bieringer - add ipv6logstats - add man pages - add configure options * Mon Nov 11 2002 Peter Bieringer - change IPv6 address in description * Sat Apr 20 2002 Peter Bieringer - Change URL * Sun Apr 07 2002 Peter Bieringer - add more analog example files * Fri Apr 05 2002 Peter Bieringer - remove BuildRequires extension, not needed for normal build * Sun Mar 24 2002 Peter Bieringer - extend BuildRequires for perl /usr/bin/aggregate wget * Mon Mar 18 2002 Peter Bieringer - add ipv6calcweb.cgi * Sat Mar 16 2002 Peter Bieringer - add ipv6logconv, analog examples * Mon Mar 11 2002 Peter Bieringer - Add perl to buildrequire and openssl to require * Mon Jan 21 2002 Peter Bieringer - Add LICENSE + COPYING file * Thu Dec 27 2001 Peter Bieringer - Add comment header - Add call to configure on build * Tue Dec 18 2001 Peter Bieringer - Replace hardwired version number with autoconf/configure variable * Wed Apr 25 2001 Peter Bieringer - Fix permissions of doc files * Thu Mar 15 2001 Peter Bieringer - Add doc directory also to files to make sure the directory will be removed on update or deinstall - change install permissions for entries in doc directory - change "make install" to "make installonly" (make test should be only executed once) * Wed Mar 14 2001 Peter Bieringer - Add "make clean" and "make test" on build * Tue Mar 13 2001 Peter Bieringer - add CREDITS and TODO for install * Sat Mar 10 2001 Peter Bieringer - enable "URL" * Sun Mar 04 2001 Peter Bieringer - change install location to /bin * Tue Feb 27 2001 Peter Bieringer - review for new release, now named "ipv6calc" - review install section for RedHat 7.0.91 * Sun Feb 25 2001 Peter Bieringer - initial build ipv6calc-4.1.0/contrib/ipv6calc.spec.in000066400000000000000000000367121444154247200176730ustar00rootroot00000000000000# Project : ipv6calc # File : contrib/ipv6calc.spec # Copyright : 2001-2023 by Peter Bieringer # enable the following for intermediate builds #%#define gitcommit d3a4108cb7aeb6f731bb07989f91d8a7f449f0f0 %if 0%{?gitcommit:1} %global shortcommit %(c=%{gitcommit}; echo ${c:0:7}) %define build_timestamp %(date +"%Y%m%d") %global gittag .%{build_timestamp}git%{shortcommit} %endif # shared library support (deselectable) %if "%{?_without_shared:0}%{?!_without_shared:1}" == "1" %define enable_shared 1 %endif Summary: IPv6 address format change and calculation utility Name: ipv6calc Version: @PACKAGE_VERSION@ Release: 48%{?gittag}%{?dist} URL: http://www.deepspace6.net/projects/%{name}.html License: GPLv2 %if 0%{?gitcommit:1} Source: https://github.com/pbiering/%{name}/archive/%{gitcommit}/%{name}-%{gitcommit}.tar.gz %else Source: ftp://ftp.bieringer.de/pub/linux/IPv6/ipv6calc/%{name}-%{version}.tar.gz %endif BuildRequires: automake make BuildRequires: gcc BuildRequires: openssl-devel BuildRequires: perl-generators BuildRequires: perl(Digest::MD5), perl(Digest::SHA1), perl(URI::Escape) BuildRequires: perl(strict), perl(warnings) BuildRequires: procps-ng Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Requires: unzip %if %{enable_shared} Provides: ipv6calc-libs = %{version}-%{release} %else Conflicts: ipv6calc-libs %endif # mod_ipv6calc related %{!?_httpd_apxs: %{expand: %%global _httpd_apxs %%{_sbindir}/apxs}} %{!?_httpd_moddir: %{expand: %%global _httpd_moddir %%{_libdir}/httpd/modules}} %{!?_httpd_confdir: %{expand: %%global _httpd_confdir %%{_sysconfdir}/httpd/conf.d}} # database support (deselectable) %if "%{?_without_ip2location:0}%{?!_without_ip2location:1}" == "1" %define enable_ip2location 1 %endif %if "%{?_without_mmdb:0}%{?!_without_mmdb:1}" == "1" %define enable_mmdb 1 %endif %if "%{?_without_external:0}%{?!_without_external:1}" == "1" %define enable_external 1 %endif %if "%{?_without_mod_ipv6calc:0}%{?!_without_mod_ipv6calc:1}" == "1" %define enable_mod_ipv6calc 1 %endif # database locations %define ip2location_db %{_datadir}/IP2Location %define geoip_db %{_datadir}/GeoIP %define dbip_db %{_datadir}/DBIP %define external_db %{_datadir}/%{name}/db # Berkeley DB selector %define require_db4 %(echo "%{dist}" | grep -Eq '^\.el(5|6)$' && echo 1 || echo 0) %if %{require_db4} BuildRequires: db4-devel Requires: db4 %else BuildRequires: libdb-devel Requires: libdb %endif %if %{enable_mmdb} BuildRequires: libmaxminddb-devel Recommends: libmaxminddb %endif %if %{enable_ip2location} BuildRequires: IP2Location-devel >= 8.6.0 Recommends: IP2Location >= 8.6.0 %endif # RPM license macro detector %define rpm_license_extra %(echo "%{_defaultlicensedir}" | grep -q defaultlicensedir && echo 0 || echo 1) %description ipv6calc is a small utility which formats and calculates IPv4/IPv6 addresses in different ways. Install this package, if you want to retrieve information about a particular IPv4/IPv6/MAC address (-i ADDRESS) or make life easier in adding entries to reverse IPv6 DNS zones (e.g. -a 2001:db8:1234::1/48). In addition many format and type conversions are supported, see online help and/or given URL for more. Also this package contains additional programs - ipv6loganon: anonymize Apache web server logs - ipv6logconv: special Apache web server log converter (examples included for use with analog) - ipv6logstats: create statistics from list of IPv4/IPv6 addresses (examples included for use with gnu-plot) - mod_ipv6calc: Apache module for anonymization/information logging on-the-fly Support for following databases - IP2Location %{?enable_ip2location:ENABLED}%{?!enable_ip2location:DISABLED} default directory for downloaded db files: %{ip2location_db} (requires also external library on system) - GeoIP v2 %{?enable_mmdb:ENABLED}%{?!enable_mmdb:DISABLED} default directory for downloaded db files: %{geoip_db} (requires also external library on system) - db-ip.com v2 %{?enable_mmdb:ENABLED}%{?!enable_mmdb:DISABLED} (once generated database files are found on system) default directory for generated db files: %{dbip_db} - External %{?enable_external:ENABLED}%{?!enable_external:DISABLED} default directory for generated db files: %{external_db} Built %{?enable_shared:WITH}%{?!enable_shared:WITHOUT} shared-library Available rpmbuild rebuild options: --without ip2location --without mmdb (which disables GeoIP v2 and db-ip.com v2) --without external --without shared --without mod_ipv6calc %package ipv6calcweb Summary: IP address information web utility Requires: ipv6calc httpd Requires: perl(URI) perl(Digest::SHA1) perl(Digest::MD5) perl(HTML::Entities) BuildRequires: perl(URI) perl(Digest::SHA1) perl(Digest::MD5) perl(HTML::Entities) %description ipv6calcweb ipv6calcweb contains a CGI program and a configuration file for displaying information of IP addresses on a web page using ipv6calc. Check/adjust %{_sysconfdir}/httpd/conf.d/ipv6calcweb.conf Default restricts access to localhost %if %{enable_mod_ipv6calc} %package mod_ipv6calc Summary: Apache module for ipv6calc BuildRequires: httpd-devel psmisc curl Requires: httpd >= @HTTPD_VERSION_MAJOR_MINOR@.0 Requires: httpd <= @HTTPD_VERSION_MAJOR_MINOR@.99999 Requires: ipv6calc = %{version}-%{release} %if %{enable_shared} Requires: ipv6calc-libs = %{version}-%{release} %endif %description mod_ipv6calc mod_ipv6calc contains an Apache module and a default configuration file. Features: - store anonymized IPv4/v6 address in environment variable - store CountryCode of IPv4/v6 address in environment variable (environment variables can be used for custom log format) Check/adjust %{_sysconfdir}/httpd/conf.d/ipv6calc.conf By default the module is disabled. %endif %prep %if 0%{?gitcommit:1} %setup -q -n %{name}-%{gitcommit} %else %setup -q %endif %configure \ %{?enable_ip2location:--enable-ip2location} \ %{?enable_ip2location:--with-ip2location-dynamic} \ --with-ip2location-db=%{ip2location_db} \ --with-geoip-db=%{geoip_db} \ --with-dbip-db=%{dbip_db} \ %{?enable_mmdb:--enable-mmdb --with-mmdb-dynamic} \ %{?enable_external:--enable-external} \ --with-external-db=%{external_db} \ %{?enable_shared:--enable-shared} \ %{?enable_mod_ipv6calc:--enable-mod_ipv6calc} %build make clean make %{?_smp_mflags} COPTS="$RPM_OPT_FLAGS" %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} ## Install examples and helper files install -d -p %{buildroot}%{_docdir}/%{name}-%{version}/ ## examples install -d %{buildroot}%{_datadir}/%{name}/examples/ # ipv6logconv install -d %{buildroot}%{_datadir}/%{name}/examples/ipv6logconv for file in examples/analog/*.{cfg,txt,tab,sh}; do install $file %{buildroot}%{_datadir}/%{name}/examples/ipv6logconv/ done # ipv6loganon install -d %{buildroot}%{_datadir}/%{name}/examples/ipv6loganon for file in ipv6loganon/README; do install $file %{buildroot}%{_datadir}/%{name}/examples/ipv6loganon/ done # ipv6logstats install -d %{buildroot}%{_datadir}/%{name}/examples/ipv6logstats for file in ipv6logstats/README ipv6logstats/example_* ipv6logstats/collect_ipv6logstats.pl; do install $file %{buildroot}%{_datadir}/%{name}/examples/ipv6logstats/ done # db directory install -d %{buildroot}%{external_db} # selinux install -d %{buildroot}%{_datadir}/%{name}/selinux # ipv6calcweb install -d %{buildroot}%{_sysconfdir}/httpd/conf.d install -d %{buildroot}%{_localstatedir}/www/cgi-bin install ipv6calcweb/ipv6calcweb.conf %{buildroot}%{_sysconfdir}/httpd/conf.d/ install -m 755 ipv6calcweb/ipv6calcweb.cgi %{buildroot}%{_localstatedir}/www/cgi-bin/ install -m 644 ipv6calcweb/ipv6calcweb-databases-in-var.te %{buildroot}%{_datadir}/%{name}/selinux/ # mod_ipv6calc install -d %{buildroot}%{_datadir}/%{name}/examples/mod_ipv6calc install -m 755 mod_ipv6calc/ipv6calc.cgi %{buildroot}%{_datadir}/%{name}/examples/mod_ipv6calc %clean rm -rf %{buildroot} %check %ifnarch ppc64 make test %endif %files %if %{rpm_license_extra} %doc ChangeLog README README.* CREDITS TODO USAGE doc/ipv6calc.lyx doc/ipv6calc.sgml doc/ipv6calc.html doc/ipv6calc.xml %license COPYING LICENSE %else %doc ChangeLog README README.* CREDITS TODO USAGE doc/ipv6calc.lyx doc/ipv6calc.sgml doc/ipv6calc.html doc/ipv6calc.xml COPYING LICENSE %endif %defattr(644,root,root,755) # binaries %attr(755,-,-) %{_bindir}/* # man pages %{_mandir}/man8/* # tools %attr(755,-,-) %{_datadir}/%{name}/tools/* # selinux %attr(644,-,-) %{_datadir}/%{name}/selinux/* # shared library %{?enable_shared:%attr(755,-,-) %{_libdir}/libipv6calc*} # database directory %{external_db} # examples %attr(755,-,-) %{_datadir}/%{name}/examples/*/*.pl %attr(755,-,-) %{_datadir}/%{name}/examples/*/*.sh %{_datadir}/%{name}/examples/ipv6loganon/ %{_datadir}/%{name}/examples/ipv6logconv/ %{_datadir}/%{name}/examples/ipv6logstats/ %files ipv6calcweb %if %{rpm_license_extra} %doc ipv6calcweb/README ipv6calcweb/USAGE %license COPYING LICENSE %else %doc ipv6calcweb/README ipv6calcweb/USAGE COPYING LICENSE %endif %defattr(644,root,root,755) %attr(755,-,-) %{_localstatedir}/www/cgi-bin/ipv6calcweb.cgi %config(noreplace) %{_sysconfdir}/httpd/conf.d/ipv6calcweb.conf %files mod_ipv6calc %if %{rpm_license_extra} %doc mod_ipv6calc/README.mod_ipv6calc %license COPYING LICENSE %else %doc mod_ipv6calc/README.mod_ipv6calc COPYING LICENSE %endif %defattr(644,root,root,755) %config(noreplace) %{_httpd_confdir}/ipv6calc.conf %attr(755,-,-) %{_httpd_moddir}/mod_ipv6calc.so %attr(755,-,-) %{_datadir}/%{name}/examples/mod_ipv6calc/ipv6calc.cgi %post if [ -x /usr/sbin/ldconfig ]; then /usr/sbin/ldconfig elif [ -x /sbin/ldconfig ]; then /sbin/ldconfig fi %postun if [ -x /usr/sbin/ldconfig ]; then /usr/sbin/ldconfig elif [ -x /sbin/ldconfig ]; then /sbin/ldconfig fi %changelog * Wed Jun 07 2023 Peter Bieringer - increase minimum IP2Location version to 8.6.0 (support of DB-26) * Tue Oct 13 2020 Peter Bieringer - remove obsolete BuildRoot and Group, fix requirement of unzip * Mon Oct 12 2020 Peter Bieringer - remove support for GeoIP(legacy) and force minimum IP2Location version, add some recommendations and remove legacy support * Sun Jun 21 2020 Peter Bieringer - cover 2 potential ldconfig locations * Sat Sep 07 2019 Peter Bieringer - add build requirement: automake make * Tue Jan 29 2019 Peter Bieringer - subpackage ipv6calcweb: remove dependency Perl(Proc::ProcessTable) because no longer used * Sat Jan 26 2019 Peter Bieringer - add option for libmaxminddb supporting GeoIP v2 and db-ip.com v2 * Sun Sep 23 2018 Peter Bieringer - subpackage ipv6calcweb: add dependency Perl(Proc::ProcessTable) * Wed Dec 28 2016 Peter Bieringer - add support for git commit hash - align RPM build requires with fedora-scm * Thu Jul 30 2015 Peter Bieringer - add automatic RPM license feature detection * Sat Jul 25 2015 Peter Bieringer - replace ipv6calc.{lyx,sgml,html,xml} by dedicated file.suffix * Mon Jun 01 2015 Peter Bieringer - add subpackage mod_ipv6calc * Sat Mar 07 2015 Peter Bieringer - take use of license macro * Sun Mar 01 2015 Peter Bieringer - remove not necessary x-bits for some files by proper definition in %%files section * Wed Feb 18 2015 Peter Bieringer - delete subpackage db, major spec file alignment with Fedora-SCM version * Sun Feb 15 2015 Peter Bieringer - extend sub-package db * Tue Dec 09 2014 Peter Bieringer - create new sub-package: db with all related tools - configure: --enable-external * Sat Oct 25 2014 Peter Bieringer - add /usr/share/ipv6calc/db directory * Fri Oct 10 2014 Peter Bieringer - add DBIP-update.sh DBIP-generate-db.pl * Mon Jul 14 2014 Peter Bieringer - review description * Sun Feb 02 2014 Peter Bieringer - add support for optional shared-library build * Tue Nov 12 2013 Peter Bieringer - add datadir with tools * Thu Sep 26 2013 Peter Bieringer - add support for --with geoip-dyn and --with ip2location-dyn * Wed Sep 12 2012 Peter Bieringer - change requirements for ip2location to Mandrake Linux compatible names - change location of "ipv6calc" from bin to %%{_bindir} - install tools/GeoIP-update.sh tools/IP2Location-update.sh to doc dir * Sun Jan 01 2012 Peter Bieringer - create subpackage for ipv6calcweb - minor review * Sat Oct 08 2011 Peter Bieringer - reduce "make test" to "make test-minimal" * Wed Nov 19 2008 Peter Bieringer - switch from "make installonly" to "make install" * Wed Feb 14 2007 Peter Bieringer - remove support for build option --with-geoip-system - add support for 'ipv6loganon' * Sat Oct 28 2006 Peter Bieringer - add support for build option --with-geoip-system * Sun Aug 06 2006 Peter Bieringer - add support for build option --with-geoip * Wed Jun 07 2006 Peter Bieringer - add support for build option --with-ip2location * Wed Jul 20 2005 Peter Bieringer - adjust code because of use of "bindir" in Makefile of ivp6calc * Sat Oct 30 2004 Peter Bieringer - remove openssl(-devel) from requirements, no longer needed * Sat Nov 22 2003 Peter Bieringer - adjustments * Fri Nov 21 2003 Peter Bieringer - add ipv6logstats - add man pages - add configure options * Mon Nov 11 2002 Peter Bieringer - change IPv6 address in description * Sat Apr 20 2002 Peter Bieringer - Change URL * Sun Apr 07 2002 Peter Bieringer - add more analog example files * Fri Apr 05 2002 Peter Bieringer - remove BuildRequires extension, not needed for normal build * Sun Mar 24 2002 Peter Bieringer - extend BuildRequires for perl /usr/bin/aggregate wget * Mon Mar 18 2002 Peter Bieringer - add ipv6calcweb.cgi * Sat Mar 16 2002 Peter Bieringer - add ipv6logconv, analog examples * Mon Mar 11 2002 Peter Bieringer - Add perl to buildrequire and openssl to require * Mon Jan 21 2002 Peter Bieringer - Add LICENSE + COPYING file * Thu Dec 27 2001 Peter Bieringer - Add comment header - Add call to configure on build * Tue Dec 18 2001 Peter Bieringer - Replace hardwired version number with autoconf/configure variable * Wed Apr 25 2001 Peter Bieringer - Fix permissions of doc files * Thu Mar 15 2001 Peter Bieringer - Add doc directory also to files to make sure the directory will be removed on update or deinstall - change install permissions for entries in doc directory - change "make install" to "make installonly" (make test should be only executed once) * Wed Mar 14 2001 Peter Bieringer - Add "make clean" and "make test" on build * Tue Mar 13 2001 Peter Bieringer - add CREDITS and TODO for install * Sat Mar 10 2001 Peter Bieringer - enable "URL" * Sun Mar 04 2001 Peter Bieringer - change install location to /bin * Tue Feb 27 2001 Peter Bieringer - review for new release, now named "ipv6calc" - review install section for RedHat 7.0.91 * Sun Feb 25 2001 Peter Bieringer - initial build ipv6calc-4.1.0/contrib/scripts-by-others/000077500000000000000000000000001444154247200202735ustar00rootroot00000000000000ipv6calc-4.1.0/contrib/scripts-by-others/README000066400000000000000000000002351444154247200211530ustar00rootroot00000000000000Contributed scripts by others, no maintenance, no warranty at all by me. For licenses, see scripts itself. $Id: ae73b566e80c598cb3608d0bc2e09b8583a44d48 $ ipv6calc-4.1.0/contrib/scripts-by-others/dig6000066400000000000000000000025651444154247200210570ustar00rootroot00000000000000#!/bin/bash # dig6 v0.4 by mikolas bingemer # http://netfreaks.org/dig6 # # little dig/ipv6calc wrapper for easy digging # IPV6CALC=/bin/ipv6calc DIG=/usr/bin/dig # usage() { echo -e "Usage: dig6 [] [options]\n allowed types: arpa, int"; exit 1 } if [ ! -x "$IPV6CALC" ]; then echo "Can't execute $IPV6CALC"; exit 1 fi; if [ ! -x "$DIG" ]; then echo "Can't execute $DIG"; exit 1 fi; if [ ! $# -gt 0 ]; then usage fi; echo "; <<>> dig6 0.4 <<>> "$@"" if [ "$1" = "arpa" ]; then type=$1; shift if [ ! $# -gt 0 ]; then usage; fi elif [ "$1" = "int" ]; then type=$1; shift if [ ! $# -gt 0 ]; then usage; fi fi IPV6ADDR=$1;shift MODE=aaaa if [ `echo "$IPV6ADDR" | grep "/"` ]; then echo ";; object: ipv6 network" echo ";; query: ns ($type)" echo "" MODE=ns elif [ `echo "$IPV6ADDR" | grep ":"` ]; then echo ";; object: ipv6 address" echo ";; query: ptr ($type)" echo "" MODE=ptr else echo ";; object: hostname" echo ";; query: aaaa" "$DIG" aaaa "$IPV6ADDR" "$@" exit 0 fi; if [ ! "$type" ]; then if [ "`echo $IPV6ADDR | grep "3ffe:"`" ]; then type="int" else type="arpa" fi fi case "$type" in int) IP6=`"$IPV6CALC" --out revnibbles.int --in ipv6addr $IPV6ADDR` || exit 1 ;; arpa) IP6=`"$IPV6CALC" --out revnibbles.arpa --in ipv6addr $IPV6ADDR` || exit 1 ;; esac echo ";; CALCULATED:" echo ";$IP6" "$DIG" $MODE $IP6 "$@" exit 0 ipv6calc-4.1.0/databases/000077500000000000000000000000001444154247200151615ustar00rootroot00000000000000ipv6calc-4.1.0/databases/as-assignment/000077500000000000000000000000001444154247200177325ustar00rootroot00000000000000ipv6calc-4.1.0/databases/as-assignment/Makefile000066400000000000000000000011131444154247200213660ustar00rootroot00000000000000# Project : ipv6calc/databases/cc-assignment # File : Makefile # Version : $Id: e33e492abb48adb8aa9398409c0ff84ca5ca8c86 $ # Copyright : 2013-2013 by Peter Bieringer # # Information: # Makefile for asn-assignment all: test -f dbasn_assignment.h || ${MAKE} update install: echo "Nothing to do" update: echo "Generate new header file, if necessary" ./check-run-create.sh updateclean: echo "Delete header file" rm -f dbasn_assignment.h distclean: echo "Nothing to do" autoclean: echo "Nothing to do" clean: echo "Nothing to do" ipv6calc-4.1.0/databases/as-assignment/check-run-create.sh000077500000000000000000000022221444154247200234070ustar00rootroot00000000000000#!/bin/sh # # Project : ipv6calc/databases/cc-assignment # File : check-run-create.sh # Version : $Id: e4f0d4ac6fa7889feefaab56fea850ed36f07f11 $ # Copyright : 2013-2021 by Peter Bieringer #set -x flag_update=false file_header="dbasn_assignment.h" if [ -f $file_header ]; then ARIN=`find ../registries/arin -type f -name 'delegated-arin*' -newer $file_header | wc -l` APNIC=`find ../registries/apnic -type f -name 'delegated-apnic*' -newer $file_header | wc -l` RIPENCC=`find ../registries/ripencc -type f -name 'delegated-ripencc*' -newer $file_header | wc -l` LACNIC=`find ../registries/lacnic -type f -name 'delegated-lacnic*' -newer $file_header | wc -l` AFRINIC=`find ../registries/afrinic -type f -name 'delegated-afrinic*' -newer $file_header | wc -l` echo "Found newer than $file_header file: ARIN=$ARIN APNIC=$APNIC RIPENCC=$RIPENCC LACNIC=$LACNIC AFRINIC=$AFRINIC" if [ $ARIN -gt 0 -o $APNIC -gt 0 -o $RIPENCC -gt 0 -o $LACNIC -gt 0 -o $AFRINIC -gt 0 ]; then flag_update=true fi else flag_update=true fi if $flag_update; then ./create-asn-registry-list.pl else echo " Nothing to do!" fi ipv6calc-4.1.0/databases/as-assignment/create-asn-registry-list.pl000077500000000000000000000061371444154247200251420ustar00rootroot00000000000000#!/usr/bin/perl -w # # Project : ipv6calc/databases/as-assignment # File : create-registry-list.pl # Version : $Id: 460f526ecf0169dd83fe22f1b7fc3e4fad004742 $ # Copyright : 2013-2013 by Peter Bieringer # License : GNU GPL v2 # # Information: # Perl program which creates AS Number -> Registry assignment header my $debug = 0; my $OUTFILE = "dbasn_assignment.h"; my $file_asn = "../registries/iana/as-numbers.txt"; my %assignments; my $entry = 0; my %date_created; sub proceed_file($$) { $file = $_[0]; $type = $_[1]; print "Proceed file: " . $file . " with type " . $type . "\n"; open(FILE, "<$file") || die "Cannot open file: $file"; my $line; while () { $line = $_; chomp $line; if ($line =~ /^\s*([0-9]{4}-[0-9]{2}-[0-9]{2})\s*$/) { $date_created{'IANA'} = $1; $date_created{'IANA'} =~ s/-//go; print "Found create date: " . $date_created{'IANA'} . "\n"; }; my ($Number, $Description, $Whois, $Reference, $RegistrationDate); if ($type eq "csv") { ($Number, $Description, $Whois, $Reference, $RegistrationDate) = split /,/, $line; # skip not proper lines next if (! defined $Number); next if (! defined $Description); next if ($Description !~ /^Assigned by (\S+)$/o); $reg = $1; } elsif ($type eq "txt") { next if ($line !~ /^\s*([0-9-]+)\s*Assigned by (\S+)/o); $Number = $1; $reg = $2; } else { die "unsupported type: " . $type; }; #print $line . "\n"; $reg = uc($reg); $reg =~ s/RIPE/RIPENCC/go; if ( $reg ne "ARIN" && $reg ne "APNIC" && $reg ne "RIPENCC" && $reg ne "IANA" && $reg ne "LACNIC" && $reg ne "AFRINIC") { print "Unsupported registry: " . $reg . "\n"; next; }; my ($start, $stop) = split /-/, $Number; if ((! defined $stop) || ($stop eq "")) { $stop = $start; }; $assignments{$entry}->{'start'} = $start; $assignments{$entry}->{'stop'} = $stop; $assignments{$entry}->{'reg'} = $reg; $entry++; }; close(FILE); }; proceed_file($file_asn , "txt"); # Create header file print "Create outfile now: " . $OUTFILE . "\n"; open(OUT, ">$OUTFILE") || die "Cannot open outfile: $OUTFILE"; # Header my $now_string = localtime; print OUT qq| /* * Project : ipv6calc * File : dbasn_assignment.h |; print OUT " * Version : \$I"; print OUT "d:\$\n"; print OUT qq| * Generated : $now_string * Data copyright: IANA * * Information: * Additional header file for databases/lib/libipv6calc_db_wrapper_BuiltIn.c */ #include "libipv6calc.h" |; # print creation dates my $string = ""; for my $reg (sort keys %date_created) { if (length($string) > 0) { $string .= " "; }; $string .= $reg . "/" . $date_created{$reg}; }; print OUT "\/\*\@unused\@\*\/ static const char* dbasn_registry_status __attribute__ ((__unused__)) = \"$string\";\n"; my %data_hint; # Main data structure print OUT qq| static const s_asn_assignment dbasn_assignment[] = { |; for ($i = 0; $i < $entry; $i++) { printf OUT "\t{ %10d, %10d, REGISTRY_%-10s },\n", $assignments{$i}->{'start'}, $assignments{$i}->{'stop'}, $assignments{$i}->{'reg'}; }; print OUT qq| }; |; print "Finished\n"; ipv6calc-4.1.0/databases/as-assignment/dbasn_assignment.h000066400000000000000000000171001444154247200234210ustar00rootroot00000000000000 /* * Project : ipv6calc * File : dbasn_assignment.h * Version : $Id: 3ca2000bc3f2d97c4656d1fad55725e370927898 $ * Generated : Thu Jun 8 18:30:30 2023 * Data copyright: IANA * * Information: * Additional header file for databases/lib/libipv6calc_db_wrapper_BuiltIn.c */ #include "libipv6calc.h" /*@unused@*/ static const char* dbasn_registry_status __attribute__ ((__unused__)) = "IANA/20230510"; static const s_asn_assignment dbasn_assignment[] = { { 1, 1876, REGISTRY_ARIN }, { 1877, 1901, REGISTRY_RIPENCC }, { 1902, 2042, REGISTRY_ARIN }, { 2043, 2043, REGISTRY_RIPENCC }, { 2044, 2046, REGISTRY_ARIN }, { 2047, 2047, REGISTRY_RIPENCC }, { 2048, 2106, REGISTRY_ARIN }, { 2107, 2136, REGISTRY_RIPENCC }, { 2137, 2584, REGISTRY_ARIN }, { 2585, 2614, REGISTRY_RIPENCC }, { 2615, 2772, REGISTRY_ARIN }, { 2773, 2822, REGISTRY_RIPENCC }, { 2823, 2829, REGISTRY_ARIN }, { 2830, 2879, REGISTRY_RIPENCC }, { 2880, 3153, REGISTRY_ARIN }, { 3154, 3353, REGISTRY_RIPENCC }, { 3354, 4607, REGISTRY_ARIN }, { 4608, 4865, REGISTRY_APNIC }, { 4866, 5376, REGISTRY_ARIN }, { 5377, 5631, REGISTRY_RIPENCC }, { 5632, 6655, REGISTRY_ARIN }, { 6656, 6911, REGISTRY_RIPENCC }, { 6912, 7466, REGISTRY_ARIN }, { 7467, 7722, REGISTRY_APNIC }, { 7723, 8191, REGISTRY_ARIN }, { 8192, 9215, REGISTRY_RIPENCC }, { 9216, 10239, REGISTRY_APNIC }, { 10240, 12287, REGISTRY_ARIN }, { 12288, 13311, REGISTRY_RIPENCC }, { 13312, 15359, REGISTRY_ARIN }, { 15360, 16383, REGISTRY_RIPENCC }, { 16384, 17407, REGISTRY_ARIN }, { 17408, 18431, REGISTRY_APNIC }, { 18432, 20479, REGISTRY_ARIN }, { 20480, 21503, REGISTRY_RIPENCC }, { 21504, 23455, REGISTRY_ARIN }, { 23457, 23551, REGISTRY_ARIN }, { 23552, 24575, REGISTRY_APNIC }, { 24576, 25599, REGISTRY_RIPENCC }, { 25600, 26623, REGISTRY_ARIN }, { 26624, 27647, REGISTRY_ARIN }, { 27648, 28671, REGISTRY_LACNIC }, { 28672, 29695, REGISTRY_RIPENCC }, { 29696, 30719, REGISTRY_ARIN }, { 30720, 31743, REGISTRY_RIPENCC }, { 31744, 32767, REGISTRY_ARIN }, { 32768, 33791, REGISTRY_ARIN }, { 33792, 34815, REGISTRY_RIPENCC }, { 34816, 35839, REGISTRY_RIPENCC }, { 35840, 36863, REGISTRY_ARIN }, { 36864, 37887, REGISTRY_AFRINIC }, { 37888, 38911, REGISTRY_APNIC }, { 38912, 39935, REGISTRY_RIPENCC }, { 39936, 40959, REGISTRY_ARIN }, { 40960, 41983, REGISTRY_RIPENCC }, { 41984, 43007, REGISTRY_RIPENCC }, { 43008, 44031, REGISTRY_RIPENCC }, { 44032, 45055, REGISTRY_RIPENCC }, { 45056, 46079, REGISTRY_APNIC }, { 46080, 47103, REGISTRY_ARIN }, { 47104, 48127, REGISTRY_RIPENCC }, { 48128, 49151, REGISTRY_RIPENCC }, { 49152, 50175, REGISTRY_RIPENCC }, { 50176, 51199, REGISTRY_RIPENCC }, { 51200, 52223, REGISTRY_RIPENCC }, { 52224, 53247, REGISTRY_LACNIC }, { 53248, 54271, REGISTRY_ARIN }, { 54272, 55295, REGISTRY_ARIN }, { 55296, 56319, REGISTRY_APNIC }, { 56320, 57343, REGISTRY_RIPENCC }, { 57344, 58367, REGISTRY_RIPENCC }, { 58368, 59391, REGISTRY_APNIC }, { 59392, 60415, REGISTRY_RIPENCC }, { 60416, 61439, REGISTRY_RIPENCC }, { 61440, 61951, REGISTRY_LACNIC }, { 61952, 62463, REGISTRY_RIPENCC }, { 62464, 63487, REGISTRY_ARIN }, { 63488, 63999, REGISTRY_APNIC }, { 64000, 64098, REGISTRY_APNIC }, { 64099, 64197, REGISTRY_LACNIC }, { 64198, 64296, REGISTRY_ARIN }, { 64297, 64395, REGISTRY_APNIC }, { 64396, 64495, REGISTRY_RIPENCC }, { 131072, 132095, REGISTRY_APNIC }, { 132096, 133119, REGISTRY_APNIC }, { 133120, 133631, REGISTRY_APNIC }, { 133632, 134556, REGISTRY_APNIC }, { 134557, 135580, REGISTRY_APNIC }, { 135581, 136505, REGISTRY_APNIC }, { 136506, 137529, REGISTRY_APNIC }, { 137530, 138553, REGISTRY_APNIC }, { 138554, 139577, REGISTRY_APNIC }, { 139578, 140601, REGISTRY_APNIC }, { 140602, 141625, REGISTRY_APNIC }, { 141626, 142649, REGISTRY_APNIC }, { 142650, 143673, REGISTRY_APNIC }, { 143674, 144697, REGISTRY_APNIC }, { 144698, 145721, REGISTRY_APNIC }, { 145722, 146745, REGISTRY_APNIC }, { 146746, 147769, REGISTRY_APNIC }, { 147770, 148793, REGISTRY_APNIC }, { 148794, 149817, REGISTRY_APNIC }, { 149818, 150841, REGISTRY_APNIC }, { 150842, 151865, REGISTRY_APNIC }, { 151866, 152889, REGISTRY_APNIC }, { 152890, 153913, REGISTRY_APNIC }, { 196608, 197631, REGISTRY_RIPENCC }, { 197632, 198655, REGISTRY_RIPENCC }, { 198656, 199679, REGISTRY_RIPENCC }, { 199680, 200191, REGISTRY_RIPENCC }, { 200192, 201215, REGISTRY_RIPENCC }, { 201216, 202239, REGISTRY_RIPENCC }, { 202240, 203263, REGISTRY_RIPENCC }, { 203264, 204287, REGISTRY_RIPENCC }, { 204288, 205211, REGISTRY_RIPENCC }, { 205212, 206235, REGISTRY_RIPENCC }, { 206236, 207259, REGISTRY_RIPENCC }, { 207260, 208283, REGISTRY_RIPENCC }, { 208284, 209307, REGISTRY_RIPENCC }, { 209308, 210331, REGISTRY_RIPENCC }, { 210332, 211355, REGISTRY_RIPENCC }, { 211356, 212379, REGISTRY_RIPENCC }, { 212380, 213403, REGISTRY_RIPENCC }, { 262144, 263167, REGISTRY_LACNIC }, { 263168, 263679, REGISTRY_LACNIC }, { 263680, 264604, REGISTRY_LACNIC }, { 264605, 265628, REGISTRY_LACNIC }, { 265629, 266652, REGISTRY_LACNIC }, { 266653, 267676, REGISTRY_LACNIC }, { 267677, 268700, REGISTRY_LACNIC }, { 268701, 269724, REGISTRY_LACNIC }, { 269725, 270748, REGISTRY_LACNIC }, { 270749, 271772, REGISTRY_LACNIC }, { 271773, 272796, REGISTRY_LACNIC }, { 272797, 273820, REGISTRY_LACNIC }, { 327680, 328703, REGISTRY_AFRINIC }, { 328704, 329727, REGISTRY_AFRINIC }, { 393216, 394239, REGISTRY_ARIN }, { 394240, 395164, REGISTRY_ARIN }, { 395165, 396188, REGISTRY_ARIN }, { 396189, 397212, REGISTRY_ARIN }, { 397213, 398236, REGISTRY_ARIN }, { 398237, 399260, REGISTRY_ARIN }, { 399261, 400284, REGISTRY_ARIN }, { 400285, 401308, REGISTRY_ARIN }, }; ipv6calc-4.1.0/databases/cc-assignment/000077500000000000000000000000001444154247200177145ustar00rootroot00000000000000ipv6calc-4.1.0/databases/cc-assignment/Makefile000066400000000000000000000012071444154247200213540ustar00rootroot00000000000000# Project : ipv6calc/databases/cc-assignment # File : Makefile # Version : $Id: 22b39c5d475f107c5519626c2c659e4d4d763374 $ # Copyright : 2013-2013 by Peter Bieringer # # Information: # Makefile for cc-assignment all: test -f db_cc_reg_assignment.h || ${MAKE} update install: echo "Nothing to do" update: echo "Generate new header file, if necessary" ./check-run-create.sh updateclean: echo "Delete header file" rm -f db_cc_reg_assignment.h distclean: echo "Nothing to do" autoclean: echo "Nothing to do" clean: echo "Nothing to do" updateforce: ${MAKE} updateclean ${MAKE} update ipv6calc-4.1.0/databases/cc-assignment/check-run-create.sh000077500000000000000000000022301444154247200233700ustar00rootroot00000000000000#!/bin/sh # # Project : ipv6calc/databases/cc-assignment # File : check-run-create.sh # Version : $Id: 554de5c647e95658571d7db3026a8ee10c2eff84 $ # Copyright : 2013-2021 by Peter Bieringer #set -x flag_update=false file_header="db_cc_reg_assignment.h" if [ -f $file_header ]; then ARIN=`find ../registries/arin -type f -name 'delegated-arin*' -newer $file_header | wc -l` APNIC=`find ../registries/apnic -type f -name 'delegated-apnic*' -newer $file_header | wc -l` RIPENCC=`find ../registries/ripencc -type f -name 'delegated-ripencc*' -newer $file_header | wc -l` LACNIC=`find ../registries/lacnic -type f -name 'delegated-lacnic*' -newer $file_header | wc -l` AFRINIC=`find ../registries/afrinic -type f -name 'delegated-afrinic*' -newer $file_header | wc -l` echo "Found newer than $file_header file: ARIN=$ARIN APNIC=$APNIC RIPENCC=$RIPENCC LACNIC=$LACNIC AFRINIC=$AFRINIC" if [ $ARIN -gt 0 -o $APNIC -gt 0 -o $RIPENCC -gt 0 -o $LACNIC -gt 0 -o $AFRINIC -gt 0 ]; then flag_update=true fi else flag_update=true fi if $flag_update; then ./create-cc-to-registry-list.pl else echo " Nothing to do!" fi ipv6calc-4.1.0/databases/cc-assignment/create-cc-to-registry-list.pl000077500000000000000000000102331444154247200253400ustar00rootroot00000000000000#!/usr/bin/perl -w # # Project : ipv6calc/databases/cc-assignment # File : create-cc-to-registry-list.pl # Version : $Id: c780f71915f0570195bd457cf1cd4c0cb198e391 $ # Copyright : 2013-2016 by Peter Bieringer # License : GNU GPL v2 # # Information: # Perl program which creates CountryCode -> Registry map (as header file) use IPC::Open2; #use strict; my $debug_hinttable = 0; my $debug = 0; my $OUTFILE = "db_cc_reg_assignment.h"; my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time - 48*60*60); $year = 1900 + $year; $mon = sprintf "%02d", $mon + 1; $mday = sprintf "%02d", $mday; my @files = ( "../registries/apnic/delegated-apnic-latest", "../registries/lacnic/delegated-lacnic-latest", "../registries/afrinic/delegated-afrinic-latest", "../registries/ripencc/delegated-ripencc-latest", "../registries/arin/delegated-arin-extended-latest", ); my %assignments; my %assignments_overall; my %date_created; foreach my $file (@files) { print "Proceed file: " . $file . "\n"; open(FILE, "<$file") || die "Cannot open file: $file"; my $line; my $ipv4; my $length; my $flag_proceeded; my $flag_found_date = 0; while () { $line = $_; chomp $line; # catch date line if ($line =~ /^2(\.[0-9])?\|([^\|]+)\|.*\|([0-9]{8})\|[^\|]*$/o) { $date_created{uc($2)} = $3; print "Found create date: " . $3 . "\n"; $flag_found_date = 1; next; }; # skip not proper lines if ( ! ( $line =~ /\|(ipv4|ipv6)\|/o ) ) { next; }; if ( $line =~ /\|\*\|/o ) { next; }; #print $line . "\n"; my ($reg, $tld, $token, $ipv4, $numbers, $date, $status, $other) = split /\|/, $line; if ($token !~ /^(ipv4|ipv6)$/o ) { next; }; $tld = uc($tld); $reg = uc($reg); if ($reg !~ /^(ARIN|APNIC|RIPENCC|IANA|LACNIC|AFRINIC)$/o) { print "Unsupported registry: " . $reg . "\n"; next; }; # increment counter $assignments{$tld}->{$reg}++; }; close(FILE); if ($flag_found_date != 1) { die("no date line found, unsupported file format"); }; }; ## Biggest wins foreach my $tld (sort keys %assignments) { my $reg; # find biggest one my $entries = scalar(keys %{$assignments{$tld}}); if ($entries == 1) { $reg = (keys %{$assignments{$tld}})[0]; } else { # check for biggest one my $max = 0; for $reg_entry (keys %{$assignments{$tld}}) { if ($assignments{$tld}->{$reg_entry} > $max) { $max = $assignments{$tld}->{$reg_entry}; $reg = $reg_entry; }; }; }; $assignments_overall{$tld} = $reg; }; # Create header file print "Create outfile now: " . $OUTFILE . "\n"; open(OUT, ">$OUTFILE") || die "Cannot open outfile: $OUTFILE"; # Header my $now_string = localtime; print OUT qq| /* * Project : ipv6calc * File : db_cc_reg_assignment.h |; print OUT " * Version : \$I"; print OUT "d:\$\n"; print OUT qq| * Generated : $now_string * Data copyright: RIPE NCC, APNIC, ARIN, LACNIC, AFRINIC * * Information: * Additional header file for databases/lib/libipv6calc_db_wrapper_BuiltIn.c */ |; # print creation dates my $string = ""; for my $reg (sort keys %date_created) { if (length($string) > 0) { $string .= " "; }; $string .= $reg . "/" . $date_created{$reg}; }; print OUT "static const char *db_cc_registry_status = \"$string\";\n"; # Main data structure print OUT qq| static const s_cc_reg_assignment cc_reg_assignment[] = { |; foreach my $tld (sort keys %assignments_overall) { printf OUT "\t{ \"%s\", REGISTRY_%-8s },\n", $tld, $assignments_overall{$tld}; }; print OUT "};\n"; # Indexed data structure print OUT qq| static const s_cc_index_reg_assignment cc_index_reg_assignment[] = { |; for (my $i = 0; $i < 1024; $i++) { # convert index into cc my $c1 = ($i % 26) + ord('A'); my $c2 = int($i / 26); if ($c2 > 9) { $c2 = $c2 + ord('A') - 10; } else { $c2 = $c2 + ord('0'); }; my $cc = chr($c1) . chr($c2); my $reg; if (defined $assignments_overall{$cc}) { $reg = $assignments_overall{$cc}; } else { $reg = "UNKNOWN"; }; my $cc_print; if ($i < 26*36) { $cc_print = $cc; } else { $cc_print = "reserved-special"; }; printf OUT "\t{ REGISTRY_%-8s }, // %4d %s\n", $reg, $i, $cc_print; }; print OUT "};\n"; print "Finished\n"; ipv6calc-4.1.0/databases/cc-assignment/db_cc_reg_assignment.h000066400000000000000000001314541444154247200242140ustar00rootroot00000000000000 /* * Project : ipv6calc * File : db_cc_reg_assignment.h * Version : $Id: eb2171741f4e2d63a9e2c220325c8aea43e021c3 $ * Generated : Thu Jun 8 18:30:32 2023 * Data copyright: RIPE NCC, APNIC, ARIN, LACNIC, AFRINIC * * Information: * Additional header file for databases/lib/libipv6calc_db_wrapper_BuiltIn.c */ static const char *db_cc_registry_status = "AFRINIC/20230608 APNIC/20230608 ARIN/20230608 LACNIC/20230607 RIPENCC/20230607"; static const s_cc_reg_assignment cc_reg_assignment[] = { { "", REGISTRY_ARIN }, { "AD", REGISTRY_RIPENCC }, { "AE", REGISTRY_RIPENCC }, { "AF", REGISTRY_APNIC }, { "AG", REGISTRY_RIPENCC }, { "AI", REGISTRY_ARIN }, { "AL", REGISTRY_RIPENCC }, { "AM", REGISTRY_RIPENCC }, { "AO", REGISTRY_AFRINIC }, { "AR", REGISTRY_LACNIC }, { "AS", REGISTRY_APNIC }, { "AT", REGISTRY_RIPENCC }, { "AU", REGISTRY_APNIC }, { "AW", REGISTRY_LACNIC }, { "AX", REGISTRY_RIPENCC }, { "AZ", REGISTRY_RIPENCC }, { "BA", REGISTRY_RIPENCC }, { "BB", REGISTRY_ARIN }, { "BD", REGISTRY_APNIC }, { "BE", REGISTRY_RIPENCC }, { "BF", REGISTRY_AFRINIC }, { "BG", REGISTRY_RIPENCC }, { "BH", REGISTRY_RIPENCC }, { "BI", REGISTRY_AFRINIC }, { "BJ", REGISTRY_AFRINIC }, { "BL", REGISTRY_ARIN }, { "BM", REGISTRY_ARIN }, { "BN", REGISTRY_APNIC }, { "BO", REGISTRY_LACNIC }, { "BQ", REGISTRY_LACNIC }, { "BR", REGISTRY_LACNIC }, { "BS", REGISTRY_ARIN }, { "BT", REGISTRY_APNIC }, { "BW", REGISTRY_AFRINIC }, { "BY", REGISTRY_RIPENCC }, { "BZ", REGISTRY_RIPENCC }, { "CA", REGISTRY_ARIN }, { "CD", REGISTRY_AFRINIC }, { "CF", REGISTRY_AFRINIC }, { "CG", REGISTRY_AFRINIC }, { "CH", REGISTRY_RIPENCC }, { "CI", REGISTRY_AFRINIC }, { "CK", REGISTRY_APNIC }, { "CL", REGISTRY_LACNIC }, { "CM", REGISTRY_AFRINIC }, { "CN", REGISTRY_APNIC }, { "CO", REGISTRY_LACNIC }, { "CR", REGISTRY_LACNIC }, { "CU", REGISTRY_LACNIC }, { "CV", REGISTRY_AFRINIC }, { "CW", REGISTRY_LACNIC }, { "CY", REGISTRY_RIPENCC }, { "CZ", REGISTRY_RIPENCC }, { "DE", REGISTRY_RIPENCC }, { "DJ", REGISTRY_AFRINIC }, { "DK", REGISTRY_RIPENCC }, { "DM", REGISTRY_ARIN }, { "DO", REGISTRY_LACNIC }, { "DZ", REGISTRY_AFRINIC }, { "EC", REGISTRY_LACNIC }, { "EE", REGISTRY_RIPENCC }, { "EG", REGISTRY_AFRINIC }, { "ER", REGISTRY_AFRINIC }, { "ES", REGISTRY_RIPENCC }, { "ET", REGISTRY_AFRINIC }, { "EU", REGISTRY_RIPENCC }, { "FI", REGISTRY_RIPENCC }, { "FJ", REGISTRY_APNIC }, { "FK", REGISTRY_RIPENCC }, { "FM", REGISTRY_APNIC }, { "FO", REGISTRY_RIPENCC }, { "FR", REGISTRY_RIPENCC }, { "GA", REGISTRY_AFRINIC }, { "GB", REGISTRY_RIPENCC }, { "GD", REGISTRY_ARIN }, { "GE", REGISTRY_RIPENCC }, { "GF", REGISTRY_LACNIC }, { "GG", REGISTRY_RIPENCC }, { "GH", REGISTRY_AFRINIC }, { "GI", REGISTRY_RIPENCC }, { "GL", REGISTRY_RIPENCC }, { "GM", REGISTRY_AFRINIC }, { "GN", REGISTRY_AFRINIC }, { "GP", REGISTRY_ARIN }, { "GQ", REGISTRY_AFRINIC }, { "GR", REGISTRY_RIPENCC }, { "GT", REGISTRY_LACNIC }, { "GU", REGISTRY_APNIC }, { "GW", REGISTRY_AFRINIC }, { "GY", REGISTRY_LACNIC }, { "HK", REGISTRY_APNIC }, { "HN", REGISTRY_LACNIC }, { "HR", REGISTRY_RIPENCC }, { "HT", REGISTRY_LACNIC }, { "HU", REGISTRY_RIPENCC }, { "ID", REGISTRY_APNIC }, { "IE", REGISTRY_RIPENCC }, { "IL", REGISTRY_RIPENCC }, { "IM", REGISTRY_RIPENCC }, { "IN", REGISTRY_APNIC }, { "IO", REGISTRY_APNIC }, { "IQ", REGISTRY_RIPENCC }, { "IR", REGISTRY_RIPENCC }, { "IS", REGISTRY_RIPENCC }, { "IT", REGISTRY_RIPENCC }, { "JE", REGISTRY_RIPENCC }, { "JM", REGISTRY_ARIN }, { "JO", REGISTRY_RIPENCC }, { "JP", REGISTRY_APNIC }, { "KE", REGISTRY_AFRINIC }, { "KG", REGISTRY_RIPENCC }, { "KH", REGISTRY_APNIC }, { "KI", REGISTRY_APNIC }, { "KM", REGISTRY_AFRINIC }, { "KN", REGISTRY_ARIN }, { "KP", REGISTRY_APNIC }, { "KR", REGISTRY_APNIC }, { "KW", REGISTRY_RIPENCC }, { "KY", REGISTRY_ARIN }, { "KZ", REGISTRY_RIPENCC }, { "LA", REGISTRY_APNIC }, { "LB", REGISTRY_RIPENCC }, { "LC", REGISTRY_ARIN }, { "LI", REGISTRY_RIPENCC }, { "LK", REGISTRY_APNIC }, { "LR", REGISTRY_AFRINIC }, { "LS", REGISTRY_AFRINIC }, { "LT", REGISTRY_RIPENCC }, { "LU", REGISTRY_RIPENCC }, { "LV", REGISTRY_RIPENCC }, { "LY", REGISTRY_AFRINIC }, { "MA", REGISTRY_AFRINIC }, { "MC", REGISTRY_RIPENCC }, { "MD", REGISTRY_RIPENCC }, { "ME", REGISTRY_RIPENCC }, { "MF", REGISTRY_ARIN }, { "MG", REGISTRY_AFRINIC }, { "MH", REGISTRY_APNIC }, { "MK", REGISTRY_RIPENCC }, { "ML", REGISTRY_AFRINIC }, { "MM", REGISTRY_APNIC }, { "MN", REGISTRY_APNIC }, { "MO", REGISTRY_APNIC }, { "MP", REGISTRY_APNIC }, { "MQ", REGISTRY_RIPENCC }, { "MR", REGISTRY_AFRINIC }, { "MS", REGISTRY_ARIN }, { "MT", REGISTRY_RIPENCC }, { "MU", REGISTRY_AFRINIC }, { "MV", REGISTRY_APNIC }, { "MW", REGISTRY_AFRINIC }, { "MX", REGISTRY_LACNIC }, { "MY", REGISTRY_APNIC }, { "MZ", REGISTRY_AFRINIC }, { "NA", REGISTRY_AFRINIC }, { "NC", REGISTRY_APNIC }, { "NE", REGISTRY_AFRINIC }, { "NF", REGISTRY_APNIC }, { "NG", REGISTRY_AFRINIC }, { "NI", REGISTRY_LACNIC }, { "NL", REGISTRY_RIPENCC }, { "NO", REGISTRY_RIPENCC }, { "NP", REGISTRY_APNIC }, { "NR", REGISTRY_APNIC }, { "NU", REGISTRY_APNIC }, { "NZ", REGISTRY_APNIC }, { "OM", REGISTRY_RIPENCC }, { "PA", REGISTRY_LACNIC }, { "PE", REGISTRY_LACNIC }, { "PF", REGISTRY_APNIC }, { "PG", REGISTRY_APNIC }, { "PH", REGISTRY_APNIC }, { "PK", REGISTRY_APNIC }, { "PL", REGISTRY_RIPENCC }, { "PM", REGISTRY_ARIN }, { "PR", REGISTRY_ARIN }, { "PS", REGISTRY_RIPENCC }, { "PT", REGISTRY_RIPENCC }, { "PW", REGISTRY_APNIC }, { "PY", REGISTRY_LACNIC }, { "QA", REGISTRY_RIPENCC }, { "RE", REGISTRY_AFRINIC }, { "RO", REGISTRY_RIPENCC }, { "RS", REGISTRY_RIPENCC }, { "RU", REGISTRY_RIPENCC }, { "RW", REGISTRY_AFRINIC }, { "SA", REGISTRY_RIPENCC }, { "SB", REGISTRY_APNIC }, { "SC", REGISTRY_RIPENCC }, { "SD", REGISTRY_AFRINIC }, { "SE", REGISTRY_RIPENCC }, { "SG", REGISTRY_APNIC }, { "SI", REGISTRY_RIPENCC }, { "SK", REGISTRY_RIPENCC }, { "SL", REGISTRY_AFRINIC }, { "SM", REGISTRY_RIPENCC }, { "SN", REGISTRY_AFRINIC }, { "SO", REGISTRY_AFRINIC }, { "SR", REGISTRY_LACNIC }, { "SS", REGISTRY_AFRINIC }, { "ST", REGISTRY_AFRINIC }, { "SV", REGISTRY_LACNIC }, { "SX", REGISTRY_LACNIC }, { "SY", REGISTRY_RIPENCC }, { "SZ", REGISTRY_AFRINIC }, { "TC", REGISTRY_ARIN }, { "TD", REGISTRY_AFRINIC }, { "TG", REGISTRY_AFRINIC }, { "TH", REGISTRY_APNIC }, { "TJ", REGISTRY_RIPENCC }, { "TK", REGISTRY_RIPENCC }, { "TL", REGISTRY_APNIC }, { "TM", REGISTRY_RIPENCC }, { "TN", REGISTRY_AFRINIC }, { "TO", REGISTRY_APNIC }, { "TR", REGISTRY_RIPENCC }, { "TT", REGISTRY_LACNIC }, { "TV", REGISTRY_APNIC }, { "TW", REGISTRY_APNIC }, { "TZ", REGISTRY_AFRINIC }, { "UA", REGISTRY_RIPENCC }, { "UG", REGISTRY_AFRINIC }, { "US", REGISTRY_ARIN }, { "UY", REGISTRY_LACNIC }, { "UZ", REGISTRY_RIPENCC }, { "VA", REGISTRY_RIPENCC }, { "VC", REGISTRY_ARIN }, { "VE", REGISTRY_LACNIC }, { "VG", REGISTRY_RIPENCC }, { "VI", REGISTRY_ARIN }, { "VN", REGISTRY_APNIC }, { "VU", REGISTRY_APNIC }, { "WF", REGISTRY_APNIC }, { "WS", REGISTRY_APNIC }, { "YE", REGISTRY_RIPENCC }, { "YT", REGISTRY_AFRINIC }, { "ZA", REGISTRY_AFRINIC }, { "ZM", REGISTRY_AFRINIC }, { "ZW", REGISTRY_AFRINIC }, }; static const s_cc_index_reg_assignment cc_index_reg_assignment[] = { { REGISTRY_UNKNOWN }, // 0 A0 { REGISTRY_UNKNOWN }, // 1 B0 { REGISTRY_UNKNOWN }, // 2 C0 { REGISTRY_UNKNOWN }, // 3 D0 { REGISTRY_UNKNOWN }, // 4 E0 { REGISTRY_UNKNOWN }, // 5 F0 { REGISTRY_UNKNOWN }, // 6 G0 { REGISTRY_UNKNOWN }, // 7 H0 { REGISTRY_UNKNOWN }, // 8 I0 { REGISTRY_UNKNOWN }, // 9 J0 { REGISTRY_UNKNOWN }, // 10 K0 { REGISTRY_UNKNOWN }, // 11 L0 { REGISTRY_UNKNOWN }, // 12 M0 { REGISTRY_UNKNOWN }, // 13 N0 { REGISTRY_UNKNOWN }, // 14 O0 { REGISTRY_UNKNOWN }, // 15 P0 { REGISTRY_UNKNOWN }, // 16 Q0 { REGISTRY_UNKNOWN }, // 17 R0 { REGISTRY_UNKNOWN }, // 18 S0 { REGISTRY_UNKNOWN }, // 19 T0 { REGISTRY_UNKNOWN }, // 20 U0 { REGISTRY_UNKNOWN }, // 21 V0 { REGISTRY_UNKNOWN }, // 22 W0 { REGISTRY_UNKNOWN }, // 23 X0 { REGISTRY_UNKNOWN }, // 24 Y0 { REGISTRY_UNKNOWN }, // 25 Z0 { REGISTRY_UNKNOWN }, // 26 A1 { REGISTRY_UNKNOWN }, // 27 B1 { REGISTRY_UNKNOWN }, // 28 C1 { REGISTRY_UNKNOWN }, // 29 D1 { REGISTRY_UNKNOWN }, // 30 E1 { REGISTRY_UNKNOWN }, // 31 F1 { REGISTRY_UNKNOWN }, // 32 G1 { REGISTRY_UNKNOWN }, // 33 H1 { REGISTRY_UNKNOWN }, // 34 I1 { REGISTRY_UNKNOWN }, // 35 J1 { REGISTRY_UNKNOWN }, // 36 K1 { REGISTRY_UNKNOWN }, // 37 L1 { REGISTRY_UNKNOWN }, // 38 M1 { REGISTRY_UNKNOWN }, // 39 N1 { REGISTRY_UNKNOWN }, // 40 O1 { REGISTRY_UNKNOWN }, // 41 P1 { REGISTRY_UNKNOWN }, // 42 Q1 { REGISTRY_UNKNOWN }, // 43 R1 { REGISTRY_UNKNOWN }, // 44 S1 { REGISTRY_UNKNOWN }, // 45 T1 { REGISTRY_UNKNOWN }, // 46 U1 { REGISTRY_UNKNOWN }, // 47 V1 { REGISTRY_UNKNOWN }, // 48 W1 { REGISTRY_UNKNOWN }, // 49 X1 { REGISTRY_UNKNOWN }, // 50 Y1 { REGISTRY_UNKNOWN }, // 51 Z1 { REGISTRY_UNKNOWN }, // 52 A2 { REGISTRY_UNKNOWN }, // 53 B2 { REGISTRY_UNKNOWN }, // 54 C2 { REGISTRY_UNKNOWN }, // 55 D2 { REGISTRY_UNKNOWN }, // 56 E2 { REGISTRY_UNKNOWN }, // 57 F2 { REGISTRY_UNKNOWN }, // 58 G2 { REGISTRY_UNKNOWN }, // 59 H2 { REGISTRY_UNKNOWN }, // 60 I2 { REGISTRY_UNKNOWN }, // 61 J2 { REGISTRY_UNKNOWN }, // 62 K2 { REGISTRY_UNKNOWN }, // 63 L2 { REGISTRY_UNKNOWN }, // 64 M2 { REGISTRY_UNKNOWN }, // 65 N2 { REGISTRY_UNKNOWN }, // 66 O2 { REGISTRY_UNKNOWN }, // 67 P2 { REGISTRY_UNKNOWN }, // 68 Q2 { REGISTRY_UNKNOWN }, // 69 R2 { REGISTRY_UNKNOWN }, // 70 S2 { REGISTRY_UNKNOWN }, // 71 T2 { REGISTRY_UNKNOWN }, // 72 U2 { REGISTRY_UNKNOWN }, // 73 V2 { REGISTRY_UNKNOWN }, // 74 W2 { REGISTRY_UNKNOWN }, // 75 X2 { REGISTRY_UNKNOWN }, // 76 Y2 { REGISTRY_UNKNOWN }, // 77 Z2 { REGISTRY_UNKNOWN }, // 78 A3 { REGISTRY_UNKNOWN }, // 79 B3 { REGISTRY_UNKNOWN }, // 80 C3 { REGISTRY_UNKNOWN }, // 81 D3 { REGISTRY_UNKNOWN }, // 82 E3 { REGISTRY_UNKNOWN }, // 83 F3 { REGISTRY_UNKNOWN }, // 84 G3 { REGISTRY_UNKNOWN }, // 85 H3 { REGISTRY_UNKNOWN }, // 86 I3 { REGISTRY_UNKNOWN }, // 87 J3 { REGISTRY_UNKNOWN }, // 88 K3 { REGISTRY_UNKNOWN }, // 89 L3 { REGISTRY_UNKNOWN }, // 90 M3 { REGISTRY_UNKNOWN }, // 91 N3 { REGISTRY_UNKNOWN }, // 92 O3 { REGISTRY_UNKNOWN }, // 93 P3 { REGISTRY_UNKNOWN }, // 94 Q3 { REGISTRY_UNKNOWN }, // 95 R3 { REGISTRY_UNKNOWN }, // 96 S3 { REGISTRY_UNKNOWN }, // 97 T3 { REGISTRY_UNKNOWN }, // 98 U3 { REGISTRY_UNKNOWN }, // 99 V3 { REGISTRY_UNKNOWN }, // 100 W3 { REGISTRY_UNKNOWN }, // 101 X3 { REGISTRY_UNKNOWN }, // 102 Y3 { REGISTRY_UNKNOWN }, // 103 Z3 { REGISTRY_UNKNOWN }, // 104 A4 { REGISTRY_UNKNOWN }, // 105 B4 { REGISTRY_UNKNOWN }, // 106 C4 { REGISTRY_UNKNOWN }, // 107 D4 { REGISTRY_UNKNOWN }, // 108 E4 { REGISTRY_UNKNOWN }, // 109 F4 { REGISTRY_UNKNOWN }, // 110 G4 { REGISTRY_UNKNOWN }, // 111 H4 { REGISTRY_UNKNOWN }, // 112 I4 { REGISTRY_UNKNOWN }, // 113 J4 { REGISTRY_UNKNOWN }, // 114 K4 { REGISTRY_UNKNOWN }, // 115 L4 { REGISTRY_UNKNOWN }, // 116 M4 { REGISTRY_UNKNOWN }, // 117 N4 { REGISTRY_UNKNOWN }, // 118 O4 { REGISTRY_UNKNOWN }, // 119 P4 { REGISTRY_UNKNOWN }, // 120 Q4 { REGISTRY_UNKNOWN }, // 121 R4 { REGISTRY_UNKNOWN }, // 122 S4 { REGISTRY_UNKNOWN }, // 123 T4 { REGISTRY_UNKNOWN }, // 124 U4 { REGISTRY_UNKNOWN }, // 125 V4 { REGISTRY_UNKNOWN }, // 126 W4 { REGISTRY_UNKNOWN }, // 127 X4 { REGISTRY_UNKNOWN }, // 128 Y4 { REGISTRY_UNKNOWN }, // 129 Z4 { REGISTRY_UNKNOWN }, // 130 A5 { REGISTRY_UNKNOWN }, // 131 B5 { REGISTRY_UNKNOWN }, // 132 C5 { REGISTRY_UNKNOWN }, // 133 D5 { REGISTRY_UNKNOWN }, // 134 E5 { REGISTRY_UNKNOWN }, // 135 F5 { REGISTRY_UNKNOWN }, // 136 G5 { REGISTRY_UNKNOWN }, // 137 H5 { REGISTRY_UNKNOWN }, // 138 I5 { REGISTRY_UNKNOWN }, // 139 J5 { REGISTRY_UNKNOWN }, // 140 K5 { REGISTRY_UNKNOWN }, // 141 L5 { REGISTRY_UNKNOWN }, // 142 M5 { REGISTRY_UNKNOWN }, // 143 N5 { REGISTRY_UNKNOWN }, // 144 O5 { REGISTRY_UNKNOWN }, // 145 P5 { REGISTRY_UNKNOWN }, // 146 Q5 { REGISTRY_UNKNOWN }, // 147 R5 { REGISTRY_UNKNOWN }, // 148 S5 { REGISTRY_UNKNOWN }, // 149 T5 { REGISTRY_UNKNOWN }, // 150 U5 { REGISTRY_UNKNOWN }, // 151 V5 { REGISTRY_UNKNOWN }, // 152 W5 { REGISTRY_UNKNOWN }, // 153 X5 { REGISTRY_UNKNOWN }, // 154 Y5 { REGISTRY_UNKNOWN }, // 155 Z5 { REGISTRY_UNKNOWN }, // 156 A6 { REGISTRY_UNKNOWN }, // 157 B6 { REGISTRY_UNKNOWN }, // 158 C6 { REGISTRY_UNKNOWN }, // 159 D6 { REGISTRY_UNKNOWN }, // 160 E6 { REGISTRY_UNKNOWN }, // 161 F6 { REGISTRY_UNKNOWN }, // 162 G6 { REGISTRY_UNKNOWN }, // 163 H6 { REGISTRY_UNKNOWN }, // 164 I6 { REGISTRY_UNKNOWN }, // 165 J6 { REGISTRY_UNKNOWN }, // 166 K6 { REGISTRY_UNKNOWN }, // 167 L6 { REGISTRY_UNKNOWN }, // 168 M6 { REGISTRY_UNKNOWN }, // 169 N6 { REGISTRY_UNKNOWN }, // 170 O6 { REGISTRY_UNKNOWN }, // 171 P6 { REGISTRY_UNKNOWN }, // 172 Q6 { REGISTRY_UNKNOWN }, // 173 R6 { REGISTRY_UNKNOWN }, // 174 S6 { REGISTRY_UNKNOWN }, // 175 T6 { REGISTRY_UNKNOWN }, // 176 U6 { REGISTRY_UNKNOWN }, // 177 V6 { REGISTRY_UNKNOWN }, // 178 W6 { REGISTRY_UNKNOWN }, // 179 X6 { REGISTRY_UNKNOWN }, // 180 Y6 { REGISTRY_UNKNOWN }, // 181 Z6 { REGISTRY_UNKNOWN }, // 182 A7 { REGISTRY_UNKNOWN }, // 183 B7 { REGISTRY_UNKNOWN }, // 184 C7 { REGISTRY_UNKNOWN }, // 185 D7 { REGISTRY_UNKNOWN }, // 186 E7 { REGISTRY_UNKNOWN }, // 187 F7 { REGISTRY_UNKNOWN }, // 188 G7 { REGISTRY_UNKNOWN }, // 189 H7 { REGISTRY_UNKNOWN }, // 190 I7 { REGISTRY_UNKNOWN }, // 191 J7 { REGISTRY_UNKNOWN }, // 192 K7 { REGISTRY_UNKNOWN }, // 193 L7 { REGISTRY_UNKNOWN }, // 194 M7 { REGISTRY_UNKNOWN }, // 195 N7 { REGISTRY_UNKNOWN }, // 196 O7 { REGISTRY_UNKNOWN }, // 197 P7 { REGISTRY_UNKNOWN }, // 198 Q7 { REGISTRY_UNKNOWN }, // 199 R7 { REGISTRY_UNKNOWN }, // 200 S7 { REGISTRY_UNKNOWN }, // 201 T7 { REGISTRY_UNKNOWN }, // 202 U7 { REGISTRY_UNKNOWN }, // 203 V7 { REGISTRY_UNKNOWN }, // 204 W7 { REGISTRY_UNKNOWN }, // 205 X7 { REGISTRY_UNKNOWN }, // 206 Y7 { REGISTRY_UNKNOWN }, // 207 Z7 { REGISTRY_UNKNOWN }, // 208 A8 { REGISTRY_UNKNOWN }, // 209 B8 { REGISTRY_UNKNOWN }, // 210 C8 { REGISTRY_UNKNOWN }, // 211 D8 { REGISTRY_UNKNOWN }, // 212 E8 { REGISTRY_UNKNOWN }, // 213 F8 { REGISTRY_UNKNOWN }, // 214 G8 { REGISTRY_UNKNOWN }, // 215 H8 { REGISTRY_UNKNOWN }, // 216 I8 { REGISTRY_UNKNOWN }, // 217 J8 { REGISTRY_UNKNOWN }, // 218 K8 { REGISTRY_UNKNOWN }, // 219 L8 { REGISTRY_UNKNOWN }, // 220 M8 { REGISTRY_UNKNOWN }, // 221 N8 { REGISTRY_UNKNOWN }, // 222 O8 { REGISTRY_UNKNOWN }, // 223 P8 { REGISTRY_UNKNOWN }, // 224 Q8 { REGISTRY_UNKNOWN }, // 225 R8 { REGISTRY_UNKNOWN }, // 226 S8 { REGISTRY_UNKNOWN }, // 227 T8 { REGISTRY_UNKNOWN }, // 228 U8 { REGISTRY_UNKNOWN }, // 229 V8 { REGISTRY_UNKNOWN }, // 230 W8 { REGISTRY_UNKNOWN }, // 231 X8 { REGISTRY_UNKNOWN }, // 232 Y8 { REGISTRY_UNKNOWN }, // 233 Z8 { REGISTRY_UNKNOWN }, // 234 A9 { REGISTRY_UNKNOWN }, // 235 B9 { REGISTRY_UNKNOWN }, // 236 C9 { REGISTRY_UNKNOWN }, // 237 D9 { REGISTRY_UNKNOWN }, // 238 E9 { REGISTRY_UNKNOWN }, // 239 F9 { REGISTRY_UNKNOWN }, // 240 G9 { REGISTRY_UNKNOWN }, // 241 H9 { REGISTRY_UNKNOWN }, // 242 I9 { REGISTRY_UNKNOWN }, // 243 J9 { REGISTRY_UNKNOWN }, // 244 K9 { REGISTRY_UNKNOWN }, // 245 L9 { REGISTRY_UNKNOWN }, // 246 M9 { REGISTRY_UNKNOWN }, // 247 N9 { REGISTRY_UNKNOWN }, // 248 O9 { REGISTRY_UNKNOWN }, // 249 P9 { REGISTRY_UNKNOWN }, // 250 Q9 { REGISTRY_UNKNOWN }, // 251 R9 { REGISTRY_UNKNOWN }, // 252 S9 { REGISTRY_UNKNOWN }, // 253 T9 { REGISTRY_UNKNOWN }, // 254 U9 { REGISTRY_UNKNOWN }, // 255 V9 { REGISTRY_UNKNOWN }, // 256 W9 { REGISTRY_UNKNOWN }, // 257 X9 { REGISTRY_UNKNOWN }, // 258 Y9 { REGISTRY_UNKNOWN }, // 259 Z9 { REGISTRY_UNKNOWN }, // 260 AA { REGISTRY_RIPENCC }, // 261 BA { REGISTRY_ARIN }, // 262 CA { REGISTRY_UNKNOWN }, // 263 DA { REGISTRY_UNKNOWN }, // 264 EA { REGISTRY_UNKNOWN }, // 265 FA { REGISTRY_AFRINIC }, // 266 GA { REGISTRY_UNKNOWN }, // 267 HA { REGISTRY_UNKNOWN }, // 268 IA { REGISTRY_UNKNOWN }, // 269 JA { REGISTRY_UNKNOWN }, // 270 KA { REGISTRY_APNIC }, // 271 LA { REGISTRY_AFRINIC }, // 272 MA { REGISTRY_AFRINIC }, // 273 NA { REGISTRY_UNKNOWN }, // 274 OA { REGISTRY_LACNIC }, // 275 PA { REGISTRY_RIPENCC }, // 276 QA { REGISTRY_UNKNOWN }, // 277 RA { REGISTRY_RIPENCC }, // 278 SA { REGISTRY_UNKNOWN }, // 279 TA { REGISTRY_RIPENCC }, // 280 UA { REGISTRY_RIPENCC }, // 281 VA { REGISTRY_UNKNOWN }, // 282 WA { REGISTRY_UNKNOWN }, // 283 XA { REGISTRY_UNKNOWN }, // 284 YA { REGISTRY_AFRINIC }, // 285 ZA { REGISTRY_UNKNOWN }, // 286 AB { REGISTRY_ARIN }, // 287 BB { REGISTRY_UNKNOWN }, // 288 CB { REGISTRY_UNKNOWN }, // 289 DB { REGISTRY_UNKNOWN }, // 290 EB { REGISTRY_UNKNOWN }, // 291 FB { REGISTRY_RIPENCC }, // 292 GB { REGISTRY_UNKNOWN }, // 293 HB { REGISTRY_UNKNOWN }, // 294 IB { REGISTRY_UNKNOWN }, // 295 JB { REGISTRY_UNKNOWN }, // 296 KB { REGISTRY_RIPENCC }, // 297 LB { REGISTRY_UNKNOWN }, // 298 MB { REGISTRY_UNKNOWN }, // 299 NB { REGISTRY_UNKNOWN }, // 300 OB { REGISTRY_UNKNOWN }, // 301 PB { REGISTRY_UNKNOWN }, // 302 QB { REGISTRY_UNKNOWN }, // 303 RB { REGISTRY_APNIC }, // 304 SB { REGISTRY_UNKNOWN }, // 305 TB { REGISTRY_UNKNOWN }, // 306 UB { REGISTRY_UNKNOWN }, // 307 VB { REGISTRY_UNKNOWN }, // 308 WB { REGISTRY_UNKNOWN }, // 309 XB { REGISTRY_UNKNOWN }, // 310 YB { REGISTRY_UNKNOWN }, // 311 ZB { REGISTRY_UNKNOWN }, // 312 AC { REGISTRY_UNKNOWN }, // 313 BC { REGISTRY_UNKNOWN }, // 314 CC { REGISTRY_UNKNOWN }, // 315 DC { REGISTRY_LACNIC }, // 316 EC { REGISTRY_UNKNOWN }, // 317 FC { REGISTRY_UNKNOWN }, // 318 GC { REGISTRY_UNKNOWN }, // 319 HC { REGISTRY_UNKNOWN }, // 320 IC { REGISTRY_UNKNOWN }, // 321 JC { REGISTRY_UNKNOWN }, // 322 KC { REGISTRY_ARIN }, // 323 LC { REGISTRY_RIPENCC }, // 324 MC { REGISTRY_APNIC }, // 325 NC { REGISTRY_UNKNOWN }, // 326 OC { REGISTRY_UNKNOWN }, // 327 PC { REGISTRY_UNKNOWN }, // 328 QC { REGISTRY_UNKNOWN }, // 329 RC { REGISTRY_RIPENCC }, // 330 SC { REGISTRY_ARIN }, // 331 TC { REGISTRY_UNKNOWN }, // 332 UC { REGISTRY_ARIN }, // 333 VC { REGISTRY_UNKNOWN }, // 334 WC { REGISTRY_UNKNOWN }, // 335 XC { REGISTRY_UNKNOWN }, // 336 YC { REGISTRY_UNKNOWN }, // 337 ZC { REGISTRY_RIPENCC }, // 338 AD { REGISTRY_APNIC }, // 339 BD { REGISTRY_AFRINIC }, // 340 CD { REGISTRY_UNKNOWN }, // 341 DD { REGISTRY_UNKNOWN }, // 342 ED { REGISTRY_UNKNOWN }, // 343 FD { REGISTRY_ARIN }, // 344 GD { REGISTRY_UNKNOWN }, // 345 HD { REGISTRY_APNIC }, // 346 ID { REGISTRY_UNKNOWN }, // 347 JD { REGISTRY_UNKNOWN }, // 348 KD { REGISTRY_UNKNOWN }, // 349 LD { REGISTRY_RIPENCC }, // 350 MD { REGISTRY_UNKNOWN }, // 351 ND { REGISTRY_UNKNOWN }, // 352 OD { REGISTRY_UNKNOWN }, // 353 PD { REGISTRY_UNKNOWN }, // 354 QD { REGISTRY_UNKNOWN }, // 355 RD { REGISTRY_AFRINIC }, // 356 SD { REGISTRY_AFRINIC }, // 357 TD { REGISTRY_UNKNOWN }, // 358 UD { REGISTRY_UNKNOWN }, // 359 VD { REGISTRY_UNKNOWN }, // 360 WD { REGISTRY_UNKNOWN }, // 361 XD { REGISTRY_UNKNOWN }, // 362 YD { REGISTRY_UNKNOWN }, // 363 ZD { REGISTRY_RIPENCC }, // 364 AE { REGISTRY_RIPENCC }, // 365 BE { REGISTRY_UNKNOWN }, // 366 CE { REGISTRY_RIPENCC }, // 367 DE { REGISTRY_RIPENCC }, // 368 EE { REGISTRY_UNKNOWN }, // 369 FE { REGISTRY_RIPENCC }, // 370 GE { REGISTRY_UNKNOWN }, // 371 HE { REGISTRY_RIPENCC }, // 372 IE { REGISTRY_RIPENCC }, // 373 JE { REGISTRY_AFRINIC }, // 374 KE { REGISTRY_UNKNOWN }, // 375 LE { REGISTRY_RIPENCC }, // 376 ME { REGISTRY_AFRINIC }, // 377 NE { REGISTRY_UNKNOWN }, // 378 OE { REGISTRY_LACNIC }, // 379 PE { REGISTRY_UNKNOWN }, // 380 QE { REGISTRY_AFRINIC }, // 381 RE { REGISTRY_RIPENCC }, // 382 SE { REGISTRY_UNKNOWN }, // 383 TE { REGISTRY_UNKNOWN }, // 384 UE { REGISTRY_LACNIC }, // 385 VE { REGISTRY_UNKNOWN }, // 386 WE { REGISTRY_UNKNOWN }, // 387 XE { REGISTRY_RIPENCC }, // 388 YE { REGISTRY_UNKNOWN }, // 389 ZE { REGISTRY_APNIC }, // 390 AF { REGISTRY_AFRINIC }, // 391 BF { REGISTRY_AFRINIC }, // 392 CF { REGISTRY_UNKNOWN }, // 393 DF { REGISTRY_UNKNOWN }, // 394 EF { REGISTRY_UNKNOWN }, // 395 FF { REGISTRY_LACNIC }, // 396 GF { REGISTRY_UNKNOWN }, // 397 HF { REGISTRY_UNKNOWN }, // 398 IF { REGISTRY_UNKNOWN }, // 399 JF { REGISTRY_UNKNOWN }, // 400 KF { REGISTRY_UNKNOWN }, // 401 LF { REGISTRY_ARIN }, // 402 MF { REGISTRY_APNIC }, // 403 NF { REGISTRY_UNKNOWN }, // 404 OF { REGISTRY_APNIC }, // 405 PF { REGISTRY_UNKNOWN }, // 406 QF { REGISTRY_UNKNOWN }, // 407 RF { REGISTRY_UNKNOWN }, // 408 SF { REGISTRY_UNKNOWN }, // 409 TF { REGISTRY_UNKNOWN }, // 410 UF { REGISTRY_UNKNOWN }, // 411 VF { REGISTRY_APNIC }, // 412 WF { REGISTRY_UNKNOWN }, // 413 XF { REGISTRY_UNKNOWN }, // 414 YF { REGISTRY_UNKNOWN }, // 415 ZF { REGISTRY_RIPENCC }, // 416 AG { REGISTRY_RIPENCC }, // 417 BG { REGISTRY_AFRINIC }, // 418 CG { REGISTRY_UNKNOWN }, // 419 DG { REGISTRY_AFRINIC }, // 420 EG { REGISTRY_UNKNOWN }, // 421 FG { REGISTRY_RIPENCC }, // 422 GG { REGISTRY_UNKNOWN }, // 423 HG { REGISTRY_UNKNOWN }, // 424 IG { REGISTRY_UNKNOWN }, // 425 JG { REGISTRY_RIPENCC }, // 426 KG { REGISTRY_UNKNOWN }, // 427 LG { REGISTRY_AFRINIC }, // 428 MG { REGISTRY_AFRINIC }, // 429 NG { REGISTRY_UNKNOWN }, // 430 OG { REGISTRY_APNIC }, // 431 PG { REGISTRY_UNKNOWN }, // 432 QG { REGISTRY_UNKNOWN }, // 433 RG { REGISTRY_APNIC }, // 434 SG { REGISTRY_AFRINIC }, // 435 TG { REGISTRY_AFRINIC }, // 436 UG { REGISTRY_RIPENCC }, // 437 VG { REGISTRY_UNKNOWN }, // 438 WG { REGISTRY_UNKNOWN }, // 439 XG { REGISTRY_UNKNOWN }, // 440 YG { REGISTRY_UNKNOWN }, // 441 ZG { REGISTRY_UNKNOWN }, // 442 AH { REGISTRY_RIPENCC }, // 443 BH { REGISTRY_RIPENCC }, // 444 CH { REGISTRY_UNKNOWN }, // 445 DH { REGISTRY_UNKNOWN }, // 446 EH { REGISTRY_UNKNOWN }, // 447 FH { REGISTRY_AFRINIC }, // 448 GH { REGISTRY_UNKNOWN }, // 449 HH { REGISTRY_UNKNOWN }, // 450 IH { REGISTRY_UNKNOWN }, // 451 JH { REGISTRY_APNIC }, // 452 KH { REGISTRY_UNKNOWN }, // 453 LH { REGISTRY_APNIC }, // 454 MH { REGISTRY_UNKNOWN }, // 455 NH { REGISTRY_UNKNOWN }, // 456 OH { REGISTRY_APNIC }, // 457 PH { REGISTRY_UNKNOWN }, // 458 QH { REGISTRY_UNKNOWN }, // 459 RH { REGISTRY_UNKNOWN }, // 460 SH { REGISTRY_APNIC }, // 461 TH { REGISTRY_UNKNOWN }, // 462 UH { REGISTRY_UNKNOWN }, // 463 VH { REGISTRY_UNKNOWN }, // 464 WH { REGISTRY_UNKNOWN }, // 465 XH { REGISTRY_UNKNOWN }, // 466 YH { REGISTRY_UNKNOWN }, // 467 ZH { REGISTRY_ARIN }, // 468 AI { REGISTRY_AFRINIC }, // 469 BI { REGISTRY_AFRINIC }, // 470 CI { REGISTRY_UNKNOWN }, // 471 DI { REGISTRY_UNKNOWN }, // 472 EI { REGISTRY_RIPENCC }, // 473 FI { REGISTRY_RIPENCC }, // 474 GI { REGISTRY_UNKNOWN }, // 475 HI { REGISTRY_UNKNOWN }, // 476 II { REGISTRY_UNKNOWN }, // 477 JI { REGISTRY_APNIC }, // 478 KI { REGISTRY_RIPENCC }, // 479 LI { REGISTRY_UNKNOWN }, // 480 MI { REGISTRY_LACNIC }, // 481 NI { REGISTRY_UNKNOWN }, // 482 OI { REGISTRY_UNKNOWN }, // 483 PI { REGISTRY_UNKNOWN }, // 484 QI { REGISTRY_UNKNOWN }, // 485 RI { REGISTRY_RIPENCC }, // 486 SI { REGISTRY_UNKNOWN }, // 487 TI { REGISTRY_UNKNOWN }, // 488 UI { REGISTRY_ARIN }, // 489 VI { REGISTRY_UNKNOWN }, // 490 WI { REGISTRY_UNKNOWN }, // 491 XI { REGISTRY_UNKNOWN }, // 492 YI { REGISTRY_UNKNOWN }, // 493 ZI { REGISTRY_UNKNOWN }, // 494 AJ { REGISTRY_AFRINIC }, // 495 BJ { REGISTRY_UNKNOWN }, // 496 CJ { REGISTRY_AFRINIC }, // 497 DJ { REGISTRY_UNKNOWN }, // 498 EJ { REGISTRY_APNIC }, // 499 FJ { REGISTRY_UNKNOWN }, // 500 GJ { REGISTRY_UNKNOWN }, // 501 HJ { REGISTRY_UNKNOWN }, // 502 IJ { REGISTRY_UNKNOWN }, // 503 JJ { REGISTRY_UNKNOWN }, // 504 KJ { REGISTRY_UNKNOWN }, // 505 LJ { REGISTRY_UNKNOWN }, // 506 MJ { REGISTRY_UNKNOWN }, // 507 NJ { REGISTRY_UNKNOWN }, // 508 OJ { REGISTRY_UNKNOWN }, // 509 PJ { REGISTRY_UNKNOWN }, // 510 QJ { REGISTRY_UNKNOWN }, // 511 RJ { REGISTRY_UNKNOWN }, // 512 SJ { REGISTRY_RIPENCC }, // 513 TJ { REGISTRY_UNKNOWN }, // 514 UJ { REGISTRY_UNKNOWN }, // 515 VJ { REGISTRY_UNKNOWN }, // 516 WJ { REGISTRY_UNKNOWN }, // 517 XJ { REGISTRY_UNKNOWN }, // 518 YJ { REGISTRY_UNKNOWN }, // 519 ZJ { REGISTRY_UNKNOWN }, // 520 AK { REGISTRY_UNKNOWN }, // 521 BK { REGISTRY_APNIC }, // 522 CK { REGISTRY_RIPENCC }, // 523 DK { REGISTRY_UNKNOWN }, // 524 EK { REGISTRY_RIPENCC }, // 525 FK { REGISTRY_UNKNOWN }, // 526 GK { REGISTRY_APNIC }, // 527 HK { REGISTRY_UNKNOWN }, // 528 IK { REGISTRY_UNKNOWN }, // 529 JK { REGISTRY_UNKNOWN }, // 530 KK { REGISTRY_APNIC }, // 531 LK { REGISTRY_RIPENCC }, // 532 MK { REGISTRY_UNKNOWN }, // 533 NK { REGISTRY_UNKNOWN }, // 534 OK { REGISTRY_APNIC }, // 535 PK { REGISTRY_UNKNOWN }, // 536 QK { REGISTRY_UNKNOWN }, // 537 RK { REGISTRY_RIPENCC }, // 538 SK { REGISTRY_RIPENCC }, // 539 TK { REGISTRY_UNKNOWN }, // 540 UK { REGISTRY_UNKNOWN }, // 541 VK { REGISTRY_UNKNOWN }, // 542 WK { REGISTRY_UNKNOWN }, // 543 XK { REGISTRY_UNKNOWN }, // 544 YK { REGISTRY_UNKNOWN }, // 545 ZK { REGISTRY_RIPENCC }, // 546 AL { REGISTRY_ARIN }, // 547 BL { REGISTRY_LACNIC }, // 548 CL { REGISTRY_UNKNOWN }, // 549 DL { REGISTRY_UNKNOWN }, // 550 EL { REGISTRY_UNKNOWN }, // 551 FL { REGISTRY_RIPENCC }, // 552 GL { REGISTRY_UNKNOWN }, // 553 HL { REGISTRY_RIPENCC }, // 554 IL { REGISTRY_UNKNOWN }, // 555 JL { REGISTRY_UNKNOWN }, // 556 KL { REGISTRY_UNKNOWN }, // 557 LL { REGISTRY_AFRINIC }, // 558 ML { REGISTRY_RIPENCC }, // 559 NL { REGISTRY_UNKNOWN }, // 560 OL { REGISTRY_RIPENCC }, // 561 PL { REGISTRY_UNKNOWN }, // 562 QL { REGISTRY_UNKNOWN }, // 563 RL { REGISTRY_AFRINIC }, // 564 SL { REGISTRY_APNIC }, // 565 TL { REGISTRY_UNKNOWN }, // 566 UL { REGISTRY_UNKNOWN }, // 567 VL { REGISTRY_UNKNOWN }, // 568 WL { REGISTRY_UNKNOWN }, // 569 XL { REGISTRY_UNKNOWN }, // 570 YL { REGISTRY_UNKNOWN }, // 571 ZL { REGISTRY_RIPENCC }, // 572 AM { REGISTRY_ARIN }, // 573 BM { REGISTRY_AFRINIC }, // 574 CM { REGISTRY_ARIN }, // 575 DM { REGISTRY_UNKNOWN }, // 576 EM { REGISTRY_APNIC }, // 577 FM { REGISTRY_AFRINIC }, // 578 GM { REGISTRY_UNKNOWN }, // 579 HM { REGISTRY_RIPENCC }, // 580 IM { REGISTRY_ARIN }, // 581 JM { REGISTRY_AFRINIC }, // 582 KM { REGISTRY_UNKNOWN }, // 583 LM { REGISTRY_APNIC }, // 584 MM { REGISTRY_UNKNOWN }, // 585 NM { REGISTRY_RIPENCC }, // 586 OM { REGISTRY_ARIN }, // 587 PM { REGISTRY_UNKNOWN }, // 588 QM { REGISTRY_UNKNOWN }, // 589 RM { REGISTRY_RIPENCC }, // 590 SM { REGISTRY_RIPENCC }, // 591 TM { REGISTRY_UNKNOWN }, // 592 UM { REGISTRY_UNKNOWN }, // 593 VM { REGISTRY_UNKNOWN }, // 594 WM { REGISTRY_UNKNOWN }, // 595 XM { REGISTRY_UNKNOWN }, // 596 YM { REGISTRY_AFRINIC }, // 597 ZM { REGISTRY_UNKNOWN }, // 598 AN { REGISTRY_APNIC }, // 599 BN { REGISTRY_APNIC }, // 600 CN { REGISTRY_UNKNOWN }, // 601 DN { REGISTRY_UNKNOWN }, // 602 EN { REGISTRY_UNKNOWN }, // 603 FN { REGISTRY_AFRINIC }, // 604 GN { REGISTRY_LACNIC }, // 605 HN { REGISTRY_APNIC }, // 606 IN { REGISTRY_UNKNOWN }, // 607 JN { REGISTRY_ARIN }, // 608 KN { REGISTRY_UNKNOWN }, // 609 LN { REGISTRY_APNIC }, // 610 MN { REGISTRY_UNKNOWN }, // 611 NN { REGISTRY_UNKNOWN }, // 612 ON { REGISTRY_UNKNOWN }, // 613 PN { REGISTRY_UNKNOWN }, // 614 QN { REGISTRY_UNKNOWN }, // 615 RN { REGISTRY_AFRINIC }, // 616 SN { REGISTRY_AFRINIC }, // 617 TN { REGISTRY_UNKNOWN }, // 618 UN { REGISTRY_APNIC }, // 619 VN { REGISTRY_UNKNOWN }, // 620 WN { REGISTRY_UNKNOWN }, // 621 XN { REGISTRY_UNKNOWN }, // 622 YN { REGISTRY_UNKNOWN }, // 623 ZN { REGISTRY_AFRINIC }, // 624 AO { REGISTRY_LACNIC }, // 625 BO { REGISTRY_LACNIC }, // 626 CO { REGISTRY_LACNIC }, // 627 DO { REGISTRY_UNKNOWN }, // 628 EO { REGISTRY_RIPENCC }, // 629 FO { REGISTRY_UNKNOWN }, // 630 GO { REGISTRY_UNKNOWN }, // 631 HO { REGISTRY_APNIC }, // 632 IO { REGISTRY_RIPENCC }, // 633 JO { REGISTRY_UNKNOWN }, // 634 KO { REGISTRY_UNKNOWN }, // 635 LO { REGISTRY_APNIC }, // 636 MO { REGISTRY_RIPENCC }, // 637 NO { REGISTRY_UNKNOWN }, // 638 OO { REGISTRY_UNKNOWN }, // 639 PO { REGISTRY_UNKNOWN }, // 640 QO { REGISTRY_RIPENCC }, // 641 RO { REGISTRY_AFRINIC }, // 642 SO { REGISTRY_APNIC }, // 643 TO { REGISTRY_UNKNOWN }, // 644 UO { REGISTRY_UNKNOWN }, // 645 VO { REGISTRY_UNKNOWN }, // 646 WO { REGISTRY_UNKNOWN }, // 647 XO { REGISTRY_UNKNOWN }, // 648 YO { REGISTRY_UNKNOWN }, // 649 ZO { REGISTRY_UNKNOWN }, // 650 AP { REGISTRY_UNKNOWN }, // 651 BP { REGISTRY_UNKNOWN }, // 652 CP { REGISTRY_UNKNOWN }, // 653 DP { REGISTRY_UNKNOWN }, // 654 EP { REGISTRY_UNKNOWN }, // 655 FP { REGISTRY_ARIN }, // 656 GP { REGISTRY_UNKNOWN }, // 657 HP { REGISTRY_UNKNOWN }, // 658 IP { REGISTRY_APNIC }, // 659 JP { REGISTRY_APNIC }, // 660 KP { REGISTRY_UNKNOWN }, // 661 LP { REGISTRY_APNIC }, // 662 MP { REGISTRY_APNIC }, // 663 NP { REGISTRY_UNKNOWN }, // 664 OP { REGISTRY_UNKNOWN }, // 665 PP { REGISTRY_UNKNOWN }, // 666 QP { REGISTRY_UNKNOWN }, // 667 RP { REGISTRY_UNKNOWN }, // 668 SP { REGISTRY_UNKNOWN }, // 669 TP { REGISTRY_UNKNOWN }, // 670 UP { REGISTRY_UNKNOWN }, // 671 VP { REGISTRY_UNKNOWN }, // 672 WP { REGISTRY_UNKNOWN }, // 673 XP { REGISTRY_UNKNOWN }, // 674 YP { REGISTRY_UNKNOWN }, // 675 ZP { REGISTRY_UNKNOWN }, // 676 AQ { REGISTRY_LACNIC }, // 677 BQ { REGISTRY_UNKNOWN }, // 678 CQ { REGISTRY_UNKNOWN }, // 679 DQ { REGISTRY_UNKNOWN }, // 680 EQ { REGISTRY_UNKNOWN }, // 681 FQ { REGISTRY_AFRINIC }, // 682 GQ { REGISTRY_UNKNOWN }, // 683 HQ { REGISTRY_RIPENCC }, // 684 IQ { REGISTRY_UNKNOWN }, // 685 JQ { REGISTRY_UNKNOWN }, // 686 KQ { REGISTRY_UNKNOWN }, // 687 LQ { REGISTRY_RIPENCC }, // 688 MQ { REGISTRY_UNKNOWN }, // 689 NQ { REGISTRY_UNKNOWN }, // 690 OQ { REGISTRY_UNKNOWN }, // 691 PQ { REGISTRY_UNKNOWN }, // 692 QQ { REGISTRY_UNKNOWN }, // 693 RQ { REGISTRY_UNKNOWN }, // 694 SQ { REGISTRY_UNKNOWN }, // 695 TQ { REGISTRY_UNKNOWN }, // 696 UQ { REGISTRY_UNKNOWN }, // 697 VQ { REGISTRY_UNKNOWN }, // 698 WQ { REGISTRY_UNKNOWN }, // 699 XQ { REGISTRY_UNKNOWN }, // 700 YQ { REGISTRY_UNKNOWN }, // 701 ZQ { REGISTRY_LACNIC }, // 702 AR { REGISTRY_LACNIC }, // 703 BR { REGISTRY_LACNIC }, // 704 CR { REGISTRY_UNKNOWN }, // 705 DR { REGISTRY_AFRINIC }, // 706 ER { REGISTRY_RIPENCC }, // 707 FR { REGISTRY_RIPENCC }, // 708 GR { REGISTRY_RIPENCC }, // 709 HR { REGISTRY_RIPENCC }, // 710 IR { REGISTRY_UNKNOWN }, // 711 JR { REGISTRY_APNIC }, // 712 KR { REGISTRY_AFRINIC }, // 713 LR { REGISTRY_AFRINIC }, // 714 MR { REGISTRY_APNIC }, // 715 NR { REGISTRY_UNKNOWN }, // 716 OR { REGISTRY_ARIN }, // 717 PR { REGISTRY_UNKNOWN }, // 718 QR { REGISTRY_UNKNOWN }, // 719 RR { REGISTRY_LACNIC }, // 720 SR { REGISTRY_RIPENCC }, // 721 TR { REGISTRY_UNKNOWN }, // 722 UR { REGISTRY_UNKNOWN }, // 723 VR { REGISTRY_UNKNOWN }, // 724 WR { REGISTRY_UNKNOWN }, // 725 XR { REGISTRY_UNKNOWN }, // 726 YR { REGISTRY_UNKNOWN }, // 727 ZR { REGISTRY_APNIC }, // 728 AS { REGISTRY_ARIN }, // 729 BS { REGISTRY_UNKNOWN }, // 730 CS { REGISTRY_UNKNOWN }, // 731 DS { REGISTRY_RIPENCC }, // 732 ES { REGISTRY_UNKNOWN }, // 733 FS { REGISTRY_UNKNOWN }, // 734 GS { REGISTRY_UNKNOWN }, // 735 HS { REGISTRY_RIPENCC }, // 736 IS { REGISTRY_UNKNOWN }, // 737 JS { REGISTRY_UNKNOWN }, // 738 KS { REGISTRY_AFRINIC }, // 739 LS { REGISTRY_ARIN }, // 740 MS { REGISTRY_UNKNOWN }, // 741 NS { REGISTRY_UNKNOWN }, // 742 OS { REGISTRY_RIPENCC }, // 743 PS { REGISTRY_UNKNOWN }, // 744 QS { REGISTRY_RIPENCC }, // 745 RS { REGISTRY_AFRINIC }, // 746 SS { REGISTRY_UNKNOWN }, // 747 TS { REGISTRY_ARIN }, // 748 US { REGISTRY_UNKNOWN }, // 749 VS { REGISTRY_APNIC }, // 750 WS { REGISTRY_UNKNOWN }, // 751 XS { REGISTRY_UNKNOWN }, // 752 YS { REGISTRY_UNKNOWN }, // 753 ZS { REGISTRY_RIPENCC }, // 754 AT { REGISTRY_APNIC }, // 755 BT { REGISTRY_UNKNOWN }, // 756 CT { REGISTRY_UNKNOWN }, // 757 DT { REGISTRY_AFRINIC }, // 758 ET { REGISTRY_UNKNOWN }, // 759 FT { REGISTRY_LACNIC }, // 760 GT { REGISTRY_LACNIC }, // 761 HT { REGISTRY_RIPENCC }, // 762 IT { REGISTRY_UNKNOWN }, // 763 JT { REGISTRY_UNKNOWN }, // 764 KT { REGISTRY_RIPENCC }, // 765 LT { REGISTRY_RIPENCC }, // 766 MT { REGISTRY_UNKNOWN }, // 767 NT { REGISTRY_UNKNOWN }, // 768 OT { REGISTRY_RIPENCC }, // 769 PT { REGISTRY_UNKNOWN }, // 770 QT { REGISTRY_UNKNOWN }, // 771 RT { REGISTRY_AFRINIC }, // 772 ST { REGISTRY_LACNIC }, // 773 TT { REGISTRY_UNKNOWN }, // 774 UT { REGISTRY_UNKNOWN }, // 775 VT { REGISTRY_UNKNOWN }, // 776 WT { REGISTRY_UNKNOWN }, // 777 XT { REGISTRY_AFRINIC }, // 778 YT { REGISTRY_UNKNOWN }, // 779 ZT { REGISTRY_APNIC }, // 780 AU { REGISTRY_UNKNOWN }, // 781 BU { REGISTRY_LACNIC }, // 782 CU { REGISTRY_UNKNOWN }, // 783 DU { REGISTRY_RIPENCC }, // 784 EU { REGISTRY_UNKNOWN }, // 785 FU { REGISTRY_APNIC }, // 786 GU { REGISTRY_RIPENCC }, // 787 HU { REGISTRY_UNKNOWN }, // 788 IU { REGISTRY_UNKNOWN }, // 789 JU { REGISTRY_UNKNOWN }, // 790 KU { REGISTRY_RIPENCC }, // 791 LU { REGISTRY_AFRINIC }, // 792 MU { REGISTRY_APNIC }, // 793 NU { REGISTRY_UNKNOWN }, // 794 OU { REGISTRY_UNKNOWN }, // 795 PU { REGISTRY_UNKNOWN }, // 796 QU { REGISTRY_RIPENCC }, // 797 RU { REGISTRY_UNKNOWN }, // 798 SU { REGISTRY_UNKNOWN }, // 799 TU { REGISTRY_UNKNOWN }, // 800 UU { REGISTRY_APNIC }, // 801 VU { REGISTRY_UNKNOWN }, // 802 WU { REGISTRY_UNKNOWN }, // 803 XU { REGISTRY_UNKNOWN }, // 804 YU { REGISTRY_UNKNOWN }, // 805 ZU { REGISTRY_UNKNOWN }, // 806 AV { REGISTRY_UNKNOWN }, // 807 BV { REGISTRY_AFRINIC }, // 808 CV { REGISTRY_UNKNOWN }, // 809 DV { REGISTRY_UNKNOWN }, // 810 EV { REGISTRY_UNKNOWN }, // 811 FV { REGISTRY_UNKNOWN }, // 812 GV { REGISTRY_UNKNOWN }, // 813 HV { REGISTRY_UNKNOWN }, // 814 IV { REGISTRY_UNKNOWN }, // 815 JV { REGISTRY_UNKNOWN }, // 816 KV { REGISTRY_RIPENCC }, // 817 LV { REGISTRY_APNIC }, // 818 MV { REGISTRY_UNKNOWN }, // 819 NV { REGISTRY_UNKNOWN }, // 820 OV { REGISTRY_UNKNOWN }, // 821 PV { REGISTRY_UNKNOWN }, // 822 QV { REGISTRY_UNKNOWN }, // 823 RV { REGISTRY_LACNIC }, // 824 SV { REGISTRY_APNIC }, // 825 TV { REGISTRY_UNKNOWN }, // 826 UV { REGISTRY_UNKNOWN }, // 827 VV { REGISTRY_UNKNOWN }, // 828 WV { REGISTRY_UNKNOWN }, // 829 XV { REGISTRY_UNKNOWN }, // 830 YV { REGISTRY_UNKNOWN }, // 831 ZV { REGISTRY_LACNIC }, // 832 AW { REGISTRY_AFRINIC }, // 833 BW { REGISTRY_LACNIC }, // 834 CW { REGISTRY_UNKNOWN }, // 835 DW { REGISTRY_UNKNOWN }, // 836 EW { REGISTRY_UNKNOWN }, // 837 FW { REGISTRY_AFRINIC }, // 838 GW { REGISTRY_UNKNOWN }, // 839 HW { REGISTRY_UNKNOWN }, // 840 IW { REGISTRY_UNKNOWN }, // 841 JW { REGISTRY_RIPENCC }, // 842 KW { REGISTRY_UNKNOWN }, // 843 LW { REGISTRY_AFRINIC }, // 844 MW { REGISTRY_UNKNOWN }, // 845 NW { REGISTRY_UNKNOWN }, // 846 OW { REGISTRY_APNIC }, // 847 PW { REGISTRY_UNKNOWN }, // 848 QW { REGISTRY_AFRINIC }, // 849 RW { REGISTRY_UNKNOWN }, // 850 SW { REGISTRY_APNIC }, // 851 TW { REGISTRY_UNKNOWN }, // 852 UW { REGISTRY_UNKNOWN }, // 853 VW { REGISTRY_UNKNOWN }, // 854 WW { REGISTRY_UNKNOWN }, // 855 XW { REGISTRY_UNKNOWN }, // 856 YW { REGISTRY_AFRINIC }, // 857 ZW { REGISTRY_RIPENCC }, // 858 AX { REGISTRY_UNKNOWN }, // 859 BX { REGISTRY_UNKNOWN }, // 860 CX { REGISTRY_UNKNOWN }, // 861 DX { REGISTRY_UNKNOWN }, // 862 EX { REGISTRY_UNKNOWN }, // 863 FX { REGISTRY_UNKNOWN }, // 864 GX { REGISTRY_UNKNOWN }, // 865 HX { REGISTRY_UNKNOWN }, // 866 IX { REGISTRY_UNKNOWN }, // 867 JX { REGISTRY_UNKNOWN }, // 868 KX { REGISTRY_UNKNOWN }, // 869 LX { REGISTRY_LACNIC }, // 870 MX { REGISTRY_UNKNOWN }, // 871 NX { REGISTRY_UNKNOWN }, // 872 OX { REGISTRY_UNKNOWN }, // 873 PX { REGISTRY_UNKNOWN }, // 874 QX { REGISTRY_UNKNOWN }, // 875 RX { REGISTRY_LACNIC }, // 876 SX { REGISTRY_UNKNOWN }, // 877 TX { REGISTRY_UNKNOWN }, // 878 UX { REGISTRY_UNKNOWN }, // 879 VX { REGISTRY_UNKNOWN }, // 880 WX { REGISTRY_UNKNOWN }, // 881 XX { REGISTRY_UNKNOWN }, // 882 YX { REGISTRY_UNKNOWN }, // 883 ZX { REGISTRY_UNKNOWN }, // 884 AY { REGISTRY_RIPENCC }, // 885 BY { REGISTRY_RIPENCC }, // 886 CY { REGISTRY_UNKNOWN }, // 887 DY { REGISTRY_UNKNOWN }, // 888 EY { REGISTRY_UNKNOWN }, // 889 FY { REGISTRY_LACNIC }, // 890 GY { REGISTRY_UNKNOWN }, // 891 HY { REGISTRY_UNKNOWN }, // 892 IY { REGISTRY_UNKNOWN }, // 893 JY { REGISTRY_ARIN }, // 894 KY { REGISTRY_AFRINIC }, // 895 LY { REGISTRY_APNIC }, // 896 MY { REGISTRY_UNKNOWN }, // 897 NY { REGISTRY_UNKNOWN }, // 898 OY { REGISTRY_LACNIC }, // 899 PY { REGISTRY_UNKNOWN }, // 900 QY { REGISTRY_UNKNOWN }, // 901 RY { REGISTRY_RIPENCC }, // 902 SY { REGISTRY_UNKNOWN }, // 903 TY { REGISTRY_LACNIC }, // 904 UY { REGISTRY_UNKNOWN }, // 905 VY { REGISTRY_UNKNOWN }, // 906 WY { REGISTRY_UNKNOWN }, // 907 XY { REGISTRY_UNKNOWN }, // 908 YY { REGISTRY_UNKNOWN }, // 909 ZY { REGISTRY_RIPENCC }, // 910 AZ { REGISTRY_RIPENCC }, // 911 BZ { REGISTRY_RIPENCC }, // 912 CZ { REGISTRY_AFRINIC }, // 913 DZ { REGISTRY_UNKNOWN }, // 914 EZ { REGISTRY_UNKNOWN }, // 915 FZ { REGISTRY_UNKNOWN }, // 916 GZ { REGISTRY_UNKNOWN }, // 917 HZ { REGISTRY_UNKNOWN }, // 918 IZ { REGISTRY_UNKNOWN }, // 919 JZ { REGISTRY_RIPENCC }, // 920 KZ { REGISTRY_UNKNOWN }, // 921 LZ { REGISTRY_AFRINIC }, // 922 MZ { REGISTRY_APNIC }, // 923 NZ { REGISTRY_UNKNOWN }, // 924 OZ { REGISTRY_UNKNOWN }, // 925 PZ { REGISTRY_UNKNOWN }, // 926 QZ { REGISTRY_UNKNOWN }, // 927 RZ { REGISTRY_AFRINIC }, // 928 SZ { REGISTRY_AFRINIC }, // 929 TZ { REGISTRY_RIPENCC }, // 930 UZ { REGISTRY_UNKNOWN }, // 931 VZ { REGISTRY_UNKNOWN }, // 932 WZ { REGISTRY_UNKNOWN }, // 933 XZ { REGISTRY_UNKNOWN }, // 934 YZ { REGISTRY_UNKNOWN }, // 935 ZZ { REGISTRY_UNKNOWN }, // 936 reserved-special { REGISTRY_UNKNOWN }, // 937 reserved-special { REGISTRY_UNKNOWN }, // 938 reserved-special { REGISTRY_UNKNOWN }, // 939 reserved-special { REGISTRY_UNKNOWN }, // 940 reserved-special { REGISTRY_UNKNOWN }, // 941 reserved-special { REGISTRY_UNKNOWN }, // 942 reserved-special { REGISTRY_UNKNOWN }, // 943 reserved-special { REGISTRY_UNKNOWN }, // 944 reserved-special { REGISTRY_UNKNOWN }, // 945 reserved-special { REGISTRY_UNKNOWN }, // 946 reserved-special { REGISTRY_UNKNOWN }, // 947 reserved-special { REGISTRY_UNKNOWN }, // 948 reserved-special { REGISTRY_UNKNOWN }, // 949 reserved-special { REGISTRY_UNKNOWN }, // 950 reserved-special { REGISTRY_UNKNOWN }, // 951 reserved-special { REGISTRY_UNKNOWN }, // 952 reserved-special { REGISTRY_UNKNOWN }, // 953 reserved-special { REGISTRY_UNKNOWN }, // 954 reserved-special { REGISTRY_UNKNOWN }, // 955 reserved-special { REGISTRY_UNKNOWN }, // 956 reserved-special { REGISTRY_UNKNOWN }, // 957 reserved-special { REGISTRY_UNKNOWN }, // 958 reserved-special { REGISTRY_UNKNOWN }, // 959 reserved-special { REGISTRY_UNKNOWN }, // 960 reserved-special { REGISTRY_UNKNOWN }, // 961 reserved-special { REGISTRY_UNKNOWN }, // 962 reserved-special { REGISTRY_UNKNOWN }, // 963 reserved-special { REGISTRY_UNKNOWN }, // 964 reserved-special { REGISTRY_UNKNOWN }, // 965 reserved-special { REGISTRY_UNKNOWN }, // 966 reserved-special { REGISTRY_UNKNOWN }, // 967 reserved-special { REGISTRY_UNKNOWN }, // 968 reserved-special { REGISTRY_UNKNOWN }, // 969 reserved-special { REGISTRY_UNKNOWN }, // 970 reserved-special { REGISTRY_UNKNOWN }, // 971 reserved-special { REGISTRY_UNKNOWN }, // 972 reserved-special { REGISTRY_UNKNOWN }, // 973 reserved-special { REGISTRY_UNKNOWN }, // 974 reserved-special { REGISTRY_UNKNOWN }, // 975 reserved-special { REGISTRY_UNKNOWN }, // 976 reserved-special { REGISTRY_UNKNOWN }, // 977 reserved-special { REGISTRY_UNKNOWN }, // 978 reserved-special { REGISTRY_UNKNOWN }, // 979 reserved-special { REGISTRY_UNKNOWN }, // 980 reserved-special { REGISTRY_UNKNOWN }, // 981 reserved-special { REGISTRY_UNKNOWN }, // 982 reserved-special { REGISTRY_UNKNOWN }, // 983 reserved-special { REGISTRY_UNKNOWN }, // 984 reserved-special { REGISTRY_UNKNOWN }, // 985 reserved-special { REGISTRY_UNKNOWN }, // 986 reserved-special { REGISTRY_UNKNOWN }, // 987 reserved-special { REGISTRY_UNKNOWN }, // 988 reserved-special { REGISTRY_UNKNOWN }, // 989 reserved-special { REGISTRY_UNKNOWN }, // 990 reserved-special { REGISTRY_UNKNOWN }, // 991 reserved-special { REGISTRY_UNKNOWN }, // 992 reserved-special { REGISTRY_UNKNOWN }, // 993 reserved-special { REGISTRY_UNKNOWN }, // 994 reserved-special { REGISTRY_UNKNOWN }, // 995 reserved-special { REGISTRY_UNKNOWN }, // 996 reserved-special { REGISTRY_UNKNOWN }, // 997 reserved-special { REGISTRY_UNKNOWN }, // 998 reserved-special { REGISTRY_UNKNOWN }, // 999 reserved-special { REGISTRY_UNKNOWN }, // 1000 reserved-special { REGISTRY_UNKNOWN }, // 1001 reserved-special { REGISTRY_UNKNOWN }, // 1002 reserved-special { REGISTRY_UNKNOWN }, // 1003 reserved-special { REGISTRY_UNKNOWN }, // 1004 reserved-special { REGISTRY_UNKNOWN }, // 1005 reserved-special { REGISTRY_UNKNOWN }, // 1006 reserved-special { REGISTRY_UNKNOWN }, // 1007 reserved-special { REGISTRY_UNKNOWN }, // 1008 reserved-special { REGISTRY_UNKNOWN }, // 1009 reserved-special { REGISTRY_UNKNOWN }, // 1010 reserved-special { REGISTRY_UNKNOWN }, // 1011 reserved-special { REGISTRY_UNKNOWN }, // 1012 reserved-special { REGISTRY_UNKNOWN }, // 1013 reserved-special { REGISTRY_UNKNOWN }, // 1014 reserved-special { REGISTRY_UNKNOWN }, // 1015 reserved-special { REGISTRY_UNKNOWN }, // 1016 reserved-special { REGISTRY_UNKNOWN }, // 1017 reserved-special { REGISTRY_UNKNOWN }, // 1018 reserved-special { REGISTRY_UNKNOWN }, // 1019 reserved-special { REGISTRY_UNKNOWN }, // 1020 reserved-special { REGISTRY_UNKNOWN }, // 1021 reserved-special { REGISTRY_UNKNOWN }, // 1022 reserved-special { REGISTRY_UNKNOWN }, // 1023 reserved-special }; ipv6calc-4.1.0/databases/ieee-iab/000077500000000000000000000000001444154247200166215ustar00rootroot00000000000000ipv6calc-4.1.0/databases/ieee-iab/Makefile000066400000000000000000000014751444154247200202700ustar00rootroot00000000000000# Project : ipv6calc/databases/ieee-iab # File : Makefile # Version : $Id: fa19f658aada81c4f39e0a6726787a43d0060499 $ # Copyright : 2004-2021 by Peter Bieringer # # Information: # Makefile for ieee-iab FILE = iab.csv BASEURL = http://standards-oui.ieee.org/iab/ FILE_H = dbieee_iab.h TYPE = iab all: test -f $(FILE_H) || ${MAKE} update install: echo "Nothing to do" create: ../tools/create_ieee_headerfile.pl -c -t $(TYPE) -i $(FILE) -o $(FILE_H) -l ../../lib/libieee.c update: echo "Download new version of file" wget $(BASEURL)$(FILE) --timestamp ${MAKE} create updateclean: echo "Remove header file" rm -f $(FILE_H) ${MAKE} distclean distclean: echo "Remove database file" rm -f $(FILE) autoclean: echo "Nothing to do" clean: echo "Nothing to do" ipv6calc-4.1.0/databases/ieee-iab/README000066400000000000000000000002521444154247200175000ustar00rootroot00000000000000$Id: c495cc978eec333852a82c1e9d6a0cde5426b6f3 $ IAB database: URL: http://standards.ieee.org/regauth/oui/csv.txt File will be retrieved on-the-fly during "make update" ipv6calc-4.1.0/databases/ieee-iab/dbieee_iab.h000066400000000000000000012601731444154247200210340ustar00rootroot00000000000000/* * Project : ipv6calc * File : dbieee_iab.h * Version : $Id: e6ca05995d0c76b64c405d1d19f0f80070855e97 $ * Generated : Thu Jun 8 18:13:58 2023 * Data copyright: IEEE * * Information: * Additional header file for libipv6calc_db_wrapper_BuiltIn.c */ /*@unused@*/ static const char* libieee_iab_status __attribute__ ((__unused__)) = "IAB/20230608"; static const s_ieee_iab libieee_iab[] = { { 0x0050C2, 0x000000, 0x000FFF, "T.L.S. Corp.", "T-L-S" }, { 0x0050C2, 0x001000, 0x001FFF, "JMBS Developpements", "JMBS-DEVELOPPEMENTS" }, { 0x0050C2, 0x002000, 0x002FFF, "Integrated Automation Solutions", "INTEGRATED-AUTOMATION-SOLUTIONS" }, { 0x0050C2, 0x003000, 0x003FFF, "Microsoft", "MICROSOFT" }, { 0x0050C2, 0x004000, 0x004FFF, "SCI Technology Inc.", "SCI" }, { 0x0050C2, 0x005000, 0x005FFF, "GD California, Inc.", "GD-CALIFORNIA" }, { 0x0050C2, 0x006000, 0x006FFF, "Project Management Enterprises, Inc.", "PROJECT-MANAGEMENT-ENTERPRISES" }, { 0x0050C2, 0x007000, 0x007FFF, "Clive Green & Co. Ltd.", "CLIVE-GREEN" }, { 0x0050C2, 0x008000, 0x008FFF, "Portable Add-Ons", "PORTABLE-ADD-ONS" }, { 0x0050C2, 0x009000, 0x009FFF, "Datakinetics Ltd.", "DATAKINETICS" }, { 0x0050C2, 0x00A000, 0x00AFFF, "Tharsys", "THARSYS" }, { 0x0050C2, 0x00B000, 0x00BFFF, "IO Limited", "IO" }, { 0x0050C2, 0x00C000, 0x00CFFF, "Vbrick Systems Inc.", "VBRICK" }, { 0x0050C2, 0x00D000, 0x00DFFF, "Opus Telecom Inc.", "OPUS-TELECOM" }, { 0x0050C2, 0x00E000, 0x00EFFF, "TTTech", "TTTECH" }, { 0x0050C2, 0x00F000, 0x00FFFF, "XLN-t", "XLN-T" }, { 0x0050C2, 0x010000, 0x010FFF, "Moisture Systems", "MOISTURE" }, { 0x0050C2, 0x011000, 0x011FFF, "Bihl + Wiedemann GmbH", "BIHL-+-WIEDEMANN" }, { 0x0050C2, 0x012000, 0x012FFF, "Floware System Solutions Ltd.", "FLOWARE-SYSTEM-SOLUTIONS" }, { 0x0050C2, 0x013000, 0x013FFF, "Sensys Technologies Inc.", "SENSYS-TECHNOLOGIES" }, { 0x0050C2, 0x014000, 0x014FFF, "Canal +", "CANAL" }, { 0x0050C2, 0x015000, 0x015FFF, "LEROY AUTOMATION", "LEROY-AUTOMATION" }, { 0x0050C2, 0x016000, 0x016FFF, "DSP Design Ltd.", "DSP-DESIGN" }, { 0x0050C2, 0x017000, 0x017FFF, "Hunter Technology Inc.", "HUNTER" }, { 0x0050C2, 0x018000, 0x018FFF, "CAD-UL GmbH", "CAD-UL" }, { 0x0050C2, 0x019000, 0x019FFF, "Emtac Technology Corp.", "EMTAC" }, { 0x0050C2, 0x01A000, 0x01AFFF, "Skylake Talix", "SKYLAKE-TALIX" }, { 0x0050C2, 0x01B000, 0x01BFFF, "Cross Products Ltd.", "CROSS-PRODUCTS" }, { 0x0050C2, 0x01C000, 0x01CFFF, "Tadiran Scopus", "TADIRAN-SCOPUS" }, { 0x0050C2, 0x01D000, 0x01DFFF, "Princeton Gamma Tech", "PRINCETON-GAMMA-TECH" }, { 0x0050C2, 0x01E000, 0x01EFFF, "CallTech International Limited", "CALLTECH" }, { 0x0050C2, 0x01F000, 0x01FFFF, "KBS Industrieelektronik GmbH", "KBS-INDUSTRIEELEKTRONIK" }, { 0x0050C2, 0x020000, 0x020FFF, "Icon Research Ltd.", "ICON-RESEARCH" }, { 0x0050C2, 0x021000, 0x021FFF, "DRS Technologies Canada Co.", "DRS-TECHNOLOGIES-CANADA" }, { 0x0050C2, 0x022000, 0x022FFF, "Ashling Microsystems Ltd.", "ASHLING-MICROSYSTEMS" }, { 0x0050C2, 0x023000, 0x023FFF, "Zabacom, Inc.", "ZABACOM" }, { 0x0050C2, 0x024000, 0x024FFF, "IPITEK", "IPITEK" }, { 0x0050C2, 0x025000, 0x025FFF, "TERACOM TELEMATICA S.A", "TERACOM-TELEMATICA" }, { 0x0050C2, 0x026000, 0x026FFF, "Abatis Systems Corp.", "ABATIS" }, { 0x0050C2, 0x027000, 0x027FFF, "Industrial Control Links", "INDUSTRIAL-CONTROL-LINKS" }, { 0x0050C2, 0x028000, 0x028FFF, "The Frensch Corporation (Pty) Ltd.", "THE-FRENSCH-PTY" }, { 0x0050C2, 0x029000, 0x029FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x0050C2, 0x02A000, 0x02AFFF, "VersaLogic Corp.", "VERSALOGIC" }, { 0x0050C2, 0x02B000, 0x02BFFF, "Nova Engineering Inc.", "NOVA-ENGINEERING" }, { 0x0050C2, 0x02C000, 0x02CFFF, "Narrowband Telecommunications", "NARROWBAND-TELECOMMUNICATIONS" }, { 0x0050C2, 0x02D000, 0x02DFFF, "Innocor LTD", "INNOCOR" }, { 0x0050C2, 0x02E000, 0x02EFFF, "Turtle Mountain Corp", "TURTLE-MOUNTAIN" }, { 0x0050C2, 0x02F000, 0x02FFFF, "Sinetica Corp", "SINETICA" }, { 0x0050C2, 0x030000, 0x030FFF, "Lockheed Martin Tactical Defense Systems Eagan", "LOCKHEED-MARTIN-TACTICAL-DEFENSE-EAGAN" }, { 0x0050C2, 0x031000, 0x031FFF, "Eloquence Ltd", "ELOQUENCE" }, { 0x0050C2, 0x032000, 0x032FFF, "MotionIO", "MOTIONIO" }, { 0x0050C2, 0x033000, 0x033FFF, "Doble Engineering", "DOBLE-ENGINEERING" }, { 0x0050C2, 0x034000, 0x034FFF, "Ing. Buero W. Kanis GmbH", "ING-BUERO-W-KANIS" }, { 0x0050C2, 0x035000, 0x035FFF, "Alliant Techsystems, Inc.", "ALLIANT-TECHSYSTEMS" }, { 0x0050C2, 0x036000, 0x036FFF, "Arcturus Networks Inc.", "ARCTURUS-NETWORKS" }, { 0x0050C2, 0x037000, 0x037FFF, "E.I.S.M.", "E-I-S-M" }, { 0x0050C2, 0x038000, 0x038FFF, "Etheira Technologies", "ETHEIRA-TECHNOLOGIES" }, { 0x0050C2, 0x039000, 0x039FFF, "Apex Signal Corp", "APEX-SIGNAL" }, { 0x0050C2, 0x03A000, 0x03AFFF, "PLLB Elettronica SPA", "PLLB-ELETTRONICA-SPA" }, { 0x0050C2, 0x03B000, 0x03BFFF, "VNR Electronique SA", "VNR-ELECTRONIQUE" }, { 0x0050C2, 0x03C000, 0x03CFFF, "BrainBoxes Ltd", "BRAINBOXES" }, { 0x0050C2, 0x03D000, 0x03DFFF, "ISDN Gateway Technology AG", "ISDN-GATEWAY" }, { 0x0050C2, 0x03E000, 0x03EFFF, "MSU UK Ltd", "MSU-UK" }, { 0x0050C2, 0x03F000, 0x03FFFF, "Celotek Corp", "CELOTEK" }, { 0x0050C2, 0x040000, 0x040FFF, "MiSPO Co., Ltd.", "MISPO" }, { 0x0050C2, 0x041000, 0x041FFF, "Damler Chrysler Rail System (Signal) AB", "DAMLER-CHRYSLER-RAIL-SYSTEM-SIGNAL-AB" }, { 0x0050C2, 0x042000, 0x042FFF, "B.E.A.R. Solutions (Australasia) Pty, Ltd", "B-E-A-R-SOLUTIONS-AUSTRALASIA-PTY" }, { 0x0050C2, 0x043000, 0x043FFF, "Curtis, Inc.", "CURTIS" }, { 0x0050C2, 0x044000, 0x044FFF, "Private", "PRIVATE" }, { 0x0050C2, 0x045000, 0x045FFF, "Chase Manhattan Bank", "CHASE-MANHATTAN-BANK" }, { 0x0050C2, 0x046000, 0x046FFF, "Private", "PRIVATE" }, { 0x0050C2, 0x047000, 0x047FFF, "B. R. Electronics", "B-R-ELECTRONICS" }, { 0x0050C2, 0x048000, 0x048FFF, "Cybectec Inc.", "CYBECTEC" }, { 0x0050C2, 0x049000, 0x049FFF, "Computer Concepts Corp", "CONCEPTS" }, { 0x0050C2, 0x04A000, 0x04AFFF, "Telecom Analysis Systems, LP", "TELECOM-ANALYSIS-LP" }, { 0x0050C2, 0x04B000, 0x04BFFF, "Tecstar Demo Systems Division", "TECSTAR-DEMO-DIVISION" }, { 0x0050C2, 0x04C000, 0x04CFFF, "New Standard Engineering NV", "NEW-STANDARD-ENGINEERING-NV" }, { 0x0050C2, 0x04E000, 0x04EFFF, "Industrial Electronic Engineers, Inc.", "INDUSTRIAL-ENGINEERS" }, { 0x0050C2, 0x04F000, 0x04FFFF, "Luma Corporation", "LUMA" }, { 0x0050C2, 0x050000, 0x050FFF, "Dataprobe, Inc.", "DATAPROBE" }, { 0x0050C2, 0x051000, 0x051FFF, "JSR Ultrasonics", "JSR-ULTRASONICS" }, { 0x0050C2, 0x052000, 0x052FFF, "Mayo Foundation", "MAYO-FOUNDATION" }, { 0x0050C2, 0x054000, 0x054FFF, "Optionexist Limited", "OPTIONEXIST" }, { 0x0050C2, 0x055000, 0x055FFF, "San Castle Technologies, Inc.", "SAN-CASTLE-TECHNOLOGIES" }, { 0x0050C2, 0x056000, 0x056FFF, "Base 2", "BASE-2" }, { 0x0050C2, 0x057000, 0x057FFF, "Lite F GmBH", "LITE-F" }, { 0x0050C2, 0x058000, 0x058FFF, "Vision Research, Inc.", "VISION-RESEARCH" }, { 0x0050C2, 0x059000, 0x059FFF, "Austco Marketing & Service (USA) ltd.", "AUSTCO-MARKETING-SERVICE-USA" }, { 0x0050C2, 0x05A000, 0x05AFFF, "Sonifex Ltd", "SONIFEX" }, { 0x0050C2, 0x05B000, 0x05BFFF, "Radiometer Medical A/S", "RADIOMETER-MEDICAL-A/S" }, { 0x0050C2, 0x05C000, 0x05CFFF, "Nortel Networks PLC (UK)", "NORTEL-NETWORKS-PLC-UK" }, { 0x0050C2, 0x05D000, 0x05DFFF, "Ignitus Communications, LLC", "IGNITUS-COMMUNICATION" }, { 0x0050C2, 0x05E000, 0x05EFFF, "DIVA Systems", "DIVA" }, { 0x0050C2, 0x05F000, 0x05FFFF, "Malden Electronics Ltd", "MALDEN-ELECTRONICS" }, { 0x0050C2, 0x060000, 0x060FFF, "Private", "PRIVATE" }, { 0x0050C2, 0x061000, 0x061FFF, "Simple Network Magic Corporation", "SIMPLE-NETWORK-MAGIC" }, { 0x0050C2, 0x062000, 0x062FFF, "Private", "PRIVATE" }, { 0x0050C2, 0x063000, 0x063FFF, "Ticketmaster Corp", "TICKETMASTER" }, { 0x0050C2, 0x064000, 0x064FFF, "Private", "PRIVATE" }, { 0x0050C2, 0x065000, 0x065FFF, "Clever Devices", "CLEVER-DEVICES" }, { 0x0050C2, 0x066000, 0x066FFF, "Private", "PRIVATE" }, { 0x0050C2, 0x067000, 0x067FFF, "Riverlink Computers, Ltd.", "RIVERLINK-COMPUTERS" }, { 0x0050C2, 0x068000, 0x068FFF, "Seabridge", "SEABRIDGE" }, { 0x0050C2, 0x069000, 0x069FFF, "EC Elettronica S.R.L.", "EC-ELETTRONICA" }, { 0x0050C2, 0x06A000, 0x06AFFF, "Unimark", "UNIMARK" }, { 0x0050C2, 0x06B000, 0x06BFFF, "NCast Corporation", "NCAST" }, { 0x0050C2, 0x06C000, 0x06CFFF, "WaveCom Electronics, Inc.", "WAVECOM-ELECTRONICS" }, { 0x0050C2, 0x06D000, 0x06DFFF, "Advanced Signal Corp.", "ADVANCED-SIGNAL" }, { 0x0050C2, 0x06E000, 0x06EFFF, "Avtron Manufacturing Inc.", "AVTRON-MANUFACTURING" }, { 0x0050C2, 0x06F000, 0x06FFFF, "Digital Services Group", "DIGITAL-SERVICES-GROUP" }, { 0x0050C2, 0x070000, 0x070FFF, "Katchall Technologies Group", "KATCHALL-TECHNOLOGIES-GROUP" }, { 0x0050C2, 0x071000, 0x071FFF, "NetVision Telecom", "NETVISION-TELECOM" }, { 0x0050C2, 0x072000, 0x072FFF, "Neuberger Gebaeudeautomation GmbH & Co.", "NEUBERGER-GEBAEUDEAUTOMATION" }, { 0x0050C2, 0x073000, 0x073FFF, "Alstom Signalling Ltd.", "ALSTOM-SIGNALLING" }, { 0x0050C2, 0x074000, 0x074FFF, "Edge Tech Co., Ltd.", "EDGE-TECH" }, { 0x0050C2, 0x075000, 0x075FFF, "ENTTEC Pty Ltd.", "ENTTEC-PTY" }, { 0x0050C2, 0x076000, 0x076FFF, "Litton Guidance & Control Systems", "LITTON-GUIDANCE-CONTROL" }, { 0x0050C2, 0x077000, 0x077FFF, "Saco Smartvision Inc.", "SACO-SMARTVISION" }, { 0x0050C2, 0x078000, 0x078FFF, "Reselec AG", "RESELEC" }, { 0x0050C2, 0x079000, 0x079FFF, "Flextel S.p.A", "FLEXTEL" }, { 0x0050C2, 0x07A000, 0x07AFFF, "RadioTel", "RADIOTEL" }, { 0x0050C2, 0x07B000, 0x07BFFF, "Trikon Technologies Ltd.", "TRIKON-TECHNOLOGIES" }, { 0x0050C2, 0x07C000, 0x07CFFF, "PLLB elettronica spa", "PLLB-ELETTRONICA-SPA" }, { 0x0050C2, 0x07D000, 0x07DFFF, "Caspian Networks", "CASPIAN-NETWORKS" }, { 0x0050C2, 0x07E000, 0x07EFFF, "JL-teknik", "JL-TEKNIK" }, { 0x0050C2, 0x07F000, 0x07FFFF, "Dunti Corporation", "DUNTI" }, { 0x0050C2, 0x080000, 0x080FFF, "AIM", "AIM" }, { 0x0050C2, 0x081000, 0x081FFF, "Matuschek Messtechnik GmbH", "MATUSCHEK-MESSTECHNIK" }, { 0x0050C2, 0x082000, 0x082FFF, "GFI Chrono Time", "GFI-CHRONO-TIME" }, { 0x0050C2, 0x083000, 0x083FFF, "ard sa", "ARD" }, { 0x0050C2, 0x084000, 0x084FFF, "DIALOG4 System Engineering GmbH", "DIALOG4-SYSTEM-ENGINEERING" }, { 0x0050C2, 0x085000, 0x085FFF, "Crossport Systems", "CROSSPORT" }, { 0x0050C2, 0x086000, 0x086FFF, "Validyne Engineering Corp.", "VALIDYNE-ENGINEERING" }, { 0x0050C2, 0x087000, 0x087FFF, "Monitor Business Machines Ltd.", "MONITOR-BUSINESS-MACHINES" }, { 0x0050C2, 0x088000, 0x088FFF, "TELINC Corporation", "TELINC" }, { 0x0050C2, 0x089000, 0x089FFF, "Fenwal Italia S.P.A.", "FENWAL-ITALIA" }, { 0x0050C2, 0x08A000, 0x08AFFF, "Rising Edge Technologies", "RISING-EDGE-TECHNOLOGIES" }, { 0x0050C2, 0x08B000, 0x08BFFF, "HYPERCHIP Inc.", "HYPERCHIP" }, { 0x0050C2, 0x08C000, 0x08CFFF, "IP Unity", "IP-UNITY" }, { 0x0050C2, 0x08D000, 0x08DFFF, "Kylink Communications Corp.", "KYLINK-COMMUNICATION" }, { 0x0050C2, 0x08E000, 0x08EFFF, "BSQUARE", "BSQUARE" }, { 0x0050C2, 0x08F000, 0x08FFFF, "General Industries Argentina", "GENERAL-INDUSTRIES-ARGENTINA" }, { 0x0050C2, 0x090000, 0x090FFF, "Invensys Controls Network Systems", "INVENSYS-CONTROLS-NETWORK" }, { 0x0050C2, 0x091000, 0x091FFF, "StorLogic, Inc.", "STORLOGIC" }, { 0x0050C2, 0x092000, 0x092FFF, "DigitAll World Co., Ltd", "DIGITALL-WORLD" }, { 0x0050C2, 0x093000, 0x093FFF, "KOREALINK", "KOREALINK" }, { 0x0050C2, 0x094000, 0x094FFF, "Analytical Spectral Devices, Inc.", "ANALYTICAL-SPECTRAL-DEVICES" }, { 0x0050C2, 0x095000, 0x095FFF, "SEATECH", "SEATECH" }, { 0x0050C2, 0x096000, 0x096FFF, "Utronix Elektronikutreckling AB", "UTRONIX-ELEKTRONIKUTRECKLING-AB" }, { 0x0050C2, 0x097000, 0x097FFF, "IMV Invertomatic", "IMV-INVERTOMATIC" }, { 0x0050C2, 0x098000, 0x098FFF, "EPEL Industrial, S.A.", "EPEL-INDUSTRIAL" }, { 0x0050C2, 0x099000, 0x099FFF, "Case Information & Communications", "CASE-INFORMATION-COMMUNICATION" }, { 0x0050C2, 0x09A000, 0x09AFFF, "NBO Development Center Sekusui Chemical Co. Ltd.", "NBO-DEVELOPMENT-CENTER-SEKUSUI-CHEMICAL" }, { 0x0050C2, 0x09B000, 0x09BFFF, "Seffle Instrument AB", "SEFFLE-INSTRUMENT-AB" }, { 0x0050C2, 0x09C000, 0x09CFFF, "RF Applications, Inc.", "RF-APPLICATIONS" }, { 0x0050C2, 0x09D000, 0x09DFFF, "ZELPOS", "ZELPOS" }, { 0x0050C2, 0x09E000, 0x09EFFF, "Infinitec Networks, Inc.", "INFINITEC-NETWORKS" }, { 0x0050C2, 0x09F000, 0x09FFFF, "MetaWave Vedeo Systems", "METAWAVE-VEDEO" }, { 0x0050C2, 0x0A0000, 0x0A0FFF, "CYNAPS", "CYNAPS" }, { 0x0050C2, 0x0A1000, 0x0A1FFF, "Visable Genetics, Inc.", "VISABLE-GENETICS" }, { 0x0050C2, 0x0A2000, 0x0A2FFF, "Jäger Computergesteuerte Meßtechnik GmbH.", "JAEGER-COMPUTERGESTEUERTE-MESSTECHNIK" }, { 0x0050C2, 0x0A3000, 0x0A3FFF, "BaSyTec GmbH", "BASYTEC" }, { 0x0050C2, 0x0A4000, 0x0A4FFF, "Bounty Systems Pty Ltd.", "BOUNTY-PTY" }, { 0x0050C2, 0x0A5000, 0x0A5FFF, "Mobiltex Data Ltd.", "MOBILTEX-DATA" }, { 0x0050C2, 0x0A6000, 0x0A6FFF, "Arula Systems, Inc.", "ARULA" }, { 0x0050C2, 0x0A7000, 0x0A7FFF, "WaterCove Networks", "WATERCOVE-NETWORKS" }, { 0x0050C2, 0x0A8000, 0x0A8FFF, "Kaveri Networks", "KAVERI-NETWORKS" }, { 0x0050C2, 0x0A9000, 0x0A9FFF, "Radiant Networks Plc", "RADIANT-NETWORKS-PLC" }, { 0x0050C2, 0x0AA000, 0x0AAFFF, "Log-In, Inc.", "LOG-IN" }, { 0x0050C2, 0x0AB000, 0x0ABFFF, "Fastware.Net, LLC", "FASTWARE-NET" }, { 0x0050C2, 0x0AC000, 0x0ACFFF, "Honeywell GNO", "HONEYWELL-GNO" }, { 0x0050C2, 0x0AD000, 0x0ADFFF, "BMC Messsysteme GmbH", "BMC-MESSSYSTEME" }, { 0x0050C2, 0x0AE000, 0x0AEFFF, "Zarak Systems Corp.", "ZARAK" }, { 0x0050C2, 0x0AF000, 0x0AFFFF, "Latus Lightworks, Inc.", "LATUS-LIGHTWORKS" }, { 0x0050C2, 0x0B0000, 0x0B0FFF, "LMI Technologies", "LMI-TECHNOLOGIES" }, { 0x0050C2, 0x0B1000, 0x0B1FFF, "Beeline Networks, Inc.", "BEELINE-NETWORKS" }, { 0x0050C2, 0x0B2000, 0x0B2FFF, "R F Micro Devices", "R-F-MICRO-DEVICES" }, { 0x0050C2, 0x0B3000, 0x0B3FFF, "SMX Corporation", "SMX" }, { 0x0050C2, 0x0B4000, 0x0B4FFF, "Wavefly Corporation", "WAVEFLY" }, { 0x0050C2, 0x0B5000, 0x0B5FFF, "EXTREME COPPER, INC.", "EXTREME-COPPER" }, { 0x0050C2, 0x0B6000, 0x0B6FFF, "ApSecure Technologies (Canada), Inc.", "APSECURE-TECHNOLOGIES-CANADA" }, { 0x0050C2, 0x0B7000, 0x0B7FFF, "RYMIC", "RYMIC" }, { 0x0050C2, 0x0B8000, 0x0B8FFF, "LAN Controls, Inc.", "LAN-CONTROLS" }, { 0x0050C2, 0x0B9000, 0x0B9FFF, "Helmut Mauell GmbH Werk Weida", "HELMUT-MAUELL-WERK-WEIDA" }, { 0x0050C2, 0x0BA000, 0x0BAFFF, "Pro-Active", "PRO-ACTIVE" }, { 0x0050C2, 0x0BB000, 0x0BBFFF, "MAZet GmbH", "MAZET" }, { 0x0050C2, 0x0BC000, 0x0BCFFF, "Infolink Software AG", "INFOLINK-SOFTWARE" }, { 0x0050C2, 0x0BD000, 0x0BDFFF, "Tattile", "TATTILE" }, { 0x0050C2, 0x0BE000, 0x0BEFFF, "Stella Electronics & Tagging", "STELLA-ELECTRONICS-TAGGING" }, { 0x0050C2, 0x0BF000, 0x0BFFFF, "Private", "PRIVATE" }, { 0x0050C2, 0x0C0000, 0x0C0FFF, "Imigix Ltd.", "IMIGIX" }, { 0x0050C2, 0x0C1000, 0x0C1FFF, "Casabyte", "CASABYTE" }, { 0x0050C2, 0x0C2000, 0x0C2FFF, "Alchemy Semiconductor, Inc.", "ALCHEMY-SEMICONDUCTOR" }, { 0x0050C2, 0x0C3000, 0x0C3FFF, "Tonbu, Inc.", "TONBU" }, { 0x0050C2, 0x0C4000, 0x0C4FFF, "InterEpoch Technology,INC.", "INTEREPOCH" }, { 0x0050C2, 0x0C5000, 0x0C5FFF, "SAIA Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0x0C6000, 0x0C6FFF, "Advanced Medical Information Technologies, Inc.", "ADVANCED-MEDICAL-INFORMATION-TECHNOLOGIES" }, { 0x0050C2, 0x0C7000, 0x0C7FFF, "TransComm Technology System, Inc.", "TRANSCOMM-SYSTEM" }, { 0x0050C2, 0x0C8000, 0x0C8FFF, "The Trane Company", "THE-TRANE-COMPANY" }, { 0x0050C2, 0x0C9000, 0x0C9FFF, "DSS Networks, Inc.", "DSS-NETWORKS" }, { 0x0050C2, 0x0CA000, 0x0CAFFF, "J D Richards", "J-D-RICHARDS" }, { 0x0050C2, 0x0CB000, 0x0CBFFF, "STUDIEL", "STUDIEL" }, { 0x0050C2, 0x0CC000, 0x0CCFFF, "AlphaMedia Co., Ltd", "ALPHAMEDIA" }, { 0x0050C2, 0x0CD000, 0x0CDFFF, "LINET OY", "LINET-OY" }, { 0x0050C2, 0x0CE000, 0x0CEFFF, "RFL Electronics, Inc.", "RFL-ELECTRONICS" }, { 0x0050C2, 0x0CF000, 0x0CFFFF, "PCSC", "PCSC" }, { 0x0050C2, 0x0D0000, 0x0D0FFF, "Telefrang AB", "TELEFRANG-AB" }, { 0x0050C2, 0x0D1000, 0x0D1FFF, "Renaissance Networking, Inc.", "RENAISSANCE-NETWORKING" }, { 0x0050C2, 0x0D2000, 0x0D2FFF, "Real World Computing Partnership", "REAL-WORLD-COMPUTING-PARTNERSHIP" }, { 0x0050C2, 0x0D3000, 0x0D3FFF, "Lake Technology, Ltd.", "LAKE" }, { 0x0050C2, 0x0D4000, 0x0D4FFF, "Palm, Inc.", "PALM" }, { 0x0050C2, 0x0D5000, 0x0D5FFF, "Zelax", "ZELAX" }, { 0x0050C2, 0x0D6000, 0x0D6FFF, "Inco Startec GmbH", "INCO-STARTEC" }, { 0x0050C2, 0x0D7000, 0x0D7FFF, "Summit Avionics, Inc.", "SUMMIT-AVIONICS" }, { 0x0050C2, 0x0D8000, 0x0D8FFF, "Charlotte's Web Networks", "CHARLOTTE-S-WEB-NETWORKS" }, { 0x0050C2, 0x0D9000, 0x0D9FFF, "Loewe Opta GmbH", "LOEWE-OPTA" }, { 0x0050C2, 0x0DA000, 0x0DAFFF, "Motion Analysis Corp.", "MOTION-ANALYSIS" }, { 0x0050C2, 0x0DB000, 0x0DBFFF, "Cyberex", "CYBEREX" }, { 0x0050C2, 0x0DC000, 0x0DCFFF, "Elbit Systems Ltd.", "ELBIT" }, { 0x0050C2, 0x0DD000, 0x0DDFFF, "Interisa Electronica, S.A.", "INTERISA-ELECTRONICA" }, { 0x0050C2, 0x0DE000, 0x0DEFFF, "Frederick Engineering", "FREDERICK-ENGINEERING" }, { 0x0050C2, 0x0DF000, 0x0DFFFF, "Innovation Institute, Inc.", "INNOVATION-INSTITUTE" }, { 0x0050C2, 0x0E0000, 0x0E0FFF, "EMAC, Inc.", "EMAC" }, { 0x0050C2, 0x0E1000, 0x0E1FFF, "Inspiration Technology P/L", "INSPIRATION-P/L" }, { 0x0050C2, 0x0E2000, 0x0E2FFF, "Visual Circuits Corp.", "VISUAL-CIRCUITS" }, { 0x0050C2, 0x0E3000, 0x0E3FFF, "Lanex S.A.", "LANEX" }, { 0x0050C2, 0x0E4000, 0x0E4FFF, "Collabo Tec. Co., Ltd.", "COLLABO-TEC" }, { 0x0050C2, 0x0E5000, 0x0E5FFF, "Clearwater Networks", "CLEARWATER-NETWORKS" }, { 0x0050C2, 0x0E6000, 0x0E6FFF, "RouteFree, Inc.", "ROUTEFREE" }, { 0x0050C2, 0x0E7000, 0x0E7FFF, "Century Geophysical Corp.", "CENTURY-GEOPHYSICAL" }, { 0x0050C2, 0x0E8000, 0x0E8FFF, "Audio Design Associates, Inc.", "AUDIO-DESIGN-ASSOCIATES" }, { 0x0050C2, 0x0E9000, 0x0E9FFF, "Smartmedia LLC", "SMARTMEDIA" }, { 0x0050C2, 0x0EA000, 0x0EAFFF, "iReady Corporation", "IREADY" }, { 0x0050C2, 0x0EB000, 0x0EBFFF, "iREZ Technologies LLC", "IREZ-TECHNOLOGIES" }, { 0x0050C2, 0x0EC000, 0x0ECFFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0x0ED000, 0x0EDFFF, "Valley Products Corporation", "VALLEY-PRODUCTS" }, { 0x0050C2, 0x0EE000, 0x0EEFFF, "Industrial Indexing Systems, Inc.", "INDUSTRIAL-INDEXING" }, { 0x0050C2, 0x0EF000, 0x0EFFFF, "Movaz Networks, Inc.", "MOVAZ-NETWORKS" }, { 0x0050C2, 0x0F0000, 0x0F0FFF, "VHB Technologies, Inc.", "VHB-TECHNOLOGIES" }, { 0x0050C2, 0x0F1000, 0x0F1FFF, "Steelcase Inc.", "STEELCASE" }, { 0x0050C2, 0x0F2000, 0x0F2FFF, "KMS Systems, Inc.", "KMS" }, { 0x0050C2, 0x0F3000, 0x0F3FFF, "Young Computer Co., Ltd.", "YOUNG" }, { 0x0050C2, 0x0F4000, 0x0F4FFF, "Sysnet Co., Ltd.", "SYSNET" }, { 0x0050C2, 0x0F5000, 0x0F5FFF, "Spectra Technologies Holding Co., Ltd.", "SPECTRA-TECHNOLOGIES-HOLDING" }, { 0x0050C2, 0x0F6000, 0x0F6FFF, "Carl Baasel Lasertechnik GmbH", "CARL-BAASEL-LASERTECHNIK" }, { 0x0050C2, 0x0F7000, 0x0F7FFF, "Foss NIRSystems, Inc.", "FOSS-NIRSYSTEMS" }, { 0x0050C2, 0x0F8000, 0x0F8FFF, "Tecnint HTE SRL", "TECNINT-HTE-SRL" }, { 0x0050C2, 0x0F9000, 0x0F9FFF, "Raven Industries", "RAVEN-INDUSTRIES" }, { 0x0050C2, 0x0FA000, 0x0FAFFF, "GE Transportation Systems", "GE-TRANSPORTATION" }, { 0x0050C2, 0x0FB000, 0x0FBFFF, "PIUSYS Co., Ltd.", "PIUSYS" }, { 0x0050C2, 0x0FC000, 0x0FCFFF, "Kimmon Manufacturing Co., Ltd.", "KIMMON-MANUFACTURING" }, { 0x0050C2, 0x0FD000, 0x0FDFFF, "Inducomp Corporation", "INDUCOMP" }, { 0x0050C2, 0x0FE000, 0x0FEFFF, "Energy ICT", "ENERGY-ICT" }, { 0x0050C2, 0x0FF000, 0x0FFFFF, "IPAXS Corporation", "IPAXS" }, { 0x0050C2, 0x100000, 0x100FFF, "Corelatus A.B.", "CORELATUS-A-B" }, { 0x0050C2, 0x101000, 0x101FFF, "LAUD Electronic Design AS", "LAUD-DESIGN-AS" }, { 0x0050C2, 0x102000, 0x102FFF, "Million Tech Development Ltd.", "MILLION-TECH-DEVELOPMENT" }, { 0x0050C2, 0x103000, 0x103FFF, "Green Hills Software, Inc.", "GREEN-HILLS-SOFTWARE" }, { 0x0050C2, 0x104000, 0x104FFF, "Adescom Inc.", "ADESCOM" }, { 0x0050C2, 0x105000, 0x105FFF, "Lumentis AB", "LUMENTIS-AB" }, { 0x0050C2, 0x106000, 0x106FFF, "MATSUOKA", "MATSUOKA" }, { 0x0050C2, 0x107000, 0x107FFF, "NewHer Systems", "NEWHER" }, { 0x0050C2, 0x108000, 0x108FFF, "Balogh S.A.", "BALOGH" }, { 0x0050C2, 0x109000, 0x109FFF, "ITK Dr. Kassen GmbH", "ITK-DR-KASSEN" }, { 0x0050C2, 0x10A000, 0x10AFFF, "Quinx AG", "QUINX" }, { 0x0050C2, 0x10B000, 0x10BFFF, "MarekMicro GmbH", "MAREKMICRO" }, { 0x0050C2, 0x10C000, 0x10CFFF, "Photonic Bridges, Inc.", "PHOTONIC-BRIDGES" }, { 0x0050C2, 0x10D000, 0x10DFFF, "Implementa GmbH", "IMPLEMENTA" }, { 0x0050C2, 0x10E000, 0x10EFFF, "Unipower AB", "UNIPOWER-AB" }, { 0x0050C2, 0x10F000, 0x10FFFF, "Perceptics Corp.", "PERCEPTICS" }, { 0x0050C2, 0x110000, 0x110FFF, "QuesCom", "QUESCOM" }, { 0x0050C2, 0x111000, 0x111FFF, "Endusis Limited", "ENDUSIS" }, { 0x0050C2, 0x112000, 0x112FFF, "Compuworx", "COMPUWORX" }, { 0x0050C2, 0x113000, 0x113FFF, "Ace Electronics, Inc.", "ACE-ELECTRONICS" }, { 0x0050C2, 0x114000, 0x114FFF, "Quest Innovations", "QUEST-INNOVATIONS" }, { 0x0050C2, 0x115000, 0x115FFF, "Vidco, Inc.", "VIDCO" }, { 0x0050C2, 0x116000, 0x116FFF, "DSP Design, Ltd.", "DSP-DESIGN" }, { 0x0050C2, 0x117000, 0x117FFF, "Wintegra Ltd.", "WINTEGRA" }, { 0x0050C2, 0x118000, 0x118FFF, "Microbit 2.0 AB", "MICROBIT-2-0-AB" }, { 0x0050C2, 0x119000, 0x119FFF, "Global Opto Communication Tech. Corp", "GLOBAL-OPTO-COMMUNICATION-TECH" }, { 0x0050C2, 0x11A000, 0x11AFFF, "Teamaxess Ticketing GmbH", "TEAMAXESS-TICKETING" }, { 0x0050C2, 0x11B000, 0x11BFFF, "Digital Vision AB", "DIGITAL-VISION-AB" }, { 0x0050C2, 0x11C000, 0x11CFFF, "Stonefly Networks", "STONEFLY-NETWORKS" }, { 0x0050C2, 0x11D000, 0x11DFFF, "Destiny Networks, Inc.", "DESTINY-NETWORKS" }, { 0x0050C2, 0x11E000, 0x11EFFF, "Volvo Car Corporation", "VOLVO-CAR" }, { 0x0050C2, 0x11F000, 0x11FFFF, "CSS Industrie Computer GmbH", "CSS-INDUSTRIE" }, { 0x0050C2, 0x120000, 0x120FFF, "XStore, Inc.", "XSTORE" }, { 0x0050C2, 0x121000, 0x121FFF, "COE Limited", "COE" }, { 0x0050C2, 0x122000, 0x122FFF, "Diva Systems", "DIVA" }, { 0x0050C2, 0x123000, 0x123FFF, "Seranoa Networks, Inc.", "SERANOA-NETWORKS" }, { 0x0050C2, 0x124000, 0x124FFF, "Tokai Soft Corporation", "TOKAI-SOFT" }, { 0x0050C2, 0x125000, 0x125FFF, "Tecwings GmBh", "TECWINGS" }, { 0x0050C2, 0x126000, 0x126FFF, "MaxLinear Hispania S.L.U.", "MAXLINEAR-HISPANIA-S-L-U" }, { 0x0050C2, 0x127000, 0x127FFF, "TPA Traffic & Parking Automation BV", "TPA-TRAFFIC-PARKING-AUTOMATION" }, { 0x0050C2, 0x128000, 0x128FFF, "Pycon, Inc.", "PYCON" }, { 0x0050C2, 0x129000, 0x129FFF, "TTPCom Ltd.", "TTPCOM" }, { 0x0050C2, 0x12A000, 0x12AFFF, "Symbolic Sound Corp.", "SYMBOLIC-SOUND" }, { 0x0050C2, 0x12B000, 0x12BFFF, "Dong A Eltek Co., Ltd.", "DONG-A-ELTEK" }, { 0x0050C2, 0x12C000, 0x12CFFF, "DELTA TAU DATA SYSTEMS, INC.", "DELTA-TAU-DATA" }, { 0x0050C2, 0x12D000, 0x12DFFF, "Megisto Systems, Inc.", "MEGISTO" }, { 0x0050C2, 0x12E000, 0x12EFFF, "RUNCOM", "RUNCOM" }, { 0x0050C2, 0x12F000, 0x12FFFF, "Haag-Streit AG", "HAAG-STREIT" }, { 0x0050C2, 0x130000, 0x130FFF, "U.S. Traffic Corporation", "U-S-TRAFFIC" }, { 0x0050C2, 0x131000, 0x131FFF, "InBus Engineering, Inc.", "INBUS-ENGINEERING" }, { 0x0050C2, 0x132000, 0x132FFF, "Procon Electronics", "PROCON-ELECTRONICS" }, { 0x0050C2, 0x133000, 0x133FFF, "ChipWrights, Inc.", "CHIPWRIGHTS" }, { 0x0050C2, 0x134000, 0x134FFF, "DRS Photronics", "DRS-PHOTRONICS" }, { 0x0050C2, 0x135000, 0x135FFF, "ELAD SRL", "ELAD-SRL" }, { 0x0050C2, 0x136000, 0x136FFF, "Tensilica, Inc.", "TENSILICA" }, { 0x0050C2, 0x137000, 0x137FFF, "Uniwell Systems (UK) Ltd.", "UNIWELL-UK" }, { 0x0050C2, 0x138000, 0x138FFF, "Delphin Technology AG", "DELPHIN" }, { 0x0050C2, 0x139000, 0x139FFF, "SR RESEARCH LTD", "SR-RESEARCH" }, { 0x0050C2, 0x13A000, 0x13AFFF, "Tex Computer SRL", "TEX-SRL" }, { 0x0050C2, 0x13B000, 0x13BFFF, "Vaisala Oyj", "VAISALA-OYJ" }, { 0x0050C2, 0x13C000, 0x13CFFF, "NBG Industrial Automation B.V.", "NBG-INDUSTRIAL-AUTOMATION-B-V" }, { 0x0050C2, 0x13D000, 0x13DFFF, "Formula One Management Ltd.", "FORMULA-ONE-MANAGEMENT" }, { 0x0050C2, 0x13E000, 0x13EFFF, "AVerMedia Systems, Inc.", "AVERMEDIA" }, { 0x0050C2, 0x13F000, 0x13FFFF, "Sentito Networks", "SENTITO-NETWORKS" }, { 0x0050C2, 0x140000, 0x140FFF, "ITS, Inc.", "ITS" }, { 0x0050C2, 0x141000, 0x141FFF, "Time Terminal Adductor Group AB", "TIME-TERMINAL-ADDUCTOR-GROUP-AB" }, { 0x0050C2, 0x142000, 0x142FFF, "Instrumeter A/S", "INSTRUMETER-A/S" }, { 0x0050C2, 0x143000, 0x143FFF, "AARTESYS AG", "AARTESYS" }, { 0x0050C2, 0x144000, 0x144FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x145000, 0x145FFF, "ELC Lighting", "ELC-LIGHTING" }, { 0x0050C2, 0x146000, 0x146FFF, "APCON, Inc.", "APCON" }, { 0x0050C2, 0x147000, 0x147FFF, "UniSUR", "UNISUR" }, { 0x0050C2, 0x148000, 0x148FFF, "Alltec GmbH", "ALLTEC" }, { 0x0050C2, 0x149000, 0x149FFF, "Haag-Streit AG", "HAAG-STREIT" }, { 0x0050C2, 0x14A000, 0x14AFFF, "DYCEC, S.A.", "DYCEC" }, { 0x0050C2, 0x14B000, 0x14BFFF, "HECUBA Elektronik", "HECUBA-ELEKTRONIK" }, { 0x0050C2, 0x14C000, 0x14CFFF, "Optibase Ltd.", "OPTIBASE" }, { 0x0050C2, 0x14D000, 0x14DFFF, "wellink, Ltd.", "WELLINK" }, { 0x0050C2, 0x14E000, 0x14EFFF, "Corinex Global", "CORINEX-GLOBAL" }, { 0x0050C2, 0x14F000, 0x14FFFF, "Telephonics Corp.", "TELEPHONICS" }, { 0x0050C2, 0x150000, 0x150FFF, "Torse", "TORSE" }, { 0x0050C2, 0x151000, 0x151FFF, "Redux Communications Ltd.", "REDUX-COMMUNICATION" }, { 0x0050C2, 0x152000, 0x152FFF, "AirVast Technology Inc.", "AIRVAST" }, { 0x0050C2, 0x153000, 0x153FFF, "Advanced Devices SpA", "ADVANCED-DEVICES-SPA" }, { 0x0050C2, 0x154000, 0x154FFF, "Jostra AB", "JOSTRA-AB" }, { 0x0050C2, 0x155000, 0x155FFF, "Enea Real Time AB", "ENEA-REAL-TIME-AB" }, { 0x0050C2, 0x156000, 0x156FFF, "CommServ Solutions Inc.", "COMMSERV-SOLUTIONS" }, { 0x0050C2, 0x157000, 0x157FFF, "nCore, Inc.", "NCORE" }, { 0x0050C2, 0x158000, 0x158FFF, "Communication Solutions, Inc.", "COMMUNICATION-SOLUTIONS" }, { 0x0050C2, 0x159000, 0x159FFF, "Standard Comm. Corp.", "STANDARD-COMM" }, { 0x0050C2, 0x15A000, 0x15AFFF, "Plextek Limited", "PLEXTEK" }, { 0x0050C2, 0x15B000, 0x15BFFF, "Dune Networks", "DUNE-NETWORKS" }, { 0x0050C2, 0x15C000, 0x15CFFF, "Aoptix Technologies", "AOPTIX-TECHNOLOGIES" }, { 0x0050C2, 0x15D000, 0x15DFFF, "Cepheid", "CEPHEID" }, { 0x0050C2, 0x15E000, 0x15EFFF, "Celite Systems, Inc.", "CELITE" }, { 0x0050C2, 0x15F000, 0x15FFFF, "Pulsar GmbH", "PULSAR" }, { 0x0050C2, 0x160000, 0x160FFF, "TTI - Telecom International Ltd.", "TTI-TELECOM" }, { 0x0050C2, 0x161000, 0x161FFF, "J&B Engineering Group S.L.", "J-B-ENGINEERING-GROUP" }, { 0x0050C2, 0x162000, 0x162FFF, "Teseda Corporation", "TESEDA" }, { 0x0050C2, 0x163000, 0x163FFF, "Computerwise, Inc.", "COMPUTERWISE" }, { 0x0050C2, 0x164000, 0x164FFF, "Acunia N.V.", "ACUNIA-N-V" }, { 0x0050C2, 0x165000, 0x165FFF, "IPCAST", "IPCAST" }, { 0x0050C2, 0x166000, 0x166FFF, "Infineer Ltd.", "INFINEER" }, { 0x0050C2, 0x167000, 0x167FFF, "Precision Filters, Inc.", "PRECISION-FILTERS" }, { 0x0050C2, 0x168000, 0x168FFF, "ExtremeSpeed Inc.", "EXTREMESPEED" }, { 0x0050C2, 0x169000, 0x169FFF, "Nordson Corp.", "NORDSON" }, { 0x0050C2, 0x16A000, 0x16AFFF, "Time Domain", "TIME-DOMAIN" }, { 0x0050C2, 0x16B000, 0x16BFFF, "Masterclock, Inc.", "MASTERCLOCK" }, { 0x0050C2, 0x16C000, 0x16CFFF, "Brijing Embedor Embedded Internet Tech. Co. Ltd.", "BRIJING-EMBEDOR-EMBEDDED-INTERNET-TECH" }, { 0x0050C2, 0x16D000, 0x16DFFF, "Postec Data Systems Ltd.", "POSTEC-DATA" }, { 0x0050C2, 0x16E000, 0x16EFFF, "PMC", "PMC" }, { 0x0050C2, 0x16F000, 0x16FFFF, "Dickson Technologies", "DICKSON-TECHNOLOGIES" }, { 0x0050C2, 0x170000, 0x170FFF, "Taishodo Seiko Co., Ltd.", "TAISHODO-SEIKO" }, { 0x0050C2, 0x171000, 0x171FFF, "Quantronix, Inc.", "QUANTRONIX" }, { 0x0050C2, 0x172000, 0x172FFF, "SAET I.S. S.r.l.", "SAET-I-S" }, { 0x0050C2, 0x173000, 0x173FFF, "DeMeTec GmbH", "DEMETEC" }, { 0x0050C2, 0x174000, 0x174FFF, "N&P Technologies", "N-P-TECHNOLOGIES" }, { 0x0050C2, 0x175000, 0x175FFF, "Sei S.p.A.", "SEI" }, { 0x0050C2, 0x176000, 0x176FFF, "Wavium AB", "WAVIUM-AB" }, { 0x0050C2, 0x177000, 0x177FFF, "Unicoi Systems", "UNICOI" }, { 0x0050C2, 0x178000, 0x178FFF, "Partner Voxstream A/S", "PARTNER-VOXSTREAM-A/S" }, { 0x0050C2, 0x179000, 0x179FFF, "Verifiber LLC", "VERIFIBER" }, { 0x0050C2, 0x17A000, 0x17AFFF, "WOLF Advanced Technology.", "WOLF-ADVANCED" }, { 0x0050C2, 0x17B000, 0x17BFFF, "Broadstorm Telecom", "BROADSTORM-TELECOM" }, { 0x0050C2, 0x17C000, 0x17CFFF, "Jeffress Engineering Pty Ltd", "JEFFRESS-ENGINEERING-PTY" }, { 0x0050C2, 0x17D000, 0x17DFFF, "Cognex Corporation", "COGNEX" }, { 0x0050C2, 0x17E000, 0x17EFFF, "Binary Wave Technologies Inc.", "BINARY-WAVE-TECHNOLOGIES" }, { 0x0050C2, 0x17F000, 0x17FFFF, "PDQ Manufacturing", "PDQ-MANUFACTURING" }, { 0x0050C2, 0x180000, 0x180FFF, "Zultys Technologies", "ZULTYS-TECHNOLOGIES" }, { 0x0050C2, 0x181000, 0x181FFF, "Task 84 Spa", "TASK-84-SPA" }, { 0x0050C2, 0x182000, 0x182FFF, "wolf-inf-tec", "WOLF-INF-TEC" }, { 0x0050C2, 0x183000, 0x183FFF, "Mixbaal S.A. de C.V.", "MIXBAAL-DE-C-V" }, { 0x0050C2, 0x184000, 0x184FFF, "H M Computing Limited", "H-M-COMPUTING" }, { 0x0050C2, 0x185000, 0x185FFF, "Optical Wireless Link Inc.", "OPTICAL-WIRELESS-LINK" }, { 0x0050C2, 0x186000, 0x186FFF, "Pantec Engineering AG", "PANTEC-ENGINEERING" }, { 0x0050C2, 0x187000, 0x187FFF, "Cyan Technology Ltd", "CYAN" }, { 0x0050C2, 0x188000, 0x188FFF, "dresden-elektronik", "DRESDEN-ELEKTRONIK" }, { 0x0050C2, 0x189000, 0x189FFF, "CC Systems AB", "CC-AB" }, { 0x0050C2, 0x18A000, 0x18AFFF, "Basler Electric Company", "BASLER-ELECTRIC-COMPANY" }, { 0x0050C2, 0x18B000, 0x18BFFF, "Teradyne Inc.", "TERADYNE" }, { 0x0050C2, 0x18C000, 0x18CFFF, "Technodrive srl", "TECHNODRIVE-SRL" }, { 0x0050C2, 0x18D000, 0x18DFFF, "CCII Systems (Pty) Ltd", "CCII-PTY" }, { 0x0050C2, 0x18E000, 0x18EFFF, "SPARR ELECTRONICS LTD", "SPARR-ELECTRONICS" }, { 0x0050C2, 0x18F000, 0x18FFFF, "MATSUI MFG CO.,LTD", "MATSUI-MFG" }, { 0x0050C2, 0x190000, 0x190FFF, "Goerlitz AG", "GOERLITZ" }, { 0x0050C2, 0x191000, 0x191FFF, "Partner Voxstream A/S", "PARTNER-VOXSTREAM-A/S" }, { 0x0050C2, 0x192000, 0x192FFF, "Advanced Concepts, Inc.", "ADVANCED-CONCEPTS" }, { 0x0050C2, 0x193000, 0x193FFF, "LaserBit Communications Corp.", "LASERBIT-COMMUNICATION" }, { 0x0050C2, 0x194000, 0x194FFF, "Cominfo, Inc.", "COMINFO" }, { 0x0050C2, 0x195000, 0x195FFF, "Momentum Data Systems", "MOMENTUM-DATA" }, { 0x0050C2, 0x196000, 0x196FFF, "Netsynt Spa", "NETSYNT-SPA" }, { 0x0050C2, 0x197000, 0x197FFF, "EPM Tecnologia e Equipamentos", "EPM-TECNOLOGIA-E-EQUIPAMENTOS" }, { 0x0050C2, 0x198000, 0x198FFF, "PotsTek, Inc", "POTSTEK" }, { 0x0050C2, 0x199000, 0x199FFF, "Survalent Technology Corporation", "SURVALENT" }, { 0x0050C2, 0x19A000, 0x19AFFF, "AZIO TECHNOLOGY CO.", "AZIO" }, { 0x0050C2, 0x19B000, 0x19BFFF, "Wilcoxon Research, Inc.", "WILCOXON-RESEARCH" }, { 0x0050C2, 0x19C000, 0x19CFFF, "Artec Design", "ARTEC-DESIGN" }, { 0x0050C2, 0x19D000, 0x19DFFF, "ELECTREX S.R.L", "ELECTREX" }, { 0x0050C2, 0x19E000, 0x19EFFF, "Paltronics, Inc.", "PALTRONICS" }, { 0x0050C2, 0x19F000, 0x19FFFF, "Fleetwood Electronics Ltd", "FLEETWOOD-ELECTRONICS" }, { 0x0050C2, 0x1A0000, 0x1A0FFF, "SCA Data Systems", "SCA-DATA" }, { 0x0050C2, 0x1A1000, 0x1A1FFF, "Portalplayer, Inc", "PORTALPLAYER" }, { 0x0050C2, 0x1A2000, 0x1A2FFF, "ABB Switzerland Inc", "ABB-SWITZERLAND" }, { 0x0050C2, 0x1A3000, 0x1A3FFF, "Tidel Engineering, L.P.", "TIDEL-ENGINEERING-L-P" }, { 0x0050C2, 0x1A4000, 0x1A4FFF, "Protech Optronics Co. Ltd.", "PROTECH-OPTRONICS" }, { 0x0050C2, 0x1A5000, 0x1A5FFF, "NORCO", "NORCO" }, { 0x0050C2, 0x1A6000, 0x1A6FFF, "RF Code", "RF-CODE" }, { 0x0050C2, 0x1A7000, 0x1A7FFF, "Alpha Beta Technologies, Inc.", "ALPHA-BETA-TECHNOLOGIES" }, { 0x0050C2, 0x1A8000, 0x1A8FFF, "ANOVA BROADBAND", "ANOVA-BROADBAND" }, { 0x0050C2, 0x1A9000, 0x1A9FFF, "Axotec Technologies GmbH", "AXOTEC-TECHNOLOGIES" }, { 0x0050C2, 0x1AA000, 0x1AAFFF, "BitBox Ltd", "BITBOX" }, { 0x0050C2, 0x1AB000, 0x1ABFFF, "Streaming Networks", "STREAMING-NETWORKS" }, { 0x0050C2, 0x1AC000, 0x1ACFFF, "Beckmann+Egle GmbH", "BECKMANN+EGLE" }, { 0x0050C2, 0x1AD000, 0x1ADFFF, "Remia s.r.o.", "REMIA-S-R-O" }, { 0x0050C2, 0x1AE000, 0x1AEFFF, "Home Director, Inc", "HOME-DIRECTOR" }, { 0x0050C2, 0x1AF000, 0x1AFFFF, "PESA Inc.", "PESA" }, { 0x0050C2, 0x1B0000, 0x1B0FFF, "BLANKOM Antennentechnik GmbH", "BLANKOM-ANTENNENTECHNIK" }, { 0x0050C2, 0x1B1000, 0x1B1FFF, "Axes Technologies", "AXES-TECHNOLOGIES" }, { 0x0050C2, 0x1B2000, 0x1B2FFF, "SIGOS Systemintegration GmbH", "SIGOS-SYSTEMINTEGRATION" }, { 0x0050C2, 0x1B3000, 0x1B3FFF, "DSP DESIGN", "DSP-DESIGN" }, { 0x0050C2, 0x1B4000, 0x1B4FFF, "DSP Group Inc.", "DSP-GROUP" }, { 0x0050C2, 0x1B5000, 0x1B5FFF, "Thrane & Thrane A/S", "THRANE-THRANE-A/S" }, { 0x0050C2, 0x1B6000, 0x1B6FFF, "DTS, Inc.", "DTS" }, { 0x0050C2, 0x1B7000, 0x1B7FFF, "MosChip USA", "MOSCHIP-USA" }, { 0x0050C2, 0x1B8000, 0x1B8FFF, "Electronic Systems Development", "DEVELOPMENT" }, { 0x0050C2, 0x1B9000, 0x1B9FFF, "EmCom Technology Inc.", "EMCOM" }, { 0x0050C2, 0x1BA000, 0x1BAFFF, "INTERZEAG AG", "INTERZEAG" }, { 0x0050C2, 0x1BB000, 0x1BBFFF, "Email Metering", "EMAIL-METERING" }, { 0x0050C2, 0x1BC000, 0x1BCFFF, "DINEC International", "DINEC" }, { 0x0050C2, 0x1BD000, 0x1BDFFF, "AIOI Systems Co., Ltd.", "AIOI" }, { 0x0050C2, 0x1BE000, 0x1BEFFF, "Sedia Electronics", "SEDIA-ELECTRONICS" }, { 0x0050C2, 0x1BF000, 0x1BFFFF, "International Test & Engineering Services Co.,Ltd.", "TEST-ENGINEERING-SERVICES" }, { 0x0050C2, 0x1C0000, 0x1C0FFF, "WillMonius Inc.", "WILLMONIUS" }, { 0x0050C2, 0x1C1000, 0x1C1FFF, "InfinitiNetworks Inc.", "INFINITINETWORKS" }, { 0x0050C2, 0x1C2000, 0x1C2FFF, "Weltronics Corp.", "WELTRONICS" }, { 0x0050C2, 0x1C3000, 0x1C3FFF, "TT electronics plc", "TT-ELECTRONICS-PLC" }, { 0x0050C2, 0x1C4000, 0x1C4FFF, "Palm Solutions Group", "PALM-SOLUTIONS-GROUP" }, { 0x0050C2, 0x1C5000, 0x1C5FFF, "Flander Oy", "FLANDER-OY" }, { 0x0050C2, 0x1C6000, 0x1C6FFF, "Remco Italia Spa", "REMCO-ITALIA-SPA" }, { 0x0050C2, 0x1C7000, 0x1C7FFF, "TWIN DEVELOPMENT S.A.", "TWIN-DEVELOPMENT" }, { 0x0050C2, 0x1C8000, 0x1C8FFF, "Euphony technology CO., LTD.", "EUPHONY" }, { 0x0050C2, 0x1C9000, 0x1C9FFF, "modas GmbH", "MODAS" }, { 0x0050C2, 0x1CA000, 0x1CAFFF, "EVER Sp. z o.o.", "EVER-SP-Z-O-O" }, { 0x0050C2, 0x1CB000, 0x1CBFFF, "quantumBEAM Limited", "QUANTUMBEAM" }, { 0x0050C2, 0x1CC000, 0x1CCFFF, "WaveIP", "WAVEIP" }, { 0x0050C2, 0x1CD000, 0x1CDFFF, "INCAA Informatica Italia srl", "INCAA-INFORMATICA-ITALIA-SRL" }, { 0x0050C2, 0x1CE000, 0x1CEFFF, "Datatek Applications, Inc.", "DATATEK-APPLICATIONS" }, { 0x0050C2, 0x1CF000, 0x1CFFFF, "LIFETIME MEMORY PRODUCTS, INC.", "LIFETIME-MEMORY-PRODUCTS" }, { 0x0050C2, 0x1D0000, 0x1D0FFF, "Yazaki North America, Inc.", "YAZAKI-NORTH-AMERICA" }, { 0x0050C2, 0x1D1000, 0x1D1FFF, "Benchmark Electronics", "BENCHMARK-ELECTRONICS" }, { 0x0050C2, 0x1D2000, 0x1D2FFF, "Shenyang Internet Technology Inc", "SHENYANG-INTERNET" }, { 0x0050C2, 0x1D3000, 0x1D3FFF, "Synopsys", "SYNOPSYS" }, { 0x0050C2, 0x1D4000, 0x1D4FFF, "Phase IV Engineering Inc.", "PHASE-IV-ENGINEERING" }, { 0x0050C2, 0x1D5000, 0x1D5FFF, "Redpoint Controls", "REDPOINT-CONTROLS" }, { 0x0050C2, 0x1D6000, 0x1D6FFF, "shanghai trend intelligent systems CO.,LTD", "SHANGHAI-TREND-INTELLIGENT" }, { 0x0050C2, 0x1D7000, 0x1D7FFF, "Pleora Technologies Inc.", "PLEORA-TECHNOLOGIES" }, { 0x0050C2, 0x1D8000, 0x1D8FFF, "Guardian Controls International Ltd", "GUARDIAN-CONTROLS" }, { 0x0050C2, 0x1D9000, 0x1D9FFF, "EDC", "EDC" }, { 0x0050C2, 0x1DA000, 0x1DAFFF, "GFI Chrono Time", "GFI-CHRONO-TIME" }, { 0x0050C2, 0x1DB000, 0x1DBFFF, "Applied Systems Engineering, Inc.", "APPLIED-ENGINEERING" }, { 0x0050C2, 0x1DC000, 0x1DCFFF, "Imarda New Zealand Limited", "IMARDA-NEW-ZEALAND" }, { 0x0050C2, 0x1DD000, 0x1DDFFF, "peiker acustic GmbH", "PEIKER-ACUSTIC" }, { 0x0050C2, 0x1DE000, 0x1DEFFF, "ReliOn Inc.", "RELION" }, { 0x0050C2, 0x1DF000, 0x1DFFFF, "Lulea University of Technology", "LULEA-UNIVERSITY-OF" }, { 0x0050C2, 0x1E0000, 0x1E0FFF, "Cognex Corporation", "COGNEX" }, { 0x0050C2, 0x1E1000, 0x1E1FFF, "Automaatiotekniikka Seppo Saari Oy", "AUTOMAATIOTEKNIIKKA-SEPPO-SAARI-OY" }, { 0x0050C2, 0x1E2000, 0x1E2FFF, "DIGITRONIC Automationsanlagen GmbH", "DIGITRONIC-AUTOMATIONSANLAGEN" }, { 0x0050C2, 0x1E3000, 0x1E3FFF, "Bluesocket, Inc.", "BLUESOCKET" }, { 0x0050C2, 0x1E4000, 0x1E4FFF, "Soronti, Inc.", "SORONTI" }, { 0x0050C2, 0x1E5000, 0x1E5FFF, "DORLET SAU", "DORLET-SAU" }, { 0x0050C2, 0x1E6000, 0x1E6FFF, "United Tri-Tech Corporation", "UNITED-TRI-TECH" }, { 0x0050C2, 0x1E7000, 0x1E7FFF, "Smith Meter, Inc.", "SMITH-METER" }, { 0x0050C2, 0x1E8000, 0x1E8FFF, "Metrotech", "METROTECH" }, { 0x0050C2, 0x1E9000, 0x1E9FFF, "Ranch Networks", "RANCH-NETWORKS" }, { 0x0050C2, 0x1EA000, 0x1EAFFF, "DAVE SRL", "DAVE-SRL" }, { 0x0050C2, 0x1EB000, 0x1EBFFF, "Data Respons A/S", "DATA-RESPONS-A/S" }, { 0x0050C2, 0x1EC000, 0x1ECFFF, "COSMO co.,ltd.", "COSMO" }, { 0x0050C2, 0x1ED000, 0x1EDFFF, "EMKA-electronic AG", "EMKA" }, { 0x0050C2, 0x1EE000, 0x1EEFFF, "Perto Periféricos de Automação S.A.", "PERTO-PERIFRICOS-DE-AUTOMAO" }, { 0x0050C2, 0x1EF000, 0x1EFFFF, "M2 Technology Pty Ltd", "M2-PTY" }, { 0x0050C2, 0x1F0000, 0x1F0FFF, "EXI Wireless Systems Inc.", "EXI-WIRELESS" }, { 0x0050C2, 0x1F1000, 0x1F1FFF, "SKY Computers, Inc.", "SKY-COMPUTERS" }, { 0x0050C2, 0x1F2000, 0x1F2FFF, "Tattile srl", "TATTILE-SRL" }, { 0x0050C2, 0x1F3000, 0x1F3FFF, "Radionor Communications", "RADIONOR-COMMUNICATION" }, { 0x0050C2, 0x1F4000, 0x1F4FFF, "Covia, Inc", "COVIA" }, { 0x0050C2, 0x1F5000, 0x1F5FFF, "Abest Communication Corp.", "ABEST-COMMUNICATION" }, { 0x0050C2, 0x1F6000, 0x1F6FFF, "BAE SYSTEMS Controls", "BAE-CONTROLS" }, { 0x0050C2, 0x1F7000, 0x1F7FFF, "ARC'Créations", "ARC-CRATIONS" }, { 0x0050C2, 0x1F8000, 0x1F8FFF, "ULTRACKER TECHNOLOGY", "ULTRACKER" }, { 0x0050C2, 0x1F9000, 0x1F9FFF, "Fr. Sauter AG", "FR-SAUTER" }, { 0x0050C2, 0x1FA000, 0x1FAFFF, "SP Controls, Inc", "SP-CONTROLS" }, { 0x0050C2, 0x1FB000, 0x1FBFFF, "Willowglen Systems Inc.", "WILLOWGLEN" }, { 0x0050C2, 0x1FC000, 0x1FCFFF, "EDD Srl", "EDD-SRL" }, { 0x0050C2, 0x1FD000, 0x1FDFFF, "SouthWing S.L.", "SOUTHWING" }, { 0x0050C2, 0x1FE000, 0x1FEFFF, "Safetran Traffic Systems Inc.", "SAFETRAN-TRAFFIC" }, { 0x0050C2, 0x1FF000, 0x1FFFFF, "Product Design Dept., Sohwa Corporation", "PRODUCT-DESIGN-DEPT-SOHWA" }, { 0x0050C2, 0x200000, 0x200FFF, "Whittier Mailing Products, Inc.", "WHITTIER-MAILING-PRODUCTS" }, { 0x0050C2, 0x201000, 0x201FFF, "OlympusNDT", "OLYMPUSNDT" }, { 0x0050C2, 0x202000, 0x202FFF, "Audio Riders Oy", "AUDIO-RIDERS-OY" }, { 0x0050C2, 0x203000, 0x203FFF, "Vocality International Ltd", "VOCALITY" }, { 0x0050C2, 0x204000, 0x204FFF, "Algodue Elettronica Srl", "ALGODUE-ELETTRONICA-SRL" }, { 0x0050C2, 0x205000, 0x205FFF, "SystIng", "SYSTING" }, { 0x0050C2, 0x206000, 0x206FFF, "Windmill Innovations", "WINDMILL-INNOVATIONS" }, { 0x0050C2, 0x207000, 0x207FFF, "Solectron Ind.Com.Servs.Exportadora do Brasil Ltda.", "SOLECTRON-IND-COM-SERVS-EXPORTADORA-DO-BRASIL-LTDA" }, { 0x0050C2, 0x208000, 0x208FFF, "nNovia, Inc.", "NNOVIA" }, { 0x0050C2, 0x209000, 0x209FFF, "LK Ltd", "LK" }, { 0x0050C2, 0x20A000, 0x20AFFF, "Ferrari electronic AG", "FERRARI" }, { 0x0050C2, 0x20B000, 0x20BFFF, "Rafael", "RAFAEL" }, { 0x0050C2, 0x20C000, 0x20CFFF, "Communication and Telemechanical Systems Company Limited", "COMMUNICATION-AND-TELEMECHANICAL-COMPANY" }, { 0x0050C2, 0x20D000, 0x20DFFF, "Varisys Ltd", "VARISYS" }, { 0x0050C2, 0x20E000, 0x20EFFF, "PYRAMID Computer GmbH", "PYRAMID" }, { 0x0050C2, 0x20F000, 0x20FFFF, "OMICRON electronics GmbH", "OMICRON-ELECTRONICS" }, { 0x0050C2, 0x210000, 0x210FFF, "Innovics Wireless Inc", "INNOVICS-WIRELESS" }, { 0x0050C2, 0x211000, 0x211FFF, "Hochschule für Technik, Wirtschaft und Kultur Leipzig (FH)", "HOCHSCHULE-FUER-TECHNIK-WIRTSCHAFT-UND-KULTUR-LEIPZIG-FH" }, { 0x0050C2, 0x212000, 0x212FFF, "4Links Limited", "4LINKS" }, { 0x0050C2, 0x213000, 0x213FFF, "SysAware S.A.R.L.", "SYSAWARE-R-L" }, { 0x0050C2, 0x214000, 0x214FFF, "Oshimi System Design Inc.", "OSHIMI-SYSTEM-DESIGN" }, { 0x0050C2, 0x215000, 0x215FFF, "VoiceCom AG", "VOICECOM" }, { 0x0050C2, 0x216000, 0x216FFF, "Level Control Systems", "LEVEL-CONTROL" }, { 0x0050C2, 0x217000, 0x217FFF, "Linn Products Ltd", "LINN-PRODUCTS" }, { 0x0050C2, 0x218000, 0x218FFF, "Nansen S. A. - Instrumentos de Precisão", "NANSEN-S-A-INSTRUMENTOS-DE-PRECISO" }, { 0x0050C2, 0x219000, 0x219FFF, "Aeroflex GmbH", "AEROFLEX" }, { 0x0050C2, 0x21A000, 0x21AFFF, "MST SYSTEMS LIMITED", "MST" }, { 0x0050C2, 0x21B000, 0x21BFFF, "GD Mission Systems", "GD-MISSION" }, { 0x0050C2, 0x21C000, 0x21CFFF, "Fracarro srl", "FRACARRO-SRL" }, { 0x0050C2, 0x21D000, 0x21DFFF, "ESG Elektroniksystem u. Logistik GmbH", "ESG-ELEKTRONIKSYSTEM-U-LOGISTIK" }, { 0x0050C2, 0x21E000, 0x21EFFF, "Applied Technologies Associates", "APPLIED-TECHNOLOGIES-ASSOCIATES" }, { 0x0050C2, 0x21F000, 0x21FFFF, "Monitor Business Machines Ltd", "MONITOR-BUSINESS-MACHINES" }, { 0x0050C2, 0x220000, 0x220FFF, "Serveron Corporation", "SERVERON" }, { 0x0050C2, 0x221000, 0x221FFF, "Getinge IT Solutions ApS", "GETINGE-IT-SOLUTIONS-APS" }, { 0x0050C2, 0x222000, 0x222FFF, "imo-elektronik GmbH", "IMO-ELEKTRONIK" }, { 0x0050C2, 0x223000, 0x223FFF, "visicontrol GmbH", "VISICONTROL" }, { 0x0050C2, 0x224000, 0x224FFF, "PANNOCOM Ltd.", "PANNOCOM" }, { 0x0050C2, 0x225000, 0x225FFF, "nVent, Schroff GmbH", "NVENT-SCHROFF" }, { 0x0050C2, 0x226000, 0x226FFF, "Ross Video Limited", "ROSS-VIDEO" }, { 0x0050C2, 0x227000, 0x227FFF, "Intelligent Photonics Control", "INTELLIGENT-PHOTONICS-CONTROL" }, { 0x0050C2, 0x228000, 0x228FFF, "Intelligent Media Technologies, Inc.", "INTELLIGENT-MEDIA-TECHNOLOGIES" }, { 0x0050C2, 0x229000, 0x229FFF, "eko systems inc.", "EKO" }, { 0x0050C2, 0x22A000, 0x22AFFF, "Crescendo Networks", "CRESCENDO-NETWORKS" }, { 0x0050C2, 0x22B000, 0x22BFFF, "Riegl Laser Measurement Systems GmbH", "RIEGL-LASER-MEASUREMENT" }, { 0x0050C2, 0x22C000, 0x22CFFF, "Intrinsity", "INTRINSITY" }, { 0x0050C2, 0x22D000, 0x22DFFF, "asetek Inc.", "ASETEK" }, { 0x0050C2, 0x22E000, 0x22EFFF, "LORD INGENIERIE", "LORD-INGENIERIE" }, { 0x0050C2, 0x22F000, 0x22FFFF, "HTEC Limited", "HTEC" }, { 0x0050C2, 0x230000, 0x230FFF, "AutoTOOLS group Co. Ltd.", "AUTOTOOLS-GROUP" }, { 0x0050C2, 0x231000, 0x231FFF, "Legra Systems, Inc.", "LEGRA" }, { 0x0050C2, 0x232000, 0x232FFF, "SIMET", "SIMET" }, { 0x0050C2, 0x233000, 0x233FFF, "EdenTree Technologies, Inc.", "EDENTREE-TECHNOLOGIES" }, { 0x0050C2, 0x234000, 0x234FFF, "Silverback Systems", "SILVERBACK" }, { 0x0050C2, 0x235000, 0x235FFF, "POLIMAR ELEKTRONIK LTD.", "POLIMAR-ELEKTRONIK" }, { 0x0050C2, 0x236000, 0x236FFF, "JLCooper Electronics", "JLCOOPER-ELECTRONICS" }, { 0x0050C2, 0x237000, 0x237FFF, "Tandata Systems Ltd", "TANDATA" }, { 0x0050C2, 0x238000, 0x238FFF, "Schwer+Kopka GmbH", "SCHWER+KOPKA" }, { 0x0050C2, 0x239000, 0x239FFF, "Stins Coman", "STINS-COMAN" }, { 0x0050C2, 0x23A000, 0x23AFFF, "Chantry Networks", "CHANTRY-NETWORKS" }, { 0x0050C2, 0x23B000, 0x23BFFF, "Envara", "ENVARA" }, { 0x0050C2, 0x23C000, 0x23CFFF, "Wheatstone Corporation", "WHEATSTONE" }, { 0x0050C2, 0x23D000, 0x23DFFF, "Gauging Systems Inc", "GAUGING" }, { 0x0050C2, 0x23E000, 0x23EFFF, "Kallastra Inc.", "KALLASTRA" }, { 0x0050C2, 0x23F000, 0x23FFFF, "Halliburton - NUMAR", "HALLIBURTON-NUMAR" }, { 0x0050C2, 0x240000, 0x240FFF, "Geoquip Ltd", "GEOQUIP" }, { 0x0050C2, 0x241000, 0x241FFF, "Contronics Automacao Ltda", "CONTRONICS-AUTOMACAO-LTDA" }, { 0x0050C2, 0x242000, 0x242FFF, "MDS SCIEX", "MDS-SCIEX" }, { 0x0050C2, 0x243000, 0x243FFF, "RGB Spectrum", "RGB-SPECTRUM" }, { 0x0050C2, 0x244000, 0x244FFF, "intec GmbH", "INTEC" }, { 0x0050C2, 0x245000, 0x245FFF, "Hauppauge Computer Works, Inc.", "HAUPPAUGE-WORKS" }, { 0x0050C2, 0x246000, 0x246FFF, "Hardmeier", "HARDMEIER" }, { 0x0050C2, 0x247000, 0x247FFF, "Gradual Tecnologia Ltda.", "GRADUAL-TECNOLOGIA-LTDA" }, { 0x0050C2, 0x248000, 0x248FFF, "Dixtal Biomedica Ind. Com. Ltda.", "DIXTAL-BIOMEDICA-IND-COM-LTDA" }, { 0x0050C2, 0x249000, 0x249FFF, "Bender GmbH & Co. KG", "BENDER" }, { 0x0050C2, 0x24A000, 0x24AFFF, "CDS Rail", "CDS-RAIL" }, { 0x0050C2, 0x24B000, 0x24BFFF, "Azimuth Systems, Inc.", "AZIMUTH" }, { 0x0050C2, 0x24C000, 0x24CFFF, "Supertel", "SUPERTEL" }, { 0x0050C2, 0x24D000, 0x24DFFF, "Mettler Toledo", "METTLER-TOLEDO" }, { 0x0050C2, 0x24E000, 0x24EFFF, "Scharff Weisberg Systems Integration Inc", "SCHARFF-WEISBERG-INTEGRATION" }, { 0x0050C2, 0x24F000, 0x24FFFF, "Macronet s.r.l.", "MACRONET" }, { 0x0050C2, 0x250000, 0x250FFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x0050C2, 0x251000, 0x251FFF, "DGT Sp. z o.o.", "DGT-SP-Z-O-O" }, { 0x0050C2, 0x252000, 0x252FFF, "ads-tec GmbH", "ADS-TEC" }, { 0x0050C2, 0x253000, 0x253FFF, "DSM-Messtechnik GmbH", "DSM-MESSTECHNIK" }, { 0x0050C2, 0x254000, 0x254FFF, "Thales Communications Ltd", "THALES-COMMUNICATION" }, { 0x0050C2, 0x255000, 0x255FFF, "STMicroelectronics SRL", "STMICROELECTRONICS-SRL" }, { 0x0050C2, 0x256000, 0x256FFF, "Information Technology Corp.", "INFORMATION" }, { 0x0050C2, 0x257000, 0x257FFF, "Digicast Networks", "DIGICAST-NETWORKS" }, { 0x0050C2, 0x258000, 0x258FFF, "Spacesaver Corporation", "SPACESAVER" }, { 0x0050C2, 0x259000, 0x259FFF, "Omicron Ceti AB", "OMICRON-CETI-AB" }, { 0x0050C2, 0x25A000, 0x25AFFF, "Zendex Corporation", "ZENDEX" }, { 0x0050C2, 0x25B000, 0x25BFFF, "Winford Engineering", "WINFORD-ENGINEERING" }, { 0x0050C2, 0x25C000, 0x25CFFF, "Softhill Technologies Ltd.", "SOFTHILL-TECHNOLOGIES" }, { 0x0050C2, 0x25D000, 0x25DFFF, "RDTECH", "RDTECH" }, { 0x0050C2, 0x25E000, 0x25EFFF, "MITE Hradec Kralove, s.r.o.", "MITE-HRADEC-KRALOVE-S-R-O" }, { 0x0050C2, 0x25F000, 0x25FFFF, "Albert Handtmann Maschinenfabrik GmbH&Co.KG", "ALBERT-HANDTMANN-MASCHINENFABRIK" }, { 0x0050C2, 0x260000, 0x260FFF, "BIOTAGE", "BIOTAGE" }, { 0x0050C2, 0x261000, 0x261FFF, "Tattile Srl", "TATTILE-SRL" }, { 0x0050C2, 0x262000, 0x262FFF, "Shanghai Gaozhi Science&Technology Development Ltd.", "SHANGHAI-GAOZHI-SCIENCE-DEVELOPMENT" }, { 0x0050C2, 0x263000, 0x263FFF, "Vansco Electronics Oy", "VANSCO-ELECTRONICS-OY" }, { 0x0050C2, 0x264000, 0x264FFF, "Confidence Direct Ltd", "CONFIDENCE-DIRECT" }, { 0x0050C2, 0x265000, 0x265FFF, "BELIK S.P.R.L.", "BELIK-S-P-R-L" }, { 0x0050C2, 0x266000, 0x266FFF, "ATOM GIKEN Co.,Ltd.", "ATOM-GIKEN" }, { 0x0050C2, 0x267000, 0x267FFF, "Allen Martin Conservation Ltd", "ALLEN-MARTIN-CONSERVATION" }, { 0x0050C2, 0x268000, 0x268FFF, "Parabit Systems", "PARABIT" }, { 0x0050C2, 0x269000, 0x269FFF, "Technisyst Pty Ltd", "TECHNISYST-PTY" }, { 0x0050C2, 0x26A000, 0x26AFFF, "FG SYNERYS", "FG-SYNERYS" }, { 0x0050C2, 0x26B000, 0x26BFFF, "Continental Gateway Limited", "CONTINENTAL-GATEWAY" }, { 0x0050C2, 0x26C000, 0x26CFFF, "Crystal Vision Ltd", "CRYSTAL-VISION" }, { 0x0050C2, 0x26D000, 0x26DFFF, "DSP DESIGN", "DSP-DESIGN" }, { 0x0050C2, 0x26E000, 0x26EFFF, "ZP Engineering SEL", "ZP-ENGINEERING-SEL" }, { 0x0050C2, 0x26F000, 0x26FFFF, "Digital Recorders Inc", "DIGITAL-RECORDERS" }, { 0x0050C2, 0x270000, 0x270FFF, "S4 Technology Pty Ltd", "S4-PTY" }, { 0x0050C2, 0x271000, 0x271FFF, "VLSIP TECHNOLOGIES INC.", "VLSIP-TECHNOLOGIES" }, { 0x0050C2, 0x272000, 0x272FFF, "Verex Technology", "VEREX" }, { 0x0050C2, 0x273000, 0x273FFF, "Servicios Condumex, S. A. de C. V.", "SERVICIOS-CONDUMEX-S-A-DE-C-V" }, { 0x0050C2, 0x274000, 0x274FFF, "Fundación TECNALIA Research & Innovation", "FUNDACIN-TECNALIA-RESEARCH-INNOVATION" }, { 0x0050C2, 0x275000, 0x275FFF, "Extreme Engineering Solutions", "EXTREME-ENGINEERING-SOLUTIONS" }, { 0x0050C2, 0x276000, 0x276FFF, "Tieline Research Pty Ltd", "TIELINE-RESEARCH-PTY" }, { 0x0050C2, 0x277000, 0x277FFF, "T/R Systems, Inc.", "T/R" }, { 0x0050C2, 0x278000, 0x278FFF, "Replicom Ltd.", "REPLICOM" }, { 0x0050C2, 0x279000, 0x279FFF, "PATLITE Corporation", "PATLITE" }, { 0x0050C2, 0x27A000, 0x27AFFF, "Maestro Pty Ltd", "MAESTRO-PTY" }, { 0x0050C2, 0x27B000, 0x27BFFF, "LinkSecurity A/S", "LINKSECURITY-A/S" }, { 0x0050C2, 0x27C000, 0x27CFFF, "Danlaw Inc", "DANLAW" }, { 0x0050C2, 0x27D000, 0x27DFFF, "ALLIED TELESIS K.K.", "ALLIED-TELESIS-K-K" }, { 0x0050C2, 0x27E000, 0x27EFFF, "AnaLogic Computers Ltd.", "ANALOGIC-COMPUTERS" }, { 0x0050C2, 0x27F000, 0x27FFFF, "Air Broadband Communications, Inc.", "AIR-BROADBAND-COMMUNICATION" }, { 0x0050C2, 0x280000, 0x280FFF, "AGECODAGIS SARL", "AGECODAGIS-SARL" }, { 0x0050C2, 0x281000, 0x281FFF, "Cabtronix AG", "CABTRONIX" }, { 0x0050C2, 0x282000, 0x282FFF, "Telvent", "TELVENT" }, { 0x0050C2, 0x283000, 0x283FFF, "ANSITEX CORP.", "ANSITEX" }, { 0x0050C2, 0x284000, 0x284FFF, "Micronet Ltd.", "MICRONET" }, { 0x0050C2, 0x285000, 0x285FFF, "Littwin GmbH & Co KG", "LITTWIN" }, { 0x0050C2, 0x286000, 0x286FFF, "ATEME", "ATEME" }, { 0x0050C2, 0x287000, 0x287FFF, "TECNEW Electronics Engineering Cr., Ltd.", "TECNEW-ELECTRONICS-ENGINEERING-CR" }, { 0x0050C2, 0x288000, 0x288FFF, "RPM Systems Corporation", "RPM" }, { 0x0050C2, 0x289000, 0x289FFF, "Rototype S.p.A.", "ROTOTYPE" }, { 0x0050C2, 0x28A000, 0x28AFFF, "Real Time Systems", "REAL-TIME" }, { 0x0050C2, 0x28B000, 0x28BFFF, "Orion Technologies,LLC", "ORION-TECHNOLOGIES" }, { 0x0050C2, 0x28C000, 0x28CFFF, "Futaba Corporation", "FUTABA" }, { 0x0050C2, 0x28D000, 0x28DFFF, "AXODE SA", "AXODE" }, { 0x0050C2, 0x28E000, 0x28EFFF, "Tattile srl", "TATTILE-SRL" }, { 0x0050C2, 0x28F000, 0x28FFFF, "Spellman High Voltage Electronics Corp", "SPELLMAN-HIGH-VOLTAGE-ELECTRONICS" }, { 0x0050C2, 0x290000, 0x290FFF, "EBNEURO SPA", "EBNEURO-SPA" }, { 0x0050C2, 0x291000, 0x291FFF, "CHAUVIN ARNOUX", "CHAUVIN-ARNOUX" }, { 0x0050C2, 0x292000, 0x292FFF, "AMIRIX Systems", "AMIRIX" }, { 0x0050C2, 0x293000, 0x293FFF, "IP Unity", "IP-UNITY" }, { 0x0050C2, 0x294000, 0x294FFF, "EPSa GmbH", "EPSA" }, { 0x0050C2, 0x295000, 0x295FFF, "LOGOSOL, INC.", "LOGOSOL" }, { 0x0050C2, 0x296000, 0x296FFF, "OpVista", "OPVISTA" }, { 0x0050C2, 0x297000, 0x297FFF, "KINETICS", "KINETICS" }, { 0x0050C2, 0x298000, 0x298FFF, "Harvad University", "HARVAD-UNIVERSITY" }, { 0x0050C2, 0x299000, 0x299FFF, "CAD-UL GmbH", "CAD-UL" }, { 0x0050C2, 0x29A000, 0x29AFFF, "Packet Techniques Inc.", "PACKET-TECHNIQUES" }, { 0x0050C2, 0x29B000, 0x29BFFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x0050C2, 0x29C000, 0x29CFFF, "2N TELEKOMUNIKACE a.s.", "2N-TELEKOMUNIKACE" }, { 0x0050C2, 0x29D000, 0x29DFFF, "Globe Wireless", "GLOBE-WIRELESS" }, { 0x0050C2, 0x29E000, 0x29EFFF, "SELEX Communications Ltd", "SELEX-COMMUNICATION" }, { 0x0050C2, 0x29F000, 0x29FFFF, "Baudisch Electronic GmbH", "BAUDISCH" }, { 0x0050C2, 0x2A0000, 0x2A0FFF, "Sterling Industry Consult GmbH", "STERLING-INDUSTRY-CONSULT" }, { 0x0050C2, 0x2A1000, 0x2A1FFF, "Infinetix Corp", "INFINETIX" }, { 0x0050C2, 0x2A2000, 0x2A2FFF, "Epelsa, SL", "EPELSA-SL" }, { 0x0050C2, 0x2A3000, 0x2A3FFF, "West-Com Nurse Call Systems, Inc.", "WEST-COM-NURSE-CALL" }, { 0x0050C2, 0x2A4000, 0x2A4FFF, "Xipher Embedded Networking", "XIPHER-EMBEDDED-NETWORKING" }, { 0x0050C2, 0x2A5000, 0x2A5FFF, "Septier Communication Ltd", "SEPTIER-COMMUNICATION" }, { 0x0050C2, 0x2A6000, 0x2A6FFF, "Brannstroms Elektronik AB", "BRANNSTROMS-ELEKTRONIK-AB" }, { 0x0050C2, 0x2A7000, 0x2A7FFF, "Micro System Architecturing srl", "MICRO-SYSTEM-ARCHITECTURING-SRL" }, { 0x0050C2, 0x2A8000, 0x2A8FFF, "DVTel Israel Ltd.", "DVTEL-ISRAEL" }, { 0x0050C2, 0x2A9000, 0x2A9FFF, "Dr. Staiger, Mohilo + Co GmbH", "DR-STAIGER-MOHILO" }, { 0x0050C2, 0x2AA000, 0x2AAFFF, "DEUTA Werke GmbH", "DEUTA-WERKE" }, { 0x0050C2, 0x2AB000, 0x2ABFFF, "AUM Infotech Private Limited", "AUM-INFOTECH-PRIVATE" }, { 0x0050C2, 0x2AC000, 0x2ACFFF, "BBI Engineering, Inc.", "BBI-ENGINEERING" }, { 0x0050C2, 0x2AD000, 0x2ADFFF, "ABB T&D Spa", "ABB-T-D-SPA" }, { 0x0050C2, 0x2AE000, 0x2AEFFF, "Quest Retail Technology Pty Ltd", "QUEST-RETAIL-PTY" }, { 0x0050C2, 0x2AF000, 0x2AFFFF, "CSA Computer & Antriebstechnik GmbH", "CSA-ANTRIEBSTECHNIK" }, { 0x0050C2, 0x2B0000, 0x2B0FFF, "Telda Electronics", "TELDA-ELECTRONICS" }, { 0x0050C2, 0x2B1000, 0x2B1FFF, "Private", "PRIVATE" }, { 0x0050C2, 0x2B2000, 0x2B2FFF, "Smiths Detection", "SMITHS-DETECTION" }, { 0x0050C2, 0x2B3000, 0x2B3FFF, "Embedded Systems Design", "EMBEDDED-DESIGN" }, { 0x0050C2, 0x2B4000, 0x2B4FFF, "Polatis Ltd", "POLATIS" }, { 0x0050C2, 0x2B5000, 0x2B5FFF, "Hobbes Computer Network Accessories", "HOBBES-NETWORK-ACCESSORIES" }, { 0x0050C2, 0x2B6000, 0x2B6FFF, "Softier Inc.", "SOFTIER" }, { 0x0050C2, 0x2B7000, 0x2B7FFF, "RAFI GmbH & Co.KG", "RAFI" }, { 0x0050C2, 0x2B8000, 0x2B8FFF, "Admiral Secure Products, Ltd.", "ADMIRAL-SECURE-PRODUCTS" }, { 0x0050C2, 0x2B9000, 0x2B9FFF, "Richmond Sound Design Ltd.", "RICHMOND-SOUND-DESIGN" }, { 0x0050C2, 0x2BA000, 0x2BAFFF, "NORCO INDUSTRIAL TECHNOLOGY INC", "NORCO-INDUSTRIAL" }, { 0x0050C2, 0x2BB000, 0x2BBFFF, "TA Instruments Ltd", "TA-INSTRUMENTS" }, { 0x0050C2, 0x2BC000, 0x2BCFFF, "Uster Technologies AG", "USTER-TECHNOLOGIES" }, { 0x0050C2, 0x2BD000, 0x2BDFFF, "StorLink Semi", "STORLINK-SEMI" }, { 0x0050C2, 0x2BE000, 0x2BEFFF, "Lipowsky Industrie-Elektronik GmbH", "LIPOWSKY-INDUSTRIE-ELEKTRONIK" }, { 0x0050C2, 0x2BF000, 0x2BFFFF, "PERAX", "PERAX" }, { 0x0050C2, 0x2C0000, 0x2C0FFF, "Magellan Technology Pty Limited", "MAGELLAN-PTY" }, { 0x0050C2, 0x2C1000, 0x2C1FFF, "Stage Tec Entwicklungsgesellschaft für professionelle Audio", "STAGE-TEC-ENTWICKLUNGSGESELLSCHAFT-FUER-PROFESSIONELLE-AUDIO" }, { 0x0050C2, 0x2C2000, 0x2C2FFF, "Smarteye Corporation", "SMARTEYE" }, { 0x0050C2, 0x2C3000, 0x2C3FFF, "Digital SP Ltd", "DIGITAL-SP" }, { 0x0050C2, 0x2C4000, 0x2C4FFF, "Invensys Energy Systens (NZ) Limited", "INVENSYS-ENERGY-SYSTENS-NZ" }, { 0x0050C2, 0x2C5000, 0x2C5FFF, "Elman srl", "ELMAN-SRL" }, { 0x0050C2, 0x2C6000, 0x2C6FFF, "Initial Electronic Security Systems", "INITIAL-SECURITY" }, { 0x0050C2, 0x2C7000, 0x2C7FFF, "Siliquent Technologies Ltd", "SILIQUENT-TECHNOLOGIES" }, { 0x0050C2, 0x2C8000, 0x2C8FFF, "SELCO", "SELCO" }, { 0x0050C2, 0x2C9000, 0x2C9FFF, "Roseman Engineering Ltd.", "ROSEMAN-ENGINEERING" }, { 0x0050C2, 0x2CA000, 0x2CAFFF, "PUTERCOM CO., LTD", "PUTERCOM" }, { 0x0050C2, 0x2CB000, 0x2CBFFF, "FACTS Engineering LLC", "FACTS-ENGINEERING" }, { 0x0050C2, 0x2CC000, 0x2CCFFF, "EMBEDDED TOOLSMITHS", "EMBEDDED-TOOLSMITHS" }, { 0x0050C2, 0x2CD000, 0x2CDFFF, "DataWind Research", "DATAWIND-RESEARCH" }, { 0x0050C2, 0x2CE000, 0x2CEFFF, "Ross Video Limited", "ROSS-VIDEO" }, { 0x0050C2, 0x2CF000, 0x2CFFFF, "Diseño de Sistemas en Silicio S.A.", "DISEO-DE-SISTEMAS-EN-SILICIO" }, { 0x0050C2, 0x2D0000, 0x2D0FFF, "Worth Data, Inc.", "WORTH-DATA" }, { 0x0050C2, 0x2D1000, 0x2D1FFF, "Miritek, Inc.", "MIRITEK" }, { 0x0050C2, 0x2D2000, 0x2D2FFF, "AIRNET COMMUNICATIONS CORP", "AIRNET-COMMUNICATION" }, { 0x0050C2, 0x2D3000, 0x2D3FFF, "Gerber Scientific Products, Inc.", "GERBER-SCIENTIFIC-PRODUCTS" }, { 0x0050C2, 0x2D4000, 0x2D4FFF, "Integrated System Solution Corp.", "INTEGRATED-SYSTEM-SOLUTION" }, { 0x0050C2, 0x2D5000, 0x2D5FFF, "PIXY AG", "PIXY" }, { 0x0050C2, 0x2D6000, 0x2D6FFF, "WIS Technologies", "WIS-TECHNOLOGIES" }, { 0x0050C2, 0x2D7000, 0x2D7FFF, "Neo Electronics Ltd", "NEO-ELECTRONICS" }, { 0x0050C2, 0x2D8000, 0x2D8FFF, "SYN-TECH SYSTEMS INC", "SYN-TECH" }, { 0x0050C2, 0x2D9000, 0x2D9FFF, "Private", "PRIVATE" }, { 0x0050C2, 0x2DA000, 0x2DAFFF, "PYRAMID Computer GmbH", "PYRAMID" }, { 0x0050C2, 0x2DB000, 0x2DBFFF, "AutoTOOLS group Co. Ltd.", "AUTOTOOLS-GROUP" }, { 0x0050C2, 0x2DC000, 0x2DCFFF, "Wiener, Plein & Baus GmbH", "WIENER-PLEIN-BAUS" }, { 0x0050C2, 0x2DD000, 0x2DDFFF, "Westek Technology Ltd", "WESTEK" }, { 0x0050C2, 0x2DE000, 0x2DEFFF, "Research Applications", "RESEARCH-APPLICATIONS" }, { 0x0050C2, 0x2DF000, 0x2DFFFF, "MICREL-NKE", "MICREL-NKE" }, { 0x0050C2, 0x2E0000, 0x2E0FFF, "Baxter International Inc", "BAXTER" }, { 0x0050C2, 0x2E1000, 0x2E1FFF, "Access IS", "ACCESS-IS" }, { 0x0050C2, 0x2E2000, 0x2E2FFF, "Ballard Technology, Inc,", "BALLARD" }, { 0x0050C2, 0x2E3000, 0x2E3FFF, "MG Industrieelektronik GmbH", "MG-INDUSTRIEELEKTRONIK" }, { 0x0050C2, 0x2E4000, 0x2E4FFF, "iamba LTD.", "IAMBA" }, { 0x0050C2, 0x2E5000, 0x2E5FFF, "Transtech DSP", "TRANSTECH-DSP" }, { 0x0050C2, 0x2E6000, 0x2E6FFF, "DALSA", "DALSA" }, { 0x0050C2, 0x2E7000, 0x2E7FFF, "SafeView, Inc.", "SAFEVIEW" }, { 0x0050C2, 0x2E8000, 0x2E8FFF, "S.M.V. Systemelektronik GmbH", "S-M-V-SYSTEMELEKTRONIK" }, { 0x0050C2, 0x2E9000, 0x2E9FFF, "SRI International", "SRI" }, { 0x0050C2, 0x2EA000, 0x2EAFFF, "QUBIsoft S.r.l.", "QUBISOFT" }, { 0x0050C2, 0x2EB000, 0x2EBFFF, "Lingg & Janke OHG", "LINGG-JANKE-OHG" }, { 0x0050C2, 0x2EC000, 0x2ECFFF, "CHENGDU BOOK DIGITAL CO., LTD", "CHENGDU-BOOK-DIGITAL" }, { 0x0050C2, 0x2ED000, 0x2EDFFF, "4RF Communications Ltd", "4RF-COMMUNICATION" }, { 0x0050C2, 0x2EE000, 0x2EEFFF, "SHF Communication Technologies AG", "SHF-COMMUNICATION-TECHNOLOGIES" }, { 0x0050C2, 0x2EF000, 0x2EFFFF, "Profline B.V.", "PROFLINE-B-V" }, { 0x0050C2, 0x2F0000, 0x2F0FFF, "LECO Corporation", "LECO" }, { 0x0050C2, 0x2F1000, 0x2F1FFF, "Geometrics, Inc.", "GEOMETRICS" }, { 0x0050C2, 0x2F2000, 0x2F2FFF, "Eurotek Srl", "EUROTEK-SRL" }, { 0x0050C2, 0x2F3000, 0x2F3FFF, "Crossbow Technology, Inc.", "CROSSBOW" }, { 0x0050C2, 0x2F4000, 0x2F4FFF, "Efficient Channel Coding", "EFFICIENT-CHANNEL-CODING" }, { 0x0050C2, 0x2F5000, 0x2F5FFF, "ADChips", "ADCHIPS" }, { 0x0050C2, 0x2F6000, 0x2F6FFF, "Clifford Chance LLP", "CLIFFORD-CHANCE-LLP" }, { 0x0050C2, 0x2F7000, 0x2F7FFF, "GILLAM-FEI S.A.", "GILLAM-FEI" }, { 0x0050C2, 0x2F8000, 0x2F8FFF, "SavvyCorp.com Ltd", "SAVVYCORP-COM" }, { 0x0050C2, 0x2F9000, 0x2F9FFF, "Digilent Inc.", "DIGILENT" }, { 0x0050C2, 0x2FA000, 0x2FAFFF, "Tornado Modular Systems", "TORNADO-MODULAR" }, { 0x0050C2, 0x2FB000, 0x2FBFFF, "Arthur Industries Inc., dba On Hold Media Group", "ARTHUR-INDUSTRIES-DBA-ON-HOLD-MEDIA-GROUP" }, { 0x0050C2, 0x2FC000, 0x2FCFFF, "Blackline Systems Corporation", "BLACKLINE" }, { 0x0050C2, 0x2FD000, 0x2FDFFF, "American Microsystems, Ltd.", "AMERICAN-MICROSYSTEMS" }, { 0x0050C2, 0x2FE000, 0x2FEFFF, "Saab AB", "SAAB-AB" }, { 0x0050C2, 0x2FF000, 0x2FFFFF, "Patria Advanced Solutions", "PATRIA-ADVANCED-SOLUTIONS" }, { 0x0050C2, 0x300000, 0x300FFF, "Soredex Instrumentarium Oyj", "SOREDEX-INSTRUMENTARIUM-OYJ" }, { 0x0050C2, 0x301000, 0x301FFF, "Delphi Display Systems, Inc.", "DELPHI-DISPLAY" }, { 0x0050C2, 0x302000, 0x302FFF, "EuroDesign embedded technologies GmbH", "EURODESIGN-EMBEDDED-TECHNOLOGIES" }, { 0x0050C2, 0x303000, 0x303FFF, "CI Systems Ltd.", "CI" }, { 0x0050C2, 0x304000, 0x304FFF, "COMERSON S.r.l.", "COMERSON" }, { 0x0050C2, 0x305000, 0x305FFF, "Symbium Corporation", "SYMBIUM" }, { 0x0050C2, 0x306000, 0x306FFF, "Noran Tel Communications Ltd.", "NORAN-TEL-COMMUNICATION" }, { 0x0050C2, 0x307000, 0x307FFF, "UNIONDIGITAL.,CO.LTD", "UNIONDIGITAL" }, { 0x0050C2, 0x308000, 0x308FFF, "FiveCo", "FIVECO" }, { 0x0050C2, 0x309000, 0x309FFF, "Rackmaster Systems, Inc.", "RACKMASTER" }, { 0x0050C2, 0x30A000, 0x30AFFF, "Innings Telecom Inc.", "INNINGS-TELECOM" }, { 0x0050C2, 0x30B000, 0x30BFFF, "VX Technologies Inc.", "VX-TECHNOLOGIES" }, { 0x0050C2, 0x30C000, 0x30CFFF, "TEAMLOG", "TEAMLOG" }, { 0x0050C2, 0x30D000, 0x30DFFF, "SETARAM", "SETARAM" }, { 0x0050C2, 0x30E000, 0x30EFFF, "Obvius", "OBVIUS" }, { 0x0050C2, 0x30F000, 0x30FFFF, "Digicontrole Lda", "DIGICONTROLE-LDA" }, { 0x0050C2, 0x310000, 0x310FFF, "CYBERTRON CO., LTD.", "CYBERTRON" }, { 0x0050C2, 0x311000, 0x311FFF, "Comodo", "COMODO" }, { 0x0050C2, 0x312000, 0x312FFF, "Dese Technologies SL", "DESE-TECHNOLOGIES-SL" }, { 0x0050C2, 0x313000, 0x313FFF, "SAIA Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0x314000, 0x314FFF, "MicroBee Systems, Inc", "MICROBEE" }, { 0x0050C2, 0x315000, 0x315FFF, "ifak system GmbH", "IFAK-SYSTEM" }, { 0x0050C2, 0x316000, 0x316FFF, "Dataline AB", "DATALINE-AB" }, { 0x0050C2, 0x317000, 0x317FFF, "Cosine Systems, Inc.", "COSINE" }, { 0x0050C2, 0x318000, 0x318FFF, "Milmega Ltd", "MILMEGA" }, { 0x0050C2, 0x319000, 0x319FFF, "Invatron Systems Corp.", "INVATRON" }, { 0x0050C2, 0x31A000, 0x31AFFF, "Zodiak Data Systems", "ZODIAK-DATA" }, { 0x0050C2, 0x31B000, 0x31BFFF, "Datacon", "DATACON" }, { 0x0050C2, 0x31C000, 0x31CFFF, "Casa Systems Inc.", "CASA" }, { 0x0050C2, 0x31D000, 0x31DFFF, "Imarda New Zealand Limited", "IMARDA-NEW-ZEALAND" }, { 0x0050C2, 0x31E000, 0x31EFFF, "C3-ilex, LLC", "C3-ILEX" }, { 0x0050C2, 0x31F000, 0x31FFFF, "Geotech Instruments, LLC", "GEOTECH-INSTRUMENTS" }, { 0x0050C2, 0x320000, 0x320FFF, "DTASENSOR S.p.A.", "DTASENSOR" }, { 0x0050C2, 0x321000, 0x321FFF, "UXP", "UXP" }, { 0x0050C2, 0x322000, 0x322FFF, "BQT Solutions (Australia) Limited", "BQT-SOLUTIONS-AUSTRALIA" }, { 0x0050C2, 0x323000, 0x323FFF, "Red Rock Networks", "RED-ROCK-NETWORKS" }, { 0x0050C2, 0x324000, 0x324FFF, "ODIXION", "ODIXION" }, { 0x0050C2, 0x325000, 0x325FFF, "Federal Aviation Administration", "FEDERAL-AVIATION-ADMINISTRATION" }, { 0x0050C2, 0x326000, 0x326FFF, "Navionics S.p.A.", "NAVIONICS" }, { 0x0050C2, 0x327000, 0x327FFF, "Dornier GmbH", "DORNIER" }, { 0x0050C2, 0x328000, 0x328FFF, "I.C.S. Electronics Limited", "I-C-S-ELECTRONICS" }, { 0x0050C2, 0x329000, 0x329FFF, "Imax", "IMAX" }, { 0x0050C2, 0x32A000, 0x32AFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x32B000, 0x32BFFF, "Digital Multimedia Technologies Spa", "DIGITAL-MULTIMEDIA-TECHNOLOGIES-SPA" }, { 0x0050C2, 0x32C000, 0x32CFFF, "Integrated Silicon Solution (Taiwan), Inc.", "INTEGRATED-SILICON-SOLUTION-TAIWAN" }, { 0x0050C2, 0x32D000, 0x32DFFF, "Consens Zeiterfassung GMBH", "CONSENS-ZEITERFASSUNG" }, { 0x0050C2, 0x32E000, 0x32EFFF, "MANUSA-GEST, S.L.", "MANUSA-GEST" }, { 0x0050C2, 0x32F000, 0x32FFFF, "PULTRONICS", "PULTRONICS" }, { 0x0050C2, 0x330000, 0x330FFF, "Sicon srl", "SICON-SRL" }, { 0x0050C2, 0x331000, 0x331FFF, "Broadcast Sports Inc", "BROADCAST-SPORTS" }, { 0x0050C2, 0x332000, 0x332FFF, "PUNJAB COMMUNICATIONS LTD", "PUNJAB-COMMUNICATION" }, { 0x0050C2, 0x333000, 0x333FFF, "Radix Corporation", "RADIX" }, { 0x0050C2, 0x334000, 0x334FFF, "Picture Elements, Inc.", "PICTURE-ELEMENTS" }, { 0x0050C2, 0x335000, 0x335FFF, "Nimcat Networks", "NIMCAT-NETWORKS" }, { 0x0050C2, 0x336000, 0x336FFF, "Golden River Traffic", "GOLDEN-RIVER-TRAFFIC" }, { 0x0050C2, 0x337000, 0x337FFF, "ETI", "ETI" }, { 0x0050C2, 0x338000, 0x338FFF, "Ernitec A/S", "ERNITEC-A/S" }, { 0x0050C2, 0x339000, 0x339FFF, "Secure Systems & Services", "SECURE-SERVICES" }, { 0x0050C2, 0x33A000, 0x33AFFF, "United Telecoms Ltd", "UNITED-TELECOMS" }, { 0x0050C2, 0x33B000, 0x33BFFF, "MultimediaLED", "MULTIMEDIALED" }, { 0x0050C2, 0x33C000, 0x33CFFF, "SkipJam", "SKIPJAM" }, { 0x0050C2, 0x33D000, 0x33DFFF, "GD Mission Systems", "GD-MISSION" }, { 0x0050C2, 0x33E000, 0x33EFFF, "CA Technology, Inc", "CA" }, { 0x0050C2, 0x33F000, 0x33FFFF, "EXYS bvba", "EXYS-BVBA" }, { 0x0050C2, 0x340000, 0x340FFF, "Virtu", "VIRTU" }, { 0x0050C2, 0x341000, 0x341FFF, "Novx Systems", "NOVX" }, { 0x0050C2, 0x342000, 0x342FFF, "St. Michael Strategies", "ST-MICHAEL-STRATEGIES" }, { 0x0050C2, 0x343000, 0x343FFF, "ABB Xiamen Switchgear Co. Ltd.", "ABB-XIAMEN-SWITCHGEAR" }, { 0x0050C2, 0x344000, 0x344FFF, "ads-tec GmbH", "ADS-TEC" }, { 0x0050C2, 0x345000, 0x345FFF, "ACT", "ACT" }, { 0x0050C2, 0x346000, 0x346FFF, "biokeysystem", "BIOKEYSYSTEM" }, { 0x0050C2, 0x347000, 0x347FFF, "Row Seven Ltd", "ROW-SEVEN" }, { 0x0050C2, 0x348000, 0x348FFF, "KoolSpan, Inc.", "KOOLSPAN" }, { 0x0050C2, 0x349000, 0x349FFF, "SSI Schaefer Peem", "SSI-SCHAEFER-PEEM" }, { 0x0050C2, 0x34A000, 0x34AFFF, "NIE Corporation", "NIE" }, { 0x0050C2, 0x34B000, 0x34BFFF, "Ecutel Systems, Inc.", "ECUTEL" }, { 0x0050C2, 0x34C000, 0x34CFFF, "Chuo Electric Works Co., LTD.", "CHUO-ELECTRIC-WORKS" }, { 0x0050C2, 0x34D000, 0x34DFFF, "BMK professional electronics GmbH", "BMK-PROFESSIONAL-ELECTRONICS" }, { 0x0050C2, 0x34E000, 0x34EFFF, "ABB Power Technologies S.p.A. Unità  Operativa SACE (PTMV)", "ABB-POWER-TECHNOLOGIES-S-P-A-UNIT-OPERATIVA-SACE-PTMV" }, { 0x0050C2, 0x34F000, 0x34FFFF, "North Pole Engineering, Inc.", "NORTH-POLE-ENGINEERING" }, { 0x0050C2, 0x350000, 0x350FFF, "Kinesys Projects Limited", "KINESYS-PROJECTS" }, { 0x0050C2, 0x351000, 0x351FFF, "Finesystem Co., Ltd", "FINESYSTEM" }, { 0x0050C2, 0x352000, 0x352FFF, "LUCEO", "LUCEO" }, { 0x0050C2, 0x353000, 0x353FFF, "Crossing Informationssysteme GmbH", "CROSSING-INFORMATIONSSYSTEME" }, { 0x0050C2, 0x354000, 0x354FFF, "Advanced IP Communications", "ADVANCED-IP-COMMUNICATION" }, { 0x0050C2, 0x355000, 0x355FFF, "IHM", "IHM" }, { 0x0050C2, 0x356000, 0x356FFF, "Baytech Cinema", "BAYTECH-CINEMA" }, { 0x0050C2, 0x357000, 0x357FFF, "Athena Semiconductor", "ATHENA-SEMICONDUCTOR" }, { 0x0050C2, 0x358000, 0x358FFF, "ALCEA", "ALCEA" }, { 0x0050C2, 0x359000, 0x359FFF, "Kramer Electronics Ltd.", "KRAMER-ELECTRONICS" }, { 0x0050C2, 0x35A000, 0x35AFFF, "Advanced Si-Net Co., LTD.", "ADVANCED-SI-NET" }, { 0x0050C2, 0x35B000, 0x35BFFF, "VLSIP TECHNOLOGIES, INC", "VLSIP-TECHNOLOGIES" }, { 0x0050C2, 0x35C000, 0x35CFFF, "Ratotec GmbH", "RATOTEC" }, { 0x0050C2, 0x35D000, 0x35DFFF, "NetTest A/S", "NETTEST-A/S" }, { 0x0050C2, 0x35E000, 0x35EFFF, "Jobin Yvon,Inc", "JOBIN-YVON" }, { 0x0050C2, 0x35F000, 0x35FFFF, "F.Imm. S.r.L.", "F-IMM" }, { 0x0050C2, 0x360000, 0x360FFF, "Digital Receiver Technology", "DIGITAL-RECEIVER" }, { 0x0050C2, 0x361000, 0x361FFF, "Contec", "CONTEC" }, { 0x0050C2, 0x362000, 0x362FFF, "AZD Praha s.r.o.", "AZD-PRAHA-S-R-O" }, { 0x0050C2, 0x363000, 0x363FFF, "Septentrio nv/sa", "SEPTENTRIO-NV/" }, { 0x0050C2, 0x364000, 0x364FFF, "Tattile srl", "TATTILE-SRL" }, { 0x0050C2, 0x365000, 0x365FFF, "VPG", "VPG" }, { 0x0050C2, 0x366000, 0x366FFF, "Vanguard Technology Corp.", "VANGUARD" }, { 0x0050C2, 0x367000, 0x367FFF, "CANMAX Technology Ltd.", "CANMAX" }, { 0x0050C2, 0x368000, 0x368FFF, "ASPEL S.A.", "ASPEL" }, { 0x0050C2, 0x369000, 0x369FFF, "Always On Wireless", "ALWAYS-ON-WIRELESS" }, { 0x0050C2, 0x36A000, 0x36AFFF, "Optronic Partner pr AB", "OPTRONIC-PARTNER-PR-AB" }, { 0x0050C2, 0x36B000, 0x36BFFF, "Minerva Technology Inc", "MINERVA" }, { 0x0050C2, 0x36C000, 0x36CFFF, "RISCO Group", "RISCO-GROUP" }, { 0x0050C2, 0x36D000, 0x36DFFF, "Oplink Communications", "OPLINK-COMMUNICATION" }, { 0x0050C2, 0x36E000, 0x36EFFF, "Minicom Advanced Systems Ltd", "MINICOM-ADVANCED" }, { 0x0050C2, 0x36F000, 0x36FFFF, "XIMEA s.r.o.", "XIMEA-S-R-O" }, { 0x0050C2, 0x370000, 0x370FFF, "Europe Technologies", "EUROPE-TECHNOLOGIES" }, { 0x0050C2, 0x371000, 0x371FFF, "DIGITAL ART SYSTEM", "DIGITAL-ART-SYSTEM" }, { 0x0050C2, 0x372000, 0x372FFF, "ELV Elektronik AG", "ELV-ELEKTRONIK" }, { 0x0050C2, 0x373000, 0x373FFF, "Companion Worlds, inc.", "COMPANION-WORLDS" }, { 0x0050C2, 0x374000, 0x374FFF, "Owasys Advanced Wireless Devices", "OWASYS-ADVANCED-WIRELESS-DEVICES" }, { 0x0050C2, 0x375000, 0x375FFF, "TIR Systems Ltd.", "TIR" }, { 0x0050C2, 0x376000, 0x376FFF, "CLEODE", "CLEODE" }, { 0x0050C2, 0x377000, 0x377FFF, "Xycom VME", "XYCOM-VME" }, { 0x0050C2, 0x378000, 0x378FFF, "Daintree Networks Pty", "DAINTREE-NETWORKS-PTY" }, { 0x0050C2, 0x379000, 0x379FFF, "Control LAN S.A.", "CONTROL-LAN" }, { 0x0050C2, 0x37A000, 0x37AFFF, "IDA Corporation", "IDA" }, { 0x0050C2, 0x37B000, 0x37BFFF, "Freescale Semiconductor", "FREESCALE-SEMICONDUCTOR" }, { 0x0050C2, 0x37C000, 0x37CFFF, "MODIA SYSTEMS Co., Ltd", "MODIA" }, { 0x0050C2, 0x37D000, 0x37DFFF, "VeroTrak Inc.", "VEROTRAK" }, { 0x0050C2, 0x37E000, 0x37EFFF, "Ni.Co. S.r.l.", "NI" }, { 0x0050C2, 0x37F000, 0x37FFFF, "Foresearch", "FORESEARCH" }, { 0x0050C2, 0x380000, 0x380FFF, "EKE-Electronics Ltd.", "EKE-ELECTRONICS" }, { 0x0050C2, 0x381000, 0x381FFF, "Realtime Engineering AG", "REALTIME-ENGINEERING" }, { 0x0050C2, 0x382000, 0x382FFF, "Colorado vNet", "COLORADO-VNET" }, { 0x0050C2, 0x383000, 0x383FFF, "ICS Electronics", "ICS-ELECTRONICS" }, { 0x0050C2, 0x384000, 0x384FFF, "Wireless Reading Systems Holding ASA", "WIRELESS-READING-HOLDING-ASA" }, { 0x0050C2, 0x385000, 0x385FFF, "SUNGJIN NEOTECH Co.Ltd.", "SUNGJIN-NEOTECH" }, { 0x0050C2, 0x386000, 0x386FFF, "Precision System Science Co.,Ltd", "PRECISION-SYSTEM-SCIENCE" }, { 0x0050C2, 0x387000, 0x387FFF, "Inoteska s.r.o.", "INOTESKA-S-R-O" }, { 0x0050C2, 0x388000, 0x388FFF, "IEE Inc", "IEE" }, { 0x0050C2, 0x389000, 0x389FFF, "Exavio Inc.", "EXAVIO" }, { 0x0050C2, 0x38A000, 0x38AFFF, "Embedtronics Enterprise", "EMBEDTRONICS" }, { 0x0050C2, 0x38B000, 0x38BFFF, "InterBridge,Inc.", "INTERBRIDGE" }, { 0x0050C2, 0x38C000, 0x38CFFF, "EPSILON SRL", "EPSILON-SRL" }, { 0x0050C2, 0x38D000, 0x38DFFF, "A&G Soluzioni Digitali", "A-G-SOLUZIONI-DIGITALI" }, { 0x0050C2, 0x38E000, 0x38EFFF, "Nordic Alarm AB", "NORDIC-ALARM-AB" }, { 0x0050C2, 0x38F000, 0x38FFFF, "TTC Telecom", "TTC-TELECOM" }, { 0x0050C2, 0x390000, 0x390FFF, "TC Communications", "TC-COMMUNICATION" }, { 0x0050C2, 0x391000, 0x391FFF, "Esensors, Inc.", "ESENSORS" }, { 0x0050C2, 0x392000, 0x392FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x393000, 0x393FFF, "SYS TEC electronic GmbH", "SYS-TEC" }, { 0x0050C2, 0x394000, 0x394FFF, "Embedit A/S", "EMBEDIT-A/S" }, { 0x0050C2, 0x395000, 0x395FFF, "vidisys gmbh", "VIDISYS" }, { 0x0050C2, 0x396000, 0x396FFF, "RapidWave Inc.", "RAPIDWAVE" }, { 0x0050C2, 0x397000, 0x397FFF, "MANGO DSP Ltd.", "MANGO-DSP" }, { 0x0050C2, 0x398000, 0x398FFF, "Inhand Electronics, Inc.", "INHAND-ELECTRONICS" }, { 0x0050C2, 0x399000, 0x399FFF, "Advanced Micro Controls Inc.", "ADVANCED-MICRO-CONTROLS" }, { 0x0050C2, 0x39A000, 0x39AFFF, "Optical Air Data Systems", "OPTICAL-AIR-DATA" }, { 0x0050C2, 0x39B000, 0x39BFFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x0050C2, 0x39C000, 0x39CFFF, "TIYODA MFG CO.,LTD.", "TIYODA-MFG" }, { 0x0050C2, 0x39D000, 0x39DFFF, "DigitalDeck, Inc.", "DIGITALDECK" }, { 0x0050C2, 0x39E000, 0x39EFFF, "A.R.G ElectroDesign Ltd", "A-R-G-ELECTRODESIGN" }, { 0x0050C2, 0x39F000, 0x39FFFF, "Isensix", "ISENSIX" }, { 0x0050C2, 0x3A0000, 0x3A0FFF, "StreetFire Sound Labs, LLC", "STREETFIRE-SOUND-LABS" }, { 0x0050C2, 0x3A1000, 0x3A1FFF, "Samsoft", "SAMSOFT" }, { 0x0050C2, 0x3A2000, 0x3A2FFF, "Vegas Amusement", "VEGAS-AMUSEMENT" }, { 0x0050C2, 0x3A3000, 0x3A3FFF, "Star Link Communication Pvt. Ltd.", "STAR-LINK-COMMUNICATION-PVT" }, { 0x0050C2, 0x3A4000, 0x3A4FFF, "Silvertree Engineering Ltd", "SILVERTREE-ENGINEERING" }, { 0x0050C2, 0x3A5000, 0x3A5FFF, "LabJack Corporation", "LABJACK" }, { 0x0050C2, 0x3A6000, 0x3A6FFF, "IntelliDesign Pty Ltd", "INTELLIDESIGN-PTY" }, { 0x0050C2, 0x3A7000, 0x3A7FFF, "Elektrotechnik & Elektronik Oltmann GmbH", "ELEKTROTECHNIK-ELEKTRONIK-OLTMANN" }, { 0x0050C2, 0x3A8000, 0x3A8FFF, "Engim, Inc.", "ENGIM" }, { 0x0050C2, 0x3A9000, 0x3A9FFF, "Westronic Systems Inc.", "WESTRONIC" }, { 0x0050C2, 0x3AA000, 0x3AAFFF, "Networked Robotics Corporation", "NETWORKED-ROBOTICS" }, { 0x0050C2, 0x3AB000, 0x3ABFFF, "taskit Rechnertechnik GmbH", "TASKIT-RECHNERTECHNIK" }, { 0x0050C2, 0x3AC000, 0x3ACFFF, "InAccess Networks", "INACCESS-NETWORKS" }, { 0x0050C2, 0x3AD000, 0x3ADFFF, "Spirent Communications (Scotland) Limited", "SPIRENT-COMMUNICATION-SCOTLAND" }, { 0x0050C2, 0x3AE000, 0x3AEFFF, "Hankuk Tapi Computer Co., Ltd", "HANKUK-TAPI" }, { 0x0050C2, 0x3AF000, 0x3AFFFF, "Norbit ODM AS", "NORBIT-ODM-AS" }, { 0x0050C2, 0x3B0000, 0x3B0FFF, "Microtarget Tecnologia Digital Ltda.", "MICROTARGET-TECNOLOGIA-DIGITAL-LTDA" }, { 0x0050C2, 0x3B1000, 0x3B1FFF, "Specstroy-Svyaz Ltd", "SPECSTROY-SVYAZ" }, { 0x0050C2, 0x3B2000, 0x3B2FFF, "Tennessee Valley Authority", "TENNESSEE-VALLEY-AUTHORITY" }, { 0x0050C2, 0x3B3000, 0x3B3FFF, "Media Lab., Inc.", "MEDIA-LAB" }, { 0x0050C2, 0x3B4000, 0x3B4FFF, "Contrôle Analytique inc.", "CONTRLE-ANALYTIQUE" }, { 0x0050C2, 0x3B5000, 0x3B5FFF, "NEC TOKIN Corporation", "NEC-TOKIN" }, { 0x0050C2, 0x3B6000, 0x3B6FFF, "Arecont Vision", "ARECONT-VISION" }, { 0x0050C2, 0x3B7000, 0x3B7FFF, "Mindspeed Technologies", "MINDSPEED-TECHNOLOGIES" }, { 0x0050C2, 0x3B8000, 0x3B8FFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0x3B9000, 0x3B9FFF, "Gilbarco Autotank AB", "GILBARCO-AUTOTANK-AB" }, { 0x0050C2, 0x3BA000, 0x3BAFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x3BB000, 0x3BBFFF, "IMAGO Technologies GmbH", "IMAGO-TECHNOLOGIES" }, { 0x0050C2, 0x3BC000, 0x3BCFFF, "Tyzx, Inc.", "TYZX" }, { 0x0050C2, 0x3BD000, 0x3BDFFF, "Bigbang L.T.D.", "BIGBANG-L-T-D" }, { 0x0050C2, 0x3BE000, 0x3BEFFF, "Pauly Steuer- und Regelanlagen GmbH & Co. KG", "PAULY-STEUER-UND-REGELANLAGEN" }, { 0x0050C2, 0x3BF000, 0x3BFFFF, "Audio Processing Technology Ltd", "AUDIO-PROCESSING" }, { 0x0050C2, 0x3C0000, 0x3C0FFF, "EDA Industries Pte. Ltd", "EDA-INDUSTRIES-PTE" }, { 0x0050C2, 0x3C1000, 0x3C1FFF, "MicroTek Electronics, Inc.", "MICROTEK-ELECTRONICS" }, { 0x0050C2, 0x3C2000, 0x3C2FFF, "Casabyte Inc.", "CASABYTE" }, { 0x0050C2, 0x3C3000, 0x3C3FFF, "4g Technologies, L.P.", "4G-TECHNOLOGIES-L-P" }, { 0x0050C2, 0x3C4000, 0x3C4FFF, "Sypris Electronics", "SYPRIS-ELECTRONICS" }, { 0x0050C2, 0x3C5000, 0x3C5FFF, "Silicon Optix Canada Inc.", "SILICON-OPTIX-CANADA" }, { 0x0050C2, 0x3C6000, 0x3C6FFF, "Net Optics", "NET-OPTICS" }, { 0x0050C2, 0x3C7000, 0x3C7FFF, "Salent Technologies Ltd", "SALENT-TECHNOLOGIES" }, { 0x0050C2, 0x3C8000, 0x3C8FFF, "Wheels of Zeus Inc.", "WHEELS-OF-ZEUS" }, { 0x0050C2, 0x3C9000, 0x3C9FFF, "Dilax Intelcom AG", "DILAX-INTELCOM" }, { 0x0050C2, 0x3CA000, 0x3CAFFF, "ABB Inc.", "ABB" }, { 0x0050C2, 0x3CB000, 0x3CBFFF, "Analytica GmbH", "ANALYTICA" }, { 0x0050C2, 0x3CC000, 0x3CCFFF, "Linkwell Telesystems Pvt Ltd", "LINKWELL-TELESYSTEMS-PVT" }, { 0x0050C2, 0x3CD000, 0x3CDFFF, "Micro-Measurements", "MICRO-MEASUREMENTS" }, { 0x0050C2, 0x3CE000, 0x3CEFFF, "Ward Leonard Electric Company", "WARD-LEONARD-ELECTRIC-COMPANY" }, { 0x0050C2, 0x3CF000, 0x3CFFFF, "Technovare Systems, Inc.", "TECHNOVARE" }, { 0x0050C2, 0x3D0000, 0x3D0FFF, "Micro-Robotics Limited", "MICRO-ROBOTICS" }, { 0x0050C2, 0x3D1000, 0x3D1FFF, "Braintronics BV", "BRAINTRONICS" }, { 0x0050C2, 0x3D2000, 0x3D2FFF, "Adilec Enginyeria SL", "ADILEC-ENGINYERIA-SL" }, { 0x0050C2, 0x3D3000, 0x3D3FFF, "American LED-gible Inc.", "AMERICAN-LED-GIBLE" }, { 0x0050C2, 0x3D4000, 0x3D4FFF, "Wisnu and Supak Co.,Ltd.", "WISNU-AND-SUPAK" }, { 0x0050C2, 0x3D5000, 0x3D5FFF, "Fluke Biomedical, Radiation Management Services", "FLUKE-BIOMEDICAL-RADIATION-MANAGEMENT-SERVICES" }, { 0x0050C2, 0x3D6000, 0x3D6FFF, "Comlab Inc.", "COMLAB" }, { 0x0050C2, 0x3D7000, 0x3D7FFF, "TTC TELEKOMUNIKACE Ltd", "TTC-TELEKOMUNIKACE" }, { 0x0050C2, 0x3D8000, 0x3D8FFF, "Key Systems , Inc.", "KEY" }, { 0x0050C2, 0x3D9000, 0x3D9FFF, "Bavaria Digital Technik GmbH", "BAVARIA-DIGITAL-TECHNIK" }, { 0x0050C2, 0x3DA000, 0x3DAFFF, "M5 Data Limited", "M5-DATA" }, { 0x0050C2, 0x3DB000, 0x3DBFFF, "Osmetech Inc.", "OSMETECH" }, { 0x0050C2, 0x3DC000, 0x3DCFFF, "3D perception AS", "3D-PERCEPTION-AS" }, { 0x0050C2, 0x3DD000, 0x3DDFFF, "ELMIC GmbH", "ELMIC" }, { 0x0050C2, 0x3DE000, 0x3DEFFF, "ABB Power Technologies S.p.A. Unità  Operativa SACE (PTMV)", "ABB-POWER-TECHNOLOGIES-S-P-A-UNIT-OPERATIVA-SACE-PTMV" }, { 0x0050C2, 0x3DF000, 0x3DFFFF, "BiODE Inc.", "BIODE" }, { 0x0050C2, 0x3E0000, 0x3E0FFF, "Oy Stinghorn Ltd", "OY-STINGHORN" }, { 0x0050C2, 0x3E1000, 0x3E1FFF, "NeuLion Incorporated", "NEULION-INCORPORATED" }, { 0x0050C2, 0x3E2000, 0x3E2FFF, "SysNova", "SYSNOVA" }, { 0x0050C2, 0x3E3000, 0x3E3FFF, "CSIRO - Division of Exploration and Mining", "CSIRO-DIVISION-OF-EXPLORATION-AND-MINING" }, { 0x0050C2, 0x3E4000, 0x3E4FFF, "CUE, a.s.", "CUE" }, { 0x0050C2, 0x3E5000, 0x3E5FFF, "Vacon Plc", "VACON-PLC" }, { 0x0050C2, 0x3E6000, 0x3E6FFF, "CRDE", "CRDE" }, { 0x0050C2, 0x3E7000, 0x3E7FFF, "Revolution Education Ltd", "REVOLUTION-EDUCATION" }, { 0x0050C2, 0x3E8000, 0x3E8FFF, "Conformative Systems, Inc.", "CONFORMATIVE" }, { 0x0050C2, 0x3E9000, 0x3E9FFF, "MedAvant Healthcare", "MEDAVANT-HEALTHCARE" }, { 0x0050C2, 0x3EA000, 0x3EAFFF, "Alro Information Systems SA", "ALRO-INFORMATION" }, { 0x0050C2, 0x3EB000, 0x3EBFFF, "ISS International", "ISS" }, { 0x0050C2, 0x3EC000, 0x3ECFFF, "Teneros", "TENEROS" }, { 0x0050C2, 0x3ED000, 0x3EDFFF, "The Board Room Inc.", "THE-BOARD-ROOM" }, { 0x0050C2, 0x3EE000, 0x3EEFFF, "Commoca, Inc", "COMMOCA" }, { 0x0050C2, 0x3EF000, 0x3EFFFF, "PAT Industries, DBA Pacific Advanced Technology", "PAT-INDUSTRIES-DBA-PACIFIC-ADVANCED" }, { 0x0050C2, 0x3F0000, 0x3F0FFF, "megatec electronic GmbH", "MEGATEC" }, { 0x0050C2, 0x3F1000, 0x3F1FFF, "Salland Electronics Holding BV", "SALLAND-ELECTRONICS-HOLDING" }, { 0x0050C2, 0x3F2000, 0x3F2FFF, "STL GmbH", "STL" }, { 0x0050C2, 0x3F3000, 0x3F3FFF, "Hitachi Energy Germany AG", "HITACHI-ENERGY-GERMANY" }, { 0x0050C2, 0x3F4000, 0x3F4FFF, "MC TECHNOLOGY GmbH", "MC" }, { 0x0050C2, 0x3F5000, 0x3F5FFF, "Phaedrus Limited", "PHAEDRUS" }, { 0x0050C2, 0x3F6000, 0x3F6FFF, "dAFTdATA Limited", "DAFTDATA" }, { 0x0050C2, 0x3F7000, 0x3F7FFF, "Advantage R&D", "ADVANTAGE-R-D" }, { 0x0050C2, 0x3F8000, 0x3F8FFF, "Superna Ltd", "SUPERNA" }, { 0x0050C2, 0x3F9000, 0x3F9FFF, "Sintium Ltd", "SINTIUM" }, { 0x0050C2, 0x3FA000, 0x3FAFFF, "Tumsan", "TUMSAN" }, { 0x0050C2, 0x3FB000, 0x3FBFFF, "nVent, Schroff GmbH", "NVENT-SCHROFF" }, { 0x0050C2, 0x3FC000, 0x3FCFFF, "Weinberger Deutschland GmbH", "WEINBERGER-DEUTSCHLAND" }, { 0x0050C2, 0x3FD000, 0x3FDFFF, "HARTMANN software GbR", "HARTMANN-SOFTWARE-GBR" }, { 0x0050C2, 0x3FE000, 0x3FEFFF, "HaiVision Systems Inc", "HAIVISION" }, { 0x0050C2, 0x3FF000, 0x3FFFFF, "Cast Iron Systems", "CAST-IRON" }, { 0x0050C2, 0x400000, 0x400FFF, "SmartMotor AS", "SMARTMOTOR-AS" }, { 0x0050C2, 0x401000, 0x401FFF, "Promess Incorporated", "PROMESS-INCORPORATED" }, { 0x0050C2, 0x402000, 0x402FFF, "Numeron Sp. z o.o.", "NUMERON-SP-Z-O-O" }, { 0x0050C2, 0x403000, 0x403FFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x0050C2, 0x404000, 0x404FFF, "NanShanBridge Co.Ltd", "NANSHANBRIDGE" }, { 0x0050C2, 0x405000, 0x405FFF, "Guralp Systems Limited", "GURALP" }, { 0x0050C2, 0x406000, 0x406FFF, "CoreStreet, Ltd", "CORESTREET" }, { 0x0050C2, 0x407000, 0x407FFF, "AIE Etudes", "AIE-ETUDES" }, { 0x0050C2, 0x408000, 0x408FFF, "TERN, Inc.", "TERN" }, { 0x0050C2, 0x409000, 0x409FFF, "KTEC LTD", "KTEC" }, { 0x0050C2, 0x40A000, 0x40AFFF, "Contec Steuerungstechnik & Automation GmbH", "CONTEC-STEUERUNGSTECHNIK-AUTOMATION" }, { 0x0050C2, 0x40B000, 0x40BFFF, "Center VOSPI JSC", "CENTER-VOSPI-JSC" }, { 0x0050C2, 0x40C000, 0x40CFFF, "Applied Materials UK Ltd", "APPLIED-MATERIALS-UK" }, { 0x0050C2, 0x40D000, 0x40DFFF, "Afonics Fibreoptics Ltd", "AFONICS-FIBREOPTICS" }, { 0x0050C2, 0x40E000, 0x40EFFF, "ads-tec GmbH", "ADS-TEC" }, { 0x0050C2, 0x40F000, 0x40FFFF, "BIR,INC.", "BIR" }, { 0x0050C2, 0x410000, 0x410FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x0050C2, 0x411000, 0x411FFF, "Multimessage Systems Ltd.", "MULTIMESSAGE" }, { 0x0050C2, 0x412000, 0x412FFF, "TSB Solutions Inc.", "TSB-SOLUTIONS" }, { 0x0050C2, 0x413000, 0x413FFF, "Goodrich", "GOODRICH" }, { 0x0050C2, 0x414000, 0x414FFF, "Talleres de Escoriaza SA", "TALLERES-DE-ESCORIAZA" }, { 0x0050C2, 0x415000, 0x415FFF, "SensoTech GmbH", "SENSOTECH" }, { 0x0050C2, 0x416000, 0x416FFF, "SELCO s.r.l.", "SELCO" }, { 0x0050C2, 0x417000, 0x417FFF, "QT systems ab", "QT-AB" }, { 0x0050C2, 0x418000, 0x418FFF, "Planea Oy", "PLANEA-OY" }, { 0x0050C2, 0x419000, 0x419FFF, "Mecsel Oy", "MECSEL-OY" }, { 0x0050C2, 0x41A000, 0x41AFFF, "Bluewater Systems Ltd", "BLUEWATER" }, { 0x0050C2, 0x41B000, 0x41BFFF, "LogiM GmbH Software und Entwicklung", "LOGIM-SOFTWARE-UND-ENTWICKLUNG" }, { 0x0050C2, 0x41C000, 0x41CFFF, "Infrasafe, Inc.", "INFRASAFE" }, { 0x0050C2, 0x41D000, 0x41DFFF, "Altronic, Inc.", "ALTRONIC" }, { 0x0050C2, 0x41E000, 0x41EFFF, "Videotek Sistemas Eletronicos Ltda.", "VIDEOTEK-SISTEMAS-ELETRONICOS-LTDA" }, { 0x0050C2, 0x41F000, 0x41FFFF, "Avionica, Inc", "AVIONICA" }, { 0x0050C2, 0x420000, 0x420FFF, "Boundless Technologies", "BOUNDLESS-TECHNOLOGIES" }, { 0x0050C2, 0x421000, 0x421FFF, "EFSYS", "EFSYS" }, { 0x0050C2, 0x422000, 0x422FFF, "ads-tec GmbH", "ADS-TEC" }, { 0x0050C2, 0x423000, 0x423FFF, "Power-One Inc.", "POWER-ONE" }, { 0x0050C2, 0x424000, 0x424FFF, "Metrolab Technology SA", "METROLAB" }, { 0x0050C2, 0x425000, 0x425FFF, "Pinnacle Technology", "PINNACLE" }, { 0x0050C2, 0x426000, 0x426FFF, "STOM System", "STOM-SYSTEM" }, { 0x0050C2, 0x427000, 0x427FFF, "Scheidt & Bachmann GmbH", "SCHEIDT-BACHMANN" }, { 0x0050C2, 0x428000, 0x428FFF, "Roxar A/S", "ROXAR-A/S" }, { 0x0050C2, 0x429000, 0x429FFF, "Matthews Australasia", "MATTHEWS-AUSTRALASIA" }, { 0x0050C2, 0x42A000, 0x42AFFF, "DSP DESIGN", "DSP-DESIGN" }, { 0x0050C2, 0x42B000, 0x42BFFF, "VLSIP TECHNOLOGIES, INC.", "VLSIP-TECHNOLOGIES" }, { 0x0050C2, 0x42C000, 0x42CFFF, "Trapeze Software Group Inc", "TRAPEZE-SOFTWARE-GROUP" }, { 0x0050C2, 0x42D000, 0x42DFFF, "Argo-Tech", "ARGO-TECH" }, { 0x0050C2, 0x42E000, 0x42EFFF, "Oelmann Elektronik GmbH", "OELMANN-ELEKTRONIK" }, { 0x0050C2, 0x42F000, 0x42FFFF, "Win4NET", "WIN4NET" }, { 0x0050C2, 0x430000, 0x430FFF, "Arcom Digital", "ARCOM-DIGITAL" }, { 0x0050C2, 0x431000, 0x431FFF, "Octatron, Inc.", "OCTATRON" }, { 0x0050C2, 0x432000, 0x432FFF, "Topway Industries Ltd.", "TOPWAY-INDUSTRIES" }, { 0x0050C2, 0x433000, 0x433FFF, "Idetech Europe S.A.", "IDETECH-EUROPE" }, { 0x0050C2, 0x434000, 0x434FFF, "ImperativeNetworks", "IMPERATIVENETWORKS" }, { 0x0050C2, 0x435000, 0x435FFF, "ADATEL TELECOMUNICACIONES S.A.", "ADATEL-TELECOMUNICACIONES" }, { 0x0050C2, 0x436000, 0x436FFF, "Satellite Services BV", "SATELLITE-SERVICES" }, { 0x0050C2, 0x437000, 0x437FFF, "PowerWAN, Inc", "POWERWAN" }, { 0x0050C2, 0x438000, 0x438FFF, "Telecom Protection Technologies Limited", "TELECOM-PROTECTION-TECHNOLOGIES" }, { 0x0050C2, 0x439000, 0x439FFF, "Peleton Photonic Systems", "PELETON-PHOTONIC" }, { 0x0050C2, 0x43A000, 0x43AFFF, "ProDesign GmbH", "PRODESIGN" }, { 0x0050C2, 0x43B000, 0x43BFFF, "A3IP", "A3IP" }, { 0x0050C2, 0x43C000, 0x43CFFF, "Ducommun LaBarge Technologies, Inc", "DUCOMMUN-LABARGE-TECHNOLOGIES" }, { 0x0050C2, 0x43D000, 0x43DFFF, "Ann Arbor Sensor Systems LLC", "ANN-ARBOR-SENSOR" }, { 0x0050C2, 0x43E000, 0x43EFFF, "Coppercom", "COPPERCOM" }, { 0x0050C2, 0x43F000, 0x43FFFF, "ARVOO Imaging Products BV", "ARVOO-IMAGING-PRODUCTS" }, { 0x0050C2, 0x440000, 0x440FFF, "Advanced Modular Computers Ltd.", "ADVANCED-MODULAR-COMPUTERS" }, { 0x0050C2, 0x441000, 0x441FFF, "Sammi Information Systems Co.,Ltd", "SAMMI-INFORMATION" }, { 0x0050C2, 0x442000, 0x442FFF, "Pico Computing, Inc.", "PICO-COMPUTING" }, { 0x0050C2, 0x443000, 0x443FFF, "Pickering Laboratories", "PICKERING-LABORATORIES" }, { 0x0050C2, 0x444000, 0x444FFF, "Offshore Systems Ltd", "OFFSHORE" }, { 0x0050C2, 0x445000, 0x445FFF, "MICRONIC s.r.o.", "MICRONIC-S-R-O" }, { 0x0050C2, 0x446000, 0x446FFF, "Micro Technic A-S", "MICRO-TECHNIC" }, { 0x0050C2, 0x447000, 0x447FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x0050C2, 0x448000, 0x448FFF, "Comtech Systems Inc.", "COMTECH" }, { 0x0050C2, 0x449000, 0x449FFF, "BLEILE DATENTECHNIK GmbH", "BLEILE-DATENTECHNIK" }, { 0x0050C2, 0x44A000, 0x44AFFF, "Elettronica Santerno SpA", "ELETTRONICA-SANTERNO-SPA" }, { 0x0050C2, 0x44B000, 0x44BFFF, "Solace Systems, Inc.", "SOLACE" }, { 0x0050C2, 0x44C000, 0x44CFFF, "Computime Systems UK Ltd.", "COMPUTIME-UK" }, { 0x0050C2, 0x44D000, 0x44DFFF, "Electro-Matic Products, Inc.", "ELECTRO-MATIC-PRODUCTS" }, { 0x0050C2, 0x44E000, 0x44EFFF, "QQ Technology,Inc", "QQ" }, { 0x0050C2, 0x44F000, 0x44FFFF, "kippdata GmbH", "KIPPDATA" }, { 0x0050C2, 0x450000, 0x450FFF, "Enconair Ecological Chambers Inc.", "ENCONAIR-ECOLOGICAL-CHAMBERS" }, { 0x0050C2, 0x451000, 0x451FFF, "HAMEG GmbH", "HAMEG" }, { 0x0050C2, 0x452000, 0x452FFF, "Scame Sistemi srl", "SCAME-SISTEMI-SRL" }, { 0x0050C2, 0x453000, 0x453FFF, "Erhardt+Leimer GmbH", "ERHARDT+LEIMER" }, { 0x0050C2, 0x454000, 0x454FFF, "Brivo Systems, LLC", "BRIVO" }, { 0x0050C2, 0x455000, 0x455FFF, "Gogo BA", "GOGO-BA" }, { 0x0050C2, 0x456000, 0x456FFF, "DRDC Valcartier", "DRDC-VALCARTIER" }, { 0x0050C2, 0x457000, 0x457FFF, "Danbridge", "DANBRIDGE" }, { 0x0050C2, 0x458000, 0x458FFF, "HRZ data GmbH", "HRZ-DATA" }, { 0x0050C2, 0x459000, 0x459FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x45A000, 0x45AFFF, "Funkwerk plettac electronic GmbH", "FUNKWERK-PLETTAC" }, { 0x0050C2, 0x45B000, 0x45BFFF, "Matra Electronique", "MATRA-ELECTRONIQUE" }, { 0x0050C2, 0x45C000, 0x45CFFF, "Deister Electronic GmbH", "DEISTER" }, { 0x0050C2, 0x45D000, 0x45DFFF, "Digital Engineering, Inc.", "DIGITAL-ENGINEERING" }, { 0x0050C2, 0x45E000, 0x45EFFF, "Halliburton - Sperry Drilling Service", "HALLIBURTON-SPERRY-DRILLING-SERVICE" }, { 0x0050C2, 0x45F000, 0x45FFFF, "T2C Marketing AB", "T2C-MARKETING-AB" }, { 0x0050C2, 0x460000, 0x460FFF, "Vitelnet", "VITELNET" }, { 0x0050C2, 0x461000, 0x461FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x0050C2, 0x462000, 0x462FFF, "CT Company", "CT-COMPANY" }, { 0x0050C2, 0x463000, 0x463FFF, "Codem Systems, Inc.", "CODEM" }, { 0x0050C2, 0x464000, 0x464FFF, "XYTAC system technologies", "XYTAC-SYSTEM-TECHNOLOGIES" }, { 0x0050C2, 0x465000, 0x465FFF, "PDTS GmbH", "PDTS" }, { 0x0050C2, 0x466000, 0x466FFF, "LONAP Limited", "LONAP" }, { 0x0050C2, 0x467000, 0x467FFF, "United Western Technologies", "UNITED-WESTERN-TECHNOLOGIES" }, { 0x0050C2, 0x468000, 0x468FFF, "Network I/O", "NETWORK-I/O" }, { 0x0050C2, 0x469000, 0x469FFF, "Bipom Electronics, Inc.", "BIPOM-ELECTRONICS" }, { 0x0050C2, 0x46A000, 0x46AFFF, "ISE GmbH", "ISE" }, { 0x0050C2, 0x46B000, 0x46BFFF, "EASYTECH GmbH", "EASYTECH" }, { 0x0050C2, 0x46C000, 0x46CFFF, "CAMCO GmbH", "CAMCO" }, { 0x0050C2, 0x46D000, 0x46DFFF, "Paul Scherrer Institut (PSI)", "PAUL-SCHERRER-INSTITUT-PSI" }, { 0x0050C2, 0x46E000, 0x46EFFF, "Avenir Technologies Inc.", "AVENIR-TECHNOLOGIES" }, { 0x0050C2, 0x46F000, 0x46FFFF, "Neuroware", "NEUROWARE" }, { 0x0050C2, 0x470000, 0x470FFF, "Cybectec inc.", "CYBECTEC" }, { 0x0050C2, 0x471000, 0x471FFF, "Pixtree Technologies, inc.", "PIXTREE-TECHNOLOGIES" }, { 0x0050C2, 0x472000, 0x472FFF, "KOP Ltd", "KOP" }, { 0x0050C2, 0x473000, 0x473FFF, "Sensus Metering Systems Israel", "SENSUS-METERING-ISRAEL" }, { 0x0050C2, 0x474000, 0x474FFF, "Venue 1, Inc.", "VENUE-1" }, { 0x0050C2, 0x475000, 0x475FFF, "ISEPOS GmbH", "ISEPOS" }, { 0x0050C2, 0x476000, 0x476FFF, "Ascon S.p.a.", "ASCON" }, { 0x0050C2, 0x477000, 0x477FFF, "SEV Tidsystem AB", "SEV-TIDSYSTEM-AB" }, { 0x0050C2, 0x478000, 0x478FFF, "Metafix Inc.", "METAFIX" }, { 0x0050C2, 0x479000, 0x479FFF, "Unlimited Bandwidth LLC", "UNLIMITED-BANDWIDTH" }, { 0x0050C2, 0x47A000, 0x47AFFF, "Efficient Channel Coding", "EFFICIENT-CHANNEL-CODING" }, { 0x0050C2, 0x47B000, 0x47BFFF, "Pitney Bowes, Inc", "PITNEY-BOWES" }, { 0x0050C2, 0x47C000, 0x47CFFF, "AUCONET GmbH", "AUCONET" }, { 0x0050C2, 0x47D000, 0x47DFFF, "WIT Inc", "WIT" }, { 0x0050C2, 0x47E000, 0x47EFFF, "Energie Umwelt Systemtechnik GmbH", "ENERGIE-UMWELT-SYSTEMTECHNIK" }, { 0x0050C2, 0x47F000, 0x47FFFF, "BRIT Inc.", "BRIT" }, { 0x0050C2, 0x480000, 0x480FFF, "SELKOM GmbH", "SELKOM" }, { 0x0050C2, 0x481000, 0x481FFF, "Computer Sciences Corp", "SCIENCES" }, { 0x0050C2, 0x482000, 0x482FFF, "PRIAMUS SYSTEM TECHNOLOGIES AG", "PRIAMUS-SYSTEM-TECHNOLOGIES" }, { 0x0050C2, 0x483000, 0x483FFF, "SES", "SES" }, { 0x0050C2, 0x484000, 0x484FFF, "Kooltech LLC", "KOOLTECH" }, { 0x0050C2, 0x485000, 0x485FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x486000, 0x486FFF, "Safegate International AB", "SAFEGATE-AB" }, { 0x0050C2, 0x487000, 0x487FFF, "Eridon Corporation", "ERIDON" }, { 0x0050C2, 0x488000, 0x488FFF, "DA SISTEMI SPA", "DA-SISTEMI-SPA" }, { 0x0050C2, 0x489000, 0x489FFF, "EREE Electronique", "EREE-ELECTRONIQUE" }, { 0x0050C2, 0x48A000, 0x48AFFF, "Mobile Matrix, Inc.", "MOBILE-MATRIX" }, { 0x0050C2, 0x48B000, 0x48BFFF, "ads-tec GmbH", "ADS-TEC" }, { 0x0050C2, 0x48C000, 0x48CFFF, "UNITON AG", "UNITON" }, { 0x0050C2, 0x48D000, 0x48DFFF, "Metron Sp. z o.o.", "METRON-SP-Z-O-O" }, { 0x0050C2, 0x48E000, 0x48EFFF, "Teledyne Tekmar", "TELEDYNE-TEKMAR" }, { 0x0050C2, 0x48F000, 0x48FFFF, "DENGYOSHA co.,LTD.", "DENGYOSHA" }, { 0x0050C2, 0x490000, 0x490FFF, "Cloanto Corporation", "CLOANTO" }, { 0x0050C2, 0x491000, 0x491FFF, "Fr. Sauter AG", "FR-SAUTER" }, { 0x0050C2, 0x492000, 0x492FFF, "TRAFSYS AS", "TRAFSYS-AS" }, { 0x0050C2, 0x493000, 0x493FFF, "Artis GmbH", "ARTIS" }, { 0x0050C2, 0x494000, 0x494FFF, "Ultimate Technology, Inc.", "ULTIMATE" }, { 0x0050C2, 0x495000, 0x495FFF, "VAZA Elektronik AB", "VAZA-ELEKTRONIK-AB" }, { 0x0050C2, 0x496000, 0x496FFF, "Acutelogic Corporation", "ACUTELOGIC" }, { 0x0050C2, 0x497000, 0x497FFF, "Advanced Driver Information Technology GmbH", "ADVANCED-DRIVER-INFORMATION" }, { 0x0050C2, 0x498000, 0x498FFF, "Quartet Technology, Inc.", "QUARTET" }, { 0x0050C2, 0x499000, 0x499FFF, "Trellia Networks", "TRELLIA-NETWORKS" }, { 0x0050C2, 0x49A000, 0x49AFFF, "TelASIC Communications, Inc.", "TELASIC-COMMUNICATION" }, { 0x0050C2, 0x49B000, 0x49BFFF, "vg controls, inc", "VG-CONTROLS" }, { 0x0050C2, 0x49C000, 0x49CFFF, "Envisacor Technologies Inc.", "ENVISACOR-TECHNOLOGIES" }, { 0x0050C2, 0x49D000, 0x49DFFF, "Critical Link LLC", "CRITICAL-LINK" }, { 0x0050C2, 0x49E000, 0x49EFFF, "Armorlink Co .Ltd", "ARMORLINK" }, { 0x0050C2, 0x49F000, 0x49FFFF, "GCS, Inc", "GCS" }, { 0x0050C2, 0x4A0000, 0x4A0FFF, "Advanced technologies & Engineering (pty) Ltd", "ADVANCED-TECHNOLOGIES-ENGINEERING-PTY" }, { 0x0050C2, 0x4A1000, 0x4A1FFF, "nVent, Schroff GmbH", "NVENT-SCHROFF" }, { 0x0050C2, 0x4A2000, 0x4A2FFF, "SPECS GmbH", "SPECS" }, { 0x0050C2, 0x4A3000, 0x4A3FFF, "Protium Technologies, Inc.", "PROTIUM-TECHNOLOGIES" }, { 0x0050C2, 0x4A4000, 0x4A4FFF, "IEEE P1609 WG", "IEEE-P1609-WG" }, { 0x0050C2, 0x4A5000, 0x4A5FFF, "Teledyne Monitor Labs", "TELEDYNE-MONITOR-LABS" }, { 0x0050C2, 0x4A6000, 0x4A6FFF, "BUYANG ELECTRONICS INDUSTRIAL CO., LTD.", "BUYANG-ELECTRONICS-INDUSTRIAL" }, { 0x0050C2, 0x4A7000, 0x4A7FFF, "iseg Spezialelektronik GmbH", "ISEG-SPEZIALELEKTRONIK" }, { 0x0050C2, 0x4A8000, 0x4A8FFF, "CYJAYA Korea", "CYJAYA-KOREA" }, { 0x0050C2, 0x4A9000, 0x4A9FFF, "Faber Electronics BV", "FABER-ELECTRONICS" }, { 0x0050C2, 0x4AA000, 0x4AAFFF, "HEINEN ELEKTRONIK GmbH", "HEINEN-ELEKTRONIK" }, { 0x0050C2, 0x4AB000, 0x4ABFFF, "JVF Communications Ltd", "JVF-COMMUNICATION" }, { 0x0050C2, 0x4AC000, 0x4ACFFF, "Doramu Co.,Ltd.", "DORAMU" }, { 0x0050C2, 0x4AD000, 0x4ADFFF, "OpenPeak, Inc.", "OPENPEAK" }, { 0x0050C2, 0x4AE000, 0x4AEFFF, "ads-tec GmbH", "ADS-TEC" }, { 0x0050C2, 0x4AF000, 0x4AFFFF, "Orbis Oy", "ORBIS-OY" }, { 0x0050C2, 0x4B0000, 0x4B0FFF, "Esmart Distribution Pte Ltd", "ESMART-DISTRIBUTION-PTE" }, { 0x0050C2, 0x4B1000, 0x4B1FFF, "NSFOCUS Information Technology Co., Ltd.", "NSFOCUS-INFORMATION" }, { 0x0050C2, 0x4B2000, 0x4B2FFF, "TESLA, a.s.", "TESLA" }, { 0x0050C2, 0x4B3000, 0x4B3FFF, "ANSA Corporation", "ANSA" }, { 0x0050C2, 0x4B4000, 0x4B4FFF, "Matrix Audio Designs", "MATRIX-AUDIO-DESIGNS" }, { 0x0050C2, 0x4B5000, 0x4B5FFF, "Valley Tecnologia", "VALLEY-TECNOLOGIA" }, { 0x0050C2, 0x4B6000, 0x4B6FFF, "General Resources Co., LTD.", "GENERAL-RESOURCES" }, { 0x0050C2, 0x4B7000, 0x4B7FFF, "GFI Chrono Time", "GFI-CHRONO-TIME" }, { 0x0050C2, 0x4B8000, 0x4B8FFF, "Shenzhen Hongdian Technologies.,Ltd", "SHENZHEN-HONGDIAN-TECHNOLOGIES" }, { 0x0050C2, 0x4B9000, 0x4B9FFF, "Rose Technologies", "ROSE-TECHNOLOGIES" }, { 0x0050C2, 0x4BA000, 0x4BAFFF, "Mistletoe Technologies", "MISTLETOE-TECHNOLOGIES" }, { 0x0050C2, 0x4BB000, 0x4BBFFF, "Protonic Holland", "PROTONIC-HOLLAND" }, { 0x0050C2, 0x4BC000, 0x4BCFFF, "Saia Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0x4BD000, 0x4BDFFF, "Argon ST", "ARGON-ST" }, { 0x0050C2, 0x4BE000, 0x4BEFFF, "Digital Dynamics, Inc.", "DIGITAL-DYNAMICS" }, { 0x0050C2, 0x4BF000, 0x4BFFFF, "Westinghouse Rail Systems Ltd", "WESTINGHOUSE-RAIL" }, { 0x0050C2, 0x4C0000, 0x4C0FFF, "Bio-logic Systems Corp", "BIO-LOGIC" }, { 0x0050C2, 0x4C1000, 0x4C1FFF, "Movaz Networks, Inc.", "MOVAZ-NETWORKS" }, { 0x0050C2, 0x4C2000, 0x4C2FFF, "Elbit Systems Ltd.", "ELBIT" }, { 0x0050C2, 0x4C3000, 0x4C3FFF, "Quantum3D, Inc.", "QUANTUM3D" }, { 0x0050C2, 0x4C4000, 0x4C4FFF, "Black Diamond Video, Inc.", "BLACK-DIAMOND-VIDEO" }, { 0x0050C2, 0x4C5000, 0x4C5FFF, "eXray Broadband Inc.", "EXRAY-BROADBAND" }, { 0x0050C2, 0x4C6000, 0x4C6FFF, "Rubin Ltd.", "RUBIN" }, { 0x0050C2, 0x4C7000, 0x4C7FFF, "Transbit Sp.z o.o.", "TRANSBIT-SP-Z-O-O" }, { 0x0050C2, 0x4C8000, 0x4C8FFF, "Neets", "NEETS" }, { 0x0050C2, 0x4C9000, 0x4C9FFF, "Scirocco AB", "SCIROCCO-AB" }, { 0x0050C2, 0x4CA000, 0x4CAFFF, "Yarg Biometrics Limited", "YARG-BIOMETRICS" }, { 0x0050C2, 0x4CB000, 0x4CBFFF, "Verint Systems Ltd", "VERINT" }, { 0x0050C2, 0x4CC000, 0x4CCFFF, "ImpediMed Limited", "IMPEDIMED" }, { 0x0050C2, 0x4CD000, 0x4CDFFF, "Securiton AG", "SECURITON" }, { 0x0050C2, 0x4CE000, 0x4CEFFF, "Open Date Equipment Limited", "OPEN-DATE-EQUIPMENT" }, { 0x0050C2, 0x4CF000, 0x4CFFFF, "Ziehl-Abegg AG", "ZIEHL-ABEGG" }, { 0x0050C2, 0x4D0000, 0x4D0FFF, "RCS Energy Management Ltd", "RCS-ENERGY-MANAGEMENT" }, { 0x0050C2, 0x4D1000, 0x4D1FFF, "SLICAN sp. z o.o.", "SLICAN-SP-Z-O-O" }, { 0x0050C2, 0x4D2000, 0x4D2FFF, "Twoway CATV SERVICE INC.", "TWOWAY-CATV-SERVICE" }, { 0x0050C2, 0x4D3000, 0x4D3FFF, "ELPROC sp. z o.o.", "ELPROC-SP-Z-O-O" }, { 0x0050C2, 0x4D4000, 0x4D4FFF, "Herholdt Controls srl", "HERHOLDT-CONTROLS-SRL" }, { 0x0050C2, 0x4D5000, 0x4D5FFF, "SEBA Design Pty Ltd", "SEBA-DESIGN-PTY" }, { 0x0050C2, 0x4D6000, 0x4D6FFF, "Ingenieurbüro Schober", "INGENIEURBUERO-SCHOBER" }, { 0x0050C2, 0x4D7000, 0x4D7FFF, "DELTA TAU DATA SYSTEMS, INC.", "DELTA-TAU-DATA" }, { 0x0050C2, 0x4D8000, 0x4D8FFF, "Avantry Ltd.", "AVANTRY" }, { 0x0050C2, 0x4D9000, 0x4D9FFF, "GE Security Kampro", "GE-SECURITY-KAMPRO" }, { 0x0050C2, 0x4DA000, 0x4DAFFF, "MEDIORNET GmbH", "MEDIORNET" }, { 0x0050C2, 0x4DB000, 0x4DBFFF, "Alfing Montagetechnik GmbH", "ALFING-MONTAGETECHNIK" }, { 0x0050C2, 0x4DC000, 0x4DCFFF, "Ace Electronics, Inc.", "ACE-ELECTRONICS" }, { 0x0050C2, 0x4DD000, 0x4DDFFF, "Truteq Wireless (PTY) Ltd.", "TRUTEQ-WIRELESS-PTY" }, { 0x0050C2, 0x4DE000, 0x4DEFFF, "GD Mission Systems", "GD-MISSION" }, { 0x0050C2, 0x4DF000, 0x4DFFFF, "Thermo Electron", "THERMO-ELECTRON" }, { 0x0050C2, 0x4E0000, 0x4E0FFF, "Telematrix", "TELEMATRIX" }, { 0x0050C2, 0x4E1000, 0x4E1FFF, "SS Telecoms CC", "SS-TELECOMS-CC" }, { 0x0050C2, 0x4E2000, 0x4E2FFF, "Applied Research Laboratories: UT", "APPLIED-RESEARCH-LABORATORIES:-UT" }, { 0x0050C2, 0x4E3000, 0x4E3FFF, "Romteck Pty Ltd", "ROMTECK-PTY" }, { 0x0050C2, 0x4E4000, 0x4E4FFF, "Embigence GmbH", "EMBIGENCE" }, { 0x0050C2, 0x4E5000, 0x4E5FFF, "Sedo Systems Ltd", "SEDO" }, { 0x0050C2, 0x4E6000, 0x4E6FFF, "Photonic Bridges Inc.", "PHOTONIC-BRIDGES" }, { 0x0050C2, 0x4E7000, 0x4E7FFF, "Computerized Elevator Contol", "COMPUTERIZED-ELEVATOR-CONTOL" }, { 0x0050C2, 0x4E8000, 0x4E8FFF, "SATEL sp. z o.o.", "SATEL-SP-Z-O-O" }, { 0x0050C2, 0x4E9000, 0x4E9FFF, "Seachange international", "SEACHANGE" }, { 0x0050C2, 0x4EA000, 0x4EAFFF, "PMC", "PMC" }, { 0x0050C2, 0x4EB000, 0x4EBFFF, "Mandozzi Elettronica SA", "MANDOZZI-ELETTRONICA" }, { 0x0050C2, 0x4EC000, 0x4ECFFF, "Thales Defence and Security Systems GmbH", "THALES-DEFENCE-AND-SECURITY" }, { 0x0050C2, 0x4ED000, 0x4EDFFF, "Lab X Technologies, LLC", "LAB-X-TECHNOLOGIES" }, { 0x0050C2, 0x4EE000, 0x4EEFFF, "Beijing Corelogic Communication Co., Ltd.", "BEIJING-CORELOGIC-COMMUNICATION" }, { 0x0050C2, 0x4EF000, 0x4EFFFF, "Creative Retail Entertainment", "CREATIVE-RETAIL-ENTERTAINMENT" }, { 0x0050C2, 0x4F0000, 0x4F0FFF, "MedAvant Healthcare", "MEDAVANT-HEALTHCARE" }, { 0x0050C2, 0x4F1000, 0x4F1FFF, "Packet Island Inc.", "PACKET-ISLAND" }, { 0x0050C2, 0x4F2000, 0x4F2FFF, "Tantronic AG", "TANTRONIC" }, { 0x0050C2, 0x4F3000, 0x4F3FFF, "Autronica Fire And Securirty", "AUTRONICA-FIRE-AND-SECURIRTY" }, { 0x0050C2, 0x4F4000, 0x4F4FFF, "O2RUN", "O2RUN" }, { 0x0050C2, 0x4F5000, 0x4F5FFF, "Monroe Electronics, Inc.", "MONROE-ELECTRONICS" }, { 0x0050C2, 0x4F6000, 0x4F6FFF, "RealD, Inc.", "REALD" }, { 0x0050C2, 0x4F7000, 0x4F7FFF, "WaveIP", "WAVEIP" }, { 0x0050C2, 0x4F8000, 0x4F8FFF, "Prodco International Inc.", "PRODCO" }, { 0x0050C2, 0x4F9000, 0x4F9FFF, "RTDS Technologies Inc.", "RTDS-TECHNOLOGIES" }, { 0x0050C2, 0x4FA000, 0x4FAFFF, "Cambridge Technology, Inc.", "CAMBRIDGE" }, { 0x0050C2, 0x4FB000, 0x4FBFFF, "BES Technology Group", "BES-GROUP" }, { 0x0050C2, 0x4FC000, 0x4FCFFF, "Hwayoung RF Solution Inc", "HWAYOUNG-RF-SOLUTION" }, { 0x0050C2, 0x4FD000, 0x4FDFFF, "Network Automation mxc AB", "NETWORK-AUTOMATION-MXC-AB" }, { 0x0050C2, 0x4FE000, 0x4FEFFF, "GEM ELETTRONICA Srl", "GEM-ELETTRONICA-SRL" }, { 0x0050C2, 0x4FF000, 0x4FFFFF, "Dakty GmbH", "DAKTY" }, { 0x0050C2, 0x500000, 0x500FFF, "Orenco Systems, Inc.", "ORENCO" }, { 0x0050C2, 0x501000, 0x501FFF, "IBEX UK Limited", "IBEX-UK" }, { 0x0050C2, 0x502000, 0x502FFF, "Criterion Systems Limited", "CRITERION" }, { 0x0050C2, 0x503000, 0x503FFF, "RESPIRONICS INC.", "RESPIRONICS" }, { 0x0050C2, 0x504000, 0x504FFF, "Aphex Systems Ltd.", "APHEX" }, { 0x0050C2, 0x505000, 0x505FFF, "Computerwise, Inc.", "COMPUTERWISE" }, { 0x0050C2, 0x506000, 0x506FFF, "7+ Kft", "7+-KFT" }, { 0x0050C2, 0x507000, 0x507FFF, "Micro Connect Pty Ltd", "MICRO-CONNECT-PTY" }, { 0x0050C2, 0x508000, 0x508FFF, "PUTERCOM ENTERPRISE CO., LTD.", "PUTERCOM" }, { 0x0050C2, 0x509000, 0x509FFF, "Hillcrest Laboratories, Inc.", "HILLCREST-LABORATORIES" }, { 0x0050C2, 0x50A000, 0x50AFFF, "Monitor Business Machines Ltd", "MONITOR-BUSINESS-MACHINES" }, { 0x0050C2, 0x50B000, 0x50BFFF, "Logic Beach Inc", "LOGIC-BEACH" }, { 0x0050C2, 0x50C000, 0x50CFFF, "AIRWISE TECHNOLOGY CO., LTD.", "AIRWISE" }, { 0x0050C2, 0x50D000, 0x50DFFF, "Clearsonics Pty. Ltd.", "CLEARSONICS-PTY" }, { 0x0050C2, 0x50E000, 0x50EFFF, "Fibresavers Corporation", "FIBRESAVERS" }, { 0x0050C2, 0x50F000, 0x50FFFF, "Polystar Instruments AB", "POLYSTAR-INSTRUMENTS-AB" }, { 0x0050C2, 0x510000, 0x510FFF, "Summit Developmen", "SUMMIT-DEVELOPMEN" }, { 0x0050C2, 0x511000, 0x511FFF, "Tecna Srl", "TECNA-SRL" }, { 0x0050C2, 0x512000, 0x512FFF, "Linear Acoustic, Inc", "LINEAR-ACOUSTIC" }, { 0x0050C2, 0x513000, 0x513FFF, "Genie Network Resource Management Inc.", "GENIE-NETWORK-RESOURCE-MANAGEMENT" }, { 0x0050C2, 0x514000, 0x514FFF, "Tadian Electronics Systems LTD", "TADIAN-ELECTRONICS" }, { 0x0050C2, 0x515000, 0x515FFF, "Monaghan Engineering, Inc.", "MONAGHAN-ENGINEERING" }, { 0x0050C2, 0x516000, 0x516FFF, "SOWA ELECTRIC CO., LTD.", "SOWA-ELECTRIC" }, { 0x0050C2, 0x517000, 0x517FFF, "Solid State Logic", "SOLID-STATE-LOGIC" }, { 0x0050C2, 0x518000, 0x518FFF, "Christ Elektronik GmbH", "CHRIST-ELEKTRONIK" }, { 0x0050C2, 0x519000, 0x519FFF, "DBMCORP, Inc.", "DBMCORP" }, { 0x0050C2, 0x51A000, 0x51AFFF, "SpeasTech, Inc.", "SPEASTECH" }, { 0x0050C2, 0x51B000, 0x51BFFF, "Beta Lasermike Ltd", "BETA-LASERMIKE" }, { 0x0050C2, 0x51C000, 0x51CFFF, "TOA Systems", "TOA" }, { 0x0050C2, 0x51D000, 0x51DFFF, "VELUX", "VELUX" }, { 0x0050C2, 0x51E000, 0x51EFFF, "Alcon Technologies", "ALCON-TECHNOLOGIES" }, { 0x0050C2, 0x51F000, 0x51FFFF, "Traquair Data Systems, Inc.", "TRAQUAIR-DATA" }, { 0x0050C2, 0x520000, 0x520FFF, "McCain Traffic Supply", "MCCAIN-TRAFFIC-SUPPLY" }, { 0x0050C2, 0x521000, 0x521FFF, "ARIS TECHNOLOGIES", "ARIS-TECHNOLOGIES" }, { 0x0050C2, 0x522000, 0x522FFF, "Mark IV IDS Corp.", "MARK-IV-IDS" }, { 0x0050C2, 0x523000, 0x523FFF, "AMRDEC Prototype Integration Facility", "AMRDEC-PROTOTYPE-INTEGRATION-FACILITY" }, { 0x0050C2, 0x524000, 0x524FFF, "Motec Pty Ltd", "MOTEC-PTY" }, { 0x0050C2, 0x525000, 0x525FFF, "VASTech", "VASTECH" }, { 0x0050C2, 0x526000, 0x526FFF, "AC SYSTEMS, s.r.o.", "AC-S-R-O" }, { 0x0050C2, 0x527000, 0x527FFF, "IRTrans GmbH", "IRTRANS" }, { 0x0050C2, 0x528000, 0x528FFF, "Tattile srl", "TATTILE-SRL" }, { 0x0050C2, 0x529000, 0x529FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x52A000, 0x52AFFF, "OMNITRONICS PTY LTD", "OMNITRONICS-PTY" }, { 0x0050C2, 0x52B000, 0x52BFFF, "Sicon srl", "SICON-SRL" }, { 0x0050C2, 0x52C000, 0x52CFFF, "VITEC MULTIMEDIA", "VITEC-MULTIMEDIA" }, { 0x0050C2, 0x52D000, 0x52DFFF, "Smartcom-Bulgaria AD", "SMARTCOM-BULGARIA-AD" }, { 0x0050C2, 0x52E000, 0x52EFFF, "DSP DESIGN", "DSP-DESIGN" }, { 0x0050C2, 0x52F000, 0x52FFFF, "Gesellschaft für Rationalisierung und Rechentechnik mbH", "GESELLSCHAFT-FUER-RATIONALISIERUNG-UND-RECHENTECHNIK" }, { 0x0050C2, 0x530000, 0x530FFF, "Innovation, Institute, Inc", "INNOVATION-INSTITUTE" }, { 0x0050C2, 0x531000, 0x531FFF, "Orion Technologies,LLC", "ORION-TECHNOLOGIES" }, { 0x0050C2, 0x532000, 0x532FFF, "NVE Corporation", "NVE" }, { 0x0050C2, 0x533000, 0x533FFF, "NanShanBridge Co.Ltd", "NANSHANBRIDGE" }, { 0x0050C2, 0x534000, 0x534FFF, "Hyundai J. Comm", "HYUNDAI-J-COMM" }, { 0x0050C2, 0x535000, 0x535FFF, "MMS Servis s.r.o.", "MMS-SERVIS-S-R-O" }, { 0x0050C2, 0x536000, 0x536FFF, "C2 DIAGNOSTICS", "C2-DIAGNOSTICS" }, { 0x0050C2, 0x537000, 0x537FFF, "DST CONTROL AB", "DST-CONTROL-AB" }, { 0x0050C2, 0x538000, 0x538FFF, "EtherTek Circuits", "ETHERTEK-CIRCUITS" }, { 0x0050C2, 0x539000, 0x539FFF, "Detection Technology Inc.", "DETECTION" }, { 0x0050C2, 0x53A000, 0x53AFFF, "Image Control Design Limited", "IMAGE-CONTROL-DESIGN" }, { 0x0050C2, 0x53B000, 0x53BFFF, "Teleks Co. Ltd.", "TELEKS" }, { 0x0050C2, 0x53C000, 0x53CFFF, "Marposs SPA", "MARPOSS-SPA" }, { 0x0050C2, 0x53D000, 0x53DFFF, "Digital communications Technologies", "DIGITAL-COMMUNICATION-TECHNOLOGIES" }, { 0x0050C2, 0x53E000, 0x53EFFF, "Honeywell", "HONEYWELL" }, { 0x0050C2, 0x53F000, 0x53FFFF, "Ellips B.V.", "ELLIPS-B-V" }, { 0x0050C2, 0x540000, 0x540FFF, "Mesure Controle Commande", "MESURE-CONTROLE-COMMANDE" }, { 0x0050C2, 0x541000, 0x541FFF, "WAVES SYSTEM", "WAVES-SYSTEM" }, { 0x0050C2, 0x542000, 0x542FFF, "AVerMedia Technologies, Inc.", "AVERMEDIA-TECHNOLOGIES" }, { 0x0050C2, 0x543000, 0x543FFF, "DIGI SESN AG", "DIGI-SESN" }, { 0x0050C2, 0x544000, 0x544FFF, "Zetera", "ZETERA" }, { 0x0050C2, 0x545000, 0x545FFF, "SecuInfo Co., Ltd.", "SECUINFO" }, { 0x0050C2, 0x546000, 0x546FFF, "Universidad de Chile Facultad de Medicina", "UNIVERSIDAD-DE-CHILE-FACULTAD-DE-MEDICINA" }, { 0x0050C2, 0x547000, 0x547FFF, "BLANKOM Antennentechnik GmbH", "BLANKOM-ANTENNENTECHNIK" }, { 0x0050C2, 0x548000, 0x548FFF, "I.T.W. Betaprint", "I-T-W-BETAPRINT" }, { 0x0050C2, 0x549000, 0x549FFF, "Netsynt S.p.A.", "NETSYNT" }, { 0x0050C2, 0x54A000, 0x54AFFF, "IPTC Tech. Comm. AB", "IPTC-TECH-COMM-AB" }, { 0x0050C2, 0x54B000, 0x54BFFF, "Innopsys", "INNOPSYS" }, { 0x0050C2, 0x54C000, 0x54CFFF, "Sintecnos srl", "SINTECNOS-SRL" }, { 0x0050C2, 0x54D000, 0x54DFFF, "Silent System", "SILENT-SYSTEM" }, { 0x0050C2, 0x54E000, 0x54EFFF, "Convergent Design", "CONVERGENT-DESIGN" }, { 0x0050C2, 0x54F000, 0x54FFFF, "Valtronic SA", "VALTRONIC" }, { 0x0050C2, 0x550000, 0x550FFF, "LJU Automatisierungstechnik GmbH", "LJU-AUTOMATISIERUNGSTECHNIK" }, { 0x0050C2, 0x551000, 0x551FFF, "Innovative Neurotroncs", "INNOVATIVE-NEUROTRONCS" }, { 0x0050C2, 0x552000, 0x552FFF, "Elfiq Inc.", "ELFIQ" }, { 0x0050C2, 0x553000, 0x553FFF, "ATH system", "ATH-SYSTEM" }, { 0x0050C2, 0x554000, 0x554FFF, "Weinzierl Engineering GmbH", "WEINZIERL-ENGINEERING" }, { 0x0050C2, 0x555000, 0x555FFF, "Control Alternative Solutions, Inc.", "CONTROL-ALTERNATIVE-SOLUTIONS" }, { 0x0050C2, 0x556000, 0x556FFF, "Freiburger BlickZentrum", "FREIBURGER-BLICKZENTRUM" }, { 0x0050C2, 0x557000, 0x557FFF, "Netcomsec Co Ltd", "NETCOMSEC" }, { 0x0050C2, 0x558000, 0x558FFF, "Bedo Elektronik GmbH", "BEDO-ELEKTRONIK" }, { 0x0050C2, 0x559000, 0x559FFF, "Fail Safe Solutions LLC", "FAIL-SAFE-SOLUTIONS" }, { 0x0050C2, 0x55A000, 0x55AFFF, "Valde Systems, Inc.", "VALDE" }, { 0x0050C2, 0x55B000, 0x55BFFF, "MATRIX TELECOM PVT. LTD.", "MATRIX-TELECOM-PVT" }, { 0x0050C2, 0x55C000, 0x55CFFF, "ads-tec GmbH", "ADS-TEC" }, { 0x0050C2, 0x55D000, 0x55DFFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x0050C2, 0x55E000, 0x55EFFF, "HANZAS ELEKTRONIKA, SIA", "HANZAS-ELEKTRONIKA-SIA" }, { 0x0050C2, 0x55F000, 0x55FFFF, "Moog Broad Reach", "MOOG-BROAD-REACH" }, { 0x0050C2, 0x560000, 0x560FFF, "Procon Electronics", "PROCON-ELECTRONICS" }, { 0x0050C2, 0x561000, 0x561FFF, "Seitec Elektronik GmbH", "SEITEC-ELEKTRONIK" }, { 0x0050C2, 0x562000, 0x562FFF, "C21 Systems Limited", "C21" }, { 0x0050C2, 0x563000, 0x563FFF, "ORTRAT, S.L.", "ORTRAT" }, { 0x0050C2, 0x564000, 0x564FFF, "Last Mile Gear", "LAST-MILE-GEAR" }, { 0x0050C2, 0x565000, 0x565FFF, "WORKPOWER TECNOLOGIA ELETRONICA LTDA-EPP", "WORKPOWER-TECNOLOGIA-ELETRONICA-LTDA-EPP" }, { 0x0050C2, 0x566000, 0x566FFF, "ubinetsys.co..ltd", "UBINETSYS" }, { 0x0050C2, 0x567000, 0x567FFF, "Tess GmbH", "TESS" }, { 0x0050C2, 0x568000, 0x568FFF, "GeoFocus, LLC", "GEOFOCUS" }, { 0x0050C2, 0x569000, 0x569FFF, "Twinwin Technplogy Co.,Ltd.", "TWINWIN-TECHNPLOGY" }, { 0x0050C2, 0x56A000, 0x56AFFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x0050C2, 0x56B000, 0x56BFFF, "Dataton Utvecklings AB", "DATATON-UTVECKLINGS-AB" }, { 0x0050C2, 0x56C000, 0x56CFFF, "Targeted Technologies, LLC", "TARGETED-TECHNOLOGIES" }, { 0x0050C2, 0x56D000, 0x56DFFF, "Computrol Fuel Systems Inc.", "COMPUTROL-FUEL" }, { 0x0050C2, 0x56E000, 0x56EFFF, "LAB-EL ELEKTRONIKA LABORATORYJNA S.J.", "LAB-EL-ELEKTRONIKA-LABORATORYJNA-S-J" }, { 0x0050C2, 0x56F000, 0x56FFFF, "GMA, LLC", "GMA" }, { 0x0050C2, 0x570000, 0x570FFF, "Ellex Medical Pty Ltd", "ELLEX-MEDICAL-PTY" }, { 0x0050C2, 0x571000, 0x571FFF, "Oberon Service srl", "OBERON-SERVICE-SRL" }, { 0x0050C2, 0x572000, 0x572FFF, "Chell Instruments Ltd", "CHELL-INSTRUMENTS" }, { 0x0050C2, 0x573000, 0x573FFF, "DATAMICRO Co., Ltd.", "DATAMICRO" }, { 0x0050C2, 0x574000, 0x574FFF, "Ingeniería Almudí S.L.", "INGENIERA-ALMUD" }, { 0x0050C2, 0x575000, 0x575FFF, "SOLYSTIC", "SOLYSTIC" }, { 0x0050C2, 0x576000, 0x576FFF, "Visi-tech Systems Ltd", "VISI-TECH" }, { 0x0050C2, 0x577000, 0x577FFF, "Advanced Software Technologies", "ADVANCED-SOFTWARE-TECHNOLOGIES" }, { 0x0050C2, 0x578000, 0x578FFF, "Delphi Display Systems, Inc.", "DELPHI-DISPLAY" }, { 0x0050C2, 0x579000, 0x579FFF, "Gastager Systemtechnik GmbH", "GASTAGER-SYSTEMTECHNIK" }, { 0x0050C2, 0x57A000, 0x57AFFF, "nVent, Schroff GmbH", "NVENT-SCHROFF" }, { 0x0050C2, 0x57B000, 0x57BFFF, "ptswitch", "PTSWITCH" }, { 0x0050C2, 0x57C000, 0x57CFFF, "éolane", "OLANE" }, { 0x0050C2, 0x57D000, 0x57DFFF, "Sierra Video Systems", "SIERRA-VIDEO" }, { 0x0050C2, 0x57E000, 0x57EFFF, "Digital Way", "DIGITAL-WAY" }, { 0x0050C2, 0x57F000, 0x57FFFF, "Orderite, Inc.", "ORDERITE" }, { 0x0050C2, 0x580000, 0x580FFF, "Buyang Electronics Industrial co.,Ltd.", "BUYANG-ELECTRONICS-INDUSTRIAL" }, { 0x0050C2, 0x581000, 0x581FFF, "Devitech ApS", "DEVITECH-APS" }, { 0x0050C2, 0x582000, 0x582FFF, "AllSun A/S", "ALLSUN-A/S" }, { 0x0050C2, 0x583000, 0x583FFF, "Junger Audio-Studiotechnik GmbH", "JUNGER-AUDIO-STUDIOTECHNIK" }, { 0x0050C2, 0x584000, 0x584FFF, "Toyota Motorsport GmbH", "TOYOTA-MOTORSPORT" }, { 0x0050C2, 0x585000, 0x585FFF, "Wireless Cables Inc.", "WIRELESS-CABLES" }, { 0x0050C2, 0x586000, 0x586FFF, "Genetix Ltd", "GENETIX" }, { 0x0050C2, 0x587000, 0x587FFF, "Dynalco", "DYNALCO" }, { 0x0050C2, 0x588000, 0x588FFF, "Federal Electronics", "FEDERAL-ELECTRONICS" }, { 0x0050C2, 0x589000, 0x589FFF, "HORIBA ABX SAS", "HORIBA-ABX-SAS" }, { 0x0050C2, 0x58A000, 0x58AFFF, "Dixell S.p.a.", "DIXELL" }, { 0x0050C2, 0x58B000, 0x58BFFF, "Innovative Dynamics GmbH", "INNOVATIVE-DYNAMICS" }, { 0x0050C2, 0x58C000, 0x58CFFF, "Lattice Semiconductor Corp. (LPA)", "LATTICE-SEMICONDUCTOR-LPA" }, { 0x0050C2, 0x58D000, 0x58DFFF, "ZAO", "ZAO" }, { 0x0050C2, 0x58E000, 0x58EFFF, "Penny & Giles Aerospace Ltd", "PENNY-GILES-AEROSPACE" }, { 0x0050C2, 0x58F000, 0x58FFFF, "XoIP Systems Pty Ltd", "XOIP-PTY" }, { 0x0050C2, 0x590000, 0x590FFF, "EM Motorsport Ltd", "EM-MOTORSPORT" }, { 0x0050C2, 0x591000, 0x591FFF, "Grosvenor Technology Ltd", "GROSVENOR" }, { 0x0050C2, 0x592000, 0x592FFF, "PaloDEx Group Oy", "PALODEX-GROUP-OY" }, { 0x0050C2, 0x593000, 0x593FFF, "Broadlight", "BROADLIGHT" }, { 0x0050C2, 0x594000, 0x594FFF, "Pixel Velocity, Inc", "PIXEL-VELOCITY" }, { 0x0050C2, 0x595000, 0x595FFF, "Callpod, Inc.", "CALLPOD" }, { 0x0050C2, 0x596000, 0x596FFF, "SPANSION", "SPANSION" }, { 0x0050C2, 0x597000, 0x597FFF, "Nautel LTD", "NAUTEL" }, { 0x0050C2, 0x598000, 0x598FFF, "Bundesamt für Strahlenschutz", "BUNDESAMT-FUER-STRAHLENSCHUTZ" }, { 0x0050C2, 0x599000, 0x599FFF, "Fen Technology Limited", "FEN" }, { 0x0050C2, 0x59A000, 0x59AFFF, "MultiTrode Pty Ltd", "MULTITRODE-PTY" }, { 0x0050C2, 0x59B000, 0x59BFFF, "SAPEC", "SAPEC" }, { 0x0050C2, 0x59C000, 0x59CFFF, "DELSAT GROUP S.A.", "DELSAT-GROUP" }, { 0x0050C2, 0x59D000, 0x59DFFF, "DSS Networks, Inc.", "DSS-NETWORKS" }, { 0x0050C2, 0x59E000, 0x59EFFF, "Legerity", "LEGERITY" }, { 0x0050C2, 0x59F000, 0x59FFFF, "ads-tec GmbH", "ADS-TEC" }, { 0x0050C2, 0x5A0000, 0x5A0FFF, "Rudolph Technologies, Inc.", "RUDOLPH-TECHNOLOGIES" }, { 0x0050C2, 0x5A1000, 0x5A1FFF, "Vestfold Butikkdata AS", "VESTFOLD-BUTIKKDATA-AS" }, { 0x0050C2, 0x5A2000, 0x5A2FFF, "iNET Systems Inc.", "INET" }, { 0x0050C2, 0x5A3000, 0x5A3FFF, "LUMEL S.A.", "LUMEL" }, { 0x0050C2, 0x5A4000, 0x5A4FFF, "Federal State Unitary Enterprise Experimental Factory for Sc", "FEDERAL-STATE-UNITARY-EXPERIMENTAL-FACTORY-FOR-SC" }, { 0x0050C2, 0x5A5000, 0x5A5FFF, "Equipos de Telecomunicación Optoelectronicos, S.A.", "EQUIPOS-DE-TELECOMUNICACIN-OPTOELECTRONICOS" }, { 0x0050C2, 0x5A6000, 0x5A6FFF, "Plastic Logic", "PLASTIC-LOGIC" }, { 0x0050C2, 0x5A7000, 0x5A7FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x5A8000, 0x5A8FFF, "ETAP NV", "ETAP-NV" }, { 0x0050C2, 0x5A9000, 0x5A9FFF, "AYC Telecom Ltd", "AYC-TELECOM" }, { 0x0050C2, 0x5AA000, 0x5AAFFF, "Transenna AB", "TRANSENNA-AB" }, { 0x0050C2, 0x5AB000, 0x5ABFFF, "Eaton Corp. Electrical Group Data Center Solutions - Pulizzi", "EATON-ELECTRICAL-GROUP-DATA-CENTER-SOLUTIONS-PULIZZI" }, { 0x0050C2, 0x5AC000, 0x5ACFFF, "Kinemetrics, Inc.", "KINEMETRICS" }, { 0x0050C2, 0x5AD000, 0x5ADFFF, "Emcom Systems", "EMCOM" }, { 0x0050C2, 0x5AE000, 0x5AEFFF, "CPS EUROPE B.V.", "CPS-EUROPE-B-V" }, { 0x0050C2, 0x5AF000, 0x5AFFFF, "DORLET SAU", "DORLET-SAU" }, { 0x0050C2, 0x5B0000, 0x5B0FFF, "INCOTEC GmbH", "INCOTEC" }, { 0x0050C2, 0x5B1000, 0x5B1FFF, "Rosta Ltd", "ROSTA" }, { 0x0050C2, 0x5B2000, 0x5B2FFF, "Syntronic AB", "SYNTRONIC-AB" }, { 0x0050C2, 0x5B3000, 0x5B3FFF, "HITECOM System", "HITECOM-SYSTEM" }, { 0x0050C2, 0x5B4000, 0x5B4FFF, "Terrascience Systems Ltd.", "TERRASCIENCE" }, { 0x0050C2, 0x5B5000, 0x5B5FFF, "RAFAEL", "RAFAEL" }, { 0x0050C2, 0x5B6000, 0x5B6FFF, "Kontron (BeiJing) Technology Co.,Ltd", "KONTRON-BEIJING" }, { 0x0050C2, 0x5B7000, 0x5B7FFF, "AVerMedia Technologies, Inc.", "AVERMEDIA-TECHNOLOGIES" }, { 0x0050C2, 0x5B8000, 0x5B8FFF, "WestfaliaSurge GmbH", "WESTFALIASURGE" }, { 0x0050C2, 0x5B9000, 0x5B9FFF, "Taiwan Video & Monitor", "TAIWAN-VIDEO-MONITOR" }, { 0x0050C2, 0x5BA000, 0x5BAFFF, "SAIA Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0x5BB000, 0x5BBFFF, "UNIC TECHNOLOGIES INC", "UNIC-TECHNOLOGIES" }, { 0x0050C2, 0x5BC000, 0x5BCFFF, "Guangzhou Hui Si Information Technologies Inc.", "GUANGZHOU-HUI-SI-INFORMATION-TECHNOLOGIES" }, { 0x0050C2, 0x5BD000, 0x5BDFFF, "NOMUS COMM SYSTEMS", "NOMUS-COMM" }, { 0x0050C2, 0x5BE000, 0x5BEFFF, "Card Access Services Pty Ltd", "CARD-ACCESS-SERVICES-PTY" }, { 0x0050C2, 0x5BF000, 0x5BFFFF, "Techimp Systems S.r.l.", "TECHIMP" }, { 0x0050C2, 0x5C0000, 0x5C0FFF, "Pyott-Boone Electronics", "PYOTT-BOONE-ELECTRONICS" }, { 0x0050C2, 0x5C1000, 0x5C1FFF, "R. L. Drake Company", "R-L-DRAKE-COMPANY" }, { 0x0050C2, 0x5C2000, 0x5C2FFF, "Intuitive Surgical, Inc", "INTUITIVE-SURGICAL" }, { 0x0050C2, 0x5C3000, 0x5C3FFF, "KS System GmbH", "KS-SYSTEM" }, { 0x0050C2, 0x5C4000, 0x5C4FFF, "ProMik GmbH", "PROMIK" }, { 0x0050C2, 0x5C5000, 0x5C5FFF, "Radiant Imaging, Inc.", "RADIANT-IMAGING" }, { 0x0050C2, 0x5C6000, 0x5C6FFF, "Technische Alternative GmbH", "TECHNISCHE-ALTERNATIVE" }, { 0x0050C2, 0x5C7000, 0x5C7FFF, "InSync Technology Ltd", "INSYNC" }, { 0x0050C2, 0x5C8000, 0x5C8FFF, "Georgia Tech Research Institute", "GEORGIA-TECH-RESEARCH-INSTITUTE" }, { 0x0050C2, 0x5C9000, 0x5C9FFF, "Shenzhen Quanlong Technique Co.Ltd", "SHENZHEN-QUANLONG-TECHNIQUE" }, { 0x0050C2, 0x5CA000, 0x5CAFFF, "Buyang Electronics Industrial Co., Ltd.", "BUYANG-ELECTRONICS-INDUSTRIAL" }, { 0x0050C2, 0x5CB000, 0x5CBFFF, "Kobold Sistemi s.r.l.", "KOBOLD-SISTEMI" }, { 0x0050C2, 0x5CC000, 0x5CCFFF, "Enseo, Inc.", "ENSEO" }, { 0x0050C2, 0x5CD000, 0x5CDFFF, "RADA Electronics Industries Ltd.", "RADA-ELECTRONICS-INDUSTRIES" }, { 0x0050C2, 0x5CE000, 0x5CEFFF, "Roke Manor Research Ltd", "ROKE-MANOR-RESEARCH" }, { 0x0050C2, 0x5CF000, 0x5CFFFF, "Innomed Medical Inc", "INNOMED-MEDICAL" }, { 0x0050C2, 0x5D0000, 0x5D0FFF, "Automata Spa", "AUTOMATA-SPA" }, { 0x0050C2, 0x5D1000, 0x5D1FFF, "Meucci Solutions", "MEUCCI-SOLUTIONS" }, { 0x0050C2, 0x5D2000, 0x5D2FFF, "DA-Design Oy", "DA-DESIGN-OY" }, { 0x0050C2, 0x5D3000, 0x5D3FFF, "Wexiodisk AB", "WEXIODISK-AB" }, { 0x0050C2, 0x5D4000, 0x5D4FFF, "Buyang Electronics Industrial Co., Ltd.", "BUYANG-ELECTRONICS-INDUSTRIAL" }, { 0x0050C2, 0x5D5000, 0x5D5FFF, "Cannon Technologies", "CANNON-TECHNOLOGIES" }, { 0x0050C2, 0x5D6000, 0x5D6FFF, "BioAccess Tecnologia em Biometria Ltda.", "BIOACCESS-TECNOLOGIA-EM-BIOMETRIA-LTDA" }, { 0x0050C2, 0x5D7000, 0x5D7FFF, "Synrad, Inc.", "SYNRAD" }, { 0x0050C2, 0x5D8000, 0x5D8FFF, "TECHNIFOR SAS", "TECHNIFOR-SAS" }, { 0x0050C2, 0x5D9000, 0x5D9FFF, "Crimson Microsystems, Inc.", "CRIMSON-MICROSYSTEMS" }, { 0x0050C2, 0x5DA000, 0x5DAFFF, "TONNA ELECTRONIQUE", "TONNA-ELECTRONIQUE" }, { 0x0050C2, 0x5DB000, 0x5DBFFF, "Secure Systems & Services", "SECURE-SERVICES" }, { 0x0050C2, 0x5DC000, 0x5DCFFF, "RM Michaelides Software & Elektronik GmbH", "RM-MICHAELIDES-SOFTWARE-ELEKTRONIK" }, { 0x0050C2, 0x5DD000, 0x5DDFFF, "SomerData ltd", "SOMERDATA" }, { 0x0050C2, 0x5DE000, 0x5DEFFF, "Magal Senstar Inc.", "MAGAL-SENSTAR" }, { 0x0050C2, 0x5DF000, 0x5DFFFF, "Gnutek Ltd.", "GNUTEK" }, { 0x0050C2, 0x5E0000, 0x5E0FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x5E1000, 0x5E1FFF, "Ittiam Systems (P) Ltd", "ITTIAM-P" }, { 0x0050C2, 0x5E2000, 0x5E2FFF, "PYRAMID Computer GmbH", "PYRAMID" }, { 0x0050C2, 0x5E3000, 0x5E3FFF, "Computechnic AG", "COMPUTECHNIC" }, { 0x0050C2, 0x5E4000, 0x5E4FFF, "Buyang Electronics Industrial Co., Ltd.", "BUYANG-ELECTRONICS-INDUSTRIAL" }, { 0x0050C2, 0x5E5000, 0x5E5FFF, "Stresstech OY", "STRESSTECH-OY" }, { 0x0050C2, 0x5E6000, 0x5E6FFF, "Musatel", "MUSATEL" }, { 0x0050C2, 0x5E7000, 0x5E7FFF, "EADS TEST & SERVICES", "EADS-TEST-SERVICES" }, { 0x0050C2, 0x5E8000, 0x5E8FFF, "Info-Chip Communications Ltd.", "INFO-CHIP-COMMUNICATION" }, { 0x0050C2, 0x5E9000, 0x5E9FFF, "Micro Technology Services Inc.", "MICRO-SERVICES" }, { 0x0050C2, 0x5EA000, 0x5EAFFF, "Micro Elektronische Producten", "MICRO-ELEKTRONISCHE-PRODUCTEN" }, { 0x0050C2, 0x5EB000, 0x5EBFFF, "Garper Telecomunicaciones, S.L.", "GARPER-TELECOMUNICACIONES" }, { 0x0050C2, 0x5EC000, 0x5ECFFF, "ASiS Technologies Pte Ltd", "ASIS-TECHNOLOGIES-PTE" }, { 0x0050C2, 0x5ED000, 0x5EDFFF, "AQUAROTTER A FRANKE COMPANY", "AQUAROTTER-A-FRANKE-COMPANY" }, { 0x0050C2, 0x5EE000, 0x5EEFFF, "Condre Corporation", "CONDRE" }, { 0x0050C2, 0x5EF000, 0x5EFFFF, "pikkerton GmbH", "PIKKERTON" }, { 0x0050C2, 0x5F0000, 0x5F0FFF, "DIAS Infrared GmbH", "DIAS-INFRARED" }, { 0x0050C2, 0x5F1000, 0x5F1FFF, "Technomarine JSC", "TECHNOMARINE-JSC" }, { 0x0050C2, 0x5F2000, 0x5F2FFF, "ESEM Grünau GmbH & Co. KG", "ESEM-GRUENAU" }, { 0x0050C2, 0x5F3000, 0x5F3FFF, "POSNET Polska S.A.", "POSNET-POLSKA" }, { 0x0050C2, 0x5F4000, 0x5F4FFF, "TeamProjects BV", "TEAMPROJECTS" }, { 0x0050C2, 0x5F5000, 0x5F5FFF, "Genesis inc", "GENESIS" }, { 0x0050C2, 0x5F6000, 0x5F6FFF, "CAMBRIDGE CONSULTANTS LTD", "CAMBRIDGE-CONSULTANTS" }, { 0x0050C2, 0x5F7000, 0x5F7FFF, "Metrologic Group", "METROLOGIC-GROUP" }, { 0x0050C2, 0x5F8000, 0x5F8FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x0050C2, 0x5F9000, 0x5F9FFF, "ROTHARY Solutions AG", "ROTHARY-SOLUTIONS" }, { 0x0050C2, 0x5FA000, 0x5FAFFF, "LEA d.o.o.", "LEA-D-O-O" }, { 0x0050C2, 0x5FB000, 0x5FBFFF, "All-Systems Electronics Pty Ltd", "ALL-ELECTRONICS-PTY" }, { 0x0050C2, 0x5FC000, 0x5FCFFF, "FilmLight Limited", "FILMLIGHT" }, { 0x0050C2, 0x5FD000, 0x5FDFFF, "MEG Electronic Inc.", "MEG" }, { 0x0050C2, 0x5FE000, 0x5FEFFF, "NOVACOMM LTDA", "NOVACOMM-LTDA" }, { 0x0050C2, 0x5FF000, 0x5FFFFF, "Gazelle Monitoring Systems", "GAZELLE-MONITORING" }, { 0x0050C2, 0x600000, 0x600FFF, "Protec Fire Detection plc", "PROTEC-FIRE-DETECTION-PLC" }, { 0x0050C2, 0x601000, 0x601FFF, "MedAvant Healthcare", "MEDAVANT-HEALTHCARE" }, { 0x0050C2, 0x602000, 0x602FFF, "CHAUVIN ARNOUX", "CHAUVIN-ARNOUX" }, { 0x0050C2, 0x603000, 0x603FFF, "Cerus Corp", "CERUS" }, { 0x0050C2, 0x604000, 0x604FFF, "HCJB Global", "HCJB-GLOBAL" }, { 0x0050C2, 0x605000, 0x605FFF, "Swistec GmbH", "SWISTEC" }, { 0x0050C2, 0x606000, 0x606FFF, "Shenzhen Huazhong Technology Inc", "SHENZHEN-HUAZHONG" }, { 0x0050C2, 0x607000, 0x607FFF, "Telecom FM", "TELECOM-FM" }, { 0x0050C2, 0x608000, 0x608FFF, "Silex Industrial Automation Ltd.", "SILEX-INDUSTRIAL-AUTOMATION" }, { 0x0050C2, 0x609000, 0x609FFF, "Toptech Systems, Inc.", "TOPTECH" }, { 0x0050C2, 0x60A000, 0x60AFFF, "Gradual Tecnologia Ltda.", "GRADUAL-TECNOLOGIA-LTDA" }, { 0x0050C2, 0x60B000, 0x60BFFF, "Shanghai QianJin Electronic Equipment Co. Ltd.", "SHANGHAI-QIANJIN-EQUIPMENT" }, { 0x0050C2, 0x60C000, 0x60CFFF, "IDENTIC AB", "IDENTIC-AB" }, { 0x0050C2, 0x60D000, 0x60DFFF, "Sicon srl", "SICON-SRL" }, { 0x0050C2, 0x60E000, 0x60EFFF, "Automation and Control Technology, Inc.", "AUTOMATION-AND-CONTROL" }, { 0x0050C2, 0x60F000, 0x60FFFF, "Kommunikations- & Sicherheitssysteme Gesellschaft m.b.H", "KOMMUNIKATIONS-SICHERHEITSSYSTEME-GESELLSCHAFT-M-B-H" }, { 0x0050C2, 0x610000, 0x610FFF, "FDT Manufacturing, LLC", "FDT-MANUFACTURING" }, { 0x0050C2, 0x611000, 0x611FFF, "Brookhaven National Laboratory", "BROOKHAVEN-NATIONAL-LABORATORY" }, { 0x0050C2, 0x612000, 0x612FFF, "IHP-GmbH", "IHP" }, { 0x0050C2, 0x613000, 0x613FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x0050C2, 0x614000, 0x614FFF, "Proserv", "PROSERV" }, { 0x0050C2, 0x615000, 0x615FFF, "Axis Electronics", "AXIS-ELECTRONICS" }, { 0x0050C2, 0x616000, 0x616FFF, "Honeywell", "HONEYWELL" }, { 0x0050C2, 0x617000, 0x617FFF, "NARINET, INC.", "NARINET" }, { 0x0050C2, 0x618000, 0x618FFF, "Intergrated Security Mfg. Ltd", "INTERGRATED-SECURITY-MFG" }, { 0x0050C2, 0x619000, 0x619FFF, "Linkbit, Inc.", "LINKBIT" }, { 0x0050C2, 0x61A000, 0x61AFFF, "Communication Components Inc.", "COMMUNICATION-COMPONENTS" }, { 0x0050C2, 0x61B000, 0x61BFFF, "NCI Technologies Inc.", "NCI-TECHNOLOGIES" }, { 0x0050C2, 0x61C000, 0x61CFFF, "TestPro Systems, Inc.", "TESTPRO" }, { 0x0050C2, 0x61D000, 0x61DFFF, "Sutus Inc", "SUTUS" }, { 0x0050C2, 0x61E000, 0x61EFFF, "LESTER ELECTRONICS LTD", "LESTER-ELECTRONICS" }, { 0x0050C2, 0x61F000, 0x61FFFF, "Imagine Communications", "IMAGINE-COMMUNICATION" }, { 0x0050C2, 0x620000, 0x620FFF, "Harman/Becker Automotive Systems GmbH", "HARMAN/BECKER-AUTOMOTIVE" }, { 0x0050C2, 0x621000, 0x621FFF, "Version-T", "VERSION-T" }, { 0x0050C2, 0x622000, 0x622FFF, "2N TELEKOMUNIKACE a.s.", "2N-TELEKOMUNIKACE" }, { 0x0050C2, 0x623000, 0x623FFF, "SAFELINE SL", "SAFELINE-SL" }, { 0x0050C2, 0x624000, 0x624FFF, "Comtest Networks", "COMTEST-NETWORKS" }, { 0x0050C2, 0x625000, 0x625FFF, "EBNeuro SpA", "EBNEURO-SPA" }, { 0x0050C2, 0x626000, 0x626FFF, "Winsys Informatica ltda", "WINSYS-INFORMATICA-LTDA" }, { 0x0050C2, 0x627000, 0x627FFF, "JungleSystem Co., Ltd.", "JUNGLESYSTEM" }, { 0x0050C2, 0x628000, 0x628FFF, "DARE Development", "DARE-DEVELOPMENT" }, { 0x0050C2, 0x629000, 0x629FFF, "MacDonald Humfrey (Products) Ltd", "MACDONALD-HUMFREY-PRODUCTS" }, { 0x0050C2, 0x62A000, 0x62AFFF, "Prisma Engineering srl", "PRISMA-ENGINEERING-SRL" }, { 0x0050C2, 0x62B000, 0x62BFFF, "First Control Systems AB", "FIRST-CONTROL-AB" }, { 0x0050C2, 0x62C000, 0x62CFFF, "AirMatrix, Inc.", "AIRMATRIX" }, { 0x0050C2, 0x62D000, 0x62DFFF, "Procon Electronics", "PROCON-ELECTRONICS" }, { 0x0050C2, 0x62E000, 0x62EFFF, "TDM Ingénierie", "TDM-INGNIERIE" }, { 0x0050C2, 0x62F000, 0x62FFFF, "QES", "QES" }, { 0x0050C2, 0x630000, 0x630FFF, "Aurora Flight Sciences", "AURORA-FLIGHT-SCIENCES" }, { 0x0050C2, 0x631000, 0x631FFF, "Fraunhofer IIS", "FRAUNHOFER-IIS" }, { 0x0050C2, 0x632000, 0x632FFF, "RoseTechnology A/S", "ROSETECHNOLOGY-A/S" }, { 0x0050C2, 0x633000, 0x633FFF, "Rice University", "RICE-UNIVERSITY" }, { 0x0050C2, 0x634000, 0x634FFF, "Sohon Inc", "SOHON" }, { 0x0050C2, 0x635000, 0x635FFF, "Shockfish SA", "SHOCKFISH" }, { 0x0050C2, 0x636000, 0x636FFF, "dSPACE GmbH", "DSPACE" }, { 0x0050C2, 0x637000, 0x637FFF, "Omnitrol Networks, Inc.", "OMNITROL-NETWORKS" }, { 0x0050C2, 0x638000, 0x638FFF, "HUNGAROCOM Telecommunication Ltd.", "HUNGAROCOM-TELECOMMUNICATION" }, { 0x0050C2, 0x639000, 0x639FFF, "Qstreams Networks Inc.", "QSTREAMS-NETWORKS" }, { 0x0050C2, 0x63A000, 0x63AFFF, "3DSP Corporation", "3DSP" }, { 0x0050C2, 0x63B000, 0x63BFFF, "Powis Corporation", "POWIS" }, { 0x0050C2, 0x63C000, 0x63CFFF, "dPict Imaging, Inc.", "DPICT-IMAGING" }, { 0x0050C2, 0x63D000, 0x63DFFF, "IDERs Inc", "IDERS" }, { 0x0050C2, 0x63E000, 0x63EFFF, "T2 Communication Ltd", "T2-COMMUNICATION" }, { 0x0050C2, 0x63F000, 0x63FFFF, "SPEECH TECHNOLOGY CENTER LIMITED", "SPEECH-CENTER" }, { 0x0050C2, 0x640000, 0x640FFF, "IAC", "IAC" }, { 0x0050C2, 0x641000, 0x641FFF, "NEO Information Systems Co., Ltd.", "NEO-INFORMATION" }, { 0x0050C2, 0x642000, 0x642FFF, "Stanton Technologies Sdn Bhd", "STANTON-TECHNOLOGIES" }, { 0x0050C2, 0x643000, 0x643FFF, "Enatel Limited", "ENATEL" }, { 0x0050C2, 0x644000, 0x644FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x645000, 0x645FFF, "The Software Group Limited", "THE-SOFTWARE-GROUP" }, { 0x0050C2, 0x646000, 0x646FFF, "TRUTOUCH TECHNOLOGIES INC", "TRUTOUCH-TECHNOLOGIES" }, { 0x0050C2, 0x647000, 0x647FFF, "R&D Technology Solutionz Limited", "R-D-SOLUTIONZ" }, { 0x0050C2, 0x648000, 0x648FFF, "Fidelity Comtech, Inc.", "FIDELITY-COMTECH" }, { 0x0050C2, 0x649000, 0x649FFF, "Pan-STARRS", "PAN-STARRS" }, { 0x0050C2, 0x64A000, 0x64AFFF, "CPqD", "CPQD" }, { 0x0050C2, 0x64B000, 0x64BFFF, "MangoDSP", "MANGODSP" }, { 0x0050C2, 0x64C000, 0x64CFFF, "CIS Corporation", "CIS" }, { 0x0050C2, 0x64D000, 0x64DFFF, "Tera Information System Labs", "TERA-INFORMATION-SYSTEM-LABS" }, { 0x0050C2, 0x64E000, 0x64EFFF, "Northern Power", "NORTHERN-POWER" }, { 0x0050C2, 0x64F000, 0x64FFFF, "MA Lighting Technology GmbH", "MA-LIGHTING" }, { 0x0050C2, 0x650000, 0x650FFF, "Liquid Breaker, LLC", "LIQUID-BREAKER" }, { 0x0050C2, 0x651000, 0x651FFF, "STAER SPA", "STAER-SPA" }, { 0x0050C2, 0x652000, 0x652FFF, "Wideco Sweden AB", "WIDECO-SWEDEN-AB" }, { 0x0050C2, 0x653000, 0x653FFF, "Doble Engineering", "DOBLE-ENGINEERING" }, { 0x0050C2, 0x654000, 0x654FFF, "PaloDEx Group Oy", "PALODEX-GROUP-OY" }, { 0x0050C2, 0x655000, 0x655FFF, "Physik Instrumente (PI) GmbH&Co.KG", "PHYSIK-INSTRUMENTE-PI" }, { 0x0050C2, 0x656000, 0x656FFF, "LDA Audio Video Profesional", "LDA-AUDIO-VIDEO-PROFESIONAL" }, { 0x0050C2, 0x657000, 0x657FFF, "MONYTEL S.A.", "MONYTEL" }, { 0x0050C2, 0x658000, 0x658FFF, "OpenPKG GmbH", "OPENPKG" }, { 0x0050C2, 0x659000, 0x659FFF, "Dorsett Technologies Inc", "DORSETT-TECHNOLOGIES" }, { 0x0050C2, 0x65A000, 0x65AFFF, "Hisstema AB", "HISSTEMA-AB" }, { 0x0050C2, 0x65B000, 0x65BFFF, "Silverbrook Research", "SILVERBROOK-RESEARCH" }, { 0x0050C2, 0x65C000, 0x65CFFF, "VTZ d.o.o.", "VTZ-D-O-O" }, { 0x0050C2, 0x65D000, 0x65DFFF, "Redfone Communications LLC", "REDFONE-COMMUNICATION" }, { 0x0050C2, 0x65E000, 0x65EFFF, "Cantion A/S", "CANTION-A/S" }, { 0x0050C2, 0x65F000, 0x65FFFF, "Invocon, Inc.", "INVOCON" }, { 0x0050C2, 0x660000, 0x660FFF, "IZISOFT", "IZISOFT" }, { 0x0050C2, 0x661000, 0x661FFF, "P.C.E.", "P-C-E" }, { 0x0050C2, 0x662000, 0x662FFF, "Asia Pacific Card & System Sdn Bhd", "ASIA-PACIFIC-CARD-SYSTEM" }, { 0x0050C2, 0x663000, 0x663FFF, "COE Limited", "COE" }, { 0x0050C2, 0x664000, 0x664FFF, "Westel Wireless Systems", "WESTEL-WIRELESS" }, { 0x0050C2, 0x665000, 0x665FFF, "NetworkSound, Inc", "NETWORKSOUND" }, { 0x0050C2, 0x666000, 0x666FFF, "Xworks NZ Limited", "XWORKS-NZ" }, { 0x0050C2, 0x667000, 0x667FFF, "Vocality International Ltd", "VOCALITY" }, { 0x0050C2, 0x668000, 0x668FFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0x669000, 0x669FFF, "DSP DESIGN", "DSP-DESIGN" }, { 0x0050C2, 0x66A000, 0x66AFFF, "ABB Transmission and Distribution Automation Equipment (Xiamen) Co., Ltd.", "ABB-TRANSMISSION-AND-DISTRIBUTION-AUTOMATION-EQUIPMENT-XIAMEN" }, { 0x0050C2, 0x66B000, 0x66BFFF, "flsystem", "FLSYSTEM" }, { 0x0050C2, 0x66C000, 0x66CFFF, "DESY", "DESY" }, { 0x0050C2, 0x66D000, 0x66DFFF, "DIGITEK S.p.A.", "DIGITEK" }, { 0x0050C2, 0x66E000, 0x66EFFF, "Linear Systems Ltd.", "LINEAR" }, { 0x0050C2, 0x66F000, 0x66FFFF, "Nilan A/S", "NILAN-A/S" }, { 0x0050C2, 0x670000, 0x670FFF, "Naim Audio", "NAIM-AUDIO" }, { 0x0050C2, 0x671000, 0x671FFF, "Skyline Products, Inc", "SKYLINE-PRODUCTS" }, { 0x0050C2, 0x672000, 0x672FFF, "DDS Elettronica srl", "DDS-ELETTRONICA-SRL" }, { 0x0050C2, 0x673000, 0x673FFF, "Ferrari electronic AG", "FERRARI" }, { 0x0050C2, 0x674000, 0x674FFF, "Protech Optronics Co., Ltd.", "PROTECH-OPTRONICS" }, { 0x0050C2, 0x675000, 0x675FFF, "Kenton Research Ltd", "KENTON-RESEARCH" }, { 0x0050C2, 0x676000, 0x676FFF, "EDS", "EDS" }, { 0x0050C2, 0x677000, 0x677FFF, "ProconX Pty Ltd", "PROCONX-PTY" }, { 0x0050C2, 0x678000, 0x678FFF, "IHM", "IHM" }, { 0x0050C2, 0x679000, 0x679FFF, "Industrial Vacuum Systems", "INDUSTRIAL-VACUUM" }, { 0x0050C2, 0x67A000, 0x67AFFF, "CC Systems AB", "CC-AB" }, { 0x0050C2, 0x67B000, 0x67BFFF, "Sparton Electronics", "SPARTON-ELECTRONICS" }, { 0x0050C2, 0x67C000, 0x67CFFF, "Gogo BA", "GOGO-BA" }, { 0x0050C2, 0x67D000, 0x67DFFF, "ESA Messtechnik GmbH", "ESA-MESSTECHNIK" }, { 0x0050C2, 0x67E000, 0x67EFFF, "SAIA Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0x67F000, 0x67FFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x680000, 0x680FFF, "Honey Network Research Limited", "HONEY-NETWORK-RESEARCH" }, { 0x0050C2, 0x681000, 0x681FFF, "Owasys Advanced Wireless Devices", "OWASYS-ADVANCED-WIRELESS-DEVICES" }, { 0x0050C2, 0x682000, 0x682FFF, "Commet AB", "COMMET-AB" }, { 0x0050C2, 0x683000, 0x683FFF, "MEGGITT Safety System", "MEGGITT-SAFETY-SYSTEM" }, { 0x0050C2, 0x684000, 0x684FFF, "REASON Tecnologia S.A.", "REASON-TECNOLOGIA" }, { 0x0050C2, 0x685000, 0x685FFF, "Datamars SA", "DATAMARS" }, { 0x0050C2, 0x686000, 0x686FFF, "ANNAX Anzeigesysteme GmbH", "ANNAX-ANZEIGESYSTEME" }, { 0x0050C2, 0x687000, 0x687FFF, "Access Specialties, Inc", "ACCESS-SPECIALTIES" }, { 0x0050C2, 0x688000, 0x688FFF, "Elk Products", "ELK-PRODUCTS" }, { 0x0050C2, 0x689000, 0x689FFF, "RF Code", "RF-CODE" }, { 0x0050C2, 0x68A000, 0x68AFFF, "Zhuhai Jiahe Electronics Co.,LTD", "ZHUHAI-JIAHE-ELECTRONICS" }, { 0x0050C2, 0x68B000, 0x68BFFF, "SIMTEK INC.", "SIMTEK" }, { 0x0050C2, 0x68C000, 0x68CFFF, "Isochron Inc", "ISOCHRON" }, { 0x0050C2, 0x68D000, 0x68DFFF, "CXR Larus Corporation", "CXR-LARUS" }, { 0x0050C2, 0x68E000, 0x68EFFF, "SELCO", "SELCO" }, { 0x0050C2, 0x68F000, 0x68FFFF, "BERTRONIC SRL", "BERTRONIC-SRL" }, { 0x0050C2, 0x690000, 0x690FFF, "GHL Systems Berhad", "GHL-BERHAD" }, { 0x0050C2, 0x691000, 0x691FFF, "Interopix, Inc.", "INTEROPIX" }, { 0x0050C2, 0x692000, 0x692FFF, "Mate Media Access Technologies", "MATE-MEDIA-ACCESS-TECHNOLOGIES" }, { 0x0050C2, 0x693000, 0x693FFF, "Tech Comm, Inc.", "TECH-COMM" }, { 0x0050C2, 0x694000, 0x694FFF, "Initel srl", "INITEL-SRL" }, { 0x0050C2, 0x695000, 0x695FFF, "Purelink Technology, inc.", "PURELINK" }, { 0x0050C2, 0x696000, 0x696FFF, "Casabyte Inc.", "CASABYTE" }, { 0x0050C2, 0x697000, 0x697FFF, "Monarch Instrument", "MONARCH-INSTRUMENT" }, { 0x0050C2, 0x698000, 0x698FFF, "Navtech Radar Ltd", "NAVTECH-RADAR" }, { 0x0050C2, 0x699000, 0x699FFF, "Bulletendpoints Enterprises Inc", "BULLETENDPOINTS-ENTERPRISES" }, { 0x0050C2, 0x69A000, 0x69AFFF, "StoreTech Limited", "STORETECH" }, { 0x0050C2, 0x69B000, 0x69BFFF, "Tsien (UK) Ltd", "TSIEN-UK" }, { 0x0050C2, 0x69C000, 0x69CFFF, "Bug Labs, Inc.", "BUG-LABS" }, { 0x0050C2, 0x69D000, 0x69DFFF, "Dvation.co.,Ltd", "DVATION" }, { 0x0050C2, 0x69E000, 0x69EFFF, "Ideus AB", "IDEUS-AB" }, { 0x0050C2, 0x69F000, 0x69FFFF, "Total RF, LLC", "TOTAL-RF" }, { 0x0050C2, 0x6A0000, 0x6A0FFF, "GFP Lab S.r.l.", "GFP-LAB" }, { 0x0050C2, 0x6A1000, 0x6A1FFF, "PRICOL LIMITED", "PRICOL" }, { 0x0050C2, 0x6A2000, 0x6A2FFF, "Cadi Scientific Pte Ltd", "CADI-SCIENTIFIC-PTE" }, { 0x0050C2, 0x6A3000, 0x6A3FFF, "CreaTech Electronics Co.", "CREATECH-ELECTRONICS" }, { 0x0050C2, 0x6A4000, 0x6A4FFF, "TELETASK", "TELETASK" }, { 0x0050C2, 0x6A5000, 0x6A5FFF, "EATON FHF Funke + Huster Fernsig GmbH", "EATON-FHF-FUNKE-+-HUSTER-FERNSIG" }, { 0x0050C2, 0x6A6000, 0x6A6FFF, "Victory Concept Industries Ltd.", "VICTORY-CONCEPT-INDUSTRIES" }, { 0x0050C2, 0x6A7000, 0x6A7FFF, "Hoer GmbH & Co. Industrie-Electronic KG", "HOER-INDUSTRIE" }, { 0x0050C2, 0x6A8000, 0x6A8FFF, "Delcan Technologies, Inc", "DELCAN-TECHNOLOGIES" }, { 0x0050C2, 0x6A9000, 0x6A9FFF, "Armida Technologies Corporation", "ARMIDA-TECHNOLOGIES" }, { 0x0050C2, 0x6AA000, 0x6AAFFF, "Ifox - Industria e Comercio Ltda", "IFOX-INDUSTRIA-E-COMERCIO-LTDA" }, { 0x0050C2, 0x6AB000, 0x6ABFFF, "Softwareentwicklung", "SOFTWAREENTWICKLUNG" }, { 0x0050C2, 0x6AC000, 0x6ACFFF, "Thales UK", "THALES-UK" }, { 0x0050C2, 0x6AD000, 0x6ADFFF, "Heim- & Bürokommunikation", "HEIM-BUEROKOMMUNIKATION" }, { 0x0050C2, 0x6AE000, 0x6AEFFF, "Qualisys AB", "QUALISYS-AB" }, { 0x0050C2, 0x6AF000, 0x6AFFFF, "Nanoradio AB", "NANORADIO-AB" }, { 0x0050C2, 0x6B0000, 0x6B0FFF, "Smart Key International Limited", "SMART-KEY" }, { 0x0050C2, 0x6B1000, 0x6B1FFF, "Burk Technology", "BURK" }, { 0x0050C2, 0x6B2000, 0x6B2FFF, "Edgeware AB", "EDGEWARE-AB" }, { 0x0050C2, 0x6B3000, 0x6B3FFF, "4RF Communications Ltd", "4RF-COMMUNICATION" }, { 0x0050C2, 0x6B4000, 0x6B4FFF, "SOMESCA", "SOMESCA" }, { 0x0050C2, 0x6B5000, 0x6B5FFF, "TRIUMF", "TRIUMF" }, { 0x0050C2, 0x6B6000, 0x6B6FFF, "CommoDaS GmbH", "COMMODAS" }, { 0x0050C2, 0x6B7000, 0x6B7FFF, "System LSI CO.Ltd.", "SYSTEM-LSI" }, { 0x0050C2, 0x6B8000, 0x6B8FFF, "Epec Oy", "EPEC-OY" }, { 0x0050C2, 0x6B9000, 0x6B9FFF, "unipo GmbH", "UNIPO" }, { 0x0050C2, 0x6BA000, 0x6BAFFF, "Fertron Controle e Automacao Industrial Ltda.", "FERTRON-CONTROLE-E-AUTOMACAO-INDUSTRIAL-LTDA" }, { 0x0050C2, 0x6BB000, 0x6BBFFF, "Ele.Mag S.r.l.", "ELE-MAG" }, { 0x0050C2, 0x6BC000, 0x6BCFFF, "Paraytec Ltd", "PARAYTEC" }, { 0x0050C2, 0x6BD000, 0x6BDFFF, "Mitron Oy", "MITRON-OY" }, { 0x0050C2, 0x6BE000, 0x6BEFFF, "ESTEC Co.,Ltd.", "ESTEC" }, { 0x0050C2, 0x6BF000, 0x6BFFFF, "Optoplan as", "OPTOPLAN-AS" }, { 0x0050C2, 0x6C0000, 0x6C0FFF, "GLOSTER SANTE EUROPE", "GLOSTER-SANTE-EUROPE" }, { 0x0050C2, 0x6C1000, 0x6C1FFF, "RADIUS Sweden AB", "RADIUS-SWEDEN-AB" }, { 0x0050C2, 0x6C2000, 0x6C2FFF, "HoseoTelnet Inc...", "HOSEOTELNET" }, { 0x0050C2, 0x6C3000, 0x6C3FFF, "iTRACS Corporation", "ITRACS" }, { 0x0050C2, 0x6C4000, 0x6C4FFF, "REXXON GmbH", "REXXON" }, { 0x0050C2, 0x6C5000, 0x6C5FFF, "Oerlikon Contraves AG", "OERLIKON-CONTRAVES" }, { 0x0050C2, 0x6C6000, 0x6C6FFF, "MedAvant Healthcare", "MEDAVANT-HEALTHCARE" }, { 0x0050C2, 0x6C7000, 0x6C7FFF, "QuickCircuit Ltd.", "QUICKCIRCUIT" }, { 0x0050C2, 0x6C8000, 0x6C8FFF, "B&S MEDIA Co., LTD.", "B-S-MEDIA" }, { 0x0050C2, 0x6C9000, 0x6C9FFF, "NETAMI", "NETAMI" }, { 0x0050C2, 0x6CA000, 0x6CAFFF, "Dynamic Hearing Pty Ltd", "DYNAMIC-HEARING-PTY" }, { 0x0050C2, 0x6CB000, 0x6CBFFF, "Stream Processors", "STREAM-PROCESSORS" }, { 0x0050C2, 0x6CC000, 0x6CCFFF, "Widmer Time Recorder Co., Inc.", "WIDMER-TIME-RECORDER" }, { 0x0050C2, 0x6CD000, 0x6CDFFF, "RGM SPA", "RGM-SPA" }, { 0x0050C2, 0x6CE000, 0x6CEFFF, "EMITALL Surveillance S.A,", "EMITALL-SURVEILLANCE" }, { 0x0050C2, 0x6CF000, 0x6CFFFF, "Microway", "MICROWAY" }, { 0x0050C2, 0x6D0000, 0x6D0FFF, "EDS Systemtechnik", "EDS-SYSTEMTECHNIK" }, { 0x0050C2, 0x6D1000, 0x6D1FFF, "Schnick-Schnack-Systems GmbH", "SCHNICK-SCHNACK" }, { 0x0050C2, 0x6D2000, 0x6D2FFF, "Lumistar Incorporated", "LUMISTAR-INCORPORATED" }, { 0x0050C2, 0x6D3000, 0x6D3FFF, "DigiSensory technologies Pty Ltd", "DIGISENSORY-TECHNOLOGIES-PTY" }, { 0x0050C2, 0x6D4000, 0x6D4FFF, "Etani Electronics Co.,Ltd.", "ETANI-ELECTRONICS" }, { 0x0050C2, 0x6D5000, 0x6D5FFF, "Becker Electronics GmbH", "BECKER-ELECTRONICS" }, { 0x0050C2, 0x6D6000, 0x6D6FFF, "ADL Electronics Ltd.", "ADL-ELECTRONICS" }, { 0x0050C2, 0x6D7000, 0x6D7FFF, "Mavenir System, Inc.", "MAVENIR-SYSTEM" }, { 0x0050C2, 0x6D8000, 0x6D8FFF, "BL Healthcare, Inc.", "BL-HEALTHCARE" }, { 0x0050C2, 0x6D9000, 0x6D9FFF, "Ajeco Oy", "AJECO-OY" }, { 0x0050C2, 0x6DA000, 0x6DAFFF, "Techno Fittings S.r.l.", "TECHNO-FITTINGS" }, { 0x0050C2, 0x6DB000, 0x6DBFFF, "Gebhardt Ventilatoren GmbH", "GEBHARDT-VENTILATOREN" }, { 0x0050C2, 0x6DC000, 0x6DCFFF, "L-3 Communications Mobile-Vision, Inc.", "L-3-COMMUNICATION-MOBILE-VISION" }, { 0x0050C2, 0x6DD000, 0x6DDFFF, "Zmicro Systems Inc", "ZMICRO" }, { 0x0050C2, 0x6DE000, 0x6DEFFF, "Laser Tools & Technics Corp.", "LASER-TOOLS-TECHNICS" }, { 0x0050C2, 0x6DF000, 0x6DFFFF, "QR Sciences Ltd", "QR-SCIENCES" }, { 0x0050C2, 0x6E0000, 0x6E0FFF, "FIRSTTRUST Co.,Ltd.", "FIRSTTRUST" }, { 0x0050C2, 0x6E1000, 0x6E1FFF, "NewOnSys Ltd.", "NEWONSYS" }, { 0x0050C2, 0x6E2000, 0x6E2FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x6E3000, 0x6E3FFF, "Miros AS", "MIROS-AS" }, { 0x0050C2, 0x6E4000, 0x6E4FFF, "MangoDSP", "MANGODSP" }, { 0x0050C2, 0x6E5000, 0x6E5FFF, "Boeckeler Instruments, Inc.", "BOECKELER-INSTRUMENTS" }, { 0x0050C2, 0x6E6000, 0x6E6FFF, "Lanetco", "LANETCO" }, { 0x0050C2, 0x6E7000, 0x6E7FFF, "Ace Axis Limited", "ACE-AXIS" }, { 0x0050C2, 0x6E8000, 0x6E8FFF, "Anymax", "ANYMAX" }, { 0x0050C2, 0x6E9000, 0x6E9FFF, "Bando electronic communication Co.Lltd", "BANDO-COMMUNICATION-LLTD" }, { 0x0050C2, 0x6EA000, 0x6EAFFF, "FIRSTEC SA", "FIRSTEC" }, { 0x0050C2, 0x6EB000, 0x6EBFFF, "Harrison Audio, LLC", "HARRISON-AUDIO" }, { 0x0050C2, 0x6EC000, 0x6ECFFF, "Netistix Technologies Corporation", "NETISTIX-TECHNOLOGIES" }, { 0x0050C2, 0x6ED000, 0x6EDFFF, "Sechan Electronics, Inc.", "SECHAN-ELECTRONICS" }, { 0x0050C2, 0x6EE000, 0x6EEFFF, "Interactive Electronic Systems", "INTERACTIVE" }, { 0x0050C2, 0x6EF000, 0x6EFFFF, "Pneumopartners LaenneXT SA", "PNEUMOPARTNERS-LAENNEXT" }, { 0x0050C2, 0x6F0000, 0x6F0FFF, "Stanley Security Solutions, Inc.", "STANLEY-SECURITY-SOLUTIONS" }, { 0x0050C2, 0x6F1000, 0x6F1FFF, "ITS Telecom", "ITS-TELECOM" }, { 0x0050C2, 0x6F2000, 0x6F2FFF, "Laser Electronics Ltd", "LASER-ELECTRONICS" }, { 0x0050C2, 0x6F3000, 0x6F3FFF, "E3Switch LLC", "E3SWITCH" }, { 0x0050C2, 0x6F4000, 0x6F4FFF, "Cryogenic Control Systems, Inc.", "CRYOGENIC-CONTROL" }, { 0x0050C2, 0x6F5000, 0x6F5FFF, "Kitron Microelectronics AB", "KITRON-MICROELECTRONICS-AB" }, { 0x0050C2, 0x6F6000, 0x6F6FFF, "AV SatCom AS", "AV-SATCOM-AS" }, { 0x0050C2, 0x6F7000, 0x6F7FFF, "infoplan Gesellschaftfür Informationssysteme mbH", "INFOPLAN-GESELLSCHAFTFUER-INFORMATIONSSYSTEME" }, { 0x0050C2, 0x6F8000, 0x6F8FFF, "RV Technology Limited", "RV" }, { 0x0050C2, 0x6F9000, 0x6F9FFF, "Revox GmbH", "REVOX" }, { 0x0050C2, 0x6FA000, 0x6FAFFF, "DCNS", "DCNS" }, { 0x0050C2, 0x6FB000, 0x6FBFFF, "WaveIP", "WAVEIP" }, { 0x0050C2, 0x6FC000, 0x6FCFFF, "Acte Sp. z o.o.", "ACTE-SP-Z-O-O" }, { 0x0050C2, 0x6FD000, 0x6FDFFF, "SAIA Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0x6FE000, 0x6FEFFF, "Blue Origin", "BLUE-ORIGIN" }, { 0x0050C2, 0x6FF000, 0x6FFFFF, "St. Michael Strategies Inc.", "ST-MICHAEL-STRATEGIES" }, { 0x0050C2, 0x700000, 0x700FFF, "GEM-MED SL", "GEM-MED-SL" }, { 0x0050C2, 0x701000, 0x701FFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0x702000, 0x702FFF, "SPM Instrument AB", "SPM-INSTRUMENT-AB" }, { 0x0050C2, 0x703000, 0x703FFF, "SAE IT-systems GmbH & Co. KG", "SAE-IT" }, { 0x0050C2, 0x704000, 0x704FFF, "The Dini Group, La Jolla inc.", "THE-DINI-GROUP-LA-JOLLA" }, { 0x0050C2, 0x705000, 0x705FFF, "Hauch & Bach ApS", "HAUCH-BACH-APS" }, { 0x0050C2, 0x706000, 0x706FFF, "DioDigiWorks. CO., LTD.", "DIODIGIWORKS" }, { 0x0050C2, 0x707000, 0x707FFF, "DTech Labs Inc", "DTECH-LABS" }, { 0x0050C2, 0x708000, 0x708FFF, "Smartek d.o.o.", "SMARTEK-D-O-O" }, { 0x0050C2, 0x709000, 0x709FFF, "RO.VE.R. Laboratories S.p.A", "RO-VE-R-LABORATORIES" }, { 0x0050C2, 0x70A000, 0x70AFFF, "Efficient Channel Coding", "EFFICIENT-CHANNEL-CODING" }, { 0x0050C2, 0x70B000, 0x70BFFF, "B.E.A.R. Solutions (Australasia) Pty, Ltd", "B-E-A-R-SOLUTIONS-AUSTRALASIA-PTY" }, { 0x0050C2, 0x70C000, 0x70CFFF, "Exertus", "EXERTUS" }, { 0x0050C2, 0x70D000, 0x70DFFF, "ela-soft GmbH & Co. KG", "ELA-SOFT" }, { 0x0050C2, 0x70E000, 0x70EFFF, "AUDICO SYSTEMS OY", "AUDICO-OY" }, { 0x0050C2, 0x70F000, 0x70FFFF, "Zumbach Electronic AG", "ZUMBACH" }, { 0x0050C2, 0x710000, 0x710FFF, "Wharton Electronics Ltd", "WHARTON-ELECTRONICS" }, { 0x0050C2, 0x711000, 0x711FFF, "LINKIT S.R.L.", "LINKIT" }, { 0x0050C2, 0x712000, 0x712FFF, "Pasan SA", "PASAN" }, { 0x0050C2, 0x713000, 0x713FFF, "3DX-Ray Limited", "3DX-RAY" }, { 0x0050C2, 0x714000, 0x714FFF, "T.E.AM., S. A.", "T-E-AM-S-A" }, { 0x0050C2, 0x715000, 0x715FFF, "RIEXINGER Elektronik", "RIEXINGER-ELEKTRONIK" }, { 0x0050C2, 0x716000, 0x716FFF, "MITROL S.R.L.", "MITROL" }, { 0x0050C2, 0x717000, 0x717FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x0050C2, 0x718000, 0x718FFF, "illunis LLC", "ILLUNIS" }, { 0x0050C2, 0x719000, 0x719FFF, "ennovatis GmbH", "ENNOVATIS" }, { 0x0050C2, 0x71A000, 0x71AFFF, "Logus Broadband Wireless Solutions Inc.", "LOGUS-BROADBAND-WIRELESS-SOLUTIONS" }, { 0x0050C2, 0x71B000, 0x71BFFF, "ADVA Optical Networking", "ADVA-OPTICAL-NETWORKING" }, { 0x0050C2, 0x71C000, 0x71CFFF, "Elmec Inc.", "ELMEC" }, { 0x0050C2, 0x71D000, 0x71DFFF, "MG s.r.l.", "MG" }, { 0x0050C2, 0x71E000, 0x71EFFF, "ASKI Industrie Elektronik Ges.m.b.H.", "ASKI-INDUSTRIE-ELEKTRONIK-GES-M-B-H" }, { 0x0050C2, 0x71F000, 0x71FFFF, "ASC telecom AG", "ASC-TELECOM" }, { 0x0050C2, 0x720000, 0x720FFF, "Colorado Engineering Inc.", "COLORADO-ENGINEERING" }, { 0x0050C2, 0x721000, 0x721FFF, "Spectrum Communications FZE", "SPECTRUM-COMMUNICATION-FZE" }, { 0x0050C2, 0x722000, 0x722FFF, "Centric TSolve BV", "CENTRIC-TSOLVE" }, { 0x0050C2, 0x723000, 0x723FFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x0050C2, 0x724000, 0x724FFF, "HSC-Regelungstechnik GmbH", "HSC-REGELUNGSTECHNIK" }, { 0x0050C2, 0x725000, 0x725FFF, "DSP DESIGN", "DSP-DESIGN" }, { 0x0050C2, 0x726000, 0x726FFF, "eta systemi CKB", "ETA-SYSTEMI-CKB" }, { 0x0050C2, 0x727000, 0x727FFF, "Pelweckyj Videotechnik GmbH", "PELWECKYJ-VIDEOTECHNIK" }, { 0x0050C2, 0x728000, 0x728FFF, "InterDigital Canada Ltd", "INTERDIGITAL-CANADA" }, { 0x0050C2, 0x729000, 0x729FFF, "SP Controls, Inc", "SP-CONTROLS" }, { 0x0050C2, 0x72A000, 0x72AFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x72B000, 0x72BFFF, "Sequestered Solutions", "SEQUESTERED-SOLUTIONS" }, { 0x0050C2, 0x72C000, 0x72CFFF, "Richard Griessbach Feinmechanik GmbH", "RICHARD-GRIESSBACH-FEINMECHANIK" }, { 0x0050C2, 0x72D000, 0x72DFFF, "Physical Acoustics Corporation", "PHYSICAL-ACOUSTICS" }, { 0x0050C2, 0x72E000, 0x72EFFF, "SNCF EIM PAYS DE LOIRE", "SNCF-EIM-PAYS-DE-LOIRE" }, { 0x0050C2, 0x72F000, 0x72FFFF, "Priority Electronics Ltd", "PRIORITY-ELECTRONICS" }, { 0x0050C2, 0x730000, 0x730FFF, "haber & koenig electronics gmbh", "HABER-KOENIG-ELECTRONICS" }, { 0x0050C2, 0x731000, 0x731FFF, "Spirent Communications", "SPIRENT-COMMUNICATION" }, { 0x0050C2, 0x732000, 0x732FFF, "Schlumberger K.K.", "SCHLUMBERGER-K-K" }, { 0x0050C2, 0x733000, 0x733FFF, "Cimetrics Research Pty Ltd", "CIMETRICS-RESEARCH-PTY" }, { 0x0050C2, 0x734000, 0x734FFF, "CardioMEMS Inc.", "CARDIOMEMS" }, { 0x0050C2, 0x735000, 0x735FFF, "Ant Lamp, Inc", "ANT-LAMP" }, { 0x0050C2, 0x736000, 0x736FFF, "Nika Ltd", "NIKA" }, { 0x0050C2, 0x737000, 0x737FFF, "Teradici Corporation", "TERADICI" }, { 0x0050C2, 0x738000, 0x738FFF, "Miracom Technology Co., Ltd.", "MIRACOM" }, { 0x0050C2, 0x739000, 0x739FFF, "Tattile srl", "TATTILE-SRL" }, { 0x0050C2, 0x73A000, 0x73AFFF, "Naturela Ltd.", "NATURELA" }, { 0x0050C2, 0x73B000, 0x73BFFF, "On Air Networks", "ON-AIR-NETWORKS" }, { 0x0050C2, 0x73C000, 0x73CFFF, "Simicon", "SIMICON" }, { 0x0050C2, 0x73D000, 0x73DFFF, "cryptiris", "CRYPTIRIS" }, { 0x0050C2, 0x73E000, 0x73EFFF, "Quantec Networks GmbH", "QUANTEC-NETWORKS" }, { 0x0050C2, 0x73F000, 0x73FFFF, "MEDAV GmbH", "MEDAV" }, { 0x0050C2, 0x740000, 0x740FFF, "McQuay China", "MCQUAY-CHINA" }, { 0x0050C2, 0x741000, 0x741FFF, "Dain", "DAIN" }, { 0x0050C2, 0x742000, 0x742FFF, "Fantuzzi Reggiane", "FANTUZZI-REGGIANE" }, { 0x0050C2, 0x743000, 0x743FFF, "Elektro-Top 3000 Ltd.", "ELEKTRO-TOP-3000" }, { 0x0050C2, 0x744000, 0x744FFF, "Avonaco Systems, Inc.", "AVONACO" }, { 0x0050C2, 0x745000, 0x745FFF, "ACISA", "ACISA" }, { 0x0050C2, 0x746000, 0x746FFF, "Realtronix Company", "REALTRONIX-COMPANY" }, { 0x0050C2, 0x747000, 0x747FFF, "CDSA Dam Neck", "CDSA-DAM-NECK" }, { 0x0050C2, 0x748000, 0x748FFF, "Letechnic Ltd", "LETECHNIC" }, { 0x0050C2, 0x749000, 0x749FFF, "Affolter Technologies SA", "AFFOLTER-TECHNOLOGIES" }, { 0x0050C2, 0x74A000, 0x74AFFF, "MONITOR ELECTRONICS LTD", "MONITOR-ELECTRONICS" }, { 0x0050C2, 0x74B000, 0x74BFFF, "STAR-Dundee Ltd", "STAR-DUNDEE" }, { 0x0050C2, 0x74C000, 0x74CFFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0x74D000, 0x74DFFF, "Beceem Communications, Inc.", "BECEEM-COMMUNICATION" }, { 0x0050C2, 0x74E000, 0x74EFFF, "TRONICO", "TRONICO" }, { 0x0050C2, 0x74F000, 0x74FFFF, "German Technologies", "GERMAN-TECHNOLOGIES" }, { 0x0050C2, 0x750000, 0x750FFF, "Brightlights Intellectual Property Ltd", "BRIGHTLIGHTS-INTELLECTUAL-PROPERTY" }, { 0x0050C2, 0x751000, 0x751FFF, "e&s Engineering & Software GmbH", "E-S-ENGINEERING-SOFTWARE" }, { 0x0050C2, 0x752000, 0x752FFF, "LOBER, S.A.", "LOBER" }, { 0x0050C2, 0x753000, 0x753FFF, "ABB", "ABB" }, { 0x0050C2, 0x754000, 0x754FFF, "Abeo Corporation", "ABEO" }, { 0x0050C2, 0x755000, 0x755FFF, "Teletek Electronics", "TELETEK-ELECTRONICS" }, { 0x0050C2, 0x756000, 0x756FFF, "Chesapeake Sciences Corp", "CHESAPEAKE-SCIENCES" }, { 0x0050C2, 0x757000, 0x757FFF, "E S P Technologies Ltd", "E-S-P-TECHNOLOGIES" }, { 0x0050C2, 0x758000, 0x758FFF, "AixSolve GmbH", "AIXSOLVE" }, { 0x0050C2, 0x759000, 0x759FFF, "Sequentric Energy Systems, LLC", "SEQUENTRIC-ENERGY" }, { 0x0050C2, 0x75A000, 0x75AFFF, "Gaisler Research AB", "GAISLER-RESEARCH-AB" }, { 0x0050C2, 0x75B000, 0x75BFFF, "DMT System S.p.A.", "DMT-SYSTEM" }, { 0x0050C2, 0x75C000, 0x75CFFF, "STÖRK-TRONIC Störk GmbH&Co. KG", "STOERK-TRONIC-STOERK" }, { 0x0050C2, 0x75D000, 0x75DFFF, "Fluid Analytics, Inc.", "FLUID-ANALYTICS" }, { 0x0050C2, 0x75E000, 0x75EFFF, "Sky-Skan, Incorporated", "SKY-SKAN-INCORPORATED" }, { 0x0050C2, 0x75F000, 0x75FFFF, "B. Rexroth the identity company GmbH", "B-REXROTH-THE-IDENTITY-COMPANY" }, { 0x0050C2, 0x760000, 0x760FFF, "AR'S CO., LTD.", "AR-S" }, { 0x0050C2, 0x761000, 0x761FFF, "Elbit Systems of America", "ELBIT-OF-AMERICA" }, { 0x0050C2, 0x762000, 0x762FFF, "Assembly Contracts Limited", "ASSEMBLY-CONTRACTS" }, { 0x0050C2, 0x763000, 0x763FFF, "XtendWave", "XTENDWAVE" }, { 0x0050C2, 0x764000, 0x764FFF, "ARGUS-SPECTRUM", "ARGUS-SPECTRUM" }, { 0x0050C2, 0x765000, 0x765FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x766000, 0x766FFF, "Gutermann Technology GmbH", "GUTERMANN" }, { 0x0050C2, 0x767000, 0x767FFF, "EID", "EID" }, { 0x0050C2, 0x768000, 0x768FFF, "Control Service do Brasil Ltda", "CONTROL-SERVICE-DO-BRASIL-LTDA" }, { 0x0050C2, 0x769000, 0x769FFF, "BES GmbH", "BES" }, { 0x0050C2, 0x76A000, 0x76AFFF, "Digidrive Audio Limited", "DIGIDRIVE-AUDIO" }, { 0x0050C2, 0x76B000, 0x76BFFF, "Putercom Enterprise Co., LTD.", "PUTERCOM" }, { 0x0050C2, 0x76C000, 0x76CFFF, "EFG CZ spol. s r.o.", "EFG-CZ-SPOL-S-R-O" }, { 0x0050C2, 0x76D000, 0x76DFFF, "Mobilisme", "MOBILISME" }, { 0x0050C2, 0x76E000, 0x76EFFF, "Crinia Corporation", "CRINIA" }, { 0x0050C2, 0x76F000, 0x76FFFF, "Control and Robotics Solutions", "CONTROL-AND-ROBOTICS-SOLUTIONS" }, { 0x0050C2, 0x770000, 0x770FFF, "Cadex Electronics Inc.", "CADEX-ELECTRONICS" }, { 0x0050C2, 0x771000, 0x771FFF, "ZigBee Alliance", "ZIGBEE-ALLIANCE" }, { 0x0050C2, 0x772000, 0x772FFF, "IES Elektronikentwicklung", "IES-ELEKTRONIKENTWICKLUNG" }, { 0x0050C2, 0x773000, 0x773FFF, "Pointe Conception Medical Inc.", "POINTE-CONCEPTION-MEDICAL" }, { 0x0050C2, 0x774000, 0x774FFF, "GeoSIG Ltd.", "GEOSIG" }, { 0x0050C2, 0x775000, 0x775FFF, "Laserdyne Technologies", "LASERDYNE-TECHNOLOGIES" }, { 0x0050C2, 0x776000, 0x776FFF, "Integrated Security Corporation", "INTEGRATED-SECURITY" }, { 0x0050C2, 0x777000, 0x777FFF, "Euro Display Srl", "EURO-DISPLAY-SRL" }, { 0x0050C2, 0x778000, 0x778FFF, "SunGard Vivista", "SUNGARD-VIVISTA" }, { 0x0050C2, 0x779000, 0x779FFF, "Coral Telecom Ltd", "CORAL-TELECOM" }, { 0x0050C2, 0x77A000, 0x77AFFF, "Smith Meter, Inc", "SMITH-METER" }, { 0x0050C2, 0x77B000, 0x77BFFF, "Itibia Technologies", "ITIBIA-TECHNOLOGIES" }, { 0x0050C2, 0x77C000, 0x77CFFF, "ATEC SRL", "ATEC-SRL" }, { 0x0050C2, 0x77D000, 0x77DFFF, "Lincoln Industrial", "LINCOLN-INDUSTRIAL" }, { 0x0050C2, 0x77E000, 0x77EFFF, "Cominfo, Inc.", "COMINFO" }, { 0x0050C2, 0x77F000, 0x77FFFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x0050C2, 0x780000, 0x780FFF, "IQ Solutions GmbH & Co. KG", "IQ-SOLUTIONS" }, { 0x0050C2, 0x781000, 0x781FFF, "Starling Advanced Communications", "STARLING-ADVANCED-COMMUNICATION" }, { 0x0050C2, 0x782000, 0x782FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x783000, 0x783FFF, "NORMA systems GmbH", "NORMA" }, { 0x0050C2, 0x784000, 0x784FFF, "Lewis Controls Inc.", "LEWIS-CONTROLS" }, { 0x0050C2, 0x785000, 0x785FFF, "Icon Time Systems", "ICON-TIME" }, { 0x0050C2, 0x786000, 0x786FFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0x787000, 0x787FFF, "Austco Marketing & Service (USA) ltd.", "AUSTCO-MARKETING-SERVICE-USA" }, { 0x0050C2, 0x788000, 0x788FFF, "HOSA TECHNOLOGY, INC.", "HOSA" }, { 0x0050C2, 0x789000, 0x789FFF, "Rosslare Enterprises Limited", "ROSSLARE-ENTERPRISES" }, { 0x0050C2, 0x78A000, 0x78AFFF, "LEVEL TELECOM", "LEVEL-TELECOM" }, { 0x0050C2, 0x78B000, 0x78BFFF, "OMICRON electronics GmbH", "OMICRON-ELECTRONICS" }, { 0x0050C2, 0x78C000, 0x78CFFF, "Giga-tronics, Inc.", "GIGA-TRONICS" }, { 0x0050C2, 0x78D000, 0x78DFFF, "Telairity", "TELAIRITY" }, { 0x0050C2, 0x78E000, 0x78EFFF, "GLOBALCOM ENGINEERING SRL", "GLOBALCOM-ENGINEERING-SRL" }, { 0x0050C2, 0x78F000, 0x78FFFF, "ELMAR electronic", "ELMAR" }, { 0x0050C2, 0x790000, 0x790FFF, "GE Security-Kampro", "GE-SECURITY-KAMPRO" }, { 0x0050C2, 0x791000, 0x791FFF, "M Squared Lasers Limited", "M-SQUARED-LASERS" }, { 0x0050C2, 0x792000, 0x792FFF, "SMARTRO Co.,Ltd.", "SMARTRO" }, { 0x0050C2, 0x793000, 0x793FFF, "Enertex Bayern GmbH", "ENERTEX-BAYERN" }, { 0x0050C2, 0x794000, 0x794FFF, "COMSONICS, INC.", "COMSONICS" }, { 0x0050C2, 0x795000, 0x795FFF, "Ameli Spa", "AMELI-SPA" }, { 0x0050C2, 0x796000, 0x796FFF, "DORLET SAU", "DORLET-SAU" }, { 0x0050C2, 0x797000, 0x797FFF, "Tiefenbach Control Systems GmbH", "TIEFENBACH-CONTROL" }, { 0x0050C2, 0x798000, 0x798FFF, "Indefia", "INDEFIA" }, { 0x0050C2, 0x799000, 0x799FFF, "AAVD", "AAVD" }, { 0x0050C2, 0x79A000, 0x79AFFF, "JMC America, LLC", "JMC-AMERICA" }, { 0x0050C2, 0x79B000, 0x79BFFF, "Schniewindt GmbH & Co. KG", "SCHNIEWINDT" }, { 0x0050C2, 0x79C000, 0x79CFFF, "Vital Systems Inc", "VITAL" }, { 0x0050C2, 0x79D000, 0x79DFFF, "MiraTrek", "MIRATREK" }, { 0x0050C2, 0x79E000, 0x79EFFF, "Benshaw Canada Controls, Inc.", "BENSHAW-CANADA-CONTROLS" }, { 0x0050C2, 0x79F000, 0x79FFFF, "ZAO NPC", "ZAO-NPC" }, { 0x0050C2, 0x7A0000, 0x7A0FFF, "MedAvant Healthcare", "MEDAVANT-HEALTHCARE" }, { 0x0050C2, 0x7A1000, 0x7A1FFF, "Field Design Service", "FIELD-DESIGN-SERVICE" }, { 0x0050C2, 0x7A2000, 0x7A2FFF, "RaySat Israel LTD", "RAYSAT-ISRAEL" }, { 0x0050C2, 0x7A3000, 0x7A3FFF, "ABB Transmission and Distribution Automation Equipment (Xiamen) Co., Ltd.", "ABB-TRANSMISSION-AND-DISTRIBUTION-AUTOMATION-EQUIPMENT-XIAMEN" }, { 0x0050C2, 0x7A4000, 0x7A4FFF, "Calibre UK LTD", "CALIBRE-UK" }, { 0x0050C2, 0x7A5000, 0x7A5FFF, "Quantum Medical Imaging", "QUANTUM-MEDICAL-IMAGING" }, { 0x0050C2, 0x7A6000, 0x7A6FFF, "ASIANA IDT", "ASIANA-IDT" }, { 0x0050C2, 0x7A7000, 0x7A7FFF, "Guidance Navigation Limited", "GUIDANCE-NAVIGATION" }, { 0x0050C2, 0x7A8000, 0x7A8FFF, "Integrated Design Tools, Inc.", "INTEGRATED-DESIGN-TOOLS" }, { 0x0050C2, 0x7A9000, 0x7A9FFF, "DELTA TAU DATA SYSTEMS, INC.", "DELTA-TAU-DATA" }, { 0x0050C2, 0x7AA000, 0x7AAFFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x0050C2, 0x7AB000, 0x7ABFFF, "General Microsystems Sdn Bhd", "GENERAL-MICROSYSTEMS" }, { 0x0050C2, 0x7AC000, 0x7ACFFF, "IUSA SA DE CV", "IUSA-DE-CV" }, { 0x0050C2, 0x7AD000, 0x7ADFFF, "Turun Turvatekniikka Oy", "TURUN-TURVATEKNIIKKA-OY" }, { 0x0050C2, 0x7AE000, 0x7AEFFF, "Global Tel-Link", "GLOBAL-TEL-LINK" }, { 0x0050C2, 0x7AF000, 0x7AFFFF, "C2 Microsystems", "C2-MICROSYSTEMS" }, { 0x0050C2, 0x7B0000, 0x7B0FFF, "IMP Telekom", "IMP-TELEKOM" }, { 0x0050C2, 0x7B1000, 0x7B1FFF, "ATEME", "ATEME" }, { 0x0050C2, 0x7B2000, 0x7B2FFF, "A.D.I Video technologies", "A-D-I-VIDEO-TECHNOLOGIES" }, { 0x0050C2, 0x7B3000, 0x7B3FFF, "Elmec, Inc.", "ELMEC" }, { 0x0050C2, 0x7B4000, 0x7B4FFF, "T 1 Engineering", "T-1-ENGINEERING" }, { 0x0050C2, 0x7B5000, 0x7B5FFF, "DIT-MCO International", "DIT-MCO" }, { 0x0050C2, 0x7B6000, 0x7B6FFF, "Alstom (Schweiz) AG", "ALSTOM-SCHWEIZ" }, { 0x0050C2, 0x7B7000, 0x7B7FFF, "Tattile srl", "TATTILE-SRL" }, { 0x0050C2, 0x7B8000, 0x7B8FFF, "Design 2000 Pty Ltd", "DESIGN-2000-PTY" }, { 0x0050C2, 0x7B9000, 0x7B9FFF, "Technovare Systems, Inc.", "TECHNOVARE" }, { 0x0050C2, 0x7BA000, 0x7BAFFF, "Infodev Electronic Designers Intl.", "INFODEV-DESIGNERS-INTL" }, { 0x0050C2, 0x7BB000, 0x7BBFFF, "InRay Solutions Ltd.", "INRAY-SOLUTIONS" }, { 0x0050C2, 0x7BC000, 0x7BCFFF, "EIDOS SPA", "EIDOS-SPA" }, { 0x0050C2, 0x7BD000, 0x7BDFFF, "PROMATE ELECTRONIC CO.LTD", "PROMATE" }, { 0x0050C2, 0x7BE000, 0x7BEFFF, "Powerlinx, Inc.", "POWERLINX" }, { 0x0050C2, 0x7BF000, 0x7BFFFF, "Zoe Medical", "ZOE-MEDICAL" }, { 0x0050C2, 0x7C0000, 0x7C0FFF, "European Industrial Electronics B.V.", "EUROPEAN-INDUSTRIAL-ELECTRONICS-B-V" }, { 0x0050C2, 0x7C1000, 0x7C1FFF, "Primary Integration Encorp LLC", "PRIMARY-INTEGRATION-ENCORP" }, { 0x0050C2, 0x7C2000, 0x7C2FFF, "DSR Information Technologies Ltd.", "DSR-INFORMATION-TECHNOLOGIES" }, { 0x0050C2, 0x7C3000, 0x7C3FFF, "AST INCORPORATED", "AST-INCORPORATED" }, { 0x0050C2, 0x7C4000, 0x7C4FFF, "MoBaCon", "MOBACON" }, { 0x0050C2, 0x7C5000, 0x7C5FFF, "Venture Research Inc.", "VENTURE-RESEARCH" }, { 0x0050C2, 0x7C6000, 0x7C6FFF, "Lyngdorf Audio Aps", "LYNGDORF-AUDIO-APS" }, { 0x0050C2, 0x7C7000, 0x7C7FFF, "Pyrosequencing AB", "PYROSEQUENCING-AB" }, { 0x0050C2, 0x7C8000, 0x7C8FFF, "Fr. Sauter AG", "FR-SAUTER" }, { 0x0050C2, 0x7C9000, 0x7C9FFF, "Bluebell Opticom Limited", "BLUEBELL-OPTICOM" }, { 0x0050C2, 0x7CA000, 0x7CAFFF, "CEDAR Audio Limited", "CEDAR-AUDIO" }, { 0x0050C2, 0x7CB000, 0x7CBFFF, "ViewPlus Technologies, Inc.", "VIEWPLUS-TECHNOLOGIES" }, { 0x0050C2, 0x7CC000, 0x7CCFFF, "SWECO JAPS AB", "SWECO-JAPS-AB" }, { 0x0050C2, 0x7CD000, 0x7CDFFF, "Precision MicroControl Corporation", "PRECISION-MICROCONTROL" }, { 0x0050C2, 0x7CE000, 0x7CEFFF, "Gogo BA", "GOGO-BA" }, { 0x0050C2, 0x7CF000, 0x7CFFFF, "Emitech Corporation", "EMITECH" }, { 0x0050C2, 0x7D0000, 0x7D0FFF, "Radar Tronic ltd.", "RADAR-TRONIC" }, { 0x0050C2, 0x7D1000, 0x7D1FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x7D2000, 0x7D2FFF, "Bittitalo Oy", "BITTITALO-OY" }, { 0x0050C2, 0x7D3000, 0x7D3FFF, "Highrail Systems Limited", "HIGHRAIL" }, { 0x0050C2, 0x7D4000, 0x7D4FFF, "WR Systems, Ltd.", "WR" }, { 0x0050C2, 0x7D5000, 0x7D5FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x0050C2, 0x7D6000, 0x7D6FFF, "International Mining Technologies", "MINING-TECHNOLOGIES" }, { 0x0050C2, 0x7D7000, 0x7D7FFF, "Newtec A/S", "NEWTEC-A/S" }, { 0x0050C2, 0x7D8000, 0x7D8FFF, "InnoScan K/S", "INNOSCAN-K/S" }, { 0x0050C2, 0x7D9000, 0x7D9FFF, "Volumatic Limited", "VOLUMATIC" }, { 0x0050C2, 0x7DA000, 0x7DAFFF, "HTEC Limited", "HTEC" }, { 0x0050C2, 0x7DB000, 0x7DBFFF, "Mueller Elektronik", "MUELLER-ELEKTRONIK" }, { 0x0050C2, 0x7DC000, 0x7DCFFF, "aiXtrusion GmbH", "AIXTRUSION" }, { 0x0050C2, 0x7DD000, 0x7DDFFF, "LS Elektronik AB", "LS-ELEKTRONIK-AB" }, { 0x0050C2, 0x7DE000, 0x7DEFFF, "Cascade Technologies Ltd", "CASCADE-TECHNOLOGIES" }, { 0x0050C2, 0x7DF000, 0x7DFFFF, "Private", "PRIVATE" }, { 0x0050C2, 0x7E0000, 0x7E0FFF, "C&D Technologies, Inc", "C-D-TECHNOLOGIES" }, { 0x0050C2, 0x7E1000, 0x7E1FFF, "Zeltiq Aesthetics, Inc.", "ZELTIQ-AESTHETICS" }, { 0x0050C2, 0x7E2000, 0x7E2FFF, "DIGITROL LTD", "DIGITROL" }, { 0x0050C2, 0x7E3000, 0x7E3FFF, "Progentech Limited", "PROGENTECH" }, { 0x0050C2, 0x7E4000, 0x7E4FFF, "Meta Vision Systems Ltd.", "META-VISION" }, { 0x0050C2, 0x7E5000, 0x7E5FFF, "Nystrom Engineering", "NYSTROM-ENGINEERING" }, { 0x0050C2, 0x7E6000, 0x7E6FFF, "Empirix Italy S.p.A.", "EMPIRIX-ITALY" }, { 0x0050C2, 0x7E7000, 0x7E7FFF, "V2Green, Inc.", "V2GREEN" }, { 0x0050C2, 0x7E8000, 0x7E8FFF, "Mistral Solutions Pvt. Ltd", "MISTRAL-SOLUTIONS-PVT" }, { 0x0050C2, 0x7E9000, 0x7E9FFF, "Sicon srl", "SICON-SRL" }, { 0x0050C2, 0x7EA000, 0x7EAFFF, "Monitor Business Machines Ltd.", "MONITOR-BUSINESS-MACHINES" }, { 0x0050C2, 0x7EB000, 0x7EBFFF, "Sesol Industrial Computer", "SESOL-INDUSTRIAL" }, { 0x0050C2, 0x7EC000, 0x7ECFFF, "Lyngsoe Systems", "LYNGSOE" }, { 0x0050C2, 0x7ED000, 0x7EDFFF, "Genesis Automation Inc.", "GENESIS-AUTOMATION" }, { 0x0050C2, 0x7EE000, 0x7EEFFF, "NH Research", "NH-RESEARCH" }, { 0x0050C2, 0x7EF000, 0x7EFFFF, "GFI Chrono Time", "GFI-CHRONO-TIME" }, { 0x0050C2, 0x7F0000, 0x7F0FFF, "Network Harbor, Inc.", "NETWORK-HARBOR" }, { 0x0050C2, 0x7F1000, 0x7F1FFF, "STUHL Regelsysteme GmbH", "STUHL-REGELSYSTEME" }, { 0x0050C2, 0x7F2000, 0x7F2FFF, "Logotherm Regelsysteme GmbH", "LOGOTHERM-REGELSYSTEME" }, { 0x0050C2, 0x7F3000, 0x7F3FFF, "SOREC", "SOREC" }, { 0x0050C2, 0x7F4000, 0x7F4FFF, "Wireless Cables Inc.", "WIRELESS-CABLES" }, { 0x0050C2, 0x7F5000, 0x7F5FFF, "ACE Carwash Systems", "ACE-CARWASH" }, { 0x0050C2, 0x7F6000, 0x7F6FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0x7F7000, 0x7F7FFF, "MangoDSP", "MANGODSP" }, { 0x0050C2, 0x7F8000, 0x7F8FFF, "Wise Industria de Telecomunicações Ldta.", "WISE-INDUSTRIA-DE-TELECOMUNICAES-LDTA" }, { 0x0050C2, 0x7F9000, 0x7F9FFF, "Karl DUNGS GmbH & Co. KG", "KARL-DUNGS" }, { 0x0050C2, 0x7FA000, 0x7FAFFF, "AutomationX GmbH", "AUTOMATIONX" }, { 0x0050C2, 0x7FB000, 0x7FBFFF, "Qtron Pty Ltd", "QTRON-PTY" }, { 0x0050C2, 0x7FC000, 0x7FCFFF, "TIS Dialog LLC", "TIS-DIALOG" }, { 0x0050C2, 0x7FD000, 0x7FDFFF, "Adeneo", "ADENEO" }, { 0x0050C2, 0x7FE000, 0x7FEFFF, "Wireless Cables Inc.", "WIRELESS-CABLES" }, { 0x0050C2, 0x7FF000, 0x7FFFFF, "Shenzhen MaiWei Cable TV Equipment CO.,LTD.", "SHENZHEN-MAIWEI-CABLE-TV-EQUIPMENT" }, { 0x0050C2, 0x800000, 0x800FFF, "Delphi Display Systems, Inc.", "DELPHI-DISPLAY" }, { 0x0050C2, 0x801000, 0x801FFF, "JANUS srl", "JANUS-SRL" }, { 0x0050C2, 0x802000, 0x802FFF, "Private", "PRIVATE" }, { 0x0050C2, 0x803000, 0x803FFF, "dB Broadcast Limited", "DB-BROADCAST" }, { 0x0050C2, 0x804000, 0x804FFF, "SoftSwitching Technologies", "SOFTSWITCHING-TECHNOLOGIES" }, { 0x0050C2, 0x805000, 0x805FFF, "MultimediaLED", "MULTIMEDIALED" }, { 0x0050C2, 0x806000, 0x806FFF, "CET", "CET" }, { 0x0050C2, 0x807000, 0x807FFF, "TECHNOMARK", "TECHNOMARK" }, { 0x0050C2, 0x808000, 0x808FFF, "ITB CompuPhase", "ITB-COMPUPHASE" }, { 0x0050C2, 0x809000, 0x809FFF, "Varma Electronics Oy", "VARMA-ELECTRONICS-OY" }, { 0x0050C2, 0x80A000, 0x80AFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x80B000, 0x80BFFF, "Open Video, Inc.", "OPEN-VIDEO" }, { 0x0050C2, 0x80C000, 0x80CFFF, "Luxpert Technologies Co., Ltd.", "LUXPERT-TECHNOLOGIES" }, { 0x0050C2, 0x80D000, 0x80DFFF, "Acube Systems s.r.l.", "ACUBE" }, { 0x0050C2, 0x80E000, 0x80EFFF, "Bruno International Ltd.", "BRUNO" }, { 0x0050C2, 0x80F000, 0x80FFFF, "Selekron Microcontrol s.l.", "SELEKRON-MICROCONTROL" }, { 0x0050C2, 0x810000, 0x810FFF, "Alphion Corporation", "ALPHION" }, { 0x0050C2, 0x811000, 0x811FFF, "Open System Solutions Limited", "OPEN-SYSTEM-SOLUTIONS" }, { 0x0050C2, 0x812000, 0x812FFF, "Femto SA", "FEMTO" }, { 0x0050C2, 0x813000, 0x813FFF, "Intelleflex Corporation", "INTELLEFLEX" }, { 0x0050C2, 0x814000, 0x814FFF, "Telvent", "TELVENT" }, { 0x0050C2, 0x815000, 0x815FFF, "microC Design SRL", "MICROC-DESIGN-SRL" }, { 0x0050C2, 0x816000, 0x816FFF, "Intelight Inc.", "INTELIGHT" }, { 0x0050C2, 0x817000, 0x817FFF, "Odin TeleSystems Inc", "ODIN-TELESYSTEMS" }, { 0x0050C2, 0x818000, 0x818FFF, "Wireless Value BV", "WIRELESS-VALUE" }, { 0x0050C2, 0x819000, 0x819FFF, "Cabinplant A/S", "CABINPLANT-A/S" }, { 0x0050C2, 0x81A000, 0x81AFFF, "InfoGLOBAL", "INFOGLOBAL" }, { 0x0050C2, 0x81B000, 0x81BFFF, "Brain Tech Co., Ltd", "BRAIN-TECH" }, { 0x0050C2, 0x81C000, 0x81CFFF, "Telcom", "TELCOM" }, { 0x0050C2, 0x81D000, 0x81DFFF, "IT SALUX CO., LTD.", "IT-SALUX" }, { 0x0050C2, 0x81E000, 0x81EFFF, "Channelot Ltd.", "CHANNELOT" }, { 0x0050C2, 0x81F000, 0x81FFFF, "2N TELEKOMUNIKACE a.s.", "2N-TELEKOMUNIKACE" }, { 0x0050C2, 0x820000, 0x820FFF, "TESCAN, s.r.o.", "TESCAN-S-R-O" }, { 0x0050C2, 0x821000, 0x821FFF, "MISCO Refractometer", "MISCO-REFRACTOMETER" }, { 0x0050C2, 0x822000, 0x822FFF, "Winner Technology Co, Ltd.", "WINNER" }, { 0x0050C2, 0x823000, 0x823FFF, "Robot Visual Systems GmbH", "ROBOT-VISUAL" }, { 0x0050C2, 0x824000, 0x824FFF, "SMT d.o.o.", "SMT-D-O-O" }, { 0x0050C2, 0x825000, 0x825FFF, "Funkwerk Information Technologies Karlsfeld GmbH", "FUNKWERK-INFORMATION-TECHNOLOGIES-KARLSFELD" }, { 0x0050C2, 0x826000, 0x826FFF, "HEWI Heinrich Wilke GmbH", "HEWI-HEINRICH-WILKE" }, { 0x0050C2, 0x827000, 0x827FFF, "Enero Solutions inc.", "ENERO-SOLUTIONS" }, { 0x0050C2, 0x828000, 0x828FFF, "SLICAN sp. z o.o.", "SLICAN-SP-Z-O-O" }, { 0x0050C2, 0x829000, 0x829FFF, "Intellectronika", "INTELLECTRONIKA" }, { 0x0050C2, 0x82A000, 0x82AFFF, "VDC Display Systems", "VDC-DISPLAY" }, { 0x0050C2, 0x82B000, 0x82BFFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0x82C000, 0x82CFFF, "Vitel Net", "VITEL-NET" }, { 0x0050C2, 0x82D000, 0x82DFFF, "Elmec, Inc.", "ELMEC" }, { 0x0050C2, 0x82E000, 0x82EFFF, "LogiCom GmbH", "LOGICOM" }, { 0x0050C2, 0x82F000, 0x82FFFF, "Momentum Data Systems", "MOMENTUM-DATA" }, { 0x0050C2, 0x830000, 0x830FFF, "CompuShop Services LLC", "COMPUSHOP-SERVICES" }, { 0x0050C2, 0x831000, 0x831FFF, "St Jude Medical, Inc.", "ST-JUDE-MEDICAL" }, { 0x0050C2, 0x832000, 0x832FFF, "S1nn GmbH & Co. KG", "S1NN" }, { 0x0050C2, 0x833000, 0x833FFF, "LaserLinc, Inc.", "LASERLINC" }, { 0x0050C2, 0x834000, 0x834FFF, "ANTEK GmbH", "ANTEK" }, { 0x0050C2, 0x835000, 0x835FFF, "Communications Laboratories Inc", "COMMUNICATION-LABORATORIES" }, { 0x0050C2, 0x836000, 0x836FFF, "DSP DESIGN", "DSP-DESIGN" }, { 0x0050C2, 0x837000, 0x837FFF, "ID-KARTA s.r.o.", "ID-KARTA-S-R-O" }, { 0x0050C2, 0x838000, 0x838FFF, "T PROJE MUHENDISLIK DIS. TIC. LTD. STI.", "T-PROJE-MUHENDISLIK-DIS-TIC-STI" }, { 0x0050C2, 0x839000, 0x839FFF, "IMS Röntgensysteme GmbH", "IMS-ROENTGENSYSTEME" }, { 0x0050C2, 0x83A000, 0x83AFFF, "Syr-Tec Engineering & Marketing", "SYR-TEC-ENGINEERING-MARKETING" }, { 0x0050C2, 0x83B000, 0x83BFFF, "O. Bay AG", "O-BAY" }, { 0x0050C2, 0x83C000, 0x83CFFF, "hema electronic GmbH", "HEMA" }, { 0x0050C2, 0x83D000, 0x83DFFF, "beroNet GmbH", "BERONET" }, { 0x0050C2, 0x83E000, 0x83EFFF, "KPE spol. s r.o.", "KPE-SPOL-S-R-O" }, { 0x0050C2, 0x83F000, 0x83FFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x840000, 0x840FFF, "Residential Control Systems", "RESIDENTIAL-CONTROL" }, { 0x0050C2, 0x841000, 0x841FFF, "Connection Electronics Ltd.", "CONNECTION-ELECTRONICS" }, { 0x0050C2, 0x842000, 0x842FFF, "Quantum Controls BV", "QUANTUM-CONTROLS" }, { 0x0050C2, 0x843000, 0x843FFF, "Xtensor Systems Inc.", "XTENSOR" }, { 0x0050C2, 0x844000, 0x844FFF, "Prodigy Electronics Limited", "PRODIGY-ELECTRONICS" }, { 0x0050C2, 0x845000, 0x845FFF, "VisualSonics Inc.", "VISUALSONICS" }, { 0x0050C2, 0x846000, 0x846FFF, "ESP-Planning Co.", "ESP-PLANNING" }, { 0x0050C2, 0x847000, 0x847FFF, "Lars Morich Kommunikationstechnik GmbH", "LARS-MORICH-KOMMUNIKATIONSTECHNIK" }, { 0x0050C2, 0x848000, 0x848FFF, "DASA ROBOT Co., Ltd.", "DASA-ROBOT" }, { 0x0050C2, 0x849000, 0x849FFF, "Design Analysis Associates, Inc.", "DESIGN-ANALYSIS-ASSOCIATES" }, { 0x0050C2, 0x84A000, 0x84AFFF, "Keystone Electronic Solutions", "KEYSTONE-SOLUTIONS" }, { 0x0050C2, 0x84B000, 0x84BFFF, "TASK SISTEMAS DE COMPUTACAO LTDA", "TASK-SISTEMAS-DE-COMPUTACAO-LTDA" }, { 0x0050C2, 0x84C000, 0x84CFFF, "Performance Motion Devices", "PERFORMANCE-MOTION-DEVICES" }, { 0x0050C2, 0x84D000, 0x84DFFF, "BMTI", "BMTI" }, { 0x0050C2, 0x84E000, 0x84EFFF, "DRACO SYSTEMS", "DRACO" }, { 0x0050C2, 0x84F000, 0x84FFFF, "Gamber-Johnson LLC", "GAMBER-JOHNSON" }, { 0x0050C2, 0x850000, 0x850FFF, "K.K. Rocky", "K-K-ROCKY" }, { 0x0050C2, 0x851000, 0x851FFF, "SPJ Embedded Technologies Pvt. Ltd.", "SPJ-EMBEDDED-TECHNOLOGIES-PVT" }, { 0x0050C2, 0x852000, 0x852FFF, "eInfochips Ltd.", "EINFOCHIPS" }, { 0x0050C2, 0x853000, 0x853FFF, "Ettus Research LLC", "ETTUS-RESEARCH" }, { 0x0050C2, 0x854000, 0x854FFF, "Ratioplast-Optoelectronics GmbH", "RATIOPLAST-OPTOELECTRONICS" }, { 0x0050C2, 0x855000, 0x855FFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x0050C2, 0x856000, 0x856FFF, "CT Company", "CT-COMPANY" }, { 0x0050C2, 0x857000, 0x857FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x0050C2, 0x858000, 0x858FFF, "Wireless Acquisition LLC", "WIRELESS-ACQUISITION" }, { 0x0050C2, 0x859000, 0x859FFF, "Nuvation", "NUVATION" }, { 0x0050C2, 0x85A000, 0x85AFFF, "ART SPA", "ART-SPA" }, { 0x0050C2, 0x85B000, 0x85BFFF, "Boreste", "BORESTE" }, { 0x0050C2, 0x85C000, 0x85CFFF, "B S E", "B-S-E" }, { 0x0050C2, 0x85D000, 0x85DFFF, "Ing. Knauseder Mechatronik GmbH", "ING-KNAUSEDER-MECHATRONIK" }, { 0x0050C2, 0x85E000, 0x85EFFF, "Radiometer Medical ApS", "RADIOMETER-MEDICAL-APS" }, { 0x0050C2, 0x85F000, 0x85FFFF, "GD Mission Systems", "GD-MISSION" }, { 0x0050C2, 0x860000, 0x860FFF, "Eutron S.p.A.", "EUTRON" }, { 0x0050C2, 0x861000, 0x861FFF, "Grantronics Pty Ltd", "GRANTRONICS-PTY" }, { 0x0050C2, 0x862000, 0x862FFF, "Elsys AG", "ELSYS" }, { 0x0050C2, 0x863000, 0x863FFF, "Advanced Technology Solutions", "ADVANCED-SOLUTIONS" }, { 0x0050C2, 0x864000, 0x864FFF, "ATG Automatisierungstechnik GERA GmbH", "ATG-AUTOMATISIERUNGSTECHNIK-GERA" }, { 0x0050C2, 0x865000, 0x865FFF, "Persy Control Services B.v.", "PERSY-CONTROL-SERVICES-B-V" }, { 0x0050C2, 0x866000, 0x866FFF, "Saia Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0x867000, 0x867FFF, "Syntronics", "SYNTRONICS" }, { 0x0050C2, 0x868000, 0x868FFF, "Aethon, Inc.", "AETHON" }, { 0x0050C2, 0x869000, 0x869FFF, "Funkwerk plettac electronic GmbH", "FUNKWERK-PLETTAC" }, { 0x0050C2, 0x86A000, 0x86AFFF, "USM Systems, Ltd", "USM" }, { 0x0050C2, 0x86B000, 0x86BFFF, "OMB Sistemas Electronicos S.A.", "OMB-SISTEMAS-ELECTRONICOS" }, { 0x0050C2, 0x86C000, 0x86CFFF, "Condigi Televagt A/S", "CONDIGI-TELEVAGT-A/S" }, { 0x0050C2, 0x86D000, 0x86DFFF, "Tieline Research Pty Ltd", "TIELINE-RESEARCH-PTY" }, { 0x0050C2, 0x86E000, 0x86EFFF, "HANYANG ELECTRIC CP., LTD", "HANYANG-ELECTRIC-CP" }, { 0x0050C2, 0x86F000, 0x86FFFF, "b-plus GmbH", "B-PLUS" }, { 0x0050C2, 0x870000, 0x870FFF, "LOGEL S.R.L.", "LOGEL" }, { 0x0050C2, 0x871000, 0x871FFF, "R-S-I Elektrotechnik GmbH & Co. KG", "R-S-I-ELEKTROTECHNIK" }, { 0x0050C2, 0x872000, 0x872FFF, "Oliotalo Oy", "OLIOTALO-OY" }, { 0x0050C2, 0x873000, 0x873FFF, "XRONET Corporation", "XRONET" }, { 0x0050C2, 0x874000, 0x874FFF, "Arcos Technologies Ltd.", "ARCOS-TECHNOLOGIES" }, { 0x0050C2, 0x875000, 0x875FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x876000, 0x876FFF, "Privatquelle Gruber GmbH & CO KG", "PRIVATQUELLE-GRUBER" }, { 0x0050C2, 0x877000, 0x877FFF, "Motion Analysis Corp", "MOTION-ANALYSIS" }, { 0x0050C2, 0x878000, 0x878FFF, "Acoustic Research Laboratories Pty Ltd", "ACOUSTIC-RESEARCH-LABORATORIES-PTY" }, { 0x0050C2, 0x879000, 0x879FFF, "MILESYS", "MILESYS" }, { 0x0050C2, 0x87A000, 0x87AFFF, "Spectrum Management, LC", "SPECTRUM-MANAGEMENT-LC" }, { 0x0050C2, 0x87B000, 0x87BFFF, "UAVNavigation S.L.", "UAVNAVIGATION" }, { 0x0050C2, 0x87C000, 0x87CFFF, "Arcontia AB", "ARCONTIA-AB" }, { 0x0050C2, 0x87D000, 0x87DFFF, "AT&T Government Solutions", "AT-T-GOVERNMENT-SOLUTIONS" }, { 0x0050C2, 0x87E000, 0x87EFFF, "SCM PRODUCTS, INC.", "SCM-PRODUCTS" }, { 0x0050C2, 0x87F000, 0x87FFFF, "Optoelettronica Italia S.r.l.", "OPTOELETTRONICA-ITALIA" }, { 0x0050C2, 0x880000, 0x880FFF, "Creation Technologies Chicago", "CREATION-TECHNOLOGIES-CHICAGO" }, { 0x0050C2, 0x881000, 0x881FFF, "InnoTrans Communications, Inc.", "INNOTRANS-COMMUNICATION" }, { 0x0050C2, 0x882000, 0x882FFF, "WARECUBE,INC.", "WARECUBE" }, { 0x0050C2, 0x883000, 0x883FFF, "Neocontrol Soluções em Automação", "NEOCONTROL-SOLUES-EM-AUTOMAO" }, { 0x0050C2, 0x884000, 0x884FFF, "IP Thinking A/S", "IP-THINKING-A/S" }, { 0x0050C2, 0x885000, 0x885FFF, "OOO NTK IMOS", "OOO-NTK-IMOS" }, { 0x0050C2, 0x886000, 0x886FFF, "Wartsila Voyage Limited", "WARTSILA-VOYAGE" }, { 0x0050C2, 0x887000, 0x887FFF, "Inventis Technology Pty Limited", "INVENTIS-PTY" }, { 0x0050C2, 0x888000, 0x888FFF, "IAdea Corporation", "IADEA" }, { 0x0050C2, 0x889000, 0x889FFF, "ACS Motion Control Ltd.", "ACS-MOTION-CONTROL" }, { 0x0050C2, 0x88A000, 0x88AFFF, "Continental Electronics Corp.", "CONTINENTAL-ELECTRONICS" }, { 0x0050C2, 0x88B000, 0x88BFFF, "Hollis Electronics Company LLC", "HOLLIS-ELECTRONICS-COMPANY" }, { 0x0050C2, 0x88C000, 0x88CFFF, "Z-App Systems", "Z-APP" }, { 0x0050C2, 0x88D000, 0x88DFFF, "L3 Communications Nova Engineering", "L3-COMMUNICATION-NOVA-ENGINEERING" }, { 0x0050C2, 0x88E000, 0x88EFFF, "Cardinal Scale Mfg Co", "CARDINAL-SCALE-MFG" }, { 0x0050C2, 0x88F000, 0x88FFFF, "Keynote SIGOS GmbH", "KEYNOTE-SIGOS" }, { 0x0050C2, 0x890000, 0x890FFF, "BAE Systems Hägglunds AB", "BAE-HAEGGLUNDS-AB" }, { 0x0050C2, 0x891000, 0x891FFF, "Admiral Secure Products, Ltd.", "ADMIRAL-SECURE-PRODUCTS" }, { 0x0050C2, 0x892000, 0x892FFF, "Trakce a.s.", "TRAKCE" }, { 0x0050C2, 0x893000, 0x893FFF, "EIZO Technologies GmbH", "EIZO-TECHNOLOGIES" }, { 0x0050C2, 0x894000, 0x894FFF, "Shockfish SA", "SHOCKFISH" }, { 0x0050C2, 0x895000, 0x895FFF, "Marine Communications Limited", "MARINE-COMMUNICATION" }, { 0x0050C2, 0x896000, 0x896FFF, "Blankom", "BLANKOM" }, { 0x0050C2, 0x897000, 0x897FFF, "ODF Optronics, Inc.", "ODF-OPTRONICS" }, { 0x0050C2, 0x898000, 0x898FFF, "Veeco Process Equipment, Inc.", "VEECO-PROCESS-EQUIPMENT" }, { 0x0050C2, 0x899000, 0x899FFF, "Inico Technologies Ltd.", "INICO-TECHNOLOGIES" }, { 0x0050C2, 0x89A000, 0x89AFFF, "Neptune Technology Group Inc.", "NEPTUNE-GROUP" }, { 0x0050C2, 0x89B000, 0x89BFFF, "Sensata Technologies, Inc.", "SENSATA-TECHNOLOGIES" }, { 0x0050C2, 0x89C000, 0x89CFFF, "Mediana", "MEDIANA" }, { 0x0050C2, 0x89D000, 0x89DFFF, "Systemtechnik GmbH", "SYSTEMTECHNIK" }, { 0x0050C2, 0x89E000, 0x89EFFF, "Broadcast Electronics", "BROADCAST-ELECTRONICS" }, { 0x0050C2, 0x89F000, 0x89FFFF, "Datalink Technologies Gateways Inc.", "DATALINK-TECHNOLOGIES-GATEWAYS" }, { 0x0050C2, 0x8A0000, 0x8A0FFF, "Specialized Communications Corp.", "SPECIALIZED-COMMUNICATION" }, { 0x0050C2, 0x8A1000, 0x8A1FFF, "Intune Networks", "INTUNE-NETWORKS" }, { 0x0050C2, 0x8A2000, 0x8A2FFF, "UAVISION Engenharia de Sistemas", "UAVISION-ENGENHARIA-DE-SISTEMAS" }, { 0x0050C2, 0x8A3000, 0x8A3FFF, "RTW GmbH & Co.KG", "RTW" }, { 0x0050C2, 0x8A4000, 0x8A4FFF, "BALOGH T.A.G Corporation", "BALOGH-T-A-G" }, { 0x0050C2, 0x8A5000, 0x8A5FFF, "Mocon, Inc.", "MOCON" }, { 0x0050C2, 0x8A6000, 0x8A6FFF, "SELCO", "SELCO" }, { 0x0050C2, 0x8A7000, 0x8A7FFF, "PIXEYE LTD", "PIXEYE" }, { 0x0050C2, 0x8A8000, 0x8A8FFF, "ALTEK ELECTRONICS", "ALTEK-ELECTRONICS" }, { 0x0050C2, 0x8A9000, 0x8A9FFF, "Intelligent Security Systems", "INTELLIGENT-SECURITY" }, { 0x0050C2, 0x8AA000, 0x8AAFFF, "ATS Elektronik GmbH", "ATS-ELEKTRONIK" }, { 0x0050C2, 0x8AB000, 0x8ABFFF, "Nanomotion Ltd.", "NANOMOTION" }, { 0x0050C2, 0x8AC000, 0x8ACFFF, "Telsa s.r.l", "TELSA" }, { 0x0050C2, 0x8AD000, 0x8ADFFF, "Thales Communications Inc", "THALES-COMMUNICATION" }, { 0x0050C2, 0x8AE000, 0x8AEFFF, "DESARROLLO DE SISTEMAS INTEGRADOS DE CONTROL S.A.", "DESARROLLO-DE-SISTEMAS-INTEGRADOS-DE-CONTROL" }, { 0x0050C2, 0x8AF000, 0x8AFFFF, "Xelerated", "XELERATED" }, { 0x0050C2, 0x8B0000, 0x8B0FFF, "BK Innovation, Inc.", "BK-INNOVATION" }, { 0x0050C2, 0x8B1000, 0x8B1FFF, "RingCube Technologies, Inc.", "RINGCUBE-TECHNOLOGIES" }, { 0x0050C2, 0x8B2000, 0x8B2FFF, "SERVAIND SA.", "SERVAIND" }, { 0x0050C2, 0x8B3000, 0x8B3FFF, "VTQ Videtronik GmbH", "VTQ-VIDETRONIK" }, { 0x0050C2, 0x8B4000, 0x8B4FFF, "Sandar Telecast AS", "SANDAR-TELECAST-AS" }, { 0x0050C2, 0x8B5000, 0x8B5FFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0x8B6000, 0x8B6FFF, "Shadrinskiy Telefonny Zavod", "SHADRINSKIY-TELEFONNY-ZAVOD" }, { 0x0050C2, 0x8B7000, 0x8B7FFF, "Calnex Solutions plc", "CALNEX-SOLUTIONS-PLC" }, { 0x0050C2, 0x8B8000, 0x8B8FFF, "DSS Networks, Inc.", "DSS-NETWORKS" }, { 0x0050C2, 0x8B9000, 0x8B9FFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x0050C2, 0x8BA000, 0x8BAFFF, "Fr. Sauter AG", "FR-SAUTER" }, { 0x0050C2, 0x8BB000, 0x8BBFFF, "smtag international ag", "SMTAG" }, { 0x0050C2, 0x8BC000, 0x8BCFFF, "Honeywell Sensotec", "HONEYWELL-SENSOTEC" }, { 0x0050C2, 0x8BD000, 0x8BDFFF, "Matrix Switch Corporation", "MATRIX-SWITCH" }, { 0x0050C2, 0x8BE000, 0x8BEFFF, "The Pennsylvania State University", "THE-PENNSYLVANIA-STATE-UNIVERSITY" }, { 0x0050C2, 0x8BF000, 0x8BFFFF, "ARISTO Graphic Systeme GmbH & Co. KG", "ARISTO-GRAPHIC-SYSTEME" }, { 0x0050C2, 0x8C0000, 0x8C0FFF, "S.C.E. s.r.l.", "S-C-E" }, { 0x0050C2, 0x8C1000, 0x8C1FFF, "Heraeus Noblelight GmbH", "HERAEUS-NOBLELIGHT" }, { 0x0050C2, 0x8C2000, 0x8C2FFF, "Access Control Systems JSC", "ACCESS-CONTROL-JSC" }, { 0x0050C2, 0x8C3000, 0x8C3FFF, "Byte Paradigm", "BYTE-PARADIGM" }, { 0x0050C2, 0x8C4000, 0x8C4FFF, "Soldig Industria e Comercio de Equipamentos Eletronicos LTDA", "SOLDIG-INDUSTRIA-E-COMERCIO-DE-EQUIPAMENTOS-ELETRONICOS-LTDA" }, { 0x0050C2, 0x8C5000, 0x8C5FFF, "Vortex Engineering pvt ltd", "VORTEX-ENGINEERING-PVT" }, { 0x0050C2, 0x8C6000, 0x8C6FFF, "Gradual Tecnologia Ltda.", "GRADUAL-TECNOLOGIA-LTDA" }, { 0x0050C2, 0x8C7000, 0x8C7FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x0050C2, 0x8C8000, 0x8C8FFF, "Pumatronix Equipamentos Eletronicos Ltda.", "PUMATRONIX-EQUIPAMENTOS-ELETRONICOS-LTDA" }, { 0x0050C2, 0x8C9000, 0x8C9FFF, "A+S Aktuatorik und Sensorik GmbH", "A+S-AKTUATORIK-UND-SENSORIK" }, { 0x0050C2, 0x8CA000, 0x8CAFFF, "Altair semiconductor Ltd", "ALTAIR-SEMICONDUCTOR" }, { 0x0050C2, 0x8CB000, 0x8CBFFF, "Beonic Corporation", "BEONIC" }, { 0x0050C2, 0x8CC000, 0x8CCFFF, "LyconSys GmbH & Co.KG", "LYCONSYS" }, { 0x0050C2, 0x8CD000, 0x8CDFFF, "Cambridge Sound Management, LLC", "CAMBRIDGE-SOUND-MANAGEMENT" }, { 0x0050C2, 0x8CE000, 0x8CEFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x8CF000, 0x8CFFFF, "GigaLinx Ltd.", "GIGALINX" }, { 0x0050C2, 0x8D0000, 0x8D0FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0x8D1000, 0x8D1FFF, "Bachmann Monitoring GmbH", "BACHMANN-MONITORING" }, { 0x0050C2, 0x8D2000, 0x8D2FFF, "TTi Ltd", "TTI" }, { 0x0050C2, 0x8D3000, 0x8D3FFF, "IFAM GmbH", "IFAM" }, { 0x0050C2, 0x8D4000, 0x8D4FFF, "Internet Protocolo Lógica SL", "INTERNET-PROTOCOLO-LGICA-SL" }, { 0x0050C2, 0x8D5000, 0x8D5FFF, "Peek Traffic Corp", "PEEK-TRAFFIC" }, { 0x0050C2, 0x8D6000, 0x8D6FFF, "UltraVision Security Systems, Inc.", "ULTRAVISION-SECURITY" }, { 0x0050C2, 0x8D7000, 0x8D7FFF, "Polygon Informatics Ltd.", "POLYGON-INFORMATICS" }, { 0x0050C2, 0x8D8000, 0x8D8FFF, "Array Technologies Inc", "ARRAY-TECHNOLOGIES" }, { 0x0050C2, 0x8D9000, 0x8D9FFF, "Industrial Control and Communication Limited", "INDUSTRIAL-CONTROL-AND-COMMUNICATION" }, { 0x0050C2, 0x8DA000, 0x8DAFFF, "DOCUTEMP, INC", "DOCUTEMP" }, { 0x0050C2, 0x8DB000, 0x8DBFFF, "DCOM Network Technology (Pty) Ltd", "DCOM-NETWORK-PTY" }, { 0x0050C2, 0x8DC000, 0x8DCFFF, "Frame Systems Limited", "FRAME" }, { 0x0050C2, 0x8DD000, 0x8DDFFF, "GIMCON", "GIMCON" }, { 0x0050C2, 0x8DE000, 0x8DEFFF, "Coherix, Inc", "COHERIX" }, { 0x0050C2, 0x8DF000, 0x8DFFFF, "Dipl.-Ing. W. Nophut GmbH", "DIPL-ING-W-NOPHUT" }, { 0x0050C2, 0x8E0000, 0x8E0FFF, "Shenzhen Pennda Technologies Co., Ltd.", "SHENZHEN-PENNDA-TECHNOLOGIES" }, { 0x0050C2, 0x8E1000, 0x8E1FFF, "Deutscher Weterdienst", "DEUTSCHER-WETERDIENST" }, { 0x0050C2, 0x8E2000, 0x8E2FFF, "Wireless Cables Inc.", "WIRELESS-CABLES" }, { 0x0050C2, 0x8E3000, 0x8E3FFF, "bioMérieux Italia S.p.A.", "BIOMRIEUX-ITALIA" }, { 0x0050C2, 0x8E4000, 0x8E4FFF, "MaCaPS International Limited", "MACAPS" }, { 0x0050C2, 0x8E5000, 0x8E5FFF, "Berthel GmbH", "BERTHEL" }, { 0x0050C2, 0x8E6000, 0x8E6FFF, "Sandel Avionics, Inc.", "SANDEL-AVIONICS" }, { 0x0050C2, 0x8E7000, 0x8E7FFF, "MKT Systemtechnik", "MKT-SYSTEMTECHNIK" }, { 0x0050C2, 0x8E8000, 0x8E8FFF, "Friedrich Kuhnt GmbH", "FRIEDRICH-KUHNT" }, { 0x0050C2, 0x8E9000, 0x8E9FFF, "UNIDATA", "UNIDATA" }, { 0x0050C2, 0x8EA000, 0x8EAFFF, "ATEME", "ATEME" }, { 0x0050C2, 0x8EB000, 0x8EBFFF, "C-COM Satellite Systems Inc.", "C-COM-SATELLITE" }, { 0x0050C2, 0x8EC000, 0x8ECFFF, "Balfour Beatty Rail GmbH", "BALFOUR-BEATTY-RAIL" }, { 0x0050C2, 0x8ED000, 0x8EDFFF, "AT-Automation Technology GmbH", "AT-AUTOMATION" }, { 0x0050C2, 0x8EE000, 0x8EEFFF, "PCSC", "PCSC" }, { 0x0050C2, 0x8EF000, 0x8EFFFF, "Technologies Sensio Inc", "TECHNOLOGIES-SENSIO" }, { 0x0050C2, 0x8F0000, 0x8F0FFF, "Xentras Communications", "XENTRAS-COMMUNICATION" }, { 0x0050C2, 0x8F1000, 0x8F1FFF, "Detection Technologies Ltd.", "DETECTION-TECHNOLOGIES" }, { 0x0050C2, 0x8F2000, 0x8F2FFF, "Schneider Electric GmbH", "SCHNEIDER-ELECTRIC" }, { 0x0050C2, 0x8F3000, 0x8F3FFF, "Curtis Door Systems Inc", "CURTIS-DOOR" }, { 0x0050C2, 0x8F4000, 0x8F4FFF, "Critical Link LLC", "CRITICAL-LINK" }, { 0x0050C2, 0x8F5000, 0x8F5FFF, "tec5 AG", "TEC5" }, { 0x0050C2, 0x8F6000, 0x8F6FFF, "K-MAC Corp.", "K-MAC" }, { 0x0050C2, 0x8F7000, 0x8F7FFF, "TGE Co., Ltd.", "TGE" }, { 0x0050C2, 0x8F8000, 0x8F8FFF, "RMSD LTD", "RMSD" }, { 0x0050C2, 0x8F9000, 0x8F9FFF, "Honeywell", "HONEYWELL" }, { 0x0050C2, 0x8FA000, 0x8FAFFF, "TELIUM s.c.", "TELIUM-S-C" }, { 0x0050C2, 0x8FB000, 0x8FBFFF, "Alfred Kuhse GmbH", "ALFRED-KUHSE" }, { 0x0050C2, 0x8FC000, 0x8FCFFF, "Symetrics Industries", "SYMETRICS-INDUSTRIES" }, { 0x0050C2, 0x8FD000, 0x8FDFFF, "Sindoma Müh Mim Ýnþ Elk San Tic Ltd.", "SINDOMA-MUEH-MIM-N-ELK-SAN-TIC" }, { 0x0050C2, 0x8FE000, 0x8FEFFF, "Cross Country Systems AB", "CROSS-COUNTRY-AB" }, { 0x0050C2, 0x8FF000, 0x8FFFFF, "Luceat", "LUCEAT" }, { 0x0050C2, 0x900000, 0x900FFF, "Magor Communications Corp", "MAGOR-COMMUNICATION" }, { 0x0050C2, 0x901000, 0x901FFF, "Research Applications Incorp", "RESEARCH-APPLICATIONS-INCORP" }, { 0x0050C2, 0x902000, 0x902FFF, "China Railway Signal & Communication Corp.", "CHINA-RAILWAY-SIGNAL-COMMUNICATION" }, { 0x0050C2, 0x903000, 0x903FFF, "EcoAxis Systems Pvt. Ltd.", "ECOAXIS-PVT" }, { 0x0050C2, 0x904000, 0x904FFF, "R2Sonic, LLC", "R2SONIC" }, { 0x0050C2, 0x905000, 0x905FFF, "Link Communications, Inc", "LINK-COMMUNICATION" }, { 0x0050C2, 0x906000, 0x906FFF, "Gidel", "GIDEL" }, { 0x0050C2, 0x907000, 0x907FFF, "Cristal Controles Ltee", "CRISTAL-CONTROLES-LTEE" }, { 0x0050C2, 0x908000, 0x908FFF, "Codex Digital Ltd", "CODEX-DIGITAL" }, { 0x0050C2, 0x909000, 0x909FFF, "Elisra", "ELISRA" }, { 0x0050C2, 0x90A000, 0x90AFFF, "Board Level Limited", "BOARD-LEVEL" }, { 0x0050C2, 0x90B000, 0x90BFFF, "E.ON ES Sverige AB", "E-ON-ES-SVERIGE-AB" }, { 0x0050C2, 0x90C000, 0x90CFFF, "LSS GmbH", "LSS" }, { 0x0050C2, 0x90D000, 0x90DFFF, "EVK DI Kerschhaggl GmbH", "EVK-DI-KERSCHHAGGL" }, { 0x0050C2, 0x90E000, 0x90EFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x90F000, 0x90FFFF, "INTEGRA Biosciences AG", "INTEGRA-BIOSCIENCES" }, { 0x0050C2, 0x910000, 0x910FFF, "Autotank AB", "AUTOTANK-AB" }, { 0x0050C2, 0x911000, 0x911FFF, "Vapor Rail", "VAPOR-RAIL" }, { 0x0050C2, 0x912000, 0x912FFF, "ASSET InterTech, Inc.", "ASSET-INTERTECH" }, { 0x0050C2, 0x913000, 0x913FFF, "Leonardo UK Ltd", "LEONARDO-UK" }, { 0x0050C2, 0x914000, 0x914FFF, "IO-Connect", "IO-CONNECT" }, { 0x0050C2, 0x915000, 0x915FFF, "Verint Systems Ltd.", "VERINT" }, { 0x0050C2, 0x916000, 0x916FFF, "CHK GridSense P/L", "CHK-GRIDSENSE-P/L" }, { 0x0050C2, 0x917000, 0x917FFF, "CIRTEM", "CIRTEM" }, { 0x0050C2, 0x918000, 0x918FFF, "Design Lightning Corp", "DESIGN-LIGHTNING" }, { 0x0050C2, 0x919000, 0x919FFF, "AHV Systems, Inc.", "AHV" }, { 0x0050C2, 0x91A000, 0x91AFFF, "Xtone Networks", "XTONE-NETWORKS" }, { 0x0050C2, 0x91B000, 0x91BFFF, "Embedded Data Systems, LLC", "EMBEDDED-DATA" }, { 0x0050C2, 0x91C000, 0x91CFFF, "MangoDSP", "MANGODSP" }, { 0x0050C2, 0x91D000, 0x91DFFF, "Rosendahl Studiotechnik GmbH", "ROSENDAHL-STUDIOTECHNIK" }, { 0x0050C2, 0x91E000, 0x91EFFF, "Automation Tec", "AUTOMATION-TEC" }, { 0x0050C2, 0x91F000, 0x91FFFF, "2NCOMM DESIGN SRL", "2NCOMM-DESIGN-SRL" }, { 0x0050C2, 0x920000, 0x920FFF, "Rogue Engineering Inc.", "ROGUE-ENGINEERING" }, { 0x0050C2, 0x921000, 0x921FFF, "iQue RFID Technologies BV", "IQUE-RFID-TECHNOLOGIES" }, { 0x0050C2, 0x922000, 0x922FFF, "Metrum Sweden AB", "METRUM-SWEDEN-AB" }, { 0x0050C2, 0x923000, 0x923FFF, "Amicus Wireless", "AMICUS-WIRELESS" }, { 0x0050C2, 0x924000, 0x924FFF, "Link Electric & Safety Control Co.", "LINK-ELECTRIC-SAFETY-CONTROL" }, { 0x0050C2, 0x925000, 0x925FFF, "PHB Eletronica Ltda.", "PHB-ELETRONICA-LTDA" }, { 0x0050C2, 0x926000, 0x926FFF, "DiTEST Fahrzeugdiagnose GmbH", "DITEST-FAHRZEUGDIAGNOSE" }, { 0x0050C2, 0x927000, 0x927FFF, "ATIS group s.r.o.", "ATIS-GROUP-S-R-O" }, { 0x0050C2, 0x928000, 0x928FFF, "Cinetix GmbH", "CINETIX" }, { 0x0050C2, 0x929000, 0x929FFF, "Flight Deck Resources", "FLIGHT-DECK-RESOURCES" }, { 0x0050C2, 0x92A000, 0x92AFFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x0050C2, 0x92B000, 0x92BFFF, "DSP DESIGN", "DSP-DESIGN" }, { 0x0050C2, 0x92C000, 0x92CFFF, "Exatrol Corporation", "EXATROL" }, { 0x0050C2, 0x92D000, 0x92DFFF, "APProSoftware.com", "APPROSOFTWARE-COM" }, { 0x0050C2, 0x92E000, 0x92EFFF, "Goanna Technologies Pty Ltd", "GOANNA-TECHNOLOGIES-PTY" }, { 0x0050C2, 0x92F000, 0x92FFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x930000, 0x930FFF, "NETA Elektronik AS", "NETA-ELEKTRONIK-AS" }, { 0x0050C2, 0x931000, 0x931FFF, "Korea Telecom Internet Solutions (KTIS)", "KOREA-TELECOM-INTERNET-SOLUTIONS-KTIS" }, { 0x0050C2, 0x932000, 0x932FFF, "SMAVIS Inc.", "SMAVIS" }, { 0x0050C2, 0x933000, 0x933FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0x934000, 0x934FFF, "Xilar Corp.", "XILAR" }, { 0x0050C2, 0x935000, 0x935FFF, "Image Video", "IMAGE-VIDEO" }, { 0x0050C2, 0x936000, 0x936FFF, "Margaritis Engineering", "MARGARITIS-ENGINEERING" }, { 0x0050C2, 0x937000, 0x937FFF, "BigBear", "BIGBEAR" }, { 0x0050C2, 0x938000, 0x938FFF, "Postec Data Systems Ltd", "POSTEC-DATA" }, { 0x0050C2, 0x939000, 0x939FFF, "Mosaic Dynamic Solutions", "MOSAIC-DYNAMIC-SOLUTIONS" }, { 0x0050C2, 0x93A000, 0x93AFFF, "ALPHATRONICS nv", "ALPHATRONICS-NV" }, { 0x0050C2, 0x93B000, 0x93BFFF, "Cleaveland/Price, Inc.", "CLEAVELAND/PRICE" }, { 0x0050C2, 0x93C000, 0x93CFFF, "FractureCode Corporation", "FRACTURECODE" }, { 0x0050C2, 0x93D000, 0x93DFFF, "Lighting Science Group", "LIGHTING-SCIENCE-GROUP" }, { 0x0050C2, 0x93E000, 0x93EFFF, "RCS Communication Test Systems Ltd.", "RCS-COMMUNICATION-TEST" }, { 0x0050C2, 0x93F000, 0x93FFFF, "TSB Solutions Inc.", "TSB-SOLUTIONS" }, { 0x0050C2, 0x940000, 0x940FFF, "Phitek Systems Ltd.", "PHITEK" }, { 0x0050C2, 0x941000, 0x941FFF, "Rolbit", "ROLBIT" }, { 0x0050C2, 0x942000, 0x942FFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0x943000, 0x943FFF, "QuanZhou TDX Electronics Co., Ltd.", "QUANZHOU-TDX-ELECTRONICS" }, { 0x0050C2, 0x944000, 0x944FFF, "Wireonair A/S", "WIREONAIR-A/S" }, { 0x0050C2, 0x945000, 0x945FFF, "Exi Flow Measurement Ltd", "EXI-FLOW-MEASUREMENT" }, { 0x0050C2, 0x946000, 0x946FFF, "MEGWARE Computer GmbH", "MEGWARE" }, { 0x0050C2, 0x947000, 0x947FFF, "IMEXHIGHWAY cvba", "IMEXHIGHWAY-CVBA" }, { 0x0050C2, 0x948000, 0x948FFF, "ELECTRONIA", "ELECTRONIA" }, { 0x0050C2, 0x949000, 0x949FFF, "taskit GmbH", "TASKIT" }, { 0x0050C2, 0x94A000, 0x94AFFF, "TruMedia Measurement Ltd.", "TRUMEDIA-MEASUREMENT" }, { 0x0050C2, 0x94B000, 0x94BFFF, "Piller engineering Ltd.", "PILLER-ENGINEERING" }, { 0x0050C2, 0x94C000, 0x94CFFF, "TEMIX", "TEMIX" }, { 0x0050C2, 0x94D000, 0x94DFFF, "C&H technology ltd.", "C-H" }, { 0x0050C2, 0x94E000, 0x94EFFF, "Zynix Original Sdn. Bhd.", "ZYNIX-ORIGINAL" }, { 0x0050C2, 0x94F000, 0x94FFFF, "IT-Designers GmbH", "IT-DESIGNERS" }, { 0x0050C2, 0x950000, 0x950FFF, "Tele and Radio Research Institute", "TELE-AND-RADIO-RESEARCH-INSTITUTE" }, { 0x0050C2, 0x951000, 0x951FFF, "EL.C.A. soc. coop.", "EL-C-A-SOC-COOP" }, { 0x0050C2, 0x952000, 0x952FFF, "Tech Fass s.r.o.", "TECH-FASS-S-R-O" }, { 0x0050C2, 0x953000, 0x953FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x0050C2, 0x954000, 0x954FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x955000, 0x955FFF, "Roessmann Engineering", "ROESSMANN-ENGINEERING" }, { 0x0050C2, 0x956000, 0x956FFF, "Sicon srl", "SICON-SRL" }, { 0x0050C2, 0x957000, 0x957FFF, "STRATEC Control Systems", "STRATEC-CONTROL" }, { 0x0050C2, 0x958000, 0x958FFF, "Sensoptics Ltd", "SENSOPTICS" }, { 0x0050C2, 0x959000, 0x959FFF, "DECTRIS Ltd.", "DECTRIS" }, { 0x0050C2, 0x95A000, 0x95AFFF, "TechnoAP", "TECHNOAP" }, { 0x0050C2, 0x95B000, 0x95BFFF, "AS Solar GmbH", "AS-SOLAR" }, { 0x0050C2, 0x95C000, 0x95CFFF, "Resurgent Health & Medical", "RESURGENT-HEALTH-MEDICAL" }, { 0x0050C2, 0x95D000, 0x95DFFF, "full electronic system", "FULL-SYSTEM" }, { 0x0050C2, 0x95E000, 0x95EFFF, "BEEcube Inc.", "BEECUBE" }, { 0x0050C2, 0x95F000, 0x95FFFF, "METRONIC APARATURA KONTROLNO - POMIAROWA", "METRONIC-APARATURA-KONTROLNO-POMIAROWA" }, { 0x0050C2, 0x960000, 0x960FFF, "kuroneko dennnou kenkyuushitsu", "KURONEKO-DENNNOU-KENKYUUSHITSU" }, { 0x0050C2, 0x961000, 0x961FFF, "Picsolve International Limited", "PICSOLVE" }, { 0x0050C2, 0x962000, 0x962FFF, "Shockfish SA", "SHOCKFISH" }, { 0x0050C2, 0x963000, 0x963FFF, "Lécureux SA", "LCUREUX" }, { 0x0050C2, 0x964000, 0x964FFF, "IQ Automation GmbH", "IQ-AUTOMATION" }, { 0x0050C2, 0x965000, 0x965FFF, "Emitech Corporation", "EMITECH" }, { 0x0050C2, 0x966000, 0x966FFF, "PCM Industries", "PCM-INDUSTRIES" }, { 0x0050C2, 0x967000, 0x967FFF, "Watthour Engineering Co., Inc.", "WATTHOUR-ENGINEERING" }, { 0x0050C2, 0x968000, 0x968FFF, "BuLogics, Inc.", "BULOGICS" }, { 0x0050C2, 0x969000, 0x969FFF, "Gehrke Kommunikationssysteme GmbH", "GEHRKE-KOMMUNIKATIONSSYSTEME" }, { 0x0050C2, 0x96A000, 0x96AFFF, "Bittium Wireless Ltd", "BITTIUM-WIRELESS" }, { 0x0050C2, 0x96B000, 0x96BFFF, "Electronic Media Services Ltd", "MEDIA-SERVICES" }, { 0x0050C2, 0x96C000, 0x96CFFF, "Aqua Cooler Pty Ltd", "AQUA-COOLER-PTY" }, { 0x0050C2, 0x96D000, 0x96DFFF, "Keene Electronics Ltd.", "KEENE-ELECTRONICS" }, { 0x0050C2, 0x96E000, 0x96EFFF, "Peek Traffic Corporation", "PEEK-TRAFFIC" }, { 0x0050C2, 0x96F000, 0x96FFFF, "Varec Inc.", "VAREC" }, { 0x0050C2, 0x970000, 0x970FFF, "Tsuji Electronics Co.,Ltd", "TSUJI-ELECTRONICS" }, { 0x0050C2, 0x971000, 0x971FFF, "IPITEK", "IPITEK" }, { 0x0050C2, 0x972000, 0x972FFF, "Switch Science (Panini Keikaku)", "SWITCH-SCIENCE-PANINI-KEIKAKU" }, { 0x0050C2, 0x973000, 0x973FFF, "Systèmes Pran", "SYSTMES-PRAN" }, { 0x0050C2, 0x974000, 0x974FFF, "EMAC, Inc.", "EMAC" }, { 0x0050C2, 0x975000, 0x975FFF, "Pyramid Technical Consultants", "PYRAMID-TECHNICAL-CONSULTANTS" }, { 0x0050C2, 0x976000, 0x976FFF, "SANDS INSTRUMENTATION INDIA PVT LTD", "SANDS-INSTRUMENTATION-INDIA-PVT" }, { 0x0050C2, 0x977000, 0x977FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0x978000, 0x978FFF, "LOGITAL DIGITAL MEDIA srl", "LOGITAL-DIGITAL-MEDIA-SRL" }, { 0x0050C2, 0x979000, 0x979FFF, "Far South Networks (Pty) Ltd", "FAR-SOUTH-NETWORKS-PTY" }, { 0x0050C2, 0x97A000, 0x97AFFF, "KST Technology Co., Ltd", "KST" }, { 0x0050C2, 0x97B000, 0x97BFFF, "SMARTQUANTUM SA", "SMARTQUANTUM" }, { 0x0050C2, 0x97C000, 0x97CFFF, "Creacon Technologies B.V.", "CREACON-TECHNOLOGIES-B-V" }, { 0x0050C2, 0x97D000, 0x97DFFF, "Soehnle Professional GmbH & Co.KG", "SOEHNLE-PROFESSIONAL" }, { 0x0050C2, 0x97E000, 0x97EFFF, "RF Industries", "RF-INDUSTRIES" }, { 0x0050C2, 0x97F000, 0x97FFFF, "C&I Co.Ltd", "C-I" }, { 0x0050C2, 0x980000, 0x980FFF, "Digital Payment Technologies", "DIGITAL-PAYMENT-TECHNOLOGIES" }, { 0x0050C2, 0x981000, 0x981FFF, "Novotronik GmbH", "NOVOTRONIK" }, { 0x0050C2, 0x982000, 0x982FFF, "Triple Ring Technologies, Inc.", "TRIPLE-RING-TECHNOLOGIES" }, { 0x0050C2, 0x983000, 0x983FFF, "Bogart Engineering", "BOGART-ENGINEERING" }, { 0x0050C2, 0x984000, 0x984FFF, "Atel Corporation", "ATEL" }, { 0x0050C2, 0x985000, 0x985FFF, "Earnestcom Sdn Bhd", "EARNESTCOM" }, { 0x0050C2, 0x986000, 0x986FFF, "DSCI", "DSCI" }, { 0x0050C2, 0x987000, 0x987FFF, "Joinsoon Electronics MFG. Co., Ltd", "JOINSOON-ELECTRONICS-MFG" }, { 0x0050C2, 0x988000, 0x988FFF, "Pantel International", "PANTEL" }, { 0x0050C2, 0x989000, 0x989FFF, "Psigenics Corporation", "PSIGENICS" }, { 0x0050C2, 0x98A000, 0x98AFFF, "MEV Limited", "MEV" }, { 0x0050C2, 0x98B000, 0x98BFFF, "TI2000 TECNOLOGIA INFORMATICA 2000", "TI2000-TECNOLOGIA-INFORMATICA-2000" }, { 0x0050C2, 0x98C000, 0x98CFFF, "MGM-Devices Oy", "MGM-DEVICES-OY" }, { 0x0050C2, 0x98D000, 0x98DFFF, "Mecos AG", "MECOS" }, { 0x0050C2, 0x98E000, 0x98EFFF, "Link Technologies, Inc", "LINK-TECHNOLOGIES" }, { 0x0050C2, 0x98F000, 0x98FFFF, "BELIK S.P.R.L.", "BELIK-S-P-R-L" }, { 0x0050C2, 0x990000, 0x990FFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0x991000, 0x991FFF, "UGL Limited", "UGL" }, { 0x0050C2, 0x992000, 0x992FFF, "IDT Sound Processing Corporation", "IDT-SOUND-PROCESSING" }, { 0x0050C2, 0x993000, 0x993FFF, "UNETCONVERGENCE CO., LTD", "UNETCONVERGENCE" }, { 0x0050C2, 0x994000, 0x994FFF, "Xafax Nederland bv", "XAFAX-NEDERLAND" }, { 0x0050C2, 0x995000, 0x995FFF, "Inter Control Hermann Köhler Elektrik GmbH&Co.KG", "INTER-CONTROL-HERMANN-KOEHLER-ELEKTRIK" }, { 0x0050C2, 0x996000, 0x996FFF, "Commercial Timesharing Inc.", "COMMERCIAL-TIMESHARING" }, { 0x0050C2, 0x997000, 0x997FFF, "Depro Électronique", "DEPRO-LECTRONIQUE" }, { 0x0050C2, 0x998000, 0x998FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0x999000, 0x999FFF, "Cambustion Ltd", "CAMBUSTION" }, { 0x0050C2, 0x99A000, 0x99AFFF, "Miromico AG", "MIROMICO" }, { 0x0050C2, 0x99B000, 0x99BFFF, "Bettini srl", "BETTINI-SRL" }, { 0x0050C2, 0x99C000, 0x99CFFF, "CaTs3 Limited", "CATS3" }, { 0x0050C2, 0x99D000, 0x99DFFF, "Powersense A/S", "POWERSENSE-A/S" }, { 0x0050C2, 0x99E000, 0x99EFFF, "Engage Technologies", "ENGAGE-TECHNOLOGIES" }, { 0x0050C2, 0x99F000, 0x99FFFF, "Sietron Elektronik", "SIETRON-ELEKTRONIK" }, { 0x0050C2, 0x9A0000, 0x9A0FFF, "Trs Systems, Inc.", "TRS" }, { 0x0050C2, 0x9A1000, 0x9A1FFF, "ComAp s.r.o", "COMAP-S-R-O" }, { 0x0050C2, 0x9A2000, 0x9A2FFF, "SAMsystems GmbH", "SAMSYSTEMS" }, { 0x0050C2, 0x9A3000, 0x9A3FFF, "Computerwise, Inc.", "COMPUTERWISE" }, { 0x0050C2, 0x9A4000, 0x9A4FFF, "Entwicklung Hard- & Software", "ENTWICKLUNG-HARD-SOFTWARE" }, { 0x0050C2, 0x9A5000, 0x9A5FFF, "Conolog Corporation", "CONOLOG" }, { 0x0050C2, 0x9A6000, 0x9A6FFF, "Metodo2", "METODO2" }, { 0x0050C2, 0x9A7000, 0x9A7FFF, "Thales Communications & Security S.A.", "THALES-COMMUNICATION-SECURITY" }, { 0x0050C2, 0x9A8000, 0x9A8FFF, "DOMIS SA", "DOMIS" }, { 0x0050C2, 0x9A9000, 0x9A9FFF, "GD Mission Systems", "GD-MISSION" }, { 0x0050C2, 0x9AA000, 0x9AAFFF, "TEKO TELECOM SpA", "TEKO-TELECOM-SPA" }, { 0x0050C2, 0x9AB000, 0x9ABFFF, "Electrodata Inc.", "ELECTRODATA" }, { 0x0050C2, 0x9AC000, 0x9ACFFF, "Questek Australia Pty Ltd", "QUESTEK-AUSTRALIA-PTY" }, { 0x0050C2, 0x9AD000, 0x9ADFFF, "Chronos Technology Ltd.", "CHRONOS" }, { 0x0050C2, 0x9AE000, 0x9AEFFF, "Esensors, Inc.", "ESENSORS" }, { 0x0050C2, 0x9AF000, 0x9AFFFF, "KRESS-NET Krzysztof Rutecki", "KRESS-NET-KRZYSZTOF-RUTECKI" }, { 0x0050C2, 0x9B0000, 0x9B0FFF, "Ebru GmbH", "EBRU" }, { 0x0050C2, 0x9B1000, 0x9B1FFF, "Bon Hora GmbH", "BON-HORA" }, { 0x0050C2, 0x9B2000, 0x9B2FFF, "Mesa Labs, Inc.", "MESA-LABS" }, { 0x0050C2, 0x9B3000, 0x9B3FFF, "Kahler Automation", "KAHLER-AUTOMATION" }, { 0x0050C2, 0x9B4000, 0x9B4FFF, "EUKREA ELECTROMATIQUE SARL", "EUKREA-ELECTROMATIQUE-SARL" }, { 0x0050C2, 0x9B5000, 0x9B5FFF, "Telegamma srl", "TELEGAMMA-SRL" }, { 0x0050C2, 0x9B6000, 0x9B6FFF, "ACTECH", "ACTECH" }, { 0x0050C2, 0x9B7000, 0x9B7FFF, "St. Michael Strategies", "ST-MICHAEL-STRATEGIES" }, { 0x0050C2, 0x9B8000, 0x9B8FFF, "Sound Player Systems e.K.", "SOUND-PLAYER-E-K" }, { 0x0050C2, 0x9B9000, 0x9B9FFF, "ISA - Intelligent Sensing Anywhere, S.A.", "ISA-INTELLIGENT-SENSING-ANYWHERE" }, { 0x0050C2, 0x9BA000, 0x9BAFFF, "Connor-Winfield", "CONNOR-WINFIELD" }, { 0x0050C2, 0x9BB000, 0x9BBFFF, "OMICRON electronics GmbH", "OMICRON-ELECTRONICS" }, { 0x0050C2, 0x9BC000, 0x9BCFFF, "Kistler Straubenhardt GmbH", "KISTLER-STRAUBENHARDT" }, { 0x0050C2, 0x9BD000, 0x9BDFFF, "Sensitron Semiconductor", "SENSITRON-SEMICONDUCTOR" }, { 0x0050C2, 0x9BE000, 0x9BEFFF, "Xad Communications Ltd", "XAD-COMMUNICATION" }, { 0x0050C2, 0x9BF000, 0x9BFFFF, "2N TELEKOMUNIKACE a.s.", "2N-TELEKOMUNIKACE" }, { 0x0050C2, 0x9C0000, 0x9C0FFF, "Stuyts Engineering Haarlem BV", "STUYTS-ENGINEERING-HAARLEM" }, { 0x0050C2, 0x9C1000, 0x9C1FFF, "Tattile srl", "TATTILE-SRL" }, { 0x0050C2, 0x9C2000, 0x9C2FFF, "Team Enginers", "TEAM-ENGINERS" }, { 0x0050C2, 0x9C3000, 0x9C3FFF, "GE Security-Kampro", "GE-SECURITY-KAMPRO" }, { 0x0050C2, 0x9C4000, 0x9C4FFF, "Vitel Net", "VITEL-NET" }, { 0x0050C2, 0x9C5000, 0x9C5FFF, "Scansonic MI GmbH", "SCANSONIC-MI" }, { 0x0050C2, 0x9C6000, 0x9C6FFF, "Protronic GmbH", "PROTRONIC" }, { 0x0050C2, 0x9C7000, 0x9C7FFF, "Kumera Drives Oy", "KUMERA-DRIVES-OY" }, { 0x0050C2, 0x9C8000, 0x9C8FFF, "ethermetrics", "ETHERMETRICS" }, { 0x0050C2, 0x9C9000, 0x9C9FFF, "LUMINEX Lighting Control Equipment", "LUMINEX-LIGHTING-CONTROL-EQUIPMENT" }, { 0x0050C2, 0x9CA000, 0x9CAFFF, "ESAB-ATAS GmbH", "ESAB-ATAS" }, { 0x0050C2, 0x9CB000, 0x9CBFFF, "NIS-time GmbH", "NIS-TIME" }, { 0x0050C2, 0x9CC000, 0x9CCFFF, "Hirotech inc.", "HIROTECH" }, { 0x0050C2, 0x9CD000, 0x9CDFFF, "Uwe Schneider GmbH", "UWE-SCHNEIDER" }, { 0x0050C2, 0x9CE000, 0x9CEFFF, "Ronan Engineering", "RONAN-ENGINEERING" }, { 0x0050C2, 0x9CF000, 0x9CFFFF, "Intuitive Surgical, Inc", "INTUITIVE-SURGICAL" }, { 0x0050C2, 0x9D0000, 0x9D0FFF, "J. DITTRICH ELEKTRONIC GmbH & Co. KG", "J-DITTRICH-ELEKTRONIC" }, { 0x0050C2, 0x9D1000, 0x9D1FFF, "Bladelius Design Group AB", "BLADELIUS-DESIGN-GROUP-AB" }, { 0x0050C2, 0x9D2000, 0x9D2FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0x9D3000, 0x9D3FFF, "Telemetrie Elektronik GmbH", "TELEMETRIE-ELEKTRONIK" }, { 0x0050C2, 0x9D4000, 0x9D4FFF, "FIRST", "FIRST" }, { 0x0050C2, 0x9D5000, 0x9D5FFF, "Netpower Labs AB", "NETPOWER-LABS-AB" }, { 0x0050C2, 0x9D6000, 0x9D6FFF, "Innovation, Institute, Inc", "INNOVATION-INSTITUTE" }, { 0x0050C2, 0x9D7000, 0x9D7FFF, "Melex Inc.", "MELEX" }, { 0x0050C2, 0x9D8000, 0x9D8FFF, "SAMSUNG HEAVY INDUSTRIES CO.,LTD.", "SAMSUNG-HEAVY-INDUSTRIES" }, { 0x0050C2, 0x9D9000, 0x9D9FFF, "CNS Systems, Inc.", "CNS" }, { 0x0050C2, 0x9DA000, 0x9DAFFF, "NEUTRONIK e.K.", "NEUTRONIK-E-K" }, { 0x0050C2, 0x9DB000, 0x9DBFFF, "Walter Grotkasten", "WALTER-GROTKASTEN" }, { 0x0050C2, 0x9DC000, 0x9DCFFF, "FTM Marketing Limited", "FTM-MARKETING" }, { 0x0050C2, 0x9DD000, 0x9DDFFF, "Institut Dr. Foerster", "INSTITUT-DR-FOERSTER" }, { 0x0050C2, 0x9DE000, 0x9DEFFF, "CHAUVIN ARNOUX", "CHAUVIN-ARNOUX" }, { 0x0050C2, 0x9DF000, 0x9DFFFF, "CODEC Co., Ltd.", "CODEC" }, { 0x0050C2, 0x9E0000, 0x9E0FFF, "DST Swiss AG", "DST-SWISS" }, { 0x0050C2, 0x9E1000, 0x9E1FFF, "Enreduce Energy Control AB", "ENREDUCE-ENERGY-CONTROL-AB" }, { 0x0050C2, 0x9E2000, 0x9E2FFF, "E-ViEWS SAFETY SYSTEMS, INC", "E-VIEWS-SAFETY" }, { 0x0050C2, 0x9E3000, 0x9E3FFF, "SAI Informationstechnik", "SAI-INFORMATIONSTECHNIK" }, { 0x0050C2, 0x9E4000, 0x9E4FFF, "Pyxis Controls WLL", "PYXIS-CONTROLS-WLL" }, { 0x0050C2, 0x9E5000, 0x9E5FFF, "Halliburton Far East Pte Ltd", "HALLIBURTON-FAR-EAST-PTE" }, { 0x0050C2, 0x9E6000, 0x9E6FFF, "Kumho Electric, Inc.", "KUMHO-ELECTRIC" }, { 0x0050C2, 0x9E7000, 0x9E7FFF, "DORLET SAU", "DORLET-SAU" }, { 0x0050C2, 0x9E8000, 0x9E8FFF, "Hammock Corporation", "HAMMOCK" }, { 0x0050C2, 0x9E9000, 0x9E9FFF, "Ciemme Sistemi Spa", "CIEMME-SISTEMI-SPA" }, { 0x0050C2, 0x9EA000, 0x9EAFFF, "SISMODULAR - Engenharia, Lda", "SISMODULAR-ENGENHARIA-LDA" }, { 0x0050C2, 0x9EB000, 0x9EBFFF, "AFORE Solutions Inc.", "AFORE-SOLUTIONS" }, { 0x0050C2, 0x9EC000, 0x9ECFFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x0050C2, 0x9ED000, 0x9EDFFF, "Picell B.V.", "PICELL-B-V" }, { 0x0050C2, 0x9EE000, 0x9EEFFF, "Michael Stevens & Partners Ltd", "MICHAEL-STEVENS-PARTNERS" }, { 0x0050C2, 0x9EF000, 0x9EFFFF, "WoKa-Elektronik GmbH", "WOKA-ELEKTRONIK" }, { 0x0050C2, 0x9F0000, 0x9F0FFF, "Veracity UK Ltd", "VERACITY-UK" }, { 0x0050C2, 0x9F1000, 0x9F1FFF, "IDEAS s.r.l.", "IDEAS" }, { 0x0050C2, 0x9F2000, 0x9F2FFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0x9F3000, 0x9F3FFF, "Vision Technologies, Inc.", "VISION-TECHNOLOGIES" }, { 0x0050C2, 0x9F4000, 0x9F4FFF, "FSR, INC.", "FSR" }, { 0x0050C2, 0x9F5000, 0x9F5FFF, "Commex Technologies", "COMMEX-TECHNOLOGIES" }, { 0x0050C2, 0x9F6000, 0x9F6FFF, "Ion Sense Inc.", "ION-SENSE" }, { 0x0050C2, 0x9F7000, 0x9F7FFF, "Dave Jones Design", "DAVE-JONES-DESIGN" }, { 0x0050C2, 0x9F8000, 0x9F8FFF, "Austco Marketing & Service (USA) ltd.", "AUSTCO-MARKETING-SERVICE-USA" }, { 0x0050C2, 0x9F9000, 0x9F9FFF, "ABB Transmission and Distribution Automation Equipment (Xiamen) Co., Ltd.", "ABB-TRANSMISSION-AND-DISTRIBUTION-AUTOMATION-EQUIPMENT-XIAMEN" }, { 0x0050C2, 0x9FA000, 0x9FAFFF, "Teranex A Division of Silicon Optix", "TERANEX-A-DIVISION-OF-SILICON-OPTIX" }, { 0x0050C2, 0x9FB000, 0x9FBFFF, "Villbau Kft.", "VILLBAU-KFT" }, { 0x0050C2, 0x9FC000, 0x9FCFFF, "ECTEC INC.", "ECTEC" }, { 0x0050C2, 0x9FD000, 0x9FDFFF, "Bitt technology-A Ltd.", "BITT-A" }, { 0x0050C2, 0x9FE000, 0x9FEFFF, "SPECTRA EMBEDDED SYSTEMS", "SPECTRA-EMBEDDED" }, { 0x0050C2, 0x9FF000, 0x9FFFFF, "Humphrey Products", "HUMPHREY-PRODUCTS" }, { 0x0050C2, 0xA00000, 0xA00FFF, "Technovare Systems", "TECHNOVARE" }, { 0x0050C2, 0xA01000, 0xA01FFF, "Patronics International LTD", "PATRONICS" }, { 0x0050C2, 0xA02000, 0xA02FFF, "Reference, LLC.", "REFERENCE" }, { 0x0050C2, 0xA03000, 0xA03FFF, "EEG Enterprises Inc", "EEG-ENTERPRISES" }, { 0x0050C2, 0xA04000, 0xA04FFF, "TP Radio", "TP-RADIO" }, { 0x0050C2, 0xA05000, 0xA05FFF, "Adgil Design Inc.", "ADGIL-DESIGN" }, { 0x0050C2, 0xA06000, 0xA06FFF, "CLOOS ELECTRONIC GMBH", "CLOOS" }, { 0x0050C2, 0xA07000, 0xA07FFF, "Dynon Instruments", "DYNON-INSTRUMENTS" }, { 0x0050C2, 0xA08000, 0xA08FFF, "LabJack Corporation", "LABJACK" }, { 0x0050C2, 0xA09000, 0xA09FFF, "Innovative American Technology", "INNOVATIVE-AMERICAN" }, { 0x0050C2, 0xA0A000, 0xA0AFFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x0050C2, 0xA0B000, 0xA0BFFF, "IDS GeoRadar s.r.l.", "IDS-GEORADAR" }, { 0x0050C2, 0xA0C000, 0xA0CFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0xA0D000, 0xA0DFFF, "CHARLYROBOT", "CHARLYROBOT" }, { 0x0050C2, 0xA0E000, 0xA0EFFF, "ENGICAM s.r.l.", "ENGICAM" }, { 0x0050C2, 0xA0F000, 0xA0FFFF, "Visualware Inc", "VISUALWARE" }, { 0x0050C2, 0xA10000, 0xA10FFF, "Essential Design & Integration P/L", "ESSENTIAL-DESIGN-INTEGRATION-P/L" }, { 0x0050C2, 0xA11000, 0xA11FFF, "OJSC Rawenstvo", "OJSC-RAWENSTVO" }, { 0x0050C2, 0xA12000, 0xA12FFF, "HCE Engineering S.r.l.", "HCE-ENGINEERING" }, { 0x0050C2, 0xA13000, 0xA13FFF, "Talyst, Inc.", "TALYST" }, { 0x0050C2, 0xA14000, 0xA14FFF, "Elbit Systems of America - Tallahassee Operations", "ELBIT-OF-AMERICA-TALLAHASSEE-OPERATIONS" }, { 0x0050C2, 0xA15000, 0xA15FFF, "Industrial Computing Ltd", "INDUSTRIAL-COMPUTING" }, { 0x0050C2, 0xA16000, 0xA16FFF, "Baudisch Electronic GmbH", "BAUDISCH" }, { 0x0050C2, 0xA17000, 0xA17FFF, "Winners Satellite Electronics Corp.", "WINNERS-SATELLITE-ELECTRONICS" }, { 0x0050C2, 0xA18000, 0xA18FFF, "Eoslink", "EOSLINK" }, { 0x0050C2, 0xA19000, 0xA19FFF, "Icon Time Systems", "ICON-TIME" }, { 0x0050C2, 0xA1A000, 0xA1AFFF, "DDL", "DDL" }, { 0x0050C2, 0xA1B000, 0xA1BFFF, "Realtime Systems Ltd.", "REALTIME" }, { 0x0050C2, 0xA1C000, 0xA1CFFF, "Microtechnica", "MICROTECHNICA" }, { 0x0050C2, 0xA1D000, 0xA1DFFF, "SAMH Engineering Services", "SAMH-ENGINEERING-SERVICES" }, { 0x0050C2, 0xA1E000, 0xA1EFFF, "MAMAC Systems, Inc.", "MAMAC" }, { 0x0050C2, 0xA1F000, 0xA1FFFF, "Flight Data Systems Pty Ltd", "FLIGHT-DATA-PTY" }, { 0x0050C2, 0xA20000, 0xA20FFF, "Quorum Technologies Ltd", "QUORUM-TECHNOLOGIES" }, { 0x0050C2, 0xA21000, 0xA21FFF, "ISAC SRL", "ISAC-SRL" }, { 0x0050C2, 0xA22000, 0xA22FFF, "Nippon Manufacturing Service Corporation (abbreviated as 'nms')", "NIPPON-MANUFACTURING-SERVICE-ABBREVIATED-AS-NMS" }, { 0x0050C2, 0xA23000, 0xA23FFF, "Agility Mfg, Inc.", "AGILITY-MFG" }, { 0x0050C2, 0xA24000, 0xA24FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x0050C2, 0xA25000, 0xA25FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xA26000, 0xA26FFF, "Preferred Oil, LLC", "PREFERRED-OIL" }, { 0x0050C2, 0xA27000, 0xA27FFF, "meconet e. K.", "MECONET-E-K" }, { 0x0050C2, 0xA28000, 0xA28FFF, "KENDA ELECTRONIC SYSTEMS LIMITED", "KENDA" }, { 0x0050C2, 0xA29000, 0xA29FFF, "Luminex Corporation", "LUMINEX" }, { 0x0050C2, 0xA2A000, 0xA2AFFF, "Astronics Custom Control Concepts", "ASTRONICS-CUSTOM-CONTROL-CONCEPTS" }, { 0x0050C2, 0xA2B000, 0xA2BFFF, "APRILIA RACING S.R.L.", "APRILIA-RACING" }, { 0x0050C2, 0xA2C000, 0xA2CFFF, "KWS-Electronic GmbH", "KWS" }, { 0x0050C2, 0xA2D000, 0xA2DFFF, "Inventure Inc.", "INVENTURE" }, { 0x0050C2, 0xA2E000, 0xA2EFFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x0050C2, 0xA2F000, 0xA2FFFF, "DragonFly Scientific LLC", "DRAGONFLY-SCIENTIFIC" }, { 0x0050C2, 0xA30000, 0xA30FFF, "D-TA Systems", "D-TA" }, { 0x0050C2, 0xA31000, 0xA31FFF, "Coolit Systems, Inc.", "COOLIT" }, { 0x0050C2, 0xA32000, 0xA32FFF, "Harris Designs of NRV, Inc.", "HARRIS-DESIGNS-OF-NRV" }, { 0x0050C2, 0xA33000, 0xA33FFF, "Fuji Firmware", "FUJI-FIRMWARE" }, { 0x0050C2, 0xA34000, 0xA34FFF, "Casabyte Inc.", "CASABYTE" }, { 0x0050C2, 0xA35000, 0xA35FFF, "Appareo Systems, LLC", "APPAREO" }, { 0x0050C2, 0xA36000, 0xA36FFF, "Shenzhen Shangji electronic Co.Ltd", "SHENZHEN-SHANGJI" }, { 0x0050C2, 0xA37000, 0xA37FFF, "Software Systems Plus", "SOFTWARE-PLUS" }, { 0x0050C2, 0xA38000, 0xA38FFF, "Tred Displays", "TRED-DISPLAYS" }, { 0x0050C2, 0xA39000, 0xA39FFF, "Industrial Data Products Ltd", "INDUSTRIAL-DATA-PRODUCTS" }, { 0x0050C2, 0xA3A000, 0xA3AFFF, "Telecor Inc.", "TELECOR" }, { 0x0050C2, 0xA3B000, 0xA3BFFF, "IPcontrols GmbH", "IPCONTROLS" }, { 0x0050C2, 0xA3C000, 0xA3CFFF, "Brähler ICS Konferenztechnik AG", "BRAEHLER-ICS-KONFERENZTECHNIK" }, { 0x0050C2, 0xA3D000, 0xA3DFFF, "OWANDY", "OWANDY" }, { 0x0050C2, 0xA3E000, 0xA3EFFF, "DUEVI SNC DI MORA E SANTESE", "DUEVI-SNC-DI-MORA-E-SANTESE" }, { 0x0050C2, 0xA3F000, 0xA3FFFF, "LHA Systems CC", "LHA-CC" }, { 0x0050C2, 0xA40000, 0xA40FFF, "Mosberger Consulting LLC", "MOSBERGER-CONSULTING" }, { 0x0050C2, 0xA41000, 0xA41FFF, "Meiryo Denshi Corp.", "MEIRYO-DENSHI" }, { 0x0050C2, 0xA42000, 0xA42FFF, "RealVision Inc.", "REALVISION" }, { 0x0050C2, 0xA43000, 0xA43FFF, "NKS Co.Ltd.", "NKS" }, { 0x0050C2, 0xA44000, 0xA44FFF, "TORC Technologies", "TORC-TECHNOLOGIES" }, { 0x0050C2, 0xA45000, 0xA45FFF, "Sofradir-EC", "SOFRADIR-EC" }, { 0x0050C2, 0xA46000, 0xA46FFF, "Softronics Ltd.", "SOFTRONICS" }, { 0x0050C2, 0xA47000, 0xA47FFF, "PRIMETECH ENGINEERING CORP.", "PRIMETECH-ENGINEERING" }, { 0x0050C2, 0xA48000, 0xA48FFF, "Thales UK Limited", "THALES-UK" }, { 0x0050C2, 0xA49000, 0xA49FFF, "Wayne Dalton Corp.", "WAYNE-DALTON" }, { 0x0050C2, 0xA4A000, 0xA4AFFF, "DITRON S.r.l.", "DITRON" }, { 0x0050C2, 0xA4B000, 0xA4BFFF, "L-3 Communications Mobile-Vision, Inc.", "L-3-COMMUNICATION-MOBILE-VISION" }, { 0x0050C2, 0xA4C000, 0xA4CFFF, "VasoNova, Inc.", "VASONOVA" }, { 0x0050C2, 0xA4D000, 0xA4DFFF, "LevelStar LLC.", "LEVELSTAR" }, { 0x0050C2, 0xA4E000, 0xA4EFFF, "Conduant Corporation", "CONDUANT" }, { 0x0050C2, 0xA4F000, 0xA4FFFF, "Deuta GmbH", "DEUTA" }, { 0x0050C2, 0xA50000, 0xA50FFF, "i-RED Infrarot Systeme GmbH", "I-RED-INFRAROT-SYSTEME" }, { 0x0050C2, 0xA51000, 0xA51FFF, "Y-products co.ltd.", "Y-PRODUCTS" }, { 0x0050C2, 0xA52000, 0xA52FFF, "The VON Corporation", "THE-VON" }, { 0x0050C2, 0xA53000, 0xA53FFF, "Quality & Design", "QUALITY-DESIGN" }, { 0x0050C2, 0xA54000, 0xA54FFF, "Diamond Point International (Europe) Ltd", "DIAMOND-POINT-EUROPE" }, { 0x0050C2, 0xA55000, 0xA55FFF, "Arrowvale Electronics", "ARROWVALE-ELECTRONICS" }, { 0x0050C2, 0xA56000, 0xA56FFF, "ReaMetrix, Inc.", "REAMETRIX" }, { 0x0050C2, 0xA57000, 0xA57FFF, "Juice Technologies, LLC", "JUICE-TECHNOLOGIES" }, { 0x0050C2, 0xA58000, 0xA58FFF, "EPL", "EPL" }, { 0x0050C2, 0xA59000, 0xA59FFF, "GSP Sprachtechnologie GmbH", "GSP-SPRACHTECHNOLOGIE" }, { 0x0050C2, 0xA5A000, 0xA5AFFF, "ITAS A/S", "ITAS-A/S" }, { 0x0050C2, 0xA5B000, 0xA5BFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0xA5C000, 0xA5CFFF, "JSC Component-ASU", "JSC-COMPONENT-ASU" }, { 0x0050C2, 0xA5D000, 0xA5DFFF, "MECC CO., LTD.", "MECC" }, { 0x0050C2, 0xA5E000, 0xA5EFFF, "Ansen Investment Holdings Ltd.", "ANSEN-INVESTMENT-HOLDINGS" }, { 0x0050C2, 0xA5F000, 0xA5FFFF, "Alga Microwave Inc", "ALGA-MICROWAVE" }, { 0x0050C2, 0xA60000, 0xA60FFF, "Arrow Central Europe GmbH - Division Spoerle", "ARROW-CENTRAL-EUROPE-DIVISION-SPOERLE" }, { 0x0050C2, 0xA61000, 0xA61FFF, "Fr. Sauter AG", "FR-SAUTER" }, { 0x0050C2, 0xA62000, 0xA62FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x0050C2, 0xA63000, 0xA63FFF, "EMS Industries", "EMS-INDUSTRIES" }, { 0x0050C2, 0xA64000, 0xA64FFF, "tetronik GmbH AEN", "TETRONIK-AEN" }, { 0x0050C2, 0xA65000, 0xA65FFF, "Mark-O-Print GmbH", "MARK-O-PRINT" }, { 0x0050C2, 0xA66000, 0xA66FFF, "DVTech", "DVTECH" }, { 0x0050C2, 0xA67000, 0xA67FFF, "GSS Avionics Limited", "GSS-AVIONICS" }, { 0x0050C2, 0xA68000, 0xA68FFF, "X-Pert Paint Mixing Systems", "X-PERT-PAINT-MIXING" }, { 0x0050C2, 0xA69000, 0xA69FFF, "Advanced Integrated Systems", "ADVANCED-INTEGRATED" }, { 0x0050C2, 0xA6A000, 0xA6AFFF, "Infocrossing", "INFOCROSSING" }, { 0x0050C2, 0xA6B000, 0xA6BFFF, "Explorer Inc.", "EXPLORER" }, { 0x0050C2, 0xA6C000, 0xA6CFFF, "Figment Design Laboratories", "FIGMENT-DESIGN-LABORATORIES" }, { 0x0050C2, 0xA6D000, 0xA6DFFF, "DTV Innovations", "DTV-INNOVATIONS" }, { 0x0050C2, 0xA6E000, 0xA6EFFF, "Screen Technics Pty Limited", "SCREEN-TECHNICS-PTY" }, { 0x0050C2, 0xA6F000, 0xA6FFFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xA70000, 0xA70FFF, "Reliable System Services Corp", "RELIABLE-SYSTEM-SERVICES" }, { 0x0050C2, 0xA71000, 0xA71FFF, "Purite Ltd", "PURITE" }, { 0x0050C2, 0xA72000, 0xA72FFF, "Gamber-Johnson LLC.", "GAMBER-JOHNSON" }, { 0x0050C2, 0xA73000, 0xA73FFF, "KYOEI ENGINEERING Co.,Ltd.", "KYOEI-ENGINEERING" }, { 0x0050C2, 0xA74000, 0xA74FFF, "DSP DESIGN LTD", "DSP-DESIGN" }, { 0x0050C2, 0xA75000, 0xA75FFF, "JTL Systems Ltd.", "JTL" }, { 0x0050C2, 0xA76000, 0xA76FFF, "Roesch & Walter Industrie-Elektronik GmbH", "ROESCH-WALTER-INDUSTRIE-ELEKTRONIK" }, { 0x0050C2, 0xA77000, 0xA77FFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0xA78000, 0xA78FFF, "Apantac LLC", "APANTAC" }, { 0x0050C2, 0xA79000, 0xA79FFF, "Saintronic", "SAINTRONIC" }, { 0x0050C2, 0xA7A000, 0xA7AFFF, "DetNet South Africa PTY (LTD)", "DETNET-SOUTH-AFRICA-PTY" }, { 0x0050C2, 0xA7B000, 0xA7BFFF, "Orange Tree Technologies", "ORANGE-TREE-TECHNOLOGIES" }, { 0x0050C2, 0xA7C000, 0xA7CFFF, "Pneu-Logic Corporation", "PNEU-LOGIC" }, { 0x0050C2, 0xA7D000, 0xA7DFFF, "Vitel Net", "VITEL-NET" }, { 0x0050C2, 0xA7E000, 0xA7EFFF, "Densitron Technologies Ltd", "DENSITRON-TECHNOLOGIES" }, { 0x0050C2, 0xA7F000, 0xA7FFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0xA80000, 0xA80FFF, "ard sa", "ARD" }, { 0x0050C2, 0xA81000, 0xA81FFF, "BPC circuits Ltd", "BPC-CIRCUITS" }, { 0x0050C2, 0xA82000, 0xA82FFF, "CT Company", "CT-COMPANY" }, { 0x0050C2, 0xA83000, 0xA83FFF, "Techno Sobi Co. Ltd.", "TECHNO-SOBI" }, { 0x0050C2, 0xA84000, 0xA84FFF, "Lino Manfrotto +Co spa", "LINO-MANFROTTO-+-SPA" }, { 0x0050C2, 0xA85000, 0xA85FFF, "JOYSYSTEM", "JOYSYSTEM" }, { 0x0050C2, 0xA86000, 0xA86FFF, "LIMAB AB", "LIMAB-AB" }, { 0x0050C2, 0xA87000, 0xA87FFF, "Littlemore Scientific", "LITTLEMORE-SCIENTIFIC" }, { 0x0050C2, 0xA88000, 0xA88FFF, "S-SYS", "S-SYS" }, { 0x0050C2, 0xA89000, 0xA89FFF, "CA Traffic Ltd", "CA-TRAFFIC" }, { 0x0050C2, 0xA8A000, 0xA8AFFF, "Audio Engineering Ltd.", "AUDIO-ENGINEERING" }, { 0x0050C2, 0xA8B000, 0xA8BFFF, "Navicron Oy", "NAVICRON-OY" }, { 0x0050C2, 0xA8C000, 0xA8CFFF, "Redwire, LLC", "REDWIRE" }, { 0x0050C2, 0xA8D000, 0xA8DFFF, "Frontier Electronic Systems Corp.", "FRONTIER" }, { 0x0050C2, 0xA8E000, 0xA8EFFF, "BFI Industrie-Elektronik GmbH & Co.KG", "BFI-INDUSTRIE-ELEKTRONIK" }, { 0x0050C2, 0xA8F000, 0xA8FFFF, "Quantum3D, Inc.", "QUANTUM3D" }, { 0x0050C2, 0xA90000, 0xA90FFF, "S.two Corporation", "S-TWO" }, { 0x0050C2, 0xA91000, 0xA91FFF, "Ceron Tech Co.,LTD", "CERON-TECH" }, { 0x0050C2, 0xA92000, 0xA92FFF, "Sicon srl", "SICON-SRL" }, { 0x0050C2, 0xA93000, 0xA93FFF, "SPX Flow Technology", "SPX-FLOW" }, { 0x0050C2, 0xA94000, 0xA94FFF, "Par-Tech, Inc.", "PAR-TECH" }, { 0x0050C2, 0xA95000, 0xA95FFF, "INNOVACIONES Microelectrónicas SL (AnaFocus)", "INNOVACIONES-MICROELECTRNICAS-SL-ANAFOCUS" }, { 0x0050C2, 0xA96000, 0xA96FFF, "FEP SRL", "FEP-SRL" }, { 0x0050C2, 0xA97000, 0xA97FFF, "MICROSYSTEMES", "MICROSYSTEMES" }, { 0x0050C2, 0xA98000, 0xA98FFF, "Sentry 360 Security", "SENTRY-360-SECURITY" }, { 0x0050C2, 0xA99000, 0xA99FFF, "Haivision Systems Inc", "HAIVISION" }, { 0x0050C2, 0xA9A000, 0xA9AFFF, "Absolutron. LLC", "ABSOLUTRON" }, { 0x0050C2, 0xA9B000, 0xA9BFFF, "PDQ Manufacturing Inc.", "PDQ-MANUFACTURING" }, { 0x0050C2, 0xA9C000, 0xA9CFFF, "Star Electronics GmbH & Co. KG", "STAR-ELECTRONICS" }, { 0x0050C2, 0xA9D000, 0xA9DFFF, "Joehl & Koeferli AG", "JOEHL-KOEFERLI" }, { 0x0050C2, 0xA9E000, 0xA9EFFF, "Procon Engineering Limited", "PROCON-ENGINEERING" }, { 0x0050C2, 0xA9F000, 0xA9FFFF, "YellowSoft Co., Ltd.", "YELLOWSOFT" }, { 0x0050C2, 0xAA0000, 0xAA0FFF, "Smith Meter, Inc.", "SMITH-METER" }, { 0x0050C2, 0xAA1000, 0xAA1FFF, "ELREM ELECTRONIC AG", "ELREM" }, { 0x0050C2, 0xAA2000, 0xAA2FFF, "ELPA sas", "ELPA-SAS" }, { 0x0050C2, 0xAA3000, 0xAA3FFF, "Peek Traffic Corporation", "PEEK-TRAFFIC" }, { 0x0050C2, 0xAA4000, 0xAA4FFF, "PSi Printer Systems international GmbH", "PSI-PRINTER" }, { 0x0050C2, 0xAA5000, 0xAA5FFF, "Tampere University of Technology", "TAMPERE-UNIVERSITY-OF" }, { 0x0050C2, 0xAA6000, 0xAA6FFF, "Bassett Electronic Systems ltd", "BASSETT" }, { 0x0050C2, 0xAA7000, 0xAA7FFF, "Endeas Oy", "ENDEAS-OY" }, { 0x0050C2, 0xAA8000, 0xAA8FFF, "Nexans Cabling Solutions", "NEXANS-CABLING-SOLUTIONS" }, { 0x0050C2, 0xAA9000, 0xAA9FFF, "SAN GIORGIO S.E.I.N. srl", "SAN-GIORGIO-S-E-I-N-SRL" }, { 0x0050C2, 0xAAA000, 0xAAAFFF, "Flexible Picture Systems", "FLEXIBLE-PICTURE" }, { 0x0050C2, 0xAAB000, 0xAABFFF, "BRS Sistemas Eletrônicos", "BRS-SISTEMAS-ELETRNICOS" }, { 0x0050C2, 0xAAC000, 0xAACFFF, "VisiCon GmbH", "VISICON" }, { 0x0050C2, 0xAAD000, 0xAADFFF, "Update Systems Inc.", "UPDATE" }, { 0x0050C2, 0xAAE000, 0xAAEFFF, "OUTLINE srl", "OUTLINE-SRL" }, { 0x0050C2, 0xAAF000, 0xAAFFFF, "Santa Barbara Instrument Group", "SANTA-BARBARA-INSTRUMENT-GROUP" }, { 0x0050C2, 0xAB0000, 0xAB0FFF, "FRAKO Kondensatoren- und Anlagenbau GmbH", "FRAKO-KONDENSATOREN-UND-ANLAGENBAU" }, { 0x0050C2, 0xAB1000, 0xAB1FFF, "Bitmanufaktur GmbH", "BITMANUFAKTUR" }, { 0x0050C2, 0xAB2000, 0xAB2FFF, "ProCom Systems, Inc.", "PROCOM" }, { 0x0050C2, 0xAB3000, 0xAB3FFF, "Compañía de Instrumentacion y control, S.L.", "COMPAA-DE-INSTRUMENTACION-Y-CONTROL" }, { 0x0050C2, 0xAB4000, 0xAB4FFF, "n3k Informatik GmbH", "N3K-INFORMATIK" }, { 0x0050C2, 0xAB5000, 0xAB5FFF, "Mettler Toledo", "METTLER-TOLEDO" }, { 0x0050C2, 0xAB6000, 0xAB6FFF, "Gygax Embedded Engineering GEE.ch", "GYGAX-EMBEDDED-ENGINEERING-GEE-CH" }, { 0x0050C2, 0xAB7000, 0xAB7FFF, "Twinfalls Technologies", "TWINFALLS-TECHNOLOGIES" }, { 0x0050C2, 0xAB8000, 0xAB8FFF, "AHM Limited (CLiKAPAD)", "AHM-CLIKAPAD" }, { 0x0050C2, 0xAB9000, 0xAB9FFF, "Showtacle", "SHOWTACLE" }, { 0x0050C2, 0xABA000, 0xABAFFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xABB000, 0xABBFFF, "Volantic AB", "VOLANTIC-AB" }, { 0x0050C2, 0xABC000, 0xABCFFF, "Barrick", "BARRICK" }, { 0x0050C2, 0xABD000, 0xABDFFF, "Monitor Business Machines Ltd.", "MONITOR-BUSINESS-MACHINES" }, { 0x0050C2, 0xABE000, 0xABEFFF, "AP Labs", "AP-LABS" }, { 0x0050C2, 0xABF000, 0xABFFFF, "MCC Computer Company", "MCC-COMPANY" }, { 0x0050C2, 0xAC0000, 0xAC0FFF, "DS PRO Audio Ltda", "DS-PRO-AUDIO-LTDA" }, { 0x0050C2, 0xAC1000, 0xAC1FFF, "DAISHIN-DENSHI Co., Ltd", "DAISHIN-DENSHI" }, { 0x0050C2, 0xAC2000, 0xAC2FFF, "OpenXS B.V.", "OPENXS-B-V" }, { 0x0050C2, 0xAC3000, 0xAC3FFF, "Diversified Control, Inc.", "DIVERSIFIED-CONTROL" }, { 0x0050C2, 0xAC4000, 0xAC4FFF, "Orion Technologies,LLC", "ORION-TECHNOLOGIES" }, { 0x0050C2, 0xAC5000, 0xAC5FFF, "E-Motion System, Inc.", "E-MOTION-SYSTEM" }, { 0x0050C2, 0xAC6000, 0xAC6FFF, "Marathon Products, Inc.", "MARATHON-PRODUCTS" }, { 0x0050C2, 0xAC7000, 0xAC7FFF, "WaveIP", "WAVEIP" }, { 0x0050C2, 0xAC8000, 0xAC8FFF, "Palladio Systeme GmbH", "PALLADIO-SYSTEME" }, { 0x0050C2, 0xAC9000, 0xAC9FFF, "Steinbeis-Transferzentrum Embedded Design und Networking", "STEINBEIS-TRANSFERZENTRUM-EMBEDDED-DESIGN-UND-NETWORKING" }, { 0x0050C2, 0xACA000, 0xACAFFF, "Soft & Control Technology s.r.o.", "SOFT-CONTROL-S-R-O" }, { 0x0050C2, 0xACB000, 0xACBFFF, "U-CARE INC.", "U-CARE" }, { 0x0050C2, 0xACC000, 0xACCFFF, "ProPhotonix", "PROPHOTONIX" }, { 0x0050C2, 0xACD000, 0xACDFFF, "MeshWorks Wireless Oy", "MESHWORKS-WIRELESS-OY" }, { 0x0050C2, 0xACE000, 0xACEFFF, "ChronoLogic Pty. Ltd.", "CHRONOLOGIC-PTY" }, { 0x0050C2, 0xACF000, 0xACFFFF, "SP Controls, Inc", "SP-CONTROLS" }, { 0x0050C2, 0xAD0000, 0xAD0FFF, "Geonautics Australia Pty Ltd", "GEONAUTICS-AUSTRALIA-PTY" }, { 0x0050C2, 0xAD1000, 0xAD1FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0xAD2000, 0xAD2FFF, "Rafael", "RAFAEL" }, { 0x0050C2, 0xAD3000, 0xAD3FFF, "Peek Traffic Corporation", "PEEK-TRAFFIC" }, { 0x0050C2, 0xAD4000, 0xAD4FFF, "Global Rainmakers Inc.", "GLOBAL-RAINMAKERS" }, { 0x0050C2, 0xAD5000, 0xAD5FFF, "Mighty Lube Systematic Lubrication, Inc.", "MIGHTY-LUBE-SYSTEMATIC-LUBRICATION" }, { 0x0050C2, 0xAD6000, 0xAD6FFF, "Unisensor A/S", "UNISENSOR-A/S" }, { 0x0050C2, 0xAD7000, 0xAD7FFF, "Air Monitors Ltd", "AIR-MONITORS" }, { 0x0050C2, 0xAD8000, 0xAD8FFF, "Incyma", "INCYMA" }, { 0x0050C2, 0xAD9000, 0xAD9FFF, "elettrondata srl", "ELETTRONDATA-SRL" }, { 0x0050C2, 0xADA000, 0xADAFFF, "Essepie Srl", "ESSEPIE-SRL" }, { 0x0050C2, 0xADB000, 0xADBFFF, "GO engineering GmbH", "GO-ENGINEERING" }, { 0x0050C2, 0xADC000, 0xADCFFF, "Synthesechemie Dr. Penth GmbH", "SYNTHESECHEMIE-DR-PENTH" }, { 0x0050C2, 0xADD000, 0xADDFFF, "GD Mission Systems", "GD-MISSION" }, { 0x0050C2, 0xADE000, 0xADEFFF, "Neoptix Inc.", "NEOPTIX" }, { 0x0050C2, 0xADF000, 0xADFFFF, "Altinex, Inc", "ALTINEX" }, { 0x0050C2, 0xAE0000, 0xAE0FFF, "AT4 wireless.S.A", "AT4-WIRELESS" }, { 0x0050C2, 0xAE1000, 0xAE1FFF, "EVERCARE", "EVERCARE" }, { 0x0050C2, 0xAE2000, 0xAE2FFF, "Power Medical Interventions", "POWER-MEDICAL-INTERVENTIONS" }, { 0x0050C2, 0xAE3000, 0xAE3FFF, "PSD", "PSD" }, { 0x0050C2, 0xAE4000, 0xAE4FFF, "Advanced Electronic Designs, Inc.", "ADVANCED-DESIGNS" }, { 0x0050C2, 0xAE5000, 0xAE5FFF, "ABS Gesellschaft f. Automatisierung, Bildverarbeitung und Software mbH", "ABS-GESELLSCHAFT-F-AUTOMATISIERUNG-BILDVERARBEITUNG-UND-SOFTWARE" }, { 0x0050C2, 0xAE6000, 0xAE6FFF, "VECOM USA", "VECOM-USA" }, { 0x0050C2, 0xAE7000, 0xAE7FFF, "Redwood Systems", "REDWOOD" }, { 0x0050C2, 0xAE8000, 0xAE8FFF, "Bit-Lab PTY LTD", "BIT-LAB-PTY" }, { 0x0050C2, 0xAE9000, 0xAE9FFF, "ClearCorp Enterprises, Inc", "CLEARCORP-ENTERPRISES" }, { 0x0050C2, 0xAEA000, 0xAEAFFF, "EMBEDIA", "EMBEDIA" }, { 0x0050C2, 0xAEB000, 0xAEBFFF, "UMLogics Corporation", "UMLOGICS" }, { 0x0050C2, 0xAEC000, 0xAECFFF, "Fritz Pauker Ingenieure GmbH", "FRITZ-PAUKER-INGENIEURE" }, { 0x0050C2, 0xAED000, 0xAEDFFF, "3Roam", "3ROAM" }, { 0x0050C2, 0xAEE000, 0xAEEFFF, "IPtec, Inc.", "IPTEC" }, { 0x0050C2, 0xAEF000, 0xAEFFFF, "National CineMedia", "NATIONAL-CINEMEDIA" }, { 0x0050C2, 0xAF0000, 0xAF0FFF, "Fr. Sauter AG", "FR-SAUTER" }, { 0x0050C2, 0xAF1000, 0xAF1FFF, "Green Goose", "GREEN-GOOSE" }, { 0x0050C2, 0xAF2000, 0xAF2FFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x0050C2, 0xAF3000, 0xAF3FFF, "Palomar Products, Inc.", "PALOMAR-PRODUCTS" }, { 0x0050C2, 0xAF4000, 0xAF4FFF, "Dixell S.p.A.", "DIXELL" }, { 0x0050C2, 0xAF5000, 0xAF5FFF, "Kramara s.r.o.", "KRAMARA-S-R-O" }, { 0x0050C2, 0xAF6000, 0xAF6FFF, "Energid", "ENERGID" }, { 0x0050C2, 0xAF7000, 0xAF7FFF, "Midwest Microwave Solutions Inc.", "MIDWEST-MICROWAVE-SOLUTIONS" }, { 0x0050C2, 0xAF8000, 0xAF8FFF, "Global Satellite Engineering", "GLOBAL-SATELLITE-ENGINEERING" }, { 0x0050C2, 0xAF9000, 0xAF9FFF, "Ingenieurbuero Bickele und Buehler GmbH", "INGENIEURBUERO-BICKELE-UND-BUEHLER" }, { 0x0050C2, 0xAFA000, 0xAFAFFF, "Absolute Fire Solutions Inc.", "ABSOLUTE-FIRE-SOLUTIONS" }, { 0x0050C2, 0xAFB000, 0xAFBFFF, "Vocality International Ltd", "VOCALITY" }, { 0x0050C2, 0xAFC000, 0xAFCFFF, "Odus Technologies SA", "ODUS-TECHNOLOGIES" }, { 0x0050C2, 0xAFD000, 0xAFDFFF, "HomeScenario, Inc.", "HOMESCENARIO" }, { 0x0050C2, 0xAFE000, 0xAFEFFF, "Trolex Limited", "TROLEX" }, { 0x0050C2, 0xAFF000, 0xAFFFFF, "XoByte LLC", "XOBYTE" }, { 0x0050C2, 0xB00000, 0xB00FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xB01000, 0xB01FFF, "HSR Harald L. Reuter", "HSR-HARALD-L-REUTER" }, { 0x0050C2, 0xB02000, 0xB02FFF, "MASTER CO LTD", "MASTER" }, { 0x0050C2, 0xB03000, 0xB03FFF, "Spider Tecnologia Ind. e Com. Ltda.", "SPIDER-TECNOLOGIA-IND-E-COM-LTDA" }, { 0x0050C2, 0xB04000, 0xB04FFF, "Ubiquiti Inc", "UBIQUITI" }, { 0x0050C2, 0xB05000, 0xB05FFF, "POLA s.r.l.", "POLA" }, { 0x0050C2, 0xB06000, 0xB06FFF, "CompuDesigns, Inc.", "COMPUDESIGNS" }, { 0x0050C2, 0xB07000, 0xB07FFF, "FARECO", "FARECO" }, { 0x0050C2, 0xB08000, 0xB08FFF, "Goerlitz AG", "GOERLITZ" }, { 0x0050C2, 0xB09000, 0xB09FFF, "Harper Chalice Group Limited", "HARPER-CHALICE-GROUP" }, { 0x0050C2, 0xB0A000, 0xB0AFFF, "Indutherm Giesstechnologie GmbH", "INDUTHERM-GIESSTECHNOLOGIE" }, { 0x0050C2, 0xB0B000, 0xB0BFFF, "Honeywell", "HONEYWELL" }, { 0x0050C2, 0xB0C000, 0xB0CFFF, "SMARTB TECHNOLOGIES", "SMARTB-TECHNOLOGIES" }, { 0x0050C2, 0xB0D000, 0xB0DFFF, "Japan Electronics System, Inc", "JAPAN-ELECTRONICS-SYSTEM" }, { 0x0050C2, 0xB0E000, 0xB0EFFF, "KYAB Lulea AB", "KYAB-LULEA-AB" }, { 0x0050C2, 0xB0F000, 0xB0FFFF, "NARA Controls Inc.", "NARA-CONTROLS" }, { 0x0050C2, 0xB10000, 0xB10FFF, "Marine Entertainment Systems Ltd", "MARINE-ENTERTAINMENT" }, { 0x0050C2, 0xB11000, 0xB11FFF, "EXEL s.r.l", "EXEL" }, { 0x0050C2, 0xB12000, 0xB12FFF, "CM Elektronik GmbH", "CM-ELEKTRONIK" }, { 0x0050C2, 0xB13000, 0xB13FFF, "Measy Electronics Co., Ltd.", "MEASY-ELECTRONICS" }, { 0x0050C2, 0xB14000, 0xB14FFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0xB15000, 0xB15FFF, "PhotoTelesis LP", "PHOTOTELESIS-LP" }, { 0x0050C2, 0xB16000, 0xB16FFF, "Neothings, Inc.", "NEOTHINGS" }, { 0x0050C2, 0xB17000, 0xB17FFF, "Elcoteq Design Center Oy", "ELCOTEQ-DESIGN-CENTER-OY" }, { 0x0050C2, 0xB18000, 0xB18FFF, "Rosslare Enterprises Limited", "ROSSLARE-ENTERPRISES" }, { 0x0050C2, 0xB19000, 0xB19FFF, "Polytron Corporation", "POLYTRON" }, { 0x0050C2, 0xB1A000, 0xB1AFFF, "ELCUS", "ELCUS" }, { 0x0050C2, 0xB1B000, 0xB1BFFF, "Integrated Control Corp.", "INTEGRATED-CONTROL" }, { 0x0050C2, 0xB1C000, 0xB1CFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0xB1D000, 0xB1DFFF, "Telegenix", "TELEGENIX" }, { 0x0050C2, 0xB1E000, 0xB1EFFF, "Abbott Medical Optics", "ABBOTT-MEDICAL-OPTICS" }, { 0x0050C2, 0xB1F000, 0xB1FFFF, "Atlas Copco IAS GmbH", "ATLAS-COPCO-IAS" }, { 0x0050C2, 0xB20000, 0xB20FFF, "FIVE9 NETWORK SYSTEMS LLC", "FIVE9-NETWORK" }, { 0x0050C2, 0xB21000, 0xB21FFF, "Phytron-Elektronik GmbH", "PHYTRON-ELEKTRONIK" }, { 0x0050C2, 0xB22000, 0xB22FFF, "FarSite Communications Limited", "FARSITE-COMMUNICATION" }, { 0x0050C2, 0xB23000, 0xB23FFF, "Ronyo Technologies s.r.o.", "RONYO-TECHNOLOGIES-S-R-O" }, { 0x0050C2, 0xB24000, 0xB24FFF, "Teledyne Defence Limited", "TELEDYNE-DEFENCE" }, { 0x0050C2, 0xB25000, 0xB25FFF, "Triax A/S", "TRIAX-A/S" }, { 0x0050C2, 0xB26000, 0xB26FFF, "Elko Systems", "ELKO" }, { 0x0050C2, 0xB27000, 0xB27FFF, "ATEME", "ATEME" }, { 0x0050C2, 0xB28000, 0xB28FFF, "Micromax Pty. Ltd.", "MICROMAX-PTY" }, { 0x0050C2, 0xB29000, 0xB29FFF, "Integra LifeSciences (Ireland) Ltd", "INTEGRA-LIFESCIENCES-IRELAND" }, { 0x0050C2, 0xB2A000, 0xB2AFFF, "Trench Austria GmbH", "TRENCH-AUSTRIA" }, { 0x0050C2, 0xB2B000, 0xB2BFFF, "CosmoData Informatica Ltda.", "COSMODATA-INFORMATICA-LTDA" }, { 0x0050C2, 0xB2C000, 0xB2CFFF, "Concepteers, LLC", "CONCEPTEERS" }, { 0x0050C2, 0xB2D000, 0xB2DFFF, "Datasat Digital Entertainment", "DATASAT-DIGITAL-ENTERTAINMENT" }, { 0x0050C2, 0xB2E000, 0xB2EFFF, "ACT", "ACT" }, { 0x0050C2, 0xB2F000, 0xB2FFFF, "IntelliVision Technologies, Corp", "INTELLIVISION-TECHNOLOGIES" }, { 0x0050C2, 0xB30000, 0xB30FFF, "Applied Micro Electronics AME bv", "APPLIED-MICRO-ELECTRONICS-AME" }, { 0x0050C2, 0xB31000, 0xB31FFF, "Shop Safe AG", "SHOP-SAFE" }, { 0x0050C2, 0xB32000, 0xB32FFF, "Byres Security Inc", "BYRES-SECURITY" }, { 0x0050C2, 0xB33000, 0xB33FFF, "Numcore Ltd", "NUMCORE" }, { 0x0050C2, 0xB34000, 0xB34FFF, "Meisol co.,ltd", "MEISOL" }, { 0x0050C2, 0xB35000, 0xB35FFF, "haneron", "HANERON" }, { 0x0050C2, 0xB36000, 0xB36FFF, "CRDE", "CRDE" }, { 0x0050C2, 0xB37000, 0xB37FFF, "IAdea Corporation", "IADEA" }, { 0x0050C2, 0xB38000, 0xB38FFF, "Grenmore Ltd", "GRENMORE" }, { 0x0050C2, 0xB39000, 0xB39FFF, "siXis, Inc.", "SIXIS" }, { 0x0050C2, 0xB3A000, 0xB3AFFF, "Nikon Systems Inc.", "NIKON" }, { 0x0050C2, 0xB3B000, 0xB3BFFF, "Sportvision Inc.", "SPORTVISION" }, { 0x0050C2, 0xB3C000, 0xB3CFFF, "JanasCard", "JANASCARD" }, { 0x0050C2, 0xB3D000, 0xB3DFFF, "AMS", "AMS" }, { 0x0050C2, 0xB3E000, 0xB3EFFF, "Sage Consultants", "SAGE-CONSULTANTS" }, { 0x0050C2, 0xB3F000, 0xB3FFFF, "M-Tronic Design and Technology GmbH", "M-TRONIC-DESIGN" }, { 0x0050C2, 0xB40000, 0xB40FFF, "Tecnint HTE SRL", "TECNINT-HTE-SRL" }, { 0x0050C2, 0xB41000, 0xB41FFF, "Tata Power Company, Strategic Electronics Division", "TATA-POWER-COMPANY-STRATEGIC-ELECTRONICS-DIVISION" }, { 0x0050C2, 0xB42000, 0xB42FFF, "ETM Electromatic Incorporated", "ETM-ELECTROMATIC-INCORPORATED" }, { 0x0050C2, 0xB43000, 0xB43FFF, "J-Systems Inc.", "J" }, { 0x0050C2, 0xB44000, 0xB44FFF, "Ampcontrol Pty Ltd", "AMPCONTROL-PTY" }, { 0x0050C2, 0xB45000, 0xB45FFF, "Efftronics Systems (P) Ltd", "EFFTRONICS-P" }, { 0x0050C2, 0xB46000, 0xB46FFF, "Mobileye", "MOBILEYE" }, { 0x0050C2, 0xB47000, 0xB47FFF, "MCS MICRONIC Computer Systeme GmbH", "MCS-MICRONIC-SYSTEME" }, { 0x0050C2, 0xB48000, 0xB48FFF, "MTD GmbH", "MTD" }, { 0x0050C2, 0xB49000, 0xB49FFF, "Aplex Technology Inc.", "APLEX" }, { 0x0050C2, 0xB4A000, 0xB4AFFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xB4B000, 0xB4BFFF, "Chitose Co.,Ltd", "CHITOSE" }, { 0x0050C2, 0xB4C000, 0xB4CFFF, "ElectroCom", "ELECTROCOM" }, { 0x0050C2, 0xB4D000, 0xB4DFFF, "Troll Systems Corporation", "TROLL" }, { 0x0050C2, 0xB4E000, 0xB4EFFF, "AixControl GmbH", "AIXCONTROL" }, { 0x0050C2, 0xB4F000, 0xB4FFFF, "Sencon UK Ltd.", "SENCON-UK" }, { 0x0050C2, 0xB50000, 0xB50FFF, "SELCO", "SELCO" }, { 0x0050C2, 0xB51000, 0xB51FFF, "Aeroflex GmbH", "AEROFLEX" }, { 0x0050C2, 0xB52000, 0xB52FFF, "SMH Technologies", "SMH-TECHNOLOGIES" }, { 0x0050C2, 0xB53000, 0xB53FFF, "Prodco", "PRODCO" }, { 0x0050C2, 0xB54000, 0xB54FFF, "APG Cash Drawer, LLC", "APG-CASH-DRAWER" }, { 0x0050C2, 0xB55000, 0xB55FFF, "SANYO ELECTRONIC INDUSTRIES CO.,LTD", "SANYO-INDUSTRIES" }, { 0x0050C2, 0xB56000, 0xB56FFF, "SINOVIA SA", "SINOVIA" }, { 0x0050C2, 0xB57000, 0xB57FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0xB58000, 0xB58FFF, "RealD, Inc.", "REALD" }, { 0x0050C2, 0xB59000, 0xB59FFF, "SLICAN sp. z o.o.", "SLICAN-SP-Z-O-O" }, { 0x0050C2, 0xB5A000, 0xB5AFFF, "GREEN Center s.r.o.", "GREEN-CENTER-S-R-O" }, { 0x0050C2, 0xB5B000, 0xB5BFFF, "Timberline Manufacturing", "TIMBERLINE-MANUFACTURING" }, { 0x0050C2, 0xB5C000, 0xB5CFFF, "ADI Video Technologies", "ADI-VIDEO-TECHNOLOGIES" }, { 0x0050C2, 0xB5D000, 0xB5DFFF, "Plitron Manufacturing Inc.", "PLITRON-MANUFACTURING" }, { 0x0050C2, 0xB5E000, 0xB5EFFF, "Palgiken Co.,Ltd.", "PALGIKEN" }, { 0x0050C2, 0xB5F000, 0xB5FFFF, "North Bridge Technologies", "NORTH-BRIDGE-TECHNOLOGIES" }, { 0x0050C2, 0xB60000, 0xB60FFF, "OOO NPF ATIS", "OOO-NPF-ATIS" }, { 0x0050C2, 0xB61000, 0xB61FFF, "Nayos LTD", "NAYOS" }, { 0x0050C2, 0xB62000, 0xB62FFF, "Measurement Technology NW", "MEASUREMENT-NW" }, { 0x0050C2, 0xB63000, 0xB63FFF, "RO.VE.R. Laboratories S.p.A", "RO-VE-R-LABORATORIES" }, { 0x0050C2, 0xB64000, 0xB64FFF, "FEW Bauer GmbH", "FEW-BAUER" }, { 0x0050C2, 0xB65000, 0xB65FFF, "Peek Traffic Corporation", "PEEK-TRAFFIC" }, { 0x0050C2, 0xB66000, 0xB66FFF, "8185", "8185" }, { 0x0050C2, 0xB67000, 0xB67FFF, "RC Systems Co. Inc.", "RC" }, { 0x0050C2, 0xB68000, 0xB68FFF, "Electronic Systems Protection, Inc.", "PROTECTION" }, { 0x0050C2, 0xB69000, 0xB69FFF, "Thetis S.p.A.", "THETIS" }, { 0x0050C2, 0xB6A000, 0xB6AFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0xB6B000, 0xB6BFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0xB6C000, 0xB6CFFF, "Drinelec", "DRINELEC" }, { 0x0050C2, 0xB6D000, 0xB6DFFF, "Sound Metrics Corp", "SOUND-METRICS" }, { 0x0050C2, 0xB6E000, 0xB6EFFF, "Private", "PRIVATE" }, { 0x0050C2, 0xB6F000, 0xB6FFFF, "CT Company", "CT-COMPANY" }, { 0x0050C2, 0xB70000, 0xB70FFF, "Nisshin Electronics co.,ltd.", "NISSHIN-ELECTRONICS" }, { 0x0050C2, 0xB71000, 0xB71FFF, "Digitale Analoge COMponenten West Electronic Vertriebs GmbH", "DIGITALE-ANALOGE-COMPONENTEN-WEST-VERTRIEBS" }, { 0x0050C2, 0xB72000, 0xB72FFF, "Advanced Desktop Systems Ltd", "ADVANCED-DESKTOP" }, { 0x0050C2, 0xB73000, 0xB73FFF, "ARKRAY, Inc. Kyoto Laboratory", "ARKRAY-KYOTO-LABORATORY" }, { 0x0050C2, 0xB74000, 0xB74FFF, "AXED Jakubowski Wojciechowski sp.j.", "AXED-JAKUBOWSKI-WOJCIECHOWSKI-SP-J" }, { 0x0050C2, 0xB75000, 0xB75FFF, "Blankom", "BLANKOM" }, { 0x0050C2, 0xB76000, 0xB76FFF, "ITF Fröschl GmbH", "ITF-FROESCHL" }, { 0x0050C2, 0xB77000, 0xB77FFF, "KRISTECH", "KRISTECH" }, { 0x0050C2, 0xB78000, 0xB78FFF, "Folink", "FOLINK" }, { 0x0050C2, 0xB79000, 0xB79FFF, "MITSUYA LABORATORIES INC.", "MITSUYA-LABORATORIES" }, { 0x0050C2, 0xB7A000, 0xB7AFFF, "Schnoor Industrieelektronik GmbH & Co. KG", "SCHNOOR-INDUSTRIEELEKTRONIK" }, { 0x0050C2, 0xB7B000, 0xB7BFFF, "QUARTECH CORPORATION", "QUARTECH" }, { 0x0050C2, 0xB7C000, 0xB7CFFF, "Bettini srl", "BETTINI-SRL" }, { 0x0050C2, 0xB7D000, 0xB7DFFF, "ELETECH Srl", "ELETECH-SRL" }, { 0x0050C2, 0xB7E000, 0xB7EFFF, "NARETRENDS", "NARETRENDS" }, { 0x0050C2, 0xB7F000, 0xB7FFFF, "Enatel", "ENATEL" }, { 0x0050C2, 0xB80000, 0xB80FFF, "iScreen LLC", "ISCREEN" }, { 0x0050C2, 0xB81000, 0xB81FFF, "GHL Advanced Technolgy GmbH & Co. KG", "GHL-ADVANCED-TECHNOLGY" }, { 0x0050C2, 0xB82000, 0xB82FFF, "TANABIKI Inc.", "TANABIKI" }, { 0x0050C2, 0xB83000, 0xB83FFF, "Advanced Storage Concepts, Inc.", "ADVANCED-STORAGE-CONCEPTS" }, { 0x0050C2, 0xB84000, 0xB84FFF, "Innovate Software Solutions Pvt Ltd", "INNOVATE-SOFTWARE-SOLUTIONS-PVT" }, { 0x0050C2, 0xB85000, 0xB85FFF, "SilverNet", "SILVERNET" }, { 0x0050C2, 0xB86000, 0xB86FFF, "ASTO", "ASTO" }, { 0x0050C2, 0xB87000, 0xB87FFF, "EMAC, Inc.", "EMAC" }, { 0x0050C2, 0xB88000, 0xB88FFF, "Gigatronik Köln GmbH", "GIGATRONIK-KOELN" }, { 0x0050C2, 0xB89000, 0xB89FFF, "ENTEC Electric & Electronic Co., LTD.", "ENTEC-ELECTRIC" }, { 0x0050C2, 0xB8A000, 0xB8AFFF, "MicroPoise", "MICROPOISE" }, { 0x0050C2, 0xB8B000, 0xB8BFFF, "FBB", "FBB" }, { 0x0050C2, 0xB8C000, 0xB8CFFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0xB8D000, 0xB8DFFF, "CEMSI", "CEMSI" }, { 0x0050C2, 0xB8E000, 0xB8EFFF, "WAC (Israel) Ltd.", "WAC-ISRAEL" }, { 0x0050C2, 0xB8F000, 0xB8FFFF, "Gentec", "GENTEC" }, { 0x0050C2, 0xB90000, 0xB90FFF, "NAONWORKS Co., Ltd", "NAONWORKS" }, { 0x0050C2, 0xB91000, 0xB91FFF, "Finnet-Service Ltd.", "FINNET-SERVICE" }, { 0x0050C2, 0xB92000, 0xB92FFF, "ABB Transmission and Distribution Automation Equipment (Xiamen) Co., Ltd.", "ABB-TRANSMISSION-AND-DISTRIBUTION-AUTOMATION-EQUIPMENT-XIAMEN" }, { 0x0050C2, 0xB93000, 0xB93FFF, "EMC PARTNER AG", "EMC-PARTNER" }, { 0x0050C2, 0xB94000, 0xB94FFF, "Tritech International Ltd", "TRITECH" }, { 0x0050C2, 0xB95000, 0xB95FFF, "Rx Monitoring Services", "RX-MONITORING-SERVICES" }, { 0x0050C2, 0xB96000, 0xB96FFF, "Onix Electronic Systems Inc", "ONIX" }, { 0x0050C2, 0xB97000, 0xB97FFF, "ikerlan", "IKERLAN" }, { 0x0050C2, 0xB98000, 0xB98FFF, "Southwest Research Institute", "SOUTHWEST-RESEARCH-INSTITUTE" }, { 0x0050C2, 0xB99000, 0xB99FFF, "Greenlight Innovation Corp.", "GREENLIGHT-INNOVATION" }, { 0x0050C2, 0xB9A000, 0xB9AFFF, "Talo, NV Inc", "TALO-NV" }, { 0x0050C2, 0xB9B000, 0xB9BFFF, "Telventy Energia S.A.", "TELVENTY-ENERGIA" }, { 0x0050C2, 0xB9C000, 0xB9CFFF, "DAVE SRL", "DAVE-SRL" }, { 0x0050C2, 0xB9D000, 0xB9DFFF, "W. Vershoven GmbH", "W-VERSHOVEN" }, { 0x0050C2, 0xB9E000, 0xB9EFFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xB9F000, 0xB9FFFF, "AUDIOSCOPE 2K SRL", "AUDIOSCOPE-2K-SRL" }, { 0x0050C2, 0xBA0000, 0xBA0FFF, "txtr GmbH", "TXTR" }, { 0x0050C2, 0xBA1000, 0xBA1FFF, "Transtechnik GmbH & Co.KG", "TRANSTECHNIK" }, { 0x0050C2, 0xBA2000, 0xBA2FFF, "Logical Tools s.r.l.", "LOGICAL-TOOLS" }, { 0x0050C2, 0xBA3000, 0xBA3FFF, "DSP DESIGN LTD", "DSP-DESIGN" }, { 0x0050C2, 0xBA4000, 0xBA4FFF, "CUSTOS MOBILE S.L.", "CUSTOS-MOBILE" }, { 0x0050C2, 0xBA5000, 0xBA5FFF, "InterCel Pty Ltd", "INTERCEL-PTY" }, { 0x0050C2, 0xBA6000, 0xBA6FFF, "Jomitek", "JOMITEK" }, { 0x0050C2, 0xBA7000, 0xBA7FFF, "RaumComputer Entwicklungs- und Vertriebs GmbH", "RAUMCOMPUTER-ENTWICKLUNGS-UND-VERTRIEBS" }, { 0x0050C2, 0xBA8000, 0xBA8FFF, "Peek Traffic Corporation", "PEEK-TRAFFIC" }, { 0x0050C2, 0xBA9000, 0xBA9FFF, "SISS Technology Inc.", "SISS" }, { 0x0050C2, 0xBAA000, 0xBAAFFF, "NetworkFX Communications, LLC", "NETWORKFX-COMMUNICATION" }, { 0x0050C2, 0xBAB000, 0xBABFFF, "iDeal Teknoloji Bilisim Cozumleri A.S.", "IDEAL-TEKNOLOJI-BILISIM-COZUMLERI" }, { 0x0050C2, 0xBAC000, 0xBACFFF, "VITECO VNPT JSC", "VITECO-VNPT-JSC" }, { 0x0050C2, 0xBAD000, 0xBADFFF, "Prediktor AS", "PREDIKTOR-AS" }, { 0x0050C2, 0xBAE000, 0xBAEFFF, "Fiber Connections Inc.", "FIBER-CONNECTIONS" }, { 0x0050C2, 0xBAF000, 0xBAFFFF, "MangoDSP", "MANGODSP" }, { 0x0050C2, 0xBB0000, 0xBB0FFF, "Gainbrain", "GAINBRAIN" }, { 0x0050C2, 0xBB1000, 0xBB1FFF, "Pro4tech", "PRO4TECH" }, { 0x0050C2, 0xBB2000, 0xBB2FFF, "St Michael Strategies Inc", "ST-MICHAEL-STRATEGIES" }, { 0x0050C2, 0xBB3000, 0xBB3FFF, "ClimateWell AB (publ)", "CLIMATEWELL-AB-PUBL" }, { 0x0050C2, 0xBB4000, 0xBB4FFF, "JSC Electrical Equipment Factory", "JSC-ELECTRICAL-EQUIPMENT-FACTORY" }, { 0x0050C2, 0xBB5000, 0xBB5FFF, "MROAD INFORMATION SYSTEM", "MROAD-INFORMATION-SYSTEM" }, { 0x0050C2, 0xBB6000, 0xBB6FFF, "Quarch Technology Ltd", "QUARCH" }, { 0x0050C2, 0xBB7000, 0xBB7FFF, "GD Mission Systems", "GD-MISSION" }, { 0x0050C2, 0xBB8000, 0xBB8FFF, "MoeTronix", "MOETRONIX" }, { 0x0050C2, 0xBB9000, 0xBB9FFF, "Toptech Systems, Inc.", "TOPTECH" }, { 0x0050C2, 0xBBA000, 0xBBAFFF, "Systemteq Limited", "SYSTEMTEQ" }, { 0x0050C2, 0xBBB000, 0xBBBFFF, "GHL Systems Berhad", "GHL-BERHAD" }, { 0x0050C2, 0xBBC000, 0xBBCFFF, "ImpactSystems", "IMPACTSYSTEMS" }, { 0x0050C2, 0xBBD000, 0xBBDFFF, "ITS Telecom", "ITS-TELECOM" }, { 0x0050C2, 0xBBE000, 0xBBEFFF, "Onlinepizza Norden AB", "ONLINEPIZZA-NORDEN-AB" }, { 0x0050C2, 0xBBF000, 0xBBFFFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0xBC0000, 0xBC0FFF, "Galaxia Electronics", "GALAXIA-ELECTRONICS" }, { 0x0050C2, 0xBC1000, 0xBC1FFF, "Sentec Ltd", "SENTEC" }, { 0x0050C2, 0xBC2000, 0xBC2FFF, "Xslent Energy Technologies. LLC", "XSLENT-ENERGY-TECHNOLOGIES" }, { 0x0050C2, 0xBC3000, 0xBC3FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0xBC4000, 0xBC4FFF, "Wheatstone Corporation", "WHEATSTONE" }, { 0x0050C2, 0xBC5000, 0xBC5FFF, "Toptechnology SRL", "TOPTECHNOLOGY-SRL" }, { 0x0050C2, 0xBC6000, 0xBC6FFF, "MireroTack", "MIREROTACK" }, { 0x0050C2, 0xBC7000, 0xBC7FFF, "PTS GmbH", "PTS" }, { 0x0050C2, 0xBC8000, 0xBC8FFF, "AGWTech Ltd", "AGWTECH" }, { 0x0050C2, 0xBC9000, 0xBC9FFF, "Nextmove Technologies", "NEXTMOVE-TECHNOLOGIES" }, { 0x0050C2, 0xBCA000, 0xBCAFFF, "Aitecsystem Co.,Ltd.", "AITECSYSTEM" }, { 0x0050C2, 0xBCB000, 0xBCBFFF, "ARTEIXO TELECOM", "ARTEIXO-TELECOM" }, { 0x0050C2, 0xBCC000, 0xBCCFFF, "VVDN TECHNOLOGIES PVT. LTD.", "VVDN-TECHNOLOGIES-PVT" }, { 0x0050C2, 0xBCD000, 0xBCDFFF, "Highlight Parking Systems Ltd", "HIGHLIGHT-PARKING" }, { 0x0050C2, 0xBCE000, 0xBCEFFF, "TV Portal Co., Ltd.", "TV-PORTAL" }, { 0x0050C2, 0xBCF000, 0xBCFFFF, "Epiko, elektronski sistemi d.o.o.", "EPIKO-ELEKTRONSKI-SISTEMI-D-O-O" }, { 0x0050C2, 0xBD0000, 0xBD0FFF, "EDC wifi", "EDC-WIFI" }, { 0x0050C2, 0xBD1000, 0xBD1FFF, "Ariem Technologies Pvt Ltd", "ARIEM-TECHNOLOGIES-PVT" }, { 0x0050C2, 0xBD2000, 0xBD2FFF, "Percello Ltd.", "PERCELLO" }, { 0x0050C2, 0xBD3000, 0xBD3FFF, "Postjet Systems Ltd", "POSTJET" }, { 0x0050C2, 0xBD4000, 0xBD4FFF, "Global Security Devices", "GLOBAL-SECURITY-DEVICES" }, { 0x0050C2, 0xBD5000, 0xBD5FFF, "RF-Embedded GmbH", "RF-EMBEDDED" }, { 0x0050C2, 0xBD6000, 0xBD6FFF, "BG Systems, Inc.", "BG" }, { 0x0050C2, 0xBD7000, 0xBD7FFF, "SLAT", "SLAT" }, { 0x0050C2, 0xBD8000, 0xBD8FFF, "b.a.b-technologie gmbh", "B-A-B-TECHNOLOGIE" }, { 0x0050C2, 0xBD9000, 0xBD9FFF, "AMS Controls, Inc.", "AMS-CONTROLS" }, { 0x0050C2, 0xBDA000, 0xBDAFFF, "Digital Lumens", "DIGITAL-LUMENS" }, { 0x0050C2, 0xBDB000, 0xBDBFFF, "GasTOPS Ltd.", "GASTOPS" }, { 0x0050C2, 0xBDC000, 0xBDCFFF, "SS Systems LLC", "SS" }, { 0x0050C2, 0xBDE000, 0xBDEFFF, "Evo-Teh d.o.o.", "EVO-TEH-D-O-O" }, { 0x0050C2, 0xBDF000, 0xBDFFFF, "Euro-Konsult Sp. z o.o.", "EURO-KONSULT-SP-Z-O-O" }, { 0x0050C2, 0xBE0000, 0xBE0FFF, "Phaedrus Limited", "PHAEDRUS" }, { 0x0050C2, 0xBE1000, 0xBE1FFF, "Tattile srl", "TATTILE-SRL" }, { 0x0050C2, 0xBE2000, 0xBE2FFF, "Convergent Bioscience Ltd.", "CONVERGENT-BIOSCIENCE" }, { 0x0050C2, 0xBE3000, 0xBE3FFF, "Jiskoot Ltd", "JISKOOT" }, { 0x0050C2, 0xBE4000, 0xBE4FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x0050C2, 0xBE5000, 0xBE5FFF, "RF Code", "RF-CODE" }, { 0x0050C2, 0xBE6000, 0xBE6FFF, "Docobo Ltd", "DOCOBO" }, { 0x0050C2, 0xBE7000, 0xBE7FFF, "Genetec Inc.", "GENETEC" }, { 0x0050C2, 0xBE8000, 0xBE8FFF, "VEHICLE TESTING EQUIPMENT, S.L.", "VEHICLE-TESTING-EQUIPMENT" }, { 0x0050C2, 0xBE9000, 0xBE9FFF, "ZUCCHETTI SPA", "ZUCCHETTI-SPA" }, { 0x0050C2, 0xBEA000, 0xBEAFFF, "Daeyoung inc.", "DAEYOUNG" }, { 0x0050C2, 0xBEB000, 0xBEBFFF, "Peek Traffic Corporation", "PEEK-TRAFFIC" }, { 0x0050C2, 0xBEC000, 0xBECFFF, "DRS Laruel Technologies", "DRS-LARUEL-TECHNOLOGIES" }, { 0x0050C2, 0xBED000, 0xBEDFFF, "Touch Revolution Inc.", "TOUCH-REVOLUTION" }, { 0x0050C2, 0xBEE000, 0xBEEFFF, "Private", "PRIVATE" }, { 0x0050C2, 0xBEF000, 0xBEFFFF, "SOCIEDAD IBERICA DE CONSTRUCCIONES ELECTRICAS, S.A. (SICE)", "SOCIEDAD-IBERICA-DE-CONSTRUCCIONES-ELECTRICAS-SICE" }, { 0x0050C2, 0xBF0000, 0xBF0FFF, "AIM", "AIM" }, { 0x0050C2, 0xBF1000, 0xBF1FFF, "Amatic Industries GmbH", "AMATIC-INDUSTRIES" }, { 0x0050C2, 0xBF2000, 0xBF2FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xBF3000, 0xBF3FFF, "Wanco Inc.", "WANCO" }, { 0x0050C2, 0xBF4000, 0xBF4FFF, "Monarch Innovative Technologies Pvt Ltd", "MONARCH-INNOVATIVE-TECHNOLOGIES-PVT" }, { 0x0050C2, 0xBF5000, 0xBF5FFF, "AILES ELECTRONICS CO., LTD.", "AILES-ELECTRONICS" }, { 0x0050C2, 0xBF6000, 0xBF6FFF, "NOLAM EMBEDDED SYSTEMS", "NOLAM-EMBEDDED" }, { 0x0050C2, 0xBF7000, 0xBF7FFF, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x0050C2, 0xBF8000, 0xBF8FFF, "Crtiical Link", "CRTIICAL-LINK" }, { 0x0050C2, 0xBF9000, 0xBF9FFF, "Vitel Net", "VITEL-NET" }, { 0x0050C2, 0xBFA000, 0xBFAFFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x0050C2, 0xBFB000, 0xBFBFFF, "ECS Srl", "ECS-SRL" }, { 0x0050C2, 0xBFC000, 0xBFCFFF, "Altronix Corporation", "ALTRONIX" }, { 0x0050C2, 0xBFD000, 0xBFDFFF, "Ernemann Cine Tec GmbH", "ERNEMANN-CINE-TEC" }, { 0x0050C2, 0xBFE000, 0xBFEFFF, "Ingeteam Paneles S.A.U.", "INGETEAM-PANELES-U" }, { 0x0050C2, 0xBFF000, 0xBFFFFF, "I.S.A. S.r.l.", "I" }, { 0x0050C2, 0xC00000, 0xC00FFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x0050C2, 0xC01000, 0xC01FFF, "QUERCUS TECHNOLOGIES, S.L.", "QUERCUS-TECHNOLOGIES" }, { 0x0050C2, 0xC02000, 0xC02FFF, "Hanning Elektro-Werke GmbH & Co. KG", "HANNING-ELEKTRO-WERKE" }, { 0x0050C2, 0xC03000, 0xC03FFF, "Volumatic Limited.", "VOLUMATIC" }, { 0x0050C2, 0xC04000, 0xC04FFF, "SoGEME", "SOGEME" }, { 0x0050C2, 0xC05000, 0xC05FFF, "Doppler Systems LLC", "DOPPLER" }, { 0x0050C2, 0xC06000, 0xC06FFF, "ANALOG WAY", "ANALOG-WAY" }, { 0x0050C2, 0xC07000, 0xC07FFF, "CIO Informatique Industrielle", "CIO-INFORMATIQUE-INDUSTRIELLE" }, { 0x0050C2, 0xC08000, 0xC08FFF, "juiceboss", "JUICEBOSS" }, { 0x0050C2, 0xC09000, 0xC09FFF, "Globe Wireless", "GLOBE-WIRELESS" }, { 0x0050C2, 0xC0A000, 0xC0AFFF, "ABB Transmission and Distribution Automation Equipment (Xiamen) Co., Ltd.", "ABB-TRANSMISSION-AND-DISTRIBUTION-AUTOMATION-EQUIPMENT-XIAMEN" }, { 0x0050C2, 0xC0B000, 0xC0BFFF, "ProSourcing GmbH", "PROSOURCING" }, { 0x0050C2, 0xC0C000, 0xC0CFFF, "Altierre", "ALTIERRE" }, { 0x0050C2, 0xC0D000, 0xC0DFFF, "Fr. SauterAG", "FR-SAUTERAG" }, { 0x0050C2, 0xC0E000, 0xC0EFFF, "AVItronic GmbH", "AVITRONIC" }, { 0x0050C2, 0xC0F000, 0xC0FFFF, "DYCEC, S.A.", "DYCEC" }, { 0x0050C2, 0xC10000, 0xC10FFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0xC11000, 0xC11FFF, "ART Antriebs- und Regeltechnik GmbH", "ART-ANTRIEBS-UND-REGELTECHNIK" }, { 0x0050C2, 0xC12000, 0xC12FFF, "OKI DENKI BOHSAI CO.,LTD.", "OKI-DENKI-BOHSAI" }, { 0x0050C2, 0xC13000, 0xC13FFF, "Dantec Dynamics A/S", "DANTEC-DYNAMICS-A/S" }, { 0x0050C2, 0xC14000, 0xC14FFF, "Spectronix Corporation", "SPECTRONIX" }, { 0x0050C2, 0xC15000, 0xC15FFF, "INO - Institut National d'Optique", "INO-INSTITUT-NATIONAL-D-OPTIQUE" }, { 0x0050C2, 0xC16000, 0xC16FFF, "OMICRON electronics GmbH", "OMICRON-ELECTRONICS" }, { 0x0050C2, 0xC17000, 0xC17FFF, "Axis-Shield PoC AS", "AXIS-SHIELD-POC-AS" }, { 0x0050C2, 0xC18000, 0xC18FFF, "Linuxstamp Designs, LLC", "LINUXSTAMP-DESIGNS" }, { 0x0050C2, 0xC19000, 0xC19FFF, "Ibercomp SA", "IBERCOMP" }, { 0x0050C2, 0xC1A000, 0xC1AFFF, "SAM Co., Ltd.", "SAM" }, { 0x0050C2, 0xC1B000, 0xC1BFFF, "Graesslin GmbH", "GRAESSLIN" }, { 0x0050C2, 0xC1C000, 0xC1CFFF, "Becton Dickinson", "BECTON-DICKINSON" }, { 0x0050C2, 0xC1D000, 0xC1DFFF, "Powerbase Energy Systems Inc.", "POWERBASE-ENERGY" }, { 0x0050C2, 0xC1E000, 0xC1EFFF, "Peperoni-Light", "PEPERONI-LIGHT" }, { 0x0050C2, 0xC1F000, 0xC1FFFF, "Specialist Electronics Services Ltd", "SPECIALIST-ELECTRONICS-SERVICES" }, { 0x0050C2, 0xC20000, 0xC20FFF, "SRC Computers, LLC", "SRC-COMPUTERS" }, { 0x0050C2, 0xC21000, 0xC21FFF, "Private", "PRIVATE" }, { 0x0050C2, 0xC22000, 0xC22FFF, "Audient Ltd", "AUDIENT" }, { 0x0050C2, 0xC23000, 0xC23FFF, "Vidicon LLC", "VIDICON" }, { 0x0050C2, 0xC24000, 0xC24FFF, "Qualnetics Corporation", "QUALNETICS" }, { 0x0050C2, 0xC25000, 0xC25FFF, "Private", "PRIVATE" }, { 0x0050C2, 0xC26000, 0xC26FFF, "Austco Marketing & Service (USA) ltd.", "AUSTCO-MARKETING-SERVICE-USA" }, { 0x0050C2, 0xC27000, 0xC27FFF, "Qtechnology A/S", "QTECHNOLOGY-A/S" }, { 0x0050C2, 0xC28000, 0xC28FFF, "ELREHA GmbH", "ELREHA" }, { 0x0050C2, 0xC29000, 0xC29FFF, "Newtel Engineering S.r.l.", "NEWTEL-ENGINEERING" }, { 0x0050C2, 0xC2A000, 0xC2AFFF, "RealTime Systems Ltd", "REALTIME" }, { 0x0050C2, 0xC2B000, 0xC2BFFF, "Z-App Systems, Inc.", "Z-APP" }, { 0x0050C2, 0xC2C000, 0xC2CFFF, "bach-messtechnik gmbh", "BACH-MESSTECHNIK" }, { 0x0050C2, 0xC2D000, 0xC2DFFF, "Digitale Analoge COMponenten West Electronic Vertriebs GmbH", "DIGITALE-ANALOGE-COMPONENTEN-WEST-VERTRIEBS" }, { 0x0050C2, 0xC2E000, 0xC2EFFF, "DISMUNTEL SAL", "DISMUNTEL-SAL" }, { 0x0050C2, 0xC2F000, 0xC2FFFF, "REFLEX CES", "REFLEX-CES" }, { 0x0050C2, 0xC30000, 0xC30FFF, "Wagner Group GmbH", "WAGNER-GROUP" }, { 0x0050C2, 0xC31000, 0xC31FFF, "4D Technology Corporation", "4D" }, { 0x0050C2, 0xC32000, 0xC32FFF, "Procon Electronics", "PROCON-ELECTRONICS" }, { 0x0050C2, 0xC34000, 0xC34FFF, "Kyuhen", "KYUHEN" }, { 0x0050C2, 0xC35000, 0xC35FFF, "Insitu, Inc", "INSITU" }, { 0x0050C2, 0xC36000, 0xC36FFF, "SET GmbH", "SET" }, { 0x0050C2, 0xC37000, 0xC37FFF, "B.E.A.R. Solutions (Australasia) Pty, Ltd", "B-E-A-R-SOLUTIONS-AUSTRALASIA-PTY" }, { 0x0050C2, 0xC38000, 0xC38FFF, "Computer Automation Technology Inc", "AUTOMATION" }, { 0x0050C2, 0xC39000, 0xC39FFF, "SECAD SA", "SECAD" }, { 0x0050C2, 0xC3A000, 0xC3AFFF, "Sicon srl", "SICON-SRL" }, { 0x0050C2, 0xC3B000, 0xC3BFFF, "ELEKTRO-AUTOMATIK GmbH & Co. KG", "ELEKTRO-AUTOMATIK" }, { 0x0050C2, 0xC3C000, 0xC3CFFF, "ELSIST S.r.l.", "ELSIST" }, { 0x0050C2, 0xC3D000, 0xC3DFFF, "PLA ELECTRO APPLIANCES PVT. LTD.", "PLA-ELECTRO-APPLIANCES-PVT" }, { 0x0050C2, 0xC3E000, 0xC3EFFF, "Sysacom", "SYSACOM" }, { 0x0050C2, 0xC3F000, 0xC3FFFF, "ANXeBusiness Corporation", "ANXEBUSINESS" }, { 0x0050C2, 0xC40000, 0xC40FFF, "BAE Systems Bofors AB", "BAE-BOFORS-AB" }, { 0x0050C2, 0xC41000, 0xC41FFF, "COMPRION GmbH", "COMPRION" }, { 0x0050C2, 0xC42000, 0xC42FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xC43000, 0xC43FFF, "Cammegh Limited", "CAMMEGH" }, { 0x0050C2, 0xC44000, 0xC44FFF, "Beijing Zhongherongzhi Elec.&Tech.Co.,Ltd.", "BEIJING-ZHONGHERONGZHI-ELEC-TECH" }, { 0x0050C2, 0xC45000, 0xC45FFF, "Galvamat & Unican Technologies SA", "GALVAMAT-UNICAN-TECHNOLOGIES" }, { 0x0050C2, 0xC46000, 0xC46FFF, "QNE GmbH & Co. KG", "QNE" }, { 0x0050C2, 0xC47000, 0xC47FFF, "Weltek Technologies Co. Ltd.", "WELTEK-TECHNOLOGIES" }, { 0x0050C2, 0xC48000, 0xC48FFF, "Cytek Media Systems, INC.", "CYTEK-MEDIA" }, { 0x0050C2, 0xC49000, 0xC49FFF, "Elektronic Thoma GmbH", "ELEKTRONIC-THOMA" }, { 0x0050C2, 0xC4A000, 0xC4AFFF, "Herrick Technology Laboratories, Inc.", "HERRICK-LABORATORIES" }, { 0x0050C2, 0xC4B000, 0xC4BFFF, "R.V.R. elettronica s.p.a.", "R-V-R-ELETTRONICA" }, { 0x0050C2, 0xC4C000, 0xC4CFFF, "Lancier Monitoring GmbH", "LANCIER-MONITORING" }, { 0x0050C2, 0xC4D000, 0xC4DFFF, "Industrial Automation Systems", "INDUSTRIAL-AUTOMATION" }, { 0x0050C2, 0xC4E000, 0xC4EFFF, "Elaso AG", "ELASO" }, { 0x0050C2, 0xC4F000, 0xC4FFFF, "Powersense A/S", "POWERSENSE-A/S" }, { 0x0050C2, 0xC50000, 0xC50FFF, "Beceem Communications, Inc.", "BECEEM-COMMUNICATION" }, { 0x0050C2, 0xC51000, 0xC51FFF, "InForce Computing, Inc.", "INFORCE-COMPUTING" }, { 0x0050C2, 0xC52000, 0xC52FFF, "Smartfield, Inc.", "SMARTFIELD" }, { 0x0050C2, 0xC53000, 0xC53FFF, "Eilersen Electric A/S", "EILERSEN-ELECTRIC-A/S" }, { 0x0050C2, 0xC54000, 0xC54FFF, "HPC Platform", "HPC-PLATFORM" }, { 0x0050C2, 0xC55000, 0xC55FFF, "Watterott electronic", "WATTEROTT" }, { 0x0050C2, 0xC56000, 0xC56FFF, "Spirent Communications", "SPIRENT-COMMUNICATION" }, { 0x0050C2, 0xC57000, 0xC57FFF, "High Speed Design, Inc.", "HIGH-SPEED-DESIGN" }, { 0x0050C2, 0xC58000, 0xC58FFF, "Foerster-Technik GmbH", "FOERSTER-TECHNIK" }, { 0x0050C2, 0xC59000, 0xC59FFF, "SKD System AB", "SKD-SYSTEM-AB" }, { 0x0050C2, 0xC5A000, 0xC5AFFF, "Commotive A/S", "COMMOTIVE-A/S" }, { 0x0050C2, 0xC5B000, 0xC5BFFF, "MICRO TECHNICA", "MICRO-TECHNICA" }, { 0x0050C2, 0xC5C000, 0xC5CFFF, "WAVECOM ELEKTRONIK AG", "WAVECOM-ELEKTRONIK" }, { 0x0050C2, 0xC5D000, 0xC5DFFF, "SweMet AB", "SWEMET-AB" }, { 0x0050C2, 0xC5E000, 0xC5EFFF, "CellPlus technologies, Inc.", "CELLPLUS-TECHNOLOGIES" }, { 0x0050C2, 0xC5F000, 0xC5FFFF, "Icon Time Systems", "ICON-TIME" }, { 0x0050C2, 0xC60000, 0xC60FFF, "Integration Technologies Limited", "INTEGRATION-TECHNOLOGIES" }, { 0x0050C2, 0xC61000, 0xC61FFF, "HaiVision Systems Incorporated", "HAIVISION-INCORPORATED" }, { 0x0050C2, 0xC62000, 0xC62FFF, "Zeus Systems Private Limited", "ZEUS-PRIVATE" }, { 0x0050C2, 0xC63000, 0xC63FFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x0050C2, 0xC64000, 0xC64FFF, "Pal Software Service Co.,Ltd.", "PAL-SOFTWARE-SERVICE" }, { 0x0050C2, 0xC65000, 0xC65FFF, "Micro I/O Servicos de Electronica, Lda", "MICRO-I/O-SERVICOS-DE-ELECTRONICA-LDA" }, { 0x0050C2, 0xC66000, 0xC66FFF, "KS Beschallungstechnik GmbH", "KS-BESCHALLUNGSTECHNIK" }, { 0x0050C2, 0xC67000, 0xC67FFF, "Practical Control Ltd", "PRACTICAL-CONTROL" }, { 0x0050C2, 0xC68000, 0xC68FFF, "Broadsoft PacketSmart, Inc.", "BROADSOFT-PACKETSMART" }, { 0x0050C2, 0xC69000, 0xC69FFF, "REBO CO.,LTD.", "REBO" }, { 0x0050C2, 0xC6A000, 0xC6AFFF, "ELECTRONICA KELD", "ELECTRONICA-KELD" }, { 0x0050C2, 0xC6B000, 0xC6BFFF, "SiGarden Sp z o.o.", "SIGARDEN-SP-Z-O-O" }, { 0x0050C2, 0xC6C000, 0xC6CFFF, "DORLET SAU", "DORLET-SAU" }, { 0x0050C2, 0xC6D000, 0xC6DFFF, "Deansoft CO., Ltd.", "DEANSOFT" }, { 0x0050C2, 0xC6E000, 0xC6EFFF, "TBS Holding AG", "TBS-HOLDING" }, { 0x0050C2, 0xC6F000, 0xC6FFFF, "MSB Elektronik und Geraetebau GmbH", "MSB-ELEKTRONIK-UND-GERAETEBAU" }, { 0x0050C2, 0xC70000, 0xC70FFF, "Wilke Technology GmbH", "WILKE" }, { 0x0050C2, 0xC71000, 0xC71FFF, "Sequoia Technology Group Ltd", "SEQUOIA-GROUP" }, { 0x0050C2, 0xC72000, 0xC72FFF, "Quail", "QUAIL" }, { 0x0050C2, 0xC73000, 0xC73FFF, "Industry Controls, Inc.", "INDUSTRY-CONTROLS" }, { 0x0050C2, 0xC74000, 0xC74FFF, "Wapice Ltd.", "WAPICE" }, { 0x0050C2, 0xC75000, 0xC75FFF, "Rovsing A/S", "ROVSING-A/S" }, { 0x0050C2, 0xC76000, 0xC76FFF, "GridManager A/S", "GRIDMANAGER-A/S" }, { 0x0050C2, 0xC77000, 0xC77FFF, "AIM Co.,Ltd", "AIM" }, { 0x0050C2, 0xC78000, 0xC78FFF, "9Solutions Oy", "9SOLUTIONS-OY" }, { 0x0050C2, 0xC79000, 0xC79FFF, "CODESYSTEM Co.,Ltd", "CODESYSTEM" }, { 0x0050C2, 0xC7A000, 0xC7AFFF, "Protonic Holland", "PROTONIC-HOLLAND" }, { 0x0050C2, 0xC7B000, 0xC7BFFF, "Honeywell", "HONEYWELL" }, { 0x0050C2, 0xC7C000, 0xC7CFFF, "Keysight Technologies Inc.", "KEYSIGHT-TECHNOLOGIES" }, { 0x0050C2, 0xC7D000, 0xC7DFFF, "TAE Antriebstechnik GmbH", "TAE-ANTRIEBSTECHNIK" }, { 0x0050C2, 0xC7E000, 0xC7EFFF, "Buerkert Werke GmbH", "BUERKERT-WERKE" }, { 0x0050C2, 0xC7F000, 0xC7FFFF, "Kinects Solutions Inc", "KINECTS-SOLUTIONS" }, { 0x0050C2, 0xC80000, 0xC80FFF, "Reko-vek", "REKO-VEK" }, { 0x0050C2, 0xC81000, 0xC81FFF, "Odyssee Systemes SAS", "ODYSSEE-SYSTEMES-SAS" }, { 0x0050C2, 0xC82000, 0xC82FFF, "Kyosha Industries", "KYOSHA-INDUSTRIES" }, { 0x0050C2, 0xC83000, 0xC83FFF, "Gronic Systems GmbH", "GRONIC" }, { 0x0050C2, 0xC84000, 0xC84FFF, "DOMIS", "DOMIS" }, { 0x0050C2, 0xC85000, 0xC85FFF, "Peek Traffic Corporation", "PEEK-TRAFFIC" }, { 0x0050C2, 0xC86000, 0xC86FFF, "Bruckner & Jarosch Ingenieurgesellschaft mbH", "BRUCKNER-JAROSCH-INGENIEURGESELLSCHAFT" }, { 0x0050C2, 0xC87000, 0xC87FFF, "LECO Corporation", "LECO" }, { 0x0050C2, 0xC88000, 0xC88FFF, "CSI Controles e Sistemas Industriais Ltda.", "CSI-CONTROLES-E-SISTEMAS-INDUSTRIAIS-LTDA" }, { 0x0050C2, 0xC89000, 0xC89FFF, "Creative Micro Design", "CREATIVE-MICRO-DESIGN" }, { 0x0050C2, 0xC8A000, 0xC8AFFF, "Automated Media Services, Inc.", "AUTOMATED-MEDIA-SERVICES" }, { 0x0050C2, 0xC8B000, 0xC8BFFF, "OCAS AS", "OCAS-AS" }, { 0x0050C2, 0xC8C000, 0xC8CFFF, "Lanmark Controls Inc.", "LANMARK-CONTROLS" }, { 0x0050C2, 0xC8D000, 0xC8DFFF, "Emergency Message Controls LLC", "EMERGENCY-MESSAGE-CONTROLS" }, { 0x0050C2, 0xC8E000, 0xC8EFFF, "SDD ITG", "SDD-ITG" }, { 0x0050C2, 0xC8F000, 0xC8FFFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0xC90000, 0xC90FFF, "RealD, Inc.", "REALD" }, { 0x0050C2, 0xC91000, 0xC91FFF, "Media Technologies Ltd.", "MEDIA-TECHNOLOGIES" }, { 0x0050C2, 0xC92000, 0xC92FFF, "EMAC, Inc.", "EMAC" }, { 0x0050C2, 0xC93000, 0xC93FFF, "SENSAIR Pty Ltd", "SENSAIR-PTY" }, { 0x0050C2, 0xC94000, 0xC94FFF, "ISIS ENGINEERING, S.A.", "ISIS-ENGINEERING" }, { 0x0050C2, 0xC95000, 0xC95FFF, "IPSES S.r.l.", "IPSES" }, { 0x0050C2, 0xC96000, 0xC96FFF, "CyberCraft", "CYBERCRAFT" }, { 0x0050C2, 0xC97000, 0xC97FFF, "MSTRONIC CO., LTD.", "MSTRONIC" }, { 0x0050C2, 0xC98000, 0xC98FFF, "Criticare Systems, Inc", "CRITICARE" }, { 0x0050C2, 0xC99000, 0xC99FFF, "HJPC Corporation dba Pactron", "HJPC-DBA-PACTRON" }, { 0x0050C2, 0xC9A000, 0xC9AFFF, "PACOMP Sp. z o.o.", "PACOMP-SP-Z-O-O" }, { 0x0050C2, 0xC9B000, 0xC9BFFF, "Sm electronic co.", "SM" }, { 0x0050C2, 0xC9C000, 0xC9CFFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xC9D000, 0xC9DFFF, "Radius Sweden AB", "RADIUS-SWEDEN-AB" }, { 0x0050C2, 0xC9E000, 0xC9EFFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x0050C2, 0xC9F000, 0xC9FFFF, "xxter b.v.", "XXTER-B-V" }, { 0x0050C2, 0xCA0000, 0xCA0FFF, "Kiefer technic GmbH", "KIEFER-TECHNIC" }, { 0x0050C2, 0xCA1000, 0xCA1FFF, "Wayne Kerr Electronics", "WAYNE-KERR-ELECTRONICS" }, { 0x0050C2, 0xCA2000, 0xCA2FFF, "The Logical Company", "THE-LOGICAL-COMPANY" }, { 0x0050C2, 0xCA3000, 0xCA3FFF, "CT Company", "CT-COMPANY" }, { 0x0050C2, 0xCA4000, 0xCA4FFF, "Vox Technologies", "VOX-TECHNOLOGIES" }, { 0x0050C2, 0xCA5000, 0xCA5FFF, "YOKOWO CO.,LTD", "YOKOWO" }, { 0x0050C2, 0xCA6000, 0xCA6FFF, "Vidisys GmbH", "VIDISYS" }, { 0x0050C2, 0xCA7000, 0xCA7FFF, "Thermo Fisher Scientific", "THERMO-FISHER-SCIENTIFIC" }, { 0x0050C2, 0xCA8000, 0xCA8FFF, "Systems With Intelligence Inc.", "WITH-INTELLIGENCE" }, { 0x0050C2, 0xCA9000, 0xCA9FFF, "Intelligent Devices", "INTELLIGENT-DEVICES" }, { 0x0050C2, 0xCAA000, 0xCAAFFF, "DSP DESIGN LTD", "DSP-DESIGN" }, { 0x0050C2, 0xCAB000, 0xCABFFF, "SAE IT-systems GmbH & Co. KG", "SAE-IT" }, { 0x0050C2, 0xCAC000, 0xCACFFF, "PURVIS Systems Incorporated", "PURVIS-INCORPORATED" }, { 0x0050C2, 0xCAD000, 0xCADFFF, "Pacific Coast Engineering", "PACIFIC-COAST-ENGINEERING" }, { 0x0050C2, 0xCAE000, 0xCAEFFF, "Campbell Scientific Canada Corp.", "CAMPBELL-SCIENTIFIC-CANADA" }, { 0x0050C2, 0xCAF000, 0xCAFFFF, "Fr. Sauter AG", "FR-SAUTER" }, { 0x0050C2, 0xCB0000, 0xCB0FFF, "Konsmetal S.A.", "KONSMETAL" }, { 0x0050C2, 0xCB1000, 0xCB1FFF, "ZK Celltest Inc", "ZK-CELLTEST" }, { 0x0050C2, 0xCB2000, 0xCB2FFF, "Moravian Instruments", "MORAVIAN-INSTRUMENTS" }, { 0x0050C2, 0xCB3000, 0xCB3FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x0050C2, 0xCB4000, 0xCB4FFF, "GEA Farm Technologies GmbH", "GEA-FARM-TECHNOLOGIES" }, { 0x0050C2, 0xCB5000, 0xCB5FFF, "Private", "PRIVATE" }, { 0x0050C2, 0xCB6000, 0xCB6FFF, "Krontek Pty Ltd", "KRONTEK-PTY" }, { 0x0050C2, 0xCB7000, 0xCB7FFF, "inotech GmbH", "INOTECH" }, { 0x0050C2, 0xCB8000, 0xCB8FFF, "Raith GmbH", "RAITH" }, { 0x0050C2, 0xCB9000, 0xCB9FFF, "Micro Technic A/S", "MICRO-TECHNIC-A/S" }, { 0x0050C2, 0xCBA000, 0xCBAFFF, "DELTA TAU DATA SYSTEMS, INC.", "DELTA-TAU-DATA" }, { 0x0050C2, 0xCBB000, 0xCBBFFF, "Coptonix GmbH", "COPTONIX" }, { 0x0050C2, 0xCBC000, 0xCBCFFF, "CP ELETRONICA SA", "CP-ELETRONICA" }, { 0x0050C2, 0xCBD000, 0xCBDFFF, "Hi Tech Electronics Ltd", "HI-TECH-ELECTRONICS" }, { 0x0050C2, 0xCBE000, 0xCBEFFF, "CODE BLUE CORPORATION", "CODE-BLUE" }, { 0x0050C2, 0xCBF000, 0xCBFFFF, "Megacon AB", "MEGACON-AB" }, { 0x0050C2, 0xCC0000, 0xCC0FFF, "World Time Solutions Limited", "WORLD-TIME-SOLUTIONS" }, { 0x0050C2, 0xCC1000, 0xCC1FFF, "Level 3 Communications", "LEVEL-3-COMMUNICATION" }, { 0x0050C2, 0xCC2000, 0xCC2FFF, "ConectaIP Tecnologia S.L.", "CONECTAIP-TECNOLOGIA" }, { 0x0050C2, 0xCC3000, 0xCC3FFF, "viscount systems inc.", "VISCOUNT" }, { 0x0050C2, 0xCC4000, 0xCC4FFF, "GD Mission Systems", "GD-MISSION" }, { 0x0050C2, 0xCC5000, 0xCC5FFF, "Tecnovum AG", "TECNOVUM" }, { 0x0050C2, 0xCC6000, 0xCC6FFF, "KDT", "KDT" }, { 0x0050C2, 0xCC7000, 0xCC7FFF, "TOPROOTTechnology Corp. Ltd.", "TOPROOTTECHNOLOGY" }, { 0x0050C2, 0xCC8000, 0xCC8FFF, "Private", "PRIVATE" }, { 0x0050C2, 0xCC9000, 0xCC9FFF, "Promess GmbH", "PROMESS" }, { 0x0050C2, 0xCCA000, 0xCCAFFF, "SANMINA SHENZHEN", "SANMINA-SHENZHEN" }, { 0x0050C2, 0xCCB000, 0xCCBFFF, "CaptiveAire Systems Inc.", "CAPTIVEAIRE" }, { 0x0050C2, 0xCCC000, 0xCCCFFF, "Smartech-technology", "SMARTECH" }, { 0x0050C2, 0xCCD000, 0xCCDFFF, "FUJI DATA SYSTEM Co.,Ltd.", "FUJI-DATA-SYSTEM" }, { 0x0050C2, 0xCCE000, 0xCCEFFF, "Mac-Gray Corporation", "MAC-GRAY" }, { 0x0050C2, 0xCCF000, 0xCCFFFF, "TASK SISTEMAS DE COMPUTACAO LTDA", "TASK-SISTEMAS-DE-COMPUTACAO-LTDA" }, { 0x0050C2, 0xCD0000, 0xCD0FFF, "MME Mueller Mikroelektronik", "MME-MUELLER-MIKROELEKTRONIK" }, { 0x0050C2, 0xCD1000, 0xCD1FFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x0050C2, 0xCD2000, 0xCD2FFF, "SIM2 Multimedia S.p.A.", "SIM2-MULTIMEDIA" }, { 0x0050C2, 0xCD3000, 0xCD3FFF, "Covidence A/S", "COVIDENCE-A/S" }, { 0x0050C2, 0xCD4000, 0xCD4FFF, "SCHRAML GmbH", "SCHRAML" }, { 0x0050C2, 0xCD5000, 0xCD5FFF, "Arcos Technologies Ltd.", "ARCOS-TECHNOLOGIES" }, { 0x0050C2, 0xCD6000, 0xCD6FFF, "Arktan Systems", "ARKTAN" }, { 0x0050C2, 0xCD7000, 0xCD7FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xCD8000, 0xCD8FFF, "IT-IS International Ltd.", "IT-IS" }, { 0x0050C2, 0xCD9000, 0xCD9FFF, "NDC Infrared Engineering, Inc.", "NDC-INFRARED-ENGINEERING" }, { 0x0050C2, 0xCDA000, 0xCDAFFF, "taskit GmbH", "TASKIT" }, { 0x0050C2, 0xCDB000, 0xCDBFFF, "RUTTER INC", "RUTTER" }, { 0x0050C2, 0xCDC000, 0xCDCFFF, "ABB Transmission and Distribution Automation Equipment (Xiamen) Co., Ltd.", "ABB-TRANSMISSION-AND-DISTRIBUTION-AUTOMATION-EQUIPMENT-XIAMEN" }, { 0x0050C2, 0xCDD000, 0xCDDFFF, "K.C.C. SHOKAI LIMITED", "K-C-C-SHOKAI" }, { 0x0050C2, 0xCDE000, 0xCDEFFF, "Axotec Technologies GmbH", "AXOTEC-TECHNOLOGIES" }, { 0x0050C2, 0xCDF000, 0xCDFFFF, "CoreEL TEchnologies (I) Pvt Ltd", "COREEL-TECHNOLOGIES-I-PVT" }, { 0x0050C2, 0xCE0000, 0xCE0FFF, "Industrial Control Links, Inc.", "INDUSTRIAL-CONTROL-LINKS" }, { 0x0050C2, 0xCE1000, 0xCE1FFF, "Satellink Inc.", "SATELLINK" }, { 0x0050C2, 0xCE2000, 0xCE2FFF, "Sicon srl", "SICON-SRL" }, { 0x0050C2, 0xCE3000, 0xCE3FFF, "Industrial Automatics Design Bureau", "INDUSTRIAL-AUTOMATICS-DESIGN-BUREAU" }, { 0x0050C2, 0xCE4000, 0xCE4FFF, "TEKTRONIK", "TEKTRONIK" }, { 0x0050C2, 0xCE5000, 0xCE5FFF, "Maretron, LLP", "MARETRON-LLP" }, { 0x0050C2, 0xCE6000, 0xCE6FFF, "APLICA TECHNOLOGIES", "APLICA-TECHNOLOGIES" }, { 0x0050C2, 0xCE7000, 0xCE7FFF, "Echola Systems", "ECHOLA" }, { 0x0050C2, 0xCE8000, 0xCE8FFF, "Thomas & Betts", "THOMAS-BETTS" }, { 0x0050C2, 0xCE9000, 0xCE9FFF, "Private", "PRIVATE" }, { 0x0050C2, 0xCEA000, 0xCEAFFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0xCEB000, 0xCEBFFF, "Toyon Research Corporation", "TOYON-RESEARCH" }, { 0x0050C2, 0xCEC000, 0xCECFFF, "Erhardt+Leimer GmbH", "ERHARDT+LEIMER" }, { 0x0050C2, 0xCED000, 0xCEDFFF, "AeroMechanical Services Ltd, FLYHT", "AEROMECHANICAL-SERVICES-FLYHT" }, { 0x0050C2, 0xCEE000, 0xCEEFFF, "EMBED-IT OG", "EMBED-IT-OG" }, { 0x0050C2, 0xCEF000, 0xCEFFFF, "Lupatecnologia e Sistemas Ltda", "LUPATECNOLOGIA-E-SISTEMAS-LTDA" }, { 0x0050C2, 0xCF0000, 0xCF0FFF, "Inviso B.V.", "INVISO-B-V" }, { 0x0050C2, 0xCF1000, 0xCF1FFF, "TelGaAs, Inc.", "TELGAAS" }, { 0x0050C2, 0xCF2000, 0xCF2FFF, "Weiss Robotics GmbH & Co. KG", "WEISS-ROBOTICS" }, { 0x0050C2, 0xCF3000, 0xCF3FFF, "Daiken Automacao Ltda", "DAIKEN-AUTOMACAO-LTDA" }, { 0x0050C2, 0xCF4000, 0xCF4FFF, "Baudisch Electronic GmbH", "BAUDISCH" }, { 0x0050C2, 0xCF5000, 0xCF5FFF, "Gogo BA", "GOGO-BA" }, { 0x0050C2, 0xCF6000, 0xCF6FFF, "Epec Oy", "EPEC-OY" }, { 0x0050C2, 0xCF7000, 0xCF7FFF, "Armour Home Electronics LTD", "ARMOUR-HOME-ELECTRONICS" }, { 0x0050C2, 0xCF8000, 0xCF8FFF, "beks Kommunikacios Technika kft", "BEKS-KOMMUNIKACIOS-TECHNIKA-KFT" }, { 0x0050C2, 0xCF9000, 0xCF9FFF, "Elbit Systems of America", "ELBIT-OF-AMERICA" }, { 0x0050C2, 0xCFA000, 0xCFAFFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x0050C2, 0xCFB000, 0xCFBFFF, "New Embedded Technology", "NEW-EMBEDDED" }, { 0x0050C2, 0xCFC000, 0xCFCFFF, "Tritium Pty Ltd", "TRITIUM-PTY" }, { 0x0050C2, 0xCFD000, 0xCFDFFF, "AIRFOLC,INC.", "AIRFOLC" }, { 0x0050C2, 0xCFE000, 0xCFEFFF, "Techleader", "TECHLEADER" }, { 0x0050C2, 0xCFF000, 0xCFFFFF, "Infrasafe, Inc.", "INFRASAFE" }, { 0x0050C2, 0xD00000, 0xD00FFF, "Bodensee Gravitymeter Geosystem GmbH", "BODENSEE-GRAVITYMETER-GEOSYSTEM" }, { 0x0050C2, 0xD01000, 0xD01FFF, "Aanderaa Data Instruments", "AANDERAA-DATA-INSTRUMENTS" }, { 0x0050C2, 0xD02000, 0xD02FFF, "SURVALENT TECHNOLOGY CORP", "SURVALENT" }, { 0x0050C2, 0xD03000, 0xD03FFF, "Peekel Instruments B.V.", "PEEKEL-INSTRUMENTS-B-V" }, { 0x0050C2, 0xD04000, 0xD04FFF, "Tehama Wireless", "TEHAMA-WIRELESS" }, { 0x0050C2, 0xD06000, 0xD06FFF, "nCk Research LLC", "NCK-RESEARCH" }, { 0x0050C2, 0xD07000, 0xD07FFF, "IAF GmbH", "IAF" }, { 0x0050C2, 0xD08000, 0xD08FFF, "Reimesch Kommunikationssysteme GmbH", "REIMESCH-KOMMUNIKATIONSSYSTEME" }, { 0x0050C2, 0xD09000, 0xD09FFF, "Guardtec,Inc", "GUARDTEC" }, { 0x0050C2, 0xD0A000, 0xD0AFFF, "Airpoint Co., Ltd.", "AIRPOINT" }, { 0x0050C2, 0xD0B000, 0xD0BFFF, "CODACO ELECTRONIC s.r.o.", "CODACO-S-R-O" }, { 0x0050C2, 0xD0C000, 0xD0CFFF, "JVL Industri Elektronik", "JVL-INDUSTRI-ELEKTRONIK" }, { 0x0050C2, 0xD0D000, 0xD0DFFF, "DECA Card Engineering GmbH", "DECA-CARD-ENGINEERING" }, { 0x0050C2, 0xD0E000, 0xD0EFFF, "Weinert Engineering GmbH", "WEINERT-ENGINEERING" }, { 0x0050C2, 0xD0F000, 0xD0FFFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xD10000, 0xD10FFF, "Rosslare Enterprises Ltd.", "ROSSLARE-ENTERPRISES" }, { 0x0050C2, 0xD11000, 0xD11FFF, "Aplex Technology Inc.", "APLEX" }, { 0x0050C2, 0xD12000, 0xD12FFF, "Tokyo Weld Co.,Ltd.", "TOKYO-WELD" }, { 0x0050C2, 0xD13000, 0xD13FFF, "GUNMA ELECTRONICS CO LTD", "GUNMA-ELECTRONICS" }, { 0x0050C2, 0xD14000, 0xD14FFF, "SAET I.S.", "SAET-I-S" }, { 0x0050C2, 0xD15000, 0xD15FFF, "MSR-Office GmbH", "MSR-OFFICE" }, { 0x0050C2, 0xD16000, 0xD16FFF, "Imricor Medical Systems, Inc.", "IMRICOR-MEDICAL" }, { 0x0050C2, 0xD17000, 0xD17FFF, "CUE, a.s.", "CUE" }, { 0x0050C2, 0xD18000, 0xD18FFF, "Glyn GmbH & Co.KG", "GLYN" }, { 0x0050C2, 0xD19000, 0xD19FFF, "Applied Medical Technologies, Inc DBA AirClean Systems", "APPLIED-MEDICAL-TECHNOLOGIES-DBA-AIRCLEAN" }, { 0x0050C2, 0xD1A000, 0xD1AFFF, "GILLAM-FEI S.A.", "GILLAM-FEI" }, { 0x0050C2, 0xD1B000, 0xD1BFFF, "TECHKON GmbH", "TECHKON" }, { 0x0050C2, 0xD1C000, 0xD1CFFF, "Recon Dynamics, LLC", "RECON-DYNAMICS" }, { 0x0050C2, 0xD1D000, 0xD1DFFF, "Moco Media Pty Ltd", "MOCO-MEDIA-PTY" }, { 0x0050C2, 0xD1E000, 0xD1EFFF, "Tobila Systems, Inc.", "TOBILA" }, { 0x0050C2, 0xD1F000, 0xD1FFFF, "Olympus NDT Canada", "OLYMPUS-NDT-CANADA" }, { 0x0050C2, 0xD20000, 0xD20FFF, "7+ Kft", "7+-KFT" }, { 0x0050C2, 0xD21000, 0xD21FFF, "Innovative Circuit Technology", "INNOVATIVE-CIRCUIT" }, { 0x0050C2, 0xD22000, 0xD22FFF, "eMDee Technology, Inc.", "EMDEE" }, { 0x0050C2, 0xD23000, 0xD23FFF, "Bluestone Technology GmbH", "BLUESTONE" }, { 0x0050C2, 0xD24000, 0xD24FFF, "Expro North Sea", "EXPRO-NORTH-SEA" }, { 0x0050C2, 0xD25000, 0xD25FFF, "VAF Instruments BV", "VAF-INSTRUMENTS" }, { 0x0050C2, 0xD26000, 0xD26FFF, "RCH GROUP", "RCH-GROUP" }, { 0x0050C2, 0xD27000, 0xD27FFF, "Fr.Sauter AG", "FR-SAUTER" }, { 0x0050C2, 0xD28000, 0xD28FFF, "Digitale Analoge COMponenten West Electronic Vertriebs GmbH", "DIGITALE-ANALOGE-COMPONENTEN-WEST-VERTRIEBS" }, { 0x0050C2, 0xD29000, 0xD29FFF, "Axible Technologies", "AXIBLE-TECHNOLOGIES" }, { 0x0050C2, 0xD2A000, 0xD2AFFF, "Millennium Electronics Pty.Ltd.", "MILLENNIUM-ELECTRONICS-PTY" }, { 0x0050C2, 0xD2B000, 0xD2BFFF, "Video Tech Laboratories, Inc.", "VIDEO-TECH-LABORATORIES" }, { 0x0050C2, 0xD2C000, 0xD2CFFF, "Schneider Electric Motion USA", "SCHNEIDER-ELECTRIC-MOTION-USA" }, { 0x0050C2, 0xD2D000, 0xD2DFFF, "Cadi Scientific Pte Ltd", "CADI-SCIENTIFIC-PTE" }, { 0x0050C2, 0xD2E000, 0xD2EFFF, "RS Gesellschaft fur Informationstechnik mbH & Co KG", "RS-GESELLSCHAFT-FUR-INFORMATIONSTECHNIK" }, { 0x0050C2, 0xD2F000, 0xD2FFFF, "Key Systems, Inc.", "KEY" }, { 0x0050C2, 0xD30000, 0xD30FFF, "ACTIV Financial Systems, Inc.", "ACTIV-FINANCIAL" }, { 0x0050C2, 0xD31000, 0xD31FFF, "UNGAVA Technologies Inc.", "UNGAVA-TECHNOLOGIES" }, { 0x0050C2, 0xD32000, 0xD32FFF, "RealTime Systems Ltd", "REALTIME" }, { 0x0050C2, 0xD33000, 0xD33FFF, "Maddalena S.p.A", "MADDALENA" }, { 0x0050C2, 0xD34000, 0xD34FFF, "GAON TECH corp.", "GAON-TECH" }, { 0x0050C2, 0xD35000, 0xD35FFF, "UG Systems GmbH & Co. KG", "UG" }, { 0x0050C2, 0xD36000, 0xD36FFF, "Enatel Limited", "ENATEL" }, { 0x0050C2, 0xD37000, 0xD37FFF, "LJT & Associates, Inc.", "LJT-ASSOCIATES" }, { 0x0050C2, 0xD38000, 0xD38FFF, "Kyowa Electronics Co.,Ltd.", "KYOWA-ELECTRONICS" }, { 0x0050C2, 0xD39000, 0xD39FFF, "Apex NV", "APEX-NV" }, { 0x0050C2, 0xD3A000, 0xD3AFFF, "WellSense Technologies", "WELLSENSE-TECHNOLOGIES" }, { 0x0050C2, 0xD3B000, 0xD3BFFF, "Gitsn Inc.", "GITSN" }, { 0x0050C2, 0xD3C000, 0xD3CFFF, "ASSYSTEM France", "ASSYSTEM-FRANCE" }, { 0x0050C2, 0xD3D000, 0xD3DFFF, "Tellabs Operations Inc.", "TELLABS-OPERATIONS" }, { 0x0050C2, 0xD3E000, 0xD3EFFF, "Synatec Electronic GmbH", "SYNATEC" }, { 0x0050C2, 0xD3F000, 0xD3FFFF, "Communication Systems Solutions", "COMMUNICATION-SOLUTIONS" }, { 0x0050C2, 0xD40000, 0xD40FFF, "demmel products", "DEMMEL-PRODUCTS" }, { 0x0050C2, 0xD41000, 0xD41FFF, "AREA ENERGY, INC.", "AREA-ENERGY" }, { 0x0050C2, 0xD42000, 0xD42FFF, "Hagenuk KMT GmbH", "HAGENUK-KMT" }, { 0x0050C2, 0xD43000, 0xD43FFF, "DSP4YOU LTd", "DSP4YOU" }, { 0x0050C2, 0xD44000, 0xD44FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xD45000, 0xD45FFF, "Technagon GmbH", "TECHNAGON" }, { 0x0050C2, 0xD46000, 0xD46FFF, "Thales Nederland BV", "THALES-NEDERLAND" }, { 0x0050C2, 0xD47000, 0xD47FFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x0050C2, 0xD48000, 0xD48FFF, "Watermark Estate Management Services, LLC", "WATERMARK-ESTATE-MANAGEMENT-SERVICES" }, { 0x0050C2, 0xD49000, 0xD49FFF, "Smith Meter, Inc", "SMITH-METER" }, { 0x0050C2, 0xD4A000, 0xD4AFFF, "ATH system", "ATH-SYSTEM" }, { 0x0050C2, 0xD4B000, 0xD4BFFF, "Indra Australia", "INDRA-AUSTRALIA" }, { 0x0050C2, 0xD4C000, 0xD4CFFF, "DALOG Diagnosesysteme GmbH", "DALOG-DIAGNOSESYSTEME" }, { 0x0050C2, 0xD4D000, 0xD4DFFF, "Yardney Technical Products Inc.", "YARDNEY-TECHNICAL-PRODUCTS" }, { 0x0050C2, 0xD4E000, 0xD4EFFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0xD4F000, 0xD4FFFF, "SECOM GmbH", "SECOM" }, { 0x0050C2, 0xD50000, 0xD50FFF, "Solbrig Electronics, Inc.", "SOLBRIG-ELECTRONICS" }, { 0x0050C2, 0xD51000, 0xD51FFF, "BETTINI SRL", "BETTINI-SRL" }, { 0x0050C2, 0xD52000, 0xD52FFF, "F+D Feinwerk- und Drucktechnik GmbH", "F+D-FEINWERK-UND-DRUCKTECHNIK" }, { 0x0050C2, 0xD53000, 0xD53FFF, "Telemerkki Oy", "TELEMERKKI-OY" }, { 0x0050C2, 0xD54000, 0xD54FFF, "ABtrack s.r.l.", "ABTRACK" }, { 0x0050C2, 0xD55000, 0xD55FFF, "Sterna Security", "STERNA-SECURITY" }, { 0x0050C2, 0xD56000, 0xD56FFF, "SELEX Communications Limited", "SELEX-COMMUNICATION" }, { 0x0050C2, 0xD57000, 0xD57FFF, "Hijikata Denki Corp.", "HIJIKATA-DENKI" }, { 0x0050C2, 0xD58000, 0xD58FFF, "NIK-ELEKTRONIKA Ltd", "NIK-ELEKTRONIKA" }, { 0x0050C2, 0xD59000, 0xD59FFF, "BUANCO SYSTEM A/S", "BUANCO-SYSTEM-A/S" }, { 0x0050C2, 0xD5A000, 0xD5AFFF, "Embedded Monitoring Systems Ltd.", "EMBEDDED-MONITORING" }, { 0x0050C2, 0xD5B000, 0xD5BFFF, "Infinition Inc.", "INFINITION" }, { 0x0050C2, 0xD5C000, 0xD5CFFF, "Ibetor S.L.", "IBETOR" }, { 0x0050C2, 0xD5D000, 0xD5DFFF, "GLOBALCOM ENGINEERING SRL", "GLOBALCOM-ENGINEERING-SRL" }, { 0x0050C2, 0xD5E000, 0xD5EFFF, "PRIVATECH Inc.", "PRIVATECH" }, { 0x0050C2, 0xD5F000, 0xD5FFFF, "Embedded Solution Bank Co., Ltd.", "EMBEDDED-SOLUTION-BANK" }, { 0x0050C2, 0xD60000, 0xD60FFF, "Nihon Kessho Koogaku Co., Ltd.", "NIHON-KESSHO-KOOGAKU" }, { 0x0050C2, 0xD61000, 0xD61FFF, "system2 GmbH", "SYSTEM2" }, { 0x0050C2, 0xD62000, 0xD62FFF, "EMAC, Inc.", "EMAC" }, { 0x0050C2, 0xD63000, 0xD63FFF, "DATAREGIS S.A.", "DATAREGIS" }, { 0x0050C2, 0xD64000, 0xD64FFF, "TV1 GmbH", "TV1" }, { 0x0050C2, 0xD65000, 0xD65FFF, "TX Technology Corp", "TX" }, { 0x0050C2, 0xD66000, 0xD66FFF, "Uvax Concepts", "UVAX-CONCEPTS" }, { 0x0050C2, 0xD67000, 0xD67FFF, "KLING & FREITAG GmbH", "KLING-FREITAG" }, { 0x0050C2, 0xD68000, 0xD68FFF, "HiSpeed Data, Inc.", "HISPEED-DATA" }, { 0x0050C2, 0xD69000, 0xD69FFF, "GHL Systems Bhd", "GHL" }, { 0x0050C2, 0xD6A000, 0xD6AFFF, "A&T Corporation, Electrics Group , LAS R&D Unit,", "A-T-ELECTRICS-GROUP-LAS-R-D-UNIT" }, { 0x0050C2, 0xD6B000, 0xD6BFFF, "Nemec Automation", "NEMEC-AUTOMATION" }, { 0x0050C2, 0xD6C000, 0xD6CFFF, "ALPHA Corporation", "ALPHA" }, { 0x0050C2, 0xD6D000, 0xD6DFFF, "Pro-Digital Industria Eletronica", "PRO-DIGITAL-INDUSTRIA-ELETRONICA" }, { 0x0050C2, 0xD6E000, 0xD6EFFF, "BC Illumination, Inc.", "BC-ILLUMINATION" }, { 0x0050C2, 0xD6F000, 0xD6FFFF, "Imtron Messtechnik GmbH", "IMTRON-MESSTECHNIK" }, { 0x0050C2, 0xD70000, 0xD70FFF, "C. Rob. Hammerstein GmbH & Co. KG", "C-ROB-HAMMERSTEIN" }, { 0x0050C2, 0xD71000, 0xD71FFF, "EMAC, Inc.", "EMAC" }, { 0x0050C2, 0xD72000, 0xD72FFF, "Scale-Tron, Inc.", "SCALE-TRON" }, { 0x0050C2, 0xD73000, 0xD73FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xD74000, 0xD74FFF, "Computech International", "COMPUTECH" }, { 0x0050C2, 0xD75000, 0xD75FFF, "Collectric AB", "COLLECTRIC-AB" }, { 0x0050C2, 0xD76000, 0xD76FFF, "Telvent", "TELVENT" }, { 0x0050C2, 0xD77000, 0xD77FFF, "Fr.SauterAG", "FR-SAUTERAG" }, { 0x0050C2, 0xD78000, 0xD78FFF, "P4Q Electronics", "P4Q-ELECTRONICS" }, { 0x0050C2, 0xD79000, 0xD79FFF, "DSI RF Systems, Inc.", "DSI-RF" }, { 0x0050C2, 0xD7A000, 0xD7AFFF, "Transbit Sp. z o.o.", "TRANSBIT-SP-Z-O-O" }, { 0x0050C2, 0xD7B000, 0xD7BFFF, "OWITA GmbH", "OWITA" }, { 0x0050C2, 0xD7C000, 0xD7CFFF, "Microcubs Systems Pvt Ltd", "MICROCUBS-PVT" }, { 0x0050C2, 0xD7D000, 0xD7DFFF, "Voltech Instruments", "VOLTECH-INSTRUMENTS" }, { 0x0050C2, 0xD7E000, 0xD7EFFF, "LYNX Technik AG", "LYNX-TECHNIK" }, { 0x0050C2, 0xD7F000, 0xD7FFFF, "HMI Technologies", "HMI-TECHNOLOGIES" }, { 0x0050C2, 0xD80000, 0xD80FFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0xD81000, 0xD81FFF, "Tattile srl", "TATTILE-SRL" }, { 0x0050C2, 0xD82000, 0xD82FFF, "Audio Authority Corp", "AUDIO-AUTHORITY" }, { 0x0050C2, 0xD83000, 0xD83FFF, "Blankom", "BLANKOM" }, { 0x0050C2, 0xD84000, 0xD84FFF, "ABB Transmission and Distribution Automation Equipment (Xiamen) Co., Ltd.", "ABB-TRANSMISSION-AND-DISTRIBUTION-AUTOMATION-EQUIPMENT-XIAMEN" }, { 0x0050C2, 0xD85000, 0xD85FFF, "VITEC", "VITEC" }, { 0x0050C2, 0xD86000, 0xD86FFF, "ECOMM ERA", "ECOMM-ERA" }, { 0x0050C2, 0xD87000, 0xD87FFF, "Electrolight Shivuk (1994) Ltd.", "ELECTROLIGHT-SHIVUK-1994" }, { 0x0050C2, 0xD88000, 0xD88FFF, "T+A elektroakustik GmbH & Co.KG", "T+A-ELEKTROAKUSTIK" }, { 0x0050C2, 0xD89000, 0xD89FFF, "Visual Telecommunication Network, Inc", "VISUAL-TELECOMMUNICATION-NETWORK" }, { 0x0050C2, 0xD8A000, 0xD8AFFF, "OptoLink Industria e Comercio Ltda", "OPTOLINK-INDUSTRIA-E-COMERCIO-LTDA" }, { 0x0050C2, 0xD8B000, 0xD8BFFF, "Sicon srl", "SICON-SRL" }, { 0x0050C2, 0xD8C000, 0xD8CFFF, "iRphotonics", "IRPHOTONICS" }, { 0x0050C2, 0xD8D000, 0xD8DFFF, "CS-Instruments", "CS-INSTRUMENTS" }, { 0x0050C2, 0xD8E000, 0xD8EFFF, "LSD Science&Technology Co.,Ltd.", "LSD-SCIENCE" }, { 0x0050C2, 0xD8F000, 0xD8FFFF, "Syes srl", "SYES-SRL" }, { 0x0050C2, 0xD90000, 0xD90FFF, "Dumps Electronic", "DUMPS" }, { 0x0050C2, 0xD91000, 0xD91FFF, "CHAUVIN ARNOUX", "CHAUVIN-ARNOUX" }, { 0x0050C2, 0xD92000, 0xD92FFF, "Manz", "MANZ" }, { 0x0050C2, 0xD93000, 0xD93FFF, "Axlon AB", "AXLON-AB" }, { 0x0050C2, 0xD94000, 0xD94FFF, "Software Effect Enterprises, Inc", "SOFTWARE-EFFECT-ENTERPRISES" }, { 0x0050C2, 0xD95000, 0xD95FFF, "Honeywell", "HONEYWELL" }, { 0x0050C2, 0xD96000, 0xD96FFF, "CONTEC GmbH", "CONTEC" }, { 0x0050C2, 0xD97000, 0xD97FFF, "ERS electronic GmbH", "ERS" }, { 0x0050C2, 0xD98000, 0xD98FFF, "Rong Shun Xuan Corp.", "RONG-SHUN-XUAN" }, { 0x0050C2, 0xD99000, 0xD99FFF, "T-Industry, s.r.o.", "T-INDUSTRY-S-R-O" }, { 0x0050C2, 0xD9A000, 0xD9AFFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xD9B000, 0xD9BFFF, "Intuitive Surgical, Inc", "INTUITIVE-SURGICAL" }, { 0x0050C2, 0xD9C000, 0xD9CFFF, "Gamber Johnson LLC", "GAMBER-JOHNSON" }, { 0x0050C2, 0xD9D000, 0xD9DFFF, "Mistral Solutions Pvt. Ltd", "MISTRAL-SOLUTIONS-PVT" }, { 0x0050C2, 0xD9E000, 0xD9EFFF, "Vocality International Ltd", "VOCALITY" }, { 0x0050C2, 0xD9F000, 0xD9FFFF, "BitWise Controls", "BITWISE-CONTROLS" }, { 0x0050C2, 0xDA0000, 0xDA0FFF, "Precision Remotes", "PRECISION-REMOTES" }, { 0x0050C2, 0xDA1000, 0xDA1FFF, "MangoDSP", "MANGODSP" }, { 0x0050C2, 0xDA2000, 0xDA2FFF, "metraTec GmbH", "METRATEC" }, { 0x0050C2, 0xDA3000, 0xDA3FFF, "GD Mission Systems", "GD-MISSION" }, { 0x0050C2, 0xDA4000, 0xDA4FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x0050C2, 0xDA5000, 0xDA5FFF, "megatec electronic GmbH", "MEGATEC" }, { 0x0050C2, 0xDA6000, 0xDA6FFF, "Manitowoc Ice", "MANITOWOC-ICE" }, { 0x0050C2, 0xDA7000, 0xDA7FFF, "Capton", "CAPTON" }, { 0x0050C2, 0xDA8000, 0xDA8FFF, "Sine Systems, Inc.", "SINE" }, { 0x0050C2, 0xDA9000, 0xDA9FFF, "Tieline Research Pty Ltd", "TIELINE-RESEARCH-PTY" }, { 0x0050C2, 0xDAA000, 0xDAAFFF, "M & PAUL, INC", "M-PAUL" }, { 0x0050C2, 0xDAB000, 0xDABFFF, "Aplex Technology Inc.", "APLEX" }, { 0x0050C2, 0xDAC000, 0xDACFFF, "RFL Electronics, Inc.", "RFL-ELECTRONICS" }, { 0x0050C2, 0xDAD000, 0xDADFFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0xDAE000, 0xDAEFFF, "Spang Power Electronics", "SPANG-POWER-ELECTRONICS" }, { 0x0050C2, 0xDAF000, 0xDAFFFF, "eumig industrie-tv GmbH", "EUMIG-INDUSTRIE-TV" }, { 0x0050C2, 0xDB0000, 0xDB0FFF, "IMAGO Technologies GmbH", "IMAGO-TECHNOLOGIES" }, { 0x0050C2, 0xDB1000, 0xDB1FFF, "RF Code", "RF-CODE" }, { 0x0050C2, 0xDB2000, 0xDB2FFF, "SoftwareCannery", "SOFTWARECANNERY" }, { 0x0050C2, 0xDB3000, 0xDB3FFF, "LAUDA DR. R. WOBSER GMBH & CO. KG", "LAUDA-DR-R-WOBSER" }, { 0x0050C2, 0xDB4000, 0xDB4FFF, "ZAO NPC Kompjuternie Technologii", "ZAO-NPC-KOMPJUTERNIE-TECHNOLOGII" }, { 0x0050C2, 0xDB5000, 0xDB5FFF, "DSP DESIGN LTD", "DSP-DESIGN" }, { 0x0050C2, 0xDB6000, 0xDB6FFF, "PROSOFT-SYSTEMS LTD", "PROSOFT" }, { 0x0050C2, 0xDB7000, 0xDB7FFF, "SOREL GmbH Mikroelektronik", "SOREL-MIKROELEKTRONIK" }, { 0x0050C2, 0xDB8000, 0xDB8FFF, "Comsat VertriebsgmbH", "COMSAT-VERTRIEBSGMBH" }, { 0x0050C2, 0xDB9000, 0xDB9FFF, "Peek Traffic Corporation", "PEEK-TRAFFIC" }, { 0x0050C2, 0xDBA000, 0xDBAFFF, "M.P. Electronics", "M-P-ELECTRONICS" }, { 0x0050C2, 0xDBB000, 0xDBBFFF, "Esensors, Inc.", "ESENSORS" }, { 0x0050C2, 0xDBC000, 0xDBCFFF, "Nantes Systems Private Limited", "NANTES-PRIVATE" }, { 0x0050C2, 0xDBD000, 0xDBDFFF, "Margento R&D", "MARGENTO-R-D" }, { 0x0050C2, 0xDBE000, 0xDBEFFF, "WITHSYSTEM Co.,Ltd", "WITHSYSTEM" }, { 0x0050C2, 0xDBF000, 0xDBFFFF, "One-Nemoto Engineering Corporation", "ONE-NEMOTO-ENGINEERING" }, { 0x0050C2, 0xDC0000, 0xDC0FFF, "Security Services Group (SSG)", "SECURITY-SERVICES-GROUP-SSG" }, { 0x0050C2, 0xDC1000, 0xDC1FFF, "Acrux Technology Limited", "ACRUX" }, { 0x0050C2, 0xDC2000, 0xDC2FFF, "TESSERA TECHNOLOGY INC.", "TESSERA" }, { 0x0050C2, 0xDC3000, 0xDC3FFF, "ZED Ziegler Electronic Devices GmbH", "ZED-ZIEGLER-DEVICES" }, { 0x0050C2, 0xDC4000, 0xDC4FFF, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x0050C2, 0xDC5000, 0xDC5FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xDC6000, 0xDC6FFF, "Fluid Components Intl", "FLUID-COMPONENTS-INTL" }, { 0x0050C2, 0xDC7000, 0xDC7FFF, "AGT Holdings Limited", "AGT-HOLDINGS" }, { 0x0050C2, 0xDC8000, 0xDC8FFF, "T2M2 GmbH", "T2M2" }, { 0x0050C2, 0xDC9000, 0xDC9FFF, "KinotonGmbH", "KINOTONGMBH" }, { 0x0050C2, 0xDCA000, 0xDCAFFF, "Tele Data Control", "TELE-DATA-CONTROL" }, { 0x0050C2, 0xDCB000, 0xDCBFFF, "CT Company", "CT-COMPANY" }, { 0x0050C2, 0xDCC000, 0xDCCFFF, "Instrumentel Limited", "INSTRUMENTEL" }, { 0x0050C2, 0xDCD000, 0xDCDFFF, "dilitronics GmbH", "DILITRONICS" }, { 0x0050C2, 0xDCE000, 0xDCEFFF, "Mecsel Oy", "MECSEL-OY" }, { 0x0050C2, 0xDCF000, 0xDCFFFF, "MCS Engenharia ltda", "MCS-ENGENHARIA-LTDA" }, { 0x0050C2, 0xDD0000, 0xDD0FFF, "IDC Solutions Pty Ltd", "IDC-SOLUTIONS-PTY" }, { 0x0050C2, 0xDD1000, 0xDD1FFF, "Brankamp GmbH", "BRANKAMP" }, { 0x0050C2, 0xDD2000, 0xDD2FFF, "Electronic Applications, Inc.", "APPLICATIONS" }, { 0x0050C2, 0xDD3000, 0xDD3FFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x0050C2, 0xDD4000, 0xDD4FFF, "SYSTECH", "SYSTECH" }, { 0x0050C2, 0xDD5000, 0xDD5FFF, "Friend Spring Industrial Co., Ltd.", "FRIEND-SPRING-INDUSTRIAL" }, { 0x0050C2, 0xDD6000, 0xDD6FFF, "Wartsila Voyage Limited", "WARTSILA-VOYAGE" }, { 0x0050C2, 0xDD7000, 0xDD7FFF, "Tornado Modular Systems", "TORNADO-MODULAR" }, { 0x0050C2, 0xDD8000, 0xDD8FFF, "Leonardo UK Ltd", "LEONARDO-UK" }, { 0x0050C2, 0xDD9000, 0xDD9FFF, "Metraware", "METRAWARE" }, { 0x0050C2, 0xDDA000, 0xDDAFFF, "rbz robot design s.l.", "RBZ-ROBOT-DESIGN" }, { 0x0050C2, 0xDDB000, 0xDDBFFF, "LUCEO", "LUCEO" }, { 0x0050C2, 0xDDC000, 0xDDCFFF, "Vision & Control GmbH", "VISION-CONTROL" }, { 0x0050C2, 0xDDD000, 0xDDDFFF, "A&A GENERAL SRL", "A-A-GENERAL-SRL" }, { 0x0050C2, 0xDDE000, 0xDDEFFF, "DRS Imaging and Targeting Solutions", "DRS-IMAGING-AND-TARGETING-SOLUTIONS" }, { 0x0050C2, 0xDDF000, 0xDDFFFF, "Device GmbH", "DEVICE" }, { 0x0050C2, 0xDE0000, 0xDE0FFF, "INTERNET PROTOCOLO LOGICA SL", "INTERNET-PROTOCOLO-LOGICA-SL" }, { 0x0050C2, 0xDE1000, 0xDE1FFF, "ABB Transmission and Distribution Automation Equipment (Xiamen) Co., Ltd.", "ABB-TRANSMISSION-AND-DISTRIBUTION-AUTOMATION-EQUIPMENT-XIAMEN" }, { 0x0050C2, 0xDE2000, 0xDE2FFF, "SEQUTEC INC", "SEQUTEC" }, { 0x0050C2, 0xDE3000, 0xDE3FFF, "Breakaway Systems LLC", "BREAKAWAY" }, { 0x0050C2, 0xDE4000, 0xDE4FFF, "EGS Technologies Ltd", "EGS-TECHNOLOGIES" }, { 0x0050C2, 0xDE5000, 0xDE5FFF, "Neets", "NEETS" }, { 0x0050C2, 0xDE6000, 0xDE6FFF, "Fr. Sauter AG", "FR-SAUTER" }, { 0x0050C2, 0xDE7000, 0xDE7FFF, "Elan Systems", "ELAN" }, { 0x0050C2, 0xDE8000, 0xDE8FFF, "Visual Productions", "VISUAL-PRODUCTIONS" }, { 0x0050C2, 0xDE9000, 0xDE9FFF, "Dacom West GmbH", "DACOM-WEST" }, { 0x0050C2, 0xDEA000, 0xDEAFFF, "Cerner Corporation", "CERNER" }, { 0x0050C2, 0xDEB000, 0xDEBFFF, "Ruwisch & Kollegen GmbH", "RUWISCH-KOLLEGEN" }, { 0x0050C2, 0xDEC000, 0xDECFFF, "VendNovation LLC", "VENDNOVATION" }, { 0x0050C2, 0xDED000, 0xDEDFFF, "Lee Laser", "LEE-LASER" }, { 0x0050C2, 0xDEF000, 0xDEFFFF, "Powersense A/S", "POWERSENSE-A/S" }, { 0x0050C2, 0xDF0000, 0xDF0FFF, "Koncar Electrical Engineering Institute", "KONCAR-ELECTRICAL-ENGINEERING-INSTITUTE" }, { 0x0050C2, 0xDF1000, 0xDF1FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xDF2000, 0xDF2FFF, "Ocean Sonics", "OCEAN-SONICS" }, { 0x0050C2, 0xDF3000, 0xDF3FFF, "INSEVIS GmbH", "INSEVIS" }, { 0x0050C2, 0xDF4000, 0xDF4FFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x0050C2, 0xDF5000, 0xDF5FFF, "EtherLight", "ETHERLIGHT" }, { 0x0050C2, 0xDF6000, 0xDF6FFF, "HINO ENGINEERING, INC", "HINO-ENGINEERING" }, { 0x0050C2, 0xDF7000, 0xDF7FFF, "Combilent", "COMBILENT" }, { 0x0050C2, 0xDF8000, 0xDF8FFF, "Tommotek (WA) Pty Ltd.", "TOMMOTEK-WA-PTY" }, { 0x0050C2, 0xDF9000, 0xDF9FFF, "Jenny Science AG", "JENNY-SCIENCE" }, { 0x0050C2, 0xDFA000, 0xDFAFFF, "MAC Valves, Inc.", "MAC-VALVES" }, { 0x0050C2, 0xDFB000, 0xDFBFFF, "BETTINI SRL", "BETTINI-SRL" }, { 0x0050C2, 0xDFC000, 0xDFCFFF, "I-Evo Ltd", "I-EVO" }, { 0x0050C2, 0xDFD000, 0xDFDFFF, "Wotbox ltd", "WOTBOX" }, { 0x0050C2, 0xDFE000, 0xDFEFFF, "Xitek Design Limited", "XITEK-DESIGN" }, { 0x0050C2, 0xDFF000, 0xDFFFFF, "TANTAL ELECTRONICA, SL", "TANTAL-ELECTRONICA-SL" }, { 0x0050C2, 0xE00000, 0xE00FFF, "Aplex Technology Inc.", "APLEX" }, { 0x0050C2, 0xE01000, 0xE01FFF, "Tyco Traffic & Transportation", "TYCO-TRAFFIC-TRANSPORTATION" }, { 0x0050C2, 0xE02000, 0xE02FFF, "Cleverscope", "CLEVERSCOPE" }, { 0x0050C2, 0xE03000, 0xE03FFF, "ICU Scandinavia Schweiz GmbH", "ICU-SCANDINAVIA-SCHWEIZ" }, { 0x0050C2, 0xE04000, 0xE04FFF, "Sec.Eng Systems Pty Ltd", "SEC-ENG-PTY" }, { 0x0050C2, 0xE05000, 0xE05FFF, "NOCOSIUM", "NOCOSIUM" }, { 0x0050C2, 0xE06000, 0xE06FFF, "Ebner Electronic GmbH", "EBNER" }, { 0x0050C2, 0xE07000, 0xE07FFF, "Protagon Process Technologies GmbH", "PROTAGON-PROCESS-TECHNOLOGIES" }, { 0x0050C2, 0xE08000, 0xE08FFF, "KST Technology", "KST" }, { 0x0050C2, 0xE09000, 0xE09FFF, "ATEME", "ATEME" }, { 0x0050C2, 0xE0A000, 0xE0AFFF, "Sicon srl", "SICON-SRL" }, { 0x0050C2, 0xE0B000, 0xE0BFFF, "Seartech", "SEARTECH" }, { 0x0050C2, 0xE0C000, 0xE0CFFF, "YOUHO ELECTRIC IND.,LTD.", "YOUHO-ELECTRIC-IND" }, { 0x0050C2, 0xE0D000, 0xE0DFFF, "Unixmedia Srl", "UNIXMEDIA-SRL" }, { 0x0050C2, 0xE0E000, 0xE0EFFF, "PMAC JAPAN", "PMAC-JAPAN" }, { 0x0050C2, 0xE0F000, 0xE0FFFF, "Trentino Systems", "TRENTINO" }, { 0x0050C2, 0xE10000, 0xE10FFF, "Radinetworks Co., Ltd", "RADINETWORKS" }, { 0x0050C2, 0xE11000, 0xE11FFF, "RadioMobile Inc", "RADIOMOBILE" }, { 0x0050C2, 0xE12000, 0xE12FFF, "Kago Electronics BV", "KAGO-ELECTRONICS" }, { 0x0050C2, 0xE13000, 0xE13FFF, "Automation Assist Japan Company", "AUTOMATION-ASSIST-JAPAN-COMPANY" }, { 0x0050C2, 0xE14000, 0xE14FFF, "Calixto Systems Pvt Ltd", "CALIXTO-PVT" }, { 0x0050C2, 0xE15000, 0xE15FFF, "IHI Scube Co.,Ltd", "IHI-SCUBE" }, { 0x0050C2, 0xE16000, 0xE16FFF, "Jetstream Ltd.", "JETSTREAM" }, { 0x0050C2, 0xE17000, 0xE17FFF, "Gall Tankdatensysteme GmbH", "GALL-TANKDATENSYSTEME" }, { 0x0050C2, 0xE18000, 0xE18FFF, "ABB Transmission and Distribution Automation Equipment (Xiamen) Co., Ltd.", "ABB-TRANSMISSION-AND-DISTRIBUTION-AUTOMATION-EQUIPMENT-XIAMEN" }, { 0x0050C2, 0xE19000, 0xE19FFF, "Zoe Medical", "ZOE-MEDICAL" }, { 0x0050C2, 0xE1A000, 0xE1AFFF, "Rosslare Enterprises Limited", "ROSSLARE-ENTERPRISES" }, { 0x0050C2, 0xE1B000, 0xE1BFFF, "Embedded Labs", "EMBEDDED-LABS" }, { 0x0050C2, 0xE1C000, 0xE1CFFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xE1D000, 0xE1DFFF, "Holdline Tecnologia e Sistemas Ltda", "HOLDLINE-TECNOLOGIA-E-SISTEMAS-LTDA" }, { 0x0050C2, 0xE1E000, 0xE1EFFF, "Lo-Q plc", "LO-Q-PLC" }, { 0x0050C2, 0xE1F000, 0xE1FFFF, "ELVEES", "ELVEES" }, { 0x0050C2, 0xE20000, 0xE20FFF, "Divelbiss Corporation", "DIVELBISS" }, { 0x0050C2, 0xE21000, 0xE21FFF, "Norwia AS", "NORWIA-AS" }, { 0x0050C2, 0xE22000, 0xE22FFF, "Michael Riedel Transformatorenbau GmbH", "MICHAEL-RIEDEL-TRANSFORMATORENBAU" }, { 0x0050C2, 0xE23000, 0xE23FFF, "VITEC", "VITEC" }, { 0x0050C2, 0xE24000, 0xE24FFF, "DiTEST Fahrzeugdiagnose GmbH", "DITEST-FAHRZEUGDIAGNOSE" }, { 0x0050C2, 0xE25000, 0xE25FFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x0050C2, 0xE26000, 0xE26FFF, "Cinetix s.r.l.", "CINETIX" }, { 0x0050C2, 0xE27000, 0xE27FFF, "CONTROL SYSTEMS Srl", "CONTROL-SRL" }, { 0x0050C2, 0xE28000, 0xE28FFF, "Teplovodokhran", "TEPLOVODOKHRAN" }, { 0x0050C2, 0xE29000, 0xE29FFF, "Fr. Sauter AG", "FR-SAUTER" }, { 0x0050C2, 0xE2A000, 0xE2AFFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x0050C2, 0xE2B000, 0xE2BFFF, "Plant Integrity Limited", "PLANT-INTEGRITY" }, { 0x0050C2, 0xE2C000, 0xE2CFFF, "EN ElectronicNetwork Hamburg GmbH", "EN-ELECTRONICNETWORK-HAMBURG" }, { 0x0050C2, 0xE2D000, 0xE2DFFF, "Funkwerk IT Karlsfeld GmbH", "FUNKWERK-IT-KARLSFELD" }, { 0x0050C2, 0xE2E000, 0xE2EFFF, "DS! Ingenieurbuero", "DS!-INGENIEURBUERO" }, { 0x0050C2, 0xE2F000, 0xE2FFFF, "Beam Ltd", "BEAM" }, { 0x0050C2, 0xE30000, 0xE30FFF, "Goennheimer Elektronic GmbH", "GOENNHEIMER-ELEKTRONIC" }, { 0x0050C2, 0xE31000, 0xE31FFF, "ENSIS Co., Ltd.", "ENSIS" }, { 0x0050C2, 0xE32000, 0xE32FFF, "Oshoksh Corporation", "OSHOKSH" }, { 0x0050C2, 0xE33000, 0xE33FFF, "Morita Technical Center Company", "MORITA-TECHNICAL-CENTER-COMPANY" }, { 0x0050C2, 0xE34000, 0xE34FFF, "HGL Dynamics", "HGL-DYNAMICS" }, { 0x0050C2, 0xE35000, 0xE35FFF, "Omnica Corporation", "OMNICA" }, { 0x0050C2, 0xE36000, 0xE36FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xE37000, 0xE37FFF, "FUJI DATA SYSTEM Co., Ltd", "FUJI-DATA-SYSTEM" }, { 0x0050C2, 0xE38000, 0xE38FFF, "Aesir Copenhagen", "AESIR-COPENHAGEN" }, { 0x0050C2, 0xE39000, 0xE39FFF, "Telemetrics Inc.", "TELEMETRICS" }, { 0x0050C2, 0xE3A000, 0xE3AFFF, "Vocality International Ltd", "VOCALITY" }, { 0x0050C2, 0xE3B000, 0xE3BFFF, "Nanosolution Inc.", "NANOSOLUTION" }, { 0x0050C2, 0xE3C000, 0xE3CFFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x0050C2, 0xE3D000, 0xE3DFFF, "Baudisch Electronic GmbH", "BAUDISCH" }, { 0x0050C2, 0xE3E000, 0xE3EFFF, "Monnit Corp.", "MONNIT" }, { 0x0050C2, 0xE3F000, 0xE3FFFF, "VISITO S.R.L.", "VISITO" }, { 0x0050C2, 0xE40000, 0xE40FFF, "Ecrin Systems", "ECRIN" }, { 0x0050C2, 0xE41000, 0xE41FFF, "Higeco S.r.l.", "HIGECO" }, { 0x0050C2, 0xE42000, 0xE42FFF, "Wings for Media SL", "WINGS-FOR-MEDIA-SL" }, { 0x0050C2, 0xE43000, 0xE43FFF, "Technica Engineering GmbH", "TECHNICA-ENGINEERING" }, { 0x0050C2, 0xE44000, 0xE44FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x0050C2, 0xE45000, 0xE45FFF, "Stichting Sunrise", "STICHTING-SUNRISE" }, { 0x0050C2, 0xE46000, 0xE46FFF, "Industrea Mining Technology", "INDUSTREA-MINING" }, { 0x0050C2, 0xE47000, 0xE47FFF, "ENIKA.CZ", "ENIKA-CZ" }, { 0x0050C2, 0xE48000, 0xE48FFF, "ITW Reyflex North America", "ITW-REYFLEX-NORTH-AMERICA" }, { 0x0050C2, 0xE49000, 0xE49FFF, "CTF TECHNOLOGIES DO BRASIL LTDA", "CTF-TECHNOLOGIES-DO-BRASIL-LTDA" }, { 0x0050C2, 0xE4A000, 0xE4AFFF, "GHL Systems Bhd", "GHL" }, { 0x0050C2, 0xE4B000, 0xE4BFFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x0050C2, 0xE4C000, 0xE4CFFF, "Applied Micro Electronics AME bv", "APPLIED-MICRO-ELECTRONICS-AME" }, { 0x0050C2, 0xE4D000, 0xE4DFFF, "PCSC", "PCSC" }, { 0x0050C2, 0xE4E000, 0xE4EFFF, "Institute For Information Industry", "INSTITUTE-FOR-INFORMATION-INDUSTRY" }, { 0x0050C2, 0xE4F000, 0xE4FFFF, "Wine Technology Marlborough", "WINE-MARLBOROUGH" }, { 0x0050C2, 0xE50000, 0xE50FFF, "Tattile srl", "TATTILE-SRL" }, { 0x0050C2, 0xE51000, 0xE51FFF, "Motec Pty Ltd", "MOTEC-PTY" }, { 0x0050C2, 0xE52000, 0xE52FFF, "Famas System S.p.A.", "FAMAS-SYSTEM" }, { 0x0050C2, 0xE53000, 0xE53FFF, "NEXT video systems Hard- and Software Development GmbH", "NEXT-VIDEO-HARD-AND-SOFTWARE-DEVELOPMENT" }, { 0x0050C2, 0xE54000, 0xE54FFF, "Arcos Technologies LTD", "ARCOS-TECHNOLOGIES" }, { 0x0050C2, 0xE55000, 0xE55FFF, "TTi Ltd", "TTI" }, { 0x0050C2, 0xE56000, 0xE56FFF, "RFENGINE CO., LTD.", "RFENGINE" }, { 0x0050C2, 0xE57000, 0xE57FFF, "EOLANE MONTCEAU", "EOLANE-MONTCEAU" }, { 0x0050C2, 0xE58000, 0xE58FFF, "Agri-hitech LLC", "AGRI-HITECH" }, { 0x0050C2, 0xE59000, 0xE59FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xE5A000, 0xE5AFFF, "FUTEC INC.", "FUTEC" }, { 0x0050C2, 0xE5B000, 0xE5BFFF, "CAIPO Automazione Industriale s.r.l.", "CAIPO-AUTOMAZIONE-INDUSTRIALE" }, { 0x0050C2, 0xE5C000, 0xE5CFFF, "MCOPIA Co., Ltd", "MCOPIA" }, { 0x0050C2, 0xE5D000, 0xE5DFFF, "T8 Ltd", "T8" }, { 0x0050C2, 0xE5E000, 0xE5EFFF, "OREP", "OREP" }, { 0x0050C2, 0xE5F000, 0xE5FFFF, "Pantec Engineering AG", "PANTEC-ENGINEERING" }, { 0x0050C2, 0xE60000, 0xE60FFF, "HORIZON.INC", "HORIZON" }, { 0x0050C2, 0xE61000, 0xE61FFF, "Detech Electronics ApS", "DETECH-ELECTRONICS-APS" }, { 0x0050C2, 0xE62000, 0xE62FFF, "SAE IT-systems GmbH & Co. KG", "SAE-IT" }, { 0x0050C2, 0xE63000, 0xE63FFF, "Prima sistemi", "PRIMA-SISTEMI" }, { 0x0050C2, 0xE64000, 0xE64FFF, "Edgeware AB", "EDGEWARE-AB" }, { 0x0050C2, 0xE65000, 0xE65FFF, "IB Elektronik GmbH", "IB-ELEKTRONIK" }, { 0x0050C2, 0xE66000, 0xE66FFF, "EMAC, Inc.", "EMAC" }, { 0x0050C2, 0xE67000, 0xE67FFF, "Critical Link LLC", "CRITICAL-LINK" }, { 0x0050C2, 0xE68000, 0xE68FFF, "Kyoritsu Electric Corporation", "KYORITSU-ELECTRIC" }, { 0x0050C2, 0xE69000, 0xE69FFF, "Netmaker", "NETMAKER" }, { 0x0050C2, 0xE6A000, 0xE6AFFF, "Aplex Technology Inc.", "APLEX" }, { 0x0050C2, 0xE6B000, 0xE6BFFF, "Sika Technology AG", "SIKA" }, { 0x0050C2, 0xE6C000, 0xE6CFFF, "SAMSUNG Electronics Co.,Ltd.(LED Division)", "SAMSUNG-ELECTRONICS-LED-DIVISION" }, { 0x0050C2, 0xE6D000, 0xE6DFFF, "Allerta Inc", "ALLERTA" }, { 0x0050C2, 0xE6E000, 0xE6EFFF, "Power-One Italia S.p.A", "POWER-ONE-ITALIA" }, { 0x0050C2, 0xE6F000, 0xE6FFFF, "Leyden Engineering", "LEYDEN-ENGINEERING" }, { 0x0050C2, 0xE70000, 0xE70FFF, "DORLET SAU", "DORLET-SAU" }, { 0x0050C2, 0xE71000, 0xE71FFF, "traffic network solutions s.l", "TRAFFIC-NETWORK-SOLUTIONS" }, { 0x0050C2, 0xE73000, 0xE73FFF, "ACS Motion Control Ltd.", "ACS-MOTION-CONTROL" }, { 0x0050C2, 0xE74000, 0xE74FFF, "Will corp.", "WILL" }, { 0x0050C2, 0xE75000, 0xE75FFF, "FSM AG", "FSM" }, { 0x0050C2, 0xE76000, 0xE76FFF, "Embedded Solution Bank Co., Ltd.", "EMBEDDED-SOLUTION-BANK" }, { 0x0050C2, 0xE77000, 0xE77FFF, "Fr. Sauter AG", "FR-SAUTER" }, { 0x0050C2, 0xE78000, 0xE78FFF, "TASK SISTEMAS DE COMPUTACAO LTDA", "TASK-SISTEMAS-DE-COMPUTACAO-LTDA" }, { 0x0050C2, 0xE79000, 0xE79FFF, "MCS MICRONIC Computer Systeme GmbH", "MCS-MICRONIC-SYSTEME" }, { 0x0050C2, 0xE7A000, 0xE7AFFF, "Lightel", "LIGHTEL" }, { 0x0050C2, 0xE7B000, 0xE7BFFF, "ATOM GIKEN Co.,Ltd.", "ATOM-GIKEN" }, { 0x0050C2, 0xE7C000, 0xE7CFFF, "sp controls, inc", "SP-CONTROLS" }, { 0x0050C2, 0xE7D000, 0xE7DFFF, "AEL Microsystems Limited", "AEL-MICROSYSTEMS" }, { 0x0050C2, 0xE7E000, 0xE7EFFF, "Swareflex GmbH", "SWAREFLEX" }, { 0x0050C2, 0xE7F000, 0xE7FFFF, "LS Control A/S", "LS-CONTROL-A/S" }, { 0x0050C2, 0xE80000, 0xE80FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xE81000, 0xE81FFF, "Adaptive Technologies, Inc.", "ADAPTIVE-TECHNOLOGIES" }, { 0x0050C2, 0xE82000, 0xE82FFF, "Xplore Technologies Corp", "XPLORE-TECHNOLOGIES" }, { 0x0050C2, 0xE83000, 0xE83FFF, "Witree Co.,Ltd", "WITREE" }, { 0x0050C2, 0xE84000, 0xE84FFF, "ABB Transmission and Distribution Automation Equipment (Xiamen) Co., Ltd.", "ABB-TRANSMISSION-AND-DISTRIBUTION-AUTOMATION-EQUIPMENT-XIAMEN" }, { 0x0050C2, 0xE85000, 0xE85FFF, "Cosmo Life Co.,Ltd", "COSMO-LIFE" }, { 0x0050C2, 0xE86000, 0xE86FFF, "Multisuns Corporation", "MULTISUNS" }, { 0x0050C2, 0xE87000, 0xE87FFF, "Lamson Safes & Security", "LAMSON-SAFES-SECURITY" }, { 0x0050C2, 0xE88000, 0xE88FFF, "Pivitec, LLC", "PIVITEC" }, { 0x0050C2, 0xE89000, 0xE89FFF, "PROTEQSEN", "PROTEQSEN" }, { 0x0050C2, 0xE8A000, 0xE8AFFF, "Macronet s.r.l.", "MACRONET" }, { 0x0050C2, 0xE8B000, 0xE8BFFF, "RPA Electronic Solutions, Inc.", "RPA-SOLUTIONS" }, { 0x0050C2, 0xE8C000, 0xE8CFFF, "Epec Oy", "EPEC-OY" }, { 0x0050C2, 0xE8D000, 0xE8DFFF, "SystemAdvanced Co,Ltd", "SYSTEMADVANCED" }, { 0x0050C2, 0xE8E000, 0xE8EFFF, "GD Mission Systems", "GD-MISSION" }, { 0x0050C2, 0xE8F000, 0xE8FFFF, "STT Condigi A/S", "STT-CONDIGI-A/S" }, { 0x0050C2, 0xE90000, 0xE90FFF, "GS Elektromedizinische Geraete G. Stemple GmbH", "GS-ELEKTROMEDIZINISCHE-GERAETE-G-STEMPLE" }, { 0x0050C2, 0xE91000, 0xE91FFF, "DSP DESIGN LTD", "DSP-DESIGN" }, { 0x0050C2, 0xE92000, 0xE92FFF, "CT Company", "CT-COMPANY" }, { 0x0050C2, 0xE93000, 0xE93FFF, "Perceptive Pixel Inc.", "PERCEPTIVE-PIXEL" }, { 0x0050C2, 0xE94000, 0xE94FFF, "ANA-U GmbH", "ANA-U" }, { 0x0050C2, 0xE95000, 0xE95FFF, "Dlite Comercio, Importadora e Serviços de Automação Ltda", "DLITE-COMERCIO-IMPORTADORA-E-SERVIOS-DE-AUTOMAO-LTDA" }, { 0x0050C2, 0xE96000, 0xE96FFF, "PROYECSON S.A.", "PROYECSON" }, { 0x0050C2, 0xE97000, 0xE97FFF, "Arista Systems Corporation", "ARISTA" }, { 0x0050C2, 0xE98000, 0xE98FFF, "i3 International Inc.", "I3" }, { 0x0050C2, 0xE99000, 0xE99FFF, "UV Networks, Inc.", "UV-NETWORKS" }, { 0x0050C2, 0xE9A000, 0xE9AFFF, "Solace Systems", "SOLACE" }, { 0x0050C2, 0xE9B000, 0xE9BFFF, "Hentschel System GmbH", "HENTSCHEL-SYSTEM" }, { 0x0050C2, 0xE9C000, 0xE9CFFF, "SPARQ systems", "SPARQ" }, { 0x0050C2, 0xE9D000, 0xE9DFFF, "nicai-systems", "NICAI" }, { 0x0050C2, 0xE9E000, 0xE9EFFF, "American Microsystems, Ltd.", "AMERICAN-MICROSYSTEMS" }, { 0x0050C2, 0xE9F000, 0xE9FFFF, "DataSoft Corporation", "DATASOFT" }, { 0x0050C2, 0xEA0000, 0xEA0FFF, "Robert Bosch Healthcare Systems, Inc.", "ROBERT-BOSCH-HEALTHCARE" }, { 0x0050C2, 0xEA1000, 0xEA1FFF, "TEX COMPUTER SRL", "TEX-SRL" }, { 0x0050C2, 0xEA2000, 0xEA2FFF, "ThinkRF Corp", "THINKRF" }, { 0x0050C2, 0xEA3000, 0xEA3FFF, "Subsea Systems, Inc.", "SUBSEA" }, { 0x0050C2, 0xEA4000, 0xEA4FFF, "head", "HEAD" }, { 0x0050C2, 0xEA5000, 0xEA5FFF, "Aerodata AG", "AERODATA" }, { 0x0050C2, 0xEA6000, 0xEA6FFF, "Powersense A/S", "POWERSENSE-A/S" }, { 0x0050C2, 0xEA7000, 0xEA7FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xEA8000, 0xEA8FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x0050C2, 0xEA9000, 0xEA9FFF, "Mettler Toledo", "METTLER-TOLEDO" }, { 0x0050C2, 0xEAA000, 0xEAAFFF, "BAE Systems", "BAE" }, { 0x0050C2, 0xEAB000, 0xEABFFF, "Warp9 Tech Design, Inc.", "WARP9-TECH-DESIGN" }, { 0x0050C2, 0xEAC000, 0xEACFFF, "Alias ip", "ALIAS-IP" }, { 0x0050C2, 0xEAD000, 0xEADFFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x0050C2, 0xEAE000, 0xEAEFFF, "Alyrica Networks", "ALYRICA-NETWORKS" }, { 0x0050C2, 0xEAF000, 0xEAFFFF, "Gogo BA", "GOGO-BA" }, { 0x0050C2, 0xEB0000, 0xEB0FFF, "Pulse Communication Systems Pvt. Ltd.", "PULSE-COMMUNICATION-PVT" }, { 0x0050C2, 0xEB1000, 0xEB1FFF, "PDU EXPERT UK LTD", "PDU-EXPERT-UK" }, { 0x0050C2, 0xEB2000, 0xEB2FFF, "Otaki Electric Corporation", "OTAKI-ELECTRIC" }, { 0x0050C2, 0xEB3000, 0xEB3FFF, "AR RF/Microwave Instrumentation", "AR-RF/MICROWAVE-INSTRUMENTATION" }, { 0x0050C2, 0xEB4000, 0xEB4FFF, "Wishtek Technology, Inc.", "WISHTEK" }, { 0x0050C2, 0xEB5000, 0xEB5FFF, "Covidence A/S", "COVIDENCE-A/S" }, { 0x0050C2, 0xEB6000, 0xEB6FFF, "Monsoon Solutions, Inc.", "MONSOON-SOLUTIONS" }, { 0x0050C2, 0xEB7000, 0xEB7FFF, "Saab AB", "SAAB-AB" }, { 0x0050C2, 0xEB8000, 0xEB8FFF, "dspnor", "DSPNOR" }, { 0x0050C2, 0xEB9000, 0xEB9FFF, "ALPHA-MOS", "ALPHA-MOS" }, { 0x0050C2, 0xEBA000, 0xEBAFFF, "West-Com Nurse Call Systems, Inc.", "WEST-COM-NURSE-CALL" }, { 0x0050C2, 0xEBB000, 0xEBBFFF, "TimeTerminal Adductor Group AB", "TIMETERMINAL-ADDUCTOR-GROUP-AB" }, { 0x0050C2, 0xEBC000, 0xEBCFFF, "Diehl AKO Stiftung & Co. KG", "DIEHL-AKO-STIFTUNG" }, { 0x0050C2, 0xEBD000, 0xEBDFFF, "Droplet Measurement Technologies", "DROPLET-MEASUREMENT-TECHNOLOGIES" }, { 0x0050C2, 0xEBE000, 0xEBEFFF, "Global Tecnologia LTDA.", "GLOBAL-TECNOLOGIA-LTDA" }, { 0x0050C2, 0xEBF000, 0xEBFFFF, "CIVOLUTION", "CIVOLUTION" }, { 0x0050C2, 0xEC0000, 0xEC0FFF, "UgMO Technologies", "UGMO-TECHNOLOGIES" }, { 0x0050C2, 0xEC1000, 0xEC1FFF, "ANT Group s.r.l", "ANT-GROUP" }, { 0x0050C2, 0xEC2000, 0xEC2FFF, "Ixonos Plc", "IXONOS-PLC" }, { 0x0050C2, 0xEC3000, 0xEC3FFF, "Aplex Technology Inc.", "APLEX" }, { 0x0050C2, 0xEC4000, 0xEC4FFF, "Logical Electromechanical Sys Inc.", "LOGICAL-ELECTROMECHANICAL-SYS" }, { 0x0050C2, 0xEC5000, 0xEC5FFF, "RSUPPORT Co., Ltd.", "RSUPPORT" }, { 0x0050C2, 0xEC6000, 0xEC6FFF, "INFRONICS SYSTEMS LIMITED", "INFRONICS" }, { 0x0050C2, 0xEC7000, 0xEC7FFF, "LIQUID ROBOTICS, INC", "LIQUID-ROBOTICS" }, { 0x0050C2, 0xEC8000, 0xEC8FFF, "IBERNEX INGENIERIA, S.L.", "IBERNEX-INGENIERIA" }, { 0x0050C2, 0xEC9000, 0xEC9FFF, "Amsterdam Scientific Instruments BV", "AMSTERDAM-SCIENTIFIC-INSTRUMENTS" }, { 0x0050C2, 0xECA000, 0xECAFFF, "BitWise Controls", "BITWISE-CONTROLS" }, { 0x0050C2, 0xECB000, 0xECBFFF, "FAL Corp", "FAL" }, { 0x0050C2, 0xECC000, 0xECCFFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xECD000, 0xECDFFF, "Peek Traffic Corporation", "PEEK-TRAFFIC" }, { 0x0050C2, 0xECE000, 0xECEFFF, "easii ic adiis", "EASII-IC-ADIIS" }, { 0x0050C2, 0xECF000, 0xECFFFF, "TAIWAN HIPLUS CORPORATION", "TAIWAN-HIPLUS" }, { 0x0050C2, 0xED0000, 0xED0FFF, "Nippon Systemware Co.,Ltd.", "NIPPON-SYSTEMWARE" }, { 0x0050C2, 0xED1000, 0xED1FFF, "Arcontia Technology AB", "ARCONTIA-AB" }, { 0x0050C2, 0xED2000, 0xED2FFF, "Klangspektrum GmbH", "KLANGSPEKTRUM" }, { 0x0050C2, 0xED3000, 0xED3FFF, "ECO MONITORING UTILITY SYSTEMS LTD", "ECO-MONITORING-UTILITY" }, { 0x0050C2, 0xED4000, 0xED4FFF, "TAMAGAWA ELECTRONICS CO.,LTD.", "TAMAGAWA-ELECTRONICS" }, { 0x0050C2, 0xED5000, 0xED5FFF, "RFL Electronics, Inc.", "RFL-ELECTRONICS" }, { 0x0050C2, 0xED6000, 0xED6FFF, "Cat AB", "CAT-AB" }, { 0x0050C2, 0xED7000, 0xED7FFF, "FBT Elettronica spa", "FBT-ELETTRONICA-SPA" }, { 0x0050C2, 0xED8000, 0xED8FFF, "AVocation Systems, Inc.", "AVOCATION" }, { 0x0050C2, 0xED9000, 0xED9FFF, "Plasmatronics pty ltd", "PLASMATRONICS-PTY" }, { 0x0050C2, 0xEDA000, 0xEDAFFF, "Joint Stock Company Svyaz Inginiring M", "JOINT-STOCK-COMPANY-SVYAZ-INGINIRING-M" }, { 0x0050C2, 0xEDB000, 0xEDBFFF, "BELIK S.P.R.L.", "BELIK-S-P-R-L" }, { 0x0050C2, 0xEDC000, 0xEDCFFF, "Eyelock Corporation", "EYELOCK" }, { 0x0050C2, 0xEDD000, 0xEDDFFF, "EBNEURO SPA", "EBNEURO-SPA" }, { 0x0050C2, 0xEDE000, 0xEDEFFF, "Smart Grid Networks", "SMART-GRID-NETWORKS" }, { 0x0050C2, 0xEDF000, 0xEDFFFF, "Monitor Business Machines", "MONITOR-BUSINESS-MACHINES" }, { 0x0050C2, 0xEE0000, 0xEE0FFF, "osf Hansjuergen Meier GmbH & Co. KG", "OSF-HANSJUERGEN-MEIER" }, { 0x0050C2, 0xEE1000, 0xEE1FFF, "Procon Electronics", "PROCON-ELECTRONICS" }, { 0x0050C2, 0xEE2000, 0xEE2FFF, "System Industrie Electronic GmbH", "SYSTEM-INDUSTRIE" }, { 0x0050C2, 0xEE3000, 0xEE3FFF, "Tecnint HTE SRL", "TECNINT-HTE-SRL" }, { 0x0050C2, 0xEE4000, 0xEE4FFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x0050C2, 0xEE5000, 0xEE5FFF, "Cytec Zylindertechnik GmbH", "CYTEC-ZYLINDERTECHNIK" }, { 0x0050C2, 0xEE6000, 0xEE6FFF, "B:TECH, a. s.", "B:TECH" }, { 0x0050C2, 0xEE7000, 0xEE7FFF, "syes srl", "SYES-SRL" }, { 0x0050C2, 0xEE8000, 0xEE8FFF, "Kamacho Scale Co., Ltd.", "KAMACHO-SCALE" }, { 0x0050C2, 0xEE9000, 0xEE9FFF, "QUANTA S.r.l.", "QUANTA" }, { 0x0050C2, 0xEEA000, 0xEEAFFF, "Positioneering Limited", "POSITIONEERING" }, { 0x0050C2, 0xEEB000, 0xEEBFFF, "fibrisTerre GmbH", "FIBRISTERRE" }, { 0x0050C2, 0xEEC000, 0xEECFFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x0050C2, 0xEED000, 0xEEDFFF, "Future Design Controls, Inc", "FUTURE-DESIGN-CONTROLS" }, { 0x0050C2, 0xEEE000, 0xEEEFFF, "ABB Transmission and Distribution Automation Equipment (Xiamen) Co., Ltd.", "ABB-TRANSMISSION-AND-DISTRIBUTION-AUTOMATION-EQUIPMENT-XIAMEN" }, { 0x0050C2, 0xEEF000, 0xEEFFFF, "IDTRONIC GmbH", "IDTRONIC" }, { 0x0050C2, 0xEF0000, 0xEF0FFF, "Homaetrix Ltd", "HOMAETRIX" }, { 0x0050C2, 0xEF1000, 0xEF1FFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xEF2000, 0xEF2FFF, "Specialty Microwave Corp", "SPECIALTY-MICROWAVE" }, { 0x0050C2, 0xEF3000, 0xEF3FFF, "Smart Power Electronics GmbH & Co. KG", "SMART-POWER-ELECTRONICS" }, { 0x0050C2, 0xEF4000, 0xEF4FFF, "RO.VE.R. Laboratories S.p.A", "RO-VE-R-LABORATORIES" }, { 0x0050C2, 0xEF5000, 0xEF5FFF, "Human Network Labs, Inc.", "HUMAN-NETWORK-LABS" }, { 0x0050C2, 0xEF6000, 0xEF6FFF, "Netline Communication Technologies", "NETLINE-COMMUNICATION-TECHNOLOGIES" }, { 0x0050C2, 0xEF7000, 0xEF7FFF, "Amstelland Electronic BV", "AMSTELLAND" }, { 0x0050C2, 0xEF8000, 0xEF8FFF, "HCL Technologies", "HCL-TECHNOLOGIES" }, { 0x0050C2, 0xEF9000, 0xEF9FFF, "HORIBA ABX SAS", "HORIBA-ABX-SAS" }, { 0x0050C2, 0xEFA000, 0xEFAFFF, "Predictive Sensor Technology", "PREDICTIVE-SENSOR" }, { 0x0050C2, 0xEFB000, 0xEFBFFF, "Norbit ODM AS", "NORBIT-ODM-AS" }, { 0x0050C2, 0xEFC000, 0xEFCFFF, "Private", "PRIVATE" }, { 0x0050C2, 0xEFD000, 0xEFDFFF, "Sanmina", "SANMINA" }, { 0x0050C2, 0xEFE000, 0xEFEFFF, "PLR Information Systems Ltd.", "PLR-INFORMATION" }, { 0x0050C2, 0xEFF000, 0xEFFFFF, "Zephyrus Electronics LTD.", "ZEPHYRUS-ELECTRONICS" }, { 0x0050C2, 0xF00000, 0xF00FFF, "Syscom Instruments", "SYSCOM-INSTRUMENTS" }, { 0x0050C2, 0xF01000, 0xF01FFF, "Mango DSP, Inc", "MANGO-DSP" }, { 0x0050C2, 0xF02000, 0xF02FFF, "BMR", "BMR" }, { 0x0050C2, 0xF03000, 0xF03FFF, "Wren Sound Systems", "WREN-SOUND" }, { 0x0050C2, 0xF04000, 0xF04FFF, "KINKI ROENTGEN INDUSTRIAL CO.,LTD", "KINKI-ROENTGEN-INDUSTRIAL" }, { 0x0050C2, 0xF05000, 0xF05FFF, "ESI Ventures, LLC", "ESI-VENTURES" }, { 0x0050C2, 0xF06000, 0xF06FFF, "Micro-Key BV", "MICRO-KEY" }, { 0x0050C2, 0xF07000, 0xF07FFF, "Icon Research Ltd", "ICON-RESEARCH" }, { 0x0050C2, 0xF08000, 0xF08FFF, "Aplex Technology Inc.", "APLEX" }, { 0x0050C2, 0xF09000, 0xF09FFF, "Wheatstone Corporation", "WHEATSTONE" }, { 0x0050C2, 0xF0A000, 0xF0AFFF, "HASCOM International Pty Ltd", "HASCOM-PTY" }, { 0x0050C2, 0xF0B000, 0xF0BFFF, "Treehaven Technologies, Inc.", "TREEHAVEN-TECHNOLOGIES" }, { 0x0050C2, 0xF0C000, 0xF0CFFF, "SKYCHANNEL LTD", "SKYCHANNEL" }, { 0x0050C2, 0xF0D000, 0xF0DFFF, "Bluetest AB", "BLUETEST-AB" }, { 0x0050C2, 0xF0E000, 0xF0EFFF, "Micro Technic A/S", "MICRO-TECHNIC-A/S" }, { 0x0050C2, 0xF0F000, 0xF0FFFF, "AeroVision Avionics, Inc.", "AEROVISION-AVIONICS" }, { 0x0050C2, 0xF10000, 0xF10FFF, "Wincor Nixdorf Sp. z o.o.", "WINCOR-NIXDORF-SP-Z-O-O" }, { 0x0050C2, 0xF11000, 0xF11FFF, "Organis GmbH", "ORGANIS" }, { 0x0050C2, 0xF12000, 0xF12FFF, "General Industrial Controls Pvt Ltd", "GENERAL-INDUSTRIAL-CONTROLS-PVT" }, { 0x0050C2, 0xF13000, 0xF13FFF, "Packet Plus, Inc.", "PACKET-PLUS" }, { 0x0050C2, 0xF14000, 0xF14FFF, "VISION SYSTEMS AERONAUTIC", "VISION-AERONAUTIC" }, { 0x0050C2, 0xF15000, 0xF15FFF, "Sascal Displays Ltd", "SASCAL-DISPLAYS" }, { 0x0050C2, 0xF16000, 0xF16FFF, "Peter Huber Kältemaschinenbau GmbH", "PETER-HUBER-KAELTEMASCHINENBAU" }, { 0x0050C2, 0xF17000, 0xF17FFF, "ABB Transmission and Distribution Automation Equipment (Xiamen) Co., Ltd.", "ABB-TRANSMISSION-AND-DISTRIBUTION-AUTOMATION-EQUIPMENT-XIAMEN" }, { 0x0050C2, 0xF18000, 0xF18FFF, "Vitec Multimedia", "VITEC-MULTIMEDIA" }, { 0x0050C2, 0xF19000, 0xF19FFF, "Netlink Bilisim Sistemleri San. ve Tic. Ltd. Sti.", "NETLINK-BILISIM-SISTEMLERI-SAN-VE-TIC-STI" }, { 0x0050C2, 0xF1A000, 0xF1AFFF, "Aqua Management", "AQUA-MANAGEMENT" }, { 0x0050C2, 0xF1B000, 0xF1BFFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xF1C000, 0xF1CFFF, "GD Mission Systems", "GD-MISSION" }, { 0x0050C2, 0xF1D000, 0xF1DFFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x0050C2, 0xF1E000, 0xF1EFFF, "Dell'Orto S.P.A.", "DELL-ORTO" }, { 0x0050C2, 0xF1F000, 0xF1FFFF, "Verified Energy, LLC.", "VERIFIED-ENERGY" }, { 0x0050C2, 0xF20000, 0xF20FFF, "Unfors Instruments AB", "UNFORS-INSTRUMENTS-AB" }, { 0x0050C2, 0xF21000, 0xF21FFF, "SEITEC Co. Ltd", "SEITEC" }, { 0x0050C2, 0xF22000, 0xF22FFF, "Harland Simon plc", "HARLAND-SIMON-PLC" }, { 0x0050C2, 0xF23000, 0xF23FFF, "Electro-Motive Diesel", "ELECTRO-MOTIVE-DIESEL" }, { 0x0050C2, 0xF24000, 0xF24FFF, "CT Company", "CT-COMPANY" }, { 0x0050C2, 0xF25000, 0xF25FFF, "Samway Electronic SRL", "SAMWAY-SRL" }, { 0x0050C2, 0xF26000, 0xF26FFF, "WaveIP", "WAVEIP" }, { 0x0050C2, 0xF27000, 0xF27FFF, "ELAN SYSTEMS", "ELAN" }, { 0x0050C2, 0xF28000, 0xF28FFF, "Vertex Antennentechnik GmbH", "VERTEX-ANTENNENTECHNIK" }, { 0x0050C2, 0xF29000, 0xF29FFF, "RADYNE CORPORATION", "RADYNE" }, { 0x0050C2, 0xF2A000, 0xF2AFFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x0050C2, 0xF2B000, 0xF2BFFF, "Bio Guard component & technologies", "BIO-GUARD-COMPONENT-TECHNOLOGIES" }, { 0x0050C2, 0xF2C000, 0xF2CFFF, "Terratel Technology s.r.o.", "TERRATEL-S-R-O" }, { 0x0050C2, 0xF2D000, 0xF2DFFF, "Robert Bosch Healthcare Systems, Inc.", "ROBERT-BOSCH-HEALTHCARE" }, { 0x0050C2, 0xF2E000, 0xF2EFFF, "H&L Instruments, LLC", "H-L-INSTRUMENTS" }, { 0x0050C2, 0xF2F000, 0xF2FFFF, "Arcos Technologies LTD", "ARCOS-TECHNOLOGIES" }, { 0x0050C2, 0xF30000, 0xF30FFF, "Miris AB", "MIRIS-AB" }, { 0x0050C2, 0xF31000, 0xF31FFF, "Ruetz Technologies GmbH", "RUETZ-TECHNOLOGIES" }, { 0x0050C2, 0xF32000, 0xF32FFF, "Net4Things", "NET4THINGS" }, { 0x0050C2, 0xF33000, 0xF33FFF, "Applied Micro Electronics AME bv", "APPLIED-MICRO-ELECTRONICS-AME" }, { 0x0050C2, 0xF34000, 0xF34FFF, "Sequip S+E GmbH", "SEQUIP-S+E" }, { 0x0050C2, 0xF35000, 0xF35FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x0050C2, 0xF36000, 0xF36FFF, "Visitech AS", "VISITECH-AS" }, { 0x0050C2, 0xF37000, 0xF37FFF, "Rosslare Enterprises Limited", "ROSSLARE-ENTERPRISES" }, { 0x0050C2, 0xF38000, 0xF38FFF, "AeroControl, Inc.", "AEROCONTROL" }, { 0x0050C2, 0xF39000, 0xF39FFF, "InForce Computing, Inc.", "INFORCE-COMPUTING" }, { 0x0050C2, 0xF3A000, 0xF3AFFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xF3B000, 0xF3BFFF, "TAMS firmware co.", "TAMS-FIRMWARE" }, { 0x0050C2, 0xF3C000, 0xF3CFFF, "Vemco Sp. z o. o.", "VEMCO-SP-Z-O-O" }, { 0x0050C2, 0xF3D000, 0xF3DFFF, "Project service S.a.s", "PROJECT-SERVICE-S" }, { 0x0050C2, 0xF3E000, 0xF3EFFF, "Vtron Pty Ltd", "VTRON-PTY" }, { 0x0050C2, 0xF3F000, 0xF3FFFF, "DENSEI COMMUNICATION Inc.", "DENSEI-COMMUNICATION" }, { 0x0050C2, 0xF40000, 0xF40FFF, "iBWorld co.,ltd.", "IBWORLD" }, { 0x0050C2, 0xF41000, 0xF41FFF, "FairyDevices Inc.", "FAIRYDEVICES" }, { 0x0050C2, 0xF42000, 0xF42FFF, "DSPCon", "DSPCON" }, { 0x0050C2, 0xF43000, 0xF43FFF, "Special Systems Engineering Center LLC", "SPECIAL-ENGINEERING-CENTER" }, { 0x0050C2, 0xF44000, 0xF44FFF, "Steinbichler Optotechnik GmbH", "STEINBICHLER-OPTOTECHNIK" }, { 0x0050C2, 0xF45000, 0xF45FFF, "HUSTY M.Styczen J.Hupert Sp.J.", "HUSTY-M-STYCZEN-J-HUPERT-SP-J" }, { 0x0050C2, 0xF46000, 0xF46FFF, "Reason Tecnologia S.A.", "REASON-TECNOLOGIA" }, { 0x0050C2, 0xF47000, 0xF47FFF, "cadac,inc.", "CADAC" }, { 0x0050C2, 0xF48000, 0xF48FFF, "SHURE INCORPORATED", "SHURE-INCORPORATED" }, { 0x0050C2, 0xF49000, 0xF49FFF, "Green Instruments A/S", "GREEN-INSTRUMENTS-A/S" }, { 0x0050C2, 0xF4A000, 0xF4AFFF, "Z-App Systems, Inc.", "Z-APP" }, { 0x0050C2, 0xF4B000, 0xF4BFFF, "Supranet", "SUPRANET" }, { 0x0050C2, 0xF4C000, 0xF4CFFF, "Enistic Limited", "ENISTIC" }, { 0x0050C2, 0xF4D000, 0xF4DFFF, "KNOWHOW INFOCOM INC.", "KNOWHOW-INFOCOM" }, { 0x0050C2, 0xF4E000, 0xF4EFFF, "Heinzinger electronic GmbH", "HEINZINGER" }, { 0x0050C2, 0xF4F000, 0xF4FFFF, "BAP Precision Ltd.", "BAP-PRECISION" }, { 0x0050C2, 0xF50000, 0xF50FFF, "Moritex Corporation", "MORITEX" }, { 0x0050C2, 0xF51000, 0xF51FFF, "NDC Infrared Engineering, Inc.", "NDC-INFRARED-ENGINEERING" }, { 0x0050C2, 0xF52000, 0xF52FFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x0050C2, 0xF53000, 0xF53FFF, "BAYCOM OPTO-ELECTRONICS TECHNOLGY CO., LTD.", "BAYCOM-OPTO-ELECTRONICS-TECHNOLGY" }, { 0x0050C2, 0xF54000, 0xF54FFF, "Hella Gutmann Solutions GmbH", "HELLA-GUTMANN-SOLUTIONS" }, { 0x0050C2, 0xF55000, 0xF55FFF, "Honeywell", "HONEYWELL" }, { 0x0050C2, 0xF56000, 0xF56FFF, "Monsoon Solutions, Inc.", "MONSOON-SOLUTIONS" }, { 0x0050C2, 0xF57000, 0xF57FFF, "Reach Technologies Inc.", "REACH-TECHNOLOGIES" }, { 0x0050C2, 0xF58000, 0xF58FFF, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x0050C2, 0xF59000, 0xF59FFF, "G3 Technologies", "G3-TECHNOLOGIES" }, { 0x0050C2, 0xF5A000, 0xF5AFFF, "Sentry 360 Security", "SENTRY-360-SECURITY" }, { 0x0050C2, 0xF5B000, 0xF5BFFF, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x0050C2, 0xF5C000, 0xF5CFFF, "DSP DESIGN LTD", "DSP-DESIGN" }, { 0x0050C2, 0xF5D000, 0xF5DFFF, "SMARTB TECHNOLOGIES", "SMARTB-TECHNOLOGIES" }, { 0x0050C2, 0xF5E000, 0xF5EFFF, "Y-cam Solutions Ltd", "Y-CAM-SOLUTIONS" }, { 0x0050C2, 0xF5F000, 0xF5FFFF, "BORYEU TECHNOLOGY CO.,LTD", "BORYEU" }, { 0x0050C2, 0xF60000, 0xF60FFF, "Deckma GmbH", "DECKMA" }, { 0x0050C2, 0xF61000, 0xF61FFF, "Brauch Elektronik GmbH&Co.KG", "BRAUCH-ELEKTRONIK" }, { 0x0050C2, 0xF62000, 0xF62FFF, "EMAC, Inc.", "EMAC" }, { 0x0050C2, 0xF63000, 0xF63FFF, "Triax A/S", "TRIAX-A/S" }, { 0x0050C2, 0xF64000, 0xF64FFF, "Chrisso Technologies LLC", "CHRISSO-TECHNOLOGIES" }, { 0x0050C2, 0xF65000, 0xF65FFF, "Telebyte Inc.", "TELEBYTE" }, { 0x0050C2, 0xF66000, 0xF66FFF, "GWT LLC", "GWT" }, { 0x0050C2, 0xF67000, 0xF67FFF, "Celestial Audio", "CELESTIAL-AUDIO" }, { 0x0050C2, 0xF68000, 0xF68FFF, "Newtec A/S", "NEWTEC-A/S" }, { 0x0050C2, 0xF69000, 0xF69FFF, "Safe Place Solutions Ltd", "SAFE-PLACE-SOLUTIONS" }, { 0x0050C2, 0xF6A000, 0xF6AFFF, "OFI Inc. (dba 2D2C)", "OFI-DBA-2D2C" }, { 0x0050C2, 0xF6B000, 0xF6BFFF, "Algodue Elettronica Srl", "ALGODUE-ELETTRONICA-SRL" }, { 0x0050C2, 0xF6C000, 0xF6CFFF, "Pro Design Electronic GmbH", "PRO-DESIGN" }, { 0x0050C2, 0xF6D000, 0xF6DFFF, "Pro Design Electronic GmbH", "PRO-DESIGN" }, { 0x0050C2, 0xF6E000, 0xF6EFFF, "Smith Meter, Inc.", "SMITH-METER" }, { 0x0050C2, 0xF6F000, 0xF6FFFF, "Aplex Technology Inc.", "APLEX" }, { 0x0050C2, 0xF70000, 0xF70FFF, "Noralta Technologies Inc", "NORALTA-TECHNOLOGIES" }, { 0x0050C2, 0xF71000, 0xF71FFF, "RF Code", "RF-CODE" }, { 0x0050C2, 0xF72000, 0xF72FFF, "MaxDeTec AG", "MAXDETEC" }, { 0x0050C2, 0xF73000, 0xF73FFF, "DELTACAST.TV", "DELTACAST-TV" }, { 0x0050C2, 0xF74000, 0xF74FFF, "Thor Technologies Pty Ltd", "THOR-TECHNOLOGIES-PTY" }, { 0x0050C2, 0xF75000, 0xF75FFF, "PumpWell Solutions Ltd.", "PUMPWELL-SOLUTIONS" }, { 0x0050C2, 0xF76000, 0xF76FFF, "Rong Jie(FuZhou)Electronics Co.,Ltd", "RONG-JIE-FUZHOU-ELECTRONICS" }, { 0x0050C2, 0xF77000, 0xF77FFF, "SYSTEMTECHNIK GmbH", "SYSTEMTECHNIK" }, { 0x0050C2, 0xF78000, 0xF78FFF, "Gets MSS S.A.", "GETS-MSS" }, { 0x0050C2, 0xF79000, 0xF79FFF, "Tattile srl", "TATTILE-SRL" }, { 0x0050C2, 0xF7A000, 0xF7AFFF, "C3 LLC", "C3" }, { 0x0050C2, 0xF7B000, 0xF7BFFF, "MCM Electronics", "MCM-ELECTRONICS" }, { 0x0050C2, 0xF7C000, 0xF7CFFF, "Atonometrics, Inc.", "ATONOMETRICS" }, { 0x0050C2, 0xF7D000, 0xF7DFFF, "D-Hike Electroncs Technology Co.,Ltd", "D-HIKE-ELECTRONCS" }, { 0x0050C2, 0xF7E000, 0xF7EFFF, "TruTeq Wireless (Pty) Ltd", "TRUTEQ-WIRELESS-PTY" }, { 0x0050C2, 0xF7F000, 0xF7FFFF, "Dynamic Design", "DYNAMIC-DESIGN" }, { 0x0050C2, 0xF80000, 0xF80FFF, "SYS TEC electronic GmbH", "SYS-TEC" }, { 0x0050C2, 0xF81000, 0xF81FFF, "PLDA", "PLDA" }, { 0x0050C2, 0xF82000, 0xF82FFF, "Sincair Systems International", "SINCAIR" }, { 0x0050C2, 0xF83000, 0xF83FFF, "GSP Sprachtechnologie GmbH", "GSP-SPRACHTECHNOLOGIE" }, { 0x0050C2, 0xF84000, 0xF84FFF, "Dynon Instruments", "DYNON-INSTRUMENTS" }, { 0x0050C2, 0xF85000, 0xF85FFF, "Enetics, Inc.", "ENETICS" }, { 0x0050C2, 0xF86000, 0xF86FFF, "Audio Power Labs", "AUDIO-POWER-LABS" }, { 0x0050C2, 0xF87000, 0xF87FFF, "Vaisala Oyj", "VAISALA-OYJ" }, { 0x0050C2, 0xF88000, 0xF88FFF, "RTC Manufacturing Inc.", "RTC-MANUFACTURING" }, { 0x0050C2, 0xF89000, 0xF89FFF, "CSA Engineering AG", "CSA-ENGINEERING" }, { 0x0050C2, 0xF8A000, 0xF8AFFF, "EMAC, Inc.", "EMAC" }, { 0x0050C2, 0xF8B000, 0xF8BFFF, "comlet Verteilte Systeme GmbH", "COMLET-VERTEILTE-SYSTEME" }, { 0x0050C2, 0xF8C000, 0xF8CFFF, "UBSTechnology Co., Ltd", "UBSTECHNOLOGY" }, { 0x0050C2, 0xF8D000, 0xF8DFFF, "Guangdong East Power Co.,", "GUANGDONG-EAST-POWER" }, { 0x0050C2, 0xF8E000, 0xF8EFFF, "GPO", "GPO" }, { 0x0050C2, 0xF8F000, 0xF8FFFF, "Computerwise, Inc.", "COMPUTERWISE" }, { 0x0050C2, 0xF90000, 0xF90FFF, "SecureTech Systems, Inc.", "SECURETECH" }, { 0x0050C2, 0xF91000, 0xF91FFF, "RE2 Inc", "RE2" }, { 0x0050C2, 0xF92000, 0xF92FFF, "CONET Solutions GmbH", "CONET-SOLUTIONS" }, { 0x0050C2, 0xF93000, 0xF93FFF, "Baudisch Electronic GmbH", "BAUDISCH" }, { 0x0050C2, 0xF94000, 0xF94FFF, "Digital Barriers", "DIGITAL-BARRIERS" }, { 0x0050C2, 0xF95000, 0xF95FFF, "TTi LTD (Thurlby Thandar Instruments LTD)", "TTI-THURLBY-THANDAR-INSTRUMENTS" }, { 0x0050C2, 0xF96000, 0xF96FFF, "JLCooper Electronics", "JLCOOPER-ELECTRONICS" }, { 0x0050C2, 0xF97000, 0xF97FFF, "Sicon srl", "SICON-SRL" }, { 0x0050C2, 0xF98000, 0xF98FFF, "Infotech North America", "INFOTECH-NORTH-AMERICA" }, { 0x0050C2, 0xF99000, 0xF99FFF, "Dr. Neumann elektronik GmbH", "DR-NEUMANN-ELEKTRONIK" }, { 0x0050C2, 0xF9A000, 0xF9AFFF, "Telvent", "TELVENT" }, { 0x0050C2, 0xF9B000, 0xF9BFFF, "NEWELL TECHNOLOGIES LIMITED", "NEWELL-TECHNOLOGIES" }, { 0x0050C2, 0xF9C000, 0xF9CFFF, "R&D KOMETEH", "R-D-KOMETEH" }, { 0x0050C2, 0xF9D000, 0xF9DFFF, "JSC Kaluga Teletypes Manufacturing Plant", "JSC-KALUGA-TELETYPES-MANUFACTURING-PLANT" }, { 0x0050C2, 0xF9E000, 0xF9EFFF, "Matsusada Precision Inc.", "MATSUSADA-PRECISION" }, { 0x0050C2, 0xF9F000, 0xF9FFFF, "Nanjing SAC Power Grid Automation Co., Ltd.", "NANJING-SAC-POWER-GRID-AUTOMATION" }, { 0x0050C2, 0xFA0000, 0xFA0FFF, "Amplus Communication Pte Ltd", "AMPLUS-COMMUNICATION-PTE" }, { 0x0050C2, 0xFA1000, 0xFA1FFF, "N-Hands GmbH und Co KG", "N-HANDS-UND" }, { 0x0050C2, 0xFA2000, 0xFA2FFF, "Power-One", "POWER-ONE" }, { 0x0050C2, 0xFA3000, 0xFA3FFF, "Xemex NV", "XEMEX-NV" }, { 0x0050C2, 0xFA5000, 0xFA5FFF, "Intuitive Surgical, Inc", "INTUITIVE-SURGICAL" }, { 0x0050C2, 0xFA6000, 0xFA6FFF, "Hilkom digital GmbH", "HILKOM-DIGITAL" }, { 0x0050C2, 0xFA7000, 0xFA7FFF, "Exelis Inc.", "EXELIS" }, { 0x0050C2, 0xFA8000, 0xFA8FFF, "Yash SiQure Technologies India Pvt. Ltd.", "YASH-SIQURE-TECHNOLOGIES-INDIA-PVT" }, { 0x0050C2, 0xFA9000, 0xFA9FFF, "Hijet Print d.o.o.", "HIJET-PRINT-D-O-O" }, { 0x0050C2, 0xFAA000, 0xFAAFFF, "YJSYSTEM", "YJSYSTEM" }, { 0x0050C2, 0xFAB000, 0xFABFFF, "Aplex Technology Inc.", "APLEX" }, { 0x0050C2, 0xFAC000, 0xFACFFF, "ADETEL GROUP", "ADETEL-GROUP" }, { 0x0050C2, 0xFAD000, 0xFADFFF, "Finishing Brands", "FINISHING-BRANDS" }, { 0x0050C2, 0xFAE000, 0xFAEFFF, "ATI Automação Telecomunicações e Informática Ltda", "ATI-AUTOMAO-TELECOMUNICAES-E-INFORMTICA-LTDA" }, { 0x0050C2, 0xFAF000, 0xFAFFFF, "Vremya-CH JSC", "VREMYA-CH-JSC" }, { 0x0050C2, 0xFB0000, 0xFB0FFF, "Tateishi Kobisha Co.LTD", "TATEISHI-KOBISHA" }, { 0x0050C2, 0xFB1000, 0xFB1FFF, "MATELEX", "MATELEX" }, { 0x0050C2, 0xFB2000, 0xFB2FFF, "Preston Industries dba PolyScience", "PRESTON-INDUSTRIES-DBA-POLYSCIENCE" }, { 0x0050C2, 0xFB3000, 0xFB3FFF, "CT Company", "CT-COMPANY" }, { 0x0050C2, 0xFB4000, 0xFB4FFF, "MC-monitoring SA", "MC-MONITORING" }, { 0x0050C2, 0xFB5000, 0xFB5FFF, "Assembly Contracts Limited", "ASSEMBLY-CONTRACTS" }, { 0x0050C2, 0xFB6000, 0xFB6FFF, "ARGUS-SPECTRUM", "ARGUS-SPECTRUM" }, { 0x0050C2, 0xFB7000, 0xFB7FFF, "Pounce Consulting", "POUNCE-CONSULTING" }, { 0x0050C2, 0xFB8000, 0xFB8FFF, "TECHNO CO.,LTD.", "TECHNO" }, { 0x0050C2, 0xFB9000, 0xFB9FFF, "Coral Telecom Ltd", "CORAL-TELECOM" }, { 0x0050C2, 0xFBA000, 0xFBAFFF, "Elbit Systems of America", "ELBIT-OF-AMERICA" }, { 0x0050C2, 0xFBB000, 0xFBBFFF, "ACIDA GmbH", "ACIDA" }, { 0x0050C2, 0xFBC000, 0xFBCFFF, "Leroy Somer", "LEROY-SOMER" }, { 0x0050C2, 0xFBD000, 0xFBDFFF, "EATON FHF Funke + Huster Fernsig GmbH", "EATON-FHF-FUNKE-+-HUSTER-FERNSIG" }, { 0x0050C2, 0xFBE000, 0xFBEFFF, "senTec Elektronik GmbH", "SENTEC-ELEKTRONIK" }, { 0x0050C2, 0xFBF000, 0xFBFFFF, "MYLOGIC", "MYLOGIC" }, { 0x0050C2, 0xFC0000, 0xFC0FFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x0050C2, 0xFC1000, 0xFC1FFF, "Motec Pty Ltd", "MOTEC-PTY" }, { 0x0050C2, 0xFC2000, 0xFC2FFF, "ELTA", "ELTA" }, { 0x0050C2, 0xFC3000, 0xFC3FFF, "HSDC Sp. z o.o.", "HSDC-SP-Z-O-O" }, { 0x0050C2, 0xFC4000, 0xFC4FFF, "Kyowadensi", "KYOWADENSI" }, { 0x0050C2, 0xFC5000, 0xFC5FFF, "Sakura Seiki Co.,Ltd.", "SAKURA-SEIKI" }, { 0x0050C2, 0xFC6000, 0xFC6FFF, "Critical Link LLC", "CRITICAL-LINK" }, { 0x0050C2, 0xFC7000, 0xFC7FFF, "SERCOM Regeltechniek", "SERCOM-REGELTECHNIEK" }, { 0x0050C2, 0xFC8000, 0xFC8FFF, "Far South Networks", "FAR-SOUTH-NETWORKS" }, { 0x0050C2, 0xFC9000, 0xFC9FFF, "Mehta Tech, Inc.", "MEHTA-TECH" }, { 0x0050C2, 0xFCA000, 0xFCAFFF, "Telemisis Ltd", "TELEMISIS" }, { 0x0050C2, 0xFCB000, 0xFCBFFF, "Propagation Systems Limited", "PROPAGATION" }, { 0x0050C2, 0xFCC000, 0xFCCFFF, "Soudronic AG", "SOUDRONIC" }, { 0x0050C2, 0xFCD000, 0xFCDFFF, "Jinyoung Contech", "JINYOUNG-CONTECH" }, { 0x0050C2, 0xFCE000, 0xFCEFFF, "KOYO ELECTRIC", "KOYO-ELECTRIC" }, { 0x0050C2, 0xFCF000, 0xFCFFFF, "DINTEK Shanghai Electronic Ltd", "DINTEK-SHANGHAI" }, { 0x0050C2, 0xFD0000, 0xFD0FFF, "Simple Solutions", "SIMPLE-SOLUTIONS" }, { 0x0050C2, 0xFD1000, 0xFD1FFF, "Enyx SA", "ENYX" }, { 0x0050C2, 0xFD2000, 0xFD2FFF, "Autonomic Controls. Inc", "AUTONOMIC-CONTROLS" }, { 0x0050C2, 0xFD3000, 0xFD3FFF, "Aster Electric Co.,Ltd.", "ASTER-ELECTRIC" }, { 0x0050C2, 0xFD4000, 0xFD4FFF, "Insitu, Inc", "INSITU" }, { 0x0050C2, 0xFD5000, 0xFD5FFF, "American Microsystems, Ltd.", "AMERICAN-MICROSYSTEMS" }, { 0x0050C2, 0xFD6000, 0xFD6FFF, "City Computing Ltd", "CITY-COMPUTING" }, { 0x0050C2, 0xFD7000, 0xFD7FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x0050C2, 0xFD8000, 0xFD8FFF, "Ease Inc.", "EASE" }, { 0x0050C2, 0xFD9000, 0xFD9FFF, "Figment Design Laboratories", "FIGMENT-DESIGN-LABORATORIES" }, { 0x0050C2, 0xFDA000, 0xFDAFFF, "ELAN SYSTEMS", "ELAN" }, { 0x0050C2, 0xFDB000, 0xFDBFFF, "The Security Center Inc", "THE-SECURITY-CENTER" }, { 0x0050C2, 0xFDC000, 0xFDCFFF, "QUERCUS TECHNOLOGIES, S.L.", "QUERCUS-TECHNOLOGIES" }, { 0x0050C2, 0xFDD000, 0xFDDFFF, "Toptech Systems, Inc.", "TOPTECH" }, { 0x0050C2, 0xFDE000, 0xFDEFFF, "Peek Traffic", "PEEK-TRAFFIC" }, { 0x0050C2, 0xFDF000, 0xFDFFFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x0050C2, 0xFE0000, 0xFE0FFF, "Azurtest", "AZURTEST" }, { 0x0050C2, 0xFE1000, 0xFE1FFF, "dotOcean", "DOTOCEAN" }, { 0x0050C2, 0xFE2000, 0xFE2FFF, "Pulsotronic Anlagentechnik GmbH", "PULSOTRONIC-ANLAGENTECHNIK" }, { 0x0050C2, 0xFE3000, 0xFE3FFF, "Private", "PRIVATE" }, { 0x0050C2, 0xFE4000, 0xFE4FFF, "RTT Mobile Interpretation", "RTT-MOBILE-INTERPRETATION" }, { 0x0050C2, 0xFE5000, 0xFE5FFF, "Scandinova Systems AB", "SCANDINOVA-AB" }, { 0x0050C2, 0xFE6000, 0xFE6FFF, "Exibea AB", "EXIBEA-AB" }, { 0x0050C2, 0xFE7000, 0xFE7FFF, "Erhardt+Leimer GmbH", "ERHARDT+LEIMER" }, { 0x0050C2, 0xFE8000, 0xFE8FFF, "Mango DSP, Inc.", "MANGO-DSP" }, { 0x0050C2, 0xFE9000, 0xFE9FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x0050C2, 0xFEA000, 0xFEAFFF, "Brunel GmbH Section Communications", "BRUNEL-SECTION-COMMUNICATION" }, { 0x0050C2, 0xFEB000, 0xFEBFFF, "Axible Technologies", "AXIBLE-TECHNOLOGIES" }, { 0x0050C2, 0xFEC000, 0xFECFFF, "First System Technology Co., Ltd.", "FIRST-SYSTEM" }, { 0x0050C2, 0xFED000, 0xFEDFFF, "LOGISOL Kft.", "LOGISOL-KFT" }, { 0x0050C2, 0xFEE000, 0xFEEFFF, "Sparks Instruments SA", "SPARKS-INSTRUMENTS" }, { 0x0050C2, 0xFEF000, 0xFEFFFF, "Task Sistemas de Computacao", "TASK-SISTEMAS-DE-COMPUTACAO" }, { 0x0050C2, 0xFF0000, 0xFF0FFF, "GD Mission Systems", "GD-MISSION" }, { 0x0050C2, 0xFF1000, 0xFF1FFF, "DiTEST Fahrzeugdiagnose GmbH", "DITEST-FAHRZEUGDIAGNOSE" }, { 0x0050C2, 0xFF2000, 0xFF2FFF, "GLOBALCOM ENGINEERING SRL", "GLOBALCOM-ENGINEERING-SRL" }, { 0x0050C2, 0xFF3000, 0xFF3FFF, "CONTROL SYSTEMS Srl", "CONTROL-SRL" }, { 0x0050C2, 0xFF4000, 0xFF4FFF, "Burk Technology", "BURK" }, { 0x0050C2, 0xFF5000, 0xFF5FFF, "Flexkom Internet Pazarlama Bilipim ve Eoitim Hiz.Inp.Mim.Muh.Oto.Enerji San. Tic. A.p.", "FLEXKOM-INTERNET-PAZARLAMA-BILIPIM-VE-EOITIM-HIZ-INP-MIM-MUH-OTO-ENERJI-SAN-TIC-A-P" }, { 0x0050C2, 0xFF6000, 0xFF6FFF, "Booyco Electronics", "BOOYCO-ELECTRONICS" }, { 0x0050C2, 0xFF7000, 0xFF7FFF, "Human Intech", "HUMAN-INTECH" }, { 0x0050C2, 0xFF8000, 0xFF8FFF, "KST technology", "KST" }, { 0x0050C2, 0xFF9000, 0xFF9FFF, "AVA Monitoring AB", "AVA-MONITORING-AB" }, { 0x0050C2, 0xFFA000, 0xFFAFFF, "Nupoint Systems Inc.", "NUPOINT" }, { 0x0050C2, 0xFFB000, 0xFFBFFF, "SEFRAM", "SEFRAM" }, { 0x0050C2, 0xFFC000, 0xFFCFFF, "Spirent Communications", "SPIRENT-COMMUNICATION" }, { 0x0050C2, 0xFFD000, 0xFFDFFF, "Touchless Biometric Systems AG", "TOUCHLESS-BIOMETRIC" }, { 0x0050C2, 0xFFE000, 0xFFEFFF, "Sensata Technologies", "SENSATA-TECHNOLOGIES" }, { 0x0050C2, 0xFFF000, 0xFFFFFF, "MSR-Solutions GmbH", "MSR-SOLUTIONS" }, { 0x40D855, 0x000000, 0x000FFF, "XRONOS.INC", "XRONOS" }, { 0x40D855, 0x001000, 0x001FFF, "Vemotion", "VEMOTION" }, { 0x40D855, 0x002000, 0x002FFF, "Hangzhou Chenxiao Technologies Co. Ltd.", "HANGZHOU-CHENXIAO-TECHNOLOGIES" }, { 0x40D855, 0x003000, 0x003FFF, "AlphaNavigation coltd", "ALPHANAVIGATION-COLTD" }, { 0x40D855, 0x004000, 0x004FFF, "CR Magnetics, Inc.", "CR-MAGNETICS" }, { 0x40D855, 0x005000, 0x005FFF, "Monarch Instrument", "MONARCH-INSTRUMENT" }, { 0x40D855, 0x006000, 0x006FFF, "Bactest Limited", "BACTEST" }, { 0x40D855, 0x007000, 0x007FFF, "Digital Audio SA", "DIGITAL-AUDIO" }, { 0x40D855, 0x008000, 0x008FFF, "Kaori Industria Eletronica Ltda", "KAORI-INDUSTRIA-ELETRONICA-LTDA" }, { 0x40D855, 0x009000, 0x009FFF, "ClearSite Communications Inc.", "CLEARSITE-COMMUNICATION" }, { 0x40D855, 0x00A000, 0x00AFFF, "Sarana Sistem Mikro", "SARANA-SISTEM-MIKRO" }, { 0x40D855, 0x00B000, 0x00BFFF, "Gogo BA", "GOGO-BA" }, { 0x40D855, 0x00C000, 0x00CFFF, "Aplex Technology Inc.", "APLEX" }, { 0x40D855, 0x00D000, 0x00DFFF, "HuNS", "HUNS" }, { 0x40D855, 0x00E000, 0x00EFFF, "Brightwell Dispensers", "BRIGHTWELL-DISPENSERS" }, { 0x40D855, 0x00F000, 0x00FFFF, "DIGITAL DYNAMICS, INC.", "DIGITAL-DYNAMICS" }, { 0x40D855, 0x010000, 0x010FFF, "APG Cash Drawer, LLC", "APG-CASH-DRAWER" }, { 0x40D855, 0x011000, 0x011FFF, "Flexim Security Oy", "FLEXIM-SECURITY-OY" }, { 0x40D855, 0x012000, 0x012FFF, "Sencon Inc.", "SENCON" }, { 0x40D855, 0x013000, 0x013FFF, "Grande Vitesse Systems", "GRANDE-VITESSE" }, { 0x40D855, 0x014000, 0x014FFF, "Toni Studio", "TONI-STUDIO" }, { 0x40D855, 0x015000, 0x015FFF, "BITMILL srl", "BITMILL-SRL" }, { 0x40D855, 0x016000, 0x016FFF, "Par-Tech, Inc.", "PAR-TECH" }, { 0x40D855, 0x017000, 0x017FFF, "Franke Aquarotter GmbH", "FRANKE-AQUAROTTER" }, { 0x40D855, 0x018000, 0x018FFF, "STANEO SAS", "STANEO-SAS" }, { 0x40D855, 0x019000, 0x019FFF, "Nautel LTD", "NAUTEL" }, { 0x40D855, 0x01A000, 0x01AFFF, "MEGGITT DEFENSE SYSTEMS INC.", "MEGGITT-DEFENSE" }, { 0x40D855, 0x01B000, 0x01BFFF, "Audio Enhancement", "AUDIO-ENHANCEMENT" }, { 0x40D855, 0x01C000, 0x01CFFF, "BERG Cloud Limited", "BERG-CLOUD" }, { 0x40D855, 0x01D000, 0x01DFFF, "Scharco Elektronik GmbH", "SCHARCO-ELEKTRONIK" }, { 0x40D855, 0x01E000, 0x01EFFF, "A2S", "A2S" }, { 0x40D855, 0x01F000, 0x01FFFF, "Sitep Italia Spa", "SITEP-ITALIA-SPA" }, { 0x40D855, 0x020000, 0x020FFF, "ENTEC Electric & Electronic CO., LTD.", "ENTEC-ELECTRIC" }, { 0x40D855, 0x021000, 0x021FFF, "SMT D.O.O.", "SMT-D-O-O" }, { 0x40D855, 0x022000, 0x022FFF, "Digimerge Technology Inc", "DIGIMERGE" }, { 0x40D855, 0x023000, 0x023FFF, "Shanghai o-solution electronics & Technology Co., Ltd.", "SHANGHAI-O-SOLUTION-ELECTRONICS" }, { 0x40D855, 0x024000, 0x024FFF, "Electrical Geodesics Incorporated", "ELECTRICAL-GEODESICS-INCORPORATED" }, { 0x40D855, 0x025000, 0x025FFF, "Rosemount Analytical", "ROSEMOUNT-ANALYTICAL" }, { 0x40D855, 0x026000, 0x026FFF, "Symetrics Industries", "SYMETRICS-INDUSTRIES" }, { 0x40D855, 0x027000, 0x027FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x40D855, 0x028000, 0x028FFF, "Integrated Control Corp.", "INTEGRATED-CONTROL" }, { 0x40D855, 0x029000, 0x029FFF, "Depro Electronique", "DEPRO-ELECTRONIQUE" }, { 0x40D855, 0x02A000, 0x02AFFF, "Tinkerforge GmbH", "TINKERFORGE" }, { 0x40D855, 0x02B000, 0x02BFFF, "Nomatronics", "NOMATRONICS" }, { 0x40D855, 0x02C000, 0x02CFFF, "InventLab s.c.", "INVENTLAB-S-C" }, { 0x40D855, 0x02D000, 0x02DFFF, "Elgama Sistemos", "ELGAMA-SISTEMOS" }, { 0x40D855, 0x02E000, 0x02EFFF, "Circuitec Ind. Equip. Eletr. Ltda", "CIRCUITEC-IND-EQUIP-ELETR-LTDA" }, { 0x40D855, 0x02F000, 0x02FFFF, "Advatek Lighting Pty Ltd", "ADVATEK-LIGHTING-PTY" }, { 0x40D855, 0x030000, 0x030FFF, "Tecnologias Plexus", "TECNOLOGIAS-PLEXUS" }, { 0x40D855, 0x031000, 0x031FFF, "Dommel GmbH", "DOMMEL" }, { 0x40D855, 0x032000, 0x032FFF, "BETTINI SRL", "BETTINI-SRL" }, { 0x40D855, 0x033000, 0x033FFF, "Ermes Elettronica s.r.l.", "ERMES-ELETTRONICA" }, { 0x40D855, 0x034000, 0x034FFF, "Dacom West GmbH", "DACOM-WEST" }, { 0x40D855, 0x035000, 0x035FFF, "Mesotech International, Inc.", "MESOTECH" }, { 0x40D855, 0x036000, 0x036FFF, "Schweers informationstechnologie GmbH", "SCHWEERS-INFORMATIONSTECHNOLOGIE" }, { 0x40D855, 0x037000, 0x037FFF, "Software Workshop", "SOFTWARE-WORKSHOP" }, { 0x40D855, 0x038000, 0x038FFF, "Special Measurements Labs LLC", "SPECIAL-MEASUREMENTS-LABS" }, { 0x40D855, 0x039000, 0x039FFF, "CI Systems Ltd", "CI" }, { 0x40D855, 0x03A000, 0x03AFFF, "Socus networks", "SOCUS-NETWORKS" }, { 0x40D855, 0x03B000, 0x03BFFF, "Telcomkorea", "TELCOMKOREA" }, { 0x40D855, 0x03C000, 0x03CFFF, "Computer System Co.,Ltd", "SYSTEM" }, { 0x40D855, 0x03D000, 0x03DFFF, "Tekelek Europe Ltd", "TEKELEK-EUROPE" }, { 0x40D855, 0x03E000, 0x03EFFF, "Vishay Celtron Technologies, Inc.", "VISHAY-CELTRON-TECHNOLOGIES" }, { 0x40D855, 0x03F000, 0x03FFFF, "UniSVR Global Information Technology Corp.", "UNISVR-GLOBAL-INFORMATION" }, { 0x40D855, 0x040000, 0x040FFF, "GHL Systems Berhad", "GHL-BERHAD" }, { 0x40D855, 0x041000, 0x041FFF, "T.Q.M. Itaca Technology s.r.l.", "T-Q-M-ITACA" }, { 0x40D855, 0x042000, 0x042FFF, "Mango Communicaitons Inc.", "MANGO-COMMUNICAITONS" }, { 0x40D855, 0x043000, 0x043FFF, "SchulerControl GmbH", "SCHULERCONTROL" }, { 0x40D855, 0x044000, 0x044FFF, "An Chen Computer Co., Ltd.", "AN-CHEN" }, { 0x40D855, 0x045000, 0x045FFF, "Genadsystem", "GENADSYSTEM" }, { 0x40D855, 0x046000, 0x046FFF, "Circuitlink Pty Ltd", "CIRCUITLINK-PTY" }, { 0x40D855, 0x047000, 0x047FFF, "Dos&Donts SRL", "DOS-DONTS-SRL" }, { 0x40D855, 0x048000, 0x048FFF, "GD Mission Systems", "GD-MISSION" }, { 0x40D855, 0x049000, 0x049FFF, "Thermo Fisher Scientific", "THERMO-FISHER-SCIENTIFIC" }, { 0x40D855, 0x04A000, 0x04AFFF, "Gateway Technologies SA de CV", "GATEWAY-TECHNOLOGIES-DE-CV" }, { 0x40D855, 0x04B000, 0x04BFFF, "Vital Tech Industria e Comercio Ltda", "VITAL-TECH-INDUSTRIA-E-COMERCIO-LTDA" }, { 0x40D855, 0x04C000, 0x04CFFF, "Serveron Corporation", "SERVERON" }, { 0x40D855, 0x04D000, 0x04DFFF, "MACHINEPERFORMANCE ApS", "MACHINEPERFORMANCE-APS" }, { 0x40D855, 0x04E000, 0x04EFFF, "Honeywell International", "HONEYWELL" }, { 0x40D855, 0x04F000, 0x04FFFF, "Haein S&S Co., Ltd", "HAEIN-S-S" }, { 0x40D855, 0x050000, 0x050FFF, "ATG UV Technology", "ATG-UV" }, { 0x40D855, 0x051000, 0x051FFF, "CS Instruments Asia", "CS-INSTRUMENTS-ASIA" }, { 0x40D855, 0x052000, 0x052FFF, "DAN ELECTRONICS SYSTEM (P) LIMITED", "DAN-ELECTRONICS-SYSTEM-P" }, { 0x40D855, 0x053000, 0x053FFF, "Amantys Ltd", "AMANTYS" }, { 0x40D855, 0x054000, 0x054FFF, "VITEC", "VITEC" }, { 0x40D855, 0x055000, 0x055FFF, "Helmholtz Zentrum Dresden Rossendorf e.V.", "HELMHOLTZ-ZENTRUM-DRESDEN-ROSSENDORF" }, { 0x40D855, 0x056000, 0x056FFF, "GROUP 57", "GROUP-57" }, { 0x40D855, 0x057000, 0x057FFF, "Tammermatic Group Oy", "TAMMERMATIC-GROUP-OY" }, { 0x40D855, 0x058000, 0x058FFF, "Energy Team S.p.A.", "ENERGY-TEAM" }, { 0x40D855, 0x059000, 0x059FFF, "COLONIAL ASSEMBLY and DESIGN", "COLONIAL-ASSEMBLY-AND-DESIGN" }, { 0x40D855, 0x05A000, 0x05AFFF, "Ultra Electronics Flightline Systems", "ULTRA-ELECTRONICS-FLIGHTLINE" }, { 0x40D855, 0x05B000, 0x05BFFF, "Data Flow Systems, Inc.", "DATA-FLOW" }, { 0x40D855, 0x05C000, 0x05CFFF, "Rosslare Enterprises Limited", "ROSSLARE-ENTERPRISES" }, { 0x40D855, 0x05D000, 0x05DFFF, "Leica Biosystems", "LEICA-BIOSYSTEMS" }, { 0x40D855, 0x05E000, 0x05EFFF, "inoage GmbH", "INOAGE" }, { 0x40D855, 0x05F000, 0x05FFFF, "EPSa GmbH", "EPSA" }, { 0x40D855, 0x060000, 0x060FFF, "Aplex Technology Inc.", "APLEX" }, { 0x40D855, 0x061000, 0x061FFF, "Cominfo, Inc.", "COMINFO" }, { 0x40D855, 0x062000, 0x062FFF, "Tech Source Inc", "TECH-SOURCE" }, { 0x40D855, 0x063000, 0x063FFF, "Protonic Holland", "PROTONIC-HOLLAND" }, { 0x40D855, 0x064000, 0x064FFF, "HIPODROMO DE AGUA CALIENTE, S.A. DE C.V.", "HIPODROMO-DE-AGUA-CALIENTE-DE-C-V" }, { 0x40D855, 0x065000, 0x065FFF, "Parallel Wireless", "PARALLEL-WIRELESS" }, { 0x40D855, 0x066000, 0x066FFF, "TeraTron GmbH", "TERATRON" }, { 0x40D855, 0x067000, 0x067FFF, "Tronic Control ltd.", "TRONIC-CONTROL" }, { 0x40D855, 0x068000, 0x068FFF, "Oki Seatec Co., Ltd.", "OKI-SEATEC" }, { 0x40D855, 0x069000, 0x069FFF, "Smartcom-Bulgaria AD", "SMARTCOM-BULGARIA-AD" }, { 0x40D855, 0x06A000, 0x06AFFF, "elgris UG", "ELGRIS-UG" }, { 0x40D855, 0x06B000, 0x06BFFF, "BRS Sistemas Eletrônicos", "BRS-SISTEMAS-ELETRNICOS" }, { 0x40D855, 0x06C000, 0x06CFFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x40D855, 0x06D000, 0x06DFFF, "BroadSoft, INC", "BROADSOFT" }, { 0x40D855, 0x06E000, 0x06EFFF, "C-COM Satellite Systems Inc.", "C-COM-SATELLITE" }, { 0x40D855, 0x06F000, 0x06FFFF, "DORLET SAU", "DORLET-SAU" }, { 0x40D855, 0x070000, 0x070FFF, "JSC Electrical Equipment Factory", "JSC-ELECTRICAL-EQUIPMENT-FACTORY" }, { 0x40D855, 0x071000, 0x071FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x40D855, 0x072000, 0x072FFF, "CT Company", "CT-COMPANY" }, { 0x40D855, 0x073000, 0x073FFF, "Diamond Technologies, Inc", "DIAMOND-TECHNOLOGIES" }, { 0x40D855, 0x074000, 0x074FFF, "Sphere Medical Ltd", "SPHERE-MEDICAL" }, { 0x40D855, 0x075000, 0x075FFF, "Teraflops", "TERAFLOPS" }, { 0x40D855, 0x076000, 0x076FFF, "INTERNET PROTOCOLO LOGICA SL", "INTERNET-PROTOCOLO-LOGICA-SL" }, { 0x40D855, 0x077000, 0x077FFF, "TOEC TECHNOLOGY CO.,LTD", "TOEC" }, { 0x40D855, 0x078000, 0x078FFF, "NACHI-FUJIKOSHI CORP", "NACHI-FUJIKOSHI" }, { 0x40D855, 0x079000, 0x079FFF, "DelfiSolutions A/S", "DELFISOLUTIONS-A/S" }, { 0x40D855, 0x07A000, 0x07AFFF, "4embedded", "4EMBEDDED" }, { 0x40D855, 0x07B000, 0x07BFFF, "IPS Technology Limited", "IPS" }, { 0x40D855, 0x07C000, 0x07CFFF, "Agramkow Fluid Systems A/S", "AGRAMKOW-FLUID-A/S" }, { 0x40D855, 0x07D000, 0x07DFFF, "Wuxi SiNeng New Energy Co., Ltd.", "WUXI-SINENG-NEW-ENERGY" }, { 0x40D855, 0x07E000, 0x07EFFF, "TESCOM CORPORATION", "TESCOM" }, { 0x40D855, 0x07F000, 0x07FFFF, "Wheatstone Corporation", "WHEATSTONE" }, { 0x40D855, 0x080000, 0x080FFF, "Honeywell", "HONEYWELL" }, { 0x40D855, 0x081000, 0x081FFF, "Sicon srl", "SICON-SRL" }, { 0x40D855, 0x082000, 0x082FFF, "ard sa", "ARD" }, { 0x40D855, 0x083000, 0x083FFF, "DELOPT", "DELOPT" }, { 0x40D855, 0x084000, 0x084FFF, "Papendorf Software Engineering GmbH", "PAPENDORF-SOFTWARE-ENGINEERING" }, { 0x40D855, 0x085000, 0x085FFF, "Peek Traffic Corporation", "PEEK-TRAFFIC" }, { 0x40D855, 0x086000, 0x086FFF, "DSP DESIGN", "DSP-DESIGN" }, { 0x40D855, 0x087000, 0x087FFF, "Bestel China", "BESTEL-CHINA" }, { 0x40D855, 0x088000, 0x088FFF, "JEL SYSTEM CO., LTD.", "JEL-SYSTEM" }, { 0x40D855, 0x089000, 0x089FFF, "Wuhan Xingtuxinke ELectronic Co.,Ltd", "WUHAN-XINGTUXINKE" }, { 0x40D855, 0x08A000, 0x08AFFF, "Leder Elektronik Design", "LEDER-ELEKTRONIK-DESIGN" }, { 0x40D855, 0x08B000, 0x08BFFF, "MeshWorks Wireless Oy", "MESHWORKS-WIRELESS-OY" }, { 0x40D855, 0x08C000, 0x08CFFF, "Magnescale Co.,Ltd", "MAGNESCALE" }, { 0x40D855, 0x08D000, 0x08DFFF, "Boehme Nachrichtentechnik", "BOEHME-NACHRICHTENTECHNIK" }, { 0x40D855, 0x08E000, 0x08EFFF, "Lyngsoe Systems", "LYNGSOE" }, { 0x40D855, 0x08F000, 0x08FFFF, "Excelitas", "EXCELITAS" }, { 0x40D855, 0x090000, 0x090FFF, "Axxess Identification Ltd", "AXXESS-IDENTIFICATION" }, { 0x40D855, 0x091000, 0x091FFF, "KDT", "KDT" }, { 0x40D855, 0x092000, 0x092FFF, "Wasserbauer GmbH", "WASSERBAUER" }, { 0x40D855, 0x093000, 0x093FFF, "Sentry 360 Security", "SENTRY-360-SECURITY" }, { 0x40D855, 0x094000, 0x094FFF, "Nomad Digital Limited", "NOMAD-DIGITAL" }, { 0x40D855, 0x095000, 0x095FFF, "Heart Force Medical", "HEART-FORCE-MEDICAL" }, { 0x40D855, 0x096000, 0x096FFF, "Comtel Electronics GmbH", "COMTEL-ELECTRONICS" }, { 0x40D855, 0x097000, 0x097FFF, "Burton Technical Services LLC", "BURTON-TECHNICAL-SERVICES" }, { 0x40D855, 0x098000, 0x098FFF, "DAVE SRL", "DAVE-SRL" }, { 0x40D855, 0x099000, 0x099FFF, "idcell co.ltd", "IDCELL" }, { 0x40D855, 0x09A000, 0x09AFFF, "CoherentPlus Sdn Bhd", "COHERENTPLUS" }, { 0x40D855, 0x09B000, 0x09BFFF, "Tokyo Denki Gijutsu Kogyo", "TOKYO-DENKI-GIJUTSU-KOGYO" }, { 0x40D855, 0x09C000, 0x09CFFF, "Keyware Solutions Inc.", "KEYWARE-SOLUTIONS" }, { 0x40D855, 0x09D000, 0x09DFFF, "EMAC, Inc.", "EMAC" }, { 0x40D855, 0x09E000, 0x09EFFF, "NanoPulse, Inc.", "NANOPULSE" }, { 0x40D855, 0x09F000, 0x09FFFF, "Bascules Robbe nv", "BASCULES-ROBBE-NV" }, { 0x40D855, 0x0A0000, 0x0A0FFF, "Quantronix, Inc.", "QUANTRONIX" }, { 0x40D855, 0x0A1000, 0x0A1FFF, "ADVALY SYSTEM Inc.", "ADVALY-SYSTEM" }, { 0x40D855, 0x0A2000, 0x0A2FFF, "Xemex NV", "XEMEX-NV" }, { 0x40D855, 0x0A3000, 0x0A3FFF, "Telefrank GmbH", "TELEFRANK" }, { 0x40D855, 0x0A4000, 0x0A4FFF, "Resch Electronic Innovation GmbH", "RESCH-INNOVATION" }, { 0x40D855, 0x0A5000, 0x0A5FFF, "WooshCom Corporation", "WOOSHCOM" }, { 0x40D855, 0x0A6000, 0x0A6FFF, "Alumbra Produtos Elétricos e Eletrônicos Ltda", "ALUMBRA-PRODUTOS-ELTRICOS-E-ELETRNICOS-LTDA" }, { 0x40D855, 0x0A7000, 0x0A7FFF, "First Design System Inc.", "FIRST-DESIGN-SYSTEM" }, { 0x40D855, 0x0A8000, 0x0A8FFF, "Baudisch Electronic GmbH", "BAUDISCH" }, { 0x40D855, 0x0A9000, 0x0A9FFF, "Apantac LLC", "APANTAC" }, { 0x40D855, 0x0AA000, 0x0AAFFF, "Thermal Imaging Radar, LLC", "THERMAL-IMAGING-RADAR" }, { 0x40D855, 0x0AB000, 0x0ABFFF, "Enel doo Belgrade", "ENEL-DOO-BELGRADE" }, { 0x40D855, 0x0AC000, 0x0ACFFF, "Fraunhofer HHI", "FRAUNHOFER-HHI" }, { 0x40D855, 0x0AD000, 0x0ADFFF, "Space Micro", "SPACE-MICRO" }, { 0x40D855, 0x0AE000, 0x0AEFFF, "GD Mission Systems", "GD-MISSION" }, { 0x40D855, 0x0AF000, 0x0AFFFF, "EnVerv Inc.", "ENVERV" }, { 0x40D855, 0x0B0000, 0x0B0FFF, "Micrologic", "MICROLOGIC" }, { 0x40D855, 0x0B1000, 0x0B1FFF, "Nanjing TIANSU Automation Control System Co., Ltd.", "NANJING-TIANSU-AUTOMATION-CONTROL-SYSTEM" }, { 0x40D855, 0x0B2000, 0x0B2FFF, "Ever Trend Technology Development Limited", "EVER-TREND-DEVELOPMENT" }, { 0x40D855, 0x0B3000, 0x0B3FFF, "T.W.S. srl", "T-W-S-SRL" }, { 0x40D855, 0x0B4000, 0x0B4FFF, "MITSUBISHI ELECTRIC SYSTEM & SERVICE CO.,LTD.", "MITSUBISHI-ELECTRIC-SYSTEM-SERVICE" }, { 0x40D855, 0x0B5000, 0x0B5FFF, "DATA SHARING CONSULTING", "DATA-SHARING-CONSULTING" }, { 0x40D855, 0x0B6000, 0x0B6FFF, "Telvent", "TELVENT" }, { 0x40D855, 0x0B7000, 0x0B7FFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x40D855, 0x0B8000, 0x0B8FFF, "Ferlin Trading BV", "FERLIN-TRADING" }, { 0x40D855, 0x0B9000, 0x0B9FFF, "WxBR Sistemas de Telecomunicacoes Ltda", "WXBR-SISTEMAS-DE-TELECOMUNICACOES-LTDA" }, { 0x40D855, 0x0BA000, 0x0BAFFF, "PCH Engineering A/S", "PCH-ENGINEERING-A/S" }, { 0x40D855, 0x0BB000, 0x0BBFFF, "Whiptail", "WHIPTAIL" }, { 0x40D855, 0x0BC000, 0x0BCFFF, "Aplex Technology Inc.", "APLEX" }, { 0x40D855, 0x0BD000, 0x0BDFFF, "iCOGNIZE GmbH", "ICOGNIZE" }, { 0x40D855, 0x0BE000, 0x0BEFFF, "Manufacturing System Insights Inc", "MANUFACTURING-SYSTEM-INSIGHTS" }, { 0x40D855, 0x0BF000, 0x0BFFFF, "Shenzhen SETEC Power Co.,Ltd", "SHENZHEN-SETEC-POWER" }, { 0x40D855, 0x0C0000, 0x0C0FFF, "ACT", "ACT" }, { 0x40D855, 0x0C1000, 0x0C1FFF, "Xepto Computing Inc", "XEPTO-COMPUTING" }, { 0x40D855, 0x0C2000, 0x0C2FFF, "SC Techswarm SRL", "SC-TECHSWARM-SRL" }, { 0x40D855, 0x0C3000, 0x0C3FFF, "APG Cash Drawer, LLC", "APG-CASH-DRAWER" }, { 0x40D855, 0x0C4000, 0x0C4FFF, "Inspired Systems", "INSPIRED" }, { 0x40D855, 0x0C5000, 0x0C5FFF, "M.M. Elektrolab", "M-M-ELEKTROLAB" }, { 0x40D855, 0x0C6000, 0x0C6FFF, "comtime GmbH", "COMTIME" }, { 0x40D855, 0x0C7000, 0x0C7FFF, "insensiv GmbH", "INSENSIV" }, { 0x40D855, 0x0C8000, 0x0C8FFF, "Mettler Toledo", "METTLER-TOLEDO" }, { 0x40D855, 0x0C9000, 0x0C9FFF, "QUANTAFLOW", "QUANTAFLOW" }, { 0x40D855, 0x0CA000, 0x0CAFFF, "NEUTRIK AG", "NEUTRIK" }, { 0x40D855, 0x0CB000, 0x0CBFFF, "ReliOn Inc", "RELION" }, { 0x40D855, 0x0CC000, 0x0CCFFF, "ATEME", "ATEME" }, { 0x40D855, 0x0CD000, 0x0CDFFF, "Logical Product", "LOGICAL-PRODUCT" }, { 0x40D855, 0x0CE000, 0x0CEFFF, "EST Analytical", "EST-ANALYTICAL" }, { 0x40D855, 0x0CF000, 0x0CFFFF, "Clark-MXR, Inc.", "CLARK-MXR" }, { 0x40D855, 0x0D0000, 0x0D0FFF, "Icraft Oy", "ICRAFT-OY" }, { 0x40D855, 0x0D1000, 0x0D1FFF, "Cantada Inc", "CANTADA" }, { 0x40D855, 0x0D2000, 0x0D2FFF, "ELAN SYSTEMS", "ELAN" }, { 0x40D855, 0x0D3000, 0x0D3FFF, "LECO Corporation", "LECO" }, { 0x40D855, 0x0D4000, 0x0D4FFF, "Mitsubishi Heavy Industries, Ltd.", "MITSUBISHI-HEAVY-INDUSTRIES" }, { 0x40D855, 0x0D5000, 0x0D5FFF, "Shimizu Electric Co., Ltd.", "SHIMIZU-ELECTRIC" }, { 0x40D855, 0x0D6000, 0x0D6FFF, "deskontrol electronics", "DESKONTROL-ELECTRONICS" }, { 0x40D855, 0x0D7000, 0x0D7FFF, "Avant Technologies", "AVANT-TECHNOLOGIES" }, { 0x40D855, 0x0D8000, 0x0D8FFF, "NEXT! s.c. S.Piela B.Dryja", "NEXT!-S-C-S-PIELA-B-DRYJA" }, { 0x40D855, 0x0D9000, 0x0D9FFF, "YUKO ELECTRIC CO.,LTD", "YUKO-ELECTRIC" }, { 0x40D855, 0x0DA000, 0x0DAFFF, "Devialet SA", "DEVIALET" }, { 0x40D855, 0x0DB000, 0x0DBFFF, "Top Connect OU", "TOP-CONNECT-OU" }, { 0x40D855, 0x0DC000, 0x0DCFFF, "NVS Technologies Inc", "NVS-TECHNOLOGIES" }, { 0x40D855, 0x0DD000, 0x0DDFFF, "Embed Limited", "EMBED" }, { 0x40D855, 0x0DE000, 0x0DEFFF, "VPG", "VPG" }, { 0x40D855, 0x0DF000, 0x0DFFFF, "Xadi Inc", "XADI" }, { 0x40D855, 0x0E0000, 0x0E0FFF, "Richter", "RICHTER" }, { 0x40D855, 0x0E1000, 0x0E1FFF, "STV Electronic GmbH", "STV" }, { 0x40D855, 0x0E2000, 0x0E2FFF, "Keocko Holding Kft.", "KEOCKO-HOLDING-KFT" }, { 0x40D855, 0x0E3000, 0x0E3FFF, "Medigus Ltd", "MEDIGUS" }, { 0x40D855, 0x0E4000, 0x0E4FFF, "ARAGO SYSTEMS", "ARAGO" }, { 0x40D855, 0x0E5000, 0x0E5FFF, "Triton Electronics LTD", "TRITON-ELECTRONICS" }, { 0x40D855, 0x0E6000, 0x0E6FFF, "Kyoritsu Electric Corp.", "KYORITSU-ELECTRIC" }, { 0x40D855, 0x0E7000, 0x0E7FFF, "LIGHTSTAR", "LIGHTSTAR" }, { 0x40D855, 0x0E8000, 0x0E8FFF, "HEITEC AG", "HEITEC" }, { 0x40D855, 0x0E9000, 0x0E9FFF, "HAMEG GmbH", "HAMEG" }, { 0x40D855, 0x0EA000, 0x0EAFFF, "A-Z-E", "A-Z-E" }, { 0x40D855, 0x0EB000, 0x0EBFFF, "WANTECH Networks", "WANTECH-NETWORKS" }, { 0x40D855, 0x0EC000, 0x0ECFFF, "Sentry 360 Security", "SENTRY-360-SECURITY" }, { 0x40D855, 0x0ED000, 0x0EDFFF, "IntelliDesign Pty Ltd", "INTELLIDESIGN-PTY" }, { 0x40D855, 0x0EE000, 0x0EEFFF, "Siegmar Zander HuSWare", "SIEGMAR-ZANDER-HUSWARE" }, { 0x40D855, 0x0EF000, 0x0EFFFF, "GeneSys Elektronik GmbH", "GENESYS-ELEKTRONIK" }, { 0x40D855, 0x0F0000, 0x0F0FFF, "Redwood Systems", "REDWOOD" }, { 0x40D855, 0x0F1000, 0x0F1FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x40D855, 0x0F2000, 0x0F2FFF, "SigmaPhi Electronics", "SIGMAPHI-ELECTRONICS" }, { 0x40D855, 0x0F3000, 0x0F3FFF, "ECON Systems Inc.", "ECON" }, { 0x40D855, 0x0F4000, 0x0F4FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x40D855, 0x0F5000, 0x0F5FFF, "CST Group", "CST-GROUP" }, { 0x40D855, 0x0F6000, 0x0F6FFF, "Private", "PRIVATE" }, { 0x40D855, 0x0F7000, 0x0F7FFF, "Comline Elektronik Elektrotechnik GmbH", "COMLINE-ELEKTRONIK-ELEKTROTECHNIK" }, { 0x40D855, 0x0F8000, 0x0F8FFF, "Better Place", "BETTER-PLACE" }, { 0x40D855, 0x0F9000, 0x0F9FFF, "Invisua Lighting BV", "INVISUA-LIGHTING" }, { 0x40D855, 0x0FA000, 0x0FAFFF, "Marmitek BV", "MARMITEK" }, { 0x40D855, 0x0FB000, 0x0FBFFF, "InfoMac Sp. z o. o. Sp. k.", "INFOMAC-SP-Z-O-O-SP-K" }, { 0x40D855, 0x0FC000, 0x0FCFFF, "eumig industrie-tv GmbH", "EUMIG-INDUSTRIE-TV" }, { 0x40D855, 0x0FD000, 0x0FDFFF, "MONOGRAM technologies ltd", "MONOGRAM-TECHNOLOGIES" }, { 0x40D855, 0x0FE000, 0x0FEFFF, "Cytech Technology Pte Ltd", "CYTECH-PTE" }, { 0x40D855, 0x0FF000, 0x0FFFFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x40D855, 0x100000, 0x100FFF, "TASK SISTEMAS DE COMPUTACAO S.A.", "TASK-SISTEMAS-DE-COMPUTACAO" }, { 0x40D855, 0x101000, 0x101FFF, "e.p.g. Elettronica Srl", "E-P-G-ELETTRONICA-SRL" }, { 0x40D855, 0x102000, 0x102FFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x40D855, 0x103000, 0x103FFF, "Peek Traffic Corporation", "PEEK-TRAFFIC" }, { 0x40D855, 0x104000, 0x104FFF, "IMPLE SISTEMAS ELETRONICOS EMBARCADOS LTDA", "IMPLE-SISTEMAS-ELETRONICOS-EMBARCADOS-LTDA" }, { 0x40D855, 0x105000, 0x105FFF, "Tieline Research Pty Ltd", "TIELINE-RESEARCH-PTY" }, { 0x40D855, 0x106000, 0x106FFF, "Orbital A/S", "ORBITAL-A/S" }, { 0x40D855, 0x107000, 0x107FFF, "Smith Meter, Inc", "SMITH-METER" }, { 0x40D855, 0x108000, 0x108FFF, "ALPHA DESIGN CO.,LTD.", "ALPHA-DESIGN" }, { 0x40D855, 0x109000, 0x109FFF, "Rosslare Enterprises Limited", "ROSSLARE-ENTERPRISES" }, { 0x40D855, 0x10A000, 0x10AFFF, "DAVIS DERBY LIMITED", "DAVIS-DERBY" }, { 0x40D855, 0x10B000, 0x10BFFF, "So-Cool Corporation.", "SO-COOL" }, { 0x40D855, 0x10C000, 0x10CFFF, "Contrans TI sp. z o.o.", "CONTRANS-TI-SP-Z-O-O" }, { 0x40D855, 0x10D000, 0x10DFFF, "Rite-Tech Industrial Co., Ltd.", "RITE-TECH-INDUSTRIAL" }, { 0x40D855, 0x10E000, 0x10EFFF, "HKS-Prozesstechnik GmbH", "HKS-PROZESSTECHNIK" }, { 0x40D855, 0x10F000, 0x10FFFF, "CAVALRY STORAGE INC", "CAVALRY-STORAGE" }, { 0x40D855, 0x110000, 0x110FFF, "Aplex Technology Inc.", "APLEX" }, { 0x40D855, 0x111000, 0x111FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x40D855, 0x112000, 0x112FFF, "Halliburton - Sperry Drilling Service", "HALLIBURTON-SPERRY-DRILLING-SERVICE" }, { 0x40D855, 0x113000, 0x113FFF, "Testbook Ltd", "TESTBOOK" }, { 0x40D855, 0x114000, 0x114FFF, "GD Mission Systems", "GD-MISSION" }, { 0x40D855, 0x115000, 0x115FFF, "MESA Electronic GmbH", "MESA" }, { 0x40D855, 0x116000, 0x116FFF, "Uniscan LLC", "UNISCAN" }, { 0x40D855, 0x117000, 0x117FFF, "RCS Energy Management Limited", "RCS-ENERGY-MANAGEMENT" }, { 0x40D855, 0x118000, 0x118FFF, "University of Nebraska -- Lincoln", "UNIVERSITY-OF-NEBRASKA-LINCOLN" }, { 0x40D855, 0x119000, 0x119FFF, "OOO Group of Industrial Technologies", "OOO-GROUP-OF-INDUSTRIAL-TECHNOLOGIES" }, { 0x40D855, 0x11A000, 0x11AFFF, "Sicon srl", "SICON-SRL" }, { 0x40D855, 0x11B000, 0x11BFFF, "nanoTRONIC GmbH", "NANOTRONIC" }, { 0x40D855, 0x11C000, 0x11CFFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x40D855, 0x11D000, 0x11DFFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x40D855, 0x11E000, 0x11EFFF, "CEMSI, Inc.", "CEMSI" }, { 0x40D855, 0x11F000, 0x11FFFF, "KOMPAN Pawel Sokolowski", "KOMPAN-PAWEL-SOKOLOWSKI" }, { 0x40D855, 0x120000, 0x120FFF, "ObjectFab GmbH", "OBJECTFAB" }, { 0x40D855, 0x121000, 0x121FFF, "shanghai Anjian Information technology co. , ltd.", "SHANGHAI-ANJIAN-INFORMATION" }, { 0x40D855, 0x122000, 0x122FFF, "ATX Networks Ltd.", "ATX-NETWORKS" }, { 0x40D855, 0x123000, 0x123FFF, "ZAO NPC Kompjuternie Technologii", "ZAO-NPC-KOMPJUTERNIE-TECHNOLOGII" }, { 0x40D855, 0x124000, 0x124FFF, "Debug s.r.l.", "DEBUG" }, { 0x40D855, 0x125000, 0x125FFF, "Scandyna A/S", "SCANDYNA-A/S" }, { 0x40D855, 0x126000, 0x126FFF, "TTI LTD", "TTI" }, { 0x40D855, 0x127000, 0x127FFF, "LIGHTSTAR", "LIGHTSTAR" }, { 0x40D855, 0x128000, 0x128FFF, "Akse srl", "AKSE-SRL" }, { 0x40D855, 0x129000, 0x129FFF, "DSP DESIGN", "DSP-DESIGN" }, { 0x40D855, 0x12A000, 0x12AFFF, "Jadpod Communication Company Limited", "JADPOD-COMMUNICATION-COMPANY" }, { 0x40D855, 0x12B000, 0x12BFFF, "Mango DSP, Inc.", "MANGO-DSP" }, { 0x40D855, 0x12C000, 0x12CFFF, "NSP Europe Ltd", "NSP-EUROPE" }, { 0x40D855, 0x12D000, 0x12DFFF, "Biotage Sweden AB", "BIOTAGE-SWEDEN-AB" }, { 0x40D855, 0x12E000, 0x12EFFF, "Canfield Scientific, Inc.", "CANFIELD-SCIENTIFIC" }, { 0x40D855, 0x12F000, 0x12FFFF, "Private", "PRIVATE" }, { 0x40D855, 0x130000, 0x130FFF, "GSP Sprachtechnologie GmbH", "GSP-SPRACHTECHNOLOGIE" }, { 0x40D855, 0x131000, 0x131FFF, "EMAC, Inc.", "EMAC" }, { 0x40D855, 0x132000, 0x132FFF, "AeroVision Avionics, Inc", "AEROVISION-AVIONICS" }, { 0x40D855, 0x133000, 0x133FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x40D855, 0x134000, 0x134FFF, "digitech GmbH & Co. KG", "DIGITECH-AMP" }, { 0x40D855, 0x135000, 0x135FFF, "GLOBALCOM ENGINEERING SRL", "GLOBALCOM-ENGINEERING-SRL" }, { 0x40D855, 0x136000, 0x136FFF, "Devriecom B.V.", "DEVRIECOM-B-V" }, { 0x40D855, 0x137000, 0x137FFF, "GDE Polska", "GDE-POLSKA" }, { 0x40D855, 0x138000, 0x138FFF, "Calon Associates Limited", "CALON-ASSOCIATES" }, { 0x40D855, 0x139000, 0x139FFF, "WOW System", "WOW-SYSTEM" }, { 0x40D855, 0x13A000, 0x13AFFF, "Supplier Ind. e Com de Eletroeletrônicos", "SUPPLIER-IND-E-COM-DE-ELETROELETRNICOS" }, { 0x40D855, 0x13B000, 0x13BFFF, "Davin Technologies Co.,Ltd", "DAVIN-TECHNOLOGIES" }, { 0x40D855, 0x13C000, 0x13CFFF, "shanghai Anjian Information technology co. , ltd.", "SHANGHAI-ANJIAN-INFORMATION" }, { 0x40D855, 0x13D000, 0x13DFFF, "Perm Scientific-Industrial Instrument Making Company JSC", "PERM-SCIENTIFIC-INDUSTRIAL-INSTRUMENT-MAKING-COMPANY-JSC" }, { 0x40D855, 0x13E000, 0x13EFFF, "hanatech", "HANATECH" }, { 0x40D855, 0x13F000, 0x13FFFF, "Zhejiang Wellsun Electric Meter Co.,Ltd", "ZHEJIANG-WELLSUN-ELECTRIC-METER" }, { 0x40D855, 0x140000, 0x140FFF, "InnoTrans Communications, Inc", "INNOTRANS-COMMUNICATION" }, { 0x40D855, 0x141000, 0x141FFF, "Key Systems, Inc.", "KEY" }, { 0x40D855, 0x142000, 0x142FFF, "Tetracore, Inc.", "TETRACORE" }, { 0x40D855, 0x143000, 0x143FFF, "Tokyo Drawing Ltd.", "TOKYO-DRAWING" }, { 0x40D855, 0x144000, 0x144FFF, "Venco", "VENCO" }, { 0x40D855, 0x145000, 0x145FFF, "Weber Marking Systems GmbH", "WEBER-MARKING" }, { 0x40D855, 0x146000, 0x146FFF, "Pleiger Elektronik GmbH and Co. KG", "PLEIGER-ELEKTRONIK" }, { 0x40D855, 0x147000, 0x147FFF, "Aplex Technology Inc.", "APLEX" }, { 0x40D855, 0x148000, 0x148FFF, "SEIKO TIME SYSTEMS INC.", "SEIKO-TIME" }, { 0x40D855, 0x149000, 0x149FFF, "Engage Technologies", "ENGAGE-TECHNOLOGIES" }, { 0x40D855, 0x14A000, 0x14AFFF, "GD Mission Systems", "GD-MISSION" }, { 0x40D855, 0x14B000, 0x14BFFF, "Vocality International Ltd", "VOCALITY" }, { 0x40D855, 0x14C000, 0x14CFFF, "PLT", "PLT" }, { 0x40D855, 0x14D000, 0x14DFFF, "SOMFY SAS", "SOMFY-SAS" }, { 0x40D855, 0x14E000, 0x14EFFF, "Marposs S.p.A", "MARPOSS" }, { 0x40D855, 0x14F000, 0x14FFFF, "TDS Software Solutions Pty Ltd", "TDS-SOFTWARE-SOLUTIONS-PTY" }, { 0x40D855, 0x150000, 0x150FFF, "SHIKINO HIGH-TECH", "SHIKINO-HIGH-TECH" }, { 0x40D855, 0x151000, 0x151FFF, "Progress Rail Services, Inspection and Information Systems", "PROGRESS-RAIL-SERVICES-INSPECTION-AND-INFORMATION" }, { 0x40D855, 0x152000, 0x152FFF, "Home Automation Europe", "HOME-AUTOMATION-EUROPE" }, { 0x40D855, 0x153000, 0x153FFF, "BlinkPipe Ltd", "BLINKPIPE" }, { 0x40D855, 0x154000, 0x154FFF, "iart", "IART" }, { 0x40D855, 0x155000, 0x155FFF, "Telefrang AB", "TELEFRANG-AB" }, { 0x40D855, 0x156000, 0x156FFF, "Emphysys, Inc.", "EMPHYSYS" }, { 0x40D855, 0x157000, 0x157FFF, "Hitachi Power Solutions Co., Ltd.", "HITACHI-POWER-SOLUTIONS" }, { 0x40D855, 0x158000, 0x158FFF, "Exibea AB", "EXIBEA-AB" }, { 0x40D855, 0x159000, 0x159FFF, "PLATINUM GmbH", "PLATINUM" }, { 0x40D855, 0x15A000, 0x15AFFF, "DORLET SAU", "DORLET-SAU" }, { 0x40D855, 0x15B000, 0x15BFFF, "SQF Spezialelektronik GmbH", "SQF-SPEZIALELEKTRONIK" }, { 0x40D855, 0x15C000, 0x15CFFF, "Spectratech Inc.", "SPECTRATECH" }, { 0x40D855, 0x15D000, 0x15DFFF, "Actronic Technologies", "ACTRONIC-TECHNOLOGIES" }, { 0x40D855, 0x15E000, 0x15EFFF, "Prodco International Inc.", "PRODCO" }, { 0x40D855, 0x15F000, 0x15FFFF, "CT Company", "CT-COMPANY" }, { 0x40D855, 0x160000, 0x160FFF, "Thermo Fisher Sceintific", "THERMO-FISHER-SCEINTIFIC" }, { 0x40D855, 0x161000, 0x161FFF, "Solidscape Inc", "SOLIDSCAPE" }, { 0x40D855, 0x162000, 0x162FFF, "LUNA-NEXUS", "LUNA-NEXUS" }, { 0x40D855, 0x163000, 0x163FFF, "KMtronic ltd", "KMTRONIC" }, { 0x40D855, 0x164000, 0x164FFF, "NFT Automatisierungssysteme GmbH", "NFT-AUTOMATISIERUNGSSYSTEME" }, { 0x40D855, 0x165000, 0x165FFF, "TECHBOARD SRL", "TECHBOARD-SRL" }, { 0x40D855, 0x166000, 0x166FFF, "Anhui Jiante Network Technology Co., Ltd.", "ANHUI-JIANTE-NETWORK" }, { 0x40D855, 0x167000, 0x167FFF, "Assembly Contracts Ltd", "ASSEMBLY-CONTRACTS" }, { 0x40D855, 0x168000, 0x168FFF, "OPASCA Systems GmbH", "OPASCA" }, { 0x40D855, 0x169000, 0x169FFF, "Photop Koncent", "PHOTOP-KONCENT" }, { 0x40D855, 0x16A000, 0x16AFFF, "Aplex Technology Inc.", "APLEX" }, { 0x40D855, 0x16B000, 0x16BFFF, "TECHWAY", "TECHWAY" }, { 0x40D855, 0x16C000, 0x16CFFF, "Private", "PRIVATE" }, { 0x40D855, 0x16D000, 0x16DFFF, "GD Mission Systems", "GD-MISSION" }, { 0x40D855, 0x16E000, 0x16EFFF, "Secuinfo Co.Ltd", "SECUINFO" }, { 0x40D855, 0x16F000, 0x16FFFF, "BrightLeaf Power", "BRIGHTLEAF-POWER" }, { 0x40D855, 0x170000, 0x170FFF, "ICS Eletronics", "ICS-ELETRONICS" }, { 0x40D855, 0x171000, 0x171FFF, "Sicon srl", "SICON-SRL" }, { 0x40D855, 0x172000, 0x172FFF, "YAWATA ELECTRIC INDUSTRIAL CO.,LTD.", "YAWATA-ELECTRIC-INDUSTRIAL" }, { 0x40D855, 0x173000, 0x173FFF, "Contec Steuerungstechnik & Automation GmbH", "CONTEC-STEUERUNGSTECHNIK-AUTOMATION" }, { 0x40D855, 0x174000, 0x174FFF, "EcoGuard AB", "ECOGUARD-AB" }, { 0x40D855, 0x175000, 0x175FFF, "AHB Systeme GmbH", "AHB-SYSTEME" }, { 0x40D855, 0x176000, 0x176FFF, "Schneider Electric Motion, Inc. USA", "SCHNEIDER-ELECTRIC-MOTION-USA" }, { 0x40D855, 0x177000, 0x177FFF, "TRI Engineering co.,ltd.", "TRI-ENGINEERING" }, { 0x40D855, 0x178000, 0x178FFF, "REDER Domotic GmbH", "REDER-DOMOTIC" }, { 0x40D855, 0x179000, 0x179FFF, "Servo-Robot Inc.", "SERVO-ROBOT" }, { 0x40D855, 0x17A000, 0x17AFFF, "ARGUS-SPECTRUM", "ARGUS-SPECTRUM" }, { 0x40D855, 0x17B000, 0x17BFFF, "LUCEO", "LUCEO" }, { 0x40D855, 0x17C000, 0x17CFFF, "Critical Link LLC", "CRITICAL-LINK" }, { 0x40D855, 0x17D000, 0x17DFFF, "Kiwigrid GmbH", "KIWIGRID" }, { 0x40D855, 0x17E000, 0x17EFFF, "TOKHATEC", "TOKHATEC" }, { 0x40D855, 0x17F000, 0x17FFFF, "Telvent", "TELVENT" }, { 0x40D855, 0x180000, 0x180FFF, "BroadSoft Inc", "BROADSOFT" }, { 0x40D855, 0x181000, 0x181FFF, "eROCCA", "EROCCA" }, { 0x40D855, 0x182000, 0x182FFF, "Georg Neumann GmbH", "GEORG-NEUMANN" }, { 0x40D855, 0x183000, 0x183FFF, "EMAC, Inc.", "EMAC" }, { 0x40D855, 0x184000, 0x184FFF, "Satkirit Ltd", "SATKIRIT" }, { 0x40D855, 0x185000, 0x185FFF, "Standard Change Makers", "STANDARD-CHANGE-MAKERS" }, { 0x40D855, 0x186000, 0x186FFF, "KST technology", "KST" }, { 0x40D855, 0x187000, 0x187FFF, "CDEX Corp.", "CDEX" }, { 0x40D855, 0x188000, 0x188FFF, "Array Corporation", "ARRAY" }, { 0x40D855, 0x189000, 0x189FFF, "Yoozma Corporation", "YOOZMA" }, { 0x40D855, 0x18A000, 0x18AFFF, "Aplex Technology Inc.", "APLEX" }, { 0x40D855, 0x18B000, 0x18BFFF, "Diagnosys Test Systems Ltd", "DIAGNOSYS-TEST" }, { 0x40D855, 0x18C000, 0x18CFFF, "EOS S.r.l.", "EOS" }, { 0x40D855, 0x18D000, 0x18DFFF, "Zoe Medical", "ZOE-MEDICAL" }, { 0x40D855, 0x18E000, 0x18EFFF, "Kerun Visual Technology Co., Ltd.(Shenzhen)", "KERUN-VISUAL-SHENZHEN" }, { 0x40D855, 0x18F000, 0x18FFFF, "Beat Sensing co. , ltd.", "BEAT-SENSING" }, { 0x40D855, 0x190000, 0x190FFF, "Spider Tecnologia Ind. e Com Ltda", "SPIDER-TECNOLOGIA-IND-E-COM-LTDA" }, { 0x40D855, 0x191000, 0x191FFF, "Soukai Electric", "SOUKAI-ELECTRIC" }, { 0x40D855, 0x192000, 0x192FFF, "GD Mission Systems", "GD-MISSION" }, { 0x40D855, 0x193000, 0x193FFF, "FORZA SILICON CORP.", "FORZA-SILICON" }, { 0x40D855, 0x194000, 0x194FFF, "RF Code", "RF-CODE" }, { 0x40D855, 0x195000, 0x195FFF, "TONNA ELECTRONIQUE", "TONNA-ELECTRONIQUE" }, { 0x40D855, 0x196000, 0x196FFF, "Advanced Micro Controls Inc.", "ADVANCED-MICRO-CONTROLS" }, { 0x40D855, 0x197000, 0x197FFF, "Berg Cloud Limited", "BERG-CLOUD" }, { 0x40D855, 0x198000, 0x198FFF, "devboards GmbH", "DEVBOARDS" }, { 0x40D855, 0x199000, 0x199FFF, "PRESSOL Schmiergeraete GmbH", "PRESSOL-SCHMIERGERAETE" }, { 0x40D855, 0x19A000, 0x19AFFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x40D855, 0x19B000, 0x19BFFF, "Northern Star Technologies", "NORTHERN-STAR-TECHNOLOGIES" }, { 0x40D855, 0x19C000, 0x19CFFF, "Parris Service Corporation", "PARRIS-SERVICE" }, { 0x40D855, 0x19D000, 0x19DFFF, "EMAC, Inc.", "EMAC" }, { 0x40D855, 0x19E000, 0x19EFFF, "Thirdwayv Inc.", "THIRDWAYV" }, { 0x40D855, 0x19F000, 0x19FFFF, "Patria Aviation Oy", "PATRIA-AVIATION-OY" }, { 0x40D855, 0x1A0000, 0x1A0FFF, "Futaba Corporation", "FUTABA" }, { 0x40D855, 0x1A1000, 0x1A1FFF, "KRONOTECH SRL", "KRONOTECH-SRL" }, { 0x40D855, 0x1A2000, 0x1A2FFF, "HIPODROMO DE AGUA CALIENTE, S.A. DE C.V.", "HIPODROMO-DE-AGUA-CALIENTE-DE-C-V" }, { 0x40D855, 0x1A3000, 0x1A3FFF, "Noritake Itron Corporation", "NORITAKE-ITRON" }, { 0x40D855, 0x1A4000, 0x1A4FFF, "cibite AG", "CIBITE" }, { 0x40D855, 0x1A5000, 0x1A5FFF, "DemoPad", "DEMOPAD" }, { 0x40D855, 0x1A6000, 0x1A6FFF, "RB-LINK Wireless", "RB-LINK-WIRELESS" }, { 0x40D855, 0x1A7000, 0x1A7FFF, "ENTEC Electric & Electronic CO., LTD", "ENTEC-ELECTRIC" }, { 0x40D855, 0x1A8000, 0x1A8FFF, "Multiobrabotka", "MULTIOBRABOTKA" }, { 0x40D855, 0x1A9000, 0x1A9FFF, "Lubino s.r.o.", "LUBINO-S-R-O" }, { 0x40D855, 0x1AA000, 0x1AAFFF, "Broachlink Technology Co.,Limited", "BROACHLINK" }, { 0x40D855, 0x1AB000, 0x1ABFFF, "Rosslare Enterprises Limited", "ROSSLARE-ENTERPRISES" }, { 0x40D855, 0x1AC000, 0x1ACFFF, "ELAN SYSTEMS", "ELAN" }, { 0x40D855, 0x1AD000, 0x1ADFFF, "WICHER DIGITAL TECHNIK", "WICHER-DIGITAL-TECHNIK" }, { 0x40D855, 0x1AE000, 0x1AEFFF, "Autonomous Solutions, Inc", "AUTONOMOUS-SOLUTIONS" }, { 0x40D855, 0x1AF000, 0x1AFFFF, "Vigitron Inc.", "VIGITRON" }, { 0x40D855, 0x1B0000, 0x1B0FFF, "Shin-ei Electronic Measuring Co.,Ltd.", "SHIN-EI-MEASURING" }, { 0x40D855, 0x1B1000, 0x1B1FFF, "Logos 01 S.r.l.", "LOGOS-01" }, { 0x40D855, 0x1B2000, 0x1B2FFF, "AGE A. Gilg Elektronik", "AGE-A-GILG-ELEKTRONIK" }, { 0x40D855, 0x1B3000, 0x1B3FFF, "BETTINI SRL", "BETTINI-SRL" }, { 0x40D855, 0x1B4000, 0x1B4FFF, "Inforce Computing Inc.", "INFORCE-COMPUTING" }, { 0x40D855, 0x1B5000, 0x1B5FFF, "A+EC Klein Ingenieurbuero", "A+EC-KLEIN-INGENIEURBUERO" }, { 0x40D855, 0x1B6000, 0x1B6FFF, "Magic Systems", "MAGIC" }, { 0x40D855, 0x1B7000, 0x1B7FFF, "TEWS Elektronik GmbH & Co. KG", "TEWS-ELEKTRONIK" }, { 0x40D855, 0x1B8000, 0x1B8FFF, "Orion Systems, Inc", "ORION" }, { 0x40D855, 0x1B9000, 0x1B9FFF, "Beking Industrieele automatisering", "BEKING-INDUSTRIEELE-AUTOMATISERING" }, { 0x40D855, 0x1BA000, 0x1BAFFF, "Creative Lighting And Sound Systems Pty Ltd", "CREATIVE-LIGHTING-AND-SOUND-PTY" }, { 0x40D855, 0x1BB000, 0x1BBFFF, "Micromega Dynamics SA", "MICROMEGA-DYNAMICS" }, { 0x40D855, 0x1BC000, 0x1BCFFF, "KbDevice,Inc.", "KBDEVICE" }, { 0x40D855, 0x1BD000, 0x1BDFFF, "HORIBA ABX SAS", "HORIBA-ABX-SAS" }, { 0x40D855, 0x1BE000, 0x1BEFFF, "Peek Traffic", "PEEK-TRAFFIC" }, { 0x40D855, 0x1BF000, 0x1BFFFF, "shanghai mingding information tech co.Ltd", "SHANGHAI-MINGDING-INFORMATION-TECH" }, { 0x40D855, 0x1C0000, 0x1C0FFF, "NPB Automation AB", "NPB-AUTOMATION-AB" }, { 0x40D855, 0x1C1000, 0x1C1FFF, "Triamec Motion AG", "TRIAMEC-MOTION" }, { 0x40D855, 0x1C2000, 0x1C2FFF, "Digital Display Systems", "DIGITAL-DISPLAY" }, { 0x40D855, 0x1C3000, 0x1C3FFF, "Cornfed Systems LLC", "CORNFED" }, { 0x40D855, 0x1C4000, 0x1C4FFF, "QED Advanced Systems Limited", "QED-ADVANCED" }, { 0x40D855, 0x1C5000, 0x1C5FFF, "Private", "PRIVATE" }, { 0x40D855, 0x1C6000, 0x1C6FFF, "Device Solutions Ltd", "DEVICE-SOLUTIONS" }, { 0x40D855, 0x1C7000, 0x1C7FFF, "Wexiodisk AB", "WEXIODISK-AB" }, { 0x40D855, 0x1C8000, 0x1C8FFF, "Sensata Technologies", "SENSATA-TECHNOLOGIES" }, { 0x40D855, 0x1C9000, 0x1C9FFF, "Andy-L Ltd.", "ANDY-L" }, { 0x40D855, 0x1CA000, 0x1CAFFF, "Rigel Engineering", "RIGEL-ENGINEERING" }, { 0x40D855, 0x1CB000, 0x1CBFFF, "MG S.r.l.", "MG" }, { 0x40D855, 0x1CC000, 0x1CCFFF, "NKT Photonics A/S", "NKT-PHOTONICS-A/S" }, { 0x40D855, 0x1CD000, 0x1CDFFF, "YXLON International A/S", "YXLON-A/S" }, { 0x40D855, 0x1CE000, 0x1CEFFF, "Peter Huber", "PETER-HUBER" }, { 0x40D855, 0x1CF000, 0x1CFFFF, "Omnik New Energy Co., Ltd", "OMNIK-NEW-ENERGY" }, { 0x40D855, 0x1D0000, 0x1D0FFF, "Webeasy BV", "WEBEASY" }, { 0x40D855, 0x1D1000, 0x1D1FFF, "Founder Broadband Network Service Co.,Ltd.", "FOUNDER-BROADBAND-NETWORK-SERVICE" }, { 0x40D855, 0x1D2000, 0x1D2FFF, "InventLab s.c.", "INVENTLAB-S-C" }, { 0x40D855, 0x1D3000, 0x1D3FFF, "Kaluga Teletypes Manufacturing Plant", "KALUGA-TELETYPES-MANUFACTURING-PLANT" }, { 0x40D855, 0x1D4000, 0x1D4FFF, "Prisma Engineering srl", "PRISMA-ENGINEERING-SRL" }, { 0x40D855, 0x1D5000, 0x1D5FFF, "FST21 Ltd.", "FST21" }, { 0x40D855, 0x1D6000, 0x1D6FFF, "EMS Computers Pty Ltd", "EMS-COMPUTERS-PTY" }, { 0x40D855, 0x1D7000, 0x1D7FFF, "Wheatstone Corporation", "WHEATSTONE" }, { 0x40D855, 0x1D8000, 0x1D8FFF, "Owl Cyber Defense Solutions, LLC", "OWL-CYBER-DEFENSE-SOLUTIONS" }, { 0x40D855, 0x1D9000, 0x1D9FFF, "Commercial Wireless Systems International LLC.", "COMMERCIAL-WIRELESS" }, { 0x40D855, 0x1DA000, 0x1DAFFF, "Energy Technology and Control Ltd.", "ENERGY-AND-CONTROL" }, { 0x40D855, 0x1DB000, 0x1DBFFF, "NIPPON TECHNO LAB.,INC,", "NIPPON-TECHNO-LAB" }, { 0x40D855, 0x1DC000, 0x1DCFFF, "Aplex Technology Inc.", "APLEX" }, { 0x40D855, 0x1DD000, 0x1DDFFF, "BaOpt Benelux bv", "BAOPT-BENELUX" }, { 0x40D855, 0x1DE000, 0x1DEFFF, "Vidisys GmbH", "VIDISYS" }, { 0x40D855, 0x1DF000, 0x1DFFFF, "Chengdu Meihuan Technology Co., Ltd", "CHENGDU-MEIHUAN" }, { 0x40D855, 0x1E0000, 0x1E0FFF, "Embedded Technology Corporation", "EMBEDDED" }, { 0x40D855, 0x1E1000, 0x1E1FFF, "AD QUALITE", "AD-QUALITE" }, { 0x40D855, 0x1E2000, 0x1E2FFF, "ELNEC s.r.o.", "ELNEC-S-R-O" }, { 0x40D855, 0x1E3000, 0x1E3FFF, "Mega Electronics Ltd", "MEGA-ELECTRONICS" }, { 0x40D855, 0x1E4000, 0x1E4FFF, "STEK Ltd", "STEK" }, { 0x40D855, 0x50D000, 0x50DFFF, "Shenzhen MaiWei Cable TV Equipment CO.,LTD.", "SHENZHEN-MAIWEI-CABLE-TV-EQUIPMENT" }, { 0x40D855, 0xEE6000, 0xEE6FFF, "Narinet, Inc.", "NARINET" }, }; ipv6calc-4.1.0/databases/ieee-oui/000077500000000000000000000000001444154247200166625ustar00rootroot00000000000000ipv6calc-4.1.0/databases/ieee-oui/Makefile000066400000000000000000000014511444154247200203230ustar00rootroot00000000000000# Project : ipv6calc/databases/ieee-oui # File : Makefile # Version : $Id: dd07cb9e102f78826a0d9a95437424b2314d83fd $ # Copyright : 2002-2019 by Peter Bieringer # # Information: # Makefile for ieee-oui FILE = oui.csv BASEURL = http://standards-oui.ieee.org/oui/ FILE_H = dbieee_oui.h TYPE = oui all: test -f dbieee_oui.h || ${MAKE} update install: echo "Nothing to do" create: ../tools/create_ieee_headerfile.pl -c -t $(TYPE) -i $(FILE) -o $(FILE_H) update: echo "Download new version of file" wget $(BASEURL)$(FILE) --timestamp ${MAKE} create updateclean: echo "Remove header file" rm -f dbieee_oui.h ${MAKE} distclean distclean: echo "Remove database file" rm -f $(FILE) autoclean: echo "Nothing to do" clean: echo "Nothing to do" ipv6calc-4.1.0/databases/ieee-oui/README000066400000000000000000000002521444154247200175410ustar00rootroot00000000000000$Id: b8cd1304e4123b48af81932c41bcff2f7aaa4a19 $ OUI (aka MA-L) database: URL: http://standards-oui.ieee.org/oui/csv.txt File will be retrieved on-the-fly during "make" ipv6calc-4.1.0/databases/ieee-oui/dbieee_oui.h000066400000000000000000076071041444154247200211430ustar00rootroot00000000000000/* * Project : ipv6calc * File : dbieee_oui.h * Version : $Id: 59f2d3bb98a58e5ccc1af6f1cc032c01845f9b49 $ * Generated : Fri Jun 9 07:51:18 2023 * Data copyright: IEEE * * Information: * Additional header file for libipv6calc_db_wrapper_BuiltIn.c */ /*@unused@*/ static const char* libieee_oui_status __attribute__ ((__unused__)) = "OUI/20230609"; static const s_ieee_oui libieee_oui[] = { { 0x000000, "XEROX CORPORATION", "XEROX" }, { 0x000001, "XEROX CORPORATION", "XEROX" }, { 0x000002, "XEROX CORPORATION", "XEROX" }, { 0x000003, "XEROX CORPORATION", "XEROX" }, { 0x000004, "XEROX CORPORATION", "XEROX" }, { 0x000005, "XEROX CORPORATION", "XEROX" }, { 0x000006, "XEROX CORPORATION", "XEROX" }, { 0x000007, "XEROX CORPORATION", "XEROX" }, { 0x000008, "XEROX CORPORATION", "XEROX" }, { 0x000009, "XEROX CORPORATION", "XEROX" }, { 0x00000A, "OMRON TATEISI ELECTRONICS CO.", "OMRON-TATEISI-ELECTRONICS" }, { 0x00000B, "MATRIX CORPORATION", "MATRIX" }, { 0x00000C, "Cisco Systems, Inc", "CISCO" }, { 0x00000D, "FIBRONICS LTD.", "FIBRONICS" }, { 0x00000E, "FUJITSU LIMITED", "FUJITSU" }, { 0x00000F, "NEXT, INC.", "NEXT" }, { 0x000010, "SYTEK INC.", "SYTEK" }, { 0x000011, "NORMEREL SYSTEMES", "NORMEREL-SYSTEMES" }, { 0x000012, "INFORMATION TECHNOLOGY LIMITED", "INFORMATION" }, { 0x000013, "CAMEX", "CAMEX" }, { 0x000014, "NETRONIX", "NETRONIX" }, { 0x000015, "DATAPOINT CORPORATION", "DATAPOINT" }, { 0x000016, "DU PONT PIXEL SYSTEMS .", "DU-PONT-PIXEL" }, { 0x000017, "Oracle", "ORACLE" }, { 0x000018, "WEBSTER COMPUTER CORPORATION", "WEBSTER" }, { 0x000019, "APPLIED DYNAMICS INTERNATIONAL", "APPLIED-DYNAMICS" }, { 0x00001A, "ADVANCED MICRO DEVICES", "ADVANCED-MICRO-DEVICES" }, { 0x00001B, "Novell, Inc.", "NOVELL" }, { 0x00001C, "BELL TECHNOLOGIES", "BELL-TECHNOLOGIES" }, { 0x00001D, "Cabletron Systems, Inc.", "CABLETRON" }, { 0x00001E, "TELSIST INDUSTRIA ELECTRONICA", "TELSIST-INDUSTRIA-ELECTRONICA" }, { 0x00001F, "Telco Systems, Inc.", "TELCO" }, { 0x000020, "DATAINDUSTRIER DIAB AB", "DATAINDUSTRIER-DIAB-AB" }, { 0x000021, "SUREMAN COMP. & COMMUN. CORP.", "SUREMAN-COMP-COMMUN" }, { 0x000022, "VISUAL TECHNOLOGY INC.", "VISUAL" }, { 0x000023, "ABB INDUSTRIAL SYSTEMS AB", "ABB-INDUSTRIAL-AB" }, { 0x000024, "CONNECT AS", "CONNECT-AS" }, { 0x000025, "RAMTEK CORP.", "RAMTEK" }, { 0x000026, "SHA-KEN CO., LTD.", "SHA-KEN" }, { 0x000027, "JAPAN RADIO COMPANY", "JAPAN-RADIO-COMPANY" }, { 0x000028, "PRODIGY SYSTEMS CORPORATION", "PRODIGY" }, { 0x000029, "IMC NETWORKS CORP.", "IMC-NETWORKS" }, { 0x00002A, "TRW - SEDD/INP", "TRW-SEDD/INP" }, { 0x00002B, "CRISP AUTOMATION, INC", "CRISP-AUTOMATION" }, { 0x00002C, "AUTOTOTE LIMITED", "AUTOTOTE" }, { 0x00002D, "CHROMATICS INC", "CHROMATICS" }, { 0x00002E, "SOCIETE EVIRA", "SOCIETE-EVIRA" }, { 0x00002F, "TIMEPLEX INC.", "TIMEPLEX" }, { 0x000030, "VG LABORATORY SYSTEMS LTD", "VG-LABORATORY" }, { 0x000031, "QPSX COMMUNICATIONS, LTD.", "QPSX-COMMUNICATION" }, { 0x000032, "Marconi plc", "MARCONI-PLC" }, { 0x000033, "EGAN MACHINERY COMPANY", "EGAN-MACHINERY-COMPANY" }, { 0x000034, "NETWORK RESOURCES CORPORATION", "NETWORK-RESOURCES" }, { 0x000035, "SPECTRAGRAPHICS CORPORATION", "SPECTRAGRAPHICS" }, { 0x000036, "ATARI CORPORATION", "ATARI" }, { 0x000037, "OXFORD METRICS LIMITED", "OXFORD-METRICS" }, { 0x000038, "CSS LABS", "CSS-LABS" }, { 0x000039, "TOSHIBA CORPORATION", "TOSHIBA" }, { 0x00003A, "CHYRON CORPORATION", "CHYRON" }, { 0x00003B, "i Controls, Inc.", "I-CONTROLS" }, { 0x00003C, "AUSPEX SYSTEMS INC.", "AUSPEX" }, { 0x00003D, "UNISYS", "UNISYS" }, { 0x00003E, "SIMPACT", "SIMPACT" }, { 0x00003F, "SYNTREX, INC.", "SYNTREX" }, { 0x000040, "APPLICON, INC.", "APPLICON" }, { 0x000041, "ICE CORPORATION", "ICE" }, { 0x000042, "METIER MANAGEMENT SYSTEMS LTD.", "METIER-MANAGEMENT" }, { 0x000043, "MICRO TECHNOLOGY", "MICRO" }, { 0x000044, "CASTELLE CORPORATION", "CASTELLE" }, { 0x000045, "FORD AEROSPACE & COMM. CORP.", "FORD-AEROSPACE-COMM" }, { 0x000046, "OLIVETTI NORTH AMERICA", "OLIVETTI-NORTH-AMERICA" }, { 0x000047, "NICOLET INSTRUMENTS CORP.", "NICOLET-INSTRUMENTS" }, { 0x000048, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0x000049, "APRICOT COMPUTERS, LTD", "APRICOT-COMPUTERS" }, { 0x00004A, "ADC CODENOLL TECHNOLOGY CORP.", "ADC-CODENOLL" }, { 0x00004B, "ICL DATA OY", "ICL-DATA-OY" }, { 0x00004C, "NEC Corporation", "NEC" }, { 0x00004D, "DCI CORPORATION", "DCI" }, { 0x00004E, "AMPEX CORPORATION", "AMPEX" }, { 0x00004F, "LOGICRAFT, INC.", "LOGICRAFT" }, { 0x000050, "RADISYS CORPORATION", "RADISYS" }, { 0x000051, "HOB ELECTRONIC GMBH & CO. KG", "HOB" }, { 0x000052, "Intrusion.com, Inc.", "INTRUSION-COM" }, { 0x000053, "COMPUCORP", "COMPUCORP" }, { 0x000054, "Schneider Electric", "SCHNEIDER-ELECTRIC" }, { 0x000055, "COMMISSARIAT A L`ENERGIE ATOM.", "COMMISSARIAT-A-L`ENERGIE-ATOM" }, { 0x000056, "DR. B. STRUCK", "DR-B-STRUCK" }, { 0x000057, "SCITEX CORPORATION LTD.", "SCITEX" }, { 0x000058, "RACORE COMPUTER PRODUCTS INC.", "RACORE-PRODUCTS" }, { 0x000059, "Hellige GMBH", "HELLIGE" }, { 0x00005A, "SysKonnect GmbH", "SYSKONNECT" }, { 0x00005B, "ELTEC ELEKTRONIK AG", "ELTEC-ELEKTRONIK" }, { 0x00005C, "TELEMATICS INTERNATIONAL INC.", "TELEMATICS" }, { 0x00005D, "CS TELECOM", "CS-TELECOM" }, { 0x00005E, "ICANN, IANA Department", "ICANN-IANA-DEPARTMENT" }, { 0x00005F, "Sumitomo Electric Industries, Ltd", "SUMITOMO-ELECTRIC-INDUSTRIES" }, { 0x000060, "Kontron Europe GmbH", "KONTRON-EUROPE" }, { 0x000061, "GATEWAY COMMUNICATIONS", "GATEWAY-COMMUNICATION" }, { 0x000062, "BULL HN INFORMATION SYSTEMS", "BULL-HN-INFORMATION" }, { 0x000063, "BARCO CONTROL ROOMS GMBH", "BARCO-CONTROL-ROOMS" }, { 0x000064, "Yokogawa Digital Computer Corporation", "YOKOGAWA-DIGITAL" }, { 0x000065, "Network General Corporation", "NETWORK-GENERAL" }, { 0x000066, "TALARIS SYSTEMS, INC.", "TALARIS" }, { 0x000067, "SOFT * RITE, INC.", "SOFT-*-RITE" }, { 0x000068, "ROSEMOUNT CONTROLS", "ROSEMOUNT-CONTROLS" }, { 0x000069, "CONCORD COMMUNICATIONS INC", "CONCORD-COMMUNICATION" }, { 0x00006A, "COMPUTER CONSOLES INC.", "CONSOLES" }, { 0x00006B, "Silicon Graphics", "SILICON-GRAPHICS" }, { 0x00006C, "Private", "PRIVATE" }, { 0x00006D, "CRAY COMMUNICATIONS, LTD.", "CRAY-COMMUNICATION" }, { 0x00006E, "Artisoft Inc.", "ARTISOFT" }, { 0x00006F, "Madge Ltd.", "MADGE" }, { 0x000070, "HCL LIMITED", "HCL" }, { 0x000071, "ADRA SYSTEMS INC.", "ADRA" }, { 0x000072, "MINIWARE TECHNOLOGY", "MINIWARE" }, { 0x000073, "SIECOR CORPORATION", "SIECOR" }, { 0x000074, "RICOH COMPANY LTD.", "RICOH-COMPANY" }, { 0x000075, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x000076, "ABEKAS VIDEO SYSTEM", "ABEKAS-VIDEO-SYSTEM" }, { 0x000077, "INTERPHASE CORPORATION", "INTERPHASE" }, { 0x000078, "LABTAM LIMITED", "LABTAM" }, { 0x000079, "NETWORTH INCORPORATED", "NETWORTH-INCORPORATED" }, { 0x00007A, "DANA COMPUTER INC.", "DANA" }, { 0x00007B, "RESEARCH MACHINES", "RESEARCH-MACHINES" }, { 0x00007C, "AMPERE INCORPORATED", "AMPERE-INCORPORATED" }, { 0x00007D, "Oracle Corporation", "ORACLE" }, { 0x00007E, "CLUSTRIX CORPORATION", "CLUSTRIX" }, { 0x00007F, "LINOTYPE-HELL AG", "LINOTYPE-HELL" }, { 0x000080, "CRAY COMMUNICATIONS A/S", "CRAY-COMMUNICATION-A/S" }, { 0x000081, "Bay Networks", "BAY-NETWORKS" }, { 0x000082, "LECTRA SYSTEMES SA", "LECTRA-SYSTEMES" }, { 0x000083, "TADPOLE TECHNOLOGY PLC", "TADPOLE-PLC" }, { 0x000084, "SUPERNET", "SUPERNET" }, { 0x000085, "CANON INC.", "CANON" }, { 0x000086, "MEGAHERTZ CORPORATION", "MEGAHERTZ" }, { 0x000087, "HITACHI, LTD.", "HITACHI" }, { 0x000088, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x000089, "CAYMAN SYSTEMS INC.", "CAYMAN" }, { 0x00008A, "DATAHOUSE INFORMATION SYSTEMS", "DATAHOUSE-INFORMATION" }, { 0x00008B, "INFOTRON", "INFOTRON" }, { 0x00008C, "Alloy Computer Products (Australia) Pty Ltd", "ALLOY-PRODUCTS-AUSTRALIA-PTY" }, { 0x00008D, "Cryptek Inc.", "CRYPTEK" }, { 0x00008E, "SOLBOURNE COMPUTER, INC.", "SOLBOURNE" }, { 0x00008F, "Raytheon", "RAYTHEON" }, { 0x000090, "MICROCOM", "MICROCOM" }, { 0x000091, "ANRITSU CORPORATION", "ANRITSU" }, { 0x000092, "COGENT DATA TECHNOLOGIES", "COGENT-DATA-TECHNOLOGIES" }, { 0x000093, "PROTEON INC.", "PROTEON" }, { 0x000094, "ASANTE TECHNOLOGIES", "ASANTE-TECHNOLOGIES" }, { 0x000095, "SONY TEKTRONIX CORP.", "SONY-TEKTRONIX" }, { 0x000096, "MARCONI ELECTRONICS LTD.", "MARCONI-ELECTRONICS" }, { 0x000097, "Dell EMC", "DELL-EMC" }, { 0x000098, "CROSSCOMM CORPORATION", "CROSSCOMM" }, { 0x000099, "MTX, INC.", "MTX" }, { 0x00009A, "RC COMPUTER A/S", "RC-A/S" }, { 0x00009B, "INFORMATION INTERNATIONAL, INC", "INFORMATION" }, { 0x00009C, "ROLM MIL-SPEC COMPUTERS", "ROLM-MIL-SPEC-COMPUTERS" }, { 0x00009D, "LOCUS COMPUTING CORPORATION", "LOCUS-COMPUTING" }, { 0x00009E, "MARLI S.A.", "MARLI" }, { 0x00009F, "AMERISTAR TECHNOLOGIES INC.", "AMERISTAR-TECHNOLOGIES" }, { 0x0000A0, "SANYO Electric Co., Ltd.", "SANYO-ELECTRIC" }, { 0x0000A1, "MARQUETTE ELECTRIC CO.", "MARQUETTE-ELECTRIC" }, { 0x0000A2, "Bay Networks", "BAY-NETWORKS" }, { 0x0000A3, "NETWORK APPLICATION TECHNOLOGY", "NETWORK-APPLICATION" }, { 0x0000A4, "ACORN COMPUTERS LIMITED", "ACORN-COMPUTERS" }, { 0x0000A5, "Tattile SRL", "TATTILE-SRL" }, { 0x0000A6, "NETWORK GENERAL CORPORATION", "NETWORK-GENERAL" }, { 0x0000A7, "NETWORK COMPUTING DEVICES INC.", "NETWORK-COMPUTING-DEVICES" }, { 0x0000A8, "Stratus Technologies", "STRATUS-TECHNOLOGIES" }, { 0x0000A9, "NETWORK SYSTEMS CORP.", "NETWORK" }, { 0x0000AA, "XEROX CORPORATION", "XEROX" }, { 0x0000AB, "LOGIC MODELING CORPORATION", "LOGIC-MODELING" }, { 0x0000AC, "CONWARE COMPUTER CONSULTING", "CONWARE-CONSULTING" }, { 0x0000AD, "BRUKER INSTRUMENTS INC.", "BRUKER-INSTRUMENTS" }, { 0x0000AE, "DASSAULT ELECTRONIQUE", "DASSAULT-ELECTRONIQUE" }, { 0x0000AF, "Canberra Industries, Inc.", "CANBERRA-INDUSTRIES" }, { 0x0000B0, "RND-RAD NETWORK DEVICES", "RND-RAD-NETWORK-DEVICES" }, { 0x0000B1, "Alpha Micro", "ALPHA-MICRO" }, { 0x0000B2, "TELEVIDEO SYSTEMS, INC.", "TELEVIDEO" }, { 0x0000B3, "CIMLINC INCORPORATED", "CIMLINC-INCORPORATED" }, { 0x0000B4, "Edimax Technology Co. Ltd.", "EDIMAX" }, { 0x0000B5, "DATABILITY SOFTWARE SYS. INC.", "DATABILITY-SOFTWARE-SYS" }, { 0x0000B6, "MICRO-MATIC RESEARCH", "MICRO-MATIC-RESEARCH" }, { 0x0000B7, "DOVE COMPUTER CORPORATION", "DOVE" }, { 0x0000B8, "SEIKOSHA CO., LTD.", "SEIKOSHA" }, { 0x0000B9, "MCDONNELL DOUGLAS COMPUTER SYS", "MCDONNELL-DOUGLAS-SYS" }, { 0x0000BA, "SIIG, INC.", "SIIG" }, { 0x0000BB, "TRI-DATA", "TRI-DATA" }, { 0x0000BC, "Rockwell Automation", "ROCKWELL-AUTOMATION" }, { 0x0000BD, "RYOSEI, Ltd.", "RYOSEI" }, { 0x0000BE, "THE NTI GROUP", "THE-NTI-GROUP" }, { 0x0000BF, "SYMMETRIC COMPUTER SYSTEMS", "SYMMETRIC" }, { 0x0000C0, "WESTERN DIGITAL CORPORATION", "WESTERN-DIGITAL" }, { 0x0000C1, "Madge Ltd.", "MADGE" }, { 0x0000C2, "INFORMATION PRESENTATION TECH.", "INFORMATION-PRESENTATION-TECH" }, { 0x0000C3, "Harris Corporation", "HARRIS" }, { 0x0000C4, "WATERS DIV. OF MILLIPORE", "WATERS-DIV-OF-MILLIPORE" }, { 0x0000C5, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0000C6, "EON SYSTEMS", "EON" }, { 0x0000C7, "ARIX CORPORATION", "ARIX" }, { 0x0000C8, "ALTOS COMPUTER SYSTEMS", "ALTOS" }, { 0x0000C9, "Emulex Corporation", "EMULEX" }, { 0x0000CA, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0000CB, "COMPU-SHACK ELECTRONIC GMBH", "COMPU-SHACK" }, { 0x0000CC, "DENSAN CO., LTD.", "DENSAN" }, { 0x0000CD, "Allied Telesis Labs Ltd", "ALLIED-TELESIS-LABS" }, { 0x0000CE, "MEGADATA CORP.", "MEGADATA" }, { 0x0000CF, "HAYES MICROCOMPUTER PRODUCTS", "HAYES-MICROCOMPUTER-PRODUCTS" }, { 0x0000D0, "DEVELCON ELECTRONICS LTD.", "DEVELCON-ELECTRONICS" }, { 0x0000D1, "ADAPTEC INCORPORATED", "ADAPTEC-INCORPORATED" }, { 0x0000D2, "SBE, INC.", "SBE" }, { 0x0000D3, "WANG LABORATORIES INC.", "WANG-LABORATORIES" }, { 0x0000D4, "PURE DATA LTD.", "PURE-DATA" }, { 0x0000D5, "MICROGNOSIS INTERNATIONAL", "MICROGNOSIS" }, { 0x0000D6, "PUNCH LINE HOLDING", "PUNCH-LINE-HOLDING" }, { 0x0000D7, "DARTMOUTH COLLEGE", "DARTMOUTH-COLLEGE" }, { 0x0000D8, "Novell, Inc.", "NOVELL" }, { 0x0000D9, "NIPPON TELEGRAPH & TELEPHONE", "NIPPON-TELEGRAPH-TELEPHONE" }, { 0x0000DA, "ATEX", "ATEX" }, { 0x0000DB, "British Telecommunications plc", "BRITISH-TELECOMMUNICATIONS-PLC" }, { 0x0000DC, "HAYES MICROCOMPUTER PRODUCTS", "HAYES-MICROCOMPUTER-PRODUCTS" }, { 0x0000DD, "TCL INCORPORATED", "TCL-INCORPORATED" }, { 0x0000DE, "CETIA", "CETIA" }, { 0x0000DF, "BELL & HOWELL PUB SYS DIV", "BELL-HOWELL-PUB-SYS-DIV" }, { 0x0000E0, "QUADRAM CORP.", "QUADRAM" }, { 0x0000E1, "GRID SYSTEMS", "GRID" }, { 0x0000E2, "ACER TECHNOLOGIES CORP.", "ACER-TECHNOLOGIES" }, { 0x0000E3, "INTEGRATED MICRO PRODUCTS LTD", "INTEGRATED-MICRO-PRODUCTS" }, { 0x0000E4, "IN2 GROUPE INTERTECHNIQUE", "IN2-GROUPE-INTERTECHNIQUE" }, { 0x0000E5, "SIGMEX LTD.", "SIGMEX" }, { 0x0000E6, "APTOR PRODUITS DE COMM INDUST", "APTOR-PRODUITS-DE-COMM-INDUST" }, { 0x0000E7, "Star Gate Technologies", "STAR-GATE-TECHNOLOGIES" }, { 0x0000E8, "ACCTON TECHNOLOGY CORP.", "ACCTON" }, { 0x0000E9, "ISICAD, INC.", "ISICAD" }, { 0x0000EA, "UPNOD AB", "UPNOD-AB" }, { 0x0000EB, "MATSUSHITA COMM. IND. CO. LTD.", "MATSUSHITA-COMM-IND" }, { 0x0000EC, "MICROPROCESS", "MICROPROCESS" }, { 0x0000ED, "APRIL", "APRIL" }, { 0x0000EE, "NETWORK DESIGNERS, LTD.", "NETWORK-DESIGNERS" }, { 0x0000EF, "KTI", "KTI" }, { 0x0000F0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0000F1, "MAGNA COMPUTER CORPORATION", "MAGNA" }, { 0x0000F2, "SPIDER COMMUNICATIONS", "SPIDER-COMMUNICATION" }, { 0x0000F3, "GANDALF DATA LIMITED", "GANDALF-DATA" }, { 0x0000F4, "Allied Telesis, Inc.", "ALLIED-TELESIS" }, { 0x0000F5, "DIAMOND SALES LIMITED", "DIAMOND-SALES" }, { 0x0000F6, "APPLIED MICROSYSTEMS CORP.", "APPLIED-MICROSYSTEMS" }, { 0x0000F7, "YOUTH KEEP ENTERPRISE CO LTD", "YOUTH-KEEP" }, { 0x0000F8, "DIGITAL EQUIPMENT CORPORATION", "DIGITAL-EQUIPMENT" }, { 0x0000F9, "QUOTRON SYSTEMS INC.", "QUOTRON" }, { 0x0000FA, "MICROSAGE COMPUTER SYSTEMS INC", "MICROSAGE" }, { 0x0000FB, "RECHNER ZUR KOMMUNIKATION", "RECHNER-ZUR-KOMMUNIKATION" }, { 0x0000FC, "MEIKO", "MEIKO" }, { 0x0000FD, "HIGH LEVEL HARDWARE", "HIGH-LEVEL-HARDWARE" }, { 0x0000FE, "Annapolis Micro Systems, Inc.", "ANNAPOLIS-MICRO" }, { 0x0000FF, "CAMTEC ELECTRONICS LTD.", "CAMTEC-ELECTRONICS" }, { 0x000100, "EQUIP'TRANS", "EQUIP-TRANS" }, { 0x000101, "Private", "PRIVATE" }, { 0x000102, "3COM", "3COM" }, { 0x000103, "3COM", "3COM" }, { 0x000104, "DVICO Co., Ltd.", "DVICO" }, { 0x000105, "Beckhoff Automation GmbH", "BECKHOFF-AUTOMATION" }, { 0x000106, "Tews Datentechnik GmbH", "TEWS-DATENTECHNIK" }, { 0x000107, "Leiser GmbH", "LEISER" }, { 0x000108, "AVLAB Technology, Inc.", "AVLAB" }, { 0x000109, "Nagano Japan Radio Co., Ltd.", "NAGANO-JAPAN-RADIO" }, { 0x00010A, "CIS TECHNOLOGY INC.", "CIS" }, { 0x00010B, "Space CyberLink, Inc.", "SPACE-CYBERLINK" }, { 0x00010C, "System Talks Inc.", "SYSTEM-TALKS" }, { 0x00010D, "Teledyne DALSA Inc.", "TELEDYNE-DALSA" }, { 0x00010E, "Bri-Link Technologies Co., Ltd", "BRI-LINK-TECHNOLOGIES" }, { 0x00010F, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x000110, "Gotham Networks", "GOTHAM-NETWORKS" }, { 0x000111, "iDigm Inc.", "IDIGM" }, { 0x000112, "Shark Multimedia Inc.", "SHARK-MULTIMEDIA" }, { 0x000113, "OLYMPUS CORPORATION", "OLYMPUS" }, { 0x000114, "KANDA TSUSHIN KOGYO CO., LTD.", "KANDA-TSUSHIN-KOGYO" }, { 0x000115, "EXTRATECH CORPORATION", "EXTRATECH" }, { 0x000116, "Netspect Technologies, Inc.", "NETSPECT-TECHNOLOGIES" }, { 0x000117, "Canal +", "CANAL" }, { 0x000118, "EZ Digital Co., Ltd.", "EZ-DIGITAL" }, { 0x000119, "RTUnet (Australia)", "RTUNET-AUSTRALIA" }, { 0x00011A, "Hoffmann und Burmeister GbR", "HOFFMANN-UND-BURMEISTER-GBR" }, { 0x00011B, "Unizone Technologies, Inc.", "UNIZONE-TECHNOLOGIES" }, { 0x00011C, "Universal Talkware Corporation", "UNIVERSAL-TALKWARE" }, { 0x00011D, "Centillium Communications", "CENTILLIUM-COMMUNICATION" }, { 0x00011E, "Precidia Technologies, Inc.", "PRECIDIA-TECHNOLOGIES" }, { 0x00011F, "RC Networks, Inc.", "RC-NETWORKS" }, { 0x000120, "OSCILLOQUARTZ S.A.", "OSCILLOQUARTZ" }, { 0x000121, "WatchGuard Technologies, Inc.", "WATCHGUARD-TECHNOLOGIES" }, { 0x000122, "Trend Communications, Ltd.", "TREND-COMMUNICATION" }, { 0x000123, "Schneider Electric Japan Holdings Ltd.", "SCHNEIDER-ELECTRIC-JAPAN-HOLDINGS" }, { 0x000124, "Acer Incorporated", "ACER-INCORPORATED" }, { 0x000125, "YAESU MUSEN CO., LTD.", "YAESU-MUSEN" }, { 0x000126, "PAC Labs", "PAC-LABS" }, { 0x000127, "OPEN Networks Pty Ltd", "OPEN-NETWORKS-PTY" }, { 0x000128, "EnjoyWeb, Inc.", "ENJOYWEB" }, { 0x000129, "DFI Inc.", "DFI" }, { 0x00012A, "Telematica Sistems Inteligente", "TELEMATICA-SISTEMS-INTELIGENTE" }, { 0x00012B, "TELENET Co., Ltd.", "TELENET" }, { 0x00012C, "Aravox Technologies, Inc.", "ARAVOX-TECHNOLOGIES" }, { 0x00012D, "Komodo Technology", "KOMODO" }, { 0x00012E, "PC Partner Ltd.", "PC-PARTNER" }, { 0x00012F, "Twinhead International Corp", "TWINHEAD" }, { 0x000130, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x000131, "Bosch Security Systems, Inc.", "BOSCH-SECURITY" }, { 0x000132, "Dranetz - BMI", "DRANETZ-BMI" }, { 0x000133, "KYOWA Electronic Instruments C", "KYOWA-INSTRUMENTS-C" }, { 0x000134, "Selectron Systems AG", "SELECTRON" }, { 0x000135, "KDC Corp.", "KDC" }, { 0x000136, "CyberTAN Technology Inc.", "CYBERTAN" }, { 0x000137, "IT Farm Corporation", "IT-FARM" }, { 0x000138, "XAVi Technologies Corp.", "XAVI-TECHNOLOGIES" }, { 0x000139, "Point Multimedia Systems", "POINT-MULTIMEDIA" }, { 0x00013A, "SHELCAD COMMUNICATIONS, LTD.", "SHELCAD-COMMUNICATION" }, { 0x00013B, "BNA SYSTEMS", "BNA" }, { 0x00013C, "TIW SYSTEMS", "TIW" }, { 0x00013D, "RiscStation Ltd.", "RISCSTATION" }, { 0x00013E, "Ascom Tateco AB", "ASCOM-TATECO-AB" }, { 0x00013F, "Neighbor World Co., Ltd.", "NEIGHBOR-WORLD" }, { 0x000140, "Sendtek Corporation", "SENDTEK" }, { 0x000141, "CABLE PRINT", "CABLE-PRINT" }, { 0x000142, "Cisco Systems, Inc", "CISCO" }, { 0x000143, "Cisco Systems, Inc", "CISCO" }, { 0x000144, "Dell EMC", "DELL-EMC" }, { 0x000145, "WINSYSTEMS, INC.", "WINSYSTEMS" }, { 0x000146, "Tesco Controls, Inc.", "TESCO-CONTROLS" }, { 0x000147, "DZS Inc.", "DZS" }, { 0x000148, "X-traWeb Inc.", "X-TRAWEB" }, { 0x000149, "TDT AG", "TDT" }, { 0x00014A, "Sony Corporation", "SONY" }, { 0x00014B, "Ennovate Networks, Inc.", "ENNOVATE-NETWORKS" }, { 0x00014C, "Berkeley Process Control", "BERKELEY-PROCESS-CONTROL" }, { 0x00014D, "Shin Kin Enterprises Co., Ltd", "SHIN-KIN-ENTERPRISES" }, { 0x00014E, "WIN Enterprises, Inc.", "WIN-ENTERPRISES" }, { 0x00014F, "Adtran Inc", "ADTRAN" }, { 0x000150, "GILAT COMMUNICATIONS, LTD.", "GILAT-COMMUNICATION" }, { 0x000151, "Ensemble Communications", "ENSEMBLE-COMMUNICATION" }, { 0x000152, "CHROMATEK INC.", "CHROMATEK" }, { 0x000153, "ARCHTEK TELECOM CORPORATION", "ARCHTEK-TELECOM" }, { 0x000154, "G3M Corporation", "G3M" }, { 0x000155, "Promise Technology, Inc.", "PROMISE" }, { 0x000156, "FIREWIREDIRECT.COM, INC.", "FIREWIREDIRECT-COM" }, { 0x000157, "SYSWAVE CO., LTD", "SYSWAVE" }, { 0x000158, "Electro Industries/Gauge Tech", "ELECTRO-INDUSTRIES/GAUGE-TECH" }, { 0x000159, "S1 Corporation", "S1" }, { 0x00015A, "Digital Video Broadcasting", "DIGITAL-VIDEO-BROADCASTING" }, { 0x00015B, "ITALTEL S.p.A/RF-UP-I", "ITALTEL-S-P-A/RF-UP-I" }, { 0x00015C, "CADANT INC.", "CADANT" }, { 0x00015D, "Oracle Corporation", "ORACLE" }, { 0x00015E, "BEST TECHNOLOGY CO., LTD.", "BEST" }, { 0x00015F, "DIGITAL DESIGN GmbH", "DIGITAL-DESIGN" }, { 0x000160, "ELMEX Co., LTD.", "ELMEX" }, { 0x000161, "Meta Machine Technology", "META-MACHINE" }, { 0x000162, "Cygnet Technologies, Inc.", "CYGNET-TECHNOLOGIES" }, { 0x000163, "Cisco Systems, Inc", "CISCO" }, { 0x000164, "Cisco Systems, Inc", "CISCO" }, { 0x000165, "AirSwitch Corporation", "AIRSWITCH" }, { 0x000166, "TC GROUP A/S", "TC-GROUP-A/S" }, { 0x000167, "HIOKI E.E. CORPORATION", "HIOKI-E-E" }, { 0x000168, "VITANA CORPORATION", "VITANA" }, { 0x000169, "Celestix Networks Pte Ltd.", "CELESTIX-NETWORKS-PTE" }, { 0x00016A, "ALITEC", "ALITEC" }, { 0x00016B, "LightChip, Inc.", "LIGHTCHIP" }, { 0x00016C, "FOXCONN", "FOXCONN" }, { 0x00016D, "CarrierComm Inc.", "CARRIERCOMM" }, { 0x00016E, "Conklin Corporation", "CONKLIN" }, { 0x00016F, "Inkel Corp.", "INKEL" }, { 0x000170, "ESE Embedded System Engineer'g", "ESE-EMBEDDED-SYSTEM-ENGINEER-G" }, { 0x000171, "Allied Data Technologies", "ALLIED-DATA-TECHNOLOGIES" }, { 0x000172, "TechnoLand Co., LTD.", "TECHNOLAND" }, { 0x000173, "AMCC", "AMCC" }, { 0x000174, "CyberOptics Corporation", "CYBEROPTICS" }, { 0x000175, "Radiant Communications Corp.", "RADIANT-COMMUNICATION" }, { 0x000176, "Orient Silver Enterprises", "ORIENT-SILVER-ENTERPRISES" }, { 0x000177, "EDSL", "EDSL" }, { 0x000178, "MARGI Systems, Inc.", "MARGI" }, { 0x000179, "WIRELESS TECHNOLOGY, INC.", "WIRELESS" }, { 0x00017A, "Chengdu Maipu Electric Industrial Co., Ltd.", "CHENGDU-MAIPU-ELECTRIC-INDUSTRIAL" }, { 0x00017B, "Heidelberger Druckmaschinen AG", "HEIDELBERGER-DRUCKMASCHINEN" }, { 0x00017C, "AG-E GmbH", "-E" }, { 0x00017D, "ThermoQuest", "THERMOQUEST" }, { 0x00017E, "ADTEK System Science Co., Ltd.", "ADTEK-SYSTEM-SCIENCE" }, { 0x00017F, "Experience Music Project", "EXPERIENCE-MUSIC-PROJECT" }, { 0x000180, "AOpen, Inc.", "AOPEN" }, { 0x000181, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x000182, "DICA TECHNOLOGIES AG", "DICA-TECHNOLOGIES" }, { 0x000183, "ANITE TELECOMS", "ANITE-TELECOMS" }, { 0x000184, "SIEB & MEYER AG", "SIEB-MEYER" }, { 0x000185, "Hitachi Aloka Medical, Ltd.", "HITACHI-ALOKA-MEDICAL" }, { 0x000186, "Uwe Disch", "UWE-DISCH" }, { 0x000187, "I2SE GmbH", "I2SE" }, { 0x000188, "LXCO Technologies ag", "LXCO-TECHNOLOGIES" }, { 0x000189, "Refraction Technology, Inc.", "REFRACTION" }, { 0x00018A, "ROI COMPUTER AG", "ROI" }, { 0x00018B, "NetLinks Co., Ltd.", "NETLINKS" }, { 0x00018C, "Mega Vision", "MEGA-VISION" }, { 0x00018D, "AudeSi Technologies", "AUDESI-TECHNOLOGIES" }, { 0x00018E, "Logitec Corporation", "LOGITEC" }, { 0x00018F, "Kenetec, Inc.", "KENETEC" }, { 0x000190, "SMK-M", "SMK-M" }, { 0x000191, "SYRED Data Systems", "SYRED-DATA" }, { 0x000192, "Texas Digital Systems", "TEXAS-DIGITAL" }, { 0x000193, "Hanbyul Telecom Co., Ltd.", "HANBYUL-TELECOM" }, { 0x000194, "Capital Equipment Corporation", "CAPITAL-EQUIPMENT" }, { 0x000195, "Sena Technologies, Inc.", "SENA-TECHNOLOGIES" }, { 0x000196, "Cisco Systems, Inc", "CISCO" }, { 0x000197, "Cisco Systems, Inc", "CISCO" }, { 0x000198, "Darim Vision", "DARIM-VISION" }, { 0x000199, "HeiSei Electronics", "HEISEI-ELECTRONICS" }, { 0x00019A, "LEUNIG GmbH", "LEUNIG" }, { 0x00019B, "Kyoto Microcomputer Co., Ltd.", "KYOTO-MICROCOMPUTER" }, { 0x00019C, "JDS Uniphase Inc.", "JDS-UNIPHASE" }, { 0x00019D, "E-Control Systems, Inc.", "E-CONTROL" }, { 0x00019E, "ESS Technology, Inc.", "ESS" }, { 0x00019F, "ReadyNet", "READYNET" }, { 0x0001A0, "Infinilink Corporation", "INFINILINK" }, { 0x0001A1, "Mag-Tek, Inc.", "MAG-TEK" }, { 0x0001A2, "Logical Co., Ltd.", "LOGICAL" }, { 0x0001A3, "GENESYS LOGIC, INC.", "GENESYS-LOGIC" }, { 0x0001A4, "Microlink Corporation", "MICROLINK" }, { 0x0001A5, "Nextcomm, Inc.", "NEXTCOMM" }, { 0x0001A6, "Scientific-Atlanta Arcodan A/S", "SCIENTIFIC-ATLANTA-ARCODAN-A/S" }, { 0x0001A7, "UNEX TECHNOLOGY CORPORATION", "UNEX" }, { 0x0001A8, "Welltech Computer Co., Ltd.", "WELLTECH" }, { 0x0001A9, "BMW AG", "BMW" }, { 0x0001AA, "Airspan Communications, Ltd.", "AIRSPAN-COMMUNICATION" }, { 0x0001AB, "Main Street Networks", "MAIN-STREET-NETWORKS" }, { 0x0001AC, "Sitara Networks, Inc.", "SITARA-NETWORKS" }, { 0x0001AD, "Coach Master International d.b.a. CMI Worldwide, Inc.", "COACH-MASTER-D-B-A-CMI-WORLDWIDE" }, { 0x0001AE, "Trex Enterprises", "TREX-ENTERPRISES" }, { 0x0001AF, "Artesyn Embedded Technologies", "ARTESYN-EMBEDDED-TECHNOLOGIES" }, { 0x0001B0, "Fulltek Technology Co., Ltd.", "FULLTEK" }, { 0x0001B1, "General Bandwidth", "GENERAL-BANDWIDTH" }, { 0x0001B2, "Digital Processing Systems, Inc.", "DIGITAL-PROCESSING" }, { 0x0001B3, "Precision Electronic Manufacturing", "PRECISION-MANUFACTURING" }, { 0x0001B4, "Wayport, Inc.", "WAYPORT" }, { 0x0001B5, "Turin Networks, Inc.", "TURIN-NETWORKS" }, { 0x0001B6, "SAEJIN T&M Co., Ltd.", "SAEJIN-T-M" }, { 0x0001B7, "Centos, Inc.", "CENTOS" }, { 0x0001B8, "Netsensity, Inc.", "NETSENSITY" }, { 0x0001B9, "SKF (U.K.) Limited", "SKF-U-K" }, { 0x0001BA, "IC-Net, Inc.", "IC-NET" }, { 0x0001BB, "Frequentis", "FREQUENTIS" }, { 0x0001BC, "Brains Corporation", "BRAINS" }, { 0x0001BD, "Peterson Electro-Musical Products, Inc.", "PETERSON-ELECTRO-MUSICAL-PRODUCTS" }, { 0x0001BE, "Gigalink Co., Ltd.", "GIGALINK" }, { 0x0001BF, "Teleforce Co., Ltd.", "TELEFORCE" }, { 0x0001C0, "CompuLab, Ltd.", "COMPULAB" }, { 0x0001C1, "Vitesse Semiconductor Corporation", "VITESSE-SEMICONDUCTOR" }, { 0x0001C2, "ARK Research Corp.", "ARK-RESEARCH" }, { 0x0001C3, "Acromag, Inc.", "ACROMAG" }, { 0x0001C4, "NeoWave, Inc.", "NEOWAVE" }, { 0x0001C5, "Simpler Networks", "SIMPLER-NETWORKS" }, { 0x0001C6, "Quarry Technologies", "QUARRY-TECHNOLOGIES" }, { 0x0001C7, "Cisco Systems, Inc", "CISCO" }, { 0x0001C8, "CONRAD CORP.", "CONRAD" }, { 0x0001C9, "Cisco Systems, Inc", "CISCO" }, { 0x0001CA, "Geocast Network Systems, Inc.", "GEOCAST-NETWORK" }, { 0x0001CB, "EVR", "EVR" }, { 0x0001CC, "Japan Total Design Communication Co., Ltd.", "JAPAN-TOTAL-DESIGN-COMMUNICATION" }, { 0x0001CD, "ARtem", "ARTEM" }, { 0x0001CE, "Custom Micro Products, Ltd.", "CUSTOM-MICRO-PRODUCTS" }, { 0x0001CF, "Alpha Data Parallel Systems, Ltd.", "ALPHA-DATA-PARALLEL" }, { 0x0001D0, "VitalPoint, Inc.", "VITALPOINT" }, { 0x0001D1, "CoNet Communications, Inc.", "CONET-COMMUNICATION" }, { 0x0001D2, "inXtron, Inc.", "INXTRON" }, { 0x0001D3, "PAXCOMM, Inc.", "PAXCOMM" }, { 0x0001D4, "Leisure Time, Inc.", "LEISURE-TIME" }, { 0x0001D5, "HAEDONG INFO & COMM CO., LTD", "HAEDONG-INFO-COMM" }, { 0x0001D6, "manroland AG", "MANROLAND" }, { 0x0001D7, "F5 Networks, Inc.", "F5-NETWORKS" }, { 0x0001D8, "Teltronics, Inc.", "TELTRONICS" }, { 0x0001D9, "Sigma, Inc.", "SIGMA" }, { 0x0001DA, "WINCOMM Corporation", "WINCOMM" }, { 0x0001DB, "Freecom Technologies GmbH", "FREECOM-TECHNOLOGIES" }, { 0x0001DC, "Activetelco", "ACTIVETELCO" }, { 0x0001DD, "Avail Networks", "AVAIL-NETWORKS" }, { 0x0001DE, "Trango Systems, Inc.", "TRANGO" }, { 0x0001DF, "ISDN Communications, Ltd.", "ISDN-COMMUNICATION" }, { 0x0001E0, "Fast Systems, Inc.", "FAST" }, { 0x0001E1, "Kinpo Electronics, Inc.", "KINPO-ELECTRONICS" }, { 0x0001E2, "Ando Electric Corporation", "ANDO-ELECTRIC" }, { 0x0001E3, "Siemens AG", "SIEMENS" }, { 0x0001E4, "Sitera, Inc.", "SITERA" }, { 0x0001E5, "Supernet, Inc.", "SUPERNET" }, { 0x0001E6, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x0001E7, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x0001E8, "Force10 Networks, Inc.", "FORCE10-NETWORKS" }, { 0x0001E9, "Litton Marine Systems B.V.", "LITTON-MARINE-B-V" }, { 0x0001EA, "Cirilium Corp.", "CIRILIUM" }, { 0x0001EB, "C-COM Corporation", "C-COM" }, { 0x0001EC, "Ericsson Group", "ERICSSON-GROUP" }, { 0x0001ED, "SETA Corp.", "SETA" }, { 0x0001EE, "Comtrol Europe, Ltd.", "COMTROL-EUROPE" }, { 0x0001EF, "Camtel Technology Corp.", "CAMTEL" }, { 0x0001F0, "Tridium, Inc.", "TRIDIUM" }, { 0x0001F1, "Innovative Concepts, Inc.", "INNOVATIVE-CONCEPTS" }, { 0x0001F2, "Mark of the Unicorn, Inc.", "MARK-OF-THE-UNICORN" }, { 0x0001F3, "QPS, Inc.", "QPS" }, { 0x0001F4, "Enterasys", "ENTERASYS" }, { 0x0001F5, "ERIM S.A.", "ERIM" }, { 0x0001F6, "Association of Musical Electronics Industry", "ASSOCIATION-OF-MUSICAL-ELECTRONICS-INDUSTRY" }, { 0x0001F7, "Image Display Systems, Inc.", "IMAGE-DISPLAY" }, { 0x0001F8, "TEXIO TECHNOLOGY CORPORATION", "TEXIO" }, { 0x0001F9, "TeraGlobal Communications Corp.", "TERAGLOBAL-COMMUNICATION" }, { 0x0001FA, "HOROSCAS", "HOROSCAS" }, { 0x0001FB, "DoTop Technology, Inc.", "DOTOP" }, { 0x0001FC, "Keyence Corporation", "KEYENCE" }, { 0x0001FD, "Digital Voice Systems, Inc.", "DIGITAL-VOICE" }, { 0x0001FE, "DIGITAL EQUIPMENT CORPORATION", "DIGITAL-EQUIPMENT" }, { 0x0001FF, "Data Direct Networks, Inc.", "DATA-DIRECT-NETWORKS" }, { 0x000200, "Net & Sys Co., Ltd.", "NET-SYS" }, { 0x000201, "IFM Electronic gmbh", "IFM" }, { 0x000202, "Amino Communications, Ltd.", "AMINO-COMMUNICATION" }, { 0x000203, "Woonsang Telecom, Inc.", "WOONSANG-TELECOM" }, { 0x000204, "Bodmann Industries Elektronik GmbH", "BODMANN-INDUSTRIES-ELEKTRONIK" }, { 0x000205, "Hitachi Denshi, Ltd.", "HITACHI-DENSHI" }, { 0x000206, "Telital R&D Denmark A/S", "TELITAL-R-D-DENMARK-A/S" }, { 0x000207, "VisionGlobal Network Corp.", "VISIONGLOBAL-NETWORK" }, { 0x000208, "Unify Networks, Inc.", "UNIFY-NETWORKS" }, { 0x000209, "Shenzhen SED Information Technology Co., Ltd.", "SHENZHEN-SED-INFORMATION" }, { 0x00020A, "Gefran Spa", "GEFRAN-SPA" }, { 0x00020B, "Native Networks, Inc.", "NATIVE-NETWORKS" }, { 0x00020C, "Metro-Optix", "METRO-OPTIX" }, { 0x00020D, "Micronpc.com", "MICRONPC-COM" }, { 0x00020E, "ECI Telecom Ltd.", "ECI-TELECOM" }, { 0x00020F, "AATR", "AATR" }, { 0x000210, "Fenecom", "FENECOM" }, { 0x000211, "Nature Worldwide Technology Corp.", "NATURE-WORLDWIDE" }, { 0x000212, "SierraCom", "SIERRACOM" }, { 0x000213, "S.D.E.L.", "S-D-E-L" }, { 0x000214, "DTVRO", "DTVRO" }, { 0x000215, "Cotas Computer Technology A/B", "COTAS-A/B" }, { 0x000216, "Cisco Systems, Inc", "CISCO" }, { 0x000217, "Cisco Systems, Inc", "CISCO" }, { 0x000218, "Advanced Scientific Corp", "ADVANCED-SCIENTIFIC" }, { 0x000219, "Paralon Technologies", "PARALON-TECHNOLOGIES" }, { 0x00021A, "Zuma Networks", "ZUMA-NETWORKS" }, { 0x00021B, "Kollmorgen-Servotronix", "KOLLMORGEN-SERVOTRONIX" }, { 0x00021C, "Network Elements, Inc.", "NETWORK-ELEMENTS" }, { 0x00021D, "Data General Communication Ltd.", "DATA-GENERAL-COMMUNICATION" }, { 0x00021E, "SIMTEL S.R.L.", "SIMTEL" }, { 0x00021F, "Aculab PLC", "ACULAB-PLC" }, { 0x000220, "CANON FINETECH INC.", "CANON-FINETECH" }, { 0x000221, "DSP Application, Ltd.", "DSP-APPLICATION" }, { 0x000222, "Chromisys, Inc.", "CHROMISYS" }, { 0x000223, "ClickTV", "CLICKTV" }, { 0x000224, "C-COR", "C-COR" }, { 0x000225, "One Stop Systems", "ONE-STOP" }, { 0x000226, "XESystems, Inc.", "XESYSTEMS" }, { 0x000227, "ESD Electronic System Design GmbH", "ESD-SYSTEM-DESIGN" }, { 0x000228, "Necsom, Ltd.", "NECSOM" }, { 0x000229, "Adtec Corporation", "ADTEC" }, { 0x00022A, "Asound Electronic", "ASOUND" }, { 0x00022B, "SAXA, Inc.", "SAXA" }, { 0x00022C, "ABB Bomem, Inc.", "ABB-BOMEM" }, { 0x00022D, "Agere Systems", "AGERE" }, { 0x00022E, "TEAC Corp. R& D", "TEAC-R-D" }, { 0x00022F, "P-Cube, Ltd.", "P-CUBE" }, { 0x000230, "Intersoft Electronics", "INTERSOFT-ELECTRONICS" }, { 0x000231, "Ingersoll-Rand", "INGERSOLL-RAND" }, { 0x000232, "Avision, Inc.", "AVISION" }, { 0x000233, "Mantra Communications, Inc.", "MANTRA-COMMUNICATION" }, { 0x000234, "Imperial Technology, Inc.", "IMPERIAL" }, { 0x000235, "Paragon Networks International", "PARAGON-NETWORKS" }, { 0x000236, "INIT GmbH", "INIT" }, { 0x000237, "Cosmo Research Corp.", "COSMO-RESEARCH" }, { 0x000238, "Serome Technology, Inc.", "SEROME" }, { 0x000239, "Visicom", "VISICOM" }, { 0x00023A, "ZSK Stickmaschinen GmbH", "ZSK-STICKMASCHINEN" }, { 0x00023B, "Ericsson", "ERICSSON" }, { 0x00023C, "Creative Technology, Ltd.", "CREATIVE" }, { 0x00023D, "Cisco Systems, Inc", "CISCO" }, { 0x00023E, "Selta Telematica S.p.a", "SELTA-TELEMATICA" }, { 0x00023F, "Compal Electronics INC.", "COMPAL-ELECTRONICS" }, { 0x000240, "Seedek Co., Ltd.", "SEEDEK" }, { 0x000241, "Amer.com", "AMER-COM" }, { 0x000242, "Videoframe Systems", "VIDEOFRAME" }, { 0x000243, "Raysis Co., Ltd.", "RAYSIS" }, { 0x000244, "SURECOM Technology Co.", "SURECOM" }, { 0x000245, "Lampus Co, Ltd.", "LAMPUS" }, { 0x000246, "All-Win Tech Co., Ltd.", "ALL-WIN-TECH" }, { 0x000247, "Great Dragon Information Technology (Group) Co., Ltd.", "GREAT-DRAGON-INFORMATION-GROUP" }, { 0x000248, "Pilz GmbH & Co.", "PILZ" }, { 0x000249, "Aviv Infocom Co, Ltd.", "AVIV-INFOCOM" }, { 0x00024A, "Cisco Systems, Inc", "CISCO" }, { 0x00024B, "Cisco Systems, Inc", "CISCO" }, { 0x00024C, "SiByte, Inc.", "SIBYTE" }, { 0x00024D, "Mannesman Dematic Colby Pty. Ltd.", "MANNESMAN-DEMATIC-COLBY-PTY" }, { 0x00024E, "Datacard Group", "DATACARD-GROUP" }, { 0x00024F, "IPM Datacom S.R.L.", "IPM-DATACOM" }, { 0x000250, "Geyser Networks, Inc.", "GEYSER-NETWORKS" }, { 0x000251, "Soma Networks, Inc.", "SOMA-NETWORKS" }, { 0x000252, "Carrier Corporation", "CARRIER" }, { 0x000253, "Televideo, Inc.", "TELEVIDEO" }, { 0x000254, "WorldGate", "WORLDGATE" }, { 0x000255, "IBM Corp", "IBM" }, { 0x000256, "Alpha Processor, Inc.", "ALPHA-PROCESSOR" }, { 0x000257, "Microcom Corp.", "MICROCOM" }, { 0x000258, "Flying Packets Communications", "FLYING-PACKETS-COMMUNICATION" }, { 0x000259, "Tsann Kuen China (Shanghai)Enterprise Co., Ltd. IT Group", "TSANN-KUEN-CHINA-SHANGHAI-IT-GROUP" }, { 0x00025A, "Catena Networks", "CATENA-NETWORKS" }, { 0x00025B, "Cambridge Silicon Radio", "CAMBRIDGE-SILICON-RADIO" }, { 0x00025C, "SCI Systems (Kunshan) Co., Ltd.", "SCI-KUNSHAN" }, { 0x00025D, "Calix Networks", "CALIX-NETWORKS" }, { 0x00025E, "High Technology Ltd", "HIGH" }, { 0x00025F, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x000260, "Accordion Networks, Inc.", "ACCORDION-NETWORKS" }, { 0x000261, "Tilgin AB", "TILGIN-AB" }, { 0x000262, "Soyo Group Soyo Com Tech Co., Ltd", "SOYO-GROUP-SOYO-COM-TECH" }, { 0x000263, "UPS Manufacturing SRL", "UPS-MANUFACTURING-SRL" }, { 0x000264, "AudioRamp.com", "AUDIORAMP-COM" }, { 0x000265, "Virditech Co. Ltd.", "VIRDITECH" }, { 0x000266, "Thermalogic Corporation", "THERMALOGIC" }, { 0x000267, "NODE RUNNER, INC.", "NODE-RUNNER" }, { 0x000268, "Harris Government Communications", "HARRIS-GOVERNMENT-COMMUNICATION" }, { 0x000269, "Nadatel Co., Ltd", "NADATEL" }, { 0x00026A, "Cocess Telecom Co., Ltd.", "COCESS-TELECOM" }, { 0x00026B, "BCM Computers Co., Ltd.", "BCM-COMPUTERS" }, { 0x00026C, "Philips CFT", "PHILIPS-CFT" }, { 0x00026D, "Adept Telecom", "ADEPT-TELECOM" }, { 0x00026E, "NeGeN Access, Inc.", "NEGEN-ACCESS" }, { 0x00026F, "Senao International Co., Ltd.", "SENAO" }, { 0x000270, "Crewave Co., Ltd.", "CREWAVE" }, { 0x000271, "DZS Inc.", "DZS" }, { 0x000272, "CC&C Technologies, Inc.", "CC-C-TECHNOLOGIES" }, { 0x000273, "Coriolis Networks", "CORIOLIS-NETWORKS" }, { 0x000274, "Tommy Technologies Corp.", "TOMMY-TECHNOLOGIES" }, { 0x000275, "SMART Technologies, Inc.", "SMART-TECHNOLOGIES" }, { 0x000276, "Primax Electronics Ltd.", "PRIMAX-ELECTRONICS" }, { 0x000277, "Cash Systemes Industrie", "CASH-SYSTEMES-INDUSTRIE" }, { 0x000278, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0x000279, "Control Applications, Ltd.", "CONTROL-APPLICATIONS" }, { 0x00027A, "IOI Technology Corporation", "IOI" }, { 0x00027B, "Amplify Net, Inc.", "AMPLIFY-NET" }, { 0x00027C, "Trilithic, Inc.", "TRILITHIC" }, { 0x00027D, "Cisco Systems, Inc", "CISCO" }, { 0x00027E, "Cisco Systems, Inc", "CISCO" }, { 0x00027F, "ask-technologies.com", "ASK-TECHNOLOGIES-COM" }, { 0x000280, "Mu Net, Inc.", "MU-NET" }, { 0x000281, "Madge Ltd.", "MADGE" }, { 0x000282, "ViaClix, Inc.", "VIACLIX" }, { 0x000283, "Spectrum Controls, Inc.", "SPECTRUM-CONTROLS" }, { 0x000284, "UK Grid Solutions Limited", "UK-GRID-SOLUTIONS" }, { 0x000285, "Riverstone Networks", "RIVERSTONE-NETWORKS" }, { 0x000286, "Occam Networks", "OCCAM-NETWORKS" }, { 0x000287, "Adapcom", "ADAPCOM" }, { 0x000288, "GLOBAL VILLAGE COMMUNICATION", "GLOBAL-VILLAGE-COMMUNICATION" }, { 0x000289, "DNE Technologies", "DNE-TECHNOLOGIES" }, { 0x00028A, "Ambit Microsystems Corporation", "AMBIT-MICROSYSTEMS" }, { 0x00028B, "VDSL Systems OY", "VDSL-OY" }, { 0x00028C, "Micrel-Synergy Semiconductor", "MICREL-SYNERGY-SEMICONDUCTOR" }, { 0x00028D, "Movita Technologies, Inc.", "MOVITA-TECHNOLOGIES" }, { 0x00028E, "Rapid 5 Networks, Inc.", "RAPID-5-NETWORKS" }, { 0x00028F, "Globetek, Inc.", "GLOBETEK" }, { 0x000290, "Woorigisool, Inc.", "WOORIGISOOL" }, { 0x000291, "Open Network Co., Ltd.", "OPEN-NETWORK" }, { 0x000292, "Logic Innovations, Inc.", "LOGIC-INNOVATIONS" }, { 0x000293, "Solid Data Systems", "SOLID-DATA" }, { 0x000294, "Tokyo Sokushin Co., Ltd.", "TOKYO-SOKUSHIN" }, { 0x000295, "IP.Access Limited", "IP-ACCESS" }, { 0x000296, "Lectron Co,. Ltd.", "LECTRON" }, { 0x000297, "C-COR.net", "C-COR-NET" }, { 0x000298, "Broadframe Corporation", "BROADFRAME" }, { 0x000299, "Apex, Inc.", "APEX" }, { 0x00029A, "Storage Apps", "STORAGE-APPS" }, { 0x00029B, "Kreatel Communications AB", "KREATEL-COMMUNICATION-AB" }, { 0x00029C, "3COM", "3COM" }, { 0x00029D, "Merix Corp.", "MERIX" }, { 0x00029E, "Information Equipment Co., Ltd.", "INFORMATION-EQUIPMENT" }, { 0x00029F, "L-3 Communication Aviation Recorders", "L-3-COMMUNICATION-AVIATION-RECORDERS" }, { 0x0002A0, "Flatstack Ltd.", "FLATSTACK" }, { 0x0002A1, "World Wide Packets", "WORLD-WIDE-PACKETS" }, { 0x0002A2, "Hilscher GmbH", "HILSCHER" }, { 0x0002A3, "Hitachi Energy Switzerland Ltd", "HITACHI-ENERGY-SWITZERLAND" }, { 0x0002A4, "AddPac Technology Co., Ltd.", "ADDPAC" }, { 0x0002A5, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x0002A6, "Effinet Systems Co., Ltd.", "EFFINET" }, { 0x0002A7, "Vivace Networks", "VIVACE-NETWORKS" }, { 0x0002A8, "Air Link Technology", "AIR-LINK" }, { 0x0002A9, "RACOM, s.r.o.", "RACOM-S-R-O" }, { 0x0002AA, "PLcom Co., Ltd.", "PLCOM" }, { 0x0002AB, "CTC Union Technologies Co., Ltd.", "CTC-UNION-TECHNOLOGIES" }, { 0x0002AC, "3PAR data", "3PAR-DATA" }, { 0x0002AD, "HOYA Corporation", "HOYA" }, { 0x0002AE, "Scannex Electronics Ltd.", "SCANNEX-ELECTRONICS" }, { 0x0002AF, "TeleCruz Technology, Inc.", "TELECRUZ" }, { 0x0002B0, "Hokubu Communication & Industrial Co., Ltd.", "HOKUBU-COMMUNICATION-INDUSTRIAL" }, { 0x0002B1, "Anritsu, Ltd.", "ANRITSU" }, { 0x0002B2, "Cablevision", "CABLEVISION" }, { 0x0002B3, "Intel Corporation", "INTEL" }, { 0x0002B4, "DAPHNE", "DAPHNE" }, { 0x0002B5, "Avnet, Inc.", "AVNET" }, { 0x0002B6, "Acrosser Technology Co., Ltd.", "ACROSSER" }, { 0x0002B7, "Watanabe Electric Industry Co., Ltd.", "WATANABE-ELECTRIC-INDUSTRY" }, { 0x0002B8, "WHI KONSULT AB", "WHI-KONSULT-AB" }, { 0x0002B9, "Cisco Systems, Inc", "CISCO" }, { 0x0002BA, "Cisco Systems, Inc", "CISCO" }, { 0x0002BB, "Continuous Computing Corp", "CONTINUOUS-COMPUTING" }, { 0x0002BC, "LVL 7 Systems, Inc.", "LVL-7" }, { 0x0002BD, "Bionet Co., Ltd.", "BIONET" }, { 0x0002BE, "Totsu Engineering, Inc.", "TOTSU-ENGINEERING" }, { 0x0002BF, "dotRocket, Inc.", "DOTROCKET" }, { 0x0002C0, "Bencent Tzeng Industry Co., Ltd.", "BENCENT-TZENG-INDUSTRY" }, { 0x0002C1, "Innovative Electronic Designs, Inc.", "INNOVATIVE-DESIGNS" }, { 0x0002C2, "Net Vision Telecom", "NET-VISION-TELECOM" }, { 0x0002C3, "Arelnet Ltd.", "ARELNET" }, { 0x0002C4, "OPT Machine Vision Tech Co., Ltd", "OPT-MACHINE-VISION-TECH" }, { 0x0002C5, "Evertz Microsystems Ltd.", "EVERTZ-MICROSYSTEMS" }, { 0x0002C6, "Data Track Technology PLC", "DATA-TRACK-PLC" }, { 0x0002C7, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x0002C8, "Technocom Communications Technology (pte) Ltd", "TECHNOCOM-COMMUNICATION-PTE" }, { 0x0002C9, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0x0002CA, "EndPoints, Inc.", "ENDPOINTS" }, { 0x0002CB, "TriState Ltd.", "TRISTATE" }, { 0x0002CC, "M.C.C.I", "M-C-C-I" }, { 0x0002CD, "TeleDream, Inc.", "TELEDREAM" }, { 0x0002CE, "FoxJet, Inc.", "FOXJET" }, { 0x0002CF, "ZyGate Communications, Inc.", "ZYGATE-COMMUNICATION" }, { 0x0002D0, "Comdial Corporation", "COMDIAL" }, { 0x0002D1, "Vivotek, Inc.", "VIVOTEK" }, { 0x0002D2, "Workstation AG", "WORKSTATION" }, { 0x0002D3, "NetBotz, Inc.", "NETBOTZ" }, { 0x0002D4, "PDA Peripherals, Inc.", "PDA-PERIPHERALS" }, { 0x0002D5, "ACR", "ACR" }, { 0x0002D6, "NICE Systems", "NICE" }, { 0x0002D7, "EMPEG Ltd", "EMPEG" }, { 0x0002D8, "BRECIS Communications Corporation", "BRECIS-COMMUNICATION" }, { 0x0002D9, "Reliable Controls", "RELIABLE-CONTROLS" }, { 0x0002DA, "ExiO Communications, Inc.", "EXIO-COMMUNICATION" }, { 0x0002DB, "NETSEC", "NETSEC" }, { 0x0002DC, "Fujitsu General Limited", "FUJITSU-GENERAL" }, { 0x0002DD, "Bromax Communications, Ltd.", "BROMAX-COMMUNICATION" }, { 0x0002DE, "Astrodesign, Inc.", "ASTRODESIGN" }, { 0x0002DF, "Net Com Systems, Inc.", "NET-COM" }, { 0x0002E0, "ETAS GmbH", "ETAS" }, { 0x0002E1, "Integrated Network Corporation", "INTEGRATED-NETWORK" }, { 0x0002E2, "NDC Infared Engineering", "NDC-INFARED-ENGINEERING" }, { 0x0002E3, "LITE-ON Communications, Inc.", "LITE-ON-COMMUNICATION" }, { 0x0002E4, "JC HYUN Systems, Inc.", "JC-HYUN" }, { 0x0002E5, "Timeware Ltd.", "TIMEWARE" }, { 0x0002E6, "Gould Instrument Systems, Inc.", "GOULD-INSTRUMENT" }, { 0x0002E7, "CAB GmbH & Co KG", "CAB" }, { 0x0002E8, "E.D.&A.", "E-D-A" }, { 0x0002E9, "CS Systemes De Securite - C3S", "CS-SYSTEMES-DE-SECURITE-C3S" }, { 0x0002EA, "Focus Enhancements", "FOCUS-ENHANCEMENTS" }, { 0x0002EB, "Pico Communications", "PICO-COMMUNICATION" }, { 0x0002EC, "Maschoff Design Engineering", "MASCHOFF-DESIGN-ENGINEERING" }, { 0x0002ED, "DXO Telecom Co., Ltd.", "DXO-TELECOM" }, { 0x0002EE, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0002EF, "CCC Network Systems Group Ltd.", "CCC-NETWORK-GROUP" }, { 0x0002F0, "AME Optimedia Technology Co., Ltd.", "AME-OPTIMEDIA" }, { 0x0002F1, "Pinetron Co., Ltd.", "PINETRON" }, { 0x0002F2, "eDevice, Inc.", "EDEVICE" }, { 0x0002F3, "Media Serve Co., Ltd.", "MEDIA-SERVE" }, { 0x0002F4, "PCTEL, Inc.", "PCTEL" }, { 0x0002F5, "VIVE Synergies, Inc.", "VIVE-SYNERGIES" }, { 0x0002F6, "Equipe Communications", "EQUIPE-COMMUNICATION" }, { 0x0002F7, "ARM", "ARM" }, { 0x0002F8, "SEAKR Engineering, Inc.", "SEAKR-ENGINEERING" }, { 0x0002F9, "MIMOS Berhad", "MIMOS-BERHAD" }, { 0x0002FA, "DX Antenna Co., Ltd.", "DX-ANTENNA" }, { 0x0002FB, "Baumuller Aulugen-Systemtechnik GmbH", "BAUMULLER-AULUGEN-SYSTEMTECHNIK" }, { 0x0002FC, "Cisco Systems, Inc", "CISCO" }, { 0x0002FD, "Cisco Systems, Inc", "CISCO" }, { 0x0002FE, "Viditec, Inc.", "VIDITEC" }, { 0x0002FF, "Handan BroadInfoCom", "HANDAN-BROADINFOCOM" }, { 0x000300, "Barracuda Networks, Inc.", "BARRACUDA-NETWORKS" }, { 0x000301, "EXFO", "EXFO" }, { 0x000302, "Charles Industries, Ltd.", "CHARLES-INDUSTRIES" }, { 0x000303, "JAMA Electronics Co., Ltd.", "JAMA-ELECTRONICS" }, { 0x000304, "Pacific Broadband Communications", "PACIFIC-BROADBAND-COMMUNICATION" }, { 0x000305, "MSC Vertriebs GmbH", "MSC-VERTRIEBS" }, { 0x000306, "Fusion In Tech Co., Ltd.", "FUSION-IN-TECH" }, { 0x000307, "Secure Works, Inc.", "SECURE-WORKS" }, { 0x000308, "AM Communications, Inc.", "AM-COMMUNICATION" }, { 0x000309, "Texcel Technology PLC", "TEXCEL-PLC" }, { 0x00030A, "Argus Technologies", "ARGUS-TECHNOLOGIES" }, { 0x00030B, "Hunter Technology, Inc.", "HUNTER" }, { 0x00030C, "Telesoft Technologies Ltd.", "TELESOFT-TECHNOLOGIES" }, { 0x00030D, "Uniwill Computer Corp.", "UNIWILL" }, { 0x00030E, "Core Communications Co., Ltd.", "CORE-COMMUNICATION" }, { 0x00030F, "Digital China (Shanghai) Networks Ltd.", "DIGITAL-CHINA-SHANGHAI-NETWORKS" }, { 0x000310, "E-Globaledge Corporation", "E-GLOBALEDGE" }, { 0x000311, "Micro Technology Co., Ltd.", "MICRO" }, { 0x000312, "TRsystems GmbH", "TRSYSTEMS" }, { 0x000313, "Access Media SPA", "ACCESS-MEDIA-SPA" }, { 0x000314, "Teleware Network Systems", "TELEWARE-NETWORK" }, { 0x000315, "Cidco Incorporated", "CIDCO-INCORPORATED" }, { 0x000316, "Nobell Communications, Inc.", "NOBELL-COMMUNICATION" }, { 0x000317, "Merlin Systems, Inc.", "MERLIN" }, { 0x000318, "Cyras Systems, Inc.", "CYRAS" }, { 0x000319, "Infineon AG", "INFINEON" }, { 0x00031A, "Beijing Broad Telecom Ltd., China", "BEIJING-BROAD-TELECOM-CHINA" }, { 0x00031B, "Cellvision Systems, Inc.", "CELLVISION" }, { 0x00031C, "Svenska Hardvarufabriken AB", "SVENSKA-HARDVARUFABRIKEN-AB" }, { 0x00031D, "Taiwan Commate Computer, Inc.", "TAIWAN-COMMATE" }, { 0x00031E, "Optranet, Inc.", "OPTRANET" }, { 0x00031F, "Condev Ltd.", "CONDEV" }, { 0x000320, "Xpeed, Inc.", "XPEED" }, { 0x000321, "Reco Research Co., Ltd.", "RECO-RESEARCH" }, { 0x000322, "IDIS Co., Ltd.", "IDIS" }, { 0x000323, "Cornet Technology, Inc.", "CORNET" }, { 0x000324, "SANYO Techno Solutions Tottori Co., Ltd.", "SANYO-TECHNO-SOLUTIONS-TOTTORI" }, { 0x000325, "Arima Computer Corp.", "ARIMA" }, { 0x000326, "Iwasaki Information Systems Co., Ltd.", "IWASAKI-INFORMATION" }, { 0x000327, "HMS Industrial Networks", "HMS-INDUSTRIAL-NETWORKS" }, { 0x000328, "Mace Group, Inc.", "MACE-GROUP" }, { 0x000329, "F3, Inc.", "F3" }, { 0x00032A, "UniData Communication Systems, Inc.", "UNIDATA-COMMUNICATION" }, { 0x00032B, "GAI Datenfunksysteme GmbH", "GAI-DATENFUNKSYSTEME" }, { 0x00032C, "ABB Switzerland Ltd", "ABB-SWITZERLAND" }, { 0x00032D, "IBASE Technology, Inc.", "IBASE" }, { 0x00032E, "Scope Information Management, Ltd.", "SCOPE-INFORMATION-MANAGEMENT" }, { 0x00032F, "Global Sun Technology, Inc.", "GLOBAL-SUN" }, { 0x000330, "Imagenics, Co., Ltd.", "IMAGENICS" }, { 0x000331, "Cisco Systems, Inc", "CISCO" }, { 0x000332, "Cisco Systems, Inc", "CISCO" }, { 0x000333, "Digitel Co., Ltd.", "DIGITEL" }, { 0x000334, "Omega Engineering Inc.", "OMEGA-ENGINEERING" }, { 0x000335, "Mirae Technology", "MIRAE" }, { 0x000336, "Zetes Technologies", "ZETES-TECHNOLOGIES" }, { 0x000337, "Vaone, Inc.", "VAONE" }, { 0x000338, "Oak Technology", "OAK" }, { 0x000339, "Eurologic Systems, Ltd.", "EUROLOGIC" }, { 0x00033A, "Silicon Wave, Inc.", "SILICON-WAVE" }, { 0x00033B, "TAMI Tech Co., Ltd.", "TAMI-TECH" }, { 0x00033C, "Daiden Co., Ltd.", "DAIDEN" }, { 0x00033D, "ILSHin Lab", "ILSHIN-LAB" }, { 0x00033E, "Tateyama System Laboratory Co., Ltd.", "TATEYAMA-SYSTEM-LABORATORY" }, { 0x00033F, "BigBand Networks, Ltd.", "BIGBAND-NETWORKS" }, { 0x000340, "Floware Wireless Systems, Ltd.", "FLOWARE-WIRELESS" }, { 0x000341, "Axon Digital Design", "AXON-DIGITAL-DESIGN" }, { 0x000342, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x000343, "Martin Professional A/S", "MARTIN-PROFESSIONAL-A/S" }, { 0x000344, "Tietech.Co., Ltd.", "TIETECH" }, { 0x000345, "Routrek Networks Corporation", "ROUTREK-NETWORKS" }, { 0x000346, "Hitachi Kokusai Electric, Inc.", "HITACHI-KOKUSAI-ELECTRIC" }, { 0x000347, "Intel Corporation", "INTEL" }, { 0x000348, "Norscan Instruments, Ltd.", "NORSCAN-INSTRUMENTS" }, { 0x000349, "Vidicode Datacommunicatie B.V.", "VIDICODE-DATACOMMUNICATIE-B-V" }, { 0x00034A, "RIAS Corporation", "RIAS" }, { 0x00034B, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x00034C, "Shanghai DigiVision Technology Co., Ltd.", "SHANGHAI-DIGIVISION" }, { 0x00034D, "Chiaro Networks, Ltd.", "CHIARO-NETWORKS" }, { 0x00034E, "Pos Data Company, Ltd.", "POS-DATA-COMPANY" }, { 0x00034F, "Sur-Gard Security", "SUR-GARD-SECURITY" }, { 0x000350, "BTICINO SPA", "BTICINO-SPA" }, { 0x000351, "Diebold Nixdorf", "DIEBOLD-NIXDORF" }, { 0x000352, "Colubris Networks", "COLUBRIS-NETWORKS" }, { 0x000353, "Mitac, Inc.", "MITAC" }, { 0x000354, "Fiber Logic Communications", "FIBER-LOGIC-COMMUNICATION" }, { 0x000355, "TeraBeam Internet Systems", "TERABEAM-INTERNET" }, { 0x000356, "Diebold Nixdorf", "DIEBOLD-NIXDORF" }, { 0x000357, "Intervoice-Brite, Inc.", "INTERVOICE-BRITE" }, { 0x000358, "Hanyang Digitech Co.Ltd", "HANYANG-DIGITECH" }, { 0x000359, "DigitalSis", "DIGITALSIS" }, { 0x00035A, "Photron Limited", "PHOTRON" }, { 0x00035B, "BridgeWave Communications", "BRIDGEWAVE-COMMUNICATION" }, { 0x00035C, "Saint Song Corp.", "SAINT-SONG" }, { 0x00035D, "Bosung Hi-Net Co., Ltd.", "BOSUNG-HI-NET" }, { 0x00035E, "Metropolitan Area Networks, Inc.", "METROPOLITAN-AREA-NETWORKS" }, { 0x00035F, "Prüftechnik Condition Monitoring GmbH & Co. KG", "PRUEFTECHNIK-CONDITION-MONITORING" }, { 0x000360, "PAC Interactive Technology, Inc.", "PAC-INTERACTIVE" }, { 0x000361, "Widcomm, Inc.", "WIDCOMM" }, { 0x000362, "Vodtel Communications, Inc.", "VODTEL-COMMUNICATION" }, { 0x000363, "Miraesys Co., Ltd.", "MIRAESYS" }, { 0x000364, "Scenix Semiconductor, Inc.", "SCENIX-SEMICONDUCTOR" }, { 0x000365, "Kira Information & Communications, Ltd.", "KIRA-INFORMATION-COMMUNICATION" }, { 0x000366, "ASM Pacific Technology", "ASM-PACIFIC" }, { 0x000367, "Jasmine Networks, Inc.", "JASMINE-NETWORKS" }, { 0x000368, "Embedone Co., Ltd.", "EMBEDONE" }, { 0x000369, "Nippon Antenna Co., Ltd.", "NIPPON-ANTENNA" }, { 0x00036A, "Mainnet, Ltd.", "MAINNET" }, { 0x00036B, "Cisco Systems, Inc", "CISCO" }, { 0x00036C, "Cisco Systems, Inc", "CISCO" }, { 0x00036D, "Runtop, Inc.", "RUNTOP" }, { 0x00036E, "Nicon Systems (Pty) Limited", "NICON-PTY" }, { 0x00036F, "Telsey SPA", "TELSEY-SPA" }, { 0x000370, "NXTV, Inc.", "NXTV" }, { 0x000371, "Acomz Networks Corp.", "ACOMZ-NETWORKS" }, { 0x000372, "ULAN", "ULAN" }, { 0x000373, "Aselsan A.S", "ASELSAN" }, { 0x000374, "Control Microsystems", "CONTROL-MICROSYSTEMS" }, { 0x000375, "NetMedia, Inc.", "NETMEDIA" }, { 0x000376, "Graphtec Technology, Inc.", "GRAPHTEC" }, { 0x000377, "Gigabit Wireless", "GIGABIT-WIRELESS" }, { 0x000378, "HUMAX Co., Ltd.", "HUMAX" }, { 0x000379, "Proscend Communications, Inc.", "PROSCEND-COMMUNICATION" }, { 0x00037A, "Taiyo Yuden Co., Ltd.", "TAIYO-YUDEN" }, { 0x00037B, "IDEC IZUMI Corporation", "IDEC-IZUMI" }, { 0x00037C, "Coax Media", "COAX-MEDIA" }, { 0x00037D, "Stellcom", "STELLCOM" }, { 0x00037E, "PORTech Communications, Inc.", "PORTECH-COMMUNICATION" }, { 0x00037F, "Atheros Communications, Inc.", "ATHEROS-COMMUNICATION" }, { 0x000380, "SSH Communications Security Corp.", "SSH-COMMUNICATION-SECURITY" }, { 0x000381, "Ingenico International", "INGENICO" }, { 0x000382, "A-One Co., Ltd.", "A-ONE" }, { 0x000383, "Metera Networks, Inc.", "METERA-NETWORKS" }, { 0x000384, "AETA", "AETA" }, { 0x000385, "Actelis Networks, Inc.", "ACTELIS-NETWORKS" }, { 0x000386, "Ho Net, Inc.", "HO-NET" }, { 0x000387, "Blaze Network Products", "BLAZE-NETWORK-PRODUCTS" }, { 0x000388, "Fastfame Technology Co., Ltd.", "FASTFAME" }, { 0x000389, "PLANTRONICS, INC.", "PLANTRONICS" }, { 0x00038A, "America Online, Inc.", "AMERICA-ONLINE" }, { 0x00038B, "PLUS-ONE I&T, Inc.", "PLUS-ONE-I-T" }, { 0x00038C, "Total Impact", "TOTAL-IMPACT" }, { 0x00038D, "PCS Revenue Control Systems, Inc.", "PCS-REVENUE-CONTROL" }, { 0x00038E, "Atoga Systems, Inc.", "ATOGA" }, { 0x00038F, "Weinschel Corporation", "WEINSCHEL" }, { 0x000390, "Digital Video Communications, Inc.", "DIGITAL-VIDEO-COMMUNICATION" }, { 0x000391, "Advanced Digital Broadcast, Ltd.", "ADVANCED-DIGITAL-BROADCAST" }, { 0x000392, "Hyundai Teletek Co., Ltd.", "HYUNDAI-TELETEK" }, { 0x000393, "Apple, Inc.", "APPLE" }, { 0x000394, "Connect One", "CONNECT-ONE" }, { 0x000395, "California Amplifier", "CALIFORNIA-AMPLIFIER" }, { 0x000396, "EZ Cast Co., Ltd.", "EZ-CAST" }, { 0x000397, "FireBrick Limited", "FIREBRICK" }, { 0x000398, "WISI", "WISI" }, { 0x000399, "Dongju Informations & Communications Co., Ltd.", "DONGJU-INFORMATIONS-COMMUNICATION" }, { 0x00039A, "SiConnect", "SICONNECT" }, { 0x00039B, "NetChip Technology, Inc.", "NETCHIP" }, { 0x00039C, "OptiMight Communications, Inc.", "OPTIMIGHT-COMMUNICATION" }, { 0x00039D, "Qisda Corporation", "QISDA" }, { 0x00039E, "Tera System Co., Ltd.", "TERA-SYSTEM" }, { 0x00039F, "Cisco Systems, Inc", "CISCO" }, { 0x0003A0, "Cisco Systems, Inc", "CISCO" }, { 0x0003A1, "HIPER Information & Communication, Inc.", "HIPER-INFORMATION-COMMUNICATION" }, { 0x0003A2, "Catapult Communications", "CATAPULT-COMMUNICATION" }, { 0x0003A3, "MAVIX, Ltd.", "MAVIX" }, { 0x0003A4, "Imation Corp.", "IMATION" }, { 0x0003A5, "Medea Corporation", "MEDEA" }, { 0x0003A6, "Traxit Technology, Inc.", "TRAXIT" }, { 0x0003A7, "Unixtar Technology, Inc.", "UNIXTAR" }, { 0x0003A8, "IDOT Computers, Inc.", "IDOT-COMPUTERS" }, { 0x0003A9, "AXCENT Media AG", "AXCENT-MEDIA" }, { 0x0003AA, "Watlow", "WATLOW" }, { 0x0003AB, "Bridge Information Systems", "BRIDGE-INFORMATION" }, { 0x0003AC, "Fronius Schweissmaschinen", "FRONIUS-SCHWEISSMASCHINEN" }, { 0x0003AD, "Emerson Energy Systems AB", "EMERSON-ENERGY-AB" }, { 0x0003AE, "Allied Advanced Manufacturing Pte, Ltd.", "ALLIED-ADVANCED-MANUFACTURING-PTE" }, { 0x0003AF, "Paragea Communications", "PARAGEA-COMMUNICATION" }, { 0x0003B0, "Xsense Technology Corp.", "XSENSE" }, { 0x0003B1, "ICU Medical, Inc.", "ICU-MEDICAL" }, { 0x0003B2, "Radware", "RADWARE" }, { 0x0003B3, "IA Link Systems Co., Ltd.", "IA-LINK" }, { 0x0003B4, "Macrotek International Corp.", "MACROTEK" }, { 0x0003B5, "Entra Technology Co.", "ENTRA" }, { 0x0003B6, "QSI Corporation", "QSI" }, { 0x0003B7, "ZACCESS Systems", "ZACCESS" }, { 0x0003B8, "NetKit Solutions, LLC", "NETKIT-SOLUTIONS" }, { 0x0003B9, "Hualong Telecom Co., Ltd.", "HUALONG-TELECOM" }, { 0x0003BA, "Oracle Corporation", "ORACLE" }, { 0x0003BB, "Signal Communications Limited", "SIGNAL-COMMUNICATION" }, { 0x0003BC, "COT GmbH", "COT" }, { 0x0003BD, "OmniCluster Technologies, Inc.", "OMNICLUSTER-TECHNOLOGIES" }, { 0x0003BE, "Netility", "NETILITY" }, { 0x0003BF, "Centerpoint Broadband Technologies, Inc.", "CENTERPOINT-BROADBAND-TECHNOLOGIES" }, { 0x0003C0, "RFTNC Co., Ltd.", "RFTNC" }, { 0x0003C1, "Packet Dynamics Ltd", "PACKET-DYNAMICS" }, { 0x0003C2, "Solphone K.K.", "SOLPHONE-K-K" }, { 0x0003C3, "Micronik Multimedia", "MICRONIK-MULTIMEDIA" }, { 0x0003C4, "Tomra Systems ASA", "TOMRA-ASA" }, { 0x0003C5, "Mobotix AG", "MOBOTIX" }, { 0x0003C6, "ICUE Systems, Inc.", "ICUE" }, { 0x0003C7, "hopf Elektronik GmbH", "HOPF-ELEKTRONIK" }, { 0x0003C8, "CML Emergency Services", "CML-EMERGENCY-SERVICES" }, { 0x0003C9, "TECOM Co., Ltd.", "TECOM" }, { 0x0003CA, "MTS Systems Corp.", "MTS" }, { 0x0003CB, "SystemGear Co., Ltd.", "SYSTEMGEAR" }, { 0x0003CC, "Momentum Computer, Inc.", "MOMENTUM" }, { 0x0003CD, "Clovertech, Inc.", "CLOVERTECH" }, { 0x0003CE, "ETEN Technologies, Inc.", "ETEN-TECHNOLOGIES" }, { 0x0003CF, "Muxcom, Inc.", "MUXCOM" }, { 0x0003D0, "KOANKEISO Co., Ltd.", "KOANKEISO" }, { 0x0003D1, "Takaya Corporation", "TAKAYA" }, { 0x0003D2, "Crossbeam Systems, Inc.", "CROSSBEAM" }, { 0x0003D3, "Internet Energy Systems, Inc.", "INTERNET-ENERGY" }, { 0x0003D4, "Alloptic, Inc.", "ALLOPTIC" }, { 0x0003D5, "Advanced Communications Co., Ltd.", "ADVANCED-COMMUNICATION" }, { 0x0003D6, "RADVision, Ltd.", "RADVISION" }, { 0x0003D7, "NextNet Wireless, Inc.", "NEXTNET-WIRELESS" }, { 0x0003D8, "iMPath Networks, Inc.", "IMPATH-NETWORKS" }, { 0x0003D9, "Secheron SA", "SECHERON" }, { 0x0003DA, "Takamisawa Cybernetics Co., Ltd.", "TAKAMISAWA-CYBERNETICS" }, { 0x0003DB, "Apogee Electronics Corp.", "APOGEE-ELECTRONICS" }, { 0x0003DC, "Lexar Media, Inc.", "LEXAR-MEDIA" }, { 0x0003DD, "Comark Interactive Solutions", "COMARK-INTERACTIVE-SOLUTIONS" }, { 0x0003DE, "OTC Wireless", "OTC-WIRELESS" }, { 0x0003DF, "Desana Systems", "DESANA" }, { 0x0003E0, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0003E1, "Winmate Communication, Inc.", "WINMATE-COMMUNICATION" }, { 0x0003E2, "Comspace Corporation", "COMSPACE" }, { 0x0003E3, "Cisco Systems, Inc", "CISCO" }, { 0x0003E4, "Cisco Systems, Inc", "CISCO" }, { 0x0003E5, "Hermstedt SG", "HERMSTEDT-SG" }, { 0x0003E6, "Entone, Inc.", "ENTONE" }, { 0x0003E7, "Logostek Co. Ltd.", "LOGOSTEK" }, { 0x0003E8, "Wavesight Limited", "WAVESIGHT" }, { 0x0003E9, "Akara Canada, Inc.", "AKARA-CANADA" }, { 0x0003EA, "Mega System Technologies, Inc.", "MEGA-SYSTEM-TECHNOLOGIES" }, { 0x0003EB, "Atrica", "ATRICA" }, { 0x0003EC, "ICG Research, Inc.", "ICG-RESEARCH" }, { 0x0003ED, "Shinkawa Electric Co., Ltd.", "SHINKAWA-ELECTRIC" }, { 0x0003EE, "MKNet Corporation", "MKNET" }, { 0x0003EF, "Oneline AG", "ONELINE" }, { 0x0003F0, "Redfern Broadband Networks", "REDFERN-BROADBAND-NETWORKS" }, { 0x0003F1, "Cicada Semiconductor, Inc.", "CICADA-SEMICONDUCTOR" }, { 0x0003F2, "Seneca Networks", "SENECA-NETWORKS" }, { 0x0003F3, "Dazzle Multimedia, Inc.", "DAZZLE-MULTIMEDIA" }, { 0x0003F4, "NetBurner", "NETBURNER" }, { 0x0003F5, "Chip2Chip", "CHIP2CHIP" }, { 0x0003F6, "Allegro Networks, Inc.", "ALLEGRO-NETWORKS" }, { 0x0003F7, "Plast-Control GmbH", "PLAST-CONTROL" }, { 0x0003F8, "SanCastle Technologies, Inc.", "SANCASTLE-TECHNOLOGIES" }, { 0x0003F9, "Pleiades Communications, Inc.", "PLEIADES-COMMUNICATION" }, { 0x0003FA, "TiMetra Networks", "TIMETRA-NETWORKS" }, { 0x0003FB, "ENEGATE Co.,Ltd.", "ENEGATE" }, { 0x0003FC, "Intertex Data AB", "INTERTEX-DATA-AB" }, { 0x0003FD, "Cisco Systems, Inc", "CISCO" }, { 0x0003FE, "Cisco Systems, Inc", "CISCO" }, { 0x0003FF, "Microsoft Corporation (possible Hyper-V, Virtual Server, Virtual PC VM)", "MICROSOFT-VIRTUAL" }, { 0x000400, "LEXMARK INTERNATIONAL, INC.", "LEXMARK" }, { 0x000401, "Osaki Electric Co., Ltd.", "OSAKI-ELECTRIC" }, { 0x000402, "Nexsan Technologies, Ltd.", "NEXSAN-TECHNOLOGIES" }, { 0x000403, "Nexsi Corporation", "NEXSI" }, { 0x000404, "Makino Milling Machine Co., Ltd.", "MAKINO-MILLING-MACHINE" }, { 0x000405, "ACN Technologies", "ACN-TECHNOLOGIES" }, { 0x000406, "Fa. Metabox AG", "FA-METABOX" }, { 0x000407, "Topcon Positioning Systems, Inc.", "TOPCON-POSITIONING" }, { 0x000408, "Sanko Electronics Co., Ltd.", "SANKO-ELECTRONICS" }, { 0x000409, "Cratos Networks", "CRATOS-NETWORKS" }, { 0x00040A, "Sage Systems", "SAGE" }, { 0x00040B, "3COM EUROPE LTD", "3COM" }, { 0x00040C, "Kanno Works, Ltd.", "KANNO-WORKS" }, { 0x00040D, "Avaya Inc", "AVAYA" }, { 0x00040E, "AVM GmbH", "AVM" }, { 0x00040F, "Asus Network Technologies, Inc.", "ASUS-NETWORK-TECHNOLOGIES" }, { 0x000410, "Spinnaker Networks, Inc.", "SPINNAKER-NETWORKS" }, { 0x000411, "Inkra Networks, Inc.", "INKRA-NETWORKS" }, { 0x000412, "WaveSmith Networks, Inc.", "WAVESMITH-NETWORKS" }, { 0x000413, "snom technology GmbH", "SNOM" }, { 0x000414, "Umezawa Musen Denki Co., Ltd.", "UMEZAWA-MUSEN-DENKI" }, { 0x000415, "Rasteme Systems Co., Ltd.", "RASTEME" }, { 0x000416, "Parks S/A Comunicacoes Digitais", "PARKS-S/A-COMUNICACOES-DIGITAIS" }, { 0x000417, "ELAU AG", "ELAU" }, { 0x000418, "Teltronic S.A.U.", "TELTRONIC-U" }, { 0x000419, "Fibercycle Networks, Inc.", "FIBERCYCLE-NETWORKS" }, { 0x00041A, "Ines Test and Measurement GmbH & CoKG", "INES-TEST-AND-MEASUREMENT-COKG" }, { 0x00041B, "Bridgeworks Ltd.", "BRIDGEWORKS" }, { 0x00041C, "ipDialog, Inc.", "IPDIALOG" }, { 0x00041D, "Corega of America", "COREGA-OF-AMERICA" }, { 0x00041E, "Shikoku Instrumentation Co., Ltd.", "SHIKOKU-INSTRUMENTATION" }, { 0x00041F, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x000420, "Slim Devices, Inc.", "SLIM-DEVICES" }, { 0x000421, "Ocular Networks", "OCULAR-NETWORKS" }, { 0x000422, "Studio Technologies, Inc", "STUDIO-TECHNOLOGIES" }, { 0x000423, "Intel Corporation", "INTEL" }, { 0x000424, "TMC s.r.l.", "TMC" }, { 0x000425, "Atmel Corporation", "ATMEL" }, { 0x000426, "Autosys", "AUTOSYS" }, { 0x000427, "Cisco Systems, Inc", "CISCO" }, { 0x000428, "Cisco Systems, Inc", "CISCO" }, { 0x000429, "Pixord Corporation", "PIXORD" }, { 0x00042A, "Wireless Networks, Inc.", "WIRELESS-NETWORKS" }, { 0x00042B, "IT Access Co., Ltd.", "IT-ACCESS" }, { 0x00042C, "Minet, Inc.", "MINET" }, { 0x00042D, "Sarian Systems, Ltd.", "SARIAN" }, { 0x00042E, "Netous Technologies, Ltd.", "NETOUS-TECHNOLOGIES" }, { 0x00042F, "International Communications Products, Inc.", "COMMUNICATION-PRODUCTS" }, { 0x000430, "Netgem", "NETGEM" }, { 0x000431, "GlobalStreams, Inc.", "GLOBALSTREAMS" }, { 0x000432, "Voyetra Turtle Beach, Inc.", "VOYETRA-TURTLE-BEACH" }, { 0x000433, "Cyberboard A/S", "CYBERBOARD-A/S" }, { 0x000434, "Accelent Systems, Inc.", "ACCELENT" }, { 0x000435, "InfiNet LLC", "INFINET" }, { 0x000436, "ELANsat Technologies, Inc.", "ELANSAT-TECHNOLOGIES" }, { 0x000437, "Powin Information Technology, Inc.", "POWIN-INFORMATION" }, { 0x000438, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x000439, "Rosco Entertainment Technology, Inc.", "ROSCO-ENTERTAINMENT" }, { 0x00043A, "Intelligent Telecommunications, Inc.", "INTELLIGENT-TELECOMMUNICATIONS" }, { 0x00043B, "Lava Computer Mfg., Inc.", "LAVA-MFG" }, { 0x00043C, "SONOS Co., Ltd.", "SONOS" }, { 0x00043D, "INDEL AG", "INDEL" }, { 0x00043E, "Telencomm", "TELENCOMM" }, { 0x00043F, "ESTeem Wireless Modems, Inc", "ESTEEM-WIRELESS-MODEMS" }, { 0x000440, "cyberPIXIE, Inc.", "CYBERPIXIE" }, { 0x000441, "Half Dome Systems, Inc.", "HALF-DOME" }, { 0x000442, "NACT", "NACT" }, { 0x000443, "Agilent Technologies, Inc.", "AGILENT-TECHNOLOGIES" }, { 0x000444, "Western Multiplex Corporation", "WESTERN-MULTIPLEX" }, { 0x000445, "LMS Skalar Instruments GmbH", "LMS-SKALAR-INSTRUMENTS" }, { 0x000446, "CYZENTECH Co., Ltd.", "CYZENTECH" }, { 0x000447, "Acrowave Systems Co., Ltd.", "ACROWAVE" }, { 0x000448, "Polaroid Corporation", "POLAROID" }, { 0x000449, "Mapletree Networks", "MAPLETREE-NETWORKS" }, { 0x00044A, "iPolicy Networks, Inc.", "IPOLICY-NETWORKS" }, { 0x00044B, "NVIDIA", "NVIDIA" }, { 0x00044C, "JENOPTIK", "JENOPTIK" }, { 0x00044D, "Cisco Systems, Inc", "CISCO" }, { 0x00044E, "Cisco Systems, Inc", "CISCO" }, { 0x00044F, "Schubert System Elektronik Gmbh", "SCHUBERT-SYSTEM-ELEKTRONIK" }, { 0x000450, "DMD Computers SRL", "DMD-COMPUTERS-SRL" }, { 0x000451, "Medrad, Inc.", "MEDRAD" }, { 0x000452, "RocketLogix, Inc.", "ROCKETLOGIX" }, { 0x000453, "YottaYotta, Inc.", "YOTTAYOTTA" }, { 0x000454, "Quadriga UK", "QUADRIGA-UK" }, { 0x000455, "ANTARA.net", "ANTARA-NET" }, { 0x000456, "Cambium Networks Limited", "CAMBIUM-NETWORKS" }, { 0x000457, "Universal Access Technology, Inc.", "UNIVERSAL-ACCESS" }, { 0x000458, "Fusion X Co., Ltd.", "FUSION-X" }, { 0x000459, "Veristar Corporation", "VERISTAR" }, { 0x00045A, "The Linksys Group, Inc.", "THE-LINKSYS-GROUP" }, { 0x00045B, "Techsan Electronics Co., Ltd.", "TECHSAN-ELECTRONICS" }, { 0x00045C, "Mobiwave Pte Ltd", "MOBIWAVE-PTE" }, { 0x00045D, "BEKA Elektronik", "BEKA-ELEKTRONIK" }, { 0x00045E, "PolyTrax Information Technology AG", "POLYTRAX-INFORMATION" }, { 0x00045F, "Avalue Technology, Inc.", "AVALUE" }, { 0x000460, "Knilink Technology, Inc.", "KNILINK" }, { 0x000461, "EPOX Computer Co., Ltd.", "EPOX" }, { 0x000462, "DAKOS Data & Communication Co., Ltd.", "DAKOS-DATA-COMMUNICATION" }, { 0x000463, "Bosch Security Systems", "BOSCH-SECURITY" }, { 0x000464, "Pulse-Link Inc", "PULSE-LINK" }, { 0x000465, "i.s.t isdn-support technik GmbH", "I-S-T-ISDN-SUPPORT-TECHNIK" }, { 0x000466, "ARMITEL Co.", "ARMITEL" }, { 0x000467, "Wuhan Research Institute of MII", "WUHAN-RESEARCH-INSTITUTE-OF-MII" }, { 0x000468, "Vivity, Inc.", "VIVITY" }, { 0x000469, "Innocom, Inc.", "INNOCOM" }, { 0x00046A, "Navini Networks", "NAVINI-NETWORKS" }, { 0x00046B, "Palm Wireless, Inc.", "PALM-WIRELESS" }, { 0x00046C, "Cyber Technology Co., Ltd.", "CYBER" }, { 0x00046D, "Cisco Systems, Inc", "CISCO" }, { 0x00046E, "Cisco Systems, Inc", "CISCO" }, { 0x00046F, "Digitel S/A Industria Eletronica", "DIGITEL-S/A-INDUSTRIA-ELETRONICA" }, { 0x000470, "ipUnplugged AB", "IPUNPLUGGED-AB" }, { 0x000471, "IPrad", "IPRAD" }, { 0x000472, "Telelynx, Inc.", "TELELYNX" }, { 0x000473, "Photonex Corporation", "PHOTONEX" }, { 0x000474, "LEGRAND", "LEGRAND" }, { 0x000475, "3COM", "3COM" }, { 0x000476, "3COM", "3COM" }, { 0x000477, "Scalant Systems, Inc.", "SCALANT" }, { 0x000478, "G. Star Technology Corporation", "G-STAR" }, { 0x000479, "Radius Co., Ltd.", "RADIUS" }, { 0x00047A, "AXXESSIT ASA", "AXXESSIT-ASA" }, { 0x00047B, "Schlumberger", "SCHLUMBERGER" }, { 0x00047C, "Skidata AG", "SKIDATA" }, { 0x00047D, "Motorola Solutions Inc.", "MOTOROLA-SOLUTIONS" }, { 0x00047E, "Siqura B.V.", "SIQURA-B-V" }, { 0x00047F, "Chr. Mayr GmbH & Co. KG", "CHR-MAYR" }, { 0x000480, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x000481, "Econolite Control Products, Inc.", "ECONOLITE-CONTROL-PRODUCTS" }, { 0x000482, "Medialogic Corp.", "MEDIALOGIC" }, { 0x000483, "Deltron Technology, Inc.", "DELTRON" }, { 0x000484, "Amann GmbH", "AMANN" }, { 0x000485, "PicoLight", "PICOLIGHT" }, { 0x000486, "ITTC, University of Kansas", "ITTC-UNIVERSITY-OF-KANSAS" }, { 0x000487, "Cogency Semiconductor, Inc.", "COGENCY-SEMICONDUCTOR" }, { 0x000488, "Eurotherm Controls", "EUROTHERM-CONTROLS" }, { 0x000489, "YAFO Networks, Inc.", "YAFO-NETWORKS" }, { 0x00048A, "Temia Vertriebs GmbH", "TEMIA-VERTRIEBS" }, { 0x00048B, "Poscon Corporation", "POSCON" }, { 0x00048C, "Nayna Networks, Inc.", "NAYNA-NETWORKS" }, { 0x00048D, "Teo Technologies, Inc", "TEO-TECHNOLOGIES" }, { 0x00048E, "Ohm Tech Labs, Inc.", "OHM-TECH-LABS" }, { 0x00048F, "TD Systems Corporation", "TD" }, { 0x000490, "Optical Access", "OPTICAL-ACCESS" }, { 0x000491, "Technovision, Inc.", "TECHNOVISION" }, { 0x000492, "Hive Internet, Ltd.", "HIVE-INTERNET" }, { 0x000493, "Tsinghua Unisplendour Co., Ltd.", "TSINGHUA-UNISPLENDOUR" }, { 0x000494, "Breezecom, Ltd.", "BREEZECOM" }, { 0x000495, "Tejas Networks India Limited", "TEJAS-NETWORKS-INDIA" }, { 0x000496, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x000497, "MacroSystem Digital Video AG", "MACROSYSTEM-DIGITAL-VIDEO" }, { 0x000498, "Mahi Networks", "MAHI-NETWORKS" }, { 0x000499, "Chino Corporation", "CHINO" }, { 0x00049A, "Cisco Systems, Inc", "CISCO" }, { 0x00049B, "Cisco Systems, Inc", "CISCO" }, { 0x00049C, "Surgient Networks, Inc.", "SURGIENT-NETWORKS" }, { 0x00049D, "Ipanema Technologies", "IPANEMA-TECHNOLOGIES" }, { 0x00049E, "Wirelink Co., Ltd.", "WIRELINK" }, { 0x00049F, "Freescale Semiconductor", "FREESCALE-SEMICONDUCTOR" }, { 0x0004A0, "Verity Instruments, Inc.", "VERITY-INSTRUMENTS" }, { 0x0004A1, "Pathway Connectivity", "PATHWAY-CONNECTIVITY" }, { 0x0004A2, "L.S.I. Japan Co., Ltd.", "L-S-I-JAPAN" }, { 0x0004A3, "Microchip Technology Inc.", "MICROCHIP" }, { 0x0004A4, "NetEnabled, Inc.", "NETENABLED" }, { 0x0004A5, "Barco Projection Systems NV", "BARCO-PROJECTION-NV" }, { 0x0004A6, "SAF Tehnika Ltd.", "SAF-TEHNIKA" }, { 0x0004A7, "FabiaTech Corporation", "FABIATECH" }, { 0x0004A8, "Broadmax Technologies, Inc.", "BROADMAX-TECHNOLOGIES" }, { 0x0004A9, "SandStream Technologies, Inc.", "SANDSTREAM-TECHNOLOGIES" }, { 0x0004AA, "Jetstream Communications", "JETSTREAM-COMMUNICATION" }, { 0x0004AB, "Mavenir Inc.", "MAVENIR" }, { 0x0004AC, "IBM Corp", "IBM" }, { 0x0004AD, "Malibu Networks", "MALIBU-NETWORKS" }, { 0x0004AE, "Sullair Corporation", "SULLAIR" }, { 0x0004AF, "Digital Fountain, Inc.", "DIGITAL-FOUNTAIN" }, { 0x0004B0, "ELESIGN Co., Ltd.", "ELESIGN" }, { 0x0004B1, "Signal Technology, Inc.", "SIGNAL" }, { 0x0004B2, "ESSEGI SRL", "ESSEGI-SRL" }, { 0x0004B3, "Videotek, Inc.", "VIDEOTEK" }, { 0x0004B4, "CIAC", "CIAC" }, { 0x0004B5, "Equitrac Corporation", "EQUITRAC" }, { 0x0004B6, "Stratex Networks, Inc.", "STRATEX-NETWORKS" }, { 0x0004B7, "AMB i.t. Holding", "AMB-I-T-HOLDING" }, { 0x0004B8, "Kumahira Co., Ltd.", "KUMAHIRA" }, { 0x0004B9, "S.I. Soubou, Inc.", "S-I-SOUBOU" }, { 0x0004BA, "KDD Media Will Corporation", "KDD-MEDIA-WILL" }, { 0x0004BB, "Bardac Corporation", "BARDAC" }, { 0x0004BC, "Giantec, Inc.", "GIANTEC" }, { 0x0004BD, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0004BE, "OptXCon, Inc.", "OPTXCON" }, { 0x0004BF, "VersaLogic Corp.", "VERSALOGIC" }, { 0x0004C0, "Cisco Systems, Inc", "CISCO" }, { 0x0004C1, "Cisco Systems, Inc", "CISCO" }, { 0x0004C2, "Magnipix, Inc.", "MAGNIPIX" }, { 0x0004C3, "CASTOR Informatique", "CASTOR-INFORMATIQUE" }, { 0x0004C4, "Audiotonix Group Limited", "AUDIOTONIX-GROUP" }, { 0x0004C5, "ASE Technologies, USA", "ASE-TECHNOLOGIES-USA" }, { 0x0004C6, "YAMAHA MOTOR CO.,LTD", "YAMAHA-MOTOR" }, { 0x0004C7, "NetMount", "NETMOUNT" }, { 0x0004C8, "LIBA Maschinenfabrik GmbH", "LIBA-MASCHINENFABRIK" }, { 0x0004C9, "Micro Electron Co., Ltd.", "MICRO-ELECTRON" }, { 0x0004CA, "FreeMs Corp.", "FREEMS" }, { 0x0004CB, "Tdsoft Communication, Ltd.", "TDSOFT-COMMUNICATION" }, { 0x0004CC, "Peek Traffic B.V.", "PEEK-TRAFFIC-B-V" }, { 0x0004CD, "Extenway Solutions Inc", "EXTENWAY-SOLUTIONS" }, { 0x0004CE, "Patria Ailon", "PATRIA-AILON" }, { 0x0004CF, "Seagate Technology", "SEAGATE" }, { 0x0004D0, "Softlink s.r.o.", "SOFTLINK-S-R-O" }, { 0x0004D1, "Drew Technologies, Inc.", "DREW-TECHNOLOGIES" }, { 0x0004D2, "Adcon Telemetry GmbH", "ADCON-TELEMETRY" }, { 0x0004D3, "Toyokeiki Co., Ltd.", "TOYOKEIKI" }, { 0x0004D4, "Proview Electronics Co., Ltd.", "PROVIEW-ELECTRONICS" }, { 0x0004D5, "Hitachi Information & Communication Engineering, Ltd.", "HITACHI-INFORMATION-COMMUNICATION-ENGINEERING" }, { 0x0004D6, "Takagi Industrial Co., Ltd.", "TAKAGI-INDUSTRIAL" }, { 0x0004D7, "Omitec Instrumentation Ltd.", "OMITEC-INSTRUMENTATION" }, { 0x0004D8, "IPWireless, Inc.", "IPWIRELESS" }, { 0x0004D9, "Titan Electronics, Inc.", "TITAN-ELECTRONICS" }, { 0x0004DA, "Relax Technology, Inc.", "RELAX" }, { 0x0004DB, "Tellus Group Corp.", "TELLUS-GROUP" }, { 0x0004DC, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x0004DD, "Cisco Systems, Inc", "CISCO" }, { 0x0004DE, "Cisco Systems, Inc", "CISCO" }, { 0x0004DF, "TERACOM TELEMATICA S.A", "TERACOM-TELEMATICA" }, { 0x0004E0, "Procket Networks", "PROCKET-NETWORKS" }, { 0x0004E1, "Infinior Microsystems", "INFINIOR-MICROSYSTEMS" }, { 0x0004E2, "SMC Networks, Inc.", "SMC-NETWORKS" }, { 0x0004E3, "Accton Technology Corp", "ACCTON" }, { 0x0004E4, "Daeryung Ind., Inc.", "DAERYUNG-IND" }, { 0x0004E5, "Glonet Systems, Inc.", "GLONET" }, { 0x0004E6, "Banyan Network Private Limited", "BANYAN-NETWORK-PRIVATE" }, { 0x0004E7, "Lightpointe Communications, Inc", "LIGHTPOINTE-COMMUNICATION" }, { 0x0004E8, "IER, Inc.", "IER" }, { 0x0004E9, "Infiniswitch Corporation", "INFINISWITCH" }, { 0x0004EA, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x0004EB, "Paxonet Communications, Inc.", "PAXONET-COMMUNICATION" }, { 0x0004EC, "Memobox SA", "MEMOBOX" }, { 0x0004ED, "Billion Electric Co., Ltd.", "BILLION-ELECTRIC" }, { 0x0004EE, "Lincoln Electric Company", "LINCOLN-ELECTRIC-COMPANY" }, { 0x0004EF, "Polestar Corp.", "POLESTAR" }, { 0x0004F0, "International Computers, Ltd", "COMPUTERS" }, { 0x0004F1, "WhereNet", "WHERENET" }, { 0x0004F2, "Polycom", "POLYCOM" }, { 0x0004F3, "FS FORTH-SYSTEME GmbH", "FS-FORTH-SYSTEME" }, { 0x0004F4, "Infinite Electronics Inc.", "INFINITE-ELECTRONICS" }, { 0x0004F5, "SnowShore Networks, Inc.", "SNOWSHORE-NETWORKS" }, { 0x0004F6, "Amphus", "AMPHUS" }, { 0x0004F7, "Omega Band, Inc.", "OMEGA-BAND" }, { 0x0004F8, "QUALICABLE TV Industria E Com., Ltda", "QUALICABLE-TV-INDUSTRIA-E-COM-LTDA" }, { 0x0004F9, "Xtera Communications, Inc.", "XTERA-COMMUNICATION" }, { 0x0004FA, "NBS Technologies Inc.", "NBS-TECHNOLOGIES" }, { 0x0004FB, "Commtech, Inc.", "COMMTECH" }, { 0x0004FC, "Stratus Technologies", "STRATUS-TECHNOLOGIES" }, { 0x0004FD, "Japan Control Engineering Co., Ltd.", "JAPAN-CONTROL-ENGINEERING" }, { 0x0004FE, "Pelago Networks", "PELAGO-NETWORKS" }, { 0x0004FF, "Acronet Co., Ltd.", "ACRONET" }, { 0x000500, "Cisco Systems, Inc", "CISCO" }, { 0x000501, "Cisco Systems, Inc", "CISCO" }, { 0x000502, "Apple, Inc.", "APPLE" }, { 0x000503, "ICONAG", "ICONAG" }, { 0x000504, "Naray Information & Communication Enterprise", "NARAY-INFORMATION-COMMUNICATION" }, { 0x000505, "Systems Integration Solutions, Inc.", "INTEGRATION-SOLUTIONS" }, { 0x000506, "Reddo Networks AB", "REDDO-NETWORKS-AB" }, { 0x000507, "Fine Appliance Corp.", "FINE-APPLIANCE" }, { 0x000508, "Inetcam, Inc.", "INETCAM" }, { 0x000509, "AVOC Nishimura Ltd.", "AVOC-NISHIMURA" }, { 0x00050A, "ICS Spa", "ICS-SPA" }, { 0x00050B, "SICOM Systems, Inc.", "SICOM" }, { 0x00050C, "Network Photonics, Inc.", "NETWORK-PHOTONICS" }, { 0x00050D, "Midstream Technologies, Inc.", "MIDSTREAM-TECHNOLOGIES" }, { 0x00050E, "3ware, Inc.", "3WARE" }, { 0x00050F, "Tanaka S/S Ltd.", "TANAKA-S/S" }, { 0x000510, "Infinite Shanghai Communication Terminals Ltd.", "INFINITE-SHANGHAI-COMMUNICATION-TERMINALS" }, { 0x000511, "Complementary Technologies Ltd", "COMPLEMENTARY-TECHNOLOGIES" }, { 0x000512, "Zebra Technologies Inc", "ZEBRA-TECHNOLOGIES" }, { 0x000513, "VTLinx Multimedia Systems, Inc.", "VTLINX-MULTIMEDIA" }, { 0x000514, "KDT Systems Co., Ltd.", "KDT" }, { 0x000515, "Nuark Co., Ltd.", "NUARK" }, { 0x000516, "SMART Modular Technologies", "SMART-MODULAR-TECHNOLOGIES" }, { 0x000517, "Shellcomm, Inc.", "SHELLCOMM" }, { 0x000518, "Jupiters Technology", "JUPITERS" }, { 0x000519, "Siemens Building Technologies AG,", "SIEMENS-BUILDING-TECHNOLOGIES" }, { 0x00051A, "3COM EUROPE LTD", "3COM" }, { 0x00051B, "Magic Control Technology Corporation", "MAGIC-CONTROL" }, { 0x00051C, "Xnet Technology Corp.", "XNET" }, { 0x00051D, "Airocon, Inc.", "AIROCON" }, { 0x00051E, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x00051F, "Taijin Media Co., Ltd.", "TAIJIN-MEDIA" }, { 0x000520, "Smartronix, Inc.", "SMARTRONIX" }, { 0x000521, "Control Microsystems", "CONTROL-MICROSYSTEMS" }, { 0x000522, "LEA*D Corporation, Inc.", "LEA*D" }, { 0x000523, "AVL List GmbH", "AVL-LIST" }, { 0x000524, "BTL System (HK) Limited", "BTL-SYSTEM-HK" }, { 0x000525, "Puretek Industrial Co., Ltd.", "PURETEK-INDUSTRIAL" }, { 0x000526, "IPAS GmbH", "IPAS" }, { 0x000527, "SJ Tek Co. Ltd", "SJ-TEK" }, { 0x000528, "New Focus, Inc.", "NEW-FOCUS" }, { 0x000529, "Shanghai Broadan Communication Technology Co., Ltd", "SHANGHAI-BROADAN-COMMUNICATION" }, { 0x00052A, "Ikegami Tsushinki Co., Ltd.", "IKEGAMI-TSUSHINKI" }, { 0x00052B, "HORIBA, Ltd.", "HORIBA" }, { 0x00052C, "Supreme Magic Corporation", "SUPREME-MAGIC" }, { 0x00052D, "Zoltrix International Limited", "ZOLTRIX" }, { 0x00052E, "Cinta Networks", "CINTA-NETWORKS" }, { 0x00052F, "Leviton Network Solutions", "LEVITON-NETWORK-SOLUTIONS" }, { 0x000530, "Andiamo Systems, Inc.", "ANDIAMO" }, { 0x000531, "Cisco Systems, Inc", "CISCO" }, { 0x000532, "Cisco Systems, Inc", "CISCO" }, { 0x000533, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x000534, "Northstar Engineering Ltd.", "NORTHSTAR-ENGINEERING" }, { 0x000535, "Chip PC Ltd.", "CHIP-PC" }, { 0x000536, "Danam Communications, Inc.", "DANAM-COMMUNICATION" }, { 0x000537, "Nets Technology Co., Ltd.", "NETS" }, { 0x000538, "Merilus, Inc.", "MERILUS" }, { 0x000539, "A Brand New World in Sweden AB", "A-BRAND-NEW-WORLD-IN-SWEDEN-AB" }, { 0x00053A, "Willowglen Services Pte Ltd", "WILLOWGLEN-SERVICES-PTE" }, { 0x00053B, "Harbour Networks Ltd., Co. Beijing", "HARBOUR-NETWORKS-BEIJING" }, { 0x00053C, "XIRCOM", "XIRCOM" }, { 0x00053D, "Agere Systems", "AGERE" }, { 0x00053E, "KID Systeme GmbH", "KID-SYSTEME" }, { 0x00053F, "VisionTek, Inc.", "VISIONTEK" }, { 0x000540, "FAST Corporation", "FAST" }, { 0x000541, "Advanced Systems Co., Ltd.", "ADVANCED" }, { 0x000542, "Otari, Inc.", "OTARI" }, { 0x000543, "IQ Wireless GmbH", "IQ-WIRELESS" }, { 0x000544, "Valley Technologies, Inc.", "VALLEY-TECHNOLOGIES" }, { 0x000545, "Internet Photonics", "INTERNET-PHOTONICS" }, { 0x000546, "KDDI Network & Solultions Inc.", "KDDI-NETWORK-SOLULTIONS" }, { 0x000547, "Starent Networks", "STARENT-NETWORKS" }, { 0x000548, "Disco Corporation", "DISCO" }, { 0x000549, "Salira Optical Network Systems", "SALIRA-OPTICAL-NETWORK" }, { 0x00054A, "Ario Data Networks, Inc.", "ARIO-DATA-NETWORKS" }, { 0x00054B, "Eaton Automation AG", "EATON-AUTOMATION" }, { 0x00054C, "RF Innovations Pty Ltd", "RF-INNOVATIONS-PTY" }, { 0x00054D, "Brans Technologies, Inc.", "BRANS-TECHNOLOGIES" }, { 0x00054E, "Philips", "PHILIPS" }, { 0x00054F, "Garmin International", "GARMIN" }, { 0x000550, "Vcomms Connect Limited", "VCOMMS-CONNECT" }, { 0x000551, "F & S Elektronik Systeme GmbH", "F-S-ELEKTRONIK-SYSTEME" }, { 0x000552, "Xycotec Computer GmbH", "XYCOTEC" }, { 0x000553, "DVC Company, Inc.", "DVC-COMPANY" }, { 0x000554, "Rangestar Wireless", "RANGESTAR-WIRELESS" }, { 0x000555, "Japan Cash Machine Co., Ltd.", "JAPAN-CASH-MACHINE" }, { 0x000556, "360 Systems", "360" }, { 0x000557, "Agile TV Corporation", "AGILE-TV" }, { 0x000558, "Synchronous, Inc.", "SYNCHRONOUS" }, { 0x000559, "Intracom S.A.", "INTRACOM" }, { 0x00055A, "Power Dsine Ltd.", "POWER-DSINE" }, { 0x00055B, "Charles Industries, Ltd.", "CHARLES-INDUSTRIES" }, { 0x00055C, "Kowa Company, Ltd.", "KOWA-COMPANY" }, { 0x00055D, "D-LINK SYSTEMS, INC.", "D-LINK" }, { 0x00055E, "Cisco Systems, Inc", "CISCO" }, { 0x00055F, "Cisco Systems, Inc", "CISCO" }, { 0x000560, "LEADER COMM.CO., LTD", "LEADER-COMM" }, { 0x000561, "nac Image Technology, Inc.", "NAC-IMAGE" }, { 0x000562, "Digital View Limited", "DIGITAL-VIEW" }, { 0x000563, "J-Works, Inc.", "J-WORKS" }, { 0x000564, "Tsinghua Bitway Co., Ltd.", "TSINGHUA-BITWAY" }, { 0x000565, "Tailyn Communication Company Ltd.", "TAILYN-COMMUNICATION-COMPANY" }, { 0x000566, "Secui.com Corporation", "SECUI-COM" }, { 0x000567, "Etymonic Design, Inc.", "ETYMONIC-DESIGN" }, { 0x000568, "Piltofish Networks AB", "PILTOFISH-NETWORKS-AB" }, { 0x000569, "VMware, Inc. (possible VMware VM)", "VMWARE-VIRTUAL" }, { 0x00056A, "Heuft Systemtechnik GmbH", "HEUFT-SYSTEMTECHNIK" }, { 0x00056B, "C.P. Technology Co., Ltd.", "C-P" }, { 0x00056C, "Hung Chang Co., Ltd.", "HUNG-CHANG" }, { 0x00056D, "Pacific Corporation", "PACIFIC" }, { 0x00056E, "National Enhance Technology, Inc.", "NATIONAL-ENHANCE" }, { 0x00056F, "Innomedia Technologies Pvt. Ltd.", "INNOMEDIA-TECHNOLOGIES-PVT" }, { 0x000570, "Baydel Ltd.", "BAYDEL" }, { 0x000571, "Seiwa Electronics Co.", "SEIWA-ELECTRONICS" }, { 0x000572, "Deonet Co., Ltd.", "DEONET" }, { 0x000573, "Cisco Systems, Inc", "CISCO" }, { 0x000574, "Cisco Systems, Inc", "CISCO" }, { 0x000575, "CDS-Electronics BV", "CDS-ELECTRONICS" }, { 0x000576, "NSM Technology Ltd.", "NSM" }, { 0x000577, "SM Information & Communication", "SM-INFORMATION-COMMUNICATION" }, { 0x000578, "Private", "PRIVATE" }, { 0x000579, "Universal Control Solution Corp.", "UNIVERSAL-CONTROL-SOLUTION" }, { 0x00057A, "Overture Networks", "OVERTURE-NETWORKS" }, { 0x00057B, "Chung Nam Electronic Co., Ltd.", "CHUNG-NAM" }, { 0x00057C, "RCO Security AB", "RCO-SECURITY-AB" }, { 0x00057D, "Sun Communications, Inc.", "SUN-COMMUNICATION" }, { 0x00057E, "Eckelmann Steuerungstechnik GmbH", "ECKELMANN-STEUERUNGSTECHNIK" }, { 0x00057F, "Acqis Technology", "ACQIS" }, { 0x000580, "FibroLAN Ltd.", "FIBROLAN" }, { 0x000581, "Snell", "SNELL" }, { 0x000582, "ClearCube Technology", "CLEARCUBE" }, { 0x000583, "ImageCom Limited", "IMAGECOM" }, { 0x000584, "AbsoluteValue Systems, Inc.", "ABSOLUTEVALUE" }, { 0x000585, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x000586, "Lucent Technologies", "LUCENT-TECHNOLOGIES" }, { 0x000587, "Locus, Incorporated", "LOCUS-INCORPORATED" }, { 0x000588, "Sensoria Corp.", "SENSORIA" }, { 0x000589, "National Datacomputer", "NATIONAL-DATACOMPUTER" }, { 0x00058A, "Netcom Co., Ltd.", "NETCOM" }, { 0x00058B, "IPmental, Inc.", "IPMENTAL" }, { 0x00058C, "Opentech Inc.", "OPENTECH" }, { 0x00058D, "Lynx Photonic Networks, Inc.", "LYNX-PHOTONIC-NETWORKS" }, { 0x00058E, "Flextronics International GmbH & Co. Nfg. KG", "FLEXTRONICS-NFG" }, { 0x00058F, "CLCsoft co.", "CLCSOFT" }, { 0x000590, "Swissvoice Ltd.", "SWISSVOICE" }, { 0x000591, "Active Silicon Ltd", "ACTIVE-SILICON" }, { 0x000592, "Pultek Corp.", "PULTEK" }, { 0x000593, "Grammar Engine Inc.", "GRAMMAR-ENGINE" }, { 0x000594, "HMS Industrial Networks", "HMS-INDUSTRIAL-NETWORKS" }, { 0x000595, "Alesis Corporation", "ALESIS" }, { 0x000596, "Genotech Co., Ltd.", "GENOTECH" }, { 0x000597, "Eagle Traffic Control Systems", "EAGLE-TRAFFIC-CONTROL" }, { 0x000598, "CRONOS S.r.l.", "CRONOS" }, { 0x000599, "DRS Test and Energy Management or DRS-TEM", "DRS-TEST-AND-ENERGY-MANAGEMENT-OR-DRS-TEM" }, { 0x00059A, "Cisco Systems, Inc", "CISCO" }, { 0x00059B, "Cisco Systems, Inc", "CISCO" }, { 0x00059C, "Kleinknecht GmbH, Ing. Büro", "KLEINKNECHT-ING-BUERO" }, { 0x00059D, "Daniel Computing Systems, Inc.", "DANIEL-COMPUTING" }, { 0x00059E, "Zinwell Corporation", "ZINWELL" }, { 0x00059F, "Yotta Networks, Inc.", "YOTTA-NETWORKS" }, { 0x0005A0, "MOBILINE Kft.", "MOBILINE-KFT" }, { 0x0005A1, "Zenocom", "ZENOCOM" }, { 0x0005A2, "CELOX Networks", "CELOX-NETWORKS" }, { 0x0005A3, "QEI, Inc.", "QEI" }, { 0x0005A4, "Lucid Voice Ltd.", "LUCID-VOICE" }, { 0x0005A5, "KOTT", "KOTT" }, { 0x0005A6, "Extron Electronics", "EXTRON-ELECTRONICS" }, { 0x0005A7, "HYPERCHIP Inc.", "HYPERCHIP" }, { 0x0005A8, "WYLE ELECTRONICS", "WYLE-ELECTRONICS" }, { 0x0005A9, "Princeton Networks, Inc.", "PRINCETON-NETWORKS" }, { 0x0005AA, "Moore Industries International Inc.", "MOORE-INDUSTRIES" }, { 0x0005AB, "Cyber Fone, Inc.", "CYBER-FONE" }, { 0x0005AC, "Northern Digital, Inc.", "NORTHERN-DIGITAL" }, { 0x0005AD, "Topspin Communications, Inc.", "TOPSPIN-COMMUNICATION" }, { 0x0005AE, "Mediaport USA", "MEDIAPORT-USA" }, { 0x0005AF, "InnoScan Computing A/S", "INNOSCAN-COMPUTING-A/S" }, { 0x0005B0, "Korea Computer Technology Co., Ltd.", "KOREA" }, { 0x0005B1, "ASB Technology BV", "ASB" }, { 0x0005B2, "Medison Co., Ltd.", "MEDISON" }, { 0x0005B3, "Asahi-Engineering Co., Ltd.", "ASAHI-ENGINEERING" }, { 0x0005B4, "Aceex Corporation", "ACEEX" }, { 0x0005B5, "Broadcom Technologies", "BROADCOM-TECHNOLOGIES" }, { 0x0005B6, "INSYS Microelectronics GmbH", "INSYS-MICROELECTRONICS" }, { 0x0005B7, "Arbor Technology Corp.", "ARBOR" }, { 0x0005B8, "Electronic Design Associates, Inc.", "DESIGN-ASSOCIATES" }, { 0x0005B9, "Airvana, Inc.", "AIRVANA" }, { 0x0005BA, "Area Netwoeks, Inc.", "AREA-NETWOEKS" }, { 0x0005BB, "Myspace AB", "MYSPACE-AB" }, { 0x0005BC, "Resource Data Management Ltd", "RESOURCE-DATA-MANAGEMENT" }, { 0x0005BD, "ROAX BV", "ROAX" }, { 0x0005BE, "Kongsberg Seatex AS", "KONGSBERG-SEATEX-AS" }, { 0x0005BF, "JustEzy Technology, Inc.", "JUSTEZY" }, { 0x0005C0, "Digital Network Alacarte Co., Ltd.", "DIGITAL-NETWORK-ALACARTE" }, { 0x0005C1, "A-Kyung Motion, Inc.", "A-KYUNG-MOTION" }, { 0x0005C2, "Soronti, Inc.", "SORONTI" }, { 0x0005C3, "Pacific Instruments, Inc.", "PACIFIC-INSTRUMENTS" }, { 0x0005C4, "Telect, Inc.", "TELECT" }, { 0x0005C5, "Flaga HF", "FLAGA-HF" }, { 0x0005C6, "Triz Communications", "TRIZ-COMMUNICATION" }, { 0x0005C7, "I/F-COM A/S", "I/F-COM-A/S" }, { 0x0005C8, "VERYTECH", "VERYTECH" }, { 0x0005C9, "LG Innotek", "LG-INNOTEK" }, { 0x0005CA, "Hitron Technology, Inc.", "HITRON" }, { 0x0005CB, "ROIS Technologies, Inc.", "ROIS-TECHNOLOGIES" }, { 0x0005CC, "Sumtel Communications, Inc.", "SUMTEL-COMMUNICATION" }, { 0x0005CD, "D&M Holdings Inc.", "D-M-HOLDINGS" }, { 0x0005CE, "Prolink Microsystems Corporation", "PROLINK-MICROSYSTEMS" }, { 0x0005CF, "Thunder River Technologies, Inc.", "THUNDER-RIVER-TECHNOLOGIES" }, { 0x0005D0, "Solinet Systems", "SOLINET" }, { 0x0005D1, "Metavector Technologies", "METAVECTOR-TECHNOLOGIES" }, { 0x0005D2, "DAP Technologies", "DAP-TECHNOLOGIES" }, { 0x0005D3, "eProduction Solutions, Inc.", "EPRODUCTION-SOLUTIONS" }, { 0x0005D4, "FutureSmart Networks, Inc.", "FUTURESMART-NETWORKS" }, { 0x0005D5, "Speedcom Wireless", "SPEEDCOM-WIRELESS" }, { 0x0005D6, "L-3 Linkabit", "L-3-LINKABIT" }, { 0x0005D7, "Vista Imaging, Inc.", "VISTA-IMAGING" }, { 0x0005D8, "Arescom, Inc.", "ARESCOM" }, { 0x0005D9, "Techno Valley, Inc.", "TECHNO-VALLEY" }, { 0x0005DA, "Apex Automationstechnik", "APEX-AUTOMATIONSTECHNIK" }, { 0x0005DB, "PSI Nentec GmbH", "PSI-NENTEC" }, { 0x0005DC, "Cisco Systems, Inc", "CISCO" }, { 0x0005DD, "Cisco Systems, Inc", "CISCO" }, { 0x0005DE, "Gi Fone Korea, Inc.", "GI-FONE-KOREA" }, { 0x0005DF, "Electronic Innovation, Inc.", "INNOVATION" }, { 0x0005E0, "Empirix Corp.", "EMPIRIX" }, { 0x0005E1, "Trellis Photonics, Ltd.", "TRELLIS-PHOTONICS" }, { 0x0005E2, "Creativ Network Technologies", "CREATIV-NETWORK-TECHNOLOGIES" }, { 0x0005E3, "LightSand Communications, Inc.", "LIGHTSAND-COMMUNICATION" }, { 0x0005E4, "Red Lion Controls Inc.", "RED-LION-CONTROLS" }, { 0x0005E5, "Renishaw PLC", "RENISHAW-PLC" }, { 0x0005E6, "Egenera, Inc.", "EGENERA" }, { 0x0005E7, "Netrake an AudioCodes Company", "NETRAKE-AN-AUDIOCODES-COMPANY" }, { 0x0005E8, "TurboWave, Inc.", "TURBOWAVE" }, { 0x0005E9, "Unicess Network, Inc.", "UNICESS-NETWORK" }, { 0x0005EA, "Rednix", "REDNIX" }, { 0x0005EB, "Blue Ridge Networks, Inc.", "BLUE-RIDGE-NETWORKS" }, { 0x0005EC, "Mosaic Systems Inc.", "MOSAIC" }, { 0x0005ED, "Technikum Joanneum GmbH", "TECHNIKUM-JOANNEUM" }, { 0x0005EE, "Vanderbilt International (SWE) AB", "VANDERBILT-SWE-AB" }, { 0x0005EF, "ADOIR Digital Technology", "ADOIR-DIGITAL" }, { 0x0005F0, "SATEC", "SATEC" }, { 0x0005F1, "Vrcom, Inc.", "VRCOM" }, { 0x0005F2, "Power R, Inc.", "POWER-R" }, { 0x0005F3, "Webyn", "WEBYN" }, { 0x0005F4, "System Base Co., Ltd.", "SYSTEM-BASE" }, { 0x0005F5, "Geospace Technologies", "GEOSPACE-TECHNOLOGIES" }, { 0x0005F6, "Young Chang Co. Ltd.", "YOUNG-CHANG" }, { 0x0005F7, "Analog Devices, Inc.", "ANALOG-DEVICES" }, { 0x0005F8, "Real Time Access, Inc.", "REAL-TIME-ACCESS" }, { 0x0005F9, "TOA Corporation", "TOA" }, { 0x0005FA, "IPOptical, Inc.", "IPOPTICAL" }, { 0x0005FB, "ShareGate, Inc.", "SHAREGATE" }, { 0x0005FC, "Schenck Pegasus Corp.", "SCHENCK-PEGASUS" }, { 0x0005FD, "PacketLight Networks Ltd.", "PACKETLIGHT-NETWORKS" }, { 0x0005FE, "Traficon N.V.", "TRAFICON-N-V" }, { 0x0005FF, "SNS Solutions, Inc.", "SNS-SOLUTIONS" }, { 0x000600, "Toshiba Teli Corporation", "TOSHIBA-TELI" }, { 0x000601, "Otanikeiki Co., Ltd.", "OTANIKEIKI" }, { 0x000602, "Cirkitech Electronics Co.", "CIRKITECH-ELECTRONICS" }, { 0x000603, "Baker Hughes Inc.", "BAKER-HUGHES" }, { 0x000604, "@Track Communications, Inc.", "@TRACK-COMMUNICATION" }, { 0x000605, "Inncom International, Inc.", "INNCOM" }, { 0x000606, "RapidWAN, Inc.", "RAPIDWAN" }, { 0x000607, "Omni Directional Control Technology Inc.", "OMNI-DIRECTIONAL-CONTROL" }, { 0x000608, "At-Sky SAS", "AT-SKY-SAS" }, { 0x000609, "Crossport Systems", "CROSSPORT" }, { 0x00060A, "Blue2space", "BLUE2SPACE" }, { 0x00060B, "Artesyn Embedded Technologies", "ARTESYN-EMBEDDED-TECHNOLOGIES" }, { 0x00060C, "Melco Industries, Inc.", "MELCO-INDUSTRIES" }, { 0x00060D, "Wave7 Optics", "WAVE7-OPTICS" }, { 0x00060E, "IGYS Systems, Inc.", "IGYS" }, { 0x00060F, "Narad Networks Inc", "NARAD-NETWORKS" }, { 0x000610, "Abeona Networks Inc", "ABEONA-NETWORKS" }, { 0x000611, "Zeus Wireless, Inc.", "ZEUS-WIRELESS" }, { 0x000612, "Accusys, Inc.", "ACCUSYS" }, { 0x000613, "Kawasaki Microelectronics Incorporated", "KAWASAKI-MICROELECTRONICS-INCORPORATED" }, { 0x000614, "Prism Holdings", "PRISM-HOLDINGS" }, { 0x000615, "Kimoto Electric Co., Ltd.", "KIMOTO-ELECTRIC" }, { 0x000616, "Tel Net Co., Ltd.", "TEL-NET" }, { 0x000617, "Redswitch Inc.", "REDSWITCH" }, { 0x000618, "DigiPower Manufacturing Inc.", "DIGIPOWER-MANUFACTURING" }, { 0x000619, "Connection Technology Systems", "CONNECTION" }, { 0x00061A, "Zetari Inc.", "ZETARI" }, { 0x00061B, "Notebook Development Lab. Lenovo Japan Ltd.", "NOTEBOOK-DEVELOPMENT-LAB-LENOVO-JAPAN" }, { 0x00061C, "Hoshino Metal Industries, Ltd.", "HOSHINO-METAL-INDUSTRIES" }, { 0x00061D, "MIP Telecom, Inc.", "MIP-TELECOM" }, { 0x00061E, "Maxan Systems", "MAXAN" }, { 0x00061F, "Vision Components GmbH", "VISION-COMPONENTS" }, { 0x000620, "Serial System Ltd.", "SERIAL-SYSTEM" }, { 0x000621, "Hinox, Co., Ltd.", "HINOX" }, { 0x000622, "Chung Fu Chen Yeh Enterprise Corp.", "CHUNG-FU-CHEN-YEH" }, { 0x000623, "MGE UPS Systems France", "MGE-UPS-FRANCE" }, { 0x000624, "Gentner Communications Corp.", "GENTNER-COMMUNICATION" }, { 0x000625, "The Linksys Group, Inc.", "THE-LINKSYS-GROUP" }, { 0x000626, "MWE GmbH", "MWE" }, { 0x000627, "Uniwide Technologies, Inc.", "UNIWIDE-TECHNOLOGIES" }, { 0x000628, "Cisco Systems, Inc", "CISCO" }, { 0x000629, "IBM Corp", "IBM" }, { 0x00062A, "Cisco Systems, Inc", "CISCO" }, { 0x00062B, "INTRASERVER TECHNOLOGY", "INTRASERVER" }, { 0x00062C, "Bivio Networks", "BIVIO-NETWORKS" }, { 0x00062D, "TouchStar Technologies, L.L.C.", "TOUCHSTAR-TECHNOLOGIES-L-L-C" }, { 0x00062E, "Aristos Logic Corp.", "ARISTOS-LOGIC" }, { 0x00062F, "Pivotech Systems Inc.", "PIVOTECH" }, { 0x000630, "Adtranz Sweden", "ADTRANZ-SWEDEN" }, { 0x000631, "Calix Inc.", "CALIX" }, { 0x000632, "Mesco Engineering GmbH", "MESCO-ENGINEERING" }, { 0x000633, "Cross Match Technologies GmbH", "CROSS-MATCH-TECHNOLOGIES" }, { 0x000634, "GTE Airfone Inc.", "GTE-AIRFONE" }, { 0x000635, "PacketAir Networks, Inc.", "PACKETAIR-NETWORKS" }, { 0x000636, "Jedai Broadband Networks", "JEDAI-BROADBAND-NETWORKS" }, { 0x000637, "Toptrend-Meta Information (ShenZhen) Inc.", "TOPTREND-META-INFORMATION-SHENZHEN" }, { 0x000638, "Sungjin C&C Co., Ltd.", "SUNGJIN-C-C" }, { 0x000639, "Newtec", "NEWTEC" }, { 0x00063A, "Dura Micro, Inc.", "DURA-MICRO" }, { 0x00063B, "Arcturus Networks Inc.", "ARCTURUS-NETWORKS" }, { 0x00063C, "Intrinsyc Software International Inc.", "INTRINSYC-SOFTWARE" }, { 0x00063D, "Microwave Data Systems Inc.", "MICROWAVE-DATA" }, { 0x00063E, "Opthos Inc.", "OPTHOS" }, { 0x00063F, "Everex Communications Inc.", "EVEREX-COMMUNICATION" }, { 0x000640, "White Rock Networks", "WHITE-ROCK-NETWORKS" }, { 0x000641, "ITCN", "ITCN" }, { 0x000642, "Genetel Systems Inc.", "GENETEL" }, { 0x000643, "SONO Computer Co., Ltd.", "SONO" }, { 0x000644, "NextGen Business Solutions, Inc", "NEXTGEN-BUSINESS-SOLUTIONS" }, { 0x000645, "Meisei Electric Co. Ltd.", "MEISEI-ELECTRIC" }, { 0x000646, "ShenZhen XunBao Network Technology Co Ltd", "SHENZHEN-XUNBAO-NETWORK" }, { 0x000647, "Etrali S.A.", "ETRALI" }, { 0x000648, "Seedsware, Inc.", "SEEDSWARE" }, { 0x000649, "3M Deutschland GmbH", "3M-DEUTSCHLAND" }, { 0x00064A, "Honeywell Co., Ltd. (KOREA)", "HONEYWELL-KOREA" }, { 0x00064B, "Alexon Co., Ltd.", "ALEXON" }, { 0x00064C, "Invicta Networks, Inc.", "INVICTA-NETWORKS" }, { 0x00064D, "Sencore", "SENCORE" }, { 0x00064E, "Broad Net Technology Inc.", "BROAD-NET" }, { 0x00064F, "PRO-NETS Technology Corporation", "PRO-NETS" }, { 0x000650, "Tiburon Networks, Inc.", "TIBURON-NETWORKS" }, { 0x000651, "Aspen Networks Inc.", "ASPEN-NETWORKS" }, { 0x000652, "Cisco Systems, Inc", "CISCO" }, { 0x000653, "Cisco Systems, Inc", "CISCO" }, { 0x000654, "Winpresa Building Automation Technologies GmbH", "WINPRESA-BUILDING-AUTOMATION-TECHNOLOGIES" }, { 0x000655, "Yipee, Inc.", "YIPEE" }, { 0x000656, "Tactel AB", "TACTEL-AB" }, { 0x000657, "Market Central, Inc.", "MARKET-CENTRAL" }, { 0x000658, "Helmut Fischer GmbH Institut für Elektronik und Messtechnik", "HELMUT-FISCHER-INSTITUT-FUER-ELEKTRONIK-UND-MESSTECHNIK" }, { 0x000659, "EAL (Apeldoorn) B.V.", "EAL-APELDOORN-B-V" }, { 0x00065A, "Strix Systems", "STRIX" }, { 0x00065B, "Dell Inc.", "DELL" }, { 0x00065C, "Malachite Technologies, Inc.", "MALACHITE-TECHNOLOGIES" }, { 0x00065D, "Heidelberg Web Systems", "HEIDELBERG-WEB" }, { 0x00065E, "Photuris, Inc.", "PHOTURIS" }, { 0x00065F, "ECI Telecom Ltd.", "ECI-TELECOM" }, { 0x000660, "NADEX Co., Ltd.", "NADEX" }, { 0x000661, "NIA Home Technologies Corp.", "NIA-HOME-TECHNOLOGIES" }, { 0x000662, "MBM Technology Ltd.", "MBM" }, { 0x000663, "Human Technology Co., Ltd.", "HUMAN" }, { 0x000664, "Fostex Corporation", "FOSTEX" }, { 0x000665, "Sunny Giken, Inc.", "SUNNY-GIKEN" }, { 0x000666, "Roving Networks", "ROVING-NETWORKS" }, { 0x000667, "Tripp Lite", "TRIPP-LITE" }, { 0x000668, "Vicon Industries Inc.", "VICON-INDUSTRIES" }, { 0x000669, "Datasound Laboratories Ltd", "DATASOUND-LABORATORIES" }, { 0x00066A, "InfiniCon Systems, Inc.", "INFINICON" }, { 0x00066B, "Sysmex Corporation", "SYSMEX" }, { 0x00066C, "Robinson Corporation", "ROBINSON" }, { 0x00066D, "Compuprint S.P.A.", "COMPUPRINT" }, { 0x00066E, "Delta Electronics, Inc.", "DELTA-ELECTRONICS" }, { 0x00066F, "Korea Data Systems", "KOREA-DATA" }, { 0x000670, "Upponetti Oy", "UPPONETTI-OY" }, { 0x000671, "Softing AG", "SOFTING" }, { 0x000672, "Netezza", "NETEZZA" }, { 0x000673, "TKH Security Solutions USA", "TKH-SECURITY-SOLUTIONS-USA" }, { 0x000674, "Spectrum Control, Inc.", "SPECTRUM-CONTROL" }, { 0x000675, "Banderacom, Inc.", "BANDERACOM" }, { 0x000676, "Novra Technologies Inc.", "NOVRA-TECHNOLOGIES" }, { 0x000677, "SICK AG", "SICK" }, { 0x000678, "D&M Holdings Inc.", "D-M-HOLDINGS" }, { 0x000679, "Konami Corporation", "KONAMI" }, { 0x00067A, "JMP Systems", "JMP" }, { 0x00067B, "Toplink C&C Corporation", "TOPLINK-C-C" }, { 0x00067C, "Cisco Systems, Inc", "CISCO" }, { 0x00067D, "Takasago Ltd.", "TAKASAGO" }, { 0x00067E, "WinCom Systems, Inc.", "WINCOM" }, { 0x00067F, "Digeo, Inc.", "DIGEO" }, { 0x000680, "Card Access, Inc.", "CARD-ACCESS" }, { 0x000681, "Goepel Electronic GmbH", "GOEPEL" }, { 0x000682, "Convedia", "CONVEDIA" }, { 0x000683, "Bravara Communications, Inc.", "BRAVARA-COMMUNICATION" }, { 0x000684, "Biacore AB", "BIACORE-AB" }, { 0x000685, "NetNearU Corporation", "NETNEARU" }, { 0x000686, "ZARDCOM Co., Ltd.", "ZARDCOM" }, { 0x000687, "Omnitron Systems Technology, Inc.", "OMNITRON" }, { 0x000688, "Telways Communication Co., Ltd.", "TELWAYS-COMMUNICATION" }, { 0x000689, "yLez Technologies Pte Ltd", "YLEZ-TECHNOLOGIES-PTE" }, { 0x00068A, "NeuronNet Co. Ltd. R&D Center", "NEURONNET-R-D-CENTER" }, { 0x00068B, "AirRunner Technologies, Inc.", "AIRRUNNER-TECHNOLOGIES" }, { 0x00068C, "3COM", "3COM" }, { 0x00068D, "SEPATON, Inc.", "SEPATON" }, { 0x00068E, "HID Corporation", "HID" }, { 0x00068F, "Telemonitor, Inc.", "TELEMONITOR" }, { 0x000690, "Euracom Communication GmbH", "EURACOM-COMMUNICATION" }, { 0x000691, "PT Inovacao", "PT-INOVACAO" }, { 0x000692, "Intruvert Networks, Inc.", "INTRUVERT-NETWORKS" }, { 0x000693, "Flexus Computer Technology, Inc.", "FLEXUS" }, { 0x000694, "Mobillian Corporation", "MOBILLIAN" }, { 0x000695, "Ensure Technologies, Inc.", "ENSURE-TECHNOLOGIES" }, { 0x000696, "Advent Networks", "ADVENT-NETWORKS" }, { 0x000697, "R & D Center", "R-D-CENTER" }, { 0x000698, "egnite GmbH", "EGNITE" }, { 0x000699, "Vida Design Co.", "VIDA-DESIGN" }, { 0x00069A, "e & Tel", "E-TEL" }, { 0x00069B, "AVT Audio Video Technologies GmbH", "AVT-AUDIO-VIDEO-TECHNOLOGIES" }, { 0x00069C, "Transmode Systems AB", "TRANSMODE-AB" }, { 0x00069D, "Petards Ltd", "PETARDS" }, { 0x00069E, "UNIQA, Inc.", "UNIQA" }, { 0x00069F, "Kuokoa Networks", "KUOKOA-NETWORKS" }, { 0x0006A0, "Mx Imaging", "MX-IMAGING" }, { 0x0006A1, "Celsian Technologies, Inc.", "CELSIAN-TECHNOLOGIES" }, { 0x0006A2, "Microtune, Inc.", "MICROTUNE" }, { 0x0006A3, "Bitran Corporation", "BITRAN" }, { 0x0006A4, "INNOWELL Corp.", "INNOWELL" }, { 0x0006A5, "PINON Corp.", "PINON" }, { 0x0006A6, "Artistic Licence Engineering Ltd", "ARTISTIC-LICENCE-ENGINEERING" }, { 0x0006A7, "Primarion", "PRIMARION" }, { 0x0006A8, "KC Technology, Inc.", "KC" }, { 0x0006A9, "Universal Instruments Corp.", "UNIVERSAL-INSTRUMENTS" }, { 0x0006AA, "VT Miltope", "VT-MILTOPE" }, { 0x0006AB, "W-Link Systems, Inc.", "W-LINK" }, { 0x0006AC, "Intersoft Co.", "INTERSOFT" }, { 0x0006AD, "KB Electronics Ltd.", "KB-ELECTRONICS" }, { 0x0006AE, "Himachal Futuristic Communications Ltd", "HIMACHAL-FUTURISTIC-COMMUNICATION" }, { 0x0006AF, "Xalted Networks", "XALTED-NETWORKS" }, { 0x0006B0, "Comtech EF Data Corp.", "COMTECH-EF-DATA" }, { 0x0006B1, "Sonicwall", "SONICWALL" }, { 0x0006B2, "Linxtek Co.", "LINXTEK" }, { 0x0006B3, "Diagraph Corporation", "DIAGRAPH" }, { 0x0006B4, "Vorne Industries, Inc.", "VORNE-INDUSTRIES" }, { 0x0006B5, "Source Photonics, Inc.", "SOURCE-PHOTONICS" }, { 0x0006B6, "Nir-Or Israel Ltd.", "NIR-OR-ISRAEL" }, { 0x0006B7, "TELEM GmbH", "TELEM" }, { 0x0006B8, "Bandspeed Pty Ltd", "BANDSPEED-PTY" }, { 0x0006B9, "A5TEK Corp.", "A5TEK" }, { 0x0006BA, "Westwave Communications", "WESTWAVE-COMMUNICATION" }, { 0x0006BB, "ATI Technologies Inc.", "ATI-TECHNOLOGIES" }, { 0x0006BC, "Macrolink, Inc.", "MACROLINK" }, { 0x0006BD, "BNTECHNOLOGY Co., Ltd.", "BNTECHNOLOGY" }, { 0x0006BE, "Baumer Optronic GmbH", "BAUMER-OPTRONIC" }, { 0x0006BF, "Accella Technologies Co., Ltd.", "ACCELLA-TECHNOLOGIES" }, { 0x0006C0, "United Internetworks, Inc.", "UNITED-INTERNETWORKS" }, { 0x0006C1, "Cisco Systems, Inc", "CISCO" }, { 0x0006C2, "Smartmatic Corporation", "SMARTMATIC" }, { 0x0006C3, "Schindler Elevator Ltd.", "SCHINDLER-ELEVATOR" }, { 0x0006C4, "Piolink Inc.", "PIOLINK" }, { 0x0006C5, "INNOVI Technologies Limited", "INNOVI-TECHNOLOGIES" }, { 0x0006C6, "lesswire AG", "LESSWIRE" }, { 0x0006C7, "RFNET Technologies Pte Ltd (S)", "RFNET-TECHNOLOGIES-PTE-S" }, { 0x0006C8, "Sumitomo Metal Micro Devices, Inc.", "SUMITOMO-METAL-MICRO-DEVICES" }, { 0x0006C9, "Technical Marketing Research, Inc.", "TECHNICAL-MARKETING-RESEARCH" }, { 0x0006CA, "American Computer & Digital Components, Inc. (ACDC)", "AMERICAN-DIGITAL-COMPONENTS-ACDC" }, { 0x0006CB, "Jotron Electronics A/S", "JOTRON-ELECTRONICS-A/S" }, { 0x0006CC, "JMI Electronics Co., Ltd.", "JMI-ELECTRONICS" }, { 0x0006CD, "Leaf Imaging Ltd.", "LEAF-IMAGING" }, { 0x0006CE, "DATENO", "DATENO" }, { 0x0006CF, "Thales Avionics In-Flight Systems, LLC", "THALES-AVIONICS-IN-FLIGHT" }, { 0x0006D0, "Elgar Electronics Corp.", "ELGAR-ELECTRONICS" }, { 0x0006D1, "Tahoe Networks, Inc.", "TAHOE-NETWORKS" }, { 0x0006D2, "Tundra Semiconductor Corp.", "TUNDRA-SEMICONDUCTOR" }, { 0x0006D3, "Alpha Telecom, Inc. U.S.A.", "ALPHA-TELECOM-U" }, { 0x0006D4, "Interactive Objects, Inc.", "INTERACTIVE-OBJECTS" }, { 0x0006D5, "Diamond Systems Corp.", "DIAMOND" }, { 0x0006D6, "Cisco Systems, Inc", "CISCO" }, { 0x0006D7, "Cisco Systems, Inc", "CISCO" }, { 0x0006D8, "Maple Optical Systems", "MAPLE-OPTICAL" }, { 0x0006D9, "IPM-Net S.p.A.", "IPM-NET" }, { 0x0006DA, "ITRAN Communications Ltd.", "ITRAN-COMMUNICATION" }, { 0x0006DB, "ICHIPS Co., Ltd.", "ICHIPS" }, { 0x0006DC, "Syabas Technology (Amquest)", "SYABAS-AMQUEST" }, { 0x0006DD, "AT & T Laboratories - Cambridge Ltd", "AT-T-LABORATORIES-CAMBRIDGE" }, { 0x0006DE, "Flash Technology", "FLASH" }, { 0x0006DF, "AIDONIC Corporation", "AIDONIC" }, { 0x0006E0, "MAT Co., Ltd.", "MAT" }, { 0x0006E1, "Techno Trade s.a", "TECHNO-TRADE" }, { 0x0006E2, "Ceemax Technology Co., Ltd.", "CEEMAX" }, { 0x0006E3, "Quantitative Imaging Corporation", "QUANTITATIVE-IMAGING" }, { 0x0006E4, "Citel Technologies Ltd.", "CITEL-TECHNOLOGIES" }, { 0x0006E5, "Fujian Newland Computer Ltd. Co.", "FUJIAN-NEWLAND" }, { 0x0006E6, "DongYang Telecom Co., Ltd.", "DONGYANG-TELECOM" }, { 0x0006E7, "Bit Blitz Communications Inc.", "BIT-BLITZ-COMMUNICATION" }, { 0x0006E8, "Optical Network Testing, Inc.", "OPTICAL-NETWORK-TESTING" }, { 0x0006E9, "Intime Corp.", "INTIME" }, { 0x0006EA, "ELZET80 Mikrocomputer GmbH&Co. KG", "ELZET80-MIKROCOMPUTER" }, { 0x0006EB, "Global Data", "GLOBAL-DATA" }, { 0x0006EC, "Harris Corporation", "HARRIS" }, { 0x0006ED, "Inara Networks", "INARA-NETWORKS" }, { 0x0006EE, "Shenyang Neu-era Information & Technology Stock Co., Ltd", "SHENYANG-NEU-ERA-INFORMATION-STOCK" }, { 0x0006EF, "Maxxan Systems, Inc.", "MAXXAN" }, { 0x0006F0, "Digeo, Inc.", "DIGEO" }, { 0x0006F1, "Optillion", "OPTILLION" }, { 0x0006F2, "Platys Communications", "PLATYS-COMMUNICATION" }, { 0x0006F3, "AcceLight Networks", "ACCELIGHT-NETWORKS" }, { 0x0006F4, "Prime Electronics & Satellitics Inc.", "PRIME-ELECTRONICS-SATELLITICS" }, { 0x0006F5, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x0006F6, "Cisco Systems, Inc", "CISCO" }, { 0x0006F7, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x0006F8, "The Boeing Company", "THE-BOEING-COMPANY" }, { 0x0006F9, "Mitsui Zosen Systems Research Inc.", "MITSUI-ZOSEN-RESEARCH" }, { 0x0006FA, "IP SQUARE Co, Ltd.", "IP-SQUARE" }, { 0x0006FB, "Hitachi Printing Solutions, Ltd.", "HITACHI-PRINTING-SOLUTIONS" }, { 0x0006FC, "Fnet Co., Ltd.", "FNET" }, { 0x0006FD, "Comjet Information Systems Corp.", "COMJET-INFORMATION" }, { 0x0006FE, "Ambrado, Inc", "AMBRADO" }, { 0x0006FF, "Sheba Systems Co., Ltd.", "SHEBA" }, { 0x000700, "Zettamedia Korea", "ZETTAMEDIA-KOREA" }, { 0x000701, "RACAL-DATACOM", "RACAL-DATACOM" }, { 0x000702, "Varex Imaging", "VAREX-IMAGING" }, { 0x000703, "CSEE Transport", "CSEE-TRANSPORT" }, { 0x000704, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x000705, "Endress & Hauser GmbH & Co", "ENDRESS-HAUSER" }, { 0x000706, "Sanritz Corporation", "SANRITZ" }, { 0x000707, "Interalia Inc.", "INTERALIA" }, { 0x000708, "Bitrage Inc.", "BITRAGE" }, { 0x000709, "Westerstrand Urfabrik AB", "WESTERSTRAND-URFABRIK-AB" }, { 0x00070A, "Unicom Automation Co., Ltd.", "UNICOM-AUTOMATION" }, { 0x00070B, "Novabase SGPS, SA", "NOVABASE-SGPS" }, { 0x00070C, "SVA-Intrusion.com Co. Ltd.", "SVA-INTRUSION-COM" }, { 0x00070D, "Cisco Systems, Inc", "CISCO" }, { 0x00070E, "Cisco Systems, Inc", "CISCO" }, { 0x00070F, "Fujant, Inc.", "FUJANT" }, { 0x000710, "Adax, Inc.", "ADAX" }, { 0x000711, "Acterna", "ACTERNA" }, { 0x000712, "JAL Information Technology", "JAL-INFORMATION" }, { 0x000713, "IP One, Inc.", "IP-ONE" }, { 0x000714, "Brightcom", "BRIGHTCOM" }, { 0x000715, "General Research of Electronics, Inc.", "GENERAL-RESEARCH-OF-ELECTRONICS" }, { 0x000716, "J & S Marine Ltd.", "J-S-MARINE" }, { 0x000717, "Wieland Electric GmbH", "WIELAND-ELECTRIC" }, { 0x000718, "iCanTek Co., Ltd.", "ICANTEK" }, { 0x000719, "Mobiis Co., Ltd.", "MOBIIS" }, { 0x00071A, "Finedigital Inc.", "FINEDIGITAL" }, { 0x00071B, "CDVI Americas Ltd", "CDVI-AMERICAS" }, { 0x00071C, "AT&T", "AT-T" }, { 0x00071D, "Satelsa Sistemas Y Aplicaciones De Telecomunicaciones, S.A.", "SATELSA-SISTEMAS-Y-APLICACIONES-DE-TELECOMUNICACIONES" }, { 0x00071E, "Tri-M Engineering / Nupak Dev. Corp.", "TRI-M-ENGINEERING-/-NUPAK-DEV" }, { 0x00071F, "European Systems Integration", "EUROPEAN-INTEGRATION" }, { 0x000720, "Trutzschler GmbH & Co. KG", "TRUTZSCHLER" }, { 0x000721, "Formac Elektronik GmbH", "FORMAC-ELEKTRONIK" }, { 0x000722, "The Nielsen Company", "THE-NIELSEN-COMPANY" }, { 0x000723, "ELCON Systemtechnik GmbH", "ELCON-SYSTEMTECHNIK" }, { 0x000724, "Telemax Co., Ltd.", "TELEMAX" }, { 0x000725, "Bematech International Corp.", "BEMATECH" }, { 0x000726, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0x000727, "Zi Corporation (HK) Ltd.", "ZI-HK" }, { 0x000728, "Neo Telecom", "NEO-TELECOM" }, { 0x000729, "Kistler Instrumente AG", "KISTLER-INSTRUMENTE" }, { 0x00072A, "Innovance Networks", "INNOVANCE-NETWORKS" }, { 0x00072B, "Jung Myung Telecom Co., Ltd.", "JUNG-MYUNG-TELECOM" }, { 0x00072C, "Fabricom", "FABRICOM" }, { 0x00072D, "CNSystems", "CNSYSTEMS" }, { 0x00072E, "North Node AB", "NORTH-NODE-AB" }, { 0x00072F, "Intransa, Inc.", "INTRANSA" }, { 0x000730, "Hutchison OPTEL Telecom Technology Co., Ltd.", "HUTCHISON-OPTEL-TELECOM" }, { 0x000731, "Ophir-Spiricon LLC", "OPHIR-SPIRICON" }, { 0x000732, "AAEON Technology Inc.", "AAEON" }, { 0x000733, "DANCONTROL Engineering", "DANCONTROL-ENGINEERING" }, { 0x000734, "ONStor, Inc.", "ONSTOR" }, { 0x000735, "Flarion Technologies, Inc.", "FLARION-TECHNOLOGIES" }, { 0x000736, "Data Video Technologies Co., Ltd.", "DATA-VIDEO-TECHNOLOGIES" }, { 0x000737, "Soriya Co. Ltd.", "SORIYA" }, { 0x000738, "Young Technology Co., Ltd.", "YOUNG" }, { 0x000739, "Scotty Group Austria Gmbh", "SCOTTY-GROUP-AUSTRIA" }, { 0x00073A, "INVENTEL", "INVENTEL" }, { 0x00073B, "Tenovis GmbH & Co KG", "TENOVIS" }, { 0x00073C, "Telecom Design", "TELECOM-DESIGN" }, { 0x00073D, "Nanjing Postel Telecommunications Co., Ltd.", "NANJING-POSTEL-TELECOMMUNICATIONS" }, { 0x00073E, "China Great-Wall Computer Shenzhen Co., Ltd.", "CHINA-GREAT-WALL-SHENZHEN" }, { 0x00073F, "Woojyun Systec Co., Ltd.", "WOOJYUN-SYSTEC" }, { 0x000740, "BUFFALO.INC", "BUFFALO" }, { 0x000741, "Sierra Automated Systems", "SIERRA-AUTOMATED" }, { 0x000742, "Ormazabal", "ORMAZABAL" }, { 0x000743, "Chelsio Communications", "CHELSIO-COMMUNICATION" }, { 0x000744, "Unico, Inc.", "UNICO" }, { 0x000745, "Radlan Computer Communications Ltd.", "RADLAN-COMMUNICATION" }, { 0x000746, "TURCK, Inc.", "TURCK" }, { 0x000747, "Mecalc", "MECALC" }, { 0x000748, "The Imaging Source Europe", "THE-IMAGING-SOURCE-EUROPE" }, { 0x000749, "CENiX Inc.", "CENIX" }, { 0x00074A, "Carl Valentin GmbH", "CARL-VALENTIN" }, { 0x00074B, "Daihen Corporation", "DAIHEN" }, { 0x00074C, "Beicom Inc.", "BEICOM" }, { 0x00074D, "Zebra Technologies Corp.", "ZEBRA-TECHNOLOGIES" }, { 0x00074E, "IPFRONT Inc", "IPFRONT" }, { 0x00074F, "Cisco Systems, Inc", "CISCO" }, { 0x000750, "Cisco Systems, Inc", "CISCO" }, { 0x000751, "m-u-t AG", "M-U-T" }, { 0x000752, "Rhythm Watch Co., Ltd.", "RHYTHM-WATCH" }, { 0x000753, "Beijing Qxcomm Technology Co., Ltd.", "BEIJING-QXCOMM" }, { 0x000754, "Xyterra Computing, Inc.", "XYTERRA-COMPUTING" }, { 0x000755, "Lafon", "LAFON" }, { 0x000756, "Juyoung Telecom", "JUYOUNG-TELECOM" }, { 0x000757, "Topcall International AG", "TOPCALL" }, { 0x000758, "DragonWave Inc.", "DRAGONWAVE" }, { 0x000759, "Boris Manufacturing Corp.", "BORIS-MANUFACTURING" }, { 0x00075A, "Air Products and Chemicals, Inc.", "AIR-PRODUCTS-AND-CHEMICALS" }, { 0x00075B, "Gibson Guitars", "GIBSON-GUITARS" }, { 0x00075C, "Eastman Kodak Company", "EASTMAN-KODAK-COMPANY" }, { 0x00075D, "Celleritas Inc.", "CELLERITAS" }, { 0x00075E, "Ametek Power Instruments", "AMETEK-POWER-INSTRUMENTS" }, { 0x00075F, "VCS Video Communication Systems AG", "VCS-VIDEO-COMMUNICATION" }, { 0x000760, "TOMIS Information & Telecom Corp.", "TOMIS-INFORMATION-TELECOM" }, { 0x000761, "29530", "29530" }, { 0x000762, "Group Sense Limited", "GROUP-SENSE" }, { 0x000763, "Sunniwell Cyber Tech. Co., Ltd.", "SUNNIWELL-CYBER-TECH" }, { 0x000764, "YoungWoo Telecom Co. Ltd.", "YOUNGWOO-TELECOM" }, { 0x000765, "Jade Quantum Technologies, Inc.", "JADE-QUANTUM-TECHNOLOGIES" }, { 0x000766, "Chou Chin Industrial Co., Ltd.", "CHOU-CHIN-INDUSTRIAL" }, { 0x000767, "Yuxing Electronics Company Limited", "YUXING-ELECTRONICS-COMPANY" }, { 0x000768, "Danfoss A/S", "DANFOSS-A/S" }, { 0x000769, "Italiana Macchi SpA", "ITALIANA-MACCHI-SPA" }, { 0x00076A, "NEXTEYE Co., Ltd.", "NEXTEYE" }, { 0x00076B, "Stralfors AB", "STRALFORS-AB" }, { 0x00076C, "Daehanet, Inc.", "DAEHANET" }, { 0x00076D, "Flexlight Networks", "FLEXLIGHT-NETWORKS" }, { 0x00076E, "Sinetica Corporation Limited", "SINETICA" }, { 0x00076F, "Synoptics Limited", "SYNOPTICS" }, { 0x000770, "Ubiquoss Inc", "UBIQUOSS" }, { 0x000771, "Embedded System Corporation", "EMBEDDED-SYSTEM" }, { 0x000772, "Alcatel-Lucent Shanghai Bell Co., Ltd", "ALCATEL-LUCENT-SHANGHAI-BELL" }, { 0x000773, "Ascom Powerline Communications Ltd.", "ASCOM-POWERLINE-COMMUNICATION" }, { 0x000774, "GuangZhou Thinker Technology Co. Ltd.", "GUANGZHOU-THINKER" }, { 0x000775, "Valence Semiconductor, Inc.", "VALENCE-SEMICONDUCTOR" }, { 0x000776, "Federal APD", "FEDERAL-APD" }, { 0x000777, "Motah Ltd.", "MOTAH" }, { 0x000778, "GERSTEL GmbH & Co. KG", "GERSTEL" }, { 0x000779, "Sungil Telecom Co., Ltd.", "SUNGIL-TELECOM" }, { 0x00077A, "Infoware System Co., Ltd.", "INFOWARE-SYSTEM" }, { 0x00077B, "Millimetrix Broadband Networks", "MILLIMETRIX-BROADBAND-NETWORKS" }, { 0x00077C, "Westermo Network Technologies AB", "WESTERMO-NETWORK-TECHNOLOGIES-AB" }, { 0x00077D, "Cisco Systems, Inc", "CISCO" }, { 0x00077E, "Elrest GmbH", "ELREST" }, { 0x00077F, "J Communications Co., Ltd.", "J-COMMUNICATION" }, { 0x000780, "Bluegiga Technologies OY", "BLUEGIGA-TECHNOLOGIES-OY" }, { 0x000781, "Itron Inc.", "ITRON" }, { 0x000782, "Oracle Corporation", "ORACLE" }, { 0x000783, "SynCom Network, Inc.", "SYNCOM-NETWORK" }, { 0x000784, "Cisco Systems, Inc", "CISCO" }, { 0x000785, "Cisco Systems, Inc", "CISCO" }, { 0x000786, "Wireless Networks Inc.", "WIRELESS-NETWORKS" }, { 0x000787, "Idea System Co., Ltd.", "IDEA-SYSTEM" }, { 0x000788, "Clipcomm, Inc.", "CLIPCOMM" }, { 0x000789, "Allradio Co., Ltd", "ALLRADIO" }, { 0x00078A, "Mentor Data System Inc.", "MENTOR-DATA-SYSTEM" }, { 0x00078B, "Wegener Communications, Inc.", "WEGENER-COMMUNICATION" }, { 0x00078C, "Elektronikspecialisten i Borlange AB", "ELEKTRONIKSPECIALISTEN-I-BORLANGE-AB" }, { 0x00078D, "NetEngines Ltd.", "NETENGINES" }, { 0x00078E, "Garz & Fricke GmbH", "GARZ-FRICKE" }, { 0x00078F, "Emkay Innovative Products", "EMKAY-INNOVATIVE-PRODUCTS" }, { 0x000790, "Tri-M Technologies (s) Limited", "TRI-M-TECHNOLOGIES-S" }, { 0x000791, "International Data Communications, Inc.", "DATA-COMMUNICATION" }, { 0x000792, "Sütron Electronic GmbH", "SUETRON" }, { 0x000793, "Shin Satellite Public Company Limited", "SHIN-SATELLITE-PUBLIC-COMPANY" }, { 0x000794, "Simple Devices, Inc.", "SIMPLE-DEVICES" }, { 0x000795, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x000796, "LSI Systems, Inc.", "LSI" }, { 0x000797, "Netpower Co., Ltd.", "NETPOWER" }, { 0x000798, "Selea SRL", "SELEA-SRL" }, { 0x000799, "Tipping Point Technologies, Inc.", "TIPPING-POINT-TECHNOLOGIES" }, { 0x00079A, "Verint Systems Inc", "VERINT" }, { 0x00079B, "Aurora Networks", "AURORA-NETWORKS" }, { 0x00079C, "Golden Electronics Technology Co., Ltd.", "GOLDEN-ELECTRONICS" }, { 0x00079D, "Musashi Co., Ltd.", "MUSASHI" }, { 0x00079E, "Ilinx Co., Ltd.", "ILINX" }, { 0x00079F, "Action Digital Inc.", "ACTION-DIGITAL" }, { 0x0007A0, "e-Watch Inc.", "E-WATCH" }, { 0x0007A1, "VIASYS Healthcare GmbH", "VIASYS-HEALTHCARE" }, { 0x0007A2, "Opteon Corporation", "OPTEON" }, { 0x0007A3, "Ositis Software, Inc.", "OSITIS-SOFTWARE" }, { 0x0007A4, "GN Netcom Ltd.", "GN-NETCOM" }, { 0x0007A5, "Y.D.K Co. Ltd.", "Y-D-K" }, { 0x0007A6, "Leviton Manufacturing Co., Inc.", "LEVITON-MANUFACTURING" }, { 0x0007A7, "A-Z Inc.", "A-Z" }, { 0x0007A8, "Haier Group Technologies Ltd", "HAIER-GROUP-TECHNOLOGIES" }, { 0x0007A9, "Novasonics", "NOVASONICS" }, { 0x0007AA, "Quantum Data Inc.", "QUANTUM-DATA" }, { 0x0007AB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0007AC, "Eolring", "EOLRING" }, { 0x0007AD, "Pentacon GmbH Foto-und Feinwerktechnik", "PENTACON-FOTO-UND-FEINWERKTECHNIK" }, { 0x0007AE, "Britestream Networks, Inc.", "BRITESTREAM-NETWORKS" }, { 0x0007AF, "Red Lion Controls, LP", "RED-LION-CONTROLS-LP" }, { 0x0007B0, "Office Details, Inc.", "OFFICE-DETAILS" }, { 0x0007B1, "Equator Technologies", "EQUATOR-TECHNOLOGIES" }, { 0x0007B2, "Transaccess S.A.", "TRANSACCESS" }, { 0x0007B3, "Cisco Systems, Inc", "CISCO" }, { 0x0007B4, "Cisco Systems, Inc", "CISCO" }, { 0x0007B5, "Any One Wireless Ltd.", "ANY-ONE-WIRELESS" }, { 0x0007B6, "Telecom Technology Ltd.", "TELECOM" }, { 0x0007B7, "Samurai Ind. Prods Eletronicos Ltda", "SAMURAI-IND-PRODS-ELETRONICOS-LTDA" }, { 0x0007B8, "Corvalent Corporation", "CORVALENT" }, { 0x0007B9, "Ginganet Corporation", "GINGANET" }, { 0x0007BA, "UTStarcom Inc", "UTSTARCOM" }, { 0x0007BB, "Candera Inc.", "CANDERA" }, { 0x0007BC, "Identix Inc.", "IDENTIX" }, { 0x0007BD, "Radionet Ltd.", "RADIONET" }, { 0x0007BE, "DataLogic SpA", "DATALOGIC-SPA" }, { 0x0007BF, "Armillaire Technologies, Inc.", "ARMILLAIRE-TECHNOLOGIES" }, { 0x0007C0, "NetZerver Inc.", "NETZERVER" }, { 0x0007C1, "Overture Networks, Inc.", "OVERTURE-NETWORKS" }, { 0x0007C2, "Netsys Telecom", "NETSYS-TELECOM" }, { 0x0007C3, "Thomson", "THOMSON" }, { 0x0007C4, "JEAN Co. Ltd.", "JEAN" }, { 0x0007C5, "Gcom, Inc.", "GCOM" }, { 0x0007C6, "VDS Vosskuhler GmbH", "VDS-VOSSKUHLER" }, { 0x0007C7, "Synectics Systems Limited", "SYNECTICS" }, { 0x0007C8, "Brain21, Inc.", "BRAIN21" }, { 0x0007C9, "Technol Seven Co., Ltd.", "TECHNOL-SEVEN" }, { 0x0007CA, "Creatix Polymedia Ges Fur Kommunikaitonssysteme", "CREATIX-POLYMEDIA-GES-FUR-KOMMUNIKAITONSSYSTEME" }, { 0x0007CB, "FREEBOX SAS", "FREEBOX-SAS" }, { 0x0007CC, "Kaba Benzing GmbH", "KABA-BENZING" }, { 0x0007CD, "Kumoh Electronic Co, Ltd", "KUMOH" }, { 0x0007CE, "Cabletime Limited", "CABLETIME" }, { 0x0007CF, "Anoto AB", "ANOTO-AB" }, { 0x0007D0, "Automat Engenharia de Automação Ltda.", "AUTOMAT-ENGENHARIA-DE-AUTOMAO-LTDA" }, { 0x0007D1, "Spectrum Signal Processing Inc.", "SPECTRUM-SIGNAL-PROCESSING" }, { 0x0007D2, "Logopak Systeme GmbH & Co. KG", "LOGOPAK-SYSTEME" }, { 0x0007D3, "SPGPrints B.V.", "SPGPRINTS-B-V" }, { 0x0007D4, "Zhejiang Yutong Network Communication Co Ltd.", "ZHEJIANG-YUTONG-NETWORK-COMMUNICATION" }, { 0x0007D5, "3e Technologies Int;., Inc.", "3E-TECHNOLOGIES-INT" }, { 0x0007D6, "Commil Ltd.", "COMMIL" }, { 0x0007D7, "Caporis Networks AG", "CAPORIS-NETWORKS" }, { 0x0007D8, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x0007D9, "Splicecom", "SPLICECOM" }, { 0x0007DA, "Neuro Telecom Co., Ltd.", "NEURO-TELECOM" }, { 0x0007DB, "Kirana Networks, Inc.", "KIRANA-NETWORKS" }, { 0x0007DC, "Atek Co, Ltd.", "ATEK" }, { 0x0007DD, "Cradle Technologies", "CRADLE-TECHNOLOGIES" }, { 0x0007DE, "eCopilt AB", "ECOPILT-AB" }, { 0x0007DF, "Vbrick Systems Inc.", "VBRICK" }, { 0x0007E0, "Palm Inc.", "PALM" }, { 0x0007E1, "WIS Communications Co. Ltd.", "WIS-COMMUNICATION" }, { 0x0007E2, "Bitworks, Inc.", "BITWORKS" }, { 0x0007E3, "Navcom Technology, Inc.", "NAVCOM" }, { 0x0007E4, "SoftRadio Co., Ltd.", "SOFTRADIO" }, { 0x0007E5, "Coup Corporation", "COUP" }, { 0x0007E6, "edgeflow Canada Inc.", "EDGEFLOW-CANADA" }, { 0x0007E7, "FreeWave Technologies", "FREEWAVE-TECHNOLOGIES" }, { 0x0007E8, "EdgeWave", "EDGEWAVE" }, { 0x0007E9, "Intel Corporation", "INTEL" }, { 0x0007EA, "Massana, Inc.", "MASSANA" }, { 0x0007EB, "Cisco Systems, Inc", "CISCO" }, { 0x0007EC, "Cisco Systems, Inc", "CISCO" }, { 0x0007ED, "Altera Corporation", "ALTERA" }, { 0x0007EE, "telco Informationssysteme GmbH", "TELCO-INFORMATIONSSYSTEME" }, { 0x0007EF, "Lockheed Martin Tactical Systems", "LOCKHEED-MARTIN-TACTICAL" }, { 0x0007F0, "LogiSync LLC", "LOGISYNC" }, { 0x0007F1, "TeraBurst Networks Inc.", "TERABURST-NETWORKS" }, { 0x0007F2, "IOA Corporation", "IOA" }, { 0x0007F3, "Thinkengine Networks", "THINKENGINE-NETWORKS" }, { 0x0007F4, "Eletex Co., Ltd.", "ELETEX" }, { 0x0007F5, "Bridgeco Co AG", "BRIDGECO" }, { 0x0007F6, "Qqest Software Systems", "QQEST-SOFTWARE" }, { 0x0007F7, "Galtronics", "GALTRONICS" }, { 0x0007F8, "ITDevices, Inc.", "ITDEVICES" }, { 0x0007F9, "Sensaphone", "SENSAPHONE" }, { 0x0007FA, "ITT Co., Ltd.", "ITT" }, { 0x0007FB, "Giga Stream UMTS Technologies GmbH", "GIGA-STREAM-UMTS-TECHNOLOGIES" }, { 0x0007FC, "Adept Systems Inc.", "ADEPT" }, { 0x0007FD, "LANergy Ltd.", "LANERGY" }, { 0x0007FE, "Rigaku Corporation", "RIGAKU" }, { 0x0007FF, "Gluon Networks", "GLUON-NETWORKS" }, { 0x000800, "MULTITECH SYSTEMS, INC.", "MULTITECH" }, { 0x000801, "HighSpeed Surfing Inc.", "HIGHSPEED-SURFING" }, { 0x000802, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x000803, "Cos Tron", "COS-TRON" }, { 0x000804, "ICA Inc.", "ICA" }, { 0x000805, "Techno-Holon Corporation", "TECHNO-HOLON" }, { 0x000806, "Raonet Systems, Inc.", "RAONET" }, { 0x000807, "Access Devices Limited", "ACCESS-DEVICES" }, { 0x000808, "PPT Vision, Inc.", "PPT-VISION" }, { 0x000809, "Systemonic AG", "SYSTEMONIC" }, { 0x00080A, "Espera-Werke GmbH", "ESPERA-WERKE" }, { 0x00080B, "Birka BPA Informationssystem AB", "BIRKA-BPA-INFORMATIONSSYSTEM-AB" }, { 0x00080C, "VDA Group S.p.a.", "VDA-GROUP" }, { 0x00080D, "Toshiba", "TOSHIBA" }, { 0x00080E, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x00080F, "Proximion Fiber Optics AB", "PROXIMION-FIBER-OPTICS-AB" }, { 0x000810, "Key Technology, Inc.", "KEY" }, { 0x000811, "VOIX Corporation", "VOIX" }, { 0x000812, "GM-2 Corporation", "GM-2" }, { 0x000813, "Diskbank, Inc.", "DISKBANK" }, { 0x000814, "TIL Technologies", "TIL-TECHNOLOGIES" }, { 0x000815, "CATS Co., Ltd.", "CATS" }, { 0x000816, "Bluelon ApS", "BLUELON-APS" }, { 0x000817, "EmergeCore Networks LLC", "EMERGECORE-NETWORKS" }, { 0x000818, "Pixelworks, Inc.", "PIXELWORKS" }, { 0x000819, "Banksys", "BANKSYS" }, { 0x00081A, "Sanrad Intelligence Storage Communications (2000) Ltd.", "SANRAD-INTELLIGENCE-STORAGE-COMMUNICATION-2000" }, { 0x00081B, "Windigo Systems", "WINDIGO" }, { 0x00081C, "@pos.com", "@POS-COM" }, { 0x00081D, "Ipsil, Incorporated", "IPSIL-INCORPORATED" }, { 0x00081E, "Repeatit AB", "REPEATIT-AB" }, { 0x00081F, "Pou Yuen Tech Corp. Ltd.", "POU-YUEN-TECH" }, { 0x000820, "Cisco Systems, Inc", "CISCO" }, { 0x000821, "Cisco Systems, Inc", "CISCO" }, { 0x000822, "InPro Comm", "INPRO-COMM" }, { 0x000823, "Texa Corp.", "TEXA" }, { 0x000824, "Nuance Document Imaging", "NUANCE-DOCUMENT-IMAGING" }, { 0x000825, "Acme Packet", "ACME-PACKET" }, { 0x000826, "Colorado Med Tech", "COLORADO-MED-TECH" }, { 0x000827, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x000828, "Koei Engineering Ltd.", "KOEI-ENGINEERING" }, { 0x000829, "TOKYO ELECTRON DEVICE NAGASAKI LIMITED", "TOKYO-ELECTRON-DEVICE-NAGASAKI" }, { 0x00082A, "Powerwallz Network Security", "POWERWALLZ-NETWORK-SECURITY" }, { 0x00082B, "Wooksung Electronics, Inc.", "WOOKSUNG-ELECTRONICS" }, { 0x00082C, "Homag AG", "HOMAG" }, { 0x00082D, "Indus Teqsite Private Limited", "INDUS-TEQSITE-PRIVATE" }, { 0x00082E, "Multitone Electronics PLC", "MULTITONE-ELECTRONICS-PLC" }, { 0x00082F, "Cisco Systems, Inc", "CISCO" }, { 0x000830, "Cisco Systems, Inc", "CISCO" }, { 0x000831, "Cisco Systems, Inc", "CISCO" }, { 0x000832, "Cisco Systems, Inc", "CISCO" }, { 0x00084E, "DivergeNet, Inc.", "DIVERGENET" }, { 0x00084F, "Qualstar Corporation", "QUALSTAR" }, { 0x000850, "Arizona Instrument Corp.", "ARIZONA-INSTRUMENT" }, { 0x000851, "Canadian Bank Note Company, Ltd.", "CANADIAN-BANK-NOTE-COMPANY" }, { 0x000852, "Davolink Co. Inc.", "DAVOLINK" }, { 0x000853, "Schleicher GmbH & Co. Relaiswerke KG", "SCHLEICHER-RELAISWERKE" }, { 0x000854, "Netronix, Inc.", "NETRONIX" }, { 0x000855, "NASA-Goddard Space Flight Center", "NASA-GODDARD-SPACE-FLIGHT-CENTER" }, { 0x000856, "Gamatronic Electronic Industries Ltd.", "GAMATRONIC-INDUSTRIES" }, { 0x000857, "Polaris Networks, Inc.", "POLARIS-NETWORKS" }, { 0x000858, "Novatechnology Inc.", "NOVATECHNOLOGY" }, { 0x000859, "ShenZhen Unitone Electronics Co., Ltd.", "SHENZHEN-UNITONE-ELECTRONICS" }, { 0x00085A, "IntiGate Inc.", "INTIGATE" }, { 0x00085B, "Hanbit Electronics Co., Ltd.", "HANBIT-ELECTRONICS" }, { 0x00085C, "Shanghai Dare Technologies Co. Ltd.", "SHANGHAI-DARE-TECHNOLOGIES" }, { 0x00085D, "Mitel Corporation", "MITEL" }, { 0x00085E, "PCO AG", "PCO" }, { 0x00085F, "Picanol N.V.", "PICANOL-N-V" }, { 0x000860, "LodgeNet Entertainment Corp.", "LODGENET-ENTERTAINMENT" }, { 0x000861, "SoftEnergy Co., Ltd.", "SOFTENERGY" }, { 0x000862, "NEC Eluminant Technologies, Inc.", "NEC-ELUMINANT-TECHNOLOGIES" }, { 0x000863, "Entrisphere Inc.", "ENTRISPHERE" }, { 0x000864, "Fasy S.p.A.", "FASY" }, { 0x000865, "JASCOM CO., LTD", "JASCOM" }, { 0x000866, "DSX Access Systems, Inc.", "DSX-ACCESS" }, { 0x000867, "Uptime Devices", "UPTIME-DEVICES" }, { 0x000868, "PurOptix", "PUROPTIX" }, { 0x000869, "Command-e Technology Co.,Ltd.", "COMMAND-E" }, { 0x00086A, "Securiton Gmbh", "SECURITON" }, { 0x00086B, "MIPSYS", "MIPSYS" }, { 0x00086C, "Plasmon LMS", "PLASMON-LMS" }, { 0x00086D, "Missouri FreeNet", "MISSOURI-FREENET" }, { 0x00086E, "Hyglo AB", "HYGLO-AB" }, { 0x00086F, "Resources Computer Network Ltd.", "RESOURCES-NETWORK" }, { 0x000870, "Rasvia Systems, Inc.", "RASVIA" }, { 0x000871, "NORTHDATA Co., Ltd.", "NORTHDATA" }, { 0x000872, "Sorenson Communications", "SORENSON-COMMUNICATION" }, { 0x000873, "DapTechnology B.V.", "DAPTECHNOLOGY-B-V" }, { 0x000874, "Dell Inc.", "DELL" }, { 0x000875, "Acorp Electronics Corp.", "ACORP-ELECTRONICS" }, { 0x000876, "SDSystem", "SDSYSTEM" }, { 0x000877, "Liebert-Hiross Spa", "LIEBERT-HIROSS-SPA" }, { 0x000878, "Benchmark Storage Innovations", "BENCHMARK-STORAGE-INNOVATIONS" }, { 0x000879, "CEM Corporation", "CEM" }, { 0x00087A, "Wipotec GmbH", "WIPOTEC" }, { 0x00087B, "RTX Telecom A/S", "RTX-TELECOM-A/S" }, { 0x00087C, "Cisco Systems, Inc", "CISCO" }, { 0x00087D, "Cisco Systems, Inc", "CISCO" }, { 0x00087E, "Bon Electro-Telecom Inc.", "BON-ELECTRO-TELECOM" }, { 0x00087F, "SPAUN electronic GmbH & Co. KG", "SPAUN" }, { 0x000880, "BroadTel Canada Communications inc.", "BROADTEL-CANADA-COMMUNICATION" }, { 0x000881, "DIGITAL HANDS CO.,LTD.", "DIGITAL-HANDS" }, { 0x000882, "SIGMA CORPORATION", "SIGMA" }, { 0x000883, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x000884, "Index Braille AB", "INDEX-BRAILLE-AB" }, { 0x000885, "EMS Dr. Thomas Wünsche", "EMS-DR-THOMAS-WUENSCHE" }, { 0x000886, "Hansung Teliann, Inc.", "HANSUNG-TELIANN" }, { 0x000887, "Maschinenfabrik Reinhausen GmbH", "MASCHINENFABRIK-REINHAUSEN" }, { 0x000888, "OULLIM Information Technology Inc,.", "OULLIM-INFORMATION" }, { 0x000889, "Dish Technologies Corp", "DISH-TECHNOLOGIES" }, { 0x00088A, "Minds@Work", "MINDS@WORK" }, { 0x00088B, "Tropic Networks Inc.", "TROPIC-NETWORKS" }, { 0x00088C, "Quanta Network Systems Inc.", "QUANTA-NETWORK" }, { 0x00088D, "Sigma-Links Inc.", "SIGMA-LINKS" }, { 0x00088E, "Nihon Computer Co., Ltd.", "NIHON" }, { 0x00088F, "ADVANCED DIGITAL TECHNOLOGY", "ADVANCED-DIGITAL" }, { 0x000890, "AVILINKS SA", "AVILINKS" }, { 0x000891, "Lyan Inc.", "LYAN" }, { 0x000892, "EM Solutions", "EM-SOLUTIONS" }, { 0x000893, "LE INFORMATION COMMUNICATION INC.", "LE-INFORMATION-COMMUNICATION" }, { 0x000894, "InnoVISION Multimedia Ltd.", "INNOVISION-MULTIMEDIA" }, { 0x000895, "DIRC Technologie GmbH & Co.KG", "DIRC-TECHNOLOGIE" }, { 0x000896, "Printronix, Inc.", "PRINTRONIX" }, { 0x000897, "Quake Technologies", "QUAKE-TECHNOLOGIES" }, { 0x000898, "Gigabit Optics Corporation", "GIGABIT-OPTICS" }, { 0x000899, "Netbind, Inc.", "NETBIND" }, { 0x00089A, "Alcatel Microelectronics", "ALCATEL-MICROELECTRONICS" }, { 0x00089B, "ICP Electronics Inc.", "ICP-ELECTRONICS" }, { 0x00089C, "Elecs Industry Co., Ltd.", "ELECS-INDUSTRY" }, { 0x00089D, "UHD-Elektronik", "UHD-ELEKTRONIK" }, { 0x00089E, "Beijing Enter-Net co.LTD", "BEIJING-ENTER-NET" }, { 0x00089F, "EFM Networks", "EFM-NETWORKS" }, { 0x0008A0, "Stotz Feinmesstechnik GmbH", "STOTZ-FEINMESSTECHNIK" }, { 0x0008A1, "CNet Technology Inc.", "CNET" }, { 0x0008A2, "ADI Engineering, Inc.", "ADI-ENGINEERING" }, { 0x0008A3, "Cisco Systems, Inc", "CISCO" }, { 0x0008A4, "Cisco Systems, Inc", "CISCO" }, { 0x0008A5, "Peninsula Systems Inc.", "PENINSULA" }, { 0x0008A6, "Multiware & Image Co., Ltd.", "MULTIWARE-IMAGE" }, { 0x0008A7, "iLogic Inc.", "ILOGIC" }, { 0x0008A8, "Systec Co., Ltd.", "SYSTEC" }, { 0x0008A9, "SangSang Technology, Inc.", "SANGSANG" }, { 0x0008AA, "KARAM", "KARAM" }, { 0x0008AB, "EnerLinx.com, Inc.", "ENERLINX-COM" }, { 0x0008AC, "BST GmbH", "BST" }, { 0x0008AD, "Toyo-Linx Co., Ltd.", "TOYO-LINX" }, { 0x0008AE, "PacketFront Network Products AB", "PACKETFRONT-NETWORK-PRODUCTS-AB" }, { 0x0008AF, "Novatec Corporation", "NOVATEC" }, { 0x0008B0, "HUBER+SUHNER BKtel GmbH", "HUBER+SUHNER-BKTEL" }, { 0x0008B1, "ProQuent Systems", "PROQUENT" }, { 0x0008B2, "SHENZHEN COMPASS TECHNOLOGY DEVELOPMENT CO.,LTD", "SHENZHEN-COMPASS-DEVELOPMENT" }, { 0x0008B3, "Fastwel", "FASTWEL" }, { 0x0008B4, "SYSPOL", "SYSPOL" }, { 0x0008B5, "TAI GUEN ENTERPRISE CO., LTD", "TAI-GUEN" }, { 0x0008B6, "RouteFree, Inc.", "ROUTEFREE" }, { 0x0008B7, "HIT Incorporated", "HIT-INCORPORATED" }, { 0x0008B8, "E.F. Johnson", "E-F-JOHNSON" }, { 0x0008B9, "Kaon Group Co., Ltd.", "KAON-GROUP" }, { 0x0008BA, "Erskine Systems Ltd", "ERSKINE" }, { 0x0008BB, "NetExcell", "NETEXCELL" }, { 0x0008BC, "Ilevo AB", "ILEVO-AB" }, { 0x0008BD, "TEPG-US", "TEPG-US" }, { 0x0008BE, "XENPAK MSA Group", "XENPAK-MSA-GROUP" }, { 0x0008BF, "Aptus Elektronik AB", "APTUS-ELEKTRONIK-AB" }, { 0x0008C0, "ASA SYSTEMS", "ASA" }, { 0x0008C1, "Avistar Communications Corporation", "AVISTAR-COMMUNICATION" }, { 0x0008C2, "Cisco Systems, Inc", "CISCO" }, { 0x0008C3, "Contex A/S", "CONTEX-A/S" }, { 0x0008C4, "Hikari Co.,Ltd.", "HIKARI" }, { 0x0008C5, "Liontech Co., Ltd.", "LIONTECH" }, { 0x0008C6, "Philips Consumer Communications", "PHILIPS-CONSUMER-COMMUNICATION" }, { 0x0008C7, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x0008C8, "Soneticom, Inc.", "SONETICOM" }, { 0x0008C9, "TechniSat Digital GmbH Daun", "TECHNISAT-DIGITAL-DAUN" }, { 0x0008CA, "TwinHan Technology Co.,Ltd", "TWINHAN" }, { 0x0008CB, "Zeta Broadband Inc.", "ZETA-BROADBAND" }, { 0x0008CC, "Remotec, Inc.", "REMOTEC" }, { 0x0008CD, "With-Net Inc", "WITH-NET" }, { 0x0008CE, "IPMobileNet Inc.", "IPMOBILENET" }, { 0x0008CF, "Nippon Koei Power Systems Co., Ltd.", "NIPPON-KOEI-POWER" }, { 0x0008D0, "Musashi Engineering Co., LTD.", "MUSASHI-ENGINEERING" }, { 0x0008D1, "KAREL INC.", "KAREL" }, { 0x0008D2, "ZOOM Networks Inc.", "ZOOM-NETWORKS" }, { 0x0008D3, "Hercules Technologies S.A.S.", "HERCULES-TECHNOLOGIES-S" }, { 0x0008D4, "IneoQuest Technologies, Inc", "INEOQUEST-TECHNOLOGIES" }, { 0x0008D5, "Vanguard Networks Solutions, LLC", "VANGUARD-NETWORKS-SOLUTIONS" }, { 0x0008D6, "HASSNET Inc.", "HASSNET" }, { 0x0008D7, "HOW CORPORATION", "HOW" }, { 0x0008D8, "Dowkey Microwave", "DOWKEY-MICROWAVE" }, { 0x0008D9, "Mitadenshi Co.,LTD", "MITADENSHI" }, { 0x0008DA, "SofaWare Technologies Ltd.", "SOFAWARE-TECHNOLOGIES" }, { 0x0008DB, "Corrigent Systems", "CORRIGENT" }, { 0x0008DC, "Wiznet", "WIZNET" }, { 0x0008DD, "Telena Communications, Inc.", "TELENA-COMMUNICATION" }, { 0x0008DE, "3UP Systems", "3UP" }, { 0x0008DF, "Alistel Inc.", "ALISTEL" }, { 0x0008E0, "ATO Technology Ltd.", "ATO" }, { 0x0008E1, "Barix AG", "BARIX" }, { 0x0008E2, "Cisco Systems, Inc", "CISCO" }, { 0x0008E3, "Cisco Systems, Inc", "CISCO" }, { 0x0008E4, "Envenergy Inc", "ENVENERGY" }, { 0x0008E5, "IDK Corporation", "IDK" }, { 0x0008E6, "Littlefeet", "LITTLEFEET" }, { 0x0008E7, "SHI ControlSystems,Ltd.", "SHI-CONTROLSYSTEMS" }, { 0x0008E8, "Excel Master Ltd.", "EXCEL-MASTER" }, { 0x0008E9, "NextGig", "NEXTGIG" }, { 0x0008EA, "Motion Control Engineering, Inc", "MOTION-CONTROL-ENGINEERING" }, { 0x0008EB, "ROMWin Co.,Ltd.", "ROMWIN" }, { 0x0008EC, "Optical Zonu Corporation", "OPTICAL-ZONU" }, { 0x0008ED, "ST&T Instrument Corp.", "ST-T-INSTRUMENT" }, { 0x0008EE, "Logic Product Development", "LOGIC-PRODUCT-DEVELOPMENT" }, { 0x0008EF, "DIBAL,S.A.", "DIBAL" }, { 0x0008F0, "Next Generation Systems, Inc.", "NEXT-GENERATION" }, { 0x0008F1, "Voltaire", "VOLTAIRE" }, { 0x0008F2, "C&S Technology", "C-S" }, { 0x0008F3, "WANY", "WANY" }, { 0x0008F4, "Bluetake Technology Co., Ltd.", "BLUETAKE" }, { 0x0008F5, "YESTECHNOLOGY Co.,Ltd.", "YESTECHNOLOGY" }, { 0x0008F6, "Sumitomo Electric Industries, Ltd", "SUMITOMO-ELECTRIC-INDUSTRIES" }, { 0x0008F7, "Hitachi Ltd, Semiconductor & Integrated Circuits Gr", "HITACHI-SEMICONDUCTOR-INTEGRATED-CIRCUITS-GR" }, { 0x0008F8, "UTC CCS", "UTC-CCS" }, { 0x0008F9, "Artesyn Embedded Technologies", "ARTESYN-EMBEDDED-TECHNOLOGIES" }, { 0x0008FA, "KEB Automation KG", "KEB-AUTOMATION" }, { 0x0008FB, "SonoSite, Inc.", "SONOSITE" }, { 0x0008FC, "Gigaphoton Inc.", "GIGAPHOTON" }, { 0x0008FD, "BlueKorea Co., Ltd.", "BLUEKOREA" }, { 0x0008FE, "UNIK C&C Co.,Ltd.", "UNIK-C-C" }, { 0x0008FF, "Trilogy Communications Ltd", "TRILOGY-COMMUNICATION" }, { 0x000900, "TMT", "TMT" }, { 0x000901, "Shenzhen Shixuntong Information & Technoligy Co", "SHENZHEN-SHIXUNTONG-INFORMATION-TECHNOLIGY" }, { 0x000902, "Redline Communications Inc.", "REDLINE-COMMUNICATION" }, { 0x000903, "Panasas, Inc", "PANASAS" }, { 0x000904, "MONDIAL electronic", "MONDIAL" }, { 0x000905, "iTEC Technologies Ltd.", "ITEC-TECHNOLOGIES" }, { 0x000906, "Esteem Networks", "ESTEEM-NETWORKS" }, { 0x000907, "Chrysalis Development", "CHRYSALIS-DEVELOPMENT" }, { 0x000908, "VTech Technology Corp.", "VTECH" }, { 0x000909, "Telenor Connect A/S", "TELENOR-CONNECT-A/S" }, { 0x00090A, "SnedFar Technology Co., Ltd.", "SNEDFAR" }, { 0x00090B, "MTL Instruments PLC", "MTL-INSTRUMENTS-PLC" }, { 0x00090C, "Mayekawa Mfg. Co. Ltd.", "MAYEKAWA-MFG" }, { 0x00090D, "LEADER ELECTRONICS CORP.", "LEADER-ELECTRONICS" }, { 0x00090E, "Helix Technology Inc.", "HELIX" }, { 0x00090F, "Fortinet, Inc.", "FORTINET" }, { 0x000910, "Simple Access Inc.", "SIMPLE-ACCESS" }, { 0x000911, "Cisco Systems, Inc", "CISCO" }, { 0x000912, "Cisco Systems, Inc", "CISCO" }, { 0x000913, "SystemK Corporation", "SYSTEMK" }, { 0x000914, "COMPUTROLS INC.", "COMPUTROLS" }, { 0x000915, "CAS Corp.", "CAS" }, { 0x000916, "Listman Home Technologies, Inc.", "LISTMAN-HOME-TECHNOLOGIES" }, { 0x000917, "WEM Technology Inc", "WEM" }, { 0x000918, "SAMSUNG TECHWIN CO.,LTD", "SAMSUNG-TECHWIN" }, { 0x000919, "MDS Gateways", "MDS-GATEWAYS" }, { 0x00091A, "Macat Optics & Electronics Co., Ltd.", "MACAT-OPTICS-ELECTRONICS" }, { 0x00091B, "Digital Generation Inc.", "DIGITAL-GENERATION" }, { 0x00091C, "CacheVision, Inc", "CACHEVISION" }, { 0x00091D, "Proteam Computer Corporation", "PROTEAM" }, { 0x00091E, "Firstech Technology Corp.", "FIRSTECH" }, { 0x00091F, "A&D Co., Ltd.", "A-D" }, { 0x000920, "EpoX COMPUTER CO.,LTD.", "EPOX" }, { 0x000921, "Planmeca Oy", "PLANMECA-OY" }, { 0x000922, "TST Biometrics GmbH", "TST-BIOMETRICS" }, { 0x000923, "Heaman System Co., Ltd", "HEAMAN-SYSTEM" }, { 0x000924, "Telebau GmbH", "TELEBAU" }, { 0x000925, "VSN Systemen BV", "VSN-SYSTEMEN" }, { 0x000926, "YODA COMMUNICATIONS, INC.", "YODA-COMMUNICATION" }, { 0x000927, "TOYOKEIKI CO.,LTD.", "TOYOKEIKI" }, { 0x000928, "Telecore", "TELECORE" }, { 0x000929, "Sanyo Industries (UK) Limited", "SANYO-INDUSTRIES-UK" }, { 0x00092A, "MYTECS Co.,Ltd.", "MYTECS" }, { 0x00092B, "iQstor Networks, Inc.", "IQSTOR-NETWORKS" }, { 0x00092C, "Hitpoint Inc.", "HITPOINT" }, { 0x00092D, "HTC Corporation", "HTC" }, { 0x00092E, "B&Tech System Inc.", "B-TECH-SYSTEM" }, { 0x00092F, "Akom Technology Corporation", "AKOM" }, { 0x000930, "AeroConcierge Inc.", "AEROCONCIERGE" }, { 0x000931, "Future Internet, Inc.", "FUTURE-INTERNET" }, { 0x000932, "Omnilux", "OMNILUX" }, { 0x000933, "Ophit Co.Ltd.", "OPHIT" }, { 0x000934, "Dream-Multimedia-Tv GmbH", "DREAM-MULTIMEDIA-TV" }, { 0x000935, "Sandvine Incorporated", "SANDVINE-INCORPORATED" }, { 0x000936, "Ipetronik GmbH & Co. KG", "IPETRONIK" }, { 0x000937, "Inventec Appliance Corp", "INVENTEC-APPLIANCE" }, { 0x000938, "Allot Communications", "ALLOT-COMMUNICATION" }, { 0x000939, "ShibaSoku Co.,Ltd.", "SHIBASOKU" }, { 0x00093A, "Molex CMS", "MOLEX-CMS" }, { 0x00093B, "HYUNDAI NETWORKS INC.", "HYUNDAI-NETWORKS" }, { 0x00093C, "Jacques Technologies P/L", "JACQUES-TECHNOLOGIES-P/L" }, { 0x00093D, "Newisys,Inc.", "NEWISYS" }, { 0x00093E, "C&I Technologies", "C-I-TECHNOLOGIES" }, { 0x00093F, "Double-Win Enterpirse CO., LTD", "DOUBLE-WIN-ENTERPIRSE" }, { 0x000940, "AGFEO GmbH & Co. KG", "AGFEO" }, { 0x000941, "Allied Telesis K.K.", "ALLIED-TELESIS-K-K" }, { 0x000942, "Wireless Technologies, Inc", "WIRELESS-TECHNOLOGIES" }, { 0x000943, "Cisco Systems, Inc", "CISCO" }, { 0x000944, "Cisco Systems, Inc", "CISCO" }, { 0x000945, "Palmmicro Communications Inc", "PALMMICRO-COMMUNICATION" }, { 0x000946, "Cluster Labs GmbH", "CLUSTER-LABS" }, { 0x000947, "Aztek, Inc.", "AZTEK" }, { 0x000948, "Vista Control Systems, Corp.", "VISTA-CONTROL" }, { 0x000949, "Glyph Technologies Inc.", "GLYPH-TECHNOLOGIES" }, { 0x00094A, "Homenet Communications", "HOMENET-COMMUNICATION" }, { 0x00094B, "FillFactory NV", "FILLFACTORY-NV" }, { 0x00094C, "Communication Weaver Co.,Ltd.", "COMMUNICATION-WEAVER" }, { 0x00094D, "Braintree Communications Pty Ltd", "BRAINTREE-COMMUNICATION-PTY" }, { 0x00094E, "BARTECH SYSTEMS INTERNATIONAL, INC", "BARTECH" }, { 0x00094F, "elmegt GmbH & Co. KG", "ELMEGT" }, { 0x000950, "Independent Storage Corporation", "INDEPENDENT-STORAGE" }, { 0x000951, "Apogee Imaging Systems", "APOGEE-IMAGING" }, { 0x000952, "Auerswald GmbH & Co. KG", "AUERSWALD" }, { 0x000953, "Linkage System Integration Co.Ltd.", "LINKAGE-SYSTEM-INTEGRATION" }, { 0x000954, "AMiT spol. s. r. o.", "AMIT-SPOL-S-R-O" }, { 0x000955, "Young Generation International Corp.", "YOUNG-GENERATION" }, { 0x000956, "Network Systems Group, Ltd. (NSG)", "NETWORK-GROUP-NSG" }, { 0x000957, "Supercaller, Inc.", "SUPERCALLER" }, { 0x000958, "INTELNET S.A.", "INTELNET" }, { 0x000959, "Sitecsoft", "SITECSOFT" }, { 0x00095A, "RACEWOOD TECHNOLOGY", "RACEWOOD" }, { 0x00095B, "NETGEAR", "NETGEAR" }, { 0x00095C, "Philips Medical Systems - Cardiac and Monitoring Systems (CM", "PHILIPS-MEDICAL-CARDIAC-AND-MONITORING-CM" }, { 0x00095D, "Dialogue Technology Corp.", "DIALOGUE" }, { 0x00095E, "Masstech Group Inc.", "MASSTECH-GROUP" }, { 0x00095F, "Telebyte, Inc.", "TELEBYTE" }, { 0x000960, "YOZAN Inc.", "YOZAN" }, { 0x000961, "Switchgear and Instrumentation Ltd", "SWITCHGEAR-AND-INSTRUMENTATION" }, { 0x000962, "Sonitor Technologies AS", "SONITOR-TECHNOLOGIES-AS" }, { 0x000963, "Dominion Lasercom Inc.", "DOMINION-LASERCOM" }, { 0x000964, "Hi-Techniques, Inc.", "HI-TECHNIQUES" }, { 0x000965, "HyunJu Computer Co., Ltd.", "HYUNJU" }, { 0x000966, "TRIMBLE EUROPE BV", "TRIMBLE-EUROPE" }, { 0x000967, "Tachyon, Inc", "TACHYON" }, { 0x000968, "TECHNOVENTURE, INC.", "TECHNOVENTURE" }, { 0x000969, "Meret Optical Communications", "MERET-OPTICAL-COMMUNICATION" }, { 0x00096A, "Cloverleaf Communications Inc.", "CLOVERLEAF-COMMUNICATION" }, { 0x00096B, "IBM Corp", "IBM" }, { 0x00096C, "Imedia Semiconductor Corp.", "IMEDIA-SEMICONDUCTOR" }, { 0x00096D, "Powernet Technologies Corp.", "POWERNET-TECHNOLOGIES" }, { 0x00096E, "GIANT ELECTRONICS LTD.", "GIANT-ELECTRONICS" }, { 0x00096F, "Beijing Zhongqing Elegant Tech. Corp.,Limited", "BEIJING-ZHONGQING-ELEGANT-TECH" }, { 0x000970, "Vibration Research Corporation", "VIBRATION-RESEARCH" }, { 0x000971, "Time Management, Inc.", "TIME-MANAGEMENT" }, { 0x000972, "Securebase,Inc", "SECUREBASE" }, { 0x000973, "Lenten Technology Co., Ltd.", "LENTEN" }, { 0x000974, "Innopia Technologies, Inc.", "INNOPIA-TECHNOLOGIES" }, { 0x000975, "fSONA Communications Corporation", "FSONA-COMMUNICATION" }, { 0x000976, "Datasoft ISDN Systems GmbH", "DATASOFT-ISDN" }, { 0x000977, "Brunner Elektronik AG", "BRUNNER-ELEKTRONIK" }, { 0x000978, "AIJI System Co., Ltd.", "AIJI-SYSTEM" }, { 0x000979, "Advanced Television Systems Committee, Inc.", "ADVANCED-TELEVISION-COMMITTEE" }, { 0x00097A, "Louis Design Labs.", "LOUIS-DESIGN-LABS" }, { 0x00097B, "Cisco Systems, Inc", "CISCO" }, { 0x00097C, "Cisco Systems, Inc", "CISCO" }, { 0x00097D, "SecWell Networks Oy", "SECWELL-NETWORKS-OY" }, { 0x00097E, "IMI TECHNOLOGY CO., LTD", "IMI" }, { 0x00097F, "Vsecure 2000 LTD.", "VSECURE-2000" }, { 0x000980, "Power Zenith Inc.", "POWER-ZENITH" }, { 0x000981, "Newport Networks", "NEWPORT-NETWORKS" }, { 0x000982, "Loewe Opta GmbH", "LOEWE-OPTA" }, { 0x000983, "GlobalTop Technology, Inc.", "GLOBALTOP" }, { 0x000984, "MyCasa Network Inc.", "MYCASA-NETWORK" }, { 0x000985, "Auto Telecom Company", "AUTO-TELECOM-COMPANY" }, { 0x000986, "Metalink LTD.", "METALINK" }, { 0x000987, "NISHI NIPPON ELECTRIC WIRE & CABLE CO.,LTD.", "NISHI-NIPPON-ELECTRIC-WIRE-CABLE" }, { 0x000988, "Nudian Electron Co., Ltd.", "NUDIAN-ELECTRON" }, { 0x000989, "VividLogic Inc.", "VIVIDLOGIC" }, { 0x00098A, "EqualLogic Inc", "EQUALLOGIC" }, { 0x00098B, "Entropic Communications, Inc.", "ENTROPIC-COMMUNICATION" }, { 0x00098C, "Option Wireless Sweden", "OPTION-WIRELESS-SWEDEN" }, { 0x00098D, "Velocity Semiconductor", "VELOCITY-SEMICONDUCTOR" }, { 0x00098E, "ipcas GmbH", "IPCAS" }, { 0x00098F, "Cetacean Networks", "CETACEAN-NETWORKS" }, { 0x000990, "ACKSYS Communications & systems", "ACKSYS-COMMUNICATION" }, { 0x000991, "Intelligent Platforms, LLC.", "INTELLIGENT-PLATFORMS" }, { 0x000992, "InterEpoch Technology,INC.", "INTEREPOCH" }, { 0x000993, "Visteon Corporation", "VISTEON" }, { 0x000994, "Cronyx Engineering", "CRONYX-ENGINEERING" }, { 0x000995, "Castle Technology Ltd", "CASTLE" }, { 0x000996, "RDI", "RDI" }, { 0x000997, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x000998, "Capinfo Company Limited", "CAPINFO-COMPANY" }, { 0x000999, "CP GEORGES RENAULT", "CP-GEORGES-RENAULT" }, { 0x00099A, "ELMO COMPANY, LIMITED", "ELMO-COMPANY" }, { 0x00099B, "Western Telematic Inc.", "WESTERN-TELEMATIC" }, { 0x00099C, "Naval Research Laboratory", "NAVAL-RESEARCH-LABORATORY" }, { 0x00099D, "Haliplex Communications", "HALIPLEX-COMMUNICATION" }, { 0x00099E, "Testech, Inc.", "TESTECH" }, { 0x00099F, "VIDEX INC.", "VIDEX" }, { 0x0009A0, "Microtechno Corporation", "MICROTECHNO" }, { 0x0009A1, "Telewise Communications, Inc.", "TELEWISE-COMMUNICATION" }, { 0x0009A2, "Interface Co., Ltd.", "INTERFACE" }, { 0x0009A3, "Leadfly Techologies Corp. Ltd.", "LEADFLY-TECHOLOGIES" }, { 0x0009A4, "HARTEC Corporation", "HARTEC" }, { 0x0009A5, "HANSUNG ELETRONIC INDUSTRIES DEVELOPMENT CO., LTD", "HANSUNG-ELETRONIC-INDUSTRIES-DEVELOPMENT" }, { 0x0009A6, "Ignis Optics, Inc.", "IGNIS-OPTICS" }, { 0x0009A7, "Bang & Olufsen A/S", "BANG-OLUFSEN-A/S" }, { 0x0009A8, "Eastmode Pte Ltd", "EASTMODE-PTE" }, { 0x0009A9, "Ikanos Communications", "IKANOS-COMMUNICATION" }, { 0x0009AA, "Data Comm for Business, Inc.", "DATA-COMM-FOR-BUSINESS" }, { 0x0009AB, "Netcontrol Oy", "NETCONTROL-OY" }, { 0x0009AC, "LANVOICE", "LANVOICE" }, { 0x0009AD, "HYUNDAI SYSCOMM, INC.", "HYUNDAI-SYSCOMM" }, { 0x0009AE, "OKANO ELECTRIC CO.,LTD", "OKANO-ELECTRIC" }, { 0x0009AF, "e-generis", "E-GENERIS" }, { 0x0009B0, "Onkyo Technology K.K.", "ONKYO-K-K" }, { 0x0009B1, "Kanematsu Electronics, Ltd.", "KANEMATSU-ELECTRONICS" }, { 0x0009B2, "L&F Inc.", "L-F" }, { 0x0009B3, "MCM Systems Ltd", "MCM" }, { 0x0009B4, "KISAN TELECOM CO., LTD.", "KISAN-TELECOM" }, { 0x0009B5, "3J Tech. Co., Ltd.", "3J-TECH" }, { 0x0009B6, "Cisco Systems, Inc", "CISCO" }, { 0x0009B7, "Cisco Systems, Inc", "CISCO" }, { 0x0009B8, "Entise Systems", "ENTISE" }, { 0x0009B9, "Action Imaging Solutions", "ACTION-IMAGING-SOLUTIONS" }, { 0x0009BA, "MAKU Informationstechik GmbH", "MAKU-INFORMATIONSTECHIK" }, { 0x0009BB, "MathStar, Inc.", "MATHSTAR" }, { 0x0009BC, "Utility, Inc", "UTILITY" }, { 0x0009BD, "Epygi Technologies, Ltd.", "EPYGI-TECHNOLOGIES" }, { 0x0009BE, "Mamiya-OP Co.,Ltd.", "MAMIYA-OP" }, { 0x0009BF, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x0009C0, "6WIND", "6WIND" }, { 0x0009C1, "PROCES-DATA A/S", "PROCES-DATA-A/S" }, { 0x0009C2, "Onity, Inc.", "ONITY" }, { 0x0009C3, "NETAS", "NETAS" }, { 0x0009C4, "Medicore Co., Ltd", "MEDICORE" }, { 0x0009C5, "KINGENE Technology Corporation", "KINGENE" }, { 0x0009C6, "Visionics Corporation", "VISIONICS" }, { 0x0009C7, "Movistec", "MOVISTEC" }, { 0x0009C8, "SINAGAWA TSUSHIN KEISOU SERVICE", "SINAGAWA-TSUSHIN-KEISOU-SERVICE" }, { 0x0009C9, "BlueWINC Co., Ltd.", "BLUEWINC" }, { 0x0009CA, "iMaxNetworks(Shenzhen)Limited.", "IMAXNETWORKS-SHENZHEN" }, { 0x0009CB, "HBrain", "HBRAIN" }, { 0x0009CC, "Moog GmbH", "MOOG" }, { 0x0009CD, "HUDSON SOFT CO.,LTD.", "HUDSON-SOFT" }, { 0x0009CE, "SpaceBridge Semiconductor Corp.", "SPACEBRIDGE-SEMICONDUCTOR" }, { 0x0009CF, "iAd GmbH", "IAD" }, { 0x0009D0, "Solacom Technologies Inc.", "SOLACOM-TECHNOLOGIES" }, { 0x0009D1, "SERANOA NETWORKS INC", "SERANOA-NETWORKS" }, { 0x0009D2, "Mai Logic Inc.", "MAI-LOGIC" }, { 0x0009D3, "Western DataCom Co., Inc.", "WESTERN-DATACOM" }, { 0x0009D4, "Transtech Networks", "TRANSTECH-NETWORKS" }, { 0x0009D5, "Signal Communication, Inc.", "SIGNAL-COMMUNICATION" }, { 0x0009D6, "KNC One GmbH", "KNC-ONE" }, { 0x0009D7, "DC Security Products", "DC-SECURITY-PRODUCTS" }, { 0x0009D8, "Fält Communications AB", "FAELT-COMMUNICATION-AB" }, { 0x0009D9, "Neoscale Systems, Inc", "NEOSCALE" }, { 0x0009DA, "Control Module Inc.", "CONTROL-MODULE" }, { 0x0009DB, "eSpace", "ESPACE" }, { 0x0009DC, "Galaxis Technology AG", "GALAXIS" }, { 0x0009DD, "Mavin Technology Inc.", "MAVIN" }, { 0x0009DE, "Samjin Information & Communications Co., Ltd.", "SAMJIN-INFORMATION-COMMUNICATION" }, { 0x0009DF, "Vestel Elektronik San ve Tic. A.S.", "VESTEL-ELEKTRONIK-SAN-VE-TIC" }, { 0x0009E0, "XEMICS S.A.", "XEMICS" }, { 0x0009E1, "Gemtek Technology Co., Ltd.", "GEMTEK" }, { 0x0009E2, "Sinbon Electronics Co., Ltd.", "SINBON-ELECTRONICS" }, { 0x0009E3, "Angel Iglesias S.A.", "ANGEL-IGLESIAS" }, { 0x0009E4, "K Tech Infosystem Inc.", "K-TECH-INFOSYSTEM" }, { 0x0009E5, "Hottinger Brüel & Kjaer GmbH", "HOTTINGER-BRUEEL-KJAER" }, { 0x0009E6, "Cyber Switching Inc.", "CYBER-SWITCHING" }, { 0x0009E7, "ADC Techonology", "ADC-TECHONOLOGY" }, { 0x0009E8, "Cisco Systems, Inc", "CISCO" }, { 0x0009E9, "Cisco Systems, Inc", "CISCO" }, { 0x0009EA, "YEM Inc.", "YEM" }, { 0x0009EB, "HuMANDATA LTD.", "HUMANDATA" }, { 0x0009EC, "Daktronics, Inc.", "DAKTRONICS" }, { 0x0009ED, "CipherOptics", "CIPHEROPTICS" }, { 0x0009EE, "MEIKYO ELECTRIC CO.,LTD", "MEIKYO-ELECTRIC" }, { 0x0009EF, "Vocera Communications", "VOCERA-COMMUNICATION" }, { 0x0009F0, "Shimizu Technology Inc.", "SHIMIZU" }, { 0x0009F1, "Yamaki Electric Corporation", "YAMAKI-ELECTRIC" }, { 0x0009F2, "Cohu, Inc., Electronics Division", "COHU-ELECTRONICS-DIVISION" }, { 0x0009F3, "WELL Communication Corp.", "WELL-COMMUNICATION" }, { 0x0009F4, "Alcon Laboratories, Inc.", "ALCON-LABORATORIES" }, { 0x0009F5, "Emerson Network Power Co.,Ltd", "EMERSON-NETWORK-POWER" }, { 0x0009F6, "Shenzhen Eastern Digital Tech Ltd.", "SHENZHEN-EASTERN-DIGITAL-TECH" }, { 0x0009F7, "SED, a division of Calian", "SED-A-DIVISION-OF-CALIAN" }, { 0x0009F8, "UNIMO TECHNOLOGY CO., LTD.", "UNIMO" }, { 0x0009F9, "ART JAPAN CO., LTD.", "ART-JAPAN" }, { 0x0009FB, "Philips Patient Monitoring", "PHILIPS-PATIENT-MONITORING" }, { 0x0009FC, "IPFLEX Inc.", "IPFLEX" }, { 0x0009FD, "Ubinetics Limited", "UBINETICS" }, { 0x0009FE, "Daisy Technologies, Inc.", "DAISY-TECHNOLOGIES" }, { 0x0009FF, "X.net 2000 GmbH", "X-NET-2000" }, { 0x000A00, "Mediatek Corp.", "MEDIATEK" }, { 0x000A01, "SOHOware, Inc.", "SOHOWARE" }, { 0x000A02, "ANNSO CO., LTD.", "ANNSO" }, { 0x000A03, "ENDESA SERVICIOS, S.L.", "ENDESA-SERVICIOS" }, { 0x000A04, "3Com Ltd", "3COM" }, { 0x000A05, "Widax Corp.", "WIDAX" }, { 0x000A06, "Teledex LLC", "TELEDEX" }, { 0x000A07, "WebWayOne Ltd", "WEBWAYONE" }, { 0x000A08, "Alps Alpine", "ALPS-ALPINE" }, { 0x000A09, "TaraCom Integrated Products, Inc.", "TARACOM-INTEGRATED-PRODUCTS" }, { 0x000A0A, "SUNIX Co., Ltd.", "SUNIX" }, { 0x000A0B, "Sealevel Systems, Inc.", "SEALEVEL" }, { 0x000A0C, "Scientific Research Corporation", "SCIENTIFIC-RESEARCH" }, { 0x000A0D, "Amphenol", "AMPHENOL" }, { 0x000A0E, "Invivo Research Inc.", "INVIVO-RESEARCH" }, { 0x000A0F, "Ilryung Telesys, Inc", "ILRYUNG-TELESYS" }, { 0x000A10, "FAST media integrations AG", "FAST-MEDIA-INTEGRATIONS" }, { 0x000A11, "ExPet Technologies, Inc", "EXPET-TECHNOLOGIES" }, { 0x000A12, "Azylex Technology, Inc", "AZYLEX" }, { 0x000A13, "Honeywell Video Systems", "HONEYWELL-VIDEO" }, { 0x000A14, "TECO a.s.", "TECO" }, { 0x000A15, "Silicon Data, Inc", "SILICON-DATA" }, { 0x000A16, "Lassen Research", "LASSEN-RESEARCH" }, { 0x000A17, "NESTAR COMMUNICATIONS, INC", "NESTAR-COMMUNICATION" }, { 0x000A18, "Vichel Inc.", "VICHEL" }, { 0x000A19, "Valere Power, Inc.", "VALERE-POWER" }, { 0x000A1A, "Imerge Ltd", "IMERGE" }, { 0x000A1B, "Stream Labs", "STREAM-LABS" }, { 0x000A1C, "Bridge Information Co., Ltd.", "BRIDGE-INFORMATION" }, { 0x000A1D, "Optical Communications Products Inc.", "OPTICAL-COMMUNICATION-PRODUCTS" }, { 0x000A1E, "Red-M Products Limited", "RED-M-PRODUCTS" }, { 0x000A1F, "ART WARE Telecommunication Co., Ltd.", "ART-WARE-TELECOMMUNICATION" }, { 0x000A20, "SVA Networks, Inc.", "SVA-NETWORKS" }, { 0x000A21, "Integra Telecom Co. Ltd", "INTEGRA-TELECOM" }, { 0x000A22, "Amperion Inc", "AMPERION" }, { 0x000A23, "Parama Networks Inc", "PARAMA-NETWORKS" }, { 0x000A24, "Octave Communications", "OCTAVE-COMMUNICATION" }, { 0x000A25, "CERAGON NETWORKS", "CERAGON-NETWORKS" }, { 0x000A26, "CEIA S.p.A.", "CEIA" }, { 0x000A27, "Apple, Inc.", "APPLE" }, { 0x000A28, "Motorola", "MOTOROLA" }, { 0x000A29, "Pan Dacom Networking AG", "PAN-DACOM-NETWORKING" }, { 0x000A2A, "QSI Systems Inc.", "QSI" }, { 0x000A2B, "Etherstuff", "ETHERSTUFF" }, { 0x000A2C, "Active Tchnology Corporation", "ACTIVE-TCHNOLOGY" }, { 0x000A2D, "Cabot Communications Limited", "CABOT-COMMUNICATION" }, { 0x000A2E, "MAPLE NETWORKS CO., LTD", "MAPLE-NETWORKS" }, { 0x000A2F, "Artnix Inc.", "ARTNIX" }, { 0x000A30, "Visteon Corporation", "VISTEON" }, { 0x000A31, "HCV Consulting", "HCV-CONSULTING" }, { 0x000A32, "Xsido Corporation", "XSIDO" }, { 0x000A33, "Emulex Corporation", "EMULEX" }, { 0x000A34, "Identicard Systems Incorporated", "IDENTICARD-INCORPORATED" }, { 0x000A35, "Xilinx", "XILINX" }, { 0x000A36, "Synelec Telecom Multimedia", "SYNELEC-TELECOM-MULTIMEDIA" }, { 0x000A37, "Procera Networks, Inc.", "PROCERA-NETWORKS" }, { 0x000A38, "Apani Networks", "APANI-NETWORKS" }, { 0x000A39, "LoPA Information Technology", "LOPA-INFORMATION" }, { 0x000A3A, "J-THREE INTERNATIONAL Holding Co., Ltd.", "J-THREE-HOLDING" }, { 0x000A3B, "GCT Semiconductor, Inc", "GCT-SEMICONDUCTOR" }, { 0x000A3C, "Enerpoint Ltd.", "ENERPOINT" }, { 0x000A3D, "Elo Sistemas Eletronicos S.A.", "ELO-SISTEMAS-ELETRONICOS" }, { 0x000A3E, "EADS Telecom", "EADS-TELECOM" }, { 0x000A3F, "Data East Corporation", "DATA-EAST" }, { 0x000A40, "Crown Audio -- Harmanm International", "CROWN-AUDIO-HARMANM" }, { 0x000A41, "Cisco Systems, Inc", "CISCO" }, { 0x000A42, "Cisco Systems, Inc", "CISCO" }, { 0x000A43, "Chunghwa Telecom Co., Ltd.", "CHUNGHWA-TELECOM" }, { 0x000A44, "Avery Dennison Deutschland GmbH", "AVERY-DENNISON-DEUTSCHLAND" }, { 0x000A45, "Audio-Technica Corp.", "AUDIO-TECHNICA" }, { 0x000A46, "ARO WELDING TECHNOLOGIES SAS", "ARO-WELDING-TECHNOLOGIES-SAS" }, { 0x000A47, "Allied Vision Technologies", "ALLIED-VISION-TECHNOLOGIES" }, { 0x000A48, "Albatron Technology", "ALBATRON" }, { 0x000A49, "F5 Networks, Inc.", "F5-NETWORKS" }, { 0x000A4A, "Targa Systems Ltd.", "TARGA" }, { 0x000A4B, "DataPower Technology, Inc.", "DATAPOWER" }, { 0x000A4C, "Molecular Devices Corporation", "MOLECULAR-DEVICES" }, { 0x000A4D, "Noritz Corporation", "NORITZ" }, { 0x000A4E, "UNITEK Electronics INC.", "UNITEK-ELECTRONICS" }, { 0x000A4F, "Brain Boxes Limited", "BRAIN-BOXES" }, { 0x000A50, "REMOTEK CORPORATION", "REMOTEK" }, { 0x000A51, "GyroSignal Technology Co., Ltd.", "GYROSIGNAL" }, { 0x000A52, "AsiaRF Ltd.", "ASIARF" }, { 0x000A53, "Intronics, Incorporated", "INTRONICS-INCORPORATED" }, { 0x000A54, "Laguna Hills, Inc.", "LAGUNA-HILLS" }, { 0x000A55, "MARKEM Corporation", "MARKEM" }, { 0x000A56, "HITACHI Maxell Ltd.", "HITACHI-MAXELL" }, { 0x000A57, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x000A58, "Freyer & Siegel Elektronik GmbH & Co. KG", "FREYER-SIEGEL-ELEKTRONIK" }, { 0x000A59, "HW server", "HW-SERVER" }, { 0x000A5A, "GreenNET Technologies Co.,Ltd.", "GREENNET-TECHNOLOGIES" }, { 0x000A5B, "Power-One as", "POWER-ONE-AS" }, { 0x000A5C, "Carel s.p.a.", "CAREL" }, { 0x000A5D, "FingerTec Worldwide Sdn Bhd", "FINGERTEC-WORLDWIDE" }, { 0x000A5E, "3COM", "3COM" }, { 0x000A5F, "almedio inc.", "ALMEDIO" }, { 0x000A60, "Autostar Technology Pte Ltd", "AUTOSTAR-PTE" }, { 0x000A61, "Cellinx Systems Inc.", "CELLINX" }, { 0x000A62, "Crinis Networks, Inc.", "CRINIS-NETWORKS" }, { 0x000A63, "DHD GmbH", "DHD" }, { 0x000A64, "Eracom Technologies", "ERACOM-TECHNOLOGIES" }, { 0x000A65, "GentechMedia.co.,ltd.", "GENTECHMEDIA" }, { 0x000A66, "MITSUBISHI ELECTRIC SYSTEM & SERVICE CO.,LTD.", "MITSUBISHI-ELECTRIC-SYSTEM-SERVICE" }, { 0x000A67, "OngCorp", "ONGCORP" }, { 0x000A68, "Solarflare Communications Inc.", "SOLARFLARE-COMMUNICATION" }, { 0x000A69, "SUNNY bell Technology Co., Ltd.", "SUNNY-BELL" }, { 0x000A6A, "SVM Microwaves s.r.o.", "SVM-MICROWAVES-S-R-O" }, { 0x000A6B, "Tadiran Telecom Business Systems LTD", "TADIRAN-TELECOM-BUSINESS" }, { 0x000A6C, "Walchem Corporation", "WALCHEM" }, { 0x000A6D, "EKS Elektronikservice GmbH", "EKS-ELEKTRONIKSERVICE" }, { 0x000A6E, "Harmonic, Inc", "HARMONIC" }, { 0x000A6F, "ZyFLEX Technologies Inc", "ZYFLEX-TECHNOLOGIES" }, { 0x000A70, "MPLS Forum", "MPLS-FORUM" }, { 0x000A71, "Avrio Technologies, Inc", "AVRIO-TECHNOLOGIES" }, { 0x000A72, "STEC, INC.", "STEC" }, { 0x000A73, "Scientific Atlanta", "SCIENTIFIC-ATLANTA" }, { 0x000A74, "Manticom Networks Inc.", "MANTICOM-NETWORKS" }, { 0x000A75, "Caterpillar, Inc", "CATERPILLAR" }, { 0x000A76, "Beida Jade Bird Huaguang Technology Co.,Ltd", "BEIDA-JADE-BIRD-HUAGUANG" }, { 0x000A77, "Bluewire Technologies LLC", "BLUEWIRE-TECHNOLOGIES" }, { 0x000A78, "OLITEC", "OLITEC" }, { 0x000A79, "corega K.K", "COREGA-K-K" }, { 0x000A7A, "Kyoritsu Electric Co., Ltd.", "KYORITSU-ELECTRIC" }, { 0x000A7B, "Cornelius Consult", "CORNELIUS-CONSULT" }, { 0x000A7C, "Tecton Ltd", "TECTON" }, { 0x000A7D, "Valo, Inc.", "VALO" }, { 0x000A7E, "The Advantage Group", "THE-ADVANTAGE-GROUP" }, { 0x000A7F, "Teradon Industries, Inc", "TERADON-INDUSTRIES" }, { 0x000A80, "Telkonet Inc.", "TELKONET" }, { 0x000A81, "TEIMA Audiotex S.L.", "TEIMA-AUDIOTEX" }, { 0x000A82, "TATSUTA SYSTEM ELECTRONICS CO.,LTD.", "TATSUTA-SYSTEM-ELECTRONICS" }, { 0x000A83, "SALTO SYSTEMS S.L.", "SALTO" }, { 0x000A84, "Rainsun Enterprise Co., Ltd.", "RAINSUN" }, { 0x000A85, "PLAT'C2,Inc", "PLAT-C2" }, { 0x000A86, "Lenze", "LENZE" }, { 0x000A87, "Integrated Micromachines Inc.", "INTEGRATED-MICROMACHINES" }, { 0x000A88, "InCypher S.A.", "INCYPHER" }, { 0x000A89, "Creval Systems, Inc.", "CREVAL" }, { 0x000A8A, "Cisco Systems, Inc", "CISCO" }, { 0x000A8B, "Cisco Systems, Inc", "CISCO" }, { 0x000A8C, "Guardware Systems Ltd.", "GUARDWARE" }, { 0x000A8D, "EUROTHERM LIMITED", "EUROTHERM" }, { 0x000A8E, "Invacom Ltd", "INVACOM" }, { 0x000A8F, "Aska International Inc.", "ASKA" }, { 0x000A90, "Bayside Interactive, Inc.", "BAYSIDE-INTERACTIVE" }, { 0x000A91, "HemoCue AB", "HEMOCUE-AB" }, { 0x000A92, "Presonus Corporation", "PRESONUS" }, { 0x000A93, "W2 Networks, Inc.", "W2-NETWORKS" }, { 0x000A94, "ShangHai cellink CO., LTD", "SHANGHAI-CELLINK" }, { 0x000A95, "Apple, Inc.", "APPLE" }, { 0x000A96, "MEWTEL TECHNOLOGY INC.", "MEWTEL" }, { 0x000A97, "SONICblue, Inc.", "SONICBLUE" }, { 0x000A98, "M+F Gwinner GmbH & Co", "M+F-GWINNER" }, { 0x000A99, "Calamp Wireless Networks Inc", "CALAMP-WIRELESS-NETWORKS" }, { 0x000A9A, "Aiptek International Inc", "AIPTEK" }, { 0x000A9B, "TB Group Inc", "TB-GROUP" }, { 0x000A9C, "Server Technology, Inc.", "SERVER" }, { 0x000A9D, "King Young Technology Co. Ltd.", "KING-YOUNG" }, { 0x000A9E, "BroadWeb Corportation", "BROADWEB-CORPORTATION" }, { 0x000A9F, "Pannaway Technologies, Inc.", "PANNAWAY-TECHNOLOGIES" }, { 0x000AA0, "Cedar Point Communications", "CEDAR-POINT-COMMUNICATION" }, { 0x000AA1, "V V S Limited", "V-V-S" }, { 0x000AA2, "SYSTEK INC.", "SYSTEK" }, { 0x000AA3, "SHIMAFUJI ELECTRIC CO.,LTD.", "SHIMAFUJI-ELECTRIC" }, { 0x000AA4, "SHANGHAI SURVEILLANCE TECHNOLOGY CO,LTD", "SHANGHAI-SURVEILLANCE" }, { 0x000AA5, "MAXLINK INDUSTRIES LIMITED", "MAXLINK-INDUSTRIES" }, { 0x000AA6, "Hochiki Corporation", "HOCHIKI" }, { 0x000AA7, "FEI Electron Optics", "FEI-ELECTRON-OPTICS" }, { 0x000AA8, "ePipe Pty. Ltd.", "EPIPE-PTY" }, { 0x000AA9, "Brooks Automation GmbH", "BROOKS-AUTOMATION" }, { 0x000AAA, "AltiGen Communications Inc.", "ALTIGEN-COMMUNICATION" }, { 0x000AAB, "Toyota Technical Development Corporation", "TOYOTA-TECHNICAL-DEVELOPMENT" }, { 0x000AAC, "TerraTec Electronic GmbH", "TERRATEC" }, { 0x000AAD, "Stargames Corporation", "STARGAMES" }, { 0x000AAE, "Rosemount Process Analytical", "ROSEMOUNT-PROCESS-ANALYTICAL" }, { 0x000AAF, "Pipal Systems", "PIPAL" }, { 0x000AB0, "LOYTEC electronics GmbH", "LOYTEC-ELECTRONICS" }, { 0x000AB1, "GENETEC Corporation", "GENETEC" }, { 0x000AB2, "Fresnel Wireless Systems", "FRESNEL-WIRELESS" }, { 0x000AB3, "Fa. GIRA", "FA-GIRA" }, { 0x000AB4, "ETIC Telecommunications", "ETIC-TELECOMMUNICATIONS" }, { 0x000AB5, "Digital Electronic Network", "DIGITAL-NETWORK" }, { 0x000AB6, "COMPUNETIX, INC", "COMPUNETIX" }, { 0x000AB7, "Cisco Systems, Inc", "CISCO" }, { 0x000AB8, "Cisco Systems, Inc", "CISCO" }, { 0x000AB9, "Astera Technologies Corp.", "ASTERA-TECHNOLOGIES" }, { 0x000ABA, "Arcon Technology Limited", "ARCON" }, { 0x000ABB, "Taiwan Secom Co,. Ltd", "TAIWAN-SECOM" }, { 0x000ABC, "Seabridge Ltd.", "SEABRIDGE" }, { 0x000ABD, "Rupprecht & Patashnick Co.", "RUPPRECHT-PATASHNICK" }, { 0x000ABE, "OPNET Technologies CO., LTD.", "OPNET-TECHNOLOGIES" }, { 0x000ABF, "HIROTA SS", "HIROTA-SS" }, { 0x000AC0, "Fuyoh Video Industry CO., LTD.", "FUYOH-VIDEO-INDUSTRY" }, { 0x000AC1, "Futuretel", "FUTURETEL" }, { 0x000AC2, "Wuhan FiberHome Digital Technology Co.,Ltd.", "WUHAN-FIBERHOME-DIGITAL" }, { 0x000AC3, "eM Technics Co., Ltd.", "EM-TECHNICS" }, { 0x000AC4, "Daewoo Teletech Co., Ltd", "DAEWOO-TELETECH" }, { 0x000AC5, "Color Kinetics", "COLOR-KINETICS" }, { 0x000AC6, "Overture Networks.", "OVERTURE-NETWORKS" }, { 0x000AC7, "Unication Group", "UNICATION-GROUP" }, { 0x000AC8, "ZPSYS CO.,LTD. (Planning&Management)", "ZPSYS-PLANNING-MANAGEMENT" }, { 0x000AC9, "Zambeel Inc", "ZAMBEEL" }, { 0x000ACA, "YOKOYAMA SHOKAI CO.,Ltd.", "YOKOYAMA-SHOKAI" }, { 0x000ACB, "XPAK MSA Group", "XPAK-MSA-GROUP" }, { 0x000ACC, "Winnow Networks, Inc.", "WINNOW-NETWORKS" }, { 0x000ACD, "Sunrich Technology Limited", "SUNRICH" }, { 0x000ACE, "RADIANTECH, INC.", "RADIANTECH" }, { 0x000ACF, "PROVIDEO Multimedia Co. Ltd.", "PROVIDEO-MULTIMEDIA" }, { 0x000AD0, "Niigata Develoment Center, F.I.T. Co., Ltd.", "NIIGATA-DEVELOMENT-CENTER-F-I-T" }, { 0x000AD1, "MWS", "MWS" }, { 0x000AD2, "JEPICO Corporation", "JEPICO" }, { 0x000AD3, "INITECH Co., Ltd", "INITECH" }, { 0x000AD4, "CoreBell Systems Inc.", "COREBELL" }, { 0x000AD5, "Brainchild Electronic Co., Ltd.", "BRAINCHILD" }, { 0x000AD6, "BeamReach Networks", "BEAMREACH-NETWORKS" }, { 0x000AD7, "Origin ELECTRIC CO.,LTD.", "ORIGIN-ELECTRIC" }, { 0x000AD8, "IPCserv Technology Corp.", "IPCSERV" }, { 0x000AD9, "Sony Corporation", "SONY" }, { 0x000ADA, "Vindicator Technologies", "VINDICATOR-TECHNOLOGIES" }, { 0x000ADB, "Trilliant", "TRILLIANT" }, { 0x000ADC, "RuggedCom Inc.", "RUGGEDCOM" }, { 0x000ADD, "Allworx Corp.", "ALLWORX" }, { 0x000ADE, "Happy Communication Co., Ltd.", "HAPPY-COMMUNICATION" }, { 0x000ADF, "Gennum Corporation", "GENNUM" }, { 0x000AE0, "Fujitsu Softek", "FUJITSU-SOFTEK" }, { 0x000AE1, "EG Technology", "EG" }, { 0x000AE2, "Binatone Electronics International, Ltd", "BINATONE-ELECTRONICS" }, { 0x000AE3, "YANG MEI TECHNOLOGY CO., LTD", "YANG-MEI" }, { 0x000AE4, "Wistron Corporation", "WISTRON" }, { 0x000AE5, "ScottCare Corporation", "SCOTTCARE" }, { 0x000AE6, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x000AE7, "ELIOP S.A.", "ELIOP" }, { 0x000AE8, "Cathay Roxus Information Technology Co. LTD", "CATHAY-ROXUS-INFORMATION" }, { 0x000AE9, "AirVast Technology Inc.", "AIRVAST" }, { 0x000AEA, "ADAM ELEKTRONIK LTD. ŞTI", "ADAM-ELEKTRONIK-TI" }, { 0x000AEB, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x000AEC, "Koatsu Gas Kogyo Co., Ltd.", "KOATSU-GAS-KOGYO" }, { 0x000AED, "HARTING Electronics GmbH", "HARTING-ELECTRONICS" }, { 0x000AEE, "GCD Hard- & Software GmbH", "GCD-HARD-SOFTWARE" }, { 0x000AEF, "OTRUM ASA", "OTRUM-ASA" }, { 0x000AF0, "SHIN-OH ELECTRONICS CO., LTD. R&D", "SHIN-OH-ELECTRONICS-R-D" }, { 0x000AF1, "Clarity Design, Inc.", "CLARITY-DESIGN" }, { 0x000AF2, "NeoAxiom Corp.", "NEOAXIOM" }, { 0x000AF3, "Cisco Systems, Inc", "CISCO" }, { 0x000AF4, "Cisco Systems, Inc", "CISCO" }, { 0x000AF5, "Airgo Networks, Inc.", "AIRGO-NETWORKS" }, { 0x000AF6, "Emerson Climate Technologies Retail Solutions, Inc.", "EMERSON-CLIMATE-TECHNOLOGIES-RETAIL-SOLUTIONS" }, { 0x000AF7, "Broadcom", "BROADCOM" }, { 0x000AF8, "American Telecare Inc.", "AMERICAN-TELECARE" }, { 0x000AF9, "HiConnect, Inc.", "HICONNECT" }, { 0x000AFA, "Traverse Technologies Australia", "TRAVERSE-TECHNOLOGIES-AUSTRALIA" }, { 0x000AFB, "Ambri Limited", "AMBRI" }, { 0x000AFC, "Core Tec Communications, LLC", "CORE-TEC-COMMUNICATION" }, { 0x000AFD, "Kentec Electronics", "KENTEC-ELECTRONICS" }, { 0x000AFE, "NovaPal Ltd", "NOVAPAL" }, { 0x000AFF, "Kilchherr Elektronik AG", "KILCHHERR-ELEKTRONIK" }, { 0x000B00, "FUJIAN START COMPUTER EQUIPMENT CO.,LTD", "FUJIAN-START-EQUIPMENT" }, { 0x000B01, "DAIICHI ELECTRONICS CO., LTD.", "DAIICHI-ELECTRONICS" }, { 0x000B02, "Dallmeier electronic", "DALLMEIER" }, { 0x000B03, "Taekwang Industrial Co., Ltd", "TAEKWANG-INDUSTRIAL" }, { 0x000B04, "Volktek Corporation", "VOLKTEK" }, { 0x000B05, "Pacific Broadband Networks", "PACIFIC-BROADBAND-NETWORKS" }, { 0x000B06, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x000B07, "Voxpath Networks", "VOXPATH-NETWORKS" }, { 0x000B08, "Pillar Data Systems", "PILLAR-DATA" }, { 0x000B09, "Ifoundry Systems Singapore", "IFOUNDRY-SINGAPORE" }, { 0x000B0A, "dBm Optics", "DBM-OPTICS" }, { 0x000B0B, "Corrent Corporation", "CORRENT" }, { 0x000B0C, "Agile Systems Inc.", "AGILE" }, { 0x000B0D, "Air2U, Inc.", "AIR2U" }, { 0x000B0E, "Trapeze Networks", "TRAPEZE-NETWORKS" }, { 0x000B0F, "Bosch Rexroth", "BOSCH-REXROTH" }, { 0x000B10, "11wave Technonlogy Co.,Ltd", "11WAVE-TECHNONLOGY" }, { 0x000B11, "HIMEJI ABC TRADING CO.,LTD.", "HIMEJI-ABC-TRADING" }, { 0x000B12, "NURI Telecom Co., Ltd.", "NURI-TELECOM" }, { 0x000B13, "ZETRON INC", "ZETRON" }, { 0x000B14, "ViewSonic Corporation", "VIEWSONIC" }, { 0x000B15, "Platypus Technology", "PLATYPUS" }, { 0x000B16, "Communication Machinery Corporation", "COMMUNICATION-MACHINERY" }, { 0x000B17, "MKS Instruments", "MKS-INSTRUMENTS" }, { 0x000B18, "Private", "PRIVATE" }, { 0x000B19, "Vernier Networks, Inc.", "VERNIER-NETWORKS" }, { 0x000B1A, "Industrial Defender, Inc.", "INDUSTRIAL-DEFENDER" }, { 0x000B1B, "Systronix, Inc.", "SYSTRONIX" }, { 0x000B1C, "SIBCO bv", "SIBCO" }, { 0x000B1D, "LayerZero Power Systems, Inc.", "LAYERZERO-POWER" }, { 0x000B1E, "KAPPA opto-electronics GmbH", "KAPPA-OPTO-ELECTRONICS" }, { 0x000B1F, "I CON Computer Co.", "I-CON" }, { 0x000B20, "Hirata corporation", "HIRATA" }, { 0x000B21, "G-Star Communications Inc.", "G-STAR-COMMUNICATION" }, { 0x000B22, "Environmental Systems and Services", "ENVIRONMENTAL-AND-SERVICES" }, { 0x000B23, "Siemens Home & Office Comm. Devices", "SIEMENS-HOME-OFFICE-COMM-DEVICES" }, { 0x000B24, "AirLogic", "AIRLOGIC" }, { 0x000B25, "Aeluros", "AELUROS" }, { 0x000B26, "Wetek Corporation", "WETEK" }, { 0x000B27, "Scion Corporation", "SCION" }, { 0x000B28, "Quatech Inc.", "QUATECH" }, { 0x000B29, "LS(LG) Industrial Systems co.,Ltd", "LS-LG-INDUSTRIAL" }, { 0x000B2A, "HOWTEL Co., Ltd.", "HOWTEL" }, { 0x000B2B, "HOSTNET CORPORATION", "HOSTNET" }, { 0x000B2C, "Eiki Industrial Co. Ltd.", "EIKI-INDUSTRIAL" }, { 0x000B2D, "Danfoss Inc.", "DANFOSS" }, { 0x000B2E, "Cal-Comp Electronics & Communications Company Ltd.", "CAL-COMP-ELECTRONICS-COMMUNICATION-COMPANY" }, { 0x000B2F, "bplan GmbH", "BPLAN" }, { 0x000B30, "Beijing Gongye Science & Technology Co.,Ltd", "BEIJING-GONGYE-SCIENCE" }, { 0x000B31, "Yantai ZhiYang Scientific and technology industry CO., LTD", "YANTAI-ZHIYANG-SCIENTIFIC-AND-INDUSTRY" }, { 0x000B32, "VORMETRIC, INC.", "VORMETRIC" }, { 0x000B33, "Vivato Technologies", "VIVATO-TECHNOLOGIES" }, { 0x000B34, "ShangHai Broadband Technologies CO.LTD", "SHANGHAI-BROADBAND-TECHNOLOGIES" }, { 0x000B35, "Quad Bit System co., Ltd.", "QUAD-BIT-SYSTEM" }, { 0x000B36, "Productivity Systems, Inc.", "PRODUCTIVITY" }, { 0x000B37, "MANUFACTURE DES MONTRES ROLEX SA", "MANUFACTURE-DES-MONTRES-ROLEX" }, { 0x000B38, "Knürr GmbH", "KNUERR" }, { 0x000B39, "Keisoku Giken Co.,Ltd.", "KEISOKU-GIKEN" }, { 0x000B3A, "PESA Inc.", "PESA" }, { 0x000B3B, "devolo AG", "DEVOLO" }, { 0x000B3C, "Cygnal Integrated Products, Inc.", "CYGNAL-INTEGRATED-PRODUCTS" }, { 0x000B3D, "CONTAL OK Ltd.", "CONTAL-OK" }, { 0x000B3E, "BittWare, Inc", "BITTWARE" }, { 0x000B3F, "Anthology Solutions Inc.", "ANTHOLOGY-SOLUTIONS" }, { 0x000B40, "Cambridge Industries Group (CIG)", "CAMBRIDGE-INDUSTRIES-GROUP-CIG" }, { 0x000B41, "Ing. Büro Dr. Beutlhauser", "ING-BUERO-DR-BEUTLHAUSER" }, { 0x000B42, "commax Co., Ltd.", "COMMAX" }, { 0x000B43, "Microscan Systems, Inc.", "MICROSCAN" }, { 0x000B44, "Concord Idea Corp.", "CONCORD-IDEA" }, { 0x000B45, "Cisco Systems, Inc", "CISCO" }, { 0x000B46, "Cisco Systems, Inc", "CISCO" }, { 0x000B47, "Advanced Energy", "ADVANCED-ENERGY" }, { 0x000B48, "sofrel", "SOFREL" }, { 0x000B49, "RF-Link System Inc.", "RF-LINK-SYSTEM" }, { 0x000B4A, "Visimetrics (UK) Ltd", "VISIMETRICS-UK" }, { 0x000B4B, "VISIOWAVE SA", "VISIOWAVE" }, { 0x000B4C, "Clarion (M) Sdn Bhd", "CLARION-M" }, { 0x000B4D, "Emuzed", "EMUZED" }, { 0x000B4E, "Communications & Power Industries", "COMMUNICATION-POWER-INDUSTRIES" }, { 0x000B4F, "Verifone", "VERIFONE" }, { 0x000B50, "Oxygnet", "OXYGNET" }, { 0x000B51, "Micetek International Inc.", "MICETEK" }, { 0x000B52, "JOYMAX ELECTRONICS CO. LTD.", "JOYMAX-ELECTRONICS" }, { 0x000B53, "INITIUM Co., Ltd.", "INITIUM" }, { 0x000B54, "BiTMICRO Networks, Inc.", "BITMICRO-NETWORKS" }, { 0x000B55, "ADInstruments", "ADINSTRUMENTS" }, { 0x000B56, "Cybernetics", "CYBERNETICS" }, { 0x000B57, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x000B58, "Astronautics C.A LTD", "ASTRONAUTICS-C-A" }, { 0x000B59, "ScriptPro, LLC", "SCRIPTPRO" }, { 0x000B5A, "HyperEdge", "HYPEREDGE" }, { 0x000B5B, "Rincon Research Corporation", "RINCON-RESEARCH" }, { 0x000B5C, "Newtech Co.,Ltd", "NEWTECH" }, { 0x000B5D, "FUJITSU LIMITED", "FUJITSU" }, { 0x000B5E, "Audio Engineering Society Inc.", "AUDIO-ENGINEERING-SOCIETY" }, { 0x000B5F, "Cisco Systems, Inc", "CISCO" }, { 0x000B60, "Cisco Systems, Inc", "CISCO" }, { 0x000B61, "Friedrich Lütze GmbH & Co. KG", "FRIEDRICH-LUETZE" }, { 0x000B62, "ib-mohnen KG", "IB-MOHNEN" }, { 0x000B63, "Kaleidescape", "KALEIDESCAPE" }, { 0x000B64, "Kieback & Peter GmbH & Co KG", "KIEBACK-PETER" }, { 0x000B65, "Sy.A.C. srl", "SY-A-C-SRL" }, { 0x000B66, "Teralink Communications", "TERALINK-COMMUNICATION" }, { 0x000B67, "Topview Technology Corporation", "TOPVIEW" }, { 0x000B68, "Addvalue Communications Pte Ltd", "ADDVALUE-COMMUNICATION-PTE" }, { 0x000B69, "Franke Finland Oy", "FRANKE-FINLAND-OY" }, { 0x000B6A, "Asiarock Technology Limited", "ASIAROCK" }, { 0x000B6B, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x000B6C, "Sychip Inc.", "SYCHIP" }, { 0x000B6D, "SOLECTRON JAPAN NAKANIIDA", "SOLECTRON-JAPAN-NAKANIIDA" }, { 0x000B6E, "Neff Instrument Corp.", "NEFF-INSTRUMENT" }, { 0x000B6F, "Media Streaming Networks Inc", "MEDIA-STREAMING-NETWORKS" }, { 0x000B70, "Load Technology, Inc.", "LOAD" }, { 0x000B71, "Litchfield Communications Inc.", "LITCHFIELD-COMMUNICATION" }, { 0x000B72, "Lawo AG", "LAWO" }, { 0x000B73, "Kodeos Communications", "KODEOS-COMMUNICATION" }, { 0x000B74, "Kingwave Technology Co., Ltd.", "KINGWAVE" }, { 0x000B75, "Iosoft Ltd.", "IOSOFT" }, { 0x000B76, "ET&T Technology Co. Ltd.", "ET-T" }, { 0x000B77, "Cogent Systems, Inc.", "COGENT" }, { 0x000B78, "TAIFATECH INC.", "TAIFATECH" }, { 0x000B79, "X-COM, Inc.", "X-COM" }, { 0x000B7A, "L-3 Linkabit", "L-3-LINKABIT" }, { 0x000B7B, "Test-Um Inc.", "TEST-UM" }, { 0x000B7C, "Telex Communications", "TELEX-COMMUNICATION" }, { 0x000B7D, "SOLOMON EXTREME INTERNATIONAL LTD.", "SOLOMON-EXTREME" }, { 0x000B7E, "SAGINOMIYA Seisakusho Inc.", "SAGINOMIYA-SEISAKUSHO" }, { 0x000B7F, "Align Engineering LLC", "ALIGN-ENGINEERING" }, { 0x000B80, "Lycium Networks", "LYCIUM-NETWORKS" }, { 0x000B81, "Kaparel Corporation", "KAPAREL" }, { 0x000B82, "Grandstream Networks, Inc.", "GRANDSTREAM-NETWORKS" }, { 0x000B83, "DATAWATT B.V.", "DATAWATT-B-V" }, { 0x000B84, "BODET", "BODET" }, { 0x000B85, "Cisco Systems, Inc", "CISCO" }, { 0x000B86, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x000B87, "American Reliance Inc.", "AMERICAN-RELIANCE" }, { 0x000B88, "Vidisco ltd.", "VIDISCO" }, { 0x000B89, "Top Global Technology, Ltd.", "TOP-GLOBAL" }, { 0x000B8A, "MITEQ Inc.", "MITEQ" }, { 0x000B8B, "KERAJET, S.A.", "KERAJET" }, { 0x000B8C, "Flextronics", "FLEXTRONICS" }, { 0x000B8D, "Avvio Networks", "AVVIO-NETWORKS" }, { 0x000B8E, "Ascent Corporation", "ASCENT" }, { 0x000B8F, "AKITA ELECTRONICS SYSTEMS CO.,LTD.", "AKITA-ELECTRONICS" }, { 0x000B90, "ADVA Optical Networking Ltd.", "ADVA-OPTICAL-NETWORKING" }, { 0x000B91, "Aglaia Gesellschaft für Bildverarbeitung und Kommunikation mbH", "AGLAIA-GESELLSCHAFT-FUER-BILDVERARBEITUNG-UND-KOMMUNIKATION" }, { 0x000B92, "Ascom Danmark A/S", "ASCOM-DANMARK-A/S" }, { 0x000B93, "Ritter Elektronik", "RITTER-ELEKTRONIK" }, { 0x000B94, "Digital Monitoring Products, Inc.", "DIGITAL-MONITORING-PRODUCTS" }, { 0x000B95, "eBet Gaming Systems Pty Ltd", "EBET-GAMING-PTY" }, { 0x000B96, "Innotrac Diagnostics Oy", "INNOTRAC-DIAGNOSTICS-OY" }, { 0x000B97, "Matsushita Electric Industrial Co.,Ltd.", "MATSUSHITA-ELECTRIC-INDUSTRIAL" }, { 0x000B98, "NiceTechVision", "NICETECHVISION" }, { 0x000B99, "SensAble Technologies, Inc.", "SENSABLE-TECHNOLOGIES" }, { 0x000B9A, "Shanghai Ulink Telecom Equipment Co. Ltd.", "SHANGHAI-ULINK-TELECOM-EQUIPMENT" }, { 0x000B9B, "Sirius System Co, Ltd.", "SIRIUS-SYSTEM" }, { 0x000B9C, "TriBeam Technologies, Inc.", "TRIBEAM-TECHNOLOGIES" }, { 0x000B9D, "TwinMOS Technologies Inc.", "TWINMOS-TECHNOLOGIES" }, { 0x000B9E, "Yasing Technology Corp.", "YASING" }, { 0x000B9F, "Neue ELSA GmbH", "NEUE-ELSA" }, { 0x000BA0, "T&L Information Inc.", "T-L-INFORMATION" }, { 0x000BA1, "Fujikura Solutions Ltd.", "FUJIKURA-SOLUTIONS" }, { 0x000BA2, "Sumitomo Electric Industries, Ltd", "SUMITOMO-ELECTRIC-INDUSTRIES" }, { 0x000BA3, "Siemens AG", "SIEMENS" }, { 0x000BA4, "Shiron Satellite Communications Ltd. (1996)", "SHIRON-SATELLITE-COMMUNICATION-1996" }, { 0x000BA5, "Quasar Cipta Mandiri, PT", "QUASAR-CIPTA-MANDIRI-PT" }, { 0x000BA6, "Miyakawa Electric Works Ltd.", "MIYAKAWA-ELECTRIC-WORKS" }, { 0x000BA7, "Maranti Networks", "MARANTI-NETWORKS" }, { 0x000BA8, "HANBACK ELECTRONICS CO., LTD.", "HANBACK-ELECTRONICS" }, { 0x000BA9, "CloudShield Technologies, Inc.", "CLOUDSHIELD-TECHNOLOGIES" }, { 0x000BAA, "Aiphone co.,Ltd", "AIPHONE" }, { 0x000BAB, "Advantech Technology (CHINA) Co., Ltd.", "ADVANTECH-CHINA" }, { 0x000BAC, "3Com Ltd", "3COM" }, { 0x000BAD, "PC-PoS Inc.", "PC-POS" }, { 0x000BAE, "Vitals System Inc.", "VITALS-SYSTEM" }, { 0x000BAF, "WOOJU COMMUNICATIONS Co,.Ltd", "WOOJU-COMMUNICATION" }, { 0x000BB0, "Sysnet Telematica srl", "SYSNET-TELEMATICA-SRL" }, { 0x000BB1, "Super Star Technology Co., Ltd.", "SUPER-STAR" }, { 0x000BB2, "SMALLBIG TECHNOLOGY", "SMALLBIG" }, { 0x000BB3, "RiT technologies Ltd.", "RIT-TECHNOLOGIES" }, { 0x000BB4, "RDC Semiconductor Inc.,", "RDC-SEMICONDUCTOR" }, { 0x000BB5, "nStor Technologies, Inc.", "NSTOR-TECHNOLOGIES" }, { 0x000BB6, "Metalligence Technology Corp.", "METALLIGENCE" }, { 0x000BB7, "Micro Systems Co.,Ltd.", "MICRO" }, { 0x000BB8, "Kihoku Electronic Co.", "KIHOKU" }, { 0x000BB9, "Imsys AB", "IMSYS-AB" }, { 0x000BBA, "Harmonic, Inc", "HARMONIC" }, { 0x000BBB, "Etin Systems Co., Ltd", "ETIN" }, { 0x000BBC, "En Garde Systems, Inc.", "EN-GARDE" }, { 0x000BBD, "Connexionz Limited", "CONNEXIONZ" }, { 0x000BBE, "Cisco Systems, Inc", "CISCO" }, { 0x000BBF, "Cisco Systems, Inc", "CISCO" }, { 0x000BC0, "China IWNComm Co., Ltd.", "CHINA-IWNCOMM" }, { 0x000BC1, "Bay Microsystems, Inc.", "BAY-MICROSYSTEMS" }, { 0x000BC2, "Corinex Communication Corp.", "CORINEX-COMMUNICATION" }, { 0x000BC3, "Multiplex, Inc.", "MULTIPLEX" }, { 0x000BC4, "BIOTRONIK GmbH & Co", "BIOTRONIK" }, { 0x000BC5, "SMC Networks, Inc.", "SMC-NETWORKS" }, { 0x000BC6, "ISAC, Inc.", "ISAC" }, { 0x000BC7, "ICET S.p.A.", "ICET" }, { 0x000BC8, "AirFlow Networks", "AIRFLOW-NETWORKS" }, { 0x000BC9, "Electroline Equipment", "ELECTROLINE-EQUIPMENT" }, { 0x000BCA, "DATAVAN TC", "DATAVAN-TC" }, { 0x000BCB, "Fagor Automation , S. Coop", "FAGOR-AUTOMATION-S-COOP" }, { 0x000BCC, "JUSAN, S.A.", "JUSAN" }, { 0x000BCD, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x000BCE, "Free2move AB", "FREE2MOVE-AB" }, { 0x000BCF, "AGFA NDT INC.", "AGFA-NDT" }, { 0x000BD0, "XiMeta Technology Americas Inc.", "XIMETA-AMERICAS" }, { 0x000BD1, "Aeronix, Inc.", "AERONIX" }, { 0x000BD2, "Remopro Technology Inc.", "REMOPRO" }, { 0x000BD3, "cd3o", "CD3O" }, { 0x000BD4, "Beijing Wise Technology & Science Development Co.Ltd", "BEIJING-WISE-SCIENCE-DEVELOPMENT" }, { 0x000BD5, "Nvergence, Inc.", "NVERGENCE" }, { 0x000BD6, "Paxton Access Ltd", "PAXTON-ACCESS" }, { 0x000BD7, "DORMA Time + Access GmbH", "DORMA-TIME-+-ACCESS" }, { 0x000BD8, "Industrial Scientific Corp.", "INDUSTRIAL-SCIENTIFIC" }, { 0x000BD9, "General Hydrogen", "GENERAL-HYDROGEN" }, { 0x000BDA, "EyeCross Co.,Inc.", "EYECROSS" }, { 0x000BDB, "Dell Inc.", "DELL" }, { 0x000BDC, "AKCP", "AKCP" }, { 0x000BDD, "TOHOKU RICOH Co., LTD.", "TOHOKU-RICOH" }, { 0x000BDE, "TELDIX GmbH", "TELDIX" }, { 0x000BDF, "Shenzhen RouterD Networks Limited", "SHENZHEN-ROUTERD-NETWORKS" }, { 0x000BE0, "SercoNet Ltd.", "SERCONET" }, { 0x000BE1, "Nokia NET Product Operations", "NOKIA-NET-PRODUCT-OPERATIONS" }, { 0x000BE2, "Lumenera Corporation", "LUMENERA" }, { 0x000BE3, "Key Stream Co., Ltd.", "KEY-STREAM" }, { 0x000BE4, "Hosiden Corporation", "HOSIDEN" }, { 0x000BE5, "HIMS International Corporation", "HIMS" }, { 0x000BE6, "Datel Electronics", "DATEL-ELECTRONICS" }, { 0x000BE7, "COMFLUX TECHNOLOGY INC.", "COMFLUX" }, { 0x000BE8, "AOIP", "AOIP" }, { 0x000BE9, "Actel Corporation", "ACTEL" }, { 0x000BEA, "Zultys Technologies", "ZULTYS-TECHNOLOGIES" }, { 0x000BEB, "Systegra AG", "SYSTEGRA" }, { 0x000BEC, "NIPPON ELECTRIC INSTRUMENT, INC.", "NIPPON-ELECTRIC-INSTRUMENT" }, { 0x000BED, "ELM Inc.", "ELM" }, { 0x000BEE, "inc.jet, Incorporated", "JET-INCORPORATED" }, { 0x000BEF, "Code Corporation", "CODE" }, { 0x000BF0, "MoTEX Products Co., Ltd.", "MOTEX-PRODUCTS" }, { 0x000BF1, "LAP Laser Applikations", "LAP-LASER-APPLIKATIONS" }, { 0x000BF2, "Chih-Kan Technology Co., Ltd.", "CHIH-KAN" }, { 0x000BF3, "BAE SYSTEMS", "BAE" }, { 0x000BF4, "Private", "PRIVATE" }, { 0x000BF5, "Shanghai Sibo Telecom Technology Co.,Ltd", "SHANGHAI-SIBO-TELECOM" }, { 0x000BF6, "Nitgen Co., Ltd", "NITGEN" }, { 0x000BF7, "NIDEK CO.,LTD", "NIDEK" }, { 0x000BF8, "Infinera, Inc.", "INFINERA" }, { 0x000BF9, "Gemstone Communications, Inc.", "GEMSTONE-COMMUNICATION" }, { 0x000BFA, "EXEMYS SRL", "EXEMYS-SRL" }, { 0x000BFB, "D-NET International Corporation", "D-NET" }, { 0x000BFC, "Cisco Systems, Inc", "CISCO" }, { 0x000BFD, "Cisco Systems, Inc", "CISCO" }, { 0x000BFE, "CASTEL Broadband Limited", "CASTEL-BROADBAND" }, { 0x000BFF, "Berkeley Camera Engineering", "BERKELEY-CAMERA-ENGINEERING" }, { 0x000C00, "BEB Industrie-Elektronik AG", "BEB-INDUSTRIE-ELEKTRONIK" }, { 0x000C01, "Abatron AG", "ABATRON" }, { 0x000C02, "ABB Oy", "ABB-OY" }, { 0x000C03, "HDMI Licensing, LLC", "HDMI-LICENSING" }, { 0x000C04, "Tecnova", "TECNOVA" }, { 0x000C05, "RPA Reserch Co., Ltd.", "RPA-RESERCH" }, { 0x000C06, "Nixvue Systems Pte Ltd", "NIXVUE-PTE" }, { 0x000C07, "Iftest AG", "IFTEST" }, { 0x000C08, "HUMEX Technologies Corp.", "HUMEX-TECHNOLOGIES" }, { 0x000C09, "Hitachi IE Systems Co., Ltd", "HITACHI-IE" }, { 0x000C0A, "Guangdong Province Electronic Technology Research Institute", "GUANGDONG-PROVINCE-RESEARCH-INSTITUTE" }, { 0x000C0B, "Broadbus Technologies", "BROADBUS-TECHNOLOGIES" }, { 0x000C0C, "APPRO TECHNOLOGY INC.", "APPRO" }, { 0x000C0D, "Communications & Power Industries / Satcom Division", "COMMUNICATION-POWER-INDUSTRIES-/-SATCOM-DIVISION" }, { 0x000C0E, "XtremeSpectrum, Inc.", "XTREMESPECTRUM" }, { 0x000C0F, "Techno-One Co., Ltd", "TECHNO-ONE" }, { 0x000C10, "PNI Corporation", "PNI" }, { 0x000C11, "NIPPON DEMPA CO.,LTD.", "NIPPON-DEMPA" }, { 0x000C12, "Micro-Optronic-Messtechnik GmbH", "MICRO-OPTRONIC-MESSTECHNIK" }, { 0x000C13, "MediaQ", "MEDIAQ" }, { 0x000C14, "Diagnostic Instruments, Inc.", "DIAGNOSTIC-INSTRUMENTS" }, { 0x000C15, "CyberPower Systems, Inc.", "CYBERPOWER" }, { 0x000C16, "Concorde Microsystems Inc.", "CONCORDE-MICROSYSTEMS" }, { 0x000C17, "AJA Video Systems Inc", "AJA-VIDEO" }, { 0x000C18, "Zenisu Keisoku Inc.", "ZENISU-KEISOKU" }, { 0x000C19, "Telio Communications GmbH", "TELIO-COMMUNICATION" }, { 0x000C1A, "Quest Technical Solutions Inc.", "QUEST-TECHNICAL-SOLUTIONS" }, { 0x000C1B, "ORACOM Co, Ltd.", "ORACOM" }, { 0x000C1C, "MicroWeb Co., Ltd.", "MICROWEB" }, { 0x000C1D, "Mettler & Fuchs AG", "METTLER-FUCHS" }, { 0x000C1E, "Global Cache", "GLOBAL-CACHE" }, { 0x000C1F, "Glimmerglass Networks", "GLIMMERGLASS-NETWORKS" }, { 0x000C20, "Fi WIn, Inc.", "FI-WIN" }, { 0x000C21, "Faculty of Science and Technology, Keio University", "FACULTY-OF-SCIENCE-AND-KEIO-UNIVERSITY" }, { 0x000C22, "Double D Electronics Ltd", "DOUBLE-D-ELECTRONICS" }, { 0x000C23, "Beijing Lanchuan Tech. Co., Ltd.", "BEIJING-LANCHUAN-TECH" }, { 0x000C24, "ANATOR", "ANATOR" }, { 0x000C25, "Allied Telesis Labs, Inc.", "ALLIED-TELESIS-LABS" }, { 0x000C26, "Weintek Labs. Inc.", "WEINTEK-LABS" }, { 0x000C27, "Sammy Corporation", "SAMMY" }, { 0x000C28, "RIFATRON", "RIFATRON" }, { 0x000C29, "VMware, Inc. (possible VMware VM)", "VMWARE-VIRTUAL" }, { 0x000C2A, "OCTTEL Communication Co., Ltd.", "OCTTEL-COMMUNICATION" }, { 0x000C2B, "ELIAS Technology, Inc.", "ELIAS" }, { 0x000C2C, "Enwiser Inc.", "ENWISER" }, { 0x000C2D, "FullWave Technology Co., Ltd.", "FULLWAVE" }, { 0x000C2E, "Openet information technology(shenzhen) Co., Ltd.", "OPENET-INFORMATION-SHENZHEN" }, { 0x000C2F, "SeorimTechnology Co.,Ltd.", "SEORIMTECHNOLOGY" }, { 0x000C30, "Cisco Systems, Inc", "CISCO" }, { 0x000C31, "Cisco Systems, Inc", "CISCO" }, { 0x000C32, "Avionic Design GmbH", "AVIONIC-DESIGN" }, { 0x000C33, "Compucase Enterprise Co. Ltd.", "COMPUCASE" }, { 0x000C34, "Vixen Co., Ltd.", "VIXEN" }, { 0x000C35, "KaVo Dental GmbH & Co. KG", "KAVO-DENTAL" }, { 0x000C36, "S-Takaya Electronics Industry Co.,Ltd.", "S-TAKAYA-ELECTRONICS-INDUSTRY" }, { 0x000C37, "Geomation, Inc.", "GEOMATION" }, { 0x000C38, "TelcoBridges Inc.", "TELCOBRIDGES" }, { 0x000C39, "Sentinel Wireless Inc.", "SENTINEL-WIRELESS" }, { 0x000C3A, "Oxance", "OXANCE" }, { 0x000C3B, "Orion Electric Co., Ltd.", "ORION-ELECTRIC" }, { 0x000C3C, "MediaChorus, Inc.", "MEDIACHORUS" }, { 0x000C3D, "Glsystech Co., Ltd.", "GLSYSTECH" }, { 0x000C3E, "Crest Audio", "CREST-AUDIO" }, { 0x000C3F, "Cogent Defence & Security Networks,", "COGENT-DEFENCE-SECURITY-NETWORKS" }, { 0x000C40, "Altech Controls", "ALTECH-CONTROLS" }, { 0x000C41, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x000C42, "Routerboard.com", "ROUTERBOARD-COM" }, { 0x000C43, "Ralink Technology, Corp.", "RALINK" }, { 0x000C44, "Automated Interfaces, Inc.", "AUTOMATED-INTERFACES" }, { 0x000C45, "Animation Technologies Inc.", "ANIMATION-TECHNOLOGIES" }, { 0x000C46, "Allied Telesyn Inc.", "ALLIED-TELESYN" }, { 0x000C47, "SK Teletech(R&D Planning Team)", "SK-TELETECH-R-D-PLANNING-TEAM" }, { 0x000C48, "QoStek Corporation", "QOSTEK" }, { 0x000C49, "Dangaard Telecom Denmark A/S", "DANGAARD-TELECOM-DENMARK-A/S" }, { 0x000C4A, "Cygnus Microsystems (P) Limited", "CYGNUS-MICROSYSTEMS-P" }, { 0x000C4B, "Cheops Elektronik", "CHEOPS-ELEKTRONIK" }, { 0x000C4C, "Arcor AG&Co.", "ARCOR" }, { 0x000C4D, "Curtiss-Wright Controls Avionics & Electronics", "CURTISS-WRIGHT-CONTROLS-AVIONICS-ELECTRONICS" }, { 0x000C4E, "Winbest Technology CO,LT", "WINBEST-LT" }, { 0x000C4F, "UDTech Japan Corporation", "UDTECH-JAPAN" }, { 0x000C50, "Seagate Technology", "SEAGATE" }, { 0x000C51, "Scientific Technologies Inc.", "SCIENTIFIC-TECHNOLOGIES" }, { 0x000C52, "Roll Systems Inc.", "ROLL" }, { 0x000C53, "Private", "PRIVATE" }, { 0x000C54, "Pedestal Networks, Inc", "PEDESTAL-NETWORKS" }, { 0x000C55, "Microlink Communications Inc.", "MICROLINK-COMMUNICATION" }, { 0x000C56, "Megatel Computer (1986) Corp.", "MEGATEL-1986" }, { 0x000C57, "MACKIE Engineering Services Belgium BVBA", "MACKIE-ENGINEERING-SERVICES-BELGIUM-BVBA" }, { 0x000C58, "M&S Systems", "M-S" }, { 0x000C59, "Indyme Electronics, Inc.", "INDYME-ELECTRONICS" }, { 0x000C5A, "IBSmm Embedded Electronics Consulting", "IBSMM-EMBEDDED-ELECTRONICS-CONSULTING" }, { 0x000C5B, "HANWANG TECHNOLOGY CO.,LTD", "HANWANG" }, { 0x000C5C, "GTN Systems B.V.", "GTN-B-V" }, { 0x000C5D, "CHIC TECHNOLOGY (CHINA) CORP.", "CHIC-CHINA" }, { 0x000C5E, "Calypso Medical", "CALYPSO-MEDICAL" }, { 0x000C5F, "Avtec, Inc.", "AVTEC" }, { 0x000C60, "ACM Systems", "ACM" }, { 0x000C61, "AC Tech corporation DBA Advanced Digital", "AC-TECH-DBA-ADVANCED-DIGITAL" }, { 0x000C62, "ABB AB, Cewe-Control", "ABB-AB-CEWE-CONTROL" }, { 0x000C63, "Zenith Electronics Corporation", "ZENITH-ELECTRONICS" }, { 0x000C64, "X2 MSA Group", "X2-MSA-GROUP" }, { 0x000C65, "Sunin Telecom", "SUNIN-TELECOM" }, { 0x000C66, "Pronto Networks Inc", "PRONTO-NETWORKS" }, { 0x000C67, "OYO ELECTRIC CO.,LTD", "OYO-ELECTRIC" }, { 0x000C68, "SigmaTel, Inc.", "SIGMATEL" }, { 0x000C69, "National Radio Astronomy Observatory", "NATIONAL-RADIO-ASTRONOMY-OBSERVATORY" }, { 0x000C6A, "MBARI", "MBARI" }, { 0x000C6B, "Kurz Industrie-Elektronik GmbH", "KURZ-INDUSTRIE-ELEKTRONIK" }, { 0x000C6C, "Eve Systems GmbH", "EVE" }, { 0x000C6D, "Edwards Ltd.", "EDWARDS" }, { 0x000C6E, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x000C6F, "Amtek system co.,LTD.", "AMTEK-SYSTEM" }, { 0x000C70, "ACC GmbH", "ACC" }, { 0x000C71, "Wybron, Inc", "WYBRON" }, { 0x000C72, "Tempearl Industrial Co., Ltd.", "TEMPEARL-INDUSTRIAL" }, { 0x000C73, "TELSON ELECTRONICS CO., LTD", "TELSON-ELECTRONICS" }, { 0x000C74, "RIVERTEC CORPORATION", "RIVERTEC" }, { 0x000C75, "Oriental integrated electronics. LTD", "ORIENTAL-INTEGRATED-ELECTRONICS" }, { 0x000C76, "MICRO-STAR INTERNATIONAL CO., LTD.", "MICRO-STAR" }, { 0x000C77, "Life Racing Ltd", "LIFE-RACING" }, { 0x000C78, "In-Tech Electronics Limited", "IN-TECH-ELECTRONICS" }, { 0x000C79, "Extel Communications P/L", "EXTEL-COMMUNICATION-P/L" }, { 0x000C7A, "DaTARIUS Technologies GmbH", "DATARIUS-TECHNOLOGIES" }, { 0x000C7B, "ALPHA PROJECT Co.,Ltd.", "ALPHA-PROJECT" }, { 0x000C7C, "Internet Information Image Inc.", "INTERNET-INFORMATION-IMAGE" }, { 0x000C7D, "TEIKOKU ELECTRIC MFG. CO., LTD", "TEIKOKU-ELECTRIC-MFG" }, { 0x000C7E, "Tellium Incorporated", "TELLIUM-INCORPORATED" }, { 0x000C7F, "synertronixx GmbH", "SYNERTRONIXX" }, { 0x000C80, "Opelcomm Inc.", "OPELCOMM" }, { 0x000C81, "Schneider Electric (Australia)", "SCHNEIDER-ELECTRIC-AUSTRALIA" }, { 0x000C82, "NETWORK TECHNOLOGIES INC", "NETWORK-TECHNOLOGIES" }, { 0x000C83, "Logical Solutions", "LOGICAL-SOLUTIONS" }, { 0x000C84, "Eazix, Inc.", "EAZIX" }, { 0x000C85, "Cisco Systems, Inc", "CISCO" }, { 0x000C86, "Cisco Systems, Inc", "CISCO" }, { 0x000C87, "AMD", "AMD" }, { 0x000C88, "Apache Micro Peripherals, Inc.", "APACHE-MICRO-PERIPHERALS" }, { 0x000C89, "AC Electric Vehicles, Ltd.", "AC-ELECTRIC-VEHICLES" }, { 0x000C8A, "Bose Corporation", "BOSE" }, { 0x000C8B, "Connect Tech Inc", "CONNECT-TECH" }, { 0x000C8C, "KODICOM CO.,LTD.", "KODICOM" }, { 0x000C8D, "MATRIX VISION GmbH", "MATRIX-VISION" }, { 0x000C8E, "Mentor Engineering Inc", "MENTOR-ENGINEERING" }, { 0x000C8F, "Nergal s.r.l.", "NERGAL" }, { 0x000C90, "Octasic Inc.", "OCTASIC" }, { 0x000C91, "Riverhead Networks Inc.", "RIVERHEAD-NETWORKS" }, { 0x000C92, "WolfVision Gmbh", "WOLFVISION" }, { 0x000C93, "Xeline Co., Ltd.", "XELINE" }, { 0x000C94, "United Electronic Industries, Inc. (EUI)", "UNITED-INDUSTRIES-EUI" }, { 0x000C95, "PrimeNet", "PRIMENET" }, { 0x000C96, "OQO, Inc.", "OQO" }, { 0x000C97, "NV ADB TTV Technologies SA", "NV-ADB-TTV-TECHNOLOGIES" }, { 0x000C98, "LETEK Communications Inc.", "LETEK-COMMUNICATION" }, { 0x000C99, "HITEL LINK Co.,Ltd", "HITEL-LINK" }, { 0x000C9A, "Hitech Electronics Corp.", "HITECH-ELECTRONICS" }, { 0x000C9B, "EE Solutions, Inc", "EE-SOLUTIONS" }, { 0x000C9C, "Chongho information & communications", "CHONGHO-INFORMATION-COMMUNICATION" }, { 0x000C9D, "UbeeAirWalk, Inc.", "UBEEAIRWALK" }, { 0x000C9E, "MemoryLink Corp.", "MEMORYLINK" }, { 0x000C9F, "NKE Corporation", "NKE" }, { 0x000CA0, "StorCase Technology, Inc.", "STORCASE" }, { 0x000CA1, "SIGMACOM Co., LTD.", "SIGMACOM" }, { 0x000CA2, "Harmonic Video Network", "HARMONIC-VIDEO-NETWORK" }, { 0x000CA3, "Rancho Technology, Inc.", "RANCHO" }, { 0x000CA4, "Prompttec Product Management GmbH", "PROMPTTEC-PRODUCT-MANAGEMENT" }, { 0x000CA5, "Naman NZ LTd", "NAMAN-NZ" }, { 0x000CA6, "Mintera Corporation", "MINTERA" }, { 0x000CA7, "Metro (Suzhou) Technologies Co., Ltd.", "METRO-SUZHOU-TECHNOLOGIES" }, { 0x000CA8, "Garuda Networks Corporation", "GARUDA-NETWORKS" }, { 0x000CA9, "Ebtron Inc.", "EBTRON" }, { 0x000CAA, "Cubic Transportation Systems Inc", "CUBIC-TRANSPORTATION" }, { 0x000CAB, "Commend International GmbH", "COMMEND" }, { 0x000CAC, "Citizen Watch Co., Ltd.", "CITIZEN-WATCH" }, { 0x000CAD, "BTU International", "BTU" }, { 0x000CAE, "Ailocom Oy", "AILOCOM-OY" }, { 0x000CAF, "TRI TERM CO.,LTD.", "TRI-TERM" }, { 0x000CB0, "Star Semiconductor Corporation", "STAR-SEMICONDUCTOR" }, { 0x000CB1, "Salland Engineering (Europe) BV", "SALLAND-ENGINEERING-EUROPE" }, { 0x000CB2, "UNION co., ltd.", "UNION" }, { 0x000CB3, "ROUND Co.,Ltd.", "ROUND" }, { 0x000CB4, "AutoCell Laboratories, Inc.", "AUTOCELL-LABORATORIES" }, { 0x000CB5, "Premier Technolgies, Inc", "PREMIER-TECHNOLGIES" }, { 0x000CB6, "NANJING SEU MOBILE & INTERNET TECHNOLOGY CO.,LTD", "NANJING-SEU-MOBILE-INTERNET" }, { 0x000CB7, "Nanjing Huazhuo Electronics Co., Ltd.", "NANJING-HUAZHUO-ELECTRONICS" }, { 0x000CB8, "MEDION AG", "MEDION" }, { 0x000CB9, "LEA", "LEA" }, { 0x000CBA, "Jamex, Inc.", "JAMEX" }, { 0x000CBB, "ISKRAEMECO", "ISKRAEMECO" }, { 0x000CBC, "Iscutum", "ISCUTUM" }, { 0x000CBD, "Interface Masters, Inc", "INTERFACE-MASTERS" }, { 0x000CBE, "Innominate Security Technologies AG", "INNOMINATE-SECURITY-TECHNOLOGIES" }, { 0x000CBF, "Holy Stone Ent. Co., Ltd.", "HOLY-STONE-ENT" }, { 0x000CC0, "Genera Oy", "GENERA-OY" }, { 0x000CC1, "Eaton Corporation", "EATON" }, { 0x000CC2, "ControlNet (India) Private Limited", "CONTROLNET-INDIA-PRIVATE" }, { 0x000CC3, "BeWAN systems", "BEWAN" }, { 0x000CC4, "Tiptel AG", "TIPTEL" }, { 0x000CC5, "Nextlink Co., Ltd.", "NEXTLINK" }, { 0x000CC6, "Ka-Ro electronics GmbH", "KA-RO-ELECTRONICS" }, { 0x000CC7, "Intelligent Computer Solutions Inc.", "INTELLIGENT-SOLUTIONS" }, { 0x000CC8, "Xytronix Research & Design, Inc.", "XYTRONIX-RESEARCH-DESIGN" }, { 0x000CC9, "ILWOO DATA & TECHNOLOGY CO.,LTD", "ILWOO-DATA" }, { 0x000CCA, "HGST a Western Digital Company", "HGST-A-WESTERN-DIGITAL-COMPANY" }, { 0x000CCB, "Design Combus Ltd", "DESIGN-COMBUS" }, { 0x000CCC, "Aeroscout Ltd.", "AEROSCOUT" }, { 0x000CCD, "IEC - TC57", "IEC-TC57" }, { 0x000CCE, "Cisco Systems, Inc", "CISCO" }, { 0x000CCF, "Cisco Systems, Inc", "CISCO" }, { 0x000CD0, "Symetrix", "SYMETRIX" }, { 0x000CD1, "SFOM Technology Corp.", "SFOM" }, { 0x000CD2, "Schaffner EMV AG", "SCHAFFNER-EMV" }, { 0x000CD3, "Prettl Elektronik Radeberg GmbH", "PRETTL-ELEKTRONIK-RADEBERG" }, { 0x000CD4, "Positron Public Safety Systems inc.", "POSITRON-PUBLIC-SAFETY" }, { 0x000CD5, "Passave Inc.", "PASSAVE" }, { 0x000CD6, "PARTNER TECH", "PARTNER-TECH" }, { 0x000CD7, "Nallatech Ltd", "NALLATECH" }, { 0x000CD8, "M. K. Juchheim GmbH & Co", "M-K-JUCHHEIM" }, { 0x000CD9, "Itcare Co., Ltd", "ITCARE" }, { 0x000CDA, "FreeHand Systems, Inc.", "FREEHAND" }, { 0x000CDB, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x000CDC, "BECS Technology, Inc", "BECS" }, { 0x000CDD, "AOS technologies AG", "AOS-TECHNOLOGIES" }, { 0x000CDE, "ABB STOTZ-KONTAKT GmbH", "ABB-STOTZ-KONTAKT" }, { 0x000CDF, "JAI Manufacturing", "JAI-MANUFACTURING" }, { 0x000CE0, "Trek Diagnostics Inc.", "TREK-DIAGNOSTICS" }, { 0x000CE1, "The Open Group", "THE-OPEN-GROUP" }, { 0x000CE2, "Rolls-Royce", "ROLLS-ROYCE" }, { 0x000CE3, "Option International N.V.", "OPTION-N-V" }, { 0x000CE4, "NeuroCom International, Inc.", "NEUROCOM" }, { 0x000CE5, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x000CE6, "Fortinet, Inc.", "FORTINET" }, { 0x000CE7, "MediaTek Inc.", "MEDIATEK" }, { 0x000CE8, "GuangZhou AnJuBao Co., Ltd", "GUANGZHOU-ANJUBAO" }, { 0x000CE9, "BLOOMBERG L.P.", "BLOOMBERG-L-P" }, { 0x000CEA, "aphona Kommunikationssysteme", "APHONA-KOMMUNIKATIONSSYSTEME" }, { 0x000CEB, "CNMP Networks, Inc.", "CNMP-NETWORKS" }, { 0x000CEC, "Safran Trusted 4D Inc.", "SAFRAN-TRUSTED-4D" }, { 0x000CED, "Real Digital Media", "REAL-DIGITAL-MEDIA" }, { 0x000CEE, "jp-embedded", "JP-EMBEDDED" }, { 0x000CEF, "Open Networks Engineering Ltd", "OPEN-NETWORKS-ENGINEERING" }, { 0x000CF0, "M & N GmbH", "M-N" }, { 0x000CF1, "Intel Corporation", "INTEL" }, { 0x000CF2, "GAMESA Eólica", "GAMESA-ELICA" }, { 0x000CF3, "CALL IMAGE SA", "CALL-IMAGE" }, { 0x000CF4, "AKATSUKI ELECTRIC MFG.CO.,LTD.", "AKATSUKI-ELECTRIC-MFG" }, { 0x000CF5, "InfoExpress", "INFOEXPRESS" }, { 0x000CF6, "Sitecom Europe BV", "SITECOM-EUROPE" }, { 0x000CF7, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x000CF8, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x000CF9, "Xylem Water Solutions", "XYLEM-WATER-SOLUTIONS" }, { 0x000CFA, "Digital Systems Corp", "DIGITAL" }, { 0x000CFB, "Korea Network Systems", "KOREA-NETWORK" }, { 0x000CFC, "S2io Technologies Corp", "S2IO-TECHNOLOGIES" }, { 0x000CFD, "Hyundai ImageQuest Co.,Ltd.", "HYUNDAI-IMAGEQUEST" }, { 0x000CFE, "Grand Electronic Co., Ltd", "GRAND" }, { 0x000CFF, "MRO-TEK Realty Limited", "MRO-TEK-REALTY" }, { 0x000D00, "Seaway Networks Inc.", "SEAWAY-NETWORKS" }, { 0x000D01, "P&E Microcomputer Systems, Inc.", "P-E-MICROCOMPUTER" }, { 0x000D02, "NEC Platforms, Ltd.", "NEC-PLATFORMS" }, { 0x000D03, "Matrics, Inc.", "MATRICS" }, { 0x000D04, "Foxboro Eckardt Development GmbH", "FOXBORO-ECKARDT-DEVELOPMENT" }, { 0x000D05, "cybernet manufacturing inc.", "CYBERNET-MANUFACTURING" }, { 0x000D06, "Compulogic Limited", "COMPULOGIC" }, { 0x000D07, "Calrec Audio Ltd", "CALREC-AUDIO" }, { 0x000D08, "AboveCable, Inc.", "ABOVECABLE" }, { 0x000D09, "Yuehua(Zhuhai) Electronic CO. LTD", "YUEHUA-ZHUHAI" }, { 0x000D0A, "Barco Projection Systems NV", "BARCO-PROJECTION-NV" }, { 0x000D0B, "BUFFALO.INC", "BUFFALO" }, { 0x000D0C, "MDI Security Systems", "MDI-SECURITY" }, { 0x000D0D, "ITSupported, LLC", "ITSUPPORTED" }, { 0x000D0E, "Inqnet Systems, Inc.", "INQNET" }, { 0x000D0F, "Finlux Ltd", "FINLUX" }, { 0x000D10, "Embedtronics Oy", "EMBEDTRONICS-OY" }, { 0x000D11, "DENTSPLY - Gendex", "DENTSPLY-GENDEX" }, { 0x000D12, "AXELL Corporation", "AXELL" }, { 0x000D13, "Wilhelm Rutenbeck GmbH&Co.KG", "WILHELM-RUTENBECK" }, { 0x000D14, "Vtech Innovation LP dba Advanced American Telephones", "VTECH-INNOVATION-LP-DBA-ADVANCED-AMERICAN-TELEPHONES" }, { 0x000D15, "Voipac s.r.o.", "VOIPAC-S-R-O" }, { 0x000D16, "UHS Systems Pty Ltd", "UHS-PTY" }, { 0x000D17, "Turbo Networks Co.Ltd", "TURBO-NETWORKS" }, { 0x000D18, "Mega-Trend Electronics CO., LTD.", "MEGA-TREND-ELECTRONICS" }, { 0x000D19, "ROBE Show lighting", "ROBE-SHOW-LIGHTING" }, { 0x000D1A, "Mustek System Inc.", "MUSTEK-SYSTEM" }, { 0x000D1B, "Kyoto Electronics Manufacturing Co., Ltd.", "KYOTO-ELECTRONICS-MANUFACTURING" }, { 0x000D1C, "Amesys Defense", "AMESYS-DEFENSE" }, { 0x000D1D, "HIGH-TEK HARNESS ENT. CO., LTD.", "HIGH-TEK-HARNESS-ENT" }, { 0x000D1E, "Control Techniques", "CONTROL-TECHNIQUES" }, { 0x000D1F, "AV Digital", "AV-DIGITAL" }, { 0x000D20, "ASAHIKASEI TECHNOSYSTEM CO.,LTD.", "ASAHIKASEI-TECHNOSYSTEM" }, { 0x000D21, "WISCORE Inc.", "WISCORE" }, { 0x000D22, "Unitronics LTD", "UNITRONICS" }, { 0x000D23, "Smart Solution, Inc", "SMART-SOLUTION" }, { 0x000D24, "SENTEC E&E CO., LTD.", "SENTEC-E-E" }, { 0x000D25, "SANDEN CORPORATION", "SANDEN" }, { 0x000D26, "Primagraphics Limited", "PRIMAGRAPHICS" }, { 0x000D27, "MICROPLEX Printware AG", "MICROPLEX-PRINTWARE" }, { 0x000D28, "Cisco Systems, Inc", "CISCO" }, { 0x000D29, "Cisco Systems, Inc", "CISCO" }, { 0x000D2A, "Scanmatic AS", "SCANMATIC-AS" }, { 0x000D2B, "Racal Instruments", "RACAL-INSTRUMENTS" }, { 0x000D2C, "Net2Edge Limited", "NET2EDGE" }, { 0x000D2D, "NCT Deutschland GmbH", "NCT-DEUTSCHLAND" }, { 0x000D2E, "Matsushita Avionics Systems Corporation", "MATSUSHITA-AVIONICS" }, { 0x000D2F, "AIN Comm.Tech.Co., LTD", "AIN-COMM-TECH" }, { 0x000D30, "IceFyre Semiconductor", "ICEFYRE-SEMICONDUCTOR" }, { 0x000D31, "Compellent Technologies, Inc.", "COMPELLENT-TECHNOLOGIES" }, { 0x000D32, "DispenseSource, Inc.", "DISPENSESOURCE" }, { 0x000D33, "Prediwave Corp.", "PREDIWAVE" }, { 0x000D34, "Shell International Exploration and Production, Inc.", "SHELL-EXPLORATION-AND-PRODUCTION" }, { 0x000D35, "PAC International Ltd", "PAC" }, { 0x000D36, "Wu Han Routon Electronic Co., Ltd", "WU-HAN-ROUTON" }, { 0x000D37, "WIPLUG", "WIPLUG" }, { 0x000D38, "NISSIN INC.", "NISSIN" }, { 0x000D39, "Nevion", "NEVION" }, { 0x000D3A, "Microsoft Corp.", "MICROSOFT" }, { 0x000D3B, "Microelectronics Technology Inc.", "MICROELECTRONICS" }, { 0x000D3C, "i.Tech Dynamic Ltd", "I-TECH-DYNAMIC" }, { 0x000D3D, "Hammerhead Systems, Inc.", "HAMMERHEAD" }, { 0x000D3E, "APLUX Communications Ltd.", "APLUX-COMMUNICATION" }, { 0x000D3F, "VTI Instruments Corporation", "VTI-INSTRUMENTS" }, { 0x000D40, "Verint Loronix Video Solutions", "VERINT-LORONIX-VIDEO-SOLUTIONS" }, { 0x000D41, "Siemens AG ICM MP UC RD IT KLF1", "SIEMENS-ICM-MP-UC-RD-IT-KLF1" }, { 0x000D42, "Newbest Development Limited", "NEWBEST-DEVELOPMENT" }, { 0x000D43, "DRS Tactical Systems Inc.", "DRS-TACTICAL" }, { 0x000D44, "Audio BU - Logitech", "AUDIO-BU-LOGITECH" }, { 0x000D45, "Tottori SANYO Electric Co., Ltd.", "TOTTORI-SANYO-ELECTRIC" }, { 0x000D46, "Parker SSD Drives", "PARKER-SSD-DRIVES" }, { 0x000D47, "Collex", "COLLEX" }, { 0x000D48, "AEWIN Technologies Co., Ltd.", "AEWIN-TECHNOLOGIES" }, { 0x000D49, "Triton Systems of Delaware, Inc.", "TRITON-OF-DELAWARE" }, { 0x000D4A, "Steag ETA-Optik", "STEAG-ETA-OPTIK" }, { 0x000D4B, "Roku, Inc.", "ROKU" }, { 0x000D4C, "Outline Electronics Ltd.", "OUTLINE-ELECTRONICS" }, { 0x000D4D, "Ninelanes", "NINELANES" }, { 0x000D4E, "NDR Co.,LTD.", "NDR" }, { 0x000D4F, "Kenwood Corporation", "KENWOOD" }, { 0x000D50, "Galazar Networks", "GALAZAR-NETWORKS" }, { 0x000D51, "DIVR Systems, Inc.", "DIVR" }, { 0x000D52, "Comart system", "COMART-SYSTEM" }, { 0x000D53, "Beijing 5w Communication Corp.", "BEIJING-5W-COMMUNICATION" }, { 0x000D54, "3Com Ltd", "3COM" }, { 0x000D55, "SANYCOM Technology Co.,Ltd", "SANYCOM" }, { 0x000D56, "Dell Inc.", "DELL" }, { 0x000D57, "Fujitsu I-Network Systems Limited.", "FUJITSU-I-NETWORK" }, { 0x000D58, "Private", "PRIVATE" }, { 0x000D59, "Amity Systems, Inc.", "AMITY" }, { 0x000D5A, "Tiesse SpA", "TIESSE-SPA" }, { 0x000D5B, "Smart Empire Investments Limited", "SMART-EMPIRE-INVESTMENTS" }, { 0x000D5C, "Robert Bosch GmbH, VT-ATMO", "ROBERT-BOSCH-VT-ATMO" }, { 0x000D5D, "Raritan Computer, Inc", "RARITAN" }, { 0x000D5E, "NEC Personal Products", "NEC-PERSONAL-PRODUCTS" }, { 0x000D5F, "Minds Inc", "MINDS" }, { 0x000D60, "IBM Corp", "IBM" }, { 0x000D61, "Giga-Byte Technology Co., Ltd.", "GIGA-BYTE" }, { 0x000D62, "Funkwerk Dabendorf GmbH", "FUNKWERK-DABENDORF" }, { 0x000D63, "DENT Instruments, Inc.", "DENT-INSTRUMENTS" }, { 0x000D64, "COMAG Handels AG", "COMAG-HANDELS" }, { 0x000D65, "Cisco Systems, Inc", "CISCO" }, { 0x000D66, "Cisco Systems, Inc", "CISCO" }, { 0x000D67, "Ericsson", "ERICSSON" }, { 0x000D68, "Vinci Systems, Inc.", "VINCI" }, { 0x000D69, "TMT&D Corporation", "TMT-D" }, { 0x000D6A, "Redwood Technologies LTD", "REDWOOD-TECHNOLOGIES" }, { 0x000D6B, "Mita-Teknik A/S", "MITA-TEKNIK-A/S" }, { 0x000D6C, "M-Audio", "M-AUDIO" }, { 0x000D6D, "K-Tech Devices Corp.", "K-TECH-DEVICES" }, { 0x000D6E, "K-Patents Oy", "K-PATENTS-OY" }, { 0x000D6F, "Ember Corporation", "EMBER" }, { 0x000D70, "Datamax Corporation", "DATAMAX" }, { 0x000D71, "boca systems", "BOCA" }, { 0x000D72, "2Wire Inc", "2WIRE" }, { 0x000D73, "Technical Support, Inc.", "TECHNICAL-SUPPORT" }, { 0x000D74, "Sand Network Systems, Inc.", "SAND-NETWORK" }, { 0x000D75, "Kobian Pte Ltd - Taiwan Branch", "KOBIAN-PTE-TAIWAN-BRANCH" }, { 0x000D76, "Hokuto Denshi Co,. Ltd.", "HOKUTO-DENSHI" }, { 0x000D77, "FalconStor Software", "FALCONSTOR-SOFTWARE" }, { 0x000D78, "Engineering & Security", "ENGINEERING-SECURITY" }, { 0x000D79, "Dynamic Solutions Co,.Ltd.", "DYNAMIC-SOLUTIONS" }, { 0x000D7A, "DiGATTO Asia Pacific Pte Ltd", "DIGATTO-ASIA-PACIFIC-PTE" }, { 0x000D7B, "Consensys Computers Inc.", "CONSENSYS-COMPUTERS" }, { 0x000D7C, "Codian Ltd", "CODIAN" }, { 0x000D7D, "Afco Systems", "AFCO" }, { 0x000D7E, "Axiowave Networks, Inc.", "AXIOWAVE-NETWORKS" }, { 0x000D7F, "MIDAS COMMUNICATION TECHNOLOGIES PTE LTD ( Foreign Branch)", "MIDAS-COMMUNICATION-TECHNOLOGIES-PTE-FOREIGN-BRANCH" }, { 0x000D80, "Online Development Inc", "ONLINE-DEVELOPMENT" }, { 0x000D81, "Pepperl+Fuchs GmbH", "PEPPERL+FUCHS" }, { 0x000D82, "PHSNET", "PHSNET" }, { 0x000D83, "Sanmina-SCI Hungary Ltd.", "SANMINA-SCI-HUNGARY" }, { 0x000D84, "Makus Inc.", "MAKUS" }, { 0x000D85, "Tapwave, Inc.", "TAPWAVE" }, { 0x000D86, "Huber + Suhner AG", "HUBER-+-SUHNER" }, { 0x000D87, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x000D88, "D-Link Corporation", "D-LINK" }, { 0x000D89, "Bils Technology Inc", "BILS" }, { 0x000D8A, "Winners Electronics Co., Ltd.", "WINNERS-ELECTRONICS" }, { 0x000D8B, "T&D Corporation", "T-D" }, { 0x000D8C, "Shanghai Wedone Digital Ltd. CO.", "SHANGHAI-WEDONE-DIGITAL" }, { 0x000D8D, "Prosoft Technology, Inc", "PROSOFT" }, { 0x000D8E, "Koden Electronics Co., Ltd.", "KODEN-ELECTRONICS" }, { 0x000D8F, "King Tsushin Kogyo Co., LTD.", "KING-TSUSHIN-KOGYO" }, { 0x000D90, "Factum Electronics AB", "FACTUM-ELECTRONICS-AB" }, { 0x000D91, "Eclipse (HQ Espana) S.L.", "ECLIPSE-HQ-ESPANA" }, { 0x000D92, "ARIMA Communications Corp.", "ARIMA-COMMUNICATION" }, { 0x000D93, "Apple, Inc.", "APPLE" }, { 0x000D94, "AFAR Communications,Inc", "AFAR-COMMUNICATION" }, { 0x000D95, "Opti-cell, Inc.", "OPTI-CELL" }, { 0x000D96, "Vtera Technology Inc.", "VTERA" }, { 0x000D97, "ABB Inc./Tropos", "ABB-/TROPOS" }, { 0x000D98, "S.W.A.C. Schmitt-Walter Automation Consult GmbH", "S-W-A-C-SCHMITT-WALTER-AUTOMATION-CONSULT" }, { 0x000D99, "Orbital Sciences Corp.; Launch Systems Group", "ORBITAL-SCIENCES-LAUNCH-GROUP" }, { 0x000D9A, "INFOTEC LTD", "INFOTEC" }, { 0x000D9B, "Heraeus Electro-Nite International N.V.", "HERAEUS-ELECTRO-NITE-N-V" }, { 0x000D9C, "K.A. Schmersal GmbH & Co. KG", "K-A-SCHMERSAL" }, { 0x000D9D, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x000D9E, "TOKUDEN OHIZUMI SEISAKUSYO Co.,Ltd.", "TOKUDEN-OHIZUMI-SEISAKUSYO" }, { 0x000D9F, "RF Micro Devices", "RF-MICRO-DEVICES" }, { 0x000DA0, "NEDAP N.V.", "NEDAP-N-V" }, { 0x000DA1, "MIRAE ITS Co.,LTD.", "MIRAE-ITS" }, { 0x000DA2, "Infrant Technologies, Inc.", "INFRANT-TECHNOLOGIES" }, { 0x000DA3, "Emerging Technologies Limited", "EMERGING-TECHNOLOGIES" }, { 0x000DA4, "DOSCH & AMAND SYSTEMS AG", "DOSCH-AMAND" }, { 0x000DA5, "Fabric7 Systems, Inc", "FABRIC7" }, { 0x000DA6, "Universal Switching Corporation", "UNIVERSAL-SWITCHING" }, { 0x000DA7, "Private", "PRIVATE" }, { 0x000DA8, "Teletronics Technology Corporation", "TELETRONICS" }, { 0x000DA9, "INGETEAM", "INGETEAM" }, { 0x000DAA, "S.A.Tehnology co.,Ltd.", "TEHNOLOGY" }, { 0x000DAB, "Parker Hannifin GmbH Electromechanical Division Europe", "PARKER-HANNIFIN-ELECTROMECHANICAL-DIVISION-EUROPE" }, { 0x000DAC, "Japan CBM Corporation", "JAPAN-CBM" }, { 0x000DAD, "Dataprobe, Inc.", "DATAPROBE" }, { 0x000DAE, "SAMSUNG HEAVY INDUSTRIES CO., LTD.", "SAMSUNG-HEAVY-INDUSTRIES" }, { 0x000DAF, "Plexus Corp (UK) Ltd", "PLEXUS-UK" }, { 0x000DB0, "Olym-tech Co.,Ltd.", "OLYM-TECH" }, { 0x000DB1, "Japan Network Service Co., Ltd.", "JAPAN-NETWORK-SERVICE" }, { 0x000DB2, "Ammasso, Inc.", "AMMASSO" }, { 0x000DB3, "SDO Communication Corperation", "SDO-COMMUNICATION-CORPERATION" }, { 0x000DB4, "Stormshield", "STORMSHIELD" }, { 0x000DB5, "GLOBALSAT TECHNOLOGY CORPORATION", "GLOBALSAT" }, { 0x000DB6, "Broadcom", "BROADCOM" }, { 0x000DB7, "SANKO ELECTRIC CO,.LTD", "SANKO-ELECTRIC" }, { 0x000DB8, "SCHILLER AG", "SCHILLER" }, { 0x000DB9, "PC Engines GmbH", "PC-ENGINES" }, { 0x000DBA, "Océ Document Technologies GmbH", "OC-DOCUMENT-TECHNOLOGIES" }, { 0x000DBB, "Nippon Dentsu Co.,Ltd.", "NIPPON-DENTSU" }, { 0x000DBC, "Cisco Systems, Inc", "CISCO" }, { 0x000DBD, "Cisco Systems, Inc", "CISCO" }, { 0x000DBE, "Bel Fuse Europe Ltd.,UK", "BEL-FUSE-EUROPE-UK" }, { 0x000DBF, "TekTone Sound & Signal Mfg., Inc.", "TEKTONE-SOUND-SIGNAL-MFG" }, { 0x000DC0, "Spagat AS", "SPAGAT-AS" }, { 0x000DC1, "SafeWeb Inc", "SAFEWEB" }, { 0x000DC2, "Private", "PRIVATE" }, { 0x000DC3, "First Communication, Inc.", "FIRST-COMMUNICATION" }, { 0x000DC4, "Emcore Corporation", "EMCORE" }, { 0x000DC5, "EchoStar Global B.V.", "ECHOSTAR-GLOBAL-B-V" }, { 0x000DC6, "DigiRose Technology Co., Ltd.", "DIGIROSE" }, { 0x000DC7, "COSMIC ENGINEERING INC.", "COSMIC-ENGINEERING" }, { 0x000DC8, "AirMagnet, Inc", "AIRMAGNET" }, { 0x000DC9, "THALES Elektronik Systeme GmbH", "THALES-ELEKTRONIK-SYSTEME" }, { 0x000DCA, "Tait Electronics", "TAIT-ELECTRONICS" }, { 0x000DCB, "Petcomkorea Co., Ltd.", "PETCOMKOREA" }, { 0x000DCC, "NEOSMART Corp.", "NEOSMART" }, { 0x000DCD, "GROUPE TXCOM", "GROUPE-TXCOM" }, { 0x000DCE, "Dynavac Technology Pte Ltd", "DYNAVAC-PTE" }, { 0x000DCF, "Cidra Corp.", "CIDRA" }, { 0x000DD0, "TetraTec Instruments GmbH", "TETRATEC-INSTRUMENTS" }, { 0x000DD1, "Stryker Corporation", "STRYKER" }, { 0x000DD2, "Simrad Optronics ASA", "SIMRAD-OPTRONICS-ASA" }, { 0x000DD3, "SAMWOO Telecommunication Co.,Ltd.", "SAMWOO-TELECOMMUNICATION" }, { 0x000DD4, "Symantec Corporation", "SYMANTEC" }, { 0x000DD5, "O'RITE TECHNOLOGY CO.,LTD", "O-RITE" }, { 0x000DD6, "ITI LTD", "ITI" }, { 0x000DD7, "Bright", "BRIGHT" }, { 0x000DD8, "BBN", "BBN" }, { 0x000DD9, "Anton Paar GmbH", "ANTON-PAAR" }, { 0x000DDA, "ALLIED TELESIS K.K.", "ALLIED-TELESIS-K-K" }, { 0x000DDB, "AIRWAVE TECHNOLOGIES INC.", "AIRWAVE-TECHNOLOGIES" }, { 0x000DDC, "VAC", "VAC" }, { 0x000DDD, "Profilo Telra Elektronik Sanayi ve Ticaret. A.Ş", "PROFILO-TELRA-ELEKTRONIK-SANAYI-VE-TICARET-A" }, { 0x000DDE, "Joyteck Co., Ltd.", "JOYTECK" }, { 0x000DDF, "Japan Image & Network Inc.", "JAPAN-IMAGE-NETWORK" }, { 0x000DE0, "ICPDAS Co.,LTD", "ICPDAS" }, { 0x000DE1, "Control Products, Inc.", "CONTROL-PRODUCTS" }, { 0x000DE2, "CMZ Sistemi Elettronici", "CMZ-SISTEMI-ELETTRONICI" }, { 0x000DE3, "AT Sweden AB", "AT-SWEDEN-AB" }, { 0x000DE4, "DIGINICS, Inc.", "DIGINICS" }, { 0x000DE5, "Samsung Thales", "SAMSUNG-THALES" }, { 0x000DE6, "YOUNGBO ENGINEERING CO.,LTD", "YOUNGBO-ENGINEERING" }, { 0x000DE7, "Snap-on OEM Group", "SNAP-ON-OEM-GROUP" }, { 0x000DE8, "Nasaco Electronics Pte. Ltd", "NASACO-ELECTRONICS-PTE" }, { 0x000DE9, "Napatech Aps", "NAPATECH-APS" }, { 0x000DEA, "Kingtel Telecommunication Corp.", "KINGTEL-TELECOMMUNICATION" }, { 0x000DEB, "CompXs Limited", "COMPXS" }, { 0x000DEC, "Cisco Systems, Inc", "CISCO" }, { 0x000DED, "Cisco Systems, Inc", "CISCO" }, { 0x000DEE, "Andrew RF Power Amplifier Group", "ANDREW-RF-POWER-AMPLIFIER-GROUP" }, { 0x000DEF, "Soc. Coop. Bilanciai", "SOC-COOP-BILANCIAI" }, { 0x000DF0, "QCOM TECHNOLOGY INC.", "QCOM" }, { 0x000DF1, "IONIX INC.", "IONIX" }, { 0x000DF2, "Private", "PRIVATE" }, { 0x000DF3, "Asmax Solutions", "ASMAX-SOLUTIONS" }, { 0x000DF4, "Watertek Co.", "WATERTEK" }, { 0x000DF5, "Teletronics International Inc.", "TELETRONICS" }, { 0x000DF6, "Technology Thesaurus Corp.", "THESAURUS" }, { 0x000DF7, "Space Dynamics Lab", "SPACE-DYNAMICS-LAB" }, { 0x000DF8, "ORGA Kartensysteme GmbH", "ORGA-KARTENSYSTEME" }, { 0x000DF9, "NDS Limited", "NDS" }, { 0x000DFA, "Micro Control Systems Ltd.", "MICRO-CONTROL" }, { 0x000DFB, "Komax AG", "KOMAX" }, { 0x000DFC, "ITFOR Inc.", "ITFOR" }, { 0x000DFD, "Huges Hi-Tech Inc.,", "HUGES-HI-TECH" }, { 0x000DFE, "Hauppauge Computer Works, Inc.", "HAUPPAUGE-WORKS" }, { 0x000DFF, "CHENMING MOLD INDUSTRY CORP.", "CHENMING-MOLD-INDUSTRY" }, { 0x000E00, "Atrie", "ATRIE" }, { 0x000E01, "ASIP Technologies Inc.", "ASIP-TECHNOLOGIES" }, { 0x000E02, "Advantech AMT Inc.", "ADVANTECH-AMT" }, { 0x000E03, "Emulex Corporation", "EMULEX" }, { 0x000E04, "CMA/Microdialysis AB", "CMA/MICRODIALYSIS-AB" }, { 0x000E05, "WIRELESS MATRIX CORP.", "WIRELESS-MATRIX" }, { 0x000E06, "Team Simoco Ltd", "TEAM-SIMOCO" }, { 0x000E07, "Sony Corporation", "SONY" }, { 0x000E08, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x000E09, "Shenzhen Coship Software Co.,LTD.", "SHENZHEN-COSHIP-SOFTWARE" }, { 0x000E0A, "SAKUMA DESIGN OFFICE", "SAKUMA-DESIGN-OFFICE" }, { 0x000E0B, "Netac Technology Co., Ltd.", "NETAC" }, { 0x000E0C, "Intel Corporation", "INTEL" }, { 0x000E0D, "Hesch Schröder GmbH", "HESCH-SCHROEDER" }, { 0x000E0E, "ESA elettronica S.P.A.", "ESA-ELETTRONICA" }, { 0x000E0F, "ERMME", "ERMME" }, { 0x000E10, "C-guys, Inc.", "C-GUYS" }, { 0x000E11, "BDT Büro und Datentechnik GmbH & Co.KG", "BDT-BUERO-UND-DATENTECHNIK" }, { 0x000E12, "Adaptive Micro Systems Inc.", "ADAPTIVE-MICRO" }, { 0x000E13, "Accu-Sort Systems inc.", "ACCU-SORT" }, { 0x000E14, "Visionary Solutions, Inc.", "VISIONARY-SOLUTIONS" }, { 0x000E15, "Tadlys LTD", "TADLYS" }, { 0x000E16, "SouthWing S.L.", "SOUTHWING" }, { 0x000E17, "Private", "PRIVATE" }, { 0x000E18, "MyA Technology", "MYA" }, { 0x000E19, "LogicaCMG Pty Ltd", "LOGICACMG-PTY" }, { 0x000E1A, "JPS Communications", "JPS-COMMUNICATION" }, { 0x000E1B, "IAV GmbH", "IAV" }, { 0x000E1C, "Hach Company", "HACH-COMPANY" }, { 0x000E1D, "ARION Technology Inc.", "ARION" }, { 0x000E1E, "QLogic Corporation", "QLOGIC" }, { 0x000E1F, "TCL Networks Equipment Co., Ltd.", "TCL-NETWORKS-EQUIPMENT" }, { 0x000E20, "ACCESS Systems Americas, Inc.", "ACCESS-AMERICAS" }, { 0x000E21, "MTU Friedrichshafen GmbH", "MTU-FRIEDRICHSHAFEN" }, { 0x000E22, "Private", "PRIVATE" }, { 0x000E23, "Incipient, Inc.", "INCIPIENT" }, { 0x000E24, "Huwell Technology Inc.", "HUWELL" }, { 0x000E25, "Hannae Technology Co., Ltd", "HANNAE" }, { 0x000E26, "Gincom Technology Corp.", "GINCOM" }, { 0x000E27, "Crere Networks, Inc.", "CRERE-NETWORKS" }, { 0x000E28, "Dynamic Ratings P/L", "DYNAMIC-RATINGS-P/L" }, { 0x000E29, "Shester Communications Inc", "SHESTER-COMMUNICATION" }, { 0x000E2A, "Private", "PRIVATE" }, { 0x000E2B, "Safari Technologies", "SAFARI-TECHNOLOGIES" }, { 0x000E2C, "Netcodec co.", "NETCODEC" }, { 0x000E2D, "Hyundai Digital Technology Co.,Ltd.", "HYUNDAI-DIGITAL" }, { 0x000E2E, "Edimax Technology Co. Ltd.", "EDIMAX" }, { 0x000E2F, "Roche Diagnostics GmbH", "ROCHE-DIAGNOSTICS" }, { 0x000E30, "AERAS Networks, Inc.", "AERAS-NETWORKS" }, { 0x000E31, "Olympus Soft Imaging Solutions GmbH", "OLYMPUS-SOFT-IMAGING-SOLUTIONS" }, { 0x000E32, "Kontron Medical", "KONTRON-MEDICAL" }, { 0x000E33, "Shuko Electronics Co.,Ltd", "SHUKO-ELECTRONICS" }, { 0x000E34, "NexGen City, LP", "NEXGEN-CITY-LP" }, { 0x000E35, "Intel Corporation", "INTEL" }, { 0x000E36, "HEINESYS, Inc.", "HEINESYS" }, { 0x000E37, "Harms & Wende GmbH & Co.KG", "HARMS-WENDE" }, { 0x000E38, "Cisco Systems, Inc", "CISCO" }, { 0x000E39, "Cisco Systems, Inc", "CISCO" }, { 0x000E3A, "Cirrus Logic", "CIRRUS-LOGIC" }, { 0x000E3B, "Hawking Technologies, Inc.", "HAWKING-TECHNOLOGIES" }, { 0x000E3C, "Transact Technologies Inc", "TRANSACT-TECHNOLOGIES" }, { 0x000E3D, "Televic N.V.", "TELEVIC-N-V" }, { 0x000E3E, "Sun Optronics Inc", "SUN-OPTRONICS" }, { 0x000E3F, "Soronti, Inc.", "SORONTI" }, { 0x000E40, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x000E41, "NIHON MECHATRONICS CO.,LTD.", "NIHON-MECHATRONICS" }, { 0x000E42, "Motic Incoporation Ltd.", "MOTIC-INCOPORATION" }, { 0x000E43, "G-Tek Electronics Sdn. Bhd.", "G-TEK-ELECTRONICS" }, { 0x000E44, "Digital 5, Inc.", "DIGITAL-5" }, { 0x000E45, "Beijing Newtry Electronic Technology Ltd", "BEIJING-NEWTRY" }, { 0x000E46, "Niigata Seimitsu Co.,Ltd.", "NIIGATA-SEIMITSU" }, { 0x000E47, "NCI System Co.,Ltd.", "NCI-SYSTEM" }, { 0x000E48, "Lipman TransAction Solutions", "LIPMAN-TRANSACTION-SOLUTIONS" }, { 0x000E49, "Forsway Scandinavia AB", "FORSWAY-SCANDINAVIA-AB" }, { 0x000E4A, "Changchun Huayu WEBPAD Co.,LTD", "CHANGCHUN-HUAYU-WEBPAD" }, { 0x000E4B, "atrium c and i", "ATRIUM-C-AND-I" }, { 0x000E4C, "Bermai Inc.", "BERMAI" }, { 0x000E4D, "Numesa Inc.", "NUMESA" }, { 0x000E4E, "Waveplus Technology Co., Ltd.", "WAVEPLUS" }, { 0x000E4F, "Trajet GmbH", "TRAJET" }, { 0x000E50, "Thomson Telecom Belgium", "THOMSON-TELECOM-BELGIUM" }, { 0x000E51, "TECNA SpA", "TECNA-SPA" }, { 0x000E52, "Optium Corporation", "OPTIUM" }, { 0x000E53, "AV TECH CORPORATION", "AV-TECH" }, { 0x000E54, "AlphaCell Wireless Ltd.", "ALPHACELL-WIRELESS" }, { 0x000E55, "AUVITRAN", "AUVITRAN" }, { 0x000E56, "4G Systems GmbH & Co. KG", "4G" }, { 0x000E57, "Iworld Networking, Inc.", "IWORLD-NETWORKING" }, { 0x000E58, "Sonos, Inc.", "SONOS" }, { 0x000E59, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x000E5A, "TELEFIELD inc.", "TELEFIELD" }, { 0x000E5B, "ParkerVision - Direct2Data", "PARKERVISION-DIRECT2DATA" }, { 0x000E5C, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x000E5D, "Triple Play Technologies A/S", "TRIPLE-PLAY-TECHNOLOGIES-A/S" }, { 0x000E5E, "Raisecom Technology", "RAISECOM" }, { 0x000E5F, "activ-net GmbH & Co. KG", "ACTIV-NET" }, { 0x000E60, "360SUN Digital Broadband Corporation", "360SUN-DIGITAL-BROADBAND" }, { 0x000E61, "MICROTROL LIMITED", "MICROTROL" }, { 0x000E62, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x000E63, "Lemke Diagnostics GmbH", "LEMKE-DIAGNOSTICS" }, { 0x000E64, "Elphel, Inc", "ELPHEL" }, { 0x000E65, "TransCore", "TRANSCORE" }, { 0x000E66, "Hitachi Industry & Control Solutions, Ltd.", "HITACHI-INDUSTRY-CONTROL-SOLUTIONS" }, { 0x000E67, "Eltis Microelectronics Ltd.", "ELTIS-MICROELECTRONICS" }, { 0x000E68, "E-TOP Network Technology Inc.", "E-TOP-NETWORK" }, { 0x000E69, "China Electric Power Research Institute", "CHINA-ELECTRIC-POWER-RESEARCH-INSTITUTE" }, { 0x000E6A, "3Com Ltd", "3COM" }, { 0x000E6B, "Janitza electronics GmbH", "JANITZA-ELECTRONICS" }, { 0x000E6C, "Device Drivers Limited", "DEVICE-DRIVERS" }, { 0x000E6D, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x000E6E, "MAT S.A. (Mircrelec Advanced Technology)", "MAT-MIRCRELEC-ADVANCED" }, { 0x000E6F, "IRIS Corporation Berhad", "IRIS-BERHAD" }, { 0x000E70, "in2 Networks", "IN2-NETWORKS" }, { 0x000E71, "Gemstar Technology Development Ltd.", "GEMSTAR-DEVELOPMENT" }, { 0x000E72, "CTS electronics", "CTS-ELECTRONICS" }, { 0x000E73, "Tpack A/S", "TPACK-A/S" }, { 0x000E74, "Solar Telecom. Tech", "SOLAR-TELECOM-TECH" }, { 0x000E75, "New York Air Brake Corp.", "NEW-YORK-AIR-BRAKE" }, { 0x000E76, "GEMSOC INNOVISION INC.", "GEMSOC-INNOVISION" }, { 0x000E77, "Decru, Inc.", "DECRU" }, { 0x000E78, "Amtelco", "AMTELCO" }, { 0x000E79, "Ample Communications Inc.", "AMPLE-COMMUNICATION" }, { 0x000E7A, "GemWon Communications Co., Ltd.", "GEMWON-COMMUNICATION" }, { 0x000E7B, "Toshiba", "TOSHIBA" }, { 0x000E7C, "Televes S.A.", "TELEVES" }, { 0x000E7D, "Electronics Line 3000 Ltd.", "ELECTRONICS-LINE-3000" }, { 0x000E7E, "ionSign Oy", "IONSIGN-OY" }, { 0x000E7F, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x000E80, "Thomson Technology Inc", "THOMSON" }, { 0x000E81, "Devicescape Software, Inc.", "DEVICESCAPE-SOFTWARE" }, { 0x000E82, "Infinity Tech", "INFINITY-TECH" }, { 0x000E83, "Cisco Systems, Inc", "CISCO" }, { 0x000E84, "Cisco Systems, Inc", "CISCO" }, { 0x000E85, "Catalyst Enterprises, Inc.", "CATALYST-ENTERPRISES" }, { 0x000E86, "Alcatel North America", "ALCATEL-NORTH-AMERICA" }, { 0x000E87, "adp Gauselmann GmbH", "ADP-GAUSELMANN" }, { 0x000E88, "VIDEOTRON CORP.", "VIDEOTRON" }, { 0x000E89, "CLEMATIC", "CLEMATIC" }, { 0x000E8A, "Avara Technologies Pty. Ltd.", "AVARA-TECHNOLOGIES-PTY" }, { 0x000E8B, "Astarte Technology Co, Ltd.", "ASTARTE" }, { 0x000E8C, "Siemens AG", "SIEMENS" }, { 0x000E8D, "Systems in Progress Holding GmbH", "IN-PROGRESS-HOLDING" }, { 0x000E8E, "SparkLAN Communications, Inc.", "SPARKLAN-COMMUNICATION" }, { 0x000E8F, "Sercomm Corporation.", "SERCOMM" }, { 0x000E90, "PONICO CORP.", "PONICO" }, { 0x000E91, "Navico Auckland Ltd", "NAVICO-AUCKLAND" }, { 0x000E92, "Open Telecom", "OPEN-TELECOM" }, { 0x000E93, "Milénio 3 Sistemas Electrónicos, Lda.", "MILNIO-3-SISTEMAS-ELECTRNICOS-LDA" }, { 0x000E94, "Maas International BV", "MAAS" }, { 0x000E95, "Fujiya Denki Seisakusho Co.,Ltd.", "FUJIYA-DENKI-SEISAKUSHO" }, { 0x000E96, "Cubic Defense Applications, Inc.", "CUBIC-DEFENSE-APPLICATIONS" }, { 0x000E97, "Ultracker Technology CO., Inc", "ULTRACKER" }, { 0x000E98, "HME Clear-Com LTD.", "HME-CLEAR-COM" }, { 0x000E99, "Spectrum Digital, Inc", "SPECTRUM-DIGITAL" }, { 0x000E9A, "BOE TECHNOLOGY GROUP CO.,LTD", "BOE-GROUP" }, { 0x000E9B, "Ambit Microsystems Corporation", "AMBIT-MICROSYSTEMS" }, { 0x000E9C, "Benchmark Electronics", "BENCHMARK-ELECTRONICS" }, { 0x000E9D, "Tiscali UK Ltd", "TISCALI-UK" }, { 0x000E9E, "Topfield Co., Ltd", "TOPFIELD" }, { 0x000E9F, "TEMIC SDS GmbH", "TEMIC-SDS" }, { 0x000EA0, "NetKlass Technology Inc.", "NETKLASS" }, { 0x000EA1, "Formosa Teletek Corporation", "FORMOSA-TELETEK" }, { 0x000EA2, "McAfee, Inc", "MCAFEE" }, { 0x000EA3, "CNCR-IT CO.,LTD,HangZhou P.R.CHINA", "CNCR-IT-HANGZHOU-P-R-CHINA" }, { 0x000EA4, "Quantum Corp.", "QUANTUM" }, { 0x000EA5, "BLIP Systems", "BLIP" }, { 0x000EA6, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x000EA7, "Endace Technology", "ENDACE" }, { 0x000EA8, "United Technologists Europe Limited", "UNITED-TECHNOLOGISTS-EUROPE" }, { 0x000EA9, "Shanghai Xun Shi Communications Equipment Ltd. Co.", "SHANGHAI-XUN-SHI-COMMUNICATION-EQUIPMENT" }, { 0x000EAA, "Scalent Systems, Inc.", "SCALENT" }, { 0x000EAB, "Cray Inc", "CRAY" }, { 0x000EAC, "MINTRON ENTERPRISE CO., LTD.", "MINTRON" }, { 0x000EAD, "Metanoia Technologies, Inc.", "METANOIA-TECHNOLOGIES" }, { 0x000EAE, "GAWELL TECHNOLOGIES CORP.", "GAWELL-TECHNOLOGIES" }, { 0x000EAF, "CASTEL", "CASTEL" }, { 0x000EB0, "Solutions Radio BV", "SOLUTIONS-RADIO" }, { 0x000EB1, "Newcotech,Ltd", "NEWCOTECH" }, { 0x000EB2, "Micro-Research Finland Oy", "MICRO-RESEARCH-FINLAND-OY" }, { 0x000EB3, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x000EB4, "GUANGZHOU GAOKE COMMUNICATIONS TECHNOLOGY CO.LTD.", "GUANGZHOU-GAOKE-COMMUNICATION" }, { 0x000EB5, "Ecastle Electronics Co., Ltd.", "ECASTLE-ELECTRONICS" }, { 0x000EB6, "Riverbed Technology, Inc.", "RIVERBED" }, { 0x000EB7, "Knovative, Inc.", "KNOVATIVE" }, { 0x000EB8, "Iiga co.,Ltd", "IIGA" }, { 0x000EB9, "HASHIMOTO Electronics Industry Co.,Ltd.", "HASHIMOTO-ELECTRONICS-INDUSTRY" }, { 0x000EBA, "HANMI SEMICONDUCTOR CO., LTD.", "HANMI-SEMICONDUCTOR" }, { 0x000EBB, "Everbee Networks", "EVERBEE-NETWORKS" }, { 0x000EBC, "Paragon Fidelity GmbH", "PARAGON-FIDELITY" }, { 0x000EBD, "Burdick, a Quinton Compny", "BURDICK-A-QUINTON-COMPNY" }, { 0x000EBE, "B&B Electronics Manufacturing Co.", "B-B-ELECTRONICS-MANUFACTURING" }, { 0x000EBF, "Remsdaq Limited", "REMSDAQ" }, { 0x000EC0, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x000EC1, "MYNAH Technologies", "MYNAH-TECHNOLOGIES" }, { 0x000EC2, "Lowrance Electronics, Inc.", "LOWRANCE-ELECTRONICS" }, { 0x000EC3, "Logic Controls, Inc.", "LOGIC-CONTROLS" }, { 0x000EC4, "Iskra Transmission d.d.", "ISKRA-TRANSMISSION-D-D" }, { 0x000EC5, "Digital Multitools Inc", "DIGITAL-MULTITOOLS" }, { 0x000EC6, "ASIX ELECTRONICS CORP.", "ASIX-ELECTRONICS" }, { 0x000EC7, "Motorola Korea", "MOTOROLA-KOREA" }, { 0x000EC8, "Zoran Corporation", "ZORAN" }, { 0x000EC9, "YOKO Technology Corp.", "YOKO" }, { 0x000ECA, "WTSS Inc", "WTSS" }, { 0x000ECB, "VineSys Technology", "VINESYS" }, { 0x000ECC, "Tableau, LLC", "TABLEAU" }, { 0x000ECD, "SKOV A/S", "SKOV-A/S" }, { 0x000ECE, "S.I.T.T.I. S.p.A.", "S-I-T-T-I" }, { 0x000ECF, "PROFIBUS Nutzerorganisation e.V.", "PROFIBUS-NUTZERORGANISATION" }, { 0x000ED0, "Privaris, Inc.", "PRIVARIS" }, { 0x000ED1, "Osaka Micro Computer.", "OSAKA-MICRO" }, { 0x000ED2, "Filtronic plc", "FILTRONIC-PLC" }, { 0x000ED3, "Epicenter, Inc.", "EPICENTER" }, { 0x000ED4, "CRESITT INDUSTRIE", "CRESITT-INDUSTRIE" }, { 0x000ED5, "COPAN Systems Inc.", "COPAN" }, { 0x000ED6, "Cisco Systems, Inc", "CISCO" }, { 0x000ED7, "Cisco Systems, Inc", "CISCO" }, { 0x000ED8, "Positron Access Solutions Corp", "POSITRON-ACCESS-SOLUTIONS" }, { 0x000ED9, "Aksys, Ltd.", "AKSYS" }, { 0x000EDA, "C-TECH UNITED CORP.", "C-TECH-UNITED" }, { 0x000EDB, "XiNCOM Corp.", "XINCOM" }, { 0x000EDC, "Tellion INC.", "TELLION" }, { 0x000EDD, "SHURE INCORPORATED", "SHURE-INCORPORATED" }, { 0x000EDE, "REMEC, Inc.", "REMEC" }, { 0x000EDF, "PLX Technology", "PLX" }, { 0x000EE0, "Mcharge", "MCHARGE" }, { 0x000EE1, "ExtremeSpeed Inc.", "EXTREMESPEED" }, { 0x000EE2, "Custom Engineering", "CUSTOM-ENGINEERING" }, { 0x000EE3, "Chiyu Technology Co.,Ltd", "CHIYU" }, { 0x000EE4, "BOE TECHNOLOGY GROUP CO.,LTD", "BOE-GROUP" }, { 0x000EE5, "bitWallet, Inc.", "BITWALLET" }, { 0x000EE6, "Adimos Systems LTD", "ADIMOS" }, { 0x000EE7, "AAC ELECTRONICS CORP.", "AAC-ELECTRONICS" }, { 0x000EE8, "Zioncom Electronics (Shenzhen) Ltd.", "ZIONCOM-ELECTRONICS-SHENZHEN" }, { 0x000EE9, "WayTech Development, Inc.", "WAYTECH-DEVELOPMENT" }, { 0x000EEA, "Shadong Luneng Jicheng Electronics,Co.,Ltd", "SHADONG-LUNENG-JICHENG-ELECTRONICS" }, { 0x000EEB, "Sandmartin(zhong shan)Electronics Co.,Ltd", "SANDMARTIN-ZHONG-SHAN-ELECTRONICS" }, { 0x000EEC, "Orban", "ORBAN" }, { 0x000EED, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x000EEE, "Muco Industrie BV", "MUCO-INDUSTRIE" }, { 0x000EEF, "Private", "PRIVATE" }, { 0x000EF0, "Festo AG & Co. KG", "FESTO" }, { 0x000EF1, "EZQUEST INC.", "EZQUEST" }, { 0x000EF2, "Infinico Corporation", "INFINICO" }, { 0x000EF3, "Smartlabs, Inc.", "SMARTLABS" }, { 0x000EF4, "Kasda Networks Inc", "KASDA-NETWORKS" }, { 0x000EF5, "iPAC Technology Co., Ltd.", "IPAC" }, { 0x000EF6, "E-TEN Information Systems Co., Ltd.", "E-TEN-INFORMATION" }, { 0x000EF7, "Vulcan Portals Inc", "VULCAN-PORTALS" }, { 0x000EF8, "SBC ASI", "SBC-ASI" }, { 0x000EF9, "REA Elektronik GmbH", "REA-ELEKTRONIK" }, { 0x000EFA, "Optoway Technology Incorporation", "OPTOWAY-INCORPORATION" }, { 0x000EFB, "Macey Enterprises", "MACEY-ENTERPRISES" }, { 0x000EFC, "JTAG Technologies B.V.", "JTAG-TECHNOLOGIES-B-V" }, { 0x000EFD, "FUJINON CORPORATION", "FUJINON" }, { 0x000EFE, "EndRun Technologies LLC", "ENDRUN-TECHNOLOGIES" }, { 0x000EFF, "Megasolution,Inc.", "MEGASOLUTION" }, { 0x000F00, "Legra Systems, Inc.", "LEGRA" }, { 0x000F01, "DIGITALKS INC", "DIGITALKS" }, { 0x000F02, "Digicube Technology Co., Ltd", "DIGICUBE" }, { 0x000F03, "COM&C CO., LTD", "COM-C" }, { 0x000F04, "cim-usa inc", "CIM-USA" }, { 0x000F05, "3B SYSTEM INC.", "3B-SYSTEM" }, { 0x000F06, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x000F07, "Mangrove Systems, Inc.", "MANGROVE" }, { 0x000F08, "Indagon Oy", "INDAGON-OY" }, { 0x000F09, "Private", "PRIVATE" }, { 0x000F0A, "Clear Edge Networks", "CLEAR-EDGE-NETWORKS" }, { 0x000F0B, "Kentima Technologies AB", "KENTIMA-TECHNOLOGIES-AB" }, { 0x000F0C, "SYNCHRONIC ENGINEERING", "SYNCHRONIC-ENGINEERING" }, { 0x000F0D, "Hunt Electronic Co., Ltd.", "HUNT" }, { 0x000F0E, "WaveSplitter Technologies, Inc.", "WAVESPLITTER-TECHNOLOGIES" }, { 0x000F0F, "Real ID Technology Co., Ltd.", "REAL-ID" }, { 0x000F10, "RDM Corporation", "RDM" }, { 0x000F11, "Prodrive B.V.", "PRODRIVE-B-V" }, { 0x000F12, "Panasonic Europe Ltd.", "PANASONIC-EUROPE" }, { 0x000F13, "Nisca corporation", "NISCA" }, { 0x000F14, "Mindray Co., Ltd.", "MINDRAY" }, { 0x000F15, "Icotera A/S", "ICOTERA-A/S" }, { 0x000F16, "JAY HOW TECHNOLOGY CO.,", "JAY-HOW" }, { 0x000F17, "Insta Elektro GmbH", "INSTA-ELEKTRO" }, { 0x000F18, "Industrial Control Systems", "INDUSTRIAL-CONTROL" }, { 0x000F19, "Boston Scientific", "BOSTON-SCIENTIFIC" }, { 0x000F1A, "Gaming Support B.V.", "GAMING-SUPPORT-B-V" }, { 0x000F1B, "Ego Systems Inc.", "EGO" }, { 0x000F1C, "DigitAll World Co., Ltd", "DIGITALL-WORLD" }, { 0x000F1D, "Cosmo Techs Co., Ltd.", "COSMO-TECHS" }, { 0x000F1E, "Chengdu KT Electric Co.of High & New Technology", "CHENGDU-KT-ELECTRIC-OF-HIGH-NEW" }, { 0x000F1F, "Dell Inc.", "DELL" }, { 0x000F20, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x000F21, "Scientific Atlanta, Inc", "SCIENTIFIC-ATLANTA" }, { 0x000F22, "Helius, Inc.", "HELIUS" }, { 0x000F23, "Cisco Systems, Inc", "CISCO" }, { 0x000F24, "Cisco Systems, Inc", "CISCO" }, { 0x000F25, "AimValley B.V.", "AIMVALLEY-B-V" }, { 0x000F26, "WorldAccxx LLC", "WORLDACCXX" }, { 0x000F27, "TEAL Electronics, Inc.", "TEAL-ELECTRONICS" }, { 0x000F28, "Itronix Corporation", "ITRONIX" }, { 0x000F29, "Augmentix Corporation", "AUGMENTIX" }, { 0x000F2A, "Cableware Electronics", "CABLEWARE-ELECTRONICS" }, { 0x000F2B, "GREENBELL SYSTEMS", "GREENBELL" }, { 0x000F2C, "Uplogix, Inc.", "UPLOGIX" }, { 0x000F2D, "CHUNG-HSIN ELECTRIC & MACHINERY MFG.CORP.", "CHUNG-HSIN-ELECTRIC-MACHINERY-MFG" }, { 0x000F2E, "Megapower International Corp.", "MEGAPOWER" }, { 0x000F2F, "W-LINX TECHNOLOGY CO., LTD.", "W-LINX" }, { 0x000F30, "Raza Microelectronics Inc", "RAZA-MICROELECTRONICS" }, { 0x000F31, "Allied Vision Technologies Canada Inc", "ALLIED-VISION-TECHNOLOGIES-CANADA" }, { 0x000F32, "Lootom Telcovideo Network (Wuxi) Co Ltd", "LOOTOM-TELCOVIDEO-NETWORK-WUXI" }, { 0x000F33, "DUALi Inc.", "DUALI" }, { 0x000F34, "Cisco Systems, Inc", "CISCO" }, { 0x000F35, "Cisco Systems, Inc", "CISCO" }, { 0x000F36, "Accurate Techhnologies, Inc.", "ACCURATE-TECHHNOLOGIES" }, { 0x000F37, "Xambala Incorporated", "XAMBALA-INCORPORATED" }, { 0x000F38, "Netstar", "NETSTAR" }, { 0x000F39, "IRIS SENSORS", "IRIS-SENSORS" }, { 0x000F3A, "HISHARP", "HISHARP" }, { 0x000F3B, "Fuji System Machines Co., Ltd.", "FUJI-SYSTEM-MACHINES" }, { 0x000F3C, "Endeleo Limited", "ENDELEO" }, { 0x000F3D, "D-Link Corporation", "D-LINK" }, { 0x000F3E, "CardioNet, Inc", "CARDIONET" }, { 0x000F3F, "Big Bear Networks", "BIG-BEAR-NETWORKS" }, { 0x000F40, "Optical Internetworking Forum", "OPTICAL-INTERNETWORKING-FORUM" }, { 0x000F41, "Zipher Ltd", "ZIPHER" }, { 0x000F42, "Xalyo Systems", "XALYO" }, { 0x000F43, "Wasabi Systems Inc.", "WASABI" }, { 0x000F44, "Tivella Inc.", "TIVELLA" }, { 0x000F45, "Stretch, Inc.", "STRETCH" }, { 0x000F46, "SINAR AG", "SINAR" }, { 0x000F47, "ROBOX SPA", "ROBOX-SPA" }, { 0x000F48, "Polypix Inc.", "POLYPIX" }, { 0x000F49, "Northover Solutions Limited", "NORTHOVER-SOLUTIONS" }, { 0x000F4A, "Kyushu-kyohan co.,ltd", "KYUSHU-KYOHAN" }, { 0x000F4B, "Oracle Corporation (possible Virtual Iron VM)", "ORACLE-VIRTUAL" }, { 0x000F4C, "Elextech INC", "ELEXTECH" }, { 0x000F4D, "TalkSwitch", "TALKSWITCH" }, { 0x000F4E, "Cellink", "CELLINK" }, { 0x000F4F, "PCS Systemtechnik GmbH", "PCS-SYSTEMTECHNIK" }, { 0x000F50, "StreamScale Limited", "STREAMSCALE" }, { 0x000F51, "Azul Systems, Inc.", "AZUL" }, { 0x000F52, "YORK Refrigeration, Marine & Controls", "YORK-REFRIGERATION-MARINE-CONTROLS" }, { 0x000F53, "Solarflare Communications Inc.", "SOLARFLARE-COMMUNICATION" }, { 0x000F54, "Entrelogic Corporation", "ENTRELOGIC" }, { 0x000F55, "Datawire Communication Networks Inc.", "DATAWIRE-COMMUNICATION-NETWORKS" }, { 0x000F56, "Continuum Photonics Inc", "CONTINUUM-PHOTONICS" }, { 0x000F57, "CABLELOGIC Co., Ltd.", "CABLELOGIC" }, { 0x000F58, "Adder Technology Limited", "ADDER" }, { 0x000F59, "Phonak AG", "PHONAK" }, { 0x000F5A, "Peribit Networks", "PERIBIT-NETWORKS" }, { 0x000F5B, "Delta Information Systems, Inc.", "DELTA-INFORMATION" }, { 0x000F5C, "Day One Digital Media Limited", "DAY-ONE-DIGITAL-MEDIA" }, { 0x000F5D, "Genexis BV", "GENEXIS" }, { 0x000F5E, "Veo", "VEO" }, { 0x000F5F, "Nicety Technologies Inc. (NTS)", "NICETY-TECHNOLOGIES-NTS" }, { 0x000F60, "Lifetron Co.,Ltd", "LIFETRON" }, { 0x000F61, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x000F62, "Alcatel Bell Space N.V.", "ALCATEL-BELL-SPACE-N-V" }, { 0x000F63, "Obzerv Technologies", "OBZERV-TECHNOLOGIES" }, { 0x000F64, "D&R Electronica Weesp BV", "D-R-ELECTRONICA-WEESP" }, { 0x000F65, "icube Corp.", "ICUBE" }, { 0x000F66, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x000F67, "West Instruments", "WEST-INSTRUMENTS" }, { 0x000F68, "Vavic Network Technology, Inc.", "VAVIC-NETWORK" }, { 0x000F69, "SEW Eurodrive GmbH & Co. KG", "SEW-EURODRIVE" }, { 0x000F6A, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x000F6B, "GateWare Communications GmbH", "GATEWARE-COMMUNICATION" }, { 0x000F6C, "ADDI-DATA GmbH", "ADDI-DATA" }, { 0x000F6D, "Midas Engineering", "MIDAS-ENGINEERING" }, { 0x000F6E, "BBox", "BBOX" }, { 0x000F6F, "FTA Communication Technologies", "FTA-COMMUNICATION-TECHNOLOGIES" }, { 0x000F70, "Wintec Industries, inc.", "WINTEC-INDUSTRIES" }, { 0x000F71, "Sanmei Electronics Co.,Ltd", "SANMEI-ELECTRONICS" }, { 0x000F72, "Sandburst", "SANDBURST" }, { 0x000F73, "RS Automation Co., Ltd", "RS-AUTOMATION" }, { 0x000F74, "Qamcom Technology AB", "QAMCOM-AB" }, { 0x000F75, "First Silicon Solutions", "FIRST-SILICON-SOLUTIONS" }, { 0x000F76, "Digital Keystone, Inc.", "DIGITAL-KEYSTONE" }, { 0x000F77, "DENTUM CO.,LTD", "DENTUM" }, { 0x000F78, "Datacap Systems Inc", "DATACAP" }, { 0x000F79, "Bluetooth Interest Group Inc.", "BLUETOOTH-INTEREST-GROUP" }, { 0x000F7A, "BeiJing NuQX Technology CO.,LTD", "BEIJING-NUQX" }, { 0x000F7B, "Arce Sistemas, S.A.", "ARCE-SISTEMAS" }, { 0x000F7C, "ACTi Corporation", "ACTI" }, { 0x000F7D, "Xirrus", "XIRRUS" }, { 0x000F7E, "Ablerex Electronics Co., LTD", "ABLEREX-ELECTRONICS" }, { 0x000F7F, "UBSTORAGE Co.,Ltd.", "UBSTORAGE" }, { 0x000F80, "Trinity Security Systems,Inc.", "TRINITY-SECURITY" }, { 0x000F81, "PAL Pacific Inc.", "PAL-PACIFIC" }, { 0x000F82, "Mortara Instrument, Inc.", "MORTARA-INSTRUMENT" }, { 0x000F83, "Brainium Technologies Inc.", "BRAINIUM-TECHNOLOGIES" }, { 0x000F84, "Astute Networks, Inc.", "ASTUTE-NETWORKS" }, { 0x000F85, "ADDO-Japan Corporation", "ADDO-JAPAN" }, { 0x000F86, "BlackBerry RTS", "BLACKBERRY-RTS" }, { 0x000F87, "Maxcess International", "MAXCESS" }, { 0x000F88, "AMETEK, Inc.", "AMETEK" }, { 0x000F89, "Winnertec System Co., Ltd.", "WINNERTEC-SYSTEM" }, { 0x000F8A, "WideView", "WIDEVIEW" }, { 0x000F8B, "Orion MultiSystems Inc", "ORION-MULTISYSTEMS" }, { 0x000F8C, "Gigawavetech Pte Ltd", "GIGAWAVETECH-PTE" }, { 0x000F8D, "FAST TV-Server AG", "FAST-TV-SERVER" }, { 0x000F8E, "DONGYANG TELECOM CO.,LTD.", "DONGYANG-TELECOM" }, { 0x000F8F, "Cisco Systems, Inc", "CISCO" }, { 0x000F90, "Cisco Systems, Inc", "CISCO" }, { 0x000F91, "Aerotelecom Co.,Ltd.", "AEROTELECOM" }, { 0x000F92, "Microhard Systems Inc.", "MICROHARD" }, { 0x000F93, "Landis+Gyr Ltd.", "LANDIS+GYR" }, { 0x000F94, "Genexis BV", "GENEXIS" }, { 0x000F95, "ELECOM Co.,LTD Laneed Division", "ELECOM-LANEED-DIVISION" }, { 0x000F96, "Telco Systems, Inc.", "TELCO" }, { 0x000F97, "Avanex Corporation", "AVANEX" }, { 0x000F98, "Avamax Co. Ltd.", "AVAMAX" }, { 0x000F99, "APAC opto Electronics Inc.", "APAC-OPTO-ELECTRONICS" }, { 0x000F9A, "Synchrony, Inc.", "SYNCHRONY" }, { 0x000F9B, "Ross Video Limited", "ROSS-VIDEO" }, { 0x000F9C, "Panduit Corp", "PANDUIT" }, { 0x000F9D, "DisplayLink (UK) Ltd", "DISPLAYLINK-UK" }, { 0x000F9E, "Murrelektronik GmbH", "MURRELEKTRONIK" }, { 0x000F9F, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x000FA0, "Canon Korea Inc.", "CANON-KOREA" }, { 0x000FA1, "Gigabit Systems Inc.", "GIGABIT" }, { 0x000FA2, "2xWireless", "2XWIRELESS" }, { 0x000FA3, "Alpha Networks Inc.", "ALPHA-NETWORKS" }, { 0x000FA4, "Sprecher Automation GmbH", "SPRECHER-AUTOMATION" }, { 0x000FA5, "BWA Technology GmbH", "BWA" }, { 0x000FA6, "S2 Security Corporation", "S2-SECURITY" }, { 0x000FA7, "Raptor Networks Technology", "RAPTOR-NETWORKS" }, { 0x000FA8, "Photometrics, Inc.", "PHOTOMETRICS" }, { 0x000FA9, "PC Fabrik", "PC-FABRIK" }, { 0x000FAA, "Nexus Technologies", "NEXUS-TECHNOLOGIES" }, { 0x000FAB, "Kyushu Electronics Systems Inc.", "KYUSHU-ELECTRONICS" }, { 0x000FAC, "IEEE 802.11", "IEEE-802-11" }, { 0x000FAD, "FMN communications GmbH", "FMN-COMMUNICATION" }, { 0x000FAE, "E2O Communications", "E2O-COMMUNICATION" }, { 0x000FAF, "Dialog Inc.", "DIALOG" }, { 0x000FB0, "Compal Electronics INC.", "COMPAL-ELECTRONICS" }, { 0x000FB1, "Cognio Inc.", "COGNIO" }, { 0x000FB2, "Broadband Pacenet (India) Pvt. Ltd.", "BROADBAND-PACENET-INDIA-PVT" }, { 0x000FB3, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x000FB4, "Timespace Technology", "TIMESPACE" }, { 0x000FB5, "NETGEAR", "NETGEAR" }, { 0x000FB6, "Europlex Technologies", "EUROPLEX-TECHNOLOGIES" }, { 0x000FB7, "Cavium", "CAVIUM" }, { 0x000FB8, "CallURL Inc.", "CALLURL" }, { 0x000FB9, "Adaptive Instruments", "ADAPTIVE-INSTRUMENTS" }, { 0x000FBA, "Tevebox AB", "TEVEBOX-AB" }, { 0x000FBB, "Nokia Siemens Networks GmbH & Co. KG.", "NOKIA-SIEMENS-NETWORKS" }, { 0x000FBC, "Onkey Technologies, Inc.", "ONKEY-TECHNOLOGIES" }, { 0x000FBD, "MRV Communications (Networks) LTD", "MRV-COMMUNICATION-NETWORKS" }, { 0x000FBE, "e-w/you Inc.", "E-W/YOU" }, { 0x000FBF, "DGT Sp. z o.o.", "DGT-SP-Z-O-O" }, { 0x000FC0, "DELCOMp", "DELCOMP" }, { 0x000FC1, "WAVE Corporation", "WAVE" }, { 0x000FC2, "Uniwell Corporation", "UNIWELL" }, { 0x000FC3, "PalmPalm Technology, Inc.", "PALMPALM" }, { 0x000FC4, "NST co.,LTD.", "NST" }, { 0x000FC5, "KeyMed Ltd", "KEYMED" }, { 0x000FC6, "Eurocom Industries A/S", "EUROCOM-INDUSTRIES-A/S" }, { 0x000FC7, "Dionica R&D Ltd.", "DIONICA-R-D" }, { 0x000FC8, "Chantry Networks", "CHANTRY-NETWORKS" }, { 0x000FC9, "Allnet GmbH", "ALLNET" }, { 0x000FCA, "A-JIN TECHLINE CO, LTD", "A-JIN-TECHLINE" }, { 0x000FCB, "3Com Ltd", "3COM" }, { 0x000FCC, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x000FCD, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x000FCE, "Kikusui Electronics Corp.", "KIKUSUI-ELECTRONICS" }, { 0x000FCF, "DataWind Research", "DATAWIND-RESEARCH" }, { 0x000FD0, "ASTRI", "ASTRI" }, { 0x000FD1, "Applied Wireless Identifications Group, Inc.", "APPLIED-WIRELESS-IDENTIFICATIONS-GROUP" }, { 0x000FD2, "EWA Technologies, Inc.", "EWA-TECHNOLOGIES" }, { 0x000FD3, "Digium", "DIGIUM" }, { 0x000FD4, "Soundcraft", "SOUNDCRAFT" }, { 0x000FD5, "Schwechat - RISE", "SCHWECHAT-RISE" }, { 0x000FD6, "Sarotech Co., Ltd", "SAROTECH" }, { 0x000FD7, "Harman Music Group", "HARMAN-MUSIC-GROUP" }, { 0x000FD8, "Force, Inc.", "FORCE" }, { 0x000FD9, "FlexDSL Telecommunications AG", "FLEXDSL-TELECOMMUNICATIONS" }, { 0x000FDA, "YAZAKI CORPORATION", "YAZAKI" }, { 0x000FDB, "Westell Technologies Inc.", "WESTELL-TECHNOLOGIES" }, { 0x000FDC, "Ueda Japan Radio Co., Ltd.", "UEDA-JAPAN-RADIO" }, { 0x000FDD, "SORDIN AB", "SORDIN-AB" }, { 0x000FDE, "Sony Corporation", "SONY" }, { 0x000FDF, "SOLOMON Technology Corp.", "SOLOMON" }, { 0x000FE0, "NComputing Co.,Ltd.", "NCOMPUTING" }, { 0x000FE1, "ID DIGITAL CORPORATION", "ID-DIGITAL" }, { 0x000FE2, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x000FE3, "Damm Cellular Systems A/S", "DAMM-CELLULAR-A/S" }, { 0x000FE4, "Pantech Co.,Ltd", "PANTECH" }, { 0x000FE5, "MERCURY SECURITY CORPORATION", "MERCURY-SECURITY" }, { 0x000FE6, "MBTech Systems, Inc.", "MBTECH" }, { 0x000FE7, "Lutron Electronics Co., Inc.", "LUTRON-ELECTRONICS" }, { 0x000FE8, "Lobos, Inc.", "LOBOS" }, { 0x000FE9, "GW TECHNOLOGIES CO.,LTD.", "GW-TECHNOLOGIES" }, { 0x000FEA, "Giga-Byte Technology Co.,LTD.", "GIGA-BYTE" }, { 0x000FEB, "Cylon Controls", "CYLON-CONTROLS" }, { 0x000FEC, "ARKUS Inc.", "ARKUS" }, { 0x000FED, "Anam Electronics Co., Ltd", "ANAM-ELECTRONICS" }, { 0x000FEE, "XTec, Incorporated", "XTEC-INCORPORATED" }, { 0x000FEF, "Thales e-Transactions GmbH", "THALES-E-TRANSACTIONS" }, { 0x000FF0, "Sunray Co. Ltd.", "SUNRAY" }, { 0x000FF1, "nex-G Systems Pte.Ltd", "NEX-G-PTE" }, { 0x000FF2, "Loud Technologies Inc.", "LOUD-TECHNOLOGIES" }, { 0x000FF3, "Jung Myoung Communications&Technology", "JUNG-MYOUNG-COMMUNICATION" }, { 0x000FF4, "Guntermann & Drunck GmbH", "GUNTERMANN-DRUNCK" }, { 0x000FF5, "GN&S company", "GN-S-COMPANY" }, { 0x000FF6, "DARFON LIGHTING CORP", "DARFON-LIGHTING" }, { 0x000FF7, "Cisco Systems, Inc", "CISCO" }, { 0x000FF8, "Cisco Systems, Inc", "CISCO" }, { 0x000FF9, "Valcretec, Inc.", "VALCRETEC" }, { 0x000FFA, "Optinel Systems, Inc.", "OPTINEL" }, { 0x000FFB, "Nippon Denso Industry Co., Ltd.", "NIPPON-DENSO-INDUSTRY" }, { 0x000FFC, "Merit Li-Lin Ent.", "MERIT-LI-LIN-ENT" }, { 0x000FFD, "Glorytek Network Inc.", "GLORYTEK-NETWORK" }, { 0x000FFE, "G-PRO COMPUTER", "G-PRO" }, { 0x000FFF, "Control4", "CONTROL4" }, { 0x001000, "CABLE TELEVISION LABORATORIES, INC.", "CABLE-TELEVISION-LABORATORIES" }, { 0x001001, "Citel", "CITEL" }, { 0x001002, "ACTIA", "ACTIA" }, { 0x001003, "IMATRON, INC.", "IMATRON" }, { 0x001004, "THE BRANTLEY COILE COMPANY,INC", "THE-BRANTLEY-COILE-COMPANY" }, { 0x001005, "UEC COMMERCIAL", "UEC-COMMERCIAL" }, { 0x001006, "Thales Contact Solutions Ltd.", "THALES-CONTACT-SOLUTIONS" }, { 0x001007, "Cisco Systems, Inc", "CISCO" }, { 0x001008, "VIENNA SYSTEMS CORPORATION", "VIENNA" }, { 0x001009, "HORANET", "HORANET" }, { 0x00100A, "WILLIAMS COMMUNICATIONS GROUP", "WILLIAMS-COMMUNICATION-GROUP" }, { 0x00100B, "Cisco Systems, Inc", "CISCO" }, { 0x00100C, "ITO CO., LTD.", "ITO" }, { 0x00100D, "Cisco Systems, Inc", "CISCO" }, { 0x00100E, "MICRO LINEAR COPORATION", "MICRO-LINEAR-COPORATION" }, { 0x00100F, "INDUSTRIAL CPU SYSTEMS", "INDUSTRIAL-CPU" }, { 0x001010, "INITIO CORPORATION", "INITIO" }, { 0x001011, "Cisco Systems, Inc", "CISCO" }, { 0x001012, "PROCESSOR SYSTEMS (I) PVT LTD", "PROCESSOR-I-PVT" }, { 0x001013, "Kontron America, Inc.", "KONTRON-AMERICA" }, { 0x001014, "Cisco Systems, Inc", "CISCO" }, { 0x001015, "OOmon Inc.", "OOMON" }, { 0x001016, "T.SQWARE", "T-SQWARE" }, { 0x001017, "Bosch Access Systems GmbH", "BOSCH-ACCESS" }, { 0x001018, "Broadcom", "BROADCOM" }, { 0x001019, "SIRONA DENTAL SYSTEMS GmbH & Co. KG", "SIRONA-DENTAL" }, { 0x00101A, "PictureTel Corp.", "PICTURETEL" }, { 0x00101B, "CORNET TECHNOLOGY, INC.", "CORNET" }, { 0x00101C, "OHM TECHNOLOGIES INTL, LLC", "OHM-TECHNOLOGIES-INTL" }, { 0x00101D, "WINBOND ELECTRONICS CORP.", "WINBOND-ELECTRONICS" }, { 0x00101E, "MATSUSHITA ELECTRONIC INSTRUMENTS CORP.", "MATSUSHITA-INSTRUMENTS" }, { 0x00101F, "Cisco Systems, Inc", "CISCO" }, { 0x001020, "Hand Held Products Inc", "HAND-HELD-PRODUCTS" }, { 0x001021, "ENCANTO NETWORKS, INC.", "ENCANTO-NETWORKS" }, { 0x001022, "SatCom Media Corporation", "SATCOM-MEDIA" }, { 0x001023, "Network Equipment Technologies", "NETWORK-EQUIPMENT-TECHNOLOGIES" }, { 0x001024, "NAGOYA ELECTRIC WORKS CO., LTD", "NAGOYA-ELECTRIC-WORKS" }, { 0x001025, "Grayhill, Inc", "GRAYHILL" }, { 0x001026, "ACCELERATED NETWORKS, INC.", "ACCELERATED-NETWORKS" }, { 0x001027, "L-3 COMMUNICATIONS EAST", "L-3-COMMUNICATION-EAST" }, { 0x001028, "COMPUTER TECHNICA, INC.", "TECHNICA" }, { 0x001029, "Cisco Systems, Inc", "CISCO" }, { 0x00102A, "ZF MICROSYSTEMS, INC.", "ZF-MICROSYSTEMS" }, { 0x00102B, "UMAX DATA SYSTEMS, INC.", "UMAX-DATA" }, { 0x00102C, "Lasat Networks A/S", "LASAT-NETWORKS-A/S" }, { 0x00102D, "HITACHI SOFTWARE ENGINEERING", "HITACHI-SOFTWARE-ENGINEERING" }, { 0x00102E, "NETWORK SYSTEMS & TECHNOLOGIES PVT. LTD.", "NETWORK-TECHNOLOGIES-PVT" }, { 0x00102F, "Cisco Systems, Inc", "CISCO" }, { 0x001030, "EION Inc.", "EION" }, { 0x001031, "OBJECTIVE COMMUNICATIONS, INC.", "OBJECTIVE-COMMUNICATION" }, { 0x001032, "ALTA TECHNOLOGY", "ALTA" }, { 0x001033, "ACCESSLAN COMMUNICATIONS, INC.", "ACCESSLAN-COMMUNICATION" }, { 0x001034, "GNP Computers", "GNP-COMPUTERS" }, { 0x001035, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x001036, "INTER-TEL INTEGRATED SYSTEMS", "INTER-TEL-INTEGRATED" }, { 0x001037, "CYQ've Technology Co., Ltd.", "CYQ-VE" }, { 0x001038, "Micro Research Ltd.", "MICRO-RESEARCH" }, { 0x001039, "Vectron Systems AG", "VECTRON" }, { 0x00103A, "DIAMOND NETWORK TECH", "DIAMOND-NETWORK-TECH" }, { 0x00103B, "HIPPI NETWORKING FORUM", "HIPPI-NETWORKING-FORUM" }, { 0x00103C, "IC ENSEMBLE, INC.", "IC-ENSEMBLE" }, { 0x00103D, "PHASECOM, LTD.", "PHASECOM" }, { 0x00103E, "NETSCHOOLS CORPORATION", "NETSCHOOLS" }, { 0x00103F, "TOLLGRADE COMMUNICATIONS, INC.", "TOLLGRADE-COMMUNICATION" }, { 0x001040, "INTERMEC CORPORATION", "INTERMEC" }, { 0x001041, "BRISTOL BABCOCK, INC.", "BRISTOL-BABCOCK" }, { 0x001042, "Alacritech, Inc.", "ALACRITECH" }, { 0x001043, "A2 CORPORATION", "A2" }, { 0x001044, "InnoLabs Corporation", "INNOLABS" }, { 0x001045, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001046, "ALCORN MCBRIDE INC.", "ALCORN-MCBRIDE" }, { 0x001047, "ECHO ELETRIC CO. LTD.", "ECHO-ELETRIC" }, { 0x001048, "HTRC AUTOMATION, INC.", "HTRC-AUTOMATION" }, { 0x001049, "ShoreTel, Inc", "SHORETEL" }, { 0x00104A, "The Parvus Corporation", "THE-PARVUS" }, { 0x00104B, "3COM", "3COM" }, { 0x00104C, "Teledyne LeCroy, Inc", "TELEDYNE-LECROY" }, { 0x00104D, "SURTEC INDUSTRIES, INC.", "SURTEC-INDUSTRIES" }, { 0x00104E, "CEOLOGIC", "CEOLOGIC" }, { 0x00104F, "Oracle Corporation", "ORACLE" }, { 0x001050, "RION CO., LTD.", "RION" }, { 0x001051, "CMICRO CORPORATION", "CMICRO" }, { 0x001052, "METTLER-TOLEDO (ALBSTADT) GMBH", "METTLER-TOLEDO-ALBSTADT" }, { 0x001053, "COMPUTER TECHNOLOGY CORP.", "" }, { 0x001054, "Cisco Systems, Inc", "CISCO" }, { 0x001055, "FUJITSU MICROELECTRONICS, INC.", "FUJITSU-MICROELECTRONICS" }, { 0x001056, "SODICK CO., LTD.", "SODICK" }, { 0x001057, "Rebel.com, Inc.", "REBEL-COM" }, { 0x001058, "ArrowPoint Communications", "ARROWPOINT-COMMUNICATION" }, { 0x001059, "DIABLO RESEARCH CO. LLC", "DIABLO-RESEARCH" }, { 0x00105A, "3COM", "3COM" }, { 0x00105B, "NET INSIGHT AB", "NET-INSIGHT-AB" }, { 0x00105C, "QUANTUM DESIGNS (H.K.) LTD.", "QUANTUM-DESIGNS-H-K" }, { 0x00105D, "Draeger Medical", "DRAEGER-MEDICAL" }, { 0x00105E, "Spirent plc, Service Assurance Broadband", "SPIRENT-PLC-SERVICE-ASSURANCE-BROADBAND" }, { 0x00105F, "ZODIAC DATA SYSTEMS", "ZODIAC-DATA" }, { 0x001060, "BILLIONTON SYSTEMS, INC.", "BILLIONTON" }, { 0x001061, "HOSTLINK CORP.", "HOSTLINK" }, { 0x001062, "NX SERVER, ILNC.", "NX-SERVER-ILNC" }, { 0x001063, "STARGUIDE DIGITAL NETWORKS", "STARGUIDE-DIGITAL-NETWORKS" }, { 0x001064, "DNPG, LLC", "DNPG" }, { 0x001065, "RADYNE CORPORATION", "RADYNE" }, { 0x001066, "ADVANCED CONTROL SYSTEMS, INC.", "ADVANCED-CONTROL" }, { 0x001067, "Ericsson", "ERICSSON" }, { 0x001068, "COMOS TELECOM", "COMOS-TELECOM" }, { 0x001069, "HELIOSS COMMUNICATIONS, INC.", "HELIOSS-COMMUNICATION" }, { 0x00106A, "DIGITAL MICROWAVE CORPORATION", "DIGITAL-MICROWAVE" }, { 0x00106B, "SONUS NETWORKS, INC.", "SONUS-NETWORKS" }, { 0x00106C, "EDNT GmbH", "EDNT" }, { 0x00106D, "Axxcelera Broadband Wireless", "AXXCELERA-BROADBAND-WIRELESS" }, { 0x00106E, "TADIRAN COM. LTD.", "TADIRAN-COM" }, { 0x00106F, "TRENTON TECHNOLOGY INC.", "TRENTON" }, { 0x001070, "CARADON TREND LTD.", "CARADON-TREND" }, { 0x001071, "ADVANET INC.", "ADVANET" }, { 0x001072, "GVN TECHNOLOGIES, INC.", "GVN-TECHNOLOGIES" }, { 0x001073, "TECHNOBOX, INC.", "TECHNOBOX" }, { 0x001074, "ATEN INTERNATIONAL CO., LTD.", "ATEN" }, { 0x001075, "Segate Technology LLC", "SEGATE" }, { 0x001076, "EUREM GmbH", "EUREM" }, { 0x001077, "SAF DRIVE SYSTEMS, LTD.", "SAF-DRIVE" }, { 0x001078, "NUERA COMMUNICATIONS, INC.", "NUERA-COMMUNICATION" }, { 0x001079, "Cisco Systems, Inc", "CISCO" }, { 0x00107A, "AmbiCom, Inc.", "AMBICOM" }, { 0x00107B, "Cisco Systems, Inc", "CISCO" }, { 0x00107C, "P-COM, INC.", "P-COM" }, { 0x00107D, "AURORA COMMUNICATIONS, LTD.", "AURORA-COMMUNICATION" }, { 0x00107E, "BACHMANN ELECTRONIC GmbH", "BACHMANN" }, { 0x00107F, "CRESTRON ELECTRONICS, INC.", "CRESTRON-ELECTRONICS" }, { 0x001080, "METAWAVE COMMUNICATIONS", "METAWAVE-COMMUNICATION" }, { 0x001081, "DPS, INC.", "DPS" }, { 0x001082, "JNA TELECOMMUNICATIONS LIMITED", "JNA-TELECOMMUNICATIONS" }, { 0x001083, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x001084, "K-BOT COMMUNICATIONS", "K-BOT-COMMUNICATION" }, { 0x001085, "POLARIS COMMUNICATIONS, INC.", "POLARIS-COMMUNICATION" }, { 0x001086, "ATTO Technology, Inc.", "ATTO" }, { 0x001087, "XSTREAMIS PLC", "XSTREAMIS-PLC" }, { 0x001088, "AMERICAN NETWORKS INC.", "AMERICAN-NETWORKS" }, { 0x001089, "WebSonic", "WEBSONIC" }, { 0x00108A, "TeraLogic, Inc.", "TERALOGIC" }, { 0x00108B, "LASERANIMATION SOLLINGER GMBH", "LASERANIMATION-SOLLINGER" }, { 0x00108C, "Fujitsu Services Ltd", "FUJITSU-SERVICES" }, { 0x00108D, "Johnson Controls, Inc.", "JOHNSON-CONTROLS" }, { 0x00108E, "HUGH SYMONS CONCEPT Technologies Ltd.", "HUGH-SYMONS-CONCEPT-TECHNOLOGIES" }, { 0x00108F, "RAPTOR SYSTEMS", "RAPTOR" }, { 0x001090, "CIMETRICS, INC.", "CIMETRICS" }, { 0x001091, "NO WIRES NEEDED BV", "NO-WIRES-NEEDED" }, { 0x001092, "NETCORE INC.", "NETCORE" }, { 0x001093, "CMS COMPUTERS, LTD.", "CMS-COMPUTERS" }, { 0x001094, "Performance Analysis Broadband, Spirent plc", "PERFORMANCE-ANALYSIS-BROADBAND-SPIRENT-PLC" }, { 0x001095, "Thomson Inc.", "THOMSON" }, { 0x001096, "TRACEWELL SYSTEMS, INC.", "TRACEWELL" }, { 0x001097, "WinNet Metropolitan Communications Systems, Inc.", "WINNET-METROPOLITAN-COMMUNICATION" }, { 0x001098, "STARNET TECHNOLOGIES, INC.", "STARNET-TECHNOLOGIES" }, { 0x001099, "InnoMedia, Inc.", "INNOMEDIA" }, { 0x00109A, "NETLINE", "NETLINE" }, { 0x00109B, "Emulex Corporation", "EMULEX" }, { 0x00109C, "M-SYSTEM CO., LTD.", "M-SYSTEM" }, { 0x00109D, "CLARINET SYSTEMS, INC.", "CLARINET" }, { 0x00109E, "AWARE, INC.", "AWARE" }, { 0x00109F, "PAVO, INC.", "PAVO" }, { 0x0010A0, "INNOVEX TECHNOLOGIES, INC.", "INNOVEX-TECHNOLOGIES" }, { 0x0010A1, "KENDIN SEMICONDUCTOR, INC.", "KENDIN-SEMICONDUCTOR" }, { 0x0010A2, "TNS", "TNS" }, { 0x0010A3, "OMNITRONIX, INC.", "OMNITRONIX" }, { 0x0010A4, "XIRCOM", "XIRCOM" }, { 0x0010A5, "OXFORD INSTRUMENTS", "OXFORD-INSTRUMENTS" }, { 0x0010A6, "Cisco Systems, Inc", "CISCO" }, { 0x0010A7, "UNEX TECHNOLOGY CORPORATION", "UNEX" }, { 0x0010A8, "RELIANCE COMPUTER CORP.", "RELIANCE" }, { 0x0010A9, "ADHOC TECHNOLOGIES", "ADHOC-TECHNOLOGIES" }, { 0x0010AA, "MEDIA4, INC.", "MEDIA4" }, { 0x0010AB, "KOITO ELECTRIC INDUSTRIES, LTD.", "KOITO-ELECTRIC-INDUSTRIES" }, { 0x0010AC, "IMCI TECHNOLOGIES", "IMCI-TECHNOLOGIES" }, { 0x0010AD, "SOFTRONICS USB, INC.", "SOFTRONICS-USB" }, { 0x0010AE, "SHINKO ELECTRIC INDUSTRIES CO.", "SHINKO-ELECTRIC-INDUSTRIES" }, { 0x0010AF, "TAC SYSTEMS, INC.", "TAC" }, { 0x0010B0, "MERIDIAN TECHNOLOGY CORP.", "MERIDIAN" }, { 0x0010B1, "FOR-A CO., LTD.", "FOR-A" }, { 0x0010B2, "COACTIVE AESTHETICS", "COACTIVE-AESTHETICS" }, { 0x0010B3, "NOKIA MULTIMEDIA TERMINALS", "NOKIA-MULTIMEDIA-TERMINALS" }, { 0x0010B4, "ATMOSPHERE NETWORKS", "ATMOSPHERE-NETWORKS" }, { 0x0010B5, "Accton Technology Corp", "ACCTON" }, { 0x0010B6, "ENTRATA COMMUNICATIONS CORP.", "ENTRATA-COMMUNICATION" }, { 0x0010B7, "COYOTE TECHNOLOGIES, LLC", "COYOTE-TECHNOLOGIES" }, { 0x0010B8, "ISHIGAKI COMPUTER SYSTEM CO.", "ISHIGAKI-SYSTEM" }, { 0x0010B9, "MAXTOR CORP.", "MAXTOR" }, { 0x0010BA, "MARTINHO-DAVIS SYSTEMS, INC.", "MARTINHO-DAVIS" }, { 0x0010BB, "DATA & INFORMATION TECHNOLOGY", "DATA-INFORMATION" }, { 0x0010BC, "Aastra Telecom", "AASTRA-TELECOM" }, { 0x0010BD, "THE TELECOMMUNICATION TECHNOLOGY COMMITTEE (TTC)", "THE-TELECOMMUNICATION-COMMITTEE-TTC" }, { 0x0010BE, "MARCH NETWORKS CORPORATION", "MARCH-NETWORKS" }, { 0x0010BF, "InterAir Wireless", "INTERAIR-WIRELESS" }, { 0x0010C0, "ARMA, Inc.", "ARMA" }, { 0x0010C1, "OI ELECTRIC CO.,LTD", "OI-ELECTRIC" }, { 0x0010C2, "WILLNET, INC.", "WILLNET" }, { 0x0010C3, "CSI-CONTROL SYSTEMS", "CSI-CONTROL" }, { 0x0010C4, "MEDIA GLOBAL LINKS CO., LTD.", "MEDIA-GLOBAL-LINKS" }, { 0x0010C5, "PROTOCOL TECHNOLOGIES, INC.", "PROTOCOL-TECHNOLOGIES" }, { 0x0010C6, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x0010C7, "DATA TRANSMISSION NETWORK", "DATA-TRANSMISSION-NETWORK" }, { 0x0010C8, "COMMUNICATIONS ELECTRONICS SECURITY GROUP", "COMMUNICATION-ELECTRONICS-SECURITY-GROUP" }, { 0x0010C9, "MITSUBISHI ELECTRONICS LOGISTIC SUPPORT CO.", "MITSUBISHI-ELECTRONICS-LOGISTIC-SUPPORT" }, { 0x0010CA, "Telco Systems, Inc.", "TELCO" }, { 0x0010CB, "FACIT K.K.", "FACIT-K-K" }, { 0x0010CC, "CLP COMPUTER LOGISTIK PLANUNG GmbH", "CLP-LOGISTIK-PLANUNG" }, { 0x0010CD, "INTERFACE CONCEPT", "INTERFACE-CONCEPT" }, { 0x0010CE, "VOLAMP, LTD.", "VOLAMP" }, { 0x0010CF, "FIBERLANE COMMUNICATIONS", "FIBERLANE-COMMUNICATION" }, { 0x0010D0, "WITCOM, LTD.", "WITCOM" }, { 0x0010D1, "Top Layer Networks, Inc.", "TOP-LAYER-NETWORKS" }, { 0x0010D2, "NITTO TSUSHINKI CO., LTD", "NITTO-TSUSHINKI" }, { 0x0010D3, "GRIPS ELECTRONIC GMBH", "GRIPS" }, { 0x0010D4, "STORAGE COMPUTER CORPORATION", "STORAGE" }, { 0x0010D5, "IMASDE CANARIAS, S.A.", "IMASDE-CANARIAS" }, { 0x0010D6, "Exelis", "EXELIS" }, { 0x0010D7, "ARGOSY RESEARCH INC.", "ARGOSY-RESEARCH" }, { 0x0010D8, "CALISTA", "CALISTA" }, { 0x0010D9, "IBM JAPAN, FUJISAWA MT+D", "IBM-JAPAN-FUJISAWA-MT+D" }, { 0x0010DA, "Kollmorgen Corp", "KOLLMORGEN" }, { 0x0010DB, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x0010DC, "MICRO-STAR INTERNATIONAL CO., LTD.", "MICRO-STAR" }, { 0x0010DD, "ENABLE SEMICONDUCTOR, INC.", "ENABLE-SEMICONDUCTOR" }, { 0x0010DE, "INTERNATIONAL DATACASTING CORPORATION", "DATACASTING" }, { 0x0010DF, "RISE COMPUTER INC.", "RISE" }, { 0x0010E0, "Oracle Corporation", "ORACLE" }, { 0x0010E1, "S.I. TECH, INC.", "S-I-TECH" }, { 0x0010E2, "ArrayComm, Inc.", "ARRAYCOMM" }, { 0x0010E3, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x0010E4, "NSI CORPORATION", "NSI" }, { 0x0010E5, "SOLECTRON TEXAS", "SOLECTRON-TEXAS" }, { 0x0010E6, "APPLIED INTELLIGENT SYSTEMS, INC.", "APPLIED-INTELLIGENT" }, { 0x0010E7, "Breezecom, Ltd.", "BREEZECOM" }, { 0x0010E8, "TELOCITY, INCORPORATED", "TELOCITY-INCORPORATED" }, { 0x0010E9, "RAIDTEC LTD.", "RAIDTEC" }, { 0x0010EA, "ADEPT TECHNOLOGY", "ADEPT" }, { 0x0010EB, "SELSIUS SYSTEMS, INC.", "SELSIUS" }, { 0x0010EC, "Embedded Planet", "EMBEDDED-PLANET" }, { 0x0010ED, "SUNDANCE TECHNOLOGY, INC.", "SUNDANCE" }, { 0x0010EE, "CTI PRODUCTS, INC.", "CTI-PRODUCTS" }, { 0x0010EF, "DBTEL INCORPORATED", "DBTEL-INCORPORATED" }, { 0x0010F0, "RITTAL-WERK RUDOLF LOH GmbH & Co.", "RITTAL-WERK-RUDOLF-LOH" }, { 0x0010F1, "I-O CORPORATION", "I-O" }, { 0x0010F2, "ANTEC", "ANTEC" }, { 0x0010F3, "Nexcom International Co., Ltd.", "NEXCOM" }, { 0x0010F4, "Vertical Communications", "VERTICAL-COMMUNICATION" }, { 0x0010F5, "AMHERST SYSTEMS, INC.", "AMHERST" }, { 0x0010F6, "Cisco Systems, Inc", "CISCO" }, { 0x0010F7, "IRIICHI TECHNOLOGIES Inc.", "IRIICHI-TECHNOLOGIES" }, { 0x0010F8, "TEXIO TECHNOLOGY CORPORATION", "TEXIO" }, { 0x0010F9, "UNIQUE SYSTEMS, INC.", "UNIQUE" }, { 0x0010FA, "Apple, Inc.", "APPLE" }, { 0x0010FB, "ZIDA TECHNOLOGIES LIMITED", "ZIDA-TECHNOLOGIES" }, { 0x0010FC, "BROADBAND NETWORKS, INC.", "BROADBAND-NETWORKS" }, { 0x0010FD, "COCOM A/S", "COCOM-A/S" }, { 0x0010FE, "DIGITAL EQUIPMENT CORPORATION", "DIGITAL-EQUIPMENT" }, { 0x0010FF, "Cisco Systems, Inc", "CISCO" }, { 0x001100, "Schneider Electric", "SCHNEIDER-ELECTRIC" }, { 0x001101, "CET Technologies Pte Ltd", "CET-TECHNOLOGIES-PTE" }, { 0x001102, "Aurora Multimedia Corp.", "AURORA-MULTIMEDIA" }, { 0x001103, "kawamura electric inc.", "KAWAMURA-ELECTRIC" }, { 0x001104, "TELEXY", "TELEXY" }, { 0x001105, "Sunplus Technology Co., Ltd.", "SUNPLUS" }, { 0x001106, "Siemens NV (Belgium)", "SIEMENS-NV-BELGIUM" }, { 0x001107, "RGB Networks Inc.", "RGB-NETWORKS" }, { 0x001108, "Orbital Data Corporation", "ORBITAL-DATA" }, { 0x001109, "Micro-Star International", "MICRO-STAR" }, { 0x00110A, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x00110B, "Franklin Technology Systems", "FRANKLIN" }, { 0x00110C, "Atmark Techno, Inc.", "ATMARK-TECHNO" }, { 0x00110D, "SANBlaze Technology, Inc.", "SANBLAZE" }, { 0x00110E, "Tsurusaki Sealand Transportation Co. Ltd.", "TSURUSAKI-SEALAND-TRANSPORTATION" }, { 0x00110F, "netplat,Inc.", "NETPLAT" }, { 0x001110, "Maxanna Technology Co., Ltd.", "MAXANNA" }, { 0x001111, "Intel Corporation", "INTEL" }, { 0x001112, "Honeywell CMSS", "HONEYWELL-CMSS" }, { 0x001113, "Fraunhofer FOKUS", "FRAUNHOFER-FOKUS" }, { 0x001114, "EverFocus Electronics Corp.", "EVERFOCUS-ELECTRONICS" }, { 0x001115, "EPIN Technologies, Inc.", "EPIN-TECHNOLOGIES" }, { 0x001116, "COTEAU VERT CO., LTD.", "COTEAU-VERT" }, { 0x001117, "CESNET", "CESNET" }, { 0x001118, "BLX IC Design Corp., Ltd.", "BLX-IC-DESIGN" }, { 0x001119, "Solteras, Inc.", "SOLTERAS" }, { 0x00111A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x00111B, "Targa Systems Div L-3 Communications", "TARGA-DIV-L-3-COMMUNICATION" }, { 0x00111C, "Pleora Technologies Inc.", "PLEORA-TECHNOLOGIES" }, { 0x00111D, "Hectrix Limited", "HECTRIX" }, { 0x00111E, "ETHERNET Powerlink Standarization Group (EPSG)", "ETHERNET-POWERLINK-STANDARIZATION-GROUP-EPSG" }, { 0x00111F, "Doremi Labs, Inc.", "DOREMI-LABS" }, { 0x001120, "Cisco Systems, Inc", "CISCO" }, { 0x001121, "Cisco Systems, Inc", "CISCO" }, { 0x001122, "CIMSYS Inc", "CIMSYS" }, { 0x001123, "Appointech, Inc.", "APPOINTECH" }, { 0x001124, "Apple, Inc.", "APPLE" }, { 0x001125, "IBM Corp", "IBM" }, { 0x001126, "Venstar Inc.", "VENSTAR" }, { 0x001127, "TASI, Inc", "TASI" }, { 0x001128, "Streamit", "STREAMIT" }, { 0x001129, "Paradise Datacom Ltd.", "PARADISE-DATACOM" }, { 0x00112A, "Niko NV", "NIKO-NV" }, { 0x00112B, "NetModule AG", "NETMODULE" }, { 0x00112C, "IZT GmbH", "IZT" }, { 0x00112D, "iPulse Systems", "IPULSE" }, { 0x00112E, "CEICOM", "CEICOM" }, { 0x00112F, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x001130, "Allied Telesis (Hong Kong) Ltd.", "ALLIED-TELESIS-HONG-KONG" }, { 0x001131, "UNATECH. CO.,LTD", "UNATECH" }, { 0x001132, "Synology Incorporated", "SYNOLOGY-INCORPORATED" }, { 0x001133, "Siemens AG Austria", "SIEMENS-AUSTRIA" }, { 0x001134, "MediaCell, Inc.", "MEDIACELL" }, { 0x001135, "Grandeye Ltd", "GRANDEYE" }, { 0x001136, "Goodrich Sensor Systems", "GOODRICH-SENSOR" }, { 0x001137, "AICHI ELECTRIC CO., LTD.", "AICHI-ELECTRIC" }, { 0x001138, "TAISHIN CO., LTD.", "TAISHIN" }, { 0x001139, "STOEBER ANTRIEBSTECHNIK GmbH + Co. KG.", "STOEBER-ANTRIEBSTECHNIK" }, { 0x00113A, "SHINBORAM", "SHINBORAM" }, { 0x00113B, "Micronet Communications Inc.", "MICRONET-COMMUNICATION" }, { 0x00113C, "Micronas GmbH", "MICRONAS" }, { 0x00113D, "KN SOLTEC CO.,LTD.", "KN-SOLTEC" }, { 0x00113E, "JL Corporation", "JL" }, { 0x00113F, "Alcatel DI", "ALCATEL-DI" }, { 0x001140, "Nanometrics Inc.", "NANOMETRICS" }, { 0x001141, "GoodMan Corporation", "GOODMAN" }, { 0x001142, "e-SMARTCOM INC.", "E-SMARTCOM" }, { 0x001143, "Dell Inc.", "DELL" }, { 0x001144, "Assurance Technology Corp", "ASSURANCE" }, { 0x001145, "ValuePoint Networks", "VALUEPOINT-NETWORKS" }, { 0x001146, "Telecard-Pribor Ltd", "TELECARD-PRIBOR" }, { 0x001147, "Secom-Industry co.LTD.", "SECOM-INDUSTRY" }, { 0x001148, "Prolon Control Systems", "PROLON-CONTROL" }, { 0x001149, "Proliphix Inc.", "PROLIPHIX" }, { 0x00114A, "KAYABA INDUSTRY Co,.Ltd.", "KAYABA-INDUSTRY" }, { 0x00114B, "Francotyp-Postalia GmbH", "FRANCOTYP-POSTALIA" }, { 0x00114C, "caffeina applied research ltd.", "CAFFEINA-APPLIED-RESEARCH" }, { 0x00114D, "Atsumi Electric Co.,LTD.", "ATSUMI-ELECTRIC" }, { 0x00114E, "690885 Ontario Inc.", "690885-ONTARIO" }, { 0x00114F, "US Digital Television, Inc", "US-DIGITAL-TELEVISION" }, { 0x001150, "Belkin Corporation", "BELKIN" }, { 0x001151, "Mykotronx", "MYKOTRONX" }, { 0x001152, "Eidsvoll Electronics AS", "EIDSVOLL-ELECTRONICS-AS" }, { 0x001153, "Trident Tek, Inc.", "TRIDENT-TEK" }, { 0x001154, "Webpro Technologies Inc.", "WEBPRO-TECHNOLOGIES" }, { 0x001155, "Sevis Systems", "SEVIS" }, { 0x001156, "Pharos Systems NZ", "PHAROS-NZ" }, { 0x001157, "Oki Electric Industry Co., Ltd.", "OKI-ELECTRIC-INDUSTRY" }, { 0x001158, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001159, "MATISSE NETWORKS INC", "MATISSE-NETWORKS" }, { 0x00115A, "Ivoclar Vivadent AG", "IVOCLAR-VIVADENT" }, { 0x00115B, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x00115C, "Cisco Systems, Inc", "CISCO" }, { 0x00115D, "Cisco Systems, Inc", "CISCO" }, { 0x00115E, "ProMinent Dosiertechnik GmbH", "PROMINENT-DOSIERTECHNIK" }, { 0x00115F, "ITX Security Co., Ltd.", "ITX-SECURITY" }, { 0x001160, "ARTDIO Company Co., LTD", "ARTDIO-COMPANY" }, { 0x001161, "NetStreams, LLC", "NETSTREAMS" }, { 0x001162, "STAR MICRONICS CO.,LTD.", "STAR-MICRONICS" }, { 0x001163, "SYSTEM SPA DEPT. ELECTRONICS", "SYSTEM-SPA-DEPT-ELECTRONICS" }, { 0x001164, "ACARD Technology Corp.", "ACARD" }, { 0x001165, "ZNYX Networks, Inc.", "ZNYX-NETWORKS" }, { 0x001166, "Taelim Electronics Co., Ltd.", "TAELIM-ELECTRONICS" }, { 0x001167, "Integrated System Solution Corp.", "INTEGRATED-SYSTEM-SOLUTION" }, { 0x001168, "HomeLogic LLC", "HOMELOGIC" }, { 0x001169, "EMS Satcom", "EMS-SATCOM" }, { 0x00116A, "Domo Ltd", "DOMO" }, { 0x00116B, "Digital Data Communications Asia Co.,Ltd", "DIGITAL-DATA-COMMUNICATION-ASIA" }, { 0x00116C, "Nanwang Multimedia Inc.,Ltd", "NANWANG-MULTIMEDIA" }, { 0x00116D, "American Time and Signal", "AMERICAN-TIME-AND-SIGNAL" }, { 0x00116E, "Peplink International Ltd.", "PEPLINK" }, { 0x00116F, "Netforyou Co., LTD.", "NETFORYOU" }, { 0x001170, "GSC SRL", "GSC-SRL" }, { 0x001171, "DEXTER Communications, Inc.", "DEXTER-COMMUNICATION" }, { 0x001172, "COTRON CORPORATION", "COTRON" }, { 0x001173, "SMART Storage Systems", "SMART-STORAGE" }, { 0x001174, "Mojo Networks, Inc.", "MOJO-NETWORKS" }, { 0x001175, "Intel Corporation", "INTEL" }, { 0x001176, "Intellambda Systems, Inc.", "INTELLAMBDA" }, { 0x001177, "Coaxial Networks, Inc.", "COAXIAL-NETWORKS" }, { 0x001178, "Chiron Technology Ltd", "CHIRON" }, { 0x001179, "Singular Technology Co. Ltd.", "SINGULAR" }, { 0x00117A, "Singim International Corp.", "SINGIM" }, { 0x00117B, "Büchi Labortechnik AG", "BUECHI-LABORTECHNIK" }, { 0x00117C, "e-zy.net", "E-ZY-NET" }, { 0x00117D, "ZMD America, Inc.", "ZMD-AMERICA" }, { 0x00117E, "Midmark Corp", "MIDMARK" }, { 0x00117F, "Neotune Information Technology Corporation,.LTD", "NEOTUNE-INFORMATION" }, { 0x001180, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001181, "InterEnergy Co.Ltd,", "INTERENERGY" }, { 0x001182, "IMI Norgren Ltd", "IMI-NORGREN" }, { 0x001183, "Datalogic ADC, Inc.", "DATALOGIC-ADC" }, { 0x001184, "Humo Laboratory,Ltd.", "HUMO-LABORATORY" }, { 0x001185, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x001186, "Prime Systems, Inc.", "PRIME" }, { 0x001187, "Category Solutions, Inc", "CATEGORY-SOLUTIONS" }, { 0x001188, "Enterasys", "ENTERASYS" }, { 0x001189, "Aerotech Inc", "AEROTECH" }, { 0x00118A, "Viewtran Technology Limited", "VIEWTRAN" }, { 0x00118B, "Alcatel-Lucent Enterprise", "ALCATEL-LUCENT" }, { 0x00118C, "Missouri Department of Transportation", "MISSOURI-DEPARTMENT-OF-TRANSPORTATION" }, { 0x00118D, "Hanchang System Corp.", "HANCHANG-SYSTEM" }, { 0x00118E, "Halytech Mace", "HALYTECH-MACE" }, { 0x00118F, "EUTECH INSTRUMENTS PTE. LTD.", "EUTECH-INSTRUMENTS-PTE" }, { 0x001190, "Digital Design Corporation", "DIGITAL-DESIGN" }, { 0x001191, "CTS-Clima Temperatur Systeme GmbH", "CTS-CLIMA-TEMPERATUR-SYSTEME" }, { 0x001192, "Cisco Systems, Inc", "CISCO" }, { 0x001193, "Cisco Systems, Inc", "CISCO" }, { 0x001194, "Chi Mei Communication Systems, Inc.", "CHI-MEI-COMMUNICATION" }, { 0x001195, "D-Link Corporation", "D-LINK" }, { 0x001196, "Actuality Systems, Inc.", "ACTUALITY" }, { 0x001197, "Monitoring Technologies Limited", "MONITORING-TECHNOLOGIES" }, { 0x001198, "Prism Media Products Limited", "PRISM-MEDIA-PRODUCTS" }, { 0x001199, "2wcom Systems GmbH", "2WCOM" }, { 0x00119A, "Alkeria srl", "ALKERIA-SRL" }, { 0x00119B, "Telesynergy Research Inc.", "TELESYNERGY-RESEARCH" }, { 0x00119C, "EP&T Energy", "EP-T-ENERGY" }, { 0x00119D, "Diginfo Technology Corporation", "DIGINFO" }, { 0x00119E, "Solectron Brazil", "SOLECTRON-BRAZIL" }, { 0x00119F, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0011A0, "Vtech Engineering Canada Ltd", "VTECH-ENGINEERING-CANADA" }, { 0x0011A1, "VISION NETWARE CO.,LTD", "VISION-NETWARE" }, { 0x0011A2, "Manufacturing Technology Inc", "MANUFACTURING" }, { 0x0011A3, "LanReady Technologies Inc.", "LANREADY-TECHNOLOGIES" }, { 0x0011A4, "JStream Technologies Inc.", "JSTREAM-TECHNOLOGIES" }, { 0x0011A5, "Fortuna Electronic Corp.", "FORTUNA" }, { 0x0011A6, "Sypixx Networks", "SYPIXX-NETWORKS" }, { 0x0011A7, "Infilco Degremont Inc.", "INFILCO-DEGREMONT" }, { 0x0011A8, "Quest Technologies", "QUEST-TECHNOLOGIES" }, { 0x0011A9, "Nurivoice Co., Ltd", "NURIVOICE" }, { 0x0011AA, "Uniclass Technology, Co., LTD", "UNICLASS" }, { 0x0011AB, "TRUSTABLE TECHNOLOGY CO.,LTD.", "TRUSTABLE" }, { 0x0011AC, "Simtec Electronics", "SIMTEC-ELECTRONICS" }, { 0x0011AD, "Shanghai Ruijie Technology", "SHANGHAI-RUIJIE" }, { 0x0011AE, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0011AF, "Medialink-i,Inc", "MEDIALINK-I" }, { 0x0011B0, "Fortelink Inc.", "FORTELINK" }, { 0x0011B1, "BlueExpert Technology Corp.", "BLUEEXPERT" }, { 0x0011B2, "2001 Technology Inc.", "2001" }, { 0x0011B3, "YOSHIMIYA CO.,LTD.", "YOSHIMIYA" }, { 0x0011B4, "Westermo Network Technologies AB", "WESTERMO-NETWORK-TECHNOLOGIES-AB" }, { 0x0011B5, "Shenzhen Powercom Co.,Ltd", "SHENZHEN-POWERCOM" }, { 0x0011B6, "Open Systems International", "OPEN" }, { 0x0011B7, "Octalix B.V.", "OCTALIX-B-V" }, { 0x0011B8, "Liebherr - Elektronik GmbH", "LIEBHERR-ELEKTRONIK" }, { 0x0011B9, "Inner Range Pty. Ltd.", "INNER-RANGE-PTY" }, { 0x0011BA, "Elexol Pty Ltd", "ELEXOL-PTY" }, { 0x0011BB, "Cisco Systems, Inc", "CISCO" }, { 0x0011BC, "Cisco Systems, Inc", "CISCO" }, { 0x0011BD, "Bombardier Transportation", "BOMBARDIER-TRANSPORTATION" }, { 0x0011BE, "AGP Telecom Co. Ltd", "AGP-TELECOM" }, { 0x0011BF, "AESYS S.p.A.", "AESYS" }, { 0x0011C0, "Aday Technology Inc", "ADAY" }, { 0x0011C1, "4P MOBILE DATA PROCESSING", "4P-MOBILE-DATA-PROCESSING" }, { 0x0011C2, "United Fiber Optic Communication", "UNITED-FIBER-OPTIC-COMMUNICATION" }, { 0x0011C3, "Transceiving System Technology Corporation", "TRANSCEIVING-SYSTEM" }, { 0x0011C4, "Terminales de Telecomunicacion Terrestre, S.L.", "TERMINALES-DE-TELECOMUNICACION-TERRESTRE" }, { 0x0011C5, "TEN Technology", "TEN" }, { 0x0011C6, "Seagate Technology", "SEAGATE" }, { 0x0011C7, "Raymarine UK Ltd", "RAYMARINE-UK" }, { 0x0011C8, "Powercom Co., Ltd.", "POWERCOM" }, { 0x0011C9, "MTT Corporation", "MTT" }, { 0x0011CA, "Long Range Systems, Inc.", "LONG-RANGE" }, { 0x0011CB, "Jacobsons AB", "JACOBSONS-AB" }, { 0x0011CC, "Guangzhou Jinpeng Group Co.,Ltd.", "GUANGZHOU-JINPENG-GROUP" }, { 0x0011CD, "Axsun Technologies", "AXSUN-TECHNOLOGIES" }, { 0x0011CE, "Ubisense Limited", "UBISENSE" }, { 0x0011CF, "Thrane & Thrane A/S", "THRANE-THRANE-A/S" }, { 0x0011D0, "Tandberg Data ASA", "TANDBERG-DATA-ASA" }, { 0x0011D1, "Soft Imaging System GmbH", "SOFT-IMAGING-SYSTEM" }, { 0x0011D2, "Perception Digital Ltd", "PERCEPTION-DIGITAL" }, { 0x0011D3, "NextGenTel Holding ASA", "NEXTGENTEL-HOLDING-ASA" }, { 0x0011D4, "NetEnrich, Inc", "NETENRICH" }, { 0x0011D5, "Hangzhou Sunyard System Engineering Co.,Ltd.", "HANGZHOU-SUNYARD-SYSTEM-ENGINEERING" }, { 0x0011D6, "HandEra, Inc.", "HANDERA" }, { 0x0011D7, "eWerks Inc", "EWERKS" }, { 0x0011D8, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x0011D9, "TiVo", "TIVO" }, { 0x0011DA, "Vivaas Technology Inc.", "VIVAAS" }, { 0x0011DB, "Land-Cellular Corporation", "LAND-CELLULAR" }, { 0x0011DC, "Glunz & Jensen", "GLUNZ-JENSEN" }, { 0x0011DD, "FROMUS TEC. Co., Ltd.", "FROMUS-TEC" }, { 0x0011DE, "EURILOGIC", "EURILOGIC" }, { 0x0011DF, "Current Energy", "CURRENT-ENERGY" }, { 0x0011E0, "U-MEDIA Communications, Inc.", "U-MEDIA-COMMUNICATION" }, { 0x0011E1, "Arcelik A.S", "ARCELIK" }, { 0x0011E2, "Hua Jung Components Co., Ltd.", "HUA-JUNG-COMPONENTS" }, { 0x0011E3, "Thomson, Inc.", "THOMSON" }, { 0x0011E4, "Danelec Electronics A/S", "DANELEC-ELECTRONICS-A/S" }, { 0x0011E5, "KCodes Corporation", "KCODES" }, { 0x0011E6, "Scientific Atlanta", "SCIENTIFIC-ATLANTA" }, { 0x0011E7, "WORLDSAT - Texas de France", "WORLDSAT-TEXAS-DE-FRANCE" }, { 0x0011E8, "Tixi.Com", "TIXI-COM" }, { 0x0011E9, "STARNEX CO., LTD.", "STARNEX" }, { 0x0011EA, "IWICS Inc.", "IWICS" }, { 0x0011EB, "Innovative Integration", "INNOVATIVE-INTEGRATION" }, { 0x0011EC, "AVIX INC.", "AVIX" }, { 0x0011ED, "802 Global", "802-GLOBAL" }, { 0x0011EE, "Estari, Inc.", "ESTARI" }, { 0x0011EF, "Conitec Datensysteme GmbH", "CONITEC-DATENSYSTEME" }, { 0x0011F0, "Wideful Limited", "WIDEFUL" }, { 0x0011F1, "QinetiQ Ltd", "QINETIQ" }, { 0x0011F2, "Institute of Network Technologies", "INSTITUTE-OF-NETWORK-TECHNOLOGIES" }, { 0x0011F3, "NeoMedia Europe AG", "NEOMEDIA-EUROPE" }, { 0x0011F4, "woori-net", "WOORI-NET" }, { 0x0011F5, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x0011F6, "Asia Pacific Microsystems , Inc.", "ASIA-PACIFIC-MICROSYSTEMS" }, { 0x0011F7, "Shenzhen Forward Industry Co., Ltd", "SHENZHEN-FORWARD-INDUSTRY" }, { 0x0011F8, "AIRAYA Corp", "AIRAYA" }, { 0x0011F9, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x0011FA, "Rane Corporation", "RANE" }, { 0x0011FB, "Heidelberg Engineering GmbH", "HEIDELBERG-ENGINEERING" }, { 0x0011FC, "HARTING Electronics GmbH", "HARTING-ELECTRONICS" }, { 0x0011FD, "KORG INC.", "KORG" }, { 0x0011FE, "Keiyo System Research, Inc.", "KEIYO-SYSTEM-RESEARCH" }, { 0x0011FF, "Digitro Tecnologia Ltda", "DIGITRO-TECNOLOGIA-LTDA" }, { 0x001200, "Cisco Systems, Inc", "CISCO" }, { 0x001201, "Cisco Systems, Inc", "CISCO" }, { 0x001202, "Decrane Aerospace - Audio International Inc.", "DECRANE-AEROSPACE-AUDIO" }, { 0x001203, "ActivNetworks", "ACTIVNETWORKS" }, { 0x001204, "u10 Networks, Inc.", "U10-NETWORKS" }, { 0x001205, "Terrasat Communications, Inc.", "TERRASAT-COMMUNICATION" }, { 0x001206, "iQuest (NZ) Ltd", "IQUEST-NZ" }, { 0x001207, "Head Strong International Limited", "HEAD-STRONG" }, { 0x001208, "Gantner Instruments GmbH", "GANTNER-INSTRUMENTS" }, { 0x001209, "Fastrax Ltd", "FASTRAX" }, { 0x00120A, "Emerson Climate Technologies GmbH", "EMERSON-CLIMATE-TECHNOLOGIES" }, { 0x00120B, "Chinasys Technologies Limited", "CHINASYS-TECHNOLOGIES" }, { 0x00120C, "CE-Infosys Pte Ltd", "CE-INFOSYS-PTE" }, { 0x00120D, "Advanced Telecommunication Technologies, Inc.", "ADVANCED-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x00120E, "AboCom", "ABOCOM" }, { 0x00120F, "IEEE 802.3", "IEEE-802-3" }, { 0x001210, "WideRay Corp", "WIDERAY" }, { 0x001211, "Protechna Herbst GmbH & Co. KG", "PROTECHNA-HERBST" }, { 0x001212, "PLUS Corporation", "PLUS" }, { 0x001213, "Metrohm AG", "METROHM" }, { 0x001214, "Koenig & Bauer AG", "KOENIG-BAUER" }, { 0x001215, "iStor Networks, Inc.", "ISTOR-NETWORKS" }, { 0x001216, "ICP Internet Communication Payment AG", "ICP-INTERNET-COMMUNICATION-PAYMENT" }, { 0x001217, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x001218, "ARUZE Corporation", "ARUZE" }, { 0x001219, "General Datacomm LLC", "GENERAL-DATACOMM" }, { 0x00121A, "Techno Soft Systemnics Inc.", "TECHNO-SOFT-SYSTEMNICS" }, { 0x00121B, "Sound Devices, LLC", "SOUND-DEVICES" }, { 0x00121C, "PARROT SA", "PARROT" }, { 0x00121D, "Netfabric Corporation", "NETFABRIC" }, { 0x00121E, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x00121F, "Harding Instruments", "HARDING-INSTRUMENTS" }, { 0x001220, "Cadco Systems", "CADCO" }, { 0x001221, "B.Braun Melsungen AG", "B-BRAUN-MELSUNGEN" }, { 0x001222, "Skardin (UK) Ltd", "SKARDIN-UK" }, { 0x001223, "Pixim", "PIXIM" }, { 0x001224, "NexQL Corporation", "NEXQL" }, { 0x001225, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001226, "Japan Direx Corporation", "JAPAN-DIREX" }, { 0x001227, "Franklin Electric Co., Inc.", "FRANKLIN-ELECTRIC" }, { 0x001228, "Data Ltd.", "DATA" }, { 0x001229, "BroadEasy Technologies Co.,Ltd", "BROADEASY-TECHNOLOGIES" }, { 0x00122A, "VTech Telecommunications Ltd.", "VTECH-TELECOMMUNICATIONS" }, { 0x00122B, "Virbiage Pty Ltd", "VIRBIAGE-PTY" }, { 0x00122C, "Soenen Controls N.V.", "SOENEN-CONTROLS-N-V" }, { 0x00122D, "SiNett Corporation", "SINETT" }, { 0x00122E, "Signal Technology - AISD", "SIGNAL-AISD" }, { 0x00122F, "Sanei Electric Inc.", "SANEI-ELECTRIC" }, { 0x001230, "Picaso Infocommunication CO., LTD.", "PICASO-INFOCOMMUNICATION" }, { 0x001231, "Motion Control Systems, Inc.", "MOTION-CONTROL" }, { 0x001232, "LeWiz Communications Inc.", "LEWIZ-COMMUNICATION" }, { 0x001233, "JRC TOKKI Co.,Ltd.", "JRC-TOKKI" }, { 0x001234, "Camille Bauer", "CAMILLE-BAUER" }, { 0x001235, "Andrew Corporation", "ANDREW" }, { 0x001236, "ConSentry Networks", "CONSENTRY-NETWORKS" }, { 0x001237, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x001238, "SetaBox Technology Co., Ltd.", "SETABOX" }, { 0x001239, "S Net Systems Inc.", "S-NET" }, { 0x00123A, "Posystech Inc., Co.", "POSYSTECH" }, { 0x00123B, "KeRo Systems ApS", "KERO-APS" }, { 0x00123C, "Second Rule LLC", "SECOND-RULE" }, { 0x00123D, "GES Co, Ltd", "GES" }, { 0x00123E, "ERUNE technology Co., Ltd.", "ERUNE" }, { 0x00123F, "Dell Inc.", "DELL" }, { 0x001240, "AMOI ELECTRONICS CO.,LTD", "AMOI-ELECTRONICS" }, { 0x001241, "a2i marketing center", "A2I-MARKETING-CENTER" }, { 0x001242, "Millennial Net", "MILLENNIAL-NET" }, { 0x001243, "Cisco Systems, Inc", "CISCO" }, { 0x001244, "Cisco Systems, Inc", "CISCO" }, { 0x001245, "Zellweger Analytics, Inc.", "ZELLWEGER-ANALYTICS" }, { 0x001246, "T.O.M TECHNOLOGY INC..", "T-O-M" }, { 0x001247, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x001248, "Dell EMC", "DELL-EMC" }, { 0x001249, "Delta Elettronica S.p.A.", "DELTA-ELETTRONICA" }, { 0x00124A, "Dedicated Devices, Inc.", "DEDICATED-DEVICES" }, { 0x00124B, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x00124C, "BBWM Corporation", "BBWM" }, { 0x00124D, "Inducon BV", "INDUCON" }, { 0x00124E, "XAC AUTOMATION CORP.", "XAC-AUTOMATION" }, { 0x00124F, "nVent", "NVENT" }, { 0x001250, "Tokyo Aircaft Instrument Co., Ltd.", "TOKYO-AIRCAFT-INSTRUMENT" }, { 0x001251, "SILINK", "SILINK" }, { 0x001252, "Citronix, LLC", "CITRONIX" }, { 0x001253, "AudioDev AB", "AUDIODEV-AB" }, { 0x001254, "Spectra Technologies Holdings Company Ltd", "SPECTRA-TECHNOLOGIES-HOLDINGS-COMPANY" }, { 0x001255, "NetEffect Incorporated", "NETEFFECT-INCORPORATED" }, { 0x001256, "LG INFORMATION & COMM.", "LG-INFORMATION-COMM" }, { 0x001257, "LeapComm Communication Technologies Inc.", "LEAPCOMM-COMMUNICATION-TECHNOLOGIES" }, { 0x001258, "TechVoIP Sp z o.o.", "TECHVOIP-SP-Z-O-O" }, { 0x001259, "THERMO ELECTRON KARLSRUHE", "THERMO-ELECTRON-KARLSRUHE" }, { 0x00125A, "Microsoft Corporation", "MICROSOFT" }, { 0x00125B, "KAIMEI ELECTRONI", "KAIMEI-ELECTRONI" }, { 0x00125C, "Green Hills Software, Inc.", "GREEN-HILLS-SOFTWARE" }, { 0x00125D, "CyberNet Inc.", "CYBERNET" }, { 0x00125E, "CAEN", "CAEN" }, { 0x00125F, "AWIND Inc.", "AWIND" }, { 0x001260, "Stanton Magnetics,inc.", "STANTON-MAGNETICS" }, { 0x001261, "Adaptix, Inc", "ADAPTIX" }, { 0x001262, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001263, "Data Voice Technologies GmbH", "DATA-VOICE-TECHNOLOGIES" }, { 0x001264, "daum electronic gmbh", "DAUM" }, { 0x001265, "Enerdyne Technologies, Inc.", "ENERDYNE-TECHNOLOGIES" }, { 0x001266, "Swisscom Hospitality Services SA", "SWISSCOM-HOSPITALITY-SERVICES" }, { 0x001267, "Panasonic Corporation", "PANASONIC" }, { 0x001268, "IPS d.o.o.", "IPS-D-O-O" }, { 0x001269, "Value Electronics", "VALUE-ELECTRONICS" }, { 0x00126A, "OPTOELECTRONICS Co., Ltd.", "OPTOELECTRONICS" }, { 0x00126B, "Ascalade Communications Limited", "ASCALADE-COMMUNICATION" }, { 0x00126C, "Visonic Technologies 1993 Ltd.", "VISONIC-TECHNOLOGIES-1993" }, { 0x00126D, "University of California, Berkeley", "UNIVERSITY-OF-CALIFORNIA-BERKELEY" }, { 0x00126E, "Seidel Elektronik GmbH Nfg.KG", "SEIDEL-ELEKTRONIK-NFG" }, { 0x00126F, "Rayson Technology Co., Ltd.", "RAYSON" }, { 0x001270, "NGES Denro Systems", "NGES-DENRO" }, { 0x001271, "Measurement Computing Corp", "MEASUREMENT-COMPUTING" }, { 0x001272, "Redux Communications Ltd.", "REDUX-COMMUNICATION" }, { 0x001273, "Stoke Inc", "STOKE" }, { 0x001274, "NIT lab", "NIT-LAB" }, { 0x001275, "Sentilla Corporation", "SENTILLA" }, { 0x001276, "CG Power Systems Ireland Limited", "CG-POWER-IRELAND" }, { 0x001277, "Korenix Technologies Co., Ltd.", "KORENIX-TECHNOLOGIES" }, { 0x001278, "International Bar Code", "BAR-CODE" }, { 0x001279, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x00127A, "Sanyu Industry Co.,Ltd.", "SANYU-INDUSTRY" }, { 0x00127B, "VIA Networking Technologies, Inc.", "VIA-NETWORKING-TECHNOLOGIES" }, { 0x00127C, "SWEGON AB", "SWEGON-AB" }, { 0x00127D, "MobileAria", "MOBILEARIA" }, { 0x00127E, "Digital Lifestyles Group, Inc.", "DIGITAL-LIFESTYLES-GROUP" }, { 0x00127F, "Cisco Systems, Inc", "CISCO" }, { 0x001280, "Cisco Systems, Inc", "CISCO" }, { 0x001281, "March Networks S.p.A.", "MARCH-NETWORKS" }, { 0x001282, "Qovia", "QOVIA" }, { 0x001283, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001284, "Lab33 Srl", "LAB33-SRL" }, { 0x001285, "Gizmondo Europe Ltd", "GIZMONDO-EUROPE" }, { 0x001286, "ENDEVCO CORP", "ENDEVCO" }, { 0x001287, "Digital Everywhere Unterhaltungselektronik GmbH", "DIGITAL-EVERYWHERE-UNTERHALTUNGSELEKTRONIK" }, { 0x001288, "2Wire Inc", "2WIRE" }, { 0x001289, "Advance Sterilization Products", "ADVANCE-STERILIZATION-PRODUCTS" }, { 0x00128A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x00128B, "Sensory Networks Inc", "SENSORY-NETWORKS" }, { 0x00128C, "Woodward Governor", "WOODWARD-GOVERNOR" }, { 0x00128D, "STB Datenservice GmbH", "STB-DATENSERVICE" }, { 0x00128E, "Q-Free ASA", "Q-FREE-ASA" }, { 0x00128F, "Montilio", "MONTILIO" }, { 0x001290, "KYOWA Electric & Machinery Corp.", "KYOWA-ELECTRIC-MACHINERY" }, { 0x001291, "KWS Computersysteme GmbH", "KWS-COMPUTERSYSTEME" }, { 0x001292, "Griffin Technology", "GRIFFIN" }, { 0x001293, "ABB Switzerland Ltd.", "ABB-SWITZERLAND" }, { 0x001294, "SUMITOMO ELECTRIC DEVICE INNOVATIONS, INC", "SUMITOMO-ELECTRIC-DEVICE-INNOVATIONS" }, { 0x001295, "Aiware Inc.", "AIWARE" }, { 0x001296, "Addlogix", "ADDLOGIX" }, { 0x001297, "O2Micro, Inc.", "O2MICRO" }, { 0x001298, "MICO ELECTRIC(SHENZHEN) LIMITED", "MICO-ELECTRIC-SHENZHEN" }, { 0x001299, "Ktech Telecommunications Inc", "KTECH-TELECOMMUNICATIONS" }, { 0x00129A, "IRT Electronics Pty Ltd", "IRT-ELECTRONICS-PTY" }, { 0x00129B, "E2S Electronic Engineering Solutions, S.L.", "E2S-ENGINEERING-SOLUTIONS" }, { 0x00129C, "Yulinet", "YULINET" }, { 0x00129D, "First International Computer do Brasil", "FIRST-DO-BRASIL" }, { 0x00129E, "Surf Communications Inc.", "SURF-COMMUNICATION" }, { 0x00129F, "RAE Systems", "RAE" }, { 0x0012A0, "NeoMeridian Sdn Bhd", "NEOMERIDIAN" }, { 0x0012A1, "BluePacket Communications Co., Ltd.", "BLUEPACKET-COMMUNICATION" }, { 0x0012A2, "VITA", "VITA" }, { 0x0012A3, "Trust International B.V.", "TRUST-B-V" }, { 0x0012A4, "ThingMagic, LLC", "THINGMAGIC" }, { 0x0012A5, "Dolphin Interconnect Solutions AS", "DOLPHIN-INTERCONNECT-SOLUTIONS-AS" }, { 0x0012A6, "Dolby Australia", "DOLBY-AUSTRALIA" }, { 0x0012A7, "ISR TECHNOLOGIES Inc", "ISR-TECHNOLOGIES" }, { 0x0012A8, "intec GmbH", "INTEC" }, { 0x0012A9, "3Com Ltd", "3COM" }, { 0x0012AA, "IEE, Inc.", "IEE" }, { 0x0012AB, "WiLife, Inc.", "WILIFE" }, { 0x0012AC, "ONTIMETEK INC.", "ONTIMETEK" }, { 0x0012AD, "VIVAVIS AG", "VIVAVIS" }, { 0x0012AE, "HLS HARD-LINE Solutions Inc.", "HLS-HARD-LINE-SOLUTIONS" }, { 0x0012AF, "ELPRO Technologies", "ELPRO-TECHNOLOGIES" }, { 0x0012B0, "Efore Oyj (Plc)", "EFORE-OYJ-PLC" }, { 0x0012B1, "Dai Nippon Printing Co., Ltd", "DAI-NIPPON-PRINTING" }, { 0x0012B2, "AVOLITES LTD.", "AVOLITES" }, { 0x0012B3, "Advance Wireless Technology Corp.", "ADVANCE-WIRELESS" }, { 0x0012B4, "Work Microwave GmbH", "WORK-MICROWAVE" }, { 0x0012B5, "Vialta, Inc.", "VIALTA" }, { 0x0012B6, "Santa Barbara Infrared, Inc.", "SANTA-BARBARA-INFRARED" }, { 0x0012B7, "PTW Freiburg", "PTW-FREIBURG" }, { 0x0012B8, "G2 Microsystems", "G2-MICROSYSTEMS" }, { 0x0012B9, "Fusion Digital Technology", "FUSION-DIGITAL" }, { 0x0012BA, "FSI Systems, Inc.", "FSI" }, { 0x0012BB, "Telecommunications Industry Association TR-41 Committee", "TELECOMMUNICATIONS-INDUSTRY-ASSOCIATION-TR-41-COMMITTEE" }, { 0x0012BC, "Echolab LLC", "ECHOLAB" }, { 0x0012BD, "Avantec Manufacturing Limited", "AVANTEC-MANUFACTURING" }, { 0x0012BE, "Astek Corporation", "ASTEK" }, { 0x0012BF, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x0012C0, "HotLava Systems, Inc.", "HOTLAVA" }, { 0x0012C1, "Check Point Software Technologies", "CHECK-POINT-SOFTWARE-TECHNOLOGIES" }, { 0x0012C2, "Apex Electronics Factory", "APEX-ELECTRONICS-FACTORY" }, { 0x0012C3, "WIT S.A.", "WIT" }, { 0x0012C4, "Viseon, Inc.", "VISEON" }, { 0x0012C5, "V-Show Technology (China) Co.,Ltd", "V-SHOW-CHINA" }, { 0x0012C6, "TGC America, Inc", "TGC-AMERICA" }, { 0x0012C7, "SECURAY Technologies Ltd.Co.", "SECURAY-TECHNOLOGIES" }, { 0x0012C8, "Perfect tech", "PERFECT-TECH" }, { 0x0012C9, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0012CA, "Mechatronic Brick Aps", "MECHATRONIC-BRICK-APS" }, { 0x0012CB, "CSS Inc.", "CSS" }, { 0x0012CC, "Bitatek CO., LTD", "BITATEK" }, { 0x0012CD, "ASEM SpA", "ASEM-SPA" }, { 0x0012CE, "Advanced Cybernetics Group", "ADVANCED-CYBERNETICS-GROUP" }, { 0x0012CF, "Accton Technology Corp", "ACCTON" }, { 0x0012D0, "Gossen-Metrawatt-GmbH", "GOSSEN-METRAWATT" }, { 0x0012D1, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0012D2, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0012D3, "Zetta Systems, Inc.", "ZETTA" }, { 0x0012D4, "Princeton Technology, Ltd", "PRINCETON" }, { 0x0012D5, "Motion Reality Inc.", "MOTION-REALITY" }, { 0x0012D6, "Jiangsu Yitong High-Tech Co.,Ltd", "JIANGSU-YITONG-HIGH-TECH" }, { 0x0012D7, "Invento Networks, Inc.", "INVENTO-NETWORKS" }, { 0x0012D8, "International Games System Co., Ltd.", "GAMES-SYSTEM" }, { 0x0012D9, "Cisco Systems, Inc", "CISCO" }, { 0x0012DA, "Cisco Systems, Inc", "CISCO" }, { 0x0012DB, "ZIEHL industrie-elektronik GmbH + Co KG", "ZIEHL-INDUSTRIE-ELEKTRONIK" }, { 0x0012DC, "SunCorp Industrial Limited", "SUNCORP-INDUSTRIAL" }, { 0x0012DD, "Shengqu Information Technology (Shanghai) Co., Ltd.", "SHENGQU-INFORMATION-SHANGHAI" }, { 0x0012DE, "Radio Components Sweden AB", "RADIO-COMPONENTS-SWEDEN-AB" }, { 0x0012DF, "Novomatic AG", "NOVOMATIC" }, { 0x0012E0, "Codan Limited", "CODAN" }, { 0x0012E1, "Alliant Networks, Inc", "ALLIANT-NETWORKS" }, { 0x0012E2, "ALAXALA Networks Corporation", "ALAXALA-NETWORKS" }, { 0x0012E3, "Agat Soft LLC", "AGAT-SOFT" }, { 0x0012E4, "ZIEHL industrie-electronik GmbH + Co KG", "ZIEHL-INDUSTRIE-ELECTRONIK" }, { 0x0012E5, "Time America, Inc.", "TIME-AMERICA" }, { 0x0012E6, "SPECTEC COMPUTER CO., LTD.", "SPECTEC" }, { 0x0012E7, "Projectek Networking Electronics Corp.", "PROJECTEK-NETWORKING-ELECTRONICS" }, { 0x0012E8, "Fraunhofer IMS", "FRAUNHOFER-IMS" }, { 0x0012E9, "Abbey Systems Ltd", "ABBEY" }, { 0x0012EA, "Trane", "TRANE" }, { 0x0012EB, "PDH Solutions, LLC", "PDH-SOLUTIONS" }, { 0x0012EC, "Movacolor b.v.", "MOVACOLOR-B-V" }, { 0x0012ED, "AVG Advanced Technologies", "AVG-ADVANCED-TECHNOLOGIES" }, { 0x0012EE, "Sony Corporation", "SONY" }, { 0x0012EF, "OneAccess SA", "ONEACCESS" }, { 0x0012F0, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0012F1, "IFOTEC", "IFOTEC" }, { 0x0012F2, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x0012F3, "u-blox AG", "U-BLOX" }, { 0x0012F4, "Belco International Co.,Ltd.", "BELCO" }, { 0x0012F5, "Imarda New Zealand Limited", "IMARDA-NEW-ZEALAND" }, { 0x0012F6, "MDK CO.,LTD.", "MDK" }, { 0x0012F7, "Xiamen Xinglian Electronics Co., Ltd.", "XIAMEN-XINGLIAN-ELECTRONICS" }, { 0x0012F8, "WNI Resources, LLC", "WNI-RESOURCES" }, { 0x0012F9, "URYU SEISAKU, LTD.", "URYU-SEISAKU" }, { 0x0012FA, "THX LTD", "THX" }, { 0x0012FB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0012FC, "PLANET System Co.,LTD", "PLANET-SYSTEM" }, { 0x0012FD, "OPTIMUS IC S.A.", "OPTIMUS-IC" }, { 0x0012FE, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0x0012FF, "Lely Industries N.V.", "LELY-INDUSTRIES-N-V" }, { 0x001300, "IT-FACTORY, INC.", "IT-FACTORY" }, { 0x001301, "IronGate S.L.", "IRONGATE" }, { 0x001302, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001303, "GateConnect", "GATECONNECT" }, { 0x001304, "Flaircomm Technologies Co. LTD", "FLAIRCOMM-TECHNOLOGIES" }, { 0x001305, "Epicom, Inc.", "EPICOM" }, { 0x001306, "Always On Wireless", "ALWAYS-ON-WIRELESS" }, { 0x001307, "Paravirtual Corporation", "PARAVIRTUAL" }, { 0x001308, "Nuvera Fuel Cells", "NUVERA-FUEL-CELLS" }, { 0x001309, "Ocean Broadband Networks", "OCEAN-BROADBAND-NETWORKS" }, { 0x00130A, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x00130B, "Mextal B.V.", "MEXTAL-B-V" }, { 0x00130C, "HF System Corporation", "HF-SYSTEM" }, { 0x00130D, "GALILEO AVIONICA", "GALILEO-AVIONICA" }, { 0x00130E, "Focusrite Audio Engineering Limited", "FOCUSRITE-AUDIO-ENGINEERING" }, { 0x00130F, "EGEMEN Bilgisayar Muh San ve Tic LTD STI", "EGEMEN-BILGISAYAR-MUH-SAN-VE-TIC-STI" }, { 0x001310, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x001311, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001312, "Amedia Networks Inc.", "AMEDIA-NETWORKS" }, { 0x001313, "GuangZhou Post & Telecom Equipment ltd", "GUANGZHOU-POST-TELECOM-EQUIPMENT" }, { 0x001314, "Asiamajor Inc.", "ASIAMAJOR" }, { 0x001315, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x001316, "L-S-B Broadcast Technologies GmbH", "L-S-B-BROADCAST-TECHNOLOGIES" }, { 0x001317, "GN Netcom A/S", "GN-NETCOM-A/S" }, { 0x001318, "DGSTATION Co., Ltd.", "DGSTATION" }, { 0x001319, "Cisco Systems, Inc", "CISCO" }, { 0x00131A, "Cisco Systems, Inc", "CISCO" }, { 0x00131B, "BeCell Innovations Corp.", "BECELL-INNOVATIONS" }, { 0x00131C, "LiteTouch, Inc.", "LITETOUCH" }, { 0x00131D, "Scanvaegt International A/S", "SCANVAEGT-A/S" }, { 0x00131E, "peiker acustic GmbH", "PEIKER-ACUSTIC" }, { 0x00131F, "NxtPhase T&D, Corp.", "NXTPHASE-T-D" }, { 0x001320, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001321, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x001322, "DAQ Electronics, Inc.", "DAQ-ELECTRONICS" }, { 0x001323, "Cap Co., Ltd.", "CAP" }, { 0x001324, "Schneider Electric Ultra Terminal", "SCHNEIDER-ELECTRIC-ULTRA-TERMINAL" }, { 0x001325, "Cortina Systems Inc", "CORTINA" }, { 0x001326, "ECM Systems Ltd", "ECM" }, { 0x001327, "Data Acquisitions limited", "DATA-ACQUISITIONS" }, { 0x001328, "Westech Korea Inc.,", "WESTECH-KOREA" }, { 0x001329, "VSST Co., LTD", "VSST" }, { 0x00132A, "Sitronics Telecom Solutions", "SITRONICS-TELECOM-SOLUTIONS" }, { 0x00132B, "Phoenix Digital", "PHOENIX-DIGITAL" }, { 0x00132C, "MAZ Brandenburg GmbH", "MAZ-BRANDENBURG" }, { 0x00132D, "iWise Communications", "IWISE-COMMUNICATION" }, { 0x00132E, "ITian Coporation", "ITIAN-COPORATION" }, { 0x00132F, "Interactek", "INTERACTEK" }, { 0x001330, "EURO PROTECTION SURVEILLANCE", "EURO-PROTECTION-SURVEILLANCE" }, { 0x001331, "CellPoint Connect", "CELLPOINT-CONNECT" }, { 0x001332, "Beijing Topsec Network Security Technology Co., Ltd.", "BEIJING-TOPSEC-NETWORK-SECURITY" }, { 0x001333, "BaudTec Corporation", "BAUDTEC" }, { 0x001334, "Arkados, Inc.", "ARKADOS" }, { 0x001335, "VS Industry Berhad", "VS-INDUSTRY-BERHAD" }, { 0x001336, "Tianjin 712 Communication Broadcasting co., ltd.", "TIANJIN-712-COMMUNICATION-BROADCASTING" }, { 0x001337, "Orient Power Home Network Ltd.", "ORIENT-POWER-HOME-NETWORK" }, { 0x001338, "FRESENIUS-VIAL", "FRESENIUS-VIAL" }, { 0x001339, "CCV Deutschland GmbH", "CCV-DEUTSCHLAND" }, { 0x00133A, "VadaTech Inc.", "VADATECH" }, { 0x00133B, "Speed Dragon Multimedia Limited", "SPEED-DRAGON-MULTIMEDIA" }, { 0x00133C, "QUINTRON SYSTEMS INC.", "QUINTRON" }, { 0x00133D, "Micro Memory Curtiss Wright Co", "MICRO-MEMORY-CURTISS-WRIGHT" }, { 0x00133E, "MetaSwitch", "METASWITCH" }, { 0x00133F, "Eppendorf Instrumente GmbH", "EPPENDORF-INSTRUMENTE" }, { 0x001340, "AD.EL s.r.l.", "AD-EL" }, { 0x001341, "Shandong New Beiyang Information Technology Co.,Ltd", "SHANDONG-NEW-BEIYANG-INFORMATION" }, { 0x001342, "Vision Research, Inc.", "VISION-RESEARCH" }, { 0x001343, "Matsushita Electronic Components (Europe) GmbH", "MATSUSHITA-COMPONENTS-EUROPE" }, { 0x001344, "Fargo Electronics Inc.", "FARGO-ELECTRONICS" }, { 0x001345, "Eaton Corporation", "EATON" }, { 0x001346, "D-Link Corporation", "D-LINK" }, { 0x001347, "Red Lion Controls, LP", "RED-LION-CONTROLS-LP" }, { 0x001348, "Artila Electronics Co., Ltd.", "ARTILA-ELECTRONICS" }, { 0x001349, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x00134A, "Engim, Inc.", "ENGIM" }, { 0x00134B, "ToGoldenNet Technology Inc.", "TOGOLDENNET" }, { 0x00134C, "YDT Technology International", "YDT" }, { 0x00134D, "Inepro BV", "INEPRO" }, { 0x00134E, "Valox Systems, Inc.", "VALOX" }, { 0x00134F, "Rapidus Wireless Networks Inc.", "RAPIDUS-WIRELESS-NETWORKS" }, { 0x001350, "Silver Spring Networks, Inc", "SILVER-SPRING-NETWORKS" }, { 0x001351, "Niles Audio Corporation", "NILES-AUDIO" }, { 0x001352, "Naztec, Inc.", "NAZTEC" }, { 0x001353, "HYDAC Filtertechnik GMBH", "HYDAC-FILTERTECHNIK" }, { 0x001354, "Zcomax Technologies, Inc.", "ZCOMAX-TECHNOLOGIES" }, { 0x001355, "TOMEN Cyber-business Solutions, Inc.", "TOMEN-CYBER-BUSINESS-SOLUTIONS" }, { 0x001356, "FLIR Radiation Inc", "FLIR-RADIATION" }, { 0x001357, "Soyal Technology Co., Ltd.", "SOYAL" }, { 0x001358, "Realm Systems, Inc.", "REALM" }, { 0x001359, "ProTelevision Technologies A/S", "PROTELEVISION-TECHNOLOGIES-A/S" }, { 0x00135A, "Project T&E Limited", "PROJECT-T-E" }, { 0x00135B, "PanelLink Cinema, LLC", "PANELLINK-CINEMA" }, { 0x00135C, "OnSite Systems, Inc.", "ONSITE" }, { 0x00135D, "NTTPC Communications, Inc.", "NTTPC-COMMUNICATION" }, { 0x00135E, "EAB/RWI/K", "EAB/RWI/K" }, { 0x00135F, "Cisco Systems, Inc", "CISCO" }, { 0x001360, "Cisco Systems, Inc", "CISCO" }, { 0x001361, "Biospace Co., Ltd.", "BIOSPACE" }, { 0x001362, "ShinHeung Precision Co., Ltd.", "SHINHEUNG-PRECISION" }, { 0x001363, "Verascape, Inc.", "VERASCAPE" }, { 0x001364, "Paradigm Technology Inc..", "PARADIGM" }, { 0x001365, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001366, "Neturity Technologies Inc.", "NETURITY-TECHNOLOGIES" }, { 0x001367, "Narayon. Co., Ltd.", "NARAYON" }, { 0x001368, "Saab Danmark A/S", "SAAB-DANMARK-A/S" }, { 0x001369, "Honda Electron Co., LED.", "HONDA-ELECTRON-LED" }, { 0x00136A, "Hach Lange Sarl", "HACH-LANGE-SARL" }, { 0x00136B, "E-TEC", "E-TEC" }, { 0x00136C, "TomTom", "TOMTOM" }, { 0x00136D, "Tentaculus AB", "TENTACULUS-AB" }, { 0x00136E, "Techmetro Corp.", "TECHMETRO" }, { 0x00136F, "PacketMotion, Inc.", "PACKETMOTION" }, { 0x001370, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001371, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001372, "Dell Inc.", "DELL" }, { 0x001373, "BLwave Electronics Co., Ltd", "BLWAVE-ELECTRONICS" }, { 0x001374, "Atheros Communications, Inc.", "ATHEROS-COMMUNICATION" }, { 0x001375, "American Security Products Co.", "AMERICAN-SECURITY-PRODUCTS" }, { 0x001376, "Tabor Electronics Ltd.", "TABOR-ELECTRONICS" }, { 0x001377, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x001378, "Qsan Technology, Inc.", "QSAN" }, { 0x001379, "PONDER INFORMATION INDUSTRIES LTD.", "PONDER-INFORMATION-INDUSTRIES" }, { 0x00137A, "Netvox Technology Co., Ltd.", "NETVOX" }, { 0x00137B, "Movon Corporation", "MOVON" }, { 0x00137C, "Kaicom co., Ltd.", "KAICOM" }, { 0x00137D, "Dynalab, Inc.", "DYNALAB" }, { 0x00137E, "CorEdge Networks, Inc.", "COREDGE-NETWORKS" }, { 0x00137F, "Cisco Systems, Inc", "CISCO" }, { 0x001380, "Cisco Systems, Inc", "CISCO" }, { 0x001381, "CHIPS & Systems, Inc.", "CHIPS" }, { 0x001382, "Cetacea Networks Corporation", "CETACEA-NETWORKS" }, { 0x001383, "Application Technologies and Engineering Research Laboratory", "APPLICATION-TECHNOLOGIES-AND-ENGINEERING-RESEARCH-LABORATORY" }, { 0x001384, "Advanced Motion Controls", "ADVANCED-MOTION-CONTROLS" }, { 0x001385, "Add-On Technology Co., LTD.", "ADD-ON" }, { 0x001386, "ABB Inc/Totalflow", "ABB-/TOTALFLOW" }, { 0x001387, "27M Technologies AB", "27M-TECHNOLOGIES-AB" }, { 0x001388, "WiMedia Alliance", "WIMEDIA-ALLIANCE" }, { 0x001389, "Redes de Telefonía Móvil S.A.", "REDES-DE-TELEFONA-MVIL" }, { 0x00138A, "Qingdao GoerTek Technology Co., Ltd.", "QINGDAO-GOERTEK" }, { 0x00138B, "Phantom Technologies LLC", "PHANTOM-TECHNOLOGIES" }, { 0x00138C, "Kumyoung.Co.Ltd", "KUMYOUNG" }, { 0x00138D, "Kinghold", "KINGHOLD" }, { 0x00138E, "FOAB Elektronik AB", "FOAB-ELEKTRONIK-AB" }, { 0x00138F, "Asiarock Technology Limited", "ASIAROCK" }, { 0x001390, "Termtek Computer Co., Ltd", "TERMTEK" }, { 0x001391, "OUEN CO.,LTD.", "OUEN" }, { 0x001392, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x001393, "Panta Systems, Inc.", "PANTA" }, { 0x001394, "Infohand Co.,Ltd", "INFOHAND" }, { 0x001395, "congatec GmbH", "CONGATEC" }, { 0x001396, "Acbel Polytech Inc.", "ACBEL-POLYTECH" }, { 0x001397, "Oracle Corporation", "ORACLE" }, { 0x001398, "TrafficSim Co.,Ltd", "TRAFFICSIM" }, { 0x001399, "STAC Corporation.", "STAC" }, { 0x00139A, "K-ubique ID Corp.", "K-UBIQUE-ID" }, { 0x00139B, "ioIMAGE Ltd.", "IOIMAGE" }, { 0x00139C, "Exavera Technologies, Inc.", "EXAVERA-TECHNOLOGIES" }, { 0x00139D, "MaxLinear Hispania S.L.U.", "MAXLINEAR-HISPANIA-S-L-U" }, { 0x00139E, "Ciara Technologies Inc.", "CIARA-TECHNOLOGIES" }, { 0x00139F, "Electronics Design Services, Co., Ltd.", "ELECTRONICS-DESIGN-SERVICES" }, { 0x0013A0, "ALGOSYSTEM Co., Ltd.", "ALGOSYSTEM" }, { 0x0013A1, "Crow Electronic Engeneering", "CROW-ENGENEERING" }, { 0x0013A2, "MaxStream, Inc", "MAXSTREAM" }, { 0x0013A3, "Siemens Home & Office Comm. Devices", "SIEMENS-HOME-OFFICE-COMM-DEVICES" }, { 0x0013A4, "KeyEye Communications", "KEYEYE-COMMUNICATION" }, { 0x0013A5, "General Solutions, LTD.", "GENERAL-SOLUTIONS" }, { 0x0013A6, "Extricom Ltd", "EXTRICOM" }, { 0x0013A7, "BATTELLE MEMORIAL INSTITUTE", "BATTELLE-MEMORIAL-INSTITUTE" }, { 0x0013A8, "Tanisys Technology", "TANISYS" }, { 0x0013A9, "Sony Corporation", "SONY" }, { 0x0013AA, "ALS & TEC Ltd.", "ALS-TEC" }, { 0x0013AB, "Telemotive AG", "TELEMOTIVE" }, { 0x0013AC, "Sunmyung Electronics Co., LTD", "SUNMYUNG-ELECTRONICS" }, { 0x0013AD, "Sendo Ltd", "SENDO" }, { 0x0013AE, "Radiance Technologies, Inc.", "RADIANCE-TECHNOLOGIES" }, { 0x0013AF, "NUMA Technology,Inc.", "NUMA" }, { 0x0013B0, "Jablotron", "JABLOTRON" }, { 0x0013B1, "Intelligent Control Systems (Asia) Pte Ltd", "INTELLIGENT-CONTROL-ASIA-PTE" }, { 0x0013B2, "Carallon Limited", "CARALLON" }, { 0x0013B3, "Ecom Communications Technology Co., Ltd.", "ECOM-COMMUNICATION" }, { 0x0013B4, "Appear AS", "APPEAR-AS" }, { 0x0013B5, "Wavesat", "WAVESAT" }, { 0x0013B6, "Sling Media, Inc.", "SLING-MEDIA" }, { 0x0013B7, "Scantech ID", "SCANTECH-ID" }, { 0x0013B8, "RyCo Electronic Systems Limited", "RYCO" }, { 0x0013B9, "BM SPA", "BM-SPA" }, { 0x0013BA, "ReadyLinks Inc", "READYLINKS" }, { 0x0013BB, "Smartvue Corporation", "SMARTVUE" }, { 0x0013BC, "Artimi Ltd", "ARTIMI" }, { 0x0013BD, "HYMATOM SA", "HYMATOM" }, { 0x0013BE, "Virtual Conexions", "VIRTUAL-CONEXIONS" }, { 0x0013BF, "Media System Planning Corp.", "MEDIA-SYSTEM-PLANNING" }, { 0x0013C0, "Trix Tecnologia Ltda.", "TRIX-TECNOLOGIA-LTDA" }, { 0x0013C1, "Asoka USA Corporation", "ASOKA-USA" }, { 0x0013C2, "WACOM Co.,Ltd", "WACOM" }, { 0x0013C3, "Cisco Systems, Inc", "CISCO" }, { 0x0013C4, "Cisco Systems, Inc", "CISCO" }, { 0x0013C5, "LIGHTRON FIBER-OPTIC DEVICES INC.", "LIGHTRON-FIBER-OPTIC-DEVICES" }, { 0x0013C6, "OpenGear, Inc", "OPENGEAR" }, { 0x0013C7, "IONOS Co.,Ltd.", "IONOS" }, { 0x0013C8, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x0013C9, "Beyond Achieve Enterprises Ltd.", "BEYOND-ACHIEVE-ENTERPRISES" }, { 0x0013CA, "ATX", "ATX" }, { 0x0013CB, "Zenitel Norway AS", "ZENITEL-NORWAY-AS" }, { 0x0013CC, "Tall Maple Systems", "TALL-MAPLE" }, { 0x0013CD, "MTI co. LTD", "MTI" }, { 0x0013CE, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0013CF, "4Access Communications", "4ACCESS-COMMUNICATION" }, { 0x0013D0, "t+ Medical Ltd", "T+-MEDICAL" }, { 0x0013D1, "KIRK telecom A/S", "KIRK-TELECOM-A/S" }, { 0x0013D2, "PAGE IBERICA, S.A.", "PAGE-IBERICA" }, { 0x0013D3, "MICRO-STAR INTERNATIONAL CO., LTD.", "MICRO-STAR" }, { 0x0013D4, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x0013D5, "RuggedCom", "RUGGEDCOM" }, { 0x0013D6, "TII NETWORK TECHNOLOGIES, INC.", "TII-NETWORK-TECHNOLOGIES" }, { 0x0013D7, "SPIDCOM Technologies SA", "SPIDCOM-TECHNOLOGIES" }, { 0x0013D8, "Princeton Instruments", "PRINCETON-INSTRUMENTS" }, { 0x0013D9, "Matrix Product Development, Inc.", "MATRIX-PRODUCT-DEVELOPMENT" }, { 0x0013DA, "Diskware Co., Ltd", "DISKWARE" }, { 0x0013DB, "SHOEI Electric Co.,Ltd", "SHOEI-ELECTRIC" }, { 0x0013DC, "IBTEK INC.", "IBTEK" }, { 0x0013DD, "Abbott Diagnostics", "ABBOTT-DIAGNOSTICS" }, { 0x0013DE, "Adapt4, LLC", "ADAPT4" }, { 0x0013DF, "Ryvor Corp.", "RYVOR" }, { 0x0013E0, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x0013E1, "Iprobe AB", "IPROBE-AB" }, { 0x0013E2, "GeoVision Inc.", "GEOVISION" }, { 0x0013E3, "CoVi Technologies, Inc.", "COVI-TECHNOLOGIES" }, { 0x0013E4, "YANGJAE SYSTEMS CORP.", "YANGJAE" }, { 0x0013E5, "TENOSYS, INC.", "TENOSYS" }, { 0x0013E6, "Technolution", "TECHNOLUTION" }, { 0x0013E7, "Halcro", "HALCRO" }, { 0x0013E8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0013E9, "VeriWave, Inc.", "VERIWAVE" }, { 0x0013EA, "Kamstrup A/S", "KAMSTRUP-A/S" }, { 0x0013EB, "Sysmaster Corporation", "SYSMASTER" }, { 0x0013EC, "Netsnapper Technologies SARL", "NETSNAPPER-TECHNOLOGIES-SARL" }, { 0x0013ED, "PSIA", "PSIA" }, { 0x0013EE, "JBX Designs Inc.", "JBX-DESIGNS" }, { 0x0013EF, "Kingjon Digital Technology Co.,Ltd", "KINGJON-DIGITAL" }, { 0x0013F0, "Wavefront Semiconductor", "WAVEFRONT-SEMICONDUCTOR" }, { 0x0013F1, "AMOD Technology Co., Ltd.", "AMOD" }, { 0x0013F2, "Klas Ltd", "KLAS" }, { 0x0013F3, "Giga-byte Communications Inc.", "GIGA-BYTE-COMMUNICATION" }, { 0x0013F4, "Psitek (Pty) Ltd", "PSITEK-PTY" }, { 0x0013F5, "Akimbi Systems", "AKIMBI" }, { 0x0013F6, "Cintech", "CINTECH" }, { 0x0013F7, "SMC Networks, Inc.", "SMC-NETWORKS" }, { 0x0013F8, "Dex Security Solutions", "DEX-SECURITY-SOLUTIONS" }, { 0x0013F9, "Cavera Systems", "CAVERA" }, { 0x0013FA, "LifeSize Communications, Inc", "LIFESIZE-COMMUNICATION" }, { 0x0013FB, "RKC INSTRUMENT INC.", "RKC-INSTRUMENT" }, { 0x0013FC, "SiCortex, Inc", "SICORTEX" }, { 0x0013FD, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0013FE, "GRANDTEC ELECTRONIC CORP.", "GRANDTEC" }, { 0x0013FF, "Dage-MTI of MC, Inc.", "DAGE-MTI-OF-MC" }, { 0x001400, "MINERVA KOREA CO., LTD", "MINERVA-KOREA" }, { 0x001401, "Rivertree Networks Corp.", "RIVERTREE-NETWORKS" }, { 0x001402, "kk-electronic a/s", "KK-A/S" }, { 0x001403, "Renasis, LLC", "RENASIS" }, { 0x001404, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001405, "OpenIB, Inc.", "OPENIB" }, { 0x001406, "Go Networks", "GO-NETWORKS" }, { 0x001407, "Sperian Protection Instrumentation", "SPERIAN-PROTECTION-INSTRUMENTATION" }, { 0x001408, "Eka Systems Inc.", "EKA" }, { 0x001409, "MAGNETI MARELLI S.E. S.p.A.", "MAGNETI-MARELLI-S-E" }, { 0x00140A, "WEPIO Co., Ltd.", "WEPIO" }, { 0x00140B, "FIRST INTERNATIONAL COMPUTER, INC.", "FIRST" }, { 0x00140C, "GKB CCTV CO., LTD.", "GKB-CCTV" }, { 0x00140D, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x00140E, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x00140F, "Federal State Unitary Enterprise Leningrad R&D Institute of", "FEDERAL-STATE-UNITARY-LENINGRAD-R-D-INSTITUTE-OF" }, { 0x001410, "Suzhou Keda Technology CO.,Ltd", "SUZHOU-KEDA" }, { 0x001411, "Deutschmann Automation GmbH & Co. KG", "DEUTSCHMANN-AUTOMATION" }, { 0x001412, "S-TEC electronics AG", "S-TEC-ELECTRONICS" }, { 0x001413, "Trebing & Himstedt Prozeßautomation GmbH & Co. KG", "TREBING-HIMSTEDT-PROZESSAUTOMATION" }, { 0x001414, "Jumpnode Systems LLC.", "JUMPNODE" }, { 0x001415, "Intec Automation inc.", "INTEC-AUTOMATION" }, { 0x001416, "Scosche Industries, Inc.", "SCOSCHE-INDUSTRIES" }, { 0x001417, "RSE Informations Technologie GmbH", "RSE-INFORMATIONS-TECHNOLOGIE" }, { 0x001418, "C4Line", "C4LINE" }, { 0x001419, "SIDSA", "SIDSA" }, { 0x00141A, "DEICY CORPORATION", "DEICY" }, { 0x00141B, "Cisco Systems, Inc", "CISCO" }, { 0x00141C, "Cisco Systems, Inc", "CISCO" }, { 0x00141D, "KEBA Industrial Automation Germany GmbH", "KEBA-INDUSTRIAL-AUTOMATION-GERMANY" }, { 0x00141E, "P.A. Semi, Inc.", "P-A-SEMI" }, { 0x00141F, "SunKwang Electronics Co., Ltd", "SUNKWANG-ELECTRONICS" }, { 0x001420, "G-Links networking company", "G-LINKS-NETWORKING-COMPANY" }, { 0x001421, "Total Wireless Technologies Pte. Ltd.", "TOTAL-WIRELESS-TECHNOLOGIES-PTE" }, { 0x001422, "Dell Inc.", "DELL" }, { 0x001423, "J-S Co. NEUROCOM", "J-S-NEUROCOM" }, { 0x001424, "Merry Electrics CO., LTD.", "MERRY-ELECTRICS" }, { 0x001425, "Galactic Computing Corp.", "GALACTIC-COMPUTING" }, { 0x001426, "NL Technology", "NL" }, { 0x001427, "JazzMutant", "JAZZMUTANT" }, { 0x001428, "Vocollect Inc", "VOCOLLECT" }, { 0x001429, "V Center Technologies Co., Ltd.", "V-CENTER-TECHNOLOGIES" }, { 0x00142A, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x00142B, "Edata Communication Inc.", "EDATA-COMMUNICATION" }, { 0x00142C, "Koncept International, Inc.", "KONCEPT" }, { 0x00142D, "Toradex AG", "TORADEX" }, { 0x00142E, "77 Elektronika Kft.", "77-ELEKTRONIKA-KFT" }, { 0x00142F, "Savvius", "SAVVIUS" }, { 0x001430, "ViPowER, Inc", "VIPOWER" }, { 0x001431, "PDL Electronics Ltd", "PDL-ELECTRONICS" }, { 0x001432, "Tarallax Wireless, Inc.", "TARALLAX-WIRELESS" }, { 0x001433, "Empower Technologies(Canada) Inc.", "EMPOWER-TECHNOLOGIES-CANADA" }, { 0x001434, "Keri Systems, Inc", "KERI" }, { 0x001435, "CityCom Corp.", "CITYCOM" }, { 0x001436, "Qwerty Elektronik AB", "QWERTY-ELEKTRONIK-AB" }, { 0x001437, "GSTeletech Co.,Ltd.", "GSTELETECH" }, { 0x001438, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x001439, "Blonder Tongue Laboratories, Inc", "BLONDER-TONGUE-LABORATORIES" }, { 0x00143A, "RAYTALK INTERNATIONAL SRL", "RAYTALK-SRL" }, { 0x00143B, "Sensovation AG", "SENSOVATION" }, { 0x00143C, "Rheinmetall Canada Inc.", "RHEINMETALL-CANADA" }, { 0x00143D, "Aevoe Inc.", "AEVOE" }, { 0x00143E, "AirLink Communications, Inc.", "AIRLINK-COMMUNICATION" }, { 0x00143F, "Hotway Technology Corporation", "HOTWAY" }, { 0x001440, "ATOMIC Corporation", "ATOMIC" }, { 0x001441, "Innovation Sound Technology Co., LTD.", "INNOVATION-SOUND" }, { 0x001442, "ATTO CORPORATION", "ATTO" }, { 0x001443, "Consultronics Europe Ltd", "CONSULTRONICS-EUROPE" }, { 0x001444, "Grundfos Holding", "GRUNDFOS-HOLDING" }, { 0x001445, "Telefon-Gradnja d.o.o.", "TELEFON-GRADNJA-D-O-O" }, { 0x001446, "SuperVision Solutions LLC", "SUPERVISION-SOLUTIONS" }, { 0x001447, "BOAZ Inc.", "BOAZ" }, { 0x001448, "Inventec Multimedia & Telecom Corporation", "INVENTEC-MULTIMEDIA-TELECOM" }, { 0x001449, "Sichuan Changhong Electric Ltd.", "SICHUAN-CHANGHONG-ELECTRIC" }, { 0x00144A, "Taiwan Thick-Film Ind. Corp.", "TAIWAN-THICK-FILM-IND" }, { 0x00144B, "Hifn, Inc.", "HIFN" }, { 0x00144C, "General Meters Corp.", "GENERAL-METERS" }, { 0x00144D, "Intelligent Systems", "INTELLIGENT" }, { 0x00144E, "SRISA", "SRISA" }, { 0x00144F, "Oracle Corporation", "ORACLE" }, { 0x001450, "Heim Systems GmbH", "HEIM" }, { 0x001451, "Apple, Inc.", "APPLE" }, { 0x001452, "CALCULEX,INC.", "CALCULEX" }, { 0x001453, "ADVANTECH TECHNOLOGIES CO.,LTD", "ADVANTECH-TECHNOLOGIES" }, { 0x001454, "Symwave", "SYMWAVE" }, { 0x001455, "Coder Electronics Corporation", "CODER-ELECTRONICS" }, { 0x001456, "Edge Products", "EDGE-PRODUCTS" }, { 0x001457, "Nevion", "NEVION" }, { 0x001458, "HS Automatic ApS", "HS-AUTOMATIC-APS" }, { 0x001459, "Moram Co., Ltd.", "MORAM" }, { 0x00145A, "Westermo Neratec AG", "WESTERMO-NERATEC" }, { 0x00145B, "SeekerNet Inc.", "SEEKERNET" }, { 0x00145C, "Intronics B.V.", "INTRONICS-B-V" }, { 0x00145D, "WJ Communications, Inc.", "WJ-COMMUNICATION" }, { 0x00145E, "IBM Corp", "IBM" }, { 0x00145F, "ADITEC CO. LTD", "ADITEC" }, { 0x001460, "Kyocera Wireless Corp.", "KYOCERA-WIRELESS" }, { 0x001461, "CORONA CORPORATION", "CORONA" }, { 0x001462, "Digiwell Technology, inc", "DIGIWELL" }, { 0x001463, "IDCS N.V.", "IDCS-N-V" }, { 0x001464, "Cryptosoft", "CRYPTOSOFT" }, { 0x001465, "Novo Nordisk A/S", "NOVO-NORDISK-A/S" }, { 0x001466, "Kleinhenz Elektronik GmbH", "KLEINHENZ-ELEKTRONIK" }, { 0x001467, "ArrowSpan Inc.", "ARROWSPAN" }, { 0x001468, "CelPlan International, Inc.", "CELPLAN" }, { 0x001469, "Cisco Systems, Inc", "CISCO" }, { 0x00146A, "Cisco Systems, Inc", "CISCO" }, { 0x00146B, "Anagran, Inc.", "ANAGRAN" }, { 0x00146C, "NETGEAR", "NETGEAR" }, { 0x00146D, "RF Technologies", "RF-TECHNOLOGIES" }, { 0x00146E, "H. Stoll GmbH & Co. KG", "H-STOLL" }, { 0x00146F, "Kohler Co", "KOHLER" }, { 0x001470, "Prokom Software SA", "PROKOM-SOFTWARE" }, { 0x001471, "Eastern Asia Technology Limited", "EASTERN-ASIA" }, { 0x001472, "China Broadband Wireless IP Standard group(ChinaBWIPS)", "CHINA-BROADBAND-WIRELESS-IP-STANDARD-GROUP-CHINABWIPS" }, { 0x001473, "Bookham Inc", "BOOKHAM" }, { 0x001474, "K40 Electronics", "K40-ELECTRONICS" }, { 0x001475, "Wiline Networks, Inc.", "WILINE-NETWORKS" }, { 0x001476, "MultiCom Industries Limited", "MULTICOM-INDUSTRIES" }, { 0x001477, "Trilliant", "TRILLIANT" }, { 0x001478, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x001479, "NEC Magnus Communications,Ltd.", "NEC-MAGNUS-COMMUNICATION" }, { 0x00147A, "Eubus GmbH", "EUBUS" }, { 0x00147B, "Iteris, Inc.", "ITERIS" }, { 0x00147C, "3Com Ltd", "3COM" }, { 0x00147D, "Aeon Digital International", "AEON-DIGITAL" }, { 0x00147E, "InnerWireless", "INNERWIRELESS" }, { 0x00147F, "Thomson Telecom Belgium", "THOMSON-TELECOM-BELGIUM" }, { 0x001480, "Hitachi-LG Data Storage Korea, Inc", "HITACHI-LG-DATA-STORAGE-KOREA" }, { 0x001481, "Multilink Inc", "MULTILINK" }, { 0x001482, "Aurora Networks", "AURORA-NETWORKS" }, { 0x001483, "eXS Inc.", "EXS" }, { 0x001484, "Cermate Technologies Inc.", "CERMATE-TECHNOLOGIES" }, { 0x001485, "Giga-Byte", "GIGA-BYTE" }, { 0x001486, "Echo Digital Audio Corporation", "ECHO-DIGITAL-AUDIO" }, { 0x001487, "American Technology Integrators", "AMERICAN-INTEGRATORS" }, { 0x001488, "Akorri", "AKORRI" }, { 0x001489, "B15402100 - JANDEI, S.L.", "B15402100-JANDEI" }, { 0x00148A, "Elin Ebg Traction Gmbh", "ELIN-EBG-TRACTION" }, { 0x00148B, "Globo Electronic GmbH & Co. KG", "GLOBO" }, { 0x00148C, "General Dynamics Mission Systems", "GENERAL-DYNAMICS-MISSION" }, { 0x00148D, "Cubic Defense Simulation Systems", "CUBIC-DEFENSE-SIMULATION" }, { 0x00148E, "Tele Power Inc.", "TELE-POWER" }, { 0x00148F, "Protronic (Far East) Ltd.", "PROTRONIC-FAR-EAST" }, { 0x001490, "ASP Corporation", "ASP" }, { 0x001491, "Daniels Electronics Ltd. dba Codan Radio Communications", "DANIELS-ELECTRONICS-DBA-CODAN-RADIO-COMMUNICATION" }, { 0x001492, "Liteon, Mobile Media Solution SBU", "LITEON-MOBILE-MEDIA-SOLUTION-SBU" }, { 0x001493, "Systimax Solutions", "SYSTIMAX-SOLUTIONS" }, { 0x001494, "ESU AG", "ESU" }, { 0x001495, "2Wire Inc", "2WIRE" }, { 0x001496, "Phonic Corp.", "PHONIC" }, { 0x001497, "ZHIYUAN Eletronics co.,ltd.", "ZHIYUAN-ELETRONICS" }, { 0x001498, "Viking Design Technology", "VIKING-DESIGN" }, { 0x001499, "Helicomm Inc", "HELICOMM" }, { 0x00149A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x00149B, "Nokota Communications, LLC", "NOKOTA-COMMUNICATION" }, { 0x00149C, "HF Company", "HF-COMPANY" }, { 0x00149D, "Sound ID Inc.", "SOUND-ID" }, { 0x00149E, "UbONE Co., Ltd", "UBONE" }, { 0x00149F, "System and Chips, Inc.", "SYSTEM-AND-CHIPS" }, { 0x0014A0, "Accsense, Inc.", "ACCSENSE" }, { 0x0014A1, "Synchronous Communication Corp", "SYNCHRONOUS-COMMUNICATION" }, { 0x0014A2, "Core Micro Systems Inc.", "CORE-MICRO" }, { 0x0014A3, "Vitelec BV", "VITELEC" }, { 0x0014A4, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x0014A5, "Gemtek Technology Co., Ltd.", "GEMTEK" }, { 0x0014A6, "Teranetics, Inc.", "TERANETICS" }, { 0x0014A7, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0014A8, "Cisco Systems, Inc", "CISCO" }, { 0x0014A9, "Cisco Systems, Inc", "CISCO" }, { 0x0014AA, "Ashly Audio, Inc.", "ASHLY-AUDIO" }, { 0x0014AB, "Senhai Electronic Technology Co., Ltd.", "SENHAI" }, { 0x0014AC, "Bountiful WiFi", "BOUNTIFUL-WIFI" }, { 0x0014AD, "Gassner Wiege- und Meßtechnik GmbH", "GASSNER-WIEGE-UND-MESSTECHNIK" }, { 0x0014AE, "Wizlogics Co., Ltd.", "WIZLOGICS" }, { 0x0014AF, "Datasym POS Inc.", "DATASYM-POS" }, { 0x0014B0, "Naeil Community", "NAEIL-COMMUNITY" }, { 0x0014B1, "Axell Wireless Limited", "AXELL-WIRELESS" }, { 0x0014B2, "mCubelogics Corporation", "MCUBELOGICS" }, { 0x0014B3, "CoreStar International Corp", "CORESTAR" }, { 0x0014B4, "General Dynamics United Kingdom Ltd", "GENERAL-DYNAMICS-UNITED-KINGDOM" }, { 0x0014B5, "PHYSIOMETRIX,INC", "PHYSIOMETRIX" }, { 0x0014B6, "Enswer Technology Inc.", "ENSWER" }, { 0x0014B7, "AR Infotek Inc.", "AR-INFOTEK" }, { 0x0014B8, "Hill-Rom", "HILL-ROM" }, { 0x0014B9, "MSTAR SEMICONDUCTOR", "MSTAR-SEMICONDUCTOR" }, { 0x0014BA, "Carvers SA de CV", "CARVERS-DE-CV" }, { 0x0014BB, "Open Interface North America", "OPEN-INTERFACE-NORTH-AMERICA" }, { 0x0014BC, "SYNECTIC TELECOM EXPORTS PVT. LTD.", "SYNECTIC-TELECOM-EXPORTS-PVT" }, { 0x0014BD, "incNETWORKS, Inc", "INCNETWORKS" }, { 0x0014BE, "Wink communication technology CO.LTD", "WINK-COMMUNICATION" }, { 0x0014BF, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x0014C0, "Symstream Technology Group Ltd", "SYMSTREAM-GROUP" }, { 0x0014C1, "U.S. Robotics Corporation", "U-S-ROBOTICS" }, { 0x0014C2, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x0014C3, "Seagate Technology", "SEAGATE" }, { 0x0014C4, "Vitelcom Mobile Technology", "VITELCOM-MOBILE" }, { 0x0014C5, "Alive Technologies Pty Ltd", "ALIVE-TECHNOLOGIES-PTY" }, { 0x0014C6, "Quixant Ltd", "QUIXANT" }, { 0x0014C7, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x0014C8, "Contemporary Research Corp", "CONTEMPORARY-RESEARCH" }, { 0x0014C9, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x0014CA, "Key Radio Systems Limited", "KEY-RADIO" }, { 0x0014CB, "LifeSync Corporation", "LIFESYNC" }, { 0x0014CC, "Zetec, Inc.", "ZETEC" }, { 0x0014CD, "DigitalZone Co., Ltd.", "DIGITALZONE" }, { 0x0014CE, "NF CORPORATION", "NF" }, { 0x0014CF, "INVISIO Communications", "INVISIO-COMMUNICATION" }, { 0x0014D0, "BTI Systems Inc.", "BTI" }, { 0x0014D1, "TRENDnet, Inc.", "TRENDNET" }, { 0x0014D2, "Kyuden Technosystems Corporation", "KYUDEN-TECHNOSYSTEMS" }, { 0x0014D3, "SEPSA", "SEPSA" }, { 0x0014D4, "K Technology Corporation", "K" }, { 0x0014D5, "Datang Telecom Technology CO. , LCD,Optical Communication Br", "DATANG-TELECOM-LCD-OPTICAL-COMMUNICATION-BR" }, { 0x0014D6, "Jeongmin Electronics Co.,Ltd.", "JEONGMIN-ELECTRONICS" }, { 0x0014D7, "Datastore Technology Corp", "DATASTORE" }, { 0x0014D8, "bio-logic SA", "BIO-LOGIC" }, { 0x0014D9, "IP Fabrics, Inc.", "IP-FABRICS" }, { 0x0014DA, "Huntleigh Healthcare", "HUNTLEIGH-HEALTHCARE" }, { 0x0014DB, "Elma Trenew Electronic GmbH", "ELMA-TRENEW" }, { 0x0014DC, "Communication System Design & Manufacturing (CSDM)", "COMMUNICATION-SYSTEM-DESIGN-MANUFACTURING-CSDM" }, { 0x0014DD, "Covergence Inc.", "COVERGENCE" }, { 0x0014DE, "Sage Instruments Inc.", "SAGE-INSTRUMENTS" }, { 0x0014DF, "HI-P Tech Corporation", "HI-P-TECH" }, { 0x0014E0, "LET'S Corporation", "LET-S" }, { 0x0014E1, "Data Display AG", "DATA-DISPLAY" }, { 0x0014E2, "datacom systems inc.", "DATACOM" }, { 0x0014E3, "mm-lab GmbH", "MM-LAB" }, { 0x0014E4, "infinias, LLC", "INFINIAS" }, { 0x0014E5, "Alticast", "ALTICAST" }, { 0x0014E6, "AIM Infrarotmodule GmbH", "AIM-INFRAROTMODULE" }, { 0x0014E7, "Stolinx,. Inc", "STOLINX" }, { 0x0014E8, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0014E9, "Nortech International", "NORTECH" }, { 0x0014EA, "S Digm Inc. (Safe Paradigm Inc.)", "S-DIGM-SAFE-PARADIGM" }, { 0x0014EB, "AwarePoint Corporation", "AWAREPOINT" }, { 0x0014EC, "Acro Telecom", "ACRO-TELECOM" }, { 0x0014ED, "Airak, Inc.", "AIRAK" }, { 0x0014EE, "Western Digital Technologies, Inc.", "WESTERN-DIGITAL-TECHNOLOGIES" }, { 0x0014EF, "TZero Technologies, Inc.", "TZERO-TECHNOLOGIES" }, { 0x0014F0, "Business Security OL AB", "BUSINESS-SECURITY-OL-AB" }, { 0x0014F1, "Cisco Systems, Inc", "CISCO" }, { 0x0014F2, "Cisco Systems, Inc", "CISCO" }, { 0x0014F3, "ViXS Systems Inc", "VIXS" }, { 0x0014F4, "DekTec Digital Video B.V.", "DEKTEC-DIGITAL-VIDEO-B-V" }, { 0x0014F5, "OSI Security Devices", "OSI-SECURITY-DEVICES" }, { 0x0014F6, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x0014F7, "CREVIS Co., LTD", "CREVIS" }, { 0x0014F8, "Scientific Atlanta", "SCIENTIFIC-ATLANTA" }, { 0x0014F9, "Vantage Controls", "VANTAGE-CONTROLS" }, { 0x0014FA, "AsGa S.A.", "ASGA" }, { 0x0014FB, "Technical Solutions Inc.", "TECHNICAL-SOLUTIONS" }, { 0x0014FC, "Extandon, Inc.", "EXTANDON" }, { 0x0014FD, "Thecus Technology Corp.", "THECUS" }, { 0x0014FE, "Artech Electronics", "ARTECH-ELECTRONICS" }, { 0x0014FF, "Precise Automation, Inc.", "PRECISE-AUTOMATION" }, { 0x001500, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001501, "LexBox", "LEXBOX" }, { 0x001502, "BETA tech", "BETA-TECH" }, { 0x001503, "PROFIcomms s.r.o.", "PROFICOMMS-S-R-O" }, { 0x001504, "GAME PLUS CO., LTD.", "GAME-PLUS" }, { 0x001505, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x001506, "Neo Photonics", "NEO-PHOTONICS" }, { 0x001507, "Renaissance Learning Inc", "RENAISSANCE-LEARNING" }, { 0x001508, "Global Target Enterprise Inc", "GLOBAL-TARGET" }, { 0x001509, "Plus Technology Co., Ltd", "PLUS" }, { 0x00150A, "Sonoa Systems, Inc", "SONOA" }, { 0x00150B, "SAGE INFOTECH LTD.", "SAGE-INFOTECH" }, { 0x00150C, "AVM GmbH", "AVM" }, { 0x00150D, "Hoana Medical, Inc.", "HOANA-MEDICAL" }, { 0x00150E, "OPENBRAIN TECHNOLOGIES CO., LTD.", "OPENBRAIN-TECHNOLOGIES" }, { 0x00150F, "mingjong", "MINGJONG" }, { 0x001510, "Techsphere Co., Ltd", "TECHSPHERE" }, { 0x001511, "Data Center Systems", "DATA-CENTER" }, { 0x001512, "Zurich University of Applied Sciences", "ZURICH-UNIVERSITY-OF-APPLIED-SCIENCES" }, { 0x001513, "EFS sas", "EFS-SAS" }, { 0x001514, "Hu Zhou NAVA Networks&Electronics Ltd.", "HU-ZHOU-NAVA-NETWORKS-ELECTRONICS" }, { 0x001515, "Leipold+Co.GmbH", "LEIPOLD" }, { 0x001516, "URIEL SYSTEMS INC.", "URIEL" }, { 0x001517, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001518, "Shenzhen 10MOONS Technology Development CO.,Ltd", "SHENZHEN-10MOONS-DEVELOPMENT" }, { 0x001519, "StoreAge Networking Technologies", "STOREAGE-NETWORKING-TECHNOLOGIES" }, { 0x00151A, "Hunter Engineering Company", "HUNTER-ENGINEERING-COMPANY" }, { 0x00151B, "Isilon Systems Inc.", "ISILON" }, { 0x00151C, "LENECO", "LENECO" }, { 0x00151D, "M2I CORPORATION", "M2I" }, { 0x00151E, "ETHERNET Powerlink Standarization Group (EPSG)", "ETHERNET-POWERLINK-STANDARIZATION-GROUP-EPSG" }, { 0x00151F, "Multivision Intelligent Surveillance (Hong Kong) Ltd", "MULTIVISION-INTELLIGENT-SURVEILLANCE-HONG-KONG" }, { 0x001520, "Radiocrafts AS", "RADIOCRAFTS-AS" }, { 0x001521, "Horoquartz", "HOROQUARTZ" }, { 0x001522, "Dea Security", "DEA-SECURITY" }, { 0x001523, "Meteor Communications Corporation", "METEOR-COMMUNICATION" }, { 0x001524, "Numatics, Inc.", "NUMATICS" }, { 0x001525, "Chamberlain Access Solutions", "CHAMBERLAIN-ACCESS-SOLUTIONS" }, { 0x001526, "Remote Technologies Inc", "REMOTE-TECHNOLOGIES" }, { 0x001527, "Balboa Instruments", "BALBOA-INSTRUMENTS" }, { 0x001528, "Beacon Medical Products LLC d.b.a. BeaconMedaes", "BEACON-MEDICAL-PRODUCTS-LLC-D-B-A-BEACONMEDAES" }, { 0x001529, "N3 Corporation", "N3" }, { 0x00152A, "Nokia Corporation", "NOKIA" }, { 0x00152B, "Cisco Systems, Inc", "CISCO" }, { 0x00152C, "Cisco Systems, Inc", "CISCO" }, { 0x00152D, "TenX Networks, LLC", "TENX-NETWORKS" }, { 0x00152E, "PacketHop, Inc.", "PACKETHOP" }, { 0x00152F, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001530, "Dell EMC", "DELL-EMC" }, { 0x001531, "KOCOM", "KOCOM" }, { 0x001532, "Consumer Technologies Group, LLC", "CONSUMER-TECHNOLOGIES-GROUP" }, { 0x001533, "NADAM.CO.,LTD", "NADAM" }, { 0x001534, "A Beltrónica-Companhia de Comunicações, Lda", "A-BELTRNICA-COMPANHIA-DE-COMUNICAES-LDA" }, { 0x001535, "OTE Spa", "OTE-SPA" }, { 0x001536, "Powertech co.,Ltd", "POWERTECH" }, { 0x001537, "Ventus Networks", "VENTUS-NETWORKS" }, { 0x001538, "RFID, Inc.", "RFID" }, { 0x001539, "Technodrive srl", "TECHNODRIVE-SRL" }, { 0x00153A, "Shenzhen Syscan Technology Co.,Ltd.", "SHENZHEN-SYSCAN" }, { 0x00153B, "EMH metering GmbH & Co. KG", "EMH-METERING" }, { 0x00153C, "Kprotech Co., Ltd.", "KPROTECH" }, { 0x00153D, "ELIM PRODUCT CO.", "ELIM-PRODUCT" }, { 0x00153E, "Q-Matic Sweden AB", "Q-MATIC-SWEDEN-AB" }, { 0x00153F, "Alcatel Alenia Space Italia", "ALCATEL-ALENIA-SPACE-ITALIA" }, { 0x001540, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001541, "StrataLight Communications, Inc.", "STRATALIGHT-COMMUNICATION" }, { 0x001542, "MICROHARD S.R.L.", "MICROHARD" }, { 0x001543, "Aberdeen Test Center", "ABERDEEN-TEST-CENTER" }, { 0x001544, "coM.s.a.t. AG", "COM-T" }, { 0x001545, "SEECODE Co., Ltd.", "SEECODE" }, { 0x001546, "ITG Worldwide Sdn Bhd", "ITG-WORLDWIDE" }, { 0x001547, "AiZen Solutions Inc.", "AIZEN-SOLUTIONS" }, { 0x001548, "CUBE TECHNOLOGIES", "CUBE-TECHNOLOGIES" }, { 0x001549, "Dixtal Biomedica Ind. Com. Ltda", "DIXTAL-BIOMEDICA-IND-COM-LTDA" }, { 0x00154A, "WANSHIH ELECTRONIC CO., LTD", "WANSHIH" }, { 0x00154B, "Wonde Proud Technology Co., Ltd", "WONDE-PROUD" }, { 0x00154C, "Saunders Electronics", "SAUNDERS-ELECTRONICS" }, { 0x00154D, "Netronome Systems, Inc.", "NETRONOME" }, { 0x00154E, "IEC", "IEC" }, { 0x00154F, "one RF Technology", "ONE-RF" }, { 0x001550, "Nits Technology Inc", "NITS" }, { 0x001551, "RadioPulse Inc.", "RADIOPULSE" }, { 0x001552, "Wi-Gear Inc.", "WI-GEAR" }, { 0x001553, "Cytyc Corporation", "CYTYC" }, { 0x001554, "Atalum Wireless S.A.", "ATALUM-WIRELESS" }, { 0x001555, "DFM GmbH", "DFM" }, { 0x001556, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x001557, "Olivetti", "OLIVETTI" }, { 0x001558, "FOXCONN", "FOXCONN" }, { 0x001559, "Securaplane Technologies, Inc.", "SECURAPLANE-TECHNOLOGIES" }, { 0x00155A, "DAINIPPON PHARMACEUTICAL CO., LTD.", "DAINIPPON-PHARMACEUTICAL" }, { 0x00155B, "Sampo Corporation", "SAMPO" }, { 0x00155C, "Dresser Wayne", "DRESSER-WAYNE" }, { 0x00155D, "Microsoft Corporation", "MICROSOFT" }, { 0x00155E, "Morgan Stanley", "MORGAN-STANLEY" }, { 0x00155F, "GreenPeak Technologies", "GREENPEAK-TECHNOLOGIES" }, { 0x001560, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x001561, "JJPlus Corporation", "JJPLUS" }, { 0x001562, "Cisco Systems, Inc", "CISCO" }, { 0x001563, "Cisco Systems, Inc", "CISCO" }, { 0x001564, "BEHRINGER Spezielle Studiotechnik GmbH", "BEHRINGER-SPEZIELLE-STUDIOTECHNIK" }, { 0x001565, "XIAMEN YEALINK NETWORK TECHNOLOGY CO.,LTD", "XIAMEN-YEALINK-NETWORK" }, { 0x001566, "A-First Technology Co., Ltd.", "A-FIRST" }, { 0x001567, "RADWIN Inc.", "RADWIN" }, { 0x001568, "Dilithium Networks", "DILITHIUM-NETWORKS" }, { 0x001569, "PECO II, Inc.", "PECO-II" }, { 0x00156A, "DG2L Technologies Pvt. Ltd.", "DG2L-TECHNOLOGIES-PVT" }, { 0x00156B, "Perfisans Networks Corp.", "PERFISANS-NETWORKS" }, { 0x00156C, "SANE SYSTEM CO., LTD", "SANE-SYSTEM" }, { 0x00156D, "Ubiquiti Inc", "UBIQUITI" }, { 0x00156E, "A. W. Communication Systems Ltd", "A-W-COMMUNICATION" }, { 0x00156F, "Xiranet Communications GmbH", "XIRANET-COMMUNICATION" }, { 0x001570, "Zebra Technologies Inc", "ZEBRA-TECHNOLOGIES" }, { 0x001571, "Nolan Systems", "NOLAN" }, { 0x001572, "Red-Lemon", "RED-LEMON" }, { 0x001573, "NewSoft Technology Corporation", "NEWSOFT" }, { 0x001574, "Horizon Semiconductors Ltd.", "HORIZON-SEMICONDUCTORS" }, { 0x001575, "Nevis Networks Inc.", "NEVIS-NETWORKS" }, { 0x001576, "LABiTec - Labor Biomedical Technologies GmbH", "LABITEC-LABOR-BIOMEDICAL-TECHNOLOGIES" }, { 0x001577, "Allied Telesis, Inc.", "ALLIED-TELESIS" }, { 0x001578, "Audio / Video Innovations", "AUDIO-/-VIDEO-INNOVATIONS" }, { 0x001579, "Lunatone Industrielle Elektronik GmbH", "LUNATONE-INDUSTRIELLE-ELEKTRONIK" }, { 0x00157A, "Telefin S.p.A.", "TELEFIN" }, { 0x00157B, "Leuze electronic GmbH + Co. KG", "LEUZE" }, { 0x00157C, "Dave Networks, Inc.", "DAVE-NETWORKS" }, { 0x00157D, "POSDATA", "POSDATA" }, { 0x00157E, "Weidmüller Interface GmbH & Co. KG", "WEIDMUELLER-INTERFACE" }, { 0x00157F, "ChuanG International Holding CO.,LTD.", "CHUANG-HOLDING" }, { 0x001580, "U-WAY CORPORATION", "U-WAY" }, { 0x001581, "MAKUS Inc.", "MAKUS" }, { 0x001582, "Pulse Eight Limited", "PULSE-EIGHT" }, { 0x001583, "IVT corporation", "IVT" }, { 0x001584, "Schenck Process GmbH", "SCHENCK-PROCESS" }, { 0x001585, "Aonvision Technolopy Corp.", "AONVISION-TECHNOLOPY" }, { 0x001586, "Xiamen Overseas Chinese Electronic Co., Ltd.", "XIAMEN-OVERSEAS-CHINESE" }, { 0x001587, "Takenaka Seisakusho Co.,Ltd", "TAKENAKA-SEISAKUSHO" }, { 0x001588, "Salutica Allied Solutions Sdn Bhd", "SALUTICA-ALLIED-SOLUTIONS" }, { 0x001589, "D-MAX Technology Co.,Ltd", "D-MAX" }, { 0x00158A, "SURECOM Technology Corp.", "SURECOM" }, { 0x00158B, "Park Air Systems Ltd", "PARK-AIR" }, { 0x00158C, "Liab ApS", "LIAB-APS" }, { 0x00158D, "Jennic Ltd", "JENNIC" }, { 0x00158E, "Plustek.INC", "PLUSTEK" }, { 0x00158F, "NTT Advanced Technology Corporation", "NTT-ADVANCED" }, { 0x001590, "Hectronic GmbH", "HECTRONIC" }, { 0x001591, "RLW Inc.", "RLW" }, { 0x001592, "Facom UK Ltd (Melksham)", "FACOM-UK-MELKSHAM" }, { 0x001593, "U4EA Technologies Inc.", "U4EA-TECHNOLOGIES" }, { 0x001594, "BIXOLON CO.,LTD", "BIXOLON" }, { 0x001595, "Quester Tangent Corporation", "QUESTER-TANGENT" }, { 0x001596, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001597, "AETA AUDIO SYSTEMS", "AETA-AUDIO" }, { 0x001598, "Kolektor group", "KOLEKTOR-GROUP" }, { 0x001599, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00159A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x00159B, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x00159C, "B-KYUNG SYSTEM Co.,Ltd.", "B-KYUNG-SYSTEM" }, { 0x00159D, "Tripp Lite", "TRIPP-LITE" }, { 0x00159E, "Mad Catz Interactive Inc", "MAD-CATZ-INTERACTIVE" }, { 0x00159F, "Terascala, Inc.", "TERASCALA" }, { 0x0015A0, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0015A1, "ECA-SINTERS", "ECA-SINTERS" }, { 0x0015A2, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0015A3, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0015A4, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0015A5, "DCI Co., Ltd.", "DCI" }, { 0x0015A6, "Digital Electronics Products Ltd.", "DIGITAL-ELECTRONICS-PRODUCTS" }, { 0x0015A7, "Robatech AG", "ROBATECH" }, { 0x0015A8, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0015A9, "KWANG WOO I&C CO.,LTD", "KWANG-WOO-I-C" }, { 0x0015AA, "Rextechnik International Co.,", "REXTECHNIK" }, { 0x0015AB, "PRO CO SOUND INC", "PRO-SOUND" }, { 0x0015AC, "Capelon AB", "CAPELON-AB" }, { 0x0015AD, "Accedian Networks", "ACCEDIAN-NETWORKS" }, { 0x0015AE, "kyung il", "KYUNG-IL" }, { 0x0015AF, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x0015B0, "AUTOTELENET CO.,LTD", "AUTOTELENET" }, { 0x0015B1, "Ambient Corporation", "AMBIENT" }, { 0x0015B2, "Advanced Industrial Computer, Inc.", "ADVANCED-INDUSTRIAL" }, { 0x0015B3, "Caretech AB", "CARETECH-AB" }, { 0x0015B4, "Polymap Wireless LLC", "POLYMAP-WIRELESS" }, { 0x0015B5, "CI Network Corp.", "CI-NETWORK" }, { 0x0015B6, "ShinMaywa Industries, Ltd.", "SHINMAYWA-INDUSTRIES" }, { 0x0015B7, "Toshiba", "TOSHIBA" }, { 0x0015B8, "Tahoe", "TAHOE" }, { 0x0015B9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0015BA, "iba AG", "IBA" }, { 0x0015BB, "SMA Solar Technology AG", "SMA-SOLAR" }, { 0x0015BC, "Develco", "DEVELCO" }, { 0x0015BD, "Group 4 Technology Ltd", "GROUP-4" }, { 0x0015BE, "Iqua Ltd.", "IQUA" }, { 0x0015BF, "technicob", "TECHNICOB" }, { 0x0015C0, "DIGITAL TELEMEDIA CO.,LTD.", "DIGITAL-TELEMEDIA" }, { 0x0015C1, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x0015C2, "3M Germany", "3M-GERMANY" }, { 0x0015C3, "Ruf Telematik AG", "RUF-TELEMATIK" }, { 0x0015C4, "FLOVEL CO., LTD.", "FLOVEL" }, { 0x0015C5, "Dell Inc.", "DELL" }, { 0x0015C6, "Cisco Systems, Inc", "CISCO" }, { 0x0015C7, "Cisco Systems, Inc", "CISCO" }, { 0x0015C8, "FlexiPanel Ltd", "FLEXIPANEL" }, { 0x0015C9, "Gumstix, Inc", "GUMSTIX" }, { 0x0015CA, "TeraRecon, Inc.", "TERARECON" }, { 0x0015CB, "Surf Communication Solutions Ltd.", "SURF-COMMUNICATION-SOLUTIONS" }, { 0x0015CC, "UQUEST, LTD.", "UQUEST" }, { 0x0015CD, "Exartech International Corp.", "EXARTECH" }, { 0x0015CE, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0015CF, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0015D0, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0015D1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0015D2, "Xantech Corporation", "XANTECH" }, { 0x0015D3, "Pantech&Curitel Communications, Inc.", "PANTECH-CURITEL-COMMUNICATION" }, { 0x0015D4, "Emitor AB", "EMITOR-AB" }, { 0x0015D5, "NICEVT", "NICEVT" }, { 0x0015D6, "OSLiNK Sp. z o.o.", "OSLINK-SP-Z-O-O" }, { 0x0015D7, "Reti Corporation", "RETI" }, { 0x0015D8, "Interlink Electronics", "INTERLINK-ELECTRONICS" }, { 0x0015D9, "PKC Electronics Oy", "PKC-ELECTRONICS-OY" }, { 0x0015DA, "IRITEL A.D.", "IRITEL-A-D" }, { 0x0015DB, "Canesta Inc.", "CANESTA" }, { 0x0015DC, "KT&C Co., Ltd.", "KT-C" }, { 0x0015DD, "IP Control Systems Ltd.", "IP-CONTROL" }, { 0x0015DE, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0015DF, "Clivet S.p.A.", "CLIVET" }, { 0x0015E0, "Ericsson", "ERICSSON" }, { 0x0015E1, "Picochip Ltd", "PICOCHIP" }, { 0x0015E2, "Dr.Ing. Herbert Knauer GmbH", "DR-ING-HERBERT-KNAUER" }, { 0x0015E3, "Dream Technologies Corporation", "DREAM-TECHNOLOGIES" }, { 0x0015E4, "Zimmer Elektromedizin", "ZIMMER-ELEKTROMEDIZIN" }, { 0x0015E5, "Cheertek Inc.", "CHEERTEK" }, { 0x0015E6, "MOBILE TECHNIKA Inc.", "MOBILE-TECHNIKA" }, { 0x0015E7, "Quantec Tontechnik", "QUANTEC-TONTECHNIK" }, { 0x0015E8, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x0015E9, "D-Link Corporation", "D-LINK" }, { 0x0015EA, "Tellumat (Pty) Ltd", "TELLUMAT-PTY" }, { 0x0015EB, "zte corporation", "ZTE" }, { 0x0015EC, "Boca Devices LLC", "BOCA-DEVICES" }, { 0x0015ED, "Fulcrum Microsystems, Inc.", "FULCRUM-MICROSYSTEMS" }, { 0x0015EE, "Omnex Control Systems", "OMNEX-CONTROL" }, { 0x0015EF, "NEC TOKIN Corporation", "NEC-TOKIN" }, { 0x0015F0, "EGO BV", "EGO" }, { 0x0015F1, "KYLINK Communications Corp.", "KYLINK-COMMUNICATION" }, { 0x0015F2, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x0015F3, "PELTOR AB", "PELTOR-AB" }, { 0x0015F4, "Eventide", "EVENTIDE" }, { 0x0015F5, "Sustainable Energy Systems", "SUSTAINABLE-ENERGY" }, { 0x0015F6, "SCIENCE AND ENGINEERING SERVICES, INC.", "SCIENCE-AND-ENGINEERING-SERVICES" }, { 0x0015F7, "Wintecronics Ltd.", "WINTECRONICS" }, { 0x0015F8, "Kingtronics Industrial Co. Ltd.", "KINGTRONICS-INDUSTRIAL" }, { 0x0015F9, "Cisco Systems, Inc", "CISCO" }, { 0x0015FA, "Cisco Systems, Inc", "CISCO" }, { 0x0015FB, "setex schermuly textile computer gmbh", "SETEX-SCHERMULY-TEXTILE" }, { 0x0015FC, "Littelfuse Startco", "LITTELFUSE-STARTCO" }, { 0x0015FD, "Complete Media Systems", "COMPLETE-MEDIA" }, { 0x0015FE, "SCHILLING ROBOTICS LLC", "SCHILLING-ROBOTICS" }, { 0x0015FF, "Novatel Wireless Solutions, Inc.", "NOVATEL-WIRELESS-SOLUTIONS" }, { 0x001600, "CelleBrite Mobile Synchronization", "CELLEBRITE-MOBILE-SYNCHRONIZATION" }, { 0x001601, "BUFFALO.INC", "BUFFALO" }, { 0x001602, "CEYON TECHNOLOGY CO.,LTD.", "CEYON" }, { 0x001603, "COOLKSKY Co., LTD", "COOLKSKY" }, { 0x001604, "Sigpro", "SIGPRO" }, { 0x001605, "YORKVILLE SOUND INC.", "YORKVILLE-SOUND" }, { 0x001606, "Ideal Industries", "IDEAL-INDUSTRIES" }, { 0x001607, "Curves International Inc.", "CURVES" }, { 0x001608, "Sequans Communications", "SEQUANS-COMMUNICATION" }, { 0x001609, "Unitech electronics co., ltd.", "UNITECH-ELECTRONICS" }, { 0x00160A, "SWEEX Europe BV", "SWEEX-EUROPE" }, { 0x00160B, "TVWorks LLC", "TVWORKS" }, { 0x00160C, "LPL DEVELOPMENT S.A. DE C.V", "LPL-DEVELOPMENT-DE-C-V" }, { 0x00160D, "Be Here Corporation", "BE-HERE" }, { 0x00160E, "Optica Technologies Inc.", "OPTICA-TECHNOLOGIES" }, { 0x00160F, "BADGER METER INC", "BADGER-METER" }, { 0x001610, "Carina Technology", "CARINA" }, { 0x001611, "Altecon Srl", "ALTECON-SRL" }, { 0x001612, "Otsuka Electronics Co., Ltd.", "OTSUKA-ELECTRONICS" }, { 0x001613, "LibreStream Technologies Inc.", "LIBRESTREAM-TECHNOLOGIES" }, { 0x001614, "Picosecond Pulse Labs", "PICOSECOND-PULSE-LABS" }, { 0x001615, "Nittan Company, Limited", "NITTAN-COMPANY" }, { 0x001616, "BROWAN COMMUNICATIONS INCORPORATION", "BROWAN-COMMUNICATION-INCORPORATION" }, { 0x001617, "MSI", "MSI" }, { 0x001618, "HIVION Co., Ltd.", "HIVION" }, { 0x001619, "Lancelan Technologies S.L.", "LANCELAN-TECHNOLOGIES" }, { 0x00161A, "Dametric AB", "DAMETRIC-AB" }, { 0x00161B, "Micronet Corporation", "MICRONET" }, { 0x00161C, "e:cue", "E:CUE" }, { 0x00161D, "Innovative Wireless Technologies, Inc.", "INNOVATIVE-WIRELESS-TECHNOLOGIES" }, { 0x00161E, "Woojinnet", "WOOJINNET" }, { 0x00161F, "SUNWAVETEC Co., Ltd.", "SUNWAVETEC" }, { 0x001620, "Sony Corporation", "SONY" }, { 0x001621, "Colorado Vnet", "COLORADO-VNET" }, { 0x001622, "BBH SYSTEMS GMBH", "BBH" }, { 0x001623, "Interval Media", "INTERVAL-MEDIA" }, { 0x001624, "Teneros, Inc.", "TENEROS" }, { 0x001625, "Impinj, Inc.", "IMPINJ" }, { 0x001626, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001627, "embedded-logic DESIGN AND MORE GmbH", "EMBEDDED-LOGIC-DESIGN-AND-MORE" }, { 0x001628, "Magicard Ltd", "MAGICARD" }, { 0x001629, "Nivus GmbH", "NIVUS" }, { 0x00162A, "Antik computers & communications s.r.o.", "ANTIK-COMPUTERS-COMMUNICATION-S-R-O" }, { 0x00162B, "Togami Electric Mfg.co.,Ltd.", "TOGAMI-ELECTRIC-MFG" }, { 0x00162C, "Xanboo", "XANBOO" }, { 0x00162D, "STNet Co., Ltd.", "STNET" }, { 0x00162E, "Space Shuttle Hi-Tech Co., Ltd.", "SPACE-SHUTTLE-HI-TECH" }, { 0x00162F, "Geutebrück GmbH", "GEUTEBRUECK" }, { 0x001630, "Vativ Technologies", "VATIV-TECHNOLOGIES" }, { 0x001631, "Xteam", "XTEAM" }, { 0x001632, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x001633, "Oxford Diagnostics Ltd.", "OXFORD-DIAGNOSTICS" }, { 0x001634, "Mathtech, Inc.", "MATHTECH" }, { 0x001635, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x001636, "Quanta Computer Inc.", "QUANTA" }, { 0x001637, "CITEL SpA", "CITEL-SPA" }, { 0x001638, "TECOM Co., Ltd.", "TECOM" }, { 0x001639, "Ubiquam Co., Ltd.", "UBIQUAM" }, { 0x00163A, "YVES TECHNOLOGY CO., LTD.", "YVES" }, { 0x00163B, "Communications & Power Industries", "COMMUNICATION-POWER-INDUSTRIES" }, { 0x00163C, "Rebox B.V.", "REBOX-B-V" }, { 0x00163D, "Tsinghua Tongfang Legend Silicon Tech. Co., Ltd.", "TSINGHUA-TONGFANG-LEGEND-SILICON-TECH" }, { 0x00163E, "Xensource, Inc. (possible Xen VM)", "XENSOURCE-VIRTUAL" }, { 0x00163F, "CReTE SYSTEMS Inc.", "CRETE" }, { 0x001640, "Asmobile Communication Inc.", "ASMOBILE-COMMUNICATION" }, { 0x001641, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x001642, "Pangolin", "PANGOLIN" }, { 0x001643, "Sunhillo Corporation", "SUNHILLO" }, { 0x001644, "LITE-ON Technology Corp.", "LITE-ON" }, { 0x001645, "Power Distribution, Inc.", "POWER-DISTRIBUTION" }, { 0x001646, "Cisco Systems, Inc", "CISCO" }, { 0x001647, "Cisco Systems, Inc", "CISCO" }, { 0x001648, "SSD Company Limited", "SSD-COMPANY" }, { 0x001649, "SetOne GmbH", "SETONE" }, { 0x00164A, "Vibration Technology Limited", "VIBRATION" }, { 0x00164B, "Quorion Data Systems GmbH", "QUORION-DATA" }, { 0x00164C, "PLANET INT Co., Ltd", "PLANET-INT" }, { 0x00164D, "Alcatel-Lucent IPD", "ALCATEL-LUCENT-IPD" }, { 0x00164E, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x00164F, "World Ethnic Broadcastin Inc.", "WORLD-ETHNIC-BROADCASTIN" }, { 0x001650, "Kratos EPD", "KRATOS-EPD" }, { 0x001651, "Exeo Systems", "EXEO" }, { 0x001652, "Hoatech Technologies, Inc.", "HOATECH-TECHNOLOGIES" }, { 0x001653, "LEGO System A/S IE Electronics Division", "LEGO-SYSTEM-A/S-IE-ELECTRONICS-DIVISION" }, { 0x001654, "Flex-P Industries Sdn. Bhd.", "FLEX-P-INDUSTRIES" }, { 0x001655, "FUHO TECHNOLOGY Co., LTD", "FUHO" }, { 0x001656, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x001657, "Aegate Ltd", "AEGATE" }, { 0x001658, "Fusiontech Technologies Inc.", "FUSIONTECH-TECHNOLOGIES" }, { 0x001659, "Z.M.P. RADWAG", "Z-M-P-RADWAG" }, { 0x00165A, "Harman Specialty Group", "HARMAN-SPECIALTY-GROUP" }, { 0x00165B, "Grip Audio", "GRIP-AUDIO" }, { 0x00165C, "Trackflow Ltd.", "TRACKFLOW" }, { 0x00165D, "AirDefense, Inc.", "AIRDEFENSE" }, { 0x00165E, "Precision I/O", "PRECISION-I/O" }, { 0x00165F, "Fairmount Automation", "FAIRMOUNT-AUTOMATION" }, { 0x001660, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001661, "Novatium Solutions (P) Ltd", "NOVATIUM-SOLUTIONS-P" }, { 0x001662, "Liyuh Technology Ltd.", "LIYUH" }, { 0x001663, "KBT Mobile", "KBT-MOBILE" }, { 0x001664, "Prod-El SpA", "PROD-EL-SPA" }, { 0x001665, "Cellon France", "CELLON-FRANCE" }, { 0x001666, "Quantier Communication Inc.", "QUANTIER-COMMUNICATION" }, { 0x001667, "A-TEC Subsystem INC.", "A-TEC-SUBSYSTEM" }, { 0x001668, "Eishin Electronics", "EISHIN-ELECTRONICS" }, { 0x001669, "MRV Communication (Networks) LTD", "MRV-COMMUNICATION-NETWORKS" }, { 0x00166A, "TPS", "TPS" }, { 0x00166B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00166C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00166D, "Yulong Computer Telecommunication Scientific (Shenzhen) Co.,Ltd", "YULONG-TELECOMMUNICATION-SCIENTIFIC-SHENZHEN" }, { 0x00166E, "Arbitron Inc.", "ARBITRON" }, { 0x00166F, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001670, "SKNET Corporation", "SKNET" }, { 0x001671, "Symphox Information Co.", "SYMPHOX-INFORMATION" }, { 0x001672, "Zenway enterprise ltd", "ZENWAY" }, { 0x001673, "Bury GmbH & Co. KG", "BURY" }, { 0x001674, "EuroCB (Phils.), Inc.", "EUROCB-PHILS" }, { 0x001675, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001676, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001677, "Bihl + Wiedemann GmbH", "BIHL-+-WIEDEMANN" }, { 0x001678, "SHENZHEN BAOAN GAOKE ELECTRONICS CO., LTD", "SHENZHEN-BAOAN-GAOKE-ELECTRONICS" }, { 0x001679, "eOn Communications", "EON-COMMUNICATION" }, { 0x00167A, "Skyworth Overseas Development Ltd.", "SKYWORTH-OVERSEAS-DEVELOPMENT" }, { 0x00167B, "Haver&Boecker", "HAVER-BOECKER" }, { 0x00167C, "iRex Technologies BV", "IREX-TECHNOLOGIES" }, { 0x00167D, "Sky-Line Information Co., Ltd.", "SKY-LINE-INFORMATION" }, { 0x00167E, "DIBOSS.CO.,LTD", "DIBOSS" }, { 0x00167F, "Bluebird Soft Inc.", "BLUEBIRD-SOFT" }, { 0x001680, "Bally Gaming + Systems", "BALLY-GAMING" }, { 0x001681, "Vector Informatik GmbH", "VECTOR-INFORMATIK" }, { 0x001682, "OMS Motion", "OMS-MOTION" }, { 0x001683, "WEBIO International Co.,.Ltd.", "WEBIO" }, { 0x001684, "Donjin Co.,Ltd.", "DONJIN" }, { 0x001685, "Elisa Oyj", "ELISA-OYJ" }, { 0x001686, "Karl Storz Imaging", "KARL-STORZ-IMAGING" }, { 0x001687, "Chubb CSC-Vendor AP", "CHUBB-CSC-VENDOR-AP" }, { 0x001688, "ServerEngines LLC", "SERVERENGINES" }, { 0x001689, "Pilkor Electronics Co., Ltd", "PILKOR-ELECTRONICS" }, { 0x00168A, "id-Confirm Inc", "ID-CONFIRM" }, { 0x00168B, "Paralan Corporation", "PARALAN" }, { 0x00168C, "DSL Partner AS", "DSL-PARTNER-AS" }, { 0x00168D, "KORWIN CO., Ltd.", "KORWIN" }, { 0x00168E, "Vimicro corporation", "VIMICRO" }, { 0x00168F, "GN Netcom A/S", "GN-NETCOM-A/S" }, { 0x001690, "J-TEK INCORPORATION", "J-TEK-INCORPORATION" }, { 0x001691, "Moser-Baer AG", "MOSER-BAER" }, { 0x001692, "Scientific-Atlanta, Inc.", "SCIENTIFIC-ATLANTA" }, { 0x001693, "PowerLink Technology Inc.", "POWERLINK" }, { 0x001694, "Sennheiser Communications A/S", "SENNHEISER-COMMUNICATION-A/S" }, { 0x001695, "AVC Technology (International) Limited", "AVC" }, { 0x001696, "QDI Technology (H.K.) Limited", "QDI-H-K" }, { 0x001697, "NEC Corporation", "NEC" }, { 0x001698, "T&A Mobile Phones", "T-A-MOBILE-PHONES" }, { 0x001699, "Tonic DVB Marketing Ltd", "TONIC-DVB-MARKETING" }, { 0x00169A, "Quadrics Ltd", "QUADRICS" }, { 0x00169B, "Alstom Transport", "ALSTOM-TRANSPORT" }, { 0x00169C, "Cisco Systems, Inc", "CISCO" }, { 0x00169D, "Cisco Systems, Inc", "CISCO" }, { 0x00169E, "TV One Ltd", "TV-ONE" }, { 0x00169F, "Vimtron Electronics Co., Ltd.", "VIMTRON-ELECTRONICS" }, { 0x0016A0, "Auto-Maskin", "AUTO-MASKIN" }, { 0x0016A1, "3Leaf Networks", "3LEAF-NETWORKS" }, { 0x0016A2, "CentraLite Systems, Inc.", "CENTRALITE" }, { 0x0016A3, "INGETEAM", "INGETEAM" }, { 0x0016A4, "Ezurio Ltd", "EZURIO" }, { 0x0016A5, "Tandberg Storage ASA", "TANDBERG-STORAGE-ASA" }, { 0x0016A6, "Dovado FZ-LLC", "DOVADO-FZ" }, { 0x0016A7, "AWETA G&P", "AWETA-G-P" }, { 0x0016A8, "CWT CO., LTD.", "CWT" }, { 0x0016A9, "2EI", "2EI" }, { 0x0016AA, "Kei Communication Technology Inc.", "KEI-COMMUNICATION" }, { 0x0016AB, "Dansensor A/S", "DANSENSOR-A/S" }, { 0x0016AC, "Toho Technology Corp.", "TOHO" }, { 0x0016AD, "BT-Links Company Limited", "BT-LINKS-COMPANY" }, { 0x0016AE, "INVENTEL", "INVENTEL" }, { 0x0016AF, "Shenzhen Union Networks Equipment Co.,Ltd.", "SHENZHEN-UNION-NETWORKS-EQUIPMENT" }, { 0x0016B0, "VK Corporation", "VK" }, { 0x0016B1, "KBS", "KBS" }, { 0x0016B2, "DriveCam Inc", "DRIVECAM" }, { 0x0016B3, "Photonicbridges (China) Co., Ltd.", "PHOTONICBRIDGES-CHINA" }, { 0x0016B4, "Private", "PRIVATE" }, { 0x0016B5, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0016B6, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x0016B7, "Seoul Commtech", "SEOUL-COMMTECH" }, { 0x0016B8, "Sony Corporation", "SONY" }, { 0x0016B9, "ProCurve Networking by HP", "PROCURVE-NETWORKING-BY-HP" }, { 0x0016BA, "WEATHERNEWS INC.", "WEATHERNEWS" }, { 0x0016BB, "Law-Chain Computer Technology Co Ltd", "LAW-CHAIN" }, { 0x0016BC, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0016BD, "ATI Industrial Automation", "ATI-INDUSTRIAL-AUTOMATION" }, { 0x0016BE, "INFRANET, Inc.", "INFRANET" }, { 0x0016BF, "PaloDEx Group Oy", "PALODEX-GROUP-OY" }, { 0x0016C0, "Semtech Corporation", "SEMTECH" }, { 0x0016C1, "Eleksen Ltd", "ELEKSEN" }, { 0x0016C2, "Avtec Systems Inc", "AVTEC" }, { 0x0016C3, "BA Systems Inc", "BA" }, { 0x0016C4, "SiRF Technology, Inc.", "SIRF" }, { 0x0016C5, "Shenzhen Xing Feng Industry Co.,Ltd", "SHENZHEN-XING-FENG-INDUSTRY" }, { 0x0016C6, "North Atlantic Industries", "NORTH-ATLANTIC-INDUSTRIES" }, { 0x0016C7, "Cisco Systems, Inc", "CISCO" }, { 0x0016C8, "Cisco Systems, Inc", "CISCO" }, { 0x0016C9, "NAT Seattle, Inc.", "NAT-SEATTLE" }, { 0x0016CA, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x0016CB, "Apple, Inc.", "APPLE" }, { 0x0016CC, "Xcute Mobile Corp.", "XCUTE-MOBILE" }, { 0x0016CD, "HIJI HIGH-TECH CO., LTD.", "HIJI-HIGH-TECH" }, { 0x0016CE, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x0016CF, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x0016D0, "ATech elektronika d.o.o.", "ATECH-ELEKTRONIKA-D-O-O" }, { 0x0016D1, "ZAT a.s.", "ZAT" }, { 0x0016D2, "Caspian", "CASPIAN" }, { 0x0016D3, "Wistron Corporation", "WISTRON" }, { 0x0016D4, "Compal Communications, Inc.", "COMPAL-COMMUNICATION" }, { 0x0016D5, "Synccom Co., Ltd", "SYNCCOM" }, { 0x0016D6, "TDA Tech Pty Ltd", "TDA-TECH-PTY" }, { 0x0016D7, "Sunways AG", "SUNWAYS" }, { 0x0016D8, "Senea AB", "SENEA-AB" }, { 0x0016D9, "NINGBO BIRD CO.,LTD.", "NINGBO-BIRD" }, { 0x0016DA, "Futronic Technology Co. Ltd.", "FUTRONIC" }, { 0x0016DB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0016DC, "ARCHOS", "ARCHOS" }, { 0x0016DD, "Gigabeam Corporation", "GIGABEAM" }, { 0x0016DE, "FAST Inc", "FAST" }, { 0x0016DF, "Lundinova AB", "LUNDINOVA-AB" }, { 0x0016E0, "3Com Ltd", "3COM" }, { 0x0016E1, "SiliconStor, Inc.", "SILICONSTOR" }, { 0x0016E2, "American Fibertek, Inc.", "AMERICAN-FIBERTEK" }, { 0x0016E3, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x0016E4, "VANGUARD SECURITY ENGINEERING CORP.", "VANGUARD-SECURITY-ENGINEERING" }, { 0x0016E5, "FORDLEY DEVELOPMENT LIMITED", "FORDLEY-DEVELOPMENT" }, { 0x0016E6, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x0016E7, "Dynamix Promotions Limited", "DYNAMIX-PROMOTIONS" }, { 0x0016E8, "Lumissil Microsystems", "LUMISSIL-MICROSYSTEMS" }, { 0x0016E9, "Tiba Medical Inc", "TIBA-MEDICAL" }, { 0x0016EA, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0016EB, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0016EC, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x0016ED, "Utility, Inc", "UTILITY" }, { 0x0016EE, "Royaldigital Inc.", "ROYALDIGITAL" }, { 0x0016EF, "Koko Fitness, Inc.", "KOKO-FITNESS" }, { 0x0016F0, "Dell", "DELL" }, { 0x0016F1, "OmniSense, LLC", "OMNISENSE" }, { 0x0016F2, "Dmobile System Co., Ltd.", "DMOBILE-SYSTEM" }, { 0x0016F3, "CAST Information Co., Ltd", "CAST-INFORMATION" }, { 0x0016F4, "Eidicom Co., Ltd.", "EIDICOM" }, { 0x0016F5, "Dalian Golden Hualu Digital Technology Co.,Ltd", "DALIAN-GOLDEN-HUALU-DIGITAL" }, { 0x0016F6, "Nevion", "NEVION" }, { 0x0016F7, "L-3 Communications, Aviation Recorders", "L-3-COMMUNICATION-AVIATION-RECORDERS" }, { 0x0016F8, "AVIQTECH TECHNOLOGY CO., LTD.", "AVIQTECH" }, { 0x0016F9, "CETRTA POT, d.o.o., Kranj", "CETRTA-POT-D-O-O-KRANJ" }, { 0x0016FA, "ECI Telecom Ltd.", "ECI-TELECOM" }, { 0x0016FB, "SHENZHEN MTC CO LTD", "SHENZHEN-MTC" }, { 0x0016FC, "TOHKEN CO.,LTD.", "TOHKEN" }, { 0x0016FD, "Jaty Electronics", "JATY-ELECTRONICS" }, { 0x0016FE, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x0016FF, "Wamin Optocomm Mfg Corp", "WAMIN-OPTOCOMM-MFG" }, { 0x001700, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001701, "KDE, Inc.", "KDE" }, { 0x001702, "Osung Midicom Co., Ltd", "OSUNG-MIDICOM" }, { 0x001703, "MOSDAN Internation Co.,Ltd", "MOSDAN-INTERNATION" }, { 0x001704, "Shinco Electronics Group Co.,Ltd", "SHINCO-ELECTRONICS-GROUP" }, { 0x001705, "Methode Electronics", "METHODE-ELECTRONICS" }, { 0x001706, "Techfaithwireless Communication Technology Limited.", "TECHFAITHWIRELESS-COMMUNICATION" }, { 0x001707, "InGrid, Inc", "INGRID" }, { 0x001708, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x001709, "Exalt Communications", "EXALT-COMMUNICATION" }, { 0x00170A, "INEW DIGITAL COMPANY", "INEW-DIGITAL-COMPANY" }, { 0x00170B, "Contela, Inc.", "CONTELA" }, { 0x00170C, "Twig Com Ltd.", "TWIG-COM" }, { 0x00170D, "Dust Networks Inc.", "DUST-NETWORKS" }, { 0x00170E, "Cisco Systems, Inc", "CISCO" }, { 0x00170F, "Cisco Systems, Inc", "CISCO" }, { 0x001710, "Casa Systems Inc.", "CASA" }, { 0x001711, "Cytiva Sweden AB", "CYTIVA-SWEDEN-AB" }, { 0x001712, "ISCO International", "ISCO" }, { 0x001713, "Tiger NetCom", "TIGER-NETCOM" }, { 0x001714, "BR Controls Nederland bv", "BR-CONTROLS-NEDERLAND" }, { 0x001715, "Qstik", "QSTIK" }, { 0x001716, "Qno Technology Inc.", "QNO" }, { 0x001717, "Leica Geosystems AG", "LEICA-GEOSYSTEMS" }, { 0x001718, "Vansco Electronics Oy", "VANSCO-ELECTRONICS-OY" }, { 0x001719, "Audiocodes USA, Inc", "AUDIOCODES-USA" }, { 0x00171A, "Winegard Company", "WINEGARD-COMPANY" }, { 0x00171B, "Innovation Lab Corp.", "INNOVATION-LAB" }, { 0x00171C, "NT MicroSystems, Inc.", "NT-MICROSYSTEMS" }, { 0x00171D, "DIGIT", "DIGIT" }, { 0x00171E, "Theo Benning GmbH & Co. KG", "THEO-BENNING" }, { 0x00171F, "IMV Corporation", "IMV" }, { 0x001720, "Image Sensing Systems, Inc.", "IMAGE-SENSING" }, { 0x001721, "FITRE S.p.A.", "FITRE" }, { 0x001722, "Hanazeder Electronic GmbH", "HANAZEDER" }, { 0x001723, "Summit Data Communications", "SUMMIT-DATA-COMMUNICATION" }, { 0x001724, "Studer Professional Audio GmbH", "STUDER-PROFESSIONAL-AUDIO" }, { 0x001725, "Liquid Computing", "LIQUID-COMPUTING" }, { 0x001726, "m2c Electronic Technology Ltd.", "M2C" }, { 0x001727, "Thermo Ramsey Italia s.r.l.", "THERMO-RAMSEY-ITALIA" }, { 0x001728, "Selex Communications", "SELEX-COMMUNICATION" }, { 0x001729, "Ubicod Co.LTD", "UBICOD" }, { 0x00172A, "Proware Technology Corp.(By Unifosa)", "PROWARE-BY-UNIFOSA" }, { 0x00172B, "Global Technologies Inc.", "GLOBAL-TECHNOLOGIES" }, { 0x00172C, "TAEJIN INFOTECH", "TAEJIN-INFOTECH" }, { 0x00172D, "Axcen Photonics Corporation", "AXCEN-PHOTONICS" }, { 0x00172E, "FXC Inc.", "FXC" }, { 0x00172F, "NeuLion Incorporated", "NEULION-INCORPORATED" }, { 0x001730, "Automation Electronics", "AUTOMATION-ELECTRONICS" }, { 0x001731, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x001732, "Science-Technical Center RISSA", "SCIENCE-TECHNICAL-CENTER-RISSA" }, { 0x001733, "SFR", "SFR" }, { 0x001734, "ADC Telecommunications", "ADC-TELECOMMUNICATIONS" }, { 0x001735, "Intel Wireless Network Group", "INTEL-WIRELESS-NETWORK-GROUP" }, { 0x001736, "iiTron Inc.", "IITRON" }, { 0x001737, "Industrie Dial Face S.p.A.", "INDUSTRIE-DIAL-FACE" }, { 0x001738, "International Business Machines", "BUSINESS-MACHINES" }, { 0x001739, "Bright Headphone Electronics Company", "BRIGHT-HEADPHONE-ELECTRONICS-COMPANY" }, { 0x00173A, "Cloudastructure Inc", "CLOUDASTRUCTURE" }, { 0x00173B, "Cisco Systems, Inc", "CISCO" }, { 0x00173C, "Extreme Engineering Solutions", "EXTREME-ENGINEERING-SOLUTIONS" }, { 0x00173D, "Neology", "NEOLOGY" }, { 0x00173E, "LeucotronEquipamentos Ltda.", "LEUCOTRONEQUIPAMENTOS-LTDA" }, { 0x00173F, "Belkin International Inc.", "BELKIN" }, { 0x001740, "Bluberi Gaming Technologies Inc", "BLUBERI-GAMING-TECHNOLOGIES" }, { 0x001741, "DEFIDEV", "DEFIDEV" }, { 0x001742, "FUJITSU LIMITED", "FUJITSU" }, { 0x001743, "Deck Srl", "DECK-SRL" }, { 0x001744, "Araneo Ltd.", "ARANEO" }, { 0x001745, "INNOTZ CO., Ltd", "INNOTZ" }, { 0x001746, "Freedom9 Inc.", "FREEDOM9" }, { 0x001747, "Trimble", "TRIMBLE" }, { 0x001748, "Neokoros Brasil Ltda", "NEOKOROS-BRASIL-LTDA" }, { 0x001749, "HYUNDAE YONG-O-SA CO.,LTD", "HYUNDAE-YONG-O" }, { 0x00174A, "SOCOMEC", "SOCOMEC" }, { 0x00174B, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x00174C, "Millipore", "MILLIPORE" }, { 0x00174D, "DYNAMIC NETWORK FACTORY, INC.", "DYNAMIC-NETWORK-FACTORY" }, { 0x00174E, "Parama-tech Co.,Ltd.", "PARAMA-TECH" }, { 0x00174F, "iCatch Inc.", "ICATCH" }, { 0x001750, "GSI Group, MicroE Systems", "GSI-GROUP-MICROE" }, { 0x001751, "Online Corporation", "ONLINE" }, { 0x001752, "DAGS, Inc", "DAGS" }, { 0x001753, "nFore Technology Inc.", "NFORE" }, { 0x001754, "Arkino HiTOP Corporation Limited", "ARKINO-HITOP" }, { 0x001755, "GE Security", "GE-SECURITY" }, { 0x001756, "Vinci Labs Oy", "VINCI-LABS-OY" }, { 0x001757, "RIX TECHNOLOGY LIMITED", "RIX" }, { 0x001758, "ThruVision Ltd", "THRUVISION" }, { 0x001759, "Cisco Systems, Inc", "CISCO" }, { 0x00175A, "Cisco Systems, Inc", "CISCO" }, { 0x00175B, "ACS Solutions Switzerland Ltd.", "ACS-SOLUTIONS-SWITZERLAND" }, { 0x00175C, "SHARP CORPORATION", "SHARP" }, { 0x00175D, "Dongseo system.", "DONGSEO-SYSTEM" }, { 0x00175E, "Zed-3", "ZED-3" }, { 0x00175F, "XENOLINK Communications Co., Ltd.", "XENOLINK-COMMUNICATION" }, { 0x001760, "Naito Densei Machida MFG.CO.,LTD", "NAITO-DENSEI-MACHIDA-MFG" }, { 0x001761, "Private", "PRIVATE" }, { 0x001762, "Solar Technology, Inc.", "SOLAR" }, { 0x001763, "Essentia S.p.A.", "ESSENTIA" }, { 0x001764, "ATMedia GmbH", "ATMEDIA" }, { 0x001765, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001766, "Accense Technology, Inc.", "ACCENSE" }, { 0x001767, "Earforce AS", "EARFORCE-AS" }, { 0x001768, "Zinwave Ltd", "ZINWAVE" }, { 0x001769, "Cymphonix Corp", "CYMPHONIX" }, { 0x00176A, "Avago Technologies", "AVAGO-TECHNOLOGIES" }, { 0x00176B, "Kiyon, Inc.", "KIYON" }, { 0x00176C, "Pivot3, Inc.", "PIVOT3" }, { 0x00176D, "CORE CORPORATION", "CORE" }, { 0x00176E, "DUCATI SISTEMI", "DUCATI-SISTEMI" }, { 0x00176F, "PAX Computer Technology(Shenzhen) Ltd.", "PAX-SHENZHEN" }, { 0x001770, "Arti Industrial Electronics Ltd.", "ARTI-INDUSTRIAL-ELECTRONICS" }, { 0x001771, "APD Communications Ltd", "APD-COMMUNICATION" }, { 0x001772, "ASTRO Strobel Kommunikationssysteme GmbH", "ASTRO-STROBEL-KOMMUNIKATIONSSYSTEME" }, { 0x001773, "Laketune Technologies Co. Ltd", "LAKETUNE-TECHNOLOGIES" }, { 0x001774, "Elesta GmbH", "ELESTA" }, { 0x001775, "TTE Germany GmbH", "TTE-GERMANY" }, { 0x001776, "Meso Scale Diagnostics, LLC", "MESO-SCALE-DIAGNOSTICS" }, { 0x001777, "Obsidian Research Corporation", "OBSIDIAN-RESEARCH" }, { 0x001778, "Central Music Co.", "CENTRAL-MUSIC" }, { 0x001779, "QuickTel", "QUICKTEL" }, { 0x00177A, "ASSA ABLOY AB", "ASSA-ABLOY-AB" }, { 0x00177B, "Azalea Networks inc", "AZALEA-NETWORKS" }, { 0x00177C, "Smartlink Network Systems Limited", "SMARTLINK-NETWORK" }, { 0x00177D, "IDT Technology Limited", "IDT" }, { 0x00177E, "Meshcom Technologies Inc.", "MESHCOM-TECHNOLOGIES" }, { 0x00177F, "Worldsmart Retech", "WORLDSMART-RETECH" }, { 0x001780, "Applied Biosystems B.V.", "APPLIED-BIOSYSTEMS-B-V" }, { 0x001781, "Greystone Data System, Inc.", "GREYSTONE-DATA-SYSTEM" }, { 0x001782, "LoBenn Inc.", "LOBENN" }, { 0x001783, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x001784, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001785, "Sparr Electronics Ltd", "SPARR-ELECTRONICS" }, { 0x001786, "wisembed", "WISEMBED" }, { 0x001787, "Brother, Brother & Sons ApS", "BROTHER-BROTHER-SONS-APS" }, { 0x001788, "Philips Lighting BV", "PHILIPS-LIGHTING" }, { 0x001789, "Zenitron Corporation", "ZENITRON" }, { 0x00178A, "DARTS TECHNOLOGIES CORP.", "DARTS-TECHNOLOGIES" }, { 0x00178B, "Teledyne Technologies Incorporated", "TELEDYNE-TECHNOLOGIES-INCORPORATED" }, { 0x00178C, "Independent Witness, Inc", "INDEPENDENT-WITNESS" }, { 0x00178D, "Checkpoint Systems, Inc.", "CHECKPOINT" }, { 0x00178E, "Gunnebo Cash Automation AB", "GUNNEBO-CASH-AUTOMATION-AB" }, { 0x00178F, "NINGBO YIDONG ELECTRONIC CO.,LTD.", "NINGBO-YIDONG" }, { 0x001790, "HYUNDAI DIGITECH Co, Ltd.", "HYUNDAI-DIGITECH" }, { 0x001791, "LinTech GmbH", "LINTECH" }, { 0x001792, "Falcom Wireless Comunications Gmbh", "FALCOM-WIRELESS-COMUNICATIONS" }, { 0x001793, "Tigi Corporation", "TIGI" }, { 0x001794, "Cisco Systems, Inc", "CISCO" }, { 0x001795, "Cisco Systems, Inc", "CISCO" }, { 0x001796, "Rittmeyer AG", "RITTMEYER" }, { 0x001797, "Telsy Elettronica S.p.A.", "TELSY-ELETTRONICA" }, { 0x001798, "Azonic Technology Co., LTD", "AZONIC" }, { 0x001799, "SmarTire Systems Inc.", "SMARTIRE" }, { 0x00179A, "D-Link Corporation", "D-LINK" }, { 0x00179B, "CHANT SINCERE CO.,LTD", "CHANT-SINCERE" }, { 0x00179C, "DEPRAG SCHULZ GMBH u. CO.", "DEPRAG-SCHULZ-U" }, { 0x00179D, "Kelman Limited", "KELMAN" }, { 0x00179E, "Sirit Inc", "SIRIT" }, { 0x00179F, "Apricorn", "APRICORN" }, { 0x0017A0, "RoboTech srl", "ROBOTECH-SRL" }, { 0x0017A1, "3soft inc.", "3SOFT" }, { 0x0017A2, "Camrivox Ltd.", "CAMRIVOX" }, { 0x0017A3, "MIX s.r.l.", "MIX" }, { 0x0017A4, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x0017A5, "Ralink Technology Corp", "RALINK" }, { 0x0017A6, "YOSIN ELECTRONICS CO., LTD.", "YOSIN-ELECTRONICS" }, { 0x0017A7, "Mobile Computing Promotion Consortium", "MOBILE-COMPUTING-PROMOTION-CONSORTIUM" }, { 0x0017A8, "EDM Corporation", "EDM" }, { 0x0017A9, "Sentivision", "SENTIVISION" }, { 0x0017AA, "elab-experience inc.", "ELAB-EXPERIENCE" }, { 0x0017AB, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x0017AC, "O'Neil Product Development Inc.", "O-NEIL-PRODUCT-DEVELOPMENT" }, { 0x0017AD, "AceNet Corporation", "ACENET" }, { 0x0017AE, "GAI-Tronics", "GAI-TRONICS" }, { 0x0017AF, "Enermet", "ENERMET" }, { 0x0017B0, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0017B1, "ACIST Medical Systems, Inc.", "ACIST-MEDICAL" }, { 0x0017B2, "SK Telesys", "SK-TELESYS" }, { 0x0017B3, "Aftek Infosys Limited", "AFTEK-INFOSYS" }, { 0x0017B4, "Remote Security Systems, LLC", "REMOTE-SECURITY" }, { 0x0017B5, "Peerless Systems Corporation", "PEERLESS" }, { 0x0017B6, "Aquantia Corporation", "AQUANTIA" }, { 0x0017B7, "Tonze Technology Co.", "TONZE" }, { 0x0017B8, "NOVATRON CO., LTD.", "NOVATRON" }, { 0x0017B9, "Gambro Lundia AB", "GAMBRO-LUNDIA-AB" }, { 0x0017BA, "SEDO CO., LTD.", "SEDO" }, { 0x0017BB, "Syrinx Industrial Electronics", "SYRINX-INDUSTRIAL-ELECTRONICS" }, { 0x0017BC, "Touchtunes Music Corporation", "TOUCHTUNES-MUSIC" }, { 0x0017BD, "Tibetsystem", "TIBETSYSTEM" }, { 0x0017BE, "Tratec Telecom B.V.", "TRATEC-TELECOM-B-V" }, { 0x0017BF, "Coherent Research Limited", "COHERENT-RESEARCH" }, { 0x0017C0, "PureTech Systems, Inc.", "PURETECH" }, { 0x0017C1, "CM Precision Technology LTD.", "CM-PRECISION" }, { 0x0017C2, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x0017C3, "KTF Technologies Inc.", "KTF-TECHNOLOGIES" }, { 0x0017C4, "Quanta Microsystems, INC.", "QUANTA-MICROSYSTEMS" }, { 0x0017C5, "SonicWALL", "SONICWALL" }, { 0x0017C6, "Cross Match Technologies Inc", "CROSS-MATCH-TECHNOLOGIES" }, { 0x0017C7, "MARA Systems Consulting AB", "MARA-CONSULTING-AB" }, { 0x0017C8, "KYOCERA Display Corporation", "KYOCERA-DISPLAY" }, { 0x0017C9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0017CA, "Qisda Corporation", "QISDA" }, { 0x0017CB, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x0017CC, "Alcatel-Lucent", "ALCATEL-LUCENT" }, { 0x0017CD, "CEC Wireless R&D Ltd.", "CEC-WIRELESS-R-D" }, { 0x0017CE, "Screen Service Spa", "SCREEN-SERVICE-SPA" }, { 0x0017CF, "iMCA-GmbH", "IMCA" }, { 0x0017D0, "Opticom Communications, LLC", "OPTICOM-COMMUNICATION" }, { 0x0017D1, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x0017D2, "THINLINX PTY LTD", "THINLINX-PTY" }, { 0x0017D3, "Etymotic Research, Inc.", "ETYMOTIC-RESEARCH" }, { 0x0017D4, "Monsoon Multimedia, Inc", "MONSOON-MULTIMEDIA" }, { 0x0017D5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0017D6, "Bluechips Microhouse Co.,Ltd.", "BLUECHIPS-MICROHOUSE" }, { 0x0017D7, "ION Geophysical Corporation Inc.", "ION-GEOPHYSICAL" }, { 0x0017D8, "Magnum Semiconductor, Inc.", "MAGNUM-SEMICONDUCTOR" }, { 0x0017D9, "AAI Corporation", "AAI" }, { 0x0017DA, "Spans Logic", "SPANS-LOGIC" }, { 0x0017DB, "CANKO TECHNOLOGIES INC.", "CANKO-TECHNOLOGIES" }, { 0x0017DC, "DAEMYUNG ZERO1", "DAEMYUNG-ZERO1" }, { 0x0017DD, "Clipsal Australia", "CLIPSAL-AUSTRALIA" }, { 0x0017DE, "Advantage Six Ltd", "ADVANTAGE-SIX" }, { 0x0017DF, "Cisco Systems, Inc", "CISCO" }, { 0x0017E0, "Cisco Systems, Inc", "CISCO" }, { 0x0017E1, "DACOS Technologies Co., Ltd.", "DACOS-TECHNOLOGIES" }, { 0x0017E2, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0017E3, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0017E4, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0017E5, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0017E6, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0017E7, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0017E8, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0017E9, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0017EA, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0017EB, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0017EC, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0017ED, "WooJooIT Ltd.", "WOOJOOIT" }, { 0x0017EE, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0017EF, "IBM Corp", "IBM" }, { 0x0017F0, "SZCOM Broadband Network Technology Co.,Ltd", "SZCOM-BROADBAND-NETWORK" }, { 0x0017F1, "Renu Electronics Pvt Ltd", "RENU-ELECTRONICS-PVT" }, { 0x0017F2, "Apple, Inc.", "APPLE" }, { 0x0017F3, "Harris Corporation", "HARRIS" }, { 0x0017F4, "ZERON ALLIANCE", "ZERON-ALLIANCE" }, { 0x0017F5, "LIG NEOPTEK", "LIG-NEOPTEK" }, { 0x0017F6, "Pyramid Meriden Inc.", "PYRAMID-MERIDEN" }, { 0x0017F7, "CEM Solutions Pvt Ltd", "CEM-SOLUTIONS-PVT" }, { 0x0017F8, "Motech Industries Inc.", "MOTECH-INDUSTRIES" }, { 0x0017F9, "Forcom Sp. z o.o.", "FORCOM-SP-Z-O-O" }, { 0x0017FA, "Microsoft Corporation", "MICROSOFT" }, { 0x0017FB, "FA", "FA" }, { 0x0017FC, "Suprema Inc.", "SUPREMA" }, { 0x0017FD, "Amulet Hotkey", "AMULET-HOTKEY" }, { 0x0017FE, "TALOS SYSTEM INC.", "TALOS-SYSTEM" }, { 0x0017FF, "PLAYLINE Co.,Ltd.", "PLAYLINE" }, { 0x001800, "UNIGRAND LTD", "UNIGRAND" }, { 0x001801, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x001802, "Alpha Networks Inc.", "ALPHA-NETWORKS" }, { 0x001803, "ArcSoft Shanghai Co. LTD", "ARCSOFT-SHANGHAI" }, { 0x001804, "E-TEK DIGITAL TECHNOLOGY LIMITED", "E-TEK-DIGITAL" }, { 0x001805, "Beijing InHand Networking Technology Co.,Ltd.", "BEIJING-INHAND-NETWORKING" }, { 0x001806, "Hokkei Industries Co., Ltd.", "HOKKEI-INDUSTRIES" }, { 0x001807, "Fanstel Corp.", "FANSTEL" }, { 0x001808, "SightLogix, Inc.", "SIGHTLOGIX" }, { 0x001809, "CRESYN", "CRESYN" }, { 0x00180A, "Cisco Meraki", "CISCO-MERAKI" }, { 0x00180B, "Brilliant Telecommunications", "BRILLIANT-TELECOMMUNICATIONS" }, { 0x00180C, "DZS Inc.", "DZS" }, { 0x00180D, "Terabytes Server Storage Tech Corp", "TERABYTES-SERVER-STORAGE-TECH" }, { 0x00180E, "Avega Systems", "AVEGA" }, { 0x00180F, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001810, "IPTrade S.A.", "IPTRADE" }, { 0x001811, "Neuros Technology International, LLC.", "NEUROS" }, { 0x001812, "Beijing Xinwei Telecom Technology Co., Ltd.", "BEIJING-XINWEI-TELECOM" }, { 0x001813, "Sony Corporation", "SONY" }, { 0x001814, "Mitutoyo Corporation", "MITUTOYO" }, { 0x001815, "GZ Technologies, Inc.", "GZ-TECHNOLOGIES" }, { 0x001816, "Ubixon Co., Ltd.", "UBIXON" }, { 0x001817, "D. E. Shaw Research, LLC", "D-E-SHAW-RESEARCH" }, { 0x001818, "Cisco Systems, Inc", "CISCO" }, { 0x001819, "Cisco Systems, Inc", "CISCO" }, { 0x00181A, "AVerMedia Information Inc.", "AVERMEDIA-INFORMATION" }, { 0x00181B, "TaiJin Metal Co., Ltd.", "TAIJIN-METAL" }, { 0x00181C, "VITEC", "VITEC" }, { 0x00181D, "ASIA ELECTRONICS CO.,LTD", "ASIA-ELECTRONICS" }, { 0x00181E, "GDX Technologies Ltd.", "GDX-TECHNOLOGIES" }, { 0x00181F, "Palmmicro Communications", "PALMMICRO-COMMUNICATION" }, { 0x001820, "w5networks", "W5NETWORKS" }, { 0x001821, "SINDORICOH", "SINDORICOH" }, { 0x001822, "CEC TELECOM CO.,LTD.", "CEC-TELECOM" }, { 0x001823, "Delta Electronics, Inc.", "DELTA-ELECTRONICS" }, { 0x001824, "Kimaldi Electronics, S.L.", "KIMALDI-ELECTRONICS" }, { 0x001825, "Private", "PRIVATE" }, { 0x001826, "Cale Access AB", "CALE-ACCESS-AB" }, { 0x001827, "NEC UNIFIED SOLUTIONS NEDERLAND B.V.", "NEC-UNIFIED-SOLUTIONS-NEDERLAND-B-V" }, { 0x001828, "e2v technologies (UK) ltd.", "E2V-TECHNOLOGIES-UK" }, { 0x001829, "Gatsometer", "GATSOMETER" }, { 0x00182A, "Taiwan Video & Monitor", "TAIWAN-VIDEO-MONITOR" }, { 0x00182B, "Softier", "SOFTIER" }, { 0x00182C, "Ascend Networks, Inc.", "ASCEND-NETWORKS" }, { 0x00182D, "Artec Design", "ARTEC-DESIGN" }, { 0x00182E, "XStreamHD", "XSTREAMHD" }, { 0x00182F, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x001830, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x001831, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x001832, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x001833, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x001834, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x001835, "Thoratec / ITC", "THORATEC-/-ITC" }, { 0x001836, "REJ Co.,Ltd", "REJ" }, { 0x001837, "Universal ABIT Co., Ltd.", "UNIVERSAL-ABIT" }, { 0x001838, "PanAccess Communications,Inc.", "PANACCESS-COMMUNICATION" }, { 0x001839, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x00183A, "Westell Technologies Inc.", "WESTELL-TECHNOLOGIES" }, { 0x00183B, "CENITS Co., Ltd.", "CENITS" }, { 0x00183C, "Encore Software Limited", "ENCORE-SOFTWARE" }, { 0x00183D, "Vertex Link Corporation", "VERTEX-LINK" }, { 0x00183E, "Digilent, Inc", "DIGILENT" }, { 0x00183F, "2Wire Inc", "2WIRE" }, { 0x001840, "3 Phoenix, Inc.", "3-PHOENIX" }, { 0x001841, "High Tech Computer Corp", "HIGH-TECH" }, { 0x001842, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001843, "Dawevision Ltd", "DAWEVISION" }, { 0x001844, "Heads Up Technologies, Inc.", "HEADS-UP-TECHNOLOGIES" }, { 0x001845, "Pulsar-Telecom LLC.", "PULSAR-TELECOM" }, { 0x001846, "Crypto S.A.", "CRYPTO" }, { 0x001847, "AceNet Technology Inc.", "ACENET" }, { 0x001848, "Vecima Networks Inc.", "VECIMA-NETWORKS" }, { 0x001849, "nVent, Schroff GmbH", "NVENT-SCHROFF" }, { 0x00184A, "Catcher, Inc.", "CATCHER" }, { 0x00184B, "Las Vegas Gaming, Inc.", "LAS-VEGAS-GAMING" }, { 0x00184C, "Bogen Communications", "BOGEN-COMMUNICATION" }, { 0x00184D, "NETGEAR", "NETGEAR" }, { 0x00184E, "Lianhe Technologies, Inc.", "LIANHE-TECHNOLOGIES" }, { 0x00184F, "8 Ways Technology Corp.", "8-WAYS" }, { 0x001850, "Secfone Kft", "SECFONE-KFT" }, { 0x001851, "SWsoft", "SWSOFT" }, { 0x001852, "StorLink Semiconductors, Inc.", "STORLINK-SEMICONDUCTORS" }, { 0x001853, "Atera Networks LTD.", "ATERA-NETWORKS" }, { 0x001854, "Argard Co., Ltd", "ARGARD" }, { 0x001855, "Aeromaritime Systembau GmbH", "AEROMARITIME-SYSTEMBAU" }, { 0x001856, "EyeFi, Inc", "EYEFI" }, { 0x001857, "Unilever R&D", "UNILEVER-R-D" }, { 0x001858, "TagMaster AB", "TAGMASTER-AB" }, { 0x001859, "Strawberry Linux Co.,Ltd.", "STRAWBERRY-LINUX" }, { 0x00185A, "uControl, Inc.", "UCONTROL" }, { 0x00185B, "Network Chemistry, Inc", "NETWORK-CHEMISTRY" }, { 0x00185C, "EDSLAB Technologies", "EDSLAB-TECHNOLOGIES" }, { 0x00185D, "TAIGUEN TECHNOLOGY (SHEN-ZHEN) CO., LTD.", "TAIGUEN-SHEN-ZHEN" }, { 0x00185E, "Nexterm Inc.", "NEXTERM" }, { 0x00185F, "TAC Inc.", "TAC" }, { 0x001860, "SIM Technology Group Shanghai Simcom Ltd.,", "SIM-GROUP-SHANGHAI-SIMCOM" }, { 0x001861, "Ooma, Inc.", "OOMA" }, { 0x001862, "Seagate Technology", "SEAGATE" }, { 0x001863, "Veritech Electronics Limited", "VERITECH-ELECTRONICS" }, { 0x001864, "Eaton Corporation", "EATON" }, { 0x001865, "Siemens Healthcare Diagnostics Manufacturing Ltd", "SIEMENS-HEALTHCARE-DIAGNOSTICS-MANUFACTURING" }, { 0x001866, "Leutron Vision", "LEUTRON-VISION" }, { 0x001867, "Datalogic ADC", "DATALOGIC-ADC" }, { 0x001868, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x001869, "KINGJIM", "KINGJIM" }, { 0x00186A, "Global Link Digital Technology Co,.LTD", "GLOBAL-LINK-DIGITAL" }, { 0x00186B, "Sambu Communics CO., LTD.", "SAMBU-COMMUNICS" }, { 0x00186C, "Neonode AB", "NEONODE-AB" }, { 0x00186D, "Zhenjiang Sapphire Electronic Industry CO.", "ZHENJIANG-SAPPHIRE-INDUSTRY" }, { 0x00186E, "3Com Ltd", "3COM" }, { 0x00186F, "Setha Industria Eletronica LTDA", "SETHA-INDUSTRIA-ELETRONICA-LTDA" }, { 0x001870, "E28 Shanghai Limited", "E28-SHANGHAI" }, { 0x001871, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x001872, "Expertise Engineering", "EXPERTISE-ENGINEERING" }, { 0x001873, "Cisco Systems, Inc", "CISCO" }, { 0x001874, "Cisco Systems, Inc", "CISCO" }, { 0x001875, "AnaCise Testnology Pte Ltd", "ANACISE-TESTNOLOGY-PTE" }, { 0x001876, "WowWee Ltd.", "WOWWEE" }, { 0x001877, "Amplex A/S", "AMPLEX-A/S" }, { 0x001878, "Mackware GmbH", "MACKWARE" }, { 0x001879, "dSys", "DSYS" }, { 0x00187A, "Wiremold", "WIREMOLD" }, { 0x00187B, "4NSYS Co. Ltd.", "4NSYS" }, { 0x00187C, "INTERCROSS, LLC", "INTERCROSS" }, { 0x00187D, "Armorlink Co .Ltd", "ARMORLINK" }, { 0x00187E, "RGB Spectrum", "RGB-SPECTRUM" }, { 0x00187F, "ZODIANET", "ZODIANET" }, { 0x001880, "Maxim Integrated Products", "MAXIM-INTEGRATED-PRODUCTS" }, { 0x001881, "Buyang Electronics Industrial Co., Ltd", "BUYANG-ELECTRONICS-INDUSTRIAL" }, { 0x001882, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x001883, "FORMOSA21 INC.", "FORMOSA21" }, { 0x001884, "Fon Technology S.L.", "FON" }, { 0x001885, "Motorola Solutions Inc.", "MOTOROLA-SOLUTIONS" }, { 0x001886, "EL-TECH, INC.", "EL-TECH" }, { 0x001887, "Metasystem SpA", "METASYSTEM-SPA" }, { 0x001888, "GOTIVE a.s.", "GOTIVE" }, { 0x001889, "WinNet Solutions Limited", "WINNET-SOLUTIONS" }, { 0x00188A, "Infinova LLC", "INFINOVA" }, { 0x00188B, "Dell Inc.", "DELL" }, { 0x00188C, "Mobile Action Technology Inc.", "MOBILE-ACTION" }, { 0x00188D, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x00188E, "Ekahau, Inc.", "EKAHAU" }, { 0x00188F, "Montgomery Technology, Inc.", "MONTGOMERY" }, { 0x001890, "RadioCOM, s.r.o.", "RADIOCOM-S-R-O" }, { 0x001891, "Zhongshan General K-mate Electronics Co., Ltd", "ZHONGSHAN-GENERAL-K-MATE-ELECTRONICS" }, { 0x001892, "ads-tec GmbH", "ADS-TEC" }, { 0x001893, "SHENZHEN PHOTON BROADBAND TECHNOLOGY CO.,LTD", "SHENZHEN-PHOTON-BROADBAND" }, { 0x001894, "NPCore, Inc.", "NPCORE" }, { 0x001895, "Hansun Technologies Inc.", "HANSUN-TECHNOLOGIES" }, { 0x001896, "Great Well Electronic LTD", "GREAT-WELL" }, { 0x001897, "JESS-LINK PRODUCTS Co., LTD", "JESS-LINK-PRODUCTS" }, { 0x001898, "KINGSTATE ELECTRONICS CORPORATION", "KINGSTATE-ELECTRONICS" }, { 0x001899, "ShenZhen jieshun Science&Technology Industry CO,LTD.", "SHENZHEN-JIESHUN-SCIENCE-INDUSTRY" }, { 0x00189A, "HANA Micron Inc.", "HANA-MICRON" }, { 0x00189B, "Thomson Inc.", "THOMSON" }, { 0x00189C, "Weldex Corporation", "WELDEX" }, { 0x00189D, "Navcast Inc.", "NAVCAST" }, { 0x00189E, "OMNIKEY GmbH.", "OMNIKEY" }, { 0x00189F, "Lenntek Corporation", "LENNTEK" }, { 0x0018A0, "Cierma Ascenseurs", "CIERMA-ASCENSEURS" }, { 0x0018A1, "Tiqit Computers, Inc.", "TIQIT-COMPUTERS" }, { 0x0018A2, "XIP Technology AB", "XIP-AB" }, { 0x0018A3, "ZIPPY TECHNOLOGY CORP.", "ZIPPY" }, { 0x0018A4, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0018A5, "ADigit Technologies Corp.", "ADIGIT-TECHNOLOGIES" }, { 0x0018A6, "Persistent Systems, LLC", "PERSISTENT" }, { 0x0018A7, "Yoggie Security Systems LTD.", "YOGGIE-SECURITY" }, { 0x0018A8, "AnNeal Technology Inc.", "ANNEAL" }, { 0x0018A9, "Ethernet Direct Corporation", "ETHERNET-DIRECT" }, { 0x0018AA, "Protec Fire Detection plc", "PROTEC-FIRE-DETECTION-PLC" }, { 0x0018AB, "BEIJING LHWT MICROELECTRONICS INC.", "BEIJING-LHWT-MICROELECTRONICS" }, { 0x0018AC, "Shanghai Jiao Da HISYS Technology Co. Ltd.", "SHANGHAI-JIAO-DA-HISYS" }, { 0x0018AD, "NIDEC INSTRUMENTS CORPORATION", "NIDEC-INSTRUMENTS" }, { 0x0018AE, "TVT CO.,LTD", "TVT" }, { 0x0018AF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0018B0, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x0018B1, "IBM Corp", "IBM" }, { 0x0018B2, "ADEUNIS RF", "ADEUNIS-RF" }, { 0x0018B3, "TEC WizHome Co., Ltd.", "TEC-WIZHOME" }, { 0x0018B4, "Dawon Media Inc.", "DAWON-MEDIA" }, { 0x0018B5, "Magna Carta", "MAGNA-CARTA" }, { 0x0018B6, "S3C, Inc.", "S3C" }, { 0x0018B7, "D3 LED, LLC", "D3-LED" }, { 0x0018B8, "New Voice International AG", "NEW-VOICE" }, { 0x0018B9, "Cisco Systems, Inc", "CISCO" }, { 0x0018BA, "Cisco Systems, Inc", "CISCO" }, { 0x0018BB, "Eliwell Controls srl", "ELIWELL-CONTROLS-SRL" }, { 0x0018BC, "ZAO NVP Bolid", "ZAO-NVP-BOLID" }, { 0x0018BD, "SHENZHEN DVBWORLD TECHNOLOGY CO., LTD.", "SHENZHEN-DVBWORLD" }, { 0x0018BE, "ANSA Corporation", "ANSA" }, { 0x0018BF, "Essence Technology Solution, Inc.", "ESSENCE-SOLUTION" }, { 0x0018C0, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0018C1, "Almitec Informática e Comércio", "ALMITEC-INFORMTICA-E-COMRCIO" }, { 0x0018C2, "Firetide, Inc", "FIRETIDE" }, { 0x0018C3, "CS Corporation", "CS" }, { 0x0018C4, "Raba Technologies LLC", "RABA-TECHNOLOGIES" }, { 0x0018C5, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0018C6, "OPW Fuel Management Systems", "OPW-FUEL-MANAGEMENT" }, { 0x0018C7, "Real Time Automation", "REAL-TIME-AUTOMATION" }, { 0x0018C8, "ISONAS Inc.", "ISONAS" }, { 0x0018C9, "EOps Technology Limited", "EOPS" }, { 0x0018CA, "Viprinet GmbH", "VIPRINET" }, { 0x0018CB, "Tecobest Technology Limited", "TECOBEST" }, { 0x0018CC, "AXIOHM SAS", "AXIOHM-SAS" }, { 0x0018CD, "Erae Electronics Industry Co., Ltd", "ERAE-ELECTRONICS-INDUSTRY" }, { 0x0018CE, "Dreamtech Co., Ltd", "DREAMTECH" }, { 0x0018CF, "Baldor Electric Company", "BALDOR-ELECTRIC-COMPANY" }, { 0x0018D0, "AtRoad, A Trimble Company", "ATROAD-A-TRIMBLE-COMPANY" }, { 0x0018D1, "Siemens Home & Office Comm. Devices", "SIEMENS-HOME-OFFICE-COMM-DEVICES" }, { 0x0018D2, "High-Gain Antennas LLC", "HIGH-GAIN-ANTENNAS" }, { 0x0018D3, "TEAMCAST", "TEAMCAST" }, { 0x0018D4, "Unified Display Interface SIG", "UNIFIED-DISPLAY-INTERFACE-SIG" }, { 0x0018D5, "REIGNCOM", "REIGNCOM" }, { 0x0018D6, "Swirlnet A/S", "SWIRLNET-A/S" }, { 0x0018D7, "JAVAD GNSS, Inc.", "JAVAD-GNSS" }, { 0x0018D8, "ARCH METER Corporation", "ARCH-METER" }, { 0x0018D9, "Santosha Internatonal, Inc", "SANTOSHA-INTERNATONAL" }, { 0x0018DA, "Würth Elektronik eiSos GmbH & Co. KG", "WUERTH-ELEKTRONIK-EISOS" }, { 0x0018DB, "EPL Technology Ltd", "EPL" }, { 0x0018DC, "Prostar Co., Ltd.", "PROSTAR" }, { 0x0018DD, "Silicondust Engineering Ltd", "SILICONDUST-ENGINEERING" }, { 0x0018DE, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0018DF, "The Morey Corporation", "THE-MOREY" }, { 0x0018E0, "ANAVEO", "ANAVEO" }, { 0x0018E1, "Verkerk Service Systemen", "VERKERK-SERVICE-SYSTEMEN" }, { 0x0018E2, "Topdata Sistemas de Automacao Ltda", "TOPDATA-SISTEMAS-DE-AUTOMACAO-LTDA" }, { 0x0018E3, "Visualgate Systems, Inc.", "VISUALGATE" }, { 0x0018E4, "YIGUANG", "YIGUANG" }, { 0x0018E5, "Adhoco AG", "ADHOCO" }, { 0x0018E6, "Computer Hardware Design SIA", "HARDWARE-DESIGN-SIA" }, { 0x0018E7, "Cameo Communications, INC.", "CAMEO-COMMUNICATION" }, { 0x0018E8, "Hacetron Corporation", "HACETRON" }, { 0x0018E9, "Numata Corporation", "NUMATA" }, { 0x0018EA, "Alltec GmbH", "ALLTEC" }, { 0x0018EB, "Blue Zen Enterprises Private Limited", "BLUE-ZEN-ENTERPRISES-PRIVATE" }, { 0x0018EC, "Welding Technology Corporation", "WELDING" }, { 0x0018ED, "Accutech Ultrasystems Co., Ltd.", "ACCUTECH-ULTRASYSTEMS" }, { 0x0018EE, "Videology Imaging Solutions, Inc.", "VIDEOLOGY-IMAGING-SOLUTIONS" }, { 0x0018EF, "Escape Communications, Inc.", "ESCAPE-COMMUNICATION" }, { 0x0018F0, "JOYTOTO Co., Ltd.", "JOYTOTO" }, { 0x0018F1, "Chunichi Denshi Co.,LTD.", "CHUNICHI-DENSHI" }, { 0x0018F2, "Beijing Tianyu Communication Equipment Co., Ltd", "BEIJING-TIANYU-COMMUNICATION-EQUIPMENT" }, { 0x0018F3, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x0018F4, "EO TECHNICS Co., Ltd.", "EO-TECHNICS" }, { 0x0018F5, "Shenzhen Streaming Video Technology Company Limited", "SHENZHEN-STREAMING-VIDEO-COMPANY" }, { 0x0018F6, "Thomson Telecom Belgium", "THOMSON-TELECOM-BELGIUM" }, { 0x0018F7, "Kameleon Technologies", "KAMELEON-TECHNOLOGIES" }, { 0x0018F8, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x0018F9, "VVOND, Inc.", "VVOND" }, { 0x0018FA, "Yushin Precision Equipment Co.,Ltd.", "YUSHIN-PRECISION-EQUIPMENT" }, { 0x0018FB, "Compro Technology", "COMPRO" }, { 0x0018FC, "Altec Electronic AG", "ALTEC" }, { 0x0018FD, "Optimal Technologies International Inc.", "OPTIMAL-TECHNOLOGIES" }, { 0x0018FE, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x0018FF, "PowerQuattro Co.", "POWERQUATTRO" }, { 0x001900, "Intelliverese - DBA Voicecom", "INTELLIVERESE-DBA-VOICECOM" }, { 0x001901, "F1MEDIA", "F1MEDIA" }, { 0x001902, "Cambridge Consultants Ltd", "CAMBRIDGE-CONSULTANTS" }, { 0x001903, "Bigfoot Networks Inc", "BIGFOOT-NETWORKS" }, { 0x001904, "WB Electronics Sp. z o.o.", "WB-ELECTRONICS-SP-Z-O-O" }, { 0x001905, "SCHRACK Seconet AG", "SCHRACK-SECONET" }, { 0x001906, "Cisco Systems, Inc", "CISCO" }, { 0x001907, "Cisco Systems, Inc", "CISCO" }, { 0x001908, "Duaxes Corporation", "DUAXES" }, { 0x001909, "DEVI - Danfoss A/S", "DEVI-DANFOSS-A/S" }, { 0x00190A, "HASWARE INC.", "HASWARE" }, { 0x00190B, "Southern Vision Systems, Inc.", "SOUTHERN-VISION" }, { 0x00190C, "Encore Electronics, Inc.", "ENCORE-ELECTRONICS" }, { 0x00190D, "IEEE 1394c", "IEEE-1394C" }, { 0x00190E, "Atech Technology Co., Ltd.", "ATECH" }, { 0x00190F, "Advansus Corp.", "ADVANSUS" }, { 0x001910, "Knick Elektronische Messgeraete GmbH & Co. KG", "KNICK-ELEKTRONISCHE-MESSGERAETE" }, { 0x001911, "Just In Mobile Information Technologies (Shanghai) Co., Ltd.", "JUST-IN-MOBILE-INFORMATION-TECHNOLOGIES-SHANGHAI" }, { 0x001912, "Welcat Inc", "WELCAT" }, { 0x001913, "Chuang-Yi Network Equipment Co.Ltd.", "CHUANG-YI-NETWORK-EQUIPMENT" }, { 0x001914, "Winix Co., Ltd", "WINIX" }, { 0x001915, "TECOM Co., Ltd.", "TECOM" }, { 0x001916, "PayTec AG", "PAYTEC" }, { 0x001917, "Posiflex Inc.", "POSIFLEX" }, { 0x001918, "Interactive Wear AG", "INTERACTIVE-WEAR" }, { 0x001919, "ASTEL Inc.", "ASTEL" }, { 0x00191A, "IRLINK", "IRLINK" }, { 0x00191B, "Sputnik Engineering AG", "SPUTNIK-ENGINEERING" }, { 0x00191C, "Sensicast Systems", "SENSICAST" }, { 0x00191D, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x00191E, "Beyondwiz Co., Ltd.", "BEYONDWIZ" }, { 0x00191F, "Microlink communications Inc.", "MICROLINK-COMMUNICATION" }, { 0x001920, "KUME electric Co.,Ltd.", "KUME-ELECTRIC" }, { 0x001921, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x001922, "CM Comandos Lineares", "CM-COMANDOS-LINEARES" }, { 0x001923, "Phonex Korea Co., LTD.", "PHONEX-KOREA" }, { 0x001924, "LBNL Engineering", "LBNL-ENGINEERING" }, { 0x001925, "Intelicis Corporation", "INTELICIS" }, { 0x001926, "BitsGen Co., Ltd.", "BITSGEN" }, { 0x001927, "ImCoSys Ltd", "IMCOSYS" }, { 0x001928, "Siemens AG, Transportation Systems", "SIEMENS-TRANSPORTATION" }, { 0x001929, "2M2B Montadora de Maquinas Bahia Brasil LTDA", "2M2B-MONTADORA-DE-MAQUINAS-BAHIA-BRASIL-LTDA" }, { 0x00192A, "Antiope Associates", "ANTIOPE-ASSOCIATES" }, { 0x00192B, "Aclara RF Systems Inc.", "ACLARA-RF" }, { 0x00192C, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x00192D, "Nokia Corporation", "NOKIA" }, { 0x00192E, "Spectral Instruments, Inc.", "SPECTRAL-INSTRUMENTS" }, { 0x00192F, "Cisco Systems, Inc", "CISCO" }, { 0x001930, "Cisco Systems, Inc", "CISCO" }, { 0x001931, "Balluff GmbH", "BALLUFF" }, { 0x001932, "Gude Systems GmbH", "GUDE" }, { 0x001933, "Strix Systems, Inc.", "STRIX" }, { 0x001934, "TRENDON TOUCH TECHNOLOGY CORP.", "TRENDON-TOUCH" }, { 0x001935, "DUERR DENTAL AG", "DUERR-DENTAL" }, { 0x001936, "STERLITE OPTICAL TECHNOLOGIES LIMITED", "STERLITE-OPTICAL-TECHNOLOGIES" }, { 0x001937, "CommerceGuard AB", "COMMERCEGUARD-AB" }, { 0x001938, "UMB Communications Co., Ltd.", "UMB-COMMUNICATION" }, { 0x001939, "Gigamips", "GIGAMIPS" }, { 0x00193A, "OESOLUTIONS", "OESOLUTIONS" }, { 0x00193B, "LigoWave", "LIGOWAVE" }, { 0x00193C, "HighPoint Technologies Incorporated", "HIGHPOINT-TECHNOLOGIES-INCORPORATED" }, { 0x00193D, "GMC Guardian Mobility Corp.", "GMC-GUARDIAN-MOBILITY" }, { 0x00193E, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x00193F, "RDI technology(Shenzhen) Co.,LTD", "RDI-SHENZHEN" }, { 0x001940, "Rackable Systems", "RACKABLE" }, { 0x001941, "Pitney Bowes, Inc", "PITNEY-BOWES" }, { 0x001942, "ON SOFTWARE INTERNATIONAL LIMITED", "ON-SOFTWARE" }, { 0x001943, "Belden", "BELDEN" }, { 0x001944, "Fossil Partners, L.P.", "FOSSIL-PARTNERS-L-P" }, { 0x001945, "RF COncepts, LLC", "RF-CONCEPTS" }, { 0x001946, "Cianet Industria e Comercio S/A", "CIANET-INDUSTRIA-E-COMERCIO-S/A" }, { 0x001947, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x001948, "AireSpider Networks", "AIRESPIDER-NETWORKS" }, { 0x001949, "TENTEL COMTECH CO., LTD.", "TENTEL-COMTECH" }, { 0x00194A, "TESTO AG", "TESTO" }, { 0x00194B, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x00194C, "Fujian Stelcom information & Technology CO.,Ltd", "FUJIAN-STELCOM-INFORMATION" }, { 0x00194D, "Avago Technologies Sdn Bhd", "AVAGO-TECHNOLOGIES" }, { 0x00194E, "Ultra Electronics - TCS (Tactical Communication Systems)", "ULTRA-ELECTRONICS-TCS-TACTICAL-COMMUNICATION" }, { 0x00194F, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001950, "Harman Multimedia", "HARMAN-MULTIMEDIA" }, { 0x001951, "NETCONS, s.r.o.", "NETCONS-S-R-O" }, { 0x001952, "ACOGITO Co., Ltd", "ACOGITO" }, { 0x001953, "Chainleader Communications Corp.", "CHAINLEADER-COMMUNICATION" }, { 0x001954, "Leaf Corporation.", "LEAF" }, { 0x001955, "Cisco Systems, Inc", "CISCO" }, { 0x001956, "Cisco Systems, Inc", "CISCO" }, { 0x001957, "Saafnet Canada Inc.", "SAAFNET-CANADA" }, { 0x001958, "Bluetooth SIG, Inc.", "BLUETOOTH-SIG" }, { 0x001959, "Staccato Communications Inc.", "STACCATO-COMMUNICATION" }, { 0x00195A, "Jenaer Antriebstechnik GmbH", "JENAER-ANTRIEBSTECHNIK" }, { 0x00195B, "D-Link Corporation", "D-LINK" }, { 0x00195C, "Innotech Corporation", "INNOTECH" }, { 0x00195D, "ShenZhen XinHuaTong Opto Electronics Co.,Ltd", "SHENZHEN-XINHUATONG-OPTO-ELECTRONICS" }, { 0x00195E, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x00195F, "Valemount Networks Corporation", "VALEMOUNT-NETWORKS" }, { 0x001960, "DoCoMo Systems, Inc.", "DOCOMO" }, { 0x001961, "Blaupunkt Embedded Systems GmbH", "BLAUPUNKT-EMBEDDED" }, { 0x001962, "Commerciant, LP", "COMMERCIANT-LP" }, { 0x001963, "Sony Corporation", "SONY" }, { 0x001964, "Doorking Inc.", "DOORKING" }, { 0x001965, "YuHua TelTech (ShangHai) Co., Ltd.", "YUHUA-TELTECH-SHANGHAI" }, { 0x001966, "Asiarock Technology Limited", "ASIAROCK" }, { 0x001967, "TELDAT Sp.J.", "TELDAT-SP-J" }, { 0x001968, "Digital Video Networks(Shanghai) CO. LTD.", "DIGITAL-VIDEO-NETWORKS-SHANGHAI" }, { 0x001969, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x00196A, "MikroM GmbH", "MIKROM" }, { 0x00196B, "Danpex Corporation", "DANPEX" }, { 0x00196C, "ETROVISION TECHNOLOGY", "ETROVISION" }, { 0x00196D, "Raybit Systems Korea, Inc", "RAYBIT-KOREA" }, { 0x00196E, "Metacom (Pty) Ltd.", "METACOM-PTY" }, { 0x00196F, "SensoPart GmbH", "SENSOPART" }, { 0x001970, "Z-Com, Inc.", "Z-COM" }, { 0x001971, "Guangzhou Unicomp Technology Co.,Ltd", "GUANGZHOU-UNICOMP" }, { 0x001972, "Plexus (Xiamen) Co.,ltd.", "PLEXUS-XIAMEN" }, { 0x001973, "Zeugma Systems", "ZEUGMA" }, { 0x001974, "16063", "16063" }, { 0x001975, "Beijing Huisen networks technology Inc", "BEIJING-HUISEN-NETWORKS" }, { 0x001976, "Xipher Technologies, LLC", "XIPHER-TECHNOLOGIES" }, { 0x001977, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x001978, "Datum Systems, Inc.", "DATUM" }, { 0x001979, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x00197A, "MAZeT GmbH", "MAZET" }, { 0x00197B, "Picotest Corp.", "PICOTEST" }, { 0x00197C, "Riedel Communications GmbH", "RIEDEL-COMMUNICATION" }, { 0x00197D, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x00197E, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x00197F, "PLANTRONICS, INC.", "PLANTRONICS" }, { 0x001980, "Gridpoint Systems", "GRIDPOINT" }, { 0x001981, "Vivox Inc", "VIVOX" }, { 0x001982, "SmarDTV Corporation", "SMARDTV" }, { 0x001983, "CCT R&D Limited", "CCT-R-D" }, { 0x001984, "ESTIC Corporation", "ESTIC" }, { 0x001985, "IT Watchdogs, Inc", "IT-WATCHDOGS" }, { 0x001986, "Cheng Hongjian", "CHENG-HONGJIAN" }, { 0x001987, "Panasonic Mobile Communications Co.,Ltd.", "PANASONIC-MOBILE-COMMUNICATION" }, { 0x001988, "Wi2Wi, Inc", "WI2WI" }, { 0x001989, "Sonitrol Corporation", "SONITROL" }, { 0x00198A, "Northrop Grumman Systems Corp.", "NORTHROP-GRUMMAN" }, { 0x00198B, "Novera Optics Korea, Inc.", "NOVERA-OPTICS-KOREA" }, { 0x00198C, "iXSea", "IXSEA" }, { 0x00198D, "Ocean Optics, Inc.", "OCEAN-OPTICS" }, { 0x00198E, "Demant A/S", "DEMANT-A/S" }, { 0x00198F, "Nokia Bell N.V.", "NOKIA-BELL-N-V" }, { 0x001990, "ELM DATA Co., Ltd.", "ELM-DATA" }, { 0x001991, "avinfo", "AVINFO" }, { 0x001992, "Adtran Inc", "ADTRAN" }, { 0x001993, "Changshu Switchgear MFG. Co.,Ltd. (Former Changshu Switchgea", "CHANGSHU-SWITCHGEAR-MFG-FORMER-CHANGSHU-SWITCHGEA" }, { 0x001994, "Jorjin Technologies Inc.", "JORJIN-TECHNOLOGIES" }, { 0x001995, "Jurong Hi-Tech (Suzhou)Co.ltd", "JURONG-HI-TECH-SUZHOU" }, { 0x001996, "TurboChef Technologies Inc.", "TURBOCHEF-TECHNOLOGIES" }, { 0x001997, "Soft Device Sdn Bhd", "SOFT-DEVICE" }, { 0x001998, "SATO CORPORATION", "SATO" }, { 0x001999, "Fujitsu Technology Solutions GmbH", "FUJITSU-SOLUTIONS" }, { 0x00199A, "EDO-EVI", "EDO-EVI" }, { 0x00199B, "Diversified Technical Systems, Inc.", "DIVERSIFIED-TECHNICAL" }, { 0x00199C, "CTRING", "CTRING" }, { 0x00199D, "Vizio, Inc", "VIZIO" }, { 0x00199E, "Nifty", "NIFTY" }, { 0x00199F, "DKT A/S", "DKT-A/S" }, { 0x0019A0, "NIHON DATA SYSTENS, INC.", "NIHON-DATA-SYSTENS" }, { 0x0019A1, "LG INFORMATION & COMM.", "LG-INFORMATION-COMM" }, { 0x0019A2, "ORDYN TECHNOLOGIES", "ORDYN-TECHNOLOGIES" }, { 0x0019A3, "asteel electronique atlantique", "ASTEEL-ELECTRONIQUE-ATLANTIQUE" }, { 0x0019A4, "Austar Technology (hang zhou) Co.,Ltd", "AUSTAR-HANG-ZHOU" }, { 0x0019A5, "RadarFind Corporation", "RADARFIND" }, { 0x0019A6, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0019A7, "ITU-T", "ITU-T" }, { 0x0019A8, "WiQuest Communications", "WIQUEST-COMMUNICATION" }, { 0x0019A9, "Cisco Systems, Inc", "CISCO" }, { 0x0019AA, "Cisco Systems, Inc", "CISCO" }, { 0x0019AB, "Raycom CO ., LTD", "RAYCOM" }, { 0x0019AC, "GSP SYSTEMS Inc.", "GSP" }, { 0x0019AD, "BOBST SA", "BOBST" }, { 0x0019AE, "Hopling Technologies b.v.", "HOPLING-TECHNOLOGIES-B-V" }, { 0x0019AF, "Rigol Technologies, Inc.", "RIGOL-TECHNOLOGIES" }, { 0x0019B0, "HanYang System", "HANYANG-SYSTEM" }, { 0x0019B1, "Arrow7 Corporation", "ARROW7" }, { 0x0019B2, "XYnetsoft Co.,Ltd", "XYNETSOFT" }, { 0x0019B3, "Stanford Research Systems", "STANFORD-RESEARCH" }, { 0x0019B4, "Intellio Ltd", "INTELLIO" }, { 0x0019B5, "Famar Fueguina S.A.", "FAMAR-FUEGUINA" }, { 0x0019B6, "Euro Emme s.r.l.", "EURO-EMME" }, { 0x0019B7, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0019B8, "Boundary Devices", "BOUNDARY-DEVICES" }, { 0x0019B9, "Dell Inc.", "DELL" }, { 0x0019BA, "Paradox Security Systems Ltd", "PARADOX-SECURITY" }, { 0x0019BB, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x0019BC, "ELECTRO CHANCE SRL", "ELECTRO-CHANCE-SRL" }, { 0x0019BD, "New Media Life", "NEW-MEDIA-LIFE" }, { 0x0019BE, "Altai Technologies Limited", "ALTAI-TECHNOLOGIES" }, { 0x0019BF, "Citiway technology Co.,ltd", "CITIWAY" }, { 0x0019C0, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0019C1, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x0019C2, "Equustek Solutions, Inc.", "EQUUSTEK-SOLUTIONS" }, { 0x0019C3, "Qualitrol", "QUALITROL" }, { 0x0019C4, "Infocrypt Inc.", "INFOCRYPT" }, { 0x0019C5, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x0019C6, "zte corporation", "ZTE" }, { 0x0019C7, "Cambridge Industries(Group) Co.,Ltd.", "CAMBRIDGE-INDUSTRIES-GROUP" }, { 0x0019C8, "AnyDATA Corporation", "ANYDATA" }, { 0x0019C9, "S&C ELECTRIC COMPANY", "S-C-ELECTRIC-COMPANY" }, { 0x0019CA, "Broadata Communications, Inc", "BROADATA-COMMUNICATION" }, { 0x0019CB, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x0019CC, "RCG (HK) Ltd", "RCG-HK" }, { 0x0019CD, "Chengdu ethercom information technology Ltd.", "CHENGDU-ETHERCOM-INFORMATION" }, { 0x0019CE, "Progressive Gaming International", "PROGRESSIVE-GAMING" }, { 0x0019CF, "SALICRU, S.A.", "SALICRU" }, { 0x0019D0, "Cathexis", "CATHEXIS" }, { 0x0019D1, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0019D2, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0019D3, "TRAK Microwave", "TRAK-MICROWAVE" }, { 0x0019D4, "ICX Technologies", "ICX-TECHNOLOGIES" }, { 0x0019D5, "IP Innovations, Inc.", "IP-INNOVATIONS" }, { 0x0019D6, "LS Cable and System Ltd.", "LS-CABLE-AND-SYSTEM" }, { 0x0019D7, "FORTUNETEK CO., LTD", "FORTUNETEK" }, { 0x0019D8, "MAXFOR", "MAXFOR" }, { 0x0019D9, "Zeutschel GmbH", "ZEUTSCHEL" }, { 0x0019DA, "Welltrans O&E Technology Co. , Ltd.", "WELLTRANS-O-E" }, { 0x0019DB, "MICRO-STAR INTERNATIONAL CO., LTD.", "MICRO-STAR" }, { 0x0019DC, "ENENSYS Technologies", "ENENSYS-TECHNOLOGIES" }, { 0x0019DD, "FEI-Zyfer, Inc.", "FEI-ZYFER" }, { 0x0019DE, "MOBITEK", "MOBITEK" }, { 0x0019DF, "Thomson Inc.", "THOMSON" }, { 0x0019E0, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x0019E1, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x0019E2, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x0019E3, "Apple, Inc.", "APPLE" }, { 0x0019E4, "2Wire Inc", "2WIRE" }, { 0x0019E5, "Lynx Studio Technology, Inc.", "LYNX-STUDIO" }, { 0x0019E6, "TOYO MEDIC CO.,LTD.", "TOYO-MEDIC" }, { 0x0019E7, "Cisco Systems, Inc", "CISCO" }, { 0x0019E8, "Cisco Systems, Inc", "CISCO" }, { 0x0019E9, "S-Information Technolgy, Co., Ltd.", "S-INFORMATION-TECHNOLGY" }, { 0x0019EA, "TeraMage Technologies Co., Ltd.", "TERAMAGE-TECHNOLOGIES" }, { 0x0019EB, "Pyronix Ltd", "PYRONIX" }, { 0x0019EC, "Sagamore Systems, Inc.", "SAGAMORE" }, { 0x0019ED, "Axesstel Inc.", "AXESSTEL" }, { 0x0019EE, "CARLO GAVAZZI CONTROLS SPA-Controls Division", "CARLO-GAVAZZI-CONTROLS-SPA-CONTROLS-DIVISION" }, { 0x0019EF, "SHENZHEN LINNKING ELECTRONICS CO.,LTD", "SHENZHEN-LINNKING-ELECTRONICS" }, { 0x0019F0, "UNION MAN TECHNOLOGY CO.,LTD", "UNION-MAN" }, { 0x0019F1, "Star Communication Network Technology Co.,Ltd", "STAR-COMMUNICATION-NETWORK" }, { 0x0019F2, "Teradyne K.K.", "TERADYNE-K-K" }, { 0x0019F3, "Cetis, Inc", "CETIS" }, { 0x0019F4, "Convergens Oy Ltd", "CONVERGENS-OY" }, { 0x0019F5, "Imagination Technologies Ltd", "IMAGINATION-TECHNOLOGIES" }, { 0x0019F6, "Acconet (PTE) Ltd", "ACCONET-PTE" }, { 0x0019F7, "Onset Computer Corporation", "ONSET" }, { 0x0019F8, "Embedded Systems Design, Inc.", "EMBEDDED-DESIGN" }, { 0x0019F9, "TDK-Lambda", "TDK-LAMBDA" }, { 0x0019FA, "Cable Vision Electronics CO., LTD.", "CABLE-VISION-ELECTRONICS" }, { 0x0019FB, "SKY UK LIMITED", "SKY-UK" }, { 0x0019FC, "PT. Ufoakses Sukses Luarbiasa", "PT-UFOAKSES-SUKSES-LUARBIASA" }, { 0x0019FD, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x0019FE, "SHENZHEN SEECOMM TECHNOLOGY CO.,LTD.", "SHENZHEN-SEECOMM" }, { 0x0019FF, "Finnzymes", "FINNZYMES" }, { 0x001A00, "MATRIX INC.", "MATRIX" }, { 0x001A01, "Smiths Medical", "SMITHS-MEDICAL" }, { 0x001A02, "SECURE CARE PRODUCTS, INC", "SECURE-CARE-PRODUCTS" }, { 0x001A03, "Angel Electronics Co., Ltd.", "ANGEL-ELECTRONICS" }, { 0x001A04, "Interay Solutions BV", "INTERAY-SOLUTIONS" }, { 0x001A05, "OPTIBASE LTD", "OPTIBASE" }, { 0x001A06, "OpVista, Inc.", "OPVISTA" }, { 0x001A07, "Arecont Vision", "ARECONT-VISION" }, { 0x001A08, "Simoco Ltd.", "SIMOCO" }, { 0x001A09, "Wayfarer Transit Systems Ltd", "WAYFARER-TRANSIT" }, { 0x001A0A, "Adaptive Micro-Ware Inc.", "ADAPTIVE-MICRO-WARE" }, { 0x001A0B, "BONA TECHNOLOGY INC.", "BONA" }, { 0x001A0C, "Swe-Dish Satellite Systems AB", "SWE-DISH-SATELLITE-AB" }, { 0x001A0D, "HandHeld entertainment, Inc.", "HANDHELD-ENTERTAINMENT" }, { 0x001A0E, "Cheng Uei Precision Industry Co.,Ltd", "CHENG-UEI-PRECISION-INDUSTRY" }, { 0x001A0F, "ARTECHE GROUP", "ARTECHE-GROUP" }, { 0x001A10, "LUCENT TRANS ELECTRONICS CO.,LTD", "LUCENT-TRANS-ELECTRONICS" }, { 0x001A11, "Google, Inc.", "GOOGLE" }, { 0x001A12, "Essilor", "ESSILOR" }, { 0x001A13, "Wanlida Group Co., LTD", "WANLIDA-GROUP" }, { 0x001A14, "Xin Hua Control Engineering Co.,Ltd.", "XIN-HUA-CONTROL-ENGINEERING" }, { 0x001A15, "gemalto e-Payment", "GEMALTO-E-PAYMENT" }, { 0x001A16, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001A17, "Teak Technologies, Inc.", "TEAK-TECHNOLOGIES" }, { 0x001A18, "Advanced Simulation Technology inc.", "ADVANCED-SIMULATION" }, { 0x001A19, "Computer Engineering Limited", "ENGINEERING" }, { 0x001A1A, "Gentex Corporation/Electro-Acoustic Products", "GENTEX-/ELECTRO-ACOUSTIC-PRODUCTS" }, { 0x001A1B, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001A1C, "GT&T Engineering Pte Ltd", "GT-T-ENGINEERING-PTE" }, { 0x001A1D, "PChome Online Inc.", "PCHOME-ONLINE" }, { 0x001A1E, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x001A1F, "Coastal Environmental Systems", "COASTAL-ENVIRONMENTAL" }, { 0x001A20, "CMOTECH Co. Ltd.", "CMOTECH" }, { 0x001A21, "Brookhuis Applied Technologies BV", "BROOKHUIS-APPLIED-TECHNOLOGIES" }, { 0x001A22, "eQ-3 Entwicklung GmbH", "EQ-3-ENTWICKLUNG" }, { 0x001A23, "Ice Qube, Inc", "ICE-QUBE" }, { 0x001A24, "Galaxy Telecom Technologies Ltd", "GALAXY-TELECOM-TECHNOLOGIES" }, { 0x001A25, "DELTA DORE", "DELTA-DORE" }, { 0x001A26, "Deltanode Solutions AB", "DELTANODE-SOLUTIONS-AB" }, { 0x001A27, "Ubistar", "UBISTAR" }, { 0x001A28, "ASWT Co., LTD. Taiwan Branch H.K.", "ASWT-TAIWAN-BRANCH-H-K" }, { 0x001A29, "Johnson Outdoors Marine Electronics d/b/a Minnkota", "JOHNSON-OUTDOORS-MARINE-ELECTRONICS-D/B/A-MINNKOTA" }, { 0x001A2A, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x001A2B, "Ayecom Technology Co., Ltd.", "AYECOM" }, { 0x001A2C, "SATEC Co.,LTD", "SATEC" }, { 0x001A2D, "The Navvo Group", "THE-NAVVO-GROUP" }, { 0x001A2E, "Ziova Coporation", "ZIOVA-COPORATION" }, { 0x001A2F, "Cisco Systems, Inc", "CISCO" }, { 0x001A30, "Cisco Systems, Inc", "CISCO" }, { 0x001A31, "SCAN COIN AB", "SCAN-COIN-AB" }, { 0x001A32, "ACTIVA MULTIMEDIA", "ACTIVA-MULTIMEDIA" }, { 0x001A33, "ASI Communications, Inc.", "ASI-COMMUNICATION" }, { 0x001A34, "Konka Group Co., Ltd.", "KONKA-GROUP" }, { 0x001A35, "BARTEC GmbH", "BARTEC" }, { 0x001A36, "Aipermon GmbH & Co. KG", "AIPERMON" }, { 0x001A37, "Lear Corporation", "LEAR" }, { 0x001A38, "Sanmina-SCI", "SANMINA-SCI" }, { 0x001A39, "Merten GmbH&CoKG", "MERTEN-COKG" }, { 0x001A3A, "Dongahelecomm", "DONGAHELECOMM" }, { 0x001A3B, "Doah Elecom Inc.", "DOAH-ELECOM" }, { 0x001A3C, "Technowave Ltd.", "TECHNOWAVE" }, { 0x001A3D, "Ajin Vision Co.,Ltd", "AJIN-VISION" }, { 0x001A3E, "Faster Technology LLC", "FASTER" }, { 0x001A3F, "Intelbras", "INTELBRAS" }, { 0x001A40, "A-FOUR TECH CO., LTD.", "A-FOUR-TECH" }, { 0x001A41, "INOCOVA Co.,Ltd", "INOCOVA" }, { 0x001A42, "Techcity Technology co., Ltd.", "TECHCITY" }, { 0x001A43, "Logical Link Communications", "LOGICAL-LINK-COMMUNICATION" }, { 0x001A44, "JWTrading Co., Ltd", "JWTRADING" }, { 0x001A45, "GN Netcom A/S", "GN-NETCOM-A/S" }, { 0x001A46, "Digital Multimedia Technology Co., Ltd", "DIGITAL-MULTIMEDIA" }, { 0x001A47, "Agami Systems, Inc.", "AGAMI" }, { 0x001A48, "Takacom Corporation", "TAKACOM" }, { 0x001A49, "Micro Vision Co.,LTD", "MICRO-VISION" }, { 0x001A4A, "Qumranet Inc.", "QUMRANET" }, { 0x001A4B, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x001A4C, "Crossbow Technology, Inc", "CROSSBOW" }, { 0x001A4D, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x001A4E, "NTI AG / LinMot", "NTI-/-LINMOT" }, { 0x001A4F, "AVM GmbH", "AVM" }, { 0x001A50, "PheeNet Technology Corp.", "PHEENET" }, { 0x001A51, "Alfred Mann Foundation", "ALFRED-MANN-FOUNDATION" }, { 0x001A52, "Meshlinx Wireless Inc.", "MESHLINX-WIRELESS" }, { 0x001A53, "Zylaya", "ZYLAYA" }, { 0x001A54, "Hip Shing Electronics Ltd.", "HIP-SHING-ELECTRONICS" }, { 0x001A55, "ACA-Digital Corporation", "ACA-DIGITAL" }, { 0x001A56, "ViewTel Co,. Ltd.", "VIEWTEL" }, { 0x001A57, "Matrix Design Group, LLC", "MATRIX-DESIGN-GROUP" }, { 0x001A58, "CCV Deutschland GmbH - Celectronic eHealth Div.", "CCV-DEUTSCHLAND-CELECTRONIC-EHEALTH-DIV" }, { 0x001A59, "Ircona", "IRCONA" }, { 0x001A5A, "Korea Electric Power Data Network (KDN) Co., Ltd", "KOREA-ELECTRIC-POWER-DATA-NETWORK-KDN" }, { 0x001A5B, "NetCare Service Co., Ltd.", "NETCARE-SERVICE" }, { 0x001A5C, "Euchner GmbH+Co. KG", "EUCHNER" }, { 0x001A5D, "Mobinnova Corp.", "MOBINNOVA" }, { 0x001A5E, "Thincom Technology Co.,Ltd", "THINCOM" }, { 0x001A5F, "KitWorks.fi Ltd.", "KITWORKS-FI" }, { 0x001A60, "Wave Electronics Co.,Ltd.", "WAVE-ELECTRONICS" }, { 0x001A61, "PacStar Corp.", "PACSTAR" }, { 0x001A62, "Data Robotics, Incorporated", "DATA-ROBOTICS-INCORPORATED" }, { 0x001A63, "Elster Solutions, LLC,", "ELSTER-SOLUTIONS" }, { 0x001A64, "IBM Corp", "IBM" }, { 0x001A65, "Seluxit", "SELUXIT" }, { 0x001A66, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001A67, "Infinite QL Sdn Bhd", "INFINITE-QL" }, { 0x001A68, "Weltec Enterprise Co., Ltd.", "WELTEC" }, { 0x001A69, "Wuhan Yangtze Optical Technology CO.,Ltd.", "WUHAN-YANGTZE-OPTICAL" }, { 0x001A6A, "Tranzas, Inc.", "TRANZAS" }, { 0x001A6B, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x001A6C, "Cisco Systems, Inc", "CISCO" }, { 0x001A6D, "Cisco Systems, Inc", "CISCO" }, { 0x001A6E, "Impro Technologies", "IMPRO-TECHNOLOGIES" }, { 0x001A6F, "MI.TEL s.r.l.", "MI-TEL" }, { 0x001A70, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x001A71, "Diostech Co., Ltd.", "DIOSTECH" }, { 0x001A72, "Mosart Semiconductor Corp.", "MOSART-SEMICONDUCTOR" }, { 0x001A73, "Gemtek Technology Co., Ltd.", "GEMTEK" }, { 0x001A74, "Procare International Co", "PROCARE" }, { 0x001A75, "Sony Corporation", "SONY" }, { 0x001A76, "SDT information Technology Co.,LTD.", "SDT-INFORMATION" }, { 0x001A77, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001A78, "ubtos", "UBTOS" }, { 0x001A79, "TELECOMUNICATION TECHNOLOGIES LTD.", "TELECOMUNICATION-TECHNOLOGIES" }, { 0x001A7A, "Lismore Instruments Limited", "LISMORE-INSTRUMENTS" }, { 0x001A7B, "Teleco, Inc.", "TELECO" }, { 0x001A7C, "Hirschmann Multimedia B.V.", "HIRSCHMANN-MULTIMEDIA-B-V" }, { 0x001A7D, "cyber-blue(HK)Ltd", "CYBER-BLUE-HK" }, { 0x001A7E, "LN Srithai Comm Ltd.", "LN-SRITHAI-COMM" }, { 0x001A7F, "GCI Science & Technology Co.,LTD", "GCI-SCIENCE" }, { 0x001A80, "Sony Corporation", "SONY" }, { 0x001A81, "Zelax", "ZELAX" }, { 0x001A82, "PROBA Building Automation Co.,LTD", "PROBA-BUILDING-AUTOMATION" }, { 0x001A83, "Pegasus Technologies Inc.", "PEGASUS-TECHNOLOGIES" }, { 0x001A84, "V One Multimedia Pte Ltd", "V-ONE-MULTIMEDIA-PTE" }, { 0x001A85, "NV Michel Van de Wiele", "NV-MICHEL-VAN-DE-WIELE" }, { 0x001A86, "New Wave Design & Verification", "NEW-WAVE-DESIGN-VERIFICATION" }, { 0x001A87, "Canhold International Limited", "CANHOLD" }, { 0x001A88, "Venergy,Co,Ltd", "VENERGY" }, { 0x001A89, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001A8A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x001A8B, "CHUNIL ELECTRIC IND., CO.", "CHUNIL-ELECTRIC-IND" }, { 0x001A8C, "Sophos Ltd", "SOPHOS" }, { 0x001A8D, "AVECS Bergen GmbH", "AVECS-BERGEN" }, { 0x001A8E, "3Way Networks Ltd", "3WAY-NETWORKS" }, { 0x001A8F, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001A90, "Trópico Sistemas e Telecomunicações da Amazônia LTDA.", "TRPICO-SISTEMAS-E-TELECOMUNICAES-DA-AMAZNIA-LTDA" }, { 0x001A91, "FusionDynamic Ltd.", "FUSIONDYNAMIC" }, { 0x001A92, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x001A93, "ERCO Leuchten GmbH", "ERCO-LEUCHTEN" }, { 0x001A94, "Votronic GmbH", "VOTRONIC" }, { 0x001A95, "Hisense Mobile Communications Technoligy Co.,Ltd.", "HISENSE-MOBILE-COMMUNICATION-TECHNOLIGY" }, { 0x001A96, "ECLER S.A.", "ECLER" }, { 0x001A97, "fitivision technology Inc.", "FITIVISION" }, { 0x001A98, "Asotel Communication Limited Taiwan Branch", "ASOTEL-COMMUNICATION-TAIWAN-BRANCH" }, { 0x001A99, "Smarty (HZ) Information Electronics Co., Ltd", "SMARTY-HZ-INFORMATION-ELECTRONICS" }, { 0x001A9A, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0x001A9B, "ADEC & Parter AG", "ADEC-PARTER" }, { 0x001A9C, "RightHand Technologies, Inc.", "RIGHTHAND-TECHNOLOGIES" }, { 0x001A9D, "Skipper Wireless, Inc.", "SKIPPER-WIRELESS" }, { 0x001A9E, "ICON Digital International Limited", "ICON-DIGITAL" }, { 0x001A9F, "A-Link Ltd", "A-LINK" }, { 0x001AA0, "Dell Inc.", "DELL" }, { 0x001AA1, "Cisco Systems, Inc", "CISCO" }, { 0x001AA2, "Cisco Systems, Inc", "CISCO" }, { 0x001AA3, "DELORME", "DELORME" }, { 0x001AA4, "Future University-Hakodate", "FUTURE-UNIVERSITY-HAKODATE" }, { 0x001AA5, "BRN Phoenix", "BRN-PHOENIX" }, { 0x001AA6, "Elbit Systems Deutschland GmbH & Co. KG", "ELBIT-DEUTSCHLAND" }, { 0x001AA7, "Torian Wireless", "TORIAN-WIRELESS" }, { 0x001AA8, "Mamiya Digital Imaging Co., Ltd.", "MAMIYA-DIGITAL-IMAGING" }, { 0x001AA9, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0x001AAA, "Analogic Corp.", "ANALOGIC" }, { 0x001AAB, "eWings s.r.l.", "EWINGS" }, { 0x001AAC, "Corelatus AB", "CORELATUS-AB" }, { 0x001AAD, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001AAE, "Savant Systems LLC", "SAVANT" }, { 0x001AAF, "BLUSENS TECHNOLOGY", "BLUSENS" }, { 0x001AB0, "Signal Networks Pvt. Ltd.,", "SIGNAL-NETWORKS-PVT" }, { 0x001AB1, "Asia Pacific Satellite Industries Co., Ltd.", "ASIA-PACIFIC-SATELLITE-INDUSTRIES" }, { 0x001AB2, "Cyber Solutions Inc.", "CYBER-SOLUTIONS" }, { 0x001AB3, "VISIONITE INC.", "VISIONITE" }, { 0x001AB4, "FFEI Ltd.", "FFEI" }, { 0x001AB5, "Home Network System", "HOME-NETWORK-SYSTEM" }, { 0x001AB6, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x001AB7, "Ethos Networks LTD.", "ETHOS-NETWORKS" }, { 0x001AB8, "Anseri Corporation", "ANSERI" }, { 0x001AB9, "PMC", "PMC" }, { 0x001ABA, "Caton Overseas Limited", "CATON-OVERSEAS" }, { 0x001ABB, "Fontal Technology Incorporation", "FONTAL-INCORPORATION" }, { 0x001ABC, "U4EA Technologies Ltd", "U4EA-TECHNOLOGIES" }, { 0x001ABD, "Impatica Inc.", "IMPATICA" }, { 0x001ABE, "COMPUTER HI-TECH INC.", "HI-TECH" }, { 0x001ABF, "TRUMPF Laser Marking Systems AG", "TRUMPF-LASER-MARKING" }, { 0x001AC0, "JOYBIEN TECHNOLOGIES CO., LTD.", "JOYBIEN-TECHNOLOGIES" }, { 0x001AC1, "3Com Ltd", "3COM" }, { 0x001AC2, "YEC Co.,Ltd.", "YEC" }, { 0x001AC3, "Scientific-Atlanta, Inc", "SCIENTIFIC-ATLANTA" }, { 0x001AC4, "2Wire Inc", "2WIRE" }, { 0x001AC5, "Keysight Technologies, Inc.", "KEYSIGHT-TECHNOLOGIES" }, { 0x001AC6, "Micro Control Designs", "MICRO-CONTROL-DESIGNS" }, { 0x001AC7, "UNIPOINT", "UNIPOINT" }, { 0x001AC8, "ISL (Instrumentation Scientifique de Laboratoire)", "ISL-INSTRUMENTATION-SCIENTIFIQUE-DE-LABORATOIRE" }, { 0x001AC9, "SUZUKEN CO.,LTD", "SUZUKEN" }, { 0x001ACA, "Tilera Corporation", "TILERA" }, { 0x001ACB, "Autocom Products Ltd", "AUTOCOM-PRODUCTS" }, { 0x001ACC, "Celestial Semiconductor, Ltd", "CELESTIAL-SEMICONDUCTOR" }, { 0x001ACD, "Tidel Engineering LP", "TIDEL-ENGINEERING-LP" }, { 0x001ACE, "YUPITERU CORPORATION", "YUPITERU" }, { 0x001ACF, "C.T. ELETTRONICA", "C-T-ELETTRONICA" }, { 0x001AD0, "Albis Technologies AG", "ALBIS-TECHNOLOGIES" }, { 0x001AD1, "FARGO CO., LTD.", "FARGO" }, { 0x001AD2, "Eletronica Nitron Ltda", "ELETRONICA-NITRON-LTDA" }, { 0x001AD3, "Vamp Ltd.", "VAMP" }, { 0x001AD4, "iPOX Technology Co., Ltd.", "IPOX" }, { 0x001AD5, "KMC CHAIN INDUSTRIAL CO., LTD.", "KMC-CHAIN-INDUSTRIAL" }, { 0x001AD6, "JIAGNSU AETNA ELECTRIC CO.,LTD", "JIAGNSU-AETNA-ELECTRIC" }, { 0x001AD7, "Christie Digital Systems, Inc.", "CHRISTIE-DIGITAL" }, { 0x001AD8, "AlsterAero GmbH", "ALSTERAERO" }, { 0x001AD9, "International Broadband Electric Communications, Inc.", "BROADBAND-ELECTRIC-COMMUNICATION" }, { 0x001ADA, "Biz-2-Me Inc.", "BIZ-2-ME" }, { 0x001ADB, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001ADC, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001ADD, "PePWave Ltd", "PEPWAVE" }, { 0x001ADE, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001ADF, "Interactivetv Pty Limited", "INTERACTIVETV-PTY" }, { 0x001AE0, "Mythology Tech Express Inc.", "MYTHOLOGY-TECH-EXPRESS" }, { 0x001AE1, "EDGE ACCESS INC", "EDGE-ACCESS" }, { 0x001AE2, "Cisco Systems, Inc", "CISCO" }, { 0x001AE3, "Cisco Systems, Inc", "CISCO" }, { 0x001AE4, "Medicis Technologies Corporation", "MEDICIS-TECHNOLOGIES" }, { 0x001AE5, "Mvox Technologies Inc.", "MVOX-TECHNOLOGIES" }, { 0x001AE6, "Atlanta Advanced Communications Holdings Limited", "ATLANTA-ADVANCED-COMMUNICATION-HOLDINGS" }, { 0x001AE7, "Aztek Networks, Inc.", "AZTEK-NETWORKS" }, { 0x001AE8, "Unify Software and Solutions GmbH & Co. KG", "UNIFY-SOFTWARE-AND-SOLUTIONS" }, { 0x001AE9, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x001AEA, "Radio Terminal Systems Pty Ltd", "RADIO-TERMINAL-PTY" }, { 0x001AEB, "Allied Telesis K.K.", "ALLIED-TELESIS-K-K" }, { 0x001AEC, "Keumbee Electronics Co.,Ltd.", "KEUMBEE-ELECTRONICS" }, { 0x001AED, "INCOTEC GmbH", "INCOTEC" }, { 0x001AEE, "Shenztech Ltd", "SHENZTECH" }, { 0x001AEF, "Loopcomm Technology, Inc.", "LOOPCOMM" }, { 0x001AF0, "Alcatel-Lucent IPD", "ALCATEL-LUCENT-IPD" }, { 0x001AF1, "Embedded Artists AB", "EMBEDDED-ARTISTS-AB" }, { 0x001AF2, "Dynavisions Schweiz AG", "DYNAVISIONS-SCHWEIZ" }, { 0x001AF3, "Samyoung Electronics", "SAMYOUNG-ELECTRONICS" }, { 0x001AF4, "Handreamnet", "HANDREAMNET" }, { 0x001AF5, "PENTAONE. CO., LTD.", "PENTAONE" }, { 0x001AF6, "Woven Systems, Inc.", "WOVEN" }, { 0x001AF7, "dataschalt e+a GmbH", "DATASCHALT-E+A" }, { 0x001AF8, "Copley Controls Corporation", "COPLEY-CONTROLS" }, { 0x001AF9, "AeroVIronment (AV Inc)", "AEROVIRONMENT-AV" }, { 0x001AFA, "Welch Allyn, Inc.", "WELCH-ALLYN" }, { 0x001AFB, "Joby Inc.", "JOBY" }, { 0x001AFC, "ModusLink Corporation", "MODUSLINK" }, { 0x001AFD, "EVOLIS", "EVOLIS" }, { 0x001AFE, "SOFACREAL", "SOFACREAL" }, { 0x001AFF, "Wizyoung Tech.", "WIZYOUNG-TECH" }, { 0x001B00, "Neopost Technologies", "NEOPOST-TECHNOLOGIES" }, { 0x001B01, "Applied Radio Technologies", "APPLIED-RADIO-TECHNOLOGIES" }, { 0x001B02, "ED Co.Ltd", "ED" }, { 0x001B03, "Action Technology (SZ) Co., Ltd", "ACTION-SZ" }, { 0x001B04, "Affinity International S.p.a", "AFFINITY" }, { 0x001B05, "YMC AG", "YMC" }, { 0x001B06, "Ateliers R. LAUMONIER", "ATELIERS-R-LAUMONIER" }, { 0x001B07, "Mendocino Software", "MENDOCINO-SOFTWARE" }, { 0x001B08, "Danfoss Drives A/S", "DANFOSS-DRIVES-A/S" }, { 0x001B09, "Matrix Telecom Pvt. Ltd.", "MATRIX-TELECOM-PVT" }, { 0x001B0A, "Intelligent Distributed Controls Ltd", "INTELLIGENT-DISTRIBUTED-CONTROLS" }, { 0x001B0B, "Phidgets Inc.", "PHIDGETS" }, { 0x001B0C, "Cisco Systems, Inc", "CISCO" }, { 0x001B0D, "Cisco Systems, Inc", "CISCO" }, { 0x001B0E, "InoTec GmbH Organisationssysteme", "INOTEC-ORGANISATIONSSYSTEME" }, { 0x001B0F, "Petratec", "PETRATEC" }, { 0x001B10, "ShenZhen Kang Hui Technology Co.,ltd", "SHENZHEN-KANG-HUI" }, { 0x001B11, "D-Link Corporation", "D-LINK" }, { 0x001B12, "Apprion", "APPRION" }, { 0x001B13, "Icron Technologies Corporation", "ICRON-TECHNOLOGIES" }, { 0x001B14, "Carex Lighting Equipment Factory", "CAREX-LIGHTING-EQUIPMENT-FACTORY" }, { 0x001B15, "Voxtel, Inc.", "VOXTEL" }, { 0x001B16, "Celtro Ltd.", "CELTRO" }, { 0x001B17, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x001B18, "Tsuken Electric Ind. Co.,Ltd", "TSUKEN-ELECTRIC-IND" }, { 0x001B19, "IEEE I&M Society TC9", "IEEE-I-M-SOCIETY-TC9" }, { 0x001B1A, "e-trees Japan, Inc.", "E-TREES-JAPAN" }, { 0x001B1B, "Siemens AG,", "SIEMENS" }, { 0x001B1C, "Coherent", "COHERENT" }, { 0x001B1D, "Phoenix International Co., Ltd", "PHOENIX" }, { 0x001B1E, "HART Communication Foundation", "HART-COMMUNICATION-FOUNDATION" }, { 0x001B1F, "FORCE Technology", "FORCE" }, { 0x001B20, "TPine Technology", "TPINE" }, { 0x001B21, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001B22, "Palit Microsystems ( H.K.) Ltd.", "PALIT-MICROSYSTEMS-H-K" }, { 0x001B23, "SimpleComTools", "SIMPLECOMTOOLS" }, { 0x001B24, "Quanta Computer Inc.", "QUANTA" }, { 0x001B25, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001B26, "RON-Telecom ZAO", "RON-TELECOM-ZAO" }, { 0x001B27, "Merlin CSI", "MERLIN-CSI" }, { 0x001B28, "POLYGON, JSC", "POLYGON-JSC" }, { 0x001B29, "Avantis.Co.,Ltd", "AVANTIS" }, { 0x001B2A, "Cisco Systems, Inc", "CISCO" }, { 0x001B2B, "Cisco Systems, Inc", "CISCO" }, { 0x001B2C, "ATRON electronic GmbH", "ATRON" }, { 0x001B2D, "Med-Eng Systems Inc.", "MED-ENG" }, { 0x001B2E, "Sinkyo Electron Inc", "SINKYO-ELECTRON" }, { 0x001B2F, "NETGEAR", "NETGEAR" }, { 0x001B30, "Solitech Inc.", "SOLITECH" }, { 0x001B31, "Neural Image. Co. Ltd.", "NEURAL-IMAGE" }, { 0x001B32, "QLogic Corporation", "QLOGIC" }, { 0x001B33, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001B34, "Focus System Inc.", "FOCUS-SYSTEM" }, { 0x001B35, "ChongQing JINOU Science & Technology Development CO.,Ltd", "CHONGQING-JINOU-SCIENCE-DEVELOPMENT" }, { 0x001B36, "Tsubata Engineering Co.,Ltd. (Head Office)", "TSUBATA-ENGINEERING-HEAD-OFFICE" }, { 0x001B37, "Computec Oy", "COMPUTEC-OY" }, { 0x001B38, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x001B39, "Proxicast", "PROXICAST" }, { 0x001B3A, "SIMS Corp.", "SIMS" }, { 0x001B3B, "Yi-Qing CO., LTD", "YI-QING" }, { 0x001B3C, "Software Technologies Group,Inc.", "SOFTWARE-TECHNOLOGIES-GROUP" }, { 0x001B3D, "EuroTel Spa", "EUROTEL-SPA" }, { 0x001B3E, "Curtis, Inc.", "CURTIS" }, { 0x001B3F, "ProCurve Networking by HP", "PROCURVE-NETWORKING-BY-HP" }, { 0x001B40, "Network Automation mxc AB", "NETWORK-AUTOMATION-MXC-AB" }, { 0x001B41, "General Infinity Co.,Ltd.", "GENERAL-INFINITY" }, { 0x001B42, "Wise & Blue", "WISE-BLUE" }, { 0x001B43, "Beijing DG Telecommunications equipment Co.,Ltd", "BEIJING-DG-TELECOMMUNICATIONS-EQUIPMENT" }, { 0x001B44, "SanDisk Corporation", "SANDISK" }, { 0x001B45, "ABB AS, Division Automation Products", "ABB-AS-DIVISION-AUTOMATION-PRODUCTS" }, { 0x001B46, "Blueone Technology Co.,Ltd", "BLUEONE" }, { 0x001B47, "Futarque A/S", "FUTARQUE-A/S" }, { 0x001B48, "Shenzhen Lantech Electronics Co., Ltd.", "SHENZHEN-LANTECH-ELECTRONICS" }, { 0x001B49, "Roberts Radio limited", "ROBERTS-RADIO" }, { 0x001B4A, "W&W Communications, Inc.", "W-W-COMMUNICATION" }, { 0x001B4B, "SANION Co., Ltd.", "SANION" }, { 0x001B4C, "Signtech", "SIGNTECH" }, { 0x001B4D, "Areca Technology Corporation", "ARECA" }, { 0x001B4E, "Navman New Zealand", "NAVMAN-NEW-ZEALAND" }, { 0x001B4F, "Avaya Inc", "AVAYA" }, { 0x001B50, "Nizhny Novgorod Factory named after M.Frunze, FSUE (NZiF)", "NIZHNY-NOVGOROD-FACTORY-NAMED-AFTER-M-FRUNZE-FSUE-NZIF" }, { 0x001B51, "Vector Technology Corp.", "VECTOR" }, { 0x001B52, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001B53, "Cisco Systems, Inc", "CISCO" }, { 0x001B54, "Cisco Systems, Inc", "CISCO" }, { 0x001B55, "Hurco Automation Ltd.", "HURCO-AUTOMATION" }, { 0x001B56, "Tehuti Networks Ltd.", "TEHUTI-NETWORKS" }, { 0x001B57, "SEMINDIA SYSTEMS PRIVATE LIMITED", "SEMINDIA-PRIVATE" }, { 0x001B58, "ACE CAD Enterprise Co., Ltd.", "ACE-CAD" }, { 0x001B59, "Sony Corporation", "SONY" }, { 0x001B5A, "Apollo Imaging Technologies, Inc.", "APOLLO-IMAGING-TECHNOLOGIES" }, { 0x001B5B, "2Wire Inc", "2WIRE" }, { 0x001B5C, "Azuretec Co., Ltd.", "AZURETEC" }, { 0x001B5D, "Vololink Pty Ltd", "VOLOLINK-PTY" }, { 0x001B5E, "BPL Limited", "BPL" }, { 0x001B5F, "Alien Technology", "ALIEN" }, { 0x001B60, "NAVIGON AG", "NAVIGON" }, { 0x001B61, "Digital Acoustics, LLC", "DIGITAL-ACOUSTICS" }, { 0x001B62, "JHT Optoelectronics Co.,Ltd.", "JHT-OPTOELECTRONICS" }, { 0x001B63, "Apple, Inc.", "APPLE" }, { 0x001B64, "IsaacLandKorea Co., Ltd,", "ISAACLANDKOREA" }, { 0x001B65, "China Gridcom Co., Ltd", "CHINA-GRIDCOM" }, { 0x001B66, "Sennheiser electronic GmbH & Co. KG", "SENNHEISER" }, { 0x001B67, "Cisco Systems Inc", "CISCO" }, { 0x001B68, "Modnnet Co., Ltd", "MODNNET" }, { 0x001B69, "Equaline Corporation", "EQUALINE" }, { 0x001B6A, "Powerwave Technologies Sweden AB", "POWERWAVE-TECHNOLOGIES-SWEDEN-AB" }, { 0x001B6B, "Swyx Solutions AG", "SWYX-SOLUTIONS" }, { 0x001B6C, "LookX Digital Media BV", "LOOKX-DIGITAL-MEDIA" }, { 0x001B6D, "Midtronics, Inc.", "MIDTRONICS" }, { 0x001B6E, "Keysight Technologies, Inc.", "KEYSIGHT-TECHNOLOGIES" }, { 0x001B6F, "Teletrak Ltd", "TELETRAK" }, { 0x001B70, "IRI Ubiteq, INC.", "IRI-UBITEQ" }, { 0x001B71, "Telular Corp.", "TELULAR" }, { 0x001B72, "Sicep s.p.a.", "SICEP" }, { 0x001B73, "DTL Broadcast Ltd", "DTL-BROADCAST" }, { 0x001B74, "MiraLink Corporation", "MIRALINK" }, { 0x001B75, "Hypermedia Systems", "HYPERMEDIA" }, { 0x001B76, "Ripcode, Inc.", "RIPCODE" }, { 0x001B77, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001B78, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x001B79, "FAIVELEY TRANSPORT", "FAIVELEY-TRANSPORT" }, { 0x001B7A, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x001B7B, "The Tintometer Ltd", "THE-TINTOMETER" }, { 0x001B7C, "A & R Cambridge", "A-R-CAMBRIDGE" }, { 0x001B7D, "CXR Anderson Jacobson", "CXR-ANDERSON-JACOBSON" }, { 0x001B7E, "Beckmann GmbH", "BECKMANN" }, { 0x001B7F, "TMN Technologies Telecomunicacoes Ltda", "TMN-TECHNOLOGIES-TELECOMUNICACOES-LTDA" }, { 0x001B80, "LORD Corporation", "LORD" }, { 0x001B81, "DATAQ Instruments, Inc.", "DATAQ-INSTRUMENTS" }, { 0x001B82, "Taiwan Semiconductor Co., Ltd.", "TAIWAN-SEMICONDUCTOR" }, { 0x001B83, "Finsoft Ltd", "FINSOFT" }, { 0x001B84, "Scan Engineering Telecom", "SCAN-ENGINEERING-TELECOM" }, { 0x001B85, "MAN Energy Solutions", "MAN-ENERGY-SOLUTIONS" }, { 0x001B86, "Bosch Access Systems GmbH", "BOSCH-ACCESS" }, { 0x001B87, "Deepsound Tech. Co., Ltd", "DEEPSOUND-TECH" }, { 0x001B88, "Divinet Access Technologies Ltd", "DIVINET-ACCESS-TECHNOLOGIES" }, { 0x001B89, "EMZA Visual Sense Ltd.", "EMZA-VISUAL-SENSE" }, { 0x001B8A, "2M Electronic A/S", "2M-A/S" }, { 0x001B8B, "NEC Platforms, Ltd.", "NEC-PLATFORMS" }, { 0x001B8C, "JMicron Technology Corp.", "JMICRON" }, { 0x001B8D, "Electronic Computer Systems, Inc.", "" }, { 0x001B8E, "Hulu Sweden AB", "HULU-SWEDEN-AB" }, { 0x001B8F, "Cisco Systems, Inc", "CISCO" }, { 0x001B90, "Cisco Systems, Inc", "CISCO" }, { 0x001B91, "EFKON AG", "EFKON" }, { 0x001B92, "l-acoustics", "L-ACOUSTICS" }, { 0x001B93, "JC Decaux SA DNT", "JC-DECAUX-DNT" }, { 0x001B94, "T.E.M.A. S.p.A.", "T-E-M-A" }, { 0x001B95, "VIDEO SYSTEMS SRL", "VIDEO-SRL" }, { 0x001B96, "General Sensing", "GENERAL-SENSING" }, { 0x001B97, "Violin Technologies", "VIOLIN-TECHNOLOGIES" }, { 0x001B98, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x001B99, "KS System GmbH", "KS-SYSTEM" }, { 0x001B9A, "Apollo Fire Detectors Ltd", "APOLLO-FIRE-DETECTORS" }, { 0x001B9B, "Hose-McCann Communications", "HOSE-MCCANN-COMMUNICATION" }, { 0x001B9C, "SATEL sp. z o.o.", "SATEL-SP-Z-O-O" }, { 0x001B9D, "Novus Security Sp. z o.o.", "NOVUS-SECURITY-SP-Z-O-O" }, { 0x001B9E, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x001B9F, "Calyptech Pty Ltd", "CALYPTECH-PTY" }, { 0x001BA0, "Awox", "AWOX" }, { 0x001BA1, "Åmic AB", "MIC-AB" }, { 0x001BA2, "IDS Imaging Development Systems GmbH", "IDS-IMAGING-DEVELOPMENT" }, { 0x001BA3, "Flexit Group GmbH", "FLEXIT-GROUP" }, { 0x001BA4, "S.A.E Afikim", "E-AFIKIM" }, { 0x001BA5, "MyungMin Systems, Inc.", "MYUNGMIN" }, { 0x001BA6, "intotech inc.", "INTOTECH" }, { 0x001BA7, "Lorica Solutions", "LORICA-SOLUTIONS" }, { 0x001BA8, "UBI&MOBI,.Inc", "UBI-MOBI" }, { 0x001BA9, "Brother industries, LTD.", "BROTHER-INDUSTRIES" }, { 0x001BAA, "XenICs nv", "XENICS-NV" }, { 0x001BAB, "Telchemy, Incorporated", "TELCHEMY-INCORPORATED" }, { 0x001BAC, "Curtiss Wright Controls Embedded Computing", "CURTISS-WRIGHT-CONTROLS-EMBEDDED-COMPUTING" }, { 0x001BAD, "iControl Incorporated", "ICONTROL-INCORPORATED" }, { 0x001BAE, "Micro Control Systems, Inc", "MICRO-CONTROL" }, { 0x001BAF, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001BB0, "Bharat Electronics Limited", "BHARAT-ELECTRONICS" }, { 0x001BB1, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x001BB2, "Intellect International NV", "INTELLECT-NV" }, { 0x001BB3, "Condalo GmbH", "CONDALO" }, { 0x001BB4, "Airvod Limited", "AIRVOD" }, { 0x001BB5, "Cherry GmbH", "CHERRY" }, { 0x001BB6, "Bird Electronic Corp.", "BIRD" }, { 0x001BB7, "Alta Heights Technology Corp.", "ALTA-HEIGHTS" }, { 0x001BB8, "BLUEWAY ELECTRONIC CO;LTD", "BLUEWAY" }, { 0x001BB9, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x001BBA, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001BBB, "RFTech Co.,Ltd", "RFTECH" }, { 0x001BBC, "Silver Peak Systems, Inc.", "SILVER-PEAK" }, { 0x001BBD, "FMC Kongsberg Subsea AS", "FMC-KONGSBERG-SUBSEA-AS" }, { 0x001BBE, "ICOP Digital", "ICOP-DIGITAL" }, { 0x001BBF, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x001BC0, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x001BC1, "HOLUX Technology, Inc.", "HOLUX" }, { 0x001BC2, "Integrated Control Technology Limitied", "INTEGRATED-CONTROL-LIMITIED" }, { 0x001BC3, "Mobisolution Co.,Ltd", "MOBISOLUTION" }, { 0x001BC4, "Ultratec, Inc.", "ULTRATEC" }, { 0x001BC5, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x001BC6, "Strato Rechenzentrum AG", "STRATO-RECHENZENTRUM" }, { 0x001BC7, "StarVedia Technology Inc.", "STARVEDIA" }, { 0x001BC8, "MIURA CO.,LTD", "MIURA" }, { 0x001BC9, "FSN DISPLAY INC", "FSN-DISPLAY" }, { 0x001BCA, "Beijing Run Technology LTD. Company", "BEIJING-RUN-COMPANY" }, { 0x001BCB, "PEMPEK SYSTEMS PTY LTD", "PEMPEK-PTY" }, { 0x001BCC, "KINGTEK CCTV ALLIANCE CO., LTD.", "KINGTEK-CCTV-ALLIANCE" }, { 0x001BCD, "DAVISCOMMS (S) PTE LTD", "DAVISCOMMS-S-PTE" }, { 0x001BCE, "Measurement Devices Ltd", "MEASUREMENT-DEVICES" }, { 0x001BCF, "Dataupia Corporation", "DATAUPIA" }, { 0x001BD0, "IDENTEC SOLUTIONS", "IDENTEC-SOLUTIONS" }, { 0x001BD1, "SOGESTMATIC", "SOGESTMATIC" }, { 0x001BD2, "ULTRA-X ASIA PACIFIC Inc.", "ULTRA-X-ASIA-PACIFIC" }, { 0x001BD3, "Panasonic Corporation AVC Networks Company", "PANASONIC-AVC-NETWORKS-COMPANY" }, { 0x001BD4, "Cisco Systems, Inc", "CISCO" }, { 0x001BD5, "Cisco Systems, Inc", "CISCO" }, { 0x001BD6, "Kelvin Hughes Ltd", "KELVIN-HUGHES" }, { 0x001BD7, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x001BD8, "FLIR Systems Inc", "FLIR" }, { 0x001BD9, "Edgewater Wireless Systems Inc", "EDGEWATER-WIRELESS" }, { 0x001BDA, "UTStarcom Inc", "UTSTARCOM" }, { 0x001BDB, "Valeo VECS", "VALEO-VECS" }, { 0x001BDC, "Vencer Co., Ltd.", "VENCER" }, { 0x001BDD, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001BDE, "Renkus-Heinz, Inc.", "RENKUS-HEINZ" }, { 0x001BDF, "Iskra Sistemi d.d.", "ISKRA-SISTEMI-D-D" }, { 0x001BE0, "TELENOT ELECTRONIC GmbH", "TELENOT" }, { 0x001BE1, "ViaLogy", "VIALOGY" }, { 0x001BE2, "AhnLab,Inc.", "AHNLAB" }, { 0x001BE3, "Health Hero Network, Inc.", "HEALTH-HERO-NETWORK" }, { 0x001BE4, "TOWNET SRL", "TOWNET-SRL" }, { 0x001BE5, "802automation Limited", "802AUTOMATION" }, { 0x001BE6, "VR AG", "VR" }, { 0x001BE7, "Postek Electronics Co., Ltd.", "POSTEK-ELECTRONICS" }, { 0x001BE8, "Ultratronik GmbH", "ULTRATRONIK" }, { 0x001BE9, "Broadcom", "BROADCOM" }, { 0x001BEA, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x001BEB, "DMP Electronics INC.", "DMP-ELECTRONICS" }, { 0x001BEC, "Netio Technologies Co., Ltd", "NETIO-TECHNOLOGIES" }, { 0x001BED, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x001BEE, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001BEF, "Blossoms Digital Technology Co.,Ltd.", "BLOSSOMS-DIGITAL" }, { 0x001BF0, "Value Platforms Limited", "VALUE-PLATFORMS" }, { 0x001BF1, "Nanjing SilverNet Software Co., Ltd.", "NANJING-SILVERNET-SOFTWARE" }, { 0x001BF2, "KWORLD COMPUTER CO., LTD", "KWORLD" }, { 0x001BF3, "TRANSRADIO SenderSysteme Berlin AG", "TRANSRADIO-SENDERSYSTEME-BERLIN" }, { 0x001BF4, "KENWIN INDUSTRIAL(HK) LTD.", "KENWIN-INDUSTRIAL-HK" }, { 0x001BF5, "Tellink Sistemas de Telecomunicación S.L.", "TELLINK-SISTEMAS-DE-TELECOMUNICACIN" }, { 0x001BF6, "CONWISE Technology Corporation Ltd.", "CONWISE" }, { 0x001BF7, "Lund IP Products AB", "LUND-IP-PRODUCTS-AB" }, { 0x001BF8, "Digitrax Inc.", "DIGITRAX" }, { 0x001BF9, "Intellitect Water Ltd", "INTELLITECT-WATER" }, { 0x001BFA, "G.i.N. mbH", "G-I-N" }, { 0x001BFB, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x001BFC, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x001BFD, "Dignsys Inc.", "DIGNSYS" }, { 0x001BFE, "Zavio Inc.", "ZAVIO" }, { 0x001BFF, "Millennia Media inc.", "MILLENNIA-MEDIA" }, { 0x001C00, "Entry Point, LLC", "ENTRY-POINT" }, { 0x001C01, "ABB Oy Drives", "ABB-OY-DRIVES" }, { 0x001C02, "Pano Logic", "PANO-LOGIC" }, { 0x001C03, "Betty TV Technology AG", "BETTY-TV" }, { 0x001C04, "Airgain, Inc.", "AIRGAIN" }, { 0x001C05, "Nonin Medical Inc.", "NONIN-MEDICAL" }, { 0x001C06, "Siemens Numerical Control Ltd., Nanjing", "SIEMENS-NUMERICAL-CONTROL-NANJING" }, { 0x001C07, "Cwlinux Limited", "CWLINUX" }, { 0x001C08, "Echo360, Inc.", "ECHO360" }, { 0x001C09, "SAE Electronic Co.,Ltd.", "SAE" }, { 0x001C0A, "Shenzhen AEE Technology Co.,Ltd.", "SHENZHEN-AEE" }, { 0x001C0B, "SmartAnt Telecom", "SMARTANT-TELECOM" }, { 0x001C0C, "TANITA Corporation", "TANITA" }, { 0x001C0D, "G-Technology, Inc.", "G" }, { 0x001C0E, "Cisco Systems, Inc", "CISCO" }, { 0x001C0F, "Cisco Systems, Inc", "CISCO" }, { 0x001C10, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x001C11, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001C12, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001C13, "OPTSYS TECHNOLOGY CO., LTD.", "OPTSYS" }, { 0x001C14, "VMware, Inc.", "VMWARE" }, { 0x001C15, "iPhotonix LLC", "IPHOTONIX" }, { 0x001C16, "ThyssenKrupp Elevator", "THYSSENKRUPP-ELEVATOR" }, { 0x001C17, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001C18, "Sicert S.r.L.", "SICERT" }, { 0x001C19, "secunet Security Networks AG", "SECUNET-SECURITY-NETWORKS" }, { 0x001C1A, "Thomas Instrumentation, Inc", "THOMAS-INSTRUMENTATION" }, { 0x001C1B, "Hyperstone GmbH", "HYPERSTONE" }, { 0x001C1C, "Center Communication Systems GmbH", "CENTER-COMMUNICATION" }, { 0x001C1D, "CHENZHOU GOSPELL DIGITAL TECHNOLOGY CO.,LTD", "CHENZHOU-GOSPELL-DIGITAL" }, { 0x001C1E, "emtrion GmbH", "EMTRION" }, { 0x001C1F, "Quest Retail Technology Pty Ltd", "QUEST-RETAIL-PTY" }, { 0x001C20, "CLB Benelux", "CLB-BENELUX" }, { 0x001C21, "Nucsafe Inc.", "NUCSAFE" }, { 0x001C22, "Aeris Elettronica s.r.l.", "AERIS-ELETTRONICA" }, { 0x001C23, "Dell Inc.", "DELL" }, { 0x001C24, "Formosa Wireless Systems Corp.", "FORMOSA-WIRELESS" }, { 0x001C25, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x001C26, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x001C27, "Sunell Electronics Co.", "SUNELL-ELECTRONICS" }, { 0x001C28, "Sphairon Technologies GmbH", "SPHAIRON-TECHNOLOGIES" }, { 0x001C29, "CORE DIGITAL ELECTRONICS CO., LTD", "CORE-DIGITAL-ELECTRONICS" }, { 0x001C2A, "Envisacor Technologies Inc.", "ENVISACOR-TECHNOLOGIES" }, { 0x001C2B, "Alertme.com Limited", "ALERTME-COM" }, { 0x001C2C, "Synapse", "SYNAPSE" }, { 0x001C2D, "FlexRadio Systems", "FLEXRADIO" }, { 0x001C2E, "HPN Supply Chain", "HPN-SUPPLY-CHAIN" }, { 0x001C2F, "Pfister GmbH", "PFISTER" }, { 0x001C30, "Mode Lighting (UK ) Ltd.", "MODE-LIGHTING-UK" }, { 0x001C31, "Mobile XP Technology Co., LTD", "MOBILE-XP" }, { 0x001C32, "Telian Corporation", "TELIAN" }, { 0x001C33, "Sutron", "SUTRON" }, { 0x001C34, "HUEY CHIAO INTERNATIONAL CO., LTD.", "HUEY-CHIAO" }, { 0x001C35, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001C36, "iNEWiT NV", "INEWIT-NV" }, { 0x001C37, "Callpod, Inc.", "CALLPOD" }, { 0x001C38, "Bio-Rad Laboratories, Inc.", "BIO-RAD-LABORATORIES" }, { 0x001C39, "S Netsystems Inc.", "S-NETSYSTEMS" }, { 0x001C3A, "Element Labs, Inc.", "ELEMENT-LABS" }, { 0x001C3B, "AmRoad Technology Inc.", "AMROAD" }, { 0x001C3C, "Seon Design Inc.", "SEON-DESIGN" }, { 0x001C3D, "WaveStorm", "WAVESTORM" }, { 0x001C3E, "ECKey Corporation", "ECKEY" }, { 0x001C3F, "International Police Technologies, Inc.", "POLICE-TECHNOLOGIES" }, { 0x001C40, "VDG-Security bv", "VDG-SECURITY" }, { 0x001C41, "scemtec Transponder Technology GmbH", "SCEMTEC-TRANSPONDER" }, { 0x001C42, "Parallels, Inc. (possible Paralles Desktop, Workstation, Server, Virtuozzo VM)", "PARALLELS-VIRTUAL" }, { 0x001C43, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x001C44, "Bosch Security Systems BV", "BOSCH-SECURITY" }, { 0x001C45, "Chenbro Micom Co., Ltd.", "CHENBRO-MICOM" }, { 0x001C46, "QTUM", "QTUM" }, { 0x001C47, "Hangzhou Hollysys Automation Co., Ltd", "HANGZHOU-HOLLYSYS-AUTOMATION" }, { 0x001C48, "WiDeFi, Inc.", "WIDEFI" }, { 0x001C49, "Zoltan Technology Inc.", "ZOLTAN" }, { 0x001C4A, "AVM GmbH", "AVM" }, { 0x001C4B, "Gener8, Inc.", "GENER8" }, { 0x001C4C, "Petrotest Instruments", "PETROTEST-INSTRUMENTS" }, { 0x001C4D, "Aplix IP Holdings Corporation", "APLIX-IP-HOLDINGS" }, { 0x001C4E, "TASA International Limited", "TASA" }, { 0x001C4F, "MACAB AB", "MACAB-AB" }, { 0x001C50, "TCL Technoly Electronics (Huizhou) Co., Ltd.", "TCL-TECHNOLY-ELECTRONICS-HUIZHOU" }, { 0x001C51, "Celeno Communications", "CELENO-COMMUNICATION" }, { 0x001C52, "VISIONEE SRL", "VISIONEE-SRL" }, { 0x001C53, "Synergy Lighting Controls", "SYNERGY-LIGHTING-CONTROLS" }, { 0x001C54, "Hillstone Networks Inc", "HILLSTONE-NETWORKS" }, { 0x001C55, "Shenzhen Kaifa Technology Co.", "SHENZHEN-KAIFA" }, { 0x001C56, "Pado Systems, Inc.", "PADO" }, { 0x001C57, "Cisco Systems, Inc", "CISCO" }, { 0x001C58, "Cisco Systems, Inc", "CISCO" }, { 0x001C59, "DEVON IT", "DEVON-IT" }, { 0x001C5A, "Advanced Relay Corporation", "ADVANCED-RELAY" }, { 0x001C5B, "Chubb Electronic Security Systems Ltd", "CHUBB-SECURITY" }, { 0x001C5C, "Integrated Medical Systems, Inc.", "INTEGRATED-MEDICAL" }, { 0x001C5D, "Leica Microsystems", "LEICA-MICROSYSTEMS" }, { 0x001C5E, "ASTON France", "ASTON-FRANCE" }, { 0x001C5F, "Winland Electronics, Inc.", "WINLAND-ELECTRONICS" }, { 0x001C60, "CSP Frontier Technologies,Inc.", "CSP-FRONTIER-TECHNOLOGIES" }, { 0x001C61, "Galaxy Microsystems LImited", "GALAXY-MICROSYSTEMS" }, { 0x001C62, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x001C63, "TRUEN", "TRUEN" }, { 0x001C64, "Landis+Gyr", "LANDIS+GYR" }, { 0x001C65, "JoeScan, Inc.", "JOESCAN" }, { 0x001C66, "UCAMP CO.,LTD", "UCAMP" }, { 0x001C67, "Pumpkin Networks, Inc.", "PUMPKIN-NETWORKS" }, { 0x001C68, "Anhui Sun Create Electronics Co., Ltd", "ANHUI-SUN-CREATE-ELECTRONICS" }, { 0x001C69, "Packet Vision Ltd", "PACKET-VISION" }, { 0x001C6A, "Weiss Engineering Ltd.", "WEISS-ENGINEERING" }, { 0x001C6B, "COVAX Co. Ltd", "COVAX" }, { 0x001C6C, "30805", "30805" }, { 0x001C6D, "KYOHRITSU ELECTRONIC INDUSTRY CO., LTD.", "KYOHRITSU-INDUSTRY" }, { 0x001C6E, "Newbury Networks, Inc.", "NEWBURY-NETWORKS" }, { 0x001C6F, "Emfit Ltd", "EMFIT" }, { 0x001C70, "NOVACOMM LTDA", "NOVACOMM-LTDA" }, { 0x001C71, "Emergent Electronics", "EMERGENT-ELECTRONICS" }, { 0x001C72, "Mayer & Cie GmbH & Co KG", "MAYER-CIE" }, { 0x001C73, "Arista Networks", "ARISTA-NETWORKS" }, { 0x001C74, "Syswan Technologies Inc.", "SYSWAN-TECHNOLOGIES" }, { 0x001C75, "Segnet Ltd.", "SEGNET" }, { 0x001C76, "The Wandsworth Group Ltd", "THE-WANDSWORTH-GROUP" }, { 0x001C77, "Prodys", "PRODYS" }, { 0x001C78, "WYPLAY SAS", "WYPLAY-SAS" }, { 0x001C79, "Cohesive Financial Technologies LLC", "COHESIVE-FINANCIAL-TECHNOLOGIES" }, { 0x001C7A, "Perfectone Netware Company Ltd", "PERFECTONE-NETWARE-COMPANY" }, { 0x001C7B, "Castlenet Technology Inc.", "CASTLENET" }, { 0x001C7C, "PERQ SYSTEMS CORPORATION", "PERQ" }, { 0x001C7D, "Excelpoint Manufacturing Pte Ltd", "EXCELPOINT-MANUFACTURING-PTE" }, { 0x001C7E, "Toshiba", "TOSHIBA" }, { 0x001C7F, "Check Point Software Technologies", "CHECK-POINT-SOFTWARE-TECHNOLOGIES" }, { 0x001C80, "New Business Division/Rhea-Information CO., LTD.", "NEW-BUSINESS-DIVISION/RHEA-INFORMATION" }, { 0x001C81, "NextGen Venturi LTD", "NEXTGEN-VENTURI" }, { 0x001C82, "Genew Technologies", "GENEW-TECHNOLOGIES" }, { 0x001C83, "New Level Telecom Co., Ltd.", "NEW-LEVEL-TELECOM" }, { 0x001C84, "STL Solution Co.,Ltd.", "STL-SOLUTION" }, { 0x001C85, "Eunicorn", "EUNICORN" }, { 0x001C86, "Cranite Systems, Inc.", "CRANITE" }, { 0x001C87, "Uriver Inc.", "URIVER" }, { 0x001C88, "TRANSYSTEM INC.", "TRANSYSTEM" }, { 0x001C89, "Force Communications, Inc.", "FORCE-COMMUNICATION" }, { 0x001C8A, "Cirrascale Corporation", "CIRRASCALE" }, { 0x001C8B, "MJ Innovations Ltd.", "MJ-INNOVATIONS" }, { 0x001C8C, "DIAL TECHNOLOGY LTD.", "DIAL" }, { 0x001C8D, "Mesa Imaging", "MESA-IMAGING" }, { 0x001C8E, "Alcatel-Lucent IPD", "ALCATEL-LUCENT-IPD" }, { 0x001C8F, "Advanced Electronic Design, Inc.", "ADVANCED-DESIGN" }, { 0x001C90, "Empacket Corporation", "EMPACKET" }, { 0x001C91, "Gefen LLC", "GEFEN" }, { 0x001C92, "Tervela", "TERVELA" }, { 0x001C93, "ExaDigm Inc", "EXADIGM" }, { 0x001C94, "LI-COR Biosciences", "LI-COR-BIOSCIENCES" }, { 0x001C95, "Opticomm Corporation", "OPTICOMM" }, { 0x001C96, "Linkwise Technology Pte Ltd", "LINKWISE-PTE" }, { 0x001C97, "Enzytek Technology Inc.,", "ENZYTEK" }, { 0x001C98, "LUCKY TECHNOLOGY (HK) COMPANY LIMITED", "LUCKY-HK-COMPANY" }, { 0x001C99, "Shunra Software Ltd.", "SHUNRA-SOFTWARE" }, { 0x001C9A, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001C9B, "FEIG ELECTRONIC GmbH", "FEIG" }, { 0x001C9C, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001C9D, "Liecthi AG", "LIECTHI" }, { 0x001C9E, "Dualtech IT AB", "DUALTECH-IT-AB" }, { 0x001C9F, "Razorstream, LLC", "RAZORSTREAM" }, { 0x001CA0, "Production Resource Group, LLC", "PRODUCTION-RESOURCE-GROUP" }, { 0x001CA1, "AKAMAI TECHNOLOGIES, INC.", "AKAMAI-TECHNOLOGIES" }, { 0x001CA2, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x001CA3, "Terra", "TERRA" }, { 0x001CA4, "Sony Corporation", "SONY" }, { 0x001CA5, "Zygo Corporation", "ZYGO" }, { 0x001CA6, "Win4NET", "WIN4NET" }, { 0x001CA7, "International Quartz Limited", "QUARTZ" }, { 0x001CA8, "AirTies Wireless Networks", "AIRTIES-WIRELESS-NETWORKS" }, { 0x001CA9, "Audiomatica Srl", "AUDIOMATICA-SRL" }, { 0x001CAA, "Bellon Pty Ltd", "BELLON-PTY" }, { 0x001CAB, "Meyer Sound Laboratories, Inc.", "MEYER-SOUND-LABORATORIES" }, { 0x001CAC, "Qniq Technology Corp.", "QNIQ" }, { 0x001CAD, "Wuhan Telecommunication Devices Co.,Ltd", "WUHAN-TELECOMMUNICATION-DEVICES" }, { 0x001CAE, "WiChorus, Inc.", "WICHORUS" }, { 0x001CAF, "Plato Networks Inc.", "PLATO-NETWORKS" }, { 0x001CB0, "Cisco Systems, Inc", "CISCO" }, { 0x001CB1, "Cisco Systems, Inc", "CISCO" }, { 0x001CB2, "BPT SPA", "BPT-SPA" }, { 0x001CB3, "Apple, Inc.", "APPLE" }, { 0x001CB4, "Iridium Satellite LLC", "IRIDIUM-SATELLITE" }, { 0x001CB5, "Neihua Network Technology Co.,LTD.(NHN)", "NEIHUA-NETWORK-NHN" }, { 0x001CB6, "Duzon CNT Co., Ltd.", "DUZON-CNT" }, { 0x001CB7, "USC DigiArk Corporation", "USC-DIGIARK" }, { 0x001CB8, "CBC Co., Ltd", "CBC" }, { 0x001CB9, "KWANG SUNG ELECTRONICS CO., LTD.", "KWANG-SUNG-ELECTRONICS" }, { 0x001CBA, "VerScient, Inc.", "VERSCIENT" }, { 0x001CBB, "MusicianLink", "MUSICIANLINK" }, { 0x001CBC, "CastGrabber, LLC", "CASTGRABBER" }, { 0x001CBD, "Ezze Mobile Tech., Inc.", "EZZE-MOBILE-TECH" }, { 0x001CBE, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x001CBF, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001CC0, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001CC1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001CC2, "Part II Research, Inc.", "PART-II-RESEARCH" }, { 0x001CC3, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001CC4, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x001CC5, "3Com Ltd", "3COM" }, { 0x001CC6, "ProStor Systems", "PROSTOR" }, { 0x001CC7, "Rembrandt Technologies, LLC d/b/a REMSTREAM", "REMBRANDT-TECHNOLOGIES-LLC-D/B/A-REMSTREAM" }, { 0x001CC8, "INDUSTRONIC Industrie-Electronic GmbH & Co. KG", "INDUSTRONIC-INDUSTRIE" }, { 0x001CC9, "Kaise Electronic Technology Co., Ltd.", "KAISE" }, { 0x001CCA, "Shanghai Gaozhi Science & Technology Development Co.", "SHANGHAI-GAOZHI-SCIENCE-DEVELOPMENT" }, { 0x001CCB, "Forth Corporation Public Company Limited", "FORTH-PUBLIC-COMPANY" }, { 0x001CCC, "BlackBerry RTS", "BLACKBERRY-RTS" }, { 0x001CCD, "Alektrona Corporation", "ALEKTRONA" }, { 0x001CCE, "By Techdesign", "BY-TECHDESIGN" }, { 0x001CCF, "LIMETEK", "LIMETEK" }, { 0x001CD0, "Circleone Co.,Ltd.", "CIRCLEONE" }, { 0x001CD1, "Waves Audio LTD", "WAVES-AUDIO" }, { 0x001CD2, "King Champion (Hong Kong) Limited", "KING-CHAMPION-HONG-KONG" }, { 0x001CD3, "ZP Engineering SEL", "ZP-ENGINEERING-SEL" }, { 0x001CD4, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001CD5, "ZeeVee, Inc.", "ZEEVEE" }, { 0x001CD6, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001CD7, "Harman/Becker Automotive Systems GmbH", "HARMAN/BECKER-AUTOMOTIVE" }, { 0x001CD8, "BlueAnt Wireless", "BLUEANT-WIRELESS" }, { 0x001CD9, "GlobalTop Technology Inc.", "GLOBALTOP" }, { 0x001CDA, "Exegin Technologies Limited", "EXEGIN-TECHNOLOGIES" }, { 0x001CDB, "CARPOINT CO.,LTD", "CARPOINT" }, { 0x001CDC, "Custom Computer Services, Inc.", "CUSTOM-SERVICES" }, { 0x001CDD, "COWBELL ENGINEERING CO., LTD.", "COWBELL-ENGINEERING" }, { 0x001CDE, "Interactive Multimedia eXchange Inc.", "INTERACTIVE-MULTIMEDIA-EXCHANGE" }, { 0x001CDF, "Belkin International Inc.", "BELKIN" }, { 0x001CE0, "DASAN TPS", "DASAN-TPS" }, { 0x001CE1, "INDRA SISTEMAS, S.A.", "INDRA-SISTEMAS" }, { 0x001CE2, "Attero Tech, LLC.", "ATTERO-TECH" }, { 0x001CE3, "Optimedical Systems", "OPTIMEDICAL" }, { 0x001CE4, "EleSy JSC", "ELESY-JSC" }, { 0x001CE5, "MBS Electronic Systems GmbH", "MBS" }, { 0x001CE6, "INNES", "INNES" }, { 0x001CE7, "Rocon PLC Research Centre", "ROCON-PLC-RESEARCH-CENTRE" }, { 0x001CE8, "Cummins Inc", "CUMMINS" }, { 0x001CE9, "Galaxy Technology Limited", "GALAXY" }, { 0x001CEA, "Scientific-Atlanta, Inc", "SCIENTIFIC-ATLANTA" }, { 0x001CEB, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001CEC, "Mobilesoft (Aust.) Pty Ltd", "MOBILESOFT-AUST-PTY" }, { 0x001CED, "ENVIRONNEMENT SA", "ENVIRONNEMENT" }, { 0x001CEE, "SHARP Corporation", "SHARP" }, { 0x001CEF, "Primax Electronics Ltd.", "PRIMAX-ELECTRONICS" }, { 0x001CF0, "D-Link Corporation", "D-LINK" }, { 0x001CF1, "SUPoX Technology Co. , LTD.", "SUPOX" }, { 0x001CF2, "Tenlon Technology Co.,Ltd.", "TENLON" }, { 0x001CF3, "EVS BROADCAST EQUIPMENT", "EVS-BROADCAST-EQUIPMENT" }, { 0x001CF4, "Media Technology Systems Inc", "MEDIA" }, { 0x001CF5, "Wiseblue Technology Limited", "WISEBLUE" }, { 0x001CF6, "Cisco Systems, Inc", "CISCO" }, { 0x001CF7, "AudioScience", "AUDIOSCIENCE" }, { 0x001CF8, "Parade Technologies, Ltd.", "PARADE-TECHNOLOGIES" }, { 0x001CF9, "Cisco Systems, Inc", "CISCO" }, { 0x001CFA, "Alarm.com", "ALARM-COM" }, { 0x001CFB, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001CFC, "Sumitomo Electric Industries, Ltd", "SUMITOMO-ELECTRIC-INDUSTRIES" }, { 0x001CFD, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x001CFE, "Quartics Inc", "QUARTICS" }, { 0x001CFF, "Napera Networks Inc", "NAPERA-NETWORKS" }, { 0x001D00, "Brivo Systems, LLC", "BRIVO" }, { 0x001D01, "Neptune Digital", "NEPTUNE-DIGITAL" }, { 0x001D02, "Cybertech Telecom Development", "CYBERTECH-TELECOM-DEVELOPMENT" }, { 0x001D03, "Design Solutions Inc.", "DESIGN-SOLUTIONS" }, { 0x001D04, "Zipit Wireless, Inc.", "ZIPIT-WIRELESS" }, { 0x001D05, "Cooper Lighting Solutions", "COOPER-LIGHTING-SOLUTIONS" }, { 0x001D06, "HM Electronics, Inc.", "HM-ELECTRONICS" }, { 0x001D07, "Shenzhen Sang Fei Consumer Communications Co.,Ltd", "SHENZHEN-SANG-FEI-CONSUMER-COMMUNICATION" }, { 0x001D08, "Jiangsu Yinhe Electronics Co.,Ltd.", "JIANGSU-YINHE-ELECTRONICS" }, { 0x001D09, "Dell Inc.", "DELL" }, { 0x001D0A, "Davis Instruments, Inc.", "DAVIS-INSTRUMENTS" }, { 0x001D0B, "Power Standards Lab", "POWER-STANDARDS-LAB" }, { 0x001D0C, "MobileCompia", "MOBILECOMPIA" }, { 0x001D0D, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x001D0E, "Agapha Technology co., Ltd.", "AGAPHA" }, { 0x001D0F, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x001D10, "LightHaus Logic, Inc.", "LIGHTHAUS-LOGIC" }, { 0x001D11, "Analogue & Micro Ltd", "ANALOGUE-MICRO" }, { 0x001D12, "ROHM CO., LTD.", "ROHM" }, { 0x001D13, "NextGTV", "NEXTGTV" }, { 0x001D14, "SPERADTONE INFORMATION TECHNOLOGY LIMITED", "SPERADTONE-INFORMATION" }, { 0x001D15, "Shenzhen Dolphin Electronic Co., Ltd", "SHENZHEN-DOLPHIN" }, { 0x001D16, "SFR", "SFR" }, { 0x001D17, "Digital Sky Corporation", "DIGITAL-SKY" }, { 0x001D18, "Power Innovation GmbH", "POWER-INNOVATION" }, { 0x001D19, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x001D1A, "OvisLink S.A.", "OVISLINK" }, { 0x001D1B, "Sangean Electronics Inc.", "SANGEAN-ELECTRONICS" }, { 0x001D1C, "Gennet s.a.", "GENNET" }, { 0x001D1D, "Inter-M Corporation", "INTER-M" }, { 0x001D1E, "KYUSHU TEN CO.,LTD", "KYUSHU-TEN" }, { 0x001D1F, "Siauliu Tauro Televizoriai, JSC", "SIAULIU-TAURO-TELEVIZORIAI-JSC" }, { 0x001D20, "Comtrend Corporation", "COMTREND" }, { 0x001D21, "Alcad SL", "ALCAD-SL" }, { 0x001D22, "Foss Analytical A/S", "FOSS-ANALYTICAL-A/S" }, { 0x001D23, "SENSUS", "SENSUS" }, { 0x001D24, "Aclara Power-Line Systems Inc.", "ACLARA-POWER-LINE" }, { 0x001D25, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x001D26, "Rockridgesound Technology Co.", "ROCKRIDGESOUND" }, { 0x001D27, "NAC-INTERCOM", "NAC-INTERCOM" }, { 0x001D28, "Sony Corporation", "SONY" }, { 0x001D29, "Doro AB", "DORO-AB" }, { 0x001D2A, "SHENZHEN BUL-TECH CO.,LTD.", "SHENZHEN-BUL-TECH" }, { 0x001D2B, "Wuhan Pont Technology CO. , LTD", "WUHAN-PONT" }, { 0x001D2C, "Wavetrend Technologies (Pty) Limited", "WAVETREND-TECHNOLOGIES-PTY" }, { 0x001D2D, "Pylone, Inc.", "PYLONE" }, { 0x001D2E, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x001D2F, "QuantumVision Corporation", "QUANTUMVISION" }, { 0x001D30, "YX Wireless S.A.", "YX-WIRELESS" }, { 0x001D31, "HIGHPRO INTERNATIONAL R&D CO,.LTD.", "HIGHPRO-R-D" }, { 0x001D32, "Longkay Communication & Technology (Shanghai) Co. Ltd", "LONGKAY-COMMUNICATION-SHANGHAI" }, { 0x001D33, "Maverick Systems Inc.", "MAVERICK" }, { 0x001D34, "SYRIS Technology Corp", "SYRIS" }, { 0x001D35, "Viconics Electronics Inc.", "VICONICS-ELECTRONICS" }, { 0x001D36, "ELECTRONICS CORPORATION OF INDIA LIMITED", "ELECTRONICS-OF-INDIA" }, { 0x001D37, "Thales-Panda Transportation System", "THALES-PANDA-TRANSPORTATION-SYSTEM" }, { 0x001D38, "Seagate Technology", "SEAGATE" }, { 0x001D39, "MOOHADIGITAL CO., LTD", "MOOHADIGITAL" }, { 0x001D3A, "mh acoustics LLC", "MH-ACOUSTICS" }, { 0x001D3B, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001D3C, "Muscle Corporation", "MUSCLE" }, { 0x001D3D, "Avidyne Corporation", "AVIDYNE" }, { 0x001D3E, "SAKA TECHNO SCIENCE CO.,LTD", "SAKA-TECHNO-SCIENCE" }, { 0x001D3F, "Mitron Pty Ltd", "MITRON-PTY" }, { 0x001D40, "Intel – GE Care Innovations LLC", "INTEL-GE-CARE-INNOVATIONS" }, { 0x001D41, "Hardy Instruments", "HARDY-INSTRUMENTS" }, { 0x001D42, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001D43, "Shenzhen G-link Digital Technology Co., Ltd.", "SHENZHEN-G-LINK-DIGITAL" }, { 0x001D44, "Krohne", "KROHNE" }, { 0x001D45, "Cisco Systems, Inc", "CISCO" }, { 0x001D46, "Cisco Systems, Inc", "CISCO" }, { 0x001D47, "Covote GmbH & Co KG", "COVOTE" }, { 0x001D48, "Sensor-Technik Wiedemann GmbH", "SENSOR-TECHNIK-WIEDEMANN" }, { 0x001D49, "Innovation Wireless Inc.", "INNOVATION-WIRELESS" }, { 0x001D4A, "Carestream Health, Inc.", "CARESTREAM-HEALTH" }, { 0x001D4B, "Grid Connect Inc.", "GRID-CONNECT" }, { 0x001D4C, "Alcatel-Lucent", "ALCATEL-LUCENT" }, { 0x001D4D, "Adaptive Recognition Hungary, Inc", "ADAPTIVE-RECOGNITION-HUNGARY" }, { 0x001D4E, "TCM Mobile LLC", "TCM-MOBILE" }, { 0x001D4F, "Apple, Inc.", "APPLE" }, { 0x001D50, "SPINETIX SA", "SPINETIX" }, { 0x001D51, "Babcock & Wilcox Power Generation Group, Inc", "BABCOCK-WILCOX-POWER-GENERATION-GROUP" }, { 0x001D52, "Defzone B.V.", "DEFZONE-B-V" }, { 0x001D53, "S&O Electronics (Malaysia) Sdn. Bhd.", "S-O-ELECTRONICS-MALAYSIA" }, { 0x001D54, "Sunnic Technology & Merchandise INC.", "SUNNIC-MERCHANDISE" }, { 0x001D55, "ZANTAZ, Inc", "ZANTAZ" }, { 0x001D56, "Kramer Electronics Ltd.", "KRAMER-ELECTRONICS" }, { 0x001D57, "CAETEC Messtechnik", "CAETEC-MESSTECHNIK" }, { 0x001D58, "CQ Inc", "CQ" }, { 0x001D59, "Mitra Energy & Infrastructure", "MITRA-ENERGY-INFRASTRUCTURE" }, { 0x001D5A, "2Wire Inc", "2WIRE" }, { 0x001D5B, "Tecvan Informatica Ltda", "TECVAN-INFORMATICA-LTDA" }, { 0x001D5C, "Tom Communication Industrial Co.,Ltd.", "TOM-COMMUNICATION-INDUSTRIAL" }, { 0x001D5D, "Control Dynamics Pty. Ltd.", "CONTROL-DYNAMICS-PTY" }, { 0x001D5E, "COMING MEDIA CORP.", "COMING-MEDIA" }, { 0x001D5F, "OverSpeed SARL", "OVERSPEED-SARL" }, { 0x001D60, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x001D61, "BIJ Corporation", "BIJ" }, { 0x001D62, "InPhase Technologies", "INPHASE-TECHNOLOGIES" }, { 0x001D63, "Miele & Cie. KG", "MIELE-CIE" }, { 0x001D64, "Adam Communications Systems Int Ltd", "ADAM-COMMUNICATION-INT" }, { 0x001D65, "Microwave Radio Communications", "MICROWAVE-RADIO-COMMUNICATION" }, { 0x001D66, "Hyundai Telecom", "HYUNDAI-TELECOM" }, { 0x001D67, "AMEC", "AMEC" }, { 0x001D68, "Thomson Telecom Belgium", "THOMSON-TELECOM-BELGIUM" }, { 0x001D69, "Knorr-Bremse IT-Services GmbH", "KNORR-BREMSE-IT-SERVICES" }, { 0x001D6A, "Alpha Networks Inc.", "ALPHA-NETWORKS" }, { 0x001D6B, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001D6C, "ClariPhy Communications, Inc.", "CLARIPHY-COMMUNICATION" }, { 0x001D6D, "Confidant International LLC", "CONFIDANT" }, { 0x001D6E, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001D6F, "Chainzone Technology Co., Ltd", "CHAINZONE" }, { 0x001D70, "Cisco Systems, Inc", "CISCO" }, { 0x001D71, "Cisco Systems, Inc", "CISCO" }, { 0x001D72, "Wistron Corporation", "WISTRON" }, { 0x001D73, "BUFFALO.INC", "BUFFALO" }, { 0x001D74, "Tianjin China-Silicon Microelectronics Co., Ltd.", "TIANJIN-CHINA-SILICON-MICROELECTRONICS" }, { 0x001D75, "Radioscape PLC", "RADIOSCAPE-PLC" }, { 0x001D76, "Eyeheight Ltd.", "EYEHEIGHT" }, { 0x001D77, "NSGate", "NSGATE" }, { 0x001D78, "Invengo Information Technology Co.,Ltd", "INVENGO-INFORMATION" }, { 0x001D79, "SIGNAMAX LLC", "SIGNAMAX" }, { 0x001D7A, "Wideband Semiconductor, Inc.", "WIDEBAND-SEMICONDUCTOR" }, { 0x001D7B, "Ice Energy, Inc.", "ICE-ENERGY" }, { 0x001D7C, "ABE Elettronica S.p.A.", "ABE-ELETTRONICA" }, { 0x001D7D, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x001D7E, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x001D7F, "Tekron International Ltd", "TEKRON" }, { 0x001D80, "Beijing Huahuan Eletronics Co.,Ltd", "BEIJING-HUAHUAN-ELETRONICS" }, { 0x001D81, "GUANGZHOU GATEWAY ELECTRONICS CO., LTD", "GUANGZHOU-GATEWAY-ELECTRONICS" }, { 0x001D82, "GN Netcom A/S", "GN-NETCOM-A/S" }, { 0x001D83, "Emitech Corporation", "EMITECH" }, { 0x001D84, "Gateway, Inc.", "GATEWAY" }, { 0x001D85, "Call Direct Cellular Solutions", "CALL-DIRECT-CELLULAR-SOLUTIONS" }, { 0x001D86, "Shinwa Industries(China) Ltd.", "SHINWA-INDUSTRIES-CHINA" }, { 0x001D87, "VigTech Labs Sdn Bhd", "VIGTECH-LABS" }, { 0x001D88, "Clearwire", "CLEARWIRE" }, { 0x001D89, "VaultStor Corporation", "VAULTSTOR" }, { 0x001D8A, "TechTrex Inc", "TECHTREX" }, { 0x001D8B, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x001D8C, "La Crosse Technology LTD", "LA-CROSSE" }, { 0x001D8D, "Fluke Process Instruments GmbH", "FLUKE-PROCESS-INSTRUMENTS" }, { 0x001D8E, "Alereon, Inc.", "ALEREON" }, { 0x001D8F, "PureWave Networks", "PUREWAVE-NETWORKS" }, { 0x001D90, "EMCO Flow Systems", "EMCO-FLOW" }, { 0x001D91, "Digitize, Inc", "DIGITIZE" }, { 0x001D92, "MICRO-STAR INT'L CO.,LTD.", "MICRO-STAR" }, { 0x001D93, "Modacom", "MODACOM" }, { 0x001D94, "Climax Technology Co., Ltd", "CLIMAX" }, { 0x001D95, "Flash, Inc.", "FLASH" }, { 0x001D96, "WatchGuard Video", "WATCHGUARD-VIDEO" }, { 0x001D97, "Alertus Technologies LLC", "ALERTUS-TECHNOLOGIES" }, { 0x001D98, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001D99, "Cyan Optic, Inc.", "CYAN-OPTIC" }, { 0x001D9A, "GODEX INTERNATIONAL CO., LTD", "GODEX" }, { 0x001D9B, "Hokuyo Automatic Co., Ltd.", "HOKUYO-AUTOMATIC" }, { 0x001D9C, "Rockwell Automation", "ROCKWELL-AUTOMATION" }, { 0x001D9D, "ARTJOY INTERNATIONAL LIMITED", "ARTJOY" }, { 0x001D9E, "AXION TECHNOLOGIES", "AXION-TECHNOLOGIES" }, { 0x001D9F, "MATT R.P.Traczynscy Sp.J.", "MATT-R-P-TRACZYNSCY-SP-J" }, { 0x001DA0, "Heng Yu Electronic Manufacturing Company Limited", "HENG-YU-MANUFACTURING-COMPANY" }, { 0x001DA1, "Cisco Systems, Inc", "CISCO" }, { 0x001DA2, "Cisco Systems, Inc", "CISCO" }, { 0x001DA3, "SabiOso", "SABIOSO" }, { 0x001DA4, "Hangzhou System Technology CO., LTD", "HANGZHOU-SYSTEM" }, { 0x001DA5, "WB Electronics", "WB-ELECTRONICS" }, { 0x001DA6, "Media Numerics Limited", "MEDIA-NUMERICS" }, { 0x001DA7, "Seamless Internet", "SEAMLESS-INTERNET" }, { 0x001DA8, "Takahata Electronics Co.,Ltd", "TAKAHATA-ELECTRONICS" }, { 0x001DA9, "Castles Technology, Co., LTD", "CASTLES" }, { 0x001DAA, "DrayTek Corp.", "DRAYTEK" }, { 0x001DAB, "SwissQual License AG", "SWISSQUAL-LICENSE" }, { 0x001DAC, "Gigamon Systems LLC", "GIGAMON" }, { 0x001DAD, "Sinotech Engineering Consultants, Inc. Geotechnical Enginee", "SINOTECH-ENGINEERING-CONSULTANTS-GEOTECHNICAL-ENGINEE" }, { 0x001DAE, "CHANG TSENG TECHNOLOGY CO., LTD", "CHANG-TSENG" }, { 0x001DAF, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001DB0, "FuJian HengTong Information Technology Co.,Ltd", "FUJIAN-HENGTONG-INFORMATION" }, { 0x001DB1, "Crescendo Networks", "CRESCENDO-NETWORKS" }, { 0x001DB2, "HOKKAIDO ELECTRIC ENGINEERING CO.,LTD.", "HOKKAIDO-ELECTRIC-ENGINEERING" }, { 0x001DB3, "HPN Supply Chain", "HPN-SUPPLY-CHAIN" }, { 0x001DB4, "KUMHO ENG CO.,LTD", "KUMHO-ENG" }, { 0x001DB5, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x001DB6, "BestComm Networks, Inc.", "BESTCOMM-NETWORKS" }, { 0x001DB7, "Tendril Networks, Inc.", "TENDRIL-NETWORKS" }, { 0x001DB8, "Intoto Inc.", "INTOTO" }, { 0x001DB9, "Wellspring Wireless", "WELLSPRING-WIRELESS" }, { 0x001DBA, "Sony Corporation", "SONY" }, { 0x001DBB, "Dynamic System Electronics Corp.", "DYNAMIC-SYSTEM-ELECTRONICS" }, { 0x001DBC, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x001DBD, "Versamed Inc.", "VERSAMED" }, { 0x001DBE, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001DBF, "Radiient Technologies, Inc.", "RADIIENT-TECHNOLOGIES" }, { 0x001DC0, "Enphase Energy", "ENPHASE-ENERGY" }, { 0x001DC1, "Audinate Pty L", "AUDINATE-PTY-L" }, { 0x001DC2, "XORTEC OY", "XORTEC-OY" }, { 0x001DC3, "RIKOR TV, Ltd", "RIKOR-TV" }, { 0x001DC4, "AIOI Systems Co., Ltd.", "AIOI" }, { 0x001DC5, "Beijing Jiaxun Feihong Electricial Co., Ltd.", "BEIJING-JIAXUN-FEIHONG-ELECTRICIAL" }, { 0x001DC6, "SNR Inc.", "SNR" }, { 0x001DC7, "L-3 Communications Geneva Aerospace", "L-3-COMMUNICATION-GENEVA-AEROSPACE" }, { 0x001DC8, "Navionics Research Inc., dba SCADAmetrics", "NAVIONICS-RESEARCH-DBA-SCADAMETRICS" }, { 0x001DC9, "GainSpan Corp.", "GAINSPAN" }, { 0x001DCA, "PAV Electronics Limited", "PAV-ELECTRONICS" }, { 0x001DCB, "Exéns Development Oy", "EXNS-DEVELOPMENT-OY" }, { 0x001DCC, "Ayon Cyber Security, Inc", "AYON-CYBER-SECURITY" }, { 0x001DCD, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001DCE, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001DCF, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001DD0, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001DD1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001DD2, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001DD3, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001DD4, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001DD5, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001DD6, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001DD7, "Algolith", "ALGOLITH" }, { 0x001DD8, "Microsoft Corporation", "MICROSOFT" }, { 0x001DD9, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x001DDA, "Mikroelektronika spol. s r. o.", "MIKROELEKTRONIKA-SPOL-S-R-O" }, { 0x001DDB, "C-BEL Corporation", "C-BEL" }, { 0x001DDC, "HangZhou DeChangLong Tech&Info Co.,Ltd", "HANGZHOU-DECHANGLONG-TECH-INFO" }, { 0x001DDD, "DAT H.K. LIMITED", "DAT-H-K" }, { 0x001DDE, "Zhejiang Broadcast&Television Technology Co.,Ltd.", "ZHEJIANG-BROADCAST-TELEVISION" }, { 0x001DDF, "Sunitec Enterprise Co.,Ltd", "SUNITEC" }, { 0x001DE0, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001DE1, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001DE2, "Radionor Communications", "RADIONOR-COMMUNICATION" }, { 0x001DE3, "Intuicom", "INTUICOM" }, { 0x001DE4, "Visioneered Image Systems", "VISIONEERED-IMAGE" }, { 0x001DE5, "Cisco Systems, Inc", "CISCO" }, { 0x001DE6, "Cisco Systems, Inc", "CISCO" }, { 0x001DE7, "Marine Sonic Technology, Ltd.", "MARINE-SONIC" }, { 0x001DE8, "Nikko Denki Tsushin Corporation(NDTC)", "NIKKO-DENKI-TSUSHIN-NDTC" }, { 0x001DE9, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001DEA, "Commtest Instruments Ltd", "COMMTEST-INSTRUMENTS" }, { 0x001DEB, "DINEC International", "DINEC" }, { 0x001DEC, "Marusys", "MARUSYS" }, { 0x001DED, "Grid Net, Inc.", "GRID-NET" }, { 0x001DEE, "NEXTVISION SISTEMAS DIGITAIS DE TELEVISÃO LTDA.", "NEXTVISION-SISTEMAS-DIGITAIS-DE-TELEVISO-LTDA" }, { 0x001DEF, "TRIMM, INC.", "TRIMM" }, { 0x001DF0, "Vidient Systems, Inc.", "VIDIENT" }, { 0x001DF1, "Intego Systems, Inc.", "INTEGO" }, { 0x001DF2, "Netflix, Inc.", "NETFLIX" }, { 0x001DF3, "SBS Science & Technology Co., Ltd", "SBS-SCIENCE" }, { 0x001DF4, "Magellan Technology Pty Limited", "MAGELLAN-PTY" }, { 0x001DF5, "Sunshine Co,LTD", "SUNSHINE" }, { 0x001DF6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x001DF7, "R. STAHL Schaltgeräte GmbH", "R-STAHL-SCHALTGERAETE" }, { 0x001DF8, "Webpro Vision Technology Corporation", "WEBPRO-VISION" }, { 0x001DF9, "Cybiotronics (Far East) Limited", "CYBIOTRONICS-FAR-EAST" }, { 0x001DFA, "Fujian LANDI Commercial Equipment Co.,Ltd", "FUJIAN-LANDI-COMMERCIAL-EQUIPMENT" }, { 0x001DFB, "NETCLEUS Systems Corporation", "NETCLEUS" }, { 0x001DFC, "KSIC", "KSIC" }, { 0x001DFD, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001DFE, "Palm, Inc", "PALM" }, { 0x001DFF, "Network Critical Solutions Ltd", "NETWORK-CRITICAL-SOLUTIONS" }, { 0x001E00, "Shantou Institute of Ultrasonic Instruments", "SHANTOU-INSTITUTE-OF-ULTRASONIC-INSTRUMENTS" }, { 0x001E01, "Renesas Technology Sales Co., Ltd.", "RENESAS-SALES" }, { 0x001E02, "Sougou Keikaku Kougyou Co.,Ltd.", "SOUGOU-KEIKAKU-KOUGYOU" }, { 0x001E03, "LiComm Co., Ltd.", "LICOMM" }, { 0x001E04, "Hanson Research Corporation", "HANSON-RESEARCH" }, { 0x001E05, "Xseed Technologies & Computing", "XSEED-TECHNOLOGIES-COMPUTING" }, { 0x001E06, "WIBRAIN", "WIBRAIN" }, { 0x001E07, "Winy Technology Co., Ltd.", "WINY" }, { 0x001E08, "Centec Networks Inc", "CENTEC-NETWORKS" }, { 0x001E09, "ZEFATEK Co.,LTD", "ZEFATEK" }, { 0x001E0A, "Syba Tech Limited", "SYBA-TECH" }, { 0x001E0B, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x001E0C, "Sherwood Information Partners, Inc.", "SHERWOOD-INFORMATION-PARTNERS" }, { 0x001E0D, "Micran Ltd.", "MICRAN" }, { 0x001E0E, "MAXI VIEW HOLDINGS LIMITED", "MAXI-VIEW-HOLDINGS" }, { 0x001E0F, "Briot International", "BRIOT" }, { 0x001E10, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x001E11, "ELELUX INTERNATIONAL LTD", "ELELUX" }, { 0x001E12, "Ecolab", "ECOLAB" }, { 0x001E13, "Cisco Systems, Inc", "CISCO" }, { 0x001E14, "Cisco Systems, Inc", "CISCO" }, { 0x001E15, "Beech Hill Electronics", "BEECH-HILL-ELECTRONICS" }, { 0x001E16, "Keytronix", "KEYTRONIX" }, { 0x001E17, "STN BV", "STN" }, { 0x001E18, "Radio Activity srl", "RADIO-ACTIVITY-SRL" }, { 0x001E19, "GTRI", "GTRI" }, { 0x001E1A, "Best Source Taiwan Inc.", "BEST-SOURCE-TAIWAN" }, { 0x001E1B, "Digital Stream Technology, Inc.", "DIGITAL-STREAM" }, { 0x001E1C, "SWS Australia Pty Limited", "SWS-AUSTRALIA-PTY" }, { 0x001E1D, "East Coast Datacom, Inc.", "EAST-COAST-DATACOM" }, { 0x001E1E, "Honeywell Life Safety", "HONEYWELL-LIFE-SAFETY" }, { 0x001E1F, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001E20, "Intertain Inc.", "INTERTAIN" }, { 0x001E21, "Qisda Corporation", "QISDA" }, { 0x001E22, "ARVOO Imaging Products BV", "ARVOO-IMAGING-PRODUCTS" }, { 0x001E23, "Electronic Educational Devices, Inc", "EDUCATIONAL-DEVICES" }, { 0x001E24, "Zhejiang Bell Technology Co.,ltd", "ZHEJIANG-BELL" }, { 0x001E25, "INTEK DIGITAL", "INTEK-DIGITAL" }, { 0x001E26, "Digifriends Co. Ltd", "DIGIFRIENDS" }, { 0x001E27, "SBN TECH Co.,Ltd.", "SBN-TECH" }, { 0x001E28, "Lumexis Corporation", "LUMEXIS" }, { 0x001E29, "Hypertherm Inc", "HYPERTHERM" }, { 0x001E2A, "NETGEAR", "NETGEAR" }, { 0x001E2B, "Radio Systems Design, Inc.", "RADIO-DESIGN" }, { 0x001E2C, "CyVerse Corporation", "CYVERSE" }, { 0x001E2D, "STIM", "STIM" }, { 0x001E2E, "SIRTI S.p.A.", "SIRTI" }, { 0x001E2F, "DiMoto Pty Ltd", "DIMOTO-PTY" }, { 0x001E30, "Shireen Inc", "SHIREEN" }, { 0x001E31, "infomark", "INFOMARK" }, { 0x001E32, "Zensys", "ZENSYS" }, { 0x001E33, "INVENTEC CORPORATION", "INVENTEC" }, { 0x001E34, "CryptoMetrics", "CRYPTOMETRICS" }, { 0x001E35, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x001E36, "IPTE", "IPTE" }, { 0x001E37, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x001E38, "Bluecard Software Technology Co., Ltd.", "BLUECARD-SOFTWARE" }, { 0x001E39, "Comsys Communication Ltd.", "COMSYS-COMMUNICATION" }, { 0x001E3A, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001E3B, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001E3C, "Lyngbox Media AB", "LYNGBOX-MEDIA-AB" }, { 0x001E3D, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x001E3E, "KMW Inc.", "KMW" }, { 0x001E3F, "TrellisWare Technologies, Inc.", "TRELLISWARE-TECHNOLOGIES" }, { 0x001E40, "Shanghai DareGlobal Technologies Co.,Ltd", "SHANGHAI-DAREGLOBAL-TECHNOLOGIES" }, { 0x001E41, "Microwave Communication & Component, Inc.", "MICROWAVE-COMMUNICATION-COMPONENT" }, { 0x001E42, "Teltonika", "TELTONIKA" }, { 0x001E43, "AISIN CORPORATION", "AISIN" }, { 0x001E44, "SANTEC", "SANTEC" }, { 0x001E45, "Sony Corporation", "SONY" }, { 0x001E46, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001E47, "PT. Hariff Daya Tunggal Engineering", "PT-HARIFF-DAYA-TUNGGAL-ENGINEERING" }, { 0x001E48, "Wi-Links", "WI-LINKS" }, { 0x001E49, "Cisco Systems, Inc", "CISCO" }, { 0x001E4A, "Cisco Systems, Inc", "CISCO" }, { 0x001E4B, "City Theatrical", "CITY-THEATRICAL" }, { 0x001E4C, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x001E4D, "Welkin Sciences, LLC", "WELKIN-SCIENCES" }, { 0x001E4E, "DAKO EDV-Ingenieur- und Systemhaus GmbH", "DAKO-EDV-INGENIEUR-UND-SYSTEMHAUS" }, { 0x001E4F, "Dell Inc.", "DELL" }, { 0x001E50, "BATTISTONI RESEARCH", "BATTISTONI-RESEARCH" }, { 0x001E51, "Converter Industry Srl", "CONVERTER-INDUSTRY-SRL" }, { 0x001E52, "Apple, Inc.", "APPLE" }, { 0x001E53, "Further Tech Co., LTD", "FURTHER-TECH" }, { 0x001E54, "TOYO ELECTRIC Corporation", "TOYO-ELECTRIC" }, { 0x001E55, "COWON SYSTEMS,Inc.", "COWON" }, { 0x001E56, "Bally Wulff Entertainment GmbH", "BALLY-WULFF-ENTERTAINMENT" }, { 0x001E57, "ALCOMA, spol. s r.o.", "ALCOMA-SPOL-S-R-O" }, { 0x001E58, "D-Link Corporation", "D-LINK" }, { 0x001E59, "Silicon Turnkey Express, LLC", "SILICON-TURNKEY-EXPRESS" }, { 0x001E5A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001E5B, "Unitron Company, Inc.", "UNITRON-COMPANY" }, { 0x001E5C, "RB GeneralEkonomik", "RB-GENERALEKONOMIK" }, { 0x001E5D, "Holosys d.o.o.", "HOLOSYS-D-O-O" }, { 0x001E5E, "COmputime Ltd.", "COMPUTIME" }, { 0x001E5F, "KwikByte, LLC", "KWIKBYTE" }, { 0x001E60, "Digital Lighting Systems, Inc", "DIGITAL-LIGHTING" }, { 0x001E61, "ITEC GmbH", "ITEC" }, { 0x001E62, "Siemon", "SIEMON" }, { 0x001E63, "Vibro-Meter SA", "VIBRO-METER" }, { 0x001E64, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001E65, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001E66, "RESOL Elektronische Regelungen GmbH", "RESOL-ELEKTRONISCHE-REGELUNGEN" }, { 0x001E67, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001E68, "Quanta Computer Inc.", "QUANTA" }, { 0x001E69, "Thomson Inc.", "THOMSON" }, { 0x001E6A, "Beijing Bluexon Technology Co.,Ltd", "BEIJING-BLUEXON" }, { 0x001E6B, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x001E6C, "Opaque Systems", "OPAQUE" }, { 0x001E6D, "IT R&D Center", "IT-R-D-CENTER" }, { 0x001E6E, "Shenzhen First Mile Communications Ltd", "SHENZHEN-FIRST-MILE-COMMUNICATION" }, { 0x001E6F, "Magna-Power Electronics, Inc.", "MAGNA-POWER-ELECTRONICS" }, { 0x001E70, "Chelton Limited", "CHELTON" }, { 0x001E71, "MIrcom Group of Companies", "MIRCOM-GROUP-OF-COMPANIES" }, { 0x001E72, "PCS", "PCS" }, { 0x001E73, "zte corporation", "ZTE" }, { 0x001E74, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x001E75, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x001E76, "Thermo Fisher Scientific", "THERMO-FISHER-SCIENTIFIC" }, { 0x001E77, "Air2App", "AIR2APP" }, { 0x001E78, "Owitek Technology Ltd.,", "OWITEK" }, { 0x001E79, "Cisco Systems, Inc", "CISCO" }, { 0x001E7A, "Cisco Systems, Inc", "CISCO" }, { 0x001E7B, "R.I.CO. S.r.l.", "R-I" }, { 0x001E7C, "Taiwick Limited", "TAIWICK" }, { 0x001E7D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x001E7E, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001E7F, "CBM of America", "CBM-OF-AMERICA" }, { 0x001E80, "Icotera A/S", "ICOTERA-A/S" }, { 0x001E81, "CNB Technology Inc.", "CNB" }, { 0x001E82, "SanDisk Corporation", "SANDISK" }, { 0x001E83, "LAN/MAN Standards Association (LMSC)", "LAN/MAN-STANDARDS-ASSOCIATION-LMSC" }, { 0x001E84, "Pika Technologies Inc.", "PIKA-TECHNOLOGIES" }, { 0x001E85, "Lagotek Corporation", "LAGOTEK" }, { 0x001E86, "MEL Co.,Ltd.", "MEL" }, { 0x001E87, "Realease Limited", "REALEASE" }, { 0x001E88, "ANDOR SYSTEM SUPPORT CO., LTD.", "ANDOR-SYSTEM-SUPPORT" }, { 0x001E89, "CRFS Limited", "CRFS" }, { 0x001E8A, "eCopy, Inc", "ECOPY" }, { 0x001E8B, "Infra Access Korea Co., Ltd.", "INFRA-ACCESS-KOREA" }, { 0x001E8C, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x001E8D, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001E8E, "Hunkeler AG", "HUNKELER" }, { 0x001E8F, "CANON INC.", "CANON" }, { 0x001E90, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x001E91, "KIMIN Electronic Co., Ltd.", "KIMIN" }, { 0x001E92, "JEULIN S.A.", "JEULIN" }, { 0x001E93, "CiriTech Systems Inc", "CIRITECH" }, { 0x001E94, "SUPERCOM TECHNOLOGY CORPORATION", "SUPERCOM" }, { 0x001E95, "SIGMALINK", "SIGMALINK" }, { 0x001E96, "Sepura Plc", "SEPURA-PLC" }, { 0x001E97, "Medium Link System Technology CO., LTD,", "MEDIUM-LINK-SYSTEM" }, { 0x001E98, "GreenLine Communications", "GREENLINE-COMMUNICATION" }, { 0x001E99, "Vantanol Industrial Corporation", "VANTANOL-INDUSTRIAL" }, { 0x001E9A, "HAMILTON Bonaduz AG", "HAMILTON-BONADUZ" }, { 0x001E9B, "San-Eisha, Ltd.", "SAN-EISHA" }, { 0x001E9C, "Fidustron INC", "FIDUSTRON" }, { 0x001E9D, "Recall Technologies, Inc.", "RECALL-TECHNOLOGIES" }, { 0x001E9E, "ddm hopt + schuler Gmbh + Co. KG", "DDM-HOPT-+-SCHULER" }, { 0x001E9F, "Visioneering Systems, Inc.", "VISIONEERING" }, { 0x001EA0, "XLN-t", "XLN-T" }, { 0x001EA1, "Brunata a/s", "BRUNATA-A/S" }, { 0x001EA2, "Symx Systems, Inc.", "SYMX" }, { 0x001EA3, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001EA4, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001EA5, "ROBOTOUS, Inc.", "ROBOTOUS" }, { 0x001EA6, "Best IT World (India) Pvt. Ltd.", "BEST-IT-WORLD-INDIA-PVT" }, { 0x001EA7, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x001EA8, "Datang Mobile Communications Equipment CO.,LTD", "DATANG-MOBILE-COMMUNICATION-EQUIPMENT" }, { 0x001EA9, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x001EAA, "E-Senza Technologies GmbH", "E-SENZA-TECHNOLOGIES" }, { 0x001EAB, "TeleWell Oy", "TELEWELL-OY" }, { 0x001EAC, "Armadeus Systems", "ARMADEUS" }, { 0x001EAD, "Wingtech Group Limited", "WINGTECH-GROUP" }, { 0x001EAE, "Continental Automotive Systems Inc.", "CONTINENTAL-AUTOMOTIVE" }, { 0x001EAF, "Ophir Optronics Ltd", "OPHIR-OPTRONICS" }, { 0x001EB0, "ImesD Electronica S.L.", "IMESD-ELECTRONICA" }, { 0x001EB1, "Cryptsoft Pty Ltd", "CRYPTSOFT-PTY" }, { 0x001EB2, "LG Innotek", "LG-INNOTEK" }, { 0x001EB3, "Primex Wireless", "PRIMEX-WIRELESS" }, { 0x001EB4, "UNIFAT TECHNOLOGY LTD.", "UNIFAT" }, { 0x001EB5, "Ever Sparkle Technologies Ltd", "EVER-SPARKLE-TECHNOLOGIES" }, { 0x001EB6, "TAG Heuer SA", "TAG-HEUER" }, { 0x001EB7, "TBTech, Co., Ltd.", "TBTECH" }, { 0x001EB8, "Aloys, Inc", "ALOYS" }, { 0x001EB9, "Sing Fai Technology Limited", "SING-FAI" }, { 0x001EBA, "High Density Devices AS", "HIGH-DENSITY-DEVICES-AS" }, { 0x001EBB, "BLUELIGHT TECHNOLOGY INC.", "BLUELIGHT" }, { 0x001EBC, "WINTECH AUTOMATION CO.,LTD.", "WINTECH-AUTOMATION" }, { 0x001EBD, "Cisco Systems, Inc", "CISCO" }, { 0x001EBE, "Cisco Systems, Inc", "CISCO" }, { 0x001EBF, "Haas Automation Inc.", "HAAS-AUTOMATION" }, { 0x001EC0, "Microchip Technology Inc.", "MICROCHIP" }, { 0x001EC1, "3COM EUROPE LTD", "3COM" }, { 0x001EC2, "Apple, Inc.", "APPLE" }, { 0x001EC3, "Kozio, Inc.", "KOZIO" }, { 0x001EC4, "Celio Corp", "CELIO" }, { 0x001EC5, "Middle Atlantic Products Inc", "MIDDLE-ATLANTIC-PRODUCTS" }, { 0x001EC6, "Obvius Holdings LLC", "OBVIUS-HOLDINGS" }, { 0x001EC7, "2Wire Inc", "2WIRE" }, { 0x001EC8, "Rapid Mobile (Pty) Ltd", "RAPID-MOBILE-PTY" }, { 0x001EC9, "Dell Inc.", "DELL" }, { 0x001ECA, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001ECB, "RPC Energoautomatika Ltd", "RPC-ENERGOAUTOMATIKA" }, { 0x001ECC, "CDVI", "CDVI" }, { 0x001ECD, "KYLAND Technology Co. LTD", "KYLAND" }, { 0x001ECE, "BISA Technologies (Hong Kong) Limited", "BISA-TECHNOLOGIES-HONG-KONG" }, { 0x001ECF, "PHILIPS ELECTRONICS UK LTD", "PHILIPS-ELECTRONICS-UK" }, { 0x001ED0, "Ingespace", "INGESPACE" }, { 0x001ED1, "Keyprocessor B.V.", "KEYPROCESSOR-B-V" }, { 0x001ED2, "Ray Shine Video Technology Inc", "RAY-SHINE-VIDEO" }, { 0x001ED3, "Dot Technology Int'l Co., Ltd.", "DOT" }, { 0x001ED4, "Doble Engineering", "DOBLE-ENGINEERING" }, { 0x001ED5, "Tekon-Automatics", "TEKON-AUTOMATICS" }, { 0x001ED6, "Alentec & Orion AB", "ALENTEC-ORION-AB" }, { 0x001ED7, "H-Stream Wireless, Inc.", "H-STREAM-WIRELESS" }, { 0x001ED8, "Digital United Inc.", "DIGITAL-UNITED" }, { 0x001ED9, "Mitsubishi Precision Co.,LTd.", "MITSUBISHI-PRECISION" }, { 0x001EDA, "Wesemann Elektrotechniek B.V.", "WESEMANN-ELEKTROTECHNIEK-B-V" }, { 0x001EDB, "Giken Trastem Co., Ltd.", "GIKEN-TRASTEM" }, { 0x001EDC, "Sony Corporation", "SONY" }, { 0x001EDD, "WASKO S.A.", "WASKO" }, { 0x001EDE, "BYD COMPANY LIMITED", "BYD-COMPANY" }, { 0x001EDF, "Master Industrialization Center Kista", "MASTER-INDUSTRIALIZATION-CENTER-KISTA" }, { 0x001EE0, "Urmet SpA", "URMET-SPA" }, { 0x001EE1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x001EE2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x001EE3, "T&W Electronics (ShenZhen) Co.,Ltd", "T-W-ELECTRONICS-SHENZHEN" }, { 0x001EE4, "ACS Solutions France", "ACS-SOLUTIONS-FRANCE" }, { 0x001EE5, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x001EE6, "Shenzhen Advanced Video Info-Tech Co., Ltd.", "SHENZHEN-ADVANCED-VIDEO-INFO-TECH" }, { 0x001EE7, "Epic Systems Inc", "EPIC" }, { 0x001EE8, "Mytek", "MYTEK" }, { 0x001EE9, "Stoneridge Electronics AB", "STONERIDGE-ELECTRONICS-AB" }, { 0x001EEA, "Sensor Switch, Inc.", "SENSOR-SWITCH" }, { 0x001EEB, "Talk-A-Phone Co.", "TALK-A-PHONE" }, { 0x001EEC, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x001EED, "Adventiq Ltd.", "ADVENTIQ" }, { 0x001EEE, "ETL Systems Ltd", "ETL" }, { 0x001EEF, "Cantronic International Limited", "CANTRONIC" }, { 0x001EF0, "Gigafin Networks", "GIGAFIN-NETWORKS" }, { 0x001EF1, "Servimat", "SERVIMAT" }, { 0x001EF2, "Micro Motion Inc", "MICRO-MOTION" }, { 0x001EF3, "From2", "FROM2" }, { 0x001EF4, "L-3 Communications Display Systems", "L-3-COMMUNICATION-DISPLAY" }, { 0x001EF5, "Hitek Automated Inc.", "HITEK-AUTOMATED" }, { 0x001EF6, "Cisco Systems, Inc", "CISCO" }, { 0x001EF7, "Cisco Systems, Inc", "CISCO" }, { 0x001EF8, "Emfinity Inc.", "EMFINITY" }, { 0x001EF9, "Pascom Kommunikations systeme GmbH.", "PASCOM-KOMMUNIKATIONS-SYSTEME" }, { 0x001EFA, "PROTEI Ltd.", "PROTEI" }, { 0x001EFB, "Trio Motion Technology Ltd", "TRIO-MOTION" }, { 0x001EFC, "JSC MASSA-K", "JSC-MASSA-K" }, { 0x001EFD, "Microbit 2.0 AB", "MICROBIT-2-0-AB" }, { 0x001EFE, "LEVEL s.r.o.", "LEVEL-S-R-O" }, { 0x001EFF, "Mueller-Elektronik GmbH & Co. KG", "MUELLER-ELEKTRONIK" }, { 0x001F00, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001F01, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001F02, "Pixelmetrix Corporation Pte Ltd", "PIXELMETRIX-PTE" }, { 0x001F03, "NUM AG", "NUM" }, { 0x001F04, "Granch Ltd.", "GRANCH" }, { 0x001F05, "iTAS Technology Corp.", "ITAS" }, { 0x001F06, "Integrated Dispatch Solutions", "INTEGRATED-DISPATCH-SOLUTIONS" }, { 0x001F07, "AZTEQ Mobile", "AZTEQ-MOBILE" }, { 0x001F08, "RISCO LTD", "RISCO" }, { 0x001F09, "Jastec", "JASTEC" }, { 0x001F0A, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001F0B, "Federal State Unitary Enterprise Industrial UnionElectropribor", "FEDERAL-STATE-UNITARY-INDUSTRIAL-UNIONELECTROPRIBOR" }, { 0x001F0C, "Intelligent Digital Services GmbH", "INTELLIGENT-DIGITAL-SERVICES" }, { 0x001F0D, "L3 Communications - Telemetry West", "L3-COMMUNICATION-TELEMETRY-WEST" }, { 0x001F0E, "Japan Kyastem Co., Ltd", "JAPAN-KYASTEM" }, { 0x001F0F, "Select Engineered Systems", "SELECT-ENGINEERED" }, { 0x001F10, "TOLEDO DO BRASIL INDUSTRIA DE BALANCAS LTDA", "TOLEDO-DO-BRASIL-INDUSTRIA-DE-BALANCAS-LTDA" }, { 0x001F11, "OPENMOKO, INC.", "OPENMOKO" }, { 0x001F12, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x001F13, "S.& A.S. Ltd.", "S" }, { 0x001F14, "NexG", "NEXG" }, { 0x001F15, "Bioscrypt Inc", "BIOSCRYPT" }, { 0x001F16, "Wistron Corporation", "WISTRON" }, { 0x001F17, "IDX Company, Ltd.", "IDX-COMPANY" }, { 0x001F18, "Hakusan.Mfg.Co,.Ltd", "HAKUSAN-MFG" }, { 0x001F19, "BEN-RI ELECTRONICA S.A.", "BEN-RI-ELECTRONICA" }, { 0x001F1A, "Prominvest", "PROMINVEST" }, { 0x001F1B, "RoyalTek Company Ltd.", "ROYALTEK-COMPANY" }, { 0x001F1C, "KOBISHI ELECTRIC Co.,Ltd.", "KOBISHI-ELECTRIC" }, { 0x001F1D, "Atlas Material Testing Technology LLC", "ATLAS-MATERIAL-TESTING" }, { 0x001F1E, "Astec Technology Co., Ltd", "ASTEC" }, { 0x001F1F, "Edimax Technology Co. Ltd.", "EDIMAX" }, { 0x001F20, "Logitech Europe SA", "LOGITECH-EUROPE" }, { 0x001F21, "Inner Mongolia Yin An Science & Technology Development Co.,L", "INNER-MONGOLIA-YIN-AN-SCIENCE-DEVELOPMENT-L" }, { 0x001F22, "Source Photonics, Inc.", "SOURCE-PHOTONICS" }, { 0x001F23, "Interacoustics", "INTERACOUSTICS" }, { 0x001F24, "DIGITVIEW TECHNOLOGY CO., LTD.", "DIGITVIEW" }, { 0x001F25, "MBS GmbH", "MBS" }, { 0x001F26, "Cisco Systems, Inc", "CISCO" }, { 0x001F27, "Cisco Systems, Inc", "CISCO" }, { 0x001F28, "HPN Supply Chain", "HPN-SUPPLY-CHAIN" }, { 0x001F29, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x001F2A, "ACCM", "ACCM" }, { 0x001F2B, "Orange Logic", "ORANGE-LOGIC" }, { 0x001F2C, "Starbridge Networks", "STARBRIDGE-NETWORKS" }, { 0x001F2D, "Electro-Optical Imaging, Inc.", "ELECTRO-OPTICAL-IMAGING" }, { 0x001F2E, "Triangle Research Int'l Pte Ltd", "TRIANGLE-RESEARCH-INT-L-PTE" }, { 0x001F2F, "Berker GmbH & Co. KG", "BERKER" }, { 0x001F30, "Travelping", "TRAVELPING" }, { 0x001F31, "Radiocomp", "RADIOCOMP" }, { 0x001F32, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x001F33, "NETGEAR", "NETGEAR" }, { 0x001F34, "Lung Hwa Electronics Co., Ltd.", "LUNG-HWA-ELECTRONICS" }, { 0x001F35, "AIR802 LLC", "AIR802" }, { 0x001F36, "Bellwin Information Co. Ltd.,", "BELLWIN-INFORMATION" }, { 0x001F37, "Genesis I&C", "GENESIS-I-C" }, { 0x001F38, "POSITRON", "POSITRON" }, { 0x001F39, "Construcciones y Auxiliar de Ferrocarriles, S.A.", "CONSTRUCCIONES-Y-AUXILIAR-DE-FERROCARRILES" }, { 0x001F3A, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x001F3B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001F3C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x001F3D, "Qbit GmbH", "QBIT" }, { 0x001F3E, "RP-Technik e.K.", "RP-TECHNIK-E-K" }, { 0x001F3F, "AVM GmbH", "AVM" }, { 0x001F40, "Speakercraft Inc.", "SPEAKERCRAFT" }, { 0x001F41, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x001F42, "Etherstack plc", "ETHERSTACK-PLC" }, { 0x001F43, "ENTES ELEKTRONIK", "ENTES-ELEKTRONIK" }, { 0x001F44, "GE Transportation Systems", "GE-TRANSPORTATION" }, { 0x001F45, "Enterasys", "ENTERASYS" }, { 0x001F46, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001F47, "MCS Logic Inc.", "MCS-LOGIC" }, { 0x001F48, "Mojix Inc.", "MOJIX" }, { 0x001F49, "Manhattan TV Ltd", "MANHATTAN-TV" }, { 0x001F4A, "Albentia Systems S.A.", "ALBENTIA" }, { 0x001F4B, "Lineage Power", "LINEAGE-POWER" }, { 0x001F4C, "Roseman Engineering Ltd", "ROSEMAN-ENGINEERING" }, { 0x001F4D, "Segnetics LLC", "SEGNETICS" }, { 0x001F4E, "ConMed Linvatec", "CONMED-LINVATEC" }, { 0x001F4F, "Thinkware Co. Ltd.", "THINKWARE" }, { 0x001F50, "Swissdis AG", "SWISSDIS" }, { 0x001F51, "HD Communications Corp", "HD-COMMUNICATION" }, { 0x001F52, "UVT Unternehmensberatung fur Verkehr und Technik GmbH", "UVT-UNTERNEHMENSBERATUNG-FUR-VERKEHR-UND-TECHNIK" }, { 0x001F53, "GEMAC Chemnitz GmbH", "GEMAC-CHEMNITZ" }, { 0x001F54, "Lorex Technology Inc.", "LOREX" }, { 0x001F55, "Honeywell Security (China) Co., Ltd.", "HONEYWELL-SECURITY-CHINA" }, { 0x001F56, "DIGITAL FORECAST", "DIGITAL-FORECAST" }, { 0x001F57, "Phonik Innovation Co.,LTD", "PHONIK-INNOVATION" }, { 0x001F58, "EMH Energiemesstechnik GmbH", "EMH-ENERGIEMESSTECHNIK" }, { 0x001F59, "Kronback Tracers", "KRONBACK-TRACERS" }, { 0x001F5A, "Beckwith Electric Co.", "BECKWITH-ELECTRIC" }, { 0x001F5B, "Apple, Inc.", "APPLE" }, { 0x001F5C, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001F5D, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001F5E, "Dyna Technology Co.,Ltd.", "DYNA" }, { 0x001F5F, "Blatand GmbH", "BLATAND" }, { 0x001F60, "COMPASS SYSTEMS CORP.", "COMPASS" }, { 0x001F61, "Talent Communication Networks Inc.", "TALENT-COMMUNICATION-NETWORKS" }, { 0x001F62, "JSC Stilsoft", "JSC-STILSOFT" }, { 0x001F63, "JSC Goodwin-Europa", "JSC-GOODWIN-EUROPA" }, { 0x001F64, "Beijing Autelan Technology Inc.", "BEIJING-AUTELAN" }, { 0x001F65, "KOREA ELECTRIC TERMINAL CO., LTD.", "KOREA-ELECTRIC-TERMINAL" }, { 0x001F66, "PLANAR LLC", "PLANAR" }, { 0x001F67, "Hitachi,Ltd.", "HITACHI" }, { 0x001F68, "Martinsson Elektronik AB", "MARTINSSON-ELEKTRONIK-AB" }, { 0x001F69, "Pingood Technology Co., Ltd.", "PINGOOD" }, { 0x001F6A, "PacketFlux Technologies, Inc.", "PACKETFLUX-TECHNOLOGIES" }, { 0x001F6B, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x001F6C, "Cisco Systems, Inc", "CISCO" }, { 0x001F6D, "Cisco Systems, Inc", "CISCO" }, { 0x001F6E, "Vtech Engineering Corporation", "VTECH-ENGINEERING" }, { 0x001F6F, "Fujian Sunnada Communication Co.,Ltd.", "FUJIAN-SUNNADA-COMMUNICATION" }, { 0x001F70, "Botik Technologies LTD", "BOTIK-TECHNOLOGIES" }, { 0x001F71, "xG Technology, Inc.", "XG" }, { 0x001F72, "QingDao Hiphone Technology Co,.Ltd", "QINGDAO-HIPHONE" }, { 0x001F73, "Teraview Technology Co., Ltd.", "TERAVIEW" }, { 0x001F74, "Eigen Development", "EIGEN-DEVELOPMENT" }, { 0x001F75, "GiBahn Media", "GIBAHN-MEDIA" }, { 0x001F76, "AirLogic Systems Inc.", "AIRLOGIC" }, { 0x001F77, "HEOL DESIGN", "HEOL-DESIGN" }, { 0x001F78, "Blue Fox Porini Textile", "BLUE-FOX-PORINI-TEXTILE" }, { 0x001F79, "Lodam Electronics A/S", "LODAM-ELECTRONICS-A/S" }, { 0x001F7A, "WiWide Inc.", "WIWIDE" }, { 0x001F7B, "TechNexion Ltd.", "TECHNEXION" }, { 0x001F7C, "Witelcom AS", "WITELCOM-AS" }, { 0x001F7D, "Embedded Wireless GmbH", "EMBEDDED-WIRELESS" }, { 0x001F7E, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001F7F, "Phabrix Limited", "PHABRIX" }, { 0x001F80, "Lucas Holding bv", "LUCAS-HOLDING" }, { 0x001F81, "Accel Semiconductor Corp", "ACCEL-SEMICONDUCTOR" }, { 0x001F82, "Cal-Comp Electronics & Communications Company Ltd.", "CAL-COMP-ELECTRONICS-COMMUNICATION-COMPANY" }, { 0x001F83, "Teleplan Technology Services Sdn Bhd", "TELEPLAN-SERVICES" }, { 0x001F84, "Gigle Semiconductor", "GIGLE-SEMICONDUCTOR" }, { 0x001F85, "Apriva ISS, LLC", "APRIVA-ISS" }, { 0x001F86, "digEcor", "DIGECOR" }, { 0x001F87, "Skydigital Inc.", "SKYDIGITAL" }, { 0x001F88, "FMS Force Measuring Systems AG", "FMS-FORCE-MEASURING" }, { 0x001F89, "Signalion GmbH", "SIGNALION" }, { 0x001F8A, "Ellion Digital Inc.", "ELLION-DIGITAL" }, { 0x001F8B, "Cache IQ", "CACHE-IQ" }, { 0x001F8C, "CCS Inc.", "CCS" }, { 0x001F8D, "Ingenieurbuero Stark GmbH und Ko. KG", "INGENIEURBUERO-STARK-UND-KO" }, { 0x001F8E, "Metris USA Inc.", "METRIS-USA" }, { 0x001F8F, "Shanghai Bellmann Digital Source Co.,Ltd.", "SHANGHAI-BELLMANN-DIGITAL-SOURCE" }, { 0x001F90, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x001F91, "DBS Lodging Technologies, LLC", "DBS-LODGING-TECHNOLOGIES" }, { 0x001F92, "Motorola Solutions Inc.", "MOTOROLA-SOLUTIONS" }, { 0x001F93, "Xiotech Corporation", "XIOTECH" }, { 0x001F94, "Lascar Electronics Ltd", "LASCAR-ELECTRONICS" }, { 0x001F95, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x001F96, "APROTECH CO.LTD", "APROTECH" }, { 0x001F97, "BERTANA srl", "BERTANA-SRL" }, { 0x001F98, "DAIICHI-DENTSU LTD.", "DAIICHI-DENTSU" }, { 0x001F99, "SERONICS co.ltd", "SERONICS" }, { 0x001F9A, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001F9B, "POSBRO", "POSBRO" }, { 0x001F9C, "LEDCO", "LEDCO" }, { 0x001F9D, "Cisco Systems, Inc", "CISCO" }, { 0x001F9E, "Cisco Systems, Inc", "CISCO" }, { 0x001F9F, "Thomson Telecom Belgium", "THOMSON-TELECOM-BELGIUM" }, { 0x001FA0, "A10 Networks", "A10-NETWORKS" }, { 0x001FA1, "Gtran Inc", "GTRAN" }, { 0x001FA2, "Datron World Communications, Inc.", "DATRON-WORLD-COMMUNICATION" }, { 0x001FA3, "T&W Electronics(Shenzhen)Co.,Ltd.", "T-W-ELECTRONICS-SHENZHEN" }, { 0x001FA4, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0x001FA5, "Blue-White Industries", "BLUE-WHITE-INDUSTRIES" }, { 0x001FA6, "Stilo srl", "STILO-SRL" }, { 0x001FA7, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x001FA8, "Smart Energy Instruments Inc.", "SMART-ENERGY-INSTRUMENTS" }, { 0x001FA9, "Atlanta DTH, Inc.", "ATLANTA-DTH" }, { 0x001FAA, "Taseon, Inc.", "TASEON" }, { 0x001FAB, "I.S HIGH TECH.INC", "I-S-HIGH-TECH" }, { 0x001FAC, "Goodmill Systems Ltd", "GOODMILL" }, { 0x001FAD, "Brown Innovations, Inc", "BROWN-INNOVATIONS" }, { 0x001FAE, "Blick South Africa (Pty) Ltd", "BLICK-SOUTH-AFRICA-PTY" }, { 0x001FAF, "NextIO, Inc.", "NEXTIO" }, { 0x001FB0, "TimeIPS, Inc.", "TIMEIPS" }, { 0x001FB1, "Cybertech Inc.", "CYBERTECH" }, { 0x001FB2, "Sontheim Industrie Elektronik GmbH", "SONTHEIM-INDUSTRIE-ELEKTRONIK" }, { 0x001FB3, "2Wire Inc", "2WIRE" }, { 0x001FB4, "SmartShare Systems", "SMARTSHARE" }, { 0x001FB5, "I/O Interconnect Inc.", "I/O-INTERCONNECT" }, { 0x001FB6, "Chi Lin Technology Co., Ltd.", "CHI-LIN" }, { 0x001FB7, "WiMate Technologies Corp.", "WIMATE-TECHNOLOGIES" }, { 0x001FB8, "Universal Remote Control, Inc.", "UNIVERSAL-REMOTE-CONTROL" }, { 0x001FB9, "Paltronics", "PALTRONICS" }, { 0x001FBA, "Boyoung Tech", "BOYOUNG-TECH" }, { 0x001FBB, "Xenatech Co.,LTD", "XENATECH" }, { 0x001FBC, "EVGA Corporation", "EVGA" }, { 0x001FBD, "Kyocera Wireless Corp.", "KYOCERA-WIRELESS" }, { 0x001FBE, "Shenzhen Mopnet Industrial Co.,Ltd", "SHENZHEN-MOPNET-INDUSTRIAL" }, { 0x001FBF, "Fulhua Microelectronics Corp. Taiwan Branch", "FULHUA-MICROELECTRONICS-TAIWAN-BRANCH" }, { 0x001FC0, "Control Express Finland Oy", "CONTROL-EXPRESS-FINLAND-OY" }, { 0x001FC1, "Hanlong Technology Co.,LTD", "HANLONG" }, { 0x001FC2, "Jow Tong Technology Co Ltd", "JOW-TONG" }, { 0x001FC3, "SmartSynch, Inc", "SMARTSYNCH" }, { 0x001FC4, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x001FC5, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x001FC6, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x001FC7, "Casio Hitachi Mobile Communications Co., Ltd.", "CASIO-HITACHI-MOBILE-COMMUNICATION" }, { 0x001FC8, "Up-Today Industrial Co., Ltd.", "UP-TODAY-INDUSTRIAL" }, { 0x001FC9, "Cisco Systems, Inc", "CISCO" }, { 0x001FCA, "Cisco Systems, Inc", "CISCO" }, { 0x001FCB, "NIW Solutions", "NIW-SOLUTIONS" }, { 0x001FCC, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x001FCD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x001FCE, "QTECH LLC", "QTECH" }, { 0x001FCF, "MSI Technology GmbH", "MSI" }, { 0x001FD0, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x001FD1, "OPTEX CO.,LTD.", "OPTEX" }, { 0x001FD2, "COMMTECH TECHNOLOGY MACAO COMMERCIAL OFFSHORE LTD.", "COMMTECH-MACAO-COMMERCIAL-OFFSHORE" }, { 0x001FD3, "RIVA Networks Inc.", "RIVA-NETWORKS" }, { 0x001FD4, "4IPNET, INC.", "4IPNET" }, { 0x001FD5, "MICRORISC s.r.o.", "MICRORISC-S-R-O" }, { 0x001FD6, "Shenzhen Allywll", "SHENZHEN-ALLYWLL" }, { 0x001FD7, "TELERAD SA", "TELERAD" }, { 0x001FD8, "A-TRUST COMPUTER CORPORATION", "A-TRUST" }, { 0x001FD9, "RSD Communications Ltd", "RSD-COMMUNICATION" }, { 0x001FDA, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x001FDB, "Network Supply Corp.,", "NETWORK-SUPPLY" }, { 0x001FDC, "Mobile Safe Track Ltd", "MOBILE-SAFE-TRACK" }, { 0x001FDD, "GDI LLC", "GDI" }, { 0x001FDE, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001FDF, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x001FE0, "EdgeVelocity Corp", "EDGEVELOCITY" }, { 0x001FE1, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x001FE2, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x001FE3, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x001FE4, "Sony Corporation", "SONY" }, { 0x001FE5, "In-Circuit GmbH", "IN-CIRCUIT" }, { 0x001FE6, "Alphion Corporation", "ALPHION" }, { 0x001FE7, "Simet", "SIMET" }, { 0x001FE8, "KURUSUGAWA Electronics Industry Inc,.", "KURUSUGAWA-ELECTRONICS-INDUSTRY" }, { 0x001FE9, "Printrex, Inc.", "PRINTREX" }, { 0x001FEA, "Applied Media Technologies Corporation", "APPLIED-MEDIA-TECHNOLOGIES" }, { 0x001FEB, "Trio Datacom Pty Ltd", "TRIO-DATACOM-PTY" }, { 0x001FEC, "Synapse Électronique", "SYNAPSE-LECTRONIQUE" }, { 0x001FED, "Tecan Systems Inc.", "TECAN" }, { 0x001FEE, "ubisys technologies GmbH", "UBISYS-TECHNOLOGIES" }, { 0x001FEF, "SHINSEI INDUSTRIES CO.,LTD", "SHINSEI-INDUSTRIES" }, { 0x001FF0, "Audio Partnership", "AUDIO-PARTNERSHIP" }, { 0x001FF1, "Paradox Hellas S.A.", "PARADOX-HELLAS" }, { 0x001FF2, "VIA Technologies, Inc.", "VIA-TECHNOLOGIES" }, { 0x001FF3, "Apple, Inc.", "APPLE" }, { 0x001FF4, "Power Monitors, Inc.", "POWER-MONITORS" }, { 0x001FF5, "Kongsberg Defence & Aerospace", "KONGSBERG-DEFENCE-AEROSPACE" }, { 0x001FF6, "PS Audio International", "PS-AUDIO" }, { 0x001FF7, "Nakajima All Precision Co., Ltd.", "NAKAJIMA-ALL-PRECISION" }, { 0x001FF8, "Siemens AG, Sector Industry, Drive Technologies, Motion Control Systems", "SIEMENS-SECTOR-INDUSTRY-DRIVE-TECHNOLOGIES-MOTION-CONTROL" }, { 0x001FF9, "Advanced Knowledge Associates", "ADVANCED-KNOWLEDGE-ASSOCIATES" }, { 0x001FFA, "Coretree, Co, Ltd", "CORETREE" }, { 0x001FFB, "Green Packet Bhd", "GREEN-PACKET" }, { 0x001FFC, "Riccius+Sohn GmbH", "RICCIUS+SOHN" }, { 0x001FFD, "Indigo Mobile Technologies Corp.", "INDIGO-MOBILE-TECHNOLOGIES" }, { 0x001FFE, "HPN Supply Chain", "HPN-SUPPLY-CHAIN" }, { 0x001FFF, "Respironics, Inc.", "RESPIRONICS" }, { 0x002000, "LEXMARK INTERNATIONAL, INC.", "LEXMARK" }, { 0x002001, "DSP SOLUTIONS, INC.", "DSP-SOLUTIONS" }, { 0x002002, "SERITECH ENTERPRISE CO., LTD.", "SERITECH" }, { 0x002003, "PIXEL POWER LTD.", "PIXEL-POWER" }, { 0x002004, "YAMATAKE-HONEYWELL CO., LTD.", "YAMATAKE-HONEYWELL" }, { 0x002005, "SIMPLE TECHNOLOGY", "SIMPLE" }, { 0x002006, "GARRETT COMMUNICATIONS, INC.", "GARRETT-COMMUNICATION" }, { 0x002007, "SFA, INC.", "SFA" }, { 0x002008, "CABLE & COMPUTER TECHNOLOGY", "CABLE" }, { 0x002009, "PACKARD BELL ELEC., INC.", "PACKARD-BELL-ELEC" }, { 0x00200A, "SOURCE-COMM CORP.", "SOURCE-COMM" }, { 0x00200B, "OCTAGON SYSTEMS CORP.", "OCTAGON" }, { 0x00200C, "ADASTRA SYSTEMS CORP.", "ADASTRA" }, { 0x00200D, "CARL ZEISS", "CARL-ZEISS" }, { 0x00200E, "NSSLGlobal Technologies AS", "NSSLGLOBAL-TECHNOLOGIES-AS" }, { 0x00200F, "EBRAINS Inc", "EBRAINS" }, { 0x002010, "JEOL SYSTEM TECHNOLOGY CO. LTD", "JEOL-SYSTEM" }, { 0x002011, "CANOPUS CO., LTD.", "CANOPUS" }, { 0x002012, "CAMTRONICS MEDICAL SYSTEMS", "CAMTRONICS-MEDICAL" }, { 0x002013, "DIVERSIFIED TECHNOLOGY, INC.", "DIVERSIFIED" }, { 0x002014, "GLOBAL VIEW CO., LTD.", "GLOBAL-VIEW" }, { 0x002015, "ACTIS COMPUTER SA", "ACTIS" }, { 0x002016, "SHOWA ELECTRIC WIRE & CABLE CO", "SHOWA-ELECTRIC-WIRE-CABLE" }, { 0x002017, "ORBOTECH", "ORBOTECH" }, { 0x002018, "CIS TECHNOLOGY INC.", "CIS" }, { 0x002019, "OHLER GMBH", "OHLER" }, { 0x00201A, "MRV Communications, Inc.", "MRV-COMMUNICATION" }, { 0x00201B, "NORTHERN TELECOM/NETWORK", "NORTHERN-TELECOM/NETWORK" }, { 0x00201C, "EXCEL, INC.", "EXCEL" }, { 0x00201D, "KATANA PRODUCTS", "KATANA-PRODUCTS" }, { 0x00201E, "NETQUEST CORPORATION", "NETQUEST" }, { 0x00201F, "BEST POWER TECHNOLOGY, INC.", "BEST-POWER" }, { 0x002020, "MEGATRON COMPUTER INDUSTRIES PTY, LTD.", "MEGATRON-INDUSTRIES-PTY" }, { 0x002021, "ALGORITHMS SOFTWARE PVT. LTD.", "ALGORITHMS-SOFTWARE-PVT" }, { 0x002022, "NMS Communications", "NMS-COMMUNICATION" }, { 0x002023, "T.C. TECHNOLOGIES PTY. LTD", "T-C-TECHNOLOGIES-PTY" }, { 0x002024, "PACIFIC COMMUNICATION SCIENCES", "PACIFIC-COMMUNICATION-SCIENCES" }, { 0x002025, "CONTROL TECHNOLOGY, INC.", "CONTROL" }, { 0x002026, "AMKLY SYSTEMS, INC.", "AMKLY" }, { 0x002027, "MING FORTUNE INDUSTRY CO., LTD", "MING-FORTUNE-INDUSTRY" }, { 0x002028, "WEST EGG SYSTEMS, INC.", "WEST-EGG" }, { 0x002029, "TELEPROCESSING PRODUCTS, INC.", "TELEPROCESSING-PRODUCTS" }, { 0x00202A, "N.V. DZINE", "N-V-DZINE" }, { 0x00202B, "ADVANCED TELECOMMUNICATIONS MODULES, LTD.", "ADVANCED-TELECOMMUNICATIONS-MODULES" }, { 0x00202C, "WELLTRONIX CO., LTD.", "WELLTRONIX" }, { 0x00202D, "TAIYO CORPORATION", "TAIYO" }, { 0x00202E, "DAYSTAR DIGITAL", "DAYSTAR-DIGITAL" }, { 0x00202F, "ZETA COMMUNICATIONS, LTD.", "ZETA-COMMUNICATION" }, { 0x002030, "ANALOG & DIGITAL SYSTEMS", "ANALOG-DIGITAL" }, { 0x002031, "Tattile SRL", "TATTILE-SRL" }, { 0x002032, "ALCATEL TAISEL", "ALCATEL-TAISEL" }, { 0x002033, "SYNAPSE TECHNOLOGIES, INC.", "SYNAPSE-TECHNOLOGIES" }, { 0x002034, "ROTEC INDUSTRIEAUTOMATION GMBH", "ROTEC-INDUSTRIEAUTOMATION" }, { 0x002035, "IBM Corp", "IBM" }, { 0x002036, "BMC SOFTWARE", "BMC-SOFTWARE" }, { 0x002037, "Seagate Technology", "SEAGATE" }, { 0x002038, "VME MICROSYSTEMS INTERNATIONAL CORPORATION", "VME-MICROSYSTEMS" }, { 0x002039, "SCINETS", "SCINETS" }, { 0x00203A, "DIGITAL BI0METRICS INC.", "DIGITAL-BI0METRICS" }, { 0x00203B, "WISDM LTD.", "WISDM" }, { 0x00203C, "EUROTIME AB", "EUROTIME-AB" }, { 0x00203D, "Honeywell Environmental & Combustion Controls", "HONEYWELL-ENVIRONMENTAL-COMBUSTION-CONTROLS" }, { 0x00203E, "LogiCan Technologies, Inc.", "LOGICAN-TECHNOLOGIES" }, { 0x00203F, "JUKI CORPORATION", "JUKI" }, { 0x002040, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x002041, "DATA NET", "DATA-NET" }, { 0x002042, "DATAMETRICS CORP.", "DATAMETRICS" }, { 0x002043, "NEURON COMPANY LIMITED", "NEURON-COMPANY" }, { 0x002044, "GENITECH PTY LTD", "GENITECH-PTY" }, { 0x002045, "ION Networks, Inc.", "ION-NETWORKS" }, { 0x002046, "CIPRICO, INC.", "CIPRICO" }, { 0x002047, "STEINBRECHER CORP.", "STEINBRECHER" }, { 0x002048, "Marconi Communications", "MARCONI-COMMUNICATION" }, { 0x002049, "COMTRON, INC.", "COMTRON" }, { 0x00204A, "PRONET GMBH", "PRONET" }, { 0x00204B, "AUTOCOMPUTER CO., LTD.", "AUTOCOMPUTER" }, { 0x00204C, "MITRON COMPUTER PTE LTD.", "MITRON-PTE" }, { 0x00204D, "INOVIS GMBH", "INOVIS" }, { 0x00204E, "NETWORK SECURITY SYSTEMS, INC.", "NETWORK-SECURITY" }, { 0x00204F, "DEUTSCHE AEROSPACE AG", "DEUTSCHE-AEROSPACE" }, { 0x002050, "KOREA COMPUTER INC.", "KOREA" }, { 0x002051, "Verilink Corporation", "VERILINK" }, { 0x002052, "RAGULA SYSTEMS", "RAGULA" }, { 0x002053, "HUNTSVILLE MICROSYSTEMS, INC.", "HUNTSVILLE-MICROSYSTEMS" }, { 0x002054, "Sycamore Networks", "SYCAMORE-NETWORKS" }, { 0x002055, "ALTECH CO., LTD.", "ALTECH" }, { 0x002056, "NEOPRODUCTS", "NEOPRODUCTS" }, { 0x002057, "TITZE DATENTECHNIK GmbH", "TITZE-DATENTECHNIK" }, { 0x002058, "ALLIED SIGNAL INC.", "ALLIED-SIGNAL" }, { 0x002059, "MIRO COMPUTER PRODUCTS AG", "MIRO-PRODUCTS" }, { 0x00205A, "COMPUTER IDENTICS", "IDENTICS" }, { 0x00205B, "Kentrox, LLC", "KENTROX" }, { 0x00205C, "InterNet Systems of Florida, Inc.", "INTERNET-OF-FLORIDA" }, { 0x00205D, "NANOMATIC OY", "NANOMATIC-OY" }, { 0x00205E, "CASTLE ROCK, INC.", "CASTLE-ROCK" }, { 0x00205F, "GAMMADATA COMPUTER GMBH", "GAMMADATA" }, { 0x002060, "ALCATEL ITALIA S.p.A.", "ALCATEL-ITALIA" }, { 0x002061, "GarrettCom, Inc.", "GARRETTCOM" }, { 0x002062, "SCORPION LOGIC, LTD.", "SCORPION-LOGIC" }, { 0x002063, "WIPRO INFOTECH LTD.", "WIPRO-INFOTECH" }, { 0x002064, "PROTEC MICROSYSTEMS, INC.", "PROTEC-MICROSYSTEMS" }, { 0x002065, "SUPERNET NETWORKING INC.", "SUPERNET-NETWORKING" }, { 0x002066, "GENERAL MAGIC, INC.", "GENERAL-MAGIC" }, { 0x002067, "Private", "PRIVATE" }, { 0x002068, "ISDYNE", "ISDYNE" }, { 0x002069, "ISDN SYSTEMS CORPORATION", "ISDN" }, { 0x00206A, "OSAKA COMPUTER CORP.", "OSAKA" }, { 0x00206B, "KONICA MINOLTA HOLDINGS, INC.", "KONICA-MINOLTA-HOLDINGS" }, { 0x00206C, "EVERGREEN TECHNOLOGY CORP.", "EVERGREEN" }, { 0x00206D, "DATA RACE, INC.", "DATA-RACE" }, { 0x00206E, "XACT, INC.", "XACT" }, { 0x00206F, "FLOWPOINT CORPORATION", "FLOWPOINT" }, { 0x002070, "HYNET, LTD.", "HYNET" }, { 0x002071, "IBR GMBH", "IBR" }, { 0x002072, "WORKLINK INNOVATIONS", "WORKLINK-INNOVATIONS" }, { 0x002073, "FUSION SYSTEMS CORPORATION", "FUSION" }, { 0x002074, "SUNGWOON SYSTEMS", "SUNGWOON" }, { 0x002075, "MOTOROLA COMMUNICATION ISRAEL", "MOTOROLA-COMMUNICATION-ISRAEL" }, { 0x002076, "REUDO CORPORATION", "REUDO" }, { 0x002077, "KARDIOS SYSTEMS CORP.", "KARDIOS" }, { 0x002078, "RUNTOP, INC.", "RUNTOP" }, { 0x002079, "MIKRON GMBH", "MIKRON" }, { 0x00207A, "WiSE Communications, Inc.", "WISE-COMMUNICATION" }, { 0x00207B, "Intel Corporation", "INTEL" }, { 0x00207C, "AUTEC GMBH", "AUTEC" }, { 0x00207D, "ADVANCED COMPUTER APPLICATIONS", "ADVANCED-APPLICATIONS" }, { 0x00207E, "FINECOM CO., LTD.", "FINECOM" }, { 0x00207F, "KYOEI SANGYO CO., LTD.", "KYOEI-SANGYO" }, { 0x002080, "SYNERGY (UK) LTD.", "SYNERGY-UK" }, { 0x002081, "TITAN ELECTRONICS", "TITAN-ELECTRONICS" }, { 0x002082, "ONEAC CORPORATION", "ONEAC" }, { 0x002083, "PRESTICOM INCORPORATED", "PRESTICOM-INCORPORATED" }, { 0x002084, "OCE PRINTING SYSTEMS, GMBH", "OCE-PRINTING" }, { 0x002085, "Eaton Corporation", "EATON" }, { 0x002086, "MICROTECH ELECTRONICS LIMITED", "MICROTECH-ELECTRONICS" }, { 0x002087, "MEMOTEC, INC.", "MEMOTEC" }, { 0x002088, "GLOBAL VILLAGE COMMUNICATION", "GLOBAL-VILLAGE-COMMUNICATION" }, { 0x002089, "T3PLUS NETWORKING, INC.", "T3PLUS-NETWORKING" }, { 0x00208A, "SONIX COMMUNICATIONS, LTD.", "SONIX-COMMUNICATION" }, { 0x00208B, "LAPIS TECHNOLOGIES, INC.", "LAPIS-TECHNOLOGIES" }, { 0x00208C, "GALAXY NETWORKS, INC.", "GALAXY-NETWORKS" }, { 0x00208D, "CMD TECHNOLOGY", "CMD" }, { 0x00208E, "CHEVIN SOFTWARE ENG. LTD.", "CHEVIN-SOFTWARE-ENG" }, { 0x00208F, "ECI Telecom Ltd.", "ECI-TELECOM" }, { 0x002090, "ADVANCED COMPRESSION TECHNOLOGY, INC.", "ADVANCED-COMPRESSION" }, { 0x002091, "J125, NATIONAL SECURITY AGENCY", "J125-NATIONAL-SECURITY-AGENCY" }, { 0x002092, "CHESS ENGINEERING B.V.", "CHESS-ENGINEERING-B-V" }, { 0x002093, "LANDINGS TECHNOLOGY CORP.", "LANDINGS" }, { 0x002094, "CUBIX CORPORATION", "CUBIX" }, { 0x002095, "RIVA ELECTRONICS", "RIVA-ELECTRONICS" }, { 0x002096, "Invensys", "INVENSYS" }, { 0x002097, "APPLIED SIGNAL TECHNOLOGY", "APPLIED-SIGNAL" }, { 0x002098, "HECTRONIC AB", "HECTRONIC-AB" }, { 0x002099, "BON ELECTRIC CO., LTD.", "BON-ELECTRIC" }, { 0x00209A, "THE 3DO COMPANY", "THE-3DO-COMPANY" }, { 0x00209B, "ERSAT ELECTRONIC GMBH", "ERSAT" }, { 0x00209C, "PRIMARY ACCESS CORP.", "PRIMARY-ACCESS" }, { 0x00209D, "LIPPERT AUTOMATIONSTECHNIK", "LIPPERT-AUTOMATIONSTECHNIK" }, { 0x00209E, "BROWN'S OPERATING SYSTEM SERVICES, LTD.", "BROWN-S-OPERATING-SYSTEM-SERVICES" }, { 0x00209F, "MERCURY COMPUTER SYSTEMS, INC.", "MERCURY" }, { 0x0020A0, "OA LABORATORY CO., LTD.", "OA-LABORATORY" }, { 0x0020A1, "DOVATRON", "DOVATRON" }, { 0x0020A2, "GALCOM NETWORKING LTD.", "GALCOM-NETWORKING" }, { 0x0020A3, "Harmonic, Inc", "HARMONIC" }, { 0x0020A4, "MULTIPOINT NETWORKS", "MULTIPOINT-NETWORKS" }, { 0x0020A5, "API ENGINEERING", "API-ENGINEERING" }, { 0x0020A6, "Proxim Wireless", "PROXIM-WIRELESS" }, { 0x0020A7, "PAIRGAIN TECHNOLOGIES, INC.", "PAIRGAIN-TECHNOLOGIES" }, { 0x0020A8, "SAST TECHNOLOGY CORP.", "SAST" }, { 0x0020A9, "WHITE HORSE INDUSTRIAL", "WHITE-HORSE-INDUSTRIAL" }, { 0x0020AA, "Ericsson Television Limited", "ERICSSON-TELEVISION" }, { 0x0020AB, "MICRO INDUSTRIES CORP.", "MICRO-INDUSTRIES" }, { 0x0020AC, "INTERFLEX DATENSYSTEME GMBH", "INTERFLEX-DATENSYSTEME" }, { 0x0020AD, "LINQ SYSTEMS", "LINQ" }, { 0x0020AE, "ORNET DATA COMMUNICATION TECH.", "ORNET-DATA-COMMUNICATION-TECH" }, { 0x0020AF, "3COM", "3COM" }, { 0x0020B0, "GATEWAY DEVICES, INC.", "GATEWAY-DEVICES" }, { 0x0020B1, "COMTECH RESEARCH INC.", "COMTECH-RESEARCH" }, { 0x0020B2, "GKD Gesellschaft Fur Kommunikation Und Datentechnik", "GKD-GESELLSCHAFT-FUR-KOMMUNIKATION-UND-DATENTECHNIK" }, { 0x0020B3, "Tattile SRL", "TATTILE-SRL" }, { 0x0020B4, "TERMA ELEKTRONIK AS", "TERMA-ELEKTRONIK-AS" }, { 0x0020B5, "YASKAWA ELECTRIC CORPORATION", "YASKAWA-ELECTRIC" }, { 0x0020B6, "AGILE NETWORKS, INC.", "AGILE-NETWORKS" }, { 0x0020B7, "NAMAQUA COMPUTERWARE", "NAMAQUA-COMPUTERWARE" }, { 0x0020B8, "PRIME OPTION, INC.", "PRIME-OPTION" }, { 0x0020B9, "METRICOM, INC.", "METRICOM" }, { 0x0020BA, "CENTER FOR HIGH PERFORMANCE", "CENTER-FOR-HIGH-PERFORMANCE" }, { 0x0020BB, "ZAX CORPORATION", "ZAX" }, { 0x0020BC, "Long Reach Networks Pty Ltd", "LONG-REACH-NETWORKS-PTY" }, { 0x0020BD, "NIOBRARA R & D CORPORATION", "NIOBRARA-R-D" }, { 0x0020BE, "LAN ACCESS CORP.", "LAN-ACCESS" }, { 0x0020BF, "AEHR TEST SYSTEMS", "AEHR-TEST" }, { 0x0020C0, "PULSE ELECTRONICS, INC.", "PULSE-ELECTRONICS" }, { 0x0020C1, "SAXA, Inc.", "SAXA" }, { 0x0020C2, "TEXAS MEMORY SYSTEMS, INC.", "TEXAS-MEMORY" }, { 0x0020C3, "COUNTER SOLUTIONS LTD.", "COUNTER-SOLUTIONS" }, { 0x0020C4, "INET,INC.", "INET" }, { 0x0020C5, "EAGLE TECHNOLOGY", "EAGLE" }, { 0x0020C6, "NECTEC", "NECTEC" }, { 0x0020C7, "AKAI Professional M.I. Corp.", "AKAI-PROFESSIONAL-M-I" }, { 0x0020C8, "LARSCOM INCORPORATED", "LARSCOM-INCORPORATED" }, { 0x0020C9, "VICTRON BV", "VICTRON" }, { 0x0020CA, "DIGITAL OCEAN", "DIGITAL-OCEAN" }, { 0x0020CB, "PRETEC ELECTRONICS CORP.", "PRETEC-ELECTRONICS" }, { 0x0020CC, "DIGITAL SERVICES, LTD.", "DIGITAL-SERVICES" }, { 0x0020CD, "HYBRID NETWORKS, INC.", "HYBRID-NETWORKS" }, { 0x0020CE, "LOGICAL DESIGN GROUP, INC.", "LOGICAL-DESIGN-GROUP" }, { 0x0020CF, "TEST & MEASUREMENT SYSTEMS INC", "TEST-MEASUREMENT" }, { 0x0020D0, "VERSALYNX CORPORATION", "VERSALYNX" }, { 0x0020D1, "MICROCOMPUTER SYSTEMS (M) SDN.", "MICROCOMPUTER-M" }, { 0x0020D2, "RAD DATA COMMUNICATIONS, LTD.", "RAD-DATA-COMMUNICATION" }, { 0x0020D3, "OST (OUEST STANDARD TELEMATIQU", "OST-OUEST-STANDARD-TELEMATIQU" }, { 0x0020D4, "Cabletron Systems, Inc.", "CABLETRON" }, { 0x0020D5, "VIPA GMBH", "VIPA" }, { 0x0020D6, "Breezecom, Ltd.", "BREEZECOM" }, { 0x0020D7, "JAPAN MINICOMPUTER SYSTEMS CO., Ltd.", "JAPAN-MINICOMPUTER" }, { 0x0020D8, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x0020D9, "PANASONIC TECHNOLOGIES, INC./MIECO-US", "PANASONIC-TECHNOLOGIES-/MIECO-US" }, { 0x0020DA, "Alcatel-Lucent Enterprise", "ALCATEL-LUCENT" }, { 0x0020DB, "XNET TECHNOLOGY, INC.", "XNET" }, { 0x0020DC, "DENSITRON TAIWAN LTD.", "DENSITRON-TAIWAN" }, { 0x0020DD, "Cybertec Pty Ltd", "CYBERTEC-PTY" }, { 0x0020DE, "JAPAN DIGITAL LABORAT'Y CO.LTD", "JAPAN-DIGITAL-LABORAT-Y" }, { 0x0020DF, "KYOSAN ELECTRIC MFG. CO., LTD.", "KYOSAN-ELECTRIC-MFG" }, { 0x0020E0, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x0020E1, "ALAMAR ELECTRONICS", "ALAMAR-ELECTRONICS" }, { 0x0020E2, "INFORMATION RESOURCE ENGINEERING", "INFORMATION-RESOURCE-ENGINEERING" }, { 0x0020E3, "MCD KENCOM CORPORATION", "MCD-KENCOM" }, { 0x0020E4, "HSING TECH ENTERPRISE CO., LTD", "HSING-TECH" }, { 0x0020E5, "APEX DATA, INC.", "APEX-DATA" }, { 0x0020E6, "LIDKOPING MACHINE TOOLS AB", "LIDKOPING-MACHINE-TOOLS-AB" }, { 0x0020E7, "B&W NUCLEAR SERVICE COMPANY", "B-W-NUCLEAR-SERVICE-COMPANY" }, { 0x0020E8, "DATATREK CORPORATION", "DATATREK" }, { 0x0020E9, "DANTEL", "DANTEL" }, { 0x0020EA, "EFFICIENT NETWORKS, INC.", "EFFICIENT-NETWORKS" }, { 0x0020EB, "CINCINNATI MICROWAVE, INC.", "CINCINNATI-MICROWAVE" }, { 0x0020EC, "TECHWARE SYSTEMS CORP.", "TECHWARE" }, { 0x0020ED, "GIGA-BYTE TECHNOLOGY CO., LTD.", "GIGA-BYTE" }, { 0x0020EE, "GTECH CORPORATION", "GTECH" }, { 0x0020EF, "USC CORPORATION", "USC" }, { 0x0020F0, "UNIVERSAL MICROELECTRONICS CO.", "UNIVERSAL-MICROELECTRONICS" }, { 0x0020F1, "ALTOS INDIA LIMITED", "ALTOS-INDIA" }, { 0x0020F2, "Oracle Corporation", "ORACLE" }, { 0x0020F3, "RAYNET CORPORATION", "RAYNET" }, { 0x0020F4, "SPECTRIX CORPORATION", "SPECTRIX" }, { 0x0020F5, "PANDATEL AG", "PANDATEL" }, { 0x0020F6, "NET TEK AND KARLNET, INC.", "NET-TEK-AND-KARLNET" }, { 0x0020F7, "CYBERDATA CORPORATION", "CYBERDATA" }, { 0x0020F8, "CARRERA COMPUTERS, INC.", "CARRERA-COMPUTERS" }, { 0x0020F9, "PARALINK NETWORKS, INC.", "PARALINK-NETWORKS" }, { 0x0020FA, "GDE SYSTEMS, INC.", "GDE" }, { 0x0020FB, "OCTEL COMMUNICATIONS CORP.", "OCTEL-COMMUNICATION" }, { 0x0020FC, "Matrox Central Services Inc", "MATROX-CENTRAL-SERVICES" }, { 0x0020FD, "ITV TECHNOLOGIES, INC.", "ITV-TECHNOLOGIES" }, { 0x0020FE, "TOPWARE INC. / GRAND COMPUTER", "TOPWARE-/-GRAND" }, { 0x0020FF, "SYMMETRICAL TECHNOLOGIES", "SYMMETRICAL-TECHNOLOGIES" }, { 0x002100, "Gemtek Technology Co., Ltd.", "GEMTEK" }, { 0x002101, "Aplicaciones Electronicas Quasar (AEQ)", "APLICACIONES-ELECTRONICAS-QUASAR-AEQ" }, { 0x002102, "UpdateLogic Inc.", "UPDATELOGIC" }, { 0x002103, "GHI Electronics, LLC", "GHI-ELECTRONICS" }, { 0x002104, "Gigaset Communications GmbH", "GIGASET-COMMUNICATION" }, { 0x002105, "Alcatel-Lucent IPD", "ALCATEL-LUCENT-IPD" }, { 0x002106, "RIM Testing Services", "RIM-TESTING-SERVICES" }, { 0x002107, "Seowonintech Co Ltd.", "SEOWONINTECH" }, { 0x002108, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x002109, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x00210A, "byd:sign Corporation", "BYD:SIGN" }, { 0x00210B, "GEMINI TRAZE RFID PVT. LTD.", "GEMINI-TRAZE-RFID-PVT" }, { 0x00210C, "Cymtec Systems, Inc.", "CYMTEC" }, { 0x00210D, "SAMSIN INNOTEC", "SAMSIN-INNOTEC" }, { 0x00210E, "Orpak Systems L.T.D.", "ORPAK-L-T-D" }, { 0x00210F, "Cernium Corp", "CERNIUM" }, { 0x002110, "Clearbox Systems", "CLEARBOX" }, { 0x002111, "Uniphone Inc.", "UNIPHONE" }, { 0x002112, "WISCOM SYSTEM CO.,LTD", "WISCOM-SYSTEM" }, { 0x002113, "Padtec S/A", "PADTEC-S/A" }, { 0x002114, "Hylab Technology Inc.", "HYLAB" }, { 0x002115, "PHYWE Systeme GmbH & Co. KG", "PHYWE-SYSTEME" }, { 0x002116, "Transcon Electronic Systems, spol. s r. o.", "TRANSCON-SPOL-S-R-O" }, { 0x002117, "Tellord", "TELLORD" }, { 0x002118, "Athena Tech, Inc.", "ATHENA-TECH" }, { 0x002119, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0x00211A, "LInTech Corporation", "LINTECH" }, { 0x00211B, "Cisco Systems, Inc", "CISCO" }, { 0x00211C, "Cisco Systems, Inc", "CISCO" }, { 0x00211D, "Dataline AB", "DATALINE-AB" }, { 0x00211E, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x00211F, "SHINSUNG DELTATECH CO.,LTD.", "SHINSUNG-DELTATECH" }, { 0x002120, "Sequel Technologies", "SEQUEL-TECHNOLOGIES" }, { 0x002121, "VRmagic GmbH", "VRMAGIC" }, { 0x002122, "Chip-pro Ltd.", "CHIP-PRO" }, { 0x002123, "Aerosat Avionics", "AEROSAT-AVIONICS" }, { 0x002124, "Optos Plc", "OPTOS-PLC" }, { 0x002125, "KUK JE TONG SHIN Co.,LTD", "KUK-JE-TONG-SHIN" }, { 0x002126, "Shenzhen Torch Equipment Co., Ltd.", "SHENZHEN-TORCH-EQUIPMENT" }, { 0x002127, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x002128, "Oracle Corporation", "ORACLE" }, { 0x002129, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x00212A, "Audiovox Corporation", "AUDIOVOX" }, { 0x00212B, "MSA Auer", "MSA-AUER" }, { 0x00212C, "SemIndia System Private Limited", "SEMINDIA-SYSTEM-PRIVATE" }, { 0x00212D, "SCIMOLEX CORPORATION", "SCIMOLEX" }, { 0x00212E, "dresden-elektronik", "DRESDEN-ELEKTRONIK" }, { 0x00212F, "Phoebe Micro Inc.", "PHOEBE-MICRO" }, { 0x002130, "Keico Hightech Inc.", "KEICO-HIGHTECH" }, { 0x002131, "Blynke Inc.", "BLYNKE" }, { 0x002132, "Masterclock, Inc.", "MASTERCLOCK" }, { 0x002133, "Building B, Inc", "BUILDING-B" }, { 0x002134, "Brandywine Communications", "BRANDYWINE-COMMUNICATION" }, { 0x002135, "ALCATEL-LUCENT", "ALCATEL-LUCENT" }, { 0x002136, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x002137, "Bay Controls, LLC", "BAY-CONTROLS" }, { 0x002138, "Cepheid", "CEPHEID" }, { 0x002139, "Escherlogic Inc.", "ESCHERLOGIC" }, { 0x00213A, "Winchester Systems Inc.", "WINCHESTER" }, { 0x00213B, "Berkshire Products, Inc", "BERKSHIRE-PRODUCTS" }, { 0x00213C, "AliphCom", "ALIPHCOM" }, { 0x00213D, "Cermetek Microelectronics, Inc.", "CERMETEK-MICROELECTRONICS" }, { 0x00213E, "TomTom International BV", "TOMTOM" }, { 0x00213F, "A-Team Technology Ltd.", "A-TEAM" }, { 0x002140, "EN Technologies Inc.", "EN-TECHNOLOGIES" }, { 0x002141, "RADLIVE", "RADLIVE" }, { 0x002142, "Advanced Control Systems doo", "ADVANCED-CONTROL-DOO" }, { 0x002143, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x002144, "SS Telecoms", "SS-TELECOMS" }, { 0x002145, "Semptian Technologies Ltd.", "SEMPTIAN-TECHNOLOGIES" }, { 0x002146, "Sanmina-SCI", "SANMINA-SCI" }, { 0x002147, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x002148, "Kaco Solar Korea", "KACO-SOLAR-KOREA" }, { 0x002149, "China Daheng Group ,Inc.", "CHINA-DAHENG-GROUP" }, { 0x00214A, "Pixel Velocity, Inc", "PIXEL-VELOCITY" }, { 0x00214B, "Shenzhen HAMP Science & Technology Co.,Ltd", "SHENZHEN-HAMP-SCIENCE" }, { 0x00214C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00214D, "Guangzhou Skytone Transmission Technology Com. Ltd.", "GUANGZHOU-SKYTONE-TRANSMISSION-COM" }, { 0x00214E, "GS Yuasa Power Supply Ltd.", "GS-YUASA-POWER-SUPPLY" }, { 0x00214F, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x002150, "EYEVIEW ELECTRONICS", "EYEVIEW-ELECTRONICS" }, { 0x002151, "Millinet Co., Ltd.", "MILLINET" }, { 0x002152, "General Satellite Research & Development Limited", "GENERAL-SATELLITE-RESEARCH-DEVELOPMENT" }, { 0x002153, "SeaMicro Inc.", "SEAMICRO" }, { 0x002154, "D-TACQ Solutions Ltd", "D-TACQ-SOLUTIONS" }, { 0x002155, "Cisco Systems, Inc", "CISCO" }, { 0x002156, "Cisco Systems, Inc", "CISCO" }, { 0x002157, "National Datacast, Inc.", "NATIONAL-DATACAST" }, { 0x002158, "Style Flying Technology Co.", "STYLE-FLYING" }, { 0x002159, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x00215A, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x00215B, "SenseAnywhere", "SENSEANYWHERE" }, { 0x00215C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x00215D, "Intel Corporate", "INTEL-CORPORATE" }, { 0x00215E, "IBM Corp", "IBM" }, { 0x00215F, "IHSE GmbH", "IHSE" }, { 0x002160, "Hidea Solutions Co. Ltd.", "HIDEA-SOLUTIONS" }, { 0x002161, "Yournet Inc.", "YOURNET" }, { 0x002162, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x002163, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x002164, "Special Design Bureau for Seismic Instrumentation", "SPECIAL-DESIGN-BUREAU-FOR-SEISMIC-INSTRUMENTATION" }, { 0x002165, "Presstek Inc.", "PRESSTEK" }, { 0x002166, "NovAtel Inc.", "NOVATEL" }, { 0x002167, "HWA JIN T&I Corp.", "HWA-JIN-T-I" }, { 0x002168, "iVeia, LLC", "IVEIA" }, { 0x002169, "Prologix, LLC.", "PROLOGIX" }, { 0x00216A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x00216B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x00216C, "ODVA", "ODVA" }, { 0x00216D, "Soltech Co., Ltd.", "SOLTECH" }, { 0x00216E, "Function ATI (Huizhou) Telecommunications Co., Ltd.", "FUNCTION-ATI-HUIZHOU-TELECOMMUNICATIONS" }, { 0x00216F, "SymCom, Inc.", "SYMCOM" }, { 0x002170, "Dell Inc.", "DELL" }, { 0x002171, "Wesung TNC Co., Ltd.", "WESUNG-TNC" }, { 0x002172, "Seoultek Valley", "SEOULTEK-VALLEY" }, { 0x002173, "Ion Torrent Systems, Inc.", "ION-TORRENT" }, { 0x002174, "AvaLAN Wireless", "AVALAN-WIRELESS" }, { 0x002175, "Pacific Satellite International Ltd.", "PACIFIC-SATELLITE" }, { 0x002176, "YMax Telecom Ltd.", "YMAX-TELECOM" }, { 0x002177, "W. L. Gore & Associates", "W-L-GORE-ASSOCIATES" }, { 0x002178, "Matuschek Messtechnik GmbH", "MATUSCHEK-MESSTECHNIK" }, { 0x002179, "IOGEAR, Inc.", "IOGEAR" }, { 0x00217A, "Sejin Electron, Inc.", "SEJIN-ELECTRON" }, { 0x00217B, "Bastec AB", "BASTEC-AB" }, { 0x00217C, "2Wire Inc", "2WIRE" }, { 0x00217D, "PYXIS S.R.L.", "PYXIS" }, { 0x00217E, "Telit Communication s.p.a", "TELIT-COMMUNICATION" }, { 0x00217F, "Intraco Technology Pte Ltd", "INTRACO-PTE" }, { 0x002180, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x002181, "Si2 Microsystems Limited", "SI2-MICROSYSTEMS" }, { 0x002182, "SandLinks Systems, Ltd.", "SANDLINKS" }, { 0x002183, "ANDRITZ HYDRO GmbH", "ANDRITZ-HYDRO" }, { 0x002184, "POWERSOFT SRL", "POWERSOFT-SRL" }, { 0x002185, "MICRO-STAR INT'L CO.,LTD.", "MICRO-STAR" }, { 0x002186, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x002187, "Imacs GmbH", "IMACS" }, { 0x002188, "EMC Corporation", "EMC" }, { 0x002189, "AppTech, Inc.", "APPTECH" }, { 0x00218A, "Electronic Design and Manufacturing Company", "DESIGN-AND-MANUFACTURING-COMPANY" }, { 0x00218B, "Wescon Technology, Inc.", "WESCON" }, { 0x00218C, "TopControl GMBH", "TOPCONTROL" }, { 0x00218D, "AP Router Ind. Eletronica LTDA", "AP-ROUTER-IND-ELETRONICA-LTDA" }, { 0x00218E, "MEKICS CO., LTD.", "MEKICS" }, { 0x00218F, "Avantgarde Acoustic Lautsprechersysteme GmbH", "AVANTGARDE-ACOUSTIC-LAUTSPRECHERSYSTEME" }, { 0x002190, "Goliath Solutions", "GOLIATH-SOLUTIONS" }, { 0x002191, "D-Link Corporation", "D-LINK" }, { 0x002192, "Baoding Galaxy Electronic Technology Co.,Ltd", "BAODING-GALAXY" }, { 0x002193, "Videofon MV", "VIDEOFON-MV" }, { 0x002194, "Ping Communication", "PING-COMMUNICATION" }, { 0x002195, "GWD Media Limited", "GWD-MEDIA" }, { 0x002196, "Telsey S.p.A.", "TELSEY" }, { 0x002197, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x002198, "Thai Radio Co, LTD", "THAI-RADIO" }, { 0x002199, "Vacon Plc", "VACON-PLC" }, { 0x00219A, "Cambridge Visual Networks Ltd", "CAMBRIDGE-VISUAL-NETWORKS" }, { 0x00219B, "Dell Inc.", "DELL" }, { 0x00219C, "Honeywld Technology Corp.", "HONEYWLD" }, { 0x00219D, "Adesys BV", "ADESYS" }, { 0x00219E, "Sony Corporation", "SONY" }, { 0x00219F, "SATEL OY", "SATEL-OY" }, { 0x0021A0, "Cisco Systems, Inc", "CISCO" }, { 0x0021A1, "Cisco Systems, Inc", "CISCO" }, { 0x0021A2, "EKE-Electronics Ltd.", "EKE-ELECTRONICS" }, { 0x0021A3, "Micromint", "MICROMINT" }, { 0x0021A4, "Dbii Networks", "DBII-NETWORKS" }, { 0x0021A5, "ERLPhase Power Technologies Ltd.", "ERLPHASE-POWER-TECHNOLOGIES" }, { 0x0021A6, "Videotec Spa", "VIDEOTEC-SPA" }, { 0x0021A7, "Hantle System Co., Ltd.", "HANTLE-SYSTEM" }, { 0x0021A8, "Telephonics Corporation", "TELEPHONICS" }, { 0x0021A9, "Mobilink Telecom Co.,Ltd", "MOBILINK-TELECOM" }, { 0x0021AA, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0021AB, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0021AC, "Infrared Integrated Systems Ltd", "INFRARED-INTEGRATED" }, { 0x0021AD, "Nordic ID Oy", "NORDIC-ID-OY" }, { 0x0021AE, "ALCATEL-LUCENT FRANCE - WTD", "ALCATEL-LUCENT-FRANCE-WTD" }, { 0x0021AF, "Radio Frequency Systems", "RADIO-FREQUENCY" }, { 0x0021B0, "Tyco Telecommunications", "TYCO-TELECOMMUNICATIONS" }, { 0x0021B1, "DIGITAL SOLUTIONS LTD", "DIGITAL-SOLUTIONS" }, { 0x0021B2, "Fiberblaze A/S", "FIBERBLAZE-A/S" }, { 0x0021B3, "Ross Controls", "ROSS-CONTROLS" }, { 0x0021B4, "APRO MEDIA CO., LTD", "APRO-MEDIA" }, { 0x0021B5, "Galvanic Ltd", "GALVANIC" }, { 0x0021B6, "Triacta Power Technologies Inc.", "TRIACTA-POWER-TECHNOLOGIES" }, { 0x0021B7, "LEXMARK INTERNATIONAL, INC.", "LEXMARK" }, { 0x0021B8, "Inphi Corporation", "INPHI" }, { 0x0021B9, "Universal Devices Inc.", "UNIVERSAL-DEVICES" }, { 0x0021BA, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0021BB, "Riken Keiki Co., Ltd.", "RIKEN-KEIKI" }, { 0x0021BC, "ZALA COMPUTER", "ZALA" }, { 0x0021BD, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x0021BE, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x0021BF, "Hitachi High-Tech Control Systems Corporation", "HITACHI-HIGH-TECH-CONTROL" }, { 0x0021C0, "Mobile Appliance, Inc.", "MOBILE-APPLIANCE" }, { 0x0021C1, "ABB Oy / Medium Voltage Products", "ABB-OY-/-MEDIUM-VOLTAGE-PRODUCTS" }, { 0x0021C2, "GL Communications Inc", "GL-COMMUNICATION" }, { 0x0021C3, "CORNELL Communications, Inc.", "CORNELL-COMMUNICATION" }, { 0x0021C4, "Consilium AB", "CONSILIUM-AB" }, { 0x0021C5, "3DSP Corp", "3DSP" }, { 0x0021C6, "CSJ Global, Inc.", "CSJ-GLOBAL" }, { 0x0021C7, "Russound", "RUSSOUND" }, { 0x0021C8, "LOHUIS Networks", "LOHUIS-NETWORKS" }, { 0x0021C9, "Wavecom Asia Pacific Limited", "WAVECOM-ASIA-PACIFIC" }, { 0x0021CA, "ART System Co., Ltd.", "ART-SYSTEM" }, { 0x0021CB, "SMS TECNOLOGIA ELETRONICA LTDA", "SMS-TECNOLOGIA-ELETRONICA-LTDA" }, { 0x0021CC, "Flextronics International", "FLEXTRONICS" }, { 0x0021CD, "LiveTV", "LIVETV" }, { 0x0021CE, "NTC-Metrotek", "NTC-METROTEK" }, { 0x0021CF, "The Crypto Group", "THE-CRYPTO-GROUP" }, { 0x0021D0, "Global Display Solutions Spa", "GLOBAL-DISPLAY-SOLUTIONS-SPA" }, { 0x0021D1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0021D2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0021D3, "BOCOM SECURITY(ASIA PACIFIC) LIMITED", "BOCOM-SECURITY-ASIA-PACIFIC" }, { 0x0021D4, "Vollmer Werke GmbH", "VOLLMER-WERKE" }, { 0x0021D5, "X2E GmbH", "X2E" }, { 0x0021D6, "LXI Consortium", "LXI-CONSORTIUM" }, { 0x0021D7, "Cisco Systems, Inc", "CISCO" }, { 0x0021D8, "Cisco Systems, Inc", "CISCO" }, { 0x0021D9, "SEKONIC CORPORATION", "SEKONIC" }, { 0x0021DA, "Automation Products Group Inc.", "AUTOMATION-PRODUCTS-GROUP" }, { 0x0021DB, "Santachi Video Technology (Shenzhen) Co., Ltd.", "SANTACHI-VIDEO-SHENZHEN" }, { 0x0021DC, "TECNOALARM S.r.l.", "TECNOALARM" }, { 0x0021DD, "Northstar Systems Corp", "NORTHSTAR" }, { 0x0021DE, "Firepro Wireless", "FIREPRO-WIRELESS" }, { 0x0021DF, "Martin Christ GmbH", "MARTIN-CHRIST" }, { 0x0021E0, "CommAgility Ltd", "COMMAGILITY" }, { 0x0021E1, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x0021E2, "visago Systems & Controls GmbH & Co. KG", "VISAGO-CONTROLS" }, { 0x0021E3, "SerialTek LLC", "SERIALTEK" }, { 0x0021E4, "I-WIN", "I-WIN" }, { 0x0021E5, "Display Solution AG", "DISPLAY-SOLUTION" }, { 0x0021E6, "Starlight Video Limited", "STARLIGHT-VIDEO" }, { 0x0021E7, "Informatics Services Corporation", "INFORMATICS-SERVICES" }, { 0x0021E8, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x0021E9, "Apple, Inc.", "APPLE" }, { 0x0021EA, "Bystronic Laser AG", "BYSTRONIC-LASER" }, { 0x0021EB, "ESP SYSTEMS, LLC", "ESP" }, { 0x0021EC, "Solutronic GmbH", "SOLUTRONIC" }, { 0x0021ED, "Telegesis", "TELEGESIS" }, { 0x0021EE, "Full Spectrum Inc.", "FULL-SPECTRUM" }, { 0x0021EF, "Kapsys", "KAPSYS" }, { 0x0021F0, "EW3 Technologies LLC", "EW3-TECHNOLOGIES" }, { 0x0021F1, "Tutus Data AB", "TUTUS-DATA-AB" }, { 0x0021F2, "EASY3CALL Technology Limited", "EASY3CALL" }, { 0x0021F3, "Si14 SpA", "SI14-SPA" }, { 0x0021F4, "INRange Systems, Inc", "INRANGE" }, { 0x0021F5, "Western Engravers Supply, Inc.", "WESTERN-ENGRAVERS-SUPPLY" }, { 0x0021F6, "Oracle Corporation", "ORACLE" }, { 0x0021F7, "HPN Supply Chain", "HPN-SUPPLY-CHAIN" }, { 0x0021F8, "Enseo, Inc.", "ENSEO" }, { 0x0021F9, "WIRECOM Technologies", "WIRECOM-TECHNOLOGIES" }, { 0x0021FA, "A4SP Technologies Ltd.", "A4SP-TECHNOLOGIES" }, { 0x0021FB, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x0021FC, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0021FD, "LACROIX TRAFFIC S.A.U", "LACROIX-TRAFFIC-U" }, { 0x0021FE, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0021FF, "Cyfrowy Polsat SA", "CYFROWY-POLSAT" }, { 0x002200, "IBM Corp", "IBM" }, { 0x002201, "Aksys Networks Inc", "AKSYS-NETWORKS" }, { 0x002202, "Excito Elektronik i Skåne AB", "EXCITO-ELEKTRONIK-I-SKNE-AB" }, { 0x002203, "Glensound Electronics Ltd", "GLENSOUND-ELECTRONICS" }, { 0x002204, "KORATEK", "KORATEK" }, { 0x002205, "WeLink Solutions, Inc.", "WELINK-SOLUTIONS" }, { 0x002206, "Cyberdyne Inc.", "CYBERDYNE" }, { 0x002207, "Inteno Broadband Technology AB", "INTENO-BROADBAND-AB" }, { 0x002208, "Certicom Corp", "CERTICOM" }, { 0x002209, "Omron Healthcare Co., Ltd", "OMRON-HEALTHCARE" }, { 0x00220A, "OnLive, Inc", "ONLIVE" }, { 0x00220B, "National Source Coding Center", "NATIONAL-SOURCE-CODING-CENTER" }, { 0x00220C, "Cisco Systems, Inc", "CISCO" }, { 0x00220D, "Cisco Systems, Inc", "CISCO" }, { 0x00220E, "Indigo Security Co., Ltd.", "INDIGO-SECURITY" }, { 0x00220F, "MoCA (Multimedia over Coax Alliance)", "MOCA-MULTIMEDIA-OVER-COAX-ALLIANCE" }, { 0x002210, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x002211, "Rohati Systems", "ROHATI" }, { 0x002212, "CAI Networks, Inc.", "CAI-NETWORKS" }, { 0x002213, "PCI CORPORATION", "PCI" }, { 0x002214, "RINNAI KOREA", "RINNAI-KOREA" }, { 0x002215, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x002216, "SHIBAURA VENDING MACHINE CORPORATION", "SHIBAURA-VENDING-MACHINE" }, { 0x002217, "Neat Electronics", "NEAT-ELECTRONICS" }, { 0x002218, "AKAMAI TECHNOLOGIES INC", "AKAMAI-TECHNOLOGIES" }, { 0x002219, "Dell Inc.", "DELL" }, { 0x00221A, "Audio Precision", "AUDIO-PRECISION" }, { 0x00221B, "Morega Systems", "MOREGA" }, { 0x00221C, "Private", "PRIVATE" }, { 0x00221D, "Freegene Technology LTD", "FREEGENE" }, { 0x00221E, "Media Devices Co., Ltd.", "MEDIA-DEVICES" }, { 0x00221F, "eSang Technologies Co., Ltd.", "ESANG-TECHNOLOGIES" }, { 0x002220, "Mitac Technology Corp", "MITAC" }, { 0x002221, "ITOH DENKI CO,LTD.", "ITOH-DENKI" }, { 0x002222, "Schaffner Deutschland GmbH", "SCHAFFNER-DEUTSCHLAND" }, { 0x002223, "TimeKeeping Systems, Inc.", "TIMEKEEPING" }, { 0x002224, "Good Will Instrument Co., Ltd.", "GOOD-WILL-INSTRUMENT" }, { 0x002225, "Thales Avionics Ltd", "THALES-AVIONICS" }, { 0x002226, "Avaak, Inc.", "AVAAK" }, { 0x002227, "uv-electronic GmbH", "UV" }, { 0x002228, "Breeze Innovations Ltd.", "BREEZE-INNOVATIONS" }, { 0x002229, "Compumedics Ltd", "COMPUMEDICS" }, { 0x00222A, "SoundEar A/S", "SOUNDEAR-A/S" }, { 0x00222B, "Nucomm, Inc.", "NUCOMM" }, { 0x00222C, "Ceton Corp", "CETON" }, { 0x00222D, "SMC Networks Inc.", "SMC-NETWORKS" }, { 0x00222E, "maintech GmbH", "MAINTECH" }, { 0x00222F, "Open Grid Computing, Inc.", "OPEN-GRID-COMPUTING" }, { 0x002230, "FutureLogic Inc.", "FUTURELOGIC" }, { 0x002231, "SMT&C Co., Ltd.", "SMT-C" }, { 0x002232, "Design Design Technology Ltd", "DESIGN-DESIGN" }, { 0x002233, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x002234, "Corventis Inc.", "CORVENTIS" }, { 0x002235, "Strukton Systems bv", "STRUKTON" }, { 0x002236, "VECTOR SP. Z O.O.", "VECTOR-SP-Z-O-O" }, { 0x002237, "Shinhint Group", "SHINHINT-GROUP" }, { 0x002238, "LOGIPLUS", "LOGIPLUS" }, { 0x002239, "Indiana Life Sciences Incorporated", "INDIANA-LIFE-SCIENCES-INCORPORATED" }, { 0x00223A, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x00223B, "Communication Networks, LLC", "COMMUNICATION-NETWORKS" }, { 0x00223C, "RATIO Entwicklungen GmbH", "RATIO-ENTWICKLUNGEN" }, { 0x00223D, "JumpGen Systems, LLC", "JUMPGEN" }, { 0x00223E, "IRTrans GmbH", "IRTRANS" }, { 0x00223F, "NETGEAR", "NETGEAR" }, { 0x002240, "Universal Telecom S/A", "UNIVERSAL-TELECOM-S/A" }, { 0x002241, "Apple, Inc.", "APPLE" }, { 0x002242, "Alacron Inc.", "ALACRON" }, { 0x002243, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x002244, "Chengdu Linkon Communications Device Co., Ltd", "CHENGDU-LINKON-COMMUNICATION-DEVICE" }, { 0x002245, "Leine & Linde AB", "LEINE-LINDE-AB" }, { 0x002246, "Evoc Intelligent Technology Co.,Ltd.", "EVOC-INTELLIGENT" }, { 0x002247, "DAC ENGINEERING CO., LTD.", "DAC-ENGINEERING" }, { 0x002248, "Microsoft Corporation", "MICROSOFT" }, { 0x002249, "HOME MULTIENERGY SL", "HOME-MULTIENERGY-SL" }, { 0x00224A, "RAYLASE AG", "RAYLASE" }, { 0x00224B, "AIRTECH TECHNOLOGIES, INC.", "AIRTECH-TECHNOLOGIES" }, { 0x00224C, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x00224D, "MITAC INTERNATIONAL CORP.", "MITAC" }, { 0x00224E, "SEEnergy Corp.", "SEENERGY" }, { 0x00224F, "Byzoro Networks Ltd.", "BYZORO-NETWORKS" }, { 0x002250, "Point Six Wireless, LLC", "POINT-SIX-WIRELESS" }, { 0x002251, "Lumasense Technologies", "LUMASENSE-TECHNOLOGIES" }, { 0x002252, "ZOLL Lifecor Corporation", "ZOLL-LIFECOR" }, { 0x002253, "Entorian Technologies", "ENTORIAN-TECHNOLOGIES" }, { 0x002254, "Bigelow Aerospace", "BIGELOW-AEROSPACE" }, { 0x002255, "Cisco Systems, Inc", "CISCO" }, { 0x002256, "Cisco Systems, Inc", "CISCO" }, { 0x002257, "3COM EUROPE LTD", "3COM" }, { 0x002258, "Taiyo Yuden Co., Ltd.", "TAIYO-YUDEN" }, { 0x002259, "Guangzhou New Postcom Equipment Co.,Ltd.", "GUANGZHOU-NEW-POSTCOM-EQUIPMENT" }, { 0x00225A, "Garde Security AB", "GARDE-SECURITY-AB" }, { 0x00225B, "Teradici Corporation", "TERADICI" }, { 0x00225C, "Multimedia & Communication Technology", "MULTIMEDIA-COMMUNICATION" }, { 0x00225D, "Digicable Network India Pvt. Ltd.", "DIGICABLE-NETWORK-INDIA-PVT" }, { 0x00225E, "Uwin Technologies Co.,LTD", "UWIN-TECHNOLOGIES" }, { 0x00225F, "Liteon Technology Corporation", "LITEON" }, { 0x002260, "AFREEY Inc.", "AFREEY" }, { 0x002261, "Frontier Silicon Ltd", "FRONTIER-SILICON" }, { 0x002262, "BEP Marine", "BEP-MARINE" }, { 0x002263, "Koos Technical Services, Inc.", "KOOS-TECHNICAL-SERVICES" }, { 0x002264, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x002265, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x002266, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x002267, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x002268, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x002269, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x00226A, "Honeywell", "HONEYWELL" }, { 0x00226B, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x00226C, "LinkSprite Technologies, Inc.", "LINKSPRITE-TECHNOLOGIES" }, { 0x00226D, "Shenzhen GIEC Electronics Co., Ltd.", "SHENZHEN-GIEC-ELECTRONICS" }, { 0x00226E, "Gowell Electronic Limited", "GOWELL" }, { 0x00226F, "3onedata Technology Co. Ltd.", "3ONEDATA" }, { 0x002270, "ABK North America, LLC", "ABK-NORTH-AMERICA" }, { 0x002271, "Jäger Computergesteuerte Meßtechnik GmbH.", "JAEGER-COMPUTERGESTEUERTE-MESSTECHNIK" }, { 0x002272, "American Micro-Fuel Device Corp.", "AMERICAN-MICRO-FUEL-DEVICE" }, { 0x002273, "Techway", "TECHWAY" }, { 0x002274, "FamilyPhone AB", "FAMILYPHONE-AB" }, { 0x002275, "Belkin International Inc.", "BELKIN" }, { 0x002276, "Triple EYE B.V.", "TRIPLE-EYE-B-V" }, { 0x002277, "NEC Australia Pty Ltd", "NEC-AUSTRALIA-PTY" }, { 0x002278, "Shenzhen Tongfang Multimedia Technology Co.,Ltd.", "SHENZHEN-TONGFANG-MULTIMEDIA" }, { 0x002279, "Nippon Conlux Co., Ltd.", "NIPPON-CONLUX" }, { 0x00227A, "Telecom Design", "TELECOM-DESIGN" }, { 0x00227B, "Apogee Labs, Inc.", "APOGEE-LABS" }, { 0x00227C, "Woori SMT Co.,ltd", "WOORI-SMT" }, { 0x00227D, "YE DATA INC.", "YE-DATA" }, { 0x00227E, "Chengdu 30Kaitian Communication Industry Co.Ltd", "CHENGDU-30KAITIAN-COMMUNICATION-INDUSTRY" }, { 0x00227F, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x002280, "A2B Electronics AB", "A2B-ELECTRONICS-AB" }, { 0x002281, "Daintree Networks Pty", "DAINTREE-NETWORKS-PTY" }, { 0x002282, "8086 Consultancy", "8086-CONSULTANCY" }, { 0x002283, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x002284, "DESAY A&V SCIENCE AND TECHNOLOGY CO.,LTD", "DESAY-A-V-SCIENCE" }, { 0x002285, "NOMUS COMM SYSTEMS", "NOMUS-COMM" }, { 0x002286, "ASTRON", "ASTRON" }, { 0x002287, "Titan Wireless LLC", "TITAN-WIRELESS" }, { 0x002288, "Sagrad, Inc.", "SAGRAD" }, { 0x002289, "Vanderlande APC inc.", "VANDERLANDE-APC" }, { 0x00228A, "Teratronik elektronische systeme gmbh", "TERATRONIK-ELEKTRONISCHE-SYSTEME" }, { 0x00228B, "Kensington Computer Products Group", "KENSINGTON-PRODUCTS-GROUP" }, { 0x00228C, "Photon Europe GmbH", "PHOTON-EUROPE" }, { 0x00228D, "GBS Laboratories LLC", "GBS-LABORATORIES" }, { 0x00228E, "TV-NUMERIC", "TV-NUMERIC" }, { 0x00228F, "CNRS", "CNRS" }, { 0x002290, "Cisco Systems, Inc", "CISCO" }, { 0x002291, "Cisco Systems, Inc", "CISCO" }, { 0x002292, "Cinetal", "CINETAL" }, { 0x002293, "zte corporation", "ZTE" }, { 0x002294, "KYOCERA CORPORATION", "KYOCERA" }, { 0x002295, "SGM Technology for lighting spa", "SGM-FOR-LIGHTING-SPA" }, { 0x002296, "LinoWave Corporation", "LINOWAVE" }, { 0x002297, "XMOS Semiconductor", "XMOS-SEMICONDUCTOR" }, { 0x002298, "Sony Corporation", "SONY" }, { 0x002299, "SeaMicro Inc.", "SEAMICRO" }, { 0x00229A, "Lastar, Inc.", "LASTAR" }, { 0x00229B, "AverLogic Technologies, Inc.", "AVERLOGIC-TECHNOLOGIES" }, { 0x00229C, "Verismo Networks Inc", "VERISMO-NETWORKS" }, { 0x00229D, "PYUNG-HWA IND.CO.,LTD", "PYUNG-HWA-IND" }, { 0x00229E, "Social Aid Research Co., Ltd.", "SOCIAL-AID-RESEARCH" }, { 0x00229F, "Sensys Traffic AB", "SENSYS-TRAFFIC-AB" }, { 0x0022A0, "APTIV SERVICES US, LLC", "APTIV-SERVICES-US" }, { 0x0022A1, "Huawei Symantec Technologies Co.,Ltd.", "HUAWEI-SYMANTEC-TECHNOLOGIES" }, { 0x0022A2, "Xtramus Technologies", "XTRAMUS-TECHNOLOGIES" }, { 0x0022A3, "California Eastern Laboratories", "CALIFORNIA-EASTERN-LABORATORIES" }, { 0x0022A4, "2Wire Inc", "2WIRE" }, { 0x0022A5, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0022A6, "Sony Computer Entertainment America", "SONY-ENTERTAINMENT-AMERICA" }, { 0x0022A7, "Tyco Electronics AMP GmbH", "TYCO-ELECTRONICS-AMP" }, { 0x0022A8, "Ouman Oy", "OUMAN-OY" }, { 0x0022A9, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x0022AA, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x0022AB, "Shenzhen Turbosight Technology Ltd", "SHENZHEN-TURBOSIGHT" }, { 0x0022AC, "Hangzhou Siyuan Tech. Co., Ltd", "HANGZHOU-SIYUAN-TECH" }, { 0x0022AD, "TELESIS TECHNOLOGIES, INC.", "TELESIS-TECHNOLOGIES" }, { 0x0022AE, "Mattel Inc.", "MATTEL" }, { 0x0022AF, "Safety Vision, LLC", "SAFETY-VISION" }, { 0x0022B0, "D-Link Corporation", "D-LINK" }, { 0x0022B1, "Elbit Systems Ltd.", "ELBIT" }, { 0x0022B2, "4RF Communications Ltd", "4RF-COMMUNICATION" }, { 0x0022B3, "Sei S.p.A.", "SEI" }, { 0x0022B4, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0022B5, "NOVITA", "NOVITA" }, { 0x0022B6, "Superflow Technologies Group", "SUPERFLOW-TECHNOLOGIES-GROUP" }, { 0x0022B7, "GSS Grundig SAT-Systems GmbH", "GSS-GRUNDIG-SAT" }, { 0x0022B8, "Norcott", "NORCOTT" }, { 0x0022B9, "Analogix Seminconductor, Inc", "ANALOGIX-SEMINCONDUCTOR" }, { 0x0022BA, "HUTH Elektronik Systeme GmbH", "HUTH-ELEKTRONIK-SYSTEME" }, { 0x0022BB, "beyerdynamic GmbH & Co. KG", "BEYERDYNAMIC" }, { 0x0022BC, "JDSU France SAS", "JDSU-FRANCE-SAS" }, { 0x0022BD, "Cisco Systems, Inc", "CISCO" }, { 0x0022BE, "Cisco Systems, Inc", "CISCO" }, { 0x0022BF, "SieAmp Group of Companies", "SIEAMP-GROUP-OF-COMPANIES" }, { 0x0022C0, "Shenzhen Forcelink Electronic Co, Ltd", "SHENZHEN-FORCELINK" }, { 0x0022C1, "Active Storage Inc.", "ACTIVE-STORAGE" }, { 0x0022C2, "Proview Eletrônica do Brasil LTDA", "PROVIEW-ELETRNICA-DO-BRASIL-LTDA" }, { 0x0022C3, "Zeeport Technology Inc.", "ZEEPORT" }, { 0x0022C4, "epro GmbH", "EPRO" }, { 0x0022C5, "INFORSON Co,Ltd.", "INFORSON" }, { 0x0022C6, "Sutus Inc", "SUTUS" }, { 0x0022C7, "SEGGER Microcontroller GmbH & Co. KG", "SEGGER-MICROCONTROLLER" }, { 0x0022C8, "Applied Instruments B.V.", "APPLIED-INSTRUMENTS-B-V" }, { 0x0022C9, "Lenord, Bauer & Co GmbH", "LENORD-BAUER" }, { 0x0022CA, "Anviz Biometric Tech. Co., Ltd.", "ANVIZ-BIOMETRIC-TECH" }, { 0x0022CB, "IONODES Inc.", "IONODES" }, { 0x0022CC, "SciLog, Inc.", "SCILOG" }, { 0x0022CD, "Ared Technology Co., Ltd.", "ARED" }, { 0x0022CE, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x0022CF, "PLANEX COMMUNICATIONS INC.", "PLANEX-COMMUNICATION" }, { 0x0022D0, "Polar Electro Oy", "POLAR-ELECTRO-OY" }, { 0x0022D1, "Albrecht Jung GmbH & Co. KG", "ALBRECHT-JUNG" }, { 0x0022D2, "All Earth Comércio de Eletrônicos LTDA.", "ALL-EARTH-COMRCIO-DE-ELETRNICOS-LTDA" }, { 0x0022D3, "Hub-Tech", "HUB-TECH" }, { 0x0022D4, "ComWorth Co., Ltd.", "COMWORTH" }, { 0x0022D5, "Eaton Corp. Electrical Group Data Center Solutions - Pulizzi", "EATON-ELECTRICAL-GROUP-DATA-CENTER-SOLUTIONS-PULIZZI" }, { 0x0022D6, "Cypak AB", "CYPAK-AB" }, { 0x0022D7, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x0022D8, "Shenzhen GST Security and Safety Technology Limited", "SHENZHEN-GST-SECURITY-AND-SAFETY" }, { 0x0022D9, "Fortex Industrial Ltd.", "FORTEX-INDUSTRIAL" }, { 0x0022DA, "ANATEK, LLC", "ANATEK" }, { 0x0022DB, "Translogic Corporation", "TRANSLOGIC" }, { 0x0022DC, "Vigil Health Solutions Inc.", "VIGIL-HEALTH-SOLUTIONS" }, { 0x0022DD, "Protecta Electronics Ltd", "PROTECTA-ELECTRONICS" }, { 0x0022DE, "OPPO Digital, Inc.", "OPPO-DIGITAL" }, { 0x0022DF, "TAMUZ Monitors", "TAMUZ-MONITORS" }, { 0x0022E0, "Atlantic Software Technologies S.r.L.", "ATLANTIC-SOFTWARE-TECHNOLOGIES" }, { 0x0022E1, "ZORT Labs, LLC.", "ZORT-LABS" }, { 0x0022E2, "WABTEC Transit Division", "WABTEC-TRANSIT-DIVISION" }, { 0x0022E3, "Amerigon", "AMERIGON" }, { 0x0022E4, "APASS TECHNOLOGY CO., LTD.", "APASS" }, { 0x0022E5, "Fisher-Rosemount Systems Inc.", "FISHER-ROSEMOUNT" }, { 0x0022E6, "Intelligent Data", "INTELLIGENT-DATA" }, { 0x0022E7, "WPS Parking Systems", "WPS-PARKING" }, { 0x0022E8, "Applition Co., Ltd.", "APPLITION" }, { 0x0022E9, "ProVision Communications", "PROVISION-COMMUNICATION" }, { 0x0022EA, "Rustelcom Inc.", "RUSTELCOM" }, { 0x0022EB, "Data Respons A/S", "DATA-RESPONS-A/S" }, { 0x0022EC, "IDEALBT TECHNOLOGY CORPORATION", "IDEALBT" }, { 0x0022ED, "TSI Power Corporation", "TSI-POWER" }, { 0x0022EE, "Algo Communication Products Ltd", "ALGO-COMMUNICATION-PRODUCTS" }, { 0x0022EF, "iWDL Technologies", "IWDL-TECHNOLOGIES" }, { 0x0022F0, "3 Greens Aviation Limited", "3-GREENS-AVIATION" }, { 0x0022F1, "Private", "PRIVATE" }, { 0x0022F2, "SunPower Corp", "SUNPOWER" }, { 0x0022F3, "SHARP Corporation", "SHARP" }, { 0x0022F4, "AMPAK Technology, Inc.", "AMPAK" }, { 0x0022F5, "Advanced Realtime Tracking GmbH", "ADVANCED-REALTIME-TRACKING" }, { 0x0022F6, "Syracuse Research Corporation", "SYRACUSE-RESEARCH" }, { 0x0022F7, "Conceptronic", "CONCEPTRONIC" }, { 0x0022F8, "PIMA Electronic Systems Ltd.", "PIMA" }, { 0x0022F9, "Pollin Electronic GmbH", "POLLIN" }, { 0x0022FA, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0022FB, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0022FC, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0022FD, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0022FE, "Advanced Illumination", "ADVANCED-ILLUMINATION" }, { 0x0022FF, "NIVIS LLC", "NIVIS" }, { 0x002300, "Cayee Computer Ltd.", "CAYEE" }, { 0x002301, "Witron Technology Limited", "WITRON" }, { 0x002302, "Cobalt Digital, Inc.", "COBALT-DIGITAL" }, { 0x002303, "LITE-ON IT Corporation", "LITE-ON-IT" }, { 0x002304, "Cisco Systems, Inc", "CISCO" }, { 0x002305, "Cisco Systems, Inc", "CISCO" }, { 0x002306, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x002307, "FUTURE INNOVATION TECH CO.,LTD", "FUTURE-INNOVATION-TECH" }, { 0x002308, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x002309, "Janam Technologies LLC", "JANAM-TECHNOLOGIES" }, { 0x00230A, "ARBURG GmbH & Co KG", "ARBURG" }, { 0x00230B, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x00230C, "CLOVER ELECTRONICS CO.,LTD.", "CLOVER-ELECTRONICS" }, { 0x00230D, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x00230E, "Gorba AG", "GORBA" }, { 0x00230F, "Hirsch Electronics Corporation", "HIRSCH-ELECTRONICS" }, { 0x002310, "LNC Technology Co., Ltd.", "LNC" }, { 0x002311, "Gloscom Co., Ltd.", "GLOSCOM" }, { 0x002312, "Apple, Inc.", "APPLE" }, { 0x002313, "Qool Technologies Ltd.", "QOOL-TECHNOLOGIES" }, { 0x002314, "Intel Corporate", "INTEL-CORPORATE" }, { 0x002315, "Intel Corporate", "INTEL-CORPORATE" }, { 0x002316, "KISAN ELECTRONICS CO", "KISAN-ELECTRONICS" }, { 0x002317, "Lasercraft Inc", "LASERCRAFT" }, { 0x002318, "Toshiba", "TOSHIBA" }, { 0x002319, "Sielox LLC", "SIELOX" }, { 0x00231A, "ITF Co., Ltd.", "ITF" }, { 0x00231B, "Danaher Motion - Kollmorgen", "DANAHER-MOTION-KOLLMORGEN" }, { 0x00231C, "Fourier Systems Ltd.", "FOURIER" }, { 0x00231D, "Deltacom Electronics Ltd", "DELTACOM-ELECTRONICS" }, { 0x00231E, "Cezzer Multimedia Technologies", "CEZZER-MULTIMEDIA-TECHNOLOGIES" }, { 0x00231F, "Guangda Electronic & Telecommunication Technology Development Co., Ltd.", "GUANGDA-TELECOMMUNICATION-DEVELOPMENT" }, { 0x002320, "Nicira Networks", "NICIRA-NETWORKS" }, { 0x002321, "Avitech International Corp", "AVITECH" }, { 0x002322, "KISS Teknical Solutions, Inc.", "KISS-TEKNICAL-SOLUTIONS" }, { 0x002323, "Zylin AS", "ZYLIN-AS" }, { 0x002324, "G-PRO COMPUTER", "G-PRO" }, { 0x002325, "IOLAN Holding", "IOLAN-HOLDING" }, { 0x002326, "FUJITSU LIMITED", "FUJITSU" }, { 0x002327, "Shouyo Electronics CO., LTD", "SHOUYO-ELECTRONICS" }, { 0x002328, "ALCON TELECOMMUNICATIONS CO., LTD.", "ALCON-TELECOMMUNICATIONS" }, { 0x002329, "DDRdrive LLC", "DDRDRIVE" }, { 0x00232A, "eonas IT-Beratung und -Entwicklung GmbH", "EONAS-IT-BERATUNG-UND-ENTWICKLUNG" }, { 0x00232B, "IRD A/S", "IRD-A/S" }, { 0x00232C, "Senticare", "SENTICARE" }, { 0x00232D, "SandForce", "SANDFORCE" }, { 0x00232E, "Kedah Electronics Engineering, LLC", "KEDAH-ELECTRONICS-ENGINEERING" }, { 0x00232F, "Advanced Card Systems Ltd.", "ADVANCED-CARD" }, { 0x002330, "DIZIPIA, INC.", "DIZIPIA" }, { 0x002331, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x002332, "Apple, Inc.", "APPLE" }, { 0x002333, "Cisco Systems, Inc", "CISCO" }, { 0x002334, "Cisco Systems, Inc", "CISCO" }, { 0x002335, "Linkflex Co.,Ltd", "LINKFLEX" }, { 0x002336, "METEL s.r.o.", "METEL-S-R-O" }, { 0x002337, "Global Star Solutions ULC", "GLOBAL-STAR-SOLUTIONS-ULC" }, { 0x002338, "OJ-Electronics A/S", "OJ-ELECTRONICS-A/S" }, { 0x002339, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00233A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00233B, "C-Matic Systems Ltd", "C-MATIC" }, { 0x00233C, "Alflex", "ALFLEX" }, { 0x00233D, "Laird Technologies", "LAIRD-TECHNOLOGIES" }, { 0x00233E, "Alcatel-Lucent IPD", "ALCATEL-LUCENT-IPD" }, { 0x00233F, "Purechoice Inc", "PURECHOICE" }, { 0x002340, "MiXTelematics", "MIXTELEMATICS" }, { 0x002341, "Vanderbilt International (SWE) AB", "VANDERBILT-SWE-AB" }, { 0x002342, "Coffee Equipment Company", "COFFEE-EQUIPMENT-COMPANY" }, { 0x002343, "TEM AG", "TEM" }, { 0x002344, "Objective Interface Systems, Inc.", "OBJECTIVE-INTERFACE" }, { 0x002345, "Sony Corporation", "SONY" }, { 0x002346, "Vestac", "VESTAC" }, { 0x002347, "ProCurve Networking by HP", "PROCURVE-NETWORKING-BY-HP" }, { 0x002348, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x002349, "Helmholtz Centre Berlin for Material and Energy", "HELMHOLTZ-CENTRE-BERLIN-FOR-MATERIAL-AND-ENERGY" }, { 0x00234A, "Private", "PRIVATE" }, { 0x00234B, "Inyuan Technology Inc.", "INYUAN" }, { 0x00234C, "KTC AB", "KTC-AB" }, { 0x00234D, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x00234E, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x00234F, "Luminous Power Technologies Pvt. Ltd.", "LUMINOUS-POWER-TECHNOLOGIES-PVT" }, { 0x002350, "RDC, Inc. dba LynTec", "RDC-DBA-LYNTEC" }, { 0x002351, "2Wire Inc", "2WIRE" }, { 0x002352, "DATASENSOR S.p.A.", "DATASENSOR" }, { 0x002353, "F E T Elettronica snc", "F-E-T-ELETTRONICA-SNC" }, { 0x002354, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x002355, "Kinco Automation(Shanghai) Ltd.", "KINCO-AUTOMATION-SHANGHAI" }, { 0x002356, "Packet Forensics LLC", "PACKET-FORENSICS" }, { 0x002357, "Pitronot Technologies and Engineering P.T.E. Ltd.", "PITRONOT-TECHNOLOGIES-AND-ENGINEERING-P-T-E" }, { 0x002358, "SYSTEL SA", "SYSTEL" }, { 0x002359, "Benchmark Electronics ( Thailand ) Public Company Limited", "BENCHMARK-ELECTRONICS-THAILAND-PUBLIC-COMPANY" }, { 0x00235A, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x00235B, "Gulfstream", "GULFSTREAM" }, { 0x00235C, "Aprius, Inc.", "APRIUS" }, { 0x00235D, "Cisco Systems, Inc", "CISCO" }, { 0x00235E, "Cisco Systems, Inc", "CISCO" }, { 0x00235F, "Silicon Micro Sensors GmbH", "SILICON-MICRO-SENSORS" }, { 0x002360, "Lookit Technology Co., Ltd", "LOOKIT" }, { 0x002361, "Unigen Corporation", "UNIGEN" }, { 0x002362, "Goldline Controls", "GOLDLINE-CONTROLS" }, { 0x002363, "Zhuhai Raysharp Technology Co.,Ltd", "ZHUHAI-RAYSHARP" }, { 0x002364, "Power Instruments Pte Ltd", "POWER-INSTRUMENTS-PTE" }, { 0x002365, "Insta Elektro GmbH", "INSTA-ELEKTRO" }, { 0x002366, "Beijing Siasun Electronic System Co.,Ltd.", "BEIJING-SIASUN-SYSTEM" }, { 0x002367, "UniControls a.s.", "UNICONTROLS" }, { 0x002368, "Zebra Technologies Inc", "ZEBRA-TECHNOLOGIES" }, { 0x002369, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x00236A, "SmartRG Inc", "SMARTRG" }, { 0x00236B, "Xembedded, Inc.", "XEMBEDDED" }, { 0x00236C, "Apple, Inc.", "APPLE" }, { 0x00236D, "ResMed Ltd", "RESMED" }, { 0x00236E, "Burster GmbH & Co KG", "BURSTER" }, { 0x00236F, "DAQ System", "DAQ-SYSTEM" }, { 0x002370, "Snell", "SNELL" }, { 0x002371, "SOAM Systel", "SOAM-SYSTEL" }, { 0x002372, "MORE STAR INDUSTRIAL GROUP LIMITED", "MORE-STAR-INDUSTRIAL-GROUP" }, { 0x002373, "GridIron Systems, Inc.", "GRIDIRON" }, { 0x002374, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x002375, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x002376, "HTC Corporation", "HTC" }, { 0x002377, "Isotek Electronics Ltd", "ISOTEK-ELECTRONICS" }, { 0x002378, "GN Netcom A/S", "GN-NETCOM-A/S" }, { 0x002379, "Union Business Machines Co. Ltd.", "UNION-BUSINESS-MACHINES" }, { 0x00237A, "RIM", "RIM" }, { 0x00237B, "WHDI LLC", "WHDI" }, { 0x00237C, "NEOTION", "NEOTION" }, { 0x00237D, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x00237E, "ELSTER GMBH", "ELSTER" }, { 0x00237F, "PLANTRONICS, INC.", "PLANTRONICS" }, { 0x002380, "Nanoteq", "NANOTEQ" }, { 0x002381, "Lengda Technology(Xiamen) Co.,Ltd.", "LENGDA-XIAMEN" }, { 0x002382, "Lih Rong electronic Enterprise Co., Ltd.", "LIH-RONG" }, { 0x002383, "InMage Systems Inc", "INMAGE" }, { 0x002384, "GGH Engineering s.r.l.", "GGH-ENGINEERING" }, { 0x002385, "ANTIPODE", "ANTIPODE" }, { 0x002386, "IMI Hydronic Engineering international SA", "IMI-HYDRONIC-ENGINEERING" }, { 0x002387, "ThinkFlood, Inc.", "THINKFLOOD" }, { 0x002388, "V.T. Telematica S.p.a.", "V-T-TELEMATICA" }, { 0x002389, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x00238A, "Ciena Corporation", "CIENA" }, { 0x00238B, "Quanta Computer Inc.", "QUANTA" }, { 0x00238C, "Private", "PRIVATE" }, { 0x00238D, "Techno Design Co., Ltd.", "TECHNO-DESIGN" }, { 0x00238E, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x00238F, "NIDEC COPAL CORPORATION", "NIDEC-COPAL" }, { 0x002390, "Algolware Corporation", "ALGOLWARE" }, { 0x002391, "Maxian", "MAXIAN" }, { 0x002392, "Proteus Industries Inc.", "PROTEUS-INDUSTRIES" }, { 0x002393, "AJINEXTEK", "AJINEXTEK" }, { 0x002394, "Samjeon", "SAMJEON" }, { 0x002395, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x002396, "ANDES TECHNOLOGY CORPORATION", "ANDES" }, { 0x002397, "Westell Technologies Inc.", "WESTELL-TECHNOLOGIES" }, { 0x002398, "Vutlan sro", "VUTLAN-SRO" }, { 0x002399, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00239A, "EasyData Hardware GmbH", "EASYDATA-HARDWARE" }, { 0x00239B, "Elster Solutions, LLC", "ELSTER-SOLUTIONS" }, { 0x00239C, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x00239D, "Mapower Electronics Co., Ltd", "MAPOWER-ELECTRONICS" }, { 0x00239E, "Jiangsu Lemote Technology Corporation Limited", "JIANGSU-LEMOTE" }, { 0x00239F, "Institut für Prüftechnik", "INSTITUT-FUER-PRUEFTECHNIK" }, { 0x0023A0, "Hana CNS Co., LTD.", "HANA-CNS" }, { 0x0023A1, "Trend Electronics Ltd", "TREND-ELECTRONICS" }, { 0x0023A2, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0023A3, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0023A4, "New Concepts Development Corp.", "NEW-CONCEPTS-DEVELOPMENT" }, { 0x0023A5, "SageTV, LLC", "SAGETV" }, { 0x0023A6, "E-Mon", "E-MON" }, { 0x0023A7, "Redpine Signals, Inc.", "REDPINE-SIGNALS" }, { 0x0023A8, "Marshall Electronics", "MARSHALL-ELECTRONICS" }, { 0x0023A9, "Beijing Detianquan Electromechanical Equipment Co., Ltd", "BEIJING-DETIANQUAN-ELECTROMECHANICAL-EQUIPMENT" }, { 0x0023AA, "HFR, Inc.", "HFR" }, { 0x0023AB, "Cisco Systems, Inc", "CISCO" }, { 0x0023AC, "Cisco Systems, Inc", "CISCO" }, { 0x0023AD, "Xmark Corporation", "XMARK" }, { 0x0023AE, "Dell Inc.", "DELL" }, { 0x0023AF, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0023B0, "COMXION Technology Inc.", "COMXION" }, { 0x0023B1, "Longcheer Technology (Singapore) Pte Ltd", "LONGCHEER-SINGAPORE-PTE" }, { 0x0023B2, "Intelligent Mechatronic Systems Inc", "INTELLIGENT-MECHATRONIC" }, { 0x0023B3, "Lyyn AB", "LYYN-AB" }, { 0x0023B4, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0023B5, "ORTANA LTD", "ORTANA" }, { 0x0023B6, "SECURITE COMMUNICATIONS / HONEYWELL", "SECURITE-COMMUNICATION-/-HONEYWELL" }, { 0x0023B7, "Q-Light Co., Ltd.", "Q-LIGHT" }, { 0x0023B8, "Sichuan Jiuzhou Electronic Technology Co.,Ltd", "SICHUAN-JIUZHOU" }, { 0x0023B9, "Airbus Defence and Space Deutschland GmbH", "AIRBUS-DEFENCE-AND-SPACE-DEUTSCHLAND" }, { 0x0023BA, "Chroma", "CHROMA" }, { 0x0023BB, "Accretech SBS, Inc.", "ACCRETECH-SBS" }, { 0x0023BC, "EQ-SYS GmbH", "EQ-SYS" }, { 0x0023BD, "Digital Ally, Inc.", "DIGITAL-ALLY" }, { 0x0023BE, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x0023BF, "Mainpine, Inc.", "MAINPINE" }, { 0x0023C0, "Broadway Networks", "BROADWAY-NETWORKS" }, { 0x0023C1, "Securitas Direct AB", "SECURITAS-DIRECT-AB" }, { 0x0023C2, "SAMSUNG Electronics. Co. LTD", "SAMSUNG-ELECTRONICS" }, { 0x0023C3, "LogMeIn, Inc.", "LOGMEIN" }, { 0x0023C4, "Lux Lumen", "LUX-LUMEN" }, { 0x0023C5, "Radiation Safety and Control Services Inc", "RADIATION-SAFETY-AND-CONTROL-SERVICES" }, { 0x0023C6, "SMC Corporation", "SMC" }, { 0x0023C7, "AVSystem sp. z o. o.", "AVSYSTEM-SP-Z-O-O" }, { 0x0023C8, "TEAM-R", "TEAM-R" }, { 0x0023C9, "Sichuan Tianyi Information Science & Technology Stock CO.,LTD", "SICHUAN-TIANYI-INFORMATION-SCIENCE-STOCK" }, { 0x0023CA, "Behind The Set, LLC", "BEHIND-THE-SET" }, { 0x0023CB, "Shenzhen Full-join Technology Co.,Ltd", "SHENZHEN-FULL-JOIN" }, { 0x0023CC, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x0023CD, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x0023CE, "KITA DENSHI CORPORATION", "KITA-DENSHI" }, { 0x0023CF, "CUMMINS-ALLISON CORP.", "CUMMINS-ALLISON" }, { 0x0023D0, "Uniloc USA Inc.", "UNILOC-USA" }, { 0x0023D1, "TRG", "TRG" }, { 0x0023D2, "Inhand Electronics, Inc.", "INHAND-ELECTRONICS" }, { 0x0023D3, "AirLink WiFi Networking Corp.", "AIRLINK-WIFI-NETWORKING" }, { 0x0023D4, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0023D5, "WAREMA Renkhoff SE", "WAREMA-RENKHOFF-SE" }, { 0x0023D6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0023D7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0023D8, "Ball-It Oy", "BALL-IT-OY" }, { 0x0023D9, "Banner Engineering", "BANNER-ENGINEERING" }, { 0x0023DA, "Industrial Computer Source (Deutschland)GmbH", "INDUSTRIAL-SOURCE-DEUTSCHLAND" }, { 0x0023DB, "saxnet gmbh", "SAXNET" }, { 0x0023DC, "Benein, Inc", "BENEIN" }, { 0x0023DD, "ELGIN S.A.", "ELGIN" }, { 0x0023DE, "Ansync Inc.", "ANSYNC" }, { 0x0023DF, "Apple, Inc.", "APPLE" }, { 0x0023E0, "INO Therapeutics LLC", "INO-THERAPEUTICS" }, { 0x0023E1, "Cavena Image Products AB", "CAVENA-IMAGE-PRODUCTS-AB" }, { 0x0023E2, "SEA Signalisation", "SEA-SIGNALISATION" }, { 0x0023E3, "Microtronic AG", "MICROTRONIC" }, { 0x0023E4, "IPnect co. ltd.", "IPNECT" }, { 0x0023E5, "IPaXiom Networks", "IPAXIOM-NETWORKS" }, { 0x0023E6, "Innovation Farm, Inc.", "INNOVATION-FARM" }, { 0x0023E7, "Hinke A/S", "HINKE-A/S" }, { 0x0023E8, "Demco Corp.", "DEMCO" }, { 0x0023E9, "F5 Networks, Inc.", "F5-NETWORKS" }, { 0x0023EA, "Cisco Systems, Inc", "CISCO" }, { 0x0023EB, "Cisco Systems, Inc", "CISCO" }, { 0x0023EC, "Algorithmix GmbH", "ALGORITHMIX" }, { 0x0023ED, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0023EE, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0023EF, "Zuend Systemtechnik AG", "ZUEND-SYSTEMTECHNIK" }, { 0x0023F0, "Shanghai Jinghan Weighing Apparatus Co. Ltd.", "SHANGHAI-JINGHAN-WEIGHING-APPARATUS" }, { 0x0023F1, "Sony Corporation", "SONY" }, { 0x0023F2, "TVLogic", "TVLOGIC" }, { 0x0023F3, "Glocom, Inc.", "GLOCOM" }, { 0x0023F4, "Masternaut", "MASTERNAUT" }, { 0x0023F5, "WILO SE", "WILO-SE" }, { 0x0023F6, "Softwell Technology Co., Ltd.", "SOFTWELL" }, { 0x0023F7, "Private", "PRIVATE" }, { 0x0023F8, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x0023F9, "Double-Take Software, INC.", "DOUBLE-TAKE-SOFTWARE" }, { 0x0023FA, "RG Nets, Inc.", "RG-NETS" }, { 0x0023FB, "IP Datatel, LLC.", "IP-DATATEL" }, { 0x0023FC, "Ultra Stereo Labs, Inc", "ULTRA-STEREO-LABS" }, { 0x0023FD, "AFT Atlas Fahrzeugtechnik GmbH", "AFT-ATLAS-FAHRZEUGTECHNIK" }, { 0x0023FE, "Biodevices, SA", "BIODEVICES" }, { 0x0023FF, "Beijing HTTC Technology Ltd.", "BEIJING-HTTC" }, { 0x002400, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x002401, "D-Link Corporation", "D-LINK" }, { 0x002402, "Op-Tection GmbH", "OP-TECTION" }, { 0x002403, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x002404, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x002405, "Dilog Nordic AB", "DILOG-NORDIC-AB" }, { 0x002406, "Pointmobile", "POINTMOBILE" }, { 0x002407, "TELEM SAS", "TELEM-SAS" }, { 0x002408, "Pacific Biosciences", "PACIFIC-BIOSCIENCES" }, { 0x002409, "The Toro Company", "THE-TORO-COMPANY" }, { 0x00240A, "US Beverage Net", "US-BEVERAGE-NET" }, { 0x00240B, "Virtual Computer Inc.", "VIRTUAL" }, { 0x00240C, "DELEC GmbH", "DELEC" }, { 0x00240D, "OnePath Networks LTD.", "ONEPATH-NETWORKS" }, { 0x00240E, "Inventec Besta Co., Ltd.", "INVENTEC-BESTA" }, { 0x00240F, "Ishii Tool & Engineering Corporation", "ISHII-TOOL-ENGINEERING" }, { 0x002410, "NUETEQ Technology,Inc.", "NUETEQ" }, { 0x002411, "PharmaSmart LLC", "PHARMASMART" }, { 0x002412, "Benign Technologies Co, Ltd.", "BENIGN-TECHNOLOGIES" }, { 0x002413, "Cisco Systems, Inc", "CISCO" }, { 0x002414, "Cisco Systems, Inc", "CISCO" }, { 0x002415, "Magnetic Autocontrol GmbH", "MAGNETIC-AUTOCONTROL" }, { 0x002416, "Any Use", "ANY-USE" }, { 0x002417, "Thomson Telecom Belgium", "THOMSON-TELECOM-BELGIUM" }, { 0x002418, "Nextwave Semiconductor", "NEXTWAVE-SEMICONDUCTOR" }, { 0x002419, "Private", "PRIVATE" }, { 0x00241A, "Red Beetle Inc.", "RED-BEETLE" }, { 0x00241B, "iWOW Communications Pte Ltd", "IWOW-COMMUNICATION-PTE" }, { 0x00241C, "FuGang Electronic (DG) Co.,Ltd", "FUGANG-DG" }, { 0x00241D, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x00241E, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x00241F, "DCT-Delta GmbH", "DCT-DELTA" }, { 0x002420, "NetUP Inc.", "NETUP" }, { 0x002421, "MICRO-STAR INT'L CO., LTD.", "MICRO-STAR" }, { 0x002422, "Knapp Logistik Automation GmbH", "KNAPP-LOGISTIK-AUTOMATION" }, { 0x002423, "AzureWave Technologies (Shanghai) Inc.", "AZUREWAVE-TECHNOLOGIES-SHANGHAI" }, { 0x002424, "Ace Axis Limited", "ACE-AXIS" }, { 0x002425, "Shenzhenshi chuangzhicheng Technology Co.,Ltd", "SHENZHENSHI-CHUANGZHICHENG" }, { 0x002426, "NOHMI BOSAI LTD.", "NOHMI-BOSAI" }, { 0x002427, "SSI COMPUTER CORP", "SSI" }, { 0x002428, "EnergyICT", "ENERGYICT" }, { 0x002429, "MK MASTER INC.", "MK-MASTER" }, { 0x00242A, "Hittite Microwave Corporation", "HITTITE-MICROWAVE" }, { 0x00242B, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x00242C, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x00242E, "Datastrip Inc.", "DATASTRIP" }, { 0x00242F, "Micron", "MICRON" }, { 0x002430, "Ruby Tech Corp.", "RUBY-TECH" }, { 0x002431, "Uni-v co.,ltd", "UNI-V" }, { 0x002432, "Neostar Technology Co.,LTD", "NEOSTAR" }, { 0x002433, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x002434, "Lectrosonics, Inc.", "LECTROSONICS" }, { 0x002435, "WIDE CORPORATION", "WIDE" }, { 0x002436, "Apple, Inc.", "APPLE" }, { 0x002437, "Motorola - BSG", "MOTOROLA-BSG" }, { 0x002438, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x002439, "Digital Barriers Advanced Technologies", "DIGITAL-BARRIERS-ADVANCED-TECHNOLOGIES" }, { 0x00243A, "Ludl Electronic Products", "LUDL-PRODUCTS" }, { 0x00243B, "CSSI (S) Pte Ltd", "CSSI-S-PTE" }, { 0x00243C, "S.A.A.A.", "A-A" }, { 0x00243D, "Emerson Appliance Motors and Controls", "EMERSON-APPLIANCE-MOTORS-AND-CONTROLS" }, { 0x00243F, "Storwize, Inc.", "STORWIZE" }, { 0x002440, "Halo Monitoring, Inc.", "HALO-MONITORING" }, { 0x002441, "Wanzl Metallwarenfabrik GmbH", "WANZL-METALLWARENFABRIK" }, { 0x002442, "Axona Limited", "AXONA" }, { 0x002443, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x002444, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x002445, "Adtran Inc", "ADTRAN" }, { 0x002446, "MMB Research Inc.", "MMB-RESEARCH" }, { 0x002447, "Kaztek Systems", "KAZTEK" }, { 0x002448, "SpiderCloud Wireless, Inc", "SPIDERCLOUD-WIRELESS" }, { 0x002449, "Shen Zhen Lite Star Electronics Technology Co., Ltd", "SHEN-ZHEN-LITE-STAR-ELECTRONICS" }, { 0x00244A, "Voyant International", "VOYANT" }, { 0x00244B, "PERCEPTRON INC", "PERCEPTRON" }, { 0x00244C, "Solartron Metrology Ltd", "SOLARTRON-METROLOGY" }, { 0x00244D, "Hokkaido Electronics Corporation", "HOKKAIDO-ELECTRONICS" }, { 0x00244E, "RadChips, Inc.", "RADCHIPS" }, { 0x00244F, "Asantron Technologies Ltd.", "ASANTRON-TECHNOLOGIES" }, { 0x002450, "Cisco Systems, Inc", "CISCO" }, { 0x002451, "Cisco Systems, Inc", "CISCO" }, { 0x002452, "Silicon Software GmbH", "SILICON-SOFTWARE" }, { 0x002453, "Initra d.o.o.", "INITRA-D-O-O" }, { 0x002454, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x002455, "MuLogic BV", "MULOGIC" }, { 0x002456, "2Wire Inc", "2WIRE" }, { 0x002458, "PA Bastion CC", "PA-BASTION-CC" }, { 0x002459, "ABB Automation products GmbH", "ABB-AUTOMATION-PRODUCTS" }, { 0x00245A, "Nanjing Panda Electronics Company Limited", "NANJING-PANDA-ELECTRONICS-COMPANY" }, { 0x00245B, "RAIDON TECHNOLOGY, INC.", "RAIDON" }, { 0x00245C, "Design-Com Technologies Pty. Ltd.", "DESIGN-COM-TECHNOLOGIES-PTY" }, { 0x00245D, "Terberg besturingstechniek B.V.", "TERBERG-BESTURINGSTECHNIEK-B-V" }, { 0x00245E, "Hivision Co.,ltd", "HIVISION" }, { 0x00245F, "Vine Telecom CO.,Ltd.", "VINE-TELECOM" }, { 0x002460, "Giaval Science Development Co. Ltd.", "GIAVAL-SCIENCE-DEVELOPMENT" }, { 0x002461, "Shin Wang Tech.", "SHIN-WANG-TECH" }, { 0x002462, "Rayzone Corporation", "RAYZONE" }, { 0x002463, "Phybridge Inc", "PHYBRIDGE" }, { 0x002464, "Bridge Technologies Co AS", "BRIDGE-TECHNOLOGIES-AS" }, { 0x002465, "Elentec", "ELENTEC" }, { 0x002466, "Unitron nv", "UNITRON-NV" }, { 0x002467, "AOC International (Europe) GmbH", "AOC-EUROPE" }, { 0x002468, "Sumavision Technologies Co.,Ltd", "SUMAVISION-TECHNOLOGIES" }, { 0x002469, "Fasttel - Smart Doorphones", "FASTTEL-SMART-DOORPHONES" }, { 0x00246A, "Solid Year Co., Ltd.", "SOLID-YEAR" }, { 0x00246B, "Covia, Inc.", "COVIA" }, { 0x00246C, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x00246D, "Weinzierl Engineering GmbH", "WEINZIERL-ENGINEERING" }, { 0x00246E, "Phihong USA Corp.", "PHIHONG-USA" }, { 0x00246F, "Onda Communication spa", "ONDA-COMMUNICATION-SPA" }, { 0x002470, "AUROTECH ultrasound AS.", "AUROTECH-ULTRASOUND-AS" }, { 0x002471, "Fusion MultiSystems dba Fusion-io", "FUSION-MULTISYSTEMS-DBA-FUSION-IO" }, { 0x002472, "ReDriven Power Inc.", "REDRIVEN-POWER" }, { 0x002473, "3COM EUROPE LTD", "3COM" }, { 0x002474, "Autronica Fire And Securirty", "AUTRONICA-FIRE-AND-SECURIRTY" }, { 0x002475, "Compass System(Embedded Dept.)", "COMPASS-SYSTEM-EMBEDDED-DEPT" }, { 0x002476, "TAP.tv", "TAP-TV" }, { 0x002477, "Tibbo Technology", "TIBBO" }, { 0x002478, "Mag Tech Electronics Co Limited", "MAG-TECH-ELECTRONICS" }, { 0x002479, "Optec Displays, Inc.", "OPTEC-DISPLAYS" }, { 0x00247A, "FU YI CHENG Technology Co., Ltd.", "FU-YI-CHENG" }, { 0x00247B, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x00247C, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x00247D, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x00247E, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x00247F, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x002480, "Meteocontrol GmbH", "METEOCONTROL" }, { 0x002481, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x002482, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x002483, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x002484, "Bang and Olufsen Medicom a/s", "BANG-AND-OLUFSEN-MEDICOM-A/S" }, { 0x002485, "ConteXtream Ltd", "CONTEXTREAM" }, { 0x002486, "DesignArt Networks", "DESIGNART-NETWORKS" }, { 0x002487, "Transact Campus, Inc.", "TRANSACT-CAMPUS" }, { 0x002488, "Centre For Development Of Telematics", "CENTRE-FOR-DEVELOPMENT-OF-TELEMATICS" }, { 0x002489, "Vodafone Omnitel N.V.", "VODAFONE-OMNITEL-N-V" }, { 0x00248A, "Kaga Electronics Co., Ltd.", "KAGA-ELECTRONICS" }, { 0x00248B, "HYBUS CO., LTD.", "HYBUS" }, { 0x00248C, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x00248D, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x00248E, "Infoware ZRt.", "INFOWARE-ZRT" }, { 0x00248F, "DO-MONIX", "DO-MONIX" }, { 0x002490, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x002491, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x002492, "Motorola, Broadband Solutions Group", "MOTOROLA-BROADBAND-SOLUTIONS-GROUP" }, { 0x002493, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x002494, "Shenzhen Baoxin Tech CO., Ltd.", "SHENZHEN-BAOXIN-TECH" }, { 0x002495, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x002496, "Ginzinger electronic systems", "GINZINGER" }, { 0x002497, "Cisco Systems, Inc", "CISCO" }, { 0x002498, "Cisco Systems, Inc", "CISCO" }, { 0x002499, "Aquila Technologies", "AQUILA-TECHNOLOGIES" }, { 0x00249A, "Beijing Zhongchuang Telecommunication Test Co., Ltd.", "BEIJING-ZHONGCHUANG-TELECOMMUNICATION-TEST" }, { 0x00249B, "Action Star Enterprise Co., Ltd.", "ACTION-STAR" }, { 0x00249C, "Bimeng Comunication System Co. Ltd", "BIMENG-COMUNICATION-SYSTEM" }, { 0x00249D, "NES Technology Inc.", "NES" }, { 0x00249E, "ADC-Elektronik GmbH", "ADC-ELEKTRONIK" }, { 0x00249F, "RIM Testing Services", "RIM-TESTING-SERVICES" }, { 0x0024A0, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0024A1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0024A2, "Hong Kong Middleware Technology Limited", "HONG-KONG-MIDDLEWARE" }, { 0x0024A3, "Sonim Technologies Inc", "SONIM-TECHNOLOGIES" }, { 0x0024A4, "Siklu Communication", "SIKLU-COMMUNICATION" }, { 0x0024A5, "BUFFALO.INC", "BUFFALO" }, { 0x0024A6, "TELESTAR DIGITAL GmbH", "TELESTAR-DIGITAL" }, { 0x0024A7, "Advanced Video Communications Inc.", "ADVANCED-VIDEO-COMMUNICATION" }, { 0x0024A8, "ProCurve Networking by HP", "PROCURVE-NETWORKING-BY-HP" }, { 0x0024A9, "Ag Leader Technology", "LEADER" }, { 0x0024AA, "Dycor Technologies Ltd.", "DYCOR-TECHNOLOGIES" }, { 0x0024AB, "A7 Engineering, Inc.", "A7-ENGINEERING" }, { 0x0024AC, "Hangzhou DPtech Technologies Co., Ltd.", "HANGZHOU-DPTECH-TECHNOLOGIES" }, { 0x0024AD, "Adolf Thies Gmbh & Co. KG", "ADOLF-THIES" }, { 0x0024AE, "IDEMIA", "IDEMIA" }, { 0x0024AF, "Dish Technologies Corp", "DISH-TECHNOLOGIES" }, { 0x0024B0, "ESAB AB", "ESAB-AB" }, { 0x0024B1, "Coulomb Technologies", "COULOMB-TECHNOLOGIES" }, { 0x0024B2, "NETGEAR", "NETGEAR" }, { 0x0024B3, "Graf-Syteco GmbH & Co. KG", "GRAF-SYTECO" }, { 0x0024B4, "ESCATRONIC GmbH", "ESCATRONIC" }, { 0x0024B5, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x0024B6, "Seagate Technology", "SEAGATE" }, { 0x0024B7, "GridPoint, Inc.", "GRIDPOINT" }, { 0x0024B8, "free alliance sdn bhd", "FREE-ALLIANCE" }, { 0x0024B9, "Wuhan Higheasy Electronic Technology Development Co.Ltd", "WUHAN-HIGHEASY-DEVELOPMENT" }, { 0x0024BA, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0024BB, "CENTRAL Corporation", "CENTRAL" }, { 0x0024BC, "HuRob Co.,Ltd", "HUROB" }, { 0x0024BD, "Hainzl Industriesysteme GmbH", "HAINZL-INDUSTRIESYSTEME" }, { 0x0024BE, "Sony Corporation", "SONY" }, { 0x0024BF, "Carrier Culoz SA", "CARRIER-CULOZ" }, { 0x0024C0, "NTI COMODO INC", "NTI-COMODO" }, { 0x0024C1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0024C2, "Asumo Co.,Ltd.", "ASUMO" }, { 0x0024C3, "Cisco Systems, Inc", "CISCO" }, { 0x0024C4, "Cisco Systems, Inc", "CISCO" }, { 0x0024C5, "Meridian Audio Limited", "MERIDIAN-AUDIO" }, { 0x0024C6, "Hager Electro SAS", "HAGER-ELECTRO-SAS" }, { 0x0024C7, "Mobilarm Ltd", "MOBILARM" }, { 0x0024C8, "Broadband Solutions Group", "BROADBAND-SOLUTIONS-GROUP" }, { 0x0024C9, "Broadband Solutions Group", "BROADBAND-SOLUTIONS-GROUP" }, { 0x0024CA, "Tobii Technology AB", "TOBII-AB" }, { 0x0024CB, "Autonet Mobile", "AUTONET-MOBILE" }, { 0x0024CC, "Fascinations Toys and Gifts, Inc.", "FASCINATIONS-TOYS-AND-GIFTS" }, { 0x0024CD, "Willow Garage, Inc.", "WILLOW-GARAGE" }, { 0x0024CE, "Exeltech Inc", "EXELTECH" }, { 0x0024CF, "Inscape Data Corporation", "INSCAPE-DATA" }, { 0x0024D0, "Shenzhen SOGOOD Industry CO.,LTD.", "SHENZHEN-SOGOOD-INDUSTRY" }, { 0x0024D1, "Thomson Inc.", "THOMSON" }, { 0x0024D2, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x0024D3, "QUALICA Inc.", "QUALICA" }, { 0x0024D4, "FREEBOX SAS", "FREEBOX-SAS" }, { 0x0024D5, "Winward Industrial Limited", "WINWARD-INDUSTRIAL" }, { 0x0024D6, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0024D7, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0024D8, "IlSung Precision", "ILSUNG-PRECISION" }, { 0x0024D9, "BICOM, Inc.", "BICOM" }, { 0x0024DA, "Innovar Systems Limited", "INNOVAR" }, { 0x0024DB, "Alcohol Monitoring Systems", "ALCOHOL-MONITORING" }, { 0x0024DC, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x0024DD, "Centrak, Inc.", "CENTRAK" }, { 0x0024DE, "GLOBAL Technology Inc.", "GLOBAL" }, { 0x0024DF, "Digitalbox Europe GmbH", "DIGITALBOX-EUROPE" }, { 0x0024E0, "DS Tech, LLC", "DS-TECH" }, { 0x0024E1, "Convey Computer Corp.", "CONVEY" }, { 0x0024E2, "HASEGAWA ELECTRIC CO.,LTD.", "HASEGAWA-ELECTRIC" }, { 0x0024E3, "CAO Group", "CAO-GROUP" }, { 0x0024E4, "Withings", "WITHINGS" }, { 0x0024E5, "Seer Technology, Inc", "SEER" }, { 0x0024E6, "In Motion Technology Inc.", "IN-MOTION" }, { 0x0024E7, "Plaster Networks", "PLASTER-NETWORKS" }, { 0x0024E8, "Dell Inc.", "DELL" }, { 0x0024E9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0024EA, "iris-GmbH infrared & intelligent sensors", "IRIS-INFRARED-INTELLIGENT-SENSORS" }, { 0x0024EB, "ClearPath Networks, Inc.", "CLEARPATH-NETWORKS" }, { 0x0024EC, "United Information Technology Co.,Ltd.", "UNITED-INFORMATION" }, { 0x0024ED, "YT Elec. Co,.Ltd.", "YT-ELEC" }, { 0x0024EE, "Wynmax Inc.", "WYNMAX" }, { 0x0024EF, "Sony Corporation", "SONY" }, { 0x0024F0, "Seanodes", "SEANODES" }, { 0x0024F1, "Shenzhen Fanhai Sanjiang Electronics Co., Ltd.", "SHENZHEN-FANHAI-SANJIANG-ELECTRONICS" }, { 0x0024F2, "Uniphone Telecommunication Co., Ltd.", "UNIPHONE-TELECOMMUNICATION" }, { 0x0024F3, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x0024F4, "Kaminario, Ltd.", "KAMINARIO" }, { 0x0024F5, "NDS Surgical Imaging", "NDS-SURGICAL-IMAGING" }, { 0x0024F6, "MIYOSHI ELECTRONICS CORPORATION", "MIYOSHI-ELECTRONICS" }, { 0x0024F7, "Cisco Systems, Inc", "CISCO" }, { 0x0024F8, "Technical Solutions Company Ltd.", "TECHNICAL-SOLUTIONS-COMPANY" }, { 0x0024F9, "Cisco Systems, Inc", "CISCO" }, { 0x0024FA, "Hilger u. Kern GMBH", "HILGER-U-KERN" }, { 0x0024FB, "Private", "PRIVATE" }, { 0x0024FC, "QuoPin Co., Ltd.", "QUOPIN" }, { 0x0024FD, "Accedian Networks Inc", "ACCEDIAN-NETWORKS" }, { 0x0024FE, "AVM GmbH", "AVM" }, { 0x0024FF, "QLogic Corporation", "QLOGIC" }, { 0x002500, "Apple, Inc.", "APPLE" }, { 0x002501, "JSC Supertel", "JSC-SUPERTEL" }, { 0x002502, "NaturalPoint", "NATURALPOINT" }, { 0x002503, "IBM Corp", "IBM" }, { 0x002504, "Valiant Communications Limited", "VALIANT-COMMUNICATION" }, { 0x002505, "eks Engel GmbH & Co. KG", "EKS-ENGEL" }, { 0x002506, "A.I. ANTITACCHEGGIO ITALIA SRL", "A-I-ANTITACCHEGGIO-ITALIA-SRL" }, { 0x002507, "ASTAK Inc.", "ASTAK" }, { 0x002508, "Maquet Cardiopulmonary AG", "MAQUET-CARDIOPULMONARY" }, { 0x002509, "SHARETRONIC Group LTD", "SHARETRONIC-GROUP" }, { 0x00250A, "Security Expert Co. Ltd", "SECURITY-EXPERT" }, { 0x00250B, "CENTROFACTOR INC", "CENTROFACTOR" }, { 0x00250C, "Senet Inc", "SENET" }, { 0x00250D, "GZT Telkom-Telmor sp. z o.o.", "GZT-TELKOM-TELMOR-SP-Z-O-O" }, { 0x00250E, "gt german telematics gmbh", "GT-GERMAN-TELEMATICS" }, { 0x00250F, "On-Ramp Wireless, Inc.", "ON-RAMP-WIRELESS" }, { 0x002510, "Pico-Tesla Magnetic Therapies", "PICO-TESLA-MAGNETIC-THERAPIES" }, { 0x002511, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x002512, "zte corporation", "ZTE" }, { 0x002513, "CXP DIGITAL BV", "CXP-DIGITAL" }, { 0x002514, "PC Worth Int'l Co., Ltd.", "PC-WORTH" }, { 0x002515, "SFR", "SFR" }, { 0x002516, "Integrated Design Tools, Inc.", "INTEGRATED-DESIGN-TOOLS" }, { 0x002517, "Venntis, LLC", "VENNTIS" }, { 0x002518, "Power PLUS Communications AG", "POWER-PLUS-COMMUNICATION" }, { 0x002519, "Viaas Inc", "VIAAS" }, { 0x00251A, "Psiber Data Systems Inc.", "PSIBER-DATA" }, { 0x00251B, "Philips CareServant", "PHILIPS-CARESERVANT" }, { 0x00251C, "EDT", "EDT" }, { 0x00251D, "DSA Encore, LLC", "DSA-ENCORE" }, { 0x00251E, "ROTEL TECHNOLOGIES", "ROTEL-TECHNOLOGIES" }, { 0x00251F, "ZYNUS VISION INC.", "ZYNUS-VISION" }, { 0x002520, "SMA Railway Technology GmbH", "SMA-RAILWAY" }, { 0x002521, "Logitek Electronic Systems, Inc.", "LOGITEK" }, { 0x002522, "ASRock Incorporation", "ASROCK-INCORPORATION" }, { 0x002523, "OCP Inc.", "OCP" }, { 0x002524, "Lightcomm Technology Co., Ltd", "LIGHTCOMM" }, { 0x002525, "CTERA Networks Ltd.", "CTERA-NETWORKS" }, { 0x002526, "Genuine Technologies Co., Ltd.", "GENUINE-TECHNOLOGIES" }, { 0x002527, "Bitrode Corp.", "BITRODE" }, { 0x002528, "Daido Signal Co., Ltd.", "DAIDO-SIGNAL" }, { 0x002529, "COMELIT GROUP S.P.A", "COMELIT-GROUP" }, { 0x00252A, "Chengdu GeeYa Technology Co.,LTD", "CHENGDU-GEEYA" }, { 0x00252B, "Stirling Energy Systems", "STIRLING-ENERGY" }, { 0x00252C, "Entourage Systems, Inc.", "ENTOURAGE" }, { 0x00252D, "Kiryung Electronics", "KIRYUNG-ELECTRONICS" }, { 0x00252E, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x00252F, "Energy, Inc.", "ENERGY" }, { 0x002530, "Aetas Systems Inc.", "AETAS" }, { 0x002531, "Cloud Engines, Inc.", "CLOUD-ENGINES" }, { 0x002532, "Digital Recorders", "DIGITAL-RECORDERS" }, { 0x002533, "WITTENSTEIN AG", "WITTENSTEIN" }, { 0x002535, "Minimax GmbH & Co KG", "MINIMAX" }, { 0x002536, "Oki Electric Industry Co., Ltd.", "OKI-ELECTRIC-INDUSTRY" }, { 0x002537, "Runcom Technologies Ltd.", "RUNCOM-TECHNOLOGIES" }, { 0x002538, "Samsung Electronics Co., Ltd., Memory Division", "SAMSUNG-ELECTRONICS-MEMORY-DIVISION" }, { 0x002539, "IfTA GmbH", "IFTA" }, { 0x00253A, "CEVA, Ltd.", "CEVA" }, { 0x00253B, "din Dietmar Nocker Facilitymanagement GmbH", "DIN-DIETMAR-NOCKER-FACILITYMANAGEMENT" }, { 0x00253C, "2Wire Inc", "2WIRE" }, { 0x00253D, "DRS Consolidated Controls", "DRS-CONSOLIDATED-CONTROLS" }, { 0x00253E, "Sensus Metering Systems", "SENSUS-METERING" }, { 0x002540, "Quasar Technologies, Inc.", "QUASAR-TECHNOLOGIES" }, { 0x002541, "Maquet Critical Care AB", "MAQUET-CRITICAL-CARE-AB" }, { 0x002542, "Pittasoft", "PITTASOFT" }, { 0x002543, "MONEYTECH", "MONEYTECH" }, { 0x002544, "LoJack Corporation", "LOJACK" }, { 0x002545, "Cisco Systems, Inc", "CISCO" }, { 0x002546, "Cisco Systems, Inc", "CISCO" }, { 0x002547, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x002548, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x002549, "Jeorich Tech. Co.,Ltd.", "JEORICH-TECH" }, { 0x00254A, "RingCube Technologies, Inc.", "RINGCUBE-TECHNOLOGIES" }, { 0x00254B, "Apple, Inc.", "APPLE" }, { 0x00254C, "Videon Central, Inc.", "VIDEON-CENTRAL" }, { 0x00254D, "Singapore Technologies Electronics Limited", "SINGAPORE-TECHNOLOGIES-ELECTRONICS" }, { 0x00254E, "Vertex Wireless Co., Ltd.", "VERTEX-WIRELESS" }, { 0x00254F, "ELETTROLAB Srl", "ELETTROLAB-SRL" }, { 0x002550, "Riverbed Technology, Inc.", "RIVERBED" }, { 0x002551, "SE-Elektronic GmbH", "SE-ELEKTRONIC" }, { 0x002552, "VXi Corporation", "VXI" }, { 0x002553, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x002554, "Pixel8 Networks", "PIXEL8-NETWORKS" }, { 0x002555, "Visonic Technologies 1993 Ltd.", "VISONIC-TECHNOLOGIES-1993" }, { 0x002556, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x002557, "BlackBerry RTS", "BLACKBERRY-RTS" }, { 0x002558, "MPEDIA", "MPEDIA" }, { 0x002559, "Syphan Technologies Ltd", "SYPHAN-TECHNOLOGIES" }, { 0x00255A, "Tantalus Systems Corp.", "TANTALUS" }, { 0x00255B, "CoachComm, LLC", "COACHCOMM" }, { 0x00255C, "NEC Corporation", "NEC" }, { 0x00255D, "Morningstar Corporation", "MORNINGSTAR" }, { 0x00255E, "Shanghai Dare Technologies Co.,Ltd.", "SHANGHAI-DARE-TECHNOLOGIES" }, { 0x00255F, "SenTec AG", "SENTEC" }, { 0x002560, "Ibridge Networks & Communications Ltd.", "IBRIDGE-NETWORKS-COMMUNICATION" }, { 0x002561, "ProCurve Networking by HP", "PROCURVE-NETWORKING-BY-HP" }, { 0x002562, "interbro Co. Ltd.", "INTERBRO" }, { 0x002563, "Luxtera Inc", "LUXTERA" }, { 0x002564, "Dell Inc.", "DELL" }, { 0x002565, "Vizimax Inc.", "VIZIMAX" }, { 0x002566, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x002567, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x002568, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x002569, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x00256A, "inIT - Institut Industrial IT", "INIT-INSTITUT-INDUSTRIAL-IT" }, { 0x00256B, "ATENIX E.E. s.r.l.", "ATENIX-E-E" }, { 0x00256C, "Azimut Production Association JSC", "AZIMUT-PRODUCTION-ASSOCIATION-JSC" }, { 0x00256D, "Broadband Forum", "BROADBAND-FORUM" }, { 0x00256E, "Van Breda B.V.", "VAN-BREDA-B-V" }, { 0x00256F, "Dantherm Power", "DANTHERM-POWER" }, { 0x002570, "Eastern Communications Company Limited", "EASTERN-COMMUNICATION-COMPANY" }, { 0x002571, "Zhejiang Tianle Digital Electric Co.,Ltd", "ZHEJIANG-TIANLE-DIGITAL-ELECTRIC" }, { 0x002572, "Nemo-Q International AB", "NEMO-Q-AB" }, { 0x002573, "ST Electronics (Info-Security) Pte Ltd", "ST-ELECTRONICS-INFO-SECURITY-PTE" }, { 0x002574, "KUNIMI MEDIA DEVICE Co., Ltd.", "KUNIMI-MEDIA-DEVICE" }, { 0x002575, "FiberPlex Technologies, LLC", "FIBERPLEX-TECHNOLOGIES" }, { 0x002576, "NELI TECHNOLOGIES", "NELI-TECHNOLOGIES" }, { 0x002577, "D-BOX Technologies", "D-BOX-TECHNOLOGIES" }, { 0x002578, "JSC Concern Sozvezdie", "JSC-CONCERN-SOZVEZDIE" }, { 0x002579, "J & F Labs", "J-F-LABS" }, { 0x00257A, "CAMCO Produktions- und Vertriebs-GmbH für Beschallungs- und Beleuchtungsanlagen", "CAMCO-PRODUKTIONS-UND-VERTRIEBS-FUER-BESCHALLUNGS-UND-BELEUCHTUNGSANLAGEN" }, { 0x00257B, "STJ ELECTRONICS PVT LTD", "STJ-ELECTRONICS-PVT" }, { 0x00257C, "Huachentel Technology Development Co., Ltd", "HUACHENTEL-DEVELOPMENT" }, { 0x00257D, "PointRed Telecom Private Ltd.", "POINTRED-TELECOM-PRIVATE" }, { 0x00257E, "NEW POS TECHNOLOGY LIMITED", "NEW-POS" }, { 0x00257F, "CallTechSolution Co.,Ltd", "CALLTECHSOLUTION" }, { 0x002580, "Equipson S.A.", "EQUIPSON" }, { 0x002581, "x-star networks Inc.", "X-STAR-NETWORKS" }, { 0x002582, "Maksat Technologies (P) Ltd", "MAKSAT-TECHNOLOGIES-P" }, { 0x002583, "Cisco Systems, Inc", "CISCO" }, { 0x002584, "Cisco Systems, Inc", "CISCO" }, { 0x002585, "KOKUYO S&T Co., Ltd.", "KOKUYO-S-T" }, { 0x002586, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x002587, "Vitality, Inc.", "VITALITY" }, { 0x002588, "Genie Industries, Inc.", "GENIE-INDUSTRIES" }, { 0x002589, "Hills Industries Limited", "HILLS-INDUSTRIES" }, { 0x00258A, "Pole/Zero Corporation", "POLE/ZERO" }, { 0x00258B, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0x00258C, "ESUS ELEKTRONIK SAN. VE DIS. TIC. LTD. STI.", "ESUS-ELEKTRONIK-SAN-VE-DIS-TIC-STI" }, { 0x00258D, "Haier", "HAIER" }, { 0x00258E, "The Weather Channel", "THE-WEATHER-CHANNEL" }, { 0x00258F, "Trident Microsystems, Inc.", "TRIDENT-MICROSYSTEMS" }, { 0x002590, "Super Micro Computer, Inc.", "SUPER-MICRO" }, { 0x002591, "NEXTEK, Inc.", "NEXTEK" }, { 0x002592, "Guangzhou Shirui Electronic Co., Ltd", "GUANGZHOU-SHIRUI" }, { 0x002593, "DatNet Informatikai Kft.", "DATNET-INFORMATIKAI-KFT" }, { 0x002594, "Eurodesign BG LTD", "EURODESIGN-BG" }, { 0x002595, "Northwest Signal Supply, Inc", "NORTHWEST-SIGNAL-SUPPLY" }, { 0x002596, "GIGAVISION srl", "GIGAVISION-SRL" }, { 0x002597, "Kalki Communication Technologies", "KALKI-COMMUNICATION-TECHNOLOGIES" }, { 0x002598, "Zhong Shan City Litai Electronic Industrial Co. Ltd", "ZHONG-SHAN-CITY-LITAI-INDUSTRIAL" }, { 0x002599, "Hedon e.d. B.V.", "HEDON-E-D-B-V" }, { 0x00259A, "CEStronics GmbH", "CESTRONICS" }, { 0x00259B, "Beijing PKUNITY Microsystems Technology Co., Ltd", "BEIJING-PKUNITY-MICROSYSTEMS" }, { 0x00259C, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x00259D, "Private", "PRIVATE" }, { 0x00259E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x00259F, "TechnoDigital Technologies GmbH", "TECHNODIGITAL-TECHNOLOGIES" }, { 0x0025A0, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x0025A1, "Enalasys", "ENALASYS" }, { 0x0025A2, "Alta Definicion LINCEO S.L.", "ALTA-DEFINICION-LINCEO" }, { 0x0025A3, "Trimax Wireless, Inc.", "TRIMAX-WIRELESS" }, { 0x0025A4, "EuroDesign embedded technologies GmbH", "EURODESIGN-EMBEDDED-TECHNOLOGIES" }, { 0x0025A5, "Walnut Media Network", "WALNUT-MEDIA-NETWORK" }, { 0x0025A6, "Central Network Solution Co., Ltd.", "CENTRAL-NETWORK-SOLUTION" }, { 0x0025A7, "itron", "ITRON" }, { 0x0025A8, "Kontron (BeiJing) Technology Co.,Ltd", "KONTRON-BEIJING" }, { 0x0025A9, "Shanghai Embedway Information Technologies Co.,Ltd", "SHANGHAI-EMBEDWAY-INFORMATION-TECHNOLOGIES" }, { 0x0025AA, "Beijing Soul Technology Co.,Ltd.", "BEIJING-SOUL" }, { 0x0025AB, "AIO LCD PC BU / TPV", "AIO-LCD-PC-BU-/-TPV" }, { 0x0025AC, "I-Tech corporation", "I-TECH" }, { 0x0025AD, "Manufacturing Resources International", "MANUFACTURING-RESOURCES" }, { 0x0025AE, "Microsoft Corporation", "MICROSOFT" }, { 0x0025AF, "COMFILE Technology", "COMFILE" }, { 0x0025B0, "Schmartz Inc", "SCHMARTZ" }, { 0x0025B1, "Maya-Creation Corporation", "MAYA-CREATION" }, { 0x0025B2, "MBDA Deutschland GmbH", "MBDA-DEUTSCHLAND" }, { 0x0025B3, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x0025B4, "Cisco Systems, Inc", "CISCO" }, { 0x0025B5, "Cisco Systems, Inc", "CISCO" }, { 0x0025B6, "Telecom FM", "TELECOM-FM" }, { 0x0025B7, "Costar electronics, inc.,", "COSTAR-ELECTRONICS" }, { 0x0025B8, "Agile Communications, Inc.", "AGILE-COMMUNICATION" }, { 0x0025B9, "Cypress Solutions Inc", "CYPRESS-SOLUTIONS" }, { 0x0025BA, "Alcatel-Lucent IPD", "ALCATEL-LUCENT-IPD" }, { 0x0025BB, "INNERINT Co., Ltd.", "INNERINT" }, { 0x0025BC, "Apple, Inc.", "APPLE" }, { 0x0025BD, "Italdata Ingegneria dell'Idea S.p.A.", "ITALDATA-INGEGNERIA-DELL-IDEA" }, { 0x0025BE, "Tektrap Systems Inc.", "TEKTRAP" }, { 0x0025BF, "Wireless Cables Inc.", "WIRELESS-CABLES" }, { 0x0025C0, "ZillionTV Corporation", "ZILLIONTV" }, { 0x0025C1, "Nawoo Korea Corp.", "NAWOO-KOREA" }, { 0x0025C2, "RingBell Co.,Ltd.", "RINGBELL" }, { 0x0025C3, "21168", "21168" }, { 0x0025C4, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x0025C5, "Star Link Communication Pvt. Ltd.", "STAR-LINK-COMMUNICATION-PVT" }, { 0x0025C6, "kasercorp, ltd", "KASERCORP" }, { 0x0025C7, "altek Corporation", "ALTEK" }, { 0x0025C8, "S-Access GmbH", "S-ACCESS" }, { 0x0025C9, "SHENZHEN HUAPU DIGITAL CO., LTD", "SHENZHEN-HUAPU-DIGITAL" }, { 0x0025CA, "Laird Connectivity", "LAIRD-CONNECTIVITY" }, { 0x0025CB, "Reiner SCT", "REINER-SCT" }, { 0x0025CC, "Mobile Communications Korea Incorporated", "MOBILE-COMMUNICATION-KOREA-INCORPORATED" }, { 0x0025CD, "Skylane Optics", "SKYLANE-OPTICS" }, { 0x0025CE, "InnerSpace", "INNERSPACE" }, { 0x0025CF, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0025D0, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0025D1, "Eastern Asia Technology Limited", "EASTERN-ASIA" }, { 0x0025D2, "InpegVision Co., Ltd", "INPEGVISION" }, { 0x0025D3, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x0025D4, "General Dynamics Mission Systems", "GENERAL-DYNAMICS-MISSION" }, { 0x0025D5, "Robonica (Pty) Ltd", "ROBONICA-PTY" }, { 0x0025D6, "The Kroger Co.", "THE-KROGER" }, { 0x0025D7, "CEDO", "CEDO" }, { 0x0025D8, "KOREA MAINTENANCE", "KOREA-MAINTENANCE" }, { 0x0025D9, "DataFab Systems Inc.", "DATAFAB" }, { 0x0025DA, "Secura Key", "SECURA-KEY" }, { 0x0025DB, "ATI Electronics(Shenzhen) Co., LTD", "ATI-ELECTRONICS-SHENZHEN" }, { 0x0025DC, "Sumitomo Electric Industries, Ltd", "SUMITOMO-ELECTRIC-INDUSTRIES" }, { 0x0025DD, "SUNNYTEK INFORMATION CO., LTD.", "SUNNYTEK-INFORMATION" }, { 0x0025DE, "Probits Co., LTD.", "PROBITS" }, { 0x0025DF, "Taser International Inc.", "TASER" }, { 0x0025E0, "CeedTec Sdn Bhd", "CEEDTEC" }, { 0x0025E1, "SHANGHAI SEEYOO ELECTRONIC & TECHNOLOGY CO., LTD", "SHANGHAI-SEEYOO" }, { 0x0025E2, "Everspring Industry Co., Ltd.", "EVERSPRING-INDUSTRY" }, { 0x0025E3, "Hanshinit Inc.", "HANSHINIT" }, { 0x0025E4, "OMNI-WiFi, LLC", "OMNI-WIFI" }, { 0x0025E5, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x0025E6, "Belgian Monitoring Systems bvba", "BELGIAN-MONITORING-BVBA" }, { 0x0025E7, "Sony Corporation", "SONY" }, { 0x0025E8, "Idaho Technology", "IDAHO" }, { 0x0025E9, "i-mate Development, Inc.", "I-MATE-DEVELOPMENT" }, { 0x0025EA, "Iphion BV", "IPHION" }, { 0x0025EB, "Reutech Radar Systems (PTY) Ltd", "REUTECH-RADAR-PTY" }, { 0x0025EC, "Humanware", "HUMANWARE" }, { 0x0025ED, "NuVo Technologies LLC", "NUVO-TECHNOLOGIES" }, { 0x0025EE, "Avtex Ltd", "AVTEX" }, { 0x0025EF, "I-TEC Co., Ltd.", "I-TEC" }, { 0x0025F0, "Suga Electronics Limited", "SUGA-ELECTRONICS" }, { 0x0025F1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0025F2, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0025F3, "Nordwestdeutsche Zählerrevision", "NORDWESTDEUTSCHE-ZAEHLERREVISION" }, { 0x0025F4, "KoCo Connector AG", "KOCO-CONNECTOR" }, { 0x0025F5, "DVS Korea, Co., Ltd", "DVS-KOREA" }, { 0x0025F6, "netTALK.com, Inc.", "NETTALK-COM" }, { 0x0025F7, "Ansaldo STS USA", "ANSALDO-STS-USA" }, { 0x0025F9, "GMK electronic design GmbH", "GMK-DESIGN" }, { 0x0025FA, "J&M Analytik AG", "J-M-ANALYTIK" }, { 0x0025FB, "Tunstall Healthcare A/S", "TUNSTALL-HEALTHCARE-A/S" }, { 0x0025FC, "ENDA ENDUSTRIYEL ELEKTRONIK LTD. STI.", "ENDA-ENDUSTRIYEL-ELEKTRONIK-STI" }, { 0x0025FD, "OBR Centrum Techniki Morskiej S.A.", "OBR-CENTRUM-TECHNIKI-MORSKIEJ" }, { 0x0025FE, "Pilot Electronics Corporation", "PILOT-ELECTRONICS" }, { 0x0025FF, "CreNova Multimedia Co., Ltd", "CRENOVA-MULTIMEDIA" }, { 0x002600, "TEAC Australia Pty Ltd.", "TEAC-AUSTRALIA-PTY" }, { 0x002601, "Cutera Inc", "CUTERA" }, { 0x002602, "SMART Temps LLC", "SMART-TEMPS" }, { 0x002603, "Shenzhen Wistar Technology Co., Ltd", "SHENZHEN-WISTAR" }, { 0x002604, "WorldCast Systems", "WORLDCAST" }, { 0x002605, "CC Systems AB", "CC-AB" }, { 0x002606, "RAUMFELD GmbH", "RAUMFELD" }, { 0x002607, "Enabling Technology Pty Ltd", "ENABLING-PTY" }, { 0x002608, "Apple, Inc.", "APPLE" }, { 0x002609, "Phyllis Co., Ltd.", "PHYLLIS" }, { 0x00260A, "Cisco Systems, Inc", "CISCO" }, { 0x00260B, "Cisco Systems, Inc", "CISCO" }, { 0x00260C, "Dataram", "DATARAM" }, { 0x00260D, "Mercury Systems, Inc.", "MERCURY" }, { 0x00260E, "Ablaze Systems, LLC", "ABLAZE" }, { 0x00260F, "Linn Products Ltd", "LINN-PRODUCTS" }, { 0x002610, "Apacewave Technologies", "APACEWAVE-TECHNOLOGIES" }, { 0x002611, "Licera AB", "LICERA-AB" }, { 0x002612, "Space Exploration Technologies", "SPACE-EXPLORATION-TECHNOLOGIES" }, { 0x002613, "Engel Axil S.L.", "ENGEL-AXIL" }, { 0x002614, "KTNF", "KTNF" }, { 0x002615, "Teracom Limited", "TERACOM" }, { 0x002616, "Rosemount Inc.", "ROSEMOUNT" }, { 0x002617, "OEM Worldwide", "OEM-WORLDWIDE" }, { 0x002618, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x002619, "FRC", "FRC" }, { 0x00261A, "Femtocomm System Technology Corp.", "FEMTOCOMM-SYSTEM" }, { 0x00261B, "LAUREL BANK MACHINES CO., LTD.", "LAUREL-BANK-MACHINES" }, { 0x00261C, "NEOVIA INC.", "NEOVIA" }, { 0x00261D, "COP SECURITY SYSTEM CORP.", "COP-SECURITY-SYSTEM" }, { 0x00261E, "QINGBANG ELEC(SZ) CO., LTD", "QINGBANG-ELEC-SZ" }, { 0x00261F, "SAE Magnetics (H.K.) Ltd.", "SAE-MAGNETICS-H-K" }, { 0x002620, "ISGUS GmbH", "ISGUS" }, { 0x002621, "InteliCloud Technology Inc.", "INTELICLOUD" }, { 0x002622, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x002623, "JRD Communication Inc", "JRD-COMMUNICATION" }, { 0x002624, "Thomson Inc.", "THOMSON" }, { 0x002625, "MediaSputnik", "MEDIASPUTNIK" }, { 0x002626, "Geophysical Survey Systems, Inc.", "GEOPHYSICAL-SURVEY" }, { 0x002627, "Truesell", "TRUESELL" }, { 0x002628, "companytec automação e controle ltda.", "COMPANYTEC-AUTOMAO-E-CONTROLE-LTDA" }, { 0x002629, "Juphoon System Software Inc.", "JUPHOON-SYSTEM-SOFTWARE" }, { 0x00262A, "Proxense, LLC", "PROXENSE" }, { 0x00262B, "Wongs Electronics Co. Ltd.", "WONGS-ELECTRONICS" }, { 0x00262C, "IKT Advanced Technologies s.r.o.", "IKT-ADVANCED-TECHNOLOGIES-S-R-O" }, { 0x00262D, "Wistron Corporation", "WISTRON" }, { 0x00262E, "Chengdu Jiuzhou Electronic Technology Inc", "CHENGDU-JIUZHOU" }, { 0x00262F, "HAMAMATSU TOA ELECTRONICS", "HAMAMATSU-TOA-ELECTRONICS" }, { 0x002630, "ACOREL S.A.S", "ACOREL-S" }, { 0x002631, "COMMTACT LTD", "COMMTACT" }, { 0x002632, "Instrumentation Technologies d.d.", "INSTRUMENTATION-TECHNOLOGIES-D-D" }, { 0x002633, "MIR - Medical International Research", "MIR-MEDICAL-RESEARCH" }, { 0x002634, "Infineta Systems, Inc", "INFINETA" }, { 0x002635, "Bluetechnix GmbH", "BLUETECHNIX" }, { 0x002636, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x002637, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0x002638, "Xia Men Joyatech Co., Ltd.", "XIA-MEN-JOYATECH" }, { 0x002639, "T.M. Electronics, Inc.", "T-M-ELECTRONICS" }, { 0x00263A, "Digitec Systems", "DIGITEC" }, { 0x00263B, "Onbnetech", "ONBNETECH" }, { 0x00263C, "Bachmann Technology GmbH & Co. KG", "BACHMANN" }, { 0x00263D, "MIA Corporation", "MIA" }, { 0x00263E, "Trapeze Networks", "TRAPEZE-NETWORKS" }, { 0x00263F, "LIOS Technology GmbH", "LIOS" }, { 0x002640, "Baustem Broadband Technologies, Ltd.", "BAUSTEM-BROADBAND-TECHNOLOGIES" }, { 0x002641, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x002642, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x002643, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x002644, "Thomson Telecom Belgium", "THOMSON-TELECOM-BELGIUM" }, { 0x002645, "Circontrol S.A.", "CIRCONTROL" }, { 0x002646, "SHENYANG TONGFANG MULTIMEDIA TECHNOLOGY COMPANY LIMITED", "SHENYANG-TONGFANG-MULTIMEDIA-COMPANY" }, { 0x002647, "WFE TECHNOLOGY CORP.", "WFE" }, { 0x002648, "Emitech Corp.", "EMITECH" }, { 0x00264A, "Apple, Inc.", "APPLE" }, { 0x00264C, "Shanghai DigiVision Technology Co., Ltd.", "SHANGHAI-DIGIVISION" }, { 0x00264D, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x00264E, "r2p GmbH", "R2P" }, { 0x00264F, "Krüger &Gothe GmbH", "KRUEGER-GOTHE" }, { 0x002650, "2Wire Inc", "2WIRE" }, { 0x002651, "Cisco Systems, Inc", "CISCO" }, { 0x002652, "Cisco Systems, Inc", "CISCO" }, { 0x002653, "DaySequerra Corporation", "DAYSEQUERRA" }, { 0x002654, "3COM", "3COM" }, { 0x002655, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x002656, "Sansonic Electronics USA", "SANSONIC-ELECTRONICS-USA" }, { 0x002657, "OOO NPP EKRA", "OOO-NPP-EKRA" }, { 0x002658, "T-Platforms (Cyprus) Limited", "T-PLATFORMS-CYPRUS" }, { 0x002659, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x00265A, "D-Link Corporation", "D-LINK" }, { 0x00265B, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x00265C, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x00265D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00265E, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x00265F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x002660, "Logiways", "LOGIWAYS" }, { 0x002661, "Irumtek Co., Ltd.", "IRUMTEK" }, { 0x002662, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x002663, "Shenzhen Huitaiwei Tech. Ltd, co.", "SHENZHEN-HUITAIWEI-TECH" }, { 0x002664, "Core System Japan", "CORE-SYSTEM-JAPAN" }, { 0x002665, "ProtectedLogic Corporation", "PROTECTEDLOGIC" }, { 0x002666, "EFM Networks", "EFM-NETWORKS" }, { 0x002667, "CARECOM CO.,LTD.", "CARECOM" }, { 0x002668, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x002669, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x00266A, "ESSENSIUM NV", "ESSENSIUM-NV" }, { 0x00266B, "SHINE UNION ENTERPRISE LIMITED", "SHINE-UNION" }, { 0x00266C, "INVENTEC CORPORATION", "INVENTEC" }, { 0x00266D, "MobileAccess Networks", "MOBILEACCESS-NETWORKS" }, { 0x00266E, "Nissho-denki Co.,LTD.", "NISSHO-DENKI" }, { 0x00266F, "Coordiwise Technology Corp.", "COORDIWISE" }, { 0x002670, "Cinch Connectors", "CINCH-CONNECTORS" }, { 0x002671, "AUTOVISION Co., Ltd", "AUTOVISION" }, { 0x002672, "AAMP of America", "AAMP-OF-AMERICA" }, { 0x002673, "RICOH COMPANY,LTD.", "RICOH-COMPANY" }, { 0x002674, "Hunter Douglas", "HUNTER-DOUGLAS" }, { 0x002675, "Aztech Electronics Pte Ltd", "AZTECH-ELECTRONICS-PTE" }, { 0x002676, "COMMidt AS", "COMMIDT-AS" }, { 0x002677, "DEIF A/S", "DEIF-A/S" }, { 0x002678, "Logic Instrument SA", "LOGIC-INSTRUMENT" }, { 0x002679, "Euphonic Technologies, Inc.", "EUPHONIC-TECHNOLOGIES" }, { 0x00267A, "wuhan hongxin telecommunication technologies co.,ltd", "WUHAN-HONGXIN-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x00267B, "GSI Helmholtzzentrum für Schwerionenforschung GmbH", "GSI-HELMHOLTZZENTRUM-FUER-SCHWERIONENFORSCHUNG" }, { 0x00267C, "Metz-Werke GmbH & Co KG", "METZ-WERKE" }, { 0x00267D, "A-Max Technology Macao Commercial Offshore Company Limited", "A-MAX-MACAO-COMMERCIAL-OFFSHORE-COMPANY" }, { 0x00267E, "PARROT SA", "PARROT" }, { 0x00267F, "Oregan Networks Ltd.", "OREGAN-NETWORKS" }, { 0x002680, "SIL3 Pty.Ltd", "SIL3-PTY" }, { 0x002681, "Interspiro AB", "INTERSPIRO-AB" }, { 0x002682, "Gemtek Technology Co., Ltd.", "GEMTEK" }, { 0x002683, "Ajoho Enterprise Co., Ltd.", "AJOHO" }, { 0x002684, "KISAN SYSTEM", "KISAN-SYSTEM" }, { 0x002685, "Digital Innovation", "DIGITAL-INNOVATION" }, { 0x002686, "Quantenna Communcations, Inc.", "QUANTENNA-COMMUNCATIONS" }, { 0x002687, "corega K.K", "COREGA-K-K" }, { 0x002688, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x002689, "General Dynamics Robotic Systems", "GENERAL-DYNAMICS-ROBOTIC" }, { 0x00268A, "Terrier SC Ltd", "TERRIER-SC" }, { 0x00268B, "Guangzhou Escene Computer Technology Limited", "GUANGZHOU-ESCENE" }, { 0x00268C, "StarLeaf Ltd.", "STARLEAF" }, { 0x00268D, "CellTel S.p.A.", "CELLTEL" }, { 0x00268E, "Alta Solutions, Inc.", "ALTA-SOLUTIONS" }, { 0x00268F, "MTA SpA", "MTA-SPA" }, { 0x002690, "I DO IT", "I-DO-IT" }, { 0x002691, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x002692, "Mitsubishi Electric Corporation", "MITSUBISHI-ELECTRIC" }, { 0x002693, "QVidium Technologies, Inc.", "QVIDIUM-TECHNOLOGIES" }, { 0x002694, "Senscient Ltd", "SENSCIENT" }, { 0x002695, "ZT Group Int'l Inc", "ZT-GROUP" }, { 0x002696, "NOOLIX Co., Ltd", "NOOLIX" }, { 0x002697, "Alpha Technologies Inc.", "ALPHA-TECHNOLOGIES" }, { 0x002698, "Cisco Systems, Inc", "CISCO" }, { 0x002699, "Cisco Systems, Inc", "CISCO" }, { 0x00269A, "Carina System Co., Ltd.", "CARINA-SYSTEM" }, { 0x00269B, "SOKRAT Ltd.", "SOKRAT" }, { 0x00269C, "ITUS JAPAN CO. LTD", "ITUS-JAPAN" }, { 0x00269D, "M2Mnet Co., Ltd.", "M2MNET" }, { 0x00269E, "Quanta Computer Inc.", "QUANTA" }, { 0x00269F, "Private", "PRIVATE" }, { 0x0026A0, "moblic", "MOBLIC" }, { 0x0026A1, "Megger", "MEGGER" }, { 0x0026A2, "Instrumentation Technology Systems", "INSTRUMENTATION" }, { 0x0026A3, "FQ Ingenieria Electronica S.A.", "FQ-INGENIERIA-ELECTRONICA" }, { 0x0026A4, "Novus Produtos Eletronicos Ltda", "NOVUS-PRODUTOS-ELETRONICOS-LTDA" }, { 0x0026A5, "MICROROBOT.CO.,LTD", "MICROROBOT" }, { 0x0026A6, "TRIXELL", "TRIXELL" }, { 0x0026A7, "CONNECT SRL", "CONNECT-SRL" }, { 0x0026A8, "DAEHAP HYPER-TECH", "DAEHAP-HYPER-TECH" }, { 0x0026A9, "Strong Technologies Pty Ltd", "STRONG-TECHNOLOGIES-PTY" }, { 0x0026AA, "Kenmec Mechanical Engineering Co., Ltd.", "KENMEC-MECHANICAL-ENGINEERING" }, { 0x0026AB, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0x0026AC, "Shanghai LUSTER Teraband photonic Co., Ltd.", "SHANGHAI-LUSTER-TERABAND-PHOTONIC" }, { 0x0026AD, "Arada Systems, Inc.", "ARADA" }, { 0x0026AE, "Wireless Measurement Ltd", "WIRELESS-MEASUREMENT" }, { 0x0026AF, "Duelco A/S", "DUELCO-A/S" }, { 0x0026B0, "Apple, Inc.", "APPLE" }, { 0x0026B1, "Navis Auto Motive Systems, Inc.", "NAVIS-AUTO-MOTIVE" }, { 0x0026B2, "Setrix GmbH", "SETRIX" }, { 0x0026B3, "Thales Communications Inc", "THALES-COMMUNICATION" }, { 0x0026B4, "Ford Motor Company", "FORD-MOTOR-COMPANY" }, { 0x0026B5, "ICOMM Tele Ltd", "ICOMM-TELE" }, { 0x0026B6, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x0026B7, "Kingston Technology Company, Inc.", "KINGSTON-COMPANY" }, { 0x0026B8, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x0026B9, "Dell Inc.", "DELL" }, { 0x0026BA, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0026BB, "Apple, Inc.", "APPLE" }, { 0x0026BC, "General Jack Technology Ltd.", "GENERAL-JACK" }, { 0x0026BD, "JTEC Card & Communication Co., Ltd", "JTEC-CARD-AMP-COMMUNICATION" }, { 0x0026BE, "Schoonderbeek Elektronica Systemen B.V.", "SCHOONDERBEEK-ELEKTRONICA-SYSTEMEN-B-V" }, { 0x0026BF, "ShenZhen Temobi Science&Tech Development Co.,Ltd", "SHENZHEN-TEMOBI-SCIENCE-TECH-DEVELOPMENT" }, { 0x0026C0, "EnergyHub", "ENERGYHUB" }, { 0x0026C1, "ARTRAY CO., LTD.", "ARTRAY" }, { 0x0026C2, "SCDI Co. LTD", "SCDI" }, { 0x0026C3, "Insightek Corp.", "INSIGHTEK" }, { 0x0026C4, "Cadmos microsystems S.r.l.", "CADMOS-MICROSYSTEMS" }, { 0x0026C5, "Guangdong Gosun Telecommunications Co.,Ltd", "GUANGDONG-GOSUN-TELECOMMUNICATIONS" }, { 0x0026C6, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0026C7, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0026C8, "System Sensor", "SYSTEM-SENSOR" }, { 0x0026C9, "Proventix Systems, Inc.", "PROVENTIX" }, { 0x0026CA, "Cisco Systems, Inc", "CISCO" }, { 0x0026CB, "Cisco Systems, Inc", "CISCO" }, { 0x0026CC, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x0026CD, "PurpleComm, Inc.", "PURPLECOMM" }, { 0x0026CE, "Kozumi USA Corp.", "KOZUMI-USA" }, { 0x0026CF, "DEKA R&D", "DEKA-R-D" }, { 0x0026D0, "Semihalf", "SEMIHALF" }, { 0x0026D1, "S Squared Innovations Inc.", "S-SQUARED-INNOVATIONS" }, { 0x0026D2, "Pcube Systems, Inc.", "PCUBE" }, { 0x0026D3, "Zeno Information System", "ZENO-INFORMATION-SYSTEM" }, { 0x0026D4, "IRCA SpA", "IRCA-SPA" }, { 0x0026D5, "Ory Solucoes em Comercio de Informatica Ltda.", "ORY-SOLUCOES-EM-COMERCIO-DE-INFORMATICA-LTDA" }, { 0x0026D6, "Ningbo Andy Optoelectronic Co., Ltd.", "NINGBO-ANDY-OPTOELECTRONIC" }, { 0x0026D7, "KM Electornic Technology Co., Ltd.", "KM-ELECTORNIC" }, { 0x0026D8, "Magic Point Inc.", "MAGIC-POINT" }, { 0x0026D9, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0026DA, "Universal Media Corporation /Slovakia/ s.r.o.", "UNIVERSAL-MEDIA-/SLOVAKIA/-S-R-O" }, { 0x0026DB, "Ionics EMS Inc.", "IONICS-EMS" }, { 0x0026DC, "Optical Systems Design", "OPTICAL-DESIGN" }, { 0x0026DD, "Fival Science & Technology Co.,Ltd.", "FIVAL-SCIENCE" }, { 0x0026DE, "FDI MATELEC", "FDI-MATELEC" }, { 0x0026DF, "TaiDoc Technology Corp.", "TAIDOC" }, { 0x0026E0, "ASITEQ", "ASITEQ" }, { 0x0026E1, "Stanford University, OpenFlow Group", "STANFORD-UNIVERSITY-OPENFLOW-GROUP" }, { 0x0026E2, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x0026E3, "DTI", "DTI" }, { 0x0026E4, "Canal +", "CANAL" }, { 0x0026E5, "AEG Power Solutions", "AEG-POWER-SOLUTIONS" }, { 0x0026E6, "Visionhitech Co., Ltd.", "VISIONHITECH" }, { 0x0026E7, "Shanghai ONLAN Communication Tech. Co., Ltd.", "SHANGHAI-ONLAN-COMMUNICATION-TECH" }, { 0x0026E8, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x0026E9, "SP Corp", "SP" }, { 0x0026EA, "Cheerchip Electronic Technology (ShangHai) Co., Ltd.", "CHEERCHIP-SHANGHAI" }, { 0x0026EB, "Advanced Spectrum Technology Co., Ltd.", "ADVANCED-SPECTRUM" }, { 0x0026EC, "Legrand Home Systems, Inc", "LEGRAND-HOME" }, { 0x0026ED, "zte corporation", "ZTE" }, { 0x0026EE, "TKM GmbH", "TKM" }, { 0x0026EF, "Technology Advancement Group, Inc.", "ADVANCEMENT-GROUP" }, { 0x0026F0, "cTrixs International GmbH.", "CTRIXS" }, { 0x0026F1, "ProCurve Networking by HP", "PROCURVE-NETWORKING-BY-HP" }, { 0x0026F2, "NETGEAR", "NETGEAR" }, { 0x0026F3, "SMC Networks", "SMC-NETWORKS" }, { 0x0026F4, "Nesslab", "NESSLAB" }, { 0x0026F5, "XRPLUS Inc.", "XRPLUS" }, { 0x0026F6, "Military Communication Institute", "MILITARY-COMMUNICATION-INSTITUTE" }, { 0x0026F7, "Nivetti Systems Pvt. Ltd.", "NIVETTI-PVT" }, { 0x0026F8, "Golden Highway Industry Development Co., Ltd.", "GOLDEN-HIGHWAY-INDUSTRY-DEVELOPMENT" }, { 0x0026F9, "S.E.M. srl", "S-E-M-SRL" }, { 0x0026FA, "BandRich Inc.", "BANDRICH" }, { 0x0026FB, "AirDio Wireless, Inc.", "AIRDIO-WIRELESS" }, { 0x0026FC, "AcSiP Technology Corp.", "ACSIP" }, { 0x0026FD, "Interactive Intelligence", "INTERACTIVE-INTELLIGENCE" }, { 0x0026FE, "MKD Technology Inc.", "MKD" }, { 0x0026FF, "BlackBerry RTS", "BLACKBERRY-RTS" }, { 0x002700, "Shenzhen Siglent Technology Co., Ltd.", "SHENZHEN-SIGLENT" }, { 0x002701, "INCOstartec GmbH", "INCOSTARTEC" }, { 0x002702, "SolarEdge Technologies", "SOLAREDGE-TECHNOLOGIES" }, { 0x002703, "Testech Electronics Pte Ltd", "TESTECH-ELECTRONICS-PTE" }, { 0x002704, "Accelerated Concepts, Inc", "ACCELERATED-CONCEPTS" }, { 0x002705, "Sectronic", "SECTRONIC" }, { 0x002706, "YOISYS", "YOISYS" }, { 0x002707, "Lift Complex DS, JSC", "LIFT-COMPLEX-DS-JSC" }, { 0x002708, "Nordiag ASA", "NORDIAG-ASA" }, { 0x002709, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x00270A, "IEE S.A.", "IEE" }, { 0x00270B, "Adura Technologies", "ADURA-TECHNOLOGIES" }, { 0x00270C, "Cisco Systems, Inc", "CISCO" }, { 0x00270D, "Cisco Systems, Inc", "CISCO" }, { 0x00270E, "Intel Corporate", "INTEL-CORPORATE" }, { 0x00270F, "Envisionnovation Inc", "ENVISIONNOVATION" }, { 0x002710, "Intel Corporate", "INTEL-CORPORATE" }, { 0x002711, "LanPro Inc", "LANPRO" }, { 0x002712, "MaxVision LLC", "MAXVISION" }, { 0x002713, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x002714, "Grainmustards, Co,ltd.", "GRAINMUSTARDS" }, { 0x002715, "Rebound Telecom. Co., Ltd", "REBOUND-TELECOM" }, { 0x002716, "Adachi-Syokai Co., Ltd.", "ADACHI-SYOKAI" }, { 0x002717, "CE Digital(Zhenjiang)Co.,Ltd", "CE-DIGITAL-ZHENJIANG" }, { 0x002718, "Suzhou NEW SEAUNION Video Technology Co.,Ltd", "SUZHOU-NEW-SEAUNION-VIDEO" }, { 0x002719, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x00271A, "Geenovo Technology Ltd.", "GEENOVO" }, { 0x00271B, "Alec Sicherheitssysteme GmbH", "ALEC-SICHERHEITSSYSTEME" }, { 0x00271C, "MERCURY CORPORATION", "MERCURY" }, { 0x00271D, "Comba Telecom Systems (China) Ltd.", "COMBA-TELECOM-CHINA" }, { 0x00271E, "Xagyl Communications", "XAGYL-COMMUNICATION" }, { 0x00271F, "MIPRO Electronics Co., Ltd", "MIPRO-ELECTRONICS" }, { 0x002720, "NEW-SOL COM", "NEW-SOL-COM" }, { 0x002721, "Shenzhen Baoan Fenda Industrial Co., Ltd", "SHENZHEN-BAOAN-FENDA-INDUSTRIAL" }, { 0x002722, "Ubiquiti Inc", "UBIQUITI" }, { 0x002790, "Cisco Systems, Inc", "CISCO" }, { 0x0027E3, "Cisco Systems, Inc", "CISCO" }, { 0x0027F8, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x00289F, "Semptian Co., Ltd.", "SEMPTIAN" }, { 0x0028F8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x002926, "Applied Optoelectronics, Inc Taiwan Branch", "APPLIED-OPTOELECTRONICS-TAIWAN-BRANCH" }, { 0x0029C2, "Cisco Systems, Inc", "CISCO" }, { 0x002A10, "Cisco Systems, Inc", "CISCO" }, { 0x002A6A, "Cisco Systems, Inc", "CISCO" }, { 0x002AAF, "LARsys-Automation GmbH", "LARSYS-AUTOMATION" }, { 0x002B67, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x002BF5, "BUFFALO.INC", "BUFFALO" }, { 0x002CC8, "Cisco Systems, Inc", "CISCO" }, { 0x002D76, "TITECH GmbH", "TITECH" }, { 0x002DB3, "AMPAK Technology,Inc.", "AMPAK" }, { 0x002EC7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x002F5C, "Cisco Systems, Inc", "CISCO" }, { 0x002FD9, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x003000, "ALLWELL TECHNOLOGY CORP.", "ALLWELL" }, { 0x003001, "SMP", "SMP" }, { 0x003002, "Expand Networks", "EXPAND-NETWORKS" }, { 0x003003, "Phasys Ltd.", "PHASYS" }, { 0x003004, "LEADTEK RESEARCH INC.", "LEADTEK-RESEARCH" }, { 0x003005, "Fujitsu Siemens Computers", "FUJITSU-SIEMENS-COMPUTERS" }, { 0x003006, "SUPERPOWER COMPUTER", "SUPERPOWER" }, { 0x003007, "OPTI, INC.", "OPTI" }, { 0x003008, "AVIO DIGITAL, INC.", "AVIO-DIGITAL" }, { 0x003009, "Tachion Networks, Inc.", "TACHION-NETWORKS" }, { 0x00300A, "Aztech Electronics Pte Ltd", "AZTECH-ELECTRONICS-PTE" }, { 0x00300B, "mPHASE Technologies, Inc.", "MPHASE-TECHNOLOGIES" }, { 0x00300C, "CONGRUENCY, LTD.", "CONGRUENCY" }, { 0x00300D, "MMC Technology, Inc.", "MMC" }, { 0x00300E, "Klotz Digital AG", "KLOTZ-DIGITAL" }, { 0x00300F, "IMT - Information Management T", "IMT-INFORMATION-MANAGEMENT-T" }, { 0x003010, "VISIONETICS INTERNATIONAL", "VISIONETICS" }, { 0x003011, "HMS Industrial Networks", "HMS-INDUSTRIAL-NETWORKS" }, { 0x003012, "DIGITAL ENGINEERING LTD.", "DIGITAL-ENGINEERING" }, { 0x003013, "NEC Corporation", "NEC" }, { 0x003014, "DIVIO, INC.", "DIVIO" }, { 0x003015, "CP CLARE CORP.", "CP-CLARE" }, { 0x003016, "ISHIDA CO., LTD.", "ISHIDA" }, { 0x003017, "BlueArc UK Ltd", "BLUEARC-UK" }, { 0x003018, "Jetway Information Co., Ltd.", "JETWAY-INFORMATION" }, { 0x003019, "Cisco Systems, Inc", "CISCO" }, { 0x00301A, "SMARTBRIDGES PTE. LTD.", "SMARTBRIDGES-PTE" }, { 0x00301B, "SHUTTLE, INC.", "SHUTTLE" }, { 0x00301C, "ALTVATER AIRDATA SYSTEMS", "ALTVATER-AIRDATA" }, { 0x00301D, "SKYSTREAM, INC.", "SKYSTREAM" }, { 0x00301E, "3COM EUROPE LTD", "3COM" }, { 0x00301F, "OPTICAL NETWORKS, INC.", "OPTICAL-NETWORKS" }, { 0x003020, "TSI, Inc..", "TSI" }, { 0x003021, "HSING TECH. ENTERPRISE CO.,LTD", "HSING-TECH" }, { 0x003022, "Fong Kai Industrial Co., Ltd.", "FONG-KAI-INDUSTRIAL" }, { 0x003023, "COGENT COMPUTER SYSTEMS, INC.", "COGENT" }, { 0x003024, "Cisco Systems, Inc", "CISCO" }, { 0x003025, "CHECKOUT COMPUTER SYSTEMS, LTD", "CHECKOUT" }, { 0x003026, "HeiTel Digital Video GmbH", "HEITEL-DIGITAL-VIDEO" }, { 0x003027, "KERBANGO, INC.", "KERBANGO" }, { 0x003028, "FASE Saldatura srl", "FASE-SALDATURA-SRL" }, { 0x003029, "OPICOM", "OPICOM" }, { 0x00302A, "SOUTHERN INFORMATION", "SOUTHERN-INFORMATION" }, { 0x00302B, "Inalp Solutions AG", "INALP-SOLUTIONS" }, { 0x00302C, "SYLANTRO SYSTEMS CORPORATION", "SYLANTRO" }, { 0x00302D, "QUANTUM BRIDGE COMMUNICATIONS", "QUANTUM-BRIDGE-COMMUNICATION" }, { 0x00302E, "Hoft & Wessel AG", "HOFT-WESSEL" }, { 0x00302F, "GE Aviation System", "GE-AVIATION-SYSTEM" }, { 0x003030, "HARMONIX CORPORATION", "HARMONIX" }, { 0x003031, "LIGHTWAVE COMMUNICATIONS, INC.", "LIGHTWAVE-COMMUNICATION" }, { 0x003032, "MagicRam, Inc.", "MAGICRAM" }, { 0x003033, "ORIENT TELECOM CO., LTD.", "ORIENT-TELECOM" }, { 0x003034, "SET ENGINEERING", "SET-ENGINEERING" }, { 0x003035, "Corning Incorporated", "CORNING-INCORPORATED" }, { 0x003036, "RMP ELEKTRONIKSYSTEME GMBH", "RMP-ELEKTRONIKSYSTEME" }, { 0x003037, "Packard Bell Nec Services", "PACKARD-BELL-NEC-SERVICES" }, { 0x003038, "XCP, INC.", "XCP" }, { 0x003039, "SOFTBOOK PRESS", "SOFTBOOK-PRESS" }, { 0x00303A, "MAATEL", "MAATEL" }, { 0x00303B, "PowerCom Technology", "POWERCOM" }, { 0x00303C, "ONNTO CORP.", "ONNTO" }, { 0x00303D, "IVA CORPORATION", "IVA" }, { 0x00303E, "Radcom Ltd.", "RADCOM" }, { 0x00303F, "TurboComm Tech Inc.", "TURBOCOMM-TECH" }, { 0x003040, "Cisco Systems, Inc", "CISCO" }, { 0x003041, "SAEJIN T & M CO., LTD.", "SAEJIN-T-M" }, { 0x003042, "DeTeWe-Deutsche Telephonwerke", "DETEWE-DEUTSCHE-TELEPHONWERKE" }, { 0x003043, "IDREAM TECHNOLOGIES, PTE. LTD.", "IDREAM-TECHNOLOGIES-PTE" }, { 0x003044, "CradlePoint, Inc", "CRADLEPOINT" }, { 0x003045, "Village Networks, Inc. (VNI)", "VILLAGE-NETWORKS-VNI" }, { 0x003046, "Controlled Electronic Manageme", "CONTROLLED-MANAGEME" }, { 0x003047, "NISSEI ELECTRIC CO., LTD.", "NISSEI-ELECTRIC" }, { 0x003048, "Super Micro Computer, Inc.", "SUPER-MICRO" }, { 0x003049, "BRYANT TECHNOLOGY, LTD.", "BRYANT" }, { 0x00304A, "Fraunhofer IPMS", "FRAUNHOFER-IPMS" }, { 0x00304B, "ORBACOM SYSTEMS, INC.", "ORBACOM" }, { 0x00304C, "APPIAN COMMUNICATIONS, INC.", "APPIAN-COMMUNICATION" }, { 0x00304D, "ESI", "ESI" }, { 0x00304E, "BUSTEC PRODUCTION LTD.", "BUSTEC-PRODUCTION" }, { 0x00304F, "PLANET Technology Corporation", "PLANET" }, { 0x003050, "Versa Technology", "VERSA" }, { 0x003051, "ORBIT AVIONIC & COMMUNICATION", "ORBIT-AVIONIC-COMMUNICATION" }, { 0x003052, "DZS Inc.", "DZS" }, { 0x003053, "Basler AG", "BASLER" }, { 0x003054, "Castlenet Technology Inc.", "CASTLENET" }, { 0x003055, "Renesas Technology America, Inc.", "RENESAS-AMERICA" }, { 0x003056, "HMS Industrial Networks", "HMS-INDUSTRIAL-NETWORKS" }, { 0x003057, "QTelNet, Inc.", "QTELNET" }, { 0x003058, "API MOTION", "API-MOTION" }, { 0x003059, "Kontron Europe GmbH", "KONTRON-EUROPE" }, { 0x00305A, "TELGEN CORPORATION", "TELGEN" }, { 0x00305B, "Toko Inc.", "TOKO" }, { 0x00305C, "SMAR Laboratories Corp.", "SMAR-LABORATORIES" }, { 0x00305D, "DIGITRA SYSTEMS, INC.", "DIGITRA" }, { 0x00305E, "Abelko Innovation", "ABELKO-INNOVATION" }, { 0x00305F, "Hasselblad", "HASSELBLAD" }, { 0x003060, "Powerfile, Inc.", "POWERFILE" }, { 0x003061, "MobyTEL", "MOBYTEL" }, { 0x003062, "IP Video Networks Inc", "IP-VIDEO-NETWORKS" }, { 0x003063, "SANTERA SYSTEMS, INC.", "SANTERA" }, { 0x003064, "ADLINK TECHNOLOGY, INC.", "ADLINK" }, { 0x003065, "Apple, Inc.", "APPLE" }, { 0x003066, "RFM", "RFM" }, { 0x003067, "BIOSTAR Microtech Int'l Corp.", "BIOSTAR-MICROTECH" }, { 0x003068, "CYBERNETICS TECH. CO., LTD.", "CYBERNETICS-TECH" }, { 0x003069, "IMPACCT TECHNOLOGY CORP.", "IMPACCT" }, { 0x00306A, "PENTA MEDIA CO., LTD.", "PENTA-MEDIA" }, { 0x00306B, "CMOS SYSTEMS, INC.", "CMOS" }, { 0x00306C, "Hitex Holding GmbH", "HITEX-HOLDING" }, { 0x00306D, "LUCENT TECHNOLOGIES", "LUCENT-TECHNOLOGIES" }, { 0x00306E, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x00306F, "SEYEON TECH. CO., LTD.", "SEYEON-TECH" }, { 0x003070, "1Net Corporation", "1NET" }, { 0x003071, "Cisco Systems, Inc", "CISCO" }, { 0x003072, "Intellibyte Inc.", "INTELLIBYTE" }, { 0x003073, "International Microsystems, In", "MICROSYSTEMS-IN" }, { 0x003074, "EQUIINET LTD.", "EQUIINET" }, { 0x003075, "ADTECH", "ADTECH" }, { 0x003076, "Akamba Corporation", "AKAMBA" }, { 0x003077, "ONPREM NETWORKS", "ONPREM-NETWORKS" }, { 0x003078, "Cisco Systems, Inc", "CISCO" }, { 0x003079, "CQOS, INC.", "CQOS" }, { 0x00307A, "Advanced Technology & Systems", "ADVANCED" }, { 0x00307B, "Cisco Systems, Inc", "CISCO" }, { 0x00307C, "ADID SA", "ADID" }, { 0x00307D, "GRE AMERICA, INC.", "GRE-AMERICA" }, { 0x00307E, "Redflex Communication Systems", "REDFLEX-COMMUNICATION" }, { 0x00307F, "IRLAN LTD.", "IRLAN" }, { 0x003080, "Cisco Systems, Inc", "CISCO" }, { 0x003081, "ALTOS C&C", "ALTOS-C-C" }, { 0x003082, "TAIHAN ELECTRIC WIRE CO., LTD.", "TAIHAN-ELECTRIC-WIRE" }, { 0x003083, "Ivron Systems", "IVRON" }, { 0x003084, "ALLIED TELESYN INTERNAIONAL", "ALLIED-TELESYN" }, { 0x003085, "Cisco Systems, Inc", "CISCO" }, { 0x003086, "Transistor Devices, Inc.", "TRANSISTOR-DEVICES" }, { 0x003087, "VEGA GRIESHABER KG", "VEGA-GRIESHABER" }, { 0x003088, "Ericsson", "ERICSSON" }, { 0x003089, "Spectrapoint Wireless, LLC", "SPECTRAPOINT-WIRELESS" }, { 0x00308A, "NICOTRA SISTEMI S.P.A", "NICOTRA-SISTEMI" }, { 0x00308B, "Brix Networks", "BRIX-NETWORKS" }, { 0x00308C, "Quantum Corporation", "QUANTUM" }, { 0x00308D, "Pinnacle Systems, Inc.", "PINNACLE" }, { 0x00308E, "CROSS MATCH TECHNOLOGIES, INC.", "CROSS-MATCH-TECHNOLOGIES" }, { 0x00308F, "MICRILOR, Inc.", "MICRILOR" }, { 0x003090, "CYRA TECHNOLOGIES, INC.", "CYRA-TECHNOLOGIES" }, { 0x003091, "TAIWAN FIRST LINE ELEC. CORP.", "TAIWAN-FIRST-LINE-ELEC" }, { 0x003092, "Kontron Electronics AG", "KONTRON-ELECTRONICS" }, { 0x003093, "Sonnet Technologies, Inc", "SONNET-TECHNOLOGIES" }, { 0x003094, "Cisco Systems, Inc", "CISCO" }, { 0x003095, "Procomp Informatics, Ltd.", "PROCOMP-INFORMATICS" }, { 0x003096, "Cisco Systems, Inc", "CISCO" }, { 0x003097, "AB Regin", "AB-REGIN" }, { 0x003098, "Global Converging Technologies", "GLOBAL-CONVERGING-TECHNOLOGIES" }, { 0x003099, "BOENIG UND KALLENBACH OHG", "BOENIG-UND-KALLENBACH-OHG" }, { 0x00309A, "ASTRO TERRA CORP.", "ASTRO-TERRA" }, { 0x00309B, "Smartware", "SMARTWARE" }, { 0x00309C, "Timing Applications, Inc.", "TIMING-APPLICATIONS" }, { 0x00309D, "Nimble Microsystems, Inc.", "NIMBLE-MICROSYSTEMS" }, { 0x00309E, "WORKBIT CORPORATION.", "WORKBIT" }, { 0x00309F, "AMBER NETWORKS", "AMBER-NETWORKS" }, { 0x0030A0, "TYCO SUBMARINE SYSTEMS, LTD.", "TYCO-SUBMARINE" }, { 0x0030A1, "WEBGATE Inc.", "WEBGATE" }, { 0x0030A2, "Lightner Engineering", "LIGHTNER-ENGINEERING" }, { 0x0030A3, "Cisco Systems, Inc", "CISCO" }, { 0x0030A4, "Woodwind Communications System", "WOODWIND-COMMUNICATION-SYSTEM" }, { 0x0030A5, "ACTIVE POWER", "ACTIVE-POWER" }, { 0x0030A6, "VIANET TECHNOLOGIES, LTD.", "VIANET-TECHNOLOGIES" }, { 0x0030A7, "SCHWEITZER ENGINEERING", "SCHWEITZER-ENGINEERING" }, { 0x0030A8, "OL'E COMMUNICATIONS, INC.", "OL-E-COMMUNICATION" }, { 0x0030A9, "Netiverse, Inc.", "NETIVERSE" }, { 0x0030AA, "AXUS MICROSYSTEMS, INC.", "AXUS-MICROSYSTEMS" }, { 0x0030AB, "DELTA NETWORKS, INC.", "DELTA-NETWORKS" }, { 0x0030AC, "Systeme Lauer GmbH & Co., Ltd.", "SYSTEME-LAUER" }, { 0x0030AD, "SHANGHAI COMMUNICATION", "SHANGHAI-COMMUNICATION" }, { 0x0030AE, "Times N System, Inc.", "TIMES-N-SYSTEM" }, { 0x0030AF, "Honeywell GmbH", "HONEYWELL" }, { 0x0030B0, "Convergenet Technologies", "CONVERGENET-TECHNOLOGIES" }, { 0x0030B1, "TrunkNet", "TRUNKNET" }, { 0x0030B2, "L-3 Sonoma EO", "L-3-SONOMA-EO" }, { 0x0030B3, "San Valley Systems, Inc.", "SAN-VALLEY" }, { 0x0030B4, "INTERSIL CORP.", "INTERSIL" }, { 0x0030B5, "Tadiran Microwave Networks", "TADIRAN-MICROWAVE-NETWORKS" }, { 0x0030B6, "Cisco Systems, Inc", "CISCO" }, { 0x0030B7, "Teletrol Systems, Inc.", "TELETROL" }, { 0x0030B8, "RiverDelta Networks", "RIVERDELTA-NETWORKS" }, { 0x0030B9, "ECTEL", "ECTEL" }, { 0x0030BA, "AC&T SYSTEM CO., LTD.", "AC-T-SYSTEM" }, { 0x0030BB, "CacheFlow, Inc.", "CACHEFLOW" }, { 0x0030BC, "Optronic AG", "OPTRONIC" }, { 0x0030BD, "BELKIN COMPONENTS", "BELKIN-COMPONENTS" }, { 0x0030BE, "City-Net Technology, Inc.", "CITY-NET" }, { 0x0030BF, "MULTIDATA GMBH", "MULTIDATA" }, { 0x0030C0, "Lara Technology, Inc.", "LARA" }, { 0x0030C1, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x0030C2, "COMONE", "COMONE" }, { 0x0030C3, "FLUECKIGER ELEKTRONIK AG", "FLUECKIGER-ELEKTRONIK" }, { 0x0030C4, "Canon Imaging Systems Inc.", "CANON-IMAGING" }, { 0x0030C5, "CADENCE DESIGN SYSTEMS, INC.", "CADENCE-DESIGN" }, { 0x0030C6, "CONTROL SOLUTIONS, INC.", "CONTROL-SOLUTIONS" }, { 0x0030C7, "Macromate Corp.", "MACROMATE" }, { 0x0030C8, "GAD LINE, LTD.", "GAD-LINE" }, { 0x0030C9, "LuxN, N", "LUXN-N" }, { 0x0030CA, "Discovery Com", "DISCOVERY-COM" }, { 0x0030CB, "OMNI FLOW COMPUTERS, INC.", "OMNI-FLOW-COMPUTERS" }, { 0x0030CC, "Tenor Networks, Inc.", "TENOR-NETWORKS" }, { 0x0030CD, "CONEXANT SYSTEMS, INC.", "CONEXANT" }, { 0x0030CE, "Zaffire", "ZAFFIRE" }, { 0x0030CF, "TWO TECHNOLOGIES, INC.", "TWO-TECHNOLOGIES" }, { 0x0030D0, "Tellabs", "TELLABS" }, { 0x0030D1, "INOVA CORPORATION", "INOVA" }, { 0x0030D2, "WIN TECHNOLOGIES, CO., LTD.", "WIN-TECHNOLOGIES" }, { 0x0030D3, "Agilent Technologies, Inc.", "AGILENT-TECHNOLOGIES" }, { 0x0030D4, "AAE Systems, Inc.", "AAE" }, { 0x0030D5, "DResearch GmbH", "DRESEARCH" }, { 0x0030D6, "MSC VERTRIEBS GMBH", "MSC-VERTRIEBS" }, { 0x0030D7, "Innovative Systems, L.L.C.", "INNOVATIVE-L-L-C" }, { 0x0030D8, "SITEK", "SITEK" }, { 0x0030D9, "DATACORE SOFTWARE CORP.", "DATACORE-SOFTWARE" }, { 0x0030DA, "Comtrend Corporation", "COMTREND" }, { 0x0030DB, "Mindready Solutions, Inc.", "MINDREADY-SOLUTIONS" }, { 0x0030DC, "RIGHTECH CORPORATION", "RIGHTECH" }, { 0x0030DD, "INDIGITA CORPORATION", "INDIGITA" }, { 0x0030DE, "WAGO Kontakttechnik GmbH", "WAGO-KONTAKTTECHNIK" }, { 0x0030DF, "KB/TEL TELECOMUNICACIONES", "KB/TEL-TELECOMUNICACIONES" }, { 0x0030E0, "OXFORD SEMICONDUCTOR LTD.", "OXFORD-SEMICONDUCTOR" }, { 0x0030E1, "Network Equipment Technologies, Inc.", "NETWORK-EQUIPMENT-TECHNOLOGIES" }, { 0x0030E2, "GARNET SYSTEMS CO., LTD.", "GARNET" }, { 0x0030E3, "SEDONA NETWORKS CORP.", "SEDONA-NETWORKS" }, { 0x0030E4, "CHIYODA SYSTEM RIKEN", "CHIYODA-SYSTEM-RIKEN" }, { 0x0030E5, "Amper Datos S.A.", "AMPER-DATOS" }, { 0x0030E6, "Draeger Medical Systems, Inc.", "DRAEGER-MEDICAL" }, { 0x0030E7, "CNF MOBILE SOLUTIONS, INC.", "CNF-MOBILE-SOLUTIONS" }, { 0x0030E8, "ENSIM CORP.", "ENSIM" }, { 0x0030E9, "GMA COMMUNICATION MANUFACT'G", "GMA-COMMUNICATION-MANUFACT-G" }, { 0x0030EA, "TeraForce Technology Corporation", "TERAFORCE" }, { 0x0030EB, "TURBONET COMMUNICATIONS, INC.", "TURBONET-COMMUNICATION" }, { 0x0030EC, "BORGARDT", "BORGARDT" }, { 0x0030ED, "Expert Magnetics Corp.", "EXPERT-MAGNETICS" }, { 0x0030EE, "DSG Technology, Inc.", "DSG" }, { 0x0030EF, "NEON TECHNOLOGY, INC.", "NEON" }, { 0x0030F0, "Uniform Industrial Corp.", "UNIFORM-INDUSTRIAL" }, { 0x0030F1, "Accton Technology Corp", "ACCTON" }, { 0x0030F2, "Cisco Systems, Inc", "CISCO" }, { 0x0030F3, "At Work Computers", "AT-WORK-COMPUTERS" }, { 0x0030F4, "STARDOT TECHNOLOGIES", "STARDOT-TECHNOLOGIES" }, { 0x0030F5, "Wild Lab. Ltd.", "WILD-LAB" }, { 0x0030F6, "SECURELOGIX CORPORATION", "SECURELOGIX" }, { 0x0030F7, "RAMIX INC.", "RAMIX" }, { 0x0030F8, "Dynapro Systems, Inc.", "DYNAPRO" }, { 0x0030F9, "Sollae Systems Co., Ltd.", "SOLLAE" }, { 0x0030FA, "TELICA, INC.", "TELICA" }, { 0x0030FB, "AZS Technology AG", "AZS" }, { 0x0030FC, "Terawave Communications, Inc.", "TERAWAVE-COMMUNICATION" }, { 0x0030FD, "INTEGRATED SYSTEMS DESIGN", "INTEGRATED-DESIGN" }, { 0x0030FE, "DSA GmbH", "DSA" }, { 0x0030FF, "DataFab Systems Inc.", "DATAFAB" }, { 0x003126, "Nokia", "NOKIA" }, { 0x003146, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x003192, "TP-Link Corporation Limited", "TP-LINK" }, { 0x003217, "Cisco Systems, Inc", "CISCO" }, { 0x00323A, "so-logic", "SO-LOGIC" }, { 0x00336C, "SynapSense Corporation", "SYNAPSENSE" }, { 0x0034A1, "RF-LAMBDA USA INC.", "RF-LAMBDA-USA" }, { 0x0034DA, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x0034F1, "Radicom Research, Inc.", "RADICOM-RESEARCH" }, { 0x0034FE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x00351A, "Cisco Systems, Inc", "CISCO" }, { 0x003532, "Electro-Metrics Corporation", "ELECTRO-METRICS" }, { 0x003560, "Rosen Aviation", "ROSEN-AVIATION" }, { 0x0035FF, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x003676, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0036BE, "Northwest Towers", "NORTHWEST-TOWERS" }, { 0x0036D7, "Keltron IOT Corp.", "KELTRON-IOT" }, { 0x0036F8, "Conti Temic microelectronic GmbH", "CONTI-TEMIC-MICROELECTRONIC" }, { 0x0036FE, "SuperVision", "SUPERVISION" }, { 0x00376D, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x0037B7, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x0038DF, "Cisco Systems, Inc", "CISCO" }, { 0x003969, "Air-Weigh Incorporated", "AIR-WEIGH-INCORPORATED" }, { 0x003A7D, "Cisco Systems, Inc", "CISCO" }, { 0x003A98, "Cisco Systems, Inc", "CISCO" }, { 0x003A99, "Cisco Systems, Inc", "CISCO" }, { 0x003A9A, "Cisco Systems, Inc", "CISCO" }, { 0x003A9B, "Cisco Systems, Inc", "CISCO" }, { 0x003A9C, "Cisco Systems, Inc", "CISCO" }, { 0x003A9D, "NEC Platforms, Ltd.", "NEC-PLATFORMS" }, { 0x003AAF, "BlueBit Ltd.", "BLUEBIT" }, { 0x003C10, "Cisco Systems, Inc", "CISCO" }, { 0x003C84, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x003CC5, "WONWOO Engineering Co., Ltd", "WONWOO-ENGINEERING" }, { 0x003D41, "Hatteland Computer AS", "HATTELAND-AS" }, { 0x003DE1, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x003DE8, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x003E73, "Mist Systems, Inc.", "MIST" }, { 0x003EE1, "Apple, Inc.", "APPLE" }, { 0x003F10, "Shenzhen GainStrong Technology Co., Ltd.", "SHENZHEN-GAINSTRONG" }, { 0x004000, "PCI COMPONENTES DA AMZONIA LTD", "PCI-COMPONENTES-DA-AMZONIA" }, { 0x004001, "Zero One Technology Co. Ltd.", "ZERO-ONE" }, { 0x004002, "PERLE SYSTEMS LIMITED", "PERLE" }, { 0x004003, "Emerson Process Management Power & Water Solutions, Inc.", "EMERSON-PROCESS-MANAGEMENT-POWER-WATER-SOLUTIONS" }, { 0x004004, "ICM CO. LTD.", "ICM" }, { 0x004005, "ANI COMMUNICATIONS INC.", "ANI-COMMUNICATION" }, { 0x004006, "SAMPO TECHNOLOGY CORPORATION", "SAMPO" }, { 0x004007, "TELMAT INFORMATIQUE", "TELMAT-INFORMATIQUE" }, { 0x004008, "A PLUS INFO CORPORATION", "A-PLUS-INFO" }, { 0x004009, "TACHIBANA TECTRON CO., LTD.", "TACHIBANA-TECTRON" }, { 0x00400A, "PIVOTAL TECHNOLOGIES, INC.", "PIVOTAL-TECHNOLOGIES" }, { 0x00400B, "Cisco Systems, Inc", "CISCO" }, { 0x00400C, "GENERAL MICRO SYSTEMS, INC.", "GENERAL-MICRO" }, { 0x00400D, "LANNET DATA COMMUNICATIONS,LTD", "LANNET-DATA-COMMUNICATION" }, { 0x00400E, "MEMOTEC, INC.", "MEMOTEC" }, { 0x00400F, "DATACOM TECHNOLOGIES", "DATACOM-TECHNOLOGIES" }, { 0x004010, "SONIC SYSTEMS, INC.", "SONIC" }, { 0x004011, "ANDOVER CONTROLS CORPORATION", "ANDOVER-CONTROLS" }, { 0x004012, "WINDATA, INC.", "WINDATA" }, { 0x004013, "NTT DATA COMM. SYSTEMS CORP.", "NTT-DATA-COMM" }, { 0x004014, "COMSOFT GMBH", "COMSOFT" }, { 0x004015, "ASCOM INFRASYS AG", "ASCOM-INFRASYS" }, { 0x004016, "ADC - Global Connectivity Solutions Division", "ADC-GLOBAL-CONNECTIVITY-SOLUTIONS-DIVISION" }, { 0x004017, "Silex Technology America", "SILEX-AMERICA" }, { 0x004018, "ADOBE SYSTEMS, INC.", "ADOBE" }, { 0x004019, "AEON SYSTEMS, INC.", "AEON" }, { 0x00401A, "FUJI ELECTRIC CO., LTD.", "FUJI-ELECTRIC" }, { 0x00401B, "PRINTER SYSTEMS CORP.", "PRINTER" }, { 0x00401C, "AST RESEARCH, INC.", "AST-RESEARCH" }, { 0x00401D, "INVISIBLE SOFTWARE, INC.", "INVISIBLE-SOFTWARE" }, { 0x00401E, "ICC", "ICC" }, { 0x00401F, "COLORGRAPH LTD", "COLORGRAPH" }, { 0x004020, "CommScope Inc", "COMMSCOPE" }, { 0x004021, "RASTER GRAPHICS", "RASTER-GRAPHICS" }, { 0x004022, "KLEVER COMPUTERS, INC.", "KLEVER-COMPUTERS" }, { 0x004023, "LOGIC CORPORATION", "LOGIC" }, { 0x004024, "COMPAC INC.", "COMPAC" }, { 0x004025, "MOLECULAR DYNAMICS", "MOLECULAR-DYNAMICS" }, { 0x004026, "BUFFALO.INC", "BUFFALO" }, { 0x004027, "SMC MASSACHUSETTS, INC.", "SMC-MASSACHUSETTS" }, { 0x004028, "NETCOMM LIMITED", "NETCOMM" }, { 0x004029, "Compex", "COMPEX" }, { 0x00402A, "Canoga Perkins Corporation", "CANOGA-PERKINS" }, { 0x00402B, "TRIGEM COMPUTER, INC.", "TRIGEM" }, { 0x00402C, "ISIS DISTRIBUTED SYSTEMS, INC.", "ISIS-DISTRIBUTED" }, { 0x00402D, "HARRIS ADACOM CORPORATION", "HARRIS-ADACOM" }, { 0x00402E, "PRECISION SOFTWARE, INC.", "PRECISION-SOFTWARE" }, { 0x00402F, "XLNT DESIGNS INC.", "XLNT-DESIGNS" }, { 0x004030, "GK COMPUTER", "GK" }, { 0x004031, "KOKUSAI ELECTRIC CO., LTD", "KOKUSAI-ELECTRIC" }, { 0x004032, "DIGITAL COMMUNICATIONS", "DIGITAL-COMMUNICATION" }, { 0x004033, "ADDTRON TECHNOLOGY CO., LTD.", "ADDTRON" }, { 0x004034, "BUSTEK CORPORATION", "BUSTEK" }, { 0x004035, "OPCOM", "OPCOM" }, { 0x004036, "Minim Inc.", "MINIM" }, { 0x004037, "SEA-ILAN, INC.", "SEA-ILAN" }, { 0x004038, "TALENT ELECTRIC INCORPORATED", "TALENT-ELECTRIC-INCORPORATED" }, { 0x004039, "OPTEC DAIICHI DENKO CO., LTD.", "OPTEC-DAIICHI-DENKO" }, { 0x00403A, "IMPACT TECHNOLOGIES", "IMPACT-TECHNOLOGIES" }, { 0x00403B, "SYNERJET INTERNATIONAL CORP.", "SYNERJET" }, { 0x00403C, "FORKS, INC.", "FORKS" }, { 0x00403D, "Teradata Corporation", "TERADATA" }, { 0x00403E, "RASTER OPS CORPORATION", "RASTER-OPS" }, { 0x00403F, "SSANGYONG COMPUTER SYSTEMS", "SSANGYONG" }, { 0x004040, "RING ACCESS, INC.", "RING-ACCESS" }, { 0x004041, "FUJIKURA LTD.", "FUJIKURA" }, { 0x004042, "N.A.T. GMBH", "N-A-T" }, { 0x004043, "Nokia Siemens Networks GmbH & Co. KG.", "NOKIA-SIEMENS-NETWORKS" }, { 0x004044, "QNIX COMPUTER CO., LTD.", "QNIX" }, { 0x004045, "TWINHEAD CORPORATION", "TWINHEAD" }, { 0x004046, "UDC RESEARCH LIMITED", "UDC-RESEARCH" }, { 0x004047, "WIND RIVER SYSTEMS", "WIND-RIVER" }, { 0x004048, "SMD INFORMATICA S.A.", "SMD-INFORMATICA" }, { 0x004049, "Roche Diagnostics International Ltd.", "ROCHE-DIAGNOSTICS" }, { 0x00404A, "WEST AUSTRALIAN DEPARTMENT", "WEST-AUSTRALIAN-DEPARTMENT" }, { 0x00404B, "MAPLE COMPUTER SYSTEMS", "MAPLE" }, { 0x00404C, "HYPERTEC PTY LTD.", "HYPERTEC-PTY" }, { 0x00404D, "TELECOMMUNICATIONS TECHNIQUES", "TELECOMMUNICATIONS-TECHNIQUES" }, { 0x00404E, "FLUENT, INC.", "FLUENT" }, { 0x00404F, "SPACE & NAVAL WARFARE SYSTEMS", "SPACE-NAVAL-WARFARE" }, { 0x004050, "IRONICS, INCORPORATED", "IRONICS-INCORPORATED" }, { 0x004051, "Garbee and Garbee", "GARBEE-AND-GARBEE" }, { 0x004052, "STAR TECHNOLOGIES, INC.", "STAR-TECHNOLOGIES" }, { 0x004053, "AMPRO COMPUTERS", "AMPRO-COMPUTERS" }, { 0x004054, "CONNECTION MACHINES SERVICES", "CONNECTION-MACHINES-SERVICES" }, { 0x004055, "METRONIX GMBH", "METRONIX" }, { 0x004056, "MCM JAPAN LTD.", "MCM-JAPAN" }, { 0x004057, "LOCKHEED - SANDERS", "LOCKHEED-SANDERS" }, { 0x004058, "UKG", "UKG" }, { 0x004059, "YOSHIDA KOGYO K. K.", "YOSHIDA-KOGYO-K-K" }, { 0x00405A, "GOLDSTAR INFORMATION & COMM.", "GOLDSTAR-INFORMATION-COMM" }, { 0x00405B, "FUNASSET LIMITED", "FUNASSET" }, { 0x00405C, "FUTURE SYSTEMS, INC.", "FUTURE" }, { 0x00405D, "STAR-TEK, INC.", "STAR-TEK" }, { 0x00405E, "NORTH HILLS ISRAEL", "NORTH-HILLS-ISRAEL" }, { 0x00405F, "AFE COMPUTERS LTD.", "AFE-COMPUTERS" }, { 0x004060, "COMENDEC LTD", "COMENDEC" }, { 0x004061, "DATATECH ENTERPRISES CO., LTD.", "DATATECH-ENTERPRISES" }, { 0x004062, "E-SYSTEMS, INC./GARLAND DIV.", "E-/GARLAND-DIV" }, { 0x004063, "VIA TECHNOLOGIES, INC.", "VIA-TECHNOLOGIES" }, { 0x004064, "KLA INSTRUMENTS CORPORATION", "KLA-INSTRUMENTS" }, { 0x004065, "GTE SPACENET", "GTE-SPACENET" }, { 0x004066, "APRESIA Systems Ltd", "APRESIA" }, { 0x004067, "OMNIBYTE CORPORATION", "OMNIBYTE" }, { 0x004068, "EXTENDED SYSTEMS", "EXTENDED" }, { 0x004069, "LEMCOM SYSTEMS, INC.", "LEMCOM" }, { 0x00406A, "KENTEK INFORMATION SYSTEMS,INC", "KENTEK-INFORMATION" }, { 0x00406B, "SYSGEN", "SYSGEN" }, { 0x00406C, "COPERNIQUE", "COPERNIQUE" }, { 0x00406D, "LANCO, INC.", "LANCO" }, { 0x00406E, "COROLLARY, INC.", "COROLLARY" }, { 0x00406F, "SYNC RESEARCH INC.", "SYNC-RESEARCH" }, { 0x004070, "INTERWARE CO., LTD.", "INTERWARE" }, { 0x004071, "ATM COMPUTER GMBH", "ATM" }, { 0x004072, "Applied Innovation Inc.", "APPLIED-INNOVATION" }, { 0x004073, "BASS ASSOCIATES", "BASS-ASSOCIATES" }, { 0x004074, "CABLE AND WIRELESS", "CABLE-AND-WIRELESS" }, { 0x004075, "Tattile SRL", "TATTILE-SRL" }, { 0x004076, "Sun Conversion Technologies", "SUN-CONVERSION-TECHNOLOGIES" }, { 0x004077, "MAXTON TECHNOLOGY CORPORATION", "MAXTON" }, { 0x004078, "WEARNES AUTOMATION PTE LTD", "WEARNES-AUTOMATION-PTE" }, { 0x004079, "JUKO MANUFACTURE COMPANY, LTD.", "JUKO-MANUFACTURE-COMPANY" }, { 0x00407A, "SOCIETE D'EXPLOITATION DU CNIT", "SOCIETE-D-EXPLOITATION-DU-CNIT" }, { 0x00407B, "SCIENTIFIC ATLANTA", "SCIENTIFIC-ATLANTA" }, { 0x00407C, "QUME CORPORATION", "QUME" }, { 0x00407D, "EXTENSION TECHNOLOGY CORP.", "EXTENSION" }, { 0x00407E, "EVERGREEN SYSTEMS, INC.", "EVERGREEN" }, { 0x00407F, "FLIR Systems", "FLIR" }, { 0x004080, "ATHENIX CORPORATION", "ATHENIX" }, { 0x004081, "MANNESMANN SCANGRAPHIC GMBH", "MANNESMANN-SCANGRAPHIC" }, { 0x004082, "LABORATORY EQUIPMENT CORP.", "LABORATORY-EQUIPMENT" }, { 0x004083, "TDA INDUSTRIA DE PRODUTOS", "TDA-INDUSTRIA-DE-PRODUTOS" }, { 0x004084, "Honeywell", "HONEYWELL" }, { 0x004085, "SAAB INSTRUMENTS AB", "SAAB-INSTRUMENTS-AB" }, { 0x004086, "MICHELS & KLEBERHOFF COMPUTER", "MICHELS-KLEBERHOFF" }, { 0x004087, "UBITREX CORPORATION", "UBITREX" }, { 0x004088, "MOBIUS TECHNOLOGIES, INC.", "MOBIUS-TECHNOLOGIES" }, { 0x004089, "MEIDENSHA CORPORATION", "MEIDENSHA" }, { 0x00408A, "TPS TELEPROCESSING SYS. GMBH", "TPS-TELEPROCESSING-SYS" }, { 0x00408B, "RAYLAN CORPORATION", "RAYLAN" }, { 0x00408C, "AXIS COMMUNICATIONS AB", "AXIS-COMMUNICATION-AB" }, { 0x00408D, "THE GOODYEAR TIRE & RUBBER CO.", "THE-GOODYEAR-TIRE-RUBBER" }, { 0x00408E, "Tattile SRL", "TATTILE-SRL" }, { 0x00408F, "WM-DATA MINFO AB", "WM-DATA-MINFO-AB" }, { 0x004090, "ANSEL COMMUNICATIONS", "ANSEL-COMMUNICATION" }, { 0x004091, "PROCOMP INDUSTRIA ELETRONICA", "PROCOMP-INDUSTRIA-ELETRONICA" }, { 0x004092, "ASP COMPUTER PRODUCTS, INC.", "ASP-PRODUCTS" }, { 0x004093, "PAXDATA NETWORKS LTD.", "PAXDATA-NETWORKS" }, { 0x004094, "SHOGRAPHICS, INC.", "SHOGRAPHICS" }, { 0x004095, "R.P.T. INTERGROUPS INT'L LTD.", "R-P-T-INTERGROUPS" }, { 0x004096, "Cisco Systems, Inc", "CISCO" }, { 0x004097, "DATEX DIVISION OF", "DATEX-DIVISION-OF" }, { 0x004098, "DRESSLER GMBH & CO.", "DRESSLER" }, { 0x004099, "NEWGEN SYSTEMS CORP.", "NEWGEN" }, { 0x00409A, "NETWORK EXPRESS, INC.", "NETWORK-EXPRESS" }, { 0x00409B, "HAL COMPUTER SYSTEMS INC.", "HAL" }, { 0x00409C, "TRANSWARE", "TRANSWARE" }, { 0x00409D, "DigiBoard", "DIGIBOARD" }, { 0x00409E, "Concurrent Technologies Ltd.", "CONCURRENT-TECHNOLOGIES" }, { 0x00409F, "Telco Systems, Inc.", "TELCO" }, { 0x0040A0, "GOLDSTAR CO., LTD.", "GOLDSTAR" }, { 0x0040A1, "ERGO COMPUTING", "ERGO-COMPUTING" }, { 0x0040A2, "KINGSTAR TECHNOLOGY INC.", "KINGSTAR" }, { 0x0040A3, "MICROUNITY SYSTEMS ENGINEERING", "MICROUNITY-ENGINEERING" }, { 0x0040A4, "ROSE ELECTRONICS", "ROSE-ELECTRONICS" }, { 0x0040A5, "CLINICOMP INTL.", "CLINICOMP-INTL" }, { 0x0040A6, "Cray, Inc.", "CRAY" }, { 0x0040A7, "ITAUTEC PHILCO S.A.", "ITAUTEC-PHILCO" }, { 0x0040A8, "IMF INTERNATIONAL LTD.", "IMF" }, { 0x0040A9, "DATACOM INC.", "DATACOM" }, { 0x0040AA, "Valmet Automation", "VALMET-AUTOMATION" }, { 0x0040AB, "ROLAND DG CORPORATION", "ROLAND-DG" }, { 0x0040AC, "SUPER WORKSTATION, INC.", "SUPER-WORKSTATION" }, { 0x0040AD, "SMA REGELSYSTEME GMBH", "SMA-REGELSYSTEME" }, { 0x0040AE, "DELTA CONTROLS, INC.", "DELTA-CONTROLS" }, { 0x0040AF, "DIGITAL PRODUCTS, INC.", "DIGITAL-PRODUCTS" }, { 0x0040B0, "BYTEX CORPORATION, ENGINEERING", "BYTEX-ENGINEERING" }, { 0x0040B1, "CODONICS INC.", "CODONICS" }, { 0x0040B2, "SYSTEMFORSCHUNG", "SYSTEMFORSCHUNG" }, { 0x0040B3, "ParTech Inc.", "PARTECH" }, { 0x0040B4, "NEXTCOM K.K.", "NEXTCOM-K-K" }, { 0x0040B5, "VIDEO TECHNOLOGY COMPUTERS LTD", "VIDEO-COMPUTERS" }, { 0x0040B6, "COMPUTERM CORPORATION", "COMPUTERM" }, { 0x0040B7, "STEALTH COMPUTER SYSTEMS", "STEALTH" }, { 0x0040B8, "IDEA ASSOCIATES", "IDEA-ASSOCIATES" }, { 0x0040B9, "MACQ ELECTRONIQUE SA", "MACQ-ELECTRONIQUE" }, { 0x0040BA, "ALLIANT COMPUTER SYSTEMS CORP.", "ALLIANT" }, { 0x0040BB, "GOLDSTAR CABLE CO., LTD.", "GOLDSTAR-CABLE" }, { 0x0040BC, "ALGORITHMICS LTD.", "ALGORITHMICS" }, { 0x0040BD, "STARLIGHT NETWORKS, INC.", "STARLIGHT-NETWORKS" }, { 0x0040BE, "BOEING DEFENSE & SPACE", "BOEING-DEFENSE-SPACE" }, { 0x0040BF, "CHANNEL SYSTEMS INTERN'L INC.", "CHANNEL-INTERN-L" }, { 0x0040C0, "VISTA CONTROLS CORPORATION", "VISTA-CONTROLS" }, { 0x0040C1, "BIZERBA-WERKE WILHEIM KRAUT", "BIZERBA-WERKE-WILHEIM-KRAUT" }, { 0x0040C2, "APPLIED COMPUTING DEVICES", "APPLIED-COMPUTING-DEVICES" }, { 0x0040C3, "FISCHER AND PORTER CO.", "FISCHER-AND-PORTER" }, { 0x0040C4, "KINKEI SYSTEM CORPORATION", "KINKEI-SYSTEM" }, { 0x0040C5, "MICOM COMMUNICATIONS INC.", "MICOM-COMMUNICATION" }, { 0x0040C6, "FIBERNET RESEARCH, INC.", "FIBERNET-RESEARCH" }, { 0x0040C7, "RUBY TECH CORPORATION", "RUBY-TECH" }, { 0x0040C8, "MILAN TECHNOLOGY CORPORATION", "MILAN" }, { 0x0040C9, "NCUBE", "NCUBE" }, { 0x0040CA, "FIRST INTERNAT'L COMPUTER, INC", "FIRST-INTERNAT-L" }, { 0x0040CB, "LANWAN TECHNOLOGIES", "LANWAN-TECHNOLOGIES" }, { 0x0040CC, "SILCOM MANUF'G TECHNOLOGY INC.", "SILCOM-MANUF-G" }, { 0x0040CD, "TERA MICROSYSTEMS, INC.", "TERA-MICROSYSTEMS" }, { 0x0040CE, "NET-SOURCE, INC.", "NET-SOURCE" }, { 0x0040CF, "STRAWBERRY TREE, INC.", "STRAWBERRY-TREE" }, { 0x0040D0, "MITAC INTERNATIONAL CORP.", "MITAC" }, { 0x0040D1, "FUKUDA DENSHI CO., LTD.", "FUKUDA-DENSHI" }, { 0x0040D2, "PAGINE CORPORATION", "PAGINE" }, { 0x0040D3, "KIMPSION INTERNATIONAL CORP.", "KIMPSION" }, { 0x0040D4, "GAGE TALKER CORP.", "GAGE-TALKER" }, { 0x0040D5, "Sartorius Mechatronics T&H GmbH", "SARTORIUS-MECHATRONICS-T-H" }, { 0x0040D6, "LOCAMATION B.V.", "LOCAMATION-B-V" }, { 0x0040D7, "STUDIO GEN INC.", "STUDIO-GEN" }, { 0x0040D8, "OCEAN OFFICE AUTOMATION LTD.", "OCEAN-OFFICE-AUTOMATION" }, { 0x0040D9, "AMERICAN MEGATRENDS INC.", "AMERICAN-MEGATRENDS" }, { 0x0040DA, "TELSPEC LTD", "TELSPEC" }, { 0x0040DB, "ADVANCED TECHNICAL SOLUTIONS", "ADVANCED-TECHNICAL-SOLUTIONS" }, { 0x0040DC, "TRITEC ELECTRONIC GMBH", "TRITEC" }, { 0x0040DD, "HONG TECHNOLOGIES", "HONG-TECHNOLOGIES" }, { 0x0040DE, "Elsag Datamat spa", "ELSAG-DATAMAT-SPA" }, { 0x0040DF, "DIGALOG SYSTEMS, INC.", "DIGALOG" }, { 0x0040E0, "ATOMWIDE LTD.", "ATOMWIDE" }, { 0x0040E1, "MARNER INTERNATIONAL, INC.", "MARNER" }, { 0x0040E2, "MESA RIDGE TECHNOLOGIES, INC.", "MESA-RIDGE-TECHNOLOGIES" }, { 0x0040E3, "QUIN SYSTEMS LTD", "QUIN" }, { 0x0040E4, "E-M TECHNOLOGY, INC.", "E-M" }, { 0x0040E5, "SYBUS CORPORATION", "SYBUS" }, { 0x0040E6, "C.A.E.N.", "C-A-E-N" }, { 0x0040E7, "ARNOS INSTRUMENTS & COMPUTER", "ARNOS-INSTRUMENTS" }, { 0x0040E8, "CHARLES RIVER DATA SYSTEMS,INC", "CHARLES-RIVER-DATA" }, { 0x0040E9, "ACCORD SYSTEMS, INC.", "ACCORD" }, { 0x0040EA, "PLAIN TREE SYSTEMS INC", "PLAIN-TREE" }, { 0x0040EB, "MARTIN MARIETTA CORPORATION", "MARTIN-MARIETTA" }, { 0x0040EC, "MIKASA SYSTEM ENGINEERING", "MIKASA-SYSTEM-ENGINEERING" }, { 0x0040ED, "NETWORK CONTROLS INT'NATL INC.", "NETWORK-CONTROLS-INT-NATL" }, { 0x0040EE, "OPTIMEM", "OPTIMEM" }, { 0x0040EF, "HYPERCOM, INC.", "HYPERCOM" }, { 0x0040F0, "MicroBrain,Inc.", "MICROBRAIN" }, { 0x0040F1, "CHUO ELECTRONICS CO., LTD.", "CHUO-ELECTRONICS" }, { 0x0040F2, "JANICH & KLASS COMPUTERTECHNIK", "JANICH-KLASS-COMPUTERTECHNIK" }, { 0x0040F3, "NETCOR", "NETCOR" }, { 0x0040F4, "CAMEO COMMUNICATIONS, INC.", "CAMEO-COMMUNICATION" }, { 0x0040F5, "OEM ENGINES", "OEM-ENGINES" }, { 0x0040F6, "KATRON COMPUTERS INC.", "KATRON-COMPUTERS" }, { 0x0040F7, "Polaroid Corporation", "POLAROID" }, { 0x0040F8, "SYSTEMHAUS DISCOM", "SYSTEMHAUS-DISCOM" }, { 0x0040F9, "COMBINET", "COMBINET" }, { 0x0040FA, "MICROBOARDS, INC.", "MICROBOARDS" }, { 0x0040FB, "CASCADE COMMUNICATIONS", "CASCADE-COMMUNICATION" }, { 0x0040FC, "IBR COMPUTER TECHNIK GMBH", "IBR-TECHNIK" }, { 0x0040FD, "LXE", "LXE" }, { 0x0040FE, "SYMPLEX COMMUNICATIONS", "SYMPLEX-COMMUNICATION" }, { 0x0040FF, "TELEBIT CORPORATION", "TELEBIT" }, { 0x00410E, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x0041B4, "Wuxi Zhongxing Optoelectronics Technology Co.,Ltd.", "WUXI-ZHONGXING-OPTOELECTRONICS" }, { 0x0041D2, "Cisco Systems, Inc", "CISCO" }, { 0x004238, "Intel Corporate", "INTEL-CORPORATE" }, { 0x004252, "RLX Technologies", "RLX-TECHNOLOGIES" }, { 0x00425A, "Cisco Systems, Inc", "CISCO" }, { 0x004268, "Cisco Systems, Inc", "CISCO" }, { 0x004279, "Sunitec Enterprise Co.,Ltd", "SUNITEC" }, { 0x0043FF, "KETRON S.R.L.", "KETRON" }, { 0x004501, "Midmark RTLS", "MIDMARK-RTLS" }, { 0x00451D, "Cisco Systems, Inc", "CISCO" }, { 0x0045E2, "CyberTAN Technology Inc.", "CYBERTAN" }, { 0x00464B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x004A77, "zte corporation", "ZTE" }, { 0x004BF3, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x004D32, "Andon Health Co.,Ltd.", "ANDON-HEALTH" }, { 0x004E01, "Dell Inc.", "DELL" }, { 0x004E35, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x004F1A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x005000, "NEXO COMMUNICATIONS, INC.", "NEXO-COMMUNICATION" }, { 0x005001, "YAMASHITA SYSTEMS CORP.", "YAMASHITA" }, { 0x005002, "OMNISEC AG", "OMNISEC" }, { 0x005003, "Xrite Inc", "XRITE" }, { 0x005004, "3COM", "3COM" }, { 0x005006, "TAC AB", "TAC-AB" }, { 0x005007, "SIEMENS TELECOMMUNICATION SYSTEMS LIMITED", "SIEMENS-TELECOMMUNICATION" }, { 0x005008, "TIVA MICROCOMPUTER CORP. (TMC)", "TIVA-MICROCOMPUTER-TMC" }, { 0x005009, "PHILIPS BROADBAND NETWORKS", "PHILIPS-BROADBAND-NETWORKS" }, { 0x00500A, "IRIS TECHNOLOGIES, INC.", "IRIS-TECHNOLOGIES" }, { 0x00500B, "Cisco Systems, Inc", "CISCO" }, { 0x00500C, "e-Tek Labs, Inc.", "E-TEK-LABS" }, { 0x00500D, "SATORI ELECTORIC CO., LTD.", "SATORI-ELECTORIC" }, { 0x00500E, "CHROMATIS NETWORKS, INC.", "CHROMATIS-NETWORKS" }, { 0x00500F, "Cisco Systems, Inc", "CISCO" }, { 0x005010, "NovaNET Learning, Inc.", "NOVANET-LEARNING" }, { 0x005012, "CBL - GMBH", "CBL" }, { 0x005013, "Seagate Cloud Systems Inc", "SEAGATE-CLOUD" }, { 0x005014, "Cisco Systems, Inc", "CISCO" }, { 0x005015, "BRIGHT STAR ENGINEERING", "BRIGHT-STAR-ENGINEERING" }, { 0x005016, "Molex Canada Ltd", "MOLEX-CANADA" }, { 0x005017, "RSR S.R.L.", "RSR" }, { 0x005018, "AMIT, Inc.", "AMIT" }, { 0x005019, "SPRING TIDE NETWORKS, INC.", "SPRING-TIDE-NETWORKS" }, { 0x00501A, "IQinVision", "IQINVISION" }, { 0x00501B, "ABL CANADA, INC.", "ABL-CANADA" }, { 0x00501C, "JATOM SYSTEMS, INC.", "JATOM" }, { 0x00501E, "Grass Valley, A Belden Brand", "GRASS-VALLEY-A-BELDEN-BRAND" }, { 0x00501F, "MRG SYSTEMS, LTD.", "MRG" }, { 0x005020, "MEDIASTAR CO., LTD.", "MEDIASTAR" }, { 0x005021, "EIS INTERNATIONAL, INC.", "EIS" }, { 0x005022, "ZONET TECHNOLOGY, INC.", "ZONET" }, { 0x005023, "PG DESIGN ELECTRONICS, INC.", "PG-DESIGN-ELECTRONICS" }, { 0x005024, "NAVIC SYSTEMS, INC.", "NAVIC" }, { 0x005026, "COSYSTEMS, INC.", "COSYSTEMS" }, { 0x005027, "GENICOM CORPORATION", "GENICOM" }, { 0x005028, "AVAL COMMUNICATIONS", "AVAL-COMMUNICATION" }, { 0x005029, "1394 PRINTER WORKING GROUP", "1394-PRINTER-WORKING-GROUP" }, { 0x00502A, "Cisco Systems, Inc", "CISCO" }, { 0x00502B, "GENRAD LTD.", "GENRAD" }, { 0x00502C, "SOYO COMPUTER, INC.", "SOYO" }, { 0x00502D, "ACCEL, INC.", "ACCEL" }, { 0x00502E, "CAMBEX CORPORATION", "CAMBEX" }, { 0x00502F, "TollBridge Technologies, Inc.", "TOLLBRIDGE-TECHNOLOGIES" }, { 0x005030, "FUTURE PLUS SYSTEMS", "FUTURE-PLUS" }, { 0x005031, "AEROFLEX LABORATORIES, INC.", "AEROFLEX-LABORATORIES" }, { 0x005032, "PICAZO COMMUNICATIONS, INC.", "PICAZO-COMMUNICATION" }, { 0x005033, "MAYAN NETWORKS", "MAYAN-NETWORKS" }, { 0x005036, "NETCAM, LTD.", "NETCAM" }, { 0x005037, "KOGA ELECTRONICS CO.", "KOGA-ELECTRONICS" }, { 0x005038, "DAIN TELECOM CO., LTD.", "DAIN-TELECOM" }, { 0x005039, "MARINER NETWORKS", "MARINER-NETWORKS" }, { 0x00503A, "DATONG ELECTRONICS LTD.", "DATONG-ELECTRONICS" }, { 0x00503B, "MEDIAFIRE CORPORATION", "MEDIAFIRE" }, { 0x00503C, "TSINGHUA NOVEL ELECTRONICS", "TSINGHUA-NOVEL-ELECTRONICS" }, { 0x00503E, "Cisco Systems, Inc", "CISCO" }, { 0x00503F, "ANCHOR GAMES", "ANCHOR-GAMES" }, { 0x005040, "Panasonic Electric Works Co., Ltd.", "PANASONIC-ELECTRIC-WORKS" }, { 0x005041, "Coretronic Corporation", "CORETRONIC" }, { 0x005042, "SCI MANUFACTURING SINGAPORE PTE, LTD.", "SCI-MANUFACTURING-SINGAPORE-PTE" }, { 0x005043, "MARVELL SEMICONDUCTOR, INC.", "MARVELL-SEMICONDUCTOR" }, { 0x005044, "ASACA CORPORATION", "ASACA" }, { 0x005045, "RIOWORKS SOLUTIONS, INC.", "RIOWORKS-SOLUTIONS" }, { 0x005046, "MENICX INTERNATIONAL CO., LTD.", "MENICX" }, { 0x005047, "Private", "PRIVATE" }, { 0x005048, "INFOLIBRIA", "INFOLIBRIA" }, { 0x005049, "Arbor Networks Inc", "ARBOR-NETWORKS" }, { 0x00504A, "ELTECO A.S.", "ELTECO" }, { 0x00504B, "BARCONET N.V.", "BARCONET-N-V" }, { 0x00504C, "Galil Motion Control", "GALIL-MOTION-CONTROL" }, { 0x00504D, "Tokyo Electron Device Limited", "TOKYO-ELECTRON-DEVICE" }, { 0x00504E, "SIERRA MONITOR CORP.", "SIERRA-MONITOR" }, { 0x00504F, "OLENCOM ELECTRONICS", "OLENCOM-ELECTRONICS" }, { 0x005050, "Cisco Systems, Inc", "CISCO" }, { 0x005051, "IWATSU ELECTRIC CO., LTD.", "IWATSU-ELECTRIC" }, { 0x005052, "TIARA NETWORKS, INC.", "TIARA-NETWORKS" }, { 0x005053, "Cisco Systems, Inc", "CISCO" }, { 0x005054, "Cisco Systems, Inc", "CISCO" }, { 0x005055, "DOMS A/S", "DOMS-A/S" }, { 0x005056, "VMware, Inc. (possible VMware VM)", "VMWARE-VIRTUAL" }, { 0x005057, "BROADBAND ACCESS SYSTEMS", "BROADBAND-ACCESS" }, { 0x005058, "Sangoma Technologies", "SANGOMA-TECHNOLOGIES" }, { 0x005059, "iBAHN", "IBAHN" }, { 0x00505A, "NETWORK ALCHEMY, INC.", "NETWORK-ALCHEMY" }, { 0x00505B, "KAWASAKI LSI U.S.A., INC.", "KAWASAKI-LSI-U" }, { 0x00505C, "TUNDO CORPORATION", "TUNDO" }, { 0x00505E, "DIGITEK MICROLOGIC S.A.", "DIGITEK-MICROLOGIC" }, { 0x00505F, "BRAND INNOVATORS", "BRAND-INNOVATORS" }, { 0x005060, "TANDBERG TELECOM AS", "TANDBERG-TELECOM-AS" }, { 0x005062, "KOUWELL ELECTRONICS CORP. **", "KOUWELL-ELECTRONICS-**" }, { 0x005063, "OY COMSEL SYSTEM AB", "OY-COMSEL-SYSTEM-AB" }, { 0x005064, "CAE ELECTRONICS", "CAE-ELECTRONICS" }, { 0x005065, "TDK-Lambda Corporation", "TDK-LAMBDA" }, { 0x005066, "AtecoM GmbH advanced telecomunication modules", "ATECOM-ADVANCED-TELECOMUNICATION-MODULES" }, { 0x005067, "AEROCOMM, INC.", "AEROCOMM" }, { 0x005068, "ELECTRONIC INDUSTRIES ASSOCIATION", "INDUSTRIES-ASSOCIATION" }, { 0x005069, "PixStream Incorporated", "PIXSTREAM-INCORPORATED" }, { 0x00506A, "EDEVA, INC.", "EDEVA" }, { 0x00506B, "SPX-ATEG", "SPX-ATEG" }, { 0x00506C, "Beijer Electronics Products AB", "BEIJER-ELECTRONICS-PRODUCTS-AB" }, { 0x00506D, "VIDEOJET SYSTEMS", "VIDEOJET" }, { 0x00506E, "CORDER ENGINEERING CORPORATION", "CORDER-ENGINEERING" }, { 0x00506F, "G-CONNECT", "G-CONNECT" }, { 0x005070, "CHAINTECH COMPUTER CO., LTD.", "CHAINTECH" }, { 0x005071, "AIWA CO., LTD.", "AIWA" }, { 0x005072, "CORVIS CORPORATION", "CORVIS" }, { 0x005073, "Cisco Systems, Inc", "CISCO" }, { 0x005074, "ADVANCED HI-TECH CORP.", "ADVANCED-HI-TECH" }, { 0x005075, "KESTREL SOLUTIONS", "KESTREL-SOLUTIONS" }, { 0x005076, "IBM Corp", "IBM" }, { 0x005077, "PROLIFIC TECHNOLOGY, INC.", "PROLIFIC" }, { 0x005078, "MEGATON HOUSE, LTD.", "MEGATON-HOUSE" }, { 0x005079, "Private", "PRIVATE" }, { 0x00507A, "XPEED, INC.", "XPEED" }, { 0x00507B, "MERLOT COMMUNICATIONS", "MERLOT-COMMUNICATION" }, { 0x00507C, "VIDEOCON AG", "VIDEOCON" }, { 0x00507D, "IFP", "IFP" }, { 0x00507E, "NEWER TECHNOLOGY", "NEWER" }, { 0x00507F, "DrayTek Corp.", "DRAYTEK" }, { 0x005080, "Cisco Systems, Inc", "CISCO" }, { 0x005081, "MURATA MACHINERY, LTD.", "MURATA-MACHINERY" }, { 0x005082, "FORESSON CORPORATION", "FORESSON" }, { 0x005083, "GILBARCO, INC.", "GILBARCO" }, { 0x005084, "Quantum Corp.", "QUANTUM" }, { 0x005086, "TELKOM SA, LTD.", "TELKOM" }, { 0x005087, "TERASAKI ELECTRIC CO., LTD.", "TERASAKI-ELECTRIC" }, { 0x005088, "AMANO CORPORATION", "AMANO" }, { 0x005089, "SAFETY MANAGEMENT SYSTEMS", "SAFETY-MANAGEMENT" }, { 0x00508B, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x00508C, "RSI SYSTEMS", "RSI" }, { 0x00508D, "ABIT COMPUTER CORPORATION", "ABIT" }, { 0x00508E, "OPTIMATION, INC.", "OPTIMATION" }, { 0x00508F, "ASITA TECHNOLOGIES INT'L LTD.", "ASITA-TECHNOLOGIES" }, { 0x005090, "DCTRI", "DCTRI" }, { 0x005091, "NETACCESS, INC.", "NETACCESS" }, { 0x005092, "Rigaku Corporation Osaka Plant", "RIGAKU-OSAKA-PLANT" }, { 0x005093, "BOEING", "BOEING" }, { 0x005094, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x005095, "PERACOM NETWORKS", "PERACOM-NETWORKS" }, { 0x005096, "SALIX TECHNOLOGIES, INC.", "SALIX-TECHNOLOGIES" }, { 0x005097, "MMC-EMBEDDED COMPUTERTECHNIK GmbH", "MMC-EMBEDDED-COMPUTERTECHNIK" }, { 0x005098, "GLOBALOOP, LTD.", "GLOBALOOP" }, { 0x005099, "3COM EUROPE LTD", "3COM" }, { 0x00509A, "TAG ELECTRONIC SYSTEMS", "TAG" }, { 0x00509B, "SWITCHCORE AB", "SWITCHCORE-AB" }, { 0x00509C, "BETA RESEARCH", "BETA-RESEARCH" }, { 0x00509D, "THE INDUSTREE B.V.", "THE-INDUSTREE-B-V" }, { 0x00509E, "Les Technologies SoftAcoustik Inc.", "LES-TECHNOLOGIES-SOFTACOUSTIK" }, { 0x00509F, "HORIZON COMPUTER", "HORIZON" }, { 0x0050A0, "DELTA COMPUTER SYSTEMS, INC.", "DELTA" }, { 0x0050A1, "CARLO GAVAZZI, INC.", "CARLO-GAVAZZI" }, { 0x0050A2, "Cisco Systems, Inc", "CISCO" }, { 0x0050A3, "TransMedia Communications, Inc.", "TRANSMEDIA-COMMUNICATION" }, { 0x0050A4, "IO TECH, INC.", "IO-TECH" }, { 0x0050A5, "CAPITOL BUSINESS SYSTEMS, LTD.", "CAPITOL-BUSINESS" }, { 0x0050A6, "OPTRONICS", "OPTRONICS" }, { 0x0050A7, "Cisco Systems, Inc", "CISCO" }, { 0x0050A8, "OpenCon Systems, Inc.", "OPENCON" }, { 0x0050A9, "MOLDAT WIRELESS TECHNOLGIES", "MOLDAT-WIRELESS-TECHNOLGIES" }, { 0x0050AA, "KONICA MINOLTA HOLDINGS, INC.", "KONICA-MINOLTA-HOLDINGS" }, { 0x0050AB, "NALTEC, Inc.", "NALTEC" }, { 0x0050AC, "MAPLE COMPUTER CORPORATION", "MAPLE" }, { 0x0050AD, "CommUnique Wireless Corp.", "COMMUNIQUE-WIRELESS" }, { 0x0050AE, "FDK Co., Ltd", "FDK" }, { 0x0050AF, "INTERGON, INC.", "INTERGON" }, { 0x0050B0, "TECHNOLOGY ATLANTA CORPORATION", "ATLANTA" }, { 0x0050B1, "GIDDINGS & LEWIS", "GIDDINGS-LEWIS" }, { 0x0050B2, "BRODEL GmbH", "BRODEL" }, { 0x0050B3, "VOICEBOARD CORPORATION", "VOICEBOARD" }, { 0x0050B4, "SATCHWELL CONTROL SYSTEMS, LTD", "SATCHWELL-CONTROL" }, { 0x0050B5, "FICHET SECURITE ELECTRONIQUE", "FICHET-SECURITE-ELECTRONIQUE" }, { 0x0050B6, "GOOD WAY IND. CO., LTD.", "GOOD-WAY-IND" }, { 0x0050B7, "BOSER TECHNOLOGY CO., LTD.", "BOSER" }, { 0x0050B8, "INOVA COMPUTERS GMBH & CO. KG", "INOVA-COMPUTERS" }, { 0x0050B9, "XITRON TECHNOLOGIES, INC.", "XITRON-TECHNOLOGIES" }, { 0x0050BA, "D-Link Corporation", "D-LINK" }, { 0x0050BB, "CMS TECHNOLOGIES", "CMS-TECHNOLOGIES" }, { 0x0050BC, "HAMMER STORAGE SOLUTIONS", "HAMMER-STORAGE-SOLUTIONS" }, { 0x0050BD, "Cisco Systems, Inc", "CISCO" }, { 0x0050BE, "FAST MULTIMEDIA AG", "FAST-MULTIMEDIA" }, { 0x0050BF, "Metalligence Technology Corp.", "METALLIGENCE" }, { 0x0050C0, "GATAN, INC.", "GATAN" }, { 0x0050C1, "GEMFLEX NETWORKS, LTD.", "GEMFLEX-NETWORKS" }, { 0x0050C2, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x0050C4, "IMD", "IMD" }, { 0x0050C5, "ADS Technologies, Inc", "ADS-TECHNOLOGIES" }, { 0x0050C6, "LOOP TELECOMMUNICATION INTERNATIONAL, INC.", "LOOP-TELECOMMUNICATION" }, { 0x0050C7, "Private", "PRIVATE" }, { 0x0050C8, "Addonics Technologies, Inc.", "ADDONICS-TECHNOLOGIES" }, { 0x0050C9, "MASPRO DENKOH CORP.", "MASPRO-DENKOH" }, { 0x0050CA, "DZS Inc.", "DZS" }, { 0x0050CB, "JETTER", "JETTER" }, { 0x0050CC, "Seagate Cloud Systems Inc", "SEAGATE-CLOUD" }, { 0x0050CD, "DIGIANSWER A/S", "DIGIANSWER-A/S" }, { 0x0050CE, "LG INTERNATIONAL CORP.", "LG" }, { 0x0050CF, "VANLINK COMMUNICATION TECHNOLOGY RESEARCH INSTITUTE", "VANLINK-COMMUNICATION-RESEARCH-INSTITUTE" }, { 0x0050D0, "MINERVA SYSTEMS", "MINERVA" }, { 0x0050D1, "Cisco Systems, Inc", "CISCO" }, { 0x0050D2, "CMC Electronics Inc", "CMC-ELECTRONICS" }, { 0x0050D3, "DIGITAL AUDIO PROCESSING PTY. LTD.", "DIGITAL-AUDIO-PROCESSING-PTY" }, { 0x0050D4, "JOOHONG INFORMATION &", "JOOHONG-INFORMATION" }, { 0x0050D5, "AD SYSTEMS CORP.", "AD" }, { 0x0050D6, "ATLAS COPCO TOOLS AB", "ATLAS-COPCO-TOOLS-AB" }, { 0x0050D7, "TELSTRAT", "TELSTRAT" }, { 0x0050D8, "UNICORN COMPUTER CORP.", "UNICORN" }, { 0x0050D9, "ENGETRON-ENGENHARIA ELETRONICA IND. e COM. LTDA", "ENGETRON-ENGENHARIA-ELETRONICA-IND-E-COM-LTDA" }, { 0x0050DA, "3COM", "3COM" }, { 0x0050DB, "CONTEMPORARY CONTROL", "CONTEMPORARY-CONTROL" }, { 0x0050DC, "TAS TELEFONBAU A. SCHWABE GMBH & CO. KG", "TAS-TELEFONBAU-A-SCHWABE" }, { 0x0050DD, "SERRA SOLDADURA, S.A.", "SERRA-SOLDADURA" }, { 0x0050DE, "SIGNUM SYSTEMS CORP.", "SIGNUM" }, { 0x0050DF, "AirFiber, Inc.", "AIRFIBER" }, { 0x0050E1, "NS TECH ELECTRONICS SDN BHD", "NS-TECH-ELECTRONICS" }, { 0x0050E2, "Cisco Systems, Inc", "CISCO" }, { 0x0050E3, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0050E4, "Apple, Inc.", "APPLE" }, { 0x0050E6, "HAKUSAN CORPORATION", "HAKUSAN" }, { 0x0050E7, "PARADISE INNOVATIONS (ASIA)", "PARADISE-INNOVATIONS-ASIA" }, { 0x0050E8, "Nomadix, Inc", "NOMADIX" }, { 0x0050EA, "XEL COMMUNICATIONS, INC.", "XEL-COMMUNICATION" }, { 0x0050EB, "ALPHA-TOP CORPORATION", "ALPHA-TOP" }, { 0x0050EC, "OLICOM A/S", "OLICOM-A/S" }, { 0x0050ED, "ANDA NETWORKS", "ANDA-NETWORKS" }, { 0x0050EE, "TEK DIGITEL CORPORATION", "TEK-DIGITEL" }, { 0x0050EF, "SPE Systemhaus GmbH", "SPE-SYSTEMHAUS" }, { 0x0050F0, "Cisco Systems, Inc", "CISCO" }, { 0x0050F1, "Maxlinear, Inc", "MAXLINEAR" }, { 0x0050F2, "MICROSOFT CORP.", "MICROSOFT" }, { 0x0050F3, "GLOBAL NET INFORMATION CO., Ltd.", "GLOBAL-NET-INFORMATION" }, { 0x0050F4, "SIGMATEK GMBH & CO. KG", "SIGMATEK" }, { 0x0050F6, "PAN-INTERNATIONAL INDUSTRIAL CORP.", "PAN-INDUSTRIAL" }, { 0x0050F7, "VENTURE MANUFACTURING (SINGAPORE) LTD.", "VENTURE-MANUFACTURING-SINGAPORE" }, { 0x0050F8, "ENTREGA TECHNOLOGIES, INC.", "ENTREGA-TECHNOLOGIES" }, { 0x0050F9, "Sensormatic Electronics LLC", "SENSORMATIC-ELECTRONICS" }, { 0x0050FA, "OXTEL, LTD.", "OXTEL" }, { 0x0050FB, "VSK ELECTRONICS", "VSK-ELECTRONICS" }, { 0x0050FC, "Edimax Technology Co. Ltd.", "EDIMAX" }, { 0x0050FD, "VISIONCOMM CO., LTD.", "VISIONCOMM" }, { 0x0050FE, "PCTVnet ASA", "PCTVNET-ASA" }, { 0x0050FF, "HAKKO ELECTRONICS CO., LTD.", "HAKKO-ELECTRONICS" }, { 0x0051ED, "LG Innotek", "LG-INNOTEK" }, { 0x005218, "Wuxi Keboda Electron Co.Ltd", "WUXI-KEBODA-ELECTRON" }, { 0x0052C2, "peiker acustic GmbH", "PEIKER-ACUSTIC" }, { 0x0052C8, "Made Studio Design Ltd.", "MADE-STUDIO-DESIGN" }, { 0x00549F, "Avaya Inc", "AVAYA" }, { 0x0054AF, "Continental Automotive Systems Inc.", "CONTINENTAL-AUTOMOTIVE" }, { 0x0054BD, "Swelaser AB", "SWELASER-AB" }, { 0x0055B1, "Shanghai Baud Data Communication Co.,Ltd.", "SHANGHAI-BAUD-DATA-COMMUNICATION" }, { 0x0055DA, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x00562B, "Cisco Systems, Inc", "CISCO" }, { 0x00566D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x0056CD, "Apple, Inc.", "APPLE" }, { 0x0057C1, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x0057D2, "Cisco Systems, Inc", "CISCO" }, { 0x005828, "Axon Networks Inc.", "AXON-NETWORKS" }, { 0x00583F, "PC Aquarius", "PC-AQUARIUS" }, { 0x005907, "LenovoEMC Products USA, LLC", "LENOVOEMC-PRODUCTS-USA" }, { 0x005979, "Networked Energy Services", "NETWORKED-ENERGY-SERVICES" }, { 0x0059AC, "KPN. B.V.", "KPN-B-V" }, { 0x0059DC, "Cisco Systems, Inc", "CISCO" }, { 0x005A13, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x005A39, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0x005B94, "Apple, Inc.", "APPLE" }, { 0x005BA1, "shanghai huayuan chuangxin software CO., LTD.", "SHANGHAI-HUAYUAN-CHUANGXIN-SOFTWARE" }, { 0x005C86, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0x005CB1, "Gospell DIGITAL TECHNOLOGY CO., LTD", "GOSPELL-DIGITAL" }, { 0x005CC2, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x005D03, "Xilinx, Inc", "XILINX" }, { 0x005D73, "Cisco Systems, Inc", "CISCO" }, { 0x005E0C, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x005F67, "TP-Link Corporation Limited", "TP-LINK" }, { 0x005F86, "Cisco Systems, Inc", "CISCO" }, { 0x005FBF, "Toshiba Corp.", "TOSHIBA" }, { 0x006000, "XYCOM INC.", "XYCOM" }, { 0x006001, "InnoSys, Inc.", "INNOSYS" }, { 0x006002, "SCREEN SUBTITLING SYSTEMS, LTD", "SCREEN-SUBTITLING" }, { 0x006003, "TERAOKA WEIGH SYSTEM PTE, LTD.", "TERAOKA-WEIGH-SYSTEM-PTE" }, { 0x006004, "COMPUTADORES MODULARES SA", "COMPUTADORES-MODULARES" }, { 0x006005, "FEEDBACK DATA LTD.", "FEEDBACK-DATA" }, { 0x006006, "SOTEC CO., LTD", "SOTEC" }, { 0x006007, "ACRES GAMING, INC.", "ACRES-GAMING" }, { 0x006008, "3COM", "3COM" }, { 0x006009, "Cisco Systems, Inc", "CISCO" }, { 0x00600A, "SORD COMPUTER CORPORATION", "SORD" }, { 0x00600B, "LOGWARE GmbH", "LOGWARE" }, { 0x00600C, "Eurotech Inc.", "EUROTECH" }, { 0x00600D, "Digital Logic GmbH", "DIGITAL-LOGIC" }, { 0x00600E, "WAVENET INTERNATIONAL, INC.", "WAVENET" }, { 0x00600F, "Westell Technologies Inc.", "WESTELL-TECHNOLOGIES" }, { 0x006010, "NETWORK MACHINES, INC.", "NETWORK-MACHINES" }, { 0x006011, "CRYSTAL SEMICONDUCTOR CORP.", "CRYSTAL-SEMICONDUCTOR" }, { 0x006012, "POWER COMPUTING CORPORATION", "POWER-COMPUTING" }, { 0x006013, "NETSTAL MASCHINEN AG", "NETSTAL-MASCHINEN" }, { 0x006014, "EDEC CO., LTD.", "EDEC" }, { 0x006015, "NET2NET CORPORATION", "NET2NET" }, { 0x006016, "CLARIION", "CLARIION" }, { 0x006017, "TOKIMEC INC.", "TOKIMEC" }, { 0x006018, "STELLAR ONE CORPORATION", "STELLAR-ONE" }, { 0x006019, "Roche Diagnostics", "ROCHE-DIAGNOSTICS" }, { 0x00601A, "KEITHLEY INSTRUMENTS", "KEITHLEY-INSTRUMENTS" }, { 0x00601B, "MESA ELECTRONICS", "MESA-ELECTRONICS" }, { 0x00601C, "TELXON CORPORATION", "TELXON" }, { 0x00601D, "LUCENT TECHNOLOGIES", "LUCENT-TECHNOLOGIES" }, { 0x00601E, "SOFTLAB, INC.", "SOFTLAB" }, { 0x00601F, "STALLION TECHNOLOGIES", "STALLION-TECHNOLOGIES" }, { 0x006020, "PIVOTAL NETWORKING, INC.", "PIVOTAL-NETWORKING" }, { 0x006021, "DSC CORPORATION", "DSC" }, { 0x006022, "VICOM SYSTEMS, INC.", "VICOM" }, { 0x006023, "PERICOM SEMICONDUCTOR CORP.", "PERICOM-SEMICONDUCTOR" }, { 0x006024, "GRADIENT TECHNOLOGIES, INC.", "GRADIENT-TECHNOLOGIES" }, { 0x006025, "ACTIVE IMAGING PLC", "ACTIVE-IMAGING-PLC" }, { 0x006026, "VIKING Modular Solutions", "VIKING-MODULAR-SOLUTIONS" }, { 0x006027, "Superior Modular Products", "SUPERIOR-MODULAR-PRODUCTS" }, { 0x006028, "MACROVISION CORPORATION", "MACROVISION" }, { 0x006029, "CARY PERIPHERALS INC.", "CARY-PERIPHERALS" }, { 0x00602A, "SYMICRON COMPUTER COMMUNICATIONS, LTD.", "SYMICRON-COMMUNICATION" }, { 0x00602B, "PEAK AUDIO", "PEAK-AUDIO" }, { 0x00602C, "LINX Data Terminals, Inc.", "LINX-DATA-TERMINALS" }, { 0x00602D, "ALERTON TECHNOLOGIES, INC.", "ALERTON-TECHNOLOGIES" }, { 0x00602E, "CYCLADES CORPORATION", "CYCLADES" }, { 0x00602F, "Cisco Systems, Inc", "CISCO" }, { 0x006030, "VILLAGE TRONIC ENTWICKLUNG", "VILLAGE-TRONIC-ENTWICKLUNG" }, { 0x006031, "HRK SYSTEMS", "HRK" }, { 0x006032, "I-CUBE, INC.", "I-CUBE" }, { 0x006033, "ACUITY IMAGING, INC.", "ACUITY-IMAGING" }, { 0x006034, "ROBERT BOSCH GmbH", "ROBERT-BOSCH" }, { 0x006035, "DALLAS SEMICONDUCTOR, INC.", "DALLAS-SEMICONDUCTOR" }, { 0x006036, "AIT Austrian Institute of Technology GmbH", "AIT-AUSTRIAN-INSTITUTE-OF" }, { 0x006037, "NXP Semiconductors", "NXP-SEMICONDUCTORS" }, { 0x006038, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x006039, "SanCom Technology, Inc.", "SANCOM" }, { 0x00603A, "QUICK CONTROLS LTD.", "QUICK-CONTROLS" }, { 0x00603B, "AMTEC spa", "AMTEC-SPA" }, { 0x00603C, "HAGIWARA SYS-COM CO., LTD.", "HAGIWARA-SYS-COM" }, { 0x00603D, "3CX", "3CX" }, { 0x00603E, "Cisco Systems, Inc", "CISCO" }, { 0x00603F, "PATAPSCO DESIGNS", "PATAPSCO-DESIGNS" }, { 0x006040, "NETRO CORP.", "NETRO" }, { 0x006041, "Yokogawa Digital Computer Corporation", "YOKOGAWA-DIGITAL" }, { 0x006042, "TKS (USA), INC.", "TKS-USA" }, { 0x006043, "iDirect, INC.", "IDIRECT" }, { 0x006044, "LITTON/POLY-SCIENTIFIC", "LITTON/POLY-SCIENTIFIC" }, { 0x006045, "PATHLIGHT TECHNOLOGIES", "PATHLIGHT-TECHNOLOGIES" }, { 0x006046, "VMETRO, INC.", "VMETRO" }, { 0x006047, "Cisco Systems, Inc", "CISCO" }, { 0x006048, "Dell EMC", "DELL-EMC" }, { 0x006049, "VINA TECHNOLOGIES", "VINA-TECHNOLOGIES" }, { 0x00604A, "SAIC IDEAS GROUP", "SAIC-IDEAS-GROUP" }, { 0x00604B, "Safe-com GmbH & Co. KG", "SAFE-COM" }, { 0x00604C, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x00604D, "MMC NETWORKS, INC.", "MMC-NETWORKS" }, { 0x00604E, "CYCLE COMPUTER CORPORATION, INC.", "CYCLE" }, { 0x00604F, "Tattile SRL", "TATTILE-SRL" }, { 0x006050, "INTERNIX INC.", "INTERNIX" }, { 0x006051, "QUALITY SEMICONDUCTOR", "QUALITY-SEMICONDUCTOR" }, { 0x006052, "PERIPHERALS ENTERPRISE CO., Ltd.", "PERIPHERALS" }, { 0x006053, "TOYODA MACHINE WORKS, LTD.", "TOYODA-MACHINE-WORKS" }, { 0x006054, "CONTROLWARE GMBH", "CONTROLWARE" }, { 0x006055, "CORNELL UNIVERSITY", "CORNELL-UNIVERSITY" }, { 0x006056, "NETWORK TOOLS, INC.", "NETWORK-TOOLS" }, { 0x006057, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x006058, "COPPER MOUNTAIN COMMUNICATIONS, INC.", "COPPER-MOUNTAIN-COMMUNICATION" }, { 0x006059, "TECHNICAL COMMUNICATIONS CORP.", "TECHNICAL-COMMUNICATION" }, { 0x00605A, "CELCORE, INC.", "CELCORE" }, { 0x00605B, "IntraServer Technology, Inc.", "INTRASERVER" }, { 0x00605C, "Cisco Systems, Inc", "CISCO" }, { 0x00605D, "SCANIVALVE CORP.", "SCANIVALVE" }, { 0x00605E, "LIBERTY TECHNOLOGY NETWORKING", "LIBERTY-NETWORKING" }, { 0x00605F, "NIPPON UNISOFT CORPORATION", "NIPPON-UNISOFT" }, { 0x006060, "Data Innovations North America", "DATA-INNOVATIONS-NORTH-AMERICA" }, { 0x006061, "WHISTLE COMMUNICATIONS CORP.", "WHISTLE-COMMUNICATION" }, { 0x006062, "TELESYNC, INC.", "TELESYNC" }, { 0x006063, "PSION DACOM PLC.", "PSION-DACOM-PLC" }, { 0x006064, "NETCOMM LIMITED", "NETCOMM" }, { 0x006065, "B&R Industrial Automation GmbH", "B-R-INDUSTRIAL-AUTOMATION" }, { 0x006066, "LACROIX Trafic", "LACROIX-TRAFIC" }, { 0x006067, "ACER NETXUS INC.", "ACER-NETXUS" }, { 0x006068, "Dialogic Corporation", "DIALOGIC" }, { 0x006069, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x00606A, "MITSUBISHI WIRELESS COMMUNICATIONS. INC.", "MITSUBISHI-WIRELESS-COMMUNICATION" }, { 0x00606B, "Synclayer Inc.", "SYNCLAYER" }, { 0x00606C, "ARESCOM", "ARESCOM" }, { 0x00606D, "DIGITAL EQUIPMENT CORP.", "DIGITAL-EQUIPMENT" }, { 0x00606E, "DAVICOM SEMICONDUCTOR, INC.", "DAVICOM-SEMICONDUCTOR" }, { 0x00606F, "CLARION CORPORATION OF AMERICA", "CLARION-OF-AMERICA" }, { 0x006070, "Cisco Systems, Inc", "CISCO" }, { 0x006071, "MIDAS LAB, INC.", "MIDAS-LAB" }, { 0x006072, "VXL INSTRUMENTS, LIMITED", "VXL-INSTRUMENTS" }, { 0x006073, "REDCREEK COMMUNICATIONS, INC.", "REDCREEK-COMMUNICATION" }, { 0x006074, "QSC LLC", "QSC" }, { 0x006075, "PENTEK, INC.", "PENTEK" }, { 0x006076, "SCHLUMBERGER TECHNOLOGIES RETAIL PETROLEUM SYSTEMS", "SCHLUMBERGER-TECHNOLOGIES-RETAIL-PETROLEUM" }, { 0x006077, "PRISA NETWORKS", "PRISA-NETWORKS" }, { 0x006078, "POWER MEASUREMENT LTD.", "POWER-MEASUREMENT" }, { 0x006079, "Mainstream Data, Inc.", "MAINSTREAM-DATA" }, { 0x00607A, "DVS GMBH", "DVS" }, { 0x00607B, "FORE SYSTEMS, INC.", "FORE" }, { 0x00607C, "WaveAccess, Ltd.", "WAVEACCESS" }, { 0x00607D, "SENTIENT NETWORKS INC.", "SENTIENT-NETWORKS" }, { 0x00607E, "GIGALABS, INC.", "GIGALABS" }, { 0x00607F, "AURORA TECHNOLOGIES, INC.", "AURORA-TECHNOLOGIES" }, { 0x006080, "MICROTRONIX DATACOM LTD.", "MICROTRONIX-DATACOM" }, { 0x006081, "TV/COM INTERNATIONAL", "TV/COM" }, { 0x006082, "NOVALINK TECHNOLOGIES, INC.", "NOVALINK-TECHNOLOGIES" }, { 0x006083, "Cisco Systems, Inc", "CISCO" }, { 0x006084, "DIGITAL VIDEO", "DIGITAL-VIDEO" }, { 0x006085, "Storage Concepts", "STORAGE-CONCEPTS" }, { 0x006086, "LOGIC REPLACEMENT TECH. LTD.", "LOGIC-REPLACEMENT-TECH" }, { 0x006087, "KANSAI ELECTRIC CO., LTD.", "KANSAI-ELECTRIC" }, { 0x006088, "Analog Devices, Inc.", "ANALOG-DEVICES" }, { 0x006089, "XATA", "XATA" }, { 0x00608A, "CITADEL COMPUTER", "CITADEL" }, { 0x00608B, "ConferTech International", "CONFERTECH" }, { 0x00608C, "3COM", "3COM" }, { 0x00608D, "UNIPULSE CORP.", "UNIPULSE" }, { 0x00608E, "HE ELECTRONICS, TECHNOLOGIE & SYSTEMTECHNIK GmbH", "HE-ELECTRONICS-TECHNOLOGIE-SYSTEMTECHNIK" }, { 0x00608F, "TEKRAM TECHNOLOGY CO., LTD.", "TEKRAM" }, { 0x006090, "Artiza Networks Inc", "ARTIZA-NETWORKS" }, { 0x006091, "FIRST PACIFIC NETWORKS, INC.", "FIRST-PACIFIC-NETWORKS" }, { 0x006092, "MICRO/SYS, INC.", "MICRO/SYS" }, { 0x006093, "VARIAN", "VARIAN" }, { 0x006094, "IBM Corp", "IBM" }, { 0x006095, "ACCU-TIME SYSTEMS, INC.", "ACCU-TIME" }, { 0x006096, "T.S. MICROTECH INC.", "T-S-MICROTECH" }, { 0x006097, "3COM", "3COM" }, { 0x006098, "HT COMMUNICATIONS", "HT-COMMUNICATION" }, { 0x006099, "SBE, Inc.", "SBE" }, { 0x00609A, "NJK TECHNO CO.", "NJK-TECHNO" }, { 0x00609B, "AstroNova, Inc", "ASTRONOVA" }, { 0x00609C, "Perkin-Elmer Incorporated", "PERKIN-ELMER-INCORPORATED" }, { 0x00609D, "PMI FOOD EQUIPMENT GROUP", "PMI-FOOD-EQUIPMENT-GROUP" }, { 0x00609E, "ASC X3 - INFORMATION TECHNOLOGY STANDARDS SECRETARIATS", "ASC-X3-INFORMATION-STANDARDS-SECRETARIATS" }, { 0x00609F, "PHAST CORPORATION", "PHAST" }, { 0x0060A0, "SWITCHED NETWORK TECHNOLOGIES, INC.", "SWITCHED-NETWORK-TECHNOLOGIES" }, { 0x0060A1, "VPNet, Inc.", "VPNET" }, { 0x0060A2, "NIHON UNISYS LIMITED CO.", "NIHON-UNISYS" }, { 0x0060A3, "CONTINUUM TECHNOLOGY CORP.", "CONTINUUM" }, { 0x0060A4, "GEW Technologies (PTY)Ltd", "GEW-TECHNOLOGIES-PTY" }, { 0x0060A5, "PERFORMANCE TELECOM CORP.", "PERFORMANCE-TELECOM" }, { 0x0060A6, "PARTICLE MEASURING SYSTEMS", "PARTICLE-MEASURING" }, { 0x0060A7, "MICROSENS GmbH & CO. KG", "MICROSENS" }, { 0x0060A8, "TIDOMAT AB", "TIDOMAT-AB" }, { 0x0060A9, "GESYTEC MBH", "GESYTEC" }, { 0x0060AA, "INTELLIGENT DEVICES INC. (IDI)", "INTELLIGENT-DEVICES-IDI" }, { 0x0060AB, "LARSCOM INCORPORATED", "LARSCOM-INCORPORATED" }, { 0x0060AC, "RESILIENCE CORPORATION", "RESILIENCE" }, { 0x0060AD, "MegaChips Corporation", "MEGACHIPS" }, { 0x0060AE, "TRIO INFORMATION SYSTEMS AB", "TRIO-INFORMATION-AB" }, { 0x0060AF, "PACIFIC MICRO DATA, INC.", "PACIFIC-MICRO-DATA" }, { 0x0060B0, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x0060B1, "Input/Output, Inc.", "INPUT/OUTPUT" }, { 0x0060B2, "PROCESS CONTROL CORP.", "PROCESS-CONTROL" }, { 0x0060B3, "Z-COM, INC.", "Z-COM" }, { 0x0060B4, "GLENAYRE R&D INC.", "GLENAYRE-R-D" }, { 0x0060B5, "KEBA GmbH", "KEBA" }, { 0x0060B6, "LAND COMPUTER CO., LTD.", "LAND" }, { 0x0060B7, "CHANNELMATIC, INC.", "CHANNELMATIC" }, { 0x0060B8, "CORELIS Inc.", "CORELIS" }, { 0x0060B9, "NEC Platforms, Ltd", "NEC-PLATFORMS" }, { 0x0060BA, "SAHARA NETWORKS, INC.", "SAHARA-NETWORKS" }, { 0x0060BB, "Cabletron Systems, Inc.", "CABLETRON" }, { 0x0060BC, "KeunYoung Electronics & Communication Co., Ltd.", "KEUNYOUNG-ELECTRONICS-COMMUNICATION" }, { 0x0060BD, "Enginuity Communications", "ENGINUITY-COMMUNICATION" }, { 0x0060BE, "WEBTRONICS", "WEBTRONICS" }, { 0x0060BF, "MACRAIGOR SYSTEMS, INC.", "MACRAIGOR" }, { 0x0060C0, "Nera Networks AS", "NERA-NETWORKS-AS" }, { 0x0060C1, "WaveSpan Corporation", "WAVESPAN" }, { 0x0060C2, "MPL AG", "MPL" }, { 0x0060C3, "NETVISION CORPORATION", "NETVISION" }, { 0x0060C4, "SOLITON SYSTEMS K.K.", "SOLITON-K-K" }, { 0x0060C5, "ANCOT CORP.", "ANCOT" }, { 0x0060C6, "DCS AG", "DCS" }, { 0x0060C7, "AMATI COMMUNICATIONS CORP.", "AMATI-COMMUNICATION" }, { 0x0060C8, "KUKA WELDING SYSTEMS & ROBOTS", "KUKA-WELDING-ROBOTS" }, { 0x0060C9, "ControlNet, Inc.", "CONTROLNET" }, { 0x0060CA, "HARMONIC SYSTEMS INCORPORATED", "HARMONIC-INCORPORATED" }, { 0x0060CB, "HITACHI ZOSEN CORPORATION", "HITACHI-ZOSEN" }, { 0x0060CC, "EMTRAK, INCORPORATED", "EMTRAK-INCORPORATED" }, { 0x0060CD, "VideoServer, Inc.", "VIDEOSERVER" }, { 0x0060CE, "ACCLAIM COMMUNICATIONS", "ACCLAIM-COMMUNICATION" }, { 0x0060CF, "ALTEON NETWORKS, INC.", "ALTEON-NETWORKS" }, { 0x0060D0, "SNMP RESEARCH INCORPORATED", "SNMP-RESEARCH-INCORPORATED" }, { 0x0060D1, "CASCADE COMMUNICATIONS", "CASCADE-COMMUNICATION" }, { 0x0060D2, "LUCENT TECHNOLOGIES TAIWAN TELECOMMUNICATIONS CO., LTD.", "LUCENT-TECHNOLOGIES-TAIWAN-TELECOMMUNICATIONS" }, { 0x0060D3, "AT&T", "AT-T" }, { 0x0060D4, "ELDAT COMMUNICATION LTD.", "ELDAT-COMMUNICATION" }, { 0x0060D5, "AMADA MIYACHI Co., Ltd", "AMADA-MIYACHI" }, { 0x0060D6, "NovAtel Inc.", "NOVATEL" }, { 0x0060D7, "ECOLE POLYTECHNIQUE FEDERALE DE LAUSANNE (EPFL)", "ECOLE-POLYTECHNIQUE-FEDERALE-DE-LAUSANNE-EPFL" }, { 0x0060D8, "ELMIC SYSTEMS, INC.", "ELMIC" }, { 0x0060D9, "TRANSYS NETWORKS INC.", "TRANSYS-NETWORKS" }, { 0x0060DA, "Red Lion Controls, LP", "RED-LION-CONTROLS-LP" }, { 0x0060DB, "NTP ELEKTRONIK A/S", "NTP-ELEKTRONIK-A/S" }, { 0x0060DC, "NEC Magnus Communications,Ltd.", "NEC-MAGNUS-COMMUNICATION" }, { 0x0060DD, "MYRICOM, INC.", "MYRICOM" }, { 0x0060DE, "Kayser-Threde GmbH", "KAYSER-THREDE" }, { 0x0060DF, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x0060E0, "AXIOM TECHNOLOGY CO., LTD.", "AXIOM" }, { 0x0060E1, "ORCKIT COMMUNICATIONS LTD.", "ORCKIT-COMMUNICATION" }, { 0x0060E2, "QUEST ENGINEERING & DEVELOPMENT", "QUEST-ENGINEERING-DEVELOPMENT" }, { 0x0060E3, "ARBIN INSTRUMENTS", "ARBIN-INSTRUMENTS" }, { 0x0060E4, "COMPUSERVE, INC.", "COMPUSERVE" }, { 0x0060E5, "FUJI AUTOMATION CO., LTD.", "FUJI-AUTOMATION" }, { 0x0060E6, "SHOMITI SYSTEMS INCORPORATED", "SHOMITI-INCORPORATED" }, { 0x0060E7, "RANDATA", "RANDATA" }, { 0x0060E8, "HITACHI COMPUTER PRODUCTS (AMERICA), INC.", "HITACHI-PRODUCTS-AMERICA" }, { 0x0060E9, "ATOP TECHNOLOGIES, INC.", "ATOP-TECHNOLOGIES" }, { 0x0060EA, "StreamLogic", "STREAMLOGIC" }, { 0x0060EB, "FOURTHTRACK SYSTEMS", "FOURTHTRACK" }, { 0x0060EC, "HERMARY OPTO ELECTRONICS INC.", "HERMARY-OPTO-ELECTRONICS" }, { 0x0060ED, "RICARDO TEST AUTOMATION LTD.", "RICARDO-TEST-AUTOMATION" }, { 0x0060EE, "APOLLO", "APOLLO" }, { 0x0060EF, "FLYTECH TECHNOLOGY CO., LTD.", "FLYTECH" }, { 0x0060F0, "JOHNSON & JOHNSON MEDICAL, INC", "JOHNSON-JOHNSON-MEDICAL" }, { 0x0060F1, "EXP COMPUTER, INC.", "EXP" }, { 0x0060F2, "LASERGRAPHICS, INC.", "LASERGRAPHICS" }, { 0x0060F3, "Performance Analysis Broadband, Spirent plc", "PERFORMANCE-ANALYSIS-BROADBAND-SPIRENT-PLC" }, { 0x0060F4, "ADVANCED COMPUTER SOLUTIONS, Inc.", "ADVANCED-SOLUTIONS" }, { 0x0060F5, "ICON WEST, INC.", "ICON-WEST" }, { 0x0060F6, "NEXTEST COMMUNICATIONS PRODUCTS, INC.", "NEXTEST-COMMUNICATION-PRODUCTS" }, { 0x0060F7, "DATAFUSION SYSTEMS", "DATAFUSION" }, { 0x0060F8, "Loran International Technologies Inc.", "LORAN-TECHNOLOGIES" }, { 0x0060F9, "DIAMOND LANE COMMUNICATIONS", "DIAMOND-LANE-COMMUNICATION" }, { 0x0060FA, "EDUCATIONAL TECHNOLOGY RESOURCES, INC.", "EDUCATIONAL-RESOURCES" }, { 0x0060FB, "PACKETEER, INC.", "PACKETEER" }, { 0x0060FC, "CONSERVATION THROUGH INNOVATION LTD.", "CONSERVATION-THROUGH-INNOVATION" }, { 0x0060FD, "NetICs, Inc.", "NETICS" }, { 0x0060FE, "LYNX SYSTEM DEVELOPERS, INC.", "LYNX-SYSTEM-DEVELOPERS" }, { 0x0060FF, "QuVis, Inc.", "QUVIS" }, { 0x006151, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x006171, "Apple, Inc.", "APPLE" }, { 0x00620B, "Broadcom Limited", "BROADCOM" }, { 0x0062EC, "Cisco Systems, Inc", "CISCO" }, { 0x0063DE, "CLOUDWALK TECHNOLOGY CO.,LTD", "CLOUDWALK" }, { 0x006440, "Cisco Systems, Inc", "CISCO" }, { 0x0064A6, "Maquet CardioVascular", "MAQUET-CARDIOVASCULAR" }, { 0x0064AF, "Dish Technologies Corp", "DISH-TECHNOLOGIES" }, { 0x00651E, "Amcrest Technologies", "AMCREST-TECHNOLOGIES" }, { 0x006619, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x00664B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x006762, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x00682B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x0068EB, "HP Inc.", "HP" }, { 0x00692D, "Sunnovo International Limited", "SUNNOVO" }, { 0x006967, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x006B6F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x006B8E, "Shanghai Feixun Communication Co.,Ltd.", "SHANGHAI-FEIXUN-COMMUNICATION" }, { 0x006B9E, "Vizio, Inc", "VIZIO" }, { 0x006BA0, "SHENZHEN UNIVERSAL INTELLISYS PTE LTD", "SHENZHEN-UNIVERSAL-INTELLISYS-PTE" }, { 0x006BF1, "Cisco Systems, Inc", "CISCO" }, { 0x006CBC, "Cisco Systems, Inc", "CISCO" }, { 0x006CFD, "Sichuan Changhong Electric Ltd.", "SICHUAN-CHANGHONG-ELECTRIC" }, { 0x006D52, "Apple, Inc.", "APPLE" }, { 0x006D61, "Guangzhou V-SOLUTION Electronic Technology Co., Ltd.", "GUANGZHOU-V-SOLUTION" }, { 0x006DFB, "Vutrix Technologies Ltd", "VUTRIX-TECHNOLOGIES" }, { 0x006E02, "Xovis AG", "XOVIS" }, { 0x006F64, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x006FF2, "MITSUMI ELECTRIC CO.,LTD.", "MITSUMI-ELECTRIC" }, { 0x0070B0, "M/A-COM INC. COMPANIES", "M/A-COM-COMPANIES" }, { 0x0070B3, "DATA RECALL LTD.", "DATA-RECALL" }, { 0x007147, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x0071C2, "PEGATRON CORPORATION", "PEGATRON" }, { 0x0071CC, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x007204, "Samsung Electronics Co., Ltd. ARTIK", "SAMSUNG-ELECTRONICS-ARTIK" }, { 0x007263, "Netcore Technology Inc.", "NETCORE" }, { 0x007278, "Cisco Systems, Inc", "CISCO" }, { 0x00738D, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0x0073E0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00749C, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0x007532, "INID BV", "INID" }, { 0x0075E1, "Ampt, LLC", "AMPT" }, { 0x00763D, "Veea", "VEEA" }, { 0x007686, "Cisco Systems, Inc", "CISCO" }, { 0x0076B1, "Somfy-Protect By Myfox SAS", "SOMFY-PROTECT-BY-MYFOX-SAS" }, { 0x00778D, "Cisco Systems, Inc", "CISCO" }, { 0x0077E4, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x007888, "Cisco Systems, Inc", "CISCO" }, { 0x00789E, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x0078CD, "Ignition Design Labs", "IGNITION-DESIGN-LABS" }, { 0x007B18, "SENTRY Co., LTD.", "SENTRY" }, { 0x007C2D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x007D60, "Apple, Inc.", "APPLE" }, { 0x007DFA, "Volkswagen Group of America", "VOLKSWAGEN-GROUP-OF-AMERICA" }, { 0x007E56, "China Dragon Technology Limited", "CHINA-DRAGON" }, { 0x007E95, "Cisco Systems, Inc", "CISCO" }, { 0x007F28, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x008000, "MULTITECH SYSTEMS, INC.", "MULTITECH" }, { 0x008001, "PERIPHONICS CORPORATION", "PERIPHONICS" }, { 0x008002, "SATELCOM (UK) LTD", "SATELCOM-UK" }, { 0x008003, "HYTEC ELECTRONICS LTD.", "HYTEC-ELECTRONICS" }, { 0x008004, "ANTLOW COMMUNICATIONS, LTD.", "ANTLOW-COMMUNICATION" }, { 0x008005, "CACTUS COMPUTER INC.", "CACTUS" }, { 0x008006, "COMPUADD CORPORATION", "COMPUADD" }, { 0x008007, "DLOG NC-SYSTEME", "DLOG-NC-SYSTEME" }, { 0x008008, "DYNATECH COMPUTER SYSTEMS", "DYNATECH" }, { 0x008009, "JUPITER SYSTEMS, INC.", "JUPITER" }, { 0x00800A, "JAPAN COMPUTER CORP.", "JAPAN" }, { 0x00800B, "CSK CORPORATION", "CSK" }, { 0x00800C, "VIDECOM LIMITED", "VIDECOM" }, { 0x00800D, "VOSSWINKEL F.U.", "VOSSWINKEL-F-U" }, { 0x00800E, "ATLANTIX CORPORATION", "ATLANTIX" }, { 0x00800F, "STANDARD MICROSYSTEMS", "STANDARD-MICROSYSTEMS" }, { 0x008010, "COMMODORE INTERNATIONAL", "COMMODORE" }, { 0x008011, "DIGITAL SYSTEMS INT'L. INC.", "DIGITAL" }, { 0x008012, "INTEGRATED MEASUREMENT SYSTEMS", "INTEGRATED-MEASUREMENT" }, { 0x008013, "THOMAS-CONRAD CORPORATION", "THOMAS-CONRAD" }, { 0x008014, "ESPRIT SYSTEMS", "ESPRIT" }, { 0x008015, "SEIKO SYSTEMS, INC.", "SEIKO" }, { 0x008016, "WANDEL AND GOLTERMANN", "WANDEL-AND-GOLTERMANN" }, { 0x008017, "PFU LIMITED", "PFU" }, { 0x008018, "KOBE STEEL, LTD.", "KOBE-STEEL" }, { 0x008019, "DAYNA COMMUNICATIONS, INC.", "DAYNA-COMMUNICATION" }, { 0x00801A, "BELL ATLANTIC", "BELL-ATLANTIC" }, { 0x00801B, "KODIAK TECHNOLOGY", "KODIAK" }, { 0x00801C, "NEWPORT SYSTEMS SOLUTIONS", "NEWPORT-SOLUTIONS" }, { 0x00801D, "INTEGRATED INFERENCE MACHINES", "INTEGRATED-INFERENCE-MACHINES" }, { 0x00801E, "XINETRON, INC.", "XINETRON" }, { 0x00801F, "KRUPP ATLAS ELECTRONIK GMBH", "KRUPP-ATLAS-ELECTRONIK" }, { 0x008020, "NETWORK PRODUCTS", "NETWORK-PRODUCTS" }, { 0x008021, "Alcatel Canada Inc.", "ALCATEL-CANADA" }, { 0x008022, "SCAN-OPTICS", "SCAN-OPTICS" }, { 0x008023, "INTEGRATED BUSINESS NETWORKS", "INTEGRATED-BUSINESS-NETWORKS" }, { 0x008024, "KALPANA, INC.", "KALPANA" }, { 0x008025, "Telit Wireless Solutions GmbH", "TELIT-WIRELESS-SOLUTIONS" }, { 0x008026, "NETWORK PRODUCTS CORPORATION", "NETWORK-PRODUCTS" }, { 0x008027, "ADAPTIVE SYSTEMS, INC.", "ADAPTIVE" }, { 0x008028, "TRADPOST (HK) LTD", "TRADPOST-HK" }, { 0x008029, "EAGLE TECHNOLOGY, INC.", "EAGLE" }, { 0x00802A, "TEST SYSTEMS & SIMULATIONS INC", "TEST-SIMULATIONS" }, { 0x00802B, "INTEGRATED MARKETING CO", "INTEGRATED-MARKETING" }, { 0x00802C, "THE SAGE GROUP PLC", "THE-SAGE-GROUP-PLC" }, { 0x00802D, "XYLOGICS INC", "XYLOGICS" }, { 0x00802E, "CASTLE ROCK COMPUTING", "CASTLE-ROCK-COMPUTING" }, { 0x00802F, "NATIONAL INSTRUMENTS CORP.", "NATIONAL-INSTRUMENTS" }, { 0x008030, "NEXUS ELECTRONICS", "NEXUS-ELECTRONICS" }, { 0x008031, "BASYS, CORP.", "BASYS" }, { 0x008032, "ACCESS CO., LTD.", "ACCESS" }, { 0x008033, "EMS Aviation, Inc.", "EMS-AVIATION" }, { 0x008034, "SMT GOUPIL", "SMT-GOUPIL" }, { 0x008035, "TECHNOLOGY WORKS, INC.", "WORKS" }, { 0x008036, "REFLEX MANUFACTURING SYSTEMS", "REFLEX-MANUFACTURING" }, { 0x008037, "Ericsson Group", "ERICSSON-GROUP" }, { 0x008038, "DATA RESEARCH & APPLICATIONS", "DATA-RESEARCH-APPLICATIONS" }, { 0x008039, "ALCATEL STC AUSTRALIA", "ALCATEL-STC-AUSTRALIA" }, { 0x00803A, "VARITYPER, INC.", "VARITYPER" }, { 0x00803B, "APT COMMUNICATIONS, INC.", "APT-COMMUNICATION" }, { 0x00803C, "TVS ELECTRONICS LTD", "TVS-ELECTRONICS" }, { 0x00803D, "SURIGIKEN CO., LTD.", "SURIGIKEN" }, { 0x00803E, "SYNERNETICS", "SYNERNETICS" }, { 0x00803F, "TATUNG COMPANY", "TATUNG-COMPANY" }, { 0x008040, "JOHN FLUKE MANUFACTURING CO.", "JOHN-FLUKE-MANUFACTURING" }, { 0x008041, "VEB KOMBINAT ROBOTRON", "VEB-KOMBINAT-ROBOTRON" }, { 0x008042, "Artesyn Embedded Technologies", "ARTESYN-EMBEDDED-TECHNOLOGIES" }, { 0x008043, "NETWORLD, INC.", "NETWORLD" }, { 0x008044, "SYSTECH COMPUTER CORP.", "SYSTECH" }, { 0x008045, "MATSUSHITA ELECTRIC IND. CO", "MATSUSHITA-ELECTRIC-IND" }, { 0x008046, "Tattile SRL", "TATTILE-SRL" }, { 0x008047, "IN-NET CORP.", "IN-NET" }, { 0x008048, "COMPEX INCORPORATED", "COMPEX-INCORPORATED" }, { 0x008049, "NISSIN ELECTRIC CO., LTD.", "NISSIN-ELECTRIC" }, { 0x00804A, "PRO-LOG", "PRO-LOG" }, { 0x00804B, "EAGLE TECHNOLOGIES PTY.LTD.", "EAGLE-TECHNOLOGIES-PTY" }, { 0x00804C, "CONTEC CO., LTD.", "CONTEC" }, { 0x00804D, "CYCLONE MICROSYSTEMS, INC.", "CYCLONE-MICROSYSTEMS" }, { 0x00804E, "APEX COMPUTER COMPANY", "APEX-COMPANY" }, { 0x00804F, "DAIKIN INDUSTRIES, LTD.", "DAIKIN-INDUSTRIES" }, { 0x008050, "ZIATECH CORPORATION", "ZIATECH" }, { 0x008051, "FIBERMUX", "FIBERMUX" }, { 0x008052, "TECHNICALLY ELITE CONCEPTS", "TECHNICALLY-ELITE-CONCEPTS" }, { 0x008053, "INTELLICOM, INC.", "INTELLICOM" }, { 0x008054, "FRONTIER TECHNOLOGIES CORP.", "FRONTIER-TECHNOLOGIES" }, { 0x008055, "FERMILAB", "FERMILAB" }, { 0x008056, "SPHINX Electronics GmbH & Co KG", "SPHINX-ELECTRONICS" }, { 0x008057, "ADSOFT, LTD.", "ADSOFT" }, { 0x008058, "PRINTER SYSTEMS CORP.", "PRINTER" }, { 0x008059, "STANLEY ELECTRIC CO., LTD", "STANLEY-ELECTRIC" }, { 0x00805A, "TULIP COMPUTERS INTERNAT'L B.V", "TULIP-COMPUTERS-INTERNAT-L-B-V" }, { 0x00805B, "CONDOR SYSTEMS, INC.", "CONDOR" }, { 0x00805C, "AGILIS CORPORATION", "AGILIS" }, { 0x00805D, "CANSTAR", "CANSTAR" }, { 0x00805E, "LSI LOGIC CORPORATION", "LSI-LOGIC" }, { 0x00805F, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x008060, "NETWORK INTERFACE CORPORATION", "NETWORK-INTERFACE" }, { 0x008061, "LITTON SYSTEMS, INC.", "LITTON" }, { 0x008062, "INTERFACE CO.", "INTERFACE" }, { 0x008063, "Hirschmann Automation and Control GmbH", "HIRSCHMANN-AUTOMATION-AND-CONTROL" }, { 0x008064, "WYSE TECHNOLOGY LLC", "WYSE" }, { 0x008065, "CYBERGRAPHIC SYSTEMS PTY LTD.", "CYBERGRAPHIC-PTY" }, { 0x008066, "ARCOM CONTROL SYSTEMS, LTD.", "ARCOM-CONTROL" }, { 0x008067, "SQUARE D COMPANY", "SQUARE-D-COMPANY" }, { 0x008068, "YAMATECH SCIENTIFIC LTD.", "YAMATECH-SCIENTIFIC" }, { 0x008069, "COMPUTONE SYSTEMS", "COMPUTONE" }, { 0x00806A, "ERI (EMPAC RESEARCH INC.)", "ERI-EMPAC-RESEARCH" }, { 0x00806B, "SCHMID TELECOMMUNICATION", "SCHMID-TELECOMMUNICATION" }, { 0x00806C, "Secure Systems & Services", "SECURE-SERVICES" }, { 0x00806D, "CENTURY SYSTEMS CORP.", "CENTURY" }, { 0x00806E, "NIPPON STEEL CORPORATION", "NIPPON-STEEL" }, { 0x00806F, "ONELAN LTD.", "ONELAN" }, { 0x008070, "COMPUTADORAS MICRON", "COMPUTADORAS-MICRON" }, { 0x008071, "SAI TECHNOLOGY", "SAI" }, { 0x008072, "MICROPLEX SYSTEMS LTD.", "MICROPLEX" }, { 0x008073, "DWB ASSOCIATES", "DWB-ASSOCIATES" }, { 0x008074, "FISHER CONTROLS", "FISHER-CONTROLS" }, { 0x008075, "PARSYTEC GMBH", "PARSYTEC" }, { 0x008076, "MCNC", "MCNC" }, { 0x008077, "Brother industries, LTD.", "BROTHER-INDUSTRIES" }, { 0x008078, "PRACTICAL PERIPHERALS, INC.", "PRACTICAL-PERIPHERALS" }, { 0x008079, "MICROBUS DESIGNS LTD.", "MICROBUS-DESIGNS" }, { 0x00807A, "AITECH SYSTEMS LTD.", "AITECH" }, { 0x00807B, "ARTEL COMMUNICATIONS CORP.", "ARTEL-COMMUNICATION" }, { 0x00807C, "FIBERCOM, INC.", "FIBERCOM" }, { 0x00807D, "EQUINOX SYSTEMS INC.", "EQUINOX" }, { 0x00807E, "SOUTHERN PACIFIC LTD.", "SOUTHERN-PACIFIC" }, { 0x00807F, "DY-4 INCORPORATED", "DY-4-INCORPORATED" }, { 0x008080, "DATAMEDIA CORPORATION", "DATAMEDIA" }, { 0x008081, "KENDALL SQUARE RESEARCH CORP.", "KENDALL-SQUARE-RESEARCH" }, { 0x008082, "PEP MODULAR COMPUTERS GMBH", "PEP-MODULAR-COMPUTERS" }, { 0x008083, "AMDAHL", "AMDAHL" }, { 0x008084, "THE CLOUD INC.", "THE-CLOUD" }, { 0x008085, "H-THREE SYSTEMS CORPORATION", "H-THREE" }, { 0x008086, "COMPUTER GENERATION INC.", "GENERATION" }, { 0x008087, "OKI ELECTRIC INDUSTRY CO., LTD", "OKI-ELECTRIC-INDUSTRY" }, { 0x008088, "VICTOR COMPANY OF JAPAN, LTD.", "VICTOR-COMPANY-OF-JAPAN" }, { 0x008089, "TECNETICS (PTY) LTD.", "TECNETICS-PTY" }, { 0x00808A, "SUMMIT MICROSYSTEMS CORP.", "SUMMIT-MICROSYSTEMS" }, { 0x00808B, "DACOLL LIMITED", "DACOLL" }, { 0x00808C, "NETSCOUT SYSTEMS INC", "NETSCOUT" }, { 0x00808D, "WESTCOAST TECHNOLOGY B.V.", "WESTCOAST-B-V" }, { 0x00808E, "RADSTONE TECHNOLOGY", "RADSTONE" }, { 0x00808F, "C. ITOH ELECTRONICS, INC.", "C-ITOH-ELECTRONICS" }, { 0x008090, "MICROTEK INTERNATIONAL, INC.", "MICROTEK" }, { 0x008091, "TOKYO ELECTRIC CO.,LTD", "TOKYO-ELECTRIC" }, { 0x008092, "Silex Technology, Inc.", "SILEX" }, { 0x008093, "XYRON CORPORATION", "XYRON" }, { 0x008094, "ALFA LAVAL AUTOMATION AB", "ALFA-LAVAL-AUTOMATION-AB" }, { 0x008095, "BASIC MERTON HANDELSGES.M.B.H.", "BASIC-MERTON-HANDELSGES-M-B-H" }, { 0x008096, "HUMAN DESIGNED SYSTEMS, INC.", "HUMAN-DESIGNED" }, { 0x008097, "CENTRALP AUTOMATISMES", "CENTRALP-AUTOMATISMES" }, { 0x008098, "TDK CORPORATION", "TDK" }, { 0x008099, "Eaton Industries GmbH", "EATON-INDUSTRIES" }, { 0x00809A, "NOVUS NETWORKS LTD", "NOVUS-NETWORKS" }, { 0x00809B, "JUSTSYSTEM CORPORATION", "JUSTSYSTEM" }, { 0x00809C, "LUXCOM, INC.", "LUXCOM" }, { 0x00809D, "Commscraft Ltd.", "COMMSCRAFT" }, { 0x00809E, "DATUS GMBH", "DATUS" }, { 0x00809F, "ALE International", "ALE" }, { 0x0080A0, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x0080A1, "MICROTEST, INC.", "MICROTEST" }, { 0x0080A2, "CREATIVE ELECTRONIC SYSTEMS", "CREATIVE" }, { 0x0080A3, "Lantronix", "LANTRONIX" }, { 0x0080A4, "LIBERTY ELECTRONICS", "LIBERTY-ELECTRONICS" }, { 0x0080A5, "SPEED INTERNATIONAL", "SPEED" }, { 0x0080A6, "REPUBLIC TECHNOLOGY, INC.", "REPUBLIC" }, { 0x0080A7, "Honeywell International Inc", "HONEYWELL" }, { 0x0080A8, "VITACOM CORPORATION", "VITACOM" }, { 0x0080A9, "CLEARPOINT RESEARCH", "CLEARPOINT-RESEARCH" }, { 0x0080AA, "MAXPEED", "MAXPEED" }, { 0x0080AB, "DUKANE NETWORK INTEGRATION", "DUKANE-NETWORK-INTEGRATION" }, { 0x0080AC, "IMLOGIX, DIVISION OF GENESYS", "IMLOGIX-DIVISION-OF-GENESYS" }, { 0x0080AD, "CNET TECHNOLOGY, INC.", "CNET" }, { 0x0080AE, "HUGHES NETWORK SYSTEMS", "HUGHES-NETWORK" }, { 0x0080AF, "ALLUMER CO., LTD.", "ALLUMER" }, { 0x0080B0, "ADVANCED INFORMATION", "ADVANCED-INFORMATION" }, { 0x0080B1, "SOFTCOM A/S", "SOFTCOM-A/S" }, { 0x0080B2, "NETWORK EQUIPMENT TECHNOLOGIES", "NETWORK-EQUIPMENT-TECHNOLOGIES" }, { 0x0080B3, "AVAL DATA CORPORATION", "AVAL-DATA" }, { 0x0080B4, "SOPHIA SYSTEMS", "SOPHIA" }, { 0x0080B5, "UNITED NETWORKS INC.", "UNITED-NETWORKS" }, { 0x0080B6, "Mercury Systems – Trusted Mission Solutions, Inc.", "MERCURY-TRUSTED-MISSION-SOLUTIONS" }, { 0x0080B7, "STELLAR COMPUTER", "STELLAR" }, { 0x0080B8, "DMG MORI Digital Co., LTD", "DMG-MORI-DIGITAL" }, { 0x0080B9, "ARCHE TECHNOLIGIES INC.", "ARCHE-TECHNOLIGIES" }, { 0x0080BA, "SPECIALIX (ASIA) PTE, LTD", "SPECIALIX-ASIA-PTE" }, { 0x0080BB, "HUGHES LAN SYSTEMS", "HUGHES-LAN" }, { 0x0080BC, "HITACHI ENGINEERING CO., LTD", "HITACHI-ENGINEERING" }, { 0x0080BD, "THE FURUKAWA ELECTRIC CO., LTD", "THE-FURUKAWA-ELECTRIC" }, { 0x0080BE, "ARIES RESEARCH", "ARIES-RESEARCH" }, { 0x0080BF, "TAKAOKA ELECTRIC MFG. CO. LTD.", "TAKAOKA-ELECTRIC-MFG" }, { 0x0080C0, "PENRIL DATACOMM", "PENRIL-DATACOMM" }, { 0x0080C1, "LANEX CORPORATION", "LANEX" }, { 0x0080C2, "IEEE 802.1 Chair", "IEEE-802-1-CHAIR" }, { 0x0080C3, "BICC INFORMATION SYSTEMS & SVC", "BICC-INFORMATION-SVC" }, { 0x0080C4, "DOCUMENT TECHNOLOGIES, INC.", "DOCUMENT-TECHNOLOGIES" }, { 0x0080C5, "NOVELLCO DE MEXICO", "NOVELLCO-DE-MEXICO" }, { 0x0080C6, "NATIONAL DATACOMM CORPORATION", "NATIONAL-DATACOMM" }, { 0x0080C7, "XIRCOM", "XIRCOM" }, { 0x0080C8, "D-LINK SYSTEMS, INC.", "D-LINK" }, { 0x0080C9, "ALBERTA MICROELECTRONIC CENTRE", "ALBERTA-MICROELECTRONIC-CENTRE" }, { 0x0080CA, "NETCOM RESEARCH INCORPORATED", "NETCOM-RESEARCH-INCORPORATED" }, { 0x0080CB, "FALCO DATA PRODUCTS", "FALCO-DATA-PRODUCTS" }, { 0x0080CC, "MICROWAVE BYPASS SYSTEMS", "MICROWAVE-BYPASS" }, { 0x0080CD, "MICRONICS COMPUTER, INC.", "MICRONICS" }, { 0x0080CE, "BROADCAST TELEVISION SYSTEMS", "BROADCAST-TELEVISION" }, { 0x0080CF, "EMBEDDED PERFORMANCE INC.", "EMBEDDED-PERFORMANCE" }, { 0x0080D0, "COMPUTER PERIPHERALS, INC.", "PERIPHERALS" }, { 0x0080D1, "KIMTRON CORPORATION", "KIMTRON" }, { 0x0080D2, "SHINNIHONDENKO CO., LTD.", "SHINNIHONDENKO" }, { 0x0080D3, "SHIVA CORP.", "SHIVA" }, { 0x0080D4, "CHASE RESEARCH LTD.", "CHASE-RESEARCH" }, { 0x0080D5, "CADRE TECHNOLOGIES", "CADRE-TECHNOLOGIES" }, { 0x0080D6, "NUVOTECH, INC.", "NUVOTECH" }, { 0x0080D7, "Fantum Engineering", "FANTUM-ENGINEERING" }, { 0x0080D8, "NETWORK PERIPHERALS INC.", "NETWORK-PERIPHERALS" }, { 0x0080D9, "EMK Elektronik GmbH & Co. KG", "EMK-ELEKTRONIK" }, { 0x0080DA, "Hottinger Brüel & Kjær A/S", "HOTTINGER-BRUEEL-KJR-A/S" }, { 0x0080DB, "GRAPHON CORPORATION", "GRAPHON" }, { 0x0080DC, "PICKER INTERNATIONAL", "PICKER" }, { 0x0080DD, "GMX INC/GIMIX", "GMX-/GIMIX" }, { 0x0080DE, "GIPSI S.A.", "GIPSI" }, { 0x0080DF, "ADC CODENOLL TECHNOLOGY CORP.", "ADC-CODENOLL" }, { 0x0080E0, "XTP SYSTEMS, INC.", "XTP" }, { 0x0080E1, "STMicroelectronics SRL", "STMICROELECTRONICS-SRL" }, { 0x0080E2, "T.D.I. CO., LTD.", "T-D-I" }, { 0x0080E3, "CORAL NETWORK CORPORATION", "CORAL-NETWORK" }, { 0x0080E4, "NORTHWEST DIGITAL SYSTEMS, INC", "NORTHWEST-DIGITAL" }, { 0x0080E5, "NetApp", "NETAPP" }, { 0x0080E6, "PEER NETWORKS, INC.", "PEER-NETWORKS" }, { 0x0080E7, "Leonardo UK Ltd", "LEONARDO-UK" }, { 0x0080E8, "CUMULUS CORPORATIION", "CUMULUS-CORPORATIION" }, { 0x0080E9, "Madge Ltd.", "MADGE" }, { 0x0080EA, "ADVA Optical Networking Ltd.", "ADVA-OPTICAL-NETWORKING" }, { 0x0080EB, "COMPCONTROL B.V.", "COMPCONTROL-B-V" }, { 0x0080EC, "SUPERCOMPUTING SOLUTIONS, INC.", "SUPERCOMPUTING-SOLUTIONS" }, { 0x0080ED, "IQ TECHNOLOGIES, INC.", "IQ-TECHNOLOGIES" }, { 0x0080EE, "THOMSON CSF", "THOMSON-CSF" }, { 0x0080EF, "RATIONAL", "RATIONAL" }, { 0x0080F0, "Panasonic Communications Co., Ltd.", "PANASONIC-COMMUNICATION" }, { 0x0080F1, "OPUS SYSTEMS", "OPUS" }, { 0x0080F2, "RAYCOM SYSTEMS INC", "RAYCOM" }, { 0x0080F3, "SUN ELECTRONICS CORP.", "SUN-ELECTRONICS" }, { 0x0080F4, "TELEMECANIQUE ELECTRIQUE", "TELEMECANIQUE-ELECTRIQUE" }, { 0x0080F5, "Quantel Ltd", "QUANTEL" }, { 0x0080F6, "SYNERGY MICROSYSTEMS", "SYNERGY-MICROSYSTEMS" }, { 0x0080F7, "Zenith Electronics Corporation", "ZENITH-ELECTRONICS" }, { 0x0080F8, "MIZAR, INC.", "MIZAR" }, { 0x0080F9, "HEURIKON CORPORATION", "HEURIKON" }, { 0x0080FA, "RWT GMBH", "RWT" }, { 0x0080FB, "BVM LIMITED", "BVM" }, { 0x0080FC, "AVATAR CORPORATION", "AVATAR" }, { 0x0080FD, "EXSCEED CORPRATION", "EXSCEED-CORPRATION" }, { 0x0080FE, "AZURE TECHNOLOGIES, INC.", "AZURE-TECHNOLOGIES" }, { 0x0080FF, "SOC. DE TELEINFORMATIQUE RTC", "SOC-DE-TELEINFORMATIQUE-RTC" }, { 0x0081C4, "Cisco Systems, Inc", "CISCO" }, { 0x0081F9, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x00841E, "Cisco Meraki", "CISCO-MERAKI" }, { 0x0084ED, "LEXMARK INTERNATIONAL, INC.", "LEXMARK" }, { 0x00869C, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x0086A0, "Private", "PRIVATE" }, { 0x008701, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x008731, "Cisco Systems, Inc", "CISCO" }, { 0x008764, "Cisco Systems, Inc", "CISCO" }, { 0x008865, "Apple, Inc.", "APPLE" }, { 0x0088BA, "NC&C", "NC-C" }, { 0x008A55, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x008A76, "Apple, Inc.", "APPLE" }, { 0x008A96, "Cisco Systems, Inc", "CISCO" }, { 0x008B43, "RFTECH", "RFTECH" }, { 0x008BFC, "mixi,Inc.", "MIXI" }, { 0x008C10, "Black Box Corp.", "BLACK-BOX" }, { 0x008C54, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x008CFA, "INVENTEC CORPORATION", "INVENTEC" }, { 0x008D4E, "CJSC NII STT", "CJSC-NII-STT" }, { 0x008DDA, "Link One Co., Ltd.", "LINK-ONE" }, { 0x008E73, "Cisco Systems, Inc", "CISCO" }, { 0x008EF2, "NETGEAR", "NETGEAR" }, { 0x009000, "DIAMOND MULTIMEDIA", "DIAMOND-MULTIMEDIA" }, { 0x009001, "NISHIMU ELECTRONICS INDUSTRIES CO., LTD.", "NISHIMU-ELECTRONICS-INDUSTRIES" }, { 0x009002, "ALLGON AB", "ALLGON-AB" }, { 0x009003, "APLIO", "APLIO" }, { 0x009004, "3COM EUROPE LTD", "3COM" }, { 0x009005, "PROTECH SYSTEMS CO., LTD.", "PROTECH" }, { 0x009006, "Hamamatsu Photonics K.K.", "HAMAMATSU-PHOTONICS-K-K" }, { 0x009007, "DOMEX TECHNOLOGY CORP.", "DOMEX" }, { 0x009008, "HanA Systems Inc.", "HANA" }, { 0x009009, "I Controls, Inc.", "I-CONTROLS" }, { 0x00900A, "PROTON ELECTRONIC INDUSTRIAL CO., LTD.", "PROTON-INDUSTRIAL" }, { 0x00900B, "LANNER ELECTRONICS, INC.", "LANNER-ELECTRONICS" }, { 0x00900C, "Cisco Systems, Inc", "CISCO" }, { 0x00900D, "Overland Storage Inc.", "OVERLAND-STORAGE" }, { 0x00900E, "HANDLINK TECHNOLOGIES, INC.", "HANDLINK-TECHNOLOGIES" }, { 0x00900F, "KAWASAKI HEAVY INDUSTRIES, LTD", "KAWASAKI-HEAVY-INDUSTRIES" }, { 0x009010, "SIMULATION LABORATORIES, INC.", "SIMULATION-LABORATORIES" }, { 0x009011, "WAVTrace, Inc.", "WAVTRACE" }, { 0x009012, "GLOBESPAN SEMICONDUCTOR, INC.", "GLOBESPAN-SEMICONDUCTOR" }, { 0x009013, "SAMSAN CORP.", "SAMSAN" }, { 0x009014, "ROTORK INSTRUMENTS, LTD.", "ROTORK-INSTRUMENTS" }, { 0x009015, "CENTIGRAM COMMUNICATIONS CORP.", "CENTIGRAM-COMMUNICATION" }, { 0x009016, "ZAC", "ZAC" }, { 0x009017, "Zypcom, Inc", "ZYPCOM" }, { 0x009018, "ITO ELECTRIC INDUSTRY CO, LTD.", "ITO-ELECTRIC-INDUSTRY" }, { 0x009019, "HERMES ELECTRONICS CO., LTD.", "HERMES-ELECTRONICS" }, { 0x00901A, "UNISPHERE SOLUTIONS", "UNISPHERE-SOLUTIONS" }, { 0x00901B, "DIGITAL CONTROLS", "DIGITAL-CONTROLS" }, { 0x00901C, "mps Software Gmbh", "MPS-SOFTWARE" }, { 0x00901D, "PEC (NZ) LTD.", "PEC-NZ" }, { 0x00901E, "Selesta Ingegneria S.p.A.", "SELESTA-INGEGNERIA" }, { 0x00901F, "ADTEC PRODUCTIONS, INC.", "ADTEC-PRODUCTIONS" }, { 0x009020, "PHILIPS ANALYTICAL X-RAY B.V.", "PHILIPS-ANALYTICAL-X-RAY-B-V" }, { 0x009021, "Cisco Systems, Inc", "CISCO" }, { 0x009022, "IVEX", "IVEX" }, { 0x009023, "ZILOG INC.", "ZILOG" }, { 0x009024, "PIPELINKS, INC.", "PIPELINKS" }, { 0x009025, "BAE Systems Australia (Electronic Systems) Pty Ltd", "BAE-AUSTRALIA-PTY" }, { 0x009026, "ADVANCED SWITCHING COMMUNICATIONS, INC.", "ADVANCED-SWITCHING-COMMUNICATION" }, { 0x009027, "Intel Corporation", "INTEL" }, { 0x009028, "NIPPON SIGNAL CO., LTD.", "NIPPON-SIGNAL" }, { 0x009029, "CRYPTO AG", "CRYPTO" }, { 0x00902A, "COMMUNICATION DEVICES, INC.", "COMMUNICATION-DEVICES" }, { 0x00902B, "Cisco Systems, Inc", "CISCO" }, { 0x00902C, "DATA & CONTROL EQUIPMENT LTD.", "DATA-CONTROL-EQUIPMENT" }, { 0x00902D, "DATA ELECTRONICS (AUST.) PTY, LTD.", "DATA-ELECTRONICS-AUST-PTY" }, { 0x00902E, "NAMCO LIMITED", "NAMCO" }, { 0x00902F, "NETCORE SYSTEMS, INC.", "NETCORE" }, { 0x009030, "HONEYWELL-DATING", "HONEYWELL-DATING" }, { 0x009031, "MYSTICOM, LTD.", "MYSTICOM" }, { 0x009032, "PELCOMBE GROUP LTD.", "PELCOMBE-GROUP" }, { 0x009033, "INNOVAPHONE AG", "INNOVAPHONE" }, { 0x009034, "IMAGIC, INC.", "IMAGIC" }, { 0x009035, "ALPHA TELECOM, INC.", "ALPHA-TELECOM" }, { 0x009036, "ens, inc.", "ENS" }, { 0x009037, "ACUCOMM, INC.", "ACUCOMM" }, { 0x009038, "FOUNTAIN TECHNOLOGIES, INC.", "FOUNTAIN-TECHNOLOGIES" }, { 0x009039, "SHASTA NETWORKS", "SHASTA-NETWORKS" }, { 0x00903A, "NIHON MEDIA TOOL INC.", "NIHON-MEDIA-TOOL" }, { 0x00903B, "TriEMS Research Lab, Inc.", "TRIEMS-RESEARCH-LAB" }, { 0x00903C, "ATLANTIC NETWORK SYSTEMS", "ATLANTIC-NETWORK" }, { 0x00903D, "BIOPAC SYSTEMS, INC.", "BIOPAC" }, { 0x00903E, "N.V. PHILIPS INDUSTRIAL ACTIVITIES", "N-V-PHILIPS-INDUSTRIAL-ACTIVITIES" }, { 0x00903F, "WorldCast Systems", "WORLDCAST" }, { 0x009040, "Siemens Network Convergence LLC", "SIEMENS-NETWORK-CONVERGENCE" }, { 0x009041, "APPLIED DIGITAL ACCESS", "APPLIED-DIGITAL-ACCESS" }, { 0x009042, "ECCS, Inc.", "ECCS" }, { 0x009043, "Tattile SRL", "TATTILE-SRL" }, { 0x009044, "ASSURED DIGITAL, INC.", "ASSURED-DIGITAL" }, { 0x009045, "Marconi Communications", "MARCONI-COMMUNICATION" }, { 0x009046, "DEXDYNE, LTD.", "DEXDYNE" }, { 0x009047, "GIGA FAST E. LTD.", "GIGA-FAST-E" }, { 0x009048, "ZEAL CORPORATION", "ZEAL" }, { 0x009049, "ENTRIDIA CORPORATION", "ENTRIDIA" }, { 0x00904A, "CONCUR SYSTEM TECHNOLOGIES", "CONCUR-SYSTEM-TECHNOLOGIES" }, { 0x00904B, "Gemtek Technology Co., Ltd.", "GEMTEK" }, { 0x00904C, "Epigram, Inc.", "EPIGRAM" }, { 0x00904D, "SPEC S.A.", "SPEC" }, { 0x00904E, "DELEM BV", "DELEM" }, { 0x00904F, "ABB POWER T&D COMPANY, INC.", "ABB-POWER-T-D-COMPANY" }, { 0x009050, "Teleste Corporation", "TELESTE" }, { 0x009051, "ULTIMATE TECHNOLOGY CORP.", "ULTIMATE" }, { 0x009052, "SELCOM ELETTRONICA S.R.L.", "SELCOM-ELETTRONICA" }, { 0x009053, "DAEWOO ELECTRONICS CO., LTD.", "DAEWOO-ELECTRONICS" }, { 0x009054, "INNOVATIVE SEMICONDUCTORS, INC", "INNOVATIVE-SEMICONDUCTORS" }, { 0x009055, "PARKER HANNIFIN CORPORATION COMPUMOTOR DIVISION", "PARKER-HANNIFIN-COMPUMOTOR-DIVISION" }, { 0x009056, "TELESTREAM, INC.", "TELESTREAM" }, { 0x009057, "AANetcom, Inc.", "AANETCOM" }, { 0x009058, "Ultra Electronics Command & Control Systems", "ULTRA-ELECTRONICS-COMMAND-CONTROL" }, { 0x009059, "TELECOM DEVICE K.K.", "TELECOM-DEVICE-K-K" }, { 0x00905A, "DEARBORN GROUP, INC.", "DEARBORN-GROUP" }, { 0x00905B, "RAYMOND AND LAE ENGINEERING", "RAYMOND-AND-LAE-ENGINEERING" }, { 0x00905C, "EDMI", "EDMI" }, { 0x00905D, "NETCOM SICHERHEITSTECHNIK GMBH", "NETCOM-SICHERHEITSTECHNIK" }, { 0x00905E, "RAULAND-BORG CORPORATION", "RAULAND-BORG" }, { 0x00905F, "Cisco Systems, Inc", "CISCO" }, { 0x009060, "SYSTEM CREATE CORP.", "SYSTEM-CREATE" }, { 0x009061, "PACIFIC RESEARCH & ENGINEERING CORPORATION", "PACIFIC-RESEARCH-ENGINEERING" }, { 0x009062, "ICP VORTEX COMPUTERSYSTEME GmbH", "ICP-VORTEX-COMPUTERSYSTEME" }, { 0x009063, "COHERENT COMMUNICATIONS SYSTEMS CORPORATION", "COHERENT-COMMUNICATION" }, { 0x009064, "Thomson Inc.", "THOMSON" }, { 0x009065, "FINISAR CORPORATION", "FINISAR" }, { 0x009066, "Troika Networks, Inc.", "TROIKA-NETWORKS" }, { 0x009067, "WalkAbout Computers, Inc.", "WALKABOUT-COMPUTERS" }, { 0x009068, "DVT CORP.", "DVT" }, { 0x009069, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x00906A, "TURNSTONE SYSTEMS, INC.", "TURNSTONE" }, { 0x00906B, "APPLIED RESOURCES, INC.", "APPLIED-RESOURCES" }, { 0x00906C, "Sartorius Hamburg GmbH", "SARTORIUS-HAMBURG" }, { 0x00906D, "Cisco Systems, Inc", "CISCO" }, { 0x00906E, "PRAXON, INC.", "PRAXON" }, { 0x00906F, "Cisco Systems, Inc", "CISCO" }, { 0x009070, "NEO NETWORKS, INC.", "NEO-NETWORKS" }, { 0x009071, "Applied Innovation Inc.", "APPLIED-INNOVATION" }, { 0x009072, "SIMRAD AS", "SIMRAD-AS" }, { 0x009073, "GAIO TECHNOLOGY", "GAIO" }, { 0x009074, "ARGON NETWORKS, INC.", "ARGON-NETWORKS" }, { 0x009075, "NEC DO BRASIL S.A.", "NEC-DO-BRASIL" }, { 0x009076, "FMT AIRCRAFT GATE SUPPORT SYSTEMS AB", "FMT-AIRCRAFT-GATE-SUPPORT-AB" }, { 0x009077, "ADVANCED FIBRE COMMUNICATIONS", "ADVANCED-FIBRE-COMMUNICATION" }, { 0x009078, "MER TELEMANAGEMENT SOLUTIONS, LTD.", "MER-TELEMANAGEMENT-SOLUTIONS" }, { 0x009079, "ClearOne, Inc.", "CLEARONE" }, { 0x00907A, "Spectralink, Inc", "SPECTRALINK" }, { 0x00907B, "E-TECH, INC.", "E-TECH" }, { 0x00907C, "DIGITALCAST, INC.", "DIGITALCAST" }, { 0x00907D, "Lake Communications", "LAKE-COMMUNICATION" }, { 0x00907E, "VETRONIX CORP.", "VETRONIX" }, { 0x00907F, "WatchGuard Technologies, Inc.", "WATCHGUARD-TECHNOLOGIES" }, { 0x009080, "NOT LIMITED, INC.", "NOT" }, { 0x009081, "ALOHA NETWORKS, INC.", "ALOHA-NETWORKS" }, { 0x009082, "FORCE INSTITUTE", "FORCE-INSTITUTE" }, { 0x009083, "TURBO COMMUNICATION, INC.", "TURBO-COMMUNICATION" }, { 0x009084, "ATECH SYSTEM", "ATECH-SYSTEM" }, { 0x009085, "GOLDEN ENTERPRISES, INC.", "GOLDEN-ENTERPRISES" }, { 0x009086, "Cisco Systems, Inc", "CISCO" }, { 0x009087, "ITIS", "ITIS" }, { 0x009088, "BAXALL SECURITY LTD.", "BAXALL-SECURITY" }, { 0x009089, "SOFTCOM MICROSYSTEMS, INC.", "SOFTCOM-MICROSYSTEMS" }, { 0x00908A, "BAYLY COMMUNICATIONS, INC.", "BAYLY-COMMUNICATION" }, { 0x00908B, "Tattile SRL", "TATTILE-SRL" }, { 0x00908C, "ETREND ELECTRONICS, INC.", "ETREND-ELECTRONICS" }, { 0x00908D, "VICKERS ELECTRONICS SYSTEMS", "VICKERS-ELECTRONICS" }, { 0x00908E, "Nortel Networks Broadband Access", "NORTEL-NETWORKS-BROADBAND-ACCESS" }, { 0x00908F, "AUDIO CODES LTD.", "AUDIO-CODES" }, { 0x009090, "I-BUS", "I-BUS" }, { 0x009091, "DigitalScape, Inc.", "DIGITALSCAPE" }, { 0x009092, "Cisco Systems, Inc", "CISCO" }, { 0x009093, "EIZO Corporation", "EIZO" }, { 0x009094, "OSPREY TECHNOLOGIES, INC.", "OSPREY-TECHNOLOGIES" }, { 0x009095, "UNIVERSAL AVIONICS", "UNIVERSAL-AVIONICS" }, { 0x009096, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x009097, "Sycamore Networks", "SYCAMORE-NETWORKS" }, { 0x009098, "SBC DESIGNS, INC.", "SBC-DESIGNS" }, { 0x009099, "ALLIED TELESIS, K.K.", "ALLIED-TELESIS-K-K" }, { 0x00909A, "ONE WORLD SYSTEMS, INC.", "ONE-WORLD" }, { 0x00909B, "MARKEM-IMAJE", "MARKEM-IMAJE" }, { 0x00909C, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x00909D, "NovaTech Process Solutions, LLC", "NOVATECH-PROCESS-SOLUTIONS" }, { 0x00909E, "Critical IO, LLC", "CRITICAL-IO" }, { 0x00909F, "DIGI-DATA CORPORATION", "DIGI-DATA" }, { 0x0090A0, "8X8 INC.", "8X8" }, { 0x0090A1, "Flying Pig Systems/High End Systems Inc.", "FLYING-PIG-/HIGH-END" }, { 0x0090A2, "CyberTAN Technology Inc.", "CYBERTAN" }, { 0x0090A3, "Corecess Inc.", "CORECESS" }, { 0x0090A4, "ALTIGA NETWORKS", "ALTIGA-NETWORKS" }, { 0x0090A5, "SPECTRA LOGIC", "SPECTRA-LOGIC" }, { 0x0090A6, "Cisco Systems, Inc", "CISCO" }, { 0x0090A7, "CLIENTEC CORPORATION", "CLIENTEC" }, { 0x0090A8, "NineTiles Networks, Ltd.", "NINETILES-NETWORKS" }, { 0x0090A9, "WESTERN DIGITAL", "WESTERN-DIGITAL" }, { 0x0090AA, "INDIGO ACTIVE VISION SYSTEMS LIMITED", "INDIGO-ACTIVE-VISION" }, { 0x0090AB, "Cisco Systems, Inc", "CISCO" }, { 0x0090AC, "OPTIVISION, INC.", "OPTIVISION" }, { 0x0090AD, "ASPECT ELECTRONICS, INC.", "ASPECT-ELECTRONICS" }, { 0x0090AE, "ITALTEL S.p.A/RF-UP-I", "ITALTEL-S-P-A/RF-UP-I" }, { 0x0090AF, "J. MORITA MFG. CORP.", "J-MORITA-MFG" }, { 0x0090B0, "VADEM", "VADEM" }, { 0x0090B1, "Cisco Systems, Inc", "CISCO" }, { 0x0090B2, "AVICI SYSTEMS INC.", "AVICI" }, { 0x0090B3, "AGRANAT SYSTEMS", "AGRANAT" }, { 0x0090B4, "WILLOWBROOK TECHNOLOGIES", "WILLOWBROOK-TECHNOLOGIES" }, { 0x0090B5, "NIKON CORPORATION", "NIKON" }, { 0x0090B6, "FIBEX SYSTEMS", "FIBEX" }, { 0x0090B7, "DIGITAL LIGHTWAVE, INC.", "DIGITAL-LIGHTWAVE" }, { 0x0090B8, "ROHDE & SCHWARZ GMBH & CO. KG", "ROHDE-SCHWARZ" }, { 0x0090B9, "BERAN INSTRUMENTS LTD.", "BERAN-INSTRUMENTS" }, { 0x0090BA, "VALID NETWORKS, INC.", "VALID-NETWORKS" }, { 0x0090BB, "TAINET COMMUNICATION SYSTEM Corp.", "TAINET-COMMUNICATION-SYSTEM" }, { 0x0090BC, "TELEMANN CO., LTD.", "TELEMANN" }, { 0x0090BD, "OMNIA COMMUNICATIONS, INC.", "OMNIA-COMMUNICATION" }, { 0x0090BE, "IBC/INTEGRATED BUSINESS COMPUTERS", "IBC/INTEGRATED-BUSINESS-COMPUTERS" }, { 0x0090BF, "Cisco Systems, Inc", "CISCO" }, { 0x0090C0, "K.J. LAW ENGINEERS, INC.", "K-J-LAW-ENGINEERS" }, { 0x0090C1, "Peco II, Inc.", "PECO-II" }, { 0x0090C2, "JK microsystems, Inc.", "JK-MICROSYSTEMS" }, { 0x0090C3, "TOPIC SEMICONDUCTOR CORP.", "TOPIC-SEMICONDUCTOR" }, { 0x0090C4, "JAVELIN SYSTEMS, INC.", "JAVELIN" }, { 0x0090C5, "INTERNET MAGIC, INC.", "INTERNET-MAGIC" }, { 0x0090C6, "OPTIM SYSTEMS, INC.", "OPTIM" }, { 0x0090C7, "ICOM INC.", "ICOM" }, { 0x0090C8, "WAVERIDER COMMUNICATIONS (CANADA) INC.", "WAVERIDER-COMMUNICATION-CANADA" }, { 0x0090C9, "DPAC Technologies", "DPAC-TECHNOLOGIES" }, { 0x0090CA, "ACCORD VIDEO TELECOMMUNICATIONS, LTD.", "ACCORD-VIDEO-TELECOMMUNICATIONS" }, { 0x0090CB, "Wireless OnLine, Inc.", "WIRELESS-ONLINE" }, { 0x0090CC, "PLANEX COMMUNICATIONS INC.", "PLANEX-COMMUNICATION" }, { 0x0090CD, "ENT-EMPRESA NACIONAL DE TELECOMMUNICACOES, S.A.", "ENT-EMPRESA-NACIONAL-DE-TELECOMMUNICACOES" }, { 0x0090CE, "avateramedical Mechatronics GmbH", "AVATERAMEDICAL-MECHATRONICS" }, { 0x0090CF, "NORTEL", "NORTEL" }, { 0x0090D0, "Thomson Telecom Belgium", "THOMSON-TELECOM-BELGIUM" }, { 0x0090D1, "LEICHU ENTERPRISE CO., LTD.", "LEICHU" }, { 0x0090D2, "Artel Video Systems", "ARTEL-VIDEO" }, { 0x0090D3, "GIESECKE & DEVRIENT GmbH", "GIESECKE-DEVRIENT" }, { 0x0090D4, "BindView Development Corp.", "BINDVIEW-DEVELOPMENT" }, { 0x0090D5, "EUPHONIX, INC.", "EUPHONIX" }, { 0x0090D6, "Crystal Group, Inc.", "CRYSTAL-GROUP" }, { 0x0090D7, "NetBoost Corp.", "NETBOOST" }, { 0x0090D8, "WHITECROSS SYSTEMS", "WHITECROSS" }, { 0x0090D9, "Cisco Systems, Inc", "CISCO" }, { 0x0090DA, "DYNARC, INC.", "DYNARC" }, { 0x0090DB, "NEXT LEVEL COMMUNICATIONS", "NEXT-LEVEL-COMMUNICATION" }, { 0x0090DC, "TECO INFORMATION SYSTEMS", "TECO-INFORMATION" }, { 0x0090DD, "MIHARU COMMUNICATIONS Inc", "MIHARU-COMMUNICATION" }, { 0x0090DE, "CARDKEY SYSTEMS, INC.", "CARDKEY" }, { 0x0090DF, "MITSUBISHI CHEMICAL AMERICA, INC.", "MITSUBISHI-CHEMICAL-AMERICA" }, { 0x0090E0, "SYSTRAN CORP.", "SYSTRAN" }, { 0x0090E1, "TELENA S.P.A.", "TELENA" }, { 0x0090E2, "DISTRIBUTED PROCESSING TECHNOLOGY", "DISTRIBUTED-PROCESSING" }, { 0x0090E3, "AVEX ELECTRONICS INC.", "AVEX-ELECTRONICS" }, { 0x0090E4, "NEC AMERICA, INC.", "NEC-AMERICA" }, { 0x0090E5, "TEKNEMA, INC.", "TEKNEMA" }, { 0x0090E6, "ALi Corporation", "ALI" }, { 0x0090E7, "HORSCH ELEKTRONIK AG", "HORSCH-ELEKTRONIK" }, { 0x0090E8, "MOXA TECHNOLOGIES CORP., LTD.", "MOXA-TECHNOLOGIES" }, { 0x0090E9, "JANZ COMPUTER AG", "JANZ" }, { 0x0090EA, "ALPHA TECHNOLOGIES, INC.", "ALPHA-TECHNOLOGIES" }, { 0x0090EB, "SENTRY TELECOM SYSTEMS", "SENTRY-TELECOM" }, { 0x0090EC, "PYRESCOM", "PYRESCOM" }, { 0x0090ED, "CENTRAL SYSTEM RESEARCH CO., LTD.", "CENTRAL-SYSTEM-RESEARCH" }, { 0x0090EE, "PERSONAL COMMUNICATIONS TECHNOLOGIES", "PERSONAL-COMMUNICATION-TECHNOLOGIES" }, { 0x0090EF, "INTEGRIX, INC.", "INTEGRIX" }, { 0x0090F0, "Harmonic Video Systems Ltd.", "HARMONIC-VIDEO" }, { 0x0090F1, "Seagate Cloud Systems Inc", "SEAGATE-CLOUD" }, { 0x0090F2, "Cisco Systems, Inc", "CISCO" }, { 0x0090F3, "ASPECT COMMUNICATIONS", "ASPECT-COMMUNICATION" }, { 0x0090F4, "LIGHTNING INSTRUMENTATION", "LIGHTNING-INSTRUMENTATION" }, { 0x0090F5, "CLEVO CO.", "CLEVO" }, { 0x0090F6, "ESCALATE NETWORKS, INC.", "ESCALATE-NETWORKS" }, { 0x0090F7, "NBASE COMMUNICATIONS LTD.", "NBASE-COMMUNICATION" }, { 0x0090F8, "MEDIATRIX TELECOM", "MEDIATRIX-TELECOM" }, { 0x0090F9, "Imagine Communications", "IMAGINE-COMMUNICATION" }, { 0x0090FA, "Emulex Corporation", "EMULEX" }, { 0x0090FB, "PORTWELL, INC.", "PORTWELL" }, { 0x0090FC, "NETWORK COMPUTING DEVICES", "NETWORK-COMPUTING-DEVICES" }, { 0x0090FD, "CopperCom, Inc.", "COPPERCOM" }, { 0x0090FE, "ELECOM CO., LTD. (LANEED DIV.)", "ELECOM-LANEED-DIV" }, { 0x0090FF, "TELLUS TECHNOLOGY INC.", "TELLUS" }, { 0x00919E, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0091D6, "Crystal Group, Inc.", "CRYSTAL-GROUP" }, { 0x0091EB, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x0091FA, "Synapse Product Development", "SYNAPSE-PRODUCT-DEVELOPMENT" }, { 0x00927D, "Ficosa Internationa(Taicang) C0.,Ltd.", "FICOSA-INTERNATIONA-TAICANG-C0" }, { 0x0092A5, "LG Innotek", "LG-INNOTEK" }, { 0x0092FA, "SHENZHEN WISKY TECHNOLOGY CO.,LTD", "SHENZHEN-WISKY" }, { 0x009337, "Intel Corporate", "INTEL-CORPORATE" }, { 0x009363, "Uni-Link Technology Co., Ltd.", "UNI-LINK" }, { 0x0094A1, "F5 Networks, Inc.", "F5-NETWORKS" }, { 0x0094EC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x009569, "LSD Science and Technology Co.,Ltd.", "LSD-SCIENCE" }, { 0x0097FF, "Heimann Sensor GmbH", "HEIMANN-SENSOR" }, { 0x00991D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x009ACD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x009AD2, "Cisco Systems, Inc", "CISCO" }, { 0x009C02, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x009D6B, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x009D8E, "CARDIAC RECORDERS, INC.", "CARDIAC-RECORDERS" }, { 0x009E1E, "Cisco Systems, Inc", "CISCO" }, { 0x009EC8, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x009EEE, "Positivo Tecnologia S.A.", "POSITIVO-TECNOLOGIA" }, { 0x00A000, "CENTILLION NETWORKS, INC.", "CENTILLION-NETWORKS" }, { 0x00A001, "DRS Signal Solutions", "DRS-SIGNAL-SOLUTIONS" }, { 0x00A002, "LEEDS & NORTHRUP AUSTRALIA PTY LTD", "LEEDS-NORTHRUP-AUSTRALIA-PTY" }, { 0x00A003, "Siemens Switzerland Ltd., I B T HVP", "SIEMENS-SWITZERLAND-I-B-T-HVP" }, { 0x00A004, "NETPOWER, INC.", "NETPOWER" }, { 0x00A005, "DANIEL INSTRUMENTS, LTD.", "DANIEL-INSTRUMENTS" }, { 0x00A006, "IMAGE DATA PROCESSING SYSTEM GROUP", "IMAGE-DATA-PROCESSING-SYSTEM-GROUP" }, { 0x00A007, "APEXX TECHNOLOGY, INC.", "APEXX" }, { 0x00A008, "NETCORP", "NETCORP" }, { 0x00A009, "WHITETREE NETWORK", "WHITETREE-NETWORK" }, { 0x00A00A, "Airspan", "AIRSPAN" }, { 0x00A00B, "COMPUTEX CO., LTD.", "COMPUTEX" }, { 0x00A00C, "KINGMAX TECHNOLOGY, INC.", "KINGMAX" }, { 0x00A00D, "THE PANDA PROJECT", "THE-PANDA-PROJECT" }, { 0x00A00E, "NETSCOUT SYSTEMS INC", "NETSCOUT" }, { 0x00A00F, "Broadband Technologies", "BROADBAND-TECHNOLOGIES" }, { 0x00A010, "SYSLOGIC DATENTECHNIK AG", "SYSLOGIC-DATENTECHNIK" }, { 0x00A011, "MUTOH INDUSTRIES LTD.", "MUTOH-INDUSTRIES" }, { 0x00A012, "Telco Systems, Inc.", "TELCO" }, { 0x00A013, "TELTREND LTD.", "TELTREND" }, { 0x00A014, "CSIR", "CSIR" }, { 0x00A015, "WYLE", "WYLE" }, { 0x00A016, "MICROPOLIS CORP.", "MICROPOLIS" }, { 0x00A017, "J B M CORPORATION", "J-B-M" }, { 0x00A018, "CREATIVE CONTROLLERS, INC.", "CREATIVE-CONTROLLERS" }, { 0x00A019, "NEBULA CONSULTANTS, INC.", "NEBULA-CONSULTANTS" }, { 0x00A01A, "BINAR ELEKTRONIK AB", "BINAR-ELEKTRONIK-AB" }, { 0x00A01B, "DZS Inc.", "DZS" }, { 0x00A01C, "NASCENT NETWORKS CORPORATION", "NASCENT-NETWORKS" }, { 0x00A01D, "Red Lion Controls, LP", "RED-LION-CONTROLS-LP" }, { 0x00A01E, "EST CORPORATION", "EST" }, { 0x00A01F, "TRICORD SYSTEMS, INC.", "TRICORD" }, { 0x00A020, "CITICORP/TTI", "CITICORP/TTI" }, { 0x00A021, "General Dynamics Mission Systems", "GENERAL-DYNAMICS-MISSION" }, { 0x00A022, "CENTRE FOR DEVELOPMENT OF ADVANCED COMPUTING", "CENTRE-FOR-DEVELOPMENT-OF-ADVANCED-COMPUTING" }, { 0x00A023, "APPLIED CREATIVE TECHNOLOGY, INC.", "APPLIED-CREATIVE" }, { 0x00A024, "3COM", "3COM" }, { 0x00A025, "REDCOM LABS INC.", "REDCOM-LABS" }, { 0x00A026, "TELDAT, S.A.", "TELDAT" }, { 0x00A027, "FIREPOWER SYSTEMS, INC.", "FIREPOWER" }, { 0x00A028, "CONNER PERIPHERALS", "CONNER-PERIPHERALS" }, { 0x00A029, "COULTER CORPORATION", "COULTER" }, { 0x00A02A, "TRANCELL SYSTEMS", "TRANCELL" }, { 0x00A02B, "TRANSITIONS RESEARCH CORP.", "TRANSITIONS-RESEARCH" }, { 0x00A02C, "interWAVE Communications", "INTERWAVE-COMMUNICATION" }, { 0x00A02D, "1394 Trade Association", "1394-TRADE-ASSOCIATION" }, { 0x00A02E, "BRAND COMMUNICATIONS, LTD.", "BRAND-COMMUNICATION" }, { 0x00A02F, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x00A030, "CAPTOR NV/SA", "CAPTOR-NV/" }, { 0x00A031, "HAZELTINE CORPORATION, MS 1-17", "HAZELTINE-MS-1-17" }, { 0x00A032, "GES SINGAPORE PTE. LTD.", "GES-SINGAPORE-PTE" }, { 0x00A033, "imc MeBsysteme GmbH", "IMC-MEBSYSTEME" }, { 0x00A034, "AXEL", "AXEL" }, { 0x00A035, "CYLINK CORPORATION", "CYLINK" }, { 0x00A036, "APPLIED NETWORK TECHNOLOGY", "APPLIED-NETWORK" }, { 0x00A037, "Mindray DS USA, Inc.", "MINDRAY-DS-USA" }, { 0x00A038, "EMAIL ELECTRONICS", "EMAIL-ELECTRONICS" }, { 0x00A039, "ROSS TECHNOLOGY, INC.", "ROSS" }, { 0x00A03A, "KUBOTEK CORPORATION", "KUBOTEK" }, { 0x00A03B, "TOSHIN ELECTRIC CO., LTD.", "TOSHIN-ELECTRIC" }, { 0x00A03C, "EG&G NUCLEAR INSTRUMENTS", "EG-G-NUCLEAR-INSTRUMENTS" }, { 0x00A03D, "OPTO-22", "OPTO-22" }, { 0x00A03E, "ATM FORUM", "ATM-FORUM" }, { 0x00A03F, "COMPUTER SOCIETY MICROPROCESSOR & MICROPROCESSOR STANDARDS C", "SOCIETY-MICROPROCESSOR-MICROPROCESSOR-STANDARDS-C" }, { 0x00A040, "Apple, Inc.", "APPLE" }, { 0x00A041, "INFICON", "INFICON" }, { 0x00A042, "SPUR PRODUCTS CORP.", "SPUR-PRODUCTS" }, { 0x00A043, "AMERICAN TECHNOLOGY LABS, INC.", "AMERICAN-LABS" }, { 0x00A044, "NTT IT CO., LTD.", "NTT-IT" }, { 0x00A045, "PHOENIX CONTACT Electronics GmbH", "PHOENIX-CONTACT-ELECTRONICS" }, { 0x00A046, "SCITEX CORP. LTD.", "SCITEX" }, { 0x00A047, "INTEGRATED FITNESS CORP.", "INTEGRATED-FITNESS" }, { 0x00A048, "QUESTECH, LTD.", "QUESTECH" }, { 0x00A049, "DIGITECH INDUSTRIES, INC.", "DIGITECH-INDUSTRIES" }, { 0x00A04A, "NISSHIN ELECTRIC CO., LTD.", "NISSHIN-ELECTRIC" }, { 0x00A04B, "TFL LAN INC.", "TFL-LAN" }, { 0x00A04C, "INNOVATIVE SYSTEMS & TECHNOLOGIES, INC.", "INNOVATIVE-TECHNOLOGIES" }, { 0x00A04D, "EDA INSTRUMENTS, INC.", "EDA-INSTRUMENTS" }, { 0x00A04E, "VOELKER TECHNOLOGIES, INC.", "VOELKER-TECHNOLOGIES" }, { 0x00A04F, "AMERITEC CORP.", "AMERITEC" }, { 0x00A050, "CYPRESS SEMICONDUCTOR", "CYPRESS-SEMICONDUCTOR" }, { 0x00A051, "ANGIA COMMUNICATIONS. INC.", "ANGIA-COMMUNICATION" }, { 0x00A052, "STANILITE ELECTRONICS PTY. LTD", "STANILITE-ELECTRONICS-PTY" }, { 0x00A053, "COMPACT DEVICES, INC.", "COMPACT-DEVICES" }, { 0x00A054, "Private", "PRIVATE" }, { 0x00A055, "Data Device Corporation", "DATA-DEVICE" }, { 0x00A056, "MICROPROSS", "MICROPROSS" }, { 0x00A057, "LANCOM Systems GmbH", "LANCOM" }, { 0x00A058, "GLORY, LTD.", "GLORY" }, { 0x00A059, "HAMILTON HALLMARK", "HAMILTON-HALLMARK" }, { 0x00A05A, "KOFAX IMAGE PRODUCTS", "KOFAX-IMAGE-PRODUCTS" }, { 0x00A05B, "MARQUIP, INC.", "MARQUIP" }, { 0x00A05C, "INVENTORY CONVERSION, INC./", "INVENTORY-CONVERSION-/" }, { 0x00A05D, "CS COMPUTER SYSTEME GmbH", "CS-SYSTEME" }, { 0x00A05E, "MYRIAD LOGIC INC.", "MYRIAD-LOGIC" }, { 0x00A05F, "BTG Electronics Design BV", "BTG-ELECTRONICS-DESIGN" }, { 0x00A060, "ACER PERIPHERALS, INC.", "ACER-PERIPHERALS" }, { 0x00A061, "PURITAN BENNETT", "PURITAN-BENNETT" }, { 0x00A062, "AES PRODATA", "AES-PRODATA" }, { 0x00A063, "JRL SYSTEMS, INC.", "JRL" }, { 0x00A064, "KVB/ANALECT", "KVB/ANALECT" }, { 0x00A065, "Symantec Corporation", "SYMANTEC" }, { 0x00A066, "ISA CO., LTD.", "ISA" }, { 0x00A067, "NETWORK SERVICES GROUP", "NETWORK-SERVICES-GROUP" }, { 0x00A068, "BHP LIMITED", "BHP" }, { 0x00A069, "Symmetricom, Inc.", "SYMMETRICOM" }, { 0x00A06A, "Verilink Corporation", "VERILINK" }, { 0x00A06B, "DMS DORSCH MIKROSYSTEM GMBH", "DMS-DORSCH-MIKROSYSTEM" }, { 0x00A06C, "SHINDENGEN ELECTRIC MFG. CO., LTD.", "SHINDENGEN-ELECTRIC-MFG" }, { 0x00A06D, "MANNESMANN TALLY CORPORATION", "MANNESMANN-TALLY" }, { 0x00A06E, "AUSTRON, INC.", "AUSTRON" }, { 0x00A06F, "Color Sentinel Systems, LLC", "COLOR-SENTINEL" }, { 0x00A070, "COASTCOM", "COASTCOM" }, { 0x00A071, "VIDEO LOTTERY TECHNOLOGIES,INC", "VIDEO-LOTTERY-TECHNOLOGIES" }, { 0x00A072, "OVATION SYSTEMS LTD.", "OVATION" }, { 0x00A073, "COM21, INC.", "COM21" }, { 0x00A074, "PERCEPTION TECHNOLOGY", "PERCEPTION" }, { 0x00A075, "MICRON TECHNOLOGY, INC.", "MICRON" }, { 0x00A076, "CARDWARE LAB, INC.", "CARDWARE-LAB" }, { 0x00A077, "FUJITSU NEXION, INC.", "FUJITSU-NEXION" }, { 0x00A078, "Marconi Communications", "MARCONI-COMMUNICATION" }, { 0x00A079, "ALPS ELECTRIC (USA), INC.", "ALPS-ELECTRIC-USA" }, { 0x00A07A, "ADVANCED PERIPHERALS TECHNOLOGIES, INC.", "ADVANCED-PERIPHERALS-TECHNOLOGIES" }, { 0x00A07B, "DAWN COMPUTER INCORPORATION", "DAWN-INCORPORATION" }, { 0x00A07C, "TONYANG NYLON CO., LTD.", "TONYANG-NYLON" }, { 0x00A07D, "SEEQ TECHNOLOGY, INC.", "SEEQ" }, { 0x00A07E, "AVID TECHNOLOGY, INC.", "AVID" }, { 0x00A07F, "GSM-SYNTEL, LTD.", "GSM-SYNTEL" }, { 0x00A080, "Tattile SRL", "TATTILE-SRL" }, { 0x00A081, "ALCATEL DATA NETWORKS", "ALCATEL-DATA-NETWORKS" }, { 0x00A082, "NKT ELEKTRONIK A/S", "NKT-ELEKTRONIK-A/S" }, { 0x00A083, "ASIMMPHONY TURKEY", "ASIMMPHONY-TURKEY" }, { 0x00A084, "Dataplex Pty Ltd", "DATAPLEX-PTY" }, { 0x00A085, "Private", "PRIVATE" }, { 0x00A086, "AMBER WAVE SYSTEMS, INC.", "AMBER-WAVE" }, { 0x00A087, "Microsemi Corporation", "MICROSEMI" }, { 0x00A088, "ESSENTIAL COMMUNICATIONS", "ESSENTIAL-COMMUNICATION" }, { 0x00A089, "XPOINT TECHNOLOGIES, INC.", "XPOINT-TECHNOLOGIES" }, { 0x00A08A, "BROOKTROUT TECHNOLOGY, INC.", "BROOKTROUT" }, { 0x00A08B, "ASTON ELECTRONIC DESIGNS LTD.", "ASTON-DESIGNS" }, { 0x00A08C, "MultiMedia LANs, Inc.", "MULTIMEDIA-LANS" }, { 0x00A08D, "JACOMO CORPORATION", "JACOMO" }, { 0x00A08E, "Check Point Software Technologies", "CHECK-POINT-SOFTWARE-TECHNOLOGIES" }, { 0x00A08F, "DESKNET SYSTEMS, INC.", "DESKNET" }, { 0x00A090, "TimeStep Corporation", "TIMESTEP" }, { 0x00A091, "APPLICOM INTERNATIONAL", "APPLICOM" }, { 0x00A092, "H. BOLLMANN MANUFACTURERS, LTD", "H-BOLLMANN-MANUFACTURERS" }, { 0x00A093, "B/E AEROSPACE, Inc.", "B/E-AEROSPACE" }, { 0x00A094, "COMSAT CORPORATION", "COMSAT" }, { 0x00A095, "ACACIA NETWORKS, INC.", "ACACIA-NETWORKS" }, { 0x00A096, "MITSUMI ELECTRIC CO.,LTD.", "MITSUMI-ELECTRIC" }, { 0x00A097, "JC INFORMATION SYSTEMS", "JC-INFORMATION" }, { 0x00A098, "NetApp", "NETAPP" }, { 0x00A099, "K-NET LTD.", "K-NET" }, { 0x00A09A, "NIHON KOHDEN AMERICA", "NIHON-KOHDEN-AMERICA" }, { 0x00A09B, "QPSX COMMUNICATIONS, LTD.", "QPSX-COMMUNICATION" }, { 0x00A09C, "Xyplex, Inc.", "XYPLEX" }, { 0x00A09D, "JOHNATHON FREEMAN TECHNOLOGIES", "JOHNATHON-FREEMAN-TECHNOLOGIES" }, { 0x00A09E, "ICTV", "ICTV" }, { 0x00A09F, "COMMVISION CORP.", "COMMVISION" }, { 0x00A0A0, "COMPACT DATA, LTD.", "COMPACT-DATA" }, { 0x00A0A1, "EPIC DATA INC.", "EPIC-DATA" }, { 0x00A0A2, "B810 S.R.L.", "B810" }, { 0x00A0A3, "RELIABLE POWER METERS", "RELIABLE-POWER-METERS" }, { 0x00A0A4, "Oracle Corporation", "ORACLE" }, { 0x00A0A5, "TEKNOR MICROSYSTEME, INC.", "TEKNOR-MICROSYSTEME" }, { 0x00A0A6, "M.I. SYSTEMS, K.K.", "M-I-K-K" }, { 0x00A0A7, "VORAX CORPORATION", "VORAX" }, { 0x00A0A8, "RENEX CORPORATION", "RENEX" }, { 0x00A0A9, "NAVTEL COMMUNICATIONS INC.", "NAVTEL-COMMUNICATION" }, { 0x00A0AA, "SPACELABS MEDICAL", "SPACELABS-MEDICAL" }, { 0x00A0AB, "NETCS INFORMATIONSTECHNIK GMBH", "NETCS-INFORMATIONSTECHNIK" }, { 0x00A0AC, "GILAT SATELLITE NETWORKS, LTD.", "GILAT-SATELLITE-NETWORKS" }, { 0x00A0AD, "MARCONI SPA", "MARCONI-SPA" }, { 0x00A0AE, "NUCOM SYSTEMS, INC.", "NUCOM" }, { 0x00A0AF, "WMS INDUSTRIES", "WMS-INDUSTRIES" }, { 0x00A0B0, "I-O DATA DEVICE,INC.", "I-O-DATA-DEVICE" }, { 0x00A0B1, "FIRST VIRTUAL CORPORATION", "FIRST-VIRTUAL" }, { 0x00A0B2, "SHIMA SEIKI", "SHIMA-SEIKI" }, { 0x00A0B3, "ZYKRONIX", "ZYKRONIX" }, { 0x00A0B4, "TEXAS MICROSYSTEMS, INC.", "TEXAS-MICROSYSTEMS" }, { 0x00A0B5, "3H TECHNOLOGY", "3H" }, { 0x00A0B6, "SANRITZ AUTOMATION CO., LTD.", "SANRITZ-AUTOMATION" }, { 0x00A0B7, "CORDANT, INC.", "CORDANT" }, { 0x00A0B8, "NetApp", "NETAPP" }, { 0x00A0B9, "EAGLE TECHNOLOGY, INC.", "EAGLE" }, { 0x00A0BA, "PATTON ELECTRONICS CO.", "PATTON-ELECTRONICS" }, { 0x00A0BB, "HILAN GMBH", "HILAN" }, { 0x00A0BC, "VIASAT, INCORPORATED", "VIASAT-INCORPORATED" }, { 0x00A0BD, "I-TECH CORP.", "I-TECH" }, { 0x00A0BE, "INTEGRATED CIRCUIT SYSTEMS, INC. COMMUNICATIONS GROUP", "INTEGRATED-CIRCUIT-COMMUNICATION-GROUP" }, { 0x00A0BF, "WIRELESS DATA GROUP MOTOROLA", "WIRELESS-DATA-GROUP-MOTOROLA" }, { 0x00A0C0, "DIGITAL LINK CORP.", "DIGITAL-LINK" }, { 0x00A0C1, "ORTIVUS MEDICAL AB", "ORTIVUS-MEDICAL-AB" }, { 0x00A0C2, "R.A. SYSTEMS CO., LTD.", "R-A" }, { 0x00A0C3, "UNICOMPUTER GMBH", "UNICOMPUTER" }, { 0x00A0C4, "CRISTIE ELECTRONICS LTD.", "CRISTIE-ELECTRONICS" }, { 0x00A0C5, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x00A0C6, "Qualcomm Inc.", "QUALCOMM" }, { 0x00A0C7, "TADIRAN TELECOMMUNICATIONS", "TADIRAN-TELECOMMUNICATIONS" }, { 0x00A0C8, "Adtran Inc", "ADTRAN" }, { 0x00A0C9, "Intel Corporation", "INTEL" }, { 0x00A0CA, "FUJITSU DENSO LTD.", "FUJITSU-DENSO" }, { 0x00A0CB, "ARK TELECOMMUNICATIONS, INC.", "ARK-TELECOMMUNICATIONS" }, { 0x00A0CC, "LITE-ON COMMUNICATIONS, INC.", "LITE-ON-COMMUNICATION" }, { 0x00A0CD, "DR. JOHANNES HEIDENHAIN GmbH", "DR-JOHANNES-HEIDENHAIN" }, { 0x00A0CE, "Ecessa", "ECESSA" }, { 0x00A0CF, "SOTAS, INC.", "SOTAS" }, { 0x00A0D0, "TEN X TECHNOLOGY, INC.", "TEN-X" }, { 0x00A0D1, "INVENTEC CORPORATION", "INVENTEC" }, { 0x00A0D2, "ALLIED TELESIS INTERNATIONAL CORPORATION", "ALLIED-TELESIS" }, { 0x00A0D3, "INSTEM COMPUTER SYSTEMS, LTD.", "INSTEM" }, { 0x00A0D4, "RADIOLAN, INC.", "RADIOLAN" }, { 0x00A0D5, "Sierra Wireless, ULC", "SIERRA-WIRELESS-ULC" }, { 0x00A0D6, "SBE, Inc.", "SBE" }, { 0x00A0D7, "KASTEN CHASE APPLIED RESEARCH", "KASTEN-CHASE-APPLIED-RESEARCH" }, { 0x00A0D8, "SPECTRA - TEK", "SPECTRA-TEK" }, { 0x00A0D9, "CONVEX COMPUTER CORPORATION", "CONVEX" }, { 0x00A0DA, "INTEGRATED SYSTEMS Technology, Inc.", "INTEGRATED" }, { 0x00A0DB, "FISHER & PAYKEL PRODUCTION", "FISHER-PAYKEL-PRODUCTION" }, { 0x00A0DC, "O.N. ELECTRONIC CO., LTD.", "O-N" }, { 0x00A0DD, "AZONIX CORPORATION", "AZONIX" }, { 0x00A0DE, "YAMAHA CORPORATION", "YAMAHA" }, { 0x00A0DF, "STS TECHNOLOGIES, INC.", "STS-TECHNOLOGIES" }, { 0x00A0E0, "TENNYSON TECHNOLOGIES PTY LTD", "TENNYSON-TECHNOLOGIES-PTY" }, { 0x00A0E1, "WESTPORT RESEARCH ASSOCIATES, INC.", "WESTPORT-RESEARCH-ASSOCIATES" }, { 0x00A0E2, "Keisokugiken Corporation", "KEISOKUGIKEN" }, { 0x00A0E3, "XKL SYSTEMS CORP.", "XKL" }, { 0x00A0E4, "OPTIQUEST", "OPTIQUEST" }, { 0x00A0E5, "NHC COMMUNICATIONS", "NHC-COMMUNICATION" }, { 0x00A0E6, "DIALOGIC CORPORATION", "DIALOGIC" }, { 0x00A0E7, "CENTRAL DATA CORPORATION", "CENTRAL-DATA" }, { 0x00A0E8, "REUTERS HOLDINGS PLC", "REUTERS-HOLDINGS-PLC" }, { 0x00A0E9, "ELECTRONIC RETAILING SYSTEMS INTERNATIONAL", "RETAILING" }, { 0x00A0EA, "ETHERCOM CORP.", "ETHERCOM" }, { 0x00A0EB, "Encore Networks, Inc.", "ENCORE-NETWORKS" }, { 0x00A0EC, "TRANSMITTON LTD.", "TRANSMITTON" }, { 0x00A0ED, "Brooks Automation, Inc.", "BROOKS-AUTOMATION" }, { 0x00A0EE, "NASHOBA NETWORKS", "NASHOBA-NETWORKS" }, { 0x00A0EF, "LUCIDATA LTD.", "LUCIDATA" }, { 0x00A0F0, "TORONTO MICROELECTRONICS INC.", "TORONTO-MICROELECTRONICS" }, { 0x00A0F1, "MTI", "MTI" }, { 0x00A0F2, "INFOTEK COMMUNICATIONS, INC.", "INFOTEK-COMMUNICATION" }, { 0x00A0F3, "STAUBLI", "STAUBLI" }, { 0x00A0F4, "GE", "GE" }, { 0x00A0F5, "RADGUARD LTD.", "RADGUARD" }, { 0x00A0F6, "AutoGas Systems Inc.", "AUTOGAS" }, { 0x00A0F7, "V.I COMPUTER CORP.", "V-I" }, { 0x00A0F8, "Zebra Technologies Inc", "ZEBRA-TECHNOLOGIES" }, { 0x00A0F9, "BINTEC COMMUNICATIONS GMBH", "BINTEC-COMMUNICATION" }, { 0x00A0FA, "Marconi Communication GmbH", "MARCONI-COMMUNICATION" }, { 0x00A0FB, "Toray Engineering D Solutions Co., Ltd.", "TORAY-ENGINEERING-D-SOLUTIONS" }, { 0x00A0FC, "IMAGE SCIENCES, INC.", "IMAGE-SCIENCES" }, { 0x00A0FD, "SCITEX DIGITAL PRINTING, INC.", "SCITEX-DIGITAL-PRINTING" }, { 0x00A0FE, "BOSTON TECHNOLOGY, INC.", "BOSTON" }, { 0x00A0FF, "TELLABS OPERATIONS, INC.", "TELLABS-OPERATIONS" }, { 0x00A1DE, "ShenZhen ShiHua Technology CO.,LTD", "SHENZHEN-SHIHUA" }, { 0x00A265, "M2Motive Technology Inc.", "M2MOTIVE" }, { 0x00A289, "Cisco Systems, Inc", "CISCO" }, { 0x00A2DA, "INAT GmbH", "INAT" }, { 0x00A2EE, "Cisco Systems, Inc", "CISCO" }, { 0x00A2F5, "Guangzhou Yuanyun Network Technology Co.,Ltd", "GUANGZHOU-YUANYUN-NETWORK" }, { 0x00A2FF, "abatec group AG", "ABATEC-GROUP" }, { 0x00A388, "SKY UK LIMITED", "SKY-UK" }, { 0x00A38E, "Cisco Systems, Inc", "CISCO" }, { 0x00A3D1, "Cisco Systems, Inc", "CISCO" }, { 0x00A45F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x00A509, "WigWag Inc.", "WIGWAG" }, { 0x00A554, "Intel Corporate", "INTEL-CORPORATE" }, { 0x00A5BF, "Cisco Systems, Inc", "CISCO" }, { 0x00A6CA, "Cisco Systems, Inc", "CISCO" }, { 0x00A742, "Cisco Systems, Inc", "CISCO" }, { 0x00A784, "ITX security", "ITX-SECURITY" }, { 0x00AA00, "Intel Corporation", "INTEL" }, { 0x00AA01, "Intel Corporation", "INTEL" }, { 0x00AA02, "Intel Corporation", "INTEL" }, { 0x00AA3C, "OLIVETTI TELECOM SPA (OLTECO)", "OLIVETTI-TELECOM-SPA-OLTECO" }, { 0x00AA6E, "Cisco Systems, Inc", "CISCO" }, { 0x00AA70, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x00AB48, "eero inc.", "EERO" }, { 0x00ACE0, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x00AD24, "D-Link International", "D-LINK" }, { 0x00AD63, "Dedicated Micros Malta LTD", "DEDICATED-MICROS-MALTA" }, { 0x00ADD5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x00AECD, "Pensando Systems", "PENSANDO" }, { 0x00AEFA, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x00AF1F, "Cisco Systems, Inc", "CISCO" }, { 0x00B009, "Grass Valley, A Belden Brand", "GRASS-VALLEY-A-BELDEN-BRAND" }, { 0x00B017, "InfoGear Technology Corp.", "INFOGEAR" }, { 0x00B019, "UTC CCS", "UTC-CCS" }, { 0x00B01C, "Westport Technologies", "WESTPORT-TECHNOLOGIES" }, { 0x00B01E, "Rantic Labs, Inc.", "RANTIC-LABS" }, { 0x00B02A, "ORSYS GmbH", "ORSYS" }, { 0x00B02D, "ViaGate Technologies, Inc.", "VIAGATE-TECHNOLOGIES" }, { 0x00B033, "OAO Izhevskiy radiozavod", "OAO-IZHEVSKIY-RADIOZAVOD" }, { 0x00B03B, "HiQ Networks", "HIQ-NETWORKS" }, { 0x00B048, "Marconi Communications Inc.", "MARCONI-COMMUNICATION" }, { 0x00B04A, "Cisco Systems, Inc", "CISCO" }, { 0x00B052, "Atheros Communications", "ATHEROS-COMMUNICATION" }, { 0x00B064, "Cisco Systems, Inc", "CISCO" }, { 0x00B069, "Honewell Oy", "HONEWELL-OY" }, { 0x00B06D, "Jones Futurex Inc.", "JONES-FUTUREX" }, { 0x00B080, "Mannesmann Ipulsys B.V.", "MANNESMANN-IPULSYS-B-V" }, { 0x00B086, "LocSoft Limited", "LOCSOFT" }, { 0x00B08E, "Cisco Systems, Inc", "CISCO" }, { 0x00B091, "Transmeta Corp.", "TRANSMETA" }, { 0x00B094, "Alaris, Inc.", "ALARIS" }, { 0x00B09A, "Morrow Technologies Corp.", "MORROW-TECHNOLOGIES" }, { 0x00B09D, "Point Grey Research Inc.", "POINT-GREY-RESEARCH" }, { 0x00B0AC, "SIAE-Microelettronica S.p.A.", "SIAE-MICROELETTRONICA" }, { 0x00B0AE, "Symmetricom", "SYMMETRICOM" }, { 0x00B0B3, "XSTREAMIS PLC", "XSTREAMIS-PLC" }, { 0x00B0C2, "Cisco Systems, Inc", "CISCO" }, { 0x00B0C7, "Tellabs Operations, Inc.", "TELLABS-OPERATIONS" }, { 0x00B0CE, "Viveris Technologies", "VIVERIS-TECHNOLOGIES" }, { 0x00B0D0, "Dell Inc.", "DELL" }, { 0x00B0DB, "Nextcell, Inc.", "NEXTCELL" }, { 0x00B0DF, "Starboard Storage Systems", "STARBOARD-STORAGE" }, { 0x00B0E1, "Cisco Systems, Inc", "CISCO" }, { 0x00B0E7, "British Federal Ltd.", "BRITISH-FEDERAL" }, { 0x00B0EC, "EACEM", "EACEM" }, { 0x00B0EE, "Ajile Systems, Inc.", "AJILE" }, { 0x00B0F0, "CALY NETWORKS", "CALY-NETWORKS" }, { 0x00B0F5, "NetWorth Technologies, Inc.", "NETWORTH-TECHNOLOGIES" }, { 0x00B1E3, "Cisco Systems, Inc", "CISCO" }, { 0x00B338, "Kontron Asia Pacific Design Sdn. Bhd", "KONTRON-ASIA-PACIFIC-DESIGN" }, { 0x00B342, "MacroSAN Technologies Co., Ltd.", "MACROSAN-TECHNOLOGIES" }, { 0x00B362, "Apple, Inc.", "APPLE" }, { 0x00B4F5, "DongGuan Siyoto Electronics Co., Ltd", "DONGGUAN-SIYOTO-ELECTRONICS" }, { 0x00B56D, "David Electronics Co., LTD.", "DAVID-ELECTRONICS" }, { 0x00B5D0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00B5D6, "Omnibit Inc.", "OMNIBIT" }, { 0x00B600, "VOIM Co., Ltd.", "VOIM" }, { 0x00B670, "Cisco Systems, Inc", "CISCO" }, { 0x00B69F, "Latch", "LATCH" }, { 0x00B771, "Cisco Systems, Inc", "CISCO" }, { 0x00B78D, "Nanjing Shining Electric Automation Co., Ltd", "NANJING-SHINING-ELECTRIC-AUTOMATION" }, { 0x00B7A8, "Heinzinger electronic GmbH", "HEINZINGER" }, { 0x00B810, "Yichip Microelectronics (Hangzhou) Co.,Ltd", "YICHIPMICROELECTRONICS-HANGZHOU" }, { 0x00B881, "New platforms LLC", "NEW-PLATFORMS" }, { 0x00B8B3, "Cisco Systems, Inc", "CISCO" }, { 0x00B8B6, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x00B8C2, "Heights Telecom T ltd", "HEIGHTS-TELECOM-T" }, { 0x00B9F6, "Shenzhen Super Rich Electronics Co.,Ltd", "SHENZHEN-SUPER-RICH-ELECTRONICS" }, { 0x00BAC0, "Biometric Access Company", "BIOMETRIC-ACCESS-COMPANY" }, { 0x00BB01, "OCTOTHORPE CORP.", "OCTOTHORPE" }, { 0x00BB1C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x00BB3A, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x00BB60, "Intel Corporate", "INTEL-CORPORATE" }, { 0x00BB8E, "HME Co., Ltd.", "HME" }, { 0x00BBC1, "CANON INC.", "CANON" }, { 0x00BBF0, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00BC60, "Cisco Systems, Inc", "CISCO" }, { 0x00BD27, "Exar Corp.", "EXAR" }, { 0x00BD3A, "Nokia Corporation", "NOKIA" }, { 0x00BD3E, "Vizio, Inc", "VIZIO" }, { 0x00BD82, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x00BE3B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x00BE43, "Dell Inc.", "DELL" }, { 0x00BE75, "Cisco Systems, Inc", "CISCO" }, { 0x00BE9E, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x00BED5, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x00BF15, "Genetec Inc.", "GENETEC" }, { 0x00BF61, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00BF77, "Cisco Systems, Inc", "CISCO" }, { 0x00BFAF, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x00C000, "LANOPTICS, LTD.", "LANOPTICS" }, { 0x00C001, "DIATEK PATIENT MANAGMENT", "DIATEK-PATIENT-MANAGMENT" }, { 0x00C002, "Sercomm Corporation.", "SERCOMM" }, { 0x00C003, "GLOBALNET COMMUNICATIONS", "GLOBALNET-COMMUNICATION" }, { 0x00C004, "JAPAN BUSINESS COMPUTER CO.LTD", "JAPAN-BUSINESS" }, { 0x00C005, "LIVINGSTON ENTERPRISES, INC.", "LIVINGSTON-ENTERPRISES" }, { 0x00C006, "NIPPON AVIONICS CO., LTD.", "NIPPON-AVIONICS" }, { 0x00C007, "PINNACLE DATA SYSTEMS, INC.", "PINNACLE-DATA" }, { 0x00C008, "SECO SRL", "SECO-SRL" }, { 0x00C009, "KT TECHNOLOGY (S) PTE LTD", "KT-S-PTE" }, { 0x00C00A, "MICRO CRAFT", "MICRO-CRAFT" }, { 0x00C00B, "NORCONTROL A.S.", "NORCONTROL" }, { 0x00C00C, "RELIA TECHNOLGIES", "RELIA-TECHNOLGIES" }, { 0x00C00D, "ADVANCED LOGIC RESEARCH, INC.", "ADVANCED-LOGIC-RESEARCH" }, { 0x00C00E, "PSITECH, INC.", "PSITECH" }, { 0x00C00F, "QUANTUM SOFTWARE SYSTEMS LTD.", "QUANTUM-SOFTWARE" }, { 0x00C010, "HIRAKAWA HEWTECH CORP.", "HIRAKAWA-HEWTECH" }, { 0x00C011, "INTERACTIVE COMPUTING DEVICES", "INTERACTIVE-COMPUTING-DEVICES" }, { 0x00C012, "NETSPAN CORPORATION", "NETSPAN" }, { 0x00C013, "NETRIX", "NETRIX" }, { 0x00C014, "TELEMATICS CALABASAS INT'L,INC", "TELEMATICS-CALABASAS" }, { 0x00C015, "NEW MEDIA CORPORATION", "NEW-MEDIA" }, { 0x00C016, "ELECTRONIC THEATRE CONTROLS", "THEATRE-CONTROLS" }, { 0x00C017, "NetAlly", "NETALLY" }, { 0x00C018, "LANART CORPORATION", "LANART" }, { 0x00C019, "LEAP TECHNOLOGY, INC.", "LEAP" }, { 0x00C01A, "COROMETRICS MEDICAL SYSTEMS", "COROMETRICS-MEDICAL" }, { 0x00C01B, "SOCKET COMMUNICATIONS, INC.", "SOCKET-COMMUNICATION" }, { 0x00C01C, "INTERLINK COMMUNICATIONS LTD.", "INTERLINK-COMMUNICATION" }, { 0x00C01D, "GRAND JUNCTION NETWORKS, INC.", "GRAND-JUNCTION-NETWORKS" }, { 0x00C01E, "LA FRANCAISE DES JEUX", "LA-FRANCAISE-DES-JEUX" }, { 0x00C01F, "S.E.R.C.E.L.", "S-E-R-C-E-L" }, { 0x00C020, "ARCO ELECTRONIC, CONTROL LTD.", "ARCO-CONTROL" }, { 0x00C021, "NETEXPRESS", "NETEXPRESS" }, { 0x00C022, "LASERMASTER TECHNOLOGIES, INC.", "LASERMASTER-TECHNOLOGIES" }, { 0x00C023, "TUTANKHAMON ELECTRONICS", "TUTANKHAMON-ELECTRONICS" }, { 0x00C024, "EDEN SISTEMAS DE COMPUTACAO SA", "EDEN-SISTEMAS-DE-COMPUTACAO" }, { 0x00C025, "DATAPRODUCTS CORPORATION", "DATAPRODUCTS" }, { 0x00C026, "LANS TECHNOLOGY CO., LTD.", "LANS" }, { 0x00C027, "CIPHER SYSTEMS, INC.", "CIPHER" }, { 0x00C028, "JASCO CORPORATION", "JASCO" }, { 0x00C029, "Nexans Deutschland GmbH - ANS", "NEXANS-DEUTSCHLAND-ANS" }, { 0x00C02A, "OHKURA ELECTRIC CO., LTD.", "OHKURA-ELECTRIC" }, { 0x00C02B, "GERLOFF GESELLSCHAFT FUR", "GERLOFF-GESELLSCHAFT-FUR" }, { 0x00C02C, "CENTRUM COMMUNICATIONS, INC.", "CENTRUM-COMMUNICATION" }, { 0x00C02D, "FUJI PHOTO FILM CO., LTD.", "FUJI-PHOTO-FILM" }, { 0x00C02E, "NETWIZ", "NETWIZ" }, { 0x00C02F, "OKUMA CORPORATION", "OKUMA" }, { 0x00C030, "INTEGRATED ENGINEERING B. V.", "INTEGRATED-ENGINEERING-B-V" }, { 0x00C031, "DESIGN RESEARCH SYSTEMS, INC.", "DESIGN-RESEARCH" }, { 0x00C032, "I-CUBED LIMITED", "I-CUBED" }, { 0x00C033, "TELEBIT COMMUNICATIONS APS", "TELEBIT-COMMUNICATION-APS" }, { 0x00C034, "TRANSACTION NETWORK", "TRANSACTION-NETWORK" }, { 0x00C035, "QUINTAR COMPANY", "QUINTAR-COMPANY" }, { 0x00C036, "RAYTECH ELECTRONIC CORP.", "RAYTECH" }, { 0x00C037, "DYNATEM", "DYNATEM" }, { 0x00C038, "RASTER IMAGE PROCESSING SYSTEM", "RASTER-IMAGE-PROCESSING-SYSTEM" }, { 0x00C039, "Teridian Semiconductor Corporation", "TERIDIAN-SEMICONDUCTOR" }, { 0x00C03A, "duagon Germany GmbH", "DUAGON-GERMANY" }, { 0x00C03B, "MULTIACCESS COMPUTING CORP.", "MULTIACCESS-COMPUTING" }, { 0x00C03C, "TOWER TECH S.R.L.", "TOWER-TECH" }, { 0x00C03D, "WIESEMANN & THEIS GMBH", "WIESEMANN-THEIS" }, { 0x00C03E, "FA. GEBR. HELLER GMBH", "FA-GEBR-HELLER" }, { 0x00C03F, "STORES AUTOMATED SYSTEMS, INC.", "STORES-AUTOMATED" }, { 0x00C040, "ECCI", "ECCI" }, { 0x00C041, "DIGITAL TRANSMISSION SYSTEMS", "DIGITAL-TRANSMISSION" }, { 0x00C042, "DATALUX CORP.", "DATALUX" }, { 0x00C043, "STRATACOM", "STRATACOM" }, { 0x00C044, "EMCOM CORPORATION", "EMCOM" }, { 0x00C045, "ISOLATION SYSTEMS, LTD.", "ISOLATION" }, { 0x00C046, "Blue Chip Technology Ltd", "BLUE-CHIP" }, { 0x00C047, "UNIMICRO SYSTEMS, INC.", "UNIMICRO" }, { 0x00C048, "BAY TECHNICAL ASSOCIATES", "BAY-TECHNICAL-ASSOCIATES" }, { 0x00C049, "U.S. ROBOTICS, INC.", "U-S-ROBOTICS" }, { 0x00C04A, "GROUP 2000 AG", "GROUP-2000" }, { 0x00C04B, "CREATIVE MICROSYSTEMS", "CREATIVE-MICROSYSTEMS" }, { 0x00C04C, "DEPARTMENT OF FOREIGN AFFAIRS", "DEPARTMENT-OF-FOREIGN-AFFAIRS" }, { 0x00C04D, "MITEC, INC.", "MITEC" }, { 0x00C04E, "COMTROL CORPORATION", "COMTROL" }, { 0x00C04F, "Dell Inc.", "DELL" }, { 0x00C050, "TOYO DENKI SEIZO K.K.", "TOYO-DENKI-SEIZO-K-K" }, { 0x00C051, "ADVANCED INTEGRATION RESEARCH", "ADVANCED-INTEGRATION-RESEARCH" }, { 0x00C052, "BURR-BROWN", "BURR-BROWN" }, { 0x00C053, "Aspect Software Inc.", "ASPECT-SOFTWARE" }, { 0x00C054, "NETWORK PERIPHERALS, LTD.", "NETWORK-PERIPHERALS" }, { 0x00C055, "MODULAR COMPUTING TECHNOLOGIES", "MODULAR-COMPUTING-TECHNOLOGIES" }, { 0x00C056, "SOMELEC", "SOMELEC" }, { 0x00C057, "MYCO ELECTRONICS", "MYCO-ELECTRONICS" }, { 0x00C058, "DATAEXPERT CORP.", "DATAEXPERT" }, { 0x00C059, "DENSO CORPORATION", "DENSO" }, { 0x00C05A, "SEMAPHORE COMMUNICATIONS CORP.", "SEMAPHORE-COMMUNICATION" }, { 0x00C05B, "NETWORKS NORTHWEST, INC.", "NETWORKS-NORTHWEST" }, { 0x00C05C, "ELONEX PLC", "ELONEX-PLC" }, { 0x00C05D, "L&N TECHNOLOGIES", "L-N-TECHNOLOGIES" }, { 0x00C05E, "VARI-LITE, INC.", "VARI-LITE" }, { 0x00C05F, "FINE-PAL COMPANY LIMITED", "FINE-PAL-COMPANY" }, { 0x00C060, "ID SCANDINAVIA AS", "ID-SCANDINAVIA-AS" }, { 0x00C061, "SOLECTEK CORPORATION", "SOLECTEK" }, { 0x00C062, "IMPULSE TECHNOLOGY", "IMPULSE" }, { 0x00C063, "MORNING STAR TECHNOLOGIES, INC", "MORNING-STAR-TECHNOLOGIES" }, { 0x00C064, "General Datacomm LLC", "GENERAL-DATACOMM" }, { 0x00C065, "SCOPE COMMUNICATIONS, INC.", "SCOPE-COMMUNICATION" }, { 0x00C066, "DOCUPOINT, INC.", "DOCUPOINT" }, { 0x00C067, "UNITED BARCODE INDUSTRIES", "UNITED-BARCODE-INDUSTRIES" }, { 0x00C068, "HME Clear-Com LTD.", "HME-CLEAR-COM" }, { 0x00C069, "Axxcelera Broadband Wireless", "AXXCELERA-BROADBAND-WIRELESS" }, { 0x00C06A, "Zahner-Elektrik Ingeborg Zahner-Schiller GmbH & Co. KG.", "ZAHNER-ELEKTRIK-INGEBORG-ZAHNER-SCHILLER" }, { 0x00C06B, "OSI PLUS CORPORATION", "OSI-PLUS" }, { 0x00C06C, "SVEC COMPUTER CORP.", "SVEC" }, { 0x00C06D, "BOCA RESEARCH, INC.", "BOCA-RESEARCH" }, { 0x00C06E, "HAFT TECHNOLOGY, INC.", "HAFT" }, { 0x00C06F, "KOMATSU LTD.", "KOMATSU" }, { 0x00C070, "SECTRA SECURE-TRANSMISSION AB", "SECTRA-SECURE-TRANSMISSION-AB" }, { 0x00C071, "AREANEX COMMUNICATIONS, INC.", "AREANEX-COMMUNICATION" }, { 0x00C072, "KNX LTD.", "KNX" }, { 0x00C073, "XEDIA CORPORATION", "XEDIA" }, { 0x00C074, "TOYODA AUTOMATIC LOOM", "TOYODA-AUTOMATIC-LOOM" }, { 0x00C075, "XANTE CORPORATION", "XANTE" }, { 0x00C076, "I-DATA INTERNATIONAL A-S", "I-DATA" }, { 0x00C077, "DAEWOO TELECOM LTD.", "DAEWOO-TELECOM" }, { 0x00C078, "COMPUTER SYSTEMS ENGINEERING", "ENGINEERING" }, { 0x00C079, "FONSYS CO.,LTD.", "FONSYS" }, { 0x00C07A, "PRIVA B.V.", "PRIVA-B-V" }, { 0x00C07B, "ASCEND COMMUNICATIONS, INC.", "ASCEND-COMMUNICATION" }, { 0x00C07C, "HIGHTECH INFORMATION", "HIGHTECH-INFORMATION" }, { 0x00C07D, "RISC DEVELOPMENTS LTD.", "RISC-DEVELOPMENTS" }, { 0x00C07E, "KUBOTA CORPORATION ELECTRONIC", "KUBOTA" }, { 0x00C07F, "NUPON COMPUTING CORP.", "NUPON-COMPUTING" }, { 0x00C080, "NETSTAR, INC.", "NETSTAR" }, { 0x00C081, "METRODATA LTD.", "METRODATA" }, { 0x00C082, "MOORE PRODUCTS CO.", "MOORE-PRODUCTS" }, { 0x00C083, "TRACE MOUNTAIN PRODUCTS, INC.", "TRACE-MOUNTAIN-PRODUCTS" }, { 0x00C084, "DATA LINK CORP. LTD.", "DATA-LINK" }, { 0x00C085, "ELECTRONICS FOR IMAGING, INC.", "ELECTRONICS-FOR-IMAGING" }, { 0x00C086, "THE LYNK CORPORATION", "THE-LYNK" }, { 0x00C087, "UUNET TECHNOLOGIES, INC.", "UUNET-TECHNOLOGIES" }, { 0x00C088, "EKF ELEKTRONIK GMBH", "EKF-ELEKTRONIK" }, { 0x00C089, "TELINDUS DISTRIBUTION", "TELINDUS-DISTRIBUTION" }, { 0x00C08A, "Lauterbach GmbH", "LAUTERBACH" }, { 0x00C08B, "RISQ MODULAR SYSTEMS, INC.", "RISQ-MODULAR" }, { 0x00C08C, "PERFORMANCE TECHNOLOGIES, INC.", "PERFORMANCE-TECHNOLOGIES" }, { 0x00C08D, "TRONIX PRODUCT DEVELOPMENT", "TRONIX-PRODUCT-DEVELOPMENT" }, { 0x00C08E, "NETWORK INFORMATION TECHNOLOGY", "NETWORK-INFORMATION" }, { 0x00C08F, "Panasonic Electric Works Co., Ltd.", "PANASONIC-ELECTRIC-WORKS" }, { 0x00C090, "PRAIM S.R.L.", "PRAIM" }, { 0x00C091, "JABIL CIRCUIT, INC.", "JABIL-CIRCUIT" }, { 0x00C092, "MENNEN MEDICAL INC.", "MENNEN-MEDICAL" }, { 0x00C093, "ALTA RESEARCH CORP.", "ALTA-RESEARCH" }, { 0x00C094, "VMX INC.", "VMX" }, { 0x00C095, "ZNYX Networks, Inc.", "ZNYX-NETWORKS" }, { 0x00C096, "TAMURA CORPORATION", "TAMURA" }, { 0x00C097, "ARCHIPEL SA", "ARCHIPEL" }, { 0x00C098, "CHUNTEX ELECTRONIC CO., LTD.", "CHUNTEX" }, { 0x00C099, "YOSHIKI INDUSTRIAL CO.,LTD.", "YOSHIKI-INDUSTRIAL" }, { 0x00C09A, "PHOTONICS CORPORATION", "PHOTONICS" }, { 0x00C09B, "Tellabs Enterprise, Inc.", "TELLABS" }, { 0x00C09C, "HIOKI E.E. CORPORATION", "HIOKI-E-E" }, { 0x00C09D, "DISTRIBUTED SYSTEMS INT'L, INC", "DISTRIBUTED" }, { 0x00C09E, "CACHE COMPUTERS, INC.", "CACHE-COMPUTERS" }, { 0x00C09F, "Quanta Computer Inc.", "QUANTA" }, { 0x00C0A0, "ADVANCE MICRO RESEARCH, INC.", "ADVANCE-MICRO-RESEARCH" }, { 0x00C0A1, "TOKYO DENSHI SEKEI CO.", "TOKYO-DENSHI-SEKEI" }, { 0x00C0A2, "INTERMEDIUM A/S", "INTERMEDIUM-A/S" }, { 0x00C0A3, "DUAL ENTERPRISES CORPORATION", "DUAL-ENTERPRISES" }, { 0x00C0A4, "UNIGRAF OY", "UNIGRAF-OY" }, { 0x00C0A5, "DICKENS DATA SYSTEMS", "DICKENS-DATA" }, { 0x00C0A6, "EXICOM AUSTRALIA PTY. LTD", "EXICOM-AUSTRALIA-PTY" }, { 0x00C0A7, "SEEL LTD.", "SEEL" }, { 0x00C0A8, "GVC CORPORATION", "GVC" }, { 0x00C0A9, "BARRON MCCANN LTD.", "BARRON-MCCANN" }, { 0x00C0AA, "SILICON VALLEY COMPUTER", "SILICON-VALLEY" }, { 0x00C0AB, "Telco Systems, Inc.", "TELCO" }, { 0x00C0AC, "GAMBIT COMPUTER COMMUNICATIONS", "GAMBIT-COMMUNICATION" }, { 0x00C0AD, "MARBEN COMMUNICATION SYSTEMS", "MARBEN-COMMUNICATION" }, { 0x00C0AE, "TOWERCOM CO. INC. DBA PC HOUSE", "TOWERCOM-DBA-PC-HOUSE" }, { 0x00C0AF, "TEKLOGIX INC.", "TEKLOGIX" }, { 0x00C0B0, "GCC TECHNOLOGIES,INC.", "GCC-TECHNOLOGIES" }, { 0x00C0B1, "GENIUS NET CO.", "GENIUS-NET" }, { 0x00C0B2, "NORAND CORPORATION", "NORAND" }, { 0x00C0B3, "COMSTAT DATACOMM CORPORATION", "COMSTAT-DATACOMM" }, { 0x00C0B4, "MYSON TECHNOLOGY, INC.", "MYSON" }, { 0x00C0B5, "CORPORATE NETWORK SYSTEMS,INC.", "CORPORATE-NETWORK" }, { 0x00C0B6, "HVE, Inc.", "HVE" }, { 0x00C0B7, "AMERICAN POWER CONVERSION CORP", "AMERICAN-POWER-CONVERSION" }, { 0x00C0B8, "FRASER'S HILL LTD.", "FRASER-S-HILL" }, { 0x00C0B9, "FUNK SOFTWARE, INC.", "FUNK-SOFTWARE" }, { 0x00C0BA, "NETVANTAGE", "NETVANTAGE" }, { 0x00C0BB, "FORVAL CREATIVE, INC.", "FORVAL-CREATIVE" }, { 0x00C0BC, "TELECOM AUSTRALIA/CSSC", "TELECOM-AUSTRALIA/CSSC" }, { 0x00C0BD, "INEX TECHNOLOGIES, INC.", "INEX-TECHNOLOGIES" }, { 0x00C0BE, "ALCATEL - SEL", "ALCATEL-SEL" }, { 0x00C0BF, "TECHNOLOGY CONCEPTS, LTD.", "CONCEPTS" }, { 0x00C0C0, "SHORE MICROSYSTEMS, INC.", "SHORE-MICROSYSTEMS" }, { 0x00C0C1, "QUAD/GRAPHICS, INC.", "QUAD/GRAPHICS" }, { 0x00C0C2, "INFINITE NETWORKS LTD.", "INFINITE-NETWORKS" }, { 0x00C0C3, "ACUSON COMPUTED SONOGRAPHY", "ACUSON-COMPUTED-SONOGRAPHY" }, { 0x00C0C4, "COMPUTER OPERATIONAL", "OPERATIONAL" }, { 0x00C0C5, "SID INFORMATICA", "SID-INFORMATICA" }, { 0x00C0C6, "PERSONAL MEDIA CORP.", "PERSONAL-MEDIA" }, { 0x00C0C7, "SPARKTRUM MICROSYSTEMS, INC.", "SPARKTRUM-MICROSYSTEMS" }, { 0x00C0C8, "MICRO BYTE PTY. LTD.", "MICRO-BYTE-PTY" }, { 0x00C0C9, "ELSAG BAILEY PROCESS", "ELSAG-BAILEY-PROCESS" }, { 0x00C0CA, "ALFA, INC.", "ALFA" }, { 0x00C0CB, "CONTROL TECHNOLOGY CORPORATION", "CONTROL" }, { 0x00C0CC, "TELESCIENCES CO SYSTEMS, INC.", "TELESCIENCES" }, { 0x00C0CD, "COMELTA, S.A.", "COMELTA" }, { 0x00C0CE, "CEI SYSTEMS & ENGINEERING PTE", "CEI-ENGINEERING-PTE" }, { 0x00C0CF, "IMATRAN VOIMA OY", "IMATRAN-VOIMA-OY" }, { 0x00C0D0, "RATOC SYSTEM INC.", "RATOC-SYSTEM" }, { 0x00C0D1, "COMTREE TECHNOLOGY CORPORATION", "COMTREE" }, { 0x00C0D2, "SYNTELLECT, INC.", "SYNTELLECT" }, { 0x00C0D3, "OLYMPUS IMAGE SYSTEMS, INC.", "OLYMPUS-IMAGE" }, { 0x00C0D4, "AXON NETWORKS, INC.", "AXON-NETWORKS" }, { 0x00C0D5, "Werbeagentur Jürgen Siebert", "WERBEAGENTUR-JUERGEN-SIEBERT" }, { 0x00C0D6, "J1 SYSTEMS, INC.", "J1" }, { 0x00C0D7, "TAIWAN TRADING CENTER DBA", "TAIWAN-TRADING-CENTER-DBA" }, { 0x00C0D8, "UNIVERSAL DATA SYSTEMS", "UNIVERSAL-DATA" }, { 0x00C0D9, "QUINTE NETWORK CONFIDENTIALITY", "QUINTE-NETWORK-CONFIDENTIALITY" }, { 0x00C0DA, "NICE SYSTEMS LTD.", "NICE" }, { 0x00C0DB, "IPC CORPORATION (PTE) LTD.", "IPC-PTE" }, { 0x00C0DC, "EOS TECHNOLOGIES, INC.", "EOS-TECHNOLOGIES" }, { 0x00C0DD, "QLogic Corporation", "QLOGIC" }, { 0x00C0DE, "ZCOMM, INC.", "ZCOMM" }, { 0x00C0DF, "KYE Systems Corp.", "KYE" }, { 0x00C0E0, "DSC COMMUNICATION CORP.", "DSC-COMMUNICATION" }, { 0x00C0E1, "SONIC SOLUTIONS", "SONIC-SOLUTIONS" }, { 0x00C0E2, "CALCOMP, INC.", "CALCOMP" }, { 0x00C0E3, "OSITECH COMMUNICATIONS, INC.", "OSITECH-COMMUNICATION" }, { 0x00C0E4, "SIEMENS BUILDING", "SIEMENS-BUILDING" }, { 0x00C0E5, "GESPAC, S.A.", "GESPAC" }, { 0x00C0E6, "Verilink Corporation", "VERILINK" }, { 0x00C0E7, "FIBERDATA AB", "FIBERDATA-AB" }, { 0x00C0E8, "PLEXCOM, INC.", "PLEXCOM" }, { 0x00C0E9, "OAK SOLUTIONS, LTD.", "OAK-SOLUTIONS" }, { 0x00C0EA, "ARRAY TECHNOLOGY LTD.", "ARRAY" }, { 0x00C0EB, "SEH COMPUTERTECHNIK GMBH", "SEH-COMPUTERTECHNIK" }, { 0x00C0EC, "DAUPHIN TECHNOLOGY", "DAUPHIN" }, { 0x00C0ED, "US ARMY ELECTRONIC", "US-ARMY" }, { 0x00C0EE, "KYOCERA Display Corporation", "KYOCERA-DISPLAY" }, { 0x00C0EF, "ABIT CORPORATION", "ABIT" }, { 0x00C0F0, "Kingston Technology Company, Inc.", "KINGSTON-COMPANY" }, { 0x00C0F1, "SHINKO ELECTRIC CO., LTD.", "SHINKO-ELECTRIC" }, { 0x00C0F2, "TRANSITION NETWORKS", "TRANSITION-NETWORKS" }, { 0x00C0F3, "NETWORK COMMUNICATIONS CORP.", "NETWORK-COMMUNICATION" }, { 0x00C0F4, "INTERLINK SYSTEM CO., LTD.", "INTERLINK-SYSTEM" }, { 0x00C0F5, "METACOMP, INC.", "METACOMP" }, { 0x00C0F6, "CELAN TECHNOLOGY INC.", "CELAN" }, { 0x00C0F7, "ENGAGE COMMUNICATION, INC.", "ENGAGE-COMMUNICATION" }, { 0x00C0F8, "ABOUT COMPUTING INC.", "ABOUT-COMPUTING" }, { 0x00C0F9, "Artesyn Embedded Technologies", "ARTESYN-EMBEDDED-TECHNOLOGIES" }, { 0x00C0FA, "CANARY COMMUNICATIONS, INC.", "CANARY-COMMUNICATION" }, { 0x00C0FB, "ADVANCED TECHNOLOGY LABS", "ADVANCED-LABS" }, { 0x00C0FC, "ELASTIC REALITY, INC.", "ELASTIC-REALITY" }, { 0x00C0FD, "PROSUM", "PROSUM" }, { 0x00C0FE, "APTEC COMPUTER SYSTEMS, INC.", "APTEC" }, { 0x00C0FF, "Seagate Cloud Systems Inc", "SEAGATE-CLOUD" }, { 0x00C14F, "DDL Co,.ltd.", "DDL" }, { 0x00C164, "Cisco Systems, Inc", "CISCO" }, { 0x00C1B1, "Cisco Systems, Inc", "CISCO" }, { 0x00C28F, "Allied Telesis K.K.", "ALLIED-TELESIS-K-K" }, { 0x00C2C6, "Intel Corporate", "INTEL-CORPORATE" }, { 0x00C30A, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x00C343, "E-T-A Circuit Breakers Ltd", "E-T-A-CIRCUIT-BREAKERS" }, { 0x00C3F4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00C52C, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x00C585, "Apple, Inc.", "APPLE" }, { 0x00C5DB, "Datatech Sistemas Digitales Avanzados SL", "DATATECH-SISTEMAS-DIGITALES-AVANZADOS-SL" }, { 0x00C610, "Apple, Inc.", "APPLE" }, { 0x00C711, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x00C88B, "Cisco Systems, Inc", "CISCO" }, { 0x00CAE5, "Cisco Systems, Inc", "CISCO" }, { 0x00CB00, "Private", "PRIVATE" }, { 0x00CB51, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x00CB7A, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x00CBB4, "SHENZHEN ATEKO PHOTOELECTRICITY CO.,LTD", "SHENZHEN-ATEKO-PHOTOELECTRICITY" }, { 0x00CBBD, "Cambridge Broadband Networks Group", "CAMBRIDGE-BROADBAND-NETWORKS-GROUP" }, { 0x00CC34, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x00CC3F, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x00CCFC, "Cisco Systems, Inc", "CISCO" }, { 0x00CD90, "MAS Elektronik AG", "MAS-ELEKTRONIK" }, { 0x00CDFE, "Apple, Inc.", "APPLE" }, { 0x00CE30, "Express LUCK Industrial Ltd.", "EXPRESS-LUCK-INDUSTRIAL" }, { 0x00CF1C, "Communication Machinery Corporation", "COMMUNICATION-MACHINERY" }, { 0x00CFC0, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x00D000, "FERRAN SCIENTIFIC, INC.", "FERRAN-SCIENTIFIC" }, { 0x00D001, "VST TECHNOLOGIES, INC.", "VST-TECHNOLOGIES" }, { 0x00D002, "DITECH CORPORATION", "DITECH" }, { 0x00D003, "COMDA ENTERPRISES CORP.", "COMDA-ENTERPRISES" }, { 0x00D004, "PENTACOM LTD.", "PENTACOM" }, { 0x00D005, "ZHS ZEITMANAGEMENTSYSTEME", "ZHS-ZEITMANAGEMENTSYSTEME" }, { 0x00D006, "Cisco Systems, Inc", "CISCO" }, { 0x00D007, "MIC ASSOCIATES, INC.", "MIC-ASSOCIATES" }, { 0x00D008, "MACTELL CORPORATION", "MACTELL" }, { 0x00D009, "HSING TECH. ENTERPRISE CO. LTD", "HSING-TECH" }, { 0x00D00A, "LANACCESS TELECOM S.A.", "LANACCESS-TELECOM" }, { 0x00D00B, "RHK TECHNOLOGY, INC.", "RHK" }, { 0x00D00C, "SNIJDER MICRO SYSTEMS", "SNIJDER-MICRO" }, { 0x00D00D, "MICROMERITICS INSTRUMENT", "MICROMERITICS-INSTRUMENT" }, { 0x00D00E, "PLURIS, INC.", "PLURIS" }, { 0x00D00F, "SPEECH DESIGN GMBH", "SPEECH-DESIGN" }, { 0x00D010, "CONVERGENT NETWORKS, INC.", "CONVERGENT-NETWORKS" }, { 0x00D011, "PRISM VIDEO, INC.", "PRISM-VIDEO" }, { 0x00D012, "GATEWORKS CORP.", "GATEWORKS" }, { 0x00D013, "PRIMEX AEROSPACE COMPANY", "PRIMEX-AEROSPACE-COMPANY" }, { 0x00D014, "ROOT, INC.", "ROOT" }, { 0x00D015, "UNIVEX MICROTECHNOLOGY CORP.", "UNIVEX-MICROTECHNOLOGY" }, { 0x00D016, "SCM MICROSYSTEMS, INC.", "SCM-MICROSYSTEMS" }, { 0x00D017, "SYNTECH INFORMATION CO., LTD.", "SYNTECH-INFORMATION" }, { 0x00D018, "QWES. COM, INC.", "QWES-COM" }, { 0x00D019, "DAINIPPON SCREEN CORPORATE", "DAINIPPON-SCREEN-CORPORATE" }, { 0x00D01A, "URMET TLC S.P.A.", "URMET-TLC" }, { 0x00D01B, "MIMAKI ENGINEERING CO., LTD.", "MIMAKI-ENGINEERING" }, { 0x00D01C, "SBS TECHNOLOGIES,", "SBS-TECHNOLOGIES" }, { 0x00D01D, "FURUNO ELECTRIC CO., LTD.", "FURUNO-ELECTRIC" }, { 0x00D01E, "PINGTEL CORP.", "PINGTEL" }, { 0x00D01F, "Senetas Corporation Ltd", "SENETAS" }, { 0x00D020, "AIM SYSTEM, INC.", "AIM-SYSTEM" }, { 0x00D021, "REGENT ELECTRONICS CORP.", "REGENT-ELECTRONICS" }, { 0x00D022, "INCREDIBLE TECHNOLOGIES, INC.", "INCREDIBLE-TECHNOLOGIES" }, { 0x00D023, "INFORTREND TECHNOLOGY, INC.", "INFORTREND" }, { 0x00D024, "Cognex Corporation", "COGNEX" }, { 0x00D025, "XROSSTECH, INC.", "XROSSTECH" }, { 0x00D026, "HIRSCHMANN AUSTRIA GMBH", "HIRSCHMANN-AUSTRIA" }, { 0x00D027, "APPLIED AUTOMATION, INC.", "APPLIED-AUTOMATION" }, { 0x00D028, "Harmonic, Inc", "HARMONIC" }, { 0x00D029, "WAKEFERN FOOD CORPORATION", "WAKEFERN-FOOD" }, { 0x00D02A, "Voxent Systems Ltd.", "VOXENT" }, { 0x00D02B, "JETCELL, INC.", "JETCELL" }, { 0x00D02C, "CAMPBELL SCIENTIFIC, INC.", "CAMPBELL-SCIENTIFIC" }, { 0x00D02D, "Resideo", "RESIDEO" }, { 0x00D02E, "COMMUNICATION AUTOMATION CORP.", "COMMUNICATION-AUTOMATION" }, { 0x00D02F, "VLSI TECHNOLOGY INC.", "VLSI" }, { 0x00D030, "Safetran Systems Corp", "SAFETRAN" }, { 0x00D031, "INDUSTRIAL LOGIC CORPORATION", "INDUSTRIAL-LOGIC" }, { 0x00D032, "YANO ELECTRIC CO., LTD.", "YANO-ELECTRIC" }, { 0x00D033, "DALIAN DAXIAN NETWORK", "DALIAN-DAXIAN-NETWORK" }, { 0x00D034, "ORMEC SYSTEMS CORP.", "ORMEC" }, { 0x00D035, "BEHAVIOR TECH. COMPUTER CORP.", "BEHAVIOR-TECH" }, { 0x00D036, "TECHNOLOGY ATLANTA CORP.", "ATLANTA" }, { 0x00D037, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x00D038, "FIVEMERE, LTD.", "FIVEMERE" }, { 0x00D039, "UTILICOM, INC.", "UTILICOM" }, { 0x00D03A, "ZONEWORX, INC.", "ZONEWORX" }, { 0x00D03B, "VISION PRODUCTS PTY. LTD.", "VISION-PRODUCTS-PTY" }, { 0x00D03C, "Vieo, Inc.", "VIEO" }, { 0x00D03D, "GALILEO TECHNOLOGY, LTD.", "GALILEO" }, { 0x00D03E, "ROCKETCHIPS, INC.", "ROCKETCHIPS" }, { 0x00D03F, "AMERICAN COMMUNICATION", "AMERICAN-COMMUNICATION" }, { 0x00D040, "SYSMATE CO., LTD.", "SYSMATE" }, { 0x00D041, "AMIGO TECHNOLOGY CO., LTD.", "AMIGO" }, { 0x00D042, "MAHLO GMBH & CO. UG", "MAHLO-UG" }, { 0x00D043, "ZONAL RETAIL DATA SYSTEMS", "ZONAL-RETAIL-DATA" }, { 0x00D044, "ALIDIAN NETWORKS, INC.", "ALIDIAN-NETWORKS" }, { 0x00D045, "KVASER AB", "KVASER-AB" }, { 0x00D046, "DOLBY LABORATORIES, INC.", "DOLBY-LABORATORIES" }, { 0x00D047, "XN TECHNOLOGIES", "XN-TECHNOLOGIES" }, { 0x00D048, "ECTON, INC.", "ECTON" }, { 0x00D049, "IMPRESSTEK CO., LTD.", "IMPRESSTEK" }, { 0x00D04A, "PRESENCE TECHNOLOGY GMBH", "PRESENCE" }, { 0x00D04B, "LA CIE GROUP S.A.", "LA-CIE-GROUP" }, { 0x00D04C, "Eseye Design Ltd", "ESEYE-DESIGN" }, { 0x00D04D, "DIV OF RESEARCH & STATISTICS", "DIV-OF-RESEARCH-STATISTICS" }, { 0x00D04E, "LOGIBAG", "LOGIBAG" }, { 0x00D04F, "BITRONICS, INC.", "BITRONICS" }, { 0x00D050, "Iskratel d.o.o.", "ISKRATEL-D-O-O" }, { 0x00D051, "O2 MICRO, INC.", "O2-MICRO" }, { 0x00D052, "ASCEND COMMUNICATIONS, INC.", "ASCEND-COMMUNICATION" }, { 0x00D053, "CONNECTED SYSTEMS", "CONNECTED" }, { 0x00D054, "SAS INSTITUTE INC.", "SAS-INSTITUTE" }, { 0x00D055, "KATHREIN-WERKE KG", "KATHREIN-WERKE" }, { 0x00D056, "SOMAT CORPORATION", "SOMAT" }, { 0x00D057, "ULTRAK, INC.", "ULTRAK" }, { 0x00D058, "Cisco Systems, Inc", "CISCO" }, { 0x00D059, "AMBIT MICROSYSTEMS CORP.", "AMBIT-MICROSYSTEMS" }, { 0x00D05A, "SYMBIONICS, LTD.", "SYMBIONICS" }, { 0x00D05B, "ACROLOOP MOTION CONTROL", "ACROLOOP-MOTION-CONTROL" }, { 0x00D05C, "KATHREIN TechnoTrend GmbH", "KATHREIN-TECHNOTREND" }, { 0x00D05D, "INTELLIWORXX, INC.", "INTELLIWORXX" }, { 0x00D05E, "STRATABEAM TECHNOLOGY, INC.", "STRATABEAM" }, { 0x00D05F, "VALCOM, INC.", "VALCOM" }, { 0x00D060, "Panasonic Europe Ltd.", "PANASONIC-EUROPE" }, { 0x00D061, "TREMON ENTERPRISES CO., LTD.", "TREMON-ENTERPRISES" }, { 0x00D062, "DIGIGRAM", "DIGIGRAM" }, { 0x00D063, "Cisco Systems, Inc", "CISCO" }, { 0x00D064, "MULTITEL", "MULTITEL" }, { 0x00D065, "TOKO ELECTRIC", "TOKO-ELECTRIC" }, { 0x00D066, "WINTRISS ENGINEERING CORP.", "WINTRISS-ENGINEERING" }, { 0x00D067, "CAMPIO COMMUNICATIONS", "CAMPIO-COMMUNICATION" }, { 0x00D068, "IWILL CORPORATION", "IWILL" }, { 0x00D069, "TECHNOLOGIC SYSTEMS", "TECHNOLOGIC" }, { 0x00D06A, "LINKUP SYSTEMS CORPORATION", "LINKUP" }, { 0x00D06B, "SR TELECOM INC.", "SR-TELECOM" }, { 0x00D06C, "SHAREWAVE, INC.", "SHAREWAVE" }, { 0x00D06D, "ACRISON, INC.", "ACRISON" }, { 0x00D06E, "TRENDVIEW RECORDERS LTD.", "TRENDVIEW-RECORDERS" }, { 0x00D06F, "KMC CONTROLS", "KMC-CONTROLS" }, { 0x00D070, "LONG WELL ELECTRONICS CORP.", "LONG-WELL-ELECTRONICS" }, { 0x00D071, "ECHELON CORP.", "ECHELON" }, { 0x00D072, "BROADLOGIC", "BROADLOGIC" }, { 0x00D073, "ACN ADVANCED COMMUNICATIONS", "ACN-ADVANCED-COMMUNICATION" }, { 0x00D074, "TAQUA SYSTEMS, INC.", "TAQUA" }, { 0x00D075, "ALARIS MEDICAL SYSTEMS, INC.", "ALARIS-MEDICAL" }, { 0x00D076, "Bank of America", "BANK-OF-AMERICA" }, { 0x00D077, "LUCENT TECHNOLOGIES", "LUCENT-TECHNOLOGIES" }, { 0x00D078, "Eltex of Sweden AB", "ELTEX-OF-SWEDEN-AB" }, { 0x00D079, "Cisco Systems, Inc", "CISCO" }, { 0x00D07A, "AMAQUEST COMPUTER CORP.", "AMAQUEST" }, { 0x00D07B, "COMCAM INTERNATIONAL INC", "COMCAM" }, { 0x00D07C, "JTEKT ELECTRONICS CORPORATION", "JTEKT-ELECTRONICS" }, { 0x00D07D, "COSINE COMMUNICATIONS", "COSINE-COMMUNICATION" }, { 0x00D07E, "KEYCORP LTD.", "KEYCORP" }, { 0x00D07F, "STRATEGY & TECHNOLOGY, LIMITED", "STRATEGY" }, { 0x00D080, "EXABYTE CORPORATION", "EXABYTE" }, { 0x00D081, "RTD Embedded Technologies, Inc.", "RTD-EMBEDDED-TECHNOLOGIES" }, { 0x00D082, "IOWAVE INC.", "IOWAVE" }, { 0x00D083, "INVERTEX, INC.", "INVERTEX" }, { 0x00D084, "NEXCOMM SYSTEMS, INC.", "NEXCOMM" }, { 0x00D085, "OTIS ELEVATOR COMPANY", "OTIS-ELEVATOR-COMPANY" }, { 0x00D086, "FOVEON, INC.", "FOVEON" }, { 0x00D087, "MICROFIRST INC.", "MICROFIRST" }, { 0x00D088, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x00D089, "DYNACOLOR, INC.", "DYNACOLOR" }, { 0x00D08A, "PHOTRON USA", "PHOTRON-USA" }, { 0x00D08B, "ADVA Optical Networking Ltd.", "ADVA-OPTICAL-NETWORKING" }, { 0x00D08C, "GENOA TECHNOLOGY, INC.", "GENOA" }, { 0x00D08D, "PHOENIX GROUP, INC.", "PHOENIX-GROUP" }, { 0x00D08E, "Grass Valley, A Belden Brand", "GRASS-VALLEY-A-BELDEN-BRAND" }, { 0x00D08F, "ARDENT TECHNOLOGIES, INC.", "ARDENT-TECHNOLOGIES" }, { 0x00D090, "Cisco Systems, Inc", "CISCO" }, { 0x00D091, "SMARTSAN SYSTEMS, INC.", "SMARTSAN" }, { 0x00D092, "GLENAYRE WESTERN MULTIPLEX", "GLENAYRE-WESTERN-MULTIPLEX" }, { 0x00D093, "TQ - COMPONENTS GMBH", "TQ-COMPONENTS" }, { 0x00D094, "Seeion Control LLC", "SEEION-CONTROL" }, { 0x00D095, "Alcatel-Lucent Enterprise", "ALCATEL-LUCENT" }, { 0x00D096, "3COM EUROPE LTD", "3COM" }, { 0x00D097, "Cisco Systems, Inc", "CISCO" }, { 0x00D098, "Photon Dynamics Canada Inc.", "PHOTON-DYNAMICS-CANADA" }, { 0x00D099, "Elcard Wireless Systems Oy", "ELCARD-WIRELESS-OY" }, { 0x00D09A, "FILANET CORPORATION", "FILANET" }, { 0x00D09B, "SPECTEL LTD.", "SPECTEL" }, { 0x00D09C, "KAPADIA COMMUNICATIONS", "KAPADIA-COMMUNICATION" }, { 0x00D09D, "VERIS INDUSTRIES", "VERIS-INDUSTRIES" }, { 0x00D09E, "2Wire Inc", "2WIRE" }, { 0x00D09F, "NOVTEK TEST SYSTEMS", "NOVTEK-TEST" }, { 0x00D0A0, "MIPS DENMARK", "MIPS-DENMARK" }, { 0x00D0A1, "OSKAR VIERLING GMBH + CO. KG", "OSKAR-VIERLING" }, { 0x00D0A2, "INTEGRATED DEVICE", "INTEGRATED-DEVICE" }, { 0x00D0A3, "VOCAL DATA, INC.", "VOCAL-DATA" }, { 0x00D0A4, "ALANTRO COMMUNICATIONS", "ALANTRO-COMMUNICATION" }, { 0x00D0A5, "AMERICAN ARIUM", "AMERICAN-ARIUM" }, { 0x00D0A6, "LANBIRD TECHNOLOGY CO., LTD.", "LANBIRD" }, { 0x00D0A7, "TOKYO SOKKI KENKYUJO CO., LTD.", "TOKYO-SOKKI-KENKYUJO" }, { 0x00D0A8, "NETWORK ENGINES, INC.", "NETWORK-ENGINES" }, { 0x00D0A9, "SHINANO KENSHI CO., LTD.", "SHINANO-KENSHI" }, { 0x00D0AA, "CHASE COMMUNICATIONS", "CHASE-COMMUNICATION" }, { 0x00D0AB, "DELTAKABEL TELECOM CV", "DELTAKABEL-TELECOM-CV" }, { 0x00D0AC, "Commscope, Inc", "COMMSCOPE" }, { 0x00D0AD, "TL INDUSTRIES", "TL-INDUSTRIES" }, { 0x00D0AE, "ORESIS COMMUNICATIONS, INC.", "ORESIS-COMMUNICATION" }, { 0x00D0AF, "CUTLER-HAMMER, INC.", "CUTLER-HAMMER" }, { 0x00D0B0, "BITSWITCH LTD.", "BITSWITCH" }, { 0x00D0B1, "OMEGA ELECTRONICS SA", "OMEGA-ELECTRONICS" }, { 0x00D0B2, "Xiotech Corporation", "XIOTECH" }, { 0x00D0B3, "DRS Technologies Canada Ltd", "DRS-TECHNOLOGIES-CANADA" }, { 0x00D0B4, "KATSUJIMA CO., LTD.", "KATSUJIMA" }, { 0x00D0B5, "IPricot formerly DotCom", "IPRICOT-FORMERLY-DOTCOM" }, { 0x00D0B6, "CRESCENT NETWORKS, INC.", "CRESCENT-NETWORKS" }, { 0x00D0B7, "Intel Corporation", "INTEL" }, { 0x00D0B8, "Iomega Corporation", "IOMEGA" }, { 0x00D0B9, "MICROTEK INTERNATIONAL, INC.", "MICROTEK" }, { 0x00D0BA, "Cisco Systems, Inc", "CISCO" }, { 0x00D0BB, "Cisco Systems, Inc", "CISCO" }, { 0x00D0BC, "Cisco Systems, Inc", "CISCO" }, { 0x00D0BD, "Lattice Semiconductor Corp. (LPA)", "LATTICE-SEMICONDUCTOR-LPA" }, { 0x00D0BE, "EMUTEC INC.", "EMUTEC" }, { 0x00D0BF, "PIVOTAL TECHNOLOGIES", "PIVOTAL-TECHNOLOGIES" }, { 0x00D0C0, "Cisco Systems, Inc", "CISCO" }, { 0x00D0C1, "HARMONIC DATA SYSTEMS, LTD.", "HARMONIC-DATA" }, { 0x00D0C2, "BALTHAZAR TECHNOLOGY AB", "BALTHAZAR-AB" }, { 0x00D0C3, "VIVID TECHNOLOGY PTE, LTD.", "VIVID-PTE" }, { 0x00D0C4, "TERATECH CORPORATION", "TERATECH" }, { 0x00D0C5, "COMPUTATIONAL SYSTEMS, INC.", "COMPUTATIONAL" }, { 0x00D0C6, "THOMAS & BETTS CORP.", "THOMAS-BETTS" }, { 0x00D0C7, "PATHWAY, INC.", "PATHWAY" }, { 0x00D0C8, "Prevas A/S", "PREVAS-A/S" }, { 0x00D0C9, "ADVANTECH CO., LTD.", "ADVANTECH" }, { 0x00D0CA, "Intrinsyc Software International Inc.", "INTRINSYC-SOFTWARE" }, { 0x00D0CB, "DASAN CO., LTD.", "DASAN" }, { 0x00D0CC, "TECHNOLOGIES LYRE INC.", "TECHNOLOGIES-LYRE" }, { 0x00D0CD, "ATAN TECHNOLOGY INC.", "ATAN" }, { 0x00D0CE, "iSystem Labs", "ISYSTEM-LABS" }, { 0x00D0CF, "MORETON BAY", "MORETON-BAY" }, { 0x00D0D0, "ZHONGXING TELECOM LTD.", "ZHONGXING-TELECOM" }, { 0x00D0D1, "Sycamore Networks", "SYCAMORE-NETWORKS" }, { 0x00D0D2, "EPILOG CORPORATION", "EPILOG" }, { 0x00D0D3, "Cisco Systems, Inc", "CISCO" }, { 0x00D0D4, "V-BITS, INC.", "V-BITS" }, { 0x00D0D5, "GRUNDIG AG", "GRUNDIG" }, { 0x00D0D6, "AETHRA TELECOMUNICAZIONI", "AETHRA-TELECOMUNICAZIONI" }, { 0x00D0D7, "B2C2, INC.", "B2C2" }, { 0x00D0D8, "3COM", "3COM" }, { 0x00D0D9, "DEDICATED MICROCOMPUTERS", "DEDICATED-MICROCOMPUTERS" }, { 0x00D0DA, "TAICOM DATA SYSTEMS CO., LTD.", "TAICOM-DATA" }, { 0x00D0DB, "MCQUAY INTERNATIONAL", "MCQUAY" }, { 0x00D0DC, "MODULAR MINING SYSTEMS, INC.", "MODULAR-MINING" }, { 0x00D0DD, "SUNRISE TELECOM, INC.", "SUNRISE-TELECOM" }, { 0x00D0DE, "PHILIPS MULTIMEDIA NETWORK", "PHILIPS-MULTIMEDIA-NETWORK" }, { 0x00D0DF, "KUZUMI ELECTRONICS, INC.", "KUZUMI-ELECTRONICS" }, { 0x00D0E0, "DOOIN ELECTRONICS CO.", "DOOIN-ELECTRONICS" }, { 0x00D0E1, "AVIONITEK ISRAEL INC.", "AVIONITEK-ISRAEL" }, { 0x00D0E2, "MRT MICRO, INC.", "MRT-MICRO" }, { 0x00D0E3, "ELE-CHEM ENGINEERING CO., LTD.", "ELE-CHEM-ENGINEERING" }, { 0x00D0E4, "Cisco Systems, Inc", "CISCO" }, { 0x00D0E5, "SOLIDUM SYSTEMS CORP.", "SOLIDUM" }, { 0x00D0E6, "IBOND INC.", "IBOND" }, { 0x00D0E7, "VCON TELECOMMUNICATION LTD.", "VCON-TELECOMMUNICATION" }, { 0x00D0E8, "MAC SYSTEM CO., LTD.", "MAC-SYSTEM" }, { 0x00D0E9, "Advantage Century Telecommunication Corp.", "ADVANTAGE-CENTURY-TELECOMMUNICATION" }, { 0x00D0EA, "NEXTONE COMMUNICATIONS, INC.", "NEXTONE-COMMUNICATION" }, { 0x00D0EB, "LIGHTERA NETWORKS, INC.", "LIGHTERA-NETWORKS" }, { 0x00D0EC, "NAKAYO Inc", "NAKAYO" }, { 0x00D0ED, "XIOX", "XIOX" }, { 0x00D0EE, "DICTAPHONE CORPORATION", "DICTAPHONE" }, { 0x00D0EF, "IGT", "IGT" }, { 0x00D0F0, "CONVISION TECHNOLOGY GMBH", "CONVISION" }, { 0x00D0F1, "SEGA ENTERPRISES, LTD.", "SEGA-ENTERPRISES" }, { 0x00D0F2, "MONTEREY NETWORKS", "MONTEREY-NETWORKS" }, { 0x00D0F3, "SOLARI DI UDINE SPA", "SOLARI-DI-UDINE-SPA" }, { 0x00D0F4, "CARINTHIAN TECH INSTITUTE", "CARINTHIAN-TECH-INSTITUTE" }, { 0x00D0F5, "ORANGE MICRO, INC.", "ORANGE-MICRO" }, { 0x00D0F6, "Nokia", "NOKIA" }, { 0x00D0F7, "NEXT NETS CORPORATION", "NEXT-NETS" }, { 0x00D0F8, "FUJIAN STAR TERMINAL", "FUJIAN-STAR-TERMINAL" }, { 0x00D0F9, "ACUTE COMMUNICATIONS CORP.", "ACUTE-COMMUNICATION" }, { 0x00D0FA, "Thales e-Security Ltd.", "THALES-E-SECURITY" }, { 0x00D0FB, "TEK MICROSYSTEMS, INCORPORATED", "TEK-MICROSYSTEMS-INCORPORATED" }, { 0x00D0FC, "GRANITE MICROSYSTEMS", "GRANITE-MICROSYSTEMS" }, { 0x00D0FD, "OPTIMA TELE.COM, INC.", "OPTIMA-TELE-COM" }, { 0x00D0FE, "ASTRAL POINT", "ASTRAL-POINT" }, { 0x00D0FF, "Cisco Systems, Inc", "CISCO" }, { 0x00D11C, "ACETEL", "ACETEL" }, { 0x00D279, "VINGROUP JOINT STOCK COMPANY", "VINGROUP-JOINT-STOCK-COMPANY" }, { 0x00D2B1, "TPV Display Technology (Xiamen) Co.,Ltd.", "TPV-DISPLAY-XIAMEN" }, { 0x00D318, "SPG Controls", "SPG-CONTROLS" }, { 0x00D38D, "Hotel Technology Next Generation", "HOTEL-NEXT-GENERATION" }, { 0x00D49E, "Intel Corporate", "INTEL-CORPORATE" }, { 0x00D632, "GE Energy", "GE-ENERGY" }, { 0x00D6FE, "Cisco Systems, Inc", "CISCO" }, { 0x00D76D, "Intel Corporate", "INTEL-CORPORATE" }, { 0x00D78F, "Cisco Systems, Inc", "CISCO" }, { 0x00D861, "Micro-Star INTL CO., LTD.", "MICRO-STAR-INTL" }, { 0x00D8A2, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x00D9D1, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x00DA55, "Cisco Systems, Inc", "CISCO" }, { 0x00DB1E, "Albedo Telecom SL", "ALBEDO-TELECOM-SL" }, { 0x00DB45, "THAMWAY CO.,LTD.", "THAMWAY" }, { 0x00DB70, "Apple, Inc.", "APPLE" }, { 0x00DBDF, "Intel Corporate", "INTEL-CORPORATE" }, { 0x00DCB2, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x00DD00, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD01, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD02, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD03, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD04, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD05, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD06, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD07, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD08, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD09, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD0A, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD0B, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD0C, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD0D, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD0E, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD0F, "UNGERMANN-BASS INC.", "UNGERMANN-BASS" }, { 0x00DD25, "Shenzhen hechengdong Technology Co., Ltd", "SHENZHEN-HECHENGDONG" }, { 0x00DDB6, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x00DEFB, "Cisco Systems, Inc", "CISCO" }, { 0x00DF1D, "Cisco Systems, Inc", "CISCO" }, { 0x00E000, "FUJITSU LIMITED", "FUJITSU" }, { 0x00E001, "STRAND LIGHTING LIMITED", "STRAND-LIGHTING" }, { 0x00E002, "CROSSROADS SYSTEMS, INC.", "CROSSROADS" }, { 0x00E003, "NOKIA WIRELESS BUSINESS COMMUN", "NOKIA-WIRELESS-BUSINESS-COMMUN" }, { 0x00E004, "PMC-SIERRA, INC.", "PMC-SIERRA" }, { 0x00E005, "TECHNICAL CORP.", "TECHNICAL" }, { 0x00E006, "SILICON INTEGRATED SYS. CORP.", "SILICON-INTEGRATED-SYS" }, { 0x00E007, "Avaya ECS Ltd", "AVAYA-ECS" }, { 0x00E008, "AMAZING CONTROLS! INC.", "AMAZING-CONTROLS!" }, { 0x00E009, "Stratus Technologies", "STRATUS-TECHNOLOGIES" }, { 0x00E00A, "DIBA, INC.", "DIBA" }, { 0x00E00B, "ROOFTOP COMMUNICATIONS CORP.", "ROOFTOP-COMMUNICATION" }, { 0x00E00C, "MOTOROLA", "MOTOROLA" }, { 0x00E00D, "RADIANT SYSTEMS", "RADIANT" }, { 0x00E00E, "AVALON IMAGING SYSTEMS, INC.", "AVALON-IMAGING" }, { 0x00E00F, "Shanghai Baud Data Communication Co.,Ltd.", "SHANGHAI-BAUD-DATA-COMMUNICATION" }, { 0x00E010, "HESS SB-AUTOMATENBAU GmbH", "HESS-SB-AUTOMATENBAU" }, { 0x00E011, "UNIDEN CORPORATION", "UNIDEN" }, { 0x00E012, "PLUTO TECHNOLOGIES INTERNATIONAL INC.", "PLUTO-TECHNOLOGIES" }, { 0x00E013, "EASTERN ELECTRONIC CO., LTD.", "EASTERN" }, { 0x00E014, "Cisco Systems, Inc", "CISCO" }, { 0x00E015, "HEIWA CORPORATION", "HEIWA" }, { 0x00E016, "RAPID CITY COMMUNICATIONS", "RAPID-CITY-COMMUNICATION" }, { 0x00E017, "EXXACT GmbH", "EXXACT" }, { 0x00E018, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x00E019, "ING. GIORDANO ELETTRONICA", "ING-GIORDANO-ELETTRONICA" }, { 0x00E01A, "COMTEC SYSTEMS. CO., LTD.", "COMTEC" }, { 0x00E01B, "SPHERE COMMUNICATIONS, INC.", "SPHERE-COMMUNICATION" }, { 0x00E01C, "CradlePoint, Inc", "CRADLEPOINT" }, { 0x00E01D, "WebTV NETWORKS, INC.", "WEBTV-NETWORKS" }, { 0x00E01E, "Cisco Systems, Inc", "CISCO" }, { 0x00E01F, "AVIDIA Systems, Inc.", "AVIDIA" }, { 0x00E020, "TECNOMEN OY", "TECNOMEN-OY" }, { 0x00E021, "FREEGATE CORP.", "FREEGATE" }, { 0x00E022, "Analog Devices, Inc.", "ANALOG-DEVICES" }, { 0x00E023, "TELRAD", "TELRAD" }, { 0x00E024, "GADZOOX NETWORKS", "GADZOOX-NETWORKS" }, { 0x00E025, "dit Co., Ltd.", "DIT" }, { 0x00E026, "Redlake MASD LLC", "REDLAKE-MASD" }, { 0x00E027, "DUX, INC.", "DUX" }, { 0x00E028, "APTIX CORPORATION", "APTIX" }, { 0x00E029, "STANDARD MICROSYSTEMS CORP.", "STANDARD-MICROSYSTEMS" }, { 0x00E02A, "TANDBERG TELEVISION AS", "TANDBERG-TELEVISION-AS" }, { 0x00E02B, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x00E02C, "AST COMPUTER", "AST" }, { 0x00E02D, "InnoMediaLogic, Inc.", "INNOMEDIALOGIC" }, { 0x00E02E, "SPC ELECTRONICS CORPORATION", "SPC-ELECTRONICS" }, { 0x00E02F, "MCNS HOLDINGS, L.P.", "MCNS-HOLDINGS-L-P" }, { 0x00E030, "MELITA INTERNATIONAL CORP.", "MELITA" }, { 0x00E031, "HAGIWARA ELECTRIC CO., LTD.", "HAGIWARA-ELECTRIC" }, { 0x00E032, "MISYS FINANCIAL SYSTEMS, LTD.", "MISYS-FINANCIAL" }, { 0x00E033, "E.E.P.D. GmbH", "E-E-P-D" }, { 0x00E034, "Cisco Systems, Inc", "CISCO" }, { 0x00E035, "Artesyn Embedded Technologies", "ARTESYN-EMBEDDED-TECHNOLOGIES" }, { 0x00E036, "PIONEER CORPORATION", "PIONEER" }, { 0x00E037, "CENTURY CORPORATION", "CENTURY" }, { 0x00E038, "PROXIMA CORPORATION", "PROXIMA" }, { 0x00E039, "PARADYNE CORP.", "PARADYNE" }, { 0x00E03A, "Cabletron Systems, Inc.", "CABLETRON" }, { 0x00E03B, "PROMINET CORPORATION", "PROMINET" }, { 0x00E03C, "AdvanSys", "ADVANSYS" }, { 0x00E03D, "FOCON ELECTRONIC SYSTEMS A/S", "FOCON-A/S" }, { 0x00E03E, "ALFATECH, INC.", "ALFATECH" }, { 0x00E03F, "JATON CORPORATION", "JATON" }, { 0x00E040, "DeskStation Technology, Inc.", "DESKSTATION" }, { 0x00E041, "CSPI", "CSPI" }, { 0x00E042, "Pacom Systems Ltd.", "PACOM" }, { 0x00E043, "VitalCom", "VITALCOM" }, { 0x00E044, "LSICS CORPORATION", "LSICS" }, { 0x00E045, "TOUCHWAVE, INC.", "TOUCHWAVE" }, { 0x00E046, "BENTLY NEVADA CORP.", "BENTLY-NEVADA" }, { 0x00E047, "InFocus Corporation", "INFOCUS" }, { 0x00E048, "SDL COMMUNICATIONS, INC.", "SDL-COMMUNICATION" }, { 0x00E049, "MICROWI ELECTRONIC GmbH", "MICROWI" }, { 0x00E04A, "ZX Technologies, Inc", "ZX-TECHNOLOGIES" }, { 0x00E04B, "JUMP INDUSTRIELLE COMPUTERTECHNIK GmbH", "JUMP-INDUSTRIELLE-COMPUTERTECHNIK" }, { 0x00E04C, "REALTEK SEMICONDUCTOR CORP.", "REALTEK-SEMICONDUCTOR" }, { 0x00E04D, "INTERNET INITIATIVE JAPAN, INC", "INTERNET-INITIATIVE-JAPAN" }, { 0x00E04E, "SANYO DENKI CO., LTD.", "SANYO-DENKI" }, { 0x00E04F, "Cisco Systems, Inc", "CISCO" }, { 0x00E050, "EXECUTONE INFORMATION SYSTEMS, INC.", "EXECUTONE-INFORMATION" }, { 0x00E051, "TALX CORPORATION", "TALX" }, { 0x00E052, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x00E053, "CELLPORT LABS, INC.", "CELLPORT-LABS" }, { 0x00E054, "KODAI HITEC CO., LTD.", "KODAI-HITEC" }, { 0x00E055, "INGENIERIA ELECTRONICA COMERCIAL INELCOM S.A.", "INGENIERIA-ELECTRONICA-COMERCIAL-INELCOM" }, { 0x00E056, "HOLONTECH CORPORATION", "HOLONTECH" }, { 0x00E057, "HAN MICROTELECOM. CO., LTD.", "HAN-MICROTELECOM" }, { 0x00E058, "PHASE ONE DENMARK A/S", "PHASE-ONE-DENMARK-A/S" }, { 0x00E059, "CONTROLLED ENVIRONMENTS, LTD.", "CONTROLLED-ENVIRONMENTS" }, { 0x00E05A, "GALEA NETWORK SECURITY", "GALEA-NETWORK-SECURITY" }, { 0x00E05B, "WEST END SYSTEMS CORP.", "WEST-END" }, { 0x00E05C, "PHC Corporation", "PHC" }, { 0x00E05D, "UNITEC CO., LTD.", "UNITEC" }, { 0x00E05E, "JAPAN AVIATION ELECTRONICS INDUSTRY, LTD.", "JAPAN-AVIATION-ELECTRONICS-INDUSTRY" }, { 0x00E05F, "e-Net, Inc.", "E-NET" }, { 0x00E060, "SHERWOOD", "SHERWOOD" }, { 0x00E061, "EdgePoint Networks, Inc.", "EDGEPOINT-NETWORKS" }, { 0x00E062, "HOST ENGINEERING", "HOST-ENGINEERING" }, { 0x00E063, "Cabletron Systems, Inc.", "CABLETRON" }, { 0x00E064, "SAMSUNG ELECTRONICS", "SAMSUNG-ELECTRONICS" }, { 0x00E065, "OPTICAL ACCESS INTERNATIONAL", "OPTICAL-ACCESS" }, { 0x00E066, "ProMax Systems, Inc.", "PROMAX" }, { 0x00E067, "eac AUTOMATION-CONSULTING GmbH", "EAC-AUTOMATION-CONSULTING" }, { 0x00E068, "MERRIMAC SYSTEMS INC.", "MERRIMAC" }, { 0x00E069, "JAYCOR", "JAYCOR" }, { 0x00E06A, "KAPSCH AG", "KAPSCH" }, { 0x00E06B, "W&G SPECIAL PRODUCTS", "W-G-SPECIAL-PRODUCTS" }, { 0x00E06C, "Ultra Electronics Command & Control Systems", "ULTRA-ELECTRONICS-COMMAND-CONTROL" }, { 0x00E06D, "COMPUWARE CORPORATION", "COMPUWARE" }, { 0x00E06E, "FAR SYSTEMS S.p.A.", "FAR" }, { 0x00E06F, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x00E070, "DH TECHNOLOGY", "DH" }, { 0x00E071, "EPIS MICROCOMPUTER", "EPIS-MICROCOMPUTER" }, { 0x00E072, "LYNK", "LYNK" }, { 0x00E073, "NATIONAL AMUSEMENT NETWORK, INC.", "NATIONAL-AMUSEMENT-NETWORK" }, { 0x00E074, "TIERNAN COMMUNICATIONS, INC.", "TIERNAN-COMMUNICATION" }, { 0x00E075, "Verilink Corporation", "VERILINK" }, { 0x00E076, "DEVELOPMENT CONCEPTS, INC.", "DEVELOPMENT-CONCEPTS" }, { 0x00E077, "WEBGEAR, INC.", "WEBGEAR" }, { 0x00E078, "BERKELEY NETWORKS", "BERKELEY-NETWORKS" }, { 0x00E079, "A.T.N.R.", "A-T-N-R" }, { 0x00E07A, "MIKRODIDAKT AB", "MIKRODIDAKT-AB" }, { 0x00E07B, "BAY NETWORKS", "BAY-NETWORKS" }, { 0x00E07C, "METTLER-TOLEDO, INC.", "METTLER-TOLEDO" }, { 0x00E07D, "NETRONIX, INC.", "NETRONIX" }, { 0x00E07E, "WALT DISNEY IMAGINEERING", "WALT-DISNEY-IMAGINEERING" }, { 0x00E07F, "LOGISTISTEM s.r.l.", "LOGISTISTEM" }, { 0x00E080, "CONTROL RESOURCES CORPORATION", "CONTROL-RESOURCES" }, { 0x00E081, "TYAN COMPUTER CORP.", "TYAN" }, { 0x00E082, "ANERMA", "ANERMA" }, { 0x00E083, "JATO TECHNOLOGIES, INC.", "JATO-TECHNOLOGIES" }, { 0x00E084, "COMPULITE R&D", "COMPULITE-R-D" }, { 0x00E085, "GLOBAL MAINTECH, INC.", "GLOBAL-MAINTECH" }, { 0x00E086, "Emerson Network Power, Avocent Division", "EMERSON-NETWORK-POWER-AVOCENT-DIVISION" }, { 0x00E087, "LeCroy - Networking Productions Division", "LECROY-NETWORKING-PRODUCTIONS-DIVISION" }, { 0x00E088, "LTX-Credence CORPORATION", "LTX-CREDENCE" }, { 0x00E089, "ION Networks, Inc.", "ION-NETWORKS" }, { 0x00E08A, "GEC AVERY, LTD.", "GEC-AVERY" }, { 0x00E08B, "QLogic Corporation", "QLOGIC" }, { 0x00E08C, "NEOPARADIGM LABS, INC.", "NEOPARADIGM-LABS" }, { 0x00E08D, "PRESSURE SYSTEMS, INC.", "PRESSURE" }, { 0x00E08E, "UTSTARCOM", "UTSTARCOM" }, { 0x00E08F, "Cisco Systems, Inc", "CISCO" }, { 0x00E090, "BECKMAN LAB. AUTOMATION DIV.", "BECKMAN-LAB-AUTOMATION-DIV" }, { 0x00E091, "LG Electronics", "LG-ELECTRONICS" }, { 0x00E092, "ADMTEK INCORPORATED", "ADMTEK-INCORPORATED" }, { 0x00E093, "ACKFIN NETWORKS", "ACKFIN-NETWORKS" }, { 0x00E094, "OSAI SRL", "OSAI-SRL" }, { 0x00E095, "ADVANCED-VISION TECHNOLGIES CORP.", "ADVANCED-VISION-TECHNOLGIES" }, { 0x00E096, "SHIMADZU CORPORATION", "SHIMADZU" }, { 0x00E097, "CARRIER ACCESS CORPORATION", "CARRIER-ACCESS" }, { 0x00E098, "AboCom", "ABOCOM" }, { 0x00E099, "SAMSON AG", "SAMSON" }, { 0x00E09A, "Positron Inc.", "POSITRON" }, { 0x00E09B, "ENGAGE NETWORKS, INC.", "ENGAGE-NETWORKS" }, { 0x00E09C, "MII", "MII" }, { 0x00E09D, "SARNOFF CORPORATION", "SARNOFF" }, { 0x00E09E, "Quantum Corporation", "QUANTUM" }, { 0x00E09F, "PIXEL VISION", "PIXEL-VISION" }, { 0x00E0A0, "WILTRON CO.", "WILTRON" }, { 0x00E0A1, "HIMA PAUL HILDEBRANDT GmbH Co. KG", "HIMA-PAUL-HILDEBRANDT" }, { 0x00E0A2, "MICROSLATE INC.", "MICROSLATE" }, { 0x00E0A3, "Cisco Systems, Inc", "CISCO" }, { 0x00E0A4, "ESAOTE S.p.A.", "ESAOTE" }, { 0x00E0A5, "ComCore Semiconductor, Inc.", "COMCORE-SEMICONDUCTOR" }, { 0x00E0A6, "TELOGY NETWORKS, INC.", "TELOGY-NETWORKS" }, { 0x00E0A7, "IPC INFORMATION SYSTEMS, INC.", "IPC-INFORMATION" }, { 0x00E0A8, "SAT GmbH & Co.", "SAT" }, { 0x00E0A9, "FUNAI ELECTRIC CO., LTD.", "FUNAI-ELECTRIC" }, { 0x00E0AA, "ELECTROSONIC LTD.", "ELECTROSONIC" }, { 0x00E0AB, "DIMAT S.A.", "DIMAT" }, { 0x00E0AC, "MIDSCO, INC.", "MIDSCO" }, { 0x00E0AD, "EES TECHNOLOGY, LTD.", "EES" }, { 0x00E0AE, "XAQTI CORPORATION", "XAQTI" }, { 0x00E0AF, "GENERAL DYNAMICS INFORMATION SYSTEMS", "GENERAL-DYNAMICS-INFORMATION" }, { 0x00E0B0, "Cisco Systems, Inc", "CISCO" }, { 0x00E0B1, "Alcatel-Lucent Enterprise", "ALCATEL-LUCENT" }, { 0x00E0B2, "TELMAX COMMUNICATIONS CORP.", "TELMAX-COMMUNICATION" }, { 0x00E0B3, "EtherWAN Systems, Inc.", "ETHERWAN" }, { 0x00E0B4, "TECHNO SCOPE CO., LTD.", "TECHNO-SCOPE" }, { 0x00E0B5, "ARDENT COMMUNICATIONS CORP.", "ARDENT-COMMUNICATION" }, { 0x00E0B6, "Entrada Networks", "ENTRADA-NETWORKS" }, { 0x00E0B7, "Cosworth Electronics Ltd", "COSWORTH-ELECTRONICS" }, { 0x00E0B8, "GATEWAY 2000", "GATEWAY-2000" }, { 0x00E0B9, "BYAS SYSTEMS", "BYAS" }, { 0x00E0BA, "BERGHOF AUTOMATIONSTECHNIK GmbH", "BERGHOF-AUTOMATIONSTECHNIK" }, { 0x00E0BB, "NBX CORPORATION", "NBX" }, { 0x00E0BC, "SYMON COMMUNICATIONS, INC.", "SYMON-COMMUNICATION" }, { 0x00E0BD, "INTERFACE SYSTEMS, INC.", "INTERFACE" }, { 0x00E0BE, "GENROCO INTERNATIONAL, INC.", "GENROCO" }, { 0x00E0BF, "TORRENT NETWORKING TECHNOLOGIES CORP.", "TORRENT-NETWORKING-TECHNOLOGIES" }, { 0x00E0C0, "SEIWA ELECTRIC MFG. CO., LTD.", "SEIWA-ELECTRIC-MFG" }, { 0x00E0C1, "MEMOREX TELEX JAPAN, LTD.", "MEMOREX-TELEX-JAPAN" }, { 0x00E0C2, "NECSY S.p.A.", "NECSY" }, { 0x00E0C3, "SAKAI SYSTEM DEVELOPMENT CORP.", "SAKAI-SYSTEM-DEVELOPMENT" }, { 0x00E0C4, "HORNER ELECTRIC, INC.", "HORNER-ELECTRIC" }, { 0x00E0C5, "BCOM ELECTRONICS INC.", "BCOM-ELECTRONICS" }, { 0x00E0C6, "LINK2IT, L.L.C.", "LINK2IT-L-L-C" }, { 0x00E0C7, "EUROTECH SRL", "EUROTECH-SRL" }, { 0x00E0C8, "VIRTUAL ACCESS, LTD.", "VIRTUAL-ACCESS" }, { 0x00E0C9, "AutomatedLogic Corporation", "AUTOMATEDLOGIC" }, { 0x00E0CA, "BEST DATA PRODUCTS", "BEST-DATA-PRODUCTS" }, { 0x00E0CB, "RESON, INC.", "RESON" }, { 0x00E0CC, "HERO SYSTEMS, LTD.", "HERO" }, { 0x00E0CD, "SAAB SENSIS CORPORATION", "SAAB-SENSIS" }, { 0x00E0CE, "ARN", "ARN" }, { 0x00E0CF, "INTEGRATED DEVICE", "INTEGRATED-DEVICE" }, { 0x00E0D0, "NETSPEED, INC.", "NETSPEED" }, { 0x00E0D1, "TELSIS LIMITED", "TELSIS" }, { 0x00E0D2, "VERSANET COMMUNICATIONS, INC.", "VERSANET-COMMUNICATION" }, { 0x00E0D3, "DATENTECHNIK GmbH", "DATENTECHNIK" }, { 0x00E0D4, "EXCELLENT COMPUTER", "EXCELLENT" }, { 0x00E0D5, "Emulex Corporation", "EMULEX" }, { 0x00E0D6, "COMPUTER & COMMUNICATION RESEARCH LAB.", "COMMUNICATION-RESEARCH-LAB" }, { 0x00E0D7, "SUNSHINE ELECTRONICS, INC.", "SUNSHINE-ELECTRONICS" }, { 0x00E0D8, "LANBit Computer, Inc.", "LANBIT" }, { 0x00E0D9, "TAZMO CO., LTD.", "TAZMO" }, { 0x00E0DA, "Alcatel-Lucent Enterprise", "ALCATEL-LUCENT" }, { 0x00E0DB, "ViaVideo Communications, Inc.", "VIAVIDEO-COMMUNICATION" }, { 0x00E0DC, "NEXWARE CORP.", "NEXWARE" }, { 0x00E0DD, "Zenith Electronics Corporation", "ZENITH-ELECTRONICS" }, { 0x00E0DE, "DATAX NV", "DATAX-NV" }, { 0x00E0DF, "DZS Inc.", "DZS" }, { 0x00E0E0, "SI ELECTRONICS, LTD.", "SI-ELECTRONICS" }, { 0x00E0E1, "G2 NETWORKS, INC.", "G2-NETWORKS" }, { 0x00E0E2, "INNOVA CORP.", "INNOVA" }, { 0x00E0E3, "SK-ELEKTRONIK GMBH", "SK-ELEKTRONIK" }, { 0x00E0E4, "FANUC ROBOTICS NORTH AMERICA, Inc.", "FANUC-ROBOTICS-NORTH-AMERICA" }, { 0x00E0E5, "CINCO NETWORKS, INC.", "CINCO-NETWORKS" }, { 0x00E0E6, "INCAA Computers", "INCAA-COMPUTERS" }, { 0x00E0E7, "RAYTHEON E-SYSTEMS, INC.", "RAYTHEON-E" }, { 0x00E0E8, "GRETACODER Data Systems AG", "GRETACODER-DATA" }, { 0x00E0E9, "DATA LABS, INC.", "DATA-LABS" }, { 0x00E0EA, "INNOVAT COMMUNICATIONS, INC.", "INNOVAT-COMMUNICATION" }, { 0x00E0EB, "DIGICOM SYSTEMS, INCORPORATED", "DIGICOM-INCORPORATED" }, { 0x00E0EC, "CELESTICA INC.", "CELESTICA" }, { 0x00E0ED, "SILICOM, LTD.", "SILICOM" }, { 0x00E0EE, "MAREL HF", "MAREL-HF" }, { 0x00E0EF, "DIONEX", "DIONEX" }, { 0x00E0F0, "ABLER TECHNOLOGY, INC.", "ABLER" }, { 0x00E0F1, "THAT CORPORATION", "THAT" }, { 0x00E0F2, "ARLOTTO COMNET, INC.", "ARLOTTO-COMNET" }, { 0x00E0F3, "WebSprint Communications, Inc.", "WEBSPRINT-COMMUNICATION" }, { 0x00E0F4, "INSIDE Technology A/S", "INSIDE-A/S" }, { 0x00E0F5, "TELES AG", "TELES" }, { 0x00E0F6, "DECISION EUROPE", "DECISION-EUROPE" }, { 0x00E0F7, "Cisco Systems, Inc", "CISCO" }, { 0x00E0F8, "DICNA CONTROL AB", "DICNA-CONTROL-AB" }, { 0x00E0F9, "Cisco Systems, Inc", "CISCO" }, { 0x00E0FA, "TRL TECHNOLOGY, LTD.", "TRL" }, { 0x00E0FB, "LEIGHTRONIX, INC.", "LEIGHTRONIX" }, { 0x00E0FC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x00E0FD, "A-TREND TECHNOLOGY CO., LTD.", "A-TREND" }, { 0x00E0FE, "Cisco Systems, Inc", "CISCO" }, { 0x00E0FF, "SECURITY DYNAMICS TECHNOLOGIES, Inc.", "SECURITY-DYNAMICS-TECHNOLOGIES" }, { 0x00E16D, "Cisco Systems, Inc", "CISCO" }, { 0x00E175, "AK-Systems Ltd", "AK" }, { 0x00E18C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x00E22C, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x00E3B2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00E400, "Sichuan Changhong Electric Ltd.", "SICHUAN-CHANGHONG-ELECTRIC" }, { 0x00E406, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x00E421, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x00E5E4, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x00E5F1, "BUFFALO.INC", "BUFFALO" }, { 0x00E60E, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x00E63A, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x00E666, "ARIMA Communications Corp.", "ARIMA-COMMUNICATION" }, { 0x00E6D3, "NIXDORF COMPUTER CORP.", "NIXDORF" }, { 0x00E6E8, "Netzin Technology Corporation,.Ltd.", "NETZIN" }, { 0x00E7E3, "zte corporation", "ZTE" }, { 0x00E8AB, "Meggitt Training Systems, Inc.", "MEGGITT-TRAINING" }, { 0x00E93A, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x00EABD, "Cisco Systems, Inc", "CISCO" }, { 0x00EB2D, "Sony Corporation", "SONY" }, { 0x00EBD5, "Cisco Systems, Inc", "CISCO" }, { 0x00EBD8, "MERCUSYS TECHNOLOGIES CO., LTD.", "MERCUSYS-TECHNOLOGIES" }, { 0x00EC0A, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x00EDB8, "KYOCERA Corporation", "KYOCERA" }, { 0x00EE01, "Enablers Solucoes e Consultoria em Dispositivos", "ENABLERS-SOLUCOES-E-CONSULTORIA-EM-DISPOSITIVOS" }, { 0x00EEAB, "Cisco Systems, Inc", "CISCO" }, { 0x00EEBD, "HTC Corporation", "HTC" }, { 0x00F051, "KWB Gmbh", "KWB" }, { 0x00F22C, "Shanghai B-star Technology Co.,Ltd.", "SHANGHAI-B-STAR" }, { 0x00F28B, "Cisco Systems, Inc", "CISCO" }, { 0x00F361, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x00F39F, "Apple, Inc.", "APPLE" }, { 0x00F3DB, "WOO Sports", "WOO-SPORTS" }, { 0x00F403, "Orbis Systems Oy", "ORBIS-OY" }, { 0x00F46F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00F48D, "Liteon Technology Corporation", "LITEON" }, { 0x00F4B9, "Apple, Inc.", "APPLE" }, { 0x00F620, "Google, Inc.", "GOOGLE" }, { 0x00F663, "Cisco Systems, Inc", "CISCO" }, { 0x00F76F, "Apple, Inc.", "APPLE" }, { 0x00F81C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x00F82C, "Cisco Systems, Inc", "CISCO" }, { 0x00F860, "PT. Panggung Electric Citrabuana", "PT-PANGGUNG-ELECTRIC-CITRABUANA" }, { 0x00F871, "Demant A/S", "DEMANT-A/S" }, { 0x00FA21, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x00FA3B, "CLOOS ELECTRONIC GMBH", "CLOOS" }, { 0x00FAB6, "Kontakt Micro-Location Sp z o.o.", "KONTAKT-MICRO-LOCATION-SP-Z-O-O" }, { 0x00FBF9, "Axiado Corporation", "AXIADO" }, { 0x00FC58, "WebSilicon Ltd.", "WEBSILICON" }, { 0x00FC70, "Intrepid Control Systems, Inc.", "INTREPID-CONTROL" }, { 0x00FC8B, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x00FC8D, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x00FCBA, "Cisco Systems, Inc", "CISCO" }, { 0x00FD22, "Cisco Systems, Inc", "CISCO" }, { 0x00FD45, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x00FD4C, "NEVATEC", "NEVATEC" }, { 0x00FEC8, "Cisco Systems, Inc", "CISCO" }, { 0x020701, "RACAL-DATACOM", "RACAL-DATACOM" }, { 0x021C7C, "PERQ SYSTEMS CORPORATION", "PERQ" }, { 0x026086, "LOGIC REPLACEMENT TECH. LTD.", "LOGIC-REPLACEMENT-TECH" }, { 0x02608C, "3COM", "3COM" }, { 0x027001, "RACAL-DATACOM", "RACAL-DATACOM" }, { 0x0270B0, "M/A-COM INC. COMPANIES", "M/A-COM-COMPANIES" }, { 0x0270B3, "DATA RECALL LTD.", "DATA-RECALL" }, { 0x029D8E, "CARDIAC RECORDERS, INC.", "CARDIAC-RECORDERS" }, { 0x02AA3C, "OLIVETTI TELECOMM SPA (OLTECO)", "OLIVETTI-TELECOMM-SPA-OLTECO" }, { 0x02BB01, "OCTOTHORPE CORP.", "OCTOTHORPE" }, { 0x02C08C, "3COM", "3COM" }, { 0x02CF1C, "Communication Machinery Corporation", "COMMUNICATION-MACHINERY" }, { 0x02E6D3, "NIXDORF COMPUTER CORP.", "NIXDORF" }, { 0x040067, "Stanley Black & Decker", "STANLEY-BLACK-DECKER" }, { 0x04021F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0402CA, "Shenzhen Vtsonic Co.,ltd", "SHENZHEN-VTSONIC" }, { 0x040312, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x0403D6, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x0404B8, "China Hualu Panasonic AVC Networks Co., LTD.", "CHINA-HUALU-PANASONIC-AVC-NETWORKS" }, { 0x0404EA, "Valens Semiconductor Ltd.", "VALENS-SEMICONDUCTOR" }, { 0x0405DD, "Shenzhen Cultraview Digital Technology Co., Ltd", "SHENZHEN-CULTRAVIEW-DIGITAL" }, { 0x04072E, "VTech Electronics Ltd.", "VTECH-ELECTRONICS" }, { 0x040973, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x040986, "Arcadyan Corporation", "ARCADYAN" }, { 0x0409A5, "HFR, Inc.", "HFR" }, { 0x040A83, "Alcatel-Lucent", "ALCATEL-LUCENT" }, { 0x040AE0, "XMIT AG COMPUTER NETWORKS", "XMIT-NETWORKS" }, { 0x040CCE, "Apple, Inc.", "APPLE" }, { 0x040D84, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x040E3C, "HP Inc.", "HP" }, { 0x040EC2, "ViewSonic Mobile China Limited", "VIEWSONIC-MOBILE-CHINA" }, { 0x04106B, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x041119, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x041552, "Apple, Inc.", "APPLE" }, { 0x0415D9, "Viwone", "VIWONE" }, { 0x0417B6, "Smart Innovation LLC", "SMART-INNOVATION" }, { 0x04180F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x041892, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0418B6, "Private", "PRIVATE" }, { 0x0418D6, "Ubiquiti Inc", "UBIQUITI" }, { 0x04197F, "Grasphere Japan", "GRASPHERE-JAPAN" }, { 0x041A04, "WaveIP", "WAVEIP" }, { 0x041B6D, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x041B94, "Host Mobility AB", "HOST-MOBILITY-AB" }, { 0x041BBA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x041D10, "Dream Ware Inc.", "DREAM-WARE" }, { 0x041DC7, "zte corporation", "ZTE" }, { 0x041E64, "Apple, Inc.", "APPLE" }, { 0x041E7A, "DSPWorks", "DSPWORKS" }, { 0x041EFA, "BISSELL Homecare, Inc.", "BISSELL-HOMECARE" }, { 0x042084, "zte corporation", "ZTE" }, { 0x04209A, "Panasonic Corporation AVC Networks Company", "PANASONIC-AVC-NETWORKS-COMPANY" }, { 0x042144, "Sunitec Enterprise Co.,Ltd", "SUNITEC" }, { 0x04214C, "Insight Energy Ventures LLC", "INSIGHT-ENERGY-VENTURES" }, { 0x042234, "Wireless Standard Extensions", "WIRELESS-STANDARD-EXTENSIONS" }, { 0x0425C5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0425E0, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x0425F0, "Nokia", "NOKIA" }, { 0x042605, "Bosch Building Automation GmbH", "BOSCH-BUILDING-AUTOMATION" }, { 0x042665, "Apple, Inc.", "APPLE" }, { 0x042728, "Microsoft Corporation", "MICROSOFT" }, { 0x042758, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x04292E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x042AE2, "Cisco Systems, Inc", "CISCO" }, { 0x042B58, "Shenzhen Hanzsung Technology Co.,Ltd", "SHENZHEN-HANZSUNG" }, { 0x042BBB, "PicoCELA, Inc.", "PICOCELA" }, { 0x042DB4, "First Property (Beijing) Co., Ltd Modern MOMA Branch", "FIRST-PROPERTY-BEIJING-MODERN-MOMA-BRANCH" }, { 0x042F56, "ATOCS (Shenzhen) LTD", "ATOCS-SHENZHEN" }, { 0x043110, "Inspur Group Co., Ltd.", "INSPUR-GROUP" }, { 0x043201, "Broadcom Limited", "BROADCOM" }, { 0x0432F4, "Partron", "PARTRON" }, { 0x04331F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x043385, "Nanchang BlackShark Co.,Ltd.", "NANCHANG-BLACKSHARK" }, { 0x043389, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0433C2, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0434F6, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0x043604, "Gyeyoung I&T", "GYEYOUNG-I-T" }, { 0x0436B8, "I&C Technology", "I-C" }, { 0x043855, "SCOPUS INTERNATIONAL-BELGIUM", "SCOPUS-BELGIUM" }, { 0x0438DC, "China Unicom Online Information Technology Co.,Ltd", "CHINA-UNICOM-ONLINE-INFORMATION" }, { 0x043926, "China Dragon Technology Limited", "CHINA-DRAGON" }, { 0x043A0D, "SM Optics S.r.l.", "SM-OPTICS" }, { 0x043CE8, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x043D98, "ChongQing QingJia Electronics CO.,LTD", "CHONGQING-QINGJIA-ELECTRONICS" }, { 0x043F72, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0x0440A9, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x044169, "GoPro", "GOPRO" }, { 0x04421A, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x0443FD, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x0444A1, "TELECON GALICIA,S.A.", "TELECON-GALICIA" }, { 0x044562, "ANDRA Sp. z o. o.", "ANDRA-SP-Z-O-O" }, { 0x0445A1, "NIRIT- Xinwei Telecom Technology Co., Ltd.", "NIRIT-XINWEI-TELECOM" }, { 0x044665, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x0446CF, "Beijing Venustech Cybervision Co.,Ltd.", "BEIJING-VENUSTECH-CYBERVISION" }, { 0x04472A, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x04489A, "Apple, Inc.", "APPLE" }, { 0x04495D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x044A50, "Ramaxel Technology (Shenzhen) limited company", "RAMAXEL-SHENZHEN-COMPANY" }, { 0x044A6A, "niliwi nanjing big data Co,.Ltd", "NILIWI-NANJING-BIG-DATA" }, { 0x044A6C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x044AC6, "Aipon Electronics Co., Ltd", "AIPON-ELECTRONICS" }, { 0x044BA5, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x044BED, "Apple, Inc.", "APPLE" }, { 0x044BFF, "GuangZhou Hedy Digital Technology Co., Ltd", "GUANGZHOU-HEDY-DIGITAL" }, { 0x044CEF, "Fujian Sanao Technology Co.,Ltd", "FUJIAN-SANAO" }, { 0x044E06, "Ericsson AB", "ERICSSON-AB" }, { 0x044E5A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x044EAF, "LG Innotek", "LG-INNOTEK" }, { 0x044F17, "HUMAX Co., Ltd.", "HUMAX" }, { 0x044F4C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x044F7A, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x044F8B, "Adapteva, Inc.", "ADAPTEVA" }, { 0x044FAA, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x0450DA, "Qiku Internet Network Scientific (Shenzhen) Co., Ltd", "QIKU-INTERNET-NETWORK-SCIENTIFIC-SHENZHEN" }, { 0x045170, "Zhongshan K-mate General Electronics Co.,Ltd", "ZHONGSHAN-K-MATE-GENERAL-ELECTRONICS" }, { 0x0452C7, "Bose Corporation", "BOSE" }, { 0x0452F3, "Apple, Inc.", "APPLE" }, { 0x0453D5, "Sysorex Global Holdings", "SYSOREX-GLOBAL-HOLDINGS" }, { 0x045453, "Apple, Inc.", "APPLE" }, { 0x0455CA, "BriView (Xiamen) Corp.", "BRIVIEW-XIAMEN" }, { 0x045604, "Gionee Communication Equipment Co.,Ltd.", "GIONEE-COMMUNICATION-EQUIPMENT" }, { 0x0456E5, "Intel Corporate", "INTEL-CORPORATE" }, { 0x04572F, "Sertel Electronics UK Ltd", "SERTEL-ELECTRONICS-UK" }, { 0x045747, "GoPro", "GOPRO" }, { 0x045791, "Shenzhenshi Xinzhongxin Technology Co.Ltd", "SHENZHENSHI-XINZHONGXIN" }, { 0x04586F, "Sichuan Whayer information industry Co.,LTD", "SICHUAN-WHAYER-INFORMATION-INDUSTRY" }, { 0x045A95, "Nokia Corporation", "NOKIA" }, { 0x045C06, "Zmodo Technology Corporation", "ZMODO" }, { 0x045C6C, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x045C8E, "gosund GROUP CO.,LTD", "GOSUND-GROUP" }, { 0x045D4B, "Sony Corporation", "SONY" }, { 0x045D56, "camtron industrial inc.", "CAMTRON-INDUSTRIAL" }, { 0x045EA4, "SHENZHEN NETIS TECHNOLOGY CO.,LTD", "SHENZHEN-NETIS" }, { 0x045FA7, "Shenzhen Yichen Technology Development Co.,LTD", "SHENZHEN-YICHEN-DEVELOPMENT" }, { 0x045FB9, "Cisco Systems, Inc", "CISCO" }, { 0x046169, "MEDIA GLOBAL LINKS CO., LTD.", "MEDIA-GLOBAL-LINKS" }, { 0x046273, "Cisco Systems, Inc", "CISCO" }, { 0x0462D7, "ALSTOM HYDRO FRANCE", "ALSTOM-HYDRO-FRANCE" }, { 0x0463D0, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x0463E0, "Nome Oy", "NOME-OY" }, { 0x046565, "Testop", "TESTOP" }, { 0x046785, "scemtec Hard- und Software fuer Mess- und Steuerungstechnik GmbH", "SCEMTEC-HARD-UND-SOFTWARE-FUER-MESS-UND-STEUERUNGSTECHNIK" }, { 0x046865, "Apple, Inc.", "APPLE" }, { 0x04698F, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x0469F8, "Apple, Inc.", "APPLE" }, { 0x046B1B, "SYSDINE Co., Ltd.", "SYSDINE" }, { 0x046B25, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x046C59, "Intel Corporate", "INTEL-CORPORATE" }, { 0x046C9D, "Cisco Systems, Inc", "CISCO" }, { 0x046D42, "Bryston Ltd.", "BRYSTON" }, { 0x046E02, "OpenRTLS Group", "OPENRTLS-GROUP" }, { 0x046E49, "TaiYear Electronic Technology (Suzhou) Co., Ltd", "TAIYEAR-SUZHOU" }, { 0x047056, "Arcadyan Corporation", "ARCADYAN" }, { 0x0470BC, "Globalstar Inc.", "GLOBALSTAR" }, { 0x04714B, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x047153, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0x047295, "Apple, Inc.", "APPLE" }, { 0x0474A1, "Aligera Equipamentos Digitais Ltda", "ALIGERA-EQUIPAMENTOS-DIGITAIS-LTDA" }, { 0x047503, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0475F5, "CSST", "CSST" }, { 0x0475F9, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x04766E, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x0476B0, "Cisco Systems, Inc", "CISCO" }, { 0x047863, "Shanghai MXCHIP Information Technology Co., Ltd.", "SHANGHAI-MXCHIP-INFORMATION" }, { 0x047970, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x047975, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x0479B7, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x047A0B, "Beijing Xiaomi Electronics Co., Ltd.", "BEIJING-XIAOMI-ELECTRONICS" }, { 0x047AAE, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x047BCB, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x047C16, "Micro-Star INTL CO., LTD.", "MICRO-STAR-INTL" }, { 0x047D50, "Shenzhen Kang Ying Technology Co.Ltd.", "SHENZHEN-KANG-YING" }, { 0x047D7B, "Quanta Computer Inc.", "QUANTA" }, { 0x047E23, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0x047E4A, "moobox CO., Ltd.", "MOOBOX" }, { 0x047F0E, "Barrot Technology Co.,LTD", "BARROT" }, { 0x0480A7, "ShenZhen TianGang Micro Technology CO.LTD", "SHENZHEN-TIANGANG-MICRO" }, { 0x04819B, "SKY UK LIMITED", "SKY-UK" }, { 0x0481AE, "Clack Corporation", "CLACK" }, { 0x04848A, "7INOVA TECHNOLOGY LIMITED", "7INOVA" }, { 0x048680, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0x048727, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x04885F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x04888C, "Eifelwerk Butler Systeme GmbH", "EIFELWERK-BUTLER-SYSTEME" }, { 0x0488E2, "Beats Electronics LLC", "BEATS-ELECTRONICS" }, { 0x048A15, "Avaya Inc", "AVAYA" }, { 0x048AE1, "FLEXTRONICS MANUFACTURING(ZHUHAI)CO.,LTD.", "FLEXTRONICS-MANUFACTURING-ZHUHAI" }, { 0x048B42, "Skspruce Technologies", "SKSPRUCE-TECHNOLOGIES" }, { 0x048C03, "ThinPAD Technology (Shenzhen)CO.,LTD", "THINPAD-SHENZHEN" }, { 0x048C16, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x048C9A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x048D38, "Netcore Technology Inc.", "NETCORE" }, { 0x049081, "Pensando Systems, Inc.", "PENSANDO" }, { 0x049162, "Microchip Technology Inc.", "MICROCHIP" }, { 0x049226, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x0492EE, "iway AG", "IWAY" }, { 0x04946B, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x0494A1, "CATCH THE WIND INC", "CATCH-THE-WIND" }, { 0x049573, "zte corporation", "ZTE" }, { 0x0495E6, "Tenda Technology Co.,Ltd.Dongguan branch", "TENDA-DONGGUAN-BRANCH" }, { 0x049645, "WUXI SKY CHIP INTERCONNECTION TECHNOLOGY CO.,LTD.", "WUXI-SKY-CHIP-INTERCONNECTION" }, { 0x049790, "Lartech telecom LLC", "LARTECH-TELECOM" }, { 0x0498F3, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x0499B9, "Apple, Inc.", "APPLE" }, { 0x0499BB, "Apple, Inc.", "APPLE" }, { 0x0499E6, "Shenzhen Yoostar Technology Co., Ltd", "SHENZHEN-YOOSTAR" }, { 0x049B9C, "Eadingcore Intelligent Technology Co., Ltd.", "EADINGCORE-INTELLIGENT" }, { 0x049C62, "BMT Medical Technology s.r.o.", "BMT-MEDICAL-S-R-O" }, { 0x049D05, "Apple, Inc.", "APPLE" }, { 0x049DFE, "Hivesystem", "HIVESYSTEM" }, { 0x049F06, "Smobile Co., Ltd.", "SMOBILE" }, { 0x049F15, "Humane", "HUMANE" }, { 0x049F81, "NETSCOUT SYSTEMS INC", "NETSCOUT" }, { 0x049FCA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x04A151, "NETGEAR", "NETGEAR" }, { 0x04A222, "Arcadyan Corporation", "ARCADYAN" }, { 0x04A2F3, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x04A316, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x04A3F3, "Emicon", "EMICON" }, { 0x04A526, "Nokia", "NOKIA" }, { 0x04A741, "Cisco Systems, Inc", "CISCO" }, { 0x04A81C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x04A82A, "Nokia Corporation", "NOKIA" }, { 0x04AAE1, "BEIJING MICROVISION TECHNOLOGY CO.,LTD", "BEIJING-MICROVISION" }, { 0x04AB08, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x04AB18, "ELECOM CO.,LTD.", "ELECOM" }, { 0x04AB6A, "Chun-il Co.,Ltd.", "CHUN-IL" }, { 0x04AC44, "Holtek Semiconductor Inc.", "HOLTEK-SEMICONDUCTOR" }, { 0x04B0E7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x04B167, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x04B1A1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x04B3B6, "Seamap (UK) Ltd", "SEAMAP-UK" }, { 0x04B429, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x04B466, "BSP Co., Ltd.", "BSP" }, { 0x04B4FE, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x04B648, "ZENNER", "ZENNER" }, { 0x04B6BE, "CIG SHANGHAI CO LTD", "CIG-SHANGHAI" }, { 0x04B86A, "SKY UK LIMITED", "SKY-UK" }, { 0x04B97D, "AiVIS Co., Itd.", "AIVIS-ITD" }, { 0x04B9E3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x04BA1C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x04BA36, "Li Seng Technology Ltd", "LI-SENG" }, { 0x04BA8D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x04BAD6, "D-Link Corporation", "D-LINK" }, { 0x04BBF9, "Pavilion Data Systems Inc", "PAVILION-DATA" }, { 0x04BC6D, "Apple, Inc.", "APPLE" }, { 0x04BC87, "Shenzhen JustLink Technology Co., LTD", "SHENZHEN-JUSTLINK" }, { 0x04BC9F, "Calix Inc.", "CALIX" }, { 0x04BD70, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x04BD88, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x04BD97, "Cisco Systems, Inc", "CISCO" }, { 0x04BDBF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x04BF1B, "Dell Inc.", "DELL" }, { 0x04BF6D, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x04BFA8, "ISB Corporation", "ISB" }, { 0x04C05B, "Tigo Energy", "TIGO-ENERGY" }, { 0x04C06F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x04C09C, "Tellabs Inc.", "TELLABS" }, { 0x04C103, "Clover Network, Inc.", "CLOVER-NETWORK" }, { 0x04C1B9, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x04C1D8, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x04C23E, "HTC Corporation", "HTC" }, { 0x04C241, "Nokia", "NOKIA" }, { 0x04C29B, "Aura Home, Inc.", "AURA-HOME" }, { 0x04C3E6, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x04C461, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x04C5A4, "Cisco Systems, Inc", "CISCO" }, { 0x04C807, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x04C880, "Samtec Inc", "SAMTEC" }, { 0x04C991, "Phistek INC.", "PHISTEK" }, { 0x04C9D9, "Dish Technologies Corp", "DISH-TECHNOLOGIES" }, { 0x04CAED, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x04CB1D, "Traka plc", "TRAKA-PLC" }, { 0x04CB88, "Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd", "SHENZHEN-JINGXUN-SOFTWARE-TELECOMMUNICATION" }, { 0x04CCBC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x04CD15, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x04CE09, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x04CE14, "Wilocity LTD.", "WILOCITY" }, { 0x04CE7E, "NXP France Semiconductors France", "NXP-FRANCE-SEMICONDUCTORS-FRANCE" }, { 0x04CF25, "MANYCOLORS, INC.", "MANYCOLORS" }, { 0x04CF4B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x04CF8C, "XIAOMI Electronics,CO.,LTD", "XIAOMI-ELECTRONICS" }, { 0x04D13A, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x04D16E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x04D320, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x04D395, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x04D3B0, "Intel Corporate", "INTEL-CORPORATE" }, { 0x04D3B5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x04D3CF, "Apple, Inc.", "APPLE" }, { 0x04D437, "ZNV", "ZNV" }, { 0x04D442, "GUANGDONG GENIUS TECHNOLOGY CO., LTD.", "GUANGDONG-GENIUS" }, { 0x04D4C4, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x04D590, "Fortinet, Inc.", "FORTINET" }, { 0x04D60E, "FUNAI ELECTRIC CO., LTD.", "FUNAI-ELECTRIC" }, { 0x04D6AA, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x04D6F4, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0x04D783, "Y&H E&C Co.,LTD.", "Y-H-E-C" }, { 0x04D7A5, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x04D921, "Occuspace", "OCCUSPACE" }, { 0x04D9C8, "Hon Hai Precision Industry Co., Ltd.", "HON-HAI-PRECISION-INDUSTRY" }, { 0x04D9F5, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x04DA28, "Chongqing Zhouhai Intelligent Technology Co., Ltd", "CHONGQING-ZHOUHAI-INTELLIGENT" }, { 0x04DAD2, "Cisco Systems, Inc", "CISCO" }, { 0x04DB56, "Apple, Inc.", "APPLE" }, { 0x04DB8A, "Suntech International Ltd.", "SUNTECH" }, { 0x04DD4C, "Velocytech", "VELOCYTECH" }, { 0x04DEDB, "Rockport Networks Inc", "ROCKPORT-NETWORKS" }, { 0x04DEF2, "Shenzhen ECOM Technology Co. Ltd", "SHENZHEN-ECOM" }, { 0x04DF69, "Car Connectivity Consortium", "CAR-CONNECTIVITY-CONSORTIUM" }, { 0x04E0B0, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x04E0C4, "TRIUMPH-ADLER AG", "TRIUMPH-ADLER" }, { 0x04E1C8, "IMS Soluções em Energia Ltda.", "IMS-SOLUES-EM-ENERGIA-LTDA" }, { 0x04E229, "Qingdao Haier Technology Co.,Ltd", "QINGDAO-HAIER" }, { 0x04E2F8, "AEP Ticketing solutions srl", "AEP-TICKETING-SOLUTIONS-SRL" }, { 0x04E31A, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x04E451, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x04E536, "Apple, Inc.", "APPLE" }, { 0x04E548, "Cohda Wireless Pty Ltd", "COHDA-WIRELESS-PTY" }, { 0x04E56E, "THUB Co., ltd.", "THUB" }, { 0x04E598, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x04E662, "Acroname Inc.", "ACRONAME" }, { 0x04E676, "AMPAK Technology, Inc.", "AMPAK" }, { 0x04E69E, "ZHONGGUANCUN XINHAIZEYOU TECHNOLOGY CO.,LTD", "ZHONGGUANCUN-XINHAIZEYOU" }, { 0x04E77E, "We Corporation Inc.", "WE" }, { 0x04E795, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x04E892, "SHENNAN CIRCUITS CO.,LTD", "SHENNAN-CIRCUITS" }, { 0x04E8B9, "Intel Corporate", "INTEL-CORPORATE" }, { 0x04E9E5, "PJRC.COM, LLC", "PJRC-COM" }, { 0x04EA56, "Intel Corporate", "INTEL-CORPORATE" }, { 0x04EB40, "Cisco Systems, Inc", "CISCO" }, { 0x04ECBB, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x04ECD8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x04ED33, "Intel Corporate", "INTEL-CORPORATE" }, { 0x04EE03, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x04EE91, "x-fabric GmbH", "X-FABRIC" }, { 0x04EEE8, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x04EEEE, "Laplace System Co., Ltd.", "LAPLACE-SYSTEM" }, { 0x04F021, "Compex Systems Pte Ltd", "COMPEX-PTE" }, { 0x04F03E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x04F128, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x04F13E, "Apple, Inc.", "APPLE" }, { 0x04F169, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x04F17D, "Tarana Wireless", "TARANA-WIRELESS" }, { 0x04F352, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x04F4BC, "Xena Networks", "XENA-NETWORKS" }, { 0x04F5F4, "Proxim Wireless", "PROXIM-WIRELESS" }, { 0x04F778, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x04F7E4, "Apple, Inc.", "APPLE" }, { 0x04F8C2, "Flaircomm Microelectronics, Inc.", "FLAIRCOMM-MICROELECTRONICS" }, { 0x04F8F8, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0x04F938, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x04F993, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0x04F9D9, "Speaker Electronic(Jiashan) Co.,Ltd", "SPEAKER-JIASHAN" }, { 0x04F9F8, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x04FA3F, "Opticore Inc.", "OPTICORE" }, { 0x04FA83, "Qingdao Haier Technology Co.,Ltd", "QINGDAO-HAIER" }, { 0x04FE31, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x04FE7F, "Cisco Systems, Inc", "CISCO" }, { 0x04FE8D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x04FEA1, "Fihonest communication co.,Ltd", "FIHONEST-COMMUNICATION" }, { 0x04FF08, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x04FF51, "NOVAMEDIA INNOVISION SP. Z O.O.", "NOVAMEDIA-INNOVISION-SP-Z-O-O" }, { 0x080001, "COMPUTERVISION CORPORATION", "COMPUTERVISION" }, { 0x080002, "BRIDGE COMMUNICATIONS INC.", "BRIDGE-COMMUNICATION" }, { 0x080003, "ADVANCED COMPUTER COMM.", "ADVANCED-COMM" }, { 0x080004, "CROMEMCO INCORPORATED", "CROMEMCO-INCORPORATED" }, { 0x080005, "SYMBOLICS INC.", "SYMBOLICS" }, { 0x080006, "SIEMENS AG", "SIEMENS" }, { 0x080007, "Apple, Inc.", "APPLE" }, { 0x080008, "BOLT BERANEK AND NEWMAN INC.", "BOLT-BERANEK-AND-NEWMAN" }, { 0x080009, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x08000A, "NESTAR SYSTEMS INCORPORATED", "NESTAR-INCORPORATED" }, { 0x08000B, "UNISYS CORPORATION", "UNISYS" }, { 0x08000C, "MIKLYN DEVELOPMENT CO.", "MIKLYN-DEVELOPMENT" }, { 0x08000D, "International Computers, Ltd", "COMPUTERS" }, { 0x08000E, "NCR CORPORATION", "NCR" }, { 0x08000F, "MITEL CORPORATION", "MITEL" }, { 0x080011, "TEKTRONIX INC.", "TEKTRONIX" }, { 0x080012, "BELL ATLANTIC INTEGRATED SYST.", "BELL-ATLANTIC-INTEGRATED-SYST" }, { 0x080013, "Exxon", "EXXON" }, { 0x080014, "EXCELAN", "EXCELAN" }, { 0x080015, "STC BUSINESS SYSTEMS", "STC-BUSINESS" }, { 0x080016, "BARRISTER INFO SYS CORP", "BARRISTER-INFO-SYS" }, { 0x080017, "NATIONAL SEMICONDUCTOR", "NATIONAL-SEMICONDUCTOR" }, { 0x080018, "PIRELLI FOCOM NETWORKS", "PIRELLI-FOCOM-NETWORKS" }, { 0x080019, "GENERAL ELECTRIC CORPORATION", "GENERAL-ELECTRIC" }, { 0x08001A, "TIARA/ 10NET", "TIARA/-10NET" }, { 0x08001B, "Dell EMC", "DELL-EMC" }, { 0x08001C, "KDD-KOKUSAI DEBNSIN DENWA CO.", "KDD-KOKUSAI-DEBNSIN-DENWA" }, { 0x08001D, "ABLE COMMUNICATIONS INC.", "ABLE-COMMUNICATION" }, { 0x08001E, "APOLLO COMPUTER INC.", "APOLLO" }, { 0x08001F, "SHARP CORPORATION", "SHARP" }, { 0x080020, "Oracle Corporation", "ORACLE" }, { 0x080021, "3M COMPANY", "3M-COMPANY" }, { 0x080022, "NBI INC.", "NBI" }, { 0x080023, "Panasonic Communications Co., Ltd.", "PANASONIC-COMMUNICATION" }, { 0x080024, "10NET COMMUNICATIONS/DCA", "10NET-COMMUNICATION/DCA" }, { 0x080025, "CONTROL DATA", "CONTROL-DATA" }, { 0x080026, "NORSK DATA A.S.", "NORSK-DATA" }, { 0x080027, "PCS Systemtechnik GmbH (possible VirtualBox VM)", "PCS-SYSTEMTECHNIK-VIRTUAL" }, { 0x080028, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x080029, "Megatek Corporation", "MEGATEK" }, { 0x08002A, "MOSAIC TECHNOLOGIES INC.", "MOSAIC-TECHNOLOGIES" }, { 0x08002B, "DIGITAL EQUIPMENT CORPORATION", "DIGITAL-EQUIPMENT" }, { 0x08002C, "BRITTON LEE INC.", "BRITTON-LEE" }, { 0x08002D, "LAN-TEC INC.", "LAN-TEC" }, { 0x08002E, "METAPHOR COMPUTER SYSTEMS", "METAPHOR" }, { 0x08002F, "PRIME COMPUTER INC.", "PRIME" }, { 0x080030, "CERN", "CERN" }, { 0x080031, "LITTLE MACHINES INC.", "LITTLE-MACHINES" }, { 0x080032, "TIGAN INCORPORATED", "TIGAN-INCORPORATED" }, { 0x080033, "BAUSCH & LOMB", "BAUSCH-LOMB" }, { 0x080034, "FILENET CORPORATION", "FILENET" }, { 0x080035, "MICROFIVE CORPORATION", "MICROFIVE" }, { 0x080036, "INTERGRAPH CORPORATION", "INTERGRAPH" }, { 0x080037, "FUJIFILM Business Innovation Corp.", "FUJIFILM-BUSINESS-INNOVATION" }, { 0x080038, "BULL S.A.S.", "BULL-S" }, { 0x080039, "SPIDER SYSTEMS LIMITED", "SPIDER" }, { 0x08003A, "ORCATECH INC.", "ORCATECH" }, { 0x08003B, "TORUS SYSTEMS LIMITED", "TORUS" }, { 0x08003C, "SCHLUMBERGER WELL SERVICES", "SCHLUMBERGER-WELL-SERVICES" }, { 0x08003D, "CADNETIX CORPORATIONS", "CADNETIX-CORPORATIONS" }, { 0x08003E, "CODEX CORPORATION", "CODEX" }, { 0x08003F, "FRED KOSCHARA ENTERPRISES", "FRED-KOSCHARA-ENTERPRISES" }, { 0x080040, "FERRANTI COMPUTER SYS. LIMITED", "FERRANTI-SYS" }, { 0x080041, "RACAL-MILGO INFORMATION SYS..", "RACAL-MILGO-INFORMATION-SYS" }, { 0x080042, "MACNICA, Inc.", "MACNICA" }, { 0x080043, "PIXEL COMPUTER INC.", "PIXEL" }, { 0x080044, "DAVID SYSTEMS INC.", "DAVID" }, { 0x080045, "CONCURRENT COMPUTER CORP.", "CONCURRENT" }, { 0x080046, "Sony Corporation", "SONY" }, { 0x080047, "SEQUENT COMPUTER SYSTEMS INC.", "SEQUENT" }, { 0x080048, "EUROTHERM GAUGING SYSTEMS", "EUROTHERM-GAUGING" }, { 0x080049, "UNIVATION", "UNIVATION" }, { 0x08004A, "BANYAN SYSTEMS INC.", "BANYAN" }, { 0x08004B, "Planning Research Corp.", "PLANNING-RESEARCH" }, { 0x08004C, "HYDRA COMPUTER SYSTEMS INC.", "HYDRA" }, { 0x08004D, "CORVUS SYSTEMS INC.", "CORVUS" }, { 0x08004E, "3COM EUROPE LTD", "3COM" }, { 0x08004F, "CYGNET SYSTEMS", "CYGNET" }, { 0x080050, "DAISY SYSTEMS CORP.", "DAISY" }, { 0x080051, "ExperData", "EXPERDATA" }, { 0x080052, "INSYSTEC", "INSYSTEC" }, { 0x080053, "MIDDLE EAST TECH. UNIVERSITY", "MIDDLE-EAST-TECH-UNIVERSITY" }, { 0x080055, "STANFORD TELECOMM. INC.", "STANFORD-TELECOMM" }, { 0x080056, "STANFORD LINEAR ACCEL. CENTER", "STANFORD-LINEAR-ACCEL-CENTER" }, { 0x080057, "Evans & Sutherland", "EVANS-SUTHERLAND" }, { 0x080058, "SYSTEMS CONCEPTS", "CONCEPTS" }, { 0x080059, "A/S MYCRON", "A/S-MYCRON" }, { 0x08005A, "IBM Corp", "IBM" }, { 0x08005B, "VTA TECHNOLOGIES INC.", "VTA-TECHNOLOGIES" }, { 0x08005C, "FOUR PHASE SYSTEMS", "FOUR-PHASE" }, { 0x08005D, "GOULD INC.", "GOULD" }, { 0x08005E, "COUNTERPOINT COMPUTER INC.", "COUNTERPOINT" }, { 0x08005F, "SABER TECHNOLOGY CORP.", "SABER" }, { 0x080060, "INDUSTRIAL NETWORKING INC.", "INDUSTRIAL-NETWORKING" }, { 0x080061, "JAROGATE LTD.", "JAROGATE" }, { 0x080062, "General Dynamics", "GENERAL-DYNAMICS" }, { 0x080063, "PLESSEY", "PLESSEY" }, { 0x080064, "Sitasys AG", "SITASYS" }, { 0x080065, "GENRAD INC.", "GENRAD" }, { 0x080066, "AGFA CORPORATION", "AGFA" }, { 0x080067, "ComDesign", "COMDESIGN" }, { 0x080068, "RIDGE COMPUTERS", "RIDGE-COMPUTERS" }, { 0x080069, "Silicon Graphics", "SILICON-GRAPHICS" }, { 0x08006A, "AT&T", "AT-T" }, { 0x08006B, "ACCEL TECHNOLOGIES INC.", "ACCEL-TECHNOLOGIES" }, { 0x08006C, "SUNTEK TECHNOLOGY INT'L", "SUNTEK" }, { 0x08006D, "WHITECHAPEL COMPUTER WORKS", "WHITECHAPEL-WORKS" }, { 0x08006E, "MASSCOMP", "MASSCOMP" }, { 0x08006F, "PHILIPS APELDOORN B.V.", "PHILIPS-APELDOORN-B-V" }, { 0x080070, "Mitsubishi Precision Co.,LTd.", "MITSUBISHI-PRECISION" }, { 0x080071, "MATRA (DSIE)", "MATRA-DSIE" }, { 0x080072, "XEROX CORP UNIV GRANT PROGRAM", "XEROX-UNIV-GRANT-PROGRAM" }, { 0x080073, "TECMAR INC.", "TECMAR" }, { 0x080074, "CASIO COMPUTER CO. LTD.", "CASIO" }, { 0x080075, "DANSK DATA ELECTRONIK", "DANSK-DATA-ELECTRONIK" }, { 0x080076, "PC LAN TECHNOLOGIES", "PC-LAN-TECHNOLOGIES" }, { 0x080077, "TSL COMMUNICATIONS LTD.", "TSL-COMMUNICATION" }, { 0x080078, "ACCELL CORPORATION", "ACCELL" }, { 0x080079, "THE DROID WORKS", "THE-DROID-WORKS" }, { 0x08007A, "INDATA", "INDATA" }, { 0x08007B, "SANYO ELECTRIC CO. LTD.", "SANYO-ELECTRIC" }, { 0x08007C, "VITALINK COMMUNICATIONS CORP.", "VITALINK-COMMUNICATION" }, { 0x08007E, "AMALGAMATED WIRELESS(AUS) LTD", "AMALGAMATED-WIRELESS-AUS" }, { 0x08007F, "CARNEGIE-MELLON UNIVERSITY", "CARNEGIE-MELLON-UNIVERSITY" }, { 0x080080, "AES DATA INC.", "AES-DATA" }, { 0x080081, "ASTECH INC.", "ASTECH" }, { 0x080082, "VERITAS SOFTWARE", "VERITAS-SOFTWARE" }, { 0x080083, "Seiko Instruments Inc.", "SEIKO-INSTRUMENTS" }, { 0x080084, "TOMEN ELECTRONICS CORP.", "TOMEN-ELECTRONICS" }, { 0x080085, "ELXSI", "ELXSI" }, { 0x080086, "KONICA MINOLTA HOLDINGS, INC.", "KONICA-MINOLTA-HOLDINGS" }, { 0x080087, "Xyplex, Inc.", "XYPLEX" }, { 0x080088, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x080089, "Kinetics", "KINETICS" }, { 0x08008A, "PerfTech, Inc.", "PERFTECH" }, { 0x08008B, "PYRAMID TECHNOLOGY CORP.", "PYRAMID" }, { 0x08008C, "NETWORK RESEARCH CORPORATION", "NETWORK-RESEARCH" }, { 0x08008D, "XYVISION INC.", "XYVISION" }, { 0x08008E, "Tandem Computers", "TANDEM-COMPUTERS" }, { 0x08008F, "CHIPCOM CORPORATION", "CHIPCOM" }, { 0x080090, "SONOMA SYSTEMS", "SONOMA" }, { 0x08010F, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x080205, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x08028E, "NETGEAR", "NETGEAR" }, { 0x080342, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x080371, "KRG CORPORATE", "KRG-CORPORATE" }, { 0x0804B4, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x080581, "Roku, Inc.", "ROKU" }, { 0x0805CD, "DongGuang EnMai Electronic Product Co.Ltd.", "DONGGUANG-ENMAI-PRODUCT" }, { 0x0805E2, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x08085C, "Luna Products", "LUNA-PRODUCTS" }, { 0x0808C2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0808EA, "AMSC", "AMSC" }, { 0x0809B6, "Masimo Corp", "MASIMO" }, { 0x0809C7, "Zhuhai Unitech Power Technology Co., Ltd.", "ZHUHAI-UNITECH-POWER" }, { 0x080A4E, "Planet Bingo® — 3rd Rock Gaming®", "PLANET-BINGO-3RD-ROCK-GAMING" }, { 0x080C0B, "SysMik GmbH Dresden", "SYSMIK-DRESDEN" }, { 0x080CC9, "Mission Technology Group, dba Magma", "MISSION-GROUP-DBA-MAGMA" }, { 0x080D84, "GECO, Inc.", "GECO" }, { 0x080EA8, "Velex s.r.l.", "VELEX" }, { 0x080FFA, "KSP INC.", "KSP" }, { 0x081086, "NEC Platforms, Ltd.", "NEC-PLATFORMS" }, { 0x08115E, "Bitel Co., Ltd.", "BITEL" }, { 0x081196, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0812A5, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x081443, "UNIBRAIN S.A.", "UNIBRAIN" }, { 0x08152F, "Samsung Electronics Co., Ltd. ARTIK", "SAMSUNG-ELECTRONICS-ARTIK" }, { 0x0815AE, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x081605, "Vodafone Italia S.p.A.", "VODAFONE-ITALIA" }, { 0x081651, "SHENZHEN SEA STAR TECHNOLOGY CO.,LTD", "SHENZHEN-SEA-STAR" }, { 0x0816D5, "GOERTEK INC.", "GOERTEK" }, { 0x081735, "Cisco Systems, Inc", "CISCO" }, { 0x0817F4, "IBM Corp", "IBM" }, { 0x08181A, "zte corporation", "ZTE" }, { 0x08184C, "A. S. Thomas, Inc.", "A-S-THOMAS" }, { 0x0819A6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x081A1E, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0x081AFD, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x081C6E, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x081DC4, "Thermo Fisher Scientific Messtechnik GmbH", "THERMO-FISHER-SCIENTIFIC-MESSTECHNIK" }, { 0x081DFB, "Shanghai Mexon Communication Technology Co.,Ltd", "SHANGHAI-MEXON-COMMUNICATION" }, { 0x081F3F, "WondaLink Inc.", "WONDALINK" }, { 0x081F71, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x081FEB, "BinCube", "BINCUBE" }, { 0x081FF3, "Cisco Systems, Inc", "CISCO" }, { 0x0821EF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0823B2, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x0823C6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x082522, "ADVANSEE", "ADVANSEE" }, { 0x082525, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x082573, "Apple, Inc.", "APPLE" }, { 0x082697, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x0826AE, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x082719, "APS systems/electronic AG", "APS-/" }, { 0x0827CE, "NAGANO KEIKI CO., LTD.", "NAGANO-KEIKI" }, { 0x082802, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0x082AD0, "SRD Innovations Inc.", "SRD-INNOVATIONS" }, { 0x082CB0, "Network Instruments", "NETWORK-INSTRUMENTS" }, { 0x082CB6, "Apple, Inc.", "APPLE" }, { 0x082CED, "Technity Solutions Inc.", "TECHNITY-SOLUTIONS" }, { 0x082E36, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x082E5F, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x082FE9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x08306B, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x0830CE, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x08318B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0831A4, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x0833ED, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x08351B, "Shenzhen Jialihua Electronic Technology Co., Ltd", "SHENZHEN-JIALIHUA" }, { 0x083571, "CASwell INC.", "CASWELL" }, { 0x0835B2, "CoreEdge Networks Co., Ltd", "COREEDGE-NETWORKS" }, { 0x0836C9, "NETGEAR", "NETGEAR" }, { 0x08373D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x08379C, "Topaz Co. LTD.", "TOPAZ" }, { 0x083869, "Hong Kong AMobile Intelligent Corp. Limited Taiwan Branch", "HONG-KONG-AMOBILE-INTELLIGENT-TAIWAN-BRANCH" }, { 0x0838A5, "Funkwerk plettac electronic GmbH", "FUNKWERK-PLETTAC" }, { 0x0838E6, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0x083A2F, "Guangzhou Juan Intelligent Tech Joint Stock Co.,Ltd", "GUANGZHOU-JUAN-INTELLIGENT-TECH-JOINT-STOCK" }, { 0x083A38, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x083A5C, "Junilab, Inc.", "JUNILAB" }, { 0x083A88, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x083A8D, "Espressif Inc.", "ESPRESSIF" }, { 0x083AB8, "Shinoda Plasma Co., Ltd.", "SHINODA-PLASMA" }, { 0x083AF2, "Espressif Inc.", "ESPRESSIF" }, { 0x083D88, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x083E0C, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x083E5D, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x083E8E, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x083F3E, "WSH GmbH", "WSH" }, { 0x083F76, "Intellian Technologies, Inc.", "INTELLIAN-TECHNOLOGIES" }, { 0x083FBC, "zte corporation", "ZTE" }, { 0x084027, "Gridstore Inc.", "GRIDSTORE" }, { 0x0840F3, "Tenda Technology Co.,Ltd.Dongguan branch", "TENDA-DONGGUAN-BRANCH" }, { 0x084218, "Asyril SA", "ASYRIL" }, { 0x084296, "Mobile Technology Solutions LLC", "MOBILE-SOLUTIONS" }, { 0x0845D1, "Cisco Systems, Inc", "CISCO" }, { 0x084656, "VEO-LABS", "VEO-LABS" }, { 0x0846C7, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x08474C, "Nokia", "NOKIA" }, { 0x0847D0, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0x08482C, "Raycore Taiwan Co., LTD.", "RAYCORE-TAIWAN" }, { 0x084ACF, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x084E1C, "H2A Systems, LLC", "H2A" }, { 0x084EBF, "Sumitomo Electric Industries, Ltd", "SUMITOMO-ELECTRIC-INDUSTRIES" }, { 0x084F0A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x084FA9, "Cisco Systems, Inc", "CISCO" }, { 0x084FF9, "Cisco Systems, Inc", "CISCO" }, { 0x085104, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x085114, "QINGDAO TOPSCOMM COMMUNICATION CO., LTD", "QINGDAO-TOPSCOMM-COMMUNICATION" }, { 0x08512E, "Orion Diagnostica Oy", "ORION-DIAGNOSTICA-OY" }, { 0x085240, "EbV Elektronikbau- und Vertriebs GmbH", "EBV-ELEKTRONIKBAU-UND-VERTRIEBS" }, { 0x085411, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x0854BB, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0x085531, "Routerboard.com", "ROUTERBOARD-COM" }, { 0x08569B, "WiZ", "WIZ" }, { 0x085700, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x0857FB, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x0858A5, "Beijing Vrv Software Corpoaration Limited.", "BEIJING-VRV-SOFTWARE-CORPOARATION" }, { 0x085A11, "D-Link International", "D-LINK" }, { 0x085AE0, "Recovision Technology Co., Ltd.", "RECOVISION" }, { 0x085B0E, "Fortinet, Inc.", "FORTINET" }, { 0x085BD6, "Intel Corporate", "INTEL-CORPORATE" }, { 0x085BDA, "CliniCare LTD", "CLINICARE" }, { 0x085C1B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x085DDD, "MERCURY CORPORATION", "MERCURY" }, { 0x08606E, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x086083, "zte corporation", "ZTE" }, { 0x086195, "Rockwell Automation", "ROCKWELL-AUTOMATION" }, { 0x086266, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x086361, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x086518, "Apple, Inc.", "APPLE" }, { 0x0865F0, "JM Zengge Co., Ltd", "JM-ZENGGE" }, { 0x08661F, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x086698, "Apple, Inc.", "APPLE" }, { 0x08674E, "Hisense broadband multimedia technology Co.,Ltd", "HISENSE-BROADBAND-MULTIMEDIA" }, { 0x08688D, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x0868D0, "Japan System Design", "JAPAN-SYSTEM-DESIGN" }, { 0x0868EA, "EITO ELECTRONICS CO., LTD.", "EITO-ELECTRONICS" }, { 0x086A0A, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x086AC5, "Intel Corporate", "INTEL-CORPORATE" }, { 0x086AE5, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x086BD1, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x086BD7, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x086D41, "Apple, Inc.", "APPLE" }, { 0x086DF2, "Shenzhen MIMOWAVE Technology Co.,Ltd", "SHENZHEN-MIMOWAVE" }, { 0x086E9C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x086F48, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0x087045, "Apple, Inc.", "APPLE" }, { 0x087073, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x087190, "Intel Corporate", "INTEL-CORPORATE" }, { 0x087402, "Apple, Inc.", "APPLE" }, { 0x087458, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x0874F6, "Winterhalter Gastronom GmbH", "WINTERHALTER-GASTRONOM" }, { 0x087572, "Obelux Oy", "OBELUX-OY" }, { 0x087618, "ViE Technologies Sdn. Bhd.", "VIE-TECHNOLOGIES" }, { 0x087695, "Auto Industrial Co., Ltd.", "AUTO-INDUSTRIAL" }, { 0x0876FF, "Thomson Telecom Belgium", "THOMSON-TELECOM-BELGIUM" }, { 0x087808, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x08798C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x087999, "AIM GmbH", "AIM" }, { 0x087A4C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x087B12, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x087BAA, "SVYAZKOMPLEKTSERVICE, LLC", "SVYAZKOMPLEKTSERVICE" }, { 0x087C39, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x087CBE, "Quintic Corp.", "QUINTIC" }, { 0x087D21, "Altasec technology corporation", "ALTASEC" }, { 0x087E64, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x087F98, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x088039, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x0881B2, "Logitech (China) Technology Co., Ltd", "LOGITECH-CHINA" }, { 0x0881BC, "HongKong Ipro Technology Co., Limited", "HONGKONG-IPRO" }, { 0x0881F4, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x088466, "Novartis Pharma AG", "NOVARTIS-PHARMA" }, { 0x08849D, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x08855B, "Kontron Europe GmbH", "KONTRON-EUROPE" }, { 0x088620, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x08863B, "Belkin International Inc.", "BELKIN" }, { 0x0887C6, "INGRAM MICRO SERVICES", "INGRAM-MICRO-SERVICES" }, { 0x0887C7, "Apple, Inc.", "APPLE" }, { 0x088C2C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x088DC8, "Ryowa Electronics Co.,Ltd", "RYOWA-ELECTRONICS" }, { 0x088E4F, "SF Software Solutions", "SF-SOFTWARE-SOLUTIONS" }, { 0x088E90, "Intel Corporate", "INTEL-CORPORATE" }, { 0x088EDC, "Apple, Inc.", "APPLE" }, { 0x088F2C, "Amber Technology Ltd.", "AMBER" }, { 0x088FC3, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x0890BA, "Danlaw Inc", "DANLAW" }, { 0x089115, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x0891A3, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x089204, "Dell Inc.", "DELL" }, { 0x089356, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0894EF, "Wistron Infocomm (Zhongshan) Corporation", "WISTRON-INFOCOMM-ZHONGSHAN" }, { 0x08952A, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x089542, "Apple, Inc.", "APPLE" }, { 0x0896AD, "Cisco Systems, Inc", "CISCO" }, { 0x0896D7, "AVM GmbH", "AVM" }, { 0x089734, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x089758, "Shenzhen Strong Rising Electronics Co.,Ltd DongGuan Subsidiary", "SHENZHEN-STRONG-RISING-ELECTRONICS-DONGGUAN-SUBSIDIARY" }, { 0x089798, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x0899E8, "KEMAS GmbH", "KEMAS" }, { 0x089AC7, "zte corporation", "ZTE" }, { 0x089B4B, "iKuai Networks", "IKUAI-NETWORKS" }, { 0x089BB9, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x089BF1, "eero inc.", "EERO" }, { 0x089C86, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0x089DF4, "Intel Corporate", "INTEL-CORPORATE" }, { 0x089E01, "Quanta Computer Inc.", "QUANTA" }, { 0x089E08, "Google, Inc.", "GOOGLE" }, { 0x089E84, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x089F97, "LEROY AUTOMATION", "LEROY-AUTOMATION" }, { 0x08A12B, "ShenZhen EZL Technology Co., Ltd", "SHENZHEN-EZL" }, { 0x08A189, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x08A5C8, "Sunnovo International Limited", "SUNNOVO" }, { 0x08A6BC, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x08A7C0, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x08A842, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x08A8A1, "Cyclotronics Power Concepts, Inc", "CYCLOTRONICS-POWER-CONCEPTS" }, { 0x08A95A, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x08AA55, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x08AA89, "zte corporation", "ZTE" }, { 0x08ACA5, "Benu Video, Inc.", "BENU-VIDEO" }, { 0x08ACC4, "FMTech", "FMTECH" }, { 0x08AED6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x08AF78, "Totus Solutions, Inc.", "TOTUS-SOLUTIONS" }, { 0x08B055, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x08B0A7, "Truebeyond Co., Ltd", "TRUEBEYOND" }, { 0x08B258, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x08B2A3, "Cynny Italia S.r.L.", "CYNNY-ITALIA" }, { 0x08B3AF, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x08B49D, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x08B4B1, "Google, Inc.", "GOOGLE" }, { 0x08B4CF, "Abicom International", "ABICOM" }, { 0x08B61F, "Espressif Inc.", "ESPRESSIF" }, { 0x08B738, "Lite-On Technogy Corp.", "LITE-ON-TECHNOGY" }, { 0x08B7EC, "Wireless Seismic", "WIRELESS-SEISMIC" }, { 0x08BA22, "Swaive Corporation", "SWAIVE" }, { 0x08BA5F, "Qingdao Hisense Electronics Co.,Ltd.", "QINGDAO-HISENSE-ELECTRONICS" }, { 0x08BB3C, "Flextronics Tech.(Ind) Pvt Ltd", "FLEXTRONICS-TECH-IND-PVT" }, { 0x08BBCC, "AK-NORD EDV VERTRIEBSGES. mbH", "AK-NORD-EDV-VERTRIEBSGES" }, { 0x08BC20, "Hangzhou Royal Cloud Technology Co., Ltd", "HANGZHOU-ROYAL-CLOUD" }, { 0x08BD43, "NETGEAR", "NETGEAR" }, { 0x08BE09, "Astrol Electronic AG", "ASTROL" }, { 0x08BE77, "Green Electronics", "GREEN-ELECTRONICS" }, { 0x08BEAC, "Edimax Technology Co. Ltd.", "EDIMAX" }, { 0x08BFA0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x08BFB8, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x08C021, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x08C06C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x08C0EB, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0x08C3B3, "TCL King Electrical Appliances(Huizhou)Co.,Ltd", "TCL-KING-ELECTRICAL-APPLIANCES-HUIZHOU" }, { 0x08C5E1, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x08C6B3, "QTECH LLC", "QTECH" }, { 0x08C729, "Apple, Inc.", "APPLE" }, { 0x08C8C2, "GN Audio A/S", "GN-AUDIO-A/S" }, { 0x08CA45, "Toyou Feiji Electronics Co., Ltd.", "TOYOU-FEIJI-ELECTRONICS" }, { 0x08CBE5, "R3 Solutions GmbH", "R3-SOLUTIONS" }, { 0x08CC27, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x08CC68, "Cisco Systems, Inc", "CISCO" }, { 0x08CC81, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x08CCA7, "Cisco Systems, Inc", "CISCO" }, { 0x08CD9B, "samtec automotive electronics & software GmbH", "SAMTEC-AUTOMOTIVE-ELECTRONICS-SOFTWARE" }, { 0x08D09F, "Cisco Systems, Inc", "CISCO" }, { 0x08D0B7, "Qingdao Hisense Communications Co.,Ltd.", "QINGDAO-HISENSE-COMMUNICATION" }, { 0x08D1F9, "Espressif Inc.", "ESPRESSIF" }, { 0x08D23E, "Intel Corporate", "INTEL-CORPORATE" }, { 0x08D29A, "Proformatique", "PROFORMATIQUE" }, { 0x08D34B, "Techman Electronics (Changshu) Co., Ltd.", "TECHMAN-ELECTRONICS-CHANGSHU" }, { 0x08D40C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x08D42B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x08D46A, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x08D59D, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x08D5C0, "Seers Technology Co., Ltd", "SEERS" }, { 0x08D833, "Shenzhen RF Technology Co., Ltd", "SHENZHEN-RF" }, { 0x08DF1F, "Bose Corporation", "BOSE" }, { 0x08DFCB, "Systrome Networks", "SYSTROME-NETWORKS" }, { 0x08E021, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x08E4DF, "Shenzhen Sande Dacom Electronics Co., Ltd", "SHENZHEN-SANDE-DACOM-ELECTRONICS" }, { 0x08E5DA, "NANJING FUJITSU COMPUTER PRODUCTS CO.,LTD.", "NANJING-FUJITSU-PRODUCTS" }, { 0x08E63B, "zte corporation", "ZTE" }, { 0x08E672, "JEBSEE ELECTRONICS CO.,LTD.", "JEBSEE-ELECTRONICS" }, { 0x08E689, "Apple, Inc.", "APPLE" }, { 0x08E6C9, "Business-intelligence of Oriental Nations Corporation Ltd.", "BUSINESS-INTELLIGENCE-OF-ORIENTAL-NATIONS" }, { 0x08E7E5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x08E84F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x08E9F6, "AMPAK Technology,Inc.", "AMPAK" }, { 0x08EA40, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x08EA44, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x08EB29, "Jiangsu Huitong Group Co.,Ltd.", "JIANGSU-HUITONG-GROUP" }, { 0x08EB74, "HUMAX Co., Ltd.", "HUMAX" }, { 0x08EBED, "World Elite Technology Co.,LTD", "WORLD-ELITE" }, { 0x08EBF6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x08ECA9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x08ECF5, "Cisco Systems, Inc", "CISCO" }, { 0x08ED02, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x08ED9D, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x08EDB9, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x08EDED, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0x08EE8B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x08EF3B, "MCS Logic Inc.", "MCS-LOGIC" }, { 0x08EFAB, "SAYME WIRELESS SENSOR NETWORK", "SAYME-WIRELESS-SENSOR-NETWORK" }, { 0x08F01E, "eero inc.", "EERO" }, { 0x08F1B3, "Cisco Meraki", "CISCO-MERAKI" }, { 0x08F1B7, "Towerstream Corpration", "TOWERSTREAM-CORPRATION" }, { 0x08F1EA, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x08F2F4, "Net One Partners Co.,Ltd.", "NET-ONE-PARTNERS" }, { 0x08F3FB, "Cisco Systems, Inc", "CISCO" }, { 0x08F458, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x08F4AB, "Apple, Inc.", "APPLE" }, { 0x08F606, "zte corporation", "ZTE" }, { 0x08F69C, "Apple, Inc.", "APPLE" }, { 0x08F6F8, "GET Engineering", "GET-ENGINEERING" }, { 0x08F728, "GLOBO Multimedia Sp. z o.o. Sp.k.", "GLOBO-MULTIMEDIA-SP-Z-O-O-SP-K" }, { 0x08F7E9, "HRCP Research and Development Partnership", "HRCP-RESEARCH-AND-DEVELOPMENT-PARTNERSHIP" }, { 0x08F80D, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x08F8BC, "Apple, Inc.", "APPLE" }, { 0x08F9E0, "Espressif Inc.", "ESPRESSIF" }, { 0x08FA28, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x08FA79, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x08FAE0, "Fohhn Audio AG", "FOHHN-AUDIO" }, { 0x08FBEA, "AMPAK Technology,Inc.", "AMPAK" }, { 0x08FC52, "OpenXS BV", "OPENXS" }, { 0x08FC88, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x08FD0E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x08FF24, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x08FF44, "Apple, Inc.", "APPLE" }, { 0x0C014B, "zte corporation", "ZTE" }, { 0x0C01C8, "DENSO Co.,Ltd", "DENSO" }, { 0x0C01DB, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0x0C0227, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x0C02BD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0C0400, "Jantar d.o.o.", "JANTAR-D-O-O" }, { 0x0C0535, "Juniper Systems", "JUNIPER" }, { 0x0C08B4, "HUMAX Co., Ltd.", "HUMAX" }, { 0x0C0E76, "D-Link International", "D-LINK" }, { 0x0C1105, "AKUVOX (XIAMEN) NETWORKS CO., LTD", "AKUVOX-XIAMEN-NETWORKS" }, { 0x0C1167, "Cisco Systems, Inc", "CISCO" }, { 0x0C1262, "zte corporation", "ZTE" }, { 0x0C130B, "Uniqoteq Ltd.", "UNIQOTEQ" }, { 0x0C1420, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0C14D2, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x0C1539, "Apple, Inc.", "APPLE" }, { 0x0C15C5, "SDTEC Co., Ltd.", "SDTEC" }, { 0x0C1773, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x0C17F1, "TELECSYS", "TELECSYS" }, { 0x0C191F, "Inform Electronik", "INFORM-ELECTRONIK" }, { 0x0C19F8, "Apple, Inc.", "APPLE" }, { 0x0C1A10, "Acoustic Stream", "ACOUSTIC-STREAM" }, { 0x0C1C19, "LONGCONN ELECTRONICS(SHENZHEN) CO.,LTD", "LONGCONN-ELECTRONICS-SHENZHEN" }, { 0x0C1C1A, "eero inc.", "EERO" }, { 0x0C1C20, "Kakao Corp", "KAKAO" }, { 0x0C1C57, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0C1DAF, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x0C1DC2, "SeAH Networks", "SEAH-NETWORKS" }, { 0x0C1EF7, "Omni-ID", "OMNI-ID" }, { 0x0C2026, "noax Technologies AG", "NOAX-TECHNOLOGIES" }, { 0x0C20D3, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x0C2138, "Hengstler GmbH", "HENGSTLER" }, { 0x0C2369, "Honeywell SPS", "HONEYWELL-SPS" }, { 0x0C2576, "LONGCHEER TELECOMMUNICATION LIMITED", "LONGCHEER-TELECOMMUNICATION" }, { 0x0C2724, "Cisco Systems, Inc", "CISCO" }, { 0x0C2755, "Valuable Techologies Limited", "VALUABLE-TECHOLOGIES" }, { 0x0C298F, "Tesla,Inc.", "TESLA" }, { 0x0C29EF, "Dell Inc.", "DELL" }, { 0x0C2A69, "electric imp, incorporated", "ELECTRIC-IMP-INCORPORATED" }, { 0x0C2A86, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x0C2AE7, "Beijing General Research Institute of Mining and Metallurgy", "BEIJING-GENERAL-RESEARCH-INSTITUTE-OF-MINING-AND-METALLURGY" }, { 0x0C2C54, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0C2D89, "QiiQ Communications Inc.", "QIIQ-COMMUNICATION" }, { 0x0C2E57, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0C2FB0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0C3021, "Apple, Inc.", "APPLE" }, { 0x0C31DC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0C3526, "Microsoft Corporation", "MICROSOFT" }, { 0x0C354F, "Nokia", "NOKIA" }, { 0x0C35FE, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x0C3747, "zte corporation", "ZTE" }, { 0x0C3796, "BIZLINK TECHNOLOGY, INC.", "BIZLINK" }, { 0x0C37DC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0C383E, "Fanvil Technology Co., Ltd.", "FANVIL" }, { 0x0C3956, "Observator instruments", "OBSERVATOR-INSTRUMENTS" }, { 0x0C3AFA, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x0C3B50, "Apple, Inc.", "APPLE" }, { 0x0C3C65, "Dome Imaging Inc", "DOME-IMAGING" }, { 0x0C3CCD, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x0C3E9F, "Apple, Inc.", "APPLE" }, { 0x0C4101, "Ruichi Auto Technology (Guangzhou) Co., Ltd.", "RUICHI-AUTO-GUANGZHOU" }, { 0x0C413E, "Microsoft Corporation", "MICROSOFT" }, { 0x0C41E9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0C42A1, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0x0C4314, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x0C43F9, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x0C45BA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0C469D, "MS Sedco", "MS-SEDCO" }, { 0x0C473D, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x0C47C9, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x0C4885, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x0C48C6, "CELESTICA INC.", "CELESTICA" }, { 0x0C4933, "Sichuan Jiuzhou Electronic Technology Co., Ltd.", "SICHUAN-JIUZHOU" }, { 0x0C4B54, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x0C4C39, "MitraStar Technology Corp.", "MITRASTAR" }, { 0x0C4DE9, "Apple, Inc.", "APPLE" }, { 0x0C4EC0, "Maxlinear Inc", "MAXLINEAR" }, { 0x0C4F5A, "ASA-RT s.r.l.", "ASA-RT" }, { 0x0C4F9B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0C5101, "Apple, Inc.", "APPLE" }, { 0x0C51F7, "CHAUVIN ARNOUX", "CHAUVIN-ARNOUX" }, { 0x0C5203, "AGM GROUP LIMITED", "AGM-GROUP" }, { 0x0C5331, "ETH Zurich", "ETH-ZURICH" }, { 0x0C5415, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0C54A5, "PEGATRON CORPORATION", "PEGATRON" }, { 0x0C54B9, "Nokia", "NOKIA" }, { 0x0C5521, "Axiros GmbH", "AXIROS" }, { 0x0C565C, "HyBroad Vision (Hong Kong) Technology Co Ltd", "HYBROAD-VISION-HONG-KONG" }, { 0x0C57EB, "Mueller Systems", "MUELLER" }, { 0x0C5842, "DME Micro", "DME-MICRO" }, { 0x0C599C, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x0C5A19, "Axtion Sdn Bhd", "AXTION" }, { 0x0C5A9E, "Wi-SUN Alliance", "WI-SUN-ALLIANCE" }, { 0x0C5CB5, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x0C5CD8, "DOLI Elektronik GmbH", "DOLI-ELEKTRONIK" }, { 0x0C5F35, "Niagara Video Corporation", "NIAGARA-VIDEO" }, { 0x0C6046, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x0C6076, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x0C6111, "Anda Technologies SAC", "ANDA-TECHNOLOGIES-SAC" }, { 0x0C6127, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x0C61CF, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0C62A6, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x0C63FC, "Nanjing Signway Technology Co., Ltd", "NANJING-SIGNWAY" }, { 0x0C6422, "Beijing Wiseasy Technology Co.,Ltd.", "BEIJING-WISEASY" }, { 0x0C659A, "Panasonic Automotive Systems Company of America", "PANASONIC-AUTOMOTIVE-COMPANY-OF-AMERICA" }, { 0x0C6714, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0x0C6803, "Cisco Systems, Inc", "CISCO" }, { 0x0C6ABC, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x0C6AE6, "Stanley Security Solutions", "STANLEY-SECURITY-SOLUTIONS" }, { 0x0C6E4F, "PrimeVOLT Co., Ltd.", "PRIMEVOLT" }, { 0x0C6F9C, "Shaw Communications Inc.", "SHAW-COMMUNICATION" }, { 0x0C7043, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x0C704A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0C715D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0C718C, "TCT mobile ltd", "TCT-MOBILE" }, { 0x0C722C, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x0C7274, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x0C72D9, "zte corporation", "ZTE" }, { 0x0C7329, "Sercomm Corporation.", "SERCOMM" }, { 0x0C73BE, "Dongguan Haimai Electronie Technology Co.,Ltd", "DONGGUAN-HAIMAI-ELECTRONIE" }, { 0x0C73EB, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x0C74C2, "Apple, Inc.", "APPLE" }, { 0x0C7512, "Shenzhen Kunlun TongTai Technology Co.,Ltd.", "SHENZHEN-KUNLUN-TONGTAI" }, { 0x0C7523, "BEIJING GEHUA CATV NETWORK CO.,LTD", "BEIJING-GEHUA-CATV-NETWORK" }, { 0x0C756C, "Anaren Microwave, Inc.", "ANAREN-MICROWAVE" }, { 0x0C75BD, "Cisco Systems, Inc", "CISCO" }, { 0x0C75D2, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x0C771A, "Apple, Inc.", "APPLE" }, { 0x0C7A15, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0C7BC8, "Cisco Meraki", "CISCO-MERAKI" }, { 0x0C7C28, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x0C7D7C, "Kexiang Information Technology Co, Ltd.", "KEXIANG-INFORMATION" }, { 0x0C7FB2, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0C7FED, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x0C8063, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x0C8112, "Private", "PRIVATE" }, { 0x0C8126, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x0C817D, "EEP Elektro-Elektronik Pranjic GmbH", "EEP-ELEKTRO-ELEKTRONIK-PRANJIC" }, { 0x0C8230, "SHENZHEN MAGNUS TECHNOLOGIES CO.,LTD", "SHENZHEN-MAGNUS-TECHNOLOGIES" }, { 0x0C8268, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x0C826A, "Wuhan Huagong Genuine Optics Technology Co., Ltd", "WUHAN-HUAGONG-GENUINE-OPTICS" }, { 0x0C839A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x0C83CC, "Alpha Networks Inc.", "ALPHA-NETWORKS" }, { 0x0C8408, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0C8411, "A.O. Smith Water Products", "A-O-SMITH-WATER-PRODUCTS" }, { 0x0C8447, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x0C8484, "Zenovia Electronics Inc.", "ZENOVIA-ELECTRONICS" }, { 0x0C84DC, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x0C8525, "Cisco Systems, Inc", "CISCO" }, { 0x0C8610, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x0C8629, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x0C86C7, "Jabil Circuit (Guangzhou) Limited", "JABIL-CIRCUIT-GUANGZHOU" }, { 0x0C8772, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0x0C8910, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0C8A87, "AgLogica Holdings, Inc", "AGLOGICA-HOLDINGS" }, { 0x0C8B7D, "Vizio, Inc", "VIZIO" }, { 0x0C8B95, "Espressif Inc.", "ESPRESSIF" }, { 0x0C8BD3, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x0C8BFD, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0C8C24, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x0C8C69, "Shenzhen elink smart Co., ltd", "SHENZHEN-ELINK-SMART" }, { 0x0C8C8F, "Kamo Technology Limited", "KAMO" }, { 0x0C8CDC, "Suunto Oy", "SUUNTO-OY" }, { 0x0C8D98, "TOP EIGHT IND CORP", "TOP-EIGHT-IND" }, { 0x0C8DCA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0C8DDB, "Cisco Meraki", "CISCO-MERAKI" }, { 0x0C8E29, "Arcadyan Corporation", "ARCADYAN" }, { 0x0C8FFF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0C9043, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x0C9160, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x0C9192, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0C924E, "Rice Lake Weighing Systems", "RICE-LAKE-WEIGHING" }, { 0x0C9301, "PT. Prasimax Inovasi Teknologi", "PT-PRASIMAX-INOVASI-TEKNOLOGI" }, { 0x0C938F, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x0C93FB, "BNS Solutions", "BNS-SOLUTIONS" }, { 0x0C9505, "The Chamberlain Group, Inc", "THE-CHAMBERLAIN-GROUP" }, { 0x0C9541, "CHIPSEA TECHNOLOGIES (SHENZHEN) CORP.", "CHIPSEA-TECHNOLOGIES-SHENZHEN" }, { 0x0C96BF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0C96CD, "MERCURY CORPORATION", "MERCURY" }, { 0x0C96E6, "Cloud Network Technology (Samoa) Limited", "CLOUD-NETWORK-SAMOA" }, { 0x0C975F, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x0C9838, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x0C9A3C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0C9A42, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0x0C9B13, "Shanghai Magic Mobile Telecommunication Co.Ltd.", "SHANGHAI-MAGIC-MOBILE-TELECOMMUNICATION" }, { 0x0C9D56, "Consort Controls Ltd", "CONSORT-CONTROLS" }, { 0x0C9D92, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x0C9E91, "Sankosha Corporation", "SANKOSHA" }, { 0x0C9F71, "Dolphin Electronics (DongGuan) Co., Ltd.", "DOLPHIN-ELECTRONICS-DONGGUAN" }, { 0x0CA06C, "Industrial Cyber Sensing Inc.", "INDUSTRIAL-CYBER-SENSING" }, { 0x0CA138, "Blinq Wireless Inc.", "BLINQ-WIRELESS" }, { 0x0CA2F4, "Chameleon Technology (UK) Limited", "CHAMELEON-UK" }, { 0x0CA402, "Alcatel-Lucent IPD", "ALCATEL-LUCENT-IPD" }, { 0x0CA42A, "OB Telecom Electronic Technology Co., Ltd", "OB-TELECOM" }, { 0x0CA694, "Sunitec Enterprise Co.,Ltd", "SUNITEC" }, { 0x0CA8A7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0CAAEE, "Ansjer Electronics Co., Ltd.", "ANSJER-ELECTRONICS" }, { 0x0CAC05, "Unitend Technologies Inc.", "UNITEND-TECHNOLOGIES" }, { 0x0CAC8A, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x0CAE5F, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x0CAE7D, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0CAEBD, "Edifier International", "EDIFIER" }, { 0x0CAF31, "Cisco Systems, Inc", "CISCO" }, { 0x0CAF5A, "GENUS POWER INFRASTRUCTURES LIMITED", "GENUS-POWER-INFRASTRUCTURES" }, { 0x0CB088, "AITelecom", "AITELECOM" }, { 0x0CB2B7, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0CB319, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0CB34F, "Shenzhen Xiaoqi Intelligent Technology Co., Ltd.", "SHENZHEN-XIAOQI-INTELLIGENT" }, { 0x0CB459, "Marketech International Corp.", "MARKETECH" }, { 0x0CB4A4, "Xintai Automobile Intelligent Network Technology", "XINTAI-AUTOMOBILE-INTELLIGENT-NETWORK" }, { 0x0CB4EF, "Digience Co.,Ltd.", "DIGIENCE" }, { 0x0CB527, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0CB5DE, "Alcatel Lucent", "ALCATEL-LUCENT" }, { 0x0CB6D2, "D-Link International", "D-LINK" }, { 0x0CB771, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0CB789, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x0CB815, "Espressif Inc.", "ESPRESSIF" }, { 0x0CB8E8, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x0CB912, "JM-DATA GmbH", "JM-DATA" }, { 0x0CB937, "Ubee Interactive Co., Limited", "UBEE-INTERACTIVE" }, { 0x0CBC9F, "Apple, Inc.", "APPLE" }, { 0x0CBD51, "TCT mobile ltd", "TCT-MOBILE" }, { 0x0CBD75, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x0CBEF1, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x0CBF15, "Genetec Inc.", "GENETEC" }, { 0x0CBF3F, "Shenzhen Lencotion Technology Co.,Ltd", "SHENZHEN-LENCOTION" }, { 0x0CBF74, "Morse Micro", "MORSE-MICRO" }, { 0x0CC0C0, "MAGNETI MARELLI SISTEMAS ELECTRONICOS MEXICO", "MAGNETI-MARELLI-SISTEMAS-ELECTRONICOS-MEXICO" }, { 0x0CC3A7, "Meritec", "MERITEC" }, { 0x0CC413, "Google, Inc.", "GOOGLE" }, { 0x0CC47A, "Super Micro Computer, Inc.", "SUPER-MICRO" }, { 0x0CC47E, "EUCAST Co., Ltd.", "EUCAST" }, { 0x0CC655, "Wuxi YSTen Technology Co.,Ltd.", "WUXI-YSTEN" }, { 0x0CC66A, "Nokia Corporation", "NOKIA" }, { 0x0CC6AC, "DAGS", "DAGS" }, { 0x0CC6CC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0CC6FD, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x0CC731, "Currant, Inc.", "CURRANT" }, { 0x0CC81F, "Summer Infant, Inc.", "SUMMER-INFANT" }, { 0x0CC844, "Cambridge Mobile Telematics, Inc.", "CAMBRIDGE-MOBILE-TELEMATICS" }, { 0x0CC9C6, "Samwin Hong Kong Limited", "SAMWIN-HONG-KONG" }, { 0x0CCAFB, "TPVision Europe B.V", "TPVISION-EUROPE-B-V" }, { 0x0CCB0C, "iSYS RTS GmbH", "ISYS-RTS" }, { 0x0CCB85, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x0CCB8D, "ASCO Numatics GmbH", "ASCO-NUMATICS" }, { 0x0CCC26, "Airenetworks", "AIRENETWORKS" }, { 0x0CCC47, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x0CCDD3, "EASTRIVER TECHNOLOGY CO., LTD.", "EASTRIVER" }, { 0x0CCDFB, "EDIC Systems Inc.", "EDIC" }, { 0x0CCEF6, "Guizhou Fortuneship Technology Co., Ltd", "GUIZHOU-FORTUNESHIP" }, { 0x0CCF89, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x0CCFD1, "SPRINGWAVE Co., Ltd", "SPRINGWAVE" }, { 0x0CD0F8, "Cisco Systems, Inc", "CISCO" }, { 0x0CD292, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0CD2B5, "Binatone Telecommunication Pvt. Ltd", "BINATONE-TELECOMMUNICATION-PVT" }, { 0x0CD502, "Westell Technologies Inc.", "WESTELL-TECHNOLOGIES" }, { 0x0CD696, "Amimon Ltd", "AMIMON" }, { 0x0CD6BD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0CD746, "Apple, Inc.", "APPLE" }, { 0x0CD7C2, "Axium Technologies, Inc.", "AXIUM-TECHNOLOGIES" }, { 0x0CD86C, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0x0CD923, "GOCLOUD Networks(GAOKE Networks)", "GOCLOUD-NETWORKS-GAOKE-NETWORKS" }, { 0x0CD996, "Cisco Systems, Inc", "CISCO" }, { 0x0CD9C1, "Visteon Corporation", "VISTEON" }, { 0x0CDA41, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x0CDC7E, "Espressif Inc.", "ESPRESSIF" }, { 0x0CDCCC, "Inala Technologies", "INALA-TECHNOLOGIES" }, { 0x0CDD24, "Intel Corporate", "INTEL-CORPORATE" }, { 0x0CDDEF, "Nokia Corporation", "NOKIA" }, { 0x0CDFA4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0CE041, "iDruide", "IDRUIDE" }, { 0x0CE0DC, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x0CE0E4, "PLANTRONICS, INC.", "PLANTRONICS" }, { 0x0CE159, "Shenzhen iStartek Technology Co., Ltd.", "SHENZHEN-ISTARTEK" }, { 0x0CE441, "Apple, Inc.", "APPLE" }, { 0x0CE4A0, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x0CE5A3, "SharkNinja", "SHARKNINJA" }, { 0x0CE5D3, "DH electronics GmbH", "DH-ELECTRONICS" }, { 0x0CE709, "Fox Crypto B.V.", "FOX-CRYPTO-B-V" }, { 0x0CE725, "Microsoft Corporation", "MICROSOFT" }, { 0x0CE82F, "Bonfiglioli Vectron GmbH", "BONFIGLIOLI-VECTRON" }, { 0x0CE936, "ELIMOS srl", "ELIMOS-SRL" }, { 0x0CE99A, "ATLS ALTEC", "ATLS-ALTEC" }, { 0x0CEAC9, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0CEC80, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x0CEC84, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0x0CEC8D, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x0CEE99, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x0CEEE6, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x0CEF7C, "AnaCom Inc", "ANACOM" }, { 0x0CEFAF, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x0CF019, "Malgn Technology Co., Ltd.", "MALGN" }, { 0x0CF0B4, "Globalsat International Technology Ltd", "GLOBALSAT" }, { 0x0CF346, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x0CF361, "Java Information", "JAVA-INFORMATION" }, { 0x0CF3EE, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x0CF405, "Beijing Signalway Technologies Co.,Ltd", "BEIJING-SIGNALWAY-TECHNOLOGIES" }, { 0x0CF475, "Zliide Technologies ApS", "ZLIIDE-TECHNOLOGIES-APS" }, { 0x0CF4D5, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x0CF5A4, "Cisco Systems, Inc", "CISCO" }, { 0x0CF893, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x0CF9C0, "SKY UK LIMITED", "SKY-UK" }, { 0x0CFC18, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x0CFC83, "Airoha Technology Corp.,", "AIROHA" }, { 0x0CFD37, "SUSE Linux GmbH", "SUSE-LINUX" }, { 0x0CFE45, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x0CFE5D, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x100000, "Private", "PRIVATE" }, { 0x100020, "Apple, Inc.", "APPLE" }, { 0x10005A, "IBM Corp", "IBM" }, { 0x1000E8, "NATIONAL SEMICONDUCTOR", "NATIONAL-SEMICONDUCTOR" }, { 0x1000FD, "LaonPeople", "LAONPEOPLE" }, { 0x100177, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1001CA, "Ashley Butterworth", "ASHLEY-BUTTERWORTH" }, { 0x1002B5, "Intel Corporate", "INTEL-CORPORATE" }, { 0x100501, "PEGATRON CORPORATION", "PEGATRON" }, { 0x1005B1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x1005CA, "Cisco Systems, Inc", "CISCO" }, { 0x1005E1, "Nokia", "NOKIA" }, { 0x100645, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x1006ED, "Cisco Systems, Inc", "CISCO" }, { 0x10071D, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x100723, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x1007B6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x10082C, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x1008B1, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x10090C, "JANOME Corporation", "JANOME" }, { 0x1009F9, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x100BA9, "Intel Corporate", "INTEL-CORPORATE" }, { 0x100C24, "pomdevices, LLC", "POMDEVICES" }, { 0x100C29, "Shenzhen NORCO lntelligent Technology Co.,Ltd", "SHENZHEN-NORCO-LNTELLIGENT" }, { 0x100C6B, "NETGEAR", "NETGEAR" }, { 0x100D2F, "Online Security Pty. Ltd.", "ONLINE-SECURITY-PTY" }, { 0x100D32, "Embedian, Inc.", "EMBEDIAN" }, { 0x100D7F, "NETGEAR", "NETGEAR" }, { 0x100E2B, "NEC CASIO Mobile Communications", "NEC-CASIO-MOBILE-COMMUNICATION" }, { 0x100E7E, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x100F18, "Fu Gang Electronic(KunShan)CO.,LTD", "FU-GANG-KUNSHAN" }, { 0x101081, "zte corporation", "ZTE" }, { 0x1010B6, "McCain Inc", "MCCAIN" }, { 0x101212, "Vivo International Corporation Pty Ltd", "VIVO-PTY" }, { 0x101218, "Korins Inc.", "KORINS" }, { 0x101248, "ITG, Inc.", "ITG" }, { 0x101250, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x1012B4, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x1012D0, "zte corporation", "ZTE" }, { 0x1012FB, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x101331, "Technicolor Delivery Technologies Belgium NV", "TECHNICOLOR-DELIVERY-TECHNOLOGIES-BELGIUM-NV" }, { 0x1013EE, "Justec International Technology INC.", "JUSTEC" }, { 0x1015C1, "Zhanzuo (Beijing) Technology Co., Ltd.", "ZHANZUO-BEIJING" }, { 0x101849, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0x10189E, "Elmo Motion Control", "ELMO-MOTION-CONTROL" }, { 0x101965, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x101B54, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x101C0C, "Apple, Inc.", "APPLE" }, { 0x101D51, "8Mesh Networks Limited", "8MESH-NETWORKS" }, { 0x101DC0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x101EDA, "INGENICO TERMINALS SAS", "INGENICO-TERMINALS-SAS" }, { 0x101F74, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x102279, "ZeroDesktop, Inc.", "ZERODESKTOP" }, { 0x102407, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x102779, "Sadel S.p.A.", "SADEL" }, { 0x1027BE, "TVIP", "TVIP" }, { 0x1027F5, "TP-Link Corporation Limited", "TP-LINK" }, { 0x102831, "Morion Inc.", "MORION" }, { 0x102834, "SALZ Automation GmbH", "SALZ-AUTOMATION" }, { 0x102959, "Apple, Inc.", "APPLE" }, { 0x1029AB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x102AB3, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x102B41, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x102C6B, "AMPAK Technology, Inc.", "AMPAK" }, { 0x102C83, "XIMEA", "XIMEA" }, { 0x102C8D, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0x102CEF, "EMU Electronic AG", "EMU" }, { 0x102D31, "Shenzhen Americas Trading Company LLC", "SHENZHEN-AMERICAS-TRADING-COMPANY" }, { 0x102D41, "Sichuan AI-Link Technology Co., Ltd.", "SICHUAN-AI-LINK" }, { 0x102D96, "Looxcie Inc.", "LOOXCIE" }, { 0x102E00, "Intel Corporate", "INTEL-CORPORATE" }, { 0x102EAF, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x102F6B, "Microsoft Corporation", "MICROSOFT" }, { 0x102FA3, "Shenzhen Uvision-tech Technology Co.Ltd", "SHENZHEN-UVISION-TECH" }, { 0x103025, "Apple, Inc.", "APPLE" }, { 0x103034, "Cara Systems", "CARA" }, { 0x103047, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x10321D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x10327E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x103378, "FLECTRON Co., LTD", "FLECTRON" }, { 0x1033BF, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x10341B, "Spacelink", "SPACELINK" }, { 0x10364A, "Boston Dynamics", "BOSTON-DYNAMICS" }, { 0x103711, "NORBIT ITS", "NORBIT-ITS" }, { 0x10381F, "Sichuan AI-Link Technology Co., Ltd.", "SICHUAN-AI-LINK" }, { 0x103917, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x10394E, "Hisense broadband multimedia technology Co.,Ltd", "HISENSE-BROADBAND-MULTIMEDIA" }, { 0x1039E9, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x103B59, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x103C59, "zte corporation", "ZTE" }, { 0x103D0A, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x103D1C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x103D3E, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x103DEA, "HFC Technology (Beijing) Ltd. Co.", "HFC-BEIJING" }, { 0x103F44, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x1040F3, "Apple, Inc.", "APPLE" }, { 0x104121, "TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO", "TELLESCOM-INDUSTRIA-E-COMERCIO-EM-TELECOMUNICACAO" }, { 0x10417F, "Apple, Inc.", "APPLE" }, { 0x104369, "Soundmax Electronic Limited", "SOUNDMAX" }, { 0x104400, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x10445A, "Shaanxi Hitech Electronic Co., LTD", "SHAANXI-HITECH" }, { 0x1045BE, "Norphonic AS", "NORPHONIC-AS" }, { 0x1045F8, "LNT-Automation GmbH", "LNT-AUTOMATION" }, { 0x1046B4, "FormericaOE", "FORMERICAOE" }, { 0x104738, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0x104780, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1048B1, "Beijing Duokan Technology Limited", "BEIJING-DUOKAN" }, { 0x104963, "HARTING K.K.", "HARTING-K-K" }, { 0x104A7D, "Intel Corporate", "INTEL-CORPORATE" }, { 0x104B46, "Mitsubishi Electric Corporation", "MITSUBISHI-ELECTRIC" }, { 0x104C43, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x104D15, "Viaanix Inc", "VIAANIX" }, { 0x104D77, "Innovative Computer Engineering", "INNOVATIVE-ENGINEERING" }, { 0x104E07, "Shanghai Genvision Industries Co.,Ltd", "SHANGHAI-GENVISION-INDUSTRIES" }, { 0x104E89, "Garmin International", "GARMIN" }, { 0x104F58, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x104FA8, "Sony Corporation", "SONY" }, { 0x105072, "Sercomm Corporation.", "SERCOMM" }, { 0x105107, "Intel Corporate", "INTEL-CORPORATE" }, { 0x105172, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x10521C, "Espressif Inc.", "ESPRESSIF" }, { 0x105403, "INTARSO GmbH", "INTARSO" }, { 0x1054D2, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x1055E4, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x105611, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x1056CA, "Peplink International Ltd.", "PEPLINK" }, { 0x105887, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x105917, "Tonal", "TONAL" }, { 0x105932, "Roku, Inc", "ROKU" }, { 0x105A17, "Tuya Smart Inc.", "TUYA-SMART" }, { 0x105AF7, "ADB Italia", "ADB-ITALIA" }, { 0x105BAD, "Mega Well Limited", "MEGA-WELL" }, { 0x105C3B, "Perma-Pipe, Inc.", "PERMA-PIPE" }, { 0x105CBF, "DuroByte Inc", "DUROBYTE" }, { 0x105DDC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x105F02, "Private", "PRIVATE" }, { 0x105F06, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x105F49, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x105FD4, "Tendyron Corporation", "TENDYRON" }, { 0x10604B, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x1062C9, "Adatis GmbH & Co. KG", "ADATIS" }, { 0x1062D0, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x1062E5, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x1062EB, "D-Link International", "D-LINK" }, { 0x10634B, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x1063C8, "Liteon Technology Corporation", "LITEON" }, { 0x1064E2, "ADFweb.com s.r.l.", "ADFWEB-COM" }, { 0x106530, "Dell Inc.", "DELL" }, { 0x1065A3, "Panamax LLC", "PANAMAX" }, { 0x1065CF, "IQSIM", "IQSIM" }, { 0x106650, "Robert Bosch JuP1", "ROBERT-BOSCH-JUP1" }, { 0x106682, "NEC Platforms, Ltd.", "NEC-PLATFORMS" }, { 0x106838, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x10683F, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x106F3F, "BUFFALO.INC", "BUFFALO" }, { 0x106FD9, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x106FEF, "Ad-Sol Nissin Corp", "AD-SOL-NISSIN" }, { 0x1070FD, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0x107100, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x1071B3, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x1071F9, "Cloud Telecomputers, LLC", "CLOUD-TELECOMPUTERS" }, { 0x1071FA, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x107223, "TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO", "TELLESCOM-INDUSTRIA-E-COMERCIO-EM-TELECOMUNICACAO" }, { 0x1073EB, "Infiniti Electro-Optics", "INFINITI-ELECTRO-OPTICS" }, { 0x10746F, "MOTOROLA SOLUTIONS MALAYSIA SDN. BHD.", "MOTOROLA-SOLUTIONS-MALAYSIA" }, { 0x107636, "Earda Technologies co Ltd", "EARDA-TECHNOLOGIES" }, { 0x10768A, "EoCell", "EOCELL" }, { 0x107717, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0x1077B0, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x1077B1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x10785B, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x107873, "Shenzhen Jinkeyi Communication Co., Ltd.", "SHENZHEN-JINKEYI-COMMUNICATION" }, { 0x1078CE, "Hanvit SI, Inc.", "HANVIT-SI" }, { 0x1078D2, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x107A86, "U&U ENGINEERING INC.", "U-U-ENGINEERING" }, { 0x107B44, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x107B93, "Zhen Shi Information Technology (Shanghai) Co., Ltd.", "ZHEN-SHI-INFORMATION-SHANGHAI" }, { 0x107BA4, "Olive & Dove Co.,Ltd.", "OLIVE-DOVE" }, { 0x107BCE, "Nokia", "NOKIA" }, { 0x107BEF, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x107D1A, "Dell Inc.", "DELL" }, { 0x1081B4, "Hunan Greatwall Galaxy Science and Technology Co.,Ltd.", "HUNAN-GREATWALL-GALAXY-SCIENCE" }, { 0x10823D, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0x108286, "Luxshare Precision Industry Co.,Ltd", "LUXSHARE-PRECISION-INDUSTRY" }, { 0x1082D7, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x1083D2, "Microseven Systems, LLC", "MICROSEVEN" }, { 0x10868C, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x10880F, "Daruma Telecomunicações e Informática S.A.", "DARUMA-TELECOMUNICAES-E-INFORMTICA" }, { 0x1088CE, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x1089FB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x108A1B, "RAONIX Inc.", "RAONIX" }, { 0x108B6A, "Antailiye Technology Co.,Ltd", "ANTAILIYE" }, { 0x108CCF, "Cisco Systems, Inc", "CISCO" }, { 0x108EBA, "Molekule", "MOLEKULE" }, { 0x108EE0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x108FFE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1091A8, "Espressif Inc.", "ESPRESSIF" }, { 0x1091D1, "Intel Corporate", "INTEL-CORPORATE" }, { 0x109266, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x109397, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x1093E9, "Apple, Inc.", "APPLE" }, { 0x109497, "Logitech Hong Kong", "LOGITECH-HONG-KONG" }, { 0x1094BB, "Apple, Inc.", "APPLE" }, { 0x10954B, "Megabyte Ltd.", "MEGABYTE" }, { 0x10961A, "CHIPSEA TECHNOLOGIES (SHENZHEN) CORP.", "CHIPSEA-TECHNOLOGIES-SHENZHEN" }, { 0x109693, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x1097BD, "Espressif Inc.", "ESPRESSIF" }, { 0x109826, "Nokia", "NOKIA" }, { 0x109836, "Dell Inc.", "DELL" }, { 0x1098C3, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x109AB9, "Tosibox Oy", "TOSIBOX-OY" }, { 0x109ADD, "Apple, Inc.", "APPLE" }, { 0x109C70, "Prusa Research s.r.o.", "PRUSA-RESEARCH-S-R-O" }, { 0x109D7A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x109D9C, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x109E3A, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0x109F41, "Apple, Inc.", "APPLE" }, { 0x109F4F, "New H3C Intelligence Terminal Co., Ltd.", "NEW-H3C-INTELLIGENCE-TERMINAL" }, { 0x109FA9, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x10A13B, "FUJIKURA RUBBER LTD.", "FUJIKURA-RUBBER" }, { 0x10A24E, "GOLD3LINK ELECTRONICS CO., LTD", "GOLD3LINK-ELECTRONICS" }, { 0x10A3B8, "Iskratel d.o.o.", "ISKRATEL-D-O-O" }, { 0x10A4B9, "Baidu Online Network Technology (Beijing) Co., Ltd", "BAIDU-ONLINE-NETWORK-BEIJING" }, { 0x10A4BE, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x10A4DA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x10A51D, "Intel Corporate", "INTEL-CORPORATE" }, { 0x10A562, "Iton Technology Corp.", "ITON" }, { 0x10A5D0, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x10A659, "Mobile Create Co.,Ltd.", "MOBILE-CREATE" }, { 0x10A743, "SK Mtek Limited", "SK-MTEK" }, { 0x10A793, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x10A829, "Cisco Systems, Inc", "CISCO" }, { 0x10A932, "Beijing Cyber Cloud Technology Co. ,Ltd.", "BEIJING-CYBER-CLOUD" }, { 0x10AE60, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x10AEA5, "Duskrise inc.", "DUSKRISE" }, { 0x10AF78, "Shenzhen ATUE Technology Co., Ltd", "SHENZHEN-ATUE" }, { 0x10B1DF, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x10B1F8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x10B232, "Qingdao Intelligent&Precise Electronics Co.,Ltd.", "QINGDAO-INTELLIGENT-PRECISE-ELECTRONICS" }, { 0x10B26B, "base Co.,Ltd.", "BASE" }, { 0x10B36F, "Bowei Technology Company Limited", "BOWEI-COMPANY" }, { 0x10B3C6, "Cisco Systems, Inc", "CISCO" }, { 0x10B3D5, "Cisco Systems, Inc", "CISCO" }, { 0x10B3D6, "Cisco Systems, Inc", "CISCO" }, { 0x10B588, "Apple, Inc.", "APPLE" }, { 0x10B713, "Private", "PRIVATE" }, { 0x10B7A8, "CableFree Networks Limited", "CABLEFREE-NETWORKS" }, { 0x10B7F6, "Plastoform Industries Ltd.", "PLASTOFORM-INDUSTRIES" }, { 0x10B9C4, "Apple, Inc.", "APPLE" }, { 0x10B9F7, "Niko-Servodan", "NIKO-SERVODAN" }, { 0x10B9FE, "Lika srl", "LIKA-SRL" }, { 0x10BAA5, "GANA I&C CO., LTD", "GANA-I-C" }, { 0x10BBF3, "HUNAN FN-LINK TECHNOLOGY LIMITED", "HUNAN-FN-LINK" }, { 0x10BC97, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x10BD18, "Cisco Systems, Inc", "CISCO" }, { 0x10BD3A, "Apple, Inc.", "APPLE" }, { 0x10BD55, "Q-Lab Corporation", "Q-LAB" }, { 0x10BE99, "Netberg", "NETBERG" }, { 0x10BEF5, "D-Link International", "D-LINK" }, { 0x10BF48, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x10BF67, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x10C07C, "Blu-ray Disc Association", "BLU-RAY-DISC-ASSOCIATION" }, { 0x10C172, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x10C22F, "China Entropy Co., Ltd.", "CHINA-ENTROPY" }, { 0x10C25A, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x10C2BA, "UTT Co., Ltd.", "UTT" }, { 0x10C37B, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x10C3AB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x10C4CA, "HUMAX Co., Ltd.", "HUMAX" }, { 0x10C586, "BIO SOUND LAB CO., LTD.", "BIO-SOUND-LAB" }, { 0x10C595, "Lenovo", "LENOVO" }, { 0x10C60C, "Domino UK Ltd", "DOMINO-UK" }, { 0x10C61F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x10C65E, "Adapt-IP", "ADAPT-IP" }, { 0x10C67E, "SHENZHEN JUCHIN TECHNOLOGY CO., LTD", "SHENZHEN-JUCHIN" }, { 0x10C6FC, "Garmin International", "GARMIN" }, { 0x10C73F, "Midas Klark Teknik Ltd", "MIDAS-KLARK-TEKNIK" }, { 0x10C753, "Qingdao Intelligent&Precise Electronics Co.,Ltd.", "QINGDAO-INTELLIGENT-PRECISE-ELECTRONICS" }, { 0x10C9CA, "Ace Technology Corp.", "ACE" }, { 0x10CA81, "PRECIA", "PRECIA" }, { 0x10CABF, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x10CC1B, "Liverock technologies,INC", "LIVEROCK-TECHNOLOGIES" }, { 0x10CCDB, "AXIMUM PRODUITS ELECTRONIQUES", "AXIMUM-PRODUITS-ELECTRONIQUES" }, { 0x10CD6E, "FISYS", "FISYS" }, { 0x10CDAE, "Avaya Inc", "AVAYA" }, { 0x10CDB6, "Essential Products, Inc.", "ESSENTIAL-PRODUCTS" }, { 0x10CE02, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x10CE45, "Miromico AG", "MIROMICO" }, { 0x10CEA9, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x10CEE9, "Apple, Inc.", "APPLE" }, { 0x10CF0F, "Apple, Inc.", "APPLE" }, { 0x10D07A, "AMPAK Technology, Inc.", "AMPAK" }, { 0x10D0AB, "zte corporation", "ZTE" }, { 0x10D1DC, "INSTAR Deutschland GmbH", "INSTAR-DEUTSCHLAND" }, { 0x10D38A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x10D542, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x10D561, "Tuya Smart Inc.", "TUYA-SMART" }, { 0x10D680, "Tendyron Corporation", "TENDYRON" }, { 0x10D7B0, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x10DA43, "NETGEAR", "NETGEAR" }, { 0x10DA49, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x10DC4A, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x10DCB6, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x10DDB1, "Apple, Inc.", "APPLE" }, { 0x10DDF4, "Maxway Electronics CO.,LTD", "MAXWAY-ELECTRONICS" }, { 0x10DEE4, "automationNEXT GmbH", "AUTOMATIONNEXT" }, { 0x10DF8B, "Shenzhen CareDear Communication Technology Co.,Ltd", "SHENZHEN-CAREDEAR-COMMUNICATION" }, { 0x10DFFC, "Siemens AG", "SIEMENS" }, { 0x10E177, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x10E2C9, "Apple, Inc.", "APPLE" }, { 0x10E2D5, "Qi Hardware Inc.", "QI-HARDWARE" }, { 0x10E3C7, "Seohwa Telecom", "SEOHWA-TELECOM" }, { 0x10E4AF, "APR, LLC", "APR" }, { 0x10E4C2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x10E68F, "KWANGSUNG ELECTRONICS KOREA CO.,LTD.", "KWANGSUNG-ELECTRONICS-KOREA" }, { 0x10E6AE, "Source Technologies, LLC", "SOURCE-TECHNOLOGIES" }, { 0x10E77A, "STMicrolectronics International NV", "STMICROLECTRONICS-NV" }, { 0x10E7C6, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x10E840, "ZOWEE TECHNOLOGY(HEYUAN) CO., LTD.", "ZOWEE-HEYUAN" }, { 0x10E878, "Nokia", "NOKIA" }, { 0x10E8A7, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x10E8EE, "PhaseSpace", "PHASESPACE" }, { 0x10E953, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x10EA59, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x10EC81, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x10EED9, "Canoga Perkins Corporation", "CANOGA-PERKINS" }, { 0x10F005, "Intel Corporate", "INTEL-CORPORATE" }, { 0x10F068, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x10F163, "TNK CO.,LTD", "TNK" }, { 0x10F1F2, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x10F311, "Cisco Systems, Inc", "CISCO" }, { 0x10F3DB, "Gridco Systems, Inc.", "GRIDCO" }, { 0x10F49A, "T3 Innovation", "T3-INNOVATION" }, { 0x10F605, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x10F60A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x10F681, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x10F920, "Cisco Systems, Inc", "CISCO" }, { 0x10F96F, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x10F9EB, "Industria Fueguina de Relojería Electrónica s.a.", "INDUSTRIA-FUEGUINA-DE-RELOJERA-ELECTRNICA" }, { 0x10F9EE, "Nokia Corporation", "NOKIA" }, { 0x10FACE, "Reacheng Communication Technology Co.,Ltd", "REACHENG-COMMUNICATION" }, { 0x10FBF0, "KangSheng LTD.", "KANGSHENG" }, { 0x10FC33, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x10FC54, "Shany Electronic Co., Ltd.", "SHANY" }, { 0x10FCB6, "mirusystems CO.,LTD", "MIRUSYSTEMS" }, { 0x10FEED, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x1100AA, "Private", "PRIVATE" }, { 0x111111, "Private", "PRIVATE" }, { 0x140020, "LongSung Technology (Shanghai) Co.,Ltd.", "LONGSUNG-SHANGHAI" }, { 0x14007D, "zte corporation", "ZTE" }, { 0x1400E9, "Mitel Networks Corporation", "MITEL-NETWORKS" }, { 0x140152, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x14019C, "Ubyon Inc.", "UBYON" }, { 0x1402EC, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x140467, "SNK Technologies Co.,Ltd.", "SNK-TECHNOLOGIES" }, { 0x140708, "CP PLUS GMBH & CO. KG", "CP-PLUS" }, { 0x1407E0, "Abrantix AG", "ABRANTIX" }, { 0x1409B4, "zte corporation", "ZTE" }, { 0x1409DC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x140A29, "Tiinlab Corporation", "TIINLAB" }, { 0x140AC5, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x140C5B, "PLNetworks", "PLNETWORKS" }, { 0x140C76, "FREEBOX SAS", "FREEBOX-SAS" }, { 0x140D4F, "Flextronics International", "FLEXTRONICS" }, { 0x140F42, "Nokia", "NOKIA" }, { 0x140FA6, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x14109F, "Apple, Inc.", "APPLE" }, { 0x141114, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x14115D, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0x14130B, "Garmin International", "GARMIN" }, { 0x141330, "Anakreon UK LLP", "ANAKREON-UK-LLP" }, { 0x141333, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x141346, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0x141357, "ATP Electronics, Inc.", "ATP-ELECTRONICS" }, { 0x1413FB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x14144B, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0x141459, "Vodafone Italia S.p.A.", "VODAFONE-ITALIA" }, { 0x1414E6, "Ningbo Sanhe Digital Co.,Ltd", "NINGBO-SANHE-DIGITAL" }, { 0x14157C, "TOKYO COSMOS ELECTRIC CO.,LTD.", "TOKYO-COSMOS-ELECTRIC" }, { 0x14169D, "Cisco Systems, Inc", "CISCO" }, { 0x14169E, "Wingtech Group (HongKong)Limited", "WINGTECH-GROUP-HONGKONG" }, { 0x14172A, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x141844, "Xenon Smart Teknoloji Ltd.", "XENON-SMART-TEKNOLOJI" }, { 0x141877, "Dell Inc.", "DELL" }, { 0x1418C3, "Intel Corporate", "INTEL-CORPORATE" }, { 0x141973, "Beijing Yunyi Times Technology Co.,Ltd", "BEIJING-YUNYI-TIMES" }, { 0x141A51, "Treetech Sistemas Digitais", "TREETECH-SISTEMAS-DIGITAIS" }, { 0x141A97, "Apple, Inc.", "APPLE" }, { 0x141AA3, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x141AAA, "Metal Work SpA", "METAL-WORK-SPA" }, { 0x141B30, "Shenzhen Yipingfang Network Technology Co., Ltd.", "SHENZHEN-YIPINGFANG-NETWORK" }, { 0x141BBD, "Volex Inc.", "VOLEX" }, { 0x141BF0, "Intellimedia Systems Ltd", "INTELLIMEDIA" }, { 0x141F78, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x141FBA, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x14205E, "Apple, Inc.", "APPLE" }, { 0x142103, "Calix Inc.", "CALIX" }, { 0x142233, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x14223B, "Google, Inc.", "GOOGLE" }, { 0x1422DB, "eero inc.", "EERO" }, { 0x14230A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1423D7, "EUTRONIX CO., LTD.", "EUTRONIX" }, { 0x1423F2, "Broadcom Limited", "BROADCOM" }, { 0x142475, "4DReplay, Inc", "4DREPLAY" }, { 0x142882, "MIDICOM ELECTRONICS CO.LTD", "MIDICOM-ELECTRONICS" }, { 0x142971, "NEMOA ELECTRONICS (HK) CO. LTD", "NEMOA-ELECTRONICS-HK" }, { 0x142A14, "ShenZhen Selenview Digital Technology Co.,Ltd", "SHENZHEN-SELENVIEW-DIGITAL" }, { 0x142BD2, "Armtel Ltd.", "ARMTEL" }, { 0x142BD6, "Guangdong Appscomm Co.,Ltd", "GUANGDONG-APPSCOMM" }, { 0x142C78, "GooWi Wireless Technology Co., Limited", "GOOWI-WIRELESS" }, { 0x142D27, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x142D41, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x142D4D, "Apple, Inc.", "APPLE" }, { 0x142D79, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x142D8B, "Incipio Technologies, Inc", "INCIPIO-TECHNOLOGIES" }, { 0x142DF5, "Amphitech", "AMPHITECH" }, { 0x142E5E, "Sercomm Corporation.", "SERCOMM" }, { 0x142FFD, "LT SECURITY INC", "LT-SECURITY" }, { 0x143004, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x14307A, "Avermetrics", "AVERMETRICS" }, { 0x1430C6, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x1432D1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x143365, "TEM Mobile Limited", "TEM-MOBILE" }, { 0x143375, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x1434F6, "LV SOLUTION SDN. BHD.", "LV-SOLUTION" }, { 0x14358B, "Mediabridge Products, LLC.", "MEDIABRIDGE-PRODUCTS" }, { 0x1435B3, "Future Designs, Inc.", "FUTURE-DESIGNS" }, { 0x143605, "Nokia Corporation", "NOKIA" }, { 0x1436C6, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0x143719, "PT Prakarsa Visi Valutama", "PT-PRAKARSA-VISI-VALUTAMA" }, { 0x14373B, "PROCOM Systems", "PROCOM" }, { 0x143AEA, "Dynapower Company LLC", "DYNAPOWER-COMPANY" }, { 0x143B42, "Realfit(Shenzhen) Intelligent Technology Co., Ltd", "REALFIT-SHENZHEN-INTELLIGENT" }, { 0x143CC3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x143DF2, "Beijing Shidai Hongyuan Network Communication Co.,Ltd", "BEIJING-SHIDAI-HONGYUAN-NETWORK-COMMUNICATION" }, { 0x143E60, "Nokia", "NOKIA" }, { 0x143EBF, "zte corporation", "ZTE" }, { 0x143F27, "Noccela Oy", "NOCCELA-OY" }, { 0x143FA6, "Sony Home Entertainment&Sound Products Inc", "SONY-HOME-ENTERTAINMENT-SOUND-PRODUCTS" }, { 0x143FC3, "SnapAV", "SNAPAV" }, { 0x144146, "Honeywell (China) Co., LTD", "HONEYWELL-CHINA" }, { 0x1441E2, "Monaco Enterprises, Inc.", "MONACO-ENTERPRISES" }, { 0x1442FC, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x144319, "Creative&Link Technology Limited", "CREATIVE-LINK" }, { 0x14444A, "Apollo Seiko Ltd.", "APOLLO-SEIKO" }, { 0x14448F, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0x144658, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1446E4, "AVISTEL", "AVISTEL" }, { 0x14472D, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x144802, "THE YEOLRIM Co.,Ltd.", "THE-YEOLRIM" }, { 0x14488B, "Shenzhen Doov Technology Co.,Ltd", "SHENZHEN-DOOV" }, { 0x144920, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x144978, "Digital Control Incorporated", "DIGITAL-CONTROL-INCORPORATED" }, { 0x1449BC, "DrayTek Corp.", "DRAYTEK" }, { 0x1449D4, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x1449E0, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x144C1A, "Max Communication GmbH", "MAX-COMMUNICATION" }, { 0x144D67, "Zioncom Electronics (Shenzhen) Ltd.", "ZIONCOM-ELECTRONICS-SHENZHEN" }, { 0x144E2A, "Ciena Corporation", "CIENA" }, { 0x144E34, "Remote Solution", "REMOTE-SOLUTION" }, { 0x144F8A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x144FD7, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x145051, "SHARP Corporation", "SHARP" }, { 0x145120, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x14517E, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x145290, "KNS Group LLC (YADRO Company)", "KNS-GROUP-LLC-YADRO-COMPANY" }, { 0x145412, "Entis Co., Ltd.", "ENTIS" }, { 0x145594, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x14563A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x145645, "Savitech Corp.", "SAVITECH" }, { 0x14568E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x145790, "Qingdao Haier Technology Co.,Ltd", "QINGDAO-HAIER" }, { 0x14579F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x145808, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x1458D0, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x1459C0, "NETGEAR", "NETGEAR" }, { 0x1459C3, "Creative Chips GmbH", "CREATIVE-CHIPS" }, { 0x145A05, "Apple, Inc.", "APPLE" }, { 0x145A83, "Logi-D inc", "LOGI-D" }, { 0x145AFC, "Liteon Technology Corporation", "LITEON" }, { 0x145BB9, "ConMet", "CONMET" }, { 0x145BD1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x145BE1, "nyantec GmbH", "NYANTEC" }, { 0x145E45, "Bamboo Systems Group", "BAMBOO-GROUP" }, { 0x145E69, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x145F94, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x146080, "zte corporation", "ZTE" }, { 0x1460CB, "Apple, Inc.", "APPLE" }, { 0x146102, "Alps Alpine", "ALPS-ALPINE" }, { 0x14612F, "Avaya Inc", "AVAYA" }, { 0x1461A4, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x146308, "JABIL CIRCUIT (SHANGHAI) LTD.", "JABIL-CIRCUIT-SHANGHAI" }, { 0x14656A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1466B7, "Advanced Design Technology Pty Ltd", "ADVANCED-DESIGN-PTY" }, { 0x1469A2, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x146A0B, "Cypress Electronics Limited", "CYPRESS-ELECTRONICS" }, { 0x146B72, "Shenzhen Fortune Ship Technology Co., Ltd.", "SHENZHEN-FORTUNE-SHIP" }, { 0x146B9A, "zte corporation", "ZTE" }, { 0x146B9C, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x146E0A, "Private", "PRIVATE" }, { 0x147373, "TUBITAK UEKAE", "TUBITAK-UEKAE" }, { 0x147411, "RIM", "RIM" }, { 0x14755B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x147590, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x147740, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x14780B, "Varex Imaging Deutschland AG", "VAREX-IMAGING-DEUTSCHLAND" }, { 0x1479F3, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x147BAC, "Nokia", "NOKIA" }, { 0x147D05, "SERCOMM PHILIPPINES INC", "SERCOMM-PHILIPPINES" }, { 0x147DB3, "JOA TELECOM.CO.,LTD", "JOA-TELECOM" }, { 0x147DC5, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x147DDA, "Apple, Inc.", "APPLE" }, { 0x147EA1, "Britania Eletrônicos S.A.", "BRITANIA-ELETRNICOS" }, { 0x147F0F, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x14825B, "Hefei Radio Communication Technology Co., Ltd", "HEFEI-RADIO-COMMUNICATION" }, { 0x148430, "MITAC COMPUTING TECHNOLOGY CORPORATION", "MITAC-COMPUTING" }, { 0x148473, "Cisco Systems, Inc", "CISCO" }, { 0x148477, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x148509, "Apple, Inc.", "APPLE" }, { 0x148554, "Earda Technologies co Ltd", "EARDA-TECHNOLOGIES" }, { 0x14857F, "Intel Corporate", "INTEL-CORPORATE" }, { 0x148692, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x14876A, "Apple, Inc.", "APPLE" }, { 0x1488E6, "Apple, Inc.", "APPLE" }, { 0x148919, "2bps", "2BPS" }, { 0x14893E, "VIXTEL TECHNOLOGIES LIMTED", "VIXTEL-TECHNOLOGIES-LIMTED" }, { 0x1489CB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1489FD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x148A70, "ADS GmbH", "ADS" }, { 0x148C4A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x148F21, "Garmin International", "GARMIN" }, { 0x148FC6, "Apple, Inc.", "APPLE" }, { 0x149090, "KongTop industrial(shen zhen)CO.,LTD", "KONGTOP-INDUSTRIAL-SHEN-ZHEN" }, { 0x149138, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x149182, "Belkin International Inc.", "BELKIN" }, { 0x149346, "PNI sensor corporation", "PNI-SENSOR" }, { 0x14942F, "USYS CO.,LTD.", "USYS" }, { 0x149448, "BLU CASTLE S.A.", "BLU-CASTLE" }, { 0x14946C, "Apple, Inc.", "APPLE" }, { 0x1495CE, "Apple, Inc.", "APPLE" }, { 0x14962D, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x1496E5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x149877, "Apple, Inc.", "APPLE" }, { 0x14987D, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x14993E, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x1499E2, "Apple, Inc.", "APPLE" }, { 0x149A10, "Microsoft Corporation", "MICROSOFT" }, { 0x149B2F, "JiangSu ZhongXie Intelligent Technology co., LTD", "JIANGSU-ZHONGXIE-INTELLIGENT" }, { 0x149BD7, "MULI MUWAI FURNITURE QIDONG CO., LTD", "MULI-MUWAI-FURNITURE-QIDONG" }, { 0x149BF3, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x149CEF, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x149D09, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x149D99, "Apple, Inc.", "APPLE" }, { 0x149E5D, "JSC IB Reform", "JSC-IB-REFORM" }, { 0x149ECF, "Dell Inc.", "DELL" }, { 0x149F3C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x149F43, "Cisco Meraki", "CISCO-MERAKI" }, { 0x149FB6, "GUANGDONG GENIUS TECHNOLOGY CO., LTD.", "GUANGDONG-GENIUS" }, { 0x149FE8, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0x14A0F8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x14A1BF, "ASSA ABLOY Korea Co., Ltd Unilock", "ASSA-ABLOY-KOREA-UNILOCK" }, { 0x14A2A0, "Cisco Systems, Inc", "CISCO" }, { 0x14A32F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x14A364, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x14A3B4, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x14A417, "Shenzhen Belon Technology CO.,LTD", "SHENZHEN-BELON" }, { 0x14A51A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x14A62C, "S.M. Dezac S.A.", "S-M-DEZAC" }, { 0x14A72B, "currentoptronics Pvt.Ltd", "CURRENTOPTRONICS-PVT" }, { 0x14A78B, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0x14A86B, "ShenZhen Telacom Science&Technology Co., Ltd", "SHENZHEN-TELACOM-SCIENCE" }, { 0x14A9D0, "F5 Networks, Inc.", "F5-NETWORKS" }, { 0x14A9E3, "MST CORPORATION", "MST" }, { 0x14AB02, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x14AB56, "WUXI FUNIDE DIGITAL CO.,LTD", "WUXI-FUNIDE-DIGITAL" }, { 0x14ABC5, "Intel Corporate", "INTEL-CORPORATE" }, { 0x14ABEC, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x14ABF0, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x14AC60, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x14ADCA, "China Mobile Iot Limited company", "CHINA-MOBILE-IOT-COMPANY" }, { 0x14AE85, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x14AEDB, "VTech Telecommunications Ltd.", "VTECH-TELECOMMUNICATIONS" }, { 0x14B126, "Industrial Software Co", "INDUSTRIAL-SOFTWARE" }, { 0x14B1C8, "InfiniWing, Inc.", "INFINIWING" }, { 0x14B2E5, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0x14B31F, "Dell Inc.", "DELL" }, { 0x14B370, "Gigaset Digital Technology (Shenzhen) Co., Ltd.", "GIGASET-DIGITAL-SHENZHEN" }, { 0x14B3A1, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x14B457, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x14B484, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x14B73D, "ARCHEAN Technologies", "ARCHEAN-TECHNOLOGIES" }, { 0x14B7F8, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x14B837, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x14B968, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x14BB6E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x14BD61, "Apple, Inc.", "APPLE" }, { 0x14C03E, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x14C050, "GUANGDONG GENIUS TECHNOLOGY CO., LTD.", "GUANGDONG-GENIUS" }, { 0x14C089, "DUNE HD LTD", "DUNE-HD" }, { 0x14C0A1, "UCloud Technology Co., Ltd.", "UCLOUD" }, { 0x14C126, "Nokia Corporation", "NOKIA" }, { 0x14C14E, "Google, Inc.", "GOOGLE" }, { 0x14C1FF, "ShenZhen QianHai Comlan communication Co.,LTD", "SHENZHEN-QIANHAI-COMLAN-COMMUNICATION" }, { 0x14C213, "Apple, Inc.", "APPLE" }, { 0x14C21D, "Sabtech Industries", "SABTECH-INDUSTRIES" }, { 0x14C35E, "FibRSol Global Network Limited", "FIBRSOL-GLOBAL-NETWORK" }, { 0x14C3C2, "K.A. Schmersal GmbH & Co. KG", "K-A-SCHMERSAL" }, { 0x14C697, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x14C88B, "Apple, Inc.", "APPLE" }, { 0x14C913, "LG Electronics", "LG-ELECTRONICS" }, { 0x14C9CF, "Sigmastar Technology Ltd.", "SIGMASTAR" }, { 0x14CA56, "zte corporation", "ZTE" }, { 0x14CAA0, "Hu&Co", "HU" }, { 0x14CB19, "HP Inc.", "HP" }, { 0x14CB65, "Microsoft Corporation", "MICROSOFT" }, { 0x14CC20, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x14CCB3, "AO GK NATEKS", "AO-GK-NATEKS" }, { 0x14CF8D, "OHSUNG", "OHSUNG" }, { 0x14CF92, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x14CFE2, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x14D00D, "Apple, Inc.", "APPLE" }, { 0x14D11F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x14D169, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x14D19E, "Apple, Inc.", "APPLE" }, { 0x14D424, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x14D4FE, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x14D64D, "D-Link International", "D-LINK" }, { 0x14D76E, "CONCH ELECTRONIC Co.,Ltd", "CONCH" }, { 0x14D864, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x14DAE9, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x14DB85, "S NET MEDIA", "S-NET-MEDIA" }, { 0x14DC51, "Xiamen Cheerzing IOT Technology Co.,Ltd.", "XIAMEN-CHEERZING-IOT" }, { 0x14DCE2, "THALES AVS France", "THALES-AVS-FRANCE" }, { 0x14DD02, "Liangang Optoelectronic Technology CO., Ltd.", "LIANGANG-OPTOELECTRONIC" }, { 0x14DD9C, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x14DDA9, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x14DDE5, "MPMKVVCL", "MPMKVVCL" }, { 0x14DE39, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x14E4EC, "mLogic LLC", "MLOGIC" }, { 0x14E6E4, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x14E7C8, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x14E9B2, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x14EB08, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x14EB33, "BSMediasoft Co., Ltd.", "BSMEDIASOFT" }, { 0x14EBB6, "TP-Link Corporation Limited", "TP-LINK" }, { 0x14EDA5, "Wächter GmbH Sicherheitssysteme", "WACHTER-SICHERHEITSSYSTEME" }, { 0x14EDBB, "2Wire Inc", "2WIRE" }, { 0x14EDE4, "Kaiam Corporation", "KAIAM" }, { 0x14EE9D, "AirNav Systems LLC", "AIRNAV" }, { 0x14EFCF, "SCHREDER", "SCHREDER" }, { 0x14F0C5, "Xtremio Ltd.", "XTREMIO" }, { 0x14F287, "Apple, Inc.", "APPLE" }, { 0x14F28E, "ShenYang ZhongKe-Allwin Technology Co.LTD", "SHENYANG-ZHONGKE-ALLWIN" }, { 0x14F42A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x14F592, "Shenzhen SDG DONZHI Technology Co., Ltd", "SHENZHEN-SDG-DONZHI" }, { 0x14F5F9, "HUNAN FN-LINK TECHNOLOGY LIMITED", "HUNAN-FN-LINK" }, { 0x14F65A, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x14F6D8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x14F893, "Wuhan FiberHome Digital Technology Co.,Ltd.", "WUHAN-FIBERHOME-DIGITAL" }, { 0x14FB70, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x14FEAF, "SAGITTAR LIMITED", "SAGITTAR" }, { 0x14FEB5, "Dell Inc.", "DELL" }, { 0x18002D, "Sony Corporation", "SONY" }, { 0x1800DB, "Fitbit Inc.", "FITBIT" }, { 0x18017D, "Harbin Arteor technology co., LTD", "HARBIN-ARTEOR" }, { 0x1801E3, "Bittium Wireless Ltd", "BITTIUM-WIRELESS" }, { 0x1801F1, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x18022D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1802AE, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x180373, "Dell Inc.", "DELL" }, { 0x1803FA, "IBT Interfaces", "IBT-INTERFACES" }, { 0x1804ED, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x180675, "Dilax Intelcom GmbH", "DILAX-INTELCOM" }, { 0x1806F5, "RAD Data Communications, Ltd.", "RAD-DATA-COMMUNICATION" }, { 0x1806FF, "Acer Computer(Shanghai) Limited.", "ACER-SHANGHAI" }, { 0x180712, "Shenzhen Dazoo Technologies CO.,Ltd", "SHENZHEN-DAZOO-TECHNOLOGIES" }, { 0x180B52, "Nanotron Technologies GmbH", "NANOTRON-TECHNOLOGIES" }, { 0x180C14, "iSonea Limited", "ISONEA" }, { 0x180C77, "Westinghouse Electric Company, LLC", "WESTINGHOUSE-ELECTRIC-COMPANY" }, { 0x180CAC, "CANON INC.", "CANON" }, { 0x180D2C, "Intelbras", "INTELBRAS" }, { 0x180EAC, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0x180F76, "D-Link International", "D-LINK" }, { 0x18104E, "CEDINT-UPM", "CEDINT-UPM" }, { 0x181171, "Guangzhou Doctorpai Education & Technology Co.,Ltd", "GUANGZHOU-DOCTORPAI-EDUCATION" }, { 0x181212, "Cepton Technologies", "CEPTON-TECHNOLOGIES" }, { 0x18132D, "zte corporation", "ZTE" }, { 0x181420, "TEB SAS", "TEB-SAS" }, { 0x181456, "Nokia Corporation", "NOKIA" }, { 0x18146C, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0x1814AE, "Nokia", "NOKIA" }, { 0x1816C9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1816E8, "Siliconware Precision Industries Co., Ltd.", "SILICONWARE-PRECISION-INDUSTRIES" }, { 0x181714, "DAEWOOIS", "DAEWOOIS" }, { 0x181725, "Cameo Communications, Inc.", "CAMEO-COMMUNICATION" }, { 0x18188B, "FCNT LMITED", "FCNT-LMITED" }, { 0x18193F, "Tamtron Oy", "TAMTRON-OY" }, { 0x1819D6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x181BEB, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x181DEA, "Intel Corporate", "INTEL-CORPORATE" }, { 0x181E78, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x181E95, "AuVerte", "AUVERTE" }, { 0x181EB0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x182012, "Aztech Associates Inc.", "AZTECH-ASSOCIATES" }, { 0x182032, "Apple, Inc.", "APPLE" }, { 0x18204C, "Kummler+Matter AG", "KUMMLER+MATTER" }, { 0x1820A6, "Sage Co., Ltd.", "SAGE" }, { 0x1820D5, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x182195, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x18227E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x182649, "Intel Corporate", "INTEL-CORPORATE" }, { 0x182654, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x182666, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x182861, "AirTies Wireless Networks", "AIRTIES-WIRELESS-NETWORKS" }, { 0x182A44, "HIROSE ELECTRONIC SYSTEM", "HIROSE-SYSTEM" }, { 0x182A57, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x182A7B, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x182AD3, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x182B05, "8D Technologies", "8D-TECHNOLOGIES" }, { 0x182C65, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x182C91, "Concept Development, Inc.", "CONCEPT-DEVELOPMENT" }, { 0x182CB4, "Nectarsoft Co., Ltd.", "NECTARSOFT" }, { 0x182D98, "Jinwoo Industrial system", "JINWOO-INDUSTRIAL-SYSTEM" }, { 0x182DF7, "JY COMPANY", "JY-COMPANY" }, { 0x183009, "Woojin Industrial Systems Co., Ltd.", "WOOJIN-INDUSTRIAL" }, { 0x18300C, "Hisense Electric Co.,Ltd", "HISENSE-ELECTRIC" }, { 0x1831BF, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x183219, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x1832A2, "LAON TECHNOLOGY CO., LTD.", "LAON" }, { 0x18339D, "Cisco Systems, Inc", "CISCO" }, { 0x183451, "Apple, Inc.", "APPLE" }, { 0x1834AF, "Kaon Group Co., Ltd.", "KAON-GROUP" }, { 0x1835D1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x183672, "Shaoxing ShunChuang Technology CO.,LTD", "SHAOXING-SHUNCHUANG" }, { 0x1836FC, "Elecsys International Corporation", "ELECSYS" }, { 0x183825, "Wuhan Lingjiu High-tech Co.,Ltd.", "WUHAN-LINGJIU-HIGH-TECH" }, { 0x183864, "CAP-TECH INTERNATIONAL CO., LTD.", "CAP-TECH" }, { 0x1838AE, "CONSPIN SOLUTION", "CONSPIN-SOLUTION" }, { 0x183919, "Unicoi Systems", "UNICOI" }, { 0x18396E, "SUNSEA TELECOMMUNICATIONS CO.,LTD.", "SUNSEA-TELECOMMUNICATIONS" }, { 0x18399C, "Skorpios Technologies", "SKORPIOS-TECHNOLOGIES" }, { 0x183A2D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x183A48, "VostroNet", "VOSTRONET" }, { 0x183BD2, "BYD Precision Manufacture Company Ltd.", "BYD-PRECISION-MANUFACTURE-COMPANY" }, { 0x183C98, "Shenzhen Hengyi Technology Co., LTD", "SHENZHEN-HENGYI" }, { 0x183CB7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x183D5E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x183DA2, "Intel Corporate", "INTEL-CORPORATE" }, { 0x183EEF, "Apple, Inc.", "APPLE" }, { 0x183F47, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1840A4, "Shenzhen Trylong Smart Science and Technology Co., Ltd.", "SHENZHEN-TRYLONG-SMART-SCIENCE" }, { 0x1841FE, "Digital 14", "DIGITAL-14" }, { 0x18421D, "Private", "PRIVATE" }, { 0x18422F, "Alcatel Lucent", "ALCATEL-LUCENT" }, { 0x1842D4, "Wuhan Hosan Telecommunication Technology Co.,Ltd", "WUHAN-HOSAN-TELECOMMUNICATION" }, { 0x184462, "Riava Networks, Inc.", "RIAVA-NETWORKS" }, { 0x1844CF, "B+L Industrial Measurements GmbH", "B+L-INDUSTRIAL-MEASUREMENTS" }, { 0x1844E6, "zte corporation", "ZTE" }, { 0x184516, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x184593, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x1845B3, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x184617, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x184644, "Home Control Singapore Pte Ltd", "HOME-CONTROL-SINGAPORE-PTE" }, { 0x18473D, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0x184859, "Castlenet Technology Inc.", "CASTLENET" }, { 0x1848BE, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x1848CA, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x1848D8, "Fastback Networks", "FASTBACK-NETWORKS" }, { 0x184A53, "Apple, Inc.", "APPLE" }, { 0x184A6F, "Alcatel-Lucent Shanghai Bell Co., Ltd", "ALCATEL-LUCENT-SHANGHAI-BELL" }, { 0x184B0D, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x184BDF, "Caavo Inc", "CAAVO" }, { 0x184C08, "Rockwell Automation", "ROCKWELL-AUTOMATION" }, { 0x184CAE, "CONTINENTAL", "CONTINENTAL" }, { 0x184E03, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x184E16, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x184E94, "MESSOA TECHNOLOGIES INC.", "MESSOA-TECHNOLOGIES" }, { 0x184ECB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x184F32, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x184F5D, "JRC Mobility Inc.", "JRC-MOBILITY" }, { 0x18502A, "SOARNEX", "SOARNEX" }, { 0x185207, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x185253, "Pixord Corporation", "PIXORD" }, { 0x185282, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x185345, "Nokia", "NOKIA" }, { 0x1853E0, "Hanyang Digitech Co.Ltd", "HANYANG-DIGITECH" }, { 0x1854CF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x18550F, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x1855E3, "Apple, Inc.", "APPLE" }, { 0x185644, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x185680, "Intel Corporate", "INTEL-CORPORATE" }, { 0x1856C3, "Apple, Inc.", "APPLE" }, { 0x185869, "Sailer Electronic Co., Ltd", "SAILER" }, { 0x185880, "Arcadyan Corporation", "ARCADYAN" }, { 0x185933, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x185936, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x1859F5, "Cisco Systems, Inc", "CISCO" }, { 0x185A58, "Dell Inc.", "DELL" }, { 0x185AE8, "Zenotech.Co.,Ltd", "ZENOTECH" }, { 0x185B00, "Nokia", "NOKIA" }, { 0x185BB3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x185D9A, "BobjGear LLC", "BOBJGEAR" }, { 0x185E0B, "zte corporation", "ZTE" }, { 0x185E0F, "Intel Corporate", "INTEL-CORPORATE" }, { 0x186024, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x1861C7, "lemonbeat GmbH", "LEMONBEAT" }, { 0x18622C, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x1862E4, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x186472, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x186571, "Top Victory Electronics (Taiwan) Co., Ltd.", "TOP-VICTORY-ELECTRONICS-TAIWAN" }, { 0x186590, "Apple, Inc.", "APPLE" }, { 0x1865C7, "Dongguan YIMO Technology Co.LTD", "DONGGUAN-YIMO" }, { 0x1866C7, "Shenzhen Libre Technology Co., Ltd", "SHENZHEN-LIBRE" }, { 0x1866DA, "Dell Inc.", "DELL" }, { 0x1866E3, "Veros Systems, Inc.", "VEROS" }, { 0x1866F0, "Jupiter Systems", "JUPITER" }, { 0x18673F, "Hanover Displays Limited", "HANOVER-DISPLAYS" }, { 0x186751, "KOMEG Industrielle Messtechnik GmbH", "KOMEG-INDUSTRIELLE-MESSTECHNIK" }, { 0x1867B0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x18686A, "zte corporation", "ZTE" }, { 0x186882, "Beward R&D Co., Ltd.", "BEWARD-R-D" }, { 0x1868CB, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x1869D4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1869D8, "Tuya Smart Inc.", "TUYA-SMART" }, { 0x1869DA, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x186A81, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x186D99, "Adanis Inc.", "ADANIS" }, { 0x186F2D, "Shenzhen Sundray Technologies Company Limited", "SHENZHEN-SUNDRAY-TECHNOLOGIES-COMPANY" }, { 0x18703B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x187117, "eta plus electronic gmbh", "ETA-PLUS" }, { 0x1871D5, "Hazens Automotive Electronics(SZ)Co.,Ltd.", "HAZENS-AUTOMOTIVE-ELECTRONICS-SZ" }, { 0x18742E, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x1874E2, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x187532, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x187758, "Audoo Limited (UK)", "AUDOO-UK" }, { 0x1878D4, "Verizon", "VERIZON" }, { 0x1879A2, "GMJ ELECTRIC LIMITED", "GMJ-ELECTRIC" }, { 0x187A3B, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x187A3E, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x187A93, "AMICCOM Electronics Corporation", "AMICCOM-ELECTRONICS" }, { 0x187C0B, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x187C81, "Valeo Vision Systems", "VALEO-VISION" }, { 0x187CAA, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x187EB9, "Apple, Inc.", "APPLE" }, { 0x187ED5, "shenzhen kaism technology Co. Ltd", "SHENZHEN-KAISM" }, { 0x188025, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x188090, "Cisco Systems, Inc", "CISCO" }, { 0x1880CE, "Barberry Solutions Ltd", "BARBERRY-SOLUTIONS" }, { 0x1880F5, "Alcatel-Lucent Shanghai Bell Co., Ltd", "ALCATEL-LUCENT-SHANGHAI-BELL" }, { 0x18810E, "Apple, Inc.", "APPLE" }, { 0x188219, "Alibaba Cloud Computing Ltd.", "ALIBABA-CLOUD-COMPUTING" }, { 0x18828C, "Arcadyan Corporation", "ARCADYAN" }, { 0x188331, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1883BF, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x188410, "CoreTrust Inc.", "CORETRUST" }, { 0x1884C1, "Guangzhou Shiyuan Electronic Technology Company Limited", "GUANGZHOU-SHIYUAN-COMPANY" }, { 0x18863A, "DIGITAL ART SYSTEM", "DIGITAL-ART-SYSTEM" }, { 0x1886AC, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x188740, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x188796, "HTC Corporation", "HTC" }, { 0x188857, "Beijing Jinhong Xi-Dian Information Technology Corp.", "BEIJING-JINHONG-XI-DIAN-INFORMATION" }, { 0x18895B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1889A0, "Wuhan Funshion Online Technologies Co.,Ltd", "WUHAN-FUNSHION-ONLINE-TECHNOLOGIES" }, { 0x1889CF, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x1889DF, "CerebrEX Inc.", "CEREBREX" }, { 0x188A6A, "AVPro Global Hldgs", "AVPRO-GLOBAL-HLDGS" }, { 0x188B15, "ShenZhen ZhongRuiJing Technology co.,LTD", "SHENZHEN-ZHONGRUIJING" }, { 0x188B45, "Cisco Systems, Inc", "CISCO" }, { 0x188B9D, "Cisco Systems, Inc", "CISCO" }, { 0x188ED5, "TP Vision Belgium N.V. - innovation site Brugge", "TP-VISION-BELGIUM-N-V-INNOVATION-SITE-BRUGGE" }, { 0x188EF9, "G2C Co. Ltd.", "G2C" }, { 0x189088, "eero inc.", "EERO" }, { 0x1890D8, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x18922C, "Virtual Instruments", "VIRTUAL-INSTRUMENTS" }, { 0x1892A4, "Ciena Corporation", "CIENA" }, { 0x18937F, "AMPAK Technology, Inc.", "AMPAK" }, { 0x1893D7, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x1894C6, "ShenZhen Chenyee Technology Co., Ltd.", "SHENZHEN-CHENYEE" }, { 0x189552, "1MORE", "1MORE" }, { 0x1897FF, "TechFaith Wireless Technology Limited", "TECHFAITH-WIRELESS" }, { 0x1899F5, "Sichuan Changhong Electric Ltd.", "SICHUAN-CHANGHONG-ELECTRIC" }, { 0x189A67, "CSE-Servelec Limited", "CSE-SERVELEC" }, { 0x189BA5, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x189C27, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x189C5D, "Cisco Systems, Inc", "CISCO" }, { 0x189E2C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x189EAD, "Shenzhen Chengqian Information Technology Co., Ltd", "SHENZHEN-CHENGQIAN-INFORMATION" }, { 0x189EFC, "Apple, Inc.", "APPLE" }, { 0x18A28A, "Essel-T Co., Ltd", "ESSEL-T" }, { 0x18A3E8, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x18A4A9, "Vanu Inc.", "VANU" }, { 0x18A59C, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x18A5FF, "Arcadyan Corporation", "ARCADYAN" }, { 0x18A6F7, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x18A788, "Shenzhen MEK Intellisys Pte Ltd", "SHENZHEN-MEK-INTELLISYS-PTE" }, { 0x18A7F1, "Qingdao Haier Technology Co.,Ltd", "QINGDAO-HAIER" }, { 0x18A905, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x18A958, "PROVISION THAI CO., LTD.", "PROVISION-THAI" }, { 0x18A99B, "Dell Inc.", "DELL" }, { 0x18A9A6, "Nebra Ltd", "NEBRA" }, { 0x18AA0F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x18AA1E, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x18AA45, "Fon Technology", "FON" }, { 0x18AACA, "Sichuan tianyi kanghe communications co., LTD", "SICHUAN-TIANYI-KANGHE-COMMUNICATION" }, { 0x18AB1D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x18ABF5, "Ultra Electronics Electrics", "ULTRA-ELECTRONICS-ELECTRICS" }, { 0x18AC9E, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x18AD4D, "Polostar Technology Corporation", "POLOSTAR" }, { 0x18AEBB, "Siemens Convergence Creators GmbH&Co.KG", "SIEMENS-CONVERGENCE-CREATORS" }, { 0x18AF61, "Apple, Inc.", "APPLE" }, { 0x18AF8F, "Apple, Inc.", "APPLE" }, { 0x18AF9F, "DIGITRONIC Automationsanlagen GmbH", "DIGITRONIC-AUTOMATIONSANLAGEN" }, { 0x18AFA1, "Shenzhen Yifang Network Technology Co., Ltd.", "SHENZHEN-YIFANG-NETWORK" }, { 0x18B169, "Sonicwall", "SONICWALL" }, { 0x18B185, "Qiao Information Technology (Zhengzhou) Co., Ltd.", "QIAO-INFORMATION-ZHENGZHOU" }, { 0x18B209, "Torrey Pines Logic, Inc", "TORREY-PINES-LOGIC" }, { 0x18B3BA, "Netlogic AB", "NETLOGIC-AB" }, { 0x18B430, "Nest Labs Inc.", "NEST-LABS" }, { 0x18B591, "I-Storm", "I-STORM" }, { 0x18B6CC, "We Corporation Inc.", "WE" }, { 0x18B6F7, "NEW POS TECHNOLOGY LIMITED", "NEW-POS" }, { 0x18B79E, "Invoxia", "INVOXIA" }, { 0x18B81F, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x18B905, "Hong Kong Bouffalo Lab Limited", "HONG-KONG-BOUFFALO-LAB" }, { 0x18B96E, "Dongguan Liesheng Electronic Co., Ltd.", "DONGGUAN-LIESHENG" }, { 0x18BB1C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x18BB26, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0x18BB41, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x18BC57, "ADVA Optical Networking Ltd.", "ADVA-OPTICAL-NETWORKING" }, { 0x18BC5A, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0x18BDAD, "L-TECH CORPORATION", "L-TECH" }, { 0x18BE92, "Delta Networks, Inc.", "DELTA-NETWORKS" }, { 0x18BF1C, "Jiangsu Huitong Group Co.,Ltd.", "JIANGSU-HUITONG-GROUP" }, { 0x18BFB3, "Samsung Electronics Co., Ltd., Memory Division", "SAMSUNG-ELECTRONICS-MEMORY-DIVISION" }, { 0x18C007, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x18C04D, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x18C086, "Broadcom", "BROADCOM" }, { 0x18C19D, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x18C23C, "Lumi United Technology Co., Ltd", "LUMI-UNITED" }, { 0x18C241, "SonicWall", "SONICWALL" }, { 0x18C293, "Laird Connectivity", "LAIRD-CONNECTIVITY" }, { 0x18C2BF, "BUFFALO.INC", "BUFFALO" }, { 0x18C300, "Nokia", "NOKIA" }, { 0x18C3F4, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x18C451, "Tucson Embedded Systems", "TUCSON-EMBEDDED" }, { 0x18C501, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0x18C58A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x18C8E7, "Shenzhen Hualistone Technology Co.,Ltd", "SHENZHEN-HUALISTONE" }, { 0x18CC18, "Intel Corporate", "INTEL-CORPORATE" }, { 0x18CC23, "Philio Technology Corporation", "PHILIO" }, { 0x18CC88, "Hitachi Johnson Controls Air", "HITACHI-JOHNSON-CONTROLS-AIR" }, { 0x18CE94, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x18CF24, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x18CF5E, "Liteon Technology Corporation", "LITEON" }, { 0x18D071, "DASAN CO., LTD.", "DASAN" }, { 0x18D0C5, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x18D225, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x18D276, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x18D5B6, "SMG Holdings LLC", "SMG-HOLDINGS" }, { 0x18D61C, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0x18D66A, "Inmarsat", "INMARSAT" }, { 0x18D6C7, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x18D6CF, "Kurth Electronic GmbH", "KURTH" }, { 0x18D6DD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x18D717, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x18D793, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x18D949, "Qvis Labs, LLC", "QVIS-LABS" }, { 0x18D98F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x18D9EF, "Shuttle Inc.", "SHUTTLE" }, { 0x18DBF2, "Dell Inc.", "DELL" }, { 0x18DC56, "Yulong Computer Telecommunication Scientific (Shenzhen) Co.,Ltd", "YULONG-TELECOMMUNICATION-SCIENTIFIC-SHENZHEN" }, { 0x18DE50, "Tuya Smart Inc.", "TUYA-SMART" }, { 0x18DED7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x18DFB4, "BOSUNG POWERTEC CO.,LTD.", "BOSUNG-POWERTEC" }, { 0x18DFC1, "Aetheros", "AETHEROS" }, { 0x18E1CA, "wanze", "WANZE" }, { 0x18E1DE, "Chengdu ChipIntelli Technology Co., Ltd", "CHENGDU-CHIPINTELLI" }, { 0x18E215, "Nokia", "NOKIA" }, { 0x18E288, "STT Condigi", "STT-CONDIGI" }, { 0x18E29F, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x18E2C2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x18E3BC, "TCT mobile ltd", "TCT-MOBILE" }, { 0x18E728, "Cisco Systems, Inc", "CISCO" }, { 0x18E777, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x18E7B0, "Apple, Inc.", "APPLE" }, { 0x18E7F4, "Apple, Inc.", "APPLE" }, { 0x18E80F, "Viking Electronics Inc.", "VIKING-ELECTRONICS" }, { 0x18E829, "Ubiquiti Inc", "UBIQUITI" }, { 0x18E8DD, "MODULETEK", "MODULETEK" }, { 0x18E91D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x18ECE7, "BUFFALO.INC", "BUFFALO" }, { 0x18EE69, "Apple, Inc.", "APPLE" }, { 0x18EE86, "Novatel Wireless Solutions, Inc.", "NOVATEL-WIRELESS-SOLUTIONS" }, { 0x18EF3A, "Sichuan AI-Link Technology Co., Ltd.", "SICHUAN-AI-LINK" }, { 0x18EF63, "Cisco Systems, Inc", "CISCO" }, { 0x18F0E4, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x18F145, "NetComm Wireless Limited", "NETCOMM-WIRELESS" }, { 0x18F18E, "ChipER Technology co. ltd", "CHIPER" }, { 0x18F1D8, "Apple, Inc.", "APPLE" }, { 0x18F22C, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x18F292, "Shannon Systems", "SHANNON" }, { 0x18F46A, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x18F46B, "Telenor Connexion AB", "TELENOR-CONNEXION-AB" }, { 0x18F643, "Apple, Inc.", "APPLE" }, { 0x18F650, "Multimedia Pacific Limited", "MULTIMEDIA-PACIFIC" }, { 0x18F697, "Axiom Memory Solutions, Inc.", "AXIOM-MEMORY-SOLUTIONS" }, { 0x18F76B, "Zhejiang Winsight Technology CO.,LTD", "ZHEJIANG-WINSIGHT" }, { 0x18F87A, "i3 International Inc.", "I3" }, { 0x18F87F, "Wha Yu Industrial Co., Ltd.", "WHA-YU-INDUSTRIAL" }, { 0x18F935, "Cisco Systems, Inc", "CISCO" }, { 0x18F9C4, "BAE Systems", "BAE" }, { 0x18FA6F, "ISC applied systems corp", "ISC-APPLIED" }, { 0x18FAB7, "Apple, Inc.", "APPLE" }, { 0x18FB7B, "Dell Inc.", "DELL" }, { 0x18FC26, "Qorvo International Pte. Ltd.", "QORVO-PTE" }, { 0x18FC9F, "Changhe Electronics Co., Ltd.", "CHANGHE-ELECTRONICS" }, { 0x18FD74, "Routerboard.com", "ROUTERBOARD-COM" }, { 0x18FDCB, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x18FE34, "Espressif Inc.", "ESPRESSIF" }, { 0x18FF0F, "Intel Corporate", "INTEL-CORPORATE" }, { 0x18FF2E, "Shenzhen Rui Ying Da Technology Co., Ltd", "SHENZHEN-RUI-YING-DA" }, { 0x1C0042, "NARI Technology Co., Ltd.", "NARI" }, { 0x1C012D, "Ficer Technology", "FICER" }, { 0x1C0219, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x1C05B7, "Chongqing Trantor Technology Co., Ltd.", "CHONGQING-TRANTOR" }, { 0x1C0656, "IDY Corporation", "IDY" }, { 0x1C08C1, "LG Innotek", "LG-INNOTEK" }, { 0x1C0B52, "EPICOM S.A", "EPICOM" }, { 0x1C0D7D, "Apple, Inc.", "APPLE" }, { 0x1C0ED3, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x1C0FAF, "Lucid Vision Labs", "LUCID-VISION-LABS" }, { 0x1C0FCF, "Sypro Optics GmbH", "SYPRO-OPTICS" }, { 0x1C1161, "Ciena Corporation", "CIENA" }, { 0x1C11E1, "Wartsila Finland Oy", "WARTSILA-FINLAND-OY" }, { 0x1C129D, "IEEE PES PSRC/SUB", "IEEE-PES-PSRC/SUB" }, { 0x1C12B0, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x1C1338, "Kimball Electronics Group, LLC", "KIMBALL-ELECTRONICS-GROUP" }, { 0x1C1386, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x1C1448, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x1C14B3, "Airwire Technologies", "AIRWIRE-TECHNOLOGIES" }, { 0x1C151F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1C17D3, "Cisco Systems, Inc", "CISCO" }, { 0x1C184A, "ShenZhen RicherLink Technologies Co.,LTD", "SHENZHEN-RICHERLINK-TECHNOLOGIES" }, { 0x1C19DE, "eyevis GmbH", "EYEVIS" }, { 0x1C1A1B, "Shanghai Sunmi Technology Co.,Ltd.", "SHANGHAI-SUNMI" }, { 0x1C1AC0, "Apple, Inc.", "APPLE" }, { 0x1C1ADF, "Microsoft Corporation", "MICROSOFT" }, { 0x1C1B0D, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x1C1B68, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x1C1BB5, "Intel Corporate", "INTEL-CORPORATE" }, { 0x1C1CFD, "Dalian Hi-Think Computer Technology, Corp", "DALIAN-HI-THINK" }, { 0x1C1D67, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1C1D86, "Cisco Systems, Inc", "CISCO" }, { 0x1C1E38, "PCCW Global, Inc.", "PCCW-GLOBAL" }, { 0x1C1EE3, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x1C1FD4, "LifeBEAM Technologies LTD", "LIFEBEAM-TECHNOLOGIES" }, { 0x1C1FF1, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x1C20DB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1C21D1, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x1C2285, "Serrature Meroni SpA", "SERRATURE-MERONI-SPA" }, { 0x1C232C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1C234F, "EDMI Europe Ltd", "EDMI-EUROPE" }, { 0x1C24CD, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x1C24EB, "Burlywood", "BURLYWOOD" }, { 0x1C25E1, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0x1C2704, "zte corporation", "ZTE" }, { 0x1C27DD, "Datang Gohighsec(zhejiang)Information Technology Co.,Ltd.", "DATANG-GOHIGHSEC-ZHEJIANG-INFORMATION" }, { 0x1C28AF, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x1C2A8B, "Nokia", "NOKIA" }, { 0x1C2AA3, "Shenzhen HongRui Optical Technology Co., Ltd.", "SHENZHEN-HONGRUI-OPTICAL" }, { 0x1C2AB0, "Beijing Xiaomi Electronics Co.,Ltd", "BEIJING-XIAOMI-ELECTRONICS" }, { 0x1C2CE0, "Shanghai Mountain View Silicon", "SHANGHAI-MOUNTAIN-VIEW-SILICON" }, { 0x1C2E1B, "Suzhou Tremenet Communication Technology Co., Ltd.", "SUZHOU-TREMENET-COMMUNICATION" }, { 0x1C3008, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x1C3283, "COMTTI Intelligent Technology(Shenzhen) Co., Ltd.", "COMTTI-INTELLIGENT-SHENZHEN" }, { 0x1C330E, "PernixData", "PERNIXDATA" }, { 0x1C334D, "ITS Telecom", "ITS-TELECOM" }, { 0x1C3477, "Innovation Wireless", "INNOVATION-WIRELESS" }, { 0x1C34DA, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0x1C34F1, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x1C35F1, "NEW Lift Neue Elektronische Wege Steuerungsbau GmbH", "NEW-LIFT-NEUE-ELEKTRONISCHE-WEGE-STEUERUNGSBAU" }, { 0x1C36BB, "Apple, Inc.", "APPLE" }, { 0x1C37BF, "Cloudium Systems Ltd.", "CLOUDIUM" }, { 0x1C3929, "OHSUNG", "OHSUNG" }, { 0x1C3947, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x1C398A, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x1C3A4F, "AccuSpec Electronics, LLC", "ACCUSPEC-ELECTRONICS" }, { 0x1C3A60, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x1C3ADE, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1C3B62, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x1C3B8F, "Selve GmbH & Co. KG", "SELVE" }, { 0x1C3BF3, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x1C3CD4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1C3D2F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1C3DE7, "Sigma Koki Co.,Ltd.", "SIGMA-KOKI" }, { 0x1C3E84, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x1C4024, "Dell Inc.", "DELL" }, { 0x1C40E8, "SHENZHEN PROGRESS&WIN TECHNOLOGY CO.,LTD", "SHENZHEN-PROGRESS-WIN" }, { 0x1C4158, "Gemalto M2M GmbH", "GEMALTO-M2M" }, { 0x1C4176, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x1C4190, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x1C427D, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x1C4363, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1C43EC, "JAPAN CIRCUIT CO.,LTD", "JAPAN-CIRCUIT" }, { 0x1C4419, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x1C4455, "Sieb & Meyer AG", "SIEB-MEYER" }, { 0x1C4586, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x1C4593, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x1C45C2, "Huizhou City Sunsin lntelligent Technology Co.,Ltd", "HUIZHOU-CITY-SUNSIN-LNTELLIGENT" }, { 0x1C46D1, "SKY UK LIMITED", "SKY-UK" }, { 0x1C472F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x1C47F6, "Zhidao Network Technology(Shenzhen) Co.,Ltd", "ZHIDAO-NETWORK-SHENZHEN" }, { 0x1C4840, "IMS Messsysteme GmbH", "IMS-MESSSYSTEME" }, { 0x1C48CE, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x1C48F9, "GN Netcom A/S", "GN-NETCOM-A/S" }, { 0x1C497B, "Gemtek Technology Co., Ltd.", "GEMTEK" }, { 0x1C4AF7, "AMON INC", "AMON" }, { 0x1C4BB9, "SMG ENTERPRISE, LLC", "SMG" }, { 0x1C4BD6, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x1C4C48, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x1C4D66, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x1C4D70, "Intel Corporate", "INTEL-CORPORATE" }, { 0x1C501E, "Sunplus Technology Co., Ltd.", "SUNPLUS" }, { 0x1C51B5, "Techaya LTD", "TECHAYA" }, { 0x1C5216, "DONGGUAN HELE ELECTRONICS CO., LTD", "DONGGUAN-HELE-ELECTRONICS" }, { 0x1C52D6, "FLAT DISPLAY TECHNOLOGY CORPORATION", "FLAT-DISPLAY" }, { 0x1C53F9, "Google, Inc.", "GOOGLE" }, { 0x1C549E, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x1C553A, "QianGua Corp.", "QIANGUA" }, { 0x1C568E, "Zioncom Electronics (Shenzhen) Ltd.", "ZIONCOM-ELECTRONICS-SHENZHEN" }, { 0x1C56FE, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x1C573E, "Altice Labs S.A.", "ALTICE-LABS" }, { 0x1C57D8, "Kraftway Corporation PLC", "KRAFTWAY-PLC" }, { 0x1C57DC, "Apple, Inc.", "APPLE" }, { 0x1C5974, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x1C599B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1C5A0B, "Tegile Systems", "TEGILE" }, { 0x1C5A3E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1C5A6B, "Philips Electronics Nederland BV", "PHILIPS-ELECTRONICS-NEDERLAND" }, { 0x1C5C55, "PRIMA Cinema, Inc", "PRIMA-CINEMA" }, { 0x1C5C60, "Shenzhen Belzon Technology Co.,LTD.", "SHENZHEN-BELZON" }, { 0x1C5CF2, "Apple, Inc.", "APPLE" }, { 0x1C5D80, "Mitubishi Hitachi Power Systems Industries Co., Ltd.", "MITUBISHI-HITACHI-POWER-INDUSTRIES" }, { 0x1C5EE6, "SHENZHEN TWOWING TECHNOLOGIES CO.,LTD.", "SHENZHEN-TWOWING-TECHNOLOGIES" }, { 0x1C5F2B, "D-Link International", "D-LINK" }, { 0x1C5FFF, "Beijing Ereneben Information Technology Co.,Ltd Shenzhen Branch", "BEIJING-ERENEBEN-INFORMATION-SHENZHEN-BRANCH" }, { 0x1C60D2, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x1C60DE, "MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x1C61B4, "TP-Link Corporation Limited", "TP-LINK" }, { 0x1C62B8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1C6349, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x1C63A5, "securityplatform", "SECURITYPLATFORM" }, { 0x1C63B7, "OpenProducts 237 AB", "OPENPRODUCTS-237-AB" }, { 0x1C63BF, "SHENZHEN BROADTEL TELECOM CO.,LTD", "SHENZHEN-BROADTEL-TELECOM" }, { 0x1C6499, "Comtrend Corporation", "COMTREND" }, { 0x1C659D, "Liteon Technology Corporation", "LITEON" }, { 0x1C666D, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x1C66AA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1C674A, "zte corporation", "ZTE" }, { 0x1C6758, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1C6760, "Phonesuite", "PHONESUITE" }, { 0x1C687E, "Shenzhen Qihu Intelligent Technology Company Limited", "SHENZHEN-QIHU-INTELLIGENT-COMPANY" }, { 0x1C697A, "EliteGroup Computer Systems Co., LTD", "ELITEGROUP" }, { 0x1C69A5, "BlackBerry RTS", "BLACKBERRY-RTS" }, { 0x1C6A76, "Apple, Inc.", "APPLE" }, { 0x1C6A7A, "Cisco Systems, Inc", "CISCO" }, { 0x1C6BCA, "Mitsunami Co., Ltd.", "MITSUNAMI" }, { 0x1C6E4C, "Logistic Service & Engineering Co.,Ltd", "LOGISTIC-SERVICE-ENGINEERING" }, { 0x1C6E74, "EnOcean Edge Inc.", "ENOCEAN-EDGE" }, { 0x1C6E76, "Quarion Technology Inc", "QUARION" }, { 0x1C6EE6, "NHNETWORKS", "NHNETWORKS" }, { 0x1C6F65, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x1C7022, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x1C70C9, "Jiangsu Aisida Electronic Co., Ltd", "JIANGSU-AISIDA" }, { 0x1C7125, "Apple, Inc.", "APPLE" }, { 0x1C721D, "Dell Inc.", "DELL" }, { 0x1C7328, "Connected Home", "CONNECTED-HOME" }, { 0x1C7370, "Neotech", "NEOTECH" }, { 0x1C73E2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1C740D, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x1C7508, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x1C76CA, "Terasic Technologies Inc.", "TERASIC-TECHNOLOGIES" }, { 0x1C76F2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1C77F6, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x1C7839, "Shenzhen Tencent Computer System Co., Ltd.", "SHENZHEN-TENCENT-SYSTEM" }, { 0x1C784E, "China Mobile Iot Limited company", "CHINA-MOBILE-IOT-COMPANY" }, { 0x1C7B21, "Sony Corporation", "SONY" }, { 0x1C7B23, "Qingdao Hisense Communications Co.,Ltd.", "QINGDAO-HISENSE-COMMUNICATION" }, { 0x1C7C11, "EID", "EID" }, { 0x1C7C45, "Vitek Industrial Video Products, Inc.", "VITEK-INDUSTRIAL-VIDEO-PRODUCTS" }, { 0x1C7C98, "NEC Platforms, Ltd.", "NEC-PLATFORMS" }, { 0x1C7CC7, "Coriant GmbH", "CORIANT" }, { 0x1C7D22, "FUJIFILM Business Innovation Corp.", "FUJIFILM-BUSINESS-INNOVATION" }, { 0x1C7E51, "3bumen.com", "3BUMEN-COM" }, { 0x1C7EE5, "D-Link International", "D-LINK" }, { 0x1C7F2C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1C8259, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x1C8341, "Hefei Bitland Information Technology Co.Ltd", "HEFEI-BITLAND-INFORMATION" }, { 0x1C83B0, "Linked IP GmbH", "LINKED-IP" }, { 0x1C8464, "FORMOSA WIRELESS COMMUNICATION CORP.", "FORMOSA-WIRELESS-COMMUNICATION" }, { 0x1C860B, "Guangdong Taiying Technology Co.,Ltd", "GUANGDONG-TAIYING" }, { 0x1C8682, "Apple, Inc.", "APPLE" }, { 0x1C869A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1C86AD, "MCT CO., LTD.", "MCT" }, { 0x1C872C, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x1C87E3, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x1C880C, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x1C8B76, "Calix Inc.", "CALIX" }, { 0x1C8BEF, "Beijing Xiaomi Electronics Co.,Ltd", "BEIJING-XIAOMI-ELECTRONICS" }, { 0x1C8E5C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1C8E8E, "DB Communication & Systems Co., ltd.", "DB-COMMUNICATION" }, { 0x1C8F8A, "Phase Motion Control SpA", "PHASE-MOTION-CONTROL-SPA" }, { 0x1C90BE, "Ericsson AB", "ERICSSON-AB" }, { 0x1C90FF, "Tuya Smart Inc.", "TUYA-SMART" }, { 0x1C9148, "Apple, Inc.", "APPLE" }, { 0x1C9179, "Integrated System Technologies Ltd", "INTEGRATED-SYSTEM-TECHNOLOGIES" }, { 0x1C9180, "Apple, Inc.", "APPLE" }, { 0x1C919D, "Dongguan Liesheng Electronic Co., Ltd.", "DONGGUAN-LIESHENG" }, { 0x1C937C, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x1C93C4, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x1C9492, "RUAG Schweiz AG", "RUAG-SCHWEIZ" }, { 0x1C955D, "I-LAX ELECTRONICS INC.", "I-LAX-ELECTRONICS" }, { 0x1C959F, "Veethree Electronics And Marine LLC", "VEETHREE-ELECTRONICS-AND-MARINE" }, { 0x1C965A, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0x1C973D, "PRICOM Design", "PRICOM-DESIGN" }, { 0x1C97C5, "Ynomia Pty Ltd", "YNOMIA-PTY" }, { 0x1C97FB, "CoolBitX Ltd.", "COOLBITX" }, { 0x1C98C1, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x1C98EC, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x1C994C, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x1C9957, "Intel Corporate", "INTEL-CORPORATE" }, { 0x1C9C26, "Zoovel Technologies", "ZOOVEL-TECHNOLOGIES" }, { 0x1C9C8C, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x1C9D3E, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x1C9D72, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x1C9DC2, "Espressif Inc.", "ESPRESSIF" }, { 0x1C9E46, "Apple, Inc.", "APPLE" }, { 0x1C9ECB, "Beijing Nari Smartchip Microelectronics Company Limited", "BEIJING-NARI-SMARTCHIP-MICROELECTRONICS-COMPANY" }, { 0x1C9ECC, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x1C9F4E, "COOSEA GROUP (HK) COMPANY LIMITED", "COOSEA-GROUP-HK-COMPANY" }, { 0x1CA0B8, "Hon Hai Precision Industry Co., Ltd.", "HON-HAI-PRECISION-INDUSTRY" }, { 0x1CA0D3, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x1CA0EF, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x1CA2B1, "ruwido austria gmbh", "RUWIDO-AUSTRIA" }, { 0x1CA410, "Amlogic, Inc.", "AMLOGIC" }, { 0x1CA532, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0x1CA681, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1CA770, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0x1CA852, "SENSAIO PTE LTD", "SENSAIO-PTE" }, { 0x1CAA07, "Cisco Systems, Inc", "CISCO" }, { 0x1CAB01, "Innovolt", "INNOVOLT" }, { 0x1CAB34, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x1CABA7, "Apple, Inc.", "APPLE" }, { 0x1CABC0, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x1CADD1, "Bosung Electronics Co., Ltd.", "BOSUNG-ELECTRONICS" }, { 0x1CAE3E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x1CAECB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1CAF05, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1CAF4A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1CAFF7, "D-Link International", "D-LINK" }, { 0x1CB044, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x1CB094, "HTC Corporation", "HTC" }, { 0x1CB17F, "NEC Platforms, Ltd.", "NEC-PLATFORMS" }, { 0x1CB243, "TDC A/S", "TDC-A/S" }, { 0x1CB3C9, "Apple, Inc.", "APPLE" }, { 0x1CB3E9, "Shenzhen Zhongke United Communication Technology", "SHENZHEN-ZHONGKE-UNITED-COMMUNICATION" }, { 0x1CB72C, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x1CB796, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1CB857, "Becon Technologies Co,.Ltd.", "BECON-TECHNOLOGIES" }, { 0x1CB8BA, "XIAMEN LEELEN TECHNOLOGY CO., LTD", "XIAMEN-LEELEN" }, { 0x1CB9C4, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x1CBA8C, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x1CBBA8, "OJSC Ufimskiy Zavod Promsvyaz", "OJSC-UFIMSKIY-ZAVOD-PROMSVYAZ" }, { 0x1CBCEC, "silex technology, Inc.", "SILEX" }, { 0x1CBD0E, "Amplified Engineering Pty Ltd", "AMPLIFIED-ENGINEERING-PTY" }, { 0x1CBDB9, "D-Link International", "D-LINK" }, { 0x1CBFC0, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0x1CBFCE, "Shenzhen Century Xinyang Technology Co., Ltd", "SHENZHEN-CENTURY-XINYANG" }, { 0x1CC035, "PLANEX COMMUNICATIONS INC.", "PLANEX-COMMUNICATION" }, { 0x1CC0E1, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x1CC10C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x1CC11A, "Wavetronix", "WAVETRONIX" }, { 0x1CC1BC, "Yichip Microelectronics (Hangzhou) Co.,Ltd", "YICHIPMICROELECTRONICS-HANGZHOU" }, { 0x1CC1DE, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x1CC316, "Xiamen Milesight IoT Co., Ltd.", "XIAMEN-MILESIGHT-IOT" }, { 0x1CC3EB, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x1CC586, "Absolute Acoustics", "ABSOLUTE-ACOUSTICS" }, { 0x1CC63C, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x1CC72D, "Shenzhen Huapu Digital CO.,Ltd", "SHENZHEN-HUAPU-DIGITAL" }, { 0x1CC992, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x1CCA41, "AO", "AO" }, { 0x1CCAE3, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x1CCB99, "TCT mobile ltd", "TCT-MOBILE" }, { 0x1CCCD6, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x1CCDE5, "Shanghai Wind Technologies Co.,Ltd", "SHANGHAI-WIND-TECHNOLOGIES" }, { 0x1CD107, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x1CD1BA, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x1CD1E0, "Cisco Systems, Inc", "CISCO" }, { 0x1CD40C, "Kriwan Industrie-Elektronik GmbH", "KRIWAN-INDUSTRIE-ELEKTRONIK" }, { 0x1CD5E2, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x1CD6BD, "LEEDARSON LIGHTING CO., LTD.", "LEEDARSON-LIGHTING" }, { 0x1CD6BE, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x1CDA27, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x1CDDEA, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x1CDE57, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x1CDEA7, "Cisco Systems, Inc", "CISCO" }, { 0x1CDF0F, "Cisco Systems, Inc", "CISCO" }, { 0x1CDF52, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x1CE165, "Marshal Corporation", "MARSHAL" }, { 0x1CE192, "Qisda Corporation", "QISDA" }, { 0x1CE2CC, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x1CE504, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1CE57F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1CE61D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1CE62B, "Apple, Inc.", "APPLE" }, { 0x1CE639, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x1CE6AD, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x1CE6C7, "Cisco Systems, Inc", "CISCO" }, { 0x1CE85D, "Cisco Systems, Inc", "CISCO" }, { 0x1CEA0B, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0x1CEA1B, "Nokia", "NOKIA" }, { 0x1CEC72, "Allradio Co., Ltd", "ALLRADIO" }, { 0x1CED6F, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x1CEEC9, "Elo touch solutions", "ELO-TOUCH-SOLUTIONS" }, { 0x1CEEE8, "Ilshin Elecom", "ILSHIN-ELECOM" }, { 0x1CEF03, "Guangzhou V-SOLUTION Electronic Technology Co., Ltd.", "GUANGZHOU-V-SOLUTION" }, { 0x1CEFCE, "bebro electronic GmbH", "BEBRO" }, { 0x1CF03E, "Wearhaus Inc.", "WEARHAUS" }, { 0x1CF061, "SCAPS GmbH", "SCAPS" }, { 0x1CF29A, "Google, Inc.", "GOOGLE" }, { 0x1CF42B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x1CF4CA, "Private", "PRIVATE" }, { 0x1CF5E7, "Turtle Industry Co., Ltd.", "TURTLE-INDUSTRY" }, { 0x1CF8D0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x1CFA68, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x1CFC17, "Cisco Systems, Inc", "CISCO" }, { 0x1CFCBB, "Realfiction ApS", "REALFICTION-APS" }, { 0x1CFD08, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x1CFE2B, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x1CFEA7, "IDentytech Solutins Ltd.", "IDENTYTECH-SOLUTINS" }, { 0x1CFF59, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x20014F, "Linea Research Ltd", "LINEA-RESEARCH" }, { 0x2002AF, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x2002FE, "Hangzhou Dangbei Network Technology Co., Ltd", "HANGZHOU-DANGBEI-NETWORK" }, { 0x20040F, "Dell Inc.", "DELL" }, { 0x2004F3, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x200505, "RADMAX COMMUNICATION PRIVATE LIMITED", "RADMAX-COMMUNICATION-PRIVATE" }, { 0x2005E8, "OOO InProMedia", "OOO-INPROMEDIA" }, { 0x200889, "zte corporation", "ZTE" }, { 0x2008ED, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x200A0D, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x200A5E, "Xiangshan Giant Eagle Technology Developing Co., Ltd.", "XIANGSHAN-GIANT-EAGLE-DEVELOPING" }, { 0x200B16, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x200BC5, "Cisco Systems, Inc", "CISCO" }, { 0x200BC7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x200BCF, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x200C86, "GX India Pvt Ltd", "GX-INDIA-PVT" }, { 0x200CC8, "NETGEAR", "NETGEAR" }, { 0x200DB0, "Shenzhen Four Seas Global Link Network Technology Co., Ltd.", "SHENZHEN-FOUR-SEAS-GLOBAL-LINK-NETWORK" }, { 0x200E2B, "Apple, Inc.", "APPLE" }, { 0x200E95, "IEC – TC9 WG43", "IEC-TC9-WG43" }, { 0x200F70, "FOXTECH", "FOXTECH" }, { 0x20107A, "Gemtek Technology Co., Ltd.", "GEMTEK" }, { 0x20114E, "MeteRSit S.R.L.", "METERSIT" }, { 0x201257, "Most Lucky Trading Ltd", "MOST-LUCKY-TRADING" }, { 0x2012D5, "Scientech Materials Corporation", "SCIENTECH-MATERIALS" }, { 0x2013E0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x201582, "Apple, Inc.", "APPLE" }, { 0x20163D, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x201642, "Microsoft Corporation", "MICROSOFT" }, { 0x2016B9, "Intel Corporate", "INTEL-CORPORATE" }, { 0x2016D8, "Liteon Technology Corporation", "LITEON" }, { 0x201742, "LG Electronics", "LG-ELECTRONICS" }, { 0x201746, "Paradromics, Inc.", "PARADROMICS" }, { 0x20180E, "Shenzhen Sunchip Technology Co., Ltd", "SHENZHEN-SUNCHIP" }, { 0x201A06, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x201A94, "Apple, Inc.", "APPLE" }, { 0x201B88, "Dongguan Liesheng Electronic Co., Ltd.", "DONGGUAN-LIESHENG" }, { 0x201BC9, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x201C3A, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x201D03, "Elatec GmbH", "ELATEC" }, { 0x201E88, "Intel Corporate", "INTEL-CORPORATE" }, { 0x201F31, "Inteno Broadband Technology AB", "INTENO-BROADBAND-AB" }, { 0x201F3B, "Google, Inc.", "GOOGLE" }, { 0x201F54, "Raisecom Technology CO., LTD", "RAISECOM" }, { 0x202027, "Shenzhen Sundray Technologies Company Limited", "SHENZHEN-SUNDRAY-TECHNOLOGIES-COMPANY" }, { 0x202141, "Universal Electronics BV", "UNIVERSAL-ELECTRONICS" }, { 0x2021A5, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x202564, "PEGATRON CORPORATION", "PEGATRON" }, { 0x202598, "Teleview", "TELEVIEW" }, { 0x2025D2, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x202681, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x20283E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2028BC, "Visionscape Co,. Ltd.", "VISIONSCAPE" }, { 0x2029B9, "Ikotek technology SH Co., Ltd", "IKOTEK-SH" }, { 0x202AC5, "Petite-En", "PETITE-EN" }, { 0x202B20, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x202BC1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x202CB7, "Kong Yue Electronics & Information Industry (Xinhui) Ltd.", "KONG-YUE-ELECTRONICS-INFORMATION-INDUSTRY-XINHUI" }, { 0x202D07, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x202D23, "Collinear Networks Inc.", "COLLINEAR-NETWORKS" }, { 0x202DF8, "Digital Media Cartridge Ltd.", "DIGITAL-MEDIA-CARTRIDGE" }, { 0x20311C, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x20318D, "Giax GmbH", "GIAX" }, { 0x2031EB, "HDSN", "HDSN" }, { 0x203233, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x20326C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x2032C6, "Apple, Inc.", "APPLE" }, { 0x2034FB, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x203626, "TP-Link Corporation Limited", "TP-LINK" }, { 0x20365B, "Megafone Limited", "MEGAFONE" }, { 0x2036D7, "Shanghai Reacheng Communication Technology Co.,Ltd", "SHANGHAI-REACHENG-COMMUNICATION" }, { 0x203706, "Cisco Systems, Inc", "CISCO" }, { 0x2037A5, "Apple, Inc.", "APPLE" }, { 0x2037BC, "Kuipers Electronic Engineering BV", "KUIPERS-ENGINEERING" }, { 0x203956, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x203A07, "Cisco Systems, Inc", "CISCO" }, { 0x203A43, "Intel Corporate", "INTEL-CORPORATE" }, { 0x203AEB, "zte corporation", "ZTE" }, { 0x203AEF, "Sivantos GmbH", "SIVANTOS" }, { 0x203B69, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x203CAE, "Apple, Inc.", "APPLE" }, { 0x203CC0, "Beijing Tosee Technology Co., Ltd.", "BEIJING-TOSEE" }, { 0x203D66, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x203DB2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x203DBD, "LG Innotek", "LG-INNOTEK" }, { 0x204005, "feno GmbH", "FENO" }, { 0x20406A, "AMPAK Technology,Inc.", "AMPAK" }, { 0x20415A, "Smarteh d.o.o.", "SMARTEH-D-O-O" }, { 0x204181, "ESYSE GmbH Embedded Systems Engineering", "ESYSE-EMBEDDED-ENGINEERING" }, { 0x20443A, "Schneider Electric Asia Pacific Ltd", "SCHNEIDER-ELECTRIC-ASIA-PACIFIC" }, { 0x204441, "Remote Solution", "REMOTE-SOLUTION" }, { 0x204569, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x2046A1, "VECOW Co., Ltd", "VECOW" }, { 0x2046F9, "Advanced Network Devices (dba:AND)", "ADVANCED-NETWORK-DEVICES-DBA:AND" }, { 0x204747, "Dell Inc.", "DELL" }, { 0x2047DA, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x2047ED, "SKY UK LIMITED", "SKY-UK" }, { 0x204AAA, "Hanscan Spain S.A.", "HANSCAN-SPAIN" }, { 0x204B22, "Sunnovo International Limited", "SUNNOVO" }, { 0x204C03, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x204C6D, "Hugo Brennenstuhl Gmbh & Co. KG.", "HUGO-BRENNENSTUHL" }, { 0x204C9E, "Cisco Systems, Inc", "CISCO" }, { 0x204E6B, "Axxana(israel) ltd", "AXXANA-ISRAEL" }, { 0x204E71, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x204E7F, "NETGEAR", "NETGEAR" }, { 0x204EF6, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x2050E7, "AMPAK Technology,Inc.", "AMPAK" }, { 0x205383, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2053CA, "Risk Technology Ltd", "RISK" }, { 0x205476, "Sony Corporation", "SONY" }, { 0x2054FA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x205531, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x205532, "Gotech International Technology Limited", "GOTECH" }, { 0x205721, "Salix Technology CO., Ltd.", "SALIX" }, { 0x20579E, "HUNAN FN-LINK TECHNOLOGY LIMITED", "HUNAN-FN-LINK" }, { 0x2057AF, "Shenzhen FH-NET OPTOELECTRONICS CO.,LTD", "SHENZHEN-FH-NET-OPTOELECTRONICS" }, { 0x205869, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x2059A0, "Paragon Technologies Inc.", "PARAGON-TECHNOLOGIES" }, { 0x205A00, "Coval", "COVAL" }, { 0x205B2A, "Private", "PRIVATE" }, { 0x205B5E, "Shenzhen Wonhe Technology Co., Ltd", "SHENZHEN-WONHE" }, { 0x205CFA, "Yangzhou ChangLian Network Technology Co,ltd.", "YANGZHOU-CHANGLIAN-NETWORK" }, { 0x205D47, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x205E64, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x205E97, "Nokia", "NOKIA" }, { 0x205EF7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x205F3D, "Adtran Inc", "ADTRAN" }, { 0x206274, "Microsoft Corporation", "MICROSOFT" }, { 0x206296, "Shenzhen Malio Technology Co.,Ltd", "SHENZHEN-MALIO" }, { 0x20635F, "Abeeway", "ABEEWAY" }, { 0x206432, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0x2064CB, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x2064DE, "Sunitec Enterprise Co.,Ltd", "SUNITEC" }, { 0x20658E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2066CF, "FREEBOX SAS", "FREEBOX-SAS" }, { 0x2066FD, "CONSTELL8 NV", "CONSTELL8-NV" }, { 0x20677C, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x2067B1, "Pluto inc.", "PLUTO" }, { 0x2067E0, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0x20689D, "Liteon Technology Corporation", "LITEON" }, { 0x206980, "Apple, Inc.", "APPLE" }, { 0x206A8A, "Wistron Infocomm (Zhongshan) Corporation", "WISTRON-INFOCOMM-ZHONGSHAN" }, { 0x206A94, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x206AFF, "Atlas Elektronik UK Limited", "ATLAS-ELEKTRONIK-UK" }, { 0x206BE7, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x206C8A, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x206D31, "FIREWALLA INC", "FIREWALLA" }, { 0x206E9C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x206FEC, "Braemac CA LLC", "BRAEMAC-CA" }, { 0x20719E, "SF Technology Co.,Ltd", "SF" }, { 0x2072A9, "Beijing Xiaomi Electronics Co.,Ltd", "BEIJING-XIAOMI-ELECTRONICS" }, { 0x207355, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x207454, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x2074CF, "Shenzhen Voxtech Co.,Ltd", "SHENZHEN-VOXTECH" }, { 0x207600, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x20768F, "Apple, Inc.", "APPLE" }, { 0x207693, "Lenovo (Beijing) Limited.", "LENOVO-BEIJING" }, { 0x207759, "OPTICAL NETWORK VIDEO TECHNOLOGIES (SHENZHEN) CO., LTD.", "OPTICAL-NETWORK-VIDEO-TECHNOLOGIES-SHENZHEN" }, { 0x20780B, "Delta Faucet Company", "DELTA-FAUCET-COMPANY" }, { 0x207852, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x2078CD, "Apple, Inc.", "APPLE" }, { 0x2078F0, "Apple, Inc.", "APPLE" }, { 0x207918, "Intel Corporate", "INTEL-CORPORATE" }, { 0x207BD2, "ASIX Electronics Corporation", "ASIX-ELECTRONICS" }, { 0x207C14, "Qotom", "QOTOM" }, { 0x207C8F, "Quanta Microsystems,Inc.", "QUANTA-MICROSYSTEMS" }, { 0x207D74, "Apple, Inc.", "APPLE" }, { 0x208058, "Ciena Corporation", "CIENA" }, { 0x208097, "Shenzhen OXO Technology limited", "SHENZHEN-OXO" }, { 0x20826A, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x2082C0, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x2083F8, "Advanced Digital Broadcast SA", "ADVANCED-DIGITAL-BROADCAST" }, { 0x2084F5, "Yufei Innovation Software(Shenzhen) Co., Ltd.", "YUFEI-INNOVATION-SOFTWARE-SHENZHEN" }, { 0x20858C, "Assa", "ASSA" }, { 0x208593, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x208756, "SIEMENS AG", "SIEMENS" }, { 0x2087AC, "AES motomation", "AES-MOTOMATION" }, { 0x2087EC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x208810, "Dell Inc.", "DELL" }, { 0x20896F, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x208984, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x208986, "zte corporation", "ZTE" }, { 0x20898A, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x208B37, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0x208BD1, "NXP Semiconductor (Tianjin) LTD.", "NXP-SEMICONDUCTOR-TIANJIN" }, { 0x208C47, "Tenstorrent Inc", "TENSTORRENT" }, { 0x208C86, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x20906F, "Shenzhen Tencent Computer System Co., Ltd.", "SHENZHEN-TENCENT-SYSTEM" }, { 0x209148, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x20918A, "PROFALUX", "PROFALUX" }, { 0x2091D9, "I'M SPA", "I-M-SPA" }, { 0x2091DF, "Apple, Inc.", "APPLE" }, { 0x20934D, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0x20968A, "China Mobile (Hangzhou) Information Technology Co., Ltd.", "CHINA-MOBILE-HANGZHOU-INFORMATION" }, { 0x209727, "TELTONIKA NETWORKS UAB", "TELTONIKA-NETWORKS-UAB" }, { 0x2098D8, "Shenzhen Yingdakang Technology CO., LTD", "SHENZHEN-YINGDAKANG" }, { 0x209A7D, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x209AE9, "Volacomm Co., Ltd", "VOLACOMM" }, { 0x209BA5, "JIAXING GLEAD Electronics Co.,Ltd", "JIAXING-GLEAD-ELECTRONICS" }, { 0x209BCD, "Apple, Inc.", "APPLE" }, { 0x209BE6, "Guangzhou Shiyuan Electronic Technology Company Limited", "GUANGZHOU-SHIYUAN-COMPANY" }, { 0x209CB4, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x209E79, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x209EF7, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x20A171, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x20A2E4, "Apple, Inc.", "APPLE" }, { 0x20A2E7, "Lee-Dickens Ltd", "LEE-DICKENS" }, { 0x20A5CB, "Apple, Inc.", "APPLE" }, { 0x20A60C, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x20A680, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x20A6CD, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x20A766, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x20A783, "miControl GmbH", "MICONTROL" }, { 0x20A787, "Bointec Taiwan Corporation Limited", "BOINTEC-TAIWAN" }, { 0x20A7F9, "SHENZHEN OLANBOA TECHNOLOGY CO., LTD", "SHENZHEN-OLANBOA" }, { 0x20A8B9, "SIEMENS AG", "SIEMENS" }, { 0x20A90E, "TCT mobile ltd", "TCT-MOBILE" }, { 0x20A99B, "Microsoft Corporation", "MICROSOFT" }, { 0x20AA25, "IP-NET LLC", "IP-NET" }, { 0x20AA4B, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x20AB37, "Apple, Inc.", "APPLE" }, { 0x20AB48, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x20AC9C, "China Telecom Corporation Limited", "CHINA-TELECOM" }, { 0x20AD56, "Continental Automotive Systems Inc.", "CONTINENTAL-AUTOMOTIVE" }, { 0x20AF1B, "SteelSeries ApS", "STEELSERIES-APS" }, { 0x20B001, "Technicolor Delivery Technologies Belgium NV", "TECHNICOLOR-DELIVERY-TECHNOLOGIES-BELGIUM-NV" }, { 0x20B0F7, "Enclustra GmbH", "ENCLUSTRA" }, { 0x20B399, "Enterasys", "ENTERASYS" }, { 0x20B5C6, "Mimosa Networks", "MIMOSA-NETWORKS" }, { 0x20B730, "TeconGroup, Inc", "TECONGROUP" }, { 0x20B780, "Toshiba Visual Solutions Corporation Co.,Ltd", "TOSHIBA-VISUAL-SOLUTIONS" }, { 0x20B7C0, "OMICRON electronics GmbH", "OMICRON-ELECTRONICS" }, { 0x20B82B, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x20B868, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x20BA36, "u-blox AG", "U-BLOX" }, { 0x20BB76, "COL GIOVANNI PAOLO SpA", "COL-GIOVANNI-PAOLO-SPA" }, { 0x20BBBC, "Hangzhou Ezviz Software Co.,Ltd.", "HANGZHOU-EZVIZ-SOFTWARE" }, { 0x20BBC0, "Cisco Systems, Inc", "CISCO" }, { 0x20BBC6, "Jabil Circuit Hungary Ltd.", "JABIL-CIRCUIT-HUNGARY" }, { 0x20BECD, "eero inc.", "EERO" }, { 0x20BFDB, "DVL", "DVL" }, { 0x20C047, "Verizon", "VERIZON" }, { 0x20C06D, "SHENZHEN SPACETEK TECHNOLOGY CO.,LTD", "SHENZHEN-SPACETEK" }, { 0x20C19B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x20C1AF, "i Wit Digital Co., Limited", "I-WIT-DIGITAL" }, { 0x20C38F, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x20C3A4, "RetailNext", "RETAILNEXT" }, { 0x20C60D, "Shanghai annijie Information technology Co.,LTD", "SHANGHAI-ANNIJIE-INFORMATION" }, { 0x20C6EB, "Panasonic Corporation AVC Networks Company", "PANASONIC-AVC-NETWORKS-COMPANY" }, { 0x20C74F, "SensorPush", "SENSORPUSH" }, { 0x20C8B3, "SHENZHEN BUL-TECH CO.,LTD.", "SHENZHEN-BUL-TECH" }, { 0x20C9D0, "Apple, Inc.", "APPLE" }, { 0x20CD39, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x20CD6E, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x20CE2A, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x20CEC4, "Peraso Technologies", "PERASO-TECHNOLOGIES" }, { 0x20CF30, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x20CFAE, "Cisco Systems, Inc", "CISCO" }, { 0x20D160, "Private", "PRIVATE" }, { 0x20D21F, "Wincal Technology Corp.", "WINCAL" }, { 0x20D25F, "SmartCap Technologies", "SMARTCAP-TECHNOLOGIES" }, { 0x20D276, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x20D390, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x20D5AB, "Korea Infocom Co.,Ltd.", "KOREA-INFOCOM" }, { 0x20D5BF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x20D607, "Nokia Corporation", "NOKIA" }, { 0x20D75A, "Posh Mobile Limited", "POSH-MOBILE" }, { 0x20D778, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x20D80B, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x20D906, "Iota, Inc.", "IOTA" }, { 0x20DA22, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x20DBAB, "Samsung Electronics Co., Ltd.", "SAMSUNG-ELECTRONICS" }, { 0x20DC93, "Cheetah Hi-Tech, Inc.", "CHEETAH-HI-TECH" }, { 0x20DCE6, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x20DCFD, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x20DE1E, "Nokia", "NOKIA" }, { 0x20DE88, "IC Realtime LLC", "IC-REALTIME" }, { 0x20DF3F, "Nanjing SAC Power Grid Automation Co., Ltd.", "NANJING-SAC-POWER-GRID-AUTOMATION" }, { 0x20DF73, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x20DFB9, "Google, Inc.", "GOOGLE" }, { 0x20E09C, "Nokia", "NOKIA" }, { 0x20E2A8, "Apple, Inc.", "APPLE" }, { 0x20E407, "Spark srl", "SPARK-SRL" }, { 0x20E46F, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x20E52A, "NETGEAR", "NETGEAR" }, { 0x20E564, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x20E6DF, "eero inc.", "EERO" }, { 0x20E791, "Siemens Healthcare Diagnostics, Inc", "SIEMENS-HEALTHCARE-DIAGNOSTICS" }, { 0x20E7B6, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x20E874, "Apple, Inc.", "APPLE" }, { 0x20E882, "zte corporation", "ZTE" }, { 0x20EAC7, "SHENZHEN RIOPINE ELECTRONICS CO., LTD", "SHENZHEN-RIOPINE-ELECTRONICS" }, { 0x20ED74, "Ability enterprise co.,Ltd.", "ABILITY" }, { 0x20EE28, "Apple, Inc.", "APPLE" }, { 0x20EEC6, "Elefirst Science & Tech Co ., ltd", "ELEFIRST-SCIENCE-TECH" }, { 0x20EFBD, "Roku, Inc", "ROKU" }, { 0x20F002, "MTData Developments Pty. Ltd.", "MTDATA-DEVELOPMENTS-PTY" }, { 0x20F17C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x20F19E, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x20F375, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x20F3A3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x20F41B, "Shenzhen Bilian electronic CO.,LTD", "SHENZHEN-BILIAN" }, { 0x20F44F, "Nokia", "NOKIA" }, { 0x20F452, "Shanghai IUV Software Development Co. Ltd", "SHANGHAI-IUV-SOFTWARE-DEVELOPMENT" }, { 0x20F478, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x20F510, "Codex Digital Limited", "CODEX-DIGITAL" }, { 0x20F543, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x20F597, "Maasiv, LLC", "MAASIV" }, { 0x20F77C, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x20F85E, "Delta Electronics", "DELTA-ELECTRONICS" }, { 0x20FABB, "Cambridge Executive Limited", "CAMBRIDGE-EXECUTIVE" }, { 0x20FADB, "Huahao Kunpeng Technology (chengDu) Co.,Ltd.", "HUAHAO-KUNPENG-CHENGDU" }, { 0x20FDF1, "3COM EUROPE LTD", "3COM" }, { 0x20FE00, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x20FECD, "System In Frontier Inc.", "SYSTEM-IN-FRONTIER" }, { 0x20FEDB, "M2M Solution S.A.S.", "M2M-SOLUTION-S" }, { 0x20FF36, "IFLYTEK CO.,LTD.", "IFLYTEK" }, { 0x2400BA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2400FA, "China Mobile (Hangzhou) Information Technology Co., Ltd", "CHINA-MOBILE-HANGZHOU-INFORMATION" }, { 0x24016F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x2401C7, "Cisco Systems, Inc", "CISCO" }, { 0x24050F, "MTN Electronic Co. Ltd", "MTN" }, { 0x240588, "Google, Inc.", "GOOGLE" }, { 0x2405F5, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x2406AA, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x2406F2, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x24085D, "Continental Aftermarket & Services GmbH", "CONTINENTAL-AFTERMARKET-SERVICES" }, { 0x240917, "Devlin Electronics Limited", "DEVLIN-ELECTRONICS" }, { 0x240935, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x240995, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x240A11, "TCT mobile ltd", "TCT-MOBILE" }, { 0x240A63, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x240A64, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x240AC4, "Espressif Inc.", "ESPRESSIF" }, { 0x240B0A, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x240B2A, "Viettel Group", "VIETTEL-GROUP" }, { 0x240B88, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x240BB1, "KOSTAL Industrie Elektrik GmbH", "KOSTAL-INDUSTRIE-ELEKTRIK" }, { 0x240D65, "Shenzhen Vsun Communication Technology Co., Ltd.", "SHENZHEN-VSUN-COMMUNICATION" }, { 0x240D6C, "SMND", "SMND" }, { 0x240DC2, "TCT mobile ltd", "TCT-MOBILE" }, { 0x240F5E, "Shenzhen z-router Technology Co., Ltd", "SHENZHEN-Z-ROUTER" }, { 0x240F9B, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x241064, "Shenzhen Ecsino Tecnical Co. Ltd", "SHENZHEN-ECSINO-TECNICAL" }, { 0x241125, "Hutek Co., Ltd.", "HUTEK" }, { 0x241145, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x241148, "Entropix, LLC", "ENTROPIX" }, { 0x241153, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x2411D0, "Chongqing Ehs Science and Technology Development Co.,Ltd.", "CHONGQING-EHS-SCIENCE-AND-DEVELOPMENT" }, { 0x241281, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x241407, "Xiamen Sigmastar Technology Ltd.", "XIAMEN-SIGMASTAR" }, { 0x241510, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x241551, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x24161B, "Cisco Systems, Inc", "CISCO" }, { 0x24166D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x24169D, "Cisco Systems, Inc", "CISCO" }, { 0x24181D, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x2418C0, "E. Wehrle GmbH", "E-WEHRLE" }, { 0x2418C6, "HUNAN FN-LINK TECHNOLOGY LIMITED", "HUNAN-FN-LINK" }, { 0x241A8C, "Squarehead Technology AS", "SQUAREHEAD-AS" }, { 0x241AE6, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x241B13, "Shanghai Nutshell Electronic Co., Ltd.", "SHANGHAI-NUTSHELL" }, { 0x241B44, "Hangzhou Tuners Electronics Co., Ltd", "HANGZHOU-TUNERS-ELECTRONICS" }, { 0x241B7A, "Apple, Inc.", "APPLE" }, { 0x241C04, "SHENZHEN JEHE TECHNOLOGY DEVELOPMENT CO., LTD.", "SHENZHEN-JEHE-DEVELOPMENT" }, { 0x241D48, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x241EEB, "Apple, Inc.", "APPLE" }, { 0x241F2C, "Calsys, Inc.", "CALSYS" }, { 0x241FA0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x241FBD, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x2420C7, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x242124, "Nokia", "NOKIA" }, { 0x2421AB, "Sony Corporation", "SONY" }, { 0x242361, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x24240E, "Apple, Inc.", "APPLE" }, { 0x242642, "SHARP Corporation.", "SHARP" }, { 0x2426BA, "Shenzhen Toptel Technology Co., Ltd.", "SHENZHEN-TOPTEL" }, { 0x2426D6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x242730, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0x2428FD, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x242934, "Google, Inc.", "GOOGLE" }, { 0x2429FE, "KYOCERA Corporation", "KYOCERA" }, { 0x242A04, "Cisco Systems, Inc", "CISCO" }, { 0x242CFE, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0x242E02, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x242E90, "PALIT MICROSYSTEMS, LTD", "PALIT-MICROSYSTEMS" }, { 0x242FFA, "Toshiba Global Commerce Solutions", "TOSHIBA-GLOBAL-COMMERCE-SOLUTIONS" }, { 0x2430F8, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x243154, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x243184, "SHARP Corporation", "SHARP" }, { 0x2432AE, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x24336C, "Private", "PRIVATE" }, { 0x2435CC, "Zhongshan Scinan Internet of Things Co.,Ltd.", "ZHONGSHAN-SCINAN-INTERNET-OF-THINGS" }, { 0x2436DA, "Cisco Systems, Inc", "CISCO" }, { 0x24374C, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x2437EF, "EMC Electronic Media Communication SA", "EMC-MEDIA-COMMUNICATION" }, { 0x243A82, "IRTS", "IRTS" }, { 0x243C20, "Dynamode Group", "DYNAMODE-GROUP" }, { 0x243F30, "Oxygen Broadband s.a.", "OXYGEN-BROADBAND" }, { 0x243FAA, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x2440AE, "NIIC Technology Co., Ltd.", "NIIC" }, { 0x24418C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x2442BC, "Alinco,incorporated", "ALINCO-INCORPORATED" }, { 0x2443E2, "DASAN Network Solutions", "DASAN-NETWORK-SOLUTIONS" }, { 0x244427, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x24456B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x244597, "GEMUE Gebr. Mueller Apparatebau", "GEMUE-GEBR-MUELLER-APPARATEBAU" }, { 0x2446C8, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x2446E4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x24470E, "PentronicAB", "PENTRONICAB" }, { 0x244845, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x24497B, "Innovative Converged Devices Inc", "INNOVATIVE-CONVERGED-DEVICES" }, { 0x244B03, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x244B81, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x244BF1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x244BFE, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x244C07, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x244CAB, "Espressif Inc.", "ESPRESSIF" }, { 0x244CE3, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x244E7B, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x244F1D, "iRule LLC", "IRULE" }, { 0x24526A, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0x2453BF, "Enernet", "ENERNET" }, { 0x24586E, "zte corporation", "ZTE" }, { 0x245880, "VIZEO", "VIZEO" }, { 0x24590B, "White Sky Inc. Limited", "WHITE-SKY" }, { 0x245A4C, "Ubiquiti Inc", "UBIQUITI" }, { 0x245AB5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x245B83, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x245BA7, "Apple, Inc.", "APPLE" }, { 0x245BF0, "Liteon, Inc.", "LITEON" }, { 0x245CBF, "NCSE", "NCSE" }, { 0x245CC5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x245CCB, "AXIe Consortium, Inc.", "AXIE-CONSORTIUM" }, { 0x245DFC, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x245E48, "Apple, Inc.", "APPLE" }, { 0x245EBE, "QNAP Systems, Inc.", "QNAP" }, { 0x245F9F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x245FDF, "KYOCERA CORPORATION", "KYOCERA" }, { 0x246081, "razberi technologies", "RAZBERI-TECHNOLOGIES" }, { 0x24615A, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x246278, "sysmocom - systems for mobile communications GmbH", "SYSMOCOM-FOR-MOBILE-COMMUNICATION" }, { 0x2462AB, "Espressif Inc.", "ESPRESSIF" }, { 0x2462CE, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x24649F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x2464EF, "CYG SUNRI CO.,LTD.", "CYG-SUNRI" }, { 0x246511, "AVM GmbH", "AVM" }, { 0x246880, "Braveridge.co.,ltd.", "BRAVERIDGE" }, { 0x2468B0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x24693E, "innodisk Corporation", "INNODISK" }, { 0x24694A, "Jasmine Systems Inc.", "JASMINE" }, { 0x246968, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x24698E, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x2469A5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x246AAB, "IT-IS International", "IT-IS" }, { 0x246C60, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x246C84, "Cisco Systems, Inc", "CISCO" }, { 0x246C8A, "YUKAI Engineering", "YUKAI-ENGINEERING" }, { 0x246E96, "Dell Inc.", "DELL" }, { 0x246F28, "Espressif Inc.", "ESPRESSIF" }, { 0x246F8C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x247152, "Dell Inc.", "DELL" }, { 0x247189, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x24724A, "Nile Global Inc", "NILE-GLOBAL" }, { 0x247260, "IOTTECH Corp", "IOTTECH" }, { 0x2474F7, "GoPro", "GOPRO" }, { 0x24753A, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x247625, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x247656, "Shanghai Net Miles Fiber Optics Technology Co., LTD.", "SHANGHAI-NET-MILES-FIBER-OPTICS" }, { 0x24767D, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x247703, "Intel Corporate", "INTEL-CORPORATE" }, { 0x247823, "Panasonic Entertainment & Communication Co., Ltd.", "PANASONIC-ENTERTAINMENT-COMMUNICATION" }, { 0x24792A, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x2479EF, "Greenpacket Berhad, Taiwan", "GREENPACKET-BERHAD-TAIWAN" }, { 0x2479F3, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x2479F8, "KUPSON spol. s r.o.", "KUPSON-SPOL-S-R-O" }, { 0x247C4C, "Herman Miller", "HERMAN-MILLER" }, { 0x247D4D, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x247E12, "Cisco Systems, Inc", "CISCO" }, { 0x247E51, "zte corporation", "ZTE" }, { 0x247F20, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x247F3C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x248000, "Westcontrol AS", "WESTCONTROL-AS" }, { 0x24813B, "Cisco Systems, Inc", "CISCO" }, { 0x2481AA, "KSH International Co., Ltd.", "KSH" }, { 0x2481C7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x24828A, "Prowave Technologies Ltd.", "PROWAVE-TECHNOLOGIES" }, { 0x248498, "Beijing Jiaoda Microunion Tech.Co.,Ltd.", "BEIJING-JIAODA-MICROUNION-TECH" }, { 0x2486F4, "Ctek, Inc.", "CTEK" }, { 0x248707, "SEnergy Corporation", "SENERGY" }, { 0x248894, "shenzhen lensun Communication Technology LTD", "SHENZHEN-LENSUN-COMMUNICATION" }, { 0x248A07, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0x248BE0, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x249038, "Universal Biosensors Pty Ltd", "UNIVERSAL-BIOSENSORS-PTY" }, { 0x2491BB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x24920E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x2493CA, "Voxtronic Austria", "VOXTRONIC-AUSTRIA" }, { 0x249442, "OPEN ROAD SOLUTIONS , INC.", "OPEN-ROAD-SOLUTIONS" }, { 0x249493, "FibRSol Global Network Limited", "FIBRSOL-GLOBAL-NETWORK" }, { 0x249494, "Hong Kong Bouffalo Lab Limited", "HONG-KONG-BOUFFALO-LAB" }, { 0x2494CB, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x249504, "SFR", "SFR" }, { 0x24952F, "Google, Inc.", "GOOGLE" }, { 0x249745, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2497ED, "Techvision Intelligent Technology Limited", "TECHVISION-INTELLIGENT" }, { 0x249AC8, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x249AD8, "YEALINK(XIAMEN) NETWORK TECHNOLOGY CO.,LTD.", "YEALINK-XIAMEN-NETWORK" }, { 0x249EAB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x249F89, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x24A074, "Apple, Inc.", "APPLE" }, { 0x24A160, "Espressif Inc.", "ESPRESSIF" }, { 0x24A2E1, "Apple, Inc.", "APPLE" }, { 0x24A42C, "NETIO products a.s.", "NETIO-PRODUCTS" }, { 0x24A43C, "Ubiquiti Inc", "UBIQUITI" }, { 0x24A487, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x24A495, "Thales Canada Inc.", "THALES-CANADA" }, { 0x24A52C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x24A534, "SynTrust Tech International Ltd.", "SYNTRUST-TECH" }, { 0x24A65E, "zte corporation", "ZTE" }, { 0x24A6FA, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0x24A799, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x24A7DC, "SKY UK LIMITED", "SKY-UK" }, { 0x24A87D, "Panasonic Automotive Systems Asia Pacific(Thailand)Co.,Ltd.", "PANASONIC-AUTOMOTIVE-ASIA-PACIFIC-THAILAND" }, { 0x24A937, "PURE Storage", "PURE-STORAGE" }, { 0x24AB81, "Apple, Inc.", "APPLE" }, { 0x24AF4A, "Alcatel-Lucent IPD", "ALCATEL-LUCENT-IPD" }, { 0x24AF54, "NEXGEN Mediatech Inc.", "NEXGEN-MEDIATECH" }, { 0x24B0A9, "Shanghai Mobiletek Communication Ltd.", "SHANGHAI-MOBILETEK-COMMUNICATION" }, { 0x24B105, "Prama Hikvision India Private Limited", "PRAMA-HIKVISION-INDIA-PRIVATE" }, { 0x24B209, "Avaya Inc", "AVAYA" }, { 0x24B2DE, "Espressif Inc.", "ESPRESSIF" }, { 0x24B657, "Cisco Systems, Inc", "CISCO" }, { 0x24B6B8, "FRIEM SPA", "FRIEM-SPA" }, { 0x24B6FD, "Dell Inc.", "DELL" }, { 0x24B72A, "China Dragon Technology Limited", "CHINA-DRAGON" }, { 0x24B7DA, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x24B88C, "Crenus Co.,Ltd.", "CRENUS" }, { 0x24B8D2, "Opzoon Technology Co.,Ltd.", "OPZOON" }, { 0x24BA13, "RISO KAGAKU CORPORATION", "RISO-KAGAKU" }, { 0x24BA30, "Technical Consumer Products, Inc.", "TECHNICAL-CONSUMER-PRODUCTS" }, { 0x24BBC1, "Absolute Analysis", "ABSOLUTE-ANALYSIS" }, { 0x24BBC9, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x24BC82, "Dali Wireless, Inc.", "DALI-WIRELESS" }, { 0x24BCF8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x24BE05, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x24BE18, "DADOUTEK COMPANY LIMITED", "DADOUTEK-COMPANY" }, { 0x24BF74, "Hamamatsu Photonics K.K.", "HAMAMATSU-PHOTONICS-K-K" }, { 0x24C0B3, "RSF", "RSF" }, { 0x24C17A, "BEIJING IACTIVE NETWORK CO.,LTD", "BEIJING-IACTIVE-NETWORK" }, { 0x24C1BD, "CRRC DALIAN R&D CO.,LTD.", "CRRC-DALIAN-R-D" }, { 0x24C3F9, "Securitas Direct AB", "SECURITAS-DIRECT-AB" }, { 0x24C42F, "Philips Lifeline", "PHILIPS-LIFELINE" }, { 0x24C44A, "zte corporation", "ZTE" }, { 0x24C613, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x24C696, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x24C848, "mywerk Portal GmbH", "MYWERK-PORTAL" }, { 0x24C86E, "Chaney Instrument Co.", "CHANEY-INSTRUMENT" }, { 0x24C8D3, "McWane India Pvt Ltd", "MCWANE-INDIA-PVT" }, { 0x24C9A1, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x24C9DE, "Genoray", "GENORAY" }, { 0x24CACB, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x24CBE7, "MYK, Inc.", "MYK" }, { 0x24CD8D, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x24CE33, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x24CF21, "Shenzhen State Micro Technology Co., Ltd", "SHENZHEN-STATE-MICRO" }, { 0x24CF24, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x24D0DF, "Apple, Inc.", "APPLE" }, { 0x24D13F, "MEXUS CO.,LTD", "MEXUS" }, { 0x24D2CC, "SmartDrive Systems Inc.", "SMARTDRIVE" }, { 0x24D337, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x24D3F2, "zte corporation", "ZTE" }, { 0x24D51C, "Zhongtian broadband technology co., LTD", "ZHONGTIAN-BROADBAND" }, { 0x24D76B, "Syntronic AB", "SYNTRONIC-AB" }, { 0x24D79C, "Cisco Systems, Inc", "CISCO" }, { 0x24D7EB, "Espressif Inc.", "ESPRESSIF" }, { 0x24D81E, "MirWifi,Joint-Stock Company", "MIRWIFI-JOINT-STOCK-COMPANY" }, { 0x24D904, "Sichuan Changhong Network Technologies Co., Ltd.", "SICHUAN-CHANGHONG-NETWORK-TECHNOLOGIES" }, { 0x24D921, "Avaya Inc", "AVAYA" }, { 0x24DA11, "NO NDA Inc", "NO-NDA" }, { 0x24DA33, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x24DA9B, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x24DAB6, "Sistemas de Gestión Energética S.A. de C.V", "SISTEMAS-DE-GESTIN-ENERGTICA-DE-C-V" }, { 0x24DBAC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x24DBAD, "ShopperTrak RCT Corporation", "SHOPPERTRAK-RCT" }, { 0x24DBED, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x24DC0F, "Phytium Technology Co.,Ltd.", "PHYTIUM" }, { 0x24DCC3, "Espressif Inc.", "ESPRESSIF" }, { 0x24DEC6, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x24DF6A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x24DFA7, "Hangzhou BroadLink Technology Co.,Ltd", "HANGZHOU-BROADLINK" }, { 0x24E124, "Xiamen Milesight IoT Co., Ltd.", "XIAMEN-MILESIGHT-IOT" }, { 0x24E271, "Qingdao Hisense Communications Co.,Ltd.", "QINGDAO-HISENSE-COMMUNICATION" }, { 0x24E314, "Apple, Inc.", "APPLE" }, { 0x24E3DE, "China Telecom Fufu Information Technology Co., Ltd.", "CHINA-TELECOM-FUFU-INFORMATION" }, { 0x24E43F, "Wenzhou Kunmei Communication Technology Co.,Ltd.", "WENZHOU-KUNMEI-COMMUNICATION" }, { 0x24E4C8, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x24E4CE, "Kaon Group Co., Ltd.", "KAON-GROUP" }, { 0x24E50F, "Google, Inc.", "GOOGLE" }, { 0x24E5AA, "Philips Oral Healthcare, Inc.", "PHILIPS-ORAL-HEALTHCARE" }, { 0x24E6BA, "JSC Zavod im. Kozitsky", "JSC-ZAVOD-IM-KOZITSKY" }, { 0x24E853, "LG Innotek", "LG-INNOTEK" }, { 0x24E8E5, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x24E927, "TomTom International BV", "TOMTOM" }, { 0x24E9B3, "Cisco Systems, Inc", "CISCO" }, { 0x24E9CA, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x24EA40, "Helmholz GmbH & Co. KG", "HELMHOLZ" }, { 0x24EB65, "SAET I.S. S.r.l.", "SAET-I-S" }, { 0x24EBED, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x24EC51, "ADF Technologies Sdn Bhd", "ADF-TECHNOLOGIES" }, { 0x24EC99, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x24ECD6, "CSG Science & Technology Co.,Ltd.Hefei", "CSG-SCIENCE-HEFEI" }, { 0x24EDFD, "Siemens Canada Limited", "SIEMENS-CANADA" }, { 0x24EE3A, "Chengdu Yingji Electronic Hi-tech Co Ltd", "CHENGDU-YINGJI-HI-TECH" }, { 0x24EE9A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x24F094, "Apple, Inc.", "APPLE" }, { 0x24F0D3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x24F0FF, "GHT Co., Ltd.", "GHT" }, { 0x24F128, "Telstra", "TELSTRA" }, { 0x24F150, "Guangzhou Qi'an Technology Co., Ltd.", "GUANGZHOU-QI-AN" }, { 0x24F27F, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x24F2DD, "Radiant Zemax LLC", "RADIANT-ZEMAX" }, { 0x24F57E, "HWH CO., LTD.", "HWH" }, { 0x24F5A2, "Belkin International Inc.", "BELKIN" }, { 0x24F5AA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x24F603, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x24F677, "Apple, Inc.", "APPLE" }, { 0x24FAF3, "Shanghai Flexem Technology Co.,Ltd.", "SHANGHAI-FLEXEM" }, { 0x24FB65, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x24FC4E, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x24FCE5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x24FD0D, "Intelbras", "INTELBRAS" }, { 0x24FD52, "Liteon Technology Corporation", "LITEON" }, { 0x24FD5B, "SmartThings, Inc.", "SMARTTHINGS" }, { 0x24FDFA, "Private", "PRIVATE" }, { 0x24FE9A, "CyberTAN Technology Inc.", "CYBERTAN" }, { 0x28011C, "zte corporation", "ZTE" }, { 0x28022E, "Apple, Inc.", "APPLE" }, { 0x280244, "Apple, Inc.", "APPLE" }, { 0x280245, "Konze System Technology Co.,Ltd.", "KONZE-SYSTEM" }, { 0x2802D8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x2804C6, "Wanan Hongsheng Electronic Co.Ltd", "WANAN-HONGSHENG" }, { 0x2804E0, "FERMAX ELECTRONICA S.A.U.", "FERMAX-ELECTRONICA-U" }, { 0x28052E, "Dematic Corp", "DEMATIC" }, { 0x28061E, "NINGBO GLOBAL USEFUL ELECTRIC CO.,LTD", "NINGBO-GLOBAL-USEFUL-ELECTRIC" }, { 0x28068D, "ITL, LLC", "ITL" }, { 0x28070D, "GUANGZHOU WINSOUND INFORMATION TECHNOLOGY CO.,LTD.", "GUANGZHOU-WINSOUND-INFORMATION" }, { 0x280AEE, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x280B5C, "Apple, Inc.", "APPLE" }, { 0x280C28, "Unigen DataStorage Corporation", "UNIGEN-DATASTORAGE" }, { 0x280C2D, "QUALVISION TECHNOLOGY CO.,LTD", "QUALVISION" }, { 0x280CB8, "Mikrosay Yazilim ve Elektronik A.S.", "MIKROSAY-YAZILIM-VE-ELEKTRONIK" }, { 0x280DFC, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x280E8B, "Beijing Spirit Technology Development Co., Ltd.", "BEIJING-SPIRIT-DEVELOPMENT" }, { 0x280FC5, "Beijing Leadsec Technology Co., Ltd.", "BEIJING-LEADSEC" }, { 0x280FEB, "LG Innotek", "LG-INNOTEK" }, { 0x28101B, "MagnaCom", "MAGNACOM" }, { 0x28107B, "D-Link International", "D-LINK" }, { 0x2811A5, "Bose Corporation", "BOSE" }, { 0x2811A8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x2811EC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x281293, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x281471, "Lantis co., LTD.", "LANTIS" }, { 0x28162E, "2Wire Inc", "2WIRE" }, { 0x28167F, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x2816A8, "Microsoft Corporation", "MICROSOFT" }, { 0x2816AD, "Intel Corporate", "INTEL-CORPORATE" }, { 0x281709, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2817CE, "Omnisense Ltd", "OMNISENSE" }, { 0x281878, "Microsoft Corporation", "MICROSOFT" }, { 0x2818FD, "Aditya Infotech Ltd.", "ADITYA-INFOTECH" }, { 0x281B04, "Zalliant LLC", "ZALLIANT" }, { 0x281D21, "IN ONE SMART TECHNOLOGY(H,K,)LIMITED", "IN-ONE-SMART-H-K" }, { 0x282246, "Beijing Sinoix Communication Co., LTD", "BEIJING-SINOIX-COMMUNICATION" }, { 0x282373, "Digita", "DIGITA" }, { 0x2823F5, "China Mobile (Hangzhou) Information Technology Co., Ltd.", "CHINA-MOBILE-HANGZHOU-INFORMATION" }, { 0x2824FF, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x282536, "SHENZHEN HOLATEK CO.,LTD", "SHENZHEN-HOLATEK" }, { 0x2826A6, "PBR electronics GmbH", "PBR-ELECTRONICS" }, { 0x2827BF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x28285D, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x282947, "Chipsea Technologies (Shenzhen) Corp.", "CHIPSEA-TECHNOLOGIES-SHENZHEN" }, { 0x282986, "APC by Schneider Electric", "APC-BY-SCHNEIDER-ELECTRIC" }, { 0x2829CC, "Corsa Technology Incorporated", "CORSA-INCORPORATED" }, { 0x2829D9, "GlobalBeiMing technology (Beijing)Co. Ltd", "GLOBALBEIMING-BEIJING" }, { 0x282A87, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x282B96, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x282BB9, "Shenzhen Xiongxin Technology Co.,Ltd", "SHENZHEN-XIONGXIN" }, { 0x282C02, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x282CB2, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x282D06, "AMPAK Technology,Inc.", "AMPAK" }, { 0x282FC2, "Automotive Data Solutions", "AUTOMOTIVE-DATA-SOLUTIONS" }, { 0x2830AC, "Frontiir Co. Ltd.", "FRONTIIR" }, { 0x283152, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x283166, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x28317E, "Hongkong Nano IC Technologies Co., Ltd", "HONGKONG-NANO-IC-TECHNOLOGIES" }, { 0x2832C5, "HUMAX Co., Ltd.", "HUMAX" }, { 0x283334, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x283410, "Enigma Diagnostics Limited", "ENIGMA-DIAGNOSTICS" }, { 0x2834A2, "Cisco Systems, Inc", "CISCO" }, { 0x283545, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0x283613, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x283638, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x283713, "Shenzhen 3Nod Digital Technology Co., Ltd.", "SHENZHEN-3NOD-DIGITAL" }, { 0x283737, "Apple, Inc.", "APPLE" }, { 0x28385C, "FLEXTRONICS", "FLEXTRONICS" }, { 0x2838CF, "Gen2wave", "GEN2WAVE" }, { 0x283926, "CyberTAN Technology Inc.", "CYBERTAN" }, { 0x28395E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x2839E7, "Preceno Technology Pte.Ltd.", "PRECENO-PTE" }, { 0x283A4D, "Cloud Network Technology (Samoa) Limited", "CLOUD-NETWORK-SAMOA" }, { 0x283B82, "D-Link International", "D-LINK" }, { 0x283B96, "Cool Control LTD", "COOL-CONTROL" }, { 0x283CE4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x283DC2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x283E0C, "Preferred Robotics, Inc.", "PREFERRED-ROBOTICS" }, { 0x283E76, "Common Networks", "COMMON-NETWORKS" }, { 0x283F69, "Sony Corporation", "SONY" }, { 0x28401A, "C8 MediSensors, Inc.", "C8-MEDISENSORS" }, { 0x284121, "OptiSense Network, LLC", "OPTISENSE-NETWORK" }, { 0x2841C6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2841EC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x284430, "GenesisTechnical Systems (UK) Ltd", "GENESISTECHNICAL-UK" }, { 0x2847AA, "Nokia Corporation", "NOKIA" }, { 0x284846, "GridCentric Inc.", "GRIDCENTRIC" }, { 0x2848E7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x284C53, "Intune Networks", "INTUNE-NETWORKS" }, { 0x284D92, "Luminator", "LUMINATOR" }, { 0x284ED7, "OutSmart Power Systems, Inc.", "OUTSMART-POWER" }, { 0x284FCE, "Liaoning Wontel Science and Technology Development Co.,Ltd.", "LIAONING-WONTEL-SCIENCE-AND-DEVELOPMENT" }, { 0x285132, "Shenzhen Prayfly Technology Co.,Ltd", "SHENZHEN-PRAYFLY" }, { 0x285261, "Cisco Systems, Inc", "CISCO" }, { 0x2852E0, "Layon international Electronic & Telecom Co.,Ltd", "LAYON-TELECOM" }, { 0x2852F9, "Zhongxin Intelligent Times (Shenzhen) Co., Ltd.", "ZHONGXIN-INTELLIGENT-TIMES-SHENZHEN" }, { 0x28534E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2853E0, "Sintela Ltd", "SINTELA" }, { 0x285471, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x28563A, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x28565A, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x2856C1, "Harman/Becker Automotive Systems GmbH", "HARMAN/BECKER-AUTOMOTIVE" }, { 0x285767, "Dish Technologies Corp", "DISH-TECHNOLOGIES" }, { 0x2857BE, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x285AEB, "Apple, Inc.", "APPLE" }, { 0x285B0C, "Sichuan Jiuzhou Electronic Technology Co., Ltd.", "SICHUAN-JIUZHOU" }, { 0x285F2F, "RNware Co.,Ltd.", "RNWARE" }, { 0x285FDB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x286046, "Lantech Communications Global, Inc.", "LANTECH-COMMUNICATION-GLOBAL" }, { 0x286094, "CAPELEC", "CAPELEC" }, { 0x286336, "Siemens AG", "SIEMENS" }, { 0x2863BD, "APTIV SERVICES US, LLC", "APTIV-SERVICES-US" }, { 0x2864B0, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x2864EF, "Shenzhen Fsan Intelligent Technology Co.,Ltd", "SHENZHEN-FSAN-INTELLIGENT" }, { 0x28656B, "Keystone Microtech Corporation", "KEYSTONE-MICROTECH" }, { 0x2866E3, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x2868D2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x286AB8, "Apple, Inc.", "APPLE" }, { 0x286ABA, "Apple, Inc.", "APPLE" }, { 0x286B35, "Intel Corporate", "INTEL-CORPORATE" }, { 0x286C07, "XIAOMI Electronics,CO.,LTD", "XIAOMI-ELECTRONICS" }, { 0x286D97, "SAMJIN Co., Ltd.", "SAMJIN" }, { 0x286DCD, "Beijing Winner Microelectronics Co.,Ltd.", "BEIJING-WINNER-MICROELECTRONICS" }, { 0x286ED4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x286F40, "Tonly Technology Co. Ltd", "TONLY" }, { 0x286F7F, "Cisco Systems, Inc", "CISCO" }, { 0x28704E, "Ubiquiti Inc", "UBIQUITI" }, { 0x287184, "Spire Payments", "SPIRE-PAYMENTS" }, { 0x2872C5, "Smartmatic Corp", "SMARTMATIC" }, { 0x2872F0, "ATHENA", "ATHENA" }, { 0x2873F6, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x2874F5, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x2875D8, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0x287610, "IgniteNet", "IGNITENET" }, { 0x287681, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x2876CD, "Funshion Online Technologies Co.,Ltd", "FUNSHION-ONLINE-TECHNOLOGIES" }, { 0x287777, "zte corporation", "ZTE" }, { 0x2877B1, "Tri plus grupa d.o.o.", "TRI-PLUS-GRUPA-D-O-O" }, { 0x2877F1, "Apple, Inc.", "APPLE" }, { 0x287994, "Realplay Digital Technology(Shenzhen) Co.,Ltd", "REALPLAY-DIGITAL-SHENZHEN" }, { 0x287AEE, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x287B09, "zte corporation", "ZTE" }, { 0x287CDB, "Hefei Toycloud Technology Co.,ltd", "HEFEI-TOYCLOUD" }, { 0x287E80, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x287FCF, "Intel Corporate", "INTEL-CORPORATE" }, { 0x288023, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x288088, "NETGEAR", "NETGEAR" }, { 0x28808A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2880A2, "Novatel Wireless Solutions, Inc.", "NOVATEL-WIRELESS-SOLUTIONS" }, { 0x28827C, "Bosch Automative products(Suzhou)Co.,Ltd Changzhou Branch", "BOSCH-AUTOMATIVE-PRODUCTS-SUZHOU-CHANGZHOU-BRANCH" }, { 0x288335, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x28840E, "silicon valley immigration service", "SILICON-VALLEY-IMMIGRATION-SERVICE" }, { 0x2884FA, "SHARP Corporation", "SHARP" }, { 0x28852D, "Touch Networks", "TOUCH-NETWORKS" }, { 0x2887BA, "TP-Link Corporation Limited", "TP-LINK" }, { 0x288915, "CashGuard Sverige AB", "CASHGUARD-SVERIGE-AB" }, { 0x288A1C, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x288CB8, "zte corporation", "ZTE" }, { 0x288EB9, "Wacom Co.,Ltd.", "WACOM" }, { 0x288EEC, "Apple, Inc.", "APPLE" }, { 0x288FF6, "Apple, Inc.", "APPLE" }, { 0x2891D0, "Stage Tec Entwicklungsgesellschaft für professionelle Audiotechnik mbH", "STAGE-TEC-ENTWICKLUNGSGESELLSCHAFT-FUER-PROFESSIONELLE-AUDIOTECHNIK" }, { 0x28924A, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x28937D, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x2893FE, "Cisco Systems, Inc", "CISCO" }, { 0x289401, "NETGEAR", "NETGEAR" }, { 0x28940F, "Cisco Systems, Inc", "CISCO" }, { 0x2894AF, "Samhwa Telecom", "SAMHWA-TELECOM" }, { 0x2897B8, "myenergi Ltd", "MYENERGI" }, { 0x28987B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x28993A, "Arista Networks", "ARISTA-NETWORKS" }, { 0x2899C7, "LINDSAY BROADBAND INC", "LINDSAY-BROADBAND" }, { 0x289A4B, "SteelSeries ApS", "STEELSERIES-APS" }, { 0x289AF7, "ADVA Optical Networking Ltd.", "ADVA-OPTICAL-NETWORKING" }, { 0x289AFA, "TCT mobile ltd", "TCT-MOBILE" }, { 0x289C6E, "Shanghai High-Flying Electronics Technology Co., Ltd", "SHANGHAI-HIGH-FLYING-ELECTRONICS" }, { 0x289E97, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x289EDF, "Danfoss Turbocor Compressors, Inc", "DANFOSS-TURBOCOR-COMPRESSORS" }, { 0x289EFC, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x28A02B, "Apple, Inc.", "APPLE" }, { 0x28A183, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x28A186, "enblink", "ENBLINK" }, { 0x28A192, "GERP Solution", "GERP-SOLUTION" }, { 0x28A1EB, "ETEK TECHNOLOGY (SHENZHEN) CO.,LTD", "ETEK-SHENZHEN" }, { 0x28A241, "exlar corp", "EXLAR" }, { 0x28A24B, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x28A331, "Sierra Wireless, ULC", "SIERRA-WIRELESS-ULC" }, { 0x28A53F, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x28A574, "Miller Electric Mfg. Co.", "MILLER-ELECTRIC-MFG" }, { 0x28A5EE, "Shenzhen SDGI CATV Co., Ltd", "SHENZHEN-SDGI-CATV" }, { 0x28A6AC, "seca gmbh & co. kg", "SECA" }, { 0x28A6DB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x28AC67, "Mach Power, Rappresentanze Internazionali s.r.l.", "MACH-POWER-RAPPRESENTANZE-INTERNAZIONALI" }, { 0x28AC9E, "Cisco Systems, Inc", "CISCO" }, { 0x28AD18, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x28AD3E, "Shenzhen TONG BO WEI Technology CO.,LTD", "SHENZHEN-TONG-BO-WEI" }, { 0x28AF0A, "Sirius XM Radio Inc", "SIRIUS-XM-RADIO" }, { 0x28AFFD, "Cisco Systems, Inc", "CISCO" }, { 0x28B0CC, "Xenya d.o.o.", "XENYA-D-O-O" }, { 0x28B133, "SHINEMAN(SHENZHEN) Tech. Cor., Ltd.", "SHINEMAN-SHENZHEN-TECH-COR" }, { 0x28B2BD, "Intel Corporate", "INTEL-CORPORATE" }, { 0x28B371, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x28B3AB, "Genmark Automation", "GENMARK-AUTOMATION" }, { 0x28B448, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x28B4FB, "Sprocomm Technologies CO.,LTD.", "SPROCOMM-TECHNOLOGIES" }, { 0x28B5E8, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x28B77C, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x28B829, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x28B9D9, "Radisys Corporation", "RADISYS" }, { 0x28BA18, "NextNav, LLC", "NEXTNAV" }, { 0x28BAB5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x28BB59, "RNET Technologies, Inc.", "RNET-TECHNOLOGIES" }, { 0x28BC05, "BLU Products Inc", "BLU-PRODUCTS" }, { 0x28BC18, "SourcingOverseas Co. Ltd", "SOURCINGOVERSEAS" }, { 0x28BC56, "EMAC, Inc.", "EMAC" }, { 0x28BD89, "Google, Inc.", "GOOGLE" }, { 0x28BE03, "TCT mobile ltd", "TCT-MOBILE" }, { 0x28BE43, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x28BE9B, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x28BEF3, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0x28BF89, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x28C01B, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x28C0DA, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x28C13C, "Hon Hai Precision Industry Co., Ltd.", "HON-HAI-PRECISION-INDUSTRY" }, { 0x28C1A0, "Apple, Inc.", "APPLE" }, { 0x28C21F, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x28C2DD, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x28C538, "Apple, Inc.", "APPLE" }, { 0x28C5D2, "Intel Corporate", "INTEL-CORPORATE" }, { 0x28C63F, "Intel Corporate", "INTEL-CORPORATE" }, { 0x28C671, "Yota Devices OY", "YOTA-DEVICES-OY" }, { 0x28C68E, "NETGEAR", "NETGEAR" }, { 0x28C709, "Apple, Inc.", "APPLE" }, { 0x28C718, "Altierre", "ALTIERRE" }, { 0x28C7CE, "Cisco Systems, Inc", "CISCO" }, { 0x28C825, "DellKing Industrial Co., Ltd", "DELLKING-INDUSTRIAL" }, { 0x28C87A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x28C87C, "zte corporation", "ZTE" }, { 0x28C914, "Taimag Corporation", "TAIMAG" }, { 0x28CA09, "ThyssenKrupp Elevators (Shanghai) Co.,Ltd", "THYSSENKRUPP-ELEVATORS-SHANGHAI" }, { 0x28CBEB, "One", "ONE" }, { 0x28CC01, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x28CCFF, "Corporacion Empresarial Altra SL", "CORPORACION-EMPRESARIAL-ALTRA-SL" }, { 0x28CD1C, "Espotel Oy", "ESPOTEL-OY" }, { 0x28CD4C, "Individual Computers GmbH", "INDIVIDUAL-COMPUTERS" }, { 0x28CD9C, "Shenzhen Dynamax Software Development Co.,Ltd.", "SHENZHEN-DYNAMAX-SOFTWARE-DEVELOPMENT" }, { 0x28CDC1, "Raspberry Pi Trading Ltd", "RASPBERRY-PI-TRADING" }, { 0x28CDC4, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0x28CF08, "ESSYS", "ESSYS" }, { 0x28CF51, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x28CFDA, "Apple, Inc.", "APPLE" }, { 0x28CFE9, "Apple, Inc.", "APPLE" }, { 0x28D044, "Shenzhen Xinyin technology company", "SHENZHEN-XINYIN-COMPANY" }, { 0x28D0CB, "Adtran Inc", "ADTRAN" }, { 0x28D0EA, "Intel Corporate", "INTEL-CORPORATE" }, { 0x28D0F5, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0x28D127, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x28D1AF, "Nokia Corporation", "NOKIA" }, { 0x28D1B7, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x28D244, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x28D3EA, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x28D436, "Jiangsu dewosi electric co., LTD", "JIANGSU-DEWOSI-ELECTRIC" }, { 0x28D576, "Premier Wireless, Inc.", "PREMIER-WIRELESS" }, { 0x28D93E, "Telecor Inc.", "TELECOR" }, { 0x28D98A, "Hangzhou Konke Technology Co.,Ltd.", "HANGZHOU-KONKE" }, { 0x28D997, "Yuduan Mobile Co., Ltd.", "YUDUAN-MOBILE" }, { 0x28DB81, "Shanghai Guao Electronic Technology Co., Ltd", "SHANGHAI-GUAO" }, { 0x28DE65, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x28DEA8, "zte corporation", "ZTE" }, { 0x28DEE5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x28DEF6, "bioMerieux Inc.", "BIOMERIEUX" }, { 0x28DFEB, "Intel Corporate", "INTEL-CORPORATE" }, { 0x28E02C, "Apple, Inc.", "APPLE" }, { 0x28E14C, "Apple, Inc.", "APPLE" }, { 0x28E297, "Shanghai InfoTM Microelectronics Co.,Ltd", "SHANGHAI-INFOTM-MICROELECTRONICS" }, { 0x28E31F, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x28E347, "Liteon Technology Corporation", "LITEON" }, { 0x28E34E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x28E424, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x28E476, "Pi-Coral", "PI-CORAL" }, { 0x28E5B0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x28E608, "Tokheim", "TOKHEIM" }, { 0x28E6E9, "SIS Sat Internet Services GmbH", "SIS-SAT-INTERNET-SERVICES" }, { 0x28E71D, "Arista Networks", "ARISTA-NETWORKS" }, { 0x28E794, "Microtime Computer Inc.", "MICROTIME" }, { 0x28E7CF, "Apple, Inc.", "APPLE" }, { 0x28E98E, "Mitsubishi Electric Corporation", "MITSUBISHI-ELECTRIC" }, { 0x28EA0B, "Microsoft Corporation", "MICROSOFT" }, { 0x28EA2D, "Apple, Inc.", "APPLE" }, { 0x28EB0A, "Rolling Wireless S.a.r.l. Luxembourg", "ROLLING-WIRELESS-R-L-LUXEMBOURG" }, { 0x28EBA6, "Nex-T LLC", "NEX-T" }, { 0x28EC22, "eero inc.", "EERO" }, { 0x28EC95, "Apple, Inc.", "APPLE" }, { 0x28EC9A, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x28ED58, "JAG Jakob AG", "JAG-JAKOB" }, { 0x28ED6A, "Apple, Inc.", "APPLE" }, { 0x28EDE0, "AMPAK Technology, Inc.", "AMPAK" }, { 0x28EE2C, "Frontline Test Equipment", "FRONTLINE-TEST-EQUIPMENT" }, { 0x28EE52, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x28EED3, "Shenzhen Super D Technology Co., Ltd", "SHENZHEN-SUPER-D" }, { 0x28EF01, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x28F033, "Apple, Inc.", "APPLE" }, { 0x28F076, "Apple, Inc.", "APPLE" }, { 0x28F10E, "Dell Inc.", "DELL" }, { 0x28F358, "2C - Trifonov & Co", "2C-TRIFONOV" }, { 0x28F366, "Shenzhen Bilian electronic CO.,LTD", "SHENZHEN-BILIAN" }, { 0x28F49B, "LEETEK", "LEETEK" }, { 0x28F532, "ADD-Engineering BV", "ADD-ENGINEERING" }, { 0x28F537, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x28F5D1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x28F606, "Syes srl", "SYES-SRL" }, { 0x28F7D6, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x28FA19, "Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd", "SHENZHEN-JINGXUN-SOFTWARE-TELECOMMUNICATION" }, { 0x28FA7A, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0x28FAA0, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x28FBAE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x28FBD3, "Ragentek Technology Group", "RAGENTEK-GROUP" }, { 0x28FC51, "The Electric Controller and Manufacturing Co., LLC", "THE-ELECTRIC-CONTROLLER-AND-MANUFACTURING" }, { 0x28FCF6, "Shenzhen Xin KingBrand enterprises Co.,Ltd", "SHENZHEN-XIN-KINGBRAND-ENTERPRISES" }, { 0x28FD80, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x28FE65, "DongGuan Siyoto Electronics Co., Ltd", "DONGGUAN-SIYOTO-ELECTRONICS" }, { 0x28FECD, "Lemobile Information Technology (Beijing) Co., Ltd.", "LEMOBILE-INFORMATION-BEIJING" }, { 0x28FEDE, "COMESTA, Inc.", "COMESTA" }, { 0x28FF3C, "Apple, Inc.", "APPLE" }, { 0x28FF3E, "zte corporation", "ZTE" }, { 0x28FF5F, "HG Genuine Intelligent Terminal (Xiaogan) Co.,Ltd.", "HG-GENUINE-INTELLIGENT-TERMINAL-XIAOGAN" }, { 0x28FFB2, "Toshiba Corp.", "TOSHIBA" }, { 0x2C002A, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0x2C002C, "UNOWHY", "UNOWHY" }, { 0x2C0033, "EControls, LLC", "ECONTROLS" }, { 0x2C00AB, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x2C00F7, "XOS", "XOS" }, { 0x2C010B, "NASCENT Technology, LLC - RemKon", "NASCENT-LLC-REMKON" }, { 0x2C01B5, "Cisco Systems, Inc", "CISCO" }, { 0x2C029F, "3ALogics", "3ALOGICS" }, { 0x2C0547, "Shenzhen Phaten Tech. LTD", "SHENZHEN-PHATEN-TECH" }, { 0x2C0623, "Win Leader Inc.", "WIN-LEADER" }, { 0x2C073C, "DEVLINE LIMITED", "DEVLINE" }, { 0x2C0786, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x2C07F6, "SKG Health Technologies Co., Ltd.", "SKG-HEALTH-TECHNOLOGIES" }, { 0x2C081C, "OVH", "OVH" }, { 0x2C0823, "Sercomm France Sarl", "SERCOMM-FRANCE-SARL" }, { 0x2C088C, "HUMAX Co., Ltd.", "HUMAX" }, { 0x2C08B4, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x2C094D, "Raptor Engineering, LLC", "RAPTOR-ENGINEERING" }, { 0x2C09CB, "COBS AB", "COBS-AB" }, { 0x2C0BAB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2C0BE9, "Cisco Systems, Inc", "CISCO" }, { 0x2C0DA7, "Intel Corporate", "INTEL-CORPORATE" }, { 0x2C0E3D, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x2C10C1, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x2C1165, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x2C15BF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x2C15E1, "Phicomm (Shanghai) Co., Ltd.", "PHICOMM-SHANGHAI" }, { 0x2C16BD, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x2C17E0, "SYSTEMES ET TECHNOLOGIES IDENTIFICATION (STid)", "SYSTEMES-ET-TECHNOLOGIES-IDENTIFICATION-STID" }, { 0x2C1809, "Apple, Inc.", "APPLE" }, { 0x2C1875, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0x2C18AE, "Trend Electronics Co., Ltd.", "TREND-ELECTRONICS" }, { 0x2C1984, "IDN Telecom, Inc.", "IDN-TELECOM" }, { 0x2C1A01, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2C1A05, "Cisco Systems, Inc", "CISCO" }, { 0x2C1A31, "Electronics Company Limited", "ELECTRONICS-COMPANY" }, { 0x2C1BC8, "Hunan Topview Network System CO.,LTD", "HUNAN-TOPVIEW-NETWORK-SYSTEM" }, { 0x2C1CF6, "Alien Green LLC", "ALIEN-GREEN" }, { 0x2C1DB8, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x2C1E4F, "Chengdu Qianli Network Technology Co., Ltd.", "CHENGDU-QIANLI-NETWORK" }, { 0x2C1EEA, "AERODEV", "AERODEV" }, { 0x2C1F23, "Apple, Inc.", "APPLE" }, { 0x2C200B, "Apple, Inc.", "APPLE" }, { 0x2C2131, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x2C2172, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x2C21D7, "IMAX Corporation", "IMAX" }, { 0x2C228B, "CTR SRL", "CTR-SRL" }, { 0x2C233A, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x2C245F, "Babolat VS", "BABOLAT-VS" }, { 0x2C2617, "Oculus VR, LLC", "OCULUS-VR" }, { 0x2C265F, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x2C26C5, "zte corporation", "ZTE" }, { 0x2C2768, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2C279E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x2C27D7, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x2C282D, "BBK EDUCATIONAL ELECTRONICS CORP.,LTD.", "BBK-EDUCATIONAL-ELECTRONICS" }, { 0x2C28B7, "Hangzhou Ruiying technology co., LTD", "HANGZHOU-RUIYING" }, { 0x2C2997, "Microsoft Corporation", "MICROSOFT" }, { 0x2C2BF9, "LG Innotek", "LG-INNOTEK" }, { 0x2C2D48, "bct electronic GesmbH", "BCT-GESMBH" }, { 0x2C301A, "Technicolor CH USA Inc for Telus", "TECHNICOLOR-CH-USA-FOR-TELUS" }, { 0x2C3033, "NETGEAR", "NETGEAR" }, { 0x2C3068, "Pantech Co.,Ltd", "PANTECH" }, { 0x2C3124, "Cisco Systems, Inc", "CISCO" }, { 0x2C326A, "Apple, Inc.", "APPLE" }, { 0x2C3311, "Cisco Systems, Inc", "CISCO" }, { 0x2C3341, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0x2C3358, "Intel Corporate", "INTEL-CORPORATE" }, { 0x2C3361, "Apple, Inc.", "APPLE" }, { 0x2C337A, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x2C3427, "ERCO & GENER", "ERCO-GENER" }, { 0x2C3557, "ELIIY Power CO., Ltd.", "ELIIY-POWER" }, { 0x2C36A0, "Capisco Limited", "CAPISCO" }, { 0x2C36F8, "Cisco Systems, Inc", "CISCO" }, { 0x2C3731, "SHENZHEN YIFANG DIGITAL TECHNOLOGY CO.,LTD.", "SHENZHEN-YIFANG-DIGITAL" }, { 0x2C3796, "CYBO CO.,LTD.", "CYBO" }, { 0x2C37C5, "Qingdao Haier Intelligent Home Appliance Technology Co.,Ltd", "QINGDAO-HAIER-INTELLIGENT-HOME-APPLIANCE" }, { 0x2C3996, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x2C39C1, "Ciena Corporation", "CIENA" }, { 0x2C3A28, "Fagor Electrónica", "FAGOR-ELECTRNICA" }, { 0x2C3A91, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x2C3AE8, "Espressif Inc.", "ESPRESSIF" }, { 0x2C3AFD, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x2C3B70, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x2C3BFD, "Netstor Technology Co., Ltd.", "NETSTOR" }, { 0x2C3C05, "Marinesync Corp", "MARINESYNC" }, { 0x2C3EBF, "HOSIN Global Electronics Co., Ltd.", "HOSIN-GLOBAL-ELECTRONICS" }, { 0x2C3ECF, "Cisco Systems, Inc", "CISCO" }, { 0x2C3F0B, "Cisco Meraki", "CISCO-MERAKI" }, { 0x2C3F38, "Cisco Systems, Inc", "CISCO" }, { 0x2C3F3E, "Alge-Timing GmbH", "ALGE-TIMING" }, { 0x2C402B, "Smart iBlue Technology Limited", "SMART-IBLUE" }, { 0x2C4053, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x2C4138, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x2C41A1, "Bose Corporation", "BOSE" }, { 0x2C4205, "Lytx", "LYTX" }, { 0x2C431A, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x2C43BE, "Sunnovo International Limited", "SUNNOVO" }, { 0x2C4401, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x2C441B, "Spectrum Medical Limited", "SPECTRUM-MEDICAL" }, { 0x2C44FD, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x2C459A, "Dixon Technologies (India) Limited", "DIXON-TECHNOLOGIES-INDIA" }, { 0x2C4759, "Beijing MEGA preponderance Science & Technology Co. Ltd", "BEIJING-MEGA-PREPONDERANCE-SCIENCE" }, { 0x2C4835, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x2C4881, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x2C4A11, "Ciena Corporation", "CIENA" }, { 0x2C4C15, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x2C4CC6, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x2C4D54, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x2C4D79, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0x2C4DDE, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x2C4E7D, "Chunghua Intelligent Network Equipment Inc.", "CHUNGHUA-INTELLIGENT-NETWORK-EQUIPMENT" }, { 0x2C4F52, "Cisco Systems, Inc", "CISCO" }, { 0x2C5089, "Shenzhen Kaixuan Visual Technology Co.,Limited", "SHENZHEN-KAIXUAN-VISUAL" }, { 0x2C52AF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2C534A, "Shenzhen Winyao Electronic Limited", "SHENZHEN-WINYAO" }, { 0x2C53D7, "Sonova AG", "SONOVA" }, { 0x2C542D, "Cisco Systems, Inc", "CISCO" }, { 0x2C5491, "Microsoft Corporation", "MICROSOFT" }, { 0x2C54CF, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x2C553C, "Vecima Networks Inc.", "VECIMA-NETWORKS" }, { 0x2C557C, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x2C55D3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2C56DC, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x2C572C, "Allwinner Technology Co., Ltd", "ALLWINNER" }, { 0x2C5731, "Wingtech Group (HongKong)Limited", "WINGTECH-GROUP-HONGKONG" }, { 0x2C5741, "Cisco Systems, Inc", "CISCO" }, { 0x2C57CE, "Apple, Inc.", "APPLE" }, { 0x2C584F, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x2C58E8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2C598A, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x2C59E5, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x2C5A05, "Nokia Corporation", "NOKIA" }, { 0x2C5A0F, "Cisco Systems, Inc", "CISCO" }, { 0x2C5A8D, "SYSTRONIK Elektronik u. Systemtechnik GmbH", "SYSTRONIK-ELEKTRONIK-U-SYSTEMTECHNIK" }, { 0x2C5AA3, "PROMATE ELECTRONIC CO.LTD", "PROMATE" }, { 0x2C5BB8, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x2C5BE1, "Centripetal Networks, Inc", "CENTRIPETAL-NETWORKS" }, { 0x2C5D34, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x2C5D93, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x2C5FF3, "Pertronic Industries", "PERTRONIC-INDUSTRIES" }, { 0x2C600C, "Quanta Computer Inc.", "QUANTA" }, { 0x2C60CD, "NR ELECTRIC CO., LTD", "NR-ELECTRIC" }, { 0x2C6104, "SHENZHEN FENGLIAN TECHNOLOGY CO., LTD.", "SHENZHEN-FENGLIAN" }, { 0x2C61F6, "Apple, Inc.", "APPLE" }, { 0x2C625A, "Finest Security Systems Co., Ltd", "FINEST-SECURITY" }, { 0x2C6289, "Regenersis (Glenrothes) Ltd", "REGENERSIS-GLENROTHES" }, { 0x2C6373, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x2C641F, "Vizio, Inc", "VIZIO" }, { 0x2C64F6, "Wu Qi Technologies,Inc.", "WU-QI-TECHNOLOGIES" }, { 0x2C6798, "InTalTech Ltd.", "INTALTECH" }, { 0x2C67AB, "EZELINK TELECOM", "EZELINK-TELECOM" }, { 0x2C67FB, "ShenZhen Zhengjili Electronics Co., LTD", "SHENZHEN-ZHENGJILI-ELECTRONICS" }, { 0x2C691D, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x2C69BA, "RF Controls, LLC", "RF-CONTROLS" }, { 0x2C69CC, "Valeo Detection Systems", "VALEO-DETECTION" }, { 0x2C6A6F, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x2C6B7D, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x2C6BF5, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x2C6DC1, "Intel Corporate", "INTEL-CORPORATE" }, { 0x2C6E85, "Intel Corporate", "INTEL-CORPORATE" }, { 0x2C6F4E, "Hubei Yuan Times Technology Co.,Ltd.", "HUBEI-YUAN-TIMES" }, { 0x2C6F51, "Herospeed Digital Technology Limited", "HEROSPEED-DIGITAL" }, { 0x2C6FC9, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x2C704F, "zte corporation", "ZTE" }, { 0x2C7155, "HiveMotion", "HIVEMOTION" }, { 0x2C71FF, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x2C72C3, "Soundmatters", "SOUNDMATTERS" }, { 0x2C7360, "Earda Technologies co Ltd", "EARDA-TECHNOLOGIES" }, { 0x2C73A0, "Cisco Systems, Inc", "CISCO" }, { 0x2C750F, "Shanghai Dongzhou-Lawton Communication Technology Co. Ltd.", "SHANGHAI-DONGZHOU-LAWTON-COMMUNICATION" }, { 0x2C75CB, "Novitec Co., Ltd.", "NOVITEC" }, { 0x2C7600, "Apple, Inc.", "APPLE" }, { 0x2C768A, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x2C780E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x2C784C, "Iton Technology Corp.", "ITON" }, { 0x2C793D, "Boditech Med", "BODITECH-MED" }, { 0x2C79D7, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x2C7B5A, "Milper Ltd", "MILPER" }, { 0x2C7B84, "OOO Petr Telegin", "OOO-PETR-TELEGIN" }, { 0x2C7CE4, "Wuhan Tianyu Information Industry Co., Ltd.", "WUHAN-TIANYU-INFORMATION-INDUSTRY" }, { 0x2C7CF2, "Apple, Inc.", "APPLE" }, { 0x2C7E81, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x2C7ECF, "Onzo Ltd", "ONZO" }, { 0x2C8065, "HARTING Inc. of North America", "HARTING-OF-NORTH-AMERICA" }, { 0x2C8158, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x2C8217, "Apple, Inc.", "APPLE" }, { 0x2C86D2, "Cisco Systems, Inc", "CISCO" }, { 0x2C8A72, "HTC Corporation", "HTC" }, { 0x2C8AC7, "Ubee Interactive Co., Limited", "UBEE-INTERACTIVE" }, { 0x2C8BF2, "Hitachi Metals America Ltd", "HITACHI-METALS-AMERICA" }, { 0x2C8D37, "Virtium", "VIRTIUM" }, { 0x2C8DB1, "Intel Corporate", "INTEL-CORPORATE" }, { 0x2C9127, "Eintechno Corporation", "EINTECHNO" }, { 0x2C91AB, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x2C922C, "Kishu Giken Kogyou Company Ltd,.", "KISHU-GIKEN-KOGYOU-COMPANY" }, { 0x2C93FB, "Sercomm France Sarl", "SERCOMM-FRANCE-SARL" }, { 0x2C9452, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2C9464, "Cincoze Co., Ltd.", "CINCOZE" }, { 0x2C9569, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x2C957F, "zte corporation", "ZTE" }, { 0x2C9662, "Invenit BV", "INVENIT" }, { 0x2C9682, "MitraStar Technology Corp.", "MITRASTAR" }, { 0x2C9717, "I.C.Y. B.V.", "I-C-Y-B-V" }, { 0x2C97B1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2C97ED, "Sony Imaging Products & Solutions Inc.", "SONY-IMAGING-PRODUCTS-SOLUTIONS" }, { 0x2C9811, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x2C9924, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x2C9975, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x2C9AA4, "Eolo SpA", "EOLO-SPA" }, { 0x2C9D1E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2C9D65, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x2C9E00, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x2C9E5F, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x2C9EEC, "Jabil Circuit Penang", "JABIL-CIRCUIT-PENANG" }, { 0x2C9EFC, "CANON INC.", "CANON" }, { 0x2C9FFB, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x2CA02F, "Veroguard Systems Pty Ltd", "VEROGUARD-PTY" }, { 0x2CA042, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x2CA157, "acromate, Inc.", "ACROMATE" }, { 0x2CA17D, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x2CA2B4, "Fortify Technologies, LLC", "FORTIFY-TECHNOLOGIES" }, { 0x2CA30E, "POWER DRAGON DEVELOPMENT LIMITED", "POWER-DRAGON-DEVELOPMENT" }, { 0x2CA327, "Oraimo Technology Limited", "ORAIMO" }, { 0x2CA539, "Parallel Wireless, Inc", "PARALLEL-WIRELESS" }, { 0x2CA59C, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x2CA774, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x2CA780, "True Technologies Inc.", "TRUE-TECHNOLOGIES" }, { 0x2CA79E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2CA7EF, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0x2CA835, "RIM", "RIM" }, { 0x2CA89C, "Creatz inc.", "CREATZ" }, { 0x2CA9F0, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x2CAA8E, "Wyze Labs Inc", "WYZE-LABS" }, { 0x2CAB00, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2CAB25, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0x2CAB33, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x2CABA4, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x2CABEB, "Cisco Systems, Inc", "CISCO" }, { 0x2CAC44, "CONEXTOP", "CONEXTOP" }, { 0x2CAD13, "SHENZHEN ZHILU TECHNOLOGY CO.,LTD", "SHENZHEN-ZHILU" }, { 0x2CAE2B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x2CB05D, "NETGEAR", "NETGEAR" }, { 0x2CB0DF, "Soliton Technologies Pvt Ltd", "SOLITON-TECHNOLOGIES-PVT" }, { 0x2CB0FD, "Shenzhen MiaoMing Intelligent Technology Co.,Ltd", "SHENZHEN-MIAOMING-INTELLIGENT" }, { 0x2CB115, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x2CB21A, "Phicomm (Shanghai) Co., Ltd.", "PHICOMM-SHANGHAI" }, { 0x2CB43A, "Apple, Inc.", "APPLE" }, { 0x2CB693, "Radware", "RADWARE" }, { 0x2CB69D, "RED Digital Cinema", "RED-DIGITAL-CINEMA" }, { 0x2CB6C8, "Raisecom Technology CO., LTD", "RAISECOM" }, { 0x2CB8ED, "SonicWall", "SONICWALL" }, { 0x2CBABA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x2CBC87, "Apple, Inc.", "APPLE" }, { 0x2CBE08, "Apple, Inc.", "APPLE" }, { 0x2CBE97, "Ingenieurbuero Bickele und Buehler GmbH", "INGENIEURBUERO-BICKELE-UND-BUEHLER" }, { 0x2CBEEB, "Nothing Technology Limited", "NOTHING" }, { 0x2CC253, "Apple, Inc.", "APPLE" }, { 0x2CC260, "Oracle Corporation", "ORACLE" }, { 0x2CC3E6, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x2CC407, "machineQ", "MACHINEQ" }, { 0x2CC546, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x2CC548, "IAdea Corporation", "IADEA" }, { 0x2CC5D3, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x2CC6A0, "Lumacron Technology Ltd.", "LUMACRON" }, { 0x2CC81B, "Routerboard.com", "ROUTERBOARD-COM" }, { 0x2CCA0C, "WITHUS PLANET", "WITHUS-PLANET" }, { 0x2CCA75, "Robert Bosch GmbH AnP", "ROBERT-BOSCH-ANP" }, { 0x2CCC15, "Nokia Corporation", "NOKIA" }, { 0x2CCC44, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x2CCCE6, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0x2CCD27, "Precor Inc", "PRECOR" }, { 0x2CCD43, "Summit Technology Group", "SUMMIT-GROUP" }, { 0x2CCD69, "Aqavi.com", "AQAVI-COM" }, { 0x2CCE1E, "Cloudtronics Pty Ltd", "CLOUDTRONICS-PTY" }, { 0x2CCF58, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x2CD02D, "Cisco Systems, Inc", "CISCO" }, { 0x2CD05A, "Liteon Technology Corporation", "LITEON" }, { 0x2CD066, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x2CD141, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x2CD1C6, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x2CD1DA, "Keysight Technologies, Inc.", "KEYSIGHT-TECHNOLOGIES" }, { 0x2CD26B, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0x2CD2E3, "Guangzhou Aoshi Electronic Co.,Ltd", "GUANGZHOU-AOSHI" }, { 0x2CD2E7, "Nokia Corporation", "NOKIA" }, { 0x2CD444, "FUJITSU LIMITED", "FUJITSU" }, { 0x2CD7FF, "LANCOM Systems GmbH", "LANCOM" }, { 0x2CD974, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x2CDB07, "Intel Corporate", "INTEL-CORPORATE" }, { 0x2CDC78, "Descartes Systems (USA) LLC", "DESCARTES-USA" }, { 0x2CDCAD, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x2CDCD7, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x2CDD0C, "Discovergy GmbH", "DISCOVERGY" }, { 0x2CDD5F, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0x2CDD95, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x2CDDA3, "Point Grey Research Inc.", "POINT-GREY-RESEARCH" }, { 0x2CDDE9, "Arista Networks", "ARISTA-NETWORKS" }, { 0x2CE032, "TCL King Electrical Appliances(Huizhou)Co.,Ltd", "TCL-KING-ELECTRICAL-APPLIANCES-HUIZHOU" }, { 0x2CE2A8, "DeviceDesign", "DEVICEDESIGN" }, { 0x2CE310, "Stratacache", "STRATACACHE" }, { 0x2CE412, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x2CE6CC, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x2CE871, "Alert Metalguard ApS", "ALERT-METALGUARD-APS" }, { 0x2CEA7F, "Dell Inc.", "DELL" }, { 0x2CEADC, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x2CEDEB, "Alpheus Digital Company Limited", "ALPHEUS-DIGITAL-COMPANY" }, { 0x2CEE26, "Petroleum Geo-Services", "PETROLEUM-GEO-SERVICES" }, { 0x2CF05D, "Micro-Star INTL CO., LTD.", "MICRO-STAR-INTL" }, { 0x2CF0A2, "Apple, Inc.", "APPLE" }, { 0x2CF0EE, "Apple, Inc.", "APPLE" }, { 0x2CF1BB, "zte corporation", "ZTE" }, { 0x2CF203, "EMKO ELEKTRONIK SAN VE TIC AS", "EMKO-ELEKTRONIK-SAN-VE-TIC-AS" }, { 0x2CF295, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x2CF2A5, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x2CF432, "Espressif Inc.", "ESPRESSIF" }, { 0x2CF4C5, "Avaya Inc", "AVAYA" }, { 0x2CF7F1, "Seeed Technology Inc.", "SEEED" }, { 0x2CF89B, "Cisco Systems, Inc", "CISCO" }, { 0x2CFAA2, "Alcatel-Lucent Enterprise", "ALCATEL-LUCENT" }, { 0x2CFC8B, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x2CFCE4, "CTEK Sweden AB", "CTEK-SWEDEN-AB" }, { 0x2CFD37, "Blue Calypso, Inc.", "BLUE-CALYPSO" }, { 0x2CFDA1, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x2CFDAB, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0x2CFDB3, "Tonly Technology Co. Ltd", "TONLY" }, { 0x2CFDB4, "Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd", "SHENZHEN-JINGXUN-SOFTWARE-TELECOMMUNICATION" }, { 0x2CFE4F, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x2CFEE2, "Qingdao Hisense Communications Co.,Ltd.", "QINGDAO-HISENSE-COMMUNICATION" }, { 0x2CFF65, "Oki Electric Industry Co., Ltd.", "OKI-ELECTRIC-INDUSTRY" }, { 0x2CFFEE, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x3003C8, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x30045C, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x300505, "Intel Corporate", "INTEL-CORPORATE" }, { 0x30053F, "JTI Co.,Ltd.", "JTI" }, { 0x30055C, "Brother industries, LTD.", "BROTHER-INDUSTRIES" }, { 0x30074D, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x3009C0, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x3009F9, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x300A60, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x300AC5, "Ruio telecommunication technologies Co., Limited", "RUIO-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x300B9C, "Delta Mobile Systems, Inc.", "DELTA-MOBILE" }, { 0x300C23, "zte corporation", "ZTE" }, { 0x300D2A, "Zhejiang Wellcom Technology Co.,Ltd.", "ZHEJIANG-WELLCOM" }, { 0x300D43, "Microsoft Mobile Oy", "MICROSOFT-MOBILE-OY" }, { 0x300D9E, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0x300EB8, "LG Electronics", "LG-ELECTRONICS" }, { 0x300ED5, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x300EE3, "Aquantia Corporation", "AQUANTIA" }, { 0x3010B3, "Liteon Technology Corporation", "LITEON" }, { 0x3010E4, "Apple, Inc.", "APPLE" }, { 0x301389, "Siemens AG, Automations & Drives,", "SIEMENS-AUTOMATIONS-DRIVES" }, { 0x30142D, "Piciorgros GmbH", "PICIORGROS" }, { 0x30144A, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x301518, "Ubiquitous Communication Co. ltd.", "UBIQUITOUS-COMMUNICATION" }, { 0x30168D, "ProLon", "PROLON" }, { 0x3017C8, "Sony Corporation", "SONY" }, { 0x3018CF, "DEOS control systems GmbH", "DEOS-CONTROL" }, { 0x301966, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x301984, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x301A28, "Mako Networks Ltd", "MAKO-NETWORKS" }, { 0x301A30, "Mako Networks Ltd", "MAKO-NETWORKS" }, { 0x301ABA, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x301B97, "Lierda Science & Technology Group Co.,Ltd", "LIERDA-SCIENCE-GROUP" }, { 0x301D49, "Firmus Technologies Pty Ltd", "FIRMUS-TECHNOLOGIES-PTY" }, { 0x301F48, "zte corporation", "ZTE" }, { 0x301F9A, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x30215B, "Shenzhen Ostar Display Electronic Co.,Ltd", "SHENZHEN-OSTAR-DISPLAY" }, { 0x302303, "Belkin International Inc.", "BELKIN" }, { 0x302364, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0x302432, "Intel Corporate", "INTEL-CORPORATE" }, { 0x302478, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x3024A9, "HP Inc.", "HP" }, { 0x3027CF, "Canopy Growth Corp", "CANOPY-GROWTH" }, { 0x302952, "Hillstone Networks Inc", "HILLSTONE-NETWORKS" }, { 0x3029BE, "Shanghai MRDcom Co.,Ltd", "SHANGHAI-MRDCOM" }, { 0x302BDC, "Top-Unum Electronics Co., LTD", "TOP-UNUM-ELECTRONICS" }, { 0x302DE8, "JDA, LLC (JDA Systems)", "JDA-LLC-JDA" }, { 0x302F1E, "SIEMENS AG", "SIEMENS" }, { 0x30317D, "Hosiden Corporation", "HOSIDEN" }, { 0x303180, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x303235, "Qingdao Intelligent&Precise Electronics Co.,Ltd.", "QINGDAO-INTELLIGENT-PRECISE-ELECTRONICS" }, { 0x303294, "W-IE-NE-R Plein & Baus GmbH", "W-IE-NE-R-PLEIN-BAUS" }, { 0x3032D4, "Hanilstm Co., Ltd.", "HANILSTM" }, { 0x303335, "Boosty", "BOOSTY" }, { 0x303422, "eero inc.", "EERO" }, { 0x3034D2, "Availink, Inc.", "AVAILINK" }, { 0x3035AD, "Apple, Inc.", "APPLE" }, { 0x3035C5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x3037A6, "Cisco Systems, Inc", "CISCO" }, { 0x3037B3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x303855, "Nokia Corporation", "NOKIA" }, { 0x303926, "Sony Corporation", "SONY" }, { 0x303955, "Shenzhen Jinhengjia Electronic Co., Ltd.", "SHENZHEN-JINHENGJIA" }, { 0x3039A9, "Hongshan Information Science and Technology (HangZhou) Co.,Ltd.", "HONGSHAN-INFORMATION-SCIENCE-AND-HANGZHOU" }, { 0x3039F2, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x303A64, "Intel Corporate", "INTEL-CORPORATE" }, { 0x303ABA, "Guangzhou BaoLun Electronics Co., Ltd", "GUANGZHOU-BAOLUN-ELECTRONICS" }, { 0x303D08, "GLINTT TES S.A.", "GLINTT-TES" }, { 0x303D51, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x303EA7, "Intel Corporate", "INTEL-CORPORATE" }, { 0x303EAD, "Sonavox Canada Inc", "SONAVOX-CANADA" }, { 0x303F5D, "PT HAN SUNG ELECTORONICS INDONESIA", "PT-HAN-SUNG-ELECTORONICS-INDONESIA" }, { 0x303F7B, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x303FBB, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x304074, "zte corporation", "ZTE" }, { 0x304174, "ALTEC LANSING LLC", "ALTEC-LANSING" }, { 0x304225, "BURG-WÄCHTER KG", "BURG-WAECHTER" }, { 0x304240, "zte corporation", "ZTE" }, { 0x3042A1, "ilumisys Inc. DBA Toggled", "ILUMISYS-DBA-TOGGLED" }, { 0x3043D7, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x304449, "PLATH Signal Products GmbH & Co. KG", "PLATH-SIGNAL-PRODUCTS" }, { 0x304487, "Hefei Radio Communication Technology Co., Ltd", "HEFEI-RADIO-COMMUNICATION" }, { 0x3044A1, "Shanghai Nanchao Information Technology", "SHANGHAI-NANCHAO-INFORMATION" }, { 0x304511, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x304596, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x30469A, "NETGEAR", "NETGEAR" }, { 0x30493B, "Nanjing Z-Com Wireless Co.,Ltd", "NANJING-Z-COM-WIRELESS" }, { 0x304950, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x30499E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x304A26, "Shenzhen Trolink Technology CO, LTD", "SHENZHEN-TROLINK" }, { 0x304B07, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x304C7E, "Panasonic Electric Works Automation Controls Techno Co.,Ltd.", "PANASONIC-ELECTRIC-WORKS-AUTOMATION-CONTROLS-TECHNO" }, { 0x304E1B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x304EC3, "Tianjin Techua Technology Co., Ltd.", "TIANJIN-TECHUA" }, { 0x304F00, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x304F75, "DZS Inc.", "DZS" }, { 0x305075, "GN Audio A/S", "GN-AUDIO-A/S" }, { 0x3050FD, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0x3051F8, "BYK-Gardner GmbH", "BYK-GARDNER" }, { 0x30525A, "NST Co., LTD", "NST" }, { 0x3052CB, "Liteon Technology Corporation", "LITEON" }, { 0x3053C1, "CRESYN", "CRESYN" }, { 0x3055ED, "Trex Network LLC", "TREX-NETWORK" }, { 0x305684, "SHENZHEN YUNJI INTELLIGENT TECHNOLOGY CO.,LTD", "SHENZHEN-YUNJI-INTELLIGENT" }, { 0x305696, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0x305714, "Apple, Inc.", "APPLE" }, { 0x30578E, "eero inc.", "EERO" }, { 0x3057AC, "IRLAB LTD.", "IRLAB" }, { 0x305890, "Frontier Silicon Ltd", "FRONTIER-SILICON" }, { 0x30595B, "streamnow AG", "STREAMNOW" }, { 0x3059B7, "Microsoft", "MICROSOFT" }, { 0x305A3A, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x305A99, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x305D38, "Beissbarth", "BEISSBARTH" }, { 0x305DA6, "ADVALY SYSTEM Inc.", "ADVALY-SYSTEM" }, { 0x305F77, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x30600A, "CIG SHANGHAI CO LTD", "CIG-SHANGHAI" }, { 0x306023, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x306112, "PAV GmbH", "PAV" }, { 0x306118, "Paradom Inc.", "PARADOM" }, { 0x30636B, "Apple, Inc.", "APPLE" }, { 0x306371, "Shenzhenshi Xinzhongxin Technology Co.Ltd", "SHENZHENSHI-XINZHONGXIN" }, { 0x3065EC, "Wistron (ChongQing)", "WISTRON-CHONGQING" }, { 0x3066D0, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x30688C, "Reach Technology Inc.", "REACH" }, { 0x30694B, "RIM", "RIM" }, { 0x306A85, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x306CBE, "Skymotion Technology (HK) Limited", "SKYMOTION-HK" }, { 0x306E5C, "Validus Technologies", "VALIDUS-TECHNOLOGIES" }, { 0x306F07, "Nations Technologies Inc.", "NATIONS-TECHNOLOGIES" }, { 0x3071B2, "Hangzhou Prevail Optoelectronic Equipment Co.,LTD.", "HANGZHOU-PREVAIL-OPTOELECTRONIC-EQUIPMENT" }, { 0x307350, "Inpeco SA", "INPECO" }, { 0x307467, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x307496, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x307512, "Sony Corporation", "SONY" }, { 0x30766F, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x3077CB, "Maike Industry(Shenzhen)CO.,LTD", "MAIKE-INDUSTRY-SHENZHEN" }, { 0x30785C, "Partow Tamas Novin (Parman)", "PARTOW-TAMAS-NOVIN-PARMAN" }, { 0x30786B, "TIANJIN Golden Pentagon Electronics Co., Ltd.", "TIANJIN-GOLDEN-PENTAGON-ELECTRONICS" }, { 0x3078C2, "Innowireless / QUCELL Networks", "INNOWIRELESS-/-QUCELL-NETWORKS" }, { 0x3078D3, "Virgilant Technologies Ltd.", "VIRGILANT-TECHNOLOGIES" }, { 0x307A57, "Accuenergy (CANADA) Inc", "ACCUENERGY-CANADA" }, { 0x307BAC, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x307BC9, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x307C30, "RIM", "RIM" }, { 0x307C4A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x307C5E, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x307CB2, "ANOV FRANCE", "ANOV-FRANCE" }, { 0x307ECB, "SFR", "SFR" }, { 0x307F10, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x30809B, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x308216, "Apple, Inc.", "APPLE" }, { 0x308398, "Espressif Inc.", "ESPRESSIF" }, { 0x3083D2, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x308454, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x3085A9, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x3085EB, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x30862D, "Arista Network, Inc.", "ARISTA-NETWORK" }, { 0x3086F1, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x308730, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3087D9, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x308841, "Sichuan AI-Link Technology Co., Ltd.", "SICHUANAI-LINK" }, { 0x308944, "DEVA Broadcast Ltd.", "DEVA-BROADCAST" }, { 0x30894A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x308976, "DALIAN LAMBA TECHNOLOGY CO.,LTD", "DALIAN-LAMBA" }, { 0x308999, "Guangdong East Power Co.,", "GUANGDONG-EAST-POWER" }, { 0x3089D3, "HONGKONG UCLOUDLINK NETWORK TECHNOLOGY LIMITED", "HONGKONG-UCLOUDLINK-NETWORK" }, { 0x308AF7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x308BB2, "Cisco Systems, Inc", "CISCO" }, { 0x308CFB, "Dropcam", "DROPCAM" }, { 0x308D99, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x308E7A, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0x309048, "Apple, Inc.", "APPLE" }, { 0x3090AB, "Apple, Inc.", "APPLE" }, { 0x309176, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0x30918F, "Technicolor Delivery Technologies Belgium NV", "TECHNICOLOR-DELIVERY-TECHNOLOGIES-BELGIUM-NV" }, { 0x3092F6, "SHANGHAI SUNMON COMMUNICATION TECHNOGY CO.,LTD", "SHANGHAI-SUNMON-COMMUNICATION-TECHNOGY" }, { 0x3093BC, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x309435, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x309587, "HUNAN FN-LINK TECHNOLOGY LIMITED", "HUNAN-FN-LINK" }, { 0x3095E3, "SHANGHAI SIMCOM LIMITED", "SHANGHAI-SIMCOM" }, { 0x309610, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x30963B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x3096FB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x309935, "zte corporation", "ZTE" }, { 0x309BAD, "BBK EDUCATIONAL ELECTRONICS CORP.,LTD.", "BBK-EDUCATIONAL-ELECTRONICS" }, { 0x309C23, "Micro-Star INTL CO., LTD.", "MICRO-STAR-INTL" }, { 0x309E1D, "OHSUNG", "OHSUNG" }, { 0x309FFB, "Ardomus Networks Corporation", "ARDOMUS-NETWORKS" }, { 0x30A023, "ROCK PATH S.R.L", "ROCK-PATH" }, { 0x30A176, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x30A1FA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x30A220, "ARG Telecom", "ARG-TELECOM" }, { 0x30A243, "Shenzhen Prifox Innovation Technology Co., Ltd.", "SHENZHEN-PRIFOX-INNOVATION" }, { 0x30A2C2, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x30A452, "Arrival Elements BV", "ARRIVAL-ELEMENTS" }, { 0x30A612, "ShenZhen Hugsun Technology Co.,Ltd.", "SHENZHEN-HUGSUN" }, { 0x30A889, "DECIMATOR DESIGN", "DECIMATOR-DESIGN" }, { 0x30A8DB, "Sony Corporation", "SONY" }, { 0x30A998, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x30A9DE, "LG Innotek", "LG-INNOTEK" }, { 0x30AABD, "Shanghai Reallytek Information Technology Co.,Ltd", "SHANGHAI-REALLYTEK-INFORMATION" }, { 0x30AAE4, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x30AB6A, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x30AE7B, "Deqing Dusun Electron CO., LTD", "DEQING-DUSUN-ELECTRON" }, { 0x30AEA4, "Espressif Inc.", "ESPRESSIF" }, { 0x30AEF6, "Radio Mobile Access", "RADIO-MOBILE-ACCESS" }, { 0x30AF7E, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x30AFCE, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x30B037, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x30B0EA, "Shenzhen Chuangxin Internet Communication Technology Co., Ltd", "SHENZHEN-CHUANGXIN-INTERNET-COMMUNICATION" }, { 0x30B164, "Power Electronics International Inc.", "POWER-ELECTRONICS" }, { 0x30B1B5, "Arcadyan Corporation", "ARCADYAN" }, { 0x30B216, "Hitachi Energy Germany AG", "HITACHI-ENERGY-GERMANY" }, { 0x30B237, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0x30B29F, "EVIDENT CORPORATION", "EVIDENT" }, { 0x30B346, "CJSC NORSI-TRANS", "CJSC-NORSI-TRANS" }, { 0x30B3A2, "Shenzhen Heguang Measurement & Control Technology Co.,Ltd", "SHENZHEN-HEGUANG-MEASUREMENT-CONTROL" }, { 0x30B49E, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x30B4B8, "LG Electronics", "LG-ELECTRONICS" }, { 0x30B5C2, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x30B5F1, "Aitexin Technology Co., Ltd", "AITEXIN" }, { 0x30B62D, "Mojo Networks, Inc.", "MOJO-NETWORKS" }, { 0x30B64F, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x30B7D4, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x30B930, "zte corporation", "ZTE" }, { 0x30B9B0, "Intracom Asia Co., Ltd", "INTRACOM-ASIA" }, { 0x30BB7D, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0x30BE3B, "Mitsubishi Electric Corporation", "MITSUBISHI-ELECTRIC" }, { 0x30C01B, "Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd", "SHENZHEN-JINGXUN-SOFTWARE-TELECOMMUNICATION" }, { 0x30C3D9, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x30C507, "ECI Telecom Ltd.", "ECI-TELECOM" }, { 0x30C50F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x30C6D7, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x30C6F7, "Espressif Inc.", "ESPRESSIF" }, { 0x30C750, "MIC Technology Group", "MIC-GROUP" }, { 0x30C7AE, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x30C82A, "WI-BIZ srl", "WI-BIZ-SRL" }, { 0x30C9AB, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x30CB36, "Belden Singapore Pte. Ltd.", "BELDEN-SINGAPORE-PTE" }, { 0x30CBC7, "Cambium Networks Limited", "CAMBIUM-NETWORKS" }, { 0x30CBF8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x30CC21, "zte corporation", "ZTE" }, { 0x30CDA7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x30D042, "Dell Inc.", "DELL" }, { 0x30D16B, "Liteon Technology Corporation", "LITEON" }, { 0x30D17E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x30D32D, "devolo AG", "DEVOLO" }, { 0x30D357, "Logosol, Inc.", "LOGOSOL" }, { 0x30D386, "zte corporation", "ZTE" }, { 0x30D46A, "Autosales Incorporated", "AUTOSALES-INCORPORATED" }, { 0x30D53E, "Apple, Inc.", "APPLE" }, { 0x30D587, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x30D659, "Merging Technologies SA", "MERGING-TECHNOLOGIES" }, { 0x30D6C9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x30D7A1, "Apple, Inc.", "APPLE" }, { 0x30D941, "Raydium Semiconductor Corp.", "RAYDIUM-SEMICONDUCTOR" }, { 0x30D9D9, "Apple, Inc.", "APPLE" }, { 0x30DE4B, "TP-Link Corporation Limited", "TP-LINK" }, { 0x30DE86, "Cedac Software S.r.l.", "CEDAC-SOFTWARE" }, { 0x30DF17, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x30DF8D, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0x30E04F, "Apple, Inc.", "APPLE" }, { 0x30E090, "Genevisio Ltd.", "GENEVISIO" }, { 0x30E171, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x30E1F1, "Intelbras", "INTELBRAS" }, { 0x30E283, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x30E37A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x30E396, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x30E3D6, "Spotify USA Inc.", "SPOTIFY-USA" }, { 0x30E48E, "Vodafone UK", "VODAFONE-UK" }, { 0x30E4DB, "Cisco Systems, Inc", "CISCO" }, { 0x30E7BC, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x30E8E4, "Qorvo International Pte. Ltd.", "QORVO-PTE" }, { 0x30E98E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x30EA26, "Sycada BV", "SYCADA" }, { 0x30EB1F, "Skylab M&C Technology Co.,Ltd", "SKYLAB-M-C" }, { 0x30EB25, "INTEK DIGITAL", "INTEK-DIGITAL" }, { 0x30EB5A, "LANDIS + GYR", "LANDIS-+-GYR" }, { 0x30EFD1, "Alstom Strongwish (Shenzhen) Co., Ltd.", "ALSTOM-STRONGWISH-SHENZHEN" }, { 0x30F31D, "zte corporation", "ZTE" }, { 0x30F335, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x30F33A, "+plugg srl", "+PLUGG-SRL" }, { 0x30F42F, "ESP", "ESP" }, { 0x30F6B9, "Ecocentric Energy", "ECOCENTRIC-ENERGY" }, { 0x30F6EF, "Intel Corporate", "INTEL-CORPORATE" }, { 0x30F70D, "Cisco Systems, Inc", "CISCO" }, { 0x30F772, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x30F77F, "S Mobile Devices Limited", "S-MOBILE-DEVICES" }, { 0x30F7C5, "Apple, Inc.", "APPLE" }, { 0x30F7D7, "Thread Technology Co., Ltd", "THREAD" }, { 0x30F94B, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x30F9ED, "Sony Corporation", "SONY" }, { 0x30FAB7, "Tunai Creative", "TUNAI-CREATIVE" }, { 0x30FB10, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x30FB94, "Shanghai Fangzhiwei Information Technology CO.,Ltd.", "SHANGHAI-FANGZHIWEI-INFORMATION" }, { 0x30FBB8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x30FC68, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x30FCEB, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x30FD11, "MACROTECH (USA) INC.", "MACROTECH-USA" }, { 0x30FD38, "Google, Inc.", "GOOGLE" }, { 0x30FD65, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x30FE31, "Nokia", "NOKIA" }, { 0x30FFF6, "HangZhou KuoHeng Technology Co.,ltd", "HANGZHOU-KUOHENG" }, { 0x34008A, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x3400A3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x340286, "Intel Corporate", "INTEL-CORPORATE" }, { 0x34029B, "Plexonics Technologies LImited", "PLEXONICS-TECHNOLOGIES" }, { 0x3403DE, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x34049E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x34074F, "AccelStor, Inc.", "ACCELSTOR" }, { 0x3407FB, "Ericsson AB", "ERICSSON-AB" }, { 0x340804, "D-Link Corporation", "D-LINK" }, { 0x3408BC, "Apple, Inc.", "APPLE" }, { 0x3408E1, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x340A22, "TOP-ACCESS ELECTRONICS CO LTD", "TOP-ACCESS-ELECTRONICS" }, { 0x340A33, "D-Link International", "D-LINK" }, { 0x340A98, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x340AFF, "Qingdao Hisense Communications Co.,Ltd.", "QINGDAO-HISENSE-COMMUNICATION" }, { 0x340B40, "MIOS ELETTRONICA SRL", "MIOS-ELETTRONICA-SRL" }, { 0x340CED, "Moduel AB", "MODUEL-AB" }, { 0x340F66, "Web Sensing LLC", "WEB-SENSING" }, { 0x3410F4, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x341290, "Treeview Co.,Ltd.", "TREEVIEW" }, { 0x341298, "Apple, Inc.", "APPLE" }, { 0x3412F9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x341343, "GE Lighting", "GE-LIGHTING" }, { 0x3413A8, "Mediplan Limited", "MEDIPLAN" }, { 0x3413E8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x34145F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3414B5, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x341513, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x341593, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x34159E, "Apple, Inc.", "APPLE" }, { 0x3417EB, "Dell Inc.", "DELL" }, { 0x341A35, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x341A4C, "SHENZHEN WEIBU ELECTRONICS CO.,LTD.", "SHENZHEN-WEIBU-ELECTRONICS" }, { 0x341B22, "Grandbeing Technology Co., Ltd", "GRANDBEING" }, { 0x341B2D, "Cisco Systems, Inc", "CISCO" }, { 0x341CF0, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x341E6B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x341FE4, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x342003, "Shenzhen Feitengyun Technology Co.,LTD", "SHENZHEN-FEITENGYUN" }, { 0x3420E3, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x342109, "Jensen Scandinavia AS", "JENSEN-SCANDINAVIA-AS" }, { 0x342387, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x3423BA, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x34243E, "zte corporation", "ZTE" }, { 0x34255D, "Shenzhen Loadcom Technology Co.,Ltd", "SHENZHEN-LOADCOM" }, { 0x3425B4, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x3425BE, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x342606, "CarePredict, Inc.", "CAREPREDICT" }, { 0x342792, "FREEBOX SAS", "FREEBOX-SAS" }, { 0x342840, "Apple, Inc.", "APPLE" }, { 0x3428F0, "ATN International Limited", "ATN" }, { 0x342912, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x34298F, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x3429EA, "MCD ELECTRONICS SP. Z O.O.", "MCD-ELECTRONICS-SP-Z-O-O" }, { 0x3429EF, "Qingdao Haier Technology Co.,Ltd", "QINGDAO-HAIER" }, { 0x342AF1, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x342B70, "Arris", "ARRIS" }, { 0x342CC4, "Compal Broadband Networks, Inc.", "COMPAL-BROADBAND-NETWORKS" }, { 0x342D0D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x342EB6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x342EB7, "Intel Corporate", "INTEL-CORPORATE" }, { 0x342F6E, "Anywire corporation", "ANYWIRE" }, { 0x342FBD, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x343111, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x34317F, "Panasonic Appliances Company", "PANASONIC-APPLIANCES-COMPANY" }, { 0x34318F, "Apple, Inc.", "APPLE" }, { 0x3431C4, "AVM GmbH", "AVM" }, { 0x3432E6, "Panasonic Industrial Devices Europe GmbH", "PANASONIC-INDUSTRIAL-DEVICES-EUROPE" }, { 0x34363B, "Apple, Inc.", "APPLE" }, { 0x343654, "zte corporation", "ZTE" }, { 0x343759, "zte corporation", "ZTE" }, { 0x343794, "Hamee Corp.", "HAMEE" }, { 0x3438AF, "Inlab Networks GmbH", "INLAB-NETWORKS" }, { 0x3438B7, "HUMAX Co., Ltd.", "HUMAX" }, { 0x343A20, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x343D98, "JinQianMao Technology Co.,Ltd.", "JINQIANMAO" }, { 0x343DC4, "BUFFALO.INC", "BUFFALO" }, { 0x343EA4, "Ring LLC", "RING" }, { 0x3440B5, "IBM", "IBM" }, { 0x34415D, "Intel Corporate", "INTEL-CORPORATE" }, { 0x3441A8, "ER-Telecom", "ER-TELECOM" }, { 0x344262, "Apple, Inc.", "APPLE" }, { 0x34466F, "HiTEM Engineering", "HITEM-ENGINEERING" }, { 0x3446EC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x34479A, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x3447D4, "Chengdu Quanjing Intelligent Technology Co.,Ltd", "CHENGDU-QUANJING-INTELLIGENT" }, { 0x3448ED, "Dell Inc.", "DELL" }, { 0x34495B, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x344AC3, "HuNan ZiKun Information Technology CO., Ltd", "HUNAN-ZIKUN-INFORMATION" }, { 0x344B3D, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x344B50, "zte corporation", "ZTE" }, { 0x344CA4, "amazipoint technology Ltd.", "AMAZIPOINT" }, { 0x344CC8, "Echodyne Corp", "ECHODYNE" }, { 0x344DEA, "zte corporation", "ZTE" }, { 0x344DF7, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x344F3F, "IO-Power Technology Co., Ltd.", "IO-POWER" }, { 0x344F5C, "R&M AG", "R-AMP-M" }, { 0x344F69, "EKINOPS SAS", "EKINOPS-SAS" }, { 0x345180, "TCL King Electrical Appliances (Huizhou) Co., Ltd", "TCL-KING-ELECTRICAL-APPLIANCES-HUIZHOU" }, { 0x345184, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x3451AA, "JID GLOBAL", "JID-GLOBAL" }, { 0x3451C9, "Apple, Inc.", "APPLE" }, { 0x3453D2, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x34543C, "TAKAOKA TOKO CO.,LTD.", "TAKAOKA-TOKO" }, { 0x345594, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0x3456FE, "Cisco Meraki", "CISCO-MERAKI" }, { 0x345760, "MitraStar Technology Corp.", "MITRASTAR" }, { 0x345840, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x34587C, "MIRAE INFORMATION TECHNOLOGY CO., LTD.", "MIRAE-INFORMATION" }, { 0x345A06, "SHARP Corporation", "SHARP" }, { 0x345ABA, "tcloud intelligence", "TCLOUD-INTELLIGENCE" }, { 0x345B11, "EVI HEAT AB", "EVI-HEAT-AB" }, { 0x345B98, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x345BBB, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0x345C40, "Cargt Holdings LLC", "CARGT-HOLDINGS" }, { 0x345D10, "Wytek", "WYTEK" }, { 0x345D9E, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x345DA8, "Cisco Systems, Inc", "CISCO" }, { 0x345E08, "Roku, Inc", "ROKU" }, { 0x3460F9, "TP-Link Corporation Limited", "TP-LINK" }, { 0x346178, "The Boeing Company", "THE-BOEING-COMPANY" }, { 0x346288, "Cisco Systems, Inc", "CISCO" }, { 0x3462B4, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x3463D4, "BIONIX SUPPLYCHAIN TECHNOLOGIES SLU", "BIONIX-SUPPLYCHAIN-TECHNOLOGIES-SLU" }, { 0x3464A9, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x346679, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3466EA, "VERTU INTERNATIONAL CORPORATION LIMITED", "VERTU" }, { 0x34684A, "Teraworks Co., Ltd.", "TERAWORKS" }, { 0x346893, "Tecnovideo Srl", "TECNOVIDEO-SRL" }, { 0x346895, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x3468B5, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x346987, "zte corporation", "ZTE" }, { 0x346AC2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x346B46, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x346B5B, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x346BD3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x346C0F, "Pramod Telecom Pvt. Ltd", "PRAMOD-TELECOM-PVT" }, { 0x346D9C, "Carrier Corporation", "CARRIER" }, { 0x346E8A, "Ecosense", "ECOSENSE" }, { 0x346E9D, "Ericsson AB", "ERICSSON-AB" }, { 0x346F24, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x346F71, "TenaFe Inc.", "TENAFE" }, { 0x346F90, "Cisco Systems, Inc", "CISCO" }, { 0x346F92, "White Rodgers Division", "WHITE-RODGERS-DIVISION" }, { 0x346FED, "Enovation Controls", "ENOVATION-CONTROLS" }, { 0x347146, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x34732D, "Cisco Systems, Inc", "CISCO" }, { 0x34735A, "Dell Inc.", "DELL" }, { 0x347379, "xFusion Digital Technologies Co., Limited", "XFUSION-DIGITAL-TECHNOLOGIES" }, { 0x347563, "SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.", "SHENZHEN-RF-LINK" }, { 0x3475C7, "Avaya Inc", "AVAYA" }, { 0x3476C5, "I-O DATA DEVICE,INC.", "I-O-DATA-DEVICE" }, { 0x347839, "zte corporation", "ZTE" }, { 0x347877, "O-Net Communications (Shenzhen) Limited", "O-NET-COMMUNICATION-SHENZHEN" }, { 0x3478D7, "Gionee Communication Equipment Co.,Ltd.", "GIONEE-COMMUNICATION-EQUIPMENT" }, { 0x347916, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x347A60, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x347C25, "Apple, Inc.", "APPLE" }, { 0x347DE4, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x347DF6, "Intel Corporate", "INTEL-CORPORATE" }, { 0x347E00, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x347E39, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x347E5C, "Sonos, Inc.", "SONOS" }, { 0x347ECA, "NEXTWILL", "NEXTWILL" }, { 0x34800D, "Cavium Inc", "CAVIUM" }, { 0x3480B3, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x348137, "UNICARD SA", "UNICARD" }, { 0x3481C4, "AVM GmbH", "AVM" }, { 0x3481F4, "SST Taiwan Ltd.", "SST-TAIWAN" }, { 0x3482C5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3482DE, "Kiio Inc", "KIIO" }, { 0x348302, "iFORCOM Co., Ltd", "IFORCOM" }, { 0x348446, "Ericsson AB", "ERICSSON-AB" }, { 0x3484E4, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x348511, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x348518, "Espressif Inc.", "ESPRESSIF" }, { 0x348584, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x34862A, "Heinz Lackmann GmbH & Co KG", "HEINZ-LACKMANN" }, { 0x34865D, "Espressif Inc.", "ESPRESSIF" }, { 0x34873D, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0x348818, "Cisco Systems, Inc", "CISCO" }, { 0x34885D, "Logitech Far East", "LOGITECH-FAR-EAST" }, { 0x348A12, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x348A7B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x348AAE, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x348B75, "LAVA INTERNATIONAL(H.K) LIMITED", "LAVA-H-K" }, { 0x348C5E, "Apple, Inc.", "APPLE" }, { 0x348D52, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x348F27, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x34916F, "UserGate Ltd.", "USERGATE" }, { 0x3492C2, "Square Route Co., Ltd.", "SQUARE-ROUTE" }, { 0x349342, "TTE Corporation", "TTE" }, { 0x349454, "Espressif Inc.", "ESPRESSIF" }, { 0x3495DB, "Logitec Corporation", "LOGITEC" }, { 0x349672, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x34976F, "Rootech, Inc.", "ROOTECH" }, { 0x3497F6, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x3497FB, "ADVANCED RF TECHNOLOGIES INC", "ADVANCED-RF-TECHNOLOGIES" }, { 0x34987A, "Espressif Inc.", "ESPRESSIF" }, { 0x3498B5, "NETGEAR", "NETGEAR" }, { 0x34996F, "VPI Engineering", "VPI-ENGINEERING" }, { 0x349971, "Quanta Storage Inc.", "QUANTA-STORAGE" }, { 0x3499D7, "Universal Flow Monitors, Inc.", "UNIVERSAL-FLOW-MONITORS" }, { 0x349A0D, "ZBD Displays Ltd", "ZBD-DISPLAYS" }, { 0x349B5B, "Maquet GmbH", "MAQUET" }, { 0x349D90, "Heinzmann GmbH & CO. KG", "HEINZMANN" }, { 0x349E34, "Evervictory Electronic Co.Ltd", "EVERVICTORY" }, { 0x349F7B, "CANON INC.", "CANON" }, { 0x34A183, "AWare, Inc", "AWARE" }, { 0x34A2A2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x34A395, "Apple, Inc.", "APPLE" }, { 0x34A3BF, "Terewave. Inc.", "TEREWAVE" }, { 0x34A55D, "TECHNOSOFT INTERNATIONAL SRL", "TECHNOSOFT-SRL" }, { 0x34A5B4, "NAVTECH PTE LTD", "NAVTECH-PTE" }, { 0x34A5E1, "Sensorist ApS", "SENSORIST-APS" }, { 0x34A68C, "Shine Profit Development Limited", "SHINE-PROFIT-DEVELOPMENT" }, { 0x34A709, "Trevil srl", "TREVIL-SRL" }, { 0x34A7BA, "Fischer International Systems Corporation", "FISCHER" }, { 0x34A843, "KYOCERA Display Corporation", "KYOCERA-DISPLAY" }, { 0x34A84E, "Cisco Systems, Inc", "CISCO" }, { 0x34A8EB, "Apple, Inc.", "APPLE" }, { 0x34AA31, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x34AA8B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x34AA99, "Nokia", "NOKIA" }, { 0x34AAEE, "Mikrovisatos Servisas UAB", "MIKROVISATOS-SERVISAS-UAB" }, { 0x34AB37, "Apple, Inc.", "APPLE" }, { 0x34AB95, "Espressif Inc.", "ESPRESSIF" }, { 0x34AC11, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x34AD61, "CELESTICA INC.", "CELESTICA" }, { 0x34ADE4, "Shanghai Chint Power Systems Co., Ltd.", "SHANGHAI-CHINT-POWER" }, { 0x34AF2C, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x34AFA3, "Recogni Inc", "RECOGNI" }, { 0x34AFB3, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x34B1F7, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x34B20A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x34B354, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x34B472, "Espressif Inc.", "ESPRESSIF" }, { 0x34B571, "PLDS", "PLDS" }, { 0x34B5A3, "CIG SHANGHAI CO LTD", "CIG-SHANGHAI" }, { 0x34B7DA, "Espressif Inc.", "ESPRESSIF" }, { 0x34B7FD, "Guangzhou Younghead Electronic Technology Co.,Ltd", "GUANGZHOU-YOUNGHEAD" }, { 0x34B883, "Cisco Systems, Inc", "CISCO" }, { 0x34B98D, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x34BA38, "PAL MOHAN ELECTRONICS PVT LTD", "PAL-MOHAN-ELECTRONICS-PVT" }, { 0x34BA51, "Se-Kure Controls, Inc.", "SE-KURE-CONTROLS" }, { 0x34BA75, "Everest Networks, Inc", "EVEREST-NETWORKS" }, { 0x34BA9A, "Asiatelco Technologies Co.", "ASIATELCO-TECHNOLOGIES" }, { 0x34BB1F, "BlackBerry RTS", "BLACKBERRY-RTS" }, { 0x34BB26, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x34BCA6, "Beijing Ding Qing Technology, Ltd.", "BEIJING-DING-QING" }, { 0x34BD20, "Hangzhou Hikrobot Technology Co., Ltd.", "HANGZHOU-HIKROBOT" }, { 0x34BDC8, "Cisco Systems, Inc", "CISCO" }, { 0x34BDF9, "Shanghai WDK Industrial Co.,Ltd.", "SHANGHAI-WDK-INDUSTRIAL" }, { 0x34BDFA, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x34BE00, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x34BF90, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x34C059, "Apple, Inc.", "APPLE" }, { 0x34C0F9, "Rockwell Automation", "ROCKWELL-AUTOMATION" }, { 0x34C103, "Hangzhou Huamu Technology Co.,Ltd.", "HANGZHOU-HUAMU" }, { 0x34C3AC, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x34C3D2, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0x34C5D0, "Hagleitner Hygiene International GmbH", "HAGLEITNER-HYGIENE" }, { 0x34C69A, "Enecsys Ltd", "ENECSYS" }, { 0x34C731, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x34C803, "Nokia Corporation", "NOKIA" }, { 0x34C93D, "Intel Corporate", "INTEL-CORPORATE" }, { 0x34C99D, "EIDOLON COMMUNICATIONS TECHNOLOGY CO. LTD.", "EIDOLON-COMMUNICATION" }, { 0x34C9F0, "LM Technologies Ltd", "LM-TECHNOLOGIES" }, { 0x34CA81, "New H3C Intelligence Terminal Co., Ltd.", "NEW-H3C-INTELLIGENCE-TERMINAL" }, { 0x34CB1A, "Procter & Gamble Company", "PROCTER-GAMBLE-COMPANY" }, { 0x34CC28, "Nexpring Co. LTD.,", "NEXPRING" }, { 0x34CD6D, "CommSky Technologies", "COMMSKY-TECHNOLOGIES" }, { 0x34CDBE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x34CE00, "XIAOMI Electronics,CO.,LTD", "XIAOMI-ELECTRONICS" }, { 0x34CE69, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x34CE94, "Parsec (Pty) Ltd", "PARSEC-PTY" }, { 0x34CF6C, "Hangzhou Taili wireless communication equipment Co.,Ltd", "HANGZHOU-TAILI-WIRELESS-COMMUNICATION-EQUIPMENT" }, { 0x34CFF6, "Intel Corporate", "INTEL-CORPORATE" }, { 0x34D09B, "MobilMAX Technology Inc.", "MOBILMAX" }, { 0x34D0B8, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x34D262, "SZ DJI TECHNOLOGY CO.,LTD", "SZ-DJI" }, { 0x34D270, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x34D2C4, "RENA GmbH Print Systeme", "RENA-PRINT-SYSTEME" }, { 0x34D4E3, "Atom Power, Inc.", "ATOM-POWER" }, { 0x34D693, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x34D712, "Smartisan Digital Co., Ltd", "SMARTISAN-DIGITAL" }, { 0x34D737, "IBG Industriebeteiligungsgesellschaft mbH &b Co. KG", "IBG-INDUSTRIEBETEILIGUNGSGESELLSCHAFT-MBH-B" }, { 0x34D772, "Xiamen Yudian Automation Technology Co., Ltd", "XIAMEN-YUDIAN-AUTOMATION" }, { 0x34D7B4, "Tributary Systems, Inc.", "TRIBUTARY" }, { 0x34D856, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x34D954, "WiBotic Inc.", "WIBOTIC" }, { 0x34DAB7, "zte corporation", "ZTE" }, { 0x34DAC1, "SAE Technologies Development(Dongguan) Co., Ltd.", "SAE-TECHNOLOGIES-DEVELOPMENT-DONGGUAN" }, { 0x34DB9C, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x34DBFD, "Cisco Systems, Inc", "CISCO" }, { 0x34DC99, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x34DD04, "Minut AB", "MINUT-AB" }, { 0x34DD7E, "Umeox Innovations Co.,Ltd", "UMEOX-INNOVATIONS" }, { 0x34DE1A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x34DE34, "zte corporation", "ZTE" }, { 0x34DF20, "Shenzhen Comstar .Technology Co.,Ltd", "SHENZHEN-COMSTAR" }, { 0x34DF2A, "Fujikon Industrial Co.,Limited", "FUJIKON-INDUSTRIAL" }, { 0x34E0CF, "zte corporation", "ZTE" }, { 0x34E0D7, "DONGGUAN QISHENG ELECTRONICS INDUSTRIAL CO., LTD", "DONGGUAN-QISHENG-ELECTRONICS-INDUSTRIAL" }, { 0x34E12D, "Intel Corporate", "INTEL-CORPORATE" }, { 0x34E1D1, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x34E2FD, "Apple, Inc.", "APPLE" }, { 0x34E380, "Genexis B.V.", "GENEXIS-B-V" }, { 0x34E3DA, "Hoval Aktiengesellschaft", "HOVAL-AKTIENGESELLSCHAFT" }, { 0x34E42A, "Automatic Bar Controls Inc.", "AUTOMATIC-BAR-CONTROLS" }, { 0x34E5EC, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x34E6AD, "Intel Corporate", "INTEL-CORPORATE" }, { 0x34E6D7, "Dell Inc.", "DELL" }, { 0x34E70B, "HAN Networks Co., Ltd", "HAN-NETWORKS" }, { 0x34E71C, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x34E894, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x34E911, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x34E9FE, "Metis Co., Ltd.", "METIS" }, { 0x34EA34, "HangZhou Gubei Electronics Technology Co.,Ltd", "HANGZHOU-GUBEI-ELECTRONICS" }, { 0x34EAE7, "Shanghai High-Flying Electronics Technology Co., Ltd", "SHANGHAI-HIGH-FLYING-ELECTRONICS" }, { 0x34ECB6, "Phyplus Microelectronics Limited", "PHYPLUS-MICROELECTRONICS" }, { 0x34ED0B, "Shanghai XZ-COM.CO.,Ltd.", "SHANGHAI-XZ-COM" }, { 0x34ED1B, "Cisco Systems, Inc", "CISCO" }, { 0x34EE2A, "ConMet", "CONMET" }, { 0x34EF44, "2Wire Inc", "2WIRE" }, { 0x34EF8B, "NTT Communications Corporation", "NTT-COMMUNICATION" }, { 0x34EFB6, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0x34F043, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x34F0CA, "Shenzhen Linghangyuan Digital Technology Co.,Ltd.", "SHENZHEN-LINGHANGYUAN-DIGITAL" }, { 0x34F150, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x34F223, "Fujian Newland Communication Science Technology Co.,Ltd.", "FUJIAN-NEWLAND-COMMUNICATION-SCIENCE" }, { 0x34F39A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x34F39B, "WizLAN Ltd.", "WIZLAN" }, { 0x34F62D, "SHARP Corporation", "SHARP" }, { 0x34F64B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x34F6D2, "Panasonic Taiwan Co.,Ltd.", "PANASONIC-TAIWAN" }, { 0x34F716, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x34F86E, "Parker Hannifin Corporation", "PARKER-HANNIFIN" }, { 0x34F8E7, "Cisco Systems, Inc", "CISCO" }, { 0x34F968, "ATEK Products, LLC", "ATEK-PRODUCTS" }, { 0x34FA40, "Guangzhou Robustel Technologies Co., Limited", "GUANGZHOU-ROBUSTEL-TECHNOLOGIES" }, { 0x34FA9F, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x34FC6F, "ALCEA", "ALCEA" }, { 0x34FCA1, "Micronet union Technology(Chengdu)Co., Ltd.", "MICRONET-UNION-CHENGDU" }, { 0x34FCB9, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x34FCEF, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x34FD6A, "Apple, Inc.", "APPLE" }, { 0x34FE1C, "CHOUNG HWA TECH CO.,LTD", "CHOUNG-HWA-TECH" }, { 0x34FE77, "Apple, Inc.", "APPLE" }, { 0x34FE9E, "Fujitsu Limited", "FUJITSU" }, { 0x34FEC5, "Shenzhen Sunwoda intelligent hardware Co.,Ltd", "SHENZHEN-SUNWODA-INTELLIGENT-HARDWARE" }, { 0x380025, "Intel Corporate", "INTEL-CORPORATE" }, { 0x380118, "ULVAC,Inc.", "ULVAC" }, { 0x380146, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x380195, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x380197, "TSST Global,Inc", "TSST-GLOBAL" }, { 0x38019F, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0x3802DE, "Sercomm Corporation.", "SERCOMM" }, { 0x380546, "Foctek Photonics, Inc.", "FOCTEK-PHOTONICS" }, { 0x3805AC, "Piller Group GmbH", "PILLER-GROUP" }, { 0x3806B4, "A.D.C. GmbH", "A-D-C" }, { 0x380716, "FREEBOX SAS", "FREEBOX-SAS" }, { 0x3807D4, "Zeppelin Systems GmbH", "ZEPPELIN" }, { 0x3808FD, "Silca Spa", "SILCA-SPA" }, { 0x3809A4, "Firefly Integrations", "FIREFLY-INTEGRATIONS" }, { 0x380A0A, "Sky-City Communication and Electronics Limited Company", "SKY-CITY-COMMUNICATION-AND-ELECTRONICS-COMPANY" }, { 0x380A4F, "PRACHI ENTERPRISES", "PRACHI-ENTERPRISES" }, { 0x380A94, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x380AAB, "Formlabs", "FORMLABS" }, { 0x380B3C, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x380B40, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x380DD4, "Primax Electronics Ltd.", "PRIMAX-ELECTRONICS" }, { 0x380E4D, "Cisco Systems, Inc", "CISCO" }, { 0x380E7B, "V.P.S. Thai Co., Ltd", "V-P-S-THAI" }, { 0x380F4A, "Apple, Inc.", "APPLE" }, { 0x380FAD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x380FE4, "Dedicated Network Partners Oy", "DEDICATED-NETWORK-PARTNERS-OY" }, { 0x3810D5, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x3810F0, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x38127B, "Crenet Labs Co., Ltd.", "CRENET-LABS" }, { 0x38141B, "Secure Letter Inc.", "SECURE-LETTER" }, { 0x381428, "Dell Inc.", "DELL" }, { 0x38144E, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x381672, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x3816D1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x381730, "Ulrich Lippert GmbH & Co KG", "ULRICH-LIPPERT" }, { 0x381766, "PROMZAKAZ LTD.", "PROMZAKAZ" }, { 0x3817C3, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x3817E1, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x38184C, "Sony Home Entertainment&Sound Products Inc", "SONY-HOME-ENTERTAINMENT-SOUND-PRODUCTS" }, { 0x38192F, "Nokia Corporation", "NOKIA" }, { 0x381A52, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0x381C1A, "Cisco Systems, Inc", "CISCO" }, { 0x381C23, "Hilan Technology CO.,LTD", "HILAN" }, { 0x381C4A, "SIMCom Wireless Solutions Co.,Ltd.", "SIMCOM-WIRELESS-SOLUTIONS" }, { 0x381D14, "Skydio Inc.", "SKYDIO" }, { 0x381DD9, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0x381EC7, "Chipsea Technologies(Shenzhen) Corp.", "CHIPSEA-TECHNOLOGIES-SHENZHEN" }, { 0x381F26, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x381F8D, "Tuya Smart Inc.", "TUYA-SMART" }, { 0x382028, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x382056, "Cisco Systems, Inc", "CISCO" }, { 0x3820A8, "ColorTokens, Inc.", "COLORTOKENS" }, { 0x382187, "Midea Group Co., Ltd.", "MIDEA-GROUP" }, { 0x3821C7, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x38229D, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x3822D6, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x3822E2, "HP Inc.", "HP" }, { 0x3822F4, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x38256B, "Microsoft Mobile Oy", "MICROSOFT-MOBILE-OY" }, { 0x38262B, "UTran Technology", "UTRAN" }, { 0x3826CD, "ANDTEK", "ANDTEK" }, { 0x3828EA, "Fujian Netcom Technology Co., LTD", "FUJIAN-NETCOM" }, { 0x38295A, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x3829DD, "ONvocal Inc", "ONVOCAL" }, { 0x382A19, "Technica Engineering GmbH", "TECHNICA-ENGINEERING" }, { 0x382B78, "ECO PLUGS ENTERPRISE CO., LTD", "ECO-PLUGS" }, { 0x382C4A, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x382DD1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x382DE8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3830F9, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x38315A, "Rinnai", "RINNAI" }, { 0x3831AC, "WEG", "WEG" }, { 0x3835FB, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x38378B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x38384B, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x3838A6, "Arista Networks", "ARISTA-NETWORKS" }, { 0x38396C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x38398F, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x383A21, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x383B26, "Jiangsu Qinheng Co., Ltd.", "JIANGSU-QINHENG" }, { 0x383BC8, "2Wire Inc", "2WIRE" }, { 0x383C9C, "Fujian Newland Payment Technology Co.,Ltd.", "FUJIAN-NEWLAND-PAYMENT" }, { 0x383D5B, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x383F10, "DBL Technology Ltd.", "DBL" }, { 0x383FB3, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x38420B, "Sonos, Inc.", "SONOS" }, { 0x384233, "Wildeboer Bauteile GmbH", "WILDEBOER-BAUTEILE" }, { 0x3842A6, "Ingenieurbuero Stahlkopf", "INGENIEURBUERO-STAHLKOPF" }, { 0x384369, "Patrol Products Consortium LLC", "PATROL-PRODUCTS-CONSORTIUM" }, { 0x38437D, "Compal Broadband Networks, Inc.", "COMPAL-BROADBAND-NETWORKS" }, { 0x3843E5, "Grotech Inc", "GROTECH" }, { 0x38453B, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x38454C, "Light Labs, Inc.", "LIGHT-LABS" }, { 0x384554, "Harman/Becker Automotive Systems GmbH", "HARMAN/BECKER-AUTOMOTIVE" }, { 0x38458C, "MyCloud Technology corporation", "MYCLOUD" }, { 0x384608, "zte corporation", "ZTE" }, { 0x3847BC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3847F2, "Recogni Inc", "RECOGNI" }, { 0x38484C, "Apple, Inc.", "APPLE" }, { 0x384A80, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x384B24, "SIEMENS AG", "SIEMENS" }, { 0x384B5B, "ZTRON TECHNOLOGY LIMITED", "ZTRON" }, { 0x384B76, "AIRTAME ApS", "AIRTAME-APS" }, { 0x384C4F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x384C90, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x384F49, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x384FF0, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x38521A, "Nokia", "NOKIA" }, { 0x385247, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x385319, "34ED LLC DBA Centegix", "34ED-LLC-DBA-CENTEGIX" }, { 0x38539C, "Apple, Inc.", "APPLE" }, { 0x38549B, "zte corporation", "ZTE" }, { 0x385610, "CANDY HOUSE, Inc.", "CANDY-HOUSE" }, { 0x38563D, "Microsoft Corporation", "MICROSOFT" }, { 0x3856B5, "Peerbridge Health Inc", "PEERBRIDGE-HEALTH" }, { 0x38580C, "Panaccess Systems GmbH", "PANACCESS" }, { 0x3859F8, "MindMade Sp. z o.o.", "MINDMADE-SP-Z-O-O" }, { 0x3859F9, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x385AA8, "Beijing Zhongdun Security Technology Development Co.", "BEIJING-ZHONGDUN-SECURITY-DEVELOPMENT" }, { 0x385B44, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x385C76, "PLANTRONICS, INC.", "PLANTRONICS" }, { 0x385CFB, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x385F66, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x385FC3, "Yu Jeong System, Co.Ltd", "YU-JEONG-SYSTEM" }, { 0x386077, "PEGATRON CORPORATION", "PEGATRON" }, { 0x3861A5, "Grabango Co", "GRABANGO" }, { 0x3863BB, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x3863F6, "3NOD MULTIMEDIA(SHENZHEN)CO.,LTD", "3NOD-MULTIMEDIA-SHENZHEN" }, { 0x386407, "Qingdao Intelligent&Precise Electronics Co.,Ltd.", "QINGDAO-INTELLIGENT-PRECISE-ELECTRONICS" }, { 0x386504, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x3865B2, "Apple, Inc.", "APPLE" }, { 0x386645, "OOSIC Technology CO.,Ltd", "OOSIC" }, { 0x3866F0, "Apple, Inc.", "APPLE" }, { 0x386793, "Asia Optical Co., Inc.", "ASIA-OPTICAL" }, { 0x386893, "Intel Corporate", "INTEL-CORPORATE" }, { 0x3868A4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3868BE, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x3868DD, "INVENTEC CORPORATION", "INVENTEC" }, { 0x386A77, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x386B1C, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x386BBB, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x386C9B, "Ivy Biomedical", "IVY-BIOMEDICAL" }, { 0x386E21, "Wasion Group Ltd.", "WASION-GROUP" }, { 0x386E88, "zte corporation", "ZTE" }, { 0x386EA2, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x386F6B, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x38700C, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x3871DE, "Apple, Inc.", "APPLE" }, { 0x3872C0, "Comtrend Corporation", "COMTREND" }, { 0x3873EA, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x3876CA, "Shenzhen Smart Intelligent Technology Co.Ltd", "SHENZHEN-SMART-INTELLIGENT" }, { 0x3876D1, "Euronda SpA", "EURONDA-SPA" }, { 0x387862, "Sony Corporation", "SONY" }, { 0x387A0E, "Intel Corporate", "INTEL-CORPORATE" }, { 0x387A3C, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x387B47, "AKELA, Inc.", "AKELA" }, { 0x387C76, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x3880DF, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x3881D7, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x388345, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x38839A, "SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.", "SHENZHEN-RF-LINK" }, { 0x388479, "Cisco Meraki", "CISCO-MERAKI" }, { 0x388602, "Flexoptix GmbH", "FLEXOPTIX" }, { 0x3886F7, "Google, Inc.", "GOOGLE" }, { 0x3887D5, "Intel Corporate", "INTEL-CORPORATE" }, { 0x38881E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3888A4, "Apple, Inc.", "APPLE" }, { 0x38892C, "Apple, Inc.", "APPLE" }, { 0x3889DC, "Opticon Sensors Europe B.V.", "OPTICON-SENSORS-EUROPE-B-V" }, { 0x388A06, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x388A21, "UAB Teltonika Telematics", "UAB-TELTONIKA-TELEMATICS" }, { 0x388AB7, "ITC Networks", "ITC-NETWORKS" }, { 0x388ABE, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x388B59, "Google, Inc.", "GOOGLE" }, { 0x388C50, "LG Electronics", "LG-ELECTRONICS" }, { 0x388E7A, "AUTOIT", "AUTOIT" }, { 0x388EE7, "Fanhattan LLC", "FANHATTAN" }, { 0x388F30, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x389052, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3890A5, "Cisco Systems, Inc", "CISCO" }, { 0x3891B7, "Cisco Systems, Inc", "CISCO" }, { 0x3891D5, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x3891FB, "Xenox Holding BV", "XENOX-HOLDING" }, { 0x38922E, "ArrayComm", "ARRAYCOMM" }, { 0x389461, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x389496, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3894E0, "Syrotech Networks. Ltd.", "SYROTECH-NETWORKS" }, { 0x3894ED, "NETGEAR", "NETGEAR" }, { 0x389592, "Tendyron Corporation", "TENDYRON" }, { 0x3897A4, "ELECOM CO.,LTD.", "ELECOM" }, { 0x3897D6, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x3898D8, "MERITECH CO.,LTD", "MERITECH" }, { 0x3898E9, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x389AF6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x389CB2, "Apple, Inc.", "APPLE" }, { 0x389D92, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0x389E80, "zte corporation", "ZTE" }, { 0x389F5A, "C-Kur TV Inc.", "C-KUR-TV" }, { 0x389F83, "OTN Systems N.V.", "OTN-N-V" }, { 0x38A067, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x38A28C, "SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.", "SHENZHEN-RF-LINK" }, { 0x38A44B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x38A4ED, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x38A53C, "COMECER Netherlands", "COMECER-NETHERLANDS" }, { 0x38A5B6, "SHENZHEN MEGMEET ELECTRICAL CO.,LTD", "SHENZHEN-MEGMEET-ELECTRICAL" }, { 0x38A659, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x38A6CE, "SKY UK LIMITED", "SKY-UK" }, { 0x38A851, "Quickset Defense Technologies, LLC", "QUICKSET-DEFENSE-TECHNOLOGIES" }, { 0x38A86B, "Orga BV", "ORGA" }, { 0x38A89B, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x38A8CD, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x38A91C, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x38A95F, "Actifio Inc", "ACTIFIO" }, { 0x38A9EA, "HK DAPU ELECTRONIC TECHNOLOGY CO., LIMITED", "HK-DAPU" }, { 0x38AA3C, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0x38AB16, "NPO RTT LLC", "NPO-RTT" }, { 0x38AB41, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x38AC3D, "Nephos Inc", "NEPHOS" }, { 0x38AD8E, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x38ADBE, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x38AF29, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0x38AFD0, "Nevro", "NEVRO" }, { 0x38AFD7, "FUJITSU LIMITED", "FUJITSU" }, { 0x38B12D, "Sonotronic Nagel GmbH", "SONOTRONIC-NAGEL" }, { 0x38B19E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x38B1DB, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x38B3F7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x38B4D3, "BSH Hausgeraete GmbH", "BSH-HAUSGERAETE" }, { 0x38B54D, "Apple, Inc.", "APPLE" }, { 0x38B5BD, "E.G.O. Elektro-Ger", "E-G-O-ELEKTRO-GER" }, { 0x38B5C9, "INGRAM MICRO SERVICES", "INGRAM-MICRO-SERVICES" }, { 0x38B5D3, "SecuWorks", "SECUWORKS" }, { 0x38B725, "Wistron Infocomm (Zhongshan) Corporation", "WISTRON-INFOCOMM-ZHONGSHAN" }, { 0x38B74D, "Fijowave Limited", "FIJOWAVE" }, { 0x38B800, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x38B8EB, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x38BAB0, "Broadcom", "BROADCOM" }, { 0x38BAF8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x38BB23, "OzVision America LLC", "OZVISION-AMERICA" }, { 0x38BB3C, "Avaya Inc", "AVAYA" }, { 0x38BC01, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x38BC1A, "MEIZU Technology Co., Ltd.", "MEIZU" }, { 0x38BC61, "Starkoff Co., Ltd.", "STARKOFF" }, { 0x38BD7A, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x38BEAB, "AltoBeam (China) Inc.", "ALTOBEAM-CHINA" }, { 0x38BF2F, "Espec Corp.", "ESPEC" }, { 0x38BF33, "NEC CASIO Mobile Communications", "NEC-CASIO-MOBILE-COMMUNICATION" }, { 0x38C096, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x38C2BA, "CCTV NEOTECH", "CCTV-NEOTECH" }, { 0x38C4E8, "NSS Sp. z o.o.", "NSS-SP-Z-O-O" }, { 0x38C70A, "WiFiSong", "WIFISONG" }, { 0x38C7BA, "CS Services Co.,Ltd.", "CS-SERVICES" }, { 0x38C804, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x38C85C, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x38C986, "Apple, Inc.", "APPLE" }, { 0x38C9A9, "SMART High Reliability Solutions, Inc.", "SMART-HIGH-RELIABILITY-SOLUTIONS" }, { 0x38CA73, "Shenzhen MiaoMing Intelligent Technology Co.,Ltd", "SHENZHEN-MIAOMING-INTELLIGENT" }, { 0x38CA84, "HP Inc.", "HP" }, { 0x38CA97, "Contour Design LLC", "CONTOUR-DESIGN" }, { 0x38CADA, "Apple, Inc.", "APPLE" }, { 0x38CD07, "Beijing FaceCam Technology Co., Ltd.", "BEIJING-FACECAM" }, { 0x38D135, "EasyIO Corporation Sdn. Bhd.", "EASYIO" }, { 0x38D269, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x38D2CA, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0x38D40B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x38D547, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x38D57A, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x38D620, "Limidea Concept Pte. Ltd.", "LIMIDEA-CONCEPT-PTE" }, { 0x38D7CA, "7HUGS LABS", "7HUGS-LABS" }, { 0x38D82F, "zte corporation", "ZTE" }, { 0x38D9A5, "Mikotek Information Inc.", "MIKOTEK-INFORMATION" }, { 0x38DBBB, "Sunbow Telecom Co., Ltd.", "SUNBOW-TELECOM" }, { 0x38DE60, "Mohlenhoff GmbH", "MOHLENHOFF" }, { 0x38DEAD, "Intel Corporate", "INTEL-CORPORATE" }, { 0x38E08E, "Mitsubishi Electric Corporation", "MITSUBISHI-ELECTRIC" }, { 0x38E1AA, "zte corporation", "ZTE" }, { 0x38E26E, "ShenZhen Sweet Rain Electronics Co.,Ltd.", "SHENZHEN-SWEET-RAIN-ELECTRONICS" }, { 0x38E2DD, "zte corporation", "ZTE" }, { 0x38E39F, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x38E3C5, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x38E595, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0x38E60A, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x38E7C0, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x38E7D8, "HTC Corporation", "HTC" }, { 0x38E8DF, "b gmbh medien + datenbanken", "B-MEDIEN-+-DATENBANKEN" }, { 0x38E8EE, "Nanjing Youkuo Electric Technology Co., Ltd", "NANJING-YOUKUO-ELECTRIC" }, { 0x38E98C, "Reco S.p.A.", "RECO" }, { 0x38EAA7, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x38EB47, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x38EC0D, "Apple, Inc.", "APPLE" }, { 0x38EC11, "Novatek Microelectronics Corp.", "NOVATEK-MICROELECTRONICS" }, { 0x38ECE4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x38ED18, "Cisco Systems, Inc", "CISCO" }, { 0x38EE9D, "Anedo Ltd.", "ANEDO" }, { 0x38EFE3, "INGENICO TERMINALS SAS", "INGENICO-TERMINALS-SAS" }, { 0x38F098, "Vapor Stone Rail Systems", "VAPOR-STONE-RAIL" }, { 0x38F0C8, "Logitech", "LOGITECH" }, { 0x38F135, "SensorTec-Canada", "SENSORTEC-CANADA" }, { 0x38F23E, "Microsoft Mobile Oy", "MICROSOFT-MOBILE-OY" }, { 0x38F32E, "Skullcandy", "SKULLCANDY" }, { 0x38F33F, "TATSUNO CORPORATION", "TATSUNO" }, { 0x38F3AB, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x38F3FB, "Asperiq", "ASPERIQ" }, { 0x38F554, "HISENSE ELECTRIC CO.,LTD", "HISENSE-ELECTRIC" }, { 0x38F557, "JOLATA, INC.", "JOLATA" }, { 0x38F597, "home2net GmbH", "HOME2NET" }, { 0x38F601, "Solid State Storage Technology Corporation", "SOLID-STATE-STORAGE" }, { 0x38F6CF, "zte corporation", "ZTE" }, { 0x38F6ED, "EVK DI Kerschhaggl GmbH", "EVK-DI-KERSCHHAGGL" }, { 0x38F708, "National Resource Management, Inc.", "NATIONAL-RESOURCE-MANAGEMENT" }, { 0x38F73D, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x38F7B2, "SEOJUN ELECTRIC", "SEOJUN-ELECTRIC" }, { 0x38F7CD, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x38F7F1, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x38F85E, "HUMAX Co., Ltd.", "HUMAX" }, { 0x38F889, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x38F8B7, "V2COM PARTICIPACOES S.A.", "V2COM-PARTICIPACOES" }, { 0x38F8CA, "OWIN Inc.", "OWIN" }, { 0x38F8F6, "Adtran Inc", "ADTRAN" }, { 0x38F9D3, "Apple, Inc.", "APPLE" }, { 0x38F9F5, "Garmin International", "GARMIN" }, { 0x38FACA, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0x38FB14, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x38FC34, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x38FC98, "Intel Corporate", "INTEL-CORPORATE" }, { 0x38FDF5, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x38FDF8, "Cisco Systems, Inc", "CISCO" }, { 0x38FDFE, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x38FEC5, "Ellips B.V.", "ELLIPS-B-V" }, { 0x38FF13, "Joint Stock Company Research Instinite Masshtab", "JOINT-STOCK-COMPANY-RESEARCH-INSTINITE-MASSHTAB" }, { 0x38FF36, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x3C01EF, "Sony Corporation", "SONY" }, { 0x3C0268, "Infinera, Inc.", "INFINERA" }, { 0x3C02B1, "Creation Technologies LP", "CREATION-TECHNOLOGIES-LP" }, { 0x3C0461, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x3C04BF, "PRAVIS SYSTEMS Co.Ltd.,", "PRAVIS" }, { 0x3C0518, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3C058E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3C05AB, "Product Creation Studio", "PRODUCT-CREATION-STUDIO" }, { 0x3C0630, "Apple, Inc.", "APPLE" }, { 0x3C0664, "Beijing Leagrid Technology Co.,Ltd.", "BEIJING-LEAGRID" }, { 0x3C06A7, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x3C0754, "Apple, Inc.", "APPLE" }, { 0x3C0771, "Sony Corporation", "SONY" }, { 0x3C081E, "Beijing Yupont Electric Power Technology Co.,Ltd", "BEIJING-YUPONT-ELECTRIC-POWER" }, { 0x3C08CD, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x3C08F6, "Cisco Systems, Inc", "CISCO" }, { 0x3C096D, "Powerhouse Dynamics", "POWERHOUSE-DYNAMICS" }, { 0x3C0AF3, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x3C0B4F, "Yandex Services AG", "YANDEX-SERVICES" }, { 0x3C0C48, "Servergy, Inc.", "SERVERGY" }, { 0x3C0C7D, "Tiny Mesh AS", "TINY-MESH-AS" }, { 0x3C0CDB, "UNION MAN TECHNOLOGY CO.,LTD", "UNION-MAN" }, { 0x3C0D2C, "Liquid-Markets GmbH", "LIQUID-MARKETS" }, { 0x3C0E23, "Cisco Systems, Inc", "CISCO" }, { 0x3C0FC1, "KBC Networks", "KBC-NETWORKS" }, { 0x3C1040, "daesung network", "DAESUNG-NETWORK" }, { 0x3C106F, "ALBAHITH TECHNOLOGIES", "ALBAHITH-TECHNOLOGIES" }, { 0x3C10E6, "PHAZR Inc.", "PHAZR" }, { 0x3C11B2, "Fraunhofer FIT", "FRAUNHOFER-FIT" }, { 0x3C135A, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x3C13CC, "Cisco Systems, Inc", "CISCO" }, { 0x3C1512, "Shenzhen Huanhu Technology Co.,Ltd", "SHENZHEN-HUANHU" }, { 0x3C15C2, "Apple, Inc.", "APPLE" }, { 0x3C15EA, "TESCOM CO., LTD.", "TESCOM" }, { 0x3C15FB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3C1710, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x3C189F, "Nokia Corporation", "NOKIA" }, { 0x3C18A0, "Luxshare Precision Industry Company Limited", "LUXSHARE-PRECISION-INDUSTRY-COMPANY" }, { 0x3C1915, "GFI Chrono Time", "GFI-CHRONO-TIME" }, { 0x3C195E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3C197D, "Ericsson AB", "ERICSSON-AB" }, { 0x3C19CB, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x3C1A0F, "ClearSky Data", "CLEARSKY-DATA" }, { 0x3C1A57, "Cardiopulmonary Corp", "CARDIOPULMONARY" }, { 0x3C1A79, "Huayuan Technology CO.,LTD", "HUAYUAN" }, { 0x3C1A9E, "VitalThings AS", "VITALTHINGS-AS" }, { 0x3C1BF8, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x3C1CBE, "JADAK LLC", "JADAK" }, { 0x3C1E04, "D-Link International", "D-LINK" }, { 0x3C1E13, "HANGZHOU SUNRISE TECHNOLOGY CO., LTD", "HANGZHOU-SUNRISE" }, { 0x3C1EB5, "Apple, Inc.", "APPLE" }, { 0x3C2093, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0x3C20F6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3C219C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x3C22FB, "Apple, Inc.", "APPLE" }, { 0x3C24F0, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x3C25D7, "Nokia Corporation", "NOKIA" }, { 0x3C26D5, "Sotera Wireless", "SOTERA-WIRELESS" }, { 0x3C26E4, "Cisco Systems, Inc", "CISCO" }, { 0x3C2763, "SLE quality engineering GmbH & Co. KG", "SLE-QUALITY-ENGINEERING" }, { 0x3C286D, "Google, Inc.", "GOOGLE" }, { 0x3C28A6, "Alcatel-Lucent Enterprise (China)", "ALCATEL-LUCENT-CHINA" }, { 0x3C2AF4, "Brother Industries, LTD.", "BROTHER-INDUSTRIES" }, { 0x3C2C30, "Dell Inc.", "DELL" }, { 0x3C2C94, "杭州德澜科技有限公司(HangZhou Delan Technology Co.,Ltd)", "HANGZHOU-DELAN" }, { 0x3C2C99, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0x3C2CA6, "Beijing Xiaomi Electronics Co.,Ltd", "BEIJING-XIAOMI-ELECTRONICS" }, { 0x3C2D9E, "Vantiva - Connected Home", "VANTIVA-CONNECTED-HOME" }, { 0x3C2DB7, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x3C2EF5, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x3C2EF9, "Apple, Inc.", "APPLE" }, { 0x3C2EFF, "Apple, Inc.", "APPLE" }, { 0x3C2F3A, "SFORZATO Corp.", "SFORZATO" }, { 0x3C300C, "Dewar Electronics Pty Ltd", "DEWAR-ELECTRONICS-PTY" }, { 0x3C306F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3C3174, "Google, Inc.", "GOOGLE" }, { 0x3C3178, "Qolsys Inc.", "QOLSYS" }, { 0x3C3300, "Shenzhen Bilian electronic CO.,LTD", "SHENZHEN-BILIAN" }, { 0x3C3332, "D-Link Corporation", "D-LINK" }, { 0x3C3556, "Cognitec Systems GmbH", "COGNITEC" }, { 0x3C363D, "Nokia Corporation", "NOKIA" }, { 0x3C36E4, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x3C3712, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x3C3786, "NETGEAR", "NETGEAR" }, { 0x3C3888, "ConnectQuest, llc", "CONNECTQUEST" }, { 0x3C38F4, "Sony Corporation", "SONY" }, { 0x3C39C3, "JW Electronics Co., Ltd.", "JW-ELECTRONICS" }, { 0x3C39C8, "Apple, Inc.", "APPLE" }, { 0x3C39E7, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x3C3A73, "Avaya Inc", "AVAYA" }, { 0x3C3B4D, "Toyo Seisakusho Kaisha, Limited", "TOYO-SEISAKUSHO-KAISHA" }, { 0x3C3B99, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x3C3F51, "2CRSI", "2CRSI" }, { 0x3C404F, "GUANGDONG PISEN ELECTRONICS CO.,LTD", "GUANGDONG-PISEN-ELECTRONICS" }, { 0x3C410E, "Cisco Systems, Inc", "CISCO" }, { 0x3C427E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x3C438E, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x3C457A, "SKY UK LIMITED", "SKY-UK" }, { 0x3C4645, "Shanghai Infinity Wireless Technologies Co.,Ltd.", "SHANGHAI-INFINITY-WIRELESS-TECHNOLOGIES" }, { 0x3C46A1, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x3C46D8, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x3C4711, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3C479B, "Theissen Training Systems, Inc.", "THEISSEN-TRAINING" }, { 0x3C4937, "ASSMANN Electronic GmbH", "ASSMANN" }, { 0x3C4A92, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x3C4C69, "Infinity System S.L.", "INFINITY-SYSTEM" }, { 0x3C4CD0, "CERAGON NETWORKS", "CERAGON-NETWORKS" }, { 0x3C4DBE, "Apple, Inc.", "APPLE" }, { 0x3C4E47, "Etronic A/S", "ETRONIC-A/S" }, { 0x3C4E56, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0x3C510E, "Cisco Systems, Inc", "CISCO" }, { 0x3C5282, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x3C52A1, "TP-Link Corporation Limited", "TP-LINK" }, { 0x3C53D7, "CEDES AG", "CEDES" }, { 0x3C5447, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3C5576, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x3C5731, "Cisco Systems, Inc", "CISCO" }, { 0x3C574F, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x3C576C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3C57BD, "Kessler Crane Inc.", "KESSLER-CRANE" }, { 0x3C57D5, "FiveCo", "FIVECO" }, { 0x3C585D, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x3C58C2, "Intel Corporate", "INTEL-CORPORATE" }, { 0x3C591E, "TCL King Electrical Appliances (Huizhou) Co., Ltd", "TCL-KING-ELECTRICAL-APPLIANCES-HUIZHOU" }, { 0x3C5A37, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3C5AB4, "Google, Inc.", "GOOGLE" }, { 0x3C5CC3, "Shenzhen First Blue Chip Technology Ltd", "SHENZHEN-FIRST-BLUE-CHIP" }, { 0x3C5CC4, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x3C5CF1, "eero inc.", "EERO" }, { 0x3C5D29, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0x3C5EC3, "Cisco Systems, Inc", "CISCO" }, { 0x3C5F01, "Synerchip Co., Ltd.", "SYNERCHIP" }, { 0x3C6104, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x3C6105, "Espressif Inc.", "ESPRESSIF" }, { 0x3C6200, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3C6278, "SHENZHEN JETNET TECHNOLOGY CO.,LTD.", "SHENZHEN-JETNET" }, { 0x3C62F0, "Sercomm Corporation.", "SERCOMM" }, { 0x3C6716, "Lily Robotics", "LILY-ROBOTICS" }, { 0x3C672C, "Sciovid Inc.", "SCIOVID" }, { 0x3C678C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3C6816, "VXi Corporation", "VXI" }, { 0x3C69D1, "ADC Automotive Distance Control System GmbH", "ADC-AUTOMOTIVE-DISTANCE-CONTROL-SYSTEM" }, { 0x3C6A2C, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x3C6A48, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x3C6A7D, "Niigata Power Systems Co., Ltd.", "NIIGATA-POWER" }, { 0x3C6A9D, "Dexatek Technology LTD.", "DEXATEK" }, { 0x3C6AA7, "Intel Corporate", "INTEL-CORPORATE" }, { 0x3C6D89, "Apple, Inc.", "APPLE" }, { 0x3C6E63, "Mitron OY", "MITRON-OY" }, { 0x3C6F45, "Fiberpro Inc.", "FIBERPRO" }, { 0x3C6F9B, "zte corporation", "ZTE" }, { 0x3C6FEA, "Panasonic India Pvt. Ltd.", "PANASONIC-INDIA-PVT" }, { 0x3C6FF7, "EnTek Systems, Inc.", "ENTEK" }, { 0x3C7059, "MakerBot Industries", "MAKERBOT-INDUSTRIES" }, { 0x3C71BF, "Espressif Inc.", "ESPRESSIF" }, { 0x3C7437, "RIM", "RIM" }, { 0x3C754A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x3C77E6, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x3C7843, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3C7873, "Airsonics", "AIRSONICS" }, { 0x3C792B, "Dongguan Auklink TechnologyCo.,Ltd", "DONGGUAN-AUKLINK-TECHNOLOGYCO" }, { 0x3C7A8A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x3C7AAA, "China Dragon Technology Limited", "CHINA-DRAGON" }, { 0x3C7AC4, "Chemtronics", "CHEMTRONICS" }, { 0x3C7AF0, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x3C7C3F, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x3C7D0A, "Apple, Inc.", "APPLE" }, { 0x3C7DB1, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x3C7F6F, "Telechips, Inc.", "TELECHIPS" }, { 0x3C806B, "Hunan Voc Acoustics Technology Co., Ltd.", "HUNAN-VOC-ACOUSTICS" }, { 0x3C80AA, "Ransnet Singapore Pte Ltd", "RANSNET-SINGAPORE-PTE" }, { 0x3C81D8, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x3C82C0, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x3C831E, "CKD Corporation", "CKD" }, { 0x3C8375, "Microsoft Corporation", "MICROSOFT" }, { 0x3C83B5, "Advance Vision Electronics Co. Ltd.", "ADVANCE-VISION-ELECTRONICS" }, { 0x3C846A, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x3C869A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3C86A8, "Sangshin elecom .co,, LTD", "SANGSHIN-ELECOM" }, { 0x3C86D1, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x3C894D, "Dr. Ing. h.c. F. Porsche AG", "DR-ING-H-C-F-PORSCHE" }, { 0x3C8970, "Neosfar", "NEOSFAR" }, { 0x3C8994, "SKY UK LIMITED", "SKY-UK" }, { 0x3C89A6, "KAPELSE", "KAPELSE" }, { 0x3C8AB0, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x3C8AE5, "Tensun Information Technology(Hangzhou) Co.,LTD", "TENSUN-INFORMATION-HANGZHOU" }, { 0x3C8B7F, "Cisco Systems, Inc", "CISCO" }, { 0x3C8BCD, "Alcatel-Lucent Shanghai Bell Co., Ltd", "ALCATEL-LUCENT-SHANGHAI-BELL" }, { 0x3C8BFE, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3C8C40, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x3C8C93, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x3C8CF8, "TRENDnet, Inc.", "TRENDNET" }, { 0x3C8D20, "Google, Inc.", "GOOGLE" }, { 0x3C8F06, "Shenzhen Libtor Technology Co.,Ltd", "SHENZHEN-LIBTOR" }, { 0x3C9066, "SmartRG, Inc.", "SMARTRG" }, { 0x3C912B, "Vexata Inc", "VEXATA" }, { 0x3C9157, "Yulong Computer Telecommunication Scientific (Shenzhen) Co.,Ltd", "YULONG-TELECOMMUNICATION-SCIENTIFIC-SHENZHEN" }, { 0x3C9174, "ALONG COMMUNICATION TECHNOLOGY", "ALONG-COMMUNICATION" }, { 0x3C9180, "Liteon Technology Corporation", "LITEON" }, { 0x3C92DC, "Octopod Technology Co. Ltd.", "OCTOPOD" }, { 0x3C93F4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3C94D5, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x3C9509, "Liteon Technology Corporation", "LITEON" }, { 0x3C970E, "Wistron InfoComm(Kunshan)Co.,Ltd.", "WISTRON-INFOCOMM-KUNSHAN" }, { 0x3C977E, "IPS Technology Limited", "IPS" }, { 0x3C9872, "Sercomm Corporation.", "SERCOMM" }, { 0x3C98BF, "Quest Controls, Inc.", "QUEST-CONTROLS" }, { 0x3C998C, "Houwa System Design Corp.", "HOUWA-SYSTEM-DESIGN" }, { 0x3C99F7, "Lansentechnology AB", "LANSENTECHNOLOGY-AB" }, { 0x3C9A77, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x3C9BC6, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x3C9BD6, "Vizio, Inc", "VIZIO" }, { 0x3C9C0F, "Intel Corporate", "INTEL-CORPORATE" }, { 0x3C9D56, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3C9EC7, "SKY UK LIMITED", "SKY-UK" }, { 0x3C9F81, "Shenzhen CATIC Bit Communications Technology Co.,Ltd", "SHENZHEN-CATIC-BIT-COMMUNICATION" }, { 0x3C9FC3, "Beijing Sinead Technology Co., Ltd.", "BEIJING-SINEAD" }, { 0x3CA067, "Liteon Technology Corporation", "LITEON" }, { 0x3CA10D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3CA161, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3CA2C3, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x3CA308, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x3CA315, "Bless Information & Communications Co., Ltd", "BLESS-INFORMATION-COMMUNICATION" }, { 0x3CA31A, "Oilfind International LLC", "OILFIND" }, { 0x3CA348, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x3CA37E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3CA581, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x3CA616, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x3CA62F, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x3CA6F6, "Apple, Inc.", "APPLE" }, { 0x3CA72B, "MRV Communications (Networks) LTD", "MRV-COMMUNICATION-NETWORKS" }, { 0x3CA7AE, "zte corporation", "ZTE" }, { 0x3CA82A, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x3CA8ED, "smart light technology", "SMART-LIGHT" }, { 0x3CA916, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x3CA9F4, "Intel Corporate", "INTEL-CORPORATE" }, { 0x3CAA3F, "iKey, Ltd.", "IKEY" }, { 0x3CAB8E, "Apple, Inc.", "APPLE" }, { 0x3CAE69, "ESA Elektroschaltanlagen Grimma GmbH", "ESA-ELEKTROSCHALTANLAGEN-GRIMMA" }, { 0x3CB07E, "Arounds Intelligent Equipment Co., Ltd.", "AROUNDS-INTELLIGENT-EQUIPMENT" }, { 0x3CB15B, "Avaya Inc", "AVAYA" }, { 0x3CB17F, "Wattwatchers Pty Ld", "WATTWATCHERS-PTY-LD" }, { 0x3CB233, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x3CB53D, "HUNAN GOKE MICROELECTRONICS CO.,LTD", "HUNAN-GOKE-MICROELECTRONICS" }, { 0x3CB6B7, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x3CB72B, "PLUMgrid Inc", "PLUMGRID" }, { 0x3CB74B, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x3CB792, "Hitachi Maxell, Ltd., Optronics Division", "HITACHI-MAXELL-OPTRONICS-DIVISION" }, { 0x3CB87A, "Private", "PRIVATE" }, { 0x3CB9A6, "Belden Deutschland GmbH", "BELDEN-DEUTSCHLAND" }, { 0x3CBB73, "Shenzhen Xinguodu Technology Co., Ltd.", "SHENZHEN-XINGUODU" }, { 0x3CBBFD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3CBCD0, "zte corporation", "ZTE" }, { 0x3CBD3E, "Beijing Xiaomi Electronics Co., Ltd.", "BEIJING-XIAOMI-ELECTRONICS" }, { 0x3CBDC5, "Arcadyan Corporation", "ARCADYAN" }, { 0x3CBDD8, "LG ELECTRONICS INC", "LG-ELECTRONICS" }, { 0x3CBEE1, "NIKON CORPORATION", "NIKON" }, { 0x3CBF60, "Apple, Inc.", "APPLE" }, { 0x3CC03E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3CC079, "Shenzhen One-Nine Intelligent Electronic Science and Technology Co., Ltd", "SHENZHEN-ONE-NINE-INTELLIGENT-SCIENCE" }, { 0x3CC0C6, "d&b audiotechnik GmbH", "D-B-AUDIOTECHNIK" }, { 0x3CC12C, "AES Corporation", "AES" }, { 0x3CC1F6, "Melange Systems Pvt. Ltd.", "MELANGE-PVT" }, { 0x3CC243, "Nokia Corporation", "NOKIA" }, { 0x3CC2E1, "XINHUA CONTROL ENGINEERING CO.,LTD", "XINHUA-CONTROL-ENGINEERING" }, { 0x3CC786, "DONGGUAN HUARONG COMMUNICATION TECHNOLOGIES CO.,LTD.", "DONGGUAN-HUARONG-COMMUNICATION-TECHNOLOGIES" }, { 0x3CC99E, "Huiyang Technology Co., Ltd", "HUIYANG" }, { 0x3CCA87, "Iders Incorporated", "IDERS-INCORPORATED" }, { 0x3CCB4D, "Avikus Co., Ltd", "AVIKUS" }, { 0x3CCB7C, "TCT mobile ltd", "TCT-MOBILE" }, { 0x3CCD36, "Apple, Inc.", "APPLE" }, { 0x3CCD57, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x3CCD5A, "Technische Alternative GmbH", "TECHNISCHE-ALTERNATIVE" }, { 0x3CCD5D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3CCD93, "LG ELECTRONICS INC", "LG-ELECTRONICS" }, { 0x3CCE0D, "Shenzhen juduoping Technology Co.,Ltd", "SHENZHEN-JUDUOPING" }, { 0x3CCE15, "Mercedes-Benz USA, LLC", "MERCEDES-BENZ-USA" }, { 0x3CCE73, "Cisco Systems, Inc", "CISCO" }, { 0x3CCF5B, "ICOMM HK LIMITED", "ICOMM-HK" }, { 0x3CCFB4, "Telink Semiconductor (Shanghai) Co., Ltd.", "TELINK-SEMICONDUCTOR-SHANGHAI" }, { 0x3CD0F8, "Apple, Inc.", "APPLE" }, { 0x3CD16E, "Telepower Communication Co., Ltd", "TELEPOWER-COMMUNICATION" }, { 0x3CD2E5, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x3CD4D6, "WirelessWERX, Inc", "WIRELESSWERX" }, { 0x3CD7DA, "SK Mtek microelectronics(shenzhen)limited", "SK-MTEK-MICROELECTRONICS-SHENZHEN" }, { 0x3CD92B, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x3CD9CE, "Eclipse WiFi", "ECLIPSE-WIFI" }, { 0x3CDA2A, "zte corporation", "ZTE" }, { 0x3CDA6D, "Tiandy Technologies CO.,LTD", "TIANDY-TECHNOLOGIES" }, { 0x3CDCBC, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3CDD89, "SOMO HOLDINGS & TECH. CO.,LTD.", "SOMO-HOLDINGS-TECH" }, { 0x3CDF1E, "Cisco Systems, Inc", "CISCO" }, { 0x3CDFA9, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x3CDFBD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3CE002, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x3CE038, "Omnifi Inc.", "OMNIFI" }, { 0x3CE064, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x3CE072, "Apple, Inc.", "APPLE" }, { 0x3CE1A1, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x3CE36B, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0x3CE3E7, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x3CE441, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x3CE4B0, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x3CE5A6, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x3CE5B4, "KIDASEN INDUSTRIA E COMERCIO DE ANTENAS LTDA", "KIDASEN-INDUSTRIA-E-COMERCIO-DE-ANTENAS-LTDA" }, { 0x3CE624, "LG Display", "LG-DISPLAY" }, { 0x3CE824, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3CE90E, "Espressif Inc.", "ESPRESSIF" }, { 0x3CE9F7, "Intel Corporate", "INTEL-CORPORATE" }, { 0x3CEA4F, "2Wire Inc", "2WIRE" }, { 0x3CEAF9, "JUBIXCOLTD", "JUBIXCOLTD" }, { 0x3CEAFB, "NSE AG", "NSE" }, { 0x3CECDE, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0x3CECEF, "Super Micro Computer, Inc.", "SUPER-MICRO" }, { 0x3CEF42, "TCT mobile ltd", "TCT-MOBILE" }, { 0x3CEF8C, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0x3CF011, "Intel Corporate", "INTEL-CORPORATE" }, { 0x3CF392, "Virtualtek. Co. Ltd", "VIRTUALTEK" }, { 0x3CF4F9, "Moda-InnoChips", "MODA-INNOCHIPS" }, { 0x3CF52C, "DSPECIALISTS GmbH", "DSPECIALISTS" }, { 0x3CF591, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x3CF5CC, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x3CF652, "zte corporation", "ZTE" }, { 0x3CF692, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x3CF72A, "Nokia Corporation", "NOKIA" }, { 0x3CF748, "Shenzhen Linsn Technology Development Co.,Ltd", "SHENZHEN-LINSN-DEVELOPMENT" }, { 0x3CF7A4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x3CF7D1, "OMRON Corporation", "OMRON" }, { 0x3CF808, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3CF862, "Intel Corporate", "INTEL-CORPORATE" }, { 0x3CF9F0, "zte corporation", "ZTE" }, { 0x3CFA06, "Microsoft Corporation", "MICROSOFT" }, { 0x3CFA30, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x3CFA43, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x3CFAD3, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x3CFB5C, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x3CFB96, "Emcraft Systems LLC", "EMCRAFT" }, { 0x3CFDFE, "Intel Corporate", "INTEL-CORPORATE" }, { 0x3CFEAC, "Cisco Systems, Inc", "CISCO" }, { 0x3CFFD8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4000E0, "Derek(Shaoguan)Limited", "DEREK-SHAOGUAN" }, { 0x400107, "Arista Corp", "ARISTA" }, { 0x40017A, "Cisco Systems, Inc", "CISCO" }, { 0x4001C6, "3COM EUROPE LTD", "3COM" }, { 0x40040C, "A&T", "A-T" }, { 0x400589, "T-Mobile, USA", "T-MOBILE-USA" }, { 0x400634, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x4006A0, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x4006D5, "Cisco Systems, Inc", "CISCO" }, { 0x4007C0, "Railtec Systems GmbH", "RAILTEC" }, { 0x400D10, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x400E67, "Tremol Ltd.", "TREMOL" }, { 0x400E85, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x400EF3, "zte corporation", "ZTE" }, { 0x400FC1, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x401175, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x4011C3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x4011DC, "Sonance", "SONANCE" }, { 0x4012E4, "Compass-EOS", "COMPASS-EOS" }, { 0x4013D9, "Global ES", "GLOBAL-ES" }, { 0x401482, "Cisco Systems, Inc", "CISCO" }, { 0x4014AD, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x401597, "Protect America, Inc.", "PROTECT-AMERICA" }, { 0x40163B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x40167E, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x40169F, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x4016FA, "EKM Metering", "EKM-METERING" }, { 0x4017E2, "INTAI TECHNOLOGY CORP.", "INTAI" }, { 0x4017F6, "TKH SECURITY,S.L.U.", "TKH-SECURITY-S-L-U" }, { 0x4018B1, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x4018D7, "Smartronix, Inc.", "SMARTRONIX" }, { 0x401920, "Movon Corporation", "MOVON" }, { 0x401A58, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x401B5F, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0x401C83, "Intel Corporate", "INTEL-CORPORATE" }, { 0x401D59, "Biometric Associates, LP", "BIOMETRIC-ASSOCIATES-LP" }, { 0x402230, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x4022D8, "Espressif Inc.", "ESPRESSIF" }, { 0x4022ED, "Digital Projection Ltd", "DIGITAL-PROJECTION" }, { 0x402343, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0x4024B2, "Sichuan AI-Link Technology Co., Ltd.", "SICHUAN-AI-LINK" }, { 0x4025C2, "Intel Corporate", "INTEL-CORPORATE" }, { 0x402619, "Apple, Inc.", "APPLE" }, { 0x40270B, "Mobileeco Co., Ltd", "MOBILEECO" }, { 0x402814, "RFI Engineering", "RFI-ENGINEERING" }, { 0x402A8F, "Shanghai High-Flying Electronics Technology Co., Ltd", "SHANGHAI-HIGH-FLYING-ELECTRONICS" }, { 0x402B50, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x402B69, "Kumho Electric Inc.", "KUMHO-ELECTRIC" }, { 0x402BA1, "Sony Corporation", "SONY" }, { 0x402C76, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x402CF4, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x402E28, "MiXTelematics", "MIXTELEMATICS" }, { 0x402E71, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x402F86, "LG Innotek", "LG-INNOTEK" }, { 0x403004, "Apple, Inc.", "APPLE" }, { 0x403067, "Conlog (Pty) Ltd", "CONLOG-PTY" }, { 0x40313C, "XIAOMI Electronics,CO.,LTD", "XIAOMI-ELECTRONICS" }, { 0x40329D, "Union Image Co.,Ltd", "UNION-IMAGE" }, { 0x403306, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x40331A, "Apple, Inc.", "APPLE" }, { 0x40336C, "Godrej & Boyce Mfg. co. ltd", "GODREJ-BOYCE-MFG" }, { 0x4035E6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x4037AD, "Macro Image Technology, Inc.", "MACRO-IMAGE" }, { 0x403B7B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x403CFC, "Apple, Inc.", "APPLE" }, { 0x403DEC, "HUMAX Co., Ltd.", "HUMAX" }, { 0x403F8C, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x404022, "ZIV", "ZIV" }, { 0x404028, "ZIV", "ZIV" }, { 0x40406B, "Icomera", "ICOMERA" }, { 0x40406C, "Icomera", "ICOMERA" }, { 0x4040A7, "Sony Corporation", "SONY" }, { 0x404101, "Rockwell Automation", "ROCKWELL-AUTOMATION" }, { 0x40410D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x404229, "Layer3TV, Inc", "LAYER3TV" }, { 0x404244, "Cisco Systems, Inc", "CISCO" }, { 0x4044FD, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x4045C4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4045DA, "Spreadtrum Communications (Shanghai) Co., Ltd.", "SPREADTRUM-COMMUNICATION-SHANGHAI" }, { 0x40475E, "eero inc.", "EERO" }, { 0x40476A, "Astro Gaming", "ASTRO-GAMING" }, { 0x4048FD, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x40490F, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x40498A, "Synapticon GmbH", "SYNAPTICON" }, { 0x404A03, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x404A18, "Addrek Smart Solutions", "ADDREK-SMART-SOLUTIONS" }, { 0x404AD4, "Widex A/S", "WIDEX-A/S" }, { 0x404C77, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x404CCA, "Espressif Inc.", "ESPRESSIF" }, { 0x404D7F, "Apple, Inc.", "APPLE" }, { 0x404D8E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x404E36, "HTC Corporation", "HTC" }, { 0x404EEB, "Higher Way Electronic Co., Ltd.", "HIGHER-WAY" }, { 0x404F42, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4050B5, "Shenzhen New Species Technology Co., Ltd.", "SHENZHEN-NEW-SPECIES" }, { 0x4050E0, "Milton Security Group LLC", "MILTON-SECURITY-GROUP" }, { 0x40516C, "Grandex International Corporation", "GRANDEX" }, { 0x40520D, "Pico Technology", "PICO" }, { 0x4054E4, "Wearsafe Labs Inc", "WEARSAFE-LABS" }, { 0x405539, "Cisco Systems, Inc", "CISCO" }, { 0x405582, "Nokia", "NOKIA" }, { 0x40560C, "In Home Displays Ltd", "IN-HOME-DISPLAYS" }, { 0x40562D, "Smartron India Pvt ltd", "SMARTRON-INDIA-PVT" }, { 0x405662, "GuoTengShengHua Electronics LTD.", "GUOTENGSHENGHUA-ELECTRONICS" }, { 0x405899, "Logitech Far East", "LOGITECH-FAR-EAST" }, { 0x405A9B, "ANOVO", "ANOVO" }, { 0x405BD8, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0x405CFD, "Dell Inc.", "DELL" }, { 0x405D82, "NETGEAR", "NETGEAR" }, { 0x405EE1, "Shenzhen H&T Intelligent Control Co.,Ltd.", "SHENZHEN-H-T-INTELLIGENT-CONTROL" }, { 0x405EF6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x405F7D, "TCT mobile ltd", "TCT-MOBILE" }, { 0x405FBE, "RIM", "RIM" }, { 0x405FC2, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x40605A, "Hawkeye Tech Co. Ltd", "HAWKEYE-TECH" }, { 0x406186, "MICRO-STAR INT'L CO.,LTD", "MICRO-STAR" }, { 0x40618E, "Stella-Green Co", "STELLA-GREEN" }, { 0x406231, "GIFA", "GIFA" }, { 0x406234, "Telink Semiconductor (Shanghai) Co., Ltd.", "TELINK-SEMICONDUCTOR-SHANGHAI" }, { 0x4062B6, "Tele system communication", "TELE-SYSTEM-COMMUNICATION" }, { 0x4062EA, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x4064A4, "THE FURUKAWA ELECTRIC CO., LTD", "THE-FURUKAWA-ELECTRIC" }, { 0x4065A3, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x40667A, "mediola - connected living AG", "MEDIOLA-CONNECTED-LIVING" }, { 0x40679B, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x406826, "Thales UK Limited", "THALES-UK" }, { 0x406A8E, "Hangzhou Puwell OE Tech Ltd.", "HANGZHOU-PUWELL-OE-TECH" }, { 0x406AAB, "RIM", "RIM" }, { 0x406C8F, "Apple, Inc.", "APPLE" }, { 0x406F2A, "BlackBerry RTS", "BLACKBERRY-RTS" }, { 0x407009, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x40704A, "Power Idea Technology Limited", "POWER-IDEA" }, { 0x407074, "Life Technology (China) Co., Ltd", "LIFE-CHINA" }, { 0x4070F5, "Apple, Inc.", "APPLE" }, { 0x407183, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x407496, "aFUN TECHNOLOGY INC.", "AFUN" }, { 0x4074E0, "Intel Corporate", "INTEL-CORPORATE" }, { 0x4075C3, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x4076A9, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x4077A9, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x40786A, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x407875, "IMBEL - Industria de Material Belico do Brasil", "IMBEL-INDUSTRIA-DE-MATERIAL-BELICO-DO-BRASIL" }, { 0x407912, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x407A80, "Nokia Corporation", "NOKIA" }, { 0x407B1B, "Mettle Networks Inc.", "METTLE-NETWORKS" }, { 0x407C7D, "Nokia", "NOKIA" }, { 0x407D0F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x407F5F, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x407FE0, "Glory Star Technics (ShenZhen) Limited", "GLORY-STAR-TECHNICS-SHENZHEN" }, { 0x408256, "Continental Automotive GmbH", "CONTINENTAL-AUTOMOTIVE" }, { 0x40831D, "Apple, Inc.", "APPLE" }, { 0x4083DE, "Zebra Technologies Inc", "ZEBRA-TECHNOLOGIES" }, { 0x408432, "Microchip Technology Inc.", "MICROCHIP" }, { 0x408493, "Clavister AB", "CLAVISTER-AB" }, { 0x40862E, "JDM MOBILE INTERNET SOLUTION CO., LTD.", "JDM-MOBILE-INTERNET-SOLUTION" }, { 0x408805, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x40882F, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x4088E0, "Beijing Ereneben Information Technology Limited Shenzhen Branch", "BEIJING-ERENEBEN-INFORMATION-SHENZHEN-BRANCH" }, { 0x4089A8, "WiredIQ, LLC", "WIREDIQ" }, { 0x408A9A, "TITENG CO., Ltd.", "TITENG" }, { 0x408B07, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x408BF6, "Shenzhen TCL New Technology Co., Ltd", "SHENZHEN-TCL-NEW" }, { 0x408C1F, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x408C4C, "Shenzhen MiaoMing Intelligent Technology Co.,Ltd", "SHENZHEN-MIAOMING-INTELLIGENT" }, { 0x408D5C, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x408E2C, "Microsoft Corporation", "MICROSOFT" }, { 0x408EDF, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x408EF6, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0x408F9D, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x409151, "Espressif Inc.", "ESPRESSIF" }, { 0x40921A, "Apple, Inc.", "APPLE" }, { 0x409505, "ACOINFO TECHNOLOGY CO.,LTD", "ACOINFO" }, { 0x409558, "Aisino Corporation", "AISINO" }, { 0x4095BD, "NTmore.Co.,Ltd", "NTMORE" }, { 0x4097D1, "BK Electronics cc", "BK-ELECTRONICS-CC" }, { 0x40984C, "Casacom Solutions AG", "CASACOM-SOLUTIONS" }, { 0x40984E, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x40987B, "Aisino Corporation", "AISINO" }, { 0x4098AD, "Apple, Inc.", "APPLE" }, { 0x409922, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x409A30, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x409B0D, "Shenzhen Yourf Kwan Industrial Co., Ltd", "SHENZHEN-YOURF-KWAN-INDUSTRIAL" }, { 0x409B21, "Nokia", "NOKIA" }, { 0x409BCD, "D-Link International", "D-LINK" }, { 0x409C28, "Apple, Inc.", "APPLE" }, { 0x409CA6, "Curvalux", "CURVALUX" }, { 0x409F38, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x409F87, "Jide Technology (Hong Kong) Limited", "JIDE-HONG-KONG" }, { 0x409FC7, "BAEKCHUN I&C Co., Ltd.", "BAEKCHUN-I-C" }, { 0x40A108, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0x40A2DB, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x40A3CC, "Intel Corporate", "INTEL-CORPORATE" }, { 0x40A53B, "Nokia", "NOKIA" }, { 0x40A5EF, "Shenzhen Four Seas Global Link Network Technology Co., Ltd.", "SHENZHEN-FOUR-SEAS-GLOBAL-LINK-NETWORK" }, { 0x40A677, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x40A6A4, "PassivSystems Ltd", "PASSIVSYSTEMS" }, { 0x40A6B7, "Intel Corporate", "INTEL-CORPORATE" }, { 0x40A6D9, "Apple, Inc.", "APPLE" }, { 0x40A6E8, "Cisco Systems, Inc", "CISCO" }, { 0x40A8F0, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x40A93F, "Pivotal Commware, Inc.", "PIVOTAL-COMMWARE" }, { 0x40A9CF, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x40AA56, "China Dragon Technology Limited", "CHINA-DRAGON" }, { 0x40AC8D, "Data Management, Inc.", "DATA-MANAGEMENT" }, { 0x40ACBF, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x40B02F, "Miele & Cie. KG", "MIELE-CIE" }, { 0x40B034, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x40B076, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x40B0A1, "VALCOM CO.,LTD.", "VALCOM" }, { 0x40B0FA, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x40B15C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x40B2C8, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x40B30E, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x40B31E, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x40B395, "Apple, Inc.", "APPLE" }, { 0x40B3CD, "Chiyoda Electronics Co.,Ltd.", "CHIYODA-ELECTRONICS" }, { 0x40B3FC, "Logital Co. Limited", "LOGITAL" }, { 0x40B4CD, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x40B4F0, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x40B5C1, "Cisco Systems, Inc", "CISCO" }, { 0x40B607, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x40B688, "LEGIC Identsystems AG", "LEGIC-IDENTSYSTEMS" }, { 0x40B6B1, "SUNGSAM CO,.Ltd", "SUNGSAM" }, { 0x40B6E7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x40B7F3, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x40B7FC, "Phyplus Microelectronics Limited", "PHYPLUS-MICROELECTRONICS" }, { 0x40B837, "Sony Corporation", "SONY" }, { 0x40B89A, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x40B93C, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x40BA61, "ARIMA Communications Corp.", "ARIMA-COMMUNICATION" }, { 0x40BC60, "Apple, Inc.", "APPLE" }, { 0x40BC68, "Wuhan Funshion Online Technologies Co.,Ltd", "WUHAN-FUNSHION-ONLINE-TECHNOLOGIES" }, { 0x40BC73, "Cronoplast S.L.", "CRONOPLAST" }, { 0x40BC8B, "itelio GmbH", "ITELIO" }, { 0x40BD32, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x40BD9E, "Physio-Control, Inc", "PHYSIO-CONTROL" }, { 0x40BEEE, "Shenzhen Yunding Information Technology Co.,Ltd", "SHENZHEN-YUNDING-INFORMATION" }, { 0x40BF17, "Digistar Telecom. SA", "DIGISTAR-TELECOM" }, { 0x40C1F6, "Shenzhen Jingxun Technology Co., Ltd.", "SHENZHEN-JINGXUN" }, { 0x40C245, "Shenzhen Hexicom Technology Co., Ltd.", "SHENZHEN-HEXICOM" }, { 0x40C2BA, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x40C3BC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x40C3C6, "SnapRoute", "SNAPROUTE" }, { 0x40C48C, "N-iTUS CO.,LTD.", "N-ITUS" }, { 0x40C4D6, "ChongQing Camyu Technology Development Co.,Ltd.", "CHONGQING-CAMYU-DEVELOPMENT" }, { 0x40C62A, "Shanghai Jing Ren Electronic Technology Co., Ltd.", "SHANGHAI-JING-REN" }, { 0x40C711, "Apple, Inc.", "APPLE" }, { 0x40C729, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x40C7C9, "Naviit Inc.", "NAVIIT" }, { 0x40C81F, "Shenzhen Xinguodu Technology Co., Ltd.", "SHENZHEN-XINGUODU" }, { 0x40C8CB, "AM Telecom co., Ltd.", "AM-TELECOM" }, { 0x40CA63, "Seongji Industry Company", "SEONGJI-INDUSTRY-COMPANY" }, { 0x40CBA8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x40CBC0, "Apple, Inc.", "APPLE" }, { 0x40CD3A, "Z3 Technology", "Z3" }, { 0x40CD7A, "Qingdao Hisense Communications Co.,Ltd.", "QINGDAO-HISENSE-COMMUNICATION" }, { 0x40CE24, "Cisco Systems, Inc", "CISCO" }, { 0x40D25F, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x40D28A, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x40D32D, "Apple, Inc.", "APPLE" }, { 0x40D357, "Ison Technology Co., Ltd.", "ISON" }, { 0x40D3AE, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x40D40E, "Biodata Ltd", "BIODATA" }, { 0x40D4BD, "SK Networks Service CO., LTD.", "SK-NETWORKS-SERVICE" }, { 0x40D4F6, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x40D559, "MICRO S.E.R.I.", "MICRO-S-E-R-I" }, { 0x40D563, "HANA Electronics", "HANA-ELECTRONICS" }, { 0x40D63C, "Equitech Industrial(DongGuan)Co.,Ltd", "EQUITECH-INDUSTRIAL-DONGGUAN" }, { 0x40D855, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x40D95A, "AMPAK Technology,Inc.", "AMPAK" }, { 0x40DC9D, "HAJEN", "HAJEN" }, { 0x40DCA5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x40DDD1, "Beautiful Card Corporation", "BEAUTIFUL-CARD" }, { 0x40DE17, "Shenzhen Lanfeng Times Industrial Co.,Ltd.", "SHENZHEN-LANFENG-TIMES-INDUSTRIAL" }, { 0x40DEAD, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x40DF02, "LINE BIZ Plus", "LINE-BIZ-PLUS" }, { 0x40E11C, "shenzhen Cloud High Communication Technology Co.,Ltd", "SHENZHEN-CLOUD-HIGH-COMMUNICATION" }, { 0x40E171, "Jiangsu Huitong Group Co.,Ltd.", "JIANGSU-HUITONG-GROUP" }, { 0x40E1E4, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x40E230, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x40E3D6, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x40E64B, "Apple, Inc.", "APPLE" }, { 0x40E730, "DEY Storage Systems, Inc.", "DEY-STORAGE" }, { 0x40E793, "Shenzhen Siviton Technology Co.,Ltd", "SHENZHEN-SIVITON" }, { 0x40E99B, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x40EACE, "FOUNDER BROADBAND NETWORK SERVICE CO.,LTD", "FOUNDER-BROADBAND-NETWORK-SERVICE" }, { 0x40EC99, "Intel Corporate", "INTEL-CORPORATE" }, { 0x40ECF8, "Siemens AG", "SIEMENS" }, { 0x40ED00, "TP-Link Corporation Limited", "TP-LINK" }, { 0x40ED98, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x40EDCF, "Apple, Inc.", "APPLE" }, { 0x40EE15, "Zioncom Electronics (Shenzhen) Ltd.", "ZIONCOM-ELECTRONICS-SHENZHEN" }, { 0x40EEDD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x40EF4C, "Fihonest communication co.,Ltd", "FIHONEST-COMMUNICATION" }, { 0x40F02F, "Liteon Technology Corporation", "LITEON" }, { 0x40F04E, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x40F078, "Cisco Systems, Inc", "CISCO" }, { 0x40F14C, "ISE Europe SPRL", "ISE-EUROPE-SPRL" }, { 0x40F201, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x40F21C, "DZS Inc.", "DZS" }, { 0x40F2E9, "IBM", "IBM" }, { 0x40F308, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x40F385, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x40F3B0, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x40F407, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x40F413, "Rubezh", "RUBEZH" }, { 0x40F420, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x40F4EC, "Cisco Systems, Inc", "CISCO" }, { 0x40F4FD, "UNION MAN TECHNOLOGY CO.,LTD", "UNION-MAN" }, { 0x40F520, "Espressif Inc.", "ESPRESSIF" }, { 0x40F52E, "Leica Microsystems (Schweiz) AG", "LEICA-MICROSYSTEMS-SCHWEIZ" }, { 0x40F6BC, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x40F8DF, "CANON INC.", "CANON" }, { 0x40F946, "Apple, Inc.", "APPLE" }, { 0x40F9D5, "Tecore Networks", "TECORE-NETWORKS" }, { 0x40FA7F, "Preh Car Connect GmbH", "PREH-CAR-CONNECT" }, { 0x40FAFE, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x40FC89, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x40FDF3, "AMPAK Technology,Inc.", "AMPAK" }, { 0x40FE0D, "MAXIO", "MAXIO" }, { 0x40FE95, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x40FF40, "GloquadTech", "GLOQUADTECH" }, { 0x440010, "Apple, Inc.", "APPLE" }, { 0x440049, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x44004D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4401BB, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x44032C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x440377, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x4403A7, "Cisco Systems, Inc", "CISCO" }, { 0x440444, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x44053F, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x4405E8, "twareLAB", "TWARELAB" }, { 0x44070B, "Google, Inc.", "GOOGLE" }, { 0x4409B8, "Salcomp (Shenzhen) CO., LTD.", "SALCOMP-SHENZHEN" }, { 0x440CEE, "Robert Bosch Elektronikai Kft.", "ROBERT-BOSCH-ELEKTRONIKAI-KFT" }, { 0x440CFD, "NetMan Co., Ltd.", "NETMAN" }, { 0x4410FE, "Huizhou Foryou General Electronics Co., Ltd.", "HUIZHOU-FORYOU-GENERAL-ELECTRONICS" }, { 0x441102, "EDMI Europe Ltd", "EDMI-EUROPE" }, { 0x4411C2, "Telegartner Karl Gartner GmbH", "TELEGARTNER-KARL-GARTNER" }, { 0x441244, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x441319, "WKK TECHNOLOGY LTD.", "WKK" }, { 0x4413D0, "zte corporation", "ZTE" }, { 0x441441, "AudioControl Inc.", "AUDIOCONTROL" }, { 0x441622, "Microsoft Corporation", "MICROSOFT" }, { 0x4416FA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x441793, "Espressif Inc.", "ESPRESSIF" }, { 0x441847, "HUNAN SCROWN ELECTRONIC INFORMATION TECH.CO.,LTD", "HUNAN-SCROWN-INFORMATION-TECH" }, { 0x44184F, "Fitview", "FITVIEW" }, { 0x4418FD, "Apple, Inc.", "APPLE" }, { 0x4419B6, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x441A4C, "xFusion Digital Technologies Co.,Ltd.", "XFUSION-DIGITAL-TECHNOLOGIES" }, { 0x441AAC, "Elektrik Uretim AS EOS", "ELEKTRIK-URETIM-AS-EOS" }, { 0x441AFA, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x441B88, "Apple, Inc.", "APPLE" }, { 0x441C12, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x441C7F, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x441CA8, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x441E91, "ARVIDA Intelligent Electronics Technology Co.,Ltd.", "ARVIDA-INTELLIGENT-ELECTRONICS" }, { 0x441E98, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x441EA1, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x442063, "Continental Automotive Technologies GmbH", "CONTINENTAL-AUTOMOTIVE-TECHNOLOGIES" }, { 0x44227C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x442295, "China Mobile Iot Limited company", "CHINA-MOBILE-IOT-COMPANY" }, { 0x4422F1, "S.FAC, INC", "S-FAC" }, { 0x44237C, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x4423AA, "Farmage Co., Ltd.", "FARMAGE" }, { 0x4425BB, "Bamboo Entertainment Corporation", "BAMBOO-ENTERTAINMENT" }, { 0x44272E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x4427F3, "70mai Co.,Ltd.", "70MAI" }, { 0x4428A3, "Jiangsu fulian Communication Technology Co., Ltd.", "JIANGSU-FULIAN-COMMUNICATION" }, { 0x44291E, "AltoBeam (China) Inc.", "ALTOBEAM-CHINA" }, { 0x442938, "NietZsche enterprise Co.Ltd.", "NIETZSCHE" }, { 0x442A60, "Apple, Inc.", "APPLE" }, { 0x442AFF, "E3 Technology, Inc.", "E3" }, { 0x442B03, "Cisco Systems, Inc", "CISCO" }, { 0x442C05, "AMPAK Technology, Inc.", "AMPAK" }, { 0x443192, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x44322A, "Avaya Inc", "AVAYA" }, { 0x443262, "zte corporation", "ZTE" }, { 0x4432C2, "GOAL Co., Ltd.", "GOAL" }, { 0x4432C8, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x44334C, "Shenzhen Bilian electronic CO.,LTD", "SHENZHEN-BILIAN" }, { 0x44348F, "MXT INDUSTRIAL LTDA", "MXT-INDUSTRIAL-LTDA" }, { 0x4434A7, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x44356F, "Neterix Ltd", "NETERIX" }, { 0x443583, "Apple, Inc.", "APPLE" }, { 0x443708, "MRV Comunications", "MRV-COMUNICATIONS" }, { 0x443719, "2 Save Energy Ltd", "2-SAVE-ENERGY" }, { 0x44376F, "Young Electric Sign Co", "YOUNG-ELECTRIC-SIGN" }, { 0x4437E6, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x443839, "Cumulus Networks, inc", "CUMULUS-NETWORKS" }, { 0x4439C4, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x443B32, "Intelbras", "INTELBRAS" }, { 0x443C88, "FICOSA MAROC INTERNATIONAL", "FICOSA-MAROC" }, { 0x443C9C, "Pintsch GmbH", "PINTSCH" }, { 0x443D21, "Nuvolt", "NUVOLT" }, { 0x443D54, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x443E07, "Electrolux", "ELECTROLUX" }, { 0x443EB2, "DEOTRON Co., LTD.", "DEOTRON" }, { 0x4441F0, "zte corporation", "ZTE" }, { 0x444201, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x44422F, "TESTOP CO.,LTD.", "TESTOP" }, { 0x444450, "OttoQ", "OTTOQ" }, { 0x44456F, "SHENZHEN ONEGA TECHNOLOGY CO.,LTD", "SHENZHEN-ONEGA" }, { 0x444687, "Realme Chongqing MobileTelecommunications Corp Ltd", "REALME-CHONGQING-MOBILETELECOMMUNICATIONS" }, { 0x4447CC, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x444891, "HDMI Licensing, LLC", "HDMI-LICENSING" }, { 0x4448B9, "MitraStar Technology Corp.", "MITRASTAR" }, { 0x4448C1, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x4448FF, "Qingdao Haier Technology Co.,Ltd", "QINGDAO-HAIER" }, { 0x444988, "Intel Corporate", "INTEL-CORPORATE" }, { 0x444A65, "Silverflare Ltd.", "SILVERFLARE" }, { 0x444AB0, "Zhejiang Moorgen Intelligence Technology Co., Ltd", "ZHEJIANG-MOORGEN-INTELLIGENCE" }, { 0x444AD6, "Shenzhen Rinocloud Technology Co.,Ltd.", "SHENZHEN-RINOCLOUD" }, { 0x444ADB, "Apple, Inc.", "APPLE" }, { 0x444B5D, "GE Healthcare", "GE-HEALTHCARE" }, { 0x444B7E, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x444C0C, "Apple, Inc.", "APPLE" }, { 0x444CA8, "Arista Networks", "ARISTA-NETWORKS" }, { 0x444E1A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x444E6D, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x444F5E, "Pan Studios Co.,Ltd.", "PAN-STUDIOS" }, { 0x444F8E, "WiZ", "WIZ" }, { 0x4451DB, "Raytheon BBN Technologies", "RAYTHEON-BBN-TECHNOLOGIES" }, { 0x4454C0, "Thompson Aerospace", "THOMPSON-AEROSPACE" }, { 0x4455B1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4455C4, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x44568D, "PNC Technologies Co., Ltd.", "PNC-TECHNOLOGIES" }, { 0x4456B7, "Spawn Labs, Inc", "SPAWN-LABS" }, { 0x4456E2, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x445829, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x445925, "Square Inc.", "SQUARE" }, { 0x445943, "zte corporation", "ZTE" }, { 0x44599F, "Criticare Systems, Inc", "CRITICARE" }, { 0x4459E3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x445ADF, "MIKAMI & CO., LTD.", "MIKAMI" }, { 0x445BED, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x445CE9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x445D5E, "SHENZHEN Coolkit Technology CO.,LTD", "SHENZHEN-COOLKIT" }, { 0x445ECD, "Razer Inc", "RAZER" }, { 0x445EF3, "Tonalite Holding B.V.", "TONALITE-HOLDING-B-V" }, { 0x445F7A, "Shihlin Electric & Engineering Corp.", "SHIHLIN-ELECTRIC-ENGINEERING" }, { 0x445F8C, "Intercel Group Limited", "INTERCEL-GROUP" }, { 0x446132, "ecobee inc", "ECOBEE" }, { 0x44619C, "FONsystem co. ltd.", "FONSYSTEM" }, { 0x446246, "Comat AG", "COMAT" }, { 0x446370, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x44643C, "Cisco Systems, Inc", "CISCO" }, { 0x44650D, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x44656A, "Mega Video Electronic(HK) Industry Co., Ltd", "MEGA-VIDEO-HK-INDUSTRY" }, { 0x44657F, "Calix Inc.", "CALIX" }, { 0x44666E, "IP-LINE", "IP-LINE" }, { 0x4466FC, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x446747, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x446752, "Wistron INFOCOMM (Zhongshan) CORPORATION", "WISTRON-INFOCOMM-ZHONGSHAN" }, { 0x446755, "Orbit Irrigation", "ORBIT-IRRIGATION" }, { 0x44680C, "Wacom Co.,Ltd.", "WACOM" }, { 0x4468AB, "JUIN COMPANY, LIMITED", "JUIN-COMPANY" }, { 0x446A2E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x446AB7, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x446C24, "Reallin Electronic Co.,Ltd", "REALLIN" }, { 0x446D57, "Liteon Technology Corporation", "LITEON" }, { 0x446D6C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x446D7F, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x446EE5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x446FD8, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x446FF8, "Dyson Limited", "DYSON" }, { 0x44700B, "IFFU", "IFFU" }, { 0x447098, "MING HONG TECHNOLOGY (SHEN ZHEN) LIMITED", "MING-HONG-SHEN-ZHEN" }, { 0x447147, "Beijing Xiaomi Electronics Co.,Ltd", "BEIJING-XIAOMI-ELECTRONICS" }, { 0x4473D6, "Logitech", "LOGITECH" }, { 0x44746C, "Sony Corporation", "SONY" }, { 0x447654, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x44783E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x447BBB, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x447BC4, "DualShine Technology(SZ)Co.,Ltd", "DUALSHINE-SZ" }, { 0x447C7F, "Innolight Technology Corporation", "INNOLIGHT" }, { 0x447DA5, "VTION INFORMATION TECHNOLOGY (FUJIAN) CO.,LTD", "VTION-INFORMATION-FUJIAN" }, { 0x447E76, "Trek Technology (S) Pte Ltd", "TREK-S-PTE" }, { 0x447E95, "Alpha and Omega, Inc", "ALPHA-AND-OMEGA" }, { 0x447F77, "Connected Home", "CONNECTED-HOME" }, { 0x4480EB, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x4482E5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x448312, "Star-Net", "STAR-NET" }, { 0x448500, "Intel Corporate", "INTEL-CORPORATE" }, { 0x448502, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x4486C1, "Siemens Low Voltage & Products", "SIEMENS-LOW-VOLTAGE-PRODUCTS" }, { 0x448723, "HOYA SERVICE CORPORATION", "HOYA-SERVICE" }, { 0x4487DB, "Tymphany Acoustic Technology (Huizhou) Co., Ltd.", "TYMPHANY-ACOUSTIC-HUIZHOU" }, { 0x4487FC, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x448816, "Cisco Systems, Inc", "CISCO" }, { 0x4488CB, "Camco Technologies NV", "CAMCO-TECHNOLOGIES-NV" }, { 0x448A5B, "Micro-Star INT'L CO., LTD.", "MICRO-STAR" }, { 0x448C00, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x448C52, "KTIS CO., Ltd", "KTIS" }, { 0x448CAB, "Beijing Flitlink Vientiane Technology Co., LTD", "BEIJING-FLITLINK-VIENTIANE" }, { 0x448DBF, "Rhino Mobility LLC", "RHINO-MOBILITY" }, { 0x448E12, "DT Research, Inc.", "DT-RESEARCH" }, { 0x448E81, "VIG", "VIG" }, { 0x448EEC, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x448F17, "Samsung Electronics Co., Ltd. ARTIK", "SAMSUNG-ELECTRONICS-ARTIK" }, { 0x4490BB, "Apple, Inc.", "APPLE" }, { 0x449160, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x44917C, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x4491DB, "Shanghai Huaqin Telecom Technology Co.,Ltd", "SHANGHAI-HUAQIN-TELECOM" }, { 0x4494FC, "NETGEAR", "NETGEAR" }, { 0x44953B, "RLTech India Private Limited", "RLTECH-INDIA-PRIVATE" }, { 0x4495FA, "Qingdao Santong Digital Technology Co.Ltd", "QINGDAO-SANTONG-DIGITAL" }, { 0x44962B, "Aidon Oy", "AIDON-OY" }, { 0x44975A, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0x449B78, "The Now Factory", "THE-NOW-FACTORY" }, { 0x449BC1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x449CB5, "Alcomp, Inc", "ALCOMP" }, { 0x449EF9, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x449F46, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x449F7F, "DataCore Software Corporation", "DATACORE-SOFTWARE" }, { 0x44A191, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x44A3C7, "zte corporation", "ZTE" }, { 0x44A42D, "TCT mobile ltd", "TCT-MOBILE" }, { 0x44A466, "GROUPE LDLC", "GROUPE-LDLC" }, { 0x44A54E, "Qorvo International Pte. Ltd.", "QORVO-PTE" }, { 0x44A56E, "NETGEAR", "NETGEAR" }, { 0x44A61E, "INGRAM MICRO SERVICES", "INGRAM-MICRO-SERVICES" }, { 0x44A642, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x44A689, "PROMAX ELECTRONICA SA", "PROMAX-ELECTRONICA" }, { 0x44A6E5, "THINKING TECHNOLOGY CO.,LTD", "THINKING" }, { 0x44A7CF, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x44A842, "Dell Inc.", "DELL" }, { 0x44A8C2, "SEWOO TECH CO., LTD", "SEWOO-TECH" }, { 0x44A8FC, "Apple, Inc.", "APPLE" }, { 0x44A92C, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x44AA27, "udworks Co., Ltd.", "UDWORKS" }, { 0x44AA50, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x44AAE8, "Nanotec Electronic GmbH & Co. KG", "NANOTEC" }, { 0x44AAF5, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x44AD19, "XINGFEI (H.K)LIMITED", "XINGFEI-H-K" }, { 0x44ADB1, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x44ADD9, "Cisco Systems, Inc", "CISCO" }, { 0x44AE25, "Cisco Systems, Inc", "CISCO" }, { 0x44AE44, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x44AEAB, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x44AF28, "Intel Corporate", "INTEL-CORPORATE" }, { 0x44B295, "Sichuan AI-Link Technology Co., Ltd.", "SICHUANAI-LINK" }, { 0x44B32D, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x44B382, "Kuang-chi Institute of Advanced Technology", "KUANG-CHI-INSTITUTE-OF-ADVANCED" }, { 0x44B412, "SIUS AG", "SIUS" }, { 0x44B433, "tide.co.,ltd", "TIDE" }, { 0x44B462, "Flextronics Tech.(Ind) Pvt Ltd", "FLEXTRONICS-TECH-IND-PVT" }, { 0x44B4B2, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x44B59C, "Tenet Networks Private Limited", "TENET-NETWORKS-PRIVATE" }, { 0x44B6BE, "Cisco Systems, Inc", "CISCO" }, { 0x44B7D0, "Microchip Technology Inc.", "MICROCHIP" }, { 0x44B994, "Douglas Lighting Controls", "DOUGLAS-LIGHTING-CONTROLS" }, { 0x44BA46, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x44BB3B, "Google, Inc.", "GOOGLE" }, { 0x44BDDE, "BHTC GmbH", "BHTC" }, { 0x44BFE3, "Shenzhen Longtech Electronics Co.,Ltd", "SHENZHEN-LONGTECH-ELECTRONICS" }, { 0x44C15C, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x44C233, "Guangzhou Comet Technology Development Co.Ltd", "GUANGZHOU-COMET-DEVELOPMENT" }, { 0x44C306, "SIFROM Inc.", "SIFROM" }, { 0x44C346, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x44C39B, "OOO RUBEZH NPO", "OOO-RUBEZH-NPO" }, { 0x44C4A9, "Opticom Communication, LLC", "OPTICOM-COMMUNICATION" }, { 0x44C56F, "NGN Easy Satfinder (Tianjin) Electronic Co., Ltd", "NGN-EASY-SATFINDER-TIANJIN" }, { 0x44C65D, "Apple, Inc.", "APPLE" }, { 0x44C69B, "Wuhan Feng Tian Information Network CO.,LTD", "WUHAN-FENG-TIAN-INFORMATION-NETWORK" }, { 0x44C7FC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x44C874, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x44C9A2, "Greenwald Industries", "GREENWALD-INDUSTRIES" }, { 0x44CB8B, "LG Innotek", "LG-INNOTEK" }, { 0x44CD0E, "FLEXTRONICS MANUFACTURING(ZHUHAI)CO.,LTD.", "FLEXTRONICS-MANUFACTURING-ZHUHAI" }, { 0x44CE3A, "Jiangsu Huacun Electronic Technology Co., Ltd.", "JIANGSU-HUACUN" }, { 0x44CE7D, "SFR", "SFR" }, { 0x44D15E, "Shanghai Kingto Information Technology Ltd", "SHANGHAI-KINGTO-INFORMATION" }, { 0x44D1FA, "Shenzhen Yunlink Technology Co., Ltd", "SHENZHEN-YUNLINK" }, { 0x44D244, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0x44D267, "Snorble", "SNORBLE" }, { 0x44D2CA, "Anvia TV Oy", "ANVIA-TV-OY" }, { 0x44D3AD, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0x44D3CA, "Cisco Systems, Inc", "CISCO" }, { 0x44D437, "Inteno Broadband Technology AB", "INTENO-BROADBAND-AB" }, { 0x44D453, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x44D454, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x44D4E0, "Sony Corporation", "SONY" }, { 0x44D506, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x44D5A5, "AddOn Computer", "ADDON" }, { 0x44D5C1, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x44D5CC, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x44D5F2, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x44D63D, "Talari Networks", "TALARI-NETWORKS" }, { 0x44D6E1, "Snuza International Pty. Ltd.", "SNUZA-PTY" }, { 0x44D77E, "Robert Bosch GmbH", "ROBERT-BOSCH" }, { 0x44D791, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x44D832, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x44D878, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x44D884, "Apple, Inc.", "APPLE" }, { 0x44D9E7, "Ubiquiti Inc", "UBIQUITI" }, { 0x44DA30, "Apple, Inc.", "APPLE" }, { 0x44DB60, "Nanjing Baihezhengliu Technology Co., Ltd", "NANJING-BAIHEZHENGLIU" }, { 0x44DBD2, "YEALINK(XIAMEN) NETWORK TECHNOLOGY CO.,LTD.", "YEALINK-XIAMEN-NETWORK" }, { 0x44DC4E, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x44DC91, "PLANEX COMMUNICATIONS INC.", "PLANEX-COMMUNICATION" }, { 0x44DCCB, "SEMINDIA SYSTEMS PVT LTD", "SEMINDIA-PVT" }, { 0x44DF65, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x44E08E, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x44E137, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x44E2F1, "NewRadio Technologies Co. , Ltd.", "NEWRADIO-TECHNOLOGIES" }, { 0x44E49A, "OMNITRONICS PTY LTD", "OMNITRONICS-PTY" }, { 0x44E4D9, "Cisco Systems, Inc", "CISCO" }, { 0x44E4EE, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x44E517, "Intel Corporate", "INTEL-CORPORATE" }, { 0x44E66E, "Apple, Inc.", "APPLE" }, { 0x44E6B0, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0x44E761, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0x44E8A5, "Myreka Technologies Sdn. Bhd.", "MYREKA-TECHNOLOGIES" }, { 0x44E968, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x44E9DD, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x44EA30, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x44EA4B, "Actlas Inc.", "ACTLAS" }, { 0x44EAD8, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x44EB2E, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x44ECCE, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x44ED57, "Longicorn, inc.", "LONGICORN" }, { 0x44EE02, "MTI Ltd.", "MTI" }, { 0x44EE14, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x44EE30, "Budelmann Elektronik GmbH", "BUDELMANN-ELEKTRONIK" }, { 0x44EFBF, "China Dragon Technology Limited", "CHINA-DRAGON" }, { 0x44EFCF, "UGENE SOLUTION inc.", "UGENE-SOLUTION" }, { 0x44F034, "Kaon Group Co., Ltd.", "KAON-GROUP" }, { 0x44F09E, "Apple, Inc.", "APPLE" }, { 0x44F21B, "Apple, Inc.", "APPLE" }, { 0x44F436, "zte corporation", "ZTE" }, { 0x44F459, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x44F477, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x44F4E7, "Cohesity Inc", "COHESITY" }, { 0x44F849, "Union Pacific Railroad", "UNION-PACIFIC-RAILROAD" }, { 0x44F971, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x44FA66, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x44FB42, "Apple, Inc.", "APPLE" }, { 0x44FB5A, "zte corporation", "ZTE" }, { 0x44FDA3, "Everysight LTD.", "EVERYSIGHT" }, { 0x44FE3B, "Arcadyan Corporation", "ARCADYAN" }, { 0x44FFBA, "zte corporation", "ZTE" }, { 0x480031, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x480033, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x48007D, "DTS ELEKTRONIK SAN. TIC. LTD. STI.", "DTS-ELEKTRONIK-SAN-TIC-STI" }, { 0x4801C5, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0x48022A, "B-Link Electronic Limited", "B-LINK" }, { 0x480286, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x4802AF, "Telit Communication s.p.a", "TELIT-COMMUNICATION" }, { 0x480362, "DESAY ELECTRONICS(HUIZHOU)CO.,LTD", "DESAY-ELECTRONICS-HUIZHOU" }, { 0x48049F, "ELECOM CO., LTD", "ELECOM" }, { 0x4805E2, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x48062B, "Private", "PRIVATE" }, { 0x48066A, "Tempered Networks, Inc.", "TEMPERED-NETWORKS" }, { 0x480BB2, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x480C49, "NAKAYO Inc", "NAKAYO" }, { 0x480EEC, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x480FCF, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x481063, "NTT Innovation Institute, Inc.", "NTT-INNOVATION-INSTITUTE" }, { 0x481249, "Luxcom Technologies Inc.", "LUXCOM-TECHNOLOGIES" }, { 0x481258, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x48128F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x48137E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x4813F3, "BBK EDUCATIONAL ELECTRONICS CORP.,LTD.", "BBK-EDUCATIONAL-ELECTRONICS" }, { 0x481693, "Lear Corporation GmbH", "LEAR" }, { 0x48174C, "MicroPower technologies", "MICROPOWER-TECHNOLOGIES" }, { 0x481842, "Shanghai Winaas Co. Equipment Co. Ltd.", "SHANGHAI-WINAAS-EQUIPMENT" }, { 0x48188D, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0x4818FA, "Nocsys", "NOCSYS" }, { 0x481A84, "Pointer Telocation Ltd", "POINTER-TELOCATION" }, { 0x481B40, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x481BA4, "Cisco Systems, Inc", "CISCO" }, { 0x481BD2, "Intron Scientific co., ltd.", "INTRON-SCIENTIFIC" }, { 0x481CB9, "SZ DJI TECHNOLOGY CO.,LTD", "SZ-DJI" }, { 0x481D70, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x481F2D, "Shenzhen Jie Shi Lian Industrial Co.,LTD", "SHENZHEN-JIE-SHI-LIAN-INDUSTRIAL" }, { 0x481F66, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x48210B, "PEGATRON CORPORATION", "PEGATRON" }, { 0x48216C, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0x482218, "Shenzhen Yipingfang Network Technology Co., Ltd.", "SHENZHEN-YIPINGFANG-NETWORK" }, { 0x482254, "TP-Link Corporation Limited", "TP-LINK" }, { 0x482335, "Dialog Semiconductor Hellas SA", "DIALOG-SEMICONDUCTOR-HELLAS" }, { 0x482567, "Poly", "POLY" }, { 0x4825F3, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x48262C, "Apple, Inc.", "APPLE" }, { 0x4826E8, "Tek-Air Systems, Inc.", "TEK-AIR" }, { 0x482759, "Levven Electronics Ltd.", "LEVVEN-ELECTRONICS" }, { 0x4827C5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4827E2, "Espressif Inc.", "ESPRESSIF" }, { 0x4827EA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x48282F, "zte corporation", "ZTE" }, { 0x482952, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x4829D6, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x4829E4, "AO", "AO" }, { 0x482AE3, "Wistron InfoComm(Kunshan)Co.,Ltd.", "WISTRON-INFOCOMM-KUNSHAN" }, { 0x482CA0, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x482CD0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x482CEA, "Motorola Inc Business Light Radios", "MOTOROLA-BUSINESS-LIGHT-RADIOS" }, { 0x482E72, "Cisco Systems, Inc", "CISCO" }, { 0x482F6B, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x482FD7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x483133, "Robert Bosch Elektronika Kft.", "ROBERT-BOSCH-ELEKTRONIKA-KFT" }, { 0x483177, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x4831B7, "Espressif Inc.", "ESPRESSIF" }, { 0x4831DB, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x4833DD, "ZENNIO AVANCE Y TECNOLOGIA, S.L.", "ZENNIO-AVANCE-Y-TECNOLOGIA" }, { 0x48343D, "IEP GmbH", "IEP" }, { 0x48352B, "Apple, Inc.", "APPLE" }, { 0x48352E, "Shenzhen Wolck Network Product Co.,LTD", "SHENZHEN-WOLCK-NETWORK-PRODUCT" }, { 0x48365F, "Wintecronics Ltd.", "WINTECRONICS" }, { 0x483871, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x4838B6, "Auhui Taoyun Technology Co., Ltd", "AUHUI-TAOYUN" }, { 0x483974, "Proware Technologies Co., Ltd.", "PROWARE-TECHNOLOGIES" }, { 0x483B38, "Apple, Inc.", "APPLE" }, { 0x483C0C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x483D32, "Syscor Controls & Automation", "SYSCOR-CONTROLS-AMP-AUTOMATION" }, { 0x483E5E, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0x483FDA, "Espressif Inc.", "ESPRESSIF" }, { 0x483FE9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x48435A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x48437C, "Apple, Inc.", "APPLE" }, { 0x4843DD, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x484487, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x4844F7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x484520, "Intel Corporate", "INTEL-CORPORATE" }, { 0x4845CF, "LLC Proizvodstvennaya Kompania TransService", "LLC-PROIZVODSTVENNAYA-KOMPANIA-TRANSSERVICE" }, { 0x48468D, "Zepcam B.V.", "ZEPCAM-B-V" }, { 0x4846C1, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0x4846F1, "Uros Oy", "UROS-OY" }, { 0x4846FB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x48474B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x4849C7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x484A30, "George Robotics Limited", "GEORGE-ROBOTICS" }, { 0x484AE9, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x484BAA, "Apple, Inc.", "APPLE" }, { 0x484BD4, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x484C29, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x484C86, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x484D7E, "Dell Inc.", "DELL" }, { 0x484EFC, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x485073, "Microsoft Corporation", "MICROSOFT" }, { 0x485169, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x4851B7, "Intel Corporate", "INTEL-CORPORATE" }, { 0x4851C5, "Intel Corporate", "INTEL-CORPORATE" }, { 0x4851CF, "Intelbras", "INTELBRAS" }, { 0x4851D0, "Jiangsu Xinsheng Intelligent Technology Co., Ltd.", "JIANGSU-XINSHENG-INTELLIGENT" }, { 0x485261, "SOREEL", "SOREEL" }, { 0x485415, "NET RULES TECNOLOGIA EIRELI", "NET-RULES-TECNOLOGIA-EIRELI" }, { 0x485519, "Espressif Inc.", "ESPRESSIF" }, { 0x485541, "Iskratel d.o.o.", "ISKRATEL-D-O-O" }, { 0x48555C, "Wu Qi Technologies,Inc.", "WU-QI-TECHNOLOGIES" }, { 0x48555E, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x48555F, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x485702, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4857D2, "Broadcom Limited", "BROADCOM" }, { 0x4857DD, "Facebook Inc", "FACEBOOK" }, { 0x485929, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x4859A4, "zte corporation", "ZTE" }, { 0x485A0D, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x485A3F, "WISOL", "WISOL" }, { 0x485A67, "Shaanxi Ruixun Electronic Information Technology Co., Ltd", "SHAANXI-RUIXUN-INFORMATION" }, { 0x485AB6, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x485AEA, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x485B39, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x485D35, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x485D36, "Verizon", "VERIZON" }, { 0x485D60, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x485DEB, "Just Add Power", "JUST-ADD-POWER" }, { 0x485DED, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x485F08, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x485F99, "Cloud Network Technology (Samoa) Limited", "CLOUD-NETWORK-SAMOA" }, { 0x48605F, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x4860BC, "Apple, Inc.", "APPLE" }, { 0x4861A3, "Concern Axion JSC", "CONCERN-AXION-JSC" }, { 0x4861EE, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x486276, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4865EE, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x486834, "Silicon Motion, Inc.", "SILICON-MOTION" }, { 0x48684A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x486B2C, "BBK EDUCATIONAL ELECTRONICS CORP.,LTD.", "BBK-EDUCATIONAL-ELECTRONICS" }, { 0x486B91, "Fleetwood Group Inc.", "FLEETWOOD-GROUP" }, { 0x486DBB, "Vestel Elektronik San ve Tic. A.S.", "VESTEL-ELEKTRONIK-SAN-VE-TIC" }, { 0x486E70, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0x486E73, "Pica8, Inc.", "PICA8" }, { 0x486EFB, "Davit System Technology Co., Ltd.", "DAVIT-SYSTEM" }, { 0x486F33, "KYUNGWOO.SYSTEM, INC.", "KYUNGWOO-SYSTEM" }, { 0x486FD2, "StorSimple Inc", "STORSIMPLE" }, { 0x48701E, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x48706F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x487119, "SGB GROUP LTD.", "SGB-GROUP" }, { 0x487310, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x487397, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x4873CB, "Tiinlab Corporation", "TIINLAB" }, { 0x487412, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0x48746E, "Apple, Inc.", "APPLE" }, { 0x487583, "Intellion AG", "INTELLION" }, { 0x487604, "Private", "PRIVATE" }, { 0x487706, "NXP Semiconductor (Tianjin) LTD.", "NXP-SEMICONDUCTOR-TIANJIN" }, { 0x487746, "Calix Inc.", "CALIX" }, { 0x4877BD, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x48785E, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x48794D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x487A55, "ALE International", "ALE" }, { 0x487ADA, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x487AF6, "NCS ELECTRICAL SDN BHD", "NCS-ELECTRICAL" }, { 0x487AFF, "ESSYS", "ESSYS" }, { 0x487B5E, "SMT TELECOMM HK", "SMT-TELECOMM-HK" }, { 0x487B6B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x487D2E, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x487E48, "Earda Technologies co Ltd", "EARDA-TECHNOLOGIES" }, { 0x48814E, "E&M SOLUTION CO,.Ltd", "E-M-SOLUTION" }, { 0x4881D4, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0x488244, "Life Fitness / Div. of Brunswick", "LIFE-FITNESS-/-DIV-OF-BRUNSWICK" }, { 0x4882F2, "Appel Elektronik GmbH", "APPEL-ELEKTRONIK" }, { 0x4883B4, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x4883C7, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x4886E8, "Microsoft Corporation", "MICROSOFT" }, { 0x48872D, "SHEN ZHEN DA XIA LONG QUE TECHNOLOGY CO.,LTD", "SHEN-ZHEN-DA-XIA-LONG-QUE" }, { 0x488759, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x488764, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x4887B8, "TCL King Electrical Appliances(Huizhou)Co.,Ltd", "TCL-KING-ELECTRICAL-APPLIANCES-HUIZHOU" }, { 0x488803, "ManTechnology Inc.", "MANTECHNOLOGY" }, { 0x48881E, "EthoSwitch LLC", "ETHOSWITCH" }, { 0x488899, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x4888CA, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0x4889E7, "Intel Corporate", "INTEL-CORPORATE" }, { 0x488AD2, "MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x488AE8, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x488B0A, "Cisco Systems, Inc", "CISCO" }, { 0x488C63, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x488D36, "Arcadyan Corporation", "ARCADYAN" }, { 0x488E42, "DIGALOG GmbH", "DIGALOG" }, { 0x488EEF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x488F4C, "shenzhen trolink Technology Co.,Ltd", "SHENZHEN-TROLINK" }, { 0x488F5A, "Routerboard.com", "ROUTERBOARD-COM" }, { 0x48902F, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x489153, "Weinmann Geräte für Medizin GmbH + Co. KG", "WEINMANN-GERAETE-FUER-MEDIZIN" }, { 0x4891D5, "Cisco Systems, Inc", "CISCO" }, { 0x4891F6, "Shenzhen Reach software technology CO.,LTD", "SHENZHEN-REACH-SOFTWARE" }, { 0x4893DC, "UNIWAY INFOCOM PVT LTD", "UNIWAY-INFOCOM-PVT" }, { 0x489507, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x4898CA, "Sichuan AI-Link Technology Co., Ltd.", "SICHUANAI-LINK" }, { 0x489A42, "Technomate Ltd", "TECHNOMATE" }, { 0x489A5B, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0x489BD5, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x489BE0, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x489BE2, "SCI Innovations Ltd", "SCI-INNOVATIONS" }, { 0x489D18, "Flashbay Limited", "FLASHBAY" }, { 0x489D24, "BlackBerry RTS", "BLACKBERRY-RTS" }, { 0x489DD1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x489E9D, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x489EBD, "HP Inc.", "HP" }, { 0x489ECB, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x48A0F8, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x48A195, "Apple, Inc.", "APPLE" }, { 0x48A22D, "Shenzhen Huaxuchang Telecom Technology Co.,Ltd", "SHENZHEN-HUAXUCHANG-TELECOM" }, { 0x48A2B7, "Kodofon JSC", "KODOFON-JSC" }, { 0x48A2B8, "Chengdu Vision-Zenith Tech.Co,.Ltd", "CHENGDU-VISION-ZENITH-TECH" }, { 0x48A2E6, "Resideo", "RESIDEO" }, { 0x48A380, "Gionee Communication Equipment Co.,Ltd.", "GIONEE-COMMUNICATION-EQUIPMENT" }, { 0x48A472, "Intel Corporate", "INTEL-CORPORATE" }, { 0x48A493, "TAIYO YUDEN CO.,LTD", "TAIYO-YUDEN" }, { 0x48A516, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x48A5E7, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x48A6B8, "Sonos, Inc.", "SONOS" }, { 0x48A6D2, "GJsun Optical Science and Tech Co.,Ltd.", "GJSUN-OPTICAL-SCIENCE-AND-TECH" }, { 0x48A73C, "Sichuan tianyi kanghe communications co., LTD", "SICHUAN-TIANYI-KANGHE-COMMUNICATION" }, { 0x48A74E, "zte corporation", "ZTE" }, { 0x48A91C, "Apple, Inc.", "APPLE" }, { 0x48A98A, "Routerboard.com", "ROUTERBOARD-COM" }, { 0x48A9D2, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x48AA5D, "Store Electronic Systems", "STORE" }, { 0x48AD08, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x48AD9A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x48B02D, "NVIDIA Corporation", "NVIDIA" }, { 0x48B253, "Marketaxess Corporation", "MARKETAXESS" }, { 0x48B25D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x48B423, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x48B4C3, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x48B5A7, "Glory Horse Industries Ltd.", "GLORY-HORSE-INDUSTRIES" }, { 0x48B620, "ROLI Ltd.", "ROLI" }, { 0x48B8A3, "Apple, Inc.", "APPLE" }, { 0x48B8DE, "HOMEWINS TECHNOLOGY CO.,LTD.", "HOMEWINS" }, { 0x48B977, "PulseOn Oy", "PULSEON-OY" }, { 0x48B9C2, "Teletics Inc.", "TELETICS" }, { 0x48BA4E, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x48BCA6, "​ASUNG TECHNO CO.,Ltd", "ASUNG-TECHNO" }, { 0x48BCE1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x48BD0E, "Quanta Storage Inc.", "QUANTA-STORAGE" }, { 0x48BD3D, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x48BD4A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x48BDA7, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x48BDCE, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x48BE2D, "Symanitron", "SYMANITRON" }, { 0x48BF6B, "Apple, Inc.", "APPLE" }, { 0x48BF74, "Baicells Technologies Co.,LTD", "BAICELLS-TECHNOLOGIES" }, { 0x48C049, "Broad Telecom SA", "BROAD-TELECOM" }, { 0x48C093, "Xirrus, Inc.", "XIRRUS" }, { 0x48C1AC, "PLANTRONICS, INC.", "PLANTRONICS" }, { 0x48C1EE, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x48C35A, "LENOVO(BEIJING)CO., LTD.", "LENOVO-BEIJING" }, { 0x48C3B0, "Pharos Co.Ltd", "PHAROS" }, { 0x48C461, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x48C58D, "Lear Corporation GmbH", "LEAR" }, { 0x48C663, "GTO Access Systems LLC", "GTO-ACCESS" }, { 0x48C796, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x48C862, "Simo Wireless,Inc.", "SIMO-WIRELESS" }, { 0x48C8B6, "SysTec GmbH", "SYSTEC" }, { 0x48CAC6, "UNION MAN TECHNOLOGY CO.,LTD", "UNION-MAN" }, { 0x48CB6E, "Cello Electronics (UK) Ltd", "CELLO-ELECTRONICS-UK" }, { 0x48CDD3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x48D0CF, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x48D18E, "Metis Communication Co.,Ltd", "METIS-COMMUNICATION" }, { 0x48D224, "Liteon Technology Corporation", "LITEON" }, { 0x48D24F, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x48D343, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x48D35D, "Private", "PRIVATE" }, { 0x48D475, "Lampuga GmbH", "LAMPUGA" }, { 0x48D539, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x48D54C, "Jeda Networks", "JEDA-NETWORKS" }, { 0x48D6D5, "Google, Inc.", "GOOGLE" }, { 0x48D705, "Apple, Inc.", "APPLE" }, { 0x48D7FF, "BLANKOM Antennentechnik GmbH", "BLANKOM-ANTENNENTECHNIK" }, { 0x48D845, "Shenzhen Mainuoke Electronics Co., Ltd", "SHENZHEN-MAINUOKE-ELECTRONICS" }, { 0x48D855, "Telvent", "TELVENT" }, { 0x48D875, "China TransInfo Technology Co., Ltd", "CHINA-TRANSINFO" }, { 0x48D890, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0x48D8FE, "ClarIDy Solutions, Inc.", "CLARIDY-SOLUTIONS" }, { 0x48DA96, "Eddy Smart Home Solutions Inc.", "EDDY-SMART-HOME-SOLUTIONS" }, { 0x48DB50, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x48DC2D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x48DC9D, "Grandprint(Beijing) Technology Co., LTD.", "GRANDPRINT-BEIJING" }, { 0x48DCFB, "Nokia Corporation", "NOKIA" }, { 0x48DD0C, "eero inc.", "EERO" }, { 0x48DD9D, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x48DF1C, "Wuhan NEC Fibre Optic Communications industry Co. Ltd", "WUHAN-NEC-FIBRE-OPTIC-COMMUNICATION-INDUSTRY" }, { 0x48DF37, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x48E15C, "Apple, Inc.", "APPLE" }, { 0x48E1AF, "Vity", "VITY" }, { 0x48E1E9, "Chengdu Meross Technology Co., Ltd.", "CHENGDU-MEROSS" }, { 0x48E244, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x48E3C3, "JENOPTIK Advanced Systems GmbH", "JENOPTIK-ADVANCED" }, { 0x48E695, "Insigma Inc", "INSIGMA" }, { 0x48E6C0, "SIMCom Wireless Solutions Co.,Ltd.", "SIMCOM-WIRELESS-SOLUTIONS" }, { 0x48E729, "Espressif Inc.", "ESPRESSIF" }, { 0x48E7DA, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x48E9F1, "Apple, Inc.", "APPLE" }, { 0x48EA63, "Zhejiang Uniview Technologies Co., Ltd.", "ZHEJIANG-UNIVIEW-TECHNOLOGIES" }, { 0x48EB30, "ETERNA TECHNOLOGY, INC.", "ETERNA" }, { 0x48EB62, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x48EC5B, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x48ED80, "daesung eltec", "DAESUNG-ELTEC" }, { 0x48EE07, "Silver Palm Technologies LLC", "SILVER-PALM-TECHNOLOGIES" }, { 0x48EE0C, "D-Link International", "D-LINK" }, { 0x48EE86, "UTStarcom (China) Co.,Ltd", "UTSTARCOM-CHINA" }, { 0x48EF61, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x48F027, "Chengdu newifi Co.,Ltd", "CHENGDU-NEWIFI" }, { 0x48F07B, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x48F17F, "Intel Corporate", "INTEL-CORPORATE" }, { 0x48F230, "Ubizcore Co.,LTD", "UBIZCORE" }, { 0x48F317, "Private", "PRIVATE" }, { 0x48F3F3, "Baidu Online Network Technology (Beijing) Co., Ltd", "BAIDU-ONLINE-NETWORK-BEIJING" }, { 0x48F47D, "TechVision Holding Internation Limited", "TECHVISION-HOLDING-INTERNATION" }, { 0x48F7C0, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x48F7F1, "Nokia", "NOKIA" }, { 0x48F8B3, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x48F8DB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x48F8E1, "Nokia", "NOKIA" }, { 0x48F8FF, "CHENGDU KT ELECTRONIC HI-TECH CO.,LTD", "CHENGDU-KT-HI-TECH" }, { 0x48F925, "Maestronic", "MAESTRONIC" }, { 0x48F97C, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x48FCB6, "LAVA INTERNATIONAL(H.K) LIMITED", "LAVA-H-K" }, { 0x48FCB8, "Woodstream Corporation", "WOODSTREAM" }, { 0x48FD8E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x48FDA3, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x48FEEA, "HOMA B.V.", "HOMA-B-V" }, { 0x4C0082, "Cisco Systems, Inc", "CISCO" }, { 0x4C0143, "eero inc.", "EERO" }, { 0x4C0220, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x4C022E, "CMR KOREA CO., LTD", "CMR-KOREA" }, { 0x4C0289, "LEX COMPUTECH CO., LTD", "LEX-COMPUTECH" }, { 0x4C034F, "Intel Corporate", "INTEL-CORPORATE" }, { 0x4C0617, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x4C068A, "Basler Electric Company", "BASLER-ELECTRIC-COMPANY" }, { 0x4C06B7, "ProDVX Europe B.V.", "PRODVX-EUROPE-B-V" }, { 0x4C07C9, "COMPUTER OFFICE Co.,Ltd.", "OFFICE" }, { 0x4C09B4, "zte corporation", "ZTE" }, { 0x4C09D4, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x4C09FA, "FRONTIER SMART TECHNOLOGIES LTD", "FRONTIER-SMART-TECHNOLOGIES" }, { 0x4C0A3D, "ADNACOM INC.", "ADNACOM" }, { 0x4C0B3A, "TCT mobile ltd", "TCT-MOBILE" }, { 0x4C0BBE, "Microsoft", "MICROSOFT" }, { 0x4C0DEE, "JABIL CIRCUIT (SHANGHAI) LTD.", "JABIL-CIRCUIT-SHANGHAI" }, { 0x4C0F6E, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x4C0FC7, "Earda Technologies co Ltd", "EARDA-TECHNOLOGIES" }, { 0x4C1154, "Mobiwire Mobiles (NingBo) Co., LTD", "MOBIWIRE-MOBILES-NINGBO" }, { 0x4C1159, "Vision Information & Communications", "VISION-INFORMATION-COMMUNICATION" }, { 0x4C11AE, "Espressif Inc.", "ESPRESSIF" }, { 0x4C11BF, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0x4C1265, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x4C12E8, "VIETNAM POST AND TELECOMMUNICATION INDUSTRY TECHNOLOGY JOIN STOCK COMPANY", "VIETNAM-POST-AND-TELECOMMUNICATION-INDUSTRY-JOIN-STOCK-COMPANY" }, { 0x4C1365, "Emplus Technologies", "EMPLUS-TECHNOLOGIES" }, { 0x4C1480, "NOREGON SYSTEMS, INC", "NOREGON" }, { 0x4C14A3, "TCL Technoly Electronics (Huizhou) Co., Ltd.", "TCL-TECHNOLY-ELECTRONICS-HUIZHOU" }, { 0x4C1694, "shenzhen sibituo Technology Co., Ltd", "SHENZHEN-SIBITUO" }, { 0x4C16F1, "zte corporation", "ZTE" }, { 0x4C16FC, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x4C1744, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x4C17EB, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x4C189A, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x4C195D, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x4C1A3A, "PRIMA Research And Production Enterprise Ltd.", "PRIMA-RESEARCH-AND-PRODUCTION" }, { 0x4C1A3D, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x4C1A95, "Novakon Co., Ltd.", "NOVAKON" }, { 0x4C1B86, "Arcadyan Corporation", "ARCADYAN" }, { 0x4C1D96, "Intel Corporate", "INTEL-CORPORATE" }, { 0x4C1FCC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4C20B8, "Apple, Inc.", "APPLE" }, { 0x4C2113, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0x4C218C, "Panasonic India Private limited", "PANASONIC-INDIA-PRIVATE" }, { 0x4C21D0, "Sony Corporation", "SONY" }, { 0x4C2219, "YUANFUDAO HK LIMTED", "YUANFUDAO-HK-LIMTED" }, { 0x4C2258, "cozybit, Inc.", "COZYBIT" }, { 0x4C22F3, "Arcadyan Corporation", "ARCADYAN" }, { 0x4C231A, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x4C2498, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x4C24CE, "Sichuan AI-Link Technology Co., Ltd.", "SICHUAN-AI-LINK" }, { 0x4C2578, "Nokia Corporation", "NOKIA" }, { 0x4C26E7, "Welgate Co., Ltd.", "WELGATE" }, { 0x4C2C80, "Beijing Skyway Technologies Co.,Ltd", "BEIJING-SKYWAY-TECHNOLOGIES" }, { 0x4C2C83, "Zhejiang KaNong Network Technology Co.,Ltd.", "ZHEJIANG-KANONG-NETWORK" }, { 0x4C2E5E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x4C2EB4, "Apple, Inc.", "APPLE" }, { 0x4C2EFE, "Shenzhen Comnect Technology Co.,LTD", "SHENZHEN-COMNECT" }, { 0x4C2F9D, "ICM Controls", "ICM-CONTROLS" }, { 0x4C2FD7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x4C3089, "Thales Transportation Systems GmbH", "THALES-TRANSPORTATION" }, { 0x4C312D, "Sichuan AI-Link Technology Co., Ltd.", "SICHUAN-AI-LINK" }, { 0x4C322D, "TELEDATA NETWORKS", "TELEDATA-NETWORKS" }, { 0x4C3275, "Apple, Inc.", "APPLE" }, { 0x4C32D9, "M Rutty Holdings Pty. Ltd.", "M-RUTTY-HOLDINGS-PTY" }, { 0x4C3329, "Sweroam", "SWEROAM" }, { 0x4C334E, "HIGHTECH", "HIGHTECH" }, { 0x4C3488, "Intel Corporate", "INTEL-CORPORATE" }, { 0x4C364E, "Panasonic Connect Co., Ltd.", "PANASONIC-CONNECT" }, { 0x4C38D5, "MITAC COMPUTING TECHNOLOGY CORPORATION", "MITAC-COMPUTING" }, { 0x4C38D8, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x4C3909, "HPL Electric & Power Private Limited", "HPL-ELECTRIC-POWER-PRIVATE" }, { 0x4C3910, "Newtek Electronics co., Ltd.", "NEWTEK-ELECTRONICS" }, { 0x4C3B6C, "GARO AB", "GARO-AB" }, { 0x4C3B74, "VOGTEC(H.K.) Co., Ltd", "VOGTEC-H-K" }, { 0x4C3BDF, "Microsoft Corporation", "MICROSOFT" }, { 0x4C3C16, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x4C3FA7, "uGrid Network Inc.", "UGRID-NETWORK" }, { 0x4C3FD3, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x4C4088, "SANSHIN ELECTRONICS CO.,LTD.", "SANSHIN-ELECTRONICS" }, { 0x4C421E, "Cisco Systems, Inc", "CISCO" }, { 0x4C4341, "Calix Inc.", "CALIX" }, { 0x4C445B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x4C4576, "China Mobile(Hangzhou) Information Technology Co.,Ltd.", "CHINA-MOBILE-HANGZHOU-INFORMATION" }, { 0x4C48DA, "Beijing Autelan Technology Co.,Ltd", "BEIJING-AUTELAN" }, { 0x4C494F, "zte corporation", "ZTE" }, { 0x4C496C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x4C49E3, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x4C4B68, "Mobile Device, Inc.", "MOBILE-DEVICE" }, { 0x4C4BF9, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x4C4D66, "Nanjing Jiahao Technology Co., Ltd.", "NANJING-JIAHAO" }, { 0x4C4E03, "TCT mobile ltd", "TCT-MOBILE" }, { 0x4C4E35, "Cisco Systems, Inc", "CISCO" }, { 0x4C4FEE, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0x4C5077, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x4C50F1, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x4C5262, "Fujitsu Technology Solutions GmbH", "FUJITSU-SOLUTIONS" }, { 0x4C52EC, "SOLARWATT GmbH", "SOLARWATT" }, { 0x4C5369, "YanFeng Visteon(ChongQing) Automotive Electronic Co.,Ltd", "YANFENG-VISTEON-CHONGQING-AUTOMOTIVE" }, { 0x4C53FD, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x4C5427, "Linepro Sp. z o.o.", "LINEPRO-SP-Z-O-O" }, { 0x4C5499, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4C5585, "Hamilton Systems", "HAMILTON" }, { 0x4C55B8, "Turkcell Teknoloji", "TURKCELL-TEKNOLOJI" }, { 0x4C55CC, "Zentri Pty Ltd", "ZENTRI-PTY" }, { 0x4C569D, "Apple, Inc.", "APPLE" }, { 0x4C56DF, "Targus US LLC", "TARGUS-US" }, { 0x4C57CA, "Apple, Inc.", "APPLE" }, { 0x4C5BB3, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x4C5CDF, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x4C5D3C, "Cisco Systems, Inc", "CISCO" }, { 0x4C5DCD, "Oy Finnish Electric Vehicle Technologies Ltd", "OY-FINNISH-ELECTRIC-VEHICLE-TECHNOLOGIES" }, { 0x4C5E0C, "Routerboard.com", "ROUTERBOARD-COM" }, { 0x4C5ED3, "Unisyue Technologies Co; LTD.", "UNISYUE-TECHNOLOGIES" }, { 0x4C5FD2, "Alcatel-Lucent", "ALCATEL-LUCENT" }, { 0x4C60D5, "airPointe of New Hampshire", "AIRPOINTE-OF-NEW-HAMPSHIRE" }, { 0x4C60DE, "NETGEAR", "NETGEAR" }, { 0x4C617E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x4C6255, "SANMINA-SCI SYSTEM DE MEXICO S.A. DE C.V.", "SANMINA-SCI-SYSTEM-DE-MEXICO-DE-C-V" }, { 0x4C627B, "SmartCow AI Technologies Taiwan Ltd.", "SMARTCOW-AI-TECHNOLOGIES-TAIWAN" }, { 0x4C62CD, "Nokia", "NOKIA" }, { 0x4C6371, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x4C63AD, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x4C63EB, "Application Solutions (Electronics and Vision) Ltd", "APPLICATION-SOLUTIONS-ELECTRONICS-AND-VISION" }, { 0x4C64D9, "Guangdong Leawin Group Co., Ltd", "GUANGDONG-LEAWIN-GROUP" }, { 0x4C65A8, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x4C6641, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x4C66A6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x4C6AF6, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x4C6BE8, "Apple, Inc.", "APPLE" }, { 0x4C6C13, "IoT Company Solucoes Tecnologicas Ltda", "IOT-COMPANY-SOLUCOES-TECNOLOGICAS-LTDA" }, { 0x4C6D58, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x4C6E6E, "Comnect Technology CO.,LTD", "COMNECT" }, { 0x4C6F9C, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x4C70CC, "Blyott NV", "BLYOTT-NV" }, { 0x4C710C, "Cisco Systems, Inc", "CISCO" }, { 0x4C710D, "Cisco Systems, Inc", "CISCO" }, { 0x4C7167, "PoLabs d.o.o.", "POLABS-D-O-O" }, { 0x4C7274, "Shenzhenshi Xinzhongxin Technology Co.Ltd", "SHENZHENSHI-XINZHONGXIN" }, { 0x4C72B9, "PEGATRON CORPORATION", "PEGATRON" }, { 0x4C734F, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x4C7367, "Genius Bytes Software Solutions GmbH", "GENIUS-BYTES-SOFTWARE-SOLUTIONS" }, { 0x4C73A5, "KOVE", "KOVE" }, { 0x4C7403, "BQ", "BQ" }, { 0x4C7487, "Leader Phone Communication Technology Co., Ltd.", "LEADER-PHONE-COMMUNICATION" }, { 0x4C74A7, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x4C74BF, "Apple, Inc.", "APPLE" }, { 0x4C7525, "Espressif Inc.", "ESPRESSIF" }, { 0x4C7625, "Dell Inc.", "DELL" }, { 0x4C7713, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x4C774F, "Embedded Wireless Labs", "EMBEDDED-WIRELESS-LABS" }, { 0x4C7766, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x4C776D, "Cisco Systems, Inc", "CISCO" }, { 0x4C77CB, "Intel Corporate", "INTEL-CORPORATE" }, { 0x4C7872, "Cav. Uff. Giacomo Cimberio S.p.A.", "CAV-UFF-GIACOMO-CIMBERIO" }, { 0x4C7897, "Arrowhead Alarm Products Ltd", "ARROWHEAD-ALARM-PRODUCTS" }, { 0x4C796E, "Intel Corporate", "INTEL-CORPORATE" }, { 0x4C7975, "Apple, Inc.", "APPLE" }, { 0x4C79BA, "Intel Corporate", "INTEL-CORPORATE" }, { 0x4C7A48, "Nippon Seiki (Europe) B.V.", "NIPPON-SEIKI-EUROPE-B-V" }, { 0x4C7C5F, "Apple, Inc.", "APPLE" }, { 0x4C7CD9, "Apple, Inc.", "APPLE" }, { 0x4C7F62, "Nokia Corporation", "NOKIA" }, { 0x4C804F, "Armstrong Monitoring Corp", "ARMSTRONG-MONITORING" }, { 0x4C8093, "Intel Corporate", "INTEL-CORPORATE" }, { 0x4C80BA, "Wuhan Tianyu Information Industry Co., Ltd.", "WUHAN-TIANYU-INFORMATION-INDUSTRY" }, { 0x4C8120, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x4C82A9, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x4C82CF, "Dish Technologies Corp", "DISH-TECHNOLOGIES" }, { 0x4C83DE, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x4C875D, "Bose Corporation", "BOSE" }, { 0x4C889E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x4C8B30, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x4C8B55, "Grupo Digicon", "GRUPO-DIGICON" }, { 0x4C8BEF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4C8D53, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4C8D79, "Apple, Inc.", "APPLE" }, { 0x4C8ECC, "SILKAN SA", "SILKAN" }, { 0x4C8FA5, "Jastec", "JASTEC" }, { 0x4C90DB, "JL Audio", "JL-AUDIO" }, { 0x4C910C, "Lanix Internacional, S.A. de C.V.", "LANIX-INTERNACIONAL-DE-C-V" }, { 0x4C9157, "Fujian LANDI Commercial Equipment Co.,Ltd", "FUJIAN-LANDI-COMMERCIAL-EQUIPMENT" }, { 0x4C917A, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x4C93A6, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x4C9614, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x4C962D, "Fresh AB", "FRESH-AB" }, { 0x4C968A, "Wacom Co.,Ltd.", "WACOM" }, { 0x4C98EF, "Zeo", "ZEO" }, { 0x4C9992, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x4C9B63, "LG Innotek", "LG-INNOTEK" }, { 0x4C9D22, "ACES Co.,Ltd", "ACES" }, { 0x4C9E6C, "BROADEX TECHNOLOGIES CO.LTD", "BROADEX-TECHNOLOGIES" }, { 0x4C9E80, "KYOKKO ELECTRIC Co., Ltd.", "KYOKKO-ELECTRIC" }, { 0x4C9EE4, "Hanyang Navicom Co.,Ltd.", "HANYANG-NAVICOM" }, { 0x4C9EFF, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x4CA003, "VITEC", "VITEC" }, { 0x4CA161, "Rain Bird Corporation", "RAIN-BIRD" }, { 0x4CA3A7, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x4CA515, "Baikal Electronics JSC", "BAIKAL-ELECTRONICS-JSC" }, { 0x4CA56D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x4CA64D, "Cisco Systems, Inc", "CISCO" }, { 0x4CA74B, "Alcatel Lucent", "ALCATEL-LUCENT" }, { 0x4CA928, "Insensi", "INSENSI" }, { 0x4CAA16, "AzureWave Technologies (Shanghai) Inc.", "AZUREWAVE-TECHNOLOGIES-SHANGHAI" }, { 0x4CAB33, "KST technology", "KST" }, { 0x4CAB4F, "Apple, Inc.", "APPLE" }, { 0x4CABF8, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x4CABFC, "zte corporation", "ZTE" }, { 0x4CAC0A, "zte corporation", "ZTE" }, { 0x4CADA8, "PANOPTICS CORP.", "PANOPTICS" }, { 0x4CAE13, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4CAE1C, "SaiNXT Technologies LLP", "SAINXT-TECHNOLOGIES-LLP" }, { 0x4CAE31, "ShengHai Electronics (Shenzhen) Ltd", "SHENGHAI-ELECTRONICS-SHENZHEN" }, { 0x4CAEA3, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x4CAEEC, "Guangzhou limee technology co.,LTD", "GUANGZHOU-LIMEE" }, { 0x4CB008, "Shenzhen Gwelltimes Technology Co.,Ltd", "SHENZHEN-GWELLTIMES" }, { 0x4CB087, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4CB0E8, "Beijing RongZhi xinghua technology co., LTD", "BEIJING-RONGZHI-XINGHUA" }, { 0x4CB16C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4CB199, "Apple, Inc.", "APPLE" }, { 0x4CB1CD, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x4CB21C, "Maxphotonics Co.,Ltd", "MAXPHOTONICS" }, { 0x4CB44A, "NANOWAVE Technologies Inc.", "NANOWAVE-TECHNOLOGIES" }, { 0x4CB4EA, "HRD (S) PTE., LTD.", "HRD-S-PTE" }, { 0x4CB76D, "Novi Security", "NOVI-SECURITY" }, { 0x4CB81C, "SAM Electronics GmbH", "SAM-ELECTRONICS" }, { 0x4CB82C, "Cambridge Mobile Telematics, Inc.", "CAMBRIDGE-MOBILE-TELEMATICS" }, { 0x4CB8B5, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x4CB910, "Apple, Inc.", "APPLE" }, { 0x4CB911, "Raisecom Technology CO.,LTD", "RAISECOM" }, { 0x4CB99B, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0x4CB9C8, "CONET CO., LTD.", "CONET" }, { 0x4CB9EA, "iRobot Corporation", "IROBOT" }, { 0x4CBA7D, "Gemtek Technology Co., Ltd.", "GEMTEK" }, { 0x4CBAA3, "Bison Electronics Inc.", "BISON-ELECTRONICS" }, { 0x4CBAD7, "LG Innotek", "LG-INNOTEK" }, { 0x4CBB58, "Chicony Electronics Co., Ltd.", "CHICONY-ELECTRONICS" }, { 0x4CBC42, "Shenzhen Hangsheng Electronics Co.,Ltd.", "SHENZHEN-HANGSHENG-ELECTRONICS" }, { 0x4CBC48, "Cisco Systems, Inc", "CISCO" }, { 0x4CBC72, "Primex Wireless", "PRIMEX-WIRELESS" }, { 0x4CBC98, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x4CBCA5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x4CBCB4, "ABB SpA - DIN Rail", "ABB-SPA-DIN-RAIL" }, { 0x4CBCE9, "LG Innotek", "LG-INNOTEK" }, { 0x4CBD8F, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x4CC00A, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x4CC206, "Somfy", "SOMFY" }, { 0x4CC449, "Icotera A/S", "ICOTERA-A/S" }, { 0x4CC452, "Shang Hai Tyd. Electon Technology Ltd.", "SHANG-HAI-TYD-ELECTON" }, { 0x4CC53E, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x4CC602, "Radios, Inc.", "RADIOS" }, { 0x4CC64C, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x4CC681, "Shenzhen Aisat Electronic Co., Ltd.", "SHENZHEN-AISAT" }, { 0x4CC7D6, "FLEXTRONICS MANUFACTURING(ZHUHAI)CO.,LTD.", "FLEXTRONICS-MANUFACTURING-ZHUHAI" }, { 0x4CC844, "Maipu Communication Technology Co.,Ltd.", "MAIPU-COMMUNICATION" }, { 0x4CC8A1, "Cisco Meraki", "CISCO-MERAKI" }, { 0x4CC94F, "Nokia", "NOKIA" }, { 0x4CC95E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x4CCA53, "Skyera, Inc.", "SKYERA" }, { 0x4CCBF5, "zte corporation", "ZTE" }, { 0x4CCC34, "Motorola Solutions Inc.", "MOTOROLA-SOLUTIONS" }, { 0x4CCC6A, "Micro-Star INTL CO., LTD.", "MICRO-STAR-INTL" }, { 0x4CCE2D, "Danlaw Inc", "DANLAW" }, { 0x4CD08A, "HUMAX Co., Ltd.", "HUMAX" }, { 0x4CD0CB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4CD0DD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4CD1A1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4CD2FB, "UNIONMAN TECHNOLOGY CO.,LTD", "UNIONMAN" }, { 0x4CD3AF, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x4CD577, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0x4CD629, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4CD637, "Qsono Electronics Co., Ltd", "QSONO-ELECTRONICS" }, { 0x4CD717, "Dell Inc.", "DELL" }, { 0x4CD7B6, "Helmer Scientific", "HELMER-SCIENTIFIC" }, { 0x4CD98F, "Dell Inc.", "DELL" }, { 0x4CD9C4, "Magneti Marelli Automotive Electronics (Guangzhou) Co. Ltd", "MAGNETI-MARELLI-AUTOMOTIVE-ELECTRONICS-GUANGZHOU" }, { 0x4CDC0D, "Coral Telecom Limited", "CORAL-TELECOM" }, { 0x4CDD31, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x4CDD7D, "LHP Telematics LLC", "LHP-TELEMATICS" }, { 0x4CDF3D, "TEAM ENGINEERS ADVANCE TECHNOLOGIES INDIA PVT LTD", "TEAM-ENGINEERS-ADVANCE-TECHNOLOGIES-INDIA-PVT" }, { 0x4CE0DB, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x4CE173, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x4CE175, "Cisco Systems, Inc", "CISCO" }, { 0x4CE176, "Cisco Systems, Inc", "CISCO" }, { 0x4CE19E, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x4CE1BB, "Zhuhai HiFocus Technology Co., Ltd.", "ZHUHAI-HIFOCUS" }, { 0x4CE2F1, "Udino srl", "UDINO-SRL" }, { 0x4CE5AE, "Tianjin Beebox Intelligent Technology Co.,Ltd.", "TIANJIN-BEEBOX-INTELLIGENT" }, { 0x4CE676, "BUFFALO.INC", "BUFFALO" }, { 0x4CE6C0, "Apple, Inc.", "APPLE" }, { 0x4CE705, "Siemens Industrial Automation Products Ltd., Chengdu", "SIEMENS-INDUSTRIAL-AUTOMATION-PRODUCTS-CHENGDU" }, { 0x4CE933, "RailComm, LLC", "RAILCOMM" }, { 0x4CE9E4, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x4CEAAE, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x4CEB42, "Intel Corporate", "INTEL-CORPORATE" }, { 0x4CEB76, "Murrelektronik GmbH", "MURRELEKTRONIK" }, { 0x4CEBBD, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0x4CEBD6, "Espressif Inc.", "ESPRESSIF" }, { 0x4CEC0F, "Cisco Systems, Inc", "CISCO" }, { 0x4CECEF, "Soraa, Inc.", "SORAA" }, { 0x4CEDDE, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x4CEDFB, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x4CEEB0, "SHC Netzwerktechnik GmbH", "SHC-NETZWERKTECHNIK" }, { 0x4CEF56, "Shenzhen Sundray Technologies Company Limited", "SHENZHEN-SUNDRAY-TECHNOLOGIES-COMPANY" }, { 0x4CEFC0, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x4CF02E, "Vifa Denmark A/S", "VIFA-DENMARK-A/S" }, { 0x4CF19E, "Groupe Atlantic", "GROUPE-ATLANTIC" }, { 0x4CF202, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x4CF2BF, "Cambridge Industries(Group) Co.,Ltd.", "CAMBRIDGE-INDUSTRIES-GROUP" }, { 0x4CF45B, "Blue Clover Devices", "BLUE-CLOVER-DEVICES" }, { 0x4CF55B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4CF5A0, "Scalable Network Technologies Inc", "SCALABLE-NETWORK-TECHNOLOGIES" }, { 0x4CF5DC, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x4CF737, "SamJi Electronics Co., Ltd", "SAMJI-ELECTRONICS" }, { 0x4CF95D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4CFACA, "Cambridge Industries(Group) Co.,Ltd.", "CAMBRIDGE-INDUSTRIES-GROUP" }, { 0x4CFB45, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x4CFBF4, "Optimal Audio Ltd", "OPTIMAL-AUDIO" }, { 0x4CFBFE, "Sercomm Japan Corporation", "SERCOMM-JAPAN" }, { 0x4CFC22, "SHANGHAI HI-TECH CONTROL SYSTEM CO.,LTD.", "SHANGHAI-HI-TECH-CONTROL-SYSTEM" }, { 0x4CFCAA, "Tesla,Inc.", "TESLA" }, { 0x4CFE2E, "DongGuan Siyoto Electronics Co., Ltd", "DONGGUAN-SIYOTO-ELECTRONICS" }, { 0x4CFF12, "Fuze Entertainment Co., ltd", "FUZE-ENTERTAINMENT" }, { 0x500084, "Siemens Canada", "SIEMENS-CANADA" }, { 0x50008C, "Hong Kong Telecommunications (HKT) Limited", "HONG-KONG-TELECOMMUNICATIONS-HKT" }, { 0x50016B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5001BB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5001D9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x500238, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0x500291, "Espressif Inc.", "ESPRESSIF" }, { 0x5004B8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x50053D, "CyWee Group Ltd", "CYWEE-GROUP" }, { 0x500604, "Cisco Systems, Inc", "CISCO" }, { 0x5006AB, "Cisco Systems, Inc", "CISCO" }, { 0x5007C3, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x500959, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x5009E5, "Drimsys,Inc", "DRIMSYS" }, { 0x500A52, "Huiwan Technologies Co. Ltd", "HUIWAN-TECHNOLOGIES" }, { 0x500B26, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x500B32, "Foxda Technology Industrial(ShenZhen)Co.,LTD", "FOXDA-INDUSTRIAL-SHENZHEN" }, { 0x500B91, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x500E6D, "TrafficCast International", "TRAFFICCAST" }, { 0x500F59, "STMicrolectronics International NV", "STMICROLECTRONICS-NV" }, { 0x500F80, "Cisco Systems, Inc", "CISCO" }, { 0x500FF5, "Tenda Technology Co.,Ltd.Dongguan branch", "TENDA-DONGGUAN-BRANCH" }, { 0x5011EB, "SilverNet Ltd", "SILVERNET" }, { 0x501395, "Sichuan AI-Link Technology Co., Ltd.", "SICHUANAI-LINK" }, { 0x501408, "AiNET", "AINET" }, { 0x501479, "iRobot Corporation", "IROBOT" }, { 0x5014B5, "Richfit Information Technology Co., Ltd", "RICHFIT-INFORMATION" }, { 0x5014C1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5016F4, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x5017FF, "Cisco Systems, Inc", "CISCO" }, { 0x50184C, "Platina Systems Inc.", "PLATINA" }, { 0x501AA5, "GN Netcom A/S", "GN-NETCOM-A/S" }, { 0x501AC5, "Microsoft", "MICROSOFT" }, { 0x501B32, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x501CB0, "Cisco Systems, Inc", "CISCO" }, { 0x501CBF, "Cisco Systems, Inc", "CISCO" }, { 0x501D93, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x501E2D, "StreamUnlimited Engineering GmbH", "STREAMUNLIMITED-ENGINEERING" }, { 0x501FC6, "Apple, Inc.", "APPLE" }, { 0x50206B, "Emerson Climate Technologies Transportation Solutions", "EMERSON-CLIMATE-TECHNOLOGIES-TRANSPORTATION-SOLUTIONS" }, { 0x5021EC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x502267, "PixeLINK", "PIXELINK" }, { 0x50236D, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x5023A2, "Apple, Inc.", "APPLE" }, { 0x50252B, "Nethra Imaging Incorporated", "NETHRA-IMAGING-INCORPORATED" }, { 0x502690, "FUJITSU LIMITED", "FUJITSU" }, { 0x5026EF, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x5027A9, "eero inc.", "EERO" }, { 0x5027C7, "TECHNART Co.,Ltd", "TECHNART" }, { 0x50284A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x502873, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x50294D, "NANJING IOT SENSOR TECHNOLOGY CO,LTD", "NANJING-IOT-SENSOR" }, { 0x50297B, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x5029F5, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x502A7E, "Smart electronic GmbH", "SMART" }, { 0x502A8B, "Telekom Research and Development Sdn Bhd", "TELEKOM-RESEARCH-AND-DEVELOPMENT" }, { 0x502B73, "Tenda Technology Co.,Ltd.Dongguan branch", "TENDA-DONGGUAN-BRANCH" }, { 0x502B98, "Es-tech International", "ES-TECH" }, { 0x502CC6, "GREE ELECTRIC APPLIANCES, INC. OF ZHUHAI", "GREE-ELECTRIC-APPLIANCES-OF-ZHUHAI" }, { 0x502D1D, "Nokia Corporation", "NOKIA" }, { 0x502DA2, "Intel Corporate", "INTEL-CORPORATE" }, { 0x502DBB, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0x502DF4, "Phytec Messtechnik GmbH", "PHYTEC-MESSTECHNIK" }, { 0x502DFB, "IGShare Co., Ltd.", "IGSHARE" }, { 0x502E5C, "HTC Corporation", "HTC" }, { 0x502ECE, "Asahi Electronics Co.,Ltd", "ASAHI-ELECTRONICS" }, { 0x502F9B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x502FA8, "Cisco Systems, Inc", "CISCO" }, { 0x5030F4, "Exascend, Inc.", "EXASCEND" }, { 0x5031AD, "ABB Global Industries and Services Private Limited", "ABB-GLOBAL-INDUSTRIES-AND-SERVICES-PRIVATE" }, { 0x503237, "Apple, Inc.", "APPLE" }, { 0x50325F, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x503275, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x50338B, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x5033F0, "YICHEN (SHENZHEN) TECHNOLOGY CO.LTD", "YICHEN-SHENZHEN" }, { 0x50382F, "ASE Group Chung-Li", "ASE-GROUP-CHUNG-LI" }, { 0x50392F, "INGRAM MICRO SERVICES", "INGRAM-MICRO-SERVICES" }, { 0x503955, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x503A7D, "AlphaTech PLC Int’l Co., Ltd.", "ALPHATECH-PLC-INTL" }, { 0x503AA0, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x503CC4, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0x503CCA, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x503CEA, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x503DA1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x503DC6, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x503DE5, "Cisco Systems, Inc", "CISCO" }, { 0x503DEB, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0x503E7C, "LeiShen Intelligent System Co.Ltd", "LEISHEN-INTELLIGENT-SYSTEM" }, { 0x503EAA, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x503F50, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x503F56, "Syncmold Enterprise Corp", "SYNCMOLD" }, { 0x503F98, "CMITECH", "CMITECH" }, { 0x504061, "Nokia", "NOKIA" }, { 0x504074, "Alarm.com", "ALARM-COM" }, { 0x50411C, "AMPAK Technology,Inc.", "AMPAK" }, { 0x504172, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5041B9, "I-O DATA DEVICE,INC.", "I-O-DATA-DEVICE" }, { 0x504289, "zte corporation", "ZTE" }, { 0x504348, "ThingsMatrix Inc.", "THINGSMATRIX" }, { 0x5043B9, "OktoInform RUS", "OKTOINFORM-RUS" }, { 0x504594, "Radisys", "RADISYS" }, { 0x5045F7, "Liuhe Intelligence Technology Ltd.", "LIUHE-INTELLIGENCE" }, { 0x50464A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x50465D, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x5046AE, "MERCURY CORPORATION", "MERCURY" }, { 0x50482C, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x504877, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x5048EB, "BEIJING HAIHEJINSHENG NETWORK TECHNOLOGY CO. LTD.", "BEIJING-HAIHEJINSHENG-NETWORK" }, { 0x504921, "Cisco Systems, Inc", "CISCO" }, { 0x5049B0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x504A5E, "Masimo Corporation", "MASIMO" }, { 0x504A6E, "NETGEAR", "NETGEAR" }, { 0x504B5B, "CONTROLtronic GmbH", "CONTROLTRONIC" }, { 0x504B9E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x504C7E, "THE 41ST INSTITUTE OF CETC", "THE-41ST-INSTITUTE-OF-CETC" }, { 0x504EDC, "Ping Communication", "PING-COMMUNICATION" }, { 0x504F94, "Loxone Electronics GmbH", "LOXONE-ELECTRONICS" }, { 0x50502A, "Egardia", "EGARDIA" }, { 0x505065, "TAKT Corporation", "TAKT" }, { 0x5050A4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5050CE, "Hangzhou Dianyixia Communication Technology Co. Ltd.", "HANGZHOU-DIANYIXIA-COMMUNICATION" }, { 0x5051A9, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x50523B, "Nokia", "NOKIA" }, { 0x5052D2, "Hangzhou Telin Technologies Co., Limited", "HANGZHOU-TELIN-TECHNOLOGIES" }, { 0x50547B, "Nanjing Qinheng Microelectronics Co., Ltd.", "NANJING-QINHENG-MICROELECTRONICS" }, { 0x505527, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x50558D, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0x505663, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x5056A8, "Jolla Ltd", "JOLLA" }, { 0x5056BF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x50578A, "Apple, Inc.", "APPLE" }, { 0x50579C, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0x5057A8, "Cisco Systems, Inc", "CISCO" }, { 0x505800, "WyTec International, Inc.", "WYTEC" }, { 0x50584F, "waytotec,Inc.", "WAYTOTEC" }, { 0x50586F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x5058B0, "Hunan Greatwall Computer System Co., Ltd.", "HUNAN-GREATWALL-SYSTEM" }, { 0x505967, "Intent Solutions Inc", "INTENT-SOLUTIONS" }, { 0x505A65, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x505AC6, "GUANGDONG SUPER TELECOM CO.,LTD.", "GUANGDONG-SUPER-TELECOM" }, { 0x505BC2, "Liteon Technology Corporation", "LITEON" }, { 0x505D7A, "zte corporation", "ZTE" }, { 0x505DAC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x505FB5, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x506028, "Xirrus Inc.", "XIRRUS" }, { 0x506184, "Avaya Inc", "AVAYA" }, { 0x5061BF, "Cisco Systems, Inc", "CISCO" }, { 0x5061D6, "Indu-Sol GmbH", "INDU-SOL" }, { 0x5061F6, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x506255, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x506313, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x506391, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x50642B, "XIAOMI Electronics,CO.,LTD", "XIAOMI-ELECTRONICS" }, { 0x506441, "Greenlee", "GREENLEE" }, { 0x506583, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x5065F3, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x5066E5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x506787, "Planet Networks", "PLANET-NETWORKS" }, { 0x5067AE, "Cisco Systems, Inc", "CISCO" }, { 0x5067F0, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x50680A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5068AC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x506A03, "NETGEAR", "NETGEAR" }, { 0x506B4B, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0x506B8D, "Nutanix", "NUTANIX" }, { 0x506CBE, "InnosiliconTechnology Ltd", "INNOSILICONTECHNOLOGY" }, { 0x506E92, "Innocent Technology Co., Ltd.", "INNOCENT" }, { 0x506F0C, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x506F77, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x506F98, "Sehaj Synergy Technologies Private Limited", "SEHAJ-SYNERGY-TECHNOLOGIES-PRIVATE" }, { 0x506F9A, "Wi-Fi Alliance", "WI-FI-ALLIANCE" }, { 0x507043, "SKY UK LIMITED", "SKY-UK" }, { 0x507097, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x5070E5, "He Shan World Fair Electronics Technology Limited", "HE-SHAN-WORLD-FAIR-ELECTRONICS" }, { 0x507224, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x50724D, "BEG Brueck Electronic GmbH", "BEG-BRUECK" }, { 0x5075F1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x507691, "Tekpea, Inc.", "TEKPEA" }, { 0x5076A6, "Ecil Informatica Ind. Com. Ltda", "ECIL-INFORMATICA-IND-COM-LTDA" }, { 0x5076AF, "Intel Corporate", "INTEL-CORPORATE" }, { 0x507705, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5078B0, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x5078B3, "zte corporation", "ZTE" }, { 0x50795B, "Interexport Telecomunicaciones S.A.", "INTEREXPORT-TELECOMUNICACIONES" }, { 0x507A55, "Apple, Inc.", "APPLE" }, { 0x507AC5, "Apple, Inc.", "APPLE" }, { 0x507B9D, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x507C6F, "Intel Corporate", "INTEL-CORPORATE" }, { 0x507D02, "BIODIT", "BIODIT" }, { 0x507E5D, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x50804A, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0x508140, "HP Inc.", "HP" }, { 0x5082D5, "Apple, Inc.", "APPLE" }, { 0x508492, "Intel Corporate", "INTEL-CORPORATE" }, { 0x508569, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x50874D, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x508789, "Cisco Systems, Inc", "CISCO" }, { 0x5087B8, "Nuvyyo Inc", "NUVYYO" }, { 0x508965, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x5089D1, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x508A06, "Tuya Smart Inc.", "TUYA-SMART" }, { 0x508A0F, "SHENZHEN FISE TECHNOLOGY HOLDING CO.,LTD.", "SHENZHEN-FISE-HOLDING" }, { 0x508A42, "Uptmate Technology Co., LTD", "UPTMATE" }, { 0x508ACB, "SHENZHEN MAXMADE TECHNOLOGY CO., LTD.", "SHENZHEN-MAXMADE" }, { 0x508BB9, "Tuya Smart Inc.", "TUYA-SMART" }, { 0x508C77, "DIRMEIER Schanktechnik GmbH &Co KG", "DIRMEIER-SCHANKTECHNIK" }, { 0x508CB1, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x508CF5, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x508D6F, "CHAHOO Limited", "CHAHOO" }, { 0x508E49, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x508F4C, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x5091E3, "TP-Link Corporation Limited", "TP-LINK" }, { 0x5092B9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x50934F, "Gradual Tecnologia Ltda.", "GRADUAL-TECNOLOGIA-LTDA" }, { 0x509551, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x509707, "Xiamen Paperang Technology Co.,Ltd.", "XIAMEN-PAPERANG" }, { 0x509744, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x509772, "Westinghouse Digital", "WESTINGHOUSE-DIGITAL" }, { 0x509839, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x509871, "Inventum Technologies Private Limited", "INVENTUM-TECHNOLOGIES-PRIVATE" }, { 0x5098B8, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x5098F3, "Rheem Australia Pty Ltd", "RHEEM-AUSTRALIA-PTY" }, { 0x509A46, "Safetrust Inc", "SAFETRUST" }, { 0x509A4C, "Dell Inc.", "DELL" }, { 0x509A88, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x509EA7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x509F27, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x509F3B, "OI ELECTRIC CO.,LTD", "OI-ELECTRIC" }, { 0x50A009, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x50A015, "Shenzhen Yipingfang Network Technology Co., Ltd.", "SHENZHEN-YIPINGFANG-NETWORK" }, { 0x50A030, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x50A054, "Actineon", "ACTINEON" }, { 0x50A0A4, "Nokia", "NOKIA" }, { 0x50A0BF, "Alba Fiber Systems Inc.", "ALBA-FIBER" }, { 0x50A132, "Shenzhen MiaoMing Intelligent Technology Co.,Ltd", "SHENZHEN-MIAOMING-INTELLIGENT" }, { 0x50A4C8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x50A4D0, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x50A5DC, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x50A67F, "Apple, Inc.", "APPLE" }, { 0x50A6E3, "David Clark Company", "DAVID-CLARK-COMPANY" }, { 0x50A715, "Aboundi, Inc.", "ABOUNDI" }, { 0x50A72B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x50A733, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x50A83A, "S Mobile Devices Limited", "S-MOBILE-DEVICES" }, { 0x50A9DE, "Smartcom - Bulgaria AD", "SMARTCOM-BULGARIA-AD" }, { 0x50AB3E, "Qibixx AG", "QIBIXX" }, { 0x50ABBF, "Hoseo Telecom", "HOSEO-TELECOM" }, { 0x50AD71, "Tessolve Semiconductor Private Limited", "TESSOLVE-SEMICONDUCTOR-PRIVATE" }, { 0x50AD92, "NX Technologies", "NX-TECHNOLOGIES" }, { 0x50ADD5, "Dynalec Corporation", "DYNALEC" }, { 0x50AE86, "Linkintec Co., Ltd", "LINKINTEC" }, { 0x50AF4D, "zte corporation", "ZTE" }, { 0x50AF73, "Shenzhen Bitland Information Technology Co., Ltd.", "SHENZHEN-BITLAND-INFORMATION" }, { 0x50B363, "Digitron da Amazonia S/A", "DIGITRON-DA-AMAZONIA-S/A" }, { 0x50B3B4, "Shenzhen Furuilian Electronic Co.,Ltd.", "SHENZHEN-FURUILIAN" }, { 0x50B695, "Micropoint Biotechnologies,Inc.", "MICROPOINT-BIOTECHNOLOGIES" }, { 0x50B7C3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x50B888, "wi2be Tecnologia S/A", "WI2BE-TECNOLOGIA-S/A" }, { 0x50B8A2, "ImTech Technologies LLC,", "IMTECH-TECHNOLOGIES" }, { 0x50BC96, "Apple, Inc.", "APPLE" }, { 0x50BD5F, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x50C006, "Carmanah Signs", "CARMANAH-SIGNS" }, { 0x50C0F0, "Artek Microelectronics Co.,Ltd.", "ARTEK-MICROELECTRONICS" }, { 0x50C1F0, "NXP Semiconductor (Tianjin) LTD.", "NXP-SEMICONDUCTOR-TIANJIN" }, { 0x50C271, "SECURETECH INC", "SECURETECH" }, { 0x50C275, "GN Audio A/S", "GN-AUDIO-A/S" }, { 0x50C2E8, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x50C2ED, "GN Audio A/S", "GN-AUDIO-A/S" }, { 0x50C3A2, "nFore Technology Co.,Ltd.", "NFORE" }, { 0x50C4DD, "BUFFALO.INC", "BUFFALO" }, { 0x50C58D, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x50C68E, "Biwin Semiconductor (HK) Company Limted", "BIWIN-SEMICONDUCTOR-HK-COMPANY-LIMTED" }, { 0x50C6AD, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x50C709, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x50C7BF, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x50C8E5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x50C971, "GN Netcom A/S", "GN-NETCOM-A/S" }, { 0x50C9A0, "SKIPPER AS", "SKIPPER-AS" }, { 0x50CCF8, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0x50CD22, "Avaya Inc", "AVAYA" }, { 0x50CD32, "NanJing Chaoran Science & Technology Co.,Ltd.", "NANJING-CHAORAN-SCIENCE" }, { 0x50CE75, "Measy Electronics Co., Ltd.", "MEASY-ELECTRONICS" }, { 0x50CEE3, "Gigafirm.co.LTD", "GIGAFIRM" }, { 0x50D065, "ESYLUX GmbH", "ESYLUX" }, { 0x50D213, "CviLux Corporation", "CVILUX" }, { 0x50D274, "Steffes Corporation", "STEFFES" }, { 0x50D2F5, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x50D33B, "cloudnineinfo", "CLOUDNINEINFO" }, { 0x50D37F, "Yu Fly Mikly Way Science and Technology Co., Ltd.", "YU-FLY-MIKLY-WAY-SCIENCE" }, { 0x50D45C, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x50D4F7, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x50D59C, "Thai Habel Industrial Co., Ltd.", "THAI-HABEL-INDUSTRIAL" }, { 0x50D6D7, "Takahata Precision", "TAKAHATA-PRECISION" }, { 0x50D753, "CONELCOM GmbH", "CONELCOM" }, { 0x50DA00, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x50DAD6, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x50DB3F, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0x50DCD0, "Observint Technologies, Inc.", "OBSERVINT-TECHNOLOGIES" }, { 0x50DCE7, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x50DCFC, "ECOCOM", "ECOCOM" }, { 0x50DD4F, "Automation Components, Inc", "AUTOMATION-COMPONENTS" }, { 0x50DE06, "Apple, Inc.", "APPLE" }, { 0x50DE19, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x50DF95, "Lytx", "LYTX" }, { 0x50E039, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x50E085, "Intel Corporate", "INTEL-CORPORATE" }, { 0x50E0C7, "TurControlSystme AG", "TURCONTROLSYSTME" }, { 0x50E0EF, "Nokia", "NOKIA" }, { 0x50E14A, "Private", "PRIVATE" }, { 0x50E24E, "zte corporation", "ZTE" }, { 0x50E4E0, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x50E538, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x50E549, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x50E636, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x50E666, "Shenzhen Techtion Electronics Co., Ltd.", "SHENZHEN-TECHTION-ELECTRONICS" }, { 0x50E7A0, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x50E7B7, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x50E971, "Jibo, Inc.", "JIBO" }, { 0x50E9DF, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0x50EAD6, "Apple, Inc.", "APPLE" }, { 0x50EB1A, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x50EB71, "Intel Corporate", "INTEL-CORPORATE" }, { 0x50EBF6, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x50EC50, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x50ED3C, "Apple, Inc.", "APPLE" }, { 0x50ED78, "Changzhou Yongse Infotech Co.,Ltd", "CHANGZHOU-YONGSE-INFOTECH" }, { 0x50ED94, "EGATEL SL", "EGATEL-SL" }, { 0x50F003, "Open Stack, Inc.", "OPEN-STACK" }, { 0x50F0D3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x50F14A, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x50F222, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x50F261, "Photon Sail Technologies", "PHOTON-SAIL-TECHNOLOGIES" }, { 0x50F43C, "Leeo Inc", "LEEO" }, { 0x50F4EB, "Apple, Inc.", "APPLE" }, { 0x50F520, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x50F5DA, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x50F61A, "Kunshan JADE Technologies co., Ltd.", "KUNSHAN-JADE-TECHNOLOGIES" }, { 0x50F722, "Cisco Systems, Inc", "CISCO" }, { 0x50F7ED, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x50F8A5, "eWBM Co., Ltd.", "EWBM" }, { 0x50F908, "Wizardlab Co., Ltd.", "WIZARDLAB" }, { 0x50F958, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x50FA84, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x50FAAB, "L-tek d.o.o.", "L-TEK-D-O-O" }, { 0x50FB19, "CHIPSEA TECHNOLOGIES (SHENZHEN) CORP.", "CHIPSEA-TECHNOLOGIES-SHENZHEN" }, { 0x50FC30, "Treehouse Labs", "TREEHOUSE-LABS" }, { 0x50FC9F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x50FDD5, "SJI Industry Company", "SJI-INDUSTRY-COMPANY" }, { 0x50FE0C, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x50FEF2, "Sify Technologies Ltd", "SIFY-TECHNOLOGIES" }, { 0x50FF20, "Keenetic Limited", "KEENETIC" }, { 0x50FF99, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x525400, "possible QEMU VM", "QEMU-VIRTUAL" }, { 0x540237, "Teltronic AG", "TELTRONIC" }, { 0x540295, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x540384, "Hongkong Nano IC Technologies Co., Ltd", "HONGKONG-NANO-IC-TECHNOLOGIES" }, { 0x5403F5, "EBN Technology Corp.", "EBN" }, { 0x540496, "Gigawave LTD", "GIGAWAVE" }, { 0x5404A6, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x540536, "Vivago Oy", "VIVAGO-OY" }, { 0x54055F, "Alcatel Lucent", "ALCATEL-LUCENT" }, { 0x540593, "WOORI ELEC Co.,Ltd", "WOORI-ELEC" }, { 0x5405DB, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x54068B, "Ningbo Deli Kebei Technology Co.LTD", "NINGBO-DELI-KEBEI" }, { 0x540764, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x54077D, "NETGEAR", "NETGEAR" }, { 0x54083B, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x540910, "Apple, Inc.", "APPLE" }, { 0x540955, "zte corporation", "ZTE" }, { 0x54098D, "deister electronic GmbH", "DEISTER" }, { 0x540DF9, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x540E2D, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x540E58, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x540F57, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x54102E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x541031, "SMARTO", "SMARTO" }, { 0x5410EC, "Microchip Technology Inc.", "MICROCHIP" }, { 0x54112F, "Sulzer Pump Solutions Finland Oy", "SULZER-PUMP-SOLUTIONS-FINLAND-OY" }, { 0x541149, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x541159, "Nettrix Information Industry co.LTD", "NETTRIX-INFORMATION-INDUSTRY" }, { 0x54115F, "Atamo Pty Ltd", "ATAMO-PTY" }, { 0x5412CB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x541310, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x541379, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x541473, "Wingtech Group (HongKong)Limited", "WINGTECH-GROUP-HONGKONG" }, { 0x5414A7, "Nanjing Qinheng Microelectronics Co., Ltd.", "NANJING-QINHENG-MICROELECTRONICS" }, { 0x5414F3, "Intel Corporate", "INTEL-CORPORATE" }, { 0x5414FD, "Orbbec 3D Technology International", "ORBBEC-3D" }, { 0x541589, "MCS Logic Inc.", "MCS-LOGIC" }, { 0x541651, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0x5419C8, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x541B5D, "Techno-Innov", "TECHNO-INNOV" }, { 0x541D61, "YEESTOR Microelectronics Co., Ltd", "YEESTOR-MICROELECTRONICS" }, { 0x541DFB, "Freestyle Energy Ltd", "FREESTYLE-ENERGY" }, { 0x541E56, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x541F8D, "zte corporation", "ZTE" }, { 0x541FD5, "Advantage Electronics", "ADVANTAGE-ELECTRONICS" }, { 0x542018, "Tely Labs", "TELY-LABS" }, { 0x54211D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x542160, "Alula", "ALULA" }, { 0x54219D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5422F8, "zte corporation", "ZTE" }, { 0x5425EA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x542696, "Apple, Inc.", "APPLE" }, { 0x54271E, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x542758, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0x54276C, "Jiangsu Houge Technology Corp.", "JIANGSU-HOUGE" }, { 0x54278D, "NXP (China) Management Ltd.", "NXP-CHINA-MANAGEMENT" }, { 0x542A1B, "Sonos, Inc.", "SONOS" }, { 0x542A9C, "LSY Defense, LLC.", "LSY-DEFENSE" }, { 0x542AA2, "Alpha Networks Inc.", "ALPHA-NETWORKS" }, { 0x542B57, "Night Owl SP", "NIGHT-OWL-SP" }, { 0x542B8D, "Apple, Inc.", "APPLE" }, { 0x542BDE, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x542CEA, "PROTECTRON", "PROTECTRON" }, { 0x542F04, "Shanghai Longcheer Technology Co., Ltd.", "SHANGHAI-LONGCHEER" }, { 0x542F89, "Euclid Laboratories, Inc.", "EUCLID-LABORATORIES" }, { 0x542F8A, "TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO", "TELLESCOM-INDUSTRIA-E-COMERCIO-EM-TELECOMUNICACAO" }, { 0x543131, "Raster Vision Ltd", "RASTER-VISION" }, { 0x5431D4, "TGW Mechanics GmbH", "TGW-MECHANICS" }, { 0x543204, "Espressif Inc.", "ESPRESSIF" }, { 0x5432C7, "Apple, Inc.", "APPLE" }, { 0x5433C6, "Mist Systems, Inc.", "MIST" }, { 0x5433CB, "Apple, Inc.", "APPLE" }, { 0x5434EF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x543530, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x5435DF, "Symeo GmbH", "SYMEO" }, { 0x54369B, "1Verge Internet Technology (Beijing) Co., Ltd.", "1VERGE-INTERNET-BEIJING" }, { 0x5437BB, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x543968, "Edgewater Networks Inc", "EDGEWATER-NETWORKS" }, { 0x5439DF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x543AD6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x543B30, "duagon AG", "DUAGON" }, { 0x543D37, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x543D92, "WIRELESS-TEK TECHNOLOGY LIMITED", "WIRELESS-TEK" }, { 0x543E64, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x5440AD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x544249, "Sony Corporation", "SONY" }, { 0x5443B2, "Espressif Inc.", "ESPRESSIF" }, { 0x544408, "Nokia Corporation", "NOKIA" }, { 0x54443B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5444A3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x544538, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x544617, "zte corporation", "ZTE" }, { 0x54466B, "Shenzhen CZTIC Electronic Technology Co., Ltd", "SHENZHEN-CZTIC" }, { 0x544741, "XCHENG HOLDING", "XCHENG-HOLDING" }, { 0x5447CC, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x5447D3, "TSAT AS", "TSAT-AS" }, { 0x5447E8, "Syrotech Networks. Ltd.", "SYROTECH-NETWORKS" }, { 0x544810, "Dell Inc.", "DELL" }, { 0x54489C, "CDOUBLES ELECTRONICS CO. LTD.", "CDOUBLES-ELECTRONICS" }, { 0x5448E6, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x5449DF, "Peloton Interactive, Inc", "PELOTON-INTERACTIVE" }, { 0x5449FC, "Ubee Interactive Co., Limited", "UBEE-INTERACTIVE" }, { 0x544A00, "Cisco Systems, Inc", "CISCO" }, { 0x544A05, "wenglor sensoric gmbh", "WENGLOR-SENSORIC" }, { 0x544A16, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x544B8C, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x544C8A, "Microsoft Corporation", "MICROSOFT" }, { 0x544E45, "Private", "PRIVATE" }, { 0x544E90, "Apple, Inc.", "APPLE" }, { 0x54511B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x545146, "AMG Systems Ltd.", "AMG" }, { 0x5451DE, "Cisco Systems, Inc", "CISCO" }, { 0x545284, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x5453ED, "Sony Corporation", "SONY" }, { 0x545414, "Digital RF Corea, Inc", "DIGITAL-RF-COREA" }, { 0x5454CF, "PROBEDIGITAL CO.,LTD", "PROBEDIGITAL" }, { 0x5455D5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x545AA6, "Espressif Inc.", "ESPRESSIF" }, { 0x545DD9, "EDISTEC", "EDISTEC" }, { 0x545EBD, "NL Technologies", "NL-TECHNOLOGIES" }, { 0x545FA7, "Jibaiyou Technology Co.,Ltd.", "JIBAIYOU" }, { 0x545FA9, "Teracom Limited", "TERACOM" }, { 0x546009, "Google, Inc.", "GOOGLE" }, { 0x546172, "ZODIAC AEROSPACE SAS", "ZODIAC-AEROSPACE-SAS" }, { 0x5461EA, "Zaplox AB", "ZAPLOX-AB" }, { 0x5462E2, "Apple, Inc.", "APPLE" }, { 0x5464D9, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x5464DE, "u-blox AG", "U-BLOX" }, { 0x546503, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0x5465DE, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x54666C, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x5466F9, "ConMet", "CONMET" }, { 0x546706, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x546751, "Compal Broadband Networks, Inc.", "COMPAL-BROADBAND-NETWORKS" }, { 0x5467E6, "SHENZHEN MTC CO LTD", "SHENZHEN-MTC" }, { 0x546925, "PS INODIC CO., LTD.", "PS-INODIC" }, { 0x546990, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x546AD8, "Elster Water Metering", "ELSTER-WATER-METERING" }, { 0x546C0E, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x546CEB, "Intel Corporate", "INTEL-CORPORATE" }, { 0x546D52, "TOPVIEW OPTRONICS CORP.", "TOPVIEW-OPTRONICS" }, { 0x546F71, "uAvionix Corporation", "UAVIONIX" }, { 0x547068, "VTech Communications Limited", "VTECH-COMMUNICATION" }, { 0x5471DD, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x54724F, "Apple, Inc.", "APPLE" }, { 0x54725E, "UNION MAN TECHNOLOGY CO.,LTD", "UNION-MAN" }, { 0x547398, "Toyo Electronics Corporation", "TOYO-ELECTRONICS" }, { 0x5474E6, "Webtech Wireless", "WEBTECH-WIRELESS" }, { 0x547595, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x5475D0, "Cisco Systems, Inc", "CISCO" }, { 0x5476B2, "Raisecom Technology CO., LTD", "RAISECOM" }, { 0x547787, "Earda Technologies co Ltd", "EARDA-TECHNOLOGIES" }, { 0x54778A, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x54781A, "Cisco Systems, Inc", "CISCO" }, { 0x5478C9, "AMPAK Technology,Inc.", "AMPAK" }, { 0x547975, "Nokia Corporation", "NOKIA" }, { 0x547A52, "CTE International srl", "CTE-SRL" }, { 0x547C69, "Cisco Systems, Inc", "CISCO" }, { 0x547D40, "Powervision Tech Inc.", "POWERVISION-TECH" }, { 0x547DCD, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x547F54, "INGENICO", "INGENICO" }, { 0x547FA8, "TELCO systems, s.r.o.", "TELCO-S-R-O" }, { 0x547FBC, "iodyne", "IODYNE" }, { 0x547FEE, "Cisco Systems, Inc", "CISCO" }, { 0x548028, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x54812D, "PAX Computer Technology(Shenzhen) Ltd.", "PAX-SHENZHEN" }, { 0x5481AD, "Eagle Research Corporation", "EAGLE-RESEARCH" }, { 0x54833A, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x54847B, "Digital Devices GmbH", "DIGITAL-DEVICES" }, { 0x5484DC, "zte corporation", "ZTE" }, { 0x5486BC, "Cisco Systems, Inc", "CISCO" }, { 0x54880E, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x5488DE, "Cisco Systems, Inc", "CISCO" }, { 0x5488FE, "Xiaoniu network technology (Shanghai) Co., Ltd.", "XIAONIU-NETWORK-SHANGHAI" }, { 0x548922, "Zelfy Inc", "ZELFY" }, { 0x548998, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x548ABA, "Cisco Systems, Inc", "CISCO" }, { 0x548C81, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x548CA0, "Liteon Technology Corporation", "LITEON" }, { 0x548D5A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x5491AF, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x549209, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5492BE, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x549359, "SHENZHEN TWOWING TECHNOLOGIES CO.,LTD.", "SHENZHEN-TWOWING-TECHNOLOGIES" }, { 0x549478, "Silvershore Technology Partners", "SILVERSHORE-PARTNERS" }, { 0x549963, "Apple, Inc.", "APPLE" }, { 0x549A11, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x549A16, "Uzushio Electric Co.,Ltd.", "UZUSHIO-ELECTRIC" }, { 0x549A4C, "GUANGDONG HOMECARE TECHNOLOGY CO.,LTD.", "GUANGDONG-HOMECARE" }, { 0x549B12, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x549B49, "NEC Platforms, Ltd.", "NEC-PLATFORMS" }, { 0x549B72, "Ericsson AB", "ERICSSON-AB" }, { 0x549C27, "Plasma Cloud Limited", "PLASMA-CLOUD" }, { 0x549D85, "EnerAccess inc", "ENERACCESS" }, { 0x549F06, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0x549F13, "Apple, Inc.", "APPLE" }, { 0x549F35, "Dell Inc.", "DELL" }, { 0x549FAE, "iBASE Gaming Inc", "IBASE-GAMING" }, { 0x549FC6, "Cisco Systems, Inc", "CISCO" }, { 0x54A04F, "t-mac Technologies Ltd", "T-MAC-TECHNOLOGIES" }, { 0x54A050, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x54A274, "Cisco Systems, Inc", "CISCO" }, { 0x54A31B, "Shenzhen Linkworld Technology Co,.LTD", "SHENZHEN-LINKWORLD" }, { 0x54A3FA, "BQT Solutions (Australia)Pty Ltd", "BQT-SOLUTIONS-AUSTRALIA-PTY" }, { 0x54A493, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x54A51B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x54A54B, "NSC Communications Siberia Ltd", "NSC-COMMUNICATION-SIBERIA" }, { 0x54A619, "Alcatel-Lucent Shanghai Bell Co., Ltd", "ALCATEL-LUCENT-SHANGHAI-BELL" }, { 0x54A65C, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x54A6DB, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x54A703, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x54A9C8, "Home Control Singapore Pte Ltd", "HOME-CONTROL-SINGAPORE-PTE" }, { 0x54A9D4, "Minibar Systems", "MINIBAR" }, { 0x54AB3A, "Quanta Computer Inc.", "QUANTA" }, { 0x54ACFC, "LIZN ApS", "LIZN-APS" }, { 0x54AE27, "Apple, Inc.", "APPLE" }, { 0x54AED0, "DASAN Networks, Inc.", "DASAN-NETWORKS" }, { 0x54AED2, "CSL Dualcom Ltd", "CSL-DUALCOM" }, { 0x54AF97, "TP-Link Corporation Limited", "TP-LINK" }, { 0x54B121, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x54B203, "PEGATRON CORPORATION", "PEGATRON" }, { 0x54B56C, "Xi'an NovaStar Tech Co., Ltd", "XI-AN-NOVASTAR-TECH" }, { 0x54B620, "SUHDOL E&C Co.Ltd.", "SUHDOL-E-C" }, { 0x54B753, "Hunan Fenghui Yinjia Science And Technology Co.,Ltd", "HUNAN-FENGHUI-YINJIA-SCIENCE" }, { 0x54B7BD, "Arcadyan Corporation", "ARCADYAN" }, { 0x54B7E5, "Rayson Technology Co., Ltd.", "RAYSON" }, { 0x54B802, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x54B80A, "D-Link International", "D-LINK" }, { 0x54BAD6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x54BD79, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x54BE53, "zte corporation", "ZTE" }, { 0x54BEF7, "PEGATRON CORPORATION", "PEGATRON" }, { 0x54BF64, "Dell Inc.", "DELL" }, { 0x54C250, "Iskratel d.o.o.", "ISKRATEL-D-O-O" }, { 0x54C33E, "Ciena Corporation", "CIENA" }, { 0x54C415, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x54C45B, "Arcadyan Corporation", "ARCADYAN" }, { 0x54C480, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x54C57A, "Sunnovo International Limited", "SUNNOVO" }, { 0x54C6FF, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x54C80F, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x54C9DF, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0x54CD10, "Panasonic Mobile Communications Co.,Ltd.", "PANASONIC-MOBILE-COMMUNICATION" }, { 0x54CDA7, "Fujian Shenzhou Electronic Co.,Ltd", "FUJIAN-SHENZHOU" }, { 0x54CDEE, "ShenZhen Apexis Electronic Co.,Ltd", "SHENZHEN-APEXIS" }, { 0x54CE69, "Hikari Trading Co.,Ltd.", "HIKARI-TRADING" }, { 0x54CE82, "zte corporation", "ZTE" }, { 0x54CF8D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x54D0B4, "Xiamen Four-Faith Communication Technology Co.,Ltd", "XIAMEN-FOUR-FAITH-COMMUNICATION" }, { 0x54D0ED, "AXIM Communications", "AXIM-COMMUNICATION" }, { 0x54D163, "MAX-TECH,INC", "MAX-TECH" }, { 0x54D17D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x54D1B0, "Universal Laser Systems, Inc", "UNIVERSAL-LASER" }, { 0x54D272, "Nuki Home Solutions GmbH", "NUKI-HOME-SOLUTIONS" }, { 0x54D46F, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x54D751, "Proximus", "PROXIMUS" }, { 0x54D7E3, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x54D9C6, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x54D9E4, "BRILLIANTTS CO., LTD", "BRILLIANTTS" }, { 0x54DBA2, "Fibrain", "FIBRAIN" }, { 0x54DC1D, "Yulong Computer Telecommunication Scientific (Shenzhen) Co.,Ltd", "YULONG-TELECOMMUNICATION-SCIENTIFIC-SHENZHEN" }, { 0x54DED0, "Sevio Srl", "SEVIO-SRL" }, { 0x54DF00, "Ulterius Technologies, LLC", "ULTERIUS-TECHNOLOGIES" }, { 0x54DF1B, "Vestel Elektronik San ve Tic. A.S.", "VESTEL-ELEKTRONIK-SAN-VE-TIC" }, { 0x54DF24, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x54DF63, "Intrakey technologies GmbH", "INTRAKEY-TECHNOLOGIES" }, { 0x54E005, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x54E019, "Ring LLC", "RING" }, { 0x54E032, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x54E061, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x54E140, "INGENICO", "INGENICO" }, { 0x54E15B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x54E1AD, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x54E1B6, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x54E2C8, "Dongguan Aoyuan Electronics Technology Co., Ltd", "DONGGUAN-AOYUAN-ELECTRONICS" }, { 0x54E2E0, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x54E3B0, "JVL Industri Elektronik", "JVL-INDUSTRI-ELEKTRONIK" }, { 0x54E3F6, "Alcatel-Lucent", "ALCATEL-LUCENT" }, { 0x54E43A, "Apple, Inc.", "APPLE" }, { 0x54E4A9, "BHR Tech GmbH", "BHR-TECH" }, { 0x54E4BD, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0x54E61B, "Apple, Inc.", "APPLE" }, { 0x54E63F, "ShenZhen LingKeWeiEr Technology Co., Ltd.", "SHENZHEN-LINGKEWEIER" }, { 0x54E6FC, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x54E7D5, "Sun Cupid Technology (HK) LTD", "SUN-CUPID-HK" }, { 0x54EAA8, "Apple, Inc.", "APPLE" }, { 0x54EBE9, "Apple, Inc.", "APPLE" }, { 0x54EC2F, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x54EDA3, "Navdy, Inc.", "NAVDY" }, { 0x54EE75, "Wistron InfoComm(Kunshan)Co.,Ltd.", "WISTRON-INFOCOMM-KUNSHAN" }, { 0x54EF33, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x54EF43, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x54EF44, "Lumi United Technology Co., Ltd", "LUMI-UNITED" }, { 0x54EF92, "Shenzhen Elink Technology Co., LTD", "SHENZHEN-ELINK" }, { 0x54EFFE, "Fullpower Technologies, Inc.", "FULLPOWER-TECHNOLOGIES" }, { 0x54F15F, "Sichuan AI-Link Technology Co., Ltd.", "SICHUAN-AI-LINK" }, { 0x54F201, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x54F294, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x54F29F, "HUNAN FN-LINK TECHNOLOGY LIMITED", "HUNAN-FN-LINK" }, { 0x54F5B6, "ORIENTAL PACIFIC INTERNATIONAL LIMITED", "ORIENTAL-PACIFIC" }, { 0x54F607, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x54F666, "Berthold Technologies GmbH and Co.KG", "BERTHOLD-TECHNOLOGIES" }, { 0x54F6C5, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0x54F6E2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x54F82A, "u-blox AG", "U-BLOX" }, { 0x54F876, "ABB AG", "ABB" }, { 0x54F8F0, "Tesla Inc", "TESLA" }, { 0x54FA3E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x54FA96, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x54FB58, "WISEWARE, Lda", "WISEWARE-LDA" }, { 0x54FCF0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x54FDBF, "Scheidt & Bachmann GmbH", "SCHEIDT-BACHMANN" }, { 0x54FF82, "Davit Solution co.", "DAVIT-SOLUTION" }, { 0x54FFCF, "Mopria Alliance", "MOPRIA-ALLIANCE" }, { 0x580032, "Genexis B.V.", "GENEXIS-B-V" }, { 0x5800BB, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x5800E3, "Liteon Technology Corporation", "LITEON" }, { 0x5803FB, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x580454, "ICOMM HK LIMITED", "ICOMM-HK" }, { 0x5804CB, "Tianjin Huisun Technology Co.,Ltd.", "TIANJIN-HUISUN" }, { 0x580528, "LABRIS NETWORKS", "LABRIS-NETWORKS" }, { 0x580556, "Elettronica GF S.r.L.", "ELETTRONICA-GF" }, { 0x5808FA, "Fiber Optic & telecommunication INC.", "FIBER-OPTIC-TELECOMMUNICATION" }, { 0x580943, "Private", "PRIVATE" }, { 0x5809E5, "Kivic Inc.", "KIVIC" }, { 0x580A20, "Cisco Systems, Inc", "CISCO" }, { 0x580AD4, "Apple, Inc.", "APPLE" }, { 0x581031, "Hon Hai Precision IND.CO.,LTD", "HON-HAI-PRECISION-IND" }, { 0x58108C, "Intelbras", "INTELBRAS" }, { 0x5810B7, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0x581122, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x581243, "AcSiP Technology Corp.", "ACSIP" }, { 0x5813D3, "Gemtek Technology Co., Ltd.", "GEMTEK" }, { 0x581626, "Avaya Inc", "AVAYA" }, { 0x5816D7, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x58170C, "Sony Corporation", "SONY" }, { 0x5819F8, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x581CBD, "Affinegy", "AFFINEGY" }, { 0x581CF8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x581D91, "Advanced Mobile Telecom co.,ltd.", "ADVANCED-MOBILE-TELECOM" }, { 0x581DD8, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x581F28, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x581F67, "Open-m technology limited", "OPEN-M" }, { 0x581FAA, "Apple, Inc.", "APPLE" }, { 0x581FEF, "Tuttnaer LTD", "TUTTNAER" }, { 0x582059, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x582071, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x58208A, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x5820B1, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x582136, "KMB systems, s.r.o.", "KMB-S-R-O" }, { 0x5821E9, "TWPI", "TWPI" }, { 0x58238C, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x582429, "Google, Inc.", "GOOGLE" }, { 0x582575, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x58278C, "BUFFALO.INC", "BUFFALO" }, { 0x582AF7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x582B0A, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x582BDB, "Pax AB", "PAX-AB" }, { 0x582D34, "Qingping Electronics (Suzhou) Co., Ltd", "QINGPING-ELECTRONICS-SUZHOU" }, { 0x582EFE, "Lighting Science Group", "LIGHTING-SCIENCE-GROUP" }, { 0x582F40, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x582F42, "Universal Electric Corporation", "UNIVERSAL-ELECTRIC" }, { 0x582FF7, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x58305B, "Shanghai Junqian Sensing Technology Co.,LTD", "SHANGHAI-JUNQIAN-SENSING" }, { 0x583112, "DRUST", "DRUST" }, { 0x583277, "Reliance Communications LLC", "RELIANCE-COMMUNICATION" }, { 0x58343B, "Glovast Technology Ltd.", "GLOVAST" }, { 0x583526, "DEEPLET TECHNOLOGY CORP", "DEEPLET" }, { 0x58355D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x58356B, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x5835D9, "Cisco Systems, Inc", "CISCO" }, { 0x583653, "Apple, Inc.", "APPLE" }, { 0x583879, "RICOH COMPANY, LTD.", "RICOH-COMPANY" }, { 0x583BD9, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x583CC6, "Omneality Ltd.", "OMNEALITY" }, { 0x583F54, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x58404E, "Apple, Inc.", "APPLE" }, { 0x584120, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x5842E4, "Baxter International Inc", "BAXTER" }, { 0x5843AB, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x584498, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x58454C, "Ericsson AB", "ERICSSON-AB" }, { 0x58468F, "Koncar Electronics and Informatics", "KONCAR-ELECTRONICS-AND-INFORMATICS" }, { 0x5846E1, "Baxter International Inc", "BAXTER" }, { 0x584704, "Shenzhen Webridge Technology Co.,Ltd", "SHENZHEN-WEBRIDGE" }, { 0x5847CA, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x584822, "Sony Corporation", "SONY" }, { 0x584849, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x5848C0, "COFLEC", "COFLEC" }, { 0x584925, "E3 Enterprise", "E3" }, { 0x58493B, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x5849BA, "Chitai Electronic Corp.", "CHITAI" }, { 0x584C19, "Chongqing Guohong Technology Development Company Limited", "CHONGQING-GUOHONG-DEVELOPMENT-COMPANY" }, { 0x584CEE, "Digital One Technologies, Limited", "DIGITAL-ONE-TECHNOLOGIES" }, { 0x584D42, "Dragos, Inc.", "DRAGOS" }, { 0x585076, "Linear Equipamentos Eletronicos SA", "LINEAR-EQUIPAMENTOS-ELETRONICOS" }, { 0x5850AB, "TLS Corporation", "TLS" }, { 0x5850E6, "Best Buy Corporation", "BEST-BUY" }, { 0x5850ED, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x58528A, "Mitsubishi Electric Corporation", "MITSUBISHI-ELECTRIC" }, { 0x5853C0, "Beijing Guang Runtong Technology Development Company co.,Ltd", "BEIJING-GUANG-RUNTONG-DEVELOPMENT-COMPANY" }, { 0x585595, "Apple, Inc.", "APPLE" }, { 0x5855CA, "Apple, Inc.", "APPLE" }, { 0x58569F, "Cisco Systems, Inc", "CISCO" }, { 0x5856C2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5856E8, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x58570D, "Danfoss Solar Inverters", "DANFOSS-SOLAR-INVERTERS" }, { 0x5858CD, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x5859C2, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x585B69, "TVT CO., LTD", "TVT" }, { 0x585FF6, "zte corporation", "ZTE" }, { 0x58605F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5860D8, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x586163, "Quantum Networks (SG) Pte. Ltd.", "QUANTUM-NETWORKS-SG-PTE" }, { 0x586356, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0x58639A, "TPL SYSTEMES", "TPL-SYSTEMES" }, { 0x5864C4, "Apple, Inc.", "APPLE" }, { 0x5865E6, "infomark", "INFOMARK" }, { 0x5866BA, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x58671A, "Barnes&Noble", "BARNES-NOBLE" }, { 0x58677F, "Clare Controls Inc.", "CLARE-CONTROLS" }, { 0x58685D, "Tempo Australia Pty Ltd", "TEMPO-AUSTRALIA-PTY" }, { 0x586861, "VIASAT, INCORPORATED", "VIASAT-INCORPORATED" }, { 0x58696C, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0x5869F9, "Fusion Transactive Ltd.", "FUSION-TRANSACTIVE" }, { 0x586AB1, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x586B14, "Apple, Inc.", "APPLE" }, { 0x586C25, "Intel Corporate", "INTEL-CORPORATE" }, { 0x586D67, "Intel Corporate", "INTEL-CORPORATE" }, { 0x586D8F, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x586ED6, "Private", "PRIVATE" }, { 0x58707F, "Ericsson AB", "ERICSSON-AB" }, { 0x5870C6, "Shanghai Xiaoyi Technology Co., Ltd.", "SHANGHAI-XIAOYI" }, { 0x5873D1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5873D8, "Apple, Inc.", "APPLE" }, { 0x587521, "CJSC RTSoft", "CJSC-RTSOFT" }, { 0x587675, "Beijing ECHO Technologies Co.,Ltd", "BEIJING-ECHO-TECHNOLOGIES" }, { 0x5876AC, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0x5876B3, "Ubee Interactive Co., Limited", "UBEE-INTERACTIVE" }, { 0x5876C5, "DIGI I'S LTD", "DIGI-I-S" }, { 0x587A4D, "Stonesoft Corporation", "STONESOFT" }, { 0x587A62, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x587A6A, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x587BE9, "AirPro Technology India Pvt. Ltd", "AIRPRO-INDIA-PVT" }, { 0x587DB6, "Northern Data AG", "NORTHERN-DATA" }, { 0x587E61, "Qingdao Hisense Communications Co.,Ltd.", "QINGDAO-HISENSE-COMMUNICATION" }, { 0x587F57, "Apple, Inc.", "APPLE" }, { 0x587F66, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x587FB7, "SONAR INDUSTRIAL CO., LTD.", "SONAR-INDUSTRIAL" }, { 0x587FC8, "S2M", "S2M" }, { 0x58821D, "H. Schomäcker GmbH", "H-SCHOMAECKER" }, { 0x5882A8, "Microsoft", "MICROSOFT" }, { 0x5884E4, "IP500 Alliance e.V.", "IP500-ALLIANCE" }, { 0x58856E, "QSC AG", "QSC" }, { 0x5885A2, "Realme Chongqing MobileTelecommunications Corp Ltd", "REALME-CHONGQING-MOBILETELECOMMUNICATIONS" }, { 0x5885E9, "Realme Chongqing MobileTelecommunications Corp Ltd", "REALME-CHONGQING-MOBILETELECOMMUNICATIONS" }, { 0x588694, "EFM Networks", "EFM-NETWORKS" }, { 0x58874C, "LITE-ON CLEAN ENERGY TECHNOLOGY CORP.", "LITE-ON-CLEAN-ENERGY" }, { 0x58879F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x5887E2, "Shenzhen Coship Electronics Co., Ltd.", "SHENZHEN-COSHIP-ELECTRONICS" }, { 0x588A5A, "Dell Inc.", "DELL" }, { 0x588B1C, "Cisco Systems, Inc", "CISCO" }, { 0x588BF3, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x588D09, "Cisco Systems, Inc", "CISCO" }, { 0x588D64, "Xi'an Clevbee Technology Co.,Ltd", "XI-AN-CLEVBEE" }, { 0x588E81, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x588FCF, "Hangzhou Ezviz Software Co.,Ltd.", "HANGZHOU-EZVIZ-SOFTWARE" }, { 0x589043, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x589153, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0x5891CF, "Intel Corporate", "INTEL-CORPORATE" }, { 0x58920D, "Kinetic Avionics Limited", "KINETIC-AVIONICS" }, { 0x589351, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x589396, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x5893D8, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x58946B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x5894A2, "KETEK GmbH", "KETEK" }, { 0x5894AE, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x5894B2, "BrainCo", "BRAINCO" }, { 0x5894CF, "Vertex Standard LMR, Inc.", "VERTEX-STANDARD-LMR" }, { 0x58957E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x5895D8, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x58961D, "Intel Corporate", "INTEL-CORPORATE" }, { 0x589630, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x58971E, "Cisco Systems, Inc", "CISCO" }, { 0x5897BD, "Cisco Systems, Inc", "CISCO" }, { 0x589835, "Technicolor Delivery Technologies Belgium NV", "TECHNICOLOR-DELIVERY-TECHNOLOGIES-BELGIUM-NV" }, { 0x58986F, "Revolution Display", "REVOLUTION-DISPLAY" }, { 0x589A3E, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x589B0B, "Shineway Technologies, Inc.", "SHINEWAY-TECHNOLOGIES" }, { 0x589B4A, "DWnet Technologies(Suzhou) Corporation", "DWNET-TECHNOLOGIES-SUZHOU" }, { 0x589BF7, "Hefei Radio Communication Technology Co., Ltd", "HEFEI-RADIO-COMMUNICATION" }, { 0x589CFC, "FreeBSD Foundation", "FREEBSD-FOUNDATION" }, { 0x589EC6, "Gigaset Communications GmbH", "GIGASET-COMMUNICATION" }, { 0x58A023, "Intel Corporate", "INTEL-CORPORATE" }, { 0x58A0CB, "TrackNet, Inc", "TRACKNET" }, { 0x58A15F, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x58A2B5, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x58A48E, "PixArt Imaging Inc.", "PIXART-IMAGING" }, { 0x58A639, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x58A76F, "iD corporation", "ID" }, { 0x58A839, "Intel Corporate", "INTEL-CORPORATE" }, { 0x58A87B, "Fitbit, Inc.", "FITBIT" }, { 0x58AC78, "Cisco Systems, Inc", "CISCO" }, { 0x58AD12, "Apple, Inc.", "APPLE" }, { 0x58AE2B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x58AEA8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x58AEF1, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x58B035, "Apple, Inc.", "APPLE" }, { 0x58B03E, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x58B0D4, "ZuniData Systems Inc.", "ZUNIDATA" }, { 0x58B0FE, "Team EPS GmbH", "TEAM-EPS" }, { 0x58B10F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x58B38F, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x58B3FC, "SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.", "SHENZHEN-RF-LINK" }, { 0x58B42D, "YSTen Technology Co.,Ltd", "YSTEN" }, { 0x58B568, "SECURITAS DIRECT ESPAÑA, SAU", "SECURITAS-DIRECT-ESPAA-SAU" }, { 0x58B623, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x58B633, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x58B961, "SOLEM Electronique", "SOLEM-ELECTRONIQUE" }, { 0x58B965, "Apple, Inc.", "APPLE" }, { 0x58B9E1, "Crystalfontz America, Inc.", "CRYSTALFONTZ-AMERICA" }, { 0x58BAD4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x58BC27, "Cisco Systems, Inc", "CISCO" }, { 0x58BC8F, "Cognitive Systems Corp.", "COGNITIVE" }, { 0x58BDA3, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x58BDF9, "Sigrand", "SIGRAND" }, { 0x58BE72, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x58BF25, "Espressif Inc.", "ESPRESSIF" }, { 0x58BFEA, "Cisco Systems, Inc", "CISCO" }, { 0x58C17A, "Cambium Networks Limited", "CAMBIUM-NETWORKS" }, { 0x58C232, "NEC Corporation", "NEC" }, { 0x58C356, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x58C38B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x58C41E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x58C57E, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x58C583, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x58C5CB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x58C6F0, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x58C7AC, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x58C876, "China Mobile (Hangzhou) Information Technology Co., Ltd.", "CHINA-MOBILE-HANGZHOU-INFORMATION" }, { 0x58C935, "Chiun Mai Communication System, Inc", "CHIUN-MAI-COMMUNICATION-SYSTEM" }, { 0x58CB52, "Google, Inc.", "GOOGLE" }, { 0x58CDC9, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x58CE2A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x58CF4B, "Lufkin Industries", "LUFKIN-INDUSTRIES" }, { 0x58CF79, "Espressif Inc.", "ESPRESSIF" }, { 0x58D061, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x58D071, "BW Broadcast", "BW-BROADCAST" }, { 0x58D08F, "IEEE 1904.1 Working Group", "IEEE-1904-1-WORKING-GROUP" }, { 0x58D237, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x58D312, "zte corporation", "ZTE" }, { 0x58D349, "Apple, Inc.", "APPLE" }, { 0x58D391, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0x58D50A, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x58D56E, "D-Link International", "D-LINK" }, { 0x58D67A, "TCPlink", "TCPLINK" }, { 0x58D697, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x58D6D3, "Dairy Cheq Inc", "DAIRY-CHEQ" }, { 0x58D759, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x58D9C3, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x58D9D5, "Tenda Technology Co.,Ltd.Dongguan branch", "TENDA-DONGGUAN-BRANCH" }, { 0x58DB15, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x58DB8D, "Fast Co., Ltd.", "FAST" }, { 0x58DC6D, "Exceptional Innovation, Inc.", "EXCEPTIONAL-INNOVATION" }, { 0x58E02C, "Micro Technic A/S", "MICRO-TECHNIC-A/S" }, { 0x58E16C, "Ying Hua Information Technology (Shanghai)Co., LTD", "YING-HUA-INFORMATION-SHANGHAI" }, { 0x58E28F, "Apple, Inc.", "APPLE" }, { 0x58E326, "Compass Technologies Inc.", "COMPASS-TECHNOLOGIES" }, { 0x58E403, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x58E434, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x58E476, "CENTRON COMMUNICATIONS TECHNOLOGIES FUJIAN CO.,LTD", "CENTRON-COMMUNICATION-TECHNOLOGIES-FUJIAN" }, { 0x58E488, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x58E636, "EVRsafe Technologies", "EVRSAFE-TECHNOLOGIES" }, { 0x58E6BA, "Apple, Inc.", "APPLE" }, { 0x58E747, "Deltanet AG", "DELTANET" }, { 0x58E808, "AUTONICS CORPORATION", "AUTONICS" }, { 0x58E873, "HANGZHOU DANGBEI NETWORK TECH.Co.,Ltd", "HANGZHOU-DANGBEI-NETWORK-TECH" }, { 0x58E876, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x58EAFC, "ELL-IoT Inc", "ELL-IOT" }, { 0x58EB14, "Proteus Digital Health", "PROTEUS-DIGITAL-HEALTH" }, { 0x58ECE1, "Newport Corporation", "NEWPORT" }, { 0x58ECED, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x58EECE, "Icon Time Systems", "ICON-TIME" }, { 0x58EF68, "Belkin International Inc.", "BELKIN" }, { 0x58F102, "BLU Products Inc.", "BLU-PRODUCTS" }, { 0x58F2FC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x58F387, "Airios", "AIRIOS" }, { 0x58F39C, "Cisco Systems, Inc", "CISCO" }, { 0x58F496, "Source Chain", "SOURCE-CHAIN" }, { 0x58F67B, "Xia Men UnionCore Technology LTD.", "XIA-MEN-UNIONCORE" }, { 0x58F6BF, "Kyoto University", "KYOTO-UNIVERSITY" }, { 0x58F85C, "LLC Proizvodstvennaya Kompania TransService", "LLC-PROIZVODSTVENNAYA-KOMPANIA-TRANSSERVICE" }, { 0x58F8D7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x58F987, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x58F98E, "SECUDOS GmbH", "SECUDOS" }, { 0x58FB84, "Intel Corporate", "INTEL-CORPORATE" }, { 0x58FB96, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x58FC20, "Altice Labs S.A.", "ALTICE-LABS" }, { 0x58FC73, "Arria Live Media, Inc.", "ARRIA-LIVE-MEDIA" }, { 0x58FCC6, "TOZO INC", "TOZO" }, { 0x58FCDB, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x58FD20, "Systemhouse Solutions AB", "SYSTEMHOUSE-SOLUTIONS-AB" }, { 0x58FD5D, "Hangzhou Xinyun technology Co., Ltd.", "HANGZHOU-XINYUN" }, { 0x58FDB1, "LG Electronics", "LG-ELECTRONICS" }, { 0x58FDBE, "Shenzhen Taikaida Technology Co., Ltd", "SHENZHEN-TAIKAIDA" }, { 0x5C0038, "Viasat Group S.p.A.", "VIASAT-GROUP" }, { 0x5C0214, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x5C026A, "Applied Vision Corporation", "APPLIED-VISION" }, { 0x5C0272, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x5C0339, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5C045A, "Company NA Stage & Light", "COMPANY-NA-STAGE-LIGHT" }, { 0x5C0758, "Ufispace Co., LTD.", "UFISPACE" }, { 0x5C076F, "Thought Creator", "THOUGHT-CREATOR" }, { 0x5C0947, "Apple, Inc.", "APPLE" }, { 0x5C0979, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5C0A5B, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0x5C0BCA, "Tunstall Nordic AB", "TUNSTALL-NORDIC-AB" }, { 0x5C0C0E, "Guizhou Huaxintong Semiconductor Technology Co Ltd", "GUIZHOU-HUAXINTONG-SEMICONDUCTOR" }, { 0x5C0CBB, "CELIZION Inc.", "CELIZION" }, { 0x5C0CE6, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x5C0E8B, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x5C0FFB, "Amino Communications Ltd", "AMINO-COMMUNICATION" }, { 0x5C101E, "zte corporation", "ZTE" }, { 0x5C10C5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5C1193, "Seal One AG", "SEAL-ONE" }, { 0x5C1437, "Thyssenkrupp Aufzugswerke GmbH", "THYSSENKRUPP-AUFZUGSWERKE" }, { 0x5C1515, "ADVAN", "ADVAN" }, { 0x5C15E1, "AIDC TECHNOLOGY (S) PTE LTD", "AIDC-S-PTE" }, { 0x5C1648, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x5C16C7, "Arista Networks", "ARISTA-NETWORKS" }, { 0x5C1720, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x5C1737, "I-View Now, LLC.", "I-VIEW-NOW" }, { 0x5C17CF, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0x5C17D3, "LGE", "LGE" }, { 0x5C18B5, "Talon Communications", "TALON-COMMUNICATION" }, { 0x5C1A6F, "Cambridge Industries(Group) Co.,Ltd.", "CAMBRIDGE-INDUSTRIES-GROUP" }, { 0x5C1BF4, "Apple, Inc.", "APPLE" }, { 0x5C1CB9, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x5C1DD9, "Apple, Inc.", "APPLE" }, { 0x5C20D0, "Asoni Communication Co., Ltd.", "ASONI-COMMUNICATION" }, { 0x5C2167, "Rockwell Automation", "ROCKWELL-AUTOMATION" }, { 0x5C22C4, "DAE EUN ELETRONICS CO., LTD", "DAE-EUN-ELETRONICS" }, { 0x5C22DA, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x5C2316, "Squirrels Research Labs LLC", "SQUIRRELS-RESEARCH-LABS" }, { 0x5C2443, "O-Sung Telecom Co., Ltd.", "O-SUNG-TELECOM" }, { 0x5C2479, "Baltech AG", "BALTECH" }, { 0x5C24E2, "Suzhou Denbom Electronic S&T Co., Ltd", "SUZHOU-DENBOM-S-T" }, { 0x5C254C, "Avire Global Pte Ltd", "AVIRE-GLOBAL-PTE" }, { 0x5C260A, "Dell Inc.", "DELL" }, { 0x5C2623, "WaveLynx Technologies Corporation", "WAVELYNX-TECHNOLOGIES" }, { 0x5C2763, "Itibia Technologies", "ITIBIA-TECHNOLOGIES" }, { 0x5C27D4, "Shenzhen Qihu Intelligent Technology Company Limited", "SHENZHEN-QIHU-INTELLIGENT-COMPANY" }, { 0x5C2886, "Inventec(Chongqing) Corporation", "INVENTEC-CHONGQING" }, { 0x5C2AEF, "r2p Asia-Pacific Pty Ltd", "R2P-ASIA-PACIFIC-PTY" }, { 0x5C2BF5, "Vivint Wireless Inc.", "VIVINT-WIRELESS" }, { 0x5C2E59, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5C2ED2, "ABC(XiSheng) Electronics Co.,Ltd", "ABC-XISHENG-ELECTRONICS" }, { 0x5C2FAF, "HomeWizard B.V.", "HOMEWIZARD-B-V" }, { 0x5C313E, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x5C3192, "Cisco Systems, Inc", "CISCO" }, { 0x5C32C5, "Teracom Ltd.", "TERACOM" }, { 0x5C3327, "Spazio Italia srl", "SPAZIO-ITALIA-SRL" }, { 0x5C335C, "Swissphone Telecom AG", "SWISSPHONE-TELECOM" }, { 0x5C338E, "Alpha Networks Inc.", "ALPHA-NETWORKS" }, { 0x5C3400, "Hisense Electric Co.,Ltd", "HISENSE-ELECTRIC" }, { 0x5C345B, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x5C353B, "Compal Broadband Networks, Inc.", "COMPAL-BROADBAND-NETWORKS" }, { 0x5C35DA, "There Corporation Oy", "THERE-OY" }, { 0x5C36B8, "TCL King Electrical Appliances (Huizhou) Co., Ltd", "TCL-KING-ELECTRICAL-APPLIANCES-HUIZHOU" }, { 0x5C38E0, "Shanghai Super Electronics Technology Co.,LTD", "SHANGHAI-SUPER-ELECTRONICS" }, { 0x5C3A3D, "zte corporation", "ZTE" }, { 0x5C3A45, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0x5C3B35, "Gehirn Inc.", "GEHIRN" }, { 0x5C3C27, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5C3E06, "Cisco Systems, Inc", "CISCO" }, { 0x5C3E1B, "Apple, Inc.", "APPLE" }, { 0x5C4058, "Jefferson Audio Video Systems, Inc.", "JEFFERSON-AUDIO-VIDEO" }, { 0x5C415A, "Amazon.com, LLC", "AMAZON-COM" }, { 0x5C41E7, "Wiatec International Ltd.", "WIATEC" }, { 0x5C43D2, "HAZEMEYER", "HAZEMEYER" }, { 0x5C443E, "Skullcandy", "SKULLCANDY" }, { 0x5C4527, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x5C46B0, "SIMCom Wireless Solutions Limited", "SIMCOM-WIRELESS-SOLUTIONS" }, { 0x5C475E, "Ring LLC", "RING" }, { 0x5C4979, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x5C497D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5C49FA, "Shenzhen Guowei Shidai Communication Equipement Co., Ltd", "SHENZHEN-GUOWEI-SHIDAI-COMMUNICATION-EQUIPEMENT" }, { 0x5C4A1F, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x5C4A26, "Enguity Technology Corp", "ENGUITY" }, { 0x5C4CA9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5C4DBF, "zte corporation", "ZTE" }, { 0x5C5015, "Cisco Systems, Inc", "CISCO" }, { 0x5C50D9, "Apple, Inc.", "APPLE" }, { 0x5C514F, "Intel Corporate", "INTEL-CORPORATE" }, { 0x5C5181, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5C5188, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x5C521E, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x5C5230, "Apple, Inc.", "APPLE" }, { 0x5C5284, "Apple, Inc.", "APPLE" }, { 0x5C53C3, "Ubee Interactive Co., Limited", "UBEE-INTERACTIVE" }, { 0x5C546D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5C5578, "iryx corp", "IRYX" }, { 0x5C56A4, "Wanan Hongsheng Electronic Co.Ltd", "WANAN-HONGSHENG" }, { 0x5C56ED, "3pleplay Electronics Private Limited", "3PLEPLAY-ELECTRONICS-PRIVATE" }, { 0x5C571A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x5C57C8, "Nokia Corporation", "NOKIA" }, { 0x5C5819, "Jingsheng Technology Co., Ltd.", "JINGSHENG" }, { 0x5C58E6, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x5C5948, "Apple, Inc.", "APPLE" }, { 0x5C5AC7, "Cisco Systems, Inc", "CISCO" }, { 0x5C5AEA, "FORD", "FORD" }, { 0x5C5B35, "Mist Systems, Inc.", "MIST" }, { 0x5C5BC2, "YIK Corporation", "YIK" }, { 0x5C5EAB, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x5C5F67, "Intel Corporate", "INTEL-CORPORATE" }, { 0x5C60BA, "HP Inc.", "HP" }, { 0x5C6199, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x5C625A, "CANON INC.", "CANON" }, { 0x5C628B, "TP-Link Corporation Limited", "TP-LINK" }, { 0x5C63BF, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x5C63C9, "Intellithings Ltd.", "INTELLITHINGS" }, { 0x5C647A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5C648E, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x5C64F1, "Cisco Systems, Inc", "CISCO" }, { 0x5C64F3, "sywinkey HongKong Co,. Limited?", "SYWINKEY-HONGKONG" }, { 0x5C666C, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x5C6776, "IDS Imaging Development Systems GmbH", "IDS-IMAGING-DEVELOPMENT" }, { 0x5C68D0, "Aurora Innovation Inc.", "AURORA-INNOVATION" }, { 0x5C6984, "NUVICO", "NUVICO" }, { 0x5C6A7D, "KENTKART EGE ELEKTRONIK SAN. VE TIC. LTD. STI.", "KENTKART-EGE-ELEKTRONIK-SAN-VE-TIC-STI" }, { 0x5C6A80, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x5C6AEC, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x5C6B32, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x5C6B4F, "Hello Inc.", "HELLO" }, { 0x5C6BD7, "Foshan VIOMI Electric Appliance Technology Co. Ltd.", "FOSHAN-VIOMI-ELECTRIC-APPLIANCE" }, { 0x5C6D20, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x5C6F4F, "S.A. SISTEL", "SISTEL" }, { 0x5C6F69, "Broadcom Limited", "BROADCOM" }, { 0x5C7017, "Apple, Inc.", "APPLE" }, { 0x5C7075, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5C70A3, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x5C710D, "Cisco Systems, Inc", "CISCO" }, { 0x5C7545, "Wayties, Inc.", "WAYTIES" }, { 0x5C75AF, "Fitbit, Inc.", "FITBIT" }, { 0x5C75C6, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x5C7695, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x5C76D5, "Nokia", "NOKIA" }, { 0x5C7757, "Haivision Network Video", "HAIVISION-NETWORK-VIDEO" }, { 0x5C7776, "TCT mobile ltd", "TCT-MOBILE" }, { 0x5C78F8, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x5C7B5C, "Shenzhen SDMC Technology CO.,Ltd.", "SHENZHEN-SDMC" }, { 0x5C7D5E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5C7D7D, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x5C7DF3, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x5C80B6, "Intel Corporate", "INTEL-CORPORATE" }, { 0x5C81A7, "Network Devices Pty Ltd", "NETWORK-DEVICES-PTY" }, { 0x5C8382, "Nokia", "NOKIA" }, { 0x5C838F, "Cisco Systems, Inc", "CISCO" }, { 0x5C83CD, "New platforms", "NEW-PLATFORMS" }, { 0x5C843C, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x5C8486, "Brightsource Industries Israel LTD", "BRIGHTSOURCE-INDUSTRIES-ISRAEL" }, { 0x5C857E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x5C85F8, "SHENZHEN KAIFA TECHNOLOGY CO.,LTD.", "SHENZHEN-KAIFA" }, { 0x5C8613, "Beijing Zhoenet Technology Co., Ltd", "BEIJING-ZHOENET" }, { 0x5C864A, "Secret Labs LLC", "SECRET-LABS" }, { 0x5C865C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5C86C1, "DONGGUAN SOLUM ELECTRONICS CO.,LTD", "DONGGUAN-SOLUM-ELECTRONICS" }, { 0x5C8730, "Apple, Inc.", "APPLE" }, { 0x5C8778, "Cybertelbridge co.,ltd", "CYBERTELBRIDGE" }, { 0x5C879C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x5C8816, "Rockwell Automation", "ROCKWELL-AUTOMATION" }, { 0x5C899A, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x5C89D4, "Beijing Banner Electric Co.,Ltd", "BEIJING-BANNER-ELECTRIC" }, { 0x5C8A38, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x5C8B6B, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x5C8C30, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x5C8D2D, "Shanghai Wellpay Information Technology Co., Ltd", "SHANGHAI-WELLPAY-INFORMATION" }, { 0x5C8D4E, "Apple, Inc.", "APPLE" }, { 0x5C8E8B, "Shenzhen Linghai Electronics Co.,Ltd", "SHENZHEN-LINGHAI-ELECTRONICS" }, { 0x5C8F40, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x5C8FE0, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x5C9012, "Owl Cyber Defense Solutions, LLC", "OWL-CYBER-DEFENSE-SOLUTIONS" }, { 0x5C9157, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5C91FD, "Jaewoncnc", "JAEWONCNC" }, { 0x5C925E, "Zioncom Electronics (Shenzhen) Ltd.", "ZIONCOM-ELECTRONICS-SHENZHEN" }, { 0x5C93A2, "Liteon Technology Corporation", "LITEON" }, { 0x5C9462, "Shenzhen Jiuzhou Electric Co.,LTD", "SHENZHEN-JIUZHOU-ELECTRIC" }, { 0x5C95AE, "Apple, Inc.", "APPLE" }, { 0x5C9656, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x5C9666, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x5C966A, "RTNET", "RTNET" }, { 0x5C969D, "Apple, Inc.", "APPLE" }, { 0x5C97F3, "Apple, Inc.", "APPLE" }, { 0x5C9960, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5C9AA1, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x5C9AD8, "FUJITSU LIMITED", "FUJITSU" }, { 0x5CA06C, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x5CA176, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x5CA178, "TableTop Media (dba Ziosk)", "TABLETOP-MEDIA-DBA-ZIOSK" }, { 0x5CA1E0, "EmbedWay Technologies", "EMBEDWAY-TECHNOLOGIES" }, { 0x5CA39D, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0x5CA3EB, "Lokel s.r.o.", "LOKEL-S-R-O" }, { 0x5CA48A, "Cisco Systems, Inc", "CISCO" }, { 0x5CA4A4, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x5CA4F4, "zte corporation", "ZTE" }, { 0x5CA5BC, "eero inc.", "EERO" }, { 0x5CA62D, "Cisco Systems, Inc", "CISCO" }, { 0x5CA6E6, "TP-Link Corporation Limited", "TP-LINK" }, { 0x5CA721, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x5CA86A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5CA933, "Luma Home", "LUMA-HOME" }, { 0x5CAAFD, "Sonos, Inc.", "SONOS" }, { 0x5CAC3D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5CAC4C, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x5CAD76, "Shenzhen TCL New Technology Co., Ltd", "SHENZHEN-TCL-NEW" }, { 0x5CADCF, "Apple, Inc.", "APPLE" }, { 0x5CAF06, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x5CB00A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5CB066, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x5CB12E, "Cisco Systems, Inc", "CISCO" }, { 0x5CB13E, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x5CB15F, "Oceanblue Cloud Technology Limited", "OCEANBLUE-CLOUD" }, { 0x5CB29E, "ASCO Power Technologies", "ASCO-POWER-TECHNOLOGIES" }, { 0x5CB395, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5CB3F6, "Human, Incorporated", "HUMAN-INCORPORATED" }, { 0x5CB43E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5CB4E2, "Inspur Software Group Ltd.", "INSPUR-SOFTWARE-GROUP" }, { 0x5CB524, "Sony Corporation", "SONY" }, { 0x5CB559, "CNEX Labs", "CNEX-LABS" }, { 0x5CB6CC, "NovaComm Technologies Inc.", "NOVACOMM-TECHNOLOGIES" }, { 0x5CB8CB, "Allis Communications", "ALLIS-COMMUNICATION" }, { 0x5CB901, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x5CBA2C, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x5CBA37, "Microsoft Corporation", "MICROSOFT" }, { 0x5CBAEF, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0x5CBBEE, "zte corporation", "ZTE" }, { 0x5CBD9A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x5CBD9E, "HONGKONG MIRACLE EAGLE TECHNOLOGY(GROUP) LIMITED", "HONGKONG-MIRACLE-EAGLE-GROUP" }, { 0x5CC0A0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5CC1D7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5CC213, "Fr. Sauter AG", "FR-SAUTER" }, { 0x5CC307, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5CC336, "ittim", "ITTIM" }, { 0x5CC563, "HUNAN FN-LINK TECHNOLOGY LIMITED", "HUNAN-FN-LINK" }, { 0x5CC5D4, "Intel Corporate", "INTEL-CORPORATE" }, { 0x5CC6D0, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0x5CC6E9, "Edifier International", "EDIFIER" }, { 0x5CC7C1, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x5CC7D7, "AZROAD TECHNOLOGY COMPANY LIMITED", "AZROAD-COMPANY" }, { 0x5CC8E3, "Shintec Hozumi co.ltd.", "SHINTEC-HOZUMI" }, { 0x5CC999, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x5CC9C0, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x5CC9D3, "PALLADIUM ENERGY ELETRONICA DA AMAZONIA LTDA", "PALLADIUM-ENERGY-ELETRONICA-DA-AMAZONIA-LTDA" }, { 0x5CCA1A, "Microsoft Mobile Oy", "MICROSOFT-MOBILE-OY" }, { 0x5CCA32, "Theben AG", "THEBEN" }, { 0x5CCAD3, "CHIPSEA TECHNOLOGIES (SHENZHEN) CORP.", "CHIPSEA-TECHNOLOGIES-SHENZHEN" }, { 0x5CCB99, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5CCBCA, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0x5CCCA0, "Gridwiz Inc.", "GRIDWIZ" }, { 0x5CCCFF, "Techroutes Network Pvt Ltd", "TECHROUTES-NETWORK-PVT" }, { 0x5CCD5B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x5CCD7C, "MEIZU Technology Co.,Ltd.", "MEIZU" }, { 0x5CCEAD, "CDYNE Corporation", "CDYNE" }, { 0x5CCF7F, "Espressif Inc.", "ESPRESSIF" }, { 0x5CD06E, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x5CD135, "Xtreme Power Systems", "XTREME-POWER" }, { 0x5CD20B, "Yytek Co., Ltd.", "YYTEK" }, { 0x5CD2E4, "Intel Corporate", "INTEL-CORPORATE" }, { 0x5CD41B, "UCZOON Technology Co., LTD", "UCZOON" }, { 0x5CD4AB, "Zektor", "ZEKTOR" }, { 0x5CD5B5, "Shenzhen WiSiYiLink Technology Co.,Ltd", "SHENZHEN-WISIYILINK" }, { 0x5CD61F, "Qardio, Inc", "QARDIO" }, { 0x5CD89E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x5CD998, "D-Link Corporation", "D-LINK" }, { 0x5CDAD4, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x5CDC96, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x5CDD70, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x5CDE34, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x5CDF89, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x5CDFB8, "Shenzhen Unionmemory Information System Limited", "SHENZHEN-UNIONMEMORY-INFORMATION-SYSTEM" }, { 0x5CE0C5, "Intel Corporate", "INTEL-CORPORATE" }, { 0x5CE0CA, "FeiTian United (Beijing) System Technology Co., Ltd.", "FEITIAN-UNITED-BEIJING-SYSTEM" }, { 0x5CE0F6, "NIC.br- Nucleo de Informacao e Coordenacao do Ponto BR", "NIC-BR-NUCLEO-DE-INFORMACAO-E-COORDENACAO-DO-PONTO-BR" }, { 0x5CE176, "Cisco Systems, Inc", "CISCO" }, { 0x5CE223, "Delphin Technology AG", "DELPHIN" }, { 0x5CE286, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x5CE28C, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x5CE2F4, "AcSiP Technology Corp.", "ACSIP" }, { 0x5CE30E, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x5CE3B6, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x5CE42A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x5CE50C, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x5CE688, "VECOS Europe B.V.", "VECOS-EUROPE-B-V" }, { 0x5CE747, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5CE7A0, "Nokia", "NOKIA" }, { 0x5CE7BF, "New Singularity International Technical Development Co.,Ltd", "NEW-SINGULARITY-TECHNICAL-DEVELOPMENT" }, { 0x5CE883, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5CE8B7, "Oraimo Technology Limited", "ORAIMO" }, { 0x5CE8D3, "Signalinks Communication Technology Co., Ltd", "SIGNALINKS-COMMUNICATION" }, { 0x5CE8EB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5CE91E, "Apple, Inc.", "APPLE" }, { 0x5CE931, "TP-Link Corporation Limited", "TP-LINK" }, { 0x5CEA1D, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x5CEB4E, "R. STAHL HMI Systems GmbH", "R-STAHL-HMI" }, { 0x5CEB68, "Cheerstar Technology Co., Ltd", "CHEERSTAR" }, { 0x5CED8C, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x5CEDF4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5CEE79, "Global Digitech Co LTD", "GLOBAL-DIGITECH" }, { 0x5CF207, "Speco Technologies", "SPECO-TECHNOLOGIES" }, { 0x5CF286, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x5CF370, "CC&C Technologies, Inc", "CC-C-TECHNOLOGIES" }, { 0x5CF3FC, "IBM Corp", "IBM" }, { 0x5CF4AB, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x5CF50D, "Institute of microelectronic applications", "INSTITUTE-OF-MICROELECTRONIC-APPLICATIONS" }, { 0x5CF51A, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0x5CF5DA, "Apple, Inc.", "APPLE" }, { 0x5CF6DC, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x5CF7C3, "SYNTECH (HK) TECHNOLOGY LIMITED", "SYNTECH-HK" }, { 0x5CF7E6, "Apple, Inc.", "APPLE" }, { 0x5CF821, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x5CF8A1, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x5CF938, "Apple, Inc.", "APPLE" }, { 0x5CF96A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x5CF9DD, "Dell Inc.", "DELL" }, { 0x5CF9F0, "Atomos Engineering P/L", "ATOMOS-ENGINEERING-P/L" }, { 0x5CF9FD, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x5CFA25, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x5CFAFB, "Acubit", "ACUBIT" }, { 0x5CFB3A, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0x5CFB7C, "Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd", "SHENZHEN-JINGXUN-SOFTWARE-TELECOMMUNICATION" }, { 0x5CFC66, "Cisco Systems, Inc", "CISCO" }, { 0x5CFC6E, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x5CFE9E, "Wiwynn Corporation Tainan Branch", "WIWYNN-TAINAN-BRANCH" }, { 0x5CFF35, "Wistron Corporation", "WISTRON" }, { 0x5CFFFF, "Shenzhen Kezhonglong Optoelectronic Technology Co., Ltd", "SHENZHEN-KEZHONGLONG-OPTOELECTRONIC" }, { 0x600194, "Espressif Inc.", "ESPRESSIF" }, { 0x6001B1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x600292, "PEGATRON CORPORATION", "PEGATRON" }, { 0x6002B4, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x600308, "Apple, Inc.", "APPLE" }, { 0x60030C, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x600347, "Billion Electric Co. Ltd.", "BILLION-ELECTRIC" }, { 0x6003A6, "Inteno Broadband Technology AB", "INTENO-BROADBAND-AB" }, { 0x600417, "POSBANK CO.,LTD", "POSBANK" }, { 0x60058A, "Hitachi Metals, Ltd.", "HITACHI-METALS" }, { 0x6006E3, "Apple, Inc.", "APPLE" }, { 0x60077C, "Jala Group", "JALA-GROUP" }, { 0x6007C4, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x600810, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x600837, "ivvi Scientific(Nanchang)Co.Ltd", "IVVI-SCIENTIFIC-NANCHANG" }, { 0x6009C3, "u-blox AG", "U-BLOX" }, { 0x600B03, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x600F77, "SilverPlus, Inc", "SILVERPLUS" }, { 0x60109E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6010A2, "Crompton Instruments", "CROMPTON-INSTRUMENTS" }, { 0x601199, "Siama Systems Inc", "SIAMA" }, { 0x60123C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x601283, "TSB REAL TIME LOCATION SYSTEMS S.L.", "TSB-REAL-TIME-LOCATION" }, { 0x60128B, "CANON INC.", "CANON" }, { 0x601466, "zte corporation", "ZTE" }, { 0x6014B3, "CyberTAN Technology Inc.", "CYBERTAN" }, { 0x601521, "Redarc Electronics", "REDARC-ELECTRONICS" }, { 0x60152B, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x601592, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x6015C7, "IdaTech", "IDATECH" }, { 0x601803, "Daikin Air-conditioning (Shanghai) Co., Ltd.", "DAIKIN-AIR-CONDITIONING-SHANGHAI" }, { 0x60182E, "ShenZhen Protruly Electronic Ltd co.", "SHENZHEN-PROTRULY" }, { 0x60183A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x601888, "zte corporation", "ZTE" }, { 0x601895, "Dell Inc.", "DELL" }, { 0x60190C, "RRAMAC", "RRAMAC" }, { 0x601929, "VOLTRONIC POWER TECHNOLOGY(SHENZHEN) CORP.", "VOLTRONIC-POWER-SHENZHEN" }, { 0x601970, "HUIZHOU QIAOXING ELECTRONICS TECHNOLOGY CO., LTD.", "HUIZHOU-QIAOXING-ELECTRONICS" }, { 0x601971, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x601AC7, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x601B52, "Vodafone Italia S.p.A.", "VODAFONE-ITALIA" }, { 0x601D0F, "Midnite Solar", "MIDNITE-SOLAR" }, { 0x601D91, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x601D9D, "Sichuan AI-Link Technology Co., Ltd.", "SICHUAN-AI-LINK" }, { 0x601E02, "EltexAlatau", "ELTEXALATAU" }, { 0x601E98, "Axevast Technology", "AXEVAST" }, { 0x602101, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x602103, "I4VINE, INC", "I4VINE" }, { 0x6021C0, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x602232, "Ubiquiti Inc", "UBIQUITI" }, { 0x6023A4, "Sichuan AI-Link Technology Co., Ltd.", "SICHUANAI-LINK" }, { 0x6024C1, "Jiangsu Zhongxun Electronic Technology Co., Ltd", "JIANGSU-ZHONGXUN" }, { 0x6026AA, "Cisco Systems, Inc", "CISCO" }, { 0x6026EF, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x60271C, "VIDEOR E. Hartig GmbH", "VIDEOR-E-HARTIG" }, { 0x60292B, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x6029D5, "DAVOLINK Inc.", "DAVOLINK" }, { 0x602A1B, "JANCUS", "JANCUS" }, { 0x602A54, "CardioTek B.V.", "CARDIOTEK-B-V" }, { 0x602AD0, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x602B58, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x602E20, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6030D4, "Apple, Inc.", "APPLE" }, { 0x60313B, "Sunnovo International Limited", "SUNNOVO" }, { 0x603197, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x6032B1, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x6032F0, "Mplus technology", "MPLUS" }, { 0x60334B, "Apple, Inc.", "APPLE" }, { 0x603553, "Buwon Technology", "BUWON" }, { 0x603573, "Earda Technologies co Ltd", "EARDA-TECHNOLOGIES" }, { 0x6035C0, "SFR", "SFR" }, { 0x603696, "The Sapling Company", "THE-SAPLING-COMPANY" }, { 0x6036DD, "Intel Corporate", "INTEL-CORPORATE" }, { 0x60380E, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x6038E0, "Belkin International Inc.", "BELKIN" }, { 0x60391F, "ABB Ltd", "ABB" }, { 0x603A7C, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x603AAF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x603CEE, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x603D26, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x603D29, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x603E5F, "Apple, Inc.", "APPLE" }, { 0x603E7B, "Gafachi, Inc.", "GAFACHI" }, { 0x603ECA, "Cambridge Medical Robotics Ltd", "CAMBRIDGE-MEDICAL-ROBOTICS" }, { 0x603FC5, "COX CO., LTD", "COX" }, { 0x60427F, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0x60447A, "Water-i.d. GmbH", "WATER-I-D" }, { 0x6044F5, "Easy Digital Ltd.", "EASY-DIGITAL" }, { 0x60455E, "Liptel s.r.o.", "LIPTEL-S-R-O" }, { 0x6045BD, "Microsoft", "MICROSOFT" }, { 0x6045CB, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x604616, "XIAMEN VANN INTELLIGENT CO., LTD", "XIAMEN-VANN-INTELLIGENT" }, { 0x604762, "Beijing Sensoro Technology Co.,Ltd.", "BEIJING-SENSORO" }, { 0x6047D4, "FORICS Electronic Technology Co., Ltd.", "FORICS" }, { 0x604826, "Newbridge Technologies Int. Ltd.", "NEWBRIDGE-TECHNOLOGIES-INT" }, { 0x60489C, "YIPPEE ELECTRONICS CO.,LIMITED", "YIPPEE-ELECTRONICS" }, { 0x6049C1, "Avaya Inc", "AVAYA" }, { 0x604A1C, "SUYIN Corporation", "SUYIN" }, { 0x604BAA, "Magic Leap, Inc.", "MAGIC-LEAP" }, { 0x604DE1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x604F5B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x6050C1, "Kinetek Sports", "KINETEK-SPORTS" }, { 0x60512C, "TCT mobile ltd", "TCT-MOBILE" }, { 0x6052D0, "FACTS Engineering", "FACTS-ENGINEERING" }, { 0x605317, "Sandstone Technologies", "SANDSTONE-TECHNOLOGIES" }, { 0x605375, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x605464, "Eyedro Green Solutions Inc.", "EYEDRO-GREEN-SOLUTIONS" }, { 0x6055F9, "Espressif Inc.", "ESPRESSIF" }, { 0x605661, "IXECLOUD Tech", "IXECLOUD-TECH" }, { 0x60567D, "AM Telecom co., Ltd.", "AM-TELECOM" }, { 0x605699, "MAGNETI MARELLI S.E. S.p.A.", "MAGNETI-MARELLI-S-E" }, { 0x605718, "Intel Corporate", "INTEL-CORPORATE" }, { 0x605747, "CIG SHANGHAI CO LTD", "CIG-SHANGHAI" }, { 0x60577D, "eero inc.", "EERO" }, { 0x605801, "Shandong ZTop Microelectronics Co., Ltd.", "SHANDONG-ZTOP-MICROELECTRONICS" }, { 0x605B30, "Dell Inc.", "DELL" }, { 0x605BB4, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x605E4F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x605F8D, "eero inc.", "EERO" }, { 0x60601F, "SZ DJI TECHNOLOGY CO.,LTD", "SZ-DJI" }, { 0x606134, "Genesis Technical Systems Corp", "GENESIS-TECHNICAL" }, { 0x6061DF, "Z-meta Research LLC", "Z-META-RESEARCH" }, { 0x60634C, "D-Link International", "D-LINK" }, { 0x6063F9, "Ciholas, Inc.", "CIHOLAS" }, { 0x6063FD, "Transcend Communication Beijing Co.,Ltd.", "TRANSCEND-COMMUNICATION-BEIJING" }, { 0x606405, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x606453, "AOD Co.,Ltd.", "AOD" }, { 0x6064A1, "RADiflow Ltd.", "RADIFLOW" }, { 0x606720, "Intel Corporate", "INTEL-CORPORATE" }, { 0x60684E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x606944, "Apple, Inc.", "APPLE" }, { 0x60699B, "isepos GmbH", "ISEPOS" }, { 0x606BBD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x606BFF, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x606C63, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x606C66, "Intel Corporate", "INTEL-CORPORATE" }, { 0x606D3C, "Luxshare Precision Industry Company Limited", "LUXSHARE-PRECISION-INDUSTRY-COMPANY" }, { 0x606D9D, "Otto Bock Healthcare Products GmbH", "OTTO-BOCK-HEALTHCARE-PRODUCTS" }, { 0x606DC7, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x606E41, "Barrot Technology Co.,LTD", "BARROT" }, { 0x606ED0, "SEAL AG", "SEAL" }, { 0x606EE8, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x60706C, "Google, Inc.", "GOOGLE" }, { 0x607072, "SHENZHEN HONGDE SMART LINK TECHNOLOGY CO., LTD", "SHENZHEN-HONGDE-SMART-LINK" }, { 0x6070C0, "Apple, Inc.", "APPLE" }, { 0x60720B, "BLU Products Inc", "BLU-PRODUCTS" }, { 0x60735C, "Cisco Systems, Inc", "CISCO" }, { 0x6073BC, "zte corporation", "ZTE" }, { 0x60748D, "Atmaca Elektronik", "ATMACA-ELEKTRONIK" }, { 0x6074F4, "Private", "PRIVATE" }, { 0x607623, "Shenzhen E-Superlink Technology Co., Ltd", "SHENZHEN-E-SUPERLINK" }, { 0x607688, "Velodyne", "VELODYNE" }, { 0x607771, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x6077E2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x607D09, "Luxshare Precision Industry Co., Ltd", "LUXSHARE-PRECISION-INDUSTRY" }, { 0x607DDD, "Shenzhen Shichuangyi Electronics Co.,Ltd", "SHENZHEN-SHICHUANGYI-ELECTRONICS" }, { 0x607EA4, "Shanghai Imilab Technology Co.Ltd", "SHANGHAI-IMILAB" }, { 0x607EC9, "Apple, Inc.", "APPLE" }, { 0x607ECD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x607EDD, "Microsoft Mobile Oy", "MICROSOFT-MOBILE-OY" }, { 0x60812B, "Astronics Custom Control Concepts", "ASTRONICS-CUSTOM-CONTROL-CONCEPTS" }, { 0x6081F9, "Helium Systems, Inc", "HELIUM" }, { 0x608246, "Apple, Inc.", "APPLE" }, { 0x608334, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x608373, "Apple, Inc.", "APPLE" }, { 0x6083B2, "GkWare e.K.", "GKWARE-E-K" }, { 0x60843B, "Soladigm, Inc.", "SOLADIGM" }, { 0x6084BD, "BUFFALO.INC", "BUFFALO" }, { 0x608645, "Avery Weigh-Tronix, LLC", "AVERY-WEIGH-TRONIX" }, { 0x60893C, "Thermo Fisher Scientific P.O.A.", "THERMO-FISHER-SCIENTIFIC-P-O-A" }, { 0x6089B1, "Key Digital Systems", "KEY-DIGITAL" }, { 0x6089B7, "KAEL MÜHENDİSLİK ELEKTRONİK TİCARET SANAYİ LİMİTED ŞİRKETİ", "KAEL-MUEHENDSLK-ELEKTRONK-TCARET-SANAY-LMTED-RKET" }, { 0x608A10, "Microchip Technology Inc.", "MICROCHIP" }, { 0x608B0E, "Apple, Inc.", "APPLE" }, { 0x608C2B, "Hanson Technology", "HANSON" }, { 0x608C4A, "Apple, Inc.", "APPLE" }, { 0x608CDF, "Beamtrail-Sole Proprietorship", "BEAMTRAIL-SOLE-PROPRIETORSHIP" }, { 0x608CE6, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x608D17, "Sentrus Government Systems Division, Inc", "SENTRUS-GOVERNMENT-DIVISION" }, { 0x608D26, "Arcadyan Corporation", "ARCADYAN" }, { 0x608E08, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x608F5C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x608FA4, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x609084, "DSSD Inc", "DSSD" }, { 0x6091F3, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x609217, "Apple, Inc.", "APPLE" }, { 0x6092F5, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x609316, "Apple, Inc.", "APPLE" }, { 0x609532, "Zebra Technologies Inc.", "ZEBRA-TECHNOLOGIES" }, { 0x6095BD, "Apple, Inc.", "APPLE" }, { 0x6095CE, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x609620, "Private", "PRIVATE" }, { 0x6096A4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6097DD, "MicroSys Electronics GmbH", "MICROSYS-ELECTRONICS" }, { 0x609813, "Shanghai Visking Digital Technology Co. LTD", "SHANGHAI-VISKING-DIGITAL" }, { 0x609866, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x6099D1, "Vuzix / Lenovo", "VUZIX-/-LENOVO" }, { 0x609AA4, "GVI SECURITY INC.", "GVI-SECURITY" }, { 0x609AC1, "Apple, Inc.", "APPLE" }, { 0x609B2D, "JMACS Japan Co., Ltd.", "JMACS-JAPAN" }, { 0x609BB4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x609BC8, "Hipad Intelligent Technology Co., Ltd.", "HIPAD-INTELLIGENT" }, { 0x609C9F, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x609E64, "Vivonic GmbH", "VIVONIC" }, { 0x609F9D, "CloudSwitch", "CLOUDSWITCH" }, { 0x60A10A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x60A11E, "Wuhan Maxsine Electric Co.,Ltd.", "WUHAN-MAXSINE-ELECTRIC" }, { 0x60A2C6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x60A37D, "Apple, Inc.", "APPLE" }, { 0x60A423, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x60A44C, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x60A4B7, "TP-Link Corporation Limited", "TP-LINK" }, { 0x60A4D0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x60A5E2, "Intel Corporate", "INTEL-CORPORATE" }, { 0x60A6C5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x60A730, "Shenzhen Yipinfang Internet Technology Co.,Ltd", "SHENZHEN-YIPINFANG-INTERNET" }, { 0x60A751, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x60A8FE, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x60A9B0, "Merchandising Technologies, Inc", "MERCHANDISING-TECHNOLOGIES" }, { 0x60AAEF, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x60AB14, "LG Innotek", "LG-INNOTEK" }, { 0x60AB67, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x60ABD2, "Bose Corporation", "BOSE" }, { 0x60ACC8, "KunTeng Inc.", "KUNTENG" }, { 0x60AF6D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x60B185, "ATH system", "ATH-SYSTEM" }, { 0x60B387, "Synergics Technologies GmbH", "SYNERGICS-TECHNOLOGIES" }, { 0x60B3C4, "Elber Srl", "ELBER-SRL" }, { 0x60B4F7, "Plume Design Inc", "PLUME-DESIGN" }, { 0x60B606, "Phorus", "PHORUS" }, { 0x60B617, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x60B647, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x60B6E1, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x60B76E, "Google, Inc.", "GOOGLE" }, { 0x60B933, "Deutron Electronics Corp.", "DEUTRON-ELECTRONICS" }, { 0x60B982, "RO.VE.R. Laboratories S.p.A.", "RO-VE-R-LABORATORIES" }, { 0x60BA18, "nextLAP GmbH", "NEXTLAP" }, { 0x60BB0C, "Beijing HuaqinWorld Technology Co,Ltd", "BEIJING-HUAQINWORLD" }, { 0x60BC4C, "EWM Hightec Welding GmbH", "EWM-HIGHTEC-WELDING" }, { 0x60BD2C, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x60BD91, "Move Innovation", "MOVE-INNOVATION" }, { 0x60BEB4, "S-Bluetech co., limited", "S-BLUETECH" }, { 0x60BEB5, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x60BEC4, "Apple, Inc.", "APPLE" }, { 0x60C01E, "V&G Information System Co.,Ltd", "V-G-INFORMATION-SYSTEM" }, { 0x60C0BF, "ON Semiconductor", "ON-SEMICONDUCTOR" }, { 0x60C1CB, "Fujian Great Power PLC Equipment Co.,Ltd", "FUJIAN-GREAT-POWER-PLC-EQUIPMENT" }, { 0x60C397, "2Wire Inc", "2WIRE" }, { 0x60C547, "Apple, Inc.", "APPLE" }, { 0x60C5A8, "Beijing LT Honway Technology Co.,Ltd", "BEIJING-LT-HONWAY" }, { 0x60C5AD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x60C5E6, "Skullcandy", "SKULLCANDY" }, { 0x60C658, "PHYTRONIX Co.,Ltd.", "PHYTRONIX" }, { 0x60C727, "Digiboard Eletronica da Amazonia Ltda", "DIGIBOARD-ELETRONICA-DA-AMAZONIA-LTDA" }, { 0x60C78D, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x60C798, "Verifone", "VERIFONE" }, { 0x60C7BE, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x60C980, "Trymus", "TRYMUS" }, { 0x60C9AA, "Nokia", "NOKIA" }, { 0x60CBFB, "AirScape Inc.", "AIRSCAPE" }, { 0x60CDA9, "Abloomy", "ABLOOMY" }, { 0x60CDC5, "Taiwan Carol Electronics., Ltd", "TAIWAN-CAROL-ELECTRONICS" }, { 0x60CE41, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x60CE86, "Sercomm Corporation.", "SERCOMM" }, { 0x60CE92, "The Refined Industry Company Limited", "THE-REFINED-INDUSTRY-COMPANY" }, { 0x60CF69, "meerecompany", "MEERECOMPANY" }, { 0x60D02C, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x60D039, "Apple, Inc.", "APPLE" }, { 0x60D0A9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x60D1AA, "Vishal Telecommunications Pvt Ltd", "VISHAL-TELECOMMUNICATIONS-PVT" }, { 0x60D21C, "Sunnovo International Limited", "SUNNOVO" }, { 0x60D248, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x60D262, "Tzukuri Pty Ltd", "TZUKURI-PTY" }, { 0x60D2B9, "REALAND BIO CO., LTD.", "REALAND-BIO" }, { 0x60D2DD, "Shenzhen Baitong Putian Technology Co.,Ltd.", "SHENZHEN-BAITONG-PUTIAN" }, { 0x60D30A, "Quatius Limited", "QUATIUS" }, { 0x60D4E9, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x60D755, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x60D7E3, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x60D819, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x60D89C, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x60D9A0, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0x60D9C7, "Apple, Inc.", "APPLE" }, { 0x60DA23, "Estech Co.,Ltd", "ESTECH" }, { 0x60DA83, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x60DB15, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x60DB2A, "HNS", "HNS" }, { 0x60DB98, "Calix Inc.", "CALIX" }, { 0x60DBEF, "Unify Software and Solutions GmbH & Co. KG", "UNIFY-SOFTWARE-AND-SOLUTIONS" }, { 0x60DC81, "AltoBeam Inc.", "ALTOBEAM" }, { 0x60DD70, "Apple, Inc.", "APPLE" }, { 0x60DD8E, "Intel Corporate", "INTEL-CORPORATE" }, { 0x60DE35, "GITSN, Inc.", "GITSN" }, { 0x60DE44, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x60DEF3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x60DEF4, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0x60E00E, "SHINSEI ELECTRONICS CO LTD", "SHINSEI-ELECTRONICS" }, { 0x60E327, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x60E32B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x60E3AC, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x60E6BC, "Sino-Telecom Technology Co.,Ltd.", "SINO-TELECOM" }, { 0x60E6F0, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x60E701, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x60E78A, "UNISEM", "UNISEM" }, { 0x60E85B, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x60E956, "Ayla Networks, Inc", "AYLA-NETWORKS" }, { 0x60E9AA, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x60EB5A, "Asterfusion Data Technologies Co.,Ltd", "ASTERFUSION-DATA-TECHNOLOGIES" }, { 0x60EB69, "Quanta Computer Inc.", "QUANTA" }, { 0x60EE5C, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0x60EFAB, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x60EFC6, "Shenzhen Chima Technologies Co Limited", "SHENZHEN-CHIMA-TECHNOLOGIES" }, { 0x60F04D, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x60F13D, "JABLOCOM s.r.o.", "JABLOCOM-S-R-O" }, { 0x60F189, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x60F18A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x60F262, "Intel Corporate", "INTEL-CORPORATE" }, { 0x60F281, "TRANWO TECHNOLOGY CO., LTD.", "TRANWO" }, { 0x60F2EF, "VisionVera International Co., Ltd.", "VISIONVERA" }, { 0x60F3DA, "Logic Way GmbH", "LOGIC-WAY" }, { 0x60F43A, "Edifier International", "EDIFIER" }, { 0x60F445, "Apple, Inc.", "APPLE" }, { 0x60F494, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x60F59C, "CRU-Dataport", "CRU-DATAPORT" }, { 0x60F673, "TERUMO CORPORATION", "TERUMO" }, { 0x60F677, "Intel Corporate", "INTEL-CORPORATE" }, { 0x60F81D, "Apple, Inc.", "APPLE" }, { 0x60F8F2, "Synaptec", "SYNAPTEC" }, { 0x60FA9D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x60FAB1, "Kempower Oyj", "KEMPOWER-OYJ" }, { 0x60FACD, "Apple, Inc.", "APPLE" }, { 0x60FB00, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x60FB42, "Apple, Inc.", "APPLE" }, { 0x60FCF1, "Private", "PRIVATE" }, { 0x60FD56, "WOORISYSTEMS CO., Ltd", "WOORISYSTEMS" }, { 0x60FDA6, "Apple, Inc.", "APPLE" }, { 0x60FE1E, "China Palms Telecom.Ltd", "CHINA-PALMS-TELECOM" }, { 0x60FE20, "2Wire Inc", "2WIRE" }, { 0x60FEC5, "Apple, Inc.", "APPLE" }, { 0x60FEF9, "Thomas & Betts", "THOMAS-BETTS" }, { 0x60FF12, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x60FFDD, "C.E. ELECTRONICS, INC", "C-E-ELECTRONICS" }, { 0x64002D, "Powerlinq Co., LTD", "POWERLINQ" }, { 0x64006A, "Dell Inc.", "DELL" }, { 0x64009C, "Insulet Corporation", "INSULET" }, { 0x6400F1, "Cisco Systems, Inc", "CISCO" }, { 0x6401FB, "Landis+Gyr GmbH", "LANDIS+GYR" }, { 0x6402CB, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x64037F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x6405BE, "NEW LIGHT LED", "NEW-LIGHT-LED" }, { 0x6405E4, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x6405E9, "Shenzhen WayOS Technology Crop., Ltd.", "SHENZHEN-WAYOS-CROP" }, { 0x6407F6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x64094C, "Beijing Superbee Wireless Technology Co.,Ltd", "BEIJING-SUPERBEE-WIRELESS" }, { 0x640980, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x6409AC, "TCT mobile ltd", "TCT-MOBILE" }, { 0x640B4A, "Digital Telecom Technology Limited", "DIGITAL-TELECOM" }, { 0x640BD7, "Apple, Inc.", "APPLE" }, { 0x640D22, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x640DCE, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x640DE6, "Petra Systems", "PETRA" }, { 0x640E36, "TAZTAG", "TAZTAG" }, { 0x640E6A, "SECO-LARM USA Inc", "SECO-LARM-USA" }, { 0x640E94, "Pluribus Networks, Inc.", "PLURIBUS-NETWORKS" }, { 0x640E9B, "ISHIDA MEDICAL CO., LTD.", "ISHIDA-MEDICAL" }, { 0x640F28, "2Wire Inc", "2WIRE" }, { 0x641084, "HEXIUM Technical Development Co., Ltd.", "HEXIUM-TECHNICAL-DEVELOPMENT" }, { 0x6411A4, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x641225, "Cisco Systems, Inc", "CISCO" }, { 0x641236, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x641269, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x641331, "Bosch Car Multimedia (Wuhu) Co. Ltd.", "BOSCH-CAR-MULTIMEDIA-WUHU" }, { 0x64135A, "Itectra A/S", "ITECTRA-A/S" }, { 0x64136C, "zte corporation", "ZTE" }, { 0x6413AB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x641666, "Nest Labs Inc.", "NEST-LABS" }, { 0x64167F, "Polycom", "POLYCOM" }, { 0x64168D, "Cisco Systems, Inc", "CISCO" }, { 0x6416F0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x641759, "Intellivision Holdings, LLC", "INTELLIVISION-HOLDINGS" }, { 0x6417CD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x641A22, "Heliospectra AB", "HELIOSPECTRA-AB" }, { 0x641ABA, "Dryad Networks GmbH", "DRYAD-NETWORKS" }, { 0x641B2F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x641C10, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x641C67, "DIGIBRAS INDUSTRIA DO BRASILS/A", "DIGIBRAS-INDUSTRIA-DO-BRASILS/A" }, { 0x641CAE, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x641CB0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x641E81, "Dowslake Microsystems", "DOWSLAKE-MICROSYSTEMS" }, { 0x64200C, "Apple, Inc.", "APPLE" }, { 0x64209F, "Tilgin AB", "TILGIN-AB" }, { 0x6420E0, "T3 Technology Co., Ltd.", "T3" }, { 0x642184, "Nippon Denki Kagaku Co.,LTD", "NIPPON-DENKI-KAGAKU" }, { 0x642216, "Shandong Taixin Electronic co.,Ltd", "SHANDONG-TAIXIN" }, { 0x642315, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x642400, "Xorcom Ltd.", "XORCOM" }, { 0x64255E, "Observint Technologies, Inc.", "OBSERVINT-TECHNOLOGIES" }, { 0x6425EC, "guangdong kesheng zhixun technology", "GUANGDONG-KESHENG-ZHIXUN" }, { 0x642656, "Shenzhen Fanweitai Technology Service Co.,Ltd", "SHENZHEN-FANWEITAI-SERVICE" }, { 0x642677, "BKM-Micronic Richtfunkanlagen GmbH", "BKM-MICRONIC-RICHTFUNKANLAGEN" }, { 0x642737, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x642753, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x642943, "D-Link Corporation", "D-LINK" }, { 0x6429ED, "AO PKK Milandr", "AO-PKK-MILANDR" }, { 0x642B8A, "ALL BEST Industrial Co., Ltd.", "ALL-BEST-INDUSTRIAL" }, { 0x642C0F, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x642CAC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x642DB7, "SEUNGIL ELECTRONICS", "SEUNGIL-ELECTRONICS" }, { 0x642FC7, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x643139, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x643150, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x643172, "ZHEJIANG HISING TECHNOLOGY CO.,LTD", "ZHEJIANG-HISING" }, { 0x64317E, "Dexin Corporation", "DEXIN" }, { 0x643216, "Weidu Technology (Beijing) Co., Ltd.", "WEIDU-BEIJING" }, { 0x6432A8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x6433B5, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x6433DB, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x643409, "BITwave Pte Ltd", "BITWAVE-PTE" }, { 0x64351C, "e-CON SYSTEMS INDIA PVT LTD", "E-CON-INDIA-PVT" }, { 0x6437A4, "TOKYOSHUHA CO.,LTD.", "TOKYOSHUHA" }, { 0x643AB1, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x643AEA, "Cisco Systems, Inc", "CISCO" }, { 0x643E0A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x643E8C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x643F5F, "Exablaze", "EXABLAZE" }, { 0x644212, "Shenzhen Water World Information Co.,Ltd.", "SHENZHEN-WATER-WORLD-INFORMATION" }, { 0x644214, "Swisscom Energy Solutions AG", "SWISSCOM-ENERGY-SOLUTIONS" }, { 0x644346, "GuangDong Quick Network Computer CO.,LTD", "GUANGDONG-QUICK-NETWORK" }, { 0x6444D5, "TD Tech", "TD-TECH" }, { 0x6447E0, "Feitian Technologies Co., Ltd", "FEITIAN-TECHNOLOGIES" }, { 0x64497D, "Intel Corporate", "INTEL-CORPORATE" }, { 0x644BC3, "Shanghai WOASiS Telecommunications Ltd., Co.", "SHANGHAI-WOASIS-TELECOMMUNICATIONS" }, { 0x644BF0, "CalDigit, Inc", "CALDIGIT" }, { 0x644C36, "Intel Corporate", "INTEL-CORPORATE" }, { 0x644D70, "dSPACE GmbH", "DSPACE" }, { 0x644F42, "JETTER CO., Ltd.", "JETTER" }, { 0x644F74, "LENUS Co., Ltd.", "LENUS" }, { 0x644FB0, "Hyunjin.com", "HYUNJIN-COM" }, { 0x6450D6, "Liquidtool Systems", "LIQUIDTOOL" }, { 0x645106, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x64517E, "LONG BEN (DONGGUAN) ELECTRONIC TECHNOLOGY CO.,LTD.", "LONG-BEN-DONGGUAN" }, { 0x645234, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x645299, "The Chamberlain Group, Inc", "THE-CHAMBERLAIN-GROUP" }, { 0x64535D, "Frauscher Sensortechnik", "FRAUSCHER-SENSORTECHNIK" }, { 0x645422, "Equinox Payments", "EQUINOX-PAYMENTS" }, { 0x645563, "Intelight Inc.", "INTELIGHT" }, { 0x64557F, "NSFOCUS Information Technology Co., Ltd.", "NSFOCUS-INFORMATION" }, { 0x6455B1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x645601, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x6457E5, "Beijing Royaltech Co.,Ltd", "BEIJING-ROYALTECH" }, { 0x6458AD, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0x6459F8, "Vodafone Omnitel B.V.", "VODAFONE-OMNITEL-B-V" }, { 0x645A04, "Chicony Electronics Co., Ltd.", "CHICONY-ELECTRONICS" }, { 0x645A36, "Apple, Inc.", "APPLE" }, { 0x645AED, "Apple, Inc.", "APPLE" }, { 0x645CF3, "ParanTek Inc.", "PARANTEK" }, { 0x645D86, "Intel Corporate", "INTEL-CORPORATE" }, { 0x645D92, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x645DD7, "Shenzhen Lifesense Medical Electronics Co., Ltd.", "SHENZHEN-LIFESENSE-MEDICAL-ELECTRONICS" }, { 0x645DF4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x645E10, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x645E2C, "IRay Technology Co., Ltd.", "IRAY" }, { 0x645EBE, "Yahoo! JAPAN", "YAHOO!-JAPAN" }, { 0x645FFF, "Nicolet Neuro", "NICOLET-NEURO" }, { 0x646038, "Hirschmann Automation and Control GmbH", "HIRSCHMANN-AUTOMATION-AND-CONTROL" }, { 0x646140, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x646184, "VELUX", "VELUX" }, { 0x646223, "Cellient Co., Ltd.", "CELLIENT" }, { 0x646266, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x64628A, "evon GmbH", "EVON" }, { 0x64644A, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x64649B, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x6465C0, "Nuvon, Inc", "NUVON" }, { 0x646624, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x6466B3, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x6466D8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x646707, "Beijing Omnific Technology, Ltd.", "BEIJING-OMNIFIC" }, { 0x6467CD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x64680C, "Comtrend Corporation", "COMTREND" }, { 0x646876, "Edifier International", "EDIFIER" }, { 0x64694E, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x6469BC, "Hytera Communications Co .,ltd", "HYTERA-COMMUNICATION" }, { 0x646A52, "Avaya Inc", "AVAYA" }, { 0x646A74, "AUTH-SERVERS, LLC", "AUTH-SERVERS" }, { 0x646C80, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0x646CB2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x646D2F, "Apple, Inc.", "APPLE" }, { 0x646D4E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x646D6C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x646E60, "zte corporation", "ZTE" }, { 0x646E69, "Liteon Technology Corporation", "LITEON" }, { 0x646E6C, "Radio Datacom LLC", "RADIO-DATACOM" }, { 0x646E97, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x646EE0, "Intel Corporate", "INTEL-CORPORATE" }, { 0x646EEA, "Iskratel d.o.o.", "ISKRATEL-D-O-O" }, { 0x647002, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x647033, "Apple, Inc.", "APPLE" }, { 0x6472D8, "GooWi Technology Co.,Limited", "GOOWI" }, { 0x647366, "Shenzhen Siera Technology Ltd", "SHENZHEN-SIERA" }, { 0x6473E2, "Arbiter Systems, Inc.", "ARBITER" }, { 0x6474F6, "Shooter Detection Systems", "SHOOTER-DETECTION" }, { 0x647657, "Innovative Security Designs", "INNOVATIVE-SECURITY-DESIGNS" }, { 0x6476BA, "Apple, Inc.", "APPLE" }, { 0x64777D, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x647791, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x647924, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x6479A7, "Phison Electronics Corp.", "PHISON-ELECTRONICS" }, { 0x6479F0, "Intel Corporate", "INTEL-CORPORATE" }, { 0x647BCE, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x647BD4, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x647C34, "Ubee Interactive Co., Limited", "UBEE-INTERACTIVE" }, { 0x647CE8, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x647D81, "YOKOTA INDUSTRIAL CO,.LTD", "YOKOTA-INDUSTRIAL" }, { 0x647FDA, "TEKTELIC Communications Inc.", "TEKTELIC-COMMUNICATION" }, { 0x64808B, "VG Controls, Inc.", "VG-CONTROLS" }, { 0x648099, "Intel Corporate", "INTEL-CORPORATE" }, { 0x648125, "Alphatron Marine BV", "ALPHATRON-MARINE" }, { 0x648788, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x6487D7, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x6488FF, "Sichuan Changhong Electric Ltd.", "SICHUAN-CHANGHONG-ELECTRIC" }, { 0x64899A, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x6489F1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x648CBB, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x648D9E, "IVT Electronic Co.,Ltd", "IVT" }, { 0x648F3E, "Cisco Systems, Inc", "CISCO" }, { 0x6490C1, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x64956C, "LG Electronics", "LG-ELECTRONICS" }, { 0x649714, "eero inc.", "EERO" }, { 0x649829, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x64989E, "TRINNOV AUDIO", "TRINNOV-AUDIO" }, { 0x64995D, "LGE", "LGE" }, { 0x649968, "Elentec", "ELENTEC" }, { 0x6499A0, "AG Elektronik AB", "ELEKTRONIK-AB" }, { 0x649A08, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x649A12, "P2 Mobile Technologies Limited", "P2-MOBILE-TECHNOLOGIES" }, { 0x649A63, "Ring LLC", "RING" }, { 0x649ABE, "Apple, Inc.", "APPLE" }, { 0x649B24, "V Technology Co., Ltd.", "V" }, { 0x649C81, "Qualcomm Inc.", "QUALCOMM" }, { 0x649C8E, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x649D99, "FS COM INC", "FS-COM" }, { 0x649E31, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x649EF3, "Cisco Systems, Inc", "CISCO" }, { 0x649FF7, "Kone OYj", "KONE-OYJ" }, { 0x64A0E7, "Cisco Systems, Inc", "CISCO" }, { 0x64A198, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x64A200, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x64A232, "OOO Samlight", "OOO-SAMLIGHT" }, { 0x64A28A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x64A2F9, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0x64A341, "Wonderlan (Beijing) Technology Co., Ltd.", "WONDERLAN-BEIJING" }, { 0x64A3CB, "Apple, Inc.", "APPLE" }, { 0x64A5C3, "Apple, Inc.", "APPLE" }, { 0x64A651, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x64A68F, "Zhongshan Readboy Electronics Co.,Ltd", "ZHONGSHAN-READBOY-ELECTRONICS" }, { 0x64A769, "HTC Corporation", "HTC" }, { 0x64A7DD, "Avaya Inc", "AVAYA" }, { 0x64A837, "Juni Korea Co., Ltd", "JUNI-KOREA" }, { 0x64A965, "Linkflow Co., Ltd.", "LINKFLOW" }, { 0x64AE0C, "Cisco Systems, Inc", "CISCO" }, { 0x64AE88, "Polytec GmbH", "POLYTEC" }, { 0x64AEF1, "Qingdao Hisense Electronics Co.,Ltd.", "QINGDAO-HISENSE-ELECTRONICS" }, { 0x64B0A6, "Apple, Inc.", "APPLE" }, { 0x64B0E8, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x64B21D, "Chengdu Phycom Tech Co., Ltd.", "CHENGDU-PHYCOM-TECH" }, { 0x64B2B4, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x64B310, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x64B370, "PowerComm Solutions LLC", "POWERCOMM-SOLUTIONS" }, { 0x64B379, "Jiangsu Viscore Technologies Co.,Ltd", "JIANGSU-VISCORE-TECHNOLOGIES" }, { 0x64B473, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x64B5C6, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x64B5F2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x64B623, "Schrack Seconet Care Communication GmbH", "SCHRACK-SECONET-CARE-COMMUNICATION" }, { 0x64B64A, "ViVOtech, Inc.", "VIVOTECH" }, { 0x64B708, "Espressif Inc.", "ESPRESSIF" }, { 0x64B853, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x64B94E, "Dell Technologies", "DELL-TECHNOLOGIES" }, { 0x64B9E8, "Apple, Inc.", "APPLE" }, { 0x64BABD, "SDJ Technologies, Inc.", "SDJ-TECHNOLOGIES" }, { 0x64BC0C, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x64BC11, "CombiQ AB", "COMBIQ-AB" }, { 0x64BC58, "Intel Corporate", "INTEL-CORPORATE" }, { 0x64BE63, "STORDIS GmbH", "STORDIS" }, { 0x64BF6B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x64C269, "eero inc.", "EERO" }, { 0x64C2DE, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x64C354, "Avaya Inc", "AVAYA" }, { 0x64C394, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x64C3D6, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x64C403, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0x64C582, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x64C5AA, "South African Broadcasting Corporation", "SOUTH-AFRICAN-BROADCASTING" }, { 0x64C667, "Barnes&Noble", "BARNES-NOBLE" }, { 0x64C6AF, "AXERRA Networks Ltd", "AXERRA-NETWORKS" }, { 0x64C6D2, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0x64C753, "Apple, Inc.", "APPLE" }, { 0x64C901, "INVENTEC Corporation", "INVENTEC" }, { 0x64C944, "LARK Technologies, Inc", "LARK-TECHNOLOGIES" }, { 0x64CB5D, "SIA TeleSet", "SIA-TELESET" }, { 0x64CB9F, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x64CBA3, "Pointmobile", "POINTMOBILE" }, { 0x64CBE9, "LG Innotek", "LG-INNOTEK" }, { 0x64CC22, "Arcadyan Corporation", "ARCADYAN" }, { 0x64CC2E, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x64CE6E, "Sierra Wireless, ULC", "SIERRA-WIRELESS-ULC" }, { 0x64CF13, "Weigao Nikkiso(Weihai)Dialysis Equipment Co.,Ltd", "WEIGAO-NIKKISO-WEIHAI-DIALYSIS-EQUIPMENT" }, { 0x64CFD9, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x64D02D, "NEXT GENERATION INTEGRATION LIMITED (NGI)", "NEXT-GENERATION-INTEGRATION-NGI" }, { 0x64D0D6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x64D154, "Routerboard.com", "ROUTERBOARD-COM" }, { 0x64D1A3, "Sitecom Europe BV", "SITECOM-EUROPE" }, { 0x64D241, "Keith & Koep GmbH", "KEITH-KOEP" }, { 0x64D2C4, "Apple, Inc.", "APPLE" }, { 0x64D315, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x64D4BD, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x64D4DA, "Intel Corporate", "INTEL-CORPORATE" }, { 0x64D69A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x64D7C0, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x64D814, "Cisco Systems, Inc", "CISCO" }, { 0x64D912, "Solidica, Inc.", "SOLIDICA" }, { 0x64D954, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x64D989, "Cisco Systems, Inc", "CISCO" }, { 0x64DAA0, "Robert Bosch Smart Home GmbH", "ROBERT-BOSCH-SMART-HOME" }, { 0x64DAED, "eero inc.", "EERO" }, { 0x64DB18, "OpenPattern", "OPENPATTERN" }, { 0x64DB38, "zte corporation", "ZTE" }, { 0x64DB43, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0x64DB81, "Syszone Co., Ltd.", "SYSZONE" }, { 0x64DB8B, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x64DBA0, "Select Comfort", "SELECT-COMFORT" }, { 0x64DBF7, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0x64DC01, "Static Systems Group PLC", "STATIC-GROUP-PLC" }, { 0x64DCDE, "ZheJiang FuChunJiang Information Technology Co.,Ltd", "ZHEJIANG-FUCHUNJIANG-INFORMATION" }, { 0x64DDE9, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x64DE1C, "Kingnetic Pte Ltd", "KINGNETIC-PTE" }, { 0x64DF10, "JingLue Semiconductor(SH) Ltd.", "JINGLUE-SEMICONDUCTOR-SH" }, { 0x64DFE9, "ATEME", "ATEME" }, { 0x64E003, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x64E0AB, "UNION MAN TECHNOLOGY CO.,LTD", "UNION-MAN" }, { 0x64E161, "DEP Corp.", "DEP" }, { 0x64E172, "Shenzhen Qihoo Intelligent Technology Co.,Ltd", "SHENZHEN-QIHOO-INTELLIGENT" }, { 0x64E204, "NTN Technical Service Corporation", "NTN-TECHNICAL-SERVICE" }, { 0x64E220, "Qisda Corporation", "QISDA" }, { 0x64E4A5, "LG Electronics", "LG-ELECTRONICS" }, { 0x64E599, "EFM Networks", "EFM-NETWORKS" }, { 0x64E625, "Woxu Wireless Co., Ltd", "WOXU-WIRELESS" }, { 0x64E682, "Apple, Inc.", "APPLE" }, { 0x64E738, "Zhejiang SUPCON Technology Co., Ltd.", "ZHEJIANG-SUPCON" }, { 0x64E7D8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x64E833, "Espressif Inc.", "ESPRESSIF" }, { 0x64E84F, "Serialway Communication Technology Co. Ltd", "SERIALWAY-COMMUNICATION" }, { 0x64E881, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x64E892, "Morio Denki Co., Ltd.", "MORIO-DENKI" }, { 0x64E8E6, "global moisture management system", "GLOBAL-MOISTURE-MANAGEMENT-SYSTEM" }, { 0x64E950, "Cisco Systems, Inc", "CISCO" }, { 0x64EAC5, "SiboTech Automation Co., Ltd.", "SIBOTECH-AUTOMATION" }, { 0x64EB8C, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0x64EC65, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x64ED57, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x64ED62, "WOORI SYSTEMS Co., Ltd", "WOORI" }, { 0x64EEB7, "Netcore Technology Inc", "NETCORE" }, { 0x64F242, "Gerdes Aktiengesellschaft", "GERDES-AKTIENGESELLSCHAFT" }, { 0x64F2FB, "Hangzhou Ezviz Software Co.,Ltd.", "HANGZHOU-EZVIZ-SOFTWARE" }, { 0x64F50E, "Kinion Technology Company Limited", "KINION-COMPANY" }, { 0x64F54E, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x64F69D, "Cisco Systems, Inc", "CISCO" }, { 0x64F6BB, "Fibocom Wireless Inc.", "FIBOCOM-WIRELESS" }, { 0x64F6F7, "Anhui Dynamic Power Co., Ltd.", "ANHUI-DYNAMIC-POWER" }, { 0x64F705, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x64F81C, "Huawei Technologies Co., Ltd.", "HUAWEI-TECHNOLOGIES" }, { 0x64F88A, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0x64F947, "Senscomm Semiconductor Co., Ltd.", "SENSCOMM-SEMICONDUCTOR" }, { 0x64F970, "Kenade Electronics Technology Co.,LTD.", "KENADE-ELECTRONICS" }, { 0x64F987, "Avvasi Inc.", "AVVASI" }, { 0x64F9C0, "ANALOG DEVICES", "ANALOG-DEVICES" }, { 0x64FB01, "Zhongshan Camry Electronic Company Limited", "ZHONGSHAN-CAMRY-COMPANY" }, { 0x64FB50, "RoomReady/Zdi, Inc.", "ROOMREADY/ZDI" }, { 0x64FB81, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x64FB92, "PPC Broadband Inc.", "PPC-BROADBAND" }, { 0x64FC8C, "Zonar Systems", "ZONAR" }, { 0x64FD96, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x64FF0A, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x680235, "Konten Networks Inc.", "KONTEN-NETWORKS" }, { 0x6802B8, "Compal Broadband Networks, Inc.", "COMPAL-BROADBAND-NETWORKS" }, { 0x680571, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x6805CA, "Intel Corporate", "INTEL-CORPORATE" }, { 0x68070A, "TPVision Europe B.V", "TPVISION-EUROPE-B-V" }, { 0x680715, "Intel Corporate", "INTEL-CORPORATE" }, { 0x680927, "Apple, Inc.", "APPLE" }, { 0x680AD7, "Yancheng Kecheng Optoelectronic Technology Co., Ltd", "YANCHENG-KECHENG-OPTOELECTRONIC" }, { 0x680AE2, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x68122D, "Special Instrument Development Co., Ltd.", "SPECIAL-INSTRUMENT-DEVELOPMENT" }, { 0x681295, "Lupine Lighting Systems GmbH", "LUPINE-LIGHTING" }, { 0x681324, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x6813E2, "Eltex Enterprise LTD", "ELTEX" }, { 0x6813F3, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x681401, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x681590, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x6815D3, "Zaklady Elektroniki i Mechaniki Precyzyjnej R&G S.A.", "ZAKLADY-ELEKTRONIKI-I-MECHANIKI-PRECYZYJNEJ-R-G" }, { 0x681605, "Systems And Electronic Development FZCO", "AND-DEVELOPMENT-FZCO" }, { 0x681729, "Intel Corporate", "INTEL-CORPORATE" }, { 0x6818D9, "Hill AFB - CAPRE Group", "HILL-AFB-CAPRE-GROUP" }, { 0x68193F, "Digital Airways", "DIGITAL-AIRWAYS" }, { 0x6819AC, "Guangzhou Xianyou Intelligent Technogoly CO., LTD", "GUANGZHOU-XIANYOU-INTELLIGENT-TECHNOGOLY" }, { 0x681A7C, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x681AA4, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x681AB2, "zte corporation", "ZTE" }, { 0x681BEF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x681CA2, "Rosewill Inc.", "ROSEWILL" }, { 0x681D64, "Sunwave Communications Co., Ltd", "SUNWAVE-COMMUNICATION" }, { 0x681DEF, "Shenzhen CYX Technology Co., Ltd.", "SHENZHEN-CYX" }, { 0x681E8B, "InfoSight Corporation", "INFOSIGHT" }, { 0x681F40, "Blu Wireless Technology Ltd", "BLU-WIRELESS" }, { 0x681FD8, "Siemens Industry, Inc.", "SIEMENS-INDUSTRY" }, { 0x68215F, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0x68228E, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x68234B, "Nihon Dengyo Kousaku", "NIHON-DENGYO-KOUSAKU" }, { 0x6823F4, "Shenzhen Jinlangxin Technology Co., Ltd", "SHENZHEN-JINLANGXIN" }, { 0x682624, "Ergatta", "ERGATTA" }, { 0x68262A, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x682719, "Microchip Technology Inc.", "MICROCHIP" }, { 0x682737, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x68275F, "zte corporation", "ZTE" }, { 0x6828BA, "Dejai", "DEJAI" }, { 0x6828CF, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x6828F6, "Vubiq Networks, Inc.", "VUBIQ-NETWORKS" }, { 0x6829DC, "Ficosa Electronics S.L.U.", "FICOSA-ELECTRONICS-S-L-U" }, { 0x682C4F, "leerang corporation", "LEERANG" }, { 0x682C7B, "Cisco Systems, Inc", "CISCO" }, { 0x682D83, "SHENZHEN DINGHE COMMUNICATION COMPANY", "SHENZHEN-DINGHE-COMMUNICATION-COMPANY" }, { 0x682DDC, "Wuhan Changjiang Electro-Communication Equipment CO.,LTD", "WUHAN-CHANGJIANG-ELECTRO-COMMUNICATION-EQUIPMENT" }, { 0x682F67, "Apple, Inc.", "APPLE" }, { 0x6831FE, "Teladin Co.,Ltd.", "TELADIN" }, { 0x68332C, "KENSTEL NETWORKS LIMITED", "KENSTEL-NETWORKS" }, { 0x683489, "LEA Professional", "LEA-PROFESSIONAL" }, { 0x683563, "SHENZHEN LIOWN ELECTRONICS CO.,LTD.", "SHENZHEN-LIOWN-ELECTRONICS" }, { 0x6836B5, "DriveScale, Inc.", "DRIVESCALE" }, { 0x6837E9, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x683943, "ittim", "ITTIM" }, { 0x683A1E, "Cisco Meraki", "CISCO-MERAKI" }, { 0x683A48, "SAMJIN Co., Ltd.", "SAMJIN" }, { 0x683B1E, "Countwise LTD", "COUNTWISE" }, { 0x683B78, "Cisco Systems, Inc", "CISCO" }, { 0x683C7D, "Magic Intelligence Technology Limited", "MAGIC-INTELLIGENCE" }, { 0x683E02, "SIEMENS AG, Digital Factory, Motion Control System", "SIEMENS-DIGITAL-FACTORY-MOTION-CONTROL-SYSTEM" }, { 0x683E26, "Intel Corporate", "INTEL-CORPORATE" }, { 0x683E34, "MEIZU Technology Co., Ltd.", "MEIZU" }, { 0x683EEC, "ERECA", "ERECA" }, { 0x683F1E, "EFFECT Photonics B.V.", "EFFECT-PHOTONICS-B-V" }, { 0x683F7D, "INGRAM MICRO SERVICES", "INGRAM-MICRO-SERVICES" }, { 0x68403C, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x68418F, "Telechips, Inc.", "TELECHIPS" }, { 0x684352, "Bhuu Limited", "BHUU" }, { 0x6843D7, "Agilecom Photonics Solutions Guangdong Limited", "AGILECOM-PHOTONICS-SOLUTIONS-GUANGDONG" }, { 0x684571, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x6845F1, "TOSHIBA CLIENT SOLUTIONS CO., LTD.", "TOSHIBA-CLIENT-SOLUTIONS" }, { 0x684724, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x684749, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x684898, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x684992, "Cisco Meraki", "CISCO-MERAKI" }, { 0x6849B2, "CARLO GAVAZZI LTD", "CARLO-GAVAZZI" }, { 0x684A76, "eero inc.", "EERO" }, { 0x684AAE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x684AE9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x684B88, "Galtronics Telemetry Inc.", "GALTRONICS-TELEMETRY" }, { 0x684CA8, "Shenzhen Herotel Tech. Co., Ltd.", "SHENZHEN-HEROTEL-TECH" }, { 0x684E05, "HUNAN FN-LINK TECHNOLOGY LIMITED", "HUNAN-FN-LINK" }, { 0x684F64, "Dell Inc.", "DELL" }, { 0x68505D, "Halo Technologies", "HALO-TECHNOLOGIES" }, { 0x6851B7, "PowerCloud Systems, Inc.", "POWERCLOUD" }, { 0x6852D6, "UGame Technology Co.,Ltd", "UGAME" }, { 0x68536C, "SPnS Co.,Ltd", "SPNS" }, { 0x685388, "P&S Technology", "P-S" }, { 0x68539D, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x68545A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x6854C1, "ColorTokens, Inc.", "COLORTOKENS" }, { 0x6854ED, "Alcatel-Lucent", "ALCATEL-LUCENT" }, { 0x6854F5, "enLighted Inc", "ENLIGHTED" }, { 0x6854FD, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x6855D4, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0x68572D, "Tuya Smart Inc.", "TUYA-SMART" }, { 0x685811, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x6858C5, "ZF TRW Automotive", "ZF-TRW-AUTOMOTIVE" }, { 0x685932, "Sunitec Enterprise Co.,Ltd", "SUNITEC" }, { 0x68597F, "Alcatel Lucent", "ALCATEL-LUCENT" }, { 0x685ACF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x685B35, "Apple, Inc.", "APPLE" }, { 0x685B36, "POWERTECH INDUSTRIAL CO., LTD.", "POWERTECH-INDUSTRIAL" }, { 0x685D43, "Intel Corporate", "INTEL-CORPORATE" }, { 0x685E1C, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x685E6B, "PowerRay Co., Ltd.", "POWERRAY" }, { 0x686350, "Hella India Automotive Pvt Ltd", "HELLA-INDIA-AUTOMOTIVE-PVT" }, { 0x686359, "Advanced Digital Broadcast SA", "ADVANCED-DIGITAL-BROADCAST" }, { 0x686372, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x68644B, "Apple, Inc.", "APPLE" }, { 0x6865B7, "Zhishang Chuanglian Technology Co., Ltd", "ZHISHANG-CHUANGLIAN" }, { 0x686725, "Espressif Inc.", "ESPRESSIF" }, { 0x68692E, "Zycoo Co.,Ltd", "ZYCOO" }, { 0x686975, "Angler Labs Inc", "ANGLER-LABS" }, { 0x6869CA, "Hitachi, Ltd.", "HITACHI" }, { 0x6869F2, "ComAp s.r.o.", "COMAP-S-R-O" }, { 0x686CE6, "Microsoft Corporation", "MICROSOFT" }, { 0x686DBC, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x686E23, "Wi3 Inc.", "WI3" }, { 0x686E48, "Prophet Electronic Technology Corp.,Ltd", "PROPHET" }, { 0x687161, "Cisco Systems, Inc", "CISCO" }, { 0x687251, "Ubiquiti Inc", "UBIQUITI" }, { 0x6872C3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x6872DC, "CETORY.TV Company Limited", "CETORY-TV-COMPANY" }, { 0x687627, "Zhuhai Dingzhi Electronic Technology Co., Ltd", "ZHUHAI-DINGZHI" }, { 0x68764F, "Sony Corporation", "SONY" }, { 0x687724, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x6877DA, "zte corporation", "ZTE" }, { 0x687848, "WESTUNITIS CO., LTD.", "WESTUNITIS" }, { 0x68784C, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x687909, "Cisco Systems, Inc", "CISCO" }, { 0x687912, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x687924, "ELS-GmbH & Co. KG", "ELS" }, { 0x6879DD, "Omnipless Manufacturing (PTY) Ltd", "OMNIPLESS-MANUFACTURING-PTY" }, { 0x6879ED, "SHARP Corporation", "SHARP" }, { 0x687A64, "Intel Corporate", "INTEL-CORPORATE" }, { 0x687CC8, "Measurement Systems S. de R.L.", "MEASUREMENT-S-DE-R-L" }, { 0x687CD5, "Y Soft Corporation, a.s.", "Y-SOFT" }, { 0x687D6B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x687DB4, "Cisco Systems, Inc", "CISCO" }, { 0x687F74, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x687FF0, "TP-Link Corporation Limited", "TP-LINK" }, { 0x6881E0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6882F2, "grandcentrix GmbH", "GRANDCENTRIX" }, { 0x68831A, "Pandora Mobility Corporation", "PANDORA-MOBILITY" }, { 0x6883CB, "Apple, Inc.", "APPLE" }, { 0x688470, "eSSys Co.,Ltd", "ESSYS" }, { 0x68847E, "FUJITSU LIMITED", "FUJITSU" }, { 0x688540, "IGI Mobile, Inc.", "IGI-MOBILE" }, { 0x68856A, "OuterLink Corporation", "OUTERLINK" }, { 0x6885A4, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x6886A7, "Cisco Systems, Inc", "CISCO" }, { 0x6886E7, "Orbotix, Inc.", "ORBOTIX" }, { 0x68871C, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x68876B, "INQ Mobile Limited", "INQ-MOBILE" }, { 0x6887C6, "Cisco Systems, Inc", "CISCO" }, { 0x6888A1, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x688975, "nuoxc", "NUOXC" }, { 0x6889C1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x688AB5, "EDP Servicos", "EDP-SERVICOS" }, { 0x688AF0, "zte corporation", "ZTE" }, { 0x688B0F, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0x688DB6, "AETEK INC.", "AETEK" }, { 0x688F2E, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x688F84, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x688FC9, "Zhuolian (Shenzhen) Communication Co., Ltd", "ZHUOLIAN-SHENZHEN-COMMUNICATION" }, { 0x6891D0, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x689234, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x689320, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x689361, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x689423, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x68962E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x68966A, "OHSUNG", "OHSUNG" }, { 0x68967B, "Apple, Inc.", "APPLE" }, { 0x68974B, "Shenzhen Costar Electronics Co. Ltd.", "SHENZHEN-COSTAR-ELECTRONICS" }, { 0x6897E8, "Society of Motion Picture & Television Engineers", "SOCIETY-OF-MOTION-PICTURE-AMP-TELEVISION-ENGINEERS" }, { 0x689861, "Beacon Inc", "BEACON" }, { 0x6899CD, "Cisco Systems, Inc", "CISCO" }, { 0x689A21, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x689A87, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x689AB7, "Atelier Vision Corporation", "ATELIER-VISION" }, { 0x689C5E, "AcSiP Technology Corp.", "ACSIP" }, { 0x689C70, "Apple, Inc.", "APPLE" }, { 0x689CE2, "Cisco Systems, Inc", "CISCO" }, { 0x689E0B, "Cisco Systems, Inc", "CISCO" }, { 0x689E19, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x689E29, "zte corporation", "ZTE" }, { 0x689E6A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x689FF0, "zte corporation", "ZTE" }, { 0x68A03E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x68A0F6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x68A1B7, "Honghao Mingchuan Technology (Beijing) CO.,Ltd.", "HONGHAO-MINGCHUAN-BEIJING" }, { 0x68A378, "FREEBOX SAS", "FREEBOX-SAS" }, { 0x68A3C4, "Liteon Technology Corporation", "LITEON" }, { 0x68A40E, "BSH Hausgeräte GmbH", "BSH-HAUSGERAETE" }, { 0x68A46A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x68A47D, "Sun Cupid Technology (HK) LTD", "SUN-CUPID-HK" }, { 0x68A682, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x68A7B4, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x68A828, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x68A86D, "Apple, Inc.", "APPLE" }, { 0x68A878, "GeoWAN Pty Ltd", "GEOWAN-PTY" }, { 0x68A8E1, "Wacom Co.,Ltd.", "WACOM" }, { 0x68AAC4, "Altice Labs S.A.", "ALTICE-LABS" }, { 0x68AAD2, "DATECS LTD.,", "DATECS" }, { 0x68AB09, "Nokia", "NOKIA" }, { 0x68AB1E, "Apple, Inc.", "APPLE" }, { 0x68AB8A, "RF IDeas", "RF-IDEAS" }, { 0x68ABBC, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x68AE20, "Apple, Inc.", "APPLE" }, { 0x68AF13, "Futura Mobility", "FUTURA-MOBILITY" }, { 0x68AFFF, "Shanghai Cambricon Information Technology Co., Ltd.", "SHANGHAI-CAMBRICON-INFORMATION" }, { 0x68B094, "INESA ELECTRON CO.,LTD", "INESA-ELECTRON" }, { 0x68B35E, "Shenzhen Neostra Technology Co.Ltd", "SHENZHEN-NEOSTRA" }, { 0x68B43A, "WaterFurnace International, Inc.", "WATERFURNACE" }, { 0x68B599, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x68B691, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x68B6B3, "Espressif Inc.", "ESPRESSIF" }, { 0x68B6FC, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x68B8BB, "Beijing Xiaomi Electronics Co.,Ltd", "BEIJING-XIAOMI-ELECTRONICS" }, { 0x68B8D9, "Act KDE, Inc.", "ACT-KDE" }, { 0x68B983, "b-plus GmbH", "B-PLUS" }, { 0x68B9C2, "Earda Technologies co Ltd", "EARDA-TECHNOLOGIES" }, { 0x68B9D3, "Shenzhen Trolink Technology CO, LTD", "SHENZHEN-TROLINK" }, { 0x68BC0C, "Cisco Systems, Inc", "CISCO" }, { 0x68BDAB, "Cisco Systems, Inc", "CISCO" }, { 0x68BE49, "Nebula Matrix", "NEBULA-MATRIX" }, { 0x68BFC4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x68C44D, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x68C63A, "Espressif Inc.", "ESPRESSIF" }, { 0x68C8EB, "Rockwell Automation", "ROCKWELL-AUTOMATION" }, { 0x68C90B, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x68CA00, "Octopus Systems Limited", "OCTOPUS" }, { 0x68CAE4, "Cisco Systems, Inc", "CISCO" }, { 0x68CC6E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x68CC9C, "Mine Site Technologies", "MINE-SITE-TECHNOLOGIES" }, { 0x68CD0F, "U Tek Company Limited", "U-TEK-COMPANY" }, { 0x68CE4E, "L-3 Communications Infrared Products", "L-3-COMMUNICATION-INFRARED-PRODUCTS" }, { 0x68D1BA, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x68D1FD, "Shenzhen Trimax Technology Co.,Ltd", "SHENZHEN-TRIMAX" }, { 0x68D247, "Portalis LC", "PORTALIS-LC" }, { 0x68D40C, "TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO", "TELLESCOM-INDUSTRIA-E-COMERCIO-EM-TELECOMUNICACAO" }, { 0x68D482, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0x68D48B, "Hailo Technologies Ltd.", "HAILO-TECHNOLOGIES" }, { 0x68D6ED, "GooWi Wireless Technology Co., Limited", "GOOWI-WIRELESS" }, { 0x68D79A, "Ubiquiti Inc", "UBIQUITI" }, { 0x68D925, "ProSys Development Services", "PROSYS-DEVELOPMENT-SERVICES" }, { 0x68D927, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x68D93C, "Apple, Inc.", "APPLE" }, { 0x68DA73, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x68DB54, "Phicomm (Shanghai) Co., Ltd.", "PHICOMM-SHANGHAI" }, { 0x68DB67, "Nantong Coship Electronics Co., Ltd.", "NANTONG-COSHIP-ELECTRONICS" }, { 0x68DB96, "OPWILL Technologies CO .,LTD", "OPWILL-TECHNOLOGIES" }, { 0x68DBCA, "Apple, Inc.", "APPLE" }, { 0x68DBF5, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x68DCE8, "PacketStorm Communications", "PACKETSTORM-COMMUNICATION" }, { 0x68DD26, "Shanghai Focus Vision Security Technology Co.,Ltd", "SHANGHAI-FOCUS-VISION-SECURITY" }, { 0x68DDB7, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x68DDD9, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x68DECE, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x68DFDD, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x68E154, "SiMa.ai", "SIMA-AI" }, { 0x68E166, "Private", "PRIVATE" }, { 0x68E1DC, "BUFFALO.INC", "BUFFALO" }, { 0x68E209, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x68E41F, "Unglaube Identech GmbH", "UNGLAUBE-IDENTECH" }, { 0x68E478, "Qingdao Haier Technology Co.,Ltd", "QINGDAO-HAIER" }, { 0x68E59E, "Cisco Systems, Inc", "CISCO" }, { 0x68E74A, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x68E7C2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x68E8EB, "Linktel Technologies Co.,Ltd", "LINKTEL-TECHNOLOGIES" }, { 0x68EBAE, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x68EBC5, "Angstrem Telecom", "ANGSTREM-TELECOM" }, { 0x68EC62, "YODO Technology Corp. Ltd.", "YODO" }, { 0x68EC8A, "IKEA of Sweden AB", "IKEA-OF-SWEDEN-AB" }, { 0x68ECC5, "Intel Corporate", "INTEL-CORPORATE" }, { 0x68ED43, "BlackBerry RTS", "BLACKBERRY-RTS" }, { 0x68EDA4, "Shenzhen Seavo Technology Co.,Ltd", "SHENZHEN-SEAVO" }, { 0x68EE4B, "Sharetronic Data Technology Co.,Ltd", "SHARETRONIC-DATA" }, { 0x68EE88, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0x68EE96, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x68EF43, "Apple, Inc.", "APPLE" }, { 0x68EFBD, "Cisco Systems, Inc", "CISCO" }, { 0x68F06D, "ALONG INDUSTRIAL CO., LIMITED", "ALONG-INDUSTRIAL" }, { 0x68F0B5, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x68F0BC, "Shenzhen LiWiFi Technology Co., Ltd", "SHENZHEN-LIWIFI" }, { 0x68F0D0, "SkyBell Technologies Inc.", "SKYBELL-TECHNOLOGIES" }, { 0x68F125, "Data Controls Inc.", "DATA-CONTROLS" }, { 0x68F38E, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x68F543, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x68F63B, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x68F728, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x68F895, "Redflow Limited", "REDFLOW" }, { 0x68F956, "Objetivos y Servicio de Valor Añadido", "OBJETIVOS-Y-SERVICIO-DE-VALOR-AADIDO" }, { 0x68FB7E, "Apple, Inc.", "APPLE" }, { 0x68FB95, "Generalplus Technology Inc.", "GENERALPLUS" }, { 0x68FCB3, "Next Level Security Systems, Inc.", "NEXT-LEVEL-SECURITY" }, { 0x68FCB6, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x68FCCA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x68FEDA, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x68FEF7, "Apple, Inc.", "APPLE" }, { 0x68FF7B, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x6C006B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x6C0273, "Shenzhen Jin Yun Video Equipment Co., Ltd.", "SHENZHEN-JIN-YUN-VIDEO-EQUIPMENT" }, { 0x6C02E0, "HP Inc.", "HP" }, { 0x6C0309, "Cisco Systems, Inc", "CISCO" }, { 0x6C0370, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x6C03B5, "Cisco Systems, Inc", "CISCO" }, { 0x6C0460, "RBH Access Technologies Inc.", "RBH-ACCESS-TECHNOLOGIES" }, { 0x6C047A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6C05D5, "Ethertronics Inc", "ETHERTRONICS" }, { 0x6C06D6, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x6C0831, "ANALOG SYSTEMS", "ANALOG" }, { 0x6C090A, "GEMATICA SRL", "GEMATICA-SRL" }, { 0x6C09BF, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x6C09D6, "Digiquest Electronics LTD", "DIGIQUEST-ELECTRONICS" }, { 0x6C0B84, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x6C0C9A, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x6C0D34, "Nokia", "NOKIA" }, { 0x6C0DC4, "Beijing Xiaomi Electronics Co., Ltd.", "BEIJING-XIAOMI-ELECTRONICS" }, { 0x6C0DE1, "Dongguan Cannice Precision Manufacturing Co., Ltd.", "DONGGUAN-CANNICE-PRECISION-MANUFACTURING" }, { 0x6C0E0D, "Sony Corporation", "SONY" }, { 0x6C0EE6, "Chengdu Xiyida Electronic Technology Co,.Ltd", "CHENGDU-XIYIDA" }, { 0x6C0F0B, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x6C0F61, "Hypervolt Ltd", "HYPERVOLT" }, { 0x6C0F6A, "JDC Tech Co., Ltd.", "JDC-TECH" }, { 0x6C108B, "WeLink Communications", "WELINK-COMMUNICATION" }, { 0x6C11B3, "Wu Qi Technologies,Inc.", "WU-QI-TECHNOLOGIES" }, { 0x6C13D5, "Cisco Systems, Inc", "CISCO" }, { 0x6C1414, "BUJEON ELECTRONICS Co,.Ltd", "BUJEON-ELECTRONICS" }, { 0x6C146E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6C14F7, "Erhardt+Leimer GmbH", "ERHARDT+LEIMER" }, { 0x6C1524, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x6C15F9, "Nautronix Limited", "NAUTRONIX" }, { 0x6C160E, "ShotTracker", "SHOTTRACKER" }, { 0x6C1632, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6C1811, "Decatur Electronics", "DECATUR-ELECTRONICS" }, { 0x6C198F, "D-Link International", "D-LINK" }, { 0x6C19C0, "Apple, Inc.", "APPLE" }, { 0x6C1A75, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x6C1B3F, "MiraeSignal Co., Ltd", "MIRAESIGNAL" }, { 0x6C1C71, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0x6C1DEB, "u-blox AG", "U-BLOX" }, { 0x6C1E70, "Guangzhou YBDS IT Co.,Ltd", "GUANGZHOU-YBDS-IT" }, { 0x6C1E90, "Hansol Technics Co., Ltd.", "HANSOL-TECHNICS" }, { 0x6C1ED7, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x6C2056, "Cisco Systems, Inc", "CISCO" }, { 0x6C21A2, "AMPAK Technology, Inc.", "AMPAK" }, { 0x6C221A, "AltoBeam Inc.", "ALTOBEAM" }, { 0x6C22AB, "Ainsworth Game Technology", "AINSWORTH-GAME" }, { 0x6C2316, "TATUNG Technology Inc.,", "TATUNG" }, { 0x6C23B9, "Sony Corporation", "SONY" }, { 0x6C23CB, "Wattty Corporation", "WATTTY" }, { 0x6C2408, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x6C2483, "Microsoft Mobile Oy", "MICROSOFT-MOBILE-OY" }, { 0x6C24A6, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x6C25B9, "BBK EDUCATIONAL ELECTRONICS CORP.,LTD.", "BBK-EDUCATIONAL-ELECTRONICS" }, { 0x6C2636, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6C2779, "Microsoft Mobile Oy", "MICROSOFT-MOBILE-OY" }, { 0x6C2990, "WiZ Connected Lighting Company Limited", "WIZ-CONNECTED-LIGHTING-COMPANY" }, { 0x6C2995, "Intel Corporate", "INTEL-CORPORATE" }, { 0x6C29D2, "Cisco Systems, Inc", "CISCO" }, { 0x6C2ACB, "Paxton Access Ltd", "PAXTON-ACCESS" }, { 0x6C2ADF, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x6C2B59, "Dell Inc.", "DELL" }, { 0x6C2C06, "OOO NPP Systemotechnika-NN", "OOO-NPP-SYSTEMOTECHNIKA-NN" }, { 0x6C2CDC, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0x6C2D24, "Zhen Shi Information Technology (Shanghai) Co., Ltd.", "ZHEN-SHI-INFORMATION-SHANGHAI" }, { 0x6C2E33, "Accelink Technologies Co.,Ltd.", "ACCELINK-TECHNOLOGIES" }, { 0x6C2E72, "B&B EXPORTING LIMITED", "B-B-EXPORTING" }, { 0x6C2E85, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x6C2F2C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x6C2F8A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x6C302A, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x6C310E, "Cisco Systems, Inc", "CISCO" }, { 0x6C32DE, "Indieon Technologies Pvt. Ltd.", "INDIEON-TECHNOLOGIES-PVT" }, { 0x6C33A9, "Magicjack LP", "MAGICJACK-LP" }, { 0x6C3491, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6C3838, "Marking System Technology Co., Ltd.", "MARKING-SYSTEM" }, { 0x6C3845, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x6C38A1, "Ubee Interactive Co., Limited", "UBEE-INTERACTIVE" }, { 0x6C391D, "Beijing ZhongHuaHun Network Information center", "BEIJING-ZHONGHUAHUN-NETWORK-INFORMATION-CENTER" }, { 0x6C3A36, "Glowforge Inc", "GLOWFORGE" }, { 0x6C3A84, "Shenzhen Aero-Startech. Co.Ltd", "SHENZHEN-AERO-STARTECH" }, { 0x6C3B6B, "Routerboard.com", "ROUTERBOARD-COM" }, { 0x6C3BE5, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x6C3C53, "SoundHawk Corp", "SOUNDHAWK" }, { 0x6C3C7C, "CANON INC.", "CANON" }, { 0x6C3C8C, "Dell Inc.", "DELL" }, { 0x6C3E6D, "Apple, Inc.", "APPLE" }, { 0x6C3E9C, "KE Knestel Elektronik GmbH", "KE-KNESTEL-ELEKTRONIK" }, { 0x6C4008, "Apple, Inc.", "APPLE" }, { 0x6C40C6, "Nimbus Data, Inc.", "NIMBUS-DATA" }, { 0x6C410E, "Cisco Systems, Inc", "CISCO" }, { 0x6C416A, "Cisco Systems, Inc", "CISCO" }, { 0x6C42AB, "Subscriber Networks, Inc.", "SUBSCRIBER-NETWORKS" }, { 0x6C433C, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x6C4418, "Zappware", "ZAPPWARE" }, { 0x6C442A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6C4598, "Antex Electronic Corp.", "ANTEX" }, { 0x6C4760, "Sunitec Enterprise Co.,Ltd", "SUNITEC" }, { 0x6C48A6, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x6C49C1, "o2ones Co., Ltd.", "O2ONES" }, { 0x6C4A39, "BITA", "BITA" }, { 0x6C4A74, "AERODISK LLC", "AERODISK" }, { 0x6C4A85, "Apple, Inc.", "APPLE" }, { 0x6C4B7F, "Vossloh-Schwabe Deutschland GmbH", "VOSSLOH-SCHWABE-DEUTSCHLAND" }, { 0x6C4B90, "LiteON", "LITEON" }, { 0x6C4BB4, "HUMAX Co., Ltd.", "HUMAX" }, { 0x6C4CE2, "Intel Corporate", "INTEL-CORPORATE" }, { 0x6C4D51, "Shenzhen Ceres Technology Co., Ltd.", "SHENZHEN-CERES" }, { 0x6C4D73, "Apple, Inc.", "APPLE" }, { 0x6C4E86, "Third Millennium Systems Ltd.", "THIRD-MILLENNIUM" }, { 0x6C4EF6, "Cisco Systems, Inc", "CISCO" }, { 0x6C504D, "Cisco Systems, Inc", "CISCO" }, { 0x6C51BF, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x6C54CD, "LAMPEX ELECTRONICS LIMITED", "LAMPEX-ELECTRONICS" }, { 0x6C5563, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x6C558D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6C55E8, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x6C5640, "BLU Products Inc", "BLU-PRODUCTS" }, { 0x6C5697, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x6C5779, "Aclima, Inc.", "ACLIMA" }, { 0x6C5940, "MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x6C5976, "Shanghai Tricheer Technology Co.,Ltd.", "SHANGHAI-TRICHEER" }, { 0x6C5A34, "Shenzhen Haitianxiong Electronic Co., Ltd.", "SHENZHEN-HAITIANXIONG" }, { 0x6C5AB0, "TP-Link Corporation Limited", "TP-LINK" }, { 0x6C5AB5, "TCL Technoly Electronics (Huizhou) Co., Ltd.", "TCL-TECHNOLY-ELECTRONICS-HUIZHOU" }, { 0x6C5C14, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x6C5C3D, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x6C5CB1, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x6C5CDE, "SunReports, Inc.", "SUNREPORTS" }, { 0x6C5D3A, "Microsoft Corporation", "MICROSOFT" }, { 0x6C5D63, "ShenZhen Rapoo Technology Co., Ltd.", "SHENZHEN-RAPOO" }, { 0x6C5E3B, "Cisco Systems, Inc", "CISCO" }, { 0x6C5E7A, "Ubiquitous Internet Telecom Co., Ltd", "UBIQUITOUS-INTERNET-TELECOM" }, { 0x6C5F1C, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0x6C60D0, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x6C60EB, "ZHI YUAN ELECTRONICS CO., LIMITED", "ZHI-YUAN-ELECTRONICS" }, { 0x6C6126, "Rinicom Holdings", "RINICOM-HOLDINGS" }, { 0x6C61F4, "SFR", "SFR" }, { 0x6C626D, "Micro-Star INT'L CO., LTD", "MICRO-STAR" }, { 0x6C6286, "Nokia", "NOKIA" }, { 0x6C639C, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x6C641A, "Penguin Computing", "PENGUIN-COMPUTING" }, { 0x6C6567, "BELIMO Automation AG", "BELIMO-AUTOMATION" }, { 0x6C67EF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6C68A4, "Guangzhou V-Solution Telecommunication Technology Co.,Ltd.", "GUANGZHOU-V-SOLUTION-TELECOMMUNICATION" }, { 0x6C6A77, "Intel Corporate", "INTEL-CORPORATE" }, { 0x6C6C0F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6C6CD3, "Cisco Systems, Inc", "CISCO" }, { 0x6C6D09, "Kyowa Electronics Co.,Ltd.", "KYOWA-ELECTRONICS" }, { 0x6C6E07, "CE LINK LIMITED", "CE-LINK" }, { 0x6C6EFE, "Core Logic Inc.", "CORE-LOGIC" }, { 0x6C6F18, "Stereotaxis, Inc.", "STEREOTAXIS" }, { 0x6C7039, "Novar GmbH", "NOVAR" }, { 0x6C709F, "Apple, Inc.", "APPLE" }, { 0x6C70CB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x6C710D, "Cisco Systems, Inc", "CISCO" }, { 0x6C71BD, "EZELINK TELECOM", "EZELINK-TELECOM" }, { 0x6C71D2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6C71D9, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x6C7220, "D-Link International", "D-LINK" }, { 0x6C724A, "Onkyo Technology K.K.", "ONKYO-K-K" }, { 0x6C72E2, "amitek", "AMITEK" }, { 0x6C72E7, "Apple, Inc.", "APPLE" }, { 0x6C750D, "WiFiSONG", "WIFISONG" }, { 0x6C7637, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x6C7660, "KYOCERA CORPORATION", "KYOCERA" }, { 0x6C79B8, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x6C7E67, "Apple, Inc.", "APPLE" }, { 0x6C81FE, "Mitsuba Corporation", "MITSUBA" }, { 0x6C8336, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x6C8366, "Nanjing SAC Power Grid Automation Co., Ltd.", "NANJING-SAC-POWER-GRID-AUTOMATION" }, { 0x6C8686, "Technonia", "TECHNONIA" }, { 0x6C8814, "Intel Corporate", "INTEL-CORPORATE" }, { 0x6C8AEC, "Nantong Coship Electronics Co., Ltd.", "NANTONG-COSHIP-ELECTRONICS" }, { 0x6C8B2F, "zte corporation", "ZTE" }, { 0x6C8BD3, "Cisco Systems, Inc", "CISCO" }, { 0x6C8CDB, "Otus Technologies Ltd", "OTUS-TECHNOLOGIES" }, { 0x6C8D65, "Wireless Glue Networks, Inc.", "WIRELESS-GLUE-NETWORKS" }, { 0x6C8D77, "Cisco Systems, Inc", "CISCO" }, { 0x6C8DC1, "Apple, Inc.", "APPLE" }, { 0x6C8F4E, "Chongqing Yipingfang Technology Co., Ltd.", "CHONGQING-YIPINGFANG" }, { 0x6C8FB5, "Microsoft Mobile Oy", "MICROSOFT-MOBILE-OY" }, { 0x6C90B1, "SanLogic Inc", "SANLOGIC" }, { 0x6C9106, "Katena Computing Technologies", "KATENA-COMPUTING-TECHNOLOGIES" }, { 0x6C92BF, "Inspur Electronic Information Industry Co.,Ltd.", "INSPUR-INFORMATION-INDUSTRY" }, { 0x6C9308, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x6C9354, "Yaojin Technology (Shenzhen) Co., LTD.", "YAOJIN-SHENZHEN" }, { 0x6C9392, "BEKO Technologies GmbH", "BEKO-TECHNOLOGIES" }, { 0x6C9466, "Intel Corporate", "INTEL-CORPORATE" }, { 0x6C94F8, "Apple, Inc.", "APPLE" }, { 0x6C9522, "Scalys", "SCALYS" }, { 0x6C96CF, "Apple, Inc.", "APPLE" }, { 0x6C976D, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x6C97AA, "AI TECHNOLOGY CO.,LTD.", "AI" }, { 0x6C98EB, "Riverbed Technology, Inc.", "RIVERBED" }, { 0x6C9961, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x6C9989, "Cisco Systems, Inc", "CISCO" }, { 0x6C999D, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x6C9AC9, "Valentine Research, Inc.", "VALENTINE-RESEARCH" }, { 0x6C9B02, "Nokia Corporation", "NOKIA" }, { 0x6C9BC0, "Chemoptics Inc.", "CHEMOPTICS" }, { 0x6C9CE9, "Nimble Storage", "NIMBLE-STORAGE" }, { 0x6C9CED, "Cisco Systems, Inc", "CISCO" }, { 0x6C9E7C, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x6CA0B4, "SKY UK LIMITED", "SKY-UK" }, { 0x6CA100, "Intel Corporate", "INTEL-CORPORATE" }, { 0x6CA367, "Avlinkpro", "AVLINKPRO" }, { 0x6CA401, "essensys plc", "ESSENSYS-PLC" }, { 0x6CA4D1, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x6CA604, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x6CA682, "EDAM information & communications", "EDAM-INFORMATION-COMMUNICATION" }, { 0x6CA75F, "zte corporation", "ZTE" }, { 0x6CA780, "Nokia Corporation", "NOKIA" }, { 0x6CA7FA, "YOUNGBO ENGINEERING INC.", "YOUNGBO-ENGINEERING" }, { 0x6CA849, "Avaya Inc", "AVAYA" }, { 0x6CA858, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x6CA906, "Telefield Ltd", "TELEFIELD" }, { 0x6CA928, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x6CA936, "DisplayLink (UK) Ltd", "DISPLAYLINK-UK" }, { 0x6CA96F, "TransPacket AS", "TRANSPACKET-AS" }, { 0x6CAAB3, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x6CAB05, "Cisco Systems, Inc", "CISCO" }, { 0x6CAB31, "Apple, Inc.", "APPLE" }, { 0x6CAB4D, "Digital Payment Technologies", "DIGITAL-PAYMENT-TECHNOLOGIES" }, { 0x6CAC60, "Venetex Corp", "VENETEX" }, { 0x6CACC2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x6CAD3F, "Hubbell Building Automation, Inc.", "HUBBELL-BUILDING-AUTOMATION" }, { 0x6CADAD, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0x6CADEF, "KZ Broadband Technologies, Ltd.", "KZ-BROADBAND-TECHNOLOGIES" }, { 0x6CADF8, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x6CAE8B, "IBM Corporation", "IBM" }, { 0x6CAEE3, "Nokia", "NOKIA" }, { 0x6CAEF6, "eero inc.", "EERO" }, { 0x6CAF15, "Webasto SE", "WEBASTO-SE" }, { 0x6CB0CE, "NETGEAR", "NETGEAR" }, { 0x6CB0FD, "Shenzhen Xinghai Iot Technology Co.,Ltd", "SHENZHEN-XINGHAI-IOT" }, { 0x6CB133, "Apple, Inc.", "APPLE" }, { 0x6CB158, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x6CB227, "Sony Video & Sound Products Inc.", "SONY-VIDEO-SOUND-PRODUCTS" }, { 0x6CB2AE, "Cisco Systems, Inc", "CISCO" }, { 0x6CB2FD, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x6CB311, "Shenzhen Lianrui Electronics Co.,Ltd", "SHENZHEN-LIANRUI-ELECTRONICS" }, { 0x6CB350, "Anhui comhigher tech co.,ltd", "ANHUI-COMHIGHER-TECH" }, { 0x6CB4A7, "Landauer, Inc.", "LANDAUER" }, { 0x6CB4FD, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x6CB56B, "HUMAX Co., Ltd.", "HUMAX" }, { 0x6CB6CA, "DIVUS GmbH", "DIVUS" }, { 0x6CB749, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6CB7E2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6CB7F4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x6CB881, "zte corporation", "ZTE" }, { 0x6CB9C5, "Delta Networks, Inc.", "DELTA-NETWORKS" }, { 0x6CBAB8, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x6CBEE9, "Alcatel-Lucent IPD", "ALCATEL-LUCENT-IPD" }, { 0x6CBFB5, "Noon Technology Co., Ltd", "NOON" }, { 0x6CC147, "Xiamen Hanin Electronic Technology Co., Ltd", "XIAMEN-HANIN" }, { 0x6CC1D2, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x6CC217, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x6CC242, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x6CC26B, "Apple, Inc.", "APPLE" }, { 0x6CC374, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x6CC49F, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x6CC4D5, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x6CC63B, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x6CC7EC, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x6CCA08, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x6CCDD6, "NETGEAR", "NETGEAR" }, { 0x6CCE44, "1MORE", "1MORE" }, { 0x6CCF39, "Guangdong Starfive Technology Co., Ltd.", "GUANGDONG-STARFIVE" }, { 0x6CD032, "LG Electronics", "LG-ELECTRONICS" }, { 0x6CD146, "FRAMOS GmbH", "FRAMOS" }, { 0x6CD199, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x6CD1B0, "WING SING ELECTRONICS HONG KONG LIMITED", "WING-SING-ELECTRONICS-HONG-KONG" }, { 0x6CD1E5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6CD2BA, "zte corporation", "ZTE" }, { 0x6CD3EE, "ZIMI CORPORATION", "ZIMI" }, { 0x6CD630, "Rootous System Co.,Ltd", "ROOTOUS-SYSTEM" }, { 0x6CD68A, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x6CD6E3, "Cisco Systems, Inc", "CISCO" }, { 0x6CD704, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6CD719, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x6CD71F, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x6CD869, "Guangzhou Sat Infrared Co.,LTD", "GUANGZHOU-SAT-INFRARED" }, { 0x6CD94C, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x6CDC6A, "Promethean Limited", "PROMETHEAN" }, { 0x6CDD30, "Cisco Systems, Inc", "CISCO" }, { 0x6CDDBC, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x6CDDEF, "EPCOMM Inc.", "EPCOMM" }, { 0x6CDEA9, "Cisco Meraki", "CISCO-MERAKI" }, { 0x6CDFFB, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x6CE01E, "Modcam AB", "MODCAM-AB" }, { 0x6CE0B0, "SOUND4", "SOUND4" }, { 0x6CE3B6, "Nera Telecommunications Ltd.", "NERA-TELECOMMUNICATIONS" }, { 0x6CE4CE, "Villiger Security Solutions AG", "VILLIGER-SECURITY-SOLUTIONS" }, { 0x6CE4DA, "NEC Platforms, Ltd.", "NEC-PLATFORMS" }, { 0x6CE5C9, "Apple, Inc.", "APPLE" }, { 0x6CE5F7, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x6CE85C, "Apple, Inc.", "APPLE" }, { 0x6CE873, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x6CE874, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6CE8C6, "Earda Technologies co Ltd", "EARDA-TECHNOLOGIES" }, { 0x6CE907, "Nokia Corporation", "NOKIA" }, { 0x6CE983, "Gastron Co., LTD.", "GASTRON" }, { 0x6CEBB2, "Dongguan Sen DongLv Electronics Co.,Ltd", "DONGGUAN-SEN-DONGLV-ELECTRONICS" }, { 0x6CEBB6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x6CEC5A, "Hon Hai Precision Ind. CO.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x6CECA1, "SHENZHEN CLOU ELECTRONICS CO. LTD.", "SHENZHEN-CLOU-ELECTRONICS" }, { 0x6CECEB, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x6CED51, "NEXCONTROL Co.,Ltd", "NEXCONTROL" }, { 0x6CEEF7, "shenzhen scodeno technology co., Ltd.", "SHENZHEN-SCODENO" }, { 0x6CEFC6, "SHENZHEN TWOWING TECHNOLOGIES CO.,LTD.", "SHENZHEN-TWOWING-TECHNOLOGIES" }, { 0x6CF049, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x6CF17E, "Zhejiang Uniview Technologies Co.,Ltd.", "ZHEJIANG-UNIVIEW-TECHNOLOGIES" }, { 0x6CF373, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x6CF37F, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x6CF5E8, "Mooredoll Inc.", "MOOREDOLL" }, { 0x6CF6DA, "Intel Corporate", "INTEL-CORPORATE" }, { 0x6CF712, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x6CF784, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x6CF97C, "Nanoptix Inc.", "NANOPTIX" }, { 0x6CF9D2, "CHENGDU POVODO ELECTRONIC TECHNOLOGY CO., LTD", "CHENGDU-POVODO" }, { 0x6CFA58, "Avaya Inc", "AVAYA" }, { 0x6CFA89, "Cisco Systems, Inc", "CISCO" }, { 0x6CFAA7, "AMPAK Technology, Inc.", "AMPAK" }, { 0x6CFDB9, "Proware Technologies Co Ltd.", "PROWARE-TECHNOLOGIES" }, { 0x6CFE54, "Intel Corporate", "INTEL-CORPORATE" }, { 0x6CFFBE, "MPB Communications Inc.", "MPB-COMMUNICATION" }, { 0x6CFFCE, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x700136, "FATEK Automation Corporation", "FATEK-AUTOMATION" }, { 0x7001B5, "Cisco Systems, Inc", "CISCO" }, { 0x700258, "01DB-METRAVIB", "01DB-METRAVIB" }, { 0x70033F, "Pimax Technology(ShangHai)Co.,Ltd", "PIMAX-SHANGHAI" }, { 0x70037E, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x70039F, "Espressif Inc.", "ESPRESSIF" }, { 0x70041D, "Espressif Inc.", "ESPRESSIF" }, { 0x700433, "California Things Inc.", "CALIFORNIA-THINGS" }, { 0x700514, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x700692, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x7006AC, "Eastcompeace Technology Co., Ltd", "EASTCOMPEACE" }, { 0x700777, "OnTarget Technologies, Inc", "ONTARGET-TECHNOLOGIES" }, { 0x700971, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x700B01, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x700B4F, "Cisco Systems, Inc", "CISCO" }, { 0x700BC0, "Dewav Technology Company", "DEWAV-COMPANY" }, { 0x700F6A, "Cisco Systems, Inc", "CISCO" }, { 0x700FC7, "SHENZHEN IKINLOOP TECHNOLOGY CO.,LTD.", "SHENZHEN-IKINLOOP" }, { 0x700FEC, "Poindus Systems Corp.", "POINDUS" }, { 0x70105C, "Cisco Systems, Inc", "CISCO" }, { 0x70106F, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x70110E, "zte corporation", "ZTE" }, { 0x701124, "Apple, Inc.", "APPLE" }, { 0x701135, "Livesecu co., Ltd", "LIVESECU" }, { 0x7011AE, "Music Life LTD", "MUSIC-LIFE" }, { 0x701404, "Limited Liability Company", "LIABILITY-COMPANY" }, { 0x7014A6, "Apple, Inc.", "APPLE" }, { 0x70169F, "EtherCAT Technology Group", "ETHERCAT-GROUP" }, { 0x7017D7, "Shanghai Enflame Technology Co., Ltd.", "SHANGHAI-ENFLAME" }, { 0x70188B, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x7018A7, "Cisco Systems, Inc", "CISCO" }, { 0x70192F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x701A04, "Liteon Technology Corporation", "LITEON" }, { 0x701AB8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x701AD5, "Openpath Security, Inc.", "OPENPATH-SECURITY" }, { 0x701AED, "ADVAS CO., LTD.", "ADVAS" }, { 0x701BFB, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x701CE7, "Intel Corporate", "INTEL-CORPORATE" }, { 0x701D08, "99IOT Shenzhen co.,ltd", "99IOT-SHENZHEN" }, { 0x701D7F, "Comtech Technology Co., Ltd.", "COMTECH" }, { 0x701DC4, "NorthStar Battery Company, LLC", "NORTHSTAR-BATTERY-COMPANY" }, { 0x701E68, "Hanna Instruments, Inc.", "HANNA-INSTRUMENTS" }, { 0x701F0B, "WILOGY SRL", "WILOGY-SRL" }, { 0x701F3C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x701F53, "Cisco Systems, Inc", "CISCO" }, { 0x702084, "Hon Hai Precision Industry Co., Ltd.", "HON-HAI-PRECISION-INDUSTRY" }, { 0x7022FE, "Apple, Inc.", "APPLE" }, { 0x702393, "fos4X GmbH", "FOS4X" }, { 0x702526, "Nokia", "NOKIA" }, { 0x702559, "CyberTAN Technology Inc.", "CYBERTAN" }, { 0x702605, "SONY Visual Products Inc.", "SONY-VISUAL-PRODUCTS" }, { 0x702804, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x70288B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x702900, "Shenzhen ChipTrip Technology Co,Ltd", "SHENZHEN-CHIPTRIP" }, { 0x702A7D, "EpSpot AB", "EPSPOT-AB" }, { 0x702AD5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x702B1D, "E-Domus International Limited", "E-DOMUS" }, { 0x702C09, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x702C1F, "Wisol", "WISOL" }, { 0x702D84, "i4C Innovations", "I4C-INNOVATIONS" }, { 0x702DD1, "Newings Communication CO., LTD.", "NEWINGS-COMMUNICATION" }, { 0x702E22, "zte corporation", "ZTE" }, { 0x702E80, "DIEHL Connectivity Solutions", "DIEHL-CONNECTIVITY-SOLUTIONS" }, { 0x702ED9, "Guangzhou Shiyuan Electronics Co., Ltd.", "GUANGZHOU-SHIYUAN-ELECTRONICS" }, { 0x702F35, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x702F4B, "Steelcase Inc.", "STEELCASE" }, { 0x702F86, "Marquardt GmbH", "MARQUARDT" }, { 0x702F97, "Aava Mobile Oy", "AAVA-MOBILE-OY" }, { 0x703018, "Avaya Inc", "AVAYA" }, { 0x70305D, "Ubiquoss Inc", "UBIQUOSS" }, { 0x70305E, "Nanjing Zhongke Menglian Information Technology Co.,LTD", "NANJING-ZHONGKE-MENGLIAN-INFORMATION" }, { 0x70317F, "Apple, Inc.", "APPLE" }, { 0x703187, "ACX GmbH", "ACX" }, { 0x703217, "Intel Corporate", "INTEL-CORPORATE" }, { 0x7032D5, "Athena Wireless Communications Inc", "ATHENA-WIRELESS-COMMUNICATION" }, { 0x703509, "Cisco Systems, Inc", "CISCO" }, { 0x7036B2, "Focusai Corp", "FOCUSAI" }, { 0x703811, "Siemens Mobility Limited", "SIEMENS-MOBILITY" }, { 0x7038B4, "Low Tech Solutions", "LOW-TECH-SOLUTIONS" }, { 0x7038EE, "Avaya Inc", "AVAYA" }, { 0x703A0E, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x703A2D, "Shenzhen V-Link Technology CO., LTD.", "SHENZHEN-V-LINK" }, { 0x703A51, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x703A73, "Shenzhen Sundray Technologies Company Limited", "SHENZHEN-SUNDRAY-TECHNOLOGIES-COMPANY" }, { 0x703AA6, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x703ACB, "Google, Inc.", "GOOGLE" }, { 0x703AD8, "Shenzhen Afoundry Electronic Co., Ltd", "SHENZHEN-AFOUNDRY" }, { 0x703C03, "RadiAnt Co.,Ltd", "RADIANT" }, { 0x703C39, "SEAWING Kft", "SEAWING-KFT" }, { 0x703C69, "Apple, Inc.", "APPLE" }, { 0x703D15, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x703E97, "Iton Technology Corp.", "ITON" }, { 0x703EAC, "Apple, Inc.", "APPLE" }, { 0x7040FF, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x7041B7, "Edwards Lifesciences LLC", "EDWARDS-LIFESCIENCES" }, { 0x7042D3, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0x70441C, "SHENZHEN KAIFA TECHNOLOGY CO.,LTD.", "SHENZHEN-KAIFA" }, { 0x704642, "CHYNG HONG ELECTRONIC CO., LTD.", "CHYNG-HONG" }, { 0x704698, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x704777, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x7047E9, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x70480F, "Apple, Inc.", "APPLE" }, { 0x7048F7, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x704A0E, "AMPAK Technology,Inc.", "AMPAK" }, { 0x704AAE, "Xstream Flow (Pty) Ltd", "XSTREAM-FLOW-PTY" }, { 0x704AE4, "Rinstrum Pty Ltd", "RINSTRUM-PTY" }, { 0x704CA5, "Fortinet, Inc.", "FORTINET" }, { 0x704CB6, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x704CED, "TMRG, Inc.", "TMRG" }, { 0x704D7B, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x704DE7, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x704E01, "KWANGWON TECH CO., LTD.", "KWANGWON-TECH" }, { 0x704E66, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0x704E6B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x704F08, "Shenzhen Huisheng Information Technology Co., Ltd.", "SHENZHEN-HUISHENG-INFORMATION" }, { 0x704F57, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x704FB8, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x7050AF, "SKY UK LIMITED", "SKY-UK" }, { 0x7050E7, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x7052C5, "Avaya Inc", "AVAYA" }, { 0x7052D8, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x70533F, "Alfa Instrumentos Eletronicos Ltda.", "ALFA-INSTRUMENTOS-ELETRONICOS-LTDA" }, { 0x705425, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x705464, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x7054B4, "Vestel Elektronik San ve Tic. A.S.", "VESTEL-ELEKTRONIK-SAN-VE-TIC" }, { 0x7054D2, "PEGATRON CORPORATION", "PEGATRON" }, { 0x7054F5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7055F8, "Cerebras Systems Inc", "CEREBRAS" }, { 0x705681, "Apple, Inc.", "APPLE" }, { 0x7057BF, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x705812, "Panasonic Corporation AVC Networks Company", "PANASONIC-AVC-NETWORKS-COMPANY" }, { 0x705846, "Trig Avionics Limited", "TRIG-AVIONICS" }, { 0x705896, "InShow Technology", "INSHOW" }, { 0x7058A4, "Actiontec Electronics Inc.", "ACTIONTEC-ELECTRONICS" }, { 0x705957, "Medallion Instrumentation Systems", "MEDALLION-INSTRUMENTATION" }, { 0x705986, "OOO TTV", "OOO-TTV" }, { 0x705A0F, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x705A6F, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x705A9E, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x705AAC, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x705AB6, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x705B2E, "M2Communication Inc.", "M2COMMUNICATION" }, { 0x705CAD, "Konami Gaming Inc", "KONAMI-GAMING" }, { 0x705DCC, "EFM Networks", "EFM-NETWORKS" }, { 0x705E55, "Realme Chongqing MobileTelecommunications Corp Ltd", "REALME-CHONGQING-MOBILETELECOMMUNICATIONS" }, { 0x705EAA, "Action Target, Inc.", "ACTION-TARGET" }, { 0x705FA3, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x7060DE, "LaVision GmbH", "LAVISION" }, { 0x706173, "Calantec GmbH", "CALANTEC" }, { 0x70617B, "Cisco Systems, Inc", "CISCO" }, { 0x7061BE, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x7061EE, "Sunwoda Electronic Co.,Ltd", "SUNWODA" }, { 0x7062B8, "D-Link International", "D-LINK" }, { 0x706417, "ORBIS TECNOLOGIA ELECTRICA S.A.", "ORBIS-TECNOLOGIA-ELECTRICA" }, { 0x706582, "Suzhou Hanming Technologies Co., Ltd.", "SUZHOU-HANMING-TECHNOLOGIES" }, { 0x7065A3, "Kandao lightforge Co., Ltd.", "KANDAO-LIGHTFORGE" }, { 0x70661B, "Sonova AG", "SONOVA" }, { 0x70662A, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x706655, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x7066B9, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x7066E1, "dnt Innovation GmbH", "DNT-INNOVATION" }, { 0x706879, "Saijo Denki International Co., Ltd.", "SAIJO-DENKI" }, { 0x70695A, "Cisco Systems, Inc", "CISCO" }, { 0x706979, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x706BB9, "Cisco Systems, Inc", "CISCO" }, { 0x706D15, "Cisco Systems, Inc", "CISCO" }, { 0x706DEC, "Wifi-soft LLC", "WIFI-SOFT" }, { 0x706E6D, "Cisco Systems, Inc", "CISCO" }, { 0x706F81, "Private", "PRIVATE" }, { 0x70700D, "Apple, Inc.", "APPLE" }, { 0x70704C, "Purple Communications, Inc", "PURPLE-COMMUNICATION" }, { 0x70708B, "Cisco Systems, Inc", "CISCO" }, { 0x7070AA, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x7070FC, "GOLD&WATER INDUSTRIAL LIMITED", "GOLD-WATER-INDUSTRIAL" }, { 0x7071B3, "Brain Corporation", "BRAIN" }, { 0x7071BC, "PEGATRON CORPORATION", "PEGATRON" }, { 0x70720D, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0x70723C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7072CF, "EdgeCore Networks", "EDGECORE-NETWORKS" }, { 0x7072FE, "Apple, Inc.", "APPLE" }, { 0x7073CB, "Apple, Inc.", "APPLE" }, { 0x707414, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x707630, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x7076DD, "OxyGuard Internation A/S", "OXYGUARD-INTERNATION-A/S" }, { 0x7076F0, "LevelOne Communications (India) Private Limited", "LEVELONE-COMMUNICATION-INDIA-PRIVATE" }, { 0x7076FF, "KERLINK", "KERLINK" }, { 0x707781, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x70788B, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x707938, "Wuxi Zhanrui Electronic Technology Co.,LTD", "WUXI-ZHANRUI" }, { 0x707990, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7079B3, "Cisco Systems, Inc", "CISCO" }, { 0x707BE8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x707C18, "ADATA Technology Co., Ltd", "ADATA" }, { 0x707C69, "Avaya Inc", "AVAYA" }, { 0x707CE3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x707D95, "Shenzhen City LinwlanTechnology Co. Ltd.", "SHENZHEN-CITY-LINWLANTECHNOLOGY" }, { 0x707DB9, "Cisco Systems, Inc", "CISCO" }, { 0x707E43, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x707EDE, "NASTEC LTD.", "NASTEC" }, { 0x708105, "Cisco Systems, Inc", "CISCO" }, { 0x708185, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x7081EB, "Apple, Inc.", "APPLE" }, { 0x70820E, "as electronics GmbH", "AS-ELECTRONICS" }, { 0x70828E, "OleumTech Corporation", "OLEUMTECH" }, { 0x708540, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0x7085C2, "ASRock Incorporation", "ASROCK-INCORPORATION" }, { 0x7085C4, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0x7085C6, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x7086C1, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x7086CE, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0x70879E, "Beken Corporation", "BEKEN" }, { 0x7087A7, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x70884D, "JAPAN RADIO CO., LTD.", "JAPAN-RADIO" }, { 0x708976, "Tuya Smart Inc.", "TUYA-SMART" }, { 0x7089CC, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x7089F5, "Dongguan Lingjie IOT Co., LTD", "DONGGUAN-LINGJIE-IOT" }, { 0x708A09, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x708B78, "citygrow technology co., ltd", "CITYGROW" }, { 0x708BCD, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x708CB6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x708CBB, "MIMODISPLAYKOREA", "MIMODISPLAYKOREA" }, { 0x708D09, "Nokia Corporation", "NOKIA" }, { 0x708F47, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x7090B7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x70918F, "Weber-Stephen Products LLC", "WEBER-STEPHEN-PRODUCTS" }, { 0x7091F3, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x709383, "Intelligent Optical Network High Tech CO.,LTD.", "INTELLIGENT-OPTICAL-NETWORK-HIGH-TECH" }, { 0x7093C1, "eero inc.", "EERO" }, { 0x7093F8, "Space Monkey, Inc.", "SPACE-MONKEY" }, { 0x709741, "Arcadyan Corporation", "ARCADYAN" }, { 0x709756, "Happyelectronics Co.,Ltd", "HAPPYELECTRONICS" }, { 0x709883, "SHENZHEN KAYAN ELECTRONICS., LTD.", "SHENZHEN-KAYAN-ELECTRONICS" }, { 0x70991C, "Shenzhen Honesty Electronics Co.,Ltd", "SHENZHEN-HONESTY-ELECTRONICS" }, { 0x709A0B, "Italian Institute of Technology", "ITALIAN-INSTITUTE-OF" }, { 0x709BA5, "Shenzhen Y&D Electronics Co.,LTD.", "SHENZHEN-Y-D-ELECTRONICS" }, { 0x709BFC, "Bryton Inc.", "BRYTON" }, { 0x709C45, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x709C8F, "Nero AG", "NERO" }, { 0x709CD1, "Intel Corporate", "INTEL-CORPORATE" }, { 0x709E29, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x709E86, "X6D Limited", "X6D" }, { 0x709F2D, "zte corporation", "ZTE" }, { 0x709FA9, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x70A191, "Trendsetter Medical, LLC", "TRENDSETTER-MEDICAL" }, { 0x70A2B3, "Apple, Inc.", "APPLE" }, { 0x70A41C, "Advanced Wireless Dynamics S.L.", "ADVANCED-WIRELESS-DYNAMICS" }, { 0x70A56A, "Shenzhen C-Data Technology Co., Ltd.", "SHENZHEN-C-DATA" }, { 0x70A66A, "Prox Dynamics AS", "PROX-DYNAMICS-AS" }, { 0x70A6BD, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x70A6CC, "Intel Corporate", "INTEL-CORPORATE" }, { 0x70A741, "Ubiquiti Inc", "UBIQUITI" }, { 0x70A84C, "MONAD., Inc.", "MONAD" }, { 0x70A8D3, "Intel Corporate", "INTEL-CORPORATE" }, { 0x70A8E3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x70A983, "Cisco Systems, Inc", "CISCO" }, { 0x70AAB2, "BlackBerry RTS", "BLACKBERRY-RTS" }, { 0x70AC08, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x70ACD7, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x70AD54, "Malvern Instruments Ltd", "MALVERN-INSTRUMENTS" }, { 0x70AED5, "Apple, Inc.", "APPLE" }, { 0x70AF24, "TP Vision Belgium NV", "TP-VISION-BELGIUM-NV" }, { 0x70AF25, "Nishiyama Industry Co.,LTD.", "NISHIYAMA-INDUSTRY" }, { 0x70AF6A, "SHENZHEN FENGLIAN TECHNOLOGY CO., LTD.", "SHENZHEN-FENGLIAN" }, { 0x70B035, "Shenzhen Zowee Technology Co., Ltd", "SHENZHEN-ZOWEE" }, { 0x70B08C, "Shenou Communication Equipment Co.,Ltd", "SHENOU-COMMUNICATION-EQUIPMENT" }, { 0x70B13D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x70B14E, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x70B265, "Hiltron s.r.l.", "HILTRON" }, { 0x70B306, "Apple, Inc.", "APPLE" }, { 0x70B317, "Cisco Systems, Inc", "CISCO" }, { 0x70B3D5, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x70B599, "Embedded Technologies s.r.o.", "EMBEDDED-TECHNOLOGIES-S-R-O" }, { 0x70B5E8, "Dell Inc.", "DELL" }, { 0x70B64F, "Guangzhou V-SOLUTION Electronic Technology Co., Ltd.", "GUANGZHOU-V-SOLUTION" }, { 0x70B651, "Eight Sleep", "EIGHT-SLEEP" }, { 0x70B7AA, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x70B7E2, "Jiangsu Miter Technology Co.,Ltd.", "JIANGSU-MITER" }, { 0x70B7E4, "Broadcom Limited", "BROADCOM" }, { 0x70B8F6, "Espressif Inc.", "ESPRESSIF" }, { 0x70B921, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x70B950, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x70B9BB, "Shenzhen Hankvision Technology CO.,LTD", "SHENZHEN-HANKVISION" }, { 0x70BAEF, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x70BBE9, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x70BC10, "Microsoft Corporation", "MICROSOFT" }, { 0x70BF3E, "Charles River Laboratories", "CHARLES-RIVER-LABORATORIES" }, { 0x70BF92, "GN Audio A/S", "GN-AUDIO-A/S" }, { 0x70C6AC, "Bosch Automotive Aftermarket", "BOSCH-AUTOMOTIVE-AFTERMARKET" }, { 0x70C6DD, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x70C76F, "INNO S", "INNO-S" }, { 0x70C7F2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x70C833, "Wirepas Oy", "WIREPAS-OY" }, { 0x70C932, "Dreame Technology (Suzhou) Limited", "DREAME-SUZHOU" }, { 0x70C94E, "Liteon Technology Corporation", "LITEON" }, { 0x70C9C6, "Cisco Systems, Inc", "CISCO" }, { 0x70CA4D, "Shenzhen lnovance Technology Co.,Ltd.", "SHENZHEN-LNOVANCE" }, { 0x70CA97, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x70CA9B, "Cisco Systems, Inc", "CISCO" }, { 0x70CD0D, "Intel Corporate", "INTEL-CORPORATE" }, { 0x70CD60, "Apple, Inc.", "APPLE" }, { 0x70CD91, "TERACOM TELEMATICA S.A", "TERACOM-TELEMATICA" }, { 0x70CE8C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x70CF49, "Intel Corporate", "INTEL-CORPORATE" }, { 0x70D081, "Beijing Netpower Technologies Inc.", "BEIJING-NETPOWER-TECHNOLOGIES" }, { 0x70D313, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x70D379, "Cisco Systems, Inc", "CISCO" }, { 0x70D4F2, "RIM", "RIM" }, { 0x70D57E, "Scalar Corporation", "SCALAR" }, { 0x70D5E7, "Wellcore Corporation", "WELLCORE" }, { 0x70D6B6, "Metrum Technologies", "METRUM-TECHNOLOGIES" }, { 0x70D823, "Intel Corporate", "INTEL-CORPORATE" }, { 0x70D880, "Upos System sp. z o.o.", "UPOS-SYSTEM-SP-Z-O-O" }, { 0x70D8C2, "Intel Corporate", "INTEL-CORPORATE" }, { 0x70D923, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x70D931, "Cambridge Industries(Group) Co.,Ltd.", "CAMBRIDGE-INDUSTRIES-GROUP" }, { 0x70DA17, "Austrian Audio GmbH", "AUSTRIAN-AUDIO" }, { 0x70DA9C, "TECSEN", "TECSEN" }, { 0x70DB98, "Cisco Systems, Inc", "CISCO" }, { 0x70DDA1, "Tellabs", "TELLABS" }, { 0x70DDA8, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x70DDEF, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x70DEE2, "Apple, Inc.", "APPLE" }, { 0x70DEF9, "FAI WAH INTERNATIONAL (HONG KONG) LIMITED", "FAI-WAH-HONG-KONG" }, { 0x70DF2F, "Cisco Systems, Inc", "CISCO" }, { 0x70DFF7, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x70E027, "HONGYU COMMUNICATION TECHNOLOGY LIMITED", "HONGYU-COMMUNICATION" }, { 0x70E139, "3view Ltd", "3VIEW" }, { 0x70E1FD, "FLEXTRONICS", "FLEXTRONICS" }, { 0x70E24C, "SAE IT-systems GmbH & Co. KG", "SAE-IT" }, { 0x70E284, "Wistron Infocomm (Zhongshan) Corporation", "WISTRON-INFOCOMM-ZHONGSHAN" }, { 0x70E422, "Cisco Systems, Inc", "CISCO" }, { 0x70E46E, "Lytx", "LYTX" }, { 0x70E56E, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x70E72C, "Apple, Inc.", "APPLE" }, { 0x70E843, "Beijing C&W Optical Communication Technology Co.,Ltd.", "BEIJING-C-W-OPTICAL-COMMUNICATION" }, { 0x70EA1A, "Cisco Systems, Inc", "CISCO" }, { 0x70EA5A, "Apple, Inc.", "APPLE" }, { 0x70ECE4, "Apple, Inc.", "APPLE" }, { 0x70EE50, "Netatmo", "NETATMO" }, { 0x70EEA3, "Eoptolink Technology Inc. Ltd,", "EOPTOLINK" }, { 0x70EF00, "Apple, Inc.", "APPLE" }, { 0x70F087, "Apple, Inc.", "APPLE" }, { 0x70F088, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x70F096, "Cisco Systems, Inc", "CISCO" }, { 0x70F11C, "Shenzhen Ogemray Technology Co.,Ltd", "SHENZHEN-OGEMRAY" }, { 0x70F176, "Data Modul AG", "DATA-MODUL" }, { 0x70F196, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x70F1A1, "Liteon Technology Corporation", "LITEON" }, { 0x70F1E5, "Xetawave LLC", "XETAWAVE" }, { 0x70F220, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x70F35A, "Cisco Systems, Inc", "CISCO" }, { 0x70F395, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x70F754, "AMPAK Technology,Inc.", "AMPAK" }, { 0x70F82B, "DWnet Technologies(Suzhou) Corporation", "DWNET-TECHNOLOGIES-SUZHOU" }, { 0x70F8AE, "Microsoft Corporation", "MICROSOFT" }, { 0x70F8E7, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x70F927, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x70F96D, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x70FC8C, "OneAccess SA", "ONEACCESS" }, { 0x70FC8F, "FREEBOX SAS", "FREEBOX-SAS" }, { 0x70FD45, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x70FD46, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x70FD88, "Nanjing Jiahao Technology Co., Ltd.", "NANJING-JIAHAO" }, { 0x70FF5C, "Cheerzing Communication(Xiamen)Technology Co.,Ltd", "CHEERZING-COMMUNICATION-XIAMEN" }, { 0x70FF76, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x7403BD, "BUFFALO.INC", "BUFFALO" }, { 0x74042B, "Lenovo Mobile Communication (Wuhan) Company Limited", "LENOVO-MOBILE-COMMUNICATION-WUHAN-COMPANY" }, { 0x7404F0, "Mobiwire Mobiles (NingBo) Co., LTD", "MOBIWIRE-MOBILES-NINGBO" }, { 0x7404F1, "Intel Corporate", "INTEL-CORPORATE" }, { 0x74057C, "Qorvo International Pte. Ltd.", "QORVO-PTE" }, { 0x7405A5, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x7408DE, "Fujian Landi Commercial Technology Co., Ltd.", "FUJIAN-LANDI-COMMERCIAL" }, { 0x7409AC, "Quext, LLC", "QUEXT" }, { 0x740ABC, "LightwaveRF Technology Ltd", "LIGHTWAVERF" }, { 0x740AE1, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x740CEE, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x740EDB, "Optowiz Co., Ltd", "OPTOWIZ" }, { 0x7411B2, "Cisco Systems, Inc", "CISCO" }, { 0x7412B3, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0x7412BB, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x7413EA, "Intel Corporate", "INTEL-CORPORATE" }, { 0x741489, "SRT Wireless", "SRT-WIRELESS" }, { 0x741575, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x7415E2, "Tri-Sen Systems Corporation", "TRI-SEN" }, { 0x7415F5, "Apple, Inc.", "APPLE" }, { 0x741865, "Shanghai DareGlobal Technologies Co.,Ltd", "SHANGHAI-DAREGLOBAL-TECHNOLOGIES" }, { 0x74190A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7419F8, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x741AE0, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x741BB2, "Apple, Inc.", "APPLE" }, { 0x741C27, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x741E93, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x741F4A, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x741F79, "YOUNGKOOK ELECTRONICS CO.,LTD", "YOUNGKOOK-ELECTRONICS" }, { 0x7422BB, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x742344, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x74249F, "TIBRO Corp.", "TIBRO" }, { 0x74258A, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x7426AC, "Cisco Systems, Inc", "CISCO" }, { 0x7426FF, "zte corporation", "ZTE" }, { 0x74272C, "Advanced Micro Devices, Inc.", "ADVANCED-MICRO-DEVICES" }, { 0x74273C, "ChangYang Technology (Nanjing) Co., LTD", "CHANGYANG-NANJING" }, { 0x7427EA, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0x742857, "Mayfield Robotics", "MAYFIELD-ROBOTICS" }, { 0x7429AF, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x742A8A, "shenzhen worldelite electronics co., LTD", "SHENZHEN-WORLDELITE-ELECTRONICS" }, { 0x742B0F, "Infinidat Ltd.", "INFINIDAT" }, { 0x742B62, "FUJITSU LIMITED", "FUJITSU" }, { 0x742D0A, "Norfolk Elektronik AG", "NORFOLK-ELEKTRONIK" }, { 0x742EDB, "Perinet GmbH", "PERINET" }, { 0x742EFC, "DirectPacket Research, Inc,", "DIRECTPACKET-RESEARCH" }, { 0x742F68, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x7430AF, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x743170, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x743174, "Apple, Inc.", "APPLE" }, { 0x743256, "NT-ware Systemprg GmbH", "NT-WARE-SYSTEMPRG" }, { 0x7432C2, "KYOLIS", "KYOLIS" }, { 0x743357, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x7433A6, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x743400, "MTG Co., Ltd.", "MTG" }, { 0x74342B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7434AE, "this is engineering Inc.", "THIS-IS-ENGINEERING" }, { 0x74366D, "Vodafone Italia S.p.A.", "VODAFONE-ITALIA" }, { 0x74372F, "Tongfang Shenzhen Cloudcomputing Technology Co.,Ltd", "TONGFANG-SHENZHEN-CLOUDCOMPUTING" }, { 0x74373B, "UNINET Co.,Ltd.", "UNINET" }, { 0x74375F, "SERCOMM PHILIPPINES INC", "SERCOMM-PHILIPPINES" }, { 0x743889, "ANNAX Anzeigesysteme GmbH", "ANNAX-ANZEIGESYSTEME" }, { 0x7438B7, "CANON INC.", "CANON" }, { 0x743A20, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x743A65, "NEC Corporation", "NEC" }, { 0x743AEF, "Kaon Group Co., Ltd.", "KAON-GROUP" }, { 0x743AF4, "Intel Corporate", "INTEL-CORPORATE" }, { 0x743C18, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x743E2B, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x743E39, "YUSUR Technology Co., Ltd.", "YUSUR" }, { 0x743ECB, "Gentrice tech", "GENTRICE-TECH" }, { 0x743FC2, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x7440BB, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x7440BE, "LG Innotek", "LG-INNOTEK" }, { 0x74427F, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x74428B, "Apple, Inc.", "APPLE" }, { 0x744401, "NETGEAR", "NETGEAR" }, { 0x74452D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x74458A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7445CE, "CRESYN", "CRESYN" }, { 0x744687, "Kingsignal Technology Co., Ltd.", "KINGSIGNAL" }, { 0x7446A0, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x7446B3, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x7449D2, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x744AA4, "zte corporation", "ZTE" }, { 0x744BE9, "EXPLORER HYPERTECH CO.,LTD", "EXPLORER-HYPERTECH" }, { 0x744CA1, "Liteon Technology Corporation", "LITEON" }, { 0x744D28, "Routerboard.com", "ROUTERBOARD-COM" }, { 0x744D6D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x744D79, "Arrive Systems Inc.", "ARRIVE" }, { 0x74504E, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x7451BA, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x745327, "COMMSEN CO., LIMITED", "COMMSEN" }, { 0x7453A8, "ACL Airshop BV", "ACL-AIRSHOP" }, { 0x745427, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0x74546B, "hangzhou zhiyi communication co., ltd", "HANGZHOU-ZHIYI-COMMUNICATION" }, { 0x74547D, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x745612, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x74563C, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x745798, "TRUMPF Laser GmbH + Co. KG", "TRUMPF-LASER" }, { 0x745889, "Multilaser Industrial S.A.", "MULTILASER-INDUSTRIAL" }, { 0x7458F3, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x745909, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x745933, "Danal Entertainment", "DANAL-ENTERTAINMENT" }, { 0x745AAA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x745BC5, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x745C4B, "GN Audio A/S", "GN-AUDIO-A/S" }, { 0x745C9F, "TCT mobile ltd", "TCT-MOBILE" }, { 0x745CFA, "Shenzhen Shunrui Gaojie Technology Co., Ltd.", "SHENZHEN-SHUNRUI-GAOJIE" }, { 0x745D22, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x745D43, "BSH Hausgeraete GmbH", "BSH-HAUSGERAETE" }, { 0x745D68, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x745E1C, "PIONEER CORPORATION", "PIONEER" }, { 0x745F00, "Samsung Semiconductor Inc.", "SAMSUNG-SEMICONDUCTOR" }, { 0x745F90, "LAM Technologies", "LAM-TECHNOLOGIES" }, { 0x745FAE, "TSL PPL", "TSL-PPL" }, { 0x74604C, "RODE", "RODE" }, { 0x7460FA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x74614B, "Chongqing Huijiatong Information Technology Co., Ltd.", "CHONGQING-HUIJIATONG-INFORMATION" }, { 0x7463C2, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x7463DF, "VTS GmbH", "VTS" }, { 0x74650C, "Apple, Inc.", "APPLE" }, { 0x7465D1, "Atlinks", "ATLINKS" }, { 0x746630, "T:mi Ytti", "T:MI-YTTI" }, { 0x7467F7, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x74694A, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x746A3A, "Aperi Corporation", "APERI" }, { 0x746A89, "Rezolt Corporation", "REZOLT" }, { 0x746A8F, "VS Vision Systems GmbH", "VS-VISION" }, { 0x746B82, "MOVEK", "MOVEK" }, { 0x746BAB, "GUANGDONG ENOK COMMUNICATION CO., LTD", "GUANGDONG-ENOK-COMMUNICATION" }, { 0x746EE4, "Asia Vital Components Co.,Ltd.", "ASIA-VITAL-COMPONENTS" }, { 0x746F19, "ICARVISIONS (SHENZHEN) TECHNOLOGY CO., LTD.", "ICARVISIONS-SHENZHEN" }, { 0x746F3D, "Contec GmbH", "CONTEC" }, { 0x746F88, "zte corporation", "ZTE" }, { 0x746FF7, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x747069, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x7470FD, "Intel Corporate", "INTEL-CORPORATE" }, { 0x74718B, "Apple, Inc.", "APPLE" }, { 0x74721E, "Edison Labs Inc.", "EDISON-LABS" }, { 0x7472B0, "Guangzhou Shiyuan Electronics Co., Ltd.", "GUANGZHOU-SHIYUAN-ELECTRONICS" }, { 0x7472F2, "Chipsip Technology Co., Ltd.", "CHIPSIP" }, { 0x74731D, "ifm electronic gmbh", "IFM" }, { 0x747336, "MICRODIGTAL Inc", "MICRODIGTAL" }, { 0x7473B4, "Apple, Inc.", "APPLE" }, { 0x747446, "Google, Inc.", "GOOGLE" }, { 0x747548, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x74765B, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0x74767D, "shenzhen kexint technology co.,ltd", "SHENZHEN-KEXINT" }, { 0x747818, "Jurumani Solutions", "JURUMANI-SOLUTIONS" }, { 0x747827, "Dell Inc.", "DELL" }, { 0x7478A6, "Fortinet, Inc.", "FORTINET" }, { 0x747A90, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x747B7A, "ETH Inc.", "ETH" }, { 0x747D24, "Phicomm (Shanghai) Co., Ltd.", "PHICOMM-SHANGHAI" }, { 0x747DB6, "Aliwei Communications, Inc", "ALIWEI-COMMUNICATION" }, { 0x747E1A, "Red Embedded Design Limited", "RED-EMBEDDED-DESIGN" }, { 0x747E2D, "Beijing Thomson CITIC Digital Technology Co. LTD.", "BEIJING-THOMSON-CITIC-DIGITAL" }, { 0x74803F, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x748114, "Apple, Inc.", "APPLE" }, { 0x74819A, "PT. Hartono Istana Teknologi", "PT-HARTONO-ISTANA-TEKNOLOGI" }, { 0x7483C2, "Ubiquiti Inc", "UBIQUITI" }, { 0x7483EF, "Arista Networks", "ARISTA-NETWORKS" }, { 0x748469, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x7484E1, "Dongguan Haoyuan Electronics Co.,Ltd", "DONGGUAN-HAOYUAN-ELECTRONICS" }, { 0x74852A, "PEGATRON CORPORATION", "PEGATRON" }, { 0x7485C4, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x74860B, "Cisco Systems, Inc", "CISCO" }, { 0x748669, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x74867A, "Dell Inc.", "DELL" }, { 0x7486E2, "Dell Inc.", "DELL" }, { 0x74872E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7487A9, "OCT Technology Co., Ltd.", "OCT" }, { 0x7487BB, "Ciena Corporation", "CIENA" }, { 0x74882A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x74888B, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x7488BB, "Cisco Systems, Inc", "CISCO" }, { 0x748A0D, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x748A28, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x748A69, "Korea Image Technology Co., Ltd", "KOREA-IMAGE" }, { 0x748B29, "Micobiomed", "MICOBIOMED" }, { 0x748B34, "Shanghai Smart System Technology Co., Ltd", "SHANGHAI-SMART-SYSTEM" }, { 0x748D08, "Apple, Inc.", "APPLE" }, { 0x748E08, "Bestek Corp.", "BESTEK" }, { 0x748EF8, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x748F1B, "MasterImage 3D", "MASTERIMAGE-3D" }, { 0x748F3C, "Apple, Inc.", "APPLE" }, { 0x748F4D, "duagon Germany GmbH", "DUAGON-GERMANY" }, { 0x748FC2, "Cisco Systems, Inc", "CISCO" }, { 0x74901F, "Ragile Networks Inc.", "RAGILE-NETWORKS" }, { 0x749050, "Renesas Electronics Corporation", "RENESAS-ELECTRONICS" }, { 0x74911A, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x7491BD, "Four systems Co.,Ltd.", "FOUR" }, { 0x7492BA, "Movesense Ltd", "MOVESENSE" }, { 0x7493A4, "Zebra Technologies Corp.", "ZEBRA-TECHNOLOGIES" }, { 0x7493DA, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x74943D, "AgJunction", "AGJUNCTION" }, { 0x749552, "Xuzhou WIKA Electronics Control Technology Co., Ltd.", "XUZHOU-WIKA-ELECTRONICS-CONTROL" }, { 0x7495A7, "Keyence Corporation", "KEYENCE" }, { 0x7495EC, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x749637, "Todaair Electronic Co., Ltd", "TODAAIR" }, { 0x749779, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x749781, "zte corporation", "ZTE" }, { 0x74978E, "Nova Labs", "NOVA-LABS" }, { 0x749975, "IBM Corporation", "IBM" }, { 0x749AC0, "Cachengo, Inc.", "CACHENGO" }, { 0x749BE8, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x749C52, "Huizhou Desay SV Automotive Co., Ltd.", "HUIZHOU-DESAY-SV-AUTOMOTIVE" }, { 0x749CE3, "KodaCloud Canada, Inc", "KODACLOUD-CANADA" }, { 0x749D79, "Sercomm Corporation.", "SERCOMM" }, { 0x749D8F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x749DDC, "2Wire Inc", "2WIRE" }, { 0x749E75, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x749EA5, "OHSUNG", "OHSUNG" }, { 0x749EAF, "Apple, Inc.", "APPLE" }, { 0x749EF5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x74A02F, "Cisco Systems, Inc", "CISCO" }, { 0x74A063, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x74A2E6, "Cisco Systems, Inc", "CISCO" }, { 0x74A34A, "ZIMI CORPORATION", "ZIMI" }, { 0x74A4A7, "QRS Music Technologies, Inc.", "QRS-MUSIC-TECHNOLOGIES" }, { 0x74A4B5, "Powerleader Science and Technology Co. Ltd.", "POWERLEADER-SCIENCE" }, { 0x74A528, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x74A58C, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x74A6CD, "Apple, Inc.", "APPLE" }, { 0x74A722, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x74A78E, "zte corporation", "ZTE" }, { 0x74A7EA, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x74AB93, "Blink by Amazon", "BLINK-BY-AMAZON" }, { 0x74AC5F, "Qiku Internet Network Scientific (Shenzhen) Co., Ltd.", "QIKU-INTERNET-NETWORK-SCIENTIFIC-SHENZHEN" }, { 0x74ACB9, "Ubiquiti Inc", "UBIQUITI" }, { 0x74AD98, "Cisco Systems, Inc", "CISCO" }, { 0x74ADB7, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x74AE76, "iNovo Broadband, Inc.", "INOVO-BROADBAND" }, { 0x74B00C, "Network Video Technologies, Inc", "NETWORK-VIDEO-TECHNOLOGIES" }, { 0x74B472, "CIESSE", "CIESSE" }, { 0x74B57E, "zte corporation", "ZTE" }, { 0x74B587, "Apple, Inc.", "APPLE" }, { 0x74B6B6, "eero inc.", "EERO" }, { 0x74B725, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x74B7B3, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x74B7E6, "Zegna-Daidong Limited", "ZEGNA-DAIDONG" }, { 0x74B80F, "Zipline International Inc.", "ZIPLINE" }, { 0x74B839, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x74B91E, "Nanjing Bestway Automation System Co., Ltd", "NANJING-BESTWAY-AUTOMATION-SYSTEM" }, { 0x74B9EB, "JinQianMao Technology Co.,Ltd.", "JINQIANMAO" }, { 0x74BADB, "Longconn Electornics(shenzhen)Co.,Ltd", "LONGCONN-ELECTORNICS-SHENZHEN" }, { 0x74BBD3, "Shenzhen xeme Communication Co., Ltd.", "SHENZHEN-XEME-COMMUNICATION" }, { 0x74BE08, "ATEK Products, LLC", "ATEK-PRODUCTS" }, { 0x74BFA1, "HYUNTECK", "HYUNTECK" }, { 0x74BFB7, "Nusoft Corporation", "NUSOFT" }, { 0x74BFC0, "CANON INC.", "CANON" }, { 0x74C14F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x74C17D, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0x74C246, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x74C330, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0x74C530, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x74C621, "Zhejiang Hite Renewable Energy Co.,LTD", "ZHEJIANG-HITE-RENEWABLE-ENERGY" }, { 0x74C63B, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x74C76E, "RTK-TECHNOLOGIES, LLC", "RTK-TECHNOLOGIES" }, { 0x74C929, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0x74C99A, "Ericsson AB", "ERICSSON-AB" }, { 0x74C9A3, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x74CA25, "Calxeda, Inc.", "CALXEDA" }, { 0x74CBF3, "Lava international limited", "LAVA" }, { 0x74CC39, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x74CD0C, "Smith Myers Communications Ltd.", "SMITH-MYERS-COMMUNICATION" }, { 0x74CE56, "Packet Force Technology Limited Company", "PACKET-FORCE-COMPANY" }, { 0x74CF00, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x74D02B, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x74D0DC, "Ericsson AB", "ERICSSON-AB" }, { 0x74D21D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x74D285, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x74D423, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x74D435, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x74D4DD, "Quanta Computer Inc.", "QUANTA" }, { 0x74D558, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x74D637, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x74D654, "GINT", "GINT" }, { 0x74D675, "WYMA Tecnologia", "WYMA-TECNOLOGIA" }, { 0x74D6CB, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x74D6E5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x74D6EA, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x74D713, "Huaqin Technology Co. LTD", "HUAQIN" }, { 0x74D7CA, "Panasonic Automotive Systems Co.,Ltd", "PANASONIC-AUTOMOTIVE" }, { 0x74D83E, "Intel Corporate", "INTEL-CORPORATE" }, { 0x74D850, "Evrisko Systems", "EVRISKO" }, { 0x74D873, "GUANGDONG GENIUS TECHNOLOGY CO., LTD.", "GUANGDONG-GENIUS" }, { 0x74D9EB, "Petabit Scale, Inc.", "PETABIT-SCALE" }, { 0x74DA38, "Edimax Technology Co. Ltd.", "EDIMAX" }, { 0x74DA88, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x74DADA, "D-Link International", "D-LINK" }, { 0x74DAEA, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x74DBD1, "Ebay Inc", "EBAY" }, { 0x74DDCB, "China Leadshine Technology Co.,Ltd", "CHINA-LEADSHINE" }, { 0x74DE2B, "Liteon Technology Corporation", "LITEON" }, { 0x74DFBF, "Liteon Technology Corporation", "LITEON" }, { 0x74E06E, "Ergophone GmbH", "ERGOPHONE" }, { 0x74E14A, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x74E182, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x74E19A, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x74E1B6, "Apple, Inc.", "APPLE" }, { 0x74E20C, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x74E277, "Vizmonet Pte Ltd", "VIZMONET-PTE" }, { 0x74E28C, "Microsoft Corporation", "MICROSOFT" }, { 0x74E2F5, "Apple, Inc.", "APPLE" }, { 0x74E336, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0x74E424, "APISTE CORPORATION", "APISTE" }, { 0x74E50B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x74E537, "RADSPIN", "RADSPIN" }, { 0x74E543, "Liteon Technology Corporation", "LITEON" }, { 0x74E5F9, "Intel Corporate", "INTEL-CORPORATE" }, { 0x74E60F, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x74E6B8, "LG Electronics", "LG-ELECTRONICS" }, { 0x74E6E2, "Dell Inc.", "DELL" }, { 0x74E798, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x74E7C6, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x74E9BF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x74EA3A, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x74EAC8, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x74EACB, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x74EAE8, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x74EB80, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x74EC42, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x74ECB2, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x74ECF1, "Acumen", "ACUMEN" }, { 0x74EE2A, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x74EE8D, "Apollo Intelligent Connectivity (Beijing) Technology Co., Ltd.", "APOLLO-INTELLIGENT-CONNECTIVITY-BEIJING" }, { 0x74EF4B, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x74F06D, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x74F07D, "BnCOM Co.,Ltd", "BNCOM" }, { 0x74F102, "Beijing HCHCOM Technology Co., Ltd", "BEIJING-HCHCOM" }, { 0x74F2FA, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x74F413, "Maxwell Forest", "MAXWELL-FOREST" }, { 0x74F612, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x74F61C, "HTC Corporation", "HTC" }, { 0x74F661, "Schneider Electric Fire & Security Oy", "SCHNEIDER-ELECTRIC-FIRE-SECURITY-OY" }, { 0x74F726, "Neuron Robotics", "NEURON-ROBOTICS" }, { 0x74F737, "KCE", "KCE" }, { 0x74F7F6, "Shanghai Sunmi Technology Co.,Ltd.", "SHANGHAI-SUNMI" }, { 0x74F85D, "Berkeley Nucleonics Corp", "BERKELEY-NUCLEONICS" }, { 0x74F8DB, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x74F91A, "Onface", "ONFACE" }, { 0x74F9CA, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x74FDA0, "Compupal (Group) Corporation", "COMPUPAL-GROUP" }, { 0x74FE48, "ADVANTECH CO., LTD.", "ADVANTECH" }, { 0x74FF4C, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0x74FF7D, "Wren Sound Systems, LLC", "WREN-SOUND" }, { 0x78009E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x78028B, "Apple, Inc.", "APPLE" }, { 0x78028F, "Adaptive Spectrum and Signal Alignment (ASSIA), Inc.", "ADAPTIVE-SPECTRUM-AND-SIGNAL-ALIGNMENT-ASSIA" }, { 0x7802B1, "Cisco Systems, Inc", "CISCO" }, { 0x7802B7, "ShenZhen Ultra Easy Technology CO.,LTD", "SHENZHEN-ULTRA-EASY" }, { 0x7802F8, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x78034F, "Nokia", "NOKIA" }, { 0x780473, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x78047A, "Edge Networks LLC", "EDGE-NETWORKS" }, { 0x7804E3, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x780541, "Queclink Wireless Solutions Co., Ltd", "QUECLINK-WIRELESS-SOLUTIONS" }, { 0x78055F, "Shenzhen WYC Technology Co., Ltd.", "SHENZHEN-WYC" }, { 0x78058C, "mMax Communications, Inc.", "MMAX-COMMUNICATION" }, { 0x7806C9, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x78071C, "Green Energy Options Ltd", "GREEN-ENERGY-OPTIONS" }, { 0x780738, "Z.U.K. Elzab S.A.", "Z-U-K-ELZAB" }, { 0x78084D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x780AC7, "Baofeng TV Co., Ltd.", "BAOFENG-TV" }, { 0x780CB8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x780CF0, "Cisco Systems, Inc", "CISCO" }, { 0x780ED1, "TRUMPF Werkzeugmaschinen GmbH+Co.KG", "TRUMPF-WERKZEUGMASCHINEN" }, { 0x780F77, "HangZhou Gubei Electronics Technology Co.,Ltd", "HANGZHOU-GUBEI-ELECTRONICS" }, { 0x781053, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x781100, "Quantumsolution", "QUANTUMSOLUTION" }, { 0x781185, "NBS Payment Solutions Inc.", "NBS-PAYMENT-SOLUTIONS" }, { 0x7811DC, "XIAOMI Electronics,CO.,LTD", "XIAOMI-ELECTRONICS" }, { 0x7812B8, "ORANTEK LIMITED", "ORANTEK" }, { 0x781305, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x7813E0, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0x78152D, "UNION CHIP TECHNOLOGY LIMITED", "UNION-CHIP" }, { 0x781735, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0x7817BE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x781881, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x7818A8, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x78192E, "NASCENT Technology", "NASCENT" }, { 0x7819F7, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x781C5A, "SHARP Corporation", "SHARP" }, { 0x781D4A, "zte corporation", "ZTE" }, { 0x781DBA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x781DFD, "Jabil Inc", "JABIL" }, { 0x781F11, "RAB Lighting", "RAB-LIGHTING" }, { 0x781FDB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x782079, "ID Tech", "ID-TECH" }, { 0x7820A5, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x7820BD, "Polysense (Beijing) Technologies Co. Ltd", "POLYSENSE-BEIJING-TECHNOLOGIES" }, { 0x782184, "Espressif Inc.", "ESPRESSIF" }, { 0x78223D, "Affirmed Networks", "AFFIRMED-NETWORKS" }, { 0x782327, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7823AE, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x782459, "Alcatel-Lucent Enterprise", "ALCATEL-LUCENT" }, { 0x7824AF, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x782544, "Omnima Limited", "OMNIMA" }, { 0x78257A, "LEO Innovation Lab", "LEO-INNOVATION-LAB" }, { 0x7825AD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7828CA, "Sonos, Inc.", "SONOS" }, { 0x7829ED, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x782A79, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x782AF8, "IETHCOM INFORMATION TECHNOLOGY CO., LTD.", "IETHCOM-INFORMATION" }, { 0x782B46, "Intel Corporate", "INTEL-CORPORATE" }, { 0x782B64, "Bose Corporation", "BOSE" }, { 0x782BCB, "Dell Inc.", "DELL" }, { 0x782C29, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x782D7E, "TRENDnet, Inc.", "TRENDNET" }, { 0x782DAD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x782E56, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x782EEF, "Nokia Corporation", "NOKIA" }, { 0x782F17, "Xlab Co.,Ltd", "XLAB" }, { 0x78303B, "Stephen Technologies Co.,Limited", "STEPHEN-TECHNOLOGIES" }, { 0x7830E1, "UltraClenz, LLC", "ULTRACLENZ" }, { 0x7830F5, "TBT Inc.", "TBT" }, { 0x78312B, "zte corporation", "ZTE" }, { 0x7831C1, "Apple, Inc.", "APPLE" }, { 0x78321B, "D-Link International", "D-LINK" }, { 0x78324F, "Millennium Group, Inc.", "MILLENNIUM-GROUP" }, { 0x783486, "Nokia", "NOKIA" }, { 0x7835A0, "Zurn Industries LLC", "ZURN-INDUSTRIES" }, { 0x783607, "Cermate Technologies Inc.", "CERMATE-TECHNOLOGIES" }, { 0x783690, "Yulong Computer Telecommunication Scientific (Shenzhen) Co.,Ltd", "YULONG-TELECOMMUNICATION-SCIENTIFIC-SHENZHEN" }, { 0x7836CC, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x783716, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x783A6C, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x783A84, "Apple, Inc.", "APPLE" }, { 0x783CE3, "Kai-EE", "KAI-EE" }, { 0x783D5B, "TELNET Redes Inteligentes S.A.", "TELNET-REDES-INTELIGENTES" }, { 0x783E53, "SKY UK LIMITED", "SKY-UK" }, { 0x783EA1, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0x783F15, "EasySYNC Ltd.", "EASYSYNC" }, { 0x7840E4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x784405, "FUJITU(HONG KONG) ELECTRONIC Co.,LTD.", "FUJITU-HONG-KONG" }, { 0x78444A, "Shenzhen Aiwinn information Technology Co., Ltd.", "SHENZHEN-AIWINN-INFORMATION" }, { 0x784476, "Zioncom Electronics (Shenzhen) Ltd.", "ZIONCOM-ELECTRONICS-SHENZHEN" }, { 0x7844FD, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x784501, "Biamp Systems", "BIAMP" }, { 0x784558, "Ubiquiti Inc", "UBIQUITI" }, { 0x784561, "CyberTAN Technology Inc.", "CYBERTAN" }, { 0x7845B3, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x7845C4, "Dell Inc.", "DELL" }, { 0x78465C, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x78467D, "SKAIChips", "SKAICHIPS" }, { 0x7846C4, "DAEHAP HYPER-TECH", "DAEHAP-HYPER-TECH" }, { 0x7846D4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x78471D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7847E3, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x78482C, "START USA, INC.", "START-USA" }, { 0x784859, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x78491D, "The Will-Burt Company", "THE-WILL-BURT-COMPANY" }, { 0x784946, "Cambridge Mobile Telematics, Inc.", "CAMBRIDGE-MOBILE-TELEMATICS" }, { 0x784B08, "f.robotics acquisitions ltd", "F-ROBOTICS-ACQUISITIONS" }, { 0x784B87, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x784F24, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x784F43, "Apple, Inc.", "APPLE" }, { 0x784F9B, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x785005, "MOKO TECHNOLOGY Ltd", "MOKO" }, { 0x78507C, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x78510C, "LiveU Ltd.", "LIVEU" }, { 0x78521A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x78524A, "Optonic GmbH", "OPTONIC" }, { 0x785262, "Shenzhen Hojy Software Co., Ltd.", "SHENZHEN-HOJY-SOFTWARE" }, { 0x78530D, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x785364, "SHIFT GmbH", "SHIFT" }, { 0x7853F2, "Roxton Systems Ltd.", "ROXTON" }, { 0x78542E, "D-Link International", "D-LINK" }, { 0x785517, "SankyuElectronics", "SANKYUELECTRONICS" }, { 0x785712, "Mobile Integration Workgroup", "MOBILE-INTEGRATION-WORKGROUP" }, { 0x785773, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7857B0, "GERTEC BRASIL LTDA", "GERTEC-BRASIL-LTDA" }, { 0x785860, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7858F3, "Vachen Co.,Ltd", "VACHEN" }, { 0x78593E, "RAFI GmbH & Co.KG", "RAFI" }, { 0x78595E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x785968, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x785B64, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x785C28, "Prime Motion Inc.", "PRIME-MOTION" }, { 0x785C5E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x785C72, "Hioso Technology Co., Ltd.", "HIOSO" }, { 0x785DC8, "LG Electronics", "LG-ELECTRONICS" }, { 0x785EA2, "Sunitec Enterprise Co.,Ltd", "SUNITEC" }, { 0x785EE8, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x785F36, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x785F4C, "Argox Information Co., Ltd.", "ARGOX-INFORMATION" }, { 0x78605B, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x78617C, "MITSUMI ELECTRIC CO.,LTD.", "MITSUMI-ELECTRIC" }, { 0x786256, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x786299, "BITSTREAM sp. z o.o.", "BITSTREAM-SP-Z-O-O" }, { 0x7864C0, "Apple, Inc.", "APPLE" }, { 0x7864E6, "Green Motive Technology Limited", "GREEN-MOTIVE" }, { 0x78653B, "Shaoxing Ourten Electronics Co., Ltd.", "SHAOXING-OURTEN-ELECTRONICS" }, { 0x786559, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x78669D, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x7866AE, "ZTEC Instruments, Inc.", "ZTEC-INSTRUMENTS" }, { 0x78670E, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x7867D7, "Apple, Inc.", "APPLE" }, { 0x786829, "eero inc.", "EERO" }, { 0x7868F7, "YSTen Technology Co.,Ltd", "YSTEN" }, { 0x7869D4, "Shenyang Vibrotech Instruments Inc.", "SHENYANG-VIBROTECH-INSTRUMENTS" }, { 0x786A1F, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x786A89, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x786C1C, "Apple, Inc.", "APPLE" }, { 0x786C84, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x786D94, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x786DEB, "GE Lighting", "GE-LIGHTING" }, { 0x787052, "Welotec GmbH", "WELOTEC" }, { 0x787104, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x78719C, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x78725D, "Cisco Systems, Inc", "CISCO" }, { 0x787264, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x787689, "eero inc.", "EERO" }, { 0x7876D9, "EXARA Group", "EXARA-GROUP" }, { 0x787A6F, "Juice Technology AG", "JUICE" }, { 0x787B8A, "Apple, Inc.", "APPLE" }, { 0x787D48, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x787D53, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x787DF3, "Sterlite Technologies Limited", "STERLITE-TECHNOLOGIES" }, { 0x787E61, "Apple, Inc.", "APPLE" }, { 0x787F62, "GiK mbH", "GIK" }, { 0x788038, "FUNAI ELECTRIC CO., LTD.", "FUNAI-ELECTRIC" }, { 0x788102, "Sercomm Corporation.", "SERCOMM" }, { 0x78818F, "Server Racks Australia Pty Ltd", "SERVER-RACKS-AUSTRALIA-PTY" }, { 0x7881CE, "China Mobile Iot Limited company", "CHINA-MOBILE-IOT-COMPANY" }, { 0x78843C, "Sony Corporation", "SONY" }, { 0x7884EE, "INDRA ESPACIO S.A.", "INDRA-ESPACIO" }, { 0x7885F4, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x7886B6, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x78870D, "Unifiedgateways India Private Limited", "UNIFIEDGATEWAYS-INDIA-PRIVATE" }, { 0x78886D, "Apple, Inc.", "APPLE" }, { 0x78888A, "CDR Sp. z o.o. Sp. k.", "CDR-SP-Z-O-O-SP-K" }, { 0x788973, "CMC", "CMC" }, { 0x788A20, "Ubiquiti Inc", "UBIQUITI" }, { 0x788A86, "China Dragon Technology Limited", "CHINA-DRAGON" }, { 0x788B2A, "Zhen Shi Information Technology (Shanghai) Co., Ltd.", "ZHEN-SHI-INFORMATION-SHANGHAI" }, { 0x788B77, "Standar Telecom", "STANDAR-TELECOM" }, { 0x788C4D, "Indyme Solutions, LLC", "INDYME-SOLUTIONS" }, { 0x788C54, "Ping Communication", "PING-COMMUNICATION" }, { 0x788C77, "LEXMARK INTERNATIONAL, INC.", "LEXMARK" }, { 0x788CB5, "TP-Link Corporation Limited", "TP-LINK" }, { 0x788DF7, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x788E33, "Jiangsu SEUIC Technology Co.,Ltd", "JIANGSU-SEUIC" }, { 0x7890A2, "zte corporation", "ZTE" }, { 0x7891DE, "Guangdong ACIGA Science&Technology Co.,Ltd", "GUANGDONG-ACIGA-SCIENCE" }, { 0x7891E9, "Raisecom Technology CO.,LTD", "RAISECOM" }, { 0x78923E, "Nokia Corporation", "NOKIA" }, { 0x78929C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x7894B4, "Sercomm Corporation.", "SERCOMM" }, { 0x7894E8, "Radio Bridge", "RADIO-BRIDGE" }, { 0x7895EB, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x789682, "zte corporation", "ZTE" }, { 0x789684, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x7896A3, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x7897C3, "DINGXIN INFORMATION TECHNOLOGY CO.,LTD", "DINGXIN-INFORMATION" }, { 0x7898E8, "D-Link International", "D-LINK" }, { 0x7898FD, "Q9 Networks Inc.", "Q9-NETWORKS" }, { 0x78995C, "Nationz Technologies Inc", "NATIONZ-TECHNOLOGIES" }, { 0x789966, "Musilab Electronics (DongGuan)Co.,Ltd.", "MUSILAB-ELECTRONICS-DONGGUAN" }, { 0x78998F, "MEDILINE ITALIA SRL", "MEDILINE-ITALIA-SRL" }, { 0x789A18, "Routerboard.com", "ROUTERBOARD-COM" }, { 0x789C85, "August Home, Inc.", "AUGUST-HOME" }, { 0x789CE7, "Shenzhen Aikede Technology Co., Ltd", "SHENZHEN-AIKEDE" }, { 0x789ED0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x789F38, "Shenzhen Feasycom Co., Ltd", "SHENZHEN-FEASYCOM" }, { 0x789F4C, "HOERBIGER Elektronik GmbH", "HOERBIGER-ELEKTRONIK" }, { 0x789F70, "Apple, Inc.", "APPLE" }, { 0x789F87, "Siemens AG I IA PP PRM", "SIEMENS-I-IA-PP-PRM" }, { 0x789FAA, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x78A03F, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x78A051, "iiNet Labs Pty Ltd", "IINET-LABS-PTY" }, { 0x78A106, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x78A183, "Advidia", "ADVIDIA" }, { 0x78A2A0, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x78A351, "SHENZHEN ZHIBOTONG ELECTRONICS CO.,LTD", "SHENZHEN-ZHIBOTONG-ELECTRONICS" }, { 0x78A3E4, "Apple, Inc.", "APPLE" }, { 0x78A504, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x78A5DD, "Shenzhen Smarteye Digital Electronics Co., Ltd", "SHENZHEN-SMARTEYE-DIGITAL-ELECTRONICS" }, { 0x78A683, "Precidata", "PRECIDATA" }, { 0x78A6A0, "Hangzhou Ezviz Software Co.,Ltd.", "HANGZHOU-EZVIZ-SOFTWARE" }, { 0x78A6BD, "DAEYEON Control&Instrument Co,.Ltd", "DAEYEON-CONTROL-INSTRUMENT" }, { 0x78A6E1, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x78A714, "Amphenol", "AMPHENOL" }, { 0x78A7EB, "1MORE", "1MORE" }, { 0x78A873, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x78AA82, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x78AB60, "ABB Australia", "ABB-AUSTRALIA" }, { 0x78ABBB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x78AC44, "Dell Inc.", "DELL" }, { 0x78ACBF, "Igneous Systems", "IGNEOUS" }, { 0x78ACC0, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x78AE0C, "Far South Networks", "FAR-SOUTH-NETWORKS" }, { 0x78AF08, "Intel Corporate", "INTEL-CORPORATE" }, { 0x78AF58, "GIMASI SA", "GIMASI" }, { 0x78AFE4, "Comau S.p.A", "COMAU" }, { 0x78B213, "DWnet Technologies(Suzhou) Corporation", "DWNET-TECHNOLOGIES-SUZHOU" }, { 0x78B28D, "Beijing Tengling Technology CO.Ltd", "BEIJING-TENGLING" }, { 0x78B3B9, "ShangHai sunup lighting CO.,LTD", "SHANGHAI-SUNUP-LIGHTING" }, { 0x78B3CE, "Elo touch solutions", "ELO-TOUCH-SOLUTIONS" }, { 0x78B46A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x78B554, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x78B5D2, "Ever Treasure Industrial Limited", "EVER-TREASURE-INDUSTRIAL" }, { 0x78B6C1, "AOBO Telecom Co.,Ltd", "AOBO-TELECOM" }, { 0x78B6EC, "Scuf Gaming International LLC", "SCUF-GAMING" }, { 0x78B81A, "INTER SALES A/S", "INTER-SALES-A/S" }, { 0x78B84B, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x78B8D6, "Zebra Technologies Inc.", "ZEBRA-TECHNOLOGIES" }, { 0x78BAD0, "Shinybow Technology Co. Ltd.", "SHINYBOW" }, { 0x78BAF9, "Cisco Systems, Inc", "CISCO" }, { 0x78BB88, "Maxio Technology (Hangzhou) Ltd.", "MAXIO-HANGZHOU" }, { 0x78BC1A, "Cisco Systems, Inc", "CISCO" }, { 0x78BDBC, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x78BEB6, "Enhanced Vision", "ENHANCED-VISION" }, { 0x78BEBD, "STULZ GmbH", "STULZ" }, { 0x78C1A7, "zte corporation", "ZTE" }, { 0x78C1AE, "Hangzhou Ezviz Software Co.,Ltd.", "HANGZHOU-EZVIZ-SOFTWARE" }, { 0x78C213, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x78C2C0, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x78C313, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x78C3E9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x78C40E, "H&D Wireless", "H-D-WIRELESS" }, { 0x78C4AB, "Shenzhen Runsil Technology Co.,Ltd", "SHENZHEN-RUNSIL" }, { 0x78C57D, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x78C5E5, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x78C5F8, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x78C62B, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0x78C6BB, "Analog Devices, Inc.", "ANALOG-DEVICES" }, { 0x78C881, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x78C95E, "Midmark RTLS", "MIDMARK-RTLS" }, { 0x78CA04, "Nokia Corporation", "NOKIA" }, { 0x78CA39, "Apple, Inc.", "APPLE" }, { 0x78CA5E, "ELNO", "ELNO" }, { 0x78CA83, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x78CB2C, "Join Digital, Inc.", "JOIN-DIGITAL" }, { 0x78CB33, "DHC Software Co.,Ltd", "DHC-SOFTWARE" }, { 0x78CB68, "DAEHAP HYPER-TECH", "DAEHAP-HYPER-TECH" }, { 0x78CC2B, "SINEWY TECHNOLOGY CO., LTD", "SINEWY" }, { 0x78CD8E, "SMC Networks Inc", "SMC-NETWORKS" }, { 0x78CF2F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x78CFF9, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x78D004, "Neousys Technology Inc.", "NEOUSYS" }, { 0x78D129, "Vicos", "VICOS" }, { 0x78D162, "Apple, Inc.", "APPLE" }, { 0x78D294, "NETGEAR", "NETGEAR" }, { 0x78D347, "Ericsson AB", "ERICSSON-AB" }, { 0x78D34F, "Pace-O-Matic, Inc.", "PACE-O-MATIC" }, { 0x78D38D, "HONGKONG YUNLINK TECHNOLOGY LIMITED", "HONGKONG-YUNLINK" }, { 0x78D3ED, "NORMA", "NORMA" }, { 0x78D4F1, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x78D5B5, "NAVIELEKTRO KY", "NAVIELEKTRO-KY" }, { 0x78D66F, "Aristocrat Technologies Australia Pty. Ltd.", "ARISTOCRAT-TECHNOLOGIES-AUSTRALIA-PTY" }, { 0x78D6B2, "Toshiba", "TOSHIBA" }, { 0x78D6D6, "eero inc.", "EERO" }, { 0x78D6DC, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0x78D6F0, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0x78D71A, "Ciena Corporation", "CIENA" }, { 0x78D752, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x78D75F, "Apple, Inc.", "APPLE" }, { 0x78D800, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x78D840, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x78D99F, "NuCom HK Ltd.", "NUCOM-HK" }, { 0x78D9E9, "MOMENTUM IOT", "MOMENTUM-IOT" }, { 0x78DA07, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0x78DA6E, "Cisco Systems, Inc", "CISCO" }, { 0x78DAA2, "Cynosure Technologies Co.,Ltd", "CYNOSURE-TECHNOLOGIES" }, { 0x78DAB3, "GBO Technology", "GBO" }, { 0x78DB2F, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x78DD08, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x78DD12, "Arcadyan Corporation", "ARCADYAN" }, { 0x78DD33, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x78DDD6, "c-scape", "C-SCAPE" }, { 0x78DDD9, "Guangzhou Shiyuan Electronics Co., Ltd.", "GUANGZHOU-SHIYUAN-ELECTRONICS" }, { 0x78DEE4, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x78DF72, "Shanghai Imilab Technology Co.Ltd", "SHANGHAI-IMILAB" }, { 0x78E103, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x78E22C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x78E2BD, "Vodafone Automotive S.p.A.", "VODAFONE-AUTOMOTIVE" }, { 0x78E36D, "Espressif Inc.", "ESPRESSIF" }, { 0x78E3B5, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x78E3DE, "Apple, Inc.", "APPLE" }, { 0x78E400, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x78E7D1, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x78E8B6, "zte corporation", "ZTE" }, { 0x78E980, "RainUs Co.,Ltd", "RAINUS" }, { 0x78E9CF, "TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO", "TELLESCOM-INDUSTRIA-E-COMERCIO-EM-TELECOMUNICACAO" }, { 0x78EB14, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0x78EB39, "Instituto Nacional de Tecnología Industrial", "INSTITUTO-NACIONAL-DE-TECNOLOGA-INDUSTRIAL" }, { 0x78EB46, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x78EC22, "Shanghai Qihui Telecom Technology Co., LTD", "SHANGHAI-QIHUI-TELECOM" }, { 0x78EC74, "Kyland-USA", "KYLAND-USA" }, { 0x78EF4C, "Unetconvergence Co., Ltd.", "UNETCONVERGENCE" }, { 0x78F09B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x78F1C6, "Cisco Systems, Inc", "CISCO" }, { 0x78F235, "Sichuan AI-Link Technology Co., Ltd.", "SICHUAN-AI-LINK" }, { 0x78F238, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x78F29E, "PEGATRON CORPORATION", "PEGATRON" }, { 0x78F557, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x78F5E5, "BEGA Gantenbrink-Leuchten KG", "BEGA-GANTENBRINK-LEUCHTEN" }, { 0x78F5FD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x78F7BE, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x78F7D0, "Silverbrook Research", "SILVERBROOK-RESEARCH" }, { 0x78F882, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x78F8B8, "Rako Controls Ltd", "RAKO-CONTROLS" }, { 0x78F944, "Private", "PRIVATE" }, { 0x78F9B4, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x78FBD8, "Apple, Inc.", "APPLE" }, { 0x78FC14, "Family Zone Cyber Safety Ltd", "FAMILY-ZONE-CYBER-SAFETY" }, { 0x78FD94, "Apple, Inc.", "APPLE" }, { 0x78FE3D, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x78FE41, "Socus networks", "SOCUS-NETWORKS" }, { 0x78FEE2, "Shanghai Diveo Technology Co., Ltd", "SHANGHAI-DIVEO" }, { 0x78FF57, "Intel Corporate", "INTEL-CORPORATE" }, { 0x78FFCA, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x7C004D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7C010A, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x7C0187, "Curtis Instruments, Inc.", "CURTIS-INSTRUMENTS" }, { 0x7C0191, "Apple, Inc.", "APPLE" }, { 0x7C02BC, "Hansung Electronics Co. LTD", "HANSUNG-ELECTRONICS" }, { 0x7C034C, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x7C035E, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x7C03AB, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x7C03C9, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x7C03D8, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x7C04D0, "Apple, Inc.", "APPLE" }, { 0x7C0507, "PEGATRON CORPORATION", "PEGATRON" }, { 0x7C051E, "RAFAEL LTD.", "RAFAEL" }, { 0x7C0623, "Ultra Electronics Sonar System Division", "ULTRA-ELECTRONICS-SONAR-SYSTEM-DIVISION" }, { 0x7C08D9, "Shanghai B-Star Technology Co", "SHANGHAI-B-STAR" }, { 0x7C092B, "Bekey A/S", "BEKEY-A/S" }, { 0x7C0A3F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7C0A50, "J-MEX Inc.", "J-MEX" }, { 0x7C0BC6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7C0C92, "Suzhou Mobydata Smart System Co.,Ltd.", "SUZHOU-MOBYDATA-SMART-SYSTEM" }, { 0x7C0CF6, "Guangdong Huiwei High-tech Co., Ltd.", "GUANGDONG-HUIWEI-HIGH-TECH" }, { 0x7C0ECE, "Cisco Systems, Inc", "CISCO" }, { 0x7C1015, "Brilliant Home Technology, Inc.", "BRILLIANT-HOME" }, { 0x7C10C9, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x7C11BE, "Apple, Inc.", "APPLE" }, { 0x7C11CB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7C11CD, "QianTang Technology", "QIANTANG" }, { 0x7C131D, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0x7C1476, "Damall Technologies SAS", "DAMALL-TECHNOLOGIES-SAS" }, { 0x7C160D, "Saia-Burgess Controls AG", "SAIA-BURGESS-CONTROLS" }, { 0x7C1689, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x7C1779, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x7C18CD, "E-TRON Co.,Ltd.", "E-TRON" }, { 0x7C1A03, "8Locations Co., Ltd.", "8LOCATIONS" }, { 0x7C1AC0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7C1AFC, "Dalian Co-Edifice Video Technology Co., Ltd", "DALIAN-EDIFICE-VIDEO" }, { 0x7C1B93, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x7C1C4E, "LG Innotek", "LG-INNOTEK" }, { 0x7C1C68, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7C1CF1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7C1DD9, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x7C1E06, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x7C1E52, "Microsoft", "MICROSOFT" }, { 0x7C1EB3, "2N TELEKOMUNIKACE a.s.", "2N-TELEKOMUNIKACE" }, { 0x7C2048, "KoamTac", "KOAMTAC" }, { 0x7C2064, "Alcatel-Lucent IPD", "ALCATEL-LUCENT-IPD" }, { 0x7C210D, "Cisco Systems, Inc", "CISCO" }, { 0x7C210E, "Cisco Systems, Inc", "CISCO" }, { 0x7C214A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x7C21D8, "Shenzhen Think Will Communication Technology co., LTD.", "SHENZHEN-THINK-WILL-COMMUNICATION" }, { 0x7C2302, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7C240C, "Telechips, Inc.", "TELECHIPS" }, { 0x7C2499, "Apple, Inc.", "APPLE" }, { 0x7C2586, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x7C2587, "chaowifi.com", "CHAOWIFI-COM" }, { 0x7C25DA, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0x7C2634, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x7C2664, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x7C273C, "Shenzhen Yunlink Technology Co., Ltd", "SHENZHEN-YUNLINK" }, { 0x7C27BC, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x7C296F, "Apple, Inc.", "APPLE" }, { 0x7C2A31, "Intel Corporate", "INTEL-CORPORATE" }, { 0x7C2ACA, "Apple, Inc.", "APPLE" }, { 0x7C2ADB, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x7C2BE1, "Shenzhen Ferex Electrical Co.,Ltd", "SHENZHEN-FEREX-ELECTRICAL" }, { 0x7C2CF3, "Secure Electrans Ltd", "SECURE-ELECTRANS" }, { 0x7C2E0D, "Blackmagic Design", "BLACKMAGIC-DESIGN" }, { 0x7C2EBD, "Google, Inc.", "GOOGLE" }, { 0x7C2EDD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7C2F80, "Gigaset Communications GmbH", "GIGASET-COMMUNICATION" }, { 0x7C310E, "Cisco Systems, Inc", "CISCO" }, { 0x7C3180, "SMK corporation", "SMK" }, { 0x7C336E, "MEG Electronics Inc.", "MEG-ELECTRONICS" }, { 0x7C33F9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7C3548, "Transcend Information", "TRANSCEND-INFORMATION" }, { 0x7C35F8, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0x7C3866, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x7C386C, "Real Time Logic", "REAL-TIME-LOGIC" }, { 0x7C38AD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7C3920, "SSOMA SECURITY", "SSOMA-SECURITY" }, { 0x7C3953, "zte corporation", "ZTE" }, { 0x7C3985, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7C3BD5, "Imago Group", "IMAGO-GROUP" }, { 0x7C3CB6, "Shenzhen Homecare Technology Co.,Ltd.", "SHENZHEN-HOMECARE" }, { 0x7C3D2B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x7C3E74, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x7C3E9D, "PATECH", "PATECH" }, { 0x7C41A2, "Nokia", "NOKIA" }, { 0x7C438F, "E-Band Communications Corp.", "E-BAND-COMMUNICATION" }, { 0x7C444C, "Entertainment Solutions, S.L.", "ENTERTAINMENT-SOLUTIONS" }, { 0x7C45D0, "Shenzhen Wewins Wireless Co., ltd", "SHENZHEN-WEWINS-WIRELESS" }, { 0x7C45F9, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x7C4685, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0x7C477C, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x7C48B2, "Vida Resources Lte Ltd", "VIDA-RESOURCES-LTE" }, { 0x7C49B9, "Plexus Manufacturing Sdn Bhd", "PLEXUS-MANUFACTURING" }, { 0x7C49EB, "XIAOMI Electronics,CO.,LTD", "XIAOMI-ELECTRONICS" }, { 0x7C4A82, "Portsmith LLC", "PORTSMITH" }, { 0x7C4AA8, "MindTree Wireless PVT Ltd", "MINDTREE-WIRELESS-PVT" }, { 0x7C4B78, "Red Sun Synthesis Pte Ltd", "RED-SUN-SYNTHESIS-PTE" }, { 0x7C4C58, "Scale Computing, Inc.", "SCALE-COMPUTING" }, { 0x7C4CA5, "SKY UK LIMITED", "SKY-UK" }, { 0x7C4D8F, "HP Inc.", "HP" }, { 0x7C4E09, "Shenzhen Skyworth Wireless Technology Co.,Ltd", "SHENZHEN-SKYWORTH-WIRELESS" }, { 0x7C4F7D, "Sawwave", "SAWWAVE" }, { 0x7C4FB5, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x7C5049, "Apple, Inc.", "APPLE" }, { 0x7C5079, "Intel Corporate", "INTEL-CORPORATE" }, { 0x7C50DA, "E.J Ward", "E-J-WARD" }, { 0x7C5189, "SG Wireless Limited", "SG-WIRELESS" }, { 0x7C5259, "Sichuan Jiuzhou Electronic Technology Co., Ltd.", "SICHUAN-JIUZHOU" }, { 0x7C534A, "Metamako", "METAMAKO" }, { 0x7C55A7, "Kastle Systems", "KASTLE" }, { 0x7C55E7, "YSI, Inc.", "YSI" }, { 0x7C573C, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x7C574E, "COBI GmbH", "COBI" }, { 0x7C5758, "HP Inc.", "HP" }, { 0x7C5A1C, "Sophos Ltd", "SOPHOS" }, { 0x7C5A67, "JNC Systems, Inc.", "JNC" }, { 0x7C5CF8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x7C604A, "Avelon", "AVELON" }, { 0x7C6097, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7C6130, "Apple, Inc.", "APPLE" }, { 0x7C6166, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x7C6193, "HTC Corporation", "HTC" }, { 0x7C6305, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x7C6456, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7C646C, "LG Electronics", "LG-ELECTRONICS" }, { 0x7C669A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7C669D, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x7C66EF, "Hon Hai Precision IND.CO.,LTD", "HON-HAI-PRECISION-IND" }, { 0x7C67A2, "Intel Corporate", "INTEL-CORPORATE" }, { 0x7C67AB, "Roku, Inc", "ROKU" }, { 0x7C696B, "Atmosic Technologies", "ATMOSIC-TECHNOLOGIES" }, { 0x7C69F6, "Cisco Systems, Inc", "CISCO" }, { 0x7C6A60, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x7C6A8A, "SINOBONDER Technology Co., Ltd.", "SINOBONDER" }, { 0x7C6AB3, "IBC TECHNOLOGIES INC.", "IBC-TECHNOLOGIES" }, { 0x7C6AC3, "GatesAir, Inc", "GATESAIR" }, { 0x7C6ADB, "SafeTone Technology Co.,Ltd", "SAFETONE" }, { 0x7C6AF3, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x7C6B33, "Tenyu Tech Co. Ltd.", "TENYU-TECH" }, { 0x7C6B52, "Tigaro Wireless", "TIGARO-WIRELESS" }, { 0x7C6B9C, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x7C6BF7, "NTI co., ltd.", "NTI" }, { 0x7C6C39, "PIXSYS SRL", "PIXSYS-SRL" }, { 0x7C6C8F, "AMS NEVE LTD", "AMS-NEVE" }, { 0x7C6CF0, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0x7C6D62, "Apple, Inc.", "APPLE" }, { 0x7C6DA6, "Superwave Group LLC", "SUPERWAVE-GROUP" }, { 0x7C6DF8, "Apple, Inc.", "APPLE" }, { 0x7C6F06, "Caterpillar Trimble Control Technologies", "CATERPILLAR-TRIMBLE-CONTROL-TECHNOLOGIES" }, { 0x7C6FF8, "ShenZhen ACTO Digital Video Technology Co.,Ltd.", "SHENZHEN-ACTO-DIGITAL-VIDEO" }, { 0x7C70BC, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x7C70DB, "Intel Corporate", "INTEL-CORPORATE" }, { 0x7C7176, "Wuxi iData Technology Company Ltd.", "WUXI-IDATA-COMPANY" }, { 0x7C726E, "Ericsson AB", "ERICSSON-AB" }, { 0x7C72E4, "Unikey Technologies", "UNIKEY-TECHNOLOGIES" }, { 0x7C738B, "Cocoon Alarm Ltd", "COCOON-ALARM" }, { 0x7C73EB, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x7C752D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7C7630, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x7C7635, "Intel Corporate", "INTEL-CORPORATE" }, { 0x7C7668, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7C7673, "ENMAS GmbH", "ENMAS" }, { 0x7C7716, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x7C787E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7C78B2, "Wyze Labs Inc", "WYZE-LABS" }, { 0x7C79E8, "PayRange Inc.", "PAYRANGE" }, { 0x7C7A3C, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x7C7A53, "Phytrex Technology Corp.", "PHYTREX" }, { 0x7C7A91, "Intel Corporate", "INTEL-CORPORATE" }, { 0x7C7B8B, "Control Concepts, Inc.", "CONTROL-CONCEPTS" }, { 0x7C7BE4, "Z'SEDAI KENKYUSHO CORPORATION", "Z-SEDAI-KENKYUSHO" }, { 0x7C7D3D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7C7D41, "Jinmuyu Electronics Co., Ltd.", "JINMUYU-ELECTRONICS" }, { 0x7C822D, "Nortec", "NORTEC" }, { 0x7C8274, "Shenzhen Hikeen Technology CO.,LTD", "SHENZHEN-HIKEEN" }, { 0x7C8306, "Glen Dimplex Nordic as", "GLEN-DIMPLEX-NORDIC-AS" }, { 0x7C8334, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x7C8437, "China Post Communications Equipment Co., Ltd.", "CHINA-POST-COMMUNICATION-EQUIPMENT" }, { 0x7C8530, "Nokia", "NOKIA" }, { 0x7C87CE, "Espressif Inc.", "ESPRESSIF" }, { 0x7C8931, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x7C8956, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7C89C1, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x7C8AC0, "EVBox BV", "EVBOX" }, { 0x7C8AE1, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x7C8BB5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7C8BCA, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x7C8D91, "Shanghai Hongzhuo Information Technology co.,LTD", "SHANGHAI-HONGZHUO-INFORMATION" }, { 0x7C8EE4, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x7C8FDE, "DWnet Technologies(Suzhou) Corporation", "DWNET-TECHNOLOGIES-SUZHOU" }, { 0x7C9122, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7C942A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7C949F, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0x7C94B2, "Philips Healthcare PCCI", "PHILIPS-HEALTHCARE-PCCI" }, { 0x7C95B1, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x7C95F3, "Cisco Systems, Inc", "CISCO" }, { 0x7C96D2, "Fihonest communication co.,Ltd", "FIHONEST-COMMUNICATION" }, { 0x7C9763, "Openmatics s.r.o.", "OPENMATICS-S-R-O" }, { 0x7C97E1, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x7C9A1D, "Apple, Inc.", "APPLE" }, { 0x7C9A54, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x7C9A9B, "VSE valencia smart energy", "VSE-VALENCIA-SMART-ENERGY" }, { 0x7C9EBD, "Espressif Inc.", "ESPRESSIF" }, { 0x7C9F07, "CIG SHANGHAI CO LTD", "CIG-SHANGHAI" }, { 0x7CA15D, "GN ReSound A/S", "GN-RESOUND-A/S" }, { 0x7CA177, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7CA1AE, "Apple, Inc.", "APPLE" }, { 0x7CA237, "King Slide Technology CO., LTD.", "KING-SLIDE" }, { 0x7CA23E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7CA29B, "D.SignT GmbH & Co. KG", "D-SIGNT" }, { 0x7CA449, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x7CA61D, "MHL, LLC", "MHL" }, { 0x7CA62A, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x7CA7B0, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0x7CA96B, "Syrotech Networks. Ltd.", "SYROTECH-NETWORKS" }, { 0x7CA97D, "Objenious", "OBJENIOUS" }, { 0x7CAB25, "MESMO TECHNOLOGY INC.", "MESMO" }, { 0x7CAB60, "Apple, Inc.", "APPLE" }, { 0x7CACB2, "Bosch Software Innovations GmbH", "BOSCH-SOFTWARE-INNOVATIONS" }, { 0x7CAD4F, "Cisco Systems, Inc", "CISCO" }, { 0x7CAD74, "Cisco Systems, Inc", "CISCO" }, { 0x7CB03E, "OSRAM GmbH", "OSRAM" }, { 0x7CB073, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x7CB0C2, "Intel Corporate", "INTEL-CORPORATE" }, { 0x7CB15D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7CB177, "Satelco AG", "SATELCO" }, { 0x7CB21B, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x7CB232, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x7CB25C, "Acacia Communications", "ACACIA-COMMUNICATION" }, { 0x7CB27D, "Intel Corporate", "INTEL-CORPORATE" }, { 0x7CB37B, "Qingdao Intelligent&Precise Electronics Co.,Ltd.", "QINGDAO-INTELLIGENT-PRECISE-ELECTRONICS" }, { 0x7CB542, "ACES Technology", "ACES" }, { 0x7CB566, "Intel Corporate", "INTEL-CORPORATE" }, { 0x7CB59B, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x7CB733, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x7CB77B, "Paradigm Electronics Inc", "PARADIGM-ELECTRONICS" }, { 0x7CB94C, "Bouffalo Lab (Nanjing) Co., Ltd.", "BOUFFALO-LAB-NANJING" }, { 0x7CB960, "Shanghai X-Cheng telecom LTD", "SHANGHAI-X-CHENG-TELECOM" }, { 0x7CBACC, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x7CBB6F, "Cosco Electronics Co., Ltd.", "COSCO-ELECTRONICS" }, { 0x7CBB8A, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x7CBC84, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x7CBD06, "AE REFUsol", "AE-REFUSOL" }, { 0x7CBF88, "Mobilicom LTD", "MOBILICOM" }, { 0x7CBFAE, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x7CBFB1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x7CC06F, "Apple, Inc.", "APPLE" }, { 0x7CC177, "INGRAM MICRO SERVICES", "INGRAM-MICRO-SERVICES" }, { 0x7CC180, "Apple, Inc.", "APPLE" }, { 0x7CC225, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7CC255, "Super Micro Computer, Inc.", "SUPER-MICRO" }, { 0x7CC294, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x7CC2C6, "TP-Link Corporation Limited", "TP-LINK" }, { 0x7CC385, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7CC3A1, "Apple, Inc.", "APPLE" }, { 0x7CC4EF, "Devialet", "DEVIALET" }, { 0x7CC537, "Apple, Inc.", "APPLE" }, { 0x7CC6C4, "Kolff Computer Supplies b.v.", "KOLFF-SUPPLIES-B-V" }, { 0x7CC709, "SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.", "SHENZHEN-RF-LINK" }, { 0x7CC74A, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x7CC77E, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x7CC8AB, "Acro Associates, Inc.", "ACRO-ASSOCIATES" }, { 0x7CC8D0, "TIANJIN YAAN TECHNOLOGY CO., LTD.", "TIANJIN-YAAN" }, { 0x7CC8D7, "Damalisk", "DAMALISK" }, { 0x7CC926, "Wuhan GreeNet Information Service Co.,Ltd.", "WUHAN-GREENET-INFORMATION-SERVICE" }, { 0x7CC95A, "Dell EMC", "DELL-EMC" }, { 0x7CC95E, "Dongguan Liesheng Electronic Co., Ltd.", "DONGGUAN-LIESHENG" }, { 0x7CCB0D, "Antaira Technologies, LLC", "ANTAIRA-TECHNOLOGIES" }, { 0x7CCBE2, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x7CCC1F, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x7CCCB8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x7CCCFC, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0x7CCD11, "MS-Magnet", "MS-MAGNET" }, { 0x7CCD3C, "Guangzhou Juzing Technology Co., Ltd", "GUANGZHOU-JUZING" }, { 0x7CCFCF, "Shanghai SEARI Intelligent System Co., Ltd", "SHANGHAI-SEARI-INTELLIGENT-SYSTEM" }, { 0x7CD1C3, "Apple, Inc.", "APPLE" }, { 0x7CD30A, "INVENTEC CORPORATION", "INVENTEC" }, { 0x7CD566, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x7CD661, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x7CD762, "Freestyle Technology Pty Ltd", "FREESTYLE-PTY" }, { 0x7CD844, "Enmotus Inc", "ENMOTUS" }, { 0x7CD95C, "Google, Inc.", "GOOGLE" }, { 0x7CD9A0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x7CD9F4, "UAB Teltonika Telematics", "UAB-TELTONIKA-TELEMATICS" }, { 0x7CD9FE, "New Cosmos Electric Co., Ltd.", "NEW-COSMOS-ELECTRIC" }, { 0x7CDA84, "Dongnian Networks Inc.", "DONGNIAN-NETWORKS" }, { 0x7CDAC3, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x7CDB98, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x7CDCCC, "BEIJING STARBLAZE TECHNOLOGY CO.,LTD", "BEIJING-STARBLAZE" }, { 0x7CDD11, "Chongqing MAS SCI&TECH.Co.,Ltd", "CHONGQING-MAS-SCI-TECH" }, { 0x7CDD20, "IOXOS Technologies S.A.", "IOXOS-TECHNOLOGIES" }, { 0x7CDD76, "Suzhou Hanming Technologies Co., Ltd.", "SUZHOU-HANMING-TECHNOLOGIES" }, { 0x7CDD90, "Shenzhen Ogemray Technology Co., Ltd.", "SHENZHEN-OGEMRAY" }, { 0x7CDDE9, "ATOM tech Inc.", "ATOM-TECH" }, { 0x7CDE78, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x7CDFA1, "Espressif Inc.", "ESPRESSIF" }, { 0x7CE044, "NEON Inc", "NEON" }, { 0x7CE152, "THE GOODYEAR TIRE & RUBBER COMPANY", "THE-GOODYEAR-TIRE-RUBBER-COMPANY" }, { 0x7CE1FF, "Computer Performance, Inc. DBA Digital Loggers, Inc.", "PERFORMANCE-DBA-DIGITAL-LOGGERS" }, { 0x7CE269, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x7CE2CA, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x7CE4AA, "Private", "PRIVATE" }, { 0x7CE524, "Quirky, Inc.", "QUIRKY" }, { 0x7CE56B, "ESEN Optoelectronics Technology Co.,Ltd.", "ESEN-OPTOELECTRONICS" }, { 0x7CE87F, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x7CE97C, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x7CE9D3, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x7CEB7F, "Dmet Products Corp.", "DMET-PRODUCTS" }, { 0x7CEBAE, "Ridgeline Instruments", "RIDGELINE-INSTRUMENTS" }, { 0x7CEBEA, "ASCT", "ASCT" }, { 0x7CEC79, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x7CEC9B, "Fuzhou Teraway Information Technology Co.,Ltd", "FUZHOU-TERAWAY-INFORMATION" }, { 0x7CECB1, "Apple, Inc.", "APPLE" }, { 0x7CED8D, "Microsoft", "MICROSOFT" }, { 0x7CEDC6, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x7CEF18, "Creative Product Design Pty. Ltd.", "CREATIVE-PRODUCT-DESIGN-PTY" }, { 0x7CEF40, "Nextorage Corporation", "NEXTORAGE" }, { 0x7CEF61, "STR Elektronik Josef Schlechtinger GmbH", "STR-ELEKTRONIK-JOSEF-SCHLECHTINGER" }, { 0x7CEF8A, "Inhon International Ltd.", "INHON" }, { 0x7CF05F, "Apple, Inc.", "APPLE" }, { 0x7CF098, "Bee Beans Technologies, Inc.", "BEE-BEANS-TECHNOLOGIES" }, { 0x7CF0BA, "Linkwell Telesystems Pvt Ltd", "LINKWELL-TELESYSTEMS-PVT" }, { 0x7CF2DD, "Vence Corp", "VENCE" }, { 0x7CF31B, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x7CF429, "NUUO Inc.", "NUUO" }, { 0x7CF462, "BEIJING HUAWOO TECHNOLOGIES CO.LTD", "BEIJING-HUAWOO-TECHNOLOGIES" }, { 0x7CF666, "Tuya Smart Inc.", "TUYA-SMART" }, { 0x7CF854, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7CF880, "Cisco Systems, Inc", "CISCO" }, { 0x7CF90E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x7CF95C, "U.I. Lapp GmbH", "U-I-LAPP" }, { 0x7CF9A0, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x7CFADF, "Apple, Inc.", "APPLE" }, { 0x7CFC16, "Apple, Inc.", "APPLE" }, { 0x7CFC3C, "Visteon Corporation", "VISTEON" }, { 0x7CFCFD, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x7CFD6B, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x7CFD82, "GUANGDONG GENIUS TECHNOLOGY CO., LTD.", "GUANGDONG-GENIUS" }, { 0x7CFE28, "Salutron Inc.", "SALUTRON" }, { 0x7CFE4E, "Shenzhen Safe vision Technology Co.,LTD", "SHENZHEN-SAFE-VISION" }, { 0x7CFE90, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0x7CFF4D, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x7CFF62, "Huizhou Super Electron Technology Co.,Ltd.", "HUIZHOU-SUPER-ELECTRON" }, { 0x80000B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x800010, "AT&T", "AT-T" }, { 0x80006E, "Apple, Inc.", "APPLE" }, { 0x80015C, "Synaptics, Inc", "SYNAPTICS" }, { 0x800184, "HTC Corporation", "HTC" }, { 0x80029C, "Gemtek Technology Co., Ltd.", "GEMTEK" }, { 0x8002DF, "ORA Inc.", "ORA" }, { 0x8002F4, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x800384, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x80045F, "Apple, Inc.", "APPLE" }, { 0x800588, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0x8005DF, "Montage Technology Group Limited", "MONTAGE-GROUP" }, { 0x80071B, "VSOLUTION TELECOMMUNICATION TECHNOLOGY CO.,LTD.", "VSOLUTION-TELECOMMUNICATION" }, { 0x800794, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8007A2, "Esson Technology Inc.", "ESSON" }, { 0x800902, "Keysight Technologies, Inc.", "KEYSIGHT-TECHNOLOGIES" }, { 0x800A06, "COMTEC co.,ltd", "COMTEC" }, { 0x800A80, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x800B51, "Chengdu XGimi Technology Co.,Ltd", "CHENGDU-XGIMI" }, { 0x800C67, "Apple, Inc.", "APPLE" }, { 0x800CF9, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x800DD7, "Latticework, Inc", "LATTICEWORK" }, { 0x800E24, "ForgetBox", "FORGETBOX" }, { 0x8012DF, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x801382, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x801440, "Sunlit System Technology Corp", "SUNLIT-SYSTEM" }, { 0x8014A8, "Guangzhou V-SOLUTION Electronic Technology Co., Ltd.", "GUANGZHOU-V-SOLUTION" }, { 0x801605, "Vodafone Italia S.p.A.", "VODAFONE-ITALIA" }, { 0x801609, "Sleep Number", "SLEEP-NUMBER" }, { 0x8016B7, "Brunel University", "BRUNEL-UNIVERSITY" }, { 0x80177D, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x801844, "Dell Inc.", "DELL" }, { 0x8018A7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x801934, "Intel Corporate", "INTEL-CORPORATE" }, { 0x801967, "Shanghai Reallytek Information Technology Co.,Ltd", "SHANGHAI-REALLYTEK-INFORMATION" }, { 0x801970, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8019FE, "JianLing Technology CO., LTD", "JIANLING" }, { 0x801DAA, "Avaya Inc", "AVAYA" }, { 0x801F02, "Edimax Technology Co. Ltd.", "EDIMAX" }, { 0x801F12, "Microchip Technology Inc.", "MICROCHIP" }, { 0x8020AF, "Trade FIDES, a.s.", "TRADE-FIDES" }, { 0x8020DA, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x8020E1, "BVBA DPTechnics", "BVBA-DPTECHNICS" }, { 0x8020FD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x802275, "Beijing Beny Wave Technology Co Ltd", "BEIJING-BENY-WAVE" }, { 0x802278, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0x8022A7, "NEC Platforms, Ltd.", "NEC-PLATFORMS" }, { 0x80248F, "Cisco Systems, Inc", "CISCO" }, { 0x802511, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x802689, "D-Link International", "D-LINK" }, { 0x80276C, "Cisco Systems, Inc", "CISCO" }, { 0x802994, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x802AA8, "Ubiquiti Inc", "UBIQUITI" }, { 0x802AFA, "Germaneers GmbH", "GERMANEERS" }, { 0x802BF9, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x802D1A, "zte corporation", "ZTE" }, { 0x802DBF, "Cisco Systems, Inc", "CISCO" }, { 0x802DE1, "Solarbridge Technologies", "SOLARBRIDGE-TECHNOLOGIES" }, { 0x802E14, "azeti Networks AG", "AZETI-NETWORKS" }, { 0x802FDE, "Zurich Instruments AG", "ZURICH-INSTRUMENTS" }, { 0x803049, "Liteon Technology Corporation", "LITEON" }, { 0x8030DC, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x8030E0, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x8031F0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x803253, "Intel Corporate", "INTEL-CORPORATE" }, { 0x803428, "Microchip Technology Inc.", "MICROCHIP" }, { 0x803457, "OT Systems Limited", "OT" }, { 0x8035C1, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x803773, "NETGEAR", "NETGEAR" }, { 0x803896, "SHARP Corporation", "SHARP" }, { 0x8038BC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8038D4, "Fibercentury Network Technology Co.,Ltd.", "FIBERCENTURY-NETWORK" }, { 0x8038FB, "Intel Corporate", "INTEL-CORPORATE" }, { 0x8038FD, "LeapFrog Enterprises, Inc.", "LEAPFROG-ENTERPRISES" }, { 0x80398C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8039E5, "PATLITE CORPORATION", "PATLITE" }, { 0x803A0A, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x803A59, "AT&T", "AT-T" }, { 0x803AF4, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x803B2A, "ABB Xiamen Low Voltage Equipment Co.,Ltd.", "ABB-XIAMEN-LOW-VOLTAGE-EQUIPMENT" }, { 0x803B9A, "ghe-ces electronic ag", "GHE-CES" }, { 0x803BF6, "LOOK EASY INTERNATIONAL LIMITED", "LOOK-EASY" }, { 0x803C20, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x803E48, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0x803F5D, "Winstars Technology Ltd", "WINSTARS" }, { 0x803FD6, "bytes at work AG", "BYTES-AT-WORK" }, { 0x804126, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x80414E, "BBK EDUCATIONAL ELECTRONICS CORP.,LTD.", "BBK-EDUCATIONAL-ELECTRONICS" }, { 0x80427C, "Adolf Tedsen GmbH & Co. KG", "ADOLF-TEDSEN" }, { 0x80433F, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x8044FD, "China Mobile (Hangzhou) Information Technology Co., Ltd.", "CHINA-MOBILE-HANGZHOU-INFORMATION" }, { 0x8045DD, "Intel Corporate", "INTEL-CORPORATE" }, { 0x804731, "Packet Design, Inc.", "PACKET-DESIGN" }, { 0x804786, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8048A5, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x804971, "Apple, Inc.", "APPLE" }, { 0x804A14, "Apple, Inc.", "APPLE" }, { 0x804AF2, "Sonos, Inc.", "SONOS" }, { 0x804B20, "Ventilation Control", "VENTILATION-CONTROL" }, { 0x804B50, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x804E70, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x804E81, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x804F58, "ThinkEco, Inc.", "THINKECO" }, { 0x80501B, "Nokia Corporation", "NOKIA" }, { 0x805067, "W & D TECHNOLOGY CORPORATION", "W-D" }, { 0x8050F6, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x80546A, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0x80549C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8054D9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8054E3, "Apple, Inc.", "APPLE" }, { 0x80563C, "ZF", "ZF" }, { 0x8056F2, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x805719, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8058C5, "NovaTec Kommunikationstechnik GmbH", "NOVATEC-KOMMUNIKATIONSTECHNIK" }, { 0x8058F8, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x8059FD, "Noviga", "NOVIGA" }, { 0x805A04, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x805B65, "LG Innotek", "LG-INNOTEK" }, { 0x805E0C, "YEALINK(XIAMEN) NETWORK TECHNOLOGY CO.,LTD.", "YEALINK-XIAMEN-NETWORK" }, { 0x805E4F, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0x805EC0, "YEALINK(XIAMEN) NETWORK TECHNOLOGY CO.,LTD.", "YEALINK-XIAMEN-NETWORK" }, { 0x805F8E, "Huizhou BYD Electronic Co., Ltd.", "HUIZHOU-BYD" }, { 0x805FC5, "Apple, Inc.", "APPLE" }, { 0x806007, "RIM", "RIM" }, { 0x806036, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8060B7, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x80615F, "Beijing Sinead Technology Co., Ltd.", "BEIJING-SINEAD" }, { 0x80616C, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x80618F, "Shenzhen sangfei consumer communications co.,ltd", "SHENZHEN-SANGFEI-CONSUMER-COMMUNICATION" }, { 0x806459, "Nimbus Inc.", "NIMBUS" }, { 0x80646F, "Espressif Inc.", "ESPRESSIF" }, { 0x80647A, "Ola Sense Inc", "OLA-SENSE" }, { 0x806559, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x80656D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x80657C, "Apple, Inc.", "APPLE" }, { 0x8065E9, "BenQ Corporation", "BENQ" }, { 0x806629, "Prescope Technologies CO.,LTD.", "PRESCOPE-TECHNOLOGIES" }, { 0x80691A, "Belkin International Inc.", "BELKIN" }, { 0x806933, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x806940, "LEXAR CO.,LIMITED", "LEXAR" }, { 0x806A00, "Cisco Systems, Inc", "CISCO" }, { 0x806A10, "Whisker Labs - Ting", "WHISKER-LABS-TING" }, { 0x806AB0, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0x806C1B, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x806C8B, "KAESER KOMPRESSOREN AG", "KAESER-KOMPRESSOREN" }, { 0x806CBC, "NET New Electronic Technology GmbH", "NET-NEW" }, { 0x806D71, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x806D97, "Private", "PRIVATE" }, { 0x806F1C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x806FB0, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x80711F, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x80717A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x807215, "SKY UK LIMITED", "SKY-UK" }, { 0x807264, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x80739F, "KYOCERA CORPORATION", "KYOCERA" }, { 0x807459, "K's Co.,Ltd.", "K-S" }, { 0x807484, "ALL Winner (Hong Kong) Limited", "ALL-WINNER-HONG-KONG" }, { 0x80751F, "SKY UK LIMITED", "SKY-UK" }, { 0x807677, "hangzhou puwell cloud tech co., ltd.", "HANGZHOU-PUWELL-CLOUD-TECH" }, { 0x807693, "Newag SA", "NEWAG" }, { 0x8076C2, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0x8077A4, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x807871, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x80795D, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0x8079AE, "ShanDong Tecsunrise Co.,Ltd", "SHANDONG-TECSUNRISE" }, { 0x807A7F, "ABB Genway Xiamen Electrical Equipment CO., LTD", "ABB-GENWAY-XIAMEN-ELECTRICAL-EQUIPMENT" }, { 0x807ABF, "HTC Corporation", "HTC" }, { 0x807B1E, "Corsair Memory, Inc.", "CORSAIR-MEMORY" }, { 0x807B3E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x807B85, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x807C62, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x807D14, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x807D1B, "Neosystem Co. Ltd.", "NEOSYSTEM" }, { 0x807D3A, "Espressif Inc.", "ESPRESSIF" }, { 0x807DE3, "Chongqing Sichuan Instrument Microcircuit Co.LTD.", "CHONGQING-SICHUAN-INSTRUMENT-MICROCIRCUIT" }, { 0x807EB4, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x807FF8, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x80802C, "Fortinet, Inc.", "FORTINET" }, { 0x8081A5, "TONGQING COMMUNICATION EQUIPMENT (SHENZHEN) Co.,Ltd", "TONGQING-COMMUNICATION-EQUIPMENT-SHENZHEN" }, { 0x808223, "Apple, Inc.", "APPLE" }, { 0x808287, "ATCOM Technology Co.Ltd.", "ATCOM" }, { 0x8082F5, "STMicrolectronics International NV", "STMICROLECTRONICS-NV" }, { 0x8084A9, "oshkosh Corporation", "OSHKOSH" }, { 0x808698, "Netronics Technologies Inc.", "NETRONICS-TECHNOLOGIES" }, { 0x8086D9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8086F2, "Intel Corporate", "INTEL-CORPORATE" }, { 0x808917, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x808A8B, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x808ABD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x808AF7, "Nanoleaf", "NANOLEAF" }, { 0x808B5C, "Shenzhen Runhuicheng Technology Co., Ltd", "SHENZHEN-RUNHUICHENG" }, { 0x808C97, "Kaon Group Co., Ltd.", "KAON-GROUP" }, { 0x808DB7, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x808F1D, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x808FE8, "Intelbras", "INTELBRAS" }, { 0x80912A, "Lih Rong electronic Enterprise Co., Ltd.", "LIH-RONG" }, { 0x809133, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x8091C0, "AgileMesh, Inc.", "AGILEMESH" }, { 0x80929F, "Apple, Inc.", "APPLE" }, { 0x809393, "Xapt GmbH", "XAPT" }, { 0x80946C, "TOKYO RADAR CORPORATION", "TOKYO-RADAR" }, { 0x809562, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x809621, "Lenovo", "LENOVO" }, { 0x8096B1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x8096CA, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x80971B, "Altenergy Power System,Inc.", "ALTENERGY-POWER-SYSTEM" }, { 0x809733, "Shenzhen Elebao Technology Co., Ltd", "SHENZHEN-ELEBAO" }, { 0x809B20, "Intel Corporate", "INTEL-CORPORATE" }, { 0x809F9B, "Sichuan AI-Link Technology Co., Ltd.", "SICHUANAI-LINK" }, { 0x809FAB, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x809FF5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x80A036, "Shanghai MXCHIP Information Technology Co., Ltd.", "SHANGHAI-MXCHIP-INFORMATION" }, { 0x80A1AB, "Intellisis", "INTELLISIS" }, { 0x80A1D7, "Shanghai DareGlobal Technologies Co.,Ltd", "SHANGHAI-DAREGLOBAL-TECHNOLOGIES" }, { 0x80A235, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0x80A589, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x80A796, "Neuralink Corp.", "NEURALINK" }, { 0x80A85D, "Osterhout Design Group", "OSTERHOUT-DESIGN-GROUP" }, { 0x80A997, "Apple, Inc.", "APPLE" }, { 0x80AAA4, "USAG", "USAG" }, { 0x80AB4D, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0x80AC7C, "Sichuan AI-Link Technology Co., Ltd.", "SICHUANAI-LINK" }, { 0x80ACAC, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x80ACC8, "Phyplus Microelectronics Limited", "PHYPLUS-MICROELECTRONICS" }, { 0x80AD16, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x80AD67, "Kasda Networks Inc", "KASDA-NETWORKS" }, { 0x80AFCA, "Shenzhen Cudy Technology Co., Ltd.", "SHENZHEN-CUDY" }, { 0x80B03D, "Apple, Inc.", "APPLE" }, { 0x80B07B, "zte corporation", "ZTE" }, { 0x80B219, "ELEKTRON TECHNOLOGY UK LIMITED", "ELEKTRON-UK" }, { 0x80B234, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x80B289, "Forworld Electronics Ltd.", "FORWORLD-ELECTRONICS" }, { 0x80B32A, "UK Grid Solutions Ltd", "UK-GRID-SOLUTIONS" }, { 0x80B575, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x80B624, "IVS", "IVS" }, { 0x80B655, "Intel Corporate", "INTEL-CORPORATE" }, { 0x80B686, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x80B708, "Blue Danube Systems, Inc", "BLUE-DANUBE" }, { 0x80B709, "Viptela, Inc", "VIPTELA" }, { 0x80B745, "The Silk Technologies ILC LTD", "THE-SILK-TECHNOLOGIES-ILC" }, { 0x80B946, "Nokia", "NOKIA" }, { 0x80B95C, "ELFTECH Co., Ltd.", "ELFTECH" }, { 0x80B97A, "eero inc.", "EERO" }, { 0x80B989, "Apple, Inc.", "APPLE" }, { 0x80BAAC, "TeleAdapt Ltd", "TELEADAPT" }, { 0x80BAE6, "Neets", "NEETS" }, { 0x80BBEB, "Satmap Systems Ltd", "SATMAP" }, { 0x80BC37, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x80BE05, "Apple, Inc.", "APPLE" }, { 0x80BEAF, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x80C16E, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x80C3BA, "Sonova Consumer Hearing GmbH", "SONOVA-CONSUMER-HEARING" }, { 0x80C41B, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x80C45D, "IPG Laser GmbH", "IPG-LASER" }, { 0x80C501, "OctoGate IT Security Systems GmbH", "OCTOGATE-IT-SECURITY" }, { 0x80C548, "Shenzhen Zowee Technology Co.,Ltd", "SHENZHEN-ZOWEE" }, { 0x80C5E6, "Microsoft Corporation", "MICROSOFT" }, { 0x80C5F2, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x80C63F, "Remec Broadband Wireless , LLC", "REMEC-BROADBAND-WIRELESS" }, { 0x80C6AB, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x80C6CA, "Endian s.r.l.", "ENDIAN" }, { 0x80C755, "Panasonic Appliances Company", "PANASONIC-APPLIANCES-COMPANY" }, { 0x80C7C5, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x80C862, "Openpeak, Inc", "OPENPEAK" }, { 0x80C955, "Redpine Signals, Inc.", "REDPINE-SIGNALS" }, { 0x80CA4B, "SHENZHEN GONGJIN ELECTRONICS CO.,LTD", "SHENZHEN-GONGJIN-ELECTRONICS" }, { 0x80CBBC, "Qingdao Intelligent&Precise Electronics Co.,Ltd.", "QINGDAO-INTELLIGENT-PRECISE-ELECTRONICS" }, { 0x80CC12, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x80CC9C, "NETGEAR", "NETGEAR" }, { 0x80CE62, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x80CEB1, "Theissen Training Systems GmbH", "THEISSEN-TRAINING" }, { 0x80CEB9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x80CF41, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0x80CFA2, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x80D019, "Embed, Inc", "EMBED" }, { 0x80D04A, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x80D065, "CKS Corporation", "CKS" }, { 0x80D09B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x80D160, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x80D18B, "Hangzhou I'converge Technology Co.,Ltd", "HANGZHOU-I-CONVERGE" }, { 0x80D21D, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x80D266, "ScaleFlux", "SCALEFLUX" }, { 0x80D2E5, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x80D336, "CERN", "CERN" }, { 0x80D433, "LzLabs GmbH", "LZLABS" }, { 0x80D4A5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x80D605, "Apple, Inc.", "APPLE" }, { 0x80D733, "QSR Automations, Inc.", "QSR-AUTOMATIONS" }, { 0x80DA13, "eero inc.", "EERO" }, { 0x80DABC, "Megafone Limited", "MEGAFONE" }, { 0x80DAC2, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x80DB17, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x80DB31, "Power Quotient International Co., Ltd.", "POWER-QUOTIENT" }, { 0x80DECC, "HYBE Co.,LTD", "HYBE" }, { 0x80E01D, "Cisco Systems, Inc", "CISCO" }, { 0x80E1BF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x80E455, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x80E4DA, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x80E540, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x80E650, "Apple, Inc.", "APPLE" }, { 0x80E82C, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x80E86F, "Cisco Systems, Inc", "CISCO" }, { 0x80EA07, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x80EA23, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x80EA96, "Apple, Inc.", "APPLE" }, { 0x80EACA, "Dialog Semiconductor Hellas SA", "DIALOG-SEMICONDUCTOR-HELLAS" }, { 0x80EB77, "Wistron Corporation", "WISTRON" }, { 0x80ED2C, "Apple, Inc.", "APPLE" }, { 0x80EE25, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x80EE73, "Shuttle Inc.", "SHUTTLE" }, { 0x80F0CF, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x80F1A4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x80F1F1, "Tech4home, Lda", "TECH4HOME-LDA" }, { 0x80F25E, "Kyynel", "KYYNEL" }, { 0x80F3EF, "Meta Platforms Technologies, LLC", "META-PLATFORMS-TECHNOLOGIES" }, { 0x80F503, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x80F593, "IRCO Sistemas de Telecomunicación S.A.", "IRCO-SISTEMAS-DE-TELECOMUNICACIN" }, { 0x80F5B5, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x80F62E, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x80F7A6, "Shenzhen C-Data Technology Co., Ltd.", "SHENZHEN-C-DATA" }, { 0x80F8EB, "RayTight", "RAYTIGHT" }, { 0x80FA5B, "CLEVO CO.", "CLEVO" }, { 0x80FB06, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x80FBF0, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0x80FBF1, "Freescale Semiconductor (China) Ltd.", "FREESCALE-SEMICONDUCTOR-CHINA" }, { 0x80FD7A, "BLU Products Inc", "BLU-PRODUCTS" }, { 0x80FD7B, "BLU Products Inc", "BLU-PRODUCTS" }, { 0x80FFA8, "UNIDIS", "UNIDIS" }, { 0x84002D, "PEGATRON CORPORATION", "PEGATRON" }, { 0x8400D2, "Sony Corporation", "SONY" }, { 0x840112, "Kaon Group Co., Ltd.", "KAON-GROUP" }, { 0x8401A7, "Greyware Automation Products, Inc", "GREYWARE-AUTOMATION-PRODUCTS" }, { 0x840283, "HUMAX Co., Ltd.", "HUMAX" }, { 0x840328, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x8404D2, "Kirale Technologies SL", "KIRALE-TECHNOLOGIES-SL" }, { 0x8406FA, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x8407C4, "Carrier Corporation", "CARRIER" }, { 0x840B2D, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0x840B7C, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x840BBB, "MitraStar Technology Corp.", "MITRASTAR" }, { 0x840D8E, "Espressif Inc.", "ESPRESSIF" }, { 0x840F2A, "Jiangxi Risound Electronics Co., LTD", "JIANGXI-RISOUND-ELECTRONICS" }, { 0x840F45, "Shanghai GMT Digital Technologies Co., Ltd", "SHANGHAI-GMT-DIGITAL-TECHNOLOGIES" }, { 0x84100D, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x84119E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8411C2, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x84139F, "zte corporation", "ZTE" }, { 0x84144D, "Intel Corporate", "INTEL-CORPORATE" }, { 0x8415D3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x84160C, "Broadcom Limited", "BROADCOM" }, { 0x8416F9, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x841715, "GP Electronics (HK) Ltd.", "GP-ELECTRONICS-HK" }, { 0x841766, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0x8417EF, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x841826, "Osram GmbH", "OSRAM" }, { 0x84183A, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x841888, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x841B38, "Shenzhen Excelsecu Data Technology Co.,Ltd", "SHENZHEN-EXCELSECU-DATA" }, { 0x841B5E, "NETGEAR", "NETGEAR" }, { 0x841B77, "Intel Corporate", "INTEL-CORPORATE" }, { 0x841C70, "zte corporation", "ZTE" }, { 0x841E26, "KERNEL-I Co.,LTD", "KERNEL-I" }, { 0x841EA3, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x842096, "SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.", "SHENZHEN-RF-LINK" }, { 0x842141, "Shenzhen Ginwave Technologies Ltd.", "SHENZHEN-GINWAVE-TECHNOLOGIES" }, { 0x8421F1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x84225E, "SHENZHEN TECHNEWCHIP TECHNOLOGY CO.,LTD.", "SHENZHEN-TECHNEWCHIP" }, { 0x842289, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x842388, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x84248D, "Zebra Technologies Inc", "ZEBRA-TECHNOLOGIES" }, { 0x842519, "Samsung Electronics", "SAMSUNG-ELECTRONICS" }, { 0x84253F, "silex technology, Inc.", "SILEX" }, { 0x8425A4, "Tariox Limited", "TARIOX" }, { 0x8425DB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x842615, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0x84262B, "Nokia", "NOKIA" }, { 0x84267A, "GUANGDONG TAIDE ZHILIAN TECHNOLOGY CO.,LTD", "GUANGDONG-TAIDE-ZHILIAN" }, { 0x842690, "BEIJING THOUGHT SCIENCE CO.,LTD.", "BEIJING-THOUGHT-SCIENCE" }, { 0x8427B6, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0x8427CE, "Corporation of the Presiding Bishop of The Church of Jesus Christ of Latter-day Saints", "OF-THE-PRESIDING-BISHOP-OF-THE-CHURCH-OF-JESUS-CHRIST-OF-LATTER-DAY-SAINTS" }, { 0x842859, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x84285A, "Saffron Solutions Inc", "SAFFRON-SOLUTIONS" }, { 0x842914, "EMPORIA TELECOM Produktions- und VertriebsgesmbH & Co KG", "EMPORIA-TELECOM-PRODUKTIONS-UND-VERTRIEBSGESMBH" }, { 0x842999, "Apple, Inc.", "APPLE" }, { 0x842AFD, "HP Inc.", "HP" }, { 0x842B2B, "Dell Inc.", "DELL" }, { 0x842B50, "Huria Co.,Ltd.", "HURIA" }, { 0x842BBC, "Modelleisenbahn GmbH", "MODELLEISENBAHN" }, { 0x842C80, "Sichuan Changhong Electric Ltd.", "SICHUAN-CHANGHONG-ELECTRIC" }, { 0x842E14, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x842E27, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x842F75, "Innokas Group", "INNOKAS-GROUP" }, { 0x843095, "Hon Hai Precision IND.CO.,LTD", "HON-HAI-PRECISION-IND" }, { 0x8430CE, "Shenzhen Jaguar Microsystems Co., Ltd", "SHENZHEN-JAGUAR-MICROSYSTEMS" }, { 0x8430E5, "SkyHawke Technologies, LLC", "SKYHAWKE-TECHNOLOGIES" }, { 0x84326F, "GUANGZHOU AVA ELECTRONICS TECHNOLOGY CO.,LTD", "GUANGZHOU-AVA-ELECTRONICS" }, { 0x8432EA, "ANHUI WANZTEN P&T CO., LTD", "ANHUI-WANZTEN-P-T" }, { 0x843497, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x843611, "hyungseul publishing networks", "HYUNGSEUL-PUBLISHING-NETWORKS" }, { 0x8437D5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x843835, "Apple, Inc.", "APPLE" }, { 0x843838, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x84398F, "Fortinet, Inc.", "FORTINET" }, { 0x843A4B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x843A5B, "Inventec(Chongqing) Corporation", "INVENTEC-CHONGQING" }, { 0x843B10, "LVSWITCHES INC.", "LVSWITCHES" }, { 0x843C4C, "Robert Bosch SRL", "ROBERT-BOSCH-SRL" }, { 0x843C99, "zte corporation", "ZTE" }, { 0x843DC6, "Cisco Systems, Inc", "CISCO" }, { 0x843E1D, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x843E79, "Shenzhen Belon Technology CO.,LTD", "SHENZHEN-BELON" }, { 0x843E92, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x843F4E, "Tri-Tech Manufacturing, Inc.", "TRI-TECH-MANUFACTURING" }, { 0x844076, "Drivenets", "DRIVENETS" }, { 0x844167, "Apple, Inc.", "APPLE" }, { 0x844464, "ServerU Inc", "SERVERU" }, { 0x8444AF, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0x844693, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x8446FE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x844709, "Shenzhen IP3 Century Intelligent Technology CO.,Ltd", "SHENZHEN-IP3-CENTURY-INTELLIGENT" }, { 0x844765, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x844823, "WOXTER TECHNOLOGY Co. Ltd", "WOXTER" }, { 0x844915, "vArmour Networks, Inc.", "VARMOUR-NETWORKS" }, { 0x844BB7, "Beijing Sankuai Online Technology Co.,Ltd", "BEIJING-SANKUAI-ONLINE" }, { 0x844BF5, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x844DBE, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x844F03, "Ablelink Electronics Ltd", "ABLELINK-ELECTRONICS" }, { 0x84509A, "Easy Soft TV Co., Ltd", "EASY-SOFT-TV" }, { 0x845181, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8454DF, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x8455A5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x84569C, "Coho Data, Inc.,", "COHO-DATA" }, { 0x845733, "Microsoft Corporation", "MICROSOFT" }, { 0x845787, "DVR C&C Co., Ltd.", "DVR-C-C" }, { 0x845A3E, "Cisco Systems, Inc", "CISCO" }, { 0x845A81, "ffly4u", "FFLY4U" }, { 0x845B12, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x845C93, "Chabrier Services", "CHABRIER-SERVICES" }, { 0x845CF3, "Intel Corporate", "INTEL-CORPORATE" }, { 0x845DD7, "Shenzhen Netcom Electronics Co.,Ltd", "SHENZHEN-NETCOM-ELECTRONICS" }, { 0x845F04, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x846082, "Hyperloop Technologies, Inc dba Virgin Hyperloop", "HYPERLOOP-TECHNOLOGIES-DBA-VIRGIN-HYPERLOOP" }, { 0x8461A0, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x846223, "Shenzhen Coship Electronics Co., Ltd.", "SHENZHEN-COSHIP-ELECTRONICS" }, { 0x8462A6, "EuroCB (Phils), Inc.", "EUROCB-PHILS" }, { 0x8463D6, "Microsoft Corporation", "MICROSOFT" }, { 0x8464DD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x846569, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x84683E, "Intel Corporate", "INTEL-CORPORATE" }, { 0x846878, "Apple, Inc.", "APPLE" }, { 0x8468C8, "TOTOLINK TECHNOLOGY INT‘L LIMITED", "TOTOLINK-INTL" }, { 0x846991, "Nokia", "NOKIA" }, { 0x846993, "HP Inc.", "HP" }, { 0x846A66, "Sumitomo Kizai Co.,Ltd.", "SUMITOMO-KIZAI" }, { 0x846AED, "Wireless Tsukamoto.,co.LTD", "WIRELESS-TSUKAMOTO" }, { 0x846B48, "ShenZhen EepuLink Co., Ltd.", "SHENZHEN-EEPULINK" }, { 0x846EB1, "Park Assist LLC", "PARK-ASSIST" }, { 0x846FCE, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x8470D7, "eero inc.", "EERO" }, { 0x847127, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x84716A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x847207, "I&C Technology", "I-C" }, { 0x847293, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x847303, "Letv Mobile and Intelligent Information Technology (Beijing) Corporation Ltd.", "LETV-MOBILE-AND-INTELLIGENT-INFORMATION-BEIJING" }, { 0x84742A, "zte corporation", "ZTE" }, { 0x847460, "zte corporation", "ZTE" }, { 0x847616, "Addat s.r.o.", "ADDAT-S-R-O" }, { 0x847637, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x847778, "Cochlear Limited", "COCHLEAR" }, { 0x84788B, "Apple, Inc.", "APPLE" }, { 0x8478AC, "Cisco Systems, Inc", "CISCO" }, { 0x847933, "profichip GmbH", "PROFICHIP" }, { 0x847973, "Shanghai Baud Data Communication Co.,Ltd.", "SHANGHAI-BAUD-DATA-COMMUNICATION" }, { 0x847A88, "HTC Corporation", "HTC" }, { 0x847AB6, "AltoBeam (China) Inc.", "ALTOBEAM-CHINA" }, { 0x847ADF, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0x847B57, "Intel Corporate", "INTEL-CORPORATE" }, { 0x847BEB, "Dell Inc.", "DELL" }, { 0x847C9B, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0x847D50, "Holley Metering Limited", "HOLLEY-METERING" }, { 0x847E40, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x847F3D, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x84802D, "Cisco Systems, Inc", "CISCO" }, { 0x848094, "Meter, Inc.", "METER" }, { 0x848102, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x8482F4, "Beijing Huasun Unicreate Technology Co., Ltd", "BEIJING-HUASUN-UNICREATE" }, { 0x848319, "Hangzhou Zero Zero Technology Co., Ltd.", "HANGZHOU-ZERO-ZERO" }, { 0x848336, "Newrun", "NEWRUN" }, { 0x848371, "Avaya Inc", "AVAYA" }, { 0x848433, "Paradox Engineering SA", "PARADOX-ENGINEERING" }, { 0x848506, "Apple, Inc.", "APPLE" }, { 0x84850A, "Hella Sonnen- und Wetterschutztechnik GmbH", "HELLA-SONNEN-UND-WETTERSCHUTZTECHNIK" }, { 0x848553, "Biznes Systema Telecom, LLC", "BIZNES-SYSTEMA-TELECOM" }, { 0x8485E6, "Guangdong Asano Technology CO.,Ltd.", "GUANGDONG-ASANO" }, { 0x848687, "weiyuantechnology", "WEIYUANTECHNOLOGY" }, { 0x8486F3, "Greenvity Communications", "GREENVITY-COMMUNICATION" }, { 0x8488E1, "Apple, Inc.", "APPLE" }, { 0x8489AD, "Apple, Inc.", "APPLE" }, { 0x8489EC, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x848A59, "Hisilicon Technologies Co., Ltd", "HISILICON-TECHNOLOGIES" }, { 0x848A8D, "Cisco Systems, Inc", "CISCO" }, { 0x848BCD, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x848C8D, "Apple, Inc.", "APPLE" }, { 0x848D84, "Rajant Corporation", "RAJANT" }, { 0x848DC7, "Cisco SPVTG", "CISCO-SPVTG" }, { 0x848DCE, "Ciena Corporation", "CIENA" }, { 0x848E0C, "Apple, Inc.", "APPLE" }, { 0x848E96, "Embertec Pty Ltd", "EMBERTEC-PTY" }, { 0x848EDF, "Sony Corporation", "SONY" }, { 0x848F69, "Dell Inc.", "DELL" }, { 0x849000, "Arnold&Richter Cine Technik GmbH & Co. Betriebs KG", "ARNOLD-RICHTER-CINE-TECHNIK-BETRIEBS" }, { 0x84900A, "Arcadyan Corporation", "ARCADYAN" }, { 0x84930C, "InCoax Networks Europe AB", "INCOAX-NETWORKS-EUROPE-AB" }, { 0x8493A0, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x8493B2, "zte corporation", "ZTE" }, { 0x84948C, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x849681, "Cathay Communication Co.,Ltd", "CATHAY-COMMUNICATION" }, { 0x8496D8, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x8497B8, "Memjet Inc.", "MEMJET" }, { 0x849866, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x849A40, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x849CA6, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x849D64, "SMC Corporation", "SMC" }, { 0x849DC2, "Shanghai MXCHIP Information Technology Co., Ltd.", "SHANGHAI-MXCHIP-INFORMATION" }, { 0x849DC5, "Centera Photonics Inc.", "CENTERA-PHOTONICS" }, { 0x849FB5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x84A06E, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x84A134, "Apple, Inc.", "APPLE" }, { 0x84A1D1, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x84A24D, "Birds Eye Systems Private Limited", "BIRDS-EYE-PRIVATE" }, { 0x84A3B5, "Propulsion systems", "PROPULSION" }, { 0x84A423, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x84A466, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x84A6C8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x84A783, "Alcatel Lucent", "ALCATEL-LUCENT" }, { 0x84A788, "Perples", "PERPLES" }, { 0x84A8E4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x84A938, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x84A93E, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x84A991, "Cyber Trans Japan Co.,Ltd.", "CYBER-TRANS-JAPAN" }, { 0x84A9C4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x84A9EA, "Career Technologies USA", "CAREER-TECHNOLOGIES-USA" }, { 0x84AA9C, "MitraStar Technology Corp.", "MITRASTAR" }, { 0x84AAA4, "SONoC Corp.", "SONOC" }, { 0x84AB1A, "Apple, Inc.", "APPLE" }, { 0x84AB26, "Tiinlab Corporation", "TIINLAB" }, { 0x84AC16, "Apple, Inc.", "APPLE" }, { 0x84AC60, "Guangxi Hesheng Electronics Co., Ltd.", "GUANGXI-HESHENG-ELECTRONICS" }, { 0x84ACA4, "Beijing Novel Super Digital TV Technology Co., Ltd", "BEIJING-NOVEL-SUPER-DIGITAL-TV" }, { 0x84ACFB, "Crouzet Automatismes", "CROUZET-AUTOMATISMES" }, { 0x84AD58, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x84AD8D, "Apple, Inc.", "APPLE" }, { 0x84AF1F, "Beat System Service Co,. Ltd.", "BEAT-SYSTEM-SERVICE" }, { 0x84AFEC, "BUFFALO.INC", "BUFFALO" }, { 0x84B153, "Apple, Inc.", "APPLE" }, { 0x84B1E4, "Apple, Inc.", "APPLE" }, { 0x84B261, "Cisco Systems, Inc", "CISCO" }, { 0x84B31B, "Kinexon GmbH", "KINEXON" }, { 0x84B386, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x84B4DB, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x84B517, "Cisco Systems, Inc", "CISCO" }, { 0x84B541, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x84B59C, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x84B630, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x84B802, "Cisco Systems, Inc", "CISCO" }, { 0x84B866, "Beijing XiaoLu technology co. LTD", "BEIJING-XIAOLU" }, { 0x84B8B8, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0x84BA20, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x84BA3B, "CANON INC.", "CANON" }, { 0x84BB69, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x84BE52, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x84C0EF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x84C1C1, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x84C2E4, "Jiangsu Qinheng Co., Ltd.", "JIANGSU-QINHENG" }, { 0x84C3E8, "Vaillant GmbH", "VAILLANT" }, { 0x84C5A6, "Intel Corporate", "INTEL-CORPORATE" }, { 0x84C692, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x84C727, "Gnodal Ltd", "GNODAL" }, { 0x84C78F, "APS Networks GmbH", "APS-NETWORKS" }, { 0x84C7A9, "C3PO S.A.", "C3PO" }, { 0x84C7EA, "Sony Corporation", "SONY" }, { 0x84C807, "ADVA Optical Networking Ltd.", "ADVA-OPTICAL-NETWORKING" }, { 0x84C8A0, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x84C8B1, "Incognito Software Systems Inc.", "INCOGNITO-SOFTWARE" }, { 0x84C9B2, "D-Link International", "D-LINK" }, { 0x84C9C6, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0x84CC63, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x84CCA8, "Espressif Inc.", "ESPRESSIF" }, { 0x84CD62, "ShenZhen IDWELL Technology CO.,Ltd", "SHENZHEN-IDWELL" }, { 0x84CFBF, "Fairphone", "FAIRPHONE" }, { 0x84D15A, "TCT mobile ltd", "TCT-MOBILE" }, { 0x84D328, "Apple, Inc.", "APPLE" }, { 0x84D32A, "IEEE 1905.1", "IEEE-1905-1" }, { 0x84D343, "Calix Inc.", "CALIX" }, { 0x84D352, "Tonly Technology Co. Ltd", "TONLY" }, { 0x84D3D5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x84D412, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x84D47E, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x84D4C8, "Widex A/S", "WIDEX-A/S" }, { 0x84D608, "Wingtech Mobile Communications Co., Ltd.", "WINGTECH-MOBILE-COMMUNICATION" }, { 0x84D6C5, "SolarEdge Technologies", "SOLAREDGE-TECHNOLOGIES" }, { 0x84D6D0, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x84D81B, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x84D931, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x84D9C8, "Unipattern Co.,", "UNIPATTERN" }, { 0x84DB2F, "Sierra Wireless, ULC", "SIERRA-WIRELESS-ULC" }, { 0x84DB9E, "Pink Nectarine Health AB", "PINK-NECTARINE-HEALTH-AB" }, { 0x84DBA4, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x84DBAC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x84DBFC, "Nokia", "NOKIA" }, { 0x84DD20, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x84DDB7, "Cilag GmbH International", "CILAG" }, { 0x84DE3D, "Crystal Vision Ltd", "CRYSTAL-VISION" }, { 0x84DF0C, "NET2GRID BV", "NET2GRID" }, { 0x84DF19, "Chuango Security Technology Corporation", "CHUANGO-SECURITY" }, { 0x84E058, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x84E0F4, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x84E323, "Green Wave Telecommunication SDN BHD", "GREEN-WAVE-TELECOMMUNICATION" }, { 0x84E327, "TAILYN TECHNOLOGIES INC", "TAILYN-TECHNOLOGIES" }, { 0x84E342, "Tuya Smart Inc.", "TUYA-SMART" }, { 0x84E4D9, "Shenzhen NEED technology Ltd.", "SHENZHEN-NEED" }, { 0x84E5D8, "Guangdong UNIPOE IoT Technology Co.,Ltd.", "GUANGDONG-UNIPOE-IOT" }, { 0x84E629, "Bluwan SA", "BLUWAN" }, { 0x84E657, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0x84E714, "Liang Herng Enterprise,Co.Ltd.", "LIANG-HERNG" }, { 0x84E892, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x84E986, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x84EA97, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0x84EA99, "Vieworks", "VIEWORKS" }, { 0x84EAED, "Roku, Inc", "ROKU" }, { 0x84EB18, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x84EB3E, "Vivint Smart Home", "VIVINT-SMART-HOME" }, { 0x84EBEF, "Cisco Systems, Inc", "CISCO" }, { 0x84ED33, "BBMC Co.,Ltd", "BBMC" }, { 0x84EEE4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x84EF18, "Intel Corporate", "INTEL-CORPORATE" }, { 0x84F117, "Newseason", "NEWSEASON" }, { 0x84F129, "Metrascale Inc.", "METRASCALE" }, { 0x84F147, "Cisco Systems, Inc", "CISCO" }, { 0x84F175, "Jiangxi Xunte Intelligent Terminal Co., Ltd", "JIANGXI-XUNTE-INTELLIGENT-TERMINAL" }, { 0x84F1D0, "EHOOME IOT PRIVATE LIMITED", "EHOOME-IOT-PRIVATE" }, { 0x84F3EB, "Espressif Inc.", "ESPRESSIF" }, { 0x84F44C, "International Integrated Systems., Inc.", "INTEGRATED" }, { 0x84F493, "OMS spol. s.r.o.", "OMS-SPOL-S-R-O" }, { 0x84F5EB, "zte corporation", "ZTE" }, { 0x84F64C, "Cross Point BV", "CROSS-POINT" }, { 0x84F6FA, "Miovision Technologies Incorporated", "MIOVISION-TECHNOLOGIES-INCORPORATED" }, { 0x84F703, "Espressif Inc.", "ESPRESSIF" }, { 0x84F883, "Luminar Technologies", "LUMINAR-TECHNOLOGIES" }, { 0x84FB43, "Central Denshi Seigyo", "CENTRAL-DENSHI-SEIGYO" }, { 0x84FCAC, "Apple, Inc.", "APPLE" }, { 0x84FCE6, "Espressif Inc.", "ESPRESSIF" }, { 0x84FCFE, "Apple, Inc.", "APPLE" }, { 0x84FD27, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x84FDD1, "Intel Corporate", "INTEL-CORPORATE" }, { 0x84FE9E, "RTC Industries, Inc.", "RTC-INDUSTRIES" }, { 0x84FEDC, "Borqs Beijing Ltd.", "BORQS-BEIJING" }, { 0x880118, "BLT Co", "BLT" }, { 0x8801F2, "Vitec System Engineering Inc.", "VITEC-SYSTEM-ENGINEERING" }, { 0x8801F9, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x88034C, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0x880355, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x8803E9, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x88074B, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x880894, "Skullcandy", "SKULLCANDY" }, { 0x880905, "MTMCommunications", "MTMCOMMUNICATIONS" }, { 0x880907, "MKT Systemtechnik GmbH & Co. KG", "MKT-SYSTEMTECHNIK" }, { 0x8809AF, "Masimo Corporation", "MASIMO" }, { 0x880AA3, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x880CE0, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x880F10, "Huami Information Technology Co.,Ltd.", "HUAMI-INFORMATION" }, { 0x880FA2, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x880FB6, "Jabil Circuits India Pvt Ltd,-EHTP unit", "JABIL-CIRCUITS-INDIA-PVT-EHTP-UNIT" }, { 0x881036, "Panodic(ShenZhen) Electronics Limted", "PANODIC-SHENZHEN-ELECTRONICS-LIMTED" }, { 0x88108F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x881196, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88123D, "Suzhou Aquila Solutions Inc.", "SUZHOU-AQUILA-SOLUTIONS" }, { 0x88124E, "Qualcomm Inc.", "QUALCOMM" }, { 0x8812AC, "HUNAN FN-LINK TECHNOLOGY LIMITED", "HUNAN-FN-LINK" }, { 0x88142B, "Protonic Holland", "PROTONIC-HOLLAND" }, { 0x881544, "Cisco Meraki", "CISCO-MERAKI" }, { 0x8815C5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x8817A3, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x8818AE, "Tamron Co., Ltd", "TAMRON" }, { 0x881908, "Apple, Inc.", "APPLE" }, { 0x881B99, "SHENZHEN XIN FEI JIA ELECTRONIC CO. LTD.", "SHENZHEN-XIN-FEI-JIA" }, { 0x881C95, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x881DFC, "Cisco Systems, Inc", "CISCO" }, { 0x881E59, "Onion Corporation", "ONION" }, { 0x881E5A, "Apple, Inc.", "APPLE" }, { 0x881FA1, "Apple, Inc.", "APPLE" }, { 0x88200D, "Apple, Inc.", "APPLE" }, { 0x882012, "LMI Technologies", "LMI-TECHNOLOGIES" }, { 0x8821E3, "Nebusens, S.L.", "NEBUSENS" }, { 0x8822B2, "Chipsea Technologies (Shenzhen) Corp.", "CHIPSEA-TECHNOLOGIES-SHENZHEN" }, { 0x88231F, "Fibocom Wireless Inc.", "FIBOCOM-WIRELESS" }, { 0x882364, "Watchnet DVR Inc", "WATCHNET-DVR" }, { 0x88238C, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x8823FE, "TTTech Computertechnik AG", "TTTECH-COMPUTERTECHNIK" }, { 0x882508, "Meta Platforms Technologies, LLC", "META-PLATFORMS-TECHNOLOGIES" }, { 0x882510, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x88252C, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x882593, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x88287D, "AltoBeam (China) Inc.", "ALTOBEAM-CHINA" }, { 0x8828B3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8828FB, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x882949, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x882950, "Netmoon Technology Co., Ltd", "NETMOON" }, { 0x88299C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x882A5E, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x882B94, "MADOKA SYSTEM Co.,Ltd.", "MADOKA-SYSTEM" }, { 0x882BD7, "ADDÉNERGIE TECHNOLOGIES", "ADDNERGIE-TECHNOLOGIES" }, { 0x882D53, "Baidu Online Network Technology (Beijing) Co., Ltd.", "BAIDU-ONLINE-NETWORK-BEIJING" }, { 0x882E5A, "storONE", "STORONE" }, { 0x882F64, "BCOM Networks Limited", "BCOM-NETWORKS" }, { 0x883037, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x88308A, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x88329B, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x883314, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x8833BE, "Ivenix, Inc.", "IVENIX" }, { 0x8834FE, "Bosch Automotive Products (Suzhou) Co. Ltd", "BOSCH-AUTOMOTIVE-PRODUCTS-SUZHOU" }, { 0x88354C, "Transics", "TRANSICS" }, { 0x8835C1, "OI ELECTRIC CO.,LTD", "OI-ELECTRIC" }, { 0x883612, "SRC Computers, LLC", "SRC-COMPUTERS" }, { 0x88365F, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x88366C, "EFM Networks", "EFM-NETWORKS" }, { 0x8836CF, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x883A30, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x883B8B, "Cheering Connection Co. Ltd.", "CHEERING-CONNECTION" }, { 0x883C1C, "MERCURY CORPORATION", "MERCURY" }, { 0x883C93, "Alcatel-Lucent Enterprise", "ALCATEL-LUCENT" }, { 0x883CC5, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x883D24, "Google, Inc.", "GOOGLE" }, { 0x883F0C, "system a.v. co., ltd.", "SYSTEM-A-V" }, { 0x883F37, "UHTEK CO., LTD.", "UHTEK" }, { 0x883F4A, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x883F99, "Siemens AG", "SIEMENS" }, { 0x883FD3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x884033, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88403B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x884067, "infomark", "INFOMARK" }, { 0x884157, "Shenzhen Atsmart Technology Co.,Ltd.", "SHENZHEN-ATSMART" }, { 0x8841C1, "ORBISAT DA AMAZONIA IND E AEROL SA", "ORBISAT-DA-AMAZONIA-IND-E-AEROL" }, { 0x8841FC, "AirTies Wireless Networks", "AIRTIES-WIRELESS-NETWORKS" }, { 0x8843E1, "Cisco Systems, Inc", "CISCO" }, { 0x884477, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8844F6, "Nokia Corporation", "NOKIA" }, { 0x884604, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x88462A, "Telechips Inc.", "TELECHIPS" }, { 0x884A18, "Opulinks", "OPULINKS" }, { 0x884A70, "Wacom Co.,Ltd.", "WACOM" }, { 0x884AEA, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x884B39, "Siemens AG, Healthcare Sector", "SIEMENS-HEALTHCARE-SECTOR" }, { 0x884CCF, "Pulzze Systems, Inc", "PULZZE" }, { 0x884D7C, "Apple, Inc.", "APPLE" }, { 0x885046, "LEAR", "LEAR" }, { 0x8850DD, "Infiniband Trade Association", "INFINIBAND-TRADE-ASSOCIATION" }, { 0x8850F6, "Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd", "SHENZHEN-JINGXUN-SOFTWARE-TELECOMMUNICATION" }, { 0x88517A, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x8851FB, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x8852EB, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x88532E, "Intel Corporate", "INTEL-CORPORATE" }, { 0x885395, "Apple, Inc.", "APPLE" }, { 0x8853D4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88541F, "Google, Inc.", "GOOGLE" }, { 0x88571D, "Seongji Industry Company", "SEONGJI-INDUSTRY-COMPANY" }, { 0x88576D, "XTA Electronics Ltd", "XTA-ELECTRONICS" }, { 0x8857EE, "BUFFALO.INC", "BUFFALO" }, { 0x8858BE, "kuosheng.com", "KUOSHENG-COM" }, { 0x885A06, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x885A85, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x885A92, "Cisco Systems, Inc", "CISCO" }, { 0x885BDD, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x885C47, "Alcatel Lucent", "ALCATEL-LUCENT" }, { 0x885D90, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x885DFB, "zte corporation", "ZTE" }, { 0x885FE8, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x88615A, "Siano Mobile Silicon Ltd.", "SIANO-MOBILE-SILICON" }, { 0x88625D, "BITNETWORKS CO.,LTD", "BITNETWORKS" }, { 0x8863DF, "Apple, Inc.", "APPLE" }, { 0x886440, "Apple, Inc.", "APPLE" }, { 0x886639, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88665A, "Apple, Inc.", "APPLE" }, { 0x8866A5, "Apple, Inc.", "APPLE" }, { 0x8867DC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88684B, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x88685C, "Shenzhen ChuangDao & Perpetual Eternal Technology Co.,Ltd", "SHENZHEN-CHUANGDAO-PERPETUAL-ETERNAL" }, { 0x88693D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x886AB1, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x886AE3, "Alpha Networks Inc.", "ALPHA-NETWORKS" }, { 0x886B0F, "Bluegiga Technologies OY", "BLUEGIGA-TECHNOLOGIES-OY" }, { 0x886B44, "Sunnovo International Limited", "SUNNOVO" }, { 0x886B6E, "Apple, Inc.", "APPLE" }, { 0x886B76, "CHINA HOPEFUL GROUP HOPEFUL ELECTRIC CO.,LTD", "CHINA-HOPEFUL-GROUP-HOPEFUL-ELECTRIC" }, { 0x886C60, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x886D2D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x886EDD, "Micronet union Technology(Chengdu)Co., Ltd.", "MICRONET-UNION-CHENGDU" }, { 0x886EE1, "Erbe Elektromedizin GmbH", "ERBE-ELEKTROMEDIZIN" }, { 0x886EEB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x886F29, "Pocketbook International SA", "POCKETBOOK" }, { 0x886FD4, "Dell Inc.", "DELL" }, { 0x887033, "Hangzhou Silan Microelectronic Inc", "HANGZHOU-SILAN-MICROELECTRONIC" }, { 0x88708C, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0x8870EF, "SC Professional Trading Co., Ltd.", "SC-PROFESSIONAL-TRADING" }, { 0x8871B1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x8871E5, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x887384, "Toshiba", "TOSHIBA" }, { 0x887398, "K2E Tekpoint", "K2E-TEKPOINT" }, { 0x887477, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x887556, "Cisco Systems, Inc", "CISCO" }, { 0x887598, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x887873, "Intel Corporate", "INTEL-CORPORATE" }, { 0x88789C, "Game Technologies SA", "GAME-TECHNOLOGIES" }, { 0x88795B, "Konka Group Co., Ltd.", "KONKA-GROUP" }, { 0x88797E, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x887A31, "Velankani Electronics Pvt. Ltd.", "VELANKANI-ELECTRONICS-PVT" }, { 0x887B2C, "zte corporation", "ZTE" }, { 0x887E25, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x887F03, "Comper Technology Investment Limited", "COMPER-INVESTMENT" }, { 0x888187, "Umeox Innovations Co.,Ltd", "UMEOX-INNOVATIONS" }, { 0x8881B9, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x888279, "Shenzhen RB-LINK Intelligent Technology Co.Ltd", "SHENZHEN-RB-LINK-INTELLIGENT" }, { 0x888322, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x88835D, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0x888603, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8886A0, "Simton Technologies, Ltd.", "SIMTON-TECHNOLOGIES" }, { 0x8886C2, "STABILO International GmbH", "STABILO" }, { 0x888717, "CANON INC.", "CANON" }, { 0x8887DD, "DarbeeVision Inc.", "DARBEEVISION" }, { 0x888914, "All Components Incorporated", "ALL-COMPONENTS-INCORPORATED" }, { 0x88892F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x888964, "GSI Electronics Inc.", "GSI-ELECTRONICS" }, { 0x888B5D, "Storage Appliance Corporation", "STORAGE-APPLIANCE" }, { 0x888C19, "Brady Corp Asia Pacific Ltd", "BRADY-ASIA-PACIFIC" }, { 0x888E68, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x888E7F, "ATOP CORPORATION", "ATOP" }, { 0x888F10, "Shenzhen Max Infinite Technology Co.,Ltd.", "SHENZHEN-MAX-INFINITE" }, { 0x888FA4, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x889009, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x88908D, "Cisco Systems, Inc", "CISCO" }, { 0x889166, "Viewcooper Corp.", "VIEWCOOPER" }, { 0x8891DD, "Racktivity", "RACKTIVITY" }, { 0x889471, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x88947E, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x88948E, "Max Weishaupt GmbH", "MAX-WEISHAUPT" }, { 0x88948F, "Xi'an Zhisensor Technologies Co.,Ltd", "XI-AN-ZHISENSOR-TECHNOLOGIES" }, { 0x8894F9, "Gemicom Technology, Inc.", "GEMICOM" }, { 0x8895B9, "Unified Packet Systems Crop", "UNIFIED-PACKET-CROP" }, { 0x88964E, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x889655, "Zitte corporation", "ZITTE" }, { 0x889676, "TTC MARCONI s.r.o.", "TTC-MARCONI-S-R-O" }, { 0x8896B6, "Global Fire Equipment S.A.", "GLOBAL-FIRE-EQUIPMENT" }, { 0x8896F2, "Valeo Schalter und Sensoren GmbH", "VALEO-SCHALTER-UND-SENSOREN" }, { 0x889746, "Sichuan AI-Link Technology Co., Ltd.", "SICHUANAI-LINK" }, { 0x889765, "exands", "EXANDS" }, { 0x8897DF, "Entrypass Corporation Sdn. Bhd.", "ENTRYPASS" }, { 0x889821, "TERAON", "TERAON" }, { 0x889B39, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x889CA6, "BTB Korea INC", "BTB-KOREA" }, { 0x889CAD, "Cisco Systems, Inc", "CISCO" }, { 0x889D98, "Allied-telesisK.K.", "ALLIED-TELESISK-K" }, { 0x889E33, "TCT mobile ltd", "TCT-MOBILE" }, { 0x889E68, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x889F6F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x889FAA, "Hella Gutmann Solutions GmbH", "HELLA-GUTMANN-SOLUTIONS" }, { 0x889FFA, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x88A084, "Formation Data Systems", "FORMATION-DATA" }, { 0x88A0BE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88A25E, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x88A2D7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88A303, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x88A3CC, "Amatis Controls", "AMATIS-CONTROLS" }, { 0x88A479, "Apple, Inc.", "APPLE" }, { 0x88A4C2, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x88A5BD, "QPCOM INC.", "QPCOM" }, { 0x88A6C6, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x88A6EF, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x88A73C, "Ragentek Technology Group", "RAGENTEK-GROUP" }, { 0x88A9A7, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x88A9B7, "Apple, Inc.", "APPLE" }, { 0x88AC9E, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x88ACC0, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x88ACC1, "Generiton Co., Ltd.", "GENERITON" }, { 0x88AD43, "PEGATRON CORPORATION", "PEGATRON" }, { 0x88ADD2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x88AE07, "Apple, Inc.", "APPLE" }, { 0x88AE1D, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x88AEDD, "EliteGroup Computer Systems Co., LTD", "ELITEGROUP" }, { 0x88AF7B, "Nanjing Powercore Tech Co.,Ltd", "NANJING-POWERCORE-TECH" }, { 0x88B111, "Intel Corporate", "INTEL-CORPORATE" }, { 0x88B168, "Delta Control GmbH", "DELTA-CONTROL" }, { 0x88B1E1, "Mojo Networks, Inc.", "MOJO-NETWORKS" }, { 0x88B291, "Apple, Inc.", "APPLE" }, { 0x88B362, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0x88B436, "FUJIFILM Corporation", "FUJIFILM" }, { 0x88B4A6, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x88B4BE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88B5FF, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0x88B627, "Gembird Europe BV", "GEMBIRD-EUROPE" }, { 0x88B66B, "easynetworks", "EASYNETWORKS" }, { 0x88B6BD, "Flaircomm Microelectronics, Inc.", "FLAIRCOMM-MICROELECTRONICS" }, { 0x88B6EE, "Dish Technologies Corp", "DISH-TECHNOLOGIES" }, { 0x88B863, "HISENSE VISUAL TECHNOLOGY CO.,LTD", "HISENSE-VISUAL" }, { 0x88B86F, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0x88B8D0, "Dongguan Koppo Electronic Co.,Ltd", "DONGGUAN-KOPPO" }, { 0x88B945, "Apple, Inc.", "APPLE" }, { 0x88BA7F, "Qfiednet Co., Ltd.", "QFIEDNET" }, { 0x88BCC1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88BD45, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x88BD78, "Flaircomm Microelectronics,Inc.", "FLAIRCOMM-MICROELECTRONICS" }, { 0x88BFD5, "Simple Audio Ltd", "SIMPLE-AUDIO" }, { 0x88BFE4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88C08B, "Apple, Inc.", "APPLE" }, { 0x88C174, "zte corporation", "ZTE" }, { 0x88C227, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88C242, "Poynt Co.", "POYNT" }, { 0x88C255, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x88C36E, "Beijing Ereneben lnformation Technology Limited", "BEIJING-ERENEBEN-LNFORMATION" }, { 0x88C397, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x88C3B3, "SOVICO", "SOVICO" }, { 0x88C3E5, "Betop Techonologies", "BETOP-TECHONOLOGIES" }, { 0x88C626, "Logitech, Inc", "LOGITECH" }, { 0x88C663, "Apple, Inc.", "APPLE" }, { 0x88C6E8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88C9B3, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x88C9D0, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x88C9E8, "Sony Corporation", "SONY" }, { 0x88CB87, "Apple, Inc.", "APPLE" }, { 0x88CBA5, "Suzhou Torchstar Intelligent Technology Co.,Ltd", "SUZHOU-TORCHSTAR-INTELLIGENT" }, { 0x88CC45, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0x88CE3F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88CEFA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88CF98, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88D039, "Tonly Technology Co. Ltd", "TONLY" }, { 0x88D171, "BEGHELLI S.P.A", "BEGHELLI" }, { 0x88D199, "Vencer Co., Ltd.", "VENCER" }, { 0x88D211, "Eko Devices, Inc.", "EKO-DEVICES" }, { 0x88D274, "zte corporation", "ZTE" }, { 0x88D2BF, "German Autolabs", "GERMAN-AUTOLABS" }, { 0x88D37B, "FirmTek, LLC", "FIRMTEK" }, { 0x88D50C, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x88D5A8, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x88D652, "AMERGINT Technologies", "AMERGINT-TECHNOLOGIES" }, { 0x88D7BC, "DEP Company", "DEP-COMPANY" }, { 0x88D7F6, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x88D82E, "Intel Corporate", "INTEL-CORPORATE" }, { 0x88D962, "Canopus Systems US LLC", "CANOPUS-US" }, { 0x88D98F, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x88DA1A, "Redpine Signals, Inc.", "REDPINE-SIGNALS" }, { 0x88DA33, "Beijing Xiaoyuer Network Technology Co., Ltd", "BEIJING-XIAOYUER-NETWORK" }, { 0x88DC96, "EnGenius Technologies, Inc.", "ENGENIUS-TECHNOLOGIES" }, { 0x88DD79, "Voltaire", "VOLTAIRE" }, { 0x88DE7C, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x88DEA9, "Roku, Inc.", "ROKU" }, { 0x88DF9E, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x88E034, "Shinwa industries(China) ltd.", "SHINWA-INDUSTRIES-CHINA" }, { 0x88E056, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88E0A0, "Shenzhen VisionSTOR Technologies Co., Ltd", "SHENZHEN-VISIONSTOR-TECHNOLOGIES" }, { 0x88E0F3, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x88E161, "Art Beijing Science and Technology Development Co., Ltd.", "ART-BEIJING-SCIENCE-AND-DEVELOPMENT" }, { 0x88E3AB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88E603, "Avotek corporation", "AVOTEK" }, { 0x88E628, "Shenzhen Kezhonglong Optoelectronic Technology Co.,Ltd", "SHENZHEN-KEZHONGLONG-OPTOELECTRONIC" }, { 0x88E64B, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x88E712, "Whirlpool Corporation", "WHIRLPOOL" }, { 0x88E7A6, "iKnowledge Integration Corp.", "IKNOWLEDGE-INTEGRATION" }, { 0x88E87F, "Apple, Inc.", "APPLE" }, { 0x88E8F8, "YONG TAI ELECTRONIC (DONGGUAN) LTD.", "YONG-TAI-DONGGUAN" }, { 0x88E90F, "innomdlelab", "INNOMDLELAB" }, { 0x88E917, "Tamaggo", "TAMAGGO" }, { 0x88E9A4, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x88E9FE, "Apple, Inc.", "APPLE" }, { 0x88ED1C, "Cudo Communication Co., Ltd.", "CUDO-COMMUNICATION" }, { 0x88EF16, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x88F031, "Cisco Systems, Inc", "CISCO" }, { 0x88F077, "Cisco Systems, Inc", "CISCO" }, { 0x88F2BD, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0x88F488, "cellon communications technology(shenzhen)Co.,Ltd.", "CELLON-COMMUNICATION-SHENZHEN" }, { 0x88F490, "Jetmobile Pte Ltd", "JETMOBILE-PTE" }, { 0x88F56E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88F7BF, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x88F7C7, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x88F872, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x88FC5D, "Cisco Systems, Inc", "CISCO" }, { 0x88FCA6, "devolo AG", "DEVOLO" }, { 0x88FD15, "LINEEYE CO., LTD", "LINEEYE" }, { 0x88FED6, "ShangHai WangYong Software Co., Ltd.", "SHANGHAI-WANGYONG-SOFTWARE" }, { 0x8C006D, "Apple, Inc.", "APPLE" }, { 0x8C02CD, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0x8C02FA, "COMMANDO Networks Limited", "COMMANDO-NETWORKS" }, { 0x8C04BA, "Dell Inc.", "DELL" }, { 0x8C04FF, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x8C0551, "Koubachi AG", "KOUBACHI" }, { 0x8C06CB, "Toradex AG", "TORADEX" }, { 0x8C078C, "FLOW DATA INC", "FLOW-DATA" }, { 0x8C088B, "Remote Solution", "REMOTE-SOLUTION" }, { 0x8C09F4, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x8C0C87, "Nokia", "NOKIA" }, { 0x8C0C90, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x8C0CA3, "Amper", "AMPER" }, { 0x8C0D76, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8C0E60, "Nanjing Juplink Intelligent Technologies Co., Ltd.", "NANJING-JUPLINK-INTELLIGENT-TECHNOLOGIES" }, { 0x8C0EE3, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x8C0F6F, "PEGATRON CORPORATION", "PEGATRON" }, { 0x8C0F83, "Angie Hospitality LLC", "ANGIE-HOSPITALITY" }, { 0x8C0FA0, "di-soric GmbH & Co. KG", "DI-SORIC" }, { 0x8C0FC9, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x8C0FFA, "Hutec co.,ltd", "HUTEC" }, { 0x8C10D4, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x8C11CB, "ABUS Security-Center GmbH & Co. KG", "ABUS-SECURITY-CENTER" }, { 0x8C147D, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x8C14B4, "zte corporation", "ZTE" }, { 0x8C1553, "Beijing Memblaze Technology Co Ltd", "BEIJING-MEMBLAZE" }, { 0x8C15C7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8C1645, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x8C1759, "Intel Corporate", "INTEL-CORPORATE" }, { 0x8C17B6, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x8C1850, "China Mobile (Hangzhou) Information Technology Co., Ltd.", "CHINA-MOBILE-HANGZHOU-INFORMATION" }, { 0x8C18D9, "Shenzhen RF Technology Co., Ltd", "SHENZHEN-RF" }, { 0x8C192D, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x8C19B5, "Arcadyan Corporation", "ARCADYAN" }, { 0x8C1ABF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8C1AF3, "Shenzhen Gooxi Information Security CO.,Ltd.", "SHENZHEN-GOOXI-INFORMATION-SECURITY" }, { 0x8C1CDA, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x8C1D96, "Intel Corporate", "INTEL-CORPORATE" }, { 0x8C1E80, "Cisco Systems, Inc", "CISCO" }, { 0x8C1ED9, "Beijing Unigroup Tsingteng Microsystem Co., LTD.", "BEIJING-UNIGROUP-TSINGTENG-MICROSYSTEM" }, { 0x8C1F64, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x8C1F94, "RF Surgical System Inc.", "RF-SURGICAL-SYSTEM" }, { 0x8C210A, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x8C2505, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8C255E, "VoltServer", "VOLTSERVER" }, { 0x8C271D, "QuantHouse", "QUANTHOUSE" }, { 0x8C278A, "Vocollect Inc", "VOCOLLECT" }, { 0x8C2937, "Apple, Inc.", "APPLE" }, { 0x8C2A8E, "DongGuan Ramaxel Memory Technology", "DONGGUAN-RAMAXEL-MEMORY" }, { 0x8C2DAA, "Apple, Inc.", "APPLE" }, { 0x8C2F39, "IBA Dosimetry GmbH", "IBA-DOSIMETRY" }, { 0x8C2FA6, "Solid Optics B.V.", "SOLID-OPTICS-B-V" }, { 0x8C31E2, "DAYOUPLUS", "DAYOUPLUS" }, { 0x8C3330, "EmFirst Co., Ltd.", "EMFIRST" }, { 0x8C3357, "HiteVision Digital Media Technology Co.,Ltd.", "HITEVISION-DIGITAL-MEDIA" }, { 0x8C3401, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x8C3446, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x8C34FD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8C3579, "QDIQO Sp. z o.o.", "QDIQO-SP-Z-O-O" }, { 0x8C3592, "Guangzhou Shiyuan Electronic Technology Company Limited", "GUANGZHOU-SHIYUAN-COMPANY" }, { 0x8C367A, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x8C395C, "Bit4id Srl", "BIT4ID-SRL" }, { 0x8C3A7E, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x8C3AE3, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x8C3B32, "Microfan B.V.", "MICROFAN-B-V" }, { 0x8C3B4A, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0x8C3BAD, "NETGEAR", "NETGEAR" }, { 0x8C3C07, "Skiva Technologies, Inc.", "SKIVA-TECHNOLOGIES" }, { 0x8C3C4A, "NAKAYO Inc", "NAKAYO" }, { 0x8C3DB1, "Beijing H-IoT Technology Co., Ltd.", "BEIJING-H-IOT" }, { 0x8C41F2, "RDA Technologies Ltd.", "RDA-TECHNOLOGIES" }, { 0x8C41F4, "IPmotion GmbH", "IPMOTION" }, { 0x8C426D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8C4361, "Hailo Digital Hub GmbH & Co. KG", "HAILO-DIGITAL-HUB" }, { 0x8C4435, "Shanghai BroadMobi Communication Technology Co., Ltd.", "SHANGHAI-BROADMOBI-COMMUNICATION" }, { 0x8C444F, "HUMAX Co., Ltd.", "HUMAX" }, { 0x8C4500, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x8C476E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x8C477F, "NambooSolution", "NAMBOOSOLUTION" }, { 0x8C47BE, "Dell Inc.", "DELL" }, { 0x8C4962, "Roku, Inc", "ROKU" }, { 0x8C497A, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x8C49B6, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x8C4AEE, "GIGA TMS INC", "GIGA-TMS" }, { 0x8C4B14, "Espressif Inc.", "ESPRESSIF" }, { 0x8C4B59, "3D Imaging & Simulations Corp", "3D-IMAGING-SIMULATIONS" }, { 0x8C4CAD, "Evoluzn Inc.", "EVOLUZN" }, { 0x8C4CDC, "PLANEX COMMUNICATIONS INC.", "PLANEX-COMMUNICATION" }, { 0x8C4DB9, "Unmonday Ltd", "UNMONDAY" }, { 0x8C4DEA, "Cerio Corporation", "CERIO" }, { 0x8C5105, "Shenzhen ireadygo Information Technology CO.,LTD.", "SHENZHEN-IREADYGO-INFORMATION" }, { 0x8C5109, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x8C5219, "SHARP Corporation", "SHARP" }, { 0x8C53C3, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x8C53D2, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x8C53E6, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x8C53F7, "A&D ENGINEERING CO., LTD.", "A-D-ENGINEERING" }, { 0x8C541D, "LGE", "LGE" }, { 0x8C554A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x8C55BB, "Songwoo Information & Technology Co., Ltd", "SONGWOO-INFORMATION" }, { 0x8C5646, "LG Electronics", "LG-ELECTRONICS" }, { 0x8C569D, "Imaging Solutions Group", "IMAGING-SOLUTIONS-GROUP" }, { 0x8C56C5, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x8C579B, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x8C57FD, "LVX Western", "LVX-WESTERN" }, { 0x8C5877, "Apple, Inc.", "APPLE" }, { 0x8C593C, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x8C5973, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x8C598B, "C Technologies AB", "C-TECHNOLOGIES-AB" }, { 0x8C59C3, "ADB Italia", "ADB-ITALIA" }, { 0x8C59DC, "ASR Microelectronics (Shanghai) Co., Ltd.", "ASR-MICROELECTRONICS-SHANGHAI" }, { 0x8C5A25, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x8C5AC1, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x8C5AF0, "Exeltech Solar Products", "EXELTECH-SOLAR-PRODUCTS" }, { 0x8C5AF8, "Beijing Xiaomi Electronics Co., Ltd.", "BEIJING-XIAOMI-ELECTRONICS" }, { 0x8C5BF0, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x8C5CA1, "d-broad,INC", "D-BROAD" }, { 0x8C5D60, "UCI Corporation Co.,Ltd.", "UCI" }, { 0x8C5DB2, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x8C5EBD, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x8C5F48, "Continental Intelligent Transportation Systems LLC", "CONTINENTAL-INTELLIGENT-TRANSPORTATION" }, { 0x8C5FAD, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x8C5FDF, "Beijing Railway Signal Factory", "BEIJING-RAILWAY-SIGNAL-FACTORY" }, { 0x8C604F, "Cisco Systems, Inc", "CISCO" }, { 0x8C6078, "Swissbit AG", "SWISSBIT" }, { 0x8C60E7, "MPGIO CO.,LTD", "MPGIO" }, { 0x8C6102, "Beijing Baofengmojing Technologies Co., Ltd", "BEIJING-BAOFENGMOJING-TECHNOLOGIES" }, { 0x8C61A3, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x8C640B, "Beyond Devices d.o.o.", "BEYOND-DEVICES-D-O-O" }, { 0x8C6422, "Sony Corporation", "SONY" }, { 0x8C64A2, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0x8C64D4, "Hyeco Smart Tech Co.,Ltd", "HYECO-SMART-TECH" }, { 0x8C6794, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x8C683A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8C6878, "Nortek-AS", "NORTEK-AS" }, { 0x8C68C8, "zte corporation", "ZTE" }, { 0x8C6A3B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8C6A8D, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x8C6AE4, "Viogem Limited", "VIOGEM" }, { 0x8C6BDB, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x8C6D50, "SHENZHEN MTC CO LTD", "SHENZHEN-MTC" }, { 0x8C6D77, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8C6DC4, "Megapixel VR", "MEGAPIXEL-VR" }, { 0x8C6FB9, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x8C705A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x8C7086, "Gesellschaft für Sonder-EDV-Anlagen mbH", "GESELLSCHAFT-FUER-SONDER-EDV-ANLAGEN" }, { 0x8C71F8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8C736E, "FUJITSU LIMITED", "FUJITSU" }, { 0x8C73A0, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x8C763F, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x8C76C1, "Goden Tech Limited", "GODEN-TECH" }, { 0x8C7712, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8C7716, "LONGCHEER TELECOMMUNICATION LIMITED", "LONGCHEER-TELECOMMUNICATION" }, { 0x8C78D7, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0x8C7909, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x8C7967, "zte corporation", "ZTE" }, { 0x8C79F5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8C7A00, "Nokia", "NOKIA" }, { 0x8C7A15, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x8C7A3D, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x8C7AAA, "Apple, Inc.", "APPLE" }, { 0x8C7B9D, "Apple, Inc.", "APPLE" }, { 0x8C7BF0, "Xufeng Development Limited", "XUFENG-DEVELOPMENT" }, { 0x8C7C92, "Apple, Inc.", "APPLE" }, { 0x8C7CB5, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x8C7CFF, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0x8C7EB3, "Lytro, Inc.", "LYTRO" }, { 0x8C7F3B, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x8C8126, "ARCOM", "ARCOM" }, { 0x8C8172, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x8C82A8, "Insigma Technology Co.,Ltd", "INSIGMA" }, { 0x8C839D, "SHENZHEN XINYUPENG ELECTRONIC TECHNOLOGY CO., LTD", "SHENZHEN-XINYUPENG" }, { 0x8C83DF, "Nokia", "NOKIA" }, { 0x8C83E1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8C83E8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8C83FC, "Axioma Metering UAB", "AXIOMA-METERING-UAB" }, { 0x8C8401, "Private", "PRIVATE" }, { 0x8C8442, "Cisco Systems, Inc", "CISCO" }, { 0x8C8580, "Smart Innovation LLC", "SMART-INNOVATION" }, { 0x8C8590, "Apple, Inc.", "APPLE" }, { 0x8C85C1, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x8C85E6, "Cleondris GmbH", "CLEONDRIS" }, { 0x8C861E, "Apple, Inc.", "APPLE" }, { 0x8C873B, "Leica Camera AG", "LEICA-CAMERA" }, { 0x8C897A, "AUGTEK", "AUGTEK" }, { 0x8C89A5, "Micro-Star INT'L CO., LTD", "MICRO-STAR" }, { 0x8C89FA, "Zhejiang Hechuan Technology Co., Ltd.", "ZHEJIANG-HECHUAN" }, { 0x8C8A6E, "ESTUN AUTOMATION TECHNOLOY CO., LTD", "ESTUN-AUTOMATION-TECHNOLOY" }, { 0x8C8ABB, "Beijing Orient View Technology Co., Ltd.", "BEIJING-ORIENT-VIEW" }, { 0x8C8B83, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x8C8CAA, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x8C8D28, "Intel Corporate", "INTEL-CORPORATE" }, { 0x8C8E0D, "zte corporation", "ZTE" }, { 0x8C8E76, "taskit GmbH", "TASKIT" }, { 0x8C8EF2, "Apple, Inc.", "APPLE" }, { 0x8C8F8B, "China Mobile Chongqing branch", "CHINA-MOBILE-CHONGQING-BRANCH" }, { 0x8C8FE9, "Apple, Inc.", "APPLE" }, { 0x8C90D3, "Nokia", "NOKIA" }, { 0x8C9109, "Toyoshima Electric Technoeogy(Suzhou) Co.,Ltd.", "TOYOSHIMA-ELECTRIC-TECHNOEOGY-SUZHOU" }, { 0x8C9236, "Aus.Linx Technology Co., Ltd.", "AUS-LINX" }, { 0x8C9246, "Oerlikon Textile Gmbh&Co.KG", "OERLIKON-TEXTILE" }, { 0x8C9351, "Jigowatts Inc.", "JIGOWATTS" }, { 0x8C941F, "Cisco Systems, Inc", "CISCO" }, { 0x8C946A, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x8C94CC, "SFR", "SFR" }, { 0x8C94CF, "Encell Technology, Inc.", "ENCELL" }, { 0x8C965F, "Shandong Zhongan Technology Co., Ltd.", "SHANDONG-ZHONGAN" }, { 0x8C97EA, "FREEBOX SAS", "FREEBOX-SAS" }, { 0x8C9806, "SHENZHEN SEI ROBOTICS CO.,LTD", "SHENZHEN-SEI-ROBOTICS" }, { 0x8C986B, "Apple, Inc.", "APPLE" }, { 0x8C99E6, "TCT mobile ltd", "TCT-MOBILE" }, { 0x8C9F3B, "Qingdao Hisense Communications Co.,Ltd.", "QINGDAO-HISENSE-COMMUNICATION" }, { 0x8CA048, "Beijing NeTopChip Technology Co.,LTD", "BEIJING-NETOPCHIP" }, { 0x8CA2FD, "Starry, Inc.", "STARRY" }, { 0x8CA399, "SERVERCOM (INDIA) PRIVATE LIMITED", "SERVERCOM-INDIA-PRIVATE" }, { 0x8CA5A1, "Oregano Systems - Design & Consulting GmbH", "OREGANO-DESIGN-CONSULTING" }, { 0x8CA6DF, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x8CA96F, "D&M Holdings Inc.", "D-M-HOLDINGS" }, { 0x8CA982, "Intel Corporate", "INTEL-CORPORATE" }, { 0x8CAAB5, "Espressif Inc.", "ESPRESSIF" }, { 0x8CAACE, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x8CAB8E, "Shanghai Feixun Communication Co.,Ltd.", "SHANGHAI-FEIXUN-COMMUNICATION" }, { 0x8CAE49, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x8CAE4C, "Plugable Technologies", "PLUGABLE-TECHNOLOGIES" }, { 0x8CAE89, "Y-cam Solutions Ltd", "Y-CAM-SOLUTIONS" }, { 0x8CAEDB, "NAGTECH LLC", "NAGTECH" }, { 0x8CB094, "Airtech I&C Co., Ltd", "AIRTECH-I-C" }, { 0x8CB0E9, "Samsung Electronics.,LTD", "SAMSUNG-ELECTRONICS" }, { 0x8CB64F, "Cisco Systems, Inc", "CISCO" }, { 0x8CB7F7, "Shenzhen UniStrong Science & Technology Co., Ltd", "SHENZHEN-UNISTRONG-SCIENCE" }, { 0x8CB82C, "IPitomy Communications", "IPITOMY-COMMUNICATION" }, { 0x8CB84A, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x8CB864, "AcSiP Technology Corp.", "ACSIP" }, { 0x8CB87E, "Intel Corporate", "INTEL-CORPORATE" }, { 0x8CBA25, "UNION MAN TECHNOLOGY CO.,LTD", "UNION-MAN" }, { 0x8CBE24, "Tashang Semiconductor(Shanghai) Co., Ltd.", "TASHANG-SEMICONDUCTOR-SHANGHAI" }, { 0x8CBEBE, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x8CBF9D, "Shanghai Xinyou Information Technology Ltd. Co.", "SHANGHAI-XINYOU-INFORMATION" }, { 0x8CBFA6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8CC121, "Panasonic Corporation AVC Networks Company", "PANASONIC-AVC-NETWORKS-COMPANY" }, { 0x8CC58C, "ShenZhen Elsky Technology Co.,LTD", "SHENZHEN-ELSKY" }, { 0x8CC5B4, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x8CC5E1, "ShenZhen Konka Telecommunication Technology Co.,Ltd", "SHENZHEN-KONKA-TELECOMMUNICATION" }, { 0x8CC661, "Current, powered by GE", "CURRENT-POWERED-BY-GE" }, { 0x8CC681, "Intel Corporate", "INTEL-CORPORATE" }, { 0x8CC7AA, "Radinet Communications Inc.", "RADINET-COMMUNICATION" }, { 0x8CC7C3, "NETLINK ICT", "NETLINK-ICT" }, { 0x8CC7D0, "zhejiang ebang communication co.,ltd", "ZHEJIANG-EBANG-COMMUNICATION" }, { 0x8CC84B, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0x8CC8CD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8CC8F4, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x8CCB14, "TBS GmbH", "TBS" }, { 0x8CCBDF, "FOXCONN INTERCONNECT TECHNOLOGY", "FOXCONN-INTERCONNECT" }, { 0x8CCDA2, "ACTP, Inc.", "ACTP" }, { 0x8CCDE8, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x8CCDFE, "AMPAK Technology,Inc.", "AMPAK" }, { 0x8CCE4E, "Espressif Inc.", "ESPRESSIF" }, { 0x8CCEFD, "Shenzhen zhouhai technology co.,LTD", "SHENZHEN-ZHOUHAI" }, { 0x8CCF09, "Dell EMC", "DELL-EMC" }, { 0x8CCF5C, "BEFEGA GmbH", "BEFEGA" }, { 0x8CCF8F, "ITC Systems", "ITC" }, { 0x8CD08B, "WuXi Rigosys Technology Co.,LTD", "WUXI-RIGOSYS" }, { 0x8CD0B2, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x8CD17B, "CG Mobile", "CG-MOBILE" }, { 0x8CD2E9, "YOKOTE SEIKO CO., LTD.", "YOKOTE-SEIKO" }, { 0x8CD3A2, "VisSim AS", "VISSIM-AS" }, { 0x8CD48E, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x8CD54A, "TAIYO YUDEN CO.,LTD", "TAIYO-YUDEN" }, { 0x8CD628, "Ikor Metering", "IKOR-METERING" }, { 0x8CD67F, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x8CD9D6, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x8CDB25, "ESG Solutions", "ESG-SOLUTIONS" }, { 0x8CDC02, "zte corporation", "ZTE" }, { 0x8CDCD4, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x8CDD8D, "Wifly-City System Inc.", "WIFLY-CITY-SYSTEM" }, { 0x8CDE52, "ISSC Technologies Corp.", "ISSC-TECHNOLOGIES" }, { 0x8CDE99, "Comlab Inc.", "COMLAB" }, { 0x8CDEE6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8CDEF9, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x8CDF2C, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x8CDF9D, "NEC Corporation", "NEC" }, { 0x8CE042, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x8CE081, "zte corporation", "ZTE" }, { 0x8CE117, "zte corporation", "ZTE" }, { 0x8CE2DA, "Circle Media Inc", "CIRCLE-MEDIA" }, { 0x8CE38E, "Kioxia Corporation", "KIOXIA" }, { 0x8CE468, "Guangzhou Sageran Technology Co., Ltd.", "GUANGZHOU-SAGERAN" }, { 0x8CE5C0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8CE5EF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8CE748, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x8CE78C, "DK Networks", "DK-NETWORKS" }, { 0x8CE7B3, "Sonardyne International Ltd", "SONARDYNE" }, { 0x8CE9B4, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0x8CEA12, "Shenzhen MiaoMing Intelligent Technology Co.,Ltd", "SHENZHEN-MIAOMING-INTELLIGENT" }, { 0x8CEA1B, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0x8CEA48, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x8CEBC6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8CEC4B, "Dell Inc.", "DELL" }, { 0x8CEC7B, "Apple, Inc.", "APPLE" }, { 0x8CEEC6, "Precepscion Pty. Ltd.", "PRECEPSCION-PTY" }, { 0x8CEEFD, "zte corporation", "ZTE" }, { 0x8CF112, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x8CF228, "MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x8CF319, "Siemens Industrial Automation Products Ltd., Chengdu", "SIEMENS-INDUSTRIAL-AUTOMATION-PRODUCTS-CHENGDU" }, { 0x8CF3E7, "solidotech", "SOLIDOTECH" }, { 0x8CF5A3, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0x8CF681, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x8CF710, "AMPAK Technology, Inc.", "AMPAK" }, { 0x8CF773, "Nokia", "NOKIA" }, { 0x8CF813, "ORANGE POLSKA", "ORANGE-POLSKA" }, { 0x8CF8C5, "Intel Corporate", "INTEL-CORPORATE" }, { 0x8CF945, "Power Automation pte Ltd", "POWER-AUTOMATION-PTE" }, { 0x8CF957, "RuiXingHengFang Network (Shenzhen) Co.,Ltd", "RUIXINGHENGFANG-NETWORK-SHENZHEN" }, { 0x8CF9C9, "MESADA Technology Co.,Ltd.", "MESADA" }, { 0x8CFABA, "Apple, Inc.", "APPLE" }, { 0x8CFADD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8CFCA0, "Shenzhen Smart Device Technology Co., LTD.", "SHENZHEN-SMART-DEVICE" }, { 0x8CFD15, "Imagine Marketing Private Limited", "IMAGINE-MARKETING-PRIVATE" }, { 0x8CFD18, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x8CFDDE, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x8CFDF0, "Qualcomm Inc.", "QUALCOMM" }, { 0x8CFE57, "Apple, Inc.", "APPLE" }, { 0x8CFE74, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x8CFEB4, "VSOONTECH ELECTRONICS CO., LIMITED", "VSOONTECH-ELECTRONICS" }, { 0x90004E, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x9000DB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x900117, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x90013B, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x900218, "SKY UK LIMITED", "SKY-UK" }, { 0x90027A, "Shenzhen Sworix Techonlogy Co., Ltd", "SHENZHEN-SWORIX-TECHONLOGY" }, { 0x90028A, "Shenzhen Shidean Legrand Electronic Products Co.,Ltd", "SHENZHEN-SHIDEAN-LEGRAND-PRODUCTS" }, { 0x9002A9, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0x900325, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x900372, "Longnan Junya Digital Technology Co. Ltd.", "LONGNAN-JUNYA-DIGITAL" }, { 0x9003B7, "PARROT SA", "PARROT" }, { 0x900628, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9006F2, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x900917, "Far-sighted mobile", "FAR-SIGHTED-MOBILE" }, { 0x9009D0, "Synology Incorporated", "SYNOLOGY-INCORPORATED" }, { 0x9009DF, "Intel Corporate", "INTEL-CORPORATE" }, { 0x900A1A, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x900A39, "Wiio, Inc.", "WIIO" }, { 0x900A3A, "PSG Plastic Service GmbH", "PSG-PLASTIC-SERVICE" }, { 0x900A62, "Inventus Power Eletronica do Brasil LTDA", "INVENTUS-POWER-ELETRONICA-DO-BRASIL-LTDA" }, { 0x900A84, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0x900BC1, "Sprocomm Technologies CO.,Ltd", "SPROCOMM-TECHNOLOGIES" }, { 0x900CB4, "Alinket Electronic Technology Co., Ltd", "ALINKET" }, { 0x900CC8, "Google, Inc.", "GOOGLE" }, { 0x900D66, "Digimore Electronics Co., Ltd", "DIGIMORE-ELECTRONICS" }, { 0x900DCB, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x900E83, "Monico Monitoring, Inc.", "MONICO-MONITORING" }, { 0x900E9E, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x900EB3, "Shenzhen Amediatech Technology Co., Ltd.", "SHENZHEN-AMEDIATECH" }, { 0x900F0C, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0x901195, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x901234, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0x9012A1, "We Corporation Inc.", "WE" }, { 0x9013DA, "Athom B.V.", "ATHOM-B-V" }, { 0x9016BA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x901711, "Hagenuk Marinekommunikation GmbH", "HAGENUK-MARINEKOMMUNIKATION" }, { 0x90173F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x90179B, "Nanomegas", "NANOMEGAS" }, { 0x9017AC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9017C8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x90185E, "Apex Tool Group GmbH & Co OHG", "APEX-TOOL-GROUP-OHG" }, { 0x90187C, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0x9018AE, "Shanghai Meridian Technologies, Co. Ltd.", "SHANGHAI-MERIDIAN-TECHNOLOGIES" }, { 0x901900, "SCS SA", "SCS" }, { 0x901A4F, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x901ACA, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x901B0E, "Fujitsu Technology Solutions GmbH", "FUJITSU-SOLUTIONS" }, { 0x901D27, "zte corporation", "ZTE" }, { 0x901EDD, "GREAT COMPUTER CORPORATION", "GREAT" }, { 0x90203A, "BYD Precision Manufacture Co.,Ltd", "BYD-PRECISION-MANUFACTURE" }, { 0x902083, "General Engine Management Systems Ltd.", "GENERAL-ENGINE-MANAGEMENT" }, { 0x9020C2, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x902106, "SKY UK LIMITED", "SKY-UK" }, { 0x902155, "HTC Corporation", "HTC" }, { 0x902181, "Shanghai Huaqin Telecom Technology Co.,Ltd", "SHANGHAI-HUAQIN-TELECOM" }, { 0x90235B, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x9023B4, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x9023EC, "Availink, Inc.", "AVAILINK" }, { 0x9025F2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x90272B, "Algorab S.r.l.", "ALGORAB" }, { 0x902759, "Nanjing Jiahao Technology Co., Ltd.", "NANJING-JIAHAO" }, { 0x902778, "Open Infrastructure", "OPEN-INFRASTRUCTURE" }, { 0x9027E4, "Apple, Inc.", "APPLE" }, { 0x902AEE, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x902B34, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x902BD2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x902CC7, "C-MAX Asia Limited", "C-MAX-ASIA" }, { 0x902CFB, "CanTops Co,.Ltd.", "CANTOPS" }, { 0x902E16, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x902E1C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x902E87, "LabJack", "LABJACK" }, { 0x90314B, "AltoBeam Inc.", "ALTOBEAM" }, { 0x9031CD, "Onyx Healthcare Inc.", "ONYX-HEALTHCARE" }, { 0x90324B, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x90342B, "Gatekeeper Systems, Inc.", "GATEKEEPER" }, { 0x9034FC, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x90356E, "Vodafone Omnitel N.V.", "VODAFONE-OMNITEL-N-V" }, { 0x9035EA, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x903809, "Ericsson AB", "ERICSSON-AB" }, { 0x90380C, "Espressif Inc.", "ESPRESSIF" }, { 0x9038DF, "Changzhou Tiannengbo System Co. Ltd.", "CHANGZHOU-TIANNENGBO-SYSTEM" }, { 0x90395E, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x90395F, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x903A72, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x903AA0, "Nokia", "NOKIA" }, { 0x903AE6, "PARROT SA", "PARROT" }, { 0x903C1D, "HISENSE VISUAL TECHNOLOGY CO.,LTD", "HISENSE-VISUAL" }, { 0x903C92, "Apple, Inc.", "APPLE" }, { 0x903CAE, "Yunnan KSEC Digital Technology Co.,Ltd.", "YUNNAN-KSEC-DIGITAL" }, { 0x903CB3, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0x903D5A, "Shenzhen Wision Technology Holding Limited", "SHENZHEN-WISION-HOLDING" }, { 0x903D68, "G-Printec, Inc.", "G-PRINTEC" }, { 0x903D6B, "Zicon Technology Corp.", "ZICON" }, { 0x903DBD, "SECURE METERS LIMITED", "SECURE-METERS" }, { 0x903E7F, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x903EAB, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x903FEA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9043E2, "Cornami, Inc", "CORNAMI" }, { 0x904506, "Tokyo Boeki Medisys Inc.", "TOKYO-BOEKI-MEDISYS" }, { 0x9046A2, "Tedipay UK Ltd", "TEDIPAY-UK" }, { 0x9046B7, "Vadaro Pte Ltd", "VADARO-PTE" }, { 0x904716, "RORZE CORPORATION", "RORZE" }, { 0x90473C, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x904846, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x90486C, "Ring LLC", "RING" }, { 0x90489A, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x904992, "YSTen Technology Co.,Ltd", "YSTEN" }, { 0x9049FA, "Intel Corporate", "INTEL-CORPORATE" }, { 0x904C81, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x904CE5, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x904D4A, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x904DC3, "Flonidan A/S", "FLONIDAN-A/S" }, { 0x904E2B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x904E91, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x90505A, "unGlue, Inc", "UNGLUE" }, { 0x90507B, "Advanced PANMOBIL Systems GmbH & Co. KG", "ADVANCED-PANMOBIL" }, { 0x9050CA, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x90513F, "Elettronica Santerno SpA", "ELETTRONICA-SANTERNO-SPA" }, { 0x9052BF, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x905446, "TES ELECTRONIC SOLUTIONS", "TES-SOLUTIONS" }, { 0x9055AE, "Ericsson, EAB/RWI/K", "ERICSSON-EAB/RWI/K" }, { 0x9055DE, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x905607, "Sichuan AI-Link Technology Co., Ltd.", "SICHUANAI-LINK" }, { 0x905682, "Lenbrook Industries Limited", "LENBROOK-INDUSTRIES" }, { 0x905692, "Autotalks Ltd.", "AUTOTALKS" }, { 0x9056FC, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0x905851, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x90593C, "AZ-TECHNOLOGY SDN BHD", "AZ" }, { 0x9059AF, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x905A08, "Super Micro Computer, Inc.", "SUPER-MICRO" }, { 0x905C34, "Sirius Electronic Systems Srl", "SIRIUS-SRL" }, { 0x905C44, "Compal Broadband Networks, Inc.", "COMPAL-BROADBAND-NETWORKS" }, { 0x905D7C, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x905E44, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x905F2E, "TCT mobile ltd", "TCT-MOBILE" }, { 0x905F8D, "modas GmbH", "MODAS" }, { 0x9060F1, "Apple, Inc.", "APPLE" }, { 0x90610C, "Fida International (S) Pte Ltd", "FIDA-S-PTE" }, { 0x9061AE, "Intel Corporate", "INTEL-CORPORATE" }, { 0x90633B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9064AD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x906560, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x906584, "Intel Corporate", "INTEL-CORPORATE" }, { 0x906717, "Alphion India Private Limited", "ALPHION-INDIA-PRIVATE" }, { 0x90671C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9067B5, "Alcatel-Lucent", "ALCATEL-LUCENT" }, { 0x9067F3, "Alcatel Lucent", "ALCATEL-LUCENT" }, { 0x9068C3, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x906976, "Withrobot Inc.", "WITHROBOT" }, { 0x906A94, "hangzhou huacheng network technology co., ltd", "HANGZHOU-HUACHENG-NETWORK" }, { 0x906AEB, "Microsoft Corporation", "MICROSOFT" }, { 0x906CAC, "Fortinet, Inc.", "FORTINET" }, { 0x906D05, "BXB ELECTRONICS CO., LTD", "BXB-ELECTRONICS" }, { 0x906D62, "Cambium Networks Limited", "CAMBIUM-NETWORKS" }, { 0x906DC8, "DLG Automação Industrial Ltda", "DLG-AUTOMAO-INDUSTRIAL-LTDA" }, { 0x906EBB, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x906F18, "Private", "PRIVATE" }, { 0x906FA9, "NANJING PUTIAN TELECOMMUNICATIONS TECHNOLOGY CO.,LTD.", "NANJING-PUTIAN-TELECOMMUNICATIONS" }, { 0x907025, "Garea Microsys Co.,Ltd.", "GAREA-MICROSYS" }, { 0x907065, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x9070D3, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x907240, "Apple, Inc.", "APPLE" }, { 0x907282, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x90735A, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x90749D, "IRay Technology Co., Ltd.", "IRAY" }, { 0x9075BC, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0x90769F, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0x9077EE, "Cisco Systems, Inc", "CISCO" }, { 0x907841, "Intel Corporate", "INTEL-CORPORATE" }, { 0x9078B2, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x907910, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x907990, "Benchmark Electronics Romania SRL", "BENCHMARK-ELECTRONICS-ROMANIA-SRL" }, { 0x9079CF, "zte corporation", "ZTE" }, { 0x907A0A, "Gebr. Bode GmbH & Co KG", "GEBR-BODE" }, { 0x907A28, "Beijing Morncloud Information And Technology Co. Ltd.", "BEIJING-MORNCLOUD-INFORMATION" }, { 0x907A58, "Zegna-Daidong Limited", "ZEGNA-DAIDONG" }, { 0x907AF1, "Wally", "WALLY" }, { 0x907BC6, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x907E30, "LARS", "LARS" }, { 0x907E43, "zte corporation", "ZTE" }, { 0x907EBA, "UTEK TECHNOLOGY (SHENZHEN) CO.,LTD", "UTEK-SHENZHEN" }, { 0x907F61, "Chicony Electronics Co., Ltd.", "CHICONY-ELECTRONICS" }, { 0x908060, "Nilfisk A/S", "NILFISK-A/S" }, { 0x90808F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x90812A, "Apple, Inc.", "APPLE" }, { 0x908158, "Apple, Inc.", "APPLE" }, { 0x908175, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x908260, "IEEE 1904.1 Working Group", "IEEE-1904-1-WORKING-GROUP" }, { 0x90834B, "BEIJING YUNYI TIMES TECHNOLOGY CO,.LTD", "BEIJING-YUNYI-TIMES" }, { 0x90837A, "General Electric Water & Process Technologies", "GENERAL-ELECTRIC-WATER-PROCESS-TECHNOLOGIES" }, { 0x90837E, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x90840D, "Apple, Inc.", "APPLE" }, { 0x90842B, "LEGO System A/S", "LEGO-SYSTEM-A/S" }, { 0x90848B, "HDR10+ Technologies, LLC", "HDR10+-TECHNOLOGIES" }, { 0x908674, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x90869B, "zte corporation", "ZTE" }, { 0x908855, "Cisco Systems, Inc", "CISCO" }, { 0x9088A2, "IONICS TECHNOLOGY ME LTDA", "IONICS-ME-LTDA" }, { 0x90895F, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0x908C09, "Total Phase", "TOTAL-PHASE" }, { 0x908C43, "Apple, Inc.", "APPLE" }, { 0x908C44, "H.K ZONGMU TECHNOLOGY CO., LTD.", "H-K-ZONGMU" }, { 0x908C63, "GZ Weedong Networks Technology Co. , Ltd", "GZ-WEEDONG-NETWORKS" }, { 0x908D1D, "GH Technologies", "GH-TECHNOLOGIES" }, { 0x908D6C, "Apple, Inc.", "APPLE" }, { 0x908D6E, "Dell Inc.", "DELL" }, { 0x908D78, "D-Link International", "D-LINK" }, { 0x908FCF, "UNO System Co., Ltd", "UNO-SYSTEM" }, { 0x90903C, "TRISON TECHNOLOGY CORPORATION", "TRISON" }, { 0x909060, "RSI VIDEO TECHNOLOGIES", "RSI-VIDEO-TECHNOLOGIES" }, { 0x909164, "ChongQing Lavid Technology Co., Ltd.", "CHONGQING-LAVID" }, { 0x9092B4, "Diehl BGT Defence GmbH & Co. KG", "DIEHL-BGT-DEFENCE" }, { 0x90935A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x90940A, "Analog Devices, Inc", "ANALOG-DEVICES" }, { 0x909497, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9094E4, "D-Link International", "D-LINK" }, { 0x9096F3, "BUFFALO.INC", "BUFFALO" }, { 0x9097D5, "Espressif Inc.", "ESPRESSIF" }, { 0x9097F3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x909838, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x909864, "Impex-Sat GmbH&Co KG", "IMPEX-SAT-AMP" }, { 0x909877, "Vestel Elektronik San ve Tic. A.S.", "VESTEL-ELEKTRONIK-SAN-VE-TIC" }, { 0x909916, "ELVEES NeoTek OJSC", "ELVEES-NEOTEK-OJSC" }, { 0x909A4A, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x909A77, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x909B6F, "Apple, Inc.", "APPLE" }, { 0x909C4A, "Apple, Inc.", "APPLE" }, { 0x909D7D, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x909DE0, "Newland Design + Assoc. Inc.", "NEWLAND-DESIGN-+-ASSOC" }, { 0x909F33, "EFM Networks", "EFM-NETWORKS" }, { 0x909F43, "Accutron Instruments Inc.", "ACCUTRON-INSTRUMENTS" }, { 0x90A137, "Beijing Splendidtel Communication Technology Co,. Ltd", "BEIJING-SPLENDIDTEL-COMMUNICATION" }, { 0x90A210, "United Telecoms Ltd", "UNITED-TELECOMS" }, { 0x90A25B, "Apple, Inc.", "APPLE" }, { 0x90A2DA, "GHEO SA", "GHEO" }, { 0x90A365, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x90A46A, "SISNET CO., LTD", "SISNET" }, { 0x90A4DE, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x90A5AF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x90A62F, "NAVER", "NAVER" }, { 0x90A6BF, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0x90A783, "JSW PACIFIC CORPORATION", "JSW-PACIFIC" }, { 0x90A7BF, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0x90A7C1, "Pakedge Device and Software Inc.", "PAKEDGE-DEVICE-AND-SOFTWARE" }, { 0x90A822, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x90A935, "JWEntertainment", "JWENTERTAINMENT" }, { 0x90AAC3, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0x90AB96, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x90AC3F, "BrightSign LLC", "BRIGHTSIGN" }, { 0x90ADF7, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x90ADFC, "Telechips, Inc.", "TELECHIPS" }, { 0x90AE1B, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x90AFD1, "netKTI Co., Ltd", "NETKTI" }, { 0x90B0ED, "Apple, Inc.", "APPLE" }, { 0x90B11C, "Dell Inc.", "DELL" }, { 0x90B134, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x90B144, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x90B1E0, "Beijing Nebula Link Technology Co., Ltd", "BEIJING-NEBULA-LINK" }, { 0x90B21F, "Apple, Inc.", "APPLE" }, { 0x90B4DD, "Private", "PRIVATE" }, { 0x90B57F, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0x90B622, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x90B67A, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x90B686, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x90B832, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x90B8D0, "Joyent, Inc.", "JOYENT" }, { 0x90B8E0, "SHENZHEN YANRAY TECHNOLOGY CO.,LTD", "SHENZHEN-YANRAY" }, { 0x90B931, "Apple, Inc.", "APPLE" }, { 0x90B97D, "Johnson Outdoors Marine Electronics d/b/a Minnkota", "JOHNSON-OUTDOORS-MARINE-ELECTRONICS-D/B/A-MINNKOTA" }, { 0x90BDE6, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0x90C115, "Sony Corporation", "SONY" }, { 0x90C119, "Nokia", "NOKIA" }, { 0x90C1C6, "Apple, Inc.", "APPLE" }, { 0x90C35F, "Nanjing Jiahao Technology Co., Ltd.", "NANJING-JIAHAO" }, { 0x90C54A, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x90C682, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x90C792, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x90C7D8, "zte corporation", "ZTE" }, { 0x90C99B, "Tesorion Nederland B.V.", "TESORION-NEDERLAND-B-V" }, { 0x90CAFA, "Google, Inc.", "GOOGLE" }, { 0x90CC24, "Synaptics, Inc", "SYNAPTICS" }, { 0x90CC7A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x90CCDF, "Intel Corporate", "INTEL-CORPORATE" }, { 0x90CD1F, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0x90CDB6, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x90CEB8, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x90CF15, "Nokia Corporation", "NOKIA" }, { 0x90CF6F, "Dlogixs Co Ltd", "DLOGIXS" }, { 0x90CF7D, "Qingdao Hisense Communications Co.,Ltd.", "QINGDAO-HISENSE-COMMUNICATION" }, { 0x90D092, "HUMAX Co., Ltd.", "HUMAX" }, { 0x90D11B, "Palomar Medical Technologies", "PALOMAR-MEDICAL-TECHNOLOGIES" }, { 0x90D473, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x90D689, "Huahao Fangzhou Technology Co.,Ltd", "HUAHAO-FANGZHOU" }, { 0x90D74F, "Bookeen", "BOOKEEN" }, { 0x90D7BE, "Wavelab Global Inc.", "WAVELAB-GLOBAL" }, { 0x90D7EB, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x90D852, "Comtec Co., Ltd.", "COMTEC" }, { 0x90D8F3, "zte corporation", "ZTE" }, { 0x90D92C, "HUG-WITSCHI AG", "HUG-WITSCHI" }, { 0x90DA4E, "AVANU", "AVANU" }, { 0x90DA6A, "FOCUS H&S Co., Ltd.", "FOCUS-H-S" }, { 0x90DAF9, "Siemens Rail Automation SAU", "SIEMENS-RAIL-AUTOMATION-SAU" }, { 0x90DB46, "E-LEAD ELECTRONIC CO., LTD", "E-LEAD" }, { 0x90DD5D, "Apple, Inc.", "APPLE" }, { 0x90DE80, "Shenzhen Century Xinyang Technology Co., Ltd", "SHENZHEN-CENTURY-XINYANG" }, { 0x90DF7D, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x90DFB7, "s.m.s smart microwave sensors GmbH", "S-M-S-SMART-MICROWAVE-SENSORS" }, { 0x90DFFB, "HOMERIDER SYSTEMS", "HOMERIDER" }, { 0x90E0F0, "IEEE 1722a Working Group", "IEEE-1722A-WORKING-GROUP" }, { 0x90E17B, "Apple, Inc.", "APPLE" }, { 0x90E202, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x90E2BA, "Intel Corporate", "INTEL-CORPORATE" }, { 0x90E2FC, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x90E468, "Guangzhou Shiyuan Electronic Technology Company Limited", "GUANGZHOU-SHIYUAN-COMPANY" }, { 0x90E6BA, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x90E710, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x90E7C4, "HTC Corporation", "HTC" }, { 0x90E868, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x90E95E, "Cisco Systems, Inc", "CISCO" }, { 0x90EA60, "SPI Lasers Ltd", "SPI-LASERS" }, { 0x90EB48, "Shanghai XinMiaoLink Technology Co., Ltd", "SHANGHAI-XINMIAOLINK" }, { 0x90EB50, "Cisco Systems, Inc", "CISCO" }, { 0x90EC50, "C.O.B.O. SPA", "C-O-B-O-SPA" }, { 0x90EC77, "silicom", "SILICOM" }, { 0x90ECE3, "Nokia", "NOKIA" }, { 0x90ECEA, "Apple, Inc.", "APPLE" }, { 0x90EEC7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x90EED9, "UNIVERSAL DE DESARROLLOS ELECTRÓNICOS, SA", "UNIVERSAL-DE-DESARROLLOS-ELECTRNICOS" }, { 0x90EF68, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x90F052, "MEIZU Technology Co., Ltd.", "MEIZU" }, { 0x90F157, "Garmin International", "GARMIN" }, { 0x90F1AA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x90F1B0, "Hangzhou Anheng Info&Tech CO.,LTD", "HANGZHOU-ANHENG-INFO-TECH" }, { 0x90F260, "Shenzhen Honesty Electronics Co.,Ltd.", "SHENZHEN-HONESTY-ELECTRONICS" }, { 0x90F278, "Radius Gateway", "RADIUS-GATEWAY" }, { 0x90F305, "HUMAX Co., Ltd.", "HUMAX" }, { 0x90F3B7, "Kirisun Communications Co., Ltd.", "KIRISUN-COMMUNICATION" }, { 0x90F3B8, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x90F421, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x90F4C1, "Rand McNally", "RAND-MCNALLY" }, { 0x90F644, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x90F652, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x90F72F, "Phillips Machine & Welding Co., Inc.", "PHILLIPS-MACHINE-WELDING" }, { 0x90F7B2, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x90F82E, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x90F891, "Kaon Group Co., Ltd.", "KAON-GROUP" }, { 0x90F970, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x90F9B7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x90FB5B, "Avaya Inc", "AVAYA" }, { 0x90FBA6, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x90FD61, "Apple, Inc.", "APPLE" }, { 0x90FD73, "zte corporation", "ZTE" }, { 0x90FD9F, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x90FF79, "Metro Ethernet Forum", "METRO-ETHERNET-FORUM" }, { 0x90FFD6, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x940006, "jinyoung", "JINYOUNG" }, { 0x940070, "Nokia Corporation", "NOKIA" }, { 0x9400B0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x940149, "AutoHotBox", "AUTOHOTBOX" }, { 0x9401AC, "Wuhan Qianyang Iotian Technology Co., Ltd", "WUHAN-QIANYANG-IOTIAN" }, { 0x9401C2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x940230, "Logitech", "LOGITECH" }, { 0x94026B, "Optictimes Co.,Ltd", "OPTICTIMES" }, { 0x94049C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9404E3, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x9405B6, "Liling FullRiver Electronics & Technology Ltd", "LILING-FULLRIVER-ELECTRONICS" }, { 0x9405BB, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x940853, "Liteon Technology Corporation", "LITEON" }, { 0x9408C7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x940937, "HUMAX Co., Ltd.", "HUMAX" }, { 0x9409C9, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x9409D3, "shenzhen maxtopic technology co.,ltd", "SHENZHEN-MAXTOPIC" }, { 0x940B19, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x940B2D, "NetView Technologies(Shenzhen) Co., Ltd", "NETVIEW-TECHNOLOGIES-SHENZHEN" }, { 0x940BD5, "Himax Technologies, Inc", "HIMAX-TECHNOLOGIES" }, { 0x940C6D, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x940C98, "Apple, Inc.", "APPLE" }, { 0x940D2D, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x940E6B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x940EE7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x94103E, "Belkin International Inc.", "BELKIN" }, { 0x9411DA, "ITF Fröschl GmbH", "ITF-FROESCHL" }, { 0x941457, "Shenzhen Sundray Technologies Company Limited", "SHENZHEN-SUNDRAY-TECHNOLOGIES-COMPANY" }, { 0x94147A, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x941625, "Apple, Inc.", "APPLE" }, { 0x941673, "Point Core SARL", "POINT-CORE-SARL" }, { 0x941700, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x941865, "NETGEAR", "NETGEAR" }, { 0x941882, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x94193A, "Elvaco AB", "ELVACO-AB" }, { 0x941C56, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x941D1C, "TLab West Systems AB", "TLAB-WEST-AB" }, { 0x941F3A, "Ambiq", "AMBIQ" }, { 0x941FA2, "Wuhan YuXin Semiconductor Co., Ltd.", "WUHAN-YUXIN-SEMICONDUCTOR" }, { 0x942053, "Nokia Corporation", "NOKIA" }, { 0x942197, "Stalmart Technology Limited", "STALMART" }, { 0x94236E, "Shenzhen Junlan Electronic Ltd", "SHENZHEN-JUNLAN" }, { 0x9424B8, "GREE ELECTRIC APPLIANCES, INC. OF ZHUHAI", "GREE-ELECTRIC-APPLIANCES-OF-ZHUHAI" }, { 0x9424E1, "Alcatel-Lucent Enterprise", "ALCATEL-LUCENT" }, { 0x942533, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x942790, "TCT mobile ltd", "TCT-MOBILE" }, { 0x94282E, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x94286F, "zte corporation", "ZTE" }, { 0x94290C, "Shenyang wisdom Foundation Technology Development Co., Ltd.", "SHENYANG-WISDOM-FOUNDATION-DEVELOPMENT" }, { 0x94292F, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x942957, "Airpo Networks Technology Co.,Ltd.", "AIRPO-NETWORKS" }, { 0x94298D, "Shanghai AdaptComm Technology Co., Ltd.", "SHANGHAI-ADAPTCOMM" }, { 0x942A3F, "Diversey Inc", "DIVERSEY" }, { 0x942A6F, "Ubiquiti Inc", "UBIQUITI" }, { 0x942CB3, "HUMAX Co., Ltd.", "HUMAX" }, { 0x942DDC, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x942E17, "Schneider Electric Canada Inc", "SCHNEIDER-ELECTRIC-CANADA" }, { 0x942E63, "Finsécur", "FINSCUR" }, { 0x94319B, "Alphatronics BV", "ALPHATRONICS" }, { 0x9431CB, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x9433DD, "Taco Inc", "TACO" }, { 0x943469, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x94350A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9436E0, "Sichuan Bihong Broadcast & Television New Technologies Co.,Ltd", "SICHUAN-BIHONG-BROADCAST-AMP-TELEVISION-NEW-TECHNOLOGIES" }, { 0x9437F7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x9439E5, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x943A91, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x943AF0, "Nokia Corporation", "NOKIA" }, { 0x943BB0, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x943BB1, "Kaon Group Co., Ltd.", "KAON-GROUP" }, { 0x943C96, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x943CC6, "Espressif Inc.", "ESPRESSIF" }, { 0x943DC9, "Asahi Net, Inc.", "ASAHI-NET" }, { 0x943EE4, "WiSA Technologies Inc", "WISA-TECHNOLOGIES" }, { 0x943FBB, "JSC RPC Istok named after Shokin", "JSC-RPC-ISTOK-NAMED-AFTER-SHOKIN" }, { 0x943FC2, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x943FD6, "Apple, Inc.", "APPLE" }, { 0x9440A2, "Anywave Communication Technologies, Inc.", "ANYWAVE-COMMUNICATION-TECHNOLOGIES" }, { 0x9440C9, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x9441C1, "Mini-Cam Limited", "MINI-CAM" }, { 0x94434D, "Ciena Corporation", "CIENA" }, { 0x944444, "LG Innotek", "LG-INNOTEK" }, { 0x944452, "Belkin International Inc.", "BELKIN" }, { 0x944696, "BaudTec Corporation", "BAUDTEC" }, { 0x944788, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9447B0, "BEIJING ESWIN COMPUTING TECHNOLOGY CO., LTD", "BEIJING-ESWIN-COMPUTING" }, { 0x944996, "WiSilica Inc", "WISILICA" }, { 0x944A09, "BitWise Controls", "BITWISE-CONTROLS" }, { 0x944A0C, "Sercomm Corporation.", "SERCOMM" }, { 0x944E5B, "Ubee Interactive Co., Limited", "UBEE-INTERACTIVE" }, { 0x944F4C, "Sound United LLC", "SOUND-UNITED" }, { 0x945047, "Rechnerbetriebsgruppe", "RECHNERBETRIEBSGRUPPE" }, { 0x945089, "SimonsVoss Technologies GmbH", "SIMONSVOSS-TECHNOLOGIES" }, { 0x945103, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x94513D, "iSmart Alarm, Inc.", "ISMART-ALARM" }, { 0x9451BF, "Hyundai ESG", "HYUNDAI-ESG" }, { 0x945244, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x945330, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x945493, "Rigado, LLC", "RIGADO" }, { 0x9454CE, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x9454DF, "YST CORP.", "YST" }, { 0x945641, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0x9457A5, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x9458CB, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x945907, "Shanghai HITE-BELDEN Network Technology Co., Ltd.", "SHANGHAI-HITE-BELDEN-NETWORK" }, { 0x94592D, "EKE Building Technology Systems Ltd", "EKE-BUILDING" }, { 0x945AFC, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x945B7E, "TRILOBIT LTDA.", "TRILOBIT-LTDA" }, { 0x945C9A, "Apple, Inc.", "APPLE" }, { 0x945F34, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x946010, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x9460D5, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x94611E, "Wata Electronics Co.,Ltd.", "WATA-ELECTRONICS" }, { 0x946124, "Pason Systems", "PASON" }, { 0x946269, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x946372, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x9463D1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x946424, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x94652D, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0x94659C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x9466E7, "WOM Engineering", "WOM-ENGINEERING" }, { 0x94677E, "Belden India Private Limited", "BELDEN-INDIA-PRIVATE" }, { 0x946A77, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x946AB0, "Arcadyan Corporation", "ARCADYAN" }, { 0x946DAE, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0x9470D2, "WINFIRM TECHNOLOGY", "WINFIRM" }, { 0x9471AC, "TCT mobile ltd", "TCT-MOBILE" }, { 0x94720F, "Guangdong Nanguang Photo&Video Systems Co., Ltd.", "GUANGDONG-NANGUANG-PHOTO-VIDEO" }, { 0x94756E, "QinetiQ North America", "QINETIQ-NORTH-AMERICA" }, { 0x9476B7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x94772B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x947806, "NINGBO SUNVOT TECHNOLOGY CO.,LTD", "NINGBO-SUNVOT" }, { 0x947918, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x947BAE, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x947BBE, "Ubicquia LLC", "UBICQUIA" }, { 0x947BE7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x947C3E, "Polewall Norge AS", "POLEWALL-NORGE-AS" }, { 0x947D77, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x947EB9, "National Narrowband Network Communications Pty Ltd", "NATIONAL-NARROWBAND-NETWORK-COMMUNICATION-PTY" }, { 0x947F1D, "Shenzhen Fastrain Technology Co., Ltd.", "SHENZHEN-FASTRAIN" }, { 0x947FD8, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0x9481A4, "Azuray Technologies", "AZURAY-TECHNOLOGIES" }, { 0x9483C4, "GL Technologies (Hong Kong) Limited", "GL-TECHNOLOGIES-HONG-KONG" }, { 0x94857A, "Evantage Industries Corp", "EVANTAGE-INDUSTRIES" }, { 0x9486CD, "SEOUL ELECTRONICS&TELECOM", "SEOUL-ELECTRONICS-TELECOM" }, { 0x9486D4, "Surveillance Pro Corporation", "SURVEILLANCE-PRO" }, { 0x94877C, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x9487E0, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x948815, "Infinique Worldwide Inc", "INFINIQUE-WORLDWIDE" }, { 0x948854, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x94885E, "Surfilter Network Technology Co., Ltd.", "SURFILTER-NETWORK" }, { 0x948AC6, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x948B03, "EAGET Innovation and Technology Co., Ltd.", "EAGET-INNOVATION" }, { 0x948BC1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x948D50, "Beamex Oy Ab", "BEAMEX-OY-AB" }, { 0x948DEF, "Oetiker Schweiz AG", "OETIKER-SCHWEIZ" }, { 0x948E89, "INDUSTRIAS UNIDAS SA DE CV", "INDUSTRIAS-UNIDAS-DE-CV" }, { 0x948ED3, "Arista Networks", "ARISTA-NETWORKS" }, { 0x948FCF, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x948FEE, "Verizon Telematics", "VERIZON-TELEMATICS" }, { 0x949010, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x949034, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0x94917F, "ASKEY COMPUTER CORP", "ASKEY" }, { 0x9492BC, "SYNTECH(HK) TECHNOLOGY LIMITED", "SYNTECH-HK" }, { 0x9492D2, "KCF Technologies, Inc.", "KCF-TECHNOLOGIES" }, { 0x949426, "Apple, Inc.", "APPLE" }, { 0x94944A, "Particle Industries Inc.", "PARTICLE-INDUSTRIES" }, { 0x9495A0, "Google, Inc.", "GOOGLE" }, { 0x9497AE, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x949869, "zte corporation", "ZTE" }, { 0x94988F, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x9498A2, "Shanghai LISTEN TECH.LTD", "SHANGHAI-LISTEN-TECH" }, { 0x949901, "Shenzhen YITOA Digital Appliance CO.,LTD", "SHENZHEN-YITOA-DIGITAL-APPLIANCE" }, { 0x949990, "VTC Telecommunications", "VTC-TELECOMMUNICATIONS" }, { 0x949AA9, "Microsoft Corporation", "MICROSOFT" }, { 0x949B2C, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x949BFD, "Trans New Technology, Inc.", "TRANS-NEW" }, { 0x949C55, "Alta Data Technologies", "ALTA-DATA-TECHNOLOGIES" }, { 0x949D57, "Panasonic do Brasil Limitada", "PANASONIC-DO-BRASIL-LIMITADA" }, { 0x949F3E, "Sonos, Inc.", "SONOS" }, { 0x949F3F, "Optek Digital Technology company limited", "OPTEK-DIGITAL-COMPANY" }, { 0x949FB4, "ChengDu JiaFaAnTai Technology Co.,Ltd", "CHENGDU-JIAFAANTAI" }, { 0x94A04E, "Bostex Technology Co., LTD", "BOSTEX" }, { 0x94A07D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x94A1A2, "AMPAK Technology, Inc.", "AMPAK" }, { 0x94A3CA, "KonnectONE, LLC", "KONNECTONE" }, { 0x94A408, "Shenzhen Trolink Technology CO, LTD", "SHENZHEN-TROLINK" }, { 0x94A40C, "Diehl Metering GmbH", "DIEHL-METERING" }, { 0x94A4F9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x94A67E, "NETGEAR", "NETGEAR" }, { 0x94A7B7, "zte corporation", "ZTE" }, { 0x94A7BC, "BodyMedia, Inc.", "BODYMEDIA" }, { 0x94A9A8, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x94AA0A, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x94AAB8, "Joview(Beijing) Technology Co. Ltd.", "JOVIEW-BEIJING" }, { 0x94ABDE, "OMX Technology - FZE", "OMX-FZE" }, { 0x94ABFE, "Nokia", "NOKIA" }, { 0x94ACCA, "trivum technologies GmbH", "TRIVUM-TECHNOLOGIES" }, { 0x94AD23, "Apple, Inc.", "APPLE" }, { 0x94AE61, "Alcatel Lucent", "ALCATEL-LUCENT" }, { 0x94AEE3, "Belden Hirschmann Industries (Suzhou) Ltd.", "BELDEN-HIRSCHMANN-INDUSTRIES-SUZHOU" }, { 0x94AEF0, "Cisco Systems, Inc", "CISCO" }, { 0x94B01F, "Apple, Inc.", "APPLE" }, { 0x94B10A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x94B271, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x94B2CC, "PIONEER CORPORATION", "PIONEER" }, { 0x94B34F, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x94B40F, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x94B555, "Espressif Inc.", "ESPRESSIF" }, { 0x94B819, "Nokia", "NOKIA" }, { 0x94B86D, "Intel Corporate", "INTEL-CORPORATE" }, { 0x94B8C5, "RuggedCom Inc.", "RUGGEDCOM" }, { 0x94B97E, "Espressif Inc.", "ESPRESSIF" }, { 0x94B9B4, "Aptos Technology", "APTOS" }, { 0x94BA31, "Visiontec da Amazônia Ltda.", "VISIONTEC-DA-AMAZNIA-LTDA" }, { 0x94BA56, "Shenzhen Coship Electronics Co., Ltd.", "SHENZHEN-COSHIP-ELECTRONICS" }, { 0x94BBAE, "Husqvarna AB", "HUSQVARNA-AB" }, { 0x94BE09, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x94BE46, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0x94BF1E, "eflow Inc. / Smart Device Planning and Development Division", "EFLOW-/-SMART-DEVICE-PLANNING-AND-DEVELOPMENT-DIVISION" }, { 0x94BF2D, "Apple, Inc.", "APPLE" }, { 0x94BF80, "zte corporation", "ZTE" }, { 0x94BF94, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x94BF95, "Shenzhen Coship Electronics Co., Ltd", "SHENZHEN-COSHIP-ELECTRONICS" }, { 0x94BFC4, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x94C014, "Sorter Sp. j. Konrad Grzeszczyk MichaA, Ziomek", "SORTER-SP-J-KONRAD-GRZESZCZYK-MICHAA-ZIOMEK" }, { 0x94C038, "Tallac Networks", "TALLAC-NETWORKS" }, { 0x94C150, "2Wire Inc", "2WIRE" }, { 0x94C2BD, "TECNOBIT", "TECNOBIT" }, { 0x94C3E4, "Atlas Copco IAS GmbH", "ATLAS-COPCO-IAS" }, { 0x94C4E9, "PowerLayer Microsystems HongKong Limited", "POWERLAYER-MICROSYSTEMS-HONGKONG" }, { 0x94C5A6, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x94C691, "EliteGroup Computer Systems Co., LTD", "ELITEGROUP" }, { 0x94C6EB, "NOVA electronics, Inc.", "NOVA-ELECTRONICS" }, { 0x94C7AF, "Raylios Technology", "RAYLIOS" }, { 0x94C960, "Zhongshan B&T technology.co.,ltd", "ZHONGSHAN-B-T" }, { 0x94C962, "Teseq AG", "TESEQ" }, { 0x94C9B7, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x94CA0F, "Honeywell Analytics", "HONEYWELL-ANALYTICS" }, { 0x94CBCD, "zte corporation", "ZTE" }, { 0x94CC04, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x94CCB9, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x94CDAC, "Creowave Oy", "CREOWAVE-OY" }, { 0x94CE2C, "Sony Corporation", "SONY" }, { 0x94CE31, "CTS Limited", "CTS" }, { 0x94D00D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x94D019, "Cydle Corp.", "CYDLE" }, { 0x94D029, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x94D075, "CIS Crypto", "CIS-CRYPTO" }, { 0x94D299, "Techmation Co.,Ltd.", "TECHMATION" }, { 0x94D2BC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x94D331, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x94D417, "GPI KOREA INC.", "GPI-KOREA" }, { 0x94D469, "Cisco Systems, Inc", "CISCO" }, { 0x94D505, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x94D54D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x94D60E, "shenzhen yunmao information technologies co., ltd", "SHENZHEN-YUNMAO-INFORMATION-TECHNOLOGIES" }, { 0x94D6DB, "NexFi", "NEXFI" }, { 0x94D723, "Shanghai DareGlobal Technologies Co.,Ltd", "SHANGHAI-DAREGLOBAL-TECHNOLOGIES" }, { 0x94D771, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x94D859, "TCT mobile ltd", "TCT-MOBILE" }, { 0x94D86B, "nass magnet Hungária Kft.", "NASS-MAGNET-HUNGRIA-KFT" }, { 0x94D93C, "ENELPS", "ENELPS" }, { 0x94D9B3, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x94DB49, "SITCORP", "SITCORP" }, { 0x94DB56, "Sony Home Entertainment&Sound Products Inc", "SONY-HOME-ENTERTAINMENT-SOUND-PRODUCTS" }, { 0x94DBC9, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0x94DBDA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x94DC4E, "AEV, spol. s r. o.", "AEV-SPOL-S-R-O" }, { 0x94DD3F, "A+V Link Technologies, Corp.", "A+V-LINK-TECHNOLOGIES" }, { 0x94DDF8, "Brother Industries, LTD.", "BROTHER-INDUSTRIES" }, { 0x94DE0E, "SmartOptics AS", "SMARTOPTICS-AS" }, { 0x94DE80, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0x94DEB8, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x94DF34, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x94DF4E, "Wistron InfoComm(Kunshan)Co.,Ltd.", "WISTRON-INFOCOMM-KUNSHAN" }, { 0x94DF58, "IJ Electron CO.,Ltd.", "IJ-ELECTRON" }, { 0x94E0D0, "HealthStream Taiwan Inc.", "HEALTHSTREAM-TAIWAN" }, { 0x94E0D6, "China Dragon Technology Limited", "CHINA-DRAGON" }, { 0x94E129, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x94E1AC, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x94E226, "D. ORtiz Consulting, LLC", "D-ORTIZ-CONSULTING" }, { 0x94E23C, "Intel Corporate", "INTEL-CORPORATE" }, { 0x94E2FD, "Boge Kompressoren OTTO Boge GmbH & Co. KG", "BOGE-KOMPRESSOREN-OTTO-BOGE" }, { 0x94E36D, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x94E3EE, "zte corporation", "ZTE" }, { 0x94E4BA, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x94E686, "Espressif Inc.", "ESPRESSIF" }, { 0x94E6F7, "Intel Corporate", "INTEL-CORPORATE" }, { 0x94E70B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x94E711, "Xirka Dama Persada PT", "XIRKA-DAMA-PERSADA-PT" }, { 0x94E7EA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x94E848, "FYLDE MICRO LTD", "FYLDE-MICRO" }, { 0x94E8C5, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x94E96A, "Apple, Inc.", "APPLE" }, { 0x94E979, "Liteon Technology Corporation", "LITEON" }, { 0x94E98C, "Nokia", "NOKIA" }, { 0x94E9EE, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x94EA32, "Apple, Inc.", "APPLE" }, { 0x94EAEA, "TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO", "TELLESCOM-INDUSTRIA-E-COMERCIO-EM-TELECOMUNICACAO" }, { 0x94EB2C, "Google, Inc.", "GOOGLE" }, { 0x94EBCD, "BlackBerry RTS", "BLACKBERRY-RTS" }, { 0x94EE9F, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0x94F128, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x94F19E, "HUIZHOU MAORONG INTELLIGENT TECHNOLOGY CO.,LTD", "HUIZHOU-MAORONG-INTELLIGENT" }, { 0x94F278, "Elma Electronic", "ELMA" }, { 0x94F2BB, "Valeo Vision Systems", "VALEO-VISION" }, { 0x94F392, "Fortinet, Inc.", "FORTINET" }, { 0x94F524, "Chengdu BeiZhongWangXin Technology Co.Ltd", "CHENGDU-BEIZHONGWANGXIN" }, { 0x94F551, "Cadi Scientific Pte Ltd", "CADI-SCIENTIFIC-PTE" }, { 0x94F665, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0x94F692, "Geminico co.,Ltd.", "GEMINICO" }, { 0x94F6A3, "Apple, Inc.", "APPLE" }, { 0x94F6D6, "Apple, Inc.", "APPLE" }, { 0x94F720, "Tianjin Deviser Electronics Instrument Co., Ltd", "TIANJIN-DEVISER-ELECTRONICS-INSTRUMENT" }, { 0x94F7AD, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x94F827, "Shanghai Imilab Technology Co.Ltd", "SHANGHAI-IMILAB" }, { 0x94F929, "Meta Platforms Technologies, LLC", "META-PLATFORMS-TECHNOLOGIES" }, { 0x94FAE8, "Shenzhen Eycom Technology Co., Ltd", "SHENZHEN-EYCOM" }, { 0x94FB29, "Zebra Technologies Inc.", "ZEBRA-TECHNOLOGIES" }, { 0x94FBA7, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x94FBB2, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0x94FD1D, "WhereWhen Corp", "WHEREWHEN" }, { 0x94FD2E, "Shanghai Uniscope Technologies Co.,Ltd", "SHANGHAI-UNISCOPE-TECHNOLOGIES" }, { 0x94FE22, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x94FE9D, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0x94FEF4, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x94FF3C, "Fortinet, Inc.", "FORTINET" }, { 0x94FF61, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x98006A, "zte corporation", "ZTE" }, { 0x980074, "Raisecom Technology CO., LTD", "RAISECOM" }, { 0x9800C1, "GuangZhou CREATOR Technology Co.,Ltd.(CHINA)", "GUANGZHOU-CREATOR-CHINA" }, { 0x9800C6, "Apple, Inc.", "APPLE" }, { 0x9801A7, "Apple, Inc.", "APPLE" }, { 0x980284, "Theobroma Systems GmbH", "THEOBROMA" }, { 0x9802D8, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x98038A, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x98039B, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0x9803A0, "ABB n.v. Power Quality Products", "ABB-N-V-POWER-QUALITY-PRODUCTS" }, { 0x9803D8, "Apple, Inc.", "APPLE" }, { 0x980637, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x98063A, "Home Control Singapore Pte Ltd", "HOME-CONTROL-SINGAPORE-PTE" }, { 0x98063C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x98072D, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x9809CF, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0x980C33, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0x980C82, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0x980CA5, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0x980D2E, "HTC Corporation", "HTC" }, { 0x980D51, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x980D67, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0x980D6F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x980DAF, "Apple, Inc.", "APPLE" }, { 0x980E24, "Phytium Technology Co.,Ltd.", "PHYTIUM" }, { 0x980EE4, "Private", "PRIVATE" }, { 0x981082, "Nsolution Co., Ltd.", "NSOLUTION" }, { 0x981094, "Shenzhen Vsun communication technology Co.,ltd", "SHENZHEN-VSUN-COMMUNICATION" }, { 0x9810E8, "Apple, Inc.", "APPLE" }, { 0x981333, "zte corporation", "ZTE" }, { 0x9814D2, "Avonic", "AVONIC" }, { 0x9816EC, "IC Intracom", "IC-INTRACOM" }, { 0x9817F1, "zte corporation", "ZTE" }, { 0x981888, "Cisco Meraki", "CISCO-MERAKI" }, { 0x98192C, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0x981A35, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x981BB5, "ASSA ABLOY Korea Co., Ltd iRevo", "ASSA-ABLOY-KOREA-IREVO" }, { 0x981DFA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x981E0F, "Jeelan (Shanghai Jeelan Technology Information Inc", "JEELAN-SHANGHAI-JEELAN-INFORMATION" }, { 0x981E19, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x981FB1, "Shenzhen Lemon Network Technology Co.,Ltd", "SHENZHEN-LEMON-NETWORK" }, { 0x982044, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x98208E, "Definium Technologies", "DEFINIUM-TECHNOLOGIES" }, { 0x98226E, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x9822EF, "Liteon Technology Corporation", "LITEON" }, { 0x98234E, "Micromedia AG", "MICROMEDIA" }, { 0x98262A, "Applied Research Associates, Inc", "APPLIED-RESEARCH-ASSOCIATES" }, { 0x9826AD, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0x982782, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x9828A6, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x98291D, "Jaguar de Mexico, SA de CV", "JAGUAR-DE-MEXICO-DE-CV" }, { 0x98293F, "Fujian Start Computer Equipment Co.,Ltd", "FUJIAN-START-EQUIPMENT" }, { 0x9829A6, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x982CBC, "Intel Corporate", "INTEL-CORPORATE" }, { 0x982CBE, "2Wire Inc", "2WIRE" }, { 0x982D56, "Resolution Audio", "RESOLUTION-AUDIO" }, { 0x982D68, "Samsung Electronics Co., Ltd", "SAMSUNG-ELECTRONICS" }, { 0x982DBA, "Fibergate Inc.", "FIBERGATE" }, { 0x982F3C, "Sichuan Changhong Electric Ltd.", "SICHUAN-CHANGHONG-ELECTRIC" }, { 0x982FF8, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x983000, "Beijing KEMACOM Technologies Co., Ltd.", "BEIJING-KEMACOM-TECHNOLOGIES" }, { 0x983071, "DAIKYUNG VASCOM", "DAIKYUNG-VASCOM" }, { 0x98348C, "Teleepoch Ltd", "TELEEPOCH" }, { 0x98349D, "Krauss Maffei Technologies GmbH", "KRAUSS-MAFFEI-TECHNOLOGIES" }, { 0x983571, "Sub10 Systems Ltd", "SUB10" }, { 0x9835B8, "Assembled Products Corporation", "ASSEMBLED-PRODUCTS" }, { 0x9835ED, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x983713, "PT.Navicom Indonesia", "PT-NAVICOM-INDONESIA" }, { 0x98387D, "ITRONIC TECHNOLOGY CO . , LTD .", "ITRONIC" }, { 0x98398E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9839C0, "FLEXTRONICS", "FLEXTRONICS" }, { 0x983B16, "AMPAK Technology, Inc.", "AMPAK" }, { 0x983B67, "DWnet Technologies(Suzhou) Corporation", "DWNET-TECHNOLOGIES-SUZHOU" }, { 0x983B8F, "Intel Corporate", "INTEL-CORPORATE" }, { 0x983F60, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x983F66, "Wuhan Funshion Online Technologies Co.,Ltd", "WUHAN-FUNSHION-ONLINE-TECHNOLOGIES" }, { 0x983F9F, "China SSJ (Suzhou) Network Technology Inc.", "CHINA-SSJ-SUZHOU-NETWORK" }, { 0x9840BB, "Dell Inc.", "DELL" }, { 0x98415C, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x984246, "SOL INDUSTRY PTE., LTD", "SOL-INDUSTRY-PTE" }, { 0x984265, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x9843DA, "INTERTECH", "INTERTECH" }, { 0x9843FA, "Intel Corporate", "INTEL-CORPORATE" }, { 0x9844B6, "INFRANOR SAS", "INFRANOR-SAS" }, { 0x9844CE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x984562, "Shanghai Baud Data Communication Co.,Ltd.", "SHANGHAI-BAUD-DATA-COMMUNICATION" }, { 0x98460A, "Apple, Inc.", "APPLE" }, { 0x98473C, "SHANGHAI SUNMON COMMUNICATION TECHNOGY CO.,LTD", "SHANGHAI-SUNMON-COMMUNICATION-TECHNOGY" }, { 0x984744, "Shenzhen Boomtech Industrial Corporation", "SHENZHEN-BOOMTECH-INDUSTRIAL" }, { 0x984827, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x984874, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x984914, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0x984925, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x98499F, "Domo Tactical Communications", "DOMO-TACTICAL-COMMUNICATION" }, { 0x9849E1, "Boeing Defence Australia", "BOEING-DEFENCE-AUSTRALIA" }, { 0x984A47, "CHG Hospital Beds", "CHG-HOSPITAL-BEDS" }, { 0x984B06, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x984B4A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x984BE1, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x984C04, "Zhangzhou Keneng Electrical Equipment Co Ltd", "ZHANGZHOU-KENENG-ELECTRICAL-EQUIPMENT" }, { 0x984CD3, "Mantis Deposition", "MANTIS-DEPOSITION" }, { 0x984E97, "Starlight Marketing (H. K.) Ltd.", "STARLIGHT-MARKETING-H-K" }, { 0x984FEE, "Intel Corporate", "INTEL-CORPORATE" }, { 0x98502E, "Apple, Inc.", "APPLE" }, { 0x9850A3, "SIGNALTEK JSC", "SIGNALTEK-JSC" }, { 0x98523D, "Sunitec Enterprise Co.,Ltd", "SUNITEC" }, { 0x98524A, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x9852B1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x98541B, "Intel Corporate", "INTEL-CORPORATE" }, { 0x9857D3, "HON HAI-CCPBG PRECISION IND.CO.,LTD.", "HON-HAI-CCPBG-PRECISION-IND" }, { 0x98588A, "SYSGRATION Ltd.", "SYSGRATION" }, { 0x985945, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x985949, "LUXOTTICA GROUP S.P.A.", "LUXOTTICA-GROUP" }, { 0x98597A, "Intel Corporate", "INTEL-CORPORATE" }, { 0x985AEB, "Apple, Inc.", "APPLE" }, { 0x985BB0, "KMDATA INC.", "KMDATA" }, { 0x985C93, "SBG Systems SAS", "SBG-SAS" }, { 0x985D46, "PeopleNet Communication", "PEOPLENET-COMMUNICATION" }, { 0x985D82, "Arista Networks", "ARISTA-NETWORKS" }, { 0x985DAD, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x985E1B, "ConversDigital Co., Ltd.", "CONVERSDIGITAL" }, { 0x985F4F, "Tongfang Computer Co.,Ltd.", "TONGFANG" }, { 0x985FD3, "Microsoft Corporation", "MICROSOFT" }, { 0x986022, "EMW Co., Ltd.", "EMW" }, { 0x9860CA, "Apple, Inc.", "APPLE" }, { 0x986610, "zte corporation", "ZTE" }, { 0x9866EA, "Industrial Control Communications, Inc.", "INDUSTRIAL-CONTROL-COMMUNICATION" }, { 0x98672E, "Skullcandy", "SKULLCANDY" }, { 0x98698A, "Apple, Inc.", "APPLE" }, { 0x986B3D, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x986C5C, "Jiangxi Gosun Guard Security Co.,Ltd", "JIANGXI-GOSUN-GUARD-SECURITY" }, { 0x986CF5, "zte corporation", "ZTE" }, { 0x986D35, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x986DC8, "TOSHIBA MITSUBISHI-ELECTRIC INDUSTRIAL SYSTEMS CORPORATION", "TOSHIBA-MITSUBISHI-ELECTRIC-INDUSTRIAL" }, { 0x986EE8, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x986F60, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x9870E8, "INNATECH SDN BHD", "INNATECH" }, { 0x9873C4, "Sage Electronic Engineering LLC", "SAGE-ENGINEERING" }, { 0x98743D, "Shenzhen Jun Kai Hengye Technology Co. Ltd", "SHENZHEN-JUN-KAI-HENGYE" }, { 0x9874DA, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0x98751A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x9876B6, "Adafruit", "ADAFRUIT" }, { 0x987770, "Pep Digital Technology (Guangzhou) Co., Ltd", "PEP-DIGITAL-GUANGZHOU" }, { 0x9877CB, "Vorteks ED", "VORTEKS-ED" }, { 0x9877E7, "Kaon Group Co., Ltd.", "KAON-GROUP" }, { 0x987A10, "Ericsson AB", "ERICSSON-AB" }, { 0x987A14, "Microsoft Corporation", "MICROSOFT" }, { 0x987BF3, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x987DDD, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0x987E46, "Emizon Networks Limited", "EMIZON-NETWORKS" }, { 0x987ECA, "Inventus Power Eletronica do Brasil LTDA", "INVENTUS-POWER-ELETRONICA-DO-BRASIL-LTDA" }, { 0x987EE3, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x9880BB, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x9880EE, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x98818A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x988217, "Disruptive Ltd", "DISRUPTIVE" }, { 0x988389, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9884E3, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x98865D, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0x98868B, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x9886B1, "Flyaudio corporation (China)", "FLYAUDIO-CHINA" }, { 0x988744, "Wuxi Hongda Science and Technology Co.,LTD", "WUXI-HONGDA-SCIENCE" }, { 0x988924, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x9889ED, "Anadem Information Inc.", "ANADEM-INFORMATION" }, { 0x988B0A, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x988B5D, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0x988B69, "Shenzhen hylitech Co.,LTD", "SHENZHEN-HYLITECH" }, { 0x988BAD, "Corintech Ltd.", "CORINTECH" }, { 0x988CB3, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x988D46, "Intel Corporate", "INTEL-CORPORATE" }, { 0x988E34, "ZHEJIANG BOXSAM ELECTRONIC CO.,LTD", "ZHEJIANG-BOXSAM" }, { 0x988E4A, "NOXUS(BEIJING) TECHNOLOGY CO.,LTD", "NOXUS-BEIJING" }, { 0x988E79, "Qudelix, Inc.", "QUDELIX" }, { 0x988ED4, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x988EDD, "TE Connectivity Limerick", "TE-CONNECTIVITY-LIMERICK" }, { 0x988F00, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x988FE0, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x989080, "Linkpower Network System Inc Ltd.", "LINKPOWER-NETWORK-SYSTEM" }, { 0x989096, "Dell Inc.", "DELL" }, { 0x9893CC, "LG ELECTRONICS INC", "LG-ELECTRONICS" }, { 0x989449, "Skyworth Wireless Technology Ltd.", "SKYWORTH-WIRELESS" }, { 0x9897CC, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x9897D1, "MitraStar Technology Corp.", "MITRASTAR" }, { 0x989AB9, "zte corporation", "ZTE" }, { 0x989BCB, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0x989C57, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x989D5D, "Vantiva USA LLC", "VANTIVA-USA" }, { 0x989DE5, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x989E63, "Apple, Inc.", "APPLE" }, { 0x989F1E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x98A2C0, "Cisco Systems, Inc", "CISCO" }, { 0x98A404, "Ericsson AB", "ERICSSON-AB" }, { 0x98A40E, "Snap, Inc.", "SNAP" }, { 0x98A5F9, "Apple, Inc.", "APPLE" }, { 0x98A7B0, "MCST ZAO", "MCST-ZAO" }, { 0x98A92D, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x98A942, "Guangzhou Tozed Kangwei Intelligent Technology Co., LTD", "GUANGZHOU-TOZED-KANGWEI-INTELLIGENT" }, { 0x98AA3C, "Will i-tech Co., Ltd.", "WILL-I-TECH" }, { 0x98AAD7, "BLUE WAVE NETWORKING CO LTD", "BLUE-WAVE-NETWORKING" }, { 0x98AAFC, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x98AB15, "Fujian Youyike Technology Co.,Ltd", "FUJIAN-YOUYIKE" }, { 0x98ACEF, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0x98AD1D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x98AE71, "VVDN Technologies Pvt Ltd", "VVDN-TECHNOLOGIES-PVT" }, { 0x98AF65, "Intel Corporate", "INTEL-CORPORATE" }, { 0x98B039, "Nokia", "NOKIA" }, { 0x98B08B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x98B177, "LANDIS + GYR", "LANDIS-+-GYR" }, { 0x98B379, "Apple, Inc.", "APPLE" }, { 0x98B3EF, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x98B6E9, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x98B785, "Shenzhen 10Gtek Transceivers Co., Limited", "SHENZHEN-10GTEK-TRANSCEIVERS" }, { 0x98B8BA, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x98B8BC, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x98B8E3, "Apple, Inc.", "APPLE" }, { 0x98BA39, "Doro AB", "DORO-AB" }, { 0x98BB1E, "BYD Precision Manufacture Company Ltd.", "BYD-PRECISION-MANUFACTURE-COMPANY" }, { 0x98BB99, "Phicomm (Sichuan) Co.,Ltd.", "PHICOMM-SICHUAN" }, { 0x98BC57, "SVA TECHNOLOGIES CO.LTD", "SVA-TECHNOLOGIES" }, { 0x98BC99, "Edeltech Co.,Ltd.", "EDELTECH" }, { 0x98BE94, "IBM", "IBM" }, { 0x98BEDC, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x98BFF4, "MARKIN co., Ltd.", "MARKIN" }, { 0x98C0EB, "Global Regency Ltd", "GLOBAL-REGENCY" }, { 0x98C3D2, "Ningbo Sanxing Medical Electric Co.,Ltd", "NINGBO-SANXING-MEDICAL-ELECTRIC" }, { 0x98C5DB, "Ericsson AB", "ERICSSON-AB" }, { 0x98C7A4, "Shenzhen HS Fiber Communication Equipment CO., LTD", "SHENZHEN-HS-FIBER-COMMUNICATION-EQUIPMENT" }, { 0x98C81C, "BAYTEC LIMITED", "BAYTEC" }, { 0x98C845, "PacketAccess", "PACKETACCESS" }, { 0x98C854, "Chiun Mai Communication System, Inc", "CHIUN-MAI-COMMUNICATION-SYSTEM" }, { 0x98C8B8, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x98C97C, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0x98CA20, "Shanghai SIMCOM Ltd.", "SHANGHAI-SIMCOM" }, { 0x98CA33, "Apple, Inc.", "APPLE" }, { 0x98CB27, "Galore Networks Pvt. Ltd.", "GALORE-NETWORKS-PVT" }, { 0x98CBA4, "Benchmark Electronics", "BENCHMARK-ELECTRONICS" }, { 0x98CC4D, "Shenzhen mantunsci co., LTD", "SHENZHEN-MANTUNSCI" }, { 0x98CCD9, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0x98CCE4, "Shenzhen Mindray Animal Medical Technology Co.,LTD", "SHENZHEN-MINDRAY-ANIMAL-MEDICAL" }, { 0x98CCF3, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x98CDAC, "Espressif Inc.", "ESPRESSIF" }, { 0x98CDB4, "Virident Systems, Inc.", "VIRIDENT" }, { 0x98CF53, "BBK EDUCATIONAL ELECTRONICS CORP.,LTD.", "BBK-EDUCATIONAL-ELECTRONICS" }, { 0x98D293, "Google, Inc.", "GOOGLE" }, { 0x98D331, "Shenzhen Bolutek Technology Co.,Ltd.", "SHENZHEN-BOLUTEK" }, { 0x98D3D2, "MEKRA Lang GmbH & Co. KG", "MEKRA-LANG" }, { 0x98D3D7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x98D3E7, "Netafim L", "NETAFIM-L" }, { 0x98D686, "Chyi Lee industry Co., ltd.", "CHYI-LEE-INDUSTRY" }, { 0x98D6BB, "Apple, Inc.", "APPLE" }, { 0x98D6F7, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0x98D742, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x98D863, "Shanghai High-Flying Electronics Technology Co., Ltd", "SHANGHAI-HIGH-FLYING-ELECTRONICS" }, { 0x98D88C, "Nortel Networks", "NORTEL-NETWORKS" }, { 0x98D93D, "Demant Enterprise A/S", "DEMANT-A/S" }, { 0x98DA92, "Vuzix Corporation", "VUZIX" }, { 0x98DAC4, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x98DCD9, "UNITEC Co., Ltd.", "UNITEC" }, { 0x98DD5B, "TAKUMI JAPAN LTD", "TAKUMI-JAPAN" }, { 0x98DD60, "Apple, Inc.", "APPLE" }, { 0x98DDEA, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0x98DED0, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x98DF82, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x98E0D9, "Apple, Inc.", "APPLE" }, { 0x98E165, "Accutome", "ACCUTOME" }, { 0x98E476, "Zentan", "ZENTAN" }, { 0x98E743, "Dell Inc.", "DELL" }, { 0x98E79A, "Foxconn(NanJing) Communication Co.,Ltd.", "FOXCONN-NANJING-COMMUNICATION" }, { 0x98E7F4, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x98E7F5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x98E848, "Axiim", "AXIIM" }, { 0x98E8FA, "Nintendo Co.,Ltd", "NINTENDO" }, { 0x98EC65, "Cosesy ApS", "COSESY-APS" }, { 0x98ED5C, "Tesla,Inc.", "TESLA" }, { 0x98ED7E, "eero inc.", "EERO" }, { 0x98EDCA, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x98EECB, "Wistron Infocomm (Zhongshan) Corporation", "WISTRON-INFOCOMM-ZHONGSHAN" }, { 0x98EF9B, "OHSUNG", "OHSUNG" }, { 0x98F058, "Lynxspring, Incl.", "LYNXSPRING-INCL" }, { 0x98F07B, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x98F083, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x98F0AB, "Apple, Inc.", "APPLE" }, { 0x98F112, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0x98F170, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x98F181, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x98F199, "NEC Platforms, Ltd.", "NEC-PLATFORMS" }, { 0x98F217, "Castlenet Technology Inc.", "CASTLENET" }, { 0x98F2B3, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x98F428, "zte corporation", "ZTE" }, { 0x98F4AB, "Espressif Inc.", "ESPRESSIF" }, { 0x98F537, "zte corporation", "ZTE" }, { 0x98F5A9, "OHSUNG", "OHSUNG" }, { 0x98F621, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x98F781, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x98F7D7, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x98F8C1, "IDT Technology Limited", "IDT" }, { 0x98F8DB, "Marini Impianti Industriali s.r.l.", "MARINI-IMPIANTI-INDUSTRIALI" }, { 0x98F9C7, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x98F9CC, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0x98FA9B, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x98FAA7, "INNONET", "INNONET" }, { 0x98FAE3, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x98FB12, "Grand Electronics (HK) Ltd", "GRAND-ELECTRONICS-HK" }, { 0x98FB27, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x98FBF5, "ATRALTECH", "ATRALTECH" }, { 0x98FC11, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0x98FC84, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x98FD74, "ACT.CO.LTD", "ACT" }, { 0x98FDB4, "Primax Electronics Ltd.", "PRIMAX-ELECTRONICS" }, { 0x98FE03, "Ericsson - North America", "ERICSSON-NORTH-AMERICA" }, { 0x98FE94, "Apple, Inc.", "APPLE" }, { 0x98FF6A, "OTEC(Shanghai)Technology Co.,Ltd.", "OTEC-SHANGHAI" }, { 0x98FFD0, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0x9C00D3, "SHENZHEN IK WORLD Technology Co., Ltd", "SHENZHEN-IK-WORLD" }, { 0x9C0111, "Shenzhen Newabel Electronic Co., Ltd.", "SHENZHEN-NEWABEL" }, { 0x9C0298, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9C039E, "Beijing Winchannel Software Technology Co., Ltd", "BEIJING-WINCHANNEL-SOFTWARE" }, { 0x9C0473, "Tecmobile (International) Ltd.", "TECMOBILE" }, { 0x9C04EB, "Apple, Inc.", "APPLE" }, { 0x9C0567, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x9C0591, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0x9C05D6, "Ubiquiti Inc", "UBIQUITI" }, { 0x9C061B, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0x9C066E, "Hytera Communications Corporation Limited", "HYTERA-COMMUNICATION" }, { 0x9C0971, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x9C0B05, "eero inc.", "EERO" }, { 0x9C0C35, "Shenzhenshi Xinzhongxin Technology Co.Ltd", "SHENZHENSHI-XINZHONGXIN" }, { 0x9C0CDF, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x9C0DAC, "Tymphany HK Limited", "TYMPHANY-HK" }, { 0x9C0E4A, "Shenzhen Vastking Electronic Co.,Ltd.", "SHENZHEN-VASTKING" }, { 0x9C13AB, "Chanson Water Co., Ltd.", "CHANSON-WATER" }, { 0x9C1463, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0x9C1465, "Edata Elektronik San. ve Tic. A.Ş.", "EDATA-ELEKTRONIK-SAN-VE-TIC-A" }, { 0x9C1874, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0x9C19C2, "Dongguan Liesheng Electronic Co., Ltd.", "DONGGUAN-LIESHENG" }, { 0x9C1C12, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0x9C1C37, "AltoBeam (China) Inc.", "ALTOBEAM-CHINA" }, { 0x9C1C6D, "HEFEI DATANG STORAGE TECHNOLOGY CO.,LTD", "HEFEI-DATANG-STORAGE" }, { 0x9C1D36, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9C1D58, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0x9C1E95, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0x9C1EA4, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x9C1ECF, "Valeo Telematik und Akustik GmbH", "VALEO-TELEMATIK-UND-AKUSTIK" }, { 0x9C1FCA, "Hangzhou AlmightyDigit Technology Co., Ltd", "HANGZHOU-ALMIGHTYDIGIT" }, { 0x9C1FDD, "Accupix Inc.", "ACCUPIX" }, { 0x9C207B, "Apple, Inc.", "APPLE" }, { 0x9C216A, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x9C2183, "Broadcom Limited", "BROADCOM" }, { 0x9C220E, "TASCAN Systems GmbH", "TASCAN" }, { 0x9C2595, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9C25BE, "Wildlife Acoustics, Inc.", "WILDLIFE-ACOUSTICS" }, { 0x9C2840, "Discovery Technology,LTD..", "DISCOVERY" }, { 0x9C28B3, "Apple, Inc.", "APPLE" }, { 0x9C28BF, "Continental Automotive Czech Republic s.r.o.", "CONTINENTAL-AUTOMOTIVE-CZECH-REPUBLIC-S-R-O" }, { 0x9C28EF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9C28F7, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x9C293F, "Apple, Inc.", "APPLE" }, { 0x9C2976, "Intel Corporate", "INTEL-CORPORATE" }, { 0x9C2A70, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x9C2A83, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9C2BA6, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0x9C2DCD, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0x9C2DCF, "Shishi Tongyun Technology(Chengdu)Co.,Ltd.", "SHISHI-TONGYUN-CHENGDU" }, { 0x9C2E7A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9C2EA1, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x9C2F4E, "zte corporation", "ZTE" }, { 0x9C2F73, "Universal Tiancheng Technology (Beijing) Co., Ltd.", "UNIVERSAL-TIANCHENG-BEIJING" }, { 0x9C2F9D, "Liteon Technology Corporation", "LITEON" }, { 0x9C305B, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x9C3066, "RWE Effizienz GmbH", "RWE-EFFIZIENZ" }, { 0x9C3178, "Foshan Huadian Intelligent Communications Teachnologies Co.,Ltd", "FOSHAN-HUADIAN-INTELLIGENT-COMMUNICATION-TEACHNOLOGIES" }, { 0x9C31B6, "Kulite Semiconductor Products Inc", "KULITE-SEMICONDUCTOR-PRODUCTS" }, { 0x9C31C3, "SKY UK LIMITED", "SKY-UK" }, { 0x9C32A9, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x9C32CE, "CANON INC.", "CANON" }, { 0x9C3426, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x9C3583, "Nipro Diagnostics, Inc", "NIPRO-DIAGNOSTICS" }, { 0x9C35EB, "Apple, Inc.", "APPLE" }, { 0x9C36F8, "Hyundai Kefico", "HYUNDAI-KEFICO" }, { 0x9C37F4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9C3928, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9C3A9A, "Shenzhen Sundray Technologies Company Limited", "SHENZHEN-SUNDRAY-TECHNOLOGIES-COMPANY" }, { 0x9C3AAF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9C3DCF, "NETGEAR", "NETGEAR" }, { 0x9C3E53, "Apple, Inc.", "APPLE" }, { 0x9C3EAA, "EnvyLogic Co.,Ltd.", "ENVYLOGIC" }, { 0x9C40CD, "Synclayer Inc.", "SYNCLAYER" }, { 0x9C417C, "Hame Technology Co., Limited", "HAME" }, { 0x9C431E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x9C443D, "CHENGDU XUGUANG TECHNOLOGY CO, LTD", "CHENGDU-XUGUANG" }, { 0x9C44A6, "SwiftTest, Inc.", "SWIFTTEST" }, { 0x9C4563, "DIMEP Sistemas", "DIMEP-SISTEMAS" }, { 0x9C47F9, "LJU Automatisierungstechnik GmbH", "LJU-AUTOMATISIERUNGSTECHNIK" }, { 0x9C497F, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x9C4A7B, "Nokia Corporation", "NOKIA" }, { 0x9C4CAE, "Mesa Labs", "MESA-LABS" }, { 0x9C4E20, "Cisco Systems, Inc", "CISCO" }, { 0x9C4E36, "Intel Corporate", "INTEL-CORPORATE" }, { 0x9C4E8E, "ALT Systems Ltd", "ALT" }, { 0x9C4EBF, "BoxCast", "BOXCAST" }, { 0x9C4F5F, "Google, Inc.", "GOOGLE" }, { 0x9C4FCF, "TCT mobile ltd", "TCT-MOBILE" }, { 0x9C4FDA, "Apple, Inc.", "APPLE" }, { 0x9C50D1, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x9C50EE, "Cambridge Industries(Group) Co.,Ltd.", "CAMBRIDGE-INDUSTRIES-GROUP" }, { 0x9C52F8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9C5322, "TP-Link Corporation Limited", "TP-LINK" }, { 0x9C53CD, "ENGICAM s.r.l.", "ENGICAM" }, { 0x9C5416, "Cisco Systems, Inc", "CISCO" }, { 0x9C541C, "Shenzhen My-power Technology Co.,Ltd", "SHENZHEN-MY-POWER" }, { 0x9C5440, "ChengDu TD Tech", "CHENGDU-TD-TECH" }, { 0x9C5467, "Nokia", "NOKIA" }, { 0x9C54C2, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x9C54CA, "Zhengzhou VCOM Science and Technology Co.,Ltd", "ZHENGZHOU-VCOM-SCIENCE" }, { 0x9C54DA, "SkyBell Technologies Inc.", "SKYBELL-TECHNOLOGIES" }, { 0x9C558F, "Lockin Technology(Beijing) Co.,Ltd.", "LOCKIN-BEIJING" }, { 0x9C55B4, "I.S.E. S.r.l.", "I-S-E" }, { 0x9C5636, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x9C5711, "Feitian Xunda(Beijing) Aeronautical Information Technology Co., Ltd.", "FEITIAN-XUNDA-BEIJING-AERONAUTICAL-INFORMATION" }, { 0x9C57AD, "Cisco Systems, Inc", "CISCO" }, { 0x9C57BC, "eero inc.", "EERO" }, { 0x9C583C, "Apple, Inc.", "APPLE" }, { 0x9C5A44, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0x9C5A81, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x9C5B96, "NMR Corporation", "NMR" }, { 0x9C5C8D, "FIREMAX INDÚSTRIA E COMÉRCIO DE PRODUTOS ELETRÔNICOS LTDA", "FIREMAX-INDSTRIA-E-COMRCIO-DE-PRODUTOS-ELETRNICOS-LTDA" }, { 0x9C5C8E, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0x9C5CF9, "Sony Corporation", "SONY" }, { 0x9C5D12, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0x9C5D95, "VTC Electronics Corp.", "VTC-ELECTRONICS" }, { 0x9C5E73, "Calibre UK LTD", "CALIBRE-UK" }, { 0x9C5F5A, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x9C5FB0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9C611D, "Panasonic Corporation of North America", "PANASONIC-OF-NORTH-AMERICA" }, { 0x9C6121, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x9C62AB, "Sumavision Technologies Co.,Ltd", "SUMAVISION-TECHNOLOGIES" }, { 0x9C635B, "zte corporation", "ZTE" }, { 0x9C63ED, "zte corporation", "ZTE" }, { 0x9C645E, "Harman Consumer Group", "HARMAN-CONSUMER-GROUP" }, { 0x9C648B, "Apple, Inc.", "APPLE" }, { 0x9C65B0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9C65EE, "DZS Inc.", "DZS" }, { 0x9C65F9, "AcSiP Technology Corp.", "ACSIP" }, { 0x9C65FA, "AcSiP", "ACSIP" }, { 0x9C6650, "Glodio Technolies Co.,Ltd Tianjin Branch", "GLODIO-TECHNOLIES-TIANJIN-BRANCH" }, { 0x9C685B, "Octonion SA", "OCTONION" }, { 0x9C6865, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x9C6937, "Qorvo International Pte. Ltd.", "QORVO-PTE" }, { 0x9C69B4, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x9C69D1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9C6ABE, "QEES ApS.", "QEES-APS" }, { 0x9C6B00, "ASRock Incorporation", "ASROCK-INCORPORATION" }, { 0x9C6B37, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0x9C6B72, "Realme Chongqing MobileTelecommunications Corp Ltd", "REALME-CHONGQING-MOBILETELECOMMUNICATIONS" }, { 0x9C6BF0, "Shenzhen Yipingfang Network Technology Co., Ltd.", "SHENZHEN-YIPINGFANG-NETWORK" }, { 0x9C6C15, "Microsoft Corporation", "MICROSOFT" }, { 0x9C6F52, "zte corporation", "ZTE" }, { 0x9C713A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9C7370, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9C73B1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9C7403, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x9C741A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9C746F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9C7514, "Wildix srl", "WILDIX-SRL" }, { 0x9C756E, "Ajax Systems DMCC", "AJAX-DMCC" }, { 0x9C760E, "Apple, Inc.", "APPLE" }, { 0x9C7613, "Ring LLC", "RING" }, { 0x9C77AA, "NADASNV", "NADASNV" }, { 0x9C79AC, "Suntec Software(Shanghai) Co., Ltd.", "SUNTEC-SOFTWARE-SHANGHAI" }, { 0x9C7A03, "Ciena Corporation", "CIENA" }, { 0x9C7BD2, "NEOLAB Convergence", "NEOLAB-CONVERGENCE" }, { 0x9C7BEF, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x9C7DA3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9C7F57, "UNIC Memory Technology Co Ltd", "UNIC-MEMORY" }, { 0x9C7F81, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0x9C807D, "SYSCABLE Korea Inc.", "SYSCABLE-KOREA" }, { 0x9C80DF, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0x9C823F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x9C8275, "Yichip Microelectronics (Hangzhou) Co.,Ltd", "YICHIPMICROELECTRONICS-HANGZHOU" }, { 0x9C8281, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x9C83BF, "PRO-VISION, Inc.", "PRO-VISION" }, { 0x9C84B6, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0x9C84BF, "Apple, Inc.", "APPLE" }, { 0x9C8566, "Wingtech Mobile Communications Co.,Ltd.", "WINGTECH-MOBILE-COMMUNICATION" }, { 0x9C86DA, "Phoenix Geophysics Ltd.", "PHOENIX-GEOPHYSICS" }, { 0x9C8824, "PetroCloud LLC", "PETROCLOUD" }, { 0x9C8888, "Simac Techniek NV", "SIMAC-TECHNIEK-NV" }, { 0x9C88AD, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x9C8ACB, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x9C8BA0, "Apple, Inc.", "APPLE" }, { 0x9C8BF1, "The Warehouse Limited", "THE-WAREHOUSE" }, { 0x9C8C6E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9C8CD8, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x9C8D1A, "INTEG process group inc", "INTEG-PROCESS-GROUP" }, { 0x9C8D7C, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0x9C8DD3, "Leonton Technologies", "LEONTON-TECHNOLOGIES" }, { 0x9C8E99, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x9C8E9C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x9C8ECD, "Amcrest Technologies", "AMCREST-TECHNOLOGIES" }, { 0x9C8EDC, "Teracom Limited", "TERACOM" }, { 0x9C9019, "Beyless", "BEYLESS" }, { 0x9C924F, "Apple, Inc.", "APPLE" }, { 0x9C934E, "Xerox Corporation", "XEROX" }, { 0x9C93B0, "Megatronix (Beijing) Technology Co., Ltd.", "MEGATRONIX-BEIJING" }, { 0x9C93E4, "Private", "PRIVATE" }, { 0x9C9561, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0x9C9567, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x9C956E, "Microchip Technology Inc.", "MICROCHIP" }, { 0x9C95F8, "SmartDoor Systems, LLC", "SMARTDOOR" }, { 0x9C9613, "Lenovo Future Communication Technology (Chongqing) Company Limited", "LENOVO-FUTURE-COMMUNICATION-CHONGQING-COMPANY" }, { 0x9C9726, "Technicolor Delivery Technologies Belgium NV", "TECHNICOLOR-DELIVERY-TECHNOLOGIES-BELGIUM-NV" }, { 0x9C9789, "1MORE", "1MORE" }, { 0x9C9811, "Guangzhou Sunrise Electronics Development Co., Ltd", "GUANGZHOU-SUNRISE-ELECTRONICS-DEVELOPMENT" }, { 0x9C99A0, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x9C99CD, "Voippartners", "VOIPPARTNERS" }, { 0x9C9AC0, "LEGO System A/S", "LEGO-SYSTEM-A/S" }, { 0x9C9C1D, "Starkey Labs Inc.", "STARKEY-LABS" }, { 0x9C9C1F, "Espressif Inc.", "ESPRESSIF" }, { 0x9C9C40, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x9C9D5D, "Raden Inc", "RADEN" }, { 0x9C9D7E, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0x9C9E71, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x9CA10A, "SCLE SFE", "SCLE-SFE" }, { 0x9CA134, "Nike, Inc.", "NIKE" }, { 0x9CA2F4, "TP-Link Corporation Limited", "TP-LINK" }, { 0x9CA389, "Nokia", "NOKIA" }, { 0x9CA3A9, "Guangzhou Juan Optical and Electronical Tech Joint Stock Co., Ltd", "GUANGZHOU-JUAN-OPTICAL-AND-ELECTRONICAL-TECH-JOINT-STOCK" }, { 0x9CA3BA, "SAKURA Internet Inc.", "SAKURA-INTERNET" }, { 0x9CA513, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9CA525, "Shandong USR IOT Technology Limited", "SHANDONG-USR-IOT" }, { 0x9CA570, "eero inc.", "EERO" }, { 0x9CA577, "Osorno Enterprises Inc.", "OSORNO-ENTERPRISES" }, { 0x9CA5C0, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x9CA615, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0x9CA69D, "Whaley Technology Co.Ltd", "WHALEY" }, { 0x9CA9E4, "zte corporation", "ZTE" }, { 0x9CAA1B, "Microsoft Corporation", "MICROSOFT" }, { 0x9CAC6D, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0x9CAD97, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x9CADEF, "Obihai Technology, Inc.", "OBIHAI" }, { 0x9CAED3, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0x9CAF6F, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0x9CAFCA, "Cisco Systems, Inc", "CISCO" }, { 0x9CB008, "Ubiquitous Computing Technology Corporation", "UBIQUITOUS-COMPUTING" }, { 0x9CB206, "HMS Industrial Networks", "HMS-INDUSTRIAL-NETWORKS" }, { 0x9CB2B2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9CB2E8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9CB654, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0x9CB6D0, "Rivet Networks", "RIVET-NETWORKS" }, { 0x9CB70D, "Liteon Technology Corporation", "LITEON" }, { 0x9CB793, "Creatcomm Technology Inc.", "CREATCOMM" }, { 0x9CB8B4, "AMPAK Technology,Inc.", "AMPAK" }, { 0x9CBB98, "Shen Zhen RND Electronic Co.,LTD", "SHEN-ZHEN-RND" }, { 0x9CBCF0, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0x9CBD6E, "DERA Co., Ltd", "DERA" }, { 0x9CBD9D, "SkyDisk, Inc.", "SKYDISK" }, { 0x9CBEE0, "Biosoundlab Co., Ltd.", "BIOSOUNDLAB" }, { 0x9CBF0D, "Framework Computer LLC", "FRAMEWORK" }, { 0x9CBFCD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9CC077, "PrintCounts, LLC", "PRINTCOUNTS" }, { 0x9CC0D2, "Conductix-Wampfler GmbH", "CONDUCTIX-WAMPFLER" }, { 0x9CC12D, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0x9CC172, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9CC2C4, "Inspur Electronic Information Industry Co.,Ltd.", "INSPUR-INFORMATION-INDUSTRY" }, { 0x9CC7A6, "AVM GmbH", "AVM" }, { 0x9CC7D1, "SHARP Corporation", "SHARP" }, { 0x9CC893, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x9CC8AE, "Becton, Dickinson and Company", "BECTON-DICKINSON-AND-COMPANY" }, { 0x9CC8FC, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0x9CC950, "Baumer Holding", "BAUMER-HOLDING" }, { 0x9CC9EB, "NETGEAR", "NETGEAR" }, { 0x9CCAD9, "Nokia Corporation", "NOKIA" }, { 0x9CCBF7, "CLOUD STAR TECHNOLOGY CO., LTD.", "CLOUD-STAR" }, { 0x9CCC83, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0x9CCD82, "CHENG UEI PRECISION INDUSTRY CO.,LTD", "CHENG-UEI-PRECISION-INDUSTRY" }, { 0x9CD1D0, "Guangzhou Ronsuo Electronic Technology Co.,Ltd", "GUANGZHOU-RONSUO" }, { 0x9CD21E, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0x9CD24B, "zte corporation", "ZTE" }, { 0x9CD332, "PLC Technology Ltd", "PLC" }, { 0x9CD35B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9CD36D, "NETGEAR", "NETGEAR" }, { 0x9CD48B, "Innolux Technology Europe BV", "INNOLUX-EUROPE" }, { 0x9CD57D, "Cisco Systems, Inc", "CISCO" }, { 0x9CD643, "D-Link International", "D-LINK" }, { 0x9CD8E3, "Wuhan Huazhong Numerical Control Co., Ltd", "WUHAN-HUAZHONG-NUMERICAL-CONTROL" }, { 0x9CD917, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0x9CD9CB, "Lesira Manufacturing Pty Ltd", "LESIRA-MANUFACTURING-PTY" }, { 0x9CDA3E, "Intel Corporate", "INTEL-CORPORATE" }, { 0x9CDB07, "Yellowtec GmbH", "YELLOWTEC" }, { 0x9CDBAF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9CDBCB, "Wuhan Funshion Online Technologies Co.,Ltd", "WUHAN-FUNSHION-ONLINE-TECHNOLOGIES" }, { 0x9CDC71, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0x9CDD1F, "Intelligent Steward Co.,Ltd", "INTELLIGENT-STEWARD" }, { 0x9CDE4D, "ML vision Co.,LTD", "ML-VISION" }, { 0x9CDF03, "Harman/Becker Automotive Systems GmbH", "HARMAN/BECKER-AUTOMOTIVE" }, { 0x9CDFB1, "Shenzhen Crave Communication Co., LTD", "SHENZHEN-CRAVE-COMMUNICATION" }, { 0x9CE041, "Nokia", "NOKIA" }, { 0x9CE063, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9CE10E, "NCTech Ltd", "NCTECH" }, { 0x9CE176, "Cisco Systems, Inc", "CISCO" }, { 0x9CE1D6, "Junger Audio-Studiotechnik GmbH", "JUNGER-AUDIO-STUDIOTECHNIK" }, { 0x9CE230, "JULONG CO,.LTD.", "JULONG" }, { 0x9CE33F, "Apple, Inc.", "APPLE" }, { 0x9CE374, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0x9CE635, "Nintendo Co., Ltd.", "NINTENDO" }, { 0x9CE65E, "Apple, Inc.", "APPLE" }, { 0x9CE6E7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0x9CE7BD, "Winduskorea co., Ltd", "WINDUSKOREA" }, { 0x9CE82B, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x9CE895, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0x9CE91C, "zte corporation", "ZTE" }, { 0x9CE951, "Shenzhen Sang Fei Consumer Communications Ltd., Co.", "SHENZHEN-SANG-FEI-CONSUMER-COMMUNICATION" }, { 0x9CEA97, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0x9CEBE8, "BizLink (Kunshan) Co.,Ltd", "BIZLINK-KUNSHAN" }, { 0x9CEC61, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0x9CEDFA, "EVUlution AG", "EVULUTION" }, { 0x9CEFD5, "Panda Wireless, Inc.", "PANDA-WIRELESS" }, { 0x9CF029, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0x9CF155, "Nokia", "NOKIA" }, { 0x9CF387, "Apple, Inc.", "APPLE" }, { 0x9CF48E, "Apple, Inc.", "APPLE" }, { 0x9CF531, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x9CF61A, "Carrier Fire & Security", "CARRIER-FIRE-SECURITY" }, { 0x9CF67D, "Ricardo Prague, s.r.o.", "RICARDO-PRAGUE-S-R-O" }, { 0x9CF6DD, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x9CF86B, "AgiTech Distribution Limited - Linki", "AGITECH-DISTRIBUTION-LINKI" }, { 0x9CF8DB, "shenzhen eyunmei technology co,.ltd", "SHENZHEN-EYUNMEI" }, { 0x9CF938, "AREVA NP GmbH", "AREVA-NP" }, { 0x9CFA3C, "Daeyoung Electronics", "DAEYOUNG-ELECTRONICS" }, { 0x9CFB77, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0x9CFBD5, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0x9CFBF1, "MESOMATIC GmbH & Co.KG", "MESOMATIC" }, { 0x9CFC01, "Apple, Inc.", "APPLE" }, { 0x9CFC28, "Apple, Inc.", "APPLE" }, { 0x9CFCD1, "Aetheris Technology (Shanghai) Co., Ltd.", "AETHERIS-SHANGHAI" }, { 0x9CFCE8, "Intel Corporate", "INTEL-CORPORATE" }, { 0x9CFEA1, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0x9CFFBE, "OTSL Inc.", "OTSL" }, { 0x9CFFC2, "AVI Systems GmbH", "AVI" }, { 0xA0024A, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA002A5, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA002DC, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xA00363, "Robert Bosch Healthcare GmbH", "ROBERT-BOSCH-HEALTHCARE" }, { 0xA0043E, "Parker Hannifin Manufacturing Germany GmbH & Co. KG", "PARKER-HANNIFIN-MANUFACTURING-GERMANY" }, { 0xA00460, "NETGEAR", "NETGEAR" }, { 0xA00627, "NEXPA System", "NEXPA-SYSTEM" }, { 0xA00798, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA007B6, "Advanced Technical Support, Inc.", "ADVANCED-TECHNICAL-SUPPORT" }, { 0xA0086F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA0092E, "zte corporation", "ZTE" }, { 0xA0094C, "CenturyLink", "CENTURYLINK" }, { 0xA009ED, "Avaya Inc", "AVAYA" }, { 0xA00ABF, "Wieson Technologies Co., Ltd.", "WIESON-TECHNOLOGIES" }, { 0xA00BBA, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0xA00CA1, "SKTB SKiT", "SKTB-SKIT" }, { 0xA00F37, "Cisco Systems, Inc", "CISCO" }, { 0xA01077, "zte corporation", "ZTE" }, { 0xA01081, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA01290, "Avaya Inc", "AVAYA" }, { 0xA012DB, "TABUCHI ELECTRIC CO.,LTD", "TABUCHI-ELECTRIC" }, { 0xA0133B, "HiTi Digital, Inc.", "HITI-DIGITAL" }, { 0xA013CB, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xA0143D, "PARROT SA", "PARROT" }, { 0xA0165C, "Triteka LTD", "TRITEKA" }, { 0xA017F1, "Allwinner Technology Co., Ltd", "ALLWINNER" }, { 0xA01828, "Apple, Inc.", "APPLE" }, { 0xA01842, "Comtrend Corporation", "COMTREND" }, { 0xA01859, "Shenzhen Yidashi Electronics Co Ltd", "SHENZHEN-YIDASHI-ELECTRONICS" }, { 0xA01917, "Bertel S.p.a.", "BERTEL" }, { 0xA019B2, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA01B29, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xA01C05, "NIMAX TELECOM CO.,LTD.", "NIMAX-TELECOM" }, { 0xA01C87, "UNION MAN TECHNOLOGY CO.,LTD", "UNION-MAN" }, { 0xA01C8D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA01D48, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xA01E0B, "MINIX Technology Limited", "MINIX" }, { 0xA020A6, "Espressif Inc.", "ESPRESSIF" }, { 0xA0218B, "ACE Antenna Co., ltd", "ACE-ANTENNA" }, { 0xA02195, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA021B7, "NETGEAR", "NETGEAR" }, { 0xA0224E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA022DE, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xA0231B, "TeleComp R&D Corp.", "TELECOMP-R-D" }, { 0xA0239F, "Cisco Systems, Inc", "CISCO" }, { 0xA024F9, "Chengdu InnovaTest Technology Co., Ltd", "CHENGDU-INNOVATEST" }, { 0xA025D7, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xA027B6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA02833, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA028ED, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0xA02919, "Dell Inc.", "DELL" }, { 0xA02942, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA029BD, "Team Group Inc", "TEAM-GROUP" }, { 0xA02BB8, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xA02C36, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0xA02D13, "AirTies Wireless Networks", "AIRTIES-WIRELESS-NETWORKS" }, { 0xA02EF3, "United Integrated Services Co., Led.", "UNITED-INTEGRATED-SERVICES-LED" }, { 0xA03131, "Procenne Digital Security", "PROCENNE-DIGITAL-SECURITY" }, { 0xA031DB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA031EB, "Semikron Elektronik GmbH & Co. KG", "SEMIKRON-ELEKTRONIK" }, { 0xA03299, "Lenovo (Beijing) Co., Ltd.", "LENOVO-BEIJING" }, { 0xA0341B, "Adero Inc", "ADERO" }, { 0xA03679, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA0369F, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA036BC, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xA036F0, "Comprehensive Power", "COMPREHENSIVE-POWER" }, { 0xA036FA, "Ettus Research LLC", "ETTUS-RESEARCH" }, { 0xA03768, "Shenzhen E-Life Intelligence Technology Co.,Ltd.", "SHENZHEN-E-LIFE-INTELLIGENCE" }, { 0xA038F8, "OURA Health Oy", "OURA-HEALTH-OY" }, { 0xA03975, "Leo Bodnar Electronics Ltd", "LEO-BODNAR-ELECTRONICS" }, { 0xA039EE, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xA039F7, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xA03A75, "PSS Belgium N.V.", "PSS-BELGIUM-N-V" }, { 0xA03B01, "Kyung In Electronics", "KYUNG-IN-ELECTRONICS" }, { 0xA03B1B, "Inspire Tech", "INSPIRE-TECH" }, { 0xA03BE3, "Apple, Inc.", "APPLE" }, { 0xA03C31, "Shenzhen Belon Technology CO.,LTD", "SHENZHEN-BELON" }, { 0xA03D6E, "Cisco Systems, Inc", "CISCO" }, { 0xA03D6F, "Cisco Systems, Inc", "CISCO" }, { 0xA03E6B, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA04025, "Actioncable, Inc.", "ACTIONCABLE" }, { 0xA04041, "SAMWONFA Co.,Ltd.", "SAMWONFA" }, { 0xA0406F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA040A0, "NETGEAR", "NETGEAR" }, { 0xA0412D, "Lansen Systems AB", "LANSEN-AB" }, { 0xA04147, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA0415E, "Opsens Solution Inc.", "OPSENS-SOLUTION" }, { 0xA041A7, "NL Ministry of Defense", "NL-MINISTRY-OF-DEFENSE" }, { 0xA0423F, "Tyan Computer Corp", "TYAN" }, { 0xA04246, "IT Telecom Co., Ltd.", "IT-TELECOM" }, { 0xA042D1, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA043B0, "Hangzhou BroadLink Technology Co.,Ltd", "HANGZHOU-BROADLINK" }, { 0xA043DB, "Sitael S.p.A.", "SITAEL" }, { 0xA0445C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA04466, "Intellics", "INTELLICS" }, { 0xA044F3, "RafaelMicro", "RAFAELMICRO" }, { 0xA0465A, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xA047D7, "Best IT World (India) Pvt Ltd", "BEST-IT-WORLD-INDIA-PVT" }, { 0xA0481C, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xA04A5E, "Microsoft Corporation", "MICROSOFT" }, { 0xA04C0C, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0xA04C5B, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0xA04CC1, "Helixtech Corp.", "HELIXTECH" }, { 0xA04E01, "CENTRAL ENGINEERING co.,ltd.", "CENTRAL-ENGINEERING" }, { 0xA04E04, "Nokia Corporation", "NOKIA" }, { 0xA04EA7, "Apple, Inc.", "APPLE" }, { 0xA04ECF, "Apple, Inc.", "APPLE" }, { 0xA04F85, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xA04FD4, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0xA0510B, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA051C6, "Avaya Inc", "AVAYA" }, { 0xA05394, "Shenzhen zediel co., Ltd.", "SHENZHEN-ZEDIEL" }, { 0xA0554F, "Cisco Systems, Inc", "CISCO" }, { 0xA055DE, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA056B2, "Harman/Becker Automotive Systems GmbH", "HARMAN/BECKER-AUTOMOTIVE" }, { 0xA056F3, "Apple, Inc.", "APPLE" }, { 0xA057E3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA0593A, "V.D.S. Video Display Systems srl", "V-D-S-VIDEO-DISPLAY-SRL" }, { 0xA05950, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA05AA4, "Grand Products Nevada, Inc.", "GRAND-PRODUCTS-NEVADA" }, { 0xA05B21, "ENVINET GmbH", "ENVINET" }, { 0xA05DC1, "TMCT Co., LTD.", "TMCT" }, { 0xA05DE7, "DIRECTV, Inc.", "DIRECTV" }, { 0xA05E6B, "MELPER Co., Ltd.", "MELPER" }, { 0xA06032, "Amcrest Technologies", "AMCREST-TECHNOLOGIES" }, { 0xA06090, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA06260, "Private", "PRIVATE" }, { 0xA062FB, "HISENSE VISUAL TECHNOLOGY CO.,LTD", "HISENSE-VISUAL" }, { 0xA06391, "NETGEAR", "NETGEAR" }, { 0xA0648F, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xA06518, "VNPT TECHNOLOGY", "VNPT" }, { 0xA06610, "FUJITSU LIMITED", "FUJITSU" }, { 0xA06636, "Intracom SA Telecom Solutions", "INTRACOM-TELECOM-SOLUTIONS" }, { 0xA06720, "China Dragon Technology Limited", "CHINA-DRAGON" }, { 0xA067BE, "Sicon srl", "SICON-SRL" }, { 0xA0681C, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0xA0687E, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA06974, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0xA06986, "Wellav Technologies Ltd", "WELLAV-TECHNOLOGIES" }, { 0xA069D9, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xA06A00, "Verilink Corporation", "VERILINK" }, { 0xA06A44, "Vizio, Inc", "VIZIO" }, { 0xA06C65, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xA06CEC, "RIM", "RIM" }, { 0xA06D09, "Intelcan Technosystems Inc.", "INTELCAN-TECHNOSYSTEMS" }, { 0xA06E50, "Nanotek Elektronik Sistemler Ltd. Sti.", "NANOTEK-ELEKTRONIK-SISTEMLER-STI" }, { 0xA06FAA, "LG Innotek", "LG-INNOTEK" }, { 0xA07099, "Beijing Huacan Electronics Co., Ltd", "BEIJING-HUACAN-ELECTRONICS" }, { 0xA070B7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA071A9, "Nokia Corporation", "NOKIA" }, { 0xA0722C, "HUMAX Co., Ltd.", "HUMAX" }, { 0xA072E4, "NJ SYSTEM CO.,LTD", "NJ-SYSTEM" }, { 0xA07332, "Cashmaster International Limited", "CASHMASTER" }, { 0xA073FC, "Rancore Technologies Private Limited", "RANCORE-TECHNOLOGIES-PRIVATE" }, { 0xA07591, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA075EA, "BoxLock, Inc.", "BOXLOCK" }, { 0xA0764E, "Espressif Inc.", "ESPRESSIF" }, { 0xA07751, "ASMedia Technology Inc.", "ASMEDIA" }, { 0xA07771, "Vialis BV", "VIALIS" }, { 0xA0779E, "Chipsea Technologies (Shenzhen) Corp.", "CHIPSEA-TECHNOLOGIES-SHENZHEN" }, { 0xA07817, "Apple, Inc.", "APPLE" }, { 0xA078BA, "Pantech Co., Ltd.", "PANTECH" }, { 0xA07F8A, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xA08069, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA0821F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA08222, "Qingdao Haier Technology Co.,Ltd", "QINGDAO-HAIER" }, { 0xA082AC, "Linear DMS Solutions Sdn. Bhd.", "LINEAR-DMS-SOLUTIONS" }, { 0xA082C7, "P.T.I Co.,LTD", "P-T-I" }, { 0xA083B4, "HeNet B.V.", "HENET-B-V" }, { 0xA084CB, "SonicSensory,Inc.", "SONICSENSORY" }, { 0xA085FC, "Microsoft Corporation", "MICROSOFT" }, { 0xA0861D, "Chengdu Fuhuaxin Technology co.,Ltd", "CHENGDU-FUHUAXIN" }, { 0xA086C6, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xA086EC, "SAEHAN HITEC Co., Ltd", "SAEHAN-HITEC" }, { 0xA08869, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA0889D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA088B4, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA088C2, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0xA089E4, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0xA08A87, "HuiZhou KaiYue Electronic Co.,Ltd", "HUIZHOU-KAIYUE" }, { 0xA08C15, "Gerhard D. Wempe KG", "GERHARD-D-WEMPE" }, { 0xA08C9B, "Xtreme Technologies Corp", "XTREME-TECHNOLOGIES" }, { 0xA08CF2, "YINUOLINK CO.,LTD", "YINUOLINK" }, { 0xA08CF8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA08CFD, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xA08D16, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA08E24, "eero inc.", "EERO" }, { 0xA08E78, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xA090DE, "VEEDIMS,LLC", "VEEDIMS" }, { 0xA09169, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xA091A2, "OnePlus Electronics (Shenzhen) Co., Ltd.", "ONEPLUS-ELECTRONICS-SHENZHEN" }, { 0xA091C8, "zte corporation", "ZTE" }, { 0xA09208, "Tuya Smart Inc.", "TUYA-SMART" }, { 0xA09347, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xA09351, "Cisco Systems, Inc", "CISCO" }, { 0xA0941A, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xA0946A, "Shenzhen XGTEC Technology Co,.Ltd.", "SHENZHEN-XGTEC" }, { 0xA0950C, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0xA0957F, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0xA09805, "OpenVox Communication Co Ltd", "OPENVOX-COMMUNICATION" }, { 0xA098ED, "Shandong Intelligent Optical Communication Development Co., Ltd.", "SHANDONG-INTELLIGENT-OPTICAL-COMMUNICATION-DEVELOPMENT" }, { 0xA0999B, "Apple, Inc.", "APPLE" }, { 0xA09A5A, "Time Domain", "TIME-DOMAIN" }, { 0xA09B12, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0xA09B17, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xA09BBD, "Total Aviation Solutions Pty Ltd", "TOTAL-AVIATION-SOLUTIONS-PTY" }, { 0xA09D86, "Alcatel-Lucent Shanghai Bell Co., Ltd", "ALCATEL-LUCENT-SHANGHAI-BELL" }, { 0xA09D91, "SoundBridge", "SOUNDBRIDGE" }, { 0xA09DC1, "China Dragon Technology Limited", "CHINA-DRAGON" }, { 0xA09E1A, "Polar Electro Oy", "POLAR-ELECTRO-OY" }, { 0xA09F10, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0xA09F7A, "D-Link Middle East FZCO", "D-LINK-MIDDLE-EAST-FZCO" }, { 0xA0A001, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xA0A0DC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA0A130, "DLI Taiwan Branch office", "DLI-TAIWAN-BRANCH-OFFICE" }, { 0xA0A23C, "GPMS", "GPMS" }, { 0xA0A309, "Apple, Inc.", "APPLE" }, { 0xA0A33B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA0A3B3, "Espressif Inc.", "ESPRESSIF" }, { 0xA0A3B8, "WISCLOUD", "WISCLOUD" }, { 0xA0A3E2, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0xA0A3F0, "D-Link International", "D-LINK" }, { 0xA0A4C5, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA0A65C, "Supercomputing Systems AG", "SUPERCOMPUTING" }, { 0xA0A763, "Polytron Vertrieb GmbH", "POLYTRON-VERTRIEB" }, { 0xA0A8CD, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA0AAFD, "EraThink Technologies Corp.", "ERATHINK-TECHNOLOGIES" }, { 0xA0AB1B, "D-Link International", "D-LINK" }, { 0xA0AB51, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0xA0AC69, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA0ADA1, "JMR Electronics, Inc", "JMR-ELECTRONICS" }, { 0xA0AF12, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA0AFBD, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA0B045, "Halong Mining", "HALONG-MINING" }, { 0xA0B086, "Hirschmann Automation and Control GmbH", "HIRSCHMANN-AUTOMATION-AND-CONTROL" }, { 0xA0B100, "ShenZhen Cando Electronics Co.,Ltd", "SHENZHEN-CANDO-ELECTRONICS" }, { 0xA0B339, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA0B3CC, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xA0B437, "GD Mission Systems", "GD-MISSION" }, { 0xA0B439, "Cisco Systems, Inc", "CISCO" }, { 0xA0B4A5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA0B4BF, "InfiNet LLC", "INFINET" }, { 0xA0B53C, "Technicolor Delivery Technologies Belgium NV", "TECHNICOLOR-DELIVERY-TECHNOLOGIES-BELGIUM-NV" }, { 0xA0B549, "Arcadyan Corporation", "ARCADYAN" }, { 0xA0B5DA, "HongKong THTF Co., Ltd", "HONGKONG-THTF" }, { 0xA0B662, "Acutvista Innovation Co., Ltd.", "ACUTVISTA-INNOVATION" }, { 0xA0B765, "Espressif Inc.", "ESPRESSIF" }, { 0xA0B8F8, "Amgen U.S.A. Inc.", "AMGEN-U" }, { 0xA0B9ED, "Skytap", "SKYTAP" }, { 0xA0BAB8, "Pixon Imaging", "PIXON-IMAGING" }, { 0xA0BB3E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA0BD1D, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0xA0BDCD, "SKY UK LIMITED", "SKY-UK" }, { 0xA0BF50, "S.C. ADD-PRODUCTION S.R.L.", "S-C-ADD-PRODUCTION" }, { 0xA0BFA5, "CORESYS", "CORESYS" }, { 0xA0C20D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA0C2DE, "Costar Video Systems", "COSTAR-VIDEO" }, { 0xA0C3DE, "Triton Electronic Systems Ltd.", "TRITON" }, { 0xA0C4A5, "SYGN HOUSE INC.", "SYGN-HOUSE" }, { 0xA0C562, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA0C589, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA0C5F2, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA0C6EC, "ShenZhen ANYK Technology Co.,LTD", "SHENZHEN-ANYK" }, { 0xA0C98B, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0xA0C9A0, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xA0CAA5, "INTELLIGENCE TECHNOLOGY OF CEC CO., LTD", "INTELLIGENCE-OF-CEC" }, { 0xA0CBFD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA0CC2B, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xA0CDF3, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xA0CEC8, "CE LINK LIMITED", "CE-LINK" }, { 0xA0CF5B, "Cisco Systems, Inc", "CISCO" }, { 0xA0CFF5, "zte corporation", "ZTE" }, { 0xA0D05B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA0D0DC, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xA0D12A, "AXPRO Technology Inc.", "AXPRO" }, { 0xA0D2B1, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xA0D37A, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA0D385, "AUMA Riester GmbH & Co. KG", "AUMA-RIESTER" }, { 0xA0D3C1, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xA0D635, "WBS Technology", "WBS" }, { 0xA0D722, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA0D795, "Apple, Inc.", "APPLE" }, { 0xA0D7A0, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA0D7F3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA0D807, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA0D83D, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xA0D86F, "ARGO AI, LLC", "ARGO-AI" }, { 0xA0DA92, "Nanjing Glarun Atten Technology Co. Ltd.", "NANJING-GLARUN-ATTEN" }, { 0xA0DC04, "Becker-Antriebe GmbH", "BECKER-ANTRIEBE" }, { 0xA0DD97, "PolarLink Technologies, Ltd", "POLARLINK-TECHNOLOGIES" }, { 0xA0DDE5, "SHARP Corporation", "SHARP" }, { 0xA0DE05, "JSC Irbis-T", "JSC-IRBIS-T" }, { 0xA0DE0F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA0DF15, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA0E0AF, "Cisco Systems, Inc", "CISCO" }, { 0xA0E201, "AVTrace Ltd.(China)", "AVTRACE-CHINA" }, { 0xA0E25A, "Amicus SK, s.r.o.", "AMICUS-SK-S-R-O" }, { 0xA0E295, "DAT System Co.,Ltd", "DAT-SYSTEM" }, { 0xA0E453, "Sony Corporation", "SONY" }, { 0xA0E4CB, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xA0E534, "Stratec Biomedical AG", "STRATEC-BIOMEDICAL" }, { 0xA0E5E9, "enimai Inc", "ENIMAI" }, { 0xA0E617, "MATIS", "MATIS" }, { 0xA0E6F8, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xA0E70B, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA0E7AE, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA0E9DB, "Ningbo FreeWings Technologies Co.,Ltd", "NINGBO-FREEWINGS-TECHNOLOGIES" }, { 0xA0EB76, "AirCUVE Inc.", "AIRCUVE" }, { 0xA0EC80, "zte corporation", "ZTE" }, { 0xA0ECF9, "Cisco Systems, Inc", "CISCO" }, { 0xA0ED6D, "Ubee Interactive Co., Limited", "UBEE-INTERACTIVE" }, { 0xA0EDCD, "Apple, Inc.", "APPLE" }, { 0xA0EDFB, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0xA0EF84, "Seine Image Int'l Co., Ltd", "SEINE-IMAGE" }, { 0xA0F217, "GE Medical System(China) Co., Ltd.", "GE-MEDICAL-SYSTEM-CHINA" }, { 0xA0F3C1, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xA0F3E4, "Alcatel-Lucent IPD", "ALCATEL-LUCENT-IPD" }, { 0xA0F419, "Nokia Corporation", "NOKIA" }, { 0xA0F450, "HTC Corporation", "HTC" }, { 0xA0F459, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0xA0F479, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA0F6FD, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xA0F849, "Cisco Systems, Inc", "CISCO" }, { 0xA0F895, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0xA0F9B7, "Ademco Smart Homes Technology(Tianjin)Co.,Ltd.", "ADEMCO-SMART-HOMES-TIANJIN" }, { 0xA0F9E0, "VIVATEL COMPANY LIMITED", "VIVATEL-COMPANY" }, { 0xA0FB83, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0xA0FBC5, "Apple, Inc.", "APPLE" }, { 0xA0FC6E, "Telegrafia a.s.", "TELEGRAFIA" }, { 0xA0FE61, "Vivint Wireless Inc.", "VIVINT-WIRELESS" }, { 0xA0FE91, "AVAT Automation GmbH", "AVAT-AUTOMATION" }, { 0xA0FF0C, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xA0FF22, "SHENZHEN APICAL TECHNOLOGY CO., LTD", "SHENZHEN-APICAL" }, { 0xA0FF70, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xA400E2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA40130, "ABIsystems Co., LTD", "ABISYSTEMS" }, { 0xA402B9, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA40450, "nFore Technology Inc.", "NFORE" }, { 0xA4056E, "Tiinlab Corporation", "TIINLAB" }, { 0xA4059E, "STA Infinity LLP", "STA-INFINITY-LLP" }, { 0xA405D6, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA406E9, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xA407B6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA40801, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xA408EA, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xA408F5, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xA409CB, "Alfred Kaercher GmbH & Co KG", "ALFRED-KAERCHER-AMP" }, { 0xA40BED, "Carry Technology Co.,Ltd", "CARRY" }, { 0xA40C66, "Shenzhen Colorful Yugong Technology and Development Co., Ltd.", "SHENZHEN-COLORFUL-YUGONG-AND-DEVELOPMENT" }, { 0xA40CC3, "Cisco Systems, Inc", "CISCO" }, { 0xA40DBC, "Xiamen Intretech Inc.", "XIAMEN-INTRETECH" }, { 0xA40E2B, "Facebook Inc", "FACEBOOK" }, { 0xA40E75, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xA40F98, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xA41115, "Robert Bosch Engineering and Business Solutions pvt. Ltd.", "ROBERT-BOSCH-ENGINEERING-AND-BUSINESS-SOLUTIONS-PVT" }, { 0xA41162, "Arlo Technology", "ARLO" }, { 0xA41163, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA41194, "Lenovo", "LENOVO" }, { 0xA411BB, "Cisco Systems, Inc", "CISCO" }, { 0xA41232, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xA41242, "NEC Platforms, Ltd.", "NEC-PLATFORMS" }, { 0xA4134E, "Luxul", "LUXUL" }, { 0xA41437, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xA41566, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0xA41588, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA416C0, "Apple, Inc.", "APPLE" }, { 0xA416E7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA41731, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xA41752, "Hifocus Electronics India Private Limited", "HIFOCUS-ELECTRONICS-INDIA-PRIVATE" }, { 0xA4178B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA41791, "Shenzhen Decnta Technology Co.,LTD.", "SHENZHEN-DECNTA" }, { 0xA41875, "Cisco Systems, Inc", "CISCO" }, { 0xA41894, "Bosch Security Systems B.V.", "BOSCH-SECURITY-B-V" }, { 0xA41908, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xA41A3A, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xA41B34, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xA41BC0, "Fastec Imaging Corporation", "FASTEC-IMAGING" }, { 0xA41CB4, "DFI Inc", "DFI" }, { 0xA41EE1, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xA41F72, "Dell Inc.", "DELL" }, { 0xA4218A, "Nortel Networks", "NORTEL-NETWORKS" }, { 0xA42249, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xA42305, "Open Networking Laboratory", "OPEN-NETWORKING-LABORATORY" }, { 0xA424B3, "FlatFrog Laboratories AB", "FLATFROG-LABORATORIES-AB" }, { 0xA424DD, "Cambrionix Ltd", "CAMBRIONIX" }, { 0xA4251B, "Avaya Inc", "AVAYA" }, { 0xA42618, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xA42655, "LTI Motion (Shanghai) Co., Ltd.", "LTI-MOTION-SHANGHAI" }, { 0xA428B7, "Yangtze Memory Technologies Co., Ltd.", "YANGTZE-MEMORY-TECHNOLOGIES" }, { 0xA42940, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xA42983, "Boeing Defence Australia", "BOEING-DEFENCE-AUSTRALIA" }, { 0xA42985, "Sichuan AI-Link Technology Co., Ltd.", "SICHUAN-AI-LINK" }, { 0xA429B7, "bluesky", "BLUESKY" }, { 0xA42A71, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xA42A95, "D-Link International", "D-LINK" }, { 0xA42B8C, "NETGEAR", "NETGEAR" }, { 0xA42BB0, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xA42C08, "Masterwork Automodules", "MASTERWORK-AUTOMODULES" }, { 0xA4307A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA43111, "ZIV", "ZIV" }, { 0xA43135, "Apple, Inc.", "APPLE" }, { 0xA433D1, "Fibrlink Communications Co.,Ltd.", "FIBRLINK-COMMUNICATION" }, { 0xA433D7, "MitraStar Technology Corp.", "MITRASTAR" }, { 0xA43412, "Thales Alenia Space", "THALES-ALENIA-SPACE" }, { 0xA434D9, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA434F1, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xA43523, "Guangdong Donyan Network Technologies Co.,Ltd.", "GUANGDONG-DONYAN-NETWORK-TECHNOLOGIES" }, { 0xA4352D, "TRIZ Networks corp.", "TRIZ-NETWORKS" }, { 0xA436C7, "LG Innotek", "LG-INNOTEK" }, { 0xA43831, "RF elements s.r.o.", "RF-ELEMENTS-S-R-O" }, { 0xA438CC, "Nintendo Co.,Ltd", "NINTENDO" }, { 0xA438FC, "Plastic Logic", "PLASTIC-LOGIC" }, { 0xA439B3, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0xA439B6, "SHENZHEN PEIZHE MICROELECTRONICS CO .LTD", "SHENZHEN-PEIZHE-MICROELECTRONICS" }, { 0xA43A69, "Vers Inc", "VERS" }, { 0xA43B0E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA43BFA, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA43D78, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xA43E51, "ANOV FRANCE", "ANOV-FRANCE" }, { 0xA43EA0, "iComm HK LIMITED", "ICOMM-HK" }, { 0xA43F51, "Shenzhen Benew Technology Co.,Ltd.", "SHENZHEN-BENEW" }, { 0xA44027, "zte corporation", "ZTE" }, { 0xA4423B, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA4438C, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA444D1, "Wingtech Group (HongKong)Limited", "WINGTECH-GROUP-HONGKONG" }, { 0xA44519, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xA445CD, "IoT Diagnostics", "IOT-DIAGNOSTICS" }, { 0xA4466B, "EOC Technology", "EOC" }, { 0xA446B4, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA446FA, "AmTRAN Video Corporation", "AMTRAN-VIDEO" }, { 0xA44AD3, "ST Electronics(Shanghai) Co.,Ltd", "ST-ELECTRONICS-SHANGHAI" }, { 0xA44B15, "Sun Cupid Technology (HK) LTD", "SUN-CUPID-HK" }, { 0xA44BD5, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xA44C11, "Cisco Systems, Inc", "CISCO" }, { 0xA44C62, "Hangzhou Microimage Software Co., Ltd", "HANGZHOU-MICROIMAGE-SOFTWARE" }, { 0xA44CC8, "Dell Inc.", "DELL" }, { 0xA44E2D, "Adaptive Wireless Solutions, LLC", "ADAPTIVE-WIRELESS-SOLUTIONS" }, { 0xA44E31, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA44F29, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA45006, "SHENZHEN HUACHUANG SHIDAI TECHNOLOGYCO.,LTD", "SHENZHEN-HUACHUANG-SHIDAI-TECHNOLOGYCO" }, { 0xA45046, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xA45055, "BUSWARE.DE", "BUSWARE-DE" }, { 0xA45129, "XAG", "XAG" }, { 0xA4515E, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xA4516F, "Microsoft Mobile Oy", "MICROSOFT-MOBILE-OY" }, { 0xA4526F, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0xA4530E, "Cisco Systems, Inc", "CISCO" }, { 0xA45385, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0xA453EE, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA45590, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xA45602, "fenglian Technology Co.,Ltd.", "FENGLIAN" }, { 0xA4561B, "MCOT Corporation", "MCOT" }, { 0xA45630, "Cisco Systems, Inc", "CISCO" }, { 0xA456CC, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xA45802, "SHIN-IL TECH", "SHIN-IL-TECH" }, { 0xA4580F, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA45A1C, "smart-electronic GmbH", "SMART" }, { 0xA45C27, "Nintendo Co., Ltd.", "NINTENDO" }, { 0xA45D36, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xA45D5E, "Wilk Elektronik S.A.", "WILK-ELEKTRONIK" }, { 0xA45DA1, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0xA45E5A, "ACTIVIO Inc.", "ACTIVIO" }, { 0xA45E60, "Apple, Inc.", "APPLE" }, { 0xA45F9B, "Nexell", "NEXELL" }, { 0xA45FB9, "DreamBig Semiconductor, Inc.", "DREAMBIG-SEMICONDUCTOR" }, { 0xA46011, "Verifone", "VERIFONE" }, { 0xA46032, "MRV Communications (Networks) LTD", "MRV-COMMUNICATION-NETWORKS" }, { 0xA46191, "NamJunSa", "NAMJUNSA" }, { 0xA462DF, "DS Global. Co., LTD", "DS-GLOBAL" }, { 0xA463A1, "Inventus Power Eletronica do Brasil LTDA", "INVENTUS-POWER-ELETRONICA-DO-BRASIL-LTDA" }, { 0xA46706, "Apple, Inc.", "APPLE" }, { 0xA468BC, "Oakley Inc.", "OAKLEY" }, { 0xA46BB6, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA46C24, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA46C2A, "Cisco Systems, Inc", "CISCO" }, { 0xA46CC1, "LTi REEnergy GmbH", "LTI-REENERGY" }, { 0xA46CF1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA46DA4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA46DD4, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xA46E79, "DFT System Co.Ltd", "DFT-SYSTEM" }, { 0xA470D6, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xA47174, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA475B9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA47733, "Google, Inc.", "GOOGLE" }, { 0xA47758, "Ningbo Freewings Technologies Co.,Ltd", "NINGBO-FREEWINGS-TECHNOLOGIES" }, { 0xA47760, "Nokia Corporation", "NOKIA" }, { 0xA477F3, "Apple, Inc.", "APPLE" }, { 0xA47806, "Cisco Systems, Inc", "CISCO" }, { 0xA47886, "Avaya Inc", "AVAYA" }, { 0xA47952, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA479E4, "KLINFO Corp", "KLINFO" }, { 0xA47AA4, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA47ACF, "VIBICOM COMMUNICATIONS INC.", "VIBICOM-COMMUNICATION" }, { 0xA47B1A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA47B2C, "Nokia", "NOKIA" }, { 0xA47B85, "ULTIMEDIA Co Ltd,", "ULTIMEDIA" }, { 0xA47B9D, "Espressif Inc.", "ESPRESSIF" }, { 0xA47C14, "ChargeStorm AB", "CHARGESTORM-AB" }, { 0xA47C1F, "Cobham plc", "COBHAM-PLC" }, { 0xA47CC9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA47D9F, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0xA47E36, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0xA47E39, "zte corporation", "ZTE" }, { 0xA47EFA, "Withings", "WITHINGS" }, { 0xA4817A, "CIG SHANGHAI CO LTD", "CIG-SHANGHAI" }, { 0xA481EE, "Nokia Corporation", "NOKIA" }, { 0xA48269, "Datrium, Inc.", "DATRIUM" }, { 0xA483E7, "Apple, Inc.", "APPLE" }, { 0xA48431, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA4856B, "Q Electronics Ltd", "Q-ELECTRONICS" }, { 0xA486AE, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0xA48873, "Cisco Systems, Inc", "CISCO" }, { 0xA4895B, "ARK INFOSOLUTIONS PVT LTD", "ARK-INFOSOLUTIONS-PVT" }, { 0xA4897E, "Guangzhou Yuhong Technology Co.,Ltd.", "GUANGZHOU-YUHONG" }, { 0xA48CC0, "JLG Industries, Inc.", "JLG-INDUSTRIES" }, { 0xA48CDB, "Lenovo", "LENOVO" }, { 0xA48D3B, "Vizio, Inc", "VIZIO" }, { 0xA48E0A, "DeLaval International AB", "DELAVAL-AB" }, { 0xA49005, "CHINA GREATWALL COMPUTER SHENZHEN CO.,LTD", "CHINA-GREATWALL-SHENZHEN" }, { 0xA490CE, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xA491B1, "Technicolor Delivery Technologies Belgium NV", "TECHNICOLOR-DELIVERY-TECHNOLOGIES-BELGIUM-NV" }, { 0xA492CB, "Nokia", "NOKIA" }, { 0xA4933F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA49340, "Beijing Supvan Information Technology Co.,Ltd.", "BEIJING-SUPVAN-INFORMATION" }, { 0xA4934C, "Cisco Systems, Inc", "CISCO" }, { 0xA49426, "Elgama-Elektronika Ltd.", "ELGAMA-ELEKTRONIKA" }, { 0xA494DC, "Infinite Clouds", "INFINITE-CLOUDS" }, { 0xA49733, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xA4975C, "VTech Telecommunications Ltd.", "VTECH-TELECOMMUNICATIONS" }, { 0xA497B1, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0xA497BB, "Hitachi Industrial Equipment Systems Co.,Ltd", "HITACHI-INDUSTRIAL-EQUIPMENT" }, { 0xA49813, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA49947, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA49981, "FuJian Elite Power Tech CO.,LTD.", "FUJIAN-ELITE-POWER-TECH" }, { 0xA49A58, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA49B13, "Digital Check", "DIGITAL-CHECK" }, { 0xA49B4F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA49BCD, "Cisco Systems, Inc", "CISCO" }, { 0xA49BF5, "Hybridserver Tec GmbH", "HYBRIDSERVER-TEC" }, { 0xA49D49, "Ketra, Inc.", "KETRA" }, { 0xA49DDD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA49E69, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xA49EDB, "AutoCrib, Inc.", "AUTOCRIB" }, { 0xA49F85, "Lyve Minds, Inc", "LYVE-MINDS" }, { 0xA49F89, "Shanghai Rui Rui Communication Technology Co.Ltd.", "SHANGHAI-RUI-RUI-COMMUNICATION" }, { 0xA4A179, "Nanjing dianyan electric power automation co. LTD", "NANJING-DIANYAN-ELECTRIC-POWER-AUTOMATION" }, { 0xA4A1C2, "Ericsson AB", "ERICSSON-AB" }, { 0xA4A1E4, "Innotube, Inc.", "INNOTUBE" }, { 0xA4A24A, "Cisco SPVTG", "CISCO-SPVTG" }, { 0xA4A46B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA4A4D3, "Bluebank Communication Technology Co.Ltd", "BLUEBANK-COMMUNICATION" }, { 0xA4A528, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xA4A6A9, "Private", "PRIVATE" }, { 0xA4A80F, "Shenzhen Coship Electronics Co., Ltd.", "SHENZHEN-COSHIP-ELECTRONICS" }, { 0xA4A930, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0xA4AAFE, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA4AC0F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA4AD00, "Ragsdale Technology", "RAGSDALE" }, { 0xA4ADB8, "Vitec Group, Camera Dynamics Ltd", "VITEC-GROUP-CAMERA-DYNAMICS" }, { 0xA4AE11, "Hon Hai Precision Industry Co., Ltd.", "HON-HAI-PRECISION-INDUSTRY" }, { 0xA4AE12, "Hon Hai Precision Industry Co., Ltd.", "HON-HAI-PRECISION-INDUSTRY" }, { 0xA4AE9A, "Maestro Wireless Solutions ltd.", "MAESTRO-WIRELESS-SOLUTIONS" }, { 0xA4B121, "Arantia 2010 S.L.", "ARANTIA-2010" }, { 0xA4B197, "Apple, Inc.", "APPLE" }, { 0xA4B1C1, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA4B1E9, "Technicolor Delivery Technologies Belgium NV", "TECHNICOLOR-DELIVERY-TECHNOLOGIES-BELGIUM-NV" }, { 0xA4B1EE, "H. ZANDER GmbH & Co. KG", "H-ZANDER" }, { 0xA4B239, "Cisco Systems, Inc", "CISCO" }, { 0xA4B2A7, "Adaxys Solutions AG", "ADAXYS-SOLUTIONS" }, { 0xA4B36A, "JSC SDO Chromatec", "JSC-SDO-CHROMATEC" }, { 0xA4B439, "Cisco Systems, Inc", "CISCO" }, { 0xA4B52E, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xA4B61E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA4B805, "Apple, Inc.", "APPLE" }, { 0xA4B818, "PENTA Gesellschaft für elektronische Industriedatenverarbeitung mbH", "PENTA-GESELLSCHAFT-FUER-ELEKTRONISCHE-INDUSTRIEDATENVERARBEITUNG" }, { 0xA4B980, "Parking BOXX Inc.", "PARKING-BOXX" }, { 0xA4BA76, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA4BADB, "Dell Inc.", "DELL" }, { 0xA4BB6D, "Dell Inc.", "DELL" }, { 0xA4BBAF, "Lime Instruments", "LIME-INSTRUMENTS" }, { 0xA4BD7E, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0xA4BDC4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA4BE2B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA4BE61, "EutroVision System, Inc.", "EUTROVISION-SYSTEM" }, { 0xA4BF01, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA4C0C7, "ShenZhen Hitom Communication Technology Co..LTD", "SHENZHEN-HITOM-COMMUNICATION" }, { 0xA4C0E1, "Nintendo Co., Ltd.", "NINTENDO" }, { 0xA4C138, "Telink Semiconductor (Taipei) Co. Ltd.", "TELINK-SEMICONDUCTOR-TAIPEI" }, { 0xA4C23E, "Huizhou Speed Wireless Technology Co.,Ltd", "HUIZHOU-SPEED-WIRELESS" }, { 0xA4C2AB, "Hangzhou LEAD-IT Information & Technology Co.,Ltd", "HANGZHOU-LEAD-IT-INFORMATION" }, { 0xA4C337, "Apple, Inc.", "APPLE" }, { 0xA4C361, "Apple, Inc.", "APPLE" }, { 0xA4C3F0, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA4C494, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA4C54E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA4C64F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA4C69A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA4C6F0, "Apple, Inc.", "APPLE" }, { 0xA4C74B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA4C7DE, "Cambridge Industries(Group) Co.,Ltd.", "CAMBRIDGE-INDUSTRIES-GROUP" }, { 0xA4C7F6, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xA4C939, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xA4CAA0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA4CC32, "Inficomm Co., Ltd", "INFICOMM" }, { 0xA4CCB3, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xA4CCB9, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xA4CD23, "Shenzhenshi Xinzhongxin Co., Ltd", "SHENZHENSHI-XINZHONGXIN" }, { 0xA4CEDA, "Arcadyan Corporation", "ARCADYAN" }, { 0xA4CF12, "Espressif Inc.", "ESPRESSIF" }, { 0xA4CF99, "Apple, Inc.", "APPLE" }, { 0xA4CFD2, "Ubee Interactive Co., Limited", "UBEE-INTERACTIVE" }, { 0xA4D094, "VIVAVIS AG", "VIVAVIS" }, { 0xA4D18C, "Apple, Inc.", "APPLE" }, { 0xA4D18F, "Shenzhen Skyee Optical Fiber Communication Technology Ltd.", "SHENZHEN-SKYEE-OPTICAL-FIBER-COMMUNICATION" }, { 0xA4D1D1, "ECOtality North America", "ECOTALITY-NORTH-AMERICA" }, { 0xA4D1D2, "Apple, Inc.", "APPLE" }, { 0xA4D23E, "Apple, Inc.", "APPLE" }, { 0xA4D3B5, "GLITEL Stropkov, s.r.o.", "GLITEL-STROPKOV-S-R-O" }, { 0xA4D4B2, "Shenzhen MeiG Smart Technology Co.,Ltd", "SHENZHEN-MEIG-SMART" }, { 0xA4D578, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xA4D5C2, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xA4D73C, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0xA4D795, "Wingtech Mobile Communications Co.,Ltd", "WINGTECH-MOBILE-COMMUNICATION" }, { 0xA4D856, "Gimbal, Inc", "GIMBAL" }, { 0xA4D8CA, "HONG KONG WATER WORLD TECHNOLOGY CO. LIMITED", "HONG-KONG-WATER-WORLD" }, { 0xA4D931, "Apple, Inc.", "APPLE" }, { 0xA4D990, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA4D9A4, "neXus ID Solutions AB", "NEXUS-ID-SOLUTIONS-AB" }, { 0xA4DA22, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA4DA32, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xA4DA3F, "Bionics Corp.", "BIONICS" }, { 0xA4DAD4, "Yamato Denki Co.,Ltd.", "YAMATO-DENKI" }, { 0xA4DB2E, "Kingspan Environmental Ltd", "KINGSPAN-ENVIRONMENTAL" }, { 0xA4DB30, "Liteon Technology Corporation", "LITEON" }, { 0xA4DCBE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA4DD58, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA4DE26, "Sumitomo Electric Industries, Ltd", "SUMITOMO-ELECTRIC-INDUSTRIES" }, { 0xA4DE50, "Total Walther GmbH", "TOTAL-WALTHER" }, { 0xA4DEC9, "QLove Mobile Intelligence Information Technology (W.H.) Co. Ltd.", "QLOVE-MOBILE-INTELLIGENCE-INFORMATION-W-H" }, { 0xA4E0E6, "FILIZOLA S.A. PESAGEM E AUTOMACAO", "FILIZOLA-PESAGEM-E-AUTOMACAO" }, { 0xA4E11A, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xA4E31B, "Nokia", "NOKIA" }, { 0xA4E32E, "Silicon & Software Systems Ltd.", "SILICON-SOFTWARE" }, { 0xA4E391, "DENY FONTAINE", "DENY-FONTAINE" }, { 0xA4E4B8, "BlackBerry RTS", "BLACKBERRY-RTS" }, { 0xA4E57C, "Espressif Inc.", "ESPRESSIF" }, { 0xA4E597, "Gessler GmbH", "GESSLER" }, { 0xA4E615, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0xA4E6B1, "Shanghai Joindata Technology Co.,Ltd.", "SHANGHAI-JOINDATA" }, { 0xA4E731, "Nokia Corporation", "NOKIA" }, { 0xA4E7E4, "Connex GmbH", "CONNEX" }, { 0xA4E8A3, "Fujian Newland Auto-ID Tech Co.,Ltd.", "FUJIAN-NEWLAND-AUTO-ID-TECH" }, { 0xA4E975, "Apple, Inc.", "APPLE" }, { 0xA4E991, "SISTEMAS AUDIOVISUALES ITELSIS S.L.", "SISTEMAS-AUDIOVISUALES-ITELSIS" }, { 0xA4E9A3, "Honest Technology Co., Ltd", "HONEST" }, { 0xA4EA8E, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xA4EBD3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA4ED43, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA4ED4E, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA4EE57, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0xA4EF15, "AltoBeam (China) Inc.", "ALTOBEAM-CHINA" }, { 0xA4EF52, "Telewave Co., Ltd.", "TELEWAVE" }, { 0xA4F05E, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xA4F1E8, "Apple, Inc.", "APPLE" }, { 0xA4F33B, "zte corporation", "ZTE" }, { 0xA4F3C1, "Open Source Robotics Foundation, Inc.", "OPEN-SOURCE-ROBOTICS-FOUNDATION" }, { 0xA4F3E7, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xA4F465, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xA4F4C2, "VNPT TECHNOLOGY", "VNPT" }, { 0xA4F522, "CHOFU SEISAKUSHO CO.,LTD", "CHOFU-SEISAKUSHO" }, { 0xA4F7D0, "LAN Accessories Co., Ltd.", "LAN-ACCESSORIES" }, { 0xA4F933, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA4F9E4, "AirVine Scientific, Inc.", "AIRVINE-SCIENTIFIC" }, { 0xA4FA76, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xA4FB8D, "Hangzhou Dunchong Technology Co.Ltd", "HANGZHOU-DUNCHONG" }, { 0xA4FC14, "Apple, Inc.", "APPLE" }, { 0xA4FC77, "Mega Well Limited", "MEGA-WELL" }, { 0xA4FCCE, "Security Expert Ltd.", "SECURITY-EXPERT" }, { 0xA4FF95, "Nokia", "NOKIA" }, { 0xA800E3, "Starkey Labs Inc.", "STARKEY-LABS" }, { 0xA8016D, "Aiwa Corporation", "AIWA" }, { 0xA80180, "IMAGO Technologies GmbH", "IMAGO-TECHNOLOGIES" }, { 0xA802DB, "zte corporation", "ZTE" }, { 0xA8032A, "Espressif Inc.", "ESPRESSIF" }, { 0xA80577, "Netlist, Inc.", "NETLIST" }, { 0xA80600, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA80BFB, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xA80C03, "Florawise", "FLORAWISE" }, { 0xA80C0D, "Cisco Systems, Inc", "CISCO" }, { 0xA80C63, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA80CCA, "Shenzhen Sundray Technologies Company Limited", "SHENZHEN-SUNDRAY-TECHNOLOGIES-COMPANY" }, { 0xA81087, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xA811FC, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA81306, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xA81374, "Panasonic Corporation AVC Networks Company", "PANASONIC-AVC-NETWORKS-COMPANY" }, { 0xA8154D, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xA81559, "Breathometer, Inc.", "BREATHOMETER" }, { 0xA815D6, "Shenzhen Meione Technology CO., LTD", "SHENZHEN-MEIONE" }, { 0xA8169D, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0xA816B2, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xA816D0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA81710, "Bouffalo Lab (Nanjing) Co., Ltd.", "BOUFFALO-LAB-NANJING" }, { 0xA81758, "Elektronik System i Umeå AB", "ELEKTRONIK-SYSTEM-I-UME-AB" }, { 0xA81AF1, "Apple, Inc.", "APPLE" }, { 0xA81B18, "XTS CORP", "XTS" }, { 0xA81B5A, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xA81B5D, "Foxtel Management Pty Ltd", "FOXTEL-MANAGEMENT-PTY" }, { 0xA81B6A, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xA81D16, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xA81E84, "Quanta Computer Inc.", "QUANTA" }, { 0xA81FAF, "KRYPTON POLSKA", "KRYPTON-POLSKA" }, { 0xA82066, "Apple, Inc.", "APPLE" }, { 0xA82316, "Nokia", "NOKIA" }, { 0xA823FE, "LG Electronics", "LG-ELECTRONICS" }, { 0xA824B8, "Nokia", "NOKIA" }, { 0xA824EB, "ZAO NPO Introtest", "ZAO-NPO-INTROTEST" }, { 0xA825EB, "Cambridge Industries(Group) Co.,Ltd.", "CAMBRIDGE-INDUSTRIES-GROUP" }, { 0xA826D9, "HTC Corporation", "HTC" }, { 0xA8294C, "Precision Optical Transceivers, Inc.", "PRECISION-OPTICAL-TRANSCEIVERS" }, { 0xA82AD6, "Arthrex Inc.", "ARTHREX" }, { 0xA82BB5, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0xA82BB9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA82BCD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA82BD6, "Shina System Co., Ltd", "SHINA-SYSTEM" }, { 0xA82C3E, "Shenzhen Cultraview Digital Technology Co., Ltd", "SHENZHEN-CULTRAVIEW-DIGITAL" }, { 0xA8301C, "Qingdao Intelligent&Precise Electronics Co.,Ltd.", "QINGDAO-INTELLIGENT-PRECISE-ELECTRONICS" }, { 0xA830AD, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0xA830BC, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA8329A, "Digicom Futuristic Technologies Ltd.", "DIGICOM-FUTURISTIC-TECHNOLOGIES" }, { 0xA8346A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA83512, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA8367A, "frogblue TECHNOLOGY GmbH", "FROGBLUE" }, { 0xA83759, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA83944, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0xA83A48, "Ubiqcom India Pvt Ltd", "UBIQCOM-INDIA-PVT" }, { 0xA83A79, "Mist Systems, Inc.", "MIST" }, { 0xA83B5C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA83B76, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0xA83CCB, "ROSSMA", "ROSSMA" }, { 0xA83E0E, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0xA83ED3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA83FA1, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA8400B, "Visteon Corporation", "VISTEON" }, { 0xA84025, "Oxide Computer Company", "OXIDE-COMPANY" }, { 0xA84041, "Dragino Technology Co., Limited", "DRAGINO" }, { 0xA8407D, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0xA84122, "China Mobile (Hangzhou) Information Technology Co.,Ltd.", "CHINA-MOBILE-HANGZHOU-INFORMATION" }, { 0xA842A7, "Jiangsu Huitong Group Co.,Ltd.", "JIANGSU-HUITONG-GROUP" }, { 0xA842E3, "Espressif Inc.", "ESPRESSIF" }, { 0xA84397, "Innogrit Corporation", "INNOGRIT" }, { 0xA843A4, "China Dragon Technology Limited", "CHINA-DRAGON" }, { 0xA84481, "Nokia Corporation", "NOKIA" }, { 0xA845CD, "Siselectron Technology LTD.", "SISELECTRON" }, { 0xA845E9, "Firich Enterprises CO., LTD.", "FIRICH-ENTERPRISES" }, { 0xA8469D, "Cisco Meraki", "CISCO-MERAKI" }, { 0xA8474A, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xA848FA, "Espressif Inc.", "ESPRESSIF" }, { 0xA8494D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA849A5, "Lisantech Co., Ltd.", "LISANTECH" }, { 0xA84A28, "Apple, Inc.", "APPLE" }, { 0xA84A63, "TPV Display Technology(Xiamen) Co.,Ltd.", "TPV-DISPLAY-XIAMEN" }, { 0xA84B4D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA84D4A, "Audiowise Technology Inc.", "AUDIOWISE" }, { 0xA84E3F, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0xA84FB1, "Cisco Systems, Inc", "CISCO" }, { 0xA85081, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA8515B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA851AB, "Apple, Inc.", "APPLE" }, { 0xA852D4, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xA8537D, "Mist Systems, Inc.", "MIST" }, { 0xA854A2, "Heimgard Technologies AS", "HEIMGARD-TECHNOLOGIES-AS" }, { 0xA854B2, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0xA8556A, "3S System Technology Inc.", "3S-SYSTEM" }, { 0xA8574E, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xA85840, "Cambridge Industries(Group) Co.,Ltd.", "CAMBRIDGE-INDUSTRIES-GROUP" }, { 0xA8584E, "PK VEGA", "PK-VEGA" }, { 0xA8587C, "Shoogee GmbH & Co. KG", "SHOOGEE" }, { 0xA85AE0, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA85AF3, "Shanghai Siflower Communication Technology Co., Ltd", "SHANGHAI-SIFLOWER-COMMUNICATION" }, { 0xA85B36, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xA85B6C, "Robert Bosch Gmbh, CM-CI2", "ROBERT-BOSCH-CM-CI2" }, { 0xA85B78, "Apple, Inc.", "APPLE" }, { 0xA85BB0, "Shenzhen Dehoo Technology Co.,Ltd", "SHENZHEN-DEHOO" }, { 0xA85BB7, "Apple, Inc.", "APPLE" }, { 0xA85BF3, "Audivo GmbH", "AUDIVO" }, { 0xA85BF7, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xA85C2C, "Apple, Inc.", "APPLE" }, { 0xA85E45, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xA85EE4, "12Sided Technology, LLC", "12SIDED" }, { 0xA85EF2, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0xA860B6, "Apple, Inc.", "APPLE" }, { 0xA8610A, "ARDUINO AG", "ARDUINO" }, { 0xA861AA, "Cloudview Limited", "CLOUDVIEW" }, { 0xA861DF, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xA862A2, "JIWUMEDIA CO., LTD.", "JIWUMEDIA" }, { 0xA8637D, "D-Link International", "D-LINK" }, { 0xA863DF, "DISPLAIRE CORPORATION", "DISPLAIRE" }, { 0xA863F2, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xA86405, "nimbus 9, Inc", "NIMBUS-9" }, { 0xA864F1, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA865B2, "DONGGUAN YISHANG ELECTRONIC TECHNOLOGY CO., LIMITED", "DONGGUAN-YISHANG" }, { 0xA8667F, "Apple, Inc.", "APPLE" }, { 0xA8671E, "RATP", "RATP" }, { 0xA8698C, "Oracle Corporation", "ORACLE" }, { 0xA86A6F, "RIM", "RIM" }, { 0xA86ABB, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xA86AC1, "HanbitEDS Co., Ltd.", "HANBITEDS" }, { 0xA86B7C, "SHENZHEN FENGLIAN TECHNOLOGY CO., LTD.", "SHENZHEN-FENGLIAN" }, { 0xA86BAD, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xA86D5F, "Raisecom Technology CO., LTD", "RAISECOM" }, { 0xA86DAA, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA86E4E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA8705D, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA870A5, "UniComm Inc.", "UNICOMM" }, { 0xA87116, "Earda Technologies co Ltd", "EARDA-TECHNOLOGIES" }, { 0xA8727E, "WISDRI (wuhan) Automation Company Limited", "WISDRI-WUHAN-AUTOMATION-COMPANY" }, { 0xA87285, "IDT, INC.", "IDT" }, { 0xA8741D, "PHOENIX CONTACT Electronics GmbH", "PHOENIX-CONTACT-ELECTRONICS" }, { 0xA87484, "zte corporation", "ZTE" }, { 0xA875D6, "FreeTek International Co., Ltd.", "FREETEK" }, { 0xA875E2, "Aventura Technologies, Inc.", "AVENTURA-TECHNOLOGIES" }, { 0xA87650, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA8776F, "Zonoff", "ZONOFF" }, { 0xA877E5, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0xA8798D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA87B39, "Nokia Corporation", "NOKIA" }, { 0xA87C01, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA87CF8, "Apple, Inc.", "APPLE" }, { 0xA87D12, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA87E33, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0xA87EEA, "Intel Corporate", "INTEL-CORPORATE" }, { 0xA88038, "ShenZhen MovingComm Technology Co., Limited", "SHENZHEN-MOVINGCOMM" }, { 0xA88055, "Tuya Smart Inc.", "TUYA-SMART" }, { 0xA8817E, "Apple, Inc.", "APPLE" }, { 0xA88195, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA881F1, "BMEYE B.V.", "BMEYE-B-V" }, { 0xA88200, "Hisense Electric Co.,Ltd", "HISENSE-ELECTRIC" }, { 0xA8827F, "CIBN Oriental Network(Beijing) CO.,Ltd", "CIBN-ORIENTAL-NETWORK-BEIJING" }, { 0xA885D7, "Sangfor Technologies Inc.", "SANGFOR-TECHNOLOGIES" }, { 0xA886DD, "Apple, Inc.", "APPLE" }, { 0xA88792, "Broadband Antenna Tracking Systems", "BROADBAND-ANTENNA-TRACKING" }, { 0xA887B3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA887ED, "ARC Wireless LLC", "ARC-WIRELESS" }, { 0xA88808, "Apple, Inc.", "APPLE" }, { 0xA8881F, "SERVERCOM (INDIA) PRIVATE LIMITED", "SERVERCOM-INDIA-PRIVATE" }, { 0xA88940, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA88B28, "SHENZHEN DIYANG SMART TECHNOLOGY CO.,LTD.", "SHENZHEN-DIYANG-SMART" }, { 0xA88C3E, "Microsoft Corporation", "MICROSOFT" }, { 0xA88CEE, "MicroMade Galka i Drozdz sp.j.", "MICROMADE-GALKA-I-DROZDZ-SP-J" }, { 0xA88D7B, "SunDroid Global limited.", "SUNDROID-GLOBAL" }, { 0xA88E24, "Apple, Inc.", "APPLE" }, { 0xA88FD9, "Apple, Inc.", "APPLE" }, { 0xA89008, "Beijing Yuecheng Technology Co. Ltd.", "BEIJING-YUECHENG" }, { 0xA89042, "Beijing Wanwei Intelligent Technology Co., Ltd.", "BEIJING-WANWEI-INTELLIGENT" }, { 0xA8913D, "Apple, Inc.", "APPLE" }, { 0xA89162, "Sophos Ltd", "SOPHOS" }, { 0xA8922C, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xA8934A, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0xA89352, "SHANGHAI ZHONGMI COMMUNICATION TECHNOLOGY CO.,LTD", "SHANGHAI-ZHONGMI-COMMUNICATION" }, { 0xA893E6, "JIANGXI JINGGANGSHAN CKING COMMUNICATION TECHNOLOGY CO.,LTD", "JIANGXI-JINGGANGSHAN-CKING-COMMUNICATION" }, { 0xA895B0, "Aker Subsea Ltd", "AKER-SUBSEA" }, { 0xA89675, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xA8968A, "Apple, Inc.", "APPLE" }, { 0xA897CD, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA897DC, "IBM", "IBM" }, { 0xA89892, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xA898C6, "Shinbo Co., Ltd.", "SHINBO" }, { 0xA8995C, "aizo ag", "AIZO" }, { 0xA89969, "Dell Inc.", "DELL" }, { 0xA899AD, "Chaoyue Technology Co., Ltd.", "CHAOYUE" }, { 0xA899DC, "i-TOP DESING TECHNOLOGY CO.,LTD", "I-TOP-DESING" }, { 0xA89A93, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xA89AD7, "Nokia", "NOKIA" }, { 0xA89B10, "inMotion Ltd.", "INMOTION" }, { 0xA89C78, "Apple, Inc.", "APPLE" }, { 0xA89CA4, "Furrion Limited", "FURRION" }, { 0xA89CED, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xA89D21, "Cisco Systems, Inc", "CISCO" }, { 0xA89DD2, "Shanghai DareGlobal Technologies Co.,Ltd", "SHANGHAI-DAREGLOBAL-TECHNOLOGIES" }, { 0xA89FBA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA89FEC, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA8A089, "Tactical Communications", "TACTICAL-COMMUNICATION" }, { 0xA8A097, "ScioTeq bvba", "SCIOTEQ-BVBA" }, { 0xA8A159, "ASRock Incorporation", "ASROCK-INCORPORATION" }, { 0xA8A198, "TCT mobile ltd", "TCT-MOBILE" }, { 0xA8A237, "Arcadyan Corporation", "ARCADYAN" }, { 0xA8A5E2, "MSF-Vathauer Antriebstechnik GmbH & Co KG", "MSF-VATHAUER-ANTRIEBSTECHNIK" }, { 0xA8A648, "Qingdao Hisense Communications Co.,Ltd.", "QINGDAO-HISENSE-COMMUNICATION" }, { 0xA8A668, "zte corporation", "ZTE" }, { 0xA8A795, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xA8AA7C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA8ABB5, "Apple, Inc.", "APPLE" }, { 0xA8AD3D, "Alcatel-Lucent Shanghai Bell Co., Ltd", "ALCATEL-LUCENT-SHANGHAI-BELL" }, { 0xA8B028, "CubePilot Pty Ltd", "CUBEPILOT-PTY" }, { 0xA8B088, "eero inc.", "EERO" }, { 0xA8B0AE, "BizLink Special Cables Germany GmbH", "BIZLINK-SPECIAL-CABLES-GERMANY" }, { 0xA8B13B, "HP Inc.", "HP" }, { 0xA8B1D4, "Cisco Systems, Inc", "CISCO" }, { 0xA8B271, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA8B2DA, "FUJITSU LIMITED", "FUJITSU" }, { 0xA8B456, "Cisco Systems, Inc", "CISCO" }, { 0xA8B483, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0xA8B57C, "Roku, Inc", "ROKU" }, { 0xA8B86E, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xA8B9B3, "ESSYS", "ESSYS" }, { 0xA8BB50, "WiZ IoT Company Limited", "WIZ-IOT-COMPANY" }, { 0xA8BBCF, "Apple, Inc.", "APPLE" }, { 0xA8BC9C, "Cloud Light Technology Limited", "CLOUD-LIGHT" }, { 0xA8BD1A, "Honey Bee (Hong Kong) Limited", "HONEY-BEE-HONG-KONG" }, { 0xA8BD27, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xA8BD3A, "UNION MAN TECHNOLOGY CO.,LTD", "UNION-MAN" }, { 0xA8BE27, "Apple, Inc.", "APPLE" }, { 0xA8BF3C, "HDV Phoelectron Technology Limited", "HDV-PHOELECTRON" }, { 0xA8C092, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA8C0EA, "Pepwave Limited", "PEPWAVE" }, { 0xA8C222, "TM-Research Inc.", "TM-RESEARCH" }, { 0xA8C252, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA8C266, "HUMAX Co., Ltd.", "HUMAX" }, { 0xA8C56F, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xA8C647, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xA8C83A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA8C87F, "Roqos, Inc.", "ROQOS" }, { 0xA8C98A, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xA8CA7B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA8CAB9, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0xA8CB95, "EAST BEST CO., LTD.", "EAST-BEST" }, { 0xA8CC6F, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0xA8CCC5, "Saab AB (publ)", "SAAB-AB-PUBL" }, { 0xA8CE90, "CVC", "CVC" }, { 0xA8D081, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA8D0E3, "Systech Electronics Ltd", "SYSTECH-ELECTRONICS" }, { 0xA8D0E5, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xA8D236, "Lightware Visual Engineering", "LIGHTWARE-VISUAL-ENGINEERING" }, { 0xA8D3C8, "Topcon Electronics GmbH & Co. KG", "TOPCON-ELECTRONICS" }, { 0xA8D3F7, "Arcadyan Technology Corporation", "ARCADYAN" }, { 0xA8D409, "USA 111 Inc", "USA-111" }, { 0xA8D498, "Avira Operations GmbH & Co. KG", "AVIRA-OPERATIONS" }, { 0xA8D4E0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA8D579, "Beijing Chushang Science and Technology Co.,Ltd", "BEIJING-CHUSHANG-SCIENCE" }, { 0xA8D828, "Ascensia Diabetes Care", "ASCENSIA-DIABETES-CARE" }, { 0xA8D88A, "Wyconn", "WYCONN" }, { 0xA8DA01, "Shenzhen NUOLIJIA Digital Technology Co.,Ltd", "SHENZHEN-NUOLIJIA-DIGITAL" }, { 0xA8DA0C, "SERVERCOM (INDIA) PRIVATE LIMITED", "SERVERCOM-INDIA-PRIVATE" }, { 0xA8DB03, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xA8DC5A, "Digital Watchdog", "DIGITAL-WATCHDOG" }, { 0xA8DE68, "Beijing Wide Technology Co.,Ltd", "BEIJING-WIDE" }, { 0xA8E018, "Nokia Corporation", "NOKIA" }, { 0xA8E207, "GOIP Global Services Pvt. Ltd.", "GOIP-GLOBAL-SERVICES-PVT" }, { 0xA8E2C1, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xA8E2C3, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xA8E3EE, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0xA8E539, "Nurivoice Co., Ltd", "NURIVOICE" }, { 0xA8E544, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA8E552, "JUWEL Aquarium AG & Co. KG", "JUWEL-AQUARIUM" }, { 0xA8E621, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xA8E705, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xA8E77D, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xA8E81E, "ATW TECHNOLOGY, INC.", "ATW" }, { 0xA8E824, "INIM ELECTRONICS S.R.L.", "INIM-ELECTRONICS" }, { 0xA8E978, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA8EE6D, "Fine Point-High Export", "FINE-POINT-HIGH-EXPORT" }, { 0xA8EEC6, "Muuselabs NV/SA", "MUUSELABS-NV/" }, { 0xA8EF26, "Tritonwave", "TRITONWAVE" }, { 0xA8F038, "SHEN ZHEN SHI JIN HUA TAI ELECTRONICS CO.,LTD", "SHEN-ZHEN-SHI-JIN-HUA-TAI-ELECTRONICS" }, { 0xA8F1B2, "Allwinner Technology Co., Ltd", "ALLWINNER" }, { 0xA8F266, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xA8F274, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xA8F470, "Fujian Newland Communication Science Technologies Co.,Ltd.", "FUJIAN-NEWLAND-COMMUNICATION-SCIENCE-TECHNOLOGIES" }, { 0xA8F5AC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xA8F5DD, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xA8F766, "ITE Tech Inc", "ITE-TECH" }, { 0xA8F7D9, "Mist Systems, Inc.", "MIST" }, { 0xA8F7E0, "PLANET Technology Corporation", "PLANET" }, { 0xA8F8C9, "NXP Semiconductor (Tianjin) LTD.", "NXP-SEMICONDUCTOR-TIANJIN" }, { 0xA8F94B, "Eltex Enterprise Ltd.", "ELTEX" }, { 0xA8FAD8, "Apple, Inc.", "APPLE" }, { 0xA8FB40, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0xA8FB70, "WiseSec L.t.d", "WISESEC-L-T-D" }, { 0xA8FCB7, "Consolidated Resource Imaging", "CONSOLIDATED-RESOURCE-IMAGING" }, { 0xA8FE9D, "Apple, Inc.", "APPLE" }, { 0xA8FFBA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xAA0000, "DIGITAL EQUIPMENT CORPORATION", "DIGITAL-EQUIPMENT" }, { 0xAA0001, "DIGITAL EQUIPMENT CORPORATION", "DIGITAL-EQUIPMENT" }, { 0xAA0002, "DIGITAL EQUIPMENT CORPORATION", "DIGITAL-EQUIPMENT" }, { 0xAA0003, "DIGITAL EQUIPMENT CORPORATION", "DIGITAL-EQUIPMENT" }, { 0xAA0004, "DIGITAL EQUIPMENT CORPORATION", "DIGITAL-EQUIPMENT" }, { 0xAC007A, "Apple, Inc.", "APPLE" }, { 0xAC00D0, "zte corporation", "ZTE" }, { 0xAC00F9, "BizLink Technology (S.E.A) Sdn. Bhd.", "BIZLINK-S-E-A" }, { 0xAC0142, "Uriel Technologies SIA", "URIEL-TECHNOLOGIES-SIA" }, { 0xAC02CA, "HI Solutions, Inc.", "HI-SOLUTIONS" }, { 0xAC02CF, "RW Tecnologia Industria e Comercio Ltda", "RW-TECNOLOGIA-INDUSTRIA-E-COMERCIO-LTDA" }, { 0xAC02EF, "Comsis", "COMSIS" }, { 0xAC040B, "Peloton Interactive, Inc", "PELOTON-INTERACTIVE" }, { 0xAC0425, "ball-b GmbH Co KG", "BALL-B" }, { 0xAC0481, "Jiangsu Huaxing Electronics Co., Ltd.", "JIANGSU-HUAXING-ELECTRONICS" }, { 0xAC0613, "Senselogix Ltd", "SENSELOGIX" }, { 0xAC06C7, "ServerNet S.r.l.", "SERVERNET" }, { 0xAC075F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xAC0A61, "Labor S.r.L.", "LABOR" }, { 0xAC0BFB, "Espressif Inc.", "ESPRESSIF" }, { 0xAC0D1B, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xAC0DFE, "Ekon GmbH - myGEKKO", "EKON-MYGEKKO" }, { 0xAC11D3, "Suzhou HOTEK Video Technology Co. Ltd", "SUZHOU-HOTEK-VIDEO" }, { 0xAC1203, "Intel Corporate", "INTEL-CORPORATE" }, { 0xAC122F, "Fantasia Trading LLC", "FANTASIA-TRADING" }, { 0xAC128E, "Shanghai Baud Data Communication Co.,Ltd.", "SHANGHAI-BAUD-DATA-COMMUNICATION" }, { 0xAC139C, "Adtran Inc", "ADTRAN" }, { 0xAC1461, "ATAW Co., Ltd.", "ATAW" }, { 0xAC14D2, "wi-daq, inc.", "WI-DAQ" }, { 0xAC1585, "silergy corp", "SILERGY" }, { 0xAC15A2, "TP-Link Corporation Limited", "TP-LINK" }, { 0xAC15F4, "Apple, Inc.", "APPLE" }, { 0xAC1615, "Apple, Inc.", "APPLE" }, { 0xAC162D, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xAC1702, "Fibar Group sp. z o.o.", "FIBAR-GROUP-SP-Z-O-O" }, { 0xAC1754, "tiko Energy Solutions AG", "TIKO-ENERGY-SOLUTIONS" }, { 0xAC17C8, "Cisco Meraki", "CISCO-MERAKI" }, { 0xAC1826, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0xAC198E, "Intel Corporate", "INTEL-CORPORATE" }, { 0xAC199F, "SUNGROW POWER SUPPLY CO.,LTD.", "SUNGROW-POWER-SUPPLY" }, { 0xAC1A3D, "Dell Inc.", "DELL" }, { 0xAC1D06, "Apple, Inc.", "APPLE" }, { 0xAC1DDF, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xAC1E92, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xAC1E9E, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xAC1ED0, "Temic Automotive Philippines Inc.", "TEMIC-AUTOMOTIVE-PHILIPPINES" }, { 0xAC1F09, "shenzhen RAKwireless technology Co.,Ltd", "SHENZHEN-RAKWIRELESS" }, { 0xAC1F0F, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xAC1F6B, "Super Micro Computer, Inc.", "SUPER-MICRO" }, { 0xAC1F74, "Apple, Inc.", "APPLE" }, { 0xAC1FD7, "Real Vision Technology Co.,Ltd.", "REAL-VISION" }, { 0xAC202E, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0xAC203E, "Wuhan Tianyu Information Industry Co., Ltd.", "WUHAN-TIANYU-INFORMATION-INDUSTRY" }, { 0xAC20AA, "DMATEK Co., Ltd.", "DMATEK" }, { 0xAC2205, "Compal Broadband Networks, Inc.", "COMPAL-BROADBAND-NETWORKS" }, { 0xAC220B, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xAC2316, "Mist Systems, Inc.", "MIST" }, { 0xAC2334, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0xAC233F, "Shenzhen Minew Technologies Co., Ltd.", "SHENZHEN-MINEW-TECHNOLOGIES" }, { 0xAC2929, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0xAC293A, "Apple, Inc.", "APPLE" }, { 0xAC2A0C, "CSR ZHUZHOU INSTITUTE CO.,LTD.", "CSR-ZHUZHOU-INSTITUTE" }, { 0xAC2AA1, "Cisco Systems, Inc", "CISCO" }, { 0xAC2B6E, "Intel Corporate", "INTEL-CORPORATE" }, { 0xAC2DA3, "TXTR GmbH", "TXTR" }, { 0xAC2DA9, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0xAC2FA8, "Humannix Co.,Ltd.", "HUMANNIX" }, { 0xAC3184, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xAC319D, "Shenzhen TG-NET Botone Technology Co.,Ltd.", "SHENZHEN-TG-NET-BOTONE" }, { 0xAC330B, "Japan Computer Vision Corp.", "JAPAN-VISION" }, { 0xAC3328, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xAC34CB, "Shanhai GBCOM Communication Technology Co. Ltd", "SHANHAI-GBCOM-COMMUNICATION" }, { 0xAC35EE, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0xAC3613, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xAC3651, "Jiangsu Hengtong Terahertz Technology Co., Ltd.", "JIANGSU-HENGTONG-TERAHERTZ" }, { 0xAC3728, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xAC3743, "HTC Corporation", "HTC" }, { 0xAC37C9, "RAID Incorporated", "RAID-INCORPORATED" }, { 0xAC3870, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0xAC3A67, "Cisco Systems, Inc", "CISCO" }, { 0xAC3A7A, "Roku, Inc.", "ROKU" }, { 0xAC3B77, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xAC3B96, "NXP Semiconductor (Tianjin) LTD.", "NXP-SEMICONDUCTOR-TIANJIN" }, { 0xAC3C0B, "Apple, Inc.", "APPLE" }, { 0xAC3C8E, "Flextronics Computing(Suzhou)Co.,Ltd.", "FLEXTRONICS-COMPUTING-SUZHOU" }, { 0xAC3CB4, "Nilan A/S", "NILAN-A/S" }, { 0xAC3D05, "Instorescreen Aisa", "INSTORESCREEN-AISA" }, { 0xAC3D75, "HANGZHOU ZHIWAY TECHNOLOGIES CO.,LTD.", "HANGZHOU-ZHIWAY-TECHNOLOGIES" }, { 0xAC3D94, "Arista Networks", "ARISTA-NETWORKS" }, { 0xAC3EB1, "Google, Inc.", "GOOGLE" }, { 0xAC3FA4, "TAIYO YUDEN CO.,LTD", "TAIYO-YUDEN" }, { 0xAC40EA, "C&T Solution Inc.", "C-T-SOLUTION" }, { 0xAC4122, "Eclipse Electronic Systems Inc.", "ECLIPSE" }, { 0xAC416A, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xAC4228, "Parta Networks", "PARTA-NETWORKS" }, { 0xAC4330, "Versa Networks", "VERSA-NETWORKS" }, { 0xAC44F2, "YAMAHA CORPORATION", "YAMAHA" }, { 0xAC4500, "Apple, Inc.", "APPLE" }, { 0xAC471B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xAC4723, "Genelec", "GENELEC" }, { 0xAC482D, "Ralinwi Nanjing Electronic Technology Co., Ltd.", "RALINWI-NANJING" }, { 0xAC49DB, "Apple, Inc.", "APPLE" }, { 0xAC4A56, "Cisco Systems, Inc", "CISCO" }, { 0xAC4A67, "Cisco Systems, Inc", "CISCO" }, { 0xAC4AFE, "Hisense Broadband Multimedia Technology Co.,Ltd.", "HISENSE-BROADBAND-MULTIMEDIA" }, { 0xAC4B1E, "Integri-Sys.Com LLC", "INTEGRI-SYS-COM" }, { 0xAC4BC8, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xAC4CA5, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xAC4D16, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xAC4DD9, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xAC4E2E, "Shenzhen JingHanDa Electronics Co.Ltd", "SHENZHEN-JINGHANDA-ELECTRONICS" }, { 0xAC4E65, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xAC4E91, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xAC4FFC, "SVS-VISTEK GmbH", "SVS-VISTEK" }, { 0xAC5036, "Pi-Coral Inc", "PI-CORAL" }, { 0xAC5093, "Magna Electronics Europe GmbH & Co. OHG", "MAGNA-ELECTRONICS-EUROPE-OHG" }, { 0xAC50DE, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0xAC512C, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0xAC5135, "MPI TECH", "MPI-TECH" }, { 0xAC51AB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xAC51EE, "Adtran Inc", "ADTRAN" }, { 0xAC5474, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0xAC54EC, "IEEE P1823 Standards Working Group", "IEEE-P1823-STANDARDS-WORKING-GROUP" }, { 0xAC562C, "LAVA INTERNATIONAL(H.K) LIMITED", "LAVA-H-K" }, { 0xAC567B, "Sunnovo International Limited", "SUNNOVO" }, { 0xAC5775, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0xAC583B, "Human Assembler, Inc.", "HUMAN-ASSEMBLER" }, { 0xAC587B, "JCT Healthcare", "JCT-HEALTHCARE" }, { 0xAC5A14, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xAC5AEE, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xAC5AF0, "LG Electronics", "LG-ELECTRONICS" }, { 0xAC5AFC, "Intel Corporate", "INTEL-CORPORATE" }, { 0xAC5D10, "Pace Americas", "PACE-AMERICAS" }, { 0xAC5D5C, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0xAC5E14, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xAC5E8C, "Utillink", "UTILLINK" }, { 0xAC5F3E, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xAC5FEA, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0xAC606F, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0xAC6089, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xAC60B6, "Ericsson AB", "ERICSSON-AB" }, { 0xAC6123, "Drivven, Inc.", "DRIVVEN" }, { 0xAC6175, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xAC61B9, "WAMA Technology Limited", "WAMA" }, { 0xAC61EA, "Apple, Inc.", "APPLE" }, { 0xAC620D, "Jabil Circuit(Wuxi) Co.,Ltd", "JABIL-CIRCUIT-WUXI" }, { 0xAC63BE, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xAC6417, "Siemens AG", "SIEMENS" }, { 0xAC6462, "zte corporation", "ZTE" }, { 0xAC6490, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xAC64CF, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0xAC64DD, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xAC6706, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xAC675D, "Intel Corporate", "INTEL-CORPORATE" }, { 0xAC676F, "Electrocompaniet A.S.", "ELECTROCOMPANIET" }, { 0xAC6784, "Google, Inc.", "GOOGLE" }, { 0xAC67B2, "Espressif Inc.", "ESPRESSIF" }, { 0xAC6AA3, "Shenzhen Kertong Technology Co.,Ltd", "SHENZHEN-KERTONG" }, { 0xAC6B0F, "CADENCE DESIGN SYSTEMS INC", "CADENCE-DESIGN" }, { 0xAC6BAC, "Jenny Science AG", "JENNY-SCIENCE" }, { 0xAC6C90, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xAC6E1A, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0xAC6F4F, "Enspert Inc", "ENSPERT" }, { 0xAC6FBB, "TATUNG Technology Inc.", "TATUNG" }, { 0xAC6FD9, "Valueplus Inc.", "VALUEPLUS" }, { 0xAC710C, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xAC712E, "Fortinet, Inc.", "FORTINET" }, { 0xAC7236, "Lexking Technology Co., Ltd.", "LEXKING" }, { 0xAC7289, "Intel Corporate", "INTEL-CORPORATE" }, { 0xAC7352, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xAC7409, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0xAC74B1, "Intel Corporate", "INTEL-CORPORATE" }, { 0xAC74C4, "Maytronics Ltd.", "MAYTRONICS" }, { 0xAC751D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xAC764C, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xAC7713, "Honeywell Safety Products (Shanghai) Co.,Ltd", "HONEYWELL-SAFETY-PRODUCTS-SHANGHAI" }, { 0xAC77B9, "Nanjing Yufei Intelligent Control Technology Co.,LTD", "NANJING-YUFEI-INTELLIGENT-CONTROL" }, { 0xAC78D1, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xAC7A42, "iConnectivity", "ICONNECTIVITY" }, { 0xAC7A4D, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0xAC7A56, "Cisco Systems, Inc", "CISCO" }, { 0xAC7A94, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xAC7BA1, "Intel Corporate", "INTEL-CORPORATE" }, { 0xAC7E01, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xAC7E8A, "Cisco Systems, Inc", "CISCO" }, { 0xAC7F3E, "Apple, Inc.", "APPLE" }, { 0xAC800A, "Sony Corporation", "SONY" }, { 0xAC80AE, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xAC80D6, "Hexatronic AB", "HEXATRONIC-AB" }, { 0xAC80FB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xAC8112, "Gemtek Technology Co., Ltd.", "GEMTEK" }, { 0xAC81F3, "Nokia Corporation", "NOKIA" }, { 0xAC8226, "Qingdao Haier Technology Co.,Ltd", "QINGDAO-HAIER" }, { 0xAC8247, "Intel Corporate", "INTEL-CORPORATE" }, { 0xAC8317, "Shenzhen Furtunetel Communication Co., Ltd", "SHENZHEN-FURTUNETEL-COMMUNICATION" }, { 0xAC83E9, "Beijing Zile Technology Co., Ltd", "BEIJING-ZILE" }, { 0xAC83F0, "Cobalt Digital Inc.", "COBALT-DIGITAL" }, { 0xAC83F3, "AMPAK Technology, Inc.", "AMPAK" }, { 0xAC84C6, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xAC84C9, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xAC853D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xAC8674, "Open Mesh, Inc.", "OPEN-MESH" }, { 0xAC867E, "Create New Technology (HK) Limited Company", "CREATE-NEW-HK-COMPANY" }, { 0xAC86A3, "Apple, Inc.", "APPLE" }, { 0xAC87A3, "Apple, Inc.", "APPLE" }, { 0xAC88FD, "Apple, Inc.", "APPLE" }, { 0xAC8995, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xAC89D2, "Ciena Corporation", "CIENA" }, { 0xAC8ACD, "ROGER D.Wensker, G.Wensker sp.j.", "ROGER-D-WENSKER-G-WENSKER-SP-J" }, { 0xAC8B6A, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0xAC8B9C, "Primera Technology, Inc.", "PRIMERA" }, { 0xAC8BA9, "Ubiquiti Inc", "UBIQUITI" }, { 0xAC8D14, "Smartrove Inc", "SMARTROVE" }, { 0xAC8D34, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xAC8FA9, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0xAC8FF8, "Nokia", "NOKIA" }, { 0xAC9073, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xAC9085, "Apple, Inc.", "APPLE" }, { 0xAC919B, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0xAC91A1, "Dell Inc.", "DELL" }, { 0xAC9232, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xAC932F, "Nokia Corporation", "NOKIA" }, { 0xAC936A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xAC93C4, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0xAC9403, "Envision Peripherals Inc", "ENVISION-PERIPHERALS" }, { 0xAC9572, "Jovision Technology Co., Ltd.", "JOVISION" }, { 0xAC965B, "Lucid Motors", "LUCID-MOTORS" }, { 0xAC976C, "Greenliant", "GREENLIANT" }, { 0xAC9929, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xAC9A22, "NXP Semiconductors", "NXP-SEMICONDUCTORS" }, { 0xAC9A96, "Maxlinear, Inc", "MAXLINEAR" }, { 0xAC9B0A, "Sony Corporation", "SONY" }, { 0xAC9B84, "Smak Tecnologia e Automacao", "SMAK-TECNOLOGIA-E-AUTOMACAO" }, { 0xAC9CE4, "Alcatel-Lucent Shanghai Bell Co., Ltd", "ALCATEL-LUCENT-SHANGHAI-BELL" }, { 0xAC9E17, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xACA016, "Cisco Systems, Inc", "CISCO" }, { 0xACA213, "Shenzhen Bilian electronic CO.,LTD", "SHENZHEN-BILIAN" }, { 0xACA22C, "Baycity Technologies Ltd", "BAYCITY-TECHNOLOGIES" }, { 0xACA31E, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xACA32F, "Solidigm Technology", "SOLIDIGM" }, { 0xACA430, "Peerless AV", "PEERLESS-AV" }, { 0xACA46E, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0xACA667, "Electronic Systems Protection, Inc.", "PROTECTION" }, { 0xACA88E, "SHARP Corporation", "SHARP" }, { 0xACA919, "TrekStor GmbH", "TREKSTOR" }, { 0xACA9A0, "Audioengine, Ltd.", "AUDIOENGINE" }, { 0xACAB2E, "Beijing LasNubes Technology Co., Ltd.", "BEIJING-LASNUBES" }, { 0xACAB8D, "Lyngso Marine A/S", "LYNGSO-MARINE-A/S" }, { 0xACABBF, "AthenTek Inc.", "ATHENTEK" }, { 0xACACE2, "CHANGHONG (HONGKONG) TRADING LIMITED", "CHANGHONG-HONGKONG-TRADING" }, { 0xACAD4B, "zte corporation", "ZTE" }, { 0xACAE19, "Roku, Inc", "ROKU" }, { 0xACAFB9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xACB181, "Belden Mooresville", "BELDEN-MOORESVILLE" }, { 0xACB1EE, "SHENZHEN FENDA TECHNOLOGY CO., LTD", "SHENZHEN-FENDA" }, { 0xACB313, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xACB3B5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xACB566, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0xACB57D, "Liteon Technology Corporation", "LITEON" }, { 0xACB687, "Arcadyan Corporation", "ARCADYAN" }, { 0xACB74F, "METEL s.r.o.", "METEL-S-R-O" }, { 0xACB859, "Uniband Electronic Corp,", "UNIBAND" }, { 0xACB92F, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xACBB61, "YSTen Technology Co.,Ltd", "YSTEN" }, { 0xACBC32, "Apple, Inc.", "APPLE" }, { 0xACBCB5, "Apple, Inc.", "APPLE" }, { 0xACBCD9, "Cisco Systems, Inc", "CISCO" }, { 0xACBD0B, "Leimac Ltd.", "LEIMAC" }, { 0xACBD70, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xACBE75, "Ufine Technologies Co.,Ltd.", "UFINE-TECHNOLOGIES" }, { 0xACBEB6, "Visualedge Technology Co., Ltd.", "VISUALEDGE" }, { 0xACBF71, "Bose Corporation", "BOSE" }, { 0xACC048, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0xACC1EE, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xACC25D, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xACC2EC, "CLT INT'L IND. CORP.", "CLT-INT-L-IND" }, { 0xACC33A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xACC358, "Continental Automotive Czech Republic s.r.o.", "CONTINENTAL-AUTOMOTIVE-CZECH-REPUBLIC-S-R-O" }, { 0xACC4A9, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xACC4BD, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xACC51B, "Zhuhai Pantum Electronics Co., Ltd.", "ZHUHAI-PANTUM-ELECTRONICS" }, { 0xACC595, "Graphite Systems", "GRAPHITE" }, { 0xACC662, "MitraStar Technology Corp.", "MITRASTAR" }, { 0xACC698, "Kohzu Precision Co., Ltd.", "KOHZU-PRECISION" }, { 0xACC73F, "VITSMO CO., LTD.", "VITSMO" }, { 0xACC906, "Apple, Inc.", "APPLE" }, { 0xACC935, "Ness Corporation", "NESS" }, { 0xACCA54, "Telldus Technologies AB", "TELLDUS-TECHNOLOGIES-AB" }, { 0xACCA8E, "ODA Technologies", "ODA-TECHNOLOGIES" }, { 0xACCAAB, "Virtual Electric Inc", "VIRTUAL-ELECTRIC" }, { 0xACCABA, "Midokura Co., Ltd.", "MIDOKURA" }, { 0xACCB09, "Hefcom Metering (Pty) Ltd", "HEFCOM-METERING-PTY" }, { 0xACCB36, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xACCB51, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xACCC8E, "Axis Communications AB", "AXIS-COMMUNICATION-AB" }, { 0xACCCFC, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xACCE8F, "HWA YAO TECHNOLOGIES CO., LTD", "HWA-YAO-TECHNOLOGIES" }, { 0xACCF23, "Hi-flying electronics technology Co.,Ltd", "HI-FLYING-ELECTRONICS" }, { 0xACCF5C, "Apple, Inc.", "APPLE" }, { 0xACCF7B, "INGRAM MICRO SERVICES", "INGRAM-MICRO-SERVICES" }, { 0xACCF85, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xACD074, "Espressif Inc.", "ESPRESSIF" }, { 0xACD180, "Crexendo Business Solutions, Inc.", "CREXENDO-BUSINESS-SOLUTIONS" }, { 0xACD1B8, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xACD31D, "Cisco Meraki", "CISCO-MERAKI" }, { 0xACD364, "ABB SPA, ABB SACE DIV.", "ABB-SPA-ABB-SACE-DIV" }, { 0xACD564, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0xACD618, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0xACD657, "Shaanxi GuoLian Digital TV Technology Co.,Ltd.", "SHAANXI-GUOLIAN-DIGITAL-TV" }, { 0xACD75B, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xACD829, "Bouffalo Lab (Nanjing) Co., Ltd.", "BOUFFALO-LAB-NANJING" }, { 0xACD8A7, "BELLDESIGN Inc.", "BELLDESIGN" }, { 0xACD9D6, "tci GmbH", "TCI" }, { 0xACDB48, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xACDBDA, "Shenzhen Geniatech Inc, Ltd", "SHENZHEN-GENIATECH" }, { 0xACDCCA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xACDCE5, "Procter & Gamble Company", "PROCTER-GAMBLE-COMPANY" }, { 0xACDE48, "Private", "PRIVATE" }, { 0xACDF9F, "Arcadyan Corporation", "ARCADYAN" }, { 0xACE010, "Liteon Technology Corporation", "LITEON" }, { 0xACE069, "ISAAC Instruments", "ISAAC-INSTRUMENTS" }, { 0xACE0D6, "koreabts", "KOREABTS" }, { 0xACE14F, "Autonomic Controls, Inc.", "AUTONOMIC-CONTROLS" }, { 0xACE215, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xACE2D3, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xACE342, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xACE348, "MadgeTech, Inc", "MADGETECH" }, { 0xACE403, "Shenzhen Visteng Technology CO.,LTD", "SHENZHEN-VISTENG" }, { 0xACE42E, "SK hynix", "SK-HYNIX" }, { 0xACE4B5, "Apple, Inc.", "APPLE" }, { 0xACE5F0, "Doppler Labs", "DOPPLER-LABS" }, { 0xACE64B, "Shenzhen Baojia Battery Technology Co., Ltd.", "SHENZHEN-BAOJIA-BATTERY" }, { 0xACE77B, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xACE87B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xACE87E, "Bytemark Computer Consulting Ltd", "BYTEMARK-CONSULTING" }, { 0xACE97F, "IoT Tech Limited", "IOT-TECH" }, { 0xACE9AA, "Hay Systems Ltd", "HAY" }, { 0xACEA6A, "GENIX INFOCOMM CO., LTD.", "GENIX-INFOCOMM" }, { 0xACEB51, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0xACEC80, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xACEC85, "eero inc.", "EERO" }, { 0xACED32, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xACED5C, "Intel Corporate", "INTEL-CORPORATE" }, { 0xACEE3B, "6harmonics Inc", "6HARMONICS" }, { 0xACEE64, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0xACEE70, "Fontem Ventures BV", "FONTEM-VENTURES" }, { 0xACEE9E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xACF0B2, "Becker Electronics Taiwan Ltd.", "BECKER-ELECTRONICS-TAIWAN" }, { 0xACF108, "LG Innotek", "LG-INNOTEK" }, { 0xACF1DF, "D-Link International", "D-LINK" }, { 0xACF2C5, "Cisco Systems, Inc", "CISCO" }, { 0xACF5E6, "Cisco Systems, Inc", "CISCO" }, { 0xACF6F7, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xACF7F3, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xACF85C, "Chengdu Higon Integrated Circuit Design Co,. Ltd.", "CHENGDU-HIGON-INTEGRATED-CIRCUIT-DESIGN" }, { 0xACF8CC, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xACF970, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xACF97E, "ELESYS INC.", "ELESYS" }, { 0xACFAA5, "digitron", "DIGITRON" }, { 0xACFC82, "Shenzhen Sundray Technologies Company Limited", "SHENZHEN-SUNDRAY-TECHNOLOGIES-COMPANY" }, { 0xACFD93, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0xACFDCE, "Intel Corporate", "INTEL-CORPORATE" }, { 0xACFDEC, "Apple, Inc.", "APPLE" }, { 0xACFE05, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xACFF6B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB00073, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0xB000B4, "Cisco Systems, Inc", "CISCO" }, { 0xB00247, "AMPAK Technology, Inc.", "AMPAK" }, { 0xB0027E, "MULLER SERVICES", "MULLER-SERVICES" }, { 0xB00594, "Liteon Technology Corporation", "LITEON" }, { 0xB00875, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB008BF, "Vital Connect, Inc.", "VITAL-CONNECT" }, { 0xB009D3, "Avizia", "AVIZIA" }, { 0xB009DA, "Ring Solutions", "RING-SOLUTIONS" }, { 0xB00AD5, "zte corporation", "ZTE" }, { 0xB00CD1, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xB01041, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xB010A0, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB01203, "Dynamics Hong Kong Limited", "DYNAMICS-HONG-KONG" }, { 0xB01266, "Futaba-Kikaku", "FUTABA-KIKAKU" }, { 0xB01408, "LIGHTSPEED INTERNATIONAL CO.", "LIGHTSPEED" }, { 0xB01656, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB01743, "EDISON GLOBAL CIRCUITS LLC", "EDISON-GLOBAL-CIRCUITS" }, { 0xB01886, "SmarDTV Corporation", "SMARDTV" }, { 0xB019C6, "Apple, Inc.", "APPLE" }, { 0xB01B4B, "Invisible Fun Studio Limited", "INVISIBLE-FUN-STUDIO" }, { 0xB01B7C, "Ontrol A.S.", "ONTROL" }, { 0xB01BD2, "Le Shi Zhi Xin Electronic Technology (Tianjin) Limited", "LE-SHI-ZHI-XIN-TIANJIN" }, { 0xB01C0C, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0xB01C91, "Elim Co", "ELIM" }, { 0xB01F29, "Helvetia INC.", "HELVETIA" }, { 0xB01F47, "Heights Telecom T ltd", "HEIGHTS-TELECOM-T" }, { 0xB01F81, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xB01F8C, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xB0216F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB0227A, "HP Inc.", "HP" }, { 0xB02347, "Shenzhen Giant Microelectronics Company Limited", "SHENZHEN-GIANT-MICROELECTRONICS-COMPANY" }, { 0xB02491, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB024F3, "Progeny Systems", "PROGENY" }, { 0xB025AA, "Private", "PRIVATE" }, { 0xB02628, "Broadcom Limited", "BROADCOM" }, { 0xB02680, "Cisco Systems, Inc", "CISCO" }, { 0xB027CF, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xB0285B, "JUHUA Technology Inc.", "JUHUA" }, { 0xB02A1F, "Wingtech Group (HongKong)Limited", "WINGTECH-GROUP-HONGKONG" }, { 0xB02A43, "Google, Inc.", "GOOGLE" }, { 0xB03055, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0xB030C8, "Teal Drones, Inc.", "TEAL-DRONES" }, { 0xB03366, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xB033A6, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xB03495, "Apple, Inc.", "APPLE" }, { 0xB0350B, "MOBIWIRE MOBILES (NINGBO) CO.,LTD", "MOBIWIRE-MOBILES-NINGBO" }, { 0xB0358D, "Nokia Corporation", "NOKIA" }, { 0xB0359F, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB035B5, "Apple, Inc.", "APPLE" }, { 0xB03795, "LG Electronics", "LG-ELECTRONICS" }, { 0xB03829, "Siliconware Precision Industries Co., Ltd.", "SILICONWARE-PRECISION-INDUSTRIES" }, { 0xB03850, "Nanjing CAS-ZDC IOT SYSTEM CO.,LTD", "NANJING-CAS-ZDC-IOT-SYSTEM" }, { 0xB03893, "Onda TLC Italia S.r.l.", "ONDA-TLC-ITALIA" }, { 0xB038E2, "Wanan Hongsheng Electronic Co.Ltd", "WANAN-HONGSHENG" }, { 0xB03956, "NETGEAR", "NETGEAR" }, { 0xB03ACE, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB03CDC, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB03D96, "Vision Valley FZ LLC", "VISION-VALLEY-FZ" }, { 0xB03DC2, "Wasp artificial intelligence(Shenzhen) Co.,ltd", "WASP-ARTIFICIAL-INTELLIGENCE-SHENZHEN" }, { 0xB03E51, "SKY UK LIMITED", "SKY-UK" }, { 0xB03EB0, "MICRODIA Ltd.", "MICRODIA" }, { 0xB03F64, "Apple, Inc.", "APPLE" }, { 0xB04089, "Senient Systems LTD", "SENIENT" }, { 0xB0411D, "ITTIM Technologies", "ITTIM-TECHNOLOGIES" }, { 0xB0416F, "Shenzhen Maxtang Computer Co.,Ltd", "SHENZHEN-MAXTANG" }, { 0xB0435D, "NuLEDs, Inc.", "NULEDS" }, { 0xB04414, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xB0449C, "Assa Abloy AB - Yale", "ASSA-ABLOY-AB-YALE" }, { 0xB04502, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB04515, "mira fitness,LLC.", "MIRA-FITNESS" }, { 0xB04519, "TCT mobile ltd", "TCT-MOBILE" }, { 0xB04530, "SKY UK LIMITED", "SKY-UK" }, { 0xB04545, "YACOUB Automation GmbH", "YACOUB-AUTOMATION" }, { 0xB04692, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xB046FC, "MitraStar Technology Corp.", "MITRASTAR" }, { 0xB047BF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB0481A, "Apple, Inc.", "APPLE" }, { 0xB0487A, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xB0495F, "OMRON HEALTHCARE Co., Ltd.", "OMRON-HEALTHCARE" }, { 0xB04A39, "Beijing Roborock Technology Co., Ltd.", "BEIJING-ROBOROCK" }, { 0xB04A6A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB04B68, "NAKAYO Inc", "NAKAYO" }, { 0xB04BBF, "PT HAN SUNG ELECTORONICS INDONESIA", "PT-HAN-SUNG-ELECTORONICS-INDONESIA" }, { 0xB04C05, "Fresenius Medical Care Deutschland GmbH", "FRESENIUS-MEDICAL-CARE-DEUTSCHLAND" }, { 0xB04E26, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xB04F13, "Dell Inc.", "DELL" }, { 0xB04FA6, "DongGuan Ramaxel Memory Technology", "DONGGUAN-RAMAXEL-MEMORY" }, { 0xB04FC3, "Shenzhen NVC Cloud Technology Co., Ltd.", "SHENZHEN-NVC-CLOUD" }, { 0xB050BC, "SHENZHEN BASICOM ELECTRONIC CO.,LTD.", "SHENZHEN-BASICOM" }, { 0xB0518E, "Holl technology CO.Ltd.", "HOLL" }, { 0xB05216, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xB05365, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0xB05508, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB05706, "Vallox Oy", "VALLOX-OY" }, { 0xB058C4, "Broadcast Microwave Services, Inc", "BROADCAST-MICROWAVE-SERVICES" }, { 0xB05947, "Shenzhen Qihu Intelligent Technology Company Limited", "SHENZHEN-QIHU-INTELLIGENT-COMPANY" }, { 0xB05ADA, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xB05B1F, "THERMO FISHER SCIENTIFIC S.P.A.", "THERMO-FISHER-SCIENTIFIC" }, { 0xB05B67, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB05C16, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xB05CDA, "HP Inc.", "HP" }, { 0xB05CE5, "Nokia Corporation", "NOKIA" }, { 0xB05DD4, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xB06088, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB061C7, "Ericsson-LG Enterprise", "ERICSSON-LG" }, { 0xB06563, "Shanghai Railway Communication Factory", "SHANGHAI-RAILWAY-COMMUNICATION-FACTORY" }, { 0xB065BD, "Apple, Inc.", "APPLE" }, { 0xB065F1, "WIO Manufacturing HK Limited", "WIO-MANUFACTURING-HK" }, { 0xB0672F, "Bowers & Wilkins", "BOWERS-WILKINS" }, { 0xB067B5, "Apple, Inc.", "APPLE" }, { 0xB068B6, "Hangzhou OYE Technology Co. Ltd", "HANGZHOU-OYE" }, { 0xB068E6, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0xB06971, "DEI Sales, Inc.", "DEI-SALES" }, { 0xB06A41, "Google, Inc.", "GOOGLE" }, { 0xB06BB3, "GRT", "GRT" }, { 0xB06CBF, "3ality Digital Systems GmbH", "3ALITY-DIGITAL" }, { 0xB06E72, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xB06EBF, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xB06FE0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB0700D, "Nokia", "NOKIA" }, { 0xB0702D, "Apple, Inc.", "APPLE" }, { 0xB072BF, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xB0735D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB0739C, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xB0750C, "QA Cafe", "QA-CAFE" }, { 0xB0754D, "Nokia", "NOKIA" }, { 0xB075D5, "zte corporation", "ZTE" }, { 0xB0761B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB077AC, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xB07839, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0xB07870, "Wi-NEXT, Inc.", "WI-NEXT" }, { 0xB078F0, "Beijing HuaqinWorld Technology Co.,Ltd.", "BEIJING-HUAQINWORLD" }, { 0xB07908, "Cummings Engineering", "CUMMINGS-ENGINEERING" }, { 0xB0793C, "Revolv Inc", "REVOLV" }, { 0xB07994, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xB07B25, "Dell Inc.", "DELL" }, { 0xB07D47, "Cisco Systems, Inc", "CISCO" }, { 0xB07D62, "Dipl.-Ing. H. Horstmann GmbH", "DIPL-ING-H-HORSTMANN" }, { 0xB07D64, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB07E11, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB07E70, "Zadara Storage Ltd.", "ZADARA-STORAGE" }, { 0xB07FB9, "NETGEAR", "NETGEAR" }, { 0xB0808C, "Laser Light Engines", "LASER-LIGHT-ENGINES" }, { 0xB08101, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0xB081D8, "I-sys Corp", "I-SYS" }, { 0xB083D6, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xB083FE, "Dell Inc.", "DELL" }, { 0xB0869E, "Chloride S.r.L", "CHLORIDE" }, { 0xB08807, "Strata Worldwide", "STRATA-WORLDWIDE" }, { 0xB08900, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB08991, "LGE", "LGE" }, { 0xB089C2, "Zyptonite", "ZYPTONITE" }, { 0xB08B92, "zte corporation", "ZTE" }, { 0xB08BBE, "ABL GmbH", "ABL" }, { 0xB08BCF, "Cisco Systems, Inc", "CISCO" }, { 0xB08BD0, "Cisco Systems, Inc", "CISCO" }, { 0xB08C75, "Apple, Inc.", "APPLE" }, { 0xB08E1A, "URadio Systems Co., Ltd", "URADIO" }, { 0xB09074, "Fulan Electronics Limited", "FULAN-ELECTRONICS" }, { 0xB0907E, "Cisco Systems, Inc", "CISCO" }, { 0xB090D4, "Shenzhen Hoin Internet Technology Co., Ltd", "SHENZHEN-HOIN-INTERNET" }, { 0xB09122, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB09134, "Taleo", "TALEO" }, { 0xB09137, "ISis ImageStream Internet Solutions, Inc", "ISIS-IMAGESTREAM-INTERNET-SOLUTIONS" }, { 0xB0935B, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xB09575, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xB0958E, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xB0966C, "Lanbowan Technology Ltd.", "LANBOWAN" }, { 0xB096EA, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0xB09738, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0xB0973A, "E-Fuel Corporation", "E-FUEL" }, { 0xB0982B, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xB0989F, "LG CNS", "LG-CNS" }, { 0xB098BC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB09928, "FUJITSU LIMITED", "FUJITSU" }, { 0xB099D7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB09AE2, "STEMMER IMAGING GmbH", "STEMMER-IMAGING" }, { 0xB09BD4, "GNH Software India Private Limited", "GNH-SOFTWARE-INDIA-PRIVATE" }, { 0xB09FBA, "Apple, Inc.", "APPLE" }, { 0xB0A10A, "Pivotal Systems Corporation", "PIVOTAL" }, { 0xB0A2E7, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0xB0A37E, "QING DAO HAIER TELECOM CO.,LTD.", "QING-DAO-HAIER-TELECOM" }, { 0xB0A3F2, "Huaqin Technology Co. LTD", "HUAQIN" }, { 0xB0A454, "Tripwire Inc.", "TRIPWIRE" }, { 0xB0A460, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB0A4F0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB0A651, "Cisco Systems, Inc", "CISCO" }, { 0xB0A6F5, "Xaptum, Inc.", "XAPTUM" }, { 0xB0A72A, "Ensemble Designs, Inc.", "ENSEMBLE-DESIGNS" }, { 0xB0A732, "Espressif Inc.", "ESPRESSIF" }, { 0xB0A737, "Roku, Inc.", "ROKU" }, { 0xB0A7B9, "TP-Link Corporation Limited", "TP-LINK" }, { 0xB0A86E, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xB0AA36, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xB0AA77, "Cisco Systems, Inc", "CISCO" }, { 0xB0AAD2, "Sichuan tianyi kanghe communications co., LTD", "SICHUAN-TIANYI-KANGHE-COMMUNICATION" }, { 0xB0ACD2, "zte corporation", "ZTE" }, { 0xB0ACFA, "FUJITSU LIMITED", "FUJITSU" }, { 0xB0ADAA, "Avaya Inc", "AVAYA" }, { 0xB0AE25, "Varikorea", "VARIKOREA" }, { 0xB0AFF7, "Shenzhen Yipingfang Network Technology Co., Ltd.", "SHENZHEN-YIPINGFANG-NETWORK" }, { 0xB0B113, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB0B194, "zte corporation", "ZTE" }, { 0xB0B21C, "Espressif Inc.", "ESPRESSIF" }, { 0xB0B28F, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xB0B2DC, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xB0B32B, "Slican Sp. z o.o.", "SLICAN-SP-Z-O-O" }, { 0xB0B353, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xB0B3AD, "HUMAX Co., Ltd.", "HUMAX" }, { 0xB0B448, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB0B5C3, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xB0B5E8, "Ruroc LTD", "RUROC" }, { 0xB0B867, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xB0B8D5, "Nanjing Nengrui Auto Equipment CO.,Ltd", "NANJING-NENGRUI-AUTO-EQUIPMENT" }, { 0xB0B98A, "NETGEAR", "NETGEAR" }, { 0xB0BB8B, "WAVETEL TECHNOLOGY LIMITED", "WAVETEL" }, { 0xB0BBE5, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xB0BC7A, "Harman/Becker Automotive Systems GmbH", "HARMAN/BECKER-AUTOMOTIVE" }, { 0xB0BD1B, "Dongguan Liesheng Electronic Co., Ltd.", "DONGGUAN-LIESHENG" }, { 0xB0BD6D, "Echostreams Innovative Solutions", "ECHOSTREAMS-INNOVATIVE-SOLUTIONS" }, { 0xB0BDA1, "ZAKLAD ELEKTRONICZNY SIMS", "ZAKLAD-ELEKTRONICZNY-SIMS" }, { 0xB0BE76, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xB0BE83, "Apple, Inc.", "APPLE" }, { 0xB0BF99, "WIZITDONGDO", "WIZITDONGDO" }, { 0xB0C090, "Chicony Electronics Co., Ltd.", "CHICONY-ELECTRONICS" }, { 0xB0C128, "Adler ELREHA GmbH", "ADLER-ELREHA" }, { 0xB0C19E, "zte corporation", "ZTE" }, { 0xB0C205, "BIONIME", "BIONIME" }, { 0xB0C287, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xB0C387, "GOEFER, Inc.", "GOEFER" }, { 0xB0C46C, "Senseit", "SENSEIT" }, { 0xB0C4E7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB0C53C, "Cisco Systems, Inc", "CISCO" }, { 0xB0C554, "D-Link International", "D-LINK" }, { 0xB0C559, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB0C5CA, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xB0C69A, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xB0C745, "BUFFALO.INC", "BUFFALO" }, { 0xB0C787, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB0C7DE, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xB0C83F, "Jiangsu Cynray IOT Co., Ltd.", "JIANGSU-CYNRAY-IOT" }, { 0xB0C8AD, "People Power Company", "PEOPLE-POWER-COMPANY" }, { 0xB0C952, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xB0C95B, "Beijing Symtech CO.,LTD", "BEIJING-SYMTECH" }, { 0xB0CA68, "Apple, Inc.", "APPLE" }, { 0xB0CCFE, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB0CE18, "Zhejiang shenghui lighting co.,Ltd", "ZHEJIANG-SHENGHUI-LIGHTING" }, { 0xB0CF4D, "MI-Zone Technology Ireland", "MI-ZONE-IRELAND" }, { 0xB0CFCB, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xB0D09C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB0D278, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB0D2F5, "Vello Systems, Inc.", "VELLO" }, { 0xB0D568, "Shenzhen Cultraview Digital Technology Co., Ltd", "SHENZHEN-CULTRAVIEW-DIGITAL" }, { 0xB0D59D, "Shenzhen Zowee Technology Co., Ltd", "SHENZHEN-ZOWEE" }, { 0xB0D5CC, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB0D7C5, "Logipix Ltd", "LOGIPIX" }, { 0xB0D7CC, "Tridonic GmbH & Co KG", "TRIDONIC" }, { 0xB0D888, "Panasonic Automotive Systems Co.,Ltd", "PANASONIC-AUTOMOTIVE" }, { 0xB0DA00, "CERA ELECTRONIQUE", "CERA-ELECTRONIQUE" }, { 0xB0DAF9, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xB0DCEF, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB0DD74, "Heimgard Technologies AS", "HEIMGARD-TECHNOLOGIES-AS" }, { 0xB0DE28, "Apple, Inc.", "APPLE" }, { 0xB0DF3A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB0DFC1, "Tenda Technology Co.,Ltd.Dongguan branch", "TENDA-DONGGUAN-BRANCH" }, { 0xB0E03C, "TCT mobile ltd", "TCT-MOBILE" }, { 0xB0E17E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB0E235, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xB0E2E5, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xB0E39D, "CAT SYSTEM CO.,LTD.", "CAT-SYSTEM" }, { 0xB0E45C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB0E4D5, "Google, Inc.", "GOOGLE" }, { 0xB0E50E, "NRG SYSTEMS INC", "NRG" }, { 0xB0E5ED, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB0E5EF, "Apple, Inc.", "APPLE" }, { 0xB0E5F9, "Apple, Inc.", "APPLE" }, { 0xB0E71D, "Shanghai Maigantech Co.,Ltd", "SHANGHAI-MAIGANTECH" }, { 0xB0E754, "2Wire Inc", "2WIRE" }, { 0xB0E7DE, "Homa Technologies JSC", "HOMA-TECHNOLOGIES-JSC" }, { 0xB0E892, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0xB0E97E, "Advanced Micro Peripherals", "ADVANCED-MICRO-PERIPHERALS" }, { 0xB0E9FE, "Woan Technology (Shenzhen) Co., Ltd.", "WOAN-SHENZHEN" }, { 0xB0EABC, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xB0EB57, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB0EB7F, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xB0EC71, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB0EC8F, "GMX SAS", "GMX-SAS" }, { 0xB0ECDD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB0ECE1, "Private", "PRIVATE" }, { 0xB0EE45, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xB0EE7B, "Roku, Inc", "ROKU" }, { 0xB0F00C, "Dongguan Wecxw CO.,Ltd.", "DONGGUAN-WECXW" }, { 0xB0F1A3, "Fengfan (BeiJing) Technology Co., Ltd.", "FENGFAN-BEIJING" }, { 0xB0F1BC, "Dhemax Ingenieros Ltda", "DHEMAX-INGENIEROS-LTDA" }, { 0xB0F1D8, "Apple, Inc.", "APPLE" }, { 0xB0F1EC, "AMPAK Technology, Inc.", "AMPAK" }, { 0xB0F208, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0xB0F530, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0xB0F7C4, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xB0F893, "Shanghai MXCHIP Information Technology Co., Ltd.", "SHANGHAI-MXCHIP-INFORMATION" }, { 0xB0F963, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0xB0FAEB, "Cisco Systems, Inc", "CISCO" }, { 0xB0FB15, "Laird Connectivity", "LAIRD-CONNECTIVITY" }, { 0xB0FBDD, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0xB0FC0D, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xB0FC36, "CyberTAN Technology Inc.", "CYBERTAN" }, { 0xB0FC88, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xB0FD0B, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xB0FEBD, "Private", "PRIVATE" }, { 0xB0FEE5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB0FF72, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xB40016, "INGENICO TERMINALS SAS", "INGENICO-TERMINALS-SAS" }, { 0xB4009C, "CableWorld Ltd.", "CABLEWORLD" }, { 0xB40142, "GCI Science & Technology Co.,LTD", "GCI-SCIENCE" }, { 0xB40216, "Cisco Systems, Inc", "CISCO" }, { 0xB40418, "Smartchip Integrated Inc.", "SMARTCHIP-INTEGRATED" }, { 0xB40421, "zte corporation", "ZTE" }, { 0xB4055D, "Inspur Electronic Information Industry Co.,Ltd.", "INSPUR-INFORMATION-INDUSTRY" }, { 0xB40566, "SP Best Corporation Co., LTD.", "SP-BEST" }, { 0xB407F9, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0xB40832, "TC Communications", "TC-COMMUNICATION" }, { 0xB40931, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB40AC6, "DEXON Systems Ltd.", "DEXON" }, { 0xB40AD8, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0xB40B1D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB40B44, "Smartisan Technology Co., Ltd.", "SMARTISAN" }, { 0xB40B78, "Brusa Elektronik AG", "BRUSA-ELEKTRONIK" }, { 0xB40B7A, "Brusa Elektronik AG", "BRUSA-ELEKTRONIK" }, { 0xB40C25, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0xB40E96, "HERAN", "HERAN" }, { 0xB40ECF, "Bouffalo Lab (Nanjing) Co., Ltd.", "BOUFFALO-LAB-NANJING" }, { 0xB40EDC, "LG-Ericsson Co.,Ltd.", "LG-ERICSSON" }, { 0xB40EDE, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB40F3B, "Tenda Technology Co.,Ltd.Dongguan branch", "TENDA-DONGGUAN-BRANCH" }, { 0xB40FB3, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xB4107B, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB41489, "Cisco Systems, Inc", "CISCO" }, { 0xB414E6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB41513, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB4157E, "Celona Inc.", "CELONA" }, { 0xB41780, "DTI Group Ltd", "DTI-GROUP" }, { 0xB417A8, "Meta Platforms Technologies, LLC", "META-PLATFORMS-TECHNOLOGIES" }, { 0xB418D1, "Apple, Inc.", "APPLE" }, { 0xB41974, "Apple, Inc.", "APPLE" }, { 0xB41A1D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB41BB0, "Apple, Inc.", "APPLE" }, { 0xB41C30, "zte corporation", "ZTE" }, { 0xB41CAB, "ICR, inc.", "ICR" }, { 0xB41D2B, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xB41DEF, "Internet Laboratories, Inc.", "INTERNET-LABORATORIES" }, { 0xB42046, "eero inc.", "EERO" }, { 0xB4205B, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xB4211D, "Beijing GuangXin Technology Co., Ltd", "BEIJING-GUANGXIN" }, { 0xB4218A, "Dog Hunter LLC", "DOG-HUNTER" }, { 0xB42200, "Brother Industries, LTD.", "BROTHER-INDUSTRIES" }, { 0xB42330, "Itron Inc", "ITRON" }, { 0xB424E7, "Codetek Technology Co.,Ltd", "CODETEK" }, { 0xB4265D, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xB42875, "Futecho Solutions Private Limited", "FUTECHO-SOLUTIONS-PRIVATE" }, { 0xB428F1, "E-Prime Co., Ltd.", "E-PRIME" }, { 0xB4293D, "Shenzhen Urovo Technology Co.,Ltd.", "SHENZHEN-UROVO" }, { 0xB42A0E, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xB42A39, "ORBIT MERRET, spol. s r. o.", "ORBIT-MERRET-SPOL-S-R-O" }, { 0xB42C92, "Zhejiang Weirong Electronic Co., Ltd", "ZHEJIANG-WEIRONG" }, { 0xB42CBE, "Direct Payment Solutions Limited", "DIRECT-PAYMENT-SOLUTIONS" }, { 0xB42D56, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xB42E99, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0xB42EF8, "Eline Technology co.Ltd", "ELINE" }, { 0xB43052, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB430C0, "York Instruments Ltd", "YORK-INSTRUMENTS" }, { 0xB43161, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xB431B8, "Aviwest", "AVIWEST" }, { 0xB4346C, "MATSUNICHI DIGITAL TECHNOLOGY (HONG KONG) LIMITED", "MATSUNICHI-DIGITAL-HONG-KONG" }, { 0xB43522, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xB43564, "Fujian Tian Cheng Electron Science & Technical Development Co.,Ltd.", "FUJIAN-TIAN-CHENG-ELECTRON-SCIENCE-TECHNICAL-DEVELOPMENT" }, { 0xB435F7, "Zhejiang Pearmain Electronics Co.ltd.", "ZHEJIANG-PEARMAIN-ELECTRONICS" }, { 0xB436A9, "Fibocom Wireless Inc.", "FIBOCOM-WIRELESS" }, { 0xB436D1, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0xB436E3, "KBVISION GROUP", "KBVISION-GROUP" }, { 0xB43741, "Consert, Inc.", "CONSERT" }, { 0xB437D1, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xB437D8, "D-Link (Shanghai) Limited Corp.", "D-LINK-SHANGHAI" }, { 0xB43934, "Pen Generations, Inc.", "PEN-GENERATIONS" }, { 0xB43939, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0xB439D6, "ProCurve Networking by HP", "PROCURVE-NETWORKING-BY-HP" }, { 0xB43A28, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB43A31, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xB43AE2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB43D08, "GX International BV", "GX" }, { 0xB43DB2, "Degreane Horizon", "DEGREANE-HORIZON" }, { 0xB43E3B, "Viableware, Inc", "VIABLEWARE" }, { 0xB440A4, "Apple, Inc.", "APPLE" }, { 0xB440DC, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB4417A, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0xB4430D, "Broadlink Pty Ltd", "BROADLINK-PTY" }, { 0xB44326, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB44506, "Dell Inc.", "DELL" }, { 0xB4466B, "REALTIMEID AS", "REALTIMEID-AS" }, { 0xB4475E, "Avaya Inc", "AVAYA" }, { 0xB447F5, "Earda Technologies co Ltd", "EARDA-TECHNOLOGIES" }, { 0xB44BD2, "Apple, Inc.", "APPLE" }, { 0xB44BD6, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xB44C3B, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0xB44CC2, "NR ELECTRIC CO., LTD", "NR-ELECTRIC" }, { 0xB44D43, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xB44F96, "Zhejiang Xinzailing Technology co., ltd", "ZHEJIANG-XINZAILING" }, { 0xB45062, "EmBestor Technology Inc.", "EMBESTOR" }, { 0xB451F9, "NB Software", "NB-SOFTWARE" }, { 0xB45253, "Seagate Technology", "SEAGATE" }, { 0xB4527D, "Sony Corporation", "SONY" }, { 0xB4527E, "Sony Corporation", "SONY" }, { 0xB452A9, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB45459, "China Mobile (Hangzhou) Information Technology Co., Ltd.", "CHINA-MOBILE-HANGZHOU-INFORMATION" }, { 0xB45570, "Borea", "BOREA" }, { 0xB456B9, "Teraspek Technologies Co.,Ltd", "TERASPEK-TECHNOLOGIES" }, { 0xB456E3, "Apple, Inc.", "APPLE" }, { 0xB456FA, "IOPSYS Software Solutions", "IOPSYS-SOFTWARE-SOLUTIONS" }, { 0xB457E6, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xB45861, "CRemote, LLC", "CREMOTE" }, { 0xB45CA4, "Thing-talk Wireless Communication Technologies Corporation Limited", "THING-TALK-WIRELESS-COMMUNICATION-TECHNOLOGIES" }, { 0xB45D50, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xB45F84, "zte corporation", "ZTE" }, { 0xB46077, "Sichuan Changhong Electric Ltd.", "SICHUAN-CHANGHONG-ELECTRIC" }, { 0xB4608C, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xB460ED, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0xB46142, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB461E9, "Sichuan AI-Link Technology Co., Ltd.", "SICHUAN-AI-LINK" }, { 0xB461FF, "Lumigon A/S", "LUMIGON-A/S" }, { 0xB46238, "Exablox", "EXABLOX" }, { 0xB46293, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB462AD, "Elysia Germany GmbH", "ELYSIA-GERMANY" }, { 0xB4636F, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0xB46698, "Zealabs srl", "ZEALABS-SRL" }, { 0xB467E9, "Qingdao GoerTek Technology Co., Ltd.", "QINGDAO-GOERTEK" }, { 0xB46921, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB4695F, "TCT mobile ltd", "TCT-MOBILE" }, { 0xB46BFC, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB46C47, "Panasonic Appliances Company", "PANASONIC-APPLIANCES-COMPANY" }, { 0xB46D35, "Dalian Seasky Automation Co;Ltd", "DALIAN-SEASKY-AUTOMATION" }, { 0xB46D83, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB46DC2, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0xB46E08, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB46F2D, "Wahoo Fitness", "WAHOO-FITNESS" }, { 0xB47064, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB47356, "Hangzhou Treebear Networking Co., Ltd.", "HANGZHOU-TREEBEAR-NETWORKING" }, { 0xB47443, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB47447, "CoreOS", "COREOS" }, { 0xB4749F, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xB4750E, "Belkin International Inc.", "BELKIN" }, { 0xB47748, "Shenzhen Neoway Technology Co.,Ltd.", "SHENZHEN-NEOWAY" }, { 0xB47947, "Nutanix", "NUTANIX" }, { 0xB479A7, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xB479C8, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xB47AF1, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xB47C29, "Shenzhen Guzidi Technology Co.,Ltd", "SHENZHEN-GUZIDI" }, { 0xB47C59, "Jiangsu Hengxin Technology Co.,Ltd.", "JIANGSU-HENGXIN" }, { 0xB47C9C, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xB47D76, "KNS Group LLC", "KNS-GROUP" }, { 0xB47F5E, "Foresight Manufacture (S) Pte Ltd", "FORESIGHT-MANUFACTURE-S-PTE" }, { 0xB48107, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0xB481BF, "Meta-Networks, LLC", "META-NETWORKS" }, { 0xB48255, "Research Products Corporation", "RESEARCH-PRODUCTS" }, { 0xB4827B, "AKG Acoustics GmbH", "AKG-ACOUSTICS" }, { 0xB482C5, "Relay2, Inc.", "RELAY2" }, { 0xB482FE, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xB48351, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB484D5, "GooWi Wireless Technology Co., Limited", "GOOWI-WIRELESS" }, { 0xB48547, "Amptown System Company GmbH", "AMPTOWN-SYSTEM-COMPANY" }, { 0xB485E1, "Apple, Inc.", "APPLE" }, { 0xB48655, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB48901, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB48910, "Coster T.E. S.P.A.", "COSTER-T-E" }, { 0xB48A0A, "Espressif Inc.", "ESPRESSIF" }, { 0xB48A5F, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xB48B19, "Apple, Inc.", "APPLE" }, { 0xB48C9D, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xB4944E, "WeTelecom Co., Ltd.", "WETELECOM" }, { 0xB49691, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB49842, "zte corporation", "ZTE" }, { 0xB49882, "Brusa HyPower AG", "BRUSA-HYPOWER" }, { 0xB4994C, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB499BA, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xB49A95, "Shenzhen Boomtech Industrial Corporation", "SHENZHEN-BOOMTECH-INDUSTRIAL" }, { 0xB49CDF, "Apple, Inc.", "APPLE" }, { 0xB49D02, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB49D0B, "BQ", "BQ" }, { 0xB49DB4, "Axion Technologies Inc.", "AXION-TECHNOLOGIES" }, { 0xB49DFD, "Shenzhen SDMC Technology CO.,Ltd.", "SHENZHEN-SDMC" }, { 0xB49E80, "Sichuan Changhong Electric Ltd.", "SICHUAN-CHANGHONG-ELECTRIC" }, { 0xB49EAC, "Imagik Int'l Corp", "IMAGIK" }, { 0xB49EE6, "SHENZHEN TECHNOLOGY CO LTD", "SHENZHEN" }, { 0xB49F4D, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xB4A25C, "Cambium Networks Limited", "CAMBIUM-NETWORKS" }, { 0xB4A2EB, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xB4A305, "XIAMEN YAXON NETWORK CO., LTD.", "XIAMEN-YAXON-NETWORK" }, { 0xB4A382, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xB4A4B5, "Zen Eye Co.,Ltd", "ZEN-EYE" }, { 0xB4A4E3, "Cisco Systems, Inc", "CISCO" }, { 0xB4A5A9, "MODI GmbH", "MODI" }, { 0xB4A5AC, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xB4A5EF, "Sercomm Corporation.", "SERCOMM" }, { 0xB4A678, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0xB4A7C6, "SERVERCOM (INDIA) PRIVATE LIMITED", "SERVERCOM-INDIA-PRIVATE" }, { 0xB4A828, "Shenzhen Concox Information Technology Co., Ltd", "SHENZHEN-CONCOX-INFORMATION" }, { 0xB4A82B, "Histar Digital Electronics Co., Ltd.", "HISTAR-DIGITAL-ELECTRONICS" }, { 0xB4A898, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB4A8B9, "Cisco Systems, Inc", "CISCO" }, { 0xB4A94F, "MERCURY CORPORATION", "MERCURY" }, { 0xB4A95A, "Avaya Inc", "AVAYA" }, { 0xB4A984, "Symantec Corporation", "SYMANTEC" }, { 0xB4A9FC, "Quanta Computer Inc.", "QUANTA" }, { 0xB4A9FE, "GHIA Technology (Shenzhen) LTD", "GHIA-SHENZHEN" }, { 0xB4AA4D, "Ensequence, Inc.", "ENSEQUENCE" }, { 0xB4AB2C, "MtM Technology Corporation", "MTM" }, { 0xB4AC8C, "Bern University of Applied Sciences", "BERN-UNIVERSITY-OF-APPLIED-SCIENCES" }, { 0xB4AC9D, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB4ADA3, "Guangzhou Shiyuan Electronic Technology Company Limited", "GUANGZHOUSHIYUANCOMPANY" }, { 0xB4AE2B, "Microsoft", "MICROSOFT" }, { 0xB4AE6F, "Circle Reliance, Inc DBA Cranberry Networks", "CIRCLE-RELIANCE-DBA-CRANBERRY-NETWORKS" }, { 0xB4AEC1, "Apple, Inc.", "APPLE" }, { 0xB4B017, "Avaya Inc", "AVAYA" }, { 0xB4B024, "TP-Link Corporation Limited", "TP-LINK" }, { 0xB4B055, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB4B15A, "Siemens AG Energy Management Division", "SIEMENS-ENERGY-MANAGEMENT-DIVISION" }, { 0xB4B265, "DAEHO I&T", "DAEHO-I-T" }, { 0xB4B291, "LG Electronics", "LG-ELECTRONICS" }, { 0xB4B362, "zte corporation", "ZTE" }, { 0xB4B384, "ShenZhen Figigantic Electronic Co.,Ltd", "SHENZHEN-FIGIGANTIC" }, { 0xB4B52F, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xB4B542, "Hubbell Power Systems, Inc.", "HUBBELL-POWER" }, { 0xB4B5AF, "Minsung Electronics", "MINSUNG-ELECTRONICS" }, { 0xB4B5B6, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0xB4B676, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB4B686, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xB4B742, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xB4B859, "Texa Spa", "TEXA-SPA" }, { 0xB4B88D, "Thuh Company", "THUH-COMPANY" }, { 0xB4B9E6, "eero inc.", "EERO" }, { 0xB4BA02, "Agatel Ltd", "AGATEL" }, { 0xB4BA12, "China Mobile (Hangzhou) Information Technology Co.,Ltd.", "CHINA-MOBILE-HANGZHOU-INFORMATION" }, { 0xB4BA9D, "SKY UK LIMITED", "SKY-UK" }, { 0xB4BC7C, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB4BFF6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB4C0F5, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0xB4C170, "Yi chip Microelectronics (Hangzhou) Co., Ltd", "YI-CHIP-MICROELECTRONICS-HANGZHOU" }, { 0xB4C26A, "Garmin International", "GARMIN" }, { 0xB4C2E0, "Bouffalo Lab (Nanjing) Co., Ltd.", "BOUFFALO-LAB-NANJING" }, { 0xB4C2F7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB4C44E, "VXL eTech Pvt Ltd", "VXL-ETECH-PVT" }, { 0xB4C476, "Wuhan Maritime Communication Research Institute", "WUHAN-MARITIME-COMMUNICATION-RESEARCH-INSTITUTE" }, { 0xB4C4FC, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xB4C62E, "Molex CMS", "MOLEX-CMS" }, { 0xB4C6F8, "Axilspot Communication", "AXILSPOT-COMMUNICATION" }, { 0xB4C799, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xB4C810, "Umpi srl", "UMPI-SRL" }, { 0xB4C9B9, "Sichuan AI-Link Technology Co., Ltd.", "SICHUAN-AI-LINK" }, { 0xB4CB57, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xB4CBB8, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0xB4CC04, "Piranti", "PIRANTI" }, { 0xB4CCE9, "PROSYST", "PROSYST" }, { 0xB4CD27, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB4CDF5, "CUB ELECPARTS INC.", "CUB-ELECPARTS" }, { 0xB4CE40, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB4CEF6, "HTC Corporation", "HTC" }, { 0xB4CEFE, "James Czekaj", "JAMES-CZEKAJ" }, { 0xB4CFDB, "Shenzhen Jiuzhou Electric Co.,LTD", "SHENZHEN-JIUZHOU-ELECTRIC" }, { 0xB4CFE0, "Sichuan tianyi kanghe communications co., LTD", "SICHUAN-TIANYI-KANGHE-COMMUNICATION" }, { 0xB4D0A9, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xB4D135, "Cloudistics", "CLOUDISTICS" }, { 0xB4D286, "Telechips, Inc.", "TELECHIPS" }, { 0xB4D5BD, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB4D64E, "Caldero Limited", "CALDERO" }, { 0xB4D8A9, "BetterBots", "BETTERBOTS" }, { 0xB4D8DE, "iota Computing, Inc.", "IOTA-COMPUTING" }, { 0xB4DB91, "CELESTICA INC.", "CELESTICA" }, { 0xB4DC09, "Guangzhou Dawei Communication Co.,Ltd", "GUANGZHOU-DAWEI-COMMUNICATION" }, { 0xB4DD15, "ControlThings Oy Ab", "CONTROLTHINGS-OY-AB" }, { 0xB4DDD0, "Continental Automotive Hungary Kft", "CONTINENTAL-AUTOMOTIVE-HUNGARY-KFT" }, { 0xB4DDE0, "Shanghai Amphenol Airwave Communication Electronics Co.,Ltd.", "SHANGHAI-AMPHENOL-AIRWAVE-COMMUNICATION-ELECTRONICS" }, { 0xB4DE31, "Cisco Systems, Inc", "CISCO" }, { 0xB4DEDF, "zte corporation", "ZTE" }, { 0xB4DF3B, "Chromlech", "CHROMLECH" }, { 0xB4DF91, "Cisco Meraki", "CISCO-MERAKI" }, { 0xB4DFFA, "Litemax Electronics Inc.", "LITEMAX-ELECTRONICS" }, { 0xB4E01D, "CONCEPTION ELECTRONIQUE", "CONCEPTION-ELECTRONIQUE" }, { 0xB4E0CD, "Fusion-io, Inc", "FUSION-IO" }, { 0xB4E10F, "Dell Inc.", "DELL" }, { 0xB4E1C4, "Microsoft Mobile Oy", "MICROSOFT-MOBILE-OY" }, { 0xB4E1EB, "Private", "PRIVATE" }, { 0xB4E265, "Shenzhen SDMC Technology CO.,Ltd.", "SHENZHEN-SDMC" }, { 0xB4E3F9, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xB4E454, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xB4E46B, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0xB4E54C, "LLC Elektra", "LLC-ELEKTRA" }, { 0xB4E62A, "LG Innotek", "LG-INNOTEK" }, { 0xB4E62D, "Espressif Inc.", "ESPRESSIF" }, { 0xB4E782, "Vivalnk", "VIVALNK" }, { 0xB4E842, "Hong Kong Bouffalo Lab Limited", "HONG-KONG-BOUFFALO-LAB" }, { 0xB4E8C9, "XADA Technologies", "XADA-TECHNOLOGIES" }, { 0xB4E9A3, "port industrial automation GmbH", "PORT-INDUSTRIAL-AUTOMATION" }, { 0xB4E9B0, "Cisco Systems, Inc", "CISCO" }, { 0xB4EC02, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0xB4ECF2, "Shanghai Listent Medical Tech Co., Ltd.", "SHANGHAI-LISTENT-MEDICAL-TECH" }, { 0xB4ECFF, "Wuhan IPG Technologies Co., Ltd.", "WUHAN-IPG-TECHNOLOGIES" }, { 0xB4ED19, "Pie Digital, Inc.", "PIE-DIGITAL" }, { 0xB4ED54, "Wohler Technologies", "WOHLER-TECHNOLOGIES" }, { 0xB4EDD5, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0xB4EE25, "Shenzhen Belon Technology CO.,LTD", "SHENZHEN-BELON" }, { 0xB4EEB4, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xB4EED4, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB4EF04, "DAIHAN Scientific Co., Ltd.", "DAIHAN-SCIENTIFIC" }, { 0xB4EF1C, "360 AI Technology Co.Ltd", "360-AI" }, { 0xB4EF39, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB4EFFA, "Lemobile Information Technology (Beijing) Co., Ltd.", "LEMOBILE-INFORMATION-BEIJING" }, { 0xB4F0AB, "Apple, Inc.", "APPLE" }, { 0xB4F18C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB4F1DA, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xB4F267, "Compal Broadband Networks, Inc.", "COMPAL-BROADBAND-NETWORKS" }, { 0xB4F2E8, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xB4F323, "PETATEL INC.", "PETATEL" }, { 0xB4F58E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB4F61C, "Apple, Inc.", "APPLE" }, { 0xB4F7A1, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xB4F81E, "Kinova", "KINOVA" }, { 0xB4F949, "optilink networks pvt ltd", "OPTILINK-NETWORKS-PVT" }, { 0xB4FA48, "Apple, Inc.", "APPLE" }, { 0xB4FBE3, "AltoBeam (China) Inc.", "ALTOBEAM-CHINA" }, { 0xB4FBE4, "Ubiquiti Inc", "UBIQUITI" }, { 0xB4FBF9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB4FC75, "SEMA Electronics(HK) CO.,LTD", "SEMA-ELECTRONICS-HK" }, { 0xB4FE8C, "Centro Sicurezza Italia SpA", "CENTRO-SICUREZZA-ITALIA-SPA" }, { 0xB4FF98, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB80018, "Htel", "HTEL" }, { 0xB802A4, "Aeonsemi, Inc.", "AEONSEMI" }, { 0xB80305, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB80415, "Bayan Audio", "BAYAN-AUDIO" }, { 0xB805AB, "zte corporation", "ZTE" }, { 0xB80716, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xB80756, "Cisco Meraki", "CISCO-MERAKI" }, { 0xB808CF, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB808D7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB8098A, "Apple, Inc.", "APPLE" }, { 0xB80B9D, "ROPEX Industrie-Elektronik GmbH", "ROPEX-INDUSTRIE-ELEKTRONIK" }, { 0xB810D4, "Masimo Corporation", "MASIMO" }, { 0xB8114B, "Cisco Systems, Inc", "CISCO" }, { 0xB812DA, "LVSWITCHES INC.", "LVSWITCHES" }, { 0xB81332, "AMPAK Technology,Inc.", "AMPAK" }, { 0xB813E9, "Trace Live Network", "TRACE-LIVE-NETWORK" }, { 0xB81413, "Keen High Holding(HK) Ltd.", "KEEN-HIGH-HOLDING-HK" }, { 0xB8144D, "Apple, Inc.", "APPLE" }, { 0xB8145C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB814DB, "OHSUNG", "OHSUNG" }, { 0xB81619, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xB8165F, "LG Innotek", "LG-INNOTEK" }, { 0xB816DB, "CHANT SINCERE CO.,LTD", "CHANT-SINCERE" }, { 0xB817C2, "Apple, Inc.", "APPLE" }, { 0xB8186F, "ORIENTAL MOTOR CO., LTD.", "ORIENTAL-MOTOR" }, { 0xB81904, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0xB81999, "Nesys", "NESYS" }, { 0xB81DAA, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xB81EA4, "Liteon Technology Corporation", "LITEON" }, { 0xB81F5E, "Apption Labs Limited", "APPTION-LABS" }, { 0xB8208E, "Panasonic Connect Co., Ltd.", "PANASONIC-CONNECT" }, { 0xB820E7, "Guangzhou Horizontal Information & Network Integration Co. Ltd", "GUANGZHOU-HORIZONTAL-INFORMATION-NETWORK-INTEGRATION" }, { 0xB8211C, "Apple, Inc.", "APPLE" }, { 0xB8224F, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xB82410, "Magneti Marelli Slovakia s.r.o.", "MAGNETI-MARELLI-SLOVAKIA-S-R-O" }, { 0xB8241A, "SWEDA INFORMATICA LTDA", "SWEDA-INFORMATICA-LTDA" }, { 0xB824F0, "SOYO Technology Development Co., Ltd.", "SOYO-DEVELOPMENT" }, { 0xB8259A, "Thalmic Labs", "THALMIC-LABS" }, { 0xB825B5, "Trakm8 Ltd", "TRAKM8" }, { 0xB8266C, "ANOV France", "ANOV-FRANCE" }, { 0xB826D4, "Furukawa Industrial S.A. Produtos Elétricos", "FURUKAWA-INDUSTRIAL-PRODUTOS-ELTRICOS" }, { 0xB827C5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB827EB, "Raspberry Pi Foundation", "RASPBERRY-PI-FOUNDATION" }, { 0xB8288B, "Parker Hannifin Manufacturing (UK) Ltd", "PARKER-HANNIFIN-MANUFACTURING-UK" }, { 0xB829F7, "Blaster Tech", "BLASTER-TECH" }, { 0xB82A72, "Dell Inc.", "DELL" }, { 0xB82AA9, "Apple, Inc.", "APPLE" }, { 0xB82ADC, "EFR Europäische Funk-Rundsteuerung GmbH", "EFR-EUROPAEISCHE-FUNK-RUNDSTEUERUNG" }, { 0xB82B68, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB82CA0, "Resideo", "RESIDEO" }, { 0xB82D28, "AMPAK Technology,Inc.", "AMPAK" }, { 0xB82FCB, "CMS Electracom", "CMS-ELECTRACOM" }, { 0xB830A8, "Road-Track Telematics Development", "ROAD-TRACK-TELEMATICS-DEVELOPMENT" }, { 0xB831B5, "Microsoft Corporation", "MICROSOFT" }, { 0xB83241, "Wuhan Tianyu Information Industry Co., Ltd.", "WUHAN-TIANYU-INFORMATION-INDUSTRY" }, { 0xB836D8, "Videoswitch", "VIDEOSWITCH" }, { 0xB8374A, "Apple, Inc.", "APPLE" }, { 0xB83765, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xB837B2, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xB83861, "Cisco Systems, Inc", "CISCO" }, { 0xB838CA, "Kyokko Tsushin System CO.,LTD", "KYOKKO-TSUSHIN-SYSTEM" }, { 0xB838EF, "ADVA Optical Networking Ltd.", "ADVA-OPTICAL-NETWORKING" }, { 0xB83A08, "Tenda Technology Co.,Ltd.Dongguan branch", "TENDA-DONGGUAN-BRANCH" }, { 0xB83A5A, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xB83A7B, "Worldplay (Canada) Inc.", "WORLDPLAY-CANADA" }, { 0xB83A9D, "Alarm.com", "ALARM-COM" }, { 0xB83BCC, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xB83C28, "Apple, Inc.", "APPLE" }, { 0xB83D4E, "Shenzhen Cultraview Digital Technology Co.,Ltd Shanghai Branch", "SHENZHEN-CULTRAVIEW-DIGITAL-SHANGHAI-BRANCH" }, { 0xB83DF6, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB83DFB, "Bouffalo Lab (Nanjing) Co., Ltd.", "BOUFFALO-LAB-NANJING" }, { 0xB83E59, "Roku, Inc.", "ROKU" }, { 0xB83FD2, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0xB8415F, "ASP AG", "ASP" }, { 0xB841A4, "Apple, Inc.", "APPLE" }, { 0xB843E4, "Vlatacom", "VLATACOM" }, { 0xB844AE, "TCT mobile ltd", "TCT-MOBILE" }, { 0xB844D9, "Apple, Inc.", "APPLE" }, { 0xB845F4, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xB8477A, "Dasan Electron Co., Ltd.", "DASAN-ELECTRON" }, { 0xB847C6, "SanJet Technology Corp.", "SANJET" }, { 0xB848AA, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0xB8496D, "Apple, Inc.", "APPLE" }, { 0xB84D43, "HUNAN FN-LINK TECHNOLOGY LIMITED", "HUNAN-FN-LINK" }, { 0xB84DEE, "Hisense broadband multimedia technology Co.,Ltd", "HISENSE-BROADBAND-MULTIMEDIA" }, { 0xB84FD5, "Microsoft Corporation", "MICROSOFT" }, { 0xB85001, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xB850D8, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0xB851A9, "Nokia", "NOKIA" }, { 0xB853AC, "Apple, Inc.", "APPLE" }, { 0xB85510, "Zioncom Electronics (Shenzhen) Ltd.", "ZIONCOM-ELECTRONICS-SHENZHEN" }, { 0xB85600, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB856BD, "ITT LLC", "ITT" }, { 0xB85776, "lignex1", "LIGNEX1" }, { 0xB857D8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB85810, "NUMERA, INC.", "NUMERA" }, { 0xB8599F, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0xB859C8, "70mai Co.,Ltd.", "70MAI" }, { 0xB859CE, "Earda Technologies co Ltd", "EARDA-TECHNOLOGIES" }, { 0xB85A73, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB85AF7, "Ouya, Inc", "OUYA" }, { 0xB85AFE, "Handaer Communication Technology (Beijing) Co., Ltd", "HANDAER-COMMUNICATION-BEIJING" }, { 0xB85CEE, "Baidu Online Network Technology (Beijing) Co., Ltd", "BAIDU-ONLINE-NETWORK-BEIJING" }, { 0xB85D0A, "Apple, Inc.", "APPLE" }, { 0xB85DC3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB85E71, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xB85E7B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB85F98, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xB85FB0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB86061, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xB86091, "Onnet Technologies and Innovations LLC", "ONNET-TECHNOLOGIES-AND-INNOVATIONS" }, { 0xB86142, "Beijing Tricolor Technology Co., Ltd", "BEIJING-TRICOLOR" }, { 0xB8616F, "Accton Technology Corp", "ACCTON" }, { 0xB8621F, "Cisco Systems, Inc", "CISCO" }, { 0xB8634D, "Apple, Inc.", "APPLE" }, { 0xB86392, "GUANGDONG GENIUS TECHNOLOGY CO., LTD.", "GUANGDONG-GENIUS" }, { 0xB863BC, "ROBOTIS, Co, Ltd", "ROBOTIS" }, { 0xB86491, "CK Telecom Ltd", "CK-TELECOM" }, { 0xB8653B, "Bolymin, Inc.", "BOLYMIN" }, { 0xB86685, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xB869C2, "Sunitec Enterprise Co., Ltd.", "SUNITEC" }, { 0xB869F4, "Routerboard.com", "ROUTERBOARD-COM" }, { 0xB86A97, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0xB86AF1, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xB86B23, "Toshiba", "TOSHIBA" }, { 0xB86CE0, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xB86CE8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB870F4, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0xB87424, "Viessmann Elektronik GmbH", "VIESSMANN-ELEKTRONIK" }, { 0xB87447, "Convergence Technologies", "CONVERGENCE-TECHNOLOGIES" }, { 0xB875C0, "PayPal, Inc.", "PAYPAL" }, { 0xB8763F, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xB877C3, "METER Group", "METER-GROUP" }, { 0xB87826, "Nintendo Co.,Ltd", "NINTENDO" }, { 0xB8782E, "Apple, Inc.", "APPLE" }, { 0xB87879, "Roche Diagnostics GmbH", "ROCHE-DIAGNOSTICS" }, { 0xB8797E, "Secure Meters (UK) Limited", "SECURE-METERS-UK" }, { 0xB87AC9, "Siemens Ltd.", "SIEMENS" }, { 0xB87BC5, "Apple, Inc.", "APPLE" }, { 0xB87BD4, "Google, Inc.", "GOOGLE" }, { 0xB87C6F, "NXP (China) Management Ltd.", "NXP-CHINA-MANAGEMENT" }, { 0xB87CD0, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB87CF2, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xB87EE5, "Intelbras", "INTELBRAS" }, { 0xB88035, "Shenzhen Qihu Intelligent Technology Company Limited", "SHENZHEN-QIHU-INTELLIGENT-COMPANY" }, { 0xB8804F, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB88198, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB881FA, "Apple, Inc.", "APPLE" }, { 0xB88303, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xB8857B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB88584, "Dell Inc.", "DELL" }, { 0xB88687, "Liteon Technology Corporation", "LITEON" }, { 0xB8871E, "Good Mind Industries Co., Ltd.", "GOOD-MIND-INDUSTRIES" }, { 0xB8876E, "Yandex Services AG", "YANDEX-SERVICES" }, { 0xB887A8, "Step Ahead Innovations Inc.", "STEP-AHEAD-INNOVATIONS" }, { 0xB887C6, "Prudential Technology co.,LTD", "PRUDENTIAL" }, { 0xB888E3, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0xB88981, "Chengdu InnoThings Technology Co., Ltd.", "CHENGDU-INNOTHINGS" }, { 0xB889CA, "ILJIN ELECTRIC Co., Ltd.", "ILJIN-ELECTRIC" }, { 0xB88A60, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB88A72, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0xB88AEC, "Nintendo Co.,Ltd", "NINTENDO" }, { 0xB88C29, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0xB88D12, "Apple, Inc.", "APPLE" }, { 0xB88DF1, "Nanjing BigFish Semiconductor Co., Ltd.", "NANJING-BIGFISH-SEMICONDUCTOR" }, { 0xB88E3A, "Infinite Technologies JLT", "INFINITE-TECHNOLOGIES-JLT" }, { 0xB88E82, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB88EC6, "Stateless Networks", "STATELESS-NETWORKS" }, { 0xB88EDF, "Zencheer Communication Technology Co., Ltd.", "ZENCHEER-COMMUNICATION" }, { 0xB88F14, "Analytica GmbH", "ANALYTICA" }, { 0xB88F27, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xB88FB4, "JABIL CIRCUIT ITALIA S.R.L", "JABIL-CIRCUIT-ITALIA" }, { 0xB89047, "Apple, Inc.", "APPLE" }, { 0xB891C9, "Handreamnet", "HANDREAMNET" }, { 0xB8921D, "BG T&A", "BG-T-A" }, { 0xB89436, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB89470, "Calix Inc.", "CALIX" }, { 0xB894D2, "Retail Innovation HTT AB", "RETAIL-INNOVATION-HTT-AB" }, { 0xB894D9, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xB894E7, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xB89674, "AllDSP GmbH & Co. KG", "ALLDSP" }, { 0xB8975A, "BIOSTAR Microtech Int'l Corp.", "BIOSTAR-MICROTECH" }, { 0xB898AD, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xB898B0, "Atlona Inc.", "ATLONA" }, { 0xB898F7, "Gionee Communication Equipment Co,Ltd.ShenZhen", "GIONEE-COMMUNICATION-EQUIPMENT-SHENZHEN" }, { 0xB89919, "7signal Solutions, Inc", "7SIGNAL-SOLUTIONS" }, { 0xB899AE, "Shenzhen MiaoMing Intelligent Technology Co.,Ltd", "SHENZHEN-MIAOMING-INTELLIGENT" }, { 0xB899B0, "Cohere Technologies", "COHERE-TECHNOLOGIES" }, { 0xB89A2A, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB89A9A, "Xin Shi Jia Technology (Beijing) Co.,Ltd", "XIN-SHI-JIA-BEIJING" }, { 0xB89ACD, "ELITE OPTOELECTRONIC(ASIA)CO.,LTD", "ELITE-OPTOELECTRONIC-ASIA" }, { 0xB89AED, "OceanServer Technology, Inc", "OCEANSERVER" }, { 0xB89BC9, "SMC Networks Inc", "SMC-NETWORKS" }, { 0xB89BE4, "ABB Power Systems Power Generation", "ABB-POWER-POWER-GENERATION" }, { 0xB89EA6, "SPBEC-MINING CO.LTD", "SPBEC-MINING" }, { 0xB89F09, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0xB89FCC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB8A14A, "Raisecom Technology CO.,LTD", "RAISECOM" }, { 0xB8A175, "Roku, Inc.", "ROKU" }, { 0xB8A377, "Cisco Systems, Inc", "CISCO" }, { 0xB8A386, "D-Link International", "D-LINK" }, { 0xB8A3E0, "BenRui Technology Co.,Ltd", "BENRUI" }, { 0xB8A44F, "Axis Communications AB", "AXIS-COMMUNICATION-AB" }, { 0xB8A535, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xB8A58D, "Axe Group Holdings Limited", "AXE-GROUP-HOLDINGS" }, { 0xB8A75E, "Wuxi Xinjie Electric Co.,Ltd", "WUXI-XINJIE-ELECTRIC" }, { 0xB8A8AF, "Logic S.p.A.", "LOGIC" }, { 0xB8AB61, "Cisco Meraki", "CISCO-MERAKI" }, { 0xB8AB62, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0xB8AC6F, "Dell Inc.", "DELL" }, { 0xB8AD3E, "BLUECOM", "BLUECOM" }, { 0xB8AE1C, "Smart Cube., Ltd", "SMART-CUBE" }, { 0xB8AE1D, "Guangzhou Xingyi Electronic Technology Co.,Ltd", "GUANGZHOU-XINGYI" }, { 0xB8AE6E, "Nintendo Co., Ltd.", "NINTENDO" }, { 0xB8AEED, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0xB8AF67, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xB8B1C7, "BT&COM CO.,LTD", "BT-COM" }, { 0xB8B2EB, "Googol Technology (HK) Limited", "GOOGOL-HK" }, { 0xB8B2F7, "DRIMAES INC.", "DRIMAES" }, { 0xB8B2F8, "Apple, Inc.", "APPLE" }, { 0xB8B3DC, "DEREK (SHAOGUAN) LIMITED", "DEREK-SHAOGUAN" }, { 0xB8B409, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB8B42E, "Gionee Communication Equipment Co,Ltd.ShenZhen", "GIONEE-COMMUNICATION-EQUIPMENT-SHENZHEN" }, { 0xB8B77D, "Guangdong Transtek Medical Electronics CO.,Ltd", "GUANGDONG-TRANSTEK-MEDICAL-ELECTRONICS" }, { 0xB8B7D7, "2GIG Technologies", "2GIG-TECHNOLOGIES" }, { 0xB8B7DB, "GOIP Global Services Pvt. Ltd.", "GOIP-GLOBAL-SERVICES-PVT" }, { 0xB8B7F1, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0xB8B81E, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB8B94E, "Shenzhen iBaby Labs, Inc.", "SHENZHEN-IBABY-LABS" }, { 0xB8BA68, "Xi'an Jizhong Digital Communication Co.,Ltd", "XI-AN-JIZHONG-DIGITAL-COMMUNICATION" }, { 0xB8BA72, "Cynove", "CYNOVE" }, { 0xB8BB23, "Guangdong Nufront CSC Co., Ltd", "GUANGDONG-NUFRONT-CSC" }, { 0xB8BB6D, "ENERES Co.,Ltd.", "ENERES" }, { 0xB8BBAF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB8BC1B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB8BC5B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB8BD79, "TrendPoint Systems", "TRENDPOINT" }, { 0xB8BEBF, "Cisco Systems, Inc", "CISCO" }, { 0xB8BEF4, "devolo AG", "DEVOLO" }, { 0xB8BF83, "Intel Corporate", "INTEL-CORPORATE" }, { 0xB8C065, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0xB8C111, "Apple, Inc.", "APPLE" }, { 0xB8C1A2, "Dragon Path Technologies Co., Limited", "DRAGON-PATH-TECHNOLOGIES" }, { 0xB8C227, "PSTec", "PSTEC" }, { 0xB8C253, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xB8C385, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB8C3BF, "Henan Chengshi NetWork Technology Co.,Ltd", "HENAN-CHENGSHI-NETWORK" }, { 0xB8C46F, "PRIMMCON INDUSTRIES INC", "PRIMMCON-INDUSTRIES" }, { 0xB8C68E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB8C6AA, "Earda Technologies co Ltd", "EARDA-TECHNOLOGIES" }, { 0xB8C716, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xB8C74A, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xB8C75D, "Apple, Inc.", "APPLE" }, { 0xB8C855, "Shanghai GBCOM Communication Technology Co.,Ltd.", "SHANGHAI-GBCOM-COMMUNICATION" }, { 0xB8C8EB, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xB8C9B5, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xB8CA04, "Holtek Semiconductor Inc.", "HOLTEK-SEMICONDUCTOR" }, { 0xB8CA3A, "Dell Inc.", "DELL" }, { 0xB8CB29, "Dell Inc.", "DELL" }, { 0xB8CD93, "Penetek, Inc", "PENETEK" }, { 0xB8CDA7, "Maxeler Technologies Ltd.", "MAXELER-TECHNOLOGIES" }, { 0xB8CEF6, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0xB8D06F, "GUANGZHOU HKUST FOK YING TUNG RESEARCH INSTITUTE", "GUANGZHOU-HKUST-FOK-YING-TUNG-RESEARCH-INSTITUTE" }, { 0xB8D0F0, "FCNT LMITED", "FCNT-LMITED" }, { 0xB8D309, "Cox Communications, Inc", "COX-COMMUNICATION" }, { 0xB8D43E, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xB8D49D, "M Seven System Ltd.", "M-SEVEN-SYSTEM" }, { 0xB8D4BC, "zte corporation", "ZTE" }, { 0xB8D4E7, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xB8D50B, "Sunitec Enterprise Co.,Ltd", "SUNITEC" }, { 0xB8D526, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xB8D56B, "Mirka Ltd.", "MIRKA" }, { 0xB8D61A, "Espressif Inc.", "ESPRESSIF" }, { 0xB8D6F6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB8D7AF, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xB8D812, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xB8D94D, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xB8D9CE, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xB8DAE8, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xB8DAF1, "Strahlenschutz- Entwicklungs- und Ausruestungsgesellschaft mbH", "STRAHLENSCHUTZ-ENTWICKLUNGS-UND-AUSRUESTUNGSGESELLSCHAFT" }, { 0xB8DAF7, "Advanced Photonics, Inc.", "ADVANCED-PHOTONICS" }, { 0xB8DB1C, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xB8DC87, "IAI Corporation", "IAI" }, { 0xB8DD71, "zte corporation", "ZTE" }, { 0xB8DE5E, "LONGCHEER TELECOMMUNICATION LIMITED", "LONGCHEER-TELECOMMUNICATION" }, { 0xB8DF6B, "SpotCam Co., Ltd.", "SPOTCAM" }, { 0xB8E3B1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xB8E3EE, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0xB8E589, "Payter BV", "PAYTER" }, { 0xB8E60C, "Apple, Inc.", "APPLE" }, { 0xB8E625, "2Wire Inc", "2WIRE" }, { 0xB8E779, "9Solutions Oy", "9SOLUTIONS-OY" }, { 0xB8E856, "Apple, Inc.", "APPLE" }, { 0xB8E937, "Sonos, Inc.", "SONOS" }, { 0xB8EA98, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xB8EAAA, "ICG NETWORKS CO.,ltd", "ICG-NETWORKS" }, { 0xB8ECA3, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xB8EE0E, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xB8EE65, "Liteon Technology Corporation", "LITEON" }, { 0xB8EE79, "YWire Technologies, Inc.", "YWIRE-TECHNOLOGIES" }, { 0xB8EF8B, "SHENZHEN CANNICE TECHNOLOGY CO.,LTD", "SHENZHEN-CANNICE" }, { 0xB8F009, "Espressif Inc.", "ESPRESSIF" }, { 0xB8F015, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xB8F080, "SPS, INC.", "SPS" }, { 0xB8F0B9, "zte corporation", "ZTE" }, { 0xB8F12A, "Apple, Inc.", "APPLE" }, { 0xB8F255, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0xB8F317, "iSun Smasher Communications Private Limited", "ISUN-SMASHER-COMMUNICATION-PRIVATE" }, { 0xB8F4D0, "Herrmann Ultraschalltechnik GmbH & Co. Kg", "HERRMANN-ULTRASCHALLTECHNIK" }, { 0xB8F5E7, "WayTools, LLC", "WAYTOOLS" }, { 0xB8F653, "Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd", "SHENZHEN-JINGXUN-SOFTWARE-TELECOMMUNICATION" }, { 0xB8F6B1, "Apple, Inc.", "APPLE" }, { 0xB8F732, "Aryaka Networks Inc", "ARYAKA-NETWORKS" }, { 0xB8F74A, "RCNTEC", "RCNTEC" }, { 0xB8F828, "Changshu Gaoshida Optoelectronic Technology Co. Ltd.", "CHANGSHU-GAOSHIDA-OPTOELECTRONIC" }, { 0xB8F853, "Arcadyan Corporation", "ARCADYAN" }, { 0xB8F883, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xB8F8BE, "BLUECOM", "BLUECOM" }, { 0xB8F934, "Sony Corporation", "SONY" }, { 0xB8FBAF, "Xiamen IPRT Technology CO.,LTD", "XIAMEN-IPRT" }, { 0xB8FC28, "Valeo Vision Systems", "VALEO-VISION" }, { 0xB8FC9A, "Le Shi Zhi Xin Electronic Technology (Tianjin) Limited", "LE-SHI-ZHI-XIN-TIANJIN" }, { 0xB8FD32, "Zhejiang ROICX Microelectronics", "ZHEJIANG-ROICX-MICROELECTRONICS" }, { 0xB8FF61, "Apple, Inc.", "APPLE" }, { 0xB8FF6F, "Shanghai Typrotech Technology Co.Ltd", "SHANGHAI-TYPROTECH" }, { 0xB8FFB3, "MitraStar Technology Corp.", "MITRASTAR" }, { 0xB8FFFE, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xBC0200, "Stewart Audio", "STEWART-AUDIO" }, { 0xBC024A, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0xBC026E, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xBC0358, "Intel Corporate", "INTEL-CORPORATE" }, { 0xBC03A7, "MFP MICHELIN", "MFP-MICHELIN" }, { 0xBC0543, "AVM GmbH", "AVM" }, { 0xBC062D, "Wacom Co.,Ltd.", "WACOM" }, { 0xBC091B, "Intel Corporate", "INTEL-CORPORATE" }, { 0xBC0963, "Apple, Inc.", "APPLE" }, { 0xBC0DA5, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xBC0EAB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC0F2B, "FORTUNE TECHGROUP CO.,LTD", "FORTUNE-TECHGROUP" }, { 0xBC0F64, "Intel Corporate", "INTEL-CORPORATE" }, { 0xBC0F9A, "D-Link International", "D-LINK" }, { 0xBC0FA7, "Ouster", "OUSTER" }, { 0xBC0FF3, "HP Inc.", "HP" }, { 0xBC107B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC125E, "Beijing WisVideo INC.", "BEIJING-WISVIDEO" }, { 0xBC13A8, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xBC1401, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0xBC1485, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC14EF, "ITON Technology Limited", "ITON" }, { 0xBC1541, "Nokia", "NOKIA" }, { 0xBC15A6, "Taiwan Jantek Electronics,Ltd.", "TAIWAN-JANTEK-ELECTRONICS" }, { 0xBC15AC, "Vodafone Italia S.p.A.", "VODAFONE-ITALIA" }, { 0xBC1665, "Cisco Systems, Inc", "CISCO" }, { 0xBC1695, "zte corporation", "ZTE" }, { 0xBC16F5, "Cisco Systems, Inc", "CISCO" }, { 0xBC17B8, "Intel Corporate", "INTEL-CORPORATE" }, { 0xBC1A67, "YF Technology Co., Ltd", "YF" }, { 0xBC1AE4, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xBC1C81, "Sichuan iLink Technology Co., Ltd.", "SICHUAN-ILINK" }, { 0xBC1D89, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xBC1E85, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBC20A4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC20BA, "Inspur (Shandong) Electronic Information Co., Ltd", "INSPUR-SHANDONG-INFORMATION" }, { 0xBC2228, "D-Link International", "D-LINK" }, { 0xBC2247, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xBC22FB, "RF Industries", "RF-INDUSTRIES" }, { 0xBC2392, "BYD Precision Manufacture Company Ltd.", "BYD-PRECISION-MANUFACTURE-COMPANY" }, { 0xBC25E0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBC25F0, "3D Display Technologies Co., Ltd.", "3D-DISPLAY-TECHNOLOGIES" }, { 0xBC261D, "HONG KONG TECON TECHNOLOGY", "HONG-KONG-TECON" }, { 0xBC2643, "Elprotronic Inc.", "ELPROTRONIC" }, { 0xBC26A1, "FACTORY FIVE Corporation", "FACTORY-FIVE" }, { 0xBC26C7, "Cisco Systems, Inc", "CISCO" }, { 0xBC282C, "e-Smart Systems Pvt. Ltd", "E-SMART-PVT" }, { 0xBC2846, "NextBIT Computing Pvt. Ltd.", "NEXTBIT-COMPUTING-PVT" }, { 0xBC28D6, "Rowley Associates Limited", "ROWLEY-ASSOCIATES" }, { 0xBC2B6B, "Beijing Haier IC Design Co.,Ltd", "BEIJING-HAIER-IC-DESIGN" }, { 0xBC2BD7, "Revogi Innovation Co., Ltd.", "REVOGI-INNOVATION" }, { 0xBC2C55, "Bear Flag Design, Inc.", "BEAR-FLAG-DESIGN" }, { 0xBC2CE6, "Cisco Systems, Inc", "CISCO" }, { 0xBC2D98, "ThinGlobal LLC", "THINGLOBAL" }, { 0xBC2DEF, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xBC2E48, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xBC2EF6, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xBC2F3D, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xBC305B, "Dell Inc.", "DELL" }, { 0xBC307D, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0xBC307E, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0xBC30D9, "Arcadyan Corporation", "ARCADYAN" }, { 0xBC3198, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xBC325F, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0xBC32B2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC3329, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0xBC3340, "Cisco Meraki", "CISCO-MERAKI" }, { 0xBC33AC, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xBC3400, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xBC35E5, "Hydro Systems Company", "HYDRO-COMPANY" }, { 0xBC3865, "JWCNETWORKS", "JWCNETWORKS" }, { 0xBC38D2, "Pandachip Limited", "PANDACHIP" }, { 0xBC39A6, "CSUN System Technology Co.,LTD", "CSUN-SYSTEM" }, { 0xBC39D9, "Z-TEC", "Z-TEC" }, { 0xBC3AEA, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xBC3BAF, "Apple, Inc.", "APPLE" }, { 0xBC3D85, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBC3E07, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0xBC3E13, "Accordance Systems Inc.", "ACCORDANCE" }, { 0xBC3ECB, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xBC3F4E, "Teleepoch Ltd", "TELEEPOCH" }, { 0xBC3F8F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBC4100, "CODACO ELECTRONIC s.r.o.", "CODACO-S-R-O" }, { 0xBC4101, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0xBC428C, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0xBC4377, "Hang Zhou Huite Technology Co.,ltd.", "HANG-ZHOU-HUITE" }, { 0xBC4434, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0xBC4486, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC44B0, "Elastifile", "ELASTIFILE" }, { 0xBC452E, "Knowledge Development for POF S.L.", "KNOWLEDGE-DEVELOPMENT-FOR-POF" }, { 0xBC455B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC458C, "Shenzhen Topwise Communication Co.,Ltd", "SHENZHEN-TOPWISE-COMMUNICATION" }, { 0xBC4699, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xBC4760, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC49B2, "SHENZHEN ALONG COMMUNICATION TECH CO., LTD", "SHENZHEN-ALONG-COMMUNICATION-TECH" }, { 0xBC4A56, "Cisco Systems, Inc", "CISCO" }, { 0xBC4B79, "SensingTek", "SENSINGTEK" }, { 0xBC4CA0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBC4CC4, "Apple, Inc.", "APPLE" }, { 0xBC4DFB, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0xBC4E3C, "CORE STAFF CO., LTD.", "CORE-STAFF" }, { 0xBC4E5D, "ZhongMiao Technology Co., Ltd.", "ZHONGMIAO" }, { 0xBC51FE, "Swann communications Pty Ltd", "SWANN-COMMUNICATION-PTY" }, { 0xBC5274, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC52B4, "Nokia", "NOKIA" }, { 0xBC52B7, "Apple, Inc.", "APPLE" }, { 0xBC542F, "Intel Corporate", "INTEL-CORPORATE" }, { 0xBC5436, "Apple, Inc.", "APPLE" }, { 0xBC5451, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC54F9, "Drogoo Technology Co., Ltd.", "DROGOO" }, { 0xBC54FC, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0xBC5729, "Shenzhen KKM Co., Ltd", "SHENZHEN-KKM" }, { 0xBC5A56, "Cisco Systems, Inc", "CISCO" }, { 0xBC5BD5, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xBC5C17, "Qingdao Intelligent&Precise Electronics Co.,Ltd.", "QINGDAO-INTELLIGENT-PRECISE-ELECTRONICS" }, { 0xBC5C4C, "ELECOM CO.,LTD.", "ELECOM" }, { 0xBC5DA3, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xBC5E33, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xBC5EA1, "PsiKick, Inc.", "PSIKICK" }, { 0xBC5FF4, "ASRock Incorporation", "ASROCK-INCORPORATION" }, { 0xBC5FF6, "MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0xBC6010, "Qingdao Hisense Communications Co.,Ltd.", "QINGDAO-HISENSE-COMMUNICATION" }, { 0xBC606B, "Shanghai Baud Data Communication Co.,Ltd.", "SHANGHAI-BAUD-DATA-COMMUNICATION" }, { 0xBC60A7, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0xBC6193, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xBC620E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBC629F, "Telenet Systems P. Ltd.", "TELENET-P" }, { 0xBC62CE, "SHENZHEN NETIS TECHNOLOGY CO.,LTD", "SHENZHEN-NETIS" }, { 0xBC62D2, "Genexis International B.V.", "GENEXIS-B-V" }, { 0xBC644B, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xBC64D9, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xBC6641, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xBC66DE, "Shadow Creator Information Technology Co.,Ltd.", "SHADOW-CREATOR-INFORMATION" }, { 0xBC671C, "Cisco Systems, Inc", "CISCO" }, { 0xBC6778, "Apple, Inc.", "APPLE" }, { 0xBC6784, "Environics Oy", "ENVIRONICS-OY" }, { 0xBC69CB, "Panasonic Electric Works Networks Co., Ltd.", "PANASONIC-ELECTRIC-WORKS-NETWORKS" }, { 0xBC6A16, "tdvine", "TDVINE" }, { 0xBC6A29, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xBC6A2F, "Henge Docks LLC", "HENGE-DOCKS" }, { 0xBC6A44, "Commend International GmbH", "COMMEND" }, { 0xBC6AD1, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xBC6B4D, "Nokia", "NOKIA" }, { 0xBC6BFF, "Guangzhou Shiyuan Electronic Technology Company Limited", "GUANGZHOU-SHIYUAN-COMPANY" }, { 0xBC6C21, "Apple, Inc.", "APPLE" }, { 0xBC6D05, "Dusun Electron Co.,Ltd.", "DUSUN-ELECTRON" }, { 0xBC6E64, "Sony Corporation", "SONY" }, { 0xBC6E6D, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0xBC6E76, "Green Energy Options Ltd", "GREEN-ENERGY-OPTIONS" }, { 0xBC6EE2, "Intel Corporate", "INTEL-CORPORATE" }, { 0xBC71C1, "XTrillion, Inc.", "XTRILLION" }, { 0xBC72B1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC73A4, "ANDA TELECOM PVT LTD", "ANDA-TELECOM-PVT" }, { 0xBC74D7, "HangZhou JuRu Technology CO.,LTD", "HANGZHOU-JURU" }, { 0xBC7536, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0xBC7574, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBC7596, "Beijing Broadwit Technology Co., Ltd.", "BEIJING-BROADWIT" }, { 0xBC764E, "Rackspace US, Inc.", "RACKSPACE-US" }, { 0xBC765E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC7670, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBC76C5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBC7737, "Intel Corporate", "INTEL-CORPORATE" }, { 0xBC779F, "SBM Co., Ltd.", "SBM" }, { 0xBC79AD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC7ABF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC7B72, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xBC7DD1, "Radio Data Comms", "RADIO-DATA-COMMS" }, { 0xBC7E8B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC7F7B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xBC7FA4, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xBC811F, "Ingate Systems", "INGATE" }, { 0xBC8199, "BASIC Co.,Ltd.", "BASIC" }, { 0xBC825D, "MITSUMI ELECTRIC CO.,LTD.", "MITSUMI-ELECTRIC" }, { 0xBC8385, "Microsoft Corporation", "MICROSOFT" }, { 0xBC83A7, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0xBC851F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC8529, "Jiangxi Remote lntelligence Technology Co.,Ltd", "JIANGXI-REMOTE-LNTELLIGENCE" }, { 0xBC8556, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xBC87FA, "Bose Corporation", "BOSE" }, { 0xBC8893, "VILLBAU Ltd.", "VILLBAU" }, { 0xBC88C3, "Ningbo Dooya Mechanic & Electronic Technology Co., Ltd", "NINGBO-DOOYA-MECHANIC" }, { 0xBC89A7, "Apple, Inc.", "APPLE" }, { 0xBC8AA3, "NHN Entertainment", "NHN-ENTERTAINMENT" }, { 0xBC8AE8, "QING DAO HAIER TELECOM CO.,LTD.", "QING-DAO-HAIER-TELECOM" }, { 0xBC8B55, "NPP ELIKS America Inc. DBA T&M Atlantic", "NPP-ELIKS-AMERICA-DBA-T-M-ATLANTIC" }, { 0xBC8CCD, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xBC8D0E, "Nokia", "NOKIA" }, { 0xBC903A, "Robert Bosch GmbH", "ROBERT-BOSCH" }, { 0xBC91B5, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0xBC926B, "Apple, Inc.", "APPLE" }, { 0xBC9307, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBC9325, "Ningbo Joyson Preh Car Connect Co.,Ltd.", "NINGBO-JOYSON-PREH-CAR-CONNECT" }, { 0xBC9680, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0xBC96E5, "SERCOMM PHILIPPINES INC", "SERCOMM-PHILIPPINES" }, { 0xBC9740, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xBC9789, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xBC97E1, "Broadcom Limited", "BROADCOM" }, { 0xBC9889, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xBC98DF, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xBC9911, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xBC9930, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBC99BC, "FonSee Technology Inc.", "FONSEE" }, { 0xBC9A53, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xBC9B5E, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xBC9B68, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xBC9C31, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBC9CC5, "Beijing Huafei Technology Co., Ltd.", "BEIJING-HUAFEI" }, { 0xBC9D42, "SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.", "SHENZHEN-RF-LINK" }, { 0xBC9DA5, "DASCOM Europe GmbH", "DASCOM-EUROPE" }, { 0xBC9E2C, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xBC9EBB, "Nintendo Co.,Ltd", "NINTENDO" }, { 0xBC9FE4, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xBC9FEF, "Apple, Inc.", "APPLE" }, { 0xBCA042, "SHANGHAI FLYCO ELECTRICAL APPLIANCE CO.,LTD", "SHANGHAI-FLYCO-ELECTRICAL-APPLIANCE" }, { 0xBCA13A, "SES-imagotag", "SES-IMAGOTAG" }, { 0xBCA37F, "Rail-Mil Sp. z o.o. Sp. K.", "RAIL-MIL-SP-Z-O-O-SP-K" }, { 0xBCA4E1, "Nabto", "NABTO" }, { 0xBCA511, "NETGEAR", "NETGEAR" }, { 0xBCA58B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBCA5A9, "Apple, Inc.", "APPLE" }, { 0xBCA8A6, "Intel Corporate", "INTEL-CORPORATE" }, { 0xBCA920, "Apple, Inc.", "APPLE" }, { 0xBCA993, "Cambium Networks Limited", "CAMBIUM-NETWORKS" }, { 0xBCA9D6, "Cyber-Rain, Inc.", "CYBER-RAIN" }, { 0xBCAB7C, "TRnP KOREA Co Ltd", "TRNP-KOREA" }, { 0xBCAD28, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xBCAD90, "Kymeta Purchasing", "KYMETA-PURCHASING" }, { 0xBCADAB, "Avaya Inc", "AVAYA" }, { 0xBCAEC5, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xBCAF87, "smartAC.com, Inc.", "SMARTAC-COM" }, { 0xBCAF91, "TE Connectivity Sensor Solutions", "TE-CONNECTIVITY-SENSOR-SOLUTIONS" }, { 0xBCB0E7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBCB181, "SHARP CORPORATION", "SHARP" }, { 0xBCB1D3, "Cisco Meraki", "CISCO-MERAKI" }, { 0xBCB1F3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBCB22B, "EM-Tech", "EM-TECH" }, { 0xBCB308, "HONGKONG RAGENTEK COMMUNICATION TECHNOLOGY CO.,LIMITED", "HONGKONG-RAGENTEK-COMMUNICATION" }, { 0xBCB6FB, "P4Q ELECTRONICS, S.L.", "P4Q-ELECTRONICS" }, { 0xBCB852, "Cybera, Inc.", "CYBERA" }, { 0xBCB863, "Apple, Inc.", "APPLE" }, { 0xBCB923, "Alta Networks", "ALTA-NETWORKS" }, { 0xBCBAC2, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xBCBAE1, "AREC Inc.", "AREC" }, { 0xBCBBC9, "Kellendonk Elektronik GmbH", "KELLENDONK-ELEKTRONIK" }, { 0xBCBC46, "SKS Welding Systems GmbH", "SKS-WELDING" }, { 0xBCBD84, "zte corporation", "ZTE" }, { 0xBCBD9E, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xBCC00F, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xBCC168, "DinBox Sverige AB", "DINBOX-SVERIGE-AB" }, { 0xBCC23A, "Thomson Video Networks", "THOMSON-VIDEO-NETWORKS" }, { 0xBCC31B, "Kygo Life A", "KYGO-LIFE-A" }, { 0xBCC342, "Panasonic Communications Co., Ltd.", "PANASONIC-COMMUNICATION" }, { 0xBCC427, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBCC493, "Cisco Systems, Inc", "CISCO" }, { 0xBCC61A, "SPECTRA EMBEDDED SYSTEMS", "SPECTRA-EMBEDDED" }, { 0xBCC6DB, "Nokia Corporation", "NOKIA" }, { 0xBCC746, "Hon Hai Precision IND.CO.,LTD", "HON-HAI-PRECISION-IND" }, { 0xBCC7DA, "Earda Technologies co Ltd", "EARDA-TECHNOLOGIES" }, { 0xBCC810, "Cisco SPVTG", "CISCO-SPVTG" }, { 0xBCCAB5, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xBCCD45, "VOISMART", "VOISMART" }, { 0xBCCE25, "Nintendo Co.,Ltd", "NINTENDO" }, { 0xBCCF4F, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xBCCFCC, "HTC Corporation", "HTC" }, { 0xBCD074, "Apple, Inc.", "APPLE" }, { 0xBCD0EB, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xBCD11F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBCD165, "Cisco SPVTG", "CISCO-SPVTG" }, { 0xBCD177, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xBCD1D3, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0xBCD206, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBCD295, "Cisco Systems, Inc", "CISCO" }, { 0xBCD5B6, "d2d technologies", "D2D-TECHNOLOGIES" }, { 0xBCD713, "Owl Labs", "OWL-LABS" }, { 0xBCD767, "BAE Systems Apllied Intelligence", "BAE-APLLIED-INTELLIGENCE" }, { 0xBCD7A5, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xBCD7CE, "China Mobile (Hangzhou) Information Technology Co., Ltd.", "CHINA-MOBILE-HANGZHOU-INFORMATION" }, { 0xBCD7D4, "Roku, Inc", "ROKU" }, { 0xBCD940, "ASR Co,.Ltd.", "ASR" }, { 0xBCDB09, "Cisco Meraki", "CISCO-MERAKI" }, { 0xBCDDC2, "Espressif Inc.", "ESPRESSIF" }, { 0xBCDF58, "Google, Inc.", "GOOGLE" }, { 0xBCE001, "SHENZHEN NETIS TECHNOLOGY CO.,LTD", "SHENZHEN-NETIS" }, { 0xBCE09D, "Eoslink", "EOSLINK" }, { 0xBCE143, "Apple, Inc.", "APPLE" }, { 0xBCE265, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xBCE59F, "WATERWORLD Technology Co.,LTD", "WATERWORLD" }, { 0xBCE63F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBCE67C, "Cambium Networks Limited", "CAMBIUM-NETWORKS" }, { 0xBCE712, "Cisco Systems, Inc", "CISCO" }, { 0xBCE767, "Quanzhou TDX Electronics Co., Ltd", "QUANZHOU-TDX-ELECTRONICS" }, { 0xBCE796, "Wireless CCTV Ltd", "WIRELESS-CCTV" }, { 0xBCE8FA, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xBCE92F, "HP Inc.", "HP" }, { 0xBCE9E2, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0xBCEA2B, "CityCom GmbH", "CITYCOM" }, { 0xBCEAFA, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xBCEB5F, "Fujian Beifeng Telecom Technology Co., Ltd.", "FUJIAN-BEIFENG-TELECOM" }, { 0xBCEC23, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0xBCEC5D, "Apple, Inc.", "APPLE" }, { 0xBCECA0, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0xBCEE7B, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xBCF171, "Intel Corporate", "INTEL-CORPORATE" }, { 0xBCF1F2, "Cisco Systems, Inc", "CISCO" }, { 0xBCF292, "PLANTRONICS, INC.", "PLANTRONICS" }, { 0xBCF2AF, "devolo AG", "DEVOLO" }, { 0xBCF310, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xBCF45F, "zte corporation", "ZTE" }, { 0xBCF499, "Rockwell Automation", "ROCKWELL-AUTOMATION" }, { 0xBCF4D4, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0xBCF5AC, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xBCF61C, "Geomodeling Wuxi Technology Co. Ltd.", "GEOMODELING-WUXI" }, { 0xBCF685, "D-Link International", "D-LINK" }, { 0xBCF730, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xBCF811, "Xiamen DNAKE Technology Co.,Ltd", "XIAMEN-DNAKE" }, { 0xBCF88B, "zte corporation", "ZTE" }, { 0xBCF9F2, "TEKO", "TEKO" }, { 0xBCFAB8, "Guangzhou Shiyuan Electronic Technology Company Limited", "GUANGZHOUSHIYUANCOMPANY" }, { 0xBCFAEB, "Cisco Systems, Inc", "CISCO" }, { 0xBCFD0C, "Shenzhen Phaten Tech. LTD", "SHENZHEN-PHATEN-TECH" }, { 0xBCFE8C, "Altronic, LLC", "ALTRONIC" }, { 0xBCFED9, "Apple, Inc.", "APPLE" }, { 0xBCFF21, "Smart Code(shenzhen)Technology Co.,Ltd", "SMART-CODE-SHENZHEN" }, { 0xBCFF4D, "Espressif Inc.", "ESPRESSIF" }, { 0xBCFFAC, "TOPCON CORPORATION", "TOPCON" }, { 0xBCFFEB, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xC0028D, "WINSTAR Display CO.,Ltd", "WINSTAR-DISPLAY" }, { 0xC00380, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xC005C2, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xC0060C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC006C3, "TP-Link Corporation Limited", "TP-LINK" }, { 0xC0074A, "Brita GmbH", "BRITA" }, { 0xC00D7E, "Additech, Inc.", "ADDITECH" }, { 0xC010B1, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0xC01173, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC011A6, "Fort-Telecom ltd.", "FORT-TELECOM" }, { 0xC01242, "Alpha Security Products", "ALPHA-SECURITY-PRODUCTS" }, { 0xC0132B, "Sichuan Changhong Electric Ltd.", "SICHUAN-CHANGHONG-ELECTRIC" }, { 0xC0143D, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xC014B8, "Nokia", "NOKIA" }, { 0xC014FE, "Cisco Systems, Inc", "CISCO" }, { 0xC01692, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xC0174D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC01754, "Apple, Inc.", "APPLE" }, { 0xC01803, "HP Inc.", "HP" }, { 0xC01850, "Quanta Computer Inc.", "QUANTA" }, { 0xC01885, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xC01ADA, "Apple, Inc.", "APPLE" }, { 0xC01B23, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xC01C30, "Shenzhen WIFI-3L Technology Co.,Ltd", "SHENZHEN-WIFI-3L" }, { 0xC01E9B, "Pixavi AS", "PIXAVI-AS" }, { 0xC0210D, "SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.", "SHENZHEN-RF-LINK" }, { 0xC02250, "Koss Corporation", "KOSS" }, { 0xC0238D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC02506, "AVM GmbH", "AVM" }, { 0xC0252F, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0xC0255C, "Cisco Systems, Inc", "CISCO" }, { 0xC02567, "Nexxt Solutions", "NEXXT-SOLUTIONS" }, { 0xC025A2, "NEC Platforms, Ltd.", "NEC-PLATFORMS" }, { 0xC025A5, "Dell Inc.", "DELL" }, { 0xC025E9, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xC027B9, "Beijing National Railway Research & Design Institute of Signal & Communication Co., Ltd.", "BEIJING-NATIONAL-RAILWAY-RESEARCH-DESIGN-INSTITUTE-OF-SIGNAL-COMMUNICATION" }, { 0xC0280B, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0xC0288D, "Logitech, Inc", "LOGITECH" }, { 0xC02973, "Audyssey Laboratories Inc.", "AUDYSSEY-LABORATORIES" }, { 0xC029F3, "XySystem", "XYSYSTEM" }, { 0xC02B31, "Phytium Technology Co.,Ltd.", "PHYTIUM" }, { 0xC02BFC, "iNES. applied informatics GmbH", "INES-APPLIED-INFORMATICS" }, { 0xC02C17, "Cisco Systems, Inc", "CISCO" }, { 0xC02C5C, "Apple, Inc.", "APPLE" }, { 0xC02C7A, "Shenzhen Horn Audio Co.,Ltd.", "SHENZHEN-HORN-AUDIO" }, { 0xC02DEE, "Cuff", "CUFF" }, { 0xC02E25, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xC02E26, "iRhythm Technologies, Inc.", "IRHYTHM-TECHNOLOGIES" }, { 0xC02FF1, "Volta Networks", "VOLTA-NETWORKS" }, { 0xC0335E, "Microsoft", "MICROSOFT" }, { 0xC033DA, "Shenzhen JRUN Technologies CO., LTD", "SHENZHEN-JRUN-TECHNOLOGIES" }, { 0xC034B4, "Gigastone Corporation", "GIGASTONE" }, { 0xC03580, "A&R TECH", "A-R-TECH" }, { 0xC035BD, "Velocytech Aps", "VELOCYTECH-APS" }, { 0xC035C5, "Prosoft Systems LTD", "PROSOFT" }, { 0xC03653, "eero inc.", "EERO" }, { 0xC03656, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xC03896, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xC038F9, "Nokia Danmark A/S", "NOKIA-DANMARK-A/S" }, { 0xC03937, "GREE ELECTRIC APPLIANCES, INC. OF ZHUHAI", "GREE-ELECTRIC-APPLIANCES-OF-ZHUHAI" }, { 0xC0395A, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0xC03B8F, "Minicom Digital Signage", "MINICOM-DIGITAL-SIGNAGE" }, { 0xC03C04, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xC03C59, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC03D03, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC03D46, "Shanghai Sango Network Technology Co.,Ltd", "SHANGHAI-SANGO-NETWORK" }, { 0xC03DD9, "MitraStar Technology Corp.", "MITRASTAR" }, { 0xC03E0F, "SKY UK LIMITED", "SKY-UK" }, { 0xC03E50, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC03EBA, "Dell Inc.", "DELL" }, { 0xC03F0E, "NETGEAR", "NETGEAR" }, { 0xC03F2A, "Biscotti, Inc.", "BISCOTTI" }, { 0xC03FD5, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0xC03FDD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC04004, "Medicaroid Corporation", "MEDICAROID" }, { 0xC04121, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0xC041F6, "LG ELECTRONICS INC", "LG-ELECTRONICS" }, { 0xC042D0, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xC04301, "Epec Oy", "EPEC-OY" }, { 0xC04442, "Apple, Inc.", "APPLE" }, { 0xC044E3, "Shenzhen Sinkna Electronics Co., LTD", "SHENZHEN-SINKNA-ELECTRONICS" }, { 0xC04754, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xC04884, "Sigma Bilisim Sist. Tekn. Elk. Enj. ve San. D??. Tic. Ltd. ?ti.", "SIGMA-BILISIM-SIST-TEKN-ELK-ENJ-VE-SAN-D-TIC-TI" }, { 0xC048E6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC048FB, "Shenzhen JingHanDa Electronics Co.Ltd", "SHENZHEN-JINGHANDA-ELECTRONICS" }, { 0xC0493D, "MAITRISE TECHNOLOGIQUE", "MAITRISE-TECHNOLOGIQUE" }, { 0xC04943, "zte corporation", "ZTE" }, { 0xC049EF, "Espressif Inc.", "ESPRESSIF" }, { 0xC04A00, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xC04A09, "Zhejiang Everbright Communication Equip. Co,. Ltd", "ZHEJIANG-EVERBRIGHT-COMMUNICATION-EQUIP" }, { 0xC04B13, "WonderSound Technology Co., Ltd", "WONDERSOUND" }, { 0xC04DF7, "SERELEC", "SERELEC" }, { 0xC04E30, "Espressif Inc.", "ESPRESSIF" }, { 0xC04E8A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC05064, "SHENNAN CIRCUITS CO.,LTD", "SHENNAN-CIRCUITS" }, { 0xC0515C, "zte corporation", "ZTE" }, { 0xC0517E, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xC05336, "Beijing National Railway Research & Design Institute of Signal & Communication Group Co..Ltd.", "BEIJING-NATIONAL-RAILWAY-RESEARCH-DESIGN-INSTITUTE-OF-SIGNAL-COMMUNICATION-GROUP" }, { 0xC05627, "Belkin International Inc.", "BELKIN" }, { 0xC056E3, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xC057BC, "Avaya Inc", "AVAYA" }, { 0xC058A7, "Pico Systems Co., Ltd.", "PICO" }, { 0xC05B44, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0xC05E6F, "V. Stonkaus firma Kodinis Raktas", "V-STONKAUS-FIRMA-KODINIS-RAKTAS" }, { 0xC05E79, "SHENZHEN HUAXUN ARK TECHNOLOGIES CO.,LTD", "SHENZHEN-HUAXUN-ARK-TECHNOLOGIES" }, { 0xC06118, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xC0613D, "BioIntelliSense, Inc.", "BIOINTELLISENSE" }, { 0xC0619A, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC0626B, "Cisco Systems, Inc", "CISCO" }, { 0xC06369, "BINXIN TECHNOLOGY(ZHEJIANG) LTD.", "BINXIN-ZHEJIANG" }, { 0xC06394, "Apple, Inc.", "APPLE" }, { 0xC064C6, "Nokia Corporation", "NOKIA" }, { 0xC064E4, "Cisco Systems, Inc", "CISCO" }, { 0xC06599, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC067AF, "Cisco Systems, Inc", "CISCO" }, { 0xC068CC, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0xC06911, "Arista Networks", "ARISTA-NETWORKS" }, { 0xC06B55, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xC06C0F, "Dobbs Stanford", "DOBBS-STANFORD" }, { 0xC06C6D, "MagneMotion, Inc.", "MAGNEMOTION" }, { 0xC06D1A, "Tianjin Henxinhuifeng Technology Co.,Ltd.", "TIANJIN-HENXINHUIFENG" }, { 0xC06DED, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xC07009, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC071AA, "ShenZhen OnMicro Electronics Co.,Ltd.", "SHENZHEN-ONMICRO-ELECTRONICS" }, { 0xC0742B, "SHENZHEN XUNLONG SOFTWARE CO.,LIMITED", "SHENZHEN-XUNLONG-SOFTWARE" }, { 0xC074AD, "Grandstream Networks, Inc.", "GRANDSTREAM-NETWORKS" }, { 0xC07831, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC07878, "FLEXTRONICS MANUFACTURING(ZHUHAI)CO.,LTD.", "FLEXTRONICS-MANUFACTURING-ZHUHAI" }, { 0xC07982, "TCL King Electrical Appliances(Huizhou)Co.,Ltd", "TCL-KING-ELECTRICAL-APPLIANCES-HUIZHOU" }, { 0xC07BBC, "Cisco Systems, Inc", "CISCO" }, { 0xC07C90, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xC07CD1, "PEGATRON CORPORATION", "PEGATRON" }, { 0xC07E40, "SHENZHEN XDK COMMUNICATION EQUIPMENT CO.,LTD", "SHENZHEN-XDK-COMMUNICATION-EQUIPMENT" }, { 0xC08135, "Ningbo Forfan technology Co., LTD", "NINGBO-FORFAN" }, { 0xC08170, "Effigis GeoSolutions", "EFFIGIS-GEOSOLUTIONS" }, { 0xC0830A, "2Wire Inc", "2WIRE" }, { 0xC08359, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC083C9, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC0847A, "Apple, Inc.", "APPLE" }, { 0xC0847D, "AMPAK Technology, Inc.", "AMPAK" }, { 0xC08488, "Finis Inc", "FINIS" }, { 0xC084E0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC0854C, "Ragentek Technology Group", "RAGENTEK-GROUP" }, { 0xC086B3, "Shenzhen Voxtech Co., Ltd.", "SHENZHEN-VOXTECH" }, { 0xC087EB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC0885B, "SnD Tech Co., Ltd.", "SND-TECH" }, { 0xC0886D, "Securosys SA", "SECUROSYS" }, { 0xC08997, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC089AB, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xC08ACD, "Guangzhou Shiyuan Electronic Technology Company Limited", "GUANGZHOU-SHIYUAN-COMPANY" }, { 0xC08ADE, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xC08B05, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC08B2A, "Cisco Systems, Inc", "CISCO" }, { 0xC08B6F, "S I Sistemas Inteligentes Eletrônicos Ltda", "S-I-SISTEMAS-INTELIGENTES-ELETRNICOS-LTDA" }, { 0xC08C60, "Cisco Systems, Inc", "CISCO" }, { 0xC08C71, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xC08D51, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xC08F20, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0xC09132, "Patriot Memory", "PATRIOT-MEMORY" }, { 0xC09134, "ProCurve Networking by HP", "PROCURVE-NETWORKING-BY-HP" }, { 0xC091B9, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xC09296, "zte corporation", "ZTE" }, { 0xC09435, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xC094AD, "zte corporation", "ZTE" }, { 0xC0956D, "Apple, Inc.", "APPLE" }, { 0xC09573, "AIxLink", "AIXLINK" }, { 0xC095DA, "NXP India Private Limited", "NXP-INDIA-PRIVATE" }, { 0xC09727, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xC09879, "Acer Inc.", "ACER" }, { 0xC098DA, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0xC098E5, "University of Michigan", "UNIVERSITY-OF-MICHIGAN" }, { 0xC09A71, "XIAMEN MEITU MOBILE TECHNOLOGY CO.LTD", "XIAMEN-MEITU-MOBILE" }, { 0xC09AD0, "Apple, Inc.", "APPLE" }, { 0xC09BF4, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC09C04, "Shaanxi GuoLian Digital TV Technology Co.,Ltd.", "SHAANXI-GUOLIAN-DIGITAL-TV" }, { 0xC09C92, "COBY", "COBY" }, { 0xC09D26, "Topicon HK Lmd.", "TOPICON-HK-LMD" }, { 0xC09F05, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xC09F42, "Apple, Inc.", "APPLE" }, { 0xC09F51, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0xC09FE1, "zte corporation", "ZTE" }, { 0xC0A00D, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xC0A0BB, "D-Link International", "D-LINK" }, { 0xC0A0C7, "FAIRFIELD INDUSTRIES", "FAIRFIELD-INDUSTRIES" }, { 0xC0A0DE, "Multi Touch Oy", "MULTI-TOUCH-OY" }, { 0xC0A0E2, "Eden Innovations", "EDEN-INNOVATIONS" }, { 0xC0A1A2, "MarqMetrix", "MARQMETRIX" }, { 0xC0A26D, "Abbott Point of Care", "ABBOTT-POINT-OF-CARE" }, { 0xC0A364, "3D Systems Massachusetts", "3D-MASSACHUSETTS" }, { 0xC0A36E, "SKY UK LIMITED", "SKY-UK" }, { 0xC0A39E, "EarthCam, Inc.", "EARTHCAM" }, { 0xC0A53E, "Apple, Inc.", "APPLE" }, { 0xC0A5DD, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0xC0A5E8, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC0A600, "Apple, Inc.", "APPLE" }, { 0xC0A66D, "Inspur Group Co., Ltd.", "INSPUR-GROUP" }, { 0xC0A8F0, "Adamson Systems Engineering", "ADAMSON-ENGINEERING" }, { 0xC0A938, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC0AA68, "OSASI Technos Inc.", "OSASI-TECHNOS" }, { 0xC0AC54, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xC0AD97, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0xC0AEFD, "Shenzhen HC-WLAN Technology Co.,Ltd", "SHENZHEN-HC-WLAN" }, { 0xC0B101, "zte corporation", "ZTE" }, { 0xC0B339, "Comigo Ltd.", "COMIGO" }, { 0xC0B357, "Yoshiki Electronics Industry Ltd.", "YOSHIKI-ELECTRONICS-INDUSTRY" }, { 0xC0B3C8, "LLC NTC Rotek", "LLC-NTC-ROTEK" }, { 0xC0B47D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC0B5CD, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC0B5D7, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0xC0B658, "Apple, Inc.", "APPLE" }, { 0xC0B6F9, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC0B713, "Beijing Xiaoyuer Technology Co. Ltd.", "BEIJING-XIAOYUER" }, { 0xC0B883, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC0B8B1, "BitBox Ltd", "BITBOX" }, { 0xC0B8E6, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0xC0BAE6, "Application Solutions (Safety and Security) Ltd", "APPLICATION-SOLUTIONS-SAFETY-AND-SECURITY" }, { 0xC0BC9A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC0BD42, "ZPA Smart Energy a.s.", "ZPA-SMART-ENERGY" }, { 0xC0BDC8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC0BDD1, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xC0BFA7, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xC0BFAC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC0BFC0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC0C170, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0xC0C1C0, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0xC0C3B6, "Automatic Systems", "AUTOMATIC" }, { 0xC0C4F9, "Qisda Corporation", "QISDA" }, { 0xC0C520, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xC0C522, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xC0C569, "SHANGHAI LYNUC CNC TECHNOLOGY CO.,LTD", "SHANGHAI-LYNUC-CNC" }, { 0xC0C687, "Cisco SPVTG", "CISCO-SPVTG" }, { 0xC0C70A, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xC0C946, "MITSUYA LABORATORIES INC.", "MITSUYA-LABORATORIES" }, { 0xC0C976, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0xC0C9E3, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xC0CB38, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xC0CBF1, "Mobiwire Mobiles (NingBo) Co., LTD", "MOBIWIRE-MOBILES-NINGBO" }, { 0xC0CC42, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xC0CCF8, "Apple, Inc.", "APPLE" }, { 0xC0CECD, "Apple, Inc.", "APPLE" }, { 0xC0CFA3, "Creative Electronics & Software, Inc.", "CREATIVE-ELECTRONICS-SOFTWARE" }, { 0xC0D012, "Apple, Inc.", "APPLE" }, { 0xC0D026, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC0D044, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xC0D063, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0xC0D0FF, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0xC0D193, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC0D2DD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC0D2F3, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0xC0D391, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC0D3C0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC0D46B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC0D682, "Arista Networks", "ARISTA-NETWORKS" }, { 0xC0D7AA, "Arcadyan Corporation", "ARCADYAN" }, { 0xC0D834, "xvtec ltd", "XVTEC" }, { 0xC0D962, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xC0D9F7, "ShanDong Domor Intelligent S&T CO.,Ltd", "SHANDONG-DOMOR-INTELLIGENT-S-T" }, { 0xC0DA74, "Hangzhou Sunyard Technology Co., Ltd.", "HANGZHOU-SUNYARD" }, { 0xC0DC6A, "Qingdao Eastsoft Communication Technology Co.,LTD", "QINGDAO-EASTSOFT-COMMUNICATION" }, { 0xC0DCD7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC0DCDA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC0DD8A, "Meta Platforms Technologies, LLC", "META-PLATFORMS-TECHNOLOGIES" }, { 0xC0DF77, "Conrad Electronic SE", "CONRAD-SE" }, { 0xC0E018, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC0E01C, "IoT Security Group, SL", "IOT-SECURITY-GROUP-SL" }, { 0xC0E1BE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC0E3A0, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0xC0E3FB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC0E422, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xC0E42D, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xC0E434, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xC0E54E, "ARIES Embedded GmbH", "ARIES-EMBEDDED" }, { 0xC0E7BF, "Sichuan AI-Link Technology Co., Ltd.", "SICHUAN-AI-LINK" }, { 0xC0E862, "Apple, Inc.", "APPLE" }, { 0xC0E911, "RealNetworks", "REALNETWORKS" }, { 0xC0EAC3, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC0EAE4, "Sonicwall", "SONICWALL" }, { 0xC0EDE5, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xC0EE40, "Laird Connectivity", "LAIRD-CONNECTIVITY" }, { 0xC0EEB5, "Enice Network.", "ENICE-NETWORK" }, { 0xC0EEFB, "OnePlus Tech (Shenzhen) Ltd", "ONEPLUS-TECH-SHENZHEN" }, { 0xC0F1C4, "Pacidal Corporation Ltd.", "PACIDAL" }, { 0xC0F2FB, "Apple, Inc.", "APPLE" }, { 0xC0F4E6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC0F535, "AMPAK Technology,Inc.", "AMPAK" }, { 0xC0F636, "Hangzhou Kuaiyue Technologies, Ltd.", "HANGZHOU-KUAIYUE-TECHNOLOGIES" }, { 0xC0F6C2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC0F6EC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC0F79D, "Powercode", "POWERCODE" }, { 0xC0F827, "Rapidmax Technology Corporation", "RAPIDMAX" }, { 0xC0F87F, "Cisco Systems, Inc", "CISCO" }, { 0xC0F8DA, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xC0F945, "Toshiba Toko Meter Systems Co., LTD.", "TOSHIBA-TOKO-METER" }, { 0xC0F991, "GME Standard Communications P/L", "GME-STANDARD-COMMUNICATION-P/L" }, { 0xC0F9B0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC0F9D2, "arkona technologies GmbH", "ARKONA-TECHNOLOGIES" }, { 0xC0FBC1, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xC0FBF9, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC0FD84, "zte corporation", "ZTE" }, { 0xC0FFA8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC0FFD4, "NETGEAR", "NETGEAR" }, { 0xC40006, "Lipi Data Systems Ltd.", "LIPI-DATA" }, { 0xC40049, "Kamama", "KAMAMA" }, { 0xC400AD, "Advantech Technology (CHINA) Co., Ltd.", "ADVANTECH-CHINA" }, { 0xC40142, "MaxMedia Technology Limited", "MAXMEDIA" }, { 0xC4017C, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xC401B1, "SeekTech INC", "SEEKTECH" }, { 0xC401CE, "PRESITION (2000) CO., LTD.", "PRESITION-2000" }, { 0xC402E1, "Khwahish Technologies Private Limited", "KHWAHISH-TECHNOLOGIES-PRIVATE" }, { 0xC403A8, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC40415, "NETGEAR", "NETGEAR" }, { 0xC4047B, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xC404D8, "Aviva Links Inc.", "AVIVA-LINKS" }, { 0xC40528, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC40683, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC4072F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC4084A, "Nokia", "NOKIA" }, { 0xC40880, "Shenzhen UTEPO Tech Co., Ltd.", "SHENZHEN-UTEPO-TECH" }, { 0xC40938, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0xC409B7, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xC40ACB, "Cisco Systems, Inc", "CISCO" }, { 0xC40B31, "Apple, Inc.", "APPLE" }, { 0xC40BCB, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xC40D96, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC40E45, "ACK Networks,Inc.", "ACK-NETWORKS" }, { 0xC40F09, "Hermes electronic GmbH", "HERMES" }, { 0xC4108A, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xC411E0, "Bull Group Co., Ltd", "BULL-GROUP" }, { 0xC41234, "Apple, Inc.", "APPLE" }, { 0xC412EC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC412F5, "D-Link International", "D-LINK" }, { 0xC413E2, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xC41411, "Apple, Inc.", "APPLE" }, { 0xC4143C, "Cisco Systems, Inc", "CISCO" }, { 0xC41688, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC416C8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC416FA, "Prysm Inc", "PRYSM" }, { 0xC4170E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC417FE, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xC418E9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC4198B, "Dominion Voting Systems Corporation", "DOMINION-VOTING" }, { 0xC419D1, "Telink Semiconductor (Shanghai) Co., Ltd.", "TELINK-SEMICONDUCTOR-SHANGHAI" }, { 0xC419EC, "Qualisys AB", "QUALISYS-AB" }, { 0xC41C07, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC41C9C, "JiQiDao", "JIQIDAO" }, { 0xC41CFF, "Vizio, Inc", "VIZIO" }, { 0xC41ECE, "HMI Sources Ltd.", "HMI-SOURCES" }, { 0xC421C8, "KYOCERA CORPORATION", "KYOCERA" }, { 0xC42360, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC4237A, "WhizNets Inc.", "WHIZNETS" }, { 0xC423A2, "PT. Emsonic Indonesia", "PT-EMSONIC-INDONESIA" }, { 0xC4242E, "Galvanic Applied Sciences Inc", "GALVANIC-APPLIED-SCIENCES" }, { 0xC42456, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0xC42628, "Airo Wireless", "AIRO-WIRELESS" }, { 0xC42728, "zte corporation", "ZTE" }, { 0xC4278C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC42795, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xC4282D, "Embedded Intellect Pty Ltd", "EMBEDDED-INTELLECT-PTY" }, { 0xC4291D, "KLEMSAN ELEKTRIK ELEKTRONIK SAN.VE TIC.AS.", "KLEMSAN-ELEKTRIK-ELEKTRONIK-SAN-VE-TIC-AS" }, { 0xC42996, "Signify B.V.", "SIGNIFY-B-V" }, { 0xC42AD0, "Apple, Inc.", "APPLE" }, { 0xC42B44, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC42C03, "Apple, Inc.", "APPLE" }, { 0xC42C4F, "Qingdao Hisense Mobile Communication Technology Co,Ltd", "QINGDAO-HISENSE-MOBILE-COMMUNICATION" }, { 0xC42F90, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xC43018, "MCS Logic Inc.", "MCS-LOGIC" }, { 0xC430CA, "SD Biosensor", "SD-BIOSENSOR" }, { 0xC432D1, "Farlink Technology Limited", "FARLINK" }, { 0xC43306, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xC4345B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC4346B, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xC435D9, "Apple, Inc.", "APPLE" }, { 0xC43655, "Shenzhen Fenglian Technology Co., Ltd.", "SHENZHEN-FENGLIAN" }, { 0xC4366C, "LG Innotek", "LG-INNOTEK" }, { 0xC436C0, "BUFFALO.INC", "BUFFALO" }, { 0xC436DA, "Rusteletech Ltd.", "RUSTELETECH" }, { 0xC43772, "Virtuozzo International GmbH", "VIRTUOZZO" }, { 0xC43875, "Sonos, Inc.", "SONOS" }, { 0xC438D3, "TAGATEC CO.,LTD", "TAGATEC" }, { 0xC4393A, "SMC Networks Inc", "SMC-NETWORKS" }, { 0xC43960, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0xC43A35, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0xC43A9F, "Siconix Inc.", "SICONIX" }, { 0xC43ABE, "Sony Corporation", "SONY" }, { 0xC43C3C, "CYBELEC SA", "CYBELEC" }, { 0xC43CB0, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0xC43CEA, "BUFFALO.INC", "BUFFALO" }, { 0xC43D1A, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC43DC7, "NETGEAR", "NETGEAR" }, { 0xC44044, "RackTop Systems Inc.", "RACKTOP" }, { 0xC440F6, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xC4411E, "Belkin International Inc.", "BELKIN" }, { 0xC44137, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0xC44202, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC44268, "CRESTRON ELECTRONICS, INC.", "CRESTRON-ELECTRONICS" }, { 0xC4438F, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xC4447D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC444A0, "Cisco Systems, Inc", "CISCO" }, { 0xC44567, "SAMBON PRECISON and ELECTRONICS", "SAMBON-PRECISON-AND-ELECTRONICS" }, { 0xC445EC, "Shanghai Yali Electron Co.,LTD", "SHANGHAI-YALI-ELECTRON" }, { 0xC44619, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xC4473F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC44838, "Satcom Direct, Inc.", "SATCOM-DIRECT" }, { 0xC448FA, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xC449BB, "MITSUMI ELECTRIC CO.,LTD.", "MITSUMI-ELECTRIC" }, { 0xC44AD0, "FIREFLIES SYSTEMS", "FIREFLIES" }, { 0xC44B44, "Omniprint Inc.", "OMNIPRINT" }, { 0xC44BD1, "Wallys Communications Teachnologies Co.,Ltd.", "WALLYS-COMMUNICATION-TEACHNOLOGIES" }, { 0xC44D84, "Cisco Systems, Inc", "CISCO" }, { 0xC44E1F, "BlueN", "BLUEN" }, { 0xC44EAC, "Shenzhen Shiningworth Technology Co., Ltd.", "SHENZHEN-SHININGWORTH" }, { 0xC44F33, "Espressif Inc.", "ESPRESSIF" }, { 0xC44F96, "Alps Alpine", "ALPS-ALPINE" }, { 0xC45006, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC4518D, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xC4524F, "Apple, Inc.", "APPLE" }, { 0xC45379, "Micronview Limited Liability Company", "MICRONVIEW-LIABILITY-COMPANY" }, { 0xC45444, "Quanta Computer Inc.", "QUANTA" }, { 0xC455A6, "Cadac Holdings Ltd", "CADAC-HOLDINGS" }, { 0xC455C2, "Bach-Simpson", "BACH-SIMPSON" }, { 0xC45600, "Galleon Embedded Computing", "GALLEON-EMBEDDED-COMPUTING" }, { 0xC456FE, "Lava International Ltd.", "LAVA" }, { 0xC4571F, "June Life Inc", "JUNE-LIFE" }, { 0xC4576E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC458C2, "Shenzhen TATFOOK Technology Co., Ltd.", "SHENZHEN-TATFOOK" }, { 0xC45976, "Fugoo Coorporation", "FUGOO-COORPORATION" }, { 0xC45A86, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC45AB1, "Dell Inc.", "DELL" }, { 0xC45BBE, "Espressif Inc.", "ESPRESSIF" }, { 0xC45BF7, "ants", "ANTS" }, { 0xC45D83, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC45DD8, "HDMI Forum", "HDMI-FORUM" }, { 0xC45E5C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC46026, "SKY UK LIMITED", "SKY-UK" }, { 0xC46044, "Everex Electronics Limited", "EVEREX-ELECTRONICS" }, { 0xC4618B, "Apple, Inc.", "APPLE" }, { 0xC461C7, "Microsoft Corporation", "MICROSOFT" }, { 0xC4626B, "ZPT Vigantice", "ZPT-VIGANTICE" }, { 0xC462EA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC46354, "U-Raku, Inc.", "U-RAKU" }, { 0xC463FB, "Neatframe AS", "NEATFRAME-AS" }, { 0xC46413, "Cisco Systems, Inc", "CISCO" }, { 0xC464B7, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xC464E3, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xC464F2, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0xC46516, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xC46699, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xC4678B, "Alphabet Capital Sdn Bhd", "ALPHABET-CAPITAL" }, { 0xC467B5, "Libratone A/S", "LIBRATONE-A/S" }, { 0xC467D1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC468D0, "VTech Telecommunications Ltd.", "VTECH-TELECOMMUNICATIONS" }, { 0xC4693E, "Turbulence Design Inc.", "TURBULENCE-DESIGN" }, { 0xC469F0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC46AB7, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xC46BB4, "myIDkey", "MYIDKEY" }, { 0xC46DF1, "DataGravity", "DATAGRAVITY" }, { 0xC46E1F, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xC46E33, "Zhong Ge Smart Technology Co., Ltd.", "ZHONG-GE-SMART" }, { 0xC46E7B, "SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.", "SHENZHEN-RF-LINK" }, { 0xC4700B, "GUANGZHOU CHIP TECHNOLOGIES CO.,LTD", "GUANGZHOU-CHIP-TECHNOLOGIES" }, { 0xC470AB, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0xC47130, "Fon Technology S.L.", "FON" }, { 0xC47154, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xC471FE, "Cisco Systems, Inc", "CISCO" }, { 0xC47295, "Cisco Systems, Inc", "CISCO" }, { 0xC4731E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC4741E, "zte corporation", "ZTE" }, { 0xC47469, "BT9", "BT9" }, { 0xC474F8, "Hot Pepper, Inc.", "HOT-PEPPER" }, { 0xC475AB, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC475EA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC477AB, "Beijing ASU Tech Co.,Ltd", "BEIJING-ASU-TECH" }, { 0xC477AF, "Advanced Digital Broadcast SA", "ADVANCED-DIGITAL-BROADCAST" }, { 0xC478A2, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC47905, "Zhejiang Uniview Technologies Co.,Ltd.", "ZHEJIANG-UNIVIEW-TECHNOLOGIES" }, { 0xC4799F, "Haiguang Smart Device Co.,Ltd.", "HAIGUANG-SMART-DEVICE" }, { 0xC47B2F, "Beijing JoinHope Image Technology Ltd.", "BEIJING-JOINHOPE-IMAGE" }, { 0xC47B80, "Protempis, LLC", "PROTEMPIS" }, { 0xC47BA3, "NAVIS Inc.", "NAVIS" }, { 0xC47C8D, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC47D46, "FUJITSU LIMITED", "FUJITSU" }, { 0xC47D4F, "Cisco Systems, Inc", "CISCO" }, { 0xC47D9F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC47DCC, "Zebra Technologies Inc", "ZEBRA-TECHNOLOGIES" }, { 0xC47DFE, "A.N. Solutions GmbH", "A-N-SOLUTIONS" }, { 0xC47EE0, "Cisco Systems, Inc", "CISCO" }, { 0xC47F51, "Inventek Systems", "INVENTEK" }, { 0xC48025, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC4808A, "Cloud Diagnostics Canada ULC", "CLOUD-DIAGNOSTICS-CANADA-ULC" }, { 0xC4823F, "Fujian Newland Auto-ID Tech. Co,.Ltd.", "FUJIAN-NEWLAND-AUTO-ID-TECH" }, { 0xC4824E, "Changzhou Uchip Electronics Co., LTD.", "CHANGZHOU-UCHIP-ELECTRONICS" }, { 0xC482E1, "Tuya Smart Inc.", "TUYA-SMART" }, { 0xC4836F, "Ciena Corporation", "CIENA" }, { 0xC48372, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC48466, "Apple, Inc.", "APPLE" }, { 0xC48508, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC486E9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC488E5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC489ED, "Solid Optics EU N.V.", "SOLID-OPTICS-EU-N-V" }, { 0xC48A5A, "JFCONTROL", "JFCONTROL" }, { 0xC48BA3, "Cisco Meraki", "CISCO-MERAKI" }, { 0xC48E8F, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xC48F07, "Shenzhen Yihao Hulian Science and Technology Co., Ltd.", "SHENZHEN-YIHAO-HULIAN-SCIENCE" }, { 0xC48FC1, "DEEPTRACK S.L.U.", "DEEPTRACK-S-L-U" }, { 0xC4910C, "Apple, Inc.", "APPLE" }, { 0xC4913A, "Shenzhen Sanland Electronic Co., ltd.", "SHENZHEN-SANLAND" }, { 0xC491CF, "Luxul", "LUXUL" }, { 0xC4924C, "KEISOKUKI CENTER CO.,LTD.", "KEISOKUKI-CENTER" }, { 0xC49300, "8Devices", "8DEVICES" }, { 0xC49313, "100fio networks technology llc", "100FIO-NETWORKS" }, { 0xC49380, "Speedytel technology", "SPEEDYTEL" }, { 0xC493BB, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0xC493D9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC49500, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xC4954D, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC495A2, "SHENZHEN WEIJIU INDUSTRY AND TRADE DEVELOPMENT CO., LTD", "SHENZHEN-WEIJIU-INDUSTRY-AND-TRADE-DEVELOPMENT" }, { 0xC49805, "Minieum Networks, Inc", "MINIEUM-NETWORKS" }, { 0xC4985C, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0xC49878, "SHANGHAI MOAAN INTELLIGENT TECHNOLOGY CO.,LTD", "SHANGHAI-MOAAN-INTELLIGENT" }, { 0xC49880, "Apple, Inc.", "APPLE" }, { 0xC49886, "Qorvo International Pte. Ltd.", "QORVO-PTE" }, { 0xC49894, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC49A02, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xC49D08, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC49DED, "Microsoft Corporation", "MICROSOFT" }, { 0xC49E41, "G24 Power Limited", "G24-POWER" }, { 0xC49F4C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC49FF3, "Mciao Technologies, Inc.", "MCIAO-TECHNOLOGIES" }, { 0xC4A052, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xC4A10E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC4A151, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xC4A1AE, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC4A366, "zte corporation", "ZTE" }, { 0xC4A402, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC4A559, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC4A64E, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0xC4A72B, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0xC4A816, "eero inc.", "EERO" }, { 0xC4A81D, "D-Link International", "D-LINK" }, { 0xC4AAA1, "SUMMIT DEVELOPMENT, spol.s r.o.", "SUMMIT-DEVELOPMENT-SPOL-S-R-O" }, { 0xC4AAC4, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0xC4ABB2, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xC4AC59, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xC4ACAA, "Apple, Inc.", "APPLE" }, { 0xC4AD21, "MEDIAEDGE Corporation", "MEDIAEDGE" }, { 0xC4AD34, "Routerboard.com", "ROUTERBOARD-COM" }, { 0xC4ADF1, "GOPEACE Inc.", "GOPEACE" }, { 0xC4AE12, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC4B239, "Cisco Systems, Inc", "CISCO" }, { 0xC4B301, "Apple, Inc.", "APPLE" }, { 0xC4B36A, "Cisco Systems, Inc", "CISCO" }, { 0xC4B512, "General Electric Digital Energy", "GENERAL-ELECTRIC-DIGITAL-ENERGY" }, { 0xC4B8B4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC4B9CD, "Cisco Systems, Inc", "CISCO" }, { 0xC4BA99, "I+ME Actia Informatik und Mikro-Elektronik GmbH", "I+ME-ACTIA-INFORMATIK-UND-MIKRO-ELEKTRONIK" }, { 0xC4BAA3, "Beijing Winicssec Technologies Co., Ltd.", "BEIJING-WINICSSEC-TECHNOLOGIES" }, { 0xC4BB4C, "Zebra Information Tech Co. Ltd", "ZEBRA-INFORMATION-TECH" }, { 0xC4BBEA, "Pakedge Device and Software Inc", "PAKEDGE-DEVICE-AND-SOFTWARE" }, { 0xC4BCD7, "New Ryatek", "NEW-RYATEK" }, { 0xC4BD6A, "SKF GmbH", "SKF" }, { 0xC4BDE5, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC4BE84, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xC4BED4, "Avaya Inc", "AVAYA" }, { 0xC4BF60, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0xC4C063, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xC4C0AE, "MIDORI ELECTRONIC CO., LTD.", "MIDORI" }, { 0xC4C138, "OWLink Technology Inc", "OWLINK" }, { 0xC4C17D, "Apple, Inc.", "APPLE" }, { 0xC4C19F, "National Oilwell Varco Instrumentation, Monitoring, and Optimization (NOV IMO)", "NATIONAL-OILWELL-VARCO-INSTRUMENTATION-MONITORING-AND-OPTIMIZATION-NOV-IMO" }, { 0xC4C36B, "Apple, Inc.", "APPLE" }, { 0xC4C563, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0xC4C603, "Cisco Systems, Inc", "CISCO" }, { 0xC4C755, "Beijing HuaqinWorld Technology Co.,Ltd", "BEIJING-HUAQINWORLD" }, { 0xC4C919, "Energy Imports Ltd", "ENERGY-IMPORTS" }, { 0xC4C9EC, "Gugaoo HK Limited", "GUGAOO-HK" }, { 0xC4CA2B, "Arista Networks", "ARISTA-NETWORKS" }, { 0xC4CAD9, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0xC4CB54, "Fibocom Auto Inc.", "FIBOCOM-AUTO" }, { 0xC4CB6B, "Airista Flow, Inc.", "AIRISTA-FLOW" }, { 0xC4CBE1, "Dell Inc.", "DELL" }, { 0xC4CD45, "Beijing Boomsense Technology CO.,LTD.", "BEIJING-BOOMSENSE" }, { 0xC4CD82, "Hangzhou Lowan Information Technology Co., Ltd.", "HANGZHOU-LOWAN-INFORMATION" }, { 0xC4D0E3, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC4D197, "Ventia Utility Services", "VENTIA-UTILITY-SERVICES" }, { 0xC4D36A, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xC4D438, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC4D489, "JiangSu Joyque Information Industry Co.,Ltd", "JIANGSU-JOYQUE-INFORMATION-INDUSTRY" }, { 0xC4D496, "Shenzhen Excelsecu Data Technology Co.,Ltd", "SHENZHEN-EXCELSECU-DATA" }, { 0xC4D655, "Tercel technology co.,ltd", "TERCEL" }, { 0xC4D666, "Cisco Meraki", "CISCO-MERAKI" }, { 0xC4D738, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC4D7FD, "Bouffalo Lab (Nanjing) Co., Ltd.", "BOUFFALO-LAB-NANJING" }, { 0xC4D8F3, "iZotope", "IZOTOPE" }, { 0xC4D987, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC4DA26, "NOBLEX SA", "NOBLEX" }, { 0xC4DA7D, "Ivium Technologies B.V.", "IVIUM-TECHNOLOGIES-B-V" }, { 0xC4DB04, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC4DD57, "Espressif Inc.", "ESPRESSIF" }, { 0xC4DE7B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC4DEE2, "Espressif Inc.", "ESPRESSIF" }, { 0xC4DF39, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xC4E032, "IEEE 1904.1 Working Group", "IEEE-1904-1-WORKING-GROUP" }, { 0xC4E0DE, "Zhengzhou XindaJiean Information Technology Co.,Ltd.", "ZHENGZHOU-XINDAJIEAN-INFORMATION" }, { 0xC4E17C, "U2S co.", "U2S" }, { 0xC4E1A1, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xC4E287, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC4E39F, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xC4E506, "Piper Networks, Inc.", "PIPER-NETWORKS" }, { 0xC4E510, "Mechatro, Inc.", "MECHATRO" }, { 0xC4E532, "Arcadyan Corporation", "ARCADYAN" }, { 0xC4E5B1, "Suzhou PanKore Integrated Circuit Technology Co. Ltd.", "SUZHOU-PANKORE-INTEGRATED-CIRCUIT" }, { 0xC4E7BE, "SCSpro Co.,Ltd", "SCSPRO" }, { 0xC4E90A, "D-Link International", "D-LINK" }, { 0xC4E92F, "AB Sciex", "AB-SCIEX" }, { 0xC4E984, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xC4EA1D, "Technicolor Delivery Technologies Belgium NV", "TECHNICOLOR-DELIVERY-TECHNOLOGIES-BELGIUM-NV" }, { 0xC4EB39, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xC4EB41, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xC4EB42, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xC4EB43, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xC4EBE3, "RRCN SAS", "RRCN-SAS" }, { 0xC4EBFF, "zte corporation", "ZTE" }, { 0xC4EDBA, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xC4EEAE, "VSS Monitoring", "VSS-MONITORING" }, { 0xC4EEF5, "II-VI Incorporated", "II-VI-INCORPORATED" }, { 0xC4EF70, "Home Skinovations", "HOME-SKINOVATIONS" }, { 0xC4EFDA, "Honeywell", "HONEYWELL" }, { 0xC4F081, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC4F0EC, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xC4F122, "Nexar Ltd.", "NEXAR" }, { 0xC4F174, "eero inc.", "EERO" }, { 0xC4F1D1, "BEIJING SOGOU TECHNOLOGY DEVELOPMENT CO., LTD.", "BEIJING-SOGOU-DEVELOPMENT" }, { 0xC4F312, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xC4F464, "Spica international", "SPICA" }, { 0xC4F57C, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0xC4F5A5, "Kumalift Co., Ltd.", "KUMALIFT" }, { 0xC4F7D5, "Cisco Systems, Inc", "CISCO" }, { 0xC4F839, "Actia Automotive", "ACTIA-AUTOMOTIVE" }, { 0xC4FBAA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC4FBC8, "Shenzhen Candour Co., Ltd.", "SHENZHEN-CANDOUR" }, { 0xC4FC22, "YEALINK(XIAMEN) NETWORK TECHNOLOGY CO.,LTD.", "YEALINK-XIAMEN-NETWORK" }, { 0xC4FCE4, "DishTV NZ Ltd", "DISHTV-NZ" }, { 0xC4FCEF, "SambaNova Systems, Inc.", "SAMBANOVA" }, { 0xC4FDE6, "DRTECH", "DRTECH" }, { 0xC4FE5B, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xC4FEE2, "AMICCOM Electronics Corporation", "AMICCOM-ELECTRONICS" }, { 0xC4FF1F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC4FF22, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC4FFBC, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC80084, "Cisco Systems, Inc", "CISCO" }, { 0xC80210, "LG Innotek", "LG-INNOTEK" }, { 0xC80258, "ITW GSE ApS", "ITW-GSE-APS" }, { 0xC8028F, "Nova Electronics (Shanghai) Co., Ltd.", "NOVA-ELECTRONICS-SHANGHAI" }, { 0xC802A6, "Beijing Newmine Technology", "BEIJING-NEWMINE" }, { 0xC803F5, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xC8059E, "Hefei Symboltek Co.,Ltd", "HEFEI-SYMBOLTEK" }, { 0xC80718, "TDSi", "TDSI" }, { 0xC80739, "NAKAYO Inc", "NAKAYO" }, { 0xC80873, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xC808E9, "LG Electronics", "LG-ELECTRONICS" }, { 0xC809A8, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC80A35, "Qingdao Hisense Smart Life Technology Co., Ltd", "QINGDAO-HISENSE-SMART-LIFE" }, { 0xC80AA9, "Quanta Computer Inc.", "QUANTA" }, { 0xC80CC8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC80D32, "Holoplot GmbH", "HOLOPLOT" }, { 0xC80E14, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0xC80E77, "Le Shi Zhi Xin Electronic Technology (Tianjin) Limited", "LE-SHI-ZHI-XIN-TIANJIN" }, { 0xC80E95, "OmniLync Inc.", "OMNILYNC" }, { 0xC81073, "CENTURY OPTICOMM CO.,LTD", "CENTURY-OPTICOMM" }, { 0xC8120B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC81337, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xC8138B, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0xC81451, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC81479, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC814B4, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xC8154E, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC816A5, "Masimo Corporation", "MASIMO" }, { 0xC816BD, "Qingdao Hisense Communications Co.,Ltd.", "QINGDAO-HISENSE-COMMUNICATION" }, { 0xC816DA, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xC81739, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xC819F7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC81AFE, "DLOGIC GmbH", "DLOGIC" }, { 0xC81B5C, "BCTech", "BCTECH" }, { 0xC81B6B, "Innova Security", "INNOVA-SECURITY" }, { 0xC81CFE, "Zebra Technologies Inc.", "ZEBRA-TECHNOLOGIES" }, { 0xC81E8E, "ADV Security (S) Pte Ltd", "ADV-SECURITY-S-PTE" }, { 0xC81EC2, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xC81EE7, "Apple, Inc.", "APPLE" }, { 0xC81F66, "Dell Inc.", "DELL" }, { 0xC81FBE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC81FEA, "Avaya Inc", "AVAYA" }, { 0xC8208E, "Storagedata", "STORAGEDATA" }, { 0xC82158, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC821DA, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xC82496, "Jiangsu Yinhe Electronics Co.,Ltd.", "JIANGSU-YINHE-ELECTRONICS" }, { 0xC825E1, "Lemobile Information Technology (Beijing) Co., Ltd", "LEMOBILE-INFORMATION-BEIJING" }, { 0xC82832, "Beijing Xiaomi Electronics Co., Ltd.", "BEIJING-XIAOMI-ELECTRONICS" }, { 0xC828E5, "Cisco Systems, Inc", "CISCO" }, { 0xC8292A, "Barun Electronics", "BARUN-ELECTRONICS" }, { 0xC829C8, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0xC82A14, "Apple, Inc.", "APPLE" }, { 0xC82ADD, "Google, Inc.", "GOOGLE" }, { 0xC82AF1, "TCT mobile ltd", "TCT-MOBILE" }, { 0xC82B6B, "shenzhen worldelite electronics co., LTD", "SHENZHEN-WORLDELITE-ELECTRONICS" }, { 0xC82B96, "Espressif Inc.", "ESPRESSIF" }, { 0xC82C2B, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC82E18, "Espressif Inc.", "ESPRESSIF" }, { 0xC82E47, "Suzhou SmartChip Semiconductor Co., LTD", "SUZHOU-SMARTCHIP-SEMICONDUCTOR" }, { 0xC82E94, "Halfa Enterprise Co., Ltd.", "HALFA" }, { 0xC83168, "eZEX corporation", "EZEX" }, { 0xC83232, "Hunting Innova", "HUNTING-INNOVA" }, { 0xC8334B, "Apple, Inc.", "APPLE" }, { 0xC833E5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC8348E, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC835B8, "Ericsson, EAB/RWI/K", "ERICSSON-EAB/RWI/K" }, { 0xC836A3, "GERTEC BRASIL LTDA", "GERTEC-BRASIL-LTDA" }, { 0xC83870, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC839AC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC83A1B, "Toshiba TEC Corporation Inc", "TOSHIBA-TEC" }, { 0xC83A35, "Tenda Technology Co., Ltd.", "TENDA" }, { 0xC83A6B, "Roku, Inc", "ROKU" }, { 0xC83B45, "JRI", "JRI" }, { 0xC83C85, "Apple, Inc.", "APPLE" }, { 0xC83D97, "Nokia Corporation", "NOKIA" }, { 0xC83DD4, "CyberTAN Technology Inc.", "CYBERTAN" }, { 0xC83DDC, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xC83DFC, "AlphaTheta Corporation", "ALPHATHETA" }, { 0xC83E99, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xC83E9E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC83EA7, "KUNBUS GmbH", "KUNBUS" }, { 0xC83F26, "Microsoft Corporation", "MICROSOFT" }, { 0xC83FB4, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xC84029, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xC84052, "PAX Computer Technology(Shenzhen) Ltd.", "PAX-SHENZHEN" }, { 0xC8418A, "Samsung Electronics.,LTD", "SAMSUNG-ELECTRONICS" }, { 0xC84529, "IMK Networks Co.,Ltd", "IMK-NETWORKS" }, { 0xC84544, "Asia Pacific CIS (Wuxi) Co, Ltd", "ASIA-PACIFIC-CIS-WUXI" }, { 0xC8458F, "Wyler AG", "WYLER" }, { 0xC84782, "Areson Technology Corp.", "ARESON" }, { 0xC8478C, "Beken Corporation", "BEKEN" }, { 0xC848F5, "MEDISON Xray Co., Ltd", "MEDISON-XRAY" }, { 0xC84AA0, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0xC84BD6, "Dell Inc.", "DELL" }, { 0xC84C75, "Cisco Systems, Inc", "CISCO" }, { 0xC84C78, "zte corporation", "ZTE" }, { 0xC84D34, "LIONS Taiwan Technology Inc.", "LIONS-TAIWAN" }, { 0xC84D44, "Shenzhen Jiapeng Huaxiang Technology Co.,Ltd", "SHENZHEN-JIAPENG-HUAXIANG" }, { 0xC84F0E, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xC84F86, "Sophos Ltd", "SOPHOS" }, { 0xC850CE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC850E9, "Raisecom Technology CO., LTD", "RAISECOM" }, { 0xC85142, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC85195, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC851FB, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xC85261, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xC853E1, "Beijing Bytedance Network Technology Co., Ltd", "BEIJING-BYTEDANCE-NETWORK" }, { 0xC8544B, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xC854A4, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0xC85645, "Intermas France", "INTERMAS-FRANCE" }, { 0xC85663, "Sunflex Europe GmbH", "SUNFLEX-EUROPE" }, { 0xC85895, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xC858C0, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC85A9F, "zte corporation", "ZTE" }, { 0xC85ACF, "HP Inc.", "HP" }, { 0xC85B76, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0xC85BA0, "Shenzhen Qihu Intelligent Technology Company Limited", "SHENZHEN-QIHU-INTELLIGENT-COMPANY" }, { 0xC85CCC, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0xC85D38, "HUMAX Co., Ltd.", "HUMAX" }, { 0xC85EA9, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC86000, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xC86314, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC863F1, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0xC863FC, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xC864C7, "zte corporation", "ZTE" }, { 0xC8662C, "Beijing Haitai Fangyuan High Technology Co,.Ltd.", "BEIJING-HAITAI-FANGYUAN-HIGH" }, { 0xC8665D, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xC8675E, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xC868DE, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC869CD, "Apple, Inc.", "APPLE" }, { 0xC86BBC, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC86C1E, "Display Systems Ltd", "DISPLAY" }, { 0xC86C20, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xC86C3D, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xC86C87, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xC86CB6, "Optcom Co., Ltd.", "OPTCOM" }, { 0xC86F1D, "Apple, Inc.", "APPLE" }, { 0xC87023, "Altice Labs S.A.", "ALTICE-LABS" }, { 0xC870D4, "IBO Technology Co,Ltd", "IBO" }, { 0xC87125, "Johnson Outdoors Marine Electronics d/b/a Minnkota", "JOHNSON-OUTDOORS-MARINE-ELECTRONICS-D/B/A-MINNKOTA" }, { 0xC87248, "Aplicom Oy", "APLICOM-OY" }, { 0xC8727E, "Nokia", "NOKIA" }, { 0xC87324, "Sow Cheng Technology Co. Ltd.", "SOW-CHENG" }, { 0xC8755B, "Quantify Technology Pty. Ltd.", "QUANTIFY-PTY" }, { 0xC87765, "Tiesse SpA", "TIESSE-SPA" }, { 0xC8778B, "Mercury Systems – Trusted Mission Solutions, Inc.", "MERCURY-TRUSTED-MISSION-SOLUTIONS" }, { 0xC8787D, "D-Link Corporation", "D-LINK" }, { 0xC87B23, "Bose Corporation", "BOSE" }, { 0xC87B5B, "zte corporation", "ZTE" }, { 0xC87CBC, "Valink Co., Ltd.", "VALINK" }, { 0xC87D77, "Shenzhen Kingtech Communication Equipment Co.,Ltd", "SHENZHEN-KINGTECH-COMMUNICATION-EQUIPMENT" }, { 0xC87E75, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC87EA1, "TCL MOKA International Limited", "TCL-MOKA" }, { 0xC87F54, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xC88314, "Tempo Communications", "TEMPO-COMMUNICATION" }, { 0xC88439, "Sunrise Technologies", "SUNRISE-TECHNOLOGIES" }, { 0xC88447, "Beautiful Enterprise Co., Ltd", "BEAUTIFUL" }, { 0xC8848C, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xC884A1, "Cisco Systems, Inc", "CISCO" }, { 0xC884CF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC88550, "Apple, Inc.", "APPLE" }, { 0xC88629, "Shenzhen Duubee Intelligent Technologies Co.,LTD.", "SHENZHEN-DUUBEE-INTELLIGENT-TECHNOLOGIES" }, { 0xC88722, "Lumenpulse", "LUMENPULSE" }, { 0xC8873B, "Net Optics", "NET-OPTICS" }, { 0xC889F3, "Apple, Inc.", "APPLE" }, { 0xC88A83, "Dongguan HuaHong Electronics Co.,Ltd", "DONGGUAN-HUAHONG-ELECTRONICS" }, { 0xC88A9A, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC88B47, "Nolangroup S.P.A con Socio Unico", "NOLANGROUP-S-P-A-CON-SOCIO-UNICO" }, { 0xC88BE8, "Masimo Corporation", "MASIMO" }, { 0xC88D83, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC88ED1, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC88F26, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0xC8903E, "Pakton Technologies", "PAKTON-TECHNOLOGIES" }, { 0xC8908A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC891F9, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xC89346, "MXCHIP Company Limited", "MXCHIP-COMPANY" }, { 0xC89383, "Embedded Automation, Inc.", "EMBEDDED-AUTOMATION" }, { 0xC89402, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0xC894BB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC894D2, "Jiangsu Datang Electronic Products Co., Ltd", "JIANGSU-DATANG-PRODUCTS" }, { 0xC8965A, "SKY UK LIMITED", "SKY-UK" }, { 0xC89665, "Microsoft Corporation", "MICROSOFT" }, { 0xC8979F, "Nokia Corporation", "NOKIA" }, { 0xC89828, "zte corporation", "ZTE" }, { 0xC899B2, "Arcadyan Corporation", "ARCADYAN" }, { 0xC89BAD, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0xC89BD7, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xC89C13, "Inspiremobile", "INSPIREMOBILE" }, { 0xC89C1D, "Cisco Systems, Inc", "CISCO" }, { 0xC89CDC, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0xC89D18, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC89D6D, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xC89E43, "NETGEAR", "NETGEAR" }, { 0xC89E61, "Lyngsoe Systems LTd", "LYNGSOE" }, { 0xC89F1A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC89F1D, "SHENZHEN COMMUNICATION TECHNOLOGIES CO.,LTD", "SHENZHEN-COMMUNICATION-TECHNOLOGIES" }, { 0xC89F42, "VDII Innovation AB", "VDII-INNOVATION-AB" }, { 0xC8A030, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xC8A1B6, "Shenzhen Longway Technologies Co., Ltd", "SHENZHEN-LONGWAY-TECHNOLOGIES" }, { 0xC8A1BA, "Neul Ltd", "NEUL" }, { 0xC8A2CE, "Oasis Media Systems LLC", "OASIS-MEDIA" }, { 0xC8A362, "ASIX Electronics Corporation", "ASIX-ELECTRONICS" }, { 0xC8A40D, "Cooler Master Technology Inc", "COOLER-MASTER" }, { 0xC8A608, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xC8A620, "Nebula, Inc", "NEBULA" }, { 0xC8A6EF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC8A70A, "Verizon Business", "VERIZON-BUSINESS" }, { 0xC8A729, "SYStronics Co., Ltd.", "SYSTRONICS" }, { 0xC8A776, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC8A823, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC8A9FC, "Goyoo Networks Inc.", "GOYOO-NETWORKS" }, { 0xC8AA21, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xC8AA55, "Hunan Comtom Electronic Incorporated Co.,Ltd", "HUNAN-COMTOM-INCORPORATED" }, { 0xC8AACC, "Private", "PRIVATE" }, { 0xC8AE9C, "Shanghai TYD Elecronic Technology Co. Ltd", "SHANGHAI-TYD-ELECRONIC" }, { 0xC8AF40, "marco Systemanalyse und Entwicklung GmbH", "MARCO-SYSTEMANALYSE-UND-ENTWICKLUNG" }, { 0xC8AFE3, "Hefei Radio Communication Technology Co., Ltd", "HEFEI-RADIO-COMMUNICATION" }, { 0xC8B1CD, "Apple, Inc.", "APPLE" }, { 0xC8B1EE, "Qorvo", "QORVO" }, { 0xC8B21E, "CHIPSEA TECHNOLOGIES (SHENZHEN) CORP.", "CHIPSEA-TECHNOLOGIES-SHENZHEN" }, { 0xC8B29B, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC8B373, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0xC8B422, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xC8B5AD, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xC8B5B7, "Apple, Inc.", "APPLE" }, { 0xC8B6D3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC8B6FE, "Fitbit, Inc.", "FITBIT" }, { 0xC8B82F, "eero inc.", "EERO" }, { 0xC8BA94, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xC8BAE9, "QDIS", "QDIS" }, { 0xC8BB81, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC8BBD3, "Embrane", "EMBRANE" }, { 0xC8BC9C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC8BCC8, "Apple, Inc.", "APPLE" }, { 0xC8BCE5, "Sense Things Japan INC.", "SENSE-THINGS-JAPAN" }, { 0xC8BD4D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC8BD69, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC8BE19, "D-Link International", "D-LINK" }, { 0xC8BE35, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xC8BF4C, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0xC8BFFE, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC8C126, "ZPM Industria e Comercio Ltda", "ZPM-INDUSTRIA-E-COMERCIO-LTDA" }, { 0xC8C13C, "RuggedTek Hangzhou Co., Ltd", "RUGGEDTEK-HANGZHOU" }, { 0xC8C2C6, "Shanghai Airm2m Communication Technology Co., Ltd", "SHANGHAI-AIRM2M-COMMUNICATION" }, { 0xC8C2F5, "FLEXTRONICS MANUFACTURING(ZHUHAI)CO.,LTD.", "FLEXTRONICS-MANUFACTURING-ZHUHAI" }, { 0xC8C2FA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC8C465, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC8C50E, "Shenzhen Primestone Network Technologies.Co., Ltd.", "SHENZHEN-PRIMESTONE-NETWORK-TECHNOLOGIES" }, { 0xC8C64A, "Flextronics Tech.(Ind) Pvt Ltd", "FLEXTRONICS-TECH-IND-PVT" }, { 0xC8C750, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xC8C791, "Zero1.tv GmbH", "ZERO1-TV" }, { 0xC8C9A3, "Espressif Inc.", "ESPRESSIF" }, { 0xC8CA63, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xC8CA79, "Ciena Corporation", "CIENA" }, { 0xC8CB9E, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC8CBB8, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xC8CD72, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xC8D019, "Shanghai Tigercel Communication Technology Co.,Ltd", "SHANGHAI-TIGERCEL-COMMUNICATION" }, { 0xC8D083, "Apple, Inc.", "APPLE" }, { 0xC8D10B, "Nokia Corporation", "NOKIA" }, { 0xC8D12A, "Comtrend Corporation", "COMTREND" }, { 0xC8D15E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC8D1D1, "AGAiT Technology Corporation", "AGAIT" }, { 0xC8D2C1, "Jetlun (Shenzhen) Corporation", "JETLUN-SHENZHEN" }, { 0xC8D3A3, "D-Link International", "D-LINK" }, { 0xC8D3FF, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xC8D429, "Muehlbauer AG", "MUEHLBAUER" }, { 0xC8D590, "FLIGHT DATA SYSTEMS", "FLIGHT-DATA" }, { 0xC8D5FE, "Shenzhen Zowee Technology Co., Ltd", "SHENZHEN-ZOWEE" }, { 0xC8D69D, "Arab International Optronics", "ARAB-OPTRONICS" }, { 0xC8D6B7, "Solidigm Technology", "SOLIDIGM" }, { 0xC8D719, "Cisco-Linksys, LLC", "CISCO-LINKSYS" }, { 0xC8D778, "BSH Hausgeraete GmbH", "BSH-HAUSGERAETE" }, { 0xC8D779, "QING DAO HAIER TELECOM CO.,LTD.", "QING-DAO-HAIER-TELECOM" }, { 0xC8D7B0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xC8D884, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0xC8D9D2, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xC8DB26, "Logitech", "LOGITECH" }, { 0xC8DDC9, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0xC8DE41, "SKY UK LIMITED", "SKY-UK" }, { 0xC8DE51, "IntegraOptics", "INTEGRAOPTICS" }, { 0xC8DEC9, "Coriant", "CORIANT" }, { 0xC8DF7C, "Nokia Corporation", "NOKIA" }, { 0xC8DF84, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xC8E0EB, "Apple, Inc.", "APPLE" }, { 0xC8E130, "Milkyway Group Ltd", "MILKYWAY-GROUP" }, { 0xC8E1A7, "Vertu Corporation Limited", "VERTU" }, { 0xC8E265, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC8E306, "eero inc.", "EERO" }, { 0xC8E42F, "Technical Research Design and Development", "TECHNICAL-RESEARCH-DESIGN-AND-DEVELOPMENT" }, { 0xC8E600, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xC8E776, "PTCOM Technology", "PTCOM" }, { 0xC8E7D8, "MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0xC8E7F0, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xC8EAF8, "zte corporation", "ZTE" }, { 0xC8EBEC, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xC8EDFC, "Shenzhen Ideaform Industrial Product Design Co., Ltd", "SHENZHEN-IDEAFORM-INDUSTRIAL-PRODUCT-DESIGN" }, { 0xC8EE08, "TANGTOP TECHNOLOGY CO.,LTD", "TANGTOP" }, { 0xC8EE75, "Pishion International Co. Ltd", "PISHION" }, { 0xC8EEA6, "Shenzhen SHX Technology Co., Ltd", "SHENZHEN-SHX" }, { 0xC8EF2E, "Beijing Gefei Tech. Co., Ltd", "BEIJING-GEFEI-TECH" }, { 0xC8EFBC, "Inspur Communication Technology Co.,Ltd.", "INSPUR-COMMUNICATION" }, { 0xC8F09E, "Espressif Inc.", "ESPRESSIF" }, { 0xC8F225, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0xC8F230, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xC8F2B4, "Guizhou Huaxin Information Technology Co., Ltd.", "GUIZHOU-HUAXIN-INFORMATION" }, { 0xC8F319, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xC8F36B, "Yamato Scale Co.,Ltd.", "YAMATO-SCALE" }, { 0xC8F386, "Shenzhen Xiaoniao Technology Co.,Ltd", "SHENZHEN-XIAONIAO" }, { 0xC8F406, "Avaya Inc", "AVAYA" }, { 0xC8F5D6, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xC8F650, "Apple, Inc.", "APPLE" }, { 0xC8F68D, "S.E.TECHNOLOGIES LIMITED", "S-E-TECHNOLOGIES" }, { 0xC8F6C8, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xC8F704, "Building Block Video", "BUILDING-BLOCK-VIDEO" }, { 0xC8F733, "Intel Corporate", "INTEL-CORPORATE" }, { 0xC8F742, "HangZhou Gubei Electronics Technology Co.,Ltd", "HANGZHOU-GUBEI-ELECTRONICS" }, { 0xC8F750, "Dell Inc.", "DELL" }, { 0xC8F86D, "Alcatel-Lucent Shanghai Bell Co., Ltd", "ALCATEL-LUCENT-SHANGHAI-BELL" }, { 0xC8F946, "LOCOSYS Technology Inc.", "LOCOSYS" }, { 0xC8F981, "Seneca s.r.l.", "SENECA" }, { 0xC8F9C8, "NewSharp Technology(SuZhou)Co,Ltd", "NEWSHARP-SUZHOU" }, { 0xC8F9F9, "Cisco Systems, Inc", "CISCO" }, { 0xC8FA84, "Trusonus corp.", "TRUSONUS" }, { 0xC8FAE1, "ARQ Digital LLC", "ARQ-DIGITAL" }, { 0xC8FB26, "Cisco SPVTG", "CISCO-SPVTG" }, { 0xC8FD19, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xC8FE30, "Bejing DAYO Mobile Communication Technology Ltd.", "BEJING-DAYO-MOBILE-COMMUNICATION" }, { 0xC8FE6A, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xC8FF28, "Liteon Technology Corporation", "LITEON" }, { 0xC8FF77, "Dyson Limited", "DYSON" }, { 0xCC0080, "BETTINI SRL", "BETTINI-SRL" }, { 0xCC00F1, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xCC037B, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xCC03D9, "Cisco Meraki", "CISCO-MERAKI" }, { 0xCC03FA, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xCC047C, "G-WAY Microwave", "G-WAY-MICROWAVE" }, { 0xCC04B4, "Select Comfort", "SELECT-COMFORT" }, { 0xCC051B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xCC0577, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCC0677, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xCC07AB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xCC07E4, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0xCC087B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCC088D, "Apple, Inc.", "APPLE" }, { 0xCC08E0, "Apple, Inc.", "APPLE" }, { 0xCC08FA, "Apple, Inc.", "APPLE" }, { 0xCC08FB, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xCC09C8, "IMAQLIQ LTD", "IMAQLIQ" }, { 0xCC0CDA, "Miljovakt AS", "MILJOVAKT-AS" }, { 0xCC0DE7, "B METERS S.R.L.", "B-METERS" }, { 0xCC0DEC, "Cisco SPVTG", "CISCO-SPVTG" }, { 0xCC0DF2, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xCC10A3, "Beijing Nan Bao Technology Co., Ltd.", "BEIJING-NAN-BAO" }, { 0xCC14A6, "Yichun MyEnergy Domain, Inc", "YICHUN-MYENERGY-DOMAIN" }, { 0xCC1531, "Intel Corporate", "INTEL-CORPORATE" }, { 0xCC167E, "Cisco Systems, Inc", "CISCO" }, { 0xCC187B, "Manzanita Systems, Inc.", "MANZANITA" }, { 0xCC19A8, "PT Inovação e Sistemas SA", "PT-INOVAO-E-SISTEMAS" }, { 0xCC1AA3, "Arista Networks", "ARISTA-NETWORKS" }, { 0xCC1AFA, "zte corporation", "ZTE" }, { 0xCC1BE0, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xCC1E97, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCC1EFF, "Metrological Group BV", "METROLOGICAL-GROUP" }, { 0xCC1FC4, "InVue", "INVUE" }, { 0xCC208C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCC20E8, "Apple, Inc.", "APPLE" }, { 0xCC2119, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xCC2218, "InnoDigital Co., Ltd.", "INNODIGITAL" }, { 0xCC2237, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xCC242E, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0xCC25EF, "Apple, Inc.", "APPLE" }, { 0xCC262D, "Verifi, LLC", "VERIFI" }, { 0xCC29BD, "zte corporation", "ZTE" }, { 0xCC29F5, "Apple, Inc.", "APPLE" }, { 0xCC2A80, "Micro-Biz intelligence solutions Co.,Ltd", "MICRO-BIZ-INTELLIGENCE-SOLUTIONS" }, { 0xCC2AAC, "Yunjing lntelligent Technology(Dongguan).,Ltd", "YUNJING-LNTELLIGENT-DONGGUAN" }, { 0xCC2C83, "DarkMatter L.L.C", "DARKMATTER-L-L-C" }, { 0xCC2D1B, "SFR", "SFR" }, { 0xCC2D21, "Tenda Technology Co.,Ltd.Dongguan branch", "TENDA-DONGGUAN-BRANCH" }, { 0xCC2D83, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xCC2D8C, "LG ELECTRONICS INC", "LG-ELECTRONICS" }, { 0xCC2DB7, "Apple, Inc.", "APPLE" }, { 0xCC2DE0, "Routerboard.com", "ROUTERBOARD-COM" }, { 0xCC2F71, "Intel Corporate", "INTEL-CORPORATE" }, { 0xCC3080, "VAIO Corporation", "VAIO" }, { 0xCC312A, "HUIZHOU TCL COMMUNICATION ELECTRON CO.,LTD", "HUIZHOU-TCL-COMMUNICATION-ELECTRON" }, { 0xCC3296, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xCC32E5, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xCC3331, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xCC33BB, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xCC3429, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xCC34D7, "GEWISS S.P.A.", "GEWISS" }, { 0xCC3540, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xCC355A, "SecuGen Corporation", "SECUGEN" }, { 0xCC37AB, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0xCC398C, "Shiningtek", "SHININGTEK" }, { 0xCC3A61, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0xCC3ADF, "Neptune Technology Group Inc.", "NEPTUNE-GROUP" }, { 0xCC3B27, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0xCC3B3E, "Lester Electrical", "LESTER-ELECTRICAL" }, { 0xCC3B58, "Curiouser Products Inc", "CURIOUSER-PRODUCTS" }, { 0xCC3C3F, "SA.S.S. Datentechnik AG", "S-S-DATENTECHNIK" }, { 0xCC3D82, "Intel Corporate", "INTEL-CORPORATE" }, { 0xCC3DD1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCC3E5F, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xCC3E79, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xCC3F1D, "HMS Industrial Networks SLU", "HMS-INDUSTRIAL-NETWORKS-SLU" }, { 0xCC3F8A, "KOMATSU LTD.", "KOMATSU" }, { 0xCC3FEA, "BAE Systems, Inc", "BAE" }, { 0xCC4085, "WiZ", "WIZ" }, { 0xCC40D0, "NETGEAR", "NETGEAR" }, { 0xCC418E, "MSA Innovation", "MSA-INNOVATION" }, { 0xCC4210, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xCC43E3, "Trump s.a.", "TRUMP" }, { 0xCC4463, "Apple, Inc.", "APPLE" }, { 0xCC4639, "WAAV, Inc.", "WAAV" }, { 0xCC464E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xCC46D6, "Cisco Systems, Inc", "CISCO" }, { 0xCC4703, "Intercon Systems Co., Ltd.", "INTERCON" }, { 0xCC4740, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xCC4792, "ASIX Electronics Corporation", "ASIX-ELECTRONICS" }, { 0xCC47BD, "Rhombus Systems", "RHOMBUS" }, { 0xCC483A, "Dell Inc.", "DELL" }, { 0xCC4AE1, "fourtec -Fourier Technologies", "FOURTEC-FOURIER-TECHNOLOGIES" }, { 0xCC4B73, "AMPAK Technology, Inc.", "AMPAK" }, { 0xCC4BFB, "Hellberg Safety AB", "HELLBERG-SAFETY-AB" }, { 0xCC4D38, "Carnegie Technologies", "CARNEGIE-TECHNOLOGIES" }, { 0xCC4D74, "Fujian Newland Payment Technology Co., Ltd.", "FUJIAN-NEWLAND-PAYMENT" }, { 0xCC4E24, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0xCC4EEC, "HUMAX Co., Ltd.", "HUMAX" }, { 0xCC4F5C, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xCC500A, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xCC501C, "KVH Industries, Inc.", "KVH-INDUSTRIES" }, { 0xCC5076, "Ocom Communications, Inc.", "OCOM-COMMUNICATION" }, { 0xCC50E3, "Espressif Inc.", "ESPRESSIF" }, { 0xCC51B4, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xCC5289, "SHENZHEN OPTFOCUS TECHNOLOGY.,LTD", "SHENZHEN-OPTFOCUS" }, { 0xCC52AF, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0xCC53B5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCC5459, "OnTime Networks AS", "ONTIME-NETWORKS-AS" }, { 0xCC55AD, "RIM", "RIM" }, { 0xCC5763, "Panasonic Automotive Systems Co.,Ltd", "PANASONIC-AUTOMOTIVE" }, { 0xCC5830, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xCC593E, "Sensium Healthcare Limited", "SENSIUM-HEALTHCARE" }, { 0xCC5A53, "Cisco Systems, Inc", "CISCO" }, { 0xCC5B31, "Nintendo Co.,Ltd", "NINTENDO" }, { 0xCC5C61, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xCC5C75, "Weightech Com. Imp. Exp. Equip. Pesagem Ltda", "WEIGHTECH-COM-IMP-EXP-EQUIP-PESAGEM-LTDA" }, { 0xCC5CDE, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xCC5D4E, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xCC5D57, "Information System Research Institute,Inc.", "INFORMATION-SYSTEM-RESEARCH-INSTITUTE" }, { 0xCC5D78, "JTD Consulting", "JTD-CONSULTING" }, { 0xCC5EF8, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0xCC5FBF, "Topwise 3G Communication Co., Ltd.", "TOPWISE-3G-COMMUNICATION" }, { 0xCC60BB, "Empower RF Systems", "EMPOWER-RF" }, { 0xCC60C8, "Microsoft Corporation", "MICROSOFT" }, { 0xCC61E5, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xCC62FE, "UNION MAN TECHNOLOGY CO.,LTD", "UNION-MAN" }, { 0xCC64A6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCC65AD, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xCC660A, "Apple, Inc.", "APPLE" }, { 0xCC6618, "Adtran Inc", "ADTRAN" }, { 0xCC66B2, "Nokia", "NOKIA" }, { 0xCC68B6, "TP-Link Corporation Limited", "TP-LINK" }, { 0xCC69B0, "Global Traffic Technologies, LLC", "GLOBAL-TRAFFIC-TECHNOLOGIES" }, { 0xCC69FA, "Apple, Inc.", "APPLE" }, { 0xCC6A10, "The Chamberlain Group, Inc", "THE-CHAMBERLAIN-GROUP" }, { 0xCC6B1E, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0xCC6B98, "Minetec Wireless Technologies", "MINETEC-WIRELESS-TECHNOLOGIES" }, { 0xCC6BF1, "Sound Masking Inc.", "SOUND-MASKING" }, { 0xCC6DA0, "Roku, Inc.", "ROKU" }, { 0xCC6DEF, "TJK Tietolaite Oy", "TJK-TIETOLAITE-OY" }, { 0xCC6EA4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xCC70ED, "Cisco Systems, Inc", "CISCO" }, { 0xCC7190, "VIETNAM POST AND TELECOMMUNICATION INDUSTRY TECHNOLOGY JOINT STOCK COMPANY", "VIETNAM-POST-AND-TELECOMMUNICATION-INDUSTRY-JOINT-STOCK-COMPANY" }, { 0xCC720F, "Viscount Systems Inc.", "VISCOUNT" }, { 0xCC7286, "Xi'an Fengyu Information Technology Co., Ltd.", "XI-AN-FENGYU-INFORMATION" }, { 0xCC7314, "HONG KONG WHEATEK TECHNOLOGY LIMITED", "HONG-KONG-WHEATEK" }, { 0xCC7498, "Filmetrics Inc.", "FILMETRICS" }, { 0xCC75E2, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xCC7669, "SEETECH", "SEETECH" }, { 0xCC77C9, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xCC785F, "Apple, Inc.", "APPLE" }, { 0xCC78AB, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xCC794A, "BLU Products Inc.", "BLU-PRODUCTS" }, { 0xCC79CF, "SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.", "SHENZHEN-RF-LINK" }, { 0xCC79D7, "Cisco Systems, Inc", "CISCO" }, { 0xCC7A30, "CMAX Wireless Co., Ltd.", "CMAX-WIRELESS" }, { 0xCC7B35, "zte corporation", "ZTE" }, { 0xCC7B61, "NIKKISO CO., LTD.", "NIKKISO" }, { 0xCC7D37, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xCC7D5B, "Telink Semiconductor (Shanghai) Co., Ltd.", "TELINK-SEMICONDUCTOR-SHANGHAI" }, { 0xCC7EE7, "Panasonic Corporation AVC Networks Company", "PANASONIC-AVC-NETWORKS-COMPANY" }, { 0xCC7F75, "Cisco Systems, Inc", "CISCO" }, { 0xCC7F76, "Cisco Systems, Inc", "CISCO" }, { 0xCC812A, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xCC81DA, "Phicomm (Shanghai) Co., Ltd.", "PHICOMM-SHANGHAI" }, { 0xCC827F, "Advantech Technology (CHINA) Co., Ltd.", "ADVANTECH-CHINA" }, { 0xCC82EB, "KYOCERA CORPORATION", "KYOCERA" }, { 0xCC856C, "SHENZHEN MDK DIGITAL TECHNOLOGY CO.,LTD", "SHENZHEN-MDK-DIGITAL" }, { 0xCC86EC, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xCC874A, "Nokia", "NOKIA" }, { 0xCC8826, "LG Innotek", "LG-INNOTEK" }, { 0xCC88C7, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xCC895E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCC896C, "GN Hearing A/S", "GN-HEARING-A/S" }, { 0xCC89FD, "Nokia Corporation", "NOKIA" }, { 0xCC8CBF, "Tuya Smart Inc.", "TUYA-SMART" }, { 0xCC8CDA, "Shenzhen Wei Da Intelligent Technology Go.,Ltd", "SHENZHEN-WEI-DA-INTELLIGENT-GO" }, { 0xCC8CE3, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xCC8DB5, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0xCC8E71, "Cisco Systems, Inc", "CISCO" }, { 0xCC9070, "Cisco Systems, Inc", "CISCO" }, { 0xCC9093, "Hansong Tehnologies", "HANSONG-TEHNOLOGIES" }, { 0xCC90E8, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xCC912B, "TE Connectivity Touch Solutions", "TE-CONNECTIVITY-TOUCH-SOLUTIONS" }, { 0xCC934A, "Sierra Wireless, ULC", "SIERRA-WIRELESS-ULC" }, { 0xCC944A, "Pfeiffer Vacuum GmbH", "PFEIFFER-VACUUM" }, { 0xCC9470, "Kinestral Technologies, Inc.", "KINESTRAL-TECHNOLOGIES" }, { 0xCC95D7, "Vizio, Inc", "VIZIO" }, { 0xCC9635, "LVS Co.,Ltd.", "LVS" }, { 0xCC96A0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCC96E5, "Dell Inc.", "DELL" }, { 0xCC988B, "SONY Visual Products Inc.", "SONY-VISUAL-PRODUCTS" }, { 0xCC9891, "Cisco Systems, Inc", "CISCO" }, { 0xCC9916, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xCC9C3E, "Cisco Meraki", "CISCO-MERAKI" }, { 0xCC9DA2, "Eltex Enterprise Ltd.", "ELTEX" }, { 0xCC9E00, "Nintendo Co., Ltd.", "NINTENDO" }, { 0xCC9EA2, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xCC9ECA, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0xCC9F35, "Transbit Sp. z o.o.", "TRANSBIT-SP-Z-O-O" }, { 0xCC9F7A, "Chiun Mai Communication System, Inc", "CHIUN-MAI-COMMUNICATION-SYSTEM" }, { 0xCCA0E5, "DZG Metering GmbH", "DZG-METERING" }, { 0xCCA12B, "TCL King Electrical Appliances (Huizhou) Co., Ltd", "TCL-KING-ELECTRICAL-APPLIANCES-HUIZHOU" }, { 0xCCA174, "Meta Platforms Technologies, LLC", "META-PLATFORMS-TECHNOLOGIES" }, { 0xCCA219, "SHENZHEN ALONG INVESTMENT CO.,LTD", "SHENZHEN-ALONG-INVESTMENT" }, { 0xCCA223, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCCA260, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xCCA374, "Guangdong Guanglian Electronic Technology Co.Ltd", "GUANGDONG-GUANGLIAN" }, { 0xCCA3BD, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xCCA462, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xCCA4AF, "Shenzhen Sowell Technology Co., LTD", "SHENZHEN-SOWELL" }, { 0xCCA614, "AIFA TECHNOLOGY CORP.", "AIFA" }, { 0xCCA7C1, "Google, Inc.", "GOOGLE" }, { 0xCCAB2C, "HUMAX Co., Ltd.", "HUMAX" }, { 0xCCACFE, "Telink Semiconductor (Shanghai) Co., Ltd.", "TELINK-SEMICONDUCTOR-SHANGHAI" }, { 0xCCAF78, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xCCB071, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xCCB0A8, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xCCB0DA, "Liteon Technology Corporation", "LITEON" }, { 0xCCB11A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xCCB182, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCCB255, "D-Link International", "D-LINK" }, { 0xCCB3AB, "shenzhen Biocare Bio-Medical Equipment Co.,Ltd.", "SHENZHEN-BIOCARE-BIO-MEDICAL-EQUIPMENT" }, { 0xCCB3F8, "FUJITSU ISOTEC LIMITED", "FUJITSU-ISOTEC" }, { 0xCCB54C, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xCCB55A, "Fraunhofer ITWM", "FRAUNHOFER-ITWM" }, { 0xCCB5D1, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0xCCB691, "NECMagnusCommunications", "NECMAGNUSCOMMUNICATIONS" }, { 0xCCB6C8, "Cisco Systems, Inc", "CISCO" }, { 0xCCB7C4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCCB888, "AnB Securite s.a.", "ANB-SECURITE" }, { 0xCCB8A8, "AMPAK Technology, Inc.", "AMPAK" }, { 0xCCB8F1, "EAGLE KINGDOM TECHNOLOGIES LIMITED", "EAGLE-KINGDOM-TECHNOLOGIES" }, { 0xCCBA6F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCCBBFE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCCBCE3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCCBD35, "Steinel GmbH", "STEINEL" }, { 0xCCBDD3, "Ultimaker B.V.", "ULTIMAKER-B-V" }, { 0xCCBE59, "Calix Inc.", "CALIX" }, { 0xCCBE71, "OptiLogix BV", "OPTILOGIX" }, { 0xCCC079, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xCCC104, "Applied Technical Systems", "APPLIED-TECHNICAL" }, { 0xCCC261, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xCCC2E0, "Raisecom Technology CO., LTD", "RAISECOM" }, { 0xCCC3EA, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xCCC50A, "SHENZHEN DAJIAHAO TECHNOLOGY CO.,LTD", "SHENZHEN-DAJIAHAO" }, { 0xCCC5E5, "Dell Inc.", "DELL" }, { 0xCCC5EF, "Co-Comm Servicios Telecomunicaciones S.L.", "-COMM-SERVICIOS-TELECOMUNICACIONES" }, { 0xCCC62B, "Tri-Systems Corporation", "TRI" }, { 0xCCC760, "Apple, Inc.", "APPLE" }, { 0xCCC8D7, "CIAS Elettronica srl", "CIAS-ELETTRONICA-SRL" }, { 0xCCC92C, "Schindler - PORT Technology", "SCHINDLER-PORT" }, { 0xCCC95D, "Apple, Inc.", "APPLE" }, { 0xCCCC4E, "Sun Fountainhead USA. Corp", "SUN-FOUNTAINHEAD-USA" }, { 0xCCCC77, "Zaram Technology. Inc.", "ZARAM" }, { 0xCCCC81, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCCCCCC, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xCCCD64, "SM-Electronic GmbH", "SM" }, { 0xCCCE1E, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0xCCCE40, "Janteq Corp", "JANTEQ" }, { 0xCCCF83, "CIG SHANGHAI CO LTD", "CIG-SHANGHAI" }, { 0xCCD083, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xCCD281, "Apple, Inc.", "APPLE" }, { 0xCCD29B, "Shenzhen Bopengfa Elec&Technology CO.,Ltd", "SHENZHEN-BOPENGFA-ELEC" }, { 0xCCD31E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xCCD39D, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xCCD3C1, "Vestel Elektronik San ve Tic. A.S.", "VESTEL-ELEKTRONIK-SAN-VE-TIC" }, { 0xCCD3E2, "Jiangsu Yinhe Electronics Co.,Ltd.", "JIANGSU-YINHE-ELECTRONICS" }, { 0xCCD42E, "Arcadyan Corporation", "ARCADYAN" }, { 0xCCD4A1, "MitraStar Technology Corp.", "MITRASTAR" }, { 0xCCD539, "Cisco Systems, Inc", "CISCO" }, { 0xCCD73C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xCCD811, "Aiconn Technology Corporation", "AICONN" }, { 0xCCD81F, "Maipu Communication Technology Co.,Ltd.", "MAIPU-COMMUNICATION" }, { 0xCCD8C1, "Cisco Systems, Inc", "CISCO" }, { 0xCCD9AC, "Intel Corporate", "INTEL-CORPORATE" }, { 0xCCD9E9, "SCR Engineers Ltd.", "SCR-ENGINEERS" }, { 0xCCDB04, "DataRemote Inc.", "DATAREMOTE" }, { 0xCCDB93, "Cisco Systems, Inc", "CISCO" }, { 0xCCDBA7, "Espressif Inc.", "ESPRESSIF" }, { 0xCCDC55, "Dragonchip Limited", "DRAGONCHIP" }, { 0xCCDD58, "Robert Bosch GmbH", "ROBERT-BOSCH" }, { 0xCCDEDE, "Nokia", "NOKIA" }, { 0xCCE0C3, "EXTEN Technologies, Inc.", "EXTEN-TECHNOLOGIES" }, { 0xCCE0DA, "Baidu Online Network Technology (Beijing) Co., Ltd", "BAIDU-ONLINE-NETWORK-BEIJING" }, { 0xCCE17F, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xCCE194, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xCCE1D5, "BUFFALO.INC", "BUFFALO" }, { 0xCCE236, "Hangzhou Yaguan Technology Co. LTD", "HANGZHOU-YAGUAN" }, { 0xCCE686, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xCCE798, "My Social Stuff", "MY-SOCIAL-STUFF" }, { 0xCCE7DF, "American Magnetics, Inc.", "AMERICAN-MAGNETICS" }, { 0xCCE8AC, "SOYEA Technology Co.,Ltd.", "SOYEA" }, { 0xCCE9FA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xCCEA1C, "DCONWORKS Co., Ltd", "DCONWORKS" }, { 0xCCEB18, "OOO TSS", "OOO-TSS" }, { 0xCCEB5E, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xCCECB7, "ShenZhen Linked-Z Intelligent Display Co., Ltd", "SHENZHEN-LINKED-Z-INTELLIGENT-DISPLAY" }, { 0xCCED21, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0xCCED4D, "Cisco Systems, Inc", "CISCO" }, { 0xCCEDDC, "MitraStar Technology Corp.", "MITRASTAR" }, { 0xCCEED9, "VAHLE Automation GmbH", "VAHLE-AUTOMATION" }, { 0xCCEF03, "Hunan Keyshare Communication Technology Co., Ltd.", "HUNAN-KEYSHARE-COMMUNICATION" }, { 0xCCEF48, "Cisco Systems, Inc", "CISCO" }, { 0xCCF0FD, "China Mobile (Hangzhou) Information Technology Co., Ltd.", "CHINA-MOBILE-HANGZHOU-INFORMATION" }, { 0xCCF305, "SHENZHEN TIAN XING CHUANG ZHAN ELECTRONIC CO.,LTD", "SHENZHEN-TIAN-XING-CHUANG-ZHAN" }, { 0xCCF3A5, "Chi Mei Communication Systems, Inc", "CHI-MEI-COMMUNICATION" }, { 0xCCF3C8, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xCCF407, "EUKREA ELECTROMATIQUE SARL", "EUKREA-ELECTROMATIQUE-SARL" }, { 0xCCF411, "Google, Inc.", "GOOGLE" }, { 0xCCF538, "3isysnetworks", "3ISYSNETWORKS" }, { 0xCCF55F, "E FOCUS INSTRUMENTS INDIA PRIVATE LIMITED", "E-FOCUS-INSTRUMENTS-INDIA-PRIVATE" }, { 0xCCF67A, "Ayecka Communication Systems LTD", "AYECKA-COMMUNICATION" }, { 0xCCF735, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xCCF826, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xCCF841, "Lumewave", "LUMEWAVE" }, { 0xCCF8F0, "Xi'an HISU Multimedia Technology Co.,Ltd.", "XI-AN-HISU-MULTIMEDIA" }, { 0xCCF954, "Avaya Inc", "AVAYA" }, { 0xCCF957, "u-blox AG", "U-BLOX" }, { 0xCCF9E4, "Intel Corporate", "INTEL-CORPORATE" }, { 0xCCF9E8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xCCFA00, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xCCFA66, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xCCFB65, "Nintendo Co., Ltd.", "NINTENDO" }, { 0xCCFC6D, "RIZ TRANSMITTERS", "RIZ-TRANSMITTERS" }, { 0xCCFCB1, "Wireless Technology, Inc.", "WIRELESS" }, { 0xCCFD17, "TCT mobile ltd", "TCT-MOBILE" }, { 0xCCFE3C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xCCFF90, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD0034B, "Apple, Inc.", "APPLE" }, { 0xD003DF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD003EB, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD00401, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xD00492, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xD004B0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD0052A, "Arcadyan Corporation", "ARCADYAN" }, { 0xD005E4, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD0066A, "Cornelis Networks, Inc.", "CORNELIS-NETWORKS" }, { 0xD00790, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD007CA, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xD009C8, "Cisco Systems, Inc", "CISCO" }, { 0xD00AAB, "Yokogawa Digital Computer Corporation", "YOKOGAWA-DIGITAL" }, { 0xD00DF7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD00EA4, "Porsche Cars North America", "PORSCHE-CARS-NORTH-AMERICA" }, { 0xD00ED9, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xD00F6D, "T&W Electronics Company", "T-W-ELECTRONICS-COMPANY" }, { 0xD01242, "BIOS Corporation", "BIOS" }, { 0xD012CB, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0xD0131E, "Sunrex Technology Corp", "SUNREX" }, { 0xD013FD, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xD01411, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD0154A, "zte corporation", "ZTE" }, { 0xD015A6, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xD015BB, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD0167C, "eero inc.", "EERO" }, { 0xD016B4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD016F0, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD01769, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xD0176A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD017C2, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xD0196A, "Ciena Corporation", "CIENA" }, { 0xD019D3, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xD01AA7, "UniPrint", "UNIPRINT" }, { 0xD01B1F, "OHSUNG", "OHSUNG" }, { 0xD01B49, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD01C3C, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0xD01CBB, "Beijing Ctimes Digital Technology Co., Ltd.", "BEIJING-CTIMES-DIGITAL" }, { 0xD01E1D, "SaiNXT Technologies LLP", "SAINXT-TECHNOLOGIES-LLP" }, { 0xD021AC, "Yohana", "YOHANA" }, { 0xD021F9, "Ubiquiti Inc", "UBIQUITI" }, { 0xD02212, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD022BE, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xD023DB, "Apple, Inc.", "APPLE" }, { 0xD02516, "MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0xD02544, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xD02598, "Apple, Inc.", "APPLE" }, { 0xD02788, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xD028BA, "Realme Chongqing MobileTelecommunications Corp Ltd", "REALME-CHONGQING-MOBILETELECOMMUNICATIONS" }, { 0xD02B20, "Apple, Inc.", "APPLE" }, { 0xD02C45, "littleBits Electronics, Inc.", "LITTLEBITS-ELECTRONICS" }, { 0xD02DB3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD02EAB, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD03110, "Ingenic Semiconductor Co.,Ltd", "INGENIC-SEMICONDUCTOR" }, { 0xD03169, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD03311, "Apple, Inc.", "APPLE" }, { 0xD035E5, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0xD03742, "Yulong Computer Telecommunication Scientific (Shenzhen) Co.,Ltd", "YULONG-TELECOMMUNICATION-SCIENTIFIC-SHENZHEN" }, { 0xD03745, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xD03761, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD03957, "Liteon Technology Corporation", "LITEON" }, { 0xD03972, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD039B3, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xD039EA, "NetApp", "NETAPP" }, { 0xD039FA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD03C1F, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD03D52, "Ava Security Limited", "AVA-SECURITY" }, { 0xD03DC3, "AQ Corporation", "AQ" }, { 0xD03E5C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD03E7D, "CHIPSEA TECHNOLOGIES (SHENZHEN) CORP.", "CHIPSEA-TECHNOLOGIES-SHENZHEN" }, { 0xD03F27, "Wyze Labs Inc", "WYZE-LABS" }, { 0xD03FAA, "Apple, Inc.", "APPLE" }, { 0xD040BE, "NPO RPS LLC", "NPO-RPS" }, { 0xD040EF, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xD041C9, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xD0431E, "Dell Inc.", "DELL" }, { 0xD046DC, "Southwest Research Institute", "SOUTHWEST-RESEARCH-INSTITUTE" }, { 0xD047C1, "Elma Electronic AG", "ELMA" }, { 0xD0484F, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0xD048F3, "DATTUS Inc", "DATTUS" }, { 0xD0497C, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0xD0498B, "ZOOM SERVER", "ZOOM-SERVER" }, { 0xD04CC1, "SINTRONES Technology Corp.", "SINTRONES" }, { 0xD04D2C, "Roku, Inc.", "ROKU" }, { 0xD04DC6, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xD04E50, "Mobiwire Mobiles (NingBo) Co., LTD", "MOBIWIRE-MOBILES-NINGBO" }, { 0xD04E99, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD04F58, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xD04F7E, "Apple, Inc.", "APPLE" }, { 0xD05099, "ASRock Incorporation", "ASROCK-INCORPORATION" }, { 0xD05157, "LEAX Arkivator Telecom", "LEAX-ARKIVATOR-TELECOM" }, { 0xD05162, "Sony Corporation", "SONY" }, { 0xD052A8, "Physical Graph Corporation", "PHYSICAL-GRAPH" }, { 0xD05349, "Liteon Technology Corporation", "LITEON" }, { 0xD0542D, "Cambridge Industries(Group) Co.,Ltd.", "CAMBRIDGE-INDUSTRIES-GROUP" }, { 0xD05475, "SAVI Controls", "SAVI-CONTROLS" }, { 0xD05509, "Nintendo Co.,Ltd", "NINTENDO" }, { 0xD055B2, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xD056BF, "AMOSENSE", "AMOSENSE" }, { 0xD0574C, "Cisco Systems, Inc", "CISCO" }, { 0xD0577B, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD05785, "Pantech Co., Ltd.", "PANTECH" }, { 0xD05794, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xD057A1, "Werma Signaltechnik GmbH & Co. KG", "WERMA-SIGNALTECHNIK" }, { 0xD05875, "Active Control Technology Inc.", "ACTIVE-CONTROL" }, { 0xD058A5, "Apple, Inc.", "APPLE" }, { 0xD058A8, "zte corporation", "ZTE" }, { 0xD058C0, "Qingdao Haier Multimedia Limited.", "QINGDAO-HAIER-MULTIMEDIA" }, { 0xD058FC, "SKY UK LIMITED", "SKY-UK" }, { 0xD05919, "zte corporation", "ZTE" }, { 0xD05995, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xD059C3, "CeraMicro Technology Corporation", "CERAMICRO" }, { 0xD059E4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD05A00, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xD05A0F, "I-BT DIGITAL CO.,LTD", "I-BT-DIGITAL" }, { 0xD05AF1, "Shenzhen Pulier Tech CO.,Ltd", "SHENZHEN-PULIER-TECH" }, { 0xD05AFD, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xD05BA8, "zte corporation", "ZTE" }, { 0xD05C7A, "Sartura d.o.o.", "SARTURA-D-O-O" }, { 0xD05F64, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD05FB8, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD05FCE, "Hitachi Data Systems", "HITACHI-DATA" }, { 0xD0608C, "zte corporation", "ZTE" }, { 0xD06158, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD0622C, "Xi'an Yipu Telecom Technology Co.,Ltd.", "XI-AN-YIPU-TELECOM" }, { 0xD062A0, "China Essence Technology (Zhumadian) Co., Ltd.", "CHINA-ESSENCE-ZHUMADIAN" }, { 0xD0634D, "Meiko Maschinenbau GmbH & Co. KG", "MEIKO-MASCHINENBAU-AMP" }, { 0xD063B4, "SolidRun Ltd.", "SOLIDRUN" }, { 0xD06544, "Apple, Inc.", "APPLE" }, { 0xD065CA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD0666D, "Shenzhen Bus-Lan Technology Co., Ltd.", "SHENZHEN-BUS-LAN" }, { 0xD0667B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD06726, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xD067E5, "Dell Inc.", "DELL" }, { 0xD0699E, "LUMINEX Lighting Control Equipment", "LUMINEX-LIGHTING-CONTROL-EQUIPMENT" }, { 0xD069D0, "Verto Medical Solutions, LLC", "VERTO-MEDICAL-SOLUTIONS" }, { 0xD06A1F, "BSE CO.,LTD.", "BSE" }, { 0xD06DC9, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xD06EDE, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xD06F4A, "TOPWELL INTERNATIONAL HOLDINGS LIMITED", "TOPWELL-HOLDINGS" }, { 0xD06F82, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD071C4, "zte corporation", "ZTE" }, { 0xD072DC, "Cisco Systems, Inc", "CISCO" }, { 0xD0737F, "Mini-Circuits", "MINI-CIRCUITS" }, { 0xD0738E, "DONG OH PRECISION CO., LTD.", "DONG-OH-PRECISION" }, { 0xD073D5, "LIFI LABS MANAGEMENT PTY LTD", "LIFI-LABS-MANAGEMENT-PTY" }, { 0xD075BE, "Reno A&E", "RENO-A-E" }, { 0xD07650, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD0768F, "Calix Inc.", "CALIX" }, { 0xD076E7, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xD07714, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xD077CE, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0xD07880, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xD07AB5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD07B6F, "Zhuhai Yunmai Technology Co.,Ltd", "ZHUHAI-YUNMAI" }, { 0xD07C2D, "Leie IOT technology Co., Ltd", "LEIE-IOT" }, { 0xD07CB2, "Sigmastar Technology Ltd.", "SIGMASTAR" }, { 0xD07D33, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD07DE5, "Forward Pay Systems, Inc.", "FORWARD-PAY" }, { 0xD07E01, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD07E28, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xD07E35, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD07FA0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD07FC4, "Ou Wei Technology Co.,Ltd. of Shenzhen City", "OU-WEI-OF-SHENZHEN-CITY" }, { 0xD0817A, "Apple, Inc.", "APPLE" }, { 0xD081C5, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xD083D4, "Xtel Wireless ApS", "XTEL-WIRELESS-APS" }, { 0xD084B0, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xD087E2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD0880C, "Apple, Inc.", "APPLE" }, { 0xD08999, "APCON, Inc.", "APCON" }, { 0xD08A55, "Skullcandy", "SKULLCANDY" }, { 0xD08A91, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xD08B7E, "Passif Semiconductor", "PASSIF-SEMICONDUCTOR" }, { 0xD08CB5, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD08CFF, "UPWIS AB", "UPWIS-AB" }, { 0xD08E79, "Dell Inc.", "DELL" }, { 0xD09200, "FiRa Consortium", "FIRA-CONSORTIUM" }, { 0xD0929E, "Microsoft Corporation", "MICROSOFT" }, { 0xD092FA, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xD09380, "Ducere Technologies Pvt. Ltd.", "DUCERE-TECHNOLOGIES-PVT" }, { 0xD09395, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD093F8, "Stonestreet One LLC", "STONESTREET-ONE" }, { 0xD09466, "Dell Inc.", "DELL" }, { 0xD095C7, "Pantech Co., Ltd.", "PANTECH" }, { 0xD09686, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD096FB, "DZS Inc.", "DZS" }, { 0xD097FE, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xD0989C, "ConMet", "CONMET" }, { 0xD099D5, "Alcatel-Lucent", "ALCATEL-LUCENT" }, { 0xD09B05, "Emtronix", "EMTRONIX" }, { 0xD09C30, "Foster Electric Company, Limited", "FOSTER-ELECTRIC-COMPANY" }, { 0xD09C7A, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xD09CAE, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xD09D0A, "LINKCOM", "LINKCOM" }, { 0xD09DAB, "TCT mobile ltd", "TCT-MOBILE" }, { 0xD09FD9, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD0A0D6, "ChengDu TD Tech", "CHENGDU-TD-TECH" }, { 0xD0A311, "Neuberger Gebäudeautomation GmbH", "NEUBERGER-GEBAEUDEAUTOMATION" }, { 0xD0A46F, "China Dragon Technology Limited", "CHINA-DRAGON" }, { 0xD0A4B1, "Sonifex Ltd.", "SONIFEX" }, { 0xD0A5A6, "Cisco Systems, Inc", "CISCO" }, { 0xD0A637, "Apple, Inc.", "APPLE" }, { 0xD0A9D3, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0xD0ABD5, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD0AEEC, "Alpha Networks Inc.", "ALPHA-NETWORKS" }, { 0xD0AFB6, "Linktop Technology Co., LTD", "LINKTOP" }, { 0xD0B0CD, "Moen", "MOEN" }, { 0xD0B128, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD0B214, "PoeWit Inc", "POEWIT" }, { 0xD0B2C4, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xD0B33F, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0xD0B45D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD0B498, "Robert Bosch LLC Automotive Electronics", "ROBERT-BOSCH-LLC-AUTOMOTIVE-ELECTRONICS" }, { 0xD0B523, "Bestcare Cloucal Corp.", "BESTCARE-CLOUCAL" }, { 0xD0B53D, "SEPRO ROBOTIQUE", "SEPRO-ROBOTIQUE" }, { 0xD0B5C2, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD0B60A, "Xingluo Technology Company Limited", "XINGLUO-COMPANY" }, { 0xD0B66F, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0xD0BAE4, "Shanghai MXCHIP Information Technology Co., Ltd.", "SHANGHAI-MXCHIP-INFORMATION" }, { 0xD0BB61, "zte corporation", "ZTE" }, { 0xD0BB80, "SHL Telemedicine International Ltd.", "SHL-TELEMEDICINE" }, { 0xD0BCC1, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0xD0BD01, "DS International", "DS" }, { 0xD0BE2C, "CNSLink Co., Ltd.", "CNSLINK" }, { 0xD0BF9C, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xD0C0BF, "Actions Microelectronics Co., Ltd", "ACTIONS-MICROELECTRONICS" }, { 0xD0C193, "SKYBELL, INC", "SKYBELL" }, { 0xD0C1B1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD0C24E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD0C282, "Cisco Systems, Inc", "CISCO" }, { 0xD0C31E, "JUNGJIN Electronics Co.,Ltd", "JUNGJIN-ELECTRONICS" }, { 0xD0C35A, "Jabil Circuit de Chihuahua", "JABIL-CIRCUIT-DE-CHIHUAHUA" }, { 0xD0C42F, "Tamagawa Seiki Co.,Ltd.", "TAMAGAWA-SEIKI" }, { 0xD0C5D3, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xD0C5D8, "LATECOERE", "LATECOERE" }, { 0xD0C5F3, "Apple, Inc.", "APPLE" }, { 0xD0C637, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD0C65B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD0C789, "Cisco Systems, Inc", "CISCO" }, { 0xD0C7C0, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xD0C857, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD0CDE1, "Scientech Electronics", "SCIENTECH-ELECTRONICS" }, { 0xD0CEC9, "HAN CHANG", "HAN-CHANG" }, { 0xD0CF0E, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xD0CF5E, "Energy Micro AS", "ENERGY-MICRO-AS" }, { 0xD0CFD8, "Huizhou Boshijie Technology Co.,Ltd", "HUIZHOU-BOSHIJIE" }, { 0xD0D003, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD0D04B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD0D0FD, "Cisco Systems, Inc", "CISCO" }, { 0xD0D212, "K2NET Co.,Ltd.", "K2NET" }, { 0xD0D23C, "Apple, Inc.", "APPLE" }, { 0xD0D286, "Beckman Coulter K.K.", "BECKMAN-COULTER-K-K" }, { 0xD0D2B0, "Apple, Inc.", "APPLE" }, { 0xD0D3E0, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xD0D3FC, "Mios, Ltd.", "MIOS" }, { 0xD0D412, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0xD0D471, "MVTECH co., Ltd", "MVTECH" }, { 0xD0D6CC, "Wintop", "WINTOP" }, { 0xD0D783, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD0D94F, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD0DAD7, "Apple, Inc.", "APPLE" }, { 0xD0DB32, "Nokia Corporation", "NOKIA" }, { 0xD0DBB7, "Casa Systems", "CASA" }, { 0xD0DD49, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xD0DD7C, "zte corporation", "ZTE" }, { 0xD0DF9A, "Liteon Technology Corporation", "LITEON" }, { 0xD0DFB2, "Genie Networks Limited", "GENIE-NETWORKS" }, { 0xD0DFC7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD0E042, "Cisco Systems, Inc", "CISCO" }, { 0xD0E140, "Apple, Inc.", "APPLE" }, { 0xD0E347, "Yoga", "YOGA" }, { 0xD0E40B, "Wearable Inc.", "WEARABLE" }, { 0xD0E44A, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xD0E54D, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xD0E782, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xD0E828, "Radiant Industries Incorporated", "RADIANT-INDUSTRIES-INCORPORATED" }, { 0xD0EB03, "Zhehua technology limited", "ZHEHUA" }, { 0xD0EB9E, "Seowoo Inc.", "SEOWOO" }, { 0xD0EC35, "Cisco Systems, Inc", "CISCO" }, { 0xD0EDFF, "ZF CVCS", "ZF-CVCS" }, { 0xD0EFC1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD0F0DB, "Ericsson", "ERICSSON" }, { 0xD0F121, "Xi'an LINKSCI Technology Co., Ltd", "XI-AN-LINKSCI" }, { 0xD0F27F, "BrewLogix, LLC", "BREWLOGIX" }, { 0xD0F3F5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD0F4F7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD0F520, "KYOCERA Corporation", "KYOCERA" }, { 0xD0F73B, "Helmut Mauell GmbH Werk Weida", "HELMUT-MAUELL-WERK-WEIDA" }, { 0xD0F865, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xD0F88C, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0xD0F928, "zte corporation", "ZTE" }, { 0xD0F99B, "zte corporation", "ZTE" }, { 0xD0FA1D, "Qihoo 360 Technology Co.,Ltd", "QIHOO-360" }, { 0xD0FCCC, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD0FCD0, "HUMAX Co., Ltd.", "HUMAX" }, { 0xD0FF50, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD0FF98, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD4000D, "Phoenix Broadband Technologies, LLC.", "PHOENIX-BROADBAND-TECHNOLOGIES" }, { 0xD40057, "MC Technologies GmbH", "MC-TECHNOLOGIES" }, { 0xD40129, "Broadcom", "BROADCOM" }, { 0xD40145, "ATW TECHNOLOGY, INC.", "ATW" }, { 0xD4016D, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xD4024A, "Delphian Systems LLC", "DELPHIAN" }, { 0xD404CD, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xD404E6, "Broadcom Limited", "BROADCOM" }, { 0xD404FF, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xD40598, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xD405DE, "eero inc.", "EERO" }, { 0xD40868, "Beijing Lanxum Computer Technology CO.,LTD.", "BEIJING-LANXUM" }, { 0xD40AA9, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xD40B1A, "HTC Corporation", "HTC" }, { 0xD40BB9, "Solid Semecs bv.", "SOLID-SEMECS" }, { 0xD40F9E, "Apple, Inc.", "APPLE" }, { 0xD40FB2, "Applied Micro Electronics AME bv", "APPLIED-MICRO-ELECTRONICS-AME" }, { 0xD41090, "iNFORM Systems AG", "INFORM" }, { 0xD410CF, "Huanshun Network Science and Technology Co., Ltd.", "HUANSHUN-NETWORK-SCIENCE" }, { 0xD411A3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD411D6, "ShotSpotter, Inc.", "SHOTSPOTTER" }, { 0xD41243, "AMPAK Technology, Inc.", "AMPAK" }, { 0xD41296, "Anobit Technologies Ltd.", "ANOBIT-TECHNOLOGIES" }, { 0xD412BB, "Quadrant Components Inc. Ltd", "QUADRANT-COMPONENTS" }, { 0xD4136F, "Asia Pacific Brands", "ASIA-PACIFIC-BRANDS" }, { 0xD413F8, "Peplink International Ltd.", "PEPLINK" }, { 0xD419F6, "NXP Semiconductor (Tianjin) LTD.", "NXP-SEMICONDUCTOR-TIANJIN" }, { 0xD41A3F, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xD41AC8, "Nippon Printer Engineering", "NIPPON-PRINTER-ENGINEERING" }, { 0xD41AD1, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xD41B81, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0xD41C1C, "RCF S.P.A.", "RCF" }, { 0xD41D71, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0xD41E35, "TOHO Electronics INC.", "TOHO-ELECTRONICS" }, { 0xD41F0C, "JAI Manufacturing", "JAI-MANUFACTURING" }, { 0xD42000, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD4206D, "HTC Corporation", "HTC" }, { 0xD420B0, "Mist Systems, Inc.", "MIST" }, { 0xD42122, "Sercomm Corporation.", "SERCOMM" }, { 0xD4223F, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0xD4224E, "Alcatel Lucent", "ALCATEL-LUCENT" }, { 0xD422CD, "Movella Technologies B.V.", "MOVELLA-TECHNOLOGIES-B-V" }, { 0xD42493, "GW Technologies Co.,Ltd", "GW-TECHNOLOGIES" }, { 0xD4258B, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD425CC, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD42751, "Infopia Co., Ltd", "INFOPIA" }, { 0xD42787, "Shanghai High-Flying Electronics Technology Co., Ltd", "SHANGHAI-HIGH-FLYING-ELECTRONICS" }, { 0xD428B2, "ioBridge, Inc.", "IOBRIDGE" }, { 0xD428D5, "TCT mobile ltd", "TCT-MOBILE" }, { 0xD429EA, "Zimory GmbH", "ZIMORY" }, { 0xD42C0F, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xD42C3D, "Sky Light Digital Limited", "SKY-LIGHT-DIGITAL" }, { 0xD42C44, "Cisco Systems, Inc", "CISCO" }, { 0xD42C46, "BUFFALO.INC", "BUFFALO" }, { 0xD42DC5, "i-PRO Co., Ltd.", "I-PRO" }, { 0xD42F23, "Akenori PTE Ltd", "AKENORI-PTE" }, { 0xD42FCA, "Apple, Inc.", "APPLE" }, { 0xD43127, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0xD4319D, "Sinwatec", "SINWATEC" }, { 0xD43260, "GoPro", "GOPRO" }, { 0xD43266, "Fike Corporation", "FIKE" }, { 0xD4351D, "Technicolor Delivery Technologies Belgium NV", "TECHNICOLOR-DELIVERY-TECHNOLOGIES-BELGIUM-NV" }, { 0xD43538, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0xD4354A, "ALAXALA Networks Corporation", "ALAXALA-NETWORKS" }, { 0xD43639, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD436DB, "Jiangsu Toppower Automotive Electronics Co., Ltd", "JIANGSU-TOPPOWER-AUTOMOTIVE-ELECTRONICS" }, { 0xD437D7, "zte corporation", "ZTE" }, { 0xD43844, "UNION MAN TECHNOLOGY CO.,LTD", "UNION-MAN" }, { 0xD4389C, "Sony Corporation", "SONY" }, { 0xD439B8, "Ciena Corporation", "CIENA" }, { 0xD43A2C, "Google, Inc.", "GOOGLE" }, { 0xD43A2E, "SHENZHEN MTC CO LTD", "SHENZHEN-MTC" }, { 0xD43A2F, "SHENZHEN MTC CO LTD", "SHENZHEN-MTC" }, { 0xD43A65, "IGRS Engineering Lab Ltd.", "IGRS-ENGINEERING-LAB" }, { 0xD43AE9, "DONGGUAN ipt INDUSTRIAL CO., LTD", "DONGGUAN-IPT-INDUSTRIAL" }, { 0xD43B04, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD43D39, "Dialog Semiconductor", "DIALOG-SEMICONDUCTOR" }, { 0xD43D67, "Carma Industries Inc.", "CARMA-INDUSTRIES" }, { 0xD43D7E, "Micro-Star Int'l Co, Ltd", "MICRO-STAR" }, { 0xD43DF3, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xD43F32, "eero inc.", "EERO" }, { 0xD43FCB, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xD440D0, "OCOSMOS Co., LTD", "OCOSMOS" }, { 0xD440F0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD44165, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xD4430E, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0xD443A8, "Changzhou Haojie Electric Co., Ltd.", "CHANGZHOU-HAOJIE-ELECTRIC" }, { 0xD445E8, "Jiangxi Hongpai Technology Co., Ltd.", "JIANGXI-HONGPAI" }, { 0xD44649, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD446E1, "Apple, Inc.", "APPLE" }, { 0xD4475A, "ScreenBeam, Inc.", "SCREENBEAM" }, { 0xD4482D, "Shenzhen Deejoy Lighting Technology Co.,Ltd.", "SHENZHEN-DEEJOY-LIGHTING" }, { 0xD44B5E, "TAIYO YUDEN CO., LTD.", "TAIYO-YUDEN" }, { 0xD44BB6, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0xD44C24, "Vuppalamritha Magnetic Components LTD", "VUPPALAMRITHA-MAGNETIC-COMPONENTS" }, { 0xD44C9C, "Shenzhen YOOBAO Technology Co.Ltd", "SHENZHEN-YOOBAO" }, { 0xD44CA7, "Informtekhnika & Communication, LLC", "INFORMTEKHNIKA-COMMUNICATION" }, { 0xD44D77, "Nokia", "NOKIA" }, { 0xD44DA4, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xD44F67, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD44F68, "Eidetic Communications Inc", "EIDETIC-COMMUNICATION" }, { 0xD44F80, "Kemper Digital GmbH", "KEMPER-DIGITAL" }, { 0xD4503F, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xD4507A, "CEIVA Logic, Inc", "CEIVA-LOGIC" }, { 0xD4522A, "TangoWiFi.com", "TANGOWIFI-COM" }, { 0xD45251, "IBT Ingenieurbureau Broennimann Thun", "IBT-INGENIEURBUREAU-BROENNIMANN-THUN" }, { 0xD45297, "nSTREAMS Technologies, Inc.", "NSTREAMS-TECHNOLOGIES" }, { 0xD452C7, "Beijing L&S Lancom Platform Tech. Co., Ltd.", "BEIJING-L-S-LANCOM-PLATFORM-TECH" }, { 0xD452EE, "SKY UK LIMITED", "SKY-UK" }, { 0xD45347, "Merytronic 2012, S.L.", "MERYTRONIC-2012" }, { 0xD45383, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xD453AF, "VIGO System S.A.", "VIGO-SYSTEM" }, { 0xD4548B, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD45556, "Fiber Mountain Inc.", "FIBER-MOUNTAIN" }, { 0xD455BE, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0xD45763, "Apple, Inc.", "APPLE" }, { 0xD45800, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xD45A3F, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xD45AB2, "Galleon Systems", "GALLEON" }, { 0xD45C70, "Wi-Fi Alliance", "WI-FI-ALLIANCE" }, { 0xD45D42, "Nokia Corporation", "NOKIA" }, { 0xD45D64, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xD45DDF, "PEGATRON CORPORATION", "PEGATRON" }, { 0xD45EEC, "Beijing Xiaomi Electronics Co., Ltd.", "BEIJING-XIAOMI-ELECTRONICS" }, { 0xD45F25, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xD46075, "Baidu Online Network Technology (Beijing) Co., Ltd", "BAIDU-ONLINE-NETWORK-BEIJING" }, { 0xD460E3, "Sercomm Corporation.", "SERCOMM" }, { 0xD4612E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD46132, "Pro Concept Manufacturer Co.,Ltd.", "PRO-CONCEPT-MANUFACTURER" }, { 0xD46137, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD4619D, "Apple, Inc.", "APPLE" }, { 0xD461DA, "Apple, Inc.", "APPLE" }, { 0xD461FE, "Hangzhou H3C Technologies Co., Limited", "HANGZHOU-H3C-TECHNOLOGIES" }, { 0xD462EA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD46352, "Vutility Inc.", "VUTILITY" }, { 0xD463C6, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xD463DE, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xD463FE, "Arcadyan Corporation", "ARCADYAN" }, { 0xD464F7, "CHENGDU USEE DIGITAL TECHNOLOGY CO., LTD", "CHENGDU-USEE-DIGITAL" }, { 0xD46624, "Cisco Systems, Inc", "CISCO" }, { 0xD466A8, "Riedo Networks Ltd", "RIEDO-NETWORKS" }, { 0xD46761, "XonTel Technology Co.", "XONTEL" }, { 0xD467D3, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xD467E7, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xD4684D, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xD46867, "Neoventus Design Group", "NEOVENTUS-DESIGN-GROUP" }, { 0xD468AA, "Apple, Inc.", "APPLE" }, { 0xD468BA, "Shenzhen Sundray Technologies Company Limited", "SHENZHEN-SUNDRAY-TECHNOLOGIES-COMPANY" }, { 0xD469A5, "Miura Systems Ltd.", "MIURA" }, { 0xD46A35, "Cisco Systems, Inc", "CISCO" }, { 0xD46A6A, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xD46A91, "SnapAV", "SNAPAV" }, { 0xD46AA8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD46BA6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD46C6D, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xD46CBF, "Goodrich ISR", "GOODRICH-ISR" }, { 0xD46CDA, "CSM GmbH", "CSM" }, { 0xD46D50, "Cisco Systems, Inc", "CISCO" }, { 0xD46D6D, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD46E0E, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xD46E5C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD46F42, "WAXESS USA Inc", "WAXESS-USA" }, { 0xD47208, "Bragi GmbH", "BRAGI" }, { 0xD47226, "zte corporation", "ZTE" }, { 0xD47350, "DBG Commnunications Technology Co., Ltd.", "DBG-COMMNUNICATIONS" }, { 0xD47415, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD4741B, "Beijing HuaDa ZhiBao Electronic System Co.,Ltd.", "BEIJING-HUADA-ZHIBAO-SYSTEM" }, { 0xD476A0, "Fortinet, Inc.", "FORTINET" }, { 0xD476EA, "zte corporation", "ZTE" }, { 0xD4772B, "Nanjing Ztlink Network Technology Co.,Ltd", "NANJING-ZTLINK-NETWORK" }, { 0xD47798, "Cisco Systems, Inc", "CISCO" }, { 0xD477B2, "Netix Global B.V.", "NETIX-GLOBAL-B-V" }, { 0xD47856, "Avaya Inc", "AVAYA" }, { 0xD4789B, "Cisco Systems, Inc", "CISCO" }, { 0xD47954, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD479C3, "Cameronet GmbH & Co. KG", "CAMERONET" }, { 0xD47AE2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD47B35, "NEO Monitors AS", "NEO-MONITORS-AS" }, { 0xD47B75, "HARTING Electronics GmbH", "HARTING-ELECTRONICS" }, { 0xD47BB0, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xD47C44, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD47DFC, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0xD47EE4, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0xD481CA, "iDevices, LLC", "IDEVICES" }, { 0xD481D7, "Dell Inc.", "DELL" }, { 0xD4823E, "Argosy Technologies, Ltd.", "ARGOSY-TECHNOLOGIES" }, { 0xD48304, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0xD48409, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0xD48457, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0xD48564, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xD48660, "Arcadyan Corporation", "ARCADYAN" }, { 0xD487D8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD4883F, "HDPRO CO., LTD.", "HDPRO" }, { 0xD48866, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD48890, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD48A39, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD48A3B, "HUNAN FN-LINK TECHNOLOGY LIMITED", "HUNAN-FN-LINK" }, { 0xD48AFC, "Espressif Inc.", "ESPRESSIF" }, { 0xD48CB5, "Cisco Systems, Inc", "CISCO" }, { 0xD48DD9, "Meld Technology, Inc", "MELD" }, { 0xD48F33, "Microsoft Corporation", "MICROSOFT" }, { 0xD48FA2, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD48FAA, "Sogecam Industrial, S.A.", "SOGECAM-INDUSTRIAL" }, { 0xD4909C, "Apple, Inc.", "APPLE" }, { 0xD490E0, "Topcon Electronics GmbH & Co. KG", "TOPCON-ELECTRONICS" }, { 0xD4910F, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xD491AF, "Electroacustica General Iberica, S.A.", "ELECTROACUSTICA-GENERAL-IBERICA" }, { 0xD49234, "NEC Corporation", "NEC" }, { 0xD4925E, "Technicolor Delivery Technologies Belgium NV", "TECHNICOLOR-DELIVERY-TECHNOLOGIES-BELGIUM-NV" }, { 0xD492B9, "ORION NOVA, S.L.", "ORION-NOVA" }, { 0xD49390, "CLEVO CO.", "CLEVO" }, { 0xD49398, "Nokia Corporation", "NOKIA" }, { 0xD493A0, "Fidelix Oy", "FIDELIX-OY" }, { 0xD49400, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD4945A, "COSMO CO., LTD", "COSMO" }, { 0xD494A1, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD494E8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD494FB, "Continental Automotive Systems Inc.", "CONTINENTAL-AUTOMOTIVE" }, { 0xD49524, "Clover Network, Inc.", "CLOVER-NETWORK" }, { 0xD496DF, "SUNGJIN C&T CO.,LTD", "SUNGJIN-C-T" }, { 0xD4970B, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xD4996C, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xD49A20, "Apple, Inc.", "APPLE" }, { 0xD49AA0, "VNPT TECHNOLOGY", "VNPT" }, { 0xD49AF6, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xD49B5C, "Chongqing Miedu Technology Co., Ltd.", "CHONGQING-MIEDU" }, { 0xD49B74, "Kinetic Technologies", "KINETIC-TECHNOLOGIES" }, { 0xD49C28, "JayBird LLC", "JAYBIRD" }, { 0xD49C8E, "University of FUKUI", "UNIVERSITY-OF-FUKUI" }, { 0xD49CDD, "AMPAK Technology,Inc.", "AMPAK" }, { 0xD49CF4, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0xD49DC0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD49E05, "zte corporation", "ZTE" }, { 0xD49E3B, "Guangzhou Shiyuan Electronic Technology Company Limited", "GUANGZHOUSHIYUANCOMPANY" }, { 0xD49E6D, "Wuhan Zhongyuan Huadian Science & Technology Co.,", "WUHAN-ZHONGYUAN-HUADIAN-SCIENCE" }, { 0xD49FDD, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD4A02A, "Cisco Systems, Inc", "CISCO" }, { 0xD4A148, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD4A33D, "Apple, Inc.", "APPLE" }, { 0xD4A3EB, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0xD4A425, "SMAX Technology Co., Ltd.", "SMAX" }, { 0xD4A499, "InView Technology Corporation", "INVIEW" }, { 0xD4A651, "Tuya Smart Inc.", "TUYA-SMART" }, { 0xD4A928, "GreenWave Reality Inc", "GREENWAVE-REALITY" }, { 0xD4AAFF, "MICRO WORLD", "MICRO-WORLD" }, { 0xD4AB82, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xD4ABCD, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0xD4AC4E, "BODi rS, LLC", "BODI-RS" }, { 0xD4AD20, "Jinan USR IOT Technology Limited", "JINAN-USR-IOT" }, { 0xD4AD2D, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xD4AD71, "Cisco Systems, Inc", "CISCO" }, { 0xD4ADBD, "Cisco Systems, Inc", "CISCO" }, { 0xD4ADFC, "Shenzhen Intellirocks Tech co.,ltd", "SHENZHEN-INTELLIROCKS-TECH" }, { 0xD4AE05, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD4AE52, "Dell Inc.", "DELL" }, { 0xD4AFF7, "Arista Networks", "ARISTA-NETWORKS" }, { 0xD4B110, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD4B169, "Le Shi Zhi Xin Electronic Technology (Tianjin) Limited", "LE-SHI-ZHI-XIN-TIANJIN" }, { 0xD4B27A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xD4B43E, "Messcomp Datentechnik GmbH", "MESSCOMP-DATENTECHNIK" }, { 0xD4B680, "Shanghai Linkyum Microeletronics Co.,Ltd", "SHANGHAI-LINKYUM-MICROELETRONICS" }, { 0xD4B709, "zte corporation", "ZTE" }, { 0xD4B761, "Sichuan AI-Link Technology Co., Ltd.", "SICHUANAI-LINK" }, { 0xD4B7D0, "Ciena Corporation", "CIENA" }, { 0xD4B8FF, "Home Control Singapore Pte Ltd", "HOME-CONTROL-SINGAPORE-PTE" }, { 0xD4B92F, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xD4BABA, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD4BAFA, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xD4BBC8, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xD4BBE6, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD4BD1E, "5VT Technologies,Taiwan LTd.", "5VT-TECHNOLOGIES-TAIWAN" }, { 0xD4BD4F, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xD4BED9, "Dell Inc.", "DELL" }, { 0xD4BF2D, "SE Controls Asia Pacific Ltd", "SE-CONTROLS-ASIA-PACIFIC" }, { 0xD4BF7F, "UPVEL", "UPVEL" }, { 0xD4C19E, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xD4C1C8, "zte corporation", "ZTE" }, { 0xD4C1FC, "Nokia Corporation", "NOKIA" }, { 0xD4C3B0, "Gearlinx Pty Ltd", "GEARLINX-PTY" }, { 0xD4C766, "Acentic GmbH", "ACENTIC" }, { 0xD4C8B0, "Prime Electronics & Satellitics Inc.", "PRIME-ELECTRONICS-SATELLITICS" }, { 0xD4C93C, "Cisco Systems, Inc", "CISCO" }, { 0xD4C94B, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xD4C9B2, "Quanergy Systems Inc", "QUANERGY" }, { 0xD4C9EF, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xD4CA6D, "Routerboard.com", "ROUTERBOARD-COM" }, { 0xD4CA6E, "u-blox AG", "U-BLOX" }, { 0xD4CBAF, "Nokia Corporation", "NOKIA" }, { 0xD4CEB8, "Enatel LTD", "ENATEL" }, { 0xD4CF37, "Symbolic IO", "SYMBOLIC-IO" }, { 0xD4CFF9, "Shenzhen SEI Robotics Co.,Ltd", "SHENZHEN-SEI-ROBOTICS" }, { 0xD4D184, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0xD4D249, "Power Ethernet", "POWER-ETHERNET" }, { 0xD4D252, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD4D2D6, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0xD4D2E5, "BKAV Corporation", "BKAV" }, { 0xD4D4DA, "Espressif Inc.", "ESPRESSIF" }, { 0xD4D50D, "Southwest Microwave, Inc", "SOUTHWEST-MICROWAVE" }, { 0xD4D51B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD4D748, "Cisco Systems, Inc", "CISCO" }, { 0xD4D7A9, "Shanghai Kaixiang Info Tech LTD", "SHANGHAI-KAIXIANG-INFO-TECH" }, { 0xD4D7CF, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xD4D853, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD4D892, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD4D898, "Korea CNO Tech Co., Ltd", "KOREA-CNO-TECH" }, { 0xD4D919, "GoPro", "GOPRO" }, { 0xD4DA21, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0xD4DACD, "SKY UK LIMITED", "SKY-UK" }, { 0xD4DC09, "Mist Systems, Inc.", "MIST" }, { 0xD4DCCD, "Apple, Inc.", "APPLE" }, { 0xD4DF57, "Alpinion Medical Systems", "ALPINION-MEDICAL" }, { 0xD4E053, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xD4E08E, "ValueHD Corporation", "VALUEHD" }, { 0xD4E22F, "Roku, Inc", "ROKU" }, { 0xD4E2CB, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xD4E32C, "S. Siedle & Sohne", "S-SIEDLE-SOHNE" }, { 0xD4E33F, "Nokia", "NOKIA" }, { 0xD4E6B7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD4E853, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xD4E880, "Cisco Systems, Inc", "CISCO" }, { 0xD4E8B2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD4E90B, "CVT CO.,LTD", "CVT" }, { 0xD4E95E, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD4E98A, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD4EA0E, "Avaya Inc", "AVAYA" }, { 0xD4EB68, "Cisco Systems, Inc", "CISCO" }, { 0xD4EC0C, "Harley-Davidson Motor Company", "HARLEY-DAVIDSON-MOTOR-COMPANY" }, { 0xD4EC86, "LinkedHope Intelligent Technologies Co., Ltd", "LINKEDHOPE-INTELLIGENT-TECHNOLOGIES" }, { 0xD4ECAB, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xD4EE07, "HIWIFI Co., Ltd.", "HIWIFI" }, { 0xD4EEDE, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xD4F027, "Trust Power Ltd.", "TRUST-POWER" }, { 0xD4F057, "Nintendo Co.,Ltd", "NINTENDO" }, { 0xD4F0B4, "Napco Security Technologies", "NAPCO-SECURITY-TECHNOLOGIES" }, { 0xD4F0C9, "KYOCERA Document Solutions Inc.", "KYOCERA-DOCUMENT-SOLUTIONS" }, { 0xD4F0EA, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0xD4F143, "IPROAD.,Inc", "IPROAD" }, { 0xD4F207, "DIAODIAO(Beijing)Technology CO.,Ltd", "DIAODIAO-BEIJING" }, { 0xD4F242, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD4F337, "Xunison Ltd.", "XUNISON" }, { 0xD4F46F, "Apple, Inc.", "APPLE" }, { 0xD4F4BE, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0xD4F513, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD4F527, "SIEMENS AG", "SIEMENS" }, { 0xD4F547, "Google, Inc.", "GOOGLE" }, { 0xD4F5EF, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xD4F63F, "IEA S.R.L.", "IEA" }, { 0xD4F756, "zte corporation", "ZTE" }, { 0xD4F786, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xD4F829, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xD4F98D, "Espressif Inc.", "ESPRESSIF" }, { 0xD4F9A1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD4FB8E, "Apple, Inc.", "APPLE" }, { 0xD4FC13, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xD8004D, "Apple, Inc.", "APPLE" }, { 0xD80093, "Aurender Inc.", "AURENDER" }, { 0xD8028A, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xD8031A, "Laird Connectivity", "LAIRD-CONNECTIVITY" }, { 0xD8052E, "Skyviia Corporation", "SKYVIIA" }, { 0xD806D1, "Honeywell Fire System (Shanghai) Co,. Ltd.", "HONEYWELL-FIRE-SYSTEM-SHANGHAI" }, { 0xD807B6, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xD80831, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD808F5, "Arcadia Networks Co. Ltd.", "ARCADIA-NETWORKS" }, { 0xD8094E, "Active Brains", "ACTIVE-BRAINS" }, { 0xD8097F, "zte corporation", "ZTE" }, { 0xD809C3, "Cercacor Labs", "CERCACOR-LABS" }, { 0xD809D6, "ZEXELON CO., LTD.", "ZEXELON" }, { 0xD80A60, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD80AE6, "zte corporation", "ZTE" }, { 0xD80B9A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD80BCB, "Telink Semiconductor (Shanghai) Co., Ltd.", "TELINK-SEMICONDUCTOR-SHANGHAI" }, { 0xD80CCF, "C.G.V. S.A.S.", "C-G-V-S" }, { 0xD80D17, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xD80DE3, "FXI TECHNOLOGIES AS", "FXI-TECHNOLOGIES-AS" }, { 0xD80E29, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xD80F99, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xD81068, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xD8109F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD810CB, "Andrea Informatique", "ANDREA-INFORMATIQUE" }, { 0xD81265, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0xD81399, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0xD814D6, "SURE SYSTEM Co Ltd", "SURE-SYSTEM" }, { 0xD814DF, "TCL King Electrical Appliances (Huizhou) Co., Ltd", "TCL-KING-ELECTRICAL-APPLIANCES-HUIZHOU" }, { 0xD8150D, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xD8160A, "Nippon Electro-Sensory Devices", "NIPPON-ELECTRO-SENSORY-DEVICES" }, { 0xD816C1, "DEWAV (HK) ELECTRONICS LIMITED", "DEWAV-HK-ELECTRONICS" }, { 0xD8182B, "Conti Temic Microelectronic GmbH", "CONTI-TEMIC-MICROELECTRONIC" }, { 0xD818D3, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xD8197A, "Nuheara Ltd", "NUHEARA" }, { 0xD819CE, "Telesquare", "TELESQUARE" }, { 0xD81BB5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD81BFE, "TWINLINX CORPORATION", "TWINLINX" }, { 0xD81C14, "Compacta International, Ltd.", "COMPACTA" }, { 0xD81C79, "Apple, Inc.", "APPLE" }, { 0xD81D72, "Apple, Inc.", "APPLE" }, { 0xD81EDD, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xD81EDE, "B&W Group Ltd", "B-W-GROUP" }, { 0xD81F12, "Tuya Smart Inc.", "TUYA-SMART" }, { 0xD81FCC, "Brocade Communications Systems LLC", "BROCADE-COMMUNICATION" }, { 0xD8209F, "Cubro Acronet GesmbH", "CUBRO-ACRONET-GESMBH" }, { 0xD821DA, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0xD822F4, "Avnet Silica", "AVNET-SILICA" }, { 0xD82477, "Universal Electric Corporation", "UNIVERSAL-ELECTRIC" }, { 0xD824BD, "Cisco Systems, Inc", "CISCO" }, { 0xD824EC, "Plenom A/S", "PLENOM-A/S" }, { 0xD82522, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xD825B0, "Rockeetech Systems Co.,Ltd.", "ROCKEETECH" }, { 0xD826B9, "Guangdong Coagent Electronics S&T Co.,Ltd.", "GUANGDONG-COAGENT-ELECTRONICS-S-AMP-T" }, { 0xD8270C, "MaxTronic International Co., Ltd.", "MAXTRONIC" }, { 0xD828C9, "General Electric Consumer and Industrial", "GENERAL-ELECTRIC-CONSUMER-AND-INDUSTRIAL" }, { 0xD82916, "Ascent Communication Technology", "ASCENT-COMMUNICATION" }, { 0xD82918, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD82986, "Best Wish Technology LTD", "BEST-WISH" }, { 0xD82A15, "Leitner SpA", "LEITNER-SPA" }, { 0xD82A7E, "Nokia Corporation", "NOKIA" }, { 0xD82D40, "Janz - Contagem e Gestão de Fluídos S.A.", "JANZ-CONTAGEM-E-GESTO-DE-FLUDOS" }, { 0xD82D9B, "Shenzhen G.Credit Communication Technology Co., Ltd", "SHENZHEN-G-CREDIT-COMMUNICATION" }, { 0xD82DE1, "Tricascade Inc.", "TRICASCADE" }, { 0xD82FE6, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0xD83062, "Apple, Inc.", "APPLE" }, { 0xD8312C, "zte corporation", "ZTE" }, { 0xD83134, "Roku, Inc", "ROKU" }, { 0xD831CF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD83214, "Tenda Technology Co.,Ltd.Dongguan branch", "TENDA-DONGGUAN-BRANCH" }, { 0xD8325A, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xD832E3, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xD8337F, "Office FA.com Co.,Ltd.", "OFFICE-FA-COM" }, { 0xD833B7, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xD8341C, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0xD834D1, "Shenzhen Orange Digital Technology Co.,Ltd", "SHENZHEN-ORANGE-DIGITAL" }, { 0xD834EE, "SHURE INCORPORATED", "SHURE-INCORPORATED" }, { 0xD8365F, "Intelbras", "INTELBRAS" }, { 0xD8373B, "Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd", "SHENZHEN-JINGXUN-SOFTWARE-TELECOMMUNICATION" }, { 0xD837BE, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0xD8380D, "SHENZHEN IP-COM Network Co.,Ltd", "SHENZHEN-IP-COM-NETWORK" }, { 0xD838FC, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xD83ADD, "Raspberry Pi Trading Ltd", "RASPBERRY-PI-TRADING" }, { 0xD83AF5, "Wideband Labs LLC", "WIDEBAND-LABS" }, { 0xD83BBF, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD83C69, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0xD83DCC, "shenzhen UDD Technologies,co.,Ltd", "SHENZHEN-UDD-TECHNOLOGIES" }, { 0xD84008, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD842AC, "Shanghai Feixun Communication Co.,Ltd.", "SHANGHAI-FEIXUN-COMMUNICATION" }, { 0xD842E2, "Canary Connect, Inc.", "CANARY-CONNECT" }, { 0xD843AE, "Micro-Star INTL CO., LTD.", "MICRO-STAR-INTL" }, { 0xD843ED, "Suzuken", "SUZUKEN" }, { 0xD8445C, "DEV Tecnologia Ind Com Man Eq LTDA", "DEV-TECNOLOGIA-IND-COM-MAN-EQ-LTDA" }, { 0xD8452B, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xD84606, "Silicon Valley Global Marketing", "SILICON-VALLEY-GLOBAL-MARKETING" }, { 0xD84710, "Sichuan Changhong Electric Ltd.", "SICHUAN-CHANGHONG-ELECTRIC" }, { 0xD84732, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xD8478F, "Microchip Technology Inc.", "MICROCHIP" }, { 0xD847BB, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD848EE, "Hangzhou Xueji Technology Co., Ltd.", "HANGZHOU-XUEJI" }, { 0xD8490B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD8492F, "CANON INC.", "CANON" }, { 0xD84A2B, "zte corporation", "ZTE" }, { 0xD84A87, "OI ELECTRIC CO.,LTD", "OI-ELECTRIC" }, { 0xD84B2A, "Cognitas Technologies, Inc.", "COGNITAS-TECHNOLOGIES" }, { 0xD84C90, "Apple, Inc.", "APPLE" }, { 0xD84DB9, "Wu Qi Technologies,Inc.", "WU-QI-TECHNOLOGIES" }, { 0xD84F37, "Proxis, spol. s r.o.", "PROXIS-SPOL-S-R-O" }, { 0xD84FB8, "LG ELECTRONICS", "LG-ELECTRONICS" }, { 0xD850A1, "Hunan Danuo Technology Co.,LTD", "HUNAN-DANUO" }, { 0xD850E6, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xD8539A, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xD853BC, "Lenovo Information Products (Shenzhen)Co.,Ltd", "LENOVO-INFORMATION-PRODUCTS-SHENZHEN" }, { 0xD8543A, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD85482, "Oxit, LLC", "OXIT" }, { 0xD854A2, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xD85575, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD855A3, "zte corporation", "ZTE" }, { 0xD857EF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD858C6, "Katch Asset Tracking Pty Limited", "KATCH-ASSET-TRACKING-PTY" }, { 0xD858D7, "CZ.NIC, z.s.p.o.", "CZ-NIC-Z-S-P-O" }, { 0xD85982, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD85B22, "Shenzhen Hohunet Technology Co., Ltd", "SHENZHEN-HOHUNET" }, { 0xD85B2A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD85D4C, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xD85D84, "CAx soft GmbH", "CAX-SOFT" }, { 0xD85DE2, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xD85DEF, "Busch-Jaeger Elektro GmbH", "BUSCH-JAEGER-ELEKTRO" }, { 0xD85DFB, "Private", "PRIVATE" }, { 0xD85ED3, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0xD85F77, "Telink Semiconductor (Shanghai) Co., Ltd.", "TELINK-SEMICONDUCTOR-SHANGHAI" }, { 0xD860B0, "bioMérieux Italia S.p.A.", "BIOMRIEUX-ITALIA" }, { 0xD860B3, "Guangdong Global Electronic Technology CO.,LTD", "GUANGDONG-GLOBAL" }, { 0xD86162, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0xD86194, "Objetivos y Sevicios de Valor Añadido", "OBJETIVOS-Y-SEVICIOS-DE-VALOR-ANADIDO" }, { 0xD862DB, "Eno Inc.", "ENO" }, { 0xD8630D, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0xD86375, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xD8638C, "Shenzhen Dttek Technology Co., Ltd.", "SHENZHEN-DTTEK" }, { 0xD86595, "Toy's Myth Inc.", "TOY-S-MYTH" }, { 0xD866C6, "Shenzhen Daystar Technology Co.,ltd", "SHENZHEN-DAYSTAR" }, { 0xD866EE, "BOXIN COMMUNICATION CO.,LTD.", "BOXIN-COMMUNICATION" }, { 0xD867D3, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD867D9, "Cisco Systems, Inc", "CISCO" }, { 0xD86852, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD868A0, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD868C3, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD86960, "Steinsvik", "STEINSVIK" }, { 0xD86BF7, "Nintendo Co., Ltd.", "NINTENDO" }, { 0xD86C02, "Huaqin Telecom Technology Co.,Ltd", "HUAQIN-TELECOM" }, { 0xD86C5A, "HUMAX Co., Ltd.", "HUMAX" }, { 0xD86C63, "Google, Inc.", "GOOGLE" }, { 0xD86CE9, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xD86D17, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD8714D, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD87157, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0xD87495, "zte corporation", "ZTE" }, { 0xD87533, "Nokia Corporation", "NOKIA" }, { 0xD8760A, "Escort, Inc.", "ESCORT" }, { 0xD876AE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD87766, "Nurivoice Co., Ltd", "NURIVOICE" }, { 0xD8778B, "Intelbras", "INTELBRAS" }, { 0xD8787F, "Ubee Interactive Co., Limited", "UBEE-INTERACTIVE" }, { 0xD878C9, "SERVERCOM (INDIA) PRIVATE LIMITED", "SERVERCOM-INDIA-PRIVATE" }, { 0xD878E5, "KUHN SA", "KUHN" }, { 0xD87988, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xD87A3B, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xD87CDD, "SANIX INCORPORATED", "SANIX-INCORPORATED" }, { 0xD87D7F, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xD87E6F, "CASCINATION AG", "CASCINATION" }, { 0xD87E76, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xD87EB1, "x.o.ware, inc.", "X-O-WARE" }, { 0xD88039, "Microchip Technology Inc.", "MICROCHIP" }, { 0xD8803C, "Anhui Huami Information Technology Company Limited", "ANHUI-HUAMI-INFORMATION-COMPANY" }, { 0xD88083, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0xD880DC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD881CE, "AHN INC.", "AHN" }, { 0xD88332, "TaiXin Semiconductor Co., Ltd", "TAIXIN-SEMICONDUCTOR" }, { 0xD88466, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xD8860B, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xD887D5, "Leadcore Technology CO.,LTD", "LEADCORE" }, { 0xD88863, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD888CE, "RF Technology Pty Ltd", "RF-PTY" }, { 0xD88A3B, "UNIT-EM", "UNIT-EM" }, { 0xD88ADC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD88B4C, "KingTing Tech.", "KINGTING-TECH" }, { 0xD88C73, "zte corporation", "ZTE" }, { 0xD88C79, "Google, Inc.", "GOOGLE" }, { 0xD88D5C, "Elentec", "ELENTEC" }, { 0xD88DC8, "Atil Technology Co., LTD", "ATIL" }, { 0xD88ED4, "eero inc.", "EERO" }, { 0xD88F76, "Apple, Inc.", "APPLE" }, { 0xD890E8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD8912A, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xD89136, "Dover Fueling Solutions", "DOVER-FUELING-SOLUTIONS" }, { 0xD89341, "General Electric Global Research", "GENERAL-ELECTRIC-GLOBAL-RESEARCH" }, { 0xD89403, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xD8952F, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD89685, "GoPro", "GOPRO" }, { 0xD89695, "Apple, Inc.", "APPLE" }, { 0xD896E0, "Alibaba Cloud Computing Ltd.", "ALIBABA-CLOUD-COMPUTING" }, { 0xD8973B, "Artesyn Embedded Technologies", "ARTESYN-EMBEDDED-TECHNOLOGIES" }, { 0xD89760, "C2 Development, Inc.", "C2-DEVELOPMENT" }, { 0xD8977C, "Grey Innovation", "GREY-INNOVATION" }, { 0xD89790, "Commonwealth Scientific and Industrial Research Organisation", "COMMONWEALTH-SCIENTIFIC-AND-INDUSTRIAL-RESEARCH-ORGANISATION" }, { 0xD897BA, "PEGATRON CORPORATION", "PEGATRON" }, { 0xD89A34, "Beijing SHENQI Technology Co., Ltd.", "BEIJING-SHENQI" }, { 0xD89AC1, "Nokia", "NOKIA" }, { 0xD89B3B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD89C67, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xD89C8E, "Comcast Cable Corporation", "COMCAST-CABLE" }, { 0xD89D67, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xD89DB9, "eMegatech International Corp.", "EMEGATECH" }, { 0xD89E3F, "Apple, Inc.", "APPLE" }, { 0xD89E61, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD89ED4, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xD89EF3, "Dell Inc.", "DELL" }, { 0xD8A011, "WiZ", "WIZ" }, { 0xD8A01D, "Espressif Inc.", "ESPRESSIF" }, { 0xD8A0E8, "zte corporation", "ZTE" }, { 0xD8A105, "Syslane, Co., Ltd.", "SYSLANE" }, { 0xD8A25E, "Apple, Inc.", "APPLE" }, { 0xD8A315, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xD8A35C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD8A491, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD8A534, "Spectronix Corporation", "SPECTRONIX" }, { 0xD8A6F0, "Wu Qi Technologies,Inc.", "WU-QI-TECHNOLOGIES" }, { 0xD8A6FD, "Ghost Locomotion", "GHOST-LOCOMOTION" }, { 0xD8A756, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xD8A8C8, "zte corporation", "ZTE" }, { 0xD8A98B, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD8AA59, "Tonly Technology Co. Ltd", "TONLY" }, { 0xD8AD49, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0xD8ADDD, "Sonavation, Inc.", "SONAVATION" }, { 0xD8AE90, "Itibia Technologies", "ITIBIA-TECHNOLOGIES" }, { 0xD8AED0, "Shanghai Engineering Science & Technology Co.,LTD CGNPC", "SHANGHAI-ENGINEERING-SCIENCE-CGNPC" }, { 0xD8AF3B, "Hangzhou Bigbright Integrated communications system Co.,Ltd", "HANGZHOU-BIGBRIGHT-INTEGRATED-COMMUNICATION-SYSTEM" }, { 0xD8AF81, "AO", "AO" }, { 0xD8AFF1, "Panasonic Appliances Company", "PANASONIC-APPLIANCES-COMPANY" }, { 0xD8B02E, "Guangzhou Zonerich Business Machine Co., LTD.", "GUANGZHOU-ZONERICH-BUSINESS-MACHINE" }, { 0xD8B04C, "Jinan USR IOT Technology Co., Ltd.", "JINAN-USR-IOT" }, { 0xD8B053, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xD8B122, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xD8B12A, "Panasonic Mobile Communications Co.,Ltd.", "PANASONIC-MOBILE-COMMUNICATION" }, { 0xD8B190, "Cisco Systems, Inc", "CISCO" }, { 0xD8B249, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD8B370, "Ubiquiti Inc", "UBIQUITI" }, { 0xD8B377, "HTC Corporation", "HTC" }, { 0xD8B673, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD8B6B7, "Comtrend Corporation", "COMTREND" }, { 0xD8B6C1, "NetworkAccountant, Inc.", "NETWORKACCOUNTANT" }, { 0xD8B6D6, "Blu Tether Limited", "BLU-TETHER" }, { 0xD8B8F6, "Nantworks", "NANTWORKS" }, { 0xD8B90E, "Triple Domain Vision Co.,Ltd.", "TRIPLE-DOMAIN-VISION" }, { 0xD8BB2C, "Apple, Inc.", "APPLE" }, { 0xD8BBC1, "Micro-Star INTL CO., LTD.", "MICRO-STAR-INTL" }, { 0xD8BC38, "Espressif Inc.", "ESPRESSIF" }, { 0xD8BC59, "Shenzhen DAPU Microelectronics Co., Ltd", "SHENZHEN-DAPU-MICROELECTRONICS" }, { 0xD8BE1F, "Apple, Inc.", "APPLE" }, { 0xD8BE65, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xD8BF4C, "Victory Concept Electronics Limited", "VICTORY-CONCEPT-ELECTRONICS" }, { 0xD8BFC0, "Espressif Inc.", "ESPRESSIF" }, { 0xD8C068, "Netgenetech.co.,ltd.", "NETGENETECH" }, { 0xD8C06A, "Hunantv.com Interactive Entertainment Media Co.,Ltd.", "HUNANTV-COM-INTERACTIVE-ENTERTAINMENT-MEDIA" }, { 0xD8C0A6, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xD8C3FB, "DETRACOM", "DETRACOM" }, { 0xD8C46A, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xD8C497, "Quanta Computer Inc.", "QUANTA" }, { 0xD8C4E9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD8C561, "CommFront Communications Pte Ltd", "COMMFRONT-COMMUNICATION-PTE" }, { 0xD8C678, "MitraStar Technology Corp.", "MITRASTAR" }, { 0xD8C691, "Hichan Technology Corp.", "HICHAN" }, { 0xD8C771, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD8C7C8, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xD8C8E9, "Phicomm (Shanghai) Co., Ltd.", "PHICOMM-SHANGHAI" }, { 0xD8C99D, "EA DISPLAY LIMITED", "EA-DISPLAY" }, { 0xD8CA06, "Titan DataCenters France", "TITAN-DATACENTERS-FRANCE" }, { 0xD8CB8A, "Micro-Star INTL CO., LTD.", "MICRO-STAR-INTL" }, { 0xD8CC98, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD8CD2C, "WUXI NEIHUA NETWORK TECHNOLOGY CO., LTD", "WUXI-NEIHUA-NETWORK" }, { 0xD8CE3A, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xD8CF89, "Beijing DoSee Science and Technology Co., Ltd.", "BEIJING-DOSEE-SCIENCE" }, { 0xD8CF9C, "Apple, Inc.", "APPLE" }, { 0xD8CFBF, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xD8D090, "Dell Inc.", "DELL" }, { 0xD8D1CB, "Apple, Inc.", "APPLE" }, { 0xD8D27C, "JEMA ENERGY, SA", "JEMA-ENERGY" }, { 0xD8D385, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xD8D43C, "Sony Corporation", "SONY" }, { 0xD8D45D, "Orbic North America", "ORBIC-NORTH-AMERICA" }, { 0xD8D4E6, "Hytec Inter Co., Ltd.", "HYTEC-INTER" }, { 0xD8D5B9, "Rainforest Automation, Inc.", "RAINFOREST-AUTOMATION" }, { 0xD8D67E, "GSK CNC EQUIPMENT CO.,LTD", "GSK-CNC-EQUIPMENT" }, { 0xD8D6F3, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xD8D723, "IDS, Inc", "IDS" }, { 0xD8D775, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xD8D866, "SHENZHEN TOZED TECHNOLOGIES CO.,LTD.", "SHENZHEN-TOZED-TECHNOLOGIES" }, { 0xD8DA52, "APATOR S.A.", "APATOR" }, { 0xD8DAF1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xD8DC40, "Apple, Inc.", "APPLE" }, { 0xD8DCE9, "Kunshan Erlab ductless filtration system Co.,Ltd", "KUNSHAN-ERLAB-DUCTLESS-FILTRATION-SYSTEM" }, { 0xD8DD5F, "BALMUDA Inc.", "BALMUDA" }, { 0xD8DDFD, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xD8DE3A, "Apple, Inc.", "APPLE" }, { 0xD8DECE, "ISUNG CO.,LTD", "ISUNG" }, { 0xD8DF0D, "beroNet GmbH", "BERONET" }, { 0xD8DF7A, "Quest Software, Inc.", "QUEST-SOFTWARE" }, { 0xD8E004, "Vodia Networks Inc", "VODIA-NETWORKS" }, { 0xD8E0B8, "BULAT LLC", "BULAT" }, { 0xD8E0E1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xD8E2DF, "Microsoft Corporation", "MICROSOFT" }, { 0xD8E35E, "LG Innotek", "LG-INNOTEK" }, { 0xD8E3AE, "CIRTEC MEDICAL SYSTEMS", "CIRTEC-MEDICAL" }, { 0xD8E56D, "TCT mobile ltd", "TCT-MOBILE" }, { 0xD8E72B, "NETSCOUT SYSTEMS INC", "NETSCOUT" }, { 0xD8E72F, "Chipsea Technologies (Shenzhen) Corp.", "CHIPSEA-TECHNOLOGIES-SHENZHEN" }, { 0xD8E743, "Wush, Inc", "WUSH" }, { 0xD8E844, "zte corporation", "ZTE" }, { 0xD8E952, "KEOPSYS", "KEOPSYS" }, { 0xD8EB46, "Google, Inc.", "GOOGLE" }, { 0xD8EB97, "TRENDnet, Inc.", "TRENDNET" }, { 0xD8EC5E, "Belkin International Inc.", "BELKIN" }, { 0xD8ECE5, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xD8ED1C, "Magna Technology SL", "MAGNA-SL" }, { 0xD8EE78, "Moog Protokraft", "MOOG-PROTOKRAFT" }, { 0xD8EF42, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xD8EFCD, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0xD8F0F2, "Zeebo Inc", "ZEEBO" }, { 0xD8F15B, "Espressif Inc.", "ESPRESSIF" }, { 0xD8F1F0, "Pepxim International Limited", "PEPXIM" }, { 0xD8F2CA, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD8F3BC, "Liteon Technology Corporation", "LITEON" }, { 0xD8F3DB, "Post CH AG", "POST-CH" }, { 0xD8F507, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xD8F710, "Libre Wireless Technologies Inc.", "LIBRE-WIRELESS-TECHNOLOGIES" }, { 0xD8F883, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD8F8AF, "DAONTEC", "DAONTEC" }, { 0xD8FB11, "AXACORE", "AXACORE" }, { 0xD8FB5E, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xD8FB68, "Cloud Corner Ltd.", "CLOUD-CORNER" }, { 0xD8FBD6, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xD8FC38, "Giantec Semiconductor Inc", "GIANTEC-SEMICONDUCTOR" }, { 0xD8FC93, "Intel Corporate", "INTEL-CORPORATE" }, { 0xD8FE8F, "IDFone Co., Ltd.", "IDFONE" }, { 0xD8FEE3, "D-Link International", "D-LINK" }, { 0xD8FFC3, "Shenzhen 3SNIC information technology company Limited", "SHENZHEN-3SNIC-INFORMATION-COMPANY" }, { 0xDC0077, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xDC00B0, "FREEBOX SAS", "FREEBOX-SAS" }, { 0xDC0265, "Meditech Kft", "MEDITECH-KFT" }, { 0xDC028E, "zte corporation", "ZTE" }, { 0xDC0398, "LG Innotek", "LG-INNOTEK" }, { 0xDC052F, "National Products Inc.", "NATIONAL-PRODUCTS" }, { 0xDC0539, "Cisco Systems, Inc", "CISCO" }, { 0xDC0575, "SIEMENS ENERGY AUTOMATION", "SIEMENS-ENERGY-AUTOMATION" }, { 0xDC05ED, "Nabtesco Corporation", "NABTESCO" }, { 0xDC0682, "Accessia Technology Ltd.", "ACCESSIA" }, { 0xDC07C1, "HangZhou QiYang Technology Co.,Ltd.", "HANGZHOU-QIYANG" }, { 0xDC07F8, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xDC080F, "Apple, Inc.", "APPLE" }, { 0xDC0856, "Alcatel-Lucent Enterprise", "ALCATEL-LUCENT" }, { 0xDC0914, "Talk-A-Phone Co.", "TALK-A-PHONE" }, { 0xDC094C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xDC0B09, "Cisco Systems, Inc", "CISCO" }, { 0xDC0B1A, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0xDC0B34, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xDC0C2D, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0xDC0C5C, "Apple, Inc.", "APPLE" }, { 0xDC0D30, "Shenzhen Feasycom Technology Co., Ltd.", "SHENZHEN-FEASYCOM" }, { 0xDC0E96, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0xDC0EA1, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0xDC152D, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xDC15C8, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0xDC15DB, "Ge Ruili Intelligent Technology ( Beijing ) Co., Ltd.", "GE-RUILI-INTELLIGENT-BEIJING" }, { 0xDC16A2, "Medtronic Diabetes", "MEDTRONIC-DIABETES" }, { 0xDC16B2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xDC175A, "Hitachi High-Technologies Corporation", "HITACHI-HIGH-TECHNOLOGIES" }, { 0xDC1792, "Captivate Network", "CAPTIVATE-NETWORK" }, { 0xDC1A01, "Ecoliv Technology ( Shenzhen ) Ltd.", "ECOLIV-SHENZHEN" }, { 0xDC1AC5, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xDC1BA1, "Intel Corporate", "INTEL-CORPORATE" }, { 0xDC1D9F, "U & B tech", "U-B-TECH" }, { 0xDC1DD4, "Microstep-MIS spol. s r.o.", "MICROSTEP-MIS-SPOL-S-R-O" }, { 0xDC1EA3, "Accensus LLC", "ACCENSUS" }, { 0xDC2008, "ASD Electronics Ltd", "ASD-ELECTRONICS" }, { 0xDC2148, "Intel Corporate", "INTEL-CORPORATE" }, { 0xDC215C, "Intel Corporate", "INTEL-CORPORATE" }, { 0xDC21B9, "Sentec Co.Ltd", "SENTEC" }, { 0xDC21E2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xDC233B, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xDC2727, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xDC2834, "HAKKO Corporation", "HAKKO" }, { 0xDC2919, "AltoBeam (Xiamen) Technology Ltd, Co.", "ALTOBEAM-XIAMEN" }, { 0xDC293A, "Shenzhen Nuoshi Technology Co., LTD.", "SHENZHEN-NUOSHI" }, { 0xDC2A14, "Shanghai Longjing Technology Co.", "SHANGHAI-LONGJING" }, { 0xDC2AA1, "MedHab LLC", "MEDHAB" }, { 0xDC2B2A, "Apple, Inc.", "APPLE" }, { 0xDC2B61, "Apple, Inc.", "APPLE" }, { 0xDC2B66, "InfoBLOCK S.A. de C.V.", "INFOBLOCK-DE-C-V" }, { 0xDC2BCA, "Zera GmbH", "ZERA" }, { 0xDC2C26, "Iton Technology Limited", "ITON" }, { 0xDC2C6E, "Routerboard.com", "ROUTERBOARD-COM" }, { 0xDC2D3C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xDC2DCB, "Beijing Unis HengYue Technology Co., Ltd.", "BEIJING-UNIS-HENGYUE" }, { 0xDC2DDE, "Ledworks SRL", "LEDWORKS-SRL" }, { 0xDC2E6A, "HCT. Co., Ltd.", "HCT" }, { 0xDC2F03, "Step forward Group Co., Ltd.", "STEP-FORWARD-GROUP" }, { 0xDC309C, "Heyrex Limited", "HEYREX" }, { 0xDC31D1, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xDC330D, "QING DAO HAIER TELECOM CO.,LTD.", "QING-DAO-HAIER-TELECOM" }, { 0xDC333D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xDC3350, "TechSAT GmbH", "TECHSAT" }, { 0xDC35F1, "Positivo Tecnologia S.A.", "POSITIVO-TECNOLOGIA" }, { 0xDC360C, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0xDC3642, "zte corporation", "ZTE" }, { 0xDC3643, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xDC3714, "Apple, Inc.", "APPLE" }, { 0xDC3752, "GE", "GE" }, { 0xDC3757, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xDC37D2, "Hunan HKT Electronic Technology Co., Ltd", "HUNAN-HKT" }, { 0xDC38E1, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xDC396F, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0xDC3979, "Cisco Systems, Inc", "CISCO" }, { 0xDC3A5E, "Roku, Inc.", "ROKU" }, { 0xDC3C2E, "Manufacturing System Insights, Inc.", "MANUFACTURING-SYSTEM-INSIGHTS" }, { 0xDC3C84, "Ticom Geomatics, Inc.", "TICOM-GEOMATICS" }, { 0xDC3CF6, "Atomic Rules LLC", "ATOMIC-RULES" }, { 0xDC3E51, "Solberg & Andersen AS", "SOLBERG-ANDERSEN-AS" }, { 0xDC3EF8, "Nokia Corporation", "NOKIA" }, { 0xDC415F, "Apple, Inc.", "APPLE" }, { 0xDC41A9, "Intel Corporate", "INTEL-CORPORATE" }, { 0xDC41E5, "Shenzhen Zhixin Data Service Co., Ltd.", "SHENZHEN-ZHIXIN-DATA-SERVICE" }, { 0xDC4427, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xDC446D, "Allwinner Technology Co., Ltd", "ALLWINNER" }, { 0xDC44B6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xDC4517, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xDC45B8, "Apple, Inc.", "APPLE" }, { 0xDC4628, "Intel Corporate", "INTEL-CORPORATE" }, { 0xDC48B2, "Baraja Pty. Ltd.", "BARAJA-PTY" }, { 0xDC49C9, "CASCO SIGNAL LTD", "CASCO-SIGNAL" }, { 0xDC4A3E, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xDC4A9E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xDC4BDD, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0xDC4BFE, "Shenzhen Belon Technology CO.,LTD", "SHENZHEN-BELON" }, { 0xDC4D23, "MRV Comunications", "MRV-COMUNICATIONS" }, { 0xDC4EDE, "SHINYEI TECHNOLOGY CO., LTD.", "SHINYEI" }, { 0xDC4EF4, "Shenzhen MTN Electronics CO., Ltd", "SHENZHEN-MTN-ELECTRONICS" }, { 0xDC4F22, "Espressif Inc.", "ESPRESSIF" }, { 0xDC503A, "Nanjing Ticom Tech Co., Ltd.", "NANJING-TICOM-TECH" }, { 0xDC5193, "zte corporation", "ZTE" }, { 0xDC5285, "Apple, Inc.", "APPLE" }, { 0xDC5360, "Intel Corporate", "INTEL-CORPORATE" }, { 0xDC537C, "Compal Broadband Networks, Inc.", "COMPAL-BROADBAND-NETWORKS" }, { 0xDC5392, "Apple, Inc.", "APPLE" }, { 0xDC543D, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xDC5475, "Espressif Inc.", "ESPRESSIF" }, { 0xDC54D7, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xDC5583, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xDC56E6, "Shenzhen Bococom Technology Co.,LTD", "SHENZHEN-BOCOCOM" }, { 0xDC56E7, "Apple, Inc.", "APPLE" }, { 0xDC5726, "Power-One", "POWER-ONE" }, { 0xDC58BC, "Thomas-Krenn.AG", "THOMAS-KRENN" }, { 0xDC5E36, "Paterson Technology", "PATERSON" }, { 0xDC60A1, "Teledyne DALSA Professional Imaging", "TELEDYNE-DALSA-PROFESSIONAL-IMAGING" }, { 0xDC6294, "Guangzhou Lango Electronics Technology Co.,Ltd.", "GUANGZHOU-LANGO-ELECTRONICS" }, { 0xDC6373, "OBARA KOREA", "OBARA-KOREA" }, { 0xDC647C, "C.R.S. iiMotion GmbH", "C-R-S-IIMOTION" }, { 0xDC64B8, "Shenzhen JingHanDa Electronics Co.Ltd", "SHENZHEN-JINGHANDA-ELECTRONICS" }, { 0xDC663A, "Apacer Technology Inc.", "APACER" }, { 0xDC6672, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xDC6723, "barox Kommunikation GmbH", "BAROX-KOMMUNIKATION" }, { 0xDC680C, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xDC68EB, "Nintendo Co.,Ltd", "NINTENDO" }, { 0xDC69E2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xDC6AE7, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xDC6AEA, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0xDC6B12, "worldcns inc.", "WORLDCNS" }, { 0xDC6B1B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xDC6DBC, "Apple, Inc.", "APPLE" }, { 0xDC6DCD, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xDC6F00, "Livescribe, Inc.", "LIVESCRIBE" }, { 0xDC6F08, "Bay Storage Technology", "BAY-STORAGE" }, { 0xDC7014, "Private", "PRIVATE" }, { 0xDC7137, "zte corporation", "ZTE" }, { 0xDC7144, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0xDC7196, "Intel Corporate", "INTEL-CORPORATE" }, { 0xDC71DD, "AX Technologies", "AX-TECHNOLOGIES" }, { 0xDC7223, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0xDC729B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xDC7385, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xDC74A8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xDC774C, "Cisco Systems, Inc", "CISCO" }, { 0xDC7794, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xDC7834, "LOGICOM SA", "LOGICOM" }, { 0xDC7B94, "Cisco Systems, Inc", "CISCO" }, { 0xDC7FA4, "2Wire Inc", "2WIRE" }, { 0xDC8084, "Apple, Inc.", "APPLE" }, { 0xDC825B, "JANUS, spol. s r.o.", "JANUS-SPOL-S-R-O" }, { 0xDC82F6, "iPort", "IPORT" }, { 0xDC84E9, "Shenzhen Qihoo Intelligent Technology Co.,Ltd", "SHENZHEN-QIHOO-INTELLIGENT" }, { 0xDC85DE, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xDC86D8, "Apple, Inc.", "APPLE" }, { 0xDC87CB, "Beijing Perfectek Technologies Co., Ltd.", "BEIJING-PERFECTEK-TECHNOLOGIES" }, { 0xDC8983, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xDC8B28, "Intel Corporate", "INTEL-CORPORATE" }, { 0xDC8C1B, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xDC8C37, "Cisco Systems, Inc", "CISCO" }, { 0xDC8D8A, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0xDC8D91, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0xDC8DB7, "ATW TECHNOLOGY, INC.", "ATW" }, { 0xDC8E95, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xDC9020, "RURU TEK PRIVATE LIMITED", "RURU-TEK-PRIVATE" }, { 0xDC9088, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xDC9166, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xDC91BF, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xDC962C, "NST Audio Ltd", "NST-AUDIO" }, { 0xDC973A, "Verana Networks", "VERANA-NETWORKS" }, { 0xDC9758, "Sichuan AI-Link Technology Co., Ltd.", "SICHUAN-AI-LINK" }, { 0xDC97E6, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xDC9840, "Microsoft Corporation", "MICROSOFT" }, { 0xDC9914, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xDC99FE, "Armatura LLC", "ARMATURA" }, { 0xDC9A7D, "HISENSE VISUAL TECHNOLOGY CO.,LTD", "HISENSE-VISUAL" }, { 0xDC9A8E, "Nanjing Cocomm electronics co., LTD", "NANJING-COCOMM-ELECTRONICS" }, { 0xDC9B1E, "Intercom, Inc.", "INTERCOM" }, { 0xDC9B9C, "Apple, Inc.", "APPLE" }, { 0xDC9BD6, "TCT mobile ltd", "TCT-MOBILE" }, { 0xDC9C52, "Sapphire Technology Limited.", "SAPPHIRE" }, { 0xDC9C9F, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xDC9EAB, "Chongqing Yipingfang Technology Co., Ltd.", "CHONGQING-YIPINGFANG" }, { 0xDC9FA4, "Nokia Corporation", "NOKIA" }, { 0xDC9FDB, "Ubiquiti Inc", "UBIQUITI" }, { 0xDCA120, "Nokia", "NOKIA" }, { 0xDCA266, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xDCA313, "Shenzhen Changjin Communication Technology Co.,Ltd", "SHENZHEN-CHANGJIN-COMMUNICATION" }, { 0xDCA333, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xDCA3A2, "Feng mi(Beijing)technology co., LTD", "FENG-MI-BEIJING" }, { 0xDCA3AC, "RBcloudtech", "RBCLOUDTECH" }, { 0xDCA4CA, "Apple, Inc.", "APPLE" }, { 0xDCA5F4, "Cisco Systems, Inc", "CISCO" }, { 0xDCA632, "Raspberry Pi Trading Ltd", "RASPBERRY-PI-TRADING" }, { 0xDCA633, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xDCA6BD, "Beijing Lanbo Technology Co., Ltd.", "BEIJING-LANBO" }, { 0xDCA782, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xDCA7D9, "Compressor Controls Corp", "COMPRESSOR-CONTROLS" }, { 0xDCA8CF, "New Spin Golf, LLC.", "NEW-SPIN-GOLF" }, { 0xDCA904, "Apple, Inc.", "APPLE" }, { 0xDCA956, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xDCA971, "Intel Corporate", "INTEL-CORPORATE" }, { 0xDCA989, "MACANDC", "MACANDC" }, { 0xDCAA43, "Shenzhen Terca Information Technology Co., Ltd.", "SHENZHEN-TERCA-INFORMATION" }, { 0xDCAC6F, "Everytale Inc", "EVERYTALE" }, { 0xDCAD9E, "GreenPriz", "GREENPRIZ" }, { 0xDCAE04, "CELOXICA Ltd", "CELOXICA" }, { 0xDCAEEB, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xDCAF68, "WEIFANG GOERTEK ELECTRONICS CO.,LTD", "WEIFANG-GOERTEK-ELECTRONICS" }, { 0xDCB058, "Bürkert Werke GmbH", "BUERKERT-WERKE" }, { 0xDCB082, "Nokia", "NOKIA" }, { 0xDCB131, "SHENZHEN HUARUIAN TECHNOLOGY CO.,LTD", "SHENZHEN-HUARUIAN" }, { 0xDCB347, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0xDCB3B4, "Honeywell Environmental & Combustion Controls (Tianjin) Co., Ltd.", "HONEYWELL-ENVIRONMENTAL-COMBUSTION-CONTROLS-TIANJIN" }, { 0xDCB4AC, "FLEXTRONICS MANUFACTURING(ZHUHAI)CO.,LTD.", "FLEXTRONICS-MANUFACTURING-ZHUHAI" }, { 0xDCB4C4, "Microsoft XCG", "MICROSOFT-XCG" }, { 0xDCB4CA, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xDCB54F, "Apple, Inc.", "APPLE" }, { 0xDCB72E, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xDCB7AC, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xDCB7FC, "Alps Electric (Ireland) Ltd", "ALPS-ELECTRIC-IRELAND" }, { 0xDCB808, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xDCBB96, "Full Solution Telecom", "FULL-SOLUTION-TELECOM" }, { 0xDCBD7A, "Guangzhou Shiyuan Electronic Technology Company Limited", "GUANGZHOUSHIYUANCOMPANY" }, { 0xDCBDCC, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0xDCBE49, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xDCBE7A, "Zhejiang Nurotron Biotechnology Co.", "ZHEJIANG-NUROTRON-BIOTECHNOLOGY" }, { 0xDCBF90, "HUIZHOU QIAOXING TELECOMMUNICATION INDUSTRY CO.,LTD.", "HUIZHOU-QIAOXING-TELECOMMUNICATION-INDUSTRY" }, { 0xDCBFE9, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xDCC0DB, "Shenzhen Kaiboer Technology Co., Ltd.", "SHENZHEN-KAIBOER" }, { 0xDCC0EB, "ASSA ABLOY CÔTE PICARDE", "ASSA-ABLOY-CTE-PICARDE" }, { 0xDCC101, "SOLiD Technologies, Inc.", "SOLID-TECHNOLOGIES" }, { 0xDCC2C9, "CANON INC.", "CANON" }, { 0xDCC422, "Systembase Limited", "SYSTEMBASE" }, { 0xDCC622, "BUHEUNG SYSTEM", "BUHEUNG-SYSTEM" }, { 0xDCC64B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xDCC793, "Nokia Corporation", "NOKIA" }, { 0xDCC8F5, "Shanghai UMEinfo CO.,LTD.", "SHANGHAI-UMEINFO" }, { 0xDCCBA8, "Explora Technologies Inc", "EXPLORA-TECHNOLOGIES" }, { 0xDCCC8D, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xDCCCE6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xDCCD18, "Nintendo Co.,Ltd", "NINTENDO" }, { 0xDCCD2F, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0xDCCD66, "NXP Semiconductor (Tianjin) LTD.", "NXP-SEMICONDUCTOR-TIANJIN" }, { 0xDCCD74, "Japan E.M.Solutions Co., Ltd.", "JAPAN-E-M-SOLUTIONS" }, { 0xDCCE41, "FE GLOBAL HONG KONG LIMITED", "FE-GLOBAL-HONG-KONG" }, { 0xDCCEBC, "Shenzhen JSR Technology Co.,Ltd.", "SHENZHEN-JSR" }, { 0xDCCEC1, "Cisco Systems, Inc", "CISCO" }, { 0xDCCF94, "Beijing Rongcheng Hutong Technology Co., Ltd.", "BEIJING-RONGCHENG-HUTONG" }, { 0xDCCF96, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xDCD0F7, "Bentek Systems Ltd.", "BENTEK" }, { 0xDCD255, "Kinpo Electronics, Inc.", "KINPO-ELECTRONICS" }, { 0xDCD26A, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xDCD2FC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xDCD2FD, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xDCD321, "HUMAX Co., Ltd.", "HUMAX" }, { 0xDCD3A2, "Apple, Inc.", "APPLE" }, { 0xDCD444, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xDCD52A, "Sunny Heart Limited", "SUNNY-HEART" }, { 0xDCD7A0, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xDCD87C, "Beijing Jingdong Century Trading Co., LTD.", "BEIJING-JINGDONG-CENTURY-TRADING" }, { 0xDCD87F, "Shenzhen JoinCyber Telecom Equipment Ltd", "SHENZHEN-JOINCYBER-TELECOM-EQUIPMENT" }, { 0xDCD916, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xDCD9AE, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0xDCDA4F, "GETCK TECHNOLOGY, INC", "GETCK" }, { 0xDCDA80, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xDCDB27, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xDCDB70, "Tonfunk Systementwicklung und Service GmbH", "TONFUNK-SYSTEMENTWICKLUNG-UND-SERVICE" }, { 0xDCDC07, "TRP Systems BV", "TRP" }, { 0xDCDCC3, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xDCDCE2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xDCDD24, "Energica Motor Company SpA", "ENERGICA-MOTOR-COMPANY-SPA" }, { 0xDCDE4F, "Gionee Communication Equipment Co Ltd", "GIONEE-COMMUNICATION-EQUIPMENT" }, { 0xDCDECA, "Akyllor", "AKYLLOR" }, { 0xDCDFD6, "zte corporation", "ZTE" }, { 0xDCE026, "Patrol Tag, Inc", "PATROL-TAG" }, { 0xDCE0EB, "Nanjing Aozheng Information Technology Co.Ltd", "NANJING-AOZHENG-INFORMATION" }, { 0xDCE1AD, "Shenzhen Wintop Photoelectric Technology Co., Ltd", "SHENZHEN-WINTOP-PHOTOELECTRIC" }, { 0xDCE2AC, "Lumens Digital Optics Inc.", "LUMENS-DIGITAL-OPTICS" }, { 0xDCE305, "AO", "AO" }, { 0xDCE533, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xDCE55B, "Google, Inc.", "GOOGLE" }, { 0xDCE578, "Experimental Factory of Scientific Engineering and Special Design Department", "EXPERIMENTAL-FACTORY-OF-SCIENTIFIC-ENGINEERING-AND-SPECIAL-DESIGN-DEPARTMENT" }, { 0xDCE650, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xDCE71C, "AUG Elektronik GmbH", "AUG-ELEKTRONIK" }, { 0xDCE838, "CK Telecom (Shenzhen) Limited", "CK-TELECOM-SHENZHEN" }, { 0xDCE994, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0xDCEB53, "Wuhan QianXiao Elecronic Technology CO.,LTD", "WUHAN-QIANXIAO-ELECRONIC" }, { 0xDCEB69, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xDCEB94, "Cisco Systems, Inc", "CISCO" }, { 0xDCEC06, "Heimi Network Technology Co., Ltd.", "HEIMI-NETWORK" }, { 0xDCECE3, "LYOTECH LABS LLC", "LYOTECH-LABS" }, { 0xDCED83, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0xDCED84, "Haverford Systems Inc", "HAVERFORD" }, { 0xDCEE06, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xDCEF09, "NETGEAR", "NETGEAR" }, { 0xDCEF80, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xDCEFCA, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xDCF05D, "Letta Teknoloji", "LETTA-TEKNOLOJI" }, { 0xDCF090, "Nubia Technology Co.,Ltd.", "NUBIA" }, { 0xDCF110, "Nokia Corporation", "NOKIA" }, { 0xDCF31C, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xDCF401, "Dell Inc.", "DELL" }, { 0xDCF4CA, "Apple, Inc.", "APPLE" }, { 0xDCF505, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xDCF56E, "Wellysis Corp.", "WELLYSIS" }, { 0xDCF719, "Cisco Systems, Inc", "CISCO" }, { 0xDCF755, "SITRONIK", "SITRONIK" }, { 0xDCF756, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xDCF858, "Lorent Networks, Inc.", "LORENT-NETWORKS" }, { 0xDCF8B9, "zte corporation", "ZTE" }, { 0xDCFAD5, "STRONG Ges.m.b.H.", "STRONG-GES-M-B-H" }, { 0xDCFB02, "BUFFALO.INC", "BUFFALO" }, { 0xDCFB48, "Intel Corporate", "INTEL-CORPORATE" }, { 0xDCFBB8, "Meizhou Guo Wei Electronics Co., Ltd", "MEIZHOU-GUO-WEI-ELECTRONICS" }, { 0xDCFE07, "PEGATRON CORPORATION", "PEGATRON" }, { 0xDCFE18, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xDCFE23, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xE00084, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE001A6, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0xE001C7, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0xE002A5, "ABB Robotics", "ABB-ROBOTICS" }, { 0xE0036B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE00370, "ShenZhen Continental Wireless Technology Co., Ltd.", "SHENZHEN-CONTINENTAL-WIRELESS" }, { 0xE005C5, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xE006E6, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xE0071B, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xE007C2, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0xE00871, "Dongguan Liesheng Electronic Co., Ltd.", "DONGGUAN-LIESHENG" }, { 0xE009BF, "SHENZHEN TONG BO WEI TECHNOLOGY Co.,LTD", "SHENZHENTONG-BO-WEI" }, { 0xE00AF6, "Liteon Technology Corporation", "LITEON" }, { 0xE00B28, "Inovonics", "INOVONICS" }, { 0xE00C7F, "Nintendo Co., Ltd.", "NINTENDO" }, { 0xE00CE5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE00DB9, "Cree, Inc.", "CREE" }, { 0xE00EDA, "Cisco Systems, Inc", "CISCO" }, { 0xE00EE1, "We Corporation Inc.", "WE" }, { 0xE00EE4, "DWnet Technologies(Suzhou) Corporation", "DWNET-TECHNOLOGIES-SUZHOU" }, { 0xE0107F, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xE01283, "Shenzhen Fanzhuo Communication Technology Co., Lt", "SHENZHEN-FANZHUO-COMMUNICATION-LT" }, { 0xE013B5, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xE0143E, "Modoosis Inc.", "MODOOSIS" }, { 0xE016B1, "Advanced Design Technology co.,ltd.", "ADVANCED-DESIGN" }, { 0xE01877, "FUJITSU LIMITED", "FUJITSU" }, { 0xE0189F, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0xE0191D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE01954, "zte corporation", "ZTE" }, { 0xE01995, "Nutanix", "NUTANIX" }, { 0xE019D8, "BH TECHNOLOGIES", "BH-TECHNOLOGIES" }, { 0xE01AEA, "Allied Telesis, Inc.", "ALLIED-TELESIS" }, { 0xE01C41, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xE01CEE, "Bravo Tech, Inc.", "BRAVO-TECH" }, { 0xE01CFC, "D-Link International", "D-LINK" }, { 0xE01D38, "Beijing HuaqinWorld Technology Co.,Ltd", "BEIJING-HUAQINWORLD" }, { 0xE01D3B, "Cambridge Industries(Group) Co.,Ltd.", "CAMBRIDGE-INDUSTRIES-GROUP" }, { 0xE01E07, "Anite Telecoms US. Inc", "ANITE-TELECOMS-US" }, { 0xE01F0A, "Xslent Energy Technologies. LLC", "XSLENT-ENERGY-TECHNOLOGIES" }, { 0xE01F2B, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0xE01F6A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE01F88, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xE01FED, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0xE01FFC, "Motorola (Wuhan) Mobility Technologies Communication Co., Ltd.", "MOTOROLA-WUHAN-MOBILITY-TECHNOLOGIES-COMMUNICATION" }, { 0xE021FE, "Richer Link Technologies CO.,LTD", "RICHER-LINK-TECHNOLOGIES" }, { 0xE02202, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xE023D7, "Sleep Number", "SLEEP-NUMBER" }, { 0xE023FF, "Fortinet, Inc.", "FORTINET" }, { 0xE0247F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE02481, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE02538, "Titan Pet Products", "TITAN-PET-PRODUCTS" }, { 0xE02630, "Intrigue Technologies, Inc.", "INTRIGUE-TECHNOLOGIES" }, { 0xE02636, "Nortel Networks", "NORTEL-NETWORKS" }, { 0xE0271A, "TTC Next-generation Home Network System WG", "TTC-NEXT-GENERATION-HOME-NETWORK-SYSTEM-WG" }, { 0xE0276C, "Guangzhou Shiyuan Electronic Technology Company Limited", "GUANGZHOU-SHIYUAN-COMPANY" }, { 0xE02861, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE0286D, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0xE028B1, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0xE02967, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0xE02A82, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0xE02AE6, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xE02B96, "Apple, Inc.", "APPLE" }, { 0xE02BE9, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE02CB2, "Lenovo Mobile Communication (Wuhan) Company Limited", "LENOVO-MOBILE-COMMUNICATION-WUHAN-COMPANY" }, { 0xE02CF3, "MRS Electronic GmbH", "MRS" }, { 0xE02DF0, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0xE02E0B, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE02E3F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE02F6D, "Cisco Systems, Inc", "CISCO" }, { 0xE03005, "Alcatel-Lucent Shanghai Bell Co., Ltd", "ALCATEL-LUCENT-SHANGHAI-BELL" }, { 0xE030F9, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xE0319E, "Valve Corporation", "VALVE" }, { 0xE031D0, "SZ Telstar CO., LTD", "SZ-TELSTAR" }, { 0xE0338E, "Apple, Inc.", "APPLE" }, { 0xE034E4, "Feit Electric Company, Inc.", "FEIT-ELECTRIC-COMPANY" }, { 0xE03560, "Challenger Supply Holdings, LLC", "CHALLENGER-SUPPLY-HOLDINGS" }, { 0xE03676, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE036E3, "Stage One International Co., Ltd.", "STAGE-ONE" }, { 0xE03717, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xE037BF, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0xE0382D, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xE0383F, "zte corporation", "ZTE" }, { 0xE039D7, "Plexxi, Inc.", "PLEXXI" }, { 0xE03C1C, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xE03C5B, "SHENZHEN JIAXINJIE ELECTRON CO.,LTD", "SHENZHEN-JIAXINJIE-ELECTRON" }, { 0xE03E44, "Broadcom", "BROADCOM" }, { 0xE03E4A, "Cavanagh Group International", "CAVANAGH-GROUP" }, { 0xE03E7D, "data-complex GmbH", "DATA-COMPLEX" }, { 0xE03F49, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xE04007, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE04102, "zte corporation", "ZTE" }, { 0xE04136, "MitraStar Technology Corp.", "MITRASTAR" }, { 0xE043DB, "Shenzhen ViewAt Technology Co.,Ltd.", "SHENZHEN-VIEWAT" }, { 0xE0456D, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xE0469A, "NETGEAR", "NETGEAR" }, { 0xE046E5, "Gosuncn Technology Group Co., Ltd.", "GOSUNCN-GROUP" }, { 0xE046EE, "NETGEAR", "NETGEAR" }, { 0xE04735, "Ericsson AB", "ERICSSON-AB" }, { 0xE048AF, "Premietech Limited", "PREMIETECH" }, { 0xE048D3, "MOBIWIRE MOBILES (NINGBO) CO.,LTD", "MOBIWIRE-MOBILES-NINGBO" }, { 0xE048D8, "Guangzhi Wulian Technology(Guangzhou) Co., Ltd", "GUANGZHI-WULIAN-GUANGZHOU" }, { 0xE049ED, "Audeze LLC", "AUDEZE" }, { 0xE04B41, "Hangzhou Beilian Low Carbon Technology Co., Ltd.", "HANGZHOU-BEILIAN-LOW-CARBON" }, { 0xE04B45, "Hi-P Electronics Pte Ltd", "HI-P-ELECTRONICS-PTE" }, { 0xE04BA6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE04F43, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0xE04FBD, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xE0508B, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0xE05124, "NXP Semiconductors", "NXP-SEMICONDUCTORS" }, { 0xE05163, "Arcadyan Corporation", "ARCADYAN" }, { 0xE051D8, "China Dragon Technology Limited", "CHINA-DRAGON" }, { 0xE0553D, "Cisco Meraki", "CISCO-MERAKI" }, { 0xE05597, "Emergent Vision Technologies Inc.", "EMERGENT-VISION-TECHNOLOGIES" }, { 0xE05689, "Lootom Telcovideo Network (Wuxi) Co Ltd", "LOOTOM-TELCOVIDEO-NETWORK-WUXI" }, { 0xE05694, "Yunhight Microelectronics", "YUNHIGHT-MICROELECTRONICS" }, { 0xE056F4, "AxesNetwork Solutions inc.", "AXESNETWORK-SOLUTIONS" }, { 0xE0589E, "Laerdal Medical", "LAERDAL-MEDICAL" }, { 0xE05A1B, "Espressif Inc.", "ESPRESSIF" }, { 0xE05A9F, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xE05B70, "Innovid, Co., Ltd.", "INNOVID" }, { 0xE05D5C, "Oy Everon Ab", "OY-EVERON-AB" }, { 0xE05DA6, "Detlef Fink Elektronik & Softwareentwicklung", "DETLEF-FINK-ELEKTRONIK-SOFTWAREENTWICKLUNG" }, { 0xE05F45, "Apple, Inc.", "APPLE" }, { 0xE05FB9, "Cisco Systems, Inc", "CISCO" }, { 0xE06066, "Sercomm Corporation.", "SERCOMM" }, { 0xE06089, "Cloudleaf, Inc.", "CLOUDLEAF" }, { 0xE061B2, "HANGZHOU ZENOINTEL TECHNOLOGY CO., LTD", "HANGZHOU-ZENOINTEL" }, { 0xE06234, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xE06267, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xE06290, "Jinan Jovision Science & Technology Co., Ltd.", "JINAN-JOVISION-SCIENCE" }, { 0xE063DA, "Ubiquiti Inc", "UBIQUITI" }, { 0xE063E5, "Sony Corporation", "SONY" }, { 0xE064BB, "DigiView S.r.l.", "DIGIVIEW" }, { 0xE06678, "Apple, Inc.", "APPLE" }, { 0xE06781, "Dongguan Liesheng Electronic Co., Ltd.", "DONGGUAN-LIESHENG" }, { 0xE067B3, "Shenzhen C-Data Technology Co., Ltd", "SHENZHEN-C-DATA" }, { 0xE0686D, "Raybased AB", "RAYBASED-AB" }, { 0xE068EE, "Phyplus Microelectronics Limited", "PHYPLUS-MICROELECTRONICS" }, { 0xE0693A, "Innophase Inc.", "INNOPHASE" }, { 0xE06995, "PEGATRON CORPORATION", "PEGATRON" }, { 0xE069BA, "Cisco Systems, Inc", "CISCO" }, { 0xE06A05, "Shenzhen YOUHUA Technology Co., Ltd ", "SHENZHEN-YOUHUA" }, { 0xE06C4E, "Shenzhen TINNO Mobile Technology Corp.", "SHENZHEN-TINNO-MOBILE" }, { 0xE06CA6, "Creotech Instruments S.A.", "CREOTECH-INSTRUMENTS" }, { 0xE06CC5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE06CF6, "ESSENCORE limited", "ESSENCORE" }, { 0xE06D17, "Apple, Inc.", "APPLE" }, { 0xE06D18, "PIONEERCORPORATION", "PIONEERCORPORATION" }, { 0xE070EA, "HP Inc.", "HP" }, { 0xE0720A, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0xE0735F, "NUCOM", "NUCOM" }, { 0xE073E7, "HP Inc.", "HP" }, { 0xE0750A, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0xE07526, "China Dragon Technology Limited", "CHINA-DRAGON" }, { 0xE0757D, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xE075AA, "Beijing Jingling Information System Technology Co., Ltd.", "BEIJING-JINGLING-INFORMATION-SYSTEM" }, { 0xE076D0, "AMPAK Technology, Inc.", "AMPAK" }, { 0xE07726, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE078A3, "Shanghai Winner Information Technology Co.,Inc", "SHANGHAI-WINNER-INFORMATION" }, { 0xE0795E, "Wuxi Xiaohu Technology Co.,Ltd.", "WUXI-XIAOHU" }, { 0xE0798D, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xE079C4, "iRay Technology Company Limited", "IRAY-COMPANY" }, { 0xE07C13, "zte corporation", "ZTE" }, { 0xE07C62, "Whistle Labs, Inc.", "WHISTLE-LABS" }, { 0xE07DEA, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xE07E5F, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0xE07F53, "TECHBOARD SRL", "TECHBOARD-SRL" }, { 0xE07F88, "EVIDENCE Network SIA", "EVIDENCE-NETWORK-SIA" }, { 0xE0806B, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xE08177, "GreenBytes, Inc.", "GREENBYTES" }, { 0xE084F3, "High Grade Controls Corporation", "HIGH-GRADE-CONTROLS" }, { 0xE0859A, "SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.", "SHENZHEN-RF-LINK" }, { 0xE08614, "Novatel Wireless Solutions, Inc.", "NOVATEL-WIRELESS-SOLUTIONS" }, { 0xE087B1, "Nata-Info Ltd.", "NATA-INFO" }, { 0xE0885D, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xE0897E, "Apple, Inc.", "APPLE" }, { 0xE0899D, "Cisco Systems, Inc", "CISCO" }, { 0xE08A7E, "Exponent", "EXPONENT" }, { 0xE08E3C, "Aztech Electronics Pte Ltd", "AZTECH-ELECTRONICS-PTE" }, { 0xE08FEC, "REPOTEC CO., LTD.", "REPOTEC" }, { 0xE0913C, "Kyeungin CNS Co., Ltd.", "KYEUNGIN-CNS" }, { 0xE09153, "XAVi Technologies Corp.", "XAVI-TECHNOLOGIES" }, { 0xE091F5, "NETGEAR", "NETGEAR" }, { 0xE0925C, "Apple, Inc.", "APPLE" }, { 0xE0928F, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xE092A7, "Feitian Technologies Co., Ltd", "FEITIAN-TECHNOLOGIES" }, { 0xE09467, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE09579, "ORTHOsoft inc, d/b/a Zimmer CAS", "ORTHOSOFT-D/B/A-ZIMMER-CAS" }, { 0xE09796, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE097F2, "Atomax Inc.", "ATOMAX" }, { 0xE09806, "Espressif Inc.", "ESPRESSIF" }, { 0xE09861, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xE09971, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE09B27, "Ciena Corporation", "CIENA" }, { 0xE09C8D, "Seakeeper, Inc.", "SEAKEEPER" }, { 0xE09D13, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE09D31, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE09DB8, "PLANEX COMMUNICATIONS INC.", "PLANEX-COMMUNICATION" }, { 0xE09DFA, "Wanan Hongsheng Electronic Co.Ltd", "WANAN-HONGSHENG" }, { 0xE09F2A, "Iton Technology Corp.", "ITON" }, { 0xE0A129, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xE0A198, "NOJA Power Switchgear Pty Ltd", "NOJA-POWER-SWITCHGEAR-PTY" }, { 0xE0A1CE, "zte corporation", "ZTE" }, { 0xE0A1D7, "SFR", "SFR" }, { 0xE0A258, "Wanbang Digital Energy Co.,Ltd", "WANBANG-DIGITAL-ENERGY" }, { 0xE0A25A, "Shanghai Mo xiang Network Technology CO.,ltd", "SHANGHAI-MO-XIANG-NETWORK" }, { 0xE0A30F, "Pevco", "PEVCO" }, { 0xE0A3AC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE0A509, "Bitmain Technologies Inc", "BITMAIN-TECHNOLOGIES" }, { 0xE0A670, "Nokia Corporation", "NOKIA" }, { 0xE0A700, "Verkada Inc", "VERKADA" }, { 0xE0A8B8, "Le Shi Zhi Xin Electronic Technology (Tianjin) Limited", "LE-SHI-ZHI-XIN-TIANJIN" }, { 0xE0AA96, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE0AAB0, "SUNTAILI ENTERPRISE CO. LTD,", "SUNTAILI" }, { 0xE0AADB, "Nanjing PANENG Technology Development Co.,Ltd", "NANJING-PANENG-DEVELOPMENT" }, { 0xE0ABFE, "Orb Networks, Inc.", "ORB-NETWORKS" }, { 0xE0ACCB, "Apple, Inc.", "APPLE" }, { 0xE0ACF1, "Cisco Systems, Inc", "CISCO" }, { 0xE0AE5E, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0xE0AEA2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE0AEB2, "Bender GmbH & Co.KG", "BENDER-AMP" }, { 0xE0AEED, "LOENK", "LOENK" }, { 0xE0AF4B, "Pluribus Networks, Inc.", "PLURIBUS-NETWORKS" }, { 0xE0AF4F, "Deutsche Telekom AG", "DEUTSCHE-TELEKOM" }, { 0xE0B260, "TENO NETWORK TECHNOLOGIES COMPANY LIMITED", "TENO-NETWORK-TECHNOLOGIES-COMPANY" }, { 0xE0B2F1, "FN-LINK TECHNOLOGY LIMITED", "FN-LINK" }, { 0xE0B52D, "Apple, Inc.", "APPLE" }, { 0xE0B55F, "Apple, Inc.", "APPLE" }, { 0xE0B655, "Beijing Xiaomi Electronics Co., Ltd.", "BEIJING-XIAOMI-ELECTRONICS" }, { 0xE0B668, "zte corporation", "ZTE" }, { 0xE0B6F5, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xE0B70A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xE0B72E, "ShenZhen Qualmesh Technology Co.,Ltd.", "SHENZHEN-QUALMESH" }, { 0xE0B7B1, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xE0B94D, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0xE0B98A, "Shenzhen Taike industrial automation company,Ltd", "SHENZHEN-TAIKE-INDUSTRIAL-AUTOMATION-COMPANY" }, { 0xE0B9A5, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xE0B9BA, "Apple, Inc.", "APPLE" }, { 0xE0B9E5, "Technicolor Delivery Technologies Belgium NV", "TECHNICOLOR-DELIVERY-TECHNOLOGIES-BELGIUM-NV" }, { 0xE0BAAD, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xE0BAB4, "Arrcus, Inc", "ARRCUS" }, { 0xE0BB0C, "Synertau LLC", "SYNERTAU" }, { 0xE0BB9E, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0xE0BC43, "C2 Microsystems, Inc.", "C2-MICROSYSTEMS" }, { 0xE0BDA0, "Apple, Inc.", "APPLE" }, { 0xE0BE03, "Lite-On Network Communication (Dongguan) Limited", "LITE-ON-NETWORK-COMMUNICATION-DONGGUAN" }, { 0xE0C0D1, "CK Telecom (Shenzhen) Limited", "CK-TELECOM-SHENZHEN" }, { 0xE0C264, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE0C286, "Aisai Communication Technology Co., Ltd.", "AISAI-COMMUNICATION" }, { 0xE0C2B7, "Masimo Corporation", "MASIMO" }, { 0xE0C377, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE0C3F3, "zte corporation", "ZTE" }, { 0xE0C58F, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0xE0C63C, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xE0C6B3, "MilDef AB", "MILDEF-AB" }, { 0xE0C767, "Apple, Inc.", "APPLE" }, { 0xE0C79D, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xE0C86A, "SHENZHEN TW-SCIE Co., Ltd", "SHENZHEN-TW-SCIE" }, { 0xE0C922, "Jireh Energy Tech., Ltd.", "JIREH-ENERGY-TECH" }, { 0xE0C97A, "Apple, Inc.", "APPLE" }, { 0xE0CA3C, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xE0CA4D, "Shenzhen Unistar Communication Co.,LTD", "SHENZHEN-UNISTAR-COMMUNICATION" }, { 0xE0CA94, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xE0CB19, "Nokia", "NOKIA" }, { 0xE0CB1D, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xE0CB4E, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xE0CB56, "Shenzhen iComm Semiconductor CO.,LTD", "SHENZHEN-ICOMM-SEMICONDUCTOR" }, { 0xE0CBBC, "Cisco Meraki", "CISCO-MERAKI" }, { 0xE0CBEE, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE0CC7A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE0CCF8, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xE0CDFD, "Beijing E3Control Technology Co, LTD", "BEIJING-E3CONTROL" }, { 0xE0CEC3, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xE0CF2D, "Gemintek Corporation", "GEMINTEK" }, { 0xE0D045, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE0D083, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE0D10A, "Katoudenkikougyousyo co ltd", "KATOUDENKIKOUGYOUSYO" }, { 0xE0D173, "Cisco Systems, Inc", "CISCO" }, { 0xE0D1E6, "Aliph dba Jawbone", "ALIPH-DBA-JAWBONE" }, { 0xE0D31A, "EQUES Technology Co., Limited", "EQUES" }, { 0xE0D3B4, "Cisco Meraki", "CISCO-MERAKI" }, { 0xE0D462, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE0D464, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE0D4E8, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE0D55E, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0xE0D738, "WireStar Networks", "WIRESTAR-NETWORKS" }, { 0xE0D7BA, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xE0D848, "Dell Inc.", "DELL" }, { 0xE0D8C4, "Qingdao Intelligent&Precise Electronics Co.,Ltd.", "QINGDAO-INTELLIGENT-PRECISE-ELECTRONICS" }, { 0xE0D9A2, "Hippih aps", "HIPPIH-APS" }, { 0xE0D9E3, "Eltex Enterprise Ltd.", "ELTEX" }, { 0xE0DA90, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE0DADC, "JVC KENWOOD Corporation", "JVC-KENWOOD" }, { 0xE0DB10, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE0DB55, "Dell Inc.", "DELL" }, { 0xE0DB88, "Open Standard Digital-IF Interface for SATCOM Systems", "OPEN-STANDARD-DIGITAL-IF-INTERFACE-FOR-SATCOM" }, { 0xE0DBD1, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xE0DCA0, "Siemens Industrial Automation Products Ltd., Chengdu", "SIEMENS-INDUSTRIAL-AUTOMATION-PRODUCTS-CHENGDU" }, { 0xE0DCFF, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xE0DDC0, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xE0DF13, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xE0E0C2, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xE0E0FC, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE0E1A9, "Shenzhen Four Seas Global Link Network Technology Co., Ltd.", "SHENZHEN-FOUR-SEAS-GLOBAL-LINK-NETWORK" }, { 0xE0E2E6, "Espressif Inc.", "ESPRESSIF" }, { 0xE0E37C, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE0E5CF, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xE0E62E, "TCT mobile ltd", "TCT-MOBILE" }, { 0xE0E631, "SNB TECHNOLOGIES LIMITED", "SNB-TECHNOLOGIES" }, { 0xE0E656, "Nethesis srl", "NETHESIS-SRL" }, { 0xE0E751, "Nintendo Co., Ltd.", "NINTENDO" }, { 0xE0E7BB, "Nureva, Inc.", "NUREVA" }, { 0xE0E8BB, "Unicom Vsens Telecommunications Co., Ltd.", "UNICOM-VSENS-TELECOMMUNICATIONS" }, { 0xE0E8E6, "Shenzhen C-Data Technology Co., Ltd.", "SHENZHEN-C-DATA" }, { 0xE0E8E8, "Olive Telecommunication Pvt. Ltd", "OLIVE-TELECOMMUNICATION-PVT" }, { 0xE0EB40, "Apple, Inc.", "APPLE" }, { 0xE0EB62, "Shanghai Hulu Devices Co., Ltd", "SHANGHAI-HULU-DEVICES" }, { 0xE0ED1A, "vastriver Technology Co., Ltd", "VASTRIVER" }, { 0xE0EDC7, "Shenzhen Friendcom Technology Development Co., Ltd", "SHENZHEN-FRIENDCOM-DEVELOPMENT" }, { 0xE0EE1B, "Panasonic Automotive Systems Company of America", "PANASONIC-AUTOMOTIVE-COMPANY-OF-AMERICA" }, { 0xE0EF02, "Chengdu Quanjing Intelligent Technology Co.,Ltd", "CHENGDU-QUANJING-INTELLIGENT" }, { 0xE0EF25, "Lintes Technology Co., Ltd.", "LINTES" }, { 0xE0F211, "Digitalwatt", "DIGITALWATT" }, { 0xE0F318, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xE0F379, "Vaddio", "VADDIO" }, { 0xE0F442, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE0F5C6, "Apple, Inc.", "APPLE" }, { 0xE0F5CA, "CHENG UEI PRECISION INDUSTRY CO.,LTD.", "CHENG-UEI-PRECISION-INDUSTRY" }, { 0xE0F62D, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xE0F678, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xE0F6B5, "Nintendo Co.,Ltd", "NINTENDO" }, { 0xE0F728, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xE0F847, "Apple, Inc.", "APPLE" }, { 0xE0F9BE, "Cloudena Corp.", "CLOUDENA" }, { 0xE0FAEC, "Platan sp. z o.o. sp. k.", "PLATAN-SP-Z-O-O-SP-K" }, { 0xE0FFF1, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xE0FFF7, "Softiron Inc.", "SOFTIRON" }, { 0xE4029B, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE40439, "TomTom Software Ltd", "TOMTOM-SOFTWARE" }, { 0xE405F8, "Bytedance", "BYTEDANCE" }, { 0xE4072B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE408E7, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0xE40CFD, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xE40D36, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE40D3B, "Ericsson AB", "ERICSSON-AB" }, { 0xE40EEE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE41088, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE4115B, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xE41218, "ShenZhen Rapoo Technology Co., Ltd.", "SHENZHEN-RAPOO" }, { 0xE4121D, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE41289, "topsystem GmbH", "TOPSYSTEM" }, { 0xE415F6, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xE417D8, "8BITDO TECHNOLOGY HK LIMITED", "8BITDO-HK" }, { 0xE4186B, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xE419C1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE41A1D, "NOVEA ENERGIES", "NOVEA-ENERGIES" }, { 0xE41A2C, "ZPE Systems, Inc.", "ZPE" }, { 0xE41C4B, "V2 TECHNOLOGY, INC.", "V2" }, { 0xE41D2D, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0xE41E0A, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xE41F13, "IBM Corp", "IBM" }, { 0xE41F7B, "Cisco Systems, Inc", "CISCO" }, { 0xE41FE9, "Dunkermotoren GmbH", "DUNKERMOTOREN" }, { 0xE42150, "Shanghai Chint low voltage electrical technology Co.,Ltd.", "SHANGHAI-CHINT-LOW-VOLTAGE-ELECTRICAL" }, { 0xE422A5, "PLANTRONICS, INC.", "PLANTRONICS" }, { 0xE4233C, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xE42354, "SHENZHEN FUZHI SOFTWARE TECHNOLOGY CO.,LTD", "SHENZHEN-FUZHI-SOFTWARE" }, { 0xE4246C, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0xE425E7, "Apple, Inc.", "APPLE" }, { 0xE425E9, "Color-Chip", "COLOR-CHIP" }, { 0xE42686, "DWnet Technologies(Suzhou) Corporation", "DWNET-TECHNOLOGIES-SUZHOU" }, { 0xE4268B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE426D5, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xE42761, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0xE42771, "Smartlabs", "SMARTLABS" }, { 0xE42805, "Pivotal Optics", "PIVOTAL-OPTICS" }, { 0xE428A4, "Prama India Private Limited", "PRAMA-INDIA-PRIVATE" }, { 0xE4293D, "Shenzhen Sy-Fiber Optical Communication Technology.Co.,Ltd", "SHENZHEN-SY-FIBER-OPTICAL-COMMUNICATION" }, { 0xE42AAC, "Microsoft Corporation", "MICROSOFT" }, { 0xE42AD3, "Magneti Marelli S.p.A. Powertrain", "MAGNETI-MARELLI-S-P-A-POWERTRAIN" }, { 0xE42B34, "Apple, Inc.", "APPLE" }, { 0xE42B79, "Nokia", "NOKIA" }, { 0xE42C56, "Lilee Systems, Ltd.", "LILEE" }, { 0xE42D02, "TCT mobile ltd", "TCT-MOBILE" }, { 0xE42D7B, "China Mobile IOT Company Limited", "CHINA-MOBILE-IOT-COMPANY" }, { 0xE42F26, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xE42F56, "OptoMET GmbH", "OPTOMET" }, { 0xE42FF6, "Unicore communication Inc.", "UNICORE-COMMUNICATION" }, { 0xE43022, "Hanwha Techwin Security Vietnam", "HANWHA-TECHWIN-SECURITY-VIETNAM" }, { 0xE432CB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE433AE, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xE43493, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE43593, "Hangzhou GoTo technology Co.Ltd", "HANGZHOU-GOTO" }, { 0xE435C8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE435FB, "Sabre Technology (Hull) Ltd", "SABRE-HULL" }, { 0xE437D7, "HENRI DEPAEPE S.A.S.", "HENRI-DEPAEPE-S" }, { 0xE43819, "Shenzhen Hi-Link Electronic CO.,Ltd.", "SHENZHEN-HI-LINK" }, { 0xE4387E, "Cisco Systems, Inc", "CISCO" }, { 0xE43883, "Ubiquiti Inc", "UBIQUITI" }, { 0xE4388C, "Digital Products Limited", "DIGITAL-PRODUCTS" }, { 0xE438F2, "Advantage Controls", "ADVANTAGE-CONTROLS" }, { 0xE43A65, "MofiNetwork Inc", "MOFINETWORK" }, { 0xE43A6E, "Shenzhen Zeroone Technology CO.,LTD", "SHENZHEN-ZEROONE" }, { 0xE43BC9, "HISENSE VISUAL TECHNOLOGY CO.,LTD", "HISENSE-VISUAL" }, { 0xE43C80, "University of Oklahoma", "UNIVERSITY-OF-OKLAHOMA" }, { 0xE43D1A, "Broadcom Limited", "BROADCOM" }, { 0xE43EC6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE43ED7, "Arcadyan Corporation", "ARCADYAN" }, { 0xE43FA2, "Wuxi DSP Technologies Inc.", "WUXI-DSP-TECHNOLOGIES" }, { 0xE44097, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xE440E2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE44122, "OnePlus Technology (Shenzhen) Co., Ltd", "ONEPLUS-SHENZHEN" }, { 0xE44164, "Nokia", "NOKIA" }, { 0xE441E6, "Ottec Technology GmbH", "OTTEC" }, { 0xE442A6, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE4434B, "Dell Inc.", "DELL" }, { 0xE444E5, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xE44519, "Beijing Xiaomi Electronics Co.,Ltd", "BEIJING-XIAOMI-ELECTRONICS" }, { 0xE446B0, "Fujitsu Client Computing Limited", "FUJITSU-CLIENT-COMPUTING" }, { 0xE446BD, "C&C TECHNIC TAIWAN CO., LTD.", "C-C-TECHNIC-TAIWAN" }, { 0xE446DA, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xE44790, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xE44791, "Iris ID Systems, Inc.", "IRIS-ID" }, { 0xE447B3, "zte corporation", "ZTE" }, { 0xE448C7, "Cisco SPVTG", "CISCO-SPVTG" }, { 0xE44C6C, "Shenzhen Guo Wei Electronic Co,. Ltd.", "SHENZHEN-GUO-WEI" }, { 0xE44CC7, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xE44E18, "Gardasoft VisionLimited", "GARDASOFT-VISIONLIMITED" }, { 0xE44E2D, "Cisco Systems, Inc", "CISCO" }, { 0xE44E76, "CHAMPIONTECH ENTERPRISE (SHENZHEN) INC", "CHAMPIONTECH-SHENZHEN" }, { 0xE44F29, "MA Lighting Technology GmbH", "MA-LIGHTING" }, { 0xE44F5F, "EDS Elektronik Destek San.Tic.Ltd.Sti", "EDS-ELEKTRONIK-DESTEK-SAN-TIC-STI" }, { 0xE4509A, "HW Communications Ltd", "HW-COMMUNICATION" }, { 0xE450EB, "Apple, Inc.", "APPLE" }, { 0xE4521E, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xE454E8, "Dell Inc.", "DELL" }, { 0xE455A8, "Cisco Meraki", "CISCO-MERAKI" }, { 0xE455EA, "Dedicated Computing", "DEDICATED-COMPUTING" }, { 0xE45614, "Suttle Apparatus", "SUTTLE-APPARATUS" }, { 0xE45740, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xE457A8, "Stuart Manufacturing, Inc.", "STUART-MANUFACTURING" }, { 0xE458B8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE458E7, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE45AA2, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xE45AD4, "Eltex Enterprise Ltd.", "ELTEX" }, { 0xE45D37, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xE45D51, "SFR", "SFR" }, { 0xE45D52, "Avaya Inc", "AVAYA" }, { 0xE45D75, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE45E1B, "Google, Inc.", "GOOGLE" }, { 0xE45E37, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE45F01, "Raspberry Pi Trading Ltd", "RASPBERRY-PI-TRADING" }, { 0xE46017, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE46059, "Pingtek Co., Ltd.", "PINGTEK" }, { 0xE46251, "HAO CHENG GROUP LIMITED", "HAO-CHENG-GROUP" }, { 0xE462C4, "Cisco Systems, Inc", "CISCO" }, { 0xE46449, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xE46564, "SHENZHEN KTC TECHNOLOGY CO.,LTD", "SHENZHEN-KTC" }, { 0xE465B8, "Espressif Inc.", "ESPRESSIF" }, { 0xE466AB, "zte corporation", "ZTE" }, { 0xE4671E, "SHEN ZHEN NUO XIN CHENG TECHNOLOGY co., Ltd.", "SHEN-ZHEN-NUO-XIN-CHENG" }, { 0xE467BA, "Danish Interpretation Systems A/S", "DANISH-INTERPRETATION-A/S" }, { 0xE468A3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE4695A, "Dictum Health, Inc.", "DICTUM-HEALTH" }, { 0xE46A35, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xE46C21, "messMa GmbH", "MESSMA" }, { 0xE46CD1, "Calix Inc.", "CALIX" }, { 0xE46D7F, "Ciena Corporation", "CIENA" }, { 0xE46F13, "D-Link International", "D-LINK" }, { 0xE470B8, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE47185, "Securifi Ltd", "SECURIFI" }, { 0xE472E2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE47305, "Shenzhen INVT Electric CO.,Ltd", "SHENZHEN-INVT-ELECTRIC" }, { 0xE4751E, "Getinge Sterilization AB", "GETINGE-STERILIZATION-AB" }, { 0xE475DC, "Arcadyan Corporation", "ARCADYAN" }, { 0xE47684, "Apple, Inc.", "APPLE" }, { 0xE47723, "zte corporation", "ZTE" }, { 0xE47727, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE4776B, "AARTESYS AG", "AARTESYS" }, { 0xE477D4, "Minrray Industry Co.,Ltd", "MINRRAY-INDUSTRY" }, { 0xE47876, "Arista Networks", "ARISTA-NETWORKS" }, { 0xE47B3F, "BEIJING CO-CLOUD TECHNOLOGY LTD.", "BEIJING-CLOUD" }, { 0xE47C65, "Sunstar Communication Technology Co., Ltd", "SUNSTAR-COMMUNICATION" }, { 0xE47CF9, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE47D5A, "Beijing Hanbang Technology Corp.", "BEIJING-HANBANG" }, { 0xE47DBD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE47DEB, "Shanghai Notion Information Technology CO.,LTD.", "SHANGHAI-NOTION-INFORMATION" }, { 0xE47E66, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE47E9A, "zte corporation", "ZTE" }, { 0xE47FB2, "FUJITSU LIMITED", "FUJITSU" }, { 0xE48184, "Nokia", "NOKIA" }, { 0xE481B3, "Shenzhen ACT Industrial Co.,Ltd.", "SHENZHEN-ACT-INDUSTRIAL" }, { 0xE48210, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE482CC, "Jumptronic GmbH", "JUMPTRONIC" }, { 0xE48326, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE48399, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xE4842B, "HANGZHOU SOFTEL OPTIC CO., LTD", "HANGZHOU-SOFTEL-OPTIC" }, { 0xE484D3, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xE48501, "Geberit International AG", "GEBERIT" }, { 0xE48AD5, "RF WINDOW CO., LTD.", "RF-WINDOW" }, { 0xE48B7F, "Apple, Inc.", "APPLE" }, { 0xE48C0F, "Discovery Insure", "DISCOVERY-INSURE" }, { 0xE48C73, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xE48D8C, "Routerboard.com", "ROUTERBOARD-COM" }, { 0xE48E10, "CIG SHANGHAI CO LTD", "CIG-SHANGHAI" }, { 0xE48EBB, "Rockwell Automation", "ROCKWELL-AUTOMATION" }, { 0xE48F1D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE48F34, "Vodafone Italia S.p.A.", "VODAFONE-ITALIA" }, { 0xE48F65, "Yelatma Instrument Making Enterprise, JSC", "YELATMA-INSTRUMENT-MAKING-JSC" }, { 0xE4902A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE49069, "Rockwell Automation", "ROCKWELL-AUTOMATION" }, { 0xE4907E, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xE490FD, "Apple, Inc.", "APPLE" }, { 0xE4922A, "DBG HOLDINGS LIMITED", "DBG-HOLDINGS" }, { 0xE492E7, "Gridlink Tech. Co.,Ltd.", "GRIDLINK-TECH" }, { 0xE492FB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE4936A, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xE4956E, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xE496AE, "ALTOGRAPHICS Inc.", "ALTOGRAPHICS" }, { 0xE497F0, "Shanghai VLC Technologies Ltd. Co.", "SHANGHAI-VLC-TECHNOLOGIES" }, { 0xE498BB, "Phyplus Microelectronics Limited", "PHYPLUS-MICROELECTRONICS" }, { 0xE498D1, "Microsoft Mobile Oy", "MICROSOFT-MOBILE-OY" }, { 0xE498D6, "Apple, Inc.", "APPLE" }, { 0xE49A79, "Apple, Inc.", "APPLE" }, { 0xE49ADC, "Apple, Inc.", "APPLE" }, { 0xE49C67, "Apple, Inc.", "APPLE" }, { 0xE49D73, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0xE49E12, "FREEBOX SAS", "FREEBOX-SAS" }, { 0xE49F1E, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xE4A1E6, "Alcatel-Lucent Shanghai Bell Co., Ltd", "ALCATEL-LUCENT-SHANGHAI-BELL" }, { 0xE4A32F, "Shanghai Artimen Technology Co., Ltd.", "SHANGHAI-ARTIMEN" }, { 0xE4A387, "Control Solutions LLC", "CONTROL-SOLUTIONS" }, { 0xE4A41C, "Cisco Systems, Inc", "CISCO" }, { 0xE4A471, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE4A5EF, "TRON LINK ELECTRONICS CO., LTD.", "TRON-LINK-ELECTRONICS" }, { 0xE4A634, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0xE4A749, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0xE4A7A0, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE4A7C5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE4A7FD, "Cellco Partnership", "CELLCO-PARTNERSHIP" }, { 0xE4A8B6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE4A8DF, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0xE4AA5D, "Cisco Systems, Inc", "CISCO" }, { 0xE4AAEA, "Liteon Technology Corporation", "LITEON" }, { 0xE4AAEC, "Tianjin Hualai Technology Co., Ltd", "TIANJIN-HUALAI" }, { 0xE4AB46, "UAB Selteka", "UAB-SELTEKA" }, { 0xE4AB89, "MitraStar Technology Corp.", "MITRASTAR" }, { 0xE4AD7D, "SCL Elements", "SCL-ELEMENTS" }, { 0xE4AFA1, "HES-SO", "HES-SO" }, { 0xE4B005, "Beijing IQIYI Science & Technology Co., Ltd.", "BEIJING-IQIYI-SCIENCE" }, { 0xE4B021, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE4B224, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE4B2FB, "Apple, Inc.", "APPLE" }, { 0xE4B318, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE4B503, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xE4B555, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE4B633, "Wuxi Stars Microsystem Technology Co., Ltd", "WUXI-STARS-MICROSYSTEM" }, { 0xE4B97A, "Dell Inc.", "DELL" }, { 0xE4BAD9, "360 Fly Inc.", "360-FLY" }, { 0xE4BC96, "DAP B.V.", "DAP-B-V" }, { 0xE4BCAA, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xE4BD4B, "zte corporation", "ZTE" }, { 0xE4BEED, "Netcore Technology Inc.", "NETCORE" }, { 0xE4BEFB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE4BFFA, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xE4C0CC, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xE4C0E2, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xE4C146, "Objetivos y Servicios de Valor A", "OBJETIVOS-Y-SERVICIOS-DE-VALOR-A" }, { 0xE4C1F1, "SHENZHEN SPOTMAU INFORMATION TECHNOLIGY CO., Ltd", "SHENZHEN-SPOTMAU-INFORMATION-TECHNOLIGY" }, { 0xE4C2D1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE4C32A, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xE4C483, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xE4C62B, "Airware", "AIRWARE" }, { 0xE4C63D, "Apple, Inc.", "APPLE" }, { 0xE4C6E6, "Mophie, LLC", "MOPHIE" }, { 0xE4C722, "Cisco Systems, Inc", "CISCO" }, { 0xE4C801, "BLU Products Inc", "BLU-PRODUCTS" }, { 0xE4C806, "Ceiec Electric Technology Inc.", "CEIEC-ELECTRIC" }, { 0xE4C90B, "Radwin", "RADWIN" }, { 0xE4CA12, "zte corporation", "ZTE" }, { 0xE4CB59, "Beijing Loveair Science and Technology Co. Ltd.", "BEIJING-LOVEAIR-SCIENCE" }, { 0xE4CC9D, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xE4CE02, "WyreStorm Technologies Ltd", "WYRESTORM-TECHNOLOGIES" }, { 0xE4CE70, "Health & Life co., Ltd.", "HEALTH-LIFE" }, { 0xE4CE8F, "Apple, Inc.", "APPLE" }, { 0xE4D124, "Mojo Networks, Inc.", "MOJO-NETWORKS" }, { 0xE4D332, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xE4D373, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE4D3AA, "FCNT LMITED", "FCNT-LMITED" }, { 0xE4D3F1, "Cisco Systems, Inc", "CISCO" }, { 0xE4D53D, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xE4D71D, "Oraya Therapeutics", "ORAYA-THERAPEUTICS" }, { 0xE4DADF, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xE4DB6D, "Beijing Xiaomi Electronics Co., Ltd.", "BEIJING-XIAOMI-ELECTRONICS" }, { 0xE4DBAE, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xE4DC43, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE4DC5F, "Cofractal, Inc.", "COFRACTAL" }, { 0xE4DCCC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE4DD79, "En-Vision America, Inc.", "EN-VISION-AMERICA" }, { 0xE4DE40, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xE4E0A6, "Apple, Inc.", "APPLE" }, { 0xE4E0C5, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE4E112, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xE4E130, "TCT mobile ltd", "TCT-MOBILE" }, { 0xE4E409, "LEIFHEIT AG", "LEIFHEIT" }, { 0xE4E4AB, "Apple, Inc.", "APPLE" }, { 0xE4E749, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xE4EA83, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0xE4EC10, "Nokia Corporation", "NOKIA" }, { 0xE4ECE8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE4EEFD, "MR&D Manufacturing", "MR-D-MANUFACTURING" }, { 0xE4F004, "Dell Inc.", "DELL" }, { 0xE4F042, "Google, Inc.", "GOOGLE" }, { 0xE4F14C, "Private", "PRIVATE" }, { 0xE4F1D4, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xE4F327, "ATOL LLC", "ATOL" }, { 0xE4F365, "Time-O-Matic, Inc.", "TIME-O-MATIC" }, { 0xE4F3C4, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE4F3E3, "Shanghai iComhome Co.,Ltd.", "SHANGHAI-ICOMHOME" }, { 0xE4F3E8, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0xE4F3F5, "SHENZHEN MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "SHENZHEN-MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0xE4F4C6, "NETGEAR", "NETGEAR" }, { 0xE4F75B, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xE4F7A1, "Datafox GmbH", "DATAFOX" }, { 0xE4F89C, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE4F8EF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE4F939, "Minxon Hotel Technology INC.", "MINXON-HOTEL" }, { 0xE4FA1D, "PAD Peripheral Advanced Design Inc.", "PAD-PERIPHERAL-ADVANCED-DESIGN" }, { 0xE4FAC4, "Big Field Global PTE. Ltd.", "BIG-FIELD-GLOBAL-PTE" }, { 0xE4FAED, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE4FAFD, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE4FB5D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE4FB8F, "MOBIWIRE MOBILES (NINGBO) CO.,LTD", "MOBIWIRE-MOBILES-NINGBO" }, { 0xE4FC82, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xE4FD45, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE4FDA1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE4FED9, "EDMI Europe Ltd", "EDMI-EUROPE" }, { 0xE4FFDD, "ELECTRON INDIA", "ELECTRON-INDIA" }, { 0xE80036, "Befs co,. ltd", "BEFS" }, { 0xE80115, "COOCAA Network Technology CO.,TD.", "COOCAA-NETWORK-TD" }, { 0xE8018D, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xE8039A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE8040B, "Apple, Inc.", "APPLE" }, { 0xE80410, "Private", "PRIVATE" }, { 0xE80462, "Cisco Systems, Inc", "CISCO" }, { 0xE804F3, "Throughtek Co., Ltd.", "THROUGHTEK" }, { 0xE8056D, "Nortel Networks", "NORTEL-NETWORKS" }, { 0xE805DC, "Verifone Inc.", "VERIFONE" }, { 0xE80688, "Apple, Inc.", "APPLE" }, { 0xE80734, "Champion Optical Network Engineering, LLC", "CHAMPION-OPTICAL-NETWORK-ENGINEERING" }, { 0xE807BF, "SHENZHEN BOOMTECH INDUSTRY CO.,LTD", "SHENZHEN-BOOMTECH-INDUSTRY" }, { 0xE8088B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE80945, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xE80959, "Guoguang Electric Co.,Ltd", "GUOGUANG-ELECTRIC" }, { 0xE80AEC, "Jiangsu Hengtong Optic-Electric Co., LTD", "JIANGSU-HENGTONG-OPTIC-ELECTRIC" }, { 0xE80B13, "Akib Systems Taiwan, INC", "AKIB-TAIWAN" }, { 0xE80C38, "DAEYOUNG INFORMATION SYSTEM CO., LTD", "DAEYOUNG-INFORMATION-SYSTEM" }, { 0xE80C75, "Syncbak, Inc.", "SYNCBAK" }, { 0xE80FC8, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0xE8102E, "Really Simple Software, Inc", "REALLY-SIMPLE-SOFTWARE" }, { 0xE81098, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xE81132, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE811CA, "SHANDONG KAER ELECTRIC.CO.,LTD", "SHANDONG-KAER-ELECTRIC" }, { 0xE81324, "GuangZhou Bonsoninfo System CO.,LTD", "GUANGZHOU-BONSONINFO-SYSTEM" }, { 0xE81363, "Comstock RD, Inc.", "COMSTOCK-RD" }, { 0xE81367, "AIRSOUND Inc.", "AIRSOUND" }, { 0xE8136E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE8150E, "Nokia Corporation", "NOKIA" }, { 0xE8162B, "IDEO Security Co., Ltd.", "IDEO-SECURITY" }, { 0xE81656, "Hangzhou BroadLink Technology Co.,Ltd", "HANGZHOU-BROADLINK" }, { 0xE817FC, "Fujitsu Cloud Technologies Limited", "FUJITSU-CLOUD-TECHNOLOGIES" }, { 0xE81863, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xE81A58, "TECHNOLOGIC SYSTEMS", "TECHNOLOGIC" }, { 0xE81AAC, "ORFEO SOUNDWORKS Inc.", "ORFEO-SOUNDWORKS" }, { 0xE81B4B, "amnimo Inc.", "AMNIMO" }, { 0xE81B69, "Sercomm Corporation.", "SERCOMM" }, { 0xE81CBA, "Fortinet, Inc.", "FORTINET" }, { 0xE81CD8, "Apple, Inc.", "APPLE" }, { 0xE81DA8, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xE81E92, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE820E2, "HUMAX Co., Ltd.", "HUMAX" }, { 0xE82404, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0xE824A6, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xE82689, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xE8268D, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0xE826B6, "Companies House to GlucoRx Technologies Ltd.", "COMPANIES-HOUSE-TO-GLUCORX-TECHNOLOGIES" }, { 0xE82877, "TMY Co., Ltd.", "TMY" }, { 0xE828C1, "Eltex Enterprise Ltd.", "ELTEX" }, { 0xE828D5, "Cots Technology", "COTS" }, { 0xE82A44, "Liteon Technology Corporation", "LITEON" }, { 0xE82AEA, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE82C6D, "SmartRG, Inc.", "SMARTRG" }, { 0xE82E0C, "NETINT Technologies Inc.", "NETINT-TECHNOLOGIES" }, { 0xE82E24, "Out of the Fog Research LLC", "OUT-OF-THE-FOG-RESEARCH" }, { 0xE831CD, "Espressif Inc.", "ESPRESSIF" }, { 0xE8330D, "Xaptec GmbH", "XAPTEC" }, { 0xE83381, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xE8343E, "Beijing Infosec Technologies Co., LTD.", "BEIJING-INFOSEC-TECHNOLOGIES" }, { 0xE83617, "Apple, Inc.", "APPLE" }, { 0xE8361D, "Sense Labs, Inc.", "SENSE-LABS" }, { 0xE8377A, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xE838A0, "Vizio, Inc", "VIZIO" }, { 0xE83935, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xE839DF, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xE83A12, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE83A4B, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xE83A97, "Toshiba Corporation", "TOSHIBA" }, { 0xE83EB6, "RIM", "RIM" }, { 0xE83EFB, "GEODESIC LTD.", "GEODESIC" }, { 0xE83EFC, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xE83F67, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE84040, "Cisco Systems, Inc", "CISCO" }, { 0xE840F2, "PEGATRON CORPORATION", "PEGATRON" }, { 0xE84368, "zte corporation", "ZTE" }, { 0xE843B6, "QNAP Systems, Inc.", "QNAP" }, { 0xE8447E, "Bitdefender SRL", "BITDEFENDER-SRL" }, { 0xE84727, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0xE8473A, "Hon Hai Precision Industry Co.,LTD", "HON-HAI-PRECISION-INDUSTRY" }, { 0xE8481F, "Advanced Automotive Antennas", "ADVANCED-AUTOMOTIVE-ANTENNAS" }, { 0xE848B8, "TP-Link Corporation Limited", "TP-LINK" }, { 0xE84943, "YUGE Information technology Co. Ltd", "YUGE-INFORMATION" }, { 0xE84C4A, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xE84C56, "INTERCEPT SERVICES LIMITED", "INTERCEPT-SERVICES" }, { 0xE84D74, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE84DD0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE84DEC, "Xerox Corporation", "XEROX" }, { 0xE84E06, "EDUP INTERNATIONAL (HK) CO., LTD", "EDUP-HK" }, { 0xE84E84, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE84ECE, "Nintendo Co., Ltd.", "NINTENDO" }, { 0xE84F25, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xE84F4B, "Shenzhen Delos Electronic Co., Ltd", "SHENZHEN-DELOS" }, { 0xE84FA7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE8508B, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xE8516E, "TSMART Inc.", "TSMART" }, { 0xE85177, "Qingdao Intelligent&Precise Electronics Co.,Ltd.", "QINGDAO-INTELLIGENT-PRECISE-ELECTRONICS" }, { 0xE8519D, "Yeonhab Precision Co.,LTD", "YEONHAB-PRECISION" }, { 0xE85484, "NEO Information Systems Co., Ltd.", "NEO-INFORMATION" }, { 0xE855B4, "SAI Technology Inc.", "SAI" }, { 0xE85659, "Advanced-Connectek Inc.", "ADVANCED-CONNECTEK" }, { 0xE856D6, "NCTech Ltd", "NCTECH" }, { 0xE85A8B, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xE85AA7, "LLC Emzior", "LLC-EMZIOR" }, { 0xE85AD1, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xE85B5B, "LG ELECTRONICS INC", "LG-ELECTRONICS" }, { 0xE85BB7, "Ample Systems Inc.", "AMPLE" }, { 0xE85BF0, "Imaging Diagnostics", "IMAGING-DIAGNOSTICS" }, { 0xE85C0A, "Cisco Systems, Inc", "CISCO" }, { 0xE85D6B, "Luminate Wireless", "LUMINATE-WIRELESS" }, { 0xE85D86, "CHANG YOW TECHNOLOGIES INTERNATIONAL CO.,LTD.", "CHANG-YOW-TECHNOLOGIES" }, { 0xE85E53, "Infratec Datentechnik GmbH", "INFRATEC-DATENTECHNIK" }, { 0xE85F02, "Apple, Inc.", "APPLE" }, { 0xE8611F, "Dawning Information Industry Co.,Ltd", "DAWNING-INFORMATION-INDUSTRY" }, { 0xE8617E, "Liteon Technology Corporation", "LITEON" }, { 0xE86183, "Black Diamond Advanced Technology, LLC", "BLACK-DIAMOND-ADVANCED" }, { 0xE861BE, "Melec Inc.", "MELEC" }, { 0xE86538, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0xE86549, "Cisco Systems, Inc", "CISCO" }, { 0xE8655F, "Dell Inc.", "DELL" }, { 0xE865D4, "Tenda Technology Co.,Ltd.Dongguan branch", "TENDA-DONGGUAN-BRANCH" }, { 0xE866C4, "Diamanti", "DIAMANTI" }, { 0xE86819, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE868E7, "Espressif Inc.", "ESPRESSIF" }, { 0xE86A64, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0xE86BEA, "Espressif Inc.", "ESPRESSIF" }, { 0xE86CC7, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xE86CDA, "Supercomputers and Neurocomputers Research Center", "SUPERCOMPUTERS-AND-NEUROCOMPUTERS-RESEARCH-CENTER" }, { 0xE86D52, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xE86D54, "Digit Mobile Inc", "DIGIT-MOBILE" }, { 0xE86D65, "AUDIO MOBIL Elektronik GmbH", "AUDIO-MOBIL-ELEKTRONIK" }, { 0xE86D6E, "voestalpine Signaling UK Ltd.", "VOESTALPINE-SIGNALING-UK" }, { 0xE86DCB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE86DE9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE86E3A, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0xE86E44, "zte corporation", "ZTE" }, { 0xE86F38, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0xE86FF2, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0xE87072, "Hangzhou BroadLink Technology Co.,Ltd", "HANGZHOU-BROADLINK" }, { 0xE8718D, "Elsys Equipamentos Eletronicos Ltda", "ELSYS-EQUIPAMENTOS-ELETRONICOS-LTDA" }, { 0xE874C7, "Sentinhealth", "SENTINHEALTH" }, { 0xE874E6, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0xE8757F, "FIRS Technologies(Shenzhen) Co., Ltd", "FIRS-TECHNOLOGIES-SHENZHEN" }, { 0xE87640, "SKY UK LIMITED", "SKY-UK" }, { 0xE87829, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xE87865, "Apple, Inc.", "APPLE" }, { 0xE878A1, "BEOVIEW INTERCOM DOO", "BEOVIEW-INTERCOM-DOO" }, { 0xE878EE, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xE87AF3, "S5 Tech S.r.l.", "S5-TECH" }, { 0xE87F6B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE87F95, "Apple, Inc.", "APPLE" }, { 0xE8802E, "Apple, Inc.", "APPLE" }, { 0xE88088, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0xE880D8, "GNTEK Electronics Co.,Ltd.", "GNTEK-ELECTRONICS" }, { 0xE88152, "Apple, Inc.", "APPLE" }, { 0xE88175, "zte corporation", "ZTE" }, { 0xE881AB, "Beijing Sankuai Online Technology Co.,Ltd", "BEIJING-SANKUAI-ONLINE" }, { 0xE8825B, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xE884A5, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE884C6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE8854B, "Apple, Inc.", "APPLE" }, { 0xE886CF, "Nokia", "NOKIA" }, { 0xE887A3, "Loxley Public Company Limited", "LOXLEY-PUBLIC-COMPANY" }, { 0xE88843, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xE8886C, "Shenzhen SC Technologies Co.,LTD", "SHENZHEN-SC-TECHNOLOGIES" }, { 0xE8892C, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xE88D28, "Apple, Inc.", "APPLE" }, { 0xE88DA6, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0xE88DF5, "ZNYX Networks, Inc.", "ZNYX-NETWORKS" }, { 0xE88E60, "NSD Corporation", "NSD" }, { 0xE88F6F, "TCT mobile ltd", "TCT-MOBILE" }, { 0xE88FC4, "MOBIWIRE MOBILES(NINGBO) CO.,LTD", "MOBIWIRE-MOBILES-NINGBO" }, { 0xE8910F, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xE89120, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xE89218, "Arcontia International AB", "ARCONTIA-AB" }, { 0xE892A4, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xE89309, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE89363, "Nokia", "NOKIA" }, { 0xE893F3, "Graphiant Inc", "GRAPHIANT" }, { 0xE8944C, "Cogent Healthcare Systems Ltd", "COGENT-HEALTHCARE" }, { 0xE894F6, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xE89526, "Luxshare Precision Industry CO., LTD.", "LUXSHARE-PRECISION-INDUSTRY" }, { 0xE89606, "testo Instruments (Shenzhen) Co., Ltd.", "TESTO-INSTRUMENTS-SHENZHEN" }, { 0xE8979A, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0xE897B8, "Chiun Mai Communication System, Inc", "CHIUN-MAI-COMMUNICATION-SYSTEM" }, { 0xE8986D, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0xE898C2, "ZETLAB Company", "ZETLAB-COMPANY" }, { 0xE8995A, "PiiGAB, Processinformation i Goteborg AB", "PIIGAB-PROCESSINFORMATION-I-GOTEBORG-AB" }, { 0xE899C4, "HTC Corporation", "HTC" }, { 0xE89A8F, "Quanta Computer Inc.", "QUANTA" }, { 0xE89AFF, "Fujian LANDI Commercial Equipment Co.,Ltd", "FUJIAN-LANDI-COMMERCIAL-EQUIPMENT" }, { 0xE89C25, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xE89D87, "Toshiba", "TOSHIBA" }, { 0xE89E0C, "MAX8USA DISTRIBUTORS INC.", "MAX8USA-DISTRIBUTORS" }, { 0xE89EB4, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xE89F39, "Nokia", "NOKIA" }, { 0xE89F6D, "Espressif Inc.", "ESPRESSIF" }, { 0xE89F80, "Belkin International Inc.", "BELKIN" }, { 0xE89FEC, "CHENGDU KT ELECTRONIC HI-TECH CO.,LTD", "CHENGDU-KT-HI-TECH" }, { 0xE8A0CD, "Nintendo Co.,Ltd", "NINTENDO" }, { 0xE8A0ED, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xE8A1F8, "zte corporation", "ZTE" }, { 0xE8A245, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xE8A34E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE8A364, "Signal Path International / Peachtree Audio", "SIGNAL-PATH-/-PEACHTREE-AUDIO" }, { 0xE8A4C1, "Deep Sea Electronics Ltd", "DEEP-SEA-ELECTRONICS" }, { 0xE8A660, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE8A6CA, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE8A72F, "Microsoft Corporation", "MICROSOFT" }, { 0xE8A730, "Apple, Inc.", "APPLE" }, { 0xE8A788, "XIAMEN LEELEN TECHNOLOGY CO., LTD", "XIAMEN-LEELEN" }, { 0xE8A7F2, "sTraffic", "STRAFFIC" }, { 0xE8AACB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE8ABF3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE8ABFA, "Shenzhen Reecam Tech.Ltd.", "SHENZHEN-REECAM-TECH" }, { 0xE8AC23, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE8ACAD, "zte corporation", "ZTE" }, { 0xE8ADA6, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xE8AEC5, "Arista Networks", "ARISTA-NETWORKS" }, { 0xE8B1FC, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE8B265, "Dell Inc.", "DELL" }, { 0xE8B2AC, "Apple, Inc.", "APPLE" }, { 0xE8B2FE, "HUMAX Co., Ltd.", "HUMAX" }, { 0xE8B3EF, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xE8B470, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xE8B4AE, "Shenzhen C&D Electronics Co.,Ltd", "SHENZHEN-C-D-ELECTRONICS" }, { 0xE8B4C8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE8B541, "zte corporation", "ZTE" }, { 0xE8B5D0, "Dell Inc.", "DELL" }, { 0xE8B6C2, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xE8B748, "Cisco Systems, Inc", "CISCO" }, { 0xE8BA70, "Cisco Systems, Inc", "CISCO" }, { 0xE8BAE2, "Xplora Technologies AS", "XPLORA-TECHNOLOGIES-AS" }, { 0xE8BB3D, "Sino Prime-Tech Limited", "SINO-PRIME-TECH" }, { 0xE8BBA8, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xE8BDD1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE8BE81, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xE8BFDB, "Inodesign Group", "INODESIGN-GROUP" }, { 0xE8C1B8, "Nanjing Bangzhong Electronic Commerce Limited", "NANJING-BANGZHONG-COMMERCE" }, { 0xE8C1D7, "Philips", "PHILIPS" }, { 0xE8C1E8, "Shenzhen Xiao Bi En Culture Education Technology Co.,Ltd.", "SHENZHEN-XIAO-BI-EN-CULTURE-EDUCATION" }, { 0xE8C229, "H-Displays (MSC) Bhd", "H-DISPLAYS-MSC" }, { 0xE8C2DD, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0xE8C320, "Austco Marketing & Service (USA) ltd.", "AUSTCO-MARKETING-SERVICE-USA" }, { 0xE8C417, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xE8C57A, "Ufispace Co., LTD.", "UFISPACE" }, { 0xE8C74F, "Liteon Technology Corporation", "LITEON" }, { 0xE8C7CF, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0xE8CAC8, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0xE8CBA1, "Nokia Corporation", "NOKIA" }, { 0xE8CBED, "Chipsea Technologies(Shenzhen) Corp.", "CHIPSEA-TECHNOLOGIES-SHENZHEN" }, { 0xE8CC18, "D-Link International", "D-LINK" }, { 0xE8CC32, "Micronet LTD", "MICRONET" }, { 0xE8CC8C, "Chengdu Jiarui Hualian Communication Technology Co", "CHENGDU-JIARUI-HUALIAN-COMMUNICATION" }, { 0xE8CD2D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE8CE06, "SkyHawke Technologies, LLC.", "SKYHAWKE-TECHNOLOGIES" }, { 0xE8D03C, "Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd", "SHENZHEN-JINGXUN-SOFTWARE-TELECOMMUNICATION" }, { 0xE8D099, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xE8D0B9, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xE8D0FA, "MKS Instruments Deutschland GmbH", "MKS-INSTRUMENTS-DEUTSCHLAND" }, { 0xE8D0FC, "Liteon Technology Corporation", "LITEON" }, { 0xE8D11B, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xE8D2FF, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xE8D322, "Cisco Systems, Inc", "CISCO" }, { 0xE8D483, "ULTIMATE Europe Transportation Equipment GmbH", "ULTIMATE-EUROPE-TRANSPORTATION-EQUIPMENT" }, { 0xE8D4E0, "Beijing BenyWave Technology Co., Ltd.", "BEIJING-BENYWAVE" }, { 0xE8D52B, "Google, Inc.", "GOOGLE" }, { 0xE8D765, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE8D775, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE8D819, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xE8D87E, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xE8D8D1, "HP Inc.", "HP" }, { 0xE8DA00, "Kivo Technology, Inc.", "KIVO" }, { 0xE8DA20, "Nintendo Co.,Ltd", "NINTENDO" }, { 0xE8DA96, "Zhuhai Tianrui Electrical Power Tech. Co., Ltd.", "ZHUHAI-TIANRUI-ELECTRICAL-POWER-TECH" }, { 0xE8DAAA, "VideoHome Technology Corp.", "VIDEOHOME" }, { 0xE8DB84, "Espressif Inc.", "ESPRESSIF" }, { 0xE8DC6C, "Cisco Systems, Inc", "CISCO" }, { 0xE8DE00, "ChongQing GuanFang Technology Co.,LTD", "CHONGQING-GUANFANG" }, { 0xE8DE27, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xE8DE8E, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xE8DED6, "Intrising Networks, Inc.", "INTRISING-NETWORKS" }, { 0xE8DEFB, "MESOTIC SAS", "MESOTIC-SAS" }, { 0xE8DF70, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0xE8DFF2, "PRF Co., Ltd.", "PRF" }, { 0xE8E07E, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xE8E08F, "GRAVOTECH MARKING SAS", "GRAVOTECH-MARKING-SAS" }, { 0xE8E0B7, "Toshiba", "TOSHIBA" }, { 0xE8E1E1, "Gemtek Technology Co., Ltd.", "GEMTEK" }, { 0xE8E1E2, "Energotest", "ENERGOTEST" }, { 0xE8E5D6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xE8E732, "Alcatel-Lucent Enterprise", "ALCATEL-LUCENT" }, { 0xE8E770, "Warp9 Tech Design, Inc.", "WARP9-TECH-DESIGN" }, { 0xE8E776, "Shenzhen Kootion Technology Co., Ltd", "SHENZHEN-KOOTION" }, { 0xE8E875, "iS5 Communications Inc.", "IS5-COMMUNICATION" }, { 0xE8E8B7, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xE8E98E, "SOLAR controls s.r.o.", "SOLAR-CONTROLS-S-R-O" }, { 0xE8EA4D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE8EA6A, "StarTech.com", "STARTECH-COM" }, { 0xE8EADA, "Denkovi Assembly Electronics LTD", "DENKOVI-ASSEMBLY-ELECTRONICS" }, { 0xE8EB11, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xE8EB1B, "Microchip Technology Inc.", "MICROCHIP" }, { 0xE8EB34, "Cisco Systems, Inc", "CISCO" }, { 0xE8EBD3, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0xE8EBDD, "Guangzhou Qingying Acoustics Technology Co., Ltd", "GUANGZHOU-QINGYING-ACOUSTICS" }, { 0xE8ECA3, "Dongguan Liesheng Electronic Co.Ltd", "DONGGUAN-LIESHENG" }, { 0xE8ED05, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xE8EDD6, "Fortinet, Inc.", "FORTINET" }, { 0xE8EDF3, "Cisco Systems, Inc", "CISCO" }, { 0xE8EECC, "Fantasia Trading LLC", "FANTASIA-TRADING" }, { 0xE8EF05, "MIND TECH INTERNATIONAL LIMITED", "MIND-TECH" }, { 0xE8EF22, "Siemens Numerical Control Ltd., Nanjing", "SIEMENS-NUMERICAL-CONTROL-NANJING" }, { 0xE8EF89, "OPMEX Tech.", "OPMEX-TECH" }, { 0xE8F1B0, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xE8F226, "MILLSON CUSTOM SOLUTIONS INC.", "MILLSON-CUSTOM-SOLUTIONS" }, { 0xE8F2E2, "LG Innotek", "LG-INNOTEK" }, { 0xE8F2E3, "Starcor Beijing Co.,Limited", "STARCOR-BEIJING" }, { 0xE8F375, "Nokia", "NOKIA" }, { 0xE8F408, "Intel Corporate", "INTEL-CORPORATE" }, { 0xE8F654, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE8F724, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xE8F791, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xE8F8D0, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0xE8F928, "RFTECH SRL", "RFTECH-SRL" }, { 0xE8F9D4, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xE8FA23, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE8FAF7, "Guangdong Uniteddata Holding Group Co., Ltd.", "GUANGDONG-UNITEDDATA-HOLDING-GROUP" }, { 0xE8FB1C, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xE8FBE9, "Apple, Inc.", "APPLE" }, { 0xE8FC60, "ELCOM Innovations Private Limited", "ELCOM-INNOVATIONS-PRIVATE" }, { 0xE8FCAF, "NETGEAR", "NETGEAR" }, { 0xE8FD35, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xE8FD72, "SHANGHAI LINGUO TECHNOLOGY CO., LTD.", "SHANGHAI-LINGUO" }, { 0xE8FD90, "Turbostor", "TURBOSTOR" }, { 0xE8FDE8, "CeLa Link Corporation", "CELA-LINK" }, { 0xE8FDF8, "Shanghai High-Flying Electronics Technology Co., Ltd", "SHANGHAI-HIGH-FLYING-ELECTRONICS" }, { 0xE8FF98, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xEC0133, "TRINUS SYSTEMS INC.", "TRINUS" }, { 0xEC01D5, "Cisco Systems, Inc", "CISCO" }, { 0xEC01E2, "FOXCONN INTERCONNECT TECHNOLOGY", "FOXCONN-INTERCONNECT" }, { 0xEC01EE, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xEC0273, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xEC0441, "ShenZhen TIGO Semiconductor Co., Ltd.", "SHENZHEN-TIGO-SEMICONDUCTOR" }, { 0xEC0482, "STL Systems AG", "STL" }, { 0xEC086B, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xEC08E5, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xEC0BAE, "Hangzhou BroadLink Technology Co.,Ltd", "HANGZHOU-BROADLINK" }, { 0xEC0C96, "Nokia", "NOKIA" }, { 0xEC0D9A, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0xEC0DE4, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xEC0EC4, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xEC0ED6, "ITECH INSTRUMENTS SAS", "ITECH-INSTRUMENTS-SAS" }, { 0xEC107B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xEC1120, "FloDesign Wind Turbine Corporation", "FLODESIGN-WIND-TURBINE" }, { 0xEC1127, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xEC13B2, "Netonix", "NETONIX" }, { 0xEC13DB, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xEC14F6, "BioControl AS", "BIOCONTROL-AS" }, { 0xEC153D, "Beijing Yaxunhongda Technology Co., Ltd.", "BEIJING-YAXUNHONGDA" }, { 0xEC172F, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xEC1766, "Research Centre Module", "RESEARCH-CENTRE-MODULE" }, { 0xEC1A02, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xEC1A59, "Belkin International Inc.", "BELKIN" }, { 0xEC1BBD, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xEC1C5D, "Siemens AG", "SIEMENS" }, { 0xEC1D7F, "zte corporation", "ZTE" }, { 0xEC1D8B, "Cisco Systems, Inc", "CISCO" }, { 0xEC1D9E, "Quectel Wireless Solutions Co.,Ltd.", "QUECTEL-WIRELESS-SOLUTIONS" }, { 0xEC1F72, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xEC2125, "Toshiba Corp.", "TOSHIBA" }, { 0xEC2150, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xEC219F, "VidaBox LLC", "VIDABOX" }, { 0xEC21E5, "Toshiba", "TOSHIBA" }, { 0xEC2257, "JiangSu NanJing University Electronic Information Technology Co.,Ltd", "JIANGSU-NANJING-UNIVERSITY-INFORMATION" }, { 0xEC2280, "D-Link International", "D-LINK" }, { 0xEC233D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xEC2368, "IntelliVoice Co.,Ltd.", "INTELLIVOICE" }, { 0xEC237B, "zte corporation", "ZTE" }, { 0xEC24B8, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xEC2651, "Apple, Inc.", "APPLE" }, { 0xEC26CA, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xEC26FB, "TECC CO.,LTD.", "TECC" }, { 0xEC28D3, "Apple, Inc.", "APPLE" }, { 0xEC2A72, "Dell Inc.", "DELL" }, { 0xEC2AF0, "Ypsomed AG", "YPSOMED" }, { 0xEC2BEB, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xEC2C11, "CWD INNOVATION LIMITED", "CWD-INNOVATION" }, { 0xEC2C49, "NakaoLab, The University of Tokyo", "NAKAOLAB-THE-UNIVERSITY-OF-TOKYO" }, { 0xEC2C73, "Apple, Inc.", "APPLE" }, { 0xEC2CE2, "Apple, Inc.", "APPLE" }, { 0xEC2E4E, "HITACHI-LG DATA STORAGE INC", "HITACHI-LG-DATA-STORAGE" }, { 0xEC2E98, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xEC3091, "Cisco Systems, Inc", "CISCO" }, { 0xEC30B3, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xEC316D, "Hansgrohe", "HANSGROHE" }, { 0xEC354D, "Wingtech Mobile Communications Co.,Ltd", "WINGTECH-MOBILE-COMMUNICATION" }, { 0xEC3586, "Apple, Inc.", "APPLE" }, { 0xEC363F, "Markov Corporation", "MARKOV" }, { 0xEC3873, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xEC388F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xEC3A52, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xEC3BF0, "NovelSat", "NOVELSAT" }, { 0xEC3C5A, "SHEN ZHEN HENG SHENG HUI DIGITAL TECHNOLOGY CO.,LTD", "SHEN-ZHEN-HENG-SHENG-HUI-DIGITAL" }, { 0xEC3C88, "MCNEX Co.,Ltd.", "MCNEX" }, { 0xEC3CBB, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xEC3DFD, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0xEC3E09, "PERFORMANCE DESIGNED PRODUCTS, LLC", "PERFORMANCE-DESIGNED-PRODUCTS" }, { 0xEC3EB3, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xEC3EF7, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xEC3F05, "Institute 706, The Second Academy China Aerospace Science & Industry Corp", "INSTITUTE-706-THE-SECOND-ACADEMY-CHINA-AEROSPACE-SCIENCE-INDUSTRY" }, { 0xEC4118, "XIAOMI Electronics,CO.,LTD", "XIAOMI-ELECTRONICS" }, { 0xEC41CA, "Shenzhen TecAnswer Technology co.,ltd", "SHENZHEN-TECANSWER" }, { 0xEC4269, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0xEC42B4, "ADC Corporation", "ADC" }, { 0xEC42CC, "Apple, Inc.", "APPLE" }, { 0xEC42F0, "ADL Embedded Solutions, Inc.", "ADL-EMBEDDED-SOLUTIONS" }, { 0xEC438B, "YAPTV", "YAPTV" }, { 0xEC43E6, "AWCER Ltd.", "AWCER" }, { 0xEC43F6, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xEC4476, "Cisco Systems, Inc", "CISCO" }, { 0xEC4644, "TTK SAS", "TTK-SAS" }, { 0xEC4670, "Meinberg Funkuhren GmbH & Co. KG", "MEINBERG-FUNKUHREN" }, { 0xEC473C, "Redwire, LLC", "REDWIRE" }, { 0xEC4993, "Qihan Technology Co., Ltd", "QIHAN" }, { 0xEC4C4D, "ZAO NPK RoTeK", "ZAO-NPK-ROTEK" }, { 0xEC4D3E, "Beijing Xiaomi Mobile Software Co., Ltd", "BEIJING-XIAOMI-MOBILE-SOFTWARE" }, { 0xEC4D47, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xEC4F82, "Calix Inc.", "CALIX" }, { 0xEC50AA, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xEC51BC, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xEC52DC, "WORLD MEDIA AND TECHNOLOGY Corp.", "WORLD-MEDIA" }, { 0xEC5382, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0xEC542E, "Shanghai XiMei Electronic Technology Co. Ltd", "SHANGHAI-XIMEI" }, { 0xEC551C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xEC55F9, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xEC5623, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xEC570D, "AFE Inc.", "AFE" }, { 0xEC58EA, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xEC59E7, "Microsoft Corporation", "MICROSOFT" }, { 0xEC5A86, "Yulong Computer Telecommunication Scientific (Shenzhen) Co.,Ltd", "YULONG-TELECOMMUNICATION-SCIENTIFIC-SHENZHEN" }, { 0xEC5B73, "Advanced & Wise Technology Corp.", "ADVANCED-WISE" }, { 0xEC5C68, "CHONGQING FUGUI ELECTRONICS CO.,LTD.", "CHONGQING-FUGUI-ELECTRONICS" }, { 0xEC5C69, "MITSUBISHI HEAVY INDUSTRIES MECHATRONICS SYSTEMS,LTD.", "MITSUBISHI-HEAVY-INDUSTRIES-MECHATRONICS" }, { 0xEC5C84, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xEC5F23, "Qinghai Kimascend Electronics Technology Co. Ltd.", "QINGHAI-KIMASCEND-ELECTRONICS" }, { 0xEC6073, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xEC60E0, "AVI-ON LABS", "AVI-ON-LABS" }, { 0xEC6260, "Espressif Inc.", "ESPRESSIF" }, { 0xEC6264, "Global411 Internet Services, LLC", "GLOBAL411-INTERNET-SERVICES" }, { 0xEC63D7, "Intel Corporate", "INTEL-CORPORATE" }, { 0xEC63E5, "ePBoard Design LLC", "EPBOARD-DESIGN" }, { 0xEC63ED, "Hyundai Autoever Corp.", "HYUNDAI-AUTOEVER" }, { 0xEC6488, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0xEC64E7, "MOCACARE Corporation", "MOCACARE" }, { 0xEC656E, "The Things Industries B.V.", "THE-THINGS-INDUSTRIES-B-V" }, { 0xEC65CC, "Panasonic Automotive Systems Company of America", "PANASONIC-AUTOMOTIVE-COMPANY-OF-AMERICA" }, { 0xEC66D1, "B&W Group LTD", "B-W-GROUP" }, { 0xEC6794, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xEC6881, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0xEC6C9A, "Arcadyan Corporation", "ARCADYAN" }, { 0xEC6C9F, "Chengdu Volans Technology CO.,LTD", "CHENGDU-VOLANS" }, { 0xEC6CB5, "zte corporation", "ZTE" }, { 0xEC6F0B, "FADU, Inc.", "FADU" }, { 0xEC7097, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xEC71DB, "Reolink Innovation Limited", "REOLINK-INNOVATION" }, { 0xEC7379, "Apple, Inc.", "APPLE" }, { 0xEC7427, "eero inc.", "EERO" }, { 0xEC748C, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0xEC74BA, "Hirschmann Automation and Control GmbH", "HIRSCHMANN-AUTOMATION-AND-CONTROL" }, { 0xEC74D7, "Grandstream Networks Inc", "GRANDSTREAM-NETWORKS" }, { 0xEC753E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xEC75ED, "Citrix Systems, Inc.", "CITRIX" }, { 0xEC7949, "FUJITSU LIMITED", "FUJITSU" }, { 0xEC79F2, "Startel", "STARTEL" }, { 0xEC7C2C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xEC7C5C, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xEC7C74, "Justone Technologies Co., Ltd.", "JUSTONE-TECHNOLOGIES" }, { 0xEC7CB6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xEC7D11, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xEC7D9D, "CPI", "CPI" }, { 0xEC7E91, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xEC7FC6, "ECCEL CORPORATION SAS", "ECCEL-SAS" }, { 0xEC8009, "NovaSparks", "NOVASPARKS" }, { 0xEC8150, "Apple, Inc.", "APPLE" }, { 0xEC8193, "Logitech, Inc", "LOGITECH" }, { 0xEC819C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xEC8263, "zte corporation", "ZTE" }, { 0xEC8350, "Microsoft Corporation", "MICROSOFT" }, { 0xEC836C, "RM Tech Co., Ltd.", "RM-TECH" }, { 0xEC83B7, "PUWELL CLOUD TECH LIMITED", "PUWELL-CLOUD-TECH" }, { 0xEC83D5, "GIRD Systems Inc", "GIRD" }, { 0xEC84B4, "CIG SHANGHAI CO LTD", "CIG-SHANGHAI" }, { 0xEC852F, "Apple, Inc.", "APPLE" }, { 0xEC888F, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xEC8892, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xEC8914, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xEC89F5, "Lenovo Mobile Communication Technology Ltd.", "LENOVO-MOBILE-COMMUNICATION" }, { 0xEC8A48, "Arista Networks", "ARISTA-NETWORKS" }, { 0xEC8A4C, "zte corporation", "ZTE" }, { 0xEC8AC4, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xEC8AC7, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xEC8C9A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xEC8CA2, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xEC8EAD, "DLX", "DLX" }, { 0xEC8EAE, "Nagravision SA", "NAGRAVISION" }, { 0xEC8EB5, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xEC9233, "Eddyfi NDT Inc", "EDDYFI-NDT" }, { 0xEC9327, "MEMMERT GmbH + Co. KG", "MEMMERT" }, { 0xEC9365, "Mapper.ai, Inc.", "MAPPER-AI" }, { 0xEC937D, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xEC93ED, "DDoS-Guard LTD", "DDOS-GUARD" }, { 0xEC9468, "META SYSTEM SPA", "META-SYSTEM-SPA" }, { 0xEC94CB, "Espressif Inc.", "ESPRESSIF" }, { 0xEC94D5, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xEC9681, "2276427 Ontario Inc", "2276427-ONTARIO" }, { 0xEC96BF, "eSystems MTG GmbH", "ESYSTEMS-MTG" }, { 0xEC97B2, "SUMEC Machinery & Electric Co.,Ltd.", "SUMEC-MACHINERY-ELECTRIC" }, { 0xEC97E0, "Hangzhou Ezviz Software Co.,Ltd.", "HANGZHOU-EZVIZ-SOFTWARE" }, { 0xEC986C, "Lufft Mess- und Regeltechnik GmbH", "LUFFT-MESS-UND-REGELTECHNIK" }, { 0xEC98C1, "Beijing Risbo Network Technology Co.,Ltd", "BEIJING-RISBO-NETWORK" }, { 0xEC9A74, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xEC9B2D, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xEC9B5B, "Nokia Corporation", "NOKIA" }, { 0xEC9B8B, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xEC9BF3, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xEC9C32, "Sichuan AI-Link Technology Co., Ltd.", "SICHUANAI-LINK" }, { 0xEC9ECD, "Artesyn Embedded Technologies", "ARTESYN-EMBEDDED-TECHNOLOGIES" }, { 0xEC9F0D, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xECA138, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xECA1D1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xECA29B, "Kemppi Oy", "KEMPPI-OY" }, { 0xECA2A0, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xECA5DE, "ONYX WIFI Inc", "ONYX-WIFI" }, { 0xECA62F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xECA7AD, "Barrot Technology Co.,Ltd.", "BARROT" }, { 0xECA81F, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xECA86B, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0xECA907, "Apple, Inc.", "APPLE" }, { 0xECA940, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xECA9FA, "GUANGDONG GENIUS TECHNOLOGY CO., LTD.", "GUANGDONG-GENIUS" }, { 0xECAA25, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xECAA8F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xECAAA0, "PEGATRON CORPORATION", "PEGATRON" }, { 0xECAB3E, "ESSYS", "ESSYS" }, { 0xECADB8, "Apple, Inc.", "APPLE" }, { 0xECADE0, "D-Link International", "D-LINK" }, { 0xECAF97, "GIT", "GIT" }, { 0xECAFF9, "Hailo Technologies Ltd.", "HAILO-TECHNOLOGIES" }, { 0xECB0D2, "EM Microelectronic", "EM-MICROELECTRONIC" }, { 0xECB0E1, "Ciena Corporation", "CIENA" }, { 0xECB106, "Acuro Networks, Inc", "ACURO-NETWORKS" }, { 0xECB1D7, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xECB313, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0xECB4E8, "Wistron Mexico SA de CV", "WISTRON-MEXICO-DE-CV" }, { 0xECB541, "SHINANO E and E Co.Ltd.", "SHINANO-E-AND-E" }, { 0xECB5FA, "Philips Lighting BV", "PHILIPS-LIGHTING" }, { 0xECB870, "Beijing Heweinet Technology Co.,Ltd.", "BEIJING-HEWEINET" }, { 0xECB907, "CloudGenix Inc", "CLOUDGENIX" }, { 0xECB970, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0xECBAFE, "GIROPTIC", "GIROPTIC" }, { 0xECBBAE, "Digivoice Tecnologia em Eletronica Ltda", "DIGIVOICE-TECNOLOGIA-EM-ELETRONICA-LTDA" }, { 0xECBD09, "FUSION Electronics Ltd", "FUSION-ELECTRONICS" }, { 0xECBD1D, "Cisco Systems, Inc", "CISCO" }, { 0xECBE5F, "Vestel Elektronik San ve Tic. A.S.", "VESTEL-ELEKTRONIK-SAN-VE-TIC" }, { 0xECBEDD, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xECC018, "Cisco Systems, Inc", "CISCO" }, { 0xECC01B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xECC06A, "PowerChord Group Limited", "POWERCHORD-GROUP" }, { 0xECC07A, "Laird Connectivity", "LAIRD-CONNECTIVITY" }, { 0xECC1AB, "Guangzhou Shiyuan Electronic Technology Company Limited", "GUANGZHOU-SHIYUAN-COMPANY" }, { 0xECC302, "HUMAX Co., Ltd.", "HUMAX" }, { 0xECC38A, "Accuenergy (CANADA) Inc", "ACCUENERGY-CANADA" }, { 0xECC3B0, "zte corporation", "ZTE" }, { 0xECC40D, "Nintendo Co.,Ltd", "NINTENDO" }, { 0xECC57F, "Suzhou Pairlink Network Technology", "SUZHOU-PAIRLINK-NETWORK" }, { 0xECC5D2, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xECC882, "Cisco Systems, Inc", "CISCO" }, { 0xECC89C, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xECCB30, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xECCD6D, "Allied Telesis, Inc.", "ALLIED-TELESIS" }, { 0xECCE13, "Cisco Systems, Inc", "CISCO" }, { 0xECCED7, "Apple, Inc.", "APPLE" }, { 0xECD00E, "MiraeRecognition Co., Ltd.", "MIRAERECOGNITION" }, { 0xECD040, "GEA Farm Technologies GmbH", "GEA-FARM-TECHNOLOGIES" }, { 0xECD09F, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xECD19A, "Zhuhai Liming Industries Co., Ltd", "ZHUHAI-LIMING-INDUSTRIES" }, { 0xECD68A, "Shenzhen JMicron Intelligent Technology Developmen", "SHENZHEN-JMICRON-INTELLIGENT-DEVELOPMEN" }, { 0xECD925, "RAMI", "RAMI" }, { 0xECD950, "IRT SA", "IRT" }, { 0xECD9D1, "Shenzhen TG-NET Botone Technology Co.,Ltd.", "SHENZHEN-TG-NET-BOTONE" }, { 0xECDA3B, "Espressif Inc.", "ESPRESSIF" }, { 0xECDA59, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xECDB86, "API-K", "API-K" }, { 0xECDE3D, "Lamprey Networks, Inc.", "LAMPREY-NETWORKS" }, { 0xECDF3A, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xECDFC9, "Hangzhou Microimage Software Co., Ltd", "HANGZHOU-MICROIMAGE-SOFTWARE" }, { 0xECE09B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xECE154, "Beijing Unisound Information Technology Co.,Ltd.", "BEIJING-UNISOUND-INFORMATION" }, { 0xECE1A9, "Cisco Systems, Inc", "CISCO" }, { 0xECE2FD, "SKG Electric Group(Thailand) Co., Ltd.", "SKG-ELECTRIC-GROUP-THAILAND" }, { 0xECE512, "tado GmbH", "TADO" }, { 0xECE555, "Hirschmann Automation", "HIRSCHMANN-AUTOMATION" }, { 0xECE61D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xECE6A2, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xECE744, "Omntec mfg. inc", "OMNTEC-MFG" }, { 0xECE7A7, "Intel Corporate", "INTEL-CORPORATE" }, { 0xECE90B, "SISTEMA SOLUCOES ELETRONICAS LTDA - EASYTECH", "SISTEMA-SOLUCOES-ELETRONICAS-LTDA-EASYTECH" }, { 0xECE915, "STI Ltd", "STI" }, { 0xECE9F8, "Guang Zhou TRI-SUN Electronics Technology Co., Ltd", "GUANG-ZHOU-TRI-SUN-ELECTRONICS" }, { 0xECEA03, "DARFON LIGHTING CORP", "DARFON-LIGHTING" }, { 0xECEBB8, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xECED73, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xECEED8, "ZTLX Network Technology Co.,Ltd", "ZTLX-NETWORK" }, { 0xECEF17, "Sunplus Technology Co., Ltd.", "SUNPLUS" }, { 0xECF00E, "AboCom", "ABOCOM" }, { 0xECF0FE, "zte corporation", "ZTE" }, { 0xECF22B, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0xECF236, "NEOMONTANA ELECTRONICS", "NEOMONTANA-ELECTRONICS" }, { 0xECF342, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xECF35B, "Nokia Corporation", "NOKIA" }, { 0xECF40C, "Cisco Systems, Inc", "CISCO" }, { 0xECF451, "Arcadyan Corporation", "ARCADYAN" }, { 0xECF4BB, "Dell Inc.", "DELL" }, { 0xECF6BD, "SNCF MOBILITÉS", "SNCF-MOBILITS" }, { 0xECF72B, "HD DIGITAL TECH CO., LTD.", "HD-DIGITAL-TECH" }, { 0xECF8D0, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xECF8EB, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xECFA03, "FCA", "FCA" }, { 0xECFA5C, "Beijing Xiaomi Electronics Co., Ltd.", "BEIJING-XIAOMI-ELECTRONICS" }, { 0xECFAAA, "The IMS Company", "THE-IMS-COMPANY" }, { 0xECFABC, "Espressif Inc.", "ESPRESSIF" }, { 0xECFAF4, "SenRa Tech Pvt. Ltd", "SENRA-TECH-PVT" }, { 0xECFC55, "A. Eberle GmbH & Co. KG", "A-EBERLE" }, { 0xECFE7E, "BlueRadios, Inc.", "BLUERADIOS" }, { 0xF0007F, "Janz - Contadores de Energia, SA", "JANZ-CONTADORES-DE-ENERGIA" }, { 0xF0016E, "Tianyi Telecom Terminals Company Limited", "TIANYI-TELECOM-TERMINALS-COMPANY" }, { 0xF0022B, "Chrontel", "CHRONTEL" }, { 0xF00248, "SmarteBuilding", "SMARTEBUILDING" }, { 0xF0038C, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xF00786, "Shandong Bittel Electronics Co., Ltd", "SHANDONG-BITTEL-ELECTRONICS" }, { 0xF008D1, "Espressif Inc.", "ESPRESSIF" }, { 0xF008F1, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF00D5C, "JinQianMao Technology Co.,Ltd.", "JINQIANMAO" }, { 0xF00DF5, "ACOMA Medical Industry Co,. Ltd.", "ACOMA-MEDICAL-INDUSTRY" }, { 0xF00E1D, "Megafone Limited", "MEGAFONE" }, { 0xF00EBF, "ZettaHash Inc.", "ZETTAHASH" }, { 0xF00FEC, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF01090, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xF010AB, "China Mobile (Hangzhou) Information Technology Co., Ltd.", "CHINA-MOBILE-HANGZHOU-INFORMATION" }, { 0xF013C1, "Hannto Technology Co., Ltd", "HANNTO" }, { 0xF013C3, "SHENZHEN FENDA TECHNOLOGY CO., LTD", "SHENZHEN-FENDA" }, { 0xF015A0, "KyungDong One Co., Ltd.", "KYUNGDONG-ONE" }, { 0xF015B9, "PlayFusion Limited", "PLAYFUSION" }, { 0xF01628, "Technicolor (China) Technology Co., Ltd.", "TECHNICOLOR-CHINA" }, { 0xF0182B, "LG Chem", "LG-CHEM" }, { 0xF01898, "Apple, Inc.", "APPLE" }, { 0xF01AA0, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xF01B6C, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xF01C13, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xF01C2D, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xF01D2D, "Cisco Systems, Inc", "CISCO" }, { 0xF01DBC, "Microsoft Corporation", "MICROSOFT" }, { 0xF01E34, "ORICO Technologies Co., Ltd", "ORICO-TECHNOLOGIES" }, { 0xF01FAF, "Dell Inc.", "DELL" }, { 0xF01FC7, "Apple, Inc.", "APPLE" }, { 0xF020FF, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF02178, "UNIONMAN TECHNOLOGY CO.,LTD", "UNIONMAN" }, { 0xF0219D, "Cal-Comp Electronics & Communications Company Ltd.", "CAL-COMP-ELECTRONICS-COMMUNICATION-COMPANY" }, { 0xF021E0, "eero inc.", "EERO" }, { 0xF0221D, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF0224E, "Esan electronic co.", "ESAN" }, { 0xF02329, "SHOWA DENKI CO.,LTD.", "SHOWA-DENKI" }, { 0xF023AE, "AMPAK Technology,Inc.", "AMPAK" }, { 0xF023B9, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF02405, "OPUS High Technology Corporation", "OPUS-HIGH" }, { 0xF02408, "Talaris (Sweden) AB", "TALARIS-SWEDEN-AB" }, { 0xF02475, "Apple, Inc.", "APPLE" }, { 0xF02572, "Cisco Systems, Inc", "CISCO" }, { 0xF0258E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF025B7, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xF02624, "WAFA TECHNOLOGIES CO., LTD.", "WAFA-TECHNOLOGIES" }, { 0xF0264C, "Sigrist-Photometer AG", "SIGRIST-PHOTOMETER" }, { 0xF026F8, "Worldcns Co.,Ltd.", "WORLDCNS" }, { 0xF0272D, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xF02745, "F-Secure Corporation", "F-SECURE" }, { 0xF02765, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xF02929, "Cisco Systems, Inc", "CISCO" }, { 0xF02A23, "Creative Next Design", "CREATIVE-NEXT-DESIGN" }, { 0xF02A2B, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF02A61, "Waldo Networks, Inc.", "WALDO-NETWORKS" }, { 0xF02E51, "Casa Systems", "CASA" }, { 0xF02F4B, "Apple, Inc.", "APPLE" }, { 0xF02F74, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xF02FA7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF02FD8, "Bi2-Vision", "BI2-VISION" }, { 0xF0321A, "Mita-Teknik A/S", "MITA-TEKNIK-A/S" }, { 0xF033E5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF03404, "TCT mobile ltd", "TCT-MOBILE" }, { 0xF03575, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0xF037A1, "Huike Electronics (SHENZHEN) CO., LTD.", "HUIKE-ELECTRONICS-SHENZHEN" }, { 0xF03965, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF03A4B, "Bloombase, Inc.", "BLOOMBASE" }, { 0xF03A55, "Omega Elektronik AS", "OMEGA-ELEKTRONIK-AS" }, { 0xF03D03, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0xF03D29, "Actility", "ACTILITY" }, { 0xF03E90, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xF03EBF, "GOGORO TAIWAN LIMITED", "GOGORO-TAIWAN" }, { 0xF03F95, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF03FF8, "R L Drake", "R-L-DRAKE" }, { 0xF0407B, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xF041C6, "Heat Tech Company, Ltd.", "HEAT-TECH-COMPANY" }, { 0xF041C8, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF0421C, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF042F5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF04335, "DVN(Shanghai)Ltd.", "DVN-SHANGHAI" }, { 0xF04347, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF045DA, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF0463B, "Comcast Cable Corporation", "COMCAST-CABLE" }, { 0xF04A02, "Cisco Systems, Inc", "CISCO" }, { 0xF04A2B, "PYRAMID Computer GmbH", "PYRAMID" }, { 0xF04A3D, "Bosch Thermotechnik GmbH", "BOSCH-THERMOTECHNIK" }, { 0xF04B3A, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xF04B6A, "Scientific Production Association Siberian Arsenal, Ltd.", "SCIENTIFIC-PRODUCTION-ASSOCIATION-SIBERIAN-ARSENAL" }, { 0xF04BF2, "JTECH Communications, Inc.", "JTECH-COMMUNICATION" }, { 0xF04CD5, "Maxlinear, Inc", "MAXLINEAR" }, { 0xF04DA2, "Dell Inc.", "DELL" }, { 0xF04DD4, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xF04F7C, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xF05136, "TCT mobile ltd", "TCT-MOBILE" }, { 0xF051EA, "Fitbit, Inc.", "FITBIT" }, { 0xF05494, "Honeywell Connected Building", "HONEYWELL-CONNECTED-BUILDING" }, { 0xF05501, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF057A6, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF05849, "CareView Communications", "CAREVIEW-COMMUNICATION" }, { 0xF05A09, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF05B7B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF05C19, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xF05C77, "Google, Inc.", "GOOGLE" }, { 0xF05CD5, "Apple, Inc.", "APPLE" }, { 0xF05D89, "Dycon Limited", "DYCON" }, { 0xF05DC8, "Duracell Powermat", "DURACELL-POWERMAT" }, { 0xF05ECD, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF05F5A, "Getriebebau NORD GmbH and Co. KG", "GETRIEBEBAU-NORD" }, { 0xF06130, "Advantage Pharmacy Services, LLC", "ADVANTAGE-PHARMACY-SERVICES" }, { 0xF061C0, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xF0620D, "Shenzhen Egreat Tech Corp.,Ltd", "SHENZHEN-EGREAT-TECH" }, { 0xF0625A, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xF06281, "ProCurve Networking by HP", "PROCURVE-NETWORKING-BY-HP" }, { 0xF063F9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF06426, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xF065AE, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF065C2, "Yanfeng Visteon Electronics Technology (Shanghai) Co.,Ltd.", "YANFENG-VISTEON-ELECTRONICS-SHANGHAI" }, { 0xF065DD, "Primax Electronics Ltd.", "PRIMAX-ELECTRONICS" }, { 0xF06728, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xF06853, "Integrated Corporation", "INTEGRATED" }, { 0xF06865, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xF06BCA, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF06C5D, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xF06C73, "Nokia", "NOKIA" }, { 0xF06D78, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xF06E0B, "Microsoft Corporation", "MICROSOFT" }, { 0xF06E32, "MICROTEL INNOVATION S.R.L.", "MICROTEL-INNOVATION" }, { 0xF06F46, "Ubiik", "UBIIK" }, { 0xF0704F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF0728C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF072EA, "Google, Inc.", "GOOGLE" }, { 0xF073AE, "PEAK-System Technik", "PEAK-SYSTEM-TECHNIK" }, { 0xF07485, "NGD Systems, Inc.", "NGD" }, { 0xF0748D, "Ruijie Networks Co.,LTD", "RUIJIE-NETWORKS" }, { 0xF074E4, "Thundercomm Technology Co., Ltd", "THUNDERCOMM" }, { 0xF0761C, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0xF0766F, "Apple, Inc.", "APPLE" }, { 0xF07765, "Sourcefire, Inc", "SOURCEFIRE" }, { 0xF077C3, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF077D0, "Xcellen", "XCELLEN" }, { 0xF07807, "Apple, Inc.", "APPLE" }, { 0xF07816, "Cisco Systems, Inc", "CISCO" }, { 0xF07959, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xF07960, "Apple, Inc.", "APPLE" }, { 0xF079E8, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xF07B65, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xF07BCB, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xF07CC7, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xF07D68, "D-Link Corporation", "D-LINK" }, { 0xF07F06, "Cisco Systems, Inc", "CISCO" }, { 0xF07F0C, "Leopold Kostal GmbH &Co. KG", "LEOPOLD-KOSTAL" }, { 0xF08173, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xF08175, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xF081AF, "IRZ AUTOMATION TECHNOLOGIES LTD", "IRZ-AUTOMATION-TECHNOLOGIES" }, { 0xF08261, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xF082C0, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xF0842F, "ADB Broadband Italia", "ADB-BROADBAND-ITALIA" }, { 0xF084C9, "zte corporation", "ZTE" }, { 0xF085C1, "SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.", "SHENZHEN-RF-LINK" }, { 0xF08620, "Arcadyan Corporation", "ARCADYAN" }, { 0xF08756, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xF0877F, "Magnetar Technology Shenzhen Co., LTD.", "MAGNETAR-SHENZHEN" }, { 0xF08A28, "JIANGSU HENGSION ELECTRONIC S and T CO.,LTD", "JIANGSU-HENGSION-S-AND-T" }, { 0xF08A76, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF08BFE, "COSTEL.,CO.LTD", "COSTEL" }, { 0xF08CFB, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xF08EDB, "VeloCloud Networks", "VELOCLOUD-NETWORKS" }, { 0xF09008, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0xF0921C, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xF092B4, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xF0933A, "NxtConect", "NXTCONECT" }, { 0xF093C5, "Garland Technology", "GARLAND" }, { 0xF095F1, "Carl Zeiss AG", "CARL-ZEISS" }, { 0xF097E5, "TAMIO, INC", "TAMIO" }, { 0xF09838, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF0989D, "Apple, Inc.", "APPLE" }, { 0xF09919, "Garmin International", "GARMIN" }, { 0xF099B6, "Apple, Inc.", "APPLE" }, { 0xF099BF, "Apple, Inc.", "APPLE" }, { 0xF09A51, "Shanghai Viroyal Electronic Technology Company Limited", "SHANGHAI-VIROYAL-COMPANY" }, { 0xF09BB8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF09CBB, "RaonThink Inc.", "RAONTHINK" }, { 0xF09CD7, "Guangzhou Blue Cheetah Intelligent Technology Co., Ltd.", "GUANGZHOU-BLUE-CHEETAH-INTELLIGENT" }, { 0xF09CE9, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xF09E4A, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF09E63, "Cisco Systems, Inc", "CISCO" }, { 0xF09FC2, "Ubiquiti Inc", "UBIQUITI" }, { 0xF09FFC, "SHARP Corporation", "SHARP" }, { 0xF0A0B1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF0A225, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xF0A35A, "Apple, Inc.", "APPLE" }, { 0xF0A3B2, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0xF0A654, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0xF0A764, "GST Co., Ltd.", "GST" }, { 0xF0A7B2, "FUTABA CORPORATION", "FUTABA" }, { 0xF0A951, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF0A968, "Antailiye Technology Co.,Ltd", "ANTAILIYE" }, { 0xF0AA0B, "Arra Networks/ Spectramesh", "ARRA-NETWORKS/-SPECTRAMESH" }, { 0xF0AB54, "MITSUMI ELECTRIC CO.,LTD.", "MITSUMI-ELECTRIC" }, { 0xF0ACA4, "HBC-radiomatic", "HBC-RADIOMATIC" }, { 0xF0ACD7, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF0AD4E, "Globalscale Technologies, Inc.", "GLOBALSCALE-TECHNOLOGIES" }, { 0xF0AE51, "Xi3 Corp", "XI3" }, { 0xF0AE66, "Cosonic Intelligent Technologies Co., Ltd.", "COSONIC-INTELLIGENT-TECHNOLOGIES" }, { 0xF0AF50, "Phantom Intelligence", "PHANTOM-INTELLIGENCE" }, { 0xF0AF85, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xF0B014, "AVM Audiovisuelles Marketing und Computersysteme GmbH", "AVM-AUDIOVISUELLES-MARKETING-UND-COMPUTERSYSTEME" }, { 0xF0B022, "TOHO Electronics INC.", "TOHO-ELECTRONICS" }, { 0xF0B040, "HUNAN FN-LINK TECHNOLOGY LIMITED", "HUNAN-FN-LINK" }, { 0xF0B052, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xF0B0E7, "Apple, Inc.", "APPLE" }, { 0xF0B107, "Ericsson AB", "ERICSSON-AB" }, { 0xF0B11D, "Nokia", "NOKIA" }, { 0xF0B13F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF0B2B9, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF0B2E5, "Cisco Systems, Inc", "CISCO" }, { 0xF0B31E, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0xF0B3EC, "Apple, Inc.", "APPLE" }, { 0xF0B429, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xF0B479, "Apple, Inc.", "APPLE" }, { 0xF0B4D2, "D-Link International", "D-LINK" }, { 0xF0B5B7, "Disruptive Technologies Research AS", "DISRUPTIVE-TECHNOLOGIES-RESEARCH-AS" }, { 0xF0B5D1, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF0B61E, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF0B661, "eero inc.", "EERO" }, { 0xF0B6EB, "Poslab Technology Co., Ltd.", "POSLAB" }, { 0xF0B968, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xF0BCC8, "MaxID (Pty) Ltd", "MAXID-PTY" }, { 0xF0BCC9, "PFU LIMITED", "PFU" }, { 0xF0BD2E, "H+S Polatis Ltd", "H+S-POLATIS" }, { 0xF0BDF1, "Sipod Inc.", "SIPOD" }, { 0xF0BE25, "Dongguan Cannice Precision Manufacturing Co., Ltd.", "DONGGUAN-CANNICE-PRECISION-MANUFACTURING" }, { 0xF0BF97, "Sony Corporation", "SONY" }, { 0xF0C1CE, "GoodWe Technologies CO., Ltd", "GOODWE-TECHNOLOGIES" }, { 0xF0C1F1, "Apple, Inc.", "APPLE" }, { 0xF0C24C, "Zhejiang FeiYue Digital Technology Co., Ltd", "ZHEJIANG-FEIYUE-DIGITAL" }, { 0xF0C27C, "Mianyang Netop Telecom Equipment Co.,Ltd.", "MIANYANG-NETOP-TELECOM-EQUIPMENT" }, { 0xF0C371, "Apple, Inc.", "APPLE" }, { 0xF0C42F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF0C478, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF0C558, "U.D.Electronic Corp.", "U-D" }, { 0xF0C725, "Apple, Inc.", "APPLE" }, { 0xF0C745, "TECNO MOBILE LIMITED", "TECNO-MOBILE" }, { 0xF0C77F, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF0C814, "SHENZHEN BILIAN ELECTRONIC CO.,LTD", "SHENZHEN-BILIAN" }, { 0xF0C850, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF0C88C, "LeddarTech Inc.", "LEDDARTECH" }, { 0xF0C8B5, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF0C9D1, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0xF0CBA1, "Apple, Inc.", "APPLE" }, { 0xF0CCE0, "Shenzhen All-Smartlink Technology Co.,Ltd.", "SHENZHEN-ALL-SMARTLINK" }, { 0xF0CD31, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF0D08C, "TCT mobile ltd", "TCT-MOBILE" }, { 0xF0D14F, "LINEAR LLC", "LINEAR" }, { 0xF0D1A9, "Apple, Inc.", "APPLE" }, { 0xF0D1B8, "LEDVANCE", "LEDVANCE" }, { 0xF0D2F1, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xF0D31F, "Apple, Inc.", "APPLE" }, { 0xF0D3A7, "CobaltRay Co., Ltd", "COBALTRAY" }, { 0xF0D3E7, "Sensometrix SA", "SENSOMETRIX" }, { 0xF0D415, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF0D4E2, "Dell Inc.", "DELL" }, { 0xF0D4F6, "Lars Thrane A/S", "LARS-THRANE-A/S" }, { 0xF0D4F7, "varram system", "VARRAM-SYSTEM" }, { 0xF0D5BF, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF0D657, "ECHOSENS", "ECHOSENS" }, { 0xF0D767, "Axema Passagekontroll AB", "AXEMA-PASSAGEKONTROLL-AB" }, { 0xF0D793, "Apple, Inc.", "APPLE" }, { 0xF0D7AA, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xF0D7AF, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF0D7DC, "Wesine (Wuhan) Technology Co., Ltd.", "WESINE-WUHAN" }, { 0xF0D9B2, "EXO S.A.", "EXO" }, { 0xF0DA7C, "RLH INDUSTRIES,INC.", "RLH-INDUSTRIES" }, { 0xF0DB30, "Yottabyte", "YOTTABYTE" }, { 0xF0DBE2, "Apple, Inc.", "APPLE" }, { 0xF0DBF8, "Apple, Inc.", "APPLE" }, { 0xF0DCE2, "Apple, Inc.", "APPLE" }, { 0xF0DE71, "Shanghai EDO Technologies Co.,Ltd.", "SHANGHAI-EDO-TECHNOLOGIES" }, { 0xF0DEB9, "ShangHai Y&Y Electronics Co., Ltd", "SHANGHAI-Y-Y-ELECTRONICS" }, { 0xF0DEF1, "Wistron Infocomm (Zhongshan) Corporation", "WISTRON-INFOCOMM-ZHONGSHAN" }, { 0xF0E3DC, "Tecon MT, LLC", "TECON-MT" }, { 0xF0E4A2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF0E5C3, "Drägerwerk AG & Co. KG aA", "DRAEGERWERK-AA" }, { 0xF0E77E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF0EBD0, "Shanghai Feixun Communication Co.,Ltd.", "SHANGHAI-FEIXUN-COMMUNICATION" }, { 0xF0EC39, "Essec", "ESSEC" }, { 0xF0ED1E, "Bilkon Bilgisayar Kontrollu Cih. Im.Ltd.", "BILKON-BILGISAYAR-KONTROLLU-CIH-IM" }, { 0xF0EDB8, "SERVERCOM (INDIA) PRIVATE LIMITED", "SERVERCOM-INDIA-PRIVATE" }, { 0xF0EE10, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF0EE58, "PACE Telematics GmbH", "PACE-TELEMATICS" }, { 0xF0EE7A, "Apple, Inc.", "APPLE" }, { 0xF0EEBB, "VIPAR GmbH", "VIPAR" }, { 0xF0EF86, "Google, Inc.", "GOOGLE" }, { 0xF0EFD2, "TF PAYMENT SERVICE CO., LTD", "TF-PAYMENT-SERVICE" }, { 0xF0F002, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xF0F08F, "Nextek Solutions Pte Ltd", "NEXTEK-SOLUTIONS-PTE" }, { 0xF0F0A4, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xF0F249, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0xF0F260, "Mobitec AB", "MOBITEC-AB" }, { 0xF0F336, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xF0F564, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF0F5AE, "Adaptrum Inc.", "ADAPTRUM" }, { 0xF0F61C, "Apple, Inc.", "APPLE" }, { 0xF0F644, "Whitesky Science & Technology Co.,Ltd.", "WHITESKY-SCIENCE" }, { 0xF0F669, "Motion Analysis Corporation", "MOTION-ANALYSIS" }, { 0xF0F69C, "NIO Co., Ltd.", "NIO" }, { 0xF0F6C1, "Sonos, Inc.", "SONOS" }, { 0xF0F755, "Cisco Systems, Inc", "CISCO" }, { 0xF0F7B3, "Phorm", "PHORM" }, { 0xF0F7E7, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF0F842, "KEEBOX, Inc.", "KEEBOX" }, { 0xF0F8F2, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF0F9F7, "IES GmbH & Co. KG", "IES" }, { 0xF0FAC7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF0FCC8, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xF0FDA0, "Acurix Networks Pty Ltd", "ACURIX-NETWORKS-PTY" }, { 0xF0FE6B, "Shanghai High-Flying Electronics Technology Co., Ltd", "SHANGHAI-HIGH-FLYING-ELECTRONICS" }, { 0xF0FEE7, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF40046, "ON Semiconductor", "ON-SEMICONDUCTOR" }, { 0xF40223, "PAX Computer Technology(Shenzhen) Ltd.", "PAX-SHENZHEN" }, { 0xF40228, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xF40270, "Dell Inc.", "DELL" }, { 0xF40304, "Google, Inc.", "GOOGLE" }, { 0xF40321, "BeNeXt B.V.", "BENEXT-B-V" }, { 0xF4032A, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xF4032F, "Reduxio Systems", "REDUXIO" }, { 0xF40343, "Hewlett Packard Enterprise", "HEWLETT-PACKARD" }, { 0xF4044C, "ValenceTech Limited", "VALENCETECH" }, { 0xF40595, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xF40616, "Apple, Inc.", "APPLE" }, { 0xF40669, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF4068D, "devolo AG", "DEVOLO" }, { 0xF406A5, "Hangzhou Bianfeng Networking Technology Co., Ltd.", "HANGZHOU-BIANFENG-NETWORKING" }, { 0xF409D8, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xF40A4A, "INDUSNET Communication Technology Co.,LTD", "INDUSNET-COMMUNICATION" }, { 0xF40B93, "BlackBerry RTS", "BLACKBERRY-RTS" }, { 0xF40B9F, "CIG SHANGHAI CO LTD", "CIG-SHANGHAI" }, { 0xF40E01, "Apple, Inc.", "APPLE" }, { 0xF40E11, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF40E22, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF40E83, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xF40F1B, "Cisco Systems, Inc", "CISCO" }, { 0xF40F24, "Apple, Inc.", "APPLE" }, { 0xF40F9B, "WAVELINK", "WAVELINK" }, { 0xF412DA, "zte corporation", "ZTE" }, { 0xF412FA, "Espressif Inc.", "ESPRESSIF" }, { 0xF41399, "Aerospace new generation communications Co.,Ltd", "AEROSPACE-NEW-GENERATION-COMMUNICATION" }, { 0xF41532, "PETAiO (NanJing), Inc.", "PETAIO-NANJING" }, { 0xF41535, "SPON Communication Technology Co.,Ltd", "SPON-COMMUNICATION" }, { 0xF41563, "F5 Networks, Inc.", "F5-NETWORKS" }, { 0xF415FD, "Shanghai Pateo Electronic Equipment Manufacturing Co., Ltd.", "SHANGHAI-PATEO-EQUIPMENT-MANUFACTURING" }, { 0xF417B8, "AirTies Wireless Networks", "AIRTIES-WIRELESS-NETWORKS" }, { 0xF419E2, "Volterra", "VOLTERRA" }, { 0xF41A9C, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xF41AB0, "Shenzhen Xingguodu Technology Co., Ltd.", "SHENZHEN-XINGGUODU" }, { 0xF41BA1, "Apple, Inc.", "APPLE" }, { 0xF41C71, "SHENZHEN SANMU COMMUNICATION TECHNOLOGY CO., LTD", "SHENZHEN-SANMU-COMMUNICATION" }, { 0xF41C95, "BEIJING YUNYI TIMES TECHNOLOGY CO,.LTD", "BEIJING-YUNYI-TIMES" }, { 0xF41D6B, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF41E26, "Simon-Kaloi Engineering", "SIMON-KALOI-ENGINEERING" }, { 0xF41E5E, "RtBrick Inc.", "RTBRICK" }, { 0xF41F0B, "YAMABISHI Corporation", "YAMABISHI" }, { 0xF41F88, "zte corporation", "ZTE" }, { 0xF41FC2, "Cisco Systems, Inc", "CISCO" }, { 0xF42012, "Cuciniale GmbH", "CUCINIALE" }, { 0xF421AE, "Shanghai Xiaodu Technology Limited", "SHANGHAI-XIAODU" }, { 0xF421CA, "Apple, Inc.", "APPLE" }, { 0xF4227A, "Guangdong Seneasy Intelligent Technology Co., Ltd.", "GUANGDONG-SENEASY-INTELLIGENT" }, { 0xF4239C, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0xF42462, "Selcom Electronics (Shanghai) Co., Ltd", "SELCOM-ELECTRONICS-SHANGHAI" }, { 0xF42679, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF42756, "DASAN Newtork Solutions", "DASAN-NEWTORK-SOLUTIONS" }, { 0xF42833, "MMPC Inc.", "MMPC" }, { 0xF42853, "Zioncom Electronics (Shenzhen) Ltd.", "ZIONCOM-ELECTRONICS-SHENZHEN" }, { 0xF42896, "SPECTO PAINEIS ELETRONICOS LTDA", "SPECTO-PAINEIS-ELETRONICOS-LTDA" }, { 0xF42981, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xF42A7D, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xF42B48, "Ubiqam", "UBIQAM" }, { 0xF42B7D, "Chipsguide technology CO.,LTD.", "CHIPSGUIDE" }, { 0xF42B8C, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF42C56, "SENOR TECH CO LTD", "SENOR-TECH" }, { 0xF42D06, "zte corporation", "ZTE" }, { 0xF42E48, "zte corporation", "ZTE" }, { 0xF42E7F, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xF4308B, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xF430B9, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xF431C3, "Apple, Inc.", "APPLE" }, { 0xF4323D, "Sichuan tianyi kanghe communications co., LTD", "SICHUAN-TIANYI-KANGHE-COMMUNICATION" }, { 0xF4331C, "Toast, Inc.", "TOAST" }, { 0xF43328, "CIMCON Lighting Inc.", "CIMCON-LIGHTING" }, { 0xF434F0, "Apple, Inc.", "APPLE" }, { 0xF436E1, "Abilis Systems SARL", "ABILIS-SARL" }, { 0xF437B7, "Apple, Inc.", "APPLE" }, { 0xF43814, "Shanghai Howell Electronic Co.,Ltd", "SHANGHAI-HOWELL" }, { 0xF438C1, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF43909, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xF43A7B, "zte corporation", "ZTE" }, { 0xF43BD8, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF43C3B, "HUNAN FN-LINK TECHNOLOGY LIMITED", "HUNAN-FN-LINK" }, { 0xF43D80, "FAG Industrial Services GmbH", "FAG-INDUSTRIAL-SERVICES" }, { 0xF43E61, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0xF43E66, "Bee Computing (HK) Limited", "BEE-COMPUTING-HK" }, { 0xF43E9D, "Benu Networks, Inc.", "BENU-NETWORKS" }, { 0xF44156, "Arrikto Inc.", "ARRIKTO" }, { 0xF4419E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF44227, "S & S Research Inc.", "S-S-RESEARCH" }, { 0xF4428F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF4442C, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0xF44450, "BND Co., Ltd.", "BND" }, { 0xF44588, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF445ED, "Portable Innovation Technology Ltd.", "PORTABLE-INNOVATION" }, { 0xF44637, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF44713, "Leading Public Performance Co., Ltd.", "LEADING-PUBLIC-PERFORMANCE" }, { 0xF4472A, "Nanjing Rousing Sci. and Tech. Industrial Co., Ltd", "NANJING-ROUSING-SCI-AND-TECH-INDUSTRIAL" }, { 0xF44848, "Amscreen Group Ltd", "AMSCREEN-GROUP" }, { 0xF44955, "MIMO TECH Co., Ltd.", "MIMO-TECH" }, { 0xF449EF, "EMSTONE", "EMSTONE" }, { 0xF44B2A, "Cisco SPVTG", "CISCO-SPVTG" }, { 0xF44C70, "Skyworth Digital Technology(Shenzhen) Co.,Ltd", "SKYWORTH-DIGITAL-SHENZHEN" }, { 0xF44C7F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF44D17, "GOLDCARD HIGH-TECH CO.,LTD.", "GOLDCARD-HIGH-TECH" }, { 0xF44D30, "Elitegroup Computer Systems Co.,Ltd.", "ELITEGROUP" }, { 0xF44D5C, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xF44DAD, "Cable Matters Inc.", "CABLE-MATTERS" }, { 0xF44E05, "Cisco Systems, Inc", "CISCO" }, { 0xF44E38, "Olibra LLC", "OLIBRA" }, { 0xF44EE3, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF44EFD, "Actions Semiconductor Co.,Ltd.(Cayman Islands)", "ACTIONS-SEMICONDUCTOR-CAYMAN-ISLANDS" }, { 0xF44FD3, "shenzhen hemuwei technology co.,ltd", "SHENZHEN-HEMUWEI" }, { 0xF450EB, "Telechips Inc", "TELECHIPS" }, { 0xF45214, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0xF45420, "TELLESCOM INDUSTRIA E COMERCIO EM TELECOMUNICACAO", "TELLESCOM-INDUSTRIA-E-COMERCIO-EM-TELECOMUNICACAO" }, { 0xF45433, "Rockwell Automation", "ROCKWELL-AUTOMATION" }, { 0xF45595, "HENGBAO Corporation LTD.", "HENGBAO" }, { 0xF4559C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF455E0, "Niceway CNC Technology Co.,Ltd.Hunan Province", "NICEWAY-CNC-HUNAN-PROVINCE" }, { 0xF4573E, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xF45842, "Boxx TV Ltd", "BOXX-TV" }, { 0xF45B73, "Wanjiaan Interconnected Technology Co., Ltd", "WANJIAAN-INTERCONNECTED" }, { 0xF45C89, "Apple, Inc.", "APPLE" }, { 0xF45EAB, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF45F69, "Matsufu Electronics distribution Company", "MATSUFU-ELECTRONICS-DISTRIBUTION-COMPANY" }, { 0xF45FD4, "Cisco SPVTG", "CISCO-SPVTG" }, { 0xF45FF7, "DQ Technology Inc.", "DQ" }, { 0xF4600D, "Panoptic Technology, Inc", "PANOPTIC" }, { 0xF46077, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF460E2, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xF462D0, "Not for Radio, LLC", "NOT-FOR-RADIO" }, { 0xF4631F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF46349, "Diffon Corporation", "DIFFON" }, { 0xF463E7, "Nanjing Maxon O.E. Tech. Co., LTD", "NANJING-MAXON-O-E-TECH" }, { 0xF463FC, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xF46412, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0xF4645D, "Toshiba", "TOSHIBA" }, { 0xF465A6, "Apple, Inc.", "APPLE" }, { 0xF4672D, "ShenZhen Topstar Technology Company", "SHENZHEN-TOPSTAR-COMPANY" }, { 0xF46942, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xF469D5, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF46A92, "SHENZHEN FAST TECHNOLOGIES CO.,LTD", "SHENZHEN-FAST-TECHNOLOGIES" }, { 0xF46ABC, "Adonit Corp. Ltd.", "ADONIT" }, { 0xF46AD7, "Microsoft Corporation", "MICROSOFT" }, { 0xF46ADD, "Liteon Technology Corporation", "LITEON" }, { 0xF46B8C, "Hon Hai Precision Industry Co., Ltd.", "HON-HAI-PRECISION-INDUSTRY" }, { 0xF46BEF, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xF46C68, "Wistron Neweb Corporation", "WISTRON-NEWEB" }, { 0xF46D04, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xF46D2F, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xF46D3F, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF46DE2, "zte corporation", "ZTE" }, { 0xF46E24, "NEC Personal Computers, Ltd.", "NEC-PERSONAL-COMPUTERS" }, { 0xF46E95, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xF46F4E, "Echowell", "ECHOWELL" }, { 0xF46FA4, "Physik Instrumente GmbH & Co. KG", "PHYSIK-INSTRUMENTE" }, { 0xF46FED, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xF4700C, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF470AB, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xF47190, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF47335, "Logitech Far East", "LOGITECH-FAR-EAST" }, { 0xF473CA, "Conversion Sound Inc.", "CONVERSION-SOUND" }, { 0xF47488, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xF47626, "Viltechmeda UAB", "VILTECHMEDA-UAB" }, { 0xF47960, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF47A4E, "Woojeon&Handan", "WOOJEON-HANDAN" }, { 0xF47ACC, "SolidFire, Inc.", "SOLIDFIRE" }, { 0xF47B09, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF47B5E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF47DEF, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF47F35, "Cisco Systems, Inc", "CISCO" }, { 0xF48139, "CANON INC.", "CANON" }, { 0xF483CD, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xF483E1, "Shanghai Clouder Semiconductor Co.,Ltd", "SHANGHAI-CLOUDER-SEMICONDUCTOR" }, { 0xF4844C, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF4848D, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xF485C6, "FDT Technologies", "FDT-TECHNOLOGIES" }, { 0xF48771, "Infoblox", "INFOBLOX" }, { 0xF487C5, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF48B32, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xF48C50, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF48CEB, "D-Link International", "D-LINK" }, { 0xF48E09, "Nokia Corporation", "NOKIA" }, { 0xF48E38, "Dell Inc.", "DELL" }, { 0xF48E92, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF490CA, "Tensorcom", "TENSORCOM" }, { 0xF490CB, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF490EA, "Deciso B.V.", "DECISO-B-V" }, { 0xF4911E, "ZHUHAI EWPE INFORMATION TECHNOLOGY INC", "ZHUHAI-EWPE-INFORMATION" }, { 0xF492BF, "Ubiquiti Inc", "UBIQUITI" }, { 0xF4931C, "Universal Electronics, Inc.", "UNIVERSAL-ELECTRONICS" }, { 0xF4939F, "Hon Hai Precision Industry Co., Ltd.", "HON-HAI-PRECISION-INDUSTRY" }, { 0xF49461, "NexGen Storage", "NEXGEN-STORAGE" }, { 0xF49466, "CountMax, ltd", "COUNTMAX" }, { 0xF4951B, "Hefei Radio Communication Technology Co., Ltd", "HEFEI-RADIO-COMMUNICATION" }, { 0xF49634, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF49651, "NAKAYO Inc", "NAKAYO" }, { 0xF497C2, "Nebulon Inc", "NEBULON" }, { 0xF499AC, "WEBER Schraubautomaten GmbH", "WEBER-SCHRAUBAUTOMATEN" }, { 0xF49C12, "Structab AB", "STRUCTAB-AB" }, { 0xF49DA7, "Private", "PRIVATE" }, { 0xF49EEF, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xF49F54, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF49FF3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF4A17F, "Marquardt Electronics Technology (Shanghai) Co.Ltd", "MARQUARDT-ELECTRONICS-SHANGHAI" }, { 0xF4A294, "EAGLE WORLD DEVELOPMENT CO., LIMITED", "EAGLE-WORLD-DEVELOPMENT" }, { 0xF4A454, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF4A475, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF4A4D6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF4A52A, "Hawa Technologies Inc", "HAWA-TECHNOLOGIES" }, { 0xF4A59D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF4A739, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xF4A80D, "Wistron InfoComm(Kunshan)Co.,Ltd.", "WISTRON-INFOCOMM-KUNSHAN" }, { 0xF4A997, "CANON INC.", "CANON" }, { 0xF4AAD0, "OHSUNG", "OHSUNG" }, { 0xF4ACC1, "Cisco Systems, Inc", "CISCO" }, { 0xF4AFE7, "Apple, Inc.", "APPLE" }, { 0xF4B164, "Lightning Telecommunications Technology Co. Ltd", "LIGHTNING-TELECOMMUNICATIONS" }, { 0xF4B19C, "AltoBeam (China) Inc.", "ALTOBEAM-CHINA" }, { 0xF4B1C2, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0xF4B301, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF4B381, "WindowMaster A/S", "WINDOWMASTER-A/S" }, { 0xF4B3B1, "Silicon Laboratories", "SILICON-LABORATORIES" }, { 0xF4B520, "Biostar Microtech international corp.", "BIOSTAR-MICROTECH" }, { 0xF4B52F, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xF4B549, "Xiamen Yeastar Information Technology Co., Ltd.", "XIAMEN-YEASTAR-INFORMATION" }, { 0xF4B5AA, "zte corporation", "ZTE" }, { 0xF4B5BB, "CERAGON NETWORKS", "CERAGON-NETWORKS" }, { 0xF4B688, "PLANTRONICS, INC.", "PLANTRONICS" }, { 0xF4B6C6, "Indra Heera Technology LLP", "INDRA-HEERA-LLP" }, { 0xF4B6E5, "TerraSem Co.,Ltd", "TERRASEM" }, { 0xF4B72A, "TIME INTERCONNECT LTD", "TIME-INTERCONNECT" }, { 0xF4B78D, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF4B7B3, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xF4B7E2, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xF4B85E, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF4B898, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF4B8A7, "zte corporation", "ZTE" }, { 0xF4BBC7, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xF4BC97, "Shenzhen Crave Communication Co., LTD", "SHENZHEN-CRAVE-COMMUNICATION" }, { 0xF4BCDA, "Shenzhen Jingxun Software Telecommunication Technology Co.,Ltd", "SHENZHEN-JINGXUN-SOFTWARE-TELECOMMUNICATION" }, { 0xF4BD7C, "Chengdu jinshi communication Co., LTD", "CHENGDU-JINSHI-COMMUNICATION" }, { 0xF4BD9E, "Cisco Systems, Inc", "CISCO" }, { 0xF4BEEC, "Apple, Inc.", "APPLE" }, { 0xF4BF80, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF4BFA8, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xF4BFBB, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xF4C02F, "BlueBite", "BLUEBITE" }, { 0xF4C114, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xF4C248, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF4C447, "Coagent International Enterprise Limited", "COAGENT" }, { 0xF4C4D6, "Shenzhen Xinfa Electronic Co.,ltd", "SHENZHEN-XINFA" }, { 0xF4C613, "Alcatel-Lucent Shanghai Bell Co., Ltd", "ALCATEL-LUCENT-SHANGHAI-BELL" }, { 0xF4C6D7, "blackned GmbH", "BLACKNED" }, { 0xF4C714, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF4C795, "WEY Technology AG", "WEY" }, { 0xF4C7AA, "Marvell Semiconductors", "MARVELL-SEMICONDUCTORS" }, { 0xF4C7C8, "Kelvin Inc.", "KELVIN" }, { 0xF4C88A, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF4CA24, "FreeBit Co., Ltd.", "FREEBIT" }, { 0xF4CAE5, "FREEBOX SAS", "FREEBOX-SAS" }, { 0xF4CAE7, "Arcadyan Corporation", "ARCADYAN" }, { 0xF4CB52, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF4CC55, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xF4CD90, "Vispiron Rotec GmbH", "VISPIRON-ROTEC" }, { 0xF4CE23, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF4CE36, "Nordic Semiconductor ASA", "NORDIC-SEMICONDUCTOR-ASA" }, { 0xF4CE46, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xF4CE48, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xF4CFA2, "Espressif Inc.", "ESPRESSIF" }, { 0xF4CFE2, "Cisco Systems, Inc", "CISCO" }, { 0xF4D032, "Yunnan Ideal Information&Technology.,Ltd", "YUNNAN-IDEAL-INFORMATION" }, { 0xF4D108, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF4D261, "SEMOCON Co., Ltd", "SEMOCON" }, { 0xF4D488, "Apple, Inc.", "APPLE" }, { 0xF4D580, "YAMAHA CORPORATION", "YAMAHA" }, { 0xF4D620, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xF4D7B2, "LGS Innovations, LLC", "LGS-INNOVATIONS" }, { 0xF4D9C6, "UNION MAN TECHNOLOGY CO.,LTD", "UNION-MAN" }, { 0xF4D9FB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF4DBE3, "Apple, Inc.", "APPLE" }, { 0xF4DBE6, "Cisco Systems, Inc", "CISCO" }, { 0xF4DC41, "YOUNGZONE CULTURE (SHANGHAI) CORP", "YOUNGZONE-CULTURE-SHANGHAI" }, { 0xF4DC4D, "Beijing CCD Digital Technology Co., Ltd", "BEIJING-CCD-DIGITAL" }, { 0xF4DCA5, "DAWON DNS", "DAWON-DNS" }, { 0xF4DCDA, "Zhuhai Jiahe Communication Technology Co., limited", "ZHUHAI-JIAHE-COMMUNICATION" }, { 0xF4DCF9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF4DD9E, "GoPro", "GOPRO" }, { 0xF4DE0C, "ESPOD Ltd.", "ESPOD" }, { 0xF4DEAF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF4E11E, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF4E142, "Delta Elektronika BV", "DELTA-ELEKTRONIKA" }, { 0xF4E204, "COYOTE SYSTEM", "COYOTE-SYSTEM" }, { 0xF4E2C6, "Ubiquiti Inc", "UBIQUITI" }, { 0xF4E3FB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF4E451, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF4E4AD, "zte corporation", "ZTE" }, { 0xF4E4D7, "FUJIAN STAR-NET COMMUNICATION CO.,LTD", "FUJIAN-STAR-NET-COMMUNICATION" }, { 0xF4E578, "LLC Proizvodstvennaya Kompania TransService", "LLC-PROIZVODSTVENNAYA-KOMPANIA-TRANSSERVICE" }, { 0xF4E5F2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF4E6D7, "Solar Power Technologies, Inc.", "SOLAR-POWER-TECHNOLOGIES" }, { 0xF4E8C7, "Apple, Inc.", "APPLE" }, { 0xF4E926, "Tianjin Zanpu Technology Inc.", "TIANJIN-ZANPU" }, { 0xF4E975, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xF4E9D4, "QLogic Corporation", "QLOGIC" }, { 0xF4EA67, "Cisco Systems, Inc", "CISCO" }, { 0xF4EAB5, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xF4EB38, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xF4EB9F, "Ellu Company 2019 SL", "ELLU-COMPANY-2019-SL" }, { 0xF4EC38, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xF4ED5F, "SHENZHEN KTC TECHNOLOGY GROUP", "SHENZHEN-KTC-GROUP" }, { 0xF4EE08, "Dell Inc.", "DELL" }, { 0xF4EE14, "MERCURY COMMUNICATION TECHNOLOGIES CO.,LTD.", "MERCURY-COMMUNICATION-TECHNOLOGIES" }, { 0xF4EE31, "Cisco Systems, Inc", "CISCO" }, { 0xF4EF9E, "SGSG SCIENCE & TECHNOLOGY CO. LTD", "SGSG-SCIENCE" }, { 0xF4F15A, "Apple, Inc.", "APPLE" }, { 0xF4F197, "EMTAKE Inc", "EMTAKE" }, { 0xF4F19E, "Wistron InforComm (Zhongshan) Corporation", "WISTRON-INFORCOMM-ZHONGSHAN" }, { 0xF4F1E1, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xF4F26D, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xF4F309, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF4F3AA, "JBL GmbH & Co. KG", "JBL" }, { 0xF4F524, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xF4F5A5, "Nokia Corporation", "NOKIA" }, { 0xF4F5D8, "Google, Inc.", "GOOGLE" }, { 0xF4F5DB, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xF4F5E8, "Google, Inc.", "GOOGLE" }, { 0xF4F646, "Dediprog Technology Co. Ltd.", "DEDIPROG" }, { 0xF4F647, "zte corporation", "ZTE" }, { 0xF4F70C, "Avang - neterbit", "AVANG-NETERBIT" }, { 0xF4F951, "Apple, Inc.", "APPLE" }, { 0xF4FBB8, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF4FC32, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF4FCB1, "JJ Corp", "JJ" }, { 0xF4FD2B, "ZOYI Company", "ZOYI-COMPANY" }, { 0xF4FEFB, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF8009D, "INTRACOM DEFENSE S.A.", "INTRACOM-DEFENSE" }, { 0xF800A1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF80113, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF80278, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF80332, "Khomp", "KHOMP" }, { 0xF80377, "Apple, Inc.", "APPLE" }, { 0xF8042E, "SAMSUNG ELECTRO-MECHANICS(THAILAND)", "SAMSUNG-ELECTRO-MECHANICS-THAILAND" }, { 0xF8051C, "DRS Imaging and Targeting Solutions", "DRS-IMAGING-AND-TARGETING-SOLUTIONS" }, { 0xF8075D, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF8084F, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xF80BBE, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xF80BCB, "Cisco Systems, Inc", "CISCO" }, { 0xF80BD0, "Datang Telecom communication terminal (Tianjin) Co., Ltd.", "DATANG-TELECOM-COMMUNICATION-TERMINAL-TIANJIN" }, { 0xF80C58, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xF80CF3, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xF80D43, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xF80D60, "CANON INC.", "CANON" }, { 0xF80DA9, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xF80DAC, "HP Inc.", "HP" }, { 0xF80DEA, "ZyCast Technology Inc.", "ZYCAST" }, { 0xF80DF0, "zte corporation", "ZTE" }, { 0xF80DF1, "Sontex SA", "SONTEX" }, { 0xF80F41, "Wistron Infocomm (Zhongshan) Corporation", "WISTRON-INFOCOMM-ZHONGSHAN" }, { 0xF80F6F, "Cisco Systems, Inc", "CISCO" }, { 0xF80F84, "Natural Security SAS", "NATURAL-SECURITY-SAS" }, { 0xF80FF9, "Google, Inc.", "GOOGLE" }, { 0xF81037, "Atopia Systems, LP", "ATOPIA-LP" }, { 0xF81093, "Apple, Inc.", "APPLE" }, { 0xF81308, "Nokia", "NOKIA" }, { 0xF814FE, "UNION MAN TECHNOLOGY CO.,LTD", "UNION-MAN" }, { 0xF81547, "Avaya Inc", "AVAYA" }, { 0xF81654, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF81897, "2Wire Inc", "2WIRE" }, { 0xF81A2B, "Google, Inc.", "GOOGLE" }, { 0xF81A67, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xF81B04, "Zhong Shan City Richsound Electronic Industrial Ltd", "ZHONG-SHAN-CITY-RICHSOUND-INDUSTRIAL" }, { 0xF81CE5, "Telefonbau Behnke GmbH", "TELEFONBAU-BEHNKE" }, { 0xF81D0F, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0xF81D78, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF81D90, "Solidwintech", "SOLIDWINTECH" }, { 0xF81D93, "Longdhua(Beijing) Controls Technology Co.,Ltd", "LONGDHUA-BEIJING-CONTROLS" }, { 0xF81E6F, "EBG compleo GmbH", "EBG-COMPLEO" }, { 0xF81EDF, "Apple, Inc.", "APPLE" }, { 0xF81F32, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xF82055, "Green Information System", "GREEN-INFORMATION-SYSTEM" }, { 0xF820A9, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF82229, "Nokia Shanghai Bell Co., Ltd.", "NOKIA-SHANGHAI-BELL" }, { 0xF82285, "Cypress Technology CO., LTD.", "CYPRESS" }, { 0xF82387, "Shenzhen Horn Audio Co.,Ltd.", "SHENZHEN-HORN-AUDIO" }, { 0xF823B2, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF82441, "Yeelink", "YEELINK" }, { 0xF824DB, "EntryPoint Networks, Inc", "ENTRYPOINT-NETWORKS" }, { 0xF824E4, "Beyonics Technology Electronic (Changshu) Co., Ltd", "BEYONICS-CHANGSHU" }, { 0xF82551, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0xF8272E, "Mercku", "MERCKU" }, { 0xF82793, "Apple, Inc.", "APPLE" }, { 0xF82819, "Liteon Technology Corporation", "LITEON" }, { 0xF828C9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF829C0, "Availink, Inc.", "AVAILINK" }, { 0xF82B7F, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF82BC8, "Jiangsu Switter Co., Ltd", "JIANGSU-SWITTER" }, { 0xF82C18, "2Wire Inc", "2WIRE" }, { 0xF82D7C, "Apple, Inc.", "APPLE" }, { 0xF82DC0, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xF82E0C, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF82E3F, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF82E8E, "Nanjing Kechen Electric Co., Ltd.", "NANJING-KECHEN-ELECTRIC" }, { 0xF82EDB, "RTW GmbH & Co. KG", "RTW" }, { 0xF82F08, "Molex CMS", "MOLEX-CMS" }, { 0xF82F5B, "eGauge Systems LLC", "EGAUGE" }, { 0xF82F65, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF82F6A, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xF82FA8, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xF83002, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF83094, "Alcatel-Lucent Telecom Limited", "ALCATEL-LUCENT-TELECOM" }, { 0xF8313E, "endeavour GmbH", "ENDEAVOUR" }, { 0xF832E4, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xF83331, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF83376, "Good Mind Innovation Co., Ltd.", "GOOD-MIND-INNOVATION" }, { 0xF83441, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF83451, "Comcast-SRL", "COMCAST-SRL" }, { 0xF8345A, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0xF83553, "Magenta Research Ltd.", "MAGENTA-RESEARCH" }, { 0xF835DD, "Gemtek Technology Co., Ltd.", "GEMTEK" }, { 0xF8369B, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF83869, "LG Electronics", "LG-ELECTRONICS" }, { 0xF83880, "Apple, Inc.", "APPLE" }, { 0xF83B1D, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xF83B7E, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF83C80, "MITSUMI ELECTRIC CO.,LTD.", "MITSUMI-ELECTRIC" }, { 0xF83CBF, "BOTATO ELECTRONICS SDN BHD", "BOTATO-ELECTRONICS" }, { 0xF83D4E, "Softlink Automation System Co., Ltd", "SOFTLINK-AUTOMATION-SYSTEM" }, { 0xF83DFF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF83E95, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF83F51, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF842FB, "Yasuda Joho Co.,ltd.", "YASUDA-JOHO" }, { 0xF844E3, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xF845AD, "Konka Group Co., Ltd.", "KONKA-GROUP" }, { 0xF845C4, "Shenzhen Netforward Micro-Electronic Co., Ltd.", "SHENZHEN-NETFORWARD-MICRO" }, { 0xF8461C, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0xF8462D, "SYNTEC Incorporation", "SYNTEC-INCORPORATION" }, { 0xF8472D, "X2gen Digital Corp. Ltd", "X2GEN-DIGITAL" }, { 0xF84897, "Hitachi, Ltd.", "HITACHI" }, { 0xF848FD, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xF84A73, "EUMTECH CO., LTD", "EUMTECH" }, { 0xF84A7F, "Innometriks Inc", "INNOMETRIKS" }, { 0xF84ABF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF84CDA, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF84D33, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xF84D89, "Apple, Inc.", "APPLE" }, { 0xF84DFC, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xF84E17, "Sony Corporation", "SONY" }, { 0xF84E58, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF84E73, "Apple, Inc.", "APPLE" }, { 0xF84F57, "Cisco Systems, Inc", "CISCO" }, { 0xF84FAD, "Hui Zhou Gaoshengda Technology Co.,LTD", "HUI-ZHOU-GAOSHENGDA" }, { 0xF8501C, "Tianjin Geneuo Technology Co.,Ltd", "TIANJIN-GENEUO" }, { 0xF85063, "Verathon", "VERATHON" }, { 0xF85128, "SimpliSafe", "SIMPLISAFE" }, { 0xF8516D, "Denwa Technology Corp.", "DENWA" }, { 0xF852DF, "VNL Europe AB", "VNL-EUROPE-AB" }, { 0xF85329, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF854AF, "ECI Telecom Ltd.", "ECI-TELECOM" }, { 0xF854B8, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xF854F6, "AzureWave Technology Inc.", "AZUREWAVE" }, { 0xF85548, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF855CD, "Visteon Corporation", "VISTEON" }, { 0xF856C3, "zte corporation", "ZTE" }, { 0xF8572E, "Core Brands, LLC", "CORE-BRANDS" }, { 0xF85971, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF85A00, "Sanford LP", "SANFORD-LP" }, { 0xF85B3B, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xF85B6E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF85B9B, "iMercury", "IMERCURY" }, { 0xF85B9C, "SB SYSTEMS Co.,Ltd", "SB" }, { 0xF85BC9, "M-Cube Spa", "M-CUBE-SPA" }, { 0xF85C45, "IC Nexus Co. Ltd.", "IC-NEXUS" }, { 0xF85C4D, "Nokia", "NOKIA" }, { 0xF85C7D, "Shenzhen Honesty Electronics Co.,Ltd.", "SHENZHEN-HONESTY-ELECTRONICS" }, { 0xF85C7E, "Shenzhen Honesty Electronics Co.,Ltd.", "SHENZHEN-HONESTY-ELECTRONICS" }, { 0xF85E0B, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xF85E3C, "SHENZHEN ZHIBOTONG ELECTRONICS CO.,LTD", "SHENZHEN-ZHIBOTONG-ELECTRONICS" }, { 0xF85E42, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xF85EA0, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF85F2A, "Nokia Corporation", "NOKIA" }, { 0xF860F0, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xF86214, "Apple, Inc.", "APPLE" }, { 0xF862AA, "xn systems", "XN" }, { 0xF8633F, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF863D9, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xF86465, "Anova Applied Electronics, Inc.", "ANOVA-APPLIED-ELECTRONICS" }, { 0xF864B8, "zte corporation", "ZTE" }, { 0xF86601, "Suzhou Chi-tek information technology Co., Ltd", "SUZHOU-CHI-TEK-INFORMATION" }, { 0xF8665A, "Apple, Inc.", "APPLE" }, { 0xF86691, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xF866D1, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xF866F2, "Cisco Systems, Inc", "CISCO" }, { 0xF86971, "Seibu Electric Co.,", "SEIBU-ELECTRIC" }, { 0xF86B14, "Barrot Technology Co.,LTD", "BARROT" }, { 0xF86BD9, "Cisco Systems, Inc", "CISCO" }, { 0xF86C03, "Shenzhen Teleone Technology Co., Ltd", "SHENZHEN-TELEONE" }, { 0xF86CE1, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xF86D73, "Zengge Co., Limited", "ZENGGE" }, { 0xF86ECF, "Arcx Inc", "ARCX" }, { 0xF86EEE, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF86FB0, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xF86FC1, "Apple, Inc.", "APPLE" }, { 0xF86FDE, "Shenzhen Goodix Technology Co.,Ltd.", "SHENZHEN-GOODIX" }, { 0xF8710C, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xF871FE, "The Goldman Sachs Group, Inc.", "THE-GOLDMAN-SACHS-GROUP" }, { 0xF872EA, "Cisco Systems, Inc", "CISCO" }, { 0xF87394, "NETGEAR", "NETGEAR" }, { 0xF873A2, "Avaya Inc", "AVAYA" }, { 0xF87588, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF875A4, "LCFC(HeFei) Electronics Technology co., ltd", "LCFC-HEFEI-ELECTRONICS" }, { 0xF8769B, "Neopis Co., Ltd.", "NEOPIS" }, { 0xF877B8, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF87907, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF8790A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xF87928, "zte corporation", "ZTE" }, { 0xF87999, "Guangdong Jiuzhi Technology Co.,Ltd", "GUANGDONG-JIUZHI" }, { 0xF87A41, "Cisco Systems, Inc", "CISCO" }, { 0xF87AEF, "Rosonix Technology, Inc.", "ROSONIX" }, { 0xF87B20, "Cisco Systems, Inc", "CISCO" }, { 0xF87B62, "FASTWEL INTERNATIONAL CO., LTD. Taiwan Branch", "FASTWEL-TAIWAN-BRANCH" }, { 0xF87B7A, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xF87B8C, "Amped Wireless", "AMPED-WIRELESS" }, { 0xF87D76, "Apple, Inc.", "APPLE" }, { 0xF87FA5, "GREATEK", "GREATEK" }, { 0xF88096, "Elsys Equipamentos Eletrônicos Ltda", "ELSYS-EQUIPAMENTOS-ELETRNICOS-LTDA" }, { 0xF8811A, "OVERKIZ", "OVERKIZ" }, { 0xF88200, "CaptionCall", "CAPTIONCALL" }, { 0xF88479, "Yaojin Technology(Shenzhen)Co.,Ltd", "YAOJIN-SHENZHEN" }, { 0xF884F2, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF885F9, "Calix Inc.", "CALIX" }, { 0xF887F1, "Apple, Inc.", "APPLE" }, { 0xF8893C, "Inventec Appliances Corp.", "INVENTEC-APPLIANCES" }, { 0xF889D2, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0xF88A3C, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF88A5E, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xF88B37, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xF88C1C, "KAISHUN ELECTRONIC TECHNOLOGY CO., LTD. BEIJING", "KAISHUN-BEIJING" }, { 0xF88C21, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xF88DEF, "Tenebraex", "TENEBRAEX" }, { 0xF88E85, "Comtrend Corporation", "COMTREND" }, { 0xF88EA1, "Edgecore Networks Corporation", "EDGECORE-NETWORKS" }, { 0xF88F07, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF88FCA, "Google, Inc.", "GOOGLE" }, { 0xF89066, "Nain Inc.", "NAIN" }, { 0xF8912A, "GLP German Light Products GmbH", "GLP-GERMAN-LIGHT-PRODUCTS" }, { 0xF89173, "AEDLE SAS", "AEDLE-SAS" }, { 0xF893F3, "VOLANS", "VOLANS" }, { 0xF894C2, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF89522, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF89550, "Proton Products Chengdu Ltd", "PROTON-PRODUCTS-CHENGDU" }, { 0xF895C7, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xF895EA, "Apple, Inc.", "APPLE" }, { 0xF89725, "OPPLE LIGHTING CO., LTD", "OPPLE-LIGHTING" }, { 0xF89753, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF897A9, "Ericsson AB", "ERICSSON-AB" }, { 0xF897CF, "DAESHIN-INFORMATION TECHNOLOGY CO., LTD.", "DAESHIN-INFORMATION" }, { 0xF8983A, "Leeman International (HongKong) Limited", "LEEMAN-HONGKONG" }, { 0xF898B9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF898EF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF89910, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xF89955, "Fortress Technology Inc", "FORTRESS" }, { 0xF89A25, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF89A78, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF89B6E, "Nokia Solutions and Networks GmbH & Co. KG", "NOKIA-SOLUTIONS-AND-NETWORKS" }, { 0xF89D0D, "Control Technology Inc.", "CONTROL" }, { 0xF89DBB, "Tintri", "TINTRI" }, { 0xF89E28, "Cisco Meraki", "CISCO-MERAKI" }, { 0xF89E94, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF89FB8, "YAZAKI Energy System Corporation", "YAZAKI-ENERGY-SYSTEM" }, { 0xF8A03D, "Dinstar Technologies Co., Ltd.", "DINSTAR-TECHNOLOGIES" }, { 0xF8A097, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xF8A188, "LED Roadway Lighting", "LED-ROADWAY-LIGHTING" }, { 0xF8A26D, "CANON INC.", "CANON" }, { 0xF8A2B4, "RHEWA-WAAGENFABRIK August Freudewald GmbH &Co. KG", "RHEWA-WAAGENFABRIK-AUGUST-FREUDEWALD-AMP" }, { 0xF8A2D6, "Liteon Technology Corporation", "LITEON" }, { 0xF8A34F, "zte corporation", "ZTE" }, { 0xF8A45F, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xF8A475, "PT Indoreka Jaya Wutama", "PT-INDOREKA-JAYA-WUTAMA" }, { 0xF8A4FB, "Nanjing Decowell Automation Co.,LTD", "NANJING-DECOWELL-AUTOMATION" }, { 0xF8A5C5, "Cisco Systems, Inc", "CISCO" }, { 0xF8A73A, "Cisco Systems, Inc", "CISCO" }, { 0xF8A763, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0xF8A91F, "ZVISION Technologies Co., Ltd", "ZVISION-TECHNOLOGIES" }, { 0xF8A963, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0xF8A9D0, "LG Electronics (Mobile Communications)", "LG-ELECTRONICS-MOBILE-COMMUNICATION" }, { 0xF8A9DE, "PUISSANCE PLUS", "PUISSANCE-PLUS" }, { 0xF8AA3F, "DWnet Technologies(Suzhou) Corporation", "DWNET-TECHNOLOGIES-SUZHOU" }, { 0xF8AA8A, "Axview Technology (Shenzhen) Co.,Ltd", "AXVIEW-SHENZHEN" }, { 0xF8AAB3, "DESSMANN (China) Machinery & Electronic Co., Ltd", "DESSMANN-CHINA-MACHINERY" }, { 0xF8AB05, "Sagemcom Broadband SAS", "SAGEMCOM-BROADBAND-SAS" }, { 0xF8AB82, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xF8ABE5, "shenzhen worldelite electronics co., LTD", "SHENZHEN-WORLDELITE-ELECTRONICS" }, { 0xF8AC65, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF8AC6D, "Deltenna Ltd", "DELTENNA" }, { 0xF8AD24, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xF8ADCB, "HMD Global Oy", "HMD-GLOBAL-OY" }, { 0xF8AE27, "John Deere Electronic Solutions", "JOHN-DEERE-SOLUTIONS" }, { 0xF8AF05, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xF8AFDB, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xF8B132, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF8B156, "Dell Inc.", "DELL" }, { 0xF8B1DD, "Apple, Inc.", "APPLE" }, { 0xF8B2F3, "GUANGZHOU BOSMA TECHNOLOGY CO.,LTD", "GUANGZHOU-BOSMA" }, { 0xF8B46A, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xF8B54D, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF8B568, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xF8B599, "Guangzhou CHNAVS Digital Technology Co.,Ltd", "GUANGZHOU-CHNAVS-DIGITAL" }, { 0xF8B797, "NEC Platforms, Ltd.", "NEC-PLATFORMS" }, { 0xF8B7E2, "Cisco Systems, Inc", "CISCO" }, { 0xF8B8B4, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0xF8B95A, "LG Innotek", "LG-INNOTEK" }, { 0xF8BAE6, "Nokia", "NOKIA" }, { 0xF8BBBF, "eero inc.", "EERO" }, { 0xF8BC0E, "eero inc.", "EERO" }, { 0xF8BC12, "Dell Inc.", "DELL" }, { 0xF8BC41, "Rosslare Enterprises Limited", "ROSSLARE-ENTERPRISES" }, { 0xF8BE0D, "A2UICT Co.,Ltd.", "A2UICT" }, { 0xF8BF09, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF8C001, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xF8C091, "Highgates Technology", "HIGHGATES" }, { 0xF8C116, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xF8C120, "Xi'an Link-Science Technology Co.,Ltd", "XI-AN-LINK-SCIENCE" }, { 0xF8C249, "AMPERE COMPUTING LLC", "AMPERE-COMPUTING" }, { 0xF8C288, "Cisco Systems, Inc", "CISCO" }, { 0xF8C372, "TSUZUKI DENKI", "TSUZUKI-DENKI" }, { 0xF8C397, "NZXT Corp. Ltd.", "NZXT" }, { 0xF8C39E, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF8C3CC, "Apple, Inc.", "APPLE" }, { 0xF8C4AE, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xF8C4F3, "Shanghai Infinity Wireless Technologies Co.,Ltd.", "SHANGHAI-INFINITY-WIRELESS-TECHNOLOGIES" }, { 0xF8C678, "Carefusion", "CAREFUSION" }, { 0xF8C96C, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xF8CA59, "NetComm Wireless", "NETCOMM-WIRELESS" }, { 0xF8CA85, "NEC Corporation", "NEC" }, { 0xF8CAB8, "Dell Inc.", "DELL" }, { 0xF8CC6E, "DEPO Electronics Ltd", "DEPO-ELECTRONICS" }, { 0xF8CDC8, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xF8CE72, "Wistron Corporation", "WISTRON" }, { 0xF8CFC5, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xF8D027, "Seiko Epson Corporation", "SEIKO-EPSON" }, { 0xF8D0AC, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0xF8D0BD, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF8D111, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xF8D2AC, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xF8D3A9, "AXAN Networks", "AXAN-NETWORKS" }, { 0xF8D462, "Pumatronix Equipamentos Eletronicos Ltda.", "PUMATRONIX-EQUIPAMENTOS-ELETRONICOS-LTDA" }, { 0xF8D478, "Flextronics Tech.(Ind) Pvt Ltd", "FLEXTRONICS-TECH-IND-PVT" }, { 0xF8D756, "Simm Tronic Limited", "SIMM-TRONIC" }, { 0xF8D758, "Veratron AG", "VERATRON" }, { 0xF8D7BF, "REV Ritter GmbH", "REV-RITTER" }, { 0xF8D9B8, "Open Mesh, Inc.", "OPEN-MESH" }, { 0xF8DA0C, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xF8DADF, "EcoTech, Inc.", "ECOTECH" }, { 0xF8DAE2, "NDC Technologies", "NDC-TECHNOLOGIES" }, { 0xF8DAF4, "Taishan Online Technology Co., Ltd.", "TAISHAN-ONLINE" }, { 0xF8DB4C, "PNY Technologies, INC.", "PNY-TECHNOLOGIES" }, { 0xF8DB7F, "HTC Corporation", "HTC" }, { 0xF8DB88, "Dell Inc.", "DELL" }, { 0xF8DC7A, "Variscite LTD", "VARISCITE" }, { 0xF8DE73, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF8DF15, "Sunitec Enterprise Co.,Ltd", "SUNITEC" }, { 0xF8DFA8, "zte corporation", "ZTE" }, { 0xF8DFE1, "MyLight Systems", "MYLIGHT" }, { 0xF8E079, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xF8E43B, "ASIX Electronics Corporation", "ASIX-ELECTRONICS" }, { 0xF8E44E, "MCOT INC.", "MCOT" }, { 0xF8E4A4, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xF8E4E3, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF8E4FB, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0xF8E57E, "Cisco Systems, Inc", "CISCO" }, { 0xF8E5CE, "Apple, Inc.", "APPLE" }, { 0xF8E5CF, "CGI IT UK LIMITED", "CGI-IT-UK" }, { 0xF8E61A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF8E71E, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xF8E7A0, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xF8E7B5, "µTech Tecnologia LTDA", "TECH-TECNOLOGIA-LTDA" }, { 0xF8E811, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF8E877, "Harman/Becker Automotive Systems GmbH", "HARMAN/BECKER-AUTOMOTIVE" }, { 0xF8E903, "D-Link International", "D-LINK" }, { 0xF8E94E, "Apple, Inc.", "APPLE" }, { 0xF8E94F, "Cisco Systems, Inc", "CISCO" }, { 0xF8E968, "Egker Kft.", "EGKER-KFT" }, { 0xF8EA0A, "Dipl.-Math. Michael Rauch", "DIPL-MATH-MICHAEL-RAUCH" }, { 0xF8EDA5, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xF8EDAE, "MOBIWIRE MOBILES(NINGBO) CO.,LTD", "MOBIWIRE-MOBILES-NINGBO" }, { 0xF8F005, "Newport Media Inc.", "NEWPORT-MEDIA" }, { 0xF8F014, "RackWare Inc.", "RACKWARE" }, { 0xF8F082, "NAGTECH LLC", "NAGTECH" }, { 0xF8F09D, "Hangzhou Prevail Communication Technology Co., Ltd", "HANGZHOU-PREVAIL-COMMUNICATION" }, { 0xF8F0C5, "Suzhou Kuhan Information Technologies Co.,Ltd.", "SUZHOU-KUHAN-INFORMATION-TECHNOLOGIES" }, { 0xF8F1B6, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xF8F1E6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xF8F21E, "Intel Corporate", "INTEL-CORPORATE" }, { 0xF8F25A, "G-Lab GmbH", "G-LAB" }, { 0xF8F464, "Rawe Electonic GmbH", "RAWE-ELECTONIC" }, { 0xF8F532, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xF8F7B9, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xF8F7D3, "International Communications Corporation", "COMMUNICATION" }, { 0xF8F7FF, "SYN-TECH SYSTEMS INC", "SYN-TECH" }, { 0xF8FB2F, "Santur Corporation", "SANTUR" }, { 0xF8FCE1, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xF8FE5C, "Reciprocal Labs Corp", "RECIPROCAL-LABS" }, { 0xF8FEA8, "Technico Japan Corporation", "TECHNICO-JAPAN" }, { 0xF8FF0B, "Electronic Technology Inc.", "" }, { 0xF8FF5F, "Shenzhen Communication Technology Co.,Ltd", "SHENZHEN-COMMUNICATION" }, { 0xF8FFC2, "Apple, Inc.", "APPLE" }, { 0xFC0012, "Toshiba Samsung Storage Technolgoy Korea Corporation", "TOSHIBA-SAMSUNG-STORAGE-TECHNOLGOY-KOREA" }, { 0xFC017C, "Hon Hai Precision Ind. Co.,Ltd.", "HON-HAI-PRECISION-IND" }, { 0xFC019E, "VIEVU", "VIEVU" }, { 0xFC01CD, "FUNDACION TEKNIKER", "FUNDACION-TEKNIKER" }, { 0xFC0296, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xFC039F, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xFC041C, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xFC0647, "Cortland Research, LLC", "CORTLAND-RESEARCH" }, { 0xFC06ED, "M2Motive Technology Inc.", "M2MOTIVE" }, { 0xFC0736, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xFC07A0, "LRE Medical GmbH", "LRE-MEDICAL" }, { 0xFC084A, "FUJITSU LIMITED", "FUJITSU" }, { 0xFC0877, "Prentke Romich Company", "PRENTKE-ROMICH-COMPANY" }, { 0xFC09D8, "ACTEON Group", "ACTEON-GROUP" }, { 0xFC09F6, "GUANGDONG TONZE ELECTRIC CO.,LTD", "GUANGDONG-TONZE-ELECTRIC" }, { 0xFC0A81, "Extreme Networks, Inc.", "EXTREME-NETWORKS" }, { 0xFC0C45, "Shenzhen SuperElectron Technology Co.,Ltd.", "SHENZHEN-SUPERELECTRON" }, { 0xFC0F4B, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xFC0FE6, "Sony Interactive Entertainment Inc.", "SONY-INTERACTIVE-ENTERTAINMENT" }, { 0xFC0FE7, "Microchip Technology Inc.", "MICROCHIP" }, { 0xFC101A, "Palo Alto Networks", "PALO-ALTO-NETWORKS" }, { 0xFC10BD, "Control Sistematizado S.A.", "CONTROL-SISTEMATIZADO" }, { 0xFC10C6, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0xFC1165, "Cambium Networks Limited", "CAMBIUM-NETWORKS" }, { 0xFC1186, "Logic3 plc", "LOGIC3-PLC" }, { 0xFC1193, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFC122C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFC1263, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xFC1349, "Global Apps Corp.", "GLOBAL-APPS" }, { 0xFC13F0, "Bouffalo Lab (Nanjing) Co., Ltd.", "BOUFFALO-LAB-NANJING" }, { 0xFC1499, "Aimore Acoustics Incorporation", "AIMORE-ACOUSTICS-INCORPORATION" }, { 0xFC15B4, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xFC1607, "Taian Technology(Wuxi) Co.,Ltd.", "TAIAN-WUXI" }, { 0xFC1794, "InterCreative Co., Ltd", "INTERCREATIVE" }, { 0xFC1803, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFC183C, "Apple, Inc.", "APPLE" }, { 0xFC1910, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xFC1928, "Actions Microelectronics Co., Ltd", "ACTIONS-MICROELECTRONICS" }, { 0xFC1999, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xFC19D0, "Cloud Vision Networks Technology Co.,Ltd.", "CLOUD-VISION-NETWORKS" }, { 0xFC1A11, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xFC1BD1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFC1BFF, "V-ZUG AG", "V-ZUG" }, { 0xFC1CA1, "Nokia", "NOKIA" }, { 0xFC1D2A, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xFC1D3A, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFC1D43, "Apple, Inc.", "APPLE" }, { 0xFC1D59, "I Smart Cities HK Ltd", "I-SMART-CITIES-HK" }, { 0xFC1D84, "Autobase", "AUTOBASE" }, { 0xFC1E16, "IPEVO corp", "IPEVO" }, { 0xFC1F19, "SAMSUNG ELECTRO MECHANICS CO., LTD.", "SAMSUNG-ELECTRO-MECHANICS" }, { 0xFC1FC0, "EURECAM", "EURECAM" }, { 0xFC229C, "Han Kyung I Net Co.,Ltd.", "HAN-KYUNG-I-NET" }, { 0xFC22D3, "FDSYS", "FDSYS" }, { 0xFC22F4, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xFC2325, "EosTek (Shenzhen) Co., Ltd.", "EOSTEK-SHENZHEN" }, { 0xFC253F, "Apple, Inc.", "APPLE" }, { 0xFC27A2, "TRANS ELECTRIC CO., LTD.", "TRANS-ELECTRIC" }, { 0xFC29E3, "Infinix mobility limited", "INFINIX-MOBILITY" }, { 0xFC29F3, "McPay Co.,LTD.", "MCPAY" }, { 0xFC2A46, "Realme Chongqing Mobile Telecommunications Corp.,Ltd.", "REALME-CHONGQING-MOBILE-TELECOMMUNICATIONS" }, { 0xFC2A54, "Connected Data, Inc.", "CONNECTED-DATA" }, { 0xFC2A9C, "Apple, Inc.", "APPLE" }, { 0xFC2BB2, "Actiontec Electronics, Inc", "ACTIONTEC-ELECTRONICS" }, { 0xFC2CFD, "dormakaba Canada Inc. - Keyscan", "DORMAKABA-CANADA-KEYSCAN" }, { 0xFC2D5E, "zte corporation", "ZTE" }, { 0xFC2E19, "China Mobile Group Device Co.,Ltd.", "CHINA-MOBILE-GROUP-DEVICE" }, { 0xFC2E2D, "Lorom Industrial Co.LTD.", "LOROM-INDUSTRIAL" }, { 0xFC2F40, "Calxeda, Inc.", "CALXEDA" }, { 0xFC2F6B, "Everspin Technologies, Inc.", "EVERSPIN-TECHNOLOGIES" }, { 0xFC2FAA, "Nokia", "NOKIA" }, { 0xFC2FEF, "UTT Technologies Co., Ltd.", "UTT-TECHNOLOGIES" }, { 0xFC315D, "Apple, Inc.", "APPLE" }, { 0xFC3288, "CELOT Wireless Co., Ltd", "CELOT-WIRELESS" }, { 0xFC3342, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xFC3357, "KAGA FEI Co., Ltd.", "KAGA-FEI" }, { 0xFC335F, "Polyera", "POLYERA" }, { 0xFC3497, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xFC3598, "Favite Inc.", "FAVITE" }, { 0xFC35E6, "Visteon Corporation", "VISTEON" }, { 0xFC372B, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xFC38C4, "China Grand Communications Co.,Ltd.", "CHINA-GRAND-COMMUNICATION" }, { 0xFC3964, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xFC3CE9, "Tsingtong Technologies Co, Ltd.", "TSINGTONG-TECHNOLOGIES" }, { 0xFC3D93, "LONGCHEER TELECOMMUNICATION LIMITED", "LONGCHEER-TELECOMMUNICATION" }, { 0xFC3DA5, "Arcadyan Corporation", "ARCADYAN" }, { 0xFC3F7C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFC3FA6, "eero inc.", "EERO" }, { 0xFC3FAB, "Henan Lanxin Technology Co., Ltd", "HENAN-LANXIN" }, { 0xFC3FDB, "Hewlett Packard", "HEWLETT-PACKARD" }, { 0xFC4009, "zte corporation", "ZTE" }, { 0xFC4203, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xFC4265, "Zhejiang Tmall Technology Co., Ltd.", "ZHEJIANG-TMALL" }, { 0xFC4463, "Universal Audio, Inc", "UNIVERSAL-AUDIO" }, { 0xFC4482, "Intel Corporate", "INTEL-CORPORATE" }, { 0xFC4499, "Swarco LEA d.o.o.", "SWARCO-LEA-D-O-O" }, { 0xFC449F, "zte corporation", "ZTE" }, { 0xFC455F, "JIANGXI SHANSHUI OPTOELECTRONIC TECHNOLOGY CO.,LTD", "JIANGXI-SHANSHUI-OPTOELECTRONIC" }, { 0xFC4596, "COMPAL INFORMATION (KUNSHAN) CO., LTD.", "COMPAL-INFORMATION-KUNSHAN" }, { 0xFC45C3, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xFC47D8, "Apple, Inc.", "APPLE" }, { 0xFC48C9, "Yobiiq Intelligence B.V.", "YOBIIQ-INTELLIGENCE-B-V" }, { 0xFC48EF, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFC492D, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xFC4AE9, "Castlenet Technology Inc.", "CASTLENET" }, { 0xFC4B1C, "INTERSENSOR S.R.L.", "INTERSENSOR" }, { 0xFC4B57, "Peerless Instrument Division of Curtiss-Wright", "PEERLESS-INSTRUMENT-DIVISION-OF-CURTISS-WRIGHT" }, { 0xFC4BBC, "Sunplus Technology Co., Ltd.", "SUNPLUS" }, { 0xFC4D8C, "SHENZHEN PANTE ELECTRONICS TECHNOLOGY CO., LTD", "SHENZHEN-PANTE-ELECTRONICS" }, { 0xFC4DA6, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFC4DD4, "Universal Global Scientific Industrial Co., Ltd.", "UNIVERSAL-GLOBAL-SCIENTIFIC-INDUSTRIAL" }, { 0xFC4EA4, "Apple, Inc.", "APPLE" }, { 0xFC5090, "SIMEX Sp. z o.o.", "SIMEX-SP-Z-O-O" }, { 0xFC51A4, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xFC528D, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xFC52CE, "Control iD", "CONTROL-ID" }, { 0xFC539E, "Shanghai Wind Technologies Co.,Ltd", "SHANGHAI-WIND-TECHNOLOGIES" }, { 0xFC55DC, "Baltic Latvian Universal Electronics LLC", "BALTIC-LATVIAN-UNIVERSAL-ELECTRONICS" }, { 0xFC5703, "Hisense broadband multimedia technology Co.,Ltd", "HISENSE-BROADBAND-MULTIMEDIA" }, { 0xFC584A, "xiamenshi c-chip technology co., ltd", "XIAMENSHI-C-CHIP" }, { 0xFC589A, "Cisco Systems, Inc", "CISCO" }, { 0xFC58DF, "Interphone Service", "INTERPHONE-SERVICE" }, { 0xFC58FA, "Shen Zhen Shi Xin Zhong Xin Technology Co.,Ltd.", "SHEN-ZHEN-SHI-XIN-ZHONG-XIN" }, { 0xFC59C0, "Arista Networks", "ARISTA-NETWORKS" }, { 0xFC5A1D, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0xFC5B24, "Weibel Scientific A/S", "WEIBEL-SCIENTIFIC-A/S" }, { 0xFC5B26, "MikroBits", "MIKROBITS" }, { 0xFC5B39, "Cisco Systems, Inc", "CISCO" }, { 0xFC5C45, "Ruckus Wireless", "RUCKUS-WIRELESS" }, { 0xFC5F49, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0xFC6018, "Zhejiang Kangtai Electric Co., Ltd.", "ZHEJIANG-KANGTAI-ELECTRIC" }, { 0xFC609B, "New H3C Technologies Co., Ltd", "NEW-H3C-TECHNOLOGIES" }, { 0xFC6179, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xFC6198, "NEC Personal Products, Ltd", "NEC-PERSONAL-PRODUCTS" }, { 0xFC61E9, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xFC626E, "Beijing MDC Telecom", "BEIJING-MDC-TELECOM" }, { 0xFC62B9, "ALPSALPINE CO,.LTD", "ALPSALPINE" }, { 0xFC643A, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xFC64BA, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xFC65B3, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xFC65DE, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xFC66CF, "Apple, Inc.", "APPLE" }, { 0xFC671F, "Tuya Smart Inc.", "TUYA-SMART" }, { 0xFC683E, "Directed Perception, Inc", "DIRECTED-PERCEPTION" }, { 0xFC6947, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xFC698C, "ANDREAS STIHL AG & Co. KG", "ANDREAS-STIHL" }, { 0xFC6A1C, "Mellanox Technologies, Inc.", "MELLANOX-TECHNOLOGIES" }, { 0xFC6BF0, "TOPWELL INTERNATIONAL HOLDINDS LIMITED", "TOPWELL-HOLDINDS" }, { 0xFC6C31, "LXinstruments GmbH", "LXINSTRUMENTS" }, { 0xFC6DC0, "BME CORPORATION", "BME" }, { 0xFC6DD1, "APRESIA Systems, Ltd.", "APRESIA" }, { 0xFC6FB7, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xFC71FA, "Trane Technologies", "TRANE-TECHNOLOGIES" }, { 0xFC73FB, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFC7516, "D-Link International", "D-LINK" }, { 0xFC75E6, "Handreamnet", "HANDREAMNET" }, { 0xFC7692, "Semptian Co.,Ltd.", "SEMPTIAN" }, { 0xFC7774, "Intel Corporate", "INTEL-CORPORATE" }, { 0xFC777B, "Hitron Technologies. Inc", "HITRON-TECHNOLOGIES" }, { 0xFC790B, "Hitachi High Technologies America, Inc.", "HITACHI-HIGH-TECHNOLOGIES-AMERICA" }, { 0xFC7A58, "Shenzhen Skyworth Digital Technology CO., Ltd", "SHENZHEN-SKYWORTH-DIGITAL" }, { 0xFC7C02, "Phicomm (Shanghai) Co., Ltd.", "PHICOMM-SHANGHAI" }, { 0xFC7CE7, "FCI USA LLC", "FCI-USA" }, { 0xFC7D6C, "HYESUNG TECHWIN Co., Ltd", "HYESUNG-TECHWIN" }, { 0xFC7F56, "CoSyst Control Systems GmbH", "COSYST-CONTROL" }, { 0xFC7FF1, "Aruba, a Hewlett Packard Enterprise Company", "ARUBA-A-HEWLETT-PACKARD-COMPANY" }, { 0xFC8329, "Trei technics", "TREI-TECHNICS" }, { 0xFC8399, "Avaya Inc", "AVAYA" }, { 0xFC83C6, "N-Radio Technologies Co., Ltd.", "N-RADIO-TECHNOLOGIES" }, { 0xFC8417, "Honor Device Co., Ltd.", "HONOR-DEVICE" }, { 0xFC84A7, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xFC8596, "Axonne Inc.", "AXONNE" }, { 0xFC862A, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xFC8743, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFC8A3D, "zte corporation", "ZTE" }, { 0xFC8B97, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0xFC8C11, "Microsoft Corporation", "MICROSOFT" }, { 0xFC8D3D, "Leapfive Tech. Ltd.", "LEAPFIVE-TECH" }, { 0xFC8E5B, "China Mobile Iot Limited company", "CHINA-MOBILE-IOT-COMPANY" }, { 0xFC8E6E, "StreamCCTV, LLC", "STREAMCCTV" }, { 0xFC8E7E, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xFC8F7D, "SHENZHEN GONGJIN ELECTRONICS CO.,LT", "SHENZHEN-GONGJIN-ELECTRONICS-LT" }, { 0xFC8F90, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xFC8FC4, "Intelligent Technology Inc.", "INTELLIGENT" }, { 0xFC90FA, "Independent Technologies", "INDEPENDENT-TECHNOLOGIES" }, { 0xFC9114, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xFC9189, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0xFC923B, "Nokia Corporation", "NOKIA" }, { 0xFC9257, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0xFC936B, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xFC9435, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFC946C, "UBIVELOX", "UBIVELOX" }, { 0xFC94CE, "zte corporation", "ZTE" }, { 0xFC94E3, "Vantiva USA LLC", "VANTIVA-USA" }, { 0xFC956A, "OCTAGON SYSTEMS CORP.", "OCTAGON" }, { 0xFC9643, "Juniper Networks", "JUNIPER-NETWORKS" }, { 0xFC97A8, "Cricut Inc.", "CRICUT" }, { 0xFC9947, "Cisco Systems, Inc", "CISCO" }, { 0xFC9AFA, "Motus Global Inc.", "MOTUS-GLOBAL" }, { 0xFC9BC6, "Sumavision Technologies Co.,Ltd", "SUMAVISION-TECHNOLOGIES" }, { 0xFC9BD4, "EdgeQ", "EDGEQ" }, { 0xFC9C98, "Arlo Technology", "ARLO" }, { 0xFC9CA7, "Apple, Inc.", "APPLE" }, { 0xFC9DD8, "Beijing TongTongYiLian Science and Technology Ltd.", "BEIJING-TONGTONGYILIAN-SCIENCE" }, { 0xFC9FAE, "Fidus Systems Inc", "FIDUS" }, { 0xFC9FE1, "CONWIN.Tech. Ltd", "CONWIN-TECH" }, { 0xFC9FFD, "Hangzhou Hikvision Digital Technology Co.,Ltd.", "HANGZHOU-HIKVISION-DIGITAL" }, { 0xFCA05A, "Oray.com co., LTD.", "ORAY-COM" }, { 0xFCA0F3, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFCA13E, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xFCA183, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xFCA22A, "PT. Callysta Multi Engineering", "PT-CALLYSTA-MULTI-ENGINEERING" }, { 0xFCA386, "SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD", "SHENZHEN-CHUANGWEI-RGB-ELECTRONICS" }, { 0xFCA47A, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xFCA5D0, "GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD", "GUANGDONG-OPPO-MOBILE-TELECOMMUNICATIONS" }, { 0xFCA621, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xFCA64C, "Alibaba cloud computing Co., Ltd", "ALIBABA-CLOUD-COMPUTING" }, { 0xFCA667, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xFCA6CD, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xFCA841, "Avaya Inc", "AVAYA" }, { 0xFCA84A, "Sentinum GmbH", "SENTINUM" }, { 0xFCA89A, "Sunitec Enterprise Co.,Ltd", "SUNITEC" }, { 0xFCA89B, "Texas Instruments", "TEXAS-INSTRUMENTS" }, { 0xFCA9B0, "MIARTECH (SHANGHAI),INC.", "MIARTECH-SHANGHAI" }, { 0xFCA9DC, "Renesas Electronics (Penang) Sdn. Bhd.", "RENESAS-ELECTRONICS-PENANG" }, { 0xFCAA14, "GIGA-BYTE TECHNOLOGY CO.,LTD.", "GIGA-BYTE" }, { 0xFCAA81, "Apple, Inc.", "APPLE" }, { 0xFCAAB6, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xFCAB90, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFCAD0F, "QTS NETWORKS", "QTS-NETWORKS" }, { 0xFCAE34, "ARRIS Group, Inc.", "ARRIS-GROUP" }, { 0xFCAF6A, "Qulsar Inc", "QULSAR" }, { 0xFCAFAC, "Socionext Inc.", "SOCIONEXT" }, { 0xFCAFBE, "TireCheck GmbH", "TIRECHECK" }, { 0xFCB0C4, "Shanghai DareGlobal Technologies Co.,Ltd", "SHANGHAI-DAREGLOBAL-TECHNOLOGIES" }, { 0xFCB0DE, "CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.", "CLOUD-NETWORK-SINGAPORE-PTE" }, { 0xFCB10D, "Shenzhen Tian Kun Technology Co.,LTD.", "SHENZHEN-TIAN-KUN" }, { 0xFCB2D6, "CIG SHANGHAI CO LTD", "CIG-SHANGHAI" }, { 0xFCB3BC, "Intel Corporate", "INTEL-CORPORATE" }, { 0xFCB467, "Espressif Inc.", "ESPRESSIF" }, { 0xFCB4E6, "ASKEY COMPUTER CORP", "ASKEY" }, { 0xFCB58A, "Wapice Ltd.", "WAPICE" }, { 0xFCB662, "IC Holdings LLC", "IC-HOLDINGS" }, { 0xFCB698, "Cambridge Industries(Group) Co.,Ltd.", "CAMBRIDGE-INDUSTRIES-GROUP" }, { 0xFCB69D, "Zhejiang Dahua Technology Co., Ltd.", "ZHEJIANG-DAHUA" }, { 0xFCB6D8, "Apple, Inc.", "APPLE" }, { 0xFCB7F0, "Idaho National Laboratory", "IDAHO-NATIONAL-LABORATORY" }, { 0xFCB97E, "GE Appliances", "GE-APPLIANCES" }, { 0xFCB9DF, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xFCBBA1, "Shenzhen Minicreate Technology Co.,Ltd", "SHENZHEN-MINICREATE" }, { 0xFCBC0E, "Zhejiang Cainiao Supply Chain Management Co., Ltd", "ZHEJIANG-CAINIAO-SUPPLY-CHAIN-MANAGEMENT" }, { 0xFCBC9C, "Vimar Spa", "VIMAR-SPA" }, { 0xFCBCD1, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFCBD67, "Arista Networks", "ARISTA-NETWORKS" }, { 0xFCBE7B, "vivo Mobile Communication Co., Ltd.", "VIVO-MOBILE-COMMUNICATION" }, { 0xFCC233, "ASUSTek COMPUTER INC.", "ASUSTEK" }, { 0xFCC23D, "Atmel Corporation", "ATMEL" }, { 0xFCC2DE, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xFCC734, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xFCC737, "Shaanxi Gangsion Electronic Technology Co., Ltd", "SHAANXI-GANGSION" }, { 0xFCC897, "zte corporation", "ZTE" }, { 0xFCCAC4, "LifeHealth, LLC", "LIFEHEALTH" }, { 0xFCCCE4, "Ascon Ltd.", "ASCON" }, { 0xFCCD2F, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xFCCF43, "HUIZHOU CITY HUIYANG DISTRICT MEISIQI INDUSTRY DEVELOPMENT CO,.LTD", "HUIZHOU-CITY-HUIYANG-DISTRICT-MEISIQI-INDUSTRY-DEVELOPMENT" }, { 0xFCCF62, "IBM Corp", "IBM" }, { 0xFCD2B6, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0xFCD436, "Motorola Mobility LLC, a Lenovo Company", "MOTOROLA-MOBILITY-LLC-A-LENOVO-COMPANY" }, { 0xFCD4F2, "The Coca Cola Company", "THE-COCA-COLA-COMPANY" }, { 0xFCD4F6, "Messana Air.Ray Conditioning s.r.l.", "MESSANA-AIR-RAY-CONDITIONING" }, { 0xFCD5D9, "Shenzhen SDMC Technology CO.,Ltd.", "SHENZHEN-SDMC" }, { 0xFCD6BD, "Robert Bosch GmbH", "ROBERT-BOSCH" }, { 0xFCD733, "TP-LINK TECHNOLOGIES CO.,LTD.", "TP-LINK-TECHNOLOGIES" }, { 0xFCD749, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xFCD817, "Beijing Hesun Technologies Co.Ltd.", "BEIJING-HESUN-TECHNOLOGIES" }, { 0xFCD848, "Apple, Inc.", "APPLE" }, { 0xFCD908, "Xiaomi Communications Co Ltd", "XIAOMI-COMMUNICATION" }, { 0xFCDB21, "SAMSARA NETWORKS INC", "SAMSARA-NETWORKS" }, { 0xFCDB96, "ENERVALLEY CO., LTD", "ENERVALLEY" }, { 0xFCDBB3, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0xFCDC4A, "G-Wearables Corp.", "G-WEARABLES" }, { 0xFCDD55, "Shenzhen WeWins wireless Co.,Ltd", "SHENZHEN-WEWINS-WIRELESS" }, { 0xFCDE90, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xFCDF00, "GD Midea Air-Conditioning Equipment Co.,Ltd.", "GD-MIDEA-AIR-CONDITIONING-EQUIPMENT" }, { 0xFCE14F, "BRK Brands, Inc.", "BRK-BRANDS" }, { 0xFCE186, "A3M Co., LTD", "A3M" }, { 0xFCE192, "Sichuan Jinwangtong Electronic Science&Technology Co,.Ltd", "SICHUAN-JINWANGTONG-SCIENCE" }, { 0xFCE1D9, "Stable Imaging Solutions LLC", "STABLE-IMAGING-SOLUTIONS" }, { 0xFCE1FB, "Array Networks", "ARRAY-NETWORKS" }, { 0xFCE23F, "CLAY PAKY SPA", "CLAY-PAKY-SPA" }, { 0xFCE26C, "Apple, Inc.", "APPLE" }, { 0xFCE33C, "HUAWEI TECHNOLOGIES CO.,LTD", "HUAWEI-TECHNOLOGIES" }, { 0xFCE557, "Nokia Corporation", "NOKIA" }, { 0xFCE66A, "Industrial Software Co", "INDUSTRIAL-SOFTWARE" }, { 0xFCE806, "Edifier International", "EDIFIER" }, { 0xFCE892, "Hangzhou Lancable Technology Co.,Ltd", "HANGZHOU-LANCABLE" }, { 0xFCE998, "Apple, Inc.", "APPLE" }, { 0xFCE9D8, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0xFCEA50, "Integrated Device Technology (Malaysia) Sdn. Bhd.", "INTEGRATED-DEVICE-MALAYSIA" }, { 0xFCECDA, "Ubiquiti Inc", "UBIQUITI" }, { 0xFCEDB9, "Arrayent", "ARRAYENT" }, { 0xFCEEE6, "FORMIKE ELECTRONIC CO., LTD", "FORMIKE" }, { 0xFCF136, "Samsung Electronics Co.,Ltd", "SAMSUNG-ELECTRONICS" }, { 0xFCF152, "Sony Corporation", "SONY" }, { 0xFCF1CD, "OPTEX-FA CO.,LTD.", "OPTEX-FA" }, { 0xFCF29F, "China Mobile Iot Limited company", "CHINA-MOBILE-IOT-COMPANY" }, { 0xFCF528, "Zyxel Communications Corporation", "ZYXEL-COMMUNICATION" }, { 0xFCF5C4, "Espressif Inc.", "ESPRESSIF" }, { 0xFCF647, "Fiberhome Telecommunication Technologies Co.,LTD", "FIBERHOME-TELECOMMUNICATION-TECHNOLOGIES" }, { 0xFCF763, "KunGao Micro (JiangSu) Co., LTd", "KUNGAO-MICRO-JIANGSU" }, { 0xFCF77B, "Huawei Device Co., Ltd.", "HUAWEI-DEVICE" }, { 0xFCF8AE, "Intel Corporate", "INTEL-CORPORATE" }, { 0xFCF8B7, "TRONTEQ Electronic", "TRONTEQ" }, { 0xFCFA21, "zte corporation", "ZTE" }, { 0xFCFAF7, "Shanghai Baud Data Communication Co.,Ltd.", "SHANGHAI-BAUD-DATA-COMMUNICATION" }, { 0xFCFBFB, "Cisco Systems, Inc", "CISCO" }, { 0xFCFC48, "Apple, Inc.", "APPLE" }, { 0xFCFE77, "Hitachi Reftechno, Inc.", "HITACHI-REFTECHNO" }, { 0xFCFEC2, "Invensys Controls UK Limited", "INVENSYS-CONTROLS-UK" }, { 0xFCFFAA, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, }; ipv6calc-4.1.0/databases/ieee-oui28/000077500000000000000000000000001444154247200170345ustar00rootroot00000000000000ipv6calc-4.1.0/databases/ieee-oui28/Makefile000066400000000000000000000015231444154247200204750ustar00rootroot00000000000000# Project : ipv6calc/databases/ieee-oui36 # File : Makefile # Version : $Id: ca613589e561df0a061b42002bdd1087acee0ff0 $ # Copyright : 2019-2019 by Peter Bieringer # # Information: # Makefile for ieee-oui28 FILE = mam.csv BASEURL = http://standards.ieee.org/develop/regauth/oui28/ FILE_H = dbieee_oui28.h TYPE = oui28 all: test -f $(FILE_H) || ${MAKE} update install: echo "Nothing to do" create: ../tools/create_ieee_headerfile.pl -c -t $(TYPE) -i $(FILE) -o $(FILE_H) -l ../../lib/libieee.c update: echo "Download new version of file" wget $(BASEURL)$(FILE) --timestamp ${MAKE} create updateclean: echo "Remove header file" rm -f $(FILE_H) ${MAKE} distclean distclean: echo "Remove database file" rm -f $(FILE) autoclean: echo "Nothing to do" clean: echo "Nothing to do" ipv6calc-4.1.0/databases/ieee-oui28/README000066400000000000000000000002651444154247200177170ustar00rootroot00000000000000$Id: 42324640c5cd63d2e5dd89e9b083e8c058718836 $ OUI28 (aka MA-M) database: URL: http://standards-oui.ieee.org/oui28/mam.csv File will be retrieved on-the-fly during "make update" ipv6calc-4.1.0/databases/ieee-oui28/dbieee_oui28.h000066400000000000000000014316651444154247200214700ustar00rootroot00000000000000/* * Project : ipv6calc * File : dbieee_oui28.h * Version : $Id: 5df6d72a4f589bbf7656eb3d73813d72d3b301d8 $ * Generated : Thu Jun 8 18:13:53 2023 * Data copyright: IEEE * * Information: * Additional header file for libipv6calc_db_wrapper_BuiltIn.c */ /*@unused@*/ static const char* libieee_oui28_status __attribute__ ((__unused__)) = "OUI28/20230608"; static const s_ieee_oui28 libieee_oui28[] = { { 0x0055DA, 0x000000, 0x0FFFFF, "Shinko Technos co.,ltd.", "SHINKO-TECHNOS" }, { 0x0055DA, 0x100000, 0x1FFFFF, "KoolPOS Inc.", "KOOLPOS" }, { 0x0055DA, 0x200000, 0x2FFFFF, "Beijing Connected Information Technology Co.,Ltd.", "BEIJING-CONNECTED-INFORMATION" }, { 0x0055DA, 0x300000, 0x3FFFFF, "Novexx Solutions GmbH", "NOVEXX-SOLUTIONS" }, { 0x0055DA, 0x400000, 0x4FFFFF, "Datapath Limited", "DATAPATH" }, { 0x0055DA, 0x500000, 0x5FFFFF, "Nanoleaf", "NANOLEAF" }, { 0x0055DA, 0x600000, 0x6FFFFF, "OOO DEKATRON", "OOO-DEKATRON" }, { 0x0055DA, 0x700000, 0x7FFFFF, "LUCISTECHNOLOGIES(SHANGHAI)CO.,LTD", "LUCISTECHNOLOGIESSHANGHAI" }, { 0x0055DA, 0x800000, 0x8FFFFF, "BroadSoft, Inc.", "BROADSOFT" }, { 0x0055DA, 0x900000, 0x9FFFFF, "Quantum Communication Technology Co., Ltd.,Anhui", "QUANTUM-COMMUNICATION-ANHUI" }, { 0x0055DA, 0xA00000, 0xAFFFFF, "Speechlab", "SPEECHLAB" }, { 0x0055DA, 0xB00000, 0xBFFFFF, "Interaxon Inc", "INTERAXON" }, { 0x0055DA, 0xC00000, 0xCFFFFF, "Donguan WideLink Communication Technology Co.,Ltd.", "DONGUAN-WIDELINK-COMMUNICATION" }, { 0x0055DA, 0xD00000, 0xDFFFFF, "Arrow Electronics,Inc.", "ARROW-ELECTRONICS" }, { 0x0055DA, 0xE00000, 0xEFFFFF, "Victorsure Limited", "VICTORSURE" }, { 0x0055DA, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x006967, 0x000000, 0x0FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x006967, 0x100000, 0x1FFFFF, "miliwave", "MILIWAVE" }, { 0x006967, 0x200000, 0x2FFFFF, "Ningbo Shen Link Communication Technology Co.,Ltd", "NINGBO-SHEN-LINK-COMMUNICATION" }, { 0x006967, 0x300000, 0x3FFFFF, "Suzhou Radiant Lighting Technology Co.,Ltd", "SUZHOU-RADIANT-LIGHTING" }, { 0x006967, 0x400000, 0x4FFFFF, "Command Alkon, Inc", "COMMAND-ALKON" }, { 0x006967, 0x500000, 0x5FFFFF, "Shenzhen Xiao Bi En Culture Education Technology Co.,Ltd.", "SHENZHEN-XIAO-BI-EN-CULTURE-EDUCATION" }, { 0x006967, 0x600000, 0x6FFFFF, "Comcast-SRL", "COMCAST-SRL" }, { 0x006967, 0x700000, 0x7FFFFF, "PANGAEA SOLUTION INC", "PANGAEA-SOLUTION" }, { 0x006967, 0x800000, 0x8FFFFF, "Ambient-System sp. z o.o.", "AMBIENT-SYSTEM-SP-Z-O-O" }, { 0x006967, 0x900000, 0x9FFFFF, "Hangzhou Wise IOT Technology Co.,Ltd", "HANGZHOU-WISE-IOT" }, { 0x006967, 0xA00000, 0xAFFFFF, "Zhejiang Holip Electronic Technology Co.,Ltd", "ZHEJIANG-HOLIP" }, { 0x006967, 0xB00000, 0xBFFFFF, "Datapan d.o.o.", "DATAPAN-D-O-O" }, { 0x006967, 0xC00000, 0xCFFFFF, "Desird Design R&D", "DESIRD-DESIGN-R-D" }, { 0x006967, 0xD00000, 0xDFFFFF, "aversix", "AVERSIX" }, { 0x006967, 0xE00000, 0xEFFFFF, "Tianjin Lianwu Technology Co., Ltd.", "TIANJIN-LIANWU" }, { 0x041119, 0x000000, 0x0FFFFF, "FORT Robotics Inc.", "FORT-ROBOTICS" }, { 0x041119, 0x100000, 0x1FFFFF, "Acentury", "ACENTURY" }, { 0x041119, 0x200000, 0x2FFFFF, "Alethea Communications Technologies Pvt. Ltd.", "ALETHEA-COMMUNICATION-TECHNOLOGIES-PVT" }, { 0x041119, 0x300000, 0x3FFFFF, "SUZHOU RIBAO TECHNOLOGY CO.,LTD.", "SUZHOU-RIBAO" }, { 0x041119, 0x400000, 0x4FFFFF, "Bolicom Innovation Technology (BeiJing) Co.,LTD.", "BOLICOM-INNOVATION-BEIJING" }, { 0x041119, 0x500000, 0x5FFFFF, "CEITA COMMUNICATION TECHNOLOGY CO.,LTD", "CEITA-COMMUNICATION" }, { 0x041119, 0x600000, 0x6FFFFF, "ZPD technology Co., Ltd", "ZPD" }, { 0x041119, 0x700000, 0x7FFFFF, "Herrick Tech Labs", "HERRICK-TECH-LABS" }, { 0x041119, 0x800000, 0x8FFFFF, "Shenzhen YIZHENG Technology Co.,Ltd", "SHENZHEN-YIZHENG" }, { 0x041119, 0x900000, 0x9FFFFF, "AC Power Distribution / ACT Entmt.", "AC-POWER-DISTRIBUTION-/-ACT-ENTMT" }, { 0x041119, 0xA00000, 0xAFFFFF, "CyOne Security AG", "CYONE-SECURITY" }, { 0x041119, 0xB00000, 0xBFFFFF, "Hubei Baobao Intelligent Technology Co.,LTD", "HUBEI-BAOBAO-INTELLIGENT" }, { 0x041119, 0xC00000, 0xCFFFFF, "Haerbin Donglin Technology Co., Ltd.", "HAERBIN-DONGLIN" }, { 0x041119, 0xD00000, 0xDFFFFF, "Nuance Hearing Ltd.", "NUANCE-HEARING" }, { 0x041119, 0xE00000, 0xEFFFFF, "JULIDA LIMITED", "JULIDA" }, { 0x04714B, 0x000000, 0x0FFFFF, "Neurio Technology Inc.", "NEURIO" }, { 0x04714B, 0x100000, 0x1FFFFF, "uAvionix Corporation", "UAVIONIX" }, { 0x04714B, 0x200000, 0x2FFFFF, "Shenzhen WayOS Technology Crop., Ltd.", "SHENZHEN-WAYOS-CROP" }, { 0x04714B, 0x300000, 0x3FFFFF, "Griesser Electronic AG", "GRIESSER" }, { 0x04714B, 0x400000, 0x4FFFFF, "Apparatebau Gauting GmbH", "APPARATEBAU-GAUTING" }, { 0x04714B, 0x500000, 0x5FFFFF, "Bureau Electronique Appliquee", "BUREAU-ELECTRONIQUE-APPLIQUEE" }, { 0x04714B, 0x600000, 0x6FFFFF, "Armstrong Fluid Technology", "ARMSTRONG-FLUID" }, { 0x04714B, 0x700000, 0x7FFFFF, "Omylis Pte Ltd", "OMYLIS-PTE" }, { 0x04714B, 0x800000, 0x8FFFFF, "Energport Inc", "ENERGPORT" }, { 0x04714B, 0x900000, 0x9FFFFF, "Lighthouse AI, Inc", "LIGHTHOUSE-AI" }, { 0x04714B, 0xA00000, 0xAFFFFF, "Observables, Inc.", "OBSERVABLES" }, { 0x04714B, 0xB00000, 0xBFFFFF, "DIGIBEST TECHNOLOGY CO., LTD.", "DIGIBEST" }, { 0x04714B, 0xC00000, 0xCFFFFF, "KittyHawk Corporation", "KITTYHAWK" }, { 0x04714B, 0xD00000, 0xDFFFFF, "Shenzhen BoClouds Technology Co.,Ltd.", "SHENZHEN-BOCLOUDS" }, { 0x04714B, 0xE00000, 0xEFFFFF, "Gimso Mobile Ltd", "GIMSO-MOBILE" }, { 0x04C3E6, 0x000000, 0x0FFFFF, "DREAMKAS LLC", "DREAMKAS" }, { 0x04C3E6, 0x100000, 0x1FFFFF, "Guangdong New Pulse Electric Co., Ltd.", "GUANGDONG-NEW-PULSE-ELECTRIC" }, { 0x04C3E6, 0x200000, 0x2FFFFF, "SiS Technology", "SIS" }, { 0x04C3E6, 0x300000, 0x3FFFFF, "Extech Electronics Co., LTD.", "EXTECH-ELECTRONICS" }, { 0x04C3E6, 0x400000, 0x4FFFFF, "Innovusion Inc.", "INNOVUSION" }, { 0x04C3E6, 0x500000, 0x5FFFFF, "Invasys", "INVASYS" }, { 0x04C3E6, 0x600000, 0x6FFFFF, "Shenzhen Shuotian Information Technology Co., LTD", "SHENZHEN-SHUOTIAN-INFORMATION" }, { 0x04C3E6, 0x700000, 0x7FFFFF, "Advanced Digital Technologies, s.r.o.", "ADVANCED-DIGITAL-TECHNOLOGIES-S-R-O" }, { 0x04C3E6, 0x800000, 0x8FFFFF, "SLOC GmbH", "SLOC" }, { 0x04C3E6, 0x900000, 0x9FFFFF, "Ekin Teknoloji San ve Tic A.S.", "EKIN-TEKNOLOJI-SAN-VE-TIC" }, { 0x04C3E6, 0xA00000, 0xAFFFFF, "Sealed Unit Parts Co., Inc.", "SEALED-UNIT-PARTS" }, { 0x04C3E6, 0xB00000, 0xBFFFFF, "Flintec UK Ltd.", "FLINTEC-UK" }, { 0x04C3E6, 0xC00000, 0xCFFFFF, "SHANTOU YINGSHENG IMPORT & EXPORT TRADING CO.,LTD.", "SHANTOU-YINGSHENG-IMPORT-EXPORT-TRADING" }, { 0x04C3E6, 0xD00000, 0xDFFFFF, "Amiosec Ltd", "AMIOSEC" }, { 0x04C3E6, 0xE00000, 0xEFFFFF, "Teleepoch Ltd", "TELEEPOCH" }, { 0x04D16E, 0x000000, 0x0FFFFF, "INTRIPLE, a.s.", "INTRIPLE" }, { 0x04D16E, 0x100000, 0x1FFFFF, "Launch Tech Co., Ltd.", "LAUNCH-TECH" }, { 0x04D16E, 0x200000, 0x2FFFFF, "s.d.i. s.p.a.", "S-D-I" }, { 0x04D16E, 0x300000, 0x3FFFFF, "Beijing Huaxia Qixin Technology Co., Ltd.", "BEIJING-HUAXIA-QIXIN" }, { 0x04D16E, 0x400000, 0x4FFFFF, "ShenZhen Huafu Information technology Co.?Ltd", "SHENZHEN-HUAFU-INFORMATION-?" }, { 0x04D16E, 0x500000, 0x5FFFFF, "Dspread Technology (Beijing) Inc.", "DSPREAD-BEIJING" }, { 0x04D16E, 0x600000, 0x6FFFFF, "ETL Elektrotechnik Lauter GmbH", "ETL-ELEKTROTECHNIK-LAUTER" }, { 0x04D16E, 0x700000, 0x7FFFFF, "Envision Energy", "ENVISION-ENERGY" }, { 0x04D16E, 0x800000, 0x8FFFFF, "CHENGDU INTERLINK SCIENCE AND TECHNOLOGY CO.,LTD", "CHENGDU-INTERLINK-SCIENCE" }, { 0x04D16E, 0x900000, 0x9FFFFF, "FUZHOU ZHUOYI ELECTRONIC CO.,LTD", "FUZHOU-ZHUOYI" }, { 0x04D16E, 0xA00000, 0xAFFFFF, "Metra Electronics", "METRA-ELECTRONICS" }, { 0x04D16E, 0xB00000, 0xBFFFFF, "National Radio & Telecommunication Corporation - NRTC", "NATIONAL-RADIO-TELECOMMUNICATION-NRTC" }, { 0x04D16E, 0xC00000, 0xCFFFFF, "PacPort Corporation", "PACPORT" }, { 0x04D16E, 0xD00000, 0xDFFFFF, "Elotec Fischer Elektronik GmbH", "ELOTEC-FISCHER-ELEKTRONIK" }, { 0x04D16E, 0xE00000, 0xEFFFFF, "Evolute Systems Private Limited", "EVOLUTE-PRIVATE" }, { 0x04EEE8, 0x000000, 0x0FFFFF, "Zoomlion Huanuo(Beijing)Technology Co.,Ltd", "ZOOMLION-HUANUO-BEIJING" }, { 0x04EEE8, 0x100000, 0x1FFFFF, "Shanghai ZLAN Information Technology Co.,Ltd", "SHANGHAI-ZLAN-INFORMATION" }, { 0x04EEE8, 0x200000, 0x2FFFFF, "Hengke Technology Industry Co., Ltd.", "HENGKE-INDUSTRY" }, { 0x04EEE8, 0x300000, 0x3FFFFF, "Fluid Management Technology", "FLUID-MANAGEMENT" }, { 0x04EEE8, 0x400000, 0x4FFFFF, "Shenzhen Daotong Technology Co.,Ltd", "SHENZHEN-DAOTONG" }, { 0x04EEE8, 0x500000, 0x5FFFFF, "RealWear", "REALWEAR" }, { 0x04EEE8, 0x600000, 0x6FFFFF, "NALSSEN INC.", "NALSSEN" }, { 0x04EEE8, 0x700000, 0x7FFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0x04EEE8, 0x800000, 0x8FFFFF, "MPEON Co.,Ltd", "MPEON" }, { 0x04EEE8, 0x900000, 0x9FFFFF, "Privacy Hero", "PRIVACY-HERO" }, { 0x04EEE8, 0xA00000, 0xAFFFFF, "Shenzhen JoiningFree Technology Co.,Ltd", "SHENZHEN-JOININGFREE" }, { 0x04EEE8, 0xB00000, 0xBFFFFF, "Hunan Yaguan Communication Technology Co.,Ltd", "HUNAN-YAGUAN-COMMUNICATION" }, { 0x04EEE8, 0xC00000, 0xCFFFFF, "daishin", "DAISHIN" }, { 0x04EEE8, 0xD00000, 0xDFFFFF, "SHENZHEN TOPWELL TECHNOLOGY CO., LTD.", "SHENZHEN-TOPWELL" }, { 0x04EEE8, 0xE00000, 0xEFFFFF, "Best Integration Technology Co., Ltd.", "BEST-INTEGRATION" }, { 0x0826AE, 0x000000, 0x0FFFFF, "Wuhan Tianyu Information Industry Co., Ltd.", "WUHAN-TIANYU-INFORMATION-INDUSTRY" }, { 0x0826AE, 0x100000, 0x1FFFFF, "Beijing Silion Technology Corp.,Ltd.", "BEIJING-SILION" }, { 0x0826AE, 0x200000, 0x2FFFFF, "ZaiNar", "ZAINAR" }, { 0x0826AE, 0x300000, 0x3FFFFF, "Shenzhen Hai yingZhilian Industrial Co., Ltd.", "SHENZHEN-HAI-YINGZHILIAN-INDUSTRIAL" }, { 0x0826AE, 0x400000, 0x4FFFFF, "BANGJOO Co., Ltd.", "BANGJOO" }, { 0x0826AE, 0x500000, 0x5FFFFF, "SHENNAN CIRCUITS CO.,LTD", "SHENNAN-CIRCUITS" }, { 0x0826AE, 0x600000, 0x6FFFFF, "Newcapec co.,Ltd", "NEWCAPEC" }, { 0x0826AE, 0x700000, 0x7FFFFF, "EVTECH SOLUTIONS LTD. DBA 3D-P", "EVTECH-SOLUTIONS-DBA-3D-P" }, { 0x0826AE, 0x800000, 0x8FFFFF, "ShineTech Electronics Co., Ltd", "SHINETECH-ELECTRONICS" }, { 0x0826AE, 0x900000, 0x9FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x0826AE, 0xA00000, 0xAFFFFF, "Flextronics International Kft", "FLEXTRONICS-KFT" }, { 0x0826AE, 0xB00000, 0xBFFFFF, "F-Plus Mobile LLC", "F-PLUS-MOBILE" }, { 0x0826AE, 0xC00000, 0xCFFFFF, "Brannstrom Sweden AB", "BRANNSTROM-SWEDEN-AB" }, { 0x0826AE, 0xD00000, 0xDFFFFF, "Veth Propulsion bv", "VETH-PROPULSION" }, { 0x0826AE, 0xE00000, 0xEFFFFF, "Mass Electronics Pty Ltd", "MASS-ELECTRONICS-PTY" }, { 0x08ED02, 0x000000, 0x0FFFFF, "D2SLink Systems", "D2SLINK" }, { 0x08ED02, 0x100000, 0x1FFFFF, "Imperx, Inc", "IMPERX" }, { 0x08ED02, 0x200000, 0x2FFFFF, "TES Touch Embedded Solutions Inc.", "TES-TOUCH-EMBEDDED-SOLUTIONS" }, { 0x08ED02, 0x300000, 0x3FFFFF, "Jiangsu Logread Network Technology Co., LTD.", "JIANGSU-LOGREAD-NETWORK" }, { 0x08ED02, 0x400000, 0x4FFFFF, "Fio Corporation", "FIO" }, { 0x08ED02, 0x500000, 0x5FFFFF, "Vigitron Inc.", "VIGITRON" }, { 0x08ED02, 0x600000, 0x6FFFFF, "SANGO ELECTRONICS CO", "SANGO-ELECTRONICS" }, { 0x08ED02, 0x700000, 0x7FFFFF, "Eleven Engineering Incorporated", "ELEVEN-ENGINEERING-INCORPORATED" }, { 0x08ED02, 0x800000, 0x8FFFFF, "HANTAS CO., LTD.", "HANTAS" }, { 0x08ED02, 0x900000, 0x9FFFFF, "Savox Communications", "SAVOX-COMMUNICATION" }, { 0x08ED02, 0xA00000, 0xAFFFFF, "Victiana SRL", "VICTIANA-SRL" }, { 0x08ED02, 0xB00000, 0xBFFFFF, "Szok Energy and Communication Co., Ltd.", "SZOK-ENERGY-AND-COMMUNICATION" }, { 0x08ED02, 0xC00000, 0xCFFFFF, "Guard RFID Solutions", "GUARD-RFID-SOLUTIONS" }, { 0x08ED02, 0xD00000, 0xDFFFFF, "Origami Energy Ltd", "ORIGAMI-ENERGY" }, { 0x08ED02, 0xE00000, 0xEFFFFF, "Telstra Corporation Limited", "TELSTRA" }, { 0x08F80D, 0x000000, 0x0FFFFF, "Huizhou changfei Optoelectruonics Technology Co.,Ltd", "HUIZHOU-CHANGFEI-OPTOELECTRUONICS" }, { 0x08F80D, 0x100000, 0x1FFFFF, "Shenzhen DophiGo IoT Technology Co.,Ltd", "SHENZHEN-DOPHIGO-IOT" }, { 0x08F80D, 0x200000, 0x2FFFFF, "Shanghai Mininglamp AI Group Co.,Ltd", "SHANGHAI-MININGLAMP-AI-GROUP" }, { 0x08F80D, 0x300000, 0x3FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x08F80D, 0x400000, 0x4FFFFF, "FG-Lab Inc.", "FG-LAB" }, { 0x08F80D, 0x500000, 0x5FFFFF, "Zhejiang Luci Technology Co., Ltd", "ZHEJIANG-LUCI" }, { 0x08F80D, 0x600000, 0x6FFFFF, "SEDA CHEMICAL PRODUCTS CO., LTD.", "SEDA-CHEMICAL-PRODUCTS" }, { 0x08F80D, 0x700000, 0x7FFFFF, "HANGZHOU YILI Communication Equipment Ltd", "HANGZHOU-YILI-COMMUNICATION-EQUIPMENT" }, { 0x08F80D, 0x800000, 0x8FFFFF, "OpenYard LLC", "OPENYARD" }, { 0x08F80D, 0x900000, 0x9FFFFF, "Benelink Technology Inc.", "BENELINK" }, { 0x08F80D, 0xA00000, 0xAFFFFF, "MICKEY INDUSTRY,LTD.", "MICKEY-INDUSTRY" }, { 0x08F80D, 0xB00000, 0xBFFFFF, "Vont Innovations", "VONT-INNOVATIONS" }, { 0x08F80D, 0xC00000, 0xCFFFFF, "ZMBIZI APP LLC", "ZMBIZI-APP" }, { 0x08F80D, 0xD00000, 0xDFFFFF, "ZHEJIANG EV-TECH.,LTD", "ZHEJIANG-EV-TECH" }, { 0x08F80D, 0xE00000, 0xEFFFFF, "Suzhou Sidi Information Technology Co., Ltd.", "SUZHOU-SIDI-INFORMATION" }, { 0x0C5CB5, 0x000000, 0x0FFFFF, "Yamasei", "YAMASEI" }, { 0x0C5CB5, 0x100000, 0x1FFFFF, "avxav Electronic Trading LLC", "AVXAV-TRADING" }, { 0x0C5CB5, 0x200000, 0x2FFFFF, "HongKong Blossom Limited", "HONGKONG-BLOSSOM" }, { 0x0C5CB5, 0x300000, 0x3FFFFF, "iH&S Technology Limited", "IH-S" }, { 0x0C5CB5, 0x400000, 0x4FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x0C5CB5, 0x500000, 0x5FFFFF, "The Raymond Corporation", "THE-RAYMOND" }, { 0x0C5CB5, 0x600000, 0x6FFFFF, "S2C limited", "S2C" }, { 0x0C5CB5, 0x700000, 0x7FFFFF, "Energybox Limited", "ENERGYBOX" }, { 0x0C5CB5, 0x800000, 0x8FFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0x0C5CB5, 0x900000, 0x9FFFFF, "Colordeve International", "COLORDEVE" }, { 0x0C5CB5, 0xA00000, 0xAFFFFF, "Zhengzhou coal machinery hydraulic electric control Co.,Ltd", "ZHENGZHOU-COAL-MACHINERY-HYDRAULIC-ELECTRIC-CONTROL" }, { 0x0C5CB5, 0xB00000, 0xBFFFFF, "ADI Global Distribution", "ADI-GLOBAL-DISTRIBUTION" }, { 0x0C5CB5, 0xC00000, 0xCFFFFF, "Hunan Newman Car NetworKing Technology Co.,Ltd", "HUNAN-NEWMAN-CAR-NETWORKING" }, { 0x0C5CB5, 0xD00000, 0xDFFFFF, "BSU Inc", "BSU" }, { 0x0C5CB5, 0xE00000, 0xEFFFFF, "Munters Europe AB", "MUNTERS-EUROPE-AB" }, { 0x0C73EB, 0x000000, 0x0FFFFF, "Gemini Data Loggers (UK) Limited", "GEMINI-DATA-LOGGERS-UK" }, { 0x0C73EB, 0x100000, 0x1FFFFF, "EVERSEC TECHNOLOGY CORPORATION", "EVERSEC" }, { 0x0C73EB, 0x200000, 0x2FFFFF, "Deltapath, Inc.", "DELTAPATH" }, { 0x0C73EB, 0x300000, 0x3FFFFF, "Tiinlab Acoustic Technology (Shenzhen) Co., Ltd.", "TIINLAB-ACOUSTIC-SHENZHEN" }, { 0x0C73EB, 0x400000, 0x4FFFFF, "U-PASS.CO.,LTD", "U-PASS" }, { 0x0C73EB, 0x500000, 0x5FFFFF, "Husty M.Styczen J.Hupert Sp.J.", "HUSTY-M-STYCZEN-J-HUPERT-SP-J" }, { 0x0C73EB, 0x600000, 0x6FFFFF, "Green Fox Electro AS", "GREEN-FOX-ELECTRO-AS" }, { 0x0C73EB, 0x700000, 0x7FFFFF, "Dinkle Enterprise Co., Ltd.", "DINKLE" }, { 0x0C73EB, 0x800000, 0x8FFFFF, "Beijing Miiiw Technology Co., Ltd", "BEIJING-MIIIW" }, { 0x0C73EB, 0x900000, 0x9FFFFF, "Beijing L&S Lancom Platform Tech. Co., Ltd.", "BEIJING-L-S-LANCOM-PLATFORM-TECH" }, { 0x0C73EB, 0xA00000, 0xAFFFFF, "Dana", "DANA" }, { 0x0C73EB, 0xB00000, 0xBFFFFF, "Synaccess Networks", "SYNACCESS-NETWORKS" }, { 0x0C73EB, 0xC00000, 0xCFFFFF, "Shenzhen Samchung Video Technology Co., Ltd.", "SHENZHEN-SAMCHUNG-VIDEO" }, { 0x0C73EB, 0xD00000, 0xDFFFFF, "D-Link (Shanghai)Limited Corp.", "D-LINK-SHANGHAI" }, { 0x0C73EB, 0xE00000, 0xEFFFFF, "Taiwan Pulse Motion Co., Ltd.", "TAIWAN-PULSE-MOTION" }, { 0x0C7FED, 0x000000, 0x0FFFFF, "Guangdong Tianshu New Energy Technology Co., Ltd", "GUANGDONG-TIANSHU-NEW-ENERGY" }, { 0x0C7FED, 0x100000, 0x1FFFFF, "Toast, Inc.", "TOAST" }, { 0x0C7FED, 0x200000, 0x2FFFFF, "Tango Networks Inc", "TANGO-NETWORKS" }, { 0x0C7FED, 0x300000, 0x3FFFFF, "Soft dB", "SOFT-DB" }, { 0x0C7FED, 0x400000, 0x4FFFFF, "Purple Mountain ,Inc", "PURPLE-MOUNTAIN" }, { 0x0C7FED, 0x500000, 0x5FFFFF, "ShenZhen TianGang Micro Technology CO.LTD", "SHENZHEN-TIANGANG-MICRO" }, { 0x0C7FED, 0x600000, 0x6FFFFF, "Netweb Technologies India Pvt Ltd", "NETWEB-TECHNOLOGIES-INDIA-PVT" }, { 0x0C7FED, 0x700000, 0x7FFFFF, "Grandway Technology (Shenzhen) Limited", "GRANDWAY-SHENZHEN" }, { 0x0C7FED, 0x800000, 0x8FFFFF, "U-tec Group Inc.", "U-TEC-GROUP" }, { 0x0C7FED, 0x900000, 0x9FFFFF, "Shenzhen ORVIBO Technology Co., Ltd.", "SHENZHEN-ORVIBO" }, { 0x0C7FED, 0xA00000, 0xAFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x0C7FED, 0xB00000, 0xBFFFFF, "TelX Systems", "TELX" }, { 0x0C7FED, 0xC00000, 0xCFFFFF, "Shenzhen MoreSense Technology Co., Ltd.", "SHENZHEN-MORESENSE" }, { 0x0C7FED, 0xD00000, 0xDFFFFF, "ALT Co., Ltd.", "ALT" }, { 0x0C7FED, 0xE00000, 0xEFFFFF, "environmental systems corporation", "ENVIRONMENTAL" }, { 0x0C8629, 0x000000, 0x0FFFFF, "Shanghai Prophet Electronic Technology Co.,Ltd", "SHANGHAI-PROPHET" }, { 0x0C8629, 0x100000, 0x1FFFFF, "Beijing Qinmu Data Technology Co., Ltd.", "BEIJING-QINMU-DATA" }, { 0x0C8629, 0x200000, 0x2FFFFF, "BADA SYSTEM co., Ltd", "BADA-SYSTEM" }, { 0x0C8629, 0x300000, 0x3FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x0C8629, 0x400000, 0x4FFFFF, "Ag Express Electronics", "EXPRESS-ELECTRONICS" }, { 0x0C8629, 0x500000, 0x5FFFFF, "Shenzhen protostellar technology Co., Ltd", "SHENZHEN-PROTOSTELLAR" }, { 0x0C8629, 0x600000, 0x6FFFFF, "C&A Marketing, INC.", "C-A-MARKETING" }, { 0x0C8629, 0x700000, 0x7FFFFF, "HagerEnergy GmbH", "HAGERENERGY" }, { 0x0C8629, 0x800000, 0x8FFFFF, "MyGregor Ltd", "MYGREGOR" }, { 0x0C8629, 0x900000, 0x9FFFFF, "HONGKONG SAINT TECH INDUSTRIAL LIMITED", "HONGKONG-SAINT-TECH-INDUSTRIAL" }, { 0x0C8629, 0xA00000, 0xAFFFFF, "Nipron Co.,Ltd", "NIPRON" }, { 0x0C8629, 0xB00000, 0xBFFFFF, "Akribis Systems", "AKRIBIS" }, { 0x0C8629, 0xC00000, 0xCFFFFF, "SHENZHEN YINGMU TECHNOLOGY.,LTD", "SHENZHEN-YINGMU" }, { 0x0C8629, 0xD00000, 0xDFFFFF, "BEIJING BEIBIANZHIDA TECHNOLOGY CO.,LTD", "BEIJING-BEIBIANZHIDA" }, { 0x0C8629, 0xE00000, 0xEFFFFF, "FX TECHNOLOGY LIMITED", "FX" }, { 0x0CCC47, 0x000000, 0x0FFFFF, "Shenzhen Jooan Technology Co., Ltd", "SHENZHEN-JOOAN" }, { 0x0CCC47, 0x100000, 0x1FFFFF, "General Industrial Controls Pvt Ltd", "GENERAL-INDUSTRIAL-CONTROLS-PVT" }, { 0x0CCC47, 0x200000, 0x2FFFFF, "Sun Yan International Trading Ltd.", "SUN-YAN-TRADING" }, { 0x0CCC47, 0x300000, 0x3FFFFF, "Shimane Masuda Electronics CO.,LTD.", "SHIMANE-MASUDA-ELECTRONICS" }, { 0x0CCC47, 0x400000, 0x4FFFFF, "Qingdao Geesatcom Technology Co., Ltd", "QINGDAO-GEESATCOM" }, { 0x0CCC47, 0x500000, 0x5FFFFF, "DMECOM TELECOM CO.,LTD.", "DMECOM-TELECOM" }, { 0x0CCC47, 0x600000, 0x6FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x0CCC47, 0x700000, 0x7FFFFF, "Cyrus Audio LTD", "CYRUS-AUDIO" }, { 0x0CCC47, 0x800000, 0x8FFFFF, "NINGBO QIXIANG INFORMATION TECHNOLOGY CO., LTD", "NINGBO-QIXIANG-INFORMATION" }, { 0x0CCC47, 0x900000, 0x9FFFFF, "OptConnect", "OPTCONNECT" }, { 0x0CCC47, 0xA00000, 0xAFFFFF, "Rich Source Precision IND., Co., LTD.", "RICH-SOURCE-PRECISION-IND" }, { 0x0CCC47, 0xB00000, 0xBFFFFF, "Spot AI, Inc.", "SPOT-AI" }, { 0x0CCC47, 0xC00000, 0xCFFFFF, "KUMI ELECTRONIC COMPONENTS", "KUMI-COMPONENTS" }, { 0x0CCC47, 0xD00000, 0xDFFFFF, "GODOX Photo Equipment Co., Ltd.", "GODOX-PHOTO-EQUIPMENT" }, { 0x0CCC47, 0xE00000, 0xEFFFFF, "Foxconn Brasil Industria e Comercio Ltda", "FOXCONN-BRASIL-INDUSTRIA-E-COMERCIO-LTDA" }, { 0x0CEFAF, 0x000000, 0x0FFFFF, "Kenmore", "KENMORE" }, { 0x0CEFAF, 0x100000, 0x1FFFFF, "Goerlitz AG", "GOERLITZ" }, { 0x0CEFAF, 0x200000, 0x2FFFFF, "LUMEL S.A.", "LUMEL" }, { 0x0CEFAF, 0x300000, 0x3FFFFF, "Engineering Center ENERGOSERVICE", "ENGINEERING-CENTER-ENERGOSERVICE" }, { 0x0CEFAF, 0x400000, 0x4FFFFF, "Sentry360", "SENTRY360" }, { 0x0CEFAF, 0x500000, 0x5FFFFF, "PREMIUM SA", "PREMIUM" }, { 0x0CEFAF, 0x600000, 0x6FFFFF, "Firmware Design AS", "FIRMWARE-DESIGN-AS" }, { 0x0CEFAF, 0x700000, 0x7FFFFF, "Syntrans AB", "SYNTRANS-AB" }, { 0x0CEFAF, 0x800000, 0x8FFFFF, "BSX Athletics", "BSX-ATHLETICS" }, { 0x0CEFAF, 0x900000, 0x9FFFFF, "Rotel", "ROTEL" }, { 0x0CEFAF, 0xA00000, 0xAFFFFF, "chengdu joyotime Technology Co., Ltd.", "CHENGDU-JOYOTIME" }, { 0x0CEFAF, 0xB00000, 0xBFFFFF, "Hubei Century Network Technology Co., Ltd", "HUBEI-CENTURY-NETWORK" }, { 0x0CEFAF, 0xC00000, 0xCFFFFF, "GainStrong Industry Co.,Ltd", "GAINSTRONG-INDUSTRY" }, { 0x0CEFAF, 0xD00000, 0xDFFFFF, "CJSC «Svyaz Engineering»", "CJSC-SVYAZ-ENGINEERING" }, { 0x0CEFAF, 0xE00000, 0xEFFFFF, "Infinisource Inc.", "INFINISOURCE" }, { 0x0CEFAF, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x0CFE5D, 0x000000, 0x0FFFFF, "Chengdu Ledong Information & Technology Co., Ltd.", "CHENGDU-LEDONG-INFORMATION" }, { 0x0CFE5D, 0x100000, 0x1FFFFF, "Fender Musical Instrument", "FENDER-MUSICAL-INSTRUMENT" }, { 0x0CFE5D, 0x200000, 0x2FFFFF, "Dspread International Co.,Limited", "DSPREAD" }, { 0x0CFE5D, 0x300000, 0x3FFFFF, "Beijing WayClouds Technology Co., Ltd.", "BEIJING-WAYCLOUDS" }, { 0x0CFE5D, 0x400000, 0x4FFFFF, "Yantai Dongfang Wisdom Electic Co.,Ltd.", "YANTAI-DONGFANG-WISDOM-ELECTIC" }, { 0x0CFE5D, 0x500000, 0x5FFFFF, "SELECTRIC Nachrichten-Systeme GmbH", "SELECTRIC-NACHRICHTEN-SYSTEME" }, { 0x0CFE5D, 0x600000, 0x6FFFFF, "Antailiye Technology Co.,Ltd", "ANTAILIYE" }, { 0x0CFE5D, 0x700000, 0x7FFFFF, "Vermes Microdispensing GmbH", "VERMES-MICRODISPENSING" }, { 0x0CFE5D, 0x800000, 0x8FFFFF, "CTK Contact Electronics co., Ltd.", "CTK-CONTACT-ELECTRONICS" }, { 0x0CFE5D, 0x900000, 0x9FFFFF, "Celerway Communication AS", "CELERWAY-COMMUNICATION-AS" }, { 0x0CFE5D, 0xA00000, 0xAFFFFF, "Fujian Jieyu Computer Technology Co., Ltd.", "FUJIAN-JIEYU" }, { 0x0CFE5D, 0xB00000, 0xBFFFFF, "YINUO-LINK LIMITED", "YINUO-LINK" }, { 0x0CFE5D, 0xC00000, 0xCFFFFF, "Bepal Technology Co.,Ltd.", "BEPAL" }, { 0x0CFE5D, 0xD00000, 0xDFFFFF, "Maksat Technologies P Ltd", "MAKSAT-TECHNOLOGIES-P" }, { 0x0CFE5D, 0xE00000, 0xEFFFFF, "NEWGREEN TECH CO., LTD.", "NEWGREEN-TECH" }, { 0x100723, 0x000000, 0x0FFFFF, "RippleTek Tech Ltd", "RIPPLETEK-TECH" }, { 0x100723, 0x100000, 0x1FFFFF, "Beijing Assem Technology Co., ltd", "BEIJING-ASSEM" }, { 0x100723, 0x200000, 0x2FFFFF, "Diginet Control Systems Pty Ltd", "DIGINET-CONTROL-PTY" }, { 0x100723, 0x300000, 0x3FFFFF, "Tongfang computer co.Ltd.", "TONGFANG" }, { 0x100723, 0x400000, 0x4FFFFF, "Audio Engineering Ltd.", "AUDIO-ENGINEERING" }, { 0x100723, 0x500000, 0x5FFFFF, "BEIJING SOOALL INFORMATION TECHNOLOGY CO.,LTD", "BEIJING-SOOALL-INFORMATION" }, { 0x100723, 0x600000, 0x6FFFFF, "ESTONE TECHNOLOGY INC", "ESTONE" }, { 0x100723, 0x700000, 0x7FFFFF, "nanoTech Co., Ltd.", "NANOTECH" }, { 0x100723, 0x800000, 0x8FFFFF, "Ion Professional Solutions", "ION-PROFESSIONAL-SOLUTIONS" }, { 0x100723, 0x900000, 0x9FFFFF, "Wireless input technology Inc.", "WIRELESS-INPUT" }, { 0x100723, 0xA00000, 0xAFFFFF, "TESSERA TECHNOLOGY INC.", "TESSERA" }, { 0x100723, 0xB00000, 0xBFFFFF, "Fujian Quanzhou Dong Ang Electronics Co., Ltd.", "FUJIAN-QUANZHOU-DONG-ANG-ELECTRONICS" }, { 0x100723, 0xC00000, 0xCFFFFF, "Shenzhen Xinfa Electronic Co.,ltd", "SHENZHEN-XINFA" }, { 0x100723, 0xE00000, 0xEFFFFF, "First Chair Acoustics Co., Ltd.", "FIRST-CHAIR-ACOUSTICS" }, { 0x100723, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x1054D2, 0x000000, 0x0FFFFF, "GIPS Technology Co., Ltd.", "GIPS" }, { 0x1054D2, 0x100000, 0x1FFFFF, "Jiangxi Ofilm&Jvneng IoT Tech Co., Ltd.", "JIANGXI-OFILM-JVNENG-IOT-TECH" }, { 0x1054D2, 0x200000, 0x2FFFFF, "ComNav Technology Ltd.", "COMNAV" }, { 0x1054D2, 0x300000, 0x3FFFFF, "Little Array Technology (Shenzhen) Co., Ltd.", "LITTLE-ARRAY-SHENZHEN" }, { 0x1054D2, 0x400000, 0x4FFFFF, "Raylogic Control Systems Private Limited", "RAYLOGIC-CONTROL-PRIVATE" }, { 0x1054D2, 0x500000, 0x5FFFFF, "Sybersense", "SYBERSENSE" }, { 0x1054D2, 0x600000, 0x6FFFFF, "Lanao Communication Technology Limited", "LANAO-COMMUNICATION" }, { 0x1054D2, 0x700000, 0x7FFFFF, "SHENZHEN CARSAFE TECHNOLOGY DEVELOPMENT CO.,LTD", "SHENZHEN-CARSAFE-DEVELOPMENT" }, { 0x1054D2, 0x800000, 0x8FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x1054D2, 0x900000, 0x9FFFFF, "Bamboo Dynamics Corporation., Ltd.", "BAMBOO-DYNAMICS" }, { 0x1054D2, 0xA00000, 0xAFFFFF, "Embion B.V.", "EMBION-B-V" }, { 0x1054D2, 0xB00000, 0xBFFFFF, "Shenzhen Dinstech Technology Co.,Ltd.", "SHENZHEN-DINSTECH" }, { 0x1054D2, 0xC00000, 0xCFFFFF, "LUXSHARE-ICT Co., Ltd.", "LUXSHARE-ICT" }, { 0x1054D2, 0xD00000, 0xDFFFFF, "Sun wealth technology corporation limited", "SUN-WEALTH" }, { 0x1054D2, 0xE00000, 0xEFFFFF, "COSMO AIOT TECHNOLOGY CO LTD", "COSMO-AIOT" }, { 0x10DCB6, 0x000000, 0x0FFFFF, "Apex Supply Chain Technologies", "APEX-SUPPLY-CHAIN-TECHNOLOGIES" }, { 0x10DCB6, 0x100000, 0x1FFFFF, "Hitachi Energy Switzerland Ltd", "HITACHI-ENERGY-SWITZERLAND" }, { 0x10DCB6, 0x200000, 0x2FFFFF, "CAL-COMP INDUSTRIA E COMERCIO DE ELETRONICOS E INFORMATICA LTDA", "CAL-COMP-INDUSTRIA-E-COMERCIO-DE-ELETRONICOS-E-INFORMATICA-LTDA" }, { 0x10DCB6, 0x300000, 0x3FFFFF, "HANACNS", "HANACNS" }, { 0x10DCB6, 0x400000, 0x4FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x10DCB6, 0x500000, 0x5FFFFF, "Milesight Taiwan", "MILESIGHT-TAIWAN" }, { 0x10DCB6, 0x600000, 0x6FFFFF, "Prolan Zrt.", "PROLAN-ZRT" }, { 0x10DCB6, 0x700000, 0x7FFFFF, "Moya Commumication Technology (Shenzhen) Co.,Ltd.", "MOYA-COMMUMICATION-SHENZHEN" }, { 0x10DCB6, 0x800000, 0x8FFFFF, "Sanofi (Beijing) Pharmaceutical Co., Ltd.", "SANOFI-BEIJING-PHARMACEUTICAL" }, { 0x10DCB6, 0x900000, 0x9FFFFF, "Fuzhou Rockchip Electronics Co.,Ltd", "FUZHOU-ROCKCHIP-ELECTRONICS" }, { 0x10DCB6, 0xA00000, 0xAFFFFF, "Pickering Interfaces Ltd", "PICKERING-INTERFACES" }, { 0x10DCB6, 0xB00000, 0xBFFFFF, "Eyeball Fintech Company", "EYEBALL-FINTECH-COMPANY" }, { 0x10DCB6, 0xC00000, 0xCFFFFF, "BBPOS Limited", "BBPOS" }, { 0x10DCB6, 0xD00000, 0xDFFFFF, "LeoLabs", "LEOLABS" }, { 0x10DCB6, 0xE00000, 0xEFFFFF, "Shenzhen Sunwoda intelligent hardware Co.,Ltd", "SHENZHEN-SUNWODA-INTELLIGENT-HARDWARE" }, { 0x141FBA, 0x000000, 0x0FFFFF, "Shenzhen Mining Technology Co.,Ltd.", "SHENZHEN-MINING" }, { 0x141FBA, 0x100000, 0x1FFFFF, "GloQuad", "GLOQUAD" }, { 0x141FBA, 0x200000, 0x2FFFFF, "Deutsche Energieversorgung GmbH", "DEUTSCHE-ENERGIEVERSORGUNG" }, { 0x141FBA, 0x300000, 0x3FFFFF, "Private", "PRIVATE" }, { 0x141FBA, 0x400000, 0x4FFFFF, "BYZERO", "BYZERO" }, { 0x141FBA, 0x500000, 0x5FFFFF, "Inttelix Brasil Tecnologia e Sistemas Ltda", "INTTELIX-BRASIL-TECNOLOGIA-E-SISTEMAS-LTDA" }, { 0x141FBA, 0x600000, 0x6FFFFF, "Thales Communications & Security SAS", "THALES-COMMUNICATION-SECURITY-SAS" }, { 0x141FBA, 0x700000, 0x7FFFFF, "Wisnetworks Technologies Co., Ltd.", "WISNETWORKS-TECHNOLOGIES" }, { 0x141FBA, 0x800000, 0x8FFFFF, "Shenzhen CATIC Information Technology Industry Co.,Ltd", "SHENZHEN-CATIC-INFORMATION-INDUSTRY" }, { 0x141FBA, 0x900000, 0x9FFFFF, "Black Moth Technologies", "BLACK-MOTH-TECHNOLOGIES" }, { 0x141FBA, 0xA00000, 0xAFFFFF, "Winsonic Electronics Co., Ltd.", "WINSONIC-ELECTRONICS" }, { 0x141FBA, 0xB00000, 0xBFFFFF, "Newings Communication CO., LTD.", "NEWINGS-COMMUNICATION" }, { 0x141FBA, 0xC00000, 0xCFFFFF, "Swiss Electronic (Shenzhen) Co., Ltd", "SWISS-SHENZHEN" }, { 0x141FBA, 0xD00000, 0xDFFFFF, "AJIS(DALIAN)co.,LTD", "AJIS-DALIAN" }, { 0x141FBA, 0xE00000, 0xEFFFFF, "POS Systema LLC", "POS-SYSTEMA" }, { 0x141FBA, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x144FD7, 0x000000, 0x0FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x144FD7, 0x100000, 0x1FFFFF, "Zehnder Group AG", "ZEHNDER-GROUP" }, { 0x144FD7, 0x200000, 0x2FFFFF, "FedEx Services OTI", "FEDEX-SERVICES-OTI" }, { 0x144FD7, 0x300000, 0x3FFFFF, "Qingdao Wodatong Electronics Co., Ltd.", "QINGDAO-WODATONG-ELECTRONICS" }, { 0x144FD7, 0x400000, 0x4FFFFF, "Red Technology Limited", "RED" }, { 0x144FD7, 0x500000, 0x5FFFFF, "FLS FINLAND OY", "FLS-FINLAND-OY" }, { 0x144FD7, 0x600000, 0x6FFFFF, "i-SENS, Inc.", "I-SENS" }, { 0x144FD7, 0x700000, 0x7FFFFF, "Shenzhen V-Streaming Technology Co., Ltd.", "SHENZHEN-V-STREAMING" }, { 0x144FD7, 0x800000, 0x8FFFFF, "NPort Networks Inc.,", "NPORT-NETWORKS" }, { 0x144FD7, 0x900000, 0x9FFFFF, "Emerson Network Power (India) Pvt. Ltd.", "EMERSON-NETWORK-POWER-INDIA-PVT" }, { 0x144FD7, 0xA00000, 0xAFFFFF, "Unirobot Corporation", "UNIROBOT" }, { 0x144FD7, 0xB00000, 0xBFFFFF, "Arkus-ST Ltd", "ARKUS-ST" }, { 0x144FD7, 0xC00000, 0xCFFFFF, "D&S Cable Industries (HK) Limited", "D-S-CABLE-INDUSTRIES-HK" }, { 0x144FD7, 0xD00000, 0xDFFFFF, "Shanghai B&A Technology Co., Ltd", "SHANGHAI-B-A" }, { 0x144FD7, 0xE00000, 0xEFFFFF, "Edan Instruments, Inc.", "EDAN-INSTRUMENTS" }, { 0x14AE85, 0x000000, 0x0FFFFF, "Kayamatics Limited", "KAYAMATICS" }, { 0x14AE85, 0x100000, 0x1FFFFF, "Henfred Technology Co., Ltd.", "HENFRED" }, { 0x14AE85, 0x200000, 0x2FFFFF, "Qingdao iTechene Technologies Co., Ltd.", "QINGDAO-ITECHENE-TECHNOLOGIES" }, { 0x14AE85, 0x300000, 0x3FFFFF, "IFLYTEK CO.,LTD.", "IFLYTEK" }, { 0x14AE85, 0x400000, 0x4FFFFF, "CENTERVUE SPA", "CENTERVUE-SPA" }, { 0x14AE85, 0x500000, 0x5FFFFF, "AZ-TECHNOLOGY SDN BHD", "AZ" }, { 0x14AE85, 0x600000, 0x6FFFFF, "TMG TE GmbH", "TMG-TE" }, { 0x14AE85, 0x700000, 0x7FFFFF, "SHENZHEN HONOR ELECTRONIC CO.,LTD", "SHENZHEN-HONOR" }, { 0x14AE85, 0x800000, 0x8FFFFF, "Trimble LEM", "TRIMBLE-LEM" }, { 0x14AE85, 0x900000, 0x9FFFFF, "Veo Technologies", "VEO-TECHNOLOGIES" }, { 0x14AE85, 0xA00000, 0xAFFFFF, "MTA Systems", "MTA" }, { 0x14AE85, 0xB00000, 0xBFFFFF, "NTC SOFT", "NTC-SOFT" }, { 0x14AE85, 0xC00000, 0xCFFFFF, "IO Industries Inc.", "IO-INDUSTRIES" }, { 0x14AE85, 0xD00000, 0xDFFFFF, "iSolution Technologies Co.,Ltd.", "ISOLUTION-TECHNOLOGIES" }, { 0x14AE85, 0xE00000, 0xEFFFFF, "Sercomm Corporation.", "SERCOMM" }, { 0x1845B3, 0x000000, 0x0FFFFF, "leetop tech co.,ltd", "LEETOP-TECH" }, { 0x1845B3, 0x100000, 0x1FFFFF, "Pfannenberg GmbH", "PFANNENBERG" }, { 0x1845B3, 0x200000, 0x2FFFFF, "Haier cloud Health Technology (Qingdao) Co., Ltd", "HAIER-CLOUD-HEALTH-QINGDAO" }, { 0x1845B3, 0x300000, 0x3FFFFF, "Ancsonic (chongqing) Electronic Science& Technology Co.,Ltd", "ANCSONIC-CHONGQING-SCIENCE" }, { 0x1845B3, 0x400000, 0x4FFFFF, "Mission Secure Inc", "MISSION-SECURE" }, { 0x1845B3, 0x500000, 0x5FFFFF, "ELPITECH LLC", "ELPITECH" }, { 0x1845B3, 0x600000, 0x6FFFFF, "Harmonic Technology Limited", "HARMONIC" }, { 0x1845B3, 0x700000, 0x7FFFFF, "Shenzhen Incar Technology Co., Ltd.", "SHENZHEN-INCAR" }, { 0x1845B3, 0x800000, 0x8FFFFF, "ShenZhen Topband Co.,Ltd", "SHENZHEN-TOPBAND" }, { 0x1845B3, 0x900000, 0x9FFFFF, "Teko Telecom Srl", "TEKO-TELECOM-SRL" }, { 0x1845B3, 0xA00000, 0xAFFFFF, "Guangzhou Aoshi Internet Information & Technology Co.,Ltd.", "GUANGZHOU-AOSHI-INTERNET-INFORMATION" }, { 0x1845B3, 0xB00000, 0xBFFFFF, "Hangzhou CCRFID Microelectronic Co., Ltd.", "HANGZHOU-CCRFID-MICROELECTRONIC" }, { 0x1845B3, 0xC00000, 0xCFFFFF, "Bdf Digital", "BDF-DIGITAL" }, { 0x1845B3, 0xD00000, 0xDFFFFF, "Taicang T&W Electronics", "TAICANG-T-W-ELECTRONICS" }, { 0x1845B3, 0xE00000, 0xEFFFFF, "Sleep Number", "SLEEP-NUMBER" }, { 0x1874E2, 0x000000, 0x0FFFFF, "Ensor AG", "ENSOR" }, { 0x1874E2, 0x100000, 0x1FFFFF, "Sartorius Lab Instruments GmbH & Co. KG", "SARTORIUS-LAB-INSTRUMENTS" }, { 0x1874E2, 0x200000, 0x2FFFFF, "Shenzhen WITSTECH Co.,Ltd.", "SHENZHEN-WITSTECH" }, { 0x1874E2, 0x300000, 0x3FFFFF, "CT Company", "CT-COMPANY" }, { 0x1874E2, 0x400000, 0x4FFFFF, "Aggressive Electronics Manufacturing Services Pvt Limited", "AGGRESSIVE-ELECTRONICS-MANUFACTURING-SERVICES-PVT" }, { 0x1874E2, 0x500000, 0x5FFFFF, "HANGZHOU ZHOUJU ELECTRONIC TECHNOLOGICAL CO.,LTD", "HANGZHOU-ZHOUJU-TECHNOLOGICAL" }, { 0x1874E2, 0x600000, 0x6FFFFF, "Beijing Jrunion Technology Co., Ltd.", "BEIJING-JRUNION" }, { 0x1874E2, 0x700000, 0x7FFFFF, "Sansec Technology Co.,Ltd", "SANSEC" }, { 0x1874E2, 0x800000, 0x8FFFFF, "Kano Computing Limited", "KANO-COMPUTING" }, { 0x1874E2, 0x900000, 0x9FFFFF, "SHENZHEN AORO COMMUNICATION EQUIPMENT CO., LTD", "SHENZHEN-AORO-COMMUNICATION-EQUIPMENT" }, { 0x1874E2, 0xA00000, 0xAFFFFF, "Linux Automation GmbH", "LINUX-AUTOMATION" }, { 0x1874E2, 0xB00000, 0xBFFFFF, "Shenzhen Jooan Technology Co., Ltd", "SHENZHEN-JOOAN" }, { 0x1874E2, 0xC00000, 0xCFFFFF, "NextGen RF Design, Inc.", "NEXTGEN-RF-DESIGN" }, { 0x1874E2, 0xD00000, 0xDFFFFF, "Samriddi Automations Pvt. Ltd.", "SAMRIDDI-AUTOMATIONS-PVT" }, { 0x1874E2, 0xE00000, 0xEFFFFF, "G&O Audio Co.,LTD", "G-O-AUDIO" }, { 0x189BA5, 0x000000, 0x0FFFFF, "Dectris Ltd.", "DECTRIS" }, { 0x189BA5, 0x100000, 0x1FFFFF, "ChengDu Vantron Technology, Ltd.", "CHENGDU-VANTRON" }, { 0x189BA5, 0x200000, 0x2FFFFF, "Airprotec", "AIRPROTEC" }, { 0x189BA5, 0x300000, 0x3FFFFF, "PHINETWORKS", "PHINETWORKS" }, { 0x189BA5, 0x400000, 0x4FFFFF, "Innominds Software Inc", "INNOMINDS-SOFTWARE" }, { 0x189BA5, 0x500000, 0x5FFFFF, "Starfire Industries LLC", "STARFIRE-INDUSTRIES" }, { 0x189BA5, 0x600000, 0x6FFFFF, "Mantra Softech India Pvt Ltd", "MANTRA-SOFTECH-INDIA-PVT" }, { 0x189BA5, 0x700000, 0x7FFFFF, "Beijing Xinertel Technology Co., Ltd.", "BEIJING-XINERTEL" }, { 0x189BA5, 0x800000, 0x8FFFFF, "Shenzhen Tong Tai Yi information Technology Co.,Ltd", "SHENZHEN-TONG-TAI-YI-INFORMATION" }, { 0x189BA5, 0x900000, 0x9FFFFF, "APANA Inc.", "APANA" }, { 0x189BA5, 0xA00000, 0xAFFFFF, "SHENZHEN FIONEXX TECHNOLOGIES LTD.", "SHENZHEN-FIONEXX-TECHNOLOGIES" }, { 0x189BA5, 0xB00000, 0xBFFFFF, "Eutron SPA", "EUTRON-SPA" }, { 0x189BA5, 0xC00000, 0xCFFFFF, "Christ Electronic System GmbH", "CHRIST-SYSTEM" }, { 0x189BA5, 0xD00000, 0xDFFFFF, "legendsky tech", "LEGENDSKY-TECH" }, { 0x189BA5, 0xE00000, 0xEFFFFF, "Taiwan Name Plate Co.,LTD", "TAIWAN-NAME-PLATE" }, { 0x18A59C, 0x000000, 0x0FFFFF, "Omwave", "OMWAVE" }, { 0x18A59C, 0x100000, 0x1FFFFF, "Cuman", "CUMAN" }, { 0x18A59C, 0x200000, 0x2FFFFF, "Actiontec Electronics Inc.", "ACTIONTEC-ELECTRONICS" }, { 0x18A59C, 0x300000, 0x3FFFFF, "Beijing QS Medical Technology Co., Ltd.", "BEIJING-QS-MEDICAL" }, { 0x18A59C, 0x400000, 0x4FFFFF, "IT-1", "IT-1" }, { 0x18A59C, 0x500000, 0x5FFFFF, "Thermia AB", "THERMIA-AB" }, { 0x18A59C, 0x600000, 0x6FFFFF, "INTEGRAL PLUS", "INTEGRAL-PLUS" }, { 0x18A59C, 0x700000, 0x7FFFFF, "ePower Network Solution Co., Ltd.", "EPOWER-NETWORK-SOLUTION" }, { 0x18A59C, 0x800000, 0x8FFFFF, "Residence Control Ltd", "RESIDENCE-CONTROL" }, { 0x18A59C, 0x900000, 0x9FFFFF, "estun automation co.,ltd", "ESTUN-AUTOMATION" }, { 0x18A59C, 0xA00000, 0xAFFFFF, "Erba Lachema s.r.o.", "ERBA-LACHEMA-S-R-O" }, { 0x18A59C, 0xB00000, 0xBFFFFF, "CAL-COMP INDUSTRIA E COMERCIO DE ELETRONICOS E INFORMATICA LTDA", "CAL-COMP-INDUSTRIA-E-COMERCIO-DE-ELETRONICOS-E-INFORMATICA-LTDA" }, { 0x18A59C, 0xC00000, 0xCFFFFF, "BlueEyes Technology", "BLUEEYES" }, { 0x18A59C, 0xD00000, 0xDFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x18A59C, 0xE00000, 0xEFFFFF, "BMC Messsysteme GmbH", "BMC-MESSSYSTEME" }, { 0x18C3F4, 0x000000, 0x0FFFFF, "Scati Labs, S.A.", "SCATI-LABS" }, { 0x18C3F4, 0x100000, 0x1FFFFF, "Enertex Bayern GmbH", "ENERTEX-BAYERN" }, { 0x18C3F4, 0x200000, 0x2FFFFF, "Changsha Kiloview Electronics Co., Ltd.", "CHANGSHA-KILOVIEW-ELECTRONICS" }, { 0x18C3F4, 0x300000, 0x3FFFFF, "General Test Systems", "GENERAL-TEST" }, { 0x18C3F4, 0x400000, 0x4FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x18C3F4, 0x500000, 0x5FFFFF, "Synaptics, Inc", "SYNAPTICS" }, { 0x18C3F4, 0x600000, 0x6FFFFF, "VeriFone Systems (China), Inc.", "VERIFONE-CHINA" }, { 0x18C3F4, 0x700000, 0x7FFFFF, "Shenzhen Yecon-Tech Co.,Ltd.", "SHENZHEN-YECON-TECH" }, { 0x18C3F4, 0x800000, 0x8FFFFF, "Shenzhen Liandian Communication Technology Co.LTD", "SHENZHEN-LIANDIAN-COMMUNICATION" }, { 0x18C3F4, 0x900000, 0x9FFFFF, "Ningbo Yuda Communication Technology Co.,Ltd", "NINGBO-YUDA-COMMUNICATION" }, { 0x18C3F4, 0xA00000, 0xAFFFFF, "Shenzhen Yunlianxin Technology Co., Ltd.", "SHENZHEN-YUNLIANXIN" }, { 0x18C3F4, 0xB00000, 0xBFFFFF, "VECTOR TECHNOLOGIES, LLC", "VECTOR-TECHNOLOGIES" }, { 0x18C3F4, 0xC00000, 0xCFFFFF, "HANGZHOU ZHONGKEJIGUANG TECHNOLOGY CO., LTD", "HANGZHOU-ZHONGKEJIGUANG" }, { 0x18C3F4, 0xD00000, 0xDFFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0x18C3F4, 0xE00000, 0xEFFFFF, "SHENZHEN MEGMEET ELECTRICAL CO., LTD", "SHENZHEN-MEGMEET-ELECTRICAL" }, { 0x18D793, 0x000000, 0x0FFFFF, "Shenzhen JieXingTong Technology Co.,LTD", "SHENZHEN-JIEXINGTONG" }, { 0x18D793, 0x100000, 0x1FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x18D793, 0x200000, 0x2FFFFF, "Hydrotechnik GmbH", "HYDROTECHNIK" }, { 0x18D793, 0x300000, 0x3FFFFF, "Verification & Validation Technology Co.,Ltd", "VERIFICATION-VALIDATION" }, { 0x18D793, 0x400000, 0x4FFFFF, "Remote Engineer B.V.", "REMOTE-ENGINEER-B-V" }, { 0x18D793, 0x500000, 0x5FFFFF, "DongGuan Orient Electronics & Metal Co.,Ltd", "DONGGUAN-ORIENT-ELECTRONICS-METAL" }, { 0x18D793, 0x600000, 0x6FFFFF, "Autel lntelligent Technology Corp.,Ltd", "AUTEL-LNTELLIGENT" }, { 0x18D793, 0x700000, 0x7FFFFF, "JFA Electronics Industry and Commerce EIRELI", "JFA-ELECTRONICS-INDUSTRY-AND-COMMERCE-EIRELI" }, { 0x18D793, 0x800000, 0x8FFFFF, "Torsa Global", "TORSA-GLOBAL" }, { 0x18D793, 0x900000, 0x9FFFFF, "Clarity Medical Pvt Ltd", "CLARITY-MEDICAL-PVT" }, { 0x18D793, 0xA00000, 0xAFFFFF, "zhejiang Anhong technology co.,ltd", "ZHEJIANG-ANHONG" }, { 0x18D793, 0xB00000, 0xBFFFFF, "EcoG", "ECOG" }, { 0x18D793, 0xC00000, 0xCFFFFF, "Private", "PRIVATE" }, { 0x18D793, 0xD00000, 0xDFFFFF, "Kraken Technologies Ltd", "KRAKEN-TECHNOLOGIES" }, { 0x18D793, 0xE00000, 0xEFFFFF, "Teegarden Applied Science Inc", "TEEGARDEN-APPLIED-SCIENCE" }, { 0x18FDCB, 0x000000, 0x0FFFFF, "Shenzhen Rui jiali Electronic Technology Co. Ltd.", "SHENZHEN-RUI-JIALI" }, { 0x18FDCB, 0x100000, 0x1FFFFF, "SOTHIS CIC TEC (Shanghai) Co., Ltd", "SOTHIS-CIC-TEC-SHANGHAI" }, { 0x18FDCB, 0x200000, 0x2FFFFF, "Cabtronix AG", "CABTRONIX" }, { 0x18FDCB, 0x300000, 0x3FFFFF, "Staclar, Inc.", "STACLAR" }, { 0x18FDCB, 0x400000, 0x4FFFFF, "Gosuncn Technology Group Co.,LTD.", "GOSUNCN-GROUP" }, { 0x18FDCB, 0x500000, 0x5FFFFF, "Accel Robotics", "ACCEL-ROBOTICS" }, { 0x18FDCB, 0x600000, 0x6FFFFF, "SKA Organisation", "SKA-ORGANISATION" }, { 0x18FDCB, 0x700000, 0x7FFFFF, "ENERGIE IP", "ENERGIE-IP" }, { 0x18FDCB, 0x800000, 0x8FFFFF, "CISTECH Solutions", "CISTECH-SOLUTIONS" }, { 0x18FDCB, 0x900000, 0x9FFFFF, "CreyNox GmbH", "CREYNOX" }, { 0x18FDCB, 0xA00000, 0xAFFFFF, "Sercomm Corporation.", "SERCOMM" }, { 0x18FDCB, 0xB00000, 0xBFFFFF, "TRANSLITE GLOBAL LLC", "TRANSLITE-GLOBAL" }, { 0x18FDCB, 0xC00000, 0xCFFFFF, "Ark Vision Systems GmbH & Co. KG", "ARK-VISION" }, { 0x18FDCB, 0xD00000, 0xDFFFFF, "StreamLocator", "STREAMLOCATOR" }, { 0x18FDCB, 0xE00000, 0xEFFFFF, "KWANG YANG MOTOR CO.,LTD", "KWANG-YANG-MOTOR" }, { 0x1C21D1, 0x000000, 0x0FFFFF, "Toyo System CO.,LTD.", "TOYO-SYSTEM" }, { 0x1C21D1, 0x100000, 0x1FFFFF, "Ognios GmbH", "OGNIOS" }, { 0x1C21D1, 0x200000, 0x2FFFFF, "Varaani Works Oy", "VARAANI-WORKS-OY" }, { 0x1C21D1, 0x300000, 0x3FFFFF, "Microview Science and Technology Co.,Ltd", "MICROVIEW-SCIENCE" }, { 0x1C21D1, 0x400000, 0x4FFFFF, "Scientific-Production Enterprise Dynamics", "SCIENTIFIC-PRODUCTION-DYNAMICS" }, { 0x1C21D1, 0x500000, 0x5FFFFF, "B-Scada Inc.", "B-SCADA" }, { 0x1C21D1, 0x600000, 0x6FFFFF, "Wuhan TieChi Detection Technology Co., Ltd.", "WUHAN-TIECHI-DETECTION" }, { 0x1C21D1, 0x700000, 0x7FFFFF, "Soundtrack Your Brand Sweden AB", "SOUNDTRACK-YOUR-BRAND-SWEDEN-AB" }, { 0x1C21D1, 0x800000, 0x8FFFFF, "Cleaveland/Price, Inc.", "CLEAVELAND/PRICE" }, { 0x1C21D1, 0x900000, 0x9FFFFF, "Dynojet Research", "DYNOJET-RESEARCH" }, { 0x1C21D1, 0xA00000, 0xAFFFFF, "LG CNS", "LG-CNS" }, { 0x1C21D1, 0xB00000, 0xBFFFFF, "Global Design Solutions Ltd", "GLOBAL-DESIGN-SOLUTIONS" }, { 0x1C21D1, 0xC00000, 0xCFFFFF, "Private", "PRIVATE" }, { 0x1C21D1, 0xD00000, 0xDFFFFF, "Liscotech System Co., Ltd.", "LISCOTECH-SYSTEM" }, { 0x1C21D1, 0xE00000, 0xEFFFFF, "p2-plus inc.", "P2-PLUS" }, { 0x1C21D1, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x1C5974, 0x000000, 0x0FFFFF, "Shenzhen Hanshine Technology Co.Ltd.", "SHENZHEN-HANSHINE" }, { 0x1C5974, 0x100000, 0x1FFFFF, "Logical Infrastructure PTY LTD", "LOGICAL-INFRASTRUCTURE-PTY" }, { 0x1C5974, 0x200000, 0x2FFFFF, "Chongqing Taishan Cable Co., Ltd", "CHONGQING-TAISHAN-CABLE" }, { 0x1C5974, 0x300000, 0x3FFFFF, "Jiangsu Welm Technology Co.,Ltd", "JIANGSU-WELM" }, { 0x1C5974, 0x400000, 0x4FFFFF, "Syntax technology(tianjin)Co.,LTD", "SYNTAX-TIANJIN" }, { 0x1C5974, 0x500000, 0x5FFFFF, "Shenzhen Shi Fang Communication Technology Co., Ltd", "SHENZHEN-SHI-FANG-COMMUNICATION" }, { 0x1C5974, 0x600000, 0x6FFFFF, "Square Inc.", "SQUARE" }, { 0x1C5974, 0x700000, 0x7FFFFF, "Lynxi Technologies Co.,Ltd.", "LYNXI-TECHNOLOGIES" }, { 0x1C5974, 0x800000, 0x8FFFFF, "Topway Global Technology Limited", "TOPWAY-GLOBAL" }, { 0x1C5974, 0x900000, 0x9FFFFF, "Shanghai Laisi Information Technology Co.,Ltd", "SHANGHAI-LAISI-INFORMATION" }, { 0x1C5974, 0xA00000, 0xAFFFFF, "Council Rock", "COUNCIL-ROCK" }, { 0x1C5974, 0xB00000, 0xBFFFFF, "Beijing Flintec Electronic Technology Co.,Ltd.", "BEIJING-FLINTEC" }, { 0x1C5974, 0xC00000, 0xCFFFFF, "King-On Technology Ltd.", "KING-ON" }, { 0x1C5974, 0xD00000, 0xDFFFFF, "Shenzhen Geshem Technology Co Ltd", "SHENZHEN-GESHEM" }, { 0x1C5974, 0xE00000, 0xEFFFFF, "Globe Tracker ApS", "GLOBE-TRACKER-APS" }, { 0x1C8259, 0x000000, 0x0FFFFF, "Shandong Luneng Intelligence Technology CO., Ltd", "SHANDONG-LUNENG-INTELLIGENCE" }, { 0x1C8259, 0x100000, 0x1FFFFF, "3xLOGIC Inc.", "3XLOGIC" }, { 0x1C8259, 0x200000, 0x2FFFFF, "Diatrend Corporation", "DIATREND" }, { 0x1C8259, 0x300000, 0x3FFFFF, "C&A Marketing, INC.", "C-A-MARKETING" }, { 0x1C8259, 0x400000, 0x4FFFFF, "winsun AG", "WINSUN" }, { 0x1C8259, 0x500000, 0x5FFFFF, "Fagus-GreCon Greten GmbH & Co. KG", "FAGUS-GRECON-GRETEN" }, { 0x1C8259, 0x600000, 0x6FFFFF, "CGI IT UK LIMITED", "CGI-IT-UK" }, { 0x1C8259, 0x700000, 0x7FFFFF, "Jump Trading", "JUMP-TRADING" }, { 0x1C8259, 0x800000, 0x8FFFFF, "SHENZHEN AOA TECHNOLOGY CO.,LTD", "SHENZHEN-AOA" }, { 0x1C8259, 0x900000, 0x9FFFFF, "Shanghai Xiaoyan Technology Co., Ltd.", "SHANGHAI-XIAOYAN" }, { 0x1C8259, 0xA00000, 0xAFFFFF, "ESTec Corporation", "ESTEC" }, { 0x1C8259, 0xB00000, 0xBFFFFF, "KeyWest Networks, Inc", "KEYWEST-NETWORKS" }, { 0x1C8259, 0xC00000, 0xCFFFFF, "Evondos Oy", "EVONDOS-OY" }, { 0x1C8259, 0xD00000, 0xDFFFFF, "Applied Concepts, Inc.", "APPLIED-CONCEPTS" }, { 0x1C8259, 0xE00000, 0xEFFFFF, "Microtronics Engineering GmbH", "MICROTRONICS-ENGINEERING" }, { 0x1C8774, 0x000000, 0x0FFFFF, "Philips Personal Health Solutions", "PHILIPS-PERSONAL-HEALTH-SOLUTIONS" }, { 0x1C8774, 0x100000, 0x1FFFFF, "SIGFOX", "SIGFOX" }, { 0x1C8774, 0x200000, 0x2FFFFF, "Nichigaku", "NICHIGAKU" }, { 0x1C8774, 0x300000, 0x3FFFFF, "Silora R&D", "SILORA-R-D" }, { 0x1C8774, 0x400000, 0x4FFFFF, "Weber Marking Systems GmbH", "WEBER-MARKING" }, { 0x1C8774, 0x500000, 0x5FFFFF, "Xiaoxinge (Tangshan) Electronic Technology Co., Ltd.", "XIAOXINGE-TANGSHAN" }, { 0x1C8774, 0x600000, 0x6FFFFF, "Schawbel Technologies LLC", "SCHAWBEL-TECHNOLOGIES" }, { 0x1C8774, 0x700000, 0x7FFFFF, "Ing Buero Ziegler", "ING-BUERO-ZIEGLER" }, { 0x1C8774, 0x800000, 0x8FFFFF, "Surtec Industries, Inc", "SURTEC-INDUSTRIES" }, { 0x1C8774, 0x900000, 0x9FFFFF, "Wide World Trade HK ltd.", "WIDE-WORLD-TRADE-HK" }, { 0x1C8774, 0xA00000, 0xAFFFFF, "Nebbiolo Technologies", "NEBBIOLO-TECHNOLOGIES" }, { 0x1C8774, 0xB00000, 0xBFFFFF, "HABEY USA Inc.", "HABEY-USA" }, { 0x1C8774, 0xC00000, 0xCFFFFF, "New Nordic Engineering", "NEW-NORDIC-ENGINEERING" }, { 0x1C8774, 0xD00000, 0xDFFFFF, "CLABER SPA", "CLABER-SPA" }, { 0x1C8774, 0xE00000, 0xEFFFFF, "Quest Integrity", "QUEST-INTEGRITY" }, { 0x1C8776, 0x000000, 0x0FFFFF, "Dspread Technology (Beijing) Inc.", "DSPREAD-BEIJING" }, { 0x1C8776, 0x100000, 0x1FFFFF, "EBS Sp. z o.o.", "EBS-SP-Z-O-O" }, { 0x1C8776, 0x200000, 0x2FFFFF, "Ibeo Automotive Systems GmbH", "IBEO-AUTOMOTIVE" }, { 0x1C8776, 0x300000, 0x3FFFFF, "Unjo AB", "UNJO-AB" }, { 0x1C8776, 0x400000, 0x4FFFFF, "RDP.RU", "RDP-RU" }, { 0x1C8776, 0x500000, 0x5FFFFF, "Zhuhai MYZR Technology Co.,Ltd", "ZHUHAI-MYZR" }, { 0x1C8776, 0x600000, 0x6FFFFF, "philandro Software GmbH", "PHILANDRO-SOFTWARE" }, { 0x1C8776, 0x700000, 0x7FFFFF, "Corporate Systems Engineering", "CORPORATE-ENGINEERING" }, { 0x1C8776, 0x800000, 0x8FFFFF, "Guangzhou Video-Star Electronics Co.,Ltd.", "GUANGZHOU-VIDEO-STAR-ELECTRONICS" }, { 0x1C8776, 0x900000, 0x9FFFFF, "Tokyo Drawing Ltd.", "TOKYO-DRAWING" }, { 0x1C8776, 0xA00000, 0xAFFFFF, "Jiangsu ETERN COMMUNICATION Co.,ltd", "JIANGSU-ETERN-COMMUNICATION" }, { 0x1C8776, 0xB00000, 0xBFFFFF, "Hekatron Vertriebs GmbH", "HEKATRON-VERTRIEBS" }, { 0x1C8776, 0xC00000, 0xCFFFFF, "Strone Technology", "STRONE" }, { 0x1C8776, 0xD00000, 0xDFFFFF, "Qivivo", "QIVIVO" }, { 0x1C8776, 0xE00000, 0xEFFFFF, "Artis GmbH", "ARTIS" }, { 0x1C8779, 0x000000, 0x0FFFFF, "Wurm GmbH & Co. KG Elektronische Systeme", "WURM-ELEKTRONISCHE-SYSTEME" }, { 0x1C8779, 0x100000, 0x1FFFFF, "A-GEAR COMPANY LIMITED", "A-GEAR-COMPANY" }, { 0x1C8779, 0x200000, 0x2FFFFF, "SMARTMOVT TECHNOLOGY Co., LTD", "SMARTMOVT" }, { 0x1C8779, 0x300000, 0x3FFFFF, "Visual Land Inc.", "VISUAL-LAND" }, { 0x1C8779, 0x400000, 0x4FFFFF, "Novetta", "NOVETTA" }, { 0x1C8779, 0x500000, 0x5FFFFF, "BEIDIAN GROUP", "BEIDIAN-GROUP" }, { 0x1C8779, 0x600000, 0x6FFFFF, "Shenzhen Shouxin Tongda Technology Co.,Ltd", "SHENZHEN-SHOUXIN-TONGDA" }, { 0x1C8779, 0x700000, 0x7FFFFF, "TASC Systems Inc.", "TASC" }, { 0x1C8779, 0x800000, 0x8FFFFF, "ZHEJIANG ITENAL TECHNOLOGY CO.,LTD", "ZHEJIANG-ITENAL" }, { 0x1C8779, 0x900000, 0x9FFFFF, "Istria soluciones de criptografia, S. A.", "ISTRIA-SOLUCIONES-DE-CRIPTOGRAFIA-S-A" }, { 0x1C8779, 0xA00000, 0xAFFFFF, "Hangzhou Xiaowen Intelligent Technology Co., Ltd.", "HANGZHOU-XIAOWEN-INTELLIGENT" }, { 0x1C8779, 0xB00000, 0xBFFFFF, "Beijing Geedeen Technology Co., Ltd", "BEIJING-GEEDEEN" }, { 0x1C8779, 0xC00000, 0xCFFFFF, "AllThingsTalk", "ALLTHINGSTALK" }, { 0x1C8779, 0xD00000, 0xDFFFFF, "Shenzhen Innovaconn Systems Co.,Ltd", "SHENZHEN-INNOVACONN" }, { 0x1C8779, 0xE00000, 0xEFFFFF, "ASSYSTEM France", "ASSYSTEM-FRANCE" }, { 0x1C8879, 0x000000, 0x0FFFFF, "Newps co.,ltd", "NEWPS" }, { 0x1C8879, 0x100000, 0x1FFFFF, "ANDRA Sp. z o. o.", "ANDRA-SP-Z-O-O" }, { 0x1C8879, 0x200000, 0x2FFFFF, "Airsmart System Co.,Ltd", "AIRSMART-SYSTEM" }, { 0x1C8879, 0x300000, 0x3FFFFF, "Shenzhen Xiaoxi Technology Co., Ltd.", "SHENZHEN-XIAOXI" }, { 0x1C8879, 0x400000, 0x4FFFFF, "Ultraflux", "ULTRAFLUX" }, { 0x1C8879, 0x500000, 0x5FFFFF, "SHENZHENFREELINK ELECTRONIC CO.,LTD", "SHENZHENFREELINK" }, { 0x1C8879, 0x600000, 0x6FFFFF, "Eolos IT Corp", "EOLOS-IT" }, { 0x1C8879, 0x700000, 0x7FFFFF, "Sensys Networks, Inc.", "SENSYS-NETWORKS" }, { 0x1C8879, 0x800000, 0x8FFFFF, "Toshiba Toko Meter Systems Co., LTD.", "TOSHIBA-TOKO-METER" }, { 0x1C8879, 0x900000, 0x9FFFFF, "Xingtera China Ltd", "XINGTERA-CHINA" }, { 0x1C8879, 0xA00000, 0xAFFFFF, "ITW-FEG", "ITW-FEG" }, { 0x1C8879, 0xB00000, 0xBFFFFF, "gekartel AG", "GEKARTEL" }, { 0x1C8879, 0xC00000, 0xCFFFFF, "Accriva", "ACCRIVA" }, { 0x1C8879, 0xD00000, 0xDFFFFF, "Beijing Raycores Technology Co.,Ltd", "BEIJING-RAYCORES" }, { 0x1C8879, 0xE00000, 0xEFFFFF, "Orion Labs inc", "ORION-LABS" }, { 0x1CA0D3, 0x000000, 0x0FFFFF, "OOO Tekhnotronika", "OOO-TEKHNOTRONIKA" }, { 0x1CA0D3, 0x100000, 0x1FFFFF, "Jabil circuit italia srl", "JABIL-CIRCUIT-ITALIA-SRL" }, { 0x1CA0D3, 0x200000, 0x2FFFFF, "NovTech, Inc.", "NOVTECH" }, { 0x1CA0D3, 0x300000, 0x3FFFFF, "SAVELEC", "SAVELEC" }, { 0x1CA0D3, 0x400000, 0x4FFFFF, "NPO TELECOM JSC", "NPO-TELECOM-JSC" }, { 0x1CA0D3, 0x500000, 0x5FFFFF, "Dynamic Connect (Suzhou) Hi-Tech Electronic Co.,Ltd.", "DYNAMIC-CONNECT-SUZHOU-HI-TECH" }, { 0x1CA0D3, 0x600000, 0x6FFFFF, "Intertecno SRL NISUTA", "INTERTECNO-SRL-NISUTA" }, { 0x1CA0D3, 0x700000, 0x7FFFFF, "U-TX Technologies Ltd", "U-TX-TECHNOLOGIES" }, { 0x1CA0D3, 0x800000, 0x8FFFFF, "Desarrollos y Soluciones Guinea I+D S.L.", "DESARROLLOS-Y-SOLUCIONES-GUINEA-I+D" }, { 0x1CA0D3, 0x900000, 0x9FFFFF, "Cirque Audio Technology Co., Ltd", "CIRQUE-AUDIO" }, { 0x1CA0D3, 0xA00000, 0xAFFFFF, "DSM Messtechnik GmbH", "DSM-MESSTECHNIK" }, { 0x1CA0D3, 0xB00000, 0xBFFFFF, "Guang Dong He Zheng Network Technology Co.,Ltd", "GUANG-DONG-HE-ZHENG-NETWORK" }, { 0x1CA0D3, 0xC00000, 0xCFFFFF, "LYT inc.", "LYT" }, { 0x1CA0D3, 0xD00000, 0xDFFFFF, "ERATO (HK) Corporation Limited", "ERATO-HK" }, { 0x1CA0D3, 0xE00000, 0xEFFFFF, "Exicom Tele-Systems Ltd.", "EXICOM-TELE" }, { 0x1CA0EF, 0x000000, 0x0FFFFF, "Tangshan Liulin Automation Equipment Co., Ltd.", "TANGSHAN-LIULIN-AUTOMATION-EQUIPMENT" }, { 0x1CA0EF, 0x100000, 0x1FFFFF, "Wisnu and Supak Co.,Ltd.", "WISNU-AND-SUPAK" }, { 0x1CA0EF, 0x200000, 0x2FFFFF, "Schneider-Electric(China)Co.Ltd,Shenzhen Branch", "SCHNEIDER-ELECTRIC-CHINA-SHENZHEN-BRANCH" }, { 0x1CA0EF, 0x300000, 0x3FFFFF, "Sequent AG", "SEQUENT" }, { 0x1CA0EF, 0x400000, 0x4FFFFF, "Leviathan Solutions Ltd.", "LEVIATHAN-SOLUTIONS" }, { 0x1CA0EF, 0x500000, 0x5FFFFF, "Nanjing Bilin Intelligent Identification Technology Co.,Ltd", "NANJING-BILIN-INTELLIGENT-IDENTIFICATION" }, { 0x1CA0EF, 0x600000, 0x6FFFFF, "HANJEN.CHIN CO., LTD.", "HANJEN-CHIN" }, { 0x1CA0EF, 0x700000, 0x7FFFFF, "tec5AG", "TEC5AG" }, { 0x1CA0EF, 0x800000, 0x8FFFFF, "Zillnk", "ZILLNK" }, { 0x1CA0EF, 0x900000, 0x9FFFFF, "Atlas Aerospace", "ATLAS-AEROSPACE" }, { 0x1CA0EF, 0xA00000, 0xAFFFFF, "Henrich Electronics Corporation", "HENRICH-ELECTRONICS" }, { 0x1CA0EF, 0xB00000, 0xBFFFFF, "BMK professional electronics GmbH", "BMK-PROFESSIONAL-ELECTRONICS" }, { 0x1CA0EF, 0xC00000, 0xCFFFFF, "LLC Gagar.In", "LLC-GAGAR-IN" }, { 0x1CA0EF, 0xD00000, 0xDFFFFF, "Shenzhen Liandian Communication Technology Co.LTD", "SHENZHEN-LIANDIAN-COMMUNICATION" }, { 0x1CA0EF, 0xE00000, 0xEFFFFF, "RDA Microelectronics Technologies (Shanghai) Co. , Ltd", "RDA-MICROELECTRONICS-TECHNOLOGIES-SHANGHAI" }, { 0x1CAE3E, 0x000000, 0x0FFFFF, "DAO QIN TECHNOLOGY CO.LTD.", "DAO-QIN" }, { 0x1CAE3E, 0x100000, 0x1FFFFF, "IPROAD,Inc", "IPROAD" }, { 0x1CAE3E, 0x200000, 0x2FFFFF, "LINKWISE TECHNOLOGIES CO., LIMITED", "LINKWISE-TECHNOLOGIES" }, { 0x1CAE3E, 0x300000, 0x3FFFFF, "HagerEnergy GmbH", "HAGERENERGY" }, { 0x1CAE3E, 0x400000, 0x4FFFFF, "P.H.U. Metering Anna Moder", "P-H-U-METERING-ANNA-MODER" }, { 0x1CAE3E, 0x500000, 0x5FFFFF, "Netvio Ltd", "NETVIO" }, { 0x1CAE3E, 0x600000, 0x6FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x1CAE3E, 0x700000, 0x7FFFFF, "NextDrive Co.", "NEXTDRIVE" }, { 0x1CAE3E, 0x800000, 0x8FFFFF, "JingQi(tianjin) technology Co., Ltd", "JINGQI-TIANJIN" }, { 0x1CAE3E, 0x900000, 0x9FFFFF, "China Convert Technology Co., Ltd.", "CHINA-CONVERT" }, { 0x1CAE3E, 0xA00000, 0xAFFFFF, "Beijing SuperCloud Technology Co., Ltd.", "BEIJING-SUPERCLOUD" }, { 0x1CAE3E, 0xB00000, 0xBFFFFF, "Beijing Boyan-rd Technology Development CO.,LTD", "BEIJING-BOYAN-RD-DEVELOPMENT" }, { 0x1CAE3E, 0xC00000, 0xCFFFFF, "QuEST Rail LLC", "QUEST-RAIL" }, { 0x1CAE3E, 0xD00000, 0xDFFFFF, "FORME", "FORME" }, { 0x1CAE3E, 0xE00000, 0xEFFFFF, "Broachlink Technology Co.,Limited", "BROACHLINK" }, { 0x1CC0E1, 0x000000, 0x0FFFFF, "Shenzhen Highsharp Electronics Ltd.", "SHENZHEN-HIGHSHARP-ELECTRONICS" }, { 0x1CC0E1, 0x100000, 0x1FFFFF, "Hangzhou Kaierda Electric Welding Machine Co.,Ltd", "HANGZHOU-KAIERDA-ELECTRIC-WELDING-MACHINE" }, { 0x1CC0E1, 0x200000, 0x2FFFFF, "Abbott Medical Optics Inc.", "ABBOTT-MEDICAL-OPTICS" }, { 0x1CC0E1, 0x300000, 0x3FFFFF, "HANGZHOU SOFTEL OPTIC CO., LTD", "HANGZHOU-SOFTEL-OPTIC" }, { 0x1CC0E1, 0x400000, 0x4FFFFF, "Videri Inc.", "VIDERI" }, { 0x1CC0E1, 0x500000, 0x5FFFFF, "Kids Wireless Inc", "KIDS-WIRELESS" }, { 0x1CC0E1, 0x600000, 0x6FFFFF, "Monument Labs, Inc.", "MONUMENT-LABS" }, { 0x1CC0E1, 0x700000, 0x7FFFFF, "SHENZHEN KINSTONE D&T DEVELOP CO.,LTD", "SHENZHEN-KINSTONE-D-T-DEVELOP" }, { 0x1CC0E1, 0x800000, 0x8FFFFF, "LX Corporation Pty Ltd", "LX-PTY" }, { 0x1CC0E1, 0x900000, 0x9FFFFF, "Ospicon Company Limited", "OSPICON-COMPANY" }, { 0x1CC0E1, 0xA00000, 0xAFFFFF, "SECHERON SA", "SECHERON" }, { 0x1CC0E1, 0xB00000, 0xBFFFFF, "Exigent Sensors", "EXIGENT-SENSORS" }, { 0x1CC0E1, 0xC00000, 0xCFFFFF, "Nitto Seiko", "NITTO-SEIKO" }, { 0x1CC0E1, 0xD00000, 0xDFFFFF, "NewLand (NZ) Communication Tech Limited", "NEWLAND-NZ-COMMUNICATION-TECH" }, { 0x1CC0E1, 0xE00000, 0xEFFFFF, "Yun Yang Fire Safety Equipment Co.,Ltd.", "YUN-YANG-FIRE-SAFETY-EQUIPMENT" }, { 0x1CCAE3, 0x000000, 0x0FFFFF, "Private", "PRIVATE" }, { 0x1CCAE3, 0x100000, 0x1FFFFF, "PGA ELECTRONIC", "PGA" }, { 0x1CCAE3, 0x200000, 0x2FFFFF, "Insigma Inc", "INSIGMA" }, { 0x1CCAE3, 0x300000, 0x3FFFFF, "Shenzhen Smart Device Technology Co.,LTD", "SHENZHEN-SMART-DEVICE" }, { 0x1CCAE3, 0x400000, 0x4FFFFF, "Sunray Medical Apparatus Co.,Ltd.", "SUNRAY-MEDICAL-APPARATUS" }, { 0x1CCAE3, 0x500000, 0x5FFFFF, "TengFeng", "TENGFENG" }, { 0x1CCAE3, 0x600000, 0x6FFFFF, "TOKAI RIKA CO., LTD.", "TOKAI-RIKA" }, { 0x1CCAE3, 0x700000, 0x7FFFFF, "Bird Home Automation GmbH", "BIRD-HOME-AUTOMATION" }, { 0x1CCAE3, 0x800000, 0x8FFFFF, "OxySec S.r.l.", "OXYSEC" }, { 0x1CCAE3, 0x900000, 0x9FFFFF, "SHIN-YOSHA CORPORATION", "SHIN-YOSHA" }, { 0x1CCAE3, 0xA00000, 0xAFFFFF, "SIREA", "SIREA" }, { 0x1CCAE3, 0xB00000, 0xBFFFFF, "Dream Visions Co., LTD", "DREAM-VISIONS" }, { 0x1CCAE3, 0xC00000, 0xCFFFFF, "Gahdeung Elecom", "GAHDEUNG-ELECOM" }, { 0x1CCAE3, 0xD00000, 0xDFFFFF, "eSight Corporation", "ESIGHT" }, { 0x1CCAE3, 0xE00000, 0xEFFFFF, "Dabi Atlante S/A Industrias Medico Odontológicas", "DABI-ATLANTE-S/A-INDUSTRIAS-MEDICO-ODONTOLGICAS" }, { 0x1CCAE3, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x1CFD08, 0x000000, 0x0FFFFF, "InSeat Solutions, LLC", "INSEAT-SOLUTIONS" }, { 0x1CFD08, 0x100000, 0x1FFFFF, "Shenzhen SEWO Technology Co.,Ltd.", "SHENZHEN-SEWO" }, { 0x1CFD08, 0x200000, 0x2FFFFF, "HiHi Ltd", "HIHI" }, { 0x1CFD08, 0x300000, 0x3FFFFF, "Umeox Innovations Co.,Ltd", "UMEOX-INNOVATIONS" }, { 0x1CFD08, 0x400000, 0x4FFFFF, "SABIK Offshore GmbH", "SABIK-OFFSHORE" }, { 0x1CFD08, 0x500000, 0x5FFFFF, "Beijing Hengxin Rainbow Information Technology Co.,Ltd", "BEIJING-HENGXIN-RAINBOW-INFORMATION" }, { 0x1CFD08, 0x600000, 0x6FFFFF, "A&B Technology", "A-B" }, { 0x1CFD08, 0x700000, 0x7FFFFF, "sunweit industrial limited", "SUNWEIT-INDUSTRIAL" }, { 0x1CFD08, 0x800000, 0x8FFFFF, "ShenZhen DeLippo Technology Co., LTD", "SHENZHEN-DELIPPO" }, { 0x1CFD08, 0x900000, 0x9FFFFF, "Cobham Slip Rings", "COBHAM-SLIP-RINGS" }, { 0x1CFD08, 0xA00000, 0xAFFFFF, "Banmak Technogies Co.,Ltd", "BANMAK-TECHNOGIES" }, { 0x1CFD08, 0xB00000, 0xBFFFFF, "guangzhou huiqun intelligent technology co. LTD", "GUANGZHOU-HUIQUN-INTELLIGENT" }, { 0x1CFD08, 0xC00000, 0xCFFFFF, "Shanghai YottaTech Co Ltd (上海尧它科技有限公司)", "SHANGHAI-YOTTATECH" }, { 0x1CFD08, 0xD00000, 0xDFFFFF, "Tianjin Keyvia Electric Co.,Ltd", "TIANJIN-KEYVIA-ELECTRIC" }, { 0x1CFD08, 0xE00000, 0xEFFFFF, "MESHBOX FOUNDATION PTE. LTD.", "MESHBOX-FOUNDATION-PTE" }, { 0x200A0D, 0x000000, 0x0FFFFF, "halstrup-walcher GmbH", "HALSTRUP-WALCHER" }, { 0x200A0D, 0x100000, 0x1FFFFF, "Wideband Systems, Inc.", "WIDEBAND" }, { 0x200A0D, 0x200000, 0x2FFFFF, "Netinovo Technologies(Shenzhen) Ltd", "NETINOVO-TECHNOLOGIES-SHENZHEN" }, { 0x200A0D, 0x300000, 0x3FFFFF, "Clearly IP Inc", "CLEARLY-IP" }, { 0x200A0D, 0x400000, 0x4FFFFF, "Virtium", "VIRTIUM" }, { 0x200A0D, 0x500000, 0x5FFFFF, "Shenzhen Zhangyue Technology Co.,Ltd", "SHENZHEN-ZHANGYUE" }, { 0x200A0D, 0x600000, 0x6FFFFF, "Austin Hughes Electronics Ltd.", "AUSTIN-HUGHES-ELECTRONICS" }, { 0x200A0D, 0x700000, 0x7FFFFF, "Tecnint HTE SRL", "TECNINT-HTE-SRL" }, { 0x200A0D, 0x800000, 0x8FFFFF, "bcheck NV", "BCHECK-NV" }, { 0x200A0D, 0x900000, 0x9FFFFF, "Welzek (Beijing) Technologies Co, Ltd", "WELZEK-BEIJING-TECHNOLOGIES" }, { 0x200A0D, 0xA00000, 0xAFFFFF, "IRSAP", "IRSAP" }, { 0x200A0D, 0xB00000, 0xBFFFFF, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x200A0D, 0xC00000, 0xCFFFFF, "sehwa", "SEHWA" }, { 0x200A0D, 0xD00000, 0xDFFFFF, "Bently & EL Co. Ltd.", "BENTLY-EL" }, { 0x200A0D, 0xE00000, 0xEFFFFF, "HANGZHOU DANGBEI NETWORK TECH.Co.,Ltd", "HANGZHOU-DANGBEI-NETWORK-TECH" }, { 0x208593, 0x000000, 0x0FFFFF, "Hemina Spa", "HEMINA-SPA" }, { 0x208593, 0x100000, 0x1FFFFF, "Networking Services Corp", "NETWORKING-SERVICES" }, { 0x208593, 0x200000, 0x2FFFFF, "Mid Continent Controls, Inc.", "MID-CONTINENT-CONTROLS" }, { 0x208593, 0x300000, 0x3FFFFF, "UNILUMIN GROUP CO.,LTD", "UNILUMIN-GROUP" }, { 0x208593, 0x400000, 0x4FFFFF, "Kloudspot Inc", "KLOUDSPOT" }, { 0x208593, 0x500000, 0x5FFFFF, "Wave-In Communication", "WAVE-IN-COMMUNICATION" }, { 0x208593, 0x600000, 0x6FFFFF, "Eilersen Electric A/S", "EILERSEN-ELECTRIC-A/S" }, { 0x208593, 0x700000, 0x7FFFFF, "Great Lite International", "GREAT-LITE" }, { 0x208593, 0x800000, 0x8FFFFF, "AASSET SECURITY", "AASSET-SECURITY" }, { 0x208593, 0x900000, 0x9FFFFF, "Mastodon Design", "MASTODON-DESIGN" }, { 0x208593, 0xA00000, 0xAFFFFF, "H3 Industries, Inc.", "H3-INDUSTRIES" }, { 0x208593, 0xB00000, 0xBFFFFF, "IOG Products LLC", "IOG-PRODUCTS" }, { 0x208593, 0xC00000, 0xCFFFFF, "Regloplas AG", "REGLOPLAS" }, { 0x208593, 0xD00000, 0xDFFFFF, "Shanghai Kenmyond Industrial Network Equipment Co.,Ltd", "SHANGHAI-KENMYOND-INDUSTRIAL-NETWORK-EQUIPMENT" }, { 0x208593, 0xE00000, 0xEFFFFF, "Dynaudio", "DYNAUDIO" }, { 0x20CE2A, 0x000000, 0x0FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x20CE2A, 0x100000, 0x1FFFFF, "Shanghai Digicube Info&Tech Co.,Ltd.", "SHANGHAI-DIGICUBE-INFO-TECH" }, { 0x20CE2A, 0x200000, 0x2FFFFF, "Jabil", "JABIL" }, { 0x20CE2A, 0x300000, 0x3FFFFF, "Cuculus GmbH", "CUCULUS" }, { 0x20CE2A, 0x400000, 0x4FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x20CE2A, 0x500000, 0x5FFFFF, "Zaber Technologies Inc.", "ZABER-TECHNOLOGIES" }, { 0x20CE2A, 0x600000, 0x6FFFFF, "Radarxense BV", "RADARXENSE" }, { 0x20CE2A, 0x700000, 0x7FFFFF, "Beijing Huadianzhongxin Tech.Co.,Ltd", "BEIJING-HUADIANZHONGXIN-TECH" }, { 0x20CE2A, 0x800000, 0x8FFFFF, "Intelligraphics", "INTELLIGRAPHICS" }, { 0x20CE2A, 0x900000, 0x9FFFFF, "Rugged Monitoring", "RUGGED-MONITORING" }, { 0x20CE2A, 0xA00000, 0xAFFFFF, "MeshPlusPlus, Inc.", "MESHPLUSPLUS" }, { 0x20CE2A, 0xB00000, 0xBFFFFF, "Swarovski Optik KG", "SWAROVSKI-OPTIK" }, { 0x20CE2A, 0xC00000, 0xCFFFFF, "Ariston Thermo s.p.a.", "ARISTON-THERMO" }, { 0x20CE2A, 0xD00000, 0xDFFFFF, "LAUDA DR R WOBSER GMBH & CO KG", "LAUDA-DR-R-WOBSER" }, { 0x20CE2A, 0xE00000, 0xEFFFFF, "Funkwerk Systems GmbH", "FUNKWERK" }, { 0x241510, 0x000000, 0x0FFFFF, "Safetrust Inc", "SAFETRUST" }, { 0x241510, 0x100000, 0x1FFFFF, "SMaBiT GmbH", "SMABIT" }, { 0x241510, 0x200000, 0x2FFFFF, "Nile Global Inc", "NILE-GLOBAL" }, { 0x241510, 0x300000, 0x3FFFFF, "Kaiyun", "KAIYUN" }, { 0x241510, 0x400000, 0x4FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x241510, 0x500000, 0x5FFFFF, "GANZHOU DEHUIDA TECHNOLOGY CO., LTD", "GANZHOU-DEHUIDA" }, { 0x241510, 0x600000, 0x6FFFFF, "SHANDONG KEHUI POWER AUTOMATION CO. LTD.", "SHANDONG-KEHUI-POWER-AUTOMATION" }, { 0x241510, 0x700000, 0x7FFFFF, "SuZhou A-rack Information Technology Co.,Ltd", "SUZHOU-A-RACK-INFORMATION" }, { 0x241510, 0x800000, 0x8FFFFF, "Medicomp, Inc", "MEDICOMP" }, { 0x241510, 0x900000, 0x9FFFFF, "Topgolf Sweden AB", "TOPGOLF-SWEDEN-AB" }, { 0x241510, 0xA00000, 0xAFFFFF, "Unitronux(Shenzhen) Intelligence Technology Co.,Ltd", "UNITRONUX-SHENZHEN-INTELLIGENCE" }, { 0x241510, 0xB00000, 0xBFFFFF, "Teknic, Inc.", "TEKNIC" }, { 0x241510, 0xC00000, 0xCFFFFF, "Shenzhen Xtooltech Co., Ltd", "SHENZHEN-XTOOLTECH" }, { 0x241510, 0xD00000, 0xDFFFFF, "Helen of Troy", "HELEN-OF-TROY" }, { 0x241510, 0xE00000, 0xEFFFFF, "Satellite Link Technology CO.,LTD", "SATELLITE-LINK" }, { 0x244E7B, 0x000000, 0x0FFFFF, "Tekelek Europe Ltd", "TEKELEK-EUROPE" }, { 0x244E7B, 0x100000, 0x1FFFFF, "sonoscape", "SONOSCAPE" }, { 0x244E7B, 0x200000, 0x2FFFFF, "RCC TIME CO .,LIMITED", "RCC-TIME" }, { 0x244E7B, 0x300000, 0x3FFFFF, "Shenzhen Ruixunyun Technology Co.,Ltd.", "SHENZHEN-RUIXUNYUN" }, { 0x244E7B, 0x400000, 0x4FFFFF, "Leshi Internet Information & Technology (Beijing) Corp.", "LESHI-INTERNET-INFORMATION-BEIJING" }, { 0x244E7B, 0x500000, 0x5FFFFF, "Jiangsu Xuanbo Electronic Technologies Co.,Ltd", "JIANGSU-XUANBO-TECHNOLOGIES" }, { 0x244E7B, 0x600000, 0x6FFFFF, "Owasys Advanced Wireless Devices", "OWASYS-ADVANCED-WIRELESS-DEVICES" }, { 0x244E7B, 0x700000, 0x7FFFFF, "Nanjing Wanlida Technology Co., Ltd.", "NANJING-WANLIDA" }, { 0x244E7B, 0x800000, 0x8FFFFF, "Cyber1st", "CYBER1ST" }, { 0x244E7B, 0x900000, 0x9FFFFF, "UniMAT Automation Technology Co., Ltd.", "UNIMAT-AUTOMATION" }, { 0x244E7B, 0xA00000, 0xAFFFFF, "Shenzhen AWT science & technology limited", "SHENZHEN-AWT-SCIENCE" }, { 0x244E7B, 0xB00000, 0xBFFFFF, "Mighty Audio, Inc.", "MIGHTY-AUDIO" }, { 0x244E7B, 0xC00000, 0xCFFFFF, "CHUNGHSIN TECHNOLOGY GROUP CO.,LTD", "CHUNGHSIN-GROUP" }, { 0x244E7B, 0xD00000, 0xDFFFFF, "Church & Dwight Co., Inc.", "CHURCH-DWIGHT" }, { 0x244E7B, 0xE00000, 0xEFFFFF, "WithWin Technology ShenZhen CO.,LTD", "WITHWIN-SHENZHEN" }, { 0x245DFC, 0x000000, 0x0FFFFF, "CompanyDeep", "COMPANYDEEP" }, { 0x245DFC, 0x100000, 0x1FFFFF, "ARTICONA - Bechtle Logistik & Service GmbH", "ARTICONA-BECHTLE-LOGISTIK-SERVICE" }, { 0x245DFC, 0x200000, 0x2FFFFF, "Blue Iris Labs", "BLUE-IRIS-LABS" }, { 0x245DFC, 0x300000, 0x3FFFFF, "Shenzhen Hailuck Electronic Technology CO.,LTD", "SHENZHEN-HAILUCK" }, { 0x245DFC, 0x400000, 0x4FFFFF, "Suzhou Jiangzhi electronic technology co., Ltd", "SUZHOU-JIANGZHI" }, { 0x245DFC, 0x500000, 0x5FFFFF, "ContactProximity Inc", "CONTACTPROXIMITY" }, { 0x245DFC, 0x600000, 0x6FFFFF, "Guangzhou Lango Electronics Technology Co.,Ltd.", "GUANGZHOU-LANGO-ELECTRONICS" }, { 0x245DFC, 0x700000, 0x7FFFFF, "LTY LLC", "LTY" }, { 0x245DFC, 0x800000, 0x8FFFFF, "Cosmicnode", "COSMICNODE" }, { 0x245DFC, 0x900000, 0x9FFFFF, "TORGOVYY DOM TEHNOLOGIY LLC", "TORGOVYY-DOM-TEHNOLOGIY" }, { 0x245DFC, 0xA00000, 0xAFFFFF, "Tata Sky Limited", "TATA-SKY" }, { 0x245DFC, 0xB00000, 0xBFFFFF, "ONLY", "ONLY" }, { 0x245DFC, 0xC00000, 0xCFFFFF, "Senix Corporation", "SENIX" }, { 0x245DFC, 0xD00000, 0xDFFFFF, "Hunan Honestone lntelligence Technology Co.,Ltd", "HUNAN-HONESTONE-LNTELLIGENCE" }, { 0x245DFC, 0xE00000, 0xEFFFFF, "Dodge", "DODGE" }, { 0x282C02, 0x000000, 0x0FFFFF, "SAKATA DENKI Co., Ltd.", "SAKATA-DENKI" }, { 0x282C02, 0x100000, 0x1FFFFF, "Astronics AES", "ASTRONICS-AES" }, { 0x282C02, 0x200000, 0x2FFFFF, "Shenzhen emb-star technology co. LTD", "SHENZHEN-EMB-STAR" }, { 0x282C02, 0x300000, 0x3FFFFF, "Dexin Digital Technology Corp. Ltd.", "DEXIN-DIGITAL" }, { 0x282C02, 0x400000, 0x4FFFFF, "EFENTO T P SZYDŁOWSKI K ZARĘBA SPÓŁKA JAWNA", "EFENTO-T-P-SZYDOWSKI-K-ZARBA-SPKA-JAWNA" }, { 0x282C02, 0x500000, 0x5FFFFF, "LLC MICROTEH", "LLC-MICROTEH" }, { 0x282C02, 0x600000, 0x6FFFFF, "Lookman Electroplast Industries Ltd", "LOOKMAN-ELECTROPLAST-INDUSTRIES" }, { 0x282C02, 0x700000, 0x7FFFFF, "Telecom and Microelectonic Industries", "TELECOM-AND-MICROELECTONIC-INDUSTRIES" }, { 0x282C02, 0x800000, 0x8FFFFF, "Shenzhen Neoway Technology Co.,Ltd.", "SHENZHEN-NEOWAY" }, { 0x282C02, 0x900000, 0x9FFFFF, "Systec Intelligent Building Technology (Tianjin) Co.,Ltd.", "SYSTEC-INTELLIGENT-BUILDING-TIANJIN" }, { 0x282C02, 0xA00000, 0xAFFFFF, "Tokin Limited", "TOKIN" }, { 0x282C02, 0xB00000, 0xBFFFFF, "ThirdReality, Inc", "THIRDREALITY" }, { 0x282C02, 0xC00000, 0xCFFFFF, "Epoch International Enterprises, Inc.", "EPOCH-ENTERPRISES" }, { 0x282C02, 0xD00000, 0xDFFFFF, "SHENZHEN DOMENOR TECHNOLOGY LLC", "SHENZHEN-DOMENOR" }, { 0x282C02, 0xE00000, 0xEFFFFF, "Capintec, Inc.", "CAPINTEC" }, { 0x283613, 0x000000, 0x0FFFFF, "Shandong SIASUN Industrial Software Research Institute Co., Ltd", "SHANDONG-SIASUN-INDUSTRIAL-SOFTWARE-RESEARCH-INSTITUTE" }, { 0x283613, 0x100000, 0x1FFFFF, "Hi-p (Suzhou) Electronics Co,Ltd", "HI-P-SUZHOU-ELECTRONICS" }, { 0x283613, 0x200000, 0x2FFFFF, "Shenzhen HQVT TECHNOLOGY Co.,LTD", "SHENZHEN-HQVT" }, { 0x283613, 0x300000, 0x3FFFFF, "Linear Computing Inc.", "LINEAR-COMPUTING" }, { 0x283613, 0x400000, 0x4FFFFF, "Elytone Electronic Co., Ltd.", "ELYTONE" }, { 0x283613, 0x500000, 0x5FFFFF, "Turing Video", "TURING-VIDEO" }, { 0x283613, 0x600000, 0x6FFFFF, "ESI Ventures, LLC", "ESI-VENTURES" }, { 0x283613, 0x700000, 0x7FFFFF, "shenzhen technology limited", "SHENZHEN" }, { 0x283613, 0x800000, 0x8FFFFF, "Fuzhou Lesi Intelligent Technology Co., Ltd", "FUZHOU-LESI-INTELLIGENT" }, { 0x283613, 0x900000, 0x9FFFFF, "Qingdao Airpoint Electronics Co.,Ltd.", "QINGDAO-AIRPOINT-ELECTRONICS" }, { 0x283613, 0xA00000, 0xAFFFFF, "MAKEEN Energy", "MAKEEN-ENERGY" }, { 0x283613, 0xB00000, 0xBFFFFF, "Qorvo, Inc.", "QORVO" }, { 0x283613, 0xC00000, 0xCFFFFF, "midBit Technologies, LLC", "MIDBIT-TECHNOLOGIES" }, { 0x283613, 0xD00000, 0xDFFFFF, "AVYCON", "AVYCON" }, { 0x283613, 0xE00000, 0xEFFFFF, "EGMedical, s.r.o.", "EGMEDICAL-S-R-O" }, { 0x283638, 0x000000, 0x0FFFFF, "Knowles Electronics LLC", "KNOWLES-ELECTRONICS" }, { 0x283638, 0x100000, 0x1FFFFF, "Panasonic System Solutions Europe", "PANASONIC-SYSTEM-SOLUTIONS-EUROPE" }, { 0x283638, 0x200000, 0x2FFFFF, "SHENZHEN GOSPELL SMARTHOME ELECTRONIC CO., LTD.", "SHENZHEN-GOSPELL-SMARTHOME" }, { 0x283638, 0x300000, 0x3FFFFF, "Sabinetek", "SABINETEK" }, { 0x283638, 0x400000, 0x4FFFFF, "Dspread Technology (Beijing) Inc.", "DSPREAD-BEIJING" }, { 0x283638, 0x500000, 0x5FFFFF, "CHARGELIB", "CHARGELIB" }, { 0x283638, 0x600000, 0x6FFFFF, "Georg Neumann GmbH", "GEORG-NEUMANN" }, { 0x283638, 0x700000, 0x7FFFFF, "Innovative Technology Ltd", "INNOVATIVE" }, { 0x283638, 0x800000, 0x8FFFFF, "Havells India Limited", "HAVELLS-INDIA" }, { 0x283638, 0x900000, 0x9FFFFF, "Shenzhen Zhi Hua Creative Technology Co., Ltd.", "SHENZHEN-ZHI-HUA-CREATIVE" }, { 0x283638, 0xA00000, 0xAFFFFF, "Bluekey Pty Ltd", "BLUEKEY-PTY" }, { 0x283638, 0xB00000, 0xBFFFFF, "ShangHai Canall Information Technology Co.,Ltd", "SHANGHAI-CANALL-INFORMATION" }, { 0x283638, 0xC00000, 0xCFFFFF, "Swisson AG", "SWISSON" }, { 0x283638, 0xD00000, 0xDFFFFF, "APPEAK Technology System Co.Ltd.", "APPEAK-SYSTEM" }, { 0x283638, 0xE00000, 0xEFFFFF, "SCA Hygiene Products AB", "SCA-HYGIENE-PRODUCTS-AB" }, { 0x28B77C, 0x000000, 0x0FFFFF, "SHENZHEN EVIEW GPS TECHNOLOGY", "SHENZHEN-EVIEW-GPS" }, { 0x28B77C, 0x100000, 0x1FFFFF, "SolarEdge Technologies", "SOLAREDGE-TECHNOLOGIES" }, { 0x28B77C, 0x200000, 0x2FFFFF, "Zhuhai RongBang Electronic Technology Co., Ltd.", "ZHUHAI-RONGBANG" }, { 0x28B77C, 0x300000, 0x3FFFFF, "Beijing Kitten&Puppy Technology Co.,Ltd.", "BEIJING-KITTEN-PUPPY" }, { 0x28B77C, 0x400000, 0x4FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x28B77C, 0x500000, 0x5FFFFF, "GROTHE GmbH", "GROTHE" }, { 0x28B77C, 0x600000, 0x6FFFFF, "Shanghai Taiji Software Co.,Limited", "SHANGHAI-TAIJI-SOFTWARE" }, { 0x28B77C, 0x700000, 0x7FFFFF, "Convertertec Deutschland GmbH", "CONVERTERTEC-DEUTSCHLAND" }, { 0x28B77C, 0x800000, 0x8FFFFF, "Shenzhen PUAS Industrial Co.,LTD", "SHENZHEN-PUAS-INDUSTRIAL" }, { 0x28B77C, 0x900000, 0x9FFFFF, "Anser Coding Inc.", "ANSER-CODING" }, { 0x28B77C, 0xA00000, 0xAFFFFF, "Simaudio Ltd", "SIMAUDIO" }, { 0x28B77C, 0xB00000, 0xBFFFFF, "Vehant Technologies Pvt Ltd.", "VEHANT-TECHNOLOGIES-PVT" }, { 0x28B77C, 0xC00000, 0xCFFFFF, "AnyLink LLC", "ANYLINK" }, { 0x28B77C, 0xD00000, 0xDFFFFF, "Enedo Finland Oy", "ENEDO-FINLAND-OY" }, { 0x28B77C, 0xE00000, 0xEFFFFF, "Ray Pte Ltd", "RAY-PTE" }, { 0x28F537, 0x000000, 0x0FFFFF, "Valeo Siemens eAutomotive Norway", "VALEO-SIEMENS-EAUTOMOTIVE-NORWAY" }, { 0x28F537, 0x100000, 0x1FFFFF, "Umojo", "UMOJO" }, { 0x28F537, 0x200000, 0x2FFFFF, "Unicair Communication Tec Co., Ltd.", "UNICAIR-COMMUNICATION-TEC" }, { 0x28F537, 0x300000, 0x3FFFFF, "PRIMETECH ENGINEERING CORP.", "PRIMETECH-ENGINEERING" }, { 0x28F537, 0x400000, 0x4FFFFF, "Phyn LLC", "PHYN" }, { 0x28F537, 0x500000, 0x5FFFFF, "Atomrock LLC", "ATOMROCK" }, { 0x28F537, 0x600000, 0x6FFFFF, "MyOmega Systems GmbH", "MYOMEGA" }, { 0x28F537, 0x700000, 0x7FFFFF, "Shenzhen Modern Cowboy Technology Co.,Ltd.", "SHENZHEN-MODERN-COWBOY" }, { 0x28F537, 0x800000, 0x8FFFFF, "1MORE", "1MORE" }, { 0x28F537, 0x900000, 0x9FFFFF, "Herbert Waldmann GmbH & Co. KG", "HERBERT-WALDMANN" }, { 0x28F537, 0xA00000, 0xAFFFFF, "Honeywell Safety Products USA, Inc", "HONEYWELL-SAFETY-PRODUCTS-USA" }, { 0x28F537, 0xB00000, 0xBFFFFF, "LogiM GmbH Software und Entwicklung", "LOGIM-SOFTWARE-UND-ENTWICKLUNG" }, { 0x28F537, 0xC00000, 0xCFFFFF, "Matricx Singapore Pte Ltd", "MATRICX-SINGAPORE-PTE" }, { 0x28F537, 0xD00000, 0xDFFFFF, "Skyrockettoys LLC", "SKYROCKETTOYS" }, { 0x28F537, 0xE00000, 0xEFFFFF, "Performance Motion Devices", "PERFORMANCE-MOTION-DEVICES" }, { 0x28FD80, 0x000000, 0x0FFFFF, "Millcode", "MILLCODE" }, { 0x28FD80, 0x100000, 0x1FFFFF, "Galileo, Inc.", "GALILEO" }, { 0x28FD80, 0x200000, 0x2FFFFF, "Zhixiang Technology Co., Ltd.", "ZHIXIANG" }, { 0x28FD80, 0x300000, 0x3FFFFF, "NUUO, Inc.", "NUUO" }, { 0x28FD80, 0x400000, 0x4FFFFF, "Digital Signal Corp", "DIGITAL-SIGNAL" }, { 0x28FD80, 0x500000, 0x5FFFFF, "Xiaocong Network Limited", "XIAOCONG-NETWORK" }, { 0x28FD80, 0x600000, 0x6FFFFF, "Vigil Monitoring", "VIGIL-MONITORING" }, { 0x28FD80, 0x700000, 0x7FFFFF, "University of York", "UNIVERSITY-OF-YORK" }, { 0x28FD80, 0x800000, 0x8FFFFF, "Jasco Products Company", "JASCO-PRODUCTS-COMPANY" }, { 0x28FD80, 0x900000, 0x9FFFFF, "JINLITONG INTERNATIONAL CO.,LTD", "JINLITONG" }, { 0x28FD80, 0xA00000, 0xAFFFFF, "Apollo Digital (Taiwan) Ltd.", "APOLLO-DIGITAL-TAIWAN" }, { 0x28FD80, 0xB00000, 0xBFFFFF, "Poket Hardware GmbH", "POKET-HARDWARE" }, { 0x28FD80, 0xC00000, 0xCFFFFF, "Airbus Defence and Space Oy", "AIRBUS-DEFENCE-AND-SPACE-OY" }, { 0x28FD80, 0xD00000, 0xDFFFFF, "Grandway Technology (Shenzhen) Limited", "GRANDWAY-SHENZHEN" }, { 0x28FD80, 0xE00000, 0xEFFFFF, "T-Radio AS", "T-RADIO-AS" }, { 0x28FD80, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x2C16BD, 0x000000, 0x0FFFFF, "Beijing Jishi Huitong Technology Co., Ltd.", "BEIJING-JISHI-HUITONG" }, { 0x2C16BD, 0x100000, 0x1FFFFF, "Curtiss-Wright Drive Technology", "CURTISS-WRIGHT-DRIVE" }, { 0x2C16BD, 0x200000, 0x2FFFFF, "AIMCO", "AIMCO" }, { 0x2C16BD, 0x300000, 0x3FFFFF, "Saft AB", "SAFT-AB" }, { 0x2C16BD, 0x400000, 0x4FFFFF, "Sunit Oy", "SUNIT-OY" }, { 0x2C16BD, 0x500000, 0x5FFFFF, "Beijing Zhijian Link Technology Co., Ltd.", "BEIJING-ZHIJIAN-LINK" }, { 0x2C16BD, 0x600000, 0x6FFFFF, "CLOUDWALK TECHNOLOGY CO.,LTD", "CLOUDWALK" }, { 0x2C16BD, 0x700000, 0x7FFFFF, "SCT OPTRONICS CO., LTD", "SCT-OPTRONICS" }, { 0x2C16BD, 0x800000, 0x8FFFFF, "Shenzhen elink smart Co., ltd", "SHENZHEN-ELINK-SMART" }, { 0x2C16BD, 0x900000, 0x9FFFFF, "Shanghai Walktech Information Technology Co.,Ltd.", "SHANGHAI-WALKTECH-INFORMATION" }, { 0x2C16BD, 0xA00000, 0xAFFFFF, "Shenzhen Haiying Wire Tech Co., Ltd.", "SHENZHEN-HAIYING-WIRE-TECH" }, { 0x2C16BD, 0xB00000, 0xBFFFFF, "LINGDONG TECHNOLOGY (BEIJING) CO. LTD", "LINGDONG-BEIJING" }, { 0x2C16BD, 0xC00000, 0xCFFFFF, "Beijing CHJ Automotive Co., Ltd.", "BEIJING-CHJ-AUTOMOTIVE" }, { 0x2C16BD, 0xD00000, 0xDFFFFF, "Hangzhou Yanzhi Technology Co.,Ltd.", "HANGZHOU-YANZHI" }, { 0x2C16BD, 0xE00000, 0xEFFFFF, "Molex Incorporated", "MOLEX-INCORPORATED" }, { 0x2C265F, 0x000000, 0x0FFFFF, "XIAMEN VORLINK IOT TECHNOLOGY CO.,LTD.", "XIAMEN-VORLINK-IOT" }, { 0x2C265F, 0x100000, 0x1FFFFF, "Griessbach", "GRIESSBACH" }, { 0x2C265F, 0x200000, 0x2FFFFF, "Jiangsu JARI Technology Group Co., LTD", "JIANGSU-JARI-GROUP" }, { 0x2C265F, 0x300000, 0x3FFFFF, "shenzhen Clever Electronic Co., Ltd.", "SHENZHEN-CLEVER" }, { 0x2C265F, 0x400000, 0x4FFFFF, "GTA Electronics Co., Ltd.", "GTA-ELECTRONICS" }, { 0x2C265F, 0x500000, 0x5FFFFF, "Motec GmbH", "MOTEC" }, { 0x2C265F, 0x600000, 0x6FFFFF, "Appostar Technology Co. Ltd", "APPOSTAR" }, { 0x2C265F, 0x700000, 0x7FFFFF, "Coremate Technical Co., Ltd", "COREMATE-TECHNICAL" }, { 0x2C265F, 0x800000, 0x8FFFFF, "Itus Networks, LLC", "ITUS-NETWORKS" }, { 0x2C265F, 0x900000, 0x9FFFFF, "Brüel & Kjaer Vibro GmbH", "BRUEEL-KJAER-VIBRO" }, { 0x2C265F, 0xA00000, 0xAFFFFF, "Polara Engineering", "POLARA-ENGINEERING" }, { 0x2C265F, 0xB00000, 0xBFFFFF, "Rexgen Inc.", "REXGEN" }, { 0x2C265F, 0xC00000, 0xCFFFFF, "AATON DIGITAL", "AATON-DIGITAL" }, { 0x2C265F, 0xD00000, 0xDFFFFF, "E Core Corporation", "E-CORE" }, { 0x2C265F, 0xE00000, 0xEFFFFF, "Hysentel Technology Co., Ltd", "HYSENTEL" }, { 0x2C265F, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x2C279E, 0x000000, 0x0FFFFF, "Changzhou WEBO Weighing Device & System CO.,LTD", "CHANGZHOU-WEBO-WEIGHING-DEVICE-SYSTEM" }, { 0x2C279E, 0x100000, 0x1FFFFF, "Electronique Bluewave Inc.", "ELECTRONIQUE-BLUEWAVE" }, { 0x2C279E, 0x200000, 0x2FFFFF, "Kunyi electronic technology (Shanghai) Co., Ltd.", "KUNYI-SHANGHAI" }, { 0x2C279E, 0x300000, 0x3FFFFF, "Private", "PRIVATE" }, { 0x2C279E, 0x400000, 0x4FFFFF, "Shijiazhuang King Transportation Equipment Co.,Ltd", "SHIJIAZHUANG-KING-TRANSPORTATION-EQUIPMENT" }, { 0x2C279E, 0x500000, 0x5FFFFF, "AudioNord Distribution A/S", "AUDIONORD-DISTRIBUTION-A/S" }, { 0x2C279E, 0x600000, 0x6FFFFF, "Rutledge Omni Services Pte Ltd", "RUTLEDGE-OMNI-SERVICES-PTE" }, { 0x2C279E, 0x700000, 0x7FFFFF, "FOCAL-JMLab", "FOCAL-JMLAB" }, { 0x2C279E, 0x800000, 0x8FFFFF, "Institut Dr. Foerster GmbH & Co. KG", "INSTITUT-DR-FOERSTER" }, { 0x2C279E, 0x900000, 0x9FFFFF, "octoScope, Inc.", "OCTOSCOPE" }, { 0x2C279E, 0xA00000, 0xAFFFFF, "Exegy Inc", "EXEGY" }, { 0x2C279E, 0xB00000, 0xBFFFFF, "Forties Inc.", "FORTIES" }, { 0x2C279E, 0xC00000, 0xCFFFFF, "WAYCOM Technology Co.,Ltd", "WAYCOM" }, { 0x2C279E, 0xD00000, 0xDFFFFF, "Jiangsu JianHu Science & Technology Co., Ltd.", "JIANGSU-JIANHU-SCIENCE" }, { 0x2C279E, 0xE00000, 0xEFFFFF, "Amaryllo International Inc.", "AMARYLLO" }, { 0x2C4835, 0x000000, 0x0FFFFF, "Progress Rail Services, Inspection and Information Systems", "PROGRESS-RAIL-SERVICES-INSPECTION-AND-INFORMATION" }, { 0x2C4835, 0x100000, 0x1FFFFF, "Advanced Electronics Company Ltd", "ADVANCED-ELECTRONICS-COMPANY" }, { 0x2C4835, 0x200000, 0x2FFFFF, "Rheonik Messtechnik GmbH", "RHEONIK-MESSTECHNIK" }, { 0x2C4835, 0x300000, 0x3FFFFF, "Newtrax Technologies Inc", "NEWTRAX-TECHNOLOGIES" }, { 0x2C4835, 0x400000, 0x4FFFFF, "GEARTECH LTD", "GEARTECH" }, { 0x2C4835, 0x500000, 0x5FFFFF, "Scout Security, Inc.", "SCOUT-SECURITY" }, { 0x2C4835, 0x600000, 0x6FFFFF, "Exertus Oy", "EXERTUS-OY" }, { 0x2C4835, 0x700000, 0x7FFFFF, "FAST", "FAST" }, { 0x2C4835, 0x800000, 0x8FFFFF, "DPS Electronics", "DPS-ELECTRONICS" }, { 0x2C4835, 0x900000, 0x9FFFFF, "SureFlap Ltd", "SUREFLAP" }, { 0x2C4835, 0xA00000, 0xAFFFFF, "Collatz+Trojan GmbH", "COLLATZ+TROJAN" }, { 0x2C4835, 0xB00000, 0xBFFFFF, "Shanghai Visteon Automotive Electronics System CO. Ltd.", "SHANGHAI-VISTEON-AUTOMOTIVE-ELECTRONICS-SYSTEM" }, { 0x2C4835, 0xC00000, 0xCFFFFF, "Santec Corporation", "SANTEC" }, { 0x2C4835, 0xD00000, 0xDFFFFF, "Phasor Solutions Ltd", "PHASOR-SOLUTIONS" }, { 0x2C4835, 0xE00000, 0xEFFFFF, "IROOTECH TECHNOLOGY CO.,LTD", "IROOTECH" }, { 0x2C691D, 0x000000, 0x0FFFFF, "Hunan Xiangjiang Kunpeng Information Technology Co., Ltd.", "HUNAN-XIANGJIANG-KUNPENG-INFORMATION" }, { 0x2C691D, 0x100000, 0x1FFFFF, "KATEK SE", "KATEK-SE" }, { 0x2C691D, 0x200000, 0x2FFFFF, "Abode Systems Inc", "ABODE" }, { 0x2C691D, 0x300000, 0x3FFFFF, "Sunsa, Inc", "SUNSA" }, { 0x2C691D, 0x400000, 0x4FFFFF, "SPEEDTECH CORP.", "SPEEDTECH" }, { 0x2C691D, 0x500000, 0x5FFFFF, "LG Electronics Inc.", "LG-ELECTRONICS" }, { 0x2C691D, 0x600000, 0x6FFFFF, "Carnegie Robotics", "CARNEGIE-ROBOTICS" }, { 0x2C691D, 0x700000, 0x7FFFFF, "Shenzhen Gigalight Technology Co., Ltd", "SHENZHEN-GIGALIGHT" }, { 0x2C691D, 0x800000, 0x8FFFFF, "IBM", "IBM" }, { 0x2C691D, 0x900000, 0x9FFFFF, "SHENZHEN EX-LINK TECHNOLOGY CO.,LTD", "SHENZHEN-EX-LINK" }, { 0x2C691D, 0xA00000, 0xAFFFFF, "Panasonic Appliances Marketing Asia Pacific", "PANASONIC-APPLIANCES-MARKETING-ASIA-PACIFIC" }, { 0x2C691D, 0xB00000, 0xBFFFFF, "Shenzhen Daren HI-Tech Electronics Co., Ltd.", "SHENZHEN-DAREN-HI-TECH-ELECTRONICS" }, { 0x2C691D, 0xC00000, 0xCFFFFF, "Aparian, Inc.", "APARIAN" }, { 0x2C691D, 0xD00000, 0xDFFFFF, "Ascentac Inc.", "ASCENTAC" }, { 0x2C691D, 0xE00000, 0xEFFFFF, "Chengdu Qianhong Communication Co., Ltd.", "CHENGDU-QIANHONG-COMMUNICATION" }, { 0x2C6A6F, 0x000000, 0x0FFFFF, "Shanghai Shuncom Electronic Technology Co.,Ltd", "SHANGHAI-SHUNCOM" }, { 0x2C6A6F, 0x100000, 0x1FFFFF, "ELKO EP, s.r.o.", "ELKO-EP-S-R-O" }, { 0x2C6A6F, 0x200000, 0x2FFFFF, "NanChang LangJie Technology Co.,Ltd", "NANCHANG-LANGJIE" }, { 0x2C6A6F, 0x300000, 0x3FFFFF, "Cloudproject Generation Srl", "CLOUDPROJECT-GENERATION-SRL" }, { 0x2C6A6F, 0x400000, 0x4FFFFF, "TINYCO", "TINYCO" }, { 0x2C6A6F, 0x500000, 0x5FFFFF, "SHEN ZHEN SIS SCIENCE & TECHNOLOGY LTD.", "SHEN-ZHEN-SIS-SCIENCE" }, { 0x2C6A6F, 0x600000, 0x6FFFFF, "Beep, Inc.", "BEEP" }, { 0x2C6A6F, 0x700000, 0x7FFFFF, "SM DSP CO.,LTD.", "SM-DSP" }, { 0x2C6A6F, 0x800000, 0x8FFFFF, "Milbank Manufacturing Co.", "MILBANK-MANUFACTURING" }, { 0x2C6A6F, 0x900000, 0x9FFFFF, "Logic IO Aps", "LOGIC-IO-APS" }, { 0x2C6A6F, 0xA00000, 0xAFFFFF, "Wellntel, Inc.", "WELLNTEL" }, { 0x2C6A6F, 0xB00000, 0xBFFFFF, "Schneider Electric Korea", "SCHNEIDER-ELECTRIC-KOREA" }, { 0x2C6A6F, 0xC00000, 0xCFFFFF, "Sensity Systems", "SENSITY" }, { 0x2C6A6F, 0xD00000, 0xDFFFFF, "Holjeron", "HOLJERON" }, { 0x2C6A6F, 0xE00000, 0xEFFFFF, "EATON FHF Funke + Huster Fernsig GmbH", "EATON-FHF-FUNKE-+-HUSTER-FERNSIG" }, { 0x2C6A6F, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x2CD141, 0x000000, 0x0FFFFF, "iCIRROUND Inc", "ICIRROUND" }, { 0x2CD141, 0x100000, 0x1FFFFF, "Ezee Systems Limited", "EZEE" }, { 0x2CD141, 0x200000, 0x2FFFFF, "IntelliLUM", "INTELLILUM" }, { 0x2CD141, 0x300000, 0x3FFFFF, "AOptix Technologies, Inc", "AOPTIX-TECHNOLOGIES" }, { 0x2CD141, 0x400000, 0x4FFFFF, "Shanghai RW ELE&TEC CO.,LTD", "SHANGHAI-RW-ELE-TEC" }, { 0x2CD141, 0x500000, 0x5FFFFF, "ZENIC INC.", "ZENIC" }, { 0x2CD141, 0x600000, 0x6FFFFF, "Bowei Technology Company Limited", "BOWEI-COMPANY" }, { 0x2CD141, 0x700000, 0x7FFFFF, "XiaMen 35.com Technology Co,.Ltd.", "XIAMEN-35-COM" }, { 0x2CD141, 0x800000, 0x8FFFFF, "Minno LLC", "MINNO" }, { 0x2CD141, 0x900000, 0x9FFFFF, "Beijing Hexing Chuangxiang Technology Co., Ltd.", "BEIJING-HEXING-CHUANGXIANG" }, { 0x2CD141, 0xA00000, 0xAFFFFF, "Fiberroad Technology Co., Ltd.", "FIBERROAD" }, { 0x2CD141, 0xB00000, 0xBFFFFF, "Resus Industries", "RESUS-INDUSTRIES" }, { 0x2CD141, 0xC00000, 0xCFFFFF, "PIN SHANG LED Co., LTD.", "PIN-SHANG-LED" }, { 0x2CD141, 0xD00000, 0xDFFFFF, "Square Inc.", "SQUARE" }, { 0x2CD141, 0xE00000, 0xEFFFFF, "CITA SMART SOLUTIONS LTD", "CITA-SMART-SOLUTIONS" }, { 0x2CD141, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x3009F9, 0x000000, 0x0FFFFF, "Hurray Cloud Technology Co., Ltd.", "HURRAY-CLOUD" }, { 0x3009F9, 0x100000, 0x1FFFFF, "Shenzhen Sunvell Electronics Co., Ltd.", "SHENZHEN-SUNVELL-ELECTRONICS" }, { 0x3009F9, 0x200000, 0x2FFFFF, "Beijing Netswift Technology Co.,Ltd.", "BEIJING-NETSWIFT" }, { 0x3009F9, 0x300000, 0x3FFFFF, "OOO Microlink-Svyaz", "OOO-MICROLINK-SVYAZ" }, { 0x3009F9, 0x400000, 0x4FFFFF, "Punkt Tronics AG", "PUNKT-TRONICS" }, { 0x3009F9, 0x500000, 0x5FFFFF, "VELSITEC-CLIBASE", "VELSITEC-CLIBASE" }, { 0x3009F9, 0x600000, 0x6FFFFF, "Beijing Mydreamplus Information Technology Co., Ltd.", "BEIJING-MYDREAMPLUS-INFORMATION" }, { 0x3009F9, 0x700000, 0x7FFFFF, "Maytronics Ltd.", "MAYTRONICS" }, { 0x3009F9, 0x800000, 0x8FFFFF, "essence security", "ESSENCE-SECURITY" }, { 0x3009F9, 0x900000, 0x9FFFFF, "Bonraybio", "BONRAYBIO" }, { 0x3009F9, 0xA00000, 0xAFFFFF, "Shenzhen Tencent Computer System Co., Ltd.", "SHENZHEN-TENCENT-SYSTEM" }, { 0x3009F9, 0xB00000, 0xBFFFFF, "Sichuan Nebula Networks Co.,LTD.", "SICHUAN-NEBULA-NETWORKS" }, { 0x3009F9, 0xC00000, 0xCFFFFF, "Honeywell", "HONEYWELL" }, { 0x3009F9, 0xD00000, 0xDFFFFF, "Technology for Humankind", "FOR-HUMANKIND" }, { 0x3009F9, 0xE00000, 0xEFFFFF, "ZhongLi HengFeng (Shenzhen) Technology co.,Ltd.", "ZHONGLI-HENGFENG-SHENZHEN" }, { 0x300A60, 0x000000, 0x0FFFFF, "KAZUtechnica Co.,Ltd.", "KAZUTECHNICA" }, { 0x300A60, 0x100000, 0x1FFFFF, "Beijing Ruiteng Zhongtian TECH Ltd.,Co", "BEIJING-RUITENG-ZHONGTIAN-TECH" }, { 0x300A60, 0x200000, 0x2FFFFF, "Advanced Electronic Designs, Inc.", "ADVANCED-DESIGNS" }, { 0x300A60, 0x300000, 0x3FFFFF, "Intergard do Brasil Ind e Com de Eletr e Mec Ltda", "INTERGARD-DO-BRASIL-IND-E-COM-DE-ELETR-E-MEC-LTDA" }, { 0x300A60, 0x400000, 0x4FFFFF, "AVIC JONHON OPTRONIC TECHNOLOGY CO., LTD.", "AVIC-JONHON-OPTRONIC" }, { 0x300A60, 0x500000, 0x5FFFFF, "A9", "A9" }, { 0x300A60, 0x600000, 0x6FFFFF, "Realtime biometrics India pvt ltd", "REALTIME-BIOMETRICS-INDIA-PVT" }, { 0x300A60, 0x700000, 0x7FFFFF, "Newtons4th Ltd", "NEWTONS4TH" }, { 0x300A60, 0x800000, 0x8FFFFF, "Bronkhorst High-Tech BV", "BRONKHORST-HIGH-TECH" }, { 0x300A60, 0x900000, 0x9FFFFF, "WINTEK System Co., Ltd", "WINTEK-SYSTEM" }, { 0x300A60, 0xA00000, 0xAFFFFF, "Ampetronic Ltd", "AMPETRONIC" }, { 0x300A60, 0xB00000, 0xBFFFFF, "Giax GmbH", "GIAX" }, { 0x300A60, 0xC00000, 0xCFFFFF, "Thermo Process Instruments, LP", "THERMO-PROCESS-INSTRUMENTS-LP" }, { 0x300A60, 0xD00000, 0xDFFFFF, "Sixth Energy Technologies Private Limited", "SIXTH-ENERGY-TECHNOLOGIES-PRIVATE" }, { 0x300A60, 0xE00000, 0xEFFFFF, "Imageo s.r.o.", "IMAGEO-S-R-O" }, { 0x301F9A, 0x000000, 0x0FFFFF, "ILSAN ELECTRONICS", "ILSAN-ELECTRONICS" }, { 0x301F9A, 0x100000, 0x1FFFFF, "Dewesoft d.o.o.", "DEWESOFT-D-O-O" }, { 0x301F9A, 0x200000, 0x2FFFFF, "CHISON Medical Technologies Co., Ltd.", "CHISON-MEDICAL-TECHNOLOGIES" }, { 0x301F9A, 0x300000, 0x3FFFFF, "MICOMSOFT CO.,LTD.", "MICOMSOFT" }, { 0x301F9A, 0x400000, 0x4FFFFF, "NCM Supplies, Inc.", "NCM-SUPPLIES" }, { 0x301F9A, 0x500000, 0x5FFFFF, "Beijing Surestar Technology Co. Ltd,", "BEIJING-SURESTAR" }, { 0x301F9A, 0x600000, 0x6FFFFF, "YiSheng technology co.,LTD", "YISHENG" }, { 0x301F9A, 0x700000, 0x7FFFFF, "Triax A/S", "TRIAX-A/S" }, { 0x301F9A, 0x800000, 0x8FFFFF, "FINE TRIUMPH TECHNOLOGY CORP.,LTD.", "FINE-TRIUMPH" }, { 0x301F9A, 0x900000, 0x9FFFFF, "Deep Sentinel", "DEEP-SENTINEL" }, { 0x301F9A, 0xA00000, 0xAFFFFF, "HUNAN CHANGSHA HENGJIAN TECHNOLDGY DEVELPMENT CO.,LTD.", "HUNAN-CHANGSHA-HENGJIAN-TECHNOLDGY-DEVELPMENT" }, { 0x301F9A, 0xB00000, 0xBFFFFF, "Smart Component Technologies LTD", "SMART-COMPONENT-TECHNOLOGIES" }, { 0x301F9A, 0xC00000, 0xCFFFFF, "Origami Group Limited", "ORIGAMI-GROUP" }, { 0x301F9A, 0xD00000, 0xDFFFFF, "OLIMEX Ltd", "OLIMEX" }, { 0x301F9A, 0xE00000, 0xEFFFFF, "Shenzhen Fengliyuan Energy Conservating Technology Co. Ltd", "SHENZHEN-FENGLIYUAN-ENERGY-CONSERVATING" }, { 0x303D51, 0x000000, 0x0FFFFF, "Fink Telecom Services GmbH", "FINK-TELECOM-SERVICES" }, { 0x303D51, 0x100000, 0x1FFFFF, "SHENZHEN WLINK TECHNOLOGY CO., LTD.", "SHENZHEN-WLINK" }, { 0x303D51, 0x200000, 0x2FFFFF, "Harman Connected Services Corporation India Pvt. Ltd.", "HARMAN-CONNECTED-SERVICES-INDIA-PVT" }, { 0x303D51, 0x300000, 0x3FFFFF, "S & A Systems", "S-A" }, { 0x303D51, 0x400000, 0x4FFFFF, "Dspread Technology (Beijing) Inc.", "DSPREAD-BEIJING" }, { 0x303D51, 0x500000, 0x5FFFFF, "Media Hub Digital Smart Home Pty Ltd.", "MEDIA-HUB-DIGITAL-SMART-HOME-PTY" }, { 0x303D51, 0x600000, 0x6FFFFF, "Amber-Link Network Technology Co.,Ltd.", "AMBER-LINK-NETWORK" }, { 0x303D51, 0x700000, 0x7FFFFF, "Destiny Automate Limited", "DESTINY-AUTOMATE" }, { 0x303D51, 0x800000, 0x8FFFFF, "The Heil Co dba AWTI 3rd Eye Cam", "THE-HEIL-DBA-AWTI-3RD-EYE-CAM" }, { 0x303D51, 0x900000, 0x9FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x303D51, 0xA00000, 0xAFFFFF, "TeraNXT Global India Pvt Ltd.", "TERANXT-GLOBAL-INDIA-PVT" }, { 0x303D51, 0xB00000, 0xBFFFFF, "Labman Automation", "LABMAN-AUTOMATION" }, { 0x303D51, 0xC00000, 0xCFFFFF, "TalkGo, Inc.", "TALKGO" }, { 0x303D51, 0xD00000, 0xDFFFFF, "XOR UK Corporation Limited", "XOR-UK" }, { 0x303D51, 0xE00000, 0xEFFFFF, "Percent.com", "PERCENT-COM" }, { 0x3043D7, 0x000000, 0x0FFFFF, "SYMES SA", "SYMES" }, { 0x3043D7, 0x100000, 0x1FFFFF, "Shenzhen juduoping Technology Co.,Ltd", "SHENZHEN-JUDUOPING" }, { 0x3043D7, 0x200000, 0x2FFFFF, "Apollo Infoways Private Limited", "APOLLO-INFOWAYS-PRIVATE" }, { 0x3043D7, 0x300000, 0x3FFFFF, "Luxshare Electronic Technology (Kunshan) LTD", "LUXSHARE-KUNSHAN" }, { 0x3043D7, 0x400000, 0x4FFFFF, "FIBERME COMMUNICATIONS LLC", "FIBERME-COMMUNICATION" }, { 0x3043D7, 0x500000, 0x5FFFFF, "Shenzhen Mees Hi-Tech Co., Ltd", "SHENZHEN-MEES-HI-TECH" }, { 0x3043D7, 0x600000, 0x6FFFFF, "Sprocomm Technologies Co., Ltd.Guangming Branch", "SPROCOMM-TECHNOLOGIES-GUANGMING-BRANCH" }, { 0x3043D7, 0x700000, 0x7FFFFF, "DIGICITI Technology Co.,Ltd", "DIGICITI" }, { 0x3043D7, 0x800000, 0x8FFFFF, "Kesu (Shanghai) Electronic Technology Co., Ltd", "KESU-SHANGHAI" }, { 0x3043D7, 0x900000, 0x9FFFFF, "PK Solutions LLC", "PK-SOLUTIONS" }, { 0x3043D7, 0xA00000, 0xAFFFFF, "Bodhi", "BODHI" }, { 0x3043D7, 0xB00000, 0xBFFFFF, "Motec GmbH", "MOTEC" }, { 0x3043D7, 0xC00000, 0xCFFFFF, "Xiaoniu network technology (Shanghai) Co., Ltd.", "XIAONIU-NETWORK-SHANGHAI" }, { 0x3043D7, 0xD00000, 0xDFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x3043D7, 0xE00000, 0xEFFFFF, "Guangdong Hongqin Telecom Technology Co. Ltd.", "GUANGDONG-HONGQIN-TELECOM" }, { 0x304950, 0x000000, 0x0FFFFF, "Guangzhou Lian-med Technology Co.,Ltd.", "GUANGZHOU-LIAN-MED" }, { 0x304950, 0x100000, 0x1FFFFF, "ATLI WORLD LIMITED", "ATLI-WORLD" }, { 0x304950, 0x200000, 0x2FFFFF, "Sercomm Corporation.", "SERCOMM" }, { 0x304950, 0x300000, 0x3FFFFF, "Morgan Schaffer Inc.", "MORGAN-SCHAFFER" }, { 0x304950, 0x400000, 0x4FFFFF, "ADVANCED MICROWAVE ENGINEERING SRL", "ADVANCED-MICROWAVE-ENGINEERING-SRL" }, { 0x304950, 0x500000, 0x5FFFFF, "IK Elektronik GmbH", "IK-ELEKTRONIK" }, { 0x304950, 0x600000, 0x6FFFFF, "Curb, Inc.", "CURB" }, { 0x304950, 0x700000, 0x7FFFFF, "Shenzhen iTG robot Co.,Ltd.", "SHENZHEN-ITG-ROBOT" }, { 0x304950, 0x800000, 0x8FFFFF, "SHENZHEN LDROBOT CO., LTD.", "SHENZHEN-LDROBOT" }, { 0x304950, 0x900000, 0x9FFFFF, "Shanghai gatang technology CO.,LTD", "SHANGHAI-GATANG" }, { 0x304950, 0xA00000, 0xAFFFFF, "Ledworks SRL", "LEDWORKS-SRL" }, { 0x304950, 0xB00000, 0xBFFFFF, "HANGZHOU EV-TECH CO.,LTD", "HANGZHOU-EV-TECH" }, { 0x304950, 0xC00000, 0xCFFFFF, "Anacove LLC", "ANACOVE" }, { 0x304950, 0xD00000, 0xDFFFFF, "Merlyn Mind, Inc.", "MERLYN-MIND" }, { 0x304950, 0xE00000, 0xEFFFFF, "IoTmaxx GmbH", "IOTMAXX" }, { 0x34008A, 0x000000, 0x0FFFFF, "Angee Technologies Ltd.", "ANGEE-TECHNOLOGIES" }, { 0x34008A, 0x100000, 0x1FFFFF, "ZQAM Communications", "ZQAM-COMMUNICATION" }, { 0x34008A, 0x200000, 0x2FFFFF, "RPE Monitor", "RPE-MONITOR" }, { 0x34008A, 0x300000, 0x3FFFFF, "Globex 99 LTD", "GLOBEX-99" }, { 0x34008A, 0x400000, 0x4FFFFF, "Fotonic i Norden AB", "FOTONIC-I-NORDEN-AB" }, { 0x34008A, 0x500000, 0x5FFFFF, "Federal Aviation Administration", "FEDERAL-AVIATION-ADMINISTRATION" }, { 0x34008A, 0x600000, 0x6FFFFF, "Sithon Technologies SAS", "SITHON-TECHNOLOGIES-SAS" }, { 0x34008A, 0x700000, 0x7FFFFF, "uberGARD Pte. Ltd.", "UBERGARD-PTE" }, { 0x34008A, 0x800000, 0x8FFFFF, "Shenzhen Andakai Technologies Co., Ltd.", "SHENZHEN-ANDAKAI-TECHNOLOGIES" }, { 0x34008A, 0x900000, 0x9FFFFF, "Keruyun Technoligies(Beijing) Corporation Limited", "KERUYUN-TECHNOLIGIES-BEIJING" }, { 0x34008A, 0xA00000, 0xAFFFFF, "Hibertek International Limited", "HIBERTEK" }, { 0x34008A, 0xB00000, 0xBFFFFF, "Project Engineering srl", "PROJECT-ENGINEERING-SRL" }, { 0x34008A, 0xC00000, 0xCFFFFF, "Shenzhen Eternal Idea Tech Co.,Ltd", "SHENZHEN-ETERNAL-IDEA-TECH" }, { 0x34008A, 0xD00000, 0xDFFFFF, "ChengDu HuiZhong Cloud Information Technology Co., Ltd.", "CHENGDU-HUIZHONG-CLOUD-INFORMATION" }, { 0x34008A, 0xE00000, 0xEFFFFF, "SHENZHEN WXL ELECTRONICS CO., LTD.", "SHENZHEN-WXL-ELECTRONICS" }, { 0x34049E, 0x000000, 0x0FFFFF, "GoChip Inc.", "GOCHIP" }, { 0x34049E, 0x100000, 0x1FFFFF, "Connected IO", "CONNECTED-IO" }, { 0x34049E, 0x200000, 0x2FFFFF, "EFD Induction", "EFD-INDUCTION" }, { 0x34049E, 0x300000, 0x3FFFFF, "Nanjing Mythware Information Technology Co., Ltd.", "NANJING-MYTHWARE-INFORMATION" }, { 0x34049E, 0x400000, 0x4FFFFF, "Harbin Yantuo Science and Technology Development Co., Ltd", "HARBIN-YANTUO-SCIENCE-AND-DEVELOPMENT" }, { 0x34049E, 0x500000, 0x5FFFFF, "Seeiner Technology Co.,LTD", "SEEINER" }, { 0x34049E, 0x600000, 0x6FFFFF, "Life Interface Co., Ltd.", "LIFE-INTERFACE" }, { 0x34049E, 0x700000, 0x7FFFFF, "Pebble Technology", "PEBBLE" }, { 0x34049E, 0x800000, 0x8FFFFF, "Eclipse Information Technologies", "ECLIPSE-INFORMATION-TECHNOLOGIES" }, { 0x34049E, 0x900000, 0x9FFFFF, "Church & Dwight Co., Inc.", "CHURCH-DWIGHT" }, { 0x34049E, 0xA00000, 0xAFFFFF, "i3 International Inc.", "I3" }, { 0x34049E, 0xB00000, 0xBFFFFF, "Eginity, Inc.", "EGINITY" }, { 0x34049E, 0xC00000, 0xCFFFFF, "ClearCaptions LLC", "CLEARCAPTIONS" }, { 0x34049E, 0xD00000, 0xDFFFFF, "uikismart", "UIKISMART" }, { 0x34049E, 0xE00000, 0xEFFFFF, "ND SatCom GmbH", "ND-SATCOM" }, { 0x34298F, 0x000000, 0x0FFFFF, "BlackEdge Capital", "BLACKEDGE-CAPITAL" }, { 0x34298F, 0x100000, 0x1FFFFF, "Chengdu Meross Technology Co., Ltd.", "CHENGDU-MEROSS" }, { 0x34298F, 0x200000, 0x2FFFFF, "Shenzhen Advance River System Technology Co., Ltd", "SHENZHEN-ADVANCE-RIVER-SYSTEM" }, { 0x34298F, 0x300000, 0x3FFFFF, "Beijing Vorx Telecommunications Co., Ltd.", "BEIJING-VORX-TELECOMMUNICATIONS" }, { 0x34298F, 0x400000, 0x4FFFFF, "ISRA Vision AG", "ISRA-VISION" }, { 0x34298F, 0x500000, 0x5FFFFF, "Highlite International B.V.", "HIGHLITE-B-V" }, { 0x34298F, 0x600000, 0x6FFFFF, "Bellman & Symfon", "BELLMAN-SYMFON" }, { 0x34298F, 0x700000, 0x7FFFFF, "Dongguan Kingtron Electronics Tech Co., Ltd", "DONGGUAN-KINGTRON-ELECTRONICS-TECH" }, { 0x34298F, 0x800000, 0x8FFFFF, "Nanjing Sandemarine Electric Co.,Ltd", "NANJING-SANDEMARINE-ELECTRIC" }, { 0x34298F, 0x900000, 0x9FFFFF, "Wiesheu GmbH", "WIESHEU" }, { 0x34298F, 0xA00000, 0xAFFFFF, "Virtual Trunk Pte Ltd", "VIRTUAL-TRUNK-PTE" }, { 0x34298F, 0xB00000, 0xBFFFFF, "Schnick-Schnack-Systems GmbH", "SCHNICK-SCHNACK" }, { 0x34298F, 0xC00000, 0xCFFFFF, "Albert Handtmann Maschinenfabrik GmbH&Co.KG", "ALBERT-HANDTMANN-MASCHINENFABRIK" }, { 0x34298F, 0xD00000, 0xDFFFFF, "Keystone Electronic Solutions", "KEYSTONE-SOLUTIONS" }, { 0x34298F, 0xE00000, 0xEFFFFF, "ARC Technology Co., Ltd", "ARC" }, { 0x34D0B8, 0x000000, 0x0FFFFF, "Captec Ltd", "CAPTEC" }, { 0x34D0B8, 0x100000, 0x1FFFFF, "Shenzhen Bao Lai Wei Intelligent Technology Co., L", "SHENZHEN-BAO-LAI-WEI-INTELLIGENT-L" }, { 0x34D0B8, 0x200000, 0x2FFFFF, "Blustream Pty Ltd", "BLUSTREAM-PTY" }, { 0x34D0B8, 0x300000, 0x3FFFFF, "Tascent, Inc.", "TASCENT" }, { 0x34D0B8, 0x400000, 0x4FFFFF, "EQPlay Intelligent Technology(Kunshan) Co,Ltd.", "EQPLAY-INTELLIGENT-KUNSHAN" }, { 0x34D0B8, 0x500000, 0x5FFFFF, "eesy-innovation GmbH", "EESY-INNOVATION" }, { 0x34D0B8, 0x600000, 0x6FFFFF, "NumberFour AG", "NUMBERFOUR" }, { 0x34D0B8, 0x700000, 0x7FFFFF, "Shenzhen Rikomagic Tech Corp.,Ltd", "SHENZHEN-RIKOMAGIC-TECH" }, { 0x34D0B8, 0x800000, 0x8FFFFF, "Vtrek Group International Ltd.", "VTREK-GROUP" }, { 0x34D0B8, 0x900000, 0x9FFFFF, "Skytech Creations Limited", "SKYTECH-CREATIONS" }, { 0x34D0B8, 0xA00000, 0xAFFFFF, "Meatest sro", "MEATEST-SRO" }, { 0x34D0B8, 0xB00000, 0xBFFFFF, "OROSOUND SAS", "OROSOUND-SAS" }, { 0x34D0B8, 0xC00000, 0xCFFFFF, "Glory Mark Electronic Ltd. Taiwan Branch (B.V.I.)", "GLORY-MARK-TAIWAN-BRANCH-B-V-I" }, { 0x34D0B8, 0xD00000, 0xDFFFFF, "NTX Embedded", "NTX-EMBEDDED" }, { 0x34D0B8, 0xE00000, 0xEFFFFF, "Kongqiguanjia (Beijing)Technology co.,ltd", "KONGQIGUANJIA-BEIJING" }, { 0x34E1D1, 0x000000, 0x0FFFFF, "Tianjin Sublue Ocean Science & Technology Co., Ltd", "TIANJIN-SUBLUE-OCEAN-SCIENCE" }, { 0x34E1D1, 0x100000, 0x1FFFFF, "SAMA NextGen PTE Limited", "SAMA-NEXTGEN-PTE" }, { 0x34E1D1, 0x200000, 0x2FFFFF, "Teton Camera LLC", "TETON-CAMERA" }, { 0x34E1D1, 0x300000, 0x3FFFFF, "Rinco Ultrasonics AG", "RINCO-ULTRASONICS" }, { 0x34E1D1, 0x400000, 0x4FFFFF, "ASA Innovation & Technology Ltd.", "ASA-INNOVATION" }, { 0x34E1D1, 0x500000, 0x5FFFFF, "Doki Technologies Limited", "DOKI-TECHNOLOGIES" }, { 0x34E1D1, 0x600000, 0x6FFFFF, "Ningbo Hua Gao Mdt Info Tech Ltd", "NINGBO-HUA-GAO-MDT-INFO-TECH" }, { 0x34E1D1, 0x700000, 0x7FFFFF, "Genius Pros", "GENIUS-PROS" }, { 0x34E1D1, 0x800000, 0x8FFFFF, "Hubitat Inc.", "HUBITAT" }, { 0x34E1D1, 0x900000, 0x9FFFFF, "Biamp", "BIAMP" }, { 0x34E1D1, 0xA00000, 0xAFFFFF, "OrCam Technologies", "ORCAM-TECHNOLOGIES" }, { 0x34E1D1, 0xB00000, 0xBFFFFF, "APG Cash Drawer, LLC", "APG-CASH-DRAWER" }, { 0x34E1D1, 0xC00000, 0xCFFFFF, "CREW by True Rowing, Inc.", "CREW-BY-TRUE-ROWING" }, { 0x34E1D1, 0xD00000, 0xDFFFFF, "HI-TECH.ORG", "HI-TECH-ORG" }, { 0x34E1D1, 0xE00000, 0xEFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x381F26, 0x000000, 0x0FFFFF, "JAESUNG INFORMATION & COMMUNICATION CO.LTD", "JAESUNG-INFORMATION-COMMUNICATION" }, { 0x381F26, 0x100000, 0x1FFFFF, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0x381F26, 0x200000, 0x2FFFFF, "Synamedia", "SYNAMEDIA" }, { 0x381F26, 0x300000, 0x3FFFFF, "Bosch Automotive Electronics India Pvt. Ltd.", "BOSCH-AUTOMOTIVE-ELECTRONICS-INDIA-PVT" }, { 0x381F26, 0x400000, 0x4FFFFF, "Airmaster A/S", "AIRMASTER-A/S" }, { 0x381F26, 0x500000, 0x5FFFFF, "Zhejiang Huazhou Intelligent Equipment Co,. Ltd", "ZHEJIANG-HUAZHOU-INTELLIGENT-EQUIPMENT" }, { 0x381F26, 0x600000, 0x6FFFFF, "NOITAC sp. z o.o. sp.k.", "NOITAC-SP-Z-O-O-SP-K" }, { 0x381F26, 0x700000, 0x7FFFFF, "RCE systems s.r.o.", "RCE-S-R-O" }, { 0x381F26, 0x800000, 0x8FFFFF, "Avon Protection", "AVON-PROTECTION" }, { 0x381F26, 0x900000, 0x9FFFFF, "SMS Evoko Group AB", "SMS-EVOKO-GROUP-AB" }, { 0x381F26, 0xA00000, 0xAFFFFF, "Sercomm Corporation.", "SERCOMM" }, { 0x381F26, 0xB00000, 0xBFFFFF, "Deutronic Elektronik GmbH", "DEUTRONIC-ELEKTRONIK" }, { 0x381F26, 0xC00000, 0xCFFFFF, "Jade Bird Fire Co., Ltd.", "JADE-BIRD-FIRE" }, { 0x381F26, 0xD00000, 0xDFFFFF, "HWACHANG CORPORATION", "HWACHANG" }, { 0x381F26, 0xE00000, 0xEFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x383A21, 0x000000, 0x0FFFFF, "R3C Information(Shenzhen) Co.,Ltd.", "R3C-INFORMATION-SHENZHEN" }, { 0x383A21, 0x100000, 0x1FFFFF, "HOBART GmbH", "HOBART" }, { 0x383A21, 0x200000, 0x2FFFFF, "Shenzhen HS Fiber Communication Equipment CO., LTD", "SHENZHEN-HS-FIBER-COMMUNICATION-EQUIPMENT" }, { 0x383A21, 0x300000, 0x3FFFFF, "Shanghai Greatwall Safety System Co.,Ltd", "SHANGHAI-GREATWALL-SAFETY-SYSTEM" }, { 0x383A21, 0x400000, 0x4FFFFF, "Dongguan Innovation Technology Co Ltd", "DONGGUAN-INNOVATION" }, { 0x383A21, 0x500000, 0x5FFFFF, "OOO NPP Uraltechnologiya", "OOO-NPP-URALTECHNOLOGIYA" }, { 0x383A21, 0x600000, 0x6FFFFF, "Shenzhen Smart-core Technology co., Ltd.", "SHENZHEN-SMART-CORE" }, { 0x383A21, 0x700000, 0x7FFFFF, "Chengdu Krosslan Technology Inc.", "CHENGDU-KROSSLAN" }, { 0x383A21, 0x800000, 0x8FFFFF, "Alicat Scientific", "ALICAT-SCIENTIFIC" }, { 0x383A21, 0x900000, 0x9FFFFF, "Skylark Wireless LLC", "SKYLARK-WIRELESS" }, { 0x383A21, 0xA00000, 0xAFFFFF, "Foresight Sports", "FORESIGHT-SPORTS" }, { 0x383A21, 0xB00000, 0xBFFFFF, "Pactron", "PACTRON" }, { 0x383A21, 0xC00000, 0xCFFFFF, "Mission Embedded GmbH", "MISSION-EMBEDDED" }, { 0x383A21, 0xD00000, 0xDFFFFF, "Colooc AB", "COLOOC-AB" }, { 0x383A21, 0xE00000, 0xEFFFFF, "SDNware technology co.,LTD", "SDNWARE" }, { 0x3873EA, 0x000000, 0x0FFFFF, "L-3 Communications Mobile-Vision, Inc.", "L-3-COMMUNICATION-MOBILE-VISION" }, { 0x3873EA, 0x100000, 0x1FFFFF, "KingWay Information Co.,Ltd.", "KINGWAY-INFORMATION" }, { 0x3873EA, 0x200000, 0x2FFFFF, "Eyesight(Shanghai)Communication Technology Co.,Ltd.", "EYESIGHT-SHANGHAI-COMMUNICATION" }, { 0x3873EA, 0x300000, 0x3FFFFF, "Proch plastic Co., Ltd.", "PROCH-PLASTIC" }, { 0x3873EA, 0x400000, 0x4FFFFF, "Light Blue Optics Ltd.", "LIGHT-BLUE-OPTICS" }, { 0x3873EA, 0x500000, 0x5FFFFF, "ISTCONTROL", "ISTCONTROL" }, { 0x3873EA, 0x600000, 0x6FFFFF, "Live Sentinel", "LIVE-SENTINEL" }, { 0x3873EA, 0x700000, 0x7FFFFF, "PingGPS Inc", "PINGGPS" }, { 0x3873EA, 0x800000, 0x8FFFFF, "Rock Electronic Co., Ltd.", "ROCK" }, { 0x3873EA, 0x900000, 0x9FFFFF, "Lightform, Inc.", "LIGHTFORM" }, { 0x3873EA, 0xA00000, 0xAFFFFF, "SHENZHEN CSE TECHNOLOGY CO., LTD", "SHENZHEN-CSE" }, { 0x3873EA, 0xB00000, 0xBFFFFF, "Shanghai ZoomSmart Technology Co., Ltd.", "SHANGHAI-ZOOMSMART" }, { 0x3873EA, 0xC00000, 0xCFFFFF, "LG Electronics", "LG-ELECTRONICS" }, { 0x3873EA, 0xD00000, 0xDFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x3873EA, 0xE00000, 0xEFFFFF, "Shenzhen Jixian Technology Co., Ltd.", "SHENZHEN-JIXIAN" }, { 0x38A8CD, 0x000000, 0x0FFFFF, "ACiiST Smart Networks Ltd.", "ACIIST-SMART-NETWORKS" }, { 0x38A8CD, 0x100000, 0x1FFFFF, "Fujica System Co., ltd", "FUJICA-SYSTEM" }, { 0x38A8CD, 0x200000, 0x2FFFFF, "Beijing Porient Technology Co., Ltd", "BEIJING-PORIENT" }, { 0x38A8CD, 0x300000, 0x3FFFFF, "Dongguan Fyrnetics Co., Ltd", "DONGGUAN-FYRNETICS" }, { 0x38A8CD, 0x400000, 0x4FFFFF, "WHITEvoid GmbH", "WHITEVOID" }, { 0x38A8CD, 0x500000, 0x5FFFFF, "Revo Infratech USA Ltd", "REVO-INFRATECH-USA" }, { 0x38A8CD, 0x600000, 0x6FFFFF, "cal4care Pte Ltd", "CAL4CARE-PTE" }, { 0x38A8CD, 0x700000, 0x7FFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0x38A8CD, 0x800000, 0x8FFFFF, "Max Way Electronics Co., Ltd.", "MAX-WAY-ELECTRONICS" }, { 0x38A8CD, 0x900000, 0x9FFFFF, "PT Supertone", "PT-SUPERTONE" }, { 0x38A8CD, 0xA00000, 0xAFFFFF, "NIC Technologii", "NIC-TECHNOLOGII" }, { 0x38A8CD, 0xB00000, 0xBFFFFF, "Qingdao Hisense Hitachi Air-conditioning Systems Co.,Ltd.", "QINGDAO-HISENSE-HITACHI-AIR-CONDITIONING" }, { 0x38A8CD, 0xC00000, 0xCFFFFF, "Beijing Aumiwalker technology CO.,LTD", "BEIJING-AUMIWALKER" }, { 0x38A8CD, 0xD00000, 0xDFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x38A8CD, 0xE00000, 0xEFFFFF, "OUTFORM", "OUTFORM" }, { 0x38B19E, 0x000000, 0x0FFFFF, "Triple Jump Medical", "TRIPLE-JUMP-MEDICAL" }, { 0x38B19E, 0x100000, 0x1FFFFF, "Freedompro Srl", "FREEDOMPRO-SRL" }, { 0x38B19E, 0x200000, 0x2FFFFF, "HDANYWHERE", "HDANYWHERE" }, { 0x38B19E, 0x300000, 0x3FFFFF, "AVO DEVELOPMENT LTD", "AVO-DEVELOPMENT" }, { 0x38B19E, 0x400000, 0x4FFFFF, "Basalte BVBA", "BASALTE-BVBA" }, { 0x38B19E, 0x500000, 0x5FFFFF, "Star Electronics GmbH & CoKG", "STAR-ELECTRONICS-COKG" }, { 0x38B19E, 0x600000, 0x6FFFFF, "Thrust Networks", "THRUST-NETWORKS" }, { 0x38B19E, 0x700000, 0x7FFFFF, "Beijing Memblaze Technology Co Ltd", "BEIJING-MEMBLAZE" }, { 0x38B19E, 0x800000, 0x8FFFFF, "BoCo Inc.", "BOCO" }, { 0x38B19E, 0x900000, 0x9FFFFF, "Doepke Schaltgeräte GmbH", "DOEPKE-SCHALTGERAETE" }, { 0x38B19E, 0xA00000, 0xAFFFFF, "Aeroespacial Guosheng Technology Co., Ltd", "AEROESPACIAL-GUOSHENG" }, { 0x38B19E, 0xB00000, 0xBFFFFF, "System Q Ltd", "SYSTEM-Q" }, { 0x38B19E, 0xC00000, 0xCFFFFF, "Gesellschaft industrieller Technologien", "GESELLSCHAFT-INDUSTRIELLER-TECHNOLOGIEN" }, { 0x38B19E, 0xD00000, 0xDFFFFF, "Dallas Delta Corporation", "DALLAS-DELTA" }, { 0x38B19E, 0xE00000, 0xEFFFFF, "ShenZhen ShuaiXian Electronic Equipment Co.Ltd", "SHENZHEN-SHUAIXIAN-EQUIPMENT" }, { 0x38B8EB, 0x000000, 0x0FFFFF, "Bumjin C&L Co., Ltd.", "BUMJIN-C-L" }, { 0x38B8EB, 0x100000, 0x1FFFFF, "1.A Connect GmbH", "1-A-CONNECT" }, { 0x38B8EB, 0x200000, 0x2FFFFF, "barox Kommunikation GmbH", "BAROX-KOMMUNIKATION" }, { 0x38B8EB, 0x300000, 0x3FFFFF, "Aina Wireless Inc", "AINA-WIRELESS" }, { 0x38B8EB, 0x400000, 0x4FFFFF, "UMLOGICS", "UMLOGICS" }, { 0x38B8EB, 0x500000, 0x5FFFFF, "Dojo-Labs Ltd", "DOJO-LABS" }, { 0x38B8EB, 0x600000, 0x6FFFFF, "MATRIXSTREAM TECHNOLOGIES, INC.", "MATRIXSTREAM-TECHNOLOGIES" }, { 0x38B8EB, 0x700000, 0x7FFFFF, "Sirin Mobile Technologies", "SIRIN-MOBILE-TECHNOLOGIES" }, { 0x38B8EB, 0x800000, 0x8FFFFF, "CeeNex Inc", "CEENEX" }, { 0x38B8EB, 0x900000, 0x9FFFFF, "NHS Sistemas de Energia", "NHS-SISTEMAS-DE-ENERGIA" }, { 0x38B8EB, 0xA00000, 0xAFFFFF, "SECAD SA", "SECAD" }, { 0x38B8EB, 0xB00000, 0xBFFFFF, "PEZY Computing K.K.", "PEZY-COMPUTING-K-K" }, { 0x38B8EB, 0xC00000, 0xCFFFFF, "Ajax Systems Inc", "AJAX" }, { 0x38B8EB, 0xD00000, 0xDFFFFF, "Yellowbrick Data, Inc.", "YELLOWBRICK-DATA" }, { 0x38B8EB, 0xE00000, 0xEFFFFF, "Wyres SAS", "WYRES-SAS" }, { 0x38F7CD, 0x000000, 0x0FFFFF, "Polska Fabryka Wodomierzy i Ciep?omierzy FILA", "POLSKA-FABRYKA-WODOMIERZY-I-CIEP?OMIERZY-FILA" }, { 0x38F7CD, 0x100000, 0x1FFFFF, "NZIA Connect Inc", "NZIA-CONNECT" }, { 0x38F7CD, 0x200000, 0x2FFFFF, "RIPower Co.,Ltd", "RIPOWER" }, { 0x38F7CD, 0x300000, 0x3FFFFF, "VANGUARD", "VANGUARD" }, { 0x38F7CD, 0x400000, 0x4FFFFF, "NORDI TELEKOMMUNIKATSIOONI OÜ", "NORDI-TELEKOMMUNIKATSIOONI-OUE" }, { 0x38F7CD, 0x500000, 0x5FFFFF, "Shanghai qinzhuo Electronic Co., Ltd.", "SHANGHAI-QINZHUO" }, { 0x38F7CD, 0x600000, 0x6FFFFF, "Fast Cotton(Beijing) Limited", "FAST-COTTON-BEIJING" }, { 0x38F7CD, 0x700000, 0x7FFFFF, "ARUNAS PTY LTD", "ARUNAS-PTY" }, { 0x38F7CD, 0x800000, 0x8FFFFF, "BlastWave Inc.", "BLASTWAVE" }, { 0x38F7CD, 0x900000, 0x9FFFFF, "RFbeam Microwave GmbH", "RFBEAM-MICROWAVE" }, { 0x38F7CD, 0xA00000, 0xAFFFFF, "Distech Controls", "DISTECH-CONTROLS" }, { 0x38F7CD, 0xB00000, 0xBFFFFF, "Fibergate Inc.", "FIBERGATE" }, { 0x38F7CD, 0xC00000, 0xCFFFFF, "Shenzhen MADIGI Electronic Technology Co., Ltd", "SHENZHEN-MADIGI" }, { 0x38F7CD, 0xD00000, 0xDFFFFF, "Macherey-Nagel GmbH & Co. KG", "MACHEREY-NAGEL" }, { 0x38F7CD, 0xE00000, 0xEFFFFF, "APT MOBILE SATCOM LIMITED", "APT-MOBILE-SATCOM" }, { 0x38FDFE, 0x000000, 0x0FFFFF, "Edge I&D Co., Ltd.", "EDGE-I-D" }, { 0x38FDFE, 0x100000, 0x1FFFFF, "WAYTONE (BEIIJNG) COMMUNICATIONS CO.,LTD", "WAYTONE-BEIIJNG-COMMUNICATION" }, { 0x38FDFE, 0x200000, 0x2FFFFF, "Smart Solution Technology, Inc", "SMART-SOLUTION" }, { 0x38FDFE, 0x300000, 0x3FFFFF, "Siemens AG, PG IE R&D", "SIEMENS-PG-IE-R-D" }, { 0x38FDFE, 0x400000, 0x4FFFFF, "New Telecom Solutions LLC", "NEW-TELECOM-SOLUTIONS" }, { 0x38FDFE, 0x500000, 0x5FFFFF, "CaptiveAire Systems Inc.", "CAPTIVEAIRE" }, { 0x38FDFE, 0x600000, 0x6FFFFF, "Inspero Inc", "INSPERO" }, { 0x38FDFE, 0x700000, 0x7FFFFF, "Rademacher Geraete-Elektronik GmbH", "RADEMACHER-GERAETE-ELEKTRONIK" }, { 0x38FDFE, 0x800000, 0x8FFFFF, "Indra Navia AS", "INDRA-NAVIA-AS" }, { 0x38FDFE, 0x900000, 0x9FFFFF, "OOO Group of Industrial Technologies", "OOO-GROUP-OF-INDUSTRIAL-TECHNOLOGIES" }, { 0x38FDFE, 0xA00000, 0xAFFFFF, "Management Service Corporation", "MANAGEMENT-SERVICE" }, { 0x38FDFE, 0xB00000, 0xBFFFFF, "Swedish Adrenaline AB", "SWEDISH-ADRENALINE-AB" }, { 0x38FDFE, 0xC00000, 0xCFFFFF, "New Garden Co., Ltd.", "NEW-GARDEN" }, { 0x38FDFE, 0xD00000, 0xDFFFFF, "FUBA Automotive Electronics GmbH", "FUBA-AUTOMOTIVE-ELECTRONICS" }, { 0x38FDFE, 0xE00000, 0xEFFFFF, "iSmart electronic technology co.,LTD", "ISMART" }, { 0x3C24F0, 0x000000, 0x0FFFFF, "SHENZHEN PINSIDA TECHNOLOGY CO.,LTD.", "SHENZHEN-PINSIDA" }, { 0x3C24F0, 0x100000, 0x1FFFFF, "Abrites Ltd.", "ABRITES" }, { 0x3C24F0, 0x200000, 0x2FFFFF, "Laipac Technology Inc.", "LAIPAC" }, { 0x3C24F0, 0x300000, 0x3FFFFF, "Wisycom", "WISYCOM" }, { 0x3C24F0, 0x400000, 0x4FFFFF, "Inter-Coastal Electronics", "INTER-COASTAL-ELECTRONICS" }, { 0x3C24F0, 0x500000, 0x5FFFFF, "CASKY eTech Co., Ltd.", "CASKY-ETECH" }, { 0x3C24F0, 0x600000, 0x6FFFFF, "Inter Action Corporation", "INTER-ACTION" }, { 0x3C24F0, 0x700000, 0x7FFFFF, "Swissdotnet SA", "SWISSDOTNET" }, { 0x3C24F0, 0x800000, 0x8FFFFF, "Sivat Technology Co.,Ltd.", "SIVAT" }, { 0x3C24F0, 0x900000, 0x9FFFFF, "Siemens AG - Siemens Deutschland Mobility", "SIEMENS-SIEMENS-DEUTSCHLAND-MOBILITY" }, { 0x3C24F0, 0xA00000, 0xAFFFFF, "Shenzhen Bestway Technology Co., Ltd", "SHENZHEN-BESTWAY" }, { 0x3C24F0, 0xB00000, 0xBFFFFF, "COMATIS", "COMATIS" }, { 0x3C24F0, 0xC00000, 0xCFFFFF, "Authentico Technologies", "AUTHENTICO-TECHNOLOGIES" }, { 0x3C24F0, 0xD00000, 0xDFFFFF, "Travis Holding B.V.", "TRAVIS-HOLDING-B-V" }, { 0x3C24F0, 0xE00000, 0xEFFFFF, "GETMOBIT LLC", "GETMOBIT" }, { 0x3C39E7, 0x000000, 0x0FFFFF, "Hannstar Display Corp", "HANNSTAR-DISPLAY" }, { 0x3C39E7, 0x100000, 0x1FFFFF, "BEWATEC Kommunikationstechnik GmbH", "BEWATEC-KOMMUNIKATIONSTECHNIK" }, { 0x3C39E7, 0x200000, 0x2FFFFF, "HomeWizard B.V.", "HOMEWIZARD-B-V" }, { 0x3C39E7, 0x300000, 0x3FFFFF, "ELSA Japan Inc.", "ELSA-JAPAN" }, { 0x3C39E7, 0x400000, 0x4FFFFF, "University of British Columbia", "UNIVERSITY-OF-BRITISH-COLUMBIA" }, { 0x3C39E7, 0x500000, 0x5FFFFF, "Attrackting AG", "ATTRACKTING" }, { 0x3C39E7, 0x600000, 0x6FFFFF, "RO.VE.R. Laboratories S.p.A", "RO-VE-R-LABORATORIES" }, { 0x3C39E7, 0x700000, 0x7FFFFF, "Sensor to Image GmbH", "SENSOR-TO-IMAGE" }, { 0x3C39E7, 0x800000, 0x8FFFFF, "Martem AS", "MARTEM-AS" }, { 0x3C39E7, 0x900000, 0x9FFFFF, "Zone Controls AB", "ZONE-CONTROLS-AB" }, { 0x3C39E7, 0xA00000, 0xAFFFFF, "iiM AG", "IIM" }, { 0x3C39E7, 0xB00000, 0xBFFFFF, "chipsguide technology Co.,LTD", "CHIPSGUIDE" }, { 0x3C39E7, 0xC00000, 0xCFFFFF, "VANSTONE ELECTRONIC (BEIJING)CO,. LTD.", "VANSTONE-BEIJING" }, { 0x3C39E7, 0xE00000, 0xEFFFFF, "MARPOSS SPA", "MARPOSS-SPA" }, { 0x3C39E7, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x3C427E, 0x000000, 0x0FFFFF, "Grandway Technology (Shenzhen) Limited", "GRANDWAY-SHENZHEN" }, { 0x3C427E, 0x100000, 0x1FFFFF, "Dongguan Taide Industrial Co.,Ltd.", "DONGGUAN-TAIDE-INDUSTRIAL" }, { 0x3C427E, 0x200000, 0x2FFFFF, "Starloop Tech Co., Ltd.", "STARLOOP-TECH" }, { 0x3C427E, 0x300000, 0x3FFFFF, "Shenzhen VETAS Communication Technology Co , Ltd.", "SHENZHEN-VETAS-COMMUNICATION" }, { 0x3C427E, 0x400000, 0x4FFFFF, "Teknoware Oy", "TEKNOWARE-OY" }, { 0x3C427E, 0x500000, 0x5FFFFF, "Geoplan Korea", "GEOPLAN-KOREA" }, { 0x3C427E, 0x600000, 0x6FFFFF, "Edit Srl", "EDIT-SRL" }, { 0x3C427E, 0x700000, 0x7FFFFF, "GJS Co., Ltd.", "GJS" }, { 0x3C427E, 0x800000, 0x8FFFFF, "UBTECH ROBOTICS CORP", "UBTECH-ROBOTICS" }, { 0x3C427E, 0x900000, 0x9FFFFF, "TAITEX CORPORATION", "TAITEX" }, { 0x3C427E, 0xA00000, 0xAFFFFF, "snap40 Ltd", "SNAP40" }, { 0x3C427E, 0xB00000, 0xBFFFFF, "Compal Electronics INC.", "COMPAL-ELECTRONICS" }, { 0x3C427E, 0xC00000, 0xCFFFFF, "Privacy Labs", "PRIVACY-LABS" }, { 0x3C427E, 0xD00000, 0xDFFFFF, "ROBOX SMART MOTION (WUHU) CO.,LTD", "ROBOX-SMART-MOTION-WUHU" }, { 0x3C427E, 0xE00000, 0xEFFFFF, "Xiaoniu network technology (Shanghai) Co., Ltd.", "XIAONIU-NETWORK-SHANGHAI" }, { 0x3C6A2C, 0x000000, 0x0FFFFF, "Rio Lago Technologies LLC", "RIO-LAGO-TECHNOLOGIES" }, { 0x3C6A2C, 0x100000, 0x1FFFFF, "Olibra LLC", "OLIBRA" }, { 0x3C6A2C, 0x200000, 0x2FFFFF, "Bosch Automotive Products (Suzhou) Co., Ltd.", "BOSCH-AUTOMOTIVE-PRODUCTS-SUZHOU" }, { 0x3C6A2C, 0x300000, 0x3FFFFF, "figur8, Inc.", "FIGUR8" }, { 0x3C6A2C, 0x400000, 0x4FFFFF, "XI'AN YEP TELECOM TECHNOLOGY CO.,LTD", "XI-AN-YEP-TELECOM" }, { 0x3C6A2C, 0x500000, 0x5FFFFF, "Qingdao iGuan Technology Co., Ltd.", "QINGDAO-IGUAN" }, { 0x3C6A2C, 0x600000, 0x6FFFFF, "La Barrière Automatique", "LA-BARRIRE-AUTOMATIQUE" }, { 0x3C6A2C, 0x700000, 0x7FFFFF, "Homegear GmbH", "HOMEGEAR" }, { 0x3C6A2C, 0x800000, 0x8FFFFF, "TP Radio", "TP-RADIO" }, { 0x3C6A2C, 0x900000, 0x9FFFFF, "WICKS Co., Ltd.", "WICKS" }, { 0x3C6A2C, 0xA00000, 0xAFFFFF, "Metro", "METRO" }, { 0x3C6A2C, 0xB00000, 0xBFFFFF, "Phytium Technology Co., Ltd.", "PHYTIUM" }, { 0x3C6A2C, 0xC00000, 0xCFFFFF, "Eltov System", "ELTOV-SYSTEM" }, { 0x3C6A2C, 0xD00000, 0xDFFFFF, "Xiamen Smarttek CO., Ltd.", "XIAMEN-SMARTTEK" }, { 0x3C6A2C, 0xE00000, 0xEFFFFF, "Beijing Donghua Hongtai Polytron Technologies Inc", "BEIJING-DONGHUA-HONGTAI-POLYTRON-TECHNOLOGIES" }, { 0x3CFAD3, 0x000000, 0x0FFFFF, "Home Control AS", "HOME-CONTROL-AS" }, { 0x3CFAD3, 0x100000, 0x1FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x3CFAD3, 0x200000, 0x2FFFFF, "Naruida Technology Ltd.", "NARUIDA" }, { 0x3CFAD3, 0x300000, 0x3FFFFF, "Harman Connected Services, Inc.", "HARMAN-CONNECTED-SERVICES" }, { 0x3CFAD3, 0x400000, 0x4FFFFF, "GRG Banking Technology Co.,Ltd", "GRG-BANKING" }, { 0x3CFAD3, 0x500000, 0x5FFFFF, "Gulf Security Technology Co., Ltd", "GULF-SECURITY" }, { 0x3CFAD3, 0x600000, 0x6FFFFF, "Nox Medical", "NOX-MEDICAL" }, { 0x3CFAD3, 0x700000, 0x7FFFFF, "LIPS Corporation", "LIPS" }, { 0x3CFAD3, 0x800000, 0x8FFFFF, "Energous Corporation", "ENERGOUS" }, { 0x3CFAD3, 0x900000, 0x9FFFFF, "Shenzhen Vplus Communication Intelligent Co., Ltd.", "SHENZHEN-VPLUS-COMMUNICATION-INTELLIGENT" }, { 0x3CFAD3, 0xA00000, 0xAFFFFF, "UltiMachine", "ULTIMACHINE" }, { 0x3CFAD3, 0xB00000, 0xBFFFFF, "Corelink Technology Co.,Ltd", "CORELINK" }, { 0x3CFAD3, 0xC00000, 0xCFFFFF, "Shenzhen zhong ju Fiber optical Co.Ltd", "SHENZHEN-ZHONG-JU-FIBER-OPTICAL" }, { 0x3CFAD3, 0xD00000, 0xDFFFFF, "AMobile Solutions (Xiamen) CO. , LTD.", "AMOBILE-SOLUTIONS-XIAMEN" }, { 0x3CFAD3, 0xE00000, 0xEFFFFF, "Mirico", "MIRICO" }, { 0x401175, 0x000000, 0x0FFFFF, "Lexi Devices, Inc.", "LEXI-DEVICES" }, { 0x401175, 0x100000, 0x1FFFFF, "Fujian Kuke3D Technology Co.,LTD", "FUJIAN-KUKE3D" }, { 0x401175, 0x200000, 0x2FFFFF, "Kanda Kogyo", "KANDA-KOGYO" }, { 0x401175, 0x300000, 0x3FFFFF, "Beijing Hexinruitong Electric Power Technology Co., Ltd.", "BEIJING-HEXINRUITONG-ELECTRIC-POWER" }, { 0x401175, 0x400000, 0x4FFFFF, "Table Trac Inc", "TABLE-TRAC" }, { 0x401175, 0x500000, 0x5FFFFF, "MIRC ELECTRONICS LTD", "MIRC-ELECTRONICS" }, { 0x401175, 0x600000, 0x6FFFFF, "ShenZhen LanShuo Communication Equipment CO.,LTD.", "SHENZHEN-LANSHUO-COMMUNICATION-EQUIPMENT" }, { 0x401175, 0x700000, 0x7FFFFF, "Guangzhou RALID Information System Co.Ltd", "GUANGZHOU-RALID-INFORMATION-SYSTEM" }, { 0x401175, 0x800000, 0x8FFFFF, "Beijing Gemotech Intelligent Technology Co., Ltd.", "BEIJING-GEMOTECH-INTELLIGENT" }, { 0x401175, 0x900000, 0x9FFFFF, "ADH Guardian USA", "ADH-GUARDIAN-USA" }, { 0x401175, 0xA00000, 0xAFFFFF, "BWT Tianjin Ltd.", "BWT-TIANJIN" }, { 0x401175, 0xB00000, 0xBFFFFF, "Chongqing IQIYI Intelligence Technology Co., Ltd.", "CHONGQING-IQIYI-INTELLIGENCE" }, { 0x401175, 0xC00000, 0xCFFFFF, "disguise Technologies Limited", "DISGUISE-TECHNOLOGIES" }, { 0x401175, 0xD00000, 0xDFFFFF, "NanJing HuaStart Network Technology Co.,Ltd.", "NANJING-HUASTART-NETWORK" }, { 0x401175, 0xE00000, 0xEFFFFF, "NIBBLE", "NIBBLE" }, { 0x402C76, 0x000000, 0x0FFFFF, "Lista AG", "LISTA" }, { 0x402C76, 0x100000, 0x1FFFFF, "Shanghai Dahua Scale Factory", "SHANGHAI-DAHUA-SCALE-FACTORY" }, { 0x402C76, 0x200000, 0x2FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x402C76, 0x300000, 0x3FFFFF, "EmbeddedArt AB", "EMBEDDEDART-AB" }, { 0x402C76, 0x400000, 0x4FFFFF, "Beijing Smarot Technology Co., Ltd.", "BEIJING-SMAROT" }, { 0x402C76, 0x500000, 0x5FFFFF, "Baumer Bourdon-Haenni", "BAUMER-BOURDON-HAENNI" }, { 0x402C76, 0x600000, 0x6FFFFF, "Guangzhou LANGO Electronics Technology Co., Ltd.", "GUANGZHOU-LANGO-ELECTRONICS" }, { 0x402C76, 0x700000, 0x7FFFFF, "Zhejiang Guoli Security Technology Co., Ltd.", "ZHEJIANG-GUOLI-SECURITY" }, { 0x402C76, 0x800000, 0x8FFFFF, "Suteng Innovation Technology Co., Ltd.", "SUTENG-INNOVATION" }, { 0x402C76, 0x900000, 0x9FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x402C76, 0xA00000, 0xAFFFFF, "NowTechnologies Zrt", "NOWTECHNOLOGIES-ZRT" }, { 0x402C76, 0xB00000, 0xBFFFFF, "Beijing Kuaiyu Electronic Co., Ltd.", "BEIJING-KUAIYU" }, { 0x402C76, 0xC00000, 0xCFFFFF, "gridX GmbH", "GRIDX" }, { 0x402C76, 0xD00000, 0xDFFFFF, "Guangzhou Qi'an Technology Co., Ltd.", "GUANGZHOU-QI-AN" }, { 0x402C76, 0xE00000, 0xEFFFFF, "LS Energy Solutions", "LS-ENERGY-SOLUTIONS" }, { 0x4048FD, 0x000000, 0x0FFFFF, "BEIJING C&W ELECTRONICS(GROUP)CO.,LTD", "BEIJING-C-W-ELECTRONICS-GROUP" }, { 0x4048FD, 0x100000, 0x1FFFFF, "Fast Programming", "FAST-PROGRAMMING" }, { 0x4048FD, 0x200000, 0x2FFFFF, "MITHRAS Technology Co., LTD", "MITHRAS" }, { 0x4048FD, 0x300000, 0x3FFFFF, "RL Controls LLC.", "RL-CONTROLS" }, { 0x4048FD, 0x400000, 0x4FFFFF, "Dynamic Engineering", "DYNAMIC-ENGINEERING" }, { 0x4048FD, 0x500000, 0x5FFFFF, "The 52nd Research Institute of China Electronic Technology Group Corporation", "THE-52ND-RESEARCH-INSTITUTE-OF-CHINA-GROUP" }, { 0x4048FD, 0x600000, 0x6FFFFF, "Swarco Technology ApS", "SWARCO-APS" }, { 0x4048FD, 0x700000, 0x7FFFFF, "Cloud4Wi", "CLOUD4WI" }, { 0x4048FD, 0x800000, 0x8FFFFF, "Dorel Juvenile", "DOREL-JUVENILE" }, { 0x4048FD, 0x900000, 0x9FFFFF, "Plus One Global Ltd.", "PLUS-ONE-GLOBAL" }, { 0x4048FD, 0xA00000, 0xAFFFFF, "Shenzhen Yifang Digital Technology Co., LTD.", "SHENZHEN-YIFANG-DIGITAL" }, { 0x4048FD, 0xB00000, 0xBFFFFF, "Magenta Labs, Inc.", "MAGENTA-LABS" }, { 0x4048FD, 0xC00000, 0xCFFFFF, "Ecotap B.V.", "ECOTAP-B-V" }, { 0x4048FD, 0xD00000, 0xDFFFFF, "NOX Systems AG", "NOX" }, { 0x4048FD, 0xE00000, 0xEFFFFF, "SMART SENSOR DEVICES AB", "SMART-SENSOR-DEVICES-AB" }, { 0x40A36B, 0x000000, 0x0FFFFF, "Fin Robotics Inc", "FIN-ROBOTICS" }, { 0x40A36B, 0x100000, 0x1FFFFF, "TW-TeamWare", "TW-TEAMWARE" }, { 0x40A36B, 0x200000, 0x2FFFFF, "TOPROOTTechnology Corp. Ltd.", "TOPROOTTECHNOLOGY" }, { 0x40A36B, 0x300000, 0x3FFFFF, "Omnitracs, LLC", "OMNITRACS" }, { 0x40A36B, 0x400000, 0x4FFFFF, "SKS-Kinkel Elektronik GmbH", "SKS-KINKEL-ELEKTRONIK" }, { 0x40A36B, 0x500000, 0x5FFFFF, "National Research Council of Canada", "NATIONAL-RESEARCH-COUNCIL-OF-CANADA" }, { 0x40A36B, 0x600000, 0x6FFFFF, "Securiton AG", "SECURITON" }, { 0x40A36B, 0x700000, 0x7FFFFF, "Pella Corporation", "PELLA" }, { 0x40A36B, 0x800000, 0x8FFFFF, "SFT Co., Ltd.", "SFT" }, { 0x40A36B, 0x900000, 0x9FFFFF, "PH Technical Labs", "PH-TECHNICAL-LABS" }, { 0x40A36B, 0xA00000, 0xAFFFFF, "Embrionix Design Inc.", "EMBRIONIX-DESIGN" }, { 0x40A36B, 0xB00000, 0xBFFFFF, "Amobile Intelligent Corp.", "AMOBILE-INTELLIGENT" }, { 0x40A36B, 0xC00000, 0xCFFFFF, "Onion Corporation", "ONION" }, { 0x40A36B, 0xD00000, 0xDFFFFF, "FAOD Co.,Ltd.", "FAOD" }, { 0x40ED98, 0x000000, 0x0FFFFF, "Tsinghua Tongfang Co., LTD", "TSINGHUA-TONGFANG" }, { 0x40ED98, 0x100000, 0x1FFFFF, "GuangZhou FiiO Electronics Technology Co.,Ltd", "GUANGZHOU-FIIO-ELECTRONICS" }, { 0x40ED98, 0x200000, 0x2FFFFF, "A-IOX INC.", "A-IOX" }, { 0x40ED98, 0x300000, 0x3FFFFF, "Knox Company", "KNOX-COMPANY" }, { 0x40ED98, 0x400000, 0x4FFFFF, "Kendrion Kuhnke Automation GmbH", "KENDRION-KUHNKE-AUTOMATION" }, { 0x40ED98, 0x500000, 0x5FFFFF, "Cape", "CAPE" }, { 0x40ED98, 0x600000, 0x6FFFFF, "Shanghai Broadwan Communications Co.,Ltd", "SHANGHAI-BROADWAN-COMMUNICATION" }, { 0x40ED98, 0x700000, 0x7FFFFF, "Vaisala Oyj", "VAISALA-OYJ" }, { 0x40ED98, 0x800000, 0x8FFFFF, "GUANGZHOU AURIC INTELLIGENT TECHNOLOGY CO.,LTD.", "GUANGZHOU-AURIC-INTELLIGENT" }, { 0x40ED98, 0x900000, 0x9FFFFF, "TeraTron GmbH", "TERATRON" }, { 0x40ED98, 0xA00000, 0xAFFFFF, "Integrated Design Ltd", "INTEGRATED-DESIGN" }, { 0x40ED98, 0xB00000, 0xBFFFFF, "Siebert Industrieelektronik GmbH", "SIEBERT-INDUSTRIEELEKTRONIK" }, { 0x40ED98, 0xC00000, 0xCFFFFF, "BloomSky,Inc.", "BLOOMSKY" }, { 0x40ED98, 0xD00000, 0xDFFFFF, "Hangzhou GANX Technology Co.,Ltd.", "HANGZHOU-GANX" }, { 0x40ED98, 0xE00000, 0xEFFFFF, "BORDA TECHNOLOGY", "BORDA" }, { 0x40F385, 0x000000, 0x0FFFFF, "SubPac", "SUBPAC" }, { 0x40F385, 0x100000, 0x1FFFFF, "Johnson Matthey", "JOHNSON-MATTHEY" }, { 0x40F385, 0x200000, 0x2FFFFF, "Beijing Zongheng Electro-Mechanical Technology Development Co.", "BEIJING-ZONGHENG-ELECTRO-MECHANICAL-DEVELOPMENT" }, { 0x40F385, 0x300000, 0x3FFFFF, "IntelliDesign Pty Ltd", "INTELLIDESIGN-PTY" }, { 0x40F385, 0x400000, 0x4FFFFF, "Embedded IQ", "EMBEDDED-IQ" }, { 0x40F385, 0x500000, 0x5FFFFF, "KATO ENGINEERING INC.", "KATO-ENGINEERING" }, { 0x40F385, 0x600000, 0x6FFFFF, "Lennox International Incorporated", "LENNOX-INCORPORATED" }, { 0x40F385, 0x700000, 0x7FFFFF, "PALAZZETTI LELIO SPA", "PALAZZETTI-LELIO-SPA" }, { 0x40F385, 0x800000, 0x8FFFFF, "Teleepoch Ltd", "TELEEPOCH" }, { 0x40F385, 0x900000, 0x9FFFFF, "Fast Precision Technologies Co. Ltd.", "FAST-PRECISION-TECHNOLOGIES" }, { 0x40F385, 0xA00000, 0xAFFFFF, "Creanord", "CREANORD" }, { 0x40F385, 0xB00000, 0xBFFFFF, "URMET Home & Building Solutions Pty Ltd", "URMET-HOME-BUILDING-SOLUTIONS-PTY" }, { 0x40F385, 0xC00000, 0xCFFFFF, "Clixxo Broadband Private Limited", "CLIXXO-BROADBAND-PRIVATE" }, { 0x40F385, 0xD00000, 0xDFFFFF, "Digital Bros S.p.A.", "DIGITAL-BROS" }, { 0x40F385, 0xE00000, 0xEFFFFF, "BBB Inc.", "BBB" }, { 0x440377, 0x000000, 0x0FFFFF, "Musashi Seimitsu Industry Co.,Ltd", "MUSASHI-SEIMITSU-INDUSTRY" }, { 0x440377, 0x100000, 0x1FFFFF, "Atari, Inc.", "ATARI" }, { 0x440377, 0x200000, 0x2FFFFF, "Exsom Computers LLC", "EXSOM-COMPUTERS" }, { 0x440377, 0x300000, 0x3FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x440377, 0x400000, 0x4FFFFF, "Lenovo Image(Tianjin) Technology Ltd.", "LENOVO-IMAGE-TIANJIN" }, { 0x440377, 0x500000, 0x5FFFFF, "Norden Communication UK Ltd.", "NORDEN-COMMUNICATION-UK" }, { 0x440377, 0x600000, 0x6FFFFF, "SHEN ZHEN HUAWANG TECHNOLOGY CO; LTD", "SHEN-ZHEN-HUAWANG" }, { 0x440377, 0x700000, 0x7FFFFF, "Stara S/A Indústria de Implementos Agrícolas", "STARA-S/A-INDSTRIA-DE-IMPLEMENTOS-AGRCOLAS" }, { 0x440377, 0x800000, 0x8FFFFF, "Gemmy Electronics (Shenzhen) Co, Ltd", "GEMMY-ELECTRONICS-SHENZHEN" }, { 0x440377, 0x900000, 0x9FFFFF, "SHENZHEN UT-KING TECHNOLOGY CO.,LTD", "SHENZHEN-UT-KING" }, { 0x440377, 0xA00000, 0xAFFFFF, "symplr", "SYMPLR" }, { 0x440377, 0xB00000, 0xBFFFFF, "Hangzhou Asia Infrastructure Tech. Co., Ltd.", "HANGZHOU-ASIA-INFRASTRUCTURE-TECH" }, { 0x440377, 0xC00000, 0xCFFFFF, "BIG Climatic Manufacture, Co. LTD, Zhongshan Branch", "BIG-CLIMATIC-MANUFACTURE-ZHONGSHAN-BRANCH" }, { 0x440377, 0xD00000, 0xDFFFFF, "OMNISENSE SYSTEMS PRIVATE LIMITED TAIWAN BRANCH", "OMNISENSE-PRIVATE-TAIWAN-BRANCH" }, { 0x440377, 0xE00000, 0xEFFFFF, "Bolin Technology Co., Ltd", "BOLIN" }, { 0x446FD8, 0x000000, 0x0FFFFF, "Sichuan subao network technology ltd.co.", "SICHUAN-SUBAO-NETWORK" }, { 0x446FD8, 0x100000, 0x1FFFFF, "Shenzhen Furuilian Electronic Co.,Ltd.", "SHENZHEN-FURUILIAN" }, { 0x446FD8, 0x200000, 0x2FFFFF, "BAYKON Endüstriyel Kontrol Sistemleri San. ve Tic. A.Ş.", "BAYKON-ENDUESTRIYEL-KONTROL-SISTEMLERI-SAN-VE-TIC-A" }, { 0x446FD8, 0x300000, 0x3FFFFF, "Shenzhen Mestechs Technology CO., LTD", "SHENZHEN-MESTECHS" }, { 0x446FD8, 0x400000, 0x4FFFFF, "lb Lautsprecher gmbH", "LB-LAUTSPRECHER" }, { 0x446FD8, 0x500000, 0x5FFFFF, "ZHEJIANG SHIP ELECTRONICS & TECHNOLOGY CO., LTD.", "ZHEJIANG-SHIP-ELECTRONICS" }, { 0x446FD8, 0x600000, 0x6FFFFF, "Anhui GuDao Tech", "ANHUI-GUDAO-TECH" }, { 0x446FD8, 0x700000, 0x7FFFFF, "ITC", "ITC" }, { 0x446FD8, 0x800000, 0x8FFFFF, "Global Telecom Engineering, Inc", "GLOBAL-TELECOM-ENGINEERING" }, { 0x446FD8, 0x900000, 0x9FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x446FD8, 0xA00000, 0xAFFFFF, "ZHEJIANG HIKAILINK TECHNOLOGY Co., Ltd", "ZHEJIANG-HIKAILINK" }, { 0x446FD8, 0xB00000, 0xBFFFFF, "Beijing gpthink technology co.,LTD.", "BEIJING-GPTHINK" }, { 0x446FD8, 0xC00000, 0xCFFFFF, "Changzhou Haitu Electronic Technology Co.,Ltd", "CHANGZHOU-HAITU" }, { 0x446FD8, 0xD00000, 0xDFFFFF, "SCAIME", "SCAIME" }, { 0x446FD8, 0xE00000, 0xEFFFFF, "CTE", "CTE" }, { 0x44A92C, 0x000000, 0x0FFFFF, "ZHEJIANG HISING TECHNOLOGY CO.,LTD", "ZHEJIANG-HISING" }, { 0x44A92C, 0x100000, 0x1FFFFF, "uimcom", "UIMCOM" }, { 0x44A92C, 0x200000, 0x2FFFFF, "Anhui Zhongxin Electronic Technology Co., Ltd.", "ANHUI-ZHONGXIN" }, { 0x44A92C, 0x300000, 0x3FFFFF, "Luxonis Holding Corporation", "LUXONIS-HOLDING" }, { 0x44A92C, 0x400000, 0x4FFFFF, "NetX Networks a.s.", "NETX-NETWORKS" }, { 0x44A92C, 0x500000, 0x5FFFFF, "Shenzhen Lianfaxun Electronic Technology Co.,Ltd", "SHENZHEN-LIANFAXUN" }, { 0x44A92C, 0x600000, 0x6FFFFF, "Ningbo joyson new energy automotive technology Co.,Ltd", "NINGBO-JOYSON-NEW-ENERGY-AUTOMOTIVE" }, { 0x44A92C, 0x700000, 0x7FFFFF, "Efficient Building Automation Corp.", "EFFICIENT-BUILDING-AUTOMATION" }, { 0x44A92C, 0x800000, 0x8FFFFF, "RT-Systemtechnik GmbH", "RT-SYSTEMTECHNIK" }, { 0x44A92C, 0x900000, 0x9FFFFF, "China Electronics Corporation Greatwall Shengfeifan information system Co.,ltd. Hu'nan computer R.&D. Center", "CHINA-ELECTRONICS-GREATWALL-SHENGFEIFAN-INFORMATION-SYSTEM-HU-NAN-R-D-CENTER" }, { 0x44A92C, 0xA00000, 0xAFFFFF, "Digiport OU", "DIGIPORT-OU" }, { 0x44A92C, 0xB00000, 0xBFFFFF, "Amethystum Storage Technology Co., Ltd", "AMETHYSTUM-STORAGE" }, { 0x44A92C, 0xC00000, 0xCFFFFF, "Cubitech", "CUBITECH" }, { 0x44A92C, 0xD00000, 0xDFFFFF, "NPP KOMETEH JSC", "NPP-KOMETEH-JSC" }, { 0x44A92C, 0xE00000, 0xEFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x44D5F2, 0x000000, 0x0FFFFF, "TIBA Research & Development (1986) LTD", "TIBA-RESEARCH-DEVELOPMENT-1986" }, { 0x44D5F2, 0x100000, 0x1FFFFF, "SIMPLERED TECHNOLOGY LTD.", "SIMPLERED" }, { 0x44D5F2, 0x200000, 0x2FFFFF, "Shenzhen Hebang Electronic Co., Ltd", "SHENZHEN-HEBANG" }, { 0x44D5F2, 0x300000, 0x3FFFFF, "VURO LLC", "VURO" }, { 0x44D5F2, 0x400000, 0x4FFFFF, "APPOTRONICS CO., LTD", "APPOTRONICS" }, { 0x44D5F2, 0x500000, 0x5FFFFF, "tiga.eleven GmbH", "TIGA-ELEVEN" }, { 0x44D5F2, 0x600000, 0x6FFFFF, "Beam Communications Pty Ltd", "BEAM-COMMUNICATION-PTY" }, { 0x44D5F2, 0x700000, 0x7FFFFF, "Shenzhen Qiutian Technology Co.,Ltd", "SHENZHEN-QIUTIAN" }, { 0x44D5F2, 0x800000, 0x8FFFFF, "CETC Avionics.L td", "CETC-AVIONICS-L-TD" }, { 0x44D5F2, 0x900000, 0x9FFFFF, "Auctus Technologies Co.,Ltd.", "AUCTUS-TECHNOLOGIES" }, { 0x44D5F2, 0xA00000, 0xAFFFFF, "SYS TEC electronic GmbH", "SYS-TEC" }, { 0x44D5F2, 0xB00000, 0xBFFFFF, "Valeo Interior Controls (Shenzhen) Co.,Ltd", "VALEO-INTERIOR-CONTROLS-SHENZHEN" }, { 0x44D5F2, 0xC00000, 0xCFFFFF, "neocontrol soluções em automação", "NEOCONTROL-SOLUES-EM-AUTOMAO" }, { 0x44D5F2, 0xD00000, 0xDFFFFF, "Shenzhen Nation RFID Technology Co.,Ltd.", "SHENZHEN-NATION-RFID" }, { 0x44D5F2, 0xE00000, 0xEFFFFF, "Joint-Stock Company Research and Development Center ELVEES", "JOINT-STOCK-COMPANY-RESEARCH-AND-DEVELOPMENT-CENTER-ELVEES" }, { 0x480BB2, 0x000000, 0x0FFFFF, "Ridango AS", "RIDANGO-AS" }, { 0x480BB2, 0x100000, 0x1FFFFF, "BAJA ELECTRONICS TECHNOLOGY LIMITED", "BAJA-ELECTRONICS" }, { 0x480BB2, 0x200000, 0x2FFFFF, "Thales CETCA Avionics CO., Ltd", "THALES-CETCA-AVIONICS" }, { 0x480BB2, 0x300000, 0x3FFFFF, "shanghai Rinlink Intelligent Technology Co., Ltd.", "SHANGHAI-RINLINK-INTELLIGENT" }, { 0x480BB2, 0x400000, 0x4FFFFF, "Hangzhou Freely Communication Co., Ltd.", "HANGZHOU-FREELY-COMMUNICATION" }, { 0x480BB2, 0x500000, 0x5FFFFF, "Solaredge LTD.", "SOLAREDGE" }, { 0x480BB2, 0x600000, 0x6FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x480BB2, 0x700000, 0x7FFFFF, "Beijing Dragon Resources Limited.", "BEIJING-DRAGON-RESOURCES" }, { 0x480BB2, 0x800000, 0x8FFFFF, "BravoCom(xiamen)TechCo.Ltd", "BRAVOCOMXIAMENTECHCO" }, { 0x480BB2, 0x900000, 0x9FFFFF, "Microprogram Information Co., Ltd", "MICROPROGRAM-INFORMATION" }, { 0x480BB2, 0xA00000, 0xAFFFFF, "XIAMEN RONGTA TECHNOLOGY CO.,LTD.", "XIAMEN-RONGTA" }, { 0x480BB2, 0xB00000, 0xBFFFFF, "Popit Oy", "POPIT-OY" }, { 0x480BB2, 0xC00000, 0xCFFFFF, "SHENZHEN TOPWELL TECHNOLOGY CO..LTD", "SHENZHEN-TOPWELL" }, { 0x480BB2, 0xD00000, 0xDFFFFF, "M2Lab Ltd.", "M2LAB" }, { 0x480BB2, 0xE00000, 0xEFFFFF, "Beijing MFOX technology Co., Ltd.", "BEIJING-MFOX" }, { 0x4865EE, 0x000000, 0x0FFFFF, "DefPower Ltd", "DEFPOWER" }, { 0x4865EE, 0x100000, 0x1FFFFF, "Gopod Group Limited", "GOPOD-GROUP" }, { 0x4865EE, 0x200000, 0x2FFFFF, "CaptionCall", "CAPTIONCALL" }, { 0x4865EE, 0x300000, 0x3FFFFF, "Data Technology Inc.", "DATA" }, { 0x4865EE, 0x400000, 0x4FFFFF, "Mission Microwave Technologies, Inc", "MISSION-MICROWAVE-TECHNOLOGIES" }, { 0x4865EE, 0x500000, 0x5FFFFF, "Swistec Systems AG", "SWISTEC" }, { 0x4865EE, 0x600000, 0x6FFFFF, "shenzhen sunflower technologies CO., LIMITED", "SHENZHEN-SUNFLOWER-TECHNOLOGIES" }, { 0x4865EE, 0x700000, 0x7FFFFF, "Venture Research Inc.", "VENTURE-RESEARCH" }, { 0x4865EE, 0x800000, 0x8FFFFF, "SmartDisplayer Technology Co., Ltd.", "SMARTDISPLAYER" }, { 0x4865EE, 0x900000, 0x9FFFFF, "VideoStitch, Inc", "VIDEOSTITCH" }, { 0x4865EE, 0xA00000, 0xAFFFFF, "Shenzhen Inpor cloud Computing Co., Ltd.", "SHENZHEN-INPOR-CLOUD-COMPUTING" }, { 0x4865EE, 0xB00000, 0xBFFFFF, "EnBW Energie Baden-Württemberg AG", "ENBW-ENERGIE-BADEN-WUERTTEMBERG" }, { 0x4865EE, 0xC00000, 0xCFFFFF, "DNV GL", "DNV-GL" }, { 0x4865EE, 0xD00000, 0xDFFFFF, "Winn Technology Co.,Ltd", "WINN" }, { 0x4865EE, 0xE00000, 0xEFFFFF, "CNU", "CNU" }, { 0x4C4BF9, 0x000000, 0x0FFFFF, "Multitek Elektronik Sanayi ve Ticaret A.S.", "MULTITEK-ELEKTRONIK-SANAYI-VE-TICARET" }, { 0x4C4BF9, 0x100000, 0x1FFFFF, "Jiangsu acrel Co., Ltd.", "JIANGSU-ACREL" }, { 0x4C4BF9, 0x200000, 0x2FFFFF, "Shenzhen HommPro Technology Co.,Ltd", "SHENZHEN-HOMMPRO" }, { 0x4C4BF9, 0x300000, 0x3FFFFF, "Power Active Co., Ltd", "POWER-ACTIVE" }, { 0x4C4BF9, 0x400000, 0x4FFFFF, "Shenzhen dingsheng technology co., LTD", "SHENZHEN-DINGSHENG" }, { 0x4C4BF9, 0x500000, 0x5FFFFF, "Remedee Labs", "REMEDEE-LABS" }, { 0x4C4BF9, 0x600000, 0x6FFFFF, "Shandong Linkotech Electronic Co., Ltd.", "SHANDONG-LINKOTECH" }, { 0x4C4BF9, 0x700000, 0x7FFFFF, "GLONEXS", "GLONEXS" }, { 0x4C4BF9, 0x800000, 0x8FFFFF, "Zivid AS", "ZIVID-AS" }, { 0x4C4BF9, 0x900000, 0x9FFFFF, "Tecnoplus Srl", "TECNOPLUS-SRL" }, { 0x4C4BF9, 0xA00000, 0xAFFFFF, "Electrolux Professional AB", "ELECTROLUX-PROFESSIONAL-AB" }, { 0x4C4BF9, 0xB00000, 0xBFFFFF, "Stored Energy Systems", "STORED-ENERGY" }, { 0x4C4BF9, 0xC00000, 0xCFFFFF, "Connected IO", "CONNECTED-IO" }, { 0x4C4BF9, 0xD00000, 0xDFFFFF, "Shenzhen Haichuan Intelligent Information Technology Co., Ltd.", "SHENZHEN-HAICHUAN-INTELLIGENT-INFORMATION" }, { 0x4C4BF9, 0xE00000, 0xEFFFFF, "Beijing AutoAi Technology co. LTD", "BEIJING-AUTOAI" }, { 0x4C65A8, 0x000000, 0x0FFFFF, "WELT Corporation", "WELT" }, { 0x4C65A8, 0x100000, 0x1FFFFF, "Beijing Bluehalo Internet Inc.", "BEIJING-BLUEHALO-INTERNET" }, { 0x4C65A8, 0x200000, 0x2FFFFF, "Orica Europe Pty Ltd & Co KG", "ORICA-EUROPE-PTY" }, { 0x4C65A8, 0x300000, 0x3FFFFF, "Roost", "ROOST" }, { 0x4C65A8, 0x400000, 0x4FFFFF, "Plus One Japan Limited", "PLUS-ONE-JAPAN" }, { 0x4C65A8, 0x500000, 0x5FFFFF, "TEL-Electronics Ltd", "TEL-ELECTRONICS" }, { 0x4C65A8, 0x600000, 0x6FFFFF, "Nuviz Oy", "NUVIZ-OY" }, { 0x4C65A8, 0x700000, 0x7FFFFF, "Wuhan MoreQuick Network Technology Co., Ltd.", "WUHAN-MOREQUICK-NETWORK" }, { 0x4C65A8, 0x800000, 0x8FFFFF, "Instant Byte, S.L.", "INSTANT-BYTE" }, { 0x4C65A8, 0x900000, 0x9FFFFF, "SHENZHEN LISAIER TRONICS CO.,LTD", "SHENZHEN-LISAIER-TRONICS" }, { 0x4C65A8, 0xA00000, 0xAFFFFF, "Suzhou Embedded Electronic Technology Co., Ltd.", "SUZHOU-EMBEDDED" }, { 0x4C65A8, 0xB00000, 0xBFFFFF, "ZMIN Technologies", "ZMIN-TECHNOLOGIES" }, { 0x4C65A8, 0xC00000, 0xCFFFFF, "Fuse", "FUSE" }, { 0x4C65A8, 0xD00000, 0xDFFFFF, "Qingping Technology (Beijing) Co., Ltd.", "QINGPING-BEIJING" }, { 0x4C65A8, 0xE00000, 0xEFFFFF, "High Infinity Germany", "HIGH-INFINITY-GERMANY" }, { 0x4C74A7, 0x000000, 0x0FFFFF, "Shenzhen Timekettle Technologies Co.,Ltd", "SHENZHEN-TIMEKETTLE-TECHNOLOGIES" }, { 0x4C74A7, 0x100000, 0x1FFFFF, "Shenzhen Hollyland Technology Co.,Ltd", "SHENZHEN-HOLLYLAND" }, { 0x4C74A7, 0x200000, 0x2FFFFF, "Cyanview", "CYANVIEW" }, { 0x4C74A7, 0x300000, 0x3FFFFF, "GoCodeIT Inc", "GOCODEIT" }, { 0x4C74A7, 0x400000, 0x4FFFFF, "Wuxi Micro Innovation Integrated Circuit Design Co., Ltd", "WUXI-MICRO-INNOVATION-INTEGRATED-CIRCUIT-DESIGN" }, { 0x4C74A7, 0x500000, 0x5FFFFF, "AGILITY ROBOTICS, INC.", "AGILITY-ROBOTICS" }, { 0x4C74A7, 0x600000, 0x6FFFFF, "ABB LV Installation Materials Co., Ltd. Beijing", "ABB-LV-INSTALLATION-MATERIALS-BEIJING" }, { 0x4C74A7, 0x700000, 0x7FFFFF, "COREIP TECHNOLOGY PRIVATE LIMITED", "COREIP-PRIVATE" }, { 0x4C74A7, 0x800000, 0x8FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x4C74A7, 0x900000, 0x9FFFFF, "Suzhou XiongLi Technology Inc.", "SUZHOU-XIONGLI" }, { 0x4C74A7, 0xA00000, 0xAFFFFF, "RAONARK", "RAONARK" }, { 0x4C74A7, 0xB00000, 0xBFFFFF, "traplinked Gmbh", "TRAPLINKED" }, { 0x4C74A7, 0xC00000, 0xCFFFFF, "N3com", "N3COM" }, { 0x4C74A7, 0xD00000, 0xDFFFFF, "ddcpersia", "DDCPERSIA" }, { 0x4C74A7, 0xE00000, 0xEFFFFF, "KYOCERA CORPORATION", "KYOCERA" }, { 0x4C917A, 0x000000, 0x0FFFFF, "Shenzhen Dangs Science & Technology CO.,LTD", "SHENZHEN-DANGS-SCIENCE" }, { 0x4C917A, 0x100000, 0x1FFFFF, "Inster Tecnología y Comunicaciones SAU", "INSTER-TECNOLOGA-Y-COMUNICACIONES-SAU" }, { 0x4C917A, 0x200000, 0x2FFFFF, "Chongqing Unisinsight Technology Co.,Ltd.", "CHONGQING-UNISINSIGHT" }, { 0x4C917A, 0x300000, 0x3FFFFF, "Smart Access", "SMART-ACCESS" }, { 0x4C917A, 0x400000, 0x4FFFFF, "LumiGrow Inc.", "LUMIGROW" }, { 0x4C917A, 0x500000, 0x5FFFFF, "mtekvision", "MTEKVISION" }, { 0x4C917A, 0x600000, 0x6FFFFF, "Openeye", "OPENEYE" }, { 0x4C917A, 0x700000, 0x7FFFFF, "S.I.C.E.S. srl", "S-I-C-E-S-SRL" }, { 0x4C917A, 0x800000, 0x8FFFFF, "Camsat Przemysław Gralak", "CAMSAT-PRZEMYSAW-GRALAK" }, { 0x4C917A, 0x900000, 0x9FFFFF, "Hangzhou Hangtu Technology Co.,Ltd.", "HANGZHOU-HANGTU" }, { 0x4C917A, 0xA00000, 0xAFFFFF, "Erlab DFS SAS", "ERLAB-DFS-SAS" }, { 0x4C917A, 0xB00000, 0xBFFFFF, "AvertX", "AVERTX" }, { 0x4C917A, 0xC00000, 0xCFFFFF, "Alibaba (Beijing) Software Service Inc.", "ALIBABA-BEIJING-SOFTWARE-SERVICE" }, { 0x4C917A, 0xD00000, 0xDFFFFF, "Shenzhen bankledger Technology Co, Ltd", "SHENZHEN-BANKLEDGER" }, { 0x4C917A, 0xE00000, 0xEFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x4C93A6, 0x000000, 0x0FFFFF, "Vestaboard, Inc.", "VESTABOARD" }, { 0x4C93A6, 0x100000, 0x1FFFFF, "Atrie Technology Fzc", "ATRIE-FZC" }, { 0x4C93A6, 0x200000, 0x2FFFFF, "Diehl Controls Nanjing Co., Ltd.", "DIEHL-CONTROLS-NANJING" }, { 0x4C93A6, 0x300000, 0x3FFFFF, "Commsignia, Ltd.", "COMMSIGNIA" }, { 0x4C93A6, 0x400000, 0x4FFFFF, "4TheWall - 4D Sistem A.S", "4THEWALL-4D-SISTEM" }, { 0x4C93A6, 0x500000, 0x5FFFFF, "Fastenal IP Company", "FASTENAL-IP-COMPANY" }, { 0x4C93A6, 0x600000, 0x6FFFFF, "Shandong Senter Electronic Co., Ltd", "SHANDONG-SENTER" }, { 0x4C93A6, 0x700000, 0x7FFFFF, "5Voxel Co., Ltd.", "5VOXEL" }, { 0x4C93A6, 0x800000, 0x8FFFFF, "Sercomm Corporation.", "SERCOMM" }, { 0x4C93A6, 0x900000, 0x9FFFFF, "Advantics", "ADVANTICS" }, { 0x4C93A6, 0xA00000, 0xAFFFFF, "Hanwang Technology Co.,Ltd", "HANWANG" }, { 0x4C93A6, 0xB00000, 0xBFFFFF, "Felten Electronics", "FELTEN-ELECTRONICS" }, { 0x4C93A6, 0xC00000, 0xCFFFFF, "Wuhan Maiwe communication Co.,Ltd", "WUHAN-MAIWE-COMMUNICATION" }, { 0x4C93A6, 0xD00000, 0xDFFFFF, "Cantronic Systems (Canada) Inc", "CANTRONIC-CANADA" }, { 0x4C93A6, 0xE00000, 0xEFFFFF, "CELLTRON", "CELLTRON" }, { 0x4CBC98, 0x000000, 0x0FFFFF, "Charge-Amps AB", "CHARGE-AMPS-AB" }, { 0x4CBC98, 0x100000, 0x1FFFFF, "JSC NIC", "JSC-NIC" }, { 0x4CBC98, 0x200000, 0x2FFFFF, "Quake Global Inc", "QUAKE-GLOBAL" }, { 0x4CBC98, 0x300000, 0x3FFFFF, "Machine Max", "MACHINE-MAX" }, { 0x4CBC98, 0x400000, 0x4FFFFF, "Nemon Co., Ltd.", "NEMON" }, { 0x4CBC98, 0x500000, 0x5FFFFF, "Gronic Systems GmbH", "GRONIC" }, { 0x4CBC98, 0x600000, 0x6FFFFF, "Humanplus Intelligent Robotics Technology Co.,Ltd.", "HUMANPLUS-INTELLIGENT-ROBOTICS" }, { 0x4CBC98, 0x700000, 0x7FFFFF, "Voegtlin Instruments GmbH", "VOEGTLIN-INSTRUMENTS" }, { 0x4CBC98, 0x800000, 0x8FFFFF, "Shenzhen Shanling Digital Technology Development Co.,Ltd.", "SHENZHEN-SHANLING-DIGITAL-DEVELOPMENT" }, { 0x4CBC98, 0x900000, 0x9FFFFF, "Airtex Manufacturing Partnership", "AIRTEX-MANUFACTURING-PARTNERSHIP" }, { 0x4CBC98, 0xA00000, 0xAFFFFF, "Shenzhen Cogitation Technology Co.,Ltd.", "SHENZHEN-COGITATION" }, { 0x4CBC98, 0xB00000, 0xBFFFFF, "Dongguan SmartAction Technology Co.,Ltd", "DONGGUAN-SMARTACTION" }, { 0x4CBC98, 0xC00000, 0xCFFFFF, "Heliotis AG", "HELIOTIS" }, { 0x4CBC98, 0xD00000, 0xDFFFFF, "Elink Technology (Shenzhen) Co., Limited", "ELINK-SHENZHEN" }, { 0x4CBC98, 0xE00000, 0xEFFFFF, "Wonder Workshop", "WONDER-WORKSHOP" }, { 0x4CE173, 0x000000, 0x0FFFFF, "Beijing Sutongwang E-Business Co., Ltd", "BEIJING-SUTONGWANG-E-BUSINESS" }, { 0x4CE173, 0x100000, 0x1FFFFF, "Nexoforge Inc.", "NEXOFORGE" }, { 0x4CE173, 0x200000, 0x2FFFFF, "Lenovo Data Center Group", "LENOVO-DATA-CENTER-GROUP" }, { 0x4CE173, 0x300000, 0x3FFFFF, "outpaceIO", "OUTPACEIO" }, { 0x4CE173, 0x400000, 0x4FFFFF, "Huizhou Dehong Technology Co., Ltd.", "HUIZHOU-DEHONG" }, { 0x4CE173, 0x500000, 0x5FFFFF, "NewVastek", "NEWVASTEK" }, { 0x4CE173, 0x600000, 0x6FFFFF, "DAIKOKU DENKI CO.,LTD.", "DAIKOKU-DENKI" }, { 0x4CE173, 0x700000, 0x7FFFFF, "Ersúles Limited", "ERSLES" }, { 0x4CE173, 0x800000, 0x8FFFFF, "Nanjing Tongke Technology Development Co., LTD", "NANJING-TONGKE-DEVELOPMENT" }, { 0x4CE173, 0x900000, 0x9FFFFF, "Shenzhen Evolution Dynamics Co., Ltd.", "SHENZHEN-EVOLUTION-DYNAMICS" }, { 0x4CE173, 0xA00000, 0xAFFFFF, "jvi", "JVI" }, { 0x4CE173, 0xB00000, 0xBFFFFF, "Shanghai Ehong Technology Co.,Ltd", "SHANGHAI-EHONG" }, { 0x4CE173, 0xC00000, 0xCFFFFF, "REMONDE NETWORK", "REMONDE-NETWORK" }, { 0x4CE173, 0xD00000, 0xDFFFFF, "KTC(K-TEL)", "KTC-K-TEL" }, { 0x4CE173, 0xE00000, 0xEFFFFF, "Plus One Japan Limited", "PLUS-ONE-JAPAN" }, { 0x500B91, 0x000000, 0x0FFFFF, "Igor, Inc.", "IGOR" }, { 0x500B91, 0x100000, 0x1FFFFF, "SPD Development Company Ltd", "SPD-DEVELOPMENT-COMPANY" }, { 0x500B91, 0x200000, 0x2FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x500B91, 0x300000, 0x3FFFFF, "EWIN TECHNOLOGY LIMITED", "EWIN" }, { 0x500B91, 0x400000, 0x4FFFFF, "Sinope technologies Inc", "SINOPE-TECHNOLOGIES" }, { 0x500B91, 0x500000, 0x5FFFFF, "jiangsu zhongling high-tech CO.,LTD.", "JIANGSU-ZHONGLING-HIGH-TECH" }, { 0x500B91, 0x600000, 0x6FFFFF, "Security Alarms & Co. S.A.", "SECURITY-ALARMS" }, { 0x500B91, 0x700000, 0x7FFFFF, "Shenzhen Xinfa Electronic Co.,ltd", "SHENZHEN-XINFA" }, { 0x500B91, 0x800000, 0x8FFFFF, "Panasonic Enterprise Solutions Company", "PANASONIC-SOLUTIONS-COMPANY" }, { 0x500B91, 0x900000, 0x9FFFFF, "Machfu, Inc.", "MACHFU" }, { 0x500B91, 0xA00000, 0xAFFFFF, "New Audio LLC", "NEW-AUDIO" }, { 0x500B91, 0xB00000, 0xBFFFFF, "thumbzup UK Limited", "THUMBZUP-UK" }, { 0x500B91, 0xC00000, 0xCFFFFF, "Diamond Traffic Products, Inc", "DIAMOND-TRAFFIC-PRODUCTS" }, { 0x500B91, 0xD00000, 0xDFFFFF, "Shenzhen Lucky Sonics Co .,Ltd", "SHENZHEN-LUCKY-SONICS" }, { 0x500B91, 0xE00000, 0xEFFFFF, "Shenzhen zhong ju Fiber optical Co.Ltd", "SHENZHEN-ZHONG-JU-FIBER-OPTICAL" }, { 0x50482C, 0x000000, 0x0FFFFF, "Landatel Comunicaciones SL", "LANDATEL-COMUNICACIONES-SL" }, { 0x50482C, 0x100000, 0x1FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x50482C, 0x200000, 0x2FFFFF, "BBPOS Limited", "BBPOS" }, { 0x50482C, 0x300000, 0x3FFFFF, "Immunity Networks and Technologies Pvt Ltd", "IMMUNITY-NETWORKS-AND-TECHNOLOGIES-PVT" }, { 0x50482C, 0x400000, 0x4FFFFF, "Hy-Line Computer Components GmbH", "HY-LINE-COMPONENTS" }, { 0x50482C, 0x500000, 0x5FFFFF, "Bluefin International Inc", "BLUEFIN" }, { 0x50482C, 0x600000, 0x6FFFFF, "WIKA Mobile Control GmbH & Co.KG", "WIKA-MOBILE-CONTROL" }, { 0x50482C, 0x700000, 0x7FFFFF, "Oliver IQ, Inc.", "OLIVER-IQ" }, { 0x50482C, 0x800000, 0x8FFFFF, "Dongguan Amdolla Electric & Light Material Manufacture Co., Ltd", "DONGGUAN-AMDOLLA-ELECTRIC-LIGHT-MATERIAL-MANUFACTURE" }, { 0x50482C, 0x900000, 0x9FFFFF, "Soter Technologies", "SOTER-TECHNOLOGIES" }, { 0x50482C, 0xA00000, 0xAFFFFF, "JUNG HO", "JUNG-HO" }, { 0x50482C, 0xB00000, 0xBFFFFF, "SL Process", "SL-PROCESS" }, { 0x50482C, 0xC00000, 0xCFFFFF, "Telecam Technology Co.,Ltd", "TELECAM" }, { 0x50482C, 0xD00000, 0xDFFFFF, "KIDO SPORTS CO., LTD.", "KIDO-SPORTS" }, { 0x50482C, 0xE00000, 0xEFFFFF, "Harbin Nosean Tese And Control Technology Co.,Ltd", "HARBIN-NOSEAN-TESE-AND-CONTROL" }, { 0x506255, 0x000000, 0x0FFFFF, "Ufanet SC", "UFANET-SC" }, { 0x506255, 0x100000, 0x1FFFFF, "Hagiwara Solutions Co., Ltd", "HAGIWARA-SOLUTIONS" }, { 0x506255, 0x200000, 0x2FFFFF, "ShenZhen ChuangMo Electronics Technology Co., Ltd", "SHENZHEN-CHUANGMO-ELECTRONICS" }, { 0x506255, 0x300000, 0x3FFFFF, "Hypertech Advance Co., LTD", "HYPERTECH-ADVANCE" }, { 0x506255, 0x400000, 0x4FFFFF, "XSLAB Inc.", "XSLAB" }, { 0x506255, 0x500000, 0x5FFFFF, "Suzhou Ruixinjie Information Technology Co.,Ltd", "SUZHOU-RUIXINJIE-INFORMATION" }, { 0x506255, 0x600000, 0x6FFFFF, "Shenzhen Sinway South Technology Co., Ltd", "SHENZHEN-SINWAY-SOUTH" }, { 0x506255, 0x700000, 0x7FFFFF, "AVTECH Software, Inc.", "AVTECH-SOFTWARE" }, { 0x506255, 0x800000, 0x8FFFFF, "Roda industrial development Co.,Ltd.", "RODA-INDUSTRIAL-DEVELOPMENT" }, { 0x506255, 0x900000, 0x9FFFFF, "Southern Ground Audio LLC", "SOUTHERN-GROUND-AUDIO" }, { 0x506255, 0xA00000, 0xAFFFFF, "CCTV Manufacturer", "CCTV-MANUFACTURER" }, { 0x506255, 0xB00000, 0xBFFFFF, "CHENGDU COVE TECHNOLOGY CO.,LTD", "CHENGDU-COVE" }, { 0x506255, 0xC00000, 0xCFFFFF, "AED Distribution", "AED-DISTRIBUTION" }, { 0x506255, 0xD00000, 0xDFFFFF, "COTT Electronics", "COTT-ELECTRONICS" }, { 0x506255, 0xE00000, 0xEFFFFF, "SHINSOFT CO., LTD.", "SHINSOFT" }, { 0x50A030, 0x000000, 0x0FFFFF, "Gopod Group Limited", "GOPOD-GROUP" }, { 0x50A030, 0x100000, 0x1FFFFF, "XEPIC Corporation Limited", "XEPIC" }, { 0x50A030, 0x200000, 0x2FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x50A030, 0x300000, 0x3FFFFF, "RealWear (Shanghai) Intelligent Technology Co. Ltd", "REALWEAR-SHANGHAI-INTELLIGENT" }, { 0x50A030, 0x400000, 0x4FFFFF, "Alert Innovation", "ALERT-INNOVATION" }, { 0x50A030, 0x500000, 0x5FFFFF, "Jiangsu Jinshi Legend Technology Co.,Ltd", "JIANGSU-JINSHI-LEGEND" }, { 0x50A030, 0x600000, 0x6FFFFF, "Abacus Research AG", "ABACUS-RESEARCH" }, { 0x50A030, 0x700000, 0x7FFFFF, "Shenzhen Hewang Electric Co.,Ltd", "SHENZHEN-HEWANG-ELECTRIC" }, { 0x50A030, 0x800000, 0x8FFFFF, "GE Medical System China Co. Ltd.", "GE-MEDICAL-SYSTEM-CHINA" }, { 0x50A030, 0x900000, 0x9FFFFF, "DPA Microphones A/S", "DPA-MICROPHONES-A/S" }, { 0x50A030, 0xA00000, 0xAFFFFF, "Missing-Link Oy", "MISSING-LINK-OY" }, { 0x50A030, 0xB00000, 0xBFFFFF, "SHANGHAI ZXELINK Co.,Ltd", "SHANGHAI-ZXELINK" }, { 0x50A030, 0xC00000, 0xCFFFFF, "GUANGZHOU UNIPOWER COMPUTER CO.,LTD", "GUANGZHOU-UNIPOWER" }, { 0x50A030, 0xD00000, 0xDFFFFF, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0x50A030, 0xE00000, 0xEFFFFF, "HANKOOK CTEC CO,. LTD.", "HANKOOK-CTEC" }, { 0x50A4D0, 0x000000, 0x0FFFFF, "TRAXENS", "TRAXENS" }, { 0x50A4D0, 0x100000, 0x1FFFFF, "Beijing ANTVR Technology Co., LTD", "BEIJING-ANTVR" }, { 0x50A4D0, 0x200000, 0x2FFFFF, "Seneco A/S", "SENECO-A/S" }, { 0x50A4D0, 0x300000, 0x3FFFFF, "Guangzhou Hysoon Electronic Co., Ltd.", "GUANGZHOU-HYSOON" }, { 0x50A4D0, 0x400000, 0x4FFFFF, "Raven Industries Inc.", "RAVEN-INDUSTRIES" }, { 0x50A4D0, 0x500000, 0x5FFFFF, "TREXOM S.r.l.", "TREXOM" }, { 0x50A4D0, 0x600000, 0x6FFFFF, "PointGrab", "POINTGRAB" }, { 0x50A4D0, 0x700000, 0x7FFFFF, "Shanghai Pujiang Smart Card Systems Co., Ltd.", "SHANGHAI-PUJIANG-SMART-CARD" }, { 0x50A4D0, 0x800000, 0x8FFFFF, "XinLian'AnBao(Beijing)Technology Co.,LTD.", "XINLIAN-ANBAOBEIJING" }, { 0x50A4D0, 0x900000, 0x9FFFFF, "OEM PRODUCTION INC.", "OEM-PRODUCTION" }, { 0x50A4D0, 0xA00000, 0xAFFFFF, "Changsha SinoCare, Inc", "CHANGSHA-SINOCARE" }, { 0x50A4D0, 0xB00000, 0xBFFFFF, "ZHENG DIAN ELECTRONICS LIMITED", "ZHENG-DIAN-ELECTRONICS" }, { 0x50A4D0, 0xC00000, 0xCFFFFF, "Beijing YangLian Networks Technology co., LTD", "BEIJING-YANGLIAN-NETWORKS" }, { 0x50A4D0, 0xD00000, 0xDFFFFF, "Axel Technology", "AXEL" }, { 0x50A4D0, 0xE00000, 0xEFFFFF, "Sagetech Corporation", "SAGETECH" }, { 0x50DE19, 0x000000, 0x0FFFFF, "Telic AG", "TELIC" }, { 0x50DE19, 0x100000, 0x1FFFFF, "Clear Flow by Antiference", "CLEAR-FLOW-BY-ANTIFERENCE" }, { 0x50DE19, 0x200000, 0x2FFFFF, "SPII SPA", "SPII-SPA" }, { 0x50DE19, 0x300000, 0x3FFFFF, "TRAXENS", "TRAXENS" }, { 0x50DE19, 0x400000, 0x4FFFFF, "Langogo Technology Co., Ltd.", "LANGOGO" }, { 0x50DE19, 0x500000, 0x5FFFFF, "Bliq B.V.", "BLIQ-B-V" }, { 0x50DE19, 0x600000, 0x6FFFFF, "OCEANCCTV LTD", "OCEANCCTV" }, { 0x50DE19, 0x700000, 0x7FFFFF, "Tianjin Natianal Health Technology Co.,Ltd", "TIANJIN-NATIANAL-HEALTH" }, { 0x50DE19, 0x800000, 0x8FFFFF, "IVATIV, INC", "IVATIV" }, { 0x50DE19, 0x900000, 0x9FFFFF, "AEG Identifikationssysteme GmbH", "AEG-IDENTIFIKATIONSSYSTEME" }, { 0x50DE19, 0xA00000, 0xAFFFFF, "Tannak International AB", "TANNAK-AB" }, { 0x50DE19, 0xB00000, 0xBFFFFF, "BRAINWARE TERAHERTA INFORMATION TECHNOLOGY CO.,LTD.", "BRAINWARE-TERAHERTA-INFORMATION" }, { 0x50DE19, 0xC00000, 0xCFFFFF, "Shenzhen Vipstech Co., Ltd", "SHENZHEN-VIPSTECH" }, { 0x50DE19, 0xD00000, 0xDFFFFF, "Penny & Giles Aerospace Ltd", "PENNY-GILES-AEROSPACE" }, { 0x50DE19, 0xE00000, 0xEFFFFF, "DTEN Inc.", "DTEN" }, { 0x50FF99, 0x000000, 0x0FFFFF, "Simicon", "SIMICON" }, { 0x50FF99, 0x100000, 0x1FFFFF, "COYOTE SYSTEM", "COYOTE-SYSTEM" }, { 0x50FF99, 0x200000, 0x2FFFFF, "SHENZHEN KINGVT ELECTRONICS CO.,LTD", "SHENZHEN-KINGVT-ELECTRONICS" }, { 0x50FF99, 0x300000, 0x3FFFFF, "Yongjing Shanghai Electronic Science and Technology", "YONGJING-SHANGHAI-SCIENCE" }, { 0x50FF99, 0x400000, 0x4FFFFF, "IPC Global", "IPC-GLOBAL" }, { 0x50FF99, 0x500000, 0x5FFFFF, "Garrison Technology", "GARRISON" }, { 0x50FF99, 0x600000, 0x6FFFFF, "LEGEND WINNER LIMITED", "LEGEND-WINNER" }, { 0x50FF99, 0x700000, 0x7FFFFF, "Honeywell International", "HONEYWELL" }, { 0x50FF99, 0x800000, 0x8FFFFF, "Dolphin Concepts Limited", "DOLPHIN-CONCEPTS" }, { 0x50FF99, 0x900000, 0x9FFFFF, "Sea Eagle Optoelectronic Information Technology(Tianjin)co,Ltd", "SEA-EAGLE-OPTOELECTRONIC-INFORMATION-TIANJIN" }, { 0x50FF99, 0xA00000, 0xAFFFFF, "metraTec GmbH", "METRATEC" }, { 0x50FF99, 0xB00000, 0xBFFFFF, "Sichuan Dowlab Electronics Technology Co. Ltd", "SICHUAN-DOWLAB-ELECTRONICS" }, { 0x50FF99, 0xC00000, 0xCFFFFF, "Goetting KG", "GOETTING" }, { 0x50FF99, 0xD00000, 0xDFFFFF, "Shenzhen Haipengxin Electronic Co., Ltd.", "SHENZHEN-HAIPENGXIN" }, { 0x50FF99, 0xE00000, 0xEFFFFF, "Informa LLC", "INFORMA" }, { 0x54083B, 0x000000, 0x0FFFFF, "Shenzhen Liandian Communication Technology Co.LTD", "SHENZHEN-LIANDIAN-COMMUNICATION" }, { 0x54083B, 0x100000, 0x1FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x54083B, 0x200000, 0x2FFFFF, "NAVITUS LT", "NAVITUS-LT" }, { 0x54083B, 0x300000, 0x3FFFFF, "Dhyan Networks and Technologies, Inc", "DHYAN-NETWORKS-AND-TECHNOLOGIES" }, { 0x54083B, 0x400000, 0x4FFFFF, "Toray Medical Company Limited", "TORAY-MEDICAL-COMPANY" }, { 0x54083B, 0x500000, 0x5FFFFF, "shenzhen HAIOT technology co.,ltd", "SHENZHEN-HAIOT" }, { 0x54083B, 0x600000, 0x6FFFFF, "Vector Atomic", "VECTOR-ATOMIC" }, { 0x54083B, 0x700000, 0x7FFFFF, "ASCS Sp. z o.o.", "ASCS-SP-Z-O-O" }, { 0x54083B, 0x800000, 0x8FFFFF, "Update Systems Inc.", "UPDATE" }, { 0x54083B, 0x900000, 0x9FFFFF, "Unicompute Technology Co.,Ltd.", "UNICOMPUTE" }, { 0x54083B, 0xA00000, 0xAFFFFF, "Silex Ipari Automatizálási Zrt.", "SILEX-IPARI-AUTOMATIZLSI-ZRT" }, { 0x54083B, 0xB00000, 0xBFFFFF, "Korea Bus Broadcasting", "KOREA-BUS-BROADCASTING" }, { 0x54083B, 0xC00000, 0xCFFFFF, "FairPhone B.V.", "FAIRPHONE-B-V" }, { 0x54083B, 0xD00000, 0xDFFFFF, "BHS Corrugated Maschinen- und Anlagenbau GmbH", "BHS-CORRUGATED-MASCHINEN-UND-ANLAGENBAU" }, { 0x54083B, 0xE00000, 0xEFFFFF, "Sinclair Technologies", "SINCLAIR-TECHNOLOGIES" }, { 0x5491AF, 0x000000, 0x0FFFFF, "Opal-RT Technologies Inc.", "OPAL-RT-TECHNOLOGIES" }, { 0x5491AF, 0x100000, 0x1FFFFF, "4MITech", "4MITECH" }, { 0x5491AF, 0x200000, 0x2FFFFF, "SHENZHEN SANMI INTELLIGENT CO.,LTD", "SHENZHEN-SANMI-INTELLIGENT" }, { 0x5491AF, 0x300000, 0x3FFFFF, "IronLink", "IRONLINK" }, { 0x5491AF, 0x400000, 0x4FFFFF, "DDPAI Technology Co.,Ltd", "DDPAI" }, { 0x5491AF, 0x500000, 0x5FFFFF, "Shenzhen IDSTE Information Technology Co., LTD", "SHENZHEN-IDSTE-INFORMATION" }, { 0x5491AF, 0x600000, 0x6FFFFF, "Star Systems International Limited", "STAR" }, { 0x5491AF, 0x700000, 0x7FFFFF, "Hong Telecom Equipment Service Limited", "HONG-TELECOM-EQUIPMENT-SERVICE" }, { 0x5491AF, 0x800000, 0x8FFFFF, "Hunan Quanying Electronics Co. , Ltd.", "HUNAN-QUANYING-ELECTRONICS" }, { 0x5491AF, 0x900000, 0x9FFFFF, "Asiga Pty Ltd", "ASIGA-PTY" }, { 0x5491AF, 0xA00000, 0xAFFFFF, "Zhuhai SHIXI Technology Co.,Ltd", "ZHUHAI-SHIXI" }, { 0x5491AF, 0xC00000, 0xCFFFFF, "DanuTech Europe Kft", "DANUTECH-EUROPE-KFT" }, { 0x5491AF, 0xD00000, 0xDFFFFF, "Ningbo Joynext Technology Corporation", "NINGBO-JOYNEXT" }, { 0x5491AF, 0xE00000, 0xEFFFFF, "Jiangxi Anbaichuan Electric Co.(ABC),Ltd", "JIANGXI-ANBAICHUAN-ELECTRIC-ABC" }, { 0x549A11, 0x000000, 0x0FFFFF, "Shenzhen Excera Technology Co.,Ltd.", "SHENZHEN-EXCERA" }, { 0x549A11, 0x100000, 0x1FFFFF, "SpearX Inc.", "SPEARX" }, { 0x549A11, 0x200000, 0x2FFFFF, "Torrap Design Limited", "TORRAP-DESIGN" }, { 0x549A11, 0x300000, 0x3FFFFF, "Royal Boon Edam International BV", "ROYAL-BOON-EDAM" }, { 0x549A11, 0x400000, 0x4FFFFF, "eTauro LLC", "ETAURO" }, { 0x549A11, 0x500000, 0x5FFFFF, "Elotech Industrieelektronik GmbH", "ELOTECH-INDUSTRIEELEKTRONIK" }, { 0x549A11, 0x600000, 0x6FFFFF, "Orient Direct, Inc.", "ORIENT-DIRECT" }, { 0x549A11, 0x700000, 0x7FFFFF, "Niveo International BV", "NIVEO" }, { 0x549A11, 0x800000, 0x8FFFFF, "Tite, Inc.", "TITE" }, { 0x549A11, 0x900000, 0x9FFFFF, "Alfen BV", "ALFEN" }, { 0x549A11, 0xA00000, 0xAFFFFF, "VendNovation LLC", "VENDNOVATION" }, { 0x549A11, 0xB00000, 0xBFFFFF, "Elite Silicon Technology, Inc.", "ELITE-SILICON" }, { 0x549A11, 0xC00000, 0xCFFFFF, "Xi'an Hua Fan Technology Co.,Ltd.", "XI-AN-HUA-FAN" }, { 0x549A11, 0xD00000, 0xDFFFFF, "Hangzhou duotin Technology Co., Ltd.", "HANGZHOU-DUOTIN" }, { 0x549A11, 0xE00000, 0xEFFFFF, "Beijing HTSmartech Co.,Ltd", "BEIJING-HTSMARTECH" }, { 0x549A11, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x54A493, 0x000000, 0x0FFFFF, "Intelligent Surveillance Corp", "INTELLIGENT-SURVEILLANCE" }, { 0x54A493, 0x100000, 0x1FFFFF, "ShenZhen Smart&Aspiration Co.,LTD", "SHENZHEN-SMART-ASPIRATION" }, { 0x54A493, 0x200000, 0x2FFFFF, "genua GmbH", "GENUA" }, { 0x54A493, 0x300000, 0x3FFFFF, "I-MOON TECHNOLOGY CO., LIMITED", "I-MOON" }, { 0x54A493, 0x400000, 0x4FFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0x54A493, 0x500000, 0x5FFFFF, "AUSOUNDS INTELLIGENCE, LLC", "AUSOUNDS-INTELLIGENCE" }, { 0x54A493, 0x600000, 0x6FFFFF, "Hannto Technology Co., Ltd", "HANNTO" }, { 0x54A493, 0x700000, 0x7FFFFF, "RED Hydrogen LLC", "RED-HYDROGEN" }, { 0x54A493, 0x800000, 0x8FFFFF, "Chengdu EVECCA Technology Co.,Ltd.", "CHENGDU-EVECCA" }, { 0x54A493, 0x900000, 0x9FFFFF, "Do Easy International Limited", "DO-EASY" }, { 0x54A493, 0xA00000, 0xAFFFFF, "Wonders Technology Co., Ltd.", "WONDERS" }, { 0x54A493, 0xB00000, 0xBFFFFF, "Advice", "ADVICE" }, { 0x54A493, 0xC00000, 0xCFFFFF, "BJ COTYTECH TECHNOLOGY CO.,LTD", "BJ-COTYTECH" }, { 0x54A493, 0xD00000, 0xDFFFFF, "ASSEM TECHNOLOGY CO.,LTD.", "ASSEM" }, { 0x54A493, 0xE00000, 0xEFFFFF, "Nederman Holding AB", "NEDERMAN-HOLDING-AB" }, { 0x58208A, 0x000000, 0x0FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x58208A, 0x100000, 0x1FFFFF, "BEIJING SENFETECH CORPORATION LTD.", "BEIJING-SENFETECH" }, { 0x58208A, 0x200000, 0x2FFFFF, "MARS DIGI TECH CO .,LTD", "MARS-DIGI-TECH" }, { 0x58208A, 0x300000, 0x3FFFFF, "Aggregate Co.,Ltd.", "AGGREGATE" }, { 0x58208A, 0x400000, 0x4FFFFF, "TRING", "TRING" }, { 0x58208A, 0x500000, 0x5FFFFF, "JIA HUANG JHAN YE CO.,LTD", "JIA-HUANG-JHAN-YE" }, { 0x58208A, 0x600000, 0x6FFFFF, "Shangyin Intelligence Technology Shandong Co.,Ltd", "SHANGYIN-INTELLIGENCE-SHANDONG" }, { 0x58208A, 0x700000, 0x7FFFFF, "pureLiFi Ltd", "PURELIFI" }, { 0x58208A, 0x800000, 0x8FFFFF, "SAMIL CTS Co., Ltd.", "SAMIL-CTS" }, { 0x58208A, 0x900000, 0x9FFFFF, "Suzhou Ruilisi Technology Ltd.", "SUZHOU-RUILISI" }, { 0x58208A, 0xA00000, 0xAFFFFF, "Conductix-Wampfler", "CONDUCTIX-WAMPFLER" }, { 0x58208A, 0xB00000, 0xBFFFFF, "Infodev Electronic Designers Intl.", "INFODEV-DESIGNERS-INTL" }, { 0x58208A, 0xC00000, 0xCFFFFF, "Jiangsu Zhonganzhixin Communication Technology Co.", "JIANGSU-ZHONGANZHIXIN-COMMUNICATION" }, { 0x58208A, 0xD00000, 0xDFFFFF, "SAMBO HITECH", "SAMBO-HITECH" }, { 0x58208A, 0xE00000, 0xEFFFFF, "UPM Technology, Inc", "UPM" }, { 0x5847CA, 0x000000, 0x0FFFFF, "LITUM BILGI TEKNOLOJILERI SAN. VE TIC. A.S.", "LITUM-BILGI-TEKNOLOJILERI-SAN-VE-TIC" }, { 0x5847CA, 0x100000, 0x1FFFFF, "Hexagon Metrology Services Ltd.", "HEXAGON-METROLOGY-SERVICES" }, { 0x5847CA, 0x200000, 0x2FFFFF, "ONAWHIM (OAW) INC.", "ONAWHIM-OAW" }, { 0x5847CA, 0x300000, 0x3FFFFF, "Fujian Helios Technologies Co., Ltd.", "FUJIAN-HELIOS-TECHNOLOGIES" }, { 0x5847CA, 0x400000, 0x4FFFFF, "Future Tech Development FZC LLC", "FUTURE-TECH-DEVELOPMENT-FZC" }, { 0x5847CA, 0x500000, 0x5FFFFF, "Huizhou Jiemeisi Technology Co., Ltd", "HUIZHOU-JIEMEISI" }, { 0x5847CA, 0x600000, 0x6FFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0x5847CA, 0x700000, 0x7FFFFF, "Shenzhen Meigao Electronic Equipment Co.,Ltd", "SHENZHEN-MEIGAO-EQUIPMENT" }, { 0x5847CA, 0x800000, 0x8FFFFF, "Birger Engineering, Inc.", "BIRGER-ENGINEERING" }, { 0x5847CA, 0x900000, 0x9FFFFF, "Kingnuo Intelligent Technology (Jiaxing) Co., Ltd.", "KINGNUO-INTELLIGENT-JIAXING" }, { 0x5847CA, 0xA00000, 0xAFFFFF, "Powder Watts, LLC", "POWDER-WATTS" }, { 0x5847CA, 0xB00000, 0xBFFFFF, "Suzhou Laisai Intelligence Technology Co.,Ltd", "SUZHOU-LAISAI-INTELLIGENCE" }, { 0x5847CA, 0xC00000, 0xCFFFFF, "SMS ELECTRIC CO., LTD ZHENGZHOU", "SMS-ELECTRIC-ZHENGZHOU" }, { 0x5847CA, 0xD00000, 0xDFFFFF, "PRACTEK Technology Co., Ltd.", "PRACTEK" }, { 0x5847CA, 0xE00000, 0xEFFFFF, "AZURE SUMMIT TECHNOLOGY", "AZURE-SUMMIT" }, { 0x584849, 0x000000, 0x0FFFFF, "Beijing Zhongyuanyishang Technology Co Ltd", "BEIJING-ZHONGYUANYISHANG" }, { 0x584849, 0x100000, 0x1FFFFF, "SKAARHOJ ApS", "SKAARHOJ-APS" }, { 0x584849, 0x200000, 0x2FFFFF, "X-speed lnformation Technology Co.,Ltd", "X-SPEED-LNFORMATION" }, { 0x584849, 0x300000, 0x3FFFFF, "Viper Design LLC", "VIPER-DESIGN" }, { 0x584849, 0x400000, 0x4FFFFF, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0x584849, 0x500000, 0x5FFFFF, "Hubei Shudi Communication Technology Co., Ltd", "HUBEI-SHUDI-COMMUNICATION" }, { 0x584849, 0x600000, 0x6FFFFF, "Shenzhen hongqifu Technology Co., Ltd", "SHENZHEN-HONGQIFU" }, { 0x584849, 0x700000, 0x7FFFFF, "Shandong Aotai Electric Co., LTD.", "SHANDONG-AOTAI-ELECTRIC" }, { 0x584849, 0x800000, 0x8FFFFF, "STACKFORCE GmbH", "STACKFORCE" }, { 0x584849, 0x900000, 0x9FFFFF, "Shenzhen Tongye Technology Co.,Ltd", "SHENZHEN-TONGYE" }, { 0x584849, 0xA00000, 0xAFFFFF, "Waoo", "WAOO" }, { 0x584849, 0xB00000, 0xBFFFFF, "Daatrics LTD", "DAATRICS" }, { 0x584849, 0xC00000, 0xCFFFFF, "Haag-Streit AG", "HAAG-STREIT" }, { 0x584849, 0xD00000, 0xDFFFFF, "Telegaertner Elektronik GmbH", "TELEGAERTNER-ELEKTRONIK" }, { 0x584849, 0xE00000, 0xEFFFFF, "Avadesign Technology Co. Ltd.", "AVADESIGN" }, { 0x5895D8, 0x000000, 0x0FFFFF, "Shenzhen DOOGEE Hengtong Technology CO.,LTD", "SHENZHEN-DOOGEE-HENGTONG" }, { 0x5895D8, 0x100000, 0x1FFFFF, "shenzhen UDD Technologies,co.,Ltd", "SHENZHEN-UDD-TECHNOLOGIES" }, { 0x5895D8, 0x200000, 0x2FFFFF, "Sercomm Corporation.", "SERCOMM" }, { 0x5895D8, 0x300000, 0x3FFFFF, "Tonnet Telecommunication International Co., Ltd.", "TONNET-TELECOMMUNICATION" }, { 0x5895D8, 0x400000, 0x4FFFFF, "Unity Surveillance, Inc.", "UNITY-SURVEILLANCE" }, { 0x5895D8, 0x500000, 0x5FFFFF, "elgris UG", "ELGRIS-UG" }, { 0x5895D8, 0x600000, 0x6FFFFF, "Norgren Manufacturing Co., Ltd.", "NORGREN-MANUFACTURING" }, { 0x5895D8, 0x700000, 0x7FFFFF, "Epiphan Systems Inc", "EPIPHAN" }, { 0x5895D8, 0x800000, 0x8FFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0x5895D8, 0x900000, 0x9FFFFF, "Loftie", "LOFTIE" }, { 0x5895D8, 0xA00000, 0xAFFFFF, "Peak Communications Limited", "PEAK-COMMUNICATION" }, { 0x5895D8, 0xB00000, 0xBFFFFF, "SuZhou Ruishengwei Intelligent Technology Co.,Ltd", "SUZHOU-RUISHENGWEI-INTELLIGENT" }, { 0x5895D8, 0xC00000, 0xCFFFFF, "LOCTEK ERGONOMIC TECHNOLOGY CORP.", "LOCTEK-ERGONOMIC" }, { 0x5895D8, 0xD00000, 0xDFFFFF, "Alunos AG", "ALUNOS" }, { 0x5895D8, 0xE00000, 0xEFFFFF, "Gmv sistemas SAU", "GMV-SISTEMAS-SAU" }, { 0x58C41E, 0x000000, 0x0FFFFF, "Guangzhou TeleStar Communication Consulting Service Co., Ltd", "GUANGZHOU-TELESTAR-COMMUNICATION-CONSULTING-SERVICE" }, { 0x58C41E, 0x100000, 0x1FFFFF, "JLZTLink Industry ?Shen Zhen?Co., Ltd.", "JLZTLINK-INDUSTRY-?SHEN-ZHEN?" }, { 0x58C41E, 0x200000, 0x2FFFFF, "Truesense Srl", "TRUESENSE-SRL" }, { 0x58C41E, 0x300000, 0x3FFFFF, "Lemco IKE", "LEMCO-IKE" }, { 0x58C41E, 0x400000, 0x4FFFFF, "BEIJING FIBRLINK COMMUNICATIONS CO.,LTD.", "BEIJING-FIBRLINK-COMMUNICATION" }, { 0x58C41E, 0x500000, 0x5FFFFF, "Zhejiang Cainiao Supply Chain Management Co.,Ltd", "ZHEJIANG-CAINIAO-SUPPLY-CHAIN-MANAGEMENT" }, { 0x58C41E, 0x700000, 0x7FFFFF, "HwaCom Systems Inc.", "HWACOM" }, { 0x58C41E, 0x800000, 0x8FFFFF, "Xiaomi EV Technology Co., Ltd.", "XIAOMI-EV" }, { 0x58C41E, 0x900000, 0x9FFFFF, "ShenZhen Heng Yue Industry Co.,Ltd", "SHENZHEN-HENG-YUE-INDUSTRY" }, { 0x58C41E, 0xA00000, 0xAFFFFF, "GeBE Elektronik und Feinwerktechnik GmbH", "GEBE-ELEKTRONIK-UND-FEINWERKTECHNIK" }, { 0x58C41E, 0xB00000, 0xBFFFFF, "Pulse Structural Monitoring Ltd", "PULSE-STRUCTURAL-MONITORING" }, { 0x58C41E, 0xC00000, 0xCFFFFF, "PQTEL Network Technology Co. , Ltd.", "PQTEL-NETWORK" }, { 0x58C41E, 0xD00000, 0xDFFFFF, "Munich Electrification GmbH", "MUNICH-ELECTRIFICATION" }, { 0x58C41E, 0xE00000, 0xEFFFFF, "Beijing Qiangyun Innovation Technology Co.,Ltd", "BEIJING-QIANGYUN-INNOVATION" }, { 0x58E876, 0x000000, 0x0FFFFF, "Zhuhai Raysharp Technology Co.,Ltd", "ZHUHAI-RAYSHARP" }, { 0x58E876, 0x100000, 0x1FFFFF, "Beijing Perabytes IS Technology Co., Ltd", "BEIJING-PERABYTES-IS" }, { 0x58E876, 0x200000, 0x2FFFFF, "Coala Life AB", "COALA-LIFE-AB" }, { 0x58E876, 0x300000, 0x3FFFFF, "McWong International Inc", "MCWONG" }, { 0x58E876, 0x400000, 0x4FFFFF, "PROBIT SRL", "PROBIT-SRL" }, { 0x58E876, 0x500000, 0x5FFFFF, "Broad Air Technology Co., LTD.", "BROAD-AIR" }, { 0x58E876, 0x600000, 0x6FFFFF, "DivioTec Inc.", "DIVIOTEC" }, { 0x58E876, 0x700000, 0x7FFFFF, "Chronos Technology Ltd.", "CHRONOS" }, { 0x58E876, 0x800000, 0x8FFFFF, "Chengdu Vision-Zenith Technology Co.,Ltd", "CHENGDU-VISION-ZENITH" }, { 0x58E876, 0x900000, 0x9FFFFF, "TEM Mobile Limited", "TEM-MOBILE" }, { 0x58E876, 0xA00000, 0xAFFFFF, "SHENZHEN DIGISSIN TECHNOLOGY", "SHENZHEN-DIGISSIN" }, { 0x58E876, 0xB00000, 0xBFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x58E876, 0xC00000, 0xCFFFFF, "KUSTOM SIGNALS INC", "KUSTOM-SIGNALS" }, { 0x58E876, 0xD00000, 0xDFFFFF, "Xiamen Cacamle Technology Co.,Ltd.", "XIAMEN-CACAMLE" }, { 0x58E876, 0xE00000, 0xEFFFFF, "Baoruh Electronic Co., Ltd.", "BAORUH" }, { 0x58FCDB, 0x000000, 0x0FFFFF, "Spang Power Electronics", "SPANG-POWER-ELECTRONICS" }, { 0x58FCDB, 0x100000, 0x1FFFFF, "Certis Technology International", "CERTIS" }, { 0x58FCDB, 0x200000, 0x2FFFFF, "Beseye Cloud Security Co. Ltd.", "BESEYE-CLOUD-SECURITY" }, { 0x58FCDB, 0x300000, 0x3FFFFF, "Custom Biogenic Systems", "CUSTOM-BIOGENIC" }, { 0x58FCDB, 0x400000, 0x4FFFFF, "Inforce Computing Inc.", "INFORCE-COMPUTING" }, { 0x58FCDB, 0x500000, 0x5FFFFF, "Shenzhen Siecom Communication Technology Development Co.,Ltd.", "SHENZHEN-SIECOM-COMMUNICATION-DEVELOPMENT" }, { 0x58FCDB, 0x600000, 0x6FFFFF, "Timex Group USA Inc", "TIMEX-GROUP-USA" }, { 0x58FCDB, 0x700000, 0x7FFFFF, "Prometheus Security Group Global, Inc.", "PROMETHEUS-SECURITY-GROUP-GLOBAL" }, { 0x58FCDB, 0x800000, 0x8FFFFF, "Shanghai Qianjin Electronic Equipment Co. Ltd", "SHANGHAI-QIANJIN-EQUIPMENT" }, { 0x58FCDB, 0x900000, 0x9FFFFF, "Hi-Target Surveying Instrument Co., Ltd.", "HI-TARGET-SURVEYING-INSTRUMENT" }, { 0x58FCDB, 0xA00000, 0xAFFFFF, "Xmodus Systems GmbH", "XMODUS" }, { 0x58FCDB, 0xB00000, 0xBFFFFF, "SWARCO TRAFFIC SYSTEMS GMBH", "SWARCO-TRAFFIC" }, { 0x58FCDB, 0xC00000, 0xCFFFFF, "Excenon Mobile Technology Co., Ltd.", "EXCENON-MOBILE" }, { 0x58FCDB, 0xD00000, 0xDFFFFF, "XIAMEN LEELEN TECHNOLOGY CO.,LTD", "XIAMEN-LEELEN" }, { 0x58FCDB, 0xE00000, 0xEFFFFF, "Applied Device Technologies", "APPLIED-DEVICE-TECHNOLOGIES" }, { 0x58FCDB, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x5C6AEC, 0x000000, 0x0FFFFF, "Acuity Brands Lighting", "ACUITY-BRANDS-LIGHTING" }, { 0x5C6AEC, 0x100000, 0x1FFFFF, "Shanghai Smilembb Technology Co.,LTD", "SHANGHAI-SMILEMBB" }, { 0x5C6AEC, 0x200000, 0x2FFFFF, "Shenzhen Mingyue Technology lnnovation Co.,Ltd", "SHENZHEN-MINGYUE-LNNOVATION" }, { 0x5C6AEC, 0x300000, 0x3FFFFF, "Shanghai Yunsilicon Technology Co., Ltd.", "SHANGHAI-YUNSILICON" }, { 0x5C6AEC, 0x400000, 0x4FFFFF, "GeneTouch Corp.", "GENETOUCH" }, { 0x5C6AEC, 0x500000, 0x5FFFFF, "Exaterra Ltd.", "EXATERRA" }, { 0x5C6AEC, 0x600000, 0x6FFFFF, "FEMTOCELL", "FEMTOCELL" }, { 0x5C6AEC, 0x700000, 0x7FFFFF, "Nippon Pulse Motor Co., Ltd.", "NIPPON-PULSE-MOTOR" }, { 0x5C6AEC, 0x800000, 0x8FFFFF, "Optiver Services B.V.", "OPTIVER-SERVICES-B-V" }, { 0x5C6AEC, 0x900000, 0x9FFFFF, "Shanghai Alway Information Technology Co., Ltd", "SHANGHAI-ALWAY-INFORMATION" }, { 0x5C6AEC, 0xA00000, 0xAFFFFF, "Shenzhen Olax Technology CO.,Ltd", "SHENZHEN-OLAX" }, { 0x5C6AEC, 0xB00000, 0xBFFFFF, "Shenzhen Anked vision Electronics Co.Ltd", "SHENZHEN-ANKED-VISION-ELECTRONICS" }, { 0x5C6AEC, 0xC00000, 0xCFFFFF, "Suzhou Huaqi Intelligent Technology Co., Ltd.", "SUZHOU-HUAQI-INTELLIGENT" }, { 0x5C6AEC, 0xD00000, 0xDFFFFF, "DarkVision Technologies Inc.", "DARKVISION-TECHNOLOGIES" }, { 0x5C6AEC, 0xE00000, 0xEFFFFF, "Saab Seaeye Ltd", "SAAB-SEAEYE" }, { 0x5C857E, 0x000000, 0x0FFFFF, "28 Gorilla", "28-GORILLA" }, { 0x5C857E, 0x100000, 0x1FFFFF, "Sichuan C.H Control Technology Co., Ltd.", "SICHUAN-C-H-CONTROL" }, { 0x5C857E, 0x200000, 0x2FFFFF, "mobilogix HongKong", "MOBILOGIX-HONGKONG" }, { 0x5C857E, 0x300000, 0x3FFFFF, "Cable Matters Inc.", "CABLE-MATTERS" }, { 0x5C857E, 0x400000, 0x4FFFFF, "Shenzhen IP3 Century Intelligent Technology CO.,Ltd", "SHENZHEN-IP3-CENTURY-INTELLIGENT" }, { 0x5C857E, 0x500000, 0x5FFFFF, "Shanghai Yanhe automation technology co.,LTD", "SHANGHAI-YANHE-AUTOMATION" }, { 0x5C857E, 0x600000, 0x6FFFFF, "ProdataKey", "PRODATAKEY" }, { 0x5C857E, 0x700000, 0x7FFFFF, "Beijing HZFD Technology Co., Ltd", "BEIJING-HZFD" }, { 0x5C857E, 0x800000, 0x8FFFFF, "BeiJing Xinsheng Technology Co.,Ltd", "BEIJING-XINSHENG" }, { 0x5C857E, 0x900000, 0x9FFFFF, "Express LUCK Industrial Ltd.", "EXPRESS-LUCK-INDUSTRIAL" }, { 0x5C857E, 0xA00000, 0xAFFFFF, "Zhejiang Jetron Ark Digital Technology Co., Ltd", "ZHEJIANG-JETRON-ARK-DIGITAL" }, { 0x5C857E, 0xB00000, 0xBFFFFF, "HHCC Plant Technology Co., Ltd.", "HHCC-PLANT" }, { 0x5C857E, 0xC00000, 0xCFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x5C857E, 0xD00000, 0xDFFFFF, "Nautech Electronics Ltd", "NAUTECH-ELECTRONICS" }, { 0x5C857E, 0xE00000, 0xEFFFFF, "Guoyi Liangzi (Hefei) Technology Co., Ltd(CIQTEK)", "GUOYI-LIANGZI-HEFEI-CIQTEK" }, { 0x5CF286, 0x000000, 0x0FFFFF, "Hangzhou Signwei Electronics Technology Co., Ltd", "HANGZHOU-SIGNWEI-ELECTRONICS" }, { 0x5CF286, 0x100000, 0x1FFFFF, "iSon Tech", "ISON-TECH" }, { 0x5CF286, 0x200000, 0x2FFFFF, "Shanghai Notion Information Technology CO.,LTD.", "SHANGHAI-NOTION-INFORMATION" }, { 0x5CF286, 0x300000, 0x3FFFFF, "beijing your wonderful control system technology co.,ltd", "BEIJING-YOUR-WONDERFUL-CONTROL-SYSTEM" }, { 0x5CF286, 0x400000, 0x4FFFFF, "CHIPSEN Co.,Ltd.", "CHIPSEN" }, { 0x5CF286, 0x500000, 0x5FFFFF, "EUROIMMUN Medizinische Labordiagnostika AG", "EUROIMMUN-MEDIZINISCHE-LABORDIAGNOSTIKA" }, { 0x5CF286, 0x600000, 0x6FFFFF, "VPInstruments", "VPINSTRUMENTS" }, { 0x5CF286, 0x700000, 0x7FFFFF, "Access IS", "ACCESS-IS" }, { 0x5CF286, 0x800000, 0x8FFFFF, "SHENZHEN HIVT TECHNOLOGY CO.,LTD", "SHENZHEN-HIVT" }, { 0x5CF286, 0x900000, 0x9FFFFF, "Shenzhen VST Automotive Electronics Co., LTD", "SHENZHEN-VST-AUTOMOTIVE-ELECTRONICS" }, { 0x5CF286, 0xA00000, 0xAFFFFF, "Unfors Raysafe AB", "UNFORS-RAYSAFE-AB" }, { 0x5CF286, 0xB00000, 0xBFFFFF, "Itron UK Limited", "ITRON-UK" }, { 0x5CF286, 0xC00000, 0xCFFFFF, "Sunpet Industries Limited", "SUNPET-INDUSTRIES" }, { 0x5CF286, 0xD00000, 0xDFFFFF, "BrightSky, LLC", "BRIGHTSKY" }, { 0x5CF286, 0xE00000, 0xEFFFFF, "Daisen Electronic Industrial Co., Ltd.", "DAISEN-INDUSTRIAL" }, { 0x601592, 0x000000, 0x0FFFFF, "S Labs sp. z o.o.", "S-LABS-SP-Z-O-O" }, { 0x601592, 0x100000, 0x1FFFFF, "RTDS Technologies Inc.", "RTDS-TECHNOLOGIES" }, { 0x601592, 0x200000, 0x2FFFFF, "EDA Technology Co.,LTD", "EDA" }, { 0x601592, 0x300000, 0x3FFFFF, "OSI TECHNOLOGY CO.,LTD.", "OSI" }, { 0x601592, 0x400000, 0x4FFFFF, "Zaptec", "ZAPTEC" }, { 0x601592, 0x500000, 0x5FFFFF, "Comfit HealthCare Devices Limited", "COMFIT-HEALTHCARE-DEVICES" }, { 0x601592, 0x600000, 0x6FFFFF, "BEIJING KUANGSHI TECHNOLOGY CO., LTD", "BEIJING-KUANGSHI" }, { 0x601592, 0x700000, 0x7FFFFF, "Unipi Technology s.r.o.", "UNIPI-S-R-O" }, { 0x601592, 0x800000, 0x8FFFFF, "Yangzhou Wanfang Electronic Technology,CO .,Ltd.", "YANGZHOU-WANFANG" }, { 0x601592, 0x900000, 0x9FFFFF, "JIANGSU SUNFY TECHNOLOGIES HOLDING CO.,LTD.", "JIANGSU-SUNFY-TECHNOLOGIES-HOLDING" }, { 0x601592, 0xA00000, 0xAFFFFF, "insensiv GmbH", "INSENSIV" }, { 0x601592, 0xB00000, 0xBFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x601592, 0xC00000, 0xCFFFFF, "PSS Co., Ltd", "PSS" }, { 0x601592, 0xD00000, 0xDFFFFF, "REMOWIRELESS COMMUNICATION INTERNATIONAL CO.,LIMITED", "REMOWIRELESS-COMMUNICATION" }, { 0x601592, 0xE00000, 0xEFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x6095CE, 0x000000, 0x0FFFFF, "Siema Applications", "SIEMA-APPLICATIONS" }, { 0x6095CE, 0x100000, 0x1FFFFF, "Ponoor Experiments Inc.", "PONOOR-EXPERIMENTS" }, { 0x6095CE, 0x200000, 0x2FFFFF, "Q-SENTECH Co.,Ltd.", "Q-SENTECH" }, { 0x6095CE, 0x300000, 0x3FFFFF, "Robot S.A.", "ROBOT" }, { 0x6095CE, 0x400000, 0x4FFFFF, "Untangle, Inc.", "UNTANGLE" }, { 0x6095CE, 0x500000, 0x5FFFFF, "AdvanWISE Corporation", "ADVANWISE" }, { 0x6095CE, 0x600000, 0x6FFFFF, "Xiamen Sigmastar Technology Ltd.", "XIAMEN-SIGMASTAR" }, { 0x6095CE, 0x700000, 0x7FFFFF, "Cadmo Soluciones SAC", "CADMO-SOLUCIONES-SAC" }, { 0x6095CE, 0x800000, 0x8FFFFF, "Trophy SAS", "TROPHY-SAS" }, { 0x6095CE, 0x900000, 0x9FFFFF, "Jlztlink Industry(ShenZhen)Co.,Ltd.", "JLZTLINK-INDUSTRY-SHENZHEN" }, { 0x6095CE, 0xA00000, 0xAFFFFF, "(UN)MANNED", "UN-MANNED" }, { 0x6095CE, 0xB00000, 0xBFFFFF, "Beijing Sinomedisite Bio-tech Co.,Ltd", "BEIJING-SINOMEDISITE-BIO-TECH" }, { 0x6095CE, 0xC00000, 0xCFFFFF, "Synamedia", "SYNAMEDIA" }, { 0x6095CE, 0xD00000, 0xDFFFFF, "GovComm", "GOVCOMM" }, { 0x6095CE, 0xE00000, 0xEFFFFF, "VNS Inc.", "VNS" }, { 0x60D7E3, 0x000000, 0x0FFFFF, "Avalun", "AVALUN" }, { 0x60D7E3, 0x100000, 0x1FFFFF, "Elap s.r.l.", "ELAP" }, { 0x60D7E3, 0x200000, 0x2FFFFF, "Novo innovations Ltd", "NOVO-INNOVATIONS" }, { 0x60D7E3, 0x300000, 0x3FFFFF, "SKS Automaatio oy", "SKS-AUTOMAATIO-OY" }, { 0x60D7E3, 0x400000, 0x4FFFFF, "Hemisphere GNSS", "HEMISPHERE-GNSS" }, { 0x60D7E3, 0x500000, 0x5FFFFF, "Revol Technologies inc", "REVOL-TECHNOLOGIES" }, { 0x60D7E3, 0x600000, 0x6FFFFF, "Ameli s.r.l.", "AMELI" }, { 0x60D7E3, 0x700000, 0x7FFFFF, "Phase One A/S", "PHASE-ONE-A/S" }, { 0x60D7E3, 0x800000, 0x8FFFFF, "HindlePower, Inc", "HINDLEPOWER" }, { 0x60D7E3, 0x900000, 0x9FFFFF, "LongSung Technology (Shanghai) Co.,Ltd.", "LONGSUNG-SHANGHAI" }, { 0x60D7E3, 0xA00000, 0xAFFFFF, "Wilderness Labs Inc.", "WILDERNESS-LABS" }, { 0x60D7E3, 0xB00000, 0xBFFFFF, "Nextivity", "NEXTIVITY" }, { 0x60D7E3, 0xC00000, 0xCFFFFF, "Zhejiang Send Intelligent Technology,Ltd", "ZHEJIANG-SEND-INTELLIGENT" }, { 0x60D7E3, 0xD00000, 0xDFFFFF, "Quantronix, Inc.", "QUANTRONIX" }, { 0x60D7E3, 0xE00000, 0xEFFFFF, "HuBDIC CO.,LTD", "HUBDIC" }, { 0x643139, 0x000000, 0x0FFFFF, "SHENZHEN EMEET INTELLIGENT TECHNOLOGY CO., LTD.", "SHENZHEN-EMEET-INTELLIGENT" }, { 0x643139, 0x100000, 0x1FFFFF, "Livongo Health", "LIVONGO-HEALTH" }, { 0x643139, 0x200000, 0x2FFFFF, "Smartplus Inc.", "SMARTPLUS" }, { 0x643139, 0x300000, 0x3FFFFF, "KOANGYOW INTEGRATION MACHINE CO., LTD.", "KOANGYOW-INTEGRATION-MACHINE" }, { 0x643139, 0x400000, 0x4FFFFF, "Active Brains", "ACTIVE-BRAINS" }, { 0x643139, 0x500000, 0x5FFFFF, "Shenzhen He&e Technology Co.,Ltd.", "SHENZHEN-HE-E" }, { 0x643139, 0x600000, 0x6FFFFF, "Hunan Voc Acoustics Technology Co., Ltd.", "HUNAN-VOC-ACOUSTICS" }, { 0x643139, 0x700000, 0x7FFFFF, "Dongguan Huili electroacoustic Industrial Co.,ltd", "DONGGUAN-HUILI-ELECTROACOUSTIC-INDUSTRIAL" }, { 0x643139, 0x800000, 0x8FFFFF, "Shenzhen Huanyin Electronics Ltd.", "SHENZHEN-HUANYIN-ELECTRONICS" }, { 0x643139, 0x900000, 0x9FFFFF, "Honeywell Analytics Ltd", "HONEYWELL-ANALYTICS" }, { 0x643139, 0xA00000, 0xAFFFFF, "Product Development Associates, Inc.", "PRODUCT-DEVELOPMENT-ASSOCIATES" }, { 0x643139, 0xB00000, 0xBFFFFF, "Alphago GmbH", "ALPHAGO" }, { 0x643139, 0xC00000, 0xCFFFFF, "SHEN ZHEN FUCHANG TECHNOLOGY Co.,Ltd.", "SHEN-ZHEN-FUCHANG" }, { 0x643139, 0xD00000, 0xDFFFFF, "ZHEJIANG MOORGEN INTELLIGENT TECHNOLOGY CO.,LTD", "ZHEJIANG-MOORGEN-INTELLIGENT" }, { 0x643139, 0xE00000, 0xEFFFFF, "ATG UV Technology", "ATG-UV" }, { 0x6433B5, 0x000000, 0x0FFFFF, "Duomondi International Development Co., Ltd.", "DUOMONDI-DEVELOPMENT" }, { 0x6433B5, 0x100000, 0x1FFFFF, "Huaqin Telecom Technology Co.,Ltd.", "HUAQIN-TELECOM" }, { 0x6433B5, 0x200000, 0x2FFFFF, "Adesso, Inc", "ADESSO" }, { 0x6433B5, 0x300000, 0x3FFFFF, "Wingtech Mobile Communications Co.,Ltd", "WINGTECH-MOBILE-COMMUNICATION" }, { 0x6433B5, 0x400000, 0x4FFFFF, "Eagle Eye Networks, Inc", "EAGLE-EYE-NETWORKS" }, { 0x6433B5, 0x500000, 0x5FFFFF, "Revo Smart Technologies co.,limited", "REVO-SMART-TECHNOLOGIES" }, { 0x6433B5, 0x600000, 0x6FFFFF, "MICROIT SRL", "MICROIT-SRL" }, { 0x6433B5, 0x700000, 0x7FFFFF, "ABB Electrification Smart Power (ELSP)", "ABB-ELECTRIFICATION-SMART-POWER-ELSP" }, { 0x6433B5, 0x800000, 0x8FFFFF, "LACO Technologies", "LACO-TECHNOLOGIES" }, { 0x6433B5, 0x900000, 0x9FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x6433B5, 0xA00000, 0xAFFFFF, "Hometek Eletronics Co., Ltd", "HOMETEK-ELETRONICS" }, { 0x6433B5, 0xB00000, 0xBFFFFF, "electroCore Inc.", "ELECTROCORE" }, { 0x6433B5, 0xC00000, 0xCFFFFF, "Geksacon", "GEKSACON" }, { 0x6433B5, 0xD00000, 0xDFFFFF, "IIYAMA CORPORATION", "IIYAMA" }, { 0x6433B5, 0xE00000, 0xEFFFFF, "University of Texas at Austin", "UNIVERSITY-OF-TEXAS-AT-AUSTIN" }, { 0x646266, 0x000000, 0x0FFFFF, "MiiVii Dynamics Technology CO.,LTD", "MIIVII-DYNAMICS" }, { 0x646266, 0x100000, 0x1FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x646266, 0x200000, 0x2FFFFF, "Protectli", "PROTECTLI" }, { 0x646266, 0x300000, 0x3FFFFF, "FaceHeart Inc.", "FACEHEART" }, { 0x646266, 0x400000, 0x4FFFFF, "Redstone Systems, Inc.", "REDSTONE" }, { 0x646266, 0x500000, 0x5FFFFF, "Bühler AG", "BUEHLER" }, { 0x646266, 0x600000, 0x6FFFFF, "Pass & Seymour, Inc d/b/a Legrand", "PASS-SEYMOUR-D/B/A-LEGRAND" }, { 0x646266, 0x700000, 0x7FFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0x646266, 0x800000, 0x8FFFFF, "Leontech Limited", "LEONTECH" }, { 0x646266, 0x900000, 0x9FFFFF, "Chunghwa System Integration Co., Ltd.", "CHUNGHWA-SYSTEM-INTEGRATION" }, { 0x646266, 0xA00000, 0xAFFFFF, "Sensoro Co., Ltd.", "SENSORO" }, { 0x646266, 0xB00000, 0xBFFFFF, "Signal Hound", "SIGNAL-HOUND" }, { 0x646266, 0xC00000, 0xCFFFFF, "Jiangsu Aisida Electronic Co.,Ltd", "JIANGSU-AISIDA" }, { 0x646266, 0xD00000, 0xDFFFFF, "Kobol Innovations Pte. Ltd.", "KOBOL-INNOVATIONS-PTE" }, { 0x646266, 0xE00000, 0xEFFFFF, "Shenzhen Jie Shi Lian Industrial Co., LTD", "SHENZHEN-JIE-SHI-LIAN-INDUSTRIAL" }, { 0x64FB81, 0x000000, 0x0FFFFF, "SHANGHAI SIMCOM LIMITED", "SHANGHAI-SIMCOM" }, { 0x64FB81, 0x100000, 0x1FFFFF, "Narrative AB", "NARRATIVE-AB" }, { 0x64FB81, 0x200000, 0x2FFFFF, "Seven Solutions S.L", "SEVEN-SOLUTIONS" }, { 0x64FB81, 0x300000, 0x3FFFFF, "MOBILUS Inc.", "MOBILUS" }, { 0x64FB81, 0x400000, 0x4FFFFF, "Pricer AB", "PRICER-AB" }, { 0x64FB81, 0x500000, 0x5FFFFF, "Kay Schulze & Karsten Pohle GbR", "KAY-SCHULZE-KARSTEN-POHLE-GBR" }, { 0x64FB81, 0x600000, 0x6FFFFF, "XIMO Communication Technology Co., Ltd", "XIMO-COMMUNICATION" }, { 0x64FB81, 0x700000, 0x7FFFFF, "Securosys SA", "SECUROSYS" }, { 0x64FB81, 0x800000, 0x8FFFFF, "NPG Technology S.A.", "NPG" }, { 0x64FB81, 0x900000, 0x9FFFFF, "hiQview Corporation", "HIQVIEW" }, { 0x64FB81, 0xA00000, 0xAFFFFF, "Bronkhorst High-Tech BV", "BRONKHORST-HIGH-TECH" }, { 0x64FB81, 0xB00000, 0xBFFFFF, "Sichuan Haige Actec Communication Technology Co.,Ltd.", "SICHUAN-HAIGE-ACTEC-COMMUNICATION" }, { 0x64FB81, 0xC00000, 0xCFFFFF, "Bridgeport Instruments, LLC", "BRIDGEPORT-INSTRUMENTS" }, { 0x64FB81, 0xD00000, 0xDFFFFF, "Dongyang unitech.co.ltd", "DONGYANG-UNITECH" }, { 0x64FB81, 0xE00000, 0xEFFFFF, "ChengDu KeChuang LongXin Sci-tech Co.,Ltd", "CHENGDU-KECHUANG-LONGXIN-SCI-TECH" }, { 0x64FB81, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x687912, 0x000000, 0x0FFFFF, "PCTEL, Inc.", "PCTEL" }, { 0x687912, 0x100000, 0x1FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x687912, 0x200000, 0x2FFFFF, "CNDI CO.,LTD", "CNDI" }, { 0x687912, 0x300000, 0x3FFFFF, "Stephan Electronics SARL", "STEPHAN-ELECTRONICS-SARL" }, { 0x687912, 0x400000, 0x4FFFFF, "McDonald's Corporation", "MCDONALD-S" }, { 0x687912, 0x500000, 0x5FFFFF, "Copper Labs, Inc.", "COPPER-LABS" }, { 0x687912, 0x600000, 0x6FFFFF, "APPOTRONICS CO., LTD", "APPOTRONICS" }, { 0x687912, 0x700000, 0x7FFFFF, "Babbit and Friends, SIA", "BABBIT-AND-FRIENDS-SIA" }, { 0x687912, 0x800000, 0x8FFFFF, "ShangHai Aigentoo Information Technology Co., Ltd", "SHANGHAI-AIGENTOO-INFORMATION" }, { 0x687912, 0x900000, 0x9FFFFF, "LEAPS s.r.o.", "LEAPS-S-R-O" }, { 0x687912, 0xA00000, 0xAFFFFF, "Wingtech Mobile Communications Co., Ltd.", "WINGTECH-MOBILE-COMMUNICATION" }, { 0x687912, 0xB00000, 0xBFFFFF, "Swisscom Broadcast Ltd", "SWISSCOM-BROADCAST" }, { 0x687912, 0xC00000, 0xCFFFFF, "Globus Infocom Limited", "GLOBUS-INFOCOM" }, { 0x687912, 0xD00000, 0xDFFFFF, "Neurolab", "NEUROLAB" }, { 0x687912, 0xE00000, 0xEFFFFF, "Ametek Solidstate Controls", "AMETEK-SOLIDSTATE-CONTROLS" }, { 0x6891D0, 0x000000, 0x0FFFFF, "Central Railway Manufacturing", "CENTRAL-RAILWAY-MANUFACTURING" }, { 0x6891D0, 0x100000, 0x1FFFFF, "Multi Alarm Zrt.", "MULTI-ALARM-ZRT" }, { 0x6891D0, 0x200000, 0x2FFFFF, "Shenzhen NeaTech Intelligence Technology Co., Ltd.", "SHENZHEN-NEATECH-INTELLIGENCE" }, { 0x6891D0, 0x300000, 0x3FFFFF, "Ambitio LLC", "AMBITIO" }, { 0x6891D0, 0x400000, 0x4FFFFF, "G-TECH Instruments Inc.", "G-TECH-INSTRUMENTS" }, { 0x6891D0, 0x500000, 0x5FFFFF, "NIPK Electron Co.", "NIPK-ELECTRON" }, { 0x6891D0, 0x600000, 0x6FFFFF, "femrice", "FEMRICE" }, { 0x6891D0, 0x700000, 0x7FFFFF, "Omniimpex GmbH", "OMNIIMPEX" }, { 0x6891D0, 0x800000, 0x8FFFFF, "solvimus GmbH", "SOLVIMUS" }, { 0x6891D0, 0x900000, 0x9FFFFF, "QUANTEX", "QUANTEX" }, { 0x6891D0, 0xA00000, 0xAFFFFF, "WiseCube", "WISECUBE" }, { 0x6891D0, 0xB00000, 0xBFFFFF, "Altis Technology", "ALTIS" }, { 0x6891D0, 0xC00000, 0xCFFFFF, "Spraying Systems Co.", "SPRAYING" }, { 0x6891D0, 0xD00000, 0xDFFFFF, "Fuzhou x-speed information technology Co.,Ltd.", "FUZHOU-X-SPEED-INFORMATION" }, { 0x6891D0, 0xE00000, 0xEFFFFF, "Outstanding Technology Co., Ltd.", "OUTSTANDING" }, { 0x68DA73, 0x000000, 0x0FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x68DA73, 0x100000, 0x1FFFFF, "DTEN Inc.", "DTEN" }, { 0x68DA73, 0x200000, 0x2FFFFF, "SHENZHEN ALLDOCUBE SCIENCE AND TECHNOLOGY CO., LTD.", "SHENZHEN-ALLDOCUBE-SCIENCE" }, { 0x68DA73, 0x300000, 0x3FFFFF, "Softronics Ltd", "SOFTRONICS" }, { 0x68DA73, 0x400000, 0x4FFFFF, "Agramkow A/S", "AGRAMKOW-A/S" }, { 0x68DA73, 0x500000, 0x5FFFFF, "Shenzhen Xin hang xian Electronics Co., LTD", "SHENZHEN-XIN-HANG-XIAN-ELECTRONICS" }, { 0x68DA73, 0x600000, 0x6FFFFF, "Global Networks ZEN-EI Co., Ltd", "GLOBAL-NETWORKS-ZEN-EI" }, { 0x68DA73, 0x700000, 0x7FFFFF, "Haven Lighting", "HAVEN-LIGHTING" }, { 0x68DA73, 0x800000, 0x8FFFFF, "STEL FIBER ELECTRONICS INDIA PRIVATE LIMITED", "STEL-FIBER-ELECTRONICS-INDIA-PRIVATE" }, { 0x68DA73, 0x900000, 0x9FFFFF, "Nadex Machinery(Shanghai) Co.,Ltd", "NADEX-MACHINERY-SHANGHAI" }, { 0x68DA73, 0xA00000, 0xAFFFFF, "Shenzhen Haiyingzhilian Industrial Co., Ltd.", "SHENZHEN-HAIYINGZHILIAN-INDUSTRIAL" }, { 0x68DA73, 0xB00000, 0xBFFFFF, "Gamber-Johnson LLC", "GAMBER-JOHNSON" }, { 0x68DA73, 0xC00000, 0xCFFFFF, "Delta Surge Inc.", "DELTA-SURGE" }, { 0x68DA73, 0xD00000, 0xDFFFFF, "Sichuan GFS Information Technology Co.Ltd", "SICHUAN-GFS-INFORMATION" }, { 0x68DA73, 0xE00000, 0xEFFFFF, "Synamedia", "SYNAMEDIA" }, { 0x6C1524, 0x000000, 0x0FFFFF, "DEFA AS", "DEFA-AS" }, { 0x6C1524, 0x100000, 0x1FFFFF, "Telsonic AG", "TELSONIC" }, { 0x6C1524, 0x200000, 0x2FFFFF, "Linkplay", "LINKPLAY" }, { 0x6C1524, 0x300000, 0x3FFFFF, "Forcite Helmet Systems Pty Ltd", "FORCITE-HELMET-PTY" }, { 0x6C1524, 0x400000, 0x4FFFFF, "Magicyo Technology CO., LTD.", "MAGICYO" }, { 0x6C1524, 0x500000, 0x5FFFFF, "Shenzhen Electron Technology Co., LTD.", "SHENZHEN-ELECTRON" }, { 0x6C1524, 0x600000, 0x6FFFFF, "Kunshan Abram Software Technology Co.,Ltd.", "KUNSHAN-ABRAM-SOFTWARE" }, { 0x6C1524, 0x700000, 0x7FFFFF, "Motium Pty Ltd", "MOTIUM-PTY" }, { 0x6C1524, 0x800000, 0x8FFFFF, "ShenZhen Chainway Information Technology Co., Ltd.", "SHENZHEN-CHAINWAY-INFORMATION" }, { 0x6C1524, 0x900000, 0x9FFFFF, "D-HOME SMAART", "D-HOME-SMAART" }, { 0x6C1524, 0xA00000, 0xAFFFFF, "STERIS", "STERIS" }, { 0x6C1524, 0xB00000, 0xBFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x6C1524, 0xC00000, 0xCFFFFF, "CORAL-TAIYI", "CORAL-TAIYI" }, { 0x6C1524, 0xD00000, 0xDFFFFF, "SYMLINK CORPORATION", "SYMLINK" }, { 0x6C1524, 0xE00000, 0xEFFFFF, "AEC s.r.l.", "AEC" }, { 0x6C2ADF, 0x000000, 0x0FFFFF, "Ademco Inc. dba ADI Global Distribution", "ADEMCO-DBA-ADI-GLOBAL-DISTRIBUTION" }, { 0x6C2ADF, 0x100000, 0x1FFFFF, "Xi'an Xindian Equipment Engineering Center Co., Ltd", "XI-AN-XINDIAN-EQUIPMENT-ENGINEERING-CENTER" }, { 0x6C2ADF, 0x200000, 0x2FFFFF, "DAIKO ELECTRIC CO.,LTD", "DAIKO-ELECTRIC" }, { 0x6C2ADF, 0x300000, 0x3FFFFF, "Johnson Controls IR, Sabroe Controls", "JOHNSON-CONTROLS-IR-SABROE-CONTROLS" }, { 0x6C2ADF, 0x400000, 0x4FFFFF, "Zhejiang Eternal Automation Sci-Tec Co., Ltd", "ZHEJIANG-ETERNAL-AUTOMATION-SCI-TEC" }, { 0x6C2ADF, 0x500000, 0x5FFFFF, "Xinjiang Ying Sheng Information Technology Co., Ltd.", "XINJIANG-YING-SHENG-INFORMATION" }, { 0x6C2ADF, 0x600000, 0x6FFFFF, "ITI Limited", "ITI" }, { 0x6C2ADF, 0x700000, 0x7FFFFF, "RootV", "ROOTV" }, { 0x6C2ADF, 0x800000, 0x8FFFFF, "Beijing Yisheng Chuanqi Technology Co., Ltd.", "BEIJING-YISHENG-CHUANQI" }, { 0x6C2ADF, 0x900000, 0x9FFFFF, "Simpleway Europe a.s.", "SIMPLEWAY-EUROPE" }, { 0x6C2ADF, 0xA00000, 0xAFFFFF, "JBF", "JBF" }, { 0x6C2ADF, 0xB00000, 0xBFFFFF, "MOBA Mobile Automation AG", "MOBA-MOBILE-AUTOMATION" }, { 0x6C2ADF, 0xC00000, 0xCFFFFF, "VNETS INFORMATION TECHNOLOGY LTD.", "VNETS-INFORMATION" }, { 0x6C2ADF, 0xD00000, 0xDFFFFF, "Sichuan Huidian Qiming Intelligent Technology Co.,Ltd", "SICHUAN-HUIDIAN-QIMING-INTELLIGENT" }, { 0x6C2ADF, 0xE00000, 0xEFFFFF, "WeatherFlow-Tempest, Inc", "WEATHERFLOW-TEMPEST" }, { 0x6C5C3D, 0x000000, 0x0FFFFF, "ShenZhen Hugsun Technology Co.,Ltd.", "SHENZHEN-HUGSUN" }, { 0x6C5C3D, 0x100000, 0x1FFFFF, "Shenzhen Justek Technology Co., Ltd", "SHENZHEN-JUSTEK" }, { 0x6C5C3D, 0x200000, 0x2FFFFF, "Vertiv Industrial Systems", "VERTIV-INDUSTRIAL" }, { 0x6C5C3D, 0x300000, 0x3FFFFF, "KWONG MING ELECTRICAL MANUFACTORY LIMITED", "KWONG-MING-ELECTRICAL-MANUFACTORY" }, { 0x6C5C3D, 0x400000, 0x4FFFFF, "HTI Co., LTD.", "HTI" }, { 0x6C5C3D, 0x500000, 0x5FFFFF, "Unitel Engineering", "UNITEL-ENGINEERING" }, { 0x6C5C3D, 0x600000, 0x6FFFFF, "Hangzhou Netease Yanxuan Trading Co.,Ltd", "HANGZHOU-NETEASE-YANXUAN-TRADING" }, { 0x6C5C3D, 0x700000, 0x7FFFFF, "SOUNDKING ELECTRONICS&SOUND CO., LTD.", "SOUNDKING-ELECTRONICS-SOUND" }, { 0x6C5C3D, 0x800000, 0x8FFFFF, "GUANGZHOU GUANGRI ELEVATOR INDUSTRY CO.,LTD", "GUANGZHOU-GUANGRI-ELEVATOR-INDUSTRY" }, { 0x6C5C3D, 0x900000, 0x9FFFFF, "IskraUralTEL", "ISKRAURALTEL" }, { 0x6C5C3D, 0xA00000, 0xAFFFFF, "krtkl inc.", "KRTKL" }, { 0x6C5C3D, 0xB00000, 0xBFFFFF, "Reconova Technologies", "RECONOVA-TECHNOLOGIES" }, { 0x6C5C3D, 0xC00000, 0xCFFFFF, "choyang powertech", "CHOYANG-POWERTECH" }, { 0x6C5C3D, 0xD00000, 0xDFFFFF, "Syowatsusinkougyo Co.,Ltd.", "SYOWATSUSINKOUGYO" }, { 0x6C5C3D, 0xE00000, 0xEFFFFF, "Clinton Electronics Corporation", "CLINTON-ELECTRONICS" }, { 0x6C9308, 0x000000, 0x0FFFFF, "Braums", "BRAUMS" }, { 0x6C9308, 0x100000, 0x1FFFFF, "WATERFORD CONSULTANTS LLC", "WATERFORD-CONSULTANTS" }, { 0x6C9308, 0x200000, 0x2FFFFF, "ZHEJIANG XIAN DA Environmental Technology Co., Ltd", "ZHEJIANG-XIAN-DA-ENVIRONMENTAL" }, { 0x6C9308, 0x300000, 0x3FFFFF, "LightnTec GmbH", "LIGHTNTEC" }, { 0x6C9308, 0x400000, 0x4FFFFF, "Estelar s.r.o", "ESTELAR-S-R-O" }, { 0x6C9308, 0x500000, 0x5FFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0x6C9308, 0x600000, 0x6FFFFF, "Uconfree technology(shenzhen)limited", "UCONFREE-SHENZHEN" }, { 0x6C9308, 0x700000, 0x7FFFFF, "Liberty AV Solutions", "LIBERTY-AV-SOLUTIONS" }, { 0x6C9308, 0x800000, 0x8FFFFF, "Hangzhou Risco System Co.,Ltd", "HANGZHOU-RISCO-SYSTEM" }, { 0x6C9308, 0x900000, 0x9FFFFF, "Shenzhen DOOGEE Hengtong Technology CO., LTD", "SHENZHEN-DOOGEE-HENGTONG" }, { 0x6C9308, 0xA00000, 0xAFFFFF, "Shenzhen TOPWAY Technology Co.,LTD", "SHENZHEN-TOPWAY" }, { 0x6C9308, 0xB00000, 0xBFFFFF, "Shenzhen EZpro Sound & Light Technology Co., Ltd.", "SHENZHEN-EZPRO-SOUND-LIGHT" }, { 0x6C9308, 0xC00000, 0xCFFFFF, "Shenzhen haichangxing Technology Co., Ltd.", "SHENZHEN-HAICHANGXING" }, { 0x6C9308, 0xD00000, 0xDFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x6C9308, 0xE00000, 0xEFFFFF, "ANDDORO LLC", "ANDDORO" }, { 0x6CDFFB, 0x000000, 0x0FFFFF, "Shenzhen HDCVT Technology", "SHENZHEN-HDCVT" }, { 0x6CDFFB, 0x100000, 0x1FFFFF, "Chongqing Baoli Yota Technologies Limited", "CHONGQING-BAOLI-YOTA-TECHNOLOGIES" }, { 0x6CDFFB, 0x200000, 0x2FFFFF, "Sercomm Corporation.", "SERCOMM" }, { 0x6CDFFB, 0x300000, 0x3FFFFF, "Beijing Ainemo Co Ltd", "BEIJING-AINEMO" }, { 0x6CDFFB, 0x400000, 0x4FFFFF, "Lineable Inc", "LINEABLE" }, { 0x6CDFFB, 0x500000, 0x5FFFFF, "Greenbird Vertriebs GmbH", "GREENBIRD-VERTRIEBS" }, { 0x6CDFFB, 0x600000, 0x6FFFFF, "AAON", "AAON" }, { 0x6CDFFB, 0x700000, 0x7FFFFF, "Hashtrend AG", "HASHTREND" }, { 0x6CDFFB, 0x800000, 0x8FFFFF, "Hardmeier", "HARDMEIER" }, { 0x6CDFFB, 0x900000, 0x9FFFFF, "YongTechs Electric Co. Ltd", "YONGTECHS-ELECTRIC" }, { 0x6CDFFB, 0xA00000, 0xAFFFFF, "Guilin Zhishen Information TechonlogyCO.,Ltd", "GUILIN-ZHISHEN-INFORMATION-TECHONLOGYCO" }, { 0x6CDFFB, 0xB00000, 0xBFFFFF, "CELL System Co.,Ltd.", "CELL-SYSTEM" }, { 0x6CDFFB, 0xC00000, 0xCFFFFF, "Toucan Systems Ltd", "TOUCAN" }, { 0x6CDFFB, 0xD00000, 0xDFFFFF, "Nanjing Buruike Electronics Technology Co., Ltd.", "NANJING-BURUIKE-ELECTRONICS" }, { 0x6CDFFB, 0xE00000, 0xEFFFFF, "Beijing Fimi Technology Co., Ltd.", "BEIJING-FIMI" }, { 0x700692, 0x000000, 0x0FFFFF, "Techology, LLC", "TECHOLOGY" }, { 0x700692, 0x100000, 0x1FFFFF, "Beijing Fortech Microsystems., Co., Ltd.", "BEIJING-FORTECH-MICROSYSTEMS" }, { 0x700692, 0x200000, 0x2FFFFF, "Scud (Fujian) Electronics Co.,Ltd", "SCUD-FUJIAN-ELECTRONICS" }, { 0x700692, 0x300000, 0x3FFFFF, "BOSSCCTV CO., LTD", "BOSSCCTV" }, { 0x700692, 0x400000, 0x4FFFFF, "Fusiostor Technologies Private Limited", "FUSIOSTOR-TECHNOLOGIES-PRIVATE" }, { 0x700692, 0x500000, 0x5FFFFF, "CANAAN CREATIVE CO.,LTD.", "CANAAN-CREATIVE" }, { 0x700692, 0x600000, 0x6FFFFF, "Hangzhou Clounix Technology Limited", "HANGZHOU-CLOUNIX" }, { 0x700692, 0x700000, 0x7FFFFF, "DCNET SOLUTIONS INDIA PVT LTD", "DCNET-SOLUTIONS-INDIA-PVT" }, { 0x700692, 0x800000, 0x8FFFFF, "JMA Wireless", "JMA-WIRELESS" }, { 0x700692, 0x900000, 0x9FFFFF, "Shenzhen Lingwei Technology Co., Ltd", "SHENZHEN-LINGWEI" }, { 0x700692, 0xA00000, 0xAFFFFF, "Munters", "MUNTERS" }, { 0x700692, 0xB00000, 0xBFFFFF, "SWIT Electronics Co.,Ltd", "SWIT-ELECTRONICS" }, { 0x700692, 0xC00000, 0xCFFFFF, "ScoreBird, LLC", "SCOREBIRD" }, { 0x700692, 0xD00000, 0xDFFFFF, "Skyware Protech Limited", "SKYWARE-PROTECH" }, { 0x700692, 0xE00000, 0xEFFFFF, "Ganghsan Guanglian", "GANGHSAN-GUANGLIAN" }, { 0x7050E7, 0x000000, 0x0FFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0x7050E7, 0x100000, 0x1FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x7050E7, 0x200000, 0x2FFFFF, "Electronic's Time SRL", "S-TIME-SRL" }, { 0x7050E7, 0x300000, 0x3FFFFF, "Skychers Creations ShenZhen Limited", "SKYCHERS-CREATIONS-SHENZHEN" }, { 0x7050E7, 0x400000, 0x4FFFFF, "Quantumdoor Technologies, Inc.", "QUANTUMDOOR-TECHNOLOGIES" }, { 0x7050E7, 0x500000, 0x5FFFFF, "Wall Box Chargers, S.L.", "WALL-BOX-CHARGERS" }, { 0x7050E7, 0x600000, 0x6FFFFF, "Nippon Pulse America, Inc.", "NIPPON-PULSE-AMERICA" }, { 0x7050E7, 0x700000, 0x7FFFFF, "Yoctopuce", "YOCTOPUCE" }, { 0x7050E7, 0x800000, 0x8FFFFF, "Shenzhen Dangs Science and Technology CO.,Ltd.", "SHENZHEN-DANGS-SCIENCE" }, { 0x7050E7, 0x900000, 0x9FFFFF, "Elastics.cloud", "ELASTICS-CLOUD" }, { 0x7050E7, 0xA00000, 0xAFFFFF, "Guangzhou Tianhe High Tech Industrial Development Zone Zhongsheng Electrical Limited Company", "GUANGZHOU-TIANHE-HIGH-TECH-INDUSTRIAL-DEVELOPMENT-ZONE-ZHONGSHENG-ELECTRICAL-COMPANY" }, { 0x7050E7, 0xB00000, 0xBFFFFF, "Beijing Shannoncyber Technology Co.,Ltd", "BEIJING-SHANNONCYBER" }, { 0x7050E7, 0xC00000, 0xCFFFFF, "shenzhen newbridge communication equipment CO.,LTD", "SHENZHEN-NEWBRIDGE-COMMUNICATION-EQUIPMENT" }, { 0x7050E7, 0xD00000, 0xDFFFFF, "Eta Compute Inc.", "ETA-COMPUTE" }, { 0x7050E7, 0xE00000, 0xEFFFFF, "KFBIO (KONFOONG BIOINFORMATION TECH CO.,LTD)", "KFBIO-KONFOONG-BIOINFORMATION-TECH" }, { 0x705A6F, 0x000000, 0x0FFFFF, "Thyracont Vacuum Instruments GmbH", "THYRACONT-VACUUM-INSTRUMENTS" }, { 0x705A6F, 0x100000, 0x1FFFFF, "BMR s.r.o.", "BMR-S-R-O" }, { 0x705A6F, 0x200000, 0x2FFFFF, "Tyromotion GmbH", "TYROMOTION" }, { 0x705A6F, 0x300000, 0x3FFFFF, "Wavelab Telecom Equipment (GZ) Ltd.", "WAVELAB-TELECOM-EQUIPMENT-GZ" }, { 0x705A6F, 0x400000, 0x4FFFFF, "Vaiotik Co., Ltd", "VAIOTIK" }, { 0x705A6F, 0x500000, 0x5FFFFF, "Acer Connect", "ACER-CONNECT" }, { 0x705A6F, 0x600000, 0x6FFFFF, "Earfun Technology (HK) Limited", "EARFUN-HK" }, { 0x705A6F, 0x700000, 0x7FFFFF, "WiBASE Industrial Solutions Inc.", "WIBASE-INDUSTRIAL-SOLUTIONS" }, { 0x705A6F, 0x800000, 0x8FFFFF, "LUAN Industry and Commerce Co., Ltd", "LUAN-INDUSTRY-AND-COMMERCE" }, { 0x705A6F, 0x900000, 0x9FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x705A6F, 0xA00000, 0xAFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x705A6F, 0xB00000, 0xBFFFFF, "Callidus trading, spol. s r.o.", "CALLIDUS-TRADING-SPOL-S-R-O" }, { 0x705A6F, 0xC00000, 0xCFFFFF, "CoolR Group Inc", "COOLR-GROUP" }, { 0x705A6F, 0xD00000, 0xDFFFFF, "PICadvanced SA", "PICADVANCED" }, { 0x705A6F, 0xE00000, 0xEFFFFF, "Hall Technologies", "HALL-TECHNOLOGIES" }, { 0x706979, 0x000000, 0x0FFFFF, "Full Solution Telecom", "FULL-SOLUTION-TELECOM" }, { 0x706979, 0x100000, 0x1FFFFF, "Linksys Telecom Shenzhen CO., LTD", "LINKSYS-TELECOM-SHENZHEN" }, { 0x706979, 0x200000, 0x2FFFFF, "Graphcore Ltd", "GRAPHCORE" }, { 0x706979, 0x300000, 0x3FFFFF, "Hebei Baina Xinda Technology Co., Ltd.", "HEBEI-BAINA-XINDA" }, { 0x706979, 0x400000, 0x4FFFFF, "SelectTech GeoSpatial, LLC", "SELECTTECH-GEOSPATIAL" }, { 0x706979, 0x500000, 0x5FFFFF, "Ibyte", "IBYTE" }, { 0x706979, 0x600000, 0x6FFFFF, "Beijing Security Union Information Technology Co.,Ltd", "BEIJING-SECURITY-UNION-INFORMATION" }, { 0x706979, 0x700000, 0x7FFFFF, "Intelitech SIA", "INTELITECH-SIA" }, { 0x706979, 0x800000, 0x8FFFFF, "An Phat Information Technology Co., Ltd", "AN-PHAT-INFORMATION" }, { 0x706979, 0x900000, 0x9FFFFF, "Faurecia Clarion Electronics (Dongguan) Co., Ltd", "FAURECIA-CLARION-ELECTRONICS-DONGGUAN" }, { 0x706979, 0xA00000, 0xAFFFFF, "Foxconn Brasil Industria e Comercio Ltda", "FOXCONN-BRASIL-INDUSTRIA-E-COMERCIO-LTDA" }, { 0x706979, 0xB00000, 0xBFFFFF, "Liquid Instruments Pty Ltd", "LIQUID-INSTRUMENTS-PTY" }, { 0x706979, 0xC00000, 0xCFFFFF, "Rivian Automotive LLC", "RIVIAN-AUTOMOTIVE" }, { 0x706979, 0xD00000, 0xDFFFFF, "FREUND ELEKTRONIKA D.O.O., IP-INTEGRA TECHNOLOGIES", "FREUND-ELEKTRONIKA-D-O-O-IP-INTEGRA-TECHNOLOGIES" }, { 0x706979, 0xE00000, 0xEFFFFF, "BAS-IP LP", "BAS-IP-LP" }, { 0x70886B, 0x000000, 0x0FFFFF, "Veracity UK Ltd", "VERACITY-UK" }, { 0x70886B, 0x100000, 0x1FFFFF, "Bitfinder Inc", "BITFINDER" }, { 0x70886B, 0x200000, 0x2FFFFF, "CVnet", "CVNET" }, { 0x70886B, 0x400000, 0x4FFFFF, "HORI CO., LTD.", "HORI" }, { 0x70886B, 0x500000, 0x5FFFFF, "Chengdu Ophylink Communication Technology Ltd.", "CHENGDU-OPHYLINK-COMMUNICATION" }, { 0x70886B, 0x600000, 0x6FFFFF, "Church & Dwight Co., Inc.", "CHURCH-DWIGHT" }, { 0x70886B, 0x800000, 0x8FFFFF, "Cable Matters Inc.", "CABLE-MATTERS" }, { 0x70886B, 0x900000, 0x9FFFFF, "Shenzhen Coolhear Information Technology Co., Ltd.", "SHENZHEN-COOLHEAR-INFORMATION" }, { 0x70886B, 0xA00000, 0xAFFFFF, "RHXTune Technology Co.,Ltd", "RHXTUNE" }, { 0x70886B, 0xB00000, 0xBFFFFF, "Beijing Strongleader Science & Technology Co., Ltd.", "BEIJING-STRONGLEADER-SCIENCE" }, { 0x70886B, 0xC00000, 0xCFFFFF, "MAX4G, Inc.", "MAX4G" }, { 0x70F8E7, 0x000000, 0x0FFFFF, "SHENZHEN Xin JiuNing Electronics Co Ltd", "SHENZHEN-XIN-JIUNING-ELECTRONICS" }, { 0x70F8E7, 0x100000, 0x1FFFFF, "System Level Solutions (India) Pvt.", "SYSTEM-LEVEL-SOLUTIONS-INDIA-PVT" }, { 0x70F8E7, 0x200000, 0x2FFFFF, "VOXX International", "VOXX" }, { 0x70F8E7, 0x300000, 0x3FFFFF, "Dr. Simon Consulting GmbH", "DR-SIMON-CONSULTING" }, { 0x70F8E7, 0x400000, 0x4FFFFF, "CLIP Inc.", "CLIP" }, { 0x70F8E7, 0x500000, 0x5FFFFF, "Beijing Eehuu Technology Co.,Ltd.", "BEIJING-EEHUU" }, { 0x70F8E7, 0x600000, 0x6FFFFF, "Flexim Security Oy", "FLEXIM-SECURITY-OY" }, { 0x70F8E7, 0x700000, 0x7FFFFF, "NST Technology Limited Co.,Ltd.", "NST" }, { 0x70F8E7, 0x800000, 0x8FFFFF, "Eclipse Security", "ECLIPSE-SECURITY" }, { 0x70F8E7, 0x900000, 0x9FFFFF, "Kontech Electronics Co., Ltd", "KONTECH-ELECTRONICS" }, { 0x70F8E7, 0xA00000, 0xAFFFFF, "TiVACI CORPORATION PTE LTD", "TIVACI-PTE" }, { 0x70F8E7, 0xB00000, 0xBFFFFF, "Photonfocus AG", "PHOTONFOCUS" }, { 0x70F8E7, 0xC00000, 0xCFFFFF, "Fixstars Corporation", "FIXSTARS" }, { 0x70F8E7, 0xD00000, 0xDFFFFF, "System-on-Chip engineering", "SYSTEM-ON-CHIP-ENGINEERING" }, { 0x70F8E7, 0xE00000, 0xEFFFFF, "CUAV", "CUAV" }, { 0x7419F8, 0x000000, 0x0FFFFF, "Marmitek", "MARMITEK" }, { 0x7419F8, 0x100000, 0x1FFFFF, "Trend-tech Technology Co., Limited", "TREND-TECH" }, { 0x7419F8, 0x200000, 0x2FFFFF, "Symtop Instrument Co.", "SYMTOP-INSTRUMENT" }, { 0x7419F8, 0x300000, 0x3FFFFF, "Essential Trading Systems Corp", "ESSENTIAL-TRADING" }, { 0x7419F8, 0x400000, 0x4FFFFF, "Cloudvue Technologies Corporation", "CLOUDVUE-TECHNOLOGIES" }, { 0x7419F8, 0x500000, 0x5FFFFF, "Starcor Beijing Co.,Limited", "STARCOR-BEIJING" }, { 0x7419F8, 0x600000, 0x6FFFFF, "Baudisch Electronic GmbH", "BAUDISCH" }, { 0x7419F8, 0x700000, 0x7FFFFF, "Heptagon Systems PTY. LTD.", "HEPTAGON-PTY" }, { 0x7419F8, 0x800000, 0x8FFFFF, "Quest Payment Systems", "QUEST-PAYMENT" }, { 0x7419F8, 0x900000, 0x9FFFFF, "Princip a.s.", "PRINCIP" }, { 0x7419F8, 0xA00000, 0xAFFFFF, "Tanjarine", "TANJARINE" }, { 0x7419F8, 0xB00000, 0xBFFFFF, "IDEXX Laboratories, Inc", "IDEXX-LABORATORIES" }, { 0x7419F8, 0xC00000, 0xCFFFFF, "Bach Icon ApS", "BACH-ICON-APS" }, { 0x7419F8, 0xD00000, 0xDFFFFF, "Ansjer Electronics Co., Ltd.", "ANSJER-ELECTRONICS" }, { 0x7419F8, 0xE00000, 0xEFFFFF, "Volacomm Co., Ltd", "VOLACOMM" }, { 0x7419F8, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x741AE0, 0x000000, 0x0FFFFF, "Huano International Technology Limited", "HUANO" }, { 0x741AE0, 0x100000, 0x1FFFFF, "Socionext Inc.", "SOCIONEXT" }, { 0x741AE0, 0x200000, 0x2FFFFF, "NURA HOLDINGS PTY LTD", "NURA-HOLDINGS-PTY" }, { 0x741AE0, 0x300000, 0x3FFFFF, "Philips Personal Health Solutions", "PHILIPS-PERSONAL-HEALTH-SOLUTIONS" }, { 0x741AE0, 0x400000, 0x4FFFFF, "Revl Inc.", "REVL" }, { 0x741AE0, 0x500000, 0x5FFFFF, "FUJIAN TAILI COMMUNICATION TECHNOLOGY CO.,LTD", "FUJIAN-TAILI-COMMUNICATION" }, { 0x741AE0, 0x600000, 0x6FFFFF, "Blocks Wearables Inc.", "BLOCKS-WEARABLES" }, { 0x741AE0, 0x700000, 0x7FFFFF, "BÄR Bahnsicherung AG", "BAER-BAHNSICHERUNG" }, { 0x741AE0, 0x800000, 0x8FFFFF, "Broadcast Wireless Systems Ltd", "BROADCAST-WIRELESS" }, { 0x741AE0, 0x900000, 0x9FFFFF, "Private", "PRIVATE" }, { 0x741AE0, 0xA00000, 0xAFFFFF, "SAIERCOM CORPORATION", "SAIERCOM" }, { 0x741AE0, 0xB00000, 0xBFFFFF, "SHEN ZHEN YINGJIACHUANG ELECTRONICS TECHNOLOGY CO.,LTD.", "SHEN-ZHEN-YINGJIACHUANG-ELECTRONICS" }, { 0x741AE0, 0xC00000, 0xCFFFFF, "bistos.co.ltd", "BISTOS" }, { 0x741AE0, 0xD00000, 0xDFFFFF, "Voltaware Services Limited", "VOLTAWARE-SERVICES" }, { 0x741AE0, 0xE00000, 0xEFFFFF, "ITS Partner (O.B.S) S.L.", "ITS-PARTNER-O-B-S" }, { 0x745BC5, 0x000000, 0x0FFFFF, "IRS Systementwicklung GmbH", "IRS-SYSTEMENTWICKLUNG" }, { 0x745BC5, 0x100000, 0x1FFFFF, "Beijing Inspiry Technology Co., Ltd.", "BEIJING-INSPIRY" }, { 0x745BC5, 0x200000, 0x2FFFFF, "SIGLENT TECHNOLOGIES CO., LTD.", "SIGLENT-TECHNOLOGIES" }, { 0x745BC5, 0x300000, 0x3FFFFF, "OXON AG", "OXON" }, { 0x745BC5, 0x400000, 0x4FFFFF, "uGrid Network Inc.", "UGRID-NETWORK" }, { 0x745BC5, 0x500000, 0x5FFFFF, "SpringCard", "SPRINGCARD" }, { 0x745BC5, 0x600000, 0x6FFFFF, "Yekani Manufacturing PTY Ltd", "YEKANI-MANUFACTURING-PTY" }, { 0x745BC5, 0x700000, 0x7FFFFF, "SHENZHEN ATX TECHNOLOGY CO.,LTD", "SHENZHEN-ATX" }, { 0x745BC5, 0x800000, 0x8FFFFF, "EDOMO Systems GmbH", "EDOMO" }, { 0x745BC5, 0x900000, 0x9FFFFF, "Haikou Frun Flash&Mcu Microcontrol Technology Development Co.,Ltd", "HAIKOU-FRUN-FLASH-MCU-MICROCONTROL-DEVELOPMENT" }, { 0x745BC5, 0xA00000, 0xAFFFFF, "Fournie Grospaud Energie SASU", "FOURNIE-GROSPAUD-ENERGIE-SASU" }, { 0x745BC5, 0xB00000, 0xBFFFFF, "Smartiply Inc.", "SMARTIPLY" }, { 0x745BC5, 0xC00000, 0xCFFFFF, "ComNot", "COMNOT" }, { 0x745BC5, 0xD00000, 0xDFFFFF, "CELYSS SAS", "CELYSS-SAS" }, { 0x745BC5, 0xE00000, 0xEFFFFF, "Qingdao Wintec System Co., Ltd", "QINGDAO-WINTEC-SYSTEM" }, { 0x74E14A, 0x000000, 0x0FFFFF, "Altenburger Electronic GmbH", "ALTENBURGER" }, { 0x74E14A, 0x100000, 0x1FFFFF, "Cerevo Inc.", "CEREVO" }, { 0x74E14A, 0x200000, 0x2FFFFF, "KLIMAT SOLEC Sp. z o.o.", "KLIMAT-SOLEC-SP-Z-O-O" }, { 0x74E14A, 0x300000, 0x3FFFFF, "emz-Hanauer GmbH & Co. KGaA", "EMZ-HANAUER-KGAA" }, { 0x74E14A, 0x400000, 0x4FFFFF, "open joint stock company YUG-SISTEMA plus", "OPEN-JOINT-STOCK-COMPANY-YUG-SISTEMA-PLUS" }, { 0x74E14A, 0x500000, 0x5FFFFF, "UTU Oy", "UTU-OY" }, { 0x74E14A, 0x600000, 0x6FFFFF, "Emerging Technology (Holdings) Ltd.", "EMERGING-HOLDINGS" }, { 0x74E14A, 0x700000, 0x7FFFFF, "APM Technologies (DongGuan) Ltd", "APM-TECHNOLOGIES-DONGGUAN" }, { 0x74E14A, 0x800000, 0x8FFFFF, "aritec gmbh", "ARITEC" }, { 0x74E14A, 0x900000, 0x9FFFFF, "Kanto Aircraft Instrument Co., Ltd.", "KANTO-AIRCRAFT-INSTRUMENT" }, { 0x74E14A, 0xA00000, 0xAFFFFF, "AStar Design Service Technologies Co., Ltd.", "ASTAR-DESIGN-SERVICE-TECHNOLOGIES" }, { 0x74E14A, 0xB00000, 0xBFFFFF, "Loctek Visual Technology Corp.", "LOCTEK-VISUAL" }, { 0x74E14A, 0xC00000, 0xCFFFFF, "Wuhan Shenghong Laser Projection Technology Co.,LTD", "WUHAN-SHENGHONG-LASER-PROJECTION" }, { 0x74E14A, 0xD00000, 0xDFFFFF, "Knog Pty Ltd", "KNOG-PTY" }, { 0x74E14A, 0xE00000, 0xEFFFFF, "Diamond Kinetics", "DIAMOND-KINETICS" }, { 0x74E14A, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x74F8DB, 0x000000, 0x0FFFFF, "Enercon Technologies", "ENERCON-TECHNOLOGIES" }, { 0x74F8DB, 0x100000, 0x1FFFFF, "GHL Advanced Technology GmbH & Co. KG", "GHL-ADVANCED" }, { 0x74F8DB, 0x200000, 0x2FFFFF, "Shenzhen Ruishi Information Technology Co.,Ltd.", "SHENZHEN-RUISHI-INFORMATION" }, { 0x74F8DB, 0x300000, 0x3FFFFF, "ATX", "ATX" }, { 0x74F8DB, 0x400000, 0x4FFFFF, "WiFi Hotspots, SL", "WIFI-HOTSPOTS-SL" }, { 0x74F8DB, 0x500000, 0x5FFFFF, "Provision-ISR", "PROVISION-ISR" }, { 0x74F8DB, 0x600000, 0x6FFFFF, "Shenzhen Melon Electronics Co.,Ltd", "SHENZHEN-MELON-ELECTRONICS" }, { 0x74F8DB, 0x700000, 0x7FFFFF, "Wuhan Tianyu Information Industry Co., Ltd.", "WUHAN-TIANYU-INFORMATION-INDUSTRY" }, { 0x74F8DB, 0x800000, 0x8FFFFF, "Songam Syscom Co. LTD.", "SONGAM-SYSCOM" }, { 0x74F8DB, 0x900000, 0x9FFFFF, "Avantree Corporation", "AVANTREE" }, { 0x74F8DB, 0xA00000, 0xAFFFFF, "Ballard Technology, Inc,", "BALLARD" }, { 0x74F8DB, 0xB00000, 0xBFFFFF, "Capwave Technologies Inc", "CAPWAVE-TECHNOLOGIES" }, { 0x74F8DB, 0xC00000, 0xCFFFFF, "TBM CO., LTD.", "TBM" }, { 0x74F8DB, 0xD00000, 0xDFFFFF, "Simon Electric (China) Co.,ltd", "SIMON-ELECTRIC-CHINA" }, { 0x74F8DB, 0xE00000, 0xEFFFFF, "Bernard Krone Holding GmbH & Co. KG", "BERNARD-KRONE-HOLDING" }, { 0x74F8DB, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x781305, 0x000000, 0x0FFFFF, "InnoSenT", "INNOSENT" }, { 0x781305, 0x100000, 0x1FFFFF, "Global Media Streaming LLC", "GLOBAL-MEDIA-STREAMING" }, { 0x781305, 0x200000, 0x2FFFFF, "LEAFF ENGINEERING SRL", "LEAFF-ENGINEERING-SRL" }, { 0x781305, 0x300000, 0x3FFFFF, "microtec Sicherheitstechnik GmbH", "MICROTEC-SICHERHEITSTECHNIK" }, { 0x781305, 0x400000, 0x4FFFFF, "Jiangxi Winsky Intelligence Technology Co., Ltd", "JIANGXI-WINSKY-INTELLIGENCE" }, { 0x781305, 0x500000, 0x5FFFFF, "ATS-CONVERS,LLC", "ATS-CONVERS" }, { 0x781305, 0x600000, 0x6FFFFF, "CRRC Nangjing Puzhen Haitai Brake Equipment Co., LTD", "CRRC-NANGJING-PUZHEN-HAITAI-BRAKE-EQUIPMENT" }, { 0x781305, 0x700000, 0x7FFFFF, "E-Stone Electronics Co., Ltd", "E-STONE-ELECTRONICS" }, { 0x781305, 0x800000, 0x8FFFFF, "Shenzhen AV-Display Co.,Ltd", "SHENZHEN-AV-DISPLAY" }, { 0x781305, 0x900000, 0x9FFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0x781305, 0xA00000, 0xAFFFFF, "Leonardo SpA - Montevarchi", "LEONARDO-SPA-MONTEVARCHI" }, { 0x781305, 0xB00000, 0xBFFFFF, "Bithouse Oy", "BITHOUSE-OY" }, { 0x781305, 0xC00000, 0xCFFFFF, "Brigates Microelectronics Co., Ltd.", "BRIGATES-MICROELECTRONICS" }, { 0x781305, 0xD00000, 0xDFFFFF, "Shanghai Siminics Optoelectronic Technology Co., Ltd", "SHANGHAI-SIMINICS-OPTOELECTRONIC" }, { 0x781305, 0xE00000, 0xEFFFFF, "Dongguan zhenxing electronic technology co.,limited", "DONGGUAN-ZHENXING" }, { 0x785EE8, 0x000000, 0x0FFFFF, "Youtransactor", "YOUTRANSACTOR" }, { 0x785EE8, 0x100000, 0x1FFFFF, "RIKEN KEIKI NARA MFG. Co., Ltd.", "RIKEN-KEIKI-NARA-MFG" }, { 0x785EE8, 0x200000, 0x2FFFFF, "Vega-Absolute", "VEGA-ABSOLUTE" }, { 0x785EE8, 0x300000, 0x3FFFFF, "Incontrol LLC", "INCONTROL" }, { 0x785EE8, 0x400000, 0x4FFFFF, "beijing Areospace Hongda optoelectronics technology co.,ltd", "BEIJING-AREOSPACE-HONGDA-OPTOELECTRONICS" }, { 0x785EE8, 0x500000, 0x5FFFFF, "INFOMOBILITY S.R.L.", "INFOMOBILITY" }, { 0x785EE8, 0x600000, 0x6FFFFF, "Guangdong COROS Sports Technology Co., Ltd", "GUANGDONG-COROS-SPORTS" }, { 0x785EE8, 0x700000, 0x7FFFFF, "MT B?LG? TEKNOLOJ?LER? VE DI? T?C. A.?.", "MT-B?LG?-TEKNOLOJ?LER?-VE-DI?-T?C-A-?" }, { 0x785EE8, 0x800000, 0x8FFFFF, "Jiangxi guoxuan radio and television technology Co.,Ltd", "JIANGXI-GUOXUAN-RADIO-AND-TELEVISION" }, { 0x785EE8, 0x900000, 0x9FFFFF, "TOPDON TECHNOLOGY Co.,Ltd.", "TOPDON" }, { 0x785EE8, 0xA00000, 0xAFFFFF, "Yake (Tianjin) Technology Co.,Ltd.", "YAKE-TIANJIN" }, { 0x785EE8, 0xB00000, 0xBFFFFF, "Lantern Engineering (Pty) Ltd", "LANTERN-ENGINEERING-PTY" }, { 0x785EE8, 0xC00000, 0xCFFFFF, "FINETOOLING TECHNOLOGY(HONG KONG)CO.,LIMITED", "FINETOOLING-HONG-KONG" }, { 0x785EE8, 0xD00000, 0xDFFFFF, "Tachyon Networks", "TACHYON-NETWORKS" }, { 0x785EE8, 0xE00000, 0xEFFFFF, "Suzhou Tianping Advanced Digital Technologies Co.Ltd", "SUZHOU-TIANPING-ADVANCED-DIGITAL-TECHNOLOGIES" }, { 0x787264, 0x000000, 0x0FFFFF, "SmartMore Co.,ltd.", "SMARTMORE" }, { 0x787264, 0x100000, 0x1FFFFF, "Zhengzhou Reform Intelligent Device Co., Ltd", "ZHENGZHOU-REFORM-INTELLIGENT-DEVICE" }, { 0x787264, 0x200000, 0x2FFFFF, "BZBGEAR", "BZBGEAR" }, { 0x787264, 0x300000, 0x3FFFFF, "Guangdong Hongqin Telecom Technology Co.,Ltd.", "GUANGDONG-HONGQIN-TELECOM" }, { 0x787264, 0x400000, 0x4FFFFF, "Asustor Inc.", "ASUSTOR" }, { 0x787264, 0x500000, 0x5FFFFF, "CALTTA TECHNOLOGIES CO.,LTD.", "CALTTA-TECHNOLOGIES" }, { 0x787264, 0x600000, 0x6FFFFF, "Shenzhen C-DIGI Technology Co.,Ltd.", "SHENZHEN-C-DIGI" }, { 0x787264, 0x700000, 0x7FFFFF, "Conjing Networks Inc.", "CONJING-NETWORKS" }, { 0x787264, 0x800000, 0x8FFFFF, "Gsou Technology(Shenzhen)Co.,Ltd", "GSOU-SHENZHEN" }, { 0x787264, 0x900000, 0x9FFFFF, "SHENZHEN FANGZHICHENG TECHNOLOGY CO., LTD.", "SHENZHEN-FANGZHICHENG" }, { 0x787264, 0xA00000, 0xAFFFFF, "Typhoon HIL, Inc.", "TYPHOON-HIL" }, { 0x787264, 0xB00000, 0xBFFFFF, "digades GmbH", "DIGADES" }, { 0x787264, 0xC00000, 0xCFFFFF, "Comcast-SRL", "COMCAST-SRL" }, { 0x787264, 0xD00000, 0xDFFFFF, "QT systems ab", "QT-AB" }, { 0x787264, 0xE00000, 0xEFFFFF, "Heltec Automation", "HELTEC-AUTOMATION" }, { 0x78C2C0, 0x000000, 0x0FFFFF, "Shenzhen ELI Technology co.,ltd", "SHENZHEN-ELI" }, { 0x78C2C0, 0x100000, 0x1FFFFF, "XRONOS-INC", "XRONOS" }, { 0x78C2C0, 0x200000, 0x2FFFFF, "RONIX incorporated", "RONIX-INCORPORATED" }, { 0x78C2C0, 0x300000, 0x3FFFFF, "Ningbo Sanxing Electric Co., Ltd.", "NINGBO-SANXING-ELECTRIC" }, { 0x78C2C0, 0x400000, 0x4FFFFF, "Ory Laboratory Co., Ltd.", "ORY-LABORATORY" }, { 0x78C2C0, 0x500000, 0x5FFFFF, "ShenZhen TuLing Robot CO.,LTD", "SHENZHEN-TULING-ROBOT" }, { 0x78C2C0, 0x600000, 0x6FFFFF, "Sichuan Tianyi Comheart Telecom Co.,LTD", "SICHUAN-TIANYI-COMHEART-TELECOM" }, { 0x78C2C0, 0x700000, 0x7FFFFF, "Guangzhou Hongcai Stage Equipment co.,ltd", "GUANGZHOU-HONGCAI-STAGE-EQUIPMENT" }, { 0x78C2C0, 0x800000, 0x8FFFFF, "Beijing Coilabs technology co.,ltd", "BEIJING-COILABS" }, { 0x78C2C0, 0x900000, 0x9FFFFF, "SES", "SES" }, { 0x78C2C0, 0xA00000, 0xAFFFFF, "Ombitron, Inc.", "OMBITRON" }, { 0x78C2C0, 0xB00000, 0xBFFFFF, "Wan Chao An (Beijing) Technology Co., Ltd.", "WAN-CHAO-AN-BEIJING" }, { 0x78C2C0, 0xC00000, 0xCFFFFF, "Shanghai Hanyi Technologies Co,.Ltd.", "SHANGHAI-HANYI-TECHNOLOGIES" }, { 0x78C2C0, 0xD00000, 0xDFFFFF, "KORF Inc.", "KORF" }, { 0x78C2C0, 0xE00000, 0xEFFFFF, "Huwomobility", "HUWOMOBILITY" }, { 0x78C2C0, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x78CA83, 0x000000, 0x0FFFFF, "DAINCUBE", "DAINCUBE" }, { 0x78CA83, 0x100000, 0x1FFFFF, "Excelocity Inc.", "EXCELOCITY" }, { 0x78CA83, 0x200000, 0x2FFFFF, "APC", "APC" }, { 0x78CA83, 0x300000, 0x3FFFFF, "Neofon GmbH", "NEOFON" }, { 0x78CA83, 0x400000, 0x4FFFFF, "Pinhole (Beijing) Technology Co., Ltd.", "PINHOLE-BEIJING" }, { 0x78CA83, 0x500000, 0x5FFFFF, "Huatune Technology (Shanghai) Co., Ltd.", "HUATUNE-SHANGHAI" }, { 0x78CA83, 0x600000, 0x6FFFFF, "Nomiku", "NOMIKU" }, { 0x78CA83, 0x700000, 0x7FFFFF, "Beijing CarePulse Electronic Technology", "BEIJING-CAREPULSE" }, { 0x78CA83, 0x800000, 0x8FFFFF, "IHM", "IHM" }, { 0x78CA83, 0x900000, 0x9FFFFF, "Louroe Electronics", "LOUROE-ELECTRONICS" }, { 0x78CA83, 0xA00000, 0xAFFFFF, "Eksagate Elektronik Mühendislik ve Bilgisayar San. Tic. A.Ş.", "EKSAGATE-ELEKTRONIK-MUEHENDISLIK-VE-BILGISAYAR-SAN-TIC-A" }, { 0x78CA83, 0xB00000, 0xBFFFFF, "Zhejiang Science Electronic Tech Co., Ltd", "ZHEJIANG-SCIENCE-TECH" }, { 0x78CA83, 0xC00000, 0xCFFFFF, "Elanview Technology Co.,Ltd", "ELANVIEW" }, { 0x78CA83, 0xD00000, 0xDFFFFF, "Hubei Boyuan Zhijia Network Media Co. Ltd.", "HUBEI-BOYUAN-ZHIJIA-NETWORK-MEDIA" }, { 0x78CA83, 0xE00000, 0xEFFFFF, "Konecranes", "KONECRANES" }, { 0x78D4F1, 0x000000, 0x0FFFFF, "Burisch Elektronik Bauteile GmbH", "BURISCH-ELEKTRONIK-BAUTEILE" }, { 0x78D4F1, 0x100000, 0x1FFFFF, "Silla Industries", "SILLA-INDUSTRIES" }, { 0x78D4F1, 0x200000, 0x2FFFFF, "Lyngsoe Systems", "LYNGSOE" }, { 0x78D4F1, 0x300000, 0x3FFFFF, "Ekoenergetyka - Polska S.A.", "EKOENERGETYKA-POLSKA" }, { 0x78D4F1, 0x400000, 0x4FFFFF, "BYD Auto lndustry Co.,Ltd", "BYD-AUTO-LNDUSTRY" }, { 0x78D4F1, 0x500000, 0x5FFFFF, "Huaqin Telecom Technology Co.,Ltd.", "HUAQIN-TELECOM" }, { 0x78D4F1, 0x600000, 0x6FFFFF, "Guangzhou Kingray information technology Co.,Ltd.", "GUANGZHOU-KINGRAY-INFORMATION" }, { 0x78D4F1, 0x700000, 0x7FFFFF, "Famar Fueguina S.A.", "FAMAR-FUEGUINA" }, { 0x78D4F1, 0x800000, 0x8FFFFF, "Xiamen Cheerzing IOT Technology Co.,Ltd.", "XIAMEN-CHEERZING-IOT" }, { 0x78D4F1, 0x900000, 0x9FFFFF, "shanghai baudcom communication device co.,ltd", "SHANGHAI-BAUDCOM-COMMUNICATION-DEVICE" }, { 0x78D4F1, 0xA00000, 0xAFFFFF, "BONENG TRANSMISSION(SUZHOU)CO.,LTD", "BONENG-TRANSMISSION-SUZHOU" }, { 0x78D4F1, 0xB00000, 0xBFFFFF, "Jiangsu byzoro intelligent technology Co.,Ltd", "JIANGSU-BYZORO-INTELLIGENT" }, { 0x78D4F1, 0xC00000, 0xCFFFFF, "TNB", "TNB" }, { 0x78D4F1, 0xD00000, 0xDFFFFF, "Quidel Corporation", "QUIDEL" }, { 0x78D4F1, 0xE00000, 0xEFFFFF, "Blue Sparq, Inc.", "BLUE-SPARQ" }, { 0x78D800, 0x000000, 0x0FFFFF, "Kverneland Group Mechatronics", "KVERNELAND-GROUP-MECHATRONICS" }, { 0x78D800, 0x100000, 0x1FFFFF, "Shenzhen Envicool Information Technology Co., Ltd", "SHENZHEN-ENVICOOL-INFORMATION" }, { 0x78D800, 0x200000, 0x2FFFFF, "Shanghai Espacetime Technology Co.,Ltd.", "SHANGHAI-ESPACETIME" }, { 0x78D800, 0x300000, 0x3FFFFF, "Shenzhen Scodeno Technology Co,. Ltd.", "SHENZHEN-SCODENO" }, { 0x78D800, 0x400000, 0x4FFFFF, "CS Instruments GmbH", "CS-INSTRUMENTS" }, { 0x78D800, 0x500000, 0x5FFFFF, "Björkviks Consulting AB", "BJOERKVIKS-CONSULTING-AB" }, { 0x78D800, 0x600000, 0x6FFFFF, "Alango Technologies Ltd", "ALANGO-TECHNOLOGIES" }, { 0x78D800, 0x700000, 0x7FFFFF, "NimbeLink Corp", "NIMBELINK" }, { 0x78D800, 0x800000, 0x8FFFFF, "Salunda Ltd", "SALUNDA" }, { 0x78D800, 0x900000, 0x9FFFFF, "SightLine Applications", "SIGHTLINE-APPLICATIONS" }, { 0x78D800, 0xA00000, 0xAFFFFF, "Insignal Co., Ltd.", "INSIGNAL" }, { 0x78D800, 0xB00000, 0xBFFFFF, "Maddalena S.p.A.", "MADDALENA" }, { 0x78D800, 0xC00000, 0xCFFFFF, "Shenzhen Chenzhuo Technology Co., Ltd.", "SHENZHEN-CHENZHUO" }, { 0x78D800, 0xD00000, 0xDFFFFF, "Korea Micro Wireless Co.,Ltd.", "KOREA-MICRO-WIRELESS" }, { 0x78D800, 0xE00000, 0xEFFFFF, "CL International", "CL" }, { 0x7C45F9, 0x000000, 0x0FFFFF, "SENSeOR", "SENSEOR" }, { 0x7C45F9, 0x100000, 0x1FFFFF, "Hunan Shengyun Photoelectric Technology Co., LTD", "HUNAN-SHENGYUN-PHOTOELECTRIC" }, { 0x7C45F9, 0x200000, 0x2FFFFF, "Dongguan Boyye Industrial Co., Ltd", "DONGGUAN-BOYYE-INDUSTRIAL" }, { 0x7C45F9, 0x300000, 0x3FFFFF, "Hangzhou LUXAR Technologies Co., Ltd", "HANGZHOU-LUXAR-TECHNOLOGIES" }, { 0x7C45F9, 0x400000, 0x4FFFFF, "SPECS Surface Nano Analysis GmbH", "SPECS-SURFACE-NANO-ANALYSIS" }, { 0x7C45F9, 0x500000, 0x5FFFFF, "Interactive Technologies, Inc.", "INTERACTIVE-TECHNOLOGIES" }, { 0x7C45F9, 0x600000, 0x6FFFFF, "HANK ELECTRONICS CO., LTD", "HANK-ELECTRONICS" }, { 0x7C45F9, 0x700000, 0x7FFFFF, "Georg Fischer Piping Systems Ltd.", "GEORG-FISCHER-PIPING" }, { 0x7C45F9, 0x800000, 0x8FFFFF, "Feller AG", "FELLER" }, { 0x7C45F9, 0x900000, 0x9FFFFF, "MIJ CO LTD", "MIJ" }, { 0x7C45F9, 0xA00000, 0xAFFFFF, "qiio AG", "QIIO" }, { 0x7C45F9, 0xB00000, 0xBFFFFF, "IngDan China-chip Electronic Technology(Wuxi) Co.,Ltd.", "INGDAN-CHINA-CHIP-WUXI" }, { 0x7C45F9, 0xC00000, 0xCFFFFF, "Xemex NV", "XEMEX-NV" }, { 0x7C45F9, 0xD00000, 0xDFFFFF, "Mobilaris Industrial Solutions", "MOBILARIS-INDUSTRIAL-SOLUTIONS" }, { 0x7C45F9, 0xE00000, 0xEFFFFF, "Scania CV AB", "SCANIA-CV-AB" }, { 0x7C477C, 0x000000, 0x0FFFFF, "BungBungame Inc", "BUNGBUNGAME" }, { 0x7C477C, 0x100000, 0x1FFFFF, "Photosynth Inc.", "PHOTOSYNTH" }, { 0x7C477C, 0x200000, 0x2FFFFF, "POWERLAND LIMITED", "POWERLAND" }, { 0x7C477C, 0x300000, 0x3FFFFF, "EyeLock LLC", "EYELOCK" }, { 0x7C477C, 0x400000, 0x4FFFFF, "RLC Electronics Systems", "RLC-ELECTRONICS" }, { 0x7C477C, 0x500000, 0x5FFFFF, "Midwest Microwave Solutions", "MIDWEST-MICROWAVE-SOLUTIONS" }, { 0x7C477C, 0x600000, 0x6FFFFF, "Zerosystem LTD.Co", "ZEROSYSTEM" }, { 0x7C477C, 0x700000, 0x7FFFFF, "BlueSmart Technology Corporation", "BLUESMART" }, { 0x7C477C, 0x800000, 0x8FFFFF, "Shenzhen Eunicum Electric Co.,Ltd.", "SHENZHEN-EUNICUM-ELECTRIC" }, { 0x7C477C, 0x900000, 0x9FFFFF, "DaLian Cheering Tech Co.,Ltd", "DALIAN-CHEERING-TECH" }, { 0x7C477C, 0xA00000, 0xAFFFFF, "Dspread Technology (Beijing) Inc.", "DSPREAD-BEIJING" }, { 0x7C477C, 0xB00000, 0xBFFFFF, "Hangzhou Yiyitaidi Information Technology Co., Ltd.", "HANGZHOU-YIYITAIDI-INFORMATION" }, { 0x7C477C, 0xC00000, 0xCFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x7C477C, 0xD00000, 0xDFFFFF, "Speedifi Inc", "SPEEDIFI" }, { 0x7C477C, 0xE00000, 0xEFFFFF, "I-Convergence.com", "I-CONVERGENCE-COM" }, { 0x7C70BC, 0x000000, 0x0FFFFF, "Shanghai magcomm communication technology co ltd", "SHANGHAI-MAGCOMM-COMMUNICATION" }, { 0x7C70BC, 0x100000, 0x1FFFFF, "XD-GE Automation CO.,LTD", "XD-GE-AUTOMATION" }, { 0x7C70BC, 0x200000, 0x2FFFFF, "Digital Lumens", "DIGITAL-LUMENS" }, { 0x7C70BC, 0x300000, 0x3FFFFF, "FLEXIM GmbH", "FLEXIM" }, { 0x7C70BC, 0x400000, 0x4FFFFF, "K-Vision Technology (Shanghai), Ltd", "K-VISION-SHANGHAI" }, { 0x7C70BC, 0x500000, 0x5FFFFF, "Canary Connect, Inc.", "CANARY-CONNECT" }, { 0x7C70BC, 0x600000, 0x6FFFFF, "Bidgely", "BIDGELY" }, { 0x7C70BC, 0x700000, 0x7FFFFF, "Nomad Digital Ltd.", "NOMAD-DIGITAL" }, { 0x7C70BC, 0x800000, 0x8FFFFF, "Mennekes Elektrotechnik GmbH & Co. KG", "MENNEKES-ELEKTROTECHNIK" }, { 0x7C70BC, 0x900000, 0x9FFFFF, "dogtra", "DOGTRA" }, { 0x7C70BC, 0xA00000, 0xAFFFFF, "Motec GmbH", "MOTEC" }, { 0x7C70BC, 0xB00000, 0xBFFFFF, "Tohan Engineering Corporation", "TOHANENGINEERING" }, { 0x7C70BC, 0xC00000, 0xCFFFFF, "Lukup Media", "LUKUP-MEDIA" }, { 0x7C70BC, 0xD00000, 0xDFFFFF, "mk-messtechnik GmbH", "MK-MESSTECHNIK" }, { 0x7C70BC, 0xE00000, 0xEFFFFF, "HOPERUN MMAX DIGITAL PTE. LTD.", "HOPERUN-MMAX-DIGITAL-PTE" }, { 0x7C70BC, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x7C8334, 0x000000, 0x0FFFFF, "Thermalimage", "THERMALIMAGE" }, { 0x7C8334, 0x100000, 0x1FFFFF, "Linear Logic LLC", "LINEAR-LOGIC" }, { 0x7C8334, 0x200000, 0x2FFFFF, "PEMtronics LLC", "PEMTRONICS" }, { 0x7C8334, 0x300000, 0x3FFFFF, "Beijing Changkun Technology Co., Ltd.", "BEIJING-CHANGKUN" }, { 0x7C8334, 0x400000, 0x4FFFFF, "Fusus", "FUSUS" }, { 0x7C8334, 0x500000, 0x5FFFFF, "PRO BRAND TECHNOLOGY (TW)", "PRO-BRAND-TW" }, { 0x7C8334, 0x600000, 0x6FFFFF, "Wojinxin Beijing Technology Co., LTD", "WOJINXIN-BEIJING" }, { 0x7C8334, 0x700000, 0x7FFFFF, "ChengDU Yi Gong Intelligence Technology Co., Ltd.", "CHENGDU-YI-GONG-INTELLIGENCE" }, { 0x7C8334, 0x800000, 0x8FFFFF, "Silicon Xpandas Electronics Co., Ltd.", "SILICON-XPANDAS-ELECTRONICS" }, { 0x7C8334, 0x900000, 0x9FFFFF, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0x7C8334, 0xA00000, 0xAFFFFF, "ENGINETECH (TIANJIN) COMPUTER CO.,LTD.", "ENGINETECH-TIANJIN" }, { 0x7C8334, 0xB00000, 0xBFFFFF, "Shenzhen AZW Technology Co., Ltd.", "SHENZHEN-AZW" }, { 0x7C8334, 0xC00000, 0xCFFFFF, "Hunan Datang Xianyi Technology Co.,Ltd", "HUNAN-DATANG-XIANYI" }, { 0x7C8334, 0xD00000, 0xDFFFFF, "MSV elektronika s.r.o.", "MSV-ELEKTRONIKA-S-R-O" }, { 0x7C8334, 0xE00000, 0xEFFFFF, "Balter GmbH", "BALTER" }, { 0x7CBACC, 0x000000, 0x0FFFFF, "TGT Limited", "TGT" }, { 0x7CBACC, 0x100000, 0x1FFFFF, "Changsha SUNYE Electric Co., Ltd.", "CHANGSHA-SUNYE-ELECTRIC" }, { 0x7CBACC, 0x200000, 0x2FFFFF, "Maco Lighting Pty. Ltd.", "MACO-LIGHTING-PTY" }, { 0x7CBACC, 0x300000, 0x3FFFFF, "Izkare", "IZKARE" }, { 0x7CBACC, 0x400000, 0x4FFFFF, "Sun Asia Trade Co.", "SUN-ASIA-TRADE" }, { 0x7CBACC, 0x500000, 0x5FFFFF, "Fortem Technologies, Inc.", "FORTEM-TECHNOLOGIES" }, { 0x7CBACC, 0x600000, 0x6FFFFF, "Fossil Power Systems Inc", "FOSSIL-POWER" }, { 0x7CBACC, 0x700000, 0x7FFFFF, "Virgin Orbit", "VIRGIN-ORBIT" }, { 0x7CBACC, 0x800000, 0x8FFFFF, "Collinear Networks Inc.", "COLLINEAR-NETWORKS" }, { 0x7CBACC, 0x900000, 0x9FFFFF, "Yongguan Electronic Technology (D.G)LTD", "YONGGUAN-D-G" }, { 0x7CBACC, 0xA00000, 0xAFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x7CBACC, 0xB00000, 0xBFFFFF, "Briowireless Inc.", "BRIOWIRELESS" }, { 0x7CBACC, 0xC00000, 0xCFFFFF, "Flying Loft Inc.", "FLYING-LOFT" }, { 0x7CBACC, 0xD00000, 0xDFFFFF, "SIGMA-ELEKTRO GmbH", "SIGMA-ELEKTRO" }, { 0x7CBACC, 0xE00000, 0xEFFFFF, "ALPHA TECHNOLOGIES, LLC", "ALPHA-TECHNOLOGIES" }, { 0x7CBC84, 0x000000, 0x0FFFFF, "AG Neovo", "NEOVO" }, { 0x7CBC84, 0x100000, 0x1FFFFF, "Xiamen Mage Information Technology Co.,Ltd.", "XIAMEN-MAGE-INFORMATION" }, { 0x7CBC84, 0x200000, 0x2FFFFF, "3S Technology Co., Ltd.", "3S" }, { 0x7CBC84, 0x300000, 0x3FFFFF, "Shanghai Yitu Technology Co. Ltd", "SHANGHAI-YITU" }, { 0x7CBC84, 0x400000, 0x4FFFFF, "CONTINENTAL", "CONTINENTAL" }, { 0x7CBC84, 0x500000, 0x5FFFFF, "Nanning auto digital technology co.,LTD", "NANNING-AUTO-DIGITAL" }, { 0x7CBC84, 0x600000, 0x6FFFFF, "Société de Transport de Montréal", "SOCIT-DE-TRANSPORT-DE-MONTRAL" }, { 0x7CBC84, 0x700000, 0x7FFFFF, "Xuji Changnan Communication Equipment Co., Ltd.", "XUJI-CHANGNAN-COMMUNICATION-EQUIPMENT" }, { 0x7CBC84, 0x800000, 0x8FFFFF, "Shenzhen Kuang-chi Space Technology Co., Ltd.", "SHENZHEN-KUANG-CHI-SPACE" }, { 0x7CBC84, 0x900000, 0x9FFFFF, "HITIQ LIMITED", "HITIQ" }, { 0x7CBC84, 0xA00000, 0xAFFFFF, "OPNT BV", "OPNT" }, { 0x7CBC84, 0xB00000, 0xBFFFFF, "Guangzhou Puppyrobot Technology Co.Ltd Beijing Branch", "GUANGZHOU-PUPPYROBOT-BEIJING-BRANCH" }, { 0x7CBC84, 0xC00000, 0xCFFFFF, "Tibit Communications", "TIBIT-COMMUNICATION" }, { 0x7CBC84, 0xD00000, 0xDFFFFF, "VANTAGE INTEGRATED SECURITY SOLUTIONS PVT LTD", "VANTAGE-INTEGRATED-SECURITY-SOLUTIONS-PVT" }, { 0x7CBC84, 0xE00000, 0xEFFFFF, "Beijing Topnew Group Co., Ltd", "BEIJING-TOPNEW-GROUP" }, { 0x7CCBE2, 0x000000, 0x0FFFFF, "Heyuan Yongyida Technology Holdings Co.,Ltd.", "HEYUAN-YONGYIDA-HOLDINGS" }, { 0x7CCBE2, 0x100000, 0x1FFFFF, "CeoTronics AG", "CEOTRONICS" }, { 0x7CCBE2, 0x200000, 0x2FFFFF, "1000eyes GmbH", "1000EYES" }, { 0x7CCBE2, 0x300000, 0x3FFFFF, "Astrum Technologies CC", "ASTRUM-TECHNOLOGIES-CC" }, { 0x7CCBE2, 0x400000, 0x4FFFFF, "Ningbo bird sales co.,LTD", "NINGBO-BIRD-SALES" }, { 0x7CCBE2, 0x500000, 0x5FFFFF, "DTECH Labs, Inc.", "DTECH-LABS" }, { 0x7CCBE2, 0x600000, 0x6FFFFF, "SY Electronics Limited", "SY-ELECTRONICS" }, { 0x7CCBE2, 0x700000, 0x7FFFFF, "Hangzhou Kaicom Communication Co.,Ltd", "HANGZHOU-KAICOM-COMMUNICATION" }, { 0x7CCBE2, 0x800000, 0x8FFFFF, "Polarteknik Oy", "POLARTEKNIK-OY" }, { 0x7CCBE2, 0x900000, 0x9FFFFF, "Hangzhou Haohaokaiche Technology Co.,Ltd.", "HANGZHOU-HAOHAOKAICHE" }, { 0x7CCBE2, 0xA00000, 0xAFFFFF, "Shanghai Institute of Applied Physics, Chinese Academy of Sciences", "SHANGHAI-INSTITUTE-OF-APPLIED-PHYSICS-CHINESE-ACADEMY-OF-SCIENCES" }, { 0x7CCBE2, 0xB00000, 0xBFFFFF, "Easy Broadband Technology Co., Ltd.", "EASY-BROADBAND" }, { 0x7CCBE2, 0xC00000, 0xCFFFFF, "mirakonta s.l.", "MIRAKONTA" }, { 0x7CCBE2, 0xD00000, 0xDFFFFF, "optilink networks pvt ltd", "OPTILINK-NETWORKS-PVT" }, { 0x7CCBE2, 0xE00000, 0xEFFFFF, "Aplex Technology Inc.", "APLEX" }, { 0x8002F4, 0x000000, 0x0FFFFF, "BK Networks Co,. Ltd.", "BK-NETWORKS" }, { 0x8002F4, 0x100000, 0x1FFFFF, "Sichuan lookout environment protection technology co.,Ltd", "SICHUAN-LOOKOUT-ENVIRONMENT-PROTECTION" }, { 0x8002F4, 0x200000, 0x2FFFFF, "Beijing Cybercore", "BEIJING-CYBERCORE" }, { 0x8002F4, 0x300000, 0x3FFFFF, "Shenzhen Suanzi Technology Co., Ltd", "SHENZHEN-SUANZI" }, { 0x8002F4, 0x400000, 0x4FFFFF, "Infors AG", "INFORS" }, { 0x8002F4, 0x500000, 0x5FFFFF, "Sichuan Fanyi Technology Co. Ltd.", "SICHUAN-FANYI" }, { 0x8002F4, 0x600000, 0x6FFFFF, "Mech-Mind Robotics Technologies Ltd.", "MECH-MIND-ROBOTICS-TECHNOLOGIES" }, { 0x8002F4, 0x700000, 0x7FFFFF, "Lazer Safe Pty Ltd", "LAZER-SAFE-PTY" }, { 0x8002F4, 0x800000, 0x8FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x8002F4, 0x900000, 0x9FFFFF, "XUNDI(XIAMEN) ELECTRONIC TECHNOLOGY CO.,LTD.", "XUNDI-XIAMEN" }, { 0x8002F4, 0xA00000, 0xAFFFFF, "PassiveLogic", "PASSIVELOGIC" }, { 0x8002F4, 0xB00000, 0xBFFFFF, "Baicells Technologies Co., Ltd", "BAICELLS-TECHNOLOGIES" }, { 0x8002F4, 0xC00000, 0xCFFFFF, "Wuhan Glory Road Intelligent Technology Co., Ltd.", "WUHAN-GLORY-ROAD-INTELLIGENT" }, { 0x8002F4, 0xD00000, 0xDFFFFF, "Jiangsu Vedkang Medicl Sclence and Technology Co.,Ltd", "JIANGSU-VEDKANG-MEDICL-SCLENCE" }, { 0x8002F4, 0xE00000, 0xEFFFFF, "Alfred Systems Inc", "ALFRED" }, { 0x800A80, 0x000000, 0x0FFFFF, "Golana Technology (Shenzhen) Co., Ltd.", "GOLANA-SHENZHEN" }, { 0x800A80, 0x100000, 0x1FFFFF, "Dongguan I-Chime electrinics Co.,Ltd", "DONGGUAN-I-CHIME-ELECTRINICS" }, { 0x800A80, 0x200000, 0x2FFFFF, "Sumitomo Wiring Systems, Ltd.", "SUMITOMO-WIRING" }, { 0x800A80, 0x300000, 0x3FFFFF, "Beijing VControl Technology Co., Ltd.", "BEIJING-VCONTROL" }, { 0x800A80, 0x400000, 0x4FFFFF, "LLVISION TECHNOLOGY CO.,LTD", "LLVISION" }, { 0x800A80, 0x500000, 0x5FFFFF, "Shenzhen Zidoo Technology Co., Ltd.", "SHENZHEN-ZIDOO" }, { 0x800A80, 0x600000, 0x6FFFFF, "Beijing Gooagoo Technical Service Co.,Ltd.", "BEIJING-GOOAGOO-TECHNICAL-SERVICE" }, { 0x800A80, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x807B85, 0x000000, 0x0FFFFF, "Shiroshita Industrial Co., Ltd.", "SHIROSHITA-INDUSTRIAL" }, { 0x807B85, 0x100000, 0x1FFFFF, "Hangzhou Synway Information Engineering Co., Ltd", "HANGZHOU-SYNWAY-INFORMATION-ENGINEERING" }, { 0x807B85, 0x200000, 0x2FFFFF, "Phoenix Co.,Ltd.", "PHOENIX" }, { 0x807B85, 0x300000, 0x3FFFFF, "Zhuhai TOP Intelligence Electric Co., Ltd.", "ZHUHAI-TOP-INTELLIGENCE-ELECTRIC" }, { 0x807B85, 0x400000, 0x4FFFFF, "Quantel USA, Inc.", "QUANTEL-USA" }, { 0x807B85, 0x500000, 0x5FFFFF, "EFCO", "EFCO" }, { 0x807B85, 0x600000, 0x6FFFFF, "Quickte Technology Co.,Ltd", "QUICKTE" }, { 0x807B85, 0x700000, 0x7FFFFF, "Chendu Ningshui Technology Co.,Ltd", "CHENDU-NINGSHUI" }, { 0x807B85, 0x800000, 0x8FFFFF, "IDair, LLC", "IDAIR" }, { 0x807B85, 0x900000, 0x9FFFFF, "SMART ELECTRONICS NZ LIMITED", "SMART-ELECTRONICS-NZ" }, { 0x807B85, 0xA00000, 0xAFFFFF, "Interplan Co., Ltd.", "INTERPLAN" }, { 0x807B85, 0xB00000, 0xBFFFFF, "Oliotalo Oy", "OLIOTALO-OY" }, { 0x807B85, 0xC00000, 0xCFFFFF, "SCALA Digital Technology(Ningbo) CO, LTD", "SCALA-DIGITAL-NINGBO" }, { 0x807B85, 0xD00000, 0xDFFFFF, "Kaynes Technology India Pvt Ltd", "KAYNES-INDIA-PVT" }, { 0x807B85, 0xE00000, 0xEFFFFF, "Mersen", "MERSEN" }, { 0x807B85, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x80E4DA, 0x000000, 0x0FFFFF, "Wheatstone Corporation", "WHEATSTONE" }, { 0x80E4DA, 0x100000, 0x1FFFFF, "Guangzhou Pinzhong Electronic Technology CO., LTD", "GUANGZHOU-PINZHONG" }, { 0x80E4DA, 0x200000, 0x2FFFFF, "Thurlby Thandar Instruments LTD", "THURLBY-THANDAR-INSTRUMENTS" }, { 0x80E4DA, 0x300000, 0x3FFFFF, "Beijing Gaokezhongtian Technology Co Ltd", "BEIJING-GAOKEZHONGTIAN" }, { 0x80E4DA, 0x400000, 0x4FFFFF, "Beijing Yuantel Technolgy Co.,Ltd-Shenzhen Branch", "BEIJING-YUANTEL-TECHNOLGY-SHENZHEN-BRANCH" }, { 0x80E4DA, 0x500000, 0x5FFFFF, "CAVALRY STORAGE INC", "CAVALRY-STORAGE" }, { 0x80E4DA, 0x600000, 0x6FFFFF, "BroadMedia Co., Ltd.", "BROADMEDIA" }, { 0x80E4DA, 0x700000, 0x7FFFFF, "Shortcut Labs", "SHORTCUT-LABS" }, { 0x80E4DA, 0x800000, 0x8FFFFF, "Krizer international Co,. Ltd.", "KRIZER" }, { 0x80E4DA, 0x900000, 0x9FFFFF, "Elcus", "ELCUS" }, { 0x80E4DA, 0xA00000, 0xAFFFFF, "Neutronics", "NEUTRONICS" }, { 0x80E4DA, 0xB00000, 0xBFFFFF, "Nanjing LILO Technology Co. Ltd.", "NANJING-LILO" }, { 0x80E4DA, 0xC00000, 0xCFFFFF, "EVER Sp. z o.o.", "EVER-SP-Z-O-O" }, { 0x80E4DA, 0xD00000, 0xDFFFFF, "Dalian Roiland Technology Co.,Ltd", "DALIAN-ROILAND" }, { 0x80E4DA, 0xE00000, 0xEFFFFF, "Akenori PTE LTD", "AKENORI-PTE" }, { 0x80E4DA, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x8411C2, 0x000000, 0x0FFFFF, "Kazdream Technologies LLP", "KAZDREAM-TECHNOLOGIES-LLP" }, { 0x8411C2, 0x100000, 0x1FFFFF, "Beijing Dayu Technology Co., Ltd.", "BEIJING-DAYU" }, { 0x8411C2, 0x200000, 0x2FFFFF, "Futurecom Systems Group", "FUTURECOM-GROUP" }, { 0x8411C2, 0x300000, 0x3FFFFF, " FUJIFILM Healthcare Corporation", "FUJIFILM-HEALTHCARE" }, { 0x8411C2, 0x400000, 0x4FFFFF, "LLC STC MZTA", "LLC-STC-MZTA" }, { 0x8411C2, 0x500000, 0x5FFFFF, "AIBIoT GmbH", "AIBIOT" }, { 0x8411C2, 0x600000, 0x6FFFFF, "KESSEL AG", "KESSEL" }, { 0x8411C2, 0x700000, 0x7FFFFF, "Ei3 Corporation", "EI3" }, { 0x8411C2, 0x800000, 0x8FFFFF, "Leybold GmbH", "LEYBOLD" }, { 0x8411C2, 0x900000, 0x9FFFFF, "C TECH BILISIM TEKNOLOJILERI SAN. VE TIC. A.S.", "C-TECH-BILISIM-TEKNOLOJILERI-SAN-VE-TIC" }, { 0x8411C2, 0xA00000, 0xAFFFFF, "igus GmbH", "IGUS" }, { 0x8411C2, 0xB00000, 0xBFFFFF, "Guangdong Creator&Flyaudio Electronic Technology Co.,LTD", "GUANGDONG-CREATOR-FLYAUDIO" }, { 0x8411C2, 0xC00000, 0xCFFFFF, "Provision-ISR", "PROVISION-ISR" }, { 0x8411C2, 0xD00000, 0xDFFFFF, "Goldmund Switzerland", "GOLDMUND-SWITZERLAND" }, { 0x8411C2, 0xE00000, 0xEFFFFF, "Dangerous Music Group, LLC", "DANGEROUS-MUSIC-GROUP" }, { 0x8439BE, 0x000000, 0x0FFFFF, "HINO ENGINEERING, INC", "HINO-ENGINEERING" }, { 0x8439BE, 0x100000, 0x1FFFFF, "Guangzhou Heygears Technology Ltd", "GUANGZHOU-HEYGEARS" }, { 0x8439BE, 0x200000, 0x2FFFFF, "Cheng Du virtual world Technology Limited.", "CHENG-DU-VIRTUAL-WORLD" }, { 0x8439BE, 0x300000, 0x3FFFFF, "ShenZhen Fudeyu Technology co.,Ltd", "SHENZHEN-FUDEYU" }, { 0x8439BE, 0x400000, 0x4FFFFF, "Shenzhen Ramos Digital Technology Co,.Ltd.", "SHENZHEN-RAMOS-DIGITAL" }, { 0x8439BE, 0x500000, 0x5FFFFF, "Neat S.r.l.", "NEAT" }, { 0x8439BE, 0x600000, 0x6FFFFF, "Shenzhen IP3 Century Intelligent Technology Co., Ltd", "SHENZHEN-IP3-CENTURY-INTELLIGENT" }, { 0x8439BE, 0x800000, 0x8FFFFF, "Diamond Products LLC", "DIAMOND-PRODUCTS" }, { 0x8439BE, 0x900000, 0x9FFFFF, "Guangdong SunMeng Information Technology Co. Ltd.", "GUANGDONG-SUNMENG-INFORMATION" }, { 0x8439BE, 0xA00000, 0xAFFFFF, "Emotiq s.r.l.", "EMOTIQ" }, { 0x8439BE, 0xB00000, 0xBFFFFF, "Shenzhen Horn Audio Co.,Ltd.", "SHENZHEN-HORN-AUDIO" }, { 0x8439BE, 0xC00000, 0xCFFFFF, "EDC Electronic Design Chemnitz GmbH", "EDC-DESIGN-CHEMNITZ" }, { 0x8439BE, 0xD00000, 0xDFFFFF, "Shenzhen Lidaxun Digital Technology Co.,Ltd", "SHENZHEN-LIDAXUN-DIGITAL" }, { 0x8489EC, 0x000000, 0x0FFFFF, "SmartGiant Technology", "SMARTGIANT" }, { 0x8489EC, 0x100000, 0x1FFFFF, "Research Electronics International, LLC.", "RESEARCH-ELECTRONICS" }, { 0x8489EC, 0x200000, 0x2FFFFF, "thousand star tech LTD.", "THOUSAND-STAR-TECH" }, { 0x8489EC, 0x300000, 0x3FFFFF, "Aerionics Inc.", "AERIONICS" }, { 0x8489EC, 0x400000, 0x4FFFFF, "Vayyar Imaging Ltd.", "VAYYAR-IMAGING" }, { 0x8489EC, 0x500000, 0x5FFFFF, "Zephyr Engineering, Inc.", "ZEPHYR-ENGINEERING" }, { 0x8489EC, 0x600000, 0x6FFFFF, "POCT biotechnology", "POCT-BIOTECHNOLOGY" }, { 0x8489EC, 0x700000, 0x7FFFFF, "BYDA Co. Ltd.,", "BYDA" }, { 0x8489EC, 0x800000, 0x8FFFFF, "Arts Digital Technology (HK) Ltd.", "ARTS-DIGITAL-HK" }, { 0x8489EC, 0x900000, 0x9FFFFF, "Shenzhen Xtooltech Co., Ltd", "SHENZHEN-XTOOLTECH" }, { 0x8489EC, 0xA00000, 0xAFFFFF, "Newell Brands", "NEWELL-BRANDS" }, { 0x8489EC, 0xB00000, 0xBFFFFF, "EPSa Elektronik & Präzisionsbau Saalfeld GmbH", "EPSA-ELEKTRONIK-PRAEZISIONSBAU-SAALFELD" }, { 0x8489EC, 0xC00000, 0xCFFFFF, "SHINKAWA LTD.", "SHINKAWA" }, { 0x8489EC, 0xD00000, 0xDFFFFF, "Price Industries Limited", "PRICE-INDUSTRIES" }, { 0x8489EC, 0xE00000, 0xEFFFFF, "Shenzhen Intellifusion Technologies Co., Ltd.", "SHENZHEN-INTELLIFUSION-TECHNOLOGIES" }, { 0x848BCD, 0x000000, 0x0FFFFF, "SouXin Corporate", "SOUXIN-CORPORATE" }, { 0x848BCD, 0x100000, 0x1FFFFF, "Shenzhen LTIME In-Vehicle Entertainment System Company Limited", "SHENZHENLTIMEIN-VEHICLEENTERTAINMENTSYSTEMCOMPANY" }, { 0x848BCD, 0x200000, 0x2FFFFF, "CCX Technologies Inc.", "CCX-TECHNOLOGIES" }, { 0x848BCD, 0x300000, 0x3FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x848BCD, 0x400000, 0x4FFFFF, "Logic Supply", "LOGIC-SUPPLY" }, { 0x848BCD, 0x500000, 0x5FFFFF, "exodraft a/s", "EXODRAFT-A/S" }, { 0x848BCD, 0x600000, 0x6FFFFF, "TWTG R&D B.V.", "TWTG-R-D-B-V" }, { 0x848BCD, 0x700000, 0x7FFFFF, "Smart Code (Shenzhen) Technology Co.,Ltd", "SMARTCODE-SHENZHEN" }, { 0x848BCD, 0x800000, 0x8FFFFF, "Dunst tronic GmbH", "DUNST-TRONIC" }, { 0x848BCD, 0x900000, 0x9FFFFF, "NORALSY", "NORALSY" }, { 0x848BCD, 0xA00000, 0xAFFFFF, "Sphera Telecom", "SPHERA-TELECOM" }, { 0x848BCD, 0xB00000, 0xBFFFFF, "CHONGQING HUAYI KANGDAO TECHNOLOGY CO.,LTD.", "CHONGQING-HUAYI-KANGDAO" }, { 0x848BCD, 0xC00000, 0xCFFFFF, "WORMIT", "WORMIT" }, { 0x848BCD, 0xD00000, 0xDFFFFF, "ENGISAT LDA", "ENGISAT-LDA" }, { 0x848BCD, 0xE00000, 0xEFFFFF, "Emotiv Inc", "EMOTIV" }, { 0x84B386, 0x000000, 0x0FFFFF, "Nan Jing WZX Technology Limited", "NAN-JING-WZX" }, { 0x84B386, 0x100000, 0x1FFFFF, "Sichuan Huakun Zhenyu Intelligent Technology Co., Ltd", "SICHUAN-HUAKUN-ZHENYU-INTELLIGENT" }, { 0x84B386, 0x200000, 0x2FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x84B386, 0x300000, 0x3FFFFF, "Phonesuite", "PHONESUITE" }, { 0x84B386, 0x400000, 0x4FFFFF, "COBHAM", "COBHAM" }, { 0x84B386, 0x500000, 0x5FFFFF, "Fusus", "FUSUS" }, { 0x84B386, 0x600000, 0x6FFFFF, "ALPHA Corporation", "ALPHA" }, { 0x84B386, 0x700000, 0x7FFFFF, "FOTILE GROUP NINGBO FOTILE KITCHENWARE Co.,Ltd", "FOTILE-GROUP-NINGBO-FOTILE-KITCHENWARE" }, { 0x84B386, 0x800000, 0x8FFFFF, "NetworX", "NETWORX" }, { 0x84B386, 0x900000, 0x9FFFFF, "Weiss Robotics GmbH & Co. KG", "WEISS-ROBOTICS" }, { 0x84B386, 0xA00000, 0xAFFFFF, "Velocio Networks, Inc.", "VELOCIO-NETWORKS" }, { 0x84B386, 0xB00000, 0xBFFFFF, "Sineng electric CO., Ltd", "SINENG-ELECTRIC" }, { 0x84B386, 0xC00000, 0xCFFFFF, "Palomar Products Inc", "PALOMAR-PRODUCTS" }, { 0x84B386, 0xD00000, 0xDFFFFF, "Dongguan Amsamotion Automation Technology Co., Ltd", "DONGGUAN-AMSAMOTION-AUTOMATION" }, { 0x84B386, 0xE00000, 0xEFFFFF, "NINGBO XINSUAN TECHNOLOGY CO.,LTD", "NINGBO-XINSUAN" }, { 0x84E0F4, 0x000000, 0x0FFFFF, "ShenZhen Panrich Technology Limited", "SHENZHEN-PANRICH" }, { 0x84E0F4, 0x100000, 0x1FFFFF, "MedicusTek Inc.", "MEDICUSTEK" }, { 0x84E0F4, 0x200000, 0x2FFFFF, "Hangzhou Uni-Ubi Co.,Ltd.", "HANGZHOU-UNI-UBI" }, { 0x84E0F4, 0x300000, 0x3FFFFF, "ASL Intercom B.V.", "ASL-INTERCOM-B-V" }, { 0x84E0F4, 0x400000, 0x4FFFFF, "PetroInTrade", "PETROINTRADE" }, { 0x84E0F4, 0x500000, 0x5FFFFF, "Hangzhou Nationalchip Science & Technology Co.,Ltd.", "HANGZHOU-NATIONALCHIP-SCIENCE" }, { 0x84E0F4, 0x600000, 0x6FFFFF, "Liaoning IK'SONYA Science and Technology Co., Ltd.", "LIAONING-IK-SONYA-SCIENCE" }, { 0x84E0F4, 0x700000, 0x7FFFFF, "Dantherm", "DANTHERM" }, { 0x84E0F4, 0x800000, 0x8FFFFF, "RAY Co.,LTD", "RAY" }, { 0x84E0F4, 0x900000, 0x9FFFFF, "SHENZHEN HCN.ELECTRONICS CO.,LTD.", "SHENZHEN-HCN-ELECTRONICS" }, { 0x84E0F4, 0xA00000, 0xAFFFFF, "iSolution Technologies Co.,Ltd.", "ISOLUTION-TECHNOLOGIES" }, { 0x84E0F4, 0xB00000, 0xBFFFFF, "Orchard Electronics Co., Ltd.", "ORCHARD-ELECTRONICS" }, { 0x84E0F4, 0xC00000, 0xCFFFFF, "AIMTRON CORPORATION", "AIMTRON" }, { 0x84E0F4, 0xD00000, 0xDFFFFF, "Logos01 Srl", "LOGOS01-SRL" }, { 0x84E0F4, 0xE00000, 0xEFFFFF, "Scale-Tec Ltd.", "SCALE-TEC" }, { 0x883CC5, 0x000000, 0x0FFFFF, "Chengdu Data Sky Technology Co., Ltd.", "CHENGDU-DATA-SKY" }, { 0x883CC5, 0x100000, 0x1FFFFF, "Hanwei Electronics Group Corporation", "HANWEI-ELECTRONICS-GROUP" }, { 0x883CC5, 0x200000, 0x2FFFFF, "NETGEN HITECH SOLUTIONS LLP", "NETGEN-HITECH-SOLUTIONS-LLP" }, { 0x883CC5, 0x300000, 0x3FFFFF, "shenzhen Feng Jing Sheng Electronics Technology Co.,Ltd", "SHENZHEN-FENG-JING-SHENG-ELECTRONICS" }, { 0x883CC5, 0x400000, 0x4FFFFF, "Swabian Instruments GmbH", "SWABIAN-INSTRUMENTS" }, { 0x883CC5, 0x500000, 0x5FFFFF, "Shanghai Ucan Automation Equipment Co., Ltd.", "SHANGHAI-UCAN-AUTOMATION-EQUIPMENT" }, { 0x883CC5, 0x600000, 0x6FFFFF, "mfJebsen Electronics Ltd.", "MFJEBSEN-ELECTRONICS" }, { 0x883CC5, 0x700000, 0x7FFFFF, "KMtronic ltd", "KMTRONIC" }, { 0x883CC5, 0x800000, 0x8FFFFF, "Wuhan Guangying Intelligence Technology Co., Ltd", "WUHAN-GUANGYING-INTELLIGENCE" }, { 0x883CC5, 0x900000, 0x9FFFFF, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0x883CC5, 0xA00000, 0xAFFFFF, "Corigine,Inc.", "CORIGINE" }, { 0x883CC5, 0xB00000, 0xBFFFFF, "Shenzhen shijia chuangxin Technology Co., Ltd", "SHENZHEN-SHIJIA-CHUANGXIN" }, { 0x883CC5, 0xC00000, 0xCFFFFF, "HDL da Amazônia Industria Eletrônica Ltda", "HDL-DA-AMAZNIA-INDUSTRIA-ELETRNICA-LTDA" }, { 0x883CC5, 0xD00000, 0xDFFFFF, "Lenard Enterprises Inc", "LENARD-ENTERPRISES" }, { 0x883CC5, 0xE00000, 0xEFFFFF, "myUpTech AB", "MYUPTECH-AB" }, { 0x885D90, 0x000000, 0x0FFFFF, "FOSHAN HUAGUO OPTICAL CO.,LTD", "FOSHAN-HUAGUO-OPTICAL" }, { 0x885D90, 0x100000, 0x1FFFFF, "ShenZhen Yuyangsheng technology company LTD", "SHENZHEN-YUYANGSHENG-COMPANY" }, { 0x885D90, 0x200000, 0x2FFFFF, "DAIDONG Industrial System Co., Ltd.", "DAIDONG-INDUSTRIAL-SYSTEM" }, { 0x885D90, 0x300000, 0x3FFFFF, "CPAC Systems", "CPAC" }, { 0x885D90, 0x400000, 0x4FFFFF, "Wuhan Strong Electronics Co., Ltd", "WUHAN-STRONG-ELECTRONICS" }, { 0x885D90, 0x500000, 0x5FFFFF, "Shenzhen JingHanDa Electronics Co.Ltd", "SHENZHEN-JINGHANDA-ELECTRONICS" }, { 0x885D90, 0x600000, 0x6FFFFF, "Hi-Profile Achievement (M) Sdn Bhd", "HI-PROFILE-ACHIEVEMENT-M" }, { 0x885D90, 0x700000, 0x7FFFFF, "Schmidt & Co.,(H.K.)Ltd.", "SCHMIDT-H-K" }, { 0x885D90, 0x800000, 0x8FFFFF, "Creative Sensor Inc.", "CREATIVE-SENSOR" }, { 0x885D90, 0x900000, 0x9FFFFF, "Gigatech R&D Corp.", "GIGATECH-R-D" }, { 0x885D90, 0xA00000, 0xAFFFFF, "Shenzhen Speedrun Technologies Co.,Ltd.", "SHENZHEN-SPEEDRUN-TECHNOLOGIES" }, { 0x885D90, 0xB00000, 0xBFFFFF, "Premier Merchandises Limited", "PREMIER-MERCHANDISES" }, { 0x885D90, 0xC00000, 0xCFFFFF, "iRoom GmbH", "IROOM" }, { 0x885D90, 0xD00000, 0xDFFFFF, "Hexaglobe", "HEXAGLOBE" }, { 0x885D90, 0xE00000, 0xEFFFFF, "Unitac Technology Limited", "UNITAC" }, { 0x885D90, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x885FE8, 0x000000, 0x0FFFFF, "Jungheinrich Norderstedt AG & Co. KG", "JUNGHEINRICH-NORDERSTEDT" }, { 0x885FE8, 0x100000, 0x1FFFFF, "Apoidea Technology Co., Ltd.", "APOIDEA" }, { 0x885FE8, 0x200000, 0x2FFFFF, "Opto Engineering", "OPTO-ENGINEERING" }, { 0x885FE8, 0x300000, 0x3FFFFF, "Sonnet Labs Inc.", "SONNET-LABS" }, { 0x885FE8, 0x400000, 0x4FFFFF, "Beijing laiwei Technology Co.,Ltd", "BEIJING-LAIWEI" }, { 0x885FE8, 0x500000, 0x5FFFFF, "Hauch & Bach ApS", "HAUCH-BACH-APS" }, { 0x885FE8, 0x600000, 0x6FFFFF, "Shenzhen Xin Kingbrand Enterprises Co.,Ltd", "SHENZHEN-XIN-KINGBRAND-ENTERPRISES" }, { 0x885FE8, 0x700000, 0x7FFFFF, "Red Technologies, LLC.", "RED-TECHNOLOGIES" }, { 0x885FE8, 0x800000, 0x8FFFFF, "Changsha Xiangji-Haidun Technology Co., Ltd", "CHANGSHA-XIANGJI-HAIDUN" }, { 0x885FE8, 0x900000, 0x9FFFFF, "Sowee", "SOWEE" }, { 0x885FE8, 0xA00000, 0xAFFFFF, "Lisle Design Ltd", "LISLE-DESIGN" }, { 0x885FE8, 0xB00000, 0xBFFFFF, "Shenzhen ORVIBO Technology Co., Ltd", "SHENZHEN-ORVIBO" }, { 0x885FE8, 0xC00000, 0xCFFFFF, "Inor Process AB", "INOR-PROCESS-AB" }, { 0x885FE8, 0xD00000, 0xDFFFFF, "zhejiang yuanwang communication technolgy co.,ltd", "ZHEJIANG-YUANWANG-COMMUNICATION-TECHNOLGY" }, { 0x885FE8, 0xE00000, 0xEFFFFF, "Unicom Global, Inc.", "UNICOM-GLOBAL" }, { 0x88A6EF, 0x000000, 0x0FFFFF, "Energet LLC", "ENERGET" }, { 0x88A6EF, 0x100000, 0x1FFFFF, "Shenzhen YAKO Automation Technology Co.,Ltd.", "SHENZHEN-YAKO-AUTOMATION" }, { 0x88A6EF, 0x200000, 0x2FFFFF, "METRO ELECTRONICS", "METRO-ELECTRONICS" }, { 0x88A6EF, 0x300000, 0x3FFFFF, "Enlaps", "ENLAPS" }, { 0x88A6EF, 0x400000, 0x4FFFFF, "PT communication Systems Pvt LTD", "PT-COMMUNICATION-PVT" }, { 0x88A6EF, 0x500000, 0x5FFFFF, "Labpano Technology (Changzhou) Co., Ltd.", "LABPANO-CHANGZHOU" }, { 0x88A6EF, 0x600000, 0x6FFFFF, "ShenZhen KZIot Technology LLC.", "SHENZHEN-KZIOT" }, { 0x88A6EF, 0x700000, 0x7FFFFF, "TRUWIN", "TRUWIN" }, { 0x88A6EF, 0x800000, 0x8FFFFF, "TechPLEX Inc.", "TECHPLEX" }, { 0x88A6EF, 0x900000, 0x9FFFFF, "Kii Audio GmbH", "KII-AUDIO" }, { 0x88A6EF, 0xA00000, 0xAFFFFF, "Draper, Inc.", "DRAPER" }, { 0x88A6EF, 0xB00000, 0xBFFFFF, "Beijing ThinRedline Technology Co.,Ltd.", "BEIJING-THINREDLINE" }, { 0x88A6EF, 0xC00000, 0xCFFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0x88A6EF, 0xD00000, 0xDFFFFF, "Hash Mining s.r.o.", "HASH-MINING-S-R-O" }, { 0x88A6EF, 0xE00000, 0xEFFFFF, "IONA Tech", "IONA-TECH" }, { 0x88A9A7, 0x000000, 0x0FFFFF, "Shenzhenshi kechuangzhixian technology Co.LTD", "SHENZHENSHI-KECHUANGZHIXIAN" }, { 0x88A9A7, 0x100000, 0x1FFFFF, "Solaredge LTD.", "SOLAREDGE" }, { 0x88A9A7, 0x200000, 0x2FFFFF, "Honeywell spol. s.r.o. HTS CZ o.z.", "HONEYWELL-SPOL-S-R-O-HTS-CZ-O-Z" }, { 0x88A9A7, 0x300000, 0x3FFFFF, "Mikroelektronika", "MIKROELEKTRONIKA" }, { 0x88A9A7, 0x400000, 0x4FFFFF, "Thomas & Darden, Inc", "THOMAS-DARDEN" }, { 0x88A9A7, 0x500000, 0x5FFFFF, "Volterman Inc.", "VOLTERMAN" }, { 0x88A9A7, 0x600000, 0x6FFFFF, "Sieper Lüdenscheid GmbH & Co. KG", "SIEPER-LUEDENSCHEID" }, { 0x88A9A7, 0x700000, 0x7FFFFF, "kimura giken corporation", "KIMURA-GIKEN" }, { 0x88A9A7, 0x800000, 0x8FFFFF, "psb intralogistics GmbH", "PSB-INTRALOGISTICS" }, { 0x88A9A7, 0x900000, 0x9FFFFF, "FlashForge Corporation", "FLASHFORGE" }, { 0x88A9A7, 0xA00000, 0xAFFFFF, "Zhejiang Haoteng Electronic Technology Co.,Ltd.", "ZHEJIANG-HAOTENG" }, { 0x88A9A7, 0xB00000, 0xBFFFFF, "TWK-ELEKTRONIK", "TWK-ELEKTRONIK" }, { 0x88A9A7, 0xC00000, 0xCFFFFF, "AndroVideo Inc.", "ANDROVIDEO" }, { 0x88A9A7, 0xD00000, 0xDFFFFF, "AVLINK INDUSTRIAL CO., LTD", "AVLINK-INDUSTRIAL" }, { 0x88A9A7, 0xE00000, 0xEFFFFF, "Impact Distribution", "IMPACT-DISTRIBUTION" }, { 0x88C9B3, 0x000000, 0x0FFFFF, "ADOPT NETTECH PVT LTD", "ADOPT-NETTECH-PVT" }, { 0x88C9B3, 0x100000, 0x1FFFFF, "Cervoz Technology Co; Ltd.", "CERVOZ" }, { 0x88C9B3, 0x200000, 0x2FFFFF, "shenzhen franklin ESS technology CO.,Ltd", "SHENZHEN-FRANKLIN-ESS" }, { 0x88C9B3, 0x300000, 0x3FFFFF, "Fortive Setra-ICG(Tianjin)Co.,Ltd", "FORTIVE-SETRA-ICG-TIANJIN" }, { 0x88C9B3, 0x400000, 0x4FFFFF, "Hasbro Inc", "HASBRO" }, { 0x88C9B3, 0x500000, 0x5FFFFF, "Brabender Technologie GmbH & Co, KG", "BRABENDER-TECHNOLOGIE" }, { 0x88C9B3, 0x600000, 0x6FFFFF, "Hugo Techno", "HUGO-TECHNO" }, { 0x88C9B3, 0x700000, 0x7FFFFF, "Robert Bosch JuP1", "ROBERT-BOSCH-JUP1" }, { 0x88C9B3, 0x800000, 0x8FFFFF, "Divelbiss Corporation", "DIVELBISS" }, { 0x88C9B3, 0x900000, 0x9FFFFF, "Richbeam (Beijing) Technology Co., Ltd.", "RICHBEAM-BEIJING" }, { 0x88C9B3, 0xA00000, 0xAFFFFF, "WEG AUTOMATION EUROPE S.R.L.", "WEG-AUTOMATION-EUROPE" }, { 0x88C9B3, 0xB00000, 0xBFFFFF, "Shenzhen MMUI Co.,Ltd", "SHENZHEN-MMUI" }, { 0x88C9B3, 0xC00000, 0xCFFFFF, "Shenzhen Viewsmart Technology Co.,Ltd", "SHENZHEN-VIEWSMART" }, { 0x88C9B3, 0xD00000, 0xDFFFFF, "Origins Technology Limited", "ORIGINS" }, { 0x88C9B3, 0xE00000, 0xEFFFFF, "Sercomm Corporation.", "SERCOMM" }, { 0x8C147D, 0x000000, 0x0FFFFF, "Nio", "NIO" }, { 0x8C147D, 0x100000, 0x1FFFFF, "Private", "PRIVATE" }, { 0x8C147D, 0x200000, 0x2FFFFF, "Agilent S.p.A", "AGILENT" }, { 0x8C147D, 0x300000, 0x3FFFFF, "Remotec Technology Limited", "REMOTEC" }, { 0x8C147D, 0x400000, 0x4FFFFF, "Nanjing bilian information Technology Co.,Ltd.", "NANJING-BILIAN-INFORMATION" }, { 0x8C147D, 0x500000, 0x5FFFFF, "Unwired Networks", "UNWIRED-NETWORKS" }, { 0x8C147D, 0x600000, 0x6FFFFF, "Shenzhen Meidou Technology Co, Ltd.", "SHENZHEN-MEIDOU" }, { 0x8C147D, 0x700000, 0x7FFFFF, "UrbanHello", "URBANHELLO" }, { 0x8C147D, 0x800000, 0x8FFFFF, "V2 S.p.A.", "V2" }, { 0x8C147D, 0x900000, 0x9FFFFF, "Anyware Solutions ApS", "ANYWARE-SOLUTIONS-APS" }, { 0x8C147D, 0xA00000, 0xAFFFFF, "Bluemega Document & Print Services", "BLUEMEGA-DOCUMENT-PRINT-SERVICES" }, { 0x8C147D, 0xB00000, 0xBFFFFF, "Bausch Datacom NV/SA", "BAUSCH-DATACOM-NV/" }, { 0x8C147D, 0xC00000, 0xCFFFFF, "Reynaers Aluminium", "REYNAERS-ALUMINIUM" }, { 0x8C147D, 0xD00000, 0xDFFFFF, "Shenzhen Lanxus technology Co. Ltd.", "SHENZHEN-LANXUS" }, { 0x8C147D, 0xE00000, 0xEFFFFF, "Electrical & Automation Larsen & Toubro Limited", "ELECTRICAL-AUTOMATION-LARSEN-TOUBRO" }, { 0x8C192D, 0x000000, 0x0FFFFF, "Noritsu Precision Co., Ltd.", "NORITSU-PRECISION" }, { 0x8C192D, 0x100000, 0x1FFFFF, "Shenzhen Huanuo Internet Technology Co.,Ltd", "SHENZHEN-HUANUO-INTERNET" }, { 0x8C192D, 0x200000, 0x2FFFFF, "DataRemote Inc.", "DATAREMOTE" }, { 0x8C192D, 0x300000, 0x3FFFFF, "Greenfield Technology", "GREENFIELD" }, { 0x8C192D, 0x400000, 0x4FFFFF, "Charmlink Tech(HK) Co.,Limited", "CHARMLINK-TECH-HK" }, { 0x8C192D, 0x500000, 0x5FFFFF, "ELCO(TIANJIN)ELECTRONICS CO.,LTD.", "ELCO-TIANJIN-ELECTRONICS" }, { 0x8C192D, 0x600000, 0x6FFFFF, "smartHome Partner GmbH", "SMARTHOME-PARTNER" }, { 0x8C192D, 0x700000, 0x7FFFFF, "SRETT", "SRETT" }, { 0x8C192D, 0x800000, 0x8FFFFF, "Shenzhen Cylan Technology Co.,Ltd", "SHENZHEN-CYLAN" }, { 0x8C192D, 0x900000, 0x9FFFFF, "ViaWear, Inc.", "VIAWEAR" }, { 0x8C192D, 0xA00000, 0xAFFFFF, "TeleAlarm SA", "TELEALARM" }, { 0x8C192D, 0xB00000, 0xBFFFFF, "Abside Networks, Inc.", "ABSIDE-NETWORKS" }, { 0x8C192D, 0xC00000, 0xCFFFFF, "You Zhengcheng co.,ltd", "YOU-ZHENGCHENG" }, { 0x8C192D, 0xD00000, 0xDFFFFF, "Pyras Technology Inc.", "PYRAS" }, { 0x8C192D, 0xE00000, 0xEFFFFF, "Elcon AB", "ELCON-AB" }, { 0x8C1CDA, 0x000000, 0x0FFFFF, "CEOS Pty Ltd", "CEOS-PTY" }, { 0x8C1CDA, 0x100000, 0x1FFFFF, "GESAS GmbH", "GESAS" }, { 0x8C1CDA, 0x200000, 0x2FFFFF, "GEOMC", "GEOMC" }, { 0x8C1CDA, 0x300000, 0x3FFFFF, "Structura Technology & Innovation", "STRUCTURA-INNOVATION" }, { 0x8C1CDA, 0x400000, 0x4FFFFF, "Anntec (Beijing) Technology Co.,Ltd.", "ANNTEC-BEIJING" }, { 0x8C1CDA, 0x500000, 0x5FFFFF, "Septentrio NV", "SEPTENTRIO-NV" }, { 0x8C1CDA, 0x600000, 0x6FFFFF, "LocoLabs LLC", "LOCOLABS" }, { 0x8C1CDA, 0x700000, 0x7FFFFF, "K Technology Corporation", "K" }, { 0x8C1CDA, 0x800000, 0x8FFFFF, "ATOL LLC", "ATOL" }, { 0x8C1CDA, 0x900000, 0x9FFFFF, "Raychem RPG PVT. LTD.", "RAYCHEM-RPG-PVT" }, { 0x8C1CDA, 0xA00000, 0xAFFFFF, "China Potevio Co., Ltd", "CHINA-POTEVIO" }, { 0x8C1CDA, 0xB00000, 0xBFFFFF, "T+A elektroakustik GmbH & Co.KG", "T+A-ELEKTROAKUSTIK" }, { 0x8C1CDA, 0xC00000, 0xCFFFFF, "Alcidae Inc", "ALCIDAE" }, { 0x8C1CDA, 0xD00000, 0xDFFFFF, "Riegl Laser Measurement Systems GmbH", "RIEGL-LASER-MEASUREMENT" }, { 0x8C1CDA, 0xE00000, 0xEFFFFF, "Electronic Controlled Systems, Inc.", "CONTROLLED" }, { 0x8C476E, 0x000000, 0x0FFFFF, "Chipsafer Pte. Ltd.", "CHIPSAFER-PTE" }, { 0x8C476E, 0x100000, 0x1FFFFF, "TelWare Corporation", "TELWARE" }, { 0x8C476E, 0x200000, 0x2FFFFF, "HuiZhou MIKI Communication Equipment Co.,LTD", "HUIZHOU-MIKI-COMMUNICATION-EQUIPMENT" }, { 0x8C476E, 0x300000, 0x3FFFFF, "Shanghai Satellite Communication Technology Co.,Ltd", "SHANGHAI-SATELLITE-COMMUNICATION" }, { 0x8C476E, 0x400000, 0x4FFFFF, "Shenzhen Juding Electronics Co., Ltd.", "SHENZHEN-JUDING-ELECTRONICS" }, { 0x8C476E, 0x500000, 0x5FFFFF, "Square Inc.", "SQUARE" }, { 0x8C476E, 0x600000, 0x6FFFFF, "Oxford Nanopore Technologies Ltd.", "OXFORD-NANOPORE-TECHNOLOGIES" }, { 0x8C476E, 0x700000, 0x7FFFFF, "Syng, Inc.", "SYNG" }, { 0x8C476E, 0x800000, 0x8FFFFF, "IntelliVIX Co. Ltd.", "INTELLIVIX" }, { 0x8C476E, 0x900000, 0x9FFFFF, "Xertified AB", "XERTIFIED-AB" }, { 0x8C476E, 0xA00000, 0xAFFFFF, "AU Optronics Corporation", "AU-OPTRONICS" }, { 0x8C476E, 0xB00000, 0xBFFFFF, "Faravid Communication&Data Analysis", "FARAVID-COMMUNICATION-DATA-ANALYSIS" }, { 0x8C476E, 0xC00000, 0xCFFFFF, "Edge Networks Inc", "EDGE-NETWORKS" }, { 0x8C476E, 0xD00000, 0xDFFFFF, "innolectric AG", "INNOLECTRIC" }, { 0x8C476E, 0xE00000, 0xEFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x8C5109, 0x000000, 0x0FFFFF, "TianJin JointOptic Technology Co., LTD.", "TIANJIN-JOINTOPTIC" }, { 0x8C5109, 0x100000, 0x1FFFFF, "Amzetta Technologies, LLC", "AMZETTA-TECHNOLOGIES" }, { 0x8C5109, 0x200000, 0x2FFFFF, "PROCET Technology Co., Ltd(HK)", "PROCET-HK" }, { 0x8C5109, 0x300000, 0x3FFFFF, "SHENZHEN LDROBOT CO., LTD.", "SHENZHEN-LDROBOT" }, { 0x8C5109, 0x400000, 0x4FFFFF, "Shenzhen WOWOTO Technology Co., Ltd.", "SHENZHEN-WOWOTO" }, { 0x8C5109, 0x500000, 0x5FFFFF, "Heliox Automotive B.V.", "HELIOX-AUTOMOTIVE-B-V" }, { 0x8C5109, 0x600000, 0x6FFFFF, "Avxav Electronic Trading LLC", "AVXAV-TRADING" }, { 0x8C5109, 0x700000, 0x7FFFFF, "ENPLUG Co., Ltd.", "ENPLUG" }, { 0x8C5109, 0x800000, 0x8FFFFF, "nerospec", "NEROSPEC" }, { 0x8C5109, 0x900000, 0x9FFFFF, "Frontmatec", "FRONTMATEC" }, { 0x8C5109, 0xA00000, 0xAFFFFF, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0x8C5109, 0xB00000, 0xBFFFFF, "Beijing Superhexa Century Technology Co., Ltd.", "BEIJING-SUPERHEXA-CENTURY" }, { 0x8C5109, 0xC00000, 0xCFFFFF, "SpotterRF LLC", "SPOTTERRF" }, { 0x8C5109, 0xD00000, 0xDFFFFF, "Surpedia Technologies Co., Ltd.", "SURPEDIA-TECHNOLOGIES" }, { 0x8C5109, 0xE00000, 0xEFFFFF, "IROOTELLUCKY Corp.", "IROOTELLUCKY" }, { 0x8C593C, 0x000000, 0x0FFFFF, "Fujian Chaozhi Group Co., Ltd.", "FUJIAN-CHAOZHI-GROUP" }, { 0x8C593C, 0x100000, 0x1FFFFF, "Future Robot Technology Co., Limited", "FUTURE-ROBOT" }, { 0x8C593C, 0x200000, 0x2FFFFF, "Beida Jade Bird Universal Fire Alarm Device CO.,LTD.", "BEIDA-JADE-BIRD-UNIVERSAL-FIRE-ALARM-DEVICE" }, { 0x8C593C, 0x300000, 0x3FFFFF, "Chongqing beimoting technology co.ltd", "CHONGQING-BEIMOTING" }, { 0x8C593C, 0x400000, 0x4FFFFF, "Guralp Systems Limited", "GURALP" }, { 0x8C593C, 0x500000, 0x5FFFFF, "Spectranetix", "SPECTRANETIX" }, { 0x8C593C, 0x600000, 0x6FFFFF, "Qbic Technology Co., Ltd", "QBIC" }, { 0x8C593C, 0x700000, 0x7FFFFF, "OBO Pro.2 Inc.", "OBO-PRO-2" }, { 0x8C593C, 0x800000, 0x8FFFFF, "Nanonord A/S", "NANONORD-A/S" }, { 0x8C593C, 0x900000, 0x9FFFFF, "GENIS", "GENIS" }, { 0x8C593C, 0xA00000, 0xAFFFFF, "ecom instruments GmbH", "ECOM-INSTRUMENTS" }, { 0x8C593C, 0xB00000, 0xBFFFFF, "Scharfe-Sicht GmbH", "SCHARFE-SICHT" }, { 0x8C593C, 0xC00000, 0xCFFFFF, "Dantherm Cooling Inc.", "DANTHERM-COOLING" }, { 0x8C593C, 0xD00000, 0xDFFFFF, "IDRO-ELETTRICA S.P.A.", "IDRO-ELETTRICA" }, { 0x8C593C, 0xE00000, 0xEFFFFF, "Shenzhen Tian-Power Technology Co.,Ltd.", "SHENZHEN-TIAN-POWER" }, { 0x8C5DB2, 0x000000, 0x0FFFFF, "NPP NTT LLC", "NPP-NTT" }, { 0x8C5DB2, 0x100000, 0x1FFFFF, "DAYOUPLUS", "DAYOUPLUS" }, { 0x8C5DB2, 0x200000, 0x2FFFFF, "F+ Networks", "F+-NETWORKS" }, { 0x8C5DB2, 0x300000, 0x3FFFFF, "Yuzhou Zhongnan lnformation Technology Co.,Ltd", "YUZHOU-ZHONGNAN-LNFORMATION" }, { 0x8C5DB2, 0x400000, 0x4FFFFF, "CoreTigo", "CORETIGO" }, { 0x8C5DB2, 0x500000, 0x5FFFFF, "Unite Audio", "UNITE-AUDIO" }, { 0x8C5DB2, 0x600000, 0x6FFFFF, "SmartMore Corporation Limited", "SMARTMORE" }, { 0x8C5DB2, 0x700000, 0x7FFFFF, "Cleartex s.r.o.", "CLEARTEX-S-R-O" }, { 0x8C5DB2, 0x800000, 0x8FFFFF, "Guangzhou Phimax Electronic Technology Co.,Ltd", "GUANGZHOU-PHIMAX" }, { 0x8C5DB2, 0x900000, 0x9FFFFF, "ISSENDORFF KG", "ISSENDORFF" }, { 0x8C5DB2, 0xA00000, 0xAFFFFF, "Beijing Scistor Technologies Co., Ltd", "BEIJING-SCISTOR-TECHNOLOGIES" }, { 0x8C5DB2, 0xB00000, 0xBFFFFF, "NADDOD", "NADDOD" }, { 0x8C5DB2, 0xC00000, 0xCFFFFF, "HEXIN Technologies Co., Ltd.", "HEXIN-TECHNOLOGIES" }, { 0x8C5DB2, 0xD00000, 0xDFFFFF, "Guandong Yuhang Automation Technology Co.,Ltd", "GUANDONG-YUHANG-AUTOMATION" }, { 0x8C5DB2, 0xE00000, 0xEFFFFF, "Surbhi Satcom Pvt Ltd", "SURBHI-SATCOM-PVT" }, { 0x8CAE49, 0x000000, 0x0FFFFF, "Ouman Oy", "OUMAN-OY" }, { 0x8CAE49, 0x100000, 0x1FFFFF, "H3 Platform", "H3-PLATFORM" }, { 0x8CAE49, 0x200000, 0x2FFFFF, "SEVERIN Elektrogeräte GmbH", "SEVERIN-ELEKTROGERAETE" }, { 0x8CAE49, 0x300000, 0x3FFFFF, "BERTIN TECHNOLOGIES", "BERTIN-TECHNOLOGIES" }, { 0x8CAE49, 0x400000, 0x4FFFFF, "Jiangsu Sixingda Information Technology Co., Ltd.", "JIANGSU-SIXINGDA-INFORMATION" }, { 0x8CAE49, 0x500000, 0x5FFFFF, "Gati Information Technolog(Kunshan)Co.,Ltd.", "GATI-INFORMATION-TECHNOLOG-KUNSHAN" }, { 0x8CAE49, 0x600000, 0x6FFFFF, "Chengdu BillDTE Technology Co., Ltd", "CHENGDU-BILLDTE" }, { 0x8CAE49, 0x700000, 0x7FFFFF, "Precitec Optronik GmbH", "PRECITEC-OPTRONIK" }, { 0x8CAE49, 0x800000, 0x8FFFFF, "LLC Taipit - Measuring Equipment", "LLC-TAIPIT-MEASURING-EQUIPMENT" }, { 0x8CAE49, 0x900000, 0x9FFFFF, "TTR Corporation", "TTR" }, { 0x8CAE49, 0xA00000, 0xAFFFFF, "Gigawave", "GIGAWAVE" }, { 0x8CAE49, 0xB00000, 0xBFFFFF, "Suzhou Guowang Electronics Technology Co., Ltd.", "SUZHOU-GUOWANG-ELECTRONICS" }, { 0x8CAE49, 0xC00000, 0xCFFFFF, "Parametric GmbH", "PARAMETRIC" }, { 0x8CAE49, 0xD00000, 0xDFFFFF, "Larch Networks", "LARCH-NETWORKS" }, { 0x8CAE49, 0xE00000, 0xEFFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0x8CC8F4, 0x000000, 0x0FFFFF, "Guardtec,Inc", "GUARDTEC" }, { 0x8CC8F4, 0x100000, 0x1FFFFF, "Lanhomex Technology(Shen Zhen)Co.,Ltd.", "LANHOMEX-SHEN-ZHEN" }, { 0x8CC8F4, 0x200000, 0x2FFFFF, "Dark Horse Connect LLC", "DARK-HORSE-CONNECT" }, { 0x8CC8F4, 0x300000, 0x3FFFFF, "TOHO DENKI IND.CO.,LTD", "TOHO-DENKI-IND" }, { 0x8CC8F4, 0x400000, 0x4FFFFF, "ITECH Electronic Co.,ltd.", "ITECH" }, { 0x8CC8F4, 0x500000, 0x5FFFFF, "Beijing KXWELL Technology CO., LTD", "BEIJING-KXWELL" }, { 0x8CC8F4, 0x600000, 0x6FFFFF, "SHENZHEN D-light Technolgy Limited", "SHENZHEN-D-LIGHT-TECHNOLGY" }, { 0x8CC8F4, 0x700000, 0x7FFFFF, "TableSafe", "TABLESAFE" }, { 0x8CC8F4, 0x800000, 0x8FFFFF, "Strongbyte Solutions Limited", "STRONGBYTE-SOLUTIONS" }, { 0x8CC8F4, 0x900000, 0x9FFFFF, "Swift Navigation Inc", "SWIFT-NAVIGATION" }, { 0x8CC8F4, 0xA00000, 0xAFFFFF, "Trilux Group Management GmbH", "TRILUX-GROUP-MANAGEMENT" }, { 0x8CC8F4, 0xB00000, 0xBFFFFF, "PTYPE Co., LTD.", "PTYPE" }, { 0x8CC8F4, 0xC00000, 0xCFFFFF, "Shenzhen KSTAR Science and Technology Co., Ltd", "SHENZHEN-KSTAR-SCIENCE" }, { 0x8CC8F4, 0xD00000, 0xDFFFFF, "Beijing Xinxunxintong Eletronics Co.,Ltd", "BEIJING-XINXUNXINTONG-ELETRONICS" }, { 0x8CC8F4, 0xE00000, 0xEFFFFF, "Evaporcool Solutions", "EVAPORCOOL-SOLUTIONS" }, { 0x904E91, 0x000000, 0x0FFFFF, "Spirtech", "SPIRTECH" }, { 0x904E91, 0x100000, 0x1FFFFF, "Apollo Video Technology", "APOLLO-VIDEO" }, { 0x904E91, 0x200000, 0x2FFFFF, "North Pole Engineering, Inc.", "NORTH-POLE-ENGINEERING" }, { 0x904E91, 0x300000, 0x3FFFFF, "Teleepoch Ltd", "TELEEPOCH" }, { 0x904E91, 0x400000, 0x4FFFFF, "Wrtnode technology Inc.", "WRTNODE" }, { 0x904E91, 0x500000, 0x5FFFFF, "mcf88 SRL", "MCF88-SRL" }, { 0x904E91, 0x600000, 0x6FFFFF, "Nuwa Robotics (HK) Limited Taiwan Branch", "NUWA-ROBOTICS-HK-TAIWAN-BRANCH" }, { 0x904E91, 0x700000, 0x7FFFFF, "IBM", "IBM" }, { 0x904E91, 0x800000, 0x8FFFFF, "CommandScape, Inc.", "COMMANDSCAPE" }, { 0x904E91, 0x900000, 0x9FFFFF, "CUTTER Systems spol. s r.o.", "CUTTER-SPOL-S-R-O" }, { 0x904E91, 0xA00000, 0xAFFFFF, "Kaertech Limited", "KAERTECH" }, { 0x904E91, 0xB00000, 0xBFFFFF, "Shanghai JaWay Information Technology Co., Ltd.", "SHANGHAI-JAWAY-INFORMATION" }, { 0x904E91, 0xC00000, 0xCFFFFF, "Showtacle s.r.o.", "SHOWTACLE-S-R-O" }, { 0x904E91, 0xD00000, 0xDFFFFF, "SKODA ELECTRIC a.s.", "SKODA-ELECTRIC" }, { 0x904E91, 0xE00000, 0xEFFFFF, "Shenzhen Cloudynamo Internet Technologies Co.,LTD.", "SHENZHEN-CLOUDYNAMO-INTERNET-TECHNOLOGIES" }, { 0x90C682, 0x000000, 0x0FFFFF, "Shenzhen Lencotion Technology Co.,Ltd", "SHENZHEN-LENCOTION" }, { 0x90C682, 0x100000, 0x1FFFFF, "Shenzhen Photon Broadband Technology CO., LTD", "SHENZHEN-PHOTON-BROADBAND" }, { 0x90C682, 0x200000, 0x2FFFFF, "ekey biometric systems gmbh", "EKEY-BIOMETRIC" }, { 0x90C682, 0x300000, 0x3FFFFF, "Innovative Electronic Technology", "INNOVATIVE" }, { 0x90C682, 0x400000, 0x4FFFFF, "Neone, Inc.", "NEONE" }, { 0x90C682, 0x500000, 0x5FFFFF, "S.A.E.T. S.R.L.", "E-T" }, { 0x90C682, 0x600000, 0x6FFFFF, "Nanjing Jiexi Technologies Co., Ltd.", "NANJING-JIEXI-TECHNOLOGIES" }, { 0x90C682, 0x700000, 0x7FFFFF, "Cinet Inc", "CINET" }, { 0x90C682, 0x800000, 0x8FFFFF, "Teletek Electronics", "TELETEK-ELECTRONICS" }, { 0x90C682, 0x900000, 0x9FFFFF, "ACT", "ACT" }, { 0x90C682, 0xA00000, 0xAFFFFF, "Beijing Acorn Networks Corporation", "BEIJING-ACORN-NETWORKS" }, { 0x90C682, 0xB00000, 0xBFFFFF, "Lachmann & Rink GmbH", "LACHMANN-RINK" }, { 0x90C682, 0xC00000, 0xCFFFFF, "Li Seng Technology Ltd.", "LI-SENG" }, { 0x90C682, 0xD00000, 0xDFFFFF, "PowerShield Limited", "POWERSHIELD" }, { 0x90C682, 0xE00000, 0xEFFFFF, "Shanghai HuRong Communication Technology Development Co., Ltd.", "SHANGHAI-HURONG-COMMUNICATION-DEVELOPMENT" }, { 0x90C682, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x90E2FC, 0x000000, 0x0FFFFF, "PEA (DBT-Technology)", "PEA-DBT" }, { 0x90E2FC, 0x100000, 0x1FFFFF, "Yite technology", "YITE" }, { 0x90E2FC, 0x200000, 0x2FFFFF, "ShenZhen Temwey Innovation Technology Co.,Ltd.", "SHENZHEN-TEMWEY-INNOVATION" }, { 0x90E2FC, 0x300000, 0x3FFFFF, "Shenzhen Hisource Technology Development CO.,Ltd.", "SHENZHEN-HISOURCE-DEVELOPMENT" }, { 0x90E2FC, 0x400000, 0x4FFFFF, "Dongguan Kangyong electronics technology Co. Ltd", "DONGGUAN-KANGYONG-ELECTRONICS" }, { 0x90E2FC, 0x500000, 0x5FFFFF, "TOTALONE TECHNOLOGY CO., LTD.", "TOTALONE" }, { 0x90E2FC, 0x600000, 0x6FFFFF, "Sindoh Techno Co., Ltd.", "SINDOH-TECHNO" }, { 0x90E2FC, 0x700000, 0x7FFFFF, "Fair Winds Digital srl", "FAIR-WINDS-DIGITAL-SRL" }, { 0x90E2FC, 0x800000, 0x8FFFFF, "bitsensing Inc.", "BITSENSING" }, { 0x90E2FC, 0x900000, 0x9FFFFF, "Huddly AS", "HUDDLY-AS" }, { 0x90E2FC, 0xA00000, 0xAFFFFF, "Power Engineering & Manufacturing, Inc.", "POWER-ENGINEERING-MANUFACTURING" }, { 0x90E2FC, 0xB00000, 0xBFFFFF, "Shenzhen Dingsheng Intelligent Technology Co., Ltd", "SHENZHEN-DINGSHENG-INTELLIGENT" }, { 0x90E2FC, 0xC00000, 0xCFFFFF, "Stanley Security", "STANLEY-SECURITY" }, { 0x90E2FC, 0xD00000, 0xDFFFFF, "Beijing Lanxum Computer Technology CO.,LTD.", "BEIJING-LANXUM" }, { 0x90E2FC, 0xE00000, 0xEFFFFF, "DevCom spol. s r.o.", "DEVCOM-SPOL-S-R-O" }, { 0x90F421, 0x000000, 0x0FFFFF, "Gemstone Lights", "GEMSTONE-LIGHTS" }, { 0x90F421, 0x100000, 0x1FFFFF, "BeEnergy SG GmbH", "BEENERGY-SG" }, { 0x90F421, 0x200000, 0x2FFFFF, "Catvision Ltd.", "CATVISION" }, { 0x90F421, 0x300000, 0x3FFFFF, "Sinpeng(Guangzhou)Technology Co.,Ltd", "SINPENG-GUANGZHOU" }, { 0x90F421, 0x400000, 0x4FFFFF, "Sansap Technology Pvt. Ltd.", "SANSAP-PVT" }, { 0x90F421, 0x500000, 0x5FFFFF, "DESKO GmbH", "DESKO" }, { 0x90F421, 0x600000, 0x6FFFFF, "Wuxi Sunning Smart Devices Co.,Ltd", "WUXI-SUNNING-SMART-DEVICES" }, { 0x90F421, 0x700000, 0x7FFFFF, "Senstar Corporation", "SENSTAR" }, { 0x90F421, 0x800000, 0x8FFFFF, "Mi-Jack Products", "MI-JACK-PRODUCTS" }, { 0x90F421, 0x900000, 0x9FFFFF, "Twunicom Life Tech. Co., Ltd.", "TWUNICOM-LIFE-TECH" }, { 0x90F421, 0xA00000, 0xAFFFFF, "Proqualit Telecom LTDA", "PROQUALIT-TELECOM-LTDA" }, { 0x90F421, 0xB00000, 0xBFFFFF, "Jiangsu MSInfo Technology Co.,Ltd.", "JIANGSU-MSINFO" }, { 0x90F421, 0xC00000, 0xCFFFFF, "ACOBA", "ACOBA" }, { 0x90F421, 0xD00000, 0xDFFFFF, "Taichitel Technology Shanghai Co.,Ltd.", "TAICHITEL-SHANGHAI" }, { 0x90F421, 0xE00000, 0xEFFFFF, "Velan Studios Inc.", "VELAN-STUDIOS" }, { 0x9405BB, 0x000000, 0x0FFFFF, "Qingdao Maotran Electronics co., ltd", "QINGDAO-MAOTRAN-ELECTRONICS" }, { 0x9405BB, 0x100000, 0x1FFFFF, "Dongguan Kingtron Electronics Tech Co., Ltd", "DONGGUAN-KINGTRON-ELECTRONICS-TECH" }, { 0x9405BB, 0x200000, 0x2FFFFF, "Dongguan CXWE Technology Co.,Ltd.", "DONGGUAN-CXWE" }, { 0x9405BB, 0x300000, 0x3FFFFF, "Neutrik AG", "NEUTRIK" }, { 0x9405BB, 0x400000, 0x4FFFFF, "Shenzhen Baolijie Technology Co., Ltd.", "SHENZHEN-BAOLIJIE" }, { 0x9405BB, 0x500000, 0x5FFFFF, "Chengdu Zhongheng Network Co.,Ltd.", "CHENGDU-ZHONGHENG-NETWORK" }, { 0x9405BB, 0x600000, 0x6FFFFF, "ZIGPOS GmbH", "ZIGPOS" }, { 0x9405BB, 0x700000, 0x7FFFFF, "closip Inc.", "CLOSIP" }, { 0x9405BB, 0x800000, 0x8FFFFF, "iungo", "IUNGO" }, { 0x9405BB, 0x900000, 0x9FFFFF, "Zimmer GmbH", "ZIMMER" }, { 0x9405BB, 0xA00000, 0xAFFFFF, "SolarEdge Technologies", "SOLAREDGE-TECHNOLOGIES" }, { 0x9405BB, 0xB00000, 0xBFFFFF, "AUSTAR HEARING SCIENCE AND TECHNILIGY(XIAMEN)CO.,LTD", "AUSTAR-HEARING-SCIENCE-AND-TECHNILIGY-XIAMEN" }, { 0x9405BB, 0xC00000, 0xCFFFFF, "LAO INDUSTRIA LTDA", "LAO-INDUSTRIA-LTDA" }, { 0x9405BB, 0xD00000, 0xDFFFFF, "Sunthink S&T Development Co.,Ltd", "SUNTHINK-S-T-DEVELOPMENT" }, { 0x9405BB, 0xE00000, 0xEFFFFF, "BAE Systems", "BAE" }, { 0x94C9B7, 0x000000, 0x0FFFFF, "Fairy Devices Inc.", "FAIRY-DEVICES" }, { 0x94C9B7, 0x100000, 0x1FFFFF, "C-Mer Rainsoptics Limited", "C-MER-RAINSOPTICS" }, { 0x94C9B7, 0x200000, 0x2FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x94C9B7, 0x300000, 0x3FFFFF, "Sitronics JSC", "SITRONICS-JSC" }, { 0x94C9B7, 0x400000, 0x4FFFFF, "Zhejiang Hengjie Communication Technology Co,. Ltd.", "ZHEJIANG-HENGJIE-COMMUNICATION" }, { 0x94C9B7, 0x500000, 0x5FFFFF, "Beijing Anyunshiji Technology Co., Ltd.", "BEIJING-ANYUNSHIJI" }, { 0x94C9B7, 0x600000, 0x6FFFFF, "Realtimes Beijing Technology Co., Ltd.", "REALTIMES-BEIJING" }, { 0x94C9B7, 0x700000, 0x7FFFFF, "MAMMOTHTEK CLOUD(DONG GUAN)TECHNOLOGY CO., LTD", "MAMMOTHTEK-CLOUD-DONG-GUAN" }, { 0x94C9B7, 0x800000, 0x8FFFFF, "OSOM Products Inc", "OSOM-PRODUCTS" }, { 0x94C9B7, 0x900000, 0x9FFFFF, "Titanium union(shenzhen)technology co.,ltd", "TITANIUM-UNION-SHENZHEN" }, { 0x94C9B7, 0xA00000, 0xAFFFFF, "ShenZhen Beide Technology Co.,LTD", "SHENZHEN-BEIDE" }, { 0x94C9B7, 0xB00000, 0xBFFFFF, "3D Biomedicine Science & Technology Co., Limited", "3D-BIOMEDICINE-SCIENCE" }, { 0x94C9B7, 0xC00000, 0xCFFFFF, "Jinjin Technology (Shenzhen) Co., Ltd", "JINJIN-SHENZHEN" }, { 0x94C9B7, 0xD00000, 0xDFFFFF, "Dspread Technology (Beijing) Inc.", "DSPREAD-BEIJING" }, { 0x94C9B7, 0xE00000, 0xEFFFFF, "shenzhen UDD Technologies,co.,Ltd", "SHENZHEN-UDD-TECHNOLOGIES" }, { 0x94CC04, 0x000000, 0x0FFFFF, "Hangzhou Yongkong Technology Co., Ltd.", "HANGZHOU-YONGKONG" }, { 0x94CC04, 0x100000, 0x1FFFFF, "GOCOAX, INC", "GOCOAX" }, { 0x94CC04, 0x200000, 0x2FFFFF, "Nanjing Yacer Communication Technology Co. Ltd.", "NANJING-YACER-COMMUNICATION" }, { 0x94CC04, 0x300000, 0x3FFFFF, "Shenzhen Link technology Co.,Ltd", "SHENZHEN-LINK" }, { 0x94CC04, 0x400000, 0x4FFFFF, "ProConnections, Inc.", "PROCONNECTIONS" }, { 0x94CC04, 0x500000, 0x5FFFFF, "SHENZHEN SANRAY TECHNOLOGY CO.,LTD", "SHENZHEN-SANRAY" }, { 0x94CC04, 0x600000, 0x6FFFFF, "Sam Nazarko Trading Ltd", "SAM-NAZARKO-TRADING" }, { 0x94CC04, 0x700000, 0x7FFFFF, "Gowing Business And Contracting Wenzhou Co., LTD", "GOWING-BUSINESS-AND-CONTRACTING-WENZHOU" }, { 0x94CC04, 0x800000, 0x8FFFFF, "CircuitWerkes, Inc.", "CIRCUITWERKES" }, { 0x94CC04, 0x900000, 0x9FFFFF, "ENTEC Electric & Electronic Co., LTD.", "ENTEC-ELECTRIC" }, { 0x94CC04, 0xA00000, 0xAFFFFF, "hyBee Inc.", "HYBEE" }, { 0x94CC04, 0xB00000, 0xBFFFFF, "Shandong free optical technology co., ltd.", "SHANDONG-FREE-OPTICAL" }, { 0x94CC04, 0xC00000, 0xCFFFFF, "Shanxi Baixin Information Technology Co., Ltd.", "SHANXI-BAIXIN-INFORMATION" }, { 0x94CC04, 0xD00000, 0xDFFFFF, "Hanzhuo Information Technology(Shanghai) Ltd.", "HANZHUO-INFORMATION-SHANGHAI" }, { 0x94CC04, 0xE00000, 0xEFFFFF, "SynchronicIT BV", "SYNCHRONICIT" }, { 0x94FBA7, 0x000000, 0x0FFFFF, "Reichert Inc.", "REICHERT" }, { 0x94FBA7, 0x100000, 0x1FFFFF, "Inaxsys Security Systems inc.", "INAXSYS-SECURITY" }, { 0x94FBA7, 0x200000, 0x2FFFFF, "Beijing Leja Tech co., Ltd.", "BEIJING-LEJA-TECH" }, { 0x94FBA7, 0x300000, 0x3FFFFF, "GUANG DONG TAKSTAR ELECTRONIC CO.,LTD.", "GUANG-DONG-TAKSTAR" }, { 0x94FBA7, 0x400000, 0x4FFFFF, "UOI TECHNOLOGY CORPORATION", "UOI" }, { 0x94FBA7, 0x500000, 0x5FFFFF, "CAVITY EYE", "CAVITY-EYE" }, { 0x94FBA7, 0x600000, 0x6FFFFF, "Sercomm Corporation.", "SERCOMM" }, { 0x94FBA7, 0x700000, 0x7FFFFF, "Anvil Systems Group, Inc.", "ANVIL-GROUP" }, { 0x94FBA7, 0x800000, 0x8FFFFF, "Silver-I Co.,LTD.", "SILVER-I" }, { 0x94FBA7, 0x900000, 0x9FFFFF, "Shanghai Hyco Genyong Technology Co., Ltd.", "SHANGHAI-HYCO-GENYONG" }, { 0x94FBA7, 0xA00000, 0xAFFFFF, "ELKRON", "ELKRON" }, { 0x94FBA7, 0xB00000, 0xBFFFFF, "Shenzhen Golden Star Technology Ltd", "SHENZHEN-GOLDEN-STAR" }, { 0x94FBA7, 0xC00000, 0xCFFFFF, "Solaborate Inc.", "SOLABORATE" }, { 0x94FBA7, 0xD00000, 0xDFFFFF, "Rosenberger Technologies Co.,Ltd.", "ROSENBERGER-TECHNOLOGIES" }, { 0x94FBA7, 0xE00000, 0xEFFFFF, "Skyring Smart Technologies(Shenzhen) Co., Ltd.", "SKYRING-SMART-TECHNOLOGIES-SHENZHEN" }, { 0x9802D8, 0x000000, 0x0FFFFF, "Stoerk-Tronic, Stoerk GmbH & Co.KG", "STOERK-TRONIC-STOERK" }, { 0x9802D8, 0x100000, 0x1FFFFF, "SHENZHEN ATEKO PHOTOELECTRICITY CO LTD", "SHENZHEN-ATEKO-PHOTOELECTRICITY" }, { 0x9802D8, 0x200000, 0x2FFFFF, "United Power Research Technology Corp.", "UNITED-POWER-RESEARCH" }, { 0x9802D8, 0x300000, 0x3FFFFF, "Grammer EiA Electronics nv", "GRAMMER-EIA-ELECTRONICS-NV" }, { 0x9802D8, 0x400000, 0x4FFFFF, "Zedi, Inc.", "ZEDI" }, { 0x9802D8, 0x500000, 0x5FFFFF, "EBI Ltd.", "EBI" }, { 0x9802D8, 0x600000, 0x6FFFFF, "Fritz Kuebler GmbH", "FRITZ-KUEBLER" }, { 0x9802D8, 0x700000, 0x7FFFFF, "Ormazabal Protection&Automation", "ORMAZABAL-PROTECTION-AUTOMATION" }, { 0x9802D8, 0x800000, 0x8FFFFF, "Simplo Technology Co.,LTD", "SIMPLO" }, { 0x9802D8, 0x900000, 0x9FFFFF, "Navroom Beijing, China", "NAVROOM-BEIJING-CHINA" }, { 0x9802D8, 0xA00000, 0xAFFFFF, "HySecurity", "HYSECURITY" }, { 0x9802D8, 0xB00000, 0xBFFFFF, "HANSHIN MEDICAL CO., LTD.", "HANSHIN-MEDICAL" }, { 0x9802D8, 0xC00000, 0xCFFFFF, "AGV spa", "AGV-SPA" }, { 0x9802D8, 0xD00000, 0xDFFFFF, "Promicon Elektronik GmbH + Co.KG", "PROMICON-ELEKTRONIK" }, { 0x9802D8, 0xE00000, 0xEFFFFF, "Private", "PRIVATE" }, { 0x9802D8, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x980637, 0x000000, 0x0FFFFF, "Zoleo Inc.", "ZOLEO" }, { 0x980637, 0x100000, 0x1FFFFF, "E. P. Schlumberger", "E-P-SCHLUMBERGER" }, { 0x980637, 0x200000, 0x2FFFFF, "Summa nv", "SUMMA-NV" }, { 0x980637, 0x300000, 0x3FFFFF, "Hangzhou Sanxin Network Technology Co.,Ltd", "HANGZHOU-SANXIN-NETWORK" }, { 0x980637, 0x400000, 0x4FFFFF, "Chengdu Shuwei Communication Technology Co.,Ltd", "CHENGDU-SHUWEI-COMMUNICATION" }, { 0x980637, 0x500000, 0x5FFFFF, "GS GLOBAL SECURITY INC", "GS-GLOBAL-SECURITY" }, { 0x980637, 0x600000, 0x6FFFFF, "BOEING SSG", "BOEING-SSG" }, { 0x980637, 0x700000, 0x7FFFFF, "SAMWONTECH", "SAMWONTECH" }, { 0x980637, 0x800000, 0x8FFFFF, "Shenzhen Y&D Electronics Information Co., Ltd", "SHENZHEN-Y-D-ELECTRONICS-INFORMATION" }, { 0x980637, 0x900000, 0x9FFFFF, "NAB co,.LTD", "NAB" }, { 0x980637, 0xA00000, 0xAFFFFF, "Angora Networks", "ANGORA-NETWORKS" }, { 0x980637, 0xB00000, 0xBFFFFF, "Petersime", "PETERSIME" }, { 0x980637, 0xC00000, 0xCFFFFF, "HwaCom Systems Inc.", "HWACOM" }, { 0x980637, 0xD00000, 0xDFFFFF, "VR Technology(Shenzhen) Limited", "VR-SHENZHEN" }, { 0x980637, 0xE00000, 0xEFFFFF, "Shanghai Jinnian information technology Co. Ltd", "SHANGHAI-JINNIAN-INFORMATION" }, { 0x982782, 0x000000, 0x0FFFFF, "SHENZHEN HEROFUN BIO-TECH CO., LTD", "SHENZHEN-HEROFUN-BIO-TECH" }, { 0x982782, 0x100000, 0x1FFFFF, "INFODAS GmbH", "INFODAS" }, { 0x982782, 0x200000, 0x2FFFFF, "Anhui Shengren Electronic Technology Co., Ltd", "ANHUI-SHENGREN" }, { 0x982782, 0x300000, 0x3FFFFF, "Danfoss Power Solutions", "DANFOSS-POWER-SOLUTIONS" }, { 0x982782, 0x400000, 0x4FFFFF, "Dspread Technology (Beijing) Inc.", "DSPREAD-BEIJING" }, { 0x982782, 0x500000, 0x5FFFFF, "Guangzhou Wuzhou Technology Co, Ltd.", "GUANGZHOU-WUZHOU" }, { 0x982782, 0x600000, 0x6FFFFF, "WESTERN SECURITY SOLUTIONS", "WESTERN-SECURITY-SOLUTIONS" }, { 0x982782, 0x700000, 0x7FFFFF, "KORTEK CORPORATION", "KORTEK" }, { 0x982782, 0x800000, 0x8FFFFF, "CATS Power design", "CATS-POWER-DESIGN" }, { 0x982782, 0x900000, 0x9FFFFF, "Wuxi GuoYiHaiJu Technology Co.,Ltd.", "WUXI-GUOYIHAIJU" }, { 0x982782, 0xA00000, 0xAFFFFF, "Nanjing BianYu Future Home Technology Co.Ltd", "NANJING-BIANYU-FUTURE-HOME" }, { 0x982782, 0xB00000, 0xBFFFFF, "RayTron, INC.", "RAYTRON" }, { 0x982782, 0xC00000, 0xCFFFFF, "KRISTECH Krzysztof Kajstura", "KRISTECH-KRZYSZTOF-KAJSTURA" }, { 0x982782, 0xD00000, 0xDFFFFF, "Thorlabs GmbH", "THORLABS" }, { 0x982782, 0xE00000, 0xEFFFFF, "SureFlap Ltd", "SUREFLAP" }, { 0x986D35, 0x000000, 0x0FFFFF, "Shenzhen MALATA Mobile Communication Co.,LTD", "SHENZHEN-MALATA-MOBILE-COMMUNICATION" }, { 0x986D35, 0x100000, 0x1FFFFF, "Shenzhen cositea electronics technology co.,LTD", "SHENZHEN-COSITEA-ELECTRONICS" }, { 0x986D35, 0x200000, 0x2FFFFF, "SHENZHEN FISE TECHNOLOGY HOLDING CO.,LTD.", "SHENZHEN-FISE-HOLDING" }, { 0x986D35, 0x300000, 0x3FFFFF, "DH Mechatronic AG", "DH-MECHATRONIC" }, { 0x986D35, 0x400000, 0x4FFFFF, "blossom communications corp.", "BLOSSOM-COMMUNICATION" }, { 0x986D35, 0x500000, 0x5FFFFF, "PDAHL", "PDAHL" }, { 0x986D35, 0x600000, 0x6FFFFF, "Vitronic Dr.-Ing. Stein Bildverarbeitungssysteme GmbH", "VITRONIC-DR-ING-STEIN-BILDVERARBEITUNGSSYSTEME" }, { 0x986D35, 0x700000, 0x7FFFFF, "Zhejiang Hanshow Technology Co., Ltd.", "ZHEJIANG-HANSHOW" }, { 0x986D35, 0x800000, 0x8FFFFF, "Beijing 3CAVI Tech Co.,Ltd", "BEIJING-3CAVI-TECH" }, { 0x986D35, 0x900000, 0x9FFFFF, "Advanced Diagnostics LTD", "ADVANCED-DIAGNOSTICS" }, { 0x986D35, 0xA00000, 0xAFFFFF, "iWave Japan, Inc.", "IWAVE-JAPAN" }, { 0x986D35, 0xB00000, 0xBFFFFF, "INTECH", "INTECH" }, { 0x986D35, 0xC00000, 0xCFFFFF, "my-PV GmbH", "MY-PV" }, { 0x986D35, 0xD00000, 0xDFFFFF, "Praesideo B.V.", "PRAESIDEO-B-V" }, { 0x986D35, 0xE00000, 0xEFFFFF, "BAYCOM OPTO-ELECTRONICS TECHNOLGY CO., LTD.", "BAYCOM-OPTO-ELECTRONICS-TECHNOLGY" }, { 0x986EE8, 0x000000, 0x0FFFFF, "Sbarco Technology CO., Ltd.", "SBARCO" }, { 0x986EE8, 0x100000, 0x1FFFFF, "Shanghai Pixsur Smart Technology Co.,Ltd", "SHANGHAI-PIXSUR-SMART" }, { 0x986EE8, 0x200000, 0x2FFFFF, "Ugreen Group Limited", "UGREEN-GROUP" }, { 0x986EE8, 0x300000, 0x3FFFFF, "ReeR SpA", "REER-SPA" }, { 0x986EE8, 0x400000, 0x4FFFFF, "Fujitsu component limited", "FUJITSU-COMPONENT" }, { 0x986EE8, 0x500000, 0x5FFFFF, "SUZHOU AUDITORYWORKS CO., LTD.", "SUZHOU-AUDITORYWORKS" }, { 0x986EE8, 0x600000, 0x6FFFFF, "Blair Companies", "BLAIR-COMPANIES" }, { 0x986EE8, 0x700000, 0x7FFFFF, "Centro de Pesquisas Av Wernher Von Braun", "CENTRO-DE-PESQUISAS-AV-WERNHER-VON-BRAUN" }, { 0x986EE8, 0x800000, 0x8FFFFF, "Sisgeo Srl", "SISGEO-SRL" }, { 0x986EE8, 0x900000, 0x9FFFFF, "Span.IO, Inc.", "SPAN-IO" }, { 0x986EE8, 0xA00000, 0xAFFFFF, "Logos Payment Solutions A/S", "LOGOS-PAYMENT-SOLUTIONS-A/S" }, { 0x986EE8, 0xB00000, 0xBFFFFF, "Private", "PRIVATE" }, { 0x986EE8, 0xC00000, 0xCFFFFF, "Sercomm Corporation.", "SERCOMM" }, { 0x986EE8, 0xD00000, 0xDFFFFF, "Changzhou Jiahao Radio&TV device CO.,LTD", "CHANGZHOU-JIAHAO-RADIO-TV-DEVICE" }, { 0x986EE8, 0xE00000, 0xEFFFFF, "First Design System Inc.", "FIRST-DESIGN-SYSTEM" }, { 0x9880BB, 0x000000, 0x0FFFFF, "RYEEX Technology Co.,Ltd.", "RYEEX" }, { 0x9880BB, 0x100000, 0x1FFFFF, "GreatWall Information Co.,Ltd", "GREATWALL-INFORMATION" }, { 0x9880BB, 0x200000, 0x2FFFFF, "Shanghai ECone Technology Co.,Ltd.", "SHANGHAI-ECONE" }, { 0x9880BB, 0x300000, 0x3FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x9880BB, 0x400000, 0x4FFFFF, "Shenzhen Ginto E-commerce CO.,LTD", "SHENZHEN-GINTO-E-COMMERCE" }, { 0x9880BB, 0x500000, 0x5FFFFF, "Melexis Technologies NV", "MELEXIS-TECHNOLOGIES-NV" }, { 0x9880BB, 0x600000, 0x6FFFFF, "Neusoft Reach Automotive Technology (Shenyang) Co.,Ltd", "NEUSOFT-REACH-AUTOMOTIVE-SHENYANG" }, { 0x9880BB, 0x700000, 0x7FFFFF, "Guangdong-Hong Kong-Macao Greater Bay Area Research Innovation Institute for Nanotechnology", "GUANGDONG-HONG-KONG-MACAO-GREATER-BAY-AREA-RESEARCH-INNOVATION-INSTITUTE-FOR-NANOTECHNOLOGY" }, { 0x9880BB, 0x800000, 0x8FFFFF, "Jyh Eng Technology Co., Ltd", "JYH-ENG" }, { 0x9880BB, 0x900000, 0x9FFFFF, "Shenzhen Hebang Electronic Co., Ltd", "SHENZHEN-HEBANG" }, { 0x9880BB, 0xA00000, 0xAFFFFF, "Guangzhou Shortcut Technology Co.,Ltd.", "GUANGZHOU-SHORTCUT" }, { 0x9880BB, 0xB00000, 0xBFFFFF, "Hilo", "HILO" }, { 0x9880BB, 0xC00000, 0xCFFFFF, "Shenzhen Xin Kingbrand Enterprises Co., Ltd", "SHENZHEN-XIN-KINGBRAND-ENTERPRISES" }, { 0x9880BB, 0xD00000, 0xDFFFFF, "Wyebot, Inc.", "WYEBOT" }, { 0x9880BB, 0xE00000, 0xEFFFFF, "D.Med Technical Products GmbH", "D-MED-TECHNICAL-PRODUCTS" }, { 0x988FE0, 0x000000, 0x0FFFFF, "Valinso B.V.", "VALINSO-B-V" }, { 0x988FE0, 0x100000, 0x1FFFFF, "GUANGZHOU HERYSTORM TECHNOLOGY CO.,LTD.", "GUANGZHOU-HERYSTORM" }, { 0x988FE0, 0x200000, 0x2FFFFF, "vhf elektronik GmbH", "VHF-ELEKTRONIK" }, { 0x988FE0, 0x300000, 0x3FFFFF, "Empowerment Technologies Inc.", "EMPOWERMENT-TECHNOLOGIES" }, { 0x988FE0, 0x400000, 0x4FFFFF, "Schmid AG, energy solutions", "SCHMID-ENERGY-SOLUTIONS" }, { 0x988FE0, 0x500000, 0x5FFFFF, "KuaiZhu SmartTechnology?Suzhou?CO.,Ltd", "KUAIZHU-SMARTTECHNOLOGY?SUZHOU?" }, { 0x988FE0, 0x600000, 0x6FFFFF, "Huaqin Technology Co.,Ltd.", "HUAQIN" }, { 0x988FE0, 0x700000, 0x7FFFFF, "China Huaxin Post and Telecom Technologies Co., Ltd.", "CHINA-HUAXIN-POST-AND-TELECOM-TECHNOLOGIES" }, { 0x988FE0, 0x800000, 0x8FFFFF, "Changzhou Perceptime Technology Co.,Ltd.", "CHANGZHOU-PERCEPTIME" }, { 0x988FE0, 0x900000, 0x9FFFFF, "Nawon Machinery", "NAWON-MACHINERY" }, { 0x988FE0, 0xA00000, 0xAFFFFF, "Pavana Technologies JSC.", "PAVANA-TECHNOLOGIES-JSC" }, { 0x988FE0, 0xB00000, 0xBFFFFF, "Dongguan Synst Electronics Co., LTD.", "DONGGUAN-SYNST-ELECTRONICS" }, { 0x988FE0, 0xC00000, 0xCFFFFF, "Shenzhen Micro&Nano Perception Computing Technology Co.,Ltd", "SHENZHEN-MICRO-NANO-PERCEPTION-COMPUTING" }, { 0x988FE0, 0xD00000, 0xDFFFFF, "Shenzhen Vitalitim Technology Co., Ltd", "SHENZHEN-VITALITIM" }, { 0x988FE0, 0xE00000, 0xEFFFFF, "CEL Terminus (Shanghai) Information Technologies Co.,Ltd.", "CEL-TERMINUS-SHANGHAI-INFORMATION-TECHNOLOGIES" }, { 0x98AAFC, 0x000000, 0x0FFFFF, "Dalian Eastern Display Co., Ltd.", "DALIAN-EASTERN-DISPLAY" }, { 0x98AAFC, 0x100000, 0x1FFFFF, "SURTEC", "SURTEC" }, { 0x98AAFC, 0x200000, 0x2FFFFF, "Shenzhen UniStrong Science & Technology Co., Ltd", "SHENZHEN-UNISTRONG-SCIENCE" }, { 0x98AAFC, 0x300000, 0x3FFFFF, "Nexus Electrical(Jiaxing) Limited", "NEXUS-ELECTRICAL-JIAXING" }, { 0x98AAFC, 0x400000, 0x4FFFFF, "RPE RADICO", "RPE-RADICO" }, { 0x98AAFC, 0x500000, 0x5FFFFF, "SPM Instrument AB", "SPM-INSTRUMENT-AB" }, { 0x98AAFC, 0x600000, 0x6FFFFF, "Mekotronics Co., Ltd", "MEKOTRONICS" }, { 0x98AAFC, 0x700000, 0x7FFFFF, "Shenzhen Hubsan Technology Co.,LTD.", "SHENZHEN-HUBSAN" }, { 0x98AAFC, 0x800000, 0x8FFFFF, "Beijing Tiandi-Marco Electro-Hydraulic Control System Company Ltd.", "BEIJING-TIANDI-MARCO-ELECTRO-HYDRAULIC-CONTROL-SYSTEM-COMPANY" }, { 0x98AAFC, 0x900000, 0x9FFFFF, "BEAM Authentic", "BEAM-AUTHENTIC" }, { 0x98AAFC, 0xA00000, 0xAFFFFF, "SENKO Co.,Ltd.", "SENKO" }, { 0x98AAFC, 0xB00000, 0xBFFFFF, "Resonant Systems Inc.", "RESONANT" }, { 0x98AAFC, 0xC00000, 0xCFFFFF, "dots Inc.", "DOTS" }, { 0x98AAFC, 0xD00000, 0xDFFFFF, "MCS Micronic Computer Systeme GmbH", "MCS-MICRONIC-SYSTEME" }, { 0x98AAFC, 0xE00000, 0xEFFFFF, "Comarch S.A.", "COMARCH" }, { 0x98F9C7, 0x000000, 0x0FFFFF, "SHENZHEN HUNTKEY ELECTRIC CO., LTD.", "SHENZHEN-HUNTKEY-ELECTRIC" }, { 0x98F9C7, 0x100000, 0x1FFFFF, "HighSecLabs", "HIGHSECLABS" }, { 0x98F9C7, 0x200000, 0x2FFFFF, "Pozyx NV", "POZYX-NV" }, { 0x98F9C7, 0x300000, 0x3FFFFF, "Beijing Horizon Information Technology Co., Ltd", "BEIJING-HORIZON-INFORMATION" }, { 0x98F9C7, 0x400000, 0x4FFFFF, "Promess GmbH", "PROMESS" }, { 0x98F9C7, 0x500000, 0x5FFFFF, "Tonycore Technology Co.,Ltd.", "TONYCORE" }, { 0x98F9C7, 0x600000, 0x6FFFFF, "GoodBox", "GOODBOX" }, { 0x98F9C7, 0x700000, 0x7FFFFF, "ARIMA Communications Corp.", "ARIMA-COMMUNICATION" }, { 0x98F9C7, 0x800000, 0x8FFFFF, "Renalsense", "RENALSENSE" }, { 0x98F9C7, 0x900000, 0x9FFFFF, "Koala Technology CO., LTD.", "KOALA" }, { 0x98F9C7, 0xA00000, 0xAFFFFF, "MSB Elektronik und Gerätebau GmbH", "MSB-ELEKTRONIK-UND-GERAETEBAU" }, { 0x98F9C7, 0xB00000, 0xBFFFFF, "HIROIA Communications Pte. Ltd. Taiwan Branch", "HIROIA-COMMUNICATION-PTE-TAIWAN-BRANCH" }, { 0x98F9C7, 0xC00000, 0xCFFFFF, "ShenZhen Chuangwei Electronic Appliance Co.,Ltd", "SHENZHEN-CHUANGWEI-APPLIANCE" }, { 0x98F9C7, 0xD00000, 0xDFFFFF, "hangzhou soar security technologies limited liability company", "HANGZHOU-SOAR-SECURITY-TECHNOLOGIES-LIABILITY-COMPANY" }, { 0x98F9C7, 0xE00000, 0xEFFFFF, "NC-LINK Technology Co., Ltd.", "NC-LINK" }, { 0x98FC84, 0x000000, 0x0FFFFF, "Leia, Inc", "LEIA" }, { 0x98FC84, 0x100000, 0x1FFFFF, "go-e GmbH", "GO-E" }, { 0x98FC84, 0x200000, 0x2FFFFF, "Juketek Co., Ltd.", "JUKETEK" }, { 0x98FC84, 0x300000, 0x3FFFFF, "ZeXin (Shanghai) Information Technologies Co.,Ltd", "ZEXIN-SHANGHAI-INFORMATION-TECHNOLOGIES" }, { 0x98FC84, 0x400000, 0x4FFFFF, "Sferrum GmbH", "SFERRUM" }, { 0x98FC84, 0x500000, 0x5FFFFF, "Zymbit", "ZYMBIT" }, { 0x98FC84, 0x600000, 0x6FFFFF, "ZERONE CO., LTD.", "ZERONE" }, { 0x98FC84, 0x700000, 0x7FFFFF, "Broadtech Technologies Co., Ltd.", "BROADTECH-TECHNOLOGIES" }, { 0x98FC84, 0x800000, 0x8FFFFF, "Guangdong DE at science and technology co., LTD", "GUANGDONG-DE-AT-SCIENCE" }, { 0x98FC84, 0x900000, 0x9FFFFF, "Fath Mechatronics", "FATH-MECHATRONICS" }, { 0x98FC84, 0xA00000, 0xAFFFFF, "Shield Inc.", "SHIELD" }, { 0x98FC84, 0xB00000, 0xBFFFFF, "chiconypower", "CHICONYPOWER" }, { 0x98FC84, 0xC00000, 0xCFFFFF, "Shenzhen Incar Technology Co., Ltd.", "SHENZHEN-INCAR" }, { 0x98FC84, 0xD00000, 0xDFFFFF, "Jazwares LLC", "JAZWARES" }, { 0x98FC84, 0xE00000, 0xEFFFFF, "Dongguan Kingtron Electronics Tech Co., Ltd", "DONGGUAN-KINGTRON-ELECTRONICS-TECH" }, { 0x9C431E, 0x000000, 0x0FFFFF, "Antailiye Technology Co.,Ltd", "ANTAILIYE" }, { 0x9C431E, 0x100000, 0x1FFFFF, "Symfun Telecom Ltd", "SYMFUN-TELECOM" }, { 0x9C431E, 0x200000, 0x2FFFFF, "HAESUNG DS", "HAESUNG-DS" }, { 0x9C431E, 0x300000, 0x3FFFFF, "Advanced Logic Technology (ALT) sa", "ADVANCED-LOGIC-ALT" }, { 0x9C431E, 0x400000, 0x4FFFFF, "Wireless Environment, LLC", "WIRELESS-ENVIRONMENT" }, { 0x9C431E, 0x500000, 0x5FFFFF, "ProMOS Technologies Inc.", "PROMOS-TECHNOLOGIES" }, { 0x9C431E, 0x600000, 0x6FFFFF, "R-S-I Elektrotechnik GmbH CO KG", "R-S-I-ELEKTROTECHNIK" }, { 0x9C431E, 0x700000, 0x7FFFFF, "Optris GmbH", "OPTRIS" }, { 0x9C431E, 0x800000, 0x8FFFFF, "Wunda Group plc", "WUNDA-GROUP-PLC" }, { 0x9C431E, 0x900000, 0x9FFFFF, "CONTINENT Co. Ltd", "CONTINENT" }, { 0x9C431E, 0xA00000, 0xAFFFFF, "ST Access Control System Corp.", "ST-ACCESS-CONTROL-SYSTEM" }, { 0x9C431E, 0xB00000, 0xBFFFFF, "JNL Technologies Inc", "JNL-TECHNOLOGIES" }, { 0x9C431E, 0xC00000, 0xCFFFFF, "SuZhou Jinruiyang Information Technology CO.,LTD", "SUZHOU-JINRUIYANG-INFORMATION" }, { 0x9C431E, 0xD00000, 0xDFFFFF, "HK ELEPHONE Communication Tech Co.,Limited", "HK-ELEPHONE-COMMUNICATION-TECH" }, { 0x9C431E, 0xE00000, 0xEFFFFF, "SHURE INCORPORATED", "SHURE-INCORPORATED" }, { 0x9C69B4, 0x000000, 0x0FFFFF, "Suzhou Fitcan Technology Co.,LTD", "SUZHOU-FITCAN" }, { 0x9C69B4, 0x100000, 0x1FFFFF, "EA Technology Ltd", "EA" }, { 0x9C69B4, 0x200000, 0x2FFFFF, "MOZI (Shenzhen) Artificial Intelligence Technology Co., Ltd.", "MOZI-SHENZHEN-ARTIFICIAL-INTELLIGENCE" }, { 0x9C69B4, 0x300000, 0x3FFFFF, "Appareo Systems, LLC", "APPAREO" }, { 0x9C69B4, 0x400000, 0x4FFFFF, "Globalcom Engineering SPA", "GLOBALCOM-ENGINEERING-SPA" }, { 0x9C69B4, 0x500000, 0x5FFFFF, "Elesta GmbH", "ELESTA" }, { 0x9C69B4, 0x600000, 0x6FFFFF, "Shenzhen jiahua zhongli technology co.LTD", "SHENZHEN-JIAHUA-ZHONGLI" }, { 0x9C69B4, 0x700000, 0x7FFFFF, "PCI Limited", "PCI" }, { 0x9C69B4, 0x800000, 0x8FFFFF, "Skydock do Brasil Ltda", "SKYDOCK-DO-BRASIL-LTDA" }, { 0x9C69B4, 0x900000, 0x9FFFFF, "Teptron AB", "TEPTRON-AB" }, { 0x9C69B4, 0xA00000, 0xAFFFFF, "BEIJING PICOHOOD TECHNOLOGY CO.,LTD", "BEIJING-PICOHOOD" }, { 0x9C69B4, 0xB00000, 0xBFFFFF, "Toughdog Security Systems", "TOUGHDOG-SECURITY" }, { 0x9C69B4, 0xC00000, 0xCFFFFF, "Guangdong Hanwei intergration Co.,Ltd", "GUANGDONG-HANWEI-INTERGRATION" }, { 0x9C69B4, 0xD00000, 0xDFFFFF, "Intellect module LLC", "INTELLECT-MODULE" }, { 0x9C69B4, 0xE00000, 0xEFFFFF, "NINGBO SHEN LINK COMMUNICATION TECHNOLOGY CO., LTD", "NINGBO-SHEN-LINK-COMMUNICATION" }, { 0x9CF6DD, 0x000000, 0x0FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0x9CF6DD, 0x100000, 0x1FFFFF, "Ithor IT Co.,Ltd.", "ITHOR-IT" }, { 0x9CF6DD, 0x200000, 0x2FFFFF, "Beijing Sifang Automation Co., Ltd.", "BEIJING-SIFANG-AUTOMATION" }, { 0x9CF6DD, 0x300000, 0x3FFFFF, "RYEEX Technology Co.,Ltd.", "RYEEX" }, { 0x9CF6DD, 0x400000, 0x4FFFFF, "Capital Engineering & Research Incorporation Ltd.", "CAPITAL-ENGINEERING-RESEARCH-INCORPORATION" }, { 0x9CF6DD, 0x500000, 0x5FFFFF, "b8ta Inc.", "B8TA" }, { 0x9CF6DD, 0x600000, 0x6FFFFF, "Shenzhen Xtooltech Co., Ltd", "SHENZHEN-XTOOLTECH" }, { 0x9CF6DD, 0x700000, 0x7FFFFF, "KXT Technology Co., Ltd.", "KXT" }, { 0x9CF6DD, 0x800000, 0x8FFFFF, "Savari Inc", "SAVARI" }, { 0x9CF6DD, 0x900000, 0x9FFFFF, "CAMA(Luoyang)Electronics Co.,Ltd", "CAMALUOYANGELECTRONICS" }, { 0x9CF6DD, 0xA00000, 0xAFFFFF, "AVI Pty Ltd", "AVI-PTY" }, { 0x9CF6DD, 0xB00000, 0xBFFFFF, "Guangzhou LANGO Electronics Technology Co., Ltd.", "GUANGZHOU-LANGO-ELECTRONICS" }, { 0x9CF6DD, 0xC00000, 0xCFFFFF, "Lighting New Energy Technology Co., Ltd.", "LIGHTING-NEW-ENERGY" }, { 0x9CF6DD, 0xD00000, 0xDFFFFF, "Foshan Synwit Technology Co.,Ltd.", "FOSHAN-SYNWIT" }, { 0x9CF6DD, 0xE00000, 0xEFFFFF, "Shanxi ZhuoZhi fei High Electronic Technology Co. Ltd.", "SHANXI-ZHUOZHI-FEI-HIGH" }, { 0xA0024A, 0x000000, 0x0FFFFF, "Zhejiang Hechuan Technology Co.,Ltd", "ZHEJIANG-HECHUAN" }, { 0xA0024A, 0x100000, 0x1FFFFF, "Vitec Imaging Solutions Spa", "VITEC-IMAGING-SOLUTIONS-SPA" }, { 0xA0024A, 0x200000, 0x2FFFFF, "Danriver Technologies Corp.", "DANRIVER-TECHNOLOGIES" }, { 0xA0024A, 0x300000, 0x3FFFFF, "SomaDetect Inc", "SOMADETECT" }, { 0xA0024A, 0x400000, 0x4FFFFF, "Argos Solutions AS", "ARGOS-SOLUTIONS-AS" }, { 0xA0024A, 0x500000, 0x5FFFFF, "Dongguan Amsamotion Automation Technology Co., Ltd", "DONGGUAN-AMSAMOTION-AUTOMATION" }, { 0xA0024A, 0x600000, 0x6FFFFF, "Xiaojie Technology (Shenzhen) Co., Ltd", "XIAOJIE-SHENZHEN" }, { 0xA0024A, 0x700000, 0x7FFFFF, "ENNEBI ELETTRONICA SRL", "ENNEBI-ELETTRONICA-SRL" }, { 0xA0024A, 0x800000, 0x8FFFFF, "Beijing Lyratone Technology Co., Ltd", "BEIJING-LYRATONE" }, { 0xA0024A, 0x900000, 0x9FFFFF, "Kontakt Micro-Location Sp z o.o.", "KONTAKT-MICRO-LOCATION-SP-Z-O-O" }, { 0xA0024A, 0xA00000, 0xAFFFFF, "Guangdong Jinpeng Technology Co. LTD", "GUANGDONG-JINPENG" }, { 0xA0024A, 0xB00000, 0xBFFFFF, "Xi'an Yingsheng Electric Technology Co.,Ltd.", "XI-AN-YINGSHENG-ELECTRIC" }, { 0xA0024A, 0xC00000, 0xCFFFFF, "Encroute AB", "ENCROUTE-AB" }, { 0xA0024A, 0xD00000, 0xDFFFFF, "bitbee Inc", "BITBEE" }, { 0xA0024A, 0xE00000, 0xEFFFFF, "IoTecha Corp", "IOTECHA" }, { 0xA019B2, 0x000000, 0x0FFFFF, "Vast Production Services", "VAST-PRODUCTION-SERVICES" }, { 0xA019B2, 0x100000, 0x1FFFFF, "El Sewedy Electrometer Egypt S.A.E.", "EL-SEWEDY-ELECTROMETER-EGYPT-E" }, { 0xA019B2, 0x200000, 0x2FFFFF, "Beijing Deephi Intelligent Technology Co., Ltd", "BEIJING-DEEPHI-INTELLIGENT" }, { 0xA019B2, 0x300000, 0x3FFFFF, "Power Diagnostic Service Co., LTD.", "POWER-DIAGNOSTIC-SERVICE" }, { 0xA019B2, 0x400000, 0x4FFFFF, "Osatec", "OSATEC" }, { 0xA019B2, 0x500000, 0x5FFFFF, "SZBROAD TECHNOLOGY (HK) CO.,LTMITED", "SZBROAD-HK-LTMITED" }, { 0xA019B2, 0x600000, 0x6FFFFF, "GfG mbH", "GFG" }, { 0xA019B2, 0x700000, 0x7FFFFF, "ARIMA Communications Corp.", "ARIMA-COMMUNICATION" }, { 0xA019B2, 0x800000, 0x8FFFFF, "MIS Industrie Systeme GmbH & Co. KG", "MIS-INDUSTRIE-SYSTEME" }, { 0xA019B2, 0x900000, 0x9FFFFF, "Lon Microsystems Inc.", "LON-MICROSYSTEMS" }, { 0xA019B2, 0xA00000, 0xAFFFFF, "Adomi", "ADOMI" }, { 0xA019B2, 0xB00000, 0xBFFFFF, "HangZhou iMagic Technology Co., Ltd", "HANGZHOU-IMAGIC" }, { 0xA019B2, 0xC00000, 0xCFFFFF, "LDA Technologies", "LDA-TECHNOLOGIES" }, { 0xA019B2, 0xD00000, 0xDFFFFF, "RYD Electronic Technology Co.,Ltd.", "RYD" }, { 0xA019B2, 0xE00000, 0xEFFFFF, "Ahgora Sistemas SA", "AHGORA-SISTEMAS" }, { 0xA0224E, 0x000000, 0x0FFFFF, "Kyung In Electronics", "KYUNG-IN-ELECTRONICS" }, { 0xA0224E, 0x100000, 0x1FFFFF, "PoE Texas", "POE-TEXAS" }, { 0xA0224E, 0x200000, 0x2FFFFF, "Closed Joint-Stock Company NORSI-TRANS", "CLOSED-JOINT-STOCK-COMPANY-NORSI-TRANS" }, { 0xA0224E, 0x300000, 0x3FFFFF, "ProPhotonix", "PROPHOTONIX" }, { 0xA0224E, 0x400000, 0x4FFFFF, "TMGcore, Inc.", "TMGCORE" }, { 0xA0224E, 0x500000, 0x5FFFFF, "Zhuhai Cheer Technology Co., LTD.", "ZHUHAI-CHEER" }, { 0xA0224E, 0x600000, 0x6FFFFF, "MESIT asd, s.r.o.", "MESIT-ASD-S-R-O" }, { 0xA0224E, 0x700000, 0x7FFFFF, "Applied Information, Inc.", "APPLIED-INFORMATION" }, { 0xA0224E, 0x800000, 0x8FFFFF, "EISST International Ltd", "EISST" }, { 0xA0224E, 0x900000, 0x9FFFFF, "Delta Tau Data Systems, Inc.", "DELTA-TAU-DATA" }, { 0xA0224E, 0xA00000, 0xAFFFFF, "IST ElektronikgesmbH", "IST-ELEKTRONIKGESMBH" }, { 0xA0224E, 0xB00000, 0xBFFFFF, "All Inspire Health Inc.", "ALL-INSPIRE-HEALTH" }, { 0xA0224E, 0xC00000, 0xCFFFFF, "Standartoptic, Limited Liability Company", "STANDARTOPTIC-LIABILITY-COMPANY" }, { 0xA0224E, 0xD00000, 0xDFFFFF, "Digifocus Technology Inc.", "DIGIFOCUS" }, { 0xA0224E, 0xE00000, 0xEFFFFF, "Hunan Youmei Science&Technology Development Co.,Ltd.", "HUNAN-YOUMEI-SCIENCE-DEVELOPMENT" }, { 0xA02833, 0x000000, 0x0FFFFF, "GERSYS GmbH", "GERSYS" }, { 0xA02833, 0x100000, 0x1FFFFF, "Ordercube GmbH", "ORDERCUBE" }, { 0xA02833, 0x200000, 0x2FFFFF, "Shanghai Nohmi Secom Fire Protection Equipment Co.,Ltd.", "SHANGHAI-NOHMI-SECOM-FIRE-PROTECTION-EQUIPMENT" }, { 0xA02833, 0x300000, 0x3FFFFF, "SHANGHAI XUNTAI INFORMATION TECHNOLOGY CO.,LTD.", "SHANGHAI-XUNTAI-INFORMATION" }, { 0xA02833, 0x400000, 0x4FFFFF, "Firm INFORMTEST Ltd.", "FIRM-INFORMTEST" }, { 0xA02833, 0x500000, 0x5FFFFF, "JGR Optics Inc", "JGR-OPTICS" }, { 0xA02833, 0x600000, 0x6FFFFF, "Xiamen Caimore Communication Technology Co.,Ltd.", "XIAMEN-CAIMORE-COMMUNICATION" }, { 0xA02833, 0x700000, 0x7FFFFF, "Kryptus Information Security S/A", "KRYPTUS-INFORMATION-SECURITY-S/A" }, { 0xA02833, 0x800000, 0x8FFFFF, "HZHY TECHNOLOGY", "HZHY" }, { 0xA02833, 0x900000, 0x9FFFFF, "IMESHX CORPORATION LIMITED", "IMESHX" }, { 0xA02833, 0xA00000, 0xAFFFFF, "Medical Evolution Kft", "MEDICAL-EVOLUTION-KFT" }, { 0xA02833, 0xB00000, 0xBFFFFF, "FlexLink AB", "FLEXLINK-AB" }, { 0xA02833, 0xC00000, 0xCFFFFF, "Kalray S.A.", "KALRAY" }, { 0xA02833, 0xD00000, 0xDFFFFF, "Audix", "AUDIX" }, { 0xA02833, 0xE00000, 0xEFFFFF, "Precision Planting, LLC.", "PRECISION-PLANTING" }, { 0xA03E6B, 0x000000, 0x0FFFFF, "s&t embedded GmbH", "S-T-EMBEDDED" }, { 0xA03E6B, 0x100000, 0x1FFFFF, "Business Support Consultant Co.,Ltd", "BUSINESS-SUPPORT-CONSULTANT" }, { 0xA03E6B, 0x200000, 0x2FFFFF, "Videx Electronics S.p.A.", "VIDEX-ELECTRONICS" }, { 0xA03E6B, 0x300000, 0x3FFFFF, "iLoda Solutions Limited", "ILODA-SOLUTIONS" }, { 0xA03E6B, 0x400000, 0x4FFFFF, "Shenzhen Nufilo Inc.", "SHENZHEN-NUFILO" }, { 0xA03E6B, 0x500000, 0x5FFFFF, "Friday Lab, UAB", "FRIDAY-LAB-UAB" }, { 0xA03E6B, 0x600000, 0x6FFFFF, "Wuhan Rui Ying Tong Network Technology Co., Ltd(China)", "WUHAN-RUI-YING-TONG-NETWORK-CHINA" }, { 0xA03E6B, 0x700000, 0x7FFFFF, "SinoGrid Software Systems Inc.", "SINOGRID-SOFTWARE" }, { 0xA03E6B, 0x800000, 0x8FFFFF, "718th Research Institute of CSIC", "718TH-RESEARCH-INSTITUTE-OF-CSIC" }, { 0xA03E6B, 0x900000, 0x9FFFFF, "Incogniteam Ltd.", "INCOGNITEAM" }, { 0xA03E6B, 0xA00000, 0xAFFFFF, "Shenzhen Neostra Technology Co.Ltd", "SHENZHEN-NEOSTRA" }, { 0xA03E6B, 0xB00000, 0xBFFFFF, "KoCoS Messtechnik AG", "KOCOS-MESSTECHNIK" }, { 0xA03E6B, 0xC00000, 0xCFFFFF, "Qunar.com", "QUNAR-COM" }, { 0xA03E6B, 0xD00000, 0xDFFFFF, "Jining SmartCity Infotech Co.Ltd.", "JINING-SMARTCITY-INFOTECH" }, { 0xA03E6B, 0xE00000, 0xEFFFFF, "Nanjing zhanyi software technology co., LTD", "NANJING-ZHANYI-SOFTWARE" }, { 0xA03E6B, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xA0BB3E, 0x000000, 0x0FFFFF, "Link Labs", "LINK-LABS" }, { 0xA0BB3E, 0x100000, 0x1FFFFF, "IVision Electronics Co.,Ltd", "IVISION-ELECTRONICS" }, { 0xA0BB3E, 0x200000, 0x2FFFFF, "DirectOut GmbH", "DIRECTOUT" }, { 0xA0BB3E, 0x300000, 0x3FFFFF, "WiteRiver Technology LLC", "WITERIVER" }, { 0xA0BB3E, 0x400000, 0x4FFFFF, "COMSYS Communications Systems Service GmbH", "COMSYS-COMMUNICATION-SERVICE" }, { 0xA0BB3E, 0x500000, 0x5FFFFF, "ManTech International Corporation", "MANTECH" }, { 0xA0BB3E, 0x600000, 0x6FFFFF, "Xiamen Kehua Hengsheng Co.,Ltd", "XIAMEN-KEHUA-HENGSHENG" }, { 0xA0BB3E, 0x700000, 0x7FFFFF, "SIMTEC Elektronik GmbH", "SIMTEC-ELEKTRONIK" }, { 0xA0BB3E, 0x800000, 0x8FFFFF, "AutarcTech GmbH", "AUTARCTECH" }, { 0xA0BB3E, 0x900000, 0x9FFFFF, "Sandal Plc", "SANDAL-PLC" }, { 0xA0BB3E, 0xA00000, 0xAFFFFF, "Filo SRL", "FILO-SRL" }, { 0xA0BB3E, 0xB00000, 0xBFFFFF, "Beijing Techshino Technology Co., Ltd.", "BEIJING-TECHSHINO" }, { 0xA0BB3E, 0xC00000, 0xCFFFFF, "Ewig Industries Macao Commercial Offshore Ltd", "EWIG-INDUSTRIES-MACAO-COMMERCIAL-OFFSHORE" }, { 0xA0BB3E, 0xD00000, 0xDFFFFF, "Shenzhen Talent Technology company limited", "SHENZHEN-TALENT-COMPANY" }, { 0xA0BB3E, 0xE00000, 0xEFFFFF, "Messtechnik Sachs GmbH", "MESSTECHNIK-SACHS" }, { 0xA0BB3E, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xA0C5F2, 0x000000, 0x0FFFFF, "Quantlab Financial, LLC", "QUANTLAB-FINANCIAL" }, { 0xA0C5F2, 0x100000, 0x1FFFFF, "KNS Group LLC (YADRO Company)", "KNS-GROUP-LLC-YADRO-COMPANY" }, { 0xA0C5F2, 0x200000, 0x2FFFFF, "Speedgoat GmbH", "SPEEDGOAT" }, { 0xA0C5F2, 0x300000, 0x3FFFFF, "Shenzhen Feima Robotics Technology Co.,Ltd", "SHENZHEN-FEIMA-ROBOTICS" }, { 0xA0C5F2, 0x400000, 0x4FFFFF, "AiCare Corp.", "AICARE" }, { 0xA0C5F2, 0x500000, 0x5FFFFF, "Spacepath Communications Ltd", "SPACEPATH-COMMUNICATION" }, { 0xA0C5F2, 0x600000, 0x6FFFFF, "ShenZhen JuWangShi Tech", "SHENZHEN-JUWANGSHI-TECH" }, { 0xA0C5F2, 0x700000, 0x7FFFFF, "Viettronimex JSC", "VIETTRONIMEX-JSC" }, { 0xA0C5F2, 0x800000, 0x8FFFFF, "CoolR Group Inc", "COOLR-GROUP" }, { 0xA0C5F2, 0x900000, 0x9FFFFF, "Impulse Networks Pte Ltd", "IMPULSE-NETWORKS-PTE" }, { 0xA0C5F2, 0xA00000, 0xAFFFFF, "Serious Integrated, Inc.", "SERIOUS-INTEGRATED" }, { 0xA0C5F2, 0xB00000, 0xBFFFFF, "Oray.com co., LTD.", "ORAY-COM" }, { 0xA0C5F2, 0xC00000, 0xCFFFFF, "Glooko inc", "GLOOKO" }, { 0xA0C5F2, 0xD00000, 0xDFFFFF, "UnaliWear, Inc.", "UNALIWEAR" }, { 0xA0C5F2, 0xE00000, 0xEFFFFF, "Synapsys Solutions Ltd.", "SYNAPSYS-SOLUTIONS" }, { 0xA41163, 0x000000, 0x0FFFFF, "Adetel Equipment", "ADETEL-EQUIPMENT" }, { 0xA41163, 0x100000, 0x1FFFFF, "INTER CONTROL Hermann Köhler Elektrik GmbH & Co.KG", "INTER-CONTROL-HERMANN-KOEHLER-ELEKTRIK" }, { 0xA41163, 0x200000, 0x2FFFFF, "Allgo Tech. (Beijing) Co.,Ltd", "ALLGO-TECH-BEIJING" }, { 0xA41163, 0x300000, 0x3FFFFF, "Pax", "PAX" }, { 0xA41163, 0x400000, 0x4FFFFF, "AlterG, Inc.", "ALTERG" }, { 0xA41163, 0x500000, 0x5FFFFF, "Carbon, Inc.", "CARBON" }, { 0xA41163, 0x600000, 0x6FFFFF, "Beijing XiaoRui Technology Co., Ltd", "BEIJING-XIAORUI" }, { 0xA41163, 0x700000, 0x7FFFFF, "SHENZHEN YIWANJIA INFORMATION TECHNOLOGY CO.,LTD", "SHENZHEN-YIWANJIA-INFORMATION" }, { 0xA41163, 0x800000, 0x8FFFFF, "Dspread Technology (Beijing) Inc.", "DSPREAD-BEIJING" }, { 0xA41163, 0x900000, 0x9FFFFF, "accesso Technology Group", "ACCESSO-GROUP" }, { 0xA41163, 0xA00000, 0xAFFFFF, "ISE GmbH", "ISE" }, { 0xA41163, 0xB00000, 0xBFFFFF, "Moog Music Inc.", "MOOG-MUSIC" }, { 0xA41163, 0xC00000, 0xCFFFFF, "Viloc", "VILOC" }, { 0xA41163, 0xD00000, 0xDFFFFF, "SHENZHEN ZHISHI TECHNOLOGY CO., LTD.", "SHENZHEN-ZHISHI" }, { 0xA41163, 0xE00000, 0xEFFFFF, "tinylogics", "TINYLOGICS" }, { 0xA43BFA, 0x000000, 0x0FFFFF, "Chengdu Territory Technology Co.,Ltd", "CHENGDU-TERRITORY" }, { 0xA43BFA, 0x100000, 0x1FFFFF, "Beijing Uniwill Science and Technology Co,Ltd", "BEIJING-UNIWILL-SCIENCE" }, { 0xA43BFA, 0x200000, 0x2FFFFF, "Powell Industries", "POWELL-INDUSTRIES" }, { 0xA43BFA, 0x300000, 0x3FFFFF, "Circus World Displays Ltd", "CIRCUS-WORLD-DISPLAYS" }, { 0xA43BFA, 0x400000, 0x4FFFFF, "Maxon Australia", "MAXON-AUSTRALIA" }, { 0xA43BFA, 0x500000, 0x5FFFFF, "BOI Solutions", "BOI-SOLUTIONS" }, { 0xA43BFA, 0x600000, 0x6FFFFF, "Recognition Systems LLC", "RECOGNITION" }, { 0xA43BFA, 0x700000, 0x7FFFFF, "Deatronic srl", "DEATRONIC-SRL" }, { 0xA43BFA, 0x800000, 0x8FFFFF, "Alpwise", "ALPWISE" }, { 0xA43BFA, 0x900000, 0x9FFFFF, "SHEN ZHEN PASUN TECH CO.LTD.", "SHEN-ZHEN-PASUN-TECH" }, { 0xA43BFA, 0xA00000, 0xAFFFFF, "Plus One Japan Ltd.", "PLUS-ONE-JAPAN" }, { 0xA43BFA, 0xB00000, 0xBFFFFF, "ALSTOM Strongwish (Shenzhen) Co., Ltd", "ALSTOM-STRONGWISH-SHENZHEN" }, { 0xA43BFA, 0xC00000, 0xCFFFFF, "SHANGHAI XIETONG TECHNOLOGY INC.", "SHANGHAI-XIETONG" }, { 0xA43BFA, 0xD00000, 0xDFFFFF, "JSC “Component-ASU”", "JSC-COMPONENT-ASU" }, { 0xA43BFA, 0xE00000, 0xEFFFFF, "The Magstim Company Ltd.", "THE-MAGSTIM-COMPANY" }, { 0xA43BFA, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xA44F29, 0x000000, 0x0FFFFF, "Dermalog Identification Systems GmbH", "DERMALOG-IDENTIFICATION" }, { 0xA44F29, 0x100000, 0x1FFFFF, "Olssen B.V.", "OLSSEN-B-V" }, { 0xA44F29, 0x200000, 0x2FFFFF, "LUCEOR", "LUCEOR" }, { 0xA44F29, 0x300000, 0x3FFFFF, "Comsel System Ltd", "COMSEL-SYSTEM" }, { 0xA44F29, 0x400000, 0x4FFFFF, "DGC Access AB", "DGC-ACCESS-AB" }, { 0xA44F29, 0x500000, 0x5FFFFF, "Shanghai KuanYu Industrial Network Equipment Co.,Ltd", "SHANGHAI-KUANYU-INDUSTRIAL-NETWORK-EQUIPMENT" }, { 0xA44F29, 0x600000, 0x6FFFFF, "Selektro Power Inc", "SELEKTRO-POWER" }, { 0xA44F29, 0x700000, 0x7FFFFF, "Protean Payment", "PROTEAN-PAYMENT" }, { 0xA44F29, 0x800000, 0x8FFFFF, "Innovations in Optics, Inc.", "INNOVATIONS-IN-OPTICS" }, { 0xA44F29, 0x900000, 0x9FFFFF, "Certi Networks Sdn Bhd", "CERTI-NETWORKS" }, { 0xA44F29, 0xA00000, 0xAFFFFF, "HTD", "HTD" }, { 0xA44F29, 0xB00000, 0xBFFFFF, "GUANGDONG REAL-DESIGN INTELLIGENT TECHNOLOGY CO.,LTD", "GUANGDONG-REAL-DESIGN-INTELLIGENT" }, { 0xA44F29, 0xC00000, 0xCFFFFF, "Shenzhen Huadoo Bright Group Limitied", "SHENZHEN-HUADOO-BRIGHT-GROUP-LIMITIED" }, { 0xA44F29, 0xD00000, 0xDFFFFF, "HALLIBURTON", "HALLIBURTON" }, { 0xA44F29, 0xE00000, 0xEFFFFF, "Neotech Systems Pvt. Ltd.", "NEOTECH-PVT" }, { 0xA44F29, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xA453EE, 0x000000, 0x0FFFFF, "MAHLE ELECTRONICS, SLU", "MAHLE-ELECTRONICS-SLU" }, { 0xA453EE, 0x100000, 0x1FFFFF, "Stellamore", "STELLAMORE" }, { 0xA453EE, 0x200000, 0x2FFFFF, "Ubisafe Smart Devices", "UBISAFE-SMART-DEVICES" }, { 0xA453EE, 0x300000, 0x3FFFFF, "Larva.io OÜ", "LARVA-IO-OUE" }, { 0xA453EE, 0x400000, 0x4FFFFF, "Williamson Corporation", "WILLIAMSON" }, { 0xA453EE, 0x500000, 0x5FFFFF, "Foshan Yisihang Electrical Technology Co., Ltd.", "FOSHAN-YISIHANG-ELECTRICAL" }, { 0xA453EE, 0x600000, 0x6FFFFF, "Shenzhen Xunqi Interconnet Technology Co., Ltd", "SHENZHEN-XUNQI-INTERCONNET" }, { 0xA453EE, 0x700000, 0x7FFFFF, "Beijing Lanke Science and Technology Co.,LTd.", "BEIJING-LANKE-SCIENCE" }, { 0xA453EE, 0x800000, 0x8FFFFF, "T-Touching Co., Ltd.", "T-TOUCHING" }, { 0xA453EE, 0x900000, 0x9FFFFF, "Dongguan HuaFuu industrial co., LTD", "DONGGUAN-HUAFUU-INDUSTRIAL" }, { 0xA453EE, 0xA00000, 0xAFFFFF, "shanggong technology Ltd", "SHANGGONG" }, { 0xA453EE, 0xB00000, 0xBFFFFF, "Viper Design, LLC", "VIPER-DESIGN" }, { 0xA453EE, 0xC00000, 0xCFFFFF, "SOS LAB Co., Ltd.", "SOS-LAB" }, { 0xA453EE, 0xD00000, 0xDFFFFF, "SSK CORPORATION", "SSK" }, { 0xA453EE, 0xE00000, 0xEFFFFF, "MEGACOUNT", "MEGACOUNT" }, { 0xA4580F, 0x000000, 0x0FFFFF, "INNOPRO", "INNOPRO" }, { 0xA4580F, 0x100000, 0x1FFFFF, "Stone Lock Global, Inc.", "STONE-LOCK-GLOBAL" }, { 0xA4580F, 0x200000, 0x2FFFFF, "BLOKS. GmbH", "BLOKS" }, { 0xA4580F, 0x300000, 0x3FFFFF, "Engineered SA", "ENGINEERED" }, { 0xA4580F, 0x400000, 0x4FFFFF, "Shenzhen City billion Leiden science and Technology Co., Ltd.", "SHENZHEN-CITY-BILLION-LEIDEN-SCIENCE" }, { 0xA4580F, 0x500000, 0x5FFFFF, "CoAsia Microelectronics Corp.", "COASIA-MICROELECTRONICS" }, { 0xA4580F, 0x600000, 0x6FFFFF, "Astro, Inc", "ASTRO" }, { 0xA4580F, 0x700000, 0x7FFFFF, "Changsha Tai Hui Network Technology Co.,Ltd", "CHANGSHA-TAI-HUI-NETWORK" }, { 0xA4580F, 0x800000, 0x8FFFFF, "AIR LIQUIDE MEDICAL SYSTEMS", "AIR-LIQUIDE-MEDICAL" }, { 0xA4580F, 0x900000, 0x9FFFFF, "Ksenia Security srl", "KSENIA-SECURITY-SRL" }, { 0xA4580F, 0xA00000, 0xAFFFFF, "GUANGZHOU OPTICAL BRIDGE COMMUNICATION EQUIPMENT CO.,LTD.", "GUANGZHOU-OPTICAL-BRIDGE-COMMUNICATION-EQUIPMENT" }, { 0xA4580F, 0xB00000, 0xBFFFFF, "ABB AB PGHV", "ABB-AB-PGHV" }, { 0xA4580F, 0xC00000, 0xCFFFFF, "Homebeaver", "HOMEBEAVER" }, { 0xA4580F, 0xD00000, 0xDFFFFF, "EYE IO, LLC", "EYE-IO" }, { 0xA4580F, 0xE00000, 0xEFFFFF, "Finetree Communications Inc", "FINETREE-COMMUNICATION" }, { 0xA4DA22, 0x000000, 0x0FFFFF, "General Electric Company", "GENERAL-ELECTRIC-COMPANY" }, { 0xA4DA22, 0x100000, 0x1FFFFF, "T2T System", "T2T-SYSTEM" }, { 0xA4DA22, 0x200000, 0x2FFFFF, "Wyze Labs Inc", "WYZE-LABS" }, { 0xA4DA22, 0x300000, 0x3FFFFF, "DURATECH Enterprise,LLC", "DURATECH" }, { 0xA4DA22, 0x400000, 0x4FFFFF, "LORIOT AG", "LORIOT" }, { 0xA4DA22, 0x500000, 0x5FFFFF, "Original Products Pvt. Ltd.", "ORIGINAL-PRODUCTS-PVT" }, { 0xA4DA22, 0x600000, 0x6FFFFF, "AURANEXT", "AURANEXT" }, { 0xA4DA22, 0x700000, 0x7FFFFF, "Hydro Electronic Devices, Inc.", "HYDRO-DEVICES" }, { 0xA4DA22, 0x800000, 0x8FFFFF, "SolidPro Technology Corporation", "SOLIDPRO" }, { 0xA4DA22, 0x900000, 0x9FFFFF, "Malldon Technology Limited", "MALLDON" }, { 0xA4DA22, 0xA00000, 0xAFFFFF, "Grundig", "GRUNDIG" }, { 0xA4DA22, 0xB00000, 0xBFFFFF, "Klashwerks Inc.", "KLASHWERKS" }, { 0xA4DA22, 0xC00000, 0xCFFFFF, "EHO.LINK", "EHO-LINK" }, { 0xA4DA22, 0xD00000, 0xDFFFFF, "Shen Zhen City YaKun Electronics Co., Ltd", "SHEN-ZHEN-CITY-YAKUN-ELECTRONICS" }, { 0xA4DA22, 0xE00000, 0xEFFFFF, "Quuppa Oy", "QUUPPA-OY" }, { 0xA4ED43, 0x000000, 0x0FFFFF, "Sweam AB", "SWEAM-AB" }, { 0xA4ED43, 0x100000, 0x1FFFFF, "INGELABS S.L.", "INGELABS" }, { 0xA4ED43, 0x200000, 0x2FFFFF, "Shanghai Mission Information Technologies (Group) Co.,Ltd", "SHANGHAI-MISSION-INFORMATION-TECHNOLOGIES-GROUP" }, { 0xA4ED43, 0x300000, 0x3FFFFF, "Dongguan Mingji Electronics technology Group Co., Ltd.", "DONGGUAN-MINGJI-ELECTRONICS-GROUP" }, { 0xA4ED43, 0x400000, 0x4FFFFF, "NETAS TELEKOMUNIKASYON A.S.", "NETAS-TELEKOMUNIKASYON" }, { 0xA4ED43, 0x500000, 0x5FFFFF, "Beijing ICPC CO.,Ltd.", "BEIJING-ICPC" }, { 0xA4ED43, 0x600000, 0x6FFFFF, "Shanghai Facom Electronics Technology Co, ltd.", "SHANGHAI-FACOM-ELECTRONICS" }, { 0xA4ED43, 0x700000, 0x7FFFFF, "Wuxi Junction Infomation Technology Incorporated Company", "WUXI-JUNCTION-INFOMATION-INCORPORATED-COMPANY" }, { 0xA4ED43, 0x800000, 0x8FFFFF, "Linseis Messgeraete GmbH", "LINSEIS-MESSGERAETE" }, { 0xA4ED43, 0x900000, 0x9FFFFF, "Heyuan intelligence technology CO.,Ltd", "HEYUAN-INTELLIGENCE" }, { 0xA4ED43, 0xA00000, 0xAFFFFF, "Guangzhou Maxfaith Communication Technology Co.,LTD.", "GUANGZHOU-MAXFAITH-COMMUNICATION" }, { 0xA4ED43, 0xB00000, 0xBFFFFF, "Paragon Business Solutions Ltd.", "PARAGON-BUSINESS-SOLUTIONS" }, { 0xA4ED43, 0xC00000, 0xCFFFFF, "leakSMART", "LEAKSMART" }, { 0xA4ED43, 0xD00000, 0xDFFFFF, "Brand New Brand Nordic AB", "BRAND-NEW-BRAND-NORDIC-AB" }, { 0xA4ED43, 0xE00000, 0xEFFFFF, "TOEC TECHNOLOGY CO.,LTD.", "TOEC" }, { 0xA83FA1, 0x000000, 0x0FFFFF, "Imecon Engineering SrL", "IMECON-ENGINEERING-SRL" }, { 0xA83FA1, 0x100000, 0x1FFFFF, "GTDevice LLC", "GTDEVICE" }, { 0xA83FA1, 0x200000, 0x2FFFFF, "MEDCAPTAIN MEDICAL TECHNOLOGY CO., LTD.", "MEDCAPTAIN-MEDICAL" }, { 0xA83FA1, 0x300000, 0x3FFFFF, "Guangzhou Tupu Internet Technology Co., Ltd.", "GUANGZHOU-TUPU-INTERNET" }, { 0xA83FA1, 0x400000, 0x4FFFFF, "Zhejiang Wellsun Intelligent Technology Co.,Ltd.", "ZHEJIANG-WELLSUN-INTELLIGENT" }, { 0xA83FA1, 0x500000, 0x5FFFFF, "Sercomm Corporation.", "SERCOMM" }, { 0xA83FA1, 0x600000, 0x6FFFFF, "BEGLEC", "BEGLEC" }, { 0xA83FA1, 0x700000, 0x7FFFFF, "Plejd AB", "PLEJD-AB" }, { 0xA83FA1, 0x800000, 0x8FFFFF, "Neos Ventures Limited", "NEOS-VENTURES" }, { 0xA83FA1, 0x900000, 0x9FFFFF, "Shenzhen ITLONG Intelligent Technology Co.,Ltd", "SHENZHEN-ITLONG-INTELLIGENT" }, { 0xA83FA1, 0xA00000, 0xAFFFFF, "Shanghai East China Computer Co., Ltd", "SHANGHAI-EAST-CHINA" }, { 0xA83FA1, 0xB00000, 0xBFFFFF, "Exel s.r.l. unipersonale", "EXEL-S-R-L-UNIPERSONALE" }, { 0xA83FA1, 0xC00000, 0xCFFFFF, "Laonz Co.,Ltd", "LAONZ" }, { 0xA83FA1, 0xD00000, 0xDFFFFF, "Shenzhen BIO I/E Co.,Ltd", "SHENZHEN-BIO-I/E" }, { 0xA83FA1, 0xE00000, 0xEFFFFF, "Guangzhou Navigateworx Technologies Co., Limited", "GUANGZHOU-NAVIGATEWORX-TECHNOLOGIES" }, { 0xA85B36, 0x000000, 0x0FFFFF, "Bluesoo Tech (HongKong) Co.,Limited", "BLUESOO-TECH-HONGKONG" }, { 0xA85B36, 0x100000, 0x1FFFFF, "PARMA LLC", "PARMA" }, { 0xA85B36, 0x200000, 0x2FFFFF, "Loomanet Inc.", "LOOMANET" }, { 0xA85B36, 0x300000, 0x3FFFFF, "Shenzhen Dandelion Intelligent Cloud Technology Development Co., LTD", "SHENZHEN-DANDELION-INTELLIGENT-CLOUD-DEVELOPMENT" }, { 0xA85B36, 0x400000, 0x4FFFFF, "Luoxian (Guandong) Technology Co., Ltd", "LUOXIAN-GUANDONG" }, { 0xA85B36, 0x500000, 0x5FFFFF, "JUGANU LTD", "JUGANU" }, { 0xA85B36, 0x600000, 0x6FFFFF, "DAP B.V.", "DAP-B-V" }, { 0xA85B36, 0x700000, 0x7FFFFF, "Louis Vuitton Malletier", "LOUIS-VUITTON-MALLETIER" }, { 0xA85B36, 0x800000, 0x8FFFFF, "ShangHai SnowLake Technology Co.,LTD.", "SHANGHAI-SNOWLAKE" }, { 0xA85B36, 0x900000, 0x9FFFFF, "Avista Edge", "AVISTA-EDGE" }, { 0xA85B36, 0xA00000, 0xAFFFFF, "TAIDEN INDUSTRIAL CO.,LTD", "TAIDEN-INDUSTRIAL" }, { 0xA85B36, 0xB00000, 0xBFFFFF, "Lampyris Plant LLC", "LAMPYRIS-PLANT" }, { 0xA85B36, 0xC00000, 0xCFFFFF, "ATER Technologies Co Ltd", "ATER-TECHNOLOGIES" }, { 0xA85B36, 0xD00000, 0xDFFFFF, "Adam Hall GmbH", "ADAM-HALL" }, { 0xA85B36, 0xE00000, 0xEFFFFF, "ORBITVU Sp. z o. o.", "ORBITVU-SP-Z-O-O" }, { 0xAC1DDF, 0x000000, 0x0FFFFF, "PiOctave Solutions Pvt Ltd", "PIOCTAVE-SOLUTIONS-PVT" }, { 0xAC1DDF, 0x100000, 0x1FFFFF, "HellaStorm, Inc.", "HELLASTORM" }, { 0xAC1DDF, 0x200000, 0x2FFFFF, "ConectaIP Tecnologia S.L.", "CONECTAIP-TECNOLOGIA" }, { 0xAC1DDF, 0x300000, 0x3FFFFF, "CRDE", "CRDE" }, { 0xAC1DDF, 0x400000, 0x4FFFFF, "Motec Pty Ltd", "MOTEC-PTY" }, { 0xAC1DDF, 0x500000, 0x5FFFFF, "Shenzhen Ouzheng Electronic Tech Co,.Ltd", "SHENZHEN-OUZHENG-TECH" }, { 0xAC1DDF, 0x600000, 0x6FFFFF, "Shenzheng SenseTime Technology Co. Ltd", "SHENZHENG-SENSETIME" }, { 0xAC1DDF, 0x700000, 0x7FFFFF, "Green IT Korea Co., Ltd.", "GREEN-IT-KOREA" }, { 0xAC1DDF, 0x800000, 0x8FFFFF, "Sichuan Odot Automation System Co.,Ltd.", "SICHUAN-ODOT-AUTOMATION-SYSTEM" }, { 0xAC1DDF, 0x900000, 0x9FFFFF, "Solare Datensysteme GmbH", "SOLARE-DATENSYSTEME" }, { 0xAC1DDF, 0xA00000, 0xAFFFFF, "WESCO INTEGRATED SUPPLY", "WESCO-INTEGRATED-SUPPLY" }, { 0xAC1DDF, 0xB00000, 0xBFFFFF, "FINEpowerX INC", "FINEPOWERX" }, { 0xAC1DDF, 0xC00000, 0xCFFFFF, "Beijing Chunhong Technology Co., Ltd.", "BEIJING-CHUNHONG" }, { 0xAC1DDF, 0xD00000, 0xDFFFFF, "Elekon AG", "ELEKON" }, { 0xAC1DDF, 0xE00000, 0xEFFFFF, "Duravit AG", "DURAVIT" }, { 0xAC64DD, 0x000000, 0x0FFFFF, "Jia-Teng", "JIA-TENG" }, { 0xAC64DD, 0x100000, 0x1FFFFF, "JSC InfoTeCS", "JSC-INFOTECS" }, { 0xAC64DD, 0x200000, 0x2FFFFF, "Shenzhen PuHua Technology Co., Ltd", "SHENZHEN-PUHUA" }, { 0xAC64DD, 0x300000, 0x3FFFFF, "infypower Co., Ltd", "INFYPOWER" }, { 0xAC64DD, 0x400000, 0x4FFFFF, "8Cups", "8CUPS" }, { 0xAC64DD, 0x500000, 0x5FFFFF, "SHANGHAI ZTE TECHNOLOGIES CO.,LTD", "SHANGHAI-ZTE-TECHNOLOGIES" }, { 0xAC64DD, 0x600000, 0x6FFFFF, "Kpnetworks Ltd.", "KPNETWORKS" }, { 0xAC64DD, 0x700000, 0x7FFFFF, "Wittmann Kunststoffgeräte GmbH", "WITTMANN-KUNSTSTOFFGERAETE" }, { 0xAC64DD, 0x800000, 0x8FFFFF, "PFDC ELANCYL", "PFDC-ELANCYL" }, { 0xAC64DD, 0x900000, 0x9FFFFF, "Micro Connect Pty Ltd", "MICRO-CONNECT-PTY" }, { 0xAC64DD, 0xA00000, 0xAFFFFF, "Bluewave Global Manufacturing Limited", "BLUEWAVE-GLOBAL-MANUFACTURING" }, { 0xAC64DD, 0xB00000, 0xBFFFFF, "Groupe Citypassenger Inc", "GROUPE-CITYPASSENGER" }, { 0xAC64DD, 0xC00000, 0xCFFFFF, "Beijing Hamigua Technology Co., Ltd.", "BEIJING-HAMIGUA" }, { 0xAC64DD, 0xD00000, 0xDFFFFF, "HMicro Inc", "HMICRO" }, { 0xAC64DD, 0xE00000, 0xEFFFFF, "DIGIBIRD TECHNOLOGY CO., LTD.", "DIGIBIRD" }, { 0xB01F81, 0x000000, 0x0FFFFF, "Dalian GigaTec Electronics Co.,Ltd", "DALIAN-GIGATEC-ELECTRONICS" }, { 0xB01F81, 0x100000, 0x1FFFFF, "Uvax Concepts", "UVAX-CONCEPTS" }, { 0xB01F81, 0x200000, 0x2FFFFF, "Private", "PRIVATE" }, { 0xB01F81, 0x300000, 0x3FFFFF, "Sound United", "SOUND-UNITED" }, { 0xB01F81, 0x400000, 0x4FFFFF, "SHENZHEN YIFANG DIGITAL TECHNOLOGY CO.,LTD.", "SHENZHEN-YIFANG-DIGITAL" }, { 0xB01F81, 0x500000, 0x5FFFFF, "SHENZHEN GRID TECHNOLOGY CO.,LTD", "SHENZHEN-GRID" }, { 0xB01F81, 0x600000, 0x6FFFFF, "COMOTA Co., Ltd.", "COMOTA" }, { 0xB01F81, 0x700000, 0x7FFFFF, "Aether Services, Inc.", "AETHER-SERVICES" }, { 0xB01F81, 0x800000, 0x8FFFFF, "Technion Oy", "TECHNION-OY" }, { 0xB01F81, 0x900000, 0x9FFFFF, "CIDE Interactive", "CIDE-INTERACTIVE" }, { 0xB01F81, 0xA00000, 0xAFFFFF, "Steffens Systems GmbH", "STEFFENS" }, { 0xB01F81, 0xB00000, 0xBFFFFF, "Rademacher Geraete-Elektronik GmbH", "RADEMACHER-GERAETE-ELEKTRONIK" }, { 0xB01F81, 0xC00000, 0xCFFFFF, "Access Device Integrated Communications Corp.", "ACCESS-DEVICE-INTEGRATED-COMMUNICATION" }, { 0xB01F81, 0xD00000, 0xDFFFFF, "TAIWAN Anjie Electronics Co.,Ltd.", "TAIWAN-ANJIE-ELECTRONICS" }, { 0xB01F81, 0xE00000, 0xEFFFFF, "Advanced & Wise Technology Corp.", "ADVANCED-WISE" }, { 0xB01F81, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xB0B353, 0x000000, 0x0FFFFF, "Blake UK", "BLAKE-UK" }, { 0xB0B353, 0x100000, 0x1FFFFF, "Sprocomm Technologies CO.,LTD.", "SPROCOMM-TECHNOLOGIES" }, { 0xB0B353, 0x200000, 0x2FFFFF, "Rizhao SUNWAM International Co., Ltd.", "RIZHAO-SUNWAM" }, { 0xB0B353, 0x300000, 0x3FFFFF, "AD HOC DEVELOPMENTS S.L", "AD-HOC-DEVELOPMENTS" }, { 0xB0B353, 0x400000, 0x4FFFFF, "Innotas Elektronik GmbH", "INNOTAS-ELEKTRONIK" }, { 0xB0B353, 0x500000, 0x5FFFFF, "Zenlayer", "ZENLAYER" }, { 0xB0B353, 0x600000, 0x6FFFFF, "Hangzhou Hikrobot Technology Co., Ltd.", "HANGZHOU-HIKROBOT" }, { 0xB0B353, 0x700000, 0x7FFFFF, "WUUK LABS CORP.", "WUUK-LABS" }, { 0xB0B353, 0x800000, 0x8FFFFF, "VOXISCOM", "VOXISCOM" }, { 0xB0B353, 0x900000, 0x9FFFFF, "HANMECIPS CO.", "HANMECIPS" }, { 0xB0B353, 0xA00000, 0xAFFFFF, "Ledger", "LEDGER" }, { 0xB0B353, 0xB00000, 0xBFFFFF, "Zoox", "ZOOX" }, { 0xB0B353, 0xC00000, 0xCFFFFF, "Beijing Geekplus Technology Co.,Ltd.", "BEIJING-GEEKPLUS" }, { 0xB0B353, 0xD00000, 0xDFFFFF, "IPvideo Corporation", "IPVIDEO" }, { 0xB0B353, 0xE00000, 0xEFFFFF, "Nanjing Yining Intelligent Technology Co., Ltd.", "NANJING-YINING-INTELLIGENT" }, { 0xB0C5CA, 0x000000, 0x0FFFFF, "EM-Tech", "EM-TECH" }, { 0xB0C5CA, 0x100000, 0x1FFFFF, "IVK-SAYANY", "IVK-SAYANY" }, { 0xB0C5CA, 0x200000, 0x2FFFFF, "LOWOTEC GmbH", "LOWOTEC" }, { 0xB0C5CA, 0x300000, 0x3FFFFF, "abode systems, inc.", "ABODE" }, { 0xB0C5CA, 0x400000, 0x4FFFFF, "shanghai University Ding-Tech software Corp.,ltd", "SHANGHAI-UNIVERSITY-DING-TECH-SOFTWARE" }, { 0xB0C5CA, 0x500000, 0x5FFFFF, "SYSTOVI", "SYSTOVI" }, { 0xB0C5CA, 0x600000, 0x6FFFFF, "SunTech Medical, Inc.", "SUNTECH-MEDICAL" }, { 0xB0C5CA, 0x700000, 0x7FFFFF, "SHENZHEN KTC TECHNOLOGY GROUP", "SHENZHEN-KTC-GROUP" }, { 0xB0C5CA, 0x800000, 0x8FFFFF, "Astyx GmbH", "ASTYX" }, { 0xB0C5CA, 0x900000, 0x9FFFFF, "D&T Inc.", "D-T" }, { 0xB0C5CA, 0xA00000, 0xAFFFFF, "TEM Mobile Limited", "TEM-MOBILE" }, { 0xB0C5CA, 0xB00000, 0xBFFFFF, "RISECOMM (HK) TECHNOLOGY CO. LIMITED", "RISECOMM-HK" }, { 0xB0C5CA, 0xC00000, 0xCFFFFF, "XMetrics", "XMETRICS" }, { 0xB0C5CA, 0xD00000, 0xDFFFFF, "Private", "PRIVATE" }, { 0xB0C5CA, 0xE00000, 0xEFFFFF, "Audio Elektronik İthalat İhracat San ve Tic A.Ş.", "AUDIO-ELEKTRONIK-THALAT-HRACAT-SAN-VE-TIC-A" }, { 0xB0C5CA, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xB0FD0B, 0x000000, 0x0FFFFF, "TAE HYUNG Industrial Electronics Co., Ltd.", "TAE-HYUNG-INDUSTRIAL-ELECTRONICS" }, { 0xB0FD0B, 0x100000, 0x1FFFFF, "IDspire Corporation Ltd.", "IDSPIRE" }, { 0xB0FD0B, 0x200000, 0x2FFFFF, "Vista Manufacturing", "VISTA-MANUFACTURING" }, { 0xB0FD0B, 0x300000, 0x3FFFFF, "DMAC Security LLC", "DMAC-SECURITY" }, { 0xB0FD0B, 0x400000, 0x4FFFFF, "Fasii Information Technology (Shanghai) Ltd.", "FASII-INFORMATION-SHANGHAI" }, { 0xB0FD0B, 0x500000, 0x5FFFFF, "Taian Yuqi Communication Technology Co., Ltd", "TAIAN-YUQI-COMMUNICATION" }, { 0xB0FD0B, 0x600000, 0x6FFFFF, "DNESO TEN Ltd.", "DNESO-TEN" }, { 0xB0FD0B, 0x700000, 0x7FFFFF, "Everynet Oy", "EVERYNET-OY" }, { 0xB0FD0B, 0x800000, 0x8FFFFF, "eSenseLab Ltd.", "ESENSELAB" }, { 0xB0FD0B, 0x900000, 0x9FFFFF, "Eagle Acoustics Manufacturing, LLC", "EAGLE-ACOUSTICS-MANUFACTURING" }, { 0xB0FD0B, 0xA00000, 0xAFFFFF, "TEMCO JAPAN CO., LTD.", "TEMCO-JAPAN" }, { 0xB0FD0B, 0xB00000, 0xBFFFFF, "MartinLogan, Ltd.", "MARTINLOGAN" }, { 0xB0FD0B, 0xC00000, 0xCFFFFF, "Haltian Products Oy", "HALTIAN-PRODUCTS-OY" }, { 0xB0FD0B, 0xD00000, 0xDFFFFF, "Habana Labs LTD", "HABANA-LABS" }, { 0xB0FD0B, 0xE00000, 0xEFFFFF, "Shenzhen FEIBIT Electronic Technology Co.,LTD", "SHENZHEN-FEIBIT" }, { 0xB0FF72, 0x000000, 0x0FFFFF, "ShenYang LeShun Technology Co.,Ltd", "SHENYANG-LESHUN" }, { 0xB0FF72, 0x100000, 0x1FFFFF, "Guangzhou Senguang Communication Technology Co., Ltd", "GUANGZHOU-SENGUANG-COMMUNICATION" }, { 0xB0FF72, 0x200000, 0x2FFFFF, "MVT Elektrik Sanayi ve Ticaret Limited Sirketi", "MVT-ELEKTRIK-SANAYI-VE-TICARET-SIRKETI" }, { 0xB0FF72, 0x300000, 0x3FFFFF, "Hammerhead Navigation Inc.", "HAMMERHEAD-NAVIGATION" }, { 0xB0FF72, 0x400000, 0x4FFFFF, "Jiangxi Xingchi Electronic Technology Co.,Ltd.", "JIANGXI-XINGCHI" }, { 0xB0FF72, 0x500000, 0x5FFFFF, "Shenzhen Ruilian Electronic Technology Co.,Ltd", "SHENZHEN-RUILIAN" }, { 0xB0FF72, 0x600000, 0x6FFFFF, "Tachyon Energy", "TACHYON-ENERGY" }, { 0xB0FF72, 0x700000, 0x7FFFFF, "BL Innovare", "BL-INNOVARE" }, { 0xB0FF72, 0x800000, 0x8FFFFF, "ERA RF Technologies", "ERA-RF-TECHNOLOGIES" }, { 0xB0FF72, 0x900000, 0x9FFFFF, "JIUYEE?shenzhen) Medical Technology Co.,Ltd", "JIUYEE?SHENZHEN-MEDICAL" }, { 0xB0FF72, 0xA00000, 0xAFFFFF, "Simple Things", "SIMPLE-THINGS" }, { 0xB0FF72, 0xB00000, 0xBFFFFF, "Launch Tech Co., Ltd.", "LAUNCH-TECH" }, { 0xB0FF72, 0xC00000, 0xCFFFFF, "Hopewheel info.Co.,Ltd.", "HOPEWHEEL-INFO" }, { 0xB0FF72, 0xD00000, 0xDFFFFF, "TBB Renewable (Xiamen) Co Ltd", "TBB-RENEWABLE-XIAMEN" }, { 0xB0FF72, 0xE00000, 0xEFFFFF, "HANNING & KAHL GmbH & Co. KG", "HANNING-KAHL" }, { 0xB437D1, 0x000000, 0x0FFFFF, "Lezyne INC USA", "LEZYNE-USA" }, { 0xB437D1, 0x100000, 0x1FFFFF, "Alturna Networks", "ALTURNA-NETWORKS" }, { 0xB437D1, 0x200000, 0x2FFFFF, "Fibersystem AB", "FIBERSYSTEM-AB" }, { 0xB437D1, 0x300000, 0x3FFFFF, "DIMTON CO.,LTD.", "DIMTON" }, { 0xB437D1, 0x400000, 0x4FFFFF, "KOMSIS ELEKTRONIK SISTEMLERI SAN. TIC. LTD.STI", "KOMSIS-ELEKTRONIK-SISTEMLERI-SAN-TIC-STI" }, { 0xB437D1, 0x500000, 0x5FFFFF, "Stratom, Inc.", "STRATOM" }, { 0xB437D1, 0x600000, 0x6FFFFF, "Yireh Auto Tech Co.,Ltd.", "YIREH-AUTO-TECH" }, { 0xB437D1, 0x700000, 0x7FFFFF, "GE Power Management", "GE-POWER-MANAGEMENT" }, { 0xB437D1, 0x800000, 0x8FFFFF, "eInfochips Limited", "EINFOCHIPS" }, { 0xB437D1, 0x900000, 0x9FFFFF, "Nanjing yuekong Intelligent Technology", "NANJING-YUEKONG-INTELLIGENT" }, { 0xB437D1, 0xA00000, 0xAFFFFF, "Axiomatic Technologies Corporation", "AXIOMATIC-TECHNOLOGIES" }, { 0xB437D1, 0xB00000, 0xBFFFFF, "NSI Co., Ltd.", "NSI" }, { 0xB437D1, 0xC00000, 0xCFFFFF, "NANJING PUTIAN TELECOMMUNICATIONS TECHNOLOGY CO.,LTD.", "NANJING-PUTIAN-TELECOMMUNICATIONS" }, { 0xB437D1, 0xD00000, 0xDFFFFF, "ZXY Sport Tracking", "ZXY-SPORT-TRACKING" }, { 0xB437D1, 0xE00000, 0xEFFFFF, "Union Tecnologica Noxium S.L.", "UNION-TECNOLOGICA-NOXIUM" }, { 0xB437D1, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xB44BD6, 0x000000, 0x0FFFFF, "G4S Monitoring Technologies Ltd", "G4S-MONITORING-TECHNOLOGIES" }, { 0xB44BD6, 0x100000, 0x1FFFFF, "SHENZHEN TITA INTERACTIVE TECHNOLOGY CO.,LTD", "SHENZHEN-TITA-INTERACTIVE" }, { 0xB44BD6, 0x200000, 0x2FFFFF, "Shenzhen Cudy Technology Co., Ltd.", "SHENZHEN-CUDY" }, { 0xB44BD6, 0x300000, 0x3FFFFF, "Huizhou Sunoda Technology Co. Ltd", "HUIZHOU-SUNODA" }, { 0xB44BD6, 0x400000, 0x4FFFFF, "Shenzhen Hi-Net Technology Co., Ltd.", "SHENZHEN-HI-NET" }, { 0xB44BD6, 0x500000, 0x5FFFFF, "ShenZhen Comstar Technology Company", "SHENZHEN-COMSTAR-COMPANY" }, { 0xB44BD6, 0x600000, 0x6FFFFF, "Perspicace Intellegince Technology", "PERSPICACE-INTELLEGINCE" }, { 0xB44BD6, 0x700000, 0x7FFFFF, "Taizhou convergence Information technology Co.,LTD", "TAIZHOU-CONVERGENCE-INFORMATION" }, { 0xB44BD6, 0x800000, 0x8FFFFF, "Arnouse Digital Devices Corp", "ARNOUSE-DIGITAL-DEVICES" }, { 0xB44BD6, 0x900000, 0x9FFFFF, "Qstar Technology Co,Ltd", "QSTAR" }, { 0xB44BD6, 0xA00000, 0xAFFFFF, "Shenzhen Huabai Intelligent Technology Co., Ltd.", "SHENZHEN-HUABAI-INTELLIGENT" }, { 0xB44BD6, 0xB00000, 0xBFFFFF, "DongYoung media", "DONGYOUNG-MEDIA" }, { 0xB44BD6, 0xC00000, 0xCFFFFF, "Impakt S.A.", "IMPAKT" }, { 0xB44BD6, 0xD00000, 0xDFFFFF, "ELLETA SOLUTIONS LTD", "ELLETA-SOLUTIONS" }, { 0xB44BD6, 0xE00000, 0xEFFFFF, "CHUNGHSIN INTERNATIONAL ELECTRONICS CO.,LTD.", "CHUNGHSIN-ELECTRONICS" }, { 0xB44D43, 0x000000, 0x0FFFFF, "Mihoyo", "MIHOYO" }, { 0xB44D43, 0x100000, 0x1FFFFF, "iLine Microsystems S.L. (B20956751)", "ILINE-MICROSYSTEMS-S-L-B20956751" }, { 0xB44D43, 0x200000, 0x2FFFFF, "RG SOLUTIONS LTD", "RG-SOLUTIONS" }, { 0xB44D43, 0x300000, 0x3FFFFF, "ETSME Technologies C0., Ltd.", "ETSME-TECHNOLOGIES-C0" }, { 0xB44D43, 0x400000, 0x4FFFFF, "ALL.SPACE Networks Ltd", "ALL-SPACE-NETWORKS" }, { 0xB44D43, 0x500000, 0x5FFFFF, "halstrup-walcher GmbH", "HALSTRUP-WALCHER" }, { 0xB44D43, 0x600000, 0x6FFFFF, "Spot AI, Inc.", "SPOT-AI" }, { 0xB44D43, 0x700000, 0x7FFFFF, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0xB44D43, 0x800000, 0x8FFFFF, "ShenZhen Launch-Wonder Technology co., LTD", "SHENZHEN-LAUNCH-WONDER" }, { 0xB44D43, 0x900000, 0x9FFFFF, "AD HOC DEVELOPMENTS S.L", "AD-HOC-DEVELOPMENTS" }, { 0xB44D43, 0xA00000, 0xAFFFFF, "UAV Navigation", "UAV-NAVIGATION" }, { 0xB44D43, 0xB00000, 0xBFFFFF, "Paulmann Licht GmbH", "PAULMANN-LICHT" }, { 0xB44D43, 0xC00000, 0xCFFFFF, "SHENZHEN KOSKY TECHNOLOGY CO.,LTD.", "SHENZHEN-KOSKY" }, { 0xB44D43, 0xD00000, 0xDFFFFF, "Shenzhen CreatLentem Technology Co.,Ltd", "SHENZHEN-CREATLENTEM" }, { 0xB44D43, 0xE00000, 0xEFFFFF, "GearUP Portal Pte. Ltd.", "GEARUP-PORTAL-PTE" }, { 0xB4A2EB, 0x000000, 0x0FFFFF, "QKM Technology(Dongguan)Co.,Ltd", "QKM-DONGGUAN" }, { 0xB4A2EB, 0x100000, 0x1FFFFF, "DCI International, LLC.", "DCI" }, { 0xB4A2EB, 0x200000, 0x2FFFFF, "ONX Inc.", "ONX" }, { 0xB4A2EB, 0x300000, 0x3FFFFF, "Canaan Creative Co.,Ltd.", "CANAAN-CREATIVE" }, { 0xB4A2EB, 0x400000, 0x4FFFFF, "Softel SA de CV", "SOFTEL-DE-CV" }, { 0xB4A2EB, 0x500000, 0x5FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xB4A2EB, 0x600000, 0x6FFFFF, "ShenZhen Lark Acoustics Co., Ltd.", "SHENZHEN-LARK-ACOUSTICS" }, { 0xB4A2EB, 0x700000, 0x7FFFFF, "Kona I", "KONA-I" }, { 0xB4A2EB, 0x800000, 0x8FFFFF, "SHENZHEN ZHUIFENGMA TECHNOLOGY CO., LTD", "SHENZHEN-ZHUIFENGMA" }, { 0xB4A2EB, 0x900000, 0x9FFFFF, "CURRENT WAYS, INC.", "CURRENT-WAYS" }, { 0xB4A2EB, 0xA00000, 0xAFFFFF, "Hengkang(Hangzhou)Co.,Ltd", "HENGKANGHANGZHOU" }, { 0xB4A2EB, 0xB00000, 0xBFFFFF, "Quantitec GmbH", "QUANTITEC" }, { 0xB4A2EB, 0xC00000, 0xCFFFFF, "Shanghai Shenou Communication Equipment Co., Ltd.", "SHANGHAI-SHENOU-COMMUNICATION-EQUIPMENT" }, { 0xB4A2EB, 0xD00000, 0xDFFFFF, "SALZBRENNER media GmbH", "SALZBRENNER-MEDIA" }, { 0xB4A2EB, 0xE00000, 0xEFFFFF, "Dongguan Finslink Communication Technology Co.,Ltd.", "DONGGUAN-FINSLINK-COMMUNICATION" }, { 0xB8D812, 0x000000, 0x0FFFFF, "Glamo Inc.", "GLAMO" }, { 0xB8D812, 0x100000, 0x1FFFFF, "VOTEM", "VOTEM" }, { 0xB8D812, 0x200000, 0x2FFFFF, "IPM Sales and service Co.,Ltd.", "IPM-SALES-AND-SERVICE" }, { 0xB8D812, 0x300000, 0x3FFFFF, "iModesty Technology Corp.", "IMODESTY" }, { 0xB8D812, 0x400000, 0x4FFFFF, "V5 Technology Corporation", "V5" }, { 0xB8D812, 0x500000, 0x5FFFFF, "XIAMEN XINDECO LTD.", "XIAMEN-XINDECO" }, { 0xB8D812, 0x600000, 0x6FFFFF, "Vonger Electronic Technology Co.,Ltd.", "VONGER" }, { 0xB8D812, 0x700000, 0x7FFFFF, "Neuropace Inc.", "NEUROPACE" }, { 0xB8D812, 0x800000, 0x8FFFFF, "Visual Productions BV", "VISUAL-PRODUCTIONS" }, { 0xB8D812, 0x900000, 0x9FFFFF, "Entotem LTD", "ENTOTEM" }, { 0xB8D812, 0xA00000, 0xAFFFFF, "Kiwigrid GmbH", "KIWIGRID" }, { 0xB8D812, 0xB00000, 0xBFFFFF, "Docobo Limited", "DOCOBO" }, { 0xB8D812, 0xC00000, 0xCFFFFF, "Yuwei Info&Tech Development Co.,Ltd", "YUWEI-INFO-TECH-DEVELOPMENT" }, { 0xB8D812, 0xD00000, 0xDFFFFF, "Lam Research", "LAM-RESEARCH" }, { 0xB8D812, 0xE00000, 0xEFFFFF, "ZheJiang FangTai Electirc Co., Ltd", "ZHEJIANG-FANGTAI-ELECTIRC" }, { 0xB8D812, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xBC3198, 0x000000, 0x0FFFFF, "THINKCAR TECH CO.,LTD.", "THINKCAR-TECH" }, { 0xBC3198, 0x100000, 0x1FFFFF, "swiss-sonic Ultraschall AG", "SWISS-SONIC-ULTRASCHALL" }, { 0xBC3198, 0x200000, 0x2FFFFF, "JSC Megapolis-telecom region", "JSC-MEGAPOLIS-TELECOM-REGION" }, { 0xBC3198, 0x300000, 0x3FFFFF, "Shenzhen Qichang Intelligent Technology Co., Ltd.", "SHENZHEN-QICHANG-INTELLIGENT" }, { 0xBC3198, 0x400000, 0x4FFFFF, "Chongqing e-skybest ELECT CO.,LIMITED", "CHONGQING-E-SKYBEST-ELECT" }, { 0xBC3198, 0x500000, 0x5FFFFF, "Hunan Gukam Railway Equipment Co.,Ltd", "HUNAN-GUKAM-RAILWAY-EQUIPMENT" }, { 0xBC3198, 0x600000, 0x6FFFFF, "ntc mekhanotronnika", "NTC-MEKHANOTRONNIKA" }, { 0xBC3198, 0x700000, 0x7FFFFF, "Zhejiang Delixi Electric Appliance Co., Ltd", "ZHEJIANG-DELIXI-ELECTRIC-APPLIANCE" }, { 0xBC3198, 0x800000, 0x8FFFFF, "Temposonics,LLC", "TEMPOSONICS" }, { 0xBC3198, 0x900000, 0x9FFFFF, "Baisstar (Shenzhen) Intelligence Co., Ltd.", "BAISSTAR-SHENZHEN-INTELLIGENCE" }, { 0xBC3198, 0xA00000, 0xAFFFFF, "FUJITSU COMPONENT LIMIED", "FUJITSU-COMPONENT-LIMIED" }, { 0xBC3198, 0xB00000, 0xBFFFFF, "Suzhou Anchi Control system.,Co.Ltd", "SUZHOU-ANCHI-CONTROL-SYSTEM" }, { 0xBC3198, 0xC00000, 0xCFFFFF, "Innoflight, Inc.", "INNOFLIGHT" }, { 0xBC3198, 0xD00000, 0xDFFFFF, "Shanghai Sigen New Energy Technology Co., Ltd", "SHANGHAI-SIGEN-NEW-ENERGY" }, { 0xBC3198, 0xE00000, 0xEFFFFF, "RADAR", "RADAR" }, { 0xBC3400, 0x000000, 0x0FFFFF, "Redvision CCTV", "REDVISION-CCTV" }, { 0xBC3400, 0x100000, 0x1FFFFF, "IPLINK Technology Corp", "IPLINK" }, { 0xBC3400, 0x200000, 0x2FFFFF, "LifeSmart", "LIFESMART" }, { 0xBC3400, 0x300000, 0x3FFFFF, "Altronix Corporation", "ALTRONIX" }, { 0xBC3400, 0x400000, 0x4FFFFF, "Dexcel Design Pvt Ltd", "DEXCEL-DESIGN-PVT" }, { 0xBC3400, 0x500000, 0x5FFFFF, "NDSL, Inc.", "NDSL" }, { 0xBC3400, 0x600000, 0x6FFFFF, "Cameron", "CAMERON" }, { 0xBC3400, 0x700000, 0x7FFFFF, "Q-PRODUCTS a. s.", "Q-PRODUCTS" }, { 0xBC3400, 0x800000, 0x8FFFFF, "MATICA TECHNOLOGIES AG", "MATICA-TECHNOLOGIES" }, { 0xBC3400, 0x900000, 0x9FFFFF, "Shenzhen PHilorise Technical Limited", "SHENZHEN-PHILORISE-TECHNICAL" }, { 0xBC3400, 0xA00000, 0xAFFFFF, "AURALIC LIMITED", "AURALIC" }, { 0xBC3400, 0xB00000, 0xBFFFFF, "FARO TECHNOLOGIES, INC.", "FARO-TECHNOLOGIES" }, { 0xBC3400, 0xC00000, 0xCFFFFF, "Parlay Labs dba Highfive", "PARLAY-LABS-DBA-HIGHFIVE" }, { 0xBC3400, 0xD00000, 0xDFFFFF, "Hangzhou Linker Digital Technology Co., Ltd", "HANGZHOU-LINKER-DIGITAL" }, { 0xBC3400, 0xE00000, 0xEFFFFF, "LLD Technology Ltd.", "LLD" }, { 0xBC3400, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xBC6641, 0x000000, 0x0FFFFF, "InSync Technology Ltd", "INSYNC" }, { 0xBC6641, 0x100000, 0x1FFFFF, "Global China Technology Limited", "GLOBAL-CHINA" }, { 0xBC6641, 0x200000, 0x2FFFFF, "Process-Electronic Sp. z o.o.", "PROCESS-SP-Z-O-O" }, { 0xBC6641, 0x300000, 0x3FFFFF, "Solectria Renewables, LLC", "SOLECTRIA-RENEWABLES" }, { 0xBC6641, 0x400000, 0x4FFFFF, "ARGUS-SPECTRUM", "ARGUS-SPECTRUM" }, { 0xBC6641, 0x500000, 0x5FFFFF, "Scientific Games", "SCIENTIFIC-GAMES" }, { 0xBC6641, 0x600000, 0x6FFFFF, "Intuitive Surgical, Inc", "INTUITIVE-SURGICAL" }, { 0xBC6641, 0x700000, 0x7FFFFF, "VSN Mobil", "VSN-MOBIL" }, { 0xBC6641, 0x800000, 0x8FFFFF, "Shenzhen Yaguang communication CO.,LTD", "SHENZHEN-YAGUANG-COMMUNICATION" }, { 0xBC6641, 0x900000, 0x9FFFFF, "Shenzhen General Measure Technology Co., Ltd", "SHENZHEN-GENERAL-MEASURE" }, { 0xBC6641, 0xA00000, 0xAFFFFF, "EBlink", "EBLINK" }, { 0xBC6641, 0xB00000, 0xBFFFFF, "Sidus Novum Sp. z o. o.", "SIDUS-NOVUM-SP-Z-O-O" }, { 0xBC6641, 0xC00000, 0xCFFFFF, "Shenzhen Crave Communication Co.,ltd", "SHENZHEN-CRAVE-COMMUNICATION" }, { 0xBC6641, 0xD00000, 0xDFFFFF, "UtilLighting Co.,Ltd.", "UTILLIGHTING" }, { 0xBC6641, 0xE00000, 0xEFFFFF, "Lucent Trans Electronics Co., Ltd", "LUCENT-TRANS-ELECTRONICS" }, { 0xBC6641, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xBC9740, 0x000000, 0x0FFFFF, "Alpha ESS Co., Ltd.", "ALPHA-ESS" }, { 0xBC9740, 0x100000, 0x1FFFFF, "comtac AG", "COMTAC" }, { 0xBC9740, 0x200000, 0x2FFFFF, "Lattec I/S", "LATTEC-I/S" }, { 0xBC9740, 0x300000, 0x3FFFFF, "Precision Galaxy Pvt. Ltd", "PRECISION-GALAXY-PVT" }, { 0xBC9740, 0x400000, 0x4FFFFF, "Wind Mobility Technology (Beijing) Co., Ltd", "WIND-MOBILITY-BEIJING" }, { 0xBC9740, 0x500000, 0x5FFFFF, "Shanghai Laisi Information Technology Co.,Ltd", "SHANGHAI-LAISI-INFORMATION" }, { 0xBC9740, 0x600000, 0x6FFFFF, "Shenzhen Colorwin Optical Technology Co.,Ltd", "SHENZHEN-COLORWIN-OPTICAL" }, { 0xBC9740, 0x700000, 0x7FFFFF, "Airfi Oy AB", "AIRFI-OY-AB" }, { 0xBC9740, 0x800000, 0x8FFFFF, "Gaodi Rus", "GAODI-RUS" }, { 0xBC9740, 0x900000, 0x9FFFFF, "Direct Communication Solutions", "DIRECT-COMMUNICATION-SOLUTIONS" }, { 0xBC9740, 0xA00000, 0xAFFFFF, "Amap Information Technology Co., Ltd", "AMAP-INFORMATION" }, { 0xBC9740, 0xB00000, 0xBFFFFF, "ForoTel", "FOROTEL" }, { 0xBC9740, 0xC00000, 0xCFFFFF, "LISTEC GmbH", "LISTEC" }, { 0xBC9740, 0xD00000, 0xDFFFFF, "Rollock Oy", "ROLLOCK-OY" }, { 0xBC9740, 0xE00000, 0xEFFFFF, "B4ComTechnologies LLC", "B4COMTECHNOLOGIES" }, { 0xC0619A, 0x000000, 0x0FFFFF, "Paragon Robotics LLC", "PARAGON-ROBOTICS" }, { 0xC0619A, 0x100000, 0x1FFFFF, "KidKraft", "KIDKRAFT" }, { 0xC0619A, 0x200000, 0x2FFFFF, "Grup Arge Enerji ve Kontrol Sistemleri", "GRUP-ARGE-ENERJI-VE-KONTROL-SISTEMLERI" }, { 0xC0619A, 0x300000, 0x3FFFFF, "LYAND ACOUSTIC TECHNOLOGY CO.,LTD.", "LYAND-ACOUSTIC" }, { 0xC0619A, 0x400000, 0x4FFFFF, "Stello", "STELLO" }, { 0xC0619A, 0x500000, 0x5FFFFF, "Nanjing Balance Network Technology Co., Ltd", "NANJING-BALANCE-NETWORK" }, { 0xC0619A, 0x600000, 0x6FFFFF, "IPG Automotive GmbH", "IPG-AUTOMOTIVE" }, { 0xC0619A, 0x700000, 0x7FFFFF, "MAD PIECE LLC.", "MAD-PIECE" }, { 0xC0619A, 0x800000, 0x8FFFFF, "Nanjing SinoVatio Technology Co., Ltd", "NANJING-SINOVATIO" }, { 0xC0619A, 0x900000, 0x9FFFFF, "Wingtech Mobile Communications Co.,Ltd.", "WINGTECH-MOBILE-COMMUNICATION" }, { 0xC0619A, 0xA00000, 0xAFFFFF, "Gronn Kontakt AS", "GRONN-KONTAKT-AS" }, { 0xC0619A, 0xB00000, 0xBFFFFF, "Victron Energy B.V.", "VICTRON-ENERGY-B-V" }, { 0xC0619A, 0xC00000, 0xCFFFFF, "JAM-Labs Corp", "JAM-LABS" }, { 0xC0619A, 0xD00000, 0xDFFFFF, "Uhnder", "UHNDER" }, { 0xC0619A, 0xE00000, 0xEFFFFF, "Zhejiang Haikang Science And Technology Co.,Ltd", "ZHEJIANG-HAIKANG-SCIENCE" }, { 0xC08359, 0x000000, 0x0FFFFF, "CHONGQING JIUYU SMART TECHNOLOGY CO.LTD.", "CHONGQING-JIUYU-SMART" }, { 0xC08359, 0x100000, 0x1FFFFF, "Gemvax Technology ,. Co.Ltd", "GEMVAX" }, { 0xC08359, 0x200000, 0x2FFFFF, "Huaxin SM Optics Co. LTD.", "HUAXIN-SM-OPTICS" }, { 0xC08359, 0x300000, 0x3FFFFF, "PCH Engineering A/S", "PCH-ENGINEERING-A/S" }, { 0xC08359, 0x400000, 0x4FFFFF, "ANTS", "ANTS" }, { 0xC08359, 0x500000, 0x5FFFFF, "Viper Design, LLC", "VIPER-DESIGN" }, { 0xC08359, 0x600000, 0x6FFFFF, "Beijing Cloud Fly Technology Development Co.Ltd", "BEIJING-CLOUD-FLY-DEVELOPMENT" }, { 0xC08359, 0x700000, 0x7FFFFF, "Fuzhou Fdlinker Technology Co.,LTD", "FUZHOU-FDLINKER" }, { 0xC08359, 0x800000, 0x8FFFFF, "ista International GmbH", "ISTA" }, { 0xC08359, 0x900000, 0x9FFFFF, "Shenzhen Pay Device Technology Co., Ltd.", "SHENZHEN-PAY-DEVICE" }, { 0xC08359, 0xA00000, 0xAFFFFF, "SHANGHAI CHARMHOPE INFORMATION TECHNOLOGY CO.,LTD.", "SHANGHAI-CHARMHOPE-INFORMATION" }, { 0xC08359, 0xB00000, 0xBFFFFF, "Suzhou Siheng Science and Technology Ltd.", "SUZHOU-SIHENG-SCIENCE" }, { 0xC08359, 0xC00000, 0xCFFFFF, "Private", "PRIVATE" }, { 0xC08359, 0xD00000, 0xDFFFFF, "Gardner Denver Thomas GmbH", "GARDNER-DENVER-THOMAS" }, { 0xC08359, 0xE00000, 0xEFFFFF, "Cyber Sciences, Inc.", "CYBER-SCIENCES" }, { 0xC09BF4, 0x000000, 0x0FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xC09BF4, 0x100000, 0x1FFFFF, "Connected Space Management", "CONNECTED-SPACE-MANAGEMENT" }, { 0xC09BF4, 0x200000, 0x2FFFFF, "Hitachi High-Tech Materials Corporation", "HITACHI-HIGH-TECH-MATERIALS" }, { 0xC09BF4, 0x300000, 0x3FFFFF, "Osprey Video, Inc", "OSPREY-VIDEO" }, { 0xC09BF4, 0x400000, 0x4FFFFF, "JSC NPK ATRONIK", "JSC-NPK-ATRONIK" }, { 0xC09BF4, 0x500000, 0x5FFFFF, "Infiot Inc.", "INFIOT" }, { 0xC09BF4, 0x600000, 0x6FFFFF, "LTD Delovoy Office", "DELOVOY-OFFICE" }, { 0xC09BF4, 0x700000, 0x7FFFFF, "Big Dutchman International GmbH", "BIG-DUTCHMAN" }, { 0xC09BF4, 0x800000, 0x8FFFFF, "SHENZHEN WINS ELECTRONIC TECHNOLOGY CO., LTD", "SHENZHEN-WINS" }, { 0xC09BF4, 0x900000, 0x9FFFFF, "Alcatraz AI Inc.", "ALCATRAZ-AI" }, { 0xC09BF4, 0xA00000, 0xAFFFFF, "Inveo", "INVEO" }, { 0xC09BF4, 0xB00000, 0xBFFFFF, "NUCTECH COMPANY LIMITED", "NUCTECH-COMPANY" }, { 0xC09BF4, 0xC00000, 0xCFFFFF, "Pinpark Inc.", "PINPARK" }, { 0xC09BF4, 0xD00000, 0xDFFFFF, "The Professional Monitor Company Ltd", "THE-PROFESSIONAL-MONITOR-COMPANY" }, { 0xC09BF4, 0xE00000, 0xEFFFFF, "Continental Automotive Component Malaysia Sdn.Bhd.", "CONTINENTAL-AUTOMOTIVE-COMPONENT-MALAYSIA" }, { 0xC0D391, 0x000000, 0x0FFFFF, "Fuzhou Jinshi Technology Co.,Ltd.", "FUZHOU-JINSHI" }, { 0xC0D391, 0x100000, 0x1FFFFF, "B9Creations", "B9CREATIONS" }, { 0xC0D391, 0x200000, 0x2FFFFF, "Hofon Automation Co.,Ltd", "HOFON-AUTOMATION" }, { 0xC0D391, 0x300000, 0x3FFFFF, "IXON B.V.", "IXON-B-V" }, { 0xC0D391, 0x400000, 0x4FFFFF, "Vernier Software & Technology", "VERNIER-SOFTWARE" }, { 0xC0D391, 0x500000, 0x5FFFFF, "WiTagg, Inc", "WITAGG" }, { 0xC0D391, 0x600000, 0x6FFFFF, "Ernitec", "ERNITEC" }, { 0xC0D391, 0x700000, 0x7FFFFF, "ALNETz Co.,LTD", "ALNETZ" }, { 0xC0D391, 0x800000, 0x8FFFFF, "XENA SECURITY LIMITED", "XENA-SECURITY" }, { 0xC0D391, 0x900000, 0x9FFFFF, "xxter bv", "XXTER" }, { 0xC0D391, 0xA00000, 0xAFFFFF, "Alpha Audiotronics, Inc.", "ALPHA-AUDIOTRONICS" }, { 0xC0D391, 0xB00000, 0xBFFFFF, "Celliber Technologies Pvt Limited", "CELLIBER-TECHNOLOGIES-PVT" }, { 0xC0D391, 0xC00000, 0xCFFFFF, "Zhinengguo technology company limited", "ZHINENGGUO-COMPANY" }, { 0xC0D391, 0xD00000, 0xDFFFFF, "REGULUS CO.,LTD.", "REGULUS" }, { 0xC0D391, 0xE00000, 0xEFFFFF, "SAMSARA NETWORKS INC", "SAMSARA-NETWORKS" }, { 0xC0EAC3, 0x000000, 0x0FFFFF, "Anhui Shengjiaruiduo Electronic Technology Co., Ltd.", "ANHUI-SHENGJIARUIDUO" }, { 0xC0EAC3, 0x100000, 0x1FFFFF, "Dongguan Wecxw CO.,Ltd.", "DONGGUAN-WECXW" }, { 0xC0EAC3, 0x200000, 0x2FFFFF, "NEXSEC Incorporated", "NEXSEC-INCORPORATED" }, { 0xC0EAC3, 0x300000, 0x3FFFFF, "Hangzhou Qixun Technology Co., Ltd", "HANGZHOU-QIXUN" }, { 0xC0EAC3, 0x400000, 0x4FFFFF, "Tokoz a.s.", "TOKOZ" }, { 0xC0EAC3, 0x500000, 0x5FFFFF, "Techem Energy Services GmbH", "TECHEM-ENERGY-SERVICES" }, { 0xC0EAC3, 0x600000, 0x6FFFFF, "Worldpass industrial Company Limited", "WORLDPASS-INDUSTRIAL-COMPANY" }, { 0xC0EAC3, 0x700000, 0x7FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xC0EAC3, 0x800000, 0x8FFFFF, "CDSTech", "CDSTECH" }, { 0xC0EAC3, 0x900000, 0x9FFFFF, "OLEDCOMM", "OLEDCOMM" }, { 0xC0EAC3, 0xA00000, 0xAFFFFF, "VOLT EQUIPAMENTOS ELETRONICOS LTDA", "VOLT-EQUIPAMENTOS-ELETRONICOS-LTDA" }, { 0xC0EAC3, 0xB00000, 0xBFFFFF, "SeongHo Information and Communication Corp.", "SEONGHO-INFORMATION-AND-COMMUNICATION" }, { 0xC0EAC3, 0xC00000, 0xCFFFFF, "Trumeter", "TRUMETER" }, { 0xC0EAC3, 0xD00000, 0xDFFFFF, "Kontron Asia Technology Inc.", "KONTRON-ASIA" }, { 0xC0EAC3, 0xE00000, 0xEFFFFF, "Beijing Zhongyuanyishang Technology Co Ltd", "BEIJING-ZHONGYUANYISHANG" }, { 0xC0FBF9, 0x000000, 0x0FFFFF, "Xerox Corporation", "XEROX" }, { 0xC0FBF9, 0x100000, 0x1FFFFF, "LIXIL Corporation", "LIXIL" }, { 0xC0FBF9, 0x200000, 0x2FFFFF, "Dongguan Chuan OptoElectronics Limited", "DONGGUAN-CHUAN-OPTOELECTRONICS" }, { 0xC0FBF9, 0x300000, 0x3FFFFF, "SHENZHEN HEQIANG ELECTRONICS LIMITED", "SHENZHEN-HEQIANG-ELECTRONICS" }, { 0xC0FBF9, 0x400000, 0x4FFFFF, "Minato Advanced Technologies inc", "MINATO-ADVANCED-TECHNOLOGIES" }, { 0xC0FBF9, 0x500000, 0x5FFFFF, "HAGUENET", "HAGUENET" }, { 0xC0FBF9, 0x600000, 0x6FFFFF, "IVT corporation", "IVT" }, { 0xC0FBF9, 0x700000, 0x7FFFFF, "LongSung Technology (Shanghai) Co.,Ltd.", "LONGSUNG-SHANGHAI" }, { 0xC0FBF9, 0x800000, 0x8FFFFF, "Dongmengling", "DONGMENGLING" }, { 0xC0FBF9, 0x900000, 0x9FFFFF, "zxsolution", "ZXSOLUTION" }, { 0xC0FBF9, 0xA00000, 0xAFFFFF, "Tiandi(Changzhou) Automation Co., Ltd.", "TIANDI-CHANGZHOU-AUTOMATION" }, { 0xC0FBF9, 0xB00000, 0xBFFFFF, "SHENZHEN COMIX HST CLOUD COMPUTING CO., LTD.", "SHENZHEN-COMIX-HST-CLOUD-COMPUTING" }, { 0xC0FBF9, 0xC00000, 0xCFFFFF, "SHENZHEN ELSKY TECHNOLOGY CO., LTD", "SHENZHEN-ELSKY" }, { 0xC0FBF9, 0xD00000, 0xDFFFFF, "Dropbeats Technology Co., Ltd.", "DROPBEATS" }, { 0xC0FBF9, 0xE00000, 0xEFFFFF, "Navitas Digital Safety Ltd", "NAVITAS-DIGITAL-SAFETY" }, { 0xC47C8D, 0x000000, 0x0FFFFF, "ATI", "ATI" }, { 0xC47C8D, 0x100000, 0x1FFFFF, "LYNX INNOVATION LITIMED", "LYNX-INNOVATION-LITIMED" }, { 0xC47C8D, 0x200000, 0x2FFFFF, "Star2Star Communications, LLC", "STAR2STAR-COMMUNICATION" }, { 0xC47C8D, 0x300000, 0x3FFFFF, "Watec Co., Ltd.", "WATEC" }, { 0xC47C8D, 0x400000, 0x4FFFFF, "ROBOSTAR", "ROBOSTAR" }, { 0xC47C8D, 0x500000, 0x5FFFFF, "PASCAL Co., Ltd.", "PASCAL" }, { 0xC47C8D, 0x600000, 0x6FFFFF, "HHCC Plant Technology Co.,Ltd.", "HHCC-PLANT" }, { 0xC47C8D, 0x700000, 0x7FFFFF, "Awiselink Co., Ltd.", "AWISELINK" }, { 0xC47C8D, 0x800000, 0x8FFFFF, "GETEMED Medizin- und Informationstechnik AG", "GETEMED-MEDIZIN-UND-INFORMATIONSTECHNIK" }, { 0xC47C8D, 0x900000, 0x9FFFFF, "Airbus DS - SLC", "AIRBUS-DS-SLC" }, { 0xC47C8D, 0xA00000, 0xAFFFFF, "Silvus technologies inc", "SILVUS-TECHNOLOGIES" }, { 0xC47C8D, 0xB00000, 0xBFFFFF, "GC AUTOMATION CO,LTD", "GC-AUTOMATION" }, { 0xC47C8D, 0xC00000, 0xCFFFFF, "INOTEC Sicherheitstechnik GmbH", "INOTEC-SICHERHEITSTECHNIK" }, { 0xC47C8D, 0xD00000, 0xDFFFFF, "Anhui GuangXing Linked-Video Communication Technology Co, Ltd.", "ANHUI-GUANGXING-LINKED-VIDEO-COMMUNICATION" }, { 0xC47C8D, 0xE00000, 0xEFFFFF, "Labor Strauss Sicherungsanlagenbau GmbH", "LABOR-STRAUSS-SICHERUNGSANLAGENBAU" }, { 0xC48372, 0x000000, 0x0FFFFF, "Compumedics Germany GmbH", "COMPUMEDICS-GERMANY" }, { 0xC48372, 0x100000, 0x1FFFFF, "Shenzhen King Will Technology Co., LTD", "SHENZHEN-KING-WILL" }, { 0xC48372, 0x200000, 0x2FFFFF, "AI-RIDER CORPORATION", "AI-RIDER" }, { 0xC48372, 0x300000, 0x3FFFFF, "NextSilicon", "NEXTSILICON" }, { 0xC48372, 0x400000, 0x4FFFFF, "Transact Technologies Inc", "TRANSACT-TECHNOLOGIES" }, { 0xC48372, 0x500000, 0x5FFFFF, "Wuhan Da Ta Technologies Co.,Ltd.", "WUHAN-DA-TA-TECHNOLOGIES" }, { 0xC48372, 0x600000, 0x6FFFFF, "Netplus Co., Ltd.", "NETPLUS" }, { 0xC48372, 0x700000, 0x7FFFFF, "clk2.inc", "CLK2" }, { 0xC48372, 0x800000, 0x8FFFFF, "ACCELECOM LTD.", "ACCELECOM" }, { 0xC48372, 0x900000, 0x9FFFFF, "Biwave Technologies, Inc.", "BIWAVE-TECHNOLOGIES" }, { 0xC48372, 0xA00000, 0xAFFFFF, "VIE STYLE,INC,", "VIE-STYLE" }, { 0xC48372, 0xB00000, 0xBFFFFF, "care.ai", "CARE-AI" }, { 0xC48372, 0xC00000, 0xCFFFFF, "Acenew technology(shenzhen) limited company", "ACENEW-SHENZHEN-COMPANY" }, { 0xC48372, 0xD00000, 0xDFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xC48372, 0xE00000, 0xEFFFFF, "Suzhou LZY technology Co.,Ltd", "SUZHOU-LZY" }, { 0xC4954D, 0x000000, 0x0FFFFF, "BA International Electronics Co. Ltd.", "BA-ELECTRONICS" }, { 0xC4954D, 0x100000, 0x1FFFFF, "Teletronik AG", "TELETRONIK" }, { 0xC4954D, 0x200000, 0x2FFFFF, "Shen Zhen Euse Technology Co.,Ltd", "SHENZHENEUSE" }, { 0xC4954D, 0x300000, 0x3FFFFF, "Sercomm Corporation.", "SERCOMM" }, { 0xC4954D, 0x400000, 0x4FFFFF, "GL Solutions Inc.", "GL-SOLUTIONS" }, { 0xC4954D, 0x500000, 0x5FFFFF, "Marble Automation", "MARBLE-AUTOMATION" }, { 0xC4954D, 0x600000, 0x6FFFFF, "AKKA Germany GmbH", "AKKA-GERMANY" }, { 0xC4954D, 0x700000, 0x7FFFFF, "LLC TechnoEnergo", "LLC-TECHNOENERGO" }, { 0xC4954D, 0x800000, 0x8FFFFF, "Xinjiang Golden Calf Energy IOT Technology Co., Ltd", "XINJIANG-GOLDEN-CALF-ENERGY-IOT" }, { 0xC4954D, 0x900000, 0x9FFFFF, "Shenzhen Xtooltech Co., Ltd", "SHENZHEN-XTOOLTECH" }, { 0xC4954D, 0xA00000, 0xAFFFFF, "KAT Mekatronik Urunleri AS", "KAT-MEKATRONIK-URUNLERI-AS" }, { 0xC4954D, 0xB00000, 0xBFFFFF, "Multicom, Inc", "MULTICOM" }, { 0xC4954D, 0xC00000, 0xCFFFFF, "SolidGear Corporation", "SOLIDGEAR" }, { 0xC4954D, 0xD00000, 0xDFFFFF, "Newland Era Edu Hi-Tech(BeiJing)Co.,Ltd", "NEWLAND-ERA-EDU-HI-TECH-BEIJING" }, { 0xC4954D, 0xE00000, 0xEFFFFF, "Canare Electric Co., Ltd.", "CANARE-ELECTRIC" }, { 0xC49894, 0x000000, 0x0FFFFF, "Shenzhen Megmeet Drive Technology Co.,Ltd.", "SHENZHEN-MEGMEET-DRIVE" }, { 0xC49894, 0x100000, 0x1FFFFF, "SEAVIEW TELECOM", "SEAVIEW-TELECOM" }, { 0xC49894, 0x200000, 0x2FFFFF, "Metasphere Ltd", "METASPHERE" }, { 0xC49894, 0x300000, 0x3FFFFF, "BTL Industries JSC", "BTL-INDUSTRIES-JSC" }, { 0xC49894, 0x400000, 0x4FFFFF, "Alpine Electronics Marketing, Inc.", "ALPINE-ELECTRONICS-MARKETING" }, { 0xC49894, 0x500000, 0x5FFFFF, "shenzhen lanodo technology Co., Ltd", "SHENZHEN-LANODO" }, { 0xC49894, 0x600000, 0x6FFFFF, "Aetina Corporation", "AETINA" }, { 0xC49894, 0x700000, 0x7FFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0xC49894, 0x800000, 0x8FFFFF, "Pliem (Shanghai) Intelligent Technology Co., Ltd", "PLIEM-SHANGHAI-INTELLIGENT" }, { 0xC49894, 0x900000, 0x9FFFFF, "Shenzhen Hexin Automation Technology Co.,Ltd.", "SHENZHEN-HEXIN-AUTOMATION" }, { 0xC49894, 0xA00000, 0xAFFFFF, "Neron Informatics Pvt Ltd", "NERON-INFORMATICS-PVT" }, { 0xC49894, 0xB00000, 0xBFFFFF, "Shanghai YVR Technology Co., Ltd.", "SHANGHAI-YVR" }, { 0xC49894, 0xC00000, 0xCFFFFF, "Zhejiang Rexense loT Technology Co., Ltd", "ZHEJIANG-REXENSE-LOT" }, { 0xC49894, 0xD00000, 0xDFFFFF, "Jiangsu AIDriving Co.,Ltd.", "JIANGSU-AIDRIVING" }, { 0xC49894, 0xE00000, 0xEFFFFF, "Hans Sasserath GmbH & Co. KG", "HANS-SASSERATH" }, { 0xC4A10E, 0x000000, 0x0FFFFF, "HYOSUNG Heavy Industries Corporation", "HYOSUNG-HEAVY-INDUSTRIES" }, { 0xC4A10E, 0x100000, 0x1FFFFF, "BARTEC PIXAVI AS", "BARTEC-PIXAVI-AS" }, { 0xC4A10E, 0x200000, 0x2FFFFF, "Wistron InfoComn (Kunshan) Co., Ltd.", "WISTRON-INFOCOMN-KUNSHAN" }, { 0xC4A10E, 0x300000, 0x3FFFFF, "Consolinno Energy GmbH", "CONSOLINNO-ENERGY" }, { 0xC4A10E, 0x400000, 0x4FFFFF, "Harbour Cross Technology Ltd", "HARBOUR-CROSS" }, { 0xC4A10E, 0x500000, 0x5FFFFF, "O-NET Industrial Technologies (Shenzhen) Limited", "O-NET-INDUSTRIAL-TECHNOLOGIES-SHENZHEN" }, { 0xC4A10E, 0x600000, 0x6FFFFF, "Hainan World Electronic Science and Techology Co.,Ltd", "HAINAN-WORLD-SCIENCE-AND-TECHOLOGY" }, { 0xC4A10E, 0x700000, 0x7FFFFF, "Guangzhou South Satellite Navigation Instrument Co., Ltd.", "GUANGZHOU-SOUTH-SATELLITE-NAVIGATION-INSTRUMENT" }, { 0xC4A10E, 0x800000, 0x8FFFFF, "Ayla Networks (Shenzhen) Co., Ltd.", "AYLA-NETWORKS-SHENZHEN" }, { 0xC4A10E, 0x900000, 0x9FFFFF, "XI'AN YEP TELECOM TECHNOLOGY CO.,LTD", "XI-AN-YEP-TELECOM" }, { 0xC4A10E, 0xA00000, 0xAFFFFF, "Jiangsu Perceive World Technology Co.,Ltd.", "JIANGSU-PERCEIVE-WORLD" }, { 0xC4A10E, 0xB00000, 0xBFFFFF, "Clinton Electronics Corporation", "CLINTON-ELECTRONICS" }, { 0xC4A10E, 0xC00000, 0xCFFFFF, "Focus-on", "FOCUS-ON" }, { 0xC4A10E, 0xD00000, 0xDFFFFF, "Connectlab SRL", "CONNECTLAB-SRL" }, { 0xC4A10E, 0xE00000, 0xEFFFFF, "Alio, Inc", "ALIO" }, { 0xC4A559, 0x000000, 0x0FFFFF, "Archermind Japan Co.,Ltd.", "ARCHERMIND-JAPAN" }, { 0xC4A559, 0x100000, 0x1FFFFF, "Motive Technologies, Inc.", "MOTIVE-TECHNOLOGIES" }, { 0xC4A559, 0x200000, 0x2FFFFF, "SHENZHEN ORFA TECH CO., LTD", "SHENZHEN-ORFA-TECH" }, { 0xC4A559, 0x300000, 0x3FFFFF, "X-speed lnformation Technology Co.,Ltd", "X-SPEED-LNFORMATION" }, { 0xC4A559, 0x400000, 0x4FFFFF, "Private", "PRIVATE" }, { 0xC4A559, 0x500000, 0x5FFFFF, "Moultrie Mobile", "MOULTRIE-MOBILE" }, { 0xC4A559, 0x600000, 0x6FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xC4A559, 0x700000, 0x7FFFFF, "Aviron Interactive Inc.", "AVIRON-INTERACTIVE" }, { 0xC4A559, 0x800000, 0x8FFFFF, "METICS", "METICS" }, { 0xC4A559, 0x900000, 0x9FFFFF, "Shenzhen Meishifu Technology Co.,Ltd.", "SHENZHEN-MEISHIFU" }, { 0xC4A559, 0xA00000, 0xAFFFFF, "Hebei Far-East Communication System Engineerning Co.,Ltd.", "HEBEI-FAR-EAST-COMMUNICATION-SYSTEM-ENGINEERNING" }, { 0xC4A559, 0xB00000, 0xBFFFFF, "SMH Technologies SRL", "SMH-TECHNOLOGIES-SRL" }, { 0xC4A559, 0xC00000, 0xCFFFFF, "ALTAM SYSTEMS SL", "ALTAM-SL" }, { 0xC4A559, 0xD00000, 0xDFFFFF, "MINOLTA SECURITY", "MINOLTA-SECURITY" }, { 0xC4A559, 0xE00000, 0xEFFFFF, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0xC4FFBC, 0x000000, 0x0FFFFF, "Danego BV", "DANEGO" }, { 0xC4FFBC, 0x100000, 0x1FFFFF, "VISATECH C0., LTD.", "VISATECH-C0" }, { 0xC4FFBC, 0x200000, 0x2FFFFF, "Mobiletron Electronics Co., Ltd", "MOBILETRON-ELECTRONICS" }, { 0xC4FFBC, 0x300000, 0x3FFFFF, "SHENZHEN KALIF ELECTRONICS CO.,LTD", "SHENZHEN-KALIF-ELECTRONICS" }, { 0xC4FFBC, 0x400000, 0x4FFFFF, "iMageTech CO.,LTD.", "IMAGETECH" }, { 0xC4FFBC, 0x500000, 0x5FFFFF, "comtime GmbH", "COMTIME" }, { 0xC4FFBC, 0x600000, 0x6FFFFF, "Shenzhen C & D Electronics Co., Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0xC4FFBC, 0x700000, 0x7FFFFF, "Critical Link", "CRITICAL-LINK" }, { 0xC4FFBC, 0x800000, 0x8FFFFF, "ShenZhen ZYT Technology co., Ltd", "SHENZHEN-ZYT" }, { 0xC4FFBC, 0x900000, 0x9FFFFF, "GSM Innovations Pty Ltd", "GSM-INNOVATIONS-PTY" }, { 0xC4FFBC, 0xA00000, 0xAFFFFF, "Advanced Navigation", "ADVANCED-NAVIGATION" }, { 0xC4FFBC, 0xB00000, 0xBFFFFF, "KAGA ELECTRONICS CO.,LTD.", "KAGA-ELECTRONICS" }, { 0xC4FFBC, 0xC00000, 0xCFFFFF, "KyongBo Electric Co., Ltd.", "KYONGBO-ELECTRIC" }, { 0xC4FFBC, 0xD00000, 0xDFFFFF, "Beijing KDF information technology co. LTD.", "BEIJING-KDF-INFORMATION" }, { 0xC4FFBC, 0xE00000, 0xEFFFFF, "viRaTec GmbH", "VIRATEC" }, { 0xC82C2B, 0x000000, 0x0FFFFF, "Fungible, Inc.", "FUNGIBLE" }, { 0xC82C2B, 0x100000, 0x1FFFFF, "Galgus", "GALGUS" }, { 0xC82C2B, 0x200000, 0x2FFFFF, "Repp Health", "REPP-HEALTH" }, { 0xC82C2B, 0x300000, 0x3FFFFF, "RF Engineering and Energy Resource", "RF-ENGINEERING-AND-ENERGY-RESOURCE" }, { 0xC82C2B, 0x400000, 0x4FFFFF, "iWave Systems Tech Pvt Ltd", "IWAVE-TECH-PVT" }, { 0xC82C2B, 0x500000, 0x5FFFFF, "DALCO AG", "DALCO" }, { 0xC82C2B, 0x600000, 0x6FFFFF, "Grav I.T.", "GRAV-I-T" }, { 0xC82C2B, 0x700000, 0x7FFFFF, "Merpa Bilgi Islem Ltd.Sti", "MERPA-BILGI-ISLEM-STI" }, { 0xC82C2B, 0x800000, 0x8FFFFF, "Verifone Systems (China),lnc.", "VERIFONE-CHINA-LNC" }, { 0xC82C2B, 0x900000, 0x9FFFFF, "BIOT Sp. z o.o.", "BIOT-SP-Z-O-O" }, { 0xC82C2B, 0xA00000, 0xAFFFFF, "Shiftall Inc.", "SHIFTALL" }, { 0xC82C2B, 0xB00000, 0xBFFFFF, "Kunshan SVL Electric Co.,Ltd", "KUNSHAN-SVL-ELECTRIC" }, { 0xC82C2B, 0xC00000, 0xCFFFFF, "Smart Wires Inc", "SMART-WIRES" }, { 0xC82C2B, 0xD00000, 0xDFFFFF, "UBITRON Co.,LTD", "UBITRON" }, { 0xC82C2B, 0xE00000, 0xEFFFFF, "Fränkische Rohrwerke Gebr. Kirchner GmbH & Co. KG", "FRAENKISCHE-ROHRWERKE-GEBR-KIRCHNER" }, { 0xC86314, 0x000000, 0x0FFFFF, "Western Reserve Controls, Inc.", "WESTERN-RESERVE-CONTROLS" }, { 0xC86314, 0x100000, 0x1FFFFF, "Autonics Co., Ltd.", "AUTONICS" }, { 0xC86314, 0x200000, 0x2FFFFF, "Tymphany Acoustic Technology (Huizhou) Co., Ltd.", "TYMPHANY-ACOUSTIC-HUIZHOU" }, { 0xC86314, 0x300000, 0x3FFFFF, "TrackMan", "TRACKMAN" }, { 0xC86314, 0x400000, 0x4FFFFF, "Shenzhen Zero Zero Infinity Technology Co.,Ltd.", "SHENZHEN-ZERO-ZERO-INFINITY" }, { 0xC86314, 0x500000, 0x5FFFFF, "Meyer Electronics Limited", "MEYER-ELECTRONICS" }, { 0xC86314, 0x600000, 0x6FFFFF, "GRINBI PARTNERS", "GRINBI-PARTNERS" }, { 0xC86314, 0x700000, 0x7FFFFF, "Shenzhen Wesion Technology Co., Ltd", "SHENZHEN-WESION" }, { 0xC86314, 0x800000, 0x8FFFFF, "Thinci, Inc.", "THINCI" }, { 0xC86314, 0x900000, 0x9FFFFF, "Maxcom S.A.", "MAXCOM" }, { 0xC86314, 0xA00000, 0xAFFFFF, "Optictimes Co.,Ltd", "OPTICTIMES" }, { 0xC86314, 0xB00000, 0xBFFFFF, "Shenzhen Lihewei Electronics Co.,Ltd.Hunan Branch", "SHENZHEN-LIHEWEI-ELECTRONICS-HUNAN-BRANCH" }, { 0xC86314, 0xC00000, 0xCFFFFF, "Freeus LLC", "FREEUS" }, { 0xC86314, 0xD00000, 0xDFFFFF, "Telematix AG", "TELEMATIX" }, { 0xC86314, 0xE00000, 0xEFFFFF, "Taylor Dynamometer", "TAYLOR-DYNAMOMETER" }, { 0xC86BBC, 0x000000, 0x0FFFFF, "SafelyYou", "SAFELYYOU" }, { 0xC86BBC, 0x100000, 0x1FFFFF, "WeLink Solutions, Inc.", "WELINK-SOLUTIONS" }, { 0xC86BBC, 0x200000, 0x2FFFFF, "Vipaks + Ltd", "VIPAKS" }, { 0xC86BBC, 0x300000, 0x3FFFFF, "Antevia Networks", "ANTEVIA-NETWORKS" }, { 0xC86BBC, 0x400000, 0x4FFFFF, "Liuzhou Zuo You Trade Co., Ltd.", "LIUZHOU-ZUO-YOU-TRADE" }, { 0xC86BBC, 0x500000, 0x5FFFFF, "Shenzhen Hebang Electronic Co., Ltd", "SHENZHEN-HEBANG" }, { 0xC86BBC, 0x600000, 0x6FFFFF, "Drowsy Digital Inc", "DROWSY-DIGITAL" }, { 0xC86BBC, 0x700000, 0x7FFFFF, "Shenzhen smart-core technology co.,ltd.", "SHENZHEN-SMART-CORE" }, { 0xC86BBC, 0x800000, 0x8FFFFF, "Sinsegye Beijing Technology Co., Ltd", "SINSEGYE-BEIJING" }, { 0xC86BBC, 0x900000, 0x9FFFFF, "Osee Technology LTD.", "OSEE" }, { 0xC86BBC, 0xA00000, 0xAFFFFF, "Alpha Bridge Technologies Private Limited", "ALPHA-BRIDGE-TECHNOLOGIES-PRIVATE" }, { 0xC86BBC, 0xB00000, 0xBFFFFF, "HAI ROBOTICS Co.,Ltd.", "HAI-ROBOTICS" }, { 0xC86BBC, 0xC00000, 0xCFFFFF, "ZEUS", "ZEUS" }, { 0xC86BBC, 0xD00000, 0xDFFFFF, "SCANTECH(HANGZHOU)CO.,LTD", "SCANTECH-HANGZHOU" }, { 0xC86BBC, 0xE00000, 0xEFFFFF, "Waterkotte GmbH", "WATERKOTTE" }, { 0xC88ED1, 0x000000, 0x0FFFFF, "AISWORLD PRIVATE LIMITED", "AISWORLD-PRIVATE" }, { 0xC88ED1, 0x100000, 0x1FFFFF, "German Pipe GmbH", "GERMAN-PIPE" }, { 0xC88ED1, 0x200000, 0x2FFFFF, "ROTRONIC AG", "ROTRONIC" }, { 0xC88ED1, 0x300000, 0x3FFFFF, "Linx Technologies", "LINX-TECHNOLOGIES" }, { 0xC88ED1, 0x400000, 0x4FFFFF, "Comlab AG", "COMLAB" }, { 0xC88ED1, 0x500000, 0x5FFFFF, "Fibergate.Inc", "FIBERGATE" }, { 0xC88ED1, 0x600000, 0x6FFFFF, "Shenyang Machine Tool(Group) Research & Design Institute Co., Ltd, Shanghai Branch", "SHENYANG-MACHINE-TOOL-GROUP-RESEARCH-DESIGN-INSTITUTE-SHANGHAI-BRANCH" }, { 0xC88ED1, 0x700000, 0x7FFFFF, "Ube, Inc. (dba Plum)", "UBE-DBA-PLUM" }, { 0xC88ED1, 0x800000, 0x8FFFFF, "Electronic Controls Design, Inc.", "CONTROLS-DESIGN" }, { 0xC88ED1, 0x900000, 0x9FFFFF, "Focalcrest, Ltd.", "FOCALCREST" }, { 0xC88ED1, 0xA00000, 0xAFFFFF, "AP Sensing GmbH", "AP-SENSING" }, { 0xC88ED1, 0xB00000, 0xBFFFFF, "Advanced Micro Controls Inc.", "ADVANCED-MICRO-CONTROLS" }, { 0xC88ED1, 0xC00000, 0xCFFFFF, "Shanghai Bwave Technology Co.,Ltd", "SHANGHAI-BWAVE" }, { 0xC88ED1, 0xD00000, 0xDFFFFF, "PHOENIX ENGINEERING CORP.", "PHOENIX-ENGINEERING" }, { 0xC88ED1, 0xE00000, 0xEFFFFF, "Aventics GmbH", "AVENTICS" }, { 0xC88ED1, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xC8F5D6, 0x000000, 0x0FFFFF, "MEIRYO TECHNICA CORPORATION", "MEIRYO-TECHNICA" }, { 0xC8F5D6, 0x100000, 0x1FFFFF, "Valeo Interior Controls (Shenzhen) Co.,Ltd", "VALEO-INTERIOR-CONTROLS-SHENZHEN" }, { 0xC8F5D6, 0x200000, 0x2FFFFF, "Qbic Technology Co., Ltd", "QBIC" }, { 0xC8F5D6, 0x300000, 0x3FFFFF, "BBPOS Limited", "BBPOS" }, { 0xC8F5D6, 0x400000, 0x4FFFFF, "EVOTOR LLC", "EVOTOR" }, { 0xC8F5D6, 0x500000, 0x5FFFFF, "Pinmicro K K", "PINMICRO-K-K" }, { 0xC8F5D6, 0x600000, 0x6FFFFF, "Jabil", "JABIL" }, { 0xC8F5D6, 0x700000, 0x7FFFFF, "Oscars Pro", "OSCARS-PRO" }, { 0xC8F5D6, 0x800000, 0x8FFFFF, "Yarward Electronics Co., Ltd.", "YARWARD-ELECTRONICS" }, { 0xC8F5D6, 0x900000, 0x9FFFFF, "Shanghai Mo xiang Network Technology CO.,ltd", "SHANGHAI-MO-XIANG-NETWORK" }, { 0xC8F5D6, 0xA00000, 0xAFFFFF, "HENAN FOXSTAR DIGITAL DISPLAY Co.,Ltd.", "HENAN-FOXSTAR-DIGITAL-DISPLAY" }, { 0xC8F5D6, 0xB00000, 0xBFFFFF, "United Barcode Systems", "UNITED-BARCODE" }, { 0xC8F5D6, 0xC00000, 0xCFFFFF, "Eltako GmbH", "ELTAKO" }, { 0xC8F5D6, 0xD00000, 0xDFFFFF, "Volansys technologies pvt ltd", "VOLANSYS-TECHNOLOGIES-PVT" }, { 0xC8F5D6, 0xE00000, 0xEFFFFF, "HEITEC AG", "HEITEC" }, { 0xCC1BE0, 0x000000, 0x0FFFFF, "Microtech System,Inc", "MICROTECH-SYSTEM" }, { 0xCC1BE0, 0x100000, 0x1FFFFF, "Beijing Daotongtianxia Co.Ltd.", "BEIJING-DAOTONGTIANXIA" }, { 0xCC1BE0, 0x200000, 0x2FFFFF, "i-Trinetech Co.,Ltd.", "I-TRINETECH" }, { 0xCC1BE0, 0x300000, 0x3FFFFF, "Shenzhen Vanstor Technology Co.,Ltd", "SHENZHEN-VANSTOR" }, { 0xCC1BE0, 0x400000, 0x4FFFFF, "Laserworld (Switzerland) AG", "LASERWORLD-SWITZERLAND" }, { 0xCC1BE0, 0x500000, 0x5FFFFF, "Earphone Connection, Ubc.", "EARPHONE-CONNECTION-UBC" }, { 0xCC1BE0, 0x600000, 0x6FFFFF, "IC RealTech", "IC-REALTECH" }, { 0xCC1BE0, 0x700000, 0x7FFFFF, "Sichuan Dianjia network technology Co.Ltd.", "SICHUAN-DIANJIA-NETWORK" }, { 0xCC1BE0, 0x800000, 0x8FFFFF, "MDT technologies GmbH", "MDT-TECHNOLOGIES" }, { 0xCC1BE0, 0x900000, 0x9FFFFF, "MobiStor Technology Inc.", "MOBISTOR" }, { 0xCC1BE0, 0xA00000, 0xAFFFFF, "Matter Labs Pty Ltd", "MATTER-LABS-PTY" }, { 0xCC1BE0, 0xB00000, 0xBFFFFF, "ART&CORE Inc", "ART-CORE" }, { 0xCC1BE0, 0xC00000, 0xCFFFFF, "Guangzhou Southelectric Power Science Technology Development Co.,Ltd.", "GUANGZHOU-SOUTHELECTRIC-POWER-SCIENCE-DEVELOPMENT" }, { 0xCC1BE0, 0xD00000, 0xDFFFFF, "NEWSTAR (HK) ELECTRONIC DEVELOPMENT LIMITED", "NEWSTAR-HK-DEVELOPMENT" }, { 0xCC1BE0, 0xE00000, 0xEFFFFF, "Cassia Networks", "CASSIA-NETWORKS" }, { 0xCC1BE0, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xCC2237, 0x000000, 0x0FFFFF, "MEDCOM sp. z o.o.", "MEDCOM-SP-Z-O-O" }, { 0xCC2237, 0x100000, 0x1FFFFF, "Terma Sp. z o.o.", "TERMA-SP-Z-O-O" }, { 0xCC2237, 0x200000, 0x2FFFFF, "Apeiron Data Systems", "APEIRON-DATA" }, { 0xCC2237, 0x300000, 0x3FFFFF, "XConnect Professional Services", "XCONNECT-PROFESSIONAL-SERVICES" }, { 0xCC2237, 0x400000, 0x4FFFFF, "SHANGHAI CARGOA M.&E.EQUIPMENT CO.LTD", "SHANGHAI-CARGOA-M-E-EQUIPMENT" }, { 0xCC2237, 0x500000, 0x5FFFFF, "Beijing Safesoft Greatmaker Co.,ltd", "BEIJING-SAFESOFT-GREATMAKER" }, { 0xCC2237, 0x600000, 0x6FFFFF, "Siemens AG Austria", "SIEMENS-AUSTRIA" }, { 0xCC2237, 0x700000, 0x7FFFFF, "Shanghai Doit IOT Technology Co.,Ltd.", "SHANGHAI-DOIT-IOT" }, { 0xCC2237, 0x800000, 0x8FFFFF, "Safilo S.p.A.", "SAFILO" }, { 0xCC2237, 0x900000, 0x9FFFFF, "E Ink Corp", "E-INK" }, { 0xCC2237, 0xA00000, 0xAFFFFF, "shenzhen zonglian network technology limited", "SHENZHEN-ZONGLIAN-NETWORK" }, { 0xCC2237, 0xB00000, 0xBFFFFF, "Tolomatic, Inc.", "TOLOMATIC" }, { 0xCC2237, 0xC00000, 0xCFFFFF, "Hebei ZHSF Technology Co.,Ltd.", "HEBEI-ZHSF" }, { 0xCC2237, 0xD00000, 0xDFFFFF, "SHENZHEN HOOENERGY TECHNOLOGY CO.,LTD", "SHENZHEN-HOOENERGY" }, { 0xCC2237, 0xE00000, 0xEFFFFF, "MANUFACTURAS Y TRANSFORMADOS AB, S.L.", "MANUFACTURAS-Y-TRANSFORMADOS-AB" }, { 0xCC4F5C, 0x000000, 0x0FFFFF, "Chengdu Ren Heng Mei Guang Technology Co.,Ltd.", "CHENGDU-REN-HENG-MEI-GUANG" }, { 0xCC4F5C, 0x100000, 0x1FFFFF, "lesswire GmbH", "LESSWIRE" }, { 0xCC4F5C, 0x200000, 0x2FFFFF, "MatchX GmbH", "MATCHX" }, { 0xCC4F5C, 0x300000, 0x3FFFFF, "Shanghai Zenchant Electornics Co.,LTD", "SHANGHAI-ZENCHANT-ELECTORNICS" }, { 0xCC4F5C, 0x400000, 0x4FFFFF, "Spark Biomedical", "SPARK-BIOMEDICAL" }, { 0xCC4F5C, 0x500000, 0x5FFFFF, "Kymati GmbH", "KYMATI" }, { 0xCC4F5C, 0x600000, 0x6FFFFF, "Watertech S.p.A.", "WATERTECH" }, { 0xCC4F5C, 0x700000, 0x7FFFFF, "Smiths US Innovation LLC", "SMITHS-US-INNOVATION" }, { 0xCC4F5C, 0x800000, 0x8FFFFF, "Feelmore Labs", "FEELMORE-LABS" }, { 0xCC4F5C, 0x900000, 0x9FFFFF, "Dtrovision", "DTROVISION" }, { 0xCC4F5C, 0xA00000, 0xAFFFFF, "AZ-TECHNOLOGY SDN BHD", "AZ" }, { 0xCC4F5C, 0xB00000, 0xBFFFFF, "Ontex BV", "ONTEX" }, { 0xCC4F5C, 0xC00000, 0xCFFFFF, "Beijing Cotytech Technology Co.,LTD.", "BEIJING-COTYTECH" }, { 0xCC4F5C, 0xD00000, 0xDFFFFF, "Beijing Neutron Technology CO.,LTD.", "BEIJING-NEUTRON" }, { 0xCC4F5C, 0xE00000, 0xEFFFFF, "Beijing Techao Weijia Technology Limited", "BEIJING-TECHAO-WEIJIA" }, { 0xCCC261, 0x000000, 0x0FFFFF, "Ebiologic Technology Co., Ltd.", "EBIOLOGIC" }, { 0xCCC261, 0x100000, 0x1FFFFF, "NWL Inc.", "NWL" }, { 0xCCC261, 0x200000, 0x2FFFFF, "Tecnoideal Srl", "TECNOIDEAL-SRL" }, { 0xCCC261, 0x300000, 0x3FFFFF, "NETRADYNE, INC.", "NETRADYNE" }, { 0xCCC261, 0x400000, 0x4FFFFF, "EDAG Engineering GmbH", "EDAG-ENGINEERING" }, { 0xCCC261, 0x500000, 0x5FFFFF, "Viper Design, LLC", "VIPER-DESIGN" }, { 0xCCC261, 0x600000, 0x6FFFFF, "Guardiar USA", "GUARDIAR-USA" }, { 0xCCC261, 0x700000, 0x7FFFFF, "Ability Enterprise Co., Ltd", "ABILITY" }, { 0xCCC261, 0x800000, 0x8FFFFF, "RoomMate AS", "ROOMMATE-AS" }, { 0xCCC261, 0x900000, 0x9FFFFF, "BYTERG LLC", "BYTERG" }, { 0xCCC261, 0xA00000, 0xAFFFFF, "Shenzhen Uyesee Technology Co.,Ltd", "SHENZHEN-UYESEE" }, { 0xCCC261, 0xB00000, 0xBFFFFF, "Winterthur Gas & Diesel Ltd.", "WINTERTHUR-GAS-DIESEL" }, { 0xCCC261, 0xC00000, 0xCFFFFF, "Nortek Security & Control", "NORTEK-SECURITY-CONTROL" }, { 0xCCC261, 0xD00000, 0xDFFFFF, "Dspread Technology (Beijing) Inc.", "DSPREAD-BEIJING" }, { 0xCCC261, 0xE00000, 0xEFFFFF, "Toong In Electronic Corp.", "TOONG-IN" }, { 0xCCD31E, 0x000000, 0x0FFFFF, "SAMIM Co", "SAMIM" }, { 0xCCD31E, 0x100000, 0x1FFFFF, "Rondo Burgdorf AG", "RONDO-BURGDORF" }, { 0xCCD31E, 0x200000, 0x2FFFFF, "Neptune Systems", "NEPTUNE" }, { 0xCCD31E, 0x300000, 0x3FFFFF, "KEN A/S", "KEN-A/S" }, { 0xCCD31E, 0x400000, 0x4FFFFF, "PJG Systementwicklung GmbH", "PJG-SYSTEMENTWICKLUNG" }, { 0xCCD31E, 0x500000, 0x5FFFFF, "NTmore.Co.,Ltd", "NTMORE" }, { 0xCCD31E, 0x600000, 0x6FFFFF, "BBPOS Limited", "BBPOS" }, { 0xCCD31E, 0x700000, 0x7FFFFF, "Shenzhen Decnta Technology Co.,LTD.", "SHENZHEN-DECNTA" }, { 0xCCD31E, 0x800000, 0x8FFFFF, "inoage GmbH", "INOAGE" }, { 0xCCD31E, 0x900000, 0x9FFFFF, "Siemens AG, MO MLT BG", "SIEMENS-MO-MLT-BG" }, { 0xCCD31E, 0xA00000, 0xAFFFFF, "Haishu Technology LIMITED", "HAISHU" }, { 0xCCD31E, 0xB00000, 0xBFFFFF, "Elk Products", "ELK-PRODUCTS" }, { 0xCCD31E, 0xC00000, 0xCFFFFF, "NantEnergy", "NANTENERGY" }, { 0xCCD31E, 0xD00000, 0xDFFFFF, "CUJO LLC", "CUJO" }, { 0xCCD31E, 0xE00000, 0xEFFFFF, "ShenZhenBoryNet Co.,LTD.", "SHENZHENBORYNET" }, { 0xCCD39D, 0x000000, 0x0FFFFF, "INX CO.,LTD.", "INX" }, { 0xCCD39D, 0x100000, 0x1FFFFF, "Evoko Unlimited AB", "EVOKO-UNLIMITED-AB" }, { 0xCCD39D, 0x200000, 0x2FFFFF, "Continental Control Systems", "CONTINENTAL-CONTROL" }, { 0xCCD39D, 0x300000, 0x3FFFFF, "MagTarget LLC", "MAGTARGET" }, { 0xCCD39D, 0x400000, 0x4FFFFF, "Shenzhen Chenggu Technology Co., Ltd", "SHENZHEN-CHENGGU" }, { 0xCCD39D, 0x500000, 0x5FFFFF, "SHENZHEN ROYOLE TECHNOLOGIES CO., LTD.", "SHENZHEN-ROYOLE-TECHNOLOGIES" }, { 0xCCD39D, 0x600000, 0x6FFFFF, "Krontech", "KRONTECH" }, { 0xCCD39D, 0x700000, 0x7FFFFF, "Glenair", "GLENAIR" }, { 0xCCD39D, 0x800000, 0x8FFFFF, "Obelisk Inc.", "OBELISK" }, { 0xCCD39D, 0x900000, 0x9FFFFF, "Bejing Nexsec Inc.", "BEJING-NEXSEC" }, { 0xCCD39D, 0xA00000, 0xAFFFFF, "Lubelskie Fabryki Wag FAWAG S.A.", "LUBELSKIE-FABRYKI-WAG-FAWAG" }, { 0xCCD39D, 0xB00000, 0xBFFFFF, "Q-Branch Labs, Inc.", "Q-BRANCH-LABS" }, { 0xCCD39D, 0xC00000, 0xCFFFFF, "Hangzhou Scooper Technology Co.,Ltd.", "HANGZHOU-SCOOPER" }, { 0xCCD39D, 0xD00000, 0xDFFFFF, "Ethernity Networks", "ETHERNITY-NETWORKS" }, { 0xCCD39D, 0xE00000, 0xEFFFFF, "Shanghai tongli information technology co. LTD", "SHANGHAI-TONGLI-INFORMATION" }, { 0xD01411, 0x000000, 0x0FFFFF, "EkkoSense Ltd", "EKKOSENSE" }, { 0xD01411, 0x100000, 0x1FFFFF, "Private", "PRIVATE" }, { 0xD01411, 0x200000, 0x2FFFFF, "Evoco Labs CO., LTD", "EVOCO-LABS" }, { 0xD01411, 0x300000, 0x3FFFFF, "iLOQ Oy", "ILOQ-OY" }, { 0xD01411, 0x400000, 0x4FFFFF, "powerall", "POWERALL" }, { 0xD01411, 0x500000, 0x5FFFFF, "Superlead", "SUPERLEAD" }, { 0xD01411, 0x600000, 0x6FFFFF, "Ahnnet", "AHNNET" }, { 0xD01411, 0x700000, 0x7FFFFF, "Realwave Inc.", "REALWAVE" }, { 0xD01411, 0x800000, 0x8FFFFF, "Video Security, Inc.", "VIDEO-SECURITY" }, { 0xD01411, 0x900000, 0x9FFFFF, "Airthings", "AIRTHINGS" }, { 0xD01411, 0xA00000, 0xAFFFFF, "ABB EVI SPA", "ABB-EVI-SPA" }, { 0xD01411, 0xB00000, 0xBFFFFF, "CYLTek Limited", "CYLTEK" }, { 0xD01411, 0xC00000, 0xCFFFFF, "Shen Zhen HaiHe Hi-Tech Co., Ltd", "SHEN-ZHEN-HAIHE-HI-TECH" }, { 0xD01411, 0xD00000, 0xDFFFFF, "Guangdong Shiqi Manufacture Co., Ltd.", "GUANGDONG-SHIQI-MANUFACTURE" }, { 0xD01411, 0xE00000, 0xEFFFFF, "Tecnosoft srl", "TECNOSOFT-SRL" }, { 0xD015BB, 0x000000, 0x0FFFFF, "FORTUNE MARKETING PRIVATE LIMITED", "FORTUNE-MARKETING-PRIVATE" }, { 0xD015BB, 0x100000, 0x1FFFFF, "Jiangsu Eastone Technology Co.,Ltd", "JIANGSU-EASTONE" }, { 0xD015BB, 0x200000, 0x2FFFFF, "Beijing Guangshu Zhiying Technology Development Co., Ltd.", "BEIJING-GUANGSHU-ZHIYING-DEVELOPMENT" }, { 0xD015BB, 0x300000, 0x3FFFFF, "TePS'EG", "TEPS-EG" }, { 0xD015BB, 0x400000, 0x4FFFFF, "Esders GmbH", "ESDERS" }, { 0xD015BB, 0x500000, 0x5FFFFF, "Listen Technologies", "LISTEN-TECHNOLOGIES" }, { 0xD015BB, 0x600000, 0x6FFFFF, "ShenZhen Zhongke GuanJie Data Technology Co.,Ltd.", "SHENZHEN-ZHONGKE-GUANJIE-DATA" }, { 0xD015BB, 0x700000, 0x7FFFFF, "New Tech IoT", "NEW-TECH-IOT" }, { 0xD015BB, 0x800000, 0x8FFFFF, "ALEKTO-SYSTEMS LTD", "ALEKTO" }, { 0xD015BB, 0x900000, 0x9FFFFF, "Stellar Blu Solutions", "STELLAR-BLU-SOLUTIONS" }, { 0xD015BB, 0xA00000, 0xAFFFFF, "HONG KONG COHONEST TECHNOLOGY LIMITED", "HONG-KONG-COHONEST" }, { 0xD015BB, 0xB00000, 0xBFFFFF, "EdgeDX", "EDGEDX" }, { 0xD015BB, 0xC00000, 0xCFFFFF, "Shenzhen Waystar Communication Technology Co. Ltd.", "SHENZHEN-WAYSTAR-COMMUNICATION" }, { 0xD015BB, 0xE00000, 0xEFFFFF, "PHYTEC EMBEDDED PVT LTD", "PHYTEC-EMBEDDED-PVT" }, { 0xD016F0, 0x000000, 0x0FFFFF, "Shenzhen Lesingle Technology CO., LTD.", "SHENZHEN-LESINGLE" }, { 0xD016F0, 0x100000, 0x1FFFFF, "QBIC COMMUNICATIONS DMCC", "QBIC-COMMUNICATION-DMCC" }, { 0xD016F0, 0x200000, 0x2FFFFF, "RYSE Inc.", "RYSE" }, { 0xD016F0, 0x300000, 0x3FFFFF, "Sofinet LLC", "SOFINET" }, { 0xD016F0, 0x400000, 0x4FFFFF, "BEIJING XIAOYUAN WENHUA CULTURE COMMUNICATION CO., LTD.", "BEIJING-XIAOYUAN-WENHUA-CULTURE-COMMUNICATION" }, { 0xD016F0, 0x500000, 0x5FFFFF, "wuxi high information Security Technolog", "WUXI-HIGH-INFORMATION-SECURITY-TECHNOLOG" }, { 0xD016F0, 0x600000, 0x6FFFFF, "Tornado Modular Systems", "TORNADO-MODULAR" }, { 0xD016F0, 0x700000, 0x7FFFFF, "Hydac Electronic", "HYDAC" }, { 0xD016F0, 0x800000, 0x8FFFFF, "Shenzhen DOOGEE Hengtong Technology CO.,LTD", "SHENZHEN-DOOGEE-HENGTONG" }, { 0xD016F0, 0x900000, 0x9FFFFF, "Crystal Alarm AB", "CRYSTAL-ALARM-AB" }, { 0xD016F0, 0xA00000, 0xAFFFFF, "OPTITERA GLOBAL NETWORKS PRIVATE LIMITED", "OPTITERA-GLOBAL-NETWORKS-PRIVATE" }, { 0xD016F0, 0xB00000, 0xBFFFFF, "worldcns inc.", "WORLDCNS" }, { 0xD016F0, 0xC00000, 0xCFFFFF, "Peralex Electronics (Pty) Ltd", "PERALEX-ELECTRONICS-PTY" }, { 0xD016F0, 0xD00000, 0xDFFFFF, "Top Guard Technologies", "TOP-GUARD-TECHNOLOGIES" }, { 0xD016F0, 0xE00000, 0xEFFFFF, "BBPOS Limited", "BBPOS" }, { 0xD02212, 0x000000, 0x0FFFFF, "Spirit IT B.V.", "SPIRIT-IT-B-V" }, { 0xD02212, 0x100000, 0x1FFFFF, "AIM", "AIM" }, { 0xD02212, 0x200000, 0x2FFFFF, "RHENAC Systems GmbH", "RHENAC" }, { 0xD02212, 0x400000, 0x4FFFFF, "Viatron GmbH", "VIATRON" }, { 0xD02212, 0x500000, 0x5FFFFF, "Shanghai Routech Co., Ltd", "SHANGHAI-ROUTECH" }, { 0xD02212, 0x600000, 0x6FFFFF, "URANO INDUSTRIA DE BALANCAS E EQUIPAMENTOS LTDA", "URANO-INDUSTRIA-DE-BALANCAS-E-EQUIPAMENTOS-LTDA" }, { 0xD02212, 0x700000, 0x7FFFFF, "Cliptech Industria e Comercio Ltda", "CLIPTECH-INDUSTRIA-E-COMERCIO-LTDA" }, { 0xD02212, 0x800000, 0x8FFFFF, "Shenzhen SIC Technology. Co., Ltd.", "SHENZHEN-SIC" }, { 0xD02212, 0x900000, 0x9FFFFF, "UAB "SALDA"", "UAB-QUOT-SALDA-QUOT" }, { 0xD02212, 0xA00000, 0xAFFFFF, "GNS-GmbH", "GNS" }, { 0xD02212, 0xB00000, 0xBFFFFF, "Schleifenbauer Holding BV", "SCHLEIFENBAUER-HOLDING" }, { 0xD02212, 0xC00000, 0xCFFFFF, "Xperio Labs Ltd.", "XPERIO-LABS" }, { 0xD02212, 0xD00000, 0xDFFFFF, "SHENZHEN ZHONGXI SECURITY CO.,LTD", "SHENZHEN-ZHONGXI-SECURITY" }, { 0xD02212, 0xE00000, 0xEFFFFF, "u::Lux GmbH", "U::LUX" }, { 0xD02212, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xD05F64, 0x000000, 0x0FFFFF, "Decathlon SA", "DECATHLON" }, { 0xD05F64, 0x100000, 0x1FFFFF, "Hangzhou ToupTek Photonics Co., Ltd.", "HANGZHOU-TOUPTEK-PHOTONICS" }, { 0xD05F64, 0x200000, 0x2FFFFF, "SHANGHAI ZHONGMI COMMUNICATION TECHNOLOGY CO.,LTD", "SHANGHAI-ZHONGMI-COMMUNICATION" }, { 0xD05F64, 0x300000, 0x3FFFFF, "HUAQIN TELECOM HONG KONG LTD", "HUAQIN-TELECOM-HONG-KONG" }, { 0xD05F64, 0x400000, 0x4FFFFF, "wallbe GmbH", "WALLBE" }, { 0xD05F64, 0x500000, 0x5FFFFF, "Atoll Solutions Private Limited", "ATOLL-SOLUTIONS-PRIVATE" }, { 0xD05F64, 0x600000, 0x6FFFFF, "Cyrus Technology GmbH", "CYRUS" }, { 0xD05F64, 0x700000, 0x7FFFFF, "Beijing Core Shield Group Co., Ltd.", "BEIJING-CORE-SHIELD-GROUP" }, { 0xD05F64, 0x800000, 0x8FFFFF, "TytoCare LTD.", "TYTOCARE" }, { 0xD05F64, 0x900000, 0x9FFFFF, "Shanghai Luying International Trade Co.,Ltd", "SHANGHAI-LUYING-TRADE" }, { 0xD05F64, 0xA00000, 0xAFFFFF, "PartnerNET LTD", "PARTNERNET" }, { 0xD05F64, 0xB00000, 0xBFFFFF, "North American Blue Tiger Company, LLC", "NORTH-AMERICAN-BLUE-TIGER-COMPANY" }, { 0xD05F64, 0xC00000, 0xCFFFFF, "Nanjing Huamai Technology Co.,Ltd", "NANJING-HUAMAI" }, { 0xD05F64, 0xD00000, 0xDFFFFF, "Shenzhen Canzone Technology Co.,Ltd.", "SHENZHEN-CANZONE" }, { 0xD05F64, 0xE00000, 0xEFFFFF, "Montblanc-Simplo GmbH", "MONTBLANC-SIMPLO" }, { 0xD07650, 0x000000, 0x0FFFFF, "CentrAlert, Inc.", "CENTRALERT" }, { 0xD07650, 0x100000, 0x1FFFFF, "DAIKEN AUTOMACAO LTDA", "DAIKEN-AUTOMACAO-LTDA" }, { 0xD07650, 0x200000, 0x2FFFFF, "Happo Solutions Oy", "HAPPO-SOLUTIONS-OY" }, { 0xD07650, 0x300000, 0x3FFFFF, "TAPKO Technologies GmbH", "TAPKO-TECHNOLOGIES" }, { 0xD07650, 0x400000, 0x4FFFFF, "Private", "PRIVATE" }, { 0xD07650, 0x500000, 0x5FFFFF, "Annapurna Labs", "ANNAPURNA-LABS" }, { 0xD07650, 0x600000, 0x6FFFFF, "Picobrew LLC", "PICOBREW" }, { 0xD07650, 0x700000, 0x7FFFFF, "ENCORED Technologies, Inc.", "ENCORED-TECHNOLOGIES" }, { 0xD07650, 0x800000, 0x8FFFFF, "Accumulate AB", "ACCUMULATE-AB" }, { 0xD07650, 0x900000, 0x9FFFFF, "Greenwave Scientific", "GREENWAVE-SCIENTIFIC" }, { 0xD07650, 0xA00000, 0xAFFFFF, "InventDesign", "INVENTDESIGN" }, { 0xD07650, 0xB00000, 0xBFFFFF, "PelKorea", "PELKOREA" }, { 0xD07650, 0xC00000, 0xCFFFFF, "Electro-Motive Diesel", "ELECTRO-MOTIVE-DIESEL" }, { 0xD07650, 0xD00000, 0xDFFFFF, "tecnotron elekronik gmbh", "TECNOTRON-ELEKRONIK" }, { 0xD07650, 0xE00000, 0xEFFFFF, "Revox Inc.", "REVOX" }, { 0xD07650, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xD09395, 0x000000, 0x0FFFFF, "Zhejiang Ruiyi lntelligent Technology Co. Ltd", "ZHEJIANG-RUIYI-LNTELLIGENT" }, { 0xD09395, 0x100000, 0x1FFFFF, "Hefei Siqiang Electronic Technology Co.,Ltd", "HEFEI-SIQIANG" }, { 0xD09395, 0x200000, 0x2FFFFF, "AT&T", "AT-T" }, { 0xD09395, 0x300000, 0x3FFFFF, "Nesecure Telecom Pvt Ltd", "NESECURE-TELECOM-PVT" }, { 0xD09395, 0x400000, 0x4FFFFF, "DAESUNG CELTIC ENERSYS", "DAESUNG-CELTIC-ENERSYS" }, { 0xD09395, 0x500000, 0x5FFFFF, "FungHwa i-Link Technology CO., LTD", "FUNGHWA-I-LINK" }, { 0xD09395, 0x600000, 0x6FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xD09395, 0x700000, 0x7FFFFF, "iSolution Technologies Co.,Ltd.", "ISOLUTION-TECHNOLOGIES" }, { 0xD09395, 0x800000, 0x8FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xD09395, 0x900000, 0x9FFFFF, "NINGBO SUNNY OPOTECH CO.,LTD", "NINGBO-SUNNY-OPOTECH" }, { 0xD09395, 0xA00000, 0xAFFFFF, "Automatic Devices", "AUTOMATIC-DEVICES" }, { 0xD09395, 0xB00000, 0xBFFFFF, "Invendis Technologies India Pvt Ltd", "INVENDIS-TECHNOLOGIES-INDIA-PVT" }, { 0xD09395, 0xC00000, 0xCFFFFF, "BRICK4U GmbH", "BRICK4U" }, { 0xD09395, 0xD00000, 0xDFFFFF, "T-COM LLC", "T-COM" }, { 0xD09395, 0xE00000, 0xEFFFFF, "Shenzhen Hotack Technology Co.,Ltd", "SHENZHEN-HOTACK" }, { 0xD09686, 0x000000, 0x0FFFFF, "SERNET (SUZHOU) TECHNOLOGIES CORPORATION", "SERNET-SUZHOU-TECHNOLOGIES" }, { 0xD09686, 0x100000, 0x1FFFFF, "PROVCOM LTD", "PROVCOM" }, { 0xD09686, 0x200000, 0x2FFFFF, "TMLake Technology Ltd.,", "TMLAKE" }, { 0xD09686, 0x300000, 0x3FFFFF, "EPHI B.V.", "EPHI-B-V" }, { 0xD09686, 0x400000, 0x4FFFFF, "Houston Radar LLC", "HOUSTON-RADAR" }, { 0xD09686, 0x500000, 0x5FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xD09686, 0x600000, 0x6FFFFF, "Shenzhen Ntmer Technology Co., Ltd.", "SHENZHEN-NTMER" }, { 0xD09686, 0x700000, 0x7FFFFF, "Private", "PRIVATE" }, { 0xD09686, 0x800000, 0x8FFFFF, "Energiekonzepte Deutschland GmbH", "ENERGIEKONZEPTE-DEUTSCHLAND" }, { 0xD09686, 0x900000, 0x9FFFFF, "Camfil", "CAMFIL" }, { 0xD09686, 0xA00000, 0xAFFFFF, "Hero Health Inc.", "HERO-HEALTH" }, { 0xD09686, 0xB00000, 0xBFFFFF, "Changsha keruijie lnformation Technology Co.,Ltd", "CHANGSHA-KERUIJIE-LNFORMATION" }, { 0xD09686, 0xC00000, 0xCFFFFF, "ECS s.r.l.", "ECS" }, { 0xD09686, 0xD00000, 0xDFFFFF, "CertusNet Information Technology Co.,LTD", "CERTUSNET-INFORMATION" }, { 0xD09686, 0xE00000, 0xEFFFFF, "withnetworks", "WITHNETWORKS" }, { 0xD09FD9, 0x000000, 0x0FFFFF, "Lemei Intelligent IOT (Shenzhen) Co., Ltd", "LEMEI-INTELLIGENT-IOT-SHENZHEN" }, { 0xD09FD9, 0x100000, 0x1FFFFF, "elecgator bvba", "ELECGATOR-BVBA" }, { 0xD09FD9, 0x200000, 0x2FFFFF, "Westar Display Technologies", "WESTAR-DISPLAY-TECHNOLOGIES" }, { 0xD09FD9, 0x300000, 0x3FFFFF, "GS Yuasa International Ltd.", "GS-YUASA" }, { 0xD09FD9, 0x400000, 0x4FFFFF, "Poten (Shanghai) Technology Co.,Ltd.", "POTEN-SHANGHAI" }, { 0xD09FD9, 0x500000, 0x5FFFFF, "Carbon Mobile GmbH", "CARBON-MOBILE" }, { 0xD09FD9, 0x600000, 0x6FFFFF, "Elevoc Technology Co., Ltd.", "ELEVOC" }, { 0xD09FD9, 0x700000, 0x7FFFFF, "Raymax Technology Ltd.", "RAYMAX" }, { 0xD09FD9, 0x800000, 0x8FFFFF, "Queclink Wireless Solutions Co., Ltd.", "QUECLINK-WIRELESS-SOLUTIONS" }, { 0xD09FD9, 0x900000, 0x9FFFFF, "ENTTEC Pty Ltd.", "ENTTEC-PTY" }, { 0xD09FD9, 0xA00000, 0xAFFFFF, "Eurolan Ltd", "EUROLAN" }, { 0xD09FD9, 0xB00000, 0xBFFFFF, "Cablewireless Laboratory Co., Ltd", "CABLEWIRELESS-LABORATORY" }, { 0xD09FD9, 0xC00000, 0xCFFFFF, "Fujian Newland Auto-ID Tech. Co,.Ltd.", "FUJIAN-NEWLAND-AUTO-ID-TECH" }, { 0xD09FD9, 0xD00000, 0xDFFFFF, "Shenzhen eloT Technology Co.,Ltd", "SHENZHEN-ELOT" }, { 0xD09FD9, 0xE00000, 0xEFFFFF, "Minibems Ltd", "MINIBEMS" }, { 0xD0C857, 0x000000, 0x0FFFFF, "YUAN High-Tech Development Co., Ltd.", "YUAN-HIGH-TECH-DEVELOPMENT" }, { 0xD0C857, 0x100000, 0x1FFFFF, "DALI A/S", "DALI-A/S" }, { 0xD0C857, 0x200000, 0x2FFFFF, "FORGAMERS INC.", "FORGAMERS" }, { 0xD0C857, 0x300000, 0x3FFFFF, "Mobicon", "MOBICON" }, { 0xD0C857, 0x400000, 0x4FFFFF, "Imin Technology Pte Ltd", "IMIN-PTE" }, { 0xD0C857, 0x500000, 0x5FFFFF, "Beijing Inspiry Technology Co., Ltd.", "BEIJING-INSPIRY" }, { 0xD0C857, 0x600000, 0x6FFFFF, "Innovative Industrial(HK)Co., Limited", "INNOVATIVE-INDUSTRIAL-HK" }, { 0xD0C857, 0x700000, 0x7FFFFF, "Eco Mobile", "ECO-MOBILE" }, { 0xD0C857, 0x800000, 0x8FFFFF, "Nanjing Magewell Electronics Co.,Ltd", "NANJING-MAGEWELL-ELECTRONICS" }, { 0xD0C857, 0x900000, 0x9FFFFF, "Shenzhen xiaosha Intelligence Technology Co. Ltd", "SHENZHEN-XIAOSHA-INTELLIGENCE" }, { 0xD0C857, 0xA00000, 0xAFFFFF, "shenzhen cnsun", "SHENZHEN-CNSUN" }, { 0xD0C857, 0xB00000, 0xBFFFFF, "CHUNGHSIN INTERNATIONAL ELECTRONICS CO.,LTD.", "CHUNGHSIN-ELECTRONICS" }, { 0xD0C857, 0xC00000, 0xCFFFFF, "Dante Security Inc.", "DANTE-SECURITY" }, { 0xD0C857, 0xD00000, 0xDFFFFF, "IFLYTEK CO.,LTD.", "IFLYTEK" }, { 0xD0C857, 0xE00000, 0xEFFFFF, "E-T-A Elektrotechnische Apparate GmbH", "E-T-A-ELEKTROTECHNISCHE-APPARATE" }, { 0xD0D94F, 0x000000, 0x0FFFFF, "Perfant Technology Co., Ltd", "PERFANT" }, { 0xD0D94F, 0x100000, 0x1FFFFF, "mycable GmbH", "MYCABLE" }, { 0xD0D94F, 0x200000, 0x2FFFFF, "Teco Image Systems Co., Ltd.", "TECO-IMAGE" }, { 0xD0D94F, 0x300000, 0x3FFFFF, "Beijing Yiwangxuntong Technology", "BEIJING-YIWANGXUNTONG" }, { 0xD0D94F, 0x400000, 0x4FFFFF, "peiker CEE", "PEIKER-CEE" }, { 0xD0D94F, 0x500000, 0x5FFFFF, "Optigo Networks", "OPTIGO-NETWORKS" }, { 0xD0D94F, 0x600000, 0x6FFFFF, "Hyundai Autohow", "HYUNDAI-AUTOHOW" }, { 0xD0D94F, 0x700000, 0x7FFFFF, "Mitsubishi Electric US, Inc.", "MITSUBISHI-ELECTRIC-US" }, { 0xD0D94F, 0x800000, 0x8FFFFF, "Apption Labs Limited", "APPTION-LABS" }, { 0xD0D94F, 0x900000, 0x9FFFFF, "Hangzhou xiaoben technology co.,Ltd", "HANGZHOU-XIAOBEN" }, { 0xD0D94F, 0xA00000, 0xAFFFFF, "Shenzhen FDC Electuonic Co.,Ltd.", "SHENZHEN-FDC-ELECTUONIC" }, { 0xD0D94F, 0xB00000, 0xBFFFFF, "MAX Smart Home, LLC", "MAX-SMART-HOME" }, { 0xD0D94F, 0xC00000, 0xCFFFFF, "ARROWAVE TECHNOLOGIES LIMITED", "ARROWAVE-TECHNOLOGIES" }, { 0xD0D94F, 0xD00000, 0xDFFFFF, "DUKSANMECASYS CO., LTD.", "DUKSANMECASYS" }, { 0xD0D94F, 0xE00000, 0xEFFFFF, "APPOTRONICS CO., LTD", "APPOTRONICS" }, { 0xD42000, 0x000000, 0x0FFFFF, "Wattsense", "WATTSENSE" }, { 0xD42000, 0x100000, 0x1FFFFF, "Zelus(HuangZhou) Technology Ltd.", "ZELUS-HUANGZHOU" }, { 0xD42000, 0x200000, 0x2FFFFF, "Shenzhen AI Develop & Manufacture Co.,LTD.", "SHENZHEN-AI-DEVELOP-MANUFACTURE" }, { 0xD42000, 0x300000, 0x3FFFFF, "Arbe Robotics Ltd.", "ARBE-ROBOTICS" }, { 0xD42000, 0x400000, 0x4FFFFF, "EVOC VIN Technology Co.,Ltd", "EVOC-VIN" }, { 0xD42000, 0x500000, 0x5FFFFF, "Monolith Electric?Changzhou?Co.,Ltd.", "MONOLITH-ELECTRIC?CHANGZHOU?" }, { 0xD42000, 0x600000, 0x6FFFFF, "HiAR Information Technology Co.,Ltd", "HIAR-INFORMATION" }, { 0xD42000, 0x700000, 0x7FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xD42000, 0x800000, 0x8FFFFF, "Dalian Baishengyuan Technology Co.,Ltd", "DALIAN-BAISHENGYUAN" }, { 0xD42000, 0x900000, 0x9FFFFF, "WEATHEX CO., LTD.", "WEATHEX" }, { 0xD42000, 0xA00000, 0xAFFFFF, "BirdDog Australia", "BIRDDOG-AUSTRALIA" }, { 0xD42000, 0xB00000, 0xBFFFFF, "Shenzhen Volt IoT technology co.,ltd.", "SHENZHEN-VOLT-IOT" }, { 0xD42000, 0xC00000, 0xCFFFFF, "Gentec Systems Co.", "GENTEC" }, { 0xD42000, 0xD00000, 0xDFFFFF, "ZUUM", "ZUUM" }, { 0xD42000, 0xE00000, 0xEFFFFF, "RPUSI Communication Technology Co.,Ltd.", "RPUSI-COMMUNICATION" }, { 0xD425CC, 0x000000, 0x0FFFFF, "NORDI TELEKOMMUNIKATSIOONI OÜ", "NORDI-TELEKOMMUNIKATSIOONI-OUE" }, { 0xD425CC, 0x100000, 0x1FFFFF, "Eware Information Technology com.,Ltd", "EWARE-INFORMATION-COM" }, { 0xD425CC, 0x200000, 0x2FFFFF, "MusicLens Inc.", "MUSICLENS" }, { 0xD425CC, 0x300000, 0x3FFFFF, "EISST Ltd", "EISST" }, { 0xD425CC, 0x400000, 0x4FFFFF, "Barobo, Inc.", "BAROBO" }, { 0xD425CC, 0x500000, 0x5FFFFF, "bvk technology", "BVK" }, { 0xD425CC, 0x600000, 0x6FFFFF, "Nanjing LES Information Technology Co., Ltd", "NANJING-LES-INFORMATION" }, { 0xD425CC, 0x700000, 0x7FFFFF, "BlueCats US, LLC", "BLUECATS-US" }, { 0xD425CC, 0x800000, 0x8FFFFF, "DOLBY LABORATORIES, INC.", "DOLBY-LABORATORIES" }, { 0xD425CC, 0x900000, 0x9FFFFF, "TAKUMI JAPAN LTD", "TAKUMI-JAPAN" }, { 0xD425CC, 0xA00000, 0xAFFFFF, "E-MetroTel", "E-METROTEL" }, { 0xD425CC, 0xB00000, 0xBFFFFF, "Veea", "VEEA" }, { 0xD425CC, 0xC00000, 0xCFFFFF, "POSNET Polska S.A.", "POSNET-POLSKA" }, { 0xD425CC, 0xD00000, 0xDFFFFF, "Combined Energy Technologies Pty Ltd", "COMBINED-ENERGY-TECHNOLOGIES-PTY" }, { 0xD425CC, 0xE00000, 0xEFFFFF, "Coperion", "COPERION" }, { 0xD46137, 0x000000, 0x0FFFFF, "Wistron Corporation", "WISTRON" }, { 0xD46137, 0x100000, 0x1FFFFF, "Shenzhen smart-core technology co.,ltd.", "SHENZHEN-SMART-CORE" }, { 0xD46137, 0x200000, 0x2FFFFF, "Robert Bosch Elektronikai Kft.", "ROBERT-BOSCH-ELEKTRONIKAI-KFT" }, { 0xD46137, 0x300000, 0x3FFFFF, "APPOTRONICS CO., LTD", "APPOTRONICS" }, { 0xD46137, 0x400000, 0x4FFFFF, "Beijing TAIXINYUN Technology Co.,Ltd", "BEIJING-TAIXINYUN" }, { 0xD46137, 0x500000, 0x5FFFFF, "Estelle AB", "ESTELLE-AB" }, { 0xD46137, 0x600000, 0x6FFFFF, "Securus CCTV India", "SECURUS-CCTV-INDIA" }, { 0xD46137, 0x700000, 0x7FFFFF, "Beijing Shudun Information Technology Co., Ltd", "BEIJING-SHUDUN-INFORMATION" }, { 0xD46137, 0x800000, 0x8FFFFF, "Beijing Digital China Yunke Technology Limited", "BEIJING-DIGITAL-CHINA-YUNKE" }, { 0xD46137, 0x900000, 0x9FFFFF, "Private", "PRIVATE" }, { 0xD46137, 0xA00000, 0xAFFFFF, "Shenzhen Xunjie International Trade Co., LTD", "SHENZHEN-XUNJIE-TRADE" }, { 0xD46137, 0xB00000, 0xBFFFFF, "KunPeng Instrument (Dalian)Co.,Ltd.", "KUNPENG-INSTRUMENT-DALIAN" }, { 0xD46137, 0xC00000, 0xCFFFFF, "MUSASHI ENGINEERING,INC.", "MUSASHI-ENGINEERING" }, { 0xD46137, 0xD00000, 0xDFFFFF, "IPTECHVIEW", "IPTECHVIEW" }, { 0xD46137, 0xE00000, 0xEFFFFF, "UAB Brolis sensor technology", "UAB-BROLIS-SENSOR" }, { 0xD47C44, 0x000000, 0x0FFFFF, "Exafore Oy", "EXAFORE-OY" }, { 0xD47C44, 0x100000, 0x1FFFFF, "Innoviz Technologies LTD", "INNOVIZ-TECHNOLOGIES" }, { 0xD47C44, 0x200000, 0x2FFFFF, "YunDing Network Technology (Beijing) Co., Ltd", "YUNDING-NETWORK-BEIJING" }, { 0xD47C44, 0x300000, 0x3FFFFF, "OMRON SENTECH CO., LTD.", "OMRON-SENTECH" }, { 0xD47C44, 0x400000, 0x4FFFFF, "Sammi Onformation Systems", "SAMMI-ONFORMATION" }, { 0xD47C44, 0x500000, 0x5FFFFF, "LS Communication Co.,Ltd.", "LS-COMMUNICATION" }, { 0xD47C44, 0x600000, 0x6FFFFF, "ASDA ICT Co., Ltd.", "ASDA-ICT" }, { 0xD47C44, 0x700000, 0x7FFFFF, "Pongee Industries Co., Ltd.", "PONGEE-INDUSTRIES" }, { 0xD47C44, 0x800000, 0x8FFFFF, "Beijing Maystar Information Technology Co., Ltd.", "BEIJING-MAYSTAR-INFORMATION" }, { 0xD47C44, 0x900000, 0x9FFFFF, "Suzhou Wan Dian Zhang Network Technology Co., Ltd", "SUZHOU-WAN-DIAN-ZHANG-NETWORK" }, { 0xD47C44, 0xA00000, 0xAFFFFF, "Tendzone International Pte Ltd", "TENDZONE-PTE" }, { 0xD47C44, 0xB00000, 0xBFFFFF, "OPTiM Corporation", "OPTIM" }, { 0xD47C44, 0xC00000, 0xCFFFFF, "STRIVE ORTHOPEDICS INC", "STRIVE-ORTHOPEDICS" }, { 0xD47C44, 0xD00000, 0xDFFFFF, "Huaqin Telecom Technology Co.,Ltd.", "HUAQIN-TELECOM" }, { 0xD47C44, 0xE00000, 0xEFFFFF, "SHENZHEN ANYSEC TECHNOLOGY CO. LTD", "SHENZHEN-ANYSEC" }, { 0xD4BABA, 0x000000, 0x0FFFFF, "SHENZHEN ACTION TECHNOLOGIES CO., LTD.", "SHENZHEN-ACTION-TECHNOLOGIES" }, { 0xD4BABA, 0x100000, 0x1FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xD4BABA, 0x200000, 0x2FFFFF, "GuangZhou Ostec Electronic Technology Co.,Limited", "GUANGZHOU-OSTEC" }, { 0xD4BABA, 0x300000, 0x3FFFFF, "Shenzhen Pu Ying Innovation Technology Corporation Limited", "SHENZHEN-PU-YING-INNOVATION" }, { 0xD4BABA, 0x400000, 0x4FFFFF, "Beijing Yuanxin Junsheng Technology Co.,ltd", "BEIJING-YUANXIN-JUNSHENG" }, { 0xD4BABA, 0x500000, 0x5FFFFF, "ReeR SpA", "REER-SPA" }, { 0xD4BABA, 0x600000, 0x6FFFFF, "Shenzhen Yueer Innovation Technology Co., Ltd", "SHENZHEN-YUEER-INNOVATION" }, { 0xD4BABA, 0x700000, 0x7FFFFF, "Shenzhen Double Better Technology Co., Ltd", "SHENZHEN-DOUBLE-BETTER" }, { 0xD4BABA, 0x800000, 0x8FFFFF, "Chengdu Ba SAN SI YI Information Technology Co., LTD", "CHENGDU-BA-SAN-SI-YI-INFORMATION" }, { 0xD4BABA, 0x900000, 0x9FFFFF, "Shenzhen Chuangyou Acoustic Technology Co., Ltd.", "SHENZHEN-CHUANGYOU-ACOUSTIC" }, { 0xD4BABA, 0xA00000, 0xAFFFFF, "Actiontec Electronics Inc.", "ACTIONTEC-ELECTRONICS" }, { 0xD4BABA, 0xB00000, 0xBFFFFF, "Qingdao Vzense Technology Co., Ltd.", "QINGDAO-VZENSE" }, { 0xD4BABA, 0xC00000, 0xCFFFFF, "Rusatom Automated Control Systems, Joint-Stock Company", "RUSATOM-AUTOMATED-CONTROL-JOINT-STOCK-COMPANY" }, { 0xD4BABA, 0xD00000, 0xDFFFFF, "AADONA Communication Pvt Ltd", "AADONA-COMMUNICATION-PVT" }, { 0xD4BABA, 0xE00000, 0xEFFFFF, "Camozzi Automation SpA", "CAMOZZI-AUTOMATION-SPA" }, { 0xD8860B, 0x000000, 0x0FFFFF, "Inspur Group Co., Ltd.", "INSPUR-GROUP" }, { 0xD8860B, 0x100000, 0x1FFFFF, "Krspace", "KRSPACE" }, { 0xD8860B, 0x200000, 0x2FFFFF, "Get SAT", "GET-SAT" }, { 0xD8860B, 0x300000, 0x3FFFFF, "Auvidea GmbH", "AUVIDEA" }, { 0xD8860B, 0x400000, 0x4FFFFF, "Teplovodokhran Ltd.", "TEPLOVODOKHRAN" }, { 0xD8860B, 0x500000, 0x5FFFFF, "CAMTRACE", "CAMTRACE" }, { 0xD8860B, 0x600000, 0x6FFFFF, "SCANMATIK", "SCANMATIK" }, { 0xD8860B, 0x700000, 0x7FFFFF, "Grünbeck Wasseraufbereitung GmbH", "GRUENBECK-WASSERAUFBEREITUNG" }, { 0xD8860B, 0x800000, 0x8FFFFF, "VRINDA NANO TECHNOLOGIES PVT LTD", "VRINDA-NANO-TECHNOLOGIES-PVT" }, { 0xD8860B, 0x900000, 0x9FFFFF, "DIGITAL CONCEPTS", "DIGITAL-CONCEPTS" }, { 0xD8860B, 0xA00000, 0xAFFFFF, "GLO Science", "GLO-SCIENCE" }, { 0xD8860B, 0xB00000, 0xBFFFFF, "Library Ideas", "LIBRARY-IDEAS" }, { 0xD8860B, 0xC00000, 0xCFFFFF, "YUSAN INDUSTRIES LIMITED  ", "YUSAN-INDUSTRIES" }, { 0xD8860B, 0xD00000, 0xDFFFFF, "ComNav Technology Ltd.", "COMNAV" }, { 0xD8860B, 0xE00000, 0xEFFFFF, "Shenzhen Yidong Technology Co.,Ltd", "SHENZHEN-YIDONG" }, { 0xDC3643, 0x000000, 0x0FFFFF, "Meier Tobler AG", "MEIER-TOBLER" }, { 0xDC3643, 0x100000, 0x1FFFFF, "Dongguan Pengchen Earth Instrument CO. LT", "DONGGUAN-PENGCHEN-EARTH-INSTRUMENT-LT" }, { 0xDC3643, 0x200000, 0x2FFFFF, "Wuhan Linptech Co. ,Ltd.", "WUHAN-LINPTECH" }, { 0xDC3643, 0x300000, 0x3FFFFF, "WIS Networks", "WIS-NETWORKS" }, { 0xDC3643, 0x400000, 0x4FFFFF, "Fresenius Medical Care R&D (Shanghai) Co.,Ltd.", "FRESENIUS-MEDICAL-CARE-R-D-SHANGHAI" }, { 0xDC3643, 0x500000, 0x5FFFFF, "Hangzhou Chingan Tech Co., Ltd.", "HANGZHOU-CHINGAN-TECH" }, { 0xDC3643, 0x600000, 0x6FFFFF, "Shenzhen smart-core technology co.,ltd.", "SHENZHEN-SMART-CORE" }, { 0xDC3643, 0x700000, 0x7FFFFF, "UKG", "UKG" }, { 0xDC3643, 0x800000, 0x8FFFFF, "OAK INFORMATION SYSTEM CO.", "OAK-INFORMATION-SYSTEM" }, { 0xDC3643, 0x900000, 0x9FFFFF, "Hefei EA Excelsior Information Security Co., Ltd.", "HEFEI-EA-EXCELSIOR-INFORMATION-SECURITY" }, { 0xDC3643, 0xA00000, 0xAFFFFF, "KUANTECH (CAMBODIA) CORPORATION LIMITED", "KUANTECH-CAMBODIA" }, { 0xDC3643, 0xB00000, 0xBFFFFF, "nami.ai", "NAMI-AI" }, { 0xDC3643, 0xC00000, 0xCFFFFF, "Orlaco Products B.V.", "ORLACO-PRODUCTS-B-V" }, { 0xDC3643, 0xD00000, 0xDFFFFF, "Hangzhou Huanyu Vision Technology Co., Ltd", "HANGZHOU-HUANYU-VISION" }, { 0xDC3643, 0xE00000, 0xEFFFFF, "Beijing L&S Lancom Platform Tech. Co., Ltd.", "BEIJING-L-S-LANCOM-PLATFORM-TECH" }, { 0xDC4427, 0x000000, 0x0FFFFF, "Suritel", "SURITEL" }, { 0xDC4427, 0x100000, 0x1FFFFF, "Tesla,Inc.", "TESLA" }, { 0xDC4427, 0x200000, 0x2FFFFF, "Skywave Technology Co,.Ltd.", "SKYWAVE" }, { 0xDC4427, 0x300000, 0x3FFFFF, "General Microsystems Sdn Bhd", "GENERAL-MICROSYSTEMS" }, { 0xDC4427, 0x400000, 0x4FFFFF, "Nex Technologies PTY LTD", "NEX-TECHNOLOGIES-PTY" }, { 0xDC4427, 0x500000, 0x5FFFFF, "Century Audio, Inc.", "CENTURY-AUDIO" }, { 0xDC4427, 0x600000, 0x6FFFFF, "EK-TEAM Elektronik- u. Kunststoff-Technik GmbH", "EK-TEAM-ELEKTRONIK-U-KUNSTSTOFF-TECHNIK" }, { 0xDC4427, 0x700000, 0x7FFFFF, "EcoGuard AB", "ECOGUARD-AB" }, { 0xDC4427, 0x800000, 0x8FFFFF, "Wharton Electronics Ltd", "WHARTON-ELECTRONICS" }, { 0xDC4427, 0x900000, 0x9FFFFF, "Neusoft Corporation", "NEUSOFT" }, { 0xDC4427, 0xA00000, 0xAFFFFF, "Shanghai Huahong Integrated Circuit Co.,Ltd", "SHANGHAI-HUAHONG-INTEGRATED-CIRCUIT" }, { 0xDC4427, 0xB00000, 0xBFFFFF, "Nautilus Infotech CO., Ltd.", "NAUTILUS-INFOTECH" }, { 0xDC4427, 0xC00000, 0xCFFFFF, "Pyrexx Technologies GmbH", "PYREXX-TECHNOLOGIES" }, { 0xDC4427, 0xD00000, 0xDFFFFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0xDC4427, 0xE00000, 0xEFFFFF, "VerifEye Technologies", "VERIFEYE-TECHNOLOGIES" }, { 0xDC4427, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xDC4A9E, 0x000000, 0x0FFFFF, "Dongguan Huili electroacoustic Industrial Co.,ltd", "DONGGUAN-HUILI-ELECTROACOUSTIC-INDUSTRIAL" }, { 0xDC4A9E, 0x100000, 0x1FFFFF, "Advanced Electronics Ltd", "ADVANCED-ELECTRONICS" }, { 0xDC4A9E, 0x200000, 0x2FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xDC4A9E, 0x300000, 0x3FFFFF, "LEACH INTERNATIONAL EUROPE", "LEACH-EUROPE" }, { 0xDC4A9E, 0x400000, 0x4FFFFF, "ADIAL", "ADIAL" }, { 0xDC4A9E, 0x500000, 0x5FFFFF, "Nuove Tecnologie srl", "NUOVE-TECNOLOGIE-SRL" }, { 0xDC4A9E, 0x600000, 0x6FFFFF, "TATTILE SRL", "TATTILE-SRL" }, { 0xDC4A9E, 0x700000, 0x7FFFFF, "Astrogate Inc.", "ASTROGATE" }, { 0xDC4A9E, 0x800000, 0x8FFFFF, "Methodex Systems Pvt. Ltd.", "METHODEX-PVT" }, { 0xDC4A9E, 0x900000, 0x9FFFFF, "AiSight GmbH", "AISIGHT" }, { 0xDC4A9E, 0xA00000, 0xAFFFFF, "LongSung Technology (Shanghai) Co.,Ltd.", "LONGSUNG-SHANGHAI" }, { 0xDC4A9E, 0xB00000, 0xBFFFFF, "Maxvision Technology Corp.", "MAXVISION" }, { 0xDC4A9E, 0xC00000, 0xCFFFFF, "HEFEI DATANG STORAGE TECHNOLOGY CO.,LTD", "HEFEI-DATANG-STORAGE" }, { 0xDC4A9E, 0xD00000, 0xDFFFFF, "HAPPIEST BABY INC.", "HAPPIEST-BABY" }, { 0xDC4A9E, 0xE00000, 0xEFFFFF, "SES-imagotag Deutschland GmbH", "SES-IMAGOTAG-DEUTSCHLAND" }, { 0xDCE533, 0x000000, 0x0FFFFF, "FLYHT Aerospace", "FLYHT-AEROSPACE" }, { 0xDCE533, 0x100000, 0x1FFFFF, "Ambi Labs Limited", "AMBI-LABS" }, { 0xDCE533, 0x200000, 0x2FFFFF, "Remko GmbH & Co. KG", "REMKO" }, { 0xDCE533, 0x300000, 0x3FFFFF, "ShenZhen C&D Electronics CO.Ltd.", "SHENZHEN-C-D-ELECTRONICS" }, { 0xDCE533, 0x400000, 0x4FFFFF, "shenzhen bangying electronics co,.ltd", "SHENZHEN-BANGYING-ELECTRONICS" }, { 0xDCE533, 0x500000, 0x5FFFFF, "Controls Inc", "CONTROLS" }, { 0xDCE533, 0x600000, 0x6FFFFF, "WECAN Solution Inc.", "WECAN-SOLUTION" }, { 0xDCE533, 0x700000, 0x7FFFFF, "SAN Engineering", "SAN-ENGINEERING" }, { 0xDCE533, 0x800000, 0x8FFFFF, "JB-Lighting Lichtanlagen GmbH", "JB-LIGHTING-LICHTANLAGEN" }, { 0xDCE533, 0x900000, 0x9FFFFF, "Tiertime Corporation", "TIERTIME" }, { 0xDCE533, 0xA00000, 0xAFFFFF, "Amazinglayer Network Co., Ltd.", "AMAZINGLAYER-NETWORK" }, { 0xDCE533, 0xB00000, 0xBFFFFF, "Tintel Hongkong Co.Ltd", "TINTEL-HONGKONG" }, { 0xDCE533, 0xC00000, 0xCFFFFF, "BRCK", "BRCK" }, { 0xDCE533, 0xD00000, 0xDFFFFF, "Suzhou ATES electronic technology co.LTD", "SUZHOU-ATES" }, { 0xDCE533, 0xE00000, 0xEFFFFF, "Giant Power Technology Biomedical Corporation", "GIANT-POWER-BIOMEDICAL" }, { 0xE0382D, 0x000000, 0x0FFFFF, "Beijing Cgprintech Technology Co.,Ltd", "BEIJING-CGPRINTECH" }, { 0xE0382D, 0x100000, 0x1FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xE0382D, 0x200000, 0x2FFFFF, "Xi'an Xiangxun Technology Co., Ltd.", "XI-AN-XIANGXUN" }, { 0xE0382D, 0x300000, 0x3FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xE0382D, 0x400000, 0x4FFFFF, "Qingdao Unovo Technologies Co., Ltd", "QINGDAO-UNOVO-TECHNOLOGIES" }, { 0xE0382D, 0x500000, 0x5FFFFF, "Weishi Intelligent Information Technology (Guangzhou) Co., LTD", "WEISHI-INTELLIGENT-INFORMATION-GUANGZHOU" }, { 0xE0382D, 0x600000, 0x6FFFFF, "iTracxing", "ITRACXING" }, { 0xE0382D, 0x700000, 0x7FFFFF, "Famar Fueguina S.A.", "FAMAR-FUEGUINA" }, { 0xE0382D, 0x800000, 0x8FFFFF, "Shenzhen iTest Technology Co.,Ltd", "SHENZHEN-ITEST" }, { 0xE0382D, 0x900000, 0x9FFFFF, "Velvac Incorporated", "VELVAC-INCORPORATED" }, { 0xE0382D, 0xA00000, 0xAFFFFF, "4D Photonics GmbH", "4D-PHOTONICS" }, { 0xE0382D, 0xB00000, 0xBFFFFF, "SERCOMM PHILIPPINES INC", "SERCOMM-PHILIPPINES" }, { 0xE0382D, 0xC00000, 0xCFFFFF, "SiLAND Chengdu Technology Co., Ltd", "SILAND-CHENGDU" }, { 0xE0382D, 0xD00000, 0xDFFFFF, "KEPLER COMMUNICATIONS INC.", "KEPLER-COMMUNICATION" }, { 0xE0382D, 0xE00000, 0xEFFFFF, "Anysafe", "ANYSAFE" }, { 0xE03C1C, 0x000000, 0x0FFFFF, "Scangrip", "SCANGRIP" }, { 0xE03C1C, 0x100000, 0x1FFFFF, "Shikino High-Tech Co., Ltd.", "SHIKINO-HIGH-TECH" }, { 0xE03C1C, 0x200000, 0x2FFFFF, "Hoplite Industries, Inc.", "HOPLITE-INDUSTRIES" }, { 0xE03C1C, 0x300000, 0x3FFFFF, "Dewetron GmbH", "DEWETRON" }, { 0xE03C1C, 0x400000, 0x4FFFFF, "Earable Inc.", "EARABLE" }, { 0xE03C1C, 0x500000, 0x5FFFFF, "Semic Inc.", "SEMIC" }, { 0xE03C1C, 0x600000, 0x6FFFFF, "GhinF Digital information technology (hangzhou) Co., Ltd", "GHINF-DIGITAL-INFORMATION-HANGZHOU" }, { 0xE03C1C, 0x700000, 0x7FFFFF, "Tap Home, s.r.o.", "TAP-HOME-S-R-O" }, { 0xE03C1C, 0x800000, 0x8FFFFF, "Jiangsu Riying Electronics Co.,Ltd.", "JIANGSU-RIYING-ELECTRONICS" }, { 0xE03C1C, 0x900000, 0x9FFFFF, "Ocamar Technologies (Shanghai) Co.,Ltd.", "OCAMAR-TECHNOLOGIES-SHANGHAI" }, { 0xE03C1C, 0xA00000, 0xAFFFFF, "MELAG Medizintechnik GmbH & Co. KG", "MELAG-MEDIZINTECHNIK" }, { 0xE03C1C, 0xB00000, 0xBFFFFF, "Hangzhou Uni-Ubi Co.,Ltd.", "HANGZHOU-UNI-UBI" }, { 0xE03C1C, 0xC00000, 0xCFFFFF, "Meferi Technologies Co.,Ltd.", "MEFERI-TECHNOLOGIES" }, { 0xE03C1C, 0xD00000, 0xDFFFFF, "Sprintshield d.o.o.", "SPRINTSHIELD-D-O-O" }, { 0xE03C1C, 0xE00000, 0xEFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xE05A9F, 0x000000, 0x0FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xE05A9F, 0x100000, 0x1FFFFF, "AITEC SYSTEM CO., LTD.", "AITEC-SYSTEM" }, { 0xE05A9F, 0x200000, 0x2FFFFF, "Chengdu Song Yuan Electronic Technology Co.,Ltd", "CHENGDU-SONG-YUAN" }, { 0xE05A9F, 0x300000, 0x3FFFFF, "Link of Things Co., Ltd.", "LINK-OF-THINGS" }, { 0xE05A9F, 0x400000, 0x4FFFFF, "Hale Products", "HALE-PRODUCTS" }, { 0xE05A9F, 0x500000, 0x5FFFFF, "TRYEN", "TRYEN" }, { 0xE05A9F, 0x600000, 0x6FFFFF, "Fibrain", "FIBRAIN" }, { 0xE05A9F, 0x700000, 0x7FFFFF, "OMB Guitars LLC", "OMB-GUITARS" }, { 0xE05A9F, 0x800000, 0x8FFFFF, "Fujian Newland Auto-ID Tech. Co,.Ltd.", "FUJIAN-NEWLAND-AUTO-ID-TECH" }, { 0xE05A9F, 0x900000, 0x9FFFFF, "Gemalto Document Readers", "GEMALTO-DOCUMENT-READERS" }, { 0xE05A9F, 0xA00000, 0xAFFFFF, "Contemporary Amperex Technology Co., Limited", "CONTEMPORARY-AMPEREX" }, { 0xE05A9F, 0xB00000, 0xBFFFFF, "Shenzhen Rongan Networks Technology Co.,Ltd", "SHENZHEN-RONGAN-NETWORKS" }, { 0xE05A9F, 0xC00000, 0xCFFFFF, "ShenZhen Mornsun Smartlinker Limited Co., LTD", "SHENZHEN-MORNSUN-SMARTLINKER" }, { 0xE05A9F, 0xD00000, 0xDFFFFF, "Mountz, Inc.", "MOUNTZ" }, { 0xE05A9F, 0xE00000, 0xEFFFFF, "ShenZhen Arts Changhua Intelligent Technology Co., Ltd", "SHENZHEN-ARTS-CHANGHUA-INTELLIGENT" }, { 0xE0B6F5, 0x000000, 0x0FFFFF, "BeSTAR Corporation", "BESTAR" }, { 0xE0B6F5, 0x100000, 0x1FFFFF, "START TODAY CO.,LTD.", "START-TODAY" }, { 0xE0B6F5, 0x200000, 0x2FFFFF, "Shanghai- British Information Technology Co., Ltd", "SHANGHAI-BRITISH-INFORMATION" }, { 0xE0B6F5, 0x300000, 0x3FFFFF, "Huizhou GISUN Industrial CO. LTD", "HUIZHOU-GISUN-INDUSTRIAL" }, { 0xE0B6F5, 0x400000, 0x4FFFFF, "Agora", "AGORA" }, { 0xE0B6F5, 0x500000, 0x5FFFFF, "Shenzhen Civicom Technology Co.,Limited", "SHENZHEN-CIVICOM" }, { 0xE0B6F5, 0x600000, 0x6FFFFF, "POMCube Inc.", "POMCUBE" }, { 0xE0B6F5, 0x700000, 0x7FFFFF, "Shenzhen Xrinda Technology Ltd", "SHENZHEN-XRINDA" }, { 0xE0B6F5, 0x800000, 0x8FFFFF, "Yuneec International(China)Co.,Ltd", "YUNEEC-CHINA" }, { 0xE0B6F5, 0x900000, 0x9FFFFF, "Motiveprime Consumer Electronics Pvt Ltd", "MOTIVEPRIME-CONSUMER-ELECTRONICS-PVT" }, { 0xE0B6F5, 0xA00000, 0xAFFFFF, "Folksam AB", "FOLKSAM-AB" }, { 0xE0B6F5, 0xB00000, 0xBFFFFF, "Moog Crossbow", "MOOG-CROSSBOW" }, { 0xE0B6F5, 0xC00000, 0xCFFFFF, "funktel GmbH", "FUNKTEL" }, { 0xE0B6F5, 0xD00000, 0xDFFFFF, "ITEL MOBILE LIMITED", "ITEL-MOBILE" }, { 0xE0B6F5, 0xE00000, 0xEFFFFF, "Advatek Lighting Pty Ltd", "ADVATEK-LIGHTING-PTY" }, { 0xE41E0A, 0x000000, 0x0FFFFF, "Zavod № 423", "ZAVOD-423" }, { 0xE41E0A, 0x100000, 0x1FFFFF, "Connected Cars A/S", "CONNECTED-CARS-A/S" }, { 0xE41E0A, 0x200000, 0x2FFFFF, "IDvaco Private Limited", "IDVACO-PRIVATE" }, { 0xE41E0A, 0x300000, 0x3FFFFF, "Avast Software s.r.o.", "AVAST-SOFTWARE-S-R-O" }, { 0xE41E0A, 0x400000, 0x4FFFFF, "XPR Group", "XPR-GROUP" }, { 0xE41E0A, 0x500000, 0x5FFFFF, "Aeroel srl", "AEROEL-SRL" }, { 0xE41E0A, 0x600000, 0x6FFFFF, "SFC Energy AG", "SFC-ENERGY" }, { 0xE41E0A, 0x700000, 0x7FFFFF, "Tritium Pty Ltd", "TRITIUM-PTY" }, { 0xE41E0A, 0x800000, 0x8FFFFF, "SAGE Glass", "SAGE-GLASS" }, { 0xE41E0A, 0x900000, 0x9FFFFF, "B METERS S.R.L.", "B-METERS" }, { 0xE41E0A, 0xA00000, 0xAFFFFF, "FireAngel Safety Technology Ltd", "FIREANGEL-SAFETY" }, { 0xE41E0A, 0xB00000, 0xBFFFFF, "Safety Vision, LLC", "SAFETY-VISION" }, { 0xE41E0A, 0xC00000, 0xCFFFFF, "TELETASK BELGIUM", "TELETASK-BELGIUM" }, { 0xE41E0A, 0xD00000, 0xDFFFFF, "ROMO Wind A/S", "ROMO-WIND-A/S" }, { 0xE41E0A, 0xE00000, 0xEFFFFF, "Shanghai LeXiang Technology Co., Ltd", "SHANGHAI-LEXIANG" }, { 0xE44CC7, 0x000000, 0x0FFFFF, "Alert Alarm AB", "ALERT-ALARM-AB" }, { 0xE44CC7, 0x100000, 0x1FFFFF, "ACS-Solutions GmbH", "ACS-SOLUTIONS" }, { 0xE44CC7, 0x200000, 0x2FFFFF, "Doowon Electronics & Telecom Co.,Ltd", "DOOWON-ELECTRONICS-TELECOM" }, { 0xE44CC7, 0x300000, 0x3FFFFF, "JSC Svyaz Inginiring M", "JSC-SVYAZ-INGINIRING-M" }, { 0xE44CC7, 0x400000, 0x4FFFFF, "Beijing Zhongchuangwei Nanjing Quantum Communication Technology Co., Ltd.", "BEIJING-ZHONGCHUANGWEI-NANJING-QUANTUM-COMMUNICATION" }, { 0xE44CC7, 0x500000, 0x5FFFFF, "CE LABS, LLC", "CE-LABS" }, { 0xE44CC7, 0x600000, 0x6FFFFF, "HANGZHOU OLE-SYSTEMS CO., LTD", "HANGZHOU-OLE" }, { 0xE44CC7, 0x700000, 0x7FFFFF, "Channel Enterprises (HK) Ltd.", "CHANNEL-ENTERPRISES-HK" }, { 0xE44CC7, 0x800000, 0x8FFFFF, "IAG GROUP LTD", "IAG-GROUP" }, { 0xE44CC7, 0x900000, 0x9FFFFF, "Ottomate International Pvt. Ltd.", "OTTOMATE-PVT" }, { 0xE44CC7, 0xA00000, 0xAFFFFF, "Muzik Inc", "MUZIK" }, { 0xE44CC7, 0xB00000, 0xBFFFFF, "SmallHD", "SMALLHD" }, { 0xE44CC7, 0xC00000, 0xCFFFFF, "EPS Bio", "EPS-BIO" }, { 0xE44CC7, 0xD00000, 0xDFFFFF, "Telo Systems Limitd", "TELO-LIMITD" }, { 0xE44CC7, 0xE00000, 0xEFFFFF, "FLK information security technology Co,. Ltd", "FLK-INFORMATION-SECURITY" }, { 0xE4956E, 0x000000, 0x0FFFFF, "SMC Networks, Inc", "SMC-NETWORKS" }, { 0xE4956E, 0x100000, 0x1FFFFF, "Tband srl", "TBAND-SRL" }, { 0xE4956E, 0x200000, 0x2FFFFF, "Shanghai Hoping Technology Co., Ltd.", "SHANGHAI-HOPING" }, { 0xE4956E, 0x300000, 0x3FFFFF, "Shanghai DGE Co., Ltd", "SHANGHAI-DGE" }, { 0xE4956E, 0x400000, 0x4FFFFF, "Guang Lian Zhi Tong Technology Limited", "GUANG-LIAN-ZHI-TONG" }, { 0xE4956E, 0x500000, 0x5FFFFF, "ELAN SYSTEMS", "ELAN" }, { 0xE4956E, 0x600000, 0x6FFFFF, "SHENZHEN JOYETECH ELECTRONICS CO., LTD.", "SHENZHEN-JOYETECH-ELECTRONICS" }, { 0xE4956E, 0x700000, 0x7FFFFF, "NationalchipKorea", "NATIONALCHIPKOREA" }, { 0xE4956E, 0x800000, 0x8FFFFF, "PT.MLWTelecom", "PT-MLWTELECOM" }, { 0xE4956E, 0x900000, 0x9FFFFF, "eZeLink LLC", "EZELINK" }, { 0xE4956E, 0xA00000, 0xAFFFFF, "Red Point Positioning, Corp.", "RED-POINT-POSITIONING" }, { 0xE4956E, 0xB00000, 0xBFFFFF, "iConservo Inc", "ICONSERVO" }, { 0xE4956E, 0xC00000, 0xCFFFFF, "Shenzhen Arronna Telecom Co.,Ltd", "SHENZHEN-ARRONNA-TELECOM" }, { 0xE4956E, 0xD00000, 0xDFFFFF, "Shanghai Tieda Telecommunications Equipment Co.,LTD.", "SHANGHAI-TIEDA-TELECOMMUNICATIONS-EQUIPMENT" }, { 0xE4956E, 0xE00000, 0xEFFFFF, "Tacom Projetos Bilhetagem Inteligente ltda", "TACOM-PROJETOS-BILHETAGEM-INTELIGENTE-LTDA" }, { 0xE4956E, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xE81863, 0x000000, 0x0FFFFF, "DigiMagus Technology (Shenzhen) Co., Ltd", "DIGIMAGUS-SHENZHEN" }, { 0xE81863, 0x100000, 0x1FFFFF, "clabsys", "CLABSYS" }, { 0xE81863, 0x200000, 0x2FFFFF, "AVCON Information Technology Co.,Ltd", "AVCON-INFORMATION" }, { 0xE81863, 0x300000, 0x3FFFFF, "DongGuan Pengxun Electronics Technology Co., Ltd.", "DONGGUAN-PENGXUN-ELECTRONICS" }, { 0xE81863, 0x400000, 0x4FFFFF, "Guangzhou Tianyi Electronics Co., Ltd", "GUANGZHOU-TIANYI-ELECTRONICS" }, { 0xE81863, 0x500000, 0x5FFFFF, "WETEK ELECTRONICS LIMITED", "WETEK-ELECTRONICS" }, { 0xE81863, 0x600000, 0x6FFFFF, "ARTECH SOLUTION CO.,LTD", "ARTECH-SOLUTION" }, { 0xE81863, 0x700000, 0x7FFFFF, "Siliconcube", "SILICONCUBE" }, { 0xE81863, 0x900000, 0x9FFFFF, "BSM Wireless Inc.", "BSM-WIRELESS" }, { 0xE81863, 0xA00000, 0xAFFFFF, "JDM Mobile Internet Solution(Shanghai) Co., Ltd.", "JDM-MOBILE-INTERNET-SOLUTION-SHANGHAI" }, { 0xE81863, 0xB00000, 0xBFFFFF, "Protek Electronics Group Co.,LTD", "PROTEK-ELECTRONICS-GROUP" }, { 0xE81863, 0xC00000, 0xCFFFFF, "Shenzhen Hipad Telecommunication Technology Co.,Ltd", "SHENZHEN-HIPAD-TELECOMMUNICATION" }, { 0xE81863, 0xD00000, 0xDFFFFF, "DIGITAL DYNAMICS, INC.", "DIGITAL-DYNAMICS" }, { 0xE81863, 0xE00000, 0xEFFFFF, "Acopian Technical Company", "ACOPIAN-TECHNICAL-COMPANY" }, { 0xE81863, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xE86CC7, 0x000000, 0x0FFFFF, "Trapeze Switzerland GmbH", "TRAPEZE-SWITZERLAND" }, { 0xE86CC7, 0x100000, 0x1FFFFF, "ASSA ABLOY(GuangZhou) Smart Technology Co., Ltd", "ASSA-ABLOY-GUANGZHOU-SMART" }, { 0xE86CC7, 0x200000, 0x2FFFFF, "Xirgo Technologies LLC", "XIRGO-TECHNOLOGIES" }, { 0xE86CC7, 0x300000, 0x3FFFFF, "Shenzhen Yibaifen Industrial Co.,Ltd.", "SHENZHEN-YIBAIFEN-INDUSTRIAL" }, { 0xE86CC7, 0x400000, 0x4FFFFF, "Koal Software Co., Ltd", "KOAL-SOFTWARE" }, { 0xE86CC7, 0x500000, 0x5FFFFF, "Shenzhen Rongda Computer Co.,Ltd", "SHENZHEN-RONGDA" }, { 0xE86CC7, 0x600000, 0x6FFFFF, "KLAB", "KLAB" }, { 0xE86CC7, 0x700000, 0x7FFFFF, "Huaqin Technology Co.,Ltd.", "HUAQIN" }, { 0xE86CC7, 0x800000, 0x8FFFFF, "Lighthouse EIP", "LIGHTHOUSE-EIP" }, { 0xE86CC7, 0x900000, 0x9FFFFF, "Hangzhou Lanxum Security Technology Co., Ltd", "HANGZHOU-LANXUM-SECURITY" }, { 0xE86CC7, 0xA00000, 0xAFFFFF, "CoxSpace", "COXSPACE" }, { 0xE86CC7, 0xB00000, 0xBFFFFF, "MORNSUN Guangzhou Science & Technology Co., Ltd.", "MORNSUN-GUANGZHOU-SCIENCE" }, { 0xE86CC7, 0xC00000, 0xCFFFFF, "Limited Liability Company M.S.Korp", "LIABILITY-COMPANY-M-S-KORP" }, { 0xE86CC7, 0xD00000, 0xDFFFFF, "z-max mediasolution", "Z-MAX-MEDIASOLUTION" }, { 0xE86CC7, 0xE00000, 0xEFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xE87829, 0x000000, 0x0FFFFF, "Tanz Security Technology Ltd.", "TANZ-SECURITY" }, { 0xE87829, 0x100000, 0x1FFFFF, "Shenzhen Jointelli Technologies Co.,Ltd", "SHENZHEN-JOINTELLI-TECHNOLOGIES" }, { 0xE87829, 0x200000, 0x2FFFFF, "Galcon", "GALCON" }, { 0xE87829, 0x300000, 0x3FFFFF, "Electronic Controlled Systems, Inc.", "CONTROLLED" }, { 0xE87829, 0x400000, 0x4FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xE87829, 0x500000, 0x5FFFFF, "SHEN ZHEN SKYSI WISDOM TECHNOLOGY CO.,LTD.", "SHEN-ZHEN-SKYSI-WISDOM" }, { 0xE87829, 0x600000, 0x6FFFFF, "AXING AG", "AXING" }, { 0xE87829, 0x700000, 0x7FFFFF, "FAIOT Co., LTD", "FAIOT" }, { 0xE87829, 0x800000, 0x8FFFFF, "JVISMall CO.,LTD", "JVISMALL" }, { 0xE87829, 0x900000, 0x9FFFFF, "Ryu Tech. LTD", "RYU-TECH" }, { 0xE87829, 0xA00000, 0xAFFFFF, "METZ CONNECT GmbH", "METZ-CONNECT" }, { 0xE87829, 0xB00000, 0xBFFFFF, "Ampner Ltd", "AMPNER" }, { 0xE87829, 0xC00000, 0xCFFFFF, "FairPhone B.V.", "FAIRPHONE-B-V" }, { 0xE87829, 0xD00000, 0xDFFFFF, "Bernd Walter Computer Technology", "BERND-WALTER" }, { 0xE87829, 0xE00000, 0xEFFFFF, "Solos Technology Limited", "SOLOS" }, { 0xE8B470, 0x000000, 0x0FFFFF, "DongGuan Ramaxel Memory Technology", "DONGGUAN-RAMAXEL-MEMORY" }, { 0xE8B470, 0x100000, 0x1FFFFF, "Autocom Diagnostic Partner AB", "AUTOCOM-DIAGNOSTIC-PARTNER-AB" }, { 0xE8B470, 0x200000, 0x2FFFFF, "internet domain name system beijing engineering research center ltd", "INTERNET-DOMAIN-NAME-SYSTEM-BEIJING-ENGINEERING-RESEARCH-CENTER" }, { 0xE8B470, 0x300000, 0x3FFFFF, "Webfleet Solutions B.V.", "WEBFLEET-SOLUTIONS-B-V" }, { 0xE8B470, 0x400000, 0x4FFFFF, "YAWATA ELECTRIC INDUSTRIAL CO.,LTD.", "YAWATA-ELECTRIC-INDUSTRIAL" }, { 0xE8B470, 0x500000, 0x5FFFFF, "Alperia Fiber srl", "ALPERIA-FIBER-SRL" }, { 0xE8B470, 0x600000, 0x6FFFFF, "Elcoma", "ELCOMA" }, { 0xE8B470, 0x700000, 0x7FFFFF, "Tibit Communications", "TIBIT-COMMUNICATION" }, { 0xE8B470, 0x800000, 0x8FFFFF, "DEHN SE + Co KG", "DEHN-SE" }, { 0xE8B470, 0x900000, 0x9FFFFF, "Miltek Industries Pte Ltd", "MILTEK-INDUSTRIES-PTE" }, { 0xE8B470, 0xA00000, 0xAFFFFF, "plc2 Design GmbH", "PLC2-DESIGN" }, { 0xE8B470, 0xB00000, 0xBFFFFF, "Digifocus Technology Inc.", "DIGIFOCUS" }, { 0xE8B470, 0xC00000, 0xCFFFFF, "Anduril Industries", "ANDURIL-INDUSTRIES" }, { 0xE8B470, 0xD00000, 0xDFFFFF, "Medica Corporation", "MEDICA" }, { 0xE8B470, 0xE00000, 0xEFFFFF, "UNICACCES GROUPE", "UNICACCES-GROUPE" }, { 0xEC9F0D, 0x000000, 0x0FFFFF, "Hesai Photonics Technology Co., Ltd", "HESAI-PHOTONICS" }, { 0xEC9F0D, 0x100000, 0x1FFFFF, "Simula Technology Inc.", "SIMULA" }, { 0xEC9F0D, 0x200000, 0x2FFFFF, "DRB Systems", "DRB" }, { 0xEC9F0D, 0x300000, 0x3FFFFF, "Waverly Labs Inc.", "WAVERLY-LABS" }, { 0xEC9F0D, 0x400000, 0x4FFFFF, "WisIOE", "WISIOE" }, { 0xEC9F0D, 0x500000, 0x5FFFFF, "Paw-Taw-John Services, Inc.", "PAW-TAW-JOHN-SERVICES" }, { 0xEC9F0D, 0x600000, 0x6FFFFF, "Shenzhen Compare Electronics Co., Ltd", "SHENZHEN-COMPARE-ELECTRONICS" }, { 0xEC9F0D, 0x700000, 0x7FFFFF, "Bei jing Lian Shan times Techonology Co.Ltd", "BEI-JING-LIAN-SHAN-TIMES-TECHONOLOGY" }, { 0xEC9F0D, 0x800000, 0x8FFFFF, "Zhejiang HEJU Communication Technology Co., Ltd", "ZHEJIANG-HEJU-COMMUNICATION" }, { 0xEC9F0D, 0x900000, 0x9FFFFF, "FCI", "FCI" }, { 0xEC9F0D, 0xA00000, 0xAFFFFF, "flexlog GmbH", "FLEXLOG" }, { 0xEC9F0D, 0xB00000, 0xBFFFFF, "CRRC QINGDAO SIFANG ROLLING STOCK RESEARCH INSTITUTE CO.,LTD", "CRRC-QINGDAO-SIFANG-ROLLING-STOCK-RESEARCH-INSTITUTE" }, { 0xEC9F0D, 0xC00000, 0xCFFFFF, "Sarcos Corp", "SARCOS" }, { 0xEC9F0D, 0xD00000, 0xDFFFFF, "SKS Control Oy", "SKS-CONTROL-OY" }, { 0xEC9F0D, 0xE00000, 0xEFFFFF, "MAX Technologies", "MAX-TECHNOLOGIES" }, { 0xF0221D, 0x000000, 0x0FFFFF, "THANHBINH COMPANY - E111 FACTORY", "THANHBINH-COMPANY-E111-FACTORY" }, { 0xF0221D, 0x100000, 0x1FFFFF, "Dr. Eberl MBE Komponenten GmbH", "DR-EBERL-MBE-KOMPONENTEN" }, { 0xF0221D, 0x200000, 0x2FFFFF, "Chonel Industry?shanghai?Co., Ltd.", "CHONEL-INDUSTRY?SHANGHAI?" }, { 0xF0221D, 0x300000, 0x3FFFFF, "ShenZhen Shizao Electronic Technology", "SHENZHEN-SHIZAO" }, { 0xF0221D, 0x400000, 0x4FFFFF, "Synergies Intelligent Systems Inc.", "SYNERGIES-INTELLIGENT" }, { 0xF0221D, 0x500000, 0x5FFFFF, "Shenzhen SuyuVisonTechnology Co.,Ltd", "SHENZHEN-SUYUVISONTECHNOLOGY" }, { 0xF0221D, 0x600000, 0x6FFFFF, "Vcognition Technologies Inc.", "VCOGNITION-TECHNOLOGIES" }, { 0xF0221D, 0x700000, 0x7FFFFF, "Bulat Co., Limited", "BULAT" }, { 0xF0221D, 0x800000, 0x8FFFFF, "Shenzhen Glazero Technology Co., Ltd.", "SHENZHEN-GLAZERO" }, { 0xF0221D, 0x900000, 0x9FFFFF, "Shanghai Gfanxvision Intelligent Technology Co.Ltd", "SHANGHAI-GFANXVISION-INTELLIGENT" }, { 0xF0221D, 0xA00000, 0xAFFFFF, "Hangzhou Gold Electronic Equipment Co., Ltd", "HANGZHOU-GOLD-EQUIPMENT" }, { 0xF0221D, 0xB00000, 0xBFFFFF, "LK Systems AB", "LK-AB" }, { 0xF0221D, 0xC00000, 0xCFFFFF, "Estone Technology LTD", "ESTONE" }, { 0xF0221D, 0xD00000, 0xDFFFFF, "Schleissheimer Soft- und Hardwareentwicklung GmbH", "SCHLEISSHEIMER-SOFT-UND-HARDWAREENTWICKLUNG" }, { 0xF0221D, 0xE00000, 0xEFFFFF, "oToBrite Electronics, Inc.", "OTOBRITE-ELECTRONICS" }, { 0xF023B9, 0x000000, 0x0FFFFF, "Aquametro AG", "AQUAMETRO" }, { 0xF023B9, 0x100000, 0x1FFFFF, "Ubiant", "UBIANT" }, { 0xF023B9, 0x200000, 0x2FFFFF, "Raysgem Electronics and Technology Co.Ltd", "RAYSGEM-ELECTRONICS" }, { 0xF023B9, 0x300000, 0x3FFFFF, "BSP RUS Ltd.", "BSP-RUS" }, { 0xF023B9, 0x400000, 0x4FFFFF, "EZVIS LIMITED", "EZVIS" }, { 0xF023B9, 0x500000, 0x5FFFFF, "Audeara Pty. Ltd.", "AUDEARA-PTY" }, { 0xF023B9, 0x600000, 0x6FFFFF, "Xiamen Jinhaode Electronic Co.,Ltd", "XIAMEN-JINHAODE" }, { 0xF023B9, 0x700000, 0x7FFFFF, "Transcend Building Automation control network corporation", "TRANSCEND-BUILDING-AUTOMATION-CONTROL-NETWORK" }, { 0xF023B9, 0x800000, 0x8FFFFF, "G3 TECHNOLOGIES< INC", "G3-TECHNOLOGIES<" }, { 0xF023B9, 0x900000, 0x9FFFFF, "Emu Technology", "EMU" }, { 0xF023B9, 0xA00000, 0xAFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xF023B9, 0xB00000, 0xBFFFFF, "Q Core Medical Ltd", "Q-CORE-MEDICAL" }, { 0xF023B9, 0xC00000, 0xCFFFFF, "Shenzhen Lachesis Mhealth Co., Ltd.", "SHENZHEN-LACHESIS-MHEALTH" }, { 0xF023B9, 0xD00000, 0xDFFFFF, "Shenyang Ali Technology Company Limited", "SHENYANG-ALI-COMPANY" }, { 0xF023B9, 0xE00000, 0xEFFFFF, "Domotz Ltd", "DOMOTZ" }, { 0xF02A2B, 0x000000, 0x0FFFFF, "Merlin Security Inc.", "MERLIN-SECURITY" }, { 0xF02A2B, 0x100000, 0x1FFFFF, "Tobi Tribe Inc.", "TOBI-TRIBE" }, { 0xF02A2B, 0x200000, 0x2FFFFF, "Shanghai Armour Technology Co., Ltd.", "SHANGHAI-ARMOUR" }, { 0xF02A2B, 0x300000, 0x3FFFFF, "Frigotel SRL", "FRIGOTEL-SRL" }, { 0xF02A2B, 0x400000, 0x4FFFFF, "Onclave Networks", "ONCLAVE-NETWORKS" }, { 0xF02A2B, 0x500000, 0x5FFFFF, "Agile Sports Technologies, dba Hudl", "AGILE-SPORTS-TECHNOLOGIES-DBA-HUDL" }, { 0xF02A2B, 0x600000, 0x6FFFFF, "Shenzhen ORVIBO Technology Co., Ltd.", "SHENZHEN-ORVIBO" }, { 0xF02A2B, 0x700000, 0x7FFFFF, "Protronix s.r.o.", "PROTRONIX-S-R-O" }, { 0xF02A2B, 0x800000, 0x8FFFFF, "Tenways Engineering Service Ltd", "TENWAYS-ENGINEERING-SERVICE" }, { 0xF02A2B, 0x900000, 0x9FFFFF, "ZiGong Pengcheng Technology Co.,Ltd", "ZIGONG-PENGCHENG" }, { 0xF02A2B, 0xA00000, 0xAFFFFF, "Navigil Ltd", "NAVIGIL" }, { 0xF02A2B, 0xB00000, 0xBFFFFF, "EL.MO. spa", "EL-MO-SPA" }, { 0xF02A2B, 0xC00000, 0xCFFFFF, "Comexio GmbH", "COMEXIO" }, { 0xF02A2B, 0xD00000, 0xDFFFFF, "Definitely Win Corp.,Ltd.", "DEFINITELY-WIN" }, { 0xF02A2B, 0xE00000, 0xEFFFFF, "Shenzhen CUCO Technology Co., Ltd", "SHENZHEN-CUCO" }, { 0xF041C8, 0x000000, 0x0FFFFF, "LINPA ACOUSTIC TECHNOLOGY CO.,LTD", "LINPA-ACOUSTIC" }, { 0xF041C8, 0x100000, 0x1FFFFF, "DongGuan Siyoto Electronics Co., Ltd", "DONGGUAN-SIYOTO-ELECTRONICS" }, { 0xF041C8, 0x200000, 0x2FFFFF, "Shenzhen Medica Technology Development Co., Ltd.", "SHENZHEN-MEDICA-DEVELOPMENT" }, { 0xF041C8, 0x300000, 0x3FFFFF, "SHENZHEN WISEWING INTERNET TECHNOLOGY CO.,LTD", "SHENZHEN-WISEWING-INTERNET" }, { 0xF041C8, 0x400000, 0x4FFFFF, "Candelic Limited", "CANDELIC" }, { 0xF041C8, 0x500000, 0x5FFFFF, "XI'AN MEI SHANG MEI WIRELESS TECHNOLOGY.Co., Ltd.", "XI-AN-MEI-SHANG-MEI-WIRELESS" }, { 0xF041C8, 0x600000, 0x6FFFFF, "AED Engineering GmbH", "AED-ENGINEERING" }, { 0xF041C8, 0x700000, 0x7FFFFF, "Nanchang BlackShark Co.,Ltd.", "NANCHANG-BLACKSHARK" }, { 0xF041C8, 0x800000, 0x8FFFFF, "POSTIUM KOREA CO., LTD.", "POSTIUM-KOREA" }, { 0xF041C8, 0x900000, 0x9FFFFF, "Shenzhen Nufilo Electronic Technology Co., Ltd.", "SHENZHEN-NUFILO" }, { 0xF041C8, 0xA00000, 0xAFFFFF, "Telstra", "TELSTRA" }, { 0xF041C8, 0xB00000, 0xBFFFFF, "Powervault Ltd", "POWERVAULT" }, { 0xF041C8, 0xC00000, 0xCFFFFF, "Shanghai Think-Force Electronic Technology Co. Ltd", "SHANGHAI-THINK-FORCE" }, { 0xF041C8, 0xD00000, 0xDFFFFF, "ATN Media Group FZ LLC", "ATN-MEDIA-GROUP-FZ" }, { 0xF041C8, 0xE00000, 0xEFFFFF, "Shenzhen Umind Technology Co., Ltd.", "SHENZHEN-UMIND" }, { 0xF0ACD7, 0x000000, 0x0FFFFF, "Guilin glsun Science and Tech Co.,LTD", "GUILIN-GLSUN-SCIENCE-AND-TECH" }, { 0xF0ACD7, 0x100000, 0x1FFFFF, "Intenta GmbH", "INTENTA" }, { 0xF0ACD7, 0x200000, 0x2FFFFF, "QUANTUM POWER SYSTEMS", "QUANTUM-POWER" }, { 0xF0ACD7, 0x300000, 0x3FFFFF, "Med-Pat/Inn-Phone", "MED-PAT/INN-PHONE" }, { 0xF0ACD7, 0x400000, 0x4FFFFF, "Sercomm Corporation.", "SERCOMM" }, { 0xF0ACD7, 0x500000, 0x5FFFFF, "PAVO TASARIM URETIM TICARET A.S.", "PAVO-TASARIM-URETIM-TICARET" }, { 0xF0ACD7, 0x600000, 0x6FFFFF, "Suzhou Pairlink Network Technology", "SUZHOU-PAIRLINK-NETWORK" }, { 0xF0ACD7, 0x700000, 0x7FFFFF, "Hanju Network Technologies Co.", "HANJU-NETWORK-TECHNOLOGIES" }, { 0xF0ACD7, 0x800000, 0x8FFFFF, "Telefonix Incorporated", "TELEFONIX-INCORPORATED" }, { 0xF0ACD7, 0x900000, 0x9FFFFF, "U3storage Technologies Co., Ltd", "U3STORAGE-TECHNOLOGIES" }, { 0xF0ACD7, 0xA00000, 0xAFFFFF, "Groupeer Technologies", "GROUPEER-TECHNOLOGIES" }, { 0xF0ACD7, 0xB00000, 0xBFFFFF, "Zhejiang Makepower Electronics,Inc.", "ZHEJIANG-MAKEPOWER-ELECTRONICS" }, { 0xF0ACD7, 0xC00000, 0xCFFFFF, "Simprints Technology Ltd", "SIMPRINTS" }, { 0xF0ACD7, 0xD00000, 0xDFFFFF, "Smart Power Technology Co., Ltd.", "SMART-POWER" }, { 0xF0ACD7, 0xE00000, 0xEFFFFF, "Fiziico Co., Ltd.", "FIZIICO" }, { 0xF0D7AF, 0x000000, 0x0FFFFF, "ID Tech Japan Co.,Ltd.", "ID-TECH-JAPAN" }, { 0xF0D7AF, 0x100000, 0x1FFFFF, "Beijing Serviatech lnformation Tech Co.,Ltd", "BEIJING-SERVIATECH-LNFORMATION-TECH" }, { 0xF0D7AF, 0x200000, 0x2FFFFF, "Blacknight Internet Solutions Limited", "BLACKNIGHT-INTERNET-SOLUTIONS" }, { 0xF0D7AF, 0x300000, 0x3FFFFF, "720?bei jing?Health iTech Co.,Ltd", "720?BEI-JING?HEALTH-ITECH" }, { 0xF0D7AF, 0x400000, 0x4FFFFF, "ADAM Audio GmbH", "ADAM-AUDIO" }, { 0xF0D7AF, 0x500000, 0x5FFFFF, "Dongguan Huili electroacoustic Industrial Co.,ltd", "DONGGUAN-HUILI-ELECTROACOUSTIC-INDUSTRIAL" }, { 0xF0D7AF, 0x600000, 0x6FFFFF, "Anord Mardix (USA) Inc.", "ANORD-MARDIX-USA" }, { 0xF0D7AF, 0x700000, 0x7FFFFF, "Rievtech Electronic Co.,Ltd", "RIEVTECH" }, { 0xF0D7AF, 0x800000, 0x8FFFFF, "SHEN ZHEN MICHIP TECHNOLOGIES CO.,LTD.", "SHEN-ZHEN-MICHIP-TECHNOLOGIES" }, { 0xF0D7AF, 0x900000, 0x9FFFFF, "New IT Project LLC", "NEW-IT-PROJECT" }, { 0xF0D7AF, 0xA00000, 0xAFFFFF, "MSTAR TECHNOLOGIES,INC", "MSTAR-TECHNOLOGIES" }, { 0xF0D7AF, 0xB00000, 0xBFFFFF, "EVCO SPA", "EVCO-SPA" }, { 0xF0D7AF, 0xC00000, 0xCFFFFF, "Shenzhen Virtual Clusters Information Technology Co.,Ltd.", "SHENZHEN-VIRTUAL-CLUSTERS-INFORMATION" }, { 0xF0D7AF, 0xD00000, 0xDFFFFF, "Dongguan Gedi Electrons Techeology Co.,LTD", "DONGGUAN-GEDI-ELECTRONS-TECHEOLOGY" }, { 0xF0D7AF, 0xE00000, 0xEFFFFF, "Wren Associates, LTD", "WREN-ASSOCIATES" }, { 0xF40E11, 0x000000, 0x0FFFFF, "realphone technology co.,ltd", "REALPHONE" }, { 0xF40E11, 0x100000, 0x1FFFFF, "BEIJING DONGJIN AERO-TECH CO., LTD", "BEIJING-DONGJIN-AERO-TECH" }, { 0xF40E11, 0x200000, 0x2FFFFF, "Axel srl", "AXEL-SRL" }, { 0xF40E11, 0x300000, 0x3FFFFF, "Shenzhen headsun technology", "SHENZHEN-HEADSUN" }, { 0xF40E11, 0x400000, 0x4FFFFF, "Dayang Technology Development Inc.", "DAYANG-DEVELOPMENT" }, { 0xF40E11, 0x500000, 0x5FFFFF, "E-SONG", "E-SONG" }, { 0xF40E11, 0x600000, 0x6FFFFF, "Alpha Design Technologies Pvt Ltd", "ALPHA-DESIGN-TECHNOLOGIES-PVT" }, { 0xF40E11, 0x700000, 0x7FFFFF, "Shenzhen Grandsun Electronic Co.,Ltd.", "SHENZHEN-GRANDSUN" }, { 0xF40E11, 0x800000, 0x8FFFFF, "Zeepro Inc.", "ZEEPRO" }, { 0xF40E11, 0x900000, 0x9FFFFF, "Sterna Security", "STERNA-SECURITY" }, { 0xF40E11, 0xA00000, 0xAFFFFF, "Kodpro Ltd.", "KODPRO" }, { 0xF40E11, 0xB00000, 0xBFFFFF, "BRADAR INDUSTRIA SA", "BRADAR-INDUSTRIA" }, { 0xF40E11, 0xC00000, 0xCFFFFF, "NIHON MEGA LOGIC CO.,LTD.", "NIHON-MEGA-LOGIC" }, { 0xF40E11, 0xD00000, 0xDFFFFF, "DXG Technology Corp.", "DXG" }, { 0xF40E11, 0xE00000, 0xEFFFFF, "Elektronika Naglic d.o.o.", "ELEKTRONIKA-NAGLIC-D-O-O" }, { 0xF40E11, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xF469D5, 0x000000, 0x0FFFFF, "Mossman Limited", "MOSSMAN" }, { 0xF469D5, 0x100000, 0x1FFFFF, "Junchuang (Xiamen) Automation Technology Co.,Ltd", "JUNCHUANG-XIAMEN-AUTOMATION" }, { 0xF469D5, 0x200000, 0x2FFFFF, "Pulsar Engineering srl", "PULSAR-ENGINEERING-SRL" }, { 0xF469D5, 0x300000, 0x3FFFFF, "ITS Co., Ltd.", "ITS" }, { 0xF469D5, 0x400000, 0x4FFFFF, "Stype CS d.o.o.", "STYPE-CS-D-O-O" }, { 0xF469D5, 0x500000, 0x5FFFFF, "Hefei STAROT Technology Co.,Ltd", "HEFEI-STAROT" }, { 0xF469D5, 0x600000, 0x6FFFFF, "TianJin KCHT Information Technology Co., Ltd.", "TIANJIN-KCHT-INFORMATION" }, { 0xF469D5, 0x700000, 0x7FFFFF, "Rosco, Inc", "ROSCO" }, { 0xF469D5, 0x800000, 0x8FFFFF, "WiFi Nation Ltd", "WIFI-NATION" }, { 0xF469D5, 0x900000, 0x9FFFFF, "Terminus (Shanghai) Technology Co.,Ltd.", "TERMINUS-SHANGHAI" }, { 0xF469D5, 0xA00000, 0xAFFFFF, "ShenZhenShi EVADA technology Co.,Ltd", "SHENZHENSHI-EVADA" }, { 0xF469D5, 0xB00000, 0xBFFFFF, "Konntek Inc", "KONNTEK" }, { 0xF469D5, 0xC00000, 0xCFFFFF, "Huaqin Telecom Technology Co.,Ltd.", "HUAQIN-TELECOM" }, { 0xF469D5, 0xD00000, 0xDFFFFF, "Nantong ZYDZ Electronic.,Co.Ltd", "NANTONG-ZYDZ" }, { 0xF469D5, 0xE00000, 0xEFFFFF, "ORtek Technology, Inc.", "ORTEK" }, { 0xF4700C, 0x000000, 0x0FFFFF, "HYUNSUNG CONVERGENCE", "HYUNSUNG-CONVERGENCE" }, { 0xF4700C, 0x100000, 0x1FFFFF, "Shenzhen Excelland Technology Co., Ltd.", "SHENZHEN-EXCELLAND" }, { 0xF4700C, 0x200000, 0x2FFFFF, "Beijing ASU Tech Co., Ltd.", "BEIJING-ASU-TECH" }, { 0xF4700C, 0x300000, 0x3FFFFF, "Union Source Technology(HK)LTD", "UNION-SOURCE-HK" }, { 0xF4700C, 0x400000, 0x4FFFFF, "Shenzhen Anycon Electronics Technology Co.,Ltd", "SHENZHEN-ANYCON-ELECTRONICS" }, { 0xF4700C, 0x500000, 0x5FFFFF, "Shenzhen Lidaxun Digital Technology Co., LTD", "SHENZHEN-LIDAXUN-DIGITAL" }, { 0xF4700C, 0x600000, 0x6FFFFF, "Jinan USR IOT Technology Limited", "JINAN-USR-IOT" }, { 0xF4700C, 0x700000, 0x7FFFFF, "Changde xsound lnnovation technologies co;ltd.", "CHANGDE-XSOUND-LNNOVATION-TECHNOLOGIES" }, { 0xF4700C, 0x800000, 0x8FFFFF, "Shenzhen Focuscom Communication Technology Co.,Ltd.", "SHENZHEN-FOCUSCOM-COMMUNICATION" }, { 0xF4700C, 0x900000, 0x9FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xF4700C, 0xA00000, 0xAFFFFF, "Jinan Huake Electrical Device Co., Ltd.", "JINAN-HUAKE-ELECTRICAL-DEVICE" }, { 0xF4700C, 0xB00000, 0xBFFFFF, "Shanghai Risingpo Electronics CO.,LTD", "SHANGHAI-RISINGPO-ELECTRONICS" }, { 0xF4700C, 0xC00000, 0xCFFFFF, "G.S.D GROUP INC.", "G-S-D-GROUP" }, { 0xF4700C, 0xD00000, 0xDFFFFF, "Freeus LLC", "FREEUS" }, { 0xF4700C, 0xE00000, 0xEFFFFF, "Shenzhen WeProTalk Technology Co., Ltd.", "SHENZHEN-WEPROTALK" }, { 0xF490CB, 0x000000, 0x0FFFFF, "Epitel, Inc.", "EPITEL" }, { 0xF490CB, 0x100000, 0x1FFFFF, "DELEM BV", "DELEM" }, { 0xF490CB, 0x200000, 0x2FFFFF, "ICE Gateway GmbH", "ICE-GATEWAY" }, { 0xF490CB, 0x300000, 0x3FFFFF, "Ricker Lyman Robotic", "RICKER-LYMAN-ROBOTIC" }, { 0xF490CB, 0x400000, 0x4FFFFF, "OmniNet", "OMNINET" }, { 0xF490CB, 0x500000, 0x5FFFFF, "Avilution", "AVILUTION" }, { 0xF490CB, 0x600000, 0x6FFFFF, "Airbeam Wireless Technologies Inc.", "AIRBEAM-WIRELESS-TECHNOLOGIES" }, { 0xF490CB, 0x700000, 0x7FFFFF, "TEQ SA", "TEQ" }, { 0xF490CB, 0x800000, 0x8FFFFF, "Beijing Penslink Co., Ltd.", "BEIJING-PENSLINK" }, { 0xF490CB, 0x900000, 0x9FFFFF, "Fractyl Labs", "FRACTYL-LABS" }, { 0xF490CB, 0xA00000, 0xAFFFFF, "Fend Incorporated", "FEND-INCORPORATED" }, { 0xF490CB, 0xB00000, 0xBFFFFF, "A-dec Inc.", "A-DEC" }, { 0xF490CB, 0xC00000, 0xCFFFFF, "Cheetah Medical", "CHEETAH-MEDICAL" }, { 0xF490CB, 0xD00000, 0xDFFFFF, "Simavita (Aust) Pty Ltd", "SIMAVITA-AUST-PTY" }, { 0xF490CB, 0xE00000, 0xEFFFFF, "RSAE Labs Inc", "RSAE-LABS" }, { 0xF4A454, 0x000000, 0x0FFFFF, "NKT Photonics A/S", "NKT-PHOTONICS-A/S" }, { 0xF4A454, 0x100000, 0x1FFFFF, "PT Telkom Indonesia", "PT-TELKOM-INDONESIA" }, { 0xF4A454, 0x200000, 0x2FFFFF, "TRI WORKS", "TRI-WORKS" }, { 0xF4A454, 0x300000, 0x3FFFFF, "Chongqing Hengxun Liansheng Industrial Co.,Ltd", "CHONGQING-HENGXUN-LIANSHENG-INDUSTRIAL" }, { 0xF4A454, 0x400000, 0x4FFFFF, "Earshots", "EARSHOTS" }, { 0xF4A454, 0x500000, 0x5FFFFF, "Denshijiki Industry Co.,Ltd", "DENSHIJIKI-INDUSTRY" }, { 0xF4A454, 0x600000, 0x6FFFFF, "Introl Design", "INTROL-DESIGN" }, { 0xF4A454, 0x700000, 0x7FFFFF, "Advanced Mechanical Technology, Inc. d/b/a AMTI", "ADVANCED-MECHANICAL-D/B/A-AMTI" }, { 0xF4A454, 0x800000, 0x8FFFFF, "Shenzhen Cudy Technology Co., Ltd.", "SHENZHEN-CUDY" }, { 0xF4A454, 0x900000, 0x9FFFFF, "Lonton infomation tech Ltd., Co", "LONTON-INFOMATION-TECH" }, { 0xF4A454, 0xA00000, 0xAFFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xF4A454, 0xB00000, 0xBFFFFF, "Graco Inc.", "GRACO" }, { 0xF4A454, 0xC00000, 0xCFFFFF, "Integrated Dynamics Engineering GmbH", "INTEGRATED-DYNAMICS-ENGINEERING" }, { 0xF4A454, 0xD00000, 0xDFFFFF, "SAEL SRL", "SAEL-SRL" }, { 0xF4A454, 0xE00000, 0xEFFFFF, "Care Bloom, LLC", "CARE-BLOOM" }, { 0xF80278, 0x000000, 0x0FFFFF, "Digatron Power Electronics GmbH", "DIGATRON-POWER-ELECTRONICS" }, { 0xF80278, 0x100000, 0x1FFFFF, "Reason Tecnologia SA", "REASON-TECNOLOGIA" }, { 0xF80278, 0x200000, 0x2FFFFF, "Innodisk", "INNODISK" }, { 0xF80278, 0x300000, 0x3FFFFF, "3Shape Holding A/S", "3SHAPE-HOLDING-A/S" }, { 0xF80278, 0x400000, 0x4FFFFF, "CLARUS Korea Co., Ltd", "CLARUS-KOREA" }, { 0xF80278, 0x500000, 0x5FFFFF, "Electric Objects", "ELECTRIC-OBJECTS" }, { 0xF80278, 0x600000, 0x6FFFFF, "Witium Co., Ltd", "WITIUM" }, { 0xF80278, 0x700000, 0x7FFFFF, "BETTINI SRL", "BETTINI-SRL" }, { 0xF80278, 0x800000, 0x8FFFFF, "EMBUX Technology Co., Ltd.", "EMBUX" }, { 0xF80278, 0x900000, 0x9FFFFF, "Beijing Redcdn Technology, Co., Ltd", "BEIJING-REDCDN" }, { 0xF80278, 0xA00000, 0xAFFFFF, "Luxul Technology Inc", "LUXUL" }, { 0xF80278, 0xB00000, 0xBFFFFF, "Rosemount Analytical", "ROSEMOUNT-ANALYTICAL" }, { 0xF80278, 0xC00000, 0xCFFFFF, "Technology Research, LLC", "RESEARCH" }, { 0xF80278, 0xD00000, 0xDFFFFF, "Dueton Systems s.r.o.", "DUETON-S-R-O" }, { 0xF80278, 0xE00000, 0xEFFFFF, "Lit Technologies", "LIT-TECHNOLOGIES" }, { 0xF80278, 0xF00000, 0xFFFFFF, "Private", "PRIVATE" }, { 0xF81D78, 0x000000, 0x0FFFFF, "Dongguan Shun Hing Plastics Limited", "DONGGUAN-SHUN-HING-PLASTICS" }, { 0xF81D78, 0x100000, 0x1FFFFF, "ADTECHNO Inc.", "ADTECHNO" }, { 0xF81D78, 0x200000, 0x2FFFFF, "Xperio Labs Limited", "XPERIO-LABS" }, { 0xF81D78, 0x300000, 0x3FFFFF, "SHANGHAI SUN TELECOMMUNICATION CO., LTD.", "SHANGHAI-SUN-TELECOMMUNICATION" }, { 0xF81D78, 0x400000, 0x4FFFFF, "Digital Imaging Technology", "DIGITAL-IMAGING" }, { 0xF81D78, 0x500000, 0x5FFFFF, "DACONS", "DACONS" }, { 0xF81D78, 0x600000, 0x6FFFFF, "Zengge Co., Limited", "ZENGGE" }, { 0xF81D78, 0x700000, 0x7FFFFF, "WUHAN GUIDE INFRARED CO.,LTD", "WUHAN-GUIDE-INFRARED" }, { 0xF81D78, 0x800000, 0x8FFFFF, "TELEOFIS", "TELEOFIS" }, { 0xF81D78, 0x900000, 0x9FFFFF, "Ophrys Systèmes", "OPHRYS-SYSTMES" }, { 0xF81D78, 0xA00000, 0xAFFFFF, "AVPro Global Holdings LLC", "AVPRO-GLOBAL-HOLDINGS" }, { 0xF81D78, 0xB00000, 0xBFFFFF, "SigmaConnectivityAB", "SIGMACONNECTIVITYAB" }, { 0xF81D78, 0xC00000, 0xCFFFFF, "SHENZHUOYUE TECHNOLOGY.,LTD", "SHENZHUOYUE" }, { 0xF81D78, 0xD00000, 0xDFFFFF, "Tofino", "TOFINO" }, { 0xF81D78, 0xE00000, 0xEFFFFF, "GUANGDONG ENOK COMMUNICATION CO., LTD.", "GUANGDONG-ENOK-COMMUNICATION" }, { 0xF88A3C, 0x000000, 0x0FFFFF, "ART SPA", "ART-SPA" }, { 0xF88A3C, 0x100000, 0x1FFFFF, "Carefree of Colorado", "CAREFREE-OF-COLORADO" }, { 0xF88A3C, 0x200000, 0x2FFFFF, "KLATU Networks Inc", "KLATU-NETWORKS" }, { 0xF88A3C, 0x300000, 0x3FFFFF, "Shenzhen Shengyuan Tech Ltd.", "SHENZHEN-SHENGYUAN-TECH" }, { 0xF88A3C, 0x400000, 0x4FFFFF, "GO-LINK TECHNOLOGY CO., LTD.", "GO-LINK" }, { 0xF88A3C, 0x500000, 0x5FFFFF, "KOKKIA INC", "KOKKIA" }, { 0xF88A3C, 0x600000, 0x6FFFFF, "Beijing Zhong Chuang Communication Technology Ltd.", "BEIJING-ZHONG-CHUANG-COMMUNICATION" }, { 0xF88A3C, 0x700000, 0x7FFFFF, "Josh.ai", "JOSH-AI" }, { 0xF88A3C, 0x800000, 0x8FFFFF, "Cadmus Electronic Co.,Ltd.", "CADMUS" }, { 0xF88A3C, 0x900000, 0x9FFFFF, "withus", "WITHUS" }, { 0xF88A3C, 0xA00000, 0xAFFFFF, "Protos GmbH", "PROTOS" }, { 0xF88A3C, 0xB00000, 0xBFFFFF, "FARA AS", "FARA-AS" }, { 0xF88A3C, 0xC00000, 0xCFFFFF, "EXCETOP TECHNOLOGY (BEIJING) CO., LTD.", "EXCETOP-BEIJING" }, { 0xF88A3C, 0xD00000, 0xDFFFFF, "THK Co.,LTD.", "THK" }, { 0xF88A3C, 0xE00000, 0xEFFFFF, "Avateq Corp.", "AVATEQ" }, { 0xF8B568, 0x000000, 0x0FFFFF, "LifePrint Products, Inc.", "LIFEPRINT-PRODUCTS" }, { 0xF8B568, 0x100000, 0x1FFFFF, "PT. Eyro Digital Teknologi", "PT-EYRO-DIGITAL-TEKNOLOGI" }, { 0xF8B568, 0x200000, 0x2FFFFF, "Shenzhen New-Bund Technology Co., Ltd.", "SHENZHEN-NEW-BUND" }, { 0xF8B568, 0x300000, 0x3FFFFF, "Dongwoo Engineering Co.,Ltd", "DONGWOO-ENGINEERING" }, { 0xF8B568, 0x400000, 0x4FFFFF, "Combiwins Technology Co.,Limited", "COMBIWINS" }, { 0xF8B568, 0x500000, 0x5FFFFF, "etectRx", "ETECTRX" }, { 0xF8B568, 0x600000, 0x6FFFFF, "Package Guard, Inc", "PACKAGE-GUARD" }, { 0xF8B568, 0x700000, 0x7FFFFF, "CloudMinds (Shenzhen) Holdings Co., Ltd", "CLOUDMINDS-SHENZHEN-HOLDINGS" }, { 0xF8B568, 0x800000, 0x8FFFFF, "Maven Wireless AB", "MAVEN-WIRELESS-AB" }, { 0xF8B568, 0x900000, 0x9FFFFF, "Beijing Wanji Techonology Co., Ltd.", "BEIJING-WANJI-TECHONOLOGY" }, { 0xF8B568, 0xA00000, 0xAFFFFF, "SinePulse GmbH", "SINEPULSE" }, { 0xF8B568, 0xB00000, 0xBFFFFF, "Whizpace Pte. Ltd.", "WHIZPACE-PTE" }, { 0xF8B568, 0xC00000, 0xCFFFFF, "3SI Security Systems, Inc", "3SI-SECURITY" }, { 0xF8B568, 0xD00000, 0xDFFFFF, "Solarius", "SOLARIUS" }, { 0xF8B568, 0xE00000, 0xEFFFFF, "ZAO "RADIUS Avtomatika"", "ZAO-QUOT-RADIUS-AVTOMATIKA-QUOT" }, { 0xFC6179, 0x000000, 0x0FFFFF, "Zhuhai Anjubao Electronics Technology Co., Ltd.", "ZHUHAI-ANJUBAO-ELECTRONICS" }, { 0xFC6179, 0x100000, 0x1FFFFF, "Signalinks Communication Technology Co., Ltd", "SIGNALINKS-COMMUNICATION" }, { 0xFC6179, 0x200000, 0x2FFFFF, "Shenzhen Shenshui Electronic Commerce Co.,Ltd", "SHENZHEN-SHENSHUI-COMMERCE" }, { 0xFC6179, 0x300000, 0x3FFFFF, "EchoStar Mobile", "ECHOSTAR-MOBILE" }, { 0xFC6179, 0x400000, 0x4FFFFF, "CHOEUNENG", "CHOEUNENG" }, { 0xFC6179, 0x500000, 0x5FFFFF, "Qisda Corporation", "QISDA" }, { 0xFC6179, 0x600000, 0x6FFFFF, "Hangzhou LiDe Communication Co.,Ltd", "HANGZHOU-LIDE-COMMUNICATION" }, { 0xFC6179, 0x700000, 0x7FFFFF, "Kvaliteta Systems and Solutions Private Limited", "KVALITETA-AND-SOLUTIONS-PRIVATE" }, { 0xFC6179, 0x800000, 0x8FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xFC6179, 0x900000, 0x9FFFFF, "MACH SYSTEMS s.r.o.", "MACH-S-R-O" }, { 0xFC6179, 0xA00000, 0xAFFFFF, "Shenzhen Dptek Technology Co., Ltd.", "SHENZHEN-DPTEK" }, { 0xFC6179, 0xB00000, 0xBFFFFF, "Fulian Precision Electronics(Tianjin) Co., Ltd", "FULIAN-PRECISION-ELECTRONICS-TIANJIN" }, { 0xFC6179, 0xC00000, 0xCFFFFF, "Shenzhen Xmitech Electronic Co.,Ltd", "SHENZHEN-XMITECH" }, { 0xFC6179, 0xD00000, 0xDFFFFF, "Int'Act Pty Ltd", "INT-ACT-PTY" }, { 0xFC6179, 0xE00000, 0xEFFFFF, "ACCO Brands USA LLC", "ACCO-BRANDS-USA" }, { 0xFCA47A, 0x000000, 0x0FFFFF, "Broadcom Inc.", "BROADCOM" }, { 0xFCA47A, 0x100000, 0x1FFFFF, "Shenzhen VMAX New Energy Co., Ltd.", "SHENZHEN-VMAX-NEW-ENERGY" }, { 0xFCA47A, 0x200000, 0x2FFFFF, "Ant Financial(Hang Zhou)Network Technology Co.,Ltd.", "ANT-FINANCIALHANG-ZHOUNETWORK" }, { 0xFCA47A, 0x300000, 0x3FFFFF, "Cliptech Industria e Comercio Ltda", "CLIPTECH-INDUSTRIA-E-COMERCIO-LTDA" }, { 0xFCA47A, 0x400000, 0x4FFFFF, "HOOC AG", "HOOC" }, { 0xFCA47A, 0x500000, 0x5FFFFF, "Syfer", "SYFER" }, { 0xFCA47A, 0x600000, 0x6FFFFF, "Token", "TOKEN" }, { 0xFCA47A, 0x700000, 0x7FFFFF, "Innovative Advantage", "INNOVATIVE-ADVANTAGE" }, { 0xFCA47A, 0x800000, 0x8FFFFF, "KARRY COMMUNICATION LIMITED", "KARRY-COMMUNICATION" }, { 0xFCA47A, 0x900000, 0x9FFFFF, "Oberix Group Pty Ltd", "OBERIX-GROUP-PTY" }, { 0xFCA47A, 0xA00000, 0xAFFFFF, "Shenzhen Elebao Technology Co., Ltd", "SHENZHEN-ELEBAO" }, { 0xFCA47A, 0xB00000, 0xBFFFFF, "Shenzhen Nokelock Technology Co, Ltd.", "SHENZHEN-NOKELOCK" }, { 0xFCA47A, 0xC00000, 0xCFFFFF, "Shenzhen ALFEYE Technology CO.,Ltd", "SHENZHEN-ALFEYE" }, { 0xFCA47A, 0xD00000, 0xDFFFFF, "SHENZHEN KUKU TECHNOLOGY CO.,LTD", "SHENZHEN-KUKU" }, { 0xFCA47A, 0xE00000, 0xEFFFFF, "Hefei Feier Smart Science&Technology Co. Ltd", "HEFEI-FEIER-SMART-SCIENCE" }, { 0xFCCD2F, 0x000000, 0x0FFFFF, "Ningbo Bull Digital Technology Co., LTD", "NINGBO-BULL-DIGITAL" }, { 0xFCCD2F, 0x100000, 0x1FFFFF, "Siren Care(Shanghai) information and technology company", "SIREN-CARE-SHANGHAI-INFORMATION-AND-COMPANY" }, { 0xFCCD2F, 0x200000, 0x2FFFFF, "Loupedeck Oy", "LOUPEDECK-OY" }, { 0xFCCD2F, 0x300000, 0x3FFFFF, "Xmitech Technology Co., Limited", "XMITECH" }, { 0xFCCD2F, 0x400000, 0x4FFFFF, "Genitek Engineering sprl", "GENITEK-ENGINEERING-SPRL" }, { 0xFCCD2F, 0x500000, 0x5FFFFF, "QCTEK CO.,LTD.", "QCTEK" }, { 0xFCCD2F, 0x600000, 0x6FFFFF, "Annapurna labs", "ANNAPURNA-LABS" }, { 0xFCCD2F, 0x700000, 0x7FFFFF, "Suzhou lehui display co.,ltd", "SUZHOU-LEHUI-DISPLAY" }, { 0xFCCD2F, 0x800000, 0x8FFFFF, "Asesorias y Servicios Innovaxxion SPA", "ASESORIAS-Y-SERVICIOS-INNOVAXXION-SPA" }, { 0xFCCD2F, 0x900000, 0x9FFFFF, "Aroma Retail", "AROMA-RETAIL" }, { 0xFCCD2F, 0xA00000, 0xAFFFFF, "SCOPUS INTERNATIONAL-BELGIUM", "SCOPUS-BELGIUM" }, { 0xFCCD2F, 0xB00000, 0xBFFFFF, "HEAD-DIRECT (KUNSHAN) Co. Ltd", "HEAD-DIRECT-KUNSHAN" }, { 0xFCCD2F, 0xC00000, 0xCFFFFF, "Spedos ADS a.s.", "SPEDOS-ADS" }, { 0xFCCD2F, 0xD00000, 0xDFFFFF, "Shenzhen Smartbyte Technology Co., Ltd.", "SHENZHEN-SMARTBYTE" }, { 0xFCCD2F, 0xE00000, 0xEFFFFF, "Eltek brojila d.o.o.", "ELTEK-BROJILA-D-O-O" }, { 0xFCD2B6, 0x000000, 0x0FFFFF, "CG POWER AND INDUSTRIAL SOLUTIONS LTD", "CG-POWER-AND-INDUSTRIAL-SOLUTIONS" }, { 0xFCD2B6, 0x100000, 0x1FFFFF, "LINK (FAR-EAST) CORPORATION", "LINK-FAR-EAST" }, { 0xFCD2B6, 0x200000, 0x2FFFFF, "Soma GmbH", "SOMA" }, { 0xFCD2B6, 0x300000, 0x3FFFFF, "Coet Costruzioni Elettrotecniche", "COET-COSTRUZIONI-ELETTROTECNICHE" }, { 0xFCD2B6, 0x400000, 0x4FFFFF, "SHEN ZHEN XIN HAO YUAN PRECISION TECHNOLOGY CO.,L TD", "SHEN-ZHEN-XIN-HAO-YUAN-PRECISION-L-TD" }, { 0xFCD2B6, 0x500000, 0x5FFFFF, "Grandway Technology (Shenzhen) Limited", "GRANDWAY-SHENZHEN" }, { 0xFCD2B6, 0x600000, 0x6FFFFF, "Cirque Audio Technology Co.,Ltd", "CIRQUE-AUDIO" }, { 0xFCD2B6, 0x700000, 0x7FFFFF, "Teamly Digital", "TEAMLY-DIGITAL" }, { 0xFCD2B6, 0x800000, 0x8FFFFF, "Oviss Labs Inc.", "OVISS-LABS" }, { 0xFCD2B6, 0x900000, 0x9FFFFF, "Winglet Systems Inc.", "WINGLET" }, { 0xFCD2B6, 0xA00000, 0xAFFFFF, "NREAL TECHNOLOGY LIMITED", "NREAL" }, { 0xFCD2B6, 0xB00000, 0xBFFFFF, "T CHIP DIGITAL TECHNOLOGY CO.LTD", "T-CHIP-DIGITAL" }, { 0xFCD2B6, 0xC00000, 0xCFFFFF, "Silicon (Shenzhen) Electronic Technology Co.,Ltd.", "SILICON-SHENZHEN" }, { 0xFCD2B6, 0xD00000, 0xDFFFFF, "Bee Smart(Changzhou) Information Technology Co., Ltd", "BEE-SMART-CHANGZHOU-INFORMATION" }, { 0xFCD2B6, 0xE00000, 0xEFFFFF, "Univer S.p.A.", "UNIVER" }, }; ipv6calc-4.1.0/databases/ieee-oui36/000077500000000000000000000000001444154247200170335ustar00rootroot00000000000000ipv6calc-4.1.0/databases/ieee-oui36/Makefile000066400000000000000000000015251444154247200204760ustar00rootroot00000000000000# Project : ipv6calc/databases/ieee-oui36 # File : Makefile # Version : $Id: 7e92ef50255dd0136f32c6d25ebe6f29b194c4d8 $ # Copyright : 2013-2021 by Peter Bieringer # # Information: # Makefile for ieee-oui36 FILE = oui36.csv BASEURL = http://standards.ieee.org/develop/regauth/oui36/ FILE_H = dbieee_oui36.h TYPE = oui36 all: test -f $(FILE_H) || ${MAKE} update install: echo "Nothing to do" create: ../tools/create_ieee_headerfile.pl -c -t $(TYPE) -i $(FILE) -o $(FILE_H) -l ../../lib/libieee.c update: echo "Download new version of file" wget $(BASEURL)$(FILE) --timestamp ${MAKE} create updateclean: echo "Remove header file" rm -f $(FILE_H) ${MAKE} distclean distclean: echo "Remove database file" rm -f $(FILE) autoclean: echo "Nothing to do" clean: echo "Nothing to do" ipv6calc-4.1.0/databases/ieee-oui36/README000066400000000000000000000002651444154247200177160ustar00rootroot00000000000000$Id: a90a057c5b857030cce7fb4c633cad2dafd15de1 $ OUI36 (aka MA-S) database: URL: http://standards-oui.ieee.org/oui/oui36.csv File will be retrieved on-the-fly during "make update" ipv6calc-4.1.0/databases/ieee-oui36/dbieee_oui36.h000066400000000000000000014777671444154247200215030ustar00rootroot00000000000000/* * Project : ipv6calc * File : dbieee_oui36.h * Version : $Id: 269d8b5bc8e4d1ff8ffae5b4caa5addd7ac84f1c $ * Generated : Fri Jun 9 07:52:31 2023 * Data copyright: IEEE * * Information: * Additional header file for libipv6calc_db_wrapper_BuiltIn.c */ /*@unused@*/ static const char* libieee_oui36_status __attribute__ ((__unused__)) = "OUI36/20230609"; static const s_ieee_oui36 libieee_oui36[] = { { 0x001BC5, 0x000000, 0x000FFF, "Converging Systems Inc.", "CONVERGING" }, { 0x001BC5, 0x001000, 0x001FFF, "OpenRB.com, Direct SIA", "OPENRB-COM-DIRECT-SIA" }, { 0x001BC5, 0x002000, 0x002FFF, "GORAMO - Janusz Gorecki", "GORAMO-JANUSZ-GORECKI" }, { 0x001BC5, 0x003000, 0x003FFF, "MicroSigns Technologies Inc", "MICROSIGNS-TECHNOLOGIES" }, { 0x001BC5, 0x004000, 0x004FFF, "Intellvisions Software Ltd", "INTELLVISIONS-SOFTWARE" }, { 0x001BC5, 0x005000, 0x005FFF, "Private", "PRIVATE" }, { 0x001BC5, 0x006000, 0x006FFF, "TRIAX-HIRSCHMANN Multi-Media GmbH", "TRIAX-HIRSCHMANN-MULTI-MEDIA" }, { 0x001BC5, 0x007000, 0x007FFF, "Energy Aware Technology", "ENERGY-AWARE" }, { 0x001BC5, 0x008000, 0x008FFF, "Dalaj Electro-Telecom", "DALAJ-ELECTRO-TELECOM" }, { 0x001BC5, 0x009000, 0x009FFF, "Solomon Systech Pte Ltd", "SOLOMON-SYSTECH-PTE" }, { 0x001BC5, 0x00A000, 0x00AFFF, "Mercury HMI Ltd", "MERCURY-HMI" }, { 0x001BC5, 0x00B000, 0x00BFFF, "Private", "PRIVATE" }, { 0x001BC5, 0x00C000, 0x00CFFF, "Quantum Technology Sciences, Inc.", "QUANTUM-SCIENCES" }, { 0x001BC5, 0x00D000, 0x00DFFF, "Advanced Scientific Concepts, Inc.", "ADVANCED-SCIENTIFIC-CONCEPTS" }, { 0x001BC5, 0x00E000, 0x00EFFF, "Vigor Electric Corp", "VIGOR-ELECTRIC" }, { 0x001BC5, 0x00F000, 0x00FFFF, "Simavita Pty Ltd", "SIMAVITA-PTY" }, { 0x001BC5, 0x010000, 0x010FFF, "Softel SA de CV", "SOFTEL-DE-CV" }, { 0x001BC5, 0x011000, 0x011FFF, "OOO NPP Mera", "OOO-NPP-MERA" }, { 0x001BC5, 0x012000, 0x012FFF, "Tokyo Cosmos Electric, Inc.", "TOKYO-COSMOS-ELECTRIC" }, { 0x001BC5, 0x013000, 0x013FFF, "Zamir Recognition Systems Ltd.", "ZAMIR-RECOGNITION" }, { 0x001BC5, 0x014000, 0x014FFF, "Private", "PRIVATE" }, { 0x001BC5, 0x015000, 0x015FFF, "Corporate Systems Engineering", "CORPORATE-ENGINEERING" }, { 0x001BC5, 0x016000, 0x016FFF, "Energotechnica OOO NPP Ltd", "ENERGOTECHNICA-OOO-NPP" }, { 0x001BC5, 0x017000, 0x017FFF, "cPacket Networks", "CPACKET-NETWORKS" }, { 0x001BC5, 0x019000, 0x019FFF, "Dunlop Systems & Components", "DUNLOP-COMPONENTS" }, { 0x001BC5, 0x01A000, 0x01AFFF, "ABA ELECTRONICS TECHNOLOGY CO.,LTD", "ABA-ELECTRONICS" }, { 0x001BC5, 0x01B000, 0x01BFFF, "Commonwealth Scientific and Industrial Research Organisation", "COMMONWEALTH-SCIENTIFIC-AND-INDUSTRIAL-RESEARCH-ORGANISATION" }, { 0x001BC5, 0x01C000, 0x01CFFF, "Coolit Systems, Inc.", "COOLIT" }, { 0x001BC5, 0x01D000, 0x01DFFF, "Rose + Herleth GbR", "ROSE-+-HERLETH-GBR" }, { 0x001BC5, 0x01E000, 0x01EFFF, "Private", "PRIVATE" }, { 0x001BC5, 0x01F000, 0x01FFFF, "Saturn Solutions Ltd", "SATURN-SOLUTIONS" }, { 0x001BC5, 0x020000, 0x020FFF, "Momentum Data Systems", "MOMENTUM-DATA" }, { 0x001BC5, 0x021000, 0x021FFF, "Openpeak, Inc", "OPENPEAK" }, { 0x001BC5, 0x022000, 0x022FFF, "CJSC STC SIMOS", "CJSC-STC-SIMOS" }, { 0x001BC5, 0x023000, 0x023FFF, "MAGO di Della Mora Walter", "MAGO-DI-DELLA-MORA-WALTER" }, { 0x001BC5, 0x024000, 0x024FFF, "ANNECY ELECTRONIQUE SAS", "ANNECY-ELECTRONIQUE-SAS" }, { 0x001BC5, 0x025000, 0x025FFF, "andersen lighting GmbH", "ANDERSEN-LIGHTING" }, { 0x001BC5, 0x026000, 0x026FFF, "DIMEP Sistemas", "DIMEP-SISTEMAS" }, { 0x001BC5, 0x027000, 0x027FFF, "CAMEA, spol. s r.o.", "CAMEA-SPOL-S-R-O" }, { 0x001BC5, 0x028000, 0x028FFF, "STECHWIN.CO.LTD.", "STECHWIN" }, { 0x001BC5, 0x029000, 0x029FFF, "2 FRANCE MARINE", "2-FRANCE-MARINE" }, { 0x001BC5, 0x02A000, 0x02AFFF, "Analytical Instrument Systems, Inc.", "ANALYTICAL-INSTRUMENT" }, { 0x001BC5, 0x02B000, 0x02BFFF, "Saturn South Pty Ltd", "SATURN-SOUTH-PTY" }, { 0x001BC5, 0x02C000, 0x02CFFF, "Care Everywhere LLC", "CARE-EVERYWHERE" }, { 0x001BC5, 0x02D000, 0x02DFFF, "DDTRONIK Dariusz Dowgiert", "DDTRONIK-DARIUSZ-DOWGIERT" }, { 0x001BC5, 0x02E000, 0x02EFFF, "BETTINI SRL", "BETTINI-SRL" }, { 0x001BC5, 0x02F000, 0x02FFFF, "Fibrain Co. Ltd.", "FIBRAIN" }, { 0x001BC5, 0x030000, 0x030FFF, "OctoGate IT Security Systems GmbH", "OCTOGATE-IT-SECURITY" }, { 0x001BC5, 0x031000, 0x031FFF, "ADIXEIN LIMITED", "ADIXEIN" }, { 0x001BC5, 0x032000, 0x032FFF, "Osborne Coinage Co", "OSBORNE-COINAGE" }, { 0x001BC5, 0x033000, 0x033FFF, "JE Suunnittelu Oy", "JE-SUUNNITTELU-OY" }, { 0x001BC5, 0x034000, 0x034FFF, "InterCEL Pty Ltd", "INTERCEL-PTY" }, { 0x001BC5, 0x035000, 0x035FFF, "RTLS Ltd.", "RTLS" }, { 0x001BC5, 0x036000, 0x036FFF, "LOMAR SRL", "LOMAR-SRL" }, { 0x001BC5, 0x037000, 0x037FFF, "ITW Reyflex North America", "ITW-REYFLEX-NORTH-AMERICA" }, { 0x001BC5, 0x038000, 0x038FFF, "SEED International Ltd.", "SEED" }, { 0x001BC5, 0x039000, 0x039FFF, "EURESYS S.A.", "EURESYS" }, { 0x001BC5, 0x03A000, 0x03AFFF, "MindMade Sp. z o.o.", "MINDMADE-SP-Z-O-O" }, { 0x001BC5, 0x03B000, 0x03BFFF, "Promixis, LLC", "PROMIXIS" }, { 0x001BC5, 0x03C000, 0x03CFFF, "Xiphos Systems Corp.", "XIPHOS" }, { 0x001BC5, 0x03D000, 0x03DFFF, "rioxo GmbH", "RIOXO" }, { 0x001BC5, 0x03E000, 0x03EFFF, "Daylight Solutions, Inc", "DAYLIGHT-SOLUTIONS" }, { 0x001BC5, 0x03F000, 0x03FFFF, "ELTRADE Ltd", "ELTRADE" }, { 0x001BC5, 0x040000, 0x040FFF, "OOO Actidata", "OOO-ACTIDATA" }, { 0x001BC5, 0x041000, 0x041FFF, "DesignA Electronics Limited", "DESIGNA-ELECTRONICS" }, { 0x001BC5, 0x042000, 0x042FFF, "ChamSys Ltd", "CHAMSYS" }, { 0x001BC5, 0x043000, 0x043FFF, "Coincident, Inc.", "COINCIDENT" }, { 0x001BC5, 0x044000, 0x044FFF, "ZAO "RADIUS Avtomatika"", "ZAO-QUOT-RADIUS-AVTOMATIKA-QUOT" }, { 0x001BC5, 0x045000, 0x045FFF, "Marvel Digital International Limited", "MARVEL-DIGITAL" }, { 0x001BC5, 0x046000, 0x046FFF, "GÉANT", "GANT" }, { 0x001BC5, 0x047000, 0x047FFF, "PT. Amanindo Nusapadu", "PT-AMANINDO-NUSAPADU" }, { 0x001BC5, 0x048000, 0x048FFF, "XPossible Technologies Pte Ltd", "XPOSSIBLE-TECHNOLOGIES-PTE" }, { 0x001BC5, 0x049000, 0x049FFF, "EUROCONTROL S.p.A.", "EUROCONTROL" }, { 0x001BC5, 0x04A000, 0x04AFFF, "Certis Technology International Pte Ltd", "CERTIS-PTE" }, { 0x001BC5, 0x04B000, 0x04BFFF, "Silicon Controls", "SILICON-CONTROLS" }, { 0x001BC5, 0x04C000, 0x04CFFF, "Rhino Controls Ltd.", "RHINO-CONTROLS" }, { 0x001BC5, 0x04D000, 0x04DFFF, "eiraku electric corp.", "EIRAKU-ELECTRIC" }, { 0x001BC5, 0x04E000, 0x04EFFF, "Mitsubishi Electric India PVT. LTD", "MITSUBISHI-ELECTRIC-INDIA-PVT" }, { 0x001BC5, 0x04F000, 0x04FFFF, "Orbital Systems, Ltd.", "ORBITAL" }, { 0x001BC5, 0x050000, 0x050FFF, "TeliSwitch Solutions", "TELISWITCH-SOLUTIONS" }, { 0x001BC5, 0x051000, 0x051FFF, "QQ Navigation AB", "QQ-NAVIGATION-AB" }, { 0x001BC5, 0x052000, 0x052FFF, "Engineering Center ENERGOSERVICE", "ENGINEERING-CENTER-ENERGOSERVICE" }, { 0x001BC5, 0x053000, 0x053FFF, "Metrycom Communications Ltd", "METRYCOM-COMMUNICATION" }, { 0x001BC5, 0x054000, 0x054FFF, "Private", "PRIVATE" }, { 0x001BC5, 0x055000, 0x055FFF, "LUMIPLAN TRANSPORT", "LUMIPLAN-TRANSPORT" }, { 0x001BC5, 0x056000, 0x056FFF, "ThinKom Solutions, Inc", "THINKOM-SOLUTIONS" }, { 0x001BC5, 0x057000, 0x057FFF, "EREE Electronique", "EREE-ELECTRONIQUE" }, { 0x001BC5, 0x058000, 0x058FFF, "optiMEAS GmbH", "OPTIMEAS" }, { 0x001BC5, 0x059000, 0x059FFF, "INPIXAL", "INPIXAL" }, { 0x001BC5, 0x05A000, 0x05AFFF, "POSTEC DATA SYSTEMS", "POSTEC-DATA" }, { 0x001BC5, 0x05B000, 0x05BFFF, "konzeptpark GmbH", "KONZEPTPARK" }, { 0x001BC5, 0x05C000, 0x05CFFF, "Suretrak Global Pty Ltd", "SURETRAK-GLOBAL-PTY" }, { 0x001BC5, 0x05D000, 0x05DFFF, "JSC Prominform", "JSC-PROMINFORM" }, { 0x001BC5, 0x05E000, 0x05EFFF, "Ecomed-Complex", "ECOMED-COMPLEX" }, { 0x001BC5, 0x05F000, 0x05FFFF, "Klingenthaler Musikelektronik GmbH", "KLINGENTHALER-MUSIKELEKTRONIK" }, { 0x001BC5, 0x060000, 0x060FFF, "ENSTECH", "ENSTECH" }, { 0x001BC5, 0x061000, 0x061FFF, "Scientific-Technical Center Epsilon Limited company", "SCIENTIFIC-TECHNICAL-CENTER-EPSILON-COMPANY" }, { 0x001BC5, 0x062000, 0x062FFF, "Sulaon Oy", "SULAON-OY" }, { 0x001BC5, 0x063000, 0x063FFF, "Check-It Solutions Inc", "CHECK-IT-SOLUTIONS" }, { 0x001BC5, 0x064000, 0x064FFF, "Enkora Oy Ltd", "ENKORA-OY" }, { 0x001BC5, 0x065000, 0x065FFF, "Plair Media Inc.", "PLAIR-MEDIA" }, { 0x001BC5, 0x066000, 0x066FFF, "Manufacturas y transformados AB", "MANUFACTURAS-Y-TRANSFORMADOS-AB" }, { 0x001BC5, 0x067000, 0x067FFF, "Embit srl", "EMBIT-SRL" }, { 0x001BC5, 0x068000, 0x068FFF, "HCS KABLOLAMA SISTEMLERI SAN. ve TIC.A.S.", "HCS-KABLOLAMA-SISTEMLERI-SAN-VE-TIC" }, { 0x001BC5, 0x069000, 0x069FFF, "Datasat Digital Entertainment", "DATASAT-DIGITAL-ENTERTAINMENT" }, { 0x001BC5, 0x06A000, 0x06AFFF, "IST GmbH", "IST" }, { 0x001BC5, 0x06B000, 0x06BFFF, "Verified Energy, LLC.", "VERIFIED-ENERGY" }, { 0x001BC5, 0x06C000, 0x06CFFF, "Luxcon System Limited", "LUXCON-SYSTEM" }, { 0x001BC5, 0x06D000, 0x06DFFF, "TES Electronic Solutions (I) Pvt. Ltd.", "TES-SOLUTIONS-I-PVT" }, { 0x001BC5, 0x06E000, 0x06EFFF, "Two Dimensional Instruments, LLC", "TWO-DIMENSIONAL-INSTRUMENTS" }, { 0x001BC5, 0x06F000, 0x06FFFF, "LLC Emzior", "LLC-EMZIOR" }, { 0x001BC5, 0x070000, 0x070FFF, "Siemens Industries, Inc, Retail & Commercial Systems", "SIEMENS-INDUSTRIES-RETAIL-COMMERCIAL" }, { 0x001BC5, 0x071000, 0x071FFF, "Center for E-Commerce Infrastructure Development, The University of Hong Kong", "CENTER-FOR-E-COMMERCE-INFRASTRUCTURE-DEVELOPMENT-THE-UNIVERSITY-OF-HONG-KONG" }, { 0x001BC5, 0x072000, 0x072FFF, "Ohio Semitronics, Inc.", "OHIO-SEMITRONICS" }, { 0x001BC5, 0x073000, 0x073FFF, "tado GmbH", "TADO" }, { 0x001BC5, 0x074000, 0x074FFF, "Dynasthetics", "DYNASTHETICS" }, { 0x001BC5, 0x075000, 0x075FFF, "Kitron GmbH", "KITRON" }, { 0x001BC5, 0x076000, 0x076FFF, "PLAiR Media, Inc", "PLAIR-MEDIA" }, { 0x001BC5, 0x077000, 0x077FFF, "Momentum Data Systems", "MOMENTUM-DATA" }, { 0x001BC5, 0x078000, 0x078FFF, "Donbass Soft Ltd and Co.KG", "DONBASS-SOFT" }, { 0x001BC5, 0x079000, 0x079FFF, "HPI High Pressure Instrumentation GmbH", "HPI-HIGH-PRESSURE-INSTRUMENTATION" }, { 0x001BC5, 0x07A000, 0x07AFFF, "Servicios Electronicos Industriales Berbel s.l.", "SERVICIOS-ELECTRONICOS-INDUSTRIALES-BERBEL" }, { 0x001BC5, 0x07B000, 0x07BFFF, "QCORE Medical", "QCORE-MEDICAL" }, { 0x001BC5, 0x07C000, 0x07CFFF, "head", "HEAD" }, { 0x001BC5, 0x07D000, 0x07DFFF, "Greatcom AG", "GREATCOM" }, { 0x001BC5, 0x07E000, 0x07EFFF, "Bio Molecular System Pty Ltd", "BIO-MOLECULAR-SYSTEM-PTY" }, { 0x001BC5, 0x07F000, 0x07FFFF, "Hitechlab Inc", "HITECHLAB" }, { 0x001BC5, 0x080000, 0x080FFF, "LUMINO GmbH", "LUMINO" }, { 0x001BC5, 0x081000, 0x081FFF, "WonATech Co., Ltd.", "WONATECH" }, { 0x001BC5, 0x082000, 0x082FFF, "TGS Geophysical Company (UK) Limited", "TGS-GEOPHYSICAL-COMPANY-UK" }, { 0x001BC5, 0x083000, 0x083FFF, "DIWEL", "DIWEL" }, { 0x001BC5, 0x084000, 0x084FFF, "Applied Innovations Research LLC", "APPLIED-INNOVATIONS-RESEARCH" }, { 0x001BC5, 0x085000, 0x085FFF, "Oberon microsystems, Inc.", "OBERON-MICROSYSTEMS" }, { 0x001BC5, 0x086000, 0x086FFF, "CAST Group of Companies Inc.", "CAST-GROUP-OF-COMPANIES" }, { 0x001BC5, 0x087000, 0x087FFF, "Onnet Technologies and Innovations LLC", "ONNET-TECHNOLOGIES-AND-INNOVATIONS" }, { 0x001BC5, 0x088000, 0x088FFF, "UAB Kitron", "UAB-KITRON" }, { 0x001BC5, 0x089000, 0x089FFF, "SIGNATURE CONTROL SYSTEMS, INC.", "SIGNATURE-CONTROL" }, { 0x001BC5, 0x08A000, 0x08AFFF, "Topicon", "TOPICON" }, { 0x001BC5, 0x08B000, 0x08BFFF, "Nistica", "NISTICA" }, { 0x001BC5, 0x08C000, 0x08CFFF, "Triax A/S", "TRIAX-A/S" }, { 0x001BC5, 0x08D000, 0x08DFFF, "EUREK SRL", "EUREK-SRL" }, { 0x001BC5, 0x08E000, 0x08EFFF, "TrendPoint Systems", "TRENDPOINT" }, { 0x001BC5, 0x08F000, 0x08FFFF, "Unilever R&D", "UNILEVER-R-AMP-D" }, { 0x001BC5, 0x090000, 0x090FFF, "Seven Solutions S.L", "SEVEN-SOLUTIONS" }, { 0x001BC5, 0x091000, 0x091FFF, "3green ApS", "3GREEN-APS" }, { 0x001BC5, 0x092000, 0x092FFF, "Arnouse Digital Devices, Corp.", "ARNOUSE-DIGITAL-DEVICES" }, { 0x001BC5, 0x093000, 0x093FFF, "Ambient Devices, Inc.", "AMBIENT-DEVICES" }, { 0x001BC5, 0x094000, 0x094FFF, "reelyActive", "REELYACTIVE" }, { 0x001BC5, 0x095000, 0x095FFF, "PREVAC sp. z o.o.", "PREVAC-SP-Z-O-O" }, { 0x001BC5, 0x096000, 0x096FFF, "Sanstreak Corp.", "SANSTREAK" }, { 0x001BC5, 0x097000, 0x097FFF, "Plexstar Inc.", "PLEXSTAR" }, { 0x001BC5, 0x098000, 0x098FFF, "Cubic Systems, Inc.", "CUBIC" }, { 0x001BC5, 0x099000, 0x099FFF, "UAB Kitron", "UAB-KITRON" }, { 0x001BC5, 0x09A000, 0x09AFFF, "Shenzhen Guang Lian Zhi Tong Limited", "SHENZHEN-GUANG-LIAN-ZHI-TONG" }, { 0x001BC5, 0x09B000, 0x09BFFF, "YIK Corporation", "YIK" }, { 0x001BC5, 0x09C000, 0x09CFFF, "S.I.C.E.S. srl", "S-I-C-E-S-SRL" }, { 0x001BC5, 0x09D000, 0x09DFFF, "Navitar Inc", "NAVITAR" }, { 0x001BC5, 0x09E000, 0x09EFFF, "K+K Messtechnik GmbH", "K+K-MESSTECHNIK" }, { 0x001BC5, 0x09F000, 0x09FFFF, "ENTE Sp. z o.o.", "ENTE-SP-Z-O-O" }, { 0x001BC5, 0x0A0000, 0x0A0FFF, "Silvair", "SILVAIR" }, { 0x001BC5, 0x0A1000, 0x0A1FFF, "Hangzhou Zhiping Technology Co., Ltd.", "HANGZHOU-ZHIPING" }, { 0x001BC5, 0x0A2000, 0x0A2FFF, "Hettich Benelux", "HETTICH-BENELUX" }, { 0x001BC5, 0x0A3000, 0x0A3FFF, "P A Network Laboratory Co.,Ltd", "P-A-NETWORK-LABORATORY" }, { 0x001BC5, 0x0A4000, 0x0A4FFF, "RADMOR S.A.", "RADMOR" }, { 0x001BC5, 0x0A5000, 0x0A5FFF, "Tesla Controls", "TESLA-CONTROLS" }, { 0x001BC5, 0x0A6000, 0x0A6FFF, "Balter Security GmbH", "BALTER-SECURITY" }, { 0x001BC5, 0x0A7000, 0x0A7FFF, "L.G.L. Electronics S.p.a.", "L-G-L-ELECTRONICS" }, { 0x001BC5, 0x0A8000, 0x0A8FFF, "Link Precision", "LINK-PRECISION" }, { 0x001BC5, 0x0A9000, 0x0A9FFF, "Elektrometal SA", "ELEKTROMETAL" }, { 0x001BC5, 0x0AA000, 0x0AAFFF, "Senceive Ltd", "SENCEIVE" }, { 0x001BC5, 0x0AB000, 0x0ABFFF, "Evondos Oy", "EVONDOS-OY" }, { 0x001BC5, 0x0AC000, 0x0ACFFF, "AVnu Alliance", "AVNU-ALLIANCE" }, { 0x001BC5, 0x0AD000, 0x0ADFFF, "Tierra Japan Co.,Ltd", "TIERRA-JAPAN" }, { 0x001BC5, 0x0AE000, 0x0AEFFF, "Techlan Reti s.r.l.", "TECHLAN-RETI" }, { 0x001BC5, 0x0AF000, 0x0AFFFF, "Enerwise Solutions Ltd.", "ENERWISE-SOLUTIONS" }, { 0x001BC5, 0x0B0000, 0x0B0FFF, "J-D.COM", "J-D-COM" }, { 0x001BC5, 0x0B1000, 0x0B1FFF, "Roslen Eco-Networking Products", "ROSLEN-ECO-NETWORKING-PRODUCTS" }, { 0x001BC5, 0x0B2000, 0x0B2FFF, "SKODA ELECTRIC a.s.", "SKODA-ELECTRIC" }, { 0x001BC5, 0x0B3000, 0x0B3FFF, "FSM Solutions Limited", "FSM-SOLUTIONS" }, { 0x001BC5, 0x0B4000, 0x0B4FFF, "COBAN SRL", "COBAN-SRL" }, { 0x001BC5, 0x0B5000, 0x0B5FFF, "Exibea AB", "EXIBEA-AB" }, { 0x001BC5, 0x0B6000, 0x0B6FFF, "VEILUX INC.", "VEILUX" }, { 0x001BC5, 0x0B7000, 0x0B7FFF, "Autelis, LLC", "AUTELIS" }, { 0x001BC5, 0x0B8000, 0x0B8FFF, "Private", "PRIVATE" }, { 0x001BC5, 0x0B9000, 0x0B9FFF, "Denki Kogyo Company, Limited", "DENKI-KOGYO-COMPANY" }, { 0x001BC5, 0x0BA000, 0x0BAFFF, "NT MICROSYSTEMS", "NT-MICROSYSTEMS" }, { 0x001BC5, 0x0BB000, 0x0BBFFF, "Triax A/S", "TRIAX-A/S" }, { 0x001BC5, 0x0BC000, 0x0BCFFF, "kuwatec, Inc.", "KUWATEC" }, { 0x001BC5, 0x0BD000, 0x0BDFFF, "Bridge Diagnostics, Inc.", "BRIDGE-DIAGNOSTICS" }, { 0x001BC5, 0x0BE000, 0x0BEFFF, "YESpay International Ltd", "YESPAY" }, { 0x001BC5, 0x0BF000, 0x0BFFFF, "TN Core Co.,Ltd.", "TN-CORE" }, { 0x001BC5, 0x0C0000, 0x0C0FFF, "Digital Loggers, Inc.", "DIGITAL-LOGGERS" }, { 0x001BC5, 0x0C1000, 0x0C1FFF, "EREE Electronique", "EREE-ELECTRONIQUE" }, { 0x001BC5, 0x0C2000, 0x0C2FFF, "TechSolutions A/S", "TECHSOLUTIONS-A/S" }, { 0x001BC5, 0x0C3000, 0x0C3FFF, "inomatic GmbH", "INOMATIC" }, { 0x001BC5, 0x0C4000, 0x0C4FFF, "ELDES", "ELDES" }, { 0x001BC5, 0x0C5000, 0x0C5FFF, "Gill Instruments Ltd", "GILL-INSTRUMENTS" }, { 0x001BC5, 0x0C6000, 0x0C6FFF, "Connode", "CONNODE" }, { 0x001BC5, 0x0C7000, 0x0C7FFF, "WIZZILAB SAS", "WIZZILAB-SAS" }, { 0x001BC5, 0x0C8000, 0x0C8FFF, "Dialine", "DIALINE" }, { 0x001BC5, 0x0C9000, 0x0C9FFF, "UAB Kitron", "UAB-KITRON" }, { 0x70B3D5, 0x001000, 0x001FFF, "SOREDI touch systems GmbH", "SOREDI-TOUCH" }, { 0x70B3D5, 0x002000, 0x002FFF, "Gogo BA", "GOGO-BA" }, { 0x70B3D5, 0x003000, 0x003FFF, "ANYROAM", "ANYROAM" }, { 0x70B3D5, 0x004000, 0x004FFF, "LEIDOS", "LEIDOS" }, { 0x70B3D5, 0x005000, 0x005FFF, "CT Company", "CT-COMPANY" }, { 0x70B3D5, 0x006000, 0x006FFF, "Piranha EMS Inc.", "PIRANHA-EMS" }, { 0x70B3D5, 0x007000, 0x007FFF, "SENSONEO", "SENSONEO" }, { 0x70B3D5, 0x008000, 0x008FFF, "ESYSE GmbH Embedded Systems Engineering", "ESYSE-EMBEDDED-ENGINEERING" }, { 0x70B3D5, 0x009000, 0x009FFF, "HolidayCoro", "HOLIDAYCORO" }, { 0x70B3D5, 0x00A000, 0x00AFFF, "FUJICOM Co.,Ltd.", "FUJICOM" }, { 0x70B3D5, 0x00B000, 0x00BFFF, "AXING AG", "AXING" }, { 0x70B3D5, 0x00C000, 0x00CFFF, "EXARA Group", "EXARA-GROUP" }, { 0x70B3D5, 0x00D000, 0x00DFFF, "Scrona AG", "SCRONA" }, { 0x70B3D5, 0x00E000, 0x00EFFF, "Magosys Systems LTD", "MAGOSYS" }, { 0x70B3D5, 0x00F000, 0x00FFFF, "Neusoft Reach Automotive Technology (Shenyang) Co.,Ltd", "NEUSOFT-REACH-AUTOMOTIVE-SHENYANG" }, { 0x70B3D5, 0x010000, 0x010FFF, "Hanwa Electronic Ind.Co.,Ltd.", "HANWA-IND" }, { 0x70B3D5, 0x011000, 0x011FFF, "Sumer Data S.L", "SUMER-DATA" }, { 0x70B3D5, 0x012000, 0x012FFF, "KST technology", "KST" }, { 0x70B3D5, 0x013000, 0x013FFF, "Sportsbeams Lighting, Inc.", "SPORTSBEAMS-LIGHTING" }, { 0x70B3D5, 0x014000, 0x014FFF, "FRAKO Kondensatoren und Anlagenbau GmbH", "FRAKO-KONDENSATOREN-UND-ANLAGENBAU" }, { 0x70B3D5, 0x015000, 0x015FFF, "EN ElectronicNetwork Hamburg GmbH", "EN-ELECTRONICNETWORK-HAMBURG" }, { 0x70B3D5, 0x016000, 0x016FFF, "Guardian Controls International Ltd", "GUARDIAN-CONTROLS" }, { 0x70B3D5, 0x017000, 0x017FFF, "FTG Corporation", "FTG" }, { 0x70B3D5, 0x018000, 0x018FFF, "DELITECH GROUP", "DELITECH-GROUP" }, { 0x70B3D5, 0x019000, 0x019FFF, "Transit Solutions, LLC.", "TRANSIT-SOLUTIONS" }, { 0x70B3D5, 0x01A000, 0x01AFFF, "Cubro Acronet GesmbH", "CUBRO-ACRONET-GESMBH" }, { 0x70B3D5, 0x01B000, 0x01BFFF, "AUDI AG", "AUDI" }, { 0x70B3D5, 0x01C000, 0x01CFFF, "Kumu Networks", "KUMU-NETWORKS" }, { 0x70B3D5, 0x01D000, 0x01DFFF, "Weigl Elektronik & Mediaprojekte", "WEIGL-ELEKTRONIK-MEDIAPROJEKTE" }, { 0x70B3D5, 0x01E000, 0x01EFFF, "ePOINT Embedded Computing Limited", "EPOINT-EMBEDDED-COMPUTING" }, { 0x70B3D5, 0x01F000, 0x01FFFF, "SPX Flow Technology BV", "SPX-FLOW" }, { 0x70B3D5, 0x020000, 0x020FFF, "MICRO DEBUG, Y.K.", "MICRO-DEBUG-Y-K" }, { 0x70B3D5, 0x021000, 0x021FFF, "HGL Dynamics Ltd", "HGL-DYNAMICS" }, { 0x70B3D5, 0x022000, 0x022FFF, "Ravelin Ltd", "RAVELIN" }, { 0x70B3D5, 0x023000, 0x023FFF, "Cambridge Pixel", "CAMBRIDGE-PIXEL" }, { 0x70B3D5, 0x024000, 0x024FFF, "G+D Mobile Security", "G+D-MOBILE-SECURITY" }, { 0x70B3D5, 0x025000, 0x025FFF, "Elsuhd Net Ltd Co.", "ELSUHD-NET" }, { 0x70B3D5, 0x026000, 0x026FFF, "Telstra", "TELSTRA" }, { 0x70B3D5, 0x027000, 0x027FFF, "Redcap Solutions s.r.o.", "REDCAP-SOLUTIONS-S-R-O" }, { 0x70B3D5, 0x028000, 0x028FFF, "AT-Automation Technology GmbH", "AT-AUTOMATION" }, { 0x70B3D5, 0x029000, 0x029FFF, "Marimo electronics Co.,Ltd.", "MARIMO-ELECTRONICS" }, { 0x70B3D5, 0x02A000, 0x02AFFF, "BAE Systems Surface Ships Limited", "BAE-SURFACE-SHIPS" }, { 0x70B3D5, 0x02B000, 0x02BFFF, "Scorpion Precision Industry (HK)CO. Ltd.", "SCORPION-PRECISION-INDUSTRY-HK" }, { 0x70B3D5, 0x02C000, 0x02CFFF, "Iylus Inc.", "IYLUS" }, { 0x70B3D5, 0x02D000, 0x02DFFF, "NEXTtec srl", "NEXTTEC-SRL" }, { 0x70B3D5, 0x02E000, 0x02EFFF, "Monnit Corporation", "MONNIT" }, { 0x70B3D5, 0x02F000, 0x02FFFF, "LEGENDAIRE TECHNOLOGY CO., LTD.", "LEGENDAIRE" }, { 0x70B3D5, 0x030000, 0x030FFF, "Tresent Technologies", "TRESENT-TECHNOLOGIES" }, { 0x70B3D5, 0x031000, 0x031FFF, "SHENZHEN GAONA ELECTRONIC CO.LTD", "SHENZHEN-GAONA" }, { 0x70B3D5, 0x032000, 0x032FFF, "iFreecomm Technology Co., Ltd", "IFREECOMM" }, { 0x70B3D5, 0x033000, 0x033FFF, "Sailmon BV", "SAILMON" }, { 0x70B3D5, 0x034000, 0x034FFF, "Digital Systems Engineering", "DIGITAL-ENGINEERING" }, { 0x70B3D5, 0x035000, 0x035FFF, "HKW-Elektronik GmbH", "HKW-ELEKTRONIK" }, { 0x70B3D5, 0x036000, 0x036FFF, "Vema Venturi AB", "VEMA-VENTURI-AB" }, { 0x70B3D5, 0x037000, 0x037FFF, "EIFFAGE ENERGIE ELECTRONIQUE", "EIFFAGE-ENERGIE-ELECTRONIQUE" }, { 0x70B3D5, 0x038000, 0x038FFF, "DONG IL VISION Co., Ltd.", "DONG-IL-VISION" }, { 0x70B3D5, 0x039000, 0x039FFF, "DoWoo Digitech", "DOWOO-DIGITECH" }, { 0x70B3D5, 0x03A000, 0x03AFFF, "Ochno AB", "OCHNO-AB" }, { 0x70B3D5, 0x03B000, 0x03BFFF, "SSL - Electrical Aerospace Ground Equipment Section", "SSL-ELECTRICAL-AEROSPACE-GROUND-EQUIPMENT-SECTION" }, { 0x70B3D5, 0x03C000, 0x03CFFF, "Ultimate Software", "ULTIMATE-SOFTWARE" }, { 0x70B3D5, 0x03D000, 0x03DFFF, "QUERCUS TECHNOLOGIES, S.L.", "QUERCUS-TECHNOLOGIES" }, { 0x70B3D5, 0x03E000, 0x03EFFF, "Guan Show Technologe Co., Ltd.", "GUAN-SHOW-TECHNOLOGE" }, { 0x70B3D5, 0x03F000, 0x03FFFF, "Elesar Limited", "ELESAR" }, { 0x70B3D5, 0x040000, 0x040FFF, "Savari Inc", "SAVARI" }, { 0x70B3D5, 0x041000, 0x041FFF, "FIBERNET LTD", "FIBERNET" }, { 0x70B3D5, 0x042000, 0x042FFF, "Coveloz Technologies Inc.", "COVELOZ-TECHNOLOGIES" }, { 0x70B3D5, 0x043000, 0x043FFF, "cal4care Pte Ltd", "CAL4CARE-PTE" }, { 0x70B3D5, 0x044000, 0x044FFF, "Don Electronics Ltd", "DON-ELECTRONICS" }, { 0x70B3D5, 0x045000, 0x045FFF, "Navaero Avionics AB", "NAVAERO-AVIONICS-AB" }, { 0x70B3D5, 0x046000, 0x046FFF, "Shenzhen Rihuida Electronics Co,. Ltd", "SHENZHEN-RIHUIDA-ELECTRONICS" }, { 0x70B3D5, 0x047000, 0x047FFF, "OOO ORION-R", "OOO-ORION-R" }, { 0x70B3D5, 0x048000, 0x048FFF, "AvMap srlu", "AVMAP-SRLU" }, { 0x70B3D5, 0x049000, 0x049FFF, "APP Engineering, Inc.", "APP-ENGINEERING" }, { 0x70B3D5, 0x04A000, 0x04AFFF, "Gecko Robotics Inc", "GECKO-ROBOTICS" }, { 0x70B3D5, 0x04B000, 0x04BFFF, "Dream I System Co., Ltd", "DREAM-I-SYSTEM" }, { 0x70B3D5, 0x04C000, 0x04CFFF, "mapna group", "MAPNA-GROUP" }, { 0x70B3D5, 0x04D000, 0x04DFFF, "Sicon srl", "SICON-SRL" }, { 0x70B3D5, 0x04E000, 0x04EFFF, "HUGEL GmbH", "HUGEL" }, { 0x70B3D5, 0x04F000, 0x04FFFF, "EVPU Defence a.s.", "EVPU-DEFENCE" }, { 0x70B3D5, 0x050000, 0x050FFF, "Compusign Systems Pty Ltd", "COMPUSIGN-PTY" }, { 0x70B3D5, 0x051000, 0x051FFF, "JT", "JT" }, { 0x70B3D5, 0x052000, 0x052FFF, "Sudo Premium Engineering", "SUDO-PREMIUM-ENGINEERING" }, { 0x70B3D5, 0x053000, 0x053FFF, "YAMAKATSU ELECTRONICS INDUSTRY CO., LTD.", "YAMAKATSU-ELECTRONICS-INDUSTRY" }, { 0x70B3D5, 0x054000, 0x054FFF, "Groupeer Technologies", "GROUPEER-TECHNOLOGIES" }, { 0x70B3D5, 0x055000, 0x055FFF, "BAE SYSTEMS", "BAE" }, { 0x70B3D5, 0x056000, 0x056FFF, "MIRAE INFORMATION TECHNOLOGY CO., LTD.", "MIRAE-INFORMATION" }, { 0x70B3D5, 0x057000, 0x057FFF, "RCH ITALIA SPA", "RCH-ITALIA-SPA" }, { 0x70B3D5, 0x058000, 0x058FFF, "Telink Semiconductor CO, Limtied, Taiwan", "TELINK-SEMICONDUCTOR-LIMTIED-TAIWAN" }, { 0x70B3D5, 0x059000, 0x059FFF, "Pro-Digital Projetos Eletronicos Ltda", "PRO-DIGITAL-PROJETOS-ELETRONICOS-LTDA" }, { 0x70B3D5, 0x05A000, 0x05AFFF, "Uni Control System Sp. z o. o.", "UNI-CONTROL-SYSTEM-SP-Z-O-O" }, { 0x70B3D5, 0x05B000, 0x05BFFF, "PAL Inc.", "PAL" }, { 0x70B3D5, 0x05C000, 0x05CFFF, "Amber Kinetics Inc", "AMBER-KINETICS" }, { 0x70B3D5, 0x05D000, 0x05DFFF, "KOMS Co.,Ltd.", "KOMS" }, { 0x70B3D5, 0x05E000, 0x05EFFF, "VITEC", "VITEC" }, { 0x70B3D5, 0x05F000, 0x05FFFF, "UNISOR MULTISYSTEMS LTD", "UNISOR-MULTISYSTEMS" }, { 0x70B3D5, 0x060000, 0x060FFF, "RCH Vietnam Limited Liability Company", "RCH-VIETNAM-LIABILITY-COMPANY" }, { 0x70B3D5, 0x061000, 0x061FFF, "IntelliDesign Pty Ltd", "INTELLIDESIGN-PTY" }, { 0x70B3D5, 0x062000, 0x062FFF, "RM Michaelides Software & Elektronik GmbH", "RM-MICHAELIDES-SOFTWARE-ELEKTRONIK" }, { 0x70B3D5, 0x063000, 0x063FFF, "PoolDigital GmbH & Co. KG", "POOLDIGITAL" }, { 0x70B3D5, 0x064000, 0x064FFF, "AB PRECISION (POOLE) LTD", "AB-PRECISION-POOLE" }, { 0x70B3D5, 0x065000, 0x065FFF, "EXATEL", "EXATEL" }, { 0x70B3D5, 0x066000, 0x066FFF, "North Pole Engineering, Inc.", "NORTH-POLE-ENGINEERING" }, { 0x70B3D5, 0x067000, 0x067FFF, "NEOPATH INTEGRATED SYSTEMS LTDA", "NEOPATH-INTEGRATED-LTDA" }, { 0x70B3D5, 0x068000, 0x068FFF, "Onethinx BV", "ONETHINX" }, { 0x70B3D5, 0x069000, 0x069FFF, "ONDEMAND LABORATORY Co., Ltd.", "ONDEMAND-LABORATORY" }, { 0x70B3D5, 0x06A000, 0x06AFFF, "Guangdong Centnet Technology Co.,Ltd", "GUANGDONG-CENTNET" }, { 0x70B3D5, 0x06B000, 0x06BFFF, "U-Tech", "U-TECH" }, { 0x70B3D5, 0x06C000, 0x06CFFF, "AppTek", "APPTEK" }, { 0x70B3D5, 0x06D000, 0x06DFFF, "Panoramic Power", "PANORAMIC-POWER" }, { 0x70B3D5, 0x06E000, 0x06EFFF, "GLOBAL-KING INTERNATIONAL CO., LTD.", "GLOBAL-KING" }, { 0x70B3D5, 0x06F000, 0x06FFFF, "Beijing Daswell Science and Technology Co.LTD", "BEIJING-DASWELL-SCIENCE" }, { 0x70B3D5, 0x070000, 0x070FFF, "Lumiplan Duhamel", "LUMIPLAN-DUHAMEL" }, { 0x70B3D5, 0x071000, 0x071FFF, "FSR, INC.", "FSR" }, { 0x70B3D5, 0x072000, 0x072FFF, "Lightdrop", "LIGHTDROP" }, { 0x70B3D5, 0x073000, 0x073FFF, "Liteon Technology Corporation", "LITEON" }, { 0x70B3D5, 0x074000, 0x074FFF, "Orlaco Products B.V.", "ORLACO-PRODUCTS-B-V" }, { 0x70B3D5, 0x075000, 0x075FFF, "Mo-Sys Engineering Ltd", "MO-SYS-ENGINEERING" }, { 0x70B3D5, 0x076000, 0x076FFF, "Private Enterprise Scientific and Production Private EnterpriseSparing-Vist Center", "PRIVATE-SCIENTIFIC-AND-PRODUCTION-PRIVATE-ENTERPRISESPARING-VIST-CENTER" }, { 0x70B3D5, 0x077000, 0x077FFF, "InAccess Networks SA", "INACCESS-NETWORKS" }, { 0x70B3D5, 0x078000, 0x078FFF, "OrbiWise SA", "ORBIWISE" }, { 0x70B3D5, 0x079000, 0x079FFF, "CheckBill Co,Ltd.", "CHECKBILL" }, { 0x70B3D5, 0x07A000, 0x07AFFF, "ZAO ZEO", "ZAO-ZEO" }, { 0x70B3D5, 0x07B000, 0x07BFFF, "wallbe GmbH", "WALLBE" }, { 0x70B3D5, 0x07C000, 0x07CFFF, "ISAC SRL", "ISAC-SRL" }, { 0x70B3D5, 0x07D000, 0x07DFFF, "PANORAMIC POWER", "PANORAMIC-POWER" }, { 0x70B3D5, 0x07E000, 0x07EFFF, "ENTEC Electric & Electronic CO., LTD", "ENTEC-ELECTRIC" }, { 0x70B3D5, 0x07F000, 0x07FFFF, "Abalance Corporation", "ABALANCE" }, { 0x70B3D5, 0x080000, 0x080FFF, "ABB", "ABB" }, { 0x70B3D5, 0x081000, 0x081FFF, "IST Technologies (SHENZHEN) Limited", "IST-TECHNOLOGIES-SHENZHEN" }, { 0x70B3D5, 0x082000, 0x082FFF, "Sakura Seiki Co.,Ltd.", "SAKURA-SEIKI" }, { 0x70B3D5, 0x083000, 0x083FFF, "ZAO ZEO", "ZAO-ZEO" }, { 0x70B3D5, 0x084000, 0x084FFF, "Rako Controls Ltd", "RAKO-CONTROLS" }, { 0x70B3D5, 0x085000, 0x085FFF, "Human Systems Integration", "HUMAN-INTEGRATION" }, { 0x70B3D5, 0x086000, 0x086FFF, "Husty M.Styczen J.Hupert Sp.J.", "HUSTY-M-STYCZEN-J-HUPERT-SP-J" }, { 0x70B3D5, 0x087000, 0x087FFF, "Tempus Fugit Consoles bvba", "TEMPUS-FUGIT-CONSOLES-BVBA" }, { 0x70B3D5, 0x088000, 0x088FFF, "OptiScan Biomedical Corp.", "OPTISCAN-BIOMEDICAL" }, { 0x70B3D5, 0x089000, 0x089FFF, "Kazdream Technologies LLP", "KAZDREAM-TECHNOLOGIES-LLP" }, { 0x70B3D5, 0x08A000, 0x08AFFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x08B000, 0x08BFFF, "Peter Huber Kaeltemaschinenbau AG", "PETER-HUBER-KAELTEMASCHINENBAU" }, { 0x70B3D5, 0x08C000, 0x08CFFF, "Airmar Technology Corp", "AIRMAR" }, { 0x70B3D5, 0x08D000, 0x08DFFF, "Clover Electronics Technology Co., Ltd.", "CLOVER-ELECTRONICS" }, { 0x70B3D5, 0x08E000, 0x08EFFF, "Beijing CONvision Technology Co.,Ltd", "BEIJING-CONVISION" }, { 0x70B3D5, 0x08F000, 0x08FFFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0x090000, 0x090FFF, "POWERCRAFT ELECTRONICS PVT. LTD.", "POWERCRAFT-ELECTRONICS-PVT" }, { 0x70B3D5, 0x091000, 0x091FFF, "PROFITT Ltd", "PROFITT" }, { 0x70B3D5, 0x092000, 0x092FFF, "inomed Medizintechnik GmbH", "INOMED-MEDIZINTECHNIK" }, { 0x70B3D5, 0x093000, 0x093FFF, "Legrand Electric Ltd", "LEGRAND-ELECTRIC" }, { 0x70B3D5, 0x094000, 0x094FFF, "Circuitlink Pty Ltd", "CIRCUITLINK-PTY" }, { 0x70B3D5, 0x095000, 0x095FFF, "plc-tec AG", "PLC-TEC" }, { 0x70B3D5, 0x096000, 0x096FFF, "HAVELSAN A.Ş.", "HAVELSAN-A" }, { 0x70B3D5, 0x097000, 0x097FFF, "Avant Technologies", "AVANT-TECHNOLOGIES" }, { 0x70B3D5, 0x098000, 0x098FFF, "Alcodex Technologies Private Limited", "ALCODEX-TECHNOLOGIES-PRIVATE" }, { 0x70B3D5, 0x099000, 0x099FFF, "Schwer+Kopka GmbH", "SCHWER+KOPKA" }, { 0x70B3D5, 0x09A000, 0x09AFFF, "Akse srl", "AKSE-SRL" }, { 0x70B3D5, 0x09B000, 0x09BFFF, "Jacarta Ltd", "JACARTA" }, { 0x70B3D5, 0x09C000, 0x09CFFF, "Cardinal Kinetic", "CARDINAL-KINETIC" }, { 0x70B3D5, 0x09D000, 0x09DFFF, "PuS GmbH und Co. KG", "PUS-UND" }, { 0x70B3D5, 0x09E000, 0x09EFFF, "MobiPromo", "MOBIPROMO" }, { 0x70B3D5, 0x09F000, 0x09FFFF, "COMTECH Kft.", "COMTECH-KFT" }, { 0x70B3D5, 0x0A0000, 0x0A0FFF, "Cominfo, Inc.", "COMINFO" }, { 0x70B3D5, 0x0A1000, 0x0A1FFF, "PTN Electronics Limited", "PTN-ELECTRONICS" }, { 0x70B3D5, 0x0A2000, 0x0A2FFF, "TechSigno srl", "TECHSIGNO-SRL" }, { 0x70B3D5, 0x0A3000, 0x0A3FFF, "Solace Systems Inc.", "SOLACE" }, { 0x70B3D5, 0x0A4000, 0x0A4FFF, "Communication Technology Ltd.", "COMMUNICATION" }, { 0x70B3D5, 0x0A5000, 0x0A5FFF, "FUELCELLPOWER", "FUELCELLPOWER" }, { 0x70B3D5, 0x0A6000, 0x0A6FFF, "PA CONSULTING SERVICES", "PA-CONSULTING-SERVICES" }, { 0x70B3D5, 0x0A7000, 0x0A7FFF, "Traffic and Parking Control Co, Inc.", "TRAFFIC-AND-PARKING-CONTROL" }, { 0x70B3D5, 0x0A8000, 0x0A8FFF, "Symetrics Industries d.b.a. Extant Aerospace", "SYMETRICS-INDUSTRIES-D-B-A-EXTANT-AEROSPACE" }, { 0x70B3D5, 0x0A9000, 0x0A9FFF, "ProConnections, Inc.", "PROCONNECTIONS" }, { 0x70B3D5, 0x0AA000, 0x0AAFFF, "Wanco Inc", "WANCO" }, { 0x70B3D5, 0x0AB000, 0x0ABFFF, "KST technology", "KST" }, { 0x70B3D5, 0x0AC000, 0x0ACFFF, "RoboCore Tecnologia", "ROBOCORE-TECNOLOGIA" }, { 0x70B3D5, 0x0AD000, 0x0ADFFF, "Vega-Absolute", "VEGA-ABSOLUTE" }, { 0x70B3D5, 0x0AE000, 0x0AEFFF, "Norsat International Inc.", "NORSAT" }, { 0x70B3D5, 0x0AF000, 0x0AFFFF, "KMtronic ltd", "KMTRONIC" }, { 0x70B3D5, 0x0B0000, 0x0B0FFF, "Raven Systems Design, Inc", "RAVEN-DESIGN" }, { 0x70B3D5, 0x0B1000, 0x0B1FFF, "AirBie AG", "AIRBIE" }, { 0x70B3D5, 0x0B2000, 0x0B2FFF, "ndb technologies", "NDB-TECHNOLOGIES" }, { 0x70B3D5, 0x0B3000, 0x0B3FFF, "Reonix Automation", "REONIX-AUTOMATION" }, { 0x70B3D5, 0x0B4000, 0x0B4FFF, "AVER", "AVER" }, { 0x70B3D5, 0x0B5000, 0x0B5FFF, "Capgemini Netherlands", "CAPGEMINI-NETHERLANDS" }, { 0x70B3D5, 0x0B6000, 0x0B6FFF, "Landis Gyr", "LANDIS-GYR" }, { 0x70B3D5, 0x0B7000, 0x0B7FFF, "HAI ROBOTICS Co., Ltd.", "HAI-ROBOTICS" }, { 0x70B3D5, 0x0B8000, 0x0B8FFF, "Lucas-Nülle GmbH", "LUCAS-NUELLE" }, { 0x70B3D5, 0x0B9000, 0x0B9FFF, "Easy Digital Concept", "EASY-DIGITAL-CONCEPT" }, { 0x70B3D5, 0x0BA000, 0x0BAFFF, "Ayre Acoustics, Inc.", "AYRE-ACOUSTICS" }, { 0x70B3D5, 0x0BB000, 0x0BBFFF, "AnaPico AG", "ANAPICO" }, { 0x70B3D5, 0x0BC000, 0x0BCFFF, "Practical Software Studio LLC", "PRACTICAL-SOFTWARE-STUDIO" }, { 0x70B3D5, 0x0BD000, 0x0BDFFF, "Andium", "ANDIUM" }, { 0x70B3D5, 0x0BE000, 0x0BEFFF, "ChamSys Ltd", "CHAMSYS" }, { 0x70B3D5, 0x0BF000, 0x0BFFFF, "Den Automation", "DEN-AUTOMATION" }, { 0x70B3D5, 0x0C0000, 0x0C0FFF, "Molu Technology Inc., LTD.", "MOLU" }, { 0x70B3D5, 0x0C1000, 0x0C1FFF, "Nexus Technologies Pty Ltd", "NEXUS-TECHNOLOGIES-PTY" }, { 0x70B3D5, 0x0C2000, 0x0C2FFF, "LOOK EASY INTERNATIONAL LIMITED", "LOOK-EASY" }, { 0x70B3D5, 0x0C3000, 0x0C3FFF, "Aug. Winkhaus GmbH & Co. KG", "AUG-WINKHAUS" }, { 0x70B3D5, 0x0C4000, 0x0C4FFF, "TIAMA", "TIAMA" }, { 0x70B3D5, 0x0C5000, 0x0C5FFF, "Precitec Optronik GmbH", "PRECITEC-OPTRONIK" }, { 0x70B3D5, 0x0C6000, 0x0C6FFF, "Embedded Arts Co., Ltd.", "EMBEDDED-ARTS" }, { 0x70B3D5, 0x0C7000, 0x0C7FFF, "PEEK TRAFFIC", "PEEK-TRAFFIC" }, { 0x70B3D5, 0x0C8000, 0x0C8FFF, "Fin Robotics Inc", "FIN-ROBOTICS" }, { 0x70B3D5, 0x0C9000, 0x0C9FFF, "LINEAGE POWER PVT LTD.,", "LINEAGE-POWER-PVT" }, { 0x70B3D5, 0x0CA000, 0x0CAFFF, "VITEC", "VITEC" }, { 0x70B3D5, 0x0CB000, 0x0CBFFF, "NIRECO CORPORATION", "NIRECO" }, { 0x70B3D5, 0x0CC000, 0x0CCFFF, "ADMiTAS CCTV Taiwan Co. Ltd", "ADMITAS-CCTV-TAIWAN" }, { 0x70B3D5, 0x0CD000, 0x0CDFFF, "AML Oceanographic", "AML-OCEANOGRAPHIC" }, { 0x70B3D5, 0x0CE000, 0x0CEFFF, "Innominds Software Inc", "INNOMINDS-SOFTWARE" }, { 0x70B3D5, 0x0CF000, 0x0CFFFF, "sohonet ltd", "SOHONET" }, { 0x70B3D5, 0x0D0000, 0x0D0FFF, "ProHound Controles Eirelli", "PROHOUND-CONTROLES-EIRELLI" }, { 0x70B3D5, 0x0D1000, 0x0D1FFF, "Common Sense Monitoring Solutions Ltd.", "COMMON-SENSE-MONITORING-SOLUTIONS" }, { 0x70B3D5, 0x0D2000, 0x0D2FFF, "UNMANNED SPA", "UNMANNED-SPA" }, { 0x70B3D5, 0x0D3000, 0x0D3FFF, "TSAT AS", "TSAT-AS" }, { 0x70B3D5, 0x0D4000, 0x0D4FFF, "Guangzhou Male Industrial Animation Technology Co.,Ltd.", "GUANGZHOU-MALE-INDUSTRIAL-ANIMATION" }, { 0x70B3D5, 0x0D5000, 0x0D5FFF, "Kahler Automation", "KAHLER-AUTOMATION" }, { 0x70B3D5, 0x0D6000, 0x0D6FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0x0D7000, 0x0D7FFF, "Russian Telecom Equipment Company", "RUSSIAN-TELECOM-EQUIPMENT-COMPANY" }, { 0x70B3D5, 0x0D8000, 0x0D8FFF, "Laser Imagineering GmbH", "LASER-IMAGINEERING" }, { 0x70B3D5, 0x0D9000, 0x0D9FFF, "Brechbuehler AG", "BRECHBUEHLER" }, { 0x70B3D5, 0x0DA000, 0x0DAFFF, "Aquavision Distribution Ltd", "AQUAVISION-DISTRIBUTION" }, { 0x70B3D5, 0x0DB000, 0x0DBFFF, "Cryptotronix LLC", "CRYPTOTRONIX" }, { 0x70B3D5, 0x0DC000, 0x0DCFFF, "Talleres de Escoriaza", "TALLERES-DE-ESCORIAZA" }, { 0x70B3D5, 0x0DD000, 0x0DDFFF, "Shenzhen Virtual Clusters Information Technology Co.,Ltd.", "SHENZHEN-VIRTUAL-CLUSTERS-INFORMATION" }, { 0x70B3D5, 0x0DE000, 0x0DEFFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x70B3D5, 0x0DF000, 0x0DFFFF, "B.E.A. sa", "B-E-A" }, { 0x70B3D5, 0x0E0000, 0x0E0FFF, "PLCiS", "PLCIS" }, { 0x70B3D5, 0x0E1000, 0x0E1FFF, "MiWave Consulting, LLC", "MIWAVE-CONSULTING" }, { 0x70B3D5, 0x0E2000, 0x0E2FFF, "JESE Ltd", "JESE" }, { 0x70B3D5, 0x0E3000, 0x0E3FFF, "SinTau SrL", "SINTAU-SRL" }, { 0x70B3D5, 0x0E4000, 0x0E4FFF, "Walter Müller AG", "WALTER-MUELLER" }, { 0x70B3D5, 0x0E5000, 0x0E5FFF, "Delta Solutions LLC", "DELTA-SOLUTIONS" }, { 0x70B3D5, 0x0E6000, 0x0E6FFF, "Nasdaq", "NASDAQ" }, { 0x70B3D5, 0x0E7000, 0x0E7FFF, "Pure Air Filtration", "PURE-AIR-FILTRATION" }, { 0x70B3D5, 0x0E8000, 0x0E8FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x70B3D5, 0x0E9000, 0x0E9FFF, "VNT electronics s.r.o.", "VNT-ELECTRONICS-S-R-O" }, { 0x70B3D5, 0x0EA000, 0x0EAFFF, "AEV Broadcast Srl", "AEV-BROADCAST-SRL" }, { 0x70B3D5, 0x0EB000, 0x0EBFFF, "Tomahawk Robotics", "TOMAHAWK-ROBOTICS" }, { 0x70B3D5, 0x0EC000, 0x0ECFFF, "ACS MOTION CONTROL", "ACS-MOTION-CONTROL" }, { 0x70B3D5, 0x0ED000, 0x0EDFFF, "Lupa Tecnologia e Sistemas Ltda", "LUPA-TECNOLOGIA-E-SISTEMAS-LTDA" }, { 0x70B3D5, 0x0EE000, 0x0EEFFF, "Picture Elements, Inc.", "PICTURE-ELEMENTS" }, { 0x70B3D5, 0x0EF000, 0x0EFFFF, "Dextera Labs", "DEXTERA-LABS" }, { 0x70B3D5, 0x0F0000, 0x0F0FFF, "Avionica", "AVIONICA" }, { 0x70B3D5, 0x0F1000, 0x0F1FFF, "Beijing One City Science & Technology Co., LTD", "BEIJING-ONE-CITY-SCIENCE" }, { 0x70B3D5, 0x0F2000, 0x0F2FFF, "TrexEdge, Inc.", "TREXEDGE" }, { 0x70B3D5, 0x0F3000, 0x0F3FFF, "MonsoonRF, Inc.", "MONSOONRF" }, { 0x70B3D5, 0x0F4000, 0x0F4FFF, "Visual Robotics", "VISUAL-ROBOTICS" }, { 0x70B3D5, 0x0F5000, 0x0F5FFF, "Season Electronics Ltd", "SEASON-ELECTRONICS" }, { 0x70B3D5, 0x0F6000, 0x0F6FFF, "KSE GmbH", "KSE" }, { 0x70B3D5, 0x0F7000, 0x0F7FFF, "Bespoon", "BESPOON" }, { 0x70B3D5, 0x0F8000, 0x0F8FFF, "Special Services Group, LLC", "SPECIAL-SERVICES-GROUP" }, { 0x70B3D5, 0x0F9000, 0x0F9FFF, "OOO Research and Production Center Computer Technologies", "OOO-RESEARCH-AND-PRODUCTION-CENTER-TECHNOLOGIES" }, { 0x70B3D5, 0x0FA000, 0x0FAFFF, "InsideRF Co., Ltd.", "INSIDERF" }, { 0x70B3D5, 0x0FB000, 0x0FBFFF, "Cygnus LLC", "CYGNUS" }, { 0x70B3D5, 0x0FC000, 0x0FCFFF, "vitalcare", "VITALCARE" }, { 0x70B3D5, 0x0FD000, 0x0FDFFF, "JSC Ural Factories", "JSC-URAL-FACTORIES" }, { 0x70B3D5, 0x0FE000, 0x0FEFFF, "Vocality International Ltd", "VOCALITY" }, { 0x70B3D5, 0x0FF000, 0x0FFFFF, "INTERNET PROTOCOLO LOGICA SL", "INTERNET-PROTOCOLO-LOGICA-SL" }, { 0x70B3D5, 0x100000, 0x100FFF, "Gupsy GmbH", "GUPSY" }, { 0x70B3D5, 0x101000, 0x101FFF, "Adolf Nissen Elektrobau GmbH + Co. KG", "ADOLF-NISSEN-ELEKTROBAU" }, { 0x70B3D5, 0x102000, 0x102FFF, "Oxford Monitoring Solutions Ltd", "OXFORD-MONITORING-SOLUTIONS" }, { 0x70B3D5, 0x103000, 0x103FFF, "HANYOUNG NUX CO.,LTD", "HANYOUNG-NUX" }, { 0x70B3D5, 0x104000, 0x104FFF, "Plum sp. z o.o", "PLUM-SP-Z-O-O" }, { 0x70B3D5, 0x105000, 0x105FFF, "Beijing Nacao Technology Co., Ltd.", "BEIJING-NACAO" }, { 0x70B3D5, 0x106000, 0x106FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x107000, 0x107FFF, "OOO Alyans", "OOO-ALYANS" }, { 0x70B3D5, 0x108000, 0x108FFF, "TEX COMPUTER SRL", "TEX-SRL" }, { 0x70B3D5, 0x109000, 0x109FFF, "DiTEST Fahrzeugdiagnose GmbH", "DITEST-FAHRZEUGDIAGNOSE" }, { 0x70B3D5, 0x10A000, 0x10AFFF, "SEASON DESIGN TECHNOLOGY", "SEASON-DESIGN" }, { 0x70B3D5, 0x10B000, 0x10BFFF, "SECUREAN CO.,Ltd", "SECUREAN" }, { 0x70B3D5, 0x10C000, 0x10CFFF, "Vocality International Ltd", "VOCALITY" }, { 0x70B3D5, 0x10D000, 0x10DFFF, "CoreEL Technologies Pvt Ltd", "COREEL-TECHNOLOGIES-PVT" }, { 0x70B3D5, 0x10E000, 0x10EFFF, "Colorimetry Research, Inc", "COLORIMETRY-RESEARCH" }, { 0x70B3D5, 0x10F000, 0x10FFFF, "neQis", "NEQIS" }, { 0x70B3D5, 0x110000, 0x110FFF, "Orion Power Systems, Inc.", "ORION-POWER" }, { 0x70B3D5, 0x111000, 0x111FFF, "Leonardo Sistemi Integrati S.r.l.", "LEONARDO-SISTEMI-INTEGRATI" }, { 0x70B3D5, 0x112000, 0x112FFF, "DiTEST Fahrzeugdiagnose GmbH", "DITEST-FAHRZEUGDIAGNOSE" }, { 0x70B3D5, 0x113000, 0x113FFF, "iREA System Industry", "IREA-SYSTEM-INDUSTRY" }, { 0x70B3D5, 0x114000, 0x114FFF, "Project H Pty Ltd", "PROJECT-H-PTY" }, { 0x70B3D5, 0x115000, 0x115FFF, "Welltec Corp.", "WELLTEC" }, { 0x70B3D5, 0x116000, 0x116FFF, "Momentum Data Systems", "MOMENTUM-DATA" }, { 0x70B3D5, 0x117000, 0x117FFF, "SysCom Automationstechnik GmbH", "SYSCOM-AUTOMATIONSTECHNIK" }, { 0x70B3D5, 0x118000, 0x118FFF, "Macromatic Industrial Controls, Inc.", "MACROMATIC-INDUSTRIAL-CONTROLS" }, { 0x70B3D5, 0x119000, 0x119FFF, "YPP Corporation", "YPP" }, { 0x70B3D5, 0x11A000, 0x11AFFF, "Mahindra Electric Mobility Limited", "MAHINDRA-ELECTRIC-MOBILITY" }, { 0x70B3D5, 0x11B000, 0x11BFFF, "HoseoTelnet Inc...", "HOSEOTELNET" }, { 0x70B3D5, 0x11C000, 0x11CFFF, "Samriddi Automations Pvt. Ltd.", "SAMRIDDI-AUTOMATIONS-PVT" }, { 0x70B3D5, 0x11D000, 0x11DFFF, "Dakton Microlabs LLC", "DAKTON-MICROLABS" }, { 0x70B3D5, 0x11E000, 0x11EFFF, "KBPR LLC", "KBPR" }, { 0x70B3D5, 0x11F000, 0x11FFFF, "Geppetto Electronics", "GEPPETTO-ELECTRONICS" }, { 0x70B3D5, 0x120000, 0x120FFF, "GSP Sprachtechnologie GmbH", "GSP-SPRACHTECHNOLOGIE" }, { 0x70B3D5, 0x121000, 0x121FFF, "Shenzhen Luxurite Smart Home Ltd", "SHENZHEN-LUXURITE-SMART-HOME" }, { 0x70B3D5, 0x122000, 0x122FFF, "Henri Systems Holland bv", "HENRI-HOLLAND" }, { 0x70B3D5, 0x123000, 0x123FFF, "Amfitech ApS", "AMFITECH-APS" }, { 0x70B3D5, 0x124000, 0x124FFF, "Forschungs- und Transferzentrum Leipzig e.V.", "FORSCHUNGS-UND-TRANSFERZENTRUM-LEIPZIG" }, { 0x70B3D5, 0x125000, 0x125FFF, "Securolytics, Inc.", "SECUROLYTICS" }, { 0x70B3D5, 0x126000, 0x126FFF, "AddSecure Smart Grids", "ADDSECURE-SMART-GRIDS" }, { 0x70B3D5, 0x127000, 0x127FFF, "VITEC", "VITEC" }, { 0x70B3D5, 0x128000, 0x128FFF, "Akse srl", "AKSE-SRL" }, { 0x70B3D5, 0x129000, 0x129FFF, "OOO Microlink-Svyaz", "OOO-MICROLINK-SVYAZ" }, { 0x70B3D5, 0x12A000, 0x12AFFF, "Elvys s.r.o", "ELVYS-S-R-O" }, { 0x70B3D5, 0x12B000, 0x12BFFF, "RIC Electronics", "RIC-ELECTRONICS" }, { 0x70B3D5, 0x12C000, 0x12CFFF, "CIELLE S.R.L.", "CIELLE" }, { 0x70B3D5, 0x12D000, 0x12DFFF, "S.E.I. CO.,LTD.", "S-E-I" }, { 0x70B3D5, 0x12E000, 0x12EFFF, "GreenFlux", "GREENFLUX" }, { 0x70B3D5, 0x12F000, 0x12FFFF, "DSP4YOU LTd", "DSP4YOU" }, { 0x70B3D5, 0x130000, 0x130FFF, "MG s.r.l.", "MG" }, { 0x70B3D5, 0x131000, 0x131FFF, "Inova Design Solutions Ltd", "INOVA-DESIGN-SOLUTIONS" }, { 0x70B3D5, 0x132000, 0x132FFF, "Hagenuk KMT Kabelmesstechnik GmbH", "HAGENUK-KMT-KABELMESSTECHNIK" }, { 0x70B3D5, 0x133000, 0x133FFF, "Vidisys GmbH", "VIDISYS" }, { 0x70B3D5, 0x134000, 0x134FFF, "Conjing Networks Inc.", "CONJING-NETWORKS" }, { 0x70B3D5, 0x135000, 0x135FFF, "DORLET SAU", "DORLET-SAU" }, { 0x70B3D5, 0x136000, 0x136FFF, "Miguel Corporate Services Pte Ltd", "MIGUEL-CORPORATE-SERVICES-PTE" }, { 0x70B3D5, 0x137000, 0x137FFF, "Subject Link Inc", "SUBJECT-LINK" }, { 0x70B3D5, 0x138000, 0x138FFF, "SMITEC S.p.A.", "SMITEC" }, { 0x70B3D5, 0x139000, 0x139FFF, "Tunstall A/S", "TUNSTALL-A/S" }, { 0x70B3D5, 0x13A000, 0x13AFFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0x13B000, 0x13BFFF, "Sienna Corporation", "SIENNA" }, { 0x70B3D5, 0x13C000, 0x13CFFF, "Detec Systems Ltd", "DETEC" }, { 0x70B3D5, 0x13D000, 0x13DFFF, "Elsist Srl", "ELSIST-SRL" }, { 0x70B3D5, 0x13E000, 0x13EFFF, "Stara S/A Indústria de Implementos Agrícolas", "STARA-S/A-INDSTRIA-DE-IMPLEMENTOS-AGRCOLAS" }, { 0x70B3D5, 0x13F000, 0x13FFFF, "Farmobile, LLC", "FARMOBILE" }, { 0x70B3D5, 0x140000, 0x140FFF, "Virta Laboratories, Inc.", "VIRTA-LABORATORIES" }, { 0x70B3D5, 0x141000, 0x141FFF, "M.T. S.R.L.", "M-T" }, { 0x70B3D5, 0x142000, 0x142FFF, "DAVE SRL", "DAVE-SRL" }, { 0x70B3D5, 0x143000, 0x143FFF, "A & T Technologies", "A-T-TECHNOLOGIES" }, { 0x70B3D5, 0x144000, 0x144FFF, "GS Elektromedizinsiche Geräte G. Stemple GmbH", "GS-ELEKTROMEDIZINSICHE-GERAETE-G-STEMPLE" }, { 0x70B3D5, 0x145000, 0x145FFF, "Sicon srl", "SICON-SRL" }, { 0x70B3D5, 0x146000, 0x146FFF, "3City Electronics", "3CITY-ELECTRONICS" }, { 0x70B3D5, 0x147000, 0x147FFF, "ROMO Wind A/S", "ROMO-WIND-A/S" }, { 0x70B3D5, 0x148000, 0x148FFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x70B3D5, 0x149000, 0x149FFF, "eleven-x", "ELEVEN-X" }, { 0x70B3D5, 0x14A000, 0x14AFFF, "ExSens Technology (Pty) Ltd.", "EXSENS-PTY" }, { 0x70B3D5, 0x14B000, 0x14BFFF, "C21 Systems Ltd", "C21" }, { 0x70B3D5, 0x14C000, 0x14CFFF, "CRDE", "CRDE" }, { 0x70B3D5, 0x14D000, 0x14DFFF, "2-Observe", "2-OBSERVE" }, { 0x70B3D5, 0x14E000, 0x14EFFF, "Innosonix GmbH", "INNOSONIX" }, { 0x70B3D5, 0x14F000, 0x14FFFF, "Mobile Devices Unlimited", "MOBILE-DEVICES-UNLIMITED" }, { 0x70B3D5, 0x150000, 0x150FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0x151000, 0x151FFF, "Virsae Group Ltd", "VIRSAE-GROUP" }, { 0x70B3D5, 0x152000, 0x152FFF, "Xped Corporation Pty Ltd", "XPED-PTY" }, { 0x70B3D5, 0x153000, 0x153FFF, "Schneider Electric Motion USA", "SCHNEIDER-ELECTRIC-MOTION-USA" }, { 0x70B3D5, 0x154000, 0x154FFF, "Walk Horizon Technology (Beijing) Co., Ltd.", "WALK-HORIZON-BEIJING" }, { 0x70B3D5, 0x155000, 0x155FFF, "Sanwa New Tec Co.,Ltd", "SANWA-NEW-TEC" }, { 0x70B3D5, 0x156000, 0x156FFF, "Rivercity Innovations Ltd.", "RIVERCITY-INNOVATIONS" }, { 0x70B3D5, 0x157000, 0x157FFF, "Shanghai Jupper Technology Co.Ltd", "SHANGHAI-JUPPER" }, { 0x70B3D5, 0x158000, 0x158FFF, "EAX Labs s.r.o.", "EAX-LABS-S-R-O" }, { 0x70B3D5, 0x159000, 0x159FFF, "RCH Vietnam Limited Liability Company", "RCH-VIETNAM-LIABILITY-COMPANY" }, { 0x70B3D5, 0x15A000, 0x15AFFF, "ENABLER LTD.", "ENABLER" }, { 0x70B3D5, 0x15B000, 0x15BFFF, "Armstrong International, Inc.", "ARMSTRONG" }, { 0x70B3D5, 0x15C000, 0x15CFFF, "Woods Hole Oceanographic Institution", "WOODS-HOLE-OCEANOGRAPHIC-INSTITUTION" }, { 0x70B3D5, 0x15D000, 0x15DFFF, "Vtron Pty Ltd", "VTRON-PTY" }, { 0x70B3D5, 0x15E000, 0x15EFFF, "Season Electronics Ltd", "SEASON-ELECTRONICS" }, { 0x70B3D5, 0x15F000, 0x15FFFF, "SAVRONİK ELEKTRONİK", "SAVRONK-ELEKTRONK" }, { 0x70B3D5, 0x160000, 0x160FFF, "European Synchrotron Radiation Facility", "EUROPEAN-SYNCHROTRON-RADIATION-FACILITY" }, { 0x70B3D5, 0x161000, 0x161FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x162000, 0x162FFF, "ESPAI DE PRODUCCIÓ I ELECTRÓNI", "ESPAI-DE-PRODUCCI-I-ELECTRNI" }, { 0x70B3D5, 0x163000, 0x163FFF, "BHARAT HEAVY ELECTRICALS LIMITED", "BHARAT-HEAVY-ELECTRICALS" }, { 0x70B3D5, 0x164000, 0x164FFF, "Tokyo Drawing Ltd.", "TOKYO-DRAWING" }, { 0x70B3D5, 0x165000, 0x165FFF, "Wuhan Xingtuxinke ELectronic Co.,Ltd", "WUHAN-XINGTUXINKE" }, { 0x70B3D5, 0x166000, 0x166FFF, "SERIAL IMAGE INC.", "SERIAL-IMAGE" }, { 0x70B3D5, 0x167000, 0x167FFF, "Eiden Co.,Ltd.", "EIDEN" }, { 0x70B3D5, 0x168000, 0x168FFF, "Biwave Technologies, Inc.", "BIWAVE-TECHNOLOGIES" }, { 0x70B3D5, 0x169000, 0x169FFF, "Service Plus LLC", "SERVICE-PLUS" }, { 0x70B3D5, 0x16A000, 0x16AFFF, "4Jtech s.r.o.", "4JTECH-S-R-O" }, { 0x70B3D5, 0x16B000, 0x16BFFF, "IOT Engineering", "IOT-ENGINEERING" }, { 0x70B3D5, 0x16C000, 0x16CFFF, "OCEAN", "OCEAN" }, { 0x70B3D5, 0x16D000, 0x16DFFF, "BluB0X Security, Inc.", "BLUB0X-SECURITY" }, { 0x70B3D5, 0x16E000, 0x16EFFF, "Jemac Sweden AB", "JEMAC-SWEDEN-AB" }, { 0x70B3D5, 0x16F000, 0x16FFFF, "NimbeLink Corp", "NIMBELINK" }, { 0x70B3D5, 0x170000, 0x170FFF, "Mutelcor GmbH", "MUTELCOR" }, { 0x70B3D5, 0x171000, 0x171FFF, "Aetina Corporation", "AETINA" }, { 0x70B3D5, 0x172000, 0x172FFF, "LumiGrow, Inc", "LUMIGROW" }, { 0x70B3D5, 0x173000, 0x173FFF, "National TeleConsultants LLC", "NATIONAL-TELECONSULTANTS" }, { 0x70B3D5, 0x174000, 0x174FFF, "Carlson Wireless Technologies Inc.", "CARLSON-WIRELESS-TECHNOLOGIES" }, { 0x70B3D5, 0x175000, 0x175FFF, "Akribis Systems", "AKRIBIS" }, { 0x70B3D5, 0x176000, 0x176FFF, "Larraioz Elektronika", "LARRAIOZ-ELEKTRONIKA" }, { 0x70B3D5, 0x177000, 0x177FFF, "Wired Broadcast Ltd", "WIRED-BROADCAST" }, { 0x70B3D5, 0x178000, 0x178FFF, "Gamber Johnson-LLC", "GAMBER-JOHNSON" }, { 0x70B3D5, 0x179000, 0x179FFF, "ALTRAN UK", "ALTRAN-UK" }, { 0x70B3D5, 0x17A000, 0x17AFFF, "Gencoa Ltd", "GENCOA" }, { 0x70B3D5, 0x17B000, 0x17BFFF, "Vistec Electron Beam GmbH", "VISTEC-ELECTRON-BEAM" }, { 0x70B3D5, 0x17C000, 0x17CFFF, "Farmpro Ltd", "FARMPRO" }, { 0x70B3D5, 0x17D000, 0x17DFFF, "Entech Electronics", "ENTECH-ELECTRONICS" }, { 0x70B3D5, 0x17E000, 0x17EFFF, "OCULI VISION", "OCULI-VISION" }, { 0x70B3D5, 0x17F000, 0x17FFFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x180000, 0x180FFF, "LHA Systems (Pty) Ltd", "LHA-PTY" }, { 0x70B3D5, 0x181000, 0x181FFF, "Task Sistemas", "TASK-SISTEMAS" }, { 0x70B3D5, 0x182000, 0x182FFF, "Kitron UAB", "KITRON-UAB" }, { 0x70B3D5, 0x183000, 0x183FFF, "Evco S.p.a.", "EVCO" }, { 0x70B3D5, 0x184000, 0x184FFF, "XV360 Optical Information Systems Ltd.", "XV360-OPTICAL-INFORMATION" }, { 0x70B3D5, 0x185000, 0x185FFF, "R&D Gran-System-S LLC", "R-D-GRAN-SYSTEM-S" }, { 0x70B3D5, 0x186000, 0x186FFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x70B3D5, 0x187000, 0x187FFF, "Elektronik & Präzisionsbau Saalfeld GmbH", "ELEKTRONIK-PRAEZISIONSBAU-SAALFELD" }, { 0x70B3D5, 0x188000, 0x188FFF, "Birket Engineering", "BIRKET-ENGINEERING" }, { 0x70B3D5, 0x189000, 0x189FFF, "DAVE SRL", "DAVE-SRL" }, { 0x70B3D5, 0x18A000, 0x18AFFF, "NSP Europe Ltd", "NSP-EUROPE" }, { 0x70B3D5, 0x18B000, 0x18BFFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x18C000, 0x18CFFF, "CMC Industrial Electronics Ltd", "CMC-INDUSTRIAL-ELECTRONICS" }, { 0x70B3D5, 0x18D000, 0x18DFFF, "Foro Tel", "FORO-TEL" }, { 0x70B3D5, 0x18E000, 0x18EFFF, "NIPPON SEIKI CO., LTD.", "NIPPON-SEIKI" }, { 0x70B3D5, 0x18F000, 0x18FFFF, "Newtec A/S", "NEWTEC-A/S" }, { 0x70B3D5, 0x190000, 0x190FFF, "Fantom Wireless, Inc.", "FANTOM-WIRELESS" }, { 0x70B3D5, 0x191000, 0x191FFF, "Algodue Elettronica Srl", "ALGODUE-ELETTRONICA-SRL" }, { 0x70B3D5, 0x192000, 0x192FFF, "ASPT, INC.", "ASPT" }, { 0x70B3D5, 0x193000, 0x193FFF, "ERA TOYS LIMITED", "ERA-TOYS" }, { 0x70B3D5, 0x194000, 0x194FFF, "Husty M.Styczen J.Hupert Sp.J.", "HUSTY-M-STYCZEN-J-HUPERT-SP-J" }, { 0x70B3D5, 0x195000, 0x195FFF, "Ci4Rail", "CI4RAIL" }, { 0x70B3D5, 0x196000, 0x196FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0x197000, 0x197FFF, "Lattech Systems Pty Ltd", "LATTECH-PTY" }, { 0x70B3D5, 0x198000, 0x198FFF, "Beijing Muniulinghang Technology Co., Ltd", "BEIJING-MUNIULINGHANG" }, { 0x70B3D5, 0x199000, 0x199FFF, "Smart Controls LLC", "SMART-CONTROLS" }, { 0x70B3D5, 0x19A000, 0x19AFFF, "WiSuite USA", "WISUITE-USA" }, { 0x70B3D5, 0x19B000, 0x19BFFF, "Global Technical Systems", "GLOBAL-TECHNICAL" }, { 0x70B3D5, 0x19C000, 0x19CFFF, "Kubu, Inc.", "KUBU" }, { 0x70B3D5, 0x19D000, 0x19DFFF, "Automata GmbH & Co. KG", "AUTOMATA" }, { 0x70B3D5, 0x19E000, 0x19EFFF, "J-Factor Embedded Technologies", "J-FACTOR-EMBEDDED-TECHNOLOGIES" }, { 0x70B3D5, 0x19F000, 0x19FFFF, "Koizumi Lighting Technology Corp.", "KOIZUMI-LIGHTING" }, { 0x70B3D5, 0x1A0000, 0x1A0FFF, "UFATECH LTD", "UFATECH" }, { 0x70B3D5, 0x1A1000, 0x1A1FFF, "HMicro Inc", "HMICRO" }, { 0x70B3D5, 0x1A2000, 0x1A2FFF, "Xirgo Technologies LLC", "XIRGO-TECHNOLOGIES" }, { 0x70B3D5, 0x1A3000, 0x1A3FFF, "Telairity Semiconductor", "TELAIRITY-SEMICONDUCTOR" }, { 0x70B3D5, 0x1A4000, 0x1A4FFF, "DAVEY BICKFORD", "DAVEY-BICKFORD" }, { 0x70B3D5, 0x1A5000, 0x1A5FFF, "METRONIC APARATURA KONTROLNO - POMIAROWA", "METRONIC-APARATURA-KONTROLNO-POMIAROWA" }, { 0x70B3D5, 0x1A6000, 0x1A6FFF, "Robotelf Technologies (Chengdu) Co., Ltd.", "ROBOTELF-TECHNOLOGIES-CHENGDU" }, { 0x70B3D5, 0x1A7000, 0x1A7FFF, "Elk Solutions, LLC", "ELK-SOLUTIONS" }, { 0x70B3D5, 0x1A8000, 0x1A8FFF, "STC Rainbow Ltd.", "STC-RAINBOW" }, { 0x70B3D5, 0x1A9000, 0x1A9FFF, "OCEANIX INC.", "OCEANIX" }, { 0x70B3D5, 0x1AA000, 0x1AAFFF, "Echo Ridge, LLC", "ECHO-RIDGE" }, { 0x70B3D5, 0x1AB000, 0x1ABFFF, "Access Control Systems JSC", "ACCESS-CONTROL-JSC" }, { 0x70B3D5, 0x1AC000, 0x1ACFFF, "SVP Broadcast Microwave S.L.", "SVP-BROADCAST-MICROWAVE" }, { 0x70B3D5, 0x1AD000, 0x1ADFFF, "Techworld Industries Ltd", "TECHWORLD-INDUSTRIES" }, { 0x70B3D5, 0x1AE000, 0x1AEFFF, "EcoG", "ECOG" }, { 0x70B3D5, 0x1AF000, 0x1AFFFF, "Teenage Engineering AB", "TEENAGE-ENGINEERING-AB" }, { 0x70B3D5, 0x1B0000, 0x1B0FFF, "NAL Research Corporation", "NAL-RESEARCH" }, { 0x70B3D5, 0x1B1000, 0x1B1FFF, "Shanghai Danyan Information Technology Co., Ltd.", "SHANGHAI-DANYAN-INFORMATION" }, { 0x70B3D5, 0x1B2000, 0x1B2FFF, "Cavagna Group Spa", "CAVAGNA-GROUP-SPA" }, { 0x70B3D5, 0x1B3000, 0x1B3FFF, "Graphcore Ltd", "GRAPHCORE" }, { 0x70B3D5, 0x1B4000, 0x1B4FFF, "5nines", "5NINES" }, { 0x70B3D5, 0x1B5000, 0x1B5FFF, "StarBridge, Inc.", "STARBRIDGE" }, { 0x70B3D5, 0x1B6000, 0x1B6FFF, "DACOM West GmbH", "DACOM-WEST" }, { 0x70B3D5, 0x1B7000, 0x1B7FFF, "ULSee Inc", "ULSEE" }, { 0x70B3D5, 0x1B8000, 0x1B8FFF, "OES Inc.", "OES" }, { 0x70B3D5, 0x1B9000, 0x1B9FFF, "RELISTE Ges.m.b.H.", "RELISTE-GES-M-B-H" }, { 0x70B3D5, 0x1BA000, 0x1BAFFF, "Guan Show Technologe Co., Ltd.", "GUAN-SHOW-TECHNOLOGE" }, { 0x70B3D5, 0x1BB000, 0x1BBFFF, "EFENTO T P SZYDŁOWSKI K ZARĘBA SPÓŁKA JAWNA", "EFENTO-T-P-SZYDOWSKI-K-ZARBA-SPKA-JAWNA" }, { 0x70B3D5, 0x1BC000, 0x1BCFFF, "Flextronics International Kft", "FLEXTRONICS-KFT" }, { 0x70B3D5, 0x1BD000, 0x1BDFFF, "Shenzhen Siera Technology Ltd", "SHENZHEN-SIERA" }, { 0x70B3D5, 0x1BE000, 0x1BEFFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x70B3D5, 0x1BF000, 0x1BFFFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0x1C0000, 0x1C0FFF, "W. H. Leary Co., Inc.", "W-H-LEARY" }, { 0x70B3D5, 0x1C1000, 0x1C1FFF, "Sphere of economical technologies Ltd", "SPHERE-OF-ECONOMICAL-TECHNOLOGIES" }, { 0x70B3D5, 0x1C2000, 0x1C2FFF, "CENSIS, Uiversity of Glasgow", "CENSIS-UIVERSITY-OF-GLASGOW" }, { 0x70B3D5, 0x1C3000, 0x1C3FFF, "Shanghai Tiancheng Communication Technology Corporation", "SHANGHAI-TIANCHENG-COMMUNICATION" }, { 0x70B3D5, 0x1C4000, 0x1C4FFF, "Smeg S.p.A.", "SMEG" }, { 0x70B3D5, 0x1C5000, 0x1C5FFF, "ELSAG", "ELSAG" }, { 0x70B3D5, 0x1C6000, 0x1C6FFF, "Bita-International Co., Ltd.", "BITA" }, { 0x70B3D5, 0x1C7000, 0x1C7FFF, "Hoshin Electronics Co., Ltd.", "HOSHIN-ELECTRONICS" }, { 0x70B3D5, 0x1C8000, 0x1C8FFF, "LDA audio video profesional S.L.", "LDA-AUDIO-VIDEO-PROFESIONAL" }, { 0x70B3D5, 0x1C9000, 0x1C9FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x1CA000, 0x1CAFFF, "inomatic GmbH", "INOMATIC" }, { 0x70B3D5, 0x1CB000, 0x1CBFFF, "MatchX GmbH", "MATCHX" }, { 0x70B3D5, 0x1CC000, 0x1CCFFF, "AooGee Controls Co., LTD.", "AOOGEE-CONTROLS" }, { 0x70B3D5, 0x1CD000, 0x1CDFFF, "ELEUSI GmbH", "ELEUSI" }, { 0x70B3D5, 0x1CE000, 0x1CEFFF, "Clear Flow by Antiference", "CLEAR-FLOW-BY-ANTIFERENCE" }, { 0x70B3D5, 0x1CF000, 0x1CFFFF, "Dalcnet srl", "DALCNET-SRL" }, { 0x70B3D5, 0x1D0000, 0x1D0FFF, "Shenzhen INVT Electric Co.,Ltd", "SHENZHEN-INVT-ELECTRIC" }, { 0x70B3D5, 0x1D1000, 0x1D1FFF, "Eurotek Srl", "EUROTEK-SRL" }, { 0x70B3D5, 0x1D2000, 0x1D2FFF, "Xacti Corporation", "XACTI" }, { 0x70B3D5, 0x1D3000, 0x1D3FFF, "AIROBOT OÜ", "AIROBOT-OUE" }, { 0x70B3D5, 0x1D4000, 0x1D4FFF, "Brinkmann Audio GmbH", "BRINKMANN-AUDIO" }, { 0x70B3D5, 0x1D5000, 0x1D5FFF, "MIVO Technology AB", "MIVO-AB" }, { 0x70B3D5, 0x1D6000, 0x1D6FFF, "MacGray Services", "MACGRAY-SERVICES" }, { 0x70B3D5, 0x1D7000, 0x1D7FFF, "BAE Systems Apllied Intelligence", "BAE-APLLIED-INTELLIGENCE" }, { 0x70B3D5, 0x1D8000, 0x1D8FFF, "Blue Skies Global LLC", "BLUE-SKIES-GLOBAL" }, { 0x70B3D5, 0x1D9000, 0x1D9FFF, "MondeF", "MONDEF" }, { 0x70B3D5, 0x1DA000, 0x1DAFFF, "Promess Inc.", "PROMESS" }, { 0x70B3D5, 0x1DB000, 0x1DBFFF, "Hudson Robotics", "HUDSON-ROBOTICS" }, { 0x70B3D5, 0x1DC000, 0x1DCFFF, "TEKVEL Ltd.", "TEKVEL" }, { 0x70B3D5, 0x1DD000, 0x1DDFFF, "RF CREATIONS LTD", "RF-CREATIONS" }, { 0x70B3D5, 0x1DE000, 0x1DEFFF, "DYCEC, S.A.", "DYCEC" }, { 0x70B3D5, 0x1DF000, 0x1DFFFF, "ENTEC Electric & Electronic Co., LTD.", "ENTEC-ELECTRIC" }, { 0x70B3D5, 0x1E0000, 0x1E0FFF, "TOPROOTTechnology Corp. Ltd.", "TOPROOTTECHNOLOGY" }, { 0x70B3D5, 0x1E1000, 0x1E1FFF, "TEX COMPUTER SRL", "TEX-SRL" }, { 0x70B3D5, 0x1E2000, 0x1E2FFF, "Shenzhen CAMERAY ELECTRONIC CO., LTD", "SHENZHEN-CAMERAY" }, { 0x70B3D5, 0x1E3000, 0x1E3FFF, "Hatel Elektronik LTD. STI.", "HATEL-ELEKTRONIK-STI" }, { 0x70B3D5, 0x1E4000, 0x1E4FFF, "Tecnologix s.r.l.", "TECNOLOGIX" }, { 0x70B3D5, 0x1E5000, 0x1E5FFF, "VendNovation LLC", "VENDNOVATION" }, { 0x70B3D5, 0x1E6000, 0x1E6FFF, "Sanmina Israel", "SANMINA-ISRAEL" }, { 0x70B3D5, 0x1E7000, 0x1E7FFF, "DogWatch Inc", "DOGWATCH" }, { 0x70B3D5, 0x1E8000, 0x1E8FFF, "Gogo BA", "GOGO-BA" }, { 0x70B3D5, 0x1E9000, 0x1E9FFF, "comtime GmbH", "COMTIME" }, { 0x70B3D5, 0x1EA000, 0x1EAFFF, "Sense For Innovation", "SENSE-FOR-INNOVATION" }, { 0x70B3D5, 0x1EB000, 0x1EBFFF, "Xavant", "XAVANT" }, { 0x70B3D5, 0x1EC000, 0x1ECFFF, "Cherry Labs, Inc.", "CHERRY-LABS" }, { 0x70B3D5, 0x1ED000, 0x1EDFFF, "SUS Corporation", "SUS" }, { 0x70B3D5, 0x1EE000, 0x1EEFFF, "MEGGITT", "MEGGITT" }, { 0x70B3D5, 0x1EF000, 0x1EFFFF, "ADTEK", "ADTEK" }, { 0x70B3D5, 0x1F0000, 0x1F0FFF, "Harmonic Design GmbH", "HARMONIC-DESIGN" }, { 0x70B3D5, 0x1F1000, 0x1F1FFF, "DIEHL Connectivity Solutions", "DIEHL-CONNECTIVITY-SOLUTIONS" }, { 0x70B3D5, 0x1F2000, 0x1F2FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0x1F3000, 0x1F3FFF, "Smart Energy Code Company Limited", "SMART-ENERGY-CODE-COMPANY" }, { 0x70B3D5, 0x1F4000, 0x1F4FFF, "Hangzhou Woosiyuan Communication Co.,Ltd.", "HANGZHOU-WOOSIYUAN-COMMUNICATION" }, { 0x70B3D5, 0x1F5000, 0x1F5FFF, "Martec S.p.A.", "MARTEC" }, { 0x70B3D5, 0x1F6000, 0x1F6FFF, "LinkAV Technology Co., Ltd", "LINKAV" }, { 0x70B3D5, 0x1F7000, 0x1F7FFF, "Morgan Schaffer Inc.", "MORGAN-SCHAFFER" }, { 0x70B3D5, 0x1F8000, 0x1F8FFF, "Convergent Design", "CONVERGENT-DESIGN" }, { 0x70B3D5, 0x1F9000, 0x1F9FFF, "Automata GmbH & Co. KG", "AUTOMATA" }, { 0x70B3D5, 0x1FA000, 0x1FAFFF, "EBZ SysTec GmbH", "EBZ-SYSTEC" }, { 0x70B3D5, 0x1FB000, 0x1FBFFF, "Crane-elec. Co., LTD.", "CRANE-ELEC" }, { 0x70B3D5, 0x1FC000, 0x1FCFFF, "Guan Show Technologe Co., Ltd.", "GUAN-SHOW-TECHNOLOGE" }, { 0x70B3D5, 0x1FD000, 0x1FDFFF, "BRS Sistemas Eletrônicos", "BRS-SISTEMAS-ELETRNICOS" }, { 0x70B3D5, 0x1FE000, 0x1FEFFF, "MobiPromo", "MOBIPROMO" }, { 0x70B3D5, 0x1FF000, 0x1FFFFF, "Audiodo AB", "AUDIODO-AB" }, { 0x70B3D5, 0x200000, 0x200FFF, "NextEV Co., Ltd.", "NEXTEV" }, { 0x70B3D5, 0x201000, 0x201FFF, "Leontech Limited", "LEONTECH" }, { 0x70B3D5, 0x202000, 0x202FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0x203000, 0x203FFF, "WOOJIN Inc", "WOOJIN" }, { 0x70B3D5, 0x204000, 0x204FFF, "TWC", "TWC" }, { 0x70B3D5, 0x205000, 0x205FFF, "Esource Srl", "ESOURCE-SRL" }, { 0x70B3D5, 0x206000, 0x206FFF, "ard sa", "ARD" }, { 0x70B3D5, 0x207000, 0x207FFF, "Savari Inc", "SAVARI" }, { 0x70B3D5, 0x208000, 0x208FFF, "DSP DESIGN LTD", "DSP-DESIGN" }, { 0x70B3D5, 0x209000, 0x209FFF, "SmartNodes", "SMARTNODES" }, { 0x70B3D5, 0x20A000, 0x20AFFF, "Golden Grid Systems", "GOLDEN-GRID" }, { 0x70B3D5, 0x20B000, 0x20BFFF, "KST technology", "KST" }, { 0x70B3D5, 0x20C000, 0x20CFFF, "Siemens Healthcare Diagnostics", "SIEMENS-HEALTHCARE-DIAGNOSTICS" }, { 0x70B3D5, 0x20D000, 0x20DFFF, "Engage Technologies", "ENGAGE-TECHNOLOGIES" }, { 0x70B3D5, 0x20E000, 0x20EFFF, "Amrehn & Partner EDV-Service GmbH", "AMREHN-PARTNER-EDV-SERVICE" }, { 0x70B3D5, 0x20F000, 0x20FFFF, "Tieline Research Pty Ltd", "TIELINE-RESEARCH-PTY" }, { 0x70B3D5, 0x210000, 0x210FFF, "Eastone Century Technology Co.,Ltd.", "EASTONE-CENTURY" }, { 0x70B3D5, 0x211000, 0x211FFF, "Fracarro srl", "FRACARRO-SRL" }, { 0x70B3D5, 0x212000, 0x212FFF, "Semiconsoft, inc", "SEMICONSOFT" }, { 0x70B3D5, 0x213000, 0x213FFF, "ETON Deutschland Electro Acoustic GmbH", "ETON-DEUTSCHLAND-ELECTRO-ACOUSTIC" }, { 0x70B3D5, 0x214000, 0x214FFF, "signalparser", "SIGNALPARSER" }, { 0x70B3D5, 0x215000, 0x215FFF, "Dataspeed Inc", "DATASPEED" }, { 0x70B3D5, 0x216000, 0x216FFF, "FLEXTRONICS", "FLEXTRONICS" }, { 0x70B3D5, 0x217000, 0x217FFF, "Tecnint HTE SRL", "TECNINT-HTE-SRL" }, { 0x70B3D5, 0x218000, 0x218FFF, "Gremesh.com", "GREMESH-COM" }, { 0x70B3D5, 0x219000, 0x219FFF, "D-E-K GmbH & Co.KG", "D-E-K" }, { 0x70B3D5, 0x21A000, 0x21AFFF, "Acutronic Link Robotics AG", "ACUTRONIC-LINK-ROBOTICS" }, { 0x70B3D5, 0x21B000, 0x21BFFF, "Lab241 Co.,Ltd.", "LAB241" }, { 0x70B3D5, 0x21C000, 0x21CFFF, "Enyx SA", "ENYX" }, { 0x70B3D5, 0x21D000, 0x21DFFF, "iRF - Intelligent RF Solutions, LLC", "IRF-INTELLIGENT-RF-SOLUTIONS" }, { 0x70B3D5, 0x21E000, 0x21EFFF, "Hildebrand Technology Limited", "HILDEBRAND" }, { 0x70B3D5, 0x21F000, 0x21FFFF, "CHRONOMEDIA", "CHRONOMEDIA" }, { 0x70B3D5, 0x220000, 0x220FFF, "Private", "PRIVATE" }, { 0x70B3D5, 0x221000, 0x221FFF, "LX Design House", "LX-DESIGN-HOUSE" }, { 0x70B3D5, 0x222000, 0x222FFF, "Marioff Corporation Oy", "MARIOFF-OY" }, { 0x70B3D5, 0x223000, 0x223FFF, "Research Laboratory of Design Automation, Ltd.", "RESEARCH-LABORATORY-OF-DESIGN-AUTOMATION" }, { 0x70B3D5, 0x224000, 0x224FFF, "Urbana Smart Solutions Pte Ltd", "URBANA-SMART-SOLUTIONS-PTE" }, { 0x70B3D5, 0x225000, 0x225FFF, "RCD Radiokomunikace", "RCD-RADIOKOMUNIKACE" }, { 0x70B3D5, 0x226000, 0x226FFF, "Yaviar LLC", "YAVIAR" }, { 0x70B3D5, 0x227000, 0x227FFF, "Montalvo", "MONTALVO" }, { 0x70B3D5, 0x228000, 0x228FFF, "HEITEC AG", "HEITEC" }, { 0x70B3D5, 0x229000, 0x229FFF, "CONTROL SYSTEMS Srl", "CONTROL-SRL" }, { 0x70B3D5, 0x22A000, 0x22AFFF, "Shishido Electrostatic, Ltd.", "SHISHIDO-ELECTROSTATIC" }, { 0x70B3D5, 0x22B000, 0x22BFFF, "VITEC", "VITEC" }, { 0x70B3D5, 0x22C000, 0x22CFFF, "Hiquel Elektronik- und Anlagenbau GmbH", "HIQUEL-ELEKTRONIK-UND-ANLAGENBAU" }, { 0x70B3D5, 0x22D000, 0x22DFFF, "Leder Elektronik Design", "LEDER-ELEKTRONIK-DESIGN" }, { 0x70B3D5, 0x22E000, 0x22EFFF, "Private", "PRIVATE" }, { 0x70B3D5, 0x22F000, 0x22FFFF, "Instec, Inc.", "INSTEC" }, { 0x70B3D5, 0x230000, 0x230FFF, "CT Company", "CT-COMPANY" }, { 0x70B3D5, 0x231000, 0x231FFF, "DELTA TAU DATA SYSTEMS, INC.", "DELTA-TAU-DATA" }, { 0x70B3D5, 0x232000, 0x232FFF, "UCONSYS", "UCONSYS" }, { 0x70B3D5, 0x233000, 0x233FFF, "RCH Vietnam Limited Liability Company", "RCH-VIETNAM-LIABILITY-COMPANY" }, { 0x70B3D5, 0x234000, 0x234FFF, "EDFelectronics JRMM Sp z o.o. sp.k.", "EDFELECTRONICS-JRMM-SP-Z-O-O-SP-K" }, { 0x70B3D5, 0x235000, 0x235FFF, "CAMEON S.A.", "CAMEON" }, { 0x70B3D5, 0x236000, 0x236FFF, "Monnit Corporation", "MONNIT" }, { 0x70B3D5, 0x237000, 0x237FFF, "Sikom AS", "SIKOM-AS" }, { 0x70B3D5, 0x238000, 0x238FFF, "Arete Associates", "ARETE-ASSOCIATES" }, { 0x70B3D5, 0x239000, 0x239FFF, "Applied Silver", "APPLIED-SILVER" }, { 0x70B3D5, 0x23A000, 0x23AFFF, "Mesa Labs, Inc.", "MESA-LABS" }, { 0x70B3D5, 0x23B000, 0x23BFFF, "Fink Telecom Services", "FINK-TELECOM-SERVICES" }, { 0x70B3D5, 0x23C000, 0x23CFFF, "Quasonix, LLC", "QUASONIX" }, { 0x70B3D5, 0x23D000, 0x23DFFF, "Circle Consult ApS", "CIRCLE-CONSULT-APS" }, { 0x70B3D5, 0x23E000, 0x23EFFF, "Tornado Modular Systems", "TORNADO-MODULAR" }, { 0x70B3D5, 0x23F000, 0x23FFFF, "ETA-USA", "ETA-USA" }, { 0x70B3D5, 0x240000, 0x240FFF, "Orlaco Products B.V.", "ORLACO-PRODUCTS-B-V" }, { 0x70B3D5, 0x241000, 0x241FFF, "Bolide Technology Group, Inc.", "BOLIDE-GROUP" }, { 0x70B3D5, 0x242000, 0x242FFF, "Comeo Technology Co.,Ltd", "COMEO" }, { 0x70B3D5, 0x243000, 0x243FFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x70B3D5, 0x244000, 0x244FFF, "DAT Informatics Pvt Ltd", "DAT-INFORMATICS-PVT" }, { 0x70B3D5, 0x245000, 0x245FFF, "Newtec A/S", "NEWTEC-A/S" }, { 0x70B3D5, 0x246000, 0x246FFF, "Saline Lectronics, Inc.", "SALINE-LECTRONICS" }, { 0x70B3D5, 0x247000, 0x247FFF, "Satsky Communication Equipment Co.,Ltd.", "SATSKY-COMMUNICATION-EQUIPMENT" }, { 0x70B3D5, 0x248000, 0x248FFF, "GL TECH CO.,LTD", "GL-TECH" }, { 0x70B3D5, 0x249000, 0x249FFF, "Kospel S.A.", "KOSPEL" }, { 0x70B3D5, 0x24A000, 0x24AFFF, "Unmukti Technology Pvt Ltd", "UNMUKTI-PVT" }, { 0x70B3D5, 0x24B000, 0x24BFFF, "TOSEI ENGINEERING CORP.", "TOSEI-ENGINEERING" }, { 0x70B3D5, 0x24C000, 0x24CFFF, "Astronomical Research Cameras, Inc.", "ASTRONOMICAL-RESEARCH-CAMERAS" }, { 0x70B3D5, 0x24D000, 0x24DFFF, "INFO CREATIVE (HK) LTD", "INFO-CREATIVE-HK" }, { 0x70B3D5, 0x24E000, 0x24EFFF, "Chengdu Cove Technology CO.,LTD", "CHENGDU-COVE" }, { 0x70B3D5, 0x24F000, 0x24FFFF, "ELBIT SYSTEMS BMD AND LAND EW - ELISRA LTD", "ELBIT-BMD-AND-LAND-EW-ELISRA" }, { 0x70B3D5, 0x250000, 0x250FFF, "Datum Electronics Limited", "DATUM-ELECTRONICS" }, { 0x70B3D5, 0x251000, 0x251FFF, "Tap Home, s.r.o.", "TAP-HOME-S-R-O" }, { 0x70B3D5, 0x252000, 0x252FFF, "Sierra Nevada Corporation", "SIERRA-NEVADA" }, { 0x70B3D5, 0x253000, 0x253FFF, "Wimate Technology Solutions Private Limited", "WIMATE-SOLUTIONS-PRIVATE" }, { 0x70B3D5, 0x254000, 0x254FFF, "Spectrum Brands", "SPECTRUM-BRANDS" }, { 0x70B3D5, 0x255000, 0x255FFF, "Asystems Corporation", "ASYSTEMS" }, { 0x70B3D5, 0x256000, 0x256FFF, "Telco Antennas Pty Ltd", "TELCO-ANTENNAS-PTY" }, { 0x70B3D5, 0x257000, 0x257FFF, "LG Electronics", "LG-ELECTRONICS" }, { 0x70B3D5, 0x258000, 0x258FFF, "BAYKON Endüstriyel Kontrol Sistemleri San. ve Tic. A.Ş.", "BAYKON-ENDUESTRIYEL-KONTROL-SISTEMLERI-SAN-VE-TIC-A" }, { 0x70B3D5, 0x259000, 0x259FFF, "Zebra Elektronik A.S.", "ZEBRA-ELEKTRONIK" }, { 0x70B3D5, 0x25A000, 0x25AFFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0x25B000, 0x25BFFF, "GID Industrial", "GID-INDUSTRIAL" }, { 0x70B3D5, 0x25C000, 0x25CFFF, "ARCLAN'SYSTEM", "ARCLAN-SYSTEM" }, { 0x70B3D5, 0x25D000, 0x25DFFF, "Mimo Networks", "MIMO-NETWORKS" }, { 0x70B3D5, 0x25E000, 0x25EFFF, "RFHIC", "RFHIC" }, { 0x70B3D5, 0x25F000, 0x25FFFF, "COPPERNIC SAS", "COPPERNIC-SAS" }, { 0x70B3D5, 0x260000, 0x260FFF, "ModuSystems, Inc", "MODUSYSTEMS" }, { 0x70B3D5, 0x261000, 0x261FFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x70B3D5, 0x262000, 0x262FFF, "OOO Research and Production Center Computer Technologies", "OOO-RESEARCH-AND-PRODUCTION-CENTER-TECHNOLOGIES" }, { 0x70B3D5, 0x263000, 0x263FFF, "AXING AG", "AXING" }, { 0x70B3D5, 0x264000, 0x264FFF, "ifak technology + service GmbH", "IFAK-+-SERVICE" }, { 0x70B3D5, 0x265000, 0x265FFF, "Rapiot", "RAPIOT" }, { 0x70B3D5, 0x266000, 0x266FFF, "Spectra Displays Ltd", "SPECTRA-DISPLAYS" }, { 0x70B3D5, 0x267000, 0x267FFF, "Zehntner Testing Instruments", "ZEHNTNER-TESTING-INSTRUMENTS" }, { 0x70B3D5, 0x268000, 0x268FFF, "Cardinal Scale Mfg Co", "CARDINAL-SCALE-MFG" }, { 0x70B3D5, 0x269000, 0x269FFF, "Gilbarco Veeder-Root ‎", "GILBARCO-VEEDER-ROOT" }, { 0x70B3D5, 0x26A000, 0x26AFFF, "Talleres de Escoriaza SA", "TALLERES-DE-ESCORIAZA" }, { 0x70B3D5, 0x26B000, 0x26BFFF, "Sorama BV", "SORAMA" }, { 0x70B3D5, 0x26C000, 0x26CFFF, "EA Elektroautomatik GmbH & Co. KG", "EA-ELEKTROAUTOMATIK" }, { 0x70B3D5, 0x26D000, 0x26DFFF, "Sorion Electronics ltd", "SORION-ELECTRONICS" }, { 0x70B3D5, 0x26E000, 0x26EFFF, "HI-TECH SYSTEM Co. Ltd.", "HI-TECH-SYSTEM" }, { 0x70B3D5, 0x26F000, 0x26FFFF, "COMPAL ELECTRONICS, INC.", "COMPAL-ELECTRONICS" }, { 0x70B3D5, 0x270000, 0x270FFF, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x70B3D5, 0x271000, 0x271FFF, "Code Blue Corporation", "CODE-BLUE" }, { 0x70B3D5, 0x272000, 0x272FFF, "TELECOM SANTE", "TELECOM-SANTE" }, { 0x70B3D5, 0x273000, 0x273FFF, "WeVo Tech", "WEVO-TECH" }, { 0x70B3D5, 0x274000, 0x274FFF, "Stercom Power Solutions GmbH", "STERCOM-POWER-SOLUTIONS" }, { 0x70B3D5, 0x275000, 0x275FFF, "INTERNET PROTOCOLO LOGICA SL", "INTERNET-PROTOCOLO-LOGICA-SL" }, { 0x70B3D5, 0x276000, 0x276FFF, "TELL Software Hungaria Kft.", "TELL-SOFTWARE-HUNGARIA-KFT" }, { 0x70B3D5, 0x277000, 0x277FFF, "Voltaware Limited", "VOLTAWARE" }, { 0x70B3D5, 0x278000, 0x278FFF, "Medicomp, Inc", "MEDICOMP" }, { 0x70B3D5, 0x279000, 0x279FFF, "Medicomp, Inc", "MEDICOMP" }, { 0x70B3D5, 0x27A000, 0x27AFFF, "TD ECOPHISIKA", "TD-ECOPHISIKA" }, { 0x70B3D5, 0x27B000, 0x27BFFF, "DAVE SRL", "DAVE-SRL" }, { 0x70B3D5, 0x27C000, 0x27CFFF, "MOTION LIB,Inc.", "MOTION-LIB" }, { 0x70B3D5, 0x27D000, 0x27DFFF, "Telenor Connexion AB", "TELENOR-CONNEXION-AB" }, { 0x70B3D5, 0x27E000, 0x27EFFF, "Mettler Toledo", "METTLER-TOLEDO" }, { 0x70B3D5, 0x27F000, 0x27FFFF, "ST Aerospace Systems", "ST-AEROSPACE" }, { 0x70B3D5, 0x280000, 0x280FFF, "Computech International", "COMPUTECH" }, { 0x70B3D5, 0x281000, 0x281FFF, "ITG.CO.LTD", "ITG" }, { 0x70B3D5, 0x282000, 0x282FFF, "SAMBO HITECH", "SAMBO-HITECH" }, { 0x70B3D5, 0x283000, 0x283FFF, "TextNinja Co.", "TEXTNINJA" }, { 0x70B3D5, 0x284000, 0x284FFF, "Globalcom Engineering SPA", "GLOBALCOM-ENGINEERING-SPA" }, { 0x70B3D5, 0x285000, 0x285FFF, "Bentec GmbH Drilling & Oilfield Systems", "BENTEC-DRILLING-OILFIELD" }, { 0x70B3D5, 0x286000, 0x286FFF, "Pedax Danmark", "PEDAX-DANMARK" }, { 0x70B3D5, 0x287000, 0x287FFF, "Hypex Electronics BV", "HYPEX-ELECTRONICS" }, { 0x70B3D5, 0x288000, 0x288FFF, "Bresslergroup", "BRESSLERGROUP" }, { 0x70B3D5, 0x289000, 0x289FFF, "Shenzhen Rongda Computer Co.,Ltd", "SHENZHEN-RONGDA" }, { 0x70B3D5, 0x28A000, 0x28AFFF, "Transit Solutions, LLC.", "TRANSIT-SOLUTIONS" }, { 0x70B3D5, 0x28B000, 0x28BFFF, "Arnouse Digital Devices, Corp.", "ARNOUSE-DIGITAL-DEVICES" }, { 0x70B3D5, 0x28C000, 0x28CFFF, "Step Technica Co., Ltd.", "STEP-TECHNICA" }, { 0x70B3D5, 0x28D000, 0x28DFFF, "Technica Engineering GmbH", "TECHNICA-ENGINEERING" }, { 0x70B3D5, 0x28E000, 0x28EFFF, "TEX COMPUTER SRL", "TEX-SRL" }, { 0x70B3D5, 0x28F000, 0x28FFFF, "Overline Systems", "OVERLINE" }, { 0x70B3D5, 0x290000, 0x290FFF, "GETT Geraetetechnik GmbH", "GETT-GERAETETECHNIK" }, { 0x70B3D5, 0x291000, 0x291FFF, "Sequent AG", "SEQUENT" }, { 0x70B3D5, 0x292000, 0x292FFF, "Boston Dynamics", "BOSTON-DYNAMICS" }, { 0x70B3D5, 0x293000, 0x293FFF, "Solar RIg Technologies", "SOLAR-RIG-TECHNOLOGIES" }, { 0x70B3D5, 0x294000, 0x294FFF, "RCH Vietnam Limited Liability Company", "RCH-VIETNAM-LIABILITY-COMPANY" }, { 0x70B3D5, 0x295000, 0x295FFF, "Cello Electronics (UK) Ltd", "CELLO-ELECTRONICS-UK" }, { 0x70B3D5, 0x296000, 0x296FFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x70B3D5, 0x297000, 0x297FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x70B3D5, 0x298000, 0x298FFF, "Reflexion Medical", "REFLEXION-MEDICAL" }, { 0x70B3D5, 0x299000, 0x299FFF, "KMtronic ltd", "KMTRONIC" }, { 0x70B3D5, 0x29A000, 0x29AFFF, "Profusion Limited", "PROFUSION" }, { 0x70B3D5, 0x29B000, 0x29BFFF, "DermaLumics S.L.", "DERMALUMICS" }, { 0x70B3D5, 0x29C000, 0x29CFFF, "Teko Telecom Srl", "TEKO-TELECOM-SRL" }, { 0x70B3D5, 0x29D000, 0x29DFFF, "XTech2 SIA", "XTECH2-SIA" }, { 0x70B3D5, 0x29E000, 0x29EFFF, "B2cloud lda", "B2CLOUD-LDA" }, { 0x70B3D5, 0x29F000, 0x29FFFF, "Code Hardware SA", "CODE-HARDWARE" }, { 0x70B3D5, 0x2A0000, 0x2A0FFF, "Airthings", "AIRTHINGS" }, { 0x70B3D5, 0x2A1000, 0x2A1FFF, "Blink Services AB", "BLINK-SERVICES-AB" }, { 0x70B3D5, 0x2A2000, 0x2A2FFF, "Visualware, Inc.", "VISUALWARE" }, { 0x70B3D5, 0x2A3000, 0x2A3FFF, "ATT Nussbaum Prüftechnik GmbH", "ATT-NUSSBAUM-PRUEFTECHNIK" }, { 0x70B3D5, 0x2A4000, 0x2A4FFF, "GSP Sprachtechnologie GmbH", "GSP-SPRACHTECHNOLOGIE" }, { 0x70B3D5, 0x2A5000, 0x2A5FFF, "Taitotekniikka", "TAITOTEKNIIKKA" }, { 0x70B3D5, 0x2A6000, 0x2A6FFF, "GSI Technology", "GSI" }, { 0x70B3D5, 0x2A7000, 0x2A7FFF, "Plasmability, LLC", "PLASMABILITY" }, { 0x70B3D5, 0x2A8000, 0x2A8FFF, "Dynamic Perspective GmbH", "DYNAMIC-PERSPECTIVE" }, { 0x70B3D5, 0x2A9000, 0x2A9FFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x70B3D5, 0x2AA000, 0x2AAFFF, "Flirtey Inc", "FLIRTEY" }, { 0x70B3D5, 0x2AB000, 0x2ABFFF, "NASA Johnson Space Center", "NASA-JOHNSON-SPACE-CENTER" }, { 0x70B3D5, 0x2AC000, 0x2ACFFF, "New Imaging Technologies", "NEW-IMAGING-TECHNOLOGIES" }, { 0x70B3D5, 0x2AD000, 0x2ADFFF, "Opgal Optronic Industries", "OPGAL-OPTRONIC-INDUSTRIES" }, { 0x70B3D5, 0x2AE000, 0x2AEFFF, "Alere Technologies AS", "ALERE-TECHNOLOGIES-AS" }, { 0x70B3D5, 0x2AF000, 0x2AFFFF, "Enlaps", "ENLAPS" }, { 0x70B3D5, 0x2B0000, 0x2B0FFF, "Beijing Zhongyi Yue Tai Technology Co., Ltd", "BEIJING-ZHONGYI-YUE-TAI" }, { 0x70B3D5, 0x2B1000, 0x2B1FFF, "WIXCON Co., Ltd", "WIXCON" }, { 0x70B3D5, 0x2B2000, 0x2B2FFF, "Sun Creative (ZheJiang) Technology INC.", "SUN-CREATIVE-ZHEJIANG" }, { 0x70B3D5, 0x2B3000, 0x2B3FFF, "HAS co.,ltd.", "HAS" }, { 0x70B3D5, 0x2B4000, 0x2B4FFF, "Foerster-Technik GmbH", "FOERSTER-TECHNIK" }, { 0x70B3D5, 0x2B5000, 0x2B5FFF, "Dosepack India LLP", "DOSEPACK-INDIA-LLP" }, { 0x70B3D5, 0x2B6000, 0x2B6FFF, "HLT Micro", "HLT-MICRO" }, { 0x70B3D5, 0x2B7000, 0x2B7FFF, "Matrix Orbital Corporation", "MATRIX-ORBITAL" }, { 0x70B3D5, 0x2B8000, 0x2B8FFF, "WideNorth AS", "WIDENORTH-AS" }, { 0x70B3D5, 0x2B9000, 0x2B9FFF, "BELECTRIC GmbH", "BELECTRIC" }, { 0x70B3D5, 0x2BA000, 0x2BAFFF, "Active Brains", "ACTIVE-BRAINS" }, { 0x70B3D5, 0x2BB000, 0x2BBFFF, "Automation Networks & Solutions LLC", "AUTOMATION-NETWORKS-SOLUTIONS" }, { 0x70B3D5, 0x2BC000, 0x2BCFFF, "EQUIPOS DE TELECOMUNICACIÓN OPTOELECTRÓNICOS, S.A.", "EQUIPOS-DE-TELECOMUNICACIN-OPTOELECTRNICOS" }, { 0x70B3D5, 0x2BD000, 0x2BDFFF, "mg-sensor GmbH", "MG-SENSOR" }, { 0x70B3D5, 0x2BE000, 0x2BEFFF, "Coherent Logix, Inc.", "COHERENT-LOGIX" }, { 0x70B3D5, 0x2BF000, 0x2BFFFF, "FOSHAN VOHOM", "FOSHAN-VOHOM" }, { 0x70B3D5, 0x2C0000, 0x2C0FFF, "Sensative AB", "SENSATIVE-AB" }, { 0x70B3D5, 0x2C1000, 0x2C1FFF, "Avlinkpro", "AVLINKPRO" }, { 0x70B3D5, 0x2C2000, 0x2C2FFF, "Quantum Detectors", "QUANTUM-DETECTORS" }, { 0x70B3D5, 0x2C3000, 0x2C3FFF, "Proterra", "PROTERRA" }, { 0x70B3D5, 0x2C4000, 0x2C4FFF, "Hodwa Co., Ltd", "HODWA" }, { 0x70B3D5, 0x2C5000, 0x2C5FFF, "MECT SRL", "MECT-SRL" }, { 0x70B3D5, 0x2C6000, 0x2C6FFF, "AM General Contractor", "AM-GENERAL-CONTRACTOR" }, { 0x70B3D5, 0x2C7000, 0x2C7FFF, "Worldsensing", "WORLDSENSING" }, { 0x70B3D5, 0x2C8000, 0x2C8FFF, "SLAT", "SLAT" }, { 0x70B3D5, 0x2C9000, 0x2C9FFF, "SEASON DESIGN TECHNOLOGY", "SEASON-DESIGN" }, { 0x70B3D5, 0x2CA000, 0x2CAFFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0x2CB000, 0x2CBFFF, "Yongtong tech", "YONGTONG-TECH" }, { 0x70B3D5, 0x2CC000, 0x2CCFFF, "WeWork Companies, Inc.", "WEWORK-COMPANIES" }, { 0x70B3D5, 0x2CD000, 0x2CDFFF, "Korea Airports Corporation", "KOREA-AIRPORTS" }, { 0x70B3D5, 0x2CE000, 0x2CEFFF, "KDT", "KDT" }, { 0x70B3D5, 0x2CF000, 0x2CFFFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x2D0000, 0x2D0FFF, "ijin co.,ltd.", "IJIN" }, { 0x70B3D5, 0x2D1000, 0x2D1FFF, "Integer.pl S.A.", "INTEGER-PL" }, { 0x70B3D5, 0x2D2000, 0x2D2FFF, "SHANGHAI IRISIAN OPTRONICS TECHNOLOGY CO.,LTD.", "SHANGHAI-IRISIAN-OPTRONICS" }, { 0x70B3D5, 0x2D3000, 0x2D3FFF, "Hensoldt Sensors GmbH", "HENSOLDT-SENSORS" }, { 0x70B3D5, 0x2D4000, 0x2D4FFF, "CT Company", "CT-COMPANY" }, { 0x70B3D5, 0x2D5000, 0x2D5FFF, "Teuco Guzzini", "TEUCO-GUZZINI" }, { 0x70B3D5, 0x2D6000, 0x2D6FFF, "Kvazar LLC", "KVAZAR" }, { 0x70B3D5, 0x2D7000, 0x2D7FFF, "Private", "PRIVATE" }, { 0x70B3D5, 0x2D8000, 0x2D8FFF, "Unisight Digital Products", "UNISIGHT-DIGITAL-PRODUCTS" }, { 0x70B3D5, 0x2D9000, 0x2D9FFF, "ZPAS S.A.", "ZPAS" }, { 0x70B3D5, 0x2DA000, 0x2DAFFF, "Skywave Networks Private Limited", "SKYWAVE-NETWORKS-PRIVATE" }, { 0x70B3D5, 0x2DB000, 0x2DBFFF, "ProtoPixel SL", "PROTOPIXEL-SL" }, { 0x70B3D5, 0x2DC000, 0x2DCFFF, "Bolide Technology Group, Inc.", "BOLIDE-GROUP" }, { 0x70B3D5, 0x2DD000, 0x2DDFFF, "Melissa Climate Jsc", "MELISSA-CLIMATE-JSC" }, { 0x70B3D5, 0x2DE000, 0x2DEFFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0x2DF000, 0x2DFFFF, "EASTERN SCIENCE & TECHNOLOGY CO., LTD", "EASTERN-SCIENCE" }, { 0x70B3D5, 0x2E0000, 0x2E0FFF, "Peter Huber", "PETER-HUBER" }, { 0x70B3D5, 0x2E1000, 0x2E1FFF, "hiSky S.C.S LTD", "HISKY-S-C-S" }, { 0x70B3D5, 0x2E2000, 0x2E2FFF, "Spark Lasers", "SPARK-LASERS" }, { 0x70B3D5, 0x2E3000, 0x2E3FFF, "Meiknologic GmbH", "MEIKNOLOGIC" }, { 0x70B3D5, 0x2E4000, 0x2E4FFF, "Schneider Electric Motion USA", "SCHNEIDER-ELECTRIC-MOTION-USA" }, { 0x70B3D5, 0x2E5000, 0x2E5FFF, "Fläkt Woods AB", "FLAEKT-WOODS-AB" }, { 0x70B3D5, 0x2E6000, 0x2E6FFF, "IPG Photonics Corporation", "IPG-PHOTONICS" }, { 0x70B3D5, 0x2E7000, 0x2E7FFF, "Atos spa", "ATOS-SPA" }, { 0x70B3D5, 0x2E8000, 0x2E8FFF, "Telefire", "TELEFIRE" }, { 0x70B3D5, 0x2E9000, 0x2E9FFF, "NeurIT s.r.o.", "NEURIT-S-R-O" }, { 0x70B3D5, 0x2EA000, 0x2EAFFF, "Schneider Electric Motion", "SCHNEIDER-ELECTRIC-MOTION" }, { 0x70B3D5, 0x2EB000, 0x2EBFFF, "BRNET CO.,LTD.", "BRNET" }, { 0x70B3D5, 0x2EC000, 0x2ECFFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x70B3D5, 0x2ED000, 0x2EDFFF, "Signals and systems india pvt ltd", "SIGNALS-AND-INDIA-PVT" }, { 0x70B3D5, 0x2EE000, 0x2EEFFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x2EF000, 0x2EFFFF, "IEM SA", "IEM" }, { 0x70B3D5, 0x2F0000, 0x2F0FFF, "Clock-O-Matic", "CLOCK-O-MATIC" }, { 0x70B3D5, 0x2F1000, 0x2F1FFF, "Inspike S.R.L.", "INSPIKE" }, { 0x70B3D5, 0x2F2000, 0x2F2FFF, "Health Care Originals, Inc.", "HEALTH-CARE-ORIGINALS" }, { 0x70B3D5, 0x2F3000, 0x2F3FFF, "Scame Sistemi srl", "SCAME-SISTEMI-SRL" }, { 0x70B3D5, 0x2F4000, 0x2F4FFF, "Radixon s.r.o.", "RADIXON-S-R-O" }, { 0x70B3D5, 0x2F5000, 0x2F5FFF, "eze System, Inc.", "EZE-SYSTEM" }, { 0x70B3D5, 0x2F6000, 0x2F6FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0x2F7000, 0x2F7FFF, "Military Research Institute", "MILITARY-RESEARCH-INSTITUTE" }, { 0x70B3D5, 0x2F8000, 0x2F8FFF, "Tunstall A/S", "TUNSTALL-A/S" }, { 0x70B3D5, 0x2F9000, 0x2F9FFF, "CONSOSPY", "CONSOSPY" }, { 0x70B3D5, 0x2FA000, 0x2FAFFF, "Toray Medical Co.,Ltd", "TORAYMEDICAL" }, { 0x70B3D5, 0x2FB000, 0x2FBFFF, "IK MULTIMEDIA PRODUCTION SRL", "IK-MULTIMEDIA-PRODUCTION-SRL" }, { 0x70B3D5, 0x2FC000, 0x2FCFFF, "Loanguard T/A SE Controls", "LOANGUARD-T/A-SE-CONTROLS" }, { 0x70B3D5, 0x2FD000, 0x2FDFFF, "Special Projects Group, Inc", "SPECIAL-PROJECTS-GROUP" }, { 0x70B3D5, 0x2FE000, 0x2FEFFF, "Yaham Optoelectronics Co., Ltd", "YAHAM-OPTOELECTRONICS" }, { 0x70B3D5, 0x2FF000, 0x2FFFFF, "Sunstone Engineering", "SUNSTONE-ENGINEERING" }, { 0x70B3D5, 0x300000, 0x300FFF, "Novo DR Ltd.", "NOVO-DR" }, { 0x70B3D5, 0x301000, 0x301FFF, "WAYNE ANALYTICS LLC", "WAYNE-ANALYTICS" }, { 0x70B3D5, 0x302000, 0x302FFF, "DogWatch Inc", "DOGWATCH" }, { 0x70B3D5, 0x303000, 0x303FFF, "Fuchu Giken, Inc.", "FUCHU-GIKEN" }, { 0x70B3D5, 0x304000, 0x304FFF, "Wartsila Voyage Limited", "WARTSILA-VOYAGE" }, { 0x70B3D5, 0x305000, 0x305FFF, "CAITRON Industrial Solutions GmbH", "CAITRON-INDUSTRIAL-SOLUTIONS" }, { 0x70B3D5, 0x306000, 0x306FFF, "LEMZ-T, LLC", "LEMZ-T" }, { 0x70B3D5, 0x307000, 0x307FFF, "Energi innovation Aps", "ENERGI-INNOVATION-APS" }, { 0x70B3D5, 0x308000, 0x308FFF, "DSD MICROTECHNOLOGY,INC.", "DSD-MICROTECHNOLOGY" }, { 0x70B3D5, 0x309000, 0x309FFF, "ABS Applied Biometric Systems GmbH", "ABS-APPLIED-BIOMETRIC" }, { 0x70B3D5, 0x30A000, 0x30AFFF, "HongSeok Ltd.", "HONGSEOK" }, { 0x70B3D5, 0x30B000, 0x30BFFF, "Ash Technologies", "ASH-TECHNOLOGIES" }, { 0x70B3D5, 0x30C000, 0x30CFFF, "Sicon srl", "SICON-SRL" }, { 0x70B3D5, 0x30D000, 0x30DFFF, "Fiberbase", "FIBERBASE" }, { 0x70B3D5, 0x30E000, 0x30EFFF, "Ecolonum Inc.", "ECOLONUM" }, { 0x70B3D5, 0x30F000, 0x30FFFF, "Cardinal Scales Manufacturing Co", "CARDINAL-SCALES-MANUFACTURING" }, { 0x70B3D5, 0x310000, 0x310FFF, "Conserv Solutions", "CONSERV-SOLUTIONS" }, { 0x70B3D5, 0x311000, 0x311FFF, "Günther Spelsberg GmbH + Co. KG", "GUENTHER-SPELSBERG" }, { 0x70B3D5, 0x312000, 0x312FFF, "SMITEC S.p.A.", "SMITEC" }, { 0x70B3D5, 0x313000, 0x313FFF, "DIEHL Controls", "DIEHL-CONTROLS" }, { 0x70B3D5, 0x314000, 0x314FFF, "Grau Elektronik GmbH", "GRAU-ELEKTRONIK" }, { 0x70B3D5, 0x315000, 0x315FFF, "Private", "PRIVATE" }, { 0x70B3D5, 0x316000, 0x316FFF, "Austco Marketing & Service (USA) ltd.", "AUSTCO-MARKETING-SERVICE-USA" }, { 0x70B3D5, 0x317000, 0x317FFF, "Iotopia Solutions", "IOTOPIA-SOLUTIONS" }, { 0x70B3D5, 0x318000, 0x318FFF, "Exemplar Medical, LLC", "EXEMPLAR-MEDICAL" }, { 0x70B3D5, 0x319000, 0x319FFF, "ISO/TC 22/SC 31", "ISO/TC-22/SC-31" }, { 0x70B3D5, 0x31A000, 0x31AFFF, "Terratel Technology s.r.o.", "TERRATEL-S-R-O" }, { 0x70B3D5, 0x31B000, 0x31BFFF, "SilTerra Malaysia Sdn. Bhd.", "SILTERRA-MALAYSIA" }, { 0x70B3D5, 0x31C000, 0x31CFFF, "FINANCIERE DE L'OMBREE (eolane)", "FINANCIERE-DE-L-OMBREE-EOLANE" }, { 0x70B3D5, 0x31D000, 0x31DFFF, "AVA Monitoring AB", "AVA-MONITORING-AB" }, { 0x70B3D5, 0x31E000, 0x31EFFF, "GILLAM-FEI S.A.", "GILLAM-FEI" }, { 0x70B3D5, 0x31F000, 0x31FFFF, "Elcoma", "ELCOMA" }, { 0x70B3D5, 0x320000, 0x320FFF, "CYNIX Systems Inc", "CYNIX" }, { 0x70B3D5, 0x321000, 0x321FFF, "Yite technology", "YITE" }, { 0x70B3D5, 0x322000, 0x322FFF, "PuS GmbH und Co. KG", "PUS-UND" }, { 0x70B3D5, 0x323000, 0x323FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0x324000, 0x324FFF, "Thales Nederland BV", "THALES-NEDERLAND" }, { 0x70B3D5, 0x325000, 0x325FFF, "BlueMark Innovations BV", "BLUEMARK-INNOVATIONS" }, { 0x70B3D5, 0x326000, 0x326FFF, "NEMEUS-SAS", "NEMEUS-SAS" }, { 0x70B3D5, 0x327000, 0x327FFF, "Seneco A/S", "SENECO-A/S" }, { 0x70B3D5, 0x328000, 0x328FFF, "HIPODROMO DE AGUA CALIENTE SA CV", "HIPODROMO-DE-AGUA-CALIENTE-CV" }, { 0x70B3D5, 0x329000, 0x329FFF, "Primalucelab isrl", "PRIMALUCELAB-ISRL" }, { 0x70B3D5, 0x32A000, 0x32AFFF, "Wuhan Xingtuxinke ELectronic Co.,Ltd", "WUHAN-XINGTUXINKE" }, { 0x70B3D5, 0x32B000, 0x32BFFF, "RTA srl", "RTA-SRL" }, { 0x70B3D5, 0x32C000, 0x32CFFF, "ATION Corporation", "ATION" }, { 0x70B3D5, 0x32D000, 0x32DFFF, "Hanwell Technology Co., Ltd.", "HANWELL" }, { 0x70B3D5, 0x32E000, 0x32EFFF, "A&T Corporation", "A-T" }, { 0x70B3D5, 0x32F000, 0x32FFFF, "Movidius SRL", "MOVIDIUS-SRL" }, { 0x70B3D5, 0x330000, 0x330FFF, "iOne", "IONE" }, { 0x70B3D5, 0x331000, 0x331FFF, "Firecom, Inc.", "FIRECOM" }, { 0x70B3D5, 0x332000, 0x332FFF, "InnoSenT", "INNOSENT" }, { 0x70B3D5, 0x333000, 0x333FFF, "Orlaco Products B.V.", "ORLACO-PRODUCTS-B-V" }, { 0x70B3D5, 0x334000, 0x334FFF, "Dokuen Co. Ltd.", "DOKUEN" }, { 0x70B3D5, 0x335000, 0x335FFF, "Jonsa Australia Pty Ltd", "JONSA-AUSTRALIA-PTY" }, { 0x70B3D5, 0x336000, 0x336FFF, "Synaccess Networks Inc.", "SYNACCESS-NETWORKS" }, { 0x70B3D5, 0x337000, 0x337FFF, "Laborie", "LABORIE" }, { 0x70B3D5, 0x338000, 0x338FFF, "Opti-Sciences, Inc.", "OPTI-SCIENCES" }, { 0x70B3D5, 0x339000, 0x339FFF, "Sierra Nevada Corporation", "SIERRA-NEVADA" }, { 0x70B3D5, 0x33A000, 0x33AFFF, "AudioTEC LLC", "AUDIOTEC" }, { 0x70B3D5, 0x33B000, 0x33BFFF, "Seal Shield, LLC", "SEAL-SHIELD" }, { 0x70B3D5, 0x33C000, 0x33CFFF, "Videri Inc.", "VIDERI" }, { 0x70B3D5, 0x33D000, 0x33DFFF, "Schneider Electric Motion USA", "SCHNEIDER-ELECTRIC-MOTION-USA" }, { 0x70B3D5, 0x33E000, 0x33EFFF, "Dynamic Connect (Suzhou) Hi-Tech Electronic Co.,Ltd.", "DYNAMIC-CONNECT-SUZHOU-HI-TECH" }, { 0x70B3D5, 0x33F000, 0x33FFFF, "XANTIA SA", "XANTIA" }, { 0x70B3D5, 0x340000, 0x340FFF, "Renesas Electronics", "RENESAS-ELECTRONICS" }, { 0x70B3D5, 0x341000, 0x341FFF, "Vtron Pty Ltd", "VTRON-PTY" }, { 0x70B3D5, 0x342000, 0x342FFF, "Solectrix", "SOLECTRIX" }, { 0x70B3D5, 0x343000, 0x343FFF, "Elektro-System s.c.", "ELEKTRO-SYSTEM-S-C" }, { 0x70B3D5, 0x344000, 0x344FFF, "IHI Inspection & Instrumentation Co., Ltd.", "IHI-INSPECTION-INSTRUMENTATION" }, { 0x70B3D5, 0x345000, 0x345FFF, "AT-Automation Technology GmbH", "AT-AUTOMATION" }, { 0x70B3D5, 0x346000, 0x346FFF, "Ultamation Limited", "ULTAMATION" }, { 0x70B3D5, 0x347000, 0x347FFF, "OAS Sweden AB", "OAS-SWEDEN-AB" }, { 0x70B3D5, 0x348000, 0x348FFF, "BÄR Bahnsicherung AG", "BAER-BAHNSICHERUNG" }, { 0x70B3D5, 0x349000, 0x349FFF, "SLAT", "SLAT" }, { 0x70B3D5, 0x34A000, 0x34AFFF, "PAVO TASARIM ÜRETİM TİC A.Ş.", "PAVO-TASARIM-UERETM-TC-A" }, { 0x70B3D5, 0x34B000, 0x34BFFF, "LEAFF ENGINEERING SRL", "LEAFF-ENGINEERING-SRL" }, { 0x70B3D5, 0x34C000, 0x34CFFF, "GLT Exports Ltd", "GLT-EXPORTS" }, { 0x70B3D5, 0x34D000, 0x34DFFF, "Equos Research Co., Ltd", "EQUOS-RESEARCH" }, { 0x70B3D5, 0x34E000, 0x34EFFF, "Risk Expert sarl", "RISK-EXPERT-SARL" }, { 0x70B3D5, 0x34F000, 0x34FFFF, "Royal Engineering Consultancy Private Limited", "ROYAL-ENGINEERING-CONSULTANCY-PRIVATE" }, { 0x70B3D5, 0x350000, 0x350FFF, "Tickster AB", "TICKSTER-AB" }, { 0x70B3D5, 0x351000, 0x351FFF, "KST technology", "KST" }, { 0x70B3D5, 0x352000, 0x352FFF, "Globalcom Engineering SPA", "GLOBALCOM-ENGINEERING-SPA" }, { 0x70B3D5, 0x353000, 0x353FFF, "Digital Outfit", "DIGITAL-OUTFIT" }, { 0x70B3D5, 0x354000, 0x354FFF, "IMP-Computer Systems", "IMP" }, { 0x70B3D5, 0x355000, 0x355FFF, "Hongin., Ltd", "HONGIN" }, { 0x70B3D5, 0x356000, 0x356FFF, "BRS Sistemas Eletrônicos", "BRS-SISTEMAS-ELETRNICOS" }, { 0x70B3D5, 0x357000, 0x357FFF, "Movimento Group AB", "MOVIMENTO-GROUP-AB" }, { 0x70B3D5, 0x358000, 0x358FFF, "Nevotek", "NEVOTEK" }, { 0x70B3D5, 0x359000, 0x359FFF, "Boutronic", "BOUTRONIC" }, { 0x70B3D5, 0x35A000, 0x35AFFF, "Applied Radar, Inc.", "APPLIED-RADAR" }, { 0x70B3D5, 0x35B000, 0x35BFFF, "Nuance Hearing Ltd.", "NUANCE-HEARING" }, { 0x70B3D5, 0x35C000, 0x35CFFF, "ACS electronics srl", "ACS-ELECTRONICS-SRL" }, { 0x70B3D5, 0x35D000, 0x35DFFF, "Fresh Idea Factory BV", "FRESH-IDEA-FACTORY" }, { 0x70B3D5, 0x35E000, 0x35EFFF, "EIDOS s.p.a.", "EIDOS" }, { 0x70B3D5, 0x35F000, 0x35FFFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x360000, 0x360FFF, "PT. Emsonic Indonesia", "PT-EMSONIC-INDONESIA" }, { 0x70B3D5, 0x361000, 0x361FFF, "Parent Power", "PARENT-POWER" }, { 0x70B3D5, 0x362000, 0x362FFF, "Asiga", "ASIGA" }, { 0x70B3D5, 0x363000, 0x363FFF, "Contec Americas Inc.", "CONTEC-AMERICAS" }, { 0x70B3D5, 0x364000, 0x364FFF, "ADAMCZEWSKI elektronische Messtechnik GmbH", "ADAMCZEWSKI-ELEKTRONISCHE-MESSTECHNIK" }, { 0x70B3D5, 0x365000, 0x365FFF, "CircuitMeter Inc.", "CIRCUITMETER" }, { 0x70B3D5, 0x366000, 0x366FFF, "Solarlytics, Inc.", "SOLARLYTICS" }, { 0x70B3D5, 0x367000, 0x367FFF, "Living Water", "LIVING-WATER" }, { 0x70B3D5, 0x368000, 0x368FFF, "White Matter LLC", "WHITE-MATTER" }, { 0x70B3D5, 0x369000, 0x369FFF, "ALVAT s.r.o.", "ALVAT-S-R-O" }, { 0x70B3D5, 0x36A000, 0x36AFFF, "Becton Dickinson", "BECTON-DICKINSON" }, { 0x70B3D5, 0x36B000, 0x36BFFF, "Huz Electronics Ltd", "HUZ-ELECTRONICS" }, { 0x70B3D5, 0x36C000, 0x36CFFF, "Sicon srl", "SICON-SRL" }, { 0x70B3D5, 0x36D000, 0x36DFFF, "Cyberteam Sp z o o", "CYBERTEAM-SP-Z-O-O" }, { 0x70B3D5, 0x36E000, 0x36EFFF, "Electrónica Falcón S.A.U", "ELECTRNICA-FALCN-U" }, { 0x70B3D5, 0x36F000, 0x36FFFF, "BuddyGuard GmbH", "BUDDYGUARD" }, { 0x70B3D5, 0x370000, 0x370FFF, "Inphi Corporation", "INPHI" }, { 0x70B3D5, 0x371000, 0x371FFF, "BEDEROV GmbH", "BEDEROV" }, { 0x70B3D5, 0x372000, 0x372FFF, "MATELEX", "MATELEX" }, { 0x70B3D5, 0x373000, 0x373FFF, "Hangzhou Weimu Technology Co.,Ltd.", "HANGZHOU-WEIMU" }, { 0x70B3D5, 0x374000, 0x374FFF, "OOO NPP Mars-Energo", "OOO-NPP-MARS-ENERGO" }, { 0x70B3D5, 0x375000, 0x375FFF, "Adel System srl", "ADEL-SYSTEM-SRL" }, { 0x70B3D5, 0x376000, 0x376FFF, "Magenta Labs, Inc.", "MAGENTA-LABS" }, { 0x70B3D5, 0x377000, 0x377FFF, "Monnit Corporation", "MONNIT" }, { 0x70B3D5, 0x378000, 0x378FFF, "synchrotron SOLEIL", "SYNCHROTRON-SOLEIL" }, { 0x70B3D5, 0x379000, 0x379FFF, "Vensi, Inc.", "VENSI" }, { 0x70B3D5, 0x37A000, 0x37AFFF, "APG Cash Drawer, LLC", "APG-CASH-DRAWER" }, { 0x70B3D5, 0x37B000, 0x37BFFF, "Power Ltd.", "POWER" }, { 0x70B3D5, 0x37C000, 0x37CFFF, "Merus Power Dynamics Ltd.", "MERUS-POWER-DYNAMICS" }, { 0x70B3D5, 0x37D000, 0x37DFFF, "The DX Shop Limited", "THE-DX-SHOP" }, { 0x70B3D5, 0x37E000, 0x37EFFF, "ELINKGATE JSC", "ELINKGATE-JSC" }, { 0x70B3D5, 0x37F000, 0x37FFFF, "IDS Innomic GmbH", "IDS-INNOMIC" }, { 0x70B3D5, 0x380000, 0x380FFF, "SeaTech Intelligent Technology (Shanghai) Co., LTD", "SEATECH-INTELLIGENT-SHANGHAI" }, { 0x70B3D5, 0x381000, 0x381FFF, "CRDE", "CRDE" }, { 0x70B3D5, 0x382000, 0x382FFF, "Naval Group", "NAVAL-GROUP" }, { 0x70B3D5, 0x383000, 0x383FFF, "LPA Excil Electronics", "LPA-EXCIL-ELECTRONICS" }, { 0x70B3D5, 0x384000, 0x384FFF, "Sensohive Technologies", "SENSOHIVE-TECHNOLOGIES" }, { 0x70B3D5, 0x385000, 0x385FFF, "Kamacho Scale Co., Ltd.", "KAMACHO-SCALE" }, { 0x70B3D5, 0x386000, 0x386FFF, "GPSat Systems", "GPSAT" }, { 0x70B3D5, 0x387000, 0x387FFF, "GWF MessSysteme AG", "GWF-MESSSYSTEME" }, { 0x70B3D5, 0x388000, 0x388FFF, "Xitron", "XITRON" }, { 0x70B3D5, 0x389000, 0x389FFF, "2KLIC inc.", "2KLIC" }, { 0x70B3D5, 0x38A000, 0x38AFFF, "KSE GmbH", "KSE" }, { 0x70B3D5, 0x38B000, 0x38BFFF, "Lookman Electroplast Industries Ltd", "LOOKMAN-ELECTROPLAST-INDUSTRIES" }, { 0x70B3D5, 0x38C000, 0x38CFFF, "MiraeSignal Co., Ltd", "MIRAESIGNAL" }, { 0x70B3D5, 0x38D000, 0x38DFFF, "IMP-TELEKOMUNIKACIJE DOO", "IMP-TELEKOMUNIKACIJE-DOO" }, { 0x70B3D5, 0x38E000, 0x38EFFF, "China Telecom Fufu Information Technology CO.,LTD", "CHINA-TELECOM-FUFU-INFORMATION" }, { 0x70B3D5, 0x38F000, 0x38FFFF, "Sorynorydotcom Inc", "SORYNORYDOTCOM" }, { 0x70B3D5, 0x390000, 0x390FFF, "TEX COMPUTER SRL", "TEX-SRL" }, { 0x70B3D5, 0x391000, 0x391FFF, "Changshu Ruite Electric Co.,Ltd.", "CHANGSHU-RUITE-ELECTRIC" }, { 0x70B3D5, 0x392000, 0x392FFF, "Contec Americas Inc.", "CONTEC-AMERICAS" }, { 0x70B3D5, 0x393000, 0x393FFF, "Monnit Corporation", "MONNIT" }, { 0x70B3D5, 0x394000, 0x394FFF, "Romteck Australia", "ROMTECK-AUSTRALIA" }, { 0x70B3D5, 0x395000, 0x395FFF, "ICsec S.A.", "ICSEC" }, { 0x70B3D5, 0x396000, 0x396FFF, "CTG sp. z o. o.", "CTG-SP-Z-O-O" }, { 0x70B3D5, 0x397000, 0x397FFF, "Guangxi Hunter Information Industry Co.,Ltd", "GUANGXI-HUNTER-INFORMATION-INDUSTRY" }, { 0x70B3D5, 0x398000, 0x398FFF, "SIPRO s.r.l.", "SIPRO" }, { 0x70B3D5, 0x399000, 0x399FFF, "SPE Smartico, LLC", "SPE-SMARTICO" }, { 0x70B3D5, 0x39A000, 0x39AFFF, "Videotrend srl", "VIDEOTREND-SRL" }, { 0x70B3D5, 0x39B000, 0x39BFFF, "IROC AB", "IROC-AB" }, { 0x70B3D5, 0x39C000, 0x39CFFF, "GD Mission Systems", "GD-MISSION" }, { 0x70B3D5, 0x39D000, 0x39DFFF, "Comark Interactive Solutions", "COMARK-INTERACTIVE-SOLUTIONS" }, { 0x70B3D5, 0x39E000, 0x39EFFF, "Lanmark Controls Inc.", "LANMARK-CONTROLS" }, { 0x70B3D5, 0x39F000, 0x39FFFF, "CT Company", "CT-COMPANY" }, { 0x70B3D5, 0x3A0000, 0x3A0FFF, "chiconypower", "CHICONYPOWER" }, { 0x70B3D5, 0x3A1000, 0x3A1FFF, "Reckeen HDP Media sp. z o.o. sp. k.", "RECKEEN-HDP-MEDIA-SP-Z-O-O-SP-K" }, { 0x70B3D5, 0x3A2000, 0x3A2FFF, "Daifuku CO., Ltd.", "DAIFUKU" }, { 0x70B3D5, 0x3A3000, 0x3A3FFF, "CDS Institute of Management Strategy, Inc.", "CDS-INSTITUTE-OF-MANAGEMENT-STRATEGY" }, { 0x70B3D5, 0x3A4000, 0x3A4FFF, "Ascenix Corporation", "ASCENIX" }, { 0x70B3D5, 0x3A5000, 0x3A5FFF, "KMtronic ltd", "KMTRONIC" }, { 0x70B3D5, 0x3A6000, 0x3A6FFF, "myenergi Ltd", "MYENERGI" }, { 0x70B3D5, 0x3A7000, 0x3A7FFF, "Varikorea", "VARIKOREA" }, { 0x70B3D5, 0x3A8000, 0x3A8FFF, "JamHub Corp.", "JAMHUB" }, { 0x70B3D5, 0x3A9000, 0x3A9FFF, "Vivalnk", "VIVALNK" }, { 0x70B3D5, 0x3AA000, 0x3AAFFF, "RCATSONE", "RCATSONE" }, { 0x70B3D5, 0x3AB000, 0x3ABFFF, "Camozzi Automation SpA", "CAMOZZI-AUTOMATION-SPA" }, { 0x70B3D5, 0x3AC000, 0x3ACFFF, "RF-Tuote Oy", "RF-TUOTE-OY" }, { 0x70B3D5, 0x3AD000, 0x3ADFFF, "CT Company", "CT-COMPANY" }, { 0x70B3D5, 0x3AE000, 0x3AEFFF, "Exicom Technologies fze", "EXICOM-TECHNOLOGIES-FZE" }, { 0x70B3D5, 0x3AF000, 0x3AFFFF, "Turbo Technologies Corporation", "TURBO-TECHNOLOGIES" }, { 0x70B3D5, 0x3B0000, 0x3B0FFF, "Millennial Net, Inc.", "MILLENNIAL-NET" }, { 0x70B3D5, 0x3B1000, 0x3B1FFF, "Global Power Products", "GLOBAL-POWER-PRODUCTS" }, { 0x70B3D5, 0x3B2000, 0x3B2FFF, "Sicon srl", "SICON-SRL" }, { 0x70B3D5, 0x3B3000, 0x3B3FFF, "Movicom Electric LLC", "MOVICOM-ELECTRIC" }, { 0x70B3D5, 0x3B4000, 0x3B4FFF, "YOUSUNG", "YOUSUNG" }, { 0x70B3D5, 0x3B5000, 0x3B5FFF, "Preston Industries dba PolyScience", "PRESTON-INDUSTRIES-DBA-POLYSCIENCE" }, { 0x70B3D5, 0x3B6000, 0x3B6FFF, "MedRx, Inc", "MEDRX" }, { 0x70B3D5, 0x3B7000, 0x3B7FFF, "Paul Scherrer Institut (PSI)", "PAUL-SCHERRER-INSTITUT-PSI" }, { 0x70B3D5, 0x3B8000, 0x3B8FFF, "nVideon, Inc.", "NVIDEON" }, { 0x70B3D5, 0x3B9000, 0x3B9FFF, "BirdDog Australia", "BIRDDOG-AUSTRALIA" }, { 0x70B3D5, 0x3BA000, 0x3BAFFF, "Silex Inside", "SILEX-INSIDE" }, { 0x70B3D5, 0x3BB000, 0x3BBFFF, "A-M Systems", "A-M" }, { 0x70B3D5, 0x3BC000, 0x3BCFFF, "SciTronix", "SCITRONIX" }, { 0x70B3D5, 0x3BD000, 0x3BDFFF, "DAO QIN TECHNOLOGY CO.LTD.", "DAO-QIN" }, { 0x70B3D5, 0x3BE000, 0x3BEFFF, "MyDefence Communication ApS", "MYDEFENCE-COMMUNICATION-APS" }, { 0x70B3D5, 0x3BF000, 0x3BFFFF, "Star Electronics GmbH & Co. KG", "STAR-ELECTRONICS" }, { 0x70B3D5, 0x3C0000, 0x3C0FFF, "DK-Technologies A/S", "DK-TECHNOLOGIES-A/S" }, { 0x70B3D5, 0x3C1000, 0x3C1FFF, "thingdust AG", "THINGDUST" }, { 0x70B3D5, 0x3C2000, 0x3C2FFF, "Cellular Specialties, Inc.", "CELLULAR-SPECIALTIES" }, { 0x70B3D5, 0x3C3000, 0x3C3FFF, "AIMCO", "AIMCO" }, { 0x70B3D5, 0x3C4000, 0x3C4FFF, "Hagiwara Solutions Co., Ltd.", "HAGIWARA-SOLUTIONS" }, { 0x70B3D5, 0x3C5000, 0x3C5FFF, "P4Q ELECTRONICS, S.L.", "P4Q-ELECTRONICS" }, { 0x70B3D5, 0x3C6000, 0x3C6FFF, "ACD Elekronik GmbH", "ACD-ELEKRONIK" }, { 0x70B3D5, 0x3C7000, 0x3C7FFF, "SOFTCREATE CORP.", "SOFTCREATE" }, { 0x70B3D5, 0x3C8000, 0x3C8FFF, "ABC Electric Co.", "ABC-ELECTRIC" }, { 0x70B3D5, 0x3C9000, 0x3C9FFF, "Duerkopp-Adler", "DUERKOPP-ADLER" }, { 0x70B3D5, 0x3CA000, 0x3CAFFF, "TTI Ltd", "TTI" }, { 0x70B3D5, 0x3CB000, 0x3CBFFF, "GeoSpectrum Technologies Inc", "GEOSPECTRUM-TECHNOLOGIES" }, { 0x70B3D5, 0x3CC000, 0x3CCFFF, "TerOpta Ltd", "TEROPTA" }, { 0x70B3D5, 0x3CD000, 0x3CDFFF, "BRS Sistemas Eletrônicos", "BRS-SISTEMAS-ELETRNICOS" }, { 0x70B3D5, 0x3CE000, 0x3CEFFF, "Aditec GmbH", "ADITEC" }, { 0x70B3D5, 0x3CF000, 0x3CFFFF, "Systems Engineering Arts Pty Ltd", "ENGINEERING-ARTS-PTY" }, { 0x70B3D5, 0x3D0000, 0x3D0FFF, "ORtek Technology, Inc.", "ORTEK" }, { 0x70B3D5, 0x3D1000, 0x3D1FFF, "Imenco Ltd", "IMENCO" }, { 0x70B3D5, 0x3D2000, 0x3D2FFF, "Imagine Inc.", "IMAGINE" }, { 0x70B3D5, 0x3D3000, 0x3D3FFF, "GS Elektromedizinsiche Geräte G. Stemple GmbH", "GS-ELEKTROMEDIZINSICHE-GERAETE-G-STEMPLE" }, { 0x70B3D5, 0x3D4000, 0x3D4FFF, "Sanmina Israel", "SANMINA-ISRAEL" }, { 0x70B3D5, 0x3D5000, 0x3D5FFF, "oxynet Solutions", "OXYNET-SOLUTIONS" }, { 0x70B3D5, 0x3D6000, 0x3D6FFF, "Ariston Thermo s.p.a.", "ARISTON-THERMO" }, { 0x70B3D5, 0x3D7000, 0x3D7FFF, "Remote Sensing Solutions, Inc.", "REMOTE-SENSING-SOLUTIONS" }, { 0x70B3D5, 0x3D8000, 0x3D8FFF, "Abitsoftware, Ltd.", "ABITSOFTWARE" }, { 0x70B3D5, 0x3D9000, 0x3D9FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x3DA000, 0x3DAFFF, "Loop Labs, Inc.", "LOOP-LABS" }, { 0x70B3D5, 0x3DB000, 0x3DBFFF, "KST technology", "KST" }, { 0x70B3D5, 0x3DC000, 0x3DCFFF, "XIA LLC", "XIA" }, { 0x70B3D5, 0x3DD000, 0x3DDFFF, "Kniggendorf + Kögler Security GmbH", "KNIGGENDORF-+-KOEGLER-SECURITY" }, { 0x70B3D5, 0x3DE000, 0x3DEFFF, "ELOMAC Elektronik GmbH", "ELOMAC-ELEKTRONIK" }, { 0x70B3D5, 0x3DF000, 0x3DFFFF, "MultiDyne", "MULTIDYNE" }, { 0x70B3D5, 0x3E0000, 0x3E0FFF, "Gogo Business Aviation", "GOGO-BUSINESS-AVIATION" }, { 0x70B3D5, 0x3E1000, 0x3E1FFF, "Barnstormer Softworks", "BARNSTORMER-SOFTWORKS" }, { 0x70B3D5, 0x3E2000, 0x3E2FFF, "AVI Pty Ltd", "AVI-PTY" }, { 0x70B3D5, 0x3E3000, 0x3E3FFF, "Head", "HEAD" }, { 0x70B3D5, 0x3E4000, 0x3E4FFF, "Neptec Technologies Corp.", "NEPTEC-TECHNOLOGIES" }, { 0x70B3D5, 0x3E5000, 0x3E5FFF, "ATEME", "ATEME" }, { 0x70B3D5, 0x3E6000, 0x3E6FFF, "machineQ", "MACHINEQ" }, { 0x70B3D5, 0x3E7000, 0x3E7FFF, "JNR Sports Holdings, LLC", "JNR-SPORTS-HOLDINGS" }, { 0x70B3D5, 0x3E8000, 0x3E8FFF, "COSMOS web Co., Ltd.", "COSMOS-WEB" }, { 0x70B3D5, 0x3E9000, 0x3E9FFF, "APOLLO GIKEN Co.,Ltd.", "APOLLO-GIKEN" }, { 0x70B3D5, 0x3EA000, 0x3EAFFF, "DAVE SRL", "DAVE-SRL" }, { 0x70B3D5, 0x3EB000, 0x3EBFFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x70B3D5, 0x3EC000, 0x3ECFFF, "Outsight SA", "OUTSIGHT" }, { 0x70B3D5, 0x3ED000, 0x3EDFFF, "Ultra Electronics Sonar System Division", "ULTRA-ELECTRONICS-SONAR-SYSTEM-DIVISION" }, { 0x70B3D5, 0x3EE000, 0x3EEFFF, "Laser Imagineering Vertriebs GmbH", "LASER-IMAGINEERING-VERTRIEBS" }, { 0x70B3D5, 0x3EF000, 0x3EFFFF, "Vtron Pty Ltd", "VTRON-PTY" }, { 0x70B3D5, 0x3F0000, 0x3F0FFF, "Intervala", "INTERVALA" }, { 0x70B3D5, 0x3F1000, 0x3F1FFF, "Olympus NDT Canada", "OLYMPUS-NDT-CANADA" }, { 0x70B3D5, 0x3F2000, 0x3F2FFF, "H3D, Inc.", "H3D" }, { 0x70B3D5, 0x3F3000, 0x3F3FFF, "SPEA SPA", "SPEA-SPA" }, { 0x70B3D5, 0x3F4000, 0x3F4FFF, "Wincode Technology Co., Ltd.", "WINCODE" }, { 0x70B3D5, 0x3F5000, 0x3F5FFF, "DOLBY LABORATORIES, INC.", "DOLBY-LABORATORIES" }, { 0x70B3D5, 0x3F6000, 0x3F6FFF, "Sycomp Electronic GmbH", "SYCOMP" }, { 0x70B3D5, 0x3F7000, 0x3F7FFF, "Advansid", "ADVANSID" }, { 0x70B3D5, 0x3F8000, 0x3F8FFF, "The Fire Horn, Inc.", "THE-FIRE-HORN" }, { 0x70B3D5, 0x3F9000, 0x3F9FFF, "Herrick Tech Labs", "HERRICK-TECH-LABS" }, { 0x70B3D5, 0x3FA000, 0x3FAFFF, "Zaklad Energoelektroniki Twerd", "ZAKLAD-ENERGOELEKTRONIKI-TWERD" }, { 0x70B3D5, 0x3FB000, 0x3FBFFF, "Liberty Reach", "LIBERTY-REACH" }, { 0x70B3D5, 0x3FC000, 0x3FCFFF, "TangRen C&S CO., Ltd", "TANGREN-C-S" }, { 0x70B3D5, 0x3FD000, 0x3FDFFF, "NaraControls Inc", "NARACONTROLS" }, { 0x70B3D5, 0x3FE000, 0x3FEFFF, "Siemens Industry Software Inc.", "SIEMENS-INDUSTRY-SOFTWARE" }, { 0x70B3D5, 0x3FF000, 0x3FFFFF, "Hydra Controls", "HYDRA-CONTROLS" }, { 0x70B3D5, 0x400000, 0x400FFF, "Vtron Pty Ltd", "VTRON-PTY" }, { 0x70B3D5, 0x401000, 0x401FFF, "Private", "PRIVATE" }, { 0x70B3D5, 0x402000, 0x402FFF, "AKIS technologies", "AKIS-TECHNOLOGIES" }, { 0x70B3D5, 0x403000, 0x403FFF, "Mighty Cube Co., Ltd.", "MIGHTY-CUBE" }, { 0x70B3D5, 0x404000, 0x404FFF, "RANIX,Inc.", "RANIX" }, { 0x70B3D5, 0x405000, 0x405FFF, "MG s.r.l.", "MG" }, { 0x70B3D5, 0x406000, 0x406FFF, "Acrodea, Inc.", "ACRODEA" }, { 0x70B3D5, 0x407000, 0x407FFF, "IDOSENS", "IDOSENS" }, { 0x70B3D5, 0x408000, 0x408FFF, "Comrod AS", "COMROD-AS" }, { 0x70B3D5, 0x409000, 0x409FFF, "Beijing Yutian Technology Co., Ltd.", "BEIJING-YUTIAN" }, { 0x70B3D5, 0x40A000, 0x40AFFF, "Monroe Electronics, Inc.", "MONROE-ELECTRONICS" }, { 0x70B3D5, 0x40B000, 0x40BFFF, "QUERCUS TECHNOLOGIES, S.L.", "QUERCUS-TECHNOLOGIES" }, { 0x70B3D5, 0x40C000, 0x40CFFF, "Tornado Modular Systems", "TORNADO-MODULAR" }, { 0x70B3D5, 0x40D000, 0x40DFFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x70B3D5, 0x40E000, 0x40EFFF, "Liaoyun Information Technology Co., Ltd.", "LIAOYUN-INFORMATION" }, { 0x70B3D5, 0x40F000, 0x40FFFF, "NEXELEC", "NEXELEC" }, { 0x70B3D5, 0x410000, 0x410FFF, "Avant Technologies, Inc", "AVANT-TECHNOLOGIES" }, { 0x70B3D5, 0x411000, 0x411FFF, "Mi-Fi Networks Pvt Ltd", "MI-FI-NETWORKS-PVT" }, { 0x70B3D5, 0x412000, 0x412FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0x413000, 0x413FFF, "Axess AG", "AXESS" }, { 0x70B3D5, 0x414000, 0x414FFF, "Smith Meter, Inc.", "SMITH-METER" }, { 0x70B3D5, 0x415000, 0x415FFF, "IDEA SPA", "IDEA-SPA" }, { 0x70B3D5, 0x416000, 0x416FFF, "Antlia Systems", "ANTLIA" }, { 0x70B3D5, 0x417000, 0x417FFF, "Figment Design Laboratories", "FIGMENT-DESIGN-LABORATORIES" }, { 0x70B3D5, 0x418000, 0x418FFF, "DEV Systemtechnik GmbH& Co KG", "DEV-SYSTEMTECHNIK" }, { 0x70B3D5, 0x419000, 0x419FFF, "Prodata Mobility Brasil SA", "PRODATA-MOBILITY-BRASIL" }, { 0x70B3D5, 0x41A000, 0x41AFFF, "HYOSUNG Heavy Industries Corporation", "HYOSUNG-HEAVY-INDUSTRIES" }, { 0x70B3D5, 0x41B000, 0x41BFFF, "SYS TEC electronic GmbH", "SYS-TEC" }, { 0x70B3D5, 0x41C000, 0x41CFFF, "Twoway Communications, Inc.", "TWOWAY-COMMUNICATION" }, { 0x70B3D5, 0x41D000, 0x41DFFF, "Azmoon Keifiat", "AZMOON-KEIFIAT" }, { 0x70B3D5, 0x41E000, 0x41EFFF, "Redler Computers", "REDLER-COMPUTERS" }, { 0x70B3D5, 0x41F000, 0x41FFFF, "Orion S.r.l.", "ORION" }, { 0x70B3D5, 0x420000, 0x420FFF, "ECOINET", "ECOINET" }, { 0x70B3D5, 0x421000, 0x421FFF, "North Star Bestech Co.,", "NORTH-STAR-BESTECH" }, { 0x70B3D5, 0x422000, 0x422FFF, "SUS Corporation", "SUS" }, { 0x70B3D5, 0x423000, 0x423FFF, "Harman Connected Services Corporation India Pvt. Ltd.", "HARMAN-CONNECTED-SERVICES-INDIA-PVT" }, { 0x70B3D5, 0x424000, 0x424FFF, "Underground Systems, Inc.", "UNDERGROUND" }, { 0x70B3D5, 0x425000, 0x425FFF, "SinterCast", "SINTERCAST" }, { 0x70B3D5, 0x426000, 0x426FFF, "Zehnder Group Nederland", "ZEHNDER-GROUP-NEDERLAND" }, { 0x70B3D5, 0x427000, 0x427FFF, "Key Chemical & Equipment Company", "KEY-CHEMICAL-EQUIPMENT-COMPANY" }, { 0x70B3D5, 0x428000, 0x428FFF, "Presentation Switchers, Inc.", "PRESENTATION-SWITCHERS" }, { 0x70B3D5, 0x429000, 0x429FFF, "Redco Audio Inc", "REDCO-AUDIO" }, { 0x70B3D5, 0x42A000, 0x42AFFF, "Critical Link LLC", "CRITICAL-LINK" }, { 0x70B3D5, 0x42B000, 0x42BFFF, "Guangzhou Haoxiang Computer Technology Co.,Ltd.", "GUANGZHOU-HAOXIANG" }, { 0x70B3D5, 0x42C000, 0x42CFFF, "D.Marchiori Srl", "D-MARCHIORI-SRL" }, { 0x70B3D5, 0x42D000, 0x42DFFF, "RCH ITALIA SPA", "RCH-ITALIA-SPA" }, { 0x70B3D5, 0x42E000, 0x42EFFF, "Dr. Zinngrebe GmbH", "DR-ZINNGREBE" }, { 0x70B3D5, 0x42F000, 0x42FFFF, "SINTOKOGIO, LTD", "SINTOKOGIO" }, { 0x70B3D5, 0x430000, 0x430FFF, "Algodue Elettronica Srl", "ALGODUE-ELETTRONICA-SRL" }, { 0x70B3D5, 0x431000, 0x431FFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x70B3D5, 0x432000, 0x432FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0x433000, 0x433FFF, "Flexsolution APS", "FLEXSOLUTION-APS" }, { 0x70B3D5, 0x434000, 0x434FFF, "Wit.com Inc", "WIT-COM" }, { 0x70B3D5, 0x435000, 0x435FFF, "Wuhan Xingtuxinke ELectronic Co.,Ltd", "WUHAN-XINGTUXINKE" }, { 0x70B3D5, 0x436000, 0x436FFF, "Henrich Electronics Corporation", "HENRICH-ELECTRONICS" }, { 0x70B3D5, 0x437000, 0x437FFF, "Digital Way", "DIGITAL-WAY" }, { 0x70B3D5, 0x438000, 0x438FFF, "HBI Bisscheroux bv", "HBI-BISSCHEROUX" }, { 0x70B3D5, 0x439000, 0x439FFF, "TriLED", "TRILED" }, { 0x70B3D5, 0x43A000, 0x43AFFF, "ARKS Enterprises, Inc.", "ARKS-ENTERPRISES" }, { 0x70B3D5, 0x43B000, 0x43BFFF, "Kalycito Infotech Private Limited", "KALYCITO-INFOTECH-PRIVATE" }, { 0x70B3D5, 0x43C000, 0x43CFFF, "Scenario Automation", "SCENARIO-AUTOMATION" }, { 0x70B3D5, 0x43D000, 0x43DFFF, "Veryx Technologies Private Limited", "VERYX-TECHNOLOGIES-PRIVATE" }, { 0x70B3D5, 0x43E000, 0x43EFFF, "Peloton Technology", "PELOTON" }, { 0x70B3D5, 0x43F000, 0x43FFFF, "biosilver .co.,ltd", "BIOSILVER" }, { 0x70B3D5, 0x440000, 0x440FFF, "Discover Video", "DISCOVER-VIDEO" }, { 0x70B3D5, 0x441000, 0x441FFF, "Videoport S.A.", "VIDEOPORT" }, { 0x70B3D5, 0x442000, 0x442FFF, "Blair Companies", "BLAIR-COMPANIES" }, { 0x70B3D5, 0x443000, 0x443FFF, "Slot3 GmbH", "SLOT3" }, { 0x70B3D5, 0x444000, 0x444FFF, "AMS Controls, Inc.", "AMS-CONTROLS" }, { 0x70B3D5, 0x445000, 0x445FFF, "Advanced Devices SpA", "ADVANCED-DEVICES-SPA" }, { 0x70B3D5, 0x446000, 0x446FFF, "Santa Barbara Imaging Systems", "SANTA-BARBARA-IMAGING" }, { 0x70B3D5, 0x447000, 0x447FFF, "Avid Controls Inc", "AVID-CONTROLS" }, { 0x70B3D5, 0x448000, 0x448FFF, "B/E Aerospace, Inc.", "B/E-AEROSPACE" }, { 0x70B3D5, 0x449000, 0x449FFF, "Edgeware AB", "EDGEWARE-AB" }, { 0x70B3D5, 0x44A000, 0x44AFFF, "CANON ELECTRON TUBES & DEVICES CO., LTD.", "CANON-ELECTRON-TUBES-DEVICES" }, { 0x70B3D5, 0x44B000, 0x44BFFF, "Open System Solutions Limited", "OPEN-SYSTEM-SOLUTIONS" }, { 0x70B3D5, 0x44C000, 0x44CFFF, "ejoin, s.r.o.", "EJOIN-S-R-O" }, { 0x70B3D5, 0x44D000, 0x44DFFF, "Vessel Technology Ltd", "VESSEL" }, { 0x70B3D5, 0x44E000, 0x44EFFF, "Solace Systems Inc.", "SOLACE" }, { 0x70B3D5, 0x44F000, 0x44FFFF, "Velvac Incorporated", "VELVAC-INCORPORATED" }, { 0x70B3D5, 0x450000, 0x450FFF, "Apantac LLC", "APANTAC" }, { 0x70B3D5, 0x451000, 0x451FFF, "Perform3-D LLC", "PERFORM3-D" }, { 0x70B3D5, 0x452000, 0x452FFF, "ITALIANA PONTI RADIO SRL", "ITALIANA-PONTI-RADIO-SRL" }, { 0x70B3D5, 0x453000, 0x453FFF, "Foerster-Technik GmbH", "FOERSTER-TECHNIK" }, { 0x70B3D5, 0x454000, 0x454FFF, "Golding Audio Ltd", "GOLDING-AUDIO" }, { 0x70B3D5, 0x455000, 0x455FFF, "Heartlandmicropayments", "HEARTLANDMICROPAYMENTS" }, { 0x70B3D5, 0x456000, 0x456FFF, "Technological Application and Production One Member Liability Company (Tecapro company)", "TECHNOLOGICAL-APPLICATION-AND-PRODUCTION-ONE-MEMBER-LIABILITY-COMPANY-TECAPRO-COMPANY" }, { 0x70B3D5, 0x457000, 0x457FFF, "Vivaldi Clima Srl", "VIVALDI-CLIMA-SRL" }, { 0x70B3D5, 0x458000, 0x458FFF, "Ongisul Co.,Ltd.", "ONGISUL" }, { 0x70B3D5, 0x459000, 0x459FFF, "Protium Technologies, Inc.", "PROTIUM-TECHNOLOGIES" }, { 0x70B3D5, 0x45A000, 0x45AFFF, "Palarum LLC", "PALARUM" }, { 0x70B3D5, 0x45B000, 0x45BFFF, "KOMZ - IZMERENIYA", "KOMZ-IZMERENIYA" }, { 0x70B3D5, 0x45C000, 0x45CFFF, "AlyTech", "ALYTECH" }, { 0x70B3D5, 0x45D000, 0x45DFFF, "Sensapex Oy", "SENSAPEX-OY" }, { 0x70B3D5, 0x45E000, 0x45EFFF, "eSOL Co.,Ltd.", "ESOL" }, { 0x70B3D5, 0x45F000, 0x45FFFF, "Cloud4Wi", "CLOUD4WI" }, { 0x70B3D5, 0x460000, 0x460FFF, "Guilin Tryin Technology Co.,Ltd", "GUILIN-TRYIN" }, { 0x70B3D5, 0x461000, 0x461FFF, "TESEC Corporation", "TESEC" }, { 0x70B3D5, 0x462000, 0x462FFF, "EarTex", "EARTEX" }, { 0x70B3D5, 0x463000, 0x463FFF, "WARECUBE,INC", "WARECUBE" }, { 0x70B3D5, 0x465000, 0x465FFF, "ENERGISME", "ENERGISME" }, { 0x70B3D5, 0x466000, 0x466FFF, "SYLink Technologie", "SYLINK-TECHNOLOGIE" }, { 0x70B3D5, 0x467000, 0x467FFF, "GreenWake Technologies", "GREENWAKE-TECHNOLOGIES" }, { 0x70B3D5, 0x468000, 0x468FFF, "Shanghai Junqian Sensing Technology Co., LTD", "SHANGHAI-JUNQIAN-SENSING" }, { 0x70B3D5, 0x469000, 0x469FFF, "Gentec Systems Co.", "GENTEC" }, { 0x70B3D5, 0x46A000, 0x46AFFF, "Shenzhen Vikings Technology Co., Ltd.", "SHENZHEN-VIKINGS" }, { 0x70B3D5, 0x46B000, 0x46BFFF, "Airborne Engineering Limited", "AIRBORNE-ENGINEERING" }, { 0x70B3D5, 0x46C000, 0x46CFFF, "SHANGHAI CHENZHU INSTRUMENT CO., LTD.", "SHANGHAI-CHENZHU-INSTRUMENT" }, { 0x70B3D5, 0x46D000, 0x46DFFF, "Guan Show Technologe Co., Ltd.", "GUAN-SHOW-TECHNOLOGE" }, { 0x70B3D5, 0x46E000, 0x46EFFF, "Zamir Recognition Systems Ltd.", "ZAMIR-RECOGNITION" }, { 0x70B3D5, 0x46F000, 0x46FFFF, "serva transport systems GmbH", "SERVA-TRANSPORT" }, { 0x70B3D5, 0x470000, 0x470FFF, "KITRON UAB", "KITRON-UAB" }, { 0x70B3D5, 0x471000, 0x471FFF, "SYSCO Sicherheitssysteme GmbH", "SYSCO-SICHERHEITSSYSTEME" }, { 0x70B3D5, 0x472000, 0x472FFF, "Quadio Devices Private Limited", "QUADIO-DEVICES-PRIVATE" }, { 0x70B3D5, 0x473000, 0x473FFF, "KeyProd", "KEYPROD" }, { 0x70B3D5, 0x474000, 0x474FFF, "CTROGERS LLC", "CTROGERS" }, { 0x70B3D5, 0x475000, 0x475FFF, "EWATTCH", "EWATTCH" }, { 0x70B3D5, 0x476000, 0x476FFF, "FR-Team International SA", "FR-TEAM" }, { 0x70B3D5, 0x477000, 0x477FFF, "digitrol limited", "DIGITROL" }, { 0x70B3D5, 0x478000, 0x478FFF, "Touchnet/OneCard", "TOUCHNET/ONECARD" }, { 0x70B3D5, 0x479000, 0x479FFF, "LINEAGE POWER PVT LTD.,", "LINEAGE-POWER-PVT" }, { 0x70B3D5, 0x47A000, 0x47AFFF, "GlooVir Inc.", "GLOOVIR" }, { 0x70B3D5, 0x47B000, 0x47BFFF, "Monixo", "MONIXO" }, { 0x70B3D5, 0x47C000, 0x47CFFF, "Par-Tech, Inc.", "PAR-TECH" }, { 0x70B3D5, 0x47D000, 0x47DFFF, "Shenyang TECHE Technology Co.,Ltd", "SHENYANG-TECHE" }, { 0x70B3D5, 0x47E000, 0x47EFFF, "Fiber Optika Technologies Pvt. Ltd.", "FIBER-OPTIKA-TECHNOLOGIES-PVT" }, { 0x70B3D5, 0x47F000, 0x47FFFF, "ASE GmbH", "ASE" }, { 0x70B3D5, 0x480000, 0x480FFF, "Emergency Lighting Products Limited", "EMERGENCY-LIGHTING-PRODUCTS" }, { 0x70B3D5, 0x481000, 0x481FFF, "STEP sarl", "STEP-SARL" }, { 0x70B3D5, 0x482000, 0x482FFF, "Aeryon Labs Inc", "AERYON-LABS" }, { 0x70B3D5, 0x483000, 0x483FFF, "LITUM BILGI TEKNOLOJILERI SAN. VE TIC. A.S.", "LITUM-BILGI-TEKNOLOJILERI-SAN-VE-TIC" }, { 0x70B3D5, 0x484000, 0x484FFF, "Hermann Sewerin GmbH", "HERMANN-SEWERIN" }, { 0x70B3D5, 0x485000, 0x485FFF, "CLARESYS LIMITED", "CLARESYS" }, { 0x70B3D5, 0x486000, 0x486FFF, "ChongQing JianTao Technology Co., Ltd.", "CHONGQING-JIANTAO" }, { 0x70B3D5, 0x487000, 0x487FFF, "ECS s.r.l.", "ECS" }, { 0x70B3D5, 0x488000, 0x488FFF, "Cardinal Scale Mfg Co", "CARDINAL-SCALE-MFG" }, { 0x70B3D5, 0x489000, 0x489FFF, "ard sa", "ARD" }, { 0x70B3D5, 0x48A000, 0x48AFFF, "George Wilson Industries Ltd", "GEORGE-WILSON-INDUSTRIES" }, { 0x70B3D5, 0x48B000, 0x48BFFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0x48C000, 0x48CFFF, "Integrated Systems Engineering, Inc.", "INTEGRATED-ENGINEERING" }, { 0x70B3D5, 0x48D000, 0x48DFFF, "OMEGA BILANCE SRL SOCIETA' UNIPERSONALE", "OMEGA-BILANCE-SRL-SOCIETA-UNIPERSONALE" }, { 0x70B3D5, 0x48E000, 0x48EFFF, "Allim System Co,.Ltd.", "ALLIM-SYSTEM" }, { 0x70B3D5, 0x48F000, 0x48FFFF, "Seiwa Giken", "SEIWA-GIKEN" }, { 0x70B3D5, 0x490000, 0x490FFF, "Xiamen Beogold Technology Co. Ltd.", "XIAMEN-BEOGOLD" }, { 0x70B3D5, 0x491000, 0x491FFF, "VONSCH", "VONSCH" }, { 0x70B3D5, 0x492000, 0x492FFF, "Jiangsu Jinheng Information Technology Co.,Ltd.", "JIANGSU-JINHENG-INFORMATION" }, { 0x70B3D5, 0x493000, 0x493FFF, "Impulse Networks Pte Ltd", "IMPULSE-NETWORKS-PTE" }, { 0x70B3D5, 0x494000, 0x494FFF, "Schildknecht AG", "SCHILDKNECHT" }, { 0x70B3D5, 0x495000, 0x495FFF, "Fiem Industries Ltd.", "FIEM-INDUSTRIES" }, { 0x70B3D5, 0x496000, 0x496FFF, "Profcon AB", "PROFCON-AB" }, { 0x70B3D5, 0x497000, 0x497FFF, "ALBIRAL DISPLAY SOLUTIONS SL", "ALBIRAL-DISPLAY-SOLUTIONS-SL" }, { 0x70B3D5, 0x498000, 0x498FFF, "XGEM SAS", "XGEM-SAS" }, { 0x70B3D5, 0x499000, 0x499FFF, "Pycom Ltd", "PYCOM" }, { 0x70B3D5, 0x49A000, 0x49AFFF, "HAXE SYSTEME", "HAXE-SYSTEME" }, { 0x70B3D5, 0x49B000, 0x49BFFF, "Algodue Elettronica Srl", "ALGODUE-ELETTRONICA-SRL" }, { 0x70B3D5, 0x49C000, 0x49CFFF, "AC Power Corp.", "AC-POWER" }, { 0x70B3D5, 0x49D000, 0x49DFFF, "Shenzhen Chanslink Network Technology Co., Ltd", "SHENZHEN-CHANSLINK-NETWORK" }, { 0x70B3D5, 0x49E000, 0x49EFFF, "CAPTEMP, Lda", "CAPTEMP-LDA" }, { 0x70B3D5, 0x49F000, 0x49FFFF, "B.P.A. SRL", "B-P-A-SRL" }, { 0x70B3D5, 0x4A0000, 0x4A0FFF, "FLUDIA", "FLUDIA" }, { 0x70B3D5, 0x4A1000, 0x4A1FFF, "Herholdt Controls srl", "HERHOLDT-CONTROLS-SRL" }, { 0x70B3D5, 0x4A2000, 0x4A2FFF, "DEVAU Lemppenau GmbH", "DEVAU-LEMPPENAU" }, { 0x70B3D5, 0x4A3000, 0x4A3FFF, "TUALCOM ELEKTRONIK A.S.", "TUALCOM-ELEKTRONIK" }, { 0x70B3D5, 0x4A4000, 0x4A4FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0x4A5000, 0x4A5FFF, "Intermind Inc.", "INTERMIND" }, { 0x70B3D5, 0x4A6000, 0x4A6FFF, "HZHY TECHNOLOGY", "HZHY" }, { 0x70B3D5, 0x4A7000, 0x4A7FFF, "aelettronica group srl", "AELETTRONICA-GROUP-SRL" }, { 0x70B3D5, 0x4A8000, 0x4A8FFF, "Acrodea, Inc.", "ACRODEA" }, { 0x70B3D5, 0x4A9000, 0x4A9FFF, "WARECUBE,INC", "WARECUBE" }, { 0x70B3D5, 0x4AA000, 0x4AAFFF, "Twoway Communications, Inc.", "TWOWAY-COMMUNICATION" }, { 0x70B3D5, 0x4AB000, 0x4ABFFF, "TruTeq Wireless (Pty) Ltd", "TRUTEQ-WIRELESS-PTY" }, { 0x70B3D5, 0x4AC000, 0x4ACFFF, "Microsoft Research", "MICROSOFT-RESEARCH" }, { 0x70B3D5, 0x4AD000, 0x4ADFFF, "GACI", "GACI" }, { 0x70B3D5, 0x4AE000, 0x4AEFFF, "Reinhardt System- und Messelectronic GmbH", "REINHARDT-SYSTEM-UND-MESSELECTRONIC" }, { 0x70B3D5, 0x4AF000, 0x4AFFFF, "Agramkow Fluid Systems A/S", "AGRAMKOW-FLUID-A/S" }, { 0x70B3D5, 0x4B0000, 0x4B0FFF, "Tecogen Inc.", "TECOGEN" }, { 0x70B3D5, 0x4B1000, 0x4B1FFF, "LACE LLC.", "LACE" }, { 0x70B3D5, 0x4B2000, 0x4B2FFF, "Certus Operations Ltd", "CERTUS-OPERATIONS" }, { 0x70B3D5, 0x4B3000, 0x4B3FFF, "Bacsoft", "BACSOFT" }, { 0x70B3D5, 0x4B4000, 0x4B4FFF, "Hi Tech Systems Ltd", "HI-TECH" }, { 0x70B3D5, 0x4B5000, 0x4B5FFF, "Toolplanet Co., Ltd.", "TOOLPLANET" }, { 0x70B3D5, 0x4B6000, 0x4B6FFF, "VEILUX INC.", "VEILUX" }, { 0x70B3D5, 0x4B7000, 0x4B7FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x4B8000, 0x4B8FFF, "International Roll-Call Corporation", "ROLL-CALL" }, { 0x70B3D5, 0x4B9000, 0x4B9FFF, "SHEN ZHEN TTK TECHNOLOGY CO,LTD", "SHEN-ZHEN-TTK" }, { 0x70B3D5, 0x4BA000, 0x4BAFFF, "Sinftech LLC", "SINFTECH" }, { 0x70B3D5, 0x4BB000, 0x4BBFFF, "Plazma-T", "PLAZMA-T" }, { 0x70B3D5, 0x4BC000, 0x4BCFFF, "TIAMA", "TIAMA" }, { 0x70B3D5, 0x4BD000, 0x4BDFFF, "Boulder Amplifiers, Inc.", "BOULDER-AMPLIFIERS" }, { 0x70B3D5, 0x4BE000, 0x4BEFFF, "GY-FX SAS", "GY-FX-SAS" }, { 0x70B3D5, 0x4BF000, 0x4BFFFF, "Exsom Computers LLC", "EXSOM-COMPUTERS" }, { 0x70B3D5, 0x4C0000, 0x4C0FFF, "Technica Engineering GmbH", "TECHNICA-ENGINEERING" }, { 0x70B3D5, 0x4C1000, 0x4C1FFF, "QUERCUS TECHNOLOGIES, S. L.", "QUERCUS-TECHNOLOGIES" }, { 0x70B3D5, 0x4C2000, 0x4C2FFF, "hera Laborsysteme GmbH", "HERA-LABORSYSTEME" }, { 0x70B3D5, 0x4C3000, 0x4C3FFF, "EA Elektroautomatik GmbH & Co. KG", "EA-ELEKTROAUTOMATIK" }, { 0x70B3D5, 0x4C4000, 0x4C4FFF, "OOO Research and Production Center Computer Technologies", "OOO-RESEARCH-AND-PRODUCTION-CENTER-TECHNOLOGIES" }, { 0x70B3D5, 0x4C5000, 0x4C5FFF, "Moving iMage Technologies LLC", "MOVING-IMAGE-TECHNOLOGIES" }, { 0x70B3D5, 0x4C6000, 0x4C6FFF, "BlueBox Video Limited", "BLUEBOX-VIDEO" }, { 0x70B3D5, 0x4C7000, 0x4C7FFF, "SOLVERIS sp. z o.o.", "SOLVERIS-SP-Z-O-O" }, { 0x70B3D5, 0x4C8000, 0x4C8FFF, "Hosokawa Micron Powder Systems", "HOSOKAWA-MICRON-POWDER" }, { 0x70B3D5, 0x4C9000, 0x4C9FFF, "Elsist Srl", "ELSIST-SRL" }, { 0x70B3D5, 0x4CA000, 0x4CAFFF, "PCB Piezotronics", "PCB-PIEZOTRONICS" }, { 0x70B3D5, 0x4CB000, 0x4CBFFF, "Cucos Retail Systems GmbH", "CUCOS-RETAIL" }, { 0x70B3D5, 0x4CC000, 0x4CCFFF, "FRESENIUS MEDICAL CARE", "FRESENIUS-MEDICAL-CARE" }, { 0x70B3D5, 0x4CD000, 0x4CDFFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x70B3D5, 0x4CE000, 0x4CEFFF, "Agilack", "AGILACK" }, { 0x70B3D5, 0x4CF000, 0x4CFFFF, "GREEN HOUSE CO., LTD.", "GREEN-HOUSE" }, { 0x70B3D5, 0x4D0000, 0x4D0FFF, "Codewerk GmbH", "CODEWERK" }, { 0x70B3D5, 0x4D1000, 0x4D1FFF, "Contraves Advanced Devices Sdn. Bhd.", "CONTRAVES-ADVANCED-DEVICES" }, { 0x70B3D5, 0x4D2000, 0x4D2FFF, "Biotage Sweden AB", "BIOTAGE-SWEDEN-AB" }, { 0x70B3D5, 0x4D3000, 0x4D3FFF, "Hefei STAROT Technology Co.,Ltd", "HEFEI-STAROT" }, { 0x70B3D5, 0x4D4000, 0x4D4FFF, "Nortek Global HVAC", "NORTEK-GLOBAL-HVAC" }, { 0x70B3D5, 0x4D5000, 0x4D5FFF, "Moog Rekofa GmbH", "MOOG-REKOFA" }, { 0x70B3D5, 0x4D6000, 0x4D6FFF, "Operational Technology Solutions", "OPERATIONAL-SOLUTIONS" }, { 0x70B3D5, 0x4D7000, 0x4D7FFF, "Technological Ray GmbH", "TECHNOLOGICAL-RAY" }, { 0x70B3D5, 0x4D8000, 0x4D8FFF, "Versilis Inc.", "VERSILIS" }, { 0x70B3D5, 0x4D9000, 0x4D9FFF, "Coda Octopus Products Limited", "CODA-OCTOPUS-PRODUCTS" }, { 0x70B3D5, 0x4DA000, 0x4DAFFF, "RADA Electronics Industries Ltd.", "RADA-ELECTRONICS-INDUSTRIES" }, { 0x70B3D5, 0x4DB000, 0x4DBFFF, "Temperature@lert", "TEMPERATURE@LERT" }, { 0x70B3D5, 0x4DC000, 0x4DCFFF, "JK DEVICE CORPORATION", "JK-DEVICE" }, { 0x70B3D5, 0x4DD000, 0x4DDFFF, "Velvac Incorporated", "VELVAC-INCORPORATED" }, { 0x70B3D5, 0x4DE000, 0x4DEFFF, "Oso Technologies, Inc.", "OSO-TECHNOLOGIES" }, { 0x70B3D5, 0x4DF000, 0x4DFFFF, "Nidec Avtron Automation Corp", "NIDEC-AVTRON-AUTOMATION" }, { 0x70B3D5, 0x4E0000, 0x4E0FFF, "Microvideo", "MICROVIDEO" }, { 0x70B3D5, 0x4E1000, 0x4E1FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x70B3D5, 0x4E2000, 0x4E2FFF, "Transit Solutions, LLC.", "TRANSIT-SOLUTIONS" }, { 0x70B3D5, 0x4E3000, 0x4E3FFF, "adnexo GmbH", "ADNEXO" }, { 0x70B3D5, 0x4E4000, 0x4E4FFF, "W.A. Benjamin Electric Co.", "W-A-BENJAMIN-ELECTRIC" }, { 0x70B3D5, 0x4E5000, 0x4E5FFF, "viZaar industrial imaging AG", "VIZAAR-INDUSTRIAL-IMAGING" }, { 0x70B3D5, 0x4E6000, 0x4E6FFF, "Santa Barbara Imaging Systems", "SANTA-BARBARA-IMAGING" }, { 0x70B3D5, 0x4E7000, 0x4E7FFF, "Digital Domain", "DIGITAL-DOMAIN" }, { 0x70B3D5, 0x4E8000, 0x4E8FFF, "Copious Imaging LLC", "COPIOUS-IMAGING" }, { 0x70B3D5, 0x4E9000, 0x4E9FFF, "ADETEC SAS", "ADETEC-SAS" }, { 0x70B3D5, 0x4EA000, 0x4EAFFF, "Vocality international T/A Cubic", "VOCALITY-T/A-CUBIC" }, { 0x70B3D5, 0x4EB000, 0x4EBFFF, "INFOSOFT DIGITAL DESIGN & SERVICES PRIVATE LIMITED", "INFOSOFT-DIGITAL-DESIGN-SERVICES-PRIVATE" }, { 0x70B3D5, 0x4EC000, 0x4ECFFF, "Hangzhou Youshi Industry Co., Ltd.", "HANGZHOU-YOUSHI-INDUSTRY" }, { 0x70B3D5, 0x4ED000, 0x4EDFFF, "Panoramic Power", "PANORAMIC-POWER" }, { 0x70B3D5, 0x4EE000, 0x4EEFFF, "NOA Co., Ltd.", "NOA" }, { 0x70B3D5, 0x4EF000, 0x4EFFFF, "CMI, Inc.", "CMI" }, { 0x70B3D5, 0x4F0000, 0x4F0FFF, "Li Seng Technology Ltd.,", "LI-SENG" }, { 0x70B3D5, 0x4F1000, 0x4F1FFF, "LG Electronics", "LG-ELECTRONICS" }, { 0x70B3D5, 0x4F2000, 0x4F2FFF, "COMPAL ELECTRONICS, INC.", "COMPAL-ELECTRONICS" }, { 0x70B3D5, 0x4F3000, 0x4F3FFF, "XPS ELETRONICA LTDA", "XPS-ELETRONICA-LTDA" }, { 0x70B3D5, 0x4F4000, 0x4F4FFF, "WiTagg, Inc", "WITAGG" }, { 0x70B3D5, 0x4F5000, 0x4F5FFF, "Orlaco Products B.V.", "ORLACO-PRODUCTS-B-V" }, { 0x70B3D5, 0x4F6000, 0x4F6FFF, "DORLET SAU", "DORLET-SAU" }, { 0x70B3D5, 0x4F7000, 0x4F7FFF, "Foxtel srl", "FOXTEL-SRL" }, { 0x70B3D5, 0x4F8000, 0x4F8FFF, "SICPA SA - GSS", "SICPA-GSS" }, { 0x70B3D5, 0x4F9000, 0x4F9FFF, "OptoPrecision GmbH", "OPTOPRECISION" }, { 0x70B3D5, 0x4FA000, 0x4FAFFF, "Thruvision Limited", "THRUVISION" }, { 0x70B3D5, 0x4FB000, 0x4FBFFF, "MAS Elettronica sas di Mascetti Sandro e C.", "MAS-ELETTRONICA-SAS-DI-MASCETTI-SANDRO-E-C" }, { 0x70B3D5, 0x4FC000, 0x4FCFFF, "Mettler Toledo", "METTLER-TOLEDO" }, { 0x70B3D5, 0x4FD000, 0x4FDFFF, "ENLESS WIRELESS", "ENLESS-WIRELESS" }, { 0x70B3D5, 0x4FE000, 0x4FEFFF, "WiTagg, Inc", "WITAGG" }, { 0x70B3D5, 0x4FF000, 0x4FFFFF, "Shanghai AiGentoo Information Technology Co.,Ltd.", "SHANGHAI-AIGENTOO-INFORMATION" }, { 0x70B3D5, 0x500000, 0x500FFF, "Mistral Solutions Pvt. LTD", "MISTRAL-SOLUTIONS-PVT" }, { 0x70B3D5, 0x501000, 0x501FFF, "Peek Traffic", "PEEK-TRAFFIC" }, { 0x70B3D5, 0x502000, 0x502FFF, "Glidewell Laboratories", "GLIDEWELL-LABORATORIES" }, { 0x70B3D5, 0x503000, 0x503FFF, "Itest communication Tech Co., LTD", "ITEST-COMMUNICATION-TECH" }, { 0x70B3D5, 0x504000, 0x504FFF, "Xsight Systems Ltd.", "XSIGHT" }, { 0x70B3D5, 0x505000, 0x505FFF, "MC2-Technologies", "MC2-TECHNOLOGIES" }, { 0x70B3D5, 0x506000, 0x506FFF, "Tonbo Imaging Pte Ltd", "TONBO-IMAGING-PTE" }, { 0x70B3D5, 0x507000, 0x507FFF, "Human Oriented Technology, Inc.", "HUMAN-ORIENTED" }, { 0x70B3D5, 0x508000, 0x508FFF, "INSEVIS GmbH", "INSEVIS" }, { 0x70B3D5, 0x509000, 0x509FFF, "Tinkerforge GmbH", "TINKERFORGE" }, { 0x70B3D5, 0x50A000, 0x50AFFF, "AMEDTEC Medizintechnik Aue GmbH", "AMEDTEC-MEDIZINTECHNIK-AUE" }, { 0x70B3D5, 0x50B000, 0x50BFFF, "Nordson Corporation", "NORDSON" }, { 0x70B3D5, 0x50C000, 0x50CFFF, "Hangzhou landesker digital technology co. LTD", "HANGZHOU-LANDESKER-DIGITAL" }, { 0x70B3D5, 0x50D000, 0x50DFFF, "CT Company", "CT-COMPANY" }, { 0x70B3D5, 0x50E000, 0x50EFFF, "Micro Trend Automation Co., LTD", "MICRO-TREND-AUTOMATION" }, { 0x70B3D5, 0x50F000, 0x50FFFF, "LLC Sarov Innovative Technologies (WIZOLUTION)", "LLC-SAROV-INNOVATIVE-TECHNOLOGIES-WIZOLUTION" }, { 0x70B3D5, 0x510000, 0x510FFF, "PSL ELEKTRONİK SANAYİ VE TİCARET A.S.", "PSL-ELEKTRONK-SANAY-VE-TCARET" }, { 0x70B3D5, 0x511000, 0x511FFF, "Next Sight srl", "NEXT-SIGHT-SRL" }, { 0x70B3D5, 0x512000, 0x512FFF, "Techno Broad,Inc", "TECHNO-BROAD" }, { 0x70B3D5, 0x513000, 0x513FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x514000, 0x514FFF, "Intelligent Security Systems (ISS)", "INTELLIGENT-SECURITY-ISS" }, { 0x70B3D5, 0x515000, 0x515FFF, "PCSC", "PCSC" }, { 0x70B3D5, 0x516000, 0x516FFF, "LINEAGE POWER PVT LTD.,", "LINEAGE-POWER-PVT" }, { 0x70B3D5, 0x517000, 0x517FFF, "ISPHER", "ISPHER" }, { 0x70B3D5, 0x518000, 0x518FFF, "CRUXELL Corp.", "CRUXELL" }, { 0x70B3D5, 0x519000, 0x519FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x51A000, 0x51AFFF, "Shachihata Inc.", "SHACHIHATA" }, { 0x70B3D5, 0x51B000, 0x51BFFF, "Vitrea Smart Home Technologies", "VITREA-SMART-HOME-TECHNOLOGIES" }, { 0x70B3D5, 0x51C000, 0x51CFFF, "ATX Networks Corp", "ATX-NETWORKS" }, { 0x70B3D5, 0x51D000, 0x51DFFF, "Tecnint HTE SRL", "TECNINT-HTE-SRL" }, { 0x70B3D5, 0x51E000, 0x51EFFF, "Fundación Cardiovascular de Colombia", "FUNDACIN-CARDIOVASCULAR-DE-COLOMBIA" }, { 0x70B3D5, 0x51F000, 0x51FFFF, "VALEO CDA", "VALEO-CDA" }, { 0x70B3D5, 0x520000, 0x520FFF, "promedias AG", "PROMEDIAS" }, { 0x70B3D5, 0x521000, 0x521FFF, "Selex ES Inc.", "SELEX-ES" }, { 0x70B3D5, 0x522000, 0x522FFF, "Syncopated Engineering Inc", "SYNCOPATED-ENGINEERING" }, { 0x70B3D5, 0x523000, 0x523FFF, "Tibit Communications", "TIBIT-COMMUNICATION" }, { 0x70B3D5, 0x524000, 0x524FFF, "Wuxi New Optical Communication Co.,Ltd.", "WUXI-NEW-OPTICAL-COMMUNICATION" }, { 0x70B3D5, 0x525000, 0x525FFF, "Plantiga Technologies Inc", "PLANTIGA-TECHNOLOGIES" }, { 0x70B3D5, 0x526000, 0x526FFF, "FlowNet LLC", "FLOWNET" }, { 0x70B3D5, 0x527000, 0x527FFF, "Procon Electronics Pty Ltd", "PROCON-ELECTRONICS-PTY" }, { 0x70B3D5, 0x528000, 0x528FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x529000, 0x529FFF, "Inventeq B.V.", "INVENTEQ-B-V" }, { 0x70B3D5, 0x52A000, 0x52AFFF, "Dataflex International BV", "DATAFLEX" }, { 0x70B3D5, 0x52B000, 0x52BFFF, "GE Aviation Cheltenham", "GE-AVIATION-CHELTENHAM" }, { 0x70B3D5, 0x52C000, 0x52CFFF, "Centuryarks Ltd.,", "CENTURYARKS" }, { 0x70B3D5, 0x52D000, 0x52DFFF, "Tanaka Electric Industry Co., Ltd.", "TANAKA-ELECTRIC-INDUSTRY" }, { 0x70B3D5, 0x52E000, 0x52EFFF, "Swissponic Sagl", "SWISSPONIC-SAGL" }, { 0x70B3D5, 0x52F000, 0x52FFFF, "R.C. Systems Inc", "R-C" }, { 0x70B3D5, 0x530000, 0x530FFF, "iSiS-Ex Limited", "ISIS-EX" }, { 0x70B3D5, 0x531000, 0x531FFF, "ATEME", "ATEME" }, { 0x70B3D5, 0x532000, 0x532FFF, "Talleres de Escoriaza SA", "TALLERES-DE-ESCORIAZA" }, { 0x70B3D5, 0x533000, 0x533FFF, "Nippon Marine Enterprises, Ltd.", "NIPPON-MARINE-ENTERPRISES" }, { 0x70B3D5, 0x534000, 0x534FFF, "Weihai Weigao Medical Imaging Technology Co., Ltd", "WEIHAI-WEIGAO-MEDICAL-IMAGING" }, { 0x70B3D5, 0x535000, 0x535FFF, "SITA Messtechnik GmbH", "SITA-MESSTECHNIK" }, { 0x70B3D5, 0x536000, 0x536FFF, "LARIMART SPA", "LARIMART-SPA" }, { 0x70B3D5, 0x537000, 0x537FFF, "Biennebi s.r.l.", "BIENNEBI" }, { 0x70B3D5, 0x538000, 0x538FFF, "sydetion UG (h.b.)", "SYDETION-UG-H-B" }, { 0x70B3D5, 0x539000, 0x539FFF, "Tempris GmbH", "TEMPRIS" }, { 0x70B3D5, 0x53A000, 0x53AFFF, "Panoramic Power", "PANORAMIC-POWER" }, { 0x70B3D5, 0x53B000, 0x53BFFF, "Mr.Loop", "MR-LOOP" }, { 0x70B3D5, 0x53C000, 0x53CFFF, "Airthings", "AIRTHINGS" }, { 0x70B3D5, 0x53D000, 0x53DFFF, "ACCEL CORP", "ACCEL" }, { 0x70B3D5, 0x53E000, 0x53EFFF, "Asiga Pty Ltd", "ASIGA-PTY" }, { 0x70B3D5, 0x53F000, 0x53FFFF, "Abbott Diagnostics Technologies AS", "ABBOTT-DIAGNOSTICS-TECHNOLOGIES-AS" }, { 0x70B3D5, 0x540000, 0x540FFF, "KMtronic ltd", "KMTRONIC" }, { 0x70B3D5, 0x541000, 0x541FFF, "Nanjing Pingguang Electronic Technology Co., Ltd", "NANJING-PINGGUANG" }, { 0x70B3D5, 0x542000, 0x542FFF, "RTDS Technologies Inc.", "RTDS-TECHNOLOGIES" }, { 0x70B3D5, 0x543000, 0x543FFF, "wallbe GmbH", "WALLBE" }, { 0x70B3D5, 0x544000, 0x544FFF, "Silicon Safe Ltd", "SILICON-SAFE" }, { 0x70B3D5, 0x545000, 0x545FFF, "Airity Technologies Inc.", "AIRITY-TECHNOLOGIES" }, { 0x70B3D5, 0x546000, 0x546FFF, "Sensefarm AB", "SENSEFARM-AB" }, { 0x70B3D5, 0x547000, 0x547FFF, "CE LINK LIMITED", "CE-LINK" }, { 0x70B3D5, 0x548000, 0x548FFF, "DIGIVERV INC", "DIGIVERV" }, { 0x70B3D5, 0x549000, 0x549FFF, "Procon automatic systems GmbH", "PROCON-AUTOMATIC" }, { 0x70B3D5, 0x54A000, 0x54AFFF, "Digital Instrument Transformers", "DIGITAL-INSTRUMENT-TRANSFORMERS" }, { 0x70B3D5, 0x54B000, 0x54BFFF, "Brakels IT", "BRAKELS-IT" }, { 0x70B3D5, 0x54C000, 0x54CFFF, "Husty M.Styczen J.Hupert Sp.J.", "HUSTY-M-STYCZEN-J-HUPERT-SP-J" }, { 0x70B3D5, 0x54D000, 0x54DFFF, "Qingdao Haitian Weiye Automation Control System Co., Ltd", "QINGDAO-HAITIAN-WEIYE-AUTOMATION-CONTROL-SYSTEM" }, { 0x70B3D5, 0x54E000, 0x54EFFF, "RFL Electronics, Inc.", "RFL-ELECTRONICS" }, { 0x70B3D5, 0x54F000, 0x54FFFF, "Assembly Contracts Limited", "ASSEMBLY-CONTRACTS" }, { 0x70B3D5, 0x550000, 0x550FFF, "Merten GmbH&CoKG", "MERTEN-COKG" }, { 0x70B3D5, 0x551000, 0x551FFF, "infrachip", "INFRACHIP" }, { 0x70B3D5, 0x552000, 0x552FFF, "ALTIT.CO.,Ltd.", "ALTIT" }, { 0x70B3D5, 0x553000, 0x553FFF, "TAALEX Systemtechnik GmbH", "TAALEX-SYSTEMTECHNIK" }, { 0x70B3D5, 0x554000, 0x554FFF, "Teletypes Manufacturing Plant", "TELETYPES-MANUFACTURING-PLANT" }, { 0x70B3D5, 0x555000, 0x555FFF, "SoftLab-NSK", "SOFTLAB-NSK" }, { 0x70B3D5, 0x556000, 0x556FFF, "OHASHI ENGINEERING CO.,LTD.", "OHASHI-ENGINEERING" }, { 0x70B3D5, 0x557000, 0x557FFF, "HEITEC AG", "HEITEC" }, { 0x70B3D5, 0x558000, 0x558FFF, "Multiple Access Communications Ltd", "MULTIPLE-ACCESS-COMMUNICATION" }, { 0x70B3D5, 0x559000, 0x559FFF, "Eagle Mountain Technology", "EAGLE-MOUNTAIN" }, { 0x70B3D5, 0x55A000, 0x55AFFF, "Sontay Ltd.", "SONTAY" }, { 0x70B3D5, 0x55B000, 0x55BFFF, "Procon Electronics Pty Ltd", "PROCON-ELECTRONICS-PTY" }, { 0x70B3D5, 0x55C000, 0x55CFFF, "Saratoga Speed, Inc.", "SARATOGA-SPEED" }, { 0x70B3D5, 0x55D000, 0x55DFFF, "LunaNexus Inc", "LUNANEXUS" }, { 0x70B3D5, 0x55E000, 0x55EFFF, "BRS Sistemas Eletrônicos", "BRS-SISTEMAS-ELETRNICOS" }, { 0x70B3D5, 0x55F000, 0x55FFFF, "Deep BV", "DEEP" }, { 0x70B3D5, 0x560000, 0x560FFF, "DaiShin Information & Communications Co., Ltd", "DAISHIN-INFORMATION-COMMUNICATION" }, { 0x70B3D5, 0x561000, 0x561FFF, "Liberator Pty Ltd", "LIBERATOR-PTY" }, { 0x70B3D5, 0x562000, 0x562FFF, "JD Squared, Inc.", "JD-SQUARED" }, { 0x70B3D5, 0x563000, 0x563FFF, "Zhejiang Hao Teng Electronic Technology Co., Ltd.", "ZHEJIANG-HAO-TENG" }, { 0x70B3D5, 0x564000, 0x564FFF, "christmann informationstechnik + medien GmbH & Co. KG", "CHRISTMANN-INFORMATIONSTECHNIK-+-MEDIEN" }, { 0x70B3D5, 0x565000, 0x565FFF, "Clecell", "CLECELL" }, { 0x70B3D5, 0x566000, 0x566FFF, "Data Informs LLC", "DATA-INFORMS" }, { 0x70B3D5, 0x567000, 0x567FFF, "DogWatch Inc", "DOGWATCH" }, { 0x70B3D5, 0x568000, 0x568FFF, "Small Data Garden Oy", "SMALL-DATA-GARDEN-OY" }, { 0x70B3D5, 0x569000, 0x569FFF, "Nuance Hearing Ltd.", "NUANCE-HEARING" }, { 0x70B3D5, 0x56A000, 0x56AFFF, "Harvard Technology Ltd", "HARVARD" }, { 0x70B3D5, 0x56B000, 0x56BFFF, "S.E.I. CO.,LTD.", "S-E-I" }, { 0x70B3D5, 0x56C000, 0x56CFFF, "Telensa Ltd", "TELENSA" }, { 0x70B3D5, 0x56D000, 0x56DFFF, "Pro-Digital Projetos Eletronicos Ltda", "PRO-DIGITAL-PROJETOS-ELETRONICOS-LTDA" }, { 0x70B3D5, 0x56E000, 0x56EFFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x70B3D5, 0x56F000, 0x56FFFF, "Radikal d.o.o.", "RADIKAL-D-O-O" }, { 0x70B3D5, 0x570000, 0x570FFF, "Bayern Engineering GmbH & Co. KG", "BAYERN-ENGINEERING" }, { 0x70B3D5, 0x571000, 0x571FFF, "Echogear", "ECHOGEAR" }, { 0x70B3D5, 0x572000, 0x572FFF, "CRDE", "CRDE" }, { 0x70B3D5, 0x573000, 0x573FFF, "GEGA ELECTRONIQUE", "GEGA-ELECTRONIQUE" }, { 0x70B3D5, 0x574000, 0x574FFF, "Cloud Intelligence Pty Ltd", "CLOUD-INTELLIGENCE-PTY" }, { 0x70B3D5, 0x575000, 0x575FFF, "Konrad GmbH", "KONRAD" }, { 0x70B3D5, 0x576000, 0x576FFF, "Shandong Hospot IOT Technology Co.,Ltd.", "SHANDONG-HOSPOT-IOT" }, { 0x70B3D5, 0x577000, 0x577FFF, "DSILOG", "DSILOG" }, { 0x70B3D5, 0x578000, 0x578FFF, "IMAGE TECH CO.,LTD", "IMAGE-TECH" }, { 0x70B3D5, 0x579000, 0x579FFF, "Chelsea Technologies Group Ltd", "CHELSEA-TECHNOLOGIES-GROUP" }, { 0x70B3D5, 0x57A000, 0x57AFFF, "Rhythm Engineering, LLC.", "RHYTHM-ENGINEERING" }, { 0x70B3D5, 0x57B000, 0x57BFFF, "ELAMAKATO GmbH", "ELAMAKATO" }, { 0x70B3D5, 0x57C000, 0x57CFFF, "Automata GmbH & Co. KG", "AUTOMATA" }, { 0x70B3D5, 0x57D000, 0x57DFFF, "WICOM1 GmbH", "WICOM1" }, { 0x70B3D5, 0x57E000, 0x57EFFF, "Ascon Tecnologic S.r.l.", "ASCON-TECNOLOGIC" }, { 0x70B3D5, 0x57F000, 0x57FFFF, "MBio Diagnostics, Inc.", "MBIO-DIAGNOSTICS" }, { 0x70B3D5, 0x580000, 0x580FFF, "Private", "PRIVATE" }, { 0x70B3D5, 0x581000, 0x581FFF, "Thermokon Sensortechnik GmbH", "THERMOKON-SENSORTECHNIK" }, { 0x70B3D5, 0x582000, 0x582FFF, "VAGLER International Sdn Bhd", "VAGLER" }, { 0x70B3D5, 0x583000, 0x583FFF, "Ducommun Inc.", "DUCOMMUN" }, { 0x70B3D5, 0x584000, 0x584FFF, "Sertone, a division of Opti-Knights Ltd", "SERTONE-A-DIVISION-OF-OPTI-KNIGHTS" }, { 0x70B3D5, 0x585000, 0x585FFF, "Nefteavtomatika", "NEFTEAVTOMATIKA" }, { 0x70B3D5, 0x586000, 0x586FFF, "Aliter Technologies", "ALITER-TECHNOLOGIES" }, { 0x70B3D5, 0x587000, 0x587FFF, "INCAA Computers", "INCAA-COMPUTERS" }, { 0x70B3D5, 0x588000, 0x588FFF, "LLC NPO Svyazkomplektservis", "LLC-NPO-SVYAZKOMPLEKTSERVIS" }, { 0x70B3D5, 0x589000, 0x589FFF, "Cityntel OU", "CITYNTEL-OU" }, { 0x70B3D5, 0x58A000, 0x58AFFF, "ITK Dr. Kassen GmbH", "ITK-DR-KASSEN" }, { 0x70B3D5, 0x58B000, 0x58BFFF, "Williams Sound LLC", "WILLIAMS-SOUND" }, { 0x70B3D5, 0x58C000, 0x58CFFF, "OPTSYS", "OPTSYS" }, { 0x70B3D5, 0x58D000, 0x58DFFF, "DORLET SAU", "DORLET-SAU" }, { 0x70B3D5, 0x58E000, 0x58EFFF, "VEILUX INC.", "VEILUX" }, { 0x70B3D5, 0x58F000, 0x58FFFF, "LSL systems", "LSL" }, { 0x70B3D5, 0x590000, 0x590FFF, "812th AITS", "812TH-AITS" }, { 0x70B3D5, 0x591000, 0x591FFF, "Medicomp, Inc", "MEDICOMP" }, { 0x70B3D5, 0x592000, 0x592FFF, "CRDE", "CRDE" }, { 0x70B3D5, 0x593000, 0x593FFF, "Asis Pro", "ASIS-PRO" }, { 0x70B3D5, 0x594000, 0x594FFF, "ATE Systems Inc", "ATE" }, { 0x70B3D5, 0x595000, 0x595FFF, "PLR Prueftechnik Linke und Ruehe GmbH", "PLR-PRUEFTECHNIK-LINKE-UND-RUEHE" }, { 0x70B3D5, 0x596000, 0x596FFF, "Mencom Corporation", "MENCOM" }, { 0x70B3D5, 0x597000, 0x597FFF, "VAPE RAIL INTERNATIONAL", "VAPE-RAIL" }, { 0x70B3D5, 0x598000, 0x598FFF, "Ruag Defence France SAS", "RUAG-DEFENCE-FRANCE-SAS" }, { 0x70B3D5, 0x599000, 0x599FFF, "LECO Corporation", "LECO" }, { 0x70B3D5, 0x59A000, 0x59AFFF, "Wagner Group GmbH", "WAGNER-GROUP" }, { 0x70B3D5, 0x59B000, 0x59BFFF, "AUTOMATIZACION Y CONECTIVIDAD SA DE CV", "AUTOMATIZACION-Y-CONECTIVIDAD-DE-CV" }, { 0x70B3D5, 0x59C000, 0x59CFFF, "DAVE SRL", "DAVE-SRL" }, { 0x70B3D5, 0x59D000, 0x59DFFF, "servicios de consultoria independiente S.L.", "SERVICIOS-DE-CONSULTORIA-INDEPENDIENTE" }, { 0x70B3D5, 0x59E000, 0x59EFFF, "i2-electronics", "I2-ELECTRONICS" }, { 0x70B3D5, 0x59F000, 0x59FFFF, "Megger Germany GmbH", "MEGGER-GERMANY" }, { 0x70B3D5, 0x5A0000, 0x5A0FFF, "Ascon Tecnologic S.r.l.", "ASCON-TECNOLOGIC" }, { 0x70B3D5, 0x5A1000, 0x5A1FFF, "BOE Technology Group Co., Ltd.", "BOE-GROUP" }, { 0x70B3D5, 0x5A2000, 0x5A2FFF, "Wallner Automation GmbH", "WALLNER-AUTOMATION" }, { 0x70B3D5, 0x5A3000, 0x5A3FFF, "CT Company", "CT-COMPANY" }, { 0x70B3D5, 0x5A4000, 0x5A4FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x5A5000, 0x5A5FFF, "Rehwork GmbH", "REHWORK" }, { 0x70B3D5, 0x5A6000, 0x5A6FFF, "TimeMachines Inc.", "TIMEMACHINES" }, { 0x70B3D5, 0x5A7000, 0x5A7FFF, "ABB S.p.A.", "ABB" }, { 0x70B3D5, 0x5A8000, 0x5A8FFF, "Farmobile, LLC", "FARMOBILE" }, { 0x70B3D5, 0x5A9000, 0x5A9FFF, "Bunka Shutter Co., Ltd.", "BUNKA-SHUTTER" }, { 0x70B3D5, 0x5AA000, 0x5AAFFF, "Chugoku Electric Manufacturing Co.,Inc", "CHUGOKU-ELECTRIC-MANUFACTURING" }, { 0x70B3D5, 0x5AB000, 0x5ABFFF, "Sea Air and Land Communications Ltd", "SEA-AIR-AND-LAND-COMMUNICATION" }, { 0x70B3D5, 0x5AC000, 0x5ACFFF, "LM-Instruments Oy", "LM-INSTRUMENTS-OY" }, { 0x70B3D5, 0x5AD000, 0x5ADFFF, "Profotech", "PROFOTECH" }, { 0x70B3D5, 0x5AE000, 0x5AEFFF, "TinTec Co., Ltd.", "TINTEC" }, { 0x70B3D5, 0x5AF000, 0x5AFFFF, "JENG IoT BV", "JENG-IOT" }, { 0x70B3D5, 0x5B0000, 0x5B0FFF, "Qxperts Italia S.r.l.", "QXPERTS-ITALIA" }, { 0x70B3D5, 0x5B1000, 0x5B1FFF, "EPD Electronics", "EPD-ELECTRONICS" }, { 0x70B3D5, 0x5B2000, 0x5B2FFF, "Peter Huber Kaeltemaschinenbau AG", "PETER-HUBER-KAELTEMASCHINENBAU" }, { 0x70B3D5, 0x5B3000, 0x5B3FFF, "STENTORIUS by ADI", "STENTORIUS-BY-ADI" }, { 0x70B3D5, 0x5B4000, 0x5B4FFF, "Systems Technologies", "TECHNOLOGIES" }, { 0x70B3D5, 0x5B5000, 0x5B5FFF, "Lehigh Electric Products Co", "LEHIGH-ELECTRIC-PRODUCTS" }, { 0x70B3D5, 0x5B6000, 0x5B6FFF, "Ethical Lighting and Sensor Solutions Limited", "ETHICAL-LIGHTING-AND-SENSOR-SOLUTIONS" }, { 0x70B3D5, 0x5B7000, 0x5B7FFF, "on-systems limited", "ON" }, { 0x70B3D5, 0x5B8000, 0x5B8FFF, "Hella Gutmann Solutions GmbH", "HELLA-GUTMANN-SOLUTIONS" }, { 0x70B3D5, 0x5B9000, 0x5B9FFF, "EIZO RUGGED SOLUTIONS", "EIZO-RUGGED-SOLUTIONS" }, { 0x70B3D5, 0x5BA000, 0x5BAFFF, "INFRASAFE/ ADVANTOR SYSTEMS", "INFRASAFE/-ADVANTOR" }, { 0x70B3D5, 0x5BB000, 0x5BBFFF, "Olympus NDT Canada", "OLYMPUS-NDT-CANADA" }, { 0x70B3D5, 0x5BC000, 0x5BCFFF, "LAMTEC Mess- und Regeltechnik für Feuerungen GmbH & Co. KG", "LAMTEC-MESS-UND-REGELTECHNIK-FUER-FEUERUNGEN" }, { 0x70B3D5, 0x5BD000, 0x5BDFFF, "nexgenwave", "NEXGENWAVE" }, { 0x70B3D5, 0x5BE000, 0x5BEFFF, "CASWA", "CASWA" }, { 0x70B3D5, 0x5BF000, 0x5BFFFF, "Aton srl", "ATON-SRL" }, { 0x70B3D5, 0x5C0000, 0x5C0FFF, "Shenzhen Lianfaxun Electronic Technology Co., Ltd", "SHENZHEN-LIANFAXUN" }, { 0x70B3D5, 0x5C1000, 0x5C1FFF, "Shanghai JaWay Information Technology Co., Ltd.", "SHANGHAI-JAWAY-INFORMATION" }, { 0x70B3D5, 0x5C2000, 0x5C2FFF, "Sono-Tek Corporation", "SONO-TEK" }, { 0x70B3D5, 0x5C3000, 0x5C3FFF, "DIC Corporation", "DIC" }, { 0x70B3D5, 0x5C4000, 0x5C4FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0x5C5000, 0x5C5FFF, "Haag-Streit AG", "HAAG-STREIT" }, { 0x70B3D5, 0x5C6000, 0x5C6FFF, "C4I Systems Ltd", "C4I" }, { 0x70B3D5, 0x5C7000, 0x5C7FFF, "QSnet Visual Technologies Ltd", "QSNET-VISUAL-TECHNOLOGIES" }, { 0x70B3D5, 0x5C8000, 0x5C8FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0x5C9000, 0x5C9FFF, "ICTK Holdings", "ICTK-HOLDINGS" }, { 0x70B3D5, 0x5CA000, 0x5CAFFF, "ACD Elekronik GmbH", "ACD-ELEKRONIK" }, { 0x70B3D5, 0x5CB000, 0x5CBFFF, "ECoCoMS Ltd.", "ECOCOMS" }, { 0x70B3D5, 0x5CC000, 0x5CCFFF, "Akse srl", "AKSE-SRL" }, { 0x70B3D5, 0x5CD000, 0x5CDFFF, "MVT Video Technologies R + H Maedler GbR", "MVT-VIDEO-TECHNOLOGIES-R-+-H-MAEDLER-GBR" }, { 0x70B3D5, 0x5CE000, 0x5CEFFF, "IP Devices", "IP-DEVICES" }, { 0x70B3D5, 0x5CF000, 0x5CFFFF, "PROEL TSI s.r.l.", "PROEL-TSI" }, { 0x70B3D5, 0x5D0000, 0x5D0FFF, "InterTalk Critical Information Systems", "INTERTALK-CRITICAL-INFORMATION" }, { 0x70B3D5, 0x5D1000, 0x5D1FFF, "Software Motor Corp", "SOFTWARE-MOTOR" }, { 0x70B3D5, 0x5D2000, 0x5D2FFF, "Contec Americas Inc.", "CONTEC-AMERICAS" }, { 0x70B3D5, 0x5D3000, 0x5D3FFF, "Supracon AG", "SUPRACON" }, { 0x70B3D5, 0x5D4000, 0x5D4FFF, "RCH ITALIA SPA", "RCH-ITALIA-SPA" }, { 0x70B3D5, 0x5D5000, 0x5D5FFF, "CT Company", "CT-COMPANY" }, { 0x70B3D5, 0x5D6000, 0x5D6FFF, "BMT Messtechnik Gmbh", "BMT-MESSTECHNIK" }, { 0x70B3D5, 0x5D7000, 0x5D7FFF, "Clockwork Dog", "CLOCKWORK-DOG" }, { 0x70B3D5, 0x5D8000, 0x5D8FFF, "LYNX Technik AG", "LYNX-TECHNIK" }, { 0x70B3D5, 0x5D9000, 0x5D9FFF, "Evident Scientific, Inc.", "EVIDENT-SCIENTIFIC" }, { 0x70B3D5, 0x5DA000, 0x5DAFFF, "Valk Welding B.V.", "VALK-WELDING-B-V" }, { 0x70B3D5, 0x5DB000, 0x5DBFFF, "Movicom LLC", "MOVICOM" }, { 0x70B3D5, 0x5DC000, 0x5DCFFF, "FactoryLab B.V.", "FACTORYLAB-B-V" }, { 0x70B3D5, 0x5DD000, 0x5DDFFF, "Theatrixx Technologies, Inc.", "THEATRIXX-TECHNOLOGIES" }, { 0x70B3D5, 0x5DE000, 0x5DEFFF, "Hangzhou AwareTec Technology Co., Ltd", "HANGZHOU-AWARETEC" }, { 0x70B3D5, 0x5DF000, 0x5DFFFF, "Semacon Business Machines", "SEMACON-BUSINESS-MACHINES" }, { 0x70B3D5, 0x5E0000, 0x5E0FFF, "Hexagon Metrology SAS", "HEXAGON-METROLOGY-SAS" }, { 0x70B3D5, 0x5E1000, 0x5E1FFF, "Arevita", "AREVITA" }, { 0x70B3D5, 0x5E2000, 0x5E2FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x70B3D5, 0x5E3000, 0x5E3FFF, "Imecon Engineering SrL", "IMECON-ENGINEERING-SRL" }, { 0x70B3D5, 0x5E4000, 0x5E4FFF, "DSP DESIGN", "DSP-DESIGN" }, { 0x70B3D5, 0x5E5000, 0x5E5FFF, "HAIYANG OLIX CO.,LTD.", "HAIYANG-OLIX" }, { 0x70B3D5, 0x5E6000, 0x5E6FFF, "Mechatronics Systems Private Limited", "MECHATRONICS-PRIVATE" }, { 0x70B3D5, 0x5E7000, 0x5E7FFF, "Heroic Technologies Inc.", "HEROIC-TECHNOLOGIES" }, { 0x70B3D5, 0x5E8000, 0x5E8FFF, "VITEC", "VITEC" }, { 0x70B3D5, 0x5E9000, 0x5E9FFF, "Zehetner-Elektronik GmbH", "ZEHETNER-ELEKTRONIK" }, { 0x70B3D5, 0x5EA000, 0x5EAFFF, "KYS,INC", "KYS" }, { 0x70B3D5, 0x5EB000, 0x5EBFFF, "Loma Systems s.r.o.", "LOMA-S-R-O" }, { 0x70B3D5, 0x5EC000, 0x5ECFFF, "Creative Electronics Ltd", "CREATIVE-ELECTRONICS" }, { 0x70B3D5, 0x5ED000, 0x5EDFFF, "EA Elektroautomatik GmbH & Co. KG", "EA-ELEKTROAUTOMATIK" }, { 0x70B3D5, 0x5EE000, 0x5EEFFF, "Mikrotron Mikrocomputer, Digital- und Analogtechnik GmbH", "MIKROTRON-MIKROCOMPUTER-DIGITAL-UND-ANALOGTECHNIK" }, { 0x70B3D5, 0x5EF000, 0x5EFFFF, "Star Systems International Limited", "STAR" }, { 0x70B3D5, 0x5F0000, 0x5F0FFF, "managee GmbH & Co KG", "MANAGEE" }, { 0x70B3D5, 0x5F1000, 0x5F1FFF, "Fater Rasa Noor", "FATER-RASA-NOOR" }, { 0x70B3D5, 0x5F2000, 0x5F2FFF, "Invisible Systems Limited", "INVISIBLE" }, { 0x70B3D5, 0x5F3000, 0x5F3FFF, "Rtone", "RTONE" }, { 0x70B3D5, 0x5F4000, 0x5F4FFF, "FDSTiming", "FDSTIMING" }, { 0x70B3D5, 0x5F5000, 0x5F5FFF, "Microvision", "MICROVISION" }, { 0x70B3D5, 0x5F6000, 0x5F6FFF, "FreeFlight Systems", "FREEFLIGHT" }, { 0x70B3D5, 0x5F7000, 0x5F7FFF, "JFA Electronics Industry and Commerce EIRELI", "JFA-ELECTRONICS-INDUSTRY-AND-COMMERCE-EIRELI" }, { 0x70B3D5, 0x5F8000, 0x5F8FFF, "Forcite Helmet Systems Pty Ltd", "FORCITE-HELMET-PTY" }, { 0x70B3D5, 0x5F9000, 0x5F9FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x5FA000, 0x5FAFFF, "TEX COMPUTER SRL", "TEX-SRL" }, { 0x70B3D5, 0x5FB000, 0x5FBFFF, "TELEPLATFORMS", "TELEPLATFORMS" }, { 0x70B3D5, 0x5FC000, 0x5FCFFF, "SURTEC", "SURTEC" }, { 0x70B3D5, 0x5FD000, 0x5FDFFF, "Windar Photonics", "WINDAR-PHOTONICS" }, { 0x70B3D5, 0x5FE000, 0x5FEFFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x70B3D5, 0x5FF000, 0x5FFFFF, "Vaisala Oyj", "VAISALA-OYJ" }, { 0x70B3D5, 0x600000, 0x600FFF, "Stellwerk GmbH", "STELLWERK" }, { 0x70B3D5, 0x601000, 0x601FFF, "Tricom Research Inc.", "TRICOM-RESEARCH" }, { 0x70B3D5, 0x602000, 0x602FFF, "Quantum Opus, LLC", "QUANTUM-OPUS" }, { 0x70B3D5, 0x603000, 0x603FFF, "EGISTECH CO.,LTD.", "EGISTECH" }, { 0x70B3D5, 0x604000, 0x604FFF, "Foxtrot Research Corp", "FOXTROT-RESEARCH" }, { 0x70B3D5, 0x605000, 0x605FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x606000, 0x606FFF, "OOO Research and Production Center Computer Technologies", "OOO-RESEARCH-AND-PRODUCTION-CENTER-TECHNOLOGIES" }, { 0x70B3D5, 0x607000, 0x607FFF, "ATEME", "ATEME" }, { 0x70B3D5, 0x608000, 0x608FFF, "EIIT SA", "EIIT" }, { 0x70B3D5, 0x609000, 0x609FFF, "PBSI Group Limited", "PBSI-GROUP" }, { 0x70B3D5, 0x60A000, 0x60AFFF, "TATA POWER SED", "TATA-POWER-SED" }, { 0x70B3D5, 0x60B000, 0x60BFFF, "Edgeware AB", "EDGEWARE-AB" }, { 0x70B3D5, 0x60C000, 0x60CFFF, "IST ElektronikgesmbH", "IST-ELEKTRONIKGESMBH" }, { 0x70B3D5, 0x60D000, 0x60DFFF, "Link Electric & Safety Control Co.", "LINK-ELECTRIC-SAFETY-CONTROL" }, { 0x70B3D5, 0x60E000, 0x60EFFF, "HDANYWHERE", "HDANYWHERE" }, { 0x70B3D5, 0x60F000, 0x60FFFF, "Tanaka Information System, LLC.", "TANAKA-INFORMATION-SYSTEM" }, { 0x70B3D5, 0x610000, 0x610FFF, "POLVISION", "POLVISION" }, { 0x70B3D5, 0x611000, 0x611FFF, "Avionica", "AVIONICA" }, { 0x70B3D5, 0x612000, 0x612FFF, "Edge Power Solutions", "EDGE-POWER-SOLUTIONS" }, { 0x70B3D5, 0x613000, 0x613FFF, "Suprock Technologies", "SUPROCK-TECHNOLOGIES" }, { 0x70B3D5, 0x614000, 0x614FFF, "QUALITTEQ LLC", "QUALITTEQ" }, { 0x70B3D5, 0x615000, 0x615FFF, "JSC OTZVUK", "JSC-OTZVUK" }, { 0x70B3D5, 0x616000, 0x616FFF, "Axxess Identification Ltd", "AXXESS-IDENTIFICATION" }, { 0x70B3D5, 0x617000, 0x617FFF, "Cominfo, Inc.", "COMINFO" }, { 0x70B3D5, 0x618000, 0x618FFF, "Motec Pty Ltd", "MOTEC-PTY" }, { 0x70B3D5, 0x619000, 0x619FFF, "ZAO ZEO", "ZAO-ZEO" }, { 0x70B3D5, 0x61A000, 0x61AFFF, "Rocket Lab Ltd.", "ROCKET-LAB" }, { 0x70B3D5, 0x61B000, 0x61BFFF, "Nubewell Networks Pvt Ltd", "NUBEWELL-NETWORKS-PVT" }, { 0x70B3D5, 0x61C000, 0x61CFFF, "Earth Works", "EARTH-WORKS" }, { 0x70B3D5, 0x61D000, 0x61DFFF, "Telonic Berkeley Inc", "TELONIC-BERKELEY" }, { 0x70B3D5, 0x61E000, 0x61EFFF, "PKE Electronics AG", "PKE-ELECTRONICS" }, { 0x70B3D5, 0x61F000, 0x61FFFF, "Labotect Labor-Technik-Göttingen GmbH", "LABOTECT-LABOR-TECHNIK-GOETTINGEN" }, { 0x70B3D5, 0x620000, 0x620FFF, "Orlaco Products B.V.", "ORLACO-PRODUCTS-B-V" }, { 0x70B3D5, 0x621000, 0x621FFF, "SERTEC SRL", "SERTEC-SRL" }, { 0x70B3D5, 0x622000, 0x622FFF, "PCS Inc.", "PCS" }, { 0x70B3D5, 0x623000, 0x623FFF, "Beijing HuaLian Technology Co, Ltd.", "BEIJING-HUALIAN" }, { 0x70B3D5, 0x624000, 0x624FFF, "EBE Mobility & Green Energy GmbH", "EBE-MOBILITY-GREEN-ENERGY" }, { 0x70B3D5, 0x625000, 0x625FFF, "VX Instruments GmbH", "VX-INSTRUMENTS" }, { 0x70B3D5, 0x626000, 0x626FFF, "KRONOTECH SRL", "KRONOTECH-SRL" }, { 0x70B3D5, 0x627000, 0x627FFF, "EarTex", "EARTEX" }, { 0x70B3D5, 0x628000, 0x628FFF, "MECT SRL", "MECT-SRL" }, { 0x70B3D5, 0x629000, 0x629FFF, "OZRAY", "OZRAY" }, { 0x70B3D5, 0x62A000, 0x62AFFF, "DOGA", "DOGA" }, { 0x70B3D5, 0x62B000, 0x62BFFF, "Silicann Systems GmbH", "SILICANN" }, { 0x70B3D5, 0x62C000, 0x62CFFF, "OOO NTC Rotek", "OOO-NTC-ROTEK" }, { 0x70B3D5, 0x62D000, 0x62DFFF, "elements", "ELEMENTS" }, { 0x70B3D5, 0x62E000, 0x62EFFF, "LINEAGE POWER PVT LTD.,", "LINEAGE-POWER-PVT" }, { 0x70B3D5, 0x62F000, 0x62FFFF, "BARCO, s.r.o.", "BARCO-S-R-O" }, { 0x70B3D5, 0x630000, 0x630FFF, "LGE", "LGE" }, { 0x70B3D5, 0x631000, 0x631FFF, "SENSO2ME", "SENSO2ME" }, { 0x70B3D5, 0x632000, 0x632FFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x70B3D5, 0x633000, 0x633FFF, "OBSERVER FOUNDATION", "OBSERVER-FOUNDATION" }, { 0x70B3D5, 0x634000, 0x634FFF, "idaqs Co.,Ltd.", "IDAQS" }, { 0x70B3D5, 0x635000, 0x635FFF, "Cosylab d.d.", "COSYLAB-D-D" }, { 0x70B3D5, 0x636000, 0x636FFF, "Globalcom Engineering SPA", "GLOBALCOM-ENGINEERING-SPA" }, { 0x70B3D5, 0x637000, 0x637FFF, "INEO-SENSE", "INEO-SENSE" }, { 0x70B3D5, 0x638000, 0x638FFF, "Parkalot Denmark ApS", "PARKALOT-DENMARK-APS" }, { 0x70B3D5, 0x639000, 0x639FFF, "DORLET SAU", "DORLET-SAU" }, { 0x70B3D5, 0x63A000, 0x63AFFF, "DAVE SRL", "DAVE-SRL" }, { 0x70B3D5, 0x63B000, 0x63BFFF, "Lazer Safe Pty Ltd", "LAZER-SAFE-PTY" }, { 0x70B3D5, 0x63C000, 0x63CFFF, "Pivothead", "PIVOTHEAD" }, { 0x70B3D5, 0x63D000, 0x63DFFF, "Topic Embedded Products B.V.", "TOPIC-EMBEDDED-PRODUCTS-B-V" }, { 0x70B3D5, 0x63E000, 0x63EFFF, "RIKEN OPTECH CORPORATION", "RIKEN-OPTECH" }, { 0x70B3D5, 0x63F000, 0x63FFFF, "DARBS Inc.", "DARBS" }, { 0x70B3D5, 0x640000, 0x640FFF, "Electronic Equipment Company Pvt. Ltd.", "EQUIPMENT-COMPANY-PVT" }, { 0x70B3D5, 0x641000, 0x641FFF, "Burk Technology", "BURK" }, { 0x70B3D5, 0x642000, 0x642FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x643000, 0x643FFF, "Marques,S.A.", "MARQUES" }, { 0x70B3D5, 0x644000, 0x644FFF, "ATX Networks Corp", "ATX-NETWORKS" }, { 0x70B3D5, 0x645000, 0x645FFF, "Project Decibel, Inc.", "PROJECT-DECIBEL" }, { 0x70B3D5, 0x646000, 0x646FFF, "Xirgo Technologies LLC", "XIRGO-TECHNOLOGIES" }, { 0x70B3D5, 0x647000, 0x647FFF, "KZTA", "KZTA" }, { 0x70B3D5, 0x648000, 0x648FFF, "Magnamed Tecnologia Medica S/A", "MAGNAMED-TECNOLOGIA-MEDICA-S/A" }, { 0x70B3D5, 0x649000, 0x649FFF, "swissled technologies AG", "SWISSLED-TECHNOLOGIES" }, { 0x70B3D5, 0x64A000, 0x64AFFF, "Netbric Technology Co.,Ltd.", "NETBRIC" }, { 0x70B3D5, 0x64B000, 0x64BFFF, "Kalfire", "KALFIRE" }, { 0x70B3D5, 0x64C000, 0x64CFFF, "ACEMIS FRANCE", "ACEMIS-FRANCE" }, { 0x70B3D5, 0x64D000, 0x64DFFF, "SANMINA ISRAEL MEDICAL SYSTEMS LTD", "SANMINA-ISRAEL-MEDICAL" }, { 0x70B3D5, 0x64E000, 0x64EFFF, "BigStuff3, Inc.", "BIGSTUFF3" }, { 0x70B3D5, 0x64F000, 0x64FFFF, "GUNMA ELECTRONICS CO LTD", "GUNMA-ELECTRONICS" }, { 0x70B3D5, 0x650000, 0x650FFF, "GIFAS-ELECTRIC GmbH", "GIFAS-ELECTRIC" }, { 0x70B3D5, 0x651000, 0x651FFF, "Roxford", "ROXFORD" }, { 0x70B3D5, 0x652000, 0x652FFF, "Robert Bosch, LLC", "ROBERT-BOSCH" }, { 0x70B3D5, 0x653000, 0x653FFF, "Luxar Tech, Inc.", "LUXAR-TECH" }, { 0x70B3D5, 0x654000, 0x654FFF, "EMAC, Inc.", "EMAC" }, { 0x70B3D5, 0x655000, 0x655FFF, "AOT System GmbH", "AOT-SYSTEM" }, { 0x70B3D5, 0x656000, 0x656FFF, "SonoSound ApS", "SONOSOUND-APS" }, { 0x70B3D5, 0x657000, 0x657FFF, "ID Quantique SA", "ID-QUANTIQUE" }, { 0x70B3D5, 0x658000, 0x658FFF, "emperor brands", "EMPEROR-BRANDS" }, { 0x70B3D5, 0x659000, 0x659FFF, "E2G srl", "E2G-SRL" }, { 0x70B3D5, 0x65A000, 0x65AFFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x65B000, 0x65BFFF, "Roush", "ROUSH" }, { 0x70B3D5, 0x65C000, 0x65CFFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x65D000, 0x65DFFF, "GEGA ELECTRONIQUE", "GEGA-ELECTRONIQUE" }, { 0x70B3D5, 0x65E000, 0x65EFFF, "Season Electronics Ltd", "SEASON-ELECTRONICS" }, { 0x70B3D5, 0x65F000, 0x65FFFF, "Axnes AS", "AXNES-AS" }, { 0x70B3D5, 0x660000, 0x660FFF, "Smart Service Technologies CO., LTD", "SMART-SERVICE-TECHNOLOGIES" }, { 0x70B3D5, 0x661000, 0x661FFF, "DesignA Electronics Limited", "DESIGNA-ELECTRONICS" }, { 0x70B3D5, 0x662000, 0x662FFF, "Icon Industrial Engineering", "ICON-INDUSTRIAL-ENGINEERING" }, { 0x70B3D5, 0x663000, 0x663FFF, "Intrinsic Group Limited", "INTRINSIC-GROUP" }, { 0x70B3D5, 0x664000, 0x664FFF, "Sankyo Intec co.,ltd", "SANKYO-INTEC" }, { 0x70B3D5, 0x665000, 0x665FFF, "CertUsus GmbH", "CERTUSUS" }, { 0x70B3D5, 0x666000, 0x666FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x667000, 0x667FFF, "CT Company", "CT-COMPANY" }, { 0x70B3D5, 0x668000, 0x668FFF, "Öresundskraft AB", "OERESUNDSKRAFT-AB" }, { 0x70B3D5, 0x669000, 0x669FFF, "Panoramic Power", "PANORAMIC-POWER" }, { 0x70B3D5, 0x66A000, 0x66AFFF, "Nomadic", "NOMADIC" }, { 0x70B3D5, 0x66B000, 0x66BFFF, "Innitive B.V.", "INNITIVE-B-V" }, { 0x70B3D5, 0x66C000, 0x66CFFF, "KRISTECH Krzysztof Kajstura", "KRISTECH-KRZYSZTOF-KAJSTURA" }, { 0x70B3D5, 0x66D000, 0x66DFFF, "Sanmina Israel", "SANMINA-ISRAEL" }, { 0x70B3D5, 0x66E000, 0x66EFFF, "SIAME", "SIAME" }, { 0x70B3D5, 0x66F000, 0x66FFFF, "Simplified MFG", "SIMPLIFIED-MFG" }, { 0x70B3D5, 0x670000, 0x670FFF, "Particle sizing systems", "PARTICLE-SIZING" }, { 0x70B3D5, 0x671000, 0x671FFF, "Sea Shell Corporation", "SEA-SHELL" }, { 0x70B3D5, 0x672000, 0x672FFF, "KLEIBER Infrared GmbH", "KLEIBER-INFRARED" }, { 0x70B3D5, 0x673000, 0x673FFF, "ACD Elekronik GmbH", "ACD-ELEKRONIK" }, { 0x70B3D5, 0x674000, 0x674FFF, "Fortress Cyber Security", "FORTRESS-CYBER-SECURITY" }, { 0x70B3D5, 0x675000, 0x675FFF, "alfamation spa", "ALFAMATION-SPA" }, { 0x70B3D5, 0x676000, 0x676FFF, "samwooeleco", "SAMWOOELECO" }, { 0x70B3D5, 0x677000, 0x677FFF, "Fraunhofer-Institut IIS", "FRAUNHOFER-INSTITUT-IIS" }, { 0x70B3D5, 0x678000, 0x678FFF, "The Dini Group, La Jolla inc.", "THE-DINI-GROUP-LA-JOLLA" }, { 0x70B3D5, 0x679000, 0x679FFF, "EMAC, Inc.", "EMAC" }, { 0x70B3D5, 0x67A000, 0x67AFFF, "Micatu", "MICATU" }, { 0x70B3D5, 0x67B000, 0x67BFFF, "Stesalit Systems Ltd", "STESALIT" }, { 0x70B3D5, 0x67C000, 0x67CFFF, "Benchmark Electronics - Secure Technology", "BENCHMARK-ELECTRONICS-SECURE" }, { 0x70B3D5, 0x67D000, 0x67DFFF, "Acrodea, Inc.", "ACRODEA" }, { 0x70B3D5, 0x67E000, 0x67EFFF, "Season Electronics Ltd", "SEASON-ELECTRONICS" }, { 0x70B3D5, 0x67F000, 0x67FFFF, "IAAN Co., Ltd", "IAAN" }, { 0x70B3D5, 0x680000, 0x680FFF, "BASF Corporation", "BASF" }, { 0x70B3D5, 0x681000, 0x681FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0x682000, 0x682FFF, "Rosslare Enterprises Limited", "ROSSLARE-ENTERPRISES" }, { 0x70B3D5, 0x683000, 0x683FFF, "DECYBEN", "DECYBEN" }, { 0x70B3D5, 0x684000, 0x684FFF, "LECO Corporation", "LECO" }, { 0x70B3D5, 0x685000, 0x685FFF, "LDA Audiotech", "LDA-AUDIOTECH" }, { 0x70B3D5, 0x686000, 0x686FFF, "Access Protocol Pty Ltd", "ACCESS-PROTOCOL-PTY" }, { 0x70B3D5, 0x687000, 0x687FFF, "Volution Group UK", "VOLUTION-GROUP-UK" }, { 0x70B3D5, 0x688000, 0x688FFF, "MG s.r.l.", "MG" }, { 0x70B3D5, 0x689000, 0x689FFF, "Prisma Telecom Testing Srl", "PRISMA-TELECOM-TESTING-SRL" }, { 0x70B3D5, 0x68A000, 0x68AFFF, "Advanced Telecommunications Research Institute International", "ADVANCED-TELECOMMUNICATIONS-RESEARCH-INSTITUTE" }, { 0x70B3D5, 0x68B000, 0x68BFFF, "Sadel S.p.A.", "SADEL" }, { 0x70B3D5, 0x68C000, 0x68CFFF, "ND METER", "ND-METER" }, { 0x70B3D5, 0x68D000, 0x68DFFF, "Meta-chrom Co. Ltd.", "META-CHROM" }, { 0x70B3D5, 0x68E000, 0x68EFFF, "CEA Technologies Pty Ltd", "CEA-TECHNOLOGIES-PTY" }, { 0x70B3D5, 0x68F000, 0x68FFFF, "PEEK TRAFFIC", "PEEK-TRAFFIC" }, { 0x70B3D5, 0x690000, 0x690FFF, "Sicon srl", "SICON-SRL" }, { 0x70B3D5, 0x691000, 0x691FFF, "PEEK TRAFFIC", "PEEK-TRAFFIC" }, { 0x70B3D5, 0x692000, 0x692FFF, "HOSIN INDUSTRIAL LIMITED", "HOSIN-INDUSTRIAL" }, { 0x70B3D5, 0x693000, 0x693FFF, "Altron, a.s.", "ALTRON" }, { 0x70B3D5, 0x694000, 0x694FFF, "MoviTHERM", "MOVITHERM" }, { 0x70B3D5, 0x695000, 0x695FFF, "GSP Sprachtechnologie GmbH", "GSP-SPRACHTECHNOLOGIE" }, { 0x70B3D5, 0x696000, 0x696FFF, "Open Grow", "OPEN-GROW" }, { 0x70B3D5, 0x697000, 0x697FFF, "Alazar Technologies Inc.", "ALAZAR-TECHNOLOGIES" }, { 0x70B3D5, 0x698000, 0x698FFF, "ZIEHL-ABEGG SE", "ZIEHL-ABEGG-SE" }, { 0x70B3D5, 0x699000, 0x699FFF, "Flextronics International Kft", "FLEXTRONICS-KFT" }, { 0x70B3D5, 0x69A000, 0x69AFFF, "Altaneos", "ALTANEOS" }, { 0x70B3D5, 0x69B000, 0x69BFFF, "HORIZON.INC", "HORIZON" }, { 0x70B3D5, 0x69C000, 0x69CFFF, "Keepen", "KEEPEN" }, { 0x70B3D5, 0x69D000, 0x69DFFF, "JPEmbedded Mazan Filipek Sp. J.", "JPEMBEDDED-MAZAN-FILIPEK-SP-J" }, { 0x70B3D5, 0x69E000, 0x69EFFF, "PTYPE Co., LTD.", "PTYPE" }, { 0x70B3D5, 0x69F000, 0x69FFFF, "T+A elektroakustik GmbH & Co.KG", "T+A-ELEKTROAKUSTIK" }, { 0x70B3D5, 0x6A0000, 0x6A0FFF, "Active Research Limited", "ACTIVE-RESEARCH" }, { 0x70B3D5, 0x6A1000, 0x6A1FFF, "GLIAL TECHNOLOGY", "GLIAL" }, { 0x70B3D5, 0x6A2000, 0x6A2FFF, "Root Automation", "ROOT-AUTOMATION" }, { 0x70B3D5, 0x6A3000, 0x6A3FFF, "OutdoorLink", "OUTDOORLINK" }, { 0x70B3D5, 0x6A4000, 0x6A4FFF, "Acrodea, Inc.", "ACRODEA" }, { 0x70B3D5, 0x6A5000, 0x6A5FFF, "Akenori PTE LTD", "AKENORI-PTE" }, { 0x70B3D5, 0x6A6000, 0x6A6FFF, "WOW System", "WOW-SYSTEM" }, { 0x70B3D5, 0x6A7000, 0x6A7FFF, "Partilink Inc.", "PARTILINK" }, { 0x70B3D5, 0x6A8000, 0x6A8FFF, "Vitsch Electronics", "VITSCH-ELECTRONICS" }, { 0x70B3D5, 0x6A9000, 0x6A9FFF, "OHMORI ELECTRIC INDUSTRIES CO.LTD", "OHMORI-ELECTRIC-INDUSTRIES" }, { 0x70B3D5, 0x6AA000, 0x6AAFFF, "Intermobility", "INTERMOBILITY" }, { 0x70B3D5, 0x6AB000, 0x6ABFFF, "ARROW (CHINA) ELECTRONICS TRADING CO., LTD.", "ARROW-CHINA-ELECTRONICS-TRADING" }, { 0x70B3D5, 0x6AC000, 0x6ACFFF, "Ketronixs Sdn Bhd", "KETRONIXS" }, { 0x70B3D5, 0x6AD000, 0x6ADFFF, "CONNIT", "CONNIT" }, { 0x70B3D5, 0x6AE000, 0x6AEFFF, "Hangzhou Weimu Technology Co,.Ltd.", "HANGZHOU-WEIMU" }, { 0x70B3D5, 0x6AF000, 0x6AFFFF, "Sensorberg GmbH", "SENSORBERG" }, { 0x70B3D5, 0x6B0000, 0x6B0FFF, "PTYPE Co., LTD.", "PTYPE" }, { 0x70B3D5, 0x6B1000, 0x6B1FFF, "TTC TELEKOMUNIKACE, s.r.o.", "TTC-TELEKOMUNIKACE-S-R-O" }, { 0x70B3D5, 0x6B2000, 0x6B2FFF, "CRDE", "CRDE" }, { 0x70B3D5, 0x6B3000, 0x6B3FFF, "DuraComm Corporation", "DURACOMM" }, { 0x70B3D5, 0x6B4000, 0x6B4FFF, "Nudron IoT Solutions LLP", "NUDRON-IOT-SOLUTIONS-LLP" }, { 0x70B3D5, 0x6B5000, 0x6B5FFF, "ART SPA", "ART-SPA" }, { 0x70B3D5, 0x6B6000, 0x6B6FFF, "INRADIOS GmbH", "INRADIOS" }, { 0x70B3D5, 0x6B7000, 0x6B7FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x70B3D5, 0x6B8000, 0x6B8FFF, "BT9", "BT9" }, { 0x70B3D5, 0x6B9000, 0x6B9FFF, "Becton Dickinson", "BECTON-DICKINSON" }, { 0x70B3D5, 0x6BA000, 0x6BAFFF, "Integrotech sp. z o.o.", "INTEGROTECH-SP-Z-O-O" }, { 0x70B3D5, 0x6BB000, 0x6BBFFF, "LUCEO", "LUCEO" }, { 0x70B3D5, 0x6BC000, 0x6BCFFF, "EA Elektroautomatik GmbH & Co. KG", "EA-ELEKTROAUTOMATIK" }, { 0x70B3D5, 0x6BD000, 0x6BDFFF, "RCH Vietnam Limited Liability Company", "RCH-VIETNAM-LIABILITY-COMPANY" }, { 0x70B3D5, 0x6BE000, 0x6BEFFF, "VANTAGE INTEGRATED SECURITY SOLUTIONS PVT LTD", "VANTAGE-INTEGRATED-SECURITY-SOLUTIONS-PVT" }, { 0x70B3D5, 0x6BF000, 0x6BFFFF, "Otto Bihler Maschinenfabrik GmbH & Co. KG", "OTTO-BIHLER-MASCHINENFABRIK" }, { 0x70B3D5, 0x6C0000, 0x6C0FFF, "LLC NTZ Mekhanotronika", "LLC-NTZ-MEKHANOTRONIKA" }, { 0x70B3D5, 0x6C1000, 0x6C1FFF, "R.A.I.T.88 Srl", "R-A-I-T-88-SRL" }, { 0x70B3D5, 0x6C2000, 0x6C2FFF, "TEX COMPUTER SRL", "TEX-SRL" }, { 0x70B3D5, 0x6C3000, 0x6C3FFF, "BEIJING ZGH SECURITY RESEARCH INSTITUTE CO., LTD", "BEIJING-ZGH-SECURITY-RESEARCH-INSTITUTE" }, { 0x70B3D5, 0x6C4000, 0x6C4FFF, "Veo Robotics, Inc.", "VEO-ROBOTICS" }, { 0x70B3D5, 0x6C5000, 0x6C5FFF, "CJSC «Russian telecom equipment company» (CJSC RTEC)", "CJSC-RUSSIAN-TELECOM-EQUIPMENT-COMPANY-CJSC-RTEC" }, { 0x70B3D5, 0x6C6000, 0x6C6FFF, "Abbott Diagnostics Technologies AS", "ABBOTT-DIAGNOSTICS-TECHNOLOGIES-AS" }, { 0x70B3D5, 0x6C7000, 0x6C7FFF, "Becton Dickinson", "BECTON-DICKINSON" }, { 0x70B3D5, 0x6C8000, 0x6C8FFF, "Sicon srl", "SICON-SRL" }, { 0x70B3D5, 0x6C9000, 0x6C9FFF, "Redstone Sunshine(Beijing)Technology Co.,Ltd.", "REDSTONE-SUNSHINE-BEIJING" }, { 0x70B3D5, 0x6CA000, 0x6CAFFF, "LINEAGE POWER PVT LTD.,", "LINEAGE-POWER-PVT" }, { 0x70B3D5, 0x6CB000, 0x6CBFFF, "NAJIN automation", "NAJIN-AUTOMATION" }, { 0x70B3D5, 0x6CC000, 0x6CCFFF, "ARINAX", "ARINAX" }, { 0x70B3D5, 0x6CD000, 0x6CDFFF, "NORTHBOUND NETWORKS PTY. LTD.", "NORTHBOUND-NETWORKS-PTY" }, { 0x70B3D5, 0x6CE000, 0x6CEFFF, "Eredi Giuseppe Mercuri SPA", "EREDI-GIUSEPPE-MERCURI-SPA" }, { 0x70B3D5, 0x6CF000, 0x6CFFFF, "Private", "PRIVATE" }, { 0x70B3D5, 0x6D0000, 0x6D0FFF, "Code Blue Corporation", "CODE-BLUE" }, { 0x70B3D5, 0x6D1000, 0x6D1FFF, "Visual Engineering Technologies Ltd", "VISUAL-ENGINEERING-TECHNOLOGIES" }, { 0x70B3D5, 0x6D2000, 0x6D2FFF, "Ahrens & Birner Company GmbH", "AHRENS-BIRNER-COMPANY" }, { 0x70B3D5, 0x6D3000, 0x6D3FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0x6D4000, 0x6D4FFF, "Telerob Gesellschaft für Fernhantierungs", "TELEROB-GESELLSCHAFT-FUER-FERNHANTIERUNGS" }, { 0x70B3D5, 0x6D5000, 0x6D5FFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x70B3D5, 0x6D6000, 0x6D6FFF, "KMtronic ltd", "KMTRONIC" }, { 0x70B3D5, 0x6D7000, 0x6D7FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x6D8000, 0x6D8FFF, "Shanghai YuanAn Environmental Protection Technology Co.,Ltd", "SHANGHAI-YUANAN-ENVIRONMENTAL-PROTECTION" }, { 0x70B3D5, 0x6D9000, 0x6D9FFF, "VECTARE Inc", "VECTARE" }, { 0x70B3D5, 0x6DA000, 0x6DAFFF, "Enovative Networks, Inc.", "ENOVATIVE-NETWORKS" }, { 0x70B3D5, 0x6DB000, 0x6DBFFF, "Techimp - Altanova group Srl", "TECHIMP-ALTANOVA-GROUP-SRL" }, { 0x70B3D5, 0x6DC000, 0x6DCFFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0x6DD000, 0x6DDFFF, "Abbott Diagnostics Technologies AS", "ABBOTT-DIAGNOSTICS-TECHNOLOGIES-AS" }, { 0x70B3D5, 0x6DE000, 0x6DEFFF, "Ametek Solidstate Controls", "AMETEK-SOLIDSTATE-CONTROLS" }, { 0x70B3D5, 0x6DF000, 0x6DFFFF, "Mango DSP, Inc.", "MANGO-DSP" }, { 0x70B3D5, 0x6E0000, 0x6E0FFF, "ABB SPA - DMPC", "ABB-SPA-DMPC" }, { 0x70B3D5, 0x6E1000, 0x6E1FFF, "Shanghai Holystar Information Technology Co.,Ltd", "SHANGHAI-HOLYSTAR-INFORMATION" }, { 0x70B3D5, 0x6E2000, 0x6E2FFF, "E-Controls", "E-CONTROLS" }, { 0x70B3D5, 0x6E3000, 0x6E3FFF, "SHEN ZHEN QLS ELECTRONIC TECHNOLOGY CO.,LTD.", "SHEN-ZHEN-QLS" }, { 0x70B3D5, 0x6E4000, 0x6E4FFF, "Institute of Power Engineering, Gdansk Division", "INSTITUTE-OF-POWER-ENGINEERING-GDANSK-DIVISION" }, { 0x70B3D5, 0x6E5000, 0x6E5FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0x6E6000, 0x6E6FFF, "Eleven Engineering Incorporated", "ELEVEN-ENGINEERING-INCORPORATED" }, { 0x70B3D5, 0x6E7000, 0x6E7FFF, "AML", "AML" }, { 0x70B3D5, 0x6E8000, 0x6E8FFF, "Blu Wireless Technology Ltd", "BLU-WIRELESS" }, { 0x70B3D5, 0x6E9000, 0x6E9FFF, "Krontech", "KRONTECH" }, { 0x70B3D5, 0x6EA000, 0x6EAFFF, "Edgeware AB", "EDGEWARE-AB" }, { 0x70B3D5, 0x6EB000, 0x6EBFFF, "QUANTAFLOW", "QUANTAFLOW" }, { 0x70B3D5, 0x6EC000, 0x6ECFFF, "CRDE", "CRDE" }, { 0x70B3D5, 0x6ED000, 0x6EDFFF, "Wiingtech International Co. LTD.", "WIINGTECH" }, { 0x70B3D5, 0x6EE000, 0x6EEFFF, "HANKOOK CTEC CO,. LTD.", "HANKOOK-CTEC" }, { 0x70B3D5, 0x6EF000, 0x6EFFFF, "Beringar", "BERINGAR" }, { 0x70B3D5, 0x6F0000, 0x6F0FFF, "iTelaSoft Pvt Ltd", "ITELASOFT-PVT" }, { 0x70B3D5, 0x6F1000, 0x6F1FFF, "Discover Battery", "DISCOVER-BATTERY" }, { 0x70B3D5, 0x6F2000, 0x6F2FFF, "P&C Micro's Pty Ltd", "P-C-MICRO-S-PTY" }, { 0x70B3D5, 0x6F3000, 0x6F3FFF, "iungo", "IUNGO" }, { 0x70B3D5, 0x6F4000, 0x6F4FFF, "WDI Wise Device Inc.", "WDI-WISE-DEVICE" }, { 0x70B3D5, 0x6F5000, 0x6F5FFF, "Cominfo, Inc.", "COMINFO" }, { 0x70B3D5, 0x6F6000, 0x6F6FFF, "Acco Brands Europe", "ACCO-BRANDS-EUROPE" }, { 0x70B3D5, 0x6F7000, 0x6F7FFF, "EGICON SRL", "EGICON-SRL" }, { 0x70B3D5, 0x6F8000, 0x6F8FFF, "SENSEON Corporation", "SENSEON" }, { 0x70B3D5, 0x6F9000, 0x6F9FFF, "ENVItech s.r.o.", "ENVITECH-S-R-O" }, { 0x70B3D5, 0x6FA000, 0x6FAFFF, "Dataforth Corporation", "DATAFORTH" }, { 0x70B3D5, 0x6FB000, 0x6FBFFF, "Shachihata Inc.", "SHACHIHATA" }, { 0x70B3D5, 0x6FC000, 0x6FCFFF, "MI Inc.", "MI" }, { 0x70B3D5, 0x6FD000, 0x6FDFFF, "Core Akıllı Ev Sistemleri", "CORE-AKLL-EV-SISTEMLERI" }, { 0x70B3D5, 0x6FE000, 0x6FEFFF, "NTO IRE-POLUS", "NTO-IRE-POLUS" }, { 0x70B3D5, 0x6FF000, 0x6FFFFF, "AKEO PLUS", "AKEO-PLUS" }, { 0x70B3D5, 0x700000, 0x700FFF, "University Of Groningen", "UNIVERSITY-OF-GRONINGEN" }, { 0x70B3D5, 0x701000, 0x701FFF, "COMPAR Computer GmbH", "COMPAR" }, { 0x70B3D5, 0x702000, 0x702FFF, "Sensor Highway Ltd", "SENSOR-HIGHWAY" }, { 0x70B3D5, 0x703000, 0x703FFF, "StromIdee GmbH", "STROMIDEE" }, { 0x70B3D5, 0x704000, 0x704FFF, "Melecs EWS GmbH", "MELECS-EWS" }, { 0x70B3D5, 0x705000, 0x705FFF, "Digital Matter Pty Ltd", "DIGITAL-MATTER-PTY" }, { 0x70B3D5, 0x706000, 0x706FFF, "Smith Meter, Inc.", "SMITH-METER" }, { 0x70B3D5, 0x707000, 0x707FFF, "Koco Motion US LLC", "KOCO-MOTION-US" }, { 0x70B3D5, 0x708000, 0x708FFF, "IBM Research GmbH", "IBM-RESEARCH" }, { 0x70B3D5, 0x709000, 0x709FFF, "AML", "AML" }, { 0x70B3D5, 0x70A000, 0x70AFFF, "PULLNET TECHNOLOGY, SA DE CV SSC1012302S73", "PULLNET-DE-CV-SSC1012302S73" }, { 0x70B3D5, 0x70B000, 0x70BFFF, "Alere Technologies AS", "ALERE-TECHNOLOGIES-AS" }, { 0x70B3D5, 0x70C000, 0x70CFFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x70B3D5, 0x70D000, 0x70DFFF, "OMNISENSING PHOTONICS LLC", "OMNISENSING-PHOTONICS" }, { 0x70B3D5, 0x70E000, 0x70EFFF, "Wuhan Xingtuxinke ELectronic Co.,Ltd", "WUHAN-XINGTUXINKE" }, { 0x70B3D5, 0x70F000, 0x70FFFF, "Alion Science & Technology", "ALION-SCIENCE" }, { 0x70B3D5, 0x710000, 0x710FFF, "Guardian Controls International Ltd", "GUARDIAN-CONTROLS" }, { 0x70B3D5, 0x711000, 0x711FFF, "X-Laser LLC", "X-LASER" }, { 0x70B3D5, 0x712000, 0x712FFF, "APG Cash Drawer, LLC", "APG-CASH-DRAWER" }, { 0x70B3D5, 0x713000, 0x713FFF, "Coloet S.r.l.", "COLOET" }, { 0x70B3D5, 0x714000, 0x714FFF, "Alturna Networks", "ALTURNA-NETWORKS" }, { 0x70B3D5, 0x715000, 0x715FFF, "RIOT", "RIOT" }, { 0x70B3D5, 0x716000, 0x716FFF, "Lode BV", "LODE" }, { 0x70B3D5, 0x717000, 0x717FFF, "Secure Systems & Services", "SECURE-SERVICES" }, { 0x70B3D5, 0x718000, 0x718FFF, "PEEK TRAFFIC", "PEEK-TRAFFIC" }, { 0x70B3D5, 0x719000, 0x719FFF, "2M Technology", "2M" }, { 0x70B3D5, 0x71A000, 0x71AFFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x71B000, 0x71BFFF, "elsys", "ELSYS" }, { 0x70B3D5, 0x71C000, 0x71CFFF, "Konzept Informationssysteme GmbH", "KONZEPT-INFORMATIONSSYSTEME" }, { 0x70B3D5, 0x71D000, 0x71DFFF, "Connido Limited", "CONNIDO" }, { 0x70B3D5, 0x71E000, 0x71EFFF, "Motec Pty Ltd", "MOTEC-PTY" }, { 0x70B3D5, 0x71F000, 0x71FFFF, "Grayshift", "GRAYSHIFT" }, { 0x70B3D5, 0x720000, 0x720FFF, "Jeio Tech", "JEIO-TECH" }, { 0x70B3D5, 0x721000, 0x721FFF, "Zoe Medical", "ZOE-MEDICAL" }, { 0x70B3D5, 0x722000, 0x722FFF, "UMAN", "UMAN" }, { 0x70B3D5, 0x723000, 0x723FFF, "LG Electronics", "LG-ELECTRONICS" }, { 0x70B3D5, 0x724000, 0x724FFF, "Quan International Co., Ltd.", "QUAN" }, { 0x70B3D5, 0x725000, 0x725FFF, "Swiss Timing LTD", "SWISS-TIMING" }, { 0x70B3D5, 0x726000, 0x726FFF, "ATGS", "ATGS" }, { 0x70B3D5, 0x727000, 0x727FFF, "LP Technologies Inc.", "LP-TECHNOLOGIES" }, { 0x70B3D5, 0x728000, 0x728FFF, "BCD Audio", "BCD-AUDIO" }, { 0x70B3D5, 0x729000, 0x729FFF, "EMAC, Inc.", "EMAC" }, { 0x70B3D5, 0x72A000, 0x72AFFF, "MRC Systems GmbH", "MRC" }, { 0x70B3D5, 0x72B000, 0x72BFFF, "Medipense Inc.", "MEDIPENSE" }, { 0x70B3D5, 0x72C000, 0x72CFFF, "NuRi&G Engineering co,.Ltd.", "NURI-G-ENGINEERING" }, { 0x70B3D5, 0x72D000, 0x72DFFF, "Kron Medidores", "KRON-MEDIDORES" }, { 0x70B3D5, 0x72E000, 0x72EFFF, "Maharsystem", "MAHARSYSTEM" }, { 0x70B3D5, 0x72F000, 0x72FFFF, "Ava Technologies", "AVA-TECHNOLOGIES" }, { 0x70B3D5, 0x730000, 0x730FFF, "Videogenix", "VIDEOGENIX" }, { 0x70B3D5, 0x731000, 0x731FFF, "Phoniro Systems AB", "PHONIRO-AB" }, { 0x70B3D5, 0x732000, 0x732FFF, "TOFWERK AG", "TOFWERK" }, { 0x70B3D5, 0x733000, 0x733FFF, "SA Instrumentation Limited", "INSTRUMENTATION" }, { 0x70B3D5, 0x734000, 0x734FFF, "MANSION INDUSTRY CO., LTD.", "MANSION-INDUSTRY" }, { 0x70B3D5, 0x735000, 0x735FFF, "Swiss Audio", "SWISS-AUDIO" }, { 0x70B3D5, 0x736000, 0x736FFF, "Jabil", "JABIL" }, { 0x70B3D5, 0x737000, 0x737FFF, "SD Biosensor", "SD-BIOSENSOR" }, { 0x70B3D5, 0x738000, 0x738FFF, "GRYPHON SECURE INC", "GRYPHON-SECURE" }, { 0x70B3D5, 0x739000, 0x739FFF, "Zigencorp, Inc", "ZIGENCORP" }, { 0x70B3D5, 0x73A000, 0x73AFFF, "DOLBY LABORATORIES, INC.", "DOLBY-LABORATORIES" }, { 0x70B3D5, 0x73B000, 0x73BFFF, "S-I-C", "S-I-C" }, { 0x70B3D5, 0x73C000, 0x73CFFF, "Centro de Ingenieria y Desarrollo industrial", "CENTRO-DE-INGENIERIA-Y-DESARROLLO-INDUSTRIAL" }, { 0x70B3D5, 0x73D000, 0x73DFFF, "NETWAYS GmbH", "NETWAYS" }, { 0x70B3D5, 0x73E000, 0x73EFFF, "Trident RFID Pty Ltd", "TRIDENT-RFID-PTY" }, { 0x70B3D5, 0x73F000, 0x73FFFF, "LLC Open Converged Networks", "LLC-OPEN-CONVERGED-NETWORKS" }, { 0x70B3D5, 0x740000, 0x740FFF, "Prisma Telecom Testing Srl", "PRISMA-TELECOM-TESTING-SRL" }, { 0x70B3D5, 0x741000, 0x741FFF, "HOW-E", "HOW-E" }, { 0x70B3D5, 0x742000, 0x742FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0x743000, 0x743FFF, "EA Elektroautomatik GmbH & Co. KG", "EA-ELEKTROAUTOMATIK" }, { 0x70B3D5, 0x744000, 0x744FFF, "PHYZHON Health Inc", "PHYZHON-HEALTH" }, { 0x70B3D5, 0x745000, 0x745FFF, "TMSI LLC", "TMSI" }, { 0x70B3D5, 0x746000, 0x746FFF, "Smart Systems LLC", "SMART" }, { 0x70B3D5, 0x747000, 0x747FFF, "Eva Automation", "EVA-AUTOMATION" }, { 0x70B3D5, 0x748000, 0x748FFF, "KDT", "KDT" }, { 0x70B3D5, 0x749000, 0x749FFF, "Granite River Labs Inc", "GRANITE-RIVER-LABS" }, { 0x70B3D5, 0x74A000, 0x74AFFF, "Mettler Toledo", "METTLER-TOLEDO" }, { 0x70B3D5, 0x74B000, 0x74BFFF, "Code Blue Corporation", "CODE-BLUE" }, { 0x70B3D5, 0x74C000, 0x74CFFF, "Kwant Controls BV", "KWANT-CONTROLS" }, { 0x70B3D5, 0x74D000, 0x74DFFF, "SPEECH TECHNOLOGY CENTER LIMITED", "SPEECH-CENTER" }, { 0x70B3D5, 0x74E000, 0x74EFFF, "PushCorp, Inc.", "PUSHCORP" }, { 0x70B3D5, 0x74F000, 0x74FFFF, "United States Technologies Inc.", "UNITED-STATES-TECHNOLOGIES" }, { 0x70B3D5, 0x750000, 0x750FFF, "Neurio Technology Inc.", "NEURIO" }, { 0x70B3D5, 0x751000, 0x751FFF, "GNF", "GNF" }, { 0x70B3D5, 0x752000, 0x752FFF, "Guan Show Technologe Co., Ltd.", "GUAN-SHOW-TECHNOLOGE" }, { 0x70B3D5, 0x753000, 0x753FFF, "HCH. Kündig & CIE. AG", "HCH-KUENDIG-CIE" }, { 0x70B3D5, 0x754000, 0x754FFF, "COSMOIT.CO.LTD", "COSMOIT" }, { 0x70B3D5, 0x755000, 0x755FFF, "LandmarkTech Systems Technology Co.,Ltd.", "LANDMARKTECH" }, { 0x70B3D5, 0x756000, 0x756FFF, "TimeMachines Inc.", "TIMEMACHINES" }, { 0x70B3D5, 0x757000, 0x757FFF, "GABO", "GABO" }, { 0x70B3D5, 0x758000, 0x758FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x70B3D5, 0x759000, 0x759FFF, "AML", "AML" }, { 0x70B3D5, 0x75A000, 0x75AFFF, "Standard Backhaul Communications", "STANDARD-BACKHAUL-COMMUNICATION" }, { 0x70B3D5, 0x75B000, 0x75BFFF, "Netool LLC", "NETOOL" }, { 0x70B3D5, 0x75C000, 0x75CFFF, "UPM Technology, Inc", "UPM" }, { 0x70B3D5, 0x75D000, 0x75DFFF, "Nanjing Magewell Electronics Co., Ltd.", "NANJING-MAGEWELL-ELECTRONICS" }, { 0x70B3D5, 0x75E000, 0x75EFFF, "Cardinal Health", "CARDINAL-HEALTH" }, { 0x70B3D5, 0x75F000, 0x75FFFF, "Vocality international T/A Cubic", "VOCALITY-T/A-CUBIC" }, { 0x70B3D5, 0x760000, 0x760FFF, "QUALITTEQ LLC", "QUALITTEQ" }, { 0x70B3D5, 0x761000, 0x761FFF, "Critical Link LLC", "CRITICAL-LINK" }, { 0x70B3D5, 0x762000, 0x762FFF, "Transformational Security, LLC", "TRANSFORMATIONAL-SECURITY" }, { 0x70B3D5, 0x763000, 0x763FFF, "A Trap, USA", "A-TRAP-USA" }, { 0x70B3D5, 0x764000, 0x764FFF, "SCHMID electronic", "SCHMID" }, { 0x70B3D5, 0x765000, 0x765FFF, "LG Electronics", "LG-ELECTRONICS" }, { 0x70B3D5, 0x766000, 0x766FFF, "Tirasoft Nederland", "TIRASOFT-NEDERLAND" }, { 0x70B3D5, 0x767000, 0x767FFF, "FRANKLIN FRANCE", "FRANKLIN-FRANCE" }, { 0x70B3D5, 0x768000, 0x768FFF, "Kazan Networks Corporation", "KAZAN-NETWORKS" }, { 0x70B3D5, 0x769000, 0x769FFF, "Barber Creations LLC", "BARBER-CREATIONS" }, { 0x70B3D5, 0x76A000, 0x76AFFF, "Swiftnet SOC Ltd", "SWIFTNET-SOC" }, { 0x70B3D5, 0x76B000, 0x76BFFF, "EMPELOR GmbH", "EMPELOR" }, { 0x70B3D5, 0x76C000, 0x76CFFF, "Aural Ltd", "AURAL" }, { 0x70B3D5, 0x76D000, 0x76DFFF, "Trimble", "TRIMBLE" }, { 0x70B3D5, 0x76E000, 0x76EFFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x70B3D5, 0x76F000, 0x76FFFF, "OTI LTD", "OTI" }, { 0x70B3D5, 0x770000, 0x770FFF, "STREGA", "STREGA" }, { 0x70B3D5, 0x771000, 0x771FFF, "Apator Miitors ApS", "APATOR-MIITORS-APS" }, { 0x70B3D5, 0x772000, 0x772FFF, "enModus", "ENMODUS" }, { 0x70B3D5, 0x773000, 0x773FFF, "Rugged Science", "RUGGED-SCIENCE" }, { 0x70B3D5, 0x774000, 0x774FFF, "Micram Instruments Ltd", "MICRAM-INSTRUMENTS" }, { 0x70B3D5, 0x775000, 0x775FFF, "Sonel S.A.", "SONEL" }, { 0x70B3D5, 0x776000, 0x776FFF, "Power Ltd.", "POWER" }, { 0x70B3D5, 0x777000, 0x777FFF, "QUERCUS TECHNOLOGIES, S.L.", "QUERCUS-TECHNOLOGIES" }, { 0x70B3D5, 0x778000, 0x778FFF, "Lumacron Technology Ltd.", "LUMACRON" }, { 0x70B3D5, 0x779000, 0x779FFF, "DR.BRIDGE AQUATECH", "DR-BRIDGE-AQUATECH" }, { 0x70B3D5, 0x77A000, 0x77AFFF, "Tecsag Innovation AG", "TECSAG-INNOVATION" }, { 0x70B3D5, 0x77B000, 0x77BFFF, "AeroVision Avionics, Inc.", "AEROVISION-AVIONICS" }, { 0x70B3D5, 0x77C000, 0x77CFFF, "HUSTY M.Styczen J.Hupert Sp.J.", "HUSTY-M-STYCZEN-J-HUPERT-SP-J" }, { 0x70B3D5, 0x77D000, 0x77DFFF, "APG Cash Drawer, LLC", "APG-CASH-DRAWER" }, { 0x70B3D5, 0x77E000, 0x77EFFF, "Blue Marble Communications, Inc.", "BLUE-MARBLE-COMMUNICATION" }, { 0x70B3D5, 0x77F000, 0x77FFFF, "Microchip Technology Germany II GmbH&Co.KG", "MICROCHIP-GERMANY-II" }, { 0x70B3D5, 0x780000, 0x780FFF, "NIDEC LEROY-SOMER", "NIDEC-LEROY-SOMER" }, { 0x70B3D5, 0x781000, 0x781FFF, "Project Service S.a.s.", "PROJECT-SERVICE-S" }, { 0x70B3D5, 0x782000, 0x782FFF, "thou&tech", "THOU-TECH" }, { 0x70B3D5, 0x783000, 0x783FFF, "CHIeru., CO., Ltd.", "CHIERU" }, { 0x70B3D5, 0x784000, 0x784FFF, "Shenzhen bayue software co. LTD", "SHENZHEN-BAYUE-SOFTWARE" }, { 0x70B3D5, 0x785000, 0x785FFF, "Density Inc.", "DENSITY" }, { 0x70B3D5, 0x786000, 0x786FFF, "RCH Vietnam Limited Liability Company", "RCH-VIETNAM-LIABILITY-COMPANY" }, { 0x70B3D5, 0x787000, 0x787FFF, "Den Automation", "DEN-AUTOMATION" }, { 0x70B3D5, 0x788000, 0x788FFF, "Slan", "SLAN" }, { 0x70B3D5, 0x789000, 0x789FFF, "SEMEX-EngCon GmbH", "SEMEX-ENGCON" }, { 0x70B3D5, 0x78A000, 0x78AFFF, "Hills Health Solutions", "HILLS-HEALTH-SOLUTIONS" }, { 0x70B3D5, 0x78B000, 0x78BFFF, "Jingtu Printing Systems Co., Ltd", "JINGTU-PRINTING" }, { 0x70B3D5, 0x78C000, 0x78CFFF, "Survalent Technology Corporation", "SURVALENT" }, { 0x70B3D5, 0x78D000, 0x78DFFF, "AVL DiTEST GmbH", "AVL-DITEST" }, { 0x70B3D5, 0x78E000, 0x78EFFF, "effectas GmbH", "EFFECTAS" }, { 0x70B3D5, 0x78F000, 0x78FFFF, "SoFiHa", "SOFIHA" }, { 0x70B3D5, 0x790000, 0x790FFF, "AVI Pty Ltd", "AVI-PTY" }, { 0x70B3D5, 0x791000, 0x791FFF, "Romteck Australia", "ROMTECK-AUSTRALIA" }, { 0x70B3D5, 0x792000, 0x792FFF, "IMMOLAS", "IMMOLAS" }, { 0x70B3D5, 0x793000, 0x793FFF, "Gastech Australia Pty Ltd", "GASTECH-AUSTRALIA-PTY" }, { 0x70B3D5, 0x794000, 0x794FFF, "Shadin Avionics", "SHADIN-AVIONICS" }, { 0x70B3D5, 0x795000, 0x795FFF, "TIECHE Engineered Systems", "TIECHE-ENGINEERED" }, { 0x70B3D5, 0x796000, 0x796FFF, "GAMPT mbH", "GAMPT" }, { 0x70B3D5, 0x797000, 0x797FFF, "Mitsubishi Electric India Pvt. Ltd.", "MITSUBISHI-ELECTRIC-INDIA-PVT" }, { 0x70B3D5, 0x798000, 0x798FFF, "TIAMA", "TIAMA" }, { 0x70B3D5, 0x799000, 0x799FFF, "Vitec System Engineering Inc.", "VITEC-SYSTEM-ENGINEERING" }, { 0x70B3D5, 0x79A000, 0x79AFFF, "Innerspec Technologies Inc.", "INNERSPEC-TECHNOLOGIES" }, { 0x70B3D5, 0x79B000, 0x79BFFF, "Soniclean Pty Ltd", "SONICLEAN-PTY" }, { 0x70B3D5, 0x79C000, 0x79CFFF, "ADDE", "ADDE" }, { 0x70B3D5, 0x79D000, 0x79DFFF, "Editech Co., Ltd", "EDITECH" }, { 0x70B3D5, 0x79E000, 0x79EFFF, "CW2. Gmbh & Co. KG", "CW2" }, { 0x70B3D5, 0x79F000, 0x79FFFF, "Green Instruments A/S", "GREEN-INSTRUMENTS-A/S" }, { 0x70B3D5, 0x7A0000, 0x7A0FFF, "Reactec Ltd", "REACTEC" }, { 0x70B3D5, 0x7A1000, 0x7A1FFF, "Excelfore Corporation", "EXCELFORE" }, { 0x70B3D5, 0x7A2000, 0x7A2FFF, "Alpha ESS Co., Ltd.", "ALPHA-ESS" }, { 0x70B3D5, 0x7A3000, 0x7A3FFF, "Impulse Automation", "IMPULSE-AUTOMATION" }, { 0x70B3D5, 0x7A4000, 0x7A4FFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x70B3D5, 0x7A5000, 0x7A5FFF, "Triton Electronics Ltd", "TRITON-ELECTRONICS" }, { 0x70B3D5, 0x7A6000, 0x7A6FFF, "Electrolux", "ELECTROLUX" }, { 0x70B3D5, 0x7A7000, 0x7A7FFF, "Symbicon Ltd", "SYMBICON" }, { 0x70B3D5, 0x7A8000, 0x7A8FFF, "dieEntwickler Elektronik GmbH", "DIEENTWICKLER-ELEKTRONIK" }, { 0x70B3D5, 0x7A9000, 0x7A9FFF, "adidas AG", "ADIDAS" }, { 0x70B3D5, 0x7AA000, 0x7AAFFF, "Sadel S.p.A.", "SADEL" }, { 0x70B3D5, 0x7AB000, 0x7ABFFF, "Microgate Srl", "MICROGATE-SRL" }, { 0x70B3D5, 0x7AC000, 0x7ACFFF, "Verity Studios AG", "VERITY-STUDIOS" }, { 0x70B3D5, 0x7AD000, 0x7ADFFF, "Insitu, Inc", "INSITU" }, { 0x70B3D5, 0x7AE000, 0x7AEFFF, "Exi Flow Measurement Ltd", "EXI-FLOW-MEASUREMENT" }, { 0x70B3D5, 0x7AF000, 0x7AFFFF, "Hessware GmbH", "HESSWARE" }, { 0x70B3D5, 0x7B0000, 0x7B0FFF, "Medisafe International", "MEDISAFE" }, { 0x70B3D5, 0x7B1000, 0x7B1FFF, "Panamera", "PANAMERA" }, { 0x70B3D5, 0x7B2000, 0x7B2FFF, "Rail Power Systems GmbH", "RAIL-POWER" }, { 0x70B3D5, 0x7B3000, 0x7B3FFF, "BroadSoft Inc", "BROADSOFT" }, { 0x70B3D5, 0x7B4000, 0x7B4FFF, "Zumbach Electronic AG", "ZUMBACH" }, { 0x70B3D5, 0x7B5000, 0x7B5FFF, "VOCAL Technologies Ltd.", "VOCAL-TECHNOLOGIES" }, { 0x70B3D5, 0x7B6000, 0x7B6FFF, "Amada Miyachi America Inc.", "AMADA-MIYACHI-AMERICA" }, { 0x70B3D5, 0x7B7000, 0x7B7FFF, "LSB - LA SALLE BLANCHE", "LSB-LA-SALLE-BLANCHE" }, { 0x70B3D5, 0x7B8000, 0x7B8FFF, "SerEnergy A/S", "SERENERGY-A/S" }, { 0x70B3D5, 0x7B9000, 0x7B9FFF, "QIAGEN Instruments AG", "QIAGEN-INSTRUMENTS" }, { 0x70B3D5, 0x7BA000, 0x7BAFFF, "Decentlab GmbH", "DECENTLAB" }, { 0x70B3D5, 0x7BB000, 0x7BBFFF, "Aloxy", "ALOXY" }, { 0x70B3D5, 0x7BC000, 0x7BCFFF, "FIRST RF Corporation", "FIRST-RF" }, { 0x70B3D5, 0x7BD000, 0x7BDFFF, "TableConnect GmbH", "TABLECONNECT" }, { 0x70B3D5, 0x7BE000, 0x7BEFFF, "Phytron GmbH", "PHYTRON" }, { 0x70B3D5, 0x7BF000, 0x7BFFFF, "Stone Three", "STONE-THREE" }, { 0x70B3D5, 0x7C0000, 0x7C0FFF, "TORGOVYY DOM TEHNOLOGIY LLC", "TORGOVYY-DOM-TEHNOLOGIY" }, { 0x70B3D5, 0x7C1000, 0x7C1FFF, "Data Sciences International", "DATA-SCIENCES" }, { 0x70B3D5, 0x7C2000, 0x7C2FFF, "Morgan Schaffer Inc.", "MORGAN-SCHAFFER" }, { 0x70B3D5, 0x7C3000, 0x7C3FFF, "Flexim Security Oy", "FLEXIM-SECURITY-OY" }, { 0x70B3D5, 0x7C4000, 0x7C4FFF, "MECT SRL", "MECT-SRL" }, { 0x70B3D5, 0x7C5000, 0x7C5FFF, "Projects Unlimited Inc.", "PROJECTS-UNLIMITED" }, { 0x70B3D5, 0x7C6000, 0x7C6FFF, "Utrend Technology (Shanghai) Co., Ltd", "UTREND-SHANGHAI" }, { 0x70B3D5, 0x7C7000, 0x7C7FFF, "Sicon srl", "SICON-SRL" }, { 0x70B3D5, 0x7C8000, 0x7C8FFF, "CRDE", "CRDE" }, { 0x70B3D5, 0x7C9000, 0x7C9FFF, "Council Rock", "COUNCIL-ROCK" }, { 0x70B3D5, 0x7CA000, 0x7CAFFF, "Hunan Shengyun Photoelectric Technology Co., Ltd.", "HUNAN-SHENGYUN-PHOTOELECTRIC" }, { 0x70B3D5, 0x7CB000, 0x7CBFFF, "KeyW Corporation", "KEYW" }, { 0x70B3D5, 0x7CC000, 0x7CCFFF, "MITSUBISHI HEAVY INDUSTRIES THERMAL SYSTEMS, LTD.", "MITSUBISHI-HEAVY-INDUSTRIES-THERMAL" }, { 0x70B3D5, 0x7CD000, 0x7CDFFF, "Molekuler Goruntuleme A.S.", "MOLEKULER-GORUNTULEME" }, { 0x70B3D5, 0x7CE000, 0x7CEFFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x7CF000, 0x7CFFFF, "ORCA Technologies, LLC", "ORCA-TECHNOLOGIES" }, { 0x70B3D5, 0x7D0000, 0x7D0FFF, "Cubitech", "CUBITECH" }, { 0x70B3D5, 0x7D1000, 0x7D1FFF, "Schneider Electric Motion USA", "SCHNEIDER-ELECTRIC-MOTION-USA" }, { 0x70B3D5, 0x7D2000, 0x7D2FFF, "SDK Kristall", "SDK-KRISTALL" }, { 0x70B3D5, 0x7D3000, 0x7D3FFF, "OLEDCOMM", "OLEDCOMM" }, { 0x70B3D5, 0x7D4000, 0x7D4FFF, "Computechnic AG", "COMPUTECHNIC" }, { 0x70B3D5, 0x7D5000, 0x7D5FFF, "SICS Swedish ICT", "SICS-SWEDISH-ICT" }, { 0x70B3D5, 0x7D6000, 0x7D6FFF, "Yukilab", "YUKILAB" }, { 0x70B3D5, 0x7D7000, 0x7D7FFF, "Gedomo GmbH", "GEDOMO" }, { 0x70B3D5, 0x7D8000, 0x7D8FFF, "Nuand LLC", "NUAND" }, { 0x70B3D5, 0x7D9000, 0x7D9FFF, "ATOM GIKEN Co.,Ltd.", "ATOM-GIKEN" }, { 0x70B3D5, 0x7DA000, 0x7DAFFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x70B3D5, 0x7DB000, 0x7DBFFF, "aquila biolabs GmbH", "AQUILA-BIOLABS" }, { 0x70B3D5, 0x7DC000, 0x7DCFFF, "Software Systems Plus", "SOFTWARE-PLUS" }, { 0x70B3D5, 0x7DD000, 0x7DDFFF, "Excel Medical Electronics LLC", "EXCEL-MEDICAL-ELECTRONICS" }, { 0x70B3D5, 0x7DE000, 0x7DEFFF, "Telaeris, Inc.", "TELAERIS" }, { 0x70B3D5, 0x7DF000, 0x7DFFFF, "RDT Ltd", "RDT" }, { 0x70B3D5, 0x7E0000, 0x7E0FFF, "Sanko-sha,inc.", "SANKO-SHA" }, { 0x70B3D5, 0x7E1000, 0x7E1FFF, "Applied Materials", "APPLIED-MATERIALS" }, { 0x70B3D5, 0x7E2000, 0x7E2FFF, "Depro Électronique inc", "DEPRO-LECTRONIQUE" }, { 0x70B3D5, 0x7E3000, 0x7E3FFF, "RedLeaf Security", "REDLEAF-SECURITY" }, { 0x70B3D5, 0x7E4000, 0x7E4FFF, "C21 Systems Ltd", "C21" }, { 0x70B3D5, 0x7E5000, 0x7E5FFF, "Megaflex Oy", "MEGAFLEX-OY" }, { 0x70B3D5, 0x7E6000, 0x7E6FFF, "11811347 CANADA Inc.", "11811347-CANADA" }, { 0x70B3D5, 0x7E7000, 0x7E7FFF, "Atessa, Inc.", "ATESSA" }, { 0x70B3D5, 0x7E8000, 0x7E8FFF, "Mannkind Corporation", "MANNKIND" }, { 0x70B3D5, 0x7E9000, 0x7E9FFF, "Mecsel Oy", "MECSEL-OY" }, { 0x70B3D5, 0x7EA000, 0x7EAFFF, "Waterkotte GmbH", "WATERKOTTE" }, { 0x70B3D5, 0x7EB000, 0x7EBFFF, "Xerox International Partners", "XEROX-PARTNERS" }, { 0x70B3D5, 0x7EC000, 0x7ECFFF, "Cubic ITS, Inc. dba GRIDSMART Technologies", "CUBIC-ITS-DBA-GRIDSMART-TECHNOLOGIES" }, { 0x70B3D5, 0x7ED000, 0x7EDFFF, "The Things Network Foundation", "THE-THINGS-NETWORK-FOUNDATION" }, { 0x70B3D5, 0x7EE000, 0x7EEFFF, "ADVEEZ", "ADVEEZ" }, { 0x70B3D5, 0x7EF000, 0x7EFFFF, "CRAVIS CO., LIMITED", "CRAVIS" }, { 0x70B3D5, 0x7F0000, 0x7F0FFF, "YDK Technologies Co.,Ltd", "YDK-TECHNOLOGIES" }, { 0x70B3D5, 0x7F1000, 0x7F1FFF, "AeroVision Avionics, Inc.", "AEROVISION-AVIONICS" }, { 0x70B3D5, 0x7F2000, 0x7F2FFF, "TCI", "TCI" }, { 0x70B3D5, 0x7F3000, 0x7F3FFF, "Shenzhen Virtual Clusters Information Technology Co.,Ltd.", "SHENZHEN-VIRTUAL-CLUSTERS-INFORMATION" }, { 0x70B3D5, 0x7F4000, 0x7F4FFF, "KST technology", "KST" }, { 0x70B3D5, 0x7F5000, 0x7F5FFF, "Incusense", "INCUSENSE" }, { 0x70B3D5, 0x7F6000, 0x7F6FFF, "IDZ Ltd", "IDZ" }, { 0x70B3D5, 0x7F7000, 0x7F7FFF, "JASCO Applied Sciences Canada Ltd", "JASCO-APPLIED-SCIENCES-CANADA" }, { 0x70B3D5, 0x7F8000, 0x7F8FFF, "Solvera Lynx d.d.", "SOLVERA-LYNX-D-D" }, { 0x70B3D5, 0x7F9000, 0x7F9FFF, "Communication Systems Solutions", "COMMUNICATION-SOLUTIONS" }, { 0x70B3D5, 0x7FA000, 0x7FAFFF, "meoENERGY", "MEOENERGY" }, { 0x70B3D5, 0x7FB000, 0x7FBFFF, "db Broadcast Products Ltd", "DB-BROADCAST-PRODUCTS" }, { 0x70B3D5, 0x7FC000, 0x7FCFFF, "Surion (Pty) Ltd", "SURION-PTY" }, { 0x70B3D5, 0x7FD000, 0x7FDFFF, "SYS TEC electronic GmbH", "SYS-TEC" }, { 0x70B3D5, 0x7FE000, 0x7FEFFF, "RCH ITALIA SPA", "RCH-ITALIA-SPA" }, { 0x70B3D5, 0x7FF000, 0x7FFFFF, "eumig industrie-TV GmbH.", "EUMIG-INDUSTRIE-TV" }, { 0x70B3D5, 0x800000, 0x800FFF, "HeadsafeIP PTY LTD", "HEADSAFEIP-PTY" }, { 0x70B3D5, 0x801000, 0x801FFF, "Glory Technology Service Inc.", "GLORY-SERVICE" }, { 0x70B3D5, 0x802000, 0x802FFF, "Qingdao CNR HITACH Railway Signal&communication co.,ltd", "QINGDAO-CNR-HITACH-RAILWAY-SIGNAL-COMMUNICATION" }, { 0x70B3D5, 0x803000, 0x803FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x70B3D5, 0x804000, 0x804FFF, "PMT Corporation", "PMT" }, { 0x70B3D5, 0x805000, 0x805FFF, "Eurotronik Kranj d.o.o.", "EUROTRONIK-KRANJ-D-O-O" }, { 0x70B3D5, 0x806000, 0x806FFF, "International Super Computer Co., Ltd.", "SUPER" }, { 0x70B3D5, 0x807000, 0x807FFF, "Camsat Przemysław Gralak", "CAMSAT-PRZEMYSAW-GRALAK" }, { 0x70B3D5, 0x808000, 0x808FFF, "Becton Dickinson", "BECTON-DICKINSON" }, { 0x70B3D5, 0x809000, 0x809FFF, "Tecnint HTE SRL", "TECNINT-HTE-SRL" }, { 0x70B3D5, 0x80A000, 0x80AFFF, "SENSING LABS", "SENSING-LABS" }, { 0x70B3D5, 0x80B000, 0x80BFFF, "Fischer Block, Inc.", "FISCHER-BLOCK" }, { 0x70B3D5, 0x80C000, 0x80CFFF, "Algra tec AG", "ALGRA-TEC" }, { 0x70B3D5, 0x80D000, 0x80DFFF, "Data Physics Corporation", "DATA-PHYSICS" }, { 0x70B3D5, 0x80E000, 0x80EFFF, "Utopi Ltd", "UTOPI" }, { 0x70B3D5, 0x80F000, 0x80FFFF, "Quickware Eng & Des LLC", "QUICKWARE-ENG-DES" }, { 0x70B3D5, 0x810000, 0x810FFF, "Advice", "ADVICE" }, { 0x70B3D5, 0x811000, 0x811FFF, "CJSC «INTERSET»", "CJSC-INTERSET" }, { 0x70B3D5, 0x812000, 0x812FFF, "TESCAN Brno, s.r.o.", "TESCAN-BRNO-S-R-O" }, { 0x70B3D5, 0x813000, 0x813FFF, "Wavemed srl", "WAVEMED-SRL" }, { 0x70B3D5, 0x814000, 0x814FFF, "Ingenieurbuero SOMTRONIK", "INGENIEURBUERO-SOMTRONIK" }, { 0x70B3D5, 0x815000, 0x815FFF, "Waco Giken Co., Ltd.", "WACO-GIKEN" }, { 0x70B3D5, 0x816000, 0x816FFF, "Smith Meter, Inc.", "SMITH-METER" }, { 0x70B3D5, 0x817000, 0x817FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x818000, 0x818FFF, "CRDE", "CRDE" }, { 0x70B3D5, 0x819000, 0x819FFF, "«Intellect module» LLC", "INTELLECT-MODULE" }, { 0x70B3D5, 0x81A000, 0x81AFFF, "Joehl & Koeferli AG", "JOEHL-KOEFERLI" }, { 0x70B3D5, 0x81B000, 0x81BFFF, "bobz GmbH", "BOBZ" }, { 0x70B3D5, 0x81C000, 0x81CFFF, "QIT Co., Ltd.", "QIT" }, { 0x70B3D5, 0x81D000, 0x81DFFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0x81E000, 0x81EFFF, "Novathings", "NOVATHINGS" }, { 0x70B3D5, 0x81F000, 0x81FFFF, "CAR-connect GmbH", "CAR-CONNECT" }, { 0x70B3D5, 0x820000, 0x820FFF, "Becker Nachrichtentechnik GmbH", "BECKER-NACHRICHTENTECHNIK" }, { 0x70B3D5, 0x821000, 0x821FFF, "HL2 group", "HL2-GROUP" }, { 0x70B3D5, 0x822000, 0x822FFF, "Angora Networks", "ANGORA-NETWORKS" }, { 0x70B3D5, 0x823000, 0x823FFF, "SP Controls", "SP-CONTROLS" }, { 0x70B3D5, 0x824000, 0x824FFF, "Songwoo Information & Technology Co., Ltd", "SONGWOO-INFORMATION" }, { 0x70B3D5, 0x825000, 0x825FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0x826000, 0x826FFF, "Elbit Systems of America", "ELBIT-OF-AMERICA" }, { 0x70B3D5, 0x827000, 0x827FFF, "Metromatics Pty Ltd", "METROMATICS-PTY" }, { 0x70B3D5, 0x828000, 0x828FFF, "Xacti Corporation", "XACTI" }, { 0x70B3D5, 0x829000, 0x829FFF, "Guan Show Technologe Co., Ltd.", "GUAN-SHOW-TECHNOLOGE" }, { 0x70B3D5, 0x82A000, 0x82AFFF, "C W F Hamilton & Co Ltd", "C-W-F-HAMILTON" }, { 0x70B3D5, 0x82B000, 0x82BFFF, "Shangnuo company", "SHANGNUO-COMPANY" }, { 0x70B3D5, 0x82C000, 0x82CFFF, "NELS Ltd.", "NELS" }, { 0x70B3D5, 0x82D000, 0x82DFFF, "Elektronik Art S.C.", "ELEKTRONIK-ART-S-C" }, { 0x70B3D5, 0x82E000, 0x82EFFF, "PlayAlive A/S", "PLAYALIVE-A/S" }, { 0x70B3D5, 0x82F000, 0x82FFFF, "SIANA Systems", "SIANA" }, { 0x70B3D5, 0x830000, 0x830FFF, "Nordson Corporation", "NORDSON" }, { 0x70B3D5, 0x831000, 0x831FFF, "Arnouse Digital Devices Corp", "ARNOUSE-DIGITAL-DEVICES" }, { 0x70B3D5, 0x832000, 0x832FFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x70B3D5, 0x833000, 0x833FFF, "Alpiq InTec Management AG", "ALPIQ-INTEC-MANAGEMENT" }, { 0x70B3D5, 0x834000, 0x834FFF, "NCE Network Consulting Engineering srl", "NCE-NETWORK-CONSULTING-ENGINEERING-SRL" }, { 0x70B3D5, 0x835000, 0x835FFF, "CommBox P/L", "COMMBOX-P/L" }, { 0x70B3D5, 0x836000, 0x836FFF, "Authenticdata", "AUTHENTICDATA" }, { 0x70B3D5, 0x837000, 0x837FFF, "HiDes, Inc.", "HIDES" }, { 0x70B3D5, 0x838000, 0x838FFF, "Tofino", "TOFINO" }, { 0x70B3D5, 0x839000, 0x839FFF, "Rockwell Collins Canada", "ROCKWELL-COLLINS-CANADA" }, { 0x70B3D5, 0x83A000, 0x83AFFF, "EMDEP CENTRO TECNOLOGICO MEXICO", "EMDEP-CENTRO-TECNOLOGICO-MEXICO" }, { 0x70B3D5, 0x83B000, 0x83BFFF, "Telefonix Incorporated", "TELEFONIX-INCORPORATED" }, { 0x70B3D5, 0x83C000, 0x83CFFF, "Sinoembed", "SINOEMBED" }, { 0x70B3D5, 0x83D000, 0x83DFFF, "Gentec", "GENTEC" }, { 0x70B3D5, 0x83E000, 0x83EFFF, "The Dini Group, La Jolla inc.", "THE-DINI-GROUP-LA-JOLLA" }, { 0x70B3D5, 0x83F000, 0x83FFFF, "Lumine Lighting Solutions Oy", "LUMINE-LIGHTING-SOLUTIONS-OY" }, { 0x70B3D5, 0x840000, 0x840FFF, "xm", "XM" }, { 0x70B3D5, 0x841000, 0x841FFF, "Stanet Co.,Ltd", "STANET" }, { 0x70B3D5, 0x842000, 0x842FFF, "PLUTO Solution co.,ltd.", "PLUTO-SOLUTION" }, { 0x70B3D5, 0x843000, 0x843FFF, "OOO Research and Production Center Computer Technologies", "OOO-RESEARCH-AND-PRODUCTION-CENTER-TECHNOLOGIES" }, { 0x70B3D5, 0x844000, 0x844FFF, "SANSFIL Technologies", "SANSFIL-TECHNOLOGIES" }, { 0x70B3D5, 0x845000, 0x845FFF, "Harborside Technology", "HARBORSIDE" }, { 0x70B3D5, 0x846000, 0x846FFF, "National Time & Signal Corp.", "NATIONAL-TIME-SIGNAL" }, { 0x70B3D5, 0x847000, 0x847FFF, "Ai-Lynx", "AI-LYNX" }, { 0x70B3D5, 0x848000, 0x848FFF, "Aldridge Electrical Industries", "ALDRIDGE-ELECTRICAL-INDUSTRIES" }, { 0x70B3D5, 0x849000, 0x849FFF, "RF-Tuote Oy", "RF-TUOTE-OY" }, { 0x70B3D5, 0x84A000, 0x84AFFF, "MOG Laboratories Pty Ltd", "MOG-LABORATORIES-PTY" }, { 0x70B3D5, 0x84B000, 0x84BFFF, "QuestHouse, Inc.", "QUESTHOUSE" }, { 0x70B3D5, 0x84C000, 0x84CFFF, "CoreKinect", "COREKINECT" }, { 0x70B3D5, 0x84D000, 0x84DFFF, "Quantum Design Inc.", "QUANTUM-DESIGN" }, { 0x70B3D5, 0x84E000, 0x84EFFF, "Chromalox, Inc.", "CHROMALOX" }, { 0x70B3D5, 0x84F000, 0x84FFFF, "Mettler Toledo", "METTLER-TOLEDO" }, { 0x70B3D5, 0x850000, 0x850FFF, "REO AG", "REO" }, { 0x70B3D5, 0x851000, 0x851FFF, "Exascend, Inc.", "EXASCEND" }, { 0x70B3D5, 0x852000, 0x852FFF, "NetBoxSC, LLC", "NETBOXSC" }, { 0x70B3D5, 0x853000, 0x853FFF, "HGH SYSTEMES INFRAROUGES", "HGH-SYSTEMES-INFRAROUGES" }, { 0x70B3D5, 0x854000, 0x854FFF, "Adimec Advanced Image Systems", "ADIMEC-ADVANCED-IMAGE" }, { 0x70B3D5, 0x855000, 0x855FFF, "CRDE", "CRDE" }, { 0x70B3D5, 0x856000, 0x856FFF, "Shanghai Westwell Information and Technology Company Ltd", "SHANGHAI-WESTWELL-INFORMATION-AND-COMPANY" }, { 0x70B3D5, 0x857000, 0x857FFF, "RCH ITALIA SPA", "RCH-ITALIA-SPA" }, { 0x70B3D5, 0x858000, 0x858FFF, "Hubbell Power Systems", "HUBBELL-POWER" }, { 0x70B3D5, 0x859000, 0x859FFF, "HAN CHANG", "HAN-CHANG" }, { 0x70B3D5, 0x85A000, 0x85AFFF, "BRUSHIES", "BRUSHIES" }, { 0x70B3D5, 0x85B000, 0x85BFFF, "TSUBAKIMOTO CHAIN CO.", "TSUBAKIMOTO-CHAIN" }, { 0x70B3D5, 0x85C000, 0x85CFFF, "Tabology", "TABOLOGY" }, { 0x70B3D5, 0x85D000, 0x85DFFF, "ATHREYA INC", "ATHREYA" }, { 0x70B3D5, 0x85E000, 0x85EFFF, "XLOGIC srl", "XLOGIC-SRL" }, { 0x70B3D5, 0x85F000, 0x85FFFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0x860000, 0x860FFF, "KBS Industrieelektronik GmbH", "KBS-INDUSTRIEELEKTRONIK" }, { 0x70B3D5, 0x861000, 0x861FFF, "KST technology", "KST" }, { 0x70B3D5, 0x862000, 0x862FFF, "TripleOre", "TRIPLEORE" }, { 0x70B3D5, 0x863000, 0x863FFF, "Shenzhen Wesion Technology Co., Ltd", "SHENZHEN-WESION" }, { 0x70B3D5, 0x864000, 0x864FFF, "BORMANN EDV und Zubehoer", "BORMANN-EDV-UND-ZUBEHOER" }, { 0x70B3D5, 0x865000, 0x865FFF, "Insitu, Inc.", "INSITU" }, { 0x70B3D5, 0x866000, 0x866FFF, "MEPS Realtime", "MEPS-REALTIME" }, { 0x70B3D5, 0x867000, 0x867FFF, "Specialized Communications Corp.", "SPECIALIZED-COMMUNICATION" }, { 0x70B3D5, 0x868000, 0x868FFF, "U-JIN Mesco Co., Ltd.", "U-JIN-MESCO" }, { 0x70B3D5, 0x869000, 0x869FFF, "chargeBIG", "CHARGEBIG" }, { 0x70B3D5, 0x86A000, 0x86AFFF, "Stealth Communications", "STEALTH-COMMUNICATION" }, { 0x70B3D5, 0x86B000, 0x86BFFF, "AVL DiTEST", "AVL-DITEST" }, { 0x70B3D5, 0x86C000, 0x86CFFF, "eeas gmbh", "EEAS" }, { 0x70B3D5, 0x86D000, 0x86DFFF, "Census Digital Incorporated", "CENSUS-DIGITAL-INCORPORATED" }, { 0x70B3D5, 0x86E000, 0x86EFFF, "Profcon AB", "PROFCON-AB" }, { 0x70B3D5, 0x86F000, 0x86FFFF, "LLC NTC ACTOR", "LLC-NTC-ACTOR" }, { 0x70B3D5, 0x870000, 0x870FFF, "bentrup Industriesteuerungen", "BENTRUP-INDUSTRIESTEUERUNGEN" }, { 0x70B3D5, 0x871000, 0x871FFF, "Oso Technologies", "OSO-TECHNOLOGIES" }, { 0x70B3D5, 0x872000, 0x872FFF, "Nippon Safety co,ltd", "NIPPON-SAFETY" }, { 0x70B3D5, 0x873000, 0x873FFF, "Vishay Nobel AB", "VISHAY-NOBEL-AB" }, { 0x70B3D5, 0x874000, 0x874FFF, "NORTHBOUND NETWORKS PTY. LTD.", "NORTHBOUND-NETWORKS-PTY" }, { 0x70B3D5, 0x875000, 0x875FFF, "Peek Traffic", "PEEK-TRAFFIC" }, { 0x70B3D5, 0x876000, 0x876FFF, "IONETECH", "IONETECH" }, { 0x70B3D5, 0x877000, 0x877FFF, "Polynet Telecommunications Consulting and Contractor Ltd.", "POLYNET-TELECOMMUNICATIONS-CONSULTING-AND-CONTRACTOR" }, { 0x70B3D5, 0x878000, 0x878FFF, "Package Guard, Inc", "PACKAGE-GUARD" }, { 0x70B3D5, 0x879000, 0x879FFF, "ZIGPOS GmbH", "ZIGPOS" }, { 0x70B3D5, 0x87A000, 0x87AFFF, "Accolade Technology Inc", "ACCOLADE" }, { 0x70B3D5, 0x87B000, 0x87BFFF, "Liquid Instruments Pty Ltd", "LIQUID-INSTRUMENTS-PTY" }, { 0x70B3D5, 0x87C000, 0x87CFFF, "Nautel LTD", "NAUTEL" }, { 0x70B3D5, 0x87D000, 0x87DFFF, "INVIXIUM ACCESS INC.", "INVIXIUM-ACCESS" }, { 0x70B3D5, 0x87E000, 0x87EFFF, "Septentrio NV", "SEPTENTRIO-NV" }, { 0x70B3D5, 0x87F000, 0x87FFFF, "NAC Planning Co., Ltd.", "NAC-PLANNING" }, { 0x70B3D5, 0x880000, 0x880FFF, "Skopei B.V.", "SKOPEI-B-V" }, { 0x70B3D5, 0x881000, 0x881FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0x882000, 0x882FFF, "SIMON TECH, S.L.", "SIMON-TECH" }, { 0x70B3D5, 0x883000, 0x883FFF, "Contec Americas Inc.", "CONTEC-AMERICAS" }, { 0x70B3D5, 0x884000, 0x884FFF, "LG Electronics", "LG-ELECTRONICS" }, { 0x70B3D5, 0x885000, 0x885FFF, "QuirkLogic", "QUIRKLOGIC" }, { 0x70B3D5, 0x886000, 0x886FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x887000, 0x887FFF, "Entec Solar S.L.", "ENTEC-SOLAR" }, { 0x70B3D5, 0x888000, 0x888FFF, "Zetechtics Ltd", "ZETECHTICS" }, { 0x70B3D5, 0x889000, 0x889FFF, "Innovative Circuit Technology", "INNOVATIVE-CIRCUIT" }, { 0x70B3D5, 0x88A000, 0x88AFFF, "Perceptics, LLC", "PERCEPTICS" }, { 0x70B3D5, 0x88B000, 0x88BFFF, "WUHAN EASYLINKIN TECHNOLOGY co.,LTD", "WUHAN-EASYLINKIN" }, { 0x70B3D5, 0x88D000, 0x88DFFF, "LG Electronics", "LG-ELECTRONICS" }, { 0x70B3D5, 0x88E000, 0x88EFFF, "RCH Vietnam Limited Liability Company", "RCH-VIETNAM-LIABILITY-COMPANY" }, { 0x70B3D5, 0x88F000, 0x88FFFF, "Quaesta Instruments, LLC", "QUAESTA-INSTRUMENTS" }, { 0x70B3D5, 0x890000, 0x890FFF, "EIDOS s.r.l.", "EIDOS" }, { 0x70B3D5, 0x891000, 0x891FFF, "neocontrol soluções em automação", "NEOCONTROL-SOLUES-EM-AUTOMAO" }, { 0x70B3D5, 0x892000, 0x892FFF, "ABB", "ABB" }, { 0x70B3D5, 0x893000, 0x893FFF, "Cubitech", "CUBITECH" }, { 0x70B3D5, 0x894000, 0x894FFF, "UnI Systech Co.,Ltd", "UNI-SYSTECH" }, { 0x70B3D5, 0x895000, 0x895FFF, "Integrated Control Corp.", "INTEGRATED-CONTROL" }, { 0x70B3D5, 0x896000, 0x896FFF, "Shanghai Longpal Communication Equipment Co., Ltd.", "SHANGHAI-LONGPAL-COMMUNICATION-EQUIPMENT" }, { 0x70B3D5, 0x897000, 0x897FFF, "EFG CZ spol. s r.o.", "EFG-CZ-SPOL-S-R-O" }, { 0x70B3D5, 0x898000, 0x898FFF, "Salupo Sas", "SALUPO-SAS" }, { 0x70B3D5, 0x899000, 0x899FFF, "Viotec USA", "VIOTEC-USA" }, { 0x70B3D5, 0x89A000, 0x89AFFF, "Algodue Elettronica Srl", "ALGODUE-ELETTRONICA-SRL" }, { 0x70B3D5, 0x89B000, 0x89BFFF, "ControlWorks, Inc.", "CONTROLWORKS" }, { 0x70B3D5, 0x89C000, 0x89CFFF, "IHI Rotating Machinery Engineering Co.,Ltd.", "IHI-ROTATING-MACHINERY-ENGINEERING" }, { 0x70B3D5, 0x89D000, 0x89DFFF, "e-Matix Corporation", "E-MATIX" }, { 0x70B3D5, 0x89E000, 0x89EFFF, "Innovative Control Systems, LP", "INNOVATIVE-CONTROL-LP" }, { 0x70B3D5, 0x89F000, 0x89FFFF, "Levelup Holding, Inc.", "LEVELUP-HOLDING" }, { 0x70B3D5, 0x8A0000, 0x8A0FFF, "DM RADIOCOM", "DM-RADIOCOM" }, { 0x70B3D5, 0x8A1000, 0x8A1FFF, "TIAMA", "TIAMA" }, { 0x70B3D5, 0x8A2000, 0x8A2FFF, "WINNERS DIGITAL CORPORATION", "WINNERS-DIGITAL" }, { 0x70B3D5, 0x8A3000, 0x8A3FFF, "Loehnert Elektronik GmbH", "LOEHNERT-ELEKTRONIK" }, { 0x70B3D5, 0x8A4000, 0x8A4FFF, "Phyton, Inc. Microsystems and Development Tools", "PHYTON-MICROSYSTEMS-AND-DEVELOPMENT-TOOLS" }, { 0x70B3D5, 0x8A5000, 0x8A5FFF, "KST technology", "KST" }, { 0x70B3D5, 0x8A6000, 0x8A6FFF, "CRDE", "CRDE" }, { 0x70B3D5, 0x8A7000, 0x8A7FFF, "Tucsen Photonics Co., Ltd.", "TUCSEN-PHOTONICS" }, { 0x70B3D5, 0x8A8000, 0x8A8FFF, "megatec electronic GmbH", "MEGATEC" }, { 0x70B3D5, 0x8A9000, 0x8A9FFF, "WoKa-Elektronik GmbH", "WOKA-ELEKTRONIK" }, { 0x70B3D5, 0x8AA000, 0x8AAFFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0x8AB000, 0x8ABFFF, "EMAC, Inc.", "EMAC" }, { 0x70B3D5, 0x8AC000, 0x8ACFFF, "​ASUNG TECHNO CO.,Ltd", "ASUNG-TECHNO" }, { 0x70B3D5, 0x8AD000, 0x8ADFFF, "Global Communications Technology LLC", "GLOBAL-COMMUNICATION" }, { 0x70B3D5, 0x8AE000, 0x8AEFFF, "FARECO", "FARECO" }, { 0x70B3D5, 0x8AF000, 0x8AFFFF, "QBIC COMMUNICATIONS DMCC", "QBIC-COMMUNICATION-DMCC" }, { 0x70B3D5, 0x8B0000, 0x8B0FFF, "IES S.r.l.", "IES" }, { 0x70B3D5, 0x8B1000, 0x8B1FFF, "M-Tech Innovations Limited", "M-TECH-INNOVATIONS" }, { 0x70B3D5, 0x8B2000, 0x8B2FFF, "NPF Modem, LLC", "NPF-MODEM" }, { 0x70B3D5, 0x8B3000, 0x8B3FFF, "Firefly RFID Solutions", "FIREFLY-RFID-SOLUTIONS" }, { 0x70B3D5, 0x8B4000, 0x8B4FFF, "Scenario Automation", "SCENARIO-AUTOMATION" }, { 0x70B3D5, 0x8B5000, 0x8B5FFF, "xTom GmbH", "XTOM" }, { 0x70B3D5, 0x8B6000, 0x8B6FFF, "Eldes Ltd", "ELDES" }, { 0x70B3D5, 0x8B7000, 0x8B7FFF, "Contec Americas Inc.", "CONTEC-AMERICAS" }, { 0x70B3D5, 0x8B8000, 0x8B8FFF, "GDI Technology Inc", "GDI" }, { 0x70B3D5, 0x8B9000, 0x8B9FFF, "Toptech Systems, Inc.", "TOPTECH" }, { 0x70B3D5, 0x8BA000, 0x8BAFFF, "TIAMA", "TIAMA" }, { 0x70B3D5, 0x8BB000, 0x8BBFFF, "KST technology", "KST" }, { 0x70B3D5, 0x8BC000, 0x8BCFFF, "GSI GeoSolutions International Ltd", "GSI-GEOSOLUTIONS" }, { 0x70B3D5, 0x8BD000, 0x8BDFFF, "MAHLE ELECTRONICS, SLU", "MAHLE-ELECTRONICS-SLU" }, { 0x70B3D5, 0x8BE000, 0x8BEFFF, "Connoiseur Electronics Private Limited", "CONNOISEUR-ELECTRONICS-PRIVATE" }, { 0x70B3D5, 0x8BF000, 0x8BFFFF, "Hangzhou Leaper Technology Co. Ltd.", "HANGZHOU-LEAPER" }, { 0x70B3D5, 0x8C0000, 0x8C0FFF, "SenseNL", "SENSENL" }, { 0x70B3D5, 0x8C1000, 0x8C1FFF, "Rievtech Electronic Co.,Ltd", "RIEVTECH" }, { 0x70B3D5, 0x8C2000, 0x8C2FFF, "F-domain corporation", "F-DOMAIN" }, { 0x70B3D5, 0x8C3000, 0x8C3FFF, "Wyebot, Inc.", "WYEBOT" }, { 0x70B3D5, 0x8C4000, 0x8C4FFF, "APE GmbH", "APE" }, { 0x70B3D5, 0x8C5000, 0x8C5FFF, "HMicro Inc", "HMICRO" }, { 0x70B3D5, 0x8C6000, 0x8C6FFF, "Onosokki Co.,Ltd", "ONOSOKKI" }, { 0x70B3D5, 0x8C7000, 0x8C7FFF, "Henschel-Robotics GmbH", "HENSCHEL-ROBOTICS" }, { 0x70B3D5, 0x8C8000, 0x8C8FFF, "KRONOTECH SRL", "KRONOTECH-SRL" }, { 0x70B3D5, 0x8C9000, 0x8C9FFF, "Arwin Technology Limited", "ARWIN" }, { 0x70B3D5, 0x8CA000, 0x8CAFFF, "Allied Data Systems", "ALLIED-DATA" }, { 0x70B3D5, 0x8CB000, 0x8CBFFF, "WELT Corporation", "WELT" }, { 0x70B3D5, 0x8CC000, 0x8CCFFF, "Piranha EMS Inc.", "PIRANHA-EMS" }, { 0x70B3D5, 0x8CD000, 0x8CDFFF, "EA Elektroautomatik GmbH & Co. KG", "EA-ELEKTROAUTOMATIK" }, { 0x70B3D5, 0x8CE000, 0x8CEFFF, "CORES Corporation", "CORES" }, { 0x70B3D5, 0x8CF000, 0x8CFFFF, "Dainichi Denshi Co.,LTD", "DAINICHI-DENSHI" }, { 0x70B3D5, 0x8D0000, 0x8D0FFF, "Raft Technologies", "RAFT-TECHNOLOGIES" }, { 0x70B3D5, 0x8D1000, 0x8D1FFF, "Field Design Inc.", "FIELD-DESIGN" }, { 0x70B3D5, 0x8D2000, 0x8D2FFF, "WIZAPPLY CO.,LTD", "WIZAPPLY" }, { 0x70B3D5, 0x8D3000, 0x8D3FFF, "PERFORMANCE CONTROLS, INC.", "PERFORMANCE-CONTROLS" }, { 0x70B3D5, 0x8D4000, 0x8D4FFF, "Guangdong Transtek Medical Electronics Co., Ltd.", "GUANGDONG-TRANSTEK-MEDICAL-ELECTRONICS" }, { 0x70B3D5, 0x8D5000, 0x8D5FFF, "Guangzhou Wanglu", "GUANGZHOU-WANGLU" }, { 0x70B3D5, 0x8D6000, 0x8D6FFF, "Beijing Xiansheng Technology Co., Ltd", "BEIJING-XIANSHENG" }, { 0x70B3D5, 0x8D7000, 0x8D7FFF, "Schneider Electric Motion USA", "SCHNEIDER-ELECTRIC-MOTION-USA" }, { 0x70B3D5, 0x8D8000, 0x8D8FFF, "VNG Corporation", "VNG" }, { 0x70B3D5, 0x8D9000, 0x8D9FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x8DA000, 0x8DAFFF, "MicroElectronics System Co.Ltd", "MICROELECTRONICS-SYSTEM" }, { 0x70B3D5, 0x8DB000, 0x8DBFFF, "Kratos Analytical Ltd", "KRATOS-ANALYTICAL" }, { 0x70B3D5, 0x8DC000, 0x8DCFFF, "Niveo International BV", "NIVEO" }, { 0x70B3D5, 0x8DD000, 0x8DDFFF, "Vertex Co.,Ltd.", "VERTEX" }, { 0x70B3D5, 0x8DE000, 0x8DEFFF, "Indutherm Giesstechnologie GmbH", "INDUTHERM-GIESSTECHNOLOGIE" }, { 0x70B3D5, 0x8DF000, 0x8DFFFF, "DORLET SAU", "DORLET-SAU" }, { 0x70B3D5, 0x8E0000, 0x8E0FFF, "SOUDAX EQUIPEMENTS", "SOUDAX-EQUIPEMENTS" }, { 0x70B3D5, 0x8E1000, 0x8E1FFF, "WoKa-Elektronik GmbH", "WOKA-ELEKTRONIK" }, { 0x70B3D5, 0x8E2000, 0x8E2FFF, "Zhiye Electronics Co., Ltd.", "ZHIYE-ELECTRONICS" }, { 0x70B3D5, 0x8E3000, 0x8E3FFF, "DORLET SAU", "DORLET-SAU" }, { 0x70B3D5, 0x8E4000, 0x8E4FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x8E5000, 0x8E5FFF, "Shanghai Armour Technology Co., Ltd.", "SHANGHAI-ARMOUR" }, { 0x70B3D5, 0x8E6000, 0x8E6FFF, "Mothonic AB", "MOTHONIC-AB" }, { 0x70B3D5, 0x8E7000, 0x8E7FFF, "REO AG", "REO" }, { 0x70B3D5, 0x8E8000, 0x8E8FFF, "PREO INDUSTRIES FAR EAST LTD", "PREO-INDUSTRIES-FAR-EAST" }, { 0x70B3D5, 0x8E9000, 0x8E9FFF, "COONTROL Tecnologia em Combustão LTDA EPP", "COONTROL-TECNOLOGIA-EM-COMBUSTO-LTDA-EPP" }, { 0x70B3D5, 0x8EA000, 0x8EAFFF, "JLCooper Electronics", "JLCOOPER-ELECTRONICS" }, { 0x70B3D5, 0x8EB000, 0x8EBFFF, "Procon Electronics Pty Ltd", "PROCON-ELECTRONICS-PTY" }, { 0x70B3D5, 0x8EC000, 0x8ECFFF, "Rudy Tellert", "RUDY-TELLERT" }, { 0x70B3D5, 0x8ED000, 0x8EDFFF, "NanoSense", "NANOSENSE" }, { 0x70B3D5, 0x8EE000, 0x8EEFFF, "Network Additions", "NETWORK-ADDITIONS" }, { 0x70B3D5, 0x8EF000, 0x8EFFFF, "Beeper Communications Ltd.", "BEEPER-COMMUNICATION" }, { 0x70B3D5, 0x8F0000, 0x8F0FFF, "ERAESEEDS co.,ltd.", "ERAESEEDS" }, { 0x70B3D5, 0x8F1000, 0x8F1FFF, "Paramount Bed Holdings Co., Ltd.", "PARAMOUNT-BED-HOLDINGS" }, { 0x70B3D5, 0x8F2000, 0x8F2FFF, "Rimota Limited", "RIMOTA" }, { 0x70B3D5, 0x8F3000, 0x8F3FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0x8F4000, 0x8F4FFF, "ACQUA-SYSTEMS srls", "ACQUA-SRLS" }, { 0x70B3D5, 0x8F5000, 0x8F5FFF, "Stmovic", "STMOVIC" }, { 0x70B3D5, 0x8F6000, 0x8F6FFF, "Dofuntech Co.,LTD.", "DOFUNTECH" }, { 0x70B3D5, 0x8F7000, 0x8F7FFF, "I.E. Sevko A.V.", "I-E-SEVKO-A-V" }, { 0x70B3D5, 0x8F8000, 0x8F8FFF, "Wi6labs", "WI6LABS" }, { 0x70B3D5, 0x8F9000, 0x8F9FFF, "IWS Global Pty Ltd", "IWS-GLOBAL-PTY" }, { 0x70B3D5, 0x8FA000, 0x8FAFFF, "DEA SYSTEM SPA", "DEA-SYSTEM-SPA" }, { 0x70B3D5, 0x8FB000, 0x8FBFFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0x8FC000, 0x8FCFFF, "Mianjie Technology", "MIANJIE" }, { 0x70B3D5, 0x8FD000, 0x8FDFFF, "sonatest", "SONATEST" }, { 0x70B3D5, 0x8FE000, 0x8FEFFF, "Selmatec AS", "SELMATEC-AS" }, { 0x70B3D5, 0x8FF000, 0x8FFFFF, "IMST GmbH", "IMST" }, { 0x70B3D5, 0x900000, 0x900FFF, "DCS Corp", "DCS" }, { 0x70B3D5, 0x901000, 0x901FFF, "ATS-CONVERS,LLC", "ATS-CONVERS" }, { 0x70B3D5, 0x902000, 0x902FFF, "Unlimiterhear co.,ltd. taiwan branch", "UNLIMITERHEAR-TAIWAN-BRANCH" }, { 0x70B3D5, 0x903000, 0x903FFF, "Cymtec Ltd", "CYMTEC" }, { 0x70B3D5, 0x904000, 0x904FFF, "PHB Eletronica Ltda.", "PHB-ELETRONICA-LTDA" }, { 0x70B3D5, 0x905000, 0x905FFF, "Wexiodisk AB", "WEXIODISK-AB" }, { 0x70B3D5, 0x906000, 0x906FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x907000, 0x907FFF, "NINGBO CRRC TIMES TRANSDUCER TECHNOLOGY CO., LTD", "NINGBO-CRRC-TIMES-TRANSDUCER" }, { 0x70B3D5, 0x908000, 0x908FFF, "Accusonic", "ACCUSONIC" }, { 0x70B3D5, 0x909000, 0x909FFF, "tetronik GmbH AEN", "TETRONIK-AEN" }, { 0x70B3D5, 0x90A000, 0x90AFFF, "Hangzhou SunTown Intelligent Science & Technology Co.,Ltd.", "HANGZHOU-SUNTOWN-INTELLIGENT-SCIENCE" }, { 0x70B3D5, 0x90B000, 0x90BFFF, "Matrix Switch Corporation", "MATRIX-SWITCH" }, { 0x70B3D5, 0x90C000, 0x90CFFF, "ANTEK GmbH", "ANTEK" }, { 0x70B3D5, 0x90D000, 0x90DFFF, "Modtronix Engineering", "MODTRONIX-ENGINEERING" }, { 0x70B3D5, 0x90E000, 0x90EFFF, "Maytronics Ltd.", "MAYTRONICS" }, { 0x70B3D5, 0x90F000, 0x90FFFF, "DTRON Communications (Pty) Ltd", "DTRON-COMMUNICATION-PTY" }, { 0x70B3D5, 0x910000, 0x910FFF, "Eginity, Inc.", "EGINITY" }, { 0x70B3D5, 0x911000, 0x911FFF, "Equatel", "EQUATEL" }, { 0x70B3D5, 0x912000, 0x912FFF, "VERTEL DIGITAL PRIVATE LIMITED", "VERTEL-DIGITAL-PRIVATE" }, { 0x70B3D5, 0x913000, 0x913FFF, "Shenzhen Riitek Technology Co.,Ltd", "SHENZHEN-RIITEK" }, { 0x70B3D5, 0x914000, 0x914FFF, "Contec Americas Inc.", "CONTEC-AMERICAS" }, { 0x70B3D5, 0x915000, 0x915FFF, "DHK Storage, LLC", "DHK-STORAGE" }, { 0x70B3D5, 0x916000, 0x916FFF, "Techno Mathematical Co.,Ltd", "TECHNO-MATHEMATICAL" }, { 0x70B3D5, 0x917000, 0x917FFF, "KSJ Co.Ltd", "KSJ" }, { 0x70B3D5, 0x918000, 0x918FFF, "Glova Rail A/S", "GLOVA-RAIL-A/S" }, { 0x70B3D5, 0x919000, 0x919FFF, "Thesycon Software Solutions GmbH & Co. KG", "THESYCON-SOFTWARE-SOLUTIONS" }, { 0x70B3D5, 0x91A000, 0x91AFFF, "Fujian Landfone Information Technology Co.,Ltd", "FUJIAN-LANDFONE-INFORMATION" }, { 0x70B3D5, 0x91B000, 0x91BFFF, "Dolotron d.o.o.", "DOLOTRON-D-O-O" }, { 0x70B3D5, 0x91C000, 0x91CFFF, "Alere Technologies AS", "ALERE-TECHNOLOGIES-AS" }, { 0x70B3D5, 0x91D000, 0x91DFFF, "Cubitech", "CUBITECH" }, { 0x70B3D5, 0x91E000, 0x91EFFF, "Creotech Instruments S.A.", "CREOTECH-INSTRUMENTS" }, { 0x70B3D5, 0x91F000, 0x91FFFF, "JSC InformInvestGroup", "JSC-INFORMINVESTGROUP" }, { 0x70B3D5, 0x920000, 0x920FFF, "SLAT", "SLAT" }, { 0x70B3D5, 0x921000, 0x921FFF, "QDevil", "QDEVIL" }, { 0x70B3D5, 0x922000, 0x922FFF, "Adcole Space", "ADCOLE-SPACE" }, { 0x70B3D5, 0x923000, 0x923FFF, "eumig industrie-tv GmbH", "EUMIG-INDUSTRIE-TV" }, { 0x70B3D5, 0x924000, 0x924FFF, "Meridian Technologies Inc", "MERIDIAN-TECHNOLOGIES" }, { 0x70B3D5, 0x925000, 0x925FFF, "Diamante Lighting Srl", "DIAMANTE-LIGHTING-SRL" }, { 0x70B3D5, 0x926000, 0x926FFF, "Advice", "ADVICE" }, { 0x70B3D5, 0x927000, 0x927FFF, "LG Electronics", "LG-ELECTRONICS" }, { 0x70B3D5, 0x928000, 0x928FFF, "Done Design Inc", "DONE-DESIGN" }, { 0x70B3D5, 0x929000, 0x929FFF, "OutSys", "OUTSYS" }, { 0x70B3D5, 0x92A000, 0x92AFFF, "Miravue", "MIRAVUE" }, { 0x70B3D5, 0x92B000, 0x92BFFF, "ENTEC Electric & Electronic Co., LTD.", "ENTEC-ELECTRIC" }, { 0x70B3D5, 0x92C000, 0x92CFFF, "DISMUNTEL SAL", "DISMUNTEL-SAL" }, { 0x70B3D5, 0x92D000, 0x92DFFF, "Suzhou Wansong Electric Co.,Ltd", "SUZHOU-WANSONG-ELECTRIC" }, { 0x70B3D5, 0x92E000, 0x92EFFF, "Medical Monitoring Center OOD", "MEDICAL-MONITORING-CENTER-OOD" }, { 0x70B3D5, 0x92F000, 0x92FFFF, "SiFive", "SIFIVE" }, { 0x70B3D5, 0x930000, 0x930FFF, "The Institute of Mine Seismology", "THE-INSTITUTE-OF-MINE-SEISMOLOGY" }, { 0x70B3D5, 0x931000, 0x931FFF, "MARINE INSTRUMENTS, S.A.", "MARINE-INSTRUMENTS" }, { 0x70B3D5, 0x932000, 0x932FFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x70B3D5, 0x933000, 0x933FFF, "SARL S@TIS", "SARL-S@TIS" }, { 0x70B3D5, 0x934000, 0x934FFF, "RBS Netkom GmbH", "RBS-NETKOM" }, { 0x70B3D5, 0x935000, 0x935FFF, "Sensor Developments", "SENSOR-DEVELOPMENTS" }, { 0x70B3D5, 0x936000, 0x936FFF, "FARO TECHNOLOGIES, INC.", "FARO-TECHNOLOGIES" }, { 0x70B3D5, 0x937000, 0x937FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0x938000, 0x938FFF, "JETI Technische Instrumente GmbH", "JETI-TECHNISCHE-INSTRUMENTE" }, { 0x70B3D5, 0x939000, 0x939FFF, "Invertek Drives Ltd", "INVERTEK-DRIVES" }, { 0x70B3D5, 0x93A000, 0x93AFFF, "Braemar Manufacturing, LLC", "BRAEMAR-MANUFACTURING" }, { 0x70B3D5, 0x93B000, 0x93BFFF, "Changchun FAW Yanfeng Visteon Automotive Electronics.,Ltd.", "CHANGCHUN-FAW-YANFENG-VISTEON-AUTOMOTIVE-ELECTRONICS" }, { 0x70B3D5, 0x93C000, 0x93CFFF, "GSP Sprachtechnologie GmbH", "GSP-SPRACHTECHNOLOGIE" }, { 0x70B3D5, 0x93D000, 0x93DFFF, "Elmeasure India Pvt Ltd", "ELMEASURE-INDIA-PVT" }, { 0x70B3D5, 0x93E000, 0x93EFFF, "Systems With Intelligence Inc.", "WITH-INTELLIGENCE" }, { 0x70B3D5, 0x93F000, 0x93FFFF, "Vision Sensing Co., Ltd.", "VISION-SENSING" }, { 0x70B3D5, 0x940000, 0x940FFF, "Paradigm Technology Services B.V.", "PARADIGM-SERVICES-B-V" }, { 0x70B3D5, 0x941000, 0x941FFF, "Triax A/S", "TRIAX-A/S" }, { 0x70B3D5, 0x942000, 0x942FFF, "TruTeq Devices (Pty) Ltd", "TRUTEQ-DEVICES-PTY" }, { 0x70B3D5, 0x943000, 0x943FFF, "Abbott Medical Optics Inc.", "ABBOTT-MEDICAL-OPTICS" }, { 0x70B3D5, 0x944000, 0x944FFF, "Chromateq", "CHROMATEQ" }, { 0x70B3D5, 0x945000, 0x945FFF, "Symboticware Incorporated", "SYMBOTICWARE-INCORPORATED" }, { 0x70B3D5, 0x946000, 0x946FFF, "GREATWALL Infotech Co., Ltd.", "GREATWALL-INFOTECH" }, { 0x70B3D5, 0x947000, 0x947FFF, "Checkbill Co,Ltd.", "CHECKBILL" }, { 0x70B3D5, 0x948000, 0x948FFF, "VISION SYSTEMS AURTOMOTIVE (SAFETY TECH)", "VISION-AURTOMOTIVE-SAFETY-TECH" }, { 0x70B3D5, 0x949000, 0x949FFF, "National Radio & Telecommunication Corporation - NRTC", "NATIONAL-RADIO-TELECOMMUNICATION-NRTC" }, { 0x70B3D5, 0x94A000, 0x94AFFF, "SHENZHEN WISEWING INTERNET TECHNOLOGY CO.,LTD", "SHENZHEN-WISEWING-INTERNET" }, { 0x70B3D5, 0x94B000, 0x94BFFF, "RF Code", "RF-CODE" }, { 0x70B3D5, 0x94C000, 0x94CFFF, "Honeywell/Intelligrated", "HONEYWELL/INTELLIGRATED" }, { 0x70B3D5, 0x94D000, 0x94DFFF, "SEASON DESIGN TECHNOLOGY", "SEASON-DESIGN" }, { 0x70B3D5, 0x94E000, 0x94EFFF, "BP Lubricants USA, Inc.", "BP-LUBRICANTS-USA" }, { 0x70B3D5, 0x94F000, 0x94FFFF, "MART NETWORK SOLUTIONS LTD", "MART-NETWORK-SOLUTIONS" }, { 0x70B3D5, 0x950000, 0x950FFF, "CMT Medical technologies", "CMT-MEDICAL-TECHNOLOGIES" }, { 0x70B3D5, 0x951000, 0x951FFF, "Trident Systems Inc", "TRIDENT" }, { 0x70B3D5, 0x952000, 0x952FFF, "REQUEA", "REQUEA" }, { 0x70B3D5, 0x953000, 0x953FFF, "Spectrum Techniques, LLC", "SPECTRUM-TECHNIQUES" }, { 0x70B3D5, 0x954000, 0x954FFF, "Dot System S.r.l.", "DOT-SYSTEM" }, { 0x70B3D5, 0x955000, 0x955FFF, "Dynacard Co., Ltd.", "DYNACARD" }, { 0x70B3D5, 0x956000, 0x956FFF, "AeroVision Avionics, Inc.", "AEROVISION-AVIONICS" }, { 0x70B3D5, 0x957000, 0x957FFF, "EA Elektroautomatik GmbH & Co. KG", "EA-ELEKTROAUTOMATIK" }, { 0x70B3D5, 0x958000, 0x958FFF, "pureLiFi Ltd", "PURELIFI" }, { 0x70B3D5, 0x959000, 0x959FFF, "Zulex International Co.,Ltd.", "ZULEX" }, { 0x70B3D5, 0x95A000, 0x95AFFF, "Sigmann Elektronik GmbH", "SIGMANN-ELEKTRONIK" }, { 0x70B3D5, 0x95B000, 0x95BFFF, "SRS Group s.r.o.", "SRS-GROUP-S-R-O" }, { 0x70B3D5, 0x95C000, 0x95CFFF, "Wilson Electronics", "WILSON-ELECTRONICS" }, { 0x70B3D5, 0x95D000, 0x95DFFF, "GIORDANO CONTROLS SPA", "GIORDANO-CONTROLS-SPA" }, { 0x70B3D5, 0x95E000, 0x95EFFF, "BLOCKSI LLC", "BLOCKSI" }, { 0x70B3D5, 0x95F000, 0x95FFFF, "WiFi Nation Ltd", "WIFI-NATION" }, { 0x70B3D5, 0x960000, 0x960FFF, "HORIZON TELECOM", "HORIZON-TELECOM" }, { 0x70B3D5, 0x961000, 0x961FFF, "TASK SISTEMAS DE COMPUTACAO LTDA", "TASK-SISTEMAS-DE-COMPUTACAO-LTDA" }, { 0x70B3D5, 0x962000, 0x962FFF, "Senquire Pte. Ltd", "SENQUIRE-PTE" }, { 0x70B3D5, 0x963000, 0x963FFF, "Triax A/S", "TRIAX-A/S" }, { 0x70B3D5, 0x964000, 0x964FFF, "Visility", "VISILITY" }, { 0x70B3D5, 0x965000, 0x965FFF, "LINEAGE POWER PVT LTD.,", "LINEAGE-POWER-PVT" }, { 0x70B3D5, 0x966000, 0x966FFF, "dA Tomato Limited", "DA-TOMATO" }, { 0x70B3D5, 0x967000, 0x967FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0x968000, 0x968FFF, "LGM Ingénierie", "LGM-INGNIERIE" }, { 0x70B3D5, 0x969000, 0x969FFF, "Emtel System Sp. z o.o.", "EMTEL-SYSTEM-SP-Z-O-O" }, { 0x70B3D5, 0x96A000, 0x96AFFF, "Anello Photonics", "ANELLO-PHOTONICS" }, { 0x70B3D5, 0x96B000, 0x96BFFF, "FOCAL-JMLab", "FOCAL-JMLAB" }, { 0x70B3D5, 0x96C000, 0x96CFFF, "Weble Sàrl", "WEBLE-SRL" }, { 0x70B3D5, 0x96D000, 0x96DFFF, "MSB Elektronik und Gerätebau GmbH", "MSB-ELEKTRONIK-UND-GERAETEBAU" }, { 0x70B3D5, 0x96E000, 0x96EFFF, "Myostat Motion Control Inc", "MYOSTAT-MOTION-CONTROL" }, { 0x70B3D5, 0x96F000, 0x96FFFF, "4CAM GmbH", "4CAM" }, { 0x70B3D5, 0x970000, 0x970FFF, "Bintel AB", "BINTEL-AB" }, { 0x70B3D5, 0x971000, 0x971FFF, "RCH ITALIA SPA", "RCH-ITALIA-SPA" }, { 0x70B3D5, 0x972000, 0x972FFF, "AixControl GmbH", "AIXCONTROL" }, { 0x70B3D5, 0x973000, 0x973FFF, "Autonomic Controls, Inc.", "AUTONOMIC-CONTROLS" }, { 0x70B3D5, 0x974000, 0x974FFF, "Jireh Industries Ltd.", "JIREH-INDUSTRIES" }, { 0x70B3D5, 0x975000, 0x975FFF, "Coester Automação Ltda", "COESTER-AUTOMAO-LTDA" }, { 0x70B3D5, 0x976000, 0x976FFF, "Atonarp Micro-Systems India Pvt. Ltd.", "ATONARP-MICRO-INDIA-PVT" }, { 0x70B3D5, 0x977000, 0x977FFF, "Engage Technologies", "ENGAGE-TECHNOLOGIES" }, { 0x70B3D5, 0x978000, 0x978FFF, "Satixfy Israel Ltd.", "SATIXFY-ISRAEL" }, { 0x70B3D5, 0x979000, 0x979FFF, "eSMART Technologies SA", "ESMART-TECHNOLOGIES" }, { 0x70B3D5, 0x97A000, 0x97AFFF, "Orion Corporation", "ORION" }, { 0x70B3D5, 0x97B000, 0x97BFFF, "WIKA Alexander Wiegand SE & Co. KG", "WIKA-ALEXANDER-WIEGAND-SE" }, { 0x70B3D5, 0x97C000, 0x97CFFF, "Nu-Tek Power Controls and Automation", "NU-TEK-POWER-CONTROLS-AND-AUTOMATION" }, { 0x70B3D5, 0x97D000, 0x97DFFF, "RCH Vietnam Limited Liability Company", "RCH-VIETNAM-LIABILITY-COMPANY" }, { 0x70B3D5, 0x97E000, 0x97EFFF, "Public Joint Stock Company Morion", "PUBLIC-JOINT-STOCK-COMPANY-MORION" }, { 0x70B3D5, 0x97F000, 0x97FFFF, "BISTOS.,Co.,Ltd", "BISTOS" }, { 0x70B3D5, 0x980000, 0x980FFF, "Beijing Yourong Runda Rechnology Development Co.Ltd.", "BEIJING-YOURONG-RUNDA-RECHNOLOGY-DEVELOPMENT" }, { 0x70B3D5, 0x981000, 0x981FFF, "Zamir Recognition Systems Ltd.", "ZAMIR-RECOGNITION" }, { 0x70B3D5, 0x982000, 0x982FFF, "3S - Sensors, Signal Processing, Systems GmbH", "3S-SENSORS-SIGNAL-PROCESSING" }, { 0x70B3D5, 0x983000, 0x983FFF, "ENS Engineered Network Systems", "ENS-ENGINEERED-NETWORK" }, { 0x70B3D5, 0x984000, 0x984FFF, "Sanmina Israel", "SANMINA-ISRAEL" }, { 0x70B3D5, 0x985000, 0x985FFF, "Burk Technology", "BURK" }, { 0x70B3D5, 0x986000, 0x986FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x987000, 0x987FFF, "AXIS CORPORATION", "AXIS" }, { 0x70B3D5, 0x988000, 0x988FFF, "Arris", "ARRIS" }, { 0x70B3D5, 0x989000, 0x989FFF, "DCNS", "DCNS" }, { 0x70B3D5, 0x98A000, 0x98AFFF, "vision systems safety tech", "VISION-SAFETY-TECH" }, { 0x70B3D5, 0x98B000, 0x98BFFF, "Richard Paul Russell Ltd", "RICHARD-PAUL-RUSSELL" }, { 0x70B3D5, 0x98C000, 0x98CFFF, "University of Wisconsin Madison - Department of High Energy Physics", "UNIVERSITY-OF-WISCONSIN-MADISON-DEPARTMENT-OF-HIGH-ENERGY-PHYSICS" }, { 0x70B3D5, 0x98D000, 0x98DFFF, "Motohaus Powersports Limited", "MOTOHAUS-POWERSPORTS" }, { 0x70B3D5, 0x98E000, 0x98EFFF, "Autocom Diagnostic Partner AB", "AUTOCOM-DIAGNOSTIC-PARTNER-AB" }, { 0x70B3D5, 0x98F000, 0x98FFFF, "Spaceflight Industries", "SPACEFLIGHT-INDUSTRIES" }, { 0x70B3D5, 0x990000, 0x990FFF, "Energy Wall", "ENERGY-WALL" }, { 0x70B3D5, 0x991000, 0x991FFF, "Javasparrow Inc.", "JAVASPARROW" }, { 0x70B3D5, 0x992000, 0x992FFF, "KAEONIT", "KAEONIT" }, { 0x70B3D5, 0x993000, 0x993FFF, "ioThings", "IOTHINGS" }, { 0x70B3D5, 0x994000, 0x994FFF, "KeFF Networks", "KEFF-NETWORKS" }, { 0x70B3D5, 0x995000, 0x995FFF, "LayTec AG", "LAYTEC" }, { 0x70B3D5, 0x996000, 0x996FFF, "XpertSea Solutions inc.", "XPERTSEA-SOLUTIONS" }, { 0x70B3D5, 0x997000, 0x997FFF, "ProTom International", "PROTOM" }, { 0x70B3D5, 0x998000, 0x998FFF, "Kita Kirmizi Takim Bilgi Guvenligi Danismanlik ve Egitim A.S.", "KITA-KIRMIZI-TAKIM-BILGI-GUVENLIGI-DANISMANLIK-VE-EGITIM" }, { 0x70B3D5, 0x999000, 0x999FFF, "LOGICUBE INC", "LOGICUBE" }, { 0x70B3D5, 0x99A000, 0x99AFFF, "KEVIC. inc,", "KEVIC" }, { 0x70B3D5, 0x99B000, 0x99BFFF, "RCH ITALIA SPA", "RCH-ITALIA-SPA" }, { 0x70B3D5, 0x99C000, 0x99CFFF, "Enerwise Solutions Ltd.", "ENERWISE-SOLUTIONS" }, { 0x70B3D5, 0x99D000, 0x99DFFF, "Opsys-Tech", "OPSYS-TECH" }, { 0x70B3D5, 0x99E000, 0x99EFFF, "Trinity College Dublin", "TRINITY-COLLEGE-DUBLIN" }, { 0x70B3D5, 0x99F000, 0x99FFFF, "Confed Holding B.V.", "CONFED-HOLDING-B-V" }, { 0x70B3D5, 0x9A0000, 0x9A0FFF, "ELDES", "ELDES" }, { 0x70B3D5, 0x9A1000, 0x9A1FFF, "ITS Industrial Turbine Services GmbH", "ITS-INDUSTRIAL-TURBINE-SERVICES" }, { 0x70B3D5, 0x9A2000, 0x9A2FFF, "O-Net Communications(Shenzhen)Limited", "O-NET-COMMUNICATION-SHENZHEN" }, { 0x70B3D5, 0x9A3000, 0x9A3FFF, "Shanghai Hourui Technology Co., Ltd.", "SHANGHAI-HOURUI" }, { 0x70B3D5, 0x9A4000, 0x9A4FFF, "Nordmann International GmbH", "NORDMANN" }, { 0x70B3D5, 0x9A5000, 0x9A5FFF, "Softel", "SOFTEL" }, { 0x70B3D5, 0x9A6000, 0x9A6FFF, "QUNU LABS PRIVATE LIMITED", "QUNU-LABS-PRIVATE" }, { 0x70B3D5, 0x9A7000, 0x9A7FFF, "Honeywell", "HONEYWELL" }, { 0x70B3D5, 0x9A8000, 0x9A8FFF, "Egag, LLC", "EGAG" }, { 0x70B3D5, 0x9A9000, 0x9A9FFF, "PABLO AIR Co., LTD", "PABLO-AIR" }, { 0x70B3D5, 0x9AA000, 0x9AAFFF, "Tecsys do Brasil Industrial Ltda", "TECSYS-DO-BRASIL-INDUSTRIAL-LTDA" }, { 0x70B3D5, 0x9AB000, 0x9ABFFF, "Groupe Paris-Turf", "GROUPE-PARIS-TURF" }, { 0x70B3D5, 0x9AC000, 0x9ACFFF, "Suzhou Sapa Automotive Technology Co.,Ltd", "SUZHOU-SAPA-AUTOMOTIVE" }, { 0x70B3D5, 0x9AD000, 0x9ADFFF, "Fortuna Impex Pvt ltd", "FORTUNA-IMPEX-PVT" }, { 0x70B3D5, 0x9AE000, 0x9AEFFF, "Volansys technologies pvt ltd", "VOLANSYS-TECHNOLOGIES-PVT" }, { 0x70B3D5, 0x9AF000, 0x9AFFFF, "Shanghai Brellet Telecommunication Technology Co., Ltd.", "SHANGHAI-BRELLET-TELECOMMUNICATION" }, { 0x70B3D5, 0x9B0000, 0x9B0FFF, "Clearly IP Inc", "CLEARLY-IP" }, { 0x70B3D5, 0x9B1000, 0x9B1FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0x9B2000, 0x9B2FFF, "CONTINENT, Ltd", "CONTINENT" }, { 0x70B3D5, 0x9B3000, 0x9B3FFF, "K&J Schmittschneider AG", "K-J-SCHMITTSCHNEIDER" }, { 0x70B3D5, 0x9B4000, 0x9B4FFF, "MyoungSung System", "MYOUNGSUNG-SYSTEM" }, { 0x70B3D5, 0x9B5000, 0x9B5FFF, "Ideetron b.v.", "IDEETRON-B-V" }, { 0x70B3D5, 0x9B6000, 0x9B6FFF, "Intercomp S.p.A.", "INTERCOMP" }, { 0x70B3D5, 0x9B7000, 0x9B7FFF, "Itronics Ltd", "ITRONICS" }, { 0x70B3D5, 0x9B8000, 0x9B8FFF, "Loma Systems s.r.o.", "LOMA-S-R-O" }, { 0x70B3D5, 0x9B9000, 0x9B9FFF, "Aethera Technologies", "AETHERA-TECHNOLOGIES" }, { 0x70B3D5, 0x9BA000, 0x9BAFFF, "ATIM Radiocommunication", "ATIM-RADIOCOMMUNICATION" }, { 0x70B3D5, 0x9BB000, 0x9BBFFF, "Jinga-hi, Inc.", "JINGA-HI" }, { 0x70B3D5, 0x9BC000, 0x9BCFFF, "Radian Research, Inc.", "RADIAN-RESEARCH" }, { 0x70B3D5, 0x9BD000, 0x9BDFFF, "Signal Processing Devices Sweden AB", "SIGNAL-PROCESSING-DEVICES-SWEDEN-AB" }, { 0x70B3D5, 0x9BE000, 0x9BEFFF, "Izome", "IZOME" }, { 0x70B3D5, 0x9BF000, 0x9BFFFF, "Xiris Automation Inc.", "XIRIS-AUTOMATION" }, { 0x70B3D5, 0x9C0000, 0x9C0FFF, "Schneider Displaytechnik GmbH", "SCHNEIDER-DISPLAYTECHNIK" }, { 0x70B3D5, 0x9C1000, 0x9C1FFF, "Zeroplus Technology Co.,Ltd.", "ZEROPLUS" }, { 0x70B3D5, 0x9C2000, 0x9C2FFF, "Sportsbeams Lighting, Inc.", "SPORTSBEAMS-LIGHTING" }, { 0x70B3D5, 0x9C3000, 0x9C3FFF, "Sevensense Robotics AG", "SEVENSENSE-ROBOTICS" }, { 0x70B3D5, 0x9C4000, 0x9C4FFF, "aelettronica group srl", "AELETTRONICA-GROUP-SRL" }, { 0x70B3D5, 0x9C5000, 0x9C5FFF, "LINEAGE POWER PVT LTD.,", "LINEAGE-POWER-PVT" }, { 0x70B3D5, 0x9C6000, 0x9C6FFF, "Overspeed SARL", "OVERSPEED-SARL" }, { 0x70B3D5, 0x9C7000, 0x9C7FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0x9C8000, 0x9C8FFF, "Applied Systems Engineering, Inc.", "APPLIED-ENGINEERING" }, { 0x70B3D5, 0x9C9000, 0x9C9FFF, "PK Sound", "PK-SOUND" }, { 0x70B3D5, 0x9CA000, 0x9CAFFF, "KOMSIS ELEKTRONIK SISTEMLERI SAN. TIC. LTD.STI", "KOMSIS-ELEKTRONIK-SISTEMLERI-SAN-TIC-STI" }, { 0x70B3D5, 0x9CB000, 0x9CBFFF, "Alligator Communications", "ALLIGATOR-COMMUNICATION" }, { 0x70B3D5, 0x9CC000, 0x9CCFFF, "Zaxcom Inc", "ZAXCOM" }, { 0x70B3D5, 0x9CD000, 0x9CDFFF, "WEPTECH elektronik GmbH", "WEPTECH-ELEKTRONIK" }, { 0x70B3D5, 0x9CE000, 0x9CEFFF, "Terragene S.A", "TERRAGENE" }, { 0x70B3D5, 0x9CF000, 0x9CFFFF, "IOTIZE", "IOTIZE" }, { 0x70B3D5, 0x9D0000, 0x9D0FFF, "RJ45 Technologies", "RJ45-TECHNOLOGIES" }, { 0x70B3D5, 0x9D1000, 0x9D1FFF, "OS42 UG (haftungsbeschraenkt)", "OS42-UG-HAFTUNGSBESCHRAENKT" }, { 0x70B3D5, 0x9D2000, 0x9D2FFF, "ACS MOTION CONTROL", "ACS-MOTION-CONTROL" }, { 0x70B3D5, 0x9D3000, 0x9D3FFF, "Communication Technology Ltd.", "COMMUNICATION" }, { 0x70B3D5, 0x9D4000, 0x9D4FFF, "Wartsila Voyage Limited", "WARTSILA-VOYAGE" }, { 0x70B3D5, 0x9D5000, 0x9D5FFF, "Southern Tier Technologies", "SOUTHERN-TIER-TECHNOLOGIES" }, { 0x70B3D5, 0x9D6000, 0x9D6FFF, "Crown Solar Power Fencing Systems", "CROWN-SOLAR-POWER-FENCING" }, { 0x70B3D5, 0x9D7000, 0x9D7FFF, "KM OptoElektronik GmbH", "KM-OPTOELEKTRONIK" }, { 0x70B3D5, 0x9D8000, 0x9D8FFF, "JOLANYEE Technology Co., Ltd.", "JOLANYEE" }, { 0x70B3D5, 0x9D9000, 0x9D9FFF, "ATX Networks Corp", "ATX-NETWORKS" }, { 0x70B3D5, 0x9DA000, 0x9DAFFF, "Blake UK", "BLAKE-UK" }, { 0x70B3D5, 0x9DB000, 0x9DBFFF, "CAS Medical Systems, Inc", "CAS-MEDICAL" }, { 0x70B3D5, 0x9DC000, 0x9DCFFF, "Shanghai Daorech Industry Developmnet Co.,Ltd", "SHANGHAI-DAORECH-INDUSTRY-DEVELOPMNET" }, { 0x70B3D5, 0x9DD000, 0x9DDFFF, "HumanEyes Technologies Ltd.", "HUMANEYES-TECHNOLOGIES" }, { 0x70B3D5, 0x9DE000, 0x9DEFFF, "System 11 Sp. z o.o.", "SYSTEM-11-SP-Z-O-O" }, { 0x70B3D5, 0x9DF000, 0x9DFFFF, "DOBE Computing", "DOBE-COMPUTING" }, { 0x70B3D5, 0x9E0000, 0x9E0FFF, "ES Industrial Systems Co., Ltd.", "ES-INDUSTRIAL" }, { 0x70B3D5, 0x9E1000, 0x9E1FFF, "Bolide Technology Group, Inc.", "BOLIDE-GROUP" }, { 0x70B3D5, 0x9E2000, 0x9E2FFF, "Ofil USA", "OFIL-USA" }, { 0x70B3D5, 0x9E3000, 0x9E3FFF, "LG Electronics", "LG-ELECTRONICS" }, { 0x70B3D5, 0x9E4000, 0x9E4FFF, "K&A Electronics Inc.", "K-A-ELECTRONICS" }, { 0x70B3D5, 0x9E5000, 0x9E5FFF, "Antek Technology", "ANTEK" }, { 0x70B3D5, 0x9E6000, 0x9E6FFF, "BLOCKSI LLC", "BLOCKSI" }, { 0x70B3D5, 0x9E7000, 0x9E7FFF, "Xiamen Maxincom Technologies Co., Ltd.", "XIAMEN-MAXINCOM-TECHNOLOGIES" }, { 0x70B3D5, 0x9E8000, 0x9E8FFF, "Zerospace ICT Services B.V.", "ZEROSPACE-ICT-SERVICES-B-V" }, { 0x70B3D5, 0x9E9000, 0x9E9FFF, "LiveCopper Inc.", "LIVECOPPER" }, { 0x70B3D5, 0x9EA000, 0x9EAFFF, "Blue Storm Associates, Inc.", "BLUE-STORM-ASSOCIATES" }, { 0x70B3D5, 0x9EB000, 0x9EBFFF, "Preston Industries dba PolyScience", "PRESTON-INDUSTRIES-DBA-POLYSCIENCE" }, { 0x70B3D5, 0x9EC000, 0x9ECFFF, "eSoftThings", "ESOFTTHINGS" }, { 0x70B3D5, 0x9ED000, 0x9EDFFF, "Benchmark Electronics BV", "BENCHMARK-ELECTRONICS" }, { 0x70B3D5, 0x9EE000, 0x9EEFFF, "Lockheed Martin - THAAD", "LOCKHEED-MARTIN-THAAD" }, { 0x70B3D5, 0x9EF000, 0x9EFFFF, "Cottonwood Creek Technologies, Inc.", "COTTONWOOD-CREEK-TECHNOLOGIES" }, { 0x70B3D5, 0x9F0000, 0x9F0FFF, "FUJICOM Co.,Ltd.", "FUJICOM" }, { 0x70B3D5, 0x9F1000, 0x9F1FFF, "RFEL Ltd", "RFEL" }, { 0x70B3D5, 0x9F2000, 0x9F2FFF, "Acorde Technologies", "ACORDE-TECHNOLOGIES" }, { 0x70B3D5, 0x9F3000, 0x9F3FFF, "IEEE Registration Authority", "IEEE-REGISTRATION-AUTHORITY" }, { 0x70B3D5, 0x9F4000, 0x9F4FFF, "Tband srl", "TBAND-SRL" }, { 0x70B3D5, 0x9F5000, 0x9F5FFF, "Vickers Electronics Ltd", "VICKERS-ELECTRONICS" }, { 0x70B3D5, 0x9F6000, 0x9F6FFF, "Edgeware AB", "EDGEWARE-AB" }, { 0x70B3D5, 0x9F7000, 0x9F7FFF, "Foerster-Technik GmbH", "FOERSTER-TECHNIK" }, { 0x70B3D5, 0x9F8000, 0x9F8FFF, "Asymmetric Technologies", "ASYMMETRIC-TECHNOLOGIES" }, { 0x70B3D5, 0x9F9000, 0x9F9FFF, "Fluid Components Intl", "FLUID-COMPONENTS-INTL" }, { 0x70B3D5, 0x9FA000, 0x9FAFFF, "Ideas srl", "IDEAS-SRL" }, { 0x70B3D5, 0x9FB000, 0x9FBFFF, "Unicom Global, Inc.", "UNICOM-GLOBAL" }, { 0x70B3D5, 0x9FC000, 0x9FCFFF, "Truecom Telesoft Private Limited", "TRUECOM-TELESOFT-PRIVATE" }, { 0x70B3D5, 0x9FD000, 0x9FDFFF, "amakidenki", "AMAKIDENKI" }, { 0x70B3D5, 0x9FE000, 0x9FEFFF, "SURUGA SEIKI CO., LTD.", "SURUGA-SEIKI" }, { 0x70B3D5, 0x9FF000, 0x9FFFFF, "Network Integrity Systems", "NETWORK-INTEGRITY" }, { 0x70B3D5, 0xA00000, 0xA00FFF, "ATX NETWORKS LTD", "ATX-NETWORKS" }, { 0x70B3D5, 0xA01000, 0xA01FFF, "FeldTech GmbH", "FELDTECH" }, { 0x70B3D5, 0xA02000, 0xA02FFF, "GreenFlux", "GREENFLUX" }, { 0x70B3D5, 0xA03000, 0xA03FFF, "Proemion GmbH", "PROEMION" }, { 0x70B3D5, 0xA04000, 0xA04FFF, "Galea Electric S.L.", "GALEA-ELECTRIC" }, { 0x70B3D5, 0xA05000, 0xA05FFF, "Wartsila Voyage Limited", "WARTSILA-VOYAGE" }, { 0x70B3D5, 0xA06000, 0xA06FFF, "Kopis Mobile LLC", "KOPIS-MOBILE" }, { 0x70B3D5, 0xA07000, 0xA07FFF, "IoTrek Technology Private Limited", "IOTREK-PRIVATE" }, { 0x70B3D5, 0xA08000, 0xA08FFF, "BioBusiness", "BIOBUSINESS" }, { 0x70B3D5, 0xA09000, 0xA09FFF, "Smart Embedded Systems", "SMART-EMBEDDED" }, { 0x70B3D5, 0xA0A000, 0xA0AFFF, "CAPSYS", "CAPSYS" }, { 0x70B3D5, 0xA0B000, 0xA0BFFF, "ambiHome GmbH", "AMBIHOME" }, { 0x70B3D5, 0xA0C000, 0xA0CFFF, "Lumiplan Duhamel", "LUMIPLAN-DUHAMEL" }, { 0x70B3D5, 0xA0D000, 0xA0DFFF, "Globalcom Engineering SPA", "GLOBALCOM-ENGINEERING-SPA" }, { 0x70B3D5, 0xA0E000, 0xA0EFFF, "Vetaphone A/S", "VETAPHONE-A/S" }, { 0x70B3D5, 0xA0F000, 0xA0FFFF, "OSAKI DATATECH CO., LTD.", "OSAKI-DATATECH" }, { 0x70B3D5, 0xA10000, 0xA10FFF, "w-tec AG", "W-TEC" }, { 0x70B3D5, 0xA11000, 0xA11FFF, "TRIOPTICS", "TRIOPTICS" }, { 0x70B3D5, 0xA12000, 0xA12FFF, "QUERCUS TECHNOLOGIES, S.L.", "QUERCUS-TECHNOLOGIES" }, { 0x70B3D5, 0xA13000, 0xA13FFF, "Uplevel Systems Inc", "UPLEVEL" }, { 0x70B3D5, 0xA14000, 0xA14FFF, "aelettronica group srl", "AELETTRONICA-GROUP-SRL" }, { 0x70B3D5, 0xA15000, 0xA15FFF, "Intercore GmbH", "INTERCORE" }, { 0x70B3D5, 0xA16000, 0xA16FFF, "devAIs s.r.l.", "DEVAIS" }, { 0x70B3D5, 0xA17000, 0xA17FFF, "Tunstall A/S", "TUNSTALL-A/S" }, { 0x70B3D5, 0xA18000, 0xA18FFF, "Embedded Systems Lukasz Panasiuk", "EMBEDDED-LUKASZ-PANASIUK" }, { 0x70B3D5, 0xA19000, 0xA19FFF, "Qualitronix Madrass Pvt Ltd", "QUALITRONIX-MADRASS-PVT" }, { 0x70B3D5, 0xA1A000, 0xA1AFFF, "Nueon - The COR", "NUEON-THE-COR" }, { 0x70B3D5, 0xA1B000, 0xA1BFFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x70B3D5, 0xA1C000, 0xA1CFFF, "MECA SYSTEM", "MECA-SYSTEM" }, { 0x70B3D5, 0xA1D000, 0xA1DFFF, "Fluid Components Intl", "FLUID-COMPONENTS-INTL" }, { 0x70B3D5, 0xA1E000, 0xA1EFFF, "Monnit Corporation", "MONNIT" }, { 0x70B3D5, 0xA1F000, 0xA1FFFF, "GlobalTest LLC", "GLOBALTEST" }, { 0x70B3D5, 0xA20000, 0xA20FFF, "Design For Life Systems", "DESIGN-FOR-LIFE" }, { 0x70B3D5, 0xA21000, 0xA21FFF, "PPI Inc.", "PPI" }, { 0x70B3D5, 0xA22000, 0xA22FFF, "eSys Solutions Sweden AB", "ESYS-SOLUTIONS-SWEDEN-AB" }, { 0x70B3D5, 0xA23000, 0xA23FFF, "LG Electronics", "LG-ELECTRONICS" }, { 0x70B3D5, 0xA24000, 0xA24FFF, "Booz Allen Hamilton", "BOOZ-ALLEN-HAMILTON" }, { 0x70B3D5, 0xA25000, 0xA25FFF, "PulseTor LLC", "PULSETOR" }, { 0x70B3D5, 0xA26000, 0xA26FFF, "Hear Gear, Inc.", "HEAR-GEAR" }, { 0x70B3D5, 0xA27000, 0xA27FFF, "HDL da Amazônia Industria Eletrônica Ltda", "HDL-DA-AMAZNIA-INDUSTRIA-ELETRNICA-LTDA" }, { 0x70B3D5, 0xA28000, 0xA28FFF, "PEEK TRAFFIC", "PEEK-TRAFFIC" }, { 0x70B3D5, 0xA29000, 0xA29FFF, "QIAGEN Instruments AG", "QIAGEN-INSTRUMENTS" }, { 0x70B3D5, 0xA2A000, 0xA2AFFF, "Redwood Systems", "REDWOOD" }, { 0x70B3D5, 0xA2B000, 0xA2BFFF, "Clever Devices", "CLEVER-DEVICES" }, { 0x70B3D5, 0xA2C000, 0xA2CFFF, "TLV CO., LTD.", "TLV" }, { 0x70B3D5, 0xA2D000, 0xA2DFFF, "Project Service S.r.l.", "PROJECT-SERVICE" }, { 0x70B3D5, 0xA2E000, 0xA2EFFF, "Kokam Co., Ltd", "KOKAM" }, { 0x70B3D5, 0xA2F000, 0xA2FFFF, "Botek Systems AB", "BOTEK-AB" }, { 0x70B3D5, 0xA30000, 0xA30FFF, "SHEN ZHEN HUAWANG TECHNOLOGY CO; LTD", "SHEN-ZHEN-HUAWANG" }, { 0x70B3D5, 0xA31000, 0xA31FFF, "Wise Ally Holdings Limited", "WISE-ALLY-HOLDINGS" }, { 0x70B3D5, 0xA32000, 0xA32FFF, "Toughdog Security Systems", "TOUGHDOG-SECURITY" }, { 0x70B3D5, 0xA33000, 0xA33FFF, "TIAMA", "TIAMA" }, { 0x70B3D5, 0xA34000, 0xA34FFF, "RCH ITALIA SPA", "RCH-ITALIA-SPA" }, { 0x70B3D5, 0xA35000, 0xA35FFF, "Sicon srl", "SICON-SRL" }, { 0x70B3D5, 0xA36000, 0xA36FFF, "Beijing DamingWuzhou Science&Technology Co., Ltd.", "BEIJING-DAMINGWUZHOU-SCIENCE" }, { 0x70B3D5, 0xA37000, 0xA37FFF, "MITSUBISHI HEAVY INDUSTRIES THERMAL SYSTEMS, LTD.", "MITSUBISHI-HEAVY-INDUSTRIES-THERMAL" }, { 0x70B3D5, 0xA38000, 0xA38FFF, "Aditec GmbH", "ADITEC" }, { 0x70B3D5, 0xA39000, 0xA39FFF, "SPETSSTROY-SVYAZ Ltd", "SPETSSTROY-SVYAZ" }, { 0x70B3D5, 0xA3A000, 0xA3AFFF, "EPSOFT Co., Ltd", "EPSOFT" }, { 0x70B3D5, 0xA3B000, 0xA3BFFF, "Grace Design/Lunatec LLC", "GRACE-DESIGN/LUNATEC" }, { 0x70B3D5, 0xA3C000, 0xA3CFFF, "Wave Music Ltd", "WAVE-MUSIC" }, { 0x70B3D5, 0xA3D000, 0xA3DFFF, "SMART IN OVATION GmbH", "SMART-IN-OVATION" }, { 0x70B3D5, 0xA3E000, 0xA3EFFF, "Vigorcloud Co., Ltd.", "VIGORCLOUD" }, { 0x70B3D5, 0xA3F000, 0xA3FFFF, "PHPower Srl", "PHPOWER-SRL" }, { 0x70B3D5, 0xA40000, 0xA40FFF, "STRACK LIFT AUTOMATION GmbH", "STRACK-LIFT-AUTOMATION" }, { 0x70B3D5, 0xA41000, 0xA41FFF, "THELIGHT Luminary for Cine and TV S.L.", "THELIGHT-LUMINARY-FOR-CINE-AND-TV" }, { 0x70B3D5, 0xA42000, 0xA42FFF, "iMAR Navigation GmbH", "IMAR-NAVIGATION" }, { 0x70B3D5, 0xA43000, 0xA43FFF, "OLEDCOMM", "OLEDCOMM" }, { 0x70B3D5, 0xA44000, 0xA44FFF, "FSR, INC.", "FSR" }, { 0x70B3D5, 0xA45000, 0xA45FFF, "Viper Innovations Ltd", "VIPER-INNOVATIONS" }, { 0x70B3D5, 0xA46000, 0xA46FFF, "Foxconn 4Tech", "FOXCONN-4TECH" }, { 0x70B3D5, 0xA47000, 0xA47FFF, "KANOA INC", "KANOA" }, { 0x70B3D5, 0xA48000, 0xA48FFF, "Applied Satellite Engineering", "APPLIED-SATELLITE-ENGINEERING" }, { 0x70B3D5, 0xA49000, 0xA49FFF, "Unipower AB", "UNIPOWER-AB" }, { 0x70B3D5, 0xA4A000, 0xA4AFFF, "Beijing Arrow SEED Technology Co,.Ltd.", "BEIJING-ARROW-SEED" }, { 0x70B3D5, 0xA4B000, 0xA4BFFF, "McKay Brothers LLC", "MCKAY-BROTHERS" }, { 0x70B3D5, 0xA4C000, 0xA4CFFF, "Alere Technologies AS", "ALERE-TECHNOLOGIES-AS" }, { 0x70B3D5, 0xA4D000, 0xA4DFFF, "LANSITEC TECHNOLOGY CO., LTD", "LANSITEC" }, { 0x70B3D5, 0xA4E000, 0xA4EFFF, "Array Technologies Inc.", "ARRAY-TECHNOLOGIES" }, { 0x70B3D5, 0xA4F000, 0xA4FFFF, "Weltek Technologies Co. Ltd.", "WELTEK-TECHNOLOGIES" }, { 0x70B3D5, 0xA50000, 0xA50FFF, "LECIP CORPORATION", "LECIP" }, { 0x70B3D5, 0xA51000, 0xA51FFF, "RF Code", "RF-CODE" }, { 0x70B3D5, 0xA52000, 0xA52FFF, "APEX Stabilizations GmbH", "APEX-STABILIZATIONS" }, { 0x70B3D5, 0xA53000, 0xA53FFF, "GS Industrie-Elektronik GmbH", "GS-INDUSTRIE-ELEKTRONIK" }, { 0x70B3D5, 0xA54000, 0xA54FFF, "provedo", "PROVEDO" }, { 0x70B3D5, 0xA55000, 0xA55FFF, "Embest Technology Co., Ltd", "EMBEST" }, { 0x70B3D5, 0xA56000, 0xA56FFF, "DORLET SAU", "DORLET-SAU" }, { 0x70B3D5, 0xA57000, 0xA57FFF, "PCSC", "PCSC" }, { 0x70B3D5, 0xA58000, 0xA58FFF, "MCQ TECH GmbH", "MCQ-TECH" }, { 0x70B3D5, 0xA59000, 0xA59FFF, "Muuntosähkö Oy - Trafox", "MUUNTOSAEHKOE-OY-TRAFOX" }, { 0x70B3D5, 0xA5A000, 0xA5AFFF, "RCS Energy Management Ltd", "RCS-ENERGY-MANAGEMENT" }, { 0x70B3D5, 0xA5B000, 0xA5BFFF, "Christ Elektronik GmbH", "CHRIST-ELEKTRONIK" }, { 0x70B3D5, 0xA5C000, 0xA5CFFF, "Molekule", "MOLEKULE" }, { 0x70B3D5, 0xA5D000, 0xA5DFFF, "Position Imaging", "POSITION-IMAGING" }, { 0x70B3D5, 0xA5E000, 0xA5EFFF, "ConectaIP Tecnologia S.L.", "CONECTAIP-TECNOLOGIA" }, { 0x70B3D5, 0xA5F000, 0xA5FFFF, "Daatrics LTD", "DAATRICS" }, { 0x70B3D5, 0xA60000, 0xA60FFF, "Pneumax S.p.A.", "PNEUMAX" }, { 0x70B3D5, 0xA61000, 0xA61FFF, "Omsk Manufacturing Association named after A.S. Popov", "OMSK-MANUFACTURING-ASSOCIATION-NAMED-AFTER-A-S-POPOV" }, { 0x70B3D5, 0xA62000, 0xA62FFF, "Environexus", "ENVIRONEXUS" }, { 0x70B3D5, 0xA63000, 0xA63FFF, "DesignA Electronics Limited", "DESIGNA-ELECTRONICS" }, { 0x70B3D5, 0xA64000, 0xA64FFF, "Newshine", "NEWSHINE" }, { 0x70B3D5, 0xA65000, 0xA65FFF, "CREATIVE", "CREATIVE" }, { 0x70B3D5, 0xA66000, 0xA66FFF, "Trapeze Software Group Inc", "TRAPEZE-SOFTWARE-GROUP" }, { 0x70B3D5, 0xA67000, 0xA67FFF, "Gstar Creation Co .,Ltd", "GSTAR-CREATION" }, { 0x70B3D5, 0xA68000, 0xA68FFF, "Zhejiang Zhaolong Interconnect Technology Co.,Ltd", "ZHEJIANG-ZHAOLONG-INTERCONNECT" }, { 0x70B3D5, 0xA69000, 0xA69FFF, "Leviathan Solutions Ltd.", "LEVIATHAN-SOLUTIONS" }, { 0x70B3D5, 0xA6A000, 0xA6AFFF, "Privafy, Inc", "PRIVAFY" }, { 0x70B3D5, 0xA6B000, 0xA6BFFF, "xmi systems", "XMI" }, { 0x70B3D5, 0xA6C000, 0xA6CFFF, "Controles S.A.", "CONTROLES" }, { 0x70B3D5, 0xA6D000, 0xA6DFFF, "Metek Meteorologische Messtechnik GmbH", "METEK-METEOROLOGISCHE-MESSTECHNIK" }, { 0x70B3D5, 0xA6E000, 0xA6EFFF, "JSC Electrical Equipment Factory", "JSC-ELECTRICAL-EQUIPMENT-FACTORY" }, { 0x70B3D5, 0xA6F000, 0xA6FFFF, "8Cups", "8CUPS" }, { 0x70B3D5, 0xA70000, 0xA70FFF, "Gateview Technologies", "GATEVIEW-TECHNOLOGIES" }, { 0x70B3D5, 0xA71000, 0xA71FFF, "Samwell International Inc", "SAMWELL" }, { 0x70B3D5, 0xA72000, 0xA72FFF, "Business Marketers Group, Inc.", "BUSINESS-MARKETERS-GROUP" }, { 0x70B3D5, 0xA73000, 0xA73FFF, "MobiPromo", "MOBIPROMO" }, { 0x70B3D5, 0xA74000, 0xA74FFF, "Sadel S.p.A.", "SADEL" }, { 0x70B3D5, 0xA75000, 0xA75FFF, "Taejin InfoTech", "TAEJIN-INFOTECH" }, { 0x70B3D5, 0xA76000, 0xA76FFF, "Pietro Fiorentini", "PIETRO-FIORENTINI" }, { 0x70B3D5, 0xA77000, 0xA77FFF, "SPX Radiodetection", "SPX-RADIODETECTION" }, { 0x70B3D5, 0xA78000, 0xA78FFF, "Bionics co.,ltd.", "BIONICS" }, { 0x70B3D5, 0xA79000, 0xA79FFF, "NOREYA Technology e.U.", "NOREYA-E-U" }, { 0x70B3D5, 0xA7A000, 0xA7AFFF, "Fluid Management Technology", "FLUID-MANAGEMENT" }, { 0x70B3D5, 0xA7B000, 0xA7BFFF, "SmartSafe", "SMARTSAFE" }, { 0x70B3D5, 0xA7C000, 0xA7CFFF, "Transelektronik Messgeräte GmbH", "TRANSELEKTRONIK-MESSGERAETE" }, { 0x70B3D5, 0xA7D000, 0xA7DFFF, "Prior Scientific Instruments Ltd", "PRIOR-SCIENTIFIC-INSTRUMENTS" }, { 0x70B3D5, 0xA7E000, 0xA7EFFF, "QUICCO SOUND Corporation", "QUICCO-SOUND" }, { 0x70B3D5, 0xA7F000, 0xA7FFFF, "AUDIO VISUAL DIGITAL SYSTEMS", "AUDIO-VISUAL-DIGITAL" }, { 0x70B3D5, 0xA80000, 0xA80FFF, "EVCO SPA", "EVCO-SPA" }, { 0x70B3D5, 0xA81000, 0xA81FFF, "Sienda New Media Technologies GmbH", "SIENDA-NEW-MEDIA-TECHNOLOGIES" }, { 0x70B3D5, 0xA82000, 0xA82FFF, "Telefrank GmbH", "TELEFRANK" }, { 0x70B3D5, 0xA83000, 0xA83FFF, "SHENZHEN HUINENGYUAN Technology Co., Ltd", "SHENZHEN-HUINENGYUAN" }, { 0x70B3D5, 0xA84000, 0xA84FFF, "SOREL GmbH Mikroelektronik", "SOREL-MIKROELEKTRONIK" }, { 0x70B3D5, 0xA85000, 0xA85FFF, "exceet electronics GesmbH", "EXCEET-ELECTRONICS-GESMBH" }, { 0x70B3D5, 0xA86000, 0xA86FFF, "Divigraph (Pty) LTD", "DIVIGRAPH-PTY" }, { 0x70B3D5, 0xA87000, 0xA87FFF, "Tornado Modular Systems", "TORNADO-MODULAR" }, { 0x70B3D5, 0xA88000, 0xA88FFF, "Shangdong Bosure Automation Technology Ltd", "SHANGDONG-BOSURE-AUTOMATION" }, { 0x70B3D5, 0xA89000, 0xA89FFF, "GBS COMMUNICATIONS, LLC", "GBS-COMMUNICATION" }, { 0x70B3D5, 0xA8A000, 0xA8AFFF, "JSC VIST Group", "JSC-VIST-GROUP" }, { 0x70B3D5, 0xA8B000, 0xA8BFFF, "Giant Power Technology Biomedical Corporation", "GIANT-POWER-BIOMEDICAL" }, { 0x70B3D5, 0xA8C000, 0xA8CFFF, "CYG CONTRON CO.LTD", "CYG-CONTRON" }, { 0x70B3D5, 0xA8D000, 0xA8DFFF, "Code Blue Corporation", "CODE-BLUE" }, { 0x70B3D5, 0xA8E000, 0xA8EFFF, "OMESH CITY GROUP", "OMESH-CITY-GROUP" }, { 0x70B3D5, 0xA8F000, 0xA8FFFF, "VK Integrated Systems", "VK-INTEGRATED" }, { 0x70B3D5, 0xA90000, 0xA90FFF, "ERA a.s.", "ERA" }, { 0x70B3D5, 0xA91000, 0xA91FFF, "IDEAL INDUSTRIES Ltd t/a Casella", "IDEAL-INDUSTRIES-T/A-CASELLA" }, { 0x70B3D5, 0xA92000, 0xA92FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x70B3D5, 0xA93000, 0xA93FFF, "Mes Communication Co., Ltd", "MES-COMMUNICATION" }, { 0x70B3D5, 0xA94000, 0xA94FFF, "ETA Technology Pvt Ltd", "ETA-PVT" }, { 0x70B3D5, 0xA95000, 0xA95FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0xA96000, 0xA96FFF, "Östling Marking Systems GmbH", "OESTLING-MARKING" }, { 0x70B3D5, 0xA97000, 0xA97FFF, "Bizwerks, LLC", "BIZWERKS" }, { 0x70B3D5, 0xA98000, 0xA98FFF, "Pantec AG", "PANTEC" }, { 0x70B3D5, 0xA99000, 0xA99FFF, "Bandelin electronic GmbH & Co. KG", "BANDELIN" }, { 0x70B3D5, 0xA9A000, 0xA9AFFF, "Amphenol Advanced Sensors", "AMPHENOL-ADVANCED-SENSORS" }, { 0x70B3D5, 0xA9B000, 0xA9BFFF, "OSMOZIS", "OSMOZIS" }, { 0x70B3D5, 0xA9C000, 0xA9CFFF, "Veo Technologies", "VEO-TECHNOLOGIES" }, { 0x70B3D5, 0xA9D000, 0xA9DFFF, "VITEC MULTIMEDIA", "VITEC-MULTIMEDIA" }, { 0x70B3D5, 0xA9E000, 0xA9EFFF, "Argon ST", "ARGON-ST" }, { 0x70B3D5, 0xA9F000, 0xA9FFFF, "Master Meter Inc.", "MASTER-METER" }, { 0x70B3D5, 0xAA0000, 0xAA0FFF, "Simple Works, Inc.", "SIMPLE-WORKS" }, { 0x70B3D5, 0xAA1000, 0xAA1FFF, "Shenzhen Weema TV Technology Co.,Ltd.", "SHENZHEN-WEEMA-TV" }, { 0x70B3D5, 0xAA2000, 0xAA2FFF, "eumig industrie-TV GmbH.", "EUMIG-INDUSTRIE-TV" }, { 0x70B3D5, 0xAA3000, 0xAA3FFF, "LINEAGE POWER PVT LTD.,", "LINEAGE-POWER-PVT" }, { 0x70B3D5, 0xAA4000, 0xAA4FFF, "Pullnet Technology,S.L.", "PULLNET" }, { 0x70B3D5, 0xAA5000, 0xAA5FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0xAA6000, 0xAA6FFF, "Proximus", "PROXIMUS" }, { 0x70B3D5, 0xAA7000, 0xAA7FFF, "ATEME", "ATEME" }, { 0x70B3D5, 0xAA8000, 0xAA8FFF, "West-Com Nurse Call Systems, Inc.", "WEST-COM-NURSE-CALL" }, { 0x70B3D5, 0xAA9000, 0xAA9FFF, "Datamars SA", "DATAMARS" }, { 0x70B3D5, 0xAAA000, 0xAAAFFF, "Xemex NV", "XEMEX-NV" }, { 0x70B3D5, 0xAAB000, 0xAABFFF, "QUISS GmbH", "QUISS" }, { 0x70B3D5, 0xAAC000, 0xAACFFF, "SensoTec GmbH", "SENSOTEC" }, { 0x70B3D5, 0xAAD000, 0xAADFFF, "Bartec GmbH", "BARTEC" }, { 0x70B3D5, 0xAAE000, 0xAAEFFF, "Nuviz Oy", "NUVIZ-OY" }, { 0x70B3D5, 0xAAF000, 0xAAFFFF, "Exi Flow Measurement Ltd", "EXI-FLOW-MEASUREMENT" }, { 0x70B3D5, 0xAB0000, 0xAB0FFF, "OSR R&D ISRAEL LTD", "OSR-R-D-ISRAEL" }, { 0x70B3D5, 0xAB1000, 0xAB1FFF, "ISRV Zrt.", "ISRV-ZRT" }, { 0x70B3D5, 0xAB2000, 0xAB2FFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x70B3D5, 0xAB3000, 0xAB3FFF, "MICAS AG", "MICAS" }, { 0x70B3D5, 0xAB4000, 0xAB4FFF, "SYS TEC electronic GmbH", "SYS-TEC" }, { 0x70B3D5, 0xAB5000, 0xAB5FFF, "BroadSoft Inc", "BROADSOFT" }, { 0x70B3D5, 0xAB6000, 0xAB6FFF, "SmartD Technologies Inc", "SMARTD-TECHNOLOGIES" }, { 0x70B3D5, 0xAB7000, 0xAB7FFF, "SIGLEAD INC", "SIGLEAD" }, { 0x70B3D5, 0xAB8000, 0xAB8FFF, "HORIBA ABX SAS", "HORIBA-ABX-SAS" }, { 0x70B3D5, 0xAB9000, 0xAB9FFF, "Dynamic Controls", "DYNAMIC-CONTROLS" }, { 0x70B3D5, 0xABA000, 0xABAFFF, "CL International", "CL" }, { 0x70B3D5, 0xABB000, 0xABBFFF, "David Horn Communications Ltd", "DAVID-HORN-COMMUNICATION" }, { 0x70B3D5, 0xABC000, 0xABCFFF, "BKM-Micronic Richtfunkanlagen GmbH", "BKM-MICRONIC-RICHTFUNKANLAGEN" }, { 0x70B3D5, 0xABD000, 0xABDFFF, "wtec GmbH", "WTEC" }, { 0x70B3D5, 0xABE000, 0xABEFFF, "MART NETWORK SOLUTIONS LTD", "MART-NETWORK-SOLUTIONS" }, { 0x70B3D5, 0xABF000, 0xABFFFF, "AGR International", "AGR" }, { 0x70B3D5, 0xAC0000, 0xAC0FFF, "RITEC", "RITEC" }, { 0x70B3D5, 0xAC1000, 0xAC1FFF, "AEM Singapore Pte. Ltd.", "AEM-SINGAPORE-PTE" }, { 0x70B3D5, 0xAC2000, 0xAC2FFF, "Wisebox.,Co.Ltd", "WISEBOX" }, { 0x70B3D5, 0xAC3000, 0xAC3FFF, "Novoptel GmbH", "NOVOPTEL" }, { 0x70B3D5, 0xAC4000, 0xAC4FFF, "Lexi Devices, Inc.", "LEXI-DEVICES" }, { 0x70B3D5, 0xAC5000, 0xAC5FFF, "ATOM GIKEN Co.,Ltd.", "ATOM-GIKEN" }, { 0x70B3D5, 0xAC6000, 0xAC6FFF, "SMTC Corporation", "SMTC" }, { 0x70B3D5, 0xAC7000, 0xAC7FFF, "vivaMOS", "VIVAMOS" }, { 0x70B3D5, 0xAC8000, 0xAC8FFF, "Heartland.Data Inc.", "HEARTLAND-DATA" }, { 0x70B3D5, 0xAC9000, 0xAC9FFF, "Trinity Solutions LLC", "TRINITY-SOLUTIONS" }, { 0x70B3D5, 0xACA000, 0xACAFFF, "Tecnint HTE SRL", "TECNINT-HTE-SRL" }, { 0x70B3D5, 0xACB000, 0xACBFFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0xACC000, 0xACCFFF, "Schneider Electric Motion USA", "SCHNEIDER-ELECTRIC-MOTION-USA" }, { 0x70B3D5, 0xACD000, 0xACDFFF, "CRDE", "CRDE" }, { 0x70B3D5, 0xACE000, 0xACEFFF, "FARHO DOMOTICA SL", "FARHO-DOMOTICA-SL" }, { 0x70B3D5, 0xACF000, 0xACFFFF, "APG Cash Drawer, LLC", "APG-CASH-DRAWER" }, { 0x70B3D5, 0xAD0000, 0xAD0FFF, "REO AG", "REO" }, { 0x70B3D5, 0xAD1000, 0xAD1FFF, "Sensile Technologies SA", "SENSILE-TECHNOLOGIES" }, { 0x70B3D5, 0xAD2000, 0xAD2FFF, "Wart-Elektronik", "WART-ELEKTRONIK" }, { 0x70B3D5, 0xAD3000, 0xAD3FFF, "WARECUBE,INC", "WARECUBE" }, { 0x70B3D5, 0xAD4000, 0xAD4FFF, "INVISSYS", "INVISSYS" }, { 0x70B3D5, 0xAD5000, 0xAD5FFF, "Birdland Audio", "BIRDLAND-AUDIO" }, { 0x70B3D5, 0xAD6000, 0xAD6FFF, "Lemonade Lab Inc", "LEMONADE-LAB" }, { 0x70B3D5, 0xAD7000, 0xAD7FFF, "Octopus IoT srl", "OCTOPUS-IOT-SRL" }, { 0x70B3D5, 0xAD8000, 0xAD8FFF, "Euklis by GSG International", "EUKLIS-BY-GSG" }, { 0x70B3D5, 0xAD9000, 0xAD9FFF, "aelettronica group srl", "AELETTRONICA-GROUP-SRL" }, { 0x70B3D5, 0xADA000, 0xADAFFF, "Private", "PRIVATE" }, { 0x70B3D5, 0xADB000, 0xADBFFF, "RF Code", "RF-CODE" }, { 0x70B3D5, 0xADC000, 0xADCFFF, "SODAQ", "SODAQ" }, { 0x70B3D5, 0xADD000, 0xADDFFF, "GHL Systems Berhad", "GHL-BERHAD" }, { 0x70B3D5, 0xADE000, 0xADEFFF, "ISAC SRL", "ISAC-SRL" }, { 0x70B3D5, 0xADF000, 0xADFFFF, "Seraphim Optronics Ltd", "SERAPHIM-OPTRONICS" }, { 0x70B3D5, 0xAE0000, 0xAE0FFF, "AnyComm.Co.,Ltd.", "ANYCOMM" }, { 0x70B3D5, 0xAE1000, 0xAE1FFF, "DimoCore Corporation", "DIMOCORE" }, { 0x70B3D5, 0xAE2000, 0xAE2FFF, "Wartsila Voyage Limited", "WARTSILA-VOYAGE" }, { 0x70B3D5, 0xAE3000, 0xAE3FFF, "Zhejiang Wellsun Electric Meter Co.,Ltd", "ZHEJIANG-WELLSUN-ELECTRIC-METER" }, { 0x70B3D5, 0xAE4000, 0xAE4FFF, "Nuance Hearing Ltd.", "NUANCE-HEARING" }, { 0x70B3D5, 0xAE5000, 0xAE5FFF, "BeatCraft, Inc.", "BEATCRAFT" }, { 0x70B3D5, 0xAE6000, 0xAE6FFF, "Ya Batho Trading (Pty) Ltd", "YA-BATHO-TRADING-PTY" }, { 0x70B3D5, 0xAE7000, 0xAE7FFF, "E-T-A Elektrotechnische Apparate GmbH", "E-T-A-ELEKTROTECHNISCHE-APPARATE" }, { 0x70B3D5, 0xAE8000, 0xAE8FFF, "Innoknight", "INNOKNIGHT" }, { 0x70B3D5, 0xAE9000, 0xAE9FFF, "Cari Electronic", "CARI" }, { 0x70B3D5, 0xAEA000, 0xAEAFFF, "BBR Verkehrstechnik GmbH", "BBR-VERKEHRSTECHNIK" }, { 0x70B3D5, 0xAEB000, 0xAEBFFF, "Association Romandix", "ASSOCIATION-ROMANDIX" }, { 0x70B3D5, 0xAEC000, 0xAECFFF, "Paratec Ltd.", "PARATEC" }, { 0x70B3D5, 0xAED000, 0xAEDFFF, "Cubitech", "CUBITECH" }, { 0x70B3D5, 0xAEE000, 0xAEEFFF, "DiTEST Fahrzeugdiagnose GmbH", "DITEST-FAHRZEUGDIAGNOSE" }, { 0x70B3D5, 0xAEF000, 0xAEFFFF, "Baumtec GmbH", "BAUMTEC" }, { 0x70B3D5, 0xAF0000, 0xAF0FFF, "SEASON DESIGN TECHNOLOGY", "SEASON-DESIGN" }, { 0x70B3D5, 0xAF1000, 0xAF1FFF, "Emka Technologies", "EMKA-TECHNOLOGIES" }, { 0x70B3D5, 0xAF2000, 0xAF2FFF, "True Networks Ltd.", "TRUE-NETWORKS" }, { 0x70B3D5, 0xAF3000, 0xAF3FFF, "New Japan Radio Co., Ltd", "NEW-JAPAN-RADIO" }, { 0x70B3D5, 0xAF4000, 0xAF4FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0xAF5000, 0xAF5FFF, "Net And Print Inc.", "NET-AND-PRINT" }, { 0x70B3D5, 0xAF6000, 0xAF6FFF, "S.C.E. srl", "S-C-E-SRL" }, { 0x70B3D5, 0xAF7000, 0xAF7FFF, "DimoSystems BV", "DIMOSYSTEMS" }, { 0x70B3D5, 0xAF8000, 0xAF8FFF, "boekel", "BOEKEL" }, { 0x70B3D5, 0xAF9000, 0xAF9FFF, "Critical Link LLC", "CRITICAL-LINK" }, { 0x70B3D5, 0xAFA000, 0xAFAFFF, "Power Security Systems Ltd.", "POWER-SECURITY" }, { 0x70B3D5, 0xAFB000, 0xAFBFFF, "Shanghai Tianhe Automation Instrumentation Co., Ltd.", "SHANGHAI-TIANHE-AUTOMATION-INSTRUMENTATION" }, { 0x70B3D5, 0xAFC000, 0xAFCFFF, "BAE Systems", "BAE" }, { 0x70B3D5, 0xAFD000, 0xAFDFFF, "dongsheng", "DONGSHENG" }, { 0x70B3D5, 0xAFE000, 0xAFEFFF, "MESOTECHNIC", "MESOTECHNIC" }, { 0x70B3D5, 0xAFF000, 0xAFFFFF, "digital-spice", "DIGITAL-SPICE" }, { 0x70B3D5, 0xB00000, 0xB00FFF, "HORIBA ABX SAS", "HORIBA-ABX-SAS" }, { 0x70B3D5, 0xB01000, 0xB01FFF, "G.S.D GROUP INC.", "G-S-D-GROUP" }, { 0x70B3D5, 0xB02000, 0xB02FFF, "Nordic Automation Systems AS", "NORDIC-AUTOMATION-AS" }, { 0x70B3D5, 0xB03000, 0xB03FFF, "Sprintshield d.o.o.", "SPRINTSHIELD-D-O-O" }, { 0x70B3D5, 0xB04000, 0xB04FFF, "Herrmann Datensysteme GmbH", "HERRMANN-DATENSYSTEME" }, { 0x70B3D5, 0xB05000, 0xB05FFF, "E-PLUS TECHNOLOGY CO., LTD", "E-PLUS" }, { 0x70B3D5, 0xB06000, 0xB06FFF, "MULTIVOICE LLC", "MULTIVOICE" }, { 0x70B3D5, 0xB07000, 0xB07FFF, "Arrowvale Electronics", "ARROWVALE-ELECTRONICS" }, { 0x70B3D5, 0xB08000, 0xB08FFF, "Secuinfo Co. Ltd", "SECUINFO" }, { 0x70B3D5, 0xB09000, 0xB09FFF, "FIRST LIGHT IMAGING", "FIRST-LIGHT-IMAGING" }, { 0x70B3D5, 0xB0A000, 0xB0AFFF, "Mitsubishi Electric India Pvt. Ltd.", "MITSUBISHI-ELECTRIC-INDIA-PVT" }, { 0x70B3D5, 0xB0B000, 0xB0BFFF, "INTERNET PROTOCOLO LOGICA SL", "INTERNET-PROTOCOLO-LOGICA-SL" }, { 0x70B3D5, 0xB0C000, 0xB0CFFF, "Vigilate srl", "VIGILATE-SRL" }, { 0x70B3D5, 0xB0D000, 0xB0DFFF, "ALFI", "ALFI" }, { 0x70B3D5, 0xB0E000, 0xB0EFFF, "Servotronix Motion Control", "SERVOTRONIX-MOTION-CONTROL" }, { 0x70B3D5, 0xB0F000, 0xB0FFFF, "merkur Funksysteme AG", "MERKUR-FUNKSYSTEME" }, { 0x70B3D5, 0xB10000, 0xB10FFF, "Zumbach Electronic AG", "ZUMBACH" }, { 0x70B3D5, 0xB11000, 0xB11FFF, "CAB S.R.L.", "CAB" }, { 0x70B3D5, 0xB12000, 0xB12FFF, "VTEQ", "VTEQ" }, { 0x70B3D5, 0xB13000, 0xB13FFF, "Omwave", "OMWAVE" }, { 0x70B3D5, 0xB14000, 0xB14FFF, "Pantherun Technologies Pvt Ltd", "PANTHERUN-TECHNOLOGIES-PVT" }, { 0x70B3D5, 0xB15000, 0xB15FFF, "Eta Beta Srl", "ETA-BETA-SRL" }, { 0x70B3D5, 0xB16000, 0xB16FFF, "XI'AN SHENMING ELECTRON TECHNOLOGY CO.,LTD", "XI-AN-SHENMING-ELECTRON" }, { 0x70B3D5, 0xB17000, 0xB17FFF, "Intesens", "INTESENS" }, { 0x70B3D5, 0xB18000, 0xB18FFF, "Abbas, a.s.", "ABBAS" }, { 0x70B3D5, 0xB19000, 0xB19FFF, "Brayden Automation Corp", "BRAYDEN-AUTOMATION" }, { 0x70B3D5, 0xB1A000, 0xB1AFFF, "Aaronia AG", "AARONIA" }, { 0x70B3D5, 0xB1B000, 0xB1BFFF, "Technology Link Corporation", "LINK" }, { 0x70B3D5, 0xB1C000, 0xB1CFFF, "Serveron / Qualitrol", "SERVERON-/-QUALITROL" }, { 0x70B3D5, 0xB1D000, 0xB1DFFF, "Safelet BV", "SAFELET" }, { 0x70B3D5, 0xB1E000, 0xB1EFFF, "Fen Systems Ltd", "FEN" }, { 0x70B3D5, 0xB1F000, 0xB1FFFF, "TECNOWATT", "TECNOWATT" }, { 0x70B3D5, 0xB20000, 0xB20FFF, "ICT BUSINESS GROUP of Humanrights Center for disabled people", "ICT-BUSINESS-GROUP-OF-HUMANRIGHTS-CENTER-FOR-DISABLED-PEOPLE" }, { 0x70B3D5, 0xB21000, 0xB21FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0xB22000, 0xB22FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0xB23000, 0xB23FFF, "Supervision Test et Pilotage", "SUPERVISION-TEST-ET-PILOTAGE" }, { 0x70B3D5, 0xB24000, 0xB24FFF, "Datasat Digital Entertainment", "DATASAT-DIGITAL-ENTERTAINMENT" }, { 0x70B3D5, 0xB25000, 0xB25FFF, "Hifocus Electronics India Private Limited", "HIFOCUS-ELECTRONICS-INDIA-PRIVATE" }, { 0x70B3D5, 0xB26000, 0xB26FFF, "INTEC International GmbH", "INTEC" }, { 0x70B3D5, 0xB27000, 0xB27FFF, "Naval Group", "NAVAL-GROUP" }, { 0x70B3D5, 0xB28000, 0xB28FFF, "HUSTY M.Styczen J.Hupert sp.j.", "HUSTY-M-STYCZEN-J-HUPERT-SP-J" }, { 0x70B3D5, 0xB29000, 0xB29FFF, "WiViCom Co., Ltd.", "WIVICOM" }, { 0x70B3D5, 0xB2A000, 0xB2AFFF, "Myro Control, LLC", "MYRO-CONTROL" }, { 0x70B3D5, 0xB2B000, 0xB2BFFF, "Vtron Pty Ltd", "VTRON-PTY" }, { 0x70B3D5, 0xB2C000, 0xB2CFFF, "Elman srl", "ELMAN-SRL" }, { 0x70B3D5, 0xB2D000, 0xB2DFFF, "Plexus", "PLEXUS" }, { 0x70B3D5, 0xB2E000, 0xB2EFFF, "Green Access Ltd", "GREEN-ACCESS" }, { 0x70B3D5, 0xB2F000, 0xB2FFFF, "Hermann Automation GmbH", "HERMANN-AUTOMATION" }, { 0x70B3D5, 0xB30000, 0xB30FFF, "Systolé Hardware B.V.", "SYSTOL-HARDWARE-B-V" }, { 0x70B3D5, 0xB31000, 0xB31FFF, "Qwave Inc", "QWAVE" }, { 0x70B3D5, 0xB32000, 0xB32FFF, "GridBeyond", "GRIDBEYOND" }, { 0x70B3D5, 0xB33000, 0xB33FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0xB34000, 0xB34FFF, "Medtronic", "MEDTRONIC" }, { 0x70B3D5, 0xB35000, 0xB35FFF, "Rexxam Co.,Ltd.", "REXXAM" }, { 0x70B3D5, 0xB36000, 0xB36FFF, "Cetitec GmbH", "CETITEC" }, { 0x70B3D5, 0xB37000, 0xB37FFF, "CODEC Co., Ltd.", "CODEC" }, { 0x70B3D5, 0xB38000, 0xB38FFF, "GoTrustID Inc.", "GOTRUSTID" }, { 0x70B3D5, 0xB39000, 0xB39FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0xB3A000, 0xB3AFFF, "Adigitalmedia", "ADIGITALMEDIA" }, { 0x70B3D5, 0xB3B000, 0xB3BFFF, "Insitu, Inc", "INSITU" }, { 0x70B3D5, 0xB3C000, 0xB3CFFF, "DORLET SAU", "DORLET-SAU" }, { 0x70B3D5, 0xB3D000, 0xB3DFFF, "Inras GmbH", "INRAS" }, { 0x70B3D5, 0xB3E000, 0xB3EFFF, "Paradigm Communication Systems Ltd", "PARADIGM-COMMUNICATION" }, { 0x70B3D5, 0xB3F000, 0xB3FFFF, "Orbit International", "ORBIT" }, { 0x70B3D5, 0xB40000, 0xB40FFF, "Wuhan Xingtuxinke ELectronic Co.,Ltd", "WUHAN-XINGTUXINKE" }, { 0x70B3D5, 0xB41000, 0xB41FFF, "T&M Media Pty Ltd", "T-M-MEDIA-PTY" }, { 0x70B3D5, 0xB42000, 0xB42FFF, "Samwell International Inc", "SAMWELL" }, { 0x70B3D5, 0xB43000, 0xB43FFF, "ZAO ZEO", "ZAO-ZEO" }, { 0x70B3D5, 0xB44000, 0xB44FFF, "ENTEC Electric & Electronic Co., LTD.", "ENTEC-ELECTRIC" }, { 0x70B3D5, 0xB45000, 0xB45FFF, "Hon Hai Precision IND.CO.,LTD", "HON-HAI-PRECISION-IND" }, { 0x70B3D5, 0xB46000, 0xB46FFF, "FAS Electronics (Fujian) Co.,LTD.", "FAS-ELECTRONICS-FUJIAN" }, { 0x70B3D5, 0xB47000, 0xB47FFF, "DSIT Solutions LTD", "DSIT-SOLUTIONS" }, { 0x70B3D5, 0xB48000, 0xB48FFF, "DWQ Informatikai Tanacsado es Vezerlestechnikai KFT", "DWQ-INFORMATIKAI-TANACSADO-ES-VEZERLESTECHNIKAI-KFT" }, { 0x70B3D5, 0xB49000, 0xB49FFF, "ANALOGICS TECH INDIA LTD", "ANALOGICS-TECH-INDIA" }, { 0x70B3D5, 0xB4A000, 0xB4AFFF, "MEDEX", "MEDEX" }, { 0x70B3D5, 0xB4B000, 0xB4BFFF, "Network Customizing Technologies Inc", "NETWORK-CUSTOMIZING-TECHNOLOGIES" }, { 0x70B3D5, 0xB4C000, 0xB4CFFF, "AmericanPharma Technologies", "AMERICANPHARMA-TECHNOLOGIES" }, { 0x70B3D5, 0xB4D000, 0xB4DFFF, "Avidbots Corporation", "AVIDBOTS" }, { 0x70B3D5, 0xB4F000, 0xB4FFFF, "AvMap srlu", "AVMAP-SRLU" }, { 0x70B3D5, 0xB50000, 0xB50FFF, "iGrid T&D", "IGRID-T-D" }, { 0x70B3D5, 0xB51000, 0xB51FFF, "Critical Link LLC", "CRITICAL-LINK" }, { 0x70B3D5, 0xB52000, 0xB52FFF, "AEye, Inc.", "AEYE" }, { 0x70B3D5, 0xB53000, 0xB53FFF, "Revolution Retail Systems, LLC", "REVOLUTION-RETAIL" }, { 0x70B3D5, 0xB54000, 0xB54FFF, "Packet Power", "PACKET-POWER" }, { 0x70B3D5, 0xB55000, 0xB55FFF, "CTAG - ESG36871424", "CTAG-ESG36871424" }, { 0x70B3D5, 0xB56000, 0xB56FFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x70B3D5, 0xB57000, 0xB57FFF, "Shanghai Qinyue Communication Technology Co., Ltd.", "SHANGHAI-QINYUE-COMMUNICATION" }, { 0x70B3D5, 0xB58000, 0xB58FFF, "INTERNET PROTOCOLO LOGICA SL", "INTERNET-PROTOCOLO-LOGICA-SL" }, { 0x70B3D5, 0xB59000, 0xB59FFF, "FutureTechnologyLaboratories INC.", "FUTURETECHNOLOGYLABORATORIES" }, { 0x70B3D5, 0xB5A000, 0xB5AFFF, "GTI Technologies Inc", "GTI-TECHNOLOGIES" }, { 0x70B3D5, 0xB5B000, 0xB5BFFF, "DynaMount LLC", "DYNAMOUNT" }, { 0x70B3D5, 0xB5C000, 0xB5CFFF, "Prozess Technologie", "PROZESS-TECHNOLOGIE" }, { 0x70B3D5, 0xB5D000, 0xB5DFFF, "SHANDHAI LANDLEAF ARCHITECTURE TECHNOLOGY CO.,LTD", "SHANDHAI-LANDLEAF-ARCHITECTURE" }, { 0x70B3D5, 0xB5E000, 0xB5EFFF, "Dynics", "DYNICS" }, { 0x70B3D5, 0xB5F000, 0xB5FFFF, "CRDMDEVEOPPEMENTS", "CRDMDEVEOPPEMENTS" }, { 0x70B3D5, 0xB60000, 0xB60FFF, "ZAO ZEO", "ZAO-ZEO" }, { 0x70B3D5, 0xB61000, 0xB61FFF, "WuXi anktech Co., Ltd", "WUXI-ANKTECH" }, { 0x70B3D5, 0xB62000, 0xB62FFF, "Sakura Seiki Co.,Ltd.", "SAKURA-SEIKI" }, { 0x70B3D5, 0xB63000, 0xB63FFF, "Ideas srl", "IDEAS-SRL" }, { 0x70B3D5, 0xB64000, 0xB64FFF, "OSUNG LST CO.,LTD.", "OSUNG-LST" }, { 0x70B3D5, 0xB65000, 0xB65FFF, "Rotem Industry LTD", "ROTEM-INDUSTRY" }, { 0x70B3D5, 0xB66000, 0xB66FFF, "Silent Gliss International Ltd", "SILENT-GLISS" }, { 0x70B3D5, 0xB67000, 0xB67FFF, "RedWave Labs Ltd", "REDWAVE-LABS" }, { 0x70B3D5, 0xB68000, 0xB68FFF, "S-Rain Control A/S", "S-RAIN-CONTROL-A/S" }, { 0x70B3D5, 0xB69000, 0xB69FFF, "Daatrics LTD", "DAATRICS" }, { 0x70B3D5, 0xB6A000, 0xB6AFFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0xB6B000, 0xB6BFFF, "Cambria Corporation", "CAMBRIA" }, { 0x70B3D5, 0xB6C000, 0xB6CFFF, "GHM-Messtechnik GmbH (Standort IMTRON)", "GHM-MESSTECHNIK-STANDORT-IMTRON" }, { 0x70B3D5, 0xB6D000, 0xB6DFFF, "Movis", "MOVIS" }, { 0x70B3D5, 0xB6E000, 0xB6EFFF, "Edgeware AB", "EDGEWARE-AB" }, { 0x70B3D5, 0xB6F000, 0xB6FFFF, "Integra Metering SAS", "INTEGRA-METERING-SAS" }, { 0x70B3D5, 0xB70000, 0xB70FFF, "Torion Plasma Corporation", "TORION-PLASMA" }, { 0x70B3D5, 0xB71000, 0xB71FFF, "Optiver Pty Ltd", "OPTIVER-PTY" }, { 0x70B3D5, 0xB72000, 0xB72FFF, "UB330.net d.o.o.", "UB330-NET-D-O-O" }, { 0x70B3D5, 0xB73000, 0xB73FFF, "Cetto Industries", "CETTO-INDUSTRIES" }, { 0x70B3D5, 0xB74000, 0xB74FFF, "OnYield Inc Ltd", "ONYIELD" }, { 0x70B3D5, 0xB75000, 0xB75FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x70B3D5, 0xB76000, 0xB76FFF, "ATL-SD", "ATL-SD" }, { 0x70B3D5, 0xB77000, 0xB77FFF, "Motec Pty Ltd", "MOTEC-PTY" }, { 0x70B3D5, 0xB78000, 0xB78FFF, "HOERMANN GmbH", "HOERMANN" }, { 0x70B3D5, 0xB79000, 0xB79FFF, "Dadacon GmbH", "DADACON" }, { 0x70B3D5, 0xB7A000, 0xB7AFFF, "MAHLE", "MAHLE" }, { 0x70B3D5, 0xB7B000, 0xB7BFFF, "Doosan Digital Innovation America", "DOOSAN-DIGITAL-INNOVATION-AMERICA" }, { 0x70B3D5, 0xB7C000, 0xB7CFFF, "Electronic Navigation Ltd", "NAVIGATION" }, { 0x70B3D5, 0xB7D000, 0xB7DFFF, "LOGIX ITS Inc", "LOGIX-ITS" }, { 0x70B3D5, 0xB7E000, 0xB7EFFF, "Elbit Systems of America", "ELBIT-OF-AMERICA" }, { 0x70B3D5, 0xB7F000, 0xB7FFFF, "JSK System", "JSK-SYSTEM" }, { 0x70B3D5, 0xB80000, 0xB80FFF, "BIGHOUSE.,INC.", "BIGHOUSE" }, { 0x70B3D5, 0xB81000, 0xB81FFF, "Instro Precision Limited", "INSTRO-PRECISION" }, { 0x70B3D5, 0xB82000, 0xB82FFF, "Lookout Portable Security", "LOOKOUT-PORTABLE-SECURITY" }, { 0x70B3D5, 0xB83000, 0xB83FFF, "Matrix Telematics Limited", "MATRIX-TELEMATICS" }, { 0x70B3D5, 0xB84000, 0xB84FFF, "OOO Research and Production Center Computer Technologies", "OOO-RESEARCH-AND-PRODUCTION-CENTER-TECHNOLOGIES" }, { 0x70B3D5, 0xB85000, 0xB85FFF, "Fenotech Inc.", "FENOTECH" }, { 0x70B3D5, 0xB86000, 0xB86FFF, "Hilo", "HILO" }, { 0x70B3D5, 0xB87000, 0xB87FFF, "CAITRON GmbH", "CAITRON" }, { 0x70B3D5, 0xB88000, 0xB88FFF, "ARP Corporation", "ARP" }, { 0x70B3D5, 0xB89000, 0xB89FFF, "IDA", "IDA" }, { 0x70B3D5, 0xB8A000, 0xB8AFFF, "Nexus Tech. VN", "NEXUS-TECH-VN" }, { 0x70B3D5, 0xB8B000, 0xB8BFFF, "Profound Medical Inc.", "PROFOUND-MEDICAL" }, { 0x70B3D5, 0xB8C000, 0xB8CFFF, "ePOINT Embedded Computing Limited", "EPOINT-EMBEDDED-COMPUTING" }, { 0x70B3D5, 0xB8D000, 0xB8DFFF, "JungwooEng Co., Ltd", "JUNGWOOENG" }, { 0x70B3D5, 0xB8E000, 0xB8EFFF, "UR FOG S.R.L.", "UR-FOG" }, { 0x70B3D5, 0xB8F000, 0xB8FFFF, "Assembly Contracts Ltd", "ASSEMBLY-CONTRACTS" }, { 0x70B3D5, 0xB90000, 0xB90FFF, "Amico Corporation", "AMICO" }, { 0x70B3D5, 0xB91000, 0xB91FFF, "Dynetics, Inc.", "DYNETICS" }, { 0x70B3D5, 0xB92000, 0xB92FFF, "N A Communications LLC", "N-A-COMMUNICATION" }, { 0x70B3D5, 0xB93000, 0xB93FFF, "INTERNET PROTOCOLO LOGICA SL", "INTERNET-PROTOCOLO-LOGICA-SL" }, { 0x70B3D5, 0xB94000, 0xB94FFF, "Cygnetic Technologies (Pty) Ltd", "CYGNETIC-TECHNOLOGIES-PTY" }, { 0x70B3D5, 0xB95000, 0xB95FFF, "EPIImaging", "EPIIMAGING" }, { 0x70B3D5, 0xB96000, 0xB96FFF, "Oculii", "OCULII" }, { 0x70B3D5, 0xB97000, 0xB97FFF, "Canam Technology, Inc.", "CANAM" }, { 0x70B3D5, 0xB98000, 0xB98FFF, "GSF Corporation Pte Ltd", "GSF-PTE" }, { 0x70B3D5, 0xB99000, 0xB99FFF, "DomoSafety S.A.", "DOMOSAFETY" }, { 0x70B3D5, 0xB9A000, 0xB9AFFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x70B3D5, 0xB9B000, 0xB9BFFF, "Elektronik Art", "ELEKTRONIK-ART" }, { 0x70B3D5, 0xB9C000, 0xB9CFFF, "EDCO Technology 1993 ltd", "EDCO-1993" }, { 0x70B3D5, 0xB9D000, 0xB9DFFF, "Conclusive Engineering", "CONCLUSIVE-ENGINEERING" }, { 0x70B3D5, 0xB9E000, 0xB9EFFF, "POLSYSTEM SI SP. Z O.O., S.K.A.", "POLSYSTEM-SI-SP-Z-O-O-S-K-A" }, { 0x70B3D5, 0xB9F000, 0xB9FFFF, "Yuksek Kapasite Radyolink Sistemleri San. ve Tic. A.S.", "YUKSEK-KAPASITE-RADYOLINK-SISTEMLERI-SAN-VE-TIC" }, { 0x70B3D5, 0xBA0000, 0xBA0FFF, "Season Electronics Ltd", "SEASON-ELECTRONICS" }, { 0x70B3D5, 0xBA1000, 0xBA1FFF, "Cathwell AS", "CATHWELL-AS" }, { 0x70B3D5, 0xBA2000, 0xBA2FFF, "MAMAC Systems, Inc.", "MAMAC" }, { 0x70B3D5, 0xBA3000, 0xBA3FFF, "TIAMA", "TIAMA" }, { 0x70B3D5, 0xBA4000, 0xBA4FFF, "EIWA GIKEN INC.", "EIWA-GIKEN" }, { 0x70B3D5, 0xBA5000, 0xBA5FFF, "fpgalabs.com", "FPGALABS-COM" }, { 0x70B3D5, 0xBA6000, 0xBA6FFF, "Gluon Solutions Inc.", "GLUON-SOLUTIONS" }, { 0x70B3D5, 0xBA7000, 0xBA7FFF, "Digital Yacht Ltd", "DIGITAL-YACHT" }, { 0x70B3D5, 0xBA8000, 0xBA8FFF, "Controlled Power Company", "CONTROLLED-POWER-COMPANY" }, { 0x70B3D5, 0xBA9000, 0xBA9FFF, "Alma", "ALMA" }, { 0x70B3D5, 0xBAA000, 0xBAAFFF, "Device Solutions Ltd", "DEVICE-SOLUTIONS" }, { 0x70B3D5, 0xBAB000, 0xBABFFF, "Axotec Technologies GmbH", "AXOTEC-TECHNOLOGIES" }, { 0x70B3D5, 0xBAC000, 0xBACFFF, "AdInte, inc.", "ADINTE" }, { 0x70B3D5, 0xBAD000, 0xBADFFF, "Technik & Design GmbH", "TECHNIK-DESIGN" }, { 0x70B3D5, 0xBAE000, 0xBAEFFF, "WARECUBE,INC", "WARECUBE" }, { 0x70B3D5, 0xBAF000, 0xBAFFFF, "SYS TEC electronic GmbH", "SYS-TEC" }, { 0x70B3D5, 0xBB0000, 0xBB0FFF, "WICELL TECHNOLOGY", "WICELL" }, { 0x70B3D5, 0xBB1000, 0xBB1FFF, "Lumiplan Duhamel", "LUMIPLAN-DUHAMEL" }, { 0x70B3D5, 0xBB2000, 0xBB2FFF, "Mettler Toledo", "METTLER-TOLEDO" }, { 0x70B3D5, 0xBB3000, 0xBB3FFF, "APG Cash Drawer, LLC", "APG-CASH-DRAWER" }, { 0x70B3D5, 0xBB4000, 0xBB4FFF, "Integritech", "INTEGRITECH" }, { 0x70B3D5, 0xBB5000, 0xBB5FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x70B3D5, 0xBB6000, 0xBB6FFF, "Franke Aquarotter GmbH", "FRANKE-AQUAROTTER" }, { 0x70B3D5, 0xBB7000, 0xBB7FFF, "Innoflight, Inc.", "INNOFLIGHT" }, { 0x70B3D5, 0xBB8000, 0xBB8FFF, "Al Kamel Systems S.L.", "AL-KAMEL" }, { 0x70B3D5, 0xBB9000, 0xBB9FFF, "KOSMEK.Ltd", "KOSMEK" }, { 0x70B3D5, 0xBBA000, 0xBBAFFF, "Samriddi Automations Pvt. Ltd.", "SAMRIDDI-AUTOMATIONS-PVT" }, { 0x70B3D5, 0xBBB000, 0xBBBFFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0xBBC000, 0xBBCFFF, "Boundary Technologies Ltd", "BOUNDARY-TECHNOLOGIES" }, { 0x70B3D5, 0xBBD000, 0xBBDFFF, "Providius Corp", "PROVIDIUS" }, { 0x70B3D5, 0xBBE000, 0xBBEFFF, "Sunrise Systems Electronics Co. Inc.", "SUNRISE-ELECTRONICS" }, { 0x70B3D5, 0xBBF000, 0xBBFFFF, "Ensys srl", "ENSYS-SRL" }, { 0x70B3D5, 0xBC0000, 0xBC0FFF, "SENSO2ME", "SENSO2ME" }, { 0x70B3D5, 0xBC1000, 0xBC1FFF, "Abionic", "ABIONIC" }, { 0x70B3D5, 0xBC2000, 0xBC2FFF, "DWEWOONG ELECTRIC Co., Ltd.", "DWEWOONG-ELECTRIC" }, { 0x70B3D5, 0xBC3000, 0xBC3FFF, "eWireless", "EWIRELESS" }, { 0x70B3D5, 0xBC4000, 0xBC4FFF, "Digital Media Professionals", "DIGITAL-MEDIA-PROFESSIONALS" }, { 0x70B3D5, 0xBC5000, 0xBC5FFF, "U&R GmbH Hardware- und Systemdesign", "U-R-HARDWARE-UND-SYSTEMDESIGN" }, { 0x70B3D5, 0xBC6000, 0xBC6FFF, "Hatteland Display AS", "HATTELAND-DISPLAY-AS" }, { 0x70B3D5, 0xBC7000, 0xBC7FFF, "Autonomic Controls, Inc.", "AUTONOMIC-CONTROLS" }, { 0x70B3D5, 0xBC8000, 0xBC8FFF, "Loma Systems s.r.o.", "LOMA-S-R-O" }, { 0x70B3D5, 0xBC9000, 0xBC9FFF, "Yite technology", "YITE" }, { 0x70B3D5, 0xBCA000, 0xBCAFFF, "Deymed Diagnostic", "DEYMED-DIAGNOSTIC" }, { 0x70B3D5, 0xBCB000, 0xBCBFFF, "Smart Vision Lights", "SMART-VISION-LIGHTS" }, { 0x70B3D5, 0xBCC000, 0xBCCFFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0xBCD000, 0xBCDFFF, "Sasken Technologies Ltd", "SASKEN-TECHNOLOGIES" }, { 0x70B3D5, 0xBCE000, 0xBCEFFF, "YAWATA ELECTRIC INDUSTRIAL CO.,LTD.", "YAWATA-ELECTRIC-INDUSTRIAL" }, { 0x70B3D5, 0xBCF000, 0xBCFFFF, "APG Cash Drawer, LLC", "APG-CASH-DRAWER" }, { 0x70B3D5, 0xBD0000, 0xBD0FFF, "SHS SRL", "SHS-SRL" }, { 0x70B3D5, 0xBD1000, 0xBD1FFF, "CableLabs", "CABLELABS" }, { 0x70B3D5, 0xBD2000, 0xBD2FFF, "Burk Technology", "BURK" }, { 0x70B3D5, 0xBD3000, 0xBD3FFF, "FOTONA D.D.", "FOTONA-D-D" }, { 0x70B3D5, 0xBD4000, 0xBD4FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0xBD5000, 0xBD5FFF, "Synics AG", "SYNICS" }, { 0x70B3D5, 0xBD6000, 0xBD6FFF, "Consarc Corporation", "CONSARC" }, { 0x70B3D5, 0xBD7000, 0xBD7FFF, "TT Group SRL", "TT-GROUP-SRL" }, { 0x70B3D5, 0xBD8000, 0xBD8FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0xBD9000, 0xBD9FFF, "SolwayTech", "SOLWAYTECH" }, { 0x70B3D5, 0xBDA000, 0xBDAFFF, "5-D Systems, Inc.", "5-D" }, { 0x70B3D5, 0xBDB000, 0xBDBFFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x70B3D5, 0xBDC000, 0xBDCFFF, "EDF Lab", "EDF-LAB" }, { 0x70B3D5, 0xBDD000, 0xBDDFFF, "CDR SRL", "CDR-SRL" }, { 0x70B3D5, 0xBDE000, 0xBDEFFF, "CAST Group of Companies Inc.", "CAST-GROUP-OF-COMPANIES" }, { 0x70B3D5, 0xBDF000, 0xBDFFFF, "H2O-YUG LLC", "H2O-YUG" }, { 0x70B3D5, 0xBE0000, 0xBE0FFF, "Cognosos, Inc.", "COGNOSOS" }, { 0x70B3D5, 0xBE1000, 0xBE1FFF, "FeCon GmbH", "FECON" }, { 0x70B3D5, 0xBE2000, 0xBE2FFF, "Nocix, LLC", "NOCIX" }, { 0x70B3D5, 0xBE3000, 0xBE3FFF, "Saratov Electrounit Production Plant named after Sergo Ordzhonikidze, OJSC", "SARATOV-ELECTROUNIT-PRODUCTION-PLANT-NAMED-AFTER-SERGO-ORDZHONIKIDZE-OJSC" }, { 0x70B3D5, 0xBE4000, 0xBE4FFF, "Kunshan excellent Intelligent Technology Co., Ltd.", "KUNSHAN-EXCELLENT-INTELLIGENT" }, { 0x70B3D5, 0xBE5000, 0xBE5FFF, "Pantec Engineering AG", "PANTEC-ENGINEERING" }, { 0x70B3D5, 0xBE6000, 0xBE6FFF, "CCII Systems (Pty) Ltd", "CCII-PTY" }, { 0x70B3D5, 0xBE7000, 0xBE7FFF, "Syscom Instruments SA", "SYSCOM-INSTRUMENTS" }, { 0x70B3D5, 0xBE8000, 0xBE8FFF, "AndFun Co.,Ltd.", "ANDFUN" }, { 0x70B3D5, 0xBE9000, 0xBE9FFF, "Telecast Inc.", "TELECAST" }, { 0x70B3D5, 0xBEA000, 0xBEAFFF, "Virtuosys Ltd", "VIRTUOSYS" }, { 0x70B3D5, 0xBEB000, 0xBEBFFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x70B3D5, 0xBEC000, 0xBECFFF, "Tokyo Communication Equipment MFG Co.,ltd.", "TOKYO-COMMUNICATION-EQUIPMENT-MFG" }, { 0x70B3D5, 0xBED000, 0xBEDFFF, "Itrinegy Ltd.", "ITRINEGY" }, { 0x70B3D5, 0xBEE000, 0xBEEFFF, "Sicon srl", "SICON-SRL" }, { 0x70B3D5, 0xBEF000, 0xBEFFFF, "Sensortech Systems Inc.", "SENSORTECH" }, { 0x70B3D5, 0xBF0000, 0xBF0FFF, "Alfa Elettronica srl", "ALFA-ELETTRONICA-SRL" }, { 0x70B3D5, 0xBF1000, 0xBF1FFF, "Flashnet SRL", "FLASHNET-SRL" }, { 0x70B3D5, 0xBF2000, 0xBF2FFF, "TWIN DEVELOPMENT", "TWIN-DEVELOPMENT" }, { 0x70B3D5, 0xBF3000, 0xBF3FFF, "CG-WIRELESS", "CG-WIRELESS" }, { 0x70B3D5, 0xBF4000, 0xBF4FFF, "CreevX", "CREEVX" }, { 0x70B3D5, 0xBF5000, 0xBF5FFF, "Acacia Research", "ACACIA-RESEARCH" }, { 0x70B3D5, 0xBF6000, 0xBF6FFF, "comtac AG", "COMTAC" }, { 0x70B3D5, 0xBF7000, 0xBF7FFF, "Fischer Connectors", "FISCHER-CONNECTORS" }, { 0x70B3D5, 0xBF8000, 0xBF8FFF, "RCH ITALIA SPA", "RCH-ITALIA-SPA" }, { 0x70B3D5, 0xBF9000, 0xBF9FFF, "Okolab Srl", "OKOLAB-SRL" }, { 0x70B3D5, 0xBFA000, 0xBFAFFF, "NESA SRL", "NESA-SRL" }, { 0x70B3D5, 0xBFB000, 0xBFBFFF, "Sensor 42", "SENSOR-42" }, { 0x70B3D5, 0xBFC000, 0xBFCFFF, "Vishay Nobel AB", "VISHAY-NOBEL-AB" }, { 0x70B3D5, 0xBFD000, 0xBFDFFF, "Lumentum", "LUMENTUM" }, { 0x70B3D5, 0xBFE000, 0xBFEFFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0xBFF000, 0xBFFFFF, "Sunsa, Inc", "SUNSA" }, { 0x70B3D5, 0xC00000, 0xC00FFF, "BESO sp. z o.o.", "BESO-SP-Z-O-O" }, { 0x70B3D5, 0xC01000, 0xC01FFF, "SmartGuard LLC", "SMARTGUARD" }, { 0x70B3D5, 0xC02000, 0xC02FFF, "Garmo Instruments S.L.", "GARMO-INSTRUMENTS" }, { 0x70B3D5, 0xC03000, 0xC03FFF, "XAVi Technologies Corp.", "XAVI-TECHNOLOGIES" }, { 0x70B3D5, 0xC04000, 0xC04FFF, "Prolan Zrt.", "PROLAN-ZRT" }, { 0x70B3D5, 0xC05000, 0xC05FFF, "KST technology", "KST" }, { 0x70B3D5, 0xC06000, 0xC06FFF, "XotonicsMED GmbH", "XOTONICSMED" }, { 0x70B3D5, 0xC07000, 0xC07FFF, "ARECO", "ARECO" }, { 0x70B3D5, 0xC08000, 0xC08FFF, "Talleres de Escoriaza SA", "TALLERES-DE-ESCORIAZA" }, { 0x70B3D5, 0xC09000, 0xC09FFF, "RCH Vietnam Limited Liability Company", "RCH-VIETNAM-LIABILITY-COMPANY" }, { 0x70B3D5, 0xC0A000, 0xC0AFFF, "Infosocket Co., Ltd.", "INFOSOCKET" }, { 0x70B3D5, 0xC0B000, 0xC0BFFF, "FSTUDIO CO LTD", "FSTUDIO" }, { 0x70B3D5, 0xC0C000, 0xC0CFFF, "Tech4Race", "TECH4RACE" }, { 0x70B3D5, 0xC0D000, 0xC0DFFF, "Clarity Medical Pvt Ltd", "CLARITY-MEDICAL-PVT" }, { 0x70B3D5, 0xC0E000, 0xC0EFFF, "SYSDEV Srl", "SYSDEV-SRL" }, { 0x70B3D5, 0xC0F000, 0xC0FFFF, "Honeywell Safety Products USA, Inc", "HONEYWELL-SAFETY-PRODUCTS-USA" }, { 0x70B3D5, 0xC10000, 0xC10FFF, "Scanvaegt Systems A/S", "SCANVAEGT-A/S" }, { 0x70B3D5, 0xC11000, 0xC11FFF, "Ariston Thermo s.p.a.", "ARISTON-THERMO" }, { 0x70B3D5, 0xC12000, 0xC12FFF, "Beijing Wisetone Information Technology Co.,Ltd.", "BEIJING-WISETONE-INFORMATION" }, { 0x70B3D5, 0xC13000, 0xC13FFF, "Guangzhou Xianhe Technology Engineering Co., Ltd", "GUANGZHOU-XIANHE-ENGINEERING" }, { 0x70B3D5, 0xC14000, 0xC14FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x70B3D5, 0xC15000, 0xC15FFF, "Sensobox GmbH", "SENSOBOX" }, { 0x70B3D5, 0xC16000, 0xC16FFF, "Southern Innovation", "SOUTHERN-INNOVATION" }, { 0x70B3D5, 0xC17000, 0xC17FFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x70B3D5, 0xC18000, 0xC18FFF, "Sanmina Israel", "SANMINA-ISRAEL" }, { 0x70B3D5, 0xC19000, 0xC19FFF, "Zumbach Electronic AG", "ZUMBACH" }, { 0x70B3D5, 0xC1A000, 0xC1AFFF, "Xylon", "XYLON" }, { 0x70B3D5, 0xC1B000, 0xC1BFFF, "Labinvent JSC", "LABINVENT-JSC" }, { 0x70B3D5, 0xC1C000, 0xC1CFFF, "D.E.M. SPA", "D-E-M-SPA" }, { 0x70B3D5, 0xC1D000, 0xC1DFFF, "Kranze Technology Solutions, Inc.", "KRANZE-SOLUTIONS" }, { 0x70B3D5, 0xC1E000, 0xC1EFFF, "Kron Medidores", "KRON-MEDIDORES" }, { 0x70B3D5, 0xC1F000, 0xC1FFFF, "Behr Technologies Inc", "BEHR-TECHNOLOGIES" }, { 0x70B3D5, 0xC20000, 0xC20FFF, "Mipot S.p.a.", "MIPOT" }, { 0x70B3D5, 0xC21000, 0xC21FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0xC22000, 0xC22FFF, "Skyriver Communications Inc.", "SKYRIVER-COMMUNICATION" }, { 0x70B3D5, 0xC23000, 0xC23FFF, "Sumitomo Heavy Industries, Ltd.", "SUMITOMO-HEAVY-INDUSTRIES" }, { 0x70B3D5, 0xC24000, 0xC24FFF, "Elbit Systems of America", "ELBIT-OF-AMERICA" }, { 0x70B3D5, 0xC25000, 0xC25FFF, "speedsignal GmbH", "SPEEDSIGNAL" }, { 0x70B3D5, 0xC26000, 0xC26FFF, "Triple Play Communications", "TRIPLE-PLAY-COMMUNICATION" }, { 0x70B3D5, 0xC27000, 0xC27FFF, "GD Mission Systems", "GD-MISSION" }, { 0x70B3D5, 0xC28000, 0xC28FFF, "Mitech Integrated Systems Inc.", "MITECH-INTEGRATED" }, { 0x70B3D5, 0xC29000, 0xC29FFF, "SOFTLAND INDIA LTD", "SOFTLAND-INDIA" }, { 0x70B3D5, 0xC2A000, 0xC2AFFF, "Array Telepresence", "ARRAY-TELEPRESENCE" }, { 0x70B3D5, 0xC2B000, 0xC2BFFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0xC2C000, 0xC2CFFF, "Dromont S.p.A.", "DROMONT" }, { 0x70B3D5, 0xC2D000, 0xC2DFFF, "Ensotech Limited", "ENSOTECH" }, { 0x70B3D5, 0xC2E000, 0xC2EFFF, "Triax A/S", "TRIAX-A/S" }, { 0x70B3D5, 0xC2F000, 0xC2FFFF, "ATBiS Co.,Ltd", "ATBIS" }, { 0x70B3D5, 0xC30000, 0xC30FFF, "Polskie Sady Nowe Podole Sp. z o.o.", "POLSKIE-SADY-NOWE-PODOLE-SP-Z-O-O" }, { 0x70B3D5, 0xC31000, 0xC31FFF, "German Power GmbH", "GERMAN-POWER" }, { 0x70B3D5, 0xC32000, 0xC32FFF, "INFRASAFE/ ADVANTOR SYSTEMS", "INFRASAFE/-ADVANTOR" }, { 0x70B3D5, 0xC33000, 0xC33FFF, "Dandong Dongfang Measurement & Control Technology Co., Ltd.", "DANDONG-DONGFANG-MEASUREMENT-CONTROL" }, { 0x70B3D5, 0xC34000, 0xC34FFF, "Technical Panels Co. Ltd.", "TECHNICAL-PANELS" }, { 0x70B3D5, 0xC35000, 0xC35FFF, "Vibrationmaster", "VIBRATIONMASTER" }, { 0x70B3D5, 0xC36000, 0xC36FFF, "Knowledge Resources GmbH", "KNOWLEDGE-RESOURCES" }, { 0x70B3D5, 0xC37000, 0xC37FFF, "Keycom Corp.", "KEYCOM" }, { 0x70B3D5, 0xC38000, 0xC38FFF, "CRESPRIT INC.", "CRESPRIT" }, { 0x70B3D5, 0xC39000, 0xC39FFF, "MeshWorks Wireless Oy", "MESHWORKS-WIRELESS-OY" }, { 0x70B3D5, 0xC3A000, 0xC3AFFF, "HAN CHANG", "HAN-CHANG" }, { 0x70B3D5, 0xC3B000, 0xC3BFFF, "Vironova AB", "VIRONOVA-AB" }, { 0x70B3D5, 0xC3C000, 0xC3CFFF, "PEEK TRAFFIC", "PEEK-TRAFFIC" }, { 0x70B3D5, 0xC3D000, 0xC3DFFF, "CISTECH Solutions", "CISTECH-SOLUTIONS" }, { 0x70B3D5, 0xC3E000, 0xC3EFFF, "DOSADORES ALLTRONIC", "DOSADORES-ALLTRONIC" }, { 0x70B3D5, 0xC3F000, 0xC3FFFF, "Code Blue Corporation", "CODE-BLUE" }, { 0x70B3D5, 0xC40000, 0xC40FFF, "HongSeok Ltd.", "HONGSEOK" }, { 0x70B3D5, 0xC41000, 0xC41FFF, "Merlin CSI", "MERLIN-CSI" }, { 0x70B3D5, 0xC42000, 0xC42FFF, "CRDE", "CRDE" }, { 0x70B3D5, 0xC43000, 0xC43FFF, "Future Skies", "FUTURE-SKIES" }, { 0x70B3D5, 0xC44000, 0xC44FFF, "Franz Kessler GmbH", "FRANZ-KESSLER" }, { 0x70B3D5, 0xC45000, 0xC45FFF, "Stiebel Eltron GmbH", "STIEBEL-ELTRON" }, { 0x70B3D5, 0xC46000, 0xC46FFF, "eumig industrie-TV GmbH.", "EUMIG-INDUSTRIE-TV" }, { 0x70B3D5, 0xC47000, 0xC47FFF, "ABB", "ABB" }, { 0x70B3D5, 0xC48000, 0xC48FFF, "Weltek Technologies Co. Ltd.", "WELTEK-TECHNOLOGIES" }, { 0x70B3D5, 0xC49000, 0xC49FFF, "BTG Instruments AB", "BTG-INSTRUMENTS-AB" }, { 0x70B3D5, 0xC4A000, 0xC4AFFF, "TIAMA", "TIAMA" }, { 0x70B3D5, 0xC4B000, 0xC4BFFF, "ANKER-EAST", "ANKER-EAST" }, { 0x70B3D5, 0xC4C000, 0xC4CFFF, "VTC Digicom", "VTC-DIGICOM" }, { 0x70B3D5, 0xC4D000, 0xC4DFFF, "RADA Electronics Industries Ltd.", "RADA-ELECTRONICS-INDUSTRIES" }, { 0x70B3D5, 0xC4E000, 0xC4EFFF, "ARKRAY, Inc. Kyoto Laboratory", "ARKRAY-KYOTO-LABORATORY" }, { 0x70B3D5, 0xC4F000, 0xC4FFFF, "AE Van de Vliet BVBA", "AE-VAN-DE-VLIET-BVBA" }, { 0x70B3D5, 0xC50000, 0xC50FFF, "Combilent", "COMBILENT" }, { 0x70B3D5, 0xC51000, 0xC51FFF, "Innotas Elektronik GmbH", "INNOTAS-ELEKTRONIK" }, { 0x70B3D5, 0xC52000, 0xC52FFF, "sensorway", "SENSORWAY" }, { 0x70B3D5, 0xC53000, 0xC53FFF, "S Labs sp. z o.o.", "S-LABS-SP-Z-O-O" }, { 0x70B3D5, 0xC54000, 0xC54FFF, "Flexsolution APS", "FLEXSOLUTION-APS" }, { 0x70B3D5, 0xC55000, 0xC55FFF, "Intelligent Energy Ltd", "INTELLIGENT-ENERGY" }, { 0x70B3D5, 0xC56000, 0xC56FFF, "TELETASK", "TELETASK" }, { 0x70B3D5, 0xC57000, 0xC57FFF, "eBZ GmbH", "EBZ" }, { 0x70B3D5, 0xC58000, 0xC58FFF, "RMI Laser LLC", "RMI-LASER" }, { 0x70B3D5, 0xC59000, 0xC59FFF, "R Cubed Engineering, LLC", "R-CUBED-ENGINEERING" }, { 0x70B3D5, 0xC5A000, 0xC5AFFF, "Commsignia Ltd.", "COMMSIGNIA" }, { 0x70B3D5, 0xC5B000, 0xC5BFFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x70B3D5, 0xC5C000, 0xC5CFFF, "Layer Logic Inc", "LAYER-LOGIC" }, { 0x70B3D5, 0xC5D000, 0xC5DFFF, "FOSHAN SHILANTIAN NETWORK S.T. CO., LTD.", "FOSHAN-SHILANTIAN-NETWORK-S-T" }, { 0x70B3D5, 0xC5E000, 0xC5EFFF, "Frog Cellsat Limited", "FROG-CELLSAT" }, { 0x70B3D5, 0xC5F000, 0xC5FFFF, "Clean-Lasersysteme GmbH", "CLEAN-LASERSYSTEME" }, { 0x70B3D5, 0xC60000, 0xC60FFF, "Gogo BA", "GOGO-BA" }, { 0x70B3D5, 0xC61000, 0xC61FFF, "JC HUNTER TECHNOLOGIES", "JC-HUNTER-TECHNOLOGIES" }, { 0x70B3D5, 0xC62000, 0xC62FFF, "WIZNOVA", "WIZNOVA" }, { 0x70B3D5, 0xC63000, 0xC63FFF, "Xentech Solutions Limited", "XENTECH-SOLUTIONS" }, { 0x70B3D5, 0xC64000, 0xC64FFF, "SYS TEC electronic GmbH", "SYS-TEC" }, { 0x70B3D5, 0xC65000, 0xC65FFF, "PEEK TRAFFIC", "PEEK-TRAFFIC" }, { 0x70B3D5, 0xC66000, 0xC66FFF, "Blue Access Inc", "BLUE-ACCESS" }, { 0x70B3D5, 0xC67000, 0xC67FFF, "Collini Dienstleistungs GmbH", "COLLINI-DIENSTLEISTUNGS" }, { 0x70B3D5, 0xC68000, 0xC68FFF, "Mini Solution Co. Ltd.", "MINI-SOLUTION" }, { 0x70B3D5, 0xC69000, 0xC69FFF, "AZ-TECHNOLOGY SDN BHD", "AZ" }, { 0x70B3D5, 0xC6A000, 0xC6AFFF, "Private", "PRIVATE" }, { 0x70B3D5, 0xC6B000, 0xC6BFFF, "Herholdt Controls srl", "HERHOLDT-CONTROLS-SRL" }, { 0x70B3D5, 0xC6C000, 0xC6CFFF, "McQ Inc", "MCQ" }, { 0x70B3D5, 0xC6D000, 0xC6DFFF, "Cyviz AS", "CYVIZ-AS" }, { 0x70B3D5, 0xC6E000, 0xC6EFFF, "Orion Technologies, LLC", "ORION-TECHNOLOGIES" }, { 0x70B3D5, 0xC6F000, 0xC6FFFF, "nyantec GmbH", "NYANTEC" }, { 0x70B3D5, 0xC70000, 0xC70FFF, "Magnetek", "MAGNETEK" }, { 0x70B3D5, 0xC71000, 0xC71FFF, "The Engineerix Group", "THE-ENGINEERIX-GROUP" }, { 0x70B3D5, 0xC72000, 0xC72FFF, "Scharco Elektronik GmbH", "SCHARCO-ELEKTRONIK" }, { 0x70B3D5, 0xC73000, 0xC73FFF, "C.D.N.CORPORATION", "C-D-N" }, { 0x70B3D5, 0xC74000, 0xC74FFF, "Qtechnology A/S", "QTECHNOLOGY-A/S" }, { 0x70B3D5, 0xC75000, 0xC75FFF, "Planet Innovation Products Inc.", "PLANET-INNOVATION-PRODUCTS" }, { 0x70B3D5, 0xC76000, 0xC76FFF, "ELA INNOVATION", "ELA-INNOVATION" }, { 0x70B3D5, 0xC77000, 0xC77FFF, "Yönnet Akıllı Bina ve Otomasyon Sistemleri", "YOENNET-AKLL-BINA-VE-OTOMASYON-SISTEMLERI" }, { 0x70B3D5, 0xC78000, 0xC78FFF, "NETA Elektronik AS", "NETA-ELEKTRONIK-AS" }, { 0x70B3D5, 0xC79000, 0xC79FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0xC7A000, 0xC7AFFF, "ENTEC Electric & Electronic Co., LTD.", "ENTEC-ELECTRIC" }, { 0x70B3D5, 0xC7B000, 0xC7BFFF, "EM Clarity Pty Ltd", "EM-CLARITY-PTY" }, { 0x70B3D5, 0xC7C000, 0xC7CFFF, "Beijing Aumiwalker technology CO.,LTD", "BEIJING-AUMIWALKER" }, { 0x70B3D5, 0xC7D000, 0xC7DFFF, "Metatronics B.V.", "METATRONICS-B-V" }, { 0x70B3D5, 0xC7E000, 0xC7EFFF, "BirdDog Australia", "BIRDDOG-AUSTRALIA" }, { 0x70B3D5, 0xC7F000, 0xC7FFFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0xC80000, 0xC80FFF, "Link Care Services", "LINK-CARE-SERVICES" }, { 0x70B3D5, 0xC81000, 0xC81FFF, "DSP DESIGN", "DSP-DESIGN" }, { 0x70B3D5, 0xC82000, 0xC82FFF, "Sicon srl", "SICON-SRL" }, { 0x70B3D5, 0xC83000, 0xC83FFF, "CertusNet Inc.", "CERTUSNET" }, { 0x70B3D5, 0xC84000, 0xC84FFF, "Linc Technology Corporation dba Data-Linc Group", "LINC-DBA-DATA-LINC-GROUP" }, { 0x70B3D5, 0xC85000, 0xC85FFF, "Solid State Disks Ltd", "SOLID-STATE-DISKS" }, { 0x70B3D5, 0xC86000, 0xC86FFF, "Woodam Co., Ltd.", "WOODAM" }, { 0x70B3D5, 0xC87000, 0xC87FFF, "Siemens AG", "SIEMENS" }, { 0x70B3D5, 0xC88000, 0xC88FFF, "SINED srl", "SINED-SRL" }, { 0x70B3D5, 0xC89000, 0xC89FFF, "ARD", "ARD" }, { 0x70B3D5, 0xC8A000, 0xC8AFFF, "WTE Limited", "WTE" }, { 0x70B3D5, 0xC8B000, 0xC8BFFF, "Asia Pacific Satellite Coummunication Inc.", "ASIA-PACIFIC-SATELLITE-COUMMUNICATION" }, { 0x70B3D5, 0xC8C000, 0xC8CFFF, "Rollogo Limited", "ROLLOGO" }, { 0x70B3D5, 0xC8D000, 0xC8DFFF, "KST technology", "KST" }, { 0x70B3D5, 0xC8E000, 0xC8EFFF, "Coral Telecom Limited", "CORAL-TELECOM" }, { 0x70B3D5, 0xC8F000, 0xC8FFFF, "TRIDENT INFOSOL PVT LTD", "TRIDENT-INFOSOL-PVT" }, { 0x70B3D5, 0xC90000, 0xC90FFF, "Diretta", "DIRETTA" }, { 0x70B3D5, 0xC91000, 0xC91FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x70B3D5, 0xC92000, 0xC92FFF, "Unitro Fleischmann", "UNITRO-FLEISCHMANN" }, { 0x70B3D5, 0xC93000, 0xC93FFF, "GMI Ltd", "GMI" }, { 0x70B3D5, 0xC94000, 0xC94FFF, "Vars Technology", "VARS" }, { 0x70B3D5, 0xC95000, 0xC95FFF, "Chengdu Meihuan Technology Co., Ltd", "CHENGDU-MEIHUAN" }, { 0x70B3D5, 0xC96000, 0xC96FFF, "UNI DIMENXI SDN BHD", "UNI-DIMENXI" }, { 0x70B3D5, 0xC97000, 0xC97FFF, "CSINFOTEL", "CSINFOTEL" }, { 0x70B3D5, 0xC98000, 0xC98FFF, "Trust Automation", "TRUST-AUTOMATION" }, { 0x70B3D5, 0xC99000, 0xC99FFF, "Remote Diagnostic Technologies Ltd", "REMOTE-DIAGNOSTIC-TECHNOLOGIES" }, { 0x70B3D5, 0xC9A000, 0xC9AFFF, "Todd Digital Limited", "TODD-DIGITAL" }, { 0x70B3D5, 0xC9B000, 0xC9BFFF, "Tieto Sweden AB", "TIETO-SWEDEN-AB" }, { 0x70B3D5, 0xC9C000, 0xC9CFFF, "Connected Response", "CONNECTED-RESPONSE" }, { 0x70B3D5, 0xC9D000, 0xC9DFFF, "APG Cash Drawer, LLC", "APG-CASH-DRAWER" }, { 0x70B3D5, 0xC9E000, 0xC9EFFF, "FUKUDA SANGYO CO., LTD.", "FUKUDA-SANGYO" }, { 0x70B3D5, 0xC9F000, 0xC9FFFF, "Triax A/S", "TRIAX-A/S" }, { 0x70B3D5, 0xCA0000, 0xCA0FFF, "Xirgo Technologies LLC", "XIRGO-TECHNOLOGIES" }, { 0x70B3D5, 0xCA1000, 0xCA1FFF, "Waldo System", "WALDO-SYSTEM" }, { 0x70B3D5, 0xCA2000, 0xCA2FFF, "De Haardt bv", "DE-HAARDT" }, { 0x70B3D5, 0xCA3000, 0xCA3FFF, "Saankhya Labs Private Limited", "SAANKHYA-LABS-PRIVATE" }, { 0x70B3D5, 0xCA4000, 0xCA4FFF, "Netemera Sp. z o.o.", "NETEMERA-SP-Z-O-O" }, { 0x70B3D5, 0xCA5000, 0xCA5FFF, "PTS Technologies Pte Ltd", "PTS-TECHNOLOGIES-PTE" }, { 0x70B3D5, 0xCA6000, 0xCA6FFF, "AXING AG", "AXING" }, { 0x70B3D5, 0xCA7000, 0xCA7FFF, "i-View Communication Inc.", "I-VIEW-COMMUNICATION" }, { 0x70B3D5, 0xCA8000, 0xCA8FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x70B3D5, 0xCA9000, 0xCA9FFF, "Nxcontrol system Co., Ltd.", "NXCONTROL-SYSTEM" }, { 0x70B3D5, 0xCAA000, 0xCAAFFF, "Bel Power Solutions GmbH", "BEL-POWER-SOLUTIONS" }, { 0x70B3D5, 0xCAB000, 0xCABFFF, "NOTICE Co., Ltd.", "NOTICE" }, { 0x70B3D5, 0xCAC000, 0xCACFFF, "CRDE", "CRDE" }, { 0x70B3D5, 0xCAD000, 0xCADFFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0xCAE000, 0xCAEFFF, "THEMA", "THEMA" }, { 0x70B3D5, 0xCAF000, 0xCAFFFF, "DAVE SRL", "DAVE-SRL" }, { 0x70B3D5, 0xCB0000, 0xCB0FFF, "Ossiaco", "OSSIACO" }, { 0x70B3D5, 0xCB1000, 0xCB1FFF, "RADAR", "RADAR" }, { 0x70B3D5, 0xCB2000, 0xCB2FFF, "SECLAB", "SECLAB" }, { 0x70B3D5, 0xCB3000, 0xCB3FFF, "KST technology", "KST" }, { 0x70B3D5, 0xCB4000, 0xCB4FFF, "Planewave Instruments", "PLANEWAVE-INSTRUMENTS" }, { 0x70B3D5, 0xCB5000, 0xCB5FFF, "Atlas Lighting Products", "ATLAS-LIGHTING-PRODUCTS" }, { 0x70B3D5, 0xCB6000, 0xCB6FFF, "Kuebrich Ingeniergesellschaft mbh & Co. KG", "KUEBRICH-INGENIERGESELLSCHAFT" }, { 0x70B3D5, 0xCB7000, 0xCB7FFF, "HKC Security Ltd.", "HKC-SECURITY" }, { 0x70B3D5, 0xCB8000, 0xCB8FFF, "Verti Tecnologia", "VERTI-TECNOLOGIA" }, { 0x70B3D5, 0xCB9000, 0xCB9FFF, "JSC «SATIS-TL-94»", "JSC-SATIS-TL-94" }, { 0x70B3D5, 0xCBA000, 0xCBAFFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0xCBB000, 0xCBBFFF, "Postmark Incorporated", "POSTMARK-INCORPORATED" }, { 0x70B3D5, 0xCBC000, 0xCBCFFF, "Procon Electronics Pty Ltd", "PROCON-ELECTRONICS-PTY" }, { 0x70B3D5, 0xCBD000, 0xCBDFFF, "PREO INDUSTRIES FAR EAST LTD", "PREO-INDUSTRIES-FAR-EAST" }, { 0x70B3D5, 0xCBE000, 0xCBEFFF, "Ensura Solutions BV", "ENSURA-SOLUTIONS" }, { 0x70B3D5, 0xCBF000, 0xCBFFFF, "Cubic ITS, Inc. dba GRIDSMART Technologies", "CUBIC-ITS-DBA-GRIDSMART-TECHNOLOGIES" }, { 0x70B3D5, 0xCC0000, 0xCC0FFF, "Avionica", "AVIONICA" }, { 0x70B3D5, 0xCC1000, 0xCC1FFF, "BEEcube Inc.", "BEECUBE" }, { 0x70B3D5, 0xCC2000, 0xCC2FFF, "LSC Lighting Systems (Aust) Pty Ltd", "LSC-LIGHTING-AUST-PTY" }, { 0x70B3D5, 0xCC3000, 0xCC3FFF, "Fidalia Networks Inc", "FIDALIA-NETWORKS" }, { 0x70B3D5, 0xCC4000, 0xCC4FFF, "Benchmark Electronics BV", "BENCHMARK-ELECTRONICS" }, { 0x70B3D5, 0xCC5000, 0xCC5FFF, "Intecom", "INTECOM" }, { 0x70B3D5, 0xCC6000, 0xCC6FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0xCC7000, 0xCC7FFF, "SOtM", "SOTM" }, { 0x70B3D5, 0xCC8000, 0xCC8FFF, "PROFEN COMMUNICATIONS", "PROFEN-COMMUNICATION" }, { 0x70B3D5, 0xCC9000, 0xCC9FFF, "Rapiscan Systems", "RAPISCAN" }, { 0x70B3D5, 0xCCA000, 0xCCAFFF, "SIEMENS AS", "SIEMENS-AS" }, { 0x70B3D5, 0xCCB000, 0xCCBFFF, "RealD, Inc.", "REALD" }, { 0x70B3D5, 0xCCC000, 0xCCCFFF, "AEC s.r.l.", "AEC" }, { 0x70B3D5, 0xCCD000, 0xCCDFFF, "Suzhou PowerCore Technology Co.,Ltd.", "SUZHOU-POWERCORE" }, { 0x70B3D5, 0xCCE000, 0xCCEFFF, "Proconex 2010 Inc.", "PROCONEX-2010" }, { 0x70B3D5, 0xCCF000, 0xCCFFFF, "Netberg", "NETBERG" }, { 0x70B3D5, 0xCD0000, 0xCD0FFF, "Ellenex Pty Ltd", "ELLENEX-PTY" }, { 0x70B3D5, 0xCD1000, 0xCD1FFF, "Cannex Technology Inc.", "CANNEX" }, { 0x70B3D5, 0xCD2000, 0xCD2FFF, "TRUMPF Huttinger GmbH + Co. KG,", "TRUMPF-HUTTINGER" }, { 0x70B3D5, 0xCD3000, 0xCD3FFF, "Controlrad", "CONTROLRAD" }, { 0x70B3D5, 0xCD4000, 0xCD4FFF, "Southern Ground Audio LLC", "SOUTHERN-GROUND-AUDIO" }, { 0x70B3D5, 0xCD5000, 0xCD5FFF, "Apantac LLC", "APANTAC" }, { 0x70B3D5, 0xCD6000, 0xCD6FFF, "VideoRay LLC", "VIDEORAY" }, { 0x70B3D5, 0xCD7000, 0xCD7FFF, "AutomationX GmbH", "AUTOMATIONX" }, { 0x70B3D5, 0xCD8000, 0xCD8FFF, "Nexus Electric S.A.", "NEXUS-ELECTRIC" }, { 0x70B3D5, 0xCD9000, 0xCD9FFF, "Peter Huber Kaeltemaschinenbau GmbH", "PETER-HUBER-KAELTEMASCHINENBAU" }, { 0x70B3D5, 0xCDA000, 0xCDAFFF, "VITEC", "VITEC" }, { 0x70B3D5, 0xCDB000, 0xCDBFFF, "Wuhan Xingtuxinke ELectronic Co.,Ltd", "WUHAN-XINGTUXINKE" }, { 0x70B3D5, 0xCDC000, 0xCDCFFF, "Dat-Con d.o.o.", "DAT-CON-D-O-O" }, { 0x70B3D5, 0xCDD000, 0xCDDFFF, "Teneo IoT B.V.", "TENEO-IOT-B-V" }, { 0x70B3D5, 0xCDE000, 0xCDEFFF, "Multipure International", "MULTIPURE" }, { 0x70B3D5, 0xCDF000, 0xCDFFFF, "3D Printing Specialists", "3D-PRINTING-SPECIALISTS" }, { 0x70B3D5, 0xCE0000, 0xCE0FFF, "M.S. CONTROL", "M-S-CONTROL" }, { 0x70B3D5, 0xCE1000, 0xCE1FFF, "EA Elektroautomatik GmbH & Co. KG", "EA-ELEKTROAUTOMATIK" }, { 0x70B3D5, 0xCE2000, 0xCE2FFF, "Centero", "CENTERO" }, { 0x70B3D5, 0xCE3000, 0xCE3FFF, "Dalcnet srl", "DALCNET-SRL" }, { 0x70B3D5, 0xCE4000, 0xCE4FFF, "WAVES SYSTEM", "WAVES-SYSTEM" }, { 0x70B3D5, 0xCE5000, 0xCE5FFF, "GridBridge Inc", "GRIDBRIDGE" }, { 0x70B3D5, 0xCE6000, 0xCE6FFF, "Dynim Oy", "DYNIM-OY" }, { 0x70B3D5, 0xCE7000, 0xCE7FFF, "June Automation Singapore Pte. Ltd.", "JUNE-AUTOMATION-SINGAPORE-PTE" }, { 0x70B3D5, 0xCE8000, 0xCE8FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x70B3D5, 0xCE9000, 0xCE9FFF, "KINEMETRICS", "KINEMETRICS" }, { 0x70B3D5, 0xCEA000, 0xCEAFFF, "Computerwise, Inc.", "COMPUTERWISE" }, { 0x70B3D5, 0xCEB000, 0xCEBFFF, "Xirgo Technologies LLC", "XIRGO-TECHNOLOGIES" }, { 0x70B3D5, 0xCEC000, 0xCECFFF, "Deltronic Security AB", "DELTRONIC-SECURITY-AB" }, { 0x70B3D5, 0xCED000, 0xCEDFFF, "Advanced Products Corporation Pte Ltd", "ADVANCED-PRODUCTS-PTE" }, { 0x70B3D5, 0xCEE000, 0xCEEFFF, "ACRIOS Systems s.r.o.", "ACRIOS-S-R-O" }, { 0x70B3D5, 0xCEF000, 0xCEFFFF, "Ellego Powertec Oy", "ELLEGO-POWERTEC-OY" }, { 0x70B3D5, 0xCF0000, 0xCF0FFF, "SHENZHEN WITLINK CO.,LTD.", "SHENZHEN-WITLINK" }, { 0x70B3D5, 0xCF1000, 0xCF1FFF, "LightDec GmbH & Co. KG", "LIGHTDEC" }, { 0x70B3D5, 0xCF2000, 0xCF2FFF, "tinnos", "TINNOS" }, { 0x70B3D5, 0xCF3000, 0xCF3FFF, "Mesh Motion Inc", "MESH-MOTION" }, { 0x70B3D5, 0xCF4000, 0xCF4FFF, "Harbin Cheng Tian Technology Development Co., Ltd.", "HARBIN-CHENG-TIAN-DEVELOPMENT" }, { 0x70B3D5, 0xCF5000, 0xCF5FFF, "Petring Energietechnik GmbH", "PETRING-ENERGIETECHNIK" }, { 0x70B3D5, 0xCF6000, 0xCF6FFF, "Tornado Modular Systems", "TORNADO-MODULAR" }, { 0x70B3D5, 0xCF7000, 0xCF7FFF, "GENTEC ELECTRO-OPTICS", "GENTEC-ELECTRO-OPTICS" }, { 0x70B3D5, 0xCF8000, 0xCF8FFF, "Idneo Technologies S.A.U.", "IDNEO-TECHNOLOGIES-U" }, { 0x70B3D5, 0xCF9000, 0xCF9FFF, "Breas Medical AB", "BREAS-MEDICAL-AB" }, { 0x70B3D5, 0xCFA000, 0xCFAFFF, "SCHEIBER", "SCHEIBER" }, { 0x70B3D5, 0xCFB000, 0xCFBFFF, "Screen Innovations", "SCREEN-INNOVATIONS" }, { 0x70B3D5, 0xCFC000, 0xCFCFFF, "VEILUX INC.", "VEILUX" }, { 0x70B3D5, 0xCFD000, 0xCFDFFF, "iLOQ Oy", "ILOQ-OY" }, { 0x70B3D5, 0xCFE000, 0xCFEFFF, "Secturion Systems", "SECTURION" }, { 0x70B3D5, 0xCFF000, 0xCFFFFF, "DTECH Labs, Inc.", "DTECH-LABS" }, { 0x70B3D5, 0xD00000, 0xD00FFF, "DKI Technology Co., Ltd", "DKI" }, { 0x70B3D5, 0xD01000, 0xD01FFF, "Vision4ce Ltd", "VISION4CE" }, { 0x70B3D5, 0xD02000, 0xD02FFF, "Arctos Showlasertechnik GmbH", "ARCTOS-SHOWLASERTECHNIK" }, { 0x70B3D5, 0xD03000, 0xD03FFF, "Digitella Inc.", "DIGITELLA" }, { 0x70B3D5, 0xD04000, 0xD04FFF, "Plenty Unlimited Inc", "PLENTY-UNLIMITED" }, { 0x70B3D5, 0xD05000, 0xD05FFF, "Colmek", "COLMEK" }, { 0x70B3D5, 0xD06000, 0xD06FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0xD07000, 0xD07FFF, "Waversa Systems", "WAVERSA" }, { 0x70B3D5, 0xD08000, 0xD08FFF, "Veeco Instruments", "VEECO-INSTRUMENTS" }, { 0x70B3D5, 0xD09000, 0xD09FFF, "Rishaad Brown", "RISHAAD-BROWN" }, { 0x70B3D5, 0xD0A000, 0xD0AFFF, "Private", "PRIVATE" }, { 0x70B3D5, 0xD0B000, 0xD0BFFF, "Vendanor AS", "VENDANOR-AS" }, { 0x70B3D5, 0xD0C000, 0xD0CFFF, "Connor Winfield LTD", "CONNOR-WINFIELD" }, { 0x70B3D5, 0xD0D000, 0xD0DFFF, "Logiwaste AB", "LOGIWASTE-AB" }, { 0x70B3D5, 0xD0E000, 0xD0EFFF, "Beijing Aumiwalker technology CO.,LTD", "BEIJING-AUMIWALKER" }, { 0x70B3D5, 0xD0F000, 0xD0FFFF, "Alto Aviation", "ALTO-AVIATION" }, { 0x70B3D5, 0xD10000, 0xD10FFF, "Contec Americas Inc.", "CONTEC-AMERICAS" }, { 0x70B3D5, 0xD11000, 0xD11FFF, "EREE Electronique", "EREE-ELECTRONIQUE" }, { 0x70B3D5, 0xD12000, 0xD12FFF, "FIDELTRONIK POLAND SP. Z O.O.", "FIDELTRONIK-POLAND-SP-Z-O-O" }, { 0x70B3D5, 0xD13000, 0xD13FFF, "IRT Technologies", "IRT-TECHNOLOGIES" }, { 0x70B3D5, 0xD14000, 0xD14FFF, "LIGPT", "LIGPT" }, { 0x70B3D5, 0xD15000, 0xD15FFF, "3DGence sp. z o.o.", "3DGENCE-SP-Z-O-O" }, { 0x70B3D5, 0xD16000, 0xD16FFF, "Monnit Corporation", "MONNIT" }, { 0x70B3D5, 0xD17000, 0xD17FFF, "Power Element", "POWER-ELEMENT" }, { 0x70B3D5, 0xD18000, 0xD18FFF, "MetCom Solutions GmbH", "METCOM-SOLUTIONS" }, { 0x70B3D5, 0xD19000, 0xD19FFF, "Senior Group LLC", "SENIOR-GROUP" }, { 0x70B3D5, 0xD1A000, 0xD1AFFF, "Monnit Corporation", "MONNIT" }, { 0x70B3D5, 0xD1B000, 0xD1BFFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x70B3D5, 0xD1C000, 0xD1CFFF, "Specialised Imaging Limited", "SPECIALISED-IMAGING" }, { 0x70B3D5, 0xD1D000, 0xD1DFFF, "Stuyts Engineering Haarlem BV", "STUYTS-ENGINEERING-HAARLEM" }, { 0x70B3D5, 0xD1E000, 0xD1EFFF, "Houston Radar LLC", "HOUSTON-RADAR" }, { 0x70B3D5, 0xD1F000, 0xD1FFFF, "Embsec AB", "EMBSEC-AB" }, { 0x70B3D5, 0xD20000, 0xD20FFF, "Rheonics GmbH", "RHEONICS" }, { 0x70B3D5, 0xD21000, 0xD21FFF, "biosilver .co.,ltd", "BIOSILVER" }, { 0x70B3D5, 0xD22000, 0xD22FFF, "DEK Technologies", "DEK-TECHNOLOGIES" }, { 0x70B3D5, 0xD23000, 0xD23FFF, "COTT Electronics", "COTT-ELECTRONICS" }, { 0x70B3D5, 0xD24000, 0xD24FFF, "Microtronics Engineering GmbH", "MICROTRONICS-ENGINEERING" }, { 0x70B3D5, 0xD25000, 0xD25FFF, "ENGenesis", "ENGENESIS" }, { 0x70B3D5, 0xD26000, 0xD26FFF, "MI Inc.", "MI" }, { 0x70B3D5, 0xD27000, 0xD27FFF, "Light field Lab", "LIGHT-FIELD-LAB" }, { 0x70B3D5, 0xD28000, 0xD28FFF, "Toshiba Electron Tubes & Devices Co., Ltd.", "TOSHIBA-ELECTRON-TUBES-DEVICES" }, { 0x70B3D5, 0xD29000, 0xD29FFF, "Sportzcast", "SPORTZCAST" }, { 0x70B3D5, 0xD2A000, 0xD2AFFF, "ITsynergy Ltd", "ITSYNERGY" }, { 0x70B3D5, 0xD2B000, 0xD2BFFF, "StreamPlay Oy Ltd", "STREAMPLAY-OY" }, { 0x70B3D5, 0xD2C000, 0xD2CFFF, "microWerk GmbH", "MICROWERK" }, { 0x70B3D5, 0xD2D000, 0xD2DFFF, "Evolute Systems Private Limited", "EVOLUTE-PRIVATE" }, { 0x70B3D5, 0xD2E000, 0xD2EFFF, "Coheros Oy", "COHEROS-OY" }, { 0x70B3D5, 0xD2F000, 0xD2FFFF, "L.I.F.E. Corporation SA", "L-I-F-E" }, { 0x70B3D5, 0xD30000, 0xD30FFF, "Leica Microsystems Ltd. Shanghai", "LEICA-MICROSYSTEMS-SHANGHAI" }, { 0x70B3D5, 0xD31000, 0xD31FFF, "Solace Systems Inc.", "SOLACE" }, { 0x70B3D5, 0xD32000, 0xD32FFF, "Euklis by GSG International", "EUKLIS-BY-GSG" }, { 0x70B3D5, 0xD33000, 0xD33FFF, "VECTOR.CO.,LTD.", "VECTOR" }, { 0x70B3D5, 0xD34000, 0xD34FFF, "G-PHILOS CO.,LTD", "G-PHILOS" }, { 0x70B3D5, 0xD35000, 0xD35FFF, "King-On Technology Ltd.", "KING-ON" }, { 0x70B3D5, 0xD36000, 0xD36FFF, "Insitu Inc.", "INSITU" }, { 0x70B3D5, 0xD37000, 0xD37FFF, "Sicon srl", "SICON-SRL" }, { 0x70B3D5, 0xD38000, 0xD38FFF, "Vista Research, Inc.", "VISTA-RESEARCH" }, { 0x70B3D5, 0xD39000, 0xD39FFF, "ASHIDA Electronics Pvt. Ltd", "ASHIDA-ELECTRONICS-PVT" }, { 0x70B3D5, 0xD3A000, 0xD3AFFF, "PROMOMED RUS LLC", "PROMOMED-RUS" }, { 0x70B3D5, 0xD3B000, 0xD3BFFF, "NimbeLink Corp", "NIMBELINK" }, { 0x70B3D5, 0xD3C000, 0xD3CFFF, "HRT", "HRT" }, { 0x70B3D5, 0xD3D000, 0xD3DFFF, "Netzikon GmbH", "NETZIKON" }, { 0x70B3D5, 0xD3E000, 0xD3EFFF, "enders GmbH", "ENDERS" }, { 0x70B3D5, 0xD3F000, 0xD3FFFF, "GLOBALCOM ENGINEERING SPA", "GLOBALCOM-ENGINEERING-SPA" }, { 0x70B3D5, 0xD40000, 0xD40FFF, "CRDE", "CRDE" }, { 0x70B3D5, 0xD41000, 0xD41FFF, "KSE GmbH", "KSE" }, { 0x70B3D5, 0xD42000, 0xD42FFF, "DSP DESIGN", "DSP-DESIGN" }, { 0x70B3D5, 0xD43000, 0xD43FFF, "EZSYS Co., Ltd.", "EZSYS" }, { 0x70B3D5, 0xD44000, 0xD44FFF, "ic-automation GmbH", "IC-AUTOMATION" }, { 0x70B3D5, 0xD45000, 0xD45FFF, "Vemco Sp. z o. o.", "VEMCO-SP-Z-O-O" }, { 0x70B3D5, 0xD46000, 0xD46FFF, "Contineo s.r.o.", "CONTINEO-S-R-O" }, { 0x70B3D5, 0xD47000, 0xD47FFF, "YotaScope Technologies Co., Ltd.", "YOTASCOPE-TECHNOLOGIES" }, { 0x70B3D5, 0xD48000, 0xD48FFF, "HEADROOM Broadcast GmbH", "HEADROOM-BROADCAST" }, { 0x70B3D5, 0xD49000, 0xD49FFF, "Sicon srl", "SICON-SRL" }, { 0x70B3D5, 0xD4A000, 0xD4AFFF, "OÜ ELIKO Tehnoloogia Arenduskeskus", "OUE-ELIKO-TEHNOLOOGIA-ARENDUSKESKUS" }, { 0x70B3D5, 0xD4B000, 0xD4BFFF, "Hermann Lümmen GmbH", "HERMANN-LUEMMEN" }, { 0x70B3D5, 0xD4C000, 0xD4CFFF, "Elystec Technology Co., Ltd", "ELYSTEC" }, { 0x70B3D5, 0xD4D000, 0xD4DFFF, "The Morey Corporation", "THE-MOREY" }, { 0x70B3D5, 0xD4E000, 0xD4EFFF, "FLSmidth", "FLSMIDTH" }, { 0x70B3D5, 0xD4F000, 0xD4FFFF, "C-COM Satellite Systems Inc.", "C-COM-SATELLITE" }, { 0x70B3D5, 0xD50000, 0xD50FFF, "Cubic ITS, Inc. dba GRIDSMART Technologies", "CUBIC-ITS-DBA-GRIDSMART-TECHNOLOGIES" }, { 0x70B3D5, 0xD51000, 0xD51FFF, "Azcom Technology S.r.l.", "AZCOM" }, { 0x70B3D5, 0xD52000, 0xD52FFF, "Sensoronic Co.,Ltd", "SENSORONIC" }, { 0x70B3D5, 0xD53000, 0xD53FFF, "BeiLi eTek (Zhangjiagang) Co., Ltd.", "BEILI-ETEK-ZHANGJIAGANG" }, { 0x70B3D5, 0xD54000, 0xD54FFF, "JL World Corporation Limited", "JL-WORLD" }, { 0x70B3D5, 0xD55000, 0xD55FFF, "WM Design s.r.o", "WM-DESIGN-S-R-O" }, { 0x70B3D5, 0xD56000, 0xD56FFF, "KRONOTECH SRL", "KRONOTECH-SRL" }, { 0x70B3D5, 0xD57000, 0xD57FFF, "TRIUMPH BOARD a.s.", "TRIUMPH-BOARD" }, { 0x70B3D5, 0xD58000, 0xD58FFF, "Idyllic Engineering Pte Ltd", "IDYLLIC-ENGINEERING-PTE" }, { 0x70B3D5, 0xD59000, 0xD59FFF, "WyreStorm Technologies Ltd", "WYRESTORM-TECHNOLOGIES" }, { 0x70B3D5, 0xD5A000, 0xD5AFFF, "WyreStorm Technologies Ltd", "WYRESTORM-TECHNOLOGIES" }, { 0x70B3D5, 0xD5B000, 0xD5BFFF, "WyreStorm Technologies Ltd", "WYRESTORM-TECHNOLOGIES" }, { 0x70B3D5, 0xD5C000, 0xD5CFFF, "Critical Link LLC", "CRITICAL-LINK" }, { 0x70B3D5, 0xD5D000, 0xD5DFFF, "SEASONS 4 INC", "SEASONS-4" }, { 0x70B3D5, 0xD5E000, 0xD5EFFF, "Barcelona Smart Technologies", "BARCELONA-SMART-TECHNOLOGIES" }, { 0x70B3D5, 0xD5F000, 0xD5FFFF, "Core Balance Co., Ltd.", "CORE-BALANCE" }, { 0x70B3D5, 0xD60000, 0xD60FFF, "Flintab AB", "FLINTAB-AB" }, { 0x70B3D5, 0xD61000, 0xD61FFF, "VITEC", "VITEC" }, { 0x70B3D5, 0xD62000, 0xD62FFF, "Andasis Elektronik San. ve Tic. A.Ş.", "ANDASIS-ELEKTRONIK-SAN-VE-TIC-A" }, { 0x70B3D5, 0xD63000, 0xD63FFF, "CRDE", "CRDE" }, { 0x70B3D5, 0xD64000, 0xD64FFF, "Mettler Toledo", "METTLER-TOLEDO" }, { 0x70B3D5, 0xD65000, 0xD65FFF, "CRDE", "CRDE" }, { 0x70B3D5, 0xD66000, 0xD66FFF, "Ascendent Technology Group", "ASCENDENT-GROUP" }, { 0x70B3D5, 0xD67000, 0xD67FFF, "ALPHA Corporation", "ALPHA" }, { 0x70B3D5, 0xD68000, 0xD68FFF, "Tobi Tribe Inc.", "TOBI-TRIBE" }, { 0x70B3D5, 0xD69000, 0xD69FFF, "Thermo Fisher Scientific", "THERMO-FISHER-SCIENTIFIC" }, { 0x70B3D5, 0xD6A000, 0xD6AFFF, "KnowRoaming", "KNOWROAMING" }, { 0x70B3D5, 0xD6B000, 0xD6BFFF, "Uwinloc", "UWINLOC" }, { 0x70B3D5, 0xD6C000, 0xD6CFFF, "GP Systems GmbH", "GP" }, { 0x70B3D5, 0xD6D000, 0xD6DFFF, "ACD Elekronik GmbH", "ACD-ELEKRONIK" }, { 0x70B3D5, 0xD6E000, 0xD6EFFF, "ard sa", "ARD" }, { 0x70B3D5, 0xD6F000, 0xD6FFFF, "X-SPEX GmbH", "X-SPEX" }, { 0x70B3D5, 0xD70000, 0xD70FFF, "Rational Production srl Unipersonale", "RATIONAL-PRODUCTION-SRL-UNIPERSONALE" }, { 0x70B3D5, 0xD71000, 0xD71FFF, "RZB Rudolf Zimmermann, Bamberg GmbH", "RZB-RUDOLF-ZIMMERMANN-BAMBERG" }, { 0x70B3D5, 0xD72000, 0xD72FFF, "OnYield Inc Ltd", "ONYIELD" }, { 0x70B3D5, 0xD73000, 0xD73FFF, "ERMINE Corporation", "ERMINE" }, { 0x70B3D5, 0xD74000, 0xD74FFF, "Sandia National Laboratories", "SANDIA-NATIONAL-LABORATORIES" }, { 0x70B3D5, 0xD75000, 0xD75FFF, "Hyundai MNSOFT", "HYUNDAI-MNSOFT" }, { 0x70B3D5, 0xD76000, 0xD76FFF, "attocube systems AG", "ATTOCUBE" }, { 0x70B3D5, 0xD77000, 0xD77FFF, "Portrait Displays, Inc.", "PORTRAIT-DISPLAYS" }, { 0x70B3D5, 0xD78000, 0xD78FFF, "Nxvi Microelectronics Technology (Jinan) Co., Ltd.", "NXVI-MICROELECTRONICS-JINAN" }, { 0x70B3D5, 0xD79000, 0xD79FFF, "GOMA ELETTRONICA SpA", "GOMA-ELETTRONICA-SPA" }, { 0x70B3D5, 0xD7A000, 0xD7AFFF, "Speedifi Inc", "SPEEDIFI" }, { 0x70B3D5, 0xD7B000, 0xD7BFFF, "Peter Huber Kaeltemaschinenbau AG", "PETER-HUBER-KAELTEMASCHINENBAU" }, { 0x70B3D5, 0xD7C000, 0xD7CFFF, "D.T.S Illuminazione Srl", "D-T-S-ILLUMINAZIONE-SRL" }, { 0x70B3D5, 0xD7D000, 0xD7DFFF, "BESO sp. z o.o.", "BESO-SP-Z-O-O" }, { 0x70B3D5, 0xD7E000, 0xD7EFFF, "Triax A/S", "TRIAX-A/S" }, { 0x70B3D5, 0xD7F000, 0xD7FFFF, "ConectaIP Tecnologia S.L.", "CONECTAIP-TECNOLOGIA" }, { 0x70B3D5, 0xD80000, 0xD80FFF, "AMMT GmbH", "AMMT" }, { 0x70B3D5, 0xD81000, 0xD81FFF, "PDD Group Ltd", "PDD-GROUP" }, { 0x70B3D5, 0xD82000, 0xD82FFF, "SUN ELECTRONICS CO.,LTD.", "SUN-ELECTRONICS" }, { 0x70B3D5, 0xD83000, 0xD83FFF, "AKASAKATEC INC.", "AKASAKATEC" }, { 0x70B3D5, 0xD84000, 0xD84FFF, "Sentry360", "SENTRY360" }, { 0x70B3D5, 0xD85000, 0xD85FFF, "BTG Instruments AB", "BTG-INSTRUMENTS-AB" }, { 0x70B3D5, 0xD86000, 0xD86FFF, "WPGSYS Pte Ltd", "WPGSYS-PTE" }, { 0x70B3D5, 0xD87000, 0xD87FFF, "Zigen Corp", "ZIGEN" }, { 0x70B3D5, 0xD88000, 0xD88FFF, "Nidec asi spa", "NIDEC-ASI-SPA" }, { 0x70B3D5, 0xD89000, 0xD89FFF, "Resolution Systems", "RESOLUTION" }, { 0x70B3D5, 0xD8A000, 0xD8AFFF, "JIANGSU HORAINTEL CO.,LTD", "JIANGSU-HORAINTEL" }, { 0x70B3D5, 0xD8B000, 0xD8BFFF, "Lenoxi Automation s.r.o.", "LENOXI-AUTOMATION-S-R-O" }, { 0x70B3D5, 0xD8C000, 0xD8CFFF, "Damerell Design Limited (DCL)", "DAMERELL-DESIGN-DCL" }, { 0x70B3D5, 0xD8D000, 0xD8DFFF, "Pullnet Technology,S.L.", "PULLNET" }, { 0x70B3D5, 0xD8E000, 0xD8EFFF, "Axatel SrL", "AXATEL-SRL" }, { 0x70B3D5, 0xD8F000, 0xD8FFFF, "Molu Technology Inc., LTD.", "MOLU" }, { 0x70B3D5, 0xD90000, 0xD90FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0xD91000, 0xD91FFF, "FoodALYT GmbH", "FOODALYT" }, { 0x70B3D5, 0xD92000, 0xD92FFF, "Zamir Recognition Systems Ltd.", "ZAMIR-RECOGNITION" }, { 0x70B3D5, 0xD93000, 0xD93FFF, "PAMIR Inc", "PAMIR" }, { 0x70B3D5, 0xD94000, 0xD94FFF, "Dewetron GmbH", "DEWETRON" }, { 0x70B3D5, 0xD95000, 0xD95FFF, "SANO SERVICE Co.,Ltd", "SANO-SERVICE" }, { 0x70B3D5, 0xD96000, 0xD96FFF, "Thermo Fisher Scientific Inc.", "THERMO-FISHER-SCIENTIFIC" }, { 0x70B3D5, 0xD97000, 0xD97FFF, "BRS Sistemas Eletrônicos", "BRS-SISTEMAS-ELETRNICOS" }, { 0x70B3D5, 0xD98000, 0xD98FFF, "ACD Elekronik GmbH", "ACD-ELEKRONIK" }, { 0x70B3D5, 0xD99000, 0xD99FFF, "Nilar AB", "NILAR-AB" }, { 0x70B3D5, 0xD9A000, 0xD9AFFF, "Wuhan Xingtuxinke ELectronic Co.,Ltd", "WUHAN-XINGTUXINKE" }, { 0x70B3D5, 0xD9B000, 0xD9BFFF, "Russian Telecom Equipment Company", "RUSSIAN-TELECOM-EQUIPMENT-COMPANY" }, { 0x70B3D5, 0xD9C000, 0xD9CFFF, "Subinitial LLC", "SUBINITIAL" }, { 0x70B3D5, 0xD9D000, 0xD9DFFF, "Electroimpact, Inc.", "ELECTROIMPACT" }, { 0x70B3D5, 0xD9E000, 0xD9EFFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x70B3D5, 0xD9F000, 0xD9FFFF, "Digital Solutions JSC", "DIGITAL-SOLUTIONS-JSC" }, { 0x70B3D5, 0xDA0000, 0xDA0FFF, "Jiangsu Etern Compamy Limited", "JIANGSU-ETERN-COMPAMY" }, { 0x70B3D5, 0xDA1000, 0xDA1FFF, "Qprel srl", "QPREL-SRL" }, { 0x70B3D5, 0xDA2000, 0xDA2FFF, "ACD Elekronik GmbH", "ACD-ELEKRONIK" }, { 0x70B3D5, 0xDA3000, 0xDA3FFF, "Voleatech GmbH", "VOLEATECH" }, { 0x70B3D5, 0xDA4000, 0xDA4FFF, "CRDE", "CRDE" }, { 0x70B3D5, 0xDA5000, 0xDA5FFF, "Roboteq", "ROBOTEQ" }, { 0x70B3D5, 0xDA6000, 0xDA6FFF, "Redfish Group Pty Ltd", "REDFISH-GROUP-PTY" }, { 0x70B3D5, 0xDA7000, 0xDA7FFF, "Network Innovations", "NETWORK-INNOVATIONS" }, { 0x70B3D5, 0xDA8000, 0xDA8FFF, "Tagarno AS", "TAGARNO-AS" }, { 0x70B3D5, 0xDA9000, 0xDA9FFF, "RCH Vietnam Limited Liability Company", "RCH-VIETNAM-LIABILITY-COMPANY" }, { 0x70B3D5, 0xDAA000, 0xDAAFFF, "AmTote Australasia", "AMTOTE-AUSTRALASIA" }, { 0x70B3D5, 0xDAB000, 0xDABFFF, "SET Power Systems GmbH", "SET-POWER" }, { 0x70B3D5, 0xDAC000, 0xDACFFF, "Dalian Laike Technology Development Co., Ltd", "DALIAN-LAIKE-DEVELOPMENT" }, { 0x70B3D5, 0xDAD000, 0xDADFFF, "GD Mission Systems", "GD-MISSION" }, { 0x70B3D5, 0xDAE000, 0xDAEFFF, "LGE", "LGE" }, { 0x70B3D5, 0xDAF000, 0xDAFFFF, "INNOVATIVE CONCEPTS AND DESIGN LLC", "INNOVATIVE-CONCEPTS-AND-DESIGN" }, { 0x70B3D5, 0xDB0000, 0xDB0FFF, "Arnouse Digital Devices Corp", "ARNOUSE-DIGITAL-DEVICES" }, { 0x70B3D5, 0xDB1000, 0xDB1FFF, "Biovigil Hygiene Technologies", "BIOVIGIL-HYGIENE-TECHNOLOGIES" }, { 0x70B3D5, 0xDB2000, 0xDB2FFF, "Micro Electroninc Products", "MICRO-ELECTRONINC-PRODUCTS" }, { 0x70B3D5, 0xDB3000, 0xDB3FFF, "Klaxoon", "KLAXOON" }, { 0x70B3D5, 0xDB4000, 0xDB4FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0xDB5000, 0xDB5FFF, "Xiamen Point Circle Technologh Co,ltd", "XIAMEN-POINT-CIRCLE-TECHNOLOGH" }, { 0x70B3D5, 0xDB6000, 0xDB6FFF, "csintech", "CSINTECH" }, { 0x70B3D5, 0xDB7000, 0xDB7FFF, "Pengo Technology Co., Ltd", "PENGO" }, { 0x70B3D5, 0xDB8000, 0xDB8FFF, "SISTEM SA", "SISTEM" }, { 0x70B3D5, 0xDB9000, 0xDB9FFF, "PULOON Tech", "PULOON-TECH" }, { 0x70B3D5, 0xDBA000, 0xDBAFFF, "KODENSHI CORP.", "KODENSHI" }, { 0x70B3D5, 0xDBB000, 0xDBBFFF, "Fuhr GmbH Filtertechnik", "FUHR-FILTERTECHNIK" }, { 0x70B3D5, 0xDBC000, 0xDBCFFF, "Gamber Johnson-LLC", "GAMBER-JOHNSON" }, { 0x70B3D5, 0xDBD000, 0xDBDFFF, "TRANSLITE GLOBAL LLC", "TRANSLITE-GLOBAL" }, { 0x70B3D5, 0xDBE000, 0xDBEFFF, "Hiber", "HIBER" }, { 0x70B3D5, 0xDBF000, 0xDBFFFF, "Infodev Electronic Designers Intl.", "INFODEV-DESIGNERS-INTL" }, { 0x70B3D5, 0xDC0000, 0xDC0FFF, "ATEME", "ATEME" }, { 0x70B3D5, 0xDC1000, 0xDC1FFF, "Metralight, Inc.", "METRALIGHT" }, { 0x70B3D5, 0xDC2000, 0xDC2FFF, "SwineTech, Inc.", "SWINETECH" }, { 0x70B3D5, 0xDC3000, 0xDC3FFF, "Fath Mechatronics", "FATH-MECHATRONICS" }, { 0x70B3D5, 0xDC4000, 0xDC4FFF, "Peter Huber Kaeltemaschinenbau AG", "PETER-HUBER-KAELTEMASCHINENBAU" }, { 0x70B3D5, 0xDC5000, 0xDC5FFF, "Excel Medical Electronics LLC", "EXCEL-MEDICAL-ELECTRONICS" }, { 0x70B3D5, 0xDC6000, 0xDC6FFF, "IDEM INC.", "IDEM" }, { 0x70B3D5, 0xDC7000, 0xDC7FFF, "NUBURU Inc.", "NUBURU" }, { 0x70B3D5, 0xDC8000, 0xDC8FFF, "Enertex Bayern GmbH", "ENERTEX-BAYERN" }, { 0x70B3D5, 0xDC9000, 0xDC9FFF, "Sensoterra BV", "SENSOTERRA" }, { 0x70B3D5, 0xDCA000, 0xDCAFFF, "DSan Corporation", "DSAN" }, { 0x70B3D5, 0xDCB000, 0xDCBFFF, "MIJIENETRTECH CO.,LTD", "MIJIENETRTECH" }, { 0x70B3D5, 0xDCC000, 0xDCCFFF, "Eutron SPA", "EUTRON-SPA" }, { 0x70B3D5, 0xDCD000, 0xDCDFFF, "C TECH BILISIM TEKNOLOJILERI SAN. VE TIC. A.S.", "C-TECH-BILISIM-TEKNOLOJILERI-SAN-VE-TIC" }, { 0x70B3D5, 0xDCE000, 0xDCEFFF, "Stahl GmbH", "STAHL" }, { 0x70B3D5, 0xDCF000, 0xDCFFFF, "KLS Netherlands B.V.", "KLS-NETHERLANDS-B-V" }, { 0x70B3D5, 0xDD0000, 0xDD0FFF, "Deep Secure Limited", "DEEP-SECURE" }, { 0x70B3D5, 0xDD1000, 0xDD1FFF, "em-tec GmbH", "EM-TEC" }, { 0x70B3D5, 0xDD2000, 0xDD2FFF, "Insitu, Inc", "INSITU" }, { 0x70B3D5, 0xDD3000, 0xDD3FFF, "VITEC", "VITEC" }, { 0x70B3D5, 0xDD4000, 0xDD4FFF, "ResIOT UBLSOFTWARE SRL", "RESIOT-UBLSOFTWARE-SRL" }, { 0x70B3D5, 0xDD5000, 0xDD5FFF, "Cooltera Limited", "COOLTERA" }, { 0x70B3D5, 0xDD6000, 0xDD6FFF, "Umweltanalytik Holbach GmbH", "UMWELTANALYTIK-HOLBACH" }, { 0x70B3D5, 0xDD7000, 0xDD7FFF, "DETECT Australia", "DETECT-AUSTRALIA" }, { 0x70B3D5, 0xDD8000, 0xDD8FFF, "EMSCAN Corp.", "EMSCAN" }, { 0x70B3D5, 0xDD9000, 0xDD9FFF, "MaNima Technologies BV", "MANIMA-TECHNOLOGIES" }, { 0x70B3D5, 0xDDA000, 0xDDAFFF, "Hubbell Power Systems", "HUBBELL-POWER" }, { 0x70B3D5, 0xDDB000, 0xDDBFFF, "Intra Corporation", "INTRA" }, { 0x70B3D5, 0xDDC000, 0xDDCFFF, "Syscom Instruments SA", "SYSCOM-INSTRUMENTS" }, { 0x70B3D5, 0xDDD000, 0xDDDFFF, "BIO RAD LABORATORIES", "BIO-RAD-LABORATORIES" }, { 0x70B3D5, 0xDDE000, 0xDDEFFF, "Abbott Diagnostics Technologies AS", "ABBOTT-DIAGNOSTICS-TECHNOLOGIES-AS" }, { 0x70B3D5, 0xDDF000, 0xDDFFFF, "AeroVision Avionics, Inc.", "AEROVISION-AVIONICS" }, { 0x70B3D5, 0xDE0000, 0xDE0FFF, "eCozy GmbH", "ECOZY" }, { 0x70B3D5, 0xDE1000, 0xDE1FFF, "Duplomatic MS spa", "DUPLOMATIC-MS-SPA" }, { 0x70B3D5, 0xDE2000, 0xDE2FFF, "ACD Elekronik GmbH", "ACD-ELEKRONIK" }, { 0x70B3D5, 0xDE3000, 0xDE3FFF, "ETL Elektrotechnik Lauter GmbH", "ETL-ELEKTROTECHNIK-LAUTER" }, { 0x70B3D5, 0xDE4000, 0xDE4FFF, "MAVILI ELEKTRONIK TIC. VE SAN. A.S.", "MAVILI-ELEKTRONIK-TIC-VE-SAN" }, { 0x70B3D5, 0xDE5000, 0xDE5FFF, "ASML", "ASML" }, { 0x70B3D5, 0xDE6000, 0xDE6FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0xDE7000, 0xDE7FFF, "Innominds Software Private Limited", "INNOMINDS-SOFTWARE-PRIVATE" }, { 0x70B3D5, 0xDE8000, 0xDE8FFF, "Nation-E Ltd.", "NATION-E" }, { 0x70B3D5, 0xDE9000, 0xDE9FFF, "EkspertStroyProekt LLC", "EKSPERTSTROYPROEKT" }, { 0x70B3D5, 0xDEA000, 0xDEAFFF, "Advanced Ventilation Applications, Inc.", "ADVANCED-VENTILATION-APPLICATIONS" }, { 0x70B3D5, 0xDEB000, 0xDEBFFF, "DORLET SAU", "DORLET-SAU" }, { 0x70B3D5, 0xDEC000, 0xDECFFF, "Condev-Automation GmbH", "CONDEV-AUTOMATION" }, { 0x70B3D5, 0xDED000, 0xDEDFFF, "Simpulse", "SIMPULSE" }, { 0x70B3D5, 0xDEE000, 0xDEEFFF, "CRDE", "CRDE" }, { 0x70B3D5, 0xDEF000, 0xDEFFFF, "ISG Nordic AB", "ISG-NORDIC-AB" }, { 0x70B3D5, 0xDF0000, 0xDF0FFF, "astozi consulting Tomasz Zieba", "ASTOZI-CONSULTING-TOMASZ-ZIEBA" }, { 0x70B3D5, 0xDF1000, 0xDF1FFF, "CoXlab Inc.", "COXLAB" }, { 0x70B3D5, 0xDF2000, 0xDF2FFF, "AML", "AML" }, { 0x70B3D5, 0xDF3000, 0xDF3FFF, "SPC Bioclinicum", "SPC-BIOCLINICUM" }, { 0x70B3D5, 0xDF4000, 0xDF4FFF, "Heim- & Bürokommunikation Ilmert e.K.", "HEIM-BUEROKOMMUNIKATION-ILMERT-E-K" }, { 0x70B3D5, 0xDF5000, 0xDF5FFF, "Beijing Huanyu Zhilian Science &Technology Co., Ltd.", "BEIJING-HUANYU-ZHILIAN-SCIENCE" }, { 0x70B3D5, 0xDF6000, 0xDF6FFF, "Tiab Limited", "TIAB" }, { 0x70B3D5, 0xDF7000, 0xDF7FFF, "ScopeSensor Oy", "SCOPESENSOR-OY" }, { 0x70B3D5, 0xDF8000, 0xDF8FFF, "RMA Mess- und Regeltechnik GmbH & Co.KG", "RMA-MESS-UND-REGELTECHNIK" }, { 0x70B3D5, 0xDF9000, 0xDF9FFF, "Korea Plant Maintenance", "KOREA-PLANT-MAINTENANCE" }, { 0x70B3D5, 0xDFA000, 0xDFAFFF, "Newtouch Electronics (Shanghai) Co.,Ltd.", "NEWTOUCH-ELECTRONICS-SHANGHAI" }, { 0x70B3D5, 0xDFB000, 0xDFBFFF, "Yamamoto Works Ltd.", "YAMAMOTO-WORKS" }, { 0x70B3D5, 0xDFC000, 0xDFCFFF, "ELECTRONIC SYSTEMS DESIGN SPRL", "DESIGN-SPRL" }, { 0x70B3D5, 0xDFD000, 0xDFDFFF, "Contiweb", "CONTIWEB" }, { 0x70B3D5, 0xDFE000, 0xDFEFFF, "microtec Sicherheitstechnik GmbH", "MICROTEC-SICHERHEITSTECHNIK" }, { 0x70B3D5, 0xDFF000, 0xDFFFFF, "Spanawave Corporation", "SPANAWAVE" }, { 0x70B3D5, 0xE00000, 0xE00FFF, "Jeaway CCTV Security Ltd,.", "JEAWAY-CCTV-SECURITY" }, { 0x70B3D5, 0xE01000, 0xE01FFF, "EarTex", "EARTEX" }, { 0x70B3D5, 0xE02000, 0xE02FFF, "YEHL & JORDAN LLC", "YEHL-JORDAN" }, { 0x70B3D5, 0xE03000, 0xE03FFF, "MBJ", "MBJ" }, { 0x70B3D5, 0xE04000, 0xE04FFF, "Combilent", "COMBILENT" }, { 0x70B3D5, 0xE05000, 0xE05FFF, "Lobaro GmbH", "LOBARO" }, { 0x70B3D5, 0xE06000, 0xE06FFF, "System West dba ICS Electronics", "SYSTEM-WEST-DBA-ICS-ELECTRONICS" }, { 0x70B3D5, 0xE07000, 0xE07FFF, "Baader Planetarium GmbH", "BAADER-PLANETARIUM" }, { 0x70B3D5, 0xE08000, 0xE08FFF, "Olssen", "OLSSEN" }, { 0x70B3D5, 0xE09000, 0xE09FFF, "L-3 communications ComCept Division", "L-3-COMMUNICATION-COMCEPT-DIVISION" }, { 0x70B3D5, 0xE0A000, 0xE0AFFF, "Acouva, Inc.", "ACOUVA" }, { 0x70B3D5, 0xE0B000, 0xE0BFFF, "ENTEC Electric & Electronic Co., LTD.", "ENTEC-ELECTRIC" }, { 0x70B3D5, 0xE0C000, 0xE0CFFF, "Communication Systems Solutions", "COMMUNICATION-SOLUTIONS" }, { 0x70B3D5, 0xE0D000, 0xE0DFFF, "Sigma Connectivity AB", "SIGMA-CONNECTIVITY-AB" }, { 0x70B3D5, 0xE0E000, 0xE0EFFF, "VulcanForms", "VULCANFORMS" }, { 0x70B3D5, 0xE0F000, 0xE0FFFF, "Vtron Pty Ltd", "VTRON-PTY" }, { 0x70B3D5, 0xE10000, 0xE10FFF, "Leidos", "LEIDOS" }, { 0x70B3D5, 0xE11000, 0xE11FFF, "Engage Technologies", "ENGAGE-TECHNOLOGIES" }, { 0x70B3D5, 0xE12000, 0xE12FFF, "SNK, Inc.", "SNK" }, { 0x70B3D5, 0xE13000, 0xE13FFF, "Suzhou ZhiCai Co.,Ltd.", "SUZHOU-ZHICAI" }, { 0x70B3D5, 0xE14000, 0xE14FFF, "Automata Spa", "AUTOMATA-SPA" }, { 0x70B3D5, 0xE15000, 0xE15FFF, "Benetel", "BENETEL" }, { 0x70B3D5, 0xE16000, 0xE16FFF, "China Entropy Co., Ltd.", "CHINA-ENTROPY" }, { 0x70B3D5, 0xE17000, 0xE17FFF, "SA Photonics", "PHOTONICS" }, { 0x70B3D5, 0xE18000, 0xE18FFF, "Plasmapp Co.,Ltd.", "PLASMAPP" }, { 0x70B3D5, 0xE19000, 0xE19FFF, "BAB TECHNOLOGIE GmbH", "BAB-TECHNOLOGIE" }, { 0x70B3D5, 0xE1A000, 0xE1AFFF, "BIZERBA LUCEO", "BIZERBA-LUCEO" }, { 0x70B3D5, 0xE1B000, 0xE1BFFF, "Neuron GmbH", "NEURON" }, { 0x70B3D5, 0xE1C000, 0xE1CFFF, "RoomMate AS", "ROOMMATE-AS" }, { 0x70B3D5, 0xE1D000, 0xE1DFFF, "Galaxy Next Generation, Inc.", "GALAXY-NEXT-GENERATION" }, { 0x70B3D5, 0xE1E000, 0xE1EFFF, "Umano Medical Inc.", "UMANO-MEDICAL" }, { 0x70B3D5, 0xE1F000, 0xE1FFFF, "THETA432", "THETA432" }, { 0x70B3D5, 0xE20000, 0xE20FFF, "Signature Control Systems, LLC.", "SIGNATURE-CONTROL" }, { 0x70B3D5, 0xE21000, 0xE21FFF, "LLVISION TECHNOLOGY CO.,LTD", "LLVISION" }, { 0x70B3D5, 0xE22000, 0xE22FFF, "Federated Wireless, Inc.", "FEDERATED-WIRELESS" }, { 0x70B3D5, 0xE23000, 0xE23FFF, "Smith Meter, Inc.", "SMITH-METER" }, { 0x70B3D5, 0xE24000, 0xE24FFF, "Gogo Business Aviation", "GOGO-BUSINESS-AVIATION" }, { 0x70B3D5, 0xE25000, 0xE25FFF, "GJD Manufacturing", "GJD-MANUFACTURING" }, { 0x70B3D5, 0xE26000, 0xE26FFF, "FEITIAN CO.,LTD.", "FEITIAN" }, { 0x70B3D5, 0xE27000, 0xE27FFF, "Woodside Electronics", "WOODSIDE-ELECTRONICS" }, { 0x70B3D5, 0xE28000, 0xE28FFF, "iotec GmbH", "IOTEC" }, { 0x70B3D5, 0xE29000, 0xE29FFF, "Invent Vision - iVision Sistemas de Imagem e Visão S.A.", "INVENT-VISION-IVISION-SISTEMAS-DE-IMAGEM-E-VISO" }, { 0x70B3D5, 0xE2A000, 0xE2AFFF, "CONTES, spol. s r.o.", "CONTES-SPOL-S-R-O" }, { 0x70B3D5, 0xE2B000, 0xE2BFFF, "Guan Show Technologe Co., Ltd.", "GUAN-SHOW-TECHNOLOGE" }, { 0x70B3D5, 0xE2C000, 0xE2CFFF, "Fourth Frontier Technologies Private Limited", "FOURTH-FRONTIER-TECHNOLOGIES-PRIVATE" }, { 0x70B3D5, 0xE2D000, 0xE2DFFF, "BAE Systems Apllied Intelligence", "BAE-APLLIED-INTELLIGENCE" }, { 0x70B3D5, 0xE2E000, 0xE2EFFF, "Merz s.r.o.", "MERZ-S-R-O" }, { 0x70B3D5, 0xE2F000, 0xE2FFFF, "Flextronics International Kft", "FLEXTRONICS-KFT" }, { 0x70B3D5, 0xE30000, 0xE30FFF, "QUISS AG", "QUISS" }, { 0x70B3D5, 0xE31000, 0xE31FFF, "NEUROPHET, Inc.", "NEUROPHET" }, { 0x70B3D5, 0xE32000, 0xE32FFF, "HERUTU ELECTRONICS CORPORATION", "HERUTU-ELECTRONICS" }, { 0x70B3D5, 0xE33000, 0xE33FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0xE34000, 0xE34FFF, "Gamber Johnson-LLC", "GAMBER-JOHNSON" }, { 0x70B3D5, 0xE35000, 0xE35FFF, "Nanospeed Technologies Limited", "NANOSPEED-TECHNOLOGIES" }, { 0x70B3D5, 0xE36000, 0xE36FFF, "Guidance Navigation Limited", "GUIDANCE-NAVIGATION" }, { 0x70B3D5, 0xE37000, 0xE37FFF, "Eurotempest AB", "EUROTEMPEST-AB" }, { 0x70B3D5, 0xE38000, 0xE38FFF, "Cursor Systems NV", "CURSOR-NV" }, { 0x70B3D5, 0xE39000, 0xE39FFF, "Thinnect, Inc,", "THINNECT" }, { 0x70B3D5, 0xE3A000, 0xE3AFFF, "Cyanview", "CYANVIEW" }, { 0x70B3D5, 0xE3B000, 0xE3BFFF, "ComNav Technology Ltd.", "COMNAV" }, { 0x70B3D5, 0xE3C000, 0xE3CFFF, "Densitron Technologies Ltd", "DENSITRON-TECHNOLOGIES" }, { 0x70B3D5, 0xE3D000, 0xE3DFFF, "Leo Bodnar Electronics Ltd", "LEO-BODNAR-ELECTRONICS" }, { 0x70B3D5, 0xE3E000, 0xE3EFFF, "Sol Welding srl", "SOL-WELDING-SRL" }, { 0x70B3D5, 0xE3F000, 0xE3FFFF, "BESTCODE LLC", "BESTCODE" }, { 0x70B3D5, 0xE40000, 0xE40FFF, "Siemens Mobility GmbH - MO TI SPA", "SIEMENS-MOBILITY-MO-TI-SPA" }, { 0x70B3D5, 0xE41000, 0xE41FFF, "4neXt S.r.l.s.", "4NEXT-S-R-L-S" }, { 0x70B3D5, 0xE42000, 0xE42FFF, "Neusoft Reach Automotive Technology (Shenyang) Co.,Ltd", "NEUSOFT-REACH-AUTOMOTIVE-SHENYANG" }, { 0x70B3D5, 0xE43000, 0xE43FFF, "SL Audio A/S", "SL-AUDIO-A/S" }, { 0x70B3D5, 0xE44000, 0xE44FFF, "BrainboxAI Inc", "BRAINBOXAI" }, { 0x70B3D5, 0xE45000, 0xE45FFF, "Momentum Data Systems", "MOMENTUM-DATA" }, { 0x70B3D5, 0xE46000, 0xE46FFF, "7thSense Design Limited", "7THSENSE-DESIGN" }, { 0x70B3D5, 0xE47000, 0xE47FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0xE48000, 0xE48FFF, "TDI. Co., LTD", "TDI" }, { 0x70B3D5, 0xE49000, 0xE49FFF, "Kendrion Mechatronics Center GmbH", "KENDRION-MECHATRONICS-CENTER" }, { 0x70B3D5, 0xE4A000, 0xE4AFFF, "ICP NewTech Ltd", "ICP-NEWTECH" }, { 0x70B3D5, 0xE4B000, 0xE4BFFF, "DELTA", "DELTA" }, { 0x70B3D5, 0xE4C000, 0xE4CFFF, "IAI-Israel Aerospace Industries MBT", "IAI-ISRAEL-AEROSPACE-INDUSTRIES-MBT" }, { 0x70B3D5, 0xE4D000, 0xE4DFFF, "Vulcan Wireless Inc.", "VULCAN-WIRELESS" }, { 0x70B3D5, 0xE4E000, 0xE4EFFF, "Midfin Systems", "MIDFIN" }, { 0x70B3D5, 0xE4F000, 0xE4FFFF, "RWS Automation GmbH", "RWS-AUTOMATION" }, { 0x70B3D5, 0xE50000, 0xE50FFF, "Advanced Vision Technology Ltd", "ADVANCED-VISION" }, { 0x70B3D5, 0xE51000, 0xE51FFF, "NooliTIC", "NOOLITIC" }, { 0x70B3D5, 0xE52000, 0xE52FFF, "Guangzhou Moblin Technology Co., Ltd.", "GUANGZHOU-MOBLIN" }, { 0x70B3D5, 0xE53000, 0xE53FFF, "MI INC.", "MI" }, { 0x70B3D5, 0xE54000, 0xE54FFF, "Beijing PanGu Company", "BEIJING-PANGU-COMPANY" }, { 0x70B3D5, 0xE55000, 0xE55FFF, "BELT S.r.l.", "BELT" }, { 0x70B3D5, 0xE56000, 0xE56FFF, "HIPODROMO DE AGUA CALIENTE, S.A. DE C.V.", "HIPODROMO-DE-AGUA-CALIENTE-DE-C-V" }, { 0x70B3D5, 0xE57000, 0xE57FFF, "Iradimed", "IRADIMED" }, { 0x70B3D5, 0xE58000, 0xE58FFF, "Thurlby Thandar Instruments LTD", "THURLBY-THANDAR-INSTRUMENTS" }, { 0x70B3D5, 0xE59000, 0xE59FFF, "Fracarro srl", "FRACARRO-SRL" }, { 0x70B3D5, 0xE5A000, 0xE5AFFF, "Cardinal Scales Manufacturing Co", "CARDINAL-SCALES-MANUFACTURING" }, { 0x70B3D5, 0xE5B000, 0xE5BFFF, "Argosy Labs Inc.", "ARGOSY-LABS" }, { 0x70B3D5, 0xE5C000, 0xE5CFFF, "Walton Hi-Tech Industries Ltd.", "WALTON-HI-TECH-INDUSTRIES" }, { 0x70B3D5, 0xE5D000, 0xE5DFFF, "Boffins Technologies AB", "BOFFINS-TECHNOLOGIES-AB" }, { 0x70B3D5, 0xE5E000, 0xE5EFFF, "Critical Link LLC", "CRITICAL-LINK" }, { 0x70B3D5, 0xE5F000, 0xE5FFFF, "CesiumAstro Inc.", "CESIUMASTRO" }, { 0x70B3D5, 0xE60000, 0xE60FFF, "Davitor AB", "DAVITOR-AB" }, { 0x70B3D5, 0xE61000, 0xE61FFF, "Adeli", "ADELI" }, { 0x70B3D5, 0xE62000, 0xE62FFF, "Eon", "EON" }, { 0x70B3D5, 0xE63000, 0xE63FFF, "Potomac Electric Corporation", "POTOMAC-ELECTRIC" }, { 0x70B3D5, 0xE64000, 0xE64FFF, "HONG JIANG ELECTRONICS CO., LTD.", "HONG-JIANG-ELECTRONICS" }, { 0x70B3D5, 0xE65000, 0xE65FFF, "BIRTECH TECHNOLOGY", "BIRTECH" }, { 0x70B3D5, 0xE66000, 0xE66FFF, "Eneon sp. z o.o.", "ENEON-SP-Z-O-O" }, { 0x70B3D5, 0xE67000, 0xE67FFF, "APPLIED PROCESSING", "APPLIED-PROCESSING" }, { 0x70B3D5, 0xE68000, 0xE68FFF, "Transit Solutions, LLC.", "TRANSIT-SOLUTIONS" }, { 0x70B3D5, 0xE69000, 0xE69FFF, "Fire4 Systems UK Ltd", "FIRE4-UK" }, { 0x70B3D5, 0xE6A000, 0xE6AFFF, "MAC Solutions (UK) Ltd", "MAC-SOLUTIONS-UK" }, { 0x70B3D5, 0xE6B000, 0xE6BFFF, "Shenzhen Shi Fang Communication Technology Co., Ltd", "SHENZHEN-SHI-FANG-COMMUNICATION" }, { 0x70B3D5, 0xE6C000, 0xE6CFFF, "Fusar Technologies inc", "FUSAR-TECHNOLOGIES" }, { 0x70B3D5, 0xE6D000, 0xE6DFFF, "Domus S.C.", "DOMUS-S-C" }, { 0x70B3D5, 0xE6E000, 0xE6EFFF, "Lieron BVBA", "LIERON-BVBA" }, { 0x70B3D5, 0xE6F000, 0xE6FFFF, "Amazon Technologies Inc.", "AMAZON-TECHNOLOGIES" }, { 0x70B3D5, 0xE70000, 0xE70FFF, "DISK Multimedia s.r.o.", "DISK-MULTIMEDIA-S-R-O" }, { 0x70B3D5, 0xE71000, 0xE71FFF, "SiS Technology", "SIS" }, { 0x70B3D5, 0xE72000, 0xE72FFF, "KDT Corp.", "KDT" }, { 0x70B3D5, 0xE73000, 0xE73FFF, "Zeus Control Systems Ltd", "ZEUS-CONTROL" }, { 0x70B3D5, 0xE74000, 0xE74FFF, "Exfrontier Co., Ltd.", "EXFRONTIER" }, { 0x70B3D5, 0xE75000, 0xE75FFF, "Watteco", "WATTECO" }, { 0x70B3D5, 0xE76000, 0xE76FFF, "Dorsett Technologies Inc", "DORSETT-TECHNOLOGIES" }, { 0x70B3D5, 0xE77000, 0xE77FFF, "OPTIX JSC", "OPTIX-JSC" }, { 0x70B3D5, 0xE78000, 0xE78FFF, "Camwell India LLP", "CAMWELL-INDIA-LLP" }, { 0x70B3D5, 0xE79000, 0xE79FFF, "Acrodea, Inc.", "ACRODEA" }, { 0x70B3D5, 0xE7A000, 0xE7AFFF, "ART SPA", "ART-SPA" }, { 0x70B3D5, 0xE7B000, 0xE7BFFF, "Shenzhen SanYeCao Electronics Co.,Ltd", "SHENZHEN-SANYECAO-ELECTRONICS" }, { 0x70B3D5, 0xE7C000, 0xE7CFFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0xE7D000, 0xE7DFFF, "Nanjing Dandick Science&technology development co., LTD", "NANJING-DANDICK-SCIENCE-DEVELOPMENT" }, { 0x70B3D5, 0xE7E000, 0xE7EFFF, "Groupe Citypassenger Inc", "GROUPE-CITYPASSENGER" }, { 0x70B3D5, 0xE7F000, 0xE7FFFF, "Sankyo Intec Co,ltd", "SANKYO-INTEC" }, { 0x70B3D5, 0xE80000, 0xE80FFF, "Changzhou Rapid Information Technology Co,Ltd", "CHANGZHOU-RAPID-INFORMATION" }, { 0x70B3D5, 0xE81000, 0xE81FFF, "SLAT", "SLAT" }, { 0x70B3D5, 0xE82000, 0xE82FFF, "RF Track", "RF-TRACK" }, { 0x70B3D5, 0xE83000, 0xE83FFF, "Talleres de Escoriaza SA", "TALLERES-DE-ESCORIAZA" }, { 0x70B3D5, 0xE84000, 0xE84FFF, "ENTEC Electric & Electronic Co., LTD.", "ENTEC-ELECTRIC" }, { 0x70B3D5, 0xE85000, 0xE85FFF, "Explorer Inc.", "EXPLORER" }, { 0x70B3D5, 0xE86000, 0xE86FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x70B3D5, 0xE87000, 0xE87FFF, "STACKFORCE GmbH", "STACKFORCE" }, { 0x70B3D5, 0xE88000, 0xE88FFF, "Breas Medical AB", "BREAS-MEDICAL-AB" }, { 0x70B3D5, 0xE89000, 0xE89FFF, "JSC Kaluga Astral", "JSC-KALUGA-ASTRAL" }, { 0x70B3D5, 0xE8A000, 0xE8AFFF, "Melecs EWS GmbH", "MELECS-EWS" }, { 0x70B3D5, 0xE8B000, 0xE8BFFF, "Dream D&S Co.,Ltd", "DREAM-D-S" }, { 0x70B3D5, 0xE8C000, 0xE8CFFF, "Fracarro srl", "FRACARRO-SRL" }, { 0x70B3D5, 0xE8D000, 0xE8DFFF, "Natav Services Ltd.", "NATAV-SERVICES" }, { 0x70B3D5, 0xE8E000, 0xE8EFFF, "Macnica Technology", "MACNICA" }, { 0x70B3D5, 0xE8F000, 0xE8FFFF, "DISMUNTEL, S.A.", "DISMUNTEL" }, { 0x70B3D5, 0xE90000, 0xE90FFF, "Getein Biotechnology Co.,ltd", "GETEIN-BIOTECHNOLOGY" }, { 0x70B3D5, 0xE91000, 0xE91FFF, "NAS Australia P/L", "NAS-AUSTRALIA-P/L" }, { 0x70B3D5, 0xE92000, 0xE92FFF, "FUJI DATA SYSTEM CO.,LTD.", "FUJI-DATA-SYSTEM" }, { 0x70B3D5, 0xE93000, 0xE93FFF, "ECON Technology Co.Ltd", "ECON" }, { 0x70B3D5, 0xE94000, 0xE94FFF, "Lumiplan Duhamel", "LUMIPLAN-DUHAMEL" }, { 0x70B3D5, 0xE95000, 0xE95FFF, "BroadSoft Inc", "BROADSOFT" }, { 0x70B3D5, 0xE96000, 0xE96FFF, "Cellier Domesticus inc", "CELLIER-DOMESTICUS" }, { 0x70B3D5, 0xE97000, 0xE97FFF, "Toptech Systems, Inc.", "TOPTECH" }, { 0x70B3D5, 0xE98000, 0xE98FFF, "JSC Kaluga Astral", "JSC-KALUGA-ASTRAL" }, { 0x70B3D5, 0xE99000, 0xE99FFF, "Advitronics telecom bv", "ADVITRONICS-TELECOM" }, { 0x70B3D5, 0xE9A000, 0xE9AFFF, "Meta Computing Services, Corp", "META-COMPUTING-SERVICES" }, { 0x70B3D5, 0xE9B000, 0xE9BFFF, "NUMATA R&D Co.,Ltd", "NUMATA-R-D" }, { 0x70B3D5, 0xE9C000, 0xE9CFFF, "ATG UV Technology", "ATG-UV" }, { 0x70B3D5, 0xE9D000, 0xE9DFFF, "INTECH", "INTECH" }, { 0x70B3D5, 0xE9E000, 0xE9EFFF, "MSB Elektronik und Gerätebau GmbH", "MSB-ELEKTRONIK-UND-GERAETEBAU" }, { 0x70B3D5, 0xE9F000, 0xE9FFFF, "Gigaband IP LLC", "GIGABAND-IP" }, { 0x70B3D5, 0xEA0000, 0xEA0FFF, "PARK24", "PARK24" }, { 0x70B3D5, 0xEA1000, 0xEA1FFF, "Qntra Technology", "QNTRA" }, { 0x70B3D5, 0xEA2000, 0xEA2FFF, "Transportal Solutions Ltd", "TRANSPORTAL-SOLUTIONS" }, { 0x70B3D5, 0xEA3000, 0xEA3FFF, "Gridless Power Corperation", "GRIDLESS-POWER-CORPERATION" }, { 0x70B3D5, 0xEA4000, 0xEA4FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x70B3D5, 0xEA5000, 0xEA5FFF, "LOTES TM OOO", "LOTES-TM-OOO" }, { 0x70B3D5, 0xEA6000, 0xEA6FFF, "Galios", "GALIOS" }, { 0x70B3D5, 0xEA7000, 0xEA7FFF, "S.I.C.E.S. srl", "S-I-C-E-S-SRL" }, { 0x70B3D5, 0xEA8000, 0xEA8FFF, "Dia-Stron Limited", "DIA-STRON" }, { 0x70B3D5, 0xEA9000, 0xEA9FFF, "Zhuhai Lonl electric Co.,Ltd.", "ZHUHAI-LONL-ELECTRIC" }, { 0x70B3D5, 0xEAA000, 0xEAAFFF, "Druck Ltd.", "DRUCK" }, { 0x70B3D5, 0xEAB000, 0xEABFFF, "APEN GROUP SpA (VAT IT08767740155)", "APEN-GROUP-SPA-VAT-IT08767740155" }, { 0x70B3D5, 0xEAC000, 0xEACFFF, "Kentech Instruments Limited", "KENTECH-INSTRUMENTS" }, { 0x70B3D5, 0xEAD000, 0xEADFFF, "Cobo, Inc.", "COBO" }, { 0x70B3D5, 0xEAE000, 0xEAEFFF, "Orlaco Products B.V.", "ORLACO-PRODUCTS-B-V" }, { 0x70B3D5, 0xEAF000, 0xEAFFFF, "Sicon srl", "SICON-SRL" }, { 0x70B3D5, 0xEB0000, 0xEB0FFF, "Nautel LTD", "NAUTEL" }, { 0x70B3D5, 0xEB1000, 0xEB1FFF, "CP contech electronic GmbH", "CP-CONTECH" }, { 0x70B3D5, 0xEB2000, 0xEB2FFF, "Shooter Detection Systems", "SHOOTER-DETECTION" }, { 0x70B3D5, 0xEB3000, 0xEB3FFF, "KWS-Electronic GmbH", "KWS" }, { 0x70B3D5, 0xEB4000, 0xEB4FFF, "Robotic Research, LLC", "ROBOTIC-RESEARCH" }, { 0x70B3D5, 0xEB5000, 0xEB5FFF, "JUSTEK INC", "JUSTEK" }, { 0x70B3D5, 0xEB6000, 0xEB6FFF, "EnergizeEV", "ENERGIZEEV" }, { 0x70B3D5, 0xEB7000, 0xEB7FFF, "Skreens", "SKREENS" }, { 0x70B3D5, 0xEB8000, 0xEB8FFF, "Emporia Renewable Energy Corp", "EMPORIA-RENEWABLE-ENERGY" }, { 0x70B3D5, 0xEB9000, 0xEB9FFF, "Thiel Audio Products Company, LLC", "THIEL-AUDIO-PRODUCTS-COMPANY" }, { 0x70B3D5, 0xEBA000, 0xEBAFFF, "Last Mile Gear", "LAST-MILE-GEAR" }, { 0x70B3D5, 0xEBB000, 0xEBBFFF, "Beijing Wing ICT Technology Co., Ltd.", "BEIJING-WING-ICT" }, { 0x70B3D5, 0xEBC000, 0xEBCFFF, "Refine Technology, LLC", "REFINE" }, { 0x70B3D5, 0xEBD000, 0xEBDFFF, "midBit Technologies, LLC", "MIDBIT-TECHNOLOGIES" }, { 0x70B3D5, 0xEBE000, 0xEBEFFF, "Sierra Pacific Innovations Corp", "SIERRA-PACIFIC-INNOVATIONS" }, { 0x70B3D5, 0xEBF000, 0xEBFFFF, "AUTOMATICA Y REGULACION S.A.", "AUTOMATICA-Y-REGULACION" }, { 0x70B3D5, 0xEC0000, 0xEC0FFF, "ProtoConvert Pty Ltd", "PROTOCONVERT-PTY" }, { 0x70B3D5, 0xEC1000, 0xEC1FFF, "Xafax Nederland bv", "XAFAX-NEDERLAND" }, { 0x70B3D5, 0xEC2000, 0xEC2FFF, "Lightside Instruments AS", "LIGHTSIDE-INSTRUMENTS-AS" }, { 0x70B3D5, 0xEC3000, 0xEC3FFF, "Virtual Control Systems Ltd", "VIRTUAL-CONTROL" }, { 0x70B3D5, 0xEC4000, 0xEC4FFF, "hmt telematik GmbH", "HMT-TELEMATIK" }, { 0x70B3D5, 0xEC5000, 0xEC5FFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0xEC6000, 0xEC6FFF, "ESII", "ESII" }, { 0x70B3D5, 0xEC7000, 0xEC7FFF, "Neoptix Inc.", "NEOPTIX" }, { 0x70B3D5, 0xEC8000, 0xEC8FFF, "PANASONIC LIFE SOLUTIONS ELEKTR?K SANAY? VE T?CARE", "PANASONIC-LIFE-SOLUTIONS-ELEKTRK-SANAY-VE-TCARE" }, { 0x70B3D5, 0xEC9000, 0xEC9FFF, "Qlinx Technologies", "QLINX-TECHNOLOGIES" }, { 0x70B3D5, 0xECA000, 0xECAFFF, "Transtronic AB", "TRANSTRONIC-AB" }, { 0x70B3D5, 0xECB000, 0xECBFFF, "Re spa - Controlli Industriali - IT01782300154", "RE-SPA-CONTROLLI-INDUSTRIALI-IT01782300154" }, { 0x70B3D5, 0xECC000, 0xECCFFF, "Digifocus Technology Inc.", "DIGIFOCUS" }, { 0x70B3D5, 0xECD000, 0xECDFFF, "SBS-Feintechnik GmbH & Co. KG", "SBS-FEINTECHNIK" }, { 0x70B3D5, 0xECE000, 0xECEFFF, "COMM-connect A/S", "COMM-CONNECT-A/S" }, { 0x70B3D5, 0xECF000, 0xECFFFF, "Ipitek", "IPITEK" }, { 0x70B3D5, 0xED0000, 0xED0FFF, "shanghai qiaoqi zhinengkeji", "SHANGHAI-QIAOQI-ZHINENGKEJI" }, { 0x70B3D5, 0xED1000, 0xED1FFF, "Przemyslowy Instytut Automatyki i Pomiarow", "PRZEMYSLOWY-INSTYTUT-AUTOMATYKI-I-POMIAROW" }, { 0x70B3D5, 0xED2000, 0xED2FFF, "PCTEL, Inc.", "PCTEL" }, { 0x70B3D5, 0xED3000, 0xED3FFF, "Beijing Lihong Create Co., Ltd.", "BEIJING-LIHONG-CREATE" }, { 0x70B3D5, 0xED4000, 0xED4FFF, "WILMORE ELECTRONICS COMPANY", "WILMORE-ELECTRONICS-COMPANY" }, { 0x70B3D5, 0xED5000, 0xED5FFF, "hangzhou battle link technology Co.,Ltd", "HANGZHOU-BATTLE-LINK" }, { 0x70B3D5, 0xED6000, 0xED6FFF, "Metrasens Limited", "METRASENS" }, { 0x70B3D5, 0xED7000, 0xED7FFF, "WAVE", "WAVE" }, { 0x70B3D5, 0xED8000, 0xED8FFF, "Wartsila Voyage Limited", "WARTSILA-VOYAGE" }, { 0x70B3D5, 0xED9000, 0xED9FFF, "AADONA Communication Pvt Ltd", "AADONA-COMMUNICATION-PVT" }, { 0x70B3D5, 0xEDA000, 0xEDAFFF, "Breas Medical AB", "BREAS-MEDICAL-AB" }, { 0x70B3D5, 0xEDB000, 0xEDBFFF, "Netfort Solutions", "NETFORT-SOLUTIONS" }, { 0x70B3D5, 0xEDC000, 0xEDCFFF, "J.D. Koftinoff Software, Ltd.", "J-D-KOFTINOFF-SOFTWARE" }, { 0x70B3D5, 0xEDD000, 0xEDDFFF, "Solar Network & Partners", "SOLAR-NETWORK-PARTNERS" }, { 0x70B3D5, 0xEDE000, 0xEDEFFF, "Agrident GmbH", "AGRIDENT" }, { 0x70B3D5, 0xEDF000, 0xEDFFFF, "GridNavigator", "GRIDNAVIGATOR" }, { 0x70B3D5, 0xEE0000, 0xEE0FFF, "Stecomp", "STECOMP" }, { 0x70B3D5, 0xEE1000, 0xEE1FFF, "allora Factory BVBA", "ALLORA-FACTORY-BVBA" }, { 0x70B3D5, 0xEE2000, 0xEE2FFF, "MONTRADE SPA", "MONTRADE-SPA" }, { 0x70B3D5, 0xEE3000, 0xEE3FFF, "Lithe Technology, LLC", "LITHE" }, { 0x70B3D5, 0xEE4000, 0xEE4FFF, "O-Net Automation Technology (Shenzhen)Limited", "O-NET-AUTOMATION-SHENZHEN" }, { 0x70B3D5, 0xEE5000, 0xEE5FFF, "Beijing Hzhytech Technology Co.Ltd", "BEIJING-HZHYTECH" }, { 0x70B3D5, 0xEE6000, 0xEE6FFF, "Vaunix Technology Corporation", "VAUNIX" }, { 0x70B3D5, 0xEE7000, 0xEE7FFF, "BLUE-SOLUTIONS CANADA INC.", "BLUE-SOLUTIONS-CANADA" }, { 0x70B3D5, 0xEE8000, 0xEE8FFF, "robert juliat", "ROBERT-JULIAT" }, { 0x70B3D5, 0xEE9000, 0xEE9FFF, "SC3 Automation", "SC3-AUTOMATION" }, { 0x70B3D5, 0xEEA000, 0xEEAFFF, "Dameca a/s", "DAMECA-A/S" }, { 0x70B3D5, 0xEEB000, 0xEEBFFF, "shenzhen suofeixiang technology Co.,Ltd", "SHENZHEN-SUOFEIXIANG" }, { 0x70B3D5, 0xEEC000, 0xEECFFF, "Impolux GmbH", "IMPOLUX" }, { 0x70B3D5, 0xEED000, 0xEEDFFF, "COMM-connect A/S", "COMM-CONNECT-A/S" }, { 0x70B3D5, 0xEEE000, 0xEEEFFF, "SOCIEDAD IBERICA DE CONSTRUCCIONES ELECTRICAS, S.A. (SICE)", "SOCIEDAD-IBERICA-DE-CONSTRUCCIONES-ELECTRICAS-SICE" }, { 0x70B3D5, 0xEEF000, 0xEEFFFF, "TATTILE SRL", "TATTILE-SRL" }, { 0x70B3D5, 0xEF0000, 0xEF0FFF, "PNETWORKS", "PNETWORKS" }, { 0x70B3D5, 0xEF1000, 0xEF1FFF, "Nanotok LLC", "NANOTOK" }, { 0x70B3D5, 0xEF2000, 0xEF2FFF, "Kongsberg Intergrated Tactical Systems", "KONGSBERG-INTERGRATED-TACTICAL" }, { 0x70B3D5, 0xEF3000, 0xEF3FFF, "octoScope", "OCTOSCOPE" }, { 0x70B3D5, 0xEF4000, 0xEF4FFF, "Orange Tree Technologies Ltd", "ORANGE-TREE-TECHNOLOGIES" }, { 0x70B3D5, 0xEF5000, 0xEF5FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0xEF6000, 0xEF6FFF, "CHARGELIB", "CHARGELIB" }, { 0x70B3D5, 0xEF7000, 0xEF7FFF, "DAVE SRL", "DAVE-SRL" }, { 0x70B3D5, 0xEF8000, 0xEF8FFF, "DKS Dienstl.ges. f. Komm.anl. d. Stadt- u. Reg.verk. mbH", "DKS-DIENSTL-GES-F-KOMM-ANL-D-STADT-U-REG-VERK" }, { 0x70B3D5, 0xEF9000, 0xEF9FFF, "Critical Link LLC", "CRITICAL-LINK" }, { 0x70B3D5, 0xEFA000, 0xEFAFFF, "NextEra Energy Resources, LLC", "NEXTERA-ENERGY-RESOURCES" }, { 0x70B3D5, 0xEFB000, 0xEFBFFF, "PXM sp.k.", "PXM-SP-K" }, { 0x70B3D5, 0xEFC000, 0xEFCFFF, "Absolent AB", "ABSOLENT-AB" }, { 0x70B3D5, 0xEFD000, 0xEFDFFF, "Cambridge Technology, Inc.", "CAMBRIDGE" }, { 0x70B3D5, 0xEFE000, 0xEFEFFF, "MEIDEN SYSTEM SOLUTIONS", "MEIDEN-SYSTEM-SOLUTIONS" }, { 0x70B3D5, 0xEFF000, 0xEFFFFF, "Carlo Gavazzi Industri", "CARLO-GAVAZZI-INDUSTRI" }, { 0x70B3D5, 0xF00000, 0xF00FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0xF01000, 0xF01FFF, "Software Systems Plus", "SOFTWARE-PLUS" }, { 0x70B3D5, 0xF02000, 0xF02FFF, "ABECO Industrie Computer GmbH", "ABECO-INDUSTRIE" }, { 0x70B3D5, 0xF03000, 0xF03FFF, "GMI Ltd", "GMI" }, { 0x70B3D5, 0xF04000, 0xF04FFF, "Scame Sistemi srl", "SCAME-SISTEMI-SRL" }, { 0x70B3D5, 0xF05000, 0xF05FFF, "Motomuto Aps", "MOTOMUTO-APS" }, { 0x70B3D5, 0xF06000, 0xF06FFF, "WARECUBE,INC", "WARECUBE" }, { 0x70B3D5, 0xF07000, 0xF07FFF, "DUVAL MESSIEN", "DUVAL-MESSIEN" }, { 0x70B3D5, 0xF08000, 0xF08FFF, "Szabo Software & Engineering UK Ltd", "SZABO-SOFTWARE-ENGINEERING-UK" }, { 0x70B3D5, 0xF09000, 0xF09FFF, "Mictrotrac Retsch GmbH", "MICTROTRAC-RETSCH" }, { 0x70B3D5, 0xF0A000, 0xF0AFFF, "Neuronal Innovation Control S.L.", "NEURONAL-INNOVATION-CONTROL" }, { 0x70B3D5, 0xF0B000, 0xF0BFFF, "RF Industries", "RF-INDUSTRIES" }, { 0x70B3D5, 0xF0C000, 0xF0CFFF, "ModulaTeam GmbH", "MODULATEAM" }, { 0x70B3D5, 0xF0D000, 0xF0DFFF, "MeQ Inc.", "MEQ" }, { 0x70B3D5, 0xF0E000, 0xF0EFFF, "TextSpeak Corporation", "TEXTSPEAK" }, { 0x70B3D5, 0xF0F000, 0xF0FFFF, "Kyoto Denkiki", "KYOTO-DENKIKI" }, { 0x70B3D5, 0xF10000, 0xF10FFF, "Riegl Laser Measurement Systems GmbH", "RIEGL-LASER-MEASUREMENT" }, { 0x70B3D5, 0xF11000, 0xF11FFF, "BroadSoft Inc", "BROADSOFT" }, { 0x70B3D5, 0xF12000, 0xF12FFF, "Incoil Induktion AB", "INCOIL-INDUKTION-AB" }, { 0x70B3D5, 0xF13000, 0xF13FFF, "MEDIAM Sp. z o.o.", "MEDIAM-SP-Z-O-O" }, { 0x70B3D5, 0xF14000, 0xF14FFF, "SANYU SWITCH CO., LTD.", "SANYU-SWITCH" }, { 0x70B3D5, 0xF15000, 0xF15FFF, "ARECA EMBEDDED SYSTEMS PVT LTD", "ARECA-EMBEDDED-PVT" }, { 0x70B3D5, 0xF16000, 0xF16FFF, "BRS Sistemas Eletrônicos", "BRS-SISTEMAS-ELETRNICOS" }, { 0x70B3D5, 0xF17000, 0xF17FFF, "VITEC", "VITEC" }, { 0x70B3D5, 0xF18000, 0xF18FFF, "HD Vision Systems GmbH", "HD-VISION" }, { 0x70B3D5, 0xF19000, 0xF19FFF, "Vitro Technology Corporation", "VITRO" }, { 0x70B3D5, 0xF1A000, 0xF1AFFF, "Sator Controls s.r.o.", "SATOR-CONTROLS-S-R-O" }, { 0x70B3D5, 0xF1B000, 0xF1BFFF, "IndiNatus (IndiNatus India Private Limited)", "INDINATUS-INDINATUS-INDIA-PRIVATE" }, { 0x70B3D5, 0xF1C000, 0xF1CFFF, "Bavaria Digital Technik GmbH", "BAVARIA-DIGITAL-TECHNIK" }, { 0x70B3D5, 0xF1D000, 0xF1DFFF, "Critical Link LLC", "CRITICAL-LINK" }, { 0x70B3D5, 0xF1E000, 0xF1EFFF, "ATX NETWORKS LTD", "ATX-NETWORKS" }, { 0x70B3D5, 0xF1F000, 0xF1FFFF, "HKC Security Ltd.", "HKC-SECURITY" }, { 0x70B3D5, 0xF20000, 0xF20FFF, "Ibercomp SA", "IBERCOMP" }, { 0x70B3D5, 0xF21000, 0xF21FFF, "dds", "DDS" }, { 0x70B3D5, 0xF22000, 0xF22FFF, "Shengli Technologies", "SHENGLI-TECHNOLOGIES" }, { 0x70B3D5, 0xF23000, 0xF23FFF, "Lyse AS", "LYSE-AS" }, { 0x70B3D5, 0xF24000, 0xF24FFF, "Daavlin", "DAAVLIN" }, { 0x70B3D5, 0xF25000, 0xF25FFF, "JSC “Scientific Industrial Enterprise Rubin", "JSC-SCIENTIFIC-INDUSTRIAL-RUBIN" }, { 0x70B3D5, 0xF26000, 0xF26FFF, "XJ ELECTRIC CO., LTD.", "XJ-ELECTRIC" }, { 0x70B3D5, 0xF27000, 0xF27FFF, "NIRIT- Xinwei Telecom Technology Co., Ltd.", "NIRIT-XINWEI-TELECOM" }, { 0x70B3D5, 0xF28000, 0xF28FFF, "Yi An Electronics Co., Ltd", "YI-AN-ELECTRONICS" }, { 0x70B3D5, 0xF29000, 0xF29FFF, "SamabaNova Systems", "SAMABANOVA" }, { 0x70B3D5, 0xF2A000, 0xF2AFFF, "WIBOND Informationssysteme GmbH", "WIBOND-INFORMATIONSSYSTEME" }, { 0x70B3D5, 0xF2B000, 0xF2BFFF, "SENSYS GmbH", "SENSYS" }, { 0x70B3D5, 0xF2C000, 0xF2CFFF, "Hengen Technologies GmbH", "HENGEN-TECHNOLOGIES" }, { 0x70B3D5, 0xF2D000, 0xF2DFFF, "ID Lock AS", "ID-LOCK-AS" }, { 0x70B3D5, 0xF2E000, 0xF2EFFF, "Shanghai JCY Technology Company", "SHANGHAI-JCY-COMPANY" }, { 0x70B3D5, 0xF2F000, 0xF2FFFF, "TELEPLATFORMS", "TELEPLATFORMS" }, { 0x70B3D5, 0xF30000, 0xF30FFF, "ADE Technology Inc.", "ADE" }, { 0x70B3D5, 0xF31000, 0xF31FFF, "The-Box Development", "THE-BOX-DEVELOPMENT" }, { 0x70B3D5, 0xF32000, 0xF32FFF, "Elektronik Art", "ELEKTRONIK-ART" }, { 0x70B3D5, 0xF33000, 0xF33FFF, "Beijing Vizum Technology Co.,Ltd.", "BEIJING-VIZUM" }, { 0x70B3D5, 0xF34000, 0xF34FFF, "MacGray Services", "MACGRAY-SERVICES" }, { 0x70B3D5, 0xF35000, 0xF35FFF, "carbonTRACK", "CARBONTRACK" }, { 0x70B3D5, 0xF36000, 0xF36FFF, "dinosys", "DINOSYS" }, { 0x70B3D5, 0xF37000, 0xF37FFF, "Mitsubishi Electric Micro-Computer Application Software Co.,Ltd.", "MITSUBISHI-ELECTRIC-MICRO-APPLICATION-SOFTWARE" }, { 0x70B3D5, 0xF38000, 0xF38FFF, "Scanvaegt Nordic A/S", "SCANVAEGT-NORDIC-A/S" }, { 0x70B3D5, 0xF39000, 0xF39FFF, "Zenros ApS", "ZENROS-APS" }, { 0x70B3D5, 0xF3A000, 0xF3AFFF, "OOO Research and Production Center Computer Technologies", "OOO-RESEARCH-AND-PRODUCTION-CENTER-TECHNOLOGIES" }, { 0x70B3D5, 0xF3B000, 0xF3BFFF, "Epdm Pty Ltd", "EPDM-PTY" }, { 0x70B3D5, 0xF3C000, 0xF3CFFF, "Gigaray", "GIGARAY" }, { 0x70B3D5, 0xF3D000, 0xF3DFFF, "KAYA Instruments", "KAYA-INSTRUMENTS" }, { 0x70B3D5, 0xF3E000, 0xF3EFFF, "ООО РОНЕКС", "" }, { 0x70B3D5, 0xF3F000, 0xF3FFFF, "comtac AG", "COMTAC" }, { 0x70B3D5, 0xF40000, 0xF40FFF, "HORIZON.INC", "HORIZON" }, { 0x70B3D5, 0xF41000, 0xF41FFF, "DUEVI SRL", "DUEVI-SRL" }, { 0x70B3D5, 0xF42000, 0xF42FFF, "Matsuhisa Corporation", "MATSUHISA" }, { 0x70B3D5, 0xF43000, 0xF43FFF, "Divelbiss Corporation", "DIVELBISS" }, { 0x70B3D5, 0xF44000, 0xF44FFF, "Magneti Marelli S.p.A. Electronics", "MAGNETI-MARELLI-S-P-A-ELECTRONICS" }, { 0x70B3D5, 0xF45000, 0xF45FFF, "Norbit ODM AS", "NORBIT-ODM-AS" }, { 0x70B3D5, 0xF46000, 0xF46FFF, "Season Electronics Ltd", "SEASON-ELECTRONICS" }, { 0x70B3D5, 0xF47000, 0xF47FFF, "TXMission Ltd.", "TXMISSION" }, { 0x70B3D5, 0xF48000, 0xF48FFF, "HEITEC AG", "HEITEC" }, { 0x70B3D5, 0xF49000, 0xF49FFF, "ZMBIZI APP LLC", "ZMBIZI-APP" }, { 0x70B3D5, 0xF4A000, 0xF4AFFF, "LACS SRL", "LACS-SRL" }, { 0x70B3D5, 0xF4B000, 0xF4BFFF, "Chengdu Lingya Technology Co., Ltd.", "CHENGDU-LINGYA" }, { 0x70B3D5, 0xF4C000, 0xF4CFFF, "PolyTech A/S", "POLYTECH-A/S" }, { 0x70B3D5, 0xF4D000, 0xF4DFFF, "Honeywell", "HONEYWELL" }, { 0x70B3D5, 0xF4E000, 0xF4EFFF, "Hunan Lianzhong Technology Co.,Ltd.", "HUNAN-LIANZHONG" }, { 0x70B3D5, 0xF4F000, 0xF4FFFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x70B3D5, 0xF50000, 0xF50FFF, "Vectology,Inc", "VECTOLOGY" }, { 0x70B3D5, 0xF51000, 0xF51FFF, "IoT Routers Limited", "IOT-ROUTERS" }, { 0x70B3D5, 0xF52000, 0xF52FFF, "Alere Technologies AS", "ALERE-TECHNOLOGIES-AS" }, { 0x70B3D5, 0xF53000, 0xF53FFF, "HighTechSystem Co.,Ltd.", "HIGHTECHSYSTEM" }, { 0x70B3D5, 0xF54000, 0xF54FFF, "Revolution Retail Systems", "REVOLUTION-RETAIL" }, { 0x70B3D5, 0xF55000, 0xF55FFF, "Kohler Mira Ltd", "KOHLER-MIRA" }, { 0x70B3D5, 0xF56000, 0xF56FFF, "VirtualHere Pty. Ltd.", "VIRTUALHERE-PTY" }, { 0x70B3D5, 0xF57000, 0xF57FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0xF58000, 0xF58FFF, "CDR SRL", "CDR-SRL" }, { 0x70B3D5, 0xF59000, 0xF59FFF, "KOREA SPECTRAL PRODUCTS", "KOREA-SPECTRAL-PRODUCTS" }, { 0x70B3D5, 0xF5A000, 0xF5AFFF, "HAMEG GmbH", "HAMEG" }, { 0x70B3D5, 0xF5B000, 0xF5BFFF, "A.F.MENSAH, INC", "A-F-MENSAH" }, { 0x70B3D5, 0xF5C000, 0xF5CFFF, "Nable Communications, Inc.", "NABLE-COMMUNICATION" }, { 0x70B3D5, 0xF5D000, 0xF5DFFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x70B3D5, 0xF5E000, 0xF5EFFF, "Selex ES Inc.", "SELEX-ES" }, { 0x70B3D5, 0xF5F000, 0xF5FFFF, "RFRain LLC", "RFRAIN" }, { 0x70B3D5, 0xF60000, 0xF60FFF, "MPM Micro Präzision Marx GmbH", "MPM-MICRO-PRAEZISION-MARX" }, { 0x70B3D5, 0xF61000, 0xF61FFF, "Power Diagnostic Service", "POWER-DIAGNOSTIC-SERVICE" }, { 0x70B3D5, 0xF62000, 0xF62FFF, "FRS GmbH & Co. KG", "FRS" }, { 0x70B3D5, 0xF63000, 0xF63FFF, "Ars Products", "ARS-PRODUCTS" }, { 0x70B3D5, 0xF64000, 0xF64FFF, "silicom", "SILICOM" }, { 0x70B3D5, 0xF65000, 0xF65FFF, "MARKUS LABS", "MARKUS-LABS" }, { 0x70B3D5, 0xF66000, 0xF66FFF, "Seznam.cz, a.s., CZ26168685", "SEZNAM-CZ-A-S-CZ26168685" }, { 0x70B3D5, 0xF67000, 0xF67FFF, "winsun AG", "WINSUN" }, { 0x70B3D5, 0xF68000, 0xF68FFF, "AL ZAJEL MODERN TELECOMM", "AL-ZAJEL-MODERN-TELECOMM" }, { 0x70B3D5, 0xF69000, 0xF69FFF, "Copper Labs, Inc.", "COPPER-LABS" }, { 0x70B3D5, 0xF6A000, 0xF6AFFF, "Guan Show Technologe Co., Ltd.", "GUAN-SHOW-TECHNOLOGE" }, { 0x70B3D5, 0xF6B000, 0xF6BFFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0xF6C000, 0xF6CFFF, "VisioGreen", "VISIOGREEN" }, { 0x70B3D5, 0xF6D000, 0xF6DFFF, "Qowisio", "QOWISIO" }, { 0x70B3D5, 0xF6E000, 0xF6EFFF, "Streambox Inc", "STREAMBOX" }, { 0x70B3D5, 0xF6F000, 0xF6FFFF, "Smashtag Ltd", "SMASHTAG" }, { 0x70B3D5, 0xF70000, 0xF70FFF, "Honeywell", "HONEYWELL" }, { 0x70B3D5, 0xF71000, 0xF71FFF, "Sonel S.A.", "SONEL" }, { 0x70B3D5, 0xF72000, 0xF72FFF, "Hanshin Electronics", "HANSHIN-ELECTRONICS" }, { 0x70B3D5, 0xF73000, 0xF73FFF, "ASL Holdings", "ASL-HOLDINGS" }, { 0x70B3D5, 0xF74000, 0xF74FFF, "TESSA AGRITECH SRL", "TESSA-AGRITECH-SRL" }, { 0x70B3D5, 0xF75000, 0xF75FFF, "Enlaps", "ENLAPS" }, { 0x70B3D5, 0xF76000, 0xF76FFF, "Thermo Fisher Scientific", "THERMO-FISHER-SCIENTIFIC" }, { 0x70B3D5, 0xF77000, 0xF77FFF, "Satcube AB", "SATCUBE-AB" }, { 0x70B3D5, 0xF78000, 0xF78FFF, "Manvish eTech Pvt. Ltd.", "MANVISH-ETECH-PVT" }, { 0x70B3D5, 0xF79000, 0xF79FFF, "Firehose Labs, Inc.", "FIREHOSE-LABS" }, { 0x70B3D5, 0xF7A000, 0xF7AFFF, "SENSO2ME", "SENSO2ME" }, { 0x70B3D5, 0xF7B000, 0xF7BFFF, "KST technology", "KST" }, { 0x70B3D5, 0xF7C000, 0xF7CFFF, "Medicomp, Inc", "MEDICOMP" }, { 0x70B3D5, 0xF7D000, 0xF7DFFF, "2M Technology", "2M" }, { 0x70B3D5, 0xF7E000, 0xF7EFFF, "Alpha Elettronica s.r.l.", "ALPHA-ELETTRONICA" }, { 0x70B3D5, 0xF7F000, 0xF7FFFF, "ABL Space Systems", "ABL-SPACE" }, { 0x70B3D5, 0xF80000, 0xF80FFF, "Guan Show Technologe Co., Ltd.", "GUAN-SHOW-TECHNOLOGE" }, { 0x70B3D5, 0xF81000, 0xF81FFF, "Littlemore Scientific", "LITTLEMORE-SCIENTIFIC" }, { 0x70B3D5, 0xF82000, 0xF82FFF, "Preston Industries dba PolyScience", "PRESTON-INDUSTRIES-DBA-POLYSCIENCE" }, { 0x70B3D5, 0xF83000, 0xF83FFF, "Tata Communications Ltd.", "TATA-COMMUNICATION" }, { 0x70B3D5, 0xF84000, 0xF84FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x70B3D5, 0xF85000, 0xF85FFF, "Solystic", "SOLYSTIC" }, { 0x70B3D5, 0xF86000, 0xF86FFF, "NxGen Comm LLC", "NXGEN-COMM" }, { 0x70B3D5, 0xF87000, 0xF87FFF, "SHINWA INDUSTRIES, INC.", "SHINWA-INDUSTRIES" }, { 0x70B3D5, 0xF88000, 0xF88FFF, "ODAWARAKIKI AUTO-MACHINE MFG.CO.,LTD", "ODAWARAKIKI-AUTO-MACHINE-MFG" }, { 0x70B3D5, 0xF89000, 0xF89FFF, "Soehnle Industrial Solutions GmbH", "SOEHNLE-INDUSTRIAL-SOLUTIONS" }, { 0x70B3D5, 0xF8A000, 0xF8AFFF, "FRS GmbH & Co. KG", "FRS" }, { 0x70B3D5, 0xF8B000, 0xF8BFFF, "IOOOTA Srl", "IOOOTA-SRL" }, { 0x70B3D5, 0xF8C000, 0xF8CFFF, "EUROPEAN ADVANCED TECHNOLOGIES", "EUROPEAN-ADVANCED-TECHNOLOGIES" }, { 0x70B3D5, 0xF8D000, 0xF8DFFF, "Flextronics Canafa Design Services", "FLEXTRONICS-CANAFA-DESIGN-SERVICES" }, { 0x70B3D5, 0xF8E000, 0xF8EFFF, "Isabellenhütte Heusler Gmbh &Co KG", "ISABELLENHUETTE-HEUSLER" }, { 0x70B3D5, 0xF8F000, 0xF8FFFF, "DIMASTEC GESTAO DE PONTO E ACESSO EIRELI-ME", "DIMASTEC-GESTAO-DE-PONTO-E-ACESSO-EIRELI-ME" }, { 0x70B3D5, 0xF90000, 0xF90FFF, "Atman Tecnologia Ltda", "ATMAN-TECNOLOGIA-LTDA" }, { 0x70B3D5, 0xF91000, 0xF91FFF, "Solid State Disks Ltd", "SOLID-STATE-DISKS" }, { 0x70B3D5, 0xF92000, 0xF92FFF, "TechOne", "TECHONE" }, { 0x70B3D5, 0xF93000, 0xF93FFF, "Hella Gutmann Solutions GmbH", "HELLA-GUTMANN-SOLUTIONS" }, { 0x70B3D5, 0xF94000, 0xF94FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0xF95000, 0xF95FFF, "Get SAT", "GET-SAT" }, { 0x70B3D5, 0xF96000, 0xF96FFF, "Ecologicsense", "ECOLOGICSENSE" }, { 0x70B3D5, 0xF97000, 0xF97FFF, "Typhon Treatment Systems Ltd", "TYPHON-TREATMENT" }, { 0x70B3D5, 0xF98000, 0xF98FFF, "Metrum Sweden AB", "METRUM-SWEDEN-AB" }, { 0x70B3D5, 0xF99000, 0xF99FFF, "TEX COMPUTER SRL", "TEX-SRL" }, { 0x70B3D5, 0xF9A000, 0xF9AFFF, "Krabbenhøft og Ingolfsson", "KRABBENHFT-OG-INGOLFSSON" }, { 0x70B3D5, 0xF9B000, 0xF9BFFF, "EvoLogics GmbH", "EVOLOGICS" }, { 0x70B3D5, 0xF9C000, 0xF9CFFF, "SureFlap Ltd", "SUREFLAP" }, { 0x70B3D5, 0xF9D000, 0xF9DFFF, "Teledyne API", "TELEDYNE-API" }, { 0x70B3D5, 0xF9E000, 0xF9EFFF, "International Center for Elementary Particle Physics, The University of Tokyo", "CENTER-FOR-ELEMENTARY-PARTICLE-PHYSICS-THE-UNIVERSITY-OF-TOKYO" }, { 0x70B3D5, 0xF9F000, 0xF9FFFF, "M.A.C. Solutions (UK) Ltd", "M-A-C-SOLUTIONS-UK" }, { 0x70B3D5, 0xFA0000, 0xFA0FFF, "TIAMA", "TIAMA" }, { 0x70B3D5, 0xFA1000, 0xFA1FFF, "BBI Engineering, Inc.", "BBI-ENGINEERING" }, { 0x70B3D5, 0xFA2000, 0xFA2FFF, "Sarokal Test Systems Oy", "SAROKAL-TEST-OY" }, { 0x70B3D5, 0xFA3000, 0xFA3FFF, "ELVA-1 MICROWAVE HANDELSBOLAG", "ELVA-1-MICROWAVE-HANDELSBOLAG" }, { 0x70B3D5, 0xFA4000, 0xFA4FFF, "Energybox Limited", "ENERGYBOX" }, { 0x70B3D5, 0xFA5000, 0xFA5FFF, "Shenzhen Hui Rui Tianyan Technology Co., Ltd.", "SHENZHEN-HUI-RUI-TIANYAN" }, { 0x70B3D5, 0xFA6000, 0xFA6FFF, "RFL Electronics, Inc.", "RFL-ELECTRONICS" }, { 0x70B3D5, 0xFA7000, 0xFA7FFF, "Nordson Corporation", "NORDSON" }, { 0x70B3D5, 0xFA8000, 0xFA8FFF, "Munters", "MUNTERS" }, { 0x70B3D5, 0xFA9000, 0xFA9FFF, "CorDes, LLC", "CORDES" }, { 0x70B3D5, 0xFAA000, 0xFAAFFF, "LogiM GmbH Software und Entwicklung", "LOGIM-SOFTWARE-UND-ENTWICKLUNG" }, { 0x70B3D5, 0xFAB000, 0xFABFFF, "Open System Solutions Limited", "OPEN-SYSTEM-SOLUTIONS" }, { 0x70B3D5, 0xFAC000, 0xFACFFF, "Integrated Protein Technologies, Inc.", "INTEGRATED-PROTEIN-TECHNOLOGIES" }, { 0x70B3D5, 0xFAD000, 0xFADFFF, "ARC Technology Solutions, LLC", "ARC-SOLUTIONS" }, { 0x70B3D5, 0xFAE000, 0xFAEFFF, "Silixa Ltd", "SILIXA" }, { 0x70B3D5, 0xFAF000, 0xFAFFFF, "Radig Hard & Software", "RADIG-HARD-SOFTWARE" }, { 0x70B3D5, 0xFB0000, 0xFB0FFF, "Rohde&Schwarz Topex SA", "ROHDE-SCHWARZ-TOPEX" }, { 0x70B3D5, 0xFB1000, 0xFB1FFF, "TOMEI TSUSHIN KOGYO CO,.LTD", "TOMEI-TSUSHIN-KOGYO" }, { 0x70B3D5, 0xFB2000, 0xFB2FFF, "KJ3 Elektronik AB", "KJ3-ELEKTRONIK-AB" }, { 0x70B3D5, 0xFB3000, 0xFB3FFF, "3PS Inc", "3PS" }, { 0x70B3D5, 0xFB4000, 0xFB4FFF, "Array Technologies Inc.", "ARRAY-TECHNOLOGIES" }, { 0x70B3D5, 0xFB5000, 0xFB5FFF, "Orange Tree Technologies Ltd", "ORANGE-TREE-TECHNOLOGIES" }, { 0x70B3D5, 0xFB6000, 0xFB6FFF, "KRONOTECH SRL", "KRONOTECH-SRL" }, { 0x70B3D5, 0xFB7000, 0xFB7FFF, "SAICE", "SAICE" }, { 0x70B3D5, 0xFB8000, 0xFB8FFF, "Hyannis Port Research", "HYANNIS-PORT-RESEARCH" }, { 0x70B3D5, 0xFB9000, 0xFB9FFF, "EYEDEA", "EYEDEA" }, { 0x70B3D5, 0xFBA000, 0xFBAFFF, "Apogee Applied Research, Inc.", "APOGEE-APPLIED-RESEARCH" }, { 0x70B3D5, 0xFBB000, 0xFBBFFF, "Vena Engineering Corporation", "VENA-ENGINEERING" }, { 0x70B3D5, 0xFBC000, 0xFBCFFF, "Twoway Communications, Inc.", "TWOWAY-COMMUNICATION" }, { 0x70B3D5, 0xFBD000, 0xFBDFFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0xFBE000, 0xFBEFFF, "Hanbat National University", "HANBAT-NATIONAL-UNIVERSITY" }, { 0x70B3D5, 0xFBF000, 0xFBFFFF, "SenSys (Design Electronics Ltd)", "SENSYS-DESIGN-ELECTRONICS" }, { 0x70B3D5, 0xFC0000, 0xFC0FFF, "CODESYSTEM Co.,Ltd", "CODESYSTEM" }, { 0x70B3D5, 0xFC1000, 0xFC1FFF, "InDiCor", "INDICOR" }, { 0x70B3D5, 0xFC2000, 0xFC2FFF, "HUNTER LIBERTY CORPORATION", "HUNTER-LIBERTY" }, { 0x70B3D5, 0xFC3000, 0xFC3FFF, "myUpTech AB", "MYUPTECH-AB" }, { 0x70B3D5, 0xFC4000, 0xFC4FFF, "AERIAL CAMERA SYSTEMS Ltd", "AERIAL-CAMERA" }, { 0x70B3D5, 0xFC5000, 0xFC5FFF, "Eltwin A/S", "ELTWIN-A/S" }, { 0x70B3D5, 0xFC6000, 0xFC6FFF, "Tecnint HTE SRL", "TECNINT-HTE-SRL" }, { 0x70B3D5, 0xFC7000, 0xFC7FFF, "Invert Robotics Ltd.", "INVERT-ROBOTICS" }, { 0x70B3D5, 0xFC8000, 0xFC8FFF, "Moduware PTY LTD", "MODUWARE-PTY" }, { 0x70B3D5, 0xFC9000, 0xFC9FFF, "Shanghai EICT Global Service Co., Ltd", "SHANGHAI-EICT-GLOBAL-SERVICE" }, { 0x70B3D5, 0xFCA000, 0xFCAFFF, "M2M Cybernetics Pvt Ltd", "M2M-CYBERNETICS-PVT" }, { 0x70B3D5, 0xFCB000, 0xFCBFFF, "Tieline Research Pty Ltd", "TIELINE-RESEARCH-PTY" }, { 0x70B3D5, 0xFCC000, 0xFCCFFF, "DIgSILENT GmbH", "DIGSILENT" }, { 0x70B3D5, 0xFCD000, 0xFCDFFF, "Engage Technologies", "ENGAGE-TECHNOLOGIES" }, { 0x70B3D5, 0xFCE000, 0xFCEFFF, "FX TECHNOLOGY LIMITED", "FX" }, { 0x70B3D5, 0xFCF000, 0xFCFFFF, "Acc+Ess Ltd", "ACC+ESS" }, { 0x70B3D5, 0xFD0000, 0xFD0FFF, "Alcohol Countermeasure Systems", "ALCOHOL-COUNTERMEASURE" }, { 0x70B3D5, 0xFD1000, 0xFD1FFF, "RedRat Ltd", "REDRAT" }, { 0x70B3D5, 0xFD2000, 0xFD2FFF, "DALIAN LEVEAR ELECTRIC CO., LTD", "DALIAN-LEVEAR-ELECTRIC" }, { 0x70B3D5, 0xFD3000, 0xFD3FFF, "AKIS technologies", "AKIS-TECHNOLOGIES" }, { 0x70B3D5, 0xFD4000, 0xFD4FFF, "GETRALINE", "GETRALINE" }, { 0x70B3D5, 0xFD5000, 0xFD5FFF, "OCEANCCTV LTD", "OCEANCCTV" }, { 0x70B3D5, 0xFD6000, 0xFD6FFF, "Visual Fan", "VISUAL-FAN" }, { 0x70B3D5, 0xFD7000, 0xFD7FFF, "Centum Adetel Group", "CENTUM-ADETEL-GROUP" }, { 0x70B3D5, 0xFD8000, 0xFD8FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x70B3D5, 0xFD9000, 0xFD9FFF, "eSight", "ESIGHT" }, { 0x70B3D5, 0xFDA000, 0xFDAFFF, "ACD Elektronik GmbH", "ACD-ELEKTRONIK" }, { 0x70B3D5, 0xFDB000, 0xFDBFFF, "Design SHIFT", "DESIGN-SHIFT" }, { 0x70B3D5, 0xFDC000, 0xFDCFFF, "Tapdn", "TAPDN" }, { 0x70B3D5, 0xFDD000, 0xFDDFFF, "Laser Imagineering Vertriebs GmbH", "LASER-IMAGINEERING-VERTRIEBS" }, { 0x70B3D5, 0xFDE000, 0xFDEFFF, "AERONAUTICAL & GENERAL INSTRUMENTS LTD.", "AERONAUTICAL-GENERAL-INSTRUMENTS" }, { 0x70B3D5, 0xFDF000, 0xFDFFFF, "NARA CONTROLS INC.", "NARA-CONTROLS" }, { 0x70B3D5, 0xFE0000, 0xFE0FFF, "Blueprint Lab", "BLUEPRINT-LAB" }, { 0x70B3D5, 0xFE1000, 0xFE1FFF, "Shenzhen Zhiting Technology Co.,Ltd", "SHENZHEN-ZHITING" }, { 0x70B3D5, 0xFE2000, 0xFE2FFF, "Galileo Tıp Teknolojileri San. ve Tic. A.S.", "GALILEO-TP-TEKNOLOJILERI-SAN-VE-TIC" }, { 0x70B3D5, 0xFE3000, 0xFE3FFF, "CSM MACHINERY srl", "CSM-MACHINERY-SRL" }, { 0x70B3D5, 0xFE4000, 0xFE4FFF, "CARE PVT LTD", "CARE-PVT" }, { 0x70B3D5, 0xFE5000, 0xFE5FFF, "Malin Space Science System", "MALIN-SPACE-SCIENCE-SYSTEM" }, { 0x70B3D5, 0xFE6000, 0xFE6FFF, "SHIZUKI ELECTRIC CO.,INC", "SHIZUKI-ELECTRIC" }, { 0x70B3D5, 0xFE7000, 0xFE7FFF, "VEILUX INC.", "VEILUX" }, { 0x70B3D5, 0xFE8000, 0xFE8FFF, "PCME Ltd.", "PCME" }, { 0x70B3D5, 0xFE9000, 0xFE9FFF, "Camsat Przemysław Gralak", "CAMSAT-PRZEMYSAW-GRALAK" }, { 0x70B3D5, 0xFEA000, 0xFEAFFF, "Heng Dian Technology Co., Ltd", "HENG-DIAN" }, { 0x70B3D5, 0xFEB000, 0xFEBFFF, "Les distributions Multi-Secure incorporee", "LES-DISTRIBUTIONS-MULTI-SECURE-INCORPOREE" }, { 0x70B3D5, 0xFEC000, 0xFECFFF, "Finder SpA", "FINDER-SPA" }, { 0x70B3D5, 0xFED000, 0xFEDFFF, "Niron systems & Projects", "NIRON-PROJECTS" }, { 0x70B3D5, 0xFEE000, 0xFEEFFF, "Kawasaki Robot Service,Ltd.", "KAWASAKI-ROBOT-SERVICE" }, { 0x70B3D5, 0xFEF000, 0xFEFFFF, "HANGZHOU HUALAN MICROELECTRONIQUE CO.,LTD", "HANGZHOU-HUALAN-MICROELECTRONIQUE" }, { 0x70B3D5, 0xFF0000, 0xFF0FFF, "E-MetroTel", "E-METROTEL" }, { 0x70B3D5, 0xFF1000, 0xFF1FFF, "Data Strategy Limited", "DATA-STRATEGY" }, { 0x70B3D5, 0xFF2000, 0xFF2FFF, "tiga.eleven GmbH", "TIGA-ELEVEN" }, { 0x70B3D5, 0xFF3000, 0xFF3FFF, "Aplex Technology Inc.", "APLEX" }, { 0x70B3D5, 0xFF4000, 0xFF4FFF, "Serveron Corporation", "SERVERON" }, { 0x70B3D5, 0xFF5000, 0xFF5FFF, "Prolan Process Control Co.", "PROLAN-PROCESS-CONTROL" }, { 0x70B3D5, 0xFF6000, 0xFF6FFF, "Elektro Adrian", "ELEKTRO-ADRIAN" }, { 0x70B3D5, 0xFF7000, 0xFF7FFF, "Cybercom AB", "CYBERCOM-AB" }, { 0x70B3D5, 0xFF8000, 0xFF8FFF, "Dutile, Glines and Higgins Corporation", "DUTILE-GLINES-AND-HIGGINS" }, { 0x70B3D5, 0xFF9000, 0xFF9FFF, "InOut Communication Systems", "INOUT-COMMUNICATION" }, { 0x70B3D5, 0xFFA000, 0xFFAFFF, "Barracuda Measurement Solutions", "BARRACUDA-MEASUREMENT-SOLUTIONS" }, { 0x70B3D5, 0xFFB000, 0xFFBFFF, "QUERCUS TECHNOLOGIES, S.L.", "QUERCUS-TECHNOLOGIES" }, { 0x70B3D5, 0xFFC000, 0xFFCFFF, "Symetrics Industries d.b.a. Extant Aerospace", "SYMETRICS-INDUSTRIES-D-B-A-EXTANT-AEROSPACE" }, { 0x70B3D5, 0xFFD000, 0xFFDFFF, "i2Systems", "I2SYSTEMS" }, { 0x70B3D5, 0xFFE000, 0xFFEFFF, "Private", "PRIVATE" }, { 0x70B3D5, 0xFFF000, 0xFFFFFF, "Private", "PRIVATE" }, { 0x8C1F64, 0x000000, 0x000FFF, "Suzhou Xingxiangyi Precision Manufacturing Co.,Ltd.", "SUZHOU-XINGXIANGYI-PRECISION-MANUFACTURING" }, { 0x8C1F64, 0x003000, 0x003FFF, "Brighten Controls LLP", "BRIGHTEN-CONTROLS-LLP" }, { 0x8C1F64, 0x009000, 0x009FFF, "Converging Systems Inc.", "CONVERGING" }, { 0x8C1F64, 0x00C000, 0x00CFFF, "Guan Show Technologe Co., Ltd.", "GUAN-SHOW-TECHNOLOGE" }, { 0x8C1F64, 0x011000, 0x011FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x8C1F64, 0x017000, 0x017FFF, "Farmote Limited", "FARMOTE" }, { 0x8C1F64, 0x01A000, 0x01AFFF, "Paragraf", "PARAGRAF" }, { 0x8C1F64, 0x01E000, 0x01EFFF, "SCIREQ Scientific Respiratory Equipment Inc", "SCIREQ-SCIENTIFIC-RESPIRATORY-EQUIPMENT" }, { 0x8C1F64, 0x020000, 0x020FFF, "Utthunga Techologies Pvt Ltd", "UTTHUNGA-TECHOLOGIES-PVT" }, { 0x8C1F64, 0x024000, 0x024FFF, "Shin Nihon Denshi Co., Ltd.", "SHIN-NIHON-DENSHI" }, { 0x8C1F64, 0x025000, 0x025FFF, "SMITEC S.p.A.", "SMITEC" }, { 0x8C1F64, 0x029000, 0x029FFF, "Hunan Shengyun Photoelectric Technology Co.,LTD", "HUNAN-SHENGYUN-PHOTOELECTRIC" }, { 0x8C1F64, 0x02F000, 0x02FFFF, "SOLIDpower SpA", "SOLIDPOWER-SPA" }, { 0x8C1F64, 0x033000, 0x033FFF, "IQ Home Kft.", "IQ-HOME-KFT" }, { 0x8C1F64, 0x03C000, 0x03CFFF, "Sona Business B.V.", "SONA-BUSINESS-B-V" }, { 0x8C1F64, 0x043000, 0x043FFF, "AperNet, LLC", "APERNET" }, { 0x8C1F64, 0x045000, 0x045FFF, "VEILUX INC.", "VEILUX" }, { 0x8C1F64, 0x046000, 0x046FFF, "American Fullway Corp.", "AMERICAN-FULLWAY" }, { 0x8C1F64, 0x048000, 0x048FFF, "FieldLine Medical", "FIELDLINE-MEDICAL" }, { 0x8C1F64, 0x051000, 0x051FFF, "CP contech electronic GmbH", "CP-CONTECH" }, { 0x8C1F64, 0x056000, 0x056FFF, "DONG GUAN YUNG FU ELECTRONICS LTD.", "DONG-GUAN-YUNG-FU-ELECTRONICS" }, { 0x8C1F64, 0x059000, 0x059FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x8C1F64, 0x05C000, 0x05CFFF, "tickIoT Inc.", "TICKIOT" }, { 0x8C1F64, 0x05F000, 0x05FFFF, "ESCAD AUTOMATION GmbH", "ESCAD-AUTOMATION" }, { 0x8C1F64, 0x061000, 0x061FFF, "Micron Systems", "MICRON" }, { 0x8C1F64, 0x06A000, 0x06AFFF, "Intellisense Systems Inc.", "INTELLISENSE" }, { 0x8C1F64, 0x06B000, 0x06BFFF, "Sanwa Supply Inc.", "SANWA-SUPPLY" }, { 0x8C1F64, 0x06D000, 0x06DFFF, "Monnit Corporation", "MONNIT" }, { 0x8C1F64, 0x071000, 0x071FFF, "DORLET SAU", "DORLET-SAU" }, { 0x8C1F64, 0x077000, 0x077FFF, "Engage Technologies", "ENGAGE-TECHNOLOGIES" }, { 0x8C1F64, 0x07A000, 0x07AFFF, "Flextronics International Kft", "FLEXTRONICS-KFT" }, { 0x8C1F64, 0x07E000, 0x07EFFF, "FLOYD inc.", "FLOYD" }, { 0x8C1F64, 0x080000, 0x080FFF, "Twinleaf LLC", "TWINLEAF" }, { 0x8C1F64, 0x083000, 0x083FFF, "Avionica", "AVIONICA" }, { 0x8C1F64, 0x085000, 0x085FFF, "SORB ENGINEERING LLC", "SORB-ENGINEERING" }, { 0x8C1F64, 0x086000, 0x086FFF, "WEPTECH elektronik GmbH", "WEPTECH-ELEKTRONIK" }, { 0x8C1F64, 0x08B000, 0x08BFFF, "Shanghai Shenxu Technology Co., Ltd", "SHANGHAI-SHENXU" }, { 0x8C1F64, 0x08D000, 0x08DFFF, "NEETRA SRL SB", "NEETRA-SRL-SB" }, { 0x8C1F64, 0x08E000, 0x08EFFF, "qiio AG", "QIIO" }, { 0x8C1F64, 0x08F000, 0x08FFFF, "AixControl GmbH", "AIXCONTROL" }, { 0x8C1F64, 0x092000, 0x092FFF, "Gogo BA", "GOGO-BA" }, { 0x8C1F64, 0x093000, 0x093FFF, "MAG Audio LLC", "MAG-AUDIO" }, { 0x8C1F64, 0x097000, 0x097FFF, "FoMa Systems GmbH", "FOMA" }, { 0x8C1F64, 0x098000, 0x098FFF, "Agvolution GmbH", "AGVOLUTION" }, { 0x8C1F64, 0x099000, 0x099FFF, "Pantherun Technologies Pvt Ltd", "PANTHERUN-TECHNOLOGIES-PVT" }, { 0x8C1F64, 0x09B000, 0x09BFFF, "Taiv", "TAIV" }, { 0x8C1F64, 0x09D000, 0x09DFFF, "FLEXTRONICS INTERNATIONAL KFT", "FLEXTRONICS-KFT" }, { 0x8C1F64, 0x09E000, 0x09EFFF, "IWS Global Pty Ltd", "IWS-GLOBAL-PTY" }, { 0x8C1F64, 0x09F000, 0x09FFFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x8C1F64, 0x0A4000, 0x0A4FFF, "Dynamic Research, Inc.", "DYNAMIC-RESEARCH" }, { 0x8C1F64, 0x0A8000, 0x0A8FFF, "SamabaNova Systems", "SAMABANOVA" }, { 0x8C1F64, 0x0AA000, 0x0AAFFF, "DI3 INFOTECH LLP", "DI3-INFOTECH-LLP" }, { 0x8C1F64, 0x0AB000, 0x0ABFFF, "Norbit ODM AS", "NORBIT-ODM-AS" }, { 0x8C1F64, 0x0AC000, 0x0ACFFF, "Patch Technologies, Inc.", "PATCH-TECHNOLOGIES" }, { 0x8C1F64, 0x0AF000, 0x0AFFFF, "FORSEE POWER", "FORSEE-POWER" }, { 0x8C1F64, 0x0B0000, 0x0B0FFF, "Bunka Shutter Co., Ltd.", "BUNKA-SHUTTER" }, { 0x8C1F64, 0x0B6000, 0x0B6FFF, "Luke Granger-Brown", "LUKE-GRANGER-BROWN" }, { 0x8C1F64, 0x0B7000, 0x0B7FFF, "TIAMA", "TIAMA" }, { 0x8C1F64, 0x0B8000, 0x0B8FFF, "Signatrol Ltd", "SIGNATROL" }, { 0x8C1F64, 0x0BB000, 0x0BBFFF, "InfraChen Technology Co., Ltd.", "INFRACHEN" }, { 0x8C1F64, 0x0BE000, 0x0BEFFF, "BNB", "BNB" }, { 0x8C1F64, 0x0BF000, 0x0BFFFF, "Aurora Communication Technologies Corp.", "AURORA-COMMUNICATION-TECHNOLOGIES" }, { 0x8C1F64, 0x0C0000, 0x0C0FFF, "Active Research Limited", "ACTIVE-RESEARCH" }, { 0x8C1F64, 0x0C5000, 0x0C5FFF, "TechnipFMC", "TECHNIPFMC" }, { 0x8C1F64, 0x0CA000, 0x0CAFFF, "CLOUD TELECOM Inc.", "CLOUD-TELECOM" }, { 0x8C1F64, 0x0D5000, 0x0D5FFF, "RealD, Inc.", "REALD" }, { 0x8C1F64, 0x0D6000, 0x0D6FFF, "AVD INNOVATION LIMITED", "AVD-INNOVATION" }, { 0x8C1F64, 0x0D8000, 0x0D8FFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x8C1F64, 0x0E0000, 0x0E0FFF, "Autopharma", "AUTOPHARMA" }, { 0x8C1F64, 0x0E6000, 0x0E6FFF, "Cleanwatts Digital, S.A.", "CLEANWATTS-DIGITAL" }, { 0x8C1F64, 0x0EA000, 0x0EAFFF, "SmartSky Networks LLC", "SMARTSKY-NETWORKS" }, { 0x8C1F64, 0x0EE000, 0x0EEFFF, "Rich Source Precision IND., Co., LTD.", "RICH-SOURCE-PRECISION-IND" }, { 0x8C1F64, 0x0EF000, 0x0EFFFF, "DAVE SRL", "DAVE-SRL" }, { 0x8C1F64, 0x0F0000, 0x0F0FFF, "Xylon", "XYLON" }, { 0x8C1F64, 0x0F2000, 0x0F2FFF, "Graphimecc Group SRL", "GRAPHIMECC-GROUP-SRL" }, { 0x8C1F64, 0x0F4000, 0x0F4FFF, "AW-SOM Technologies LLC", "AW-SOM-TECHNOLOGIES" }, { 0x8C1F64, 0x0F5000, 0x0F5FFF, "Vishay Nobel AB", "VISHAY-NOBEL-AB" }, { 0x8C1F64, 0x0F9000, 0x0F9FFF, "ikan International LLC", "IKAN" }, { 0x8C1F64, 0x0FE000, 0x0FEFFF, "Indra Heera Technology LLP", "INDRA-HEERA-LLP" }, { 0x8C1F64, 0x101000, 0x101FFF, "ASW-ATI Srl", "ASW-ATI-SRL" }, { 0x8C1F64, 0x103000, 0x103FFF, "KRONOTECH SRL", "KRONOTECH-SRL" }, { 0x8C1F64, 0x111000, 0x111FFF, "ISAC SRL", "ISAC-SRL" }, { 0x8C1F64, 0x113000, 0x113FFF, "Timberline Manufacturing", "TIMBERLINE-MANUFACTURING" }, { 0x8C1F64, 0x115000, 0x115FFF, "Neuralog LP", "NEURALOG-LP" }, { 0x8C1F64, 0x117000, 0x117FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x8C1F64, 0x118000, 0x118FFF, "Automata GmbH & Co. KG", "AUTOMATA" }, { 0x8C1F64, 0x11F000, 0x11FFFF, "NodeUDesign", "NODEUDESIGN" }, { 0x8C1F64, 0x126000, 0x126FFF, "Harvest Technology Pty Ltd", "HARVEST-PTY" }, { 0x8C1F64, 0x128000, 0x128FFF, "YULISTA INTEGRATED SOLUTION", "YULISTA-INTEGRATED-SOLUTION" }, { 0x8C1F64, 0x12B000, 0x12BFFF, "Beijing Tongtech Technology Co., Ltd.", "BEIJING-TONGTECH" }, { 0x8C1F64, 0x12E000, 0x12EFFF, "inomatic GmbH", "INOMATIC" }, { 0x8C1F64, 0x133000, 0x133FFF, "Vtron Pty Ltd", "VTRON-PTY" }, { 0x8C1F64, 0x135000, 0x135FFF, "Yuval Fichman", "YUVAL-FICHMAN" }, { 0x8C1F64, 0x138000, 0x138FFF, "Vissavi sp. z o.o.", "VISSAVI-SP-Z-O-O" }, { 0x8C1F64, 0x13F000, 0x13FFFF, "Elsist Srl", "ELSIST-SRL" }, { 0x8C1F64, 0x144000, 0x144FFF, "Langfang ENN lntelligent Technology Co.,Ltd.", "LANGFANG-ENN-LNTELLIGENT" }, { 0x8C1F64, 0x145000, 0x145FFF, "Spectrum FiftyNine BV", "SPECTRUM-FIFTYNINE" }, { 0x8C1F64, 0x148000, 0x148FFF, "CAREHAWK", "CAREHAWK" }, { 0x8C1F64, 0x14B000, 0x14BFFF, "Potter Electric Signal Company", "POTTER-ELECTRIC-SIGNAL-COMPANY" }, { 0x8C1F64, 0x14D000, 0x14DFFF, "Vertesz Elektronika Kft.", "VERTESZ-ELEKTRONIKA-KFT" }, { 0x8C1F64, 0x151000, 0x151FFF, "Gogo Business Aviation", "GOGO-BUSINESS-AVIATION" }, { 0x8C1F64, 0x154000, 0x154FFF, "Flextronics International Kft", "FLEXTRONICS-KFT" }, { 0x8C1F64, 0x15C000, 0x15CFFF, "TRON FUTURE TECH INC.", "TRON-FUTURE-TECH" }, { 0x8C1F64, 0x15E000, 0x15EFFF, "Dynomotion, Inc", "DYNOMOTION" }, { 0x8C1F64, 0x164000, 0x164FFF, "Revo - Tec GmbH", "REVO-TEC" }, { 0x8C1F64, 0x166000, 0x166FFF, "Hikari Alphax Inc.", "HIKARI-ALPHAX" }, { 0x8C1F64, 0x16D000, 0x16DFFF, "Xiamen Rgblink Science & Technology Co., Ltd.", "XIAMEN-RGBLINK-SCIENCE" }, { 0x8C1F64, 0x16E000, 0x16EFFF, "Benchmark Electronics BV", "BENCHMARK-ELECTRONICS" }, { 0x8C1F64, 0x177000, 0x177FFF, "Emcom Systems", "EMCOM" }, { 0x8C1F64, 0x179000, 0x179FFF, "Agrowtek Inc.", "AGROWTEK" }, { 0x8C1F64, 0x17C000, 0x17CFFF, "Zelp Ltd", "ZELP" }, { 0x8C1F64, 0x17E000, 0x17EFFF, "MI Inc.", "MI" }, { 0x8C1F64, 0x187000, 0x187FFF, "Sicon srl", "SICON-SRL" }, { 0x8C1F64, 0x18B000, 0x18BFFF, "M-Pulse GmbH & Co.KG", "M-PULSE" }, { 0x8C1F64, 0x193000, 0x193FFF, "Sicon srl", "SICON-SRL" }, { 0x8C1F64, 0x194000, 0x194FFF, "TIFLEX", "TIFLEX" }, { 0x8C1F64, 0x197000, 0x197FFF, "TEKVOX, Inc", "TEKVOX" }, { 0x8C1F64, 0x19B000, 0x19BFFF, "FeedFlo", "FEEDFLO" }, { 0x8C1F64, 0x19C000, 0x19CFFF, "Aton srl", "ATON-SRL" }, { 0x8C1F64, 0x1A0000, 0x1A0FFF, "Engage Technologies", "ENGAGE-TECHNOLOGIES" }, { 0x8C1F64, 0x1A5000, 0x1A5FFF, "DIALTRONICS SYSTEMS PVT LTD", "DIALTRONICS-PVT" }, { 0x8C1F64, 0x1A7000, 0x1A7FFF, "aelettronica group srl", "AELETTRONICA-GROUP-SRL" }, { 0x8C1F64, 0x1AD000, 0x1ADFFF, "Nexxto Servicos Em Tecnologia da Informacao SA", "NEXXTO-SERVICOS-EM-TECNOLOGIA-DA-INFORMACAO" }, { 0x8C1F64, 0x1AF000, 0x1AFFFF, "EnviroNode IoT Solutions", "ENVIRONODE-IOT-SOLUTIONS" }, { 0x8C1F64, 0x1B2000, 0x1B2FFF, "Rapid-e-Engineering Steffen Kramer", "RAPID-E-ENGINEERING-STEFFEN-KRAMER" }, { 0x8C1F64, 0x1B5000, 0x1B5FFF, "Xicato", "XICATO" }, { 0x8C1F64, 0x1B6000, 0x1B6FFF, "Red Sensors Limited", "RED-SENSORS" }, { 0x8C1F64, 0x1B7000, 0x1B7FFF, "Rax-Tech International", "RAX-TECH" }, { 0x8C1F64, 0x1BB000, 0x1BBFFF, "Renwei Electronics Technology (Shenzhen) Co.,LTD.", "RENWEI-ELECTRONICS-SHENZHEN" }, { 0x8C1F64, 0x1BD000, 0x1BDFFF, "DORLET SAU", "DORLET-SAU" }, { 0x8C1F64, 0x1BF000, 0x1BFFFF, "Ossia Inc", "OSSIA" }, { 0x8C1F64, 0x1C0000, 0x1C0FFF, "INVENTIA Sp. z o.o.", "INVENTIA-SP-Z-O-O" }, { 0x8C1F64, 0x1C2000, 0x1C2FFF, "Solid Invent Ltda.", "SOLID-INVENT-LTDA" }, { 0x8C1F64, 0x1CB000, 0x1CBFFF, "SASYS e.K.", "SASYS-E-K" }, { 0x8C1F64, 0x1CE000, 0x1CEFFF, "Eiden Co.,Ltd.", "EIDEN" }, { 0x8C1F64, 0x1D0000, 0x1D0FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x8C1F64, 0x1D1000, 0x1D1FFF, "AS Strömungstechnik GmbH", "AS-STROEMUNGSTECHNIK" }, { 0x8C1F64, 0x1D6000, 0x1D6FFF, "ZHEJIANG QIAN INFORMATION & TECHNOLOGIES", "ZHEJIANG-QIAN-INFORMATION-TECHNOLOGIES" }, { 0x8C1F64, 0x1D8000, 0x1D8FFF, "Mesomat inc.", "MESOMAT" }, { 0x8C1F64, 0x1DA000, 0x1DAFFF, "Chongqing Huaxiu Technology Co.,Ltd", "CHONGQING-HUAXIU" }, { 0x8C1F64, 0x1E1000, 0x1E1FFF, "VAF Co.", "VAF" }, { 0x8C1F64, 0x1E3000, 0x1E3FFF, "WBNet", "WBNET" }, { 0x8C1F64, 0x1EF000, 0x1EFFFF, "Tantronic AG", "TANTRONIC" }, { 0x8C1F64, 0x1F0000, 0x1F0FFF, "AVCOMM Technologies Inc", "AVCOMM-TECHNOLOGIES" }, { 0x8C1F64, 0x1F5000, 0x1F5FFF, "NanoThings Inc.", "NANOTHINGS" }, { 0x8C1F64, 0x1FE000, 0x1FEFFF, "Burk Technology", "BURK" }, { 0x8C1F64, 0x204000, 0x204FFF, "castcore", "CASTCORE" }, { 0x8C1F64, 0x208000, 0x208FFF, "Sichuan AnSphere Technology Co. Ltd.", "SICHUAN-ANSPHERE" }, { 0x8C1F64, 0x20C000, 0x20CFFF, "Shanghai Stairmed Technology Co.,ltd", "SHANGHAI-STAIRMED" }, { 0x8C1F64, 0x20E000, 0x20EFFF, "Alpha Bridge Technologies Private Limited", "ALPHA-BRIDGE-TECHNOLOGIES-PRIVATE" }, { 0x8C1F64, 0x211000, 0x211FFF, "Bipom Electronics, Inc.", "BIPOM-ELECTRONICS" }, { 0x8C1F64, 0x219000, 0x219FFF, "Guangzhou Desam Audio Co.,Ltd", "GUANGZHOU-DESAM-AUDIO" }, { 0x8C1F64, 0x21C000, 0x21CFFF, "LLC EMS-Expert", "LLC-EMS-EXPERT" }, { 0x8C1F64, 0x224000, 0x224FFF, "PHB Eletronica Ltda.", "PHB-ELETRONICA-LTDA" }, { 0x8C1F64, 0x227000, 0x227FFF, "Digilens", "DIGILENS" }, { 0x8C1F64, 0x22E000, 0x22EFFF, "Jide Car Rastreamento e Monitoramento LTDA", "JIDE-CAR-RASTREAMENTO-E-MONITORAMENTO-LTDA" }, { 0x8C1F64, 0x232000, 0x232FFF, "Monnit Corporation", "MONNIT" }, { 0x8C1F64, 0x23D000, 0x23DFFF, "Mokila Networks Pvt Ltd", "MOKILA-NETWORKS-PVT" }, { 0x8C1F64, 0x240000, 0x240FFF, "HuiTong intelligence Company", "HUITONG-INTELLIGENCE-COMPANY" }, { 0x8C1F64, 0x242000, 0x242FFF, "GIORDANO CONTROLS SPA", "GIORDANO-CONTROLS-SPA" }, { 0x8C1F64, 0x24C000, 0x24CFFF, "Shenzhen Link-All Technolgy Co., Ltd", "SHENZHEN-LINK-ALL-TECHNOLGY" }, { 0x8C1F64, 0x251000, 0x251FFF, "Watchdog Systems", "WATCHDOG" }, { 0x8C1F64, 0x252000, 0x252FFF, "TYT Electronics CO., LTD", "TYT-ELECTRONICS" }, { 0x8C1F64, 0x254000, 0x254FFF, "Zhuhai Yunzhou Intelligence Technology Ltd.", "ZHUHAI-YUNZHOU-INTELLIGENCE" }, { 0x8C1F64, 0x256000, 0x256FFF, "Landinger", "LANDINGER" }, { 0x8C1F64, 0x25A000, 0x25AFFF, "Wuhan Xingtuxinke ELectronic Co.,Ltd", "WUHAN-XINGTUXINKE" }, { 0x8C1F64, 0x25C000, 0x25CFFF, "TimeMachines Inc.", "TIMEMACHINES" }, { 0x8C1F64, 0x25E000, 0x25EFFF, "R2Sonic, LLC", "R2SONIC" }, { 0x8C1F64, 0x263000, 0x263FFF, "EPC Power Corporation", "EPC-POWER" }, { 0x8C1F64, 0x264000, 0x264FFF, "BR. Voss Ingenjörsfirma AB", "BR-VOSS-INGENJOERSFIRMA-AB" }, { 0x8C1F64, 0x267000, 0x267FFF, "Karl DUNGS GmbH & Co. KG", "KARL-DUNGS" }, { 0x8C1F64, 0x268000, 0x268FFF, "Astro Machine Corporation", "ASTRO-MACHINE" }, { 0x8C1F64, 0x26E000, 0x26EFFF, "Koizumi Lighting Technology Corp.", "KOIZUMI-LIGHTING" }, { 0x8C1F64, 0x270000, 0x270FFF, "Xi‘an Hangguang Satellite and Control Technology Co.,Ltd", "XIAN-HANGGUANG-SATELLITE-AND-CONTROL" }, { 0x8C1F64, 0x274000, 0x274FFF, "INVIXIUM ACCESS INC", "INVIXIUM-ACCESS" }, { 0x8C1F64, 0x281000, 0x281FFF, "NVP TECO LTD", "NVP-TECO" }, { 0x8C1F64, 0x286000, 0x286FFF, "i2s", "I2S" }, { 0x8C1F64, 0x289000, 0x289FFF, "Craft4 Digital GmbH", "CRAFT4-DIGITAL" }, { 0x8C1F64, 0x28A000, 0x28AFFF, "Arcopie", "ARCOPIE" }, { 0x8C1F64, 0x28C000, 0x28CFFF, "Sakura Seiki Co.,Ltd.", "SAKURA-SEIKI" }, { 0x8C1F64, 0x28D000, 0x28DFFF, "AVA Monitoring AB", "AVA-MONITORING-AB" }, { 0x8C1F64, 0x292000, 0x292FFF, "Gogo Business Aviation", "GOGO-BUSINESS-AVIATION" }, { 0x8C1F64, 0x293000, 0x293FFF, "Landis+Gyr Equipamentos de Medição Ltda", "LANDIS+GYR-EQUIPAMENTOS-DE-MEDIO-LTDA" }, { 0x8C1F64, 0x296000, 0x296FFF, "Roog zhi tong Technology(Beijing) Co.,Ltd", "ROOG-ZHI-TONG-BEIJING" }, { 0x8C1F64, 0x298000, 0x298FFF, "Megger Germany GmbH", "MEGGER-GERMANY" }, { 0x8C1F64, 0x29F000, 0x29FFFF, "NAGTECH LLC", "NAGTECH" }, { 0x8C1F64, 0x2A1000, 0x2A1FFF, "Pantherun Technologies Pvt Ltd", "PANTHERUN-TECHNOLOGIES-PVT" }, { 0x8C1F64, 0x2A5000, 0x2A5FFF, "Nonet Inc", "NONET" }, { 0x8C1F64, 0x2A8000, 0x2A8FFF, "SHALARM SECURITY Co.,LTD", "SHALARM-SECURITY" }, { 0x8C1F64, 0x2A9000, 0x2A9FFF, "Elbit Systems of America, LLC", "ELBIT-OF-AMERICA" }, { 0x8C1F64, 0x2B6000, 0x2B6FFF, "Stercom Power Solutions GmbH", "STERCOM-POWER-SOLUTIONS" }, { 0x8C1F64, 0x2B8000, 0x2B8FFF, "Veinland GmbH", "VEINLAND" }, { 0x8C1F64, 0x2BB000, 0x2BBFFF, "Chakra Technology Ltd", "CHAKRA" }, { 0x8C1F64, 0x2C2000, 0x2C2FFF, "TEX COMPUTER SRL", "TEX-SRL" }, { 0x8C1F64, 0x2C3000, 0x2C3FFF, "TeraDiode / Panasonic", "TERADIODE-/-PANASONIC" }, { 0x8C1F64, 0x2C5000, 0x2C5FFF, "SYSN", "SYSN" }, { 0x8C1F64, 0x2C6000, 0x2C6FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x8C1F64, 0x2C7000, 0x2C7FFF, "CONTRALTO AUDIO SRL", "CONTRALTO-AUDIO-SRL" }, { 0x8C1F64, 0x2C8000, 0x2C8FFF, "BRS Sistemas Eletrônicos", "BRS-SISTEMAS-ELETRNICOS" }, { 0x8C1F64, 0x2CB000, 0x2CBFFF, "Smart Component Technologies Ltd", "SMART-COMPONENT-TECHNOLOGIES" }, { 0x8C1F64, 0x2CD000, 0x2CDFFF, "Taiwan Vtron", "TAIWAN-VTRON" }, { 0x8C1F64, 0x2D0000, 0x2D0FFF, "Cambridge Research Systems Ltd", "CAMBRIDGE-RESEARCH" }, { 0x8C1F64, 0x2D8000, 0x2D8FFF, "CONTROL SYSTEMS Srl", "CONTROL-SRL" }, { 0x8C1F64, 0x2DE000, 0x2DEFFF, "Polar Bear Design", "POLAR-BEAR-DESIGN" }, { 0x8C1F64, 0x2DF000, 0x2DFFFF, "Ubotica Technologies", "UBOTICA-TECHNOLOGIES" }, { 0x8C1F64, 0x2E2000, 0x2E2FFF, "Mark Roberts Motion Control", "MARK-ROBERTS-MOTION-CONTROL" }, { 0x8C1F64, 0x2E3000, 0x2E3FFF, "Erba Lachema s.r.o.", "ERBA-LACHEMA-S-R-O" }, { 0x8C1F64, 0x2E8000, 0x2E8FFF, "Sonora Network Solutions", "SONORA-NETWORK-SOLUTIONS" }, { 0x8C1F64, 0x2EF000, 0x2EFFFF, "Invisense AB", "INVISENSE-AB" }, { 0x8C1F64, 0x2F0000, 0x2F0FFF, "Switch Science, Inc.", "SWITCH-SCIENCE" }, { 0x8C1F64, 0x2F5000, 0x2F5FFF, "Florida R&D Associates LLC", "FLORIDA-R-D-ASSOCIATES" }, { 0x8C1F64, 0x2FB000, 0x2FBFFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x8C1F64, 0x2FC000, 0x2FCFFF, "Unimar, Inc.", "UNIMAR" }, { 0x8C1F64, 0x2FD000, 0x2FDFFF, "Enestone Corporation", "ENESTONE" }, { 0x8C1F64, 0x2FE000, 0x2FEFFF, "VERSITRON, Inc.", "VERSITRON" }, { 0x8C1F64, 0x300000, 0x300FFF, "Abbott Diagnostics Technologies AS", "ABBOTT-DIAGNOSTICS-TECHNOLOGIES-AS" }, { 0x8C1F64, 0x301000, 0x301FFF, "Agar Corporation Inc.", "AGAR" }, { 0x8C1F64, 0x304000, 0x304FFF, "Jemac Sweden AB", "JEMAC-SWEDEN-AB" }, { 0x8C1F64, 0x306000, 0x306FFF, "Corigine,Inc.", "CORIGINE" }, { 0x8C1F64, 0x309000, 0x309FFF, "MECT SRL", "MECT-SRL" }, { 0x8C1F64, 0x30A000, 0x30AFFF, "XCOM Labs", "XCOM-LABS" }, { 0x8C1F64, 0x314000, 0x314FFF, "Cedel BV", "CEDEL" }, { 0x8C1F64, 0x316000, 0x316FFF, "Potter Electric Signal Company", "POTTER-ELECTRIC-SIGNAL-COMPANY" }, { 0x8C1F64, 0x317000, 0x317FFF, "Bacancy Systems LLP", "BACANCY-LLP" }, { 0x8C1F64, 0x31A000, 0x31AFFF, "Asiga Pty Ltd", "ASIGA-PTY" }, { 0x8C1F64, 0x31B000, 0x31BFFF, "joint analytical systems GmbH", "JOINT-ANALYTICAL" }, { 0x8C1F64, 0x324000, 0x324FFF, "Kinetic Technologies", "KINETIC-TECHNOLOGIES" }, { 0x8C1F64, 0x328000, 0x328FFF, "Com Video Security Systems Co., Ltd.", "COM-VIDEO-SECURITY" }, { 0x8C1F64, 0x329000, 0x329FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x8C1F64, 0x32B000, 0x32BFFF, "Shenyang Taihua Technology Co., Ltd.", "SHENYANG-TAIHUA" }, { 0x8C1F64, 0x32C000, 0x32CFFF, "Taiko Audio B.V.", "TAIKO-AUDIO-B-V" }, { 0x8C1F64, 0x32F000, 0x32FFFF, "DEUTA Controls GmbH", "DEUTA-CONTROLS" }, { 0x8C1F64, 0x330000, 0x330FFF, "Vision Systems Safety Tech", "VISION-SAFETY-TECH" }, { 0x8C1F64, 0x334000, 0x334FFF, "OutdoorLink", "OUTDOORLINK" }, { 0x8C1F64, 0x349000, 0x349FFF, "WAVES SYSTEM", "WAVES-SYSTEM" }, { 0x8C1F64, 0x34C000, 0x34CFFF, "Kyushu Keisokki Co.,Ltd.", "KYUSHU-KEISOKKI" }, { 0x8C1F64, 0x34D000, 0x34DFFF, "biosilver .co.,ltd", "BIOSILVER" }, { 0x8C1F64, 0x350000, 0x350FFF, "biosilver .co.,ltd", "BIOSILVER" }, { 0x8C1F64, 0x354000, 0x354FFF, "Paul Tagliamonte", "PAUL-TAGLIAMONTE" }, { 0x8C1F64, 0x358000, 0x358FFF, "Denso Manufacturing Tennessee", "DENSO-MANUFACTURING-TENNESSEE" }, { 0x8C1F64, 0x35C000, 0x35CFFF, "Opgal Optronic Industries ltd", "OPGAL-OPTRONIC-INDUSTRIES" }, { 0x8C1F64, 0x35D000, 0x35DFFF, "Security&Best", "SECURITY-BEST" }, { 0x8C1F64, 0x362000, 0x362FFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x8C1F64, 0x365000, 0x365FFF, "VECTOR TECHNOLOGIES, LLC", "VECTOR-TECHNOLOGIES" }, { 0x8C1F64, 0x366000, 0x366FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x8C1F64, 0x367000, 0x367FFF, "LAMTEC Mess- und Regeltechnik für Feuerungen GmbH & Co. KG", "LAMTEC-MESS-UND-REGELTECHNIK-FUER-FEUERUNGEN" }, { 0x8C1F64, 0x369000, 0x369FFF, "Orbital Astronautics Ltd", "ORBITAL-ASTRONAUTICS" }, { 0x8C1F64, 0x36A000, 0x36AFFF, "INVENTIS S.r.l.", "INVENTIS" }, { 0x8C1F64, 0x370000, 0x370FFF, "WOLF Advanced Technology", "WOLF-ADVANCED" }, { 0x8C1F64, 0x372000, 0x372FFF, "WINK Streaming", "WINK-STREAMING" }, { 0x8C1F64, 0x376000, 0x376FFF, "DIAS Infrared GmbH", "DIAS-INFRARED" }, { 0x8C1F64, 0x37F000, 0x37FFFF, "Scarlet Tech Co., Ltd.", "SCARLET-TECH" }, { 0x8C1F64, 0x382000, 0x382FFF, "Shenzhen ROLSTONE Technology Co., Ltd", "SHENZHEN-ROLSTONE" }, { 0x8C1F64, 0x385000, 0x385FFF, "Multilane Inc", "MULTILANE" }, { 0x8C1F64, 0x387000, 0x387FFF, "OMNIVISION", "OMNIVISION" }, { 0x8C1F64, 0x38B000, 0x38BFFF, "Borrell USA Corp", "BORRELL-USA" }, { 0x8C1F64, 0x38C000, 0x38CFFF, "XIAMEN ZHIXIAOJIN INTELLIGENT TECHNOLOGY CO., LTD", "XIAMEN-ZHIXIAOJIN-INTELLIGENT" }, { 0x8C1F64, 0x38D000, 0x38DFFF, "Wilson Electronics", "WILSON-ELECTRONICS" }, { 0x8C1F64, 0x38E000, 0x38EFFF, "Wartsila Voyage Limited", "WARTSILA-VOYAGE" }, { 0x8C1F64, 0x391000, 0x391FFF, "CPC (UK)", "CPC-UK" }, { 0x8C1F64, 0x397000, 0x397FFF, "Intel Corporate", "INTEL-CORPORATE" }, { 0x8C1F64, 0x398000, 0x398FFF, "Software Systems Plus", "SOFTWARE-PLUS" }, { 0x8C1F64, 0x39A000, 0x39AFFF, "Golding Audio Ltd", "GOLDING-AUDIO" }, { 0x8C1F64, 0x39E000, 0x39EFFF, "Abbott Diagnostics Technologies AS", "ABBOTT-DIAGNOSTICS-TECHNOLOGIES-AS" }, { 0x8C1F64, 0x3A2000, 0x3A2FFF, "Kron Medidores", "KRON-MEDIDORES" }, { 0x8C1F64, 0x3A4000, 0x3A4FFF, "QLM Technology Ltd", "QLM" }, { 0x8C1F64, 0x3AC000, 0x3ACFFF, "Benison Tech", "BENISON-TECH" }, { 0x8C1F64, 0x3AD000, 0x3ADFFF, "TowerIQ", "TOWERIQ" }, { 0x8C1F64, 0x3AF000, 0x3AFFFF, "PSA Technology Ltda.", "PSA-LTDA" }, { 0x8C1F64, 0x3B0000, 0x3B0FFF, "Flextronics International Kft", "FLEXTRONICS-KFT" }, { 0x8C1F64, 0x3B2000, 0x3B2FFF, "Real Digital", "REAL-DIGITAL" }, { 0x8C1F64, 0x3B5000, 0x3B5FFF, "SVMS", "SVMS" }, { 0x8C1F64, 0x3B6000, 0x3B6FFF, "TEX COMPUTER SRL", "TEX-SRL" }, { 0x8C1F64, 0x3B7000, 0x3B7FFF, "AI-BLOX", "AI-BLOX" }, { 0x8C1F64, 0x3BB000, 0x3BBFFF, "Clausal Computing Oy", "CLAUSAL-COMPUTING-OY" }, { 0x8C1F64, 0x3C4000, 0x3C4FFF, "NavSys Technology Inc.", "NAVSYS" }, { 0x8C1F64, 0x3C5000, 0x3C5FFF, "Stratis IOT", "STRATIS-IOT" }, { 0x8C1F64, 0x3C6000, 0x3C6FFF, "Wavestream Corp", "WAVESTREAM" }, { 0x8C1F64, 0x3CD000, 0x3CDFFF, "Sejong security system Cor.", "SEJONG-SECURITY-SYSTEM-COR" }, { 0x8C1F64, 0x3CE000, 0x3CEFFF, "MAHINDR & MAHINDRA", "MAHINDR-MAHINDRA" }, { 0x8C1F64, 0x3D0000, 0x3D0FFF, "TRIPLTEK", "TRIPLTEK" }, { 0x8C1F64, 0x3D1000, 0x3D1FFF, "EMIT GmbH", "EMIT" }, { 0x8C1F64, 0x3D4000, 0x3D4FFF, "e.p.g. Elettronica s.r.l.", "E-P-G-ELETTRONICA" }, { 0x8C1F64, 0x3D5000, 0x3D5FFF, "FRAKO Kondensatoren- und Anlagenbau GmbH", "FRAKO-KONDENSATOREN-UND-ANLAGENBAU" }, { 0x8C1F64, 0x3E0000, 0x3E0FFF, "YPP Corporation", "YPP" }, { 0x8C1F64, 0x3E3000, 0x3E3FFF, "FMTec GmbH - Future Management Technologies", "FMTEC-FUTURE-MANAGEMENT-TECHNOLOGIES" }, { 0x8C1F64, 0x3E8000, 0x3E8FFF, "Ruichuangte", "RUICHUANGTE" }, { 0x8C1F64, 0x3F4000, 0x3F4FFF, "ACTELSER S.L.", "ACTELSER" }, { 0x8C1F64, 0x3FC000, 0x3FCFFF, "STV Electronic GmbH", "STV" }, { 0x8C1F64, 0x3FE000, 0x3FEFFF, "Plum sp. z.o.o.", "PLUM-SP-Z-O-O" }, { 0x8C1F64, 0x3FF000, 0x3FFFFF, "UISEE(SHANGHAI) AUTOMOTIVE TECHNOLOGIES LTD.", "UISEE-SHANGHAI-AUTOMOTIVE-TECHNOLOGIES" }, { 0x8C1F64, 0x402000, 0x402FFF, "Integer.pl S.A.", "INTEGER-PL" }, { 0x8C1F64, 0x406000, 0x406FFF, "ANDA TELECOM PVT LTD", "ANDA-TELECOM-PVT" }, { 0x8C1F64, 0x408000, 0x408FFF, "techone system", "TECHONE-SYSTEM" }, { 0x8C1F64, 0x40C000, 0x40CFFF, "Sichuan Aiyijan Technology Company Ltd.", "SICHUAN-AIYIJAN-COMPANY" }, { 0x8C1F64, 0x40D000, 0x40DFFF, "PROFITT Ltd", "PROFITT" }, { 0x8C1F64, 0x40E000, 0x40EFFF, "Baker Hughes EMEA", "BAKER-HUGHES-EMEA" }, { 0x8C1F64, 0x412000, 0x412FFF, "Comercial Electronica Studio-2 s.l.", "COMERCIAL-ELECTRONICA-STUDIO-2" }, { 0x8C1F64, 0x414000, 0x414FFF, "INSEVIS GmbH", "INSEVIS" }, { 0x8C1F64, 0x417000, 0x417FFF, "Fracarro srl", "FRACARRO-SRL" }, { 0x8C1F64, 0x41C000, 0x41CFFF, "KSE GmbH", "KSE" }, { 0x8C1F64, 0x41D000, 0x41DFFF, "Aspen Spectra Sdn Bhd", "ASPEN-SPECTRA" }, { 0x8C1F64, 0x423000, 0x423FFF, "Hiwin Mikrosystem Corp.", "HIWIN-MIKROSYSTEM" }, { 0x8C1F64, 0x426000, 0x426FFF, "eumig industrie-TV GmbH.", "EUMIG-INDUSTRIE-TV" }, { 0x8C1F64, 0x429000, 0x429FFF, "Abbott Diagnostics Technologies AS", "ABBOTT-DIAGNOSTICS-TECHNOLOGIES-AS" }, { 0x8C1F64, 0x42B000, 0x42BFFF, "Gamber Johnson-LLC", "GAMBER-JOHNSON" }, { 0x8C1F64, 0x438000, 0x438FFF, "Integer.pl S.A.", "INTEGER-PL" }, { 0x8C1F64, 0x439000, 0x439FFF, "BORNICO", "BORNICO" }, { 0x8C1F64, 0x43D000, 0x43DFFF, "Solid State Supplies Ltd", "SOLID-STATE-SUPPLIES" }, { 0x8C1F64, 0x440000, 0x440FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x8C1F64, 0x445000, 0x445FFF, "Figment Design Laboratories", "FIGMENT-DESIGN-LABORATORIES" }, { 0x8C1F64, 0x44E000, 0x44EFFF, "GVA Lighting, Inc.", "GVA-LIGHTING" }, { 0x8C1F64, 0x44F000, 0x44FFFF, "RealD, Inc.", "REALD" }, { 0x8C1F64, 0x454000, 0x454FFF, "KJ Klimateknik A/S", "KJ-KLIMATEKNIK-A/S" }, { 0x8C1F64, 0x45B000, 0x45BFFF, "Beijing Aoxing Technology Co.,Ltd", "BEIJING-AOXING" }, { 0x8C1F64, 0x45D000, 0x45DFFF, "Fuzhou Tucsen Photonics Co.,Ltd", "FUZHOU-TUCSEN-PHOTONICS" }, { 0x8C1F64, 0x45F000, 0x45FFFF, "Toshniwal Security Solutions Pvt Ltd", "TOSHNIWAL-SECURITY-SOLUTIONS-PVT" }, { 0x8C1F64, 0x460000, 0x460FFF, "Solace Systems Inc.", "SOLACE" }, { 0x8C1F64, 0x461000, 0x461FFF, "Kara Partners LLC", "KARA-PARTNERS" }, { 0x8C1F64, 0x462000, 0x462FFF, "REO AG", "REO" }, { 0x8C1F64, 0x466000, 0x466FFF, "Intamsys Technology Co.Ltd", "INTAMSYS" }, { 0x8C1F64, 0x46A000, 0x46AFFF, "Pharsighted LLC", "PHARSIGHTED" }, { 0x8C1F64, 0x472000, 0x472FFF, "Surge Networks, Inc.", "SURGE-NETWORKS" }, { 0x8C1F64, 0x475000, 0x475FFF, "Alpine Quantum Technologies GmbH", "ALPINE-QUANTUM-TECHNOLOGIES" }, { 0x8C1F64, 0x476000, 0x476FFF, "Clair Global Corporation", "CLAIR-GLOBAL" }, { 0x8C1F64, 0x47A000, 0x47AFFF, "Missing Link Electronics, Inc.", "MISSING-LINK-ELECTRONICS" }, { 0x8C1F64, 0x47D000, 0x47DFFF, "EB NEURO SPA", "EB-NEURO-SPA" }, { 0x8C1F64, 0x489000, 0x489FFF, "HUPI", "HUPI" }, { 0x8C1F64, 0x48F000, 0x48FFFF, "Mecos AG", "MECOS" }, { 0x8C1F64, 0x493000, 0x493FFF, "Security Products International, LLC", "SECURITY-PRODUCTS" }, { 0x8C1F64, 0x495000, 0x495FFF, "DAVE SRL", "DAVE-SRL" }, { 0x8C1F64, 0x498000, 0x498FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x8C1F64, 0x499000, 0x499FFF, "TIAMA", "TIAMA" }, { 0x8C1F64, 0x49B000, 0x49BFFF, "Wartsila Voyage Limited", "WARTSILA-VOYAGE" }, { 0x8C1F64, 0x4A0000, 0x4A0FFF, "Tantec A/S", "TANTEC-A/S" }, { 0x8C1F64, 0x4AC000, 0x4ACFFF, "Vekto", "VEKTO" }, { 0x8C1F64, 0x4AE000, 0x4AEFFF, "KCS Co., Ltd.", "KCS" }, { 0x8C1F64, 0x4AF000, 0x4AFFFF, "miniDSP", "MINIDSP" }, { 0x8C1F64, 0x4B0000, 0x4B0FFF, "U -MEI-DAH INT'L ENTERPRISE CO.,LTD.", "U-MEI-DAH" }, { 0x8C1F64, 0x4BB000, 0x4BBFFF, "IWS Global Pty Ltd", "IWS-GLOBAL-PTY" }, { 0x8C1F64, 0x4C1000, 0x4C1FFF, "Clock-O-Matic", "CLOCK-O-MATIC" }, { 0x8C1F64, 0x4C7000, 0x4C7FFF, "SBS SpA", "SBS-SPA" }, { 0x8C1F64, 0x4CD000, 0x4CDFFF, "Guan Show Technologe Co., Ltd.", "GUAN-SHOW-TECHNOLOGE" }, { 0x8C1F64, 0x4D6000, 0x4D6FFF, "Dan Smith LLC", "DAN-SMITH" }, { 0x8C1F64, 0x4D9000, 0x4D9FFF, "SECURICO ELECTRONICS INDIA LTD", "SECURICO-ELECTRONICS-INDIA" }, { 0x8C1F64, 0x4DA000, 0x4DAFFF, "DTDS Technology Pte Ltd", "DTDS-PTE" }, { 0x8C1F64, 0x4DB000, 0x4DBFFF, "Private", "PRIVATE" }, { 0x8C1F64, 0x4DC000, 0x4DCFFF, "BESO sp. z o.o.", "BESO-SP-Z-O-O" }, { 0x8C1F64, 0x4DD000, 0x4DDFFF, "Griffyn Robotech Private Limited", "GRIFFYN-ROBOTECH-PRIVATE" }, { 0x8C1F64, 0x4E0000, 0x4E0FFF, "PuS GmbH und Co. KG", "PUS-UND" }, { 0x8C1F64, 0x4E5000, 0x4E5FFF, "Renukas Castle Hard- and Software", "RENUKAS-CASTLE-HARD-AND-SOFTWARE" }, { 0x8C1F64, 0x4E7000, 0x4E7FFF, "Circuit Solutions", "CIRCUIT-SOLUTIONS" }, { 0x8C1F64, 0x4E9000, 0x4E9FFF, "EERS GLOBAL TECHNOLOGIES INC.", "EERS-GLOBAL-TECHNOLOGIES" }, { 0x8C1F64, 0x4EC000, 0x4ECFFF, "XOR UK Corporation Limited", "XOR-UK" }, { 0x8C1F64, 0x4F0000, 0x4F0FFF, "Tieline Research Pty Ltd", "TIELINE-RESEARCH-PTY" }, { 0x8C1F64, 0x4F7000, 0x4F7FFF, "SmartD Technologies Inc", "SMARTD-TECHNOLOGIES" }, { 0x8C1F64, 0x4F9000, 0x4F9FFF, "Photonic Science and Engineering Ltd", "PHOTONIC-SCIENCE-AND-ENGINEERING" }, { 0x8C1F64, 0x4FA000, 0x4FAFFF, "Sanskruti", "SANSKRUTI" }, { 0x8C1F64, 0x4FB000, 0x4FBFFF, "MESA TECHNOLOGIES LLC", "MESA-TECHNOLOGIES" }, { 0x8C1F64, 0x500000, 0x500FFF, "Nepean Networks Pty Ltd", "NEPEAN-NETWORKS-PTY" }, { 0x8C1F64, 0x501000, 0x501FFF, "QUISS GmbH", "QUISS" }, { 0x8C1F64, 0x502000, 0x502FFF, "Samwell International Inc", "SAMWELL" }, { 0x8C1F64, 0x504000, 0x504FFF, "EA Elektroautomatik GmbH & Co. KG", "EA-ELEKTROAUTOMATIK" }, { 0x8C1F64, 0x509000, 0x509FFF, "Season Electronics Ltd", "SEASON-ELECTRONICS" }, { 0x8C1F64, 0x50A000, 0x50AFFF, "BELLCO TRADING COMPANY (PVT) LTD", "BELLCO-TRADING-COMPANY-PVT" }, { 0x8C1F64, 0x50E000, 0x50EFFF, "Panoramic Power", "PANORAMIC-POWER" }, { 0x8C1F64, 0x510000, 0x510FFF, "Novanta IMS", "NOVANTA-IMS" }, { 0x8C1F64, 0x511000, 0x511FFF, "Control Aut Tecnologia em Automação LTDA", "CONTROL-AUT-TECNOLOGIA-EM-AUTOMAO-LTDA" }, { 0x8C1F64, 0x512000, 0x512FFF, "Blik Sensing B.V.", "BLIK-SENSING-B-V" }, { 0x8C1F64, 0x517000, 0x517FFF, "Smart Radar System, Inc", "SMART-RADAR-SYSTEM" }, { 0x8C1F64, 0x518000, 0x518FFF, "Wagner Group GmbH", "WAGNER-GROUP" }, { 0x8C1F64, 0x521000, 0x521FFF, "MP-SENSOR GmbH", "MP-SENSOR" }, { 0x8C1F64, 0x525000, 0x525FFF, "United States Technologies Inc.", "UNITED-STATES-TECHNOLOGIES" }, { 0x8C1F64, 0x52A000, 0x52AFFF, "Hiwin Mikrosystem Corp.", "HIWIN-MIKROSYSTEM" }, { 0x8C1F64, 0x52D000, 0x52DFFF, "Cubic ITS, Inc. dba GRIDSMART Technologies", "CUBIC-ITS-DBA-GRIDSMART-TECHNOLOGIES" }, { 0x8C1F64, 0x52E000, 0x52EFFF, "CLOUD TELECOM Inc.", "CLOUD-TELECOM" }, { 0x8C1F64, 0x534000, 0x534FFF, "SURYA ELECTRONICS", "SURYA-ELECTRONICS" }, { 0x8C1F64, 0x535000, 0x535FFF, "Columbus McKinnon", "COLUMBUS-MCKINNON" }, { 0x8C1F64, 0x536000, 0x536FFF, "BEIJING LXTV TECHNOLOGY CO.,LTD", "BEIJING-LXTV" }, { 0x8C1F64, 0x53A000, 0x53AFFF, "TPVision Europe B.V", "TPVISION-EUROPE-B-V" }, { 0x8C1F64, 0x53B000, 0x53BFFF, "REFU Storage System GmbH", "REFU-STORAGE-SYSTEM" }, { 0x8C1F64, 0x53D000, 0x53DFFF, "NEXCONTECH", "NEXCONTECH" }, { 0x8C1F64, 0x53F000, 0x53FFFF, "Velvac Incorporated", "VELVAC-INCORPORATED" }, { 0x8C1F64, 0x542000, 0x542FFF, "Landis+Gyr Equipamentos de Medição Ltda", "LANDIS+GYR-EQUIPAMENTOS-DE-MEDIO-LTDA" }, { 0x8C1F64, 0x544000, 0x544FFF, "Tinkerbee Innovations Private Limited", "TINKERBEE-INNOVATIONS-PRIVATE" }, { 0x8C1F64, 0x549000, 0x549FFF, "Brad Technology", "BRAD" }, { 0x8C1F64, 0x54A000, 0x54AFFF, "Belden India Private Limited", "BELDEN-INDIA-PRIVATE" }, { 0x8C1F64, 0x54C000, 0x54CFFF, "Gemini Electronics B.V.", "GEMINI-ELECTRONICS-B-V" }, { 0x8C1F64, 0x54F000, 0x54FFFF, "Toolplanet Co., Ltd.", "TOOLPLANET" }, { 0x8C1F64, 0x550000, 0x550FFF, "ard sa", "ARD" }, { 0x8C1F64, 0x552000, 0x552FFF, "Proterra, Inc", "PROTERRA" }, { 0x8C1F64, 0x553000, 0x553FFF, "ENIGMA SOI Sp. z o.o.", "ENIGMA-SOI-SP-Z-O-O" }, { 0x8C1F64, 0x556000, 0x556FFF, "BAE Systems", "BAE" }, { 0x8C1F64, 0x557000, 0x557FFF, "In-lite Design BV", "IN-LITE-DESIGN" }, { 0x8C1F64, 0x55E000, 0x55EFFF, "HANATEKSYSTEM", "HANATEKSYSTEM" }, { 0x8C1F64, 0x560000, 0x560FFF, "Dexter Laundry Inc.", "DEXTER-LAUNDRY" }, { 0x8C1F64, 0x56C000, 0x56CFFF, "ELTEK SpA", "ELTEK-SPA" }, { 0x8C1F64, 0x56D000, 0x56DFFF, "ACOD", "ACOD" }, { 0x8C1F64, 0x56E000, 0x56EFFF, "Euklis srl", "EUKLIS-SRL" }, { 0x8C1F64, 0x56F000, 0x56FFFF, "ADETEC SAS", "ADETEC-SAS" }, { 0x8C1F64, 0x572000, 0x572FFF, "ZMBIZI APP LLC", "ZMBIZI-APP" }, { 0x8C1F64, 0x573000, 0x573FFF, "Ingenious Technology LLC", "INGENIOUS" }, { 0x8C1F64, 0x575000, 0x575FFF, "Yu-Heng Electric Co., LTD", "YU-HENG-ELECTRIC" }, { 0x8C1F64, 0x57A000, 0x57AFFF, "NPO ECO-INTECH Ltd.", "NPO-ECO-INTECH" }, { 0x8C1F64, 0x57B000, 0x57BFFF, "Potter Electric Signal Company", "POTTER-ELECTRIC-SIGNAL-COMPANY" }, { 0x8C1F64, 0x57D000, 0x57DFFF, "ISDI Ltd", "ISDI" }, { 0x8C1F64, 0x581000, 0x581FFF, "SpectraDynamics, Inc.", "SPECTRADYNAMICS" }, { 0x8C1F64, 0x58C000, 0x58CFFF, "Ear Micro LLC", "EAR-MICRO" }, { 0x8C1F64, 0x58E000, 0x58EFFF, "Novanta IMS", "NOVANTA-IMS" }, { 0x8C1F64, 0x591000, 0x591FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x8C1F64, 0x593000, 0x593FFF, "Brillian Network & Automation Integrated System Co., Ltd.", "BRILLIAN-NETWORK-AUTOMATION-INTEGRATED-SYSTEM" }, { 0x8C1F64, 0x596000, 0x596FFF, "RF Code", "RF-CODE" }, { 0x8C1F64, 0x598000, 0x598FFF, "TIRASOFT TECHNOLOGY", "TIRASOFT" }, { 0x8C1F64, 0x59A000, 0x59AFFF, "Primalucelab isrl", "PRIMALUCELAB-ISRL" }, { 0x8C1F64, 0x59F000, 0x59FFFF, "Delta Computers LLC.", "DELTA-COMPUTERS" }, { 0x8C1F64, 0x5A6000, 0x5A6FFF, "Kinney Industries, Inc", "KINNEY-INDUSTRIES" }, { 0x8C1F64, 0x5AC000, 0x5ACFFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x8C1F64, 0x5AE000, 0x5AEFFF, "Suzhou Motorcomm Electronic Technology Co., Ltd", "SUZHOU-MOTORCOMM" }, { 0x8C1F64, 0x5AF000, 0x5AFFFF, "Teq Diligent Product Solutions Pvt. Ltd.", "TEQ-DILIGENT-PRODUCT-SOLUTIONS-PVT" }, { 0x8C1F64, 0x5B3000, 0x5B3FFF, "eumig industrie-TV GmbH.", "EUMIG-INDUSTRIE-TV" }, { 0x8C1F64, 0x5BC000, 0x5BCFFF, "HEITEC AG", "HEITEC" }, { 0x8C1F64, 0x5BD000, 0x5BDFFF, "MPT-Service project", "MPT-SERVICE-PROJECT" }, { 0x8C1F64, 0x5C9000, 0x5C9FFF, "Abbott Diagnostics Technologies AS", "ABBOTT-DIAGNOSTICS-TECHNOLOGIES-AS" }, { 0x8C1F64, 0x5CB000, 0x5CBFFF, "dinosys", "DINOSYS" }, { 0x8C1F64, 0x5CD000, 0x5CDFFF, "MAHINDR & MAHINDRA", "MAHINDR-MAHINDRA" }, { 0x8C1F64, 0x5CE000, 0x5CEFFF, "Packetalk LLC", "PACKETALK" }, { 0x8C1F64, 0x5D3000, 0x5D3FFF, "Eloy Water", "ELOY-WATER" }, { 0x8C1F64, 0x5D6000, 0x5D6FFF, "Portrait Displays, Inc.", "PORTRAIT-DISPLAYS" }, { 0x8C1F64, 0x5D9000, 0x5D9FFF, "Opdi-tex GmbH", "OPDI-TEX" }, { 0x8C1F64, 0x5DA000, 0x5DAFFF, "White2net srl", "WHITE2NET-SRL" }, { 0x8C1F64, 0x5DB000, 0x5DBFFF, "GlobalInvacom", "GLOBALINVACOM" }, { 0x8C1F64, 0x5DE000, 0x5DEFFF, "SekureTrak Inc. dba TraknProtect", "SEKURETRAK-DBA-TRAKNPROTECT" }, { 0x8C1F64, 0x5E3000, 0x5E3FFF, "Nixer Ltd", "NIXER" }, { 0x8C1F64, 0x5E5000, 0x5E5FFF, "Telemetrics Inc.", "TELEMETRICS" }, { 0x8C1F64, 0x5E7000, 0x5E7FFF, "HOSCH Gebäude Automation Neue Produkte GmbH", "HOSCH-GEBAEUDE-AUTOMATION-NEUE-PRODUKTE" }, { 0x8C1F64, 0x5EA000, 0x5EAFFF, "BTG Instruments AB", "BTG-INSTRUMENTS-AB" }, { 0x8C1F64, 0x5EB000, 0x5EBFFF, "TIAMA", "TIAMA" }, { 0x8C1F64, 0x5F1000, 0x5F1FFF, "HD Link Co., Ltd.", "HD-LINK" }, { 0x8C1F64, 0x5F5000, 0x5F5FFF, "HongSeok Ltd.", "HONGSEOK" }, { 0x8C1F64, 0x5F7000, 0x5F7FFF, "Eagle Harbor Technologies, Inc.", "EAGLE-HARBOR-TECHNOLOGIES" }, { 0x8C1F64, 0x5FA000, 0x5FAFFF, "PolCam Systems Sp. z o.o.", "POLCAM-SP-Z-O-O" }, { 0x8C1F64, 0x600000, 0x600FFF, "Anhui Chaokun Testing Equipment Co., Ltd", "ANHUI-CHAOKUN-TESTING-EQUIPMENT" }, { 0x8C1F64, 0x601000, 0x601FFF, "Camius", "CAMIUS" }, { 0x8C1F64, 0x603000, 0x603FFF, "Fuku Energy Technology Co., Ltd.", "FUKU-ENERGY" }, { 0x8C1F64, 0x605000, 0x605FFF, "Xacti Corporation", "XACTI" }, { 0x8C1F64, 0x60A000, 0x60AFFF, "RFENGINE CO., LTD.", "RFENGINE" }, { 0x8C1F64, 0x60E000, 0x60EFFF, "ICT International", "ICT" }, { 0x8C1F64, 0x610000, 0x610FFF, "Beijing Zhongzhi Huida Technology Co., Ltd", "BEIJING-ZHONGZHI-HUIDA" }, { 0x8C1F64, 0x611000, 0x611FFF, "Siemens Industry Software Inc.", "SIEMENS-INDUSTRY-SOFTWARE" }, { 0x8C1F64, 0x619000, 0x619FFF, "Labtrino AB", "LABTRINO-AB" }, { 0x8C1F64, 0x61C000, 0x61CFFF, "Automata GmbH & Co. KG", "AUTOMATA" }, { 0x8C1F64, 0x61F000, 0x61FFFF, "Lightworks GmbH", "LIGHTWORKS" }, { 0x8C1F64, 0x620000, 0x620FFF, "Solace Systems Inc.", "SOLACE" }, { 0x8C1F64, 0x621000, 0x621FFF, "JTL Systems Ltd.", "JTL" }, { 0x8C1F64, 0x622000, 0x622FFF, "Logical Product", "LOGICAL-PRODUCT" }, { 0x8C1F64, 0x625000, 0x625FFF, "Stresstech OY", "STRESSTECH-OY" }, { 0x8C1F64, 0x626000, 0x626FFF, "CSIRO", "CSIRO" }, { 0x8C1F64, 0x62C000, 0x62CFFF, "Hangzhou EasyXR Advanced Technology Co., Ltd.", "HANGZHOU-EASYXR-ADVANCED" }, { 0x8C1F64, 0x62D000, 0x62DFFF, "Embeddded Plus Plus", "EMBEDDDED-PLUS-PLUS" }, { 0x8C1F64, 0x634000, 0x634FFF, "AML", "AML" }, { 0x8C1F64, 0x636000, 0x636FFF, "Europe Trade", "EUROPE-TRADE" }, { 0x8C1F64, 0x638000, 0x638FFF, "THUNDER DATA TAIWAN CO., LTD.", "THUNDER-DATA-TAIWAN" }, { 0x8C1F64, 0x63B000, 0x63BFFF, "TIAMA", "TIAMA" }, { 0x8C1F64, 0x63F000, 0x63FFFF, "PREO INDUSTRIES FAR EAST LTD", "PREO-INDUSTRIES-FAR-EAST" }, { 0x8C1F64, 0x641000, 0x641FFF, "biosilver .co.,ltd", "BIOSILVER" }, { 0x8C1F64, 0x647000, 0x647FFF, "Senior Group LLC", "SENIOR-GROUP" }, { 0x8C1F64, 0x648000, 0x648FFF, "Gridpulse c.o.o.", "GRIDPULSE-C-O-O" }, { 0x8C1F64, 0x64E000, 0x64EFFF, "Nilfisk Food", "NILFISK-FOOD" }, { 0x8C1F64, 0x650000, 0x650FFF, "L tec Co.,Ltd", "L-TEC" }, { 0x8C1F64, 0x653000, 0x653FFF, "P5", "P5" }, { 0x8C1F64, 0x655000, 0x655FFF, "S.E.I. CO.,LTD.", "S-E-I" }, { 0x8C1F64, 0x656000, 0x656FFF, "Optotune Switzerland AG", "OPTOTUNE-SWITZERLAND" }, { 0x8C1F64, 0x65D000, 0x65DFFF, "Action Streamer LLC", "ACTION-STREAMER" }, { 0x8C1F64, 0x65F000, 0x65FFFF, "Astrometric Instruments, Inc.", "ASTROMETRIC-INSTRUMENTS" }, { 0x8C1F64, 0x660000, 0x660FFF, "LLC NTPC", "LLC-NTPC" }, { 0x8C1F64, 0x662000, 0x662FFF, "Suzhou Leamore Optronics Co., Ltd.", "SUZHOU-LEAMORE-OPTRONICS" }, { 0x8C1F64, 0x663000, 0x663FFF, "mal-tech Technological Solutions Ltd/CRISP", "MAL-TECH-TECHNOLOGICAL-SOLUTIONS-/CRISP" }, { 0x8C1F64, 0x66C000, 0x66CFFF, "LINEAGE POWER PVT LTD.,", "LINEAGE-POWER-PVT" }, { 0x8C1F64, 0x66D000, 0x66DFFF, "VT100 SRL", "VT100-SRL" }, { 0x8C1F64, 0x66F000, 0x66FFFF, "Elix Systems SA", "ELIX" }, { 0x8C1F64, 0x672000, 0x672FFF, "Farmobile LLC", "FARMOBILE" }, { 0x8C1F64, 0x675000, 0x675FFF, "Transit Solutions, LLC.", "TRANSIT-SOLUTIONS" }, { 0x8C1F64, 0x676000, 0x676FFF, "sdt.net AG", "SDT-NET" }, { 0x8C1F64, 0x677000, 0x677FFF, "FREY S.J.", "FREY-S-J" }, { 0x8C1F64, 0x67A000, 0x67AFFF, "MG s.r.l.", "MG" }, { 0x8C1F64, 0x67C000, 0x67CFFF, "Ensto Protrol AB", "ENSTO-PROTROL-AB" }, { 0x8C1F64, 0x67E000, 0x67EFFF, "LDA Audiotech", "LDA-AUDIOTECH" }, { 0x8C1F64, 0x67F000, 0x67FFFF, "Hamamatsu Photonics K.K.", "HAMAMATSU-PHOTONICS-K-K" }, { 0x8C1F64, 0x683000, 0x683FFF, "SLAT", "SLAT" }, { 0x8C1F64, 0x685000, 0x685FFF, "Sanchar Communication Systems", "SANCHAR-COMMUNICATION" }, { 0x8C1F64, 0x691000, 0x691FFF, "Wende Tan", "WENDE-TAN" }, { 0x8C1F64, 0x692000, 0x692FFF, "Nexilis Electronics India Pvt Ltd (PICSYS)", "NEXILIS-ELECTRONICS-INDIA-PVT-PICSYS" }, { 0x8C1F64, 0x694000, 0x694FFF, "Hubbell Power Systems", "HUBBELL-POWER" }, { 0x8C1F64, 0x697000, 0x697FFF, "Sontay Ltd.", "SONTAY" }, { 0x8C1F64, 0x698000, 0x698FFF, "Arcus-EDS GmbH", "ARCUS-EDS" }, { 0x8C1F64, 0x699000, 0x699FFF, "FIDICA GmbH & Co. KG", "FIDICA" }, { 0x8C1F64, 0x69E000, 0x69EFFF, "AT-Automation Technology GmbH", "AT-AUTOMATION" }, { 0x8C1F64, 0x6A0000, 0x6A0FFF, "Avionica", "AVIONICA" }, { 0x8C1F64, 0x6A8000, 0x6A8FFF, "Bulwark", "BULWARK" }, { 0x8C1F64, 0x6AD000, 0x6ADFFF, "Potter Electric Signal Company", "POTTER-ELECTRIC-SIGNAL-COMPANY" }, { 0x8C1F64, 0x6AE000, 0x6AEFFF, "Bray International", "BRAY" }, { 0x8C1F64, 0x6B1000, 0x6B1FFF, "Specialist Mechanical Engineers (PTY)LTD", "SPECIALIST-MECHANICAL-ENGINEERS-PTY" }, { 0x8C1F64, 0x6B3000, 0x6B3FFF, "Feritech Ltd.", "FERITECH" }, { 0x8C1F64, 0x6B5000, 0x6B5FFF, "O-Net Communications(Shenzhen)Limited", "O-NET-COMMUNICATION-SHENZHEN" }, { 0x8C1F64, 0x6B9000, 0x6B9FFF, "GS Industrie-Elektronik GmbH", "GS-INDUSTRIE-ELEKTRONIK" }, { 0x8C1F64, 0x6BB000, 0x6BBFFF, "Season Electronics Ltd", "SEASON-ELECTRONICS" }, { 0x8C1F64, 0x6C6000, 0x6C6FFF, "FIT", "FIT" }, { 0x8C1F64, 0x6CB000, 0x6CBFFF, "GJD Manufacturing", "GJD-MANUFACTURING" }, { 0x8C1F64, 0x6CD000, 0x6CDFFF, "Wuhan Xingtuxinke ELectronic Co.,Ltd", "WUHAN-XINGTUXINKE" }, { 0x8C1F64, 0x6CF000, 0x6CFFFF, "Italora", "ITALORA" }, { 0x8C1F64, 0x6D0000, 0x6D0FFF, "ABB", "ABB" }, { 0x8C1F64, 0x6D5000, 0x6D5FFF, "HTK Hamburg GmbH", "HTK-HAMBURG" }, { 0x8C1F64, 0x6D9000, 0x6D9FFF, "Khimo", "KHIMO" }, { 0x8C1F64, 0x6E2000, 0x6E2FFF, "SCU Co., Ltd.", "SCU" }, { 0x8C1F64, 0x6E3000, 0x6E3FFF, "ViewSonic International Corporation", "VIEWSONIC" }, { 0x8C1F64, 0x6E4000, 0x6E4FFF, "RAB Microfluidics R&D Company Ltd", "RAB-MICROFLUIDICS-R-D-COMPANY" }, { 0x8C1F64, 0x6EA000, 0x6EAFFF, "KMtronic ltd", "KMTRONIC" }, { 0x8C1F64, 0x6EC000, 0x6ECFFF, "Bit Trade One, Ltd.", "BIT-TRADE-ONE" }, { 0x8C1F64, 0x6F4000, 0x6F4FFF, "Elsist Srl", "ELSIST-SRL" }, { 0x8C1F64, 0x6F9000, 0x6F9FFF, "ANDDORO LLC", "ANDDORO" }, { 0x8C1F64, 0x6FC000, 0x6FCFFF, "HM Systems A/S", "HM-A/S" }, { 0x8C1F64, 0x700000, 0x700FFF, "QUANTAFLOW", "QUANTAFLOW" }, { 0x8C1F64, 0x702000, 0x702FFF, "AIDirections", "AIDIRECTIONS" }, { 0x8C1F64, 0x703000, 0x703FFF, "Calnex Solutions plc", "CALNEX-SOLUTIONS-PLC" }, { 0x8C1F64, 0x707000, 0x707FFF, "OAS AG", "OAS" }, { 0x8C1F64, 0x708000, 0x708FFF, "ZUUM", "ZUUM" }, { 0x8C1F64, 0x70B000, 0x70BFFF, "ONICON", "ONICON" }, { 0x8C1F64, 0x70E000, 0x70EFFF, "OvercomTech", "OVERCOMTECH" }, { 0x8C1F64, 0x712000, 0x712FFF, "Nexion Data Systems P/L", "NEXION-DATA-P/L" }, { 0x8C1F64, 0x71B000, 0x71BFFF, "Adasky Ltd.", "ADASKY" }, { 0x8C1F64, 0x721000, 0x721FFF, "M/S MILIND RAMACHANDRA RAJWADE", "M/S-MILIND-RAMACHANDRA-RAJWADE" }, { 0x8C1F64, 0x723000, 0x723FFF, "Celestica Inc.", "CELESTICA" }, { 0x8C1F64, 0x726000, 0x726FFF, "DAVE SRL", "DAVE-SRL" }, { 0x8C1F64, 0x72A000, 0x72AFFF, "DORLET SAU", "DORLET-SAU" }, { 0x8C1F64, 0x72C000, 0x72CFFF, "Antai technology Co.,Ltd", "ANTAI" }, { 0x8C1F64, 0x731000, 0x731FFF, "ehoosys Co.,LTD.", "EHOOSYS" }, { 0x8C1F64, 0x733000, 0x733FFF, "Video Network Security", "VIDEO-NETWORK-SECURITY" }, { 0x8C1F64, 0x737000, 0x737FFF, "Vytahy-Vymyslicky s.r.o.", "VYTAHY-VYMYSLICKY-S-R-O" }, { 0x8C1F64, 0x739000, 0x739FFF, "Monnit Corporation", "MONNIT" }, { 0x8C1F64, 0x73B000, 0x73BFFF, "Fink Zeitsysteme GmbH", "FINK-ZEITSYSTEME" }, { 0x8C1F64, 0x73C000, 0x73CFFF, "REO AG", "REO" }, { 0x8C1F64, 0x73D000, 0x73DFFF, "NewAgeMicro", "NEWAGEMICRO" }, { 0x8C1F64, 0x73F000, 0x73FFFF, "UBISCALE", "UBISCALE" }, { 0x8C1F64, 0x740000, 0x740FFF, "Norvento Tecnología, S.L.", "NORVENTO-TECNOLOGA" }, { 0x8C1F64, 0x744000, 0x744FFF, "CHASEO CONNECTOME", "CHASEO-CONNECTOME" }, { 0x8C1F64, 0x746000, 0x746FFF, "Sensus Healthcare", "SENSUS-HEALTHCARE" }, { 0x8C1F64, 0x747000, 0x747FFF, "VisionTIR Multispectral Technology", "VISIONTIR-MULTISPECTRAL" }, { 0x8C1F64, 0x74E000, 0x74EFFF, "OpenPark Technologies Kft", "OPENPARK-TECHNOLOGIES-KFT" }, { 0x8C1F64, 0x756000, 0x756FFF, "Star Systems International Limited", "STAR" }, { 0x8C1F64, 0x757000, 0x757FFF, "Spectra Technologies India Private Limited", "SPECTRA-TECHNOLOGIES-INDIA-PRIVATE" }, { 0x8C1F64, 0x75F000, 0x75FFFF, "ASTRACOM Co. Ltd", "ASTRACOM" }, { 0x8C1F64, 0x764000, 0x764FFF, "nanoTRONIX Computing Inc.", "NANOTRONIX-COMPUTING" }, { 0x8C1F64, 0x765000, 0x765FFF, "Micro Electroninc Products", "MICRO-ELECTRONINC-PRODUCTS" }, { 0x8C1F64, 0x768000, 0x768FFF, "mapna group", "MAPNA-GROUP" }, { 0x8C1F64, 0x774000, 0x774FFF, "navXperience GmbH", "NAVXPERIENCE" }, { 0x8C1F64, 0x775000, 0x775FFF, "Becton Dickinson", "BECTON-DICKINSON" }, { 0x8C1F64, 0x777000, 0x777FFF, "Sicon srl", "SICON-SRL" }, { 0x8C1F64, 0x77B000, 0x77BFFF, "DB SAS", "DB-SAS" }, { 0x8C1F64, 0x77C000, 0x77CFFF, "Orange Tree Technologies Ltd", "ORANGE-TREE-TECHNOLOGIES" }, { 0x8C1F64, 0x77E000, 0x77EFFF, "Institute of geophysics, China earthquake administration", "INSTITUTE-OF-GEOPHYSICS-CHINA-EARTHQUAKE-ADMINISTRATION" }, { 0x8C1F64, 0x77F000, 0x77FFFF, "TargaSystem S.r.L.", "TARGASYSTEM" }, { 0x8C1F64, 0x780000, 0x780FFF, "HME Co.,ltd", "HME" }, { 0x8C1F64, 0x782000, 0x782FFF, "ATM LLC", "ATM" }, { 0x8C1F64, 0x787000, 0x787FFF, "Tabology", "TABOLOGY" }, { 0x8C1F64, 0x78F000, 0x78FFFF, "Connection Systems", "CONNECTION" }, { 0x8C1F64, 0x793000, 0x793FFF, "Aditec GmbH", "ADITEC" }, { 0x8C1F64, 0x797000, 0x797FFF, "Alban Giacomo S.p.a.", "ALBAN-GIACOMO" }, { 0x8C1F64, 0x79B000, 0x79BFFF, "Foerster-Technik GmbH", "FOERSTER-TECHNIK" }, { 0x8C1F64, 0x79D000, 0x79DFFF, "Murata Manufacturing Co., Ltd.", "MURATA-MANUFACTURING" }, { 0x8C1F64, 0x79E000, 0x79EFFF, "Accemic Technologies GmbH", "ACCEMIC-TECHNOLOGIES" }, { 0x8C1F64, 0x79F000, 0x79FFFF, "Hiwin Mikrosystem Corp.", "HIWIN-MIKROSYSTEM" }, { 0x8C1F64, 0x7A1000, 0x7A1FFF, "Guardian Controls International Ltd", "GUARDIAN-CONTROLS" }, { 0x8C1F64, 0x7A4000, 0x7A4FFF, "Hirotech inc.", "HIROTECH" }, { 0x8C1F64, 0x7A6000, 0x7A6FFF, "OTMetric", "OTMETRIC" }, { 0x8C1F64, 0x7A7000, 0x7A7FFF, "Timegate Instruments Ltd.", "TIMEGATE-INSTRUMENTS" }, { 0x8C1F64, 0x7AA000, 0x7AAFFF, "XSENSOR Technology Corp.", "XSENSOR" }, { 0x8C1F64, 0x7AE000, 0x7AEFFF, "D-E-K GmbH & Co.KG", "D-E-K" }, { 0x8C1F64, 0x7AF000, 0x7AFFFF, "E VISION INDIA PVT LTD", "E-VISION-INDIA-PVT" }, { 0x8C1F64, 0x7B0000, 0x7B0FFF, "AXID SYSTEM", "AXID-SYSTEM" }, { 0x8C1F64, 0x7B1000, 0x7B1FFF, "EA Elektro-Automatik", "EA-ELEKTRO-AUTOMATIK" }, { 0x8C1F64, 0x7B5000, 0x7B5FFF, "Guan Show Technologe Co., Ltd.", "GUAN-SHOW-TECHNOLOGE" }, { 0x8C1F64, 0x7B6000, 0x7B6FFF, "KEYLINE S.P.A.", "KEYLINE" }, { 0x8C1F64, 0x7B7000, 0x7B7FFF, "Weidmann Tecnologia Electrica de Mexico", "WEIDMANN-TECNOLOGIA-ELECTRICA-DE-MEXICO" }, { 0x8C1F64, 0x7B8000, 0x7B8FFF, "TimeMachines Inc.", "TIMEMACHINES" }, { 0x8C1F64, 0x7B9000, 0x7B9FFF, "Deviceroy", "DEVICEROY" }, { 0x8C1F64, 0x7BC000, 0x7BCFFF, "GO development GmbH", "GO-DEVELOPMENT" }, { 0x8C1F64, 0x7C7000, 0x7C7FFF, "Ascon Tecnologic S.r.l.", "ASCON-TECNOLOGIC" }, { 0x8C1F64, 0x7C8000, 0x7C8FFF, "Jacquet Dechaume", "JACQUET-DECHAUME" }, { 0x8C1F64, 0x7CF000, 0x7CFFFF, "Transdigital Pty Ltd", "TRANSDIGITAL-PTY" }, { 0x8C1F64, 0x7D2000, 0x7D2FFF, "Enlaps", "ENLAPS" }, { 0x8C1F64, 0x7D3000, 0x7D3FFF, "Suntech Engineering", "SUNTECH-ENGINEERING" }, { 0x8C1F64, 0x7D4000, 0x7D4FFF, "Penteon Corporation", "PENTEON" }, { 0x8C1F64, 0x7D6000, 0x7D6FFF, "Algodue Elettronica Srl", "ALGODUE-ELETTRONICA-SRL" }, { 0x8C1F64, 0x7D8000, 0x7D8FFF, "HIROSAWA ELECTRIC Co.,Ltd.", "HIROSAWA-ELECTRIC" }, { 0x8C1F64, 0x7D9000, 0x7D9FFF, "Noisewave Corporation", "NOISEWAVE" }, { 0x8C1F64, 0x7DC000, 0x7DCFFF, "LINEAGE POWER PVT LTD.,", "LINEAGE-POWER-PVT" }, { 0x8C1F64, 0x7DD000, 0x7DDFFF, "TAKASAKI KYODO COMPUTING CENTER Co.,LTD.", "TAKASAKI-KYODO-COMPUTING-CENTER" }, { 0x8C1F64, 0x7DE000, 0x7DEFFF, "SOCNOC AI Inc", "SOCNOC-AI" }, { 0x8C1F64, 0x7E0000, 0x7E0FFF, "Colombo Sales & Engineering, Inc.", "COLOMBO-SALES-ENGINEERING" }, { 0x8C1F64, 0x7E2000, 0x7E2FFF, "Aaronn Electronic GmbH", "AARONN" }, { 0x8C1F64, 0x7E3000, 0x7E3FFF, "UNE SRL", "UNE-SRL" }, { 0x8C1F64, 0x7E7000, 0x7E7FFF, "robert juliat", "ROBERT-JULIAT" }, { 0x8C1F64, 0x7EC000, 0x7ECFFF, "Methods2Business B.V.", "METHODS2BUSINESS-B-V" }, { 0x8C1F64, 0x7EE000, 0x7EEFFF, "Orange Precision Measurement LLC", "ORANGE-PRECISION-MEASUREMENT" }, { 0x8C1F64, 0x7F1000, 0x7F1FFF, "AEM Singapore Pte Ltd", "AEM-SINGAPORE-PTE" }, { 0x8C1F64, 0x801000, 0x801FFF, "Zhejiang Laolan Information Technology Co., Ltd", "ZHEJIANG-LAOLAN-INFORMATION" }, { 0x8C1F64, 0x803000, 0x803FFF, "MOSCA Elektronik und Antriebstechnik GmbH", "MOSCA-ELEKTRONIK-UND-ANTRIEBSTECHNIK" }, { 0x8C1F64, 0x807000, 0x807FFF, "GIORDANO CONTROLS SPA", "GIORDANO-CONTROLS-SPA" }, { 0x8C1F64, 0x810000, 0x810FFF, "Kymata Srl", "KYMATA-SRL" }, { 0x8C1F64, 0x811000, 0x811FFF, "Panoramic Power", "PANORAMIC-POWER" }, { 0x8C1F64, 0x817000, 0x817FFF, "nke marine electronics", "NKE-MARINE-ELECTRONICS" }, { 0x8C1F64, 0x81A000, 0x81AFFF, "Gemini Electronics B.V.", "GEMINI-ELECTRONICS-B-V" }, { 0x8C1F64, 0x820000, 0x820FFF, "TIAMA", "TIAMA" }, { 0x8C1F64, 0x825000, 0x825FFF, "MTU Aero Engines AG", "MTU-AERO-ENGINES" }, { 0x8C1F64, 0x82F000, 0x82FFFF, "AnySignal", "ANYSIGNAL" }, { 0x8C1F64, 0x830000, 0x830FFF, "Vtron Pty Ltd", "VTRON-PTY" }, { 0x8C1F64, 0x837000, 0x837FFF, "runZero, Inc", "RUNZERO" }, { 0x8C1F64, 0x838000, 0x838FFF, "DRIMAES INC.", "DRIMAES" }, { 0x8C1F64, 0x83A000, 0x83AFFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x8C1F64, 0x83C000, 0x83CFFF, "Xtend Technologies Pvt Ltd", "XTEND-TECHNOLOGIES-PVT" }, { 0x8C1F64, 0x83D000, 0x83DFFF, "L-signature", "L-SIGNATURE" }, { 0x8C1F64, 0x83E000, 0x83EFFF, "Sicon srl", "SICON-SRL" }, { 0x8C1F64, 0x842000, 0x842FFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x8C1F64, 0x848000, 0x848FFF, "Jena-Optronik GmbH", "JENA-OPTRONIK" }, { 0x8C1F64, 0x84A000, 0x84AFFF, "Bitmapper Integration Technologies Private Limited", "BITMAPPER-INTEGRATION-TECHNOLOGIES-PRIVATE" }, { 0x8C1F64, 0x84C000, 0x84CFFF, "AvMap srlu", "AVMAP-SRLU" }, { 0x8C1F64, 0x84E000, 0x84EFFF, "West Pharmaceutical Services, Inc.", "WEST-PHARMACEUTICAL-SERVICES" }, { 0x8C1F64, 0x852000, 0x852FFF, "ABB", "ABB" }, { 0x8C1F64, 0x855000, 0x855FFF, "e.kundenservice Netz GmbH", "E-KUNDENSERVICE-NETZ" }, { 0x8C1F64, 0x856000, 0x856FFF, "Garten Automation", "GARTEN-AUTOMATION" }, { 0x8C1F64, 0x85B000, 0x85BFFF, "Atlantic Pumps Ltd", "ATLANTIC-PUMPS" }, { 0x8C1F64, 0x863000, 0x863FFF, "EngiNe srl", "ENGINE-SRL" }, { 0x8C1F64, 0x867000, 0x867FFF, "Forever Engineering Systems Pvt. Ltd.", "FOREVER-ENGINEERING-PVT" }, { 0x8C1F64, 0x86A000, 0x86AFFF, "VisionTools Bildanalyse Systeme GmbH", "VISIONTOOLS-BILDANALYSE-SYSTEME" }, { 0x8C1F64, 0x878000, 0x878FFF, "Green Access Ltd", "GREEN-ACCESS" }, { 0x8C1F64, 0x879000, 0x879FFF, "ASHIDA Electronics Pvt. Ltd", "ASHIDA-ELECTRONICS-PVT" }, { 0x8C1F64, 0x880000, 0x880FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x8C1F64, 0x882000, 0x882FFF, "TMY TECHNOLOGY INC.", "TMY" }, { 0x8C1F64, 0x883000, 0x883FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x8C1F64, 0x88B000, 0x88BFFF, "Taiwan Aulisa Medical Devices Technologies, Inc", "TAIWAN-AULISA-MEDICAL-DEVICES-TECHNOLOGIES" }, { 0x8C1F64, 0x88D000, 0x88DFFF, "Pantherun Technologies Pvt Ltd", "PANTHERUN-TECHNOLOGIES-PVT" }, { 0x8C1F64, 0x88E000, 0x88EFFF, "CubeWorks, Inc.", "CUBEWORKS" }, { 0x8C1F64, 0x890000, 0x890FFF, "WonATech Co., Ltd.", "WONATECH" }, { 0x8C1F64, 0x892000, 0x892FFF, "MDI Industrial", "MDI-INDUSTRIAL" }, { 0x8C1F64, 0x895000, 0x895FFF, "Dacom West GmbH", "DACOM-WEST" }, { 0x8C1F64, 0x898000, 0x898FFF, "Copper Connections Ltd", "COPPER-CONNECTIONS" }, { 0x8C1F64, 0x899000, 0x899FFF, "American Edge IP", "AMERICAN-EDGE-IP" }, { 0x8C1F64, 0x89E000, 0x89EFFF, "Cinetix Srl", "CINETIX-SRL" }, { 0x8C1F64, 0x8A4000, 0x8A4FFF, "Genesis Technologies AG", "GENESIS-TECHNOLOGIES" }, { 0x8C1F64, 0x8A8000, 0x8A8FFF, "Massachusetts Institute of Technology", "MASSACHUSETTS-INSTITUTE-OF" }, { 0x8C1F64, 0x8A9000, 0x8A9FFF, "Guan Show Technologe Co., Ltd.", "GUAN-SHOW-TECHNOLOGE" }, { 0x8C1F64, 0x8AA000, 0x8AAFFF, "Forever Engineering Systems Pvt. Ltd.", "FOREVER-ENGINEERING-PVT" }, { 0x8C1F64, 0x8AC000, 0x8ACFFF, "BOZHON Precision Industry Technology Co.,Ltd", "BOZHON-PRECISION-INDUSTRY" }, { 0x8C1F64, 0x8AE000, 0x8AEFFF, "Shenzhen Qunfang Technology Co., LTD.", "SHENZHEN-QUNFANG" }, { 0x8C1F64, 0x8AF000, 0x8AFFFF, "Ibeos", "IBEOS" }, { 0x8C1F64, 0x8B5000, 0x8B5FFF, "Ashton Bentley Collaboration Spaces", "ASHTON-BENTLEY-COLLABORATION-SPACES" }, { 0x8C1F64, 0x8B8000, 0x8B8FFF, "Wien Energie GmbH", "WIEN-ENERGIE" }, { 0x8C1F64, 0x8B9000, 0x8B9FFF, "Zynex Monitoring Solutions", "ZYNEX-MONITORING-SOLUTIONS" }, { 0x8C1F64, 0x8C2000, 0x8C2FFF, "Cirrus Systems, Inc.", "CIRRUS" }, { 0x8C1F64, 0x8C4000, 0x8C4FFF, "Hermes Network Inc", "HERMES-NETWORK" }, { 0x8C1F64, 0x8C5000, 0x8C5FFF, "NextT Microwave Inc", "NEXTT-MICROWAVE" }, { 0x8C1F64, 0x8CF000, 0x8CFFFF, "Diffraction Limited", "DIFFRACTION" }, { 0x8C1F64, 0x8D0000, 0x8D0FFF, "Enerthing GmbH", "ENERTHING" }, { 0x8C1F64, 0x8D1000, 0x8D1FFF, "Orlaco Products B.V.", "ORLACO-PRODUCTS-B-V" }, { 0x8C1F64, 0x8D4000, 0x8D4FFF, "Recab Sweden AB", "RECAB-SWEDEN-AB" }, { 0x8C1F64, 0x8D5000, 0x8D5FFF, "Agramkow A/S", "AGRAMKOW-A/S" }, { 0x8C1F64, 0x8D9000, 0x8D9FFF, "Pietro Fiorentini Spa", "PIETRO-FIORENTINI-SPA" }, { 0x8C1F64, 0x8DA000, 0x8DAFFF, "Dart Systems Ltd", "DART" }, { 0x8C1F64, 0x8DE000, 0x8DEFFF, "Iconet Services", "ICONET-SERVICES" }, { 0x8C1F64, 0x8DF000, 0x8DFFFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x8C1F64, 0x8E0000, 0x8E0FFF, "Reivax S/A Automação e Controle", "REIVAX-S/A-AUTOMAO-E-CONTROLE" }, { 0x8C1F64, 0x8E2000, 0x8E2FFF, "ALPHA Corporation", "ALPHA" }, { 0x8C1F64, 0x8E3000, 0x8E3FFF, "UniTik Technology Co., Limited", "UNITIK" }, { 0x8C1F64, 0x8E5000, 0x8E5FFF, "Druck Ltd.", "DRUCK" }, { 0x8C1F64, 0x8E8000, 0x8E8FFF, "Cominfo, Inc.", "COMINFO" }, { 0x8C1F64, 0x8E9000, 0x8E9FFF, "Vesperix Corporation", "VESPERIX" }, { 0x8C1F64, 0x8EB000, 0x8EBFFF, "Numa Products LLC", "NUMA-PRODUCTS" }, { 0x8C1F64, 0x8EE000, 0x8EEFFF, "Abbott Diagnostics Technologies AS", "ABBOTT-DIAGNOSTICS-TECHNOLOGIES-AS" }, { 0x8C1F64, 0x8F4000, 0x8F4FFF, "Loadrite (Auckland) Limited", "LOADRITE-AUCKLAND" }, { 0x8C1F64, 0x8F6000, 0x8F6FFF, "Idneo Technologies S.A.U.", "IDNEO-TECHNOLOGIES-U" }, { 0x8C1F64, 0x8F8000, 0x8F8FFF, "HIGHVOLT Prüftechnik", "HIGHVOLT-PRUEFTECHNIK" }, { 0x8C1F64, 0x903000, 0x903FFF, "Portrait Displays, Inc.", "PORTRAIT-DISPLAYS" }, { 0x8C1F64, 0x905000, 0x905FFF, "Qualitrol LLC", "QUALITROL" }, { 0x8C1F64, 0x907000, 0x907FFF, "Sicon srl", "SICON-SRL" }, { 0x8C1F64, 0x909000, 0x909FFF, "MATELEX", "MATELEX" }, { 0x8C1F64, 0x90C000, 0x90CFFF, "Cool Air Incorporated", "COOL-AIR-INCORPORATED" }, { 0x8C1F64, 0x90D000, 0x90DFFF, "Algodue Elettronica Srl", "ALGODUE-ELETTRONICA-SRL" }, { 0x8C1F64, 0x90E000, 0x90EFFF, "Xacti Corporation", "XACTI" }, { 0x8C1F64, 0x90F000, 0x90FFFF, "BELIMO Automation AG", "BELIMO-AUTOMATION" }, { 0x8C1F64, 0x911000, 0x911FFF, "EOLANE", "EOLANE" }, { 0x8C1F64, 0x918000, 0x918FFF, "Abbott Diagnostics Technologies AS", "ABBOTT-DIAGNOSTICS-TECHNOLOGIES-AS" }, { 0x8C1F64, 0x91A000, 0x91AFFF, "Profcon AB", "PROFCON-AB" }, { 0x8C1F64, 0x91B000, 0x91BFFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x8C1F64, 0x91D000, 0x91DFFF, "enlighten", "ENLIGHTEN" }, { 0x8C1F64, 0x923000, 0x923FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x8C1F64, 0x924000, 0x924FFF, "Magics Technologies", "MAGICS-TECHNOLOGIES" }, { 0x8C1F64, 0x928000, 0x928FFF, "ITG Co.Ltd", "ITG" }, { 0x8C1F64, 0x92A000, 0x92AFFF, "Thermo Onix Ltd", "THERMO-ONIX" }, { 0x8C1F64, 0x92D000, 0x92DFFF, "IVOR Intelligent Electrical Appliance Co., Ltd", "IVOR-INTELLIGENT-ELECTRICAL-APPLIANCE" }, { 0x8C1F64, 0x931000, 0x931FFF, "Noptel Oy", "NOPTEL-OY" }, { 0x8C1F64, 0x937000, 0x937FFF, "H2Ok Innovations", "H2OK-INNOVATIONS" }, { 0x8C1F64, 0x939000, 0x939FFF, "SPIT Technology, Inc", "SPIT" }, { 0x8C1F64, 0x943000, 0x943FFF, "Autark GmbH", "AUTARK" }, { 0x8C1F64, 0x946000, 0x946FFF, "UniJet Co., Ltd.", "UNIJET" }, { 0x8C1F64, 0x947000, 0x947FFF, "LLC TC Vympel", "LLC-TC-VYMPEL" }, { 0x8C1F64, 0x949000, 0x949FFF, "tickIoT Inc.", "TICKIOT" }, { 0x8C1F64, 0x94C000, 0x94CFFF, "BCMTECH", "BCMTECH" }, { 0x8C1F64, 0x94E000, 0x94EFFF, "Monnit Corporation", "MONNIT" }, { 0x8C1F64, 0x956000, 0x956FFF, "Paulmann Licht GmbH", "PAULMANN-LICHT" }, { 0x8C1F64, 0x958000, 0x958FFF, "Sanchar Telesystems limited", "SANCHAR-TELESYSTEMS" }, { 0x8C1F64, 0x95A000, 0x95AFFF, "Shenzhen Longyun Lighting Electric Appliances Co., Ltd", "SHENZHEN-LONGYUN-LIGHTING-ELECTRIC-APPLIANCES" }, { 0x8C1F64, 0x963000, 0x963FFF, "Gogo Business Aviation", "GOGO-BUSINESS-AVIATION" }, { 0x8C1F64, 0x967000, 0x967FFF, "DAVE SRL", "DAVE-SRL" }, { 0x8C1F64, 0x968000, 0x968FFF, "IAV ENGINEERING SARL", "IAV-ENGINEERING-SARL" }, { 0x8C1F64, 0x971000, 0x971FFF, "INFRASAFE/ ADVANTOR SYSTEMS", "INFRASAFE/-ADVANTOR" }, { 0x8C1F64, 0x973000, 0x973FFF, "Dorsett Technologies Inc", "DORSETT-TECHNOLOGIES" }, { 0x8C1F64, 0x978000, 0x978FFF, "Planet Innovation Products Inc.", "PLANET-INNOVATION-PRODUCTS" }, { 0x8C1F64, 0x97C000, 0x97CFFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x8C1F64, 0x97D000, 0x97DFFF, "KSE GmbH", "KSE" }, { 0x8C1F64, 0x97F000, 0x97FFFF, "Talleres de Escoriaza SA", "TALLERES-DE-ESCORIAZA" }, { 0x8C1F64, 0x984000, 0x984FFF, "Abacus Peripherals Pvt Ltd", "ABACUS-PERIPHERALS-PVT" }, { 0x8C1F64, 0x989000, 0x989FFF, "Phe-nX B.V.", "PHE-NX-B-V" }, { 0x8C1F64, 0x98C000, 0x98CFFF, "PAN Business & Consulting (ANYOS]", "PAN-BUSINESS-CONSULTING-ANYOS]" }, { 0x8C1F64, 0x98F000, 0x98FFFF, "Breas Medical AB", "BREAS-MEDICAL-AB" }, { 0x8C1F64, 0x991000, 0x991FFF, "DB Systel GmbH", "DB-SYSTEL" }, { 0x8C1F64, 0x998000, 0x998FFF, "EVLO Stockage Énergie", "EVLO-STOCKAGE-NERGIE" }, { 0x8C1F64, 0x99E000, 0x99EFFF, "EIDOS s.r.l.", "EIDOS" }, { 0x8C1F64, 0x9A1000, 0x9A1FFF, "Pacific Software Development Co., Ltd.", "PACIFIC-SOFTWARE-DEVELOPMENT" }, { 0x8C1F64, 0x9A4000, 0x9A4FFF, "LabLogic Systems", "LABLOGIC" }, { 0x8C1F64, 0x9A5000, 0x9A5FFF, "Xi‘an Shengxin Science& Technology Development Co.?Ltd.", "XIAN-SHENGXIN-SCIENCE-DEVELOPMENT" }, { 0x8C1F64, 0x9A6000, 0x9A6FFF, "INSTITUTO DE GESTÃO, REDES TECNOLÓGICAS E NERGIAS", "INSTITUTO-DE-GESTO-REDES-TECNOLGICAS-E-NERGIAS" }, { 0x8C1F64, 0x9AB000, 0x9ABFFF, "DAVE SRL", "DAVE-SRL" }, { 0x8C1F64, 0x9B2000, 0x9B2FFF, "Emerson Rosemount Analytical", "EMERSON-ROSEMOUNT-ANALYTICAL" }, { 0x8C1F64, 0x9B3000, 0x9B3FFF, "Böckelt GmbH", "BOECKELT" }, { 0x8C1F64, 0x9B6000, 0x9B6FFF, "GS Elektromedizinsiche Geräte G. Stemple GmbH", "GS-ELEKTROMEDIZINSICHE-GERAETE-G-STEMPLE" }, { 0x8C1F64, 0x9BA000, 0x9BAFFF, "WINTUS SYSTEM", "WINTUS-SYSTEM" }, { 0x8C1F64, 0x9BD000, 0x9BDFFF, "ATM SOLUTIONS", "ATM-SOLUTIONS" }, { 0x8C1F64, 0x9BF000, 0x9BFFFF, "ArgusEye TECH. INC", "ARGUSEYE-TECH" }, { 0x8C1F64, 0x9C0000, 0x9C0FFF, "Header Rhyme", "HEADER-RHYME" }, { 0x8C1F64, 0x9C1000, 0x9C1FFF, "RealWear", "REALWEAR" }, { 0x8C1F64, 0x9C3000, 0x9C3FFF, "Camozzi Automation SpA", "CAMOZZI-AUTOMATION-SPA" }, { 0x8C1F64, 0x9CB000, 0x9CBFFF, "Shanghai Sizhong Information Technology Co., Ltd", "SHANGHAI-SIZHONG-INFORMATION" }, { 0x8C1F64, 0x9CE000, 0x9CEFFF, "Exi Flow Measurement Ltd", "EXI-FLOW-MEASUREMENT" }, { 0x8C1F64, 0x9CF000, 0x9CFFFF, "ASAP Electronics GmbH", "ASAP-ELECTRONICS" }, { 0x8C1F64, 0x9D4000, 0x9D4FFF, "Wolfspyre Labs", "WOLFSPYRE-LABS" }, { 0x8C1F64, 0x9D8000, 0x9D8FFF, "Integer.pl S.A.", "INTEGER-PL" }, { 0x8C1F64, 0x9E0000, 0x9E0FFF, "Druck Ltd.", "DRUCK" }, { 0x8C1F64, 0x9E2000, 0x9E2FFF, "Technology for Energy Corp", "FOR-ENERGY" }, { 0x8C1F64, 0x9E5000, 0x9E5FFF, "Schunk Sonosystems GmbH", "SCHUNK-SONOSYSTEMS" }, { 0x8C1F64, 0x9E6000, 0x9E6FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x8C1F64, 0x9E8000, 0x9E8FFF, "GHM Messtechnik GmbH", "GHM-MESSTECHNIK" }, { 0x8C1F64, 0x9EC000, 0x9ECFFF, "Specialized Communications Corp.", "SPECIALIZED-COMMUNICATION" }, { 0x8C1F64, 0x9F0000, 0x9F0FFF, "ePlant, Inc.", "EPLANT" }, { 0x8C1F64, 0x9F2000, 0x9F2FFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x8C1F64, 0x9F4000, 0x9F4FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x8C1F64, 0x9F5000, 0x9F5FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x8C1F64, 0x9F6000, 0x9F6FFF, "Vision Systems Safety Tech", "VISION-SAFETY-TECH" }, { 0x8C1F64, 0x9FA000, 0x9FAFFF, "METRONA-Union GmbH", "METRONA-UNION" }, { 0x8C1F64, 0x9FB000, 0x9FBFFF, "CI SYSTEMS ISRAEL LTD", "CI-ISRAEL" }, { 0x8C1F64, 0x9FD000, 0x9FDFFF, "Vishay Nobel AB", "VISHAY-NOBEL-AB" }, { 0x8C1F64, 0x9FE000, 0x9FEFFF, "Metroval Controle de Fluidos Ltda", "METROVAL-CONTROLE-DE-FLUIDOS-LTDA" }, { 0x8C1F64, 0x9FF000, 0x9FFFFF, "Satelles Inc", "SATELLES" }, { 0x8C1F64, 0xA00000, 0xA00FFF, "BITECHNIK GmbH", "BITECHNIK" }, { 0x8C1F64, 0xA01000, 0xA01FFF, "Guan Show Technologe Co., Ltd.", "GUAN-SHOW-TECHNOLOGE" }, { 0x8C1F64, 0xA07000, 0xA07FFF, "GJD Manufacturing", "GJD-MANUFACTURING" }, { 0x8C1F64, 0xA0A000, 0xA0AFFF, "Shanghai Wise-Tech Intelligent Technology Co.,Ltd.", "SHANGHAI-WISE-TECH-INTELLIGENT" }, { 0x8C1F64, 0xA0D000, 0xA0DFFF, "Lumiplan Duhamel", "LUMIPLAN-DUHAMEL" }, { 0x8C1F64, 0xA1B000, 0xA1BFFF, "Zilica Limited", "ZILICA" }, { 0x8C1F64, 0xA29000, 0xA29FFF, "Ringtail Security", "RINGTAIL-SECURITY" }, { 0x8C1F64, 0xA2B000, 0xA2BFFF, "WENet Vietnam Joint Stock company", "WENET-VIETNAM-JOINT-STOCK-COMPANY" }, { 0x8C1F64, 0xA2D000, 0xA2DFFF, "ACSL Ltd.", "ACSL" }, { 0x8C1F64, 0xA31000, 0xA31FFF, "Zing Communications Inc", "ZING-COMMUNICATION" }, { 0x8C1F64, 0xA32000, 0xA32FFF, "Nautel LTD", "NAUTEL" }, { 0x8C1F64, 0xA34000, 0xA34FFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x8C1F64, 0xA36000, 0xA36FFF, "DONGGUAN GAGO ELECTRONICS CO.,LTD", "DONGGUAN-GAGO-ELECTRONICS" }, { 0x8C1F64, 0xA38000, 0xA38FFF, "NuGrid Power", "NUGRID-POWER" }, { 0x8C1F64, 0xA3B000, 0xA3BFFF, "Fujian Satlink Electronics Co., Ltd", "FUJIAN-SATLINK-ELECTRONICS" }, { 0x8C1F64, 0xA3F000, 0xA3FFFF, "ViewSonic Corp", "VIEWSONIC" }, { 0x8C1F64, 0xA42000, 0xA42FFF, "Rodgers Instruments US LLC", "RODGERS-INSTRUMENTS-US" }, { 0x8C1F64, 0xA44000, 0xA44FFF, "Rapidev Pvt Ltd", "RAPIDEV-PVT" }, { 0x8C1F64, 0xA4C000, 0xA4CFFF, "Flextronics International Kft", "FLEXTRONICS-KFT" }, { 0x8C1F64, 0xA4E000, 0xA4EFFF, "Syscom Instruments SA", "SYSCOM-INSTRUMENTS" }, { 0x8C1F64, 0xA51000, 0xA51FFF, "BABTEL", "BABTEL" }, { 0x8C1F64, 0xA56000, 0xA56FFF, "Flextronics International Kft", "FLEXTRONICS-KFT" }, { 0x8C1F64, 0xA57000, 0xA57FFF, "EkspertStroyProekt", "EKSPERTSTROYPROEKT" }, { 0x8C1F64, 0xA5C000, 0xA5CFFF, "Prosys", "PROSYS" }, { 0x8C1F64, 0xA5D000, 0xA5DFFF, "Shenzhen zhushida Technology lnformation Co.,Ltd", "SHENZHEN-ZHUSHIDA-LNFORMATION" }, { 0x8C1F64, 0xA5E000, 0xA5EFFF, "XTIA Ltd.", "XTIA" }, { 0x8C1F64, 0xA60000, 0xA60FFF, "Active Optical Systems, LLC", "ACTIVE-OPTICAL" }, { 0x8C1F64, 0xA6A000, 0xA6AFFF, "Sphere Com Services Pvt Ltd", "SPHERE-COM-SERVICES-PVT" }, { 0x8C1F64, 0xA6D000, 0xA6DFFF, "CyberneX Co., Ltd", "CYBERNEX" }, { 0x8C1F64, 0xA6E000, 0xA6EFFF, "shenzhen beswave co.,ltd", "SHENZHEN-BESWAVE" }, { 0x8C1F64, 0xA70000, 0xA70FFF, "V-teknik Elektronik AB", "V-TEKNIK-ELEKTRONIK-AB" }, { 0x8C1F64, 0xA76000, 0xA76FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x8C1F64, 0xA77000, 0xA77FFF, "Rax-Tech International", "RAX-TECH" }, { 0x8C1F64, 0xA81000, 0xA81FFF, "3D perception AS", "3D-PERCEPTION-AS" }, { 0x8C1F64, 0xA83000, 0xA83FFF, "EkspertStroyProekt", "EKSPERTSTROYPROEKT" }, { 0x8C1F64, 0xA84000, 0xA84FFF, "Beijing Wenrise Technology Co., Ltd.", "BEIJING-WENRISE" }, { 0x8C1F64, 0xA87000, 0xA87FFF, "Morgen Technology", "MORGEN" }, { 0x8C1F64, 0xA89000, 0xA89FFF, "Mitsubishi Electric India Pvt. Ltd.", "MITSUBISHI-ELECTRIC-INDIA-PVT" }, { 0x8C1F64, 0xA91000, 0xA91FFF, "Infinitive Group Limited", "INFINITIVE-GROUP" }, { 0x8C1F64, 0xA94000, 0xA94FFF, "Future wave ultra tech Company", "FUTURE-WAVE-ULTRA-TECH-COMPANY" }, { 0x8C1F64, 0xA97000, 0xA97FFF, "Integer.pl S.A.", "INTEGER-PL" }, { 0x8C1F64, 0xA9A000, 0xA9AFFF, "Signasystems Elektronik San. ve Tic. Ltd. Sti.", "SIGNASYSTEMS-ELEKTRONIK-SAN-VE-TIC-STI" }, { 0x8C1F64, 0xA9B000, 0xA9BFFF, "Ovide Maudet SL", "OVIDE-MAUDET-SL" }, { 0x8C1F64, 0xA9C000, 0xA9CFFF, "Upstart Power", "UPSTART-POWER" }, { 0x8C1F64, 0xA9E000, 0xA9EFFF, "Optimum Instruments Inc.", "OPTIMUM-INSTRUMENTS" }, { 0x8C1F64, 0xAA3000, 0xAA3FFF, "Peter Huber Kaeltemaschinenbau AG", "PETER-HUBER-KAELTEMASCHINENBAU" }, { 0x8C1F64, 0xAA4000, 0xAA4FFF, "HEINEN ELEKTRONIK GmbH", "HEINEN-ELEKTRONIK" }, { 0x8C1F64, 0xAA8000, 0xAA8FFF, "axelife", "AXELIFE" }, { 0x8C1F64, 0xAAA000, 0xAAAFFF, "Leder Elektronik Design GmbH", "LEDER-ELEKTRONIK-DESIGN" }, { 0x8C1F64, 0xAAB000, 0xAABFFF, "BlueSword Intelligent Technology Co., Ltd.", "BLUESWORD-INTELLIGENT" }, { 0x8C1F64, 0xAB4000, 0xAB4FFF, "Beijing Zhongchen Microelectronics Co.,Ltd", "BEIJING-ZHONGCHEN-MICROELECTRONICS" }, { 0x8C1F64, 0xAB5000, 0xAB5FFF, "JUSTMORPH PTE. LTD.", "JUSTMORPH-PTE" }, { 0x8C1F64, 0xAB7000, 0xAB7FFF, "MClavis Co.,Ltd.", "MCLAVIS" }, { 0x8C1F64, 0xAC0000, 0xAC0FFF, "AIQuatro", "AIQUATRO" }, { 0x8C1F64, 0xAC3000, 0xAC3FFF, "WAVES SYSTEM", "WAVES-SYSTEM" }, { 0x8C1F64, 0xAC4000, 0xAC4FFF, "comelec", "COMELEC" }, { 0x8C1F64, 0xAC5000, 0xAC5FFF, "Forever Engineering Systems Pvt. Ltd.", "FOREVER-ENGINEERING-PVT" }, { 0x8C1F64, 0xAC9000, 0xAC9FFF, "ShenYang LeShun Technology Co.,Ltd", "SHENYANG-LESHUN" }, { 0x8C1F64, 0xACE000, 0xACEFFF, "Rayhaan Networks", "RAYHAAN-NETWORKS" }, { 0x8C1F64, 0xAD0000, 0xAD0FFF, "Elektrotechnik & Elektronik Oltmann GmbH", "ELEKTROTECHNIK-ELEKTRONIK-OLTMANN" }, { 0x8C1F64, 0xAD2000, 0xAD2FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x8C1F64, 0xAD4000, 0xAD4FFF, "Flextronics International Kft", "FLEXTRONICS-KFT" }, { 0x8C1F64, 0xAD8000, 0xAD8FFF, "Novanta IMS", "NOVANTA-IMS" }, { 0x8C1F64, 0xAE1000, 0xAE1FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x8C1F64, 0xAE5000, 0xAE5FFF, "Ltec Co.,Ltd", "LTEC" }, { 0x8C1F64, 0xAE8000, 0xAE8FFF, "ADETEC SAS", "ADETEC-SAS" }, { 0x8C1F64, 0xAEA000, 0xAEAFFF, "INHEMETER Co.,Ltd", "INHEMETER" }, { 0x8C1F64, 0xAED000, 0xAEDFFF, "MB connect line GmbH Fernwartungssysteme", "MB-CONNECT-LINE-FERNWARTUNGSSYSTEME" }, { 0x8C1F64, 0xAEF000, 0xAEFFFF, "Scenario Automation", "SCENARIO-AUTOMATION" }, { 0x8C1F64, 0xAF0000, 0xAF0FFF, "MinebeaMitsumi Inc.", "MINEBEAMITSUMI" }, { 0x8C1F64, 0xAF5000, 0xAF5FFF, "SANMINA ISRAEL MEDICAL SYSTEMS LTD", "SANMINA-ISRAEL-MEDICAL" }, { 0x8C1F64, 0xAF7000, 0xAF7FFF, "ard sa", "ARD" }, { 0x8C1F64, 0xAFD000, 0xAFDFFF, "Universal Robots A/S", "UNIVERSAL-ROBOTS-A/S" }, { 0x8C1F64, 0xAFF000, 0xAFFFFF, "Qtechnology A/S", "QTECHNOLOGY-A/S" }, { 0x8C1F64, 0xB01000, 0xB01FFF, "noah", "NOAH" }, { 0x8C1F64, 0xB03000, 0xB03FFF, "Shenzhen Pisoftware Technology Co.,Ltd.", "SHENZHEN-PISOFTWARE" }, { 0x8C1F64, 0xB08000, 0xB08FFF, "Cronus Electronics", "CRONUS-ELECTRONICS" }, { 0x8C1F64, 0xB0C000, 0xB0CFFF, "Barkodes Bilgisayar Sistemleri Bilgi Iletisim ve Y", "BARKODES-BILGISAYAR-SISTEMLERI-BILGI-ILETISIM-VE-Y" }, { 0x8C1F64, 0xB0F000, 0xB0FFFF, "HKC Security Ltd.", "HKC-SECURITY" }, { 0x8C1F64, 0xB10000, 0xB10FFF, "MTU Aero Engines AG", "MTU-AERO-ENGINES" }, { 0x8C1F64, 0xB13000, 0xB13FFF, "Abode Systems Inc", "ABODE" }, { 0x8C1F64, 0xB14000, 0xB14FFF, "Murata Manufacturing CO., Ltd.", "MURATA-MANUFACTURING" }, { 0x8C1F64, 0xB22000, 0xB22FFF, "BLIGHTER SURVEILLANCE SYSTEMS LTD", "BLIGHTER-SURVEILLANCE" }, { 0x8C1F64, 0xB2B000, 0xB2BFFF, "Rhombus Europe", "RHOMBUS-EUROPE" }, { 0x8C1F64, 0xB2C000, 0xB2CFFF, "SANMINA ISRAEL MEDICAL SYSTEMS LTD", "SANMINA-ISRAEL-MEDICAL" }, { 0x8C1F64, 0xB2F000, 0xB2FFFF, "Mtechnology - Gamma Commerciale Srl", "MTECHNOLOGY-GAMMA-COMMERCIALE-SRL" }, { 0x8C1F64, 0xB36000, 0xB36FFF, "Pneumax Spa", "PNEUMAX-SPA" }, { 0x8C1F64, 0xB3B000, 0xB3BFFF, "Sicon srl", "SICON-SRL" }, { 0x8C1F64, 0xB3D000, 0xB3DFFF, "RealD, Inc.", "REALD" }, { 0x8C1F64, 0xB46000, 0xB46FFF, "PHYGITALL SOLUÇÕES EM INTERNET DAS COISAS", "PHYGITALL-SOLUES-EM-INTERNET-DAS-COISAS" }, { 0x8C1F64, 0xB4C000, 0xB4CFFF, "Picocom Technology Ltd", "PICOCOM" }, { 0x8C1F64, 0xB55000, 0xB55FFF, "Sanchar Telesystems limited", "SANCHAR-TELESYSTEMS" }, { 0x8C1F64, 0xB56000, 0xB56FFF, "Arcvideo", "ARCVIDEO" }, { 0x8C1F64, 0xB64000, 0xB64FFF, "GSP Sprachtechnologie GmbH", "GSP-SPRACHTECHNOLOGIE" }, { 0x8C1F64, 0xB65000, 0xB65FFF, "HomyHub SL", "HOMYHUB-SL" }, { 0x8C1F64, 0xB67000, 0xB67FFF, "M2M craft Co., Ltd.", "M2M-CRAFT" }, { 0x8C1F64, 0xB68000, 0xB68FFF, "All-Systems Electronics Pty Ltd", "ALL-ELECTRONICS-PTY" }, { 0x8C1F64, 0xB69000, 0xB69FFF, "Quanxing Tech Co.,LTD", "QUANXING-TECH" }, { 0x8C1F64, 0xB6D000, 0xB6DFFF, "Andy-L Ltd", "ANDY-L" }, { 0x8C1F64, 0xB6E000, 0xB6EFFF, "Loop Technologies", "LOOP-TECHNOLOGIES" }, { 0x8C1F64, 0xB73000, 0xB73FFF, "Comm-ence, Inc.", "COMM-ENCE" }, { 0x8C1F64, 0xB77000, 0xB77FFF, "Carestream Dental LLC", "CARESTREAM-DENTAL" }, { 0x8C1F64, 0xB7B000, 0xB7BFFF, "Gateview Technologies", "GATEVIEW-TECHNOLOGIES" }, { 0x8C1F64, 0xB7C000, 0xB7CFFF, "EVERNET CO,.LTD TAIWAN", "EVERNET-TAIWAN" }, { 0x8C1F64, 0xB7D000, 0xB7DFFF, "Scheurich GmbH", "SCHEURICH" }, { 0x8C1F64, 0xB82000, 0xB82FFF, "Seed Core Co., LTD.", "SEED-CORE" }, { 0x8C1F64, 0xB84000, 0xB84FFF, "SPX Flow Technology", "SPX-FLOW" }, { 0x8C1F64, 0xB8D000, 0xB8DFFF, "Tongye lnnovation Science and Technology (Shenzhen) Co.,Ltd", "TONGYE-LNNOVATION-SCIENCE-AND-SHENZHEN" }, { 0x8C1F64, 0xB92000, 0xB92FFF, "Neurable", "NEURABLE" }, { 0x8C1F64, 0xB97000, 0xB97FFF, "Gemini Electronics B.V.", "GEMINI-ELECTRONICS-B-V" }, { 0x8C1F64, 0xB9A000, 0xB9AFFF, "QUERCUS TECHNOLOGIES, S.L.", "QUERCUS-TECHNOLOGIES" }, { 0x8C1F64, 0xB9E000, 0xB9EFFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x8C1F64, 0xBA3000, 0xBA3FFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x8C1F64, 0xBB2000, 0xBB2FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x8C1F64, 0xBB3000, 0xBB3FFF, "Zaruc Tecnologia LTDA", "ZARUC-TECNOLOGIA-LTDA" }, { 0x8C1F64, 0xBBC000, 0xBBCFFF, "Liberator Pty Ltd", "LIBERATOR-PTY" }, { 0x8C1F64, 0xBBF000, 0xBBFFFF, "Retency", "RETENCY" }, { 0x8C1F64, 0xBC0000, 0xBC0FFF, "GS Elektromedizinsiche Geräte G. Stemple GmbH", "GS-ELEKTROMEDIZINSICHE-GERAETE-G-STEMPLE" }, { 0x8C1F64, 0xBC1000, 0xBC1FFF, "CominTech, LLC", "COMINTECH" }, { 0x8C1F64, 0xBC2000, 0xBC2FFF, "Huz Electronics Ltd", "HUZ-ELECTRONICS" }, { 0x8C1F64, 0xBC3000, 0xBC3FFF, "FoxIoT OÜ", "FOXIOT-OUE" }, { 0x8C1F64, 0xBC6000, 0xBC6FFF, "Chengdu ZiChen Time&Frequency Technology Co.,Ltd", "CHENGDU-ZICHEN-TIME-FREQUENCY" }, { 0x8C1F64, 0xBC9000, 0xBC9FFF, "GL TECH CO.,LTD", "GL-TECH" }, { 0x8C1F64, 0xBCB000, 0xBCBFFF, "A&T Corporation", "A-T" }, { 0x8C1F64, 0xBCC000, 0xBCCFFF, "Sound Health Systems", "SOUND-HEALTH" }, { 0x8C1F64, 0xBD3000, 0xBD3FFF, "IO Master Technology", "IO-MASTER" }, { 0x8C1F64, 0xBD6000, 0xBD6FFF, "NOVA Products GmbH", "NOVA-PRODUCTS" }, { 0x8C1F64, 0xBD7000, 0xBD7FFF, "Union Electronic.", "UNION" }, { 0x8C1F64, 0xBDB000, 0xBDBFFF, "Cardinal Scales Manufacturing Co", "CARDINAL-SCALES-MANUFACTURING" }, { 0x8C1F64, 0xBE8000, 0xBE8FFF, "TECHNOLOGIES BACMOVE INC.", "TECHNOLOGIES-BACMOVE" }, { 0x8C1F64, 0xBEE000, 0xBEEFFF, "Sirius LLC", "SIRIUS" }, { 0x8C1F64, 0xBF0000, 0xBF0FFF, "Newtec A/S", "NEWTEC-A/S" }, { 0x8C1F64, 0xBF1000, 0xBF1FFF, "Soha Jin", "SOHA-JIN" }, { 0x8C1F64, 0xBF3000, 0xBF3FFF, "Alphatek AS", "ALPHATEK-AS" }, { 0x8C1F64, 0xBF4000, 0xBF4FFF, "Fluid Components Intl", "FLUID-COMPONENTS-INTL" }, { 0x8C1F64, 0xBFB000, 0xBFBFFF, "TechArgos", "TECHARGOS" }, { 0x8C1F64, 0xC01000, 0xC01FFF, "HORIBA ABX SAS", "HORIBA-ABX-SAS" }, { 0x8C1F64, 0xC03000, 0xC03FFF, "Abiman Engineering", "ABIMAN-ENGINEERING" }, { 0x8C1F64, 0xC04000, 0xC04FFF, "SANWA CORPORATION", "SANWA" }, { 0x8C1F64, 0xC05000, 0xC05FFF, "SkyCell AG", "SKYCELL" }, { 0x8C1F64, 0xC06000, 0xC06FFF, "Tardis Technology", "TARDIS" }, { 0x8C1F64, 0xC07000, 0xC07FFF, "HYOSUNG Heavy Industries Corporation", "HYOSUNG-HEAVY-INDUSTRIES" }, { 0x8C1F64, 0xC0A000, 0xC0AFFF, "ACROLABS,INC", "ACROLABS" }, { 0x8C1F64, 0xC0C000, 0xC0CFFF, "GIORDANO CONTROLS SPA", "GIORDANO-CONTROLS-SPA" }, { 0x8C1F64, 0xC0D000, 0xC0DFFF, "Abbott Diagnostics Technologies AS", "ABBOTT-DIAGNOSTICS-TECHNOLOGIES-AS" }, { 0x8C1F64, 0xC0E000, 0xC0EFFF, "Goodtech AS dep Fredrikstad", "GOODTECH-AS-DEP-FREDRIKSTAD" }, { 0x8C1F64, 0xC12000, 0xC12FFF, "PHYSEC GmbH", "PHYSEC" }, { 0x8C1F64, 0xC17000, 0xC17FFF, "Metreg Technologies GmbH", "METREG-TECHNOLOGIES" }, { 0x8C1F64, 0xC1C000, 0xC1CFFF, "Vektrex Electronics Systems, Inc.", "VEKTREX-ELECTRONICS" }, { 0x8C1F64, 0xC1E000, 0xC1EFFF, "VA SYD", "VA-SYD" }, { 0x8C1F64, 0xC1F000, 0xC1FFFF, "Esys Srl", "ESYS-SRL" }, { 0x8C1F64, 0xC24000, 0xC24FFF, "Alifax S.r.l.", "ALIFAX" }, { 0x8C1F64, 0xC27000, 0xC27FFF, "Lift Ventures, Inc", "LIFT-VENTURES" }, { 0x8C1F64, 0xC28000, 0xC28FFF, "Tornado Spectral Systems Inc.", "TORNADO-SPECTRAL" }, { 0x8C1F64, 0xC2F000, 0xC2FFFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x8C1F64, 0xC35000, 0xC35FFF, "Peter Huber Kaeltemaschinenbau AG", "PETER-HUBER-KAELTEMASCHINENBAU" }, { 0x8C1F64, 0xC38000, 0xC38FFF, "ECO-ADAPT", "ECO-ADAPT" }, { 0x8C1F64, 0xC3A000, 0xC3AFFF, "YUSUR Technology Co., Ltd.", "YUSUR" }, { 0x8C1F64, 0xC40000, 0xC40FFF, "Sciospec Scientific Instruments GmbH", "SCIOSPEC-SCIENTIFIC-INSTRUMENTS" }, { 0x8C1F64, 0xC41000, 0xC41FFF, "Katronic AG & Co. KG", "KATRONIC" }, { 0x8C1F64, 0xC42000, 0xC42FFF, "SD OPTICS", "SD-OPTICS" }, { 0x8C1F64, 0xC43000, 0xC43FFF, "SHENZHEN SMARTLOG TECHNOLOGIES CO.,LTD", "SHENZHEN-SMARTLOG-TECHNOLOGIES" }, { 0x8C1F64, 0xC44000, 0xC44FFF, "Sypris Electronics", "SYPRIS-ELECTRONICS" }, { 0x8C1F64, 0xC4A000, 0xC4AFFF, "SGi Technology Group Ltd.", "SGI-GROUP" }, { 0x8C1F64, 0xC4C000, 0xC4CFFF, "Lumiplan Duhamel", "LUMIPLAN-DUHAMEL" }, { 0x8C1F64, 0xC50000, 0xC50FFF, "Spacee", "SPACEE" }, { 0x8C1F64, 0xC51000, 0xC51FFF, "EPC Energy Inc", "EPC-ENERGY" }, { 0x8C1F64, 0xC52000, 0xC52FFF, "Invendis Technologies India Pvt Ltd", "INVENDIS-TECHNOLOGIES-INDIA-PVT" }, { 0x8C1F64, 0xC54000, 0xC54FFF, "First Mode", "FIRST-MODE" }, { 0x8C1F64, 0xC57000, 0xC57FFF, "Strategic Robotic Systems", "STRATEGIC-ROBOTIC" }, { 0x8C1F64, 0xC59000, 0xC59FFF, "Tunstall A/S", "TUNSTALL-A/S" }, { 0x8C1F64, 0xC5D000, 0xC5DFFF, "Alfa Proxima d.o.o.", "ALFA-PROXIMA-D-O-O" }, { 0x8C1F64, 0xC61000, 0xC61FFF, "Beijing Ceresdate Technology Co.,LTD", "BEIJING-CERESDATE" }, { 0x8C1F64, 0xC64000, 0xC64FFF, "Ajeco Oy", "AJECO-OY" }, { 0x8C1F64, 0xC68000, 0xC68FFF, "FIBERME COMMUNICATIONS LLC", "FIBERME-COMMUNICATION" }, { 0x8C1F64, 0xC6A000, 0xC6AFFF, "Red Phase Technologies Limited", "RED-PHASE-TECHNOLOGIES" }, { 0x8C1F64, 0xC6B000, 0xC6BFFF, "Mediana", "MEDIANA" }, { 0x8C1F64, 0xC71000, 0xC71FFF, "Yaviar LLC", "YAVIAR" }, { 0x8C1F64, 0xC7C000, 0xC7CFFF, "MERKLE Schweissanlagen-Technik GmbH", "MERKLE-SCHWEISSANLAGEN-TECHNIK" }, { 0x8C1F64, 0xC80000, 0xC80FFF, "VECOS Europe B.V.", "VECOS-EUROPE-B-V" }, { 0x8C1F64, 0xC81000, 0xC81FFF, "Taolink Technologies Corporation", "TAOLINK-TECHNOLOGIES" }, { 0x8C1F64, 0xC85000, 0xC85FFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x8C1F64, 0xC8F000, 0xC8FFFF, "JW Froehlich Maschinenfabrik GmbH", "JW-FROEHLICH-MASCHINENFABRIK" }, { 0x8C1F64, 0xC91000, 0xC91FFF, "Soehnle Industrial Solutions GmbH", "SOEHNLE-INDUSTRIAL-SOLUTIONS" }, { 0x8C1F64, 0xC97000, 0xC97FFF, "Magnet-Physik Dr. Steingroever GmbH", "MAGNET-PHYSIK-DR-STEINGROEVER" }, { 0x8C1F64, 0xCA1000, 0xCA1FFF, "Pantherun Technologies Pvt Ltd", "PANTHERUN-TECHNOLOGIES-PVT" }, { 0x8C1F64, 0xCA6000, 0xCA6FFF, "ReliaSpeak Information Technology Co., Ltd.", "RELIASPEAK-INFORMATION" }, { 0x8C1F64, 0xCA7000, 0xCA7FFF, "eumig industrie-TV GmbH.", "EUMIG-INDUSTRIE-TV" }, { 0x8C1F64, 0xCAB000, 0xCABFFF, "Spyder Controls Corp.", "SPYDER-CONTROLS" }, { 0x8C1F64, 0xCAD000, 0xCADFFF, "General Motors", "GENERAL-MOTORS" }, { 0x8C1F64, 0xCAF000, 0xCAFFFF, "BRS Sistemas Eletrônicos", "BRS-SISTEMAS-ELETRNICOS" }, { 0x8C1F64, 0xCB2000, 0xCB2FFF, "Dyncir Soluções Tecnológicas Ltda", "DYNCIR-SOLUES-TECNOLGICAS-LTDA" }, { 0x8C1F64, 0xCB5000, 0xCB5FFF, "Gamber-Johnson LLC", "GAMBER-JOHNSON" }, { 0x8C1F64, 0xCB7000, 0xCB7FFF, "ARKRAY,Inc.Kyoto Laboratory", "ARKRAY-KYOTO-LABORATORY" }, { 0x8C1F64, 0xCBE000, 0xCBEFFF, "Circa Enterprises Inc", "CIRCA-ENTERPRISES" }, { 0x8C1F64, 0xCC1000, 0xCC1FFF, "VITREA Smart Home Technologies Ltd.", "VITREA-SMART-HOME-TECHNOLOGIES" }, { 0x8C1F64, 0xCC2000, 0xCC2FFF, "TOYOGIKEN CO.,LTD.", "TOYOGIKEN" }, { 0x8C1F64, 0xCC5000, 0xCC5FFF, "Potter Electric Signal Co. LLC", "POTTER-ELECTRIC-SIGNAL" }, { 0x8C1F64, 0xCC6000, 0xCC6FFF, "Genius Vision Digital Private Limited", "GENIUS-VISION-DIGITAL-PRIVATE" }, { 0x8C1F64, 0xCCB000, 0xCCBFFF, "suzhou yuecrown Electronic Technology Co.,LTD", "SUZHOU-YUECROWN" }, { 0x8C1F64, 0xCD3000, 0xCD3FFF, "Pionierkraft GmbH", "PIONIERKRAFT" }, { 0x8C1F64, 0xCD4000, 0xCD4FFF, "Shengli Technologies", "SHENGLI-TECHNOLOGIES" }, { 0x8C1F64, 0xCD6000, 0xCD6FFF, "USM Pty Ltd", "USM-PTY" }, { 0x8C1F64, 0xCD8000, 0xCD8FFF, "Gogo Business Aviation", "GOGO-BUSINESS-AVIATION" }, { 0x8C1F64, 0xCD9000, 0xCD9FFF, "Fingoti Limited", "FINGOTI" }, { 0x8C1F64, 0xCDB000, 0xCDBFFF, "EUROPEAN TELECOMMUNICATION INTERNATIONAL KFT", "EUROPEAN-TELECOMMUNICATION-KFT" }, { 0x8C1F64, 0xCDF000, 0xCDFFFF, "Canway Technology GmbH", "CANWAY" }, { 0x8C1F64, 0xCE3000, 0xCE3FFF, "Pixel Design & Manufacturing Sdn. Bhd.", "PIXEL-DESIGN-MANUFACTURING" }, { 0x8C1F64, 0xCE4000, 0xCE4FFF, "SL USA, LLC", "SL-USA" }, { 0x8C1F64, 0xCEB000, 0xCEBFFF, "EUREKA FOR SMART PROPERTIES CO. W.L.L", "EUREKA-FOR-SMART-PROPERTIES-W-L-L" }, { 0x8C1F64, 0xCEE000, 0xCEEFFF, "DISPLAX S.A.", "DISPLAX" }, { 0x8C1F64, 0xCEF000, 0xCEFFFF, "Goertek Robotics Co.,Ltd.", "GOERTEK-ROBOTICS" }, { 0x8C1F64, 0xCF1000, 0xCF1FFF, "ROBOfiber, Inc.", "ROBOFIBER" }, { 0x8C1F64, 0xCF3000, 0xCF3FFF, "ABB S.p.A.", "ABB" }, { 0x8C1F64, 0xCF4000, 0xCF4FFF, "NT", "NT" }, { 0x8C1F64, 0xCF7000, 0xCF7FFF, "BusPas", "BUSPAS" }, { 0x8C1F64, 0xCFA000, 0xCFAFFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x8C1F64, 0xD02000, 0xD02FFF, "Flextronics International Kft", "FLEXTRONICS-KFT" }, { 0x8C1F64, 0xD08000, 0xD08FFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x8C1F64, 0xD0E000, 0xD0EFFF, "Labforge Inc.", "LABFORGE" }, { 0x8C1F64, 0xD13000, 0xD13FFF, "EYatsko Individual", "EYATSKO-INDIVIDUAL" }, { 0x8C1F64, 0xD20000, 0xD20FFF, "NAS Engineering PRO", "NAS-ENGINEERING-PRO" }, { 0x8C1F64, 0xD21000, 0xD21FFF, "AMETEK CTS GMBH", "AMETEK-CTS" }, { 0x8C1F64, 0xD24000, 0xD24FFF, "R3 IoT Ltd.", "R3-IOT" }, { 0x8C1F64, 0xD29000, 0xD29FFF, "Secure Bits", "SECURE-BITS" }, { 0x8C1F64, 0xD2A000, 0xD2AFFF, "Anteus Kft.", "ANTEUS-KFT" }, { 0x8C1F64, 0xD3A000, 0xD3AFFF, "Applied Materials", "APPLIED-MATERIALS" }, { 0x8C1F64, 0xD3C000, 0xD3CFFF, "KIB Energo LLC", "KIB-ENERGO" }, { 0x8C1F64, 0xD40000, 0xD40FFF, "Breas Medical AB", "BREAS-MEDICAL-AB" }, { 0x8C1F64, 0xD42000, 0xD42FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x8C1F64, 0xD44000, 0xD44FFF, "Monarch Instrument", "MONARCH-INSTRUMENT" }, { 0x8C1F64, 0xD46000, 0xD46FFF, "End 2 End Technologies", "END-2-END-TECHNOLOGIES" }, { 0x8C1F64, 0xD4A000, 0xD4AFFF, "Caproc Oy", "CAPROC-OY" }, { 0x8C1F64, 0xD51000, 0xD51FFF, "ZIGEN Lighting Solution co., ltd.", "ZIGEN-LIGHTING-SOLUTION" }, { 0x8C1F64, 0xD52000, 0xD52FFF, "Critical Software SA", "CRITICAL-SOFTWARE" }, { 0x8C1F64, 0xD53000, 0xD53FFF, "Gridnt", "GRIDNT" }, { 0x8C1F64, 0xD54000, 0xD54FFF, "Grupo Epelsa S.L.", "GRUPO-EPELSA" }, { 0x8C1F64, 0xD56000, 0xD56FFF, "Wisdom Audio", "WISDOM-AUDIO" }, { 0x8C1F64, 0xD5B000, 0xD5BFFF, "Local Security", "LOCAL-SECURITY" }, { 0x8C1F64, 0xD5E000, 0xD5EFFF, "Integer.pl S.A.", "INTEGER-PL" }, { 0x8C1F64, 0xD69000, 0xD69FFF, "ADiCo Corporation", "ADICO" }, { 0x8C1F64, 0xD6C000, 0xD6CFFF, "Packetalk LLC", "PACKETALK" }, { 0x8C1F64, 0xD73000, 0xD73FFF, "BRS Sistemas Eletrônicos", "BRS-SISTEMAS-ELETRNICOS" }, { 0x8C1F64, 0xD74000, 0xD74FFF, "TEX COMPUTER SRL", "TEX-SRL" }, { 0x8C1F64, 0xD78000, 0xD78FFF, "Hunan Oushi Electronic Technology Co.,Ltd", "HUNAN-OUSHI" }, { 0x8C1F64, 0xD7C000, 0xD7CFFF, "QUERCUS TECHNOLOGIES, S.L.", "QUERCUS-TECHNOLOGIES" }, { 0x8C1F64, 0xD7E000, 0xD7EFFF, "Thales Belgium", "THALES-BELGIUM" }, { 0x8C1F64, 0xD7F000, 0xD7FFFF, "Fiberstory communications Pvt Ltd", "FIBERSTORY-COMMUNICATION-PVT" }, { 0x8C1F64, 0xD81000, 0xD81FFF, "Mitsubishi Electric India Pvt. Ltd.", "MITSUBISHI-ELECTRIC-INDIA-PVT" }, { 0x8C1F64, 0xD88000, 0xD88FFF, "University of Geneva - Department of Particle Physics", "UNIVERSITY-OF-GENEVA-DEPARTMENT-OF-PARTICLE-PHYSICS" }, { 0x8C1F64, 0xD8F000, 0xD8FFFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x8C1F64, 0xD92000, 0xD92FFF, "Mitsubishi Electric India Pvt. Ltd.", "MITSUBISHI-ELECTRIC-INDIA-PVT" }, { 0x8C1F64, 0xD93000, 0xD93FFF, "Algodue Elettronica Srl", "ALGODUE-ELETTRONICA-SRL" }, { 0x8C1F64, 0xD98000, 0xD98FFF, "Gnewtek photoelectric technology Ltd.", "GNEWTEK-PHOTOELECTRIC" }, { 0x8C1F64, 0xD9A000, 0xD9AFFF, "Beijing Redlink Information Technology Co., Ltd.", "BEIJING-REDLINK-INFORMATION" }, { 0x8C1F64, 0xD9B000, 0xD9BFFF, "GiS mbH", "GIS" }, { 0x8C1F64, 0xD9C000, 0xD9CFFF, "Relcom, Inc.", "RELCOM" }, { 0x8C1F64, 0xDA6000, 0xDA6FFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x8C1F64, 0xDAA000, 0xDAAFFF, "Davetech Limited", "DAVETECH" }, { 0x8C1F64, 0xDAE000, 0xDAEFFF, "Mainco automotion s.l.", "MAINCO-AUTOMOTION" }, { 0x8C1F64, 0xDAF000, 0xDAFFFF, "Zhuhai Lonl electric Co.,Ltd", "ZHUHAI-LONL-ELECTRIC" }, { 0x8C1F64, 0xDB5000, 0xDB5FFF, "victtron", "VICTTRON" }, { 0x8C1F64, 0xDB7000, 0xDB7FFF, "Lambda Systems Inc.", "LAMBDA" }, { 0x8C1F64, 0xDB9000, 0xDB9FFF, "Ermes Elettronica s.r.l.", "ERMES-ELETTRONICA" }, { 0x8C1F64, 0xDBD000, 0xDBDFFF, "GIORDANO CONTROLS SPA", "GIORDANO-CONTROLS-SPA" }, { 0x8C1F64, 0xDC0000, 0xDC0FFF, "Pigs Can Fly Labs LLC", "PIGS-CAN-FLY-LABS" }, { 0x8C1F64, 0xDC2000, 0xDC2FFF, "Procon Electronics Pty Ltd", "PROCON-ELECTRONICS-PTY" }, { 0x8C1F64, 0xDC9000, 0xDC9FFF, "Peter Huber Kaeltemaschinenbau AG", "PETER-HUBER-KAELTEMASCHINENBAU" }, { 0x8C1F64, 0xDCA000, 0xDCAFFF, "Porsche engineering", "PORSCHE-ENGINEERING" }, { 0x8C1F64, 0xDD4000, 0xDD4FFF, "Midlands Technical Co., Ltd.", "MIDLANDS-TECHNICAL" }, { 0x8C1F64, 0xDD5000, 0xDD5FFF, "Cardinal Scales Manufacturing Co", "CARDINAL-SCALES-MANUFACTURING" }, { 0x8C1F64, 0xDD7000, 0xDD7FFF, "KST technology", "KST" }, { 0x8C1F64, 0xDDE000, 0xDDEFFF, "Jemac Sweden AB", "JEMAC-SWEDEN-AB" }, { 0x8C1F64, 0xDE1000, 0xDE1FFF, "Franke Aquarotter GmbH", "FRANKE-AQUAROTTER" }, { 0x8C1F64, 0xDF8000, 0xDF8FFF, "Wittra Networks AB", "WITTRA-NETWORKS-AB" }, { 0x8C1F64, 0xDFA000, 0xDFAFFF, "ATSE LLC", "ATSE" }, { 0x8C1F64, 0xDFB000, 0xDFBFFF, "Bobeesc Co.", "BOBEESC" }, { 0x8C1F64, 0xDFC000, 0xDFCFFF, "Meiko Electronics Co.,Ltd.", "MEIKO-ELECTRONICS" }, { 0x8C1F64, 0xDFE000, 0xDFEFFF, "Nuvation Energy", "NUVATION-ENERGY" }, { 0x8C1F64, 0xE02000, 0xE02FFF, "ITS Teknik A/S", "ITS-TEKNIK-A/S" }, { 0x8C1F64, 0xE0E000, 0xE0EFFF, "Nokeval Oy", "NOKEVAL-OY" }, { 0x8C1F64, 0xE10000, 0xE10FFF, "Scenario Automation", "SCENARIO-AUTOMATION" }, { 0x8C1F64, 0xE12000, 0xE12FFF, "Pixus Technologies Inc.", "PIXUS-TECHNOLOGIES" }, { 0x8C1F64, 0xE1E000, 0xE1EFFF, "Flextronics International Kft", "FLEXTRONICS-KFT" }, { 0x8C1F64, 0xE21000, 0xE21FFF, "LG-LHT Aircraft Solutions GmbH", "LG-LHT-AIRCRAFT-SOLUTIONS" }, { 0x8C1F64, 0xE23000, 0xE23FFF, "Chemito Infotech PVT LTD", "CHEMITO-INFOTECH-PVT" }, { 0x8C1F64, 0xE24000, 0xE24FFF, "COMETA SAS", "COMETA-SAS" }, { 0x8C1F64, 0xE2D000, 0xE2DFFF, "Private", "PRIVATE" }, { 0x8C1F64, 0xE30000, 0xE30FFF, "VMukti Solutions Private Limited", "VMUKTI-SOLUTIONS-PRIVATE" }, { 0x8C1F64, 0xE41000, 0xE41FFF, "Grossenbacher Systeme AG", "GROSSENBACHER-SYSTEME" }, { 0x8C1F64, 0xE43000, 0xE43FFF, "Daedalean AG", "DAEDALEAN" }, { 0x8C1F64, 0xE45000, 0xE45FFF, "Integer.pl S.A.", "INTEGER-PL" }, { 0x8C1F64, 0xE46000, 0xE46FFF, "Nautel LTD", "NAUTEL" }, { 0x8C1F64, 0xE49000, 0xE49FFF, "Samwell International Inc", "SAMWELL" }, { 0x8C1F64, 0xE4B000, 0xE4BFFF, "ALGAZIRA TELECOM SOLUTIONS", "ALGAZIRA-TELECOM-SOLUTIONS" }, { 0x8C1F64, 0xE4C000, 0xE4CFFF, "TTC TELEKOMUNIKACE, s.r.o.", "TTC-TELEKOMUNIKACE-S-R-O" }, { 0x8C1F64, 0xE52000, 0xE52FFF, "LcmVeloci ApS", "LCMVELOCI-APS" }, { 0x8C1F64, 0xE53000, 0xE53FFF, "T PROJE MUHENDISLIK DIS TIC. LTD. STI.", "T-PROJE-MUHENDISLIK-DIS-TIC-STI" }, { 0x8C1F64, 0xE5C000, 0xE5CFFF, "Scientific Lightning Solutions", "SCIENTIFIC-LIGHTNING-SOLUTIONS" }, { 0x8C1F64, 0xE5D000, 0xE5DFFF, "JinYuan International Corporation", "JINYUAN" }, { 0x8C1F64, 0xE5E000, 0xE5EFFF, "BRICKMAKERS GmbH", "BRICKMAKERS" }, { 0x8C1F64, 0xE61000, 0xE61FFF, "Stange Elektronik GmbH", "STANGE-ELEKTRONIK" }, { 0x8C1F64, 0xE62000, 0xE62FFF, "Axcend", "AXCEND" }, { 0x8C1F64, 0xE64000, 0xE64FFF, "Indefac company", "INDEFAC-COMPANY" }, { 0x8C1F64, 0xE73000, 0xE73FFF, "GTR Industries", "GTR-INDUSTRIES" }, { 0x8C1F64, 0xE74000, 0xE74FFF, "Magosys Systems LTD", "MAGOSYS" }, { 0x8C1F64, 0xE75000, 0xE75FFF, "Stercom Power Soltions GmbH", "STERCOM-POWER-SOLTIONS" }, { 0x8C1F64, 0xE77000, 0xE77FFF, "GY-FX SAS", "GY-FX-SAS" }, { 0x8C1F64, 0xE79000, 0xE79FFF, "SHENZHEN GUANGWEN INDUSTRIAL CO.,LTD", "SHENZHEN-GUANGWEN-INDUSTRIAL" }, { 0x8C1F64, 0xE7B000, 0xE7BFFF, "Dongguan Pengchen Earth Instrument CO. LT", "DONGGUAN-PENGCHEN-EARTH-INSTRUMENT-LT" }, { 0x8C1F64, 0xE7C000, 0xE7CFFF, "Ashinne Technology Co., Ltd", "ASHINNE" }, { 0x8C1F64, 0xE86000, 0xE86FFF, "ComVetia AG", "COMVETIA" }, { 0x8C1F64, 0xE8D000, 0xE8DFFF, "Plura", "PLURA" }, { 0x8C1F64, 0xE8F000, 0xE8FFFF, "JieChuang HeYi(Beijing) Technology Co., Ltd.", "JIECHUANG-HEYI-BEIJING" }, { 0x8C1F64, 0xE90000, 0xE90FFF, "MHE Electronics", "MHE-ELECTRONICS" }, { 0x8C1F64, 0xE92000, 0xE92FFF, "EA Elektro-Automatik", "EA-ELEKTRO-AUTOMATIK" }, { 0x8C1F64, 0xE94000, 0xE94FFF, "ZIN TECHNOLOGIES", "ZIN-TECHNOLOGIES" }, { 0x8C1F64, 0xE98000, 0xE98FFF, "Luxshare Electronic Technology (Kunshan) LTD", "LUXSHARE-KUNSHAN" }, { 0x8C1F64, 0xE99000, 0xE99FFF, "Pantherun Technologies Pvt Ltd", "PANTHERUN-TECHNOLOGIES-PVT" }, { 0x8C1F64, 0xEA8000, 0xEA8FFF, "Zumbach Electronic AG", "ZUMBACH" }, { 0x8C1F64, 0xEAA000, 0xEAAFFF, "KB Modul", "KB-MODUL" }, { 0x8C1F64, 0xEAC000, 0xEACFFF, "Miracle Healthcare, Inc.", "MIRACLE-HEALTHCARE" }, { 0x8C1F64, 0xEB2000, 0xEB2FFF, "Aqua Broadcast Ltd", "AQUA-BROADCAST" }, { 0x8C1F64, 0xEB5000, 0xEB5FFF, "Meiryo Denshi Corp.", "MEIRYO-DENSHI" }, { 0x8C1F64, 0xEB7000, 0xEB7FFF, "Delta Solutions LLC", "DELTA-SOLUTIONS" }, { 0x8C1F64, 0xEB9000, 0xEB9FFF, "KxS Technologies Oy", "KXS-TECHNOLOGIES-OY" }, { 0x8C1F64, 0xEBF000, 0xEBFFFF, "STEAMIQ, Inc.", "STEAMIQ" }, { 0x8C1F64, 0xEC1000, 0xEC1FFF, "Actronika SAS", "ACTRONIKA-SAS" }, { 0x8C1F64, 0xECC000, 0xECCFFF, "Baldwin Jimek AB", "BALDWIN-JIMEK-AB" }, { 0x8C1F64, 0xECF000, 0xECFFFF, "Monnit Corporation", "MONNIT" }, { 0x8C1F64, 0xED4000, 0xED4FFF, "ZHEJIANG CHITIC-SAFEWAY NEW ENERGY TECHNICAL CO.,LTD.", "ZHEJIANG-CHITIC-SAFEWAY-NEW-ENERGY-TECHNICAL" }, { 0x8C1F64, 0xED9000, 0xED9FFF, "NETGEN HITECH SOLUTIONS LLP", "NETGEN-HITECH-SOLUTIONS-LLP" }, { 0x8C1F64, 0xEDA000, 0xEDAFFF, "DEUTA-WERKE GmbH", "DEUTA-WERKE" }, { 0x8C1F64, 0xEE0000, 0xEE0FFF, "Private", "PRIVATE" }, { 0x8C1F64, 0xEE1000, 0xEE1FFF, "PuS GmbH und Co. KG", "PUS-UND" }, { 0x8C1F64, 0xEE6000, 0xEE6FFF, "LYNKX", "LYNKX" }, { 0x8C1F64, 0xEE8000, 0xEE8FFF, "Global Organ Group B.V.", "GLOBAL-ORGAN-GROUP-B-V" }, { 0x8C1F64, 0xEEA000, 0xEEAFFF, "AMESS", "AMESS" }, { 0x8C1F64, 0xEEF000, 0xEEFFFF, "AiUnion Co.,Ltd", "AIUNION" }, { 0x8C1F64, 0xEF1000, 0xEF1FFF, "BIOTAGE GB LTD", "BIOTAGE-GB" }, { 0x8C1F64, 0xEF5000, 0xEF5FFF, "Sigma Defense Systems LLC", "SIGMA-DEFENSE" }, { 0x8C1F64, 0xEF8000, 0xEF8FFF, "Northwest Central Indiana Community Partnerships Inc dba Wabash Heartland Innovation Network (WHIN)", "NORTHWEST-CENTRAL-INDIANA-COMMUNITY-PARTNERSHIPS-DBA-WABASH-HEARTLAND-INNOVATION-NETWORK-WHIN" }, { 0x8C1F64, 0xEFB000, 0xEFBFFF, "WARECUBE,INC", "WARECUBE" }, { 0x8C1F64, 0xF04000, 0xF04FFF, "IoTSecure, LLC", "IOTSECURE" }, { 0x8C1F64, 0xF09000, 0xF09FFF, "Texi AS", "TEXI-AS" }, { 0x8C1F64, 0xF10000, 0xF10FFF, "GSP Sprachtechnologie GmbH", "GSP-SPRACHTECHNOLOGIE" }, { 0x8C1F64, 0xF12000, 0xF12FFF, "CAITRON GmbH", "CAITRON" }, { 0x8C1F64, 0xF22000, 0xF22FFF, "Voyage Audio LLC", "VOYAGE-AUDIO" }, { 0x8C1F64, 0xF23000, 0xF23FFF, "IDEX India Pvt Ltd", "IDEX-INDIA-PVT" }, { 0x8C1F64, 0xF24000, 0xF24FFF, "Albotronic", "ALBOTRONIC" }, { 0x8C1F64, 0xF25000, 0xF25FFF, "Misaka Network, Inc.", "MISAKA-NETWORK" }, { 0x8C1F64, 0xF27000, 0xF27FFF, "Tesat-Spacecom GmbH & Co. KG", "TESAT-SPACECOM" }, { 0x8C1F64, 0xF2C000, 0xF2CFFF, "Tunstall A/S", "TUNSTALL-A/S" }, { 0x8C1F64, 0xF2D000, 0xF2DFFF, "HUERNER Schweisstechnik GmbH", "HUERNER-SCHWEISSTECHNIK" }, { 0x8C1F64, 0xF2F000, 0xF2FFFF, "Quantum Technologies Inc", "QUANTUM-TECHNOLOGIES" }, { 0x8C1F64, 0xF31000, 0xF31FFF, "International Water Treatment Maritime AS", "WATER-TREATMENT-MARITIME-AS" }, { 0x8C1F64, 0xF32000, 0xF32FFF, "Shenzhen INVT Electric Co.,Ltd", "SHENZHEN-INVT-ELECTRIC" }, { 0x8C1F64, 0xF39000, 0xF39FFF, "Weinan Wins Future Technology Co.,Ltd", "WEINAN-WINS-FUTURE" }, { 0x8C1F64, 0xF3B000, 0xF3BFFF, "Beijing REMANG Technology Co., Ltd.", "BEIJING-REMANG" }, { 0x8C1F64, 0xF3C000, 0xF3CFFF, "Microlynx Systems Ltd", "MICROLYNX" }, { 0x8C1F64, 0xF3D000, 0xF3DFFF, "Byte Lab Grupa d.o.o.", "BYTE-LAB-GRUPA-D-O-O" }, { 0x8C1F64, 0xF3F000, 0xF3FFFF, "Industrial Laser Machines, LLC", "INDUSTRIAL-LASER-MACHINES" }, { 0x8C1F64, 0xF41000, 0xF41FFF, "AUTOMATIZACION Y CONECTIVIDAD SA DE CV", "AUTOMATIZACION-Y-CONECTIVIDAD-DE-CV" }, { 0x8C1F64, 0xF43000, 0xF43FFF, "wtec GmbH", "WTEC" }, { 0x8C1F64, 0xF45000, 0xF45FFF, "JBF", "JBF" }, { 0x8C1F64, 0xF4C000, 0xF4CFFF, "inomatic GmbH", "INOMATIC" }, { 0x8C1F64, 0xF4E000, 0xF4EFFF, "ADAMCZEWSKI elektronische Messtechnik GmbH", "ADAMCZEWSKI-ELEKTRONISCHE-MESSTECHNIK" }, { 0x8C1F64, 0xF50000, 0xF50FFF, "Vigor Electric Corp.", "VIGOR-ELECTRIC" }, { 0x8C1F64, 0xF52000, 0xF52FFF, "AMF Medical SA", "AMF-MEDICAL" }, { 0x8C1F64, 0xF53000, 0xF53FFF, "Beckman Coulter Inc", "BECKMAN-COULTER" }, { 0x8C1F64, 0xF56000, 0xF56FFF, "KC5 International Sdn Bhd", "KC5" }, { 0x8C1F64, 0xF57000, 0xF57FFF, "EA Elektro-Automatik", "EA-ELEKTRO-AUTOMATIK" }, { 0x8C1F64, 0xF59000, 0xF59FFF, "Inovonics Inc.", "INOVONICS" }, { 0x8C1F64, 0xF5A000, 0xF5AFFF, "Telco Antennas Pty Ltd", "TELCO-ANTENNAS-PTY" }, { 0x8C1F64, 0xF5B000, 0xF5BFFF, "SemaConnect, Inc", "SEMACONNECT" }, { 0x8C1F64, 0xF5C000, 0xF5CFFF, "Flextronics International Kft", "FLEXTRONICS-KFT" }, { 0x8C1F64, 0xF5F000, 0xF5FFFF, "TR7 Siber Savunma A.S.", "TR7-SIBER-SAVUNMA" }, { 0x8C1F64, 0xF63000, 0xF63FFF, "Quantum Media Systems", "QUANTUM-MEDIA" }, { 0x8C1F64, 0xF65000, 0xF65FFF, "Talleres de Escoriaza SA", "TALLERES-DE-ESCORIAZA" }, { 0x8C1F64, 0xF70000, 0xF70FFF, "Vision Systems Safety Tech", "VISION-SAFETY-TECH" }, { 0x8C1F64, 0xF72000, 0xF72FFF, "Contrader", "CONTRADER" }, { 0x8C1F64, 0xF74000, 0xF74FFF, "GE AVIC Civil Avionics Systems Company Limited", "GE-AVIC-CIVIL-AVIONICS-COMPANY" }, { 0x8C1F64, 0xF78000, 0xF78FFF, "Ternary Research Corporation", "TERNARY-RESEARCH" }, { 0x8C1F64, 0xF79000, 0xF79FFF, "YUYAMA MFG Co.,Ltd", "YUYAMA-MFG" }, { 0x8C1F64, 0xF7A000, 0xF7AFFF, "SiEngine Technology Co., Ltd.", "SIENGINE" }, { 0x8C1F64, 0xF84000, 0xF84FFF, "KST technology", "KST" }, { 0x8C1F64, 0xF86000, 0xF86FFF, "INFOSTECH Co., Ltd.", "INFOSTECH" }, { 0x8C1F64, 0xF91000, 0xF91FFF, "Consonance", "CONSONANCE" }, { 0x8C1F64, 0xF94000, 0xF94FFF, "EA Elektroautomatik GmbH & Co. KG", "EA-ELEKTROAUTOMATIK" }, { 0x8C1F64, 0xF96000, 0xF96FFF, "SACO Controls Inc.", "SACO-CONTROLS" }, { 0x8C1F64, 0xF9E000, 0xF9EFFF, "DREAMSWELL Technology CO.,Ltd", "DREAMSWELL" }, { 0x8C1F64, 0xFA2000, 0xFA2FFF, "AZD Praha s.r.o., ZOZ Olomouc", "AZD-PRAHA-S-R-O-ZOZ-OLOMOUC" }, { 0x8C1F64, 0xFA4000, 0xFA4FFF, "China Information Technology Designing &Consulting Institute Co.,Ltd.", "CHINA-INFORMATION-DESIGNING-CONSULTING-INSTITUTE" }, { 0x8C1F64, 0xFA8000, 0xFA8FFF, "Unitron Systems b.v.", "UNITRON-B-V" }, { 0x8C1F64, 0xFAA000, 0xFAAFFF, "Massar Networks", "MASSAR-NETWORKS" }, { 0x8C1F64, 0xFB0000, 0xFB0FFF, "MARIAN GmbH", "MARIAN" }, { 0x8C1F64, 0xFB1000, 0xFB1FFF, "ABB", "ABB" }, { 0x8C1F64, 0xFB4000, 0xFB4FFF, "Thales Nederland BV", "THALES-NEDERLAND" }, { 0x8C1F64, 0xFB5000, 0xFB5FFF, "Bavaria Digital Technik GmbH", "BAVARIA-DIGITAL-TECHNIK" }, { 0x8C1F64, 0xFB7000, 0xFB7FFF, "Grace Design/Lunatec LLC", "GRACE-DESIGN/LUNATEC" }, { 0x8C1F64, 0xFBA000, 0xFBAFFF, "Onto Innovation", "ONTO-INNOVATION" }, { 0x8C1F64, 0xFBD000, 0xFBDFFF, "SAN-AI Electronic Industries Co.,Ltd.", "SAN-AI-INDUSTRIES" }, { 0x8C1F64, 0xFC2000, 0xFC2FFF, "I/O Controls", "I/O-CONTROLS" }, { 0x8C1F64, 0xFCC000, 0xFCCFFF, "GREDMANN TAIWAN LTD.", "GREDMANN-TAIWAN" }, { 0x8C1F64, 0xFCD000, 0xFCDFFF, "elbit systems - EW and sigint - Elisra", "ELBIT-EW-AND-SIGINT-ELISRA" }, { 0x8C1F64, 0xFD1000, 0xFD1FFF, "Edgeware AB", "EDGEWARE-AB" }, { 0x8C1F64, 0xFD3000, 0xFD3FFF, "SMILICS TECHNOLOGIES, S.L.", "SMILICS-TECHNOLOGIES" }, { 0x8C1F64, 0xFD4000, 0xFD4FFF, "EMBSYS SISTEMAS EMBARCADOS", "EMBSYS-SISTEMAS-EMBARCADOS" }, { 0x8C1F64, 0xFD5000, 0xFD5FFF, "THE WHY HOW DO COMPANY, Inc.", "THE-WHY-HOW-DO-COMPANY" }, { 0x8C1F64, 0xFD7000, 0xFD7FFF, "Beijing Yahong Century Technology Co., Ltd", "BEIJING-YAHONG-CENTURY" }, { 0x8C1F64, 0xFDC000, 0xFDCFFF, "Nuphoton Technologies", "NUPHOTON-TECHNOLOGIES" }, { 0x8C1F64, 0xFE0000, 0xFE0FFF, "Potter Electric Signal Company", "POTTER-ELECTRIC-SIGNAL-COMPANY" }, { 0x8C1F64, 0xFE2000, 0xFE2FFF, "VUV Analytics, Inc.", "VUV-ANALYTICS" }, { 0x8C1F64, 0xFE3000, 0xFE3FFF, "Power Electronics Espana, S.L.", "POWER-ELECTRONICS-ESPANA" }, { 0x8C1F64, 0xFE9000, 0xFE9FFF, "ALZAJEL MODERN TELECOMMUNICATION", "ALZAJEL-MODERN-TELECOMMUNICATION" }, { 0x8C1F64, 0xFED000, 0xFEDFFF, "GSP Sprachtechnologie GmbH", "GSP-SPRACHTECHNOLOGIE" }, { 0x8C1F64, 0xFF4000, 0xFF4FFF, "SMS group GmbH", "SMS-GROUP" }, { 0x8C1F64, 0xFF6000, 0xFF6FFF, "Ascon Tecnologic S.r.l.", "ASCON-TECNOLOGIC" }, { 0x8C1F64, 0xFFC000, 0xFFCFFF, "Invendis Technologies India Pvt Ltd", "INVENDIS-TECHNOLOGIES-INDIA-PVT" }, }; ipv6calc-4.1.0/databases/ipv4-assignment/000077500000000000000000000000001444154247200202115ustar00rootroot00000000000000ipv6calc-4.1.0/databases/ipv4-assignment/Makefile000066400000000000000000000023761444154247200216610ustar00rootroot00000000000000# Project : ipv6calc/databases/ipv4-assignment # File : Makefile # Version : $Id: 2b534970b3a9597c276a3c0e32597f0463d3f5bc $ # Copyright : 2005-2015 by Peter Bieringer # # Information: # Makefile for ipv4-assignment all: test -f dbipv4addr_assignment.h || ${MAKE} update install: echo "Nothing to do" update: echo "Generate new header file, if necessary" ../../tools/ipv6calc-registries-check-run-create.sh -4 -H -C ../../tools/ipv6calc-create-registry-list-ipv4.pl force-update: echo "Generate new header file" ../../tools/ipv6calc-registries-check-run-create.sh -4 -H -C ../../tools/ipv6calc-create-registry-list-ipv4.pl db: echo "Generate new db files, if necessary" ../../tools/ipv6calc-registries-check-run-create.sh -4 -B -C ../../tools/ipv6calc-create-registry-list-ipv4.pl force-db: echo "Generate new db files" ../../tools/ipv6calc-registries-check-run-create.sh -u -4 -B -C ../../tools/ipv6calc-create-registry-list-ipv4.pl updateclean: echo "Delete header file" rm -f dbipv4addr_assignment.h echo "Delete DB files" rm -f ipv6calc-external-ipv4-registry.db ipv6calc-external-ipv4-countrycode.db distclean: echo "Nothing to do" autoclean: echo "Nothing to do" clean: echo "Nothing to do" ipv6calc-4.1.0/databases/ipv4-assignment/README000066400000000000000000000001621444154247200210700ustar00rootroot00000000000000$Id: 3ece54777c1038c771dcc08d4dfc7011ced5a04c $ Use "make update" to create header file from registry data files ipv6calc-4.1.0/databases/ipv4-assignment/dbipv4addr_assignment.h000066400000000000000000074661451444154247200246640ustar00rootroot00000000000000/* * Project : ipv6calc * File : dbipv4_assignment.h * Version : $Id: c9b368040d9a11b9e93738b94081b5a881581497 $ * Generated : 20230608-181417+0200 CEST * Data copyright: RIPE NCC, APNIC, ARIN, LACNIC, AFRINIC, LISP * * Information: * Additional header file for databases/lib/libipv6calc_db_wrapper_BuiltIn.c */ #include "databases/lib/libipv6calc_db_wrapper_BuiltIn.h" static const char* dbipv4addr_registry_status __attribute__ ((__unused__)) = "AFRINIC/20230608 APNIC/20230608 ARIN/20230608 IANA/20220204 LACNIC/20230607 LISP/20200318 RIPENCC/20230607"; static const time_t dbipv4addr_registry_unixtime __attribute__ ((__unused__)) = 1686240857; static const s_ipv4addr_assignment dbipv4addr_assignment[] = { //first , last , registry { 0x01000000, 0x01b26fff, REGISTRY_APNIC }, // 1.0.0.0 - 1.178.111.255 { 0x01b27000, 0x01b28fff, REGISTRY_RIPENCC }, // 1.178.112.0 - 1.178.143.255 { 0x01b29000, 0x01b2cfff, REGISTRY_APNIC }, // 1.178.144.0 - 1.178.207.255 { 0x01b2d000, 0x01b2ffff, REGISTRY_RIPENCC }, // 1.178.208.0 - 1.178.255.255 { 0x01b30000, 0x01b327ff, REGISTRY_APNIC }, // 1.179.0.0 - 1.179.39.255 { 0x01b32800, 0x01b32fff, REGISTRY_RIPENCC }, // 1.179.40.0 - 1.179.47.255 { 0x01b33000, 0x01b347ff, REGISTRY_APNIC }, // 1.179.48.0 - 1.179.71.255 { 0x01b34800, 0x01b34fff, REGISTRY_RIPENCC }, // 1.179.72.0 - 1.179.79.255 { 0x01b35000, 0x01b357ff, REGISTRY_APNIC }, // 1.179.80.0 - 1.179.87.255 { 0x01b35800, 0x01b35fff, REGISTRY_RIPENCC }, // 1.179.88.0 - 1.179.95.255 { 0x01b36000, 0x01b36fff, REGISTRY_APNIC }, // 1.179.96.0 - 1.179.111.255 { 0x01b37000, 0x01b37fff, REGISTRY_RIPENCC }, // 1.179.112.0 - 1.179.127.255 { 0x01b38000, 0x01ffffff, REGISTRY_APNIC }, // 1.179.128.0 - 1.255.255.255 { 0x02000000, 0x02397bff, REGISTRY_RIPENCC }, // 2.0.0.0 - 2.57.123.255 { 0x02397c00, 0x02397fff, REGISTRY_APNIC }, // 2.57.124.0 - 2.57.127.255 { 0x02398000, 0x023ae3ff, REGISTRY_RIPENCC }, // 2.57.128.0 - 2.58.227.255 { 0x023ae400, 0x023ae7ff, REGISTRY_APNIC }, // 2.58.228.0 - 2.58.231.255 { 0x023ae800, 0x02ffffff, REGISTRY_RIPENCC }, // 2.58.232.0 - 2.255.255.255 { 0x03000000, 0x04ffffff, REGISTRY_ARIN }, // 3.0.0.0 - 4.255.255.255 { 0x05000000, 0x05169aff, REGISTRY_RIPENCC }, // 5.0.0.0 - 5.22.154.255 { 0x05169b00, 0x05169bff, REGISTRY_ARIN }, // 5.22.155.0 - 5.22.155.255 { 0x05169c00, 0x051c1fff, REGISTRY_RIPENCC }, // 5.22.156.0 - 5.28.31.255 { 0x051c2000, 0x051c27ff, REGISTRY_APNIC }, // 5.28.32.0 - 5.28.39.255 { 0x051c2800, 0x05fe7fff, REGISTRY_RIPENCC }, // 5.28.40.0 - 5.254.127.255 { 0x05fe8000, 0x05fe9fff, REGISTRY_APNIC }, // 5.254.128.0 - 5.254.159.255 { 0x05fea000, 0x05ffffff, REGISTRY_RIPENCC }, // 5.254.160.0 - 5.255.255.255 { 0x06000000, 0x087fffff, REGISTRY_ARIN }, // 6.0.0.0 - 8.127.255.255 { 0x08800000, 0x08bfffff, REGISTRY_APNIC }, // 8.128.0.0 - 8.191.255.255 { 0x08c00000, 0x08cfffff, REGISTRY_ARIN }, // 8.192.0.0 - 8.207.255.255 { 0x08d00000, 0x08dfffff, REGISTRY_APNIC }, // 8.208.0.0 - 8.223.255.255 { 0x08e00000, 0x09ffffff, REGISTRY_ARIN }, // 8.224.0.0 - 9.255.255.255 { 0x0b000000, 0x0d73ffff, REGISTRY_ARIN }, // 11.0.0.0 - 13.115.255.255 { 0x0d740000, 0x0d7bffff, REGISTRY_RIPENCC }, // 13.116.0.0 - 13.123.255.255 { 0x0d7c0000, 0x0d8bffff, REGISTRY_ARIN }, // 13.124.0.0 - 13.139.255.255 { 0x0d8c0000, 0x0d8fffff, REGISTRY_RIPENCC }, // 13.140.0.0 - 13.143.255.255 { 0x0d900000, 0x0da7ffff, REGISTRY_ARIN }, // 13.144.0.0 - 13.167.255.255 { 0x0da80000, 0x0db7ffff, REGISTRY_RIPENCC }, // 13.168.0.0 - 13.183.255.255 { 0x0db80000, 0x0defffff, REGISTRY_ARIN }, // 13.184.0.0 - 13.239.255.255 { 0x0df00000, 0x0df3ffff, REGISTRY_RIPENCC }, // 13.240.0.0 - 13.243.255.255 { 0x0df40000, 0x0dffffff, REGISTRY_ARIN }, // 13.244.0.0 - 13.255.255.255 { 0x0e000000, 0x0e66abff, REGISTRY_APNIC }, // 14.0.0.0 - 14.102.171.255 { 0x0e66ac00, 0x0e66afff, REGISTRY_ARIN }, // 14.102.172.0 - 14.102.175.255 { 0x0e66b000, 0x0e66dfff, REGISTRY_APNIC }, // 14.102.176.0 - 14.102.223.255 { 0x0e66e000, 0x0e66efff, REGISTRY_RIPENCC }, // 14.102.224.0 - 14.102.239.255 { 0x0e66f000, 0x0effffff, REGISTRY_APNIC }, // 14.102.240.0 - 14.255.255.255 { 0x0f000000, 0x17132fff, REGISTRY_ARIN }, // 15.0.0.0 - 23.19.47.255 { 0x17133000, 0x171333ff, REGISTRY_RIPENCC }, // 23.19.48.0 - 23.19.51.255 { 0x17133400, 0x171337ff, REGISTRY_ARIN }, // 23.19.52.0 - 23.19.55.255 { 0x17133800, 0x17133fff, REGISTRY_RIPENCC }, // 23.19.56.0 - 23.19.63.255 { 0x17134000, 0x175127ff, REGISTRY_ARIN }, // 23.19.64.0 - 23.81.39.255 { 0x17512800, 0x17512fff, REGISTRY_APNIC }, // 23.81.40.0 - 23.81.47.255 { 0x17513000, 0x17533fff, REGISTRY_ARIN }, // 23.81.48.0 - 23.83.63.255 { 0x17534000, 0x175347ff, REGISTRY_RIPENCC }, // 23.83.64.0 - 23.83.71.255 { 0x17534800, 0x17536fff, REGISTRY_ARIN }, // 23.83.72.0 - 23.83.111.255 { 0x17537000, 0x17537fff, REGISTRY_RIPENCC }, // 23.83.112.0 - 23.83.127.255 { 0x17538000, 0x1757ffff, REGISTRY_ARIN }, // 23.83.128.0 - 23.87.255.255 { 0x17580000, 0x17587fff, REGISTRY_RIPENCC }, // 23.88.0.0 - 23.88.127.255 { 0x17588000, 0x1758bfff, REGISTRY_ARIN }, // 23.88.128.0 - 23.88.191.255 { 0x1758c000, 0x1758dfff, REGISTRY_APNIC }, // 23.88.192.0 - 23.88.223.255 { 0x1758e000, 0x175a3fff, REGISTRY_ARIN }, // 23.88.224.0 - 23.90.63.255 { 0x175a4000, 0x175a43ff, REGISTRY_RIPENCC }, // 23.90.64.0 - 23.90.67.255 { 0x175a4400, 0x175a44ff, REGISTRY_APNIC }, // 23.90.68.0 - 23.90.68.255 { 0x175a4500, 0x175a7fff, REGISTRY_ARIN }, // 23.90.69.0 - 23.90.127.255 { 0x175a8000, 0x175abfff, REGISTRY_RIPENCC }, // 23.90.128.0 - 23.90.191.255 { 0x175ac000, 0x175affff, REGISTRY_RIPENCC }, // 23.90.192.0 - 23.90.255.255 { 0x175b0000, 0x175c6fff, REGISTRY_ARIN }, // 23.91.0.0 - 23.92.111.255 { 0x175c7000, 0x175c7fff, REGISTRY_RIPENCC }, // 23.92.112.0 - 23.92.127.255 { 0x175c8000, 0x1769dfff, REGISTRY_ARIN }, // 23.92.128.0 - 23.105.223.255 { 0x1769e000, 0x1769ffff, REGISTRY_RIPENCC }, // 23.105.224.0 - 23.105.255.255 { 0x176a0000, 0x176a1fff, REGISTRY_ARIN }, // 23.106.0.0 - 23.106.31.255 { 0x176a2000, 0x176a27ff, REGISTRY_RIPENCC }, // 23.106.32.0 - 23.106.39.255 { 0x176a2800, 0x176a2fff, REGISTRY_ARIN }, // 23.106.40.0 - 23.106.47.255 { 0x176a3000, 0x176a37ff, REGISTRY_APNIC }, // 23.106.48.0 - 23.106.55.255 { 0x176a3800, 0x176a3fff, REGISTRY_RIPENCC }, // 23.106.56.0 - 23.106.63.255 { 0x176a4000, 0x176a67ff, REGISTRY_ARIN }, // 23.106.64.0 - 23.106.103.255 { 0x176a6800, 0x176a77ff, REGISTRY_RIPENCC }, // 23.106.104.0 - 23.106.119.255 { 0x176a7800, 0x176a7fff, REGISTRY_APNIC }, // 23.106.120.0 - 23.106.127.255 { 0x176a8000, 0x176adfff, REGISTRY_ARIN }, // 23.106.128.0 - 23.106.223.255 { 0x176ae000, 0x176ae7ff, REGISTRY_APNIC }, // 23.106.224.0 - 23.106.231.255 { 0x176ae800, 0x176aefff, REGISTRY_RIPENCC }, // 23.106.232.0 - 23.106.239.255 { 0x176af000, 0x176affff, REGISTRY_APNIC }, // 23.106.240.0 - 23.106.255.255 { 0x176b0000, 0x176c5fff, REGISTRY_ARIN }, // 23.107.0.0 - 23.108.95.255 { 0x176c6000, 0x176c67ff, REGISTRY_APNIC }, // 23.108.96.0 - 23.108.103.255 { 0x176c6800, 0x176ccfff, REGISTRY_ARIN }, // 23.108.104.0 - 23.108.207.255 { 0x176cd000, 0x176cdfff, REGISTRY_RIPENCC }, // 23.108.208.0 - 23.108.223.255 { 0x176ce000, 0x176cffff, REGISTRY_ARIN }, // 23.108.224.0 - 23.108.255.255 { 0x176d0000, 0x176dffff, REGISTRY_RIPENCC }, // 23.109.0.0 - 23.109.255.255 { 0x176e0000, 0x176effff, REGISTRY_ARIN }, // 23.110.0.0 - 23.110.255.255 { 0x176f0000, 0x176f07ff, REGISTRY_RIPENCC }, // 23.111.0.0 - 23.111.7.255 { 0x176f0800, 0x176f0bff, REGISTRY_ARIN }, // 23.111.8.0 - 23.111.11.255 { 0x176f0c00, 0x176f0fff, REGISTRY_APNIC }, // 23.111.12.0 - 23.111.15.255 { 0x176f1000, 0x176f3fff, REGISTRY_RIPENCC }, // 23.111.16.0 - 23.111.63.255 { 0x176f4000, 0x176f4fff, REGISTRY_ARIN }, // 23.111.64.0 - 23.111.79.255 { 0x176f5000, 0x176f7fff, REGISTRY_RIPENCC }, // 23.111.80.0 - 23.111.127.255 { 0x176f8000, 0x176fbfff, REGISTRY_ARIN }, // 23.111.128.0 - 23.111.191.255 { 0x176fc000, 0x176ff7ff, REGISTRY_RIPENCC }, // 23.111.192.0 - 23.111.247.255 { 0x176ff800, 0x17e1ffff, REGISTRY_ARIN }, // 23.111.248.0 - 23.225.255.255 { 0x17e20000, 0x17e20fff, REGISTRY_APNIC }, // 23.226.0.0 - 23.226.15.255 { 0x17e21000, 0x17e87fff, REGISTRY_ARIN }, // 23.226.16.0 - 23.232.127.255 { 0x17e88000, 0x17e8ffff, REGISTRY_APNIC }, // 23.232.128.0 - 23.232.255.255 { 0x17e90000, 0x17ef7fff, REGISTRY_ARIN }, // 23.233.0.0 - 23.239.127.255 { 0x17ef8000, 0x17ef9fff, REGISTRY_RIPENCC }, // 23.239.128.0 - 23.239.159.255 { 0x17efa000, 0x17f9a1ff, REGISTRY_ARIN }, // 23.239.160.0 - 23.249.161.255 { 0x17f9a200, 0x17f9a2ff, REGISTRY_RIPENCC }, // 23.249.162.0 - 23.249.162.255 { 0x17f9a300, 0x17f9e7ff, REGISTRY_ARIN }, // 23.249.163.0 - 23.249.231.255 { 0x17f9e800, 0x17f9efff, REGISTRY_RIPENCC }, // 23.249.232.0 - 23.249.239.255 { 0x17f9f000, 0x17fc41ff, REGISTRY_ARIN }, // 23.249.240.0 - 23.252.65.255 { 0x17fc4200, 0x17fc44ff, REGISTRY_RIPENCC }, // 23.252.66.0 - 23.252.68.255 { 0x17fc4500, 0x17fc46ff, REGISTRY_ARIN }, // 23.252.69.0 - 23.252.70.255 { 0x17fc4700, 0x17fc48ff, REGISTRY_RIPENCC }, // 23.252.71.0 - 23.252.72.255 { 0x17fc4900, 0x17fc4aff, REGISTRY_ARIN }, // 23.252.73.0 - 23.252.74.255 { 0x17fc4b00, 0x17fc4cff, REGISTRY_RIPENCC }, // 23.252.75.0 - 23.252.76.255 { 0x17fc4d00, 0x17fc4eff, REGISTRY_ARIN }, // 23.252.77.0 - 23.252.78.255 { 0x17fc4f00, 0x17fc4fff, REGISTRY_RIPENCC }, // 23.252.79.0 - 23.252.79.255 { 0x17fc5000, 0x18287fff, REGISTRY_ARIN }, // 23.252.80.0 - 24.40.127.255 { 0x18288000, 0x1828bfff, REGISTRY_RIPENCC }, // 24.40.128.0 - 24.40.191.255 { 0x1828c000, 0x18296fff, REGISTRY_ARIN }, // 24.40.192.0 - 24.41.111.255 { 0x18297000, 0x18297fff, REGISTRY_APNIC }, // 24.41.112.0 - 24.41.127.255 { 0x18298000, 0x182a3fff, REGISTRY_ARIN }, // 24.41.128.0 - 24.42.63.255 { 0x182a4000, 0x182a7fff, REGISTRY_RIPENCC }, // 24.42.64.0 - 24.42.127.255 { 0x182a8000, 0x1835bfff, REGISTRY_ARIN }, // 24.42.128.0 - 24.53.191.255 { 0x1835c000, 0x1835dfff, REGISTRY_APNIC }, // 24.53.192.0 - 24.53.223.255 { 0x1835e000, 0x1883ffff, REGISTRY_ARIN }, // 24.53.224.0 - 24.131.255.255 { 0x18840000, 0x1887ffff, REGISTRY_RIPENCC }, // 24.132.0.0 - 24.135.255.255 { 0x18880000, 0x1897ffff, REGISTRY_ARIN }, // 24.136.0.0 - 24.151.255.255 { 0x18980000, 0x18987fff, REGISTRY_LACNIC }, // 24.152.0.0 - 24.152.127.255 { 0x18988000, 0x18e5ffff, REGISTRY_ARIN }, // 24.152.128.0 - 24.229.255.255 { 0x18e60000, 0x18e61fff, REGISTRY_APNIC }, // 24.230.0.0 - 24.230.31.255 { 0x18e62000, 0x18e7ffff, REGISTRY_ARIN }, // 24.230.32.0 - 24.231.255.255 { 0x18e80000, 0x18e8ffff, REGISTRY_LACNIC }, // 24.232.0.0 - 24.232.255.255 { 0x18e90000, 0x18e97fff, REGISTRY_ARIN }, // 24.233.0.0 - 24.233.127.255 { 0x18e98000, 0x18e98fff, REGISTRY_APNIC }, // 24.233.128.0 - 24.233.143.255 { 0x18e99000, 0x18eb15ff, REGISTRY_ARIN }, // 24.233.144.0 - 24.235.21.255 { 0x18eb1600, 0x18eb17ff, REGISTRY_RIPENCC }, // 24.235.22.0 - 24.235.23.255 { 0x18eb1800, 0x18eb1fff, REGISTRY_APNIC }, // 24.235.24.0 - 24.235.31.255 { 0x18eb2000, 0x18ffffff, REGISTRY_ARIN }, // 24.235.32.0 - 24.255.255.255 { 0x19000000, 0x19ffffff, REGISTRY_RIPENCC }, // 25.0.0.0 - 25.255.255.255 { 0x1a000000, 0x1affffff, REGISTRY_ARIN }, // 26.0.0.0 - 26.255.255.255 { 0x1b000000, 0x1b00abff, REGISTRY_APNIC }, // 27.0.0.0 - 27.0.171.255 { 0x1b00ac00, 0x1b00afff, REGISTRY_RIPENCC }, // 27.0.172.0 - 27.0.175.255 { 0x1b00b000, 0x1b00dfff, REGISTRY_APNIC }, // 27.0.176.0 - 27.0.223.255 { 0x1b00e000, 0x1b00e3ff, REGISTRY_ARIN }, // 27.0.224.0 - 27.0.227.255 { 0x1b00e400, 0x1b62bfff, REGISTRY_APNIC }, // 27.0.228.0 - 27.98.191.255 { 0x1b62d000, 0x1b6403ff, REGISTRY_APNIC }, // 27.98.208.0 - 27.100.3.255 { 0x1b640800, 0x1b705fff, REGISTRY_APNIC }, // 27.100.8.0 - 27.112.95.255 { 0x1b706400, 0x1b7437ff, REGISTRY_APNIC }, // 27.112.100.0 - 27.116.55.255 { 0x1b743c00, 0x1b7bdfff, REGISTRY_APNIC }, // 27.116.60.0 - 27.123.223.255 { 0x1b7be400, 0x1b7bf3ff, REGISTRY_APNIC }, // 27.123.228.0 - 27.123.243.255 { 0x1b7bf400, 0x1b7bf7ff, REGISTRY_RIPENCC }, // 27.123.244.0 - 27.123.247.255 { 0x1b7bf800, 0x1b7c3fff, REGISTRY_APNIC }, // 27.123.248.0 - 27.124.63.255 { 0x1b7c5000, 0x1b7e9bff, REGISTRY_APNIC }, // 27.124.80.0 - 27.126.155.255 { 0x1b7ea000, 0x1b83fbff, REGISTRY_APNIC }, // 27.126.160.0 - 27.131.251.255 { 0x1b83fc00, 0x1b83ffff, REGISTRY_ARIN }, // 27.131.252.0 - 27.131.255.255 { 0x1b840000, 0x1bffffff, REGISTRY_APNIC }, // 27.132.0.0 - 27.255.255.255 { 0x1c000000, 0x1effffff, REGISTRY_ARIN }, // 28.0.0.0 - 30.255.255.255 { 0x1f000000, 0x1f2807ff, REGISTRY_RIPENCC }, // 31.0.0.0 - 31.40.7.255 { 0x1f280800, 0x1f286fff, REGISTRY_RIPENCC }, // 31.40.8.0 - 31.40.111.255 { 0x1f287000, 0x1f287fff, REGISTRY_RIPENCC }, // 31.40.112.0 - 31.40.127.255 { 0x1f288000, 0x1f28bfff, REGISTRY_RIPENCC }, // 31.40.128.0 - 31.40.191.255 { 0x1f28c000, 0x1f28ffff, REGISTRY_RIPENCC }, // 31.40.192.0 - 31.40.255.255 { 0x1f290000, 0x1f291fff, REGISTRY_RIPENCC }, // 31.41.0.0 - 31.41.31.255 { 0x1f292000, 0x1f2927ff, REGISTRY_RIPENCC }, // 31.41.32.0 - 31.41.39.255 { 0x1f292800, 0x1f2957ff, REGISTRY_RIPENCC }, // 31.41.40.0 - 31.41.87.255 { 0x1f295800, 0x1f295fff, REGISTRY_RIPENCC }, // 31.41.88.0 - 31.41.95.255 { 0x1f296000, 0x1f2997ff, REGISTRY_RIPENCC }, // 31.41.96.0 - 31.41.151.255 { 0x1f299800, 0x1f299fff, REGISTRY_RIPENCC }, // 31.41.152.0 - 31.41.159.255 { 0x1f29a000, 0x1f29c7ff, REGISTRY_RIPENCC }, // 31.41.160.0 - 31.41.199.255 { 0x1f29c800, 0x1f29cfff, REGISTRY_RIPENCC }, // 31.41.200.0 - 31.41.207.255 { 0x1f29d000, 0x1f29f7ff, REGISTRY_RIPENCC }, // 31.41.208.0 - 31.41.247.255 { 0x1f29f800, 0x1f29ffff, REGISTRY_RIPENCC }, // 31.41.248.0 - 31.41.255.255 { 0x1f2a0000, 0x1f2a4fff, REGISTRY_RIPENCC }, // 31.42.0.0 - 31.42.79.255 { 0x1f2a5000, 0x1f2a5fff, REGISTRY_RIPENCC }, // 31.42.80.0 - 31.42.95.255 { 0x1f2a6000, 0x1f2a7fff, REGISTRY_RIPENCC }, // 31.42.96.0 - 31.42.127.255 { 0x1f2a8000, 0x1f2a9fff, REGISTRY_RIPENCC }, // 31.42.128.0 - 31.42.159.255 { 0x1f2aa000, 0x1f2ba3ff, REGISTRY_RIPENCC }, // 31.42.160.0 - 31.43.163.255 { 0x1f2ba400, 0x1f2ba7ff, REGISTRY_RIPENCC }, // 31.43.164.0 - 31.43.167.255 { 0x1f2ba800, 0x1f2bffff, REGISTRY_RIPENCC }, // 31.43.168.0 - 31.43.255.255 { 0x1f2c0000, 0x1f7fffff, REGISTRY_RIPENCC }, // 31.44.0.0 - 31.127.255.255 { 0x1f800000, 0x1f80ffff, REGISTRY_RIPENCC }, // 31.128.0.0 - 31.128.255.255 { 0x1f810000, 0x1f813fff, REGISTRY_RIPENCC }, // 31.129.0.0 - 31.129.63.255 { 0x1f814000, 0x1f817dff, REGISTRY_RIPENCC }, // 31.129.64.0 - 31.129.125.255 { 0x1f817e00, 0x1f817fff, REGISTRY_RIPENCC }, // 31.129.126.0 - 31.129.127.255 { 0x1f818000, 0x1f82efff, REGISTRY_RIPENCC }, // 31.129.128.0 - 31.130.239.255 { 0x1f82f000, 0x1f82f7ff, REGISTRY_RIPENCC }, // 31.130.240.0 - 31.130.247.255 { 0x1f82f800, 0x1f8307ff, REGISTRY_RIPENCC }, // 31.130.248.0 - 31.131.7.255 { 0x1f830800, 0x1f830fff, REGISTRY_RIPENCC }, // 31.131.8.0 - 31.131.15.255 { 0x1f831000, 0x1f8357ff, REGISTRY_RIPENCC }, // 31.131.16.0 - 31.131.87.255 { 0x1f835800, 0x1f835fff, REGISTRY_RIPENCC }, // 31.131.88.0 - 31.131.95.255 { 0x1f836000, 0x1f839fff, REGISTRY_RIPENCC }, // 31.131.96.0 - 31.131.159.255 { 0x1f83a000, 0x1f83a7ff, REGISTRY_RIPENCC }, // 31.131.160.0 - 31.131.167.255 { 0x1f83a800, 0x1f83bfff, REGISTRY_RIPENCC }, // 31.131.168.0 - 31.131.191.255 { 0x1f83c000, 0x1f83dfff, REGISTRY_RIPENCC }, // 31.131.192.0 - 31.131.223.255 { 0x1f83e000, 0x1f83f7ff, REGISTRY_RIPENCC }, // 31.131.224.0 - 31.131.247.255 { 0x1f83f800, 0x1f840fff, REGISTRY_RIPENCC }, // 31.131.248.0 - 31.132.15.255 { 0x1f841000, 0x1f841fff, REGISTRY_RIPENCC }, // 31.132.16.0 - 31.132.31.255 { 0x1f842000, 0x1f843fff, REGISTRY_RIPENCC }, // 31.132.32.0 - 31.132.63.255 { 0x1f844000, 0x1f844fff, REGISTRY_RIPENCC }, // 31.132.64.0 - 31.132.79.255 { 0x1f845000, 0x1f845fff, REGISTRY_RIPENCC }, // 31.132.80.0 - 31.132.95.255 { 0x1f846000, 0x1f847fff, REGISTRY_RIPENCC }, // 31.132.96.0 - 31.132.127.255 { 0x1f848000, 0x1f84c7ff, REGISTRY_RIPENCC }, // 31.132.128.0 - 31.132.199.255 { 0x1f84c800, 0x1f84dfff, REGISTRY_RIPENCC }, // 31.132.200.0 - 31.132.223.255 { 0x1f84e000, 0x1f84efff, REGISTRY_RIPENCC }, // 31.132.224.0 - 31.132.239.255 { 0x1f84f000, 0x1f8517ff, REGISTRY_RIPENCC }, // 31.132.240.0 - 31.133.23.255 { 0x1f851800, 0x1f853fff, REGISTRY_RIPENCC }, // 31.133.24.0 - 31.133.63.255 { 0x1f854000, 0x1f855fff, REGISTRY_RIPENCC }, // 31.133.64.0 - 31.133.95.255 { 0x1f856000, 0x1f8567ff, REGISTRY_RIPENCC }, // 31.133.96.0 - 31.133.103.255 { 0x1f856800, 0x1f85bfff, REGISTRY_RIPENCC }, // 31.133.104.0 - 31.133.191.255 { 0x1f85c000, 0x1f85c7ff, REGISTRY_RIPENCC }, // 31.133.192.0 - 31.133.199.255 { 0x1f85c800, 0x1f86c7ff, REGISTRY_RIPENCC }, // 31.133.200.0 - 31.134.199.255 { 0x1f86c800, 0x1f86cfff, REGISTRY_RIPENCC }, // 31.134.200.0 - 31.134.207.255 { 0x1f86d000, 0x1f86ffff, REGISTRY_RIPENCC }, // 31.134.208.0 - 31.134.255.255 { 0x1f870000, 0x1f870fff, REGISTRY_RIPENCC }, // 31.135.0.0 - 31.135.15.255 { 0x1f871000, 0x1f87ffff, REGISTRY_RIPENCC }, // 31.135.16.0 - 31.135.255.255 { 0x1f880000, 0x1fceffff, REGISTRY_RIPENCC }, // 31.136.0.0 - 31.206.255.255 { 0x1fcf0000, 0x1fcf07ff, REGISTRY_ARIN }, // 31.207.0.0 - 31.207.7.255 { 0x1fcf0800, 0x1fcf37ff, REGISTRY_RIPENCC }, // 31.207.8.0 - 31.207.55.255 { 0x1fcf3800, 0x1fcf3bff, REGISTRY_ARIN }, // 31.207.56.0 - 31.207.59.255 { 0x1fcf3c00, 0x1fd839ff, REGISTRY_RIPENCC }, // 31.207.60.0 - 31.216.57.255 { 0x1fd83b00, 0x1fffffff, REGISTRY_RIPENCC }, // 31.216.59.0 - 31.255.255.255 { 0x20000000, 0x23ffffff, REGISTRY_ARIN }, // 32.0.0.0 - 35.255.255.255 { 0x24000000, 0x2431ffff, REGISTRY_APNIC }, // 36.0.0.0 - 36.49.255.255 { 0x24322400, 0x243224ff, REGISTRY_APNIC }, // 36.50.36.0 - 36.50.36.255 { 0x24323200, 0x243232ff, REGISTRY_APNIC }, // 36.50.50.0 - 36.50.50.255 { 0x24330000, 0x24ff5bff, REGISTRY_APNIC }, // 36.51.0.0 - 36.255.91.255 { 0x24ff5c00, 0x24ff5fff, REGISTRY_RIPENCC }, // 36.255.92.0 - 36.255.95.255 { 0x24ff6000, 0x24ffbbff, REGISTRY_APNIC }, // 36.255.96.0 - 36.255.187.255 { 0x24ffbc00, 0x24ffbfff, REGISTRY_RIPENCC }, // 36.255.188.0 - 36.255.191.255 { 0x24ffc000, 0x24ffffff, REGISTRY_APNIC }, // 36.255.192.0 - 36.255.255.255 { 0x25000000, 0x250fffff, REGISTRY_RIPENCC }, // 37.0.0.0 - 37.15.255.255 { 0x25100000, 0x25101fff, REGISTRY_ARIN }, // 37.16.0.0 - 37.16.31.255 { 0x25102000, 0x256effff, REGISTRY_RIPENCC }, // 37.16.32.0 - 37.110.255.255 { 0x256f0000, 0x256fffff, REGISTRY_APNIC }, // 37.111.0.0 - 37.111.255.255 { 0x25700000, 0x25ffffff, REGISTRY_RIPENCC }, // 37.112.0.0 - 37.255.255.255 { 0x26000000, 0x26ffffff, REGISTRY_ARIN }, // 38.0.0.0 - 38.255.255.255 { 0x27000000, 0x27ffffff, REGISTRY_APNIC }, // 39.0.0.0 - 39.255.255.255 { 0x28000000, 0x2847ffff, REGISTRY_ARIN }, // 40.0.0.0 - 40.71.255.255 { 0x28480000, 0x2849ffff, REGISTRY_APNIC }, // 40.72.0.0 - 40.73.255.255 { 0x284a0000, 0x287d7fff, REGISTRY_ARIN }, // 40.74.0.0 - 40.125.127.255 { 0x287d8000, 0x287dffff, REGISTRY_APNIC }, // 40.125.128.0 - 40.125.255.255 { 0x287e0000, 0x287e3fff, REGISTRY_ARIN }, // 40.126.0.0 - 40.126.63.255 { 0x287e4000, 0x287e7fff, REGISTRY_APNIC }, // 40.126.64.0 - 40.126.127.255 { 0x287e8000, 0x28a1ffff, REGISTRY_ARIN }, // 40.126.128.0 - 40.161.255.255 { 0x28a20000, 0x28a2ffff, REGISTRY_APNIC }, // 40.162.0.0 - 40.162.255.255 { 0x28a30000, 0x28a8ffff, REGISTRY_ARIN }, // 40.163.0.0 - 40.168.255.255 { 0x28a90000, 0x28abffff, REGISTRY_RIPENCC }, // 40.169.0.0 - 40.171.255.255 { 0x28ac0000, 0x28ffffff, REGISTRY_ARIN }, // 40.172.0.0 - 40.255.255.255 { 0x29000000, 0x293970ff, REGISTRY_AFRINIC }, // 41.0.0.0 - 41.57.112.255 { 0x29397800, 0x29397bff, REGISTRY_AFRINIC }, // 41.57.120.0 - 41.57.123.255 { 0x29398000, 0x2939bfff, REGISTRY_AFRINIC }, // 41.57.128.0 - 41.57.191.255 { 0x293a0000, 0x2943bfff, REGISTRY_AFRINIC }, // 41.58.0.0 - 41.67.191.255 { 0x29440000, 0x2947ffff, REGISTRY_AFRINIC }, // 41.68.0.0 - 41.71.255.255 { 0x29486000, 0x2948dfff, REGISTRY_AFRINIC }, // 41.72.96.0 - 41.72.223.255 { 0x29490000, 0x29493fff, REGISTRY_AFRINIC }, // 41.73.0.0 - 41.73.63.255 { 0x29496000, 0x294a1fff, REGISTRY_AFRINIC }, // 41.73.96.0 - 41.74.31.255 { 0x294a3000, 0x294adfff, REGISTRY_AFRINIC }, // 41.74.48.0 - 41.74.223.255 { 0x294af000, 0x294bdfff, REGISTRY_AFRINIC }, // 41.74.240.0 - 41.75.223.255 { 0x294c0000, 0x294c17ff, REGISTRY_AFRINIC }, // 41.76.0.0 - 41.76.23.255 { 0x294c2000, 0x294c2fff, REGISTRY_AFRINIC }, // 41.76.32.0 - 41.76.47.255 { 0x294c3800, 0x294c57ff, REGISTRY_AFRINIC }, // 41.76.56.0 - 41.76.87.255 { 0x294c6000, 0x294c77ff, REGISTRY_AFRINIC }, // 41.76.96.0 - 41.76.119.255 { 0x294c8000, 0x294d3fff, REGISTRY_AFRINIC }, // 41.76.128.0 - 41.77.63.255 { 0x294d4800, 0x294d77ff, REGISTRY_AFRINIC }, // 41.77.72.0 - 41.77.119.255 { 0x294d8000, 0x294dafff, REGISTRY_AFRINIC }, // 41.77.128.0 - 41.77.175.255 { 0x294db800, 0x294dbfff, REGISTRY_AFRINIC }, // 41.77.184.0 - 41.77.191.255 { 0x294dc800, 0x294dcfff, REGISTRY_AFRINIC }, // 41.77.200.0 - 41.77.207.255 { 0x294dd800, 0x294ddfff, REGISTRY_AFRINIC }, // 41.77.216.0 - 41.77.223.255 { 0x294de800, 0x294defff, REGISTRY_AFRINIC }, // 41.77.232.0 - 41.77.239.255 { 0x294df800, 0x294dffff, REGISTRY_AFRINIC }, // 41.77.248.0 - 41.77.255.255 { 0x294e0400, 0x294e1fff, REGISTRY_AFRINIC }, // 41.78.4.0 - 41.78.31.255 { 0x294e2400, 0x294e27ff, REGISTRY_AFRINIC }, // 41.78.36.0 - 41.78.39.255 { 0x294e2c00, 0x294e3bff, REGISTRY_AFRINIC }, // 41.78.44.0 - 41.78.59.255 { 0x294e4000, 0x294e5fff, REGISTRY_AFRINIC }, // 41.78.64.0 - 41.78.95.255 { 0x294e6400, 0x294e6fff, REGISTRY_AFRINIC }, // 41.78.100.0 - 41.78.111.255 { 0x294e7400, 0x294ea3ff, REGISTRY_AFRINIC }, // 41.78.116.0 - 41.78.163.255 { 0x294ea800, 0x294ecbff, REGISTRY_AFRINIC }, // 41.78.168.0 - 41.78.203.255 { 0x294ed000, 0x294f27ff, REGISTRY_AFRINIC }, // 41.78.208.0 - 41.79.39.255 { 0x294f2c00, 0x294f33ff, REGISTRY_AFRINIC }, // 41.79.44.0 - 41.79.51.255 { 0x294f3800, 0x294f7fff, REGISTRY_AFRINIC }, // 41.79.56.0 - 41.79.127.255 { 0x294f8400, 0x294f8fff, REGISTRY_AFRINIC }, // 41.79.132.0 - 41.79.143.255 { 0x294f9400, 0x294fa3ff, REGISTRY_AFRINIC }, // 41.79.148.0 - 41.79.163.255 { 0x294fa800, 0x29563fff, REGISTRY_AFRINIC }, // 41.79.168.0 - 41.86.63.255 { 0x29566000, 0x2957ffff, REGISTRY_AFRINIC }, // 41.86.96.0 - 41.87.255.255 { 0x29590000, 0x295c87ff, REGISTRY_AFRINIC }, // 41.89.0.0 - 41.92.135.255 { 0x295c9800, 0x295c9fff, REGISTRY_AFRINIC }, // 41.92.152.0 - 41.92.159.255 { 0x295cb400, 0x295cbbff, REGISTRY_AFRINIC }, // 41.92.180.0 - 41.92.187.255 { 0x295cc400, 0x295ccbff, REGISTRY_AFRINIC }, // 41.92.196.0 - 41.92.203.255 { 0x295cd000, 0x295cdbff, REGISTRY_AFRINIC }, // 41.92.208.0 - 41.92.219.255 { 0x295ce000, 0x295ce0ff, REGISTRY_AFRINIC }, // 41.92.224.0 - 41.92.224.255 { 0x295cf800, 0x295d7fff, REGISTRY_AFRINIC }, // 41.92.248.0 - 41.93.127.255 { 0x295e0000, 0x2989ffff, REGISTRY_AFRINIC }, // 41.94.0.0 - 41.137.255.255 { 0x298a2000, 0x298abfff, REGISTRY_AFRINIC }, // 41.138.32.0 - 41.138.191.255 { 0x298ad000, 0x29be3fff, REGISTRY_AFRINIC }, // 41.138.208.0 - 41.190.63.255 { 0x29be4400, 0x29be47ff, REGISTRY_AFRINIC }, // 41.190.68.0 - 41.190.71.255 { 0x29be5000, 0x29bf9fff, REGISTRY_AFRINIC }, // 41.190.80.0 - 41.191.159.255 { 0x29bfc000, 0x29bfefff, REGISTRY_AFRINIC }, // 41.191.192.0 - 41.191.239.255 { 0x29bff800, 0x29bffbff, REGISTRY_AFRINIC }, // 41.191.248.0 - 41.191.251.255 { 0x29c00000, 0x29c9ffff, REGISTRY_AFRINIC }, // 41.192.0.0 - 41.201.255.255 { 0x29ca2000, 0x29ca7fff, REGISTRY_AFRINIC }, // 41.202.32.0 - 41.202.127.255 { 0x29caa000, 0x29cddfff, REGISTRY_AFRINIC }, // 41.202.160.0 - 41.205.223.255 { 0x29ce0000, 0x29cfe3ff, REGISTRY_AFRINIC }, // 41.206.0.0 - 41.207.227.255 { 0x29cfe800, 0x29d1bfff, REGISTRY_AFRINIC }, // 41.207.232.0 - 41.209.191.255 { 0x29d20000, 0x29d23fff, REGISTRY_AFRINIC }, // 41.210.0.0 - 41.210.63.255 { 0x29d28000, 0x29d8e7ff, REGISTRY_AFRINIC }, // 41.210.128.0 - 41.216.231.255 { 0x29d8ec00, 0x29d97fff, REGISTRY_AFRINIC }, // 41.216.236.0 - 41.217.127.255 { 0x29d99400, 0x29d997ff, REGISTRY_AFRINIC }, // 41.217.148.0 - 41.217.151.255 { 0x29d9a000, 0x29dc2fff, REGISTRY_AFRINIC }, // 41.217.160.0 - 41.220.47.255 { 0x29dc4000, 0x29dcbfff, REGISTRY_AFRINIC }, // 41.220.64.0 - 41.220.191.255 { 0x29dcd000, 0x29de17ff, REGISTRY_AFRINIC }, // 41.220.208.0 - 41.222.23.255 { 0x29de2000, 0x29dedbff, REGISTRY_AFRINIC }, // 41.222.32.0 - 41.222.219.255 { 0x29dee000, 0x29deefff, REGISTRY_AFRINIC }, // 41.222.224.0 - 41.222.239.255 { 0x29def800, 0x29df0fff, REGISTRY_AFRINIC }, // 41.222.248.0 - 41.223.15.255 { 0x29df1400, 0x29df57ff, REGISTRY_AFRINIC }, // 41.223.20.0 - 41.223.87.255 { 0x29df6000, 0x29df6fff, REGISTRY_AFRINIC }, // 41.223.96.0 - 41.223.111.255 { 0x29df7400, 0x29dfafff, REGISTRY_AFRINIC }, // 41.223.116.0 - 41.223.175.255 { 0x29dfb400, 0x29f207ff, REGISTRY_AFRINIC }, // 41.223.180.0 - 41.242.7.255 { 0x29f21000, 0x29f21fff, REGISTRY_AFRINIC }, // 41.242.16.0 - 41.242.31.255 { 0x29f22800, 0x29f253ff, REGISTRY_AFRINIC }, // 41.242.40.0 - 41.242.83.255 { 0x29f25800, 0x29f25bff, REGISTRY_AFRINIC }, // 41.242.88.0 - 41.242.91.255 { 0x29f26000, 0x29f277ff, REGISTRY_AFRINIC }, // 41.242.96.0 - 41.242.119.255 { 0x29f27c00, 0x29f27fff, REGISTRY_AFRINIC }, // 41.242.124.0 - 41.242.127.255 { 0x29f28400, 0x29f57fff, REGISTRY_AFRINIC }, // 41.242.132.0 - 41.245.127.255 { 0x29f60000, 0x29ffffff, REGISTRY_AFRINIC }, // 41.246.0.0 - 41.255.255.255 { 0x2a000000, 0x2a6373ff, REGISTRY_APNIC }, // 42.0.0.0 - 42.99.115.255 { 0x2a637800, 0x2be11bff, REGISTRY_APNIC }, // 42.99.120.0 - 43.225.27.255 { 0x2be12000, 0x2be16fff, REGISTRY_APNIC }, // 43.225.32.0 - 43.225.111.255 { 0x2be17000, 0x2be173ff, REGISTRY_RIPENCC }, // 43.225.112.0 - 43.225.115.255 { 0x2be17400, 0x2be17fff, REGISTRY_APNIC }, // 43.225.116.0 - 43.225.127.255 { 0x2be18400, 0x2be217ff, REGISTRY_APNIC }, // 43.225.132.0 - 43.226.23.255 { 0x2be21800, 0x2be21bff, REGISTRY_ARIN }, // 43.226.24.0 - 43.226.27.255 { 0x2be21c00, 0x2be3b7ff, REGISTRY_APNIC }, // 43.226.28.0 - 43.227.183.255 { 0x2be3bc00, 0x2be467ff, REGISTRY_APNIC }, // 43.227.188.0 - 43.228.103.255 { 0x2be46c00, 0x2be4a3ff, REGISTRY_APNIC }, // 43.228.108.0 - 43.228.163.255 { 0x2be4a800, 0x2be4abff, REGISTRY_APNIC }, // 43.228.168.0 - 43.228.171.255 { 0x2be4b000, 0x2be4fbff, REGISTRY_APNIC }, // 43.228.176.0 - 43.228.251.255 { 0x2be50000, 0x2be507ff, REGISTRY_APNIC }, // 43.229.0.0 - 43.229.7.255 { 0x2be50800, 0x2be50bff, REGISTRY_RIPENCC }, // 43.229.8.0 - 43.229.11.255 { 0x2be50c00, 0x2be50fff, REGISTRY_APNIC }, // 43.229.12.0 - 43.229.15.255 { 0x2be51400, 0x2be577ff, REGISTRY_APNIC }, // 43.229.20.0 - 43.229.119.255 { 0x2be57c00, 0x2be637ff, REGISTRY_APNIC }, // 43.229.124.0 - 43.230.55.255 { 0x2be63800, 0x2be63bff, REGISTRY_RIPENCC }, // 43.230.56.0 - 43.230.59.255 { 0x2be63c00, 0x2be68bff, REGISTRY_APNIC }, // 43.230.60.0 - 43.230.139.255 { 0x2be68c00, 0x2be68fff, REGISTRY_RIPENCC }, // 43.230.140.0 - 43.230.143.255 { 0x2be69000, 0x2be6abff, REGISTRY_APNIC }, // 43.230.144.0 - 43.230.171.255 { 0x2be6b000, 0x2be70bff, REGISTRY_APNIC }, // 43.230.176.0 - 43.231.11.255 { 0x2be70c00, 0x2be70fff, REGISTRY_ARIN }, // 43.231.12.0 - 43.231.15.255 { 0x2be71000, 0x2be781ff, REGISTRY_APNIC }, // 43.231.16.0 - 43.231.129.255 { 0x2be78400, 0x2be7e7ff, REGISTRY_APNIC }, // 43.231.132.0 - 43.231.231.255 { 0x2be7e800, 0x2be7ebff, REGISTRY_ARIN }, // 43.231.232.0 - 43.231.235.255 { 0x2be7ec00, 0x2bedc3ff, REGISTRY_APNIC }, // 43.231.236.0 - 43.237.195.255 { 0x2bedc800, 0x2bef57ff, REGISTRY_APNIC }, // 43.237.200.0 - 43.239.87.255 { 0x2bef5800, 0x2bef5bff, REGISTRY_RIPENCC }, // 43.239.88.0 - 43.239.91.255 { 0x2bef5c00, 0x2bf033ff, REGISTRY_APNIC }, // 43.239.92.0 - 43.240.51.255 { 0x2bf03800, 0x2bf05bff, REGISTRY_APNIC }, // 43.240.56.0 - 43.240.91.255 { 0x2bf06000, 0x2bf073ff, REGISTRY_APNIC }, // 43.240.96.0 - 43.240.115.255 { 0x2bf07800, 0x2bf08bff, REGISTRY_APNIC }, // 43.240.120.0 - 43.240.139.255 { 0x2bf08c00, 0x2bf08fff, REGISTRY_RIPENCC }, // 43.240.140.0 - 43.240.143.255 { 0x2bf09000, 0x2bf093ff, REGISTRY_APNIC }, // 43.240.144.0 - 43.240.147.255 { 0x2bf09400, 0x2bf097ff, REGISTRY_RIPENCC }, // 43.240.148.0 - 43.240.151.255 { 0x2bf09800, 0x2bf0e7ff, REGISTRY_APNIC }, // 43.240.152.0 - 43.240.231.255 { 0x2bf0ec00, 0x2bf163ff, REGISTRY_APNIC }, // 43.240.236.0 - 43.241.99.255 { 0x2bf16800, 0x2bf19bff, REGISTRY_APNIC }, // 43.241.104.0 - 43.241.155.255 { 0x2bf19c00, 0x2bf19fff, REGISTRY_RIPENCC }, // 43.241.156.0 - 43.241.159.255 { 0x2bf1a000, 0x2bf1c3ff, REGISTRY_APNIC }, // 43.241.160.0 - 43.241.195.255 { 0x2bf1c800, 0x2bf1f3ff, REGISTRY_APNIC }, // 43.241.200.0 - 43.241.243.255 { 0x2bf1f800, 0x2bf203ff, REGISTRY_APNIC }, // 43.241.248.0 - 43.242.3.255 { 0x2bf20800, 0x2bf2e7ff, REGISTRY_APNIC }, // 43.242.8.0 - 43.242.231.255 { 0x2bf2ec00, 0x2bf313ff, REGISTRY_APNIC }, // 43.242.236.0 - 43.243.19.255 { 0x2bf31500, 0x2bf317ff, REGISTRY_APNIC }, // 43.243.21.0 - 43.243.23.255 { 0x2bf31800, 0x2bf31bff, REGISTRY_RIPENCC }, // 43.243.24.0 - 43.243.27.255 { 0x2bf31c00, 0x2bf31fff, REGISTRY_APNIC }, // 43.243.28.0 - 43.243.31.255 { 0x2bf32000, 0x2bf323ff, REGISTRY_RIPENCC }, // 43.243.32.0 - 43.243.35.255 { 0x2bf32400, 0x2bf32fff, REGISTRY_APNIC }, // 43.243.36.0 - 43.243.47.255 { 0x2bf33400, 0x2bf353ff, REGISTRY_APNIC }, // 43.243.52.0 - 43.243.83.255 { 0x2bf35400, 0x2bf357ff, REGISTRY_ARIN }, // 43.243.84.0 - 43.243.87.255 { 0x2bf35800, 0x2bf35bff, REGISTRY_APNIC }, // 43.243.88.0 - 43.243.91.255 { 0x2bf35c00, 0x2bf35fff, REGISTRY_RIPENCC }, // 43.243.92.0 - 43.243.95.255 { 0x2bf36000, 0x2bf363ff, REGISTRY_APNIC }, // 43.243.96.0 - 43.243.99.255 { 0x2bf36c00, 0x2bf36fff, REGISTRY_APNIC }, // 43.243.108.0 - 43.243.111.255 { 0x2bf37400, 0x2bf3f7ff, REGISTRY_APNIC }, // 43.243.116.0 - 43.243.247.255 { 0x2bf3fc00, 0x2bf573ff, REGISTRY_APNIC }, // 43.243.252.0 - 43.245.115.255 { 0x2bf57400, 0x2bf575ff, REGISTRY_RIPENCC }, // 43.245.116.0 - 43.245.117.255 { 0x2bf57600, 0x2bf576ff, REGISTRY_APNIC }, // 43.245.118.0 - 43.245.118.255 { 0x2bf57700, 0x2bf577ff, REGISTRY_RIPENCC }, // 43.245.119.0 - 43.245.119.255 { 0x2bf57800, 0x2bf59bff, REGISTRY_APNIC }, // 43.245.120.0 - 43.245.155.255 { 0x2bf59c00, 0x2bf59fff, REGISTRY_RIPENCC }, // 43.245.156.0 - 43.245.159.255 { 0x2bf5a000, 0x2bf5cfff, REGISTRY_APNIC }, // 43.245.160.0 - 43.245.207.255 { 0x2bf5d000, 0x2bf5d3ff, REGISTRY_RIPENCC }, // 43.245.208.0 - 43.245.211.255 { 0x2bf5d400, 0x2bf6d3ff, REGISTRY_APNIC }, // 43.245.212.0 - 43.246.211.255 { 0x2bf6d800, 0x2bf837ff, REGISTRY_APNIC }, // 43.246.216.0 - 43.248.55.255 { 0x2bf83c00, 0x2bf8fbff, REGISTRY_APNIC }, // 43.248.60.0 - 43.248.251.255 { 0x2bf90000, 0x2bf90fff, REGISTRY_APNIC }, // 43.249.0.0 - 43.249.15.255 { 0x2bf91800, 0x2bf927ff, REGISTRY_APNIC }, // 43.249.24.0 - 43.249.39.255 { 0x2bf92c00, 0x2bf957ff, REGISTRY_APNIC }, // 43.249.44.0 - 43.249.87.255 { 0x2bf95c00, 0x2bf97bff, REGISTRY_APNIC }, // 43.249.92.0 - 43.249.123.255 { 0x2bf98000, 0x2bfab3ff, REGISTRY_APNIC }, // 43.249.128.0 - 43.250.179.255 { 0x2bfab800, 0x2bfaeaff, REGISTRY_APNIC }, // 43.250.184.0 - 43.250.234.255 { 0x2bfaec00, 0x2bfaffff, REGISTRY_APNIC }, // 43.250.236.0 - 43.250.255.255 { 0x2bfb0000, 0x2bfb03ff, REGISTRY_RIPENCC }, // 43.251.0.0 - 43.251.3.255 { 0x2bfb0400, 0x2bfb9fff, REGISTRY_APNIC }, // 43.251.4.0 - 43.251.159.255 { 0x2bfba000, 0x2bfba3ff, REGISTRY_RIPENCC }, // 43.251.160.0 - 43.251.163.255 { 0x2bfba400, 0x2bfbe3ff, REGISTRY_APNIC }, // 43.251.164.0 - 43.251.227.255 { 0x2bfbe800, 0x2bfc1bff, REGISTRY_APNIC }, // 43.251.232.0 - 43.252.27.255 { 0x2bfc1c00, 0x2bfc1fff, REGISTRY_RIPENCC }, // 43.252.28.0 - 43.252.31.255 { 0x2bfc2000, 0x2bfcdfff, REGISTRY_APNIC }, // 43.252.32.0 - 43.252.223.255 { 0x2bfce400, 0x2bff13ff, REGISTRY_APNIC }, // 43.252.228.0 - 43.255.19.255 { 0x2bff1800, 0x2bff6bff, REGISTRY_APNIC }, // 43.255.24.0 - 43.255.107.255 { 0x2bff6c00, 0x2bff6fff, REGISTRY_RIPENCC }, // 43.255.108.0 - 43.255.111.255 { 0x2bff7000, 0x2bffffff, REGISTRY_APNIC }, // 43.255.112.0 - 43.255.255.255 { 0x2c000000, 0x2d031fff, REGISTRY_ARIN }, // 44.0.0.0 - 45.3.31.255 { 0x2d032000, 0x2d033fff, REGISTRY_RIPENCC }, // 45.3.32.0 - 45.3.63.255 { 0x2d034000, 0x2d03ffff, REGISTRY_ARIN }, // 45.3.64.0 - 45.3.255.255 { 0x2d040000, 0x2d04abff, REGISTRY_LACNIC }, // 45.4.0.0 - 45.4.171.255 { 0x2d04ac00, 0x2d04afff, REGISTRY_ARIN }, // 45.4.172.0 - 45.4.175.255 { 0x2d04b000, 0x2d04c3ff, REGISTRY_LACNIC }, // 45.4.176.0 - 45.4.195.255 { 0x2d04c400, 0x2d04c7ff, REGISTRY_ARIN }, // 45.4.196.0 - 45.4.199.255 { 0x2d04c800, 0x2d062bff, REGISTRY_LACNIC }, // 45.4.200.0 - 45.6.43.255 { 0x2d062c00, 0x2d0633ff, REGISTRY_RIPENCC }, // 45.6.44.0 - 45.6.51.255 { 0x2d063400, 0x2d07ffff, REGISTRY_LACNIC }, // 45.6.52.0 - 45.7.255.255 { 0x2d080000, 0x2d0914ff, REGISTRY_RIPENCC }, // 45.8.0.0 - 45.9.20.255 { 0x2d091600, 0x2d0a38ff, REGISTRY_RIPENCC }, // 45.9.22.0 - 45.10.56.255 { 0x2d0a3900, 0x2d0a39ff, REGISTRY_ARIN }, // 45.10.57.0 - 45.10.57.255 { 0x2d0a3a00, 0x2d0b8bff, REGISTRY_RIPENCC }, // 45.10.58.0 - 45.11.139.255 { 0x2d0b8c00, 0x2d0b8fff, REGISTRY_ARIN }, // 45.11.140.0 - 45.11.143.255 { 0x2d0b9000, 0x2d0fffff, REGISTRY_RIPENCC }, // 45.11.144.0 - 45.15.255.255 { 0x2d100000, 0x2d21dfff, REGISTRY_ARIN }, // 45.16.0.0 - 45.33.223.255 { 0x2d21e000, 0x2d21efff, REGISTRY_RIPENCC }, // 45.33.224.0 - 45.33.239.255 { 0x2d21f000, 0x2d28bfff, REGISTRY_ARIN }, // 45.33.240.0 - 45.40.191.255 { 0x2d28c000, 0x2d28ffff, REGISTRY_APNIC }, // 45.40.192.0 - 45.40.255.255 { 0x2d290000, 0x2d295fff, REGISTRY_ARIN }, // 45.41.0.0 - 45.41.95.255 { 0x2d296000, 0x2d297fff, REGISTRY_APNIC }, // 45.41.96.0 - 45.41.127.255 { 0x2d298000, 0x2d2b3fff, REGISTRY_ARIN }, // 45.41.128.0 - 45.43.63.255 { 0x2d2b4000, 0x2d2b5fff, REGISTRY_RIPENCC }, // 45.43.64.0 - 45.43.95.255 { 0x2d2b6000, 0x2d2b7fff, REGISTRY_ARIN }, // 45.43.96.0 - 45.43.127.255 { 0x2d2b8000, 0x2d2bbfff, REGISTRY_RIPENCC }, // 45.43.128.0 - 45.43.191.255 { 0x2d2bc000, 0x2d38dfff, REGISTRY_ARIN }, // 45.43.192.0 - 45.56.223.255 { 0x2d38e000, 0x2d38ffff, REGISTRY_RIPENCC }, // 45.56.224.0 - 45.56.255.255 { 0x2d390000, 0x2d3fffff, REGISTRY_ARIN }, // 45.57.0.0 - 45.63.255.255 { 0x2d400000, 0x2d4107ff, REGISTRY_APNIC }, // 45.64.0.0 - 45.65.7.255 { 0x2d410800, 0x2d410bff, REGISTRY_RIPENCC }, // 45.65.8.0 - 45.65.11.255 { 0x2d410c00, 0x2d4137ff, REGISTRY_APNIC }, // 45.65.12.0 - 45.65.55.255 { 0x2d413a00, 0x2d413fff, REGISTRY_APNIC }, // 45.65.58.0 - 45.65.63.255 { 0x2d414000, 0x2d417fff, REGISTRY_RIPENCC }, // 45.65.64.0 - 45.65.127.255 { 0x2d418000, 0x2d41ffff, REGISTRY_LACNIC }, // 45.65.128.0 - 45.65.255.255 { 0x2d420000, 0x2d43ffff, REGISTRY_RIPENCC }, // 45.66.0.0 - 45.67.255.255 { 0x2d440000, 0x2d4420ff, REGISTRY_LACNIC }, // 45.68.0.0 - 45.68.32.255 { 0x2d442200, 0x2d4427ff, REGISTRY_LACNIC }, // 45.68.34.0 - 45.68.39.255 { 0x2d460000, 0x2d47ffff, REGISTRY_LACNIC }, // 45.70.0.0 - 45.71.255.255 { 0x2d480000, 0x2d4affff, REGISTRY_ARIN }, // 45.72.0.0 - 45.74.255.255 { 0x2d4b0000, 0x2d4b7fff, REGISTRY_APNIC }, // 45.75.0.0 - 45.75.127.255 { 0x2d4b8000, 0x2d4bffff, REGISTRY_RIPENCC }, // 45.75.128.0 - 45.75.255.255 { 0x2d4c0000, 0x2d4e4fff, REGISTRY_ARIN }, // 45.76.0.0 - 45.78.79.255 { 0x2d4e5000, 0x2d4e5fff, REGISTRY_RIPENCC }, // 45.78.80.0 - 45.78.95.255 { 0x2d4e6000, 0x2d4fffff, REGISTRY_ARIN }, // 45.78.96.0 - 45.79.255.255 { 0x2d500000, 0x2d58d7ff, REGISTRY_RIPENCC }, // 45.80.0.0 - 45.88.215.255 { 0x2d58d800, 0x2d58dbff, REGISTRY_ARIN }, // 45.88.216.0 - 45.88.219.255 { 0x2d58dc00, 0x2d592fff, REGISTRY_RIPENCC }, // 45.88.220.0 - 45.89.47.255 { 0x2d593000, 0x2d5933ff, REGISTRY_ARIN }, // 45.89.48.0 - 45.89.51.255 { 0x2d593400, 0x2d59afff, REGISTRY_RIPENCC }, // 45.89.52.0 - 45.89.175.255 { 0x2d59b000, 0x2d59b3ff, REGISTRY_APNIC }, // 45.89.176.0 - 45.89.179.255 { 0x2d59b400, 0x2d5b6bff, REGISTRY_RIPENCC }, // 45.89.180.0 - 45.91.107.255 { 0x2d5b6c00, 0x2d5b6fff, REGISTRY_ARIN }, // 45.91.108.0 - 45.91.111.255 { 0x2d5b7000, 0x2d5c0fff, REGISTRY_RIPENCC }, // 45.91.112.0 - 45.92.15.255 { 0x2d5c1000, 0x2d5c13ff, REGISTRY_ARIN }, // 45.92.16.0 - 45.92.19.255 { 0x2d5c1400, 0x2d5fd0ff, REGISTRY_RIPENCC }, // 45.92.20.0 - 45.95.208.255 { 0x2d5fd100, 0x2d5fd1ff, REGISTRY_ARIN }, // 45.95.209.0 - 45.95.209.255 { 0x2d5fd200, 0x2d5fffff, REGISTRY_RIPENCC }, // 45.95.210.0 - 45.95.255.255 { 0x2d600000, 0x2d6fffff, REGISTRY_AFRINIC }, // 45.96.0.0 - 45.111.255.255 { 0x2d700000, 0x2d716bff, REGISTRY_APNIC }, // 45.112.0.0 - 45.113.107.255 { 0x2d716c00, 0x2d716fff, REGISTRY_RIPENCC }, // 45.113.108.0 - 45.113.111.255 { 0x2d717000, 0x2d71ebff, REGISTRY_APNIC }, // 45.113.112.0 - 45.113.235.255 { 0x2d71ec00, 0x2d71efff, REGISTRY_RIPENCC }, // 45.113.236.0 - 45.113.239.255 { 0x2d71f000, 0x2d7207ff, REGISTRY_APNIC }, // 45.113.240.0 - 45.114.7.255 { 0x2d720800, 0x2d720fff, REGISTRY_RIPENCC }, // 45.114.8.0 - 45.114.15.255 { 0x2d721000, 0x2d7277ff, REGISTRY_APNIC }, // 45.114.16.0 - 45.114.119.255 { 0x2d727800, 0x2d727bff, REGISTRY_RIPENCC }, // 45.114.120.0 - 45.114.123.255 { 0x2d727c00, 0x2d72dfff, REGISTRY_APNIC }, // 45.114.124.0 - 45.114.223.255 { 0x2d72e000, 0x2d72e3ff, REGISTRY_ARIN }, // 45.114.224.0 - 45.114.227.255 { 0x2d72e400, 0x2d72e9ff, REGISTRY_APNIC }, // 45.114.228.0 - 45.114.233.255 { 0x2d72ea00, 0x2d72ebff, REGISTRY_ARIN }, // 45.114.234.0 - 45.114.235.255 { 0x2d72ec00, 0x2d72efff, REGISTRY_APNIC }, // 45.114.236.0 - 45.114.239.255 { 0x2d72f000, 0x2d72f3ff, REGISTRY_RIPENCC }, // 45.114.240.0 - 45.114.243.255 { 0x2d72f400, 0x2d730fff, REGISTRY_APNIC }, // 45.114.244.0 - 45.115.15.255 { 0x2d731400, 0x2d7327ff, REGISTRY_APNIC }, // 45.115.20.0 - 45.115.39.255 { 0x2d732c00, 0x2d733bff, REGISTRY_APNIC }, // 45.115.44.0 - 45.115.59.255 { 0x2d733c00, 0x2d733fff, REGISTRY_ARIN }, // 45.115.60.0 - 45.115.63.255 { 0x2d734000, 0x2d736bff, REGISTRY_APNIC }, // 45.115.64.0 - 45.115.107.255 { 0x2d736c00, 0x2d736fff, REGISTRY_RIPENCC }, // 45.115.108.0 - 45.115.111.255 { 0x2d737000, 0x2d73cbff, REGISTRY_APNIC }, // 45.115.112.0 - 45.115.203.255 { 0x2d73cc00, 0x2d73cfff, REGISTRY_ARIN }, // 45.115.204.0 - 45.115.207.255 { 0x2d73d000, 0x2d7482ff, REGISTRY_APNIC }, // 45.115.208.0 - 45.116.130.255 { 0x2d748400, 0x2d74a7ff, REGISTRY_APNIC }, // 45.116.132.0 - 45.116.167.255 { 0x2d74a800, 0x2d74abff, REGISTRY_RIPENCC }, // 45.116.168.0 - 45.116.171.255 { 0x2d74ac00, 0x2d74b7ff, REGISTRY_APNIC }, // 45.116.172.0 - 45.116.183.255 { 0x2d74b800, 0x2d74bbff, REGISTRY_RIPENCC }, // 45.116.184.0 - 45.116.187.255 { 0x2d74bc00, 0x2d74f7ff, REGISTRY_APNIC }, // 45.116.188.0 - 45.116.247.255 { 0x2d74f800, 0x2d74fbff, REGISTRY_RIPENCC }, // 45.116.248.0 - 45.116.251.255 { 0x2d74fc00, 0x2d7503ff, REGISTRY_APNIC }, // 45.116.252.0 - 45.117.3.255 { 0x2d750400, 0x2d7507ff, REGISTRY_RIPENCC }, // 45.117.4.0 - 45.117.7.255 { 0x2d750800, 0x2d7527ff, REGISTRY_APNIC }, // 45.117.8.0 - 45.117.39.255 { 0x2d752800, 0x2d752bff, REGISTRY_RIPENCC }, // 45.117.40.0 - 45.117.43.255 { 0x2d752c00, 0x2d7533ff, REGISTRY_APNIC }, // 45.117.44.0 - 45.117.51.255 { 0x2d753400, 0x2d7537ff, REGISTRY_ARIN }, // 45.117.52.0 - 45.117.55.255 { 0x2d753c00, 0x2d7553ff, REGISTRY_APNIC }, // 45.117.60.0 - 45.117.83.255 { 0x2d755800, 0x2d7583ff, REGISTRY_APNIC }, // 45.117.88.0 - 45.117.131.255 { 0x2d758800, 0x2d758bff, REGISTRY_RIPENCC }, // 45.117.136.0 - 45.117.139.255 { 0x2d758c00, 0x2d75e7ff, REGISTRY_APNIC }, // 45.117.140.0 - 45.117.231.255 { 0x2d75e800, 0x2d75ebff, REGISTRY_RIPENCC }, // 45.117.232.0 - 45.117.235.255 { 0x2d75ec00, 0x2d7607ff, REGISTRY_APNIC }, // 45.117.236.0 - 45.118.7.255 { 0x2d760900, 0x2d7609ff, REGISTRY_APNIC }, // 45.118.9.0 - 45.118.9.255 { 0x2d760c00, 0x2d76b7ff, REGISTRY_APNIC }, // 45.118.12.0 - 45.118.183.255 { 0x2d76b800, 0x2d76bbff, REGISTRY_RIPENCC }, // 45.118.184.0 - 45.118.187.255 { 0x2d76bc00, 0x2d76f7ff, REGISTRY_APNIC }, // 45.118.188.0 - 45.118.247.255 { 0x2d76f800, 0x2d76fbff, REGISTRY_RIPENCC }, // 45.118.248.0 - 45.118.251.255 { 0x2d770000, 0x2d7727ff, REGISTRY_APNIC }, // 45.119.0.0 - 45.119.39.255 { 0x2d772c00, 0x2d7777ff, REGISTRY_APNIC }, // 45.119.44.0 - 45.119.119.255 { 0x2d777c00, 0x2d777fff, REGISTRY_RIPENCC }, // 45.119.124.0 - 45.119.127.255 { 0x2d778000, 0x2d77cfff, REGISTRY_APNIC }, // 45.119.128.0 - 45.119.207.255 { 0x2d77d000, 0x2d77d3ff, REGISTRY_ARIN }, // 45.119.208.0 - 45.119.211.255 { 0x2d77d400, 0x2d78afff, REGISTRY_APNIC }, // 45.119.212.0 - 45.120.175.255 { 0x2d78b000, 0x2d78b3ff, REGISTRY_RIPENCC }, // 45.120.176.0 - 45.120.179.255 { 0x2d78b400, 0x2d78bfff, REGISTRY_APNIC }, // 45.120.180.0 - 45.120.191.255 { 0x2d78c400, 0x2d78dbff, REGISTRY_APNIC }, // 45.120.196.0 - 45.120.219.255 { 0x2d78dc00, 0x2d78dfff, REGISTRY_RIPENCC }, // 45.120.220.0 - 45.120.223.255 { 0x2d78e000, 0x2d7967ff, REGISTRY_APNIC }, // 45.120.224.0 - 45.121.103.255 { 0x2d796800, 0x2d796bff, REGISTRY_RIPENCC }, // 45.121.104.0 - 45.121.107.255 { 0x2d796c00, 0x2d798bff, REGISTRY_APNIC }, // 45.121.108.0 - 45.121.139.255 { 0x2d799000, 0x2d7ae6ff, REGISTRY_APNIC }, // 45.121.144.0 - 45.122.230.255 { 0x2d7ae800, 0x2d7b27ff, REGISTRY_APNIC }, // 45.122.232.0 - 45.123.39.255 { 0x2d7b2800, 0x2d7b2bff, REGISTRY_RIPENCC }, // 45.123.40.0 - 45.123.43.255 { 0x2d7b2c00, 0x2d7b8bff, REGISTRY_APNIC }, // 45.123.44.0 - 45.123.139.255 { 0x2d7b9000, 0x2d7b93ff, REGISTRY_ARIN }, // 45.123.144.0 - 45.123.147.255 { 0x2d7b9400, 0x2d7c5fff, REGISTRY_APNIC }, // 45.123.148.0 - 45.124.95.255 { 0x2d7c6000, 0x2d7c61ff, REGISTRY_RIPENCC }, // 45.124.96.0 - 45.124.97.255 { 0x2d7c6200, 0x2d7c6dff, REGISTRY_APNIC }, // 45.124.98.0 - 45.124.109.255 { 0x2d7c7000, 0x2d7d1bff, REGISTRY_APNIC }, // 45.124.112.0 - 45.125.27.255 { 0x2d7d2000, 0x2d7d67ff, REGISTRY_APNIC }, // 45.125.32.0 - 45.125.103.255 { 0x2d7d6c00, 0x2d7ddfff, REGISTRY_APNIC }, // 45.125.108.0 - 45.125.223.255 { 0x2d7de400, 0x2d7e27ff, REGISTRY_APNIC }, // 45.125.228.0 - 45.126.39.255 { 0x2d7e2c00, 0x2d7ef7ff, REGISTRY_APNIC }, // 45.126.44.0 - 45.126.247.255 { 0x2d7efc00, 0x2d7f5fff, REGISTRY_APNIC }, // 45.126.252.0 - 45.127.95.255 { 0x2d7f6400, 0x2d7fafff, REGISTRY_APNIC }, // 45.127.100.0 - 45.127.175.255 { 0x2d7fb000, 0x2d7fb3ff, REGISTRY_RIPENCC }, // 45.127.176.0 - 45.127.179.255 { 0x2d7fb400, 0x2d7ff7ff, REGISTRY_APNIC }, // 45.127.180.0 - 45.127.247.255 { 0x2d7ff800, 0x2d7ffbff, REGISTRY_RIPENCC }, // 45.127.248.0 - 45.127.251.255 { 0x2d7ffc00, 0x2d7fffff, REGISTRY_APNIC }, // 45.127.252.0 - 45.127.255.255 { 0x2d800000, 0x2d81e3ff, REGISTRY_RIPENCC }, // 45.128.0.0 - 45.129.227.255 { 0x2d81e400, 0x2d81e7ff, REGISTRY_APNIC }, // 45.129.228.0 - 45.129.231.255 { 0x2d81e800, 0x2d82a3ff, REGISTRY_RIPENCC }, // 45.129.232.0 - 45.130.163.255 { 0x2d82a400, 0x2d82a7ff, REGISTRY_APNIC }, // 45.130.164.0 - 45.130.167.255 { 0x2d82a800, 0x2d872fff, REGISTRY_RIPENCC }, // 45.130.168.0 - 45.135.47.255 { 0x2d873000, 0x2d8733ff, REGISTRY_APNIC }, // 45.135.48.0 - 45.135.51.255 { 0x2d873400, 0x2d879fff, REGISTRY_RIPENCC }, // 45.135.52.0 - 45.135.159.255 { 0x2d87a000, 0x2d87a3ff, REGISTRY_ARIN }, // 45.135.160.0 - 45.135.163.255 { 0x2d87a400, 0x2d8aa3ff, REGISTRY_RIPENCC }, // 45.135.164.0 - 45.138.163.255 { 0x2d8aa400, 0x2d8aa7ff, REGISTRY_ARIN }, // 45.138.164.0 - 45.138.167.255 { 0x2d8aa800, 0x2d9639ff, REGISTRY_RIPENCC }, // 45.138.168.0 - 45.150.57.255 { 0x2d963a00, 0x2d963bff, REGISTRY_ARIN }, // 45.150.58.0 - 45.150.59.255 { 0x2d963c00, 0x2d9797ff, REGISTRY_RIPENCC }, // 45.150.60.0 - 45.151.151.255 { 0x2d979800, 0x2d979bff, REGISTRY_APNIC }, // 45.151.152.0 - 45.151.155.255 { 0x2d979c00, 0x2d9ad7ff, REGISTRY_RIPENCC }, // 45.151.156.0 - 45.154.215.255 { 0x2d9ad800, 0x2d9ad8ff, REGISTRY_ARIN }, // 45.154.216.0 - 45.154.216.255 { 0x2d9ad900, 0x2d9adaff, REGISTRY_RIPENCC }, // 45.154.217.0 - 45.154.218.255 { 0x2d9adb00, 0x2d9adbff, REGISTRY_ARIN }, // 45.154.219.0 - 45.154.219.255 { 0x2d9adc00, 0x2d9d57ff, REGISTRY_RIPENCC }, // 45.154.220.0 - 45.157.87.255 { 0x2d9d5800, 0x2d9d5bff, REGISTRY_APNIC }, // 45.157.88.0 - 45.157.91.255 { 0x2d9d5c00, 0x2d9da7ff, REGISTRY_RIPENCC }, // 45.157.92.0 - 45.157.167.255 { 0x2d9da800, 0x2d9dabff, REGISTRY_APNIC }, // 45.157.168.0 - 45.157.171.255 { 0x2d9dac00, 0x2d9fffff, REGISTRY_RIPENCC }, // 45.157.172.0 - 45.159.255.255 { 0x2da00000, 0x2db54dff, REGISTRY_LACNIC }, // 45.160.0.0 - 45.181.77.255 { 0x2db54e00, 0x2db54fff, REGISTRY_RIPENCC }, // 45.181.78.0 - 45.181.79.255 { 0x2db55000, 0x2db703ff, REGISTRY_LACNIC }, // 45.181.80.0 - 45.183.3.255 { 0x2db70400, 0x2db707ff, REGISTRY_RIPENCC }, // 45.183.4.0 - 45.183.7.255 { 0x2db70800, 0x2dbfa3ff, REGISTRY_LACNIC }, // 45.183.8.0 - 45.191.163.255 { 0x2dbfa400, 0x2dbfa7ff, REGISTRY_RIPENCC }, // 45.191.164.0 - 45.191.167.255 { 0x2dbfa800, 0x2dbfffff, REGISTRY_LACNIC }, // 45.191.168.0 - 45.191.255.255 { 0x2dc00000, 0x2ddc1fff, REGISTRY_AFRINIC }, // 45.192.0.0 - 45.220.31.255 { 0x2ddc3000, 0x2ddc31ff, REGISTRY_AFRINIC }, // 45.220.48.0 - 45.220.49.255 { 0x2ddc3400, 0x2ddc3fff, REGISTRY_AFRINIC }, // 45.220.52.0 - 45.220.63.255 { 0x2ddc8000, 0x2ddd13ff, REGISTRY_AFRINIC }, // 45.220.128.0 - 45.221.19.255 { 0x2ddd1800, 0x2ddd1bff, REGISTRY_AFRINIC }, // 45.221.24.0 - 45.221.27.255 { 0x2ddd2000, 0x2ddeffff, REGISTRY_AFRINIC }, // 45.221.32.0 - 45.222.255.255 { 0x2ddf0000, 0x2ddfffff, REGISTRY_ARIN }, // 45.223.0.0 - 45.223.255.255 { 0x2de00000, 0x2de197ff, REGISTRY_LACNIC }, // 45.224.0.0 - 45.225.151.255 { 0x2de19a00, 0x2de1f9ff, REGISTRY_LACNIC }, // 45.225.154.0 - 45.225.249.255 { 0x2de1fc00, 0x2de60bff, REGISTRY_LACNIC }, // 45.225.252.0 - 45.230.11.255 { 0x2de60c00, 0x2de60fff, REGISTRY_RIPENCC }, // 45.230.12.0 - 45.230.15.255 { 0x2de61000, 0x2de7cdff, REGISTRY_LACNIC }, // 45.230.16.0 - 45.231.205.255 { 0x2de7ce00, 0x2de7cfff, REGISTRY_RIPENCC }, // 45.231.206.0 - 45.231.207.255 { 0x2de7d000, 0x2def67ff, REGISTRY_LACNIC }, // 45.231.208.0 - 45.239.103.255 { 0x2def6900, 0x2def6aff, REGISTRY_LACNIC }, // 45.239.105.0 - 45.239.106.255 { 0x2def6c00, 0x2defffff, REGISTRY_LACNIC }, // 45.239.108.0 - 45.239.255.255 { 0x2df00000, 0x2df7ffff, REGISTRY_AFRINIC }, // 45.240.0.0 - 45.247.255.255 { 0x2df80000, 0x2df86fff, REGISTRY_APNIC }, // 45.248.0.0 - 45.248.111.255 { 0x2df87800, 0x2df87bff, REGISTRY_APNIC }, // 45.248.120.0 - 45.248.123.255 { 0x2df87c00, 0x2df87fff, REGISTRY_ARIN }, // 45.248.124.0 - 45.248.127.255 { 0x2df88000, 0x2df88fff, REGISTRY_APNIC }, // 45.248.128.0 - 45.248.143.255 { 0x2df89000, 0x2df893ff, REGISTRY_RIPENCC }, // 45.248.144.0 - 45.248.147.255 { 0x2df89400, 0x2df8afff, REGISTRY_APNIC }, // 45.248.148.0 - 45.248.175.255 { 0x2df8b400, 0x2df8b7ff, REGISTRY_APNIC }, // 45.248.180.0 - 45.248.183.255 { 0x2df8bc00, 0x2df93bff, REGISTRY_APNIC }, // 45.248.188.0 - 45.249.59.255 { 0x2df94000, 0x2df97fff, REGISTRY_APNIC }, // 45.249.64.0 - 45.249.127.255 { 0x2df98400, 0x2df98bff, REGISTRY_APNIC }, // 45.249.132.0 - 45.249.139.255 { 0x2df99000, 0x2df9abff, REGISTRY_APNIC }, // 45.249.144.0 - 45.249.171.255 { 0x2df9b800, 0x2df9dfff, REGISTRY_APNIC }, // 45.249.184.0 - 45.249.223.255 { 0x2df9e800, 0x2dfa17ff, REGISTRY_APNIC }, // 45.249.232.0 - 45.250.23.255 { 0x2dfa1800, 0x2dfa1bff, REGISTRY_RIPENCC }, // 45.250.24.0 - 45.250.27.255 { 0x2dfa1c00, 0x2dfa3fff, REGISTRY_APNIC }, // 45.250.28.0 - 45.250.63.255 { 0x2dfa4000, 0x2dfa43ff, REGISTRY_RIPENCC }, // 45.250.64.0 - 45.250.67.255 { 0x2dfa4400, 0x2dfafbff, REGISTRY_APNIC }, // 45.250.68.0 - 45.250.251.255 { 0x2dfafc00, 0x2dfaffff, REGISTRY_ARIN }, // 45.250.252.0 - 45.250.255.255 { 0x2dfb0000, 0x2dfb3bff, REGISTRY_APNIC }, // 45.251.0.0 - 45.251.59.255 { 0x2dfb3c00, 0x2dfb3fff, REGISTRY_RIPENCC }, // 45.251.60.0 - 45.251.63.255 { 0x2dfb4000, 0x2dfbf7ff, REGISTRY_APNIC }, // 45.251.64.0 - 45.251.247.255 { 0x2dfbfc00, 0x2dfc3bff, REGISTRY_APNIC }, // 45.251.252.0 - 45.252.59.255 { 0x2dfc4000, 0x2dfcebff, REGISTRY_APNIC }, // 45.252.64.0 - 45.252.235.255 { 0x2dfcec00, 0x2dfcefff, REGISTRY_RIPENCC }, // 45.252.236.0 - 45.252.239.255 { 0x2dfcf000, 0x2dfe2bff, REGISTRY_APNIC }, // 45.252.240.0 - 45.254.43.255 { 0x2dfe3000, 0x2dfee7ff, REGISTRY_APNIC }, // 45.254.48.0 - 45.254.231.255 { 0x2dfeec00, 0x2dffffff, REGISTRY_APNIC }, // 45.254.236.0 - 45.255.255.255 { 0x2e000000, 0x2e6dffff, REGISTRY_RIPENCC }, // 46.0.0.0 - 46.109.255.255 { 0x2e6e0000, 0x2e6effff, REGISTRY_ARIN }, // 46.110.0.0 - 46.110.255.255 { 0x2e6f0000, 0x2e940fff, REGISTRY_RIPENCC }, // 46.111.0.0 - 46.148.15.255 { 0x2e941000, 0x2e946fff, REGISTRY_RIPENCC }, // 46.148.16.0 - 46.148.111.255 { 0x2e947000, 0x2e947fff, REGISTRY_RIPENCC }, // 46.148.112.0 - 46.148.127.255 { 0x2e948000, 0x2e94dfff, REGISTRY_RIPENCC }, // 46.148.128.0 - 46.148.223.255 { 0x2e94e000, 0x2e950fff, REGISTRY_RIPENCC }, // 46.148.224.0 - 46.149.15.255 { 0x2e951000, 0x2e951fff, REGISTRY_ARIN }, // 46.149.16.0 - 46.149.31.255 { 0x2e952000, 0x2e9547ff, REGISTRY_RIPENCC }, // 46.149.32.0 - 46.149.71.255 { 0x2e954800, 0x2e954fff, REGISTRY_RIPENCC }, // 46.149.72.0 - 46.149.79.255 { 0x2e955000, 0x2e955fff, REGISTRY_RIPENCC }, // 46.149.80.0 - 46.149.95.255 { 0x2e956000, 0x2e956fff, REGISTRY_RIPENCC }, // 46.149.96.0 - 46.149.111.255 { 0x2e957000, 0x2e959fff, REGISTRY_RIPENCC }, // 46.149.112.0 - 46.149.159.255 { 0x2e95a000, 0x2e95afff, REGISTRY_RIPENCC }, // 46.149.160.0 - 46.149.175.255 { 0x2e95b000, 0x2e95bfff, REGISTRY_RIPENCC }, // 46.149.176.0 - 46.149.191.255 { 0x2e95c000, 0x2e95cfff, REGISTRY_APNIC }, // 46.149.192.0 - 46.149.207.255 { 0x2e95d000, 0x2e95dfff, REGISTRY_RIPENCC }, // 46.149.208.0 - 46.149.223.255 { 0x2e95e000, 0x2e95efff, REGISTRY_RIPENCC }, // 46.149.224.0 - 46.149.239.255 { 0x2e95f000, 0x2e95ffff, REGISTRY_RIPENCC }, // 46.149.240.0 - 46.149.255.255 { 0x2e960000, 0x2e9717ff, REGISTRY_RIPENCC }, // 46.150.0.0 - 46.151.23.255 { 0x2e971800, 0x2e9727ff, REGISTRY_RIPENCC }, // 46.151.24.0 - 46.151.39.255 { 0x2e972800, 0x2e97c7ff, REGISTRY_RIPENCC }, // 46.151.40.0 - 46.151.199.255 { 0x2e97c800, 0x2e97d7ff, REGISTRY_RIPENCC }, // 46.151.200.0 - 46.151.215.255 { 0x2e97d800, 0x2e97ffff, REGISTRY_RIPENCC }, // 46.151.216.0 - 46.151.255.255 { 0x2e980000, 0x2eac5fff, REGISTRY_RIPENCC }, // 46.152.0.0 - 46.172.95.255 { 0x2eac6000, 0x2eacdfff, REGISTRY_RIPENCC }, // 46.172.96.0 - 46.172.223.255 { 0x2eace000, 0x2eacffff, REGISTRY_RIPENCC }, // 46.172.224.0 - 46.172.255.255 { 0x2ead0000, 0x2eadefff, REGISTRY_RIPENCC }, // 46.173.0.0 - 46.173.239.255 { 0x2eadf000, 0x2eadffff, REGISTRY_RIPENCC }, // 46.173.240.0 - 46.173.255.255 { 0x2eae0000, 0x2eae77ff, REGISTRY_RIPENCC }, // 46.174.0.0 - 46.174.119.255 { 0x2eae7800, 0x2eae7fff, REGISTRY_RIPENCC }, // 46.174.120.0 - 46.174.127.255 { 0x2eae8000, 0x2eae87ff, REGISTRY_RIPENCC }, // 46.174.128.0 - 46.174.135.255 { 0x2eae8800, 0x2eae8fff, REGISTRY_RIPENCC }, // 46.174.136.0 - 46.174.143.255 { 0x2eae9000, 0x2eaec7ff, REGISTRY_RIPENCC }, // 46.174.144.0 - 46.174.199.255 { 0x2eaec800, 0x2eaecfff, REGISTRY_RIPENCC }, // 46.174.200.0 - 46.174.207.255 { 0x2eaed000, 0x2eaf6fff, REGISTRY_RIPENCC }, // 46.174.208.0 - 46.175.111.255 { 0x2eaf7000, 0x2eaf77ff, REGISTRY_RIPENCC }, // 46.175.112.0 - 46.175.119.255 { 0x2eaf7800, 0x2eaf7fff, REGISTRY_RIPENCC }, // 46.175.120.0 - 46.175.127.255 { 0x2eaf8000, 0x2eaf87ff, REGISTRY_RIPENCC }, // 46.175.128.0 - 46.175.135.255 { 0x2eaf8800, 0x2eaf97ff, REGISTRY_RIPENCC }, // 46.175.136.0 - 46.175.151.255 { 0x2eaf9800, 0x2eaf9fff, REGISTRY_RIPENCC }, // 46.175.152.0 - 46.175.159.255 { 0x2eafa000, 0x2eafffff, REGISTRY_RIPENCC }, // 46.175.160.0 - 46.175.255.255 { 0x2eb00000, 0x2ef73fff, REGISTRY_RIPENCC }, // 46.176.0.0 - 46.247.63.255 { 0x2ef74000, 0x2ef74fff, REGISTRY_ARIN }, // 46.247.64.0 - 46.247.79.255 { 0x2ef75000, 0x2efa9fff, REGISTRY_RIPENCC }, // 46.247.80.0 - 46.250.159.255 { 0x2efaa000, 0x2efabfff, REGISTRY_APNIC }, // 46.250.160.0 - 46.250.191.255 { 0x2efac000, 0x2efe57ff, REGISTRY_RIPENCC }, // 46.250.192.0 - 46.254.87.255 { 0x2efe5800, 0x2efe5bff, REGISTRY_ARIN }, // 46.254.88.0 - 46.254.91.255 { 0x2efe5c00, 0x2effffff, REGISTRY_RIPENCC }, // 46.254.92.0 - 46.255.255.255 { 0x2f000000, 0x2f07ffff, REGISTRY_ARIN }, // 47.0.0.0 - 47.7.255.255 { 0x2f080000, 0x2f09ffff, REGISTRY_APNIC }, // 47.8.0.0 - 47.9.255.255 { 0x2f0a0000, 0x2f0affff, REGISTRY_ARIN }, // 47.10.0.0 - 47.10.255.255 { 0x2f0b0000, 0x2f0bffff, REGISTRY_APNIC }, // 47.11.0.0 - 47.11.255.255 { 0x2f0c0000, 0x2f0effff, REGISTRY_ARIN }, // 47.12.0.0 - 47.14.255.255 { 0x2f0f0000, 0x2f0fffff, REGISTRY_APNIC }, // 47.15.0.0 - 47.15.255.255 { 0x2f100000, 0x2f1cffff, REGISTRY_ARIN }, // 47.16.0.0 - 47.28.255.255 { 0x2f1d0000, 0x2f1fffff, REGISTRY_APNIC }, // 47.29.0.0 - 47.31.255.255 { 0x2f200000, 0x2f5bffff, REGISTRY_ARIN }, // 47.32.0.0 - 47.91.255.255 { 0x2f5c0000, 0x2f7fffff, REGISTRY_APNIC }, // 47.92.0.0 - 47.127.255.255 { 0x2f800000, 0x2ff6ffff, REGISTRY_ARIN }, // 47.128.0.0 - 47.246.255.255 { 0x2ff70000, 0x2ff7ffff, REGISTRY_APNIC }, // 47.247.0.0 - 47.247.255.255 { 0x2ff80000, 0x30ffffff, REGISTRY_ARIN }, // 47.248.0.0 - 48.255.255.255 { 0x31000000, 0x310bffff, REGISTRY_APNIC }, // 49.0.0.0 - 49.11.255.255 { 0x310c0000, 0x310dffff, REGISTRY_RIPENCC }, // 49.12.0.0 - 49.13.255.255 { 0x310e0000, 0x318ff7ff, REGISTRY_APNIC }, // 49.14.0.0 - 49.143.247.255 { 0x318ffc00, 0x31d51fff, REGISTRY_APNIC }, // 49.143.252.0 - 49.213.31.255 { 0x31d54000, 0x31ebffff, REGISTRY_APNIC }, // 49.213.64.0 - 49.235.255.255 { 0x31ec0000, 0x31ec3fff, REGISTRY_RIPENCC }, // 49.236.0.0 - 49.236.63.255 { 0x31ec4000, 0x31ffffff, REGISTRY_APNIC }, // 49.236.64.0 - 49.255.255.255 { 0x32000000, 0x32154fff, REGISTRY_ARIN }, // 50.0.0.0 - 50.21.79.255 { 0x32155000, 0x32155fff, REGISTRY_APNIC }, // 50.21.80.0 - 50.21.95.255 { 0x32156000, 0x323bffff, REGISTRY_ARIN }, // 50.21.96.0 - 50.59.255.255 { 0x323c0000, 0x323dffff, REGISTRY_RIPENCC }, // 50.60.0.0 - 50.61.255.255 { 0x323e0000, 0x3276ffff, REGISTRY_ARIN }, // 50.62.0.0 - 50.118.255.255 { 0x32770000, 0x3277ffff, REGISTRY_RIPENCC }, // 50.119.0.0 - 50.119.255.255 { 0x32780000, 0x32ffffff, REGISTRY_ARIN }, // 50.120.0.0 - 50.255.255.255 { 0x33000000, 0x3300ffff, REGISTRY_RIPENCC }, // 51.0.0.0 - 51.0.255.255 { 0x33010000, 0x330fffff, REGISTRY_RIPENCC }, // 51.1.0.0 - 51.15.255.255 { 0x33100000, 0x3311ffff, REGISTRY_RIPENCC }, // 51.16.0.0 - 51.17.255.255 { 0x33120000, 0x331fffff, REGISTRY_RIPENCC }, // 51.18.0.0 - 51.31.255.255 { 0x33200000, 0x3320ffff, REGISTRY_RIPENCC }, // 51.32.0.0 - 51.32.255.255 { 0x33210000, 0x3321ffff, REGISTRY_RIPENCC }, // 51.33.0.0 - 51.33.255.255 { 0x33220000, 0x3323ffff, REGISTRY_RIPENCC }, // 51.34.0.0 - 51.35.255.255 { 0x33240000, 0x3327ffff, REGISTRY_RIPENCC }, // 51.36.0.0 - 51.39.255.255 { 0x33280000, 0x3328ffff, REGISTRY_RIPENCC }, // 51.40.0.0 - 51.40.255.255 { 0x33290000, 0x333bffff, REGISTRY_RIPENCC }, // 51.41.0.0 - 51.59.255.255 { 0x333c0000, 0x333cffff, REGISTRY_RIPENCC }, // 51.60.0.0 - 51.60.255.255 { 0x333d0000, 0x3345ffff, REGISTRY_RIPENCC }, // 51.61.0.0 - 51.69.255.255 { 0x33460000, 0x3346ffff, REGISTRY_RIPENCC }, // 51.70.0.0 - 51.70.255.255 { 0x33470000, 0x3347ffff, REGISTRY_RIPENCC }, // 51.71.0.0 - 51.71.255.255 { 0x33480000, 0x3349ffff, REGISTRY_RIPENCC }, // 51.72.0.0 - 51.73.255.255 { 0x334a0000, 0x334effff, REGISTRY_RIPENCC }, // 51.74.0.0 - 51.78.255.255 { 0x334f0000, 0x334fffff, REGISTRY_ARIN }, // 51.79.0.0 - 51.79.255.255 { 0x33500000, 0x3350ffff, REGISTRY_RIPENCC }, // 51.80.0.0 - 51.80.255.255 { 0x33510000, 0x3351ffff, REGISTRY_ARIN }, // 51.81.0.0 - 51.81.255.255 { 0x33520000, 0x336bffff, REGISTRY_RIPENCC }, // 51.82.0.0 - 51.107.255.255 { 0x336c0000, 0x336cffff, REGISTRY_RIPENCC }, // 51.108.0.0 - 51.108.255.255 { 0x336d0000, 0x336dffff, REGISTRY_RIPENCC }, // 51.109.0.0 - 51.109.255.255 { 0x336e0000, 0x336effff, REGISTRY_RIPENCC }, // 51.110.0.0 - 51.110.255.255 { 0x336f0000, 0x3379ffff, REGISTRY_RIPENCC }, // 51.111.0.0 - 51.121.255.255 { 0x337a0000, 0x337bffff, REGISTRY_RIPENCC }, // 51.122.0.0 - 51.123.255.255 { 0x337c0000, 0x337effff, REGISTRY_RIPENCC }, // 51.124.0.0 - 51.126.255.255 { 0x337f0000, 0x3380ffff, REGISTRY_RIPENCC }, // 51.127.0.0 - 51.128.255.255 { 0x33810000, 0x3395ffff, REGISTRY_RIPENCC }, // 51.129.0.0 - 51.149.255.255 { 0x33960000, 0x3396ffff, REGISTRY_RIPENCC }, // 51.150.0.0 - 51.150.255.255 { 0x33970000, 0x33a0ffff, REGISTRY_RIPENCC }, // 51.151.0.0 - 51.160.255.255 { 0x33a10000, 0x33a1ffff, REGISTRY_ARIN }, // 51.161.0.0 - 51.161.255.255 { 0x33a20000, 0x33a27fff, REGISTRY_APNIC }, // 51.162.0.0 - 51.162.127.255 { 0x33a28000, 0x33a39fff, REGISTRY_RIPENCC }, // 51.162.128.0 - 51.163.159.255 { 0x33a3a000, 0x33a3ffff, REGISTRY_RIPENCC }, // 51.163.160.0 - 51.163.255.255 { 0x33a40000, 0x33aaffff, REGISTRY_RIPENCC }, // 51.164.0.0 - 51.170.255.255 { 0x33ab0000, 0x33abffff, REGISTRY_RIPENCC }, // 51.171.0.0 - 51.171.255.255 { 0x33ac0000, 0x33b2ffff, REGISTRY_RIPENCC }, // 51.172.0.0 - 51.178.255.255 { 0x33b30000, 0x33b37fff, REGISTRY_RIPENCC }, // 51.179.0.0 - 51.179.127.255 { 0x33b38000, 0x33c5ffff, REGISTRY_RIPENCC }, // 51.179.128.0 - 51.197.255.255 { 0x33c60000, 0x33c7ffff, REGISTRY_RIPENCC }, // 51.198.0.0 - 51.199.255.255 { 0x33c80000, 0x33d2ffff, REGISTRY_RIPENCC }, // 51.200.0.0 - 51.210.255.255 { 0x33d30000, 0x33d3ffff, REGISTRY_RIPENCC }, // 51.211.0.0 - 51.211.255.255 { 0x33d40000, 0x33d9ffff, REGISTRY_RIPENCC }, // 51.212.0.0 - 51.217.255.255 { 0x33da0000, 0x33daffff, REGISTRY_RIPENCC }, // 51.218.0.0 - 51.218.255.255 { 0x33db0000, 0x33ddffff, REGISTRY_RIPENCC }, // 51.219.0.0 - 51.221.255.255 { 0x33de0000, 0x33deffff, REGISTRY_ARIN }, // 51.222.0.0 - 51.222.255.255 { 0x33df0000, 0x33dfffff, REGISTRY_RIPENCC }, // 51.223.0.0 - 51.223.255.255 { 0x33e00000, 0x33eaffff, REGISTRY_RIPENCC }, // 51.224.0.0 - 51.234.255.255 { 0x33eb0000, 0x33ebffff, REGISTRY_RIPENCC }, // 51.235.0.0 - 51.235.255.255 { 0x33ec0000, 0x33fbffff, REGISTRY_RIPENCC }, // 51.236.0.0 - 51.251.255.255 { 0x33fc0000, 0x33fdffff, REGISTRY_RIPENCC }, // 51.252.0.0 - 51.253.255.255 { 0x33fe0000, 0x33ffffff, REGISTRY_RIPENCC }, // 51.254.0.0 - 51.255.255.255 { 0x34000000, 0x344fffff, REGISTRY_ARIN }, // 52.0.0.0 - 52.79.255.255 { 0x34500000, 0x3453ffff, REGISTRY_APNIC }, // 52.80.0.0 - 52.83.255.255 { 0x34540000, 0x3480dfff, REGISTRY_ARIN }, // 52.84.0.0 - 52.128.223.255 { 0x3480e000, 0x3480ffff, REGISTRY_APNIC }, // 52.128.224.0 - 52.128.255.255 { 0x34810000, 0x3481ffff, REGISTRY_ARIN }, // 52.129.0.0 - 52.129.255.255 { 0x34820000, 0x3483ffff, REGISTRY_APNIC }, // 52.130.0.0 - 52.131.255.255 { 0x34840000, 0x34903fff, REGISTRY_ARIN }, // 52.132.0.0 - 52.144.63.255 { 0x34904000, 0x34905fff, REGISTRY_RIPENCC }, // 52.144.64.0 - 52.144.95.255 { 0x34906000, 0x34ffffff, REGISTRY_ARIN }, // 52.144.96.0 - 52.255.255.255 { 0x35000000, 0x35ffffff, REGISTRY_RIPENCC }, // 53.0.0.0 - 53.255.255.255 { 0x36000000, 0x3623ffff, REGISTRY_ARIN }, // 54.0.0.0 - 54.35.255.255 { 0x36240000, 0x3626ffff, REGISTRY_RIPENCC }, // 54.36.0.0 - 54.38.255.255 { 0x36270000, 0x36ddffff, REGISTRY_ARIN }, // 54.39.0.0 - 54.221.255.255 { 0x36de0000, 0x36dfffff, REGISTRY_APNIC }, // 54.222.0.0 - 54.223.255.255 { 0x36e00000, 0x38ffffff, REGISTRY_ARIN }, // 54.224.0.0 - 56.255.255.255 { 0x39000000, 0x3940ffff, REGISTRY_RIPENCC }, // 57.0.0.0 - 57.64.255.255 { 0x39410000, 0x3941ffff, REGISTRY_RIPENCC }, // 57.65.0.0 - 57.65.255.255 { 0x39420000, 0x3954ffff, REGISTRY_RIPENCC }, // 57.66.0.0 - 57.84.255.255 { 0x39550000, 0x3955ffff, REGISTRY_RIPENCC }, // 57.85.0.0 - 57.85.255.255 { 0x39560000, 0x395effff, REGISTRY_RIPENCC }, // 57.86.0.0 - 57.94.255.255 { 0x395f0000, 0x395fffff, REGISTRY_RIPENCC }, // 57.95.0.0 - 57.95.255.255 { 0x39600000, 0x3962ffff, REGISTRY_RIPENCC }, // 57.96.0.0 - 57.98.255.255 { 0x39630000, 0x3963ffff, REGISTRY_RIPENCC }, // 57.99.0.0 - 57.99.255.255 { 0x39640000, 0x3964ffff, REGISTRY_RIPENCC }, // 57.100.0.0 - 57.100.255.255 { 0x39650000, 0x3965ffff, REGISTRY_RIPENCC }, // 57.101.0.0 - 57.101.255.255 { 0x39660000, 0x3967ffff, REGISTRY_RIPENCC }, // 57.102.0.0 - 57.103.255.255 { 0x39680000, 0x396fffff, REGISTRY_RIPENCC }, // 57.104.0.0 - 57.111.255.255 { 0x39700000, 0x3983ffff, REGISTRY_RIPENCC }, // 57.112.0.0 - 57.131.255.255 { 0x39840000, 0x3984ffff, REGISTRY_ARIN }, // 57.132.0.0 - 57.132.255.255 { 0x39850000, 0x3985ffff, REGISTRY_RIPENCC }, // 57.133.0.0 - 57.133.255.255 { 0x39860000, 0x3987ffff, REGISTRY_ARIN }, // 57.134.0.0 - 57.135.255.255 { 0x39880000, 0x3989ffff, REGISTRY_RIPENCC }, // 57.136.0.0 - 57.137.255.255 { 0x398a0000, 0x398affff, REGISTRY_ARIN }, // 57.138.0.0 - 57.138.255.255 { 0x398b0000, 0x398bffff, REGISTRY_RIPENCC }, // 57.139.0.0 - 57.139.255.255 { 0x398c0000, 0x398cffff, REGISTRY_ARIN }, // 57.140.0.0 - 57.140.255.255 { 0x398d0000, 0x39afffff, REGISTRY_RIPENCC }, // 57.141.0.0 - 57.175.255.255 { 0x39b00000, 0x39b1ffff, REGISTRY_APNIC }, // 57.176.0.0 - 57.177.255.255 { 0x39b20000, 0x39b3ffff, REGISTRY_RIPENCC }, // 57.178.0.0 - 57.179.255.255 { 0x39b40000, 0x39b7ffff, REGISTRY_ARIN }, // 57.180.0.0 - 57.183.255.255 { 0x39b80000, 0x39c0ffff, REGISTRY_RIPENCC }, // 57.184.0.0 - 57.192.255.255 { 0x39c10000, 0x39c1ffff, REGISTRY_ARIN }, // 57.193.0.0 - 57.193.255.255 { 0x39c20000, 0x39c3ffff, REGISTRY_RIPENCC }, // 57.194.0.0 - 57.195.255.255 { 0x39c40000, 0x39c4ffff, REGISTRY_ARIN }, // 57.196.0.0 - 57.196.255.255 { 0x39c50000, 0x39c5ffff, REGISTRY_RIPENCC }, // 57.197.0.0 - 57.197.255.255 { 0x39c60000, 0x39c6ffff, REGISTRY_ARIN }, // 57.198.0.0 - 57.198.255.255 { 0x39c70000, 0x39c8ffff, REGISTRY_RIPENCC }, // 57.199.0.0 - 57.200.255.255 { 0x39c90000, 0x39c9ffff, REGISTRY_ARIN }, // 57.201.0.0 - 57.201.255.255 { 0x39ca0000, 0x39cbffff, REGISTRY_RIPENCC }, // 57.202.0.0 - 57.203.255.255 { 0x39cc0000, 0x39ccffff, REGISTRY_ARIN }, // 57.204.0.0 - 57.204.255.255 { 0x39cd0000, 0x39cdffff, REGISTRY_RIPENCC }, // 57.205.0.0 - 57.205.255.255 { 0x39ce0000, 0x39ce01ff, REGISTRY_APNIC }, // 57.206.0.0 - 57.206.1.255 { 0x39ce0200, 0x39f7ffff, REGISTRY_RIPENCC }, // 57.206.2.0 - 57.247.255.255 { 0x39f80000, 0x39f8ffff, REGISTRY_ARIN }, // 57.248.0.0 - 57.248.255.255 { 0x39f90000, 0x39ffffff, REGISTRY_RIPENCC }, // 57.249.0.0 - 57.255.255.255 { 0x3a000000, 0x3a540bff, REGISTRY_APNIC }, // 58.0.0.0 - 58.84.11.255 { 0x3a540c00, 0x3a540dff, REGISTRY_LACNIC }, // 58.84.12.0 - 58.84.13.255 { 0x3a540e00, 0x3a617fff, REGISTRY_APNIC }, // 58.84.14.0 - 58.97.127.255 { 0x3a618000, 0x3a6187ff, REGISTRY_RIPENCC }, // 58.97.128.0 - 58.97.135.255 { 0x3a618800, 0x3a61e7ff, REGISTRY_APNIC }, // 58.97.136.0 - 58.97.231.255 { 0x3a61e800, 0x3a61ffff, REGISTRY_RIPENCC }, // 58.97.232.0 - 58.97.255.255 { 0x3a620000, 0x3b9857ff, REGISTRY_APNIC }, // 58.98.0.0 - 59.152.87.255 { 0x3b985800, 0x3b985fff, REGISTRY_RIPENCC }, // 59.152.88.0 - 59.152.95.255 { 0x3b986000, 0x3b987bff, REGISTRY_APNIC }, // 59.152.96.0 - 59.152.123.255 { 0x3b987c00, 0x3b987fff, REGISTRY_RIPENCC }, // 59.152.124.0 - 59.152.127.255 { 0x3b988000, 0x3bbfe7ff, REGISTRY_APNIC }, // 59.152.128.0 - 59.191.231.255 { 0x3bbff000, 0x3d087fff, REGISTRY_APNIC }, // 59.191.240.0 - 61.8.127.255 { 0x3d088000, 0x3d089fff, REGISTRY_RIPENCC }, // 61.8.128.0 - 61.8.159.255 { 0x3d08a000, 0x3d08afff, REGISTRY_APNIC }, // 61.8.160.0 - 61.8.175.255 { 0x3d08b000, 0x3d08bfff, REGISTRY_ARIN }, // 61.8.176.0 - 61.8.191.255 { 0x3d08c000, 0x3d0edfff, REGISTRY_APNIC }, // 61.8.192.0 - 61.14.223.255 { 0x3d0ee000, 0x3d0ee3ff, REGISTRY_RIPENCC }, // 61.14.224.0 - 61.14.227.255 { 0x3d0ee400, 0x3dffffff, REGISTRY_APNIC }, // 61.14.228.0 - 61.255.255.255 { 0x3e000000, 0x3e083fff, REGISTRY_RIPENCC }, // 62.0.0.0 - 62.8.63.255 { 0x3e084000, 0x3e085fff, REGISTRY_AFRINIC }, // 62.8.64.0 - 62.8.95.255 { 0x3e086000, 0x3e0c5fff, REGISTRY_RIPENCC }, // 62.8.96.0 - 62.12.95.255 { 0x3e0c6000, 0x3e0c7fff, REGISTRY_AFRINIC }, // 62.12.96.0 - 62.12.127.255 { 0x3e0c8000, 0x3e185fff, REGISTRY_RIPENCC }, // 62.12.128.0 - 62.24.95.255 { 0x3e186000, 0x3e187fff, REGISTRY_AFRINIC }, // 62.24.96.0 - 62.24.127.255 { 0x3e188000, 0x3e2c5fff, REGISTRY_RIPENCC }, // 62.24.128.0 - 62.44.95.255 { 0x3e2c6000, 0x3e2c7fff, REGISTRY_RIPENCC }, // 62.44.96.0 - 62.44.127.255 { 0x3e2c8000, 0x3e3dbfff, REGISTRY_RIPENCC }, // 62.44.128.0 - 62.61.191.255 { 0x3e3dc000, 0x3e3dffff, REGISTRY_AFRINIC }, // 62.61.192.0 - 62.61.255.255 { 0x3e3e0000, 0x3e441fff, REGISTRY_RIPENCC }, // 62.62.0.0 - 62.68.31.255 { 0x3e442000, 0x3e443fff, REGISTRY_AFRINIC }, // 62.68.32.0 - 62.68.63.255 { 0x3e444000, 0x3e44dfff, REGISTRY_RIPENCC }, // 62.68.64.0 - 62.68.223.255 { 0x3e44e000, 0x3e44ffff, REGISTRY_AFRINIC }, // 62.68.224.0 - 62.68.255.255 { 0x3e450000, 0x3e4e3fff, REGISTRY_RIPENCC }, // 62.69.0.0 - 62.78.63.255 { 0x3e4e4000, 0x3e4e5fff, REGISTRY_RIPENCC }, // 62.78.64.0 - 62.78.95.255 { 0x3e4e6000, 0x3e5f7fff, REGISTRY_RIPENCC }, // 62.78.96.0 - 62.95.127.255 { 0x3e5f8000, 0x3e5fffff, REGISTRY_RIPENCC }, // 62.95.128.0 - 62.95.255.255 { 0x3e600000, 0x3e71ffff, REGISTRY_RIPENCC }, // 62.96.0.0 - 62.113.255.255 { 0x3e720000, 0x3e72ffff, REGISTRY_AFRINIC }, // 62.114.0.0 - 62.114.255.255 { 0x3e730000, 0x3e751fff, REGISTRY_RIPENCC }, // 62.115.0.0 - 62.117.31.255 { 0x3e752000, 0x3e753fff, REGISTRY_AFRINIC }, // 62.117.32.0 - 62.117.63.255 { 0x3e754000, 0x3e7a07ff, REGISTRY_RIPENCC }, // 62.117.64.0 - 62.122.7.255 { 0x3e7a0800, 0x3e7a17ff, REGISTRY_RIPENCC }, // 62.122.8.0 - 62.122.23.255 { 0x3e7a1800, 0x3e7a27ff, REGISTRY_RIPENCC }, // 62.122.24.0 - 62.122.39.255 { 0x3e7a2800, 0x3e7a47ff, REGISTRY_RIPENCC }, // 62.122.40.0 - 62.122.71.255 { 0x3e7a4800, 0x3e7a57ff, REGISTRY_RIPENCC }, // 62.122.72.0 - 62.122.87.255 { 0x3e7a5800, 0x3e7a67ff, REGISTRY_RIPENCC }, // 62.122.88.0 - 62.122.103.255 { 0x3e7a6800, 0x3e7a6fff, REGISTRY_RIPENCC }, // 62.122.104.0 - 62.122.111.255 { 0x3e7a7000, 0x3e7ab7ff, REGISTRY_RIPENCC }, // 62.122.112.0 - 62.122.183.255 { 0x3e7ab800, 0x3e7abfff, REGISTRY_RIPENCC }, // 62.122.184.0 - 62.122.191.255 { 0x3e7ac000, 0x3e7ad7ff, REGISTRY_RIPENCC }, // 62.122.192.0 - 62.122.215.255 { 0x3e7ad800, 0x3e7ae7ff, REGISTRY_RIPENCC }, // 62.122.216.0 - 62.122.231.255 { 0x3e7ae800, 0x3e7affff, REGISTRY_RIPENCC }, // 62.122.232.0 - 62.122.255.255 { 0x3e7b0000, 0x3e86ffff, REGISTRY_RIPENCC }, // 62.123.0.0 - 62.134.255.255 { 0x3e870000, 0x3e877fff, REGISTRY_AFRINIC }, // 62.135.0.0 - 62.135.127.255 { 0x3e878000, 0x3e8affff, REGISTRY_RIPENCC }, // 62.135.128.0 - 62.138.255.255 { 0x3e8b0000, 0x3e8bffff, REGISTRY_AFRINIC }, // 62.139.0.0 - 62.139.255.255 { 0x3e8c0000, 0x3e8c3fff, REGISTRY_RIPENCC }, // 62.140.0.0 - 62.140.63.255 { 0x3e8c4000, 0x3e8c7fff, REGISTRY_AFRINIC }, // 62.140.64.0 - 62.140.127.255 { 0x3e8c8000, 0x3ead1fff, REGISTRY_RIPENCC }, // 62.140.128.0 - 62.173.31.255 { 0x3ead2000, 0x3ead3fff, REGISTRY_AFRINIC }, // 62.173.32.0 - 62.173.63.255 { 0x3ead4000, 0x3eb5ffff, REGISTRY_RIPENCC }, // 62.173.64.0 - 62.181.255.255 { 0x3eb60000, 0x3eb60fff, REGISTRY_RIPENCC }, // 62.182.0.0 - 62.182.15.255 { 0x3eb61000, 0x3eb617ff, REGISTRY_RIPENCC }, // 62.182.16.0 - 62.182.23.255 { 0x3eb61800, 0x3eb61fff, REGISTRY_RIPENCC }, // 62.182.24.0 - 62.182.31.255 { 0x3eb62000, 0x3eb62fff, REGISTRY_RIPENCC }, // 62.182.32.0 - 62.182.47.255 { 0x3eb63000, 0x3eb63fff, REGISTRY_RIPENCC }, // 62.182.48.0 - 62.182.63.255 { 0x3eb64000, 0x3eb647ff, REGISTRY_RIPENCC }, // 62.182.64.0 - 62.182.71.255 { 0x3eb64800, 0x3eb65fff, REGISTRY_RIPENCC }, // 62.182.72.0 - 62.182.95.255 { 0x3eb66000, 0x3eb665ff, REGISTRY_RIPENCC }, // 62.182.96.0 - 62.182.101.255 { 0x3eb66600, 0x3eb67fff, REGISTRY_RIPENCC }, // 62.182.102.0 - 62.182.127.255 { 0x3eb68000, 0x3eb687ff, REGISTRY_RIPENCC }, // 62.182.128.0 - 62.182.135.255 { 0x3eb68800, 0x3eb697ff, REGISTRY_RIPENCC }, // 62.182.136.0 - 62.182.151.255 { 0x3eb69800, 0x3eb69fff, REGISTRY_RIPENCC }, // 62.182.152.0 - 62.182.159.255 { 0x3eb6a000, 0x3eb6a7ff, REGISTRY_RIPENCC }, // 62.182.160.0 - 62.182.167.255 { 0x3eb6a800, 0x3eb6b7ff, REGISTRY_RIPENCC }, // 62.182.168.0 - 62.182.183.255 { 0x3eb6b800, 0x3eb6bfff, REGISTRY_RIPENCC }, // 62.182.184.0 - 62.182.191.255 { 0x3eb6c000, 0x3eb6cfff, REGISTRY_RIPENCC }, // 62.182.192.0 - 62.182.207.255 { 0x3eb6d000, 0x3eb6ffff, REGISTRY_RIPENCC }, // 62.182.208.0 - 62.182.255.255 { 0x3eb70000, 0x3ec13fff, REGISTRY_RIPENCC }, // 62.183.0.0 - 62.193.63.255 { 0x3ec14000, 0x3ec17fff, REGISTRY_AFRINIC }, // 62.193.64.0 - 62.193.127.255 { 0x3ec18000, 0x3ec19fff, REGISTRY_RIPENCC }, // 62.193.128.0 - 62.193.159.255 { 0x3ec1a000, 0x3ec1bfff, REGISTRY_AFRINIC }, // 62.193.160.0 - 62.193.191.255 { 0x3ec1c000, 0x3ee9ffff, REGISTRY_RIPENCC }, // 62.193.192.0 - 62.233.255.255 { 0x3eea0000, 0x3eeaffff, REGISTRY_APNIC }, // 62.234.0.0 - 62.234.255.255 { 0x3eeb0000, 0x3ef01fff, REGISTRY_RIPENCC }, // 62.235.0.0 - 62.240.31.255 { 0x3ef02000, 0x3ef03fff, REGISTRY_AFRINIC }, // 62.240.32.0 - 62.240.63.255 { 0x3ef04000, 0x3ef05fff, REGISTRY_RIPENCC }, // 62.240.64.0 - 62.240.95.255 { 0x3ef06000, 0x3ef07fff, REGISTRY_AFRINIC }, // 62.240.96.0 - 62.240.127.255 { 0x3ef08000, 0x3ef17fff, REGISTRY_RIPENCC }, // 62.240.128.0 - 62.241.127.255 { 0x3ef18000, 0x3ef19fff, REGISTRY_AFRINIC }, // 62.241.128.0 - 62.241.159.255 { 0x3ef1a000, 0x3ef4ffff, REGISTRY_RIPENCC }, // 62.241.160.0 - 62.244.255.255 { 0x3ef50000, 0x3ef51fff, REGISTRY_APNIC }, // 62.245.0.0 - 62.245.31.255 { 0x3ef52000, 0x3efb7fff, REGISTRY_RIPENCC }, // 62.245.32.0 - 62.251.127.255 { 0x3efb8000, 0x3efbffff, REGISTRY_AFRINIC }, // 62.251.128.0 - 62.251.255.255 { 0x3efc0000, 0x3effffff, REGISTRY_RIPENCC }, // 62.252.0.0 - 62.255.255.255 { 0x3f000000, 0x3f8747ff, REGISTRY_ARIN }, // 63.0.0.0 - 63.135.71.255 { 0x3f874800, 0x3f874fff, REGISTRY_RIPENCC }, // 63.135.72.0 - 63.135.79.255 { 0x3f875000, 0x3f8bffff, REGISTRY_ARIN }, // 63.135.80.0 - 63.139.255.255 { 0x3f8c0000, 0x3f8c0fff, REGISTRY_APNIC }, // 63.140.0.0 - 63.140.15.255 { 0x3f8c1000, 0x3f8d21ff, REGISTRY_ARIN }, // 63.140.16.0 - 63.141.33.255 { 0x3f8d2200, 0x3f8d25ff, REGISTRY_RIPENCC }, // 63.141.34.0 - 63.141.37.255 { 0x3f8d2600, 0x3f8dffff, REGISTRY_ARIN }, // 63.141.38.0 - 63.141.255.255 { 0x3f8e0000, 0x3f8e0fff, REGISTRY_RIPENCC }, // 63.142.0.0 - 63.142.15.255 { 0x3f8e1000, 0x3ff67fff, REGISTRY_ARIN }, // 63.142.16.0 - 63.246.127.255 { 0x3ff68000, 0x3ff685ff, REGISTRY_RIPENCC }, // 63.246.128.0 - 63.246.133.255 { 0x3ff68600, 0x3ff687ff, REGISTRY_ARIN }, // 63.246.134.0 - 63.246.135.255 { 0x3ff68800, 0x3ff689ff, REGISTRY_RIPENCC }, // 63.246.136.0 - 63.246.137.255 { 0x3ff68a00, 0x3ff68aff, REGISTRY_ARIN }, // 63.246.138.0 - 63.246.138.255 { 0x3ff68b00, 0x3ff68bff, REGISTRY_RIPENCC }, // 63.246.139.0 - 63.246.139.255 { 0x3ff68c00, 0x3ff68dff, REGISTRY_ARIN }, // 63.246.140.0 - 63.246.141.255 { 0x3ff68e00, 0x3ff68eff, REGISTRY_RIPENCC }, // 63.246.142.0 - 63.246.142.255 { 0x3ff68f00, 0x3ff68fff, REGISTRY_ARIN }, // 63.246.143.0 - 63.246.143.255 { 0x3ff69000, 0x3ff698ff, REGISTRY_RIPENCC }, // 63.246.144.0 - 63.246.152.255 { 0x3ff69900, 0x3ff69bff, REGISTRY_ARIN }, // 63.246.153.0 - 63.246.155.255 { 0x3ff69c00, 0x3ff6bfff, REGISTRY_RIPENCC }, // 63.246.156.0 - 63.246.191.255 { 0x3ff6c000, 0x3ff7bfff, REGISTRY_ARIN }, // 63.246.192.0 - 63.247.191.255 { 0x3ff7c000, 0x3ff7dfff, REGISTRY_RIPENCC }, // 63.247.192.0 - 63.247.223.255 { 0x3ff7e000, 0x3ffa37ff, REGISTRY_ARIN }, // 63.247.224.0 - 63.250.55.255 { 0x3ffa3800, 0x3ffa3fff, REGISTRY_RIPENCC }, // 63.250.56.0 - 63.250.63.255 { 0x3ffa4000, 0x4010bfff, REGISTRY_ARIN }, // 63.250.64.0 - 64.16.191.255 { 0x4010c000, 0x4010dfff, REGISTRY_RIPENCC }, // 64.16.192.0 - 64.16.223.255 { 0x4010e000, 0x401bffff, REGISTRY_ARIN }, // 64.16.224.0 - 64.27.255.255 { 0x401c0000, 0x401c1fff, REGISTRY_RIPENCC }, // 64.28.0.0 - 64.28.31.255 { 0x401c2000, 0x401c7fff, REGISTRY_ARIN }, // 64.28.32.0 - 64.28.127.255 { 0x401c8000, 0x401c8fff, REGISTRY_LACNIC }, // 64.28.128.0 - 64.28.143.255 { 0x401c9000, 0x40203fff, REGISTRY_ARIN }, // 64.28.144.0 - 64.32.63.255 { 0x40204000, 0x40207fff, REGISTRY_LACNIC }, // 64.32.64.0 - 64.32.127.255 { 0x40208000, 0x4020ffff, REGISTRY_ARIN }, // 64.32.128.0 - 64.32.255.255 { 0x40210000, 0x40213fff, REGISTRY_APNIC }, // 64.33.0.0 - 64.33.63.255 { 0x40214000, 0x40265fff, REGISTRY_ARIN }, // 64.33.64.0 - 64.38.95.255 { 0x40266000, 0x40266bff, REGISTRY_RIPENCC }, // 64.38.96.0 - 64.38.107.255 { 0x40266c00, 0x4027e8ff, REGISTRY_ARIN }, // 64.38.108.0 - 64.39.232.255 { 0x4027e900, 0x4027e9ff, REGISTRY_RIPENCC }, // 64.39.233.0 - 64.39.233.255 { 0x4027ea00, 0x4027ebff, REGISTRY_ARIN }, // 64.39.234.0 - 64.39.235.255 { 0x4027ec00, 0x4027ecff, REGISTRY_RIPENCC }, // 64.39.236.0 - 64.39.236.255 { 0x4027ed00, 0x402affff, REGISTRY_ARIN }, // 64.39.237.0 - 64.42.255.255 { 0x402b0000, 0x402bbfff, REGISTRY_RIPENCC }, // 64.43.0.0 - 64.43.191.255 { 0x402bc000, 0x402cffff, REGISTRY_ARIN }, // 64.43.192.0 - 64.44.255.255 { 0x402d0000, 0x402d3fff, REGISTRY_APNIC }, // 64.45.0.0 - 64.45.63.255 { 0x402d4000, 0x4034a3ff, REGISTRY_ARIN }, // 64.45.64.0 - 64.52.163.255 { 0x4034a400, 0x4034a7ff, REGISTRY_RIPENCC }, // 64.52.164.0 - 64.52.167.255 { 0x4034a800, 0x40389fff, REGISTRY_ARIN }, // 64.52.168.0 - 64.56.159.255 { 0x4038a000, 0x4038bfff, REGISTRY_APNIC }, // 64.56.160.0 - 64.56.191.255 { 0x4038c000, 0x40396fff, REGISTRY_ARIN }, // 64.56.192.0 - 64.57.111.255 { 0x40397000, 0x40397fff, REGISTRY_AFRINIC }, // 64.57.112.0 - 64.57.127.255 { 0x40398000, 0x403bcfff, REGISTRY_ARIN }, // 64.57.128.0 - 64.59.207.255 { 0x403bd000, 0x403bdfff, REGISTRY_RIPENCC }, // 64.59.208.0 - 64.59.223.255 { 0x403be000, 0x403f3fff, REGISTRY_ARIN }, // 64.59.224.0 - 64.63.63.255 { 0x403f4000, 0x403f7fff, REGISTRY_APNIC }, // 64.63.64.0 - 64.63.127.255 { 0x403f8000, 0x40413fff, REGISTRY_ARIN }, // 64.63.128.0 - 64.65.63.255 { 0x40414000, 0x40417fff, REGISTRY_RIPENCC }, // 64.65.64.0 - 64.65.127.255 { 0x40418000, 0x406e8fff, REGISTRY_ARIN }, // 64.65.128.0 - 64.110.143.255 { 0x406e9000, 0x406e93ff, REGISTRY_RIPENCC }, // 64.110.144.0 - 64.110.147.255 { 0x406e9400, 0x40770fff, REGISTRY_ARIN }, // 64.110.148.0 - 64.119.15.255 { 0x40771000, 0x40771fff, REGISTRY_APNIC }, // 64.119.16.0 - 64.119.31.255 { 0x40772000, 0x407857ff, REGISTRY_ARIN }, // 64.119.32.0 - 64.120.87.255 { 0x40785800, 0x40785fff, REGISTRY_APNIC }, // 64.120.88.0 - 64.120.95.255 { 0x40786000, 0x40786dff, REGISTRY_ARIN }, // 64.120.96.0 - 64.120.109.255 { 0x40786e00, 0x407879ff, REGISTRY_APNIC }, // 64.120.110.0 - 64.120.121.255 { 0x40787a00, 0x407cbbff, REGISTRY_ARIN }, // 64.120.122.0 - 64.124.187.255 { 0x407cbc00, 0x407cbdff, REGISTRY_APNIC }, // 64.124.188.0 - 64.124.189.255 { 0x407cbe00, 0x407ebfff, REGISTRY_ARIN }, // 64.124.190.0 - 64.126.191.255 { 0x407ec000, 0x407effff, REGISTRY_RIPENCC }, // 64.126.192.0 - 64.126.255.255 { 0x407f0000, 0x407fdfff, REGISTRY_ARIN }, // 64.127.0.0 - 64.127.223.255 { 0x407fe000, 0x407fffff, REGISTRY_APNIC }, // 64.127.224.0 - 64.127.255.255 { 0x40800000, 0x4088ffff, REGISTRY_ARIN }, // 64.128.0.0 - 64.136.255.255 { 0x40890000, 0x40897fff, REGISTRY_RIPENCC }, // 64.137.0.0 - 64.137.127.255 { 0x40898000, 0x4089bfff, REGISTRY_ARIN }, // 64.137.128.0 - 64.137.191.255 { 0x4089c000, 0x4089ffff, REGISTRY_RIPENCC }, // 64.137.192.0 - 64.137.255.255 { 0x408a0000, 0x408c8fff, REGISTRY_ARIN }, // 64.138.0.0 - 64.140.143.255 { 0x408c9000, 0x408c9fff, REGISTRY_APNIC }, // 64.140.144.0 - 64.140.159.255 { 0x408ca000, 0x40bb6bff, REGISTRY_ARIN }, // 64.140.160.0 - 64.187.107.255 { 0x40bb6c00, 0x40bb6cff, REGISTRY_RIPENCC }, // 64.187.108.0 - 64.187.108.255 { 0x40bb6d00, 0x40bbcfff, REGISTRY_ARIN }, // 64.187.109.0 - 64.187.207.255 { 0x40bbd000, 0x40bbd1ff, REGISTRY_RIPENCC }, // 64.187.208.0 - 64.187.209.255 { 0x40bbd200, 0x40bc1fff, REGISTRY_ARIN }, // 64.187.210.0 - 64.188.31.255 { 0x40bc2000, 0x40bc2fff, REGISTRY_APNIC }, // 64.188.32.0 - 64.188.47.255 { 0x40bc3000, 0x40be3dff, REGISTRY_ARIN }, // 64.188.48.0 - 64.190.61.255 { 0x40be3e00, 0x40be3fff, REGISTRY_RIPENCC }, // 64.190.62.0 - 64.190.63.255 { 0x40be4000, 0x40be71ff, REGISTRY_ARIN }, // 64.190.64.0 - 64.190.113.255 { 0x40be7200, 0x40be73ff, REGISTRY_RIPENCC }, // 64.190.114.0 - 64.190.115.255 { 0x40be7400, 0x40be75ff, REGISTRY_ARIN }, // 64.190.116.0 - 64.190.117.255 { 0x40be7600, 0x40be77ff, REGISTRY_RIPENCC }, // 64.190.118.0 - 64.190.119.255 { 0x40be7800, 0x40bea6ff, REGISTRY_ARIN }, // 64.190.120.0 - 64.190.166.255 { 0x40bea700, 0x40bea7ff, REGISTRY_RIPENCC }, // 64.190.167.0 - 64.190.167.255 { 0x40bea800, 0x40beedff, REGISTRY_ARIN }, // 64.190.168.0 - 64.190.237.255 { 0x40beee00, 0x40beefff, REGISTRY_RIPENCC }, // 64.190.238.0 - 64.190.239.255 { 0x40bef000, 0x40befbff, REGISTRY_ARIN }, // 64.190.240.0 - 64.190.251.255 { 0x40befc00, 0x40beffff, REGISTRY_RIPENCC }, // 64.190.252.0 - 64.190.255.255 { 0x40bf0000, 0x40cfcfff, REGISTRY_ARIN }, // 64.191.0.0 - 64.207.207.255 { 0x40cfd000, 0x40cfd7ff, REGISTRY_APNIC }, // 64.207.208.0 - 64.207.215.255 { 0x40cfd800, 0x40e00bff, REGISTRY_ARIN }, // 64.207.216.0 - 64.224.11.255 { 0x40e00c00, 0x40e00fff, REGISTRY_RIPENCC }, // 64.224.12.0 - 64.224.15.255 { 0x40e01000, 0x40e014ff, REGISTRY_ARIN }, // 64.224.16.0 - 64.224.20.255 { 0x40e01500, 0x40e015ff, REGISTRY_APNIC }, // 64.224.21.0 - 64.224.21.255 { 0x40e01600, 0x40e05fff, REGISTRY_ARIN }, // 64.224.22.0 - 64.224.95.255 { 0x40e06000, 0x40e09fff, REGISTRY_APNIC }, // 64.224.96.0 - 64.224.159.255 { 0x40e0a000, 0x40e17fff, REGISTRY_ARIN }, // 64.224.160.0 - 64.225.127.255 { 0x40e18000, 0x40e197ff, REGISTRY_RIPENCC }, // 64.225.128.0 - 64.225.151.255 { 0x40e19800, 0x40e19fff, REGISTRY_ARIN }, // 64.225.152.0 - 64.225.159.255 { 0x40e1a000, 0x40e1dfff, REGISTRY_RIPENCC }, // 64.225.160.0 - 64.225.223.255 { 0x40e1e000, 0x40e1f3ff, REGISTRY_ARIN }, // 64.225.224.0 - 64.225.243.255 { 0x40e1f400, 0x40e1f5ff, REGISTRY_RIPENCC }, // 64.225.244.0 - 64.225.245.255 { 0x40e1f600, 0x40e235ff, REGISTRY_ARIN }, // 64.225.246.0 - 64.226.53.255 { 0x40e23600, 0x40e237ff, REGISTRY_RIPENCC }, // 64.226.54.0 - 64.226.55.255 { 0x40e23800, 0x40e23fff, REGISTRY_APNIC }, // 64.226.56.0 - 64.226.63.255 { 0x40e24000, 0x40e29bff, REGISTRY_ARIN }, // 64.226.64.0 - 64.226.155.255 { 0x40e29c00, 0x40e2bfff, REGISTRY_RIPENCC }, // 64.226.156.0 - 64.226.191.255 { 0x40e2c000, 0x40efebff, REGISTRY_ARIN }, // 64.226.192.0 - 64.239.235.255 { 0x40efec00, 0x40efefff, REGISTRY_RIPENCC }, // 64.239.236.0 - 64.239.239.255 { 0x40eff000, 0x40f63fff, REGISTRY_ARIN }, // 64.239.240.0 - 64.246.63.255 { 0x40f64000, 0x40f643ff, REGISTRY_RIPENCC }, // 64.246.64.0 - 64.246.67.255 { 0x40f64400, 0x40f647ff, REGISTRY_ARIN }, // 64.246.68.0 - 64.246.71.255 { 0x40f64800, 0x40f64fff, REGISTRY_RIPENCC }, // 64.246.72.0 - 64.246.79.255 { 0x40f65000, 0x40f65fff, REGISTRY_APNIC }, // 64.246.80.0 - 64.246.95.255 { 0x40f66000, 0x40fd1fff, REGISTRY_ARIN }, // 64.246.96.0 - 64.253.31.255 { 0x40fd2000, 0x40fd3fff, REGISTRY_RIPENCC }, // 64.253.32.0 - 64.253.63.255 { 0x40fd4000, 0x41126fff, REGISTRY_ARIN }, // 64.253.64.0 - 65.18.111.255 { 0x41127000, 0x41127fff, REGISTRY_APNIC }, // 65.18.112.0 - 65.18.127.255 { 0x41128000, 0x4112bfff, REGISTRY_RIPENCC }, // 65.18.128.0 - 65.18.191.255 { 0x4112c000, 0x4112cfff, REGISTRY_ARIN }, // 65.18.192.0 - 65.18.207.255 { 0x4112d000, 0x4112dfff, REGISTRY_RIPENCC }, // 65.18.208.0 - 65.18.223.255 { 0x4112e000, 0x41147fff, REGISTRY_ARIN }, // 65.18.224.0 - 65.20.127.255 { 0x41148000, 0x4115ffff, REGISTRY_RIPENCC }, // 65.20.128.0 - 65.21.255.255 { 0x41160000, 0x41273fff, REGISTRY_ARIN }, // 65.22.0.0 - 65.39.63.255 { 0x41274000, 0x41275fff, REGISTRY_RIPENCC }, // 65.39.64.0 - 65.39.95.255 { 0x41276000, 0x41577fff, REGISTRY_ARIN }, // 65.39.96.0 - 65.87.127.255 { 0x41578000, 0x4157bfff, REGISTRY_RIPENCC }, // 65.87.128.0 - 65.87.191.255 { 0x4157c000, 0x41633eff, REGISTRY_ARIN }, // 65.87.192.0 - 65.99.62.255 { 0x41633f00, 0x41633fff, REGISTRY_APNIC }, // 65.99.63.0 - 65.99.63.255 { 0x41634000, 0x41637fff, REGISTRY_ARIN }, // 65.99.64.0 - 65.99.127.255 { 0x41638000, 0x4163bfff, REGISTRY_RIPENCC }, // 65.99.128.0 - 65.99.191.255 { 0x4163c000, 0x416bffff, REGISTRY_ARIN }, // 65.99.192.0 - 65.107.255.255 { 0x416c0000, 0x416dffff, REGISTRY_RIPENCC }, // 65.108.0.0 - 65.109.255.255 { 0x416e0000, 0x416effff, REGISTRY_ARIN }, // 65.110.0.0 - 65.110.255.255 { 0x416f0000, 0x416f1fff, REGISTRY_RIPENCC }, // 65.111.0.0 - 65.111.31.255 { 0x416f2000, 0x41b4ffff, REGISTRY_ARIN }, // 65.111.32.0 - 65.180.255.255 { 0x41b50000, 0x41b51fff, REGISTRY_APNIC }, // 65.181.0.0 - 65.181.31.255 { 0x41b52000, 0x41b53fff, REGISTRY_ARIN }, // 65.181.32.0 - 65.181.63.255 { 0x41b54000, 0x41b55fff, REGISTRY_APNIC }, // 65.181.64.0 - 65.181.95.255 { 0x41b56000, 0x41fe3fff, REGISTRY_ARIN }, // 65.181.96.0 - 65.254.63.255 { 0x41fe4000, 0x41fe5fff, REGISTRY_APNIC }, // 65.254.64.0 - 65.254.95.255 { 0x41fe6000, 0x4207ffff, REGISTRY_ARIN }, // 65.254.96.0 - 66.7.255.255 { 0x42080000, 0x42087fff, REGISTRY_AFRINIC }, // 66.8.0.0 - 66.8.127.255 { 0x42088000, 0x42095fff, REGISTRY_ARIN }, // 66.8.128.0 - 66.9.95.255 { 0x42096000, 0x42096fff, REGISTRY_RIPENCC }, // 66.9.96.0 - 66.9.111.255 { 0x42097000, 0x42099fff, REGISTRY_RIPENCC }, // 66.9.112.0 - 66.9.159.255 { 0x4209a000, 0x4209bfff, REGISTRY_ARIN }, // 66.9.160.0 - 66.9.191.255 { 0x4209c000, 0x4209ffff, REGISTRY_RIPENCC }, // 66.9.192.0 - 66.9.255.255 { 0x420a0000, 0x420b2fff, REGISTRY_ARIN }, // 66.10.0.0 - 66.11.47.255 { 0x420b3000, 0x420b3fff, REGISTRY_APNIC }, // 66.11.48.0 - 66.11.63.255 { 0x420b4000, 0x42123fff, REGISTRY_ARIN }, // 66.11.64.0 - 66.18.63.255 { 0x42124000, 0x42125fff, REGISTRY_AFRINIC }, // 66.18.64.0 - 66.18.95.255 { 0x42126000, 0x4216bfff, REGISTRY_ARIN }, // 66.18.96.0 - 66.22.191.255 { 0x4216c000, 0x4216ffff, REGISTRY_RIPENCC }, // 66.22.192.0 - 66.22.255.255 { 0x42170000, 0x42179fff, REGISTRY_ARIN }, // 66.23.0.0 - 66.23.159.255 { 0x4217a000, 0x4217bfff, REGISTRY_APNIC }, // 66.23.160.0 - 66.23.191.255 { 0x4217c000, 0x422a1fff, REGISTRY_ARIN }, // 66.23.192.0 - 66.42.31.255 { 0x422a2000, 0x422a3fff, REGISTRY_APNIC }, // 66.42.32.0 - 66.42.63.255 { 0x422a4000, 0x423bffff, REGISTRY_ARIN }, // 66.42.64.0 - 66.59.255.255 { 0x423c0000, 0x423c3fff, REGISTRY_LACNIC }, // 66.60.0.0 - 66.60.63.255 { 0x423c4000, 0x424f5fff, REGISTRY_ARIN }, // 66.60.64.0 - 66.79.95.255 { 0x424f6000, 0x424f7fff, REGISTRY_RIPENCC }, // 66.79.96.0 - 66.79.127.255 { 0x424f8000, 0x42519fff, REGISTRY_ARIN }, // 66.79.128.0 - 66.81.159.255 { 0x4251a000, 0x4251bfff, REGISTRY_RIPENCC }, // 66.81.160.0 - 66.81.191.255 { 0x4251c000, 0x42543fff, REGISTRY_ARIN }, // 66.81.192.0 - 66.84.63.255 { 0x42544000, 0x42544fff, REGISTRY_RIPENCC }, // 66.84.64.0 - 66.84.79.255 { 0x42545000, 0x4260bfff, REGISTRY_ARIN }, // 66.84.80.0 - 66.96.191.255 { 0x4260c000, 0x4260ffff, REGISTRY_APNIC }, // 66.96.192.0 - 66.96.255.255 { 0x42610000, 0x4261bfff, REGISTRY_ARIN }, // 66.97.0.0 - 66.97.191.255 { 0x4261c000, 0x4261dfff, REGISTRY_RIPENCC }, // 66.97.192.0 - 66.97.223.255 { 0x4261e000, 0x4261ffff, REGISTRY_ARIN }, // 66.97.224.0 - 66.97.255.255 { 0x42620000, 0x42625fff, REGISTRY_LACNIC }, // 66.98.0.0 - 66.98.95.255 { 0x42626000, 0x42767fff, REGISTRY_ARIN }, // 66.98.96.0 - 66.118.127.255 { 0x42768000, 0x4276bfff, REGISTRY_RIPENCC }, // 66.118.128.0 - 66.118.191.255 { 0x4276c000, 0x42801fff, REGISTRY_ARIN }, // 66.118.192.0 - 66.128.31.255 { 0x42802000, 0x42802fff, REGISTRY_LACNIC }, // 66.128.32.0 - 66.128.47.255 { 0x42803000, 0x428484ff, REGISTRY_ARIN }, // 66.128.48.0 - 66.132.132.255 { 0x42848500, 0x428485ff, REGISTRY_RIPENCC }, // 66.132.133.0 - 66.132.133.255 { 0x42848600, 0x42854fff, REGISTRY_ARIN }, // 66.132.134.0 - 66.133.79.255 { 0x42855000, 0x42855fff, REGISTRY_APNIC }, // 66.133.80.0 - 66.133.95.255 { 0x42856000, 0x42b59fff, REGISTRY_ARIN }, // 66.133.96.0 - 66.181.159.255 { 0x42b5a000, 0x42b5bfff, REGISTRY_APNIC }, // 66.181.160.0 - 66.181.191.255 { 0x42b5c000, 0x42bac1ff, REGISTRY_ARIN }, // 66.181.192.0 - 66.186.193.255 { 0x42bac200, 0x42bac3ff, REGISTRY_RIPENCC }, // 66.186.194.0 - 66.186.195.255 { 0x42bac400, 0x42bac5ff, REGISTRY_ARIN }, // 66.186.196.0 - 66.186.197.255 { 0x42bac600, 0x42bac7ff, REGISTRY_RIPENCC }, // 66.186.198.0 - 66.186.199.255 { 0x42bac800, 0x42cb7bff, REGISTRY_ARIN }, // 66.186.200.0 - 66.203.123.255 { 0x42cb7c00, 0x42cb7fff, REGISTRY_RIPENCC }, // 66.203.124.0 - 66.203.127.255 { 0x42cb8000, 0x42cb8fff, REGISTRY_ARIN }, // 66.203.128.0 - 66.203.143.255 { 0x42cb9000, 0x42cb9fff, REGISTRY_APNIC }, // 66.203.144.0 - 66.203.159.255 { 0x42cba000, 0x42cd3fff, REGISTRY_ARIN }, // 66.203.160.0 - 66.205.63.255 { 0x42cd4000, 0x42cd5fff, REGISTRY_RIPENCC }, // 66.205.64.0 - 66.205.95.255 { 0x42cd6000, 0x42d45fff, REGISTRY_ARIN }, // 66.205.96.0 - 66.212.95.255 { 0x42d46000, 0x42d47fff, REGISTRY_RIPENCC }, // 66.212.96.0 - 66.212.127.255 { 0x42d48000, 0x42e3ffff, REGISTRY_ARIN }, // 66.212.128.0 - 66.227.255.255 { 0x42e40000, 0x42e40fff, REGISTRY_APNIC }, // 66.228.0.0 - 66.228.15.255 { 0x42e41000, 0x42e73fff, REGISTRY_ARIN }, // 66.228.16.0 - 66.231.63.255 { 0x42e74000, 0x42e74fff, REGISTRY_LACNIC }, // 66.231.64.0 - 66.231.79.255 { 0x42e75000, 0x42e7ffff, REGISTRY_ARIN }, // 66.231.80.0 - 66.231.255.255 { 0x42e80000, 0x42e80fff, REGISTRY_APNIC }, // 66.232.0.0 - 66.232.15.255 { 0x42e81000, 0x42ea9fff, REGISTRY_ARIN }, // 66.232.16.0 - 66.234.159.255 { 0x42eaa000, 0x42eaafff, REGISTRY_APNIC }, // 66.234.160.0 - 66.234.175.255 { 0x42eab000, 0x42f5bfff, REGISTRY_ARIN }, // 66.234.176.0 - 66.245.191.255 { 0x42f5c000, 0x42f5dfff, REGISTRY_RIPENCC }, // 66.245.192.0 - 66.245.223.255 { 0x42f5e000, 0x42f8cbff, REGISTRY_ARIN }, // 66.245.224.0 - 66.248.203.255 { 0x42f8cc00, 0x42f8cfff, REGISTRY_RIPENCC }, // 66.248.204.0 - 66.248.207.255 { 0x42f8d000, 0x42fb7fff, REGISTRY_ARIN }, // 66.248.208.0 - 66.251.127.255 { 0x42fb8000, 0x42fbbfff, REGISTRY_AFRINIC }, // 66.251.128.0 - 66.251.191.255 { 0x42fbc000, 0x43161fff, REGISTRY_ARIN }, // 66.251.192.0 - 67.22.31.255 { 0x43162000, 0x43163bff, REGISTRY_RIPENCC }, // 67.22.32.0 - 67.22.59.255 { 0x43163c00, 0x433f37ff, REGISTRY_ARIN }, // 67.22.60.0 - 67.63.55.255 { 0x433f3800, 0x433f3fff, REGISTRY_RIPENCC }, // 67.63.56.0 - 67.63.63.255 { 0x433f4000, 0x439e33ff, REGISTRY_ARIN }, // 67.63.64.0 - 67.158.51.255 { 0x439e3400, 0x439e34ff, REGISTRY_APNIC }, // 67.158.52.0 - 67.158.52.255 { 0x439e3500, 0x439e3dff, REGISTRY_ARIN }, // 67.158.53.0 - 67.158.61.255 { 0x439e3e00, 0x439e3eff, REGISTRY_RIPENCC }, // 67.158.62.0 - 67.158.62.255 { 0x439e3f00, 0x439fdfff, REGISTRY_ARIN }, // 67.158.63.0 - 67.159.223.255 { 0x439fe000, 0x439fffff, REGISTRY_LACNIC }, // 67.159.224.0 - 67.159.255.255 { 0x43a00000, 0x43d033ff, REGISTRY_ARIN }, // 67.160.0.0 - 67.208.51.255 { 0x43d03400, 0x43d037ff, REGISTRY_RIPENCC }, // 67.208.52.0 - 67.208.55.255 { 0x43d03800, 0x43d17fff, REGISTRY_ARIN }, // 67.208.56.0 - 67.209.127.255 { 0x43d18000, 0x43d19fff, REGISTRY_RIPENCC }, // 67.209.128.0 - 67.209.159.255 { 0x43d1a000, 0x43d33fff, REGISTRY_ARIN }, // 67.209.160.0 - 67.211.63.255 { 0x43d34000, 0x43d34fff, REGISTRY_APNIC }, // 67.211.64.0 - 67.211.79.255 { 0x43d35000, 0x43d58bff, REGISTRY_ARIN }, // 67.211.80.0 - 67.213.139.255 { 0x43d58c00, 0x43d58fff, REGISTRY_APNIC }, // 67.213.140.0 - 67.213.143.255 { 0x43d59000, 0x43d76fff, REGISTRY_ARIN }, // 67.213.144.0 - 67.215.111.255 { 0x43d77000, 0x43d77fff, REGISTRY_APNIC }, // 67.215.112.0 - 67.215.127.255 { 0x43d78000, 0x43dadfff, REGISTRY_ARIN }, // 67.215.128.0 - 67.218.223.255 { 0x43dae000, 0x43daffff, REGISTRY_RIPENCC }, // 67.218.224.0 - 67.218.255.255 { 0x43db0000, 0x43e7afff, REGISTRY_ARIN }, // 67.219.0.0 - 67.231.175.255 { 0x43e7b000, 0x43e7bfff, REGISTRY_RIPENCC }, // 67.231.176.0 - 67.231.191.255 { 0x43e7c000, 0x4441e3ff, REGISTRY_ARIN }, // 67.231.192.0 - 68.65.227.255 { 0x4441e400, 0x4441efff, REGISTRY_APNIC }, // 68.65.228.0 - 68.65.239.255 { 0x4441f000, 0x4446bfff, REGISTRY_ARIN }, // 68.65.240.0 - 68.70.191.255 { 0x4446c000, 0x4446cfff, REGISTRY_RIPENCC }, // 68.70.192.0 - 68.70.207.255 { 0x4446d000, 0x444effff, REGISTRY_ARIN }, // 68.70.208.0 - 68.78.255.255 { 0x444f0000, 0x444f3fff, REGISTRY_APNIC }, // 68.79.0.0 - 68.79.63.255 { 0x444f4000, 0x4505ffff, REGISTRY_ARIN }, // 68.79.64.0 - 69.5.255.255 { 0x45060000, 0x45063fff, REGISTRY_RIPENCC }, // 69.6.0.0 - 69.6.63.255 { 0x45064000, 0x45064fff, REGISTRY_APNIC }, // 69.6.64.0 - 69.6.79.255 { 0x45065000, 0x451e58ff, REGISTRY_ARIN }, // 69.6.80.0 - 69.30.88.255 { 0x451e5900, 0x451e59ff, REGISTRY_RIPENCC }, // 69.30.89.0 - 69.30.89.255 { 0x451e5a00, 0x453090ff, REGISTRY_ARIN }, // 69.30.90.0 - 69.48.144.255 { 0x45309100, 0x453091ff, REGISTRY_RIPENCC }, // 69.48.145.0 - 69.48.145.255 { 0x45309200, 0x45309eff, REGISTRY_ARIN }, // 69.48.146.0 - 69.48.158.255 { 0x45309f00, 0x45309fff, REGISTRY_RIPENCC }, // 69.48.159.0 - 69.48.159.255 { 0x4530a000, 0x453f3fff, REGISTRY_ARIN }, // 69.48.160.0 - 69.63.63.255 { 0x453f4000, 0x453f4fff, REGISTRY_AFRINIC }, // 69.63.64.0 - 69.63.79.255 { 0x453f5000, 0x45431fff, REGISTRY_ARIN }, // 69.63.80.0 - 69.67.31.255 { 0x45432000, 0x45432fff, REGISTRY_AFRINIC }, // 69.67.32.0 - 69.67.47.255 { 0x45433000, 0x45484fff, REGISTRY_ARIN }, // 69.67.48.0 - 69.72.79.255 { 0x45485000, 0x454857ff, REGISTRY_APNIC }, // 69.72.80.0 - 69.72.87.255 { 0x45485800, 0x455e1fff, REGISTRY_ARIN }, // 69.72.88.0 - 69.94.31.255 { 0x455e2000, 0x455e2fff, REGISTRY_APNIC }, // 69.94.32.0 - 69.94.47.255 { 0x455e3000, 0x455e3fff, REGISTRY_ARIN }, // 69.94.48.0 - 69.94.63.255 { 0x455e4000, 0x455e4fff, REGISTRY_RIPENCC }, // 69.94.64.0 - 69.94.79.255 { 0x455e5000, 0x455e6fff, REGISTRY_APNIC }, // 69.94.80.0 - 69.94.111.255 { 0x455e7000, 0x455e7fff, REGISTRY_RIPENCC }, // 69.94.112.0 - 69.94.127.255 { 0x455e8000, 0x459fffff, REGISTRY_ARIN }, // 69.94.128.0 - 69.159.255.255 { 0x45a00000, 0x45a01fff, REGISTRY_APNIC }, // 69.160.0.0 - 69.160.31.255 { 0x45a02000, 0x45a0a7ff, REGISTRY_ARIN }, // 69.160.32.0 - 69.160.167.255 { 0x45a0a800, 0x45a0afff, REGISTRY_APNIC }, // 69.160.168.0 - 69.160.175.255 { 0x45a0b000, 0x45a1dcff, REGISTRY_ARIN }, // 69.160.176.0 - 69.161.220.255 { 0x45a1dd00, 0x45a1ddff, REGISTRY_APNIC }, // 69.161.221.0 - 69.161.221.255 { 0x45a1de00, 0x45ac3fff, REGISTRY_ARIN }, // 69.161.222.0 - 69.172.63.255 { 0x45ac4000, 0x45ac5fff, REGISTRY_APNIC }, // 69.172.64.0 - 69.172.95.255 { 0x45ac6000, 0x45ac7fff, REGISTRY_RIPENCC }, // 69.172.96.0 - 69.172.127.255 { 0x45ac8000, 0x45c23fff, REGISTRY_ARIN }, // 69.172.128.0 - 69.194.63.255 { 0x45c24000, 0x45c27fff, REGISTRY_RIPENCC }, // 69.194.64.0 - 69.194.127.255 { 0x45c28000, 0x45c29fff, REGISTRY_ARIN }, // 69.194.128.0 - 69.194.159.255 { 0x45c2a000, 0x45c2afff, REGISTRY_APNIC }, // 69.194.160.0 - 69.194.175.255 { 0x45c2b000, 0x45e6bfff, REGISTRY_ARIN }, // 69.194.176.0 - 69.230.191.255 { 0x45e6c000, 0x45e6ffff, REGISTRY_APNIC }, // 69.230.192.0 - 69.230.255.255 { 0x45e70000, 0x45e77fff, REGISTRY_ARIN }, // 69.231.0.0 - 69.231.127.255 { 0x45e78000, 0x45e7bfff, REGISTRY_APNIC }, // 69.231.128.0 - 69.231.191.255 { 0x45e7c000, 0x45eabfff, REGISTRY_ARIN }, // 69.231.192.0 - 69.234.191.255 { 0x45eac000, 0x45eaffff, REGISTRY_APNIC }, // 69.234.192.0 - 69.234.255.255 { 0x45eb0000, 0x45eb7fff, REGISTRY_ARIN }, // 69.235.0.0 - 69.235.127.255 { 0x45eb8000, 0x45ebbfff, REGISTRY_APNIC }, // 69.235.128.0 - 69.235.191.255 { 0x45ebc000, 0x462239ff, REGISTRY_ARIN }, // 69.235.192.0 - 70.34.57.255 { 0x46223a00, 0x46223aff, REGISTRY_APNIC }, // 70.34.58.0 - 70.34.58.255 { 0x46223b00, 0x46223bff, REGISTRY_ARIN }, // 70.34.59.0 - 70.34.59.255 { 0x46223c00, 0x46223eff, REGISTRY_APNIC }, // 70.34.60.0 - 70.34.62.255 { 0x46223f00, 0x4622dfff, REGISTRY_ARIN }, // 70.34.63.0 - 70.34.223.255 { 0x4622e000, 0x4622efff, REGISTRY_RIPENCC }, // 70.34.224.0 - 70.34.239.255 { 0x4622f000, 0x4783bfff, REGISTRY_ARIN }, // 70.34.240.0 - 71.131.191.255 { 0x4783c000, 0x47843fff, REGISTRY_APNIC }, // 71.131.192.0 - 71.132.63.255 { 0x47844000, 0x47883fff, REGISTRY_ARIN }, // 71.132.64.0 - 71.136.63.255 { 0x47884000, 0x47887fff, REGISTRY_APNIC }, // 71.136.64.0 - 71.136.127.255 { 0x47888000, 0x4788ffff, REGISTRY_ARIN }, // 71.136.128.0 - 71.136.255.255 { 0x47890000, 0x47893fff, REGISTRY_APNIC }, // 71.137.0.0 - 71.137.63.255 { 0x47894000, 0x4801dfff, REGISTRY_ARIN }, // 71.137.64.0 - 72.1.223.255 { 0x4801e000, 0x4801efff, REGISTRY_RIPENCC }, // 72.1.224.0 - 72.1.239.255 { 0x4801f000, 0x48097fff, REGISTRY_ARIN }, // 72.1.240.0 - 72.9.127.255 { 0x48098000, 0x48098fff, REGISTRY_APNIC }, // 72.9.128.0 - 72.9.143.255 { 0x48099000, 0x4823f7ff, REGISTRY_ARIN }, // 72.9.144.0 - 72.35.247.255 { 0x4823f800, 0x4823fdff, REGISTRY_APNIC }, // 72.35.248.0 - 72.35.253.255 { 0x4823fe00, 0x482c0fff, REGISTRY_ARIN }, // 72.35.254.0 - 72.44.15.255 { 0x482c1000, 0x482c1fff, REGISTRY_LACNIC }, // 72.44.16.0 - 72.44.31.255 { 0x482c2000, 0x482e99ff, REGISTRY_ARIN }, // 72.44.32.0 - 72.46.153.255 { 0x482e9a00, 0x482e9bff, REGISTRY_RIPENCC }, // 72.46.154.0 - 72.46.155.255 { 0x482e9c00, 0x48feffff, REGISTRY_ARIN }, // 72.46.156.0 - 72.254.255.255 { 0x48ff0000, 0x48ff3fff, REGISTRY_APNIC }, // 72.255.0.0 - 72.255.63.255 { 0x48ff4000, 0x48ffdfff, REGISTRY_ARIN }, // 72.255.64.0 - 72.255.223.255 { 0x48ffe000, 0x48ffffff, REGISTRY_APNIC }, // 72.255.224.0 - 72.255.255.255 { 0x49000000, 0x4a32cfff, REGISTRY_ARIN }, // 73.0.0.0 - 74.50.207.255 { 0x4a32d000, 0x4a32d7ff, REGISTRY_APNIC }, // 74.50.208.0 - 74.50.215.255 { 0x4a32d800, 0x4a3effff, REGISTRY_ARIN }, // 74.50.216.0 - 74.62.255.255 { 0x4a3f0000, 0x4a3f0fff, REGISTRY_RIPENCC }, // 74.63.0.0 - 74.63.15.255 { 0x4a3f1000, 0x4a722fff, REGISTRY_ARIN }, // 74.63.16.0 - 74.114.47.255 { 0x4a723000, 0x4a7233ff, REGISTRY_APNIC }, // 74.114.48.0 - 74.114.51.255 { 0x4a723400, 0x4a72a7ff, REGISTRY_ARIN }, // 74.114.52.0 - 74.114.167.255 { 0x4a72a800, 0x4a72abff, REGISTRY_APNIC }, // 74.114.168.0 - 74.114.171.255 { 0x4a72ac00, 0x4a764fff, REGISTRY_ARIN }, // 74.114.172.0 - 74.118.79.255 { 0x4a765000, 0x4a7653ff, REGISTRY_APNIC }, // 74.118.80.0 - 74.118.83.255 { 0x4a765400, 0x4a77bfff, REGISTRY_ARIN }, // 74.118.84.0 - 74.119.191.255 { 0x4a77c000, 0x4a77c3ff, REGISTRY_RIPENCC }, // 74.119.192.0 - 74.119.195.255 { 0x4a77c400, 0x4a7997ff, REGISTRY_ARIN }, // 74.119.196.0 - 74.121.151.255 { 0x4a799800, 0x4a799fff, REGISTRY_APNIC }, // 74.121.152.0 - 74.121.159.255 { 0x4a79a000, 0x4a7aeeff, REGISTRY_ARIN }, // 74.121.160.0 - 74.122.238.255 { 0x4a7aef00, 0x4a7aefff, REGISTRY_RIPENCC }, // 74.122.239.0 - 74.122.239.255 { 0x4a7af000, 0x4a7eafff, REGISTRY_ARIN }, // 74.122.240.0 - 74.126.175.255 { 0x4a7eb000, 0x4a7ebfff, REGISTRY_RIPENCC }, // 74.126.176.0 - 74.126.191.255 { 0x4a7ec000, 0x4adc0fff, REGISTRY_ARIN }, // 74.126.192.0 - 74.220.15.255 { 0x4adc1000, 0x4adc1fff, REGISTRY_RIPENCC }, // 74.220.16.0 - 74.220.31.255 { 0x4adc2000, 0x4b777fff, REGISTRY_ARIN }, // 74.220.32.0 - 75.119.127.255 { 0x4b778000, 0x4b779fff, REGISTRY_RIPENCC }, // 75.119.128.0 - 75.119.159.255 { 0x4b77a000, 0x4c48ffff, REGISTRY_ARIN }, // 75.119.160.0 - 76.72.255.255 { 0x4c490000, 0x4c497fff, REGISTRY_APNIC }, // 76.73.0.0 - 76.73.127.255 { 0x4c498000, 0x4c4d2fff, REGISTRY_ARIN }, // 76.73.128.0 - 76.77.47.255 { 0x4c4d3000, 0x4c4d3fff, REGISTRY_APNIC }, // 76.77.48.0 - 76.77.63.255 { 0x4c4d4000, 0x4cffffff, REGISTRY_ARIN }, // 76.77.64.0 - 76.255.255.255 { 0x4d000000, 0x4d4fffff, REGISTRY_RIPENCC }, // 77.0.0.0 - 77.79.255.255 { 0x4d500000, 0x4d50ffff, REGISTRY_RIPENCC }, // 77.80.0.0 - 77.80.255.255 { 0x4d510000, 0x4d56ffff, REGISTRY_RIPENCC }, // 77.81.0.0 - 77.86.255.255 { 0x4d570000, 0x4d5777ff, REGISTRY_RIPENCC }, // 77.87.0.0 - 77.87.119.255 { 0x4d577800, 0x4d577fff, REGISTRY_RIPENCC }, // 77.87.120.0 - 77.87.127.255 { 0x4d578000, 0x4d5787ff, REGISTRY_RIPENCC }, // 77.87.128.0 - 77.87.135.255 { 0x4d578800, 0x4d578fff, REGISTRY_RIPENCC }, // 77.87.136.0 - 77.87.143.255 { 0x4d579000, 0x4d57f7ff, REGISTRY_RIPENCC }, // 77.87.144.0 - 77.87.247.255 { 0x4d57f800, 0x4ddbffff, REGISTRY_RIPENCC }, // 77.87.248.0 - 77.219.255.255 { 0x4ddc0000, 0x4ddc1fff, REGISTRY_AFRINIC }, // 77.220.0.0 - 77.220.31.255 { 0x4ddc2000, 0x4e0bffff, REGISTRY_RIPENCC }, // 77.220.32.0 - 78.11.255.255 { 0x4e0c0000, 0x4e0fffff, REGISTRY_ARIN }, // 78.12.0.0 - 78.15.255.255 { 0x4e100000, 0x4e1b7fff, REGISTRY_RIPENCC }, // 78.16.0.0 - 78.27.127.255 { 0x4e1b8000, 0x4e1bffff, REGISTRY_RIPENCC }, // 78.27.128.0 - 78.27.255.255 { 0x4e1c0000, 0x4e1effff, REGISTRY_RIPENCC }, // 78.28.0.0 - 78.30.255.255 { 0x4e1f0000, 0x4e1f27ff, REGISTRY_RIPENCC }, // 78.31.0.0 - 78.31.39.255 { 0x4e1f2800, 0x4e1f2fff, REGISTRY_RIPENCC }, // 78.31.40.0 - 78.31.47.255 { 0x4e1f3000, 0x4e1f47ff, REGISTRY_RIPENCC }, // 78.31.48.0 - 78.31.71.255 { 0x4e1f4800, 0x4e1f4fff, REGISTRY_RIPENCC }, // 78.31.72.0 - 78.31.79.255 { 0x4e1f5000, 0x4e1f67ff, REGISTRY_RIPENCC }, // 78.31.80.0 - 78.31.103.255 { 0x4e1f6800, 0x4e1f6fff, REGISTRY_RIPENCC }, // 78.31.104.0 - 78.31.111.255 { 0x4e1f7000, 0x4e1fa4ff, REGISTRY_RIPENCC }, // 78.31.112.0 - 78.31.164.255 { 0x4e1fa500, 0x4e1fa5ff, REGISTRY_RIPENCC }, // 78.31.165.0 - 78.31.165.255 { 0x4e1fa600, 0x4e1fb7ff, REGISTRY_RIPENCC }, // 78.31.166.0 - 78.31.183.255 { 0x4e1fb800, 0x4e1fc7ff, REGISTRY_RIPENCC }, // 78.31.184.0 - 78.31.199.255 { 0x4e1fc800, 0x4e1fcbff, REGISTRY_RIPENCC }, // 78.31.200.0 - 78.31.203.255 { 0x4e1fcc00, 0x4e1fcfff, REGISTRY_RIPENCC }, // 78.31.204.0 - 78.31.207.255 { 0x4e1fd000, 0x4e1fd2ff, REGISTRY_RIPENCC }, // 78.31.208.0 - 78.31.210.255 { 0x4e1fd300, 0x4e1fd3ff, REGISTRY_RIPENCC }, // 78.31.211.0 - 78.31.211.255 { 0x4e1fd400, 0x4e1fe7ff, REGISTRY_RIPENCC }, // 78.31.212.0 - 78.31.231.255 { 0x4e1fe800, 0x4e1fefff, REGISTRY_RIPENCC }, // 78.31.232.0 - 78.31.239.255 { 0x4e1ff000, 0x4e1ff7ff, REGISTRY_RIPENCC }, // 78.31.240.0 - 78.31.247.255 { 0x4e1ff800, 0x4e89ffff, REGISTRY_RIPENCC }, // 78.31.248.0 - 78.137.255.255 { 0x4e8a0000, 0x4e8a00ff, REGISTRY_ARIN }, // 78.138.0.0 - 78.138.0.255 { 0x4e8a0100, 0x4e8a09ff, REGISTRY_RIPENCC }, // 78.138.1.0 - 78.138.9.255 { 0x4e8a0a00, 0x4e8a0fff, REGISTRY_APNIC }, // 78.138.10.0 - 78.138.15.255 { 0x4e8a1000, 0x4e8a10ff, REGISTRY_RIPENCC }, // 78.138.16.0 - 78.138.16.255 { 0x4e8a1100, 0x4e8a11ff, REGISTRY_ARIN }, // 78.138.17.0 - 78.138.17.255 { 0x4e8a1200, 0x4e8a17ff, REGISTRY_RIPENCC }, // 78.138.18.0 - 78.138.23.255 { 0x4e8a1800, 0x4e8a18ff, REGISTRY_ARIN }, // 78.138.24.0 - 78.138.24.255 { 0x4e8a1900, 0x4e8a1eff, REGISTRY_RIPENCC }, // 78.138.25.0 - 78.138.30.255 { 0x4e8a1f00, 0x4e8a1fff, REGISTRY_ARIN }, // 78.138.31.0 - 78.138.31.255 { 0x4e8a2000, 0x4e8a2dff, REGISTRY_RIPENCC }, // 78.138.32.0 - 78.138.45.255 { 0x4e8a2e00, 0x4e8a2eff, REGISTRY_ARIN }, // 78.138.46.0 - 78.138.46.255 { 0x4e8a2f00, 0x4e8a30ff, REGISTRY_RIPENCC }, // 78.138.47.0 - 78.138.48.255 { 0x4e8a3100, 0x4e8a31ff, REGISTRY_ARIN }, // 78.138.49.0 - 78.138.49.255 { 0x4e8a3200, 0x4e8a32ff, REGISTRY_RIPENCC }, // 78.138.50.0 - 78.138.50.255 { 0x4e8a3300, 0x4e8a33ff, REGISTRY_ARIN }, // 78.138.51.0 - 78.138.51.255 { 0x4e8a3400, 0x4e8ef3ff, REGISTRY_RIPENCC }, // 78.138.52.0 - 78.142.243.255 { 0x4e8ef400, 0x4e8ef7ff, REGISTRY_APNIC }, // 78.142.244.0 - 78.142.247.255 { 0x4e8ef800, 0x4f6e1fff, REGISTRY_RIPENCC }, // 78.142.248.0 - 79.110.31.255 { 0x4f6e2000, 0x4f6e2fff, REGISTRY_RIPENCC }, // 79.110.32.0 - 79.110.47.255 { 0x4f6e3000, 0x4f6e3fff, REGISTRY_RIPENCC }, // 79.110.48.0 - 79.110.63.255 { 0x4f6e4000, 0x4f6e77ff, REGISTRY_RIPENCC }, // 79.110.64.0 - 79.110.119.255 { 0x4f6e7800, 0x4f6e7fff, REGISTRY_RIPENCC }, // 79.110.120.0 - 79.110.127.255 { 0x4f6e8000, 0x4f6e9fff, REGISTRY_RIPENCC }, // 79.110.128.0 - 79.110.159.255 { 0x4f6ea000, 0x4f6eb7ff, REGISTRY_RIPENCC }, // 79.110.160.0 - 79.110.183.255 { 0x4f6eb800, 0x4f6edfff, REGISTRY_RIPENCC }, // 79.110.184.0 - 79.110.223.255 { 0x4f6ee000, 0x4f6eefff, REGISTRY_RIPENCC }, // 79.110.224.0 - 79.110.239.255 { 0x4f6ef000, 0x4f6effff, REGISTRY_RIPENCC }, // 79.110.240.0 - 79.110.255.255 { 0x4f6f0000, 0x4fae1fff, REGISTRY_RIPENCC }, // 79.111.0.0 - 79.174.31.255 { 0x4fae2000, 0x4fae7fff, REGISTRY_RIPENCC }, // 79.174.32.0 - 79.174.127.255 { 0x4fae8000, 0x50437fff, REGISTRY_RIPENCC }, // 79.174.128.0 - 80.67.127.255 { 0x50438000, 0x50438fff, REGISTRY_AFRINIC }, // 80.67.128.0 - 80.67.143.255 { 0x50439000, 0x5044e7ff, REGISTRY_RIPENCC }, // 80.67.144.0 - 80.68.231.255 { 0x5044e800, 0x5044ffff, REGISTRY_RIPENCC }, // 80.68.232.0 - 80.68.255.255 { 0x50450000, 0x50471fff, REGISTRY_RIPENCC }, // 80.69.0.0 - 80.71.31.255 { 0x50472000, 0x50472fff, REGISTRY_ARIN }, // 80.71.32.0 - 80.71.47.255 { 0x50473000, 0x50485fff, REGISTRY_RIPENCC }, // 80.71.48.0 - 80.72.95.255 { 0x50486000, 0x50486fff, REGISTRY_AFRINIC }, // 80.72.96.0 - 80.72.111.255 { 0x50487000, 0x504b9fff, REGISTRY_RIPENCC }, // 80.72.112.0 - 80.75.159.255 { 0x504ba000, 0x504bbfff, REGISTRY_AFRINIC }, // 80.75.160.0 - 80.75.191.255 { 0x504bc000, 0x50560fff, REGISTRY_RIPENCC }, // 80.75.192.0 - 80.86.15.255 { 0x50561000, 0x50561fff, REGISTRY_ARIN }, // 80.86.16.0 - 80.86.31.255 { 0x50562000, 0x50573fff, REGISTRY_RIPENCC }, // 80.86.32.0 - 80.87.63.255 { 0x50574000, 0x50575fff, REGISTRY_AFRINIC }, // 80.87.64.0 - 80.87.95.255 { 0x50576000, 0x5057ffff, REGISTRY_RIPENCC }, // 80.87.96.0 - 80.87.255.255 { 0x50580000, 0x505805ff, REGISTRY_AFRINIC }, // 80.88.0.0 - 80.88.5.255 { 0x50580700, 0x50580fff, REGISTRY_AFRINIC }, // 80.88.7.0 - 80.88.15.255 { 0x50581000, 0x505effff, REGISTRY_RIPENCC }, // 80.88.16.0 - 80.94.255.255 { 0x505f0000, 0x505f0fff, REGISTRY_AFRINIC }, // 80.95.0.0 - 80.95.15.255 { 0x505f1000, 0x50d0bfff, REGISTRY_RIPENCC }, // 80.95.16.0 - 80.208.191.255 { 0x50d0c000, 0x50d0cfff, REGISTRY_APNIC }, // 80.208.192.0 - 80.208.207.255 { 0x50d0d000, 0x50d1efff, REGISTRY_RIPENCC }, // 80.208.208.0 - 80.209.239.255 { 0x50d1f000, 0x50d1f3ff, REGISTRY_ARIN }, // 80.209.240.0 - 80.209.243.255 { 0x50d1f400, 0x50edffff, REGISTRY_RIPENCC }, // 80.209.244.0 - 80.237.255.255 { 0x50ee0000, 0x50ee1fff, REGISTRY_RIPENCC }, // 80.238.0.0 - 80.238.31.255 { 0x50ee2000, 0x50ee5fff, REGISTRY_RIPENCC }, // 80.238.32.0 - 80.238.95.255 { 0x50ee6000, 0x50ee7fff, REGISTRY_RIPENCC }, // 80.238.96.0 - 80.238.127.255 { 0x50ee8000, 0x50eeffff, REGISTRY_APNIC }, // 80.238.128.0 - 80.238.255.255 { 0x50ef0000, 0x50f0bfff, REGISTRY_RIPENCC }, // 80.239.0.0 - 80.240.191.255 { 0x50f0c000, 0x50f0cfff, REGISTRY_AFRINIC }, // 80.240.192.0 - 80.240.207.255 { 0x50f0d000, 0x50f19fff, REGISTRY_RIPENCC }, // 80.240.208.0 - 80.241.159.255 { 0x50f1a000, 0x50f1afff, REGISTRY_ARIN }, // 80.241.160.0 - 80.241.175.255 { 0x50f1b000, 0x50f5ffff, REGISTRY_RIPENCC }, // 80.241.176.0 - 80.245.255.255 { 0x50f60000, 0x50f60fff, REGISTRY_AFRINIC }, // 80.246.0.0 - 80.246.15.255 { 0x50f61000, 0x50f7ffff, REGISTRY_RIPENCC }, // 80.246.16.0 - 80.247.255.255 { 0x50f80000, 0x50f80fff, REGISTRY_AFRINIC }, // 80.248.0.0 - 80.248.15.255 { 0x50f81000, 0x50f83fff, REGISTRY_RIPENCC }, // 80.248.16.0 - 80.248.63.255 { 0x50f84000, 0x50f84fff, REGISTRY_AFRINIC }, // 80.248.64.0 - 80.248.79.255 { 0x50f85000, 0x50f8ffff, REGISTRY_RIPENCC }, // 80.248.80.0 - 80.248.255.255 { 0x50f90000, 0x50f90fff, REGISTRY_APNIC }, // 80.249.0.0 - 80.249.15.255 { 0x50f91000, 0x50f93fff, REGISTRY_RIPENCC }, // 80.249.16.0 - 80.249.63.255 { 0x50f94000, 0x50f94fff, REGISTRY_AFRINIC }, // 80.249.64.0 - 80.249.79.255 { 0x50f95000, 0x50fa1fff, REGISTRY_RIPENCC }, // 80.249.80.0 - 80.250.31.255 { 0x50fa2000, 0x50fa2fff, REGISTRY_AFRINIC }, // 80.250.32.0 - 80.250.47.255 { 0x50fa3000, 0x50fbcfff, REGISTRY_RIPENCC }, // 80.250.48.0 - 80.251.207.255 { 0x50fbd000, 0x50fbdfff, REGISTRY_ARIN }, // 80.251.208.0 - 80.251.223.255 { 0x50fbe000, 0x5103ffff, REGISTRY_RIPENCC }, // 80.251.224.0 - 81.3.255.255 { 0x51044000, 0x5109ffff, REGISTRY_RIPENCC }, // 81.4.64.0 - 81.9.255.255 { 0x510a0000, 0x510a7fff, REGISTRY_AFRINIC }, // 81.10.0.0 - 81.10.127.255 { 0x510a8000, 0x510affff, REGISTRY_RIPENCC }, // 81.10.128.0 - 81.10.255.255 { 0x510b0000, 0x510b7fff, REGISTRY_RIPENCC }, // 81.11.0.0 - 81.11.127.255 { 0x510b8000, 0x5114dfff, REGISTRY_RIPENCC }, // 81.11.128.0 - 81.20.223.255 { 0x5114e000, 0x5114ffff, REGISTRY_RIPENCC }, // 81.20.224.0 - 81.20.255.255 { 0x51150000, 0x51155fff, REGISTRY_RIPENCC }, // 81.21.0.0 - 81.21.95.255 { 0x51156000, 0x51156fff, REGISTRY_AFRINIC }, // 81.21.96.0 - 81.21.111.255 { 0x51157000, 0x51158fff, REGISTRY_RIPENCC }, // 81.21.112.0 - 81.21.143.255 { 0x51159000, 0x51159fff, REGISTRY_ARIN }, // 81.21.144.0 - 81.21.159.255 { 0x5115a000, 0x51163fff, REGISTRY_RIPENCC }, // 81.21.160.0 - 81.22.63.255 { 0x51164000, 0x51165fff, REGISTRY_AFRINIC }, // 81.22.64.0 - 81.22.95.255 { 0x51166000, 0x5117cfff, REGISTRY_RIPENCC }, // 81.22.96.0 - 81.23.207.255 { 0x5117d000, 0x5117dfff, REGISTRY_APNIC }, // 81.23.208.0 - 81.23.223.255 { 0x5117e000, 0x511a3fff, REGISTRY_RIPENCC }, // 81.23.224.0 - 81.26.63.255 { 0x511a4800, 0x511a4fff, REGISTRY_AFRINIC }, // 81.26.72.0 - 81.26.79.255 { 0x511a5000, 0x511c8fff, REGISTRY_RIPENCC }, // 81.26.80.0 - 81.28.143.255 { 0x511c9000, 0x511c9fff, REGISTRY_ARIN }, // 81.28.144.0 - 81.28.159.255 { 0x511ca000, 0x511d5fff, REGISTRY_RIPENCC }, // 81.28.160.0 - 81.29.95.255 { 0x511d6000, 0x511d6fff, REGISTRY_AFRINIC }, // 81.29.96.0 - 81.29.111.255 { 0x511d7000, 0x5143ffff, REGISTRY_RIPENCC }, // 81.29.112.0 - 81.67.255.255 { 0x51440000, 0x5147ffff, REGISTRY_APNIC }, // 81.68.0.0 - 81.71.255.255 { 0x51480000, 0x5157ffff, REGISTRY_RIPENCC }, // 81.72.0.0 - 81.87.255.255 { 0x51580000, 0x51580fff, REGISTRY_RIPENCC }, // 81.88.0.0 - 81.88.15.255 { 0x51581000, 0x515bdfff, REGISTRY_RIPENCC }, // 81.88.16.0 - 81.91.223.255 { 0x515be000, 0x515befff, REGISTRY_AFRINIC }, // 81.91.224.0 - 81.91.239.255 { 0x515bf000, 0x515cf3ff, REGISTRY_RIPENCC }, // 81.91.240.0 - 81.92.243.255 { 0x515cf400, 0x515cf7ff, REGISTRY_ARIN }, // 81.92.244.0 - 81.92.247.255 { 0x515cf800, 0x51a07fff, REGISTRY_RIPENCC }, // 81.92.248.0 - 81.160.127.255 { 0x51a08000, 0x51a0ffff, REGISTRY_RIPENCC }, // 81.160.128.0 - 81.160.255.255 { 0x51a10000, 0x51a10fff, REGISTRY_RIPENCC }, // 81.161.0.0 - 81.161.15.255 { 0x51a11000, 0x51a12fff, REGISTRY_RIPENCC }, // 81.161.16.0 - 81.161.47.255 { 0x51a13000, 0x51a137ff, REGISTRY_RIPENCC }, // 81.161.48.0 - 81.161.55.255 { 0x51a13800, 0x51a14fff, REGISTRY_RIPENCC }, // 81.161.56.0 - 81.161.79.255 { 0x51a15000, 0x51a15fff, REGISTRY_RIPENCC }, // 81.161.80.0 - 81.161.95.255 { 0x51a16000, 0x51a1bfff, REGISTRY_RIPENCC }, // 81.161.96.0 - 81.161.191.255 { 0x51a1c000, 0x51a1cfff, REGISTRY_RIPENCC }, // 81.161.192.0 - 81.161.207.255 { 0x51a1d000, 0x51a1dfff, REGISTRY_RIPENCC }, // 81.161.208.0 - 81.161.223.255 { 0x51a1e000, 0x51a1efff, REGISTRY_RIPENCC }, // 81.161.224.0 - 81.161.239.255 { 0x51a1f000, 0x51a1ffff, REGISTRY_RIPENCC }, // 81.161.240.0 - 81.161.255.255 { 0x51a20000, 0x51a217ff, REGISTRY_RIPENCC }, // 81.162.0.0 - 81.162.23.255 { 0x51a21800, 0x51a235ff, REGISTRY_RIPENCC }, // 81.162.24.0 - 81.162.53.255 { 0x51a23600, 0x51a237ff, REGISTRY_RIPENCC }, // 81.162.54.0 - 81.162.55.255 { 0x51a23800, 0x51a30fff, REGISTRY_RIPENCC }, // 81.162.56.0 - 81.163.15.255 { 0x51a31000, 0x51a31fff, REGISTRY_RIPENCC }, // 81.163.16.0 - 81.163.31.255 { 0x51a32000, 0x51a33fff, REGISTRY_RIPENCC }, // 81.163.32.0 - 81.163.63.255 { 0x51a34000, 0x51a347ff, REGISTRY_RIPENCC }, // 81.163.64.0 - 81.163.71.255 { 0x51a34800, 0x51a35fff, REGISTRY_RIPENCC }, // 81.163.72.0 - 81.163.95.255 { 0x51a36000, 0x51a36fff, REGISTRY_RIPENCC }, // 81.163.96.0 - 81.163.111.255 { 0x51a37000, 0x51a3bfff, REGISTRY_RIPENCC }, // 81.163.112.0 - 81.163.191.255 { 0x51a3c000, 0x51a3c7ff, REGISTRY_RIPENCC }, // 81.163.192.0 - 81.163.199.255 { 0x51a3c800, 0x51a3ffff, REGISTRY_RIPENCC }, // 81.163.200.0 - 81.163.255.255 { 0x51a40000, 0x51b9ffff, REGISTRY_RIPENCC }, // 81.164.0.0 - 81.185.255.255 { 0x51ba0000, 0x51baffff, REGISTRY_RIPENCC }, // 81.186.0.0 - 81.186.255.255 { 0x51bb0000, 0x51bfffff, REGISTRY_RIPENCC }, // 81.187.0.0 - 81.191.255.255 { 0x51c00000, 0x51c0ffff, REGISTRY_AFRINIC }, // 81.192.0.0 - 81.192.255.255 { 0x51c10000, 0x51c723ff, REGISTRY_RIPENCC }, // 81.193.0.0 - 81.199.35.255 { 0x51c72400, 0x51c727ff, REGISTRY_ARIN }, // 81.199.36.0 - 81.199.39.255 { 0x51c72800, 0x51c73fff, REGISTRY_RIPENCC }, // 81.199.40.0 - 81.199.63.255 { 0x51c74000, 0x51c74fff, REGISTRY_ARIN }, // 81.199.64.0 - 81.199.79.255 { 0x51c75000, 0x51c78fff, REGISTRY_RIPENCC }, // 81.199.80.0 - 81.199.143.255 { 0x51c79000, 0x51c791ff, REGISTRY_ARIN }, // 81.199.144.0 - 81.199.145.255 { 0x51c79200, 0x5264b7ff, REGISTRY_RIPENCC }, // 81.199.146.0 - 82.100.183.255 { 0x5264b800, 0x5264bfff, REGISTRY_APNIC }, // 82.100.184.0 - 82.100.191.255 { 0x5264c000, 0x52657fff, REGISTRY_RIPENCC }, // 82.100.192.0 - 82.101.127.255 { 0x52658000, 0x5265bfff, REGISTRY_AFRINIC }, // 82.101.128.0 - 82.101.191.255 { 0x5265c000, 0x5273bfff, REGISTRY_RIPENCC }, // 82.101.192.0 - 82.115.191.255 { 0x5273c000, 0x5273cfff, REGISTRY_RIPENCC }, // 82.115.192.0 - 82.115.207.255 { 0x5273d000, 0x527fffff, REGISTRY_RIPENCC }, // 82.115.208.0 - 82.127.255.255 { 0x52808000, 0x52817fff, REGISTRY_RIPENCC }, // 82.128.128.0 - 82.129.127.255 { 0x52818000, 0x5281ffff, REGISTRY_AFRINIC }, // 82.129.128.0 - 82.129.255.255 { 0x52820000, 0x52827fff, REGISTRY_RIPENCC }, // 82.130.0.0 - 82.130.127.255 { 0x52828000, 0x52973fff, REGISTRY_RIPENCC }, // 82.130.128.0 - 82.151.63.255 { 0x52974000, 0x52975fff, REGISTRY_AFRINIC }, // 82.151.64.0 - 82.151.95.255 { 0x52976000, 0x529bffff, REGISTRY_RIPENCC }, // 82.151.96.0 - 82.155.255.255 { 0x529c0000, 0x529dffff, REGISTRY_APNIC }, // 82.156.0.0 - 82.157.255.255 { 0x529e0000, 0x52c97fff, REGISTRY_RIPENCC }, // 82.158.0.0 - 82.201.127.255 { 0x52c98000, 0x52c9ffff, REGISTRY_AFRINIC }, // 82.201.128.0 - 82.201.255.255 { 0x52ca0000, 0x52d3bfff, REGISTRY_RIPENCC }, // 82.202.0.0 - 82.211.191.255 { 0x52d3c000, 0x52d3ffff, REGISTRY_RIPENCC }, // 82.211.192.0 - 82.211.255.255 { 0x52d40000, 0x5360ffff, REGISTRY_RIPENCC }, // 82.212.0.0 - 83.96.255.255 { 0x53610000, 0x53610fff, REGISTRY_RIPENCC }, // 83.97.0.0 - 83.97.15.255 { 0x53611000, 0x536117ff, REGISTRY_RIPENCC }, // 83.97.16.0 - 83.97.23.255 { 0x53611800, 0x536123ff, REGISTRY_RIPENCC }, // 83.97.24.0 - 83.97.35.255 { 0x53612400, 0x536124ff, REGISTRY_RIPENCC }, // 83.97.36.0 - 83.97.36.255 { 0x53612500, 0x536147ff, REGISTRY_RIPENCC }, // 83.97.37.0 - 83.97.71.255 { 0x53614800, 0x53614fff, REGISTRY_RIPENCC }, // 83.97.72.0 - 83.97.79.255 { 0x53615000, 0x53615fff, REGISTRY_RIPENCC }, // 83.97.80.0 - 83.97.95.255 { 0x53616000, 0x536167ff, REGISTRY_RIPENCC }, // 83.97.96.0 - 83.97.103.255 { 0x53616800, 0x53616fff, REGISTRY_RIPENCC }, // 83.97.104.0 - 83.97.111.255 { 0x53617000, 0x536177ff, REGISTRY_RIPENCC }, // 83.97.112.0 - 83.97.119.255 { 0x53617800, 0x53617fff, REGISTRY_RIPENCC }, // 83.97.120.0 - 83.97.127.255 { 0x53618000, 0x5364ffff, REGISTRY_RIPENCC }, // 83.97.128.0 - 83.100.255.255 { 0x53650000, 0x53657fff, REGISTRY_APNIC }, // 83.101.0.0 - 83.101.127.255 { 0x53658000, 0x5375ffff, REGISTRY_RIPENCC }, // 83.101.128.0 - 83.117.255.255 { 0x53760000, 0x53767fff, REGISTRY_APNIC }, // 83.118.0.0 - 83.118.127.255 { 0x53768000, 0x5389c7ff, REGISTRY_RIPENCC }, // 83.118.128.0 - 83.137.199.255 { 0x5389c800, 0x5389cfff, REGISTRY_APNIC }, // 83.137.200.0 - 83.137.207.255 { 0x5389d000, 0x538dffff, REGISTRY_RIPENCC }, // 83.137.208.0 - 83.141.255.255 { 0x538e0000, 0x538e17ff, REGISTRY_RIPENCC }, // 83.142.0.0 - 83.142.23.255 { 0x538e1800, 0x538e1fff, REGISTRY_RIPENCC }, // 83.142.24.0 - 83.142.31.255 { 0x538e2000, 0x538e2fff, REGISTRY_RIPENCC }, // 83.142.32.0 - 83.142.47.255 { 0x538e3000, 0x538e3fff, REGISTRY_RIPENCC }, // 83.142.48.0 - 83.142.63.255 { 0x538e4000, 0x538e8fff, REGISTRY_RIPENCC }, // 83.142.64.0 - 83.142.143.255 { 0x538e9000, 0x538e97ff, REGISTRY_RIPENCC }, // 83.142.144.0 - 83.142.151.255 { 0x538e9800, 0x538ea7ff, REGISTRY_RIPENCC }, // 83.142.152.0 - 83.142.167.255 { 0x538ea800, 0x538eafff, REGISTRY_RIPENCC }, // 83.142.168.0 - 83.142.175.255 { 0x538eb000, 0x538edfff, REGISTRY_RIPENCC }, // 83.142.176.0 - 83.142.223.255 { 0x538ee000, 0x538ee7ff, REGISTRY_RIPENCC }, // 83.142.224.0 - 83.142.231.255 { 0x538ee800, 0x538f17ff, REGISTRY_RIPENCC }, // 83.142.232.0 - 83.143.23.255 { 0x538f1800, 0x538f1fff, REGISTRY_AFRINIC }, // 83.143.24.0 - 83.143.31.255 { 0x538f2000, 0x538f2fff, REGISTRY_RIPENCC }, // 83.143.32.0 - 83.143.47.255 { 0x538f3000, 0x538f37ff, REGISTRY_RIPENCC }, // 83.143.48.0 - 83.143.55.255 { 0x538f3800, 0x538f47ff, REGISTRY_RIPENCC }, // 83.143.56.0 - 83.143.71.255 { 0x538f4800, 0x538f4fff, REGISTRY_RIPENCC }, // 83.143.72.0 - 83.143.79.255 { 0x538f5000, 0x538f67ff, REGISTRY_RIPENCC }, // 83.143.80.0 - 83.143.103.255 { 0x538f6800, 0x538f77ff, REGISTRY_RIPENCC }, // 83.143.104.0 - 83.143.119.255 { 0x538f7800, 0x538fefff, REGISTRY_RIPENCC }, // 83.143.120.0 - 83.143.239.255 { 0x538ff000, 0x538ff7ff, REGISTRY_RIPENCC }, // 83.143.240.0 - 83.143.247.255 { 0x538ff800, 0x538fffff, REGISTRY_RIPENCC }, // 83.143.248.0 - 83.143.255.255 { 0x53900000, 0x5396ffff, REGISTRY_RIPENCC }, // 83.144.0.0 - 83.150.255.255 { 0x53970000, 0x53973fff, REGISTRY_RIPENCC }, // 83.151.0.0 - 83.151.63.255 { 0x53974000, 0x53aaa7ff, REGISTRY_RIPENCC }, // 83.151.64.0 - 83.170.167.255 { 0x53aaa800, 0x53aaafff, REGISTRY_LACNIC }, // 83.170.168.0 - 83.170.175.255 { 0x53aab000, 0x53af7fff, REGISTRY_RIPENCC }, // 83.170.176.0 - 83.175.127.255 { 0x53af8000, 0x53afbfff, REGISTRY_RIPENCC }, // 83.175.128.0 - 83.175.191.255 { 0x53afc000, 0x53e502ff, REGISTRY_RIPENCC }, // 83.175.192.0 - 83.229.2.255 { 0x53e50300, 0x53e503ff, REGISTRY_ARIN }, // 83.229.3.0 - 83.229.3.255 { 0x53e50400, 0x53e504ff, REGISTRY_RIPENCC }, // 83.229.4.0 - 83.229.4.255 { 0x53e50500, 0x53e505ff, REGISTRY_ARIN }, // 83.229.5.0 - 83.229.5.255 { 0x53e50600, 0x53e522ff, REGISTRY_RIPENCC }, // 83.229.6.0 - 83.229.34.255 { 0x53e52300, 0x53e523ff, REGISTRY_ARIN }, // 83.229.35.0 - 83.229.35.255 { 0x53e52400, 0x53e526ff, REGISTRY_RIPENCC }, // 83.229.36.0 - 83.229.38.255 { 0x53e52700, 0x53e527ff, REGISTRY_ARIN }, // 83.229.39.0 - 83.229.39.255 { 0x53e52800, 0x53e52fff, REGISTRY_APNIC }, // 83.229.40.0 - 83.229.47.255 { 0x53e53000, 0x53e533ff, REGISTRY_ARIN }, // 83.229.48.0 - 83.229.51.255 { 0x53e53400, 0x53e542ff, REGISTRY_RIPENCC }, // 83.229.52.0 - 83.229.66.255 { 0x53e54300, 0x53e543ff, REGISTRY_ARIN }, // 83.229.67.0 - 83.229.67.255 { 0x53e54400, 0x53e557ff, REGISTRY_RIPENCC }, // 83.229.68.0 - 83.229.87.255 { 0x53e55800, 0x53e55bff, REGISTRY_ARIN }, // 83.229.88.0 - 83.229.91.255 { 0x53e55c00, 0x53e55fff, REGISTRY_RIPENCC }, // 83.229.92.0 - 83.229.95.255 { 0x53e56000, 0x53e563ff, REGISTRY_ARIN }, // 83.229.96.0 - 83.229.99.255 { 0x53e56400, 0x53e56fff, REGISTRY_RIPENCC }, // 83.229.100.0 - 83.229.111.255 { 0x53e57000, 0x53e570ff, REGISTRY_ARIN }, // 83.229.112.0 - 83.229.112.255 { 0x53e57100, 0x53e572ff, REGISTRY_RIPENCC }, // 83.229.113.0 - 83.229.114.255 { 0x53e57300, 0x53e573ff, REGISTRY_ARIN }, // 83.229.115.0 - 83.229.115.255 { 0x53e57400, 0x53e577ff, REGISTRY_RIPENCC }, // 83.229.116.0 - 83.229.119.255 { 0x53e57800, 0x53e57fff, REGISTRY_APNIC }, // 83.229.120.0 - 83.229.127.255 { 0x53e58000, 0x53f1ffff, REGISTRY_RIPENCC }, // 83.229.128.0 - 83.241.255.255 { 0x53f20000, 0x53f22fff, REGISTRY_RIPENCC }, // 83.242.0.0 - 83.242.47.255 { 0x53f23000, 0x53f23fff, REGISTRY_RIPENCC }, // 83.242.48.0 - 83.242.63.255 { 0x53f24000, 0x53f27fff, REGISTRY_RIPENCC }, // 83.242.64.0 - 83.242.127.255 { 0x53f28000, 0x53f2ffff, REGISTRY_RIPENCC }, // 83.242.128.0 - 83.242.255.255 { 0x53f30000, 0x53f327ff, REGISTRY_RIPENCC }, // 83.243.0.0 - 83.243.39.255 { 0x53f32800, 0x53f32fff, REGISTRY_RIPENCC }, // 83.243.40.0 - 83.243.47.255 { 0x53f33000, 0x53f337ff, REGISTRY_RIPENCC }, // 83.243.48.0 - 83.243.55.255 { 0x53f33800, 0x53f33fff, REGISTRY_RIPENCC }, // 83.243.56.0 - 83.243.63.255 { 0x53f34000, 0x53f347ff, REGISTRY_RIPENCC }, // 83.243.64.0 - 83.243.71.255 { 0x53f34800, 0x53f35fff, REGISTRY_RIPENCC }, // 83.243.72.0 - 83.243.95.255 { 0x53f36000, 0x53f377ff, REGISTRY_RIPENCC }, // 83.243.96.0 - 83.243.119.255 { 0x53f37800, 0x5423ffff, REGISTRY_RIPENCC }, // 83.243.120.0 - 84.35.255.255 { 0x54240000, 0x5424ffff, REGISTRY_AFRINIC }, // 84.36.0.0 - 84.36.255.255 { 0x54250000, 0x5425ffff, REGISTRY_RIPENCC }, // 84.37.0.0 - 84.37.255.255 { 0x54260000, 0x54261fff, REGISTRY_RIPENCC }, // 84.38.0.0 - 84.38.31.255 { 0x54262000, 0x54262fff, REGISTRY_RIPENCC }, // 84.38.32.0 - 84.38.47.255 { 0x54263000, 0x54265fff, REGISTRY_RIPENCC }, // 84.38.48.0 - 84.38.95.255 { 0x54266000, 0x54266fff, REGISTRY_RIPENCC }, // 84.38.96.0 - 84.38.111.255 { 0x54267000, 0x54267fff, REGISTRY_RIPENCC }, // 84.38.112.0 - 84.38.127.255 { 0x54268000, 0x54269fff, REGISTRY_RIPENCC }, // 84.38.128.0 - 84.38.159.255 { 0x5426a000, 0x5426afff, REGISTRY_RIPENCC }, // 84.38.160.0 - 84.38.175.255 { 0x5426b000, 0x5426bfff, REGISTRY_RIPENCC }, // 84.38.176.0 - 84.38.191.255 { 0x5426c000, 0x5426efff, REGISTRY_RIPENCC }, // 84.38.192.0 - 84.38.239.255 { 0x5426f000, 0x54333fff, REGISTRY_RIPENCC }, // 84.38.240.0 - 84.51.63.255 { 0x54334000, 0x54337fff, REGISTRY_RIPENCC }, // 84.51.64.0 - 84.51.127.255 { 0x54338000, 0x54c9bfff, REGISTRY_RIPENCC }, // 84.51.128.0 - 84.201.191.255 { 0x54c9c000, 0x54c9cfff, REGISTRY_RIPENCC }, // 84.201.192.0 - 84.201.207.255 { 0x54c9d000, 0x54c9dfff, REGISTRY_RIPENCC }, // 84.201.208.0 - 84.201.223.255 { 0x54c9e000, 0x54c9efff, REGISTRY_RIPENCC }, // 84.201.224.0 - 84.201.239.255 { 0x54c9f000, 0x54ccffff, REGISTRY_RIPENCC }, // 84.201.240.0 - 84.204.255.255 { 0x54cd0000, 0x54cd5fff, REGISTRY_RIPENCC }, // 84.205.0.0 - 84.205.95.255 { 0x54cd6000, 0x54cd7fff, REGISTRY_AFRINIC }, // 84.205.96.0 - 84.205.127.255 { 0x54cd8000, 0x54cdffff, REGISTRY_RIPENCC }, // 84.205.128.0 - 84.205.255.255 { 0x54ce0000, 0x54e8ffff, REGISTRY_RIPENCC }, // 84.206.0.0 - 84.232.255.255 { 0x54e90000, 0x54e97fff, REGISTRY_AFRINIC }, // 84.233.0.0 - 84.233.127.255 { 0x54e98000, 0x54ea0fff, REGISTRY_RIPENCC }, // 84.233.128.0 - 84.234.15.255 { 0x54ea1000, 0x54ea1fff, REGISTRY_RIPENCC }, // 84.234.16.0 - 84.234.31.255 { 0x54ea2000, 0x54ea2fff, REGISTRY_RIPENCC }, // 84.234.32.0 - 84.234.47.255 { 0x54ea3000, 0x54ea63ff, REGISTRY_RIPENCC }, // 84.234.48.0 - 84.234.99.255 { 0x54ea6400, 0x54ea67ff, REGISTRY_RIPENCC }, // 84.234.100.0 - 84.234.103.255 { 0x54ea6800, 0x54ea7fff, REGISTRY_RIPENCC }, // 84.234.104.0 - 84.234.127.255 { 0x54ea8000, 0x54f701ff, REGISTRY_RIPENCC }, // 84.234.128.0 - 84.247.1.255 { 0x54f70200, 0x54f703ff, REGISTRY_ARIN }, // 84.247.2.0 - 84.247.3.255 { 0x54f70400, 0x551fdfff, REGISTRY_RIPENCC }, // 84.247.4.0 - 85.31.223.255 { 0x551fe000, 0x551fefff, REGISTRY_RIPENCC }, // 85.31.224.0 - 85.31.239.255 { 0x551ff000, 0x557145ff, REGISTRY_RIPENCC }, // 85.31.240.0 - 85.113.69.255 { 0x55714600, 0x557147ff, REGISTRY_APNIC }, // 85.113.70.0 - 85.113.71.255 { 0x55714800, 0x557153ff, REGISTRY_RIPENCC }, // 85.113.72.0 - 85.113.83.255 { 0x55715400, 0x557154ff, REGISTRY_ARIN }, // 85.113.84.0 - 85.113.84.255 { 0x55715500, 0x557155ff, REGISTRY_RIPENCC }, // 85.113.85.0 - 85.113.85.255 { 0x55715600, 0x557157ff, REGISTRY_APNIC }, // 85.113.86.0 - 85.113.87.255 { 0x55715800, 0x557158ff, REGISTRY_ARIN }, // 85.113.88.0 - 85.113.88.255 { 0x55715900, 0x55715bff, REGISTRY_RIPENCC }, // 85.113.89.0 - 85.113.91.255 { 0x55715c00, 0x55715fff, REGISTRY_LACNIC }, // 85.113.92.0 - 85.113.95.255 { 0x55716000, 0x55bbffff, REGISTRY_RIPENCC }, // 85.113.96.0 - 85.187.255.255 { 0x55bc0000, 0x55bcbfff, REGISTRY_RIPENCC }, // 85.188.0.0 - 85.188.191.255 { 0x55bcc000, 0x55c9ffff, REGISTRY_RIPENCC }, // 85.188.192.0 - 85.201.255.255 { 0x55ca0000, 0x55ca2fff, REGISTRY_RIPENCC }, // 85.202.0.0 - 85.202.47.255 { 0x55ca3000, 0x55ca3fff, REGISTRY_RIPENCC }, // 85.202.48.0 - 85.202.63.255 { 0x55ca4000, 0x55ca4fff, REGISTRY_RIPENCC }, // 85.202.64.0 - 85.202.79.255 { 0x55ca5000, 0x55ca5fff, REGISTRY_RIPENCC }, // 85.202.80.0 - 85.202.95.255 { 0x55ca6000, 0x55ca8fff, REGISTRY_RIPENCC }, // 85.202.96.0 - 85.202.143.255 { 0x55ca9000, 0x55caafff, REGISTRY_RIPENCC }, // 85.202.144.0 - 85.202.175.255 { 0x55cab000, 0x55cabfff, REGISTRY_RIPENCC }, // 85.202.176.0 - 85.202.191.255 { 0x55cac000, 0x55cadfff, REGISTRY_RIPENCC }, // 85.202.192.0 - 85.202.223.255 { 0x55cae000, 0x55caffff, REGISTRY_RIPENCC }, // 85.202.224.0 - 85.202.255.255 { 0x55cb0000, 0x55d9d7ff, REGISTRY_RIPENCC }, // 85.203.0.0 - 85.217.215.255 { 0x55d9dc00, 0x55feffff, REGISTRY_RIPENCC }, // 85.217.220.0 - 85.254.255.255 { 0x55ff0000, 0x55ff0fff, REGISTRY_RIPENCC }, // 85.255.0.0 - 85.255.15.255 { 0x55ff1000, 0x55ff1fff, REGISTRY_RIPENCC }, // 85.255.16.0 - 85.255.31.255 { 0x55ff2000, 0x55ff4fff, REGISTRY_RIPENCC }, // 85.255.32.0 - 85.255.79.255 { 0x55ff5000, 0x55ff5fff, REGISTRY_RIPENCC }, // 85.255.80.0 - 85.255.95.255 { 0x55ff6000, 0x55ff6fff, REGISTRY_RIPENCC }, // 85.255.96.0 - 85.255.111.255 { 0x55ff7000, 0x55ff7fff, REGISTRY_RIPENCC }, // 85.255.112.0 - 85.255.127.255 { 0x55ff8000, 0x55ffafff, REGISTRY_RIPENCC }, // 85.255.128.0 - 85.255.175.255 { 0x55ffb000, 0x55ffb7ff, REGISTRY_RIPENCC }, // 85.255.176.0 - 85.255.183.255 { 0x55ffb800, 0x55ffffff, REGISTRY_RIPENCC }, // 85.255.184.0 - 85.255.255.255 { 0x56000000, 0x563f7fff, REGISTRY_RIPENCC }, // 86.0.0.0 - 86.63.127.255 { 0x563f8000, 0x563f9fff, REGISTRY_ARIN }, // 86.63.128.0 - 86.63.159.255 { 0x563fa000, 0x566f35ff, REGISTRY_RIPENCC }, // 86.63.160.0 - 86.111.53.255 { 0x566f3600, 0x566f37ff, REGISTRY_LACNIC }, // 86.111.54.0 - 86.111.55.255 { 0x566f3800, 0x566f3fff, REGISTRY_RIPENCC }, // 86.111.56.0 - 86.111.63.255 { 0x566f4000, 0x566f7fff, REGISTRY_RIPENCC }, // 86.111.64.0 - 86.111.127.255 { 0x566f8000, 0x566fbfff, REGISTRY_RIPENCC }, // 86.111.128.0 - 86.111.191.255 { 0x566fc000, 0x566fcfff, REGISTRY_RIPENCC }, // 86.111.192.0 - 86.111.207.255 { 0x566fd000, 0x566fd7ff, REGISTRY_RIPENCC }, // 86.111.208.0 - 86.111.215.255 { 0x566fd800, 0x566fffff, REGISTRY_RIPENCC }, // 86.111.216.0 - 86.111.255.255 { 0x56700000, 0x574bffff, REGISTRY_RIPENCC }, // 86.112.0.0 - 87.75.255.255 { 0x574c0000, 0x574dffff, REGISTRY_RIPENCC }, // 87.76.0.0 - 87.77.255.255 { 0x574e0000, 0x57635fff, REGISTRY_RIPENCC }, // 87.78.0.0 - 87.99.95.255 { 0x57636000, 0x57637fff, REGISTRY_RIPENCC }, // 87.99.96.0 - 87.99.127.255 { 0x57638000, 0x576507ff, REGISTRY_RIPENCC }, // 87.99.128.0 - 87.101.7.255 { 0x57650800, 0x57652fff, REGISTRY_RIPENCC }, // 87.101.8.0 - 87.101.47.255 { 0x57653000, 0x57653fff, REGISTRY_ARIN }, // 87.101.48.0 - 87.101.63.255 { 0x57654000, 0x57654fff, REGISTRY_RIPENCC }, // 87.101.64.0 - 87.101.79.255 { 0x57655000, 0x57655fff, REGISTRY_RIPENCC }, // 87.101.80.0 - 87.101.95.255 { 0x57656000, 0x57656fff, REGISTRY_APNIC }, // 87.101.96.0 - 87.101.111.255 { 0x57657000, 0x57657fff, REGISTRY_RIPENCC }, // 87.101.112.0 - 87.101.127.255 { 0x57658000, 0x5776ffff, REGISTRY_RIPENCC }, // 87.101.128.0 - 87.118.255.255 { 0x57770000, 0x57773fff, REGISTRY_APNIC }, // 87.119.0.0 - 87.119.63.255 { 0x57774000, 0x577947ff, REGISTRY_RIPENCC }, // 87.119.64.0 - 87.121.71.255 { 0x57794800, 0x57794bff, REGISTRY_APNIC }, // 87.121.72.0 - 87.121.75.255 { 0x57794c00, 0x57795bff, REGISTRY_RIPENCC }, // 87.121.76.0 - 87.121.91.255 { 0x57795c00, 0x57795fff, REGISTRY_APNIC }, // 87.121.92.0 - 87.121.95.255 { 0x57796000, 0x577974ff, REGISTRY_RIPENCC }, // 87.121.96.0 - 87.121.116.255 { 0x57797500, 0x577975ff, REGISTRY_APNIC }, // 87.121.117.0 - 87.121.117.255 { 0x57797600, 0x5779f7ff, REGISTRY_RIPENCC }, // 87.121.118.0 - 87.121.247.255 { 0x5779f800, 0x5779fbff, REGISTRY_APNIC }, // 87.121.248.0 - 87.121.251.255 { 0x5779fc00, 0x57eeffff, REGISTRY_RIPENCC }, // 87.121.252.0 - 87.238.255.255 { 0x57ef0000, 0x57ef0fff, REGISTRY_RIPENCC }, // 87.239.0.0 - 87.239.15.255 { 0x57ef1000, 0x57ef17ff, REGISTRY_RIPENCC }, // 87.239.16.0 - 87.239.23.255 { 0x57ef1800, 0x57ef2fff, REGISTRY_RIPENCC }, // 87.239.24.0 - 87.239.47.255 { 0x57ef3000, 0x57ef3fff, REGISTRY_RIPENCC }, // 87.239.48.0 - 87.239.63.255 { 0x57ef4000, 0x57ef47ff, REGISTRY_RIPENCC }, // 87.239.64.0 - 87.239.71.255 { 0x57ef4800, 0x57ef4fff, REGISTRY_RIPENCC }, // 87.239.72.0 - 87.239.79.255 { 0x57ef5000, 0x57ef5fff, REGISTRY_RIPENCC }, // 87.239.80.0 - 87.239.95.255 { 0x57ef6000, 0x57ef6fff, REGISTRY_RIPENCC }, // 87.239.96.0 - 87.239.111.255 { 0x57ef7000, 0x57ef7fff, REGISTRY_RIPENCC }, // 87.239.112.0 - 87.239.127.255 { 0x57ef8000, 0x57ef87ff, REGISTRY_RIPENCC }, // 87.239.128.0 - 87.239.135.255 { 0x57ef8800, 0x57ef9fff, REGISTRY_RIPENCC }, // 87.239.136.0 - 87.239.159.255 { 0x57efa000, 0x57efa7ff, REGISTRY_RIPENCC }, // 87.239.160.0 - 87.239.167.255 { 0x57efa800, 0x57efc7ff, REGISTRY_RIPENCC }, // 87.239.168.0 - 87.239.199.255 { 0x57efc800, 0x57efcfff, REGISTRY_RIPENCC }, // 87.239.200.0 - 87.239.207.255 { 0x57efd000, 0x57eff7ff, REGISTRY_RIPENCC }, // 87.239.208.0 - 87.239.247.255 { 0x57eff800, 0x57f79fff, REGISTRY_RIPENCC }, // 87.239.248.0 - 87.247.159.255 { 0x57f7a000, 0x57f7a7ff, REGISTRY_APNIC }, // 87.247.160.0 - 87.247.167.255 { 0x57f7a800, 0x57fa9fff, REGISTRY_RIPENCC }, // 87.247.168.0 - 87.250.159.255 { 0x57faa000, 0x57fabfff, REGISTRY_ARIN }, // 87.250.160.0 - 87.250.191.255 { 0x57fac000, 0x57ff5fff, REGISTRY_RIPENCC }, // 87.250.192.0 - 87.255.95.255 { 0x57ff6000, 0x57ff7fff, REGISTRY_AFRINIC }, // 87.255.96.0 - 87.255.127.255 { 0x57ff8000, 0x5886ffff, REGISTRY_RIPENCC }, // 87.255.128.0 - 88.134.255.255 { 0x58870000, 0x588723ff, REGISTRY_RIPENCC }, // 88.135.0.0 - 88.135.35.255 { 0x58872400, 0x588727ff, REGISTRY_RIPENCC }, // 88.135.36.0 - 88.135.39.255 { 0x58872800, 0x58873fff, REGISTRY_RIPENCC }, // 88.135.40.0 - 88.135.63.255 { 0x58874000, 0x58874fff, REGISTRY_RIPENCC }, // 88.135.64.0 - 88.135.79.255 { 0x58875000, 0x5887ffff, REGISTRY_RIPENCC }, // 88.135.80.0 - 88.135.255.255 { 0x58880000, 0x58c4ffff, REGISTRY_RIPENCC }, // 88.136.0.0 - 88.196.255.255 { 0x58c50000, 0x58c5ffff, REGISTRY_RIPENCC }, // 88.197.0.0 - 88.197.255.255 { 0x58c60000, 0x58da22ff, REGISTRY_RIPENCC }, // 88.198.0.0 - 88.218.34.255 { 0x58da2300, 0x58da23ff, REGISTRY_ARIN }, // 88.218.35.0 - 88.218.35.255 { 0x58da2400, 0x5915ffff, REGISTRY_RIPENCC }, // 88.218.36.0 - 89.21.255.255 { 0x59160000, 0x59165fff, REGISTRY_RIPENCC }, // 89.22.0.0 - 89.22.95.255 { 0x59166000, 0x59167fff, REGISTRY_RIPENCC }, // 89.22.96.0 - 89.22.127.255 { 0x59168000, 0x5916bfff, REGISTRY_RIPENCC }, // 89.22.128.0 - 89.22.191.255 { 0x5916c000, 0x5916c7ff, REGISTRY_RIPENCC }, // 89.22.192.0 - 89.22.199.255 { 0x5916c800, 0x5916dfff, REGISTRY_RIPENCC }, // 89.22.200.0 - 89.22.223.255 { 0x5916e000, 0x5916efff, REGISTRY_RIPENCC }, // 89.22.224.0 - 89.22.239.255 { 0x5916f000, 0x59173fff, REGISTRY_RIPENCC }, // 89.22.240.0 - 89.23.63.255 { 0x59174000, 0x59176fff, REGISTRY_RIPENCC }, // 89.23.64.0 - 89.23.111.255 { 0x59177000, 0x59177bff, REGISTRY_RIPENCC }, // 89.23.112.0 - 89.23.123.255 { 0x59178000, 0x5917dfff, REGISTRY_RIPENCC }, // 89.23.128.0 - 89.23.223.255 { 0x5917e000, 0x59235bff, REGISTRY_RIPENCC }, // 89.23.224.0 - 89.35.91.255 { 0x59235c00, 0x59235fff, REGISTRY_ARIN }, // 89.35.92.0 - 89.35.95.255 { 0x59236000, 0x5927c9ff, REGISTRY_RIPENCC }, // 89.35.96.0 - 89.39.201.255 { 0x5927ca00, 0x5927caff, REGISTRY_ARIN }, // 89.39.202.0 - 89.39.202.255 { 0x5927cb00, 0x5929dfff, REGISTRY_RIPENCC }, // 89.39.203.0 - 89.41.223.255 { 0x5929e000, 0x5929efff, REGISTRY_ARIN }, // 89.41.224.0 - 89.41.239.255 { 0x5929f000, 0x599377ff, REGISTRY_RIPENCC }, // 89.41.240.0 - 89.147.119.255 { 0x59937800, 0x59937bff, REGISTRY_APNIC }, // 89.147.120.0 - 89.147.123.255 { 0x59937c00, 0x5996bfff, REGISTRY_RIPENCC }, // 89.147.124.0 - 89.150.191.255 { 0x5996c000, 0x5996ffff, REGISTRY_APNIC }, // 89.150.192.0 - 89.150.255.255 { 0x59970000, 0x59c88fff, REGISTRY_RIPENCC }, // 89.151.0.0 - 89.200.143.255 { 0x59c89000, 0x59c897ff, REGISTRY_RIPENCC }, // 89.200.144.0 - 89.200.151.255 { 0x59c89800, 0x59c89fff, REGISTRY_RIPENCC }, // 89.200.152.0 - 89.200.159.255 { 0x59c8a000, 0x59c8a7ff, REGISTRY_RIPENCC }, // 89.200.160.0 - 89.200.167.255 { 0x59c8a800, 0x59c8afff, REGISTRY_RIPENCC }, // 89.200.168.0 - 89.200.175.255 { 0x59c8b000, 0x59c8d7ff, REGISTRY_RIPENCC }, // 89.200.176.0 - 89.200.215.255 { 0x59c8d800, 0x59c8dfff, REGISTRY_RIPENCC }, // 89.200.216.0 - 89.200.223.255 { 0x59c8e000, 0x59c8e7ff, REGISTRY_RIPENCC }, // 89.200.224.0 - 89.200.231.255 { 0x59c8e800, 0x59c8efff, REGISTRY_RIPENCC }, // 89.200.232.0 - 89.200.239.255 { 0x59c8f000, 0x59c8f5ff, REGISTRY_RIPENCC }, // 89.200.240.0 - 89.200.245.255 { 0x59c8f600, 0x59c8f7ff, REGISTRY_RIPENCC }, // 89.200.246.0 - 89.200.247.255 { 0x59c8f800, 0x59c8ffff, REGISTRY_RIPENCC }, // 89.200.248.0 - 89.200.255.255 { 0x59c90000, 0x59cdffff, REGISTRY_RIPENCC }, // 89.201.0.0 - 89.205.255.255 { 0x59ce0000, 0x59ce7fff, REGISTRY_RIPENCC }, // 89.206.0.0 - 89.206.127.255 { 0x59ce8000, 0x59cf97ff, REGISTRY_RIPENCC }, // 89.206.128.0 - 89.207.151.255 { 0x59cfa000, 0x59cfa3ff, REGISTRY_RIPENCC }, // 89.207.160.0 - 89.207.163.255 { 0x59cfa400, 0x59cfa7ff, REGISTRY_ARIN }, // 89.207.164.0 - 89.207.167.255 { 0x59cfa800, 0x59d033ff, REGISTRY_RIPENCC }, // 89.207.168.0 - 89.208.51.255 { 0x59d03400, 0x59d037ff, REGISTRY_ARIN }, // 89.208.52.0 - 89.208.55.255 { 0x59d03800, 0x59d0b3ff, REGISTRY_RIPENCC }, // 89.208.56.0 - 89.208.179.255 { 0x59d0b400, 0x59d0b7ff, REGISTRY_ARIN }, // 89.208.180.0 - 89.208.183.255 { 0x59d0b800, 0x59d0efff, REGISTRY_RIPENCC }, // 89.208.184.0 - 89.208.239.255 { 0x59d0f000, 0x59d0ffff, REGISTRY_ARIN }, // 89.208.240.0 - 89.208.255.255 { 0x59d10000, 0x59ef2fff, REGISTRY_RIPENCC }, // 89.209.0.0 - 89.239.47.255 { 0x59ef3000, 0x59ef3fff, REGISTRY_ARIN }, // 89.239.48.0 - 89.239.63.255 { 0x59ef4000, 0x5a94ffff, REGISTRY_RIPENCC }, // 89.239.64.0 - 90.148.255.255 { 0x5a950000, 0x5a95ffff, REGISTRY_APNIC }, // 90.149.0.0 - 90.149.255.255 { 0x5a960000, 0x5b59ffff, REGISTRY_RIPENCC }, // 90.150.0.0 - 91.89.255.255 { 0x5b5a0000, 0x5b5a27ff, REGISTRY_RIPENCC }, // 91.90.0.0 - 91.90.39.255 { 0x5b5a2800, 0x5b5a2fff, REGISTRY_RIPENCC }, // 91.90.40.0 - 91.90.47.255 { 0x5b5a3000, 0x5b5a4fff, REGISTRY_RIPENCC }, // 91.90.48.0 - 91.90.79.255 { 0x5b5a5000, 0x5b5a57ff, REGISTRY_RIPENCC }, // 91.90.80.0 - 91.90.87.255 { 0x5b5a5800, 0x5b5a5fff, REGISTRY_RIPENCC }, // 91.90.88.0 - 91.90.95.255 { 0x5b5a6000, 0x5b5a67ff, REGISTRY_RIPENCC }, // 91.90.96.0 - 91.90.103.255 { 0x5b5a6800, 0x5b5a77ff, REGISTRY_RIPENCC }, // 91.90.104.0 - 91.90.119.255 { 0x5b5a7800, 0x5b5a7fff, REGISTRY_RIPENCC }, // 91.90.120.0 - 91.90.127.255 { 0x5b5a8000, 0x5b5abfff, REGISTRY_RIPENCC }, // 91.90.128.0 - 91.90.191.255 { 0x5b5ac000, 0x5b5ac3ff, REGISTRY_RIPENCC }, // 91.90.192.0 - 91.90.195.255 { 0x5b5ac400, 0x5b5adfff, REGISTRY_RIPENCC }, // 91.90.196.0 - 91.90.223.255 { 0x5b5ae000, 0x5b5c25ff, REGISTRY_RIPENCC }, // 91.90.224.0 - 91.92.37.255 { 0x5b5c2600, 0x5b5c27ff, REGISTRY_ARIN }, // 91.92.38.0 - 91.92.39.255 { 0x5b5c2800, 0x5b6adbff, REGISTRY_RIPENCC }, // 91.92.40.0 - 91.106.219.255 { 0x5b6adc00, 0x5b6adfff, REGISTRY_ARIN }, // 91.106.220.0 - 91.106.223.255 { 0x5b6ae000, 0x5b6dd7ff, REGISTRY_RIPENCC }, // 91.106.224.0 - 91.109.215.255 { 0x5b6dd800, 0x5b6dd8ff, REGISTRY_APNIC }, // 91.109.216.0 - 91.109.216.255 { 0x5b6dd900, 0x5b6dd9ff, REGISTRY_RIPENCC }, // 91.109.217.0 - 91.109.217.255 { 0x5b6dda00, 0x5b6ddaff, REGISTRY_APNIC }, // 91.109.218.0 - 91.109.218.255 { 0x5b6ddb00, 0x5b7b0fff, REGISTRY_RIPENCC }, // 91.109.219.0 - 91.123.15.255 { 0x5b7b1000, 0x5b7b3fff, REGISTRY_RIPENCC }, // 91.123.16.0 - 91.123.63.255 { 0x5b7b4000, 0x5b7b4fff, REGISTRY_RIPENCC }, // 91.123.64.0 - 91.123.79.255 { 0x5b7b5000, 0x5b7b7fff, REGISTRY_RIPENCC }, // 91.123.80.0 - 91.123.127.255 { 0x5b7b8000, 0x5b7b8fff, REGISTRY_RIPENCC }, // 91.123.128.0 - 91.123.143.255 { 0x5b7b9000, 0x5b7bbfff, REGISTRY_RIPENCC }, // 91.123.144.0 - 91.123.191.255 { 0x5b7bc000, 0x5b7bcfff, REGISTRY_RIPENCC }, // 91.123.192.0 - 91.123.207.255 { 0x5b7bd000, 0x5b7bffff, REGISTRY_RIPENCC }, // 91.123.208.0 - 91.123.255.255 { 0x5b7c0000, 0x5b8463ff, REGISTRY_RIPENCC }, // 91.124.0.0 - 91.132.99.255 { 0x5b846800, 0x5b8e7fff, REGISTRY_RIPENCC }, // 91.132.104.0 - 91.142.127.255 { 0x5b8e8000, 0x5b8e84ff, REGISTRY_RIPENCC }, // 91.142.128.0 - 91.142.132.255 { 0x5b8e8500, 0x5b8e85ff, REGISTRY_RIPENCC }, // 91.142.133.0 - 91.142.133.255 { 0x5b8e8600, 0x5b8e8bff, REGISTRY_RIPENCC }, // 91.142.134.0 - 91.142.139.255 { 0x5b8e8c00, 0x5b8e8cff, REGISTRY_RIPENCC }, // 91.142.140.0 - 91.142.140.255 { 0x5b8e8d00, 0x5b8e8fff, REGISTRY_RIPENCC }, // 91.142.141.0 - 91.142.143.255 { 0x5b8e9000, 0x5b96bfff, REGISTRY_RIPENCC }, // 91.142.144.0 - 91.150.191.255 { 0x5b96c000, 0x5b96ffff, REGISTRY_RIPENCC }, // 91.150.192.0 - 91.150.255.255 { 0x5b970000, 0x5bbcffff, REGISTRY_RIPENCC }, // 91.151.0.0 - 91.188.255.255 { 0x5bbd0000, 0x5bbdb7ff, REGISTRY_RIPENCC }, // 91.189.0.0 - 91.189.183.255 { 0x5bbdb800, 0x5bbdbfff, REGISTRY_RIPENCC }, // 91.189.184.0 - 91.189.191.255 { 0x5bbdc000, 0x5bbdcfff, REGISTRY_RIPENCC }, // 91.189.192.0 - 91.189.207.255 { 0x5bbdd000, 0x5bbde7ff, REGISTRY_RIPENCC }, // 91.189.208.0 - 91.189.231.255 { 0x5bbde800, 0x5bbdffff, REGISTRY_RIPENCC }, // 91.189.232.0 - 91.189.255.255 { 0x5bbe0000, 0x5bbfcfff, REGISTRY_RIPENCC }, // 91.190.0.0 - 91.191.207.255 { 0x5bbfd000, 0x5bbfd0ff, REGISTRY_ARIN }, // 91.191.208.0 - 91.191.208.255 { 0x5bbfd100, 0x5bbfd1ff, REGISTRY_RIPENCC }, // 91.191.209.0 - 91.191.209.255 { 0x5bbfd200, 0x5bbfd6ff, REGISTRY_ARIN }, // 91.191.210.0 - 91.191.214.255 { 0x5bbfd700, 0x5bbfd9ff, REGISTRY_RIPENCC }, // 91.191.215.0 - 91.191.217.255 { 0x5bbfda00, 0x5bbfdaff, REGISTRY_ARIN }, // 91.191.218.0 - 91.191.218.255 { 0x5bbfdb00, 0x5bbfffff, REGISTRY_RIPENCC }, // 91.191.219.0 - 91.191.255.255 { 0x5bc00000, 0x5bc003ff, REGISTRY_RIPENCC }, // 91.192.0.0 - 91.192.3.255 { 0x5bc00400, 0x5bc00bff, REGISTRY_RIPENCC }, // 91.192.4.0 - 91.192.11.255 { 0x5bc00c00, 0x5bc017ff, REGISTRY_RIPENCC }, // 91.192.12.0 - 91.192.23.255 { 0x5bc01800, 0x5bc01bff, REGISTRY_RIPENCC }, // 91.192.24.0 - 91.192.27.255 { 0x5bc01c00, 0x5bc023ff, REGISTRY_RIPENCC }, // 91.192.28.0 - 91.192.35.255 { 0x5bc02400, 0x5bc027ff, REGISTRY_RIPENCC }, // 91.192.36.0 - 91.192.39.255 { 0x5bc02800, 0x5bc02fff, REGISTRY_RIPENCC }, // 91.192.40.0 - 91.192.47.255 { 0x5bc03000, 0x5bc033ff, REGISTRY_RIPENCC }, // 91.192.48.0 - 91.192.51.255 { 0x5bc03400, 0x5bc03bff, REGISTRY_RIPENCC }, // 91.192.52.0 - 91.192.59.255 { 0x5bc03c00, 0x5bc03fff, REGISTRY_RIPENCC }, // 91.192.60.0 - 91.192.63.255 { 0x5bc04000, 0x5bc04fff, REGISTRY_RIPENCC }, // 91.192.64.0 - 91.192.79.255 { 0x5bc05000, 0x5bc057ff, REGISTRY_RIPENCC }, // 91.192.80.0 - 91.192.87.255 { 0x5bc05800, 0x5bc063ff, REGISTRY_RIPENCC }, // 91.192.88.0 - 91.192.99.255 { 0x5bc06400, 0x5bc067ff, REGISTRY_RIPENCC }, // 91.192.100.0 - 91.192.103.255 { 0x5bc06800, 0x5bc069ff, REGISTRY_RIPENCC }, // 91.192.104.0 - 91.192.105.255 { 0x5bc06a00, 0x5bc06fff, REGISTRY_RIPENCC }, // 91.192.106.0 - 91.192.111.255 { 0x5bc07000, 0x5bc0afff, REGISTRY_RIPENCC }, // 91.192.112.0 - 91.192.175.255 { 0x5bc0b000, 0x5bc0b3ff, REGISTRY_RIPENCC }, // 91.192.176.0 - 91.192.179.255 { 0x5bc0b400, 0x5bc0c9ff, REGISTRY_RIPENCC }, // 91.192.180.0 - 91.192.201.255 { 0x5bc0ca00, 0x5bc0cbff, REGISTRY_RIPENCC }, // 91.192.202.0 - 91.192.203.255 { 0x5bc0cc00, 0x5bc103ff, REGISTRY_RIPENCC }, // 91.192.204.0 - 91.193.3.255 { 0x5bc10400, 0x5bc10bff, REGISTRY_RIPENCC }, // 91.193.4.0 - 91.193.11.255 { 0x5bc10c00, 0x5bc10fff, REGISTRY_RIPENCC }, // 91.193.12.0 - 91.193.15.255 { 0x5bc11000, 0x5bc113ff, REGISTRY_RIPENCC }, // 91.193.16.0 - 91.193.19.255 { 0x5bc11400, 0x5bc117ff, REGISTRY_RIPENCC }, // 91.193.20.0 - 91.193.23.255 { 0x5bc11c00, 0x5bc11fff, REGISTRY_RIPENCC }, // 91.193.28.0 - 91.193.31.255 { 0x5bc12000, 0x5bc129ff, REGISTRY_RIPENCC }, // 91.193.32.0 - 91.193.41.255 { 0x5bc12a00, 0x5bc12bff, REGISTRY_RIPENCC }, // 91.193.42.0 - 91.193.43.255 { 0x5bc12c00, 0x5bc133ff, REGISTRY_RIPENCC }, // 91.193.44.0 - 91.193.51.255 { 0x5bc13400, 0x5bc13fff, REGISTRY_RIPENCC }, // 91.193.52.0 - 91.193.63.255 { 0x5bc14000, 0x5bc149ff, REGISTRY_RIPENCC }, // 91.193.64.0 - 91.193.73.255 { 0x5bc14a00, 0x5bc14aff, REGISTRY_RIPENCC }, // 91.193.74.0 - 91.193.74.255 { 0x5bc14b00, 0x5bc159ff, REGISTRY_RIPENCC }, // 91.193.75.0 - 91.193.89.255 { 0x5bc15c00, 0x5bc163ff, REGISTRY_RIPENCC }, // 91.193.92.0 - 91.193.99.255 { 0x5bc16400, 0x5bc167ff, REGISTRY_RIPENCC }, // 91.193.100.0 - 91.193.103.255 { 0x5bc16800, 0x5bc16fff, REGISTRY_RIPENCC }, // 91.193.104.0 - 91.193.111.255 { 0x5bc17000, 0x5bc177ff, REGISTRY_RIPENCC }, // 91.193.112.0 - 91.193.119.255 { 0x5bc17800, 0x5bc17fff, REGISTRY_RIPENCC }, // 91.193.120.0 - 91.193.127.255 { 0x5bc18000, 0x5bc183ff, REGISTRY_RIPENCC }, // 91.193.128.0 - 91.193.131.255 { 0x5bc18400, 0x5bc197ff, REGISTRY_RIPENCC }, // 91.193.132.0 - 91.193.151.255 { 0x5bc19800, 0x5bc19bff, REGISTRY_RIPENCC }, // 91.193.152.0 - 91.193.155.255 { 0x5bc19c00, 0x5bc1b3ff, REGISTRY_RIPENCC }, // 91.193.156.0 - 91.193.179.255 { 0x5bc1b400, 0x5bc1b7ff, REGISTRY_RIPENCC }, // 91.193.180.0 - 91.193.183.255 { 0x5bc1b800, 0x5bc1bfff, REGISTRY_RIPENCC }, // 91.193.184.0 - 91.193.191.255 { 0x5bc1c000, 0x5bc1c3ff, REGISTRY_RIPENCC }, // 91.193.192.0 - 91.193.195.255 { 0x5bc1c400, 0x5bc1e7ff, REGISTRY_RIPENCC }, // 91.193.196.0 - 91.193.231.255 { 0x5bc1e800, 0x5bc1ebff, REGISTRY_RIPENCC }, // 91.193.232.0 - 91.193.235.255 { 0x5bc1ec00, 0x5bc1f7ff, REGISTRY_RIPENCC }, // 91.193.236.0 - 91.193.247.255 { 0x5bc1f800, 0x5bc201ff, REGISTRY_RIPENCC }, // 91.193.248.0 - 91.194.1.255 { 0x5bc20200, 0x5bc205ff, REGISTRY_RIPENCC }, // 91.194.2.0 - 91.194.5.255 { 0x5bc20600, 0x5bc209ff, REGISTRY_RIPENCC }, // 91.194.6.0 - 91.194.9.255 { 0x5bc20a00, 0x5bc20dff, REGISTRY_RIPENCC }, // 91.194.10.0 - 91.194.13.255 { 0x5bc20e00, 0x5bc20fff, REGISTRY_RIPENCC }, // 91.194.14.0 - 91.194.15.255 { 0x5bc21000, 0x5bc217ff, REGISTRY_RIPENCC }, // 91.194.16.0 - 91.194.23.255 { 0x5bc21800, 0x5bc219ff, REGISTRY_RIPENCC }, // 91.194.24.0 - 91.194.25.255 { 0x5bc21a00, 0x5bc233ff, REGISTRY_RIPENCC }, // 91.194.26.0 - 91.194.51.255 { 0x5bc23400, 0x5bc237ff, REGISTRY_RIPENCC }, // 91.194.52.0 - 91.194.55.255 { 0x5bc23800, 0x5bc255ff, REGISTRY_RIPENCC }, // 91.194.56.0 - 91.194.85.255 { 0x5bc25600, 0x5bc257ff, REGISTRY_RIPENCC }, // 91.194.86.0 - 91.194.87.255 { 0x5bc25800, 0x5bc259ff, REGISTRY_RIPENCC }, // 91.194.88.0 - 91.194.89.255 { 0x5bc25a00, 0x5bc25bff, REGISTRY_RIPENCC }, // 91.194.90.0 - 91.194.91.255 { 0x5bc25c00, 0x5bc267ff, REGISTRY_RIPENCC }, // 91.194.92.0 - 91.194.103.255 { 0x5bc26800, 0x5bc269ff, REGISTRY_RIPENCC }, // 91.194.104.0 - 91.194.105.255 { 0x5bc26a00, 0x5bc26dff, REGISTRY_RIPENCC }, // 91.194.106.0 - 91.194.109.255 { 0x5bc26e00, 0x5bc26fff, REGISTRY_RIPENCC }, // 91.194.110.0 - 91.194.111.255 { 0x5bc27000, 0x5bc275ff, REGISTRY_RIPENCC }, // 91.194.112.0 - 91.194.117.255 { 0x5bc27600, 0x5bc277ff, REGISTRY_RIPENCC }, // 91.194.118.0 - 91.194.119.255 { 0x5bc27800, 0x5bc27bff, REGISTRY_RIPENCC }, // 91.194.120.0 - 91.194.123.255 { 0x5bc27c00, 0x5bc27dff, REGISTRY_RIPENCC }, // 91.194.124.0 - 91.194.125.255 { 0x5bc27e00, 0x5bc28bff, REGISTRY_RIPENCC }, // 91.194.126.0 - 91.194.139.255 { 0x5bc28c00, 0x5bc28dff, REGISTRY_RIPENCC }, // 91.194.140.0 - 91.194.141.255 { 0x5bc28e00, 0x5bc293ff, REGISTRY_RIPENCC }, // 91.194.142.0 - 91.194.147.255 { 0x5bc29400, 0x5bc297ff, REGISTRY_RIPENCC }, // 91.194.148.0 - 91.194.151.255 { 0x5bc29800, 0x5bc2a3ff, REGISTRY_RIPENCC }, // 91.194.152.0 - 91.194.163.255 { 0x5bc2a400, 0x5bc2a7ff, REGISTRY_RIPENCC }, // 91.194.164.0 - 91.194.167.255 { 0x5bc2a800, 0x5bc2a9ff, REGISTRY_RIPENCC }, // 91.194.168.0 - 91.194.169.255 { 0x5bc2aa00, 0x5bc2abff, REGISTRY_RIPENCC }, // 91.194.170.0 - 91.194.171.255 { 0x5bc2ac00, 0x5bc2b5ff, REGISTRY_RIPENCC }, // 91.194.172.0 - 91.194.181.255 { 0x5bc2b600, 0x5bc2b7ff, REGISTRY_RIPENCC }, // 91.194.182.0 - 91.194.183.255 { 0x5bc2b800, 0x5bc2bfff, REGISTRY_RIPENCC }, // 91.194.184.0 - 91.194.191.255 { 0x5bc2c000, 0x5bc2c3ff, REGISTRY_RIPENCC }, // 91.194.192.0 - 91.194.195.255 { 0x5bc2c400, 0x5bc2c7ff, REGISTRY_RIPENCC }, // 91.194.196.0 - 91.194.199.255 { 0x5bc2c800, 0x5bc2c8ff, REGISTRY_RIPENCC }, // 91.194.200.0 - 91.194.200.255 { 0x5bc2c900, 0x5bc2c9ff, REGISTRY_ARIN }, // 91.194.201.0 - 91.194.201.255 { 0x5bc2ca00, 0x5bc2d5ff, REGISTRY_RIPENCC }, // 91.194.202.0 - 91.194.213.255 { 0x5bc2d600, 0x5bc2d7ff, REGISTRY_RIPENCC }, // 91.194.214.0 - 91.194.215.255 { 0x5bc2d800, 0x5bc2e9ff, REGISTRY_RIPENCC }, // 91.194.216.0 - 91.194.233.255 { 0x5bc2ea00, 0x5bc2eaff, REGISTRY_RIPENCC }, // 91.194.234.0 - 91.194.234.255 { 0x5bc2eb00, 0x5bc2efff, REGISTRY_RIPENCC }, // 91.194.235.0 - 91.194.239.255 { 0x5bc2f000, 0x5bc2f1ff, REGISTRY_RIPENCC }, // 91.194.240.0 - 91.194.241.255 { 0x5bc2f200, 0x5bc2f7ff, REGISTRY_RIPENCC }, // 91.194.242.0 - 91.194.247.255 { 0x5bc2f800, 0x5bc2f9ff, REGISTRY_RIPENCC }, // 91.194.248.0 - 91.194.249.255 { 0x5bc2fa00, 0x5bc2fdff, REGISTRY_RIPENCC }, // 91.194.250.0 - 91.194.253.255 { 0x5bc2fe00, 0x5bc2ffff, REGISTRY_RIPENCC }, // 91.194.254.0 - 91.194.255.255 { 0x5bc30000, 0x5bc30bff, REGISTRY_RIPENCC }, // 91.195.0.0 - 91.195.11.255 { 0x5bc30c00, 0x5bc30dff, REGISTRY_RIPENCC }, // 91.195.12.0 - 91.195.13.255 { 0x5bc30e00, 0x5bc311ff, REGISTRY_RIPENCC }, // 91.195.14.0 - 91.195.17.255 { 0x5bc31200, 0x5bc313ff, REGISTRY_RIPENCC }, // 91.195.18.0 - 91.195.19.255 { 0x5bc31400, 0x5bc331ff, REGISTRY_RIPENCC }, // 91.195.20.0 - 91.195.49.255 { 0x5bc33200, 0x5bc333ff, REGISTRY_RIPENCC }, // 91.195.50.0 - 91.195.51.255 { 0x5bc33400, 0x5bc33fff, REGISTRY_RIPENCC }, // 91.195.52.0 - 91.195.63.255 { 0x5bc34000, 0x5bc343ff, REGISTRY_RIPENCC }, // 91.195.64.0 - 91.195.67.255 { 0x5bc34400, 0x5bc347ff, REGISTRY_RIPENCC }, // 91.195.68.0 - 91.195.71.255 { 0x5bc34800, 0x5bc349ff, REGISTRY_RIPENCC }, // 91.195.72.0 - 91.195.73.255 { 0x5bc34a00, 0x5bc365ff, REGISTRY_RIPENCC }, // 91.195.74.0 - 91.195.101.255 { 0x5bc36600, 0x5bc367ff, REGISTRY_RIPENCC }, // 91.195.102.0 - 91.195.103.255 { 0x5bc36800, 0x5bc391ff, REGISTRY_RIPENCC }, // 91.195.104.0 - 91.195.145.255 { 0x5bc39200, 0x5bc393ff, REGISTRY_RIPENCC }, // 91.195.146.0 - 91.195.147.255 { 0x5bc39400, 0x5bc3abff, REGISTRY_RIPENCC }, // 91.195.148.0 - 91.195.171.255 { 0x5bc3ac00, 0x5bc3afff, REGISTRY_RIPENCC }, // 91.195.172.0 - 91.195.175.255 { 0x5bc3b000, 0x5bc3cfff, REGISTRY_RIPENCC }, // 91.195.176.0 - 91.195.207.255 { 0x5bc3d000, 0x5bc3d1ff, REGISTRY_RIPENCC }, // 91.195.208.0 - 91.195.209.255 { 0x5bc3d200, 0x5bc3d3ff, REGISTRY_RIPENCC }, // 91.195.210.0 - 91.195.211.255 { 0x5bc3d400, 0x5bc3d5ff, REGISTRY_RIPENCC }, // 91.195.212.0 - 91.195.213.255 { 0x5bc3d600, 0x5bc3ddff, REGISTRY_RIPENCC }, // 91.195.214.0 - 91.195.221.255 { 0x5bc3de00, 0x5bc3dfff, REGISTRY_RIPENCC }, // 91.195.222.0 - 91.195.223.255 { 0x5bc3e000, 0x5bc3fdff, REGISTRY_RIPENCC }, // 91.195.224.0 - 91.195.253.255 { 0x5bc3fe00, 0x5bc3ffff, REGISTRY_RIPENCC }, // 91.195.254.0 - 91.195.255.255 { 0x5bc40000, 0x5bc403ff, REGISTRY_RIPENCC }, // 91.196.0.0 - 91.196.3.255 { 0x5bc40400, 0x5bc407ff, REGISTRY_RIPENCC }, // 91.196.4.0 - 91.196.7.255 { 0x5bc40800, 0x5bc40fff, REGISTRY_RIPENCC }, // 91.196.8.0 - 91.196.15.255 { 0x5bc41000, 0x5bc41fff, REGISTRY_RIPENCC }, // 91.196.16.0 - 91.196.31.255 { 0x5bc42000, 0x5bc427ff, REGISTRY_RIPENCC }, // 91.196.32.0 - 91.196.39.255 { 0x5bc42800, 0x5bc42bff, REGISTRY_RIPENCC }, // 91.196.40.0 - 91.196.43.255 { 0x5bc42c00, 0x5bc43fff, REGISTRY_RIPENCC }, // 91.196.44.0 - 91.196.63.255 { 0x5bc44000, 0x5bc44bff, REGISTRY_RIPENCC }, // 91.196.64.0 - 91.196.75.255 { 0x5bc44c00, 0x5bc487ff, REGISTRY_RIPENCC }, // 91.196.76.0 - 91.196.135.255 { 0x5bc48800, 0x5bc48fff, REGISTRY_RIPENCC }, // 91.196.136.0 - 91.196.143.255 { 0x5bc49000, 0x5bc497ff, REGISTRY_RIPENCC }, // 91.196.144.0 - 91.196.151.255 { 0x5bc49800, 0x5bc49bff, REGISTRY_RIPENCC }, // 91.196.152.0 - 91.196.155.255 { 0x5bc49c00, 0x5bc4b3ff, REGISTRY_RIPENCC }, // 91.196.156.0 - 91.196.179.255 { 0x5bc4b400, 0x5bc4bfff, REGISTRY_RIPENCC }, // 91.196.180.0 - 91.196.191.255 { 0x5bc4c000, 0x5bc4c7ff, REGISTRY_RIPENCC }, // 91.196.192.0 - 91.196.199.255 { 0x5bc4c800, 0x5bc4cbff, REGISTRY_RIPENCC }, // 91.196.200.0 - 91.196.203.255 { 0x5bc4cc00, 0x5bc4cfff, REGISTRY_RIPENCC }, // 91.196.204.0 - 91.196.207.255 { 0x5bc4d000, 0x5bc4d3ff, REGISTRY_RIPENCC }, // 91.196.208.0 - 91.196.211.255 { 0x5bc4d400, 0x5bc4d7ff, REGISTRY_RIPENCC }, // 91.196.212.0 - 91.196.215.255 { 0x5bc4d800, 0x5bc4dfff, REGISTRY_RIPENCC }, // 91.196.216.0 - 91.196.223.255 { 0x5bc4e000, 0x5bc4e7ff, REGISTRY_RIPENCC }, // 91.196.224.0 - 91.196.231.255 { 0x5bc4e800, 0x5bc4ebff, REGISTRY_RIPENCC }, // 91.196.232.0 - 91.196.235.255 { 0x5bc4ec00, 0x5bc4ffff, REGISTRY_RIPENCC }, // 91.196.236.0 - 91.196.255.255 { 0x5bc50000, 0x5bc503ff, REGISTRY_RIPENCC }, // 91.197.0.0 - 91.197.3.255 { 0x5bc50400, 0x5bc505ff, REGISTRY_RIPENCC }, // 91.197.4.0 - 91.197.5.255 { 0x5bc50600, 0x5bc506ff, REGISTRY_RIPENCC }, // 91.197.6.0 - 91.197.6.255 { 0x5bc50700, 0x5bc523ff, REGISTRY_RIPENCC }, // 91.197.7.0 - 91.197.35.255 { 0x5bc52400, 0x5bc52bff, REGISTRY_RIPENCC }, // 91.197.36.0 - 91.197.43.255 { 0x5bc52c00, 0x5bc52dff, REGISTRY_RIPENCC }, // 91.197.44.0 - 91.197.45.255 { 0x5bc52e00, 0x5bc52fff, REGISTRY_RIPENCC }, // 91.197.46.0 - 91.197.47.255 { 0x5bc53000, 0x5bc536ff, REGISTRY_RIPENCC }, // 91.197.48.0 - 91.197.54.255 { 0x5bc53700, 0x5bc537ff, REGISTRY_RIPENCC }, // 91.197.55.0 - 91.197.55.255 { 0x5bc53800, 0x5bc543ff, REGISTRY_RIPENCC }, // 91.197.56.0 - 91.197.67.255 { 0x5bc54400, 0x5bc547ff, REGISTRY_RIPENCC }, // 91.197.68.0 - 91.197.71.255 { 0x5bc54800, 0x5bc56bff, REGISTRY_RIPENCC }, // 91.197.72.0 - 91.197.107.255 { 0x5bc56c00, 0x5bc56fff, REGISTRY_RIPENCC }, // 91.197.108.0 - 91.197.111.255 { 0x5bc57000, 0x5bc577ff, REGISTRY_RIPENCC }, // 91.197.112.0 - 91.197.119.255 { 0x5bc57800, 0x5bc57bff, REGISTRY_RIPENCC }, // 91.197.120.0 - 91.197.123.255 { 0x5bc57c00, 0x5bc5c3ff, REGISTRY_RIPENCC }, // 91.197.124.0 - 91.197.195.255 { 0x5bc5c400, 0x5bc5cbff, REGISTRY_RIPENCC }, // 91.197.196.0 - 91.197.203.255 { 0x5bc5cc00, 0x5bc5e7ff, REGISTRY_RIPENCC }, // 91.197.204.0 - 91.197.231.255 { 0x5bc5e800, 0x5bc5ebff, REGISTRY_RIPENCC }, // 91.197.232.0 - 91.197.235.255 { 0x5bc5ec00, 0x5bc5efff, REGISTRY_RIPENCC }, // 91.197.236.0 - 91.197.239.255 { 0x5bc5f000, 0x5bc5f3ff, REGISTRY_RIPENCC }, // 91.197.240.0 - 91.197.243.255 { 0x5bc5f400, 0x5bc5f7ff, REGISTRY_RIPENCC }, // 91.197.244.0 - 91.197.247.255 { 0x5bc5f800, 0x5bc5fbff, REGISTRY_RIPENCC }, // 91.197.248.0 - 91.197.251.255 { 0x5bc5fc00, 0x5bc612ff, REGISTRY_RIPENCC }, // 91.197.252.0 - 91.198.18.255 { 0x5bc61400, 0x5bc61bff, REGISTRY_RIPENCC }, // 91.198.20.0 - 91.198.27.255 { 0x5bc61c00, 0x5bc61cff, REGISTRY_RIPENCC }, // 91.198.28.0 - 91.198.28.255 { 0x5bc61d00, 0x5bc61fff, REGISTRY_RIPENCC }, // 91.198.29.0 - 91.198.31.255 { 0x5bc62000, 0x5bc620ff, REGISTRY_RIPENCC }, // 91.198.32.0 - 91.198.32.255 { 0x5bc62100, 0x5bc624ff, REGISTRY_RIPENCC }, // 91.198.33.0 - 91.198.36.255 { 0x5bc62500, 0x5bc625ff, REGISTRY_RIPENCC }, // 91.198.37.0 - 91.198.37.255 { 0x5bc62600, 0x5bc627ff, REGISTRY_RIPENCC }, // 91.198.38.0 - 91.198.39.255 { 0x5bc62900, 0x5bc629ff, REGISTRY_RIPENCC }, // 91.198.41.0 - 91.198.41.255 { 0x5bc62a00, 0x5bc62fff, REGISTRY_RIPENCC }, // 91.198.42.0 - 91.198.47.255 { 0x5bc63000, 0x5bc630ff, REGISTRY_RIPENCC }, // 91.198.48.0 - 91.198.48.255 { 0x5bc63100, 0x5bc63fff, REGISTRY_RIPENCC }, // 91.198.49.0 - 91.198.63.255 { 0x5bc64000, 0x5bc642ff, REGISTRY_RIPENCC }, // 91.198.64.0 - 91.198.66.255 { 0x5bc64300, 0x5bc64cff, REGISTRY_RIPENCC }, // 91.198.67.0 - 91.198.76.255 { 0x5bc64d00, 0x5bc64dff, REGISTRY_RIPENCC }, // 91.198.77.0 - 91.198.77.255 { 0x5bc64e00, 0x5bc660ff, REGISTRY_RIPENCC }, // 91.198.78.0 - 91.198.96.255 { 0x5bc66100, 0x5bc661ff, REGISTRY_RIPENCC }, // 91.198.97.0 - 91.198.97.255 { 0x5bc66200, 0x5bc664ff, REGISTRY_RIPENCC }, // 91.198.98.0 - 91.198.100.255 { 0x5bc66500, 0x5bc665ff, REGISTRY_RIPENCC }, // 91.198.101.0 - 91.198.101.255 { 0x5bc66600, 0x5bc66bff, REGISTRY_RIPENCC }, // 91.198.102.0 - 91.198.107.255 { 0x5bc66c00, 0x5bc66dff, REGISTRY_RIPENCC }, // 91.198.108.0 - 91.198.109.255 { 0x5bc66e00, 0x5bc672ff, REGISTRY_RIPENCC }, // 91.198.110.0 - 91.198.114.255 { 0x5bc67300, 0x5bc673ff, REGISTRY_RIPENCC }, // 91.198.115.0 - 91.198.115.255 { 0x5bc67400, 0x5bc67aff, REGISTRY_RIPENCC }, // 91.198.116.0 - 91.198.122.255 { 0x5bc67b00, 0x5bc67bff, REGISTRY_RIPENCC }, // 91.198.123.0 - 91.198.123.255 { 0x5bc67c00, 0x5bc684ff, REGISTRY_RIPENCC }, // 91.198.124.0 - 91.198.132.255 { 0x5bc68500, 0x5bc685ff, REGISTRY_RIPENCC }, // 91.198.133.0 - 91.198.133.255 { 0x5bc68600, 0x5bc68cff, REGISTRY_RIPENCC }, // 91.198.134.0 - 91.198.140.255 { 0x5bc68d00, 0x5bc68dff, REGISTRY_RIPENCC }, // 91.198.141.0 - 91.198.141.255 { 0x5bc68e00, 0x5bc692ff, REGISTRY_RIPENCC }, // 91.198.142.0 - 91.198.146.255 { 0x5bc69300, 0x5bc693ff, REGISTRY_RIPENCC }, // 91.198.147.0 - 91.198.147.255 { 0x5bc69400, 0x5bc69dff, REGISTRY_RIPENCC }, // 91.198.148.0 - 91.198.157.255 { 0x5bc69e00, 0x5bc69eff, REGISTRY_RIPENCC }, // 91.198.158.0 - 91.198.158.255 { 0x5bc69f00, 0x5bc6a5ff, REGISTRY_RIPENCC }, // 91.198.159.0 - 91.198.165.255 { 0x5bc6a600, 0x5bc6a7ff, REGISTRY_RIPENCC }, // 91.198.166.0 - 91.198.167.255 { 0x5bc6a800, 0x5bc6a9ff, REGISTRY_RIPENCC }, // 91.198.168.0 - 91.198.169.255 { 0x5bc6aa00, 0x5bc6acff, REGISTRY_RIPENCC }, // 91.198.170.0 - 91.198.172.255 { 0x5bc6ad00, 0x5bc6b8ff, REGISTRY_RIPENCC }, // 91.198.173.0 - 91.198.184.255 { 0x5bc6b900, 0x5bc6b9ff, REGISTRY_RIPENCC }, // 91.198.185.0 - 91.198.185.255 { 0x5bc6ba00, 0x5bc6bbff, REGISTRY_RIPENCC }, // 91.198.186.0 - 91.198.187.255 { 0x5bc6bc00, 0x5bc6bcff, REGISTRY_RIPENCC }, // 91.198.188.0 - 91.198.188.255 { 0x5bc6bd00, 0x5bc6bfff, REGISTRY_RIPENCC }, // 91.198.189.0 - 91.198.191.255 { 0x5bc6c000, 0x5bc6c0ff, REGISTRY_RIPENCC }, // 91.198.192.0 - 91.198.192.255 { 0x5bc6c100, 0x5bc6c3ff, REGISTRY_RIPENCC }, // 91.198.193.0 - 91.198.195.255 { 0x5bc6c400, 0x5bc6c4ff, REGISTRY_RIPENCC }, // 91.198.196.0 - 91.198.196.255 { 0x5bc6c500, 0x5bc6c7ff, REGISTRY_RIPENCC }, // 91.198.197.0 - 91.198.199.255 { 0x5bc6c800, 0x5bc6c8ff, REGISTRY_RIPENCC }, // 91.198.200.0 - 91.198.200.255 { 0x5bc6c900, 0x5bc6ceff, REGISTRY_RIPENCC }, // 91.198.201.0 - 91.198.206.255 { 0x5bc6cf00, 0x5bc6d3ff, REGISTRY_RIPENCC }, // 91.198.207.0 - 91.198.211.255 { 0x5bc6d400, 0x5bc6d6ff, REGISTRY_RIPENCC }, // 91.198.212.0 - 91.198.214.255 { 0x5bc6d700, 0x5bc6d7ff, REGISTRY_RIPENCC }, // 91.198.215.0 - 91.198.215.255 { 0x5bc6d800, 0x5bc6d9ff, REGISTRY_RIPENCC }, // 91.198.216.0 - 91.198.217.255 { 0x5bc6da00, 0x5bc6daff, REGISTRY_RIPENCC }, // 91.198.218.0 - 91.198.218.255 { 0x5bc6db00, 0x5bc6dbff, REGISTRY_RIPENCC }, // 91.198.219.0 - 91.198.219.255 { 0x5bc6dc00, 0x5bc6dcff, REGISTRY_RIPENCC }, // 91.198.220.0 - 91.198.220.255 { 0x5bc6dd00, 0x5bc6e5ff, REGISTRY_RIPENCC }, // 91.198.221.0 - 91.198.229.255 { 0x5bc6e600, 0x5bc6e6ff, REGISTRY_RIPENCC }, // 91.198.230.0 - 91.198.230.255 { 0x5bc6e700, 0x5bc6f0ff, REGISTRY_RIPENCC }, // 91.198.231.0 - 91.198.240.255 { 0x5bc6f100, 0x5bc6f1ff, REGISTRY_RIPENCC }, // 91.198.241.0 - 91.198.241.255 { 0x5bc6f200, 0x5bc6f3ff, REGISTRY_RIPENCC }, // 91.198.242.0 - 91.198.243.255 { 0x5bc6f400, 0x5bc6f4ff, REGISTRY_RIPENCC }, // 91.198.244.0 - 91.198.244.255 { 0x5bc6f500, 0x5bc6fdff, REGISTRY_RIPENCC }, // 91.198.245.0 - 91.198.253.255 { 0x5bc6fe00, 0x5bc6feff, REGISTRY_RIPENCC }, // 91.198.254.0 - 91.198.254.255 { 0x5bc6ff00, 0x5bc701ff, REGISTRY_RIPENCC }, // 91.198.255.0 - 91.199.1.255 { 0x5bc70200, 0x5bc703ff, REGISTRY_RIPENCC }, // 91.199.2.0 - 91.199.3.255 { 0x5bc70400, 0x5bc708ff, REGISTRY_RIPENCC }, // 91.199.4.0 - 91.199.8.255 { 0x5bc70900, 0x5bc709ff, REGISTRY_RIPENCC }, // 91.199.9.0 - 91.199.9.255 { 0x5bc70a00, 0x5bc711ff, REGISTRY_RIPENCC }, // 91.199.10.0 - 91.199.17.255 { 0x5bc71200, 0x5bc712ff, REGISTRY_RIPENCC }, // 91.199.18.0 - 91.199.18.255 { 0x5bc71300, 0x5bc71aff, REGISTRY_RIPENCC }, // 91.199.19.0 - 91.199.26.255 { 0x5bc71b00, 0x5bc71bff, REGISTRY_RIPENCC }, // 91.199.27.0 - 91.199.27.255 { 0x5bc71c00, 0x5bc71dff, REGISTRY_RIPENCC }, // 91.199.28.0 - 91.199.29.255 { 0x5bc71e00, 0x5bc71eff, REGISTRY_RIPENCC }, // 91.199.30.0 - 91.199.30.255 { 0x5bc71f00, 0x5bc71fff, REGISTRY_RIPENCC }, // 91.199.31.0 - 91.199.31.255 { 0x5bc72000, 0x5bc720ff, REGISTRY_RIPENCC }, // 91.199.32.0 - 91.199.32.255 { 0x5bc72100, 0x5bc727ff, REGISTRY_RIPENCC }, // 91.199.33.0 - 91.199.39.255 { 0x5bc72800, 0x5bc728ff, REGISTRY_RIPENCC }, // 91.199.40.0 - 91.199.40.255 { 0x5bc72900, 0x5bc729ff, REGISTRY_RIPENCC }, // 91.199.41.0 - 91.199.41.255 { 0x5bc72a00, 0x5bc72aff, REGISTRY_RIPENCC }, // 91.199.42.0 - 91.199.42.255 { 0x5bc72b00, 0x5bc72bff, REGISTRY_RIPENCC }, // 91.199.43.0 - 91.199.43.255 { 0x5bc72c00, 0x5bc72dff, REGISTRY_RIPENCC }, // 91.199.44.0 - 91.199.45.255 { 0x5bc72e00, 0x5bc72eff, REGISTRY_RIPENCC }, // 91.199.46.0 - 91.199.46.255 { 0x5bc72f00, 0x5bc730ff, REGISTRY_RIPENCC }, // 91.199.47.0 - 91.199.48.255 { 0x5bc73100, 0x5bc750ff, REGISTRY_RIPENCC }, // 91.199.49.0 - 91.199.80.255 { 0x5bc75100, 0x5bc752ff, REGISTRY_RIPENCC }, // 91.199.81.0 - 91.199.82.255 { 0x5bc75300, 0x5bc753ff, REGISTRY_RIPENCC }, // 91.199.83.0 - 91.199.83.255 { 0x5bc75400, 0x5bc754ff, REGISTRY_RIPENCC }, // 91.199.84.0 - 91.199.84.255 { 0x5bc75500, 0x5bc756ff, REGISTRY_RIPENCC }, // 91.199.85.0 - 91.199.86.255 { 0x5bc75700, 0x5bc757ff, REGISTRY_RIPENCC }, // 91.199.87.0 - 91.199.87.255 { 0x5bc75800, 0x5bc759ff, REGISTRY_RIPENCC }, // 91.199.88.0 - 91.199.89.255 { 0x5bc75a00, 0x5bc75aff, REGISTRY_RIPENCC }, // 91.199.90.0 - 91.199.90.255 { 0x5bc75b00, 0x5bc765ff, REGISTRY_RIPENCC }, // 91.199.91.0 - 91.199.101.255 { 0x5bc76600, 0x5bc766ff, REGISTRY_RIPENCC }, // 91.199.102.0 - 91.199.102.255 { 0x5bc76700, 0x5bc76bff, REGISTRY_RIPENCC }, // 91.199.103.0 - 91.199.107.255 { 0x5bc76c00, 0x5bc76cff, REGISTRY_RIPENCC }, // 91.199.108.0 - 91.199.108.255 { 0x5bc76d00, 0x5bc773ff, REGISTRY_RIPENCC }, // 91.199.109.0 - 91.199.115.255 { 0x5bc77400, 0x5bc774ff, REGISTRY_RIPENCC }, // 91.199.116.0 - 91.199.116.255 { 0x5bc77500, 0x5bc775ff, REGISTRY_RIPENCC }, // 91.199.117.0 - 91.199.117.255 { 0x5bc77600, 0x5bc776ff, REGISTRY_RIPENCC }, // 91.199.118.0 - 91.199.118.255 { 0x5bc77700, 0x5bc779ff, REGISTRY_RIPENCC }, // 91.199.119.0 - 91.199.121.255 { 0x5bc77a00, 0x5bc77bff, REGISTRY_RIPENCC }, // 91.199.122.0 - 91.199.123.255 { 0x5bc77c00, 0x5bc784ff, REGISTRY_RIPENCC }, // 91.199.124.0 - 91.199.132.255 { 0x5bc78500, 0x5bc785ff, REGISTRY_RIPENCC }, // 91.199.133.0 - 91.199.133.255 { 0x5bc78600, 0x5bc788ff, REGISTRY_RIPENCC }, // 91.199.134.0 - 91.199.136.255 { 0x5bc78900, 0x5bc789ff, REGISTRY_RIPENCC }, // 91.199.137.0 - 91.199.137.255 { 0x5bc78a00, 0x5bc792ff, REGISTRY_RIPENCC }, // 91.199.138.0 - 91.199.146.255 { 0x5bc79300, 0x5bc793ff, REGISTRY_RIPENCC }, // 91.199.147.0 - 91.199.147.255 { 0x5bc79400, 0x5bc799ff, REGISTRY_RIPENCC }, // 91.199.148.0 - 91.199.153.255 { 0x5bc79a00, 0x5bc79aff, REGISTRY_RIPENCC }, // 91.199.154.0 - 91.199.154.255 { 0x5bc79b00, 0x5bc79fff, REGISTRY_RIPENCC }, // 91.199.155.0 - 91.199.159.255 { 0x5bc7a000, 0x5bc7a0ff, REGISTRY_RIPENCC }, // 91.199.160.0 - 91.199.160.255 { 0x5bc7a100, 0x5bc7a2ff, REGISTRY_RIPENCC }, // 91.199.161.0 - 91.199.162.255 { 0x5bc7a300, 0x5bc7a3ff, REGISTRY_RIPENCC }, // 91.199.163.0 - 91.199.163.255 { 0x5bc7a400, 0x5bc7a5ff, REGISTRY_RIPENCC }, // 91.199.164.0 - 91.199.165.255 { 0x5bc7a600, 0x5bc7a6ff, REGISTRY_RIPENCC }, // 91.199.166.0 - 91.199.166.255 { 0x5bc7a700, 0x5bc7a7ff, REGISTRY_RIPENCC }, // 91.199.167.0 - 91.199.167.255 { 0x5bc7a800, 0x5bc7a8ff, REGISTRY_RIPENCC }, // 91.199.168.0 - 91.199.168.255 { 0x5bc7a900, 0x5bc7abff, REGISTRY_RIPENCC }, // 91.199.169.0 - 91.199.171.255 { 0x5bc7ac00, 0x5bc7acff, REGISTRY_RIPENCC }, // 91.199.172.0 - 91.199.172.255 { 0x5bc7ad00, 0x5bc7b2ff, REGISTRY_RIPENCC }, // 91.199.173.0 - 91.199.178.255 { 0x5bc7b300, 0x5bc7b3ff, REGISTRY_RIPENCC }, // 91.199.179.0 - 91.199.179.255 { 0x5bc7b400, 0x5bc7b5ff, REGISTRY_RIPENCC }, // 91.199.180.0 - 91.199.181.255 { 0x5bc7b600, 0x5bc7b6ff, REGISTRY_ARIN }, // 91.199.182.0 - 91.199.182.255 { 0x5bc7b700, 0x5bc7b7ff, REGISTRY_RIPENCC }, // 91.199.183.0 - 91.199.183.255 { 0x5bc7b800, 0x5bc7b9ff, REGISTRY_RIPENCC }, // 91.199.184.0 - 91.199.185.255 { 0x5bc7ba00, 0x5bc7bcff, REGISTRY_RIPENCC }, // 91.199.186.0 - 91.199.188.255 { 0x5bc7bd00, 0x5bc7bdff, REGISTRY_RIPENCC }, // 91.199.189.0 - 91.199.189.255 { 0x5bc7be00, 0x5bc7c0ff, REGISTRY_RIPENCC }, // 91.199.190.0 - 91.199.192.255 { 0x5bc7c100, 0x5bc7c1ff, REGISTRY_RIPENCC }, // 91.199.193.0 - 91.199.193.255 { 0x5bc7c200, 0x5bc7c6ff, REGISTRY_RIPENCC }, // 91.199.194.0 - 91.199.198.255 { 0x5bc7c700, 0x5bc7c7ff, REGISTRY_RIPENCC }, // 91.199.199.0 - 91.199.199.255 { 0x5bc7c800, 0x5bc7cdff, REGISTRY_RIPENCC }, // 91.199.200.0 - 91.199.205.255 { 0x5bc7ce00, 0x5bc7ceff, REGISTRY_RIPENCC }, // 91.199.206.0 - 91.199.206.255 { 0x5bc7cf00, 0x5bc7d0ff, REGISTRY_RIPENCC }, // 91.199.207.0 - 91.199.208.255 { 0x5bc7d100, 0x5bc7d1ff, REGISTRY_APNIC }, // 91.199.209.0 - 91.199.209.255 { 0x5bc7d200, 0x5bc7d2ff, REGISTRY_RIPENCC }, // 91.199.210.0 - 91.199.210.255 { 0x5bc7d300, 0x5bc7d3ff, REGISTRY_RIPENCC }, // 91.199.211.0 - 91.199.211.255 { 0x5bc7d400, 0x5bc7dbff, REGISTRY_RIPENCC }, // 91.199.212.0 - 91.199.219.255 { 0x5bc7dc00, 0x5bc7ddff, REGISTRY_RIPENCC }, // 91.199.220.0 - 91.199.221.255 { 0x5bc7de00, 0x5bc7deff, REGISTRY_RIPENCC }, // 91.199.222.0 - 91.199.222.255 { 0x5bc7df00, 0x5bc7dfff, REGISTRY_RIPENCC }, // 91.199.223.0 - 91.199.223.255 { 0x5bc7e000, 0x5bc7f7ff, REGISTRY_RIPENCC }, // 91.199.224.0 - 91.199.247.255 { 0x5bc7f800, 0x5bc7f8ff, REGISTRY_RIPENCC }, // 91.199.248.0 - 91.199.248.255 { 0x5bc7f900, 0x5bc7fcff, REGISTRY_RIPENCC }, // 91.199.249.0 - 91.199.252.255 { 0x5bc7fd00, 0x5bc7fdff, REGISTRY_RIPENCC }, // 91.199.253.0 - 91.199.253.255 { 0x5bc7fe00, 0x5bc81fff, REGISTRY_RIPENCC }, // 91.199.254.0 - 91.200.31.255 { 0x5bc82000, 0x5bc823ff, REGISTRY_RIPENCC }, // 91.200.32.0 - 91.200.35.255 { 0x5bc82400, 0x5bc84fff, REGISTRY_RIPENCC }, // 91.200.36.0 - 91.200.79.255 { 0x5bc85000, 0x5bc854ff, REGISTRY_RIPENCC }, // 91.200.80.0 - 91.200.84.255 { 0x5bc85500, 0x5bc857ff, REGISTRY_RIPENCC }, // 91.200.85.0 - 91.200.87.255 { 0x5bc85800, 0x5bc85bff, REGISTRY_RIPENCC }, // 91.200.88.0 - 91.200.91.255 { 0x5bc85c00, 0x5bc863ff, REGISTRY_RIPENCC }, // 91.200.92.0 - 91.200.99.255 { 0x5bc86400, 0x5bc867ff, REGISTRY_RIPENCC }, // 91.200.100.0 - 91.200.103.255 { 0x5bc86800, 0x5bc86bff, REGISTRY_RIPENCC }, // 91.200.104.0 - 91.200.107.255 { 0x5bc86c00, 0x5bc86fff, REGISTRY_RIPENCC }, // 91.200.108.0 - 91.200.111.255 { 0x5bc87000, 0x5bc87fff, REGISTRY_RIPENCC }, // 91.200.112.0 - 91.200.127.255 { 0x5bc88000, 0x5bc887ff, REGISTRY_RIPENCC }, // 91.200.128.0 - 91.200.135.255 { 0x5bc88800, 0x5bc88bff, REGISTRY_RIPENCC }, // 91.200.136.0 - 91.200.139.255 { 0x5bc88c00, 0x5bc897ff, REGISTRY_RIPENCC }, // 91.200.140.0 - 91.200.151.255 { 0x5bc89800, 0x5bc8a7ff, REGISTRY_RIPENCC }, // 91.200.152.0 - 91.200.167.255 { 0x5bc8a800, 0x5bc8abff, REGISTRY_RIPENCC }, // 91.200.168.0 - 91.200.171.255 { 0x5bc8ac00, 0x5bc8afff, REGISTRY_RIPENCC }, // 91.200.172.0 - 91.200.175.255 { 0x5bc8b000, 0x5bc8b3ff, REGISTRY_RIPENCC }, // 91.200.176.0 - 91.200.179.255 { 0x5bc8b400, 0x5bc8bbff, REGISTRY_RIPENCC }, // 91.200.180.0 - 91.200.187.255 { 0x5bc8bc00, 0x5bc8c3ff, REGISTRY_RIPENCC }, // 91.200.188.0 - 91.200.195.255 { 0x5bc8c400, 0x5bc8d3ff, REGISTRY_RIPENCC }, // 91.200.196.0 - 91.200.211.255 { 0x5bc8d400, 0x5bc8d7ff, REGISTRY_RIPENCC }, // 91.200.212.0 - 91.200.215.255 { 0x5bc8d800, 0x5bc8dbff, REGISTRY_RIPENCC }, // 91.200.216.0 - 91.200.219.255 { 0x5bc8dc00, 0x5bc8dfff, REGISTRY_RIPENCC }, // 91.200.220.0 - 91.200.223.255 { 0x5bc8e000, 0x5bc8efff, REGISTRY_RIPENCC }, // 91.200.224.0 - 91.200.239.255 { 0x5bc8f000, 0x5bc8f7ff, REGISTRY_RIPENCC }, // 91.200.240.0 - 91.200.247.255 { 0x5bc8f800, 0x5bc8fbff, REGISTRY_RIPENCC }, // 91.200.248.0 - 91.200.251.255 { 0x5bc8fc00, 0x5bc8ffff, REGISTRY_RIPENCC }, // 91.200.252.0 - 91.200.255.255 { 0x5bc90000, 0x5bc903ff, REGISTRY_RIPENCC }, // 91.201.0.0 - 91.201.3.255 { 0x5bc90400, 0x5bc907ff, REGISTRY_RIPENCC }, // 91.201.4.0 - 91.201.7.255 { 0x5bc90800, 0x5bc913ff, REGISTRY_RIPENCC }, // 91.201.8.0 - 91.201.19.255 { 0x5bc91400, 0x5bc917ff, REGISTRY_RIPENCC }, // 91.201.20.0 - 91.201.23.255 { 0x5bc91800, 0x5bc918ff, REGISTRY_RIPENCC }, // 91.201.24.0 - 91.201.24.255 { 0x5bc91900, 0x5bc919ff, REGISTRY_RIPENCC }, // 91.201.25.0 - 91.201.25.255 { 0x5bc91a00, 0x5bc91bff, REGISTRY_RIPENCC }, // 91.201.26.0 - 91.201.27.255 { 0x5bc91c00, 0x5bc923ff, REGISTRY_RIPENCC }, // 91.201.28.0 - 91.201.35.255 { 0x5bc92400, 0x5bc93fff, REGISTRY_RIPENCC }, // 91.201.36.0 - 91.201.63.255 { 0x5bc94000, 0x5bc943ff, REGISTRY_RIPENCC }, // 91.201.64.0 - 91.201.67.255 { 0x5bc94400, 0x5bc95fff, REGISTRY_RIPENCC }, // 91.201.68.0 - 91.201.95.255 { 0x5bc96000, 0x5bc963ff, REGISTRY_RIPENCC }, // 91.201.96.0 - 91.201.99.255 { 0x5bc96400, 0x5bc967ff, REGISTRY_RIPENCC }, // 91.201.100.0 - 91.201.103.255 { 0x5bc96800, 0x5bc96bff, REGISTRY_RIPENCC }, // 91.201.104.0 - 91.201.107.255 { 0x5bc96c00, 0x5bc96fff, REGISTRY_RIPENCC }, // 91.201.108.0 - 91.201.111.255 { 0x5bc97000, 0x5bc973ff, REGISTRY_RIPENCC }, // 91.201.112.0 - 91.201.115.255 { 0x5bc97400, 0x5bc977ff, REGISTRY_RIPENCC }, // 91.201.116.0 - 91.201.119.255 { 0x5bc97800, 0x5bc97fff, REGISTRY_RIPENCC }, // 91.201.120.0 - 91.201.127.255 { 0x5bc98000, 0x5bc98bff, REGISTRY_RIPENCC }, // 91.201.128.0 - 91.201.139.255 { 0x5bc98c00, 0x5bc98fff, REGISTRY_RIPENCC }, // 91.201.140.0 - 91.201.143.255 { 0x5bc99000, 0x5bc9a7ff, REGISTRY_RIPENCC }, // 91.201.144.0 - 91.201.167.255 { 0x5bc9a800, 0x5bc9abff, REGISTRY_RIPENCC }, // 91.201.168.0 - 91.201.171.255 { 0x5bc9ac00, 0x5bc9afff, REGISTRY_RIPENCC }, // 91.201.172.0 - 91.201.175.255 { 0x5bc9b000, 0x5bc9b3ff, REGISTRY_RIPENCC }, // 91.201.176.0 - 91.201.179.255 { 0x5bc9b400, 0x5bc9c3ff, REGISTRY_RIPENCC }, // 91.201.180.0 - 91.201.195.255 { 0x5bc9c400, 0x5bc9c9ff, REGISTRY_RIPENCC }, // 91.201.196.0 - 91.201.201.255 { 0x5bc9ca00, 0x5bc9d5ff, REGISTRY_RIPENCC }, // 91.201.202.0 - 91.201.213.255 { 0x5bc9d600, 0x5bc9dbff, REGISTRY_RIPENCC }, // 91.201.214.0 - 91.201.219.255 { 0x5bc9dc00, 0x5bca1bff, REGISTRY_RIPENCC }, // 91.201.220.0 - 91.202.27.255 { 0x5bca1c00, 0x5bca23ff, REGISTRY_RIPENCC }, // 91.202.28.0 - 91.202.35.255 { 0x5bca2400, 0x5bcaa7ff, REGISTRY_RIPENCC }, // 91.202.36.0 - 91.202.167.255 { 0x5bcaa800, 0x5bcaafff, REGISTRY_RIPENCC }, // 91.202.168.0 - 91.202.175.255 { 0x5bcab000, 0x5bcabbff, REGISTRY_RIPENCC }, // 91.202.176.0 - 91.202.187.255 { 0x5bcabc00, 0x5bcabfff, REGISTRY_RIPENCC }, // 91.202.188.0 - 91.202.191.255 { 0x5bcac000, 0x5bcacfff, REGISTRY_RIPENCC }, // 91.202.192.0 - 91.202.207.255 { 0x5bcad000, 0x5bcad3ff, REGISTRY_RIPENCC }, // 91.202.208.0 - 91.202.211.255 { 0x5bcad400, 0x5bcaf3ff, REGISTRY_RIPENCC }, // 91.202.212.0 - 91.202.243.255 { 0x5bcaf400, 0x5bcafbff, REGISTRY_RIPENCC }, // 91.202.244.0 - 91.202.251.255 { 0x5bcafc00, 0x5bcb07ff, REGISTRY_RIPENCC }, // 91.202.252.0 - 91.203.7.255 { 0x5bcb0800, 0x5bcb0bff, REGISTRY_RIPENCC }, // 91.203.8.0 - 91.203.11.255 { 0x5bcb0c00, 0x5bcb13ff, REGISTRY_RIPENCC }, // 91.203.12.0 - 91.203.19.255 { 0x5bcb1400, 0x5bcb17ff, REGISTRY_RIPENCC }, // 91.203.20.0 - 91.203.23.255 { 0x5bcb1800, 0x5bcb3bff, REGISTRY_RIPENCC }, // 91.203.24.0 - 91.203.59.255 { 0x5bcb3c00, 0x5bcb3fff, REGISTRY_RIPENCC }, // 91.203.60.0 - 91.203.63.255 { 0x5bcb4000, 0x5bcb4bff, REGISTRY_RIPENCC }, // 91.203.64.0 - 91.203.75.255 { 0x5bcb4c00, 0x5bcb4fff, REGISTRY_RIPENCC }, // 91.203.76.0 - 91.203.79.255 { 0x5bcb5000, 0x5bcb5bff, REGISTRY_RIPENCC }, // 91.203.80.0 - 91.203.91.255 { 0x5bcb5c00, 0x5bcb5fff, REGISTRY_RIPENCC }, // 91.203.92.0 - 91.203.95.255 { 0x5bcb6000, 0x5bcb63ff, REGISTRY_RIPENCC }, // 91.203.96.0 - 91.203.99.255 { 0x5bcb6400, 0x5bcb67ff, REGISTRY_RIPENCC }, // 91.203.100.0 - 91.203.103.255 { 0x5bcb6800, 0x5bcb69ff, REGISTRY_RIPENCC }, // 91.203.104.0 - 91.203.105.255 { 0x5bcb6a00, 0x5bcb6aff, REGISTRY_RIPENCC }, // 91.203.106.0 - 91.203.106.255 { 0x5bcb6b00, 0x5bcb77ff, REGISTRY_RIPENCC }, // 91.203.107.0 - 91.203.119.255 { 0x5bcb7800, 0x5bcb83ff, REGISTRY_RIPENCC }, // 91.203.120.0 - 91.203.131.255 { 0x5bcb8400, 0x5bcb87ff, REGISTRY_APNIC }, // 91.203.132.0 - 91.203.135.255 { 0x5bcb8800, 0x5bcba7ff, REGISTRY_RIPENCC }, // 91.203.136.0 - 91.203.167.255 { 0x5bcba800, 0x5bcbabff, REGISTRY_RIPENCC }, // 91.203.168.0 - 91.203.171.255 { 0x5bcbac00, 0x5bcbc3ff, REGISTRY_RIPENCC }, // 91.203.172.0 - 91.203.195.255 { 0x5bcbc400, 0x5bcbc7ff, REGISTRY_RIPENCC }, // 91.203.196.0 - 91.203.199.255 { 0x5bcbc800, 0x5bcbcbff, REGISTRY_RIPENCC }, // 91.203.200.0 - 91.203.203.255 { 0x5bcbcc00, 0x5bcbcfff, REGISTRY_RIPENCC }, // 91.203.204.0 - 91.203.207.255 { 0x5bcbd000, 0x5bcbd3ff, REGISTRY_RIPENCC }, // 91.203.208.0 - 91.203.211.255 { 0x5bcbd400, 0x5bcbd7ff, REGISTRY_RIPENCC }, // 91.203.212.0 - 91.203.215.255 { 0x5bcbd800, 0x5bcbdbff, REGISTRY_RIPENCC }, // 91.203.216.0 - 91.203.219.255 { 0x5bcbdc00, 0x5bcbdcff, REGISTRY_RIPENCC }, // 91.203.220.0 - 91.203.220.255 { 0x5bcbdd00, 0x5bcbe3ff, REGISTRY_RIPENCC }, // 91.203.221.0 - 91.203.227.255 { 0x5bcbe400, 0x5bcbe7ff, REGISTRY_RIPENCC }, // 91.203.228.0 - 91.203.231.255 { 0x5bcbe800, 0x5bcc0bff, REGISTRY_RIPENCC }, // 91.203.232.0 - 91.204.11.255 { 0x5bcc0c00, 0x5bcc17ff, REGISTRY_RIPENCC }, // 91.204.12.0 - 91.204.23.255 { 0x5bcc1800, 0x5bcc27ff, REGISTRY_RIPENCC }, // 91.204.24.0 - 91.204.39.255 { 0x5bcc2800, 0x5bcc37ff, REGISTRY_RIPENCC }, // 91.204.40.0 - 91.204.55.255 { 0x5bcc3800, 0x5bcc5fff, REGISTRY_RIPENCC }, // 91.204.56.0 - 91.204.95.255 { 0x5bcc6000, 0x5bcc63ff, REGISTRY_RIPENCC }, // 91.204.96.0 - 91.204.99.255 { 0x5bcc6400, 0x5bcc7bff, REGISTRY_RIPENCC }, // 91.204.100.0 - 91.204.123.255 { 0x5bcc7c00, 0x5bcc7fff, REGISTRY_RIPENCC }, // 91.204.124.0 - 91.204.127.255 { 0x5bcc8000, 0x5bcc9fff, REGISTRY_RIPENCC }, // 91.204.128.0 - 91.204.159.255 { 0x5bcca000, 0x5bcca2ff, REGISTRY_RIPENCC }, // 91.204.160.0 - 91.204.162.255 { 0x5bcca300, 0x5bcca7ff, REGISTRY_RIPENCC }, // 91.204.163.0 - 91.204.167.255 { 0x5bcca800, 0x5bccabff, REGISTRY_RIPENCC }, // 91.204.168.0 - 91.204.171.255 { 0x5bccac00, 0x5bccdbff, REGISTRY_RIPENCC }, // 91.204.172.0 - 91.204.219.255 { 0x5bccdc00, 0x5bcce3ff, REGISTRY_RIPENCC }, // 91.204.220.0 - 91.204.227.255 { 0x5bcce400, 0x5bcce7ff, REGISTRY_RIPENCC }, // 91.204.228.0 - 91.204.231.255 { 0x5bcce800, 0x5bccebff, REGISTRY_RIPENCC }, // 91.204.232.0 - 91.204.235.255 { 0x5bccec00, 0x5bccf7ff, REGISTRY_RIPENCC }, // 91.204.236.0 - 91.204.247.255 { 0x5bccf800, 0x5bccfbff, REGISTRY_RIPENCC }, // 91.204.248.0 - 91.204.251.255 { 0x5bccfc00, 0x5bccffff, REGISTRY_RIPENCC }, // 91.204.252.0 - 91.204.255.255 { 0x5bcd0000, 0x5bcd07ff, REGISTRY_RIPENCC }, // 91.205.0.0 - 91.205.7.255 { 0x5bcd0800, 0x5bcd0bff, REGISTRY_RIPENCC }, // 91.205.8.0 - 91.205.11.255 { 0x5bcd0c00, 0x5bcd0fff, REGISTRY_RIPENCC }, // 91.205.12.0 - 91.205.15.255 { 0x5bcd1000, 0x5bcd27ff, REGISTRY_RIPENCC }, // 91.205.16.0 - 91.205.39.255 { 0x5bcd2800, 0x5bcd2fff, REGISTRY_RIPENCC }, // 91.205.40.0 - 91.205.47.255 { 0x5bcd3000, 0x5bcd5bff, REGISTRY_RIPENCC }, // 91.205.48.0 - 91.205.91.255 { 0x5bcd5c00, 0x5bcd5fff, REGISTRY_RIPENCC }, // 91.205.92.0 - 91.205.95.255 { 0x5bcd6000, 0x5bcd67ff, REGISTRY_RIPENCC }, // 91.205.96.0 - 91.205.103.255 { 0x5bcd6800, 0x5bcd6fff, REGISTRY_RIPENCC }, // 91.205.104.0 - 91.205.111.255 { 0x5bcd7000, 0x5bcd73ff, REGISTRY_RIPENCC }, // 91.205.112.0 - 91.205.115.255 { 0x5bcd7400, 0x5bcd77ff, REGISTRY_RIPENCC }, // 91.205.116.0 - 91.205.119.255 { 0x5bcd7800, 0x5bcd7bff, REGISTRY_RIPENCC }, // 91.205.120.0 - 91.205.123.255 { 0x5bcd7c00, 0x5bcd7fff, REGISTRY_RIPENCC }, // 91.205.124.0 - 91.205.127.255 { 0x5bcd8000, 0x5bcd9bff, REGISTRY_RIPENCC }, // 91.205.128.0 - 91.205.155.255 { 0x5bcd9c00, 0x5bcd9fff, REGISTRY_RIPENCC }, // 91.205.156.0 - 91.205.159.255 { 0x5bcda000, 0x5bcdabff, REGISTRY_RIPENCC }, // 91.205.160.0 - 91.205.171.255 { 0x5bcdac00, 0x5bcdafff, REGISTRY_RIPENCC }, // 91.205.172.0 - 91.205.175.255 { 0x5bcdb000, 0x5bcdb7ff, REGISTRY_RIPENCC }, // 91.205.176.0 - 91.205.183.255 { 0x5bcdb800, 0x5bcdbfff, REGISTRY_RIPENCC }, // 91.205.184.0 - 91.205.191.255 { 0x5bcdc000, 0x5bcdc3ff, REGISTRY_RIPENCC }, // 91.205.192.0 - 91.205.195.255 { 0x5bcdc400, 0x5bcdc7ff, REGISTRY_RIPENCC }, // 91.205.196.0 - 91.205.199.255 { 0x5bcdc800, 0x5bcddbff, REGISTRY_RIPENCC }, // 91.205.200.0 - 91.205.219.255 { 0x5bcddc00, 0x5bcddfff, REGISTRY_RIPENCC }, // 91.205.220.0 - 91.205.223.255 { 0x5bcde000, 0x5bcde3ff, REGISTRY_RIPENCC }, // 91.205.224.0 - 91.205.227.255 { 0x5bcde400, 0x5bcdebff, REGISTRY_RIPENCC }, // 91.205.228.0 - 91.205.235.255 { 0x5bcdec00, 0x5bce01ff, REGISTRY_RIPENCC }, // 91.205.236.0 - 91.206.1.255 { 0x5bce0200, 0x5bce03ff, REGISTRY_RIPENCC }, // 91.206.2.0 - 91.206.3.255 { 0x5bce0400, 0x5bce09ff, REGISTRY_RIPENCC }, // 91.206.4.0 - 91.206.9.255 { 0x5bce0a00, 0x5bce0bff, REGISTRY_RIPENCC }, // 91.206.10.0 - 91.206.11.255 { 0x5bce0c00, 0x5bce0dff, REGISTRY_RIPENCC }, // 91.206.12.0 - 91.206.13.255 { 0x5bce0e00, 0x5bce0fff, REGISTRY_RIPENCC }, // 91.206.14.0 - 91.206.15.255 { 0x5bce1000, 0x5bce1bff, REGISTRY_RIPENCC }, // 91.206.16.0 - 91.206.27.255 { 0x5bce1e00, 0x5bce25ff, REGISTRY_RIPENCC }, // 91.206.30.0 - 91.206.37.255 { 0x5bce2600, 0x5bce27ff, REGISTRY_RIPENCC }, // 91.206.38.0 - 91.206.39.255 { 0x5bce2800, 0x5bce2fff, REGISTRY_RIPENCC }, // 91.206.40.0 - 91.206.47.255 { 0x5bce3000, 0x5bce31ff, REGISTRY_RIPENCC }, // 91.206.48.0 - 91.206.49.255 { 0x5bce3200, 0x5bce3fff, REGISTRY_RIPENCC }, // 91.206.50.0 - 91.206.63.255 { 0x5bce4000, 0x5bce41ff, REGISTRY_RIPENCC }, // 91.206.64.0 - 91.206.65.255 { 0x5bce4200, 0x5bce43ff, REGISTRY_RIPENCC }, // 91.206.66.0 - 91.206.67.255 { 0x5bce4400, 0x5bce47ff, REGISTRY_RIPENCC }, // 91.206.68.0 - 91.206.71.255 { 0x5bce4800, 0x5bce5bff, REGISTRY_RIPENCC }, // 91.206.72.0 - 91.206.91.255 { 0x5bce5c00, 0x5bce61ff, REGISTRY_RIPENCC }, // 91.206.92.0 - 91.206.97.255 { 0x5bce6200, 0x5bce69ff, REGISTRY_RIPENCC }, // 91.206.98.0 - 91.206.105.255 { 0x5bce6a00, 0x5bce6bff, REGISTRY_RIPENCC }, // 91.206.106.0 - 91.206.107.255 { 0x5bce6c00, 0x5bce6fff, REGISTRY_RIPENCC }, // 91.206.108.0 - 91.206.111.255 { 0x5bce7000, 0x5bce71ff, REGISTRY_RIPENCC }, // 91.206.112.0 - 91.206.113.255 { 0x5bce7200, 0x5bce79ff, REGISTRY_RIPENCC }, // 91.206.114.0 - 91.206.121.255 { 0x5bce7a00, 0x5bce7bff, REGISTRY_RIPENCC }, // 91.206.122.0 - 91.206.123.255 { 0x5bce7c00, 0x5bce8bff, REGISTRY_RIPENCC }, // 91.206.124.0 - 91.206.139.255 { 0x5bce8c00, 0x5bce8fff, REGISTRY_RIPENCC }, // 91.206.140.0 - 91.206.143.255 { 0x5bce9000, 0x5bce9bff, REGISTRY_RIPENCC }, // 91.206.144.0 - 91.206.155.255 { 0x5bce9c00, 0x5bce9dff, REGISTRY_RIPENCC }, // 91.206.156.0 - 91.206.157.255 { 0x5bce9e00, 0x5bcea1ff, REGISTRY_RIPENCC }, // 91.206.158.0 - 91.206.161.255 { 0x5bcea200, 0x5bcea3ff, REGISTRY_RIPENCC }, // 91.206.162.0 - 91.206.163.255 { 0x5bcea400, 0x5bcea7ff, REGISTRY_RIPENCC }, // 91.206.164.0 - 91.206.167.255 { 0x5bcea800, 0x5bcea9ff, REGISTRY_RIPENCC }, // 91.206.168.0 - 91.206.169.255 { 0x5bceaa00, 0x5bceb1ff, REGISTRY_RIPENCC }, // 91.206.170.0 - 91.206.177.255 { 0x5bceb200, 0x5bceb3ff, REGISTRY_RIPENCC }, // 91.206.178.0 - 91.206.179.255 { 0x5bceb400, 0x5bceb5ff, REGISTRY_RIPENCC }, // 91.206.180.0 - 91.206.181.255 { 0x5bceb600, 0x5bceb7ff, REGISTRY_RIPENCC }, // 91.206.182.0 - 91.206.183.255 { 0x5bceb800, 0x5bcec1ff, REGISTRY_RIPENCC }, // 91.206.184.0 - 91.206.193.255 { 0x5bcec200, 0x5bcec3ff, REGISTRY_RIPENCC }, // 91.206.194.0 - 91.206.195.255 { 0x5bcec400, 0x5bcec9ff, REGISTRY_RIPENCC }, // 91.206.196.0 - 91.206.201.255 { 0x5bceca00, 0x5bcecdff, REGISTRY_RIPENCC }, // 91.206.202.0 - 91.206.205.255 { 0x5bcece00, 0x5bcecfff, REGISTRY_RIPENCC }, // 91.206.206.0 - 91.206.207.255 { 0x5bced000, 0x5bced1ff, REGISTRY_RIPENCC }, // 91.206.208.0 - 91.206.209.255 { 0x5bced200, 0x5bcee3ff, REGISTRY_RIPENCC }, // 91.206.210.0 - 91.206.227.255 { 0x5bcee400, 0x5bcee7ff, REGISTRY_RIPENCC }, // 91.206.228.0 - 91.206.231.255 { 0x5bcee800, 0x5bceffff, REGISTRY_RIPENCC }, // 91.206.232.0 - 91.206.255.255 { 0x5bcf0000, 0x5bcf01ff, REGISTRY_RIPENCC }, // 91.207.0.0 - 91.207.1.255 { 0x5bcf0200, 0x5bcf0bff, REGISTRY_RIPENCC }, // 91.207.2.0 - 91.207.11.255 { 0x5bcf0c00, 0x5bcf0dff, REGISTRY_RIPENCC }, // 91.207.12.0 - 91.207.13.255 { 0x5bcf0e00, 0x5bcf17ff, REGISTRY_RIPENCC }, // 91.207.14.0 - 91.207.23.255 { 0x5bcf1800, 0x5bcf19ff, REGISTRY_RIPENCC }, // 91.207.24.0 - 91.207.25.255 { 0x5bcf1a00, 0x5bcf1fff, REGISTRY_RIPENCC }, // 91.207.26.0 - 91.207.31.255 { 0x5bcf2000, 0x5bcf23ff, REGISTRY_RIPENCC }, // 91.207.32.0 - 91.207.35.255 { 0x5bcf2400, 0x5bcf37ff, REGISTRY_RIPENCC }, // 91.207.36.0 - 91.207.55.255 { 0x5bcf3800, 0x5bcf39ff, REGISTRY_RIPENCC }, // 91.207.56.0 - 91.207.57.255 { 0x5bcf3a00, 0x5bcf43ff, REGISTRY_RIPENCC }, // 91.207.58.0 - 91.207.67.255 { 0x5bcf4400, 0x5bcf49ff, REGISTRY_RIPENCC }, // 91.207.68.0 - 91.207.73.255 { 0x5bcf4a00, 0x5bcf4eff, REGISTRY_RIPENCC }, // 91.207.74.0 - 91.207.78.255 { 0x5bcf5000, 0x5bcf5dff, REGISTRY_RIPENCC }, // 91.207.80.0 - 91.207.93.255 { 0x5bcf5e00, 0x5bcf61ff, REGISTRY_RIPENCC }, // 91.207.94.0 - 91.207.97.255 { 0x5bcf6200, 0x5bcf63ff, REGISTRY_RIPENCC }, // 91.207.98.0 - 91.207.99.255 { 0x5bcf6400, 0x5bcf65ff, REGISTRY_RIPENCC }, // 91.207.100.0 - 91.207.101.255 { 0x5bcf6600, 0x5bcf6bff, REGISTRY_RIPENCC }, // 91.207.102.0 - 91.207.107.255 { 0x5bcf6c00, 0x5bcf6dff, REGISTRY_RIPENCC }, // 91.207.108.0 - 91.207.109.255 { 0x5bcf6e00, 0x5bcf73ff, REGISTRY_RIPENCC }, // 91.207.110.0 - 91.207.115.255 { 0x5bcf7400, 0x5bcf75ff, REGISTRY_RIPENCC }, // 91.207.116.0 - 91.207.117.255 { 0x5bcf7600, 0x5bcf8fff, REGISTRY_RIPENCC }, // 91.207.118.0 - 91.207.143.255 { 0x5bcf9000, 0x5bcf91ff, REGISTRY_RIPENCC }, // 91.207.144.0 - 91.207.145.255 { 0x5bcf9200, 0x5bcf99ff, REGISTRY_RIPENCC }, // 91.207.146.0 - 91.207.153.255 { 0x5bcf9a00, 0x5bcf9bff, REGISTRY_RIPENCC }, // 91.207.154.0 - 91.207.155.255 { 0x5bcf9c00, 0x5bcfa3ff, REGISTRY_RIPENCC }, // 91.207.156.0 - 91.207.163.255 { 0x5bcfa400, 0x5bcfa5ff, REGISTRY_RIPENCC }, // 91.207.164.0 - 91.207.165.255 { 0x5bcfa600, 0x5bcfabff, REGISTRY_RIPENCC }, // 91.207.166.0 - 91.207.171.255 { 0x5bcfac00, 0x5bcfafff, REGISTRY_RIPENCC }, // 91.207.172.0 - 91.207.175.255 { 0x5bcfb000, 0x5bcfb1ff, REGISTRY_RIPENCC }, // 91.207.176.0 - 91.207.177.255 { 0x5bcfb200, 0x5bcfb3ff, REGISTRY_RIPENCC }, // 91.207.178.0 - 91.207.179.255 { 0x5bcfb400, 0x5bcfb5ff, REGISTRY_RIPENCC }, // 91.207.180.0 - 91.207.181.255 { 0x5bcfb600, 0x5bcfb7ff, REGISTRY_RIPENCC }, // 91.207.182.0 - 91.207.183.255 { 0x5bcfb800, 0x5bcfb9ff, REGISTRY_RIPENCC }, // 91.207.184.0 - 91.207.185.255 { 0x5bcfba00, 0x5bcfbbff, REGISTRY_RIPENCC }, // 91.207.186.0 - 91.207.187.255 { 0x5bcfbc00, 0x5bcfc3ff, REGISTRY_RIPENCC }, // 91.207.188.0 - 91.207.195.255 { 0x5bcfc400, 0x5bcfc5ff, REGISTRY_RIPENCC }, // 91.207.196.0 - 91.207.197.255 { 0x5bcfc600, 0x5bcfcbff, REGISTRY_RIPENCC }, // 91.207.198.0 - 91.207.203.255 { 0x5bcfcc00, 0x5bcfcfff, REGISTRY_RIPENCC }, // 91.207.204.0 - 91.207.207.255 { 0x5bcfd000, 0x5bcfd5ff, REGISTRY_RIPENCC }, // 91.207.208.0 - 91.207.213.255 { 0x5bcfd600, 0x5bcfd7ff, REGISTRY_RIPENCC }, // 91.207.214.0 - 91.207.215.255 { 0x5bcfd800, 0x5bcfddff, REGISTRY_RIPENCC }, // 91.207.216.0 - 91.207.221.255 { 0x5bcfde00, 0x5bcfe1ff, REGISTRY_RIPENCC }, // 91.207.222.0 - 91.207.225.255 { 0x5bcfe200, 0x5bcfe5ff, REGISTRY_RIPENCC }, // 91.207.226.0 - 91.207.229.255 { 0x5bcfe600, 0x5bcfe7ff, REGISTRY_RIPENCC }, // 91.207.230.0 - 91.207.231.255 { 0x5bcfe800, 0x5bcfe9ff, REGISTRY_RIPENCC }, // 91.207.232.0 - 91.207.233.255 { 0x5bcfea00, 0x5bcfebff, REGISTRY_RIPENCC }, // 91.207.234.0 - 91.207.235.255 { 0x5bcfec00, 0x5bcff7ff, REGISTRY_RIPENCC }, // 91.207.236.0 - 91.207.247.255 { 0x5bcff800, 0x5bcff8ff, REGISTRY_RIPENCC }, // 91.207.248.0 - 91.207.248.255 { 0x5bcff900, 0x5bcfffff, REGISTRY_RIPENCC }, // 91.207.249.0 - 91.207.255.255 { 0x5bd00000, 0x5bd000ff, REGISTRY_RIPENCC }, // 91.208.0.0 - 91.208.0.255 { 0x5bd00100, 0x5bd005ff, REGISTRY_RIPENCC }, // 91.208.1.0 - 91.208.5.255 { 0x5bd00600, 0x5bd006ff, REGISTRY_RIPENCC }, // 91.208.6.0 - 91.208.6.255 { 0x5bd00700, 0x5bd00fff, REGISTRY_RIPENCC }, // 91.208.7.0 - 91.208.15.255 { 0x5bd01000, 0x5bd011ff, REGISTRY_RIPENCC }, // 91.208.16.0 - 91.208.17.255 { 0x5bd01200, 0x5bd012ff, REGISTRY_RIPENCC }, // 91.208.18.0 - 91.208.18.255 { 0x5bd01300, 0x5bd013ff, REGISTRY_RIPENCC }, // 91.208.19.0 - 91.208.19.255 { 0x5bd01400, 0x5bd014ff, REGISTRY_RIPENCC }, // 91.208.20.0 - 91.208.20.255 { 0x5bd01500, 0x5bd015ff, REGISTRY_RIPENCC }, // 91.208.21.0 - 91.208.21.255 { 0x5bd01600, 0x5bd01eff, REGISTRY_RIPENCC }, // 91.208.22.0 - 91.208.30.255 { 0x5bd01f00, 0x5bd020ff, REGISTRY_RIPENCC }, // 91.208.31.0 - 91.208.32.255 { 0x5bd02100, 0x5bd02dff, REGISTRY_RIPENCC }, // 91.208.33.0 - 91.208.45.255 { 0x5bd02e00, 0x5bd02eff, REGISTRY_RIPENCC }, // 91.208.46.0 - 91.208.46.255 { 0x5bd02f00, 0x5bd02fff, REGISTRY_RIPENCC }, // 91.208.47.0 - 91.208.47.255 { 0x5bd03000, 0x5bd030ff, REGISTRY_RIPENCC }, // 91.208.48.0 - 91.208.48.255 { 0x5bd03100, 0x5bd033ff, REGISTRY_RIPENCC }, // 91.208.49.0 - 91.208.51.255 { 0x5bd03400, 0x5bd034ff, REGISTRY_RIPENCC }, // 91.208.52.0 - 91.208.52.255 { 0x5bd03500, 0x5bd03aff, REGISTRY_RIPENCC }, // 91.208.53.0 - 91.208.58.255 { 0x5bd03b00, 0x5bd03bff, REGISTRY_RIPENCC }, // 91.208.59.0 - 91.208.59.255 { 0x5bd03c00, 0x5bd03cff, REGISTRY_RIPENCC }, // 91.208.60.0 - 91.208.60.255 { 0x5bd03d00, 0x5bd03dff, REGISTRY_RIPENCC }, // 91.208.61.0 - 91.208.61.255 { 0x5bd03e00, 0x5bd03fff, REGISTRY_RIPENCC }, // 91.208.62.0 - 91.208.63.255 { 0x5bd04000, 0x5bd040ff, REGISTRY_RIPENCC }, // 91.208.64.0 - 91.208.64.255 { 0x5bd04100, 0x5bd042ff, REGISTRY_RIPENCC }, // 91.208.65.0 - 91.208.66.255 { 0x5bd04400, 0x5bd044ff, REGISTRY_RIPENCC }, // 91.208.68.0 - 91.208.68.255 { 0x5bd04500, 0x5bd045ff, REGISTRY_RIPENCC }, // 91.208.69.0 - 91.208.69.255 { 0x5bd04600, 0x5bd048ff, REGISTRY_RIPENCC }, // 91.208.70.0 - 91.208.72.255 { 0x5bd04900, 0x5bd049ff, REGISTRY_RIPENCC }, // 91.208.73.0 - 91.208.73.255 { 0x5bd04a00, 0x5bd04cff, REGISTRY_RIPENCC }, // 91.208.74.0 - 91.208.76.255 { 0x5bd04d00, 0x5bd04dff, REGISTRY_RIPENCC }, // 91.208.77.0 - 91.208.77.255 { 0x5bd04e00, 0x5bd054ff, REGISTRY_RIPENCC }, // 91.208.78.0 - 91.208.84.255 { 0x5bd05500, 0x5bd055ff, REGISTRY_RIPENCC }, // 91.208.85.0 - 91.208.85.255 { 0x5bd05600, 0x5bd063ff, REGISTRY_RIPENCC }, // 91.208.86.0 - 91.208.99.255 { 0x5bd06400, 0x5bd064ff, REGISTRY_RIPENCC }, // 91.208.100.0 - 91.208.100.255 { 0x5bd06500, 0x5bd067ff, REGISTRY_RIPENCC }, // 91.208.101.0 - 91.208.103.255 { 0x5bd06800, 0x5bd068ff, REGISTRY_RIPENCC }, // 91.208.104.0 - 91.208.104.255 { 0x5bd06900, 0x5bd06bff, REGISTRY_RIPENCC }, // 91.208.105.0 - 91.208.107.255 { 0x5bd06c00, 0x5bd06dff, REGISTRY_RIPENCC }, // 91.208.108.0 - 91.208.109.255 { 0x5bd06e00, 0x5bd06fff, REGISTRY_RIPENCC }, // 91.208.110.0 - 91.208.111.255 { 0x5bd07000, 0x5bd072ff, REGISTRY_RIPENCC }, // 91.208.112.0 - 91.208.114.255 { 0x5bd07300, 0x5bd07eff, REGISTRY_RIPENCC }, // 91.208.115.0 - 91.208.126.255 { 0x5bd07f00, 0x5bd080ff, REGISTRY_RIPENCC }, // 91.208.127.0 - 91.208.128.255 { 0x5bd08100, 0x5bd087ff, REGISTRY_RIPENCC }, // 91.208.129.0 - 91.208.135.255 { 0x5bd08800, 0x5bd089ff, REGISTRY_RIPENCC }, // 91.208.136.0 - 91.208.137.255 { 0x5bd08a00, 0x5bd096ff, REGISTRY_RIPENCC }, // 91.208.138.0 - 91.208.150.255 { 0x5bd09700, 0x5bd097ff, REGISTRY_RIPENCC }, // 91.208.151.0 - 91.208.151.255 { 0x5bd09800, 0x5bd0a1ff, REGISTRY_RIPENCC }, // 91.208.152.0 - 91.208.161.255 { 0x5bd0a200, 0x5bd0a2ff, REGISTRY_RIPENCC }, // 91.208.162.0 - 91.208.162.255 { 0x5bd0a400, 0x5bd0afff, REGISTRY_RIPENCC }, // 91.208.164.0 - 91.208.175.255 { 0x5bd0b000, 0x5bd0b1ff, REGISTRY_RIPENCC }, // 91.208.176.0 - 91.208.177.255 { 0x5bd0b200, 0x5bd0b7ff, REGISTRY_RIPENCC }, // 91.208.178.0 - 91.208.183.255 { 0x5bd0b800, 0x5bd0b8ff, REGISTRY_RIPENCC }, // 91.208.184.0 - 91.208.184.255 { 0x5bd0b900, 0x5bd0c4ff, REGISTRY_RIPENCC }, // 91.208.185.0 - 91.208.196.255 { 0x5bd0c500, 0x5bd0c5ff, REGISTRY_RIPENCC }, // 91.208.197.0 - 91.208.197.255 { 0x5bd0c600, 0x5bd0cbff, REGISTRY_RIPENCC }, // 91.208.198.0 - 91.208.203.255 { 0x5bd0cd00, 0x5bd0cdff, REGISTRY_RIPENCC }, // 91.208.205.0 - 91.208.205.255 { 0x5bd0ce00, 0x5bd0cfff, REGISTRY_RIPENCC }, // 91.208.206.0 - 91.208.207.255 { 0x5bd0d000, 0x5bd0d0ff, REGISTRY_APNIC }, // 91.208.208.0 - 91.208.208.255 { 0x5bd0d100, 0x5bd0e3ff, REGISTRY_RIPENCC }, // 91.208.209.0 - 91.208.227.255 { 0x5bd0e400, 0x5bd0e4ff, REGISTRY_APNIC }, // 91.208.228.0 - 91.208.228.255 { 0x5bd0e500, 0x5bd0e5ff, REGISTRY_RIPENCC }, // 91.208.229.0 - 91.208.229.255 { 0x5bd0e600, 0x5bd0e6ff, REGISTRY_APNIC }, // 91.208.230.0 - 91.208.230.255 { 0x5bd0e700, 0x5bd0e8ff, REGISTRY_RIPENCC }, // 91.208.231.0 - 91.208.232.255 { 0x5bd0e900, 0x5bd0e9ff, REGISTRY_APNIC }, // 91.208.233.0 - 91.208.233.255 { 0x5bd0ea00, 0x5bd0ebff, REGISTRY_RIPENCC }, // 91.208.234.0 - 91.208.235.255 { 0x5bd0ec00, 0x5bd0ecff, REGISTRY_RIPENCC }, // 91.208.236.0 - 91.208.236.255 { 0x5bd0ed00, 0x5bd0efff, REGISTRY_RIPENCC }, // 91.208.237.0 - 91.208.239.255 { 0x5bd0f000, 0x5bd0f0ff, REGISTRY_RIPENCC }, // 91.208.240.0 - 91.208.240.255 { 0x5bd0f100, 0x5bd0f4ff, REGISTRY_RIPENCC }, // 91.208.241.0 - 91.208.244.255 { 0x5bd0f500, 0x5bd0f6ff, REGISTRY_RIPENCC }, // 91.208.245.0 - 91.208.246.255 { 0x5bd0f700, 0x5bd0faff, REGISTRY_RIPENCC }, // 91.208.247.0 - 91.208.250.255 { 0x5bd0fb00, 0x5bd0fbff, REGISTRY_RIPENCC }, // 91.208.251.0 - 91.208.251.255 { 0x5bd0fc00, 0x5bd103ff, REGISTRY_RIPENCC }, // 91.208.252.0 - 91.209.3.255 { 0x5bd10400, 0x5bd104ff, REGISTRY_RIPENCC }, // 91.209.4.0 - 91.209.4.255 { 0x5bd10500, 0x5bd10bff, REGISTRY_RIPENCC }, // 91.209.5.0 - 91.209.11.255 { 0x5bd10c00, 0x5bd10cff, REGISTRY_RIPENCC }, // 91.209.12.0 - 91.209.12.255 { 0x5bd10d00, 0x5bd10dff, REGISTRY_RIPENCC }, // 91.209.13.0 - 91.209.13.255 { 0x5bd10e00, 0x5bd10eff, REGISTRY_RIPENCC }, // 91.209.14.0 - 91.209.14.255 { 0x5bd10f00, 0x5bd10fff, REGISTRY_RIPENCC }, // 91.209.15.0 - 91.209.15.255 { 0x5bd11000, 0x5bd110ff, REGISTRY_RIPENCC }, // 91.209.16.0 - 91.209.16.255 { 0x5bd11100, 0x5bd114ff, REGISTRY_RIPENCC }, // 91.209.17.0 - 91.209.20.255 { 0x5bd11500, 0x5bd116ff, REGISTRY_RIPENCC }, // 91.209.21.0 - 91.209.22.255 { 0x5bd11700, 0x5bd11eff, REGISTRY_RIPENCC }, // 91.209.23.0 - 91.209.30.255 { 0x5bd11f00, 0x5bd11fff, REGISTRY_RIPENCC }, // 91.209.31.0 - 91.209.31.255 { 0x5bd12000, 0x5bd127ff, REGISTRY_RIPENCC }, // 91.209.32.0 - 91.209.39.255 { 0x5bd12800, 0x5bd128ff, REGISTRY_RIPENCC }, // 91.209.40.0 - 91.209.40.255 { 0x5bd12900, 0x5bd12dff, REGISTRY_RIPENCC }, // 91.209.41.0 - 91.209.45.255 { 0x5bd12e00, 0x5bd12eff, REGISTRY_RIPENCC }, // 91.209.46.0 - 91.209.46.255 { 0x5bd12f00, 0x5bd12fff, REGISTRY_RIPENCC }, // 91.209.47.0 - 91.209.47.255 { 0x5bd13000, 0x5bd130ff, REGISTRY_RIPENCC }, // 91.209.48.0 - 91.209.48.255 { 0x5bd13100, 0x5bd131ff, REGISTRY_RIPENCC }, // 91.209.49.0 - 91.209.49.255 { 0x5bd13200, 0x5bd132ff, REGISTRY_RIPENCC }, // 91.209.50.0 - 91.209.50.255 { 0x5bd13300, 0x5bd138ff, REGISTRY_RIPENCC }, // 91.209.51.0 - 91.209.56.255 { 0x5bd13900, 0x5bd13aff, REGISTRY_RIPENCC }, // 91.209.57.0 - 91.209.58.255 { 0x5bd13b00, 0x5bd13dff, REGISTRY_RIPENCC }, // 91.209.59.0 - 91.209.61.255 { 0x5bd13e00, 0x5bd13fff, REGISTRY_RIPENCC }, // 91.209.62.0 - 91.209.63.255 { 0x5bd14000, 0x5bd143ff, REGISTRY_RIPENCC }, // 91.209.64.0 - 91.209.67.255 { 0x5bd14400, 0x5bd144ff, REGISTRY_RIPENCC }, // 91.209.68.0 - 91.209.68.255 { 0x5bd14500, 0x5bd148ff, REGISTRY_RIPENCC }, // 91.209.69.0 - 91.209.72.255 { 0x5bd14900, 0x5bd149ff, REGISTRY_RIPENCC }, // 91.209.73.0 - 91.209.73.255 { 0x5bd14a00, 0x5bd14eff, REGISTRY_RIPENCC }, // 91.209.74.0 - 91.209.78.255 { 0x5bd14f00, 0x5bd14fff, REGISTRY_RIPENCC }, // 91.209.79.0 - 91.209.79.255 { 0x5bd15000, 0x5bd155ff, REGISTRY_RIPENCC }, // 91.209.80.0 - 91.209.85.255 { 0x5bd15600, 0x5bd157ff, REGISTRY_RIPENCC }, // 91.209.86.0 - 91.209.87.255 { 0x5bd15800, 0x5bd159ff, REGISTRY_RIPENCC }, // 91.209.88.0 - 91.209.89.255 { 0x5bd15a00, 0x5bd15aff, REGISTRY_RIPENCC }, // 91.209.90.0 - 91.209.90.255 { 0x5bd15b00, 0x5bd15dff, REGISTRY_RIPENCC }, // 91.209.91.0 - 91.209.93.255 { 0x5bd15e00, 0x5bd15eff, REGISTRY_RIPENCC }, // 91.209.94.0 - 91.209.94.255 { 0x5bd15f00, 0x5bd15fff, REGISTRY_RIPENCC }, // 91.209.95.0 - 91.209.95.255 { 0x5bd16000, 0x5bd160ff, REGISTRY_RIPENCC }, // 91.209.96.0 - 91.209.96.255 { 0x5bd16100, 0x5bd162ff, REGISTRY_RIPENCC }, // 91.209.97.0 - 91.209.98.255 { 0x5bd16300, 0x5bd164ff, REGISTRY_RIPENCC }, // 91.209.99.0 - 91.209.100.255 { 0x5bd16500, 0x5bd168ff, REGISTRY_RIPENCC }, // 91.209.101.0 - 91.209.104.255 { 0x5bd16900, 0x5bd169ff, REGISTRY_RIPENCC }, // 91.209.105.0 - 91.209.105.255 { 0x5bd16a00, 0x5bd16aff, REGISTRY_RIPENCC }, // 91.209.106.0 - 91.209.106.255 { 0x5bd16b00, 0x5bd16bff, REGISTRY_RIPENCC }, // 91.209.107.0 - 91.209.107.255 { 0x5bd16c00, 0x5bd172ff, REGISTRY_RIPENCC }, // 91.209.108.0 - 91.209.114.255 { 0x5bd17300, 0x5bd173ff, REGISTRY_RIPENCC }, // 91.209.115.0 - 91.209.115.255 { 0x5bd17400, 0x5bd18bff, REGISTRY_RIPENCC }, // 91.209.116.0 - 91.209.139.255 { 0x5bd18d00, 0x5bd18eff, REGISTRY_RIPENCC }, // 91.209.141.0 - 91.209.142.255 { 0x5bd18f00, 0x5bd18fff, REGISTRY_RIPENCC }, // 91.209.143.0 - 91.209.143.255 { 0x5bd19000, 0x5bd194ff, REGISTRY_RIPENCC }, // 91.209.144.0 - 91.209.148.255 { 0x5bd19500, 0x5bd195ff, REGISTRY_RIPENCC }, // 91.209.149.0 - 91.209.149.255 { 0x5bd19600, 0x5bd196ff, REGISTRY_RIPENCC }, // 91.209.150.0 - 91.209.150.255 { 0x5bd19700, 0x5bd197ff, REGISTRY_RIPENCC }, // 91.209.151.0 - 91.209.151.255 { 0x5bd19800, 0x5bd1a0ff, REGISTRY_RIPENCC }, // 91.209.152.0 - 91.209.160.255 { 0x5bd1a100, 0x5bd1a3ff, REGISTRY_RIPENCC }, // 91.209.161.0 - 91.209.163.255 { 0x5bd1a400, 0x5bd1a6ff, REGISTRY_RIPENCC }, // 91.209.164.0 - 91.209.166.255 { 0x5bd1a700, 0x5bd1a7ff, REGISTRY_RIPENCC }, // 91.209.167.0 - 91.209.167.255 { 0x5bd1a800, 0x5bd1aeff, REGISTRY_RIPENCC }, // 91.209.168.0 - 91.209.174.255 { 0x5bd1af00, 0x5bd1afff, REGISTRY_RIPENCC }, // 91.209.175.0 - 91.209.175.255 { 0x5bd1b000, 0x5bd1b2ff, REGISTRY_RIPENCC }, // 91.209.176.0 - 91.209.178.255 { 0x5bd1b300, 0x5bd1b3ff, REGISTRY_RIPENCC }, // 91.209.179.0 - 91.209.179.255 { 0x5bd1b400, 0x5bd1b5ff, REGISTRY_RIPENCC }, // 91.209.180.0 - 91.209.181.255 { 0x5bd1b600, 0x5bd1b8ff, REGISTRY_RIPENCC }, // 91.209.182.0 - 91.209.184.255 { 0x5bd1b900, 0x5bd1b9ff, REGISTRY_RIPENCC }, // 91.209.185.0 - 91.209.185.255 { 0x5bd1ba00, 0x5bd1baff, REGISTRY_RIPENCC }, // 91.209.186.0 - 91.209.186.255 { 0x5bd1bb00, 0x5bd1bdff, REGISTRY_RIPENCC }, // 91.209.187.0 - 91.209.189.255 { 0x5bd1be00, 0x5bd1beff, REGISTRY_RIPENCC }, // 91.209.190.0 - 91.209.190.255 { 0x5bd1bf00, 0x5bd1ccff, REGISTRY_RIPENCC }, // 91.209.191.0 - 91.209.204.255 { 0x5bd1cd00, 0x5bd1cdff, REGISTRY_RIPENCC }, // 91.209.205.0 - 91.209.205.255 { 0x5bd1ce00, 0x5bd1cfff, REGISTRY_RIPENCC }, // 91.209.206.0 - 91.209.207.255 { 0x5bd1d100, 0x5bd1d1ff, REGISTRY_RIPENCC }, // 91.209.209.0 - 91.209.209.255 { 0x5bd1d200, 0x5bd1d6ff, REGISTRY_RIPENCC }, // 91.209.210.0 - 91.209.214.255 { 0x5bd1d700, 0x5bd1d7ff, REGISTRY_RIPENCC }, // 91.209.215.0 - 91.209.215.255 { 0x5bd1d800, 0x5bd1dfff, REGISTRY_RIPENCC }, // 91.209.216.0 - 91.209.223.255 { 0x5bd1e000, 0x5bd1e4ff, REGISTRY_RIPENCC }, // 91.209.224.0 - 91.209.228.255 { 0x5bd1e500, 0x5bd1e5ff, REGISTRY_RIPENCC }, // 91.209.229.0 - 91.209.229.255 { 0x5bd1e600, 0x5bd1e7ff, REGISTRY_RIPENCC }, // 91.209.230.0 - 91.209.231.255 { 0x5bd1e800, 0x5bd1e9ff, REGISTRY_RIPENCC }, // 91.209.232.0 - 91.209.233.255 { 0x5bd1ea00, 0x5bd1eaff, REGISTRY_RIPENCC }, // 91.209.234.0 - 91.209.234.255 { 0x5bd1eb00, 0x5bd1ebff, REGISTRY_RIPENCC }, // 91.209.235.0 - 91.209.235.255 { 0x5bd1ec00, 0x5bd1ecff, REGISTRY_RIPENCC }, // 91.209.236.0 - 91.209.236.255 { 0x5bd1ed00, 0x5bd237ff, REGISTRY_RIPENCC }, // 91.209.237.0 - 91.210.55.255 { 0x5bd23800, 0x5bd23bff, REGISTRY_RIPENCC }, // 91.210.56.0 - 91.210.59.255 { 0x5bd23c00, 0x5bd243ff, REGISTRY_RIPENCC }, // 91.210.60.0 - 91.210.67.255 { 0x5bd24400, 0x5bd24fff, REGISTRY_RIPENCC }, // 91.210.68.0 - 91.210.79.255 { 0x5bd25000, 0x5bd263ff, REGISTRY_RIPENCC }, // 91.210.80.0 - 91.210.99.255 { 0x5bd26400, 0x5bd267ff, REGISTRY_RIPENCC }, // 91.210.100.0 - 91.210.103.255 { 0x5bd26800, 0x5bd27bff, REGISTRY_RIPENCC }, // 91.210.104.0 - 91.210.123.255 { 0x5bd27c00, 0x5bd27fff, REGISTRY_RIPENCC }, // 91.210.124.0 - 91.210.127.255 { 0x5bd28000, 0x5bd297ff, REGISTRY_RIPENCC }, // 91.210.128.0 - 91.210.151.255 { 0x5bd29800, 0x5bd29bff, REGISTRY_RIPENCC }, // 91.210.152.0 - 91.210.155.255 { 0x5bd29c00, 0x5bd2a3ff, REGISTRY_RIPENCC }, // 91.210.156.0 - 91.210.163.255 { 0x5bd2a400, 0x5bd2abff, REGISTRY_RIPENCC }, // 91.210.164.0 - 91.210.171.255 { 0x5bd2ac00, 0x5bd2d3ff, REGISTRY_RIPENCC }, // 91.210.172.0 - 91.210.211.255 { 0x5bd2d400, 0x5bd2d7ff, REGISTRY_RIPENCC }, // 91.210.212.0 - 91.210.215.255 { 0x5bd2d800, 0x5bd2dfff, REGISTRY_RIPENCC }, // 91.210.216.0 - 91.210.223.255 { 0x5bd2e000, 0x5bd2e3ff, REGISTRY_RIPENCC }, // 91.210.224.0 - 91.210.227.255 { 0x5bd2e400, 0x5bd2ebff, REGISTRY_RIPENCC }, // 91.210.228.0 - 91.210.235.255 { 0x5bd2ec00, 0x5bd2efff, REGISTRY_RIPENCC }, // 91.210.236.0 - 91.210.239.255 { 0x5bd2f000, 0x5bd2ffff, REGISTRY_RIPENCC }, // 91.210.240.0 - 91.210.255.255 { 0x5bd30000, 0x5bd303ff, REGISTRY_RIPENCC }, // 91.211.0.0 - 91.211.3.255 { 0x5bd30400, 0x5bd307ff, REGISTRY_RIPENCC }, // 91.211.4.0 - 91.211.7.255 { 0x5bd30800, 0x5bd30bff, REGISTRY_RIPENCC }, // 91.211.8.0 - 91.211.11.255 { 0x5bd30c00, 0x5bd33fff, REGISTRY_RIPENCC }, // 91.211.12.0 - 91.211.63.255 { 0x5bd34000, 0x5bd343ff, REGISTRY_RIPENCC }, // 91.211.64.0 - 91.211.67.255 { 0x5bd34400, 0x5bd353ff, REGISTRY_RIPENCC }, // 91.211.68.0 - 91.211.83.255 { 0x5bd35800, 0x5bd35bff, REGISTRY_RIPENCC }, // 91.211.88.0 - 91.211.91.255 { 0x5bd35c00, 0x5bd36fff, REGISTRY_RIPENCC }, // 91.211.92.0 - 91.211.111.255 { 0x5bd37000, 0x5bd373ff, REGISTRY_RIPENCC }, // 91.211.112.0 - 91.211.115.255 { 0x5bd37400, 0x5bd37fff, REGISTRY_RIPENCC }, // 91.211.116.0 - 91.211.127.255 { 0x5bd38000, 0x5bd383ff, REGISTRY_RIPENCC }, // 91.211.128.0 - 91.211.131.255 { 0x5bd38400, 0x5bd387ff, REGISTRY_RIPENCC }, // 91.211.132.0 - 91.211.135.255 { 0x5bd38800, 0x5bd38bff, REGISTRY_RIPENCC }, // 91.211.136.0 - 91.211.139.255 { 0x5bd38c00, 0x5bd393ff, REGISTRY_RIPENCC }, // 91.211.140.0 - 91.211.147.255 { 0x5bd39400, 0x5bd39bff, REGISTRY_RIPENCC }, // 91.211.148.0 - 91.211.155.255 { 0x5bd39c00, 0x5bd39fff, REGISTRY_RIPENCC }, // 91.211.156.0 - 91.211.159.255 { 0x5bd3a000, 0x5bd3a3ff, REGISTRY_RIPENCC }, // 91.211.160.0 - 91.211.163.255 { 0x5bd3a400, 0x5bd3c3ff, REGISTRY_RIPENCC }, // 91.211.164.0 - 91.211.195.255 { 0x5bd3c400, 0x5bd3c7ff, REGISTRY_RIPENCC }, // 91.211.196.0 - 91.211.199.255 { 0x5bd3c800, 0x5bd3c9ff, REGISTRY_RIPENCC }, // 91.211.200.0 - 91.211.201.255 { 0x5bd3ca00, 0x5bd3cbff, REGISTRY_RIPENCC }, // 91.211.202.0 - 91.211.203.255 { 0x5bd3cc00, 0x5bd3dfff, REGISTRY_RIPENCC }, // 91.211.204.0 - 91.211.223.255 { 0x5bd3e000, 0x5bd3e3ff, REGISTRY_RIPENCC }, // 91.211.224.0 - 91.211.227.255 { 0x5bd3e400, 0x5bd3efff, REGISTRY_RIPENCC }, // 91.211.228.0 - 91.211.239.255 { 0x5bd3f000, 0x5bd3f3ff, REGISTRY_RIPENCC }, // 91.211.240.0 - 91.211.243.255 { 0x5bd3f400, 0x5bd3f7ff, REGISTRY_RIPENCC }, // 91.211.244.0 - 91.211.247.255 { 0x5bd3f800, 0x5bd3fbff, REGISTRY_RIPENCC }, // 91.211.248.0 - 91.211.251.255 { 0x5bd3fc00, 0x5bd3ffff, REGISTRY_RIPENCC }, // 91.211.252.0 - 91.211.255.255 { 0x5bd40000, 0x5bd400ff, REGISTRY_RIPENCC }, // 91.212.0.0 - 91.212.0.255 { 0x5bd40100, 0x5bd405ff, REGISTRY_RIPENCC }, // 91.212.1.0 - 91.212.5.255 { 0x5bd40600, 0x5bd406ff, REGISTRY_RIPENCC }, // 91.212.6.0 - 91.212.6.255 { 0x5bd40700, 0x5bd409ff, REGISTRY_RIPENCC }, // 91.212.7.0 - 91.212.9.255 { 0x5bd40a00, 0x5bd40bff, REGISTRY_RIPENCC }, // 91.212.10.0 - 91.212.11.255 { 0x5bd40c00, 0x5bd40dff, REGISTRY_RIPENCC }, // 91.212.12.0 - 91.212.13.255 { 0x5bd40e00, 0x5bd40eff, REGISTRY_RIPENCC }, // 91.212.14.0 - 91.212.14.255 { 0x5bd40f00, 0x5bd412ff, REGISTRY_RIPENCC }, // 91.212.15.0 - 91.212.18.255 { 0x5bd41300, 0x5bd414ff, REGISTRY_RIPENCC }, // 91.212.19.0 - 91.212.20.255 { 0x5bd41500, 0x5bd419ff, REGISTRY_RIPENCC }, // 91.212.21.0 - 91.212.25.255 { 0x5bd41a00, 0x5bd41bff, REGISTRY_RIPENCC }, // 91.212.26.0 - 91.212.27.255 { 0x5bd41c00, 0x5bd41fff, REGISTRY_RIPENCC }, // 91.212.28.0 - 91.212.31.255 { 0x5bd42000, 0x5bd420ff, REGISTRY_RIPENCC }, // 91.212.32.0 - 91.212.32.255 { 0x5bd42200, 0x5bd425ff, REGISTRY_RIPENCC }, // 91.212.34.0 - 91.212.37.255 { 0x5bd42600, 0x5bd426ff, REGISTRY_RIPENCC }, // 91.212.38.0 - 91.212.38.255 { 0x5bd42700, 0x5bd427ff, REGISTRY_RIPENCC }, // 91.212.39.0 - 91.212.39.255 { 0x5bd42800, 0x5bd429ff, REGISTRY_RIPENCC }, // 91.212.40.0 - 91.212.41.255 { 0x5bd42a00, 0x5bd42cff, REGISTRY_RIPENCC }, // 91.212.42.0 - 91.212.44.255 { 0x5bd42d00, 0x5bd42dff, REGISTRY_RIPENCC }, // 91.212.45.0 - 91.212.45.255 { 0x5bd42e00, 0x5bd430ff, REGISTRY_RIPENCC }, // 91.212.46.0 - 91.212.48.255 { 0x5bd43100, 0x5bd431ff, REGISTRY_RIPENCC }, // 91.212.49.0 - 91.212.49.255 { 0x5bd43200, 0x5bd432ff, REGISTRY_RIPENCC }, // 91.212.50.0 - 91.212.50.255 { 0x5bd43300, 0x5bd433ff, REGISTRY_RIPENCC }, // 91.212.51.0 - 91.212.51.255 { 0x5bd43400, 0x5bd435ff, REGISTRY_RIPENCC }, // 91.212.52.0 - 91.212.53.255 { 0x5bd43600, 0x5bd437ff, REGISTRY_RIPENCC }, // 91.212.54.0 - 91.212.55.255 { 0x5bd43800, 0x5bd43cff, REGISTRY_RIPENCC }, // 91.212.56.0 - 91.212.60.255 { 0x5bd43d00, 0x5bd43dff, REGISTRY_RIPENCC }, // 91.212.61.0 - 91.212.61.255 { 0x5bd43e00, 0x5bd43fff, REGISTRY_RIPENCC }, // 91.212.62.0 - 91.212.63.255 { 0x5bd44000, 0x5bd441ff, REGISTRY_RIPENCC }, // 91.212.64.0 - 91.212.65.255 { 0x5bd44200, 0x5bd447ff, REGISTRY_RIPENCC }, // 91.212.66.0 - 91.212.71.255 { 0x5bd44800, 0x5bd449ff, REGISTRY_RIPENCC }, // 91.212.72.0 - 91.212.73.255 { 0x5bd44a00, 0x5bd451ff, REGISTRY_RIPENCC }, // 91.212.74.0 - 91.212.81.255 { 0x5bd45200, 0x5bd452ff, REGISTRY_RIPENCC }, // 91.212.82.0 - 91.212.82.255 { 0x5bd45300, 0x5bd457ff, REGISTRY_RIPENCC }, // 91.212.83.0 - 91.212.87.255 { 0x5bd45800, 0x5bd458ff, REGISTRY_RIPENCC }, // 91.212.88.0 - 91.212.88.255 { 0x5bd45900, 0x5bd45fff, REGISTRY_RIPENCC }, // 91.212.89.0 - 91.212.95.255 { 0x5bd46000, 0x5bd460ff, REGISTRY_RIPENCC }, // 91.212.96.0 - 91.212.96.255 { 0x5bd46100, 0x5bd463ff, REGISTRY_RIPENCC }, // 91.212.97.0 - 91.212.99.255 { 0x5bd46400, 0x5bd464ff, REGISTRY_RIPENCC }, // 91.212.100.0 - 91.212.100.255 { 0x5bd46500, 0x5bd466ff, REGISTRY_RIPENCC }, // 91.212.101.0 - 91.212.102.255 { 0x5bd46700, 0x5bd468ff, REGISTRY_RIPENCC }, // 91.212.103.0 - 91.212.104.255 { 0x5bd46900, 0x5bd46aff, REGISTRY_RIPENCC }, // 91.212.105.0 - 91.212.106.255 { 0x5bd46b00, 0x5bd46bff, REGISTRY_RIPENCC }, // 91.212.107.0 - 91.212.107.255 { 0x5bd46c00, 0x5bd477ff, REGISTRY_RIPENCC }, // 91.212.108.0 - 91.212.119.255 { 0x5bd47800, 0x5bd47bff, REGISTRY_RIPENCC }, // 91.212.120.0 - 91.212.123.255 { 0x5bd47c00, 0x5bd483ff, REGISTRY_RIPENCC }, // 91.212.124.0 - 91.212.131.255 { 0x5bd48400, 0x5bd484ff, REGISTRY_APNIC }, // 91.212.132.0 - 91.212.132.255 { 0x5bd48500, 0x5bd486ff, REGISTRY_RIPENCC }, // 91.212.133.0 - 91.212.134.255 { 0x5bd48700, 0x5bd487ff, REGISTRY_RIPENCC }, // 91.212.135.0 - 91.212.135.255 { 0x5bd48800, 0x5bd48cff, REGISTRY_RIPENCC }, // 91.212.136.0 - 91.212.140.255 { 0x5bd48d00, 0x5bd48eff, REGISTRY_RIPENCC }, // 91.212.141.0 - 91.212.142.255 { 0x5bd48f00, 0x5bd48fff, REGISTRY_RIPENCC }, // 91.212.143.0 - 91.212.143.255 { 0x5bd49000, 0x5bd490ff, REGISTRY_RIPENCC }, // 91.212.144.0 - 91.212.144.255 { 0x5bd49100, 0x5bd492ff, REGISTRY_RIPENCC }, // 91.212.145.0 - 91.212.146.255 { 0x5bd49400, 0x5bd494ff, REGISTRY_RIPENCC }, // 91.212.148.0 - 91.212.148.255 { 0x5bd49500, 0x5bd495ff, REGISTRY_RIPENCC }, // 91.212.149.0 - 91.212.149.255 { 0x5bd49600, 0x5bd496ff, REGISTRY_RIPENCC }, // 91.212.150.0 - 91.212.150.255 { 0x5bd49700, 0x5bd497ff, REGISTRY_RIPENCC }, // 91.212.151.0 - 91.212.151.255 { 0x5bd49800, 0x5bd498ff, REGISTRY_RIPENCC }, // 91.212.152.0 - 91.212.152.255 { 0x5bd49900, 0x5bd499ff, REGISTRY_RIPENCC }, // 91.212.153.0 - 91.212.153.255 { 0x5bd49a00, 0x5bd49bff, REGISTRY_RIPENCC }, // 91.212.154.0 - 91.212.155.255 { 0x5bd49c00, 0x5bd49cff, REGISTRY_RIPENCC }, // 91.212.156.0 - 91.212.156.255 { 0x5bd49d00, 0x5bd49eff, REGISTRY_RIPENCC }, // 91.212.157.0 - 91.212.158.255 { 0x5bd49f00, 0x5bd4a1ff, REGISTRY_RIPENCC }, // 91.212.159.0 - 91.212.161.255 { 0x5bd4a200, 0x5bd4a2ff, REGISTRY_RIPENCC }, // 91.212.162.0 - 91.212.162.255 { 0x5bd4a300, 0x5bd4a3ff, REGISTRY_RIPENCC }, // 91.212.163.0 - 91.212.163.255 { 0x5bd4a400, 0x5bd4a5ff, REGISTRY_RIPENCC }, // 91.212.164.0 - 91.212.165.255 { 0x5bd4a600, 0x5bd4a6ff, REGISTRY_RIPENCC }, // 91.212.166.0 - 91.212.166.255 { 0x5bd4a700, 0x5bd4a8ff, REGISTRY_RIPENCC }, // 91.212.167.0 - 91.212.168.255 { 0x5bd4a900, 0x5bd4a9ff, REGISTRY_RIPENCC }, // 91.212.169.0 - 91.212.169.255 { 0x5bd4aa00, 0x5bd4abff, REGISTRY_RIPENCC }, // 91.212.170.0 - 91.212.171.255 { 0x5bd4ac00, 0x5bd4acff, REGISTRY_RIPENCC }, // 91.212.172.0 - 91.212.172.255 { 0x5bd4ad00, 0x5bd4b9ff, REGISTRY_RIPENCC }, // 91.212.173.0 - 91.212.185.255 { 0x5bd4ba00, 0x5bd4baff, REGISTRY_RIPENCC }, // 91.212.186.0 - 91.212.186.255 { 0x5bd4bb00, 0x5bd4c0ff, REGISTRY_RIPENCC }, // 91.212.187.0 - 91.212.192.255 { 0x5bd4c100, 0x5bd4c1ff, REGISTRY_RIPENCC }, // 91.212.193.0 - 91.212.193.255 { 0x5bd4c200, 0x5bd4c2ff, REGISTRY_RIPENCC }, // 91.212.194.0 - 91.212.194.255 { 0x5bd4c300, 0x5bd4c3ff, REGISTRY_RIPENCC }, // 91.212.195.0 - 91.212.195.255 { 0x5bd4c400, 0x5bd4c5ff, REGISTRY_RIPENCC }, // 91.212.196.0 - 91.212.197.255 { 0x5bd4c600, 0x5bd4c6ff, REGISTRY_RIPENCC }, // 91.212.198.0 - 91.212.198.255 { 0x5bd4c700, 0x5bd4c8ff, REGISTRY_RIPENCC }, // 91.212.199.0 - 91.212.200.255 { 0x5bd4c900, 0x5bd4c9ff, REGISTRY_RIPENCC }, // 91.212.201.0 - 91.212.201.255 { 0x5bd4ca00, 0x5bd4d7ff, REGISTRY_RIPENCC }, // 91.212.202.0 - 91.212.215.255 { 0x5bd4d800, 0x5bd4d8ff, REGISTRY_RIPENCC }, // 91.212.216.0 - 91.212.216.255 { 0x5bd4d900, 0x5bd4dbff, REGISTRY_RIPENCC }, // 91.212.217.0 - 91.212.219.255 { 0x5bd4dc00, 0x5bd4dcff, REGISTRY_RIPENCC }, // 91.212.220.0 - 91.212.220.255 { 0x5bd4dd00, 0x5bd4e1ff, REGISTRY_RIPENCC }, // 91.212.221.0 - 91.212.225.255 { 0x5bd4e200, 0x5bd4e2ff, REGISTRY_RIPENCC }, // 91.212.226.0 - 91.212.226.255 { 0x5bd4e300, 0x5bd4e4ff, REGISTRY_RIPENCC }, // 91.212.227.0 - 91.212.228.255 { 0x5bd4e500, 0x5bd4e7ff, REGISTRY_RIPENCC }, // 91.212.229.0 - 91.212.231.255 { 0x5bd4e800, 0x5bd4eeff, REGISTRY_RIPENCC }, // 91.212.232.0 - 91.212.238.255 { 0x5bd4ef00, 0x5bd4f1ff, REGISTRY_RIPENCC }, // 91.212.239.0 - 91.212.241.255 { 0x5bd4f200, 0x5bd4f5ff, REGISTRY_RIPENCC }, // 91.212.242.0 - 91.212.245.255 { 0x5bd4f600, 0x5bd4f6ff, REGISTRY_RIPENCC }, // 91.212.246.0 - 91.212.246.255 { 0x5bd4f700, 0x5bd4feff, REGISTRY_RIPENCC }, // 91.212.247.0 - 91.212.254.255 { 0x5bd4ff00, 0x5bd4ffff, REGISTRY_RIPENCC }, // 91.212.255.0 - 91.212.255.255 { 0x5bd50000, 0x5bd510ff, REGISTRY_RIPENCC }, // 91.213.0.0 - 91.213.16.255 { 0x5bd51100, 0x5bd511ff, REGISTRY_RIPENCC }, // 91.213.17.0 - 91.213.17.255 { 0x5bd51200, 0x5bd51cff, REGISTRY_RIPENCC }, // 91.213.18.0 - 91.213.28.255 { 0x5bd51d00, 0x5bd51dff, REGISTRY_RIPENCC }, // 91.213.29.0 - 91.213.29.255 { 0x5bd51e00, 0x5bd522ff, REGISTRY_RIPENCC }, // 91.213.30.0 - 91.213.34.255 { 0x5bd52300, 0x5bd523ff, REGISTRY_RIPENCC }, // 91.213.35.0 - 91.213.35.255 { 0x5bd52400, 0x5bd526ff, REGISTRY_RIPENCC }, // 91.213.36.0 - 91.213.38.255 { 0x5bd52700, 0x5bd527ff, REGISTRY_RIPENCC }, // 91.213.39.0 - 91.213.39.255 { 0x5bd52800, 0x5bd52dff, REGISTRY_RIPENCC }, // 91.213.40.0 - 91.213.45.255 { 0x5bd52e00, 0x5bd52eff, REGISTRY_RIPENCC }, // 91.213.46.0 - 91.213.46.255 { 0x5bd52f00, 0x5bd530ff, REGISTRY_RIPENCC }, // 91.213.47.0 - 91.213.48.255 { 0x5bd53100, 0x5bd532ff, REGISTRY_RIPENCC }, // 91.213.49.0 - 91.213.50.255 { 0x5bd53300, 0x5bd547ff, REGISTRY_RIPENCC }, // 91.213.51.0 - 91.213.71.255 { 0x5bd54800, 0x5bd548ff, REGISTRY_RIPENCC }, // 91.213.72.0 - 91.213.72.255 { 0x5bd54a00, 0x5bd54bff, REGISTRY_RIPENCC }, // 91.213.74.0 - 91.213.75.255 { 0x5bd54c00, 0x5bd552ff, REGISTRY_RIPENCC }, // 91.213.76.0 - 91.213.82.255 { 0x5bd55400, 0x5bd554ff, REGISTRY_RIPENCC }, // 91.213.84.0 - 91.213.84.255 { 0x5bd55500, 0x5bd555ff, REGISTRY_RIPENCC }, // 91.213.85.0 - 91.213.85.255 { 0x5bd55600, 0x5bd55cff, REGISTRY_RIPENCC }, // 91.213.86.0 - 91.213.92.255 { 0x5bd55d00, 0x5bd55eff, REGISTRY_RIPENCC }, // 91.213.93.0 - 91.213.94.255 { 0x5bd55f00, 0x5bd562ff, REGISTRY_RIPENCC }, // 91.213.95.0 - 91.213.98.255 { 0x5bd56300, 0x5bd563ff, REGISTRY_RIPENCC }, // 91.213.99.0 - 91.213.99.255 { 0x5bd56400, 0x5bd56eff, REGISTRY_RIPENCC }, // 91.213.100.0 - 91.213.110.255 { 0x5bd56f00, 0x5bd56fff, REGISTRY_RIPENCC }, // 91.213.111.0 - 91.213.111.255 { 0x5bd57000, 0x5bd571ff, REGISTRY_RIPENCC }, // 91.213.112.0 - 91.213.113.255 { 0x5bd57200, 0x5bd572ff, REGISTRY_RIPENCC }, // 91.213.114.0 - 91.213.114.255 { 0x5bd57300, 0x5bd574ff, REGISTRY_RIPENCC }, // 91.213.115.0 - 91.213.116.255 { 0x5bd57500, 0x5bd575ff, REGISTRY_RIPENCC }, // 91.213.117.0 - 91.213.117.255 { 0x5bd57600, 0x5bd577ff, REGISTRY_RIPENCC }, // 91.213.118.0 - 91.213.119.255 { 0x5bd57800, 0x5bd579ff, REGISTRY_RIPENCC }, // 91.213.120.0 - 91.213.121.255 { 0x5bd57a00, 0x5bd57dff, REGISTRY_RIPENCC }, // 91.213.122.0 - 91.213.125.255 { 0x5bd57e00, 0x5bd57eff, REGISTRY_RIPENCC }, // 91.213.126.0 - 91.213.126.255 { 0x5bd57f00, 0x5bd589ff, REGISTRY_RIPENCC }, // 91.213.127.0 - 91.213.137.255 { 0x5bd58a00, 0x5bd58aff, REGISTRY_RIPENCC }, // 91.213.138.0 - 91.213.138.255 { 0x5bd58b00, 0x5bd593ff, REGISTRY_RIPENCC }, // 91.213.139.0 - 91.213.147.255 { 0x5bd59400, 0x5bd594ff, REGISTRY_RIPENCC }, // 91.213.148.0 - 91.213.148.255 { 0x5bd59500, 0x5bd596ff, REGISTRY_RIPENCC }, // 91.213.149.0 - 91.213.150.255 { 0x5bd59700, 0x5bd597ff, REGISTRY_RIPENCC }, // 91.213.151.0 - 91.213.151.255 { 0x5bd59800, 0x5bd59aff, REGISTRY_RIPENCC }, // 91.213.152.0 - 91.213.154.255 { 0x5bd59b00, 0x5bd59bff, REGISTRY_RIPENCC }, // 91.213.155.0 - 91.213.155.255 { 0x5bd59c00, 0x5bd59cff, REGISTRY_RIPENCC }, // 91.213.156.0 - 91.213.156.255 { 0x5bd59d00, 0x5bd59dff, REGISTRY_RIPENCC }, // 91.213.157.0 - 91.213.157.255 { 0x5bd59e00, 0x5bd5a6ff, REGISTRY_RIPENCC }, // 91.213.158.0 - 91.213.166.255 { 0x5bd5a700, 0x5bd5a7ff, REGISTRY_RIPENCC }, // 91.213.167.0 - 91.213.167.255 { 0x5bd5a800, 0x5bd5abff, REGISTRY_RIPENCC }, // 91.213.168.0 - 91.213.171.255 { 0x5bd5ac00, 0x5bd5aeff, REGISTRY_RIPENCC }, // 91.213.172.0 - 91.213.174.255 { 0x5bd5af00, 0x5bd5afff, REGISTRY_RIPENCC }, // 91.213.175.0 - 91.213.175.255 { 0x5bd5b000, 0x5bd5b0ff, REGISTRY_RIPENCC }, // 91.213.176.0 - 91.213.176.255 { 0x5bd5b100, 0x5bd5b8ff, REGISTRY_RIPENCC }, // 91.213.177.0 - 91.213.184.255 { 0x5bd5b900, 0x5bd5baff, REGISTRY_RIPENCC }, // 91.213.185.0 - 91.213.186.255 { 0x5bd5bb00, 0x5bd5bbff, REGISTRY_RIPENCC }, // 91.213.187.0 - 91.213.187.255 { 0x5bd5bc00, 0x5bd5bdff, REGISTRY_RIPENCC }, // 91.213.188.0 - 91.213.189.255 { 0x5bd5be00, 0x5bd5bfff, REGISTRY_RIPENCC }, // 91.213.190.0 - 91.213.191.255 { 0x5bd5c000, 0x5bd5c0ff, REGISTRY_RIPENCC }, // 91.213.192.0 - 91.213.192.255 { 0x5bd5c100, 0x5bd5c4ff, REGISTRY_RIPENCC }, // 91.213.193.0 - 91.213.196.255 { 0x5bd5c500, 0x5bd5c5ff, REGISTRY_RIPENCC }, // 91.213.197.0 - 91.213.197.255 { 0x5bd5c600, 0x5bd5c7ff, REGISTRY_RIPENCC }, // 91.213.198.0 - 91.213.199.255 { 0x5bd5c800, 0x5bd5c8ff, REGISTRY_RIPENCC }, // 91.213.200.0 - 91.213.200.255 { 0x5bd5c900, 0x5bd5c9ff, REGISTRY_RIPENCC }, // 91.213.201.0 - 91.213.201.255 { 0x5bd5ca00, 0x5bd5caff, REGISTRY_RIPENCC }, // 91.213.202.0 - 91.213.202.255 { 0x5bd5cb00, 0x5bd5cfff, REGISTRY_RIPENCC }, // 91.213.203.0 - 91.213.207.255 { 0x5bd5d000, 0x5bd5d0ff, REGISTRY_RIPENCC }, // 91.213.208.0 - 91.213.208.255 { 0x5bd5d100, 0x5bd5d6ff, REGISTRY_RIPENCC }, // 91.213.209.0 - 91.213.214.255 { 0x5bd5d700, 0x5bd5d7ff, REGISTRY_RIPENCC }, // 91.213.215.0 - 91.213.215.255 { 0x5bd5d800, 0x5bd5d8ff, REGISTRY_RIPENCC }, // 91.213.216.0 - 91.213.216.255 { 0x5bd5d900, 0x5bd5d9ff, REGISTRY_RIPENCC }, // 91.213.217.0 - 91.213.217.255 { 0x5bd5da00, 0x5bd5dbff, REGISTRY_RIPENCC }, // 91.213.218.0 - 91.213.219.255 { 0x5bd5dc00, 0x5bd5dcff, REGISTRY_RIPENCC }, // 91.213.220.0 - 91.213.220.255 { 0x5bd5dd00, 0x5bd5deff, REGISTRY_RIPENCC }, // 91.213.221.0 - 91.213.222.255 { 0x5bd5df00, 0x5bd5dfff, REGISTRY_RIPENCC }, // 91.213.223.0 - 91.213.223.255 { 0x5bd5e000, 0x5bd5e5ff, REGISTRY_RIPENCC }, // 91.213.224.0 - 91.213.229.255 { 0x5bd5e600, 0x5bd5e6ff, REGISTRY_RIPENCC }, // 91.213.230.0 - 91.213.230.255 { 0x5bd5e700, 0x5bd5e9ff, REGISTRY_RIPENCC }, // 91.213.231.0 - 91.213.233.255 { 0x5bd5ea00, 0x5bd5eaff, REGISTRY_RIPENCC }, // 91.213.234.0 - 91.213.234.255 { 0x5bd5ec00, 0x5bd5ecff, REGISTRY_RIPENCC }, // 91.213.236.0 - 91.213.236.255 { 0x5bd5ed00, 0x5bd5edff, REGISTRY_RIPENCC }, // 91.213.237.0 - 91.213.237.255 { 0x5bd5ee00, 0x5bd5f7ff, REGISTRY_RIPENCC }, // 91.213.238.0 - 91.213.247.255 { 0x5bd5f800, 0x5bd5f8ff, REGISTRY_RIPENCC }, // 91.213.248.0 - 91.213.248.255 { 0x5bd5f900, 0x5bd61fff, REGISTRY_RIPENCC }, // 91.213.249.0 - 91.214.31.255 { 0x5bd62000, 0x5bd623ff, REGISTRY_RIPENCC }, // 91.214.32.0 - 91.214.35.255 { 0x5bd62400, 0x5bd62bff, REGISTRY_RIPENCC }, // 91.214.36.0 - 91.214.43.255 { 0x5bd62c00, 0x5bd62fff, REGISTRY_RIPENCC }, // 91.214.44.0 - 91.214.47.255 { 0x5bd63000, 0x5bd63fff, REGISTRY_RIPENCC }, // 91.214.48.0 - 91.214.63.255 { 0x5bd64000, 0x5bd643ff, REGISTRY_RIPENCC }, // 91.214.64.0 - 91.214.67.255 { 0x5bd64400, 0x5bd657ff, REGISTRY_RIPENCC }, // 91.214.68.0 - 91.214.87.255 { 0x5bd65800, 0x5bd65fff, REGISTRY_RIPENCC }, // 91.214.88.0 - 91.214.95.255 { 0x5bd66000, 0x5bd66fff, REGISTRY_RIPENCC }, // 91.214.96.0 - 91.214.111.255 { 0x5bd67100, 0x5bd673ff, REGISTRY_RIPENCC }, // 91.214.113.0 - 91.214.115.255 { 0x5bd67400, 0x5bd677ff, REGISTRY_RIPENCC }, // 91.214.116.0 - 91.214.119.255 { 0x5bd67800, 0x5bd67bff, REGISTRY_RIPENCC }, // 91.214.120.0 - 91.214.123.255 { 0x5bd67d00, 0x5bd693ff, REGISTRY_RIPENCC }, // 91.214.125.0 - 91.214.147.255 { 0x5bd69400, 0x5bd697ff, REGISTRY_RIPENCC }, // 91.214.148.0 - 91.214.151.255 { 0x5bd69800, 0x5bd6cfff, REGISTRY_RIPENCC }, // 91.214.152.0 - 91.214.207.255 { 0x5bd6d000, 0x5bd6d7ff, REGISTRY_RIPENCC }, // 91.214.208.0 - 91.214.215.255 { 0x5bd6d800, 0x5bd6dbff, REGISTRY_ARIN }, // 91.214.216.0 - 91.214.219.255 { 0x5bd6dc00, 0x5bd72fff, REGISTRY_RIPENCC }, // 91.214.220.0 - 91.215.47.255 { 0x5bd73000, 0x5bd733ff, REGISTRY_RIPENCC }, // 91.215.48.0 - 91.215.51.255 { 0x5bd73400, 0x5bd73fff, REGISTRY_RIPENCC }, // 91.215.52.0 - 91.215.63.255 { 0x5bd74000, 0x5bd743ff, REGISTRY_RIPENCC }, // 91.215.64.0 - 91.215.67.255 { 0x5bd74400, 0x5bd755ff, REGISTRY_RIPENCC }, // 91.215.68.0 - 91.215.85.255 { 0x5bd75600, 0x5bd757ff, REGISTRY_RIPENCC }, // 91.215.86.0 - 91.215.87.255 { 0x5bd75800, 0x5bd75bff, REGISTRY_RIPENCC }, // 91.215.88.0 - 91.215.91.255 { 0x5bd75c00, 0x5bd763ff, REGISTRY_RIPENCC }, // 91.215.92.0 - 91.215.99.255 { 0x5bd76400, 0x5bd787ff, REGISTRY_RIPENCC }, // 91.215.100.0 - 91.215.135.255 { 0x5bd78800, 0x5bd78bff, REGISTRY_RIPENCC }, // 91.215.136.0 - 91.215.139.255 { 0x5bd78c00, 0x5bd7abff, REGISTRY_RIPENCC }, // 91.215.140.0 - 91.215.171.255 { 0x5bd7ac00, 0x5bd7afff, REGISTRY_RIPENCC }, // 91.215.172.0 - 91.215.175.255 { 0x5bd7b000, 0x5bd7fbff, REGISTRY_RIPENCC }, // 91.215.176.0 - 91.215.251.255 { 0x5bd7fc00, 0x5bd7ffff, REGISTRY_RIPENCC }, // 91.215.252.0 - 91.215.255.255 { 0x5bd80000, 0x5bd80aff, REGISTRY_RIPENCC }, // 91.216.0.0 - 91.216.10.255 { 0x5bd80b00, 0x5bd80bff, REGISTRY_RIPENCC }, // 91.216.11.0 - 91.216.11.255 { 0x5bd80c00, 0x5bd80eff, REGISTRY_RIPENCC }, // 91.216.12.0 - 91.216.14.255 { 0x5bd80f00, 0x5bd80fff, REGISTRY_RIPENCC }, // 91.216.15.0 - 91.216.15.255 { 0x5bd81000, 0x5bd824ff, REGISTRY_RIPENCC }, // 91.216.16.0 - 91.216.36.255 { 0x5bd82500, 0x5bd825ff, REGISTRY_RIPENCC }, // 91.216.37.0 - 91.216.37.255 { 0x5bd82600, 0x5bd826ff, REGISTRY_RIPENCC }, // 91.216.38.0 - 91.216.38.255 { 0x5bd82700, 0x5bd828ff, REGISTRY_RIPENCC }, // 91.216.39.0 - 91.216.40.255 { 0x5bd82900, 0x5bd82bff, REGISTRY_RIPENCC }, // 91.216.41.0 - 91.216.43.255 { 0x5bd82c00, 0x5bd82cff, REGISTRY_RIPENCC }, // 91.216.44.0 - 91.216.44.255 { 0x5bd82d00, 0x5bd838ff, REGISTRY_RIPENCC }, // 91.216.45.0 - 91.216.56.255 { 0x5bd83a00, 0x5bd83aff, REGISTRY_RIPENCC }, // 91.216.58.0 - 91.216.58.255 { 0x5bd83b00, 0x5bd83bff, REGISTRY_RIPENCC }, // 91.216.59.0 - 91.216.59.255 { 0x5bd83c00, 0x5bd848ff, REGISTRY_RIPENCC }, // 91.216.60.0 - 91.216.72.255 { 0x5bd84900, 0x5bd849ff, REGISTRY_RIPENCC }, // 91.216.73.0 - 91.216.73.255 { 0x5bd84a00, 0x5bd84cff, REGISTRY_RIPENCC }, // 91.216.74.0 - 91.216.76.255 { 0x5bd84d00, 0x5bd84dff, REGISTRY_RIPENCC }, // 91.216.77.0 - 91.216.77.255 { 0x5bd84e00, 0x5bd860ff, REGISTRY_RIPENCC }, // 91.216.78.0 - 91.216.96.255 { 0x5bd86100, 0x5bd861ff, REGISTRY_RIPENCC }, // 91.216.97.0 - 91.216.97.255 { 0x5bd86300, 0x5bd863ff, REGISTRY_RIPENCC }, // 91.216.99.0 - 91.216.99.255 { 0x5bd86400, 0x5bd864ff, REGISTRY_RIPENCC }, // 91.216.100.0 - 91.216.100.255 { 0x5bd86500, 0x5bd865ff, REGISTRY_RIPENCC }, // 91.216.101.0 - 91.216.101.255 { 0x5bd86600, 0x5bd866ff, REGISTRY_RIPENCC }, // 91.216.102.0 - 91.216.102.255 { 0x5bd86700, 0x5bd867ff, REGISTRY_RIPENCC }, // 91.216.103.0 - 91.216.103.255 { 0x5bd86900, 0x5bd877ff, REGISTRY_RIPENCC }, // 91.216.105.0 - 91.216.119.255 { 0x5bd87900, 0x5bd879ff, REGISTRY_RIPENCC }, // 91.216.121.0 - 91.216.121.255 { 0x5bd87a00, 0x5bd87aff, REGISTRY_RIPENCC }, // 91.216.122.0 - 91.216.122.255 { 0x5bd87b00, 0x5bd87bff, REGISTRY_RIPENCC }, // 91.216.123.0 - 91.216.123.255 { 0x5bd87c00, 0x5bd87cff, REGISTRY_RIPENCC }, // 91.216.124.0 - 91.216.124.255 { 0x5bd87d00, 0x5bd885ff, REGISTRY_RIPENCC }, // 91.216.125.0 - 91.216.133.255 { 0x5bd88600, 0x5bd886ff, REGISTRY_RIPENCC }, // 91.216.134.0 - 91.216.134.255 { 0x5bd88700, 0x5bd88aff, REGISTRY_RIPENCC }, // 91.216.135.0 - 91.216.138.255 { 0x5bd88b00, 0x5bd88bff, REGISTRY_RIPENCC }, // 91.216.139.0 - 91.216.139.255 { 0x5bd88c00, 0x5bd891ff, REGISTRY_RIPENCC }, // 91.216.140.0 - 91.216.145.255 { 0x5bd89200, 0x5bd892ff, REGISTRY_RIPENCC }, // 91.216.146.0 - 91.216.146.255 { 0x5bd89300, 0x5bd8a1ff, REGISTRY_RIPENCC }, // 91.216.147.0 - 91.216.161.255 { 0x5bd8a200, 0x5bd8a2ff, REGISTRY_RIPENCC }, // 91.216.162.0 - 91.216.162.255 { 0x5bd8a300, 0x5bd8a8ff, REGISTRY_RIPENCC }, // 91.216.163.0 - 91.216.168.255 { 0x5bd8a900, 0x5bd8a9ff, REGISTRY_RIPENCC }, // 91.216.169.0 - 91.216.169.255 { 0x5bd8aa00, 0x5bd8aaff, REGISTRY_RIPENCC }, // 91.216.170.0 - 91.216.170.255 { 0x5bd8ab00, 0x5bd8abff, REGISTRY_RIPENCC }, // 91.216.171.0 - 91.216.171.255 { 0x5bd8ac00, 0x5bd8b1ff, REGISTRY_RIPENCC }, // 91.216.172.0 - 91.216.177.255 { 0x5bd8b200, 0x5bd8b2ff, REGISTRY_RIPENCC }, // 91.216.178.0 - 91.216.178.255 { 0x5bd8b300, 0x5bd8b8ff, REGISTRY_RIPENCC }, // 91.216.179.0 - 91.216.184.255 { 0x5bd8b900, 0x5bd8baff, REGISTRY_RIPENCC }, // 91.216.185.0 - 91.216.186.255 { 0x5bd8bb00, 0x5bd8bdff, REGISTRY_RIPENCC }, // 91.216.187.0 - 91.216.189.255 { 0x5bd8be00, 0x5bd8beff, REGISTRY_RIPENCC }, // 91.216.190.0 - 91.216.190.255 { 0x5bd8bf00, 0x5bd8c2ff, REGISTRY_RIPENCC }, // 91.216.191.0 - 91.216.194.255 { 0x5bd8c300, 0x5bd8c3ff, REGISTRY_RIPENCC }, // 91.216.195.0 - 91.216.195.255 { 0x5bd8c400, 0x5bd8c4ff, REGISTRY_RIPENCC }, // 91.216.196.0 - 91.216.196.255 { 0x5bd8c500, 0x5bd8c5ff, REGISTRY_RIPENCC }, // 91.216.197.0 - 91.216.197.255 { 0x5bd8c600, 0x5bd8ceff, REGISTRY_RIPENCC }, // 91.216.198.0 - 91.216.206.255 { 0x5bd8cf00, 0x5bd8cfff, REGISTRY_RIPENCC }, // 91.216.207.0 - 91.216.207.255 { 0x5bd8d000, 0x5bd8d0ff, REGISTRY_RIPENCC }, // 91.216.208.0 - 91.216.208.255 { 0x5bd8d100, 0x5bd8d2ff, REGISTRY_RIPENCC }, // 91.216.209.0 - 91.216.210.255 { 0x5bd8d300, 0x5bd8d6ff, REGISTRY_RIPENCC }, // 91.216.211.0 - 91.216.214.255 { 0x5bd8d700, 0x5bd8d7ff, REGISTRY_RIPENCC }, // 91.216.215.0 - 91.216.215.255 { 0x5bd8d800, 0x5bd8f6ff, REGISTRY_RIPENCC }, // 91.216.216.0 - 91.216.246.255 { 0x5bd8f700, 0x5bd8f7ff, REGISTRY_RIPENCC }, // 91.216.247.0 - 91.216.247.255 { 0x5bd8f800, 0x5bd8fdff, REGISTRY_RIPENCC }, // 91.216.248.0 - 91.216.253.255 { 0x5bd8fe00, 0x5bd8feff, REGISTRY_RIPENCC }, // 91.216.254.0 - 91.216.254.255 { 0x5bd8ff00, 0x5bd905ff, REGISTRY_RIPENCC }, // 91.216.255.0 - 91.217.5.255 { 0x5bd90600, 0x5bd907ff, REGISTRY_RIPENCC }, // 91.217.6.0 - 91.217.7.255 { 0x5bd90800, 0x5bd909ff, REGISTRY_RIPENCC }, // 91.217.8.0 - 91.217.9.255 { 0x5bd90a00, 0x5bd90bff, REGISTRY_RIPENCC }, // 91.217.10.0 - 91.217.11.255 { 0x5bd90c00, 0x5bd911ff, REGISTRY_RIPENCC }, // 91.217.12.0 - 91.217.17.255 { 0x5bd91200, 0x5bd913ff, REGISTRY_RIPENCC }, // 91.217.18.0 - 91.217.19.255 { 0x5bd91400, 0x5bd915ff, REGISTRY_RIPENCC }, // 91.217.20.0 - 91.217.21.255 { 0x5bd91600, 0x5bd917ff, REGISTRY_RIPENCC }, // 91.217.22.0 - 91.217.23.255 { 0x5bd91800, 0x5bd919ff, REGISTRY_RIPENCC }, // 91.217.24.0 - 91.217.25.255 { 0x5bd91a00, 0x5bd91bff, REGISTRY_RIPENCC }, // 91.217.26.0 - 91.217.27.255 { 0x5bd91c00, 0x5bd931ff, REGISTRY_RIPENCC }, // 91.217.28.0 - 91.217.49.255 { 0x5bd93400, 0x5bd947ff, REGISTRY_RIPENCC }, // 91.217.52.0 - 91.217.71.255 { 0x5bd94800, 0x5bd949ff, REGISTRY_RIPENCC }, // 91.217.72.0 - 91.217.73.255 { 0x5bd94a00, 0x5bd94bff, REGISTRY_RIPENCC }, // 91.217.74.0 - 91.217.75.255 { 0x5bd94c00, 0x5bd94dff, REGISTRY_RIPENCC }, // 91.217.76.0 - 91.217.77.255 { 0x5bd94e00, 0x5bd94fff, REGISTRY_RIPENCC }, // 91.217.78.0 - 91.217.79.255 { 0x5bd95000, 0x5bd951ff, REGISTRY_RIPENCC }, // 91.217.80.0 - 91.217.81.255 { 0x5bd95200, 0x5bd975ff, REGISTRY_RIPENCC }, // 91.217.82.0 - 91.217.117.255 { 0x5bd97600, 0x5bd979ff, REGISTRY_RIPENCC }, // 91.217.118.0 - 91.217.121.255 { 0x5bd97a00, 0x5bd97bff, REGISTRY_RIPENCC }, // 91.217.122.0 - 91.217.123.255 { 0x5bd97c00, 0x5bd97dff, REGISTRY_RIPENCC }, // 91.217.124.0 - 91.217.125.255 { 0x5bd97e00, 0x5bd985ff, REGISTRY_RIPENCC }, // 91.217.126.0 - 91.217.133.255 { 0x5bd98600, 0x5bd987ff, REGISTRY_RIPENCC }, // 91.217.134.0 - 91.217.135.255 { 0x5bd98800, 0x5bd98aff, REGISTRY_RIPENCC }, // 91.217.136.0 - 91.217.138.255 { 0x5bd98b00, 0x5bd98bff, REGISTRY_RIPENCC }, // 91.217.139.0 - 91.217.139.255 { 0x5bd98c00, 0x5bd98fff, REGISTRY_RIPENCC }, // 91.217.140.0 - 91.217.143.255 { 0x5bd99000, 0x5bd990ff, REGISTRY_RIPENCC }, // 91.217.144.0 - 91.217.144.255 { 0x5bd99100, 0x5bd996ff, REGISTRY_RIPENCC }, // 91.217.145.0 - 91.217.150.255 { 0x5bd99700, 0x5bd997ff, REGISTRY_RIPENCC }, // 91.217.151.0 - 91.217.151.255 { 0x5bd99800, 0x5bd99fff, REGISTRY_RIPENCC }, // 91.217.152.0 - 91.217.159.255 { 0x5bd9a000, 0x5bd9a0ff, REGISTRY_RIPENCC }, // 91.217.160.0 - 91.217.160.255 { 0x5bd9a100, 0x5bd9a1ff, REGISTRY_RIPENCC }, // 91.217.161.0 - 91.217.161.255 { 0x5bd9a200, 0x5bd9a2ff, REGISTRY_RIPENCC }, // 91.217.162.0 - 91.217.162.255 { 0x5bd9a300, 0x5bd9a6ff, REGISTRY_RIPENCC }, // 91.217.163.0 - 91.217.166.255 { 0x5bd9a700, 0x5bd9a7ff, REGISTRY_RIPENCC }, // 91.217.167.0 - 91.217.167.255 { 0x5bd9a800, 0x5bd9b0ff, REGISTRY_RIPENCC }, // 91.217.168.0 - 91.217.176.255 { 0x5bd9b100, 0x5bd9b1ff, REGISTRY_RIPENCC }, // 91.217.177.0 - 91.217.177.255 { 0x5bd9b200, 0x5bd9beff, REGISTRY_RIPENCC }, // 91.217.178.0 - 91.217.190.255 { 0x5bd9bf00, 0x5bd9c0ff, REGISTRY_RIPENCC }, // 91.217.191.0 - 91.217.192.255 { 0x5bd9c100, 0x5bd9c2ff, REGISTRY_RIPENCC }, // 91.217.193.0 - 91.217.194.255 { 0x5bd9c300, 0x5bd9c3ff, REGISTRY_RIPENCC }, // 91.217.195.0 - 91.217.195.255 { 0x5bd9c400, 0x5bd9c7ff, REGISTRY_RIPENCC }, // 91.217.196.0 - 91.217.199.255 { 0x5bd9c800, 0x5bd9c8ff, REGISTRY_RIPENCC }, // 91.217.200.0 - 91.217.200.255 { 0x5bd9c900, 0x5bd9ceff, REGISTRY_RIPENCC }, // 91.217.201.0 - 91.217.206.255 { 0x5bd9cf00, 0x5bd9cfff, REGISTRY_RIPENCC }, // 91.217.207.0 - 91.217.207.255 { 0x5bd9d000, 0x5bd9d2ff, REGISTRY_RIPENCC }, // 91.217.208.0 - 91.217.210.255 { 0x5bd9d300, 0x5bd9d4ff, REGISTRY_RIPENCC }, // 91.217.211.0 - 91.217.212.255 { 0x5bd9d600, 0x5bd9d6ff, REGISTRY_RIPENCC }, // 91.217.214.0 - 91.217.214.255 { 0x5bd9d800, 0x5bd9daff, REGISTRY_RIPENCC }, // 91.217.216.0 - 91.217.218.255 { 0x5bd9db00, 0x5bd9dbff, REGISTRY_RIPENCC }, // 91.217.219.0 - 91.217.219.255 { 0x5bd9dc00, 0x5bd9deff, REGISTRY_RIPENCC }, // 91.217.220.0 - 91.217.222.255 { 0x5bd9df00, 0x5bd9dfff, REGISTRY_RIPENCC }, // 91.217.223.0 - 91.217.223.255 { 0x5bd9e000, 0x5bd9e1ff, REGISTRY_RIPENCC }, // 91.217.224.0 - 91.217.225.255 { 0x5bd9e300, 0x5bd9ebff, REGISTRY_RIPENCC }, // 91.217.227.0 - 91.217.235.255 { 0x5bd9ec00, 0x5bd9ecff, REGISTRY_RIPENCC }, // 91.217.236.0 - 91.217.236.255 { 0x5bd9ed00, 0x5bd9eeff, REGISTRY_RIPENCC }, // 91.217.237.0 - 91.217.238.255 { 0x5bd9ef00, 0x5bd9f0ff, REGISTRY_RIPENCC }, // 91.217.239.0 - 91.217.240.255 { 0x5bd9f100, 0x5bd9f8ff, REGISTRY_RIPENCC }, // 91.217.241.0 - 91.217.248.255 { 0x5bd9f900, 0x5bd9faff, REGISTRY_RIPENCC }, // 91.217.249.0 - 91.217.250.255 { 0x5bd9fb00, 0x5bd9fcff, REGISTRY_RIPENCC }, // 91.217.251.0 - 91.217.252.255 { 0x5bd9fd00, 0x5bd9fdff, REGISTRY_RIPENCC }, // 91.217.253.0 - 91.217.253.255 { 0x5bd9fe00, 0x5bda13ff, REGISTRY_RIPENCC }, // 91.217.254.0 - 91.218.19.255 { 0x5bda1400, 0x5bda17ff, REGISTRY_RIPENCC }, // 91.218.20.0 - 91.218.23.255 { 0x5bda1800, 0x5bda23ff, REGISTRY_RIPENCC }, // 91.218.24.0 - 91.218.35.255 { 0x5bda2400, 0x5bda27ff, REGISTRY_RIPENCC }, // 91.218.36.0 - 91.218.39.255 { 0x5bda2800, 0x5bda37ff, REGISTRY_RIPENCC }, // 91.218.40.0 - 91.218.55.255 { 0x5bda3800, 0x5bda3bff, REGISTRY_RIPENCC }, // 91.218.56.0 - 91.218.59.255 { 0x5bda3c00, 0x5bda3fff, REGISTRY_RIPENCC }, // 91.218.60.0 - 91.218.63.255 { 0x5bda4000, 0x5bda43ff, REGISTRY_RIPENCC }, // 91.218.64.0 - 91.218.67.255 { 0x5bda4400, 0x5bda4cff, REGISTRY_RIPENCC }, // 91.218.68.0 - 91.218.76.255 { 0x5bda4d00, 0x5bda4dff, REGISTRY_RIPENCC }, // 91.218.77.0 - 91.218.77.255 { 0x5bda4e00, 0x5bda6bff, REGISTRY_RIPENCC }, // 91.218.78.0 - 91.218.107.255 { 0x5bda6c00, 0x5bda6fff, REGISTRY_RIPENCC }, // 91.218.108.0 - 91.218.111.255 { 0x5bda7000, 0x5bda83ff, REGISTRY_RIPENCC }, // 91.218.112.0 - 91.218.131.255 { 0x5bda8400, 0x5bda87ff, REGISTRY_RIPENCC }, // 91.218.132.0 - 91.218.135.255 { 0x5bda8800, 0x5bdacbff, REGISTRY_RIPENCC }, // 91.218.136.0 - 91.218.203.255 { 0x5bdacc00, 0x5bdacfff, REGISTRY_RIPENCC }, // 91.218.204.0 - 91.218.207.255 { 0x5bdad000, 0x5bdaebff, REGISTRY_RIPENCC }, // 91.218.208.0 - 91.218.235.255 { 0x5bdaec00, 0x5bdaefff, REGISTRY_RIPENCC }, // 91.218.236.0 - 91.218.239.255 { 0x5bdaf000, 0x5bdafbff, REGISTRY_RIPENCC }, // 91.218.240.0 - 91.218.251.255 { 0x5bdafc00, 0x5bdaffff, REGISTRY_RIPENCC }, // 91.218.252.0 - 91.218.255.255 { 0x5bdb0000, 0x5bdb07ff, REGISTRY_RIPENCC }, // 91.219.0.0 - 91.219.7.255 { 0x5bdb0800, 0x5bdb0bff, REGISTRY_RIPENCC }, // 91.219.8.0 - 91.219.11.255 { 0x5bdb0c00, 0x5bdb0fff, REGISTRY_RIPENCC }, // 91.219.12.0 - 91.219.15.255 { 0x5bdb1000, 0x5bdb17ff, REGISTRY_RIPENCC }, // 91.219.16.0 - 91.219.23.255 { 0x5bdb1800, 0x5bdb3fff, REGISTRY_RIPENCC }, // 91.219.24.0 - 91.219.63.255 { 0x5bdb4000, 0x5bdb43ff, REGISTRY_RIPENCC }, // 91.219.64.0 - 91.219.67.255 { 0x5bdb4400, 0x5bdb47ff, REGISTRY_RIPENCC }, // 91.219.68.0 - 91.219.71.255 { 0x5bdb4800, 0x5bdb4bff, REGISTRY_RIPENCC }, // 91.219.72.0 - 91.219.75.255 { 0x5bdb4c00, 0x5bdb5bff, REGISTRY_RIPENCC }, // 91.219.76.0 - 91.219.91.255 { 0x5bdb5c00, 0x5bdb5fff, REGISTRY_RIPENCC }, // 91.219.92.0 - 91.219.95.255 { 0x5bdb6000, 0x5bdbb3ff, REGISTRY_RIPENCC }, // 91.219.96.0 - 91.219.179.255 { 0x5bdbb400, 0x5bdbb7ff, REGISTRY_RIPENCC }, // 91.219.180.0 - 91.219.183.255 { 0x5bdbb800, 0x5bdbd3ff, REGISTRY_RIPENCC }, // 91.219.184.0 - 91.219.211.255 { 0x5bdbd400, 0x5bdbd7ff, REGISTRY_RIPENCC }, // 91.219.212.0 - 91.219.215.255 { 0x5bdbd800, 0x5bdbdfff, REGISTRY_RIPENCC }, // 91.219.216.0 - 91.219.223.255 { 0x5bdbe000, 0x5bdbe3ff, REGISTRY_RIPENCC }, // 91.219.224.0 - 91.219.227.255 { 0x5bdbe400, 0x5bdbefff, REGISTRY_RIPENCC }, // 91.219.228.0 - 91.219.239.255 { 0x5bdbf000, 0x5bdbf3ff, REGISTRY_RIPENCC }, // 91.219.240.0 - 91.219.243.255 { 0x5bdbf400, 0x5bdc07ff, REGISTRY_RIPENCC }, // 91.219.244.0 - 91.220.7.255 { 0x5bdc0800, 0x5bdc08ff, REGISTRY_RIPENCC }, // 91.220.8.0 - 91.220.8.255 { 0x5bdc0900, 0x5bdc09ff, REGISTRY_RIPENCC }, // 91.220.9.0 - 91.220.9.255 { 0x5bdc0a00, 0x5bdc0aff, REGISTRY_RIPENCC }, // 91.220.10.0 - 91.220.10.255 { 0x5bdc0b00, 0x5bdc0eff, REGISTRY_RIPENCC }, // 91.220.11.0 - 91.220.14.255 { 0x5bdc0f00, 0x5bdc0fff, REGISTRY_RIPENCC }, // 91.220.15.0 - 91.220.15.255 { 0x5bdc1000, 0x5bdc18ff, REGISTRY_RIPENCC }, // 91.220.16.0 - 91.220.24.255 { 0x5bdc1900, 0x5bdc19ff, REGISTRY_RIPENCC }, // 91.220.25.0 - 91.220.25.255 { 0x5bdc1a00, 0x5bdc1bff, REGISTRY_RIPENCC }, // 91.220.26.0 - 91.220.27.255 { 0x5bdc1c00, 0x5bdc1cff, REGISTRY_RIPENCC }, // 91.220.28.0 - 91.220.28.255 { 0x5bdc1d00, 0x5bdc1dff, REGISTRY_RIPENCC }, // 91.220.29.0 - 91.220.29.255 { 0x5bdc1e00, 0x5bdc1eff, REGISTRY_RIPENCC }, // 91.220.30.0 - 91.220.30.255 { 0x5bdc1f00, 0x5bdc22ff, REGISTRY_RIPENCC }, // 91.220.31.0 - 91.220.34.255 { 0x5bdc2300, 0x5bdc23ff, REGISTRY_RIPENCC }, // 91.220.35.0 - 91.220.35.255 { 0x5bdc2400, 0x5bdc32ff, REGISTRY_RIPENCC }, // 91.220.36.0 - 91.220.50.255 { 0x5bdc3300, 0x5bdc33ff, REGISTRY_RIPENCC }, // 91.220.51.0 - 91.220.51.255 { 0x5bdc3400, 0x5bdc44ff, REGISTRY_RIPENCC }, // 91.220.52.0 - 91.220.68.255 { 0x5bdc4500, 0x5bdc47ff, REGISTRY_RIPENCC }, // 91.220.69.0 - 91.220.71.255 { 0x5bdc4800, 0x5bdc4fff, REGISTRY_RIPENCC }, // 91.220.72.0 - 91.220.79.255 { 0x5bdc5000, 0x5bdc51ff, REGISTRY_RIPENCC }, // 91.220.80.0 - 91.220.81.255 { 0x5bdc5200, 0x5bdc53ff, REGISTRY_RIPENCC }, // 91.220.82.0 - 91.220.83.255 { 0x5bdc5400, 0x5bdc54ff, REGISTRY_RIPENCC }, // 91.220.84.0 - 91.220.84.255 { 0x5bdc5500, 0x5bdc59ff, REGISTRY_RIPENCC }, // 91.220.85.0 - 91.220.89.255 { 0x5bdc5a00, 0x5bdc5aff, REGISTRY_RIPENCC }, // 91.220.90.0 - 91.220.90.255 { 0x5bdc5b00, 0x5bdc60ff, REGISTRY_RIPENCC }, // 91.220.91.0 - 91.220.96.255 { 0x5bdc6100, 0x5bdc61ff, REGISTRY_RIPENCC }, // 91.220.97.0 - 91.220.97.255 { 0x5bdc6200, 0x5bdc6fff, REGISTRY_RIPENCC }, // 91.220.98.0 - 91.220.111.255 { 0x5bdc7000, 0x5bdc71ff, REGISTRY_RIPENCC }, // 91.220.112.0 - 91.220.113.255 { 0x5bdc7200, 0x5bdc72ff, REGISTRY_RIPENCC }, // 91.220.114.0 - 91.220.114.255 { 0x5bdc7300, 0x5bdc73ff, REGISTRY_RIPENCC }, // 91.220.115.0 - 91.220.115.255 { 0x5bdc7400, 0x5bdc7dff, REGISTRY_RIPENCC }, // 91.220.116.0 - 91.220.125.255 { 0x5bdc7e00, 0x5bdc7eff, REGISTRY_RIPENCC }, // 91.220.126.0 - 91.220.126.255 { 0x5bdc7f00, 0x5bdc82ff, REGISTRY_RIPENCC }, // 91.220.127.0 - 91.220.130.255 { 0x5bdc8300, 0x5bdc83ff, REGISTRY_RIPENCC }, // 91.220.131.0 - 91.220.131.255 { 0x5bdc8400, 0x5bdcaaff, REGISTRY_RIPENCC }, // 91.220.132.0 - 91.220.170.255 { 0x5bdcab00, 0x5bdcabff, REGISTRY_RIPENCC }, // 91.220.171.0 - 91.220.171.255 { 0x5bdcac00, 0x5bdcafff, REGISTRY_RIPENCC }, // 91.220.172.0 - 91.220.175.255 { 0x5bdcb000, 0x5bdcb0ff, REGISTRY_RIPENCC }, // 91.220.176.0 - 91.220.176.255 { 0x5bdcb100, 0x5bdcb3ff, REGISTRY_RIPENCC }, // 91.220.177.0 - 91.220.179.255 { 0x5bdcb400, 0x5bdcb4ff, REGISTRY_RIPENCC }, // 91.220.180.0 - 91.220.180.255 { 0x5bdcb500, 0x5bdcb7ff, REGISTRY_RIPENCC }, // 91.220.181.0 - 91.220.183.255 { 0x5bdcb800, 0x5bdcbaff, REGISTRY_RIPENCC }, // 91.220.184.0 - 91.220.186.255 { 0x5bdcbb00, 0x5bdcbdff, REGISTRY_RIPENCC }, // 91.220.187.0 - 91.220.189.255 { 0x5bdcbe00, 0x5bdcbeff, REGISTRY_RIPENCC }, // 91.220.190.0 - 91.220.190.255 { 0x5bdcbf00, 0x5bdcc3ff, REGISTRY_RIPENCC }, // 91.220.191.0 - 91.220.195.255 { 0x5bdcc400, 0x5bdcc4ff, REGISTRY_RIPENCC }, // 91.220.196.0 - 91.220.196.255 { 0x5bdcc500, 0x5bdcc5ff, REGISTRY_RIPENCC }, // 91.220.197.0 - 91.220.197.255 { 0x5bdcc600, 0x5bdcc6ff, REGISTRY_RIPENCC }, // 91.220.198.0 - 91.220.198.255 { 0x5bdcc700, 0x5bdcc9ff, REGISTRY_RIPENCC }, // 91.220.199.0 - 91.220.201.255 { 0x5bdcca00, 0x5bdccbff, REGISTRY_RIPENCC }, // 91.220.202.0 - 91.220.203.255 { 0x5bdccc00, 0x5bdccdff, REGISTRY_RIPENCC }, // 91.220.204.0 - 91.220.205.255 { 0x5bdcce00, 0x5bdcceff, REGISTRY_RIPENCC }, // 91.220.206.0 - 91.220.206.255 { 0x5bdccf00, 0x5bdcddff, REGISTRY_RIPENCC }, // 91.220.207.0 - 91.220.221.255 { 0x5bdcde00, 0x5bdcdfff, REGISTRY_RIPENCC }, // 91.220.222.0 - 91.220.223.255 { 0x5bdce000, 0x5bdce1ff, REGISTRY_RIPENCC }, // 91.220.224.0 - 91.220.225.255 { 0x5bdce200, 0x5bdce2ff, REGISTRY_RIPENCC }, // 91.220.226.0 - 91.220.226.255 { 0x5bdce300, 0x5bdce4ff, REGISTRY_RIPENCC }, // 91.220.227.0 - 91.220.228.255 { 0x5bdce500, 0x5bdce5ff, REGISTRY_RIPENCC }, // 91.220.229.0 - 91.220.229.255 { 0x5bdce600, 0x5bdce6ff, REGISTRY_RIPENCC }, // 91.220.230.0 - 91.220.230.255 { 0x5bdce700, 0x5bdce7ff, REGISTRY_RIPENCC }, // 91.220.231.0 - 91.220.231.255 { 0x5bdce800, 0x5bdcf2ff, REGISTRY_RIPENCC }, // 91.220.232.0 - 91.220.242.255 { 0x5bdcf300, 0x5bdcf3ff, REGISTRY_RIPENCC }, // 91.220.243.0 - 91.220.243.255 { 0x5bdcf400, 0x5bdcf8ff, REGISTRY_RIPENCC }, // 91.220.244.0 - 91.220.248.255 { 0x5bdcf900, 0x5bdcf9ff, REGISTRY_RIPENCC }, // 91.220.249.0 - 91.220.249.255 { 0x5bdcfa00, 0x5bdd25ff, REGISTRY_RIPENCC }, // 91.220.250.0 - 91.221.37.255 { 0x5bdd2600, 0x5bdd27ff, REGISTRY_RIPENCC }, // 91.221.38.0 - 91.221.39.255 { 0x5bdd2800, 0x5bdd41ff, REGISTRY_RIPENCC }, // 91.221.40.0 - 91.221.65.255 { 0x5bdd4200, 0x5bdd43ff, REGISTRY_RIPENCC }, // 91.221.66.0 - 91.221.67.255 { 0x5bdd4400, 0x5bdd4bff, REGISTRY_RIPENCC }, // 91.221.68.0 - 91.221.75.255 { 0x5bdd4c00, 0x5bdd4dff, REGISTRY_RIPENCC }, // 91.221.76.0 - 91.221.77.255 { 0x5bdd4e00, 0x5bdd4fff, REGISTRY_RIPENCC }, // 91.221.78.0 - 91.221.79.255 { 0x5bdd5000, 0x5bdd51ff, REGISTRY_RIPENCC }, // 91.221.80.0 - 91.221.81.255 { 0x5bdd5200, 0x5bdd55ff, REGISTRY_RIPENCC }, // 91.221.82.0 - 91.221.85.255 { 0x5bdd5600, 0x5bdd57ff, REGISTRY_RIPENCC }, // 91.221.86.0 - 91.221.87.255 { 0x5bdd5800, 0x5bdd5bff, REGISTRY_RIPENCC }, // 91.221.88.0 - 91.221.91.255 { 0x5bdd5c00, 0x5bdd5dff, REGISTRY_RIPENCC }, // 91.221.92.0 - 91.221.93.255 { 0x5bdd5e00, 0x5bdd62ff, REGISTRY_RIPENCC }, // 91.221.94.0 - 91.221.98.255 { 0x5bdd6300, 0x5bdd63ff, REGISTRY_RIPENCC }, // 91.221.99.0 - 91.221.99.255 { 0x5bdd6400, 0x5bdd69ff, REGISTRY_RIPENCC }, // 91.221.100.0 - 91.221.105.255 { 0x5bdd6a00, 0x5bdd6bff, REGISTRY_RIPENCC }, // 91.221.106.0 - 91.221.107.255 { 0x5bdd6c00, 0x5bdd6dff, REGISTRY_RIPENCC }, // 91.221.108.0 - 91.221.109.255 { 0x5bdd6e00, 0x5bdd6fff, REGISTRY_RIPENCC }, // 91.221.110.0 - 91.221.111.255 { 0x5bdd7000, 0x5bdd73ff, REGISTRY_RIPENCC }, // 91.221.112.0 - 91.221.115.255 { 0x5bdd7400, 0x5bdd75ff, REGISTRY_RIPENCC }, // 91.221.116.0 - 91.221.117.255 { 0x5bdd7600, 0x5bdde7ff, REGISTRY_RIPENCC }, // 91.221.118.0 - 91.221.231.255 { 0x5bdde800, 0x5bdde9ff, REGISTRY_RIPENCC }, // 91.221.232.0 - 91.221.233.255 { 0x5bddea00, 0x5bddefff, REGISTRY_RIPENCC }, // 91.221.234.0 - 91.221.239.255 { 0x5bddf000, 0x5bddf1ff, REGISTRY_RIPENCC }, // 91.221.240.0 - 91.221.241.255 { 0x5bddf200, 0x5bddf5ff, REGISTRY_RIPENCC }, // 91.221.242.0 - 91.221.245.255 { 0x5bddf600, 0x5bddf7ff, REGISTRY_RIPENCC }, // 91.221.246.0 - 91.221.247.255 { 0x5bddf800, 0x5bde07ff, REGISTRY_RIPENCC }, // 91.221.248.0 - 91.222.7.255 { 0x5bde0800, 0x5bde0bff, REGISTRY_RIPENCC }, // 91.222.8.0 - 91.222.11.255 { 0x5bde0c00, 0x5bde1bff, REGISTRY_RIPENCC }, // 91.222.12.0 - 91.222.27.255 { 0x5bde1c00, 0x5bde1fff, REGISTRY_RIPENCC }, // 91.222.28.0 - 91.222.31.255 { 0x5bde2000, 0x5bde33ff, REGISTRY_RIPENCC }, // 91.222.32.0 - 91.222.51.255 { 0x5bde3400, 0x5bde37ff, REGISTRY_RIPENCC }, // 91.222.52.0 - 91.222.55.255 { 0x5bde3800, 0x5bde77ff, REGISTRY_RIPENCC }, // 91.222.56.0 - 91.222.119.255 { 0x5bde7800, 0x5bde7bff, REGISTRY_RIPENCC }, // 91.222.120.0 - 91.222.123.255 { 0x5bde7c00, 0x5bdecbff, REGISTRY_RIPENCC }, // 91.222.124.0 - 91.222.203.255 { 0x5bdecc00, 0x5bdecfff, REGISTRY_RIPENCC }, // 91.222.204.0 - 91.222.207.255 { 0x5bded000, 0x5bdeebff, REGISTRY_RIPENCC }, // 91.222.208.0 - 91.222.235.255 { 0x5bdeec00, 0x5bdeefff, REGISTRY_RIPENCC }, // 91.222.236.0 - 91.222.239.255 { 0x5bdef000, 0x5bdf06ff, REGISTRY_RIPENCC }, // 91.222.240.0 - 91.223.6.255 { 0x5bdf0700, 0x5bdf07ff, REGISTRY_RIPENCC }, // 91.223.7.0 - 91.223.7.255 { 0x5bdf0800, 0x5bdf1aff, REGISTRY_RIPENCC }, // 91.223.8.0 - 91.223.26.255 { 0x5bdf1b00, 0x5bdf1cff, REGISTRY_RIPENCC }, // 91.223.27.0 - 91.223.28.255 { 0x5bdf1d00, 0x5bdf3bff, REGISTRY_RIPENCC }, // 91.223.29.0 - 91.223.59.255 { 0x5bdf3c00, 0x5bdf3cff, REGISTRY_RIPENCC }, // 91.223.60.0 - 91.223.60.255 { 0x5bdf3d00, 0x5bdf42ff, REGISTRY_RIPENCC }, // 91.223.61.0 - 91.223.66.255 { 0x5bdf4300, 0x5bdf43ff, REGISTRY_RIPENCC }, // 91.223.67.0 - 91.223.67.255 { 0x5bdf4400, 0x5bdf45ff, REGISTRY_RIPENCC }, // 91.223.68.0 - 91.223.69.255 { 0x5bdf4600, 0x5bdf46ff, REGISTRY_RIPENCC }, // 91.223.70.0 - 91.223.70.255 { 0x5bdf4700, 0x5bdf4aff, REGISTRY_RIPENCC }, // 91.223.71.0 - 91.223.74.255 { 0x5bdf4b00, 0x5bdf4bff, REGISTRY_RIPENCC }, // 91.223.75.0 - 91.223.75.255 { 0x5bdf4c00, 0x5bdf58ff, REGISTRY_RIPENCC }, // 91.223.76.0 - 91.223.88.255 { 0x5bdf5900, 0x5bdf59ff, REGISTRY_RIPENCC }, // 91.223.89.0 - 91.223.89.255 { 0x5bdf5a00, 0x5bdf5dff, REGISTRY_RIPENCC }, // 91.223.90.0 - 91.223.93.255 { 0x5bdf5e00, 0x5bdf5fff, REGISTRY_RIPENCC }, // 91.223.94.0 - 91.223.95.255 { 0x5bdf6000, 0x5bdf62ff, REGISTRY_RIPENCC }, // 91.223.96.0 - 91.223.98.255 { 0x5bdf6300, 0x5bdf63ff, REGISTRY_RIPENCC }, // 91.223.99.0 - 91.223.99.255 { 0x5bdf6400, 0x5bdf65ff, REGISTRY_RIPENCC }, // 91.223.100.0 - 91.223.101.255 { 0x5bdf6600, 0x5bdf66ff, REGISTRY_RIPENCC }, // 91.223.102.0 - 91.223.102.255 { 0x5bdf6700, 0x5bdf69ff, REGISTRY_RIPENCC }, // 91.223.103.0 - 91.223.105.255 { 0x5bdf6a00, 0x5bdf6aff, REGISTRY_RIPENCC }, // 91.223.106.0 - 91.223.106.255 { 0x5bdf6b00, 0x5bdf73ff, REGISTRY_RIPENCC }, // 91.223.107.0 - 91.223.115.255 { 0x5bdf7500, 0x5bdf75ff, REGISTRY_RIPENCC }, // 91.223.117.0 - 91.223.117.255 { 0x5bdf7600, 0x5bdf76ff, REGISTRY_RIPENCC }, // 91.223.118.0 - 91.223.118.255 { 0x5bdf7700, 0x5bdf77ff, REGISTRY_RIPENCC }, // 91.223.119.0 - 91.223.119.255 { 0x5bdf7800, 0x5bdf7dff, REGISTRY_RIPENCC }, // 91.223.120.0 - 91.223.125.255 { 0x5bdf7e00, 0x5bdf7eff, REGISTRY_RIPENCC }, // 91.223.126.0 - 91.223.126.255 { 0x5bdf7f00, 0x5bdf82ff, REGISTRY_RIPENCC }, // 91.223.127.0 - 91.223.130.255 { 0x5bdf8300, 0x5bdf83ff, REGISTRY_RIPENCC }, // 91.223.131.0 - 91.223.131.255 { 0x5bdf8500, 0x5bdf96ff, REGISTRY_RIPENCC }, // 91.223.133.0 - 91.223.150.255 { 0x5bdf9700, 0x5bdf97ff, REGISTRY_RIPENCC }, // 91.223.151.0 - 91.223.151.255 { 0x5bdf9800, 0x5bdf9aff, REGISTRY_RIPENCC }, // 91.223.152.0 - 91.223.154.255 { 0x5bdf9b00, 0x5bdf9bff, REGISTRY_RIPENCC }, // 91.223.155.0 - 91.223.155.255 { 0x5bdf9c00, 0x5bdf9dff, REGISTRY_RIPENCC }, // 91.223.156.0 - 91.223.157.255 { 0x5bdf9e00, 0x5bdf9eff, REGISTRY_RIPENCC }, // 91.223.158.0 - 91.223.158.255 { 0x5bdf9f00, 0x5bdfa2ff, REGISTRY_RIPENCC }, // 91.223.159.0 - 91.223.162.255 { 0x5bdfa300, 0x5bdfa3ff, REGISTRY_RIPENCC }, // 91.223.163.0 - 91.223.163.255 { 0x5bdfa400, 0x5bdfa8ff, REGISTRY_RIPENCC }, // 91.223.164.0 - 91.223.168.255 { 0x5bdfa900, 0x5bdfa9ff, REGISTRY_RIPENCC }, // 91.223.169.0 - 91.223.169.255 { 0x5bdfaa00, 0x5bdfaaff, REGISTRY_RIPENCC }, // 91.223.170.0 - 91.223.170.255 { 0x5bdfab00, 0x5bdfabff, REGISTRY_RIPENCC }, // 91.223.171.0 - 91.223.171.255 { 0x5bdfac00, 0x5bdfc1ff, REGISTRY_RIPENCC }, // 91.223.172.0 - 91.223.193.255 { 0x5bdfc300, 0x5bdfc9ff, REGISTRY_RIPENCC }, // 91.223.195.0 - 91.223.201.255 { 0x5bdfcb00, 0x5bdfe4ff, REGISTRY_RIPENCC }, // 91.223.203.0 - 91.223.228.255 { 0x5bdfe500, 0x5bdfe5ff, REGISTRY_RIPENCC }, // 91.223.229.0 - 91.223.229.255 { 0x5bdfe600, 0x5bdfebff, REGISTRY_RIPENCC }, // 91.223.230.0 - 91.223.235.255 { 0x5bdfec00, 0x5bdfecff, REGISTRY_RIPENCC }, // 91.223.236.0 - 91.223.236.255 { 0x5bdfed00, 0x5bdffdff, REGISTRY_RIPENCC }, // 91.223.237.0 - 91.223.253.255 { 0x5bdffe00, 0x5bdffeff, REGISTRY_RIPENCC }, // 91.223.254.0 - 91.223.254.255 { 0x5bdfff00, 0x5be00bff, REGISTRY_RIPENCC }, // 91.223.255.0 - 91.224.11.255 { 0x5be00c00, 0x5be00dff, REGISTRY_RIPENCC }, // 91.224.12.0 - 91.224.13.255 { 0x5be00e00, 0x5be013ff, REGISTRY_RIPENCC }, // 91.224.14.0 - 91.224.19.255 { 0x5be01400, 0x5be015ff, REGISTRY_RIPENCC }, // 91.224.20.0 - 91.224.21.255 { 0x5be01600, 0x5be027ff, REGISTRY_RIPENCC }, // 91.224.22.0 - 91.224.39.255 { 0x5be02800, 0x5be029ff, REGISTRY_RIPENCC }, // 91.224.40.0 - 91.224.41.255 { 0x5be02a00, 0x5be03fff, REGISTRY_RIPENCC }, // 91.224.42.0 - 91.224.63.255 { 0x5be04000, 0x5be041ff, REGISTRY_RIPENCC }, // 91.224.64.0 - 91.224.65.255 { 0x5be04200, 0x5be05bff, REGISTRY_RIPENCC }, // 91.224.66.0 - 91.224.91.255 { 0x5be05c00, 0x5be05dff, REGISTRY_RIPENCC }, // 91.224.92.0 - 91.224.93.255 { 0x5be05e00, 0x5be063ff, REGISTRY_RIPENCC }, // 91.224.94.0 - 91.224.99.255 { 0x5be06400, 0x5be065ff, REGISTRY_RIPENCC }, // 91.224.100.0 - 91.224.101.255 { 0x5be06600, 0x5be06bff, REGISTRY_RIPENCC }, // 91.224.102.0 - 91.224.107.255 { 0x5be06c00, 0x5be06dff, REGISTRY_RIPENCC }, // 91.224.108.0 - 91.224.109.255 { 0x5be06e00, 0x5be071ff, REGISTRY_RIPENCC }, // 91.224.110.0 - 91.224.113.255 { 0x5be07200, 0x5be073ff, REGISTRY_RIPENCC }, // 91.224.114.0 - 91.224.115.255 { 0x5be07400, 0x5be08bff, REGISTRY_RIPENCC }, // 91.224.116.0 - 91.224.139.255 { 0x5be08c00, 0x5be08dff, REGISTRY_RIPENCC }, // 91.224.140.0 - 91.224.141.255 { 0x5be08e00, 0x5be09fff, REGISTRY_RIPENCC }, // 91.224.142.0 - 91.224.159.255 { 0x5be0a000, 0x5be0a1ff, REGISTRY_RIPENCC }, // 91.224.160.0 - 91.224.161.255 { 0x5be0a200, 0x5be0a3ff, REGISTRY_RIPENCC }, // 91.224.162.0 - 91.224.163.255 { 0x5be0a400, 0x5be0a5ff, REGISTRY_RIPENCC }, // 91.224.164.0 - 91.224.165.255 { 0x5be0a600, 0x5be0a9ff, REGISTRY_RIPENCC }, // 91.224.166.0 - 91.224.169.255 { 0x5be0aa00, 0x5be0abff, REGISTRY_RIPENCC }, // 91.224.170.0 - 91.224.171.255 { 0x5be0ac00, 0x5be0d3ff, REGISTRY_RIPENCC }, // 91.224.172.0 - 91.224.211.255 { 0x5be0d400, 0x5be0d5ff, REGISTRY_RIPENCC }, // 91.224.212.0 - 91.224.213.255 { 0x5be0d600, 0x5be0dfff, REGISTRY_RIPENCC }, // 91.224.214.0 - 91.224.223.255 { 0x5be0e000, 0x5be0e1ff, REGISTRY_RIPENCC }, // 91.224.224.0 - 91.224.225.255 { 0x5be0e200, 0x5be0e3ff, REGISTRY_RIPENCC }, // 91.224.226.0 - 91.224.227.255 { 0x5be0e400, 0x5be0e7ff, REGISTRY_RIPENCC }, // 91.224.228.0 - 91.224.231.255 { 0x5be0e800, 0x5be0f5ff, REGISTRY_RIPENCC }, // 91.224.232.0 - 91.224.245.255 { 0x5be0f600, 0x5be0f7ff, REGISTRY_RIPENCC }, // 91.224.246.0 - 91.224.247.255 { 0x5be0f800, 0x5be0ffff, REGISTRY_RIPENCC }, // 91.224.248.0 - 91.224.255.255 { 0x5be10000, 0x5be103ff, REGISTRY_RIPENCC }, // 91.225.0.0 - 91.225.3.255 { 0x5be10400, 0x5be107ff, REGISTRY_RIPENCC }, // 91.225.4.0 - 91.225.7.255 { 0x5be10800, 0x5be10fff, REGISTRY_RIPENCC }, // 91.225.8.0 - 91.225.15.255 { 0x5be11000, 0x5be11fff, REGISTRY_RIPENCC }, // 91.225.16.0 - 91.225.31.255 { 0x5be12000, 0x5be121ff, REGISTRY_ARIN }, // 91.225.32.0 - 91.225.33.255 { 0x5be12200, 0x5be123ff, REGISTRY_RIPENCC }, // 91.225.34.0 - 91.225.35.255 { 0x5be12400, 0x5be1cbff, REGISTRY_RIPENCC }, // 91.225.36.0 - 91.225.203.255 { 0x5be1cc00, 0x5be1cfff, REGISTRY_RIPENCC }, // 91.225.204.0 - 91.225.207.255 { 0x5be1d000, 0x5be1dfff, REGISTRY_RIPENCC }, // 91.225.208.0 - 91.225.223.255 { 0x5be1e000, 0x5be1e3ff, REGISTRY_RIPENCC }, // 91.225.224.0 - 91.225.227.255 { 0x5be1e400, 0x5be1ffff, REGISTRY_RIPENCC }, // 91.225.228.0 - 91.225.255.255 { 0x5be20000, 0x5be201ff, REGISTRY_RIPENCC }, // 91.226.0.0 - 91.226.1.255 { 0x5be20200, 0x5be21dff, REGISTRY_RIPENCC }, // 91.226.2.0 - 91.226.29.255 { 0x5be21e00, 0x5be221ff, REGISTRY_RIPENCC }, // 91.226.30.0 - 91.226.33.255 { 0x5be22200, 0x5be227ff, REGISTRY_RIPENCC }, // 91.226.34.0 - 91.226.39.255 { 0x5be22800, 0x5be229ff, REGISTRY_RIPENCC }, // 91.226.40.0 - 91.226.41.255 { 0x5be22a00, 0x5be233ff, REGISTRY_RIPENCC }, // 91.226.42.0 - 91.226.51.255 { 0x5be23400, 0x5be23bff, REGISTRY_RIPENCC }, // 91.226.52.0 - 91.226.59.255 { 0x5be23c00, 0x5be247ff, REGISTRY_RIPENCC }, // 91.226.60.0 - 91.226.71.255 { 0x5be24800, 0x5be248ff, REGISTRY_RIPENCC }, // 91.226.72.0 - 91.226.72.255 { 0x5be24900, 0x5be24bff, REGISTRY_RIPENCC }, // 91.226.73.0 - 91.226.75.255 { 0x5be24c00, 0x5be24cff, REGISTRY_RIPENCC }, // 91.226.76.0 - 91.226.76.255 { 0x5be24d00, 0x5be24dff, REGISTRY_RIPENCC }, // 91.226.77.0 - 91.226.77.255 { 0x5be24e00, 0x5be24eff, REGISTRY_RIPENCC }, // 91.226.78.0 - 91.226.78.255 { 0x5be24f00, 0x5be253ff, REGISTRY_RIPENCC }, // 91.226.79.0 - 91.226.83.255 { 0x5be25400, 0x5be25bff, REGISTRY_RIPENCC }, // 91.226.84.0 - 91.226.91.255 { 0x5be25c00, 0x5be25fff, REGISTRY_RIPENCC }, // 91.226.92.0 - 91.226.95.255 { 0x5be26000, 0x5be261ff, REGISTRY_RIPENCC }, // 91.226.96.0 - 91.226.97.255 { 0x5be26200, 0x5be29fff, REGISTRY_RIPENCC }, // 91.226.98.0 - 91.226.159.255 { 0x5be2a000, 0x5be2a0ff, REGISTRY_RIPENCC }, // 91.226.160.0 - 91.226.160.255 { 0x5be2a100, 0x5be2b7ff, REGISTRY_RIPENCC }, // 91.226.161.0 - 91.226.183.255 { 0x5be2b800, 0x5be2b8ff, REGISTRY_RIPENCC }, // 91.226.184.0 - 91.226.184.255 { 0x5be2b900, 0x5be2dcff, REGISTRY_RIPENCC }, // 91.226.185.0 - 91.226.220.255 { 0x5be2dd00, 0x5be2ddff, REGISTRY_RIPENCC }, // 91.226.221.0 - 91.226.221.255 { 0x5be2de00, 0x5be2dfff, REGISTRY_RIPENCC }, // 91.226.222.0 - 91.226.223.255 { 0x5be2e000, 0x5be2e3ff, REGISTRY_RIPENCC }, // 91.226.224.0 - 91.226.227.255 { 0x5be2e400, 0x5be2f6ff, REGISTRY_RIPENCC }, // 91.226.228.0 - 91.226.246.255 { 0x5be2f700, 0x5be2f7ff, REGISTRY_RIPENCC }, // 91.226.247.0 - 91.226.247.255 { 0x5be2f800, 0x5be31aff, REGISTRY_RIPENCC }, // 91.226.248.0 - 91.227.26.255 { 0x5be31b00, 0x5be31bff, REGISTRY_RIPENCC }, // 91.227.27.0 - 91.227.27.255 { 0x5be31c00, 0x5be349ff, REGISTRY_RIPENCC }, // 91.227.28.0 - 91.227.73.255 { 0x5be34a00, 0x5be34aff, REGISTRY_RIPENCC }, // 91.227.74.0 - 91.227.74.255 { 0x5be34b00, 0x5be34cff, REGISTRY_RIPENCC }, // 91.227.75.0 - 91.227.76.255 { 0x5be34d00, 0x5be34dff, REGISTRY_RIPENCC }, // 91.227.77.0 - 91.227.77.255 { 0x5be34e00, 0x5be353ff, REGISTRY_RIPENCC }, // 91.227.78.0 - 91.227.83.255 { 0x5be35400, 0x5be357ff, REGISTRY_RIPENCC }, // 91.227.84.0 - 91.227.87.255 { 0x5be35800, 0x5be365ff, REGISTRY_RIPENCC }, // 91.227.88.0 - 91.227.101.255 { 0x5be36600, 0x5be36bff, REGISTRY_RIPENCC }, // 91.227.102.0 - 91.227.107.255 { 0x5be36c00, 0x5be383ff, REGISTRY_RIPENCC }, // 91.227.108.0 - 91.227.131.255 { 0x5be38400, 0x5be385ff, REGISTRY_RIPENCC }, // 91.227.132.0 - 91.227.133.255 { 0x5be38600, 0x5be388ff, REGISTRY_RIPENCC }, // 91.227.134.0 - 91.227.136.255 { 0x5be38900, 0x5be389ff, REGISTRY_RIPENCC }, // 91.227.137.0 - 91.227.137.255 { 0x5be38a00, 0x5be397ff, REGISTRY_RIPENCC }, // 91.227.138.0 - 91.227.151.255 { 0x5be39800, 0x5be39bff, REGISTRY_RIPENCC }, // 91.227.152.0 - 91.227.155.255 { 0x5be39c00, 0x5be3a7ff, REGISTRY_RIPENCC }, // 91.227.156.0 - 91.227.167.255 { 0x5be3a800, 0x5be3a8ff, REGISTRY_RIPENCC }, // 91.227.168.0 - 91.227.168.255 { 0x5be3a900, 0x5be3a9ff, REGISTRY_RIPENCC }, // 91.227.169.0 - 91.227.169.255 { 0x5be3aa00, 0x5be3abff, REGISTRY_RIPENCC }, // 91.227.170.0 - 91.227.171.255 { 0x5be3ac00, 0x5be3b7ff, REGISTRY_RIPENCC }, // 91.227.172.0 - 91.227.183.255 { 0x5be3b800, 0x5be3b8ff, REGISTRY_RIPENCC }, // 91.227.184.0 - 91.227.184.255 { 0x5be3b900, 0x5be3c2ff, REGISTRY_RIPENCC }, // 91.227.185.0 - 91.227.194.255 { 0x5be3c300, 0x5be3c3ff, REGISTRY_RIPENCC }, // 91.227.195.0 - 91.227.195.255 { 0x5be3c400, 0x5be3c7ff, REGISTRY_RIPENCC }, // 91.227.196.0 - 91.227.199.255 { 0x5be3c800, 0x5be3cbff, REGISTRY_RIPENCC }, // 91.227.200.0 - 91.227.203.255 { 0x5be3cc00, 0x5be3e5ff, REGISTRY_RIPENCC }, // 91.227.204.0 - 91.227.229.255 { 0x5be3e600, 0x5be3e7ff, REGISTRY_RIPENCC }, // 91.227.230.0 - 91.227.231.255 { 0x5be3e800, 0x5be3ebff, REGISTRY_RIPENCC }, // 91.227.232.0 - 91.227.235.255 { 0x5be3ec00, 0x5be3efff, REGISTRY_RIPENCC }, // 91.227.236.0 - 91.227.239.255 { 0x5be3f000, 0x5be3f5ff, REGISTRY_RIPENCC }, // 91.227.240.0 - 91.227.245.255 { 0x5be3f600, 0x5be3f7ff, REGISTRY_RIPENCC }, // 91.227.246.0 - 91.227.247.255 { 0x5be3f800, 0x5be3fcff, REGISTRY_RIPENCC }, // 91.227.248.0 - 91.227.252.255 { 0x5be3fd00, 0x5be3fdff, REGISTRY_RIPENCC }, // 91.227.253.0 - 91.227.253.255 { 0x5be3fe00, 0x5be409ff, REGISTRY_RIPENCC }, // 91.227.254.0 - 91.228.9.255 { 0x5be40a00, 0x5be40aff, REGISTRY_RIPENCC }, // 91.228.10.0 - 91.228.10.255 { 0x5be40b00, 0x5be415ff, REGISTRY_RIPENCC }, // 91.228.11.0 - 91.228.21.255 { 0x5be41600, 0x5be419ff, REGISTRY_RIPENCC }, // 91.228.22.0 - 91.228.25.255 { 0x5be41a00, 0x5be41cff, REGISTRY_RIPENCC }, // 91.228.26.0 - 91.228.28.255 { 0x5be41d00, 0x5be41dff, REGISTRY_RIPENCC }, // 91.228.29.0 - 91.228.29.255 { 0x5be41e00, 0x5be423ff, REGISTRY_RIPENCC }, // 91.228.30.0 - 91.228.35.255 { 0x5be42400, 0x5be425ff, REGISTRY_RIPENCC }, // 91.228.36.0 - 91.228.37.255 { 0x5be42600, 0x5be433ff, REGISTRY_RIPENCC }, // 91.228.38.0 - 91.228.51.255 { 0x5be43400, 0x5be435ff, REGISTRY_RIPENCC }, // 91.228.52.0 - 91.228.53.255 { 0x5be43600, 0x5be437ff, REGISTRY_RIPENCC }, // 91.228.54.0 - 91.228.55.255 { 0x5be43800, 0x5be438ff, REGISTRY_RIPENCC }, // 91.228.56.0 - 91.228.56.255 { 0x5be43900, 0x5be43fff, REGISTRY_RIPENCC }, // 91.228.57.0 - 91.228.63.255 { 0x5be44000, 0x5be443ff, REGISTRY_RIPENCC }, // 91.228.64.0 - 91.228.67.255 { 0x5be44400, 0x5be457ff, REGISTRY_RIPENCC }, // 91.228.68.0 - 91.228.87.255 { 0x5be45800, 0x5be458ff, REGISTRY_RIPENCC }, // 91.228.88.0 - 91.228.88.255 { 0x5be45900, 0x5be467ff, REGISTRY_RIPENCC }, // 91.228.89.0 - 91.228.103.255 { 0x5be46800, 0x5be46bff, REGISTRY_RIPENCC }, // 91.228.104.0 - 91.228.107.255 { 0x5be46c00, 0x5be476ff, REGISTRY_RIPENCC }, // 91.228.108.0 - 91.228.118.255 { 0x5be47700, 0x5be477ff, REGISTRY_RIPENCC }, // 91.228.119.0 - 91.228.119.255 { 0x5be47800, 0x5be47dff, REGISTRY_RIPENCC }, // 91.228.120.0 - 91.228.125.255 { 0x5be47e00, 0x5be487ff, REGISTRY_RIPENCC }, // 91.228.126.0 - 91.228.135.255 { 0x5be48800, 0x5be494ff, REGISTRY_RIPENCC }, // 91.228.136.0 - 91.228.148.255 { 0x5be49500, 0x5be495ff, REGISTRY_RIPENCC }, // 91.228.149.0 - 91.228.149.255 { 0x5be49600, 0x5be496ff, REGISTRY_RIPENCC }, // 91.228.150.0 - 91.228.150.255 { 0x5be49700, 0x5be497ff, REGISTRY_RIPENCC }, // 91.228.151.0 - 91.228.151.255 { 0x5be49800, 0x5be49fff, REGISTRY_RIPENCC }, // 91.228.152.0 - 91.228.159.255 { 0x5be4a000, 0x5be4a0ff, REGISTRY_RIPENCC }, // 91.228.160.0 - 91.228.160.255 { 0x5be4a100, 0x5be4a7ff, REGISTRY_RIPENCC }, // 91.228.161.0 - 91.228.167.255 { 0x5be4a800, 0x5be4a8ff, REGISTRY_RIPENCC }, // 91.228.168.0 - 91.228.168.255 { 0x5be4a900, 0x5be4abff, REGISTRY_RIPENCC }, // 91.228.169.0 - 91.228.171.255 { 0x5be4ac00, 0x5be4b0ff, REGISTRY_RIPENCC }, // 91.228.172.0 - 91.228.176.255 { 0x5be4b100, 0x5be4b9ff, REGISTRY_RIPENCC }, // 91.228.177.0 - 91.228.185.255 { 0x5be4ba00, 0x5be4bbff, REGISTRY_RIPENCC }, // 91.228.186.0 - 91.228.187.255 { 0x5be4bc00, 0x5be4c7ff, REGISTRY_RIPENCC }, // 91.228.188.0 - 91.228.199.255 { 0x5be4c800, 0x5be4cbff, REGISTRY_RIPENCC }, // 91.228.200.0 - 91.228.203.255 { 0x5be4cc00, 0x5be4cdff, REGISTRY_RIPENCC }, // 91.228.204.0 - 91.228.205.255 { 0x5be4ce00, 0x5be4ceff, REGISTRY_RIPENCC }, // 91.228.206.0 - 91.228.206.255 { 0x5be4cf00, 0x5be4d6ff, REGISTRY_RIPENCC }, // 91.228.207.0 - 91.228.214.255 { 0x5be4d700, 0x5be4d7ff, REGISTRY_RIPENCC }, // 91.228.215.0 - 91.228.215.255 { 0x5be4d800, 0x5be4e2ff, REGISTRY_RIPENCC }, // 91.228.216.0 - 91.228.226.255 { 0x5be4e400, 0x5be4e6ff, REGISTRY_RIPENCC }, // 91.228.228.0 - 91.228.230.255 { 0x5be4e700, 0x5be4e7ff, REGISTRY_RIPENCC }, // 91.228.231.0 - 91.228.231.255 { 0x5be4e800, 0x5be4faff, REGISTRY_RIPENCC }, // 91.228.232.0 - 91.228.250.255 { 0x5be4fb00, 0x5be4fbff, REGISTRY_RIPENCC }, // 91.228.251.0 - 91.228.251.255 { 0x5be4fc00, 0x5be504ff, REGISTRY_RIPENCC }, // 91.228.252.0 - 91.229.4.255 { 0x5be50500, 0x5be506ff, REGISTRY_RIPENCC }, // 91.229.5.0 - 91.229.6.255 { 0x5be50700, 0x5be50fff, REGISTRY_RIPENCC }, // 91.229.7.0 - 91.229.15.255 { 0x5be51000, 0x5be513ff, REGISTRY_RIPENCC }, // 91.229.16.0 - 91.229.19.255 { 0x5be51400, 0x5be518ff, REGISTRY_RIPENCC }, // 91.229.20.0 - 91.229.24.255 { 0x5be51900, 0x5be519ff, REGISTRY_RIPENCC }, // 91.229.25.0 - 91.229.25.255 { 0x5be51a00, 0x5be51dff, REGISTRY_RIPENCC }, // 91.229.26.0 - 91.229.29.255 { 0x5be51e00, 0x5be51fff, REGISTRY_RIPENCC }, // 91.229.30.0 - 91.229.31.255 { 0x5be52000, 0x5be52dff, REGISTRY_RIPENCC }, // 91.229.32.0 - 91.229.45.255 { 0x5be52e00, 0x5be52fff, REGISTRY_RIPENCC }, // 91.229.46.0 - 91.229.47.255 { 0x5be53000, 0x5be537ff, REGISTRY_RIPENCC }, // 91.229.48.0 - 91.229.55.255 { 0x5be53800, 0x5be538ff, REGISTRY_RIPENCC }, // 91.229.56.0 - 91.229.56.255 { 0x5be53900, 0x5be54fff, REGISTRY_RIPENCC }, // 91.229.57.0 - 91.229.79.255 { 0x5be55000, 0x5be553ff, REGISTRY_RIPENCC }, // 91.229.80.0 - 91.229.83.255 { 0x5be55400, 0x5be559ff, REGISTRY_RIPENCC }, // 91.229.84.0 - 91.229.89.255 { 0x5be55a00, 0x5be55bff, REGISTRY_RIPENCC }, // 91.229.90.0 - 91.229.91.255 { 0x5be55c00, 0x5be567ff, REGISTRY_RIPENCC }, // 91.229.92.0 - 91.229.103.255 { 0x5be56800, 0x5be569ff, REGISTRY_RIPENCC }, // 91.229.104.0 - 91.229.105.255 { 0x5be56a00, 0x5be571ff, REGISTRY_RIPENCC }, // 91.229.106.0 - 91.229.113.255 { 0x5be57200, 0x5be572ff, REGISTRY_RIPENCC }, // 91.229.114.0 - 91.229.114.255 { 0x5be57300, 0x5be573ff, REGISTRY_RIPENCC }, // 91.229.115.0 - 91.229.115.255 { 0x5be57400, 0x5be577ff, REGISTRY_RIPENCC }, // 91.229.116.0 - 91.229.119.255 { 0x5be57800, 0x5be583ff, REGISTRY_RIPENCC }, // 91.229.120.0 - 91.229.131.255 { 0x5be58400, 0x5be587ff, REGISTRY_RIPENCC }, // 91.229.132.0 - 91.229.135.255 { 0x5be58800, 0x5be592ff, REGISTRY_RIPENCC }, // 91.229.136.0 - 91.229.146.255 { 0x5be59300, 0x5be593ff, REGISTRY_RIPENCC }, // 91.229.147.0 - 91.229.147.255 { 0x5be59400, 0x5be59bff, REGISTRY_RIPENCC }, // 91.229.148.0 - 91.229.155.255 { 0x5be59c00, 0x5be59fff, REGISTRY_RIPENCC }, // 91.229.156.0 - 91.229.159.255 { 0x5be5a000, 0x5be5b3ff, REGISTRY_RIPENCC }, // 91.229.160.0 - 91.229.179.255 { 0x5be5b400, 0x5be5b4ff, REGISTRY_RIPENCC }, // 91.229.180.0 - 91.229.180.255 { 0x5be5b500, 0x5be5b5ff, REGISTRY_RIPENCC }, // 91.229.181.0 - 91.229.181.255 { 0x5be5b600, 0x5be5b6ff, REGISTRY_RIPENCC }, // 91.229.182.0 - 91.229.182.255 { 0x5be5b700, 0x5be5b8ff, REGISTRY_RIPENCC }, // 91.229.183.0 - 91.229.184.255 { 0x5be5b900, 0x5be5b9ff, REGISTRY_RIPENCC }, // 91.229.185.0 - 91.229.185.255 { 0x5be5ba00, 0x5be5d1ff, REGISTRY_RIPENCC }, // 91.229.186.0 - 91.229.209.255 { 0x5be5d200, 0x5be5d2ff, REGISTRY_RIPENCC }, // 91.229.210.0 - 91.229.210.255 { 0x5be5d300, 0x5be5d3ff, REGISTRY_RIPENCC }, // 91.229.211.0 - 91.229.211.255 { 0x5be5d400, 0x5be5d4ff, REGISTRY_RIPENCC }, // 91.229.212.0 - 91.229.212.255 { 0x5be5d500, 0x5be5e4ff, REGISTRY_RIPENCC }, // 91.229.213.0 - 91.229.228.255 { 0x5be5e500, 0x5be5e7ff, REGISTRY_RIPENCC }, // 91.229.229.0 - 91.229.231.255 { 0x5be5e800, 0x5be5ebff, REGISTRY_RIPENCC }, // 91.229.232.0 - 91.229.235.255 { 0x5be5ec00, 0x5be5ecff, REGISTRY_RIPENCC }, // 91.229.236.0 - 91.229.236.255 { 0x5be5ed00, 0x5be5eeff, REGISTRY_RIPENCC }, // 91.229.237.0 - 91.229.238.255 { 0x5be5ef00, 0x5be5efff, REGISTRY_RIPENCC }, // 91.229.239.0 - 91.229.239.255 { 0x5be5f000, 0x5be5f3ff, REGISTRY_RIPENCC }, // 91.229.240.0 - 91.229.243.255 { 0x5be5f400, 0x5be5f8ff, REGISTRY_RIPENCC }, // 91.229.244.0 - 91.229.248.255 { 0x5be5f900, 0x5be61aff, REGISTRY_RIPENCC }, // 91.229.249.0 - 91.230.26.255 { 0x5be61b00, 0x5be61bff, REGISTRY_RIPENCC }, // 91.230.27.0 - 91.230.27.255 { 0x5be61c00, 0x5be623ff, REGISTRY_RIPENCC }, // 91.230.28.0 - 91.230.35.255 { 0x5be62400, 0x5be627ff, REGISTRY_RIPENCC }, // 91.230.36.0 - 91.230.39.255 { 0x5be62800, 0x5be62eff, REGISTRY_RIPENCC }, // 91.230.40.0 - 91.230.46.255 { 0x5be62f00, 0x5be631ff, REGISTRY_RIPENCC }, // 91.230.47.0 - 91.230.49.255 { 0x5be63200, 0x5be648ff, REGISTRY_RIPENCC }, // 91.230.50.0 - 91.230.72.255 { 0x5be64900, 0x5be649ff, REGISTRY_RIPENCC }, // 91.230.73.0 - 91.230.73.255 { 0x5be64a00, 0x5be64fff, REGISTRY_RIPENCC }, // 91.230.74.0 - 91.230.79.255 { 0x5be65000, 0x5be650ff, REGISTRY_RIPENCC }, // 91.230.80.0 - 91.230.80.255 { 0x5be65100, 0x5be651ff, REGISTRY_RIPENCC }, // 91.230.81.0 - 91.230.81.255 { 0x5be65200, 0x5be652ff, REGISTRY_RIPENCC }, // 91.230.82.0 - 91.230.82.255 { 0x5be65300, 0x5be66dff, REGISTRY_RIPENCC }, // 91.230.83.0 - 91.230.109.255 { 0x5be66e00, 0x5be66fff, REGISTRY_RIPENCC }, // 91.230.110.0 - 91.230.111.255 { 0x5be67000, 0x5be685ff, REGISTRY_RIPENCC }, // 91.230.112.0 - 91.230.133.255 { 0x5be68600, 0x5be686ff, REGISTRY_RIPENCC }, // 91.230.134.0 - 91.230.134.255 { 0x5be68700, 0x5be687ff, REGISTRY_RIPENCC }, // 91.230.135.0 - 91.230.135.255 { 0x5be68800, 0x5be68bff, REGISTRY_RIPENCC }, // 91.230.136.0 - 91.230.139.255 { 0x5be68c00, 0x5be68eff, REGISTRY_RIPENCC }, // 91.230.140.0 - 91.230.142.255 { 0x5be68f00, 0x5be68fff, REGISTRY_RIPENCC }, // 91.230.143.0 - 91.230.143.255 { 0x5be69000, 0x5be692ff, REGISTRY_RIPENCC }, // 91.230.144.0 - 91.230.146.255 { 0x5be69300, 0x5be693ff, REGISTRY_RIPENCC }, // 91.230.147.0 - 91.230.147.255 { 0x5be69400, 0x5be694ff, REGISTRY_RIPENCC }, // 91.230.148.0 - 91.230.148.255 { 0x5be69500, 0x5be696ff, REGISTRY_RIPENCC }, // 91.230.149.0 - 91.230.150.255 { 0x5be69700, 0x5be697ff, REGISTRY_RIPENCC }, // 91.230.151.0 - 91.230.151.255 { 0x5be69800, 0x5be69bff, REGISTRY_RIPENCC }, // 91.230.152.0 - 91.230.155.255 { 0x5be69c00, 0x5be6a7ff, REGISTRY_RIPENCC }, // 91.230.156.0 - 91.230.167.255 { 0x5be6a800, 0x5be6a8ff, REGISTRY_RIPENCC }, // 91.230.168.0 - 91.230.168.255 { 0x5be6a900, 0x5be6b5ff, REGISTRY_RIPENCC }, // 91.230.169.0 - 91.230.181.255 { 0x5be6b600, 0x5be6b7ff, REGISTRY_RIPENCC }, // 91.230.182.0 - 91.230.183.255 { 0x5be6b800, 0x5be6bbff, REGISTRY_RIPENCC }, // 91.230.184.0 - 91.230.187.255 { 0x5be6bc00, 0x5be6bcff, REGISTRY_RIPENCC }, // 91.230.188.0 - 91.230.188.255 { 0x5be6bd00, 0x5be6d3ff, REGISTRY_RIPENCC }, // 91.230.189.0 - 91.230.211.255 { 0x5be6d400, 0x5be6d4ff, REGISTRY_RIPENCC }, // 91.230.212.0 - 91.230.212.255 { 0x5be6d500, 0x5be6d7ff, REGISTRY_RIPENCC }, // 91.230.213.0 - 91.230.215.255 { 0x5be6d800, 0x5be6d9ff, REGISTRY_RIPENCC }, // 91.230.216.0 - 91.230.217.255 { 0x5be6da00, 0x5be6dcff, REGISTRY_RIPENCC }, // 91.230.218.0 - 91.230.220.255 { 0x5be6dd00, 0x5be6ddff, REGISTRY_RIPENCC }, // 91.230.221.0 - 91.230.221.255 { 0x5be6de00, 0x5be6e0ff, REGISTRY_RIPENCC }, // 91.230.222.0 - 91.230.224.255 { 0x5be6e100, 0x5be6e1ff, REGISTRY_RIPENCC }, // 91.230.225.0 - 91.230.225.255 { 0x5be6e200, 0x5be6e3ff, REGISTRY_RIPENCC }, // 91.230.226.0 - 91.230.227.255 { 0x5be6e400, 0x5be6e5ff, REGISTRY_RIPENCC }, // 91.230.228.0 - 91.230.229.255 { 0x5be6e600, 0x5be6f6ff, REGISTRY_RIPENCC }, // 91.230.230.0 - 91.230.246.255 { 0x5be6f700, 0x5be6f7ff, REGISTRY_RIPENCC }, // 91.230.247.0 - 91.230.247.255 { 0x5be6f800, 0x5be721ff, REGISTRY_RIPENCC }, // 91.230.248.0 - 91.231.33.255 { 0x5be72200, 0x5be723ff, REGISTRY_RIPENCC }, // 91.231.34.0 - 91.231.35.255 { 0x5be72400, 0x5be72eff, REGISTRY_RIPENCC }, // 91.231.36.0 - 91.231.46.255 { 0x5be72f00, 0x5be733ff, REGISTRY_RIPENCC }, // 91.231.47.0 - 91.231.51.255 { 0x5be73400, 0x5be741ff, REGISTRY_RIPENCC }, // 91.231.52.0 - 91.231.65.255 { 0x5be74200, 0x5be743ff, REGISTRY_RIPENCC }, // 91.231.66.0 - 91.231.67.255 { 0x5be74400, 0x5be758ff, REGISTRY_RIPENCC }, // 91.231.68.0 - 91.231.88.255 { 0x5be75900, 0x5be759ff, REGISTRY_RIPENCC }, // 91.231.89.0 - 91.231.89.255 { 0x5be75a00, 0x5be77dff, REGISTRY_RIPENCC }, // 91.231.90.0 - 91.231.125.255 { 0x5be77e00, 0x5be77fff, REGISTRY_RIPENCC }, // 91.231.126.0 - 91.231.127.255 { 0x5be78000, 0x5be78dff, REGISTRY_RIPENCC }, // 91.231.128.0 - 91.231.141.255 { 0x5be78e00, 0x5be790ff, REGISTRY_RIPENCC }, // 91.231.142.0 - 91.231.144.255 { 0x5be79100, 0x5be79bff, REGISTRY_RIPENCC }, // 91.231.145.0 - 91.231.155.255 { 0x5be79c00, 0x5be79cff, REGISTRY_RIPENCC }, // 91.231.156.0 - 91.231.156.255 { 0x5be79d00, 0x5be7b3ff, REGISTRY_RIPENCC }, // 91.231.157.0 - 91.231.179.255 { 0x5be7b400, 0x5be7b7ff, REGISTRY_RIPENCC }, // 91.231.180.0 - 91.231.183.255 { 0x5be7b800, 0x5be7b9ff, REGISTRY_RIPENCC }, // 91.231.184.0 - 91.231.185.255 { 0x5be7ba00, 0x5be7bfff, REGISTRY_RIPENCC }, // 91.231.186.0 - 91.231.191.255 { 0x5be7c000, 0x5be7c7ff, REGISTRY_RIPENCC }, // 91.231.192.0 - 91.231.199.255 { 0x5be7c800, 0x5be7cbff, REGISTRY_RIPENCC }, // 91.231.200.0 - 91.231.203.255 { 0x5be7cc00, 0x5be7ceff, REGISTRY_RIPENCC }, // 91.231.204.0 - 91.231.206.255 { 0x5be7cf00, 0x5be7d3ff, REGISTRY_RIPENCC }, // 91.231.207.0 - 91.231.211.255 { 0x5be7d400, 0x5be7deff, REGISTRY_RIPENCC }, // 91.231.212.0 - 91.231.222.255 { 0x5be7df00, 0x5be7e3ff, REGISTRY_RIPENCC }, // 91.231.223.0 - 91.231.227.255 { 0x5be7e400, 0x5be7e7ff, REGISTRY_RIPENCC }, // 91.231.228.0 - 91.231.231.255 { 0x5be7e900, 0x5be7f2ff, REGISTRY_RIPENCC }, // 91.231.233.0 - 91.231.242.255 { 0x5be7f300, 0x5be7f3ff, REGISTRY_RIPENCC }, // 91.231.243.0 - 91.231.243.255 { 0x5be7f400, 0x5be80fff, REGISTRY_RIPENCC }, // 91.231.244.0 - 91.232.15.255 { 0x5be81000, 0x5be814ff, REGISTRY_RIPENCC }, // 91.232.16.0 - 91.232.20.255 { 0x5be81500, 0x5be815ff, REGISTRY_RIPENCC }, // 91.232.21.0 - 91.232.21.255 { 0x5be81600, 0x5be817ff, REGISTRY_RIPENCC }, // 91.232.22.0 - 91.232.23.255 { 0x5be81800, 0x5be82bff, REGISTRY_RIPENCC }, // 91.232.24.0 - 91.232.43.255 { 0x5be82c00, 0x5be82dff, REGISTRY_RIPENCC }, // 91.232.44.0 - 91.232.45.255 { 0x5be82e00, 0x5be836ff, REGISTRY_RIPENCC }, // 91.232.46.0 - 91.232.54.255 { 0x5be83700, 0x5be839ff, REGISTRY_RIPENCC }, // 91.232.55.0 - 91.232.57.255 { 0x5be83a00, 0x5be850ff, REGISTRY_RIPENCC }, // 91.232.58.0 - 91.232.80.255 { 0x5be85100, 0x5be851ff, REGISTRY_RIPENCC }, // 91.232.81.0 - 91.232.81.255 { 0x5be85200, 0x5be862ff, REGISTRY_RIPENCC }, // 91.232.82.0 - 91.232.98.255 { 0x5be86300, 0x5be865ff, REGISTRY_RIPENCC }, // 91.232.99.0 - 91.232.101.255 { 0x5be86600, 0x5be866ff, REGISTRY_RIPENCC }, // 91.232.102.0 - 91.232.102.255 { 0x5be86700, 0x5be867ff, REGISTRY_RIPENCC }, // 91.232.103.0 - 91.232.103.255 { 0x5be86800, 0x5be871ff, REGISTRY_RIPENCC }, // 91.232.104.0 - 91.232.113.255 { 0x5be87200, 0x5be873ff, REGISTRY_RIPENCC }, // 91.232.114.0 - 91.232.115.255 { 0x5be87400, 0x5be87eff, REGISTRY_RIPENCC }, // 91.232.116.0 - 91.232.126.255 { 0x5be87f00, 0x5be87fff, REGISTRY_RIPENCC }, // 91.232.127.0 - 91.232.127.255 { 0x5be88000, 0x5be880ff, REGISTRY_RIPENCC }, // 91.232.128.0 - 91.232.128.255 { 0x5be88100, 0x5be881ff, REGISTRY_RIPENCC }, // 91.232.129.0 - 91.232.129.255 { 0x5be88200, 0x5be895ff, REGISTRY_RIPENCC }, // 91.232.130.0 - 91.232.149.255 { 0x5be89600, 0x5be897ff, REGISTRY_RIPENCC }, // 91.232.150.0 - 91.232.151.255 { 0x5be89800, 0x5be8b4ff, REGISTRY_RIPENCC }, // 91.232.152.0 - 91.232.180.255 { 0x5be8b500, 0x5be8b6ff, REGISTRY_RIPENCC }, // 91.232.181.0 - 91.232.182.255 { 0x5be8b700, 0x5be8b7ff, REGISTRY_RIPENCC }, // 91.232.183.0 - 91.232.183.255 { 0x5be8b800, 0x5be8b9ff, REGISTRY_RIPENCC }, // 91.232.184.0 - 91.232.185.255 { 0x5be8ba00, 0x5be8c5ff, REGISTRY_RIPENCC }, // 91.232.186.0 - 91.232.197.255 { 0x5be8c600, 0x5be8c6ff, REGISTRY_RIPENCC }, // 91.232.198.0 - 91.232.198.255 { 0x5be8c700, 0x5be8cfff, REGISTRY_RIPENCC }, // 91.232.199.0 - 91.232.207.255 { 0x5be8d000, 0x5be8d0ff, REGISTRY_RIPENCC }, // 91.232.208.0 - 91.232.208.255 { 0x5be8d100, 0x5be8e1ff, REGISTRY_RIPENCC }, // 91.232.209.0 - 91.232.225.255 { 0x5be8e200, 0x5be8e3ff, REGISTRY_RIPENCC }, // 91.232.226.0 - 91.232.227.255 { 0x5be8e400, 0x5be8eaff, REGISTRY_RIPENCC }, // 91.232.228.0 - 91.232.234.255 { 0x5be8eb00, 0x5be8ebff, REGISTRY_RIPENCC }, // 91.232.235.0 - 91.232.235.255 { 0x5be8ec00, 0x5be8fdff, REGISTRY_RIPENCC }, // 91.232.236.0 - 91.232.253.255 { 0x5be8fe00, 0x5be903ff, REGISTRY_RIPENCC }, // 91.232.254.0 - 91.233.3.255 { 0x5be90400, 0x5be910ff, REGISTRY_RIPENCC }, // 91.233.4.0 - 91.233.16.255 { 0x5be91100, 0x5be911ff, REGISTRY_RIPENCC }, // 91.233.17.0 - 91.233.17.255 { 0x5be91200, 0x5be913ff, REGISTRY_RIPENCC }, // 91.233.18.0 - 91.233.19.255 { 0x5be91400, 0x5be914ff, REGISTRY_RIPENCC }, // 91.233.20.0 - 91.233.20.255 { 0x5be91500, 0x5be91bff, REGISTRY_RIPENCC }, // 91.233.21.0 - 91.233.27.255 { 0x5be91c00, 0x5be91fff, REGISTRY_RIPENCC }, // 91.233.28.0 - 91.233.31.255 { 0x5be92000, 0x5be925ff, REGISTRY_RIPENCC }, // 91.233.32.0 - 91.233.37.255 { 0x5be92600, 0x5be927ff, REGISTRY_RIPENCC }, // 91.233.38.0 - 91.233.39.255 { 0x5be92800, 0x5be935ff, REGISTRY_RIPENCC }, // 91.233.40.0 - 91.233.53.255 { 0x5be93600, 0x5be936ff, REGISTRY_RIPENCC }, // 91.233.54.0 - 91.233.54.255 { 0x5be93700, 0x5be93fff, REGISTRY_RIPENCC }, // 91.233.55.0 - 91.233.63.255 { 0x5be94100, 0x5be941ff, REGISTRY_RIPENCC }, // 91.233.65.0 - 91.233.65.255 { 0x5be94200, 0x5be943ff, REGISTRY_RIPENCC }, // 91.233.66.0 - 91.233.67.255 { 0x5be94400, 0x5be958ff, REGISTRY_RIPENCC }, // 91.233.68.0 - 91.233.88.255 { 0x5be95900, 0x5be959ff, REGISTRY_RIPENCC }, // 91.233.89.0 - 91.233.89.255 { 0x5be95a00, 0x5be973ff, REGISTRY_RIPENCC }, // 91.233.90.0 - 91.233.115.255 { 0x5be97400, 0x5be975ff, REGISTRY_RIPENCC }, // 91.233.116.0 - 91.233.117.255 { 0x5be97600, 0x5be977ff, REGISTRY_RIPENCC }, // 91.233.118.0 - 91.233.119.255 { 0x5be97800, 0x5be979ff, REGISTRY_RIPENCC }, // 91.233.120.0 - 91.233.121.255 { 0x5be97a00, 0x5be981ff, REGISTRY_RIPENCC }, // 91.233.122.0 - 91.233.129.255 { 0x5be98200, 0x5be983ff, REGISTRY_RIPENCC }, // 91.233.130.0 - 91.233.131.255 { 0x5be98400, 0x5be987ff, REGISTRY_RIPENCC }, // 91.233.132.0 - 91.233.135.255 { 0x5be98800, 0x5be98bff, REGISTRY_RIPENCC }, // 91.233.136.0 - 91.233.139.255 { 0x5be98c00, 0x5be98cff, REGISTRY_RIPENCC }, // 91.233.140.0 - 91.233.140.255 { 0x5be98d00, 0x5be98dff, REGISTRY_RIPENCC }, // 91.233.141.0 - 91.233.141.255 { 0x5be98e00, 0x5be995ff, REGISTRY_RIPENCC }, // 91.233.142.0 - 91.233.149.255 { 0x5be99600, 0x5be996ff, REGISTRY_RIPENCC }, // 91.233.150.0 - 91.233.150.255 { 0x5be99700, 0x5be9b6ff, REGISTRY_RIPENCC }, // 91.233.151.0 - 91.233.182.255 { 0x5be9b700, 0x5be9b7ff, REGISTRY_RIPENCC }, // 91.233.183.0 - 91.233.183.255 { 0x5be9b800, 0x5be9bdff, REGISTRY_RIPENCC }, // 91.233.184.0 - 91.233.189.255 { 0x5be9be00, 0x5be9beff, REGISTRY_RIPENCC }, // 91.233.190.0 - 91.233.190.255 { 0x5be9bf00, 0x5be9bfff, REGISTRY_RIPENCC }, // 91.233.191.0 - 91.233.191.255 { 0x5be9c000, 0x5be9c5ff, REGISTRY_RIPENCC }, // 91.233.192.0 - 91.233.197.255 { 0x5be9c600, 0x5be9c6ff, REGISTRY_ARIN }, // 91.233.198.0 - 91.233.198.255 { 0x5be9c700, 0x5be9cbff, REGISTRY_RIPENCC }, // 91.233.199.0 - 91.233.203.255 { 0x5be9cc00, 0x5be9d5ff, REGISTRY_RIPENCC }, // 91.233.204.0 - 91.233.213.255 { 0x5be9d600, 0x5be9dbff, REGISTRY_RIPENCC }, // 91.233.214.0 - 91.233.219.255 { 0x5be9dc00, 0x5be9e2ff, REGISTRY_RIPENCC }, // 91.233.220.0 - 91.233.226.255 { 0x5be9e300, 0x5be9e3ff, REGISTRY_RIPENCC }, // 91.233.227.0 - 91.233.227.255 { 0x5be9e400, 0x5be9f8ff, REGISTRY_RIPENCC }, // 91.233.228.0 - 91.233.248.255 { 0x5be9f900, 0x5be9f9ff, REGISTRY_RIPENCC }, // 91.233.249.0 - 91.233.249.255 { 0x5be9fa00, 0x5be9fbff, REGISTRY_RIPENCC }, // 91.233.250.0 - 91.233.251.255 { 0x5be9fc00, 0x5be9ffff, REGISTRY_RIPENCC }, // 91.233.252.0 - 91.233.255.255 { 0x5bea0000, 0x5bea09ff, REGISTRY_RIPENCC }, // 91.234.0.0 - 91.234.9.255 { 0x5bea0a00, 0x5bea0aff, REGISTRY_RIPENCC }, // 91.234.10.0 - 91.234.10.255 { 0x5bea0b00, 0x5bea13ff, REGISTRY_RIPENCC }, // 91.234.11.0 - 91.234.19.255 { 0x5bea1400, 0x5bea14ff, REGISTRY_RIPENCC }, // 91.234.20.0 - 91.234.20.255 { 0x5bea1500, 0x5bea15ff, REGISTRY_RIPENCC }, // 91.234.21.0 - 91.234.21.255 { 0x5bea1600, 0x5bea16ff, REGISTRY_RIPENCC }, // 91.234.22.0 - 91.234.22.255 { 0x5bea1700, 0x5bea2dff, REGISTRY_RIPENCC }, // 91.234.23.0 - 91.234.45.255 { 0x5bea2e00, 0x5bea30ff, REGISTRY_RIPENCC }, // 91.234.46.0 - 91.234.48.255 { 0x5bea3100, 0x5bea33ff, REGISTRY_RIPENCC }, // 91.234.49.0 - 91.234.51.255 { 0x5bea3400, 0x5bea36ff, REGISTRY_RIPENCC }, // 91.234.52.0 - 91.234.54.255 { 0x5bea3700, 0x5bea61ff, REGISTRY_RIPENCC }, // 91.234.55.0 - 91.234.97.255 { 0x5bea6200, 0x5bea62ff, REGISTRY_RIPENCC }, // 91.234.98.0 - 91.234.98.255 { 0x5bea6300, 0x5bea77ff, REGISTRY_RIPENCC }, // 91.234.99.0 - 91.234.119.255 { 0x5bea7800, 0x5bea7bff, REGISTRY_RIPENCC }, // 91.234.120.0 - 91.234.123.255 { 0x5bea7c00, 0x5bea7fff, REGISTRY_RIPENCC }, // 91.234.124.0 - 91.234.127.255 { 0x5bea8000, 0x5bea83ff, REGISTRY_RIPENCC }, // 91.234.128.0 - 91.234.131.255 { 0x5bea8400, 0x5bea90ff, REGISTRY_RIPENCC }, // 91.234.132.0 - 91.234.144.255 { 0x5bea9100, 0x5bea91ff, REGISTRY_RIPENCC }, // 91.234.145.0 - 91.234.145.255 { 0x5bea9200, 0x5bea95ff, REGISTRY_RIPENCC }, // 91.234.146.0 - 91.234.149.255 { 0x5bea9600, 0x5bea97ff, REGISTRY_RIPENCC }, // 91.234.150.0 - 91.234.151.255 { 0x5bea9800, 0x5bea9bff, REGISTRY_RIPENCC }, // 91.234.152.0 - 91.234.155.255 { 0x5bea9c00, 0x5bea9fff, REGISTRY_RIPENCC }, // 91.234.156.0 - 91.234.159.255 { 0x5beaa000, 0x5beaa0ff, REGISTRY_RIPENCC }, // 91.234.160.0 - 91.234.160.255 { 0x5beaa100, 0x5beaa1ff, REGISTRY_RIPENCC }, // 91.234.161.0 - 91.234.161.255 { 0x5beaa200, 0x5beab7ff, REGISTRY_RIPENCC }, // 91.234.162.0 - 91.234.183.255 { 0x5beab800, 0x5beab9ff, REGISTRY_RIPENCC }, // 91.234.184.0 - 91.234.185.255 { 0x5beaba00, 0x5beabfff, REGISTRY_RIPENCC }, // 91.234.186.0 - 91.234.191.255 { 0x5beac000, 0x5beac0ff, REGISTRY_RIPENCC }, // 91.234.192.0 - 91.234.192.255 { 0x5beac100, 0x5beac9ff, REGISTRY_RIPENCC }, // 91.234.193.0 - 91.234.201.255 { 0x5beaca00, 0x5beacaff, REGISTRY_RIPENCC }, // 91.234.202.0 - 91.234.202.255 { 0x5beacb00, 0x5beacfff, REGISTRY_RIPENCC }, // 91.234.203.0 - 91.234.207.255 { 0x5bead000, 0x5bead1ff, REGISTRY_RIPENCC }, // 91.234.208.0 - 91.234.209.255 { 0x5bead200, 0x5beadbff, REGISTRY_RIPENCC }, // 91.234.210.0 - 91.234.219.255 { 0x5beadc00, 0x5beadfff, REGISTRY_RIPENCC }, // 91.234.220.0 - 91.234.223.255 { 0x5beae000, 0x5beae8ff, REGISTRY_RIPENCC }, // 91.234.224.0 - 91.234.232.255 { 0x5beae900, 0x5beaefff, REGISTRY_RIPENCC }, // 91.234.233.0 - 91.234.239.255 { 0x5beaf000, 0x5beafdff, REGISTRY_RIPENCC }, // 91.234.240.0 - 91.234.253.255 { 0x5beafe00, 0x5beaffff, REGISTRY_RIPENCC }, // 91.234.254.0 - 91.234.255.255 { 0x5beb0000, 0x5beb01ff, REGISTRY_RIPENCC }, // 91.235.0.0 - 91.235.1.255 { 0x5beb0200, 0x5beb03ff, REGISTRY_RIPENCC }, // 91.235.2.0 - 91.235.3.255 { 0x5beb0400, 0x5beb05ff, REGISTRY_ARIN }, // 91.235.4.0 - 91.235.5.255 { 0x5beb0600, 0x5beb4bff, REGISTRY_RIPENCC }, // 91.235.6.0 - 91.235.75.255 { 0x5beb4c00, 0x5beb4dff, REGISTRY_RIPENCC }, // 91.235.76.0 - 91.235.77.255 { 0x5beb4e00, 0x5beb6bff, REGISTRY_RIPENCC }, // 91.235.78.0 - 91.235.107.255 { 0x5beb6c00, 0x5beb6fff, REGISTRY_RIPENCC }, // 91.235.108.0 - 91.235.111.255 { 0x5beb7000, 0x5beb70ff, REGISTRY_RIPENCC }, // 91.235.112.0 - 91.235.112.255 { 0x5beb7100, 0x5beb71ff, REGISTRY_RIPENCC }, // 91.235.113.0 - 91.235.113.255 { 0x5beb7200, 0x5beb79ff, REGISTRY_RIPENCC }, // 91.235.114.0 - 91.235.121.255 { 0x5beb7a00, 0x5beb7bff, REGISTRY_RIPENCC }, // 91.235.122.0 - 91.235.123.255 { 0x5beb7c00, 0x5beb81ff, REGISTRY_RIPENCC }, // 91.235.124.0 - 91.235.129.255 { 0x5beb8200, 0x5beb83ff, REGISTRY_RIPENCC }, // 91.235.130.0 - 91.235.131.255 { 0x5beb8400, 0x5beb93ff, REGISTRY_RIPENCC }, // 91.235.132.0 - 91.235.147.255 { 0x5beb9400, 0x5beb94ff, REGISTRY_RIPENCC }, // 91.235.148.0 - 91.235.148.255 { 0x5beb9500, 0x5beba5ff, REGISTRY_RIPENCC }, // 91.235.149.0 - 91.235.165.255 { 0x5beba600, 0x5beba7ff, REGISTRY_RIPENCC }, // 91.235.166.0 - 91.235.167.255 { 0x5beba800, 0x5beba9ff, REGISTRY_RIPENCC }, // 91.235.168.0 - 91.235.169.255 { 0x5bebaa00, 0x5bebabff, REGISTRY_RIPENCC }, // 91.235.170.0 - 91.235.171.255 { 0x5bebac00, 0x5bebb5ff, REGISTRY_RIPENCC }, // 91.235.172.0 - 91.235.181.255 { 0x5bebb600, 0x5bebb6ff, REGISTRY_RIPENCC }, // 91.235.182.0 - 91.235.182.255 { 0x5bebb700, 0x5bebcbff, REGISTRY_RIPENCC }, // 91.235.183.0 - 91.235.203.255 { 0x5bebcc00, 0x5bebd3ff, REGISTRY_RIPENCC }, // 91.235.204.0 - 91.235.211.255 { 0x5bebd400, 0x5bebd6ff, REGISTRY_RIPENCC }, // 91.235.212.0 - 91.235.214.255 { 0x5bebd700, 0x5bebd7ff, REGISTRY_RIPENCC }, // 91.235.215.0 - 91.235.215.255 { 0x5bebd800, 0x5bebe9ff, REGISTRY_RIPENCC }, // 91.235.216.0 - 91.235.233.255 { 0x5bebea00, 0x5bebebff, REGISTRY_RIPENCC }, // 91.235.234.0 - 91.235.235.255 { 0x5bebec00, 0x5bebf0ff, REGISTRY_RIPENCC }, // 91.235.236.0 - 91.235.240.255 { 0x5bebf100, 0x5bebf1ff, REGISTRY_RIPENCC }, // 91.235.241.0 - 91.235.241.255 { 0x5bebf200, 0x5bec0bff, REGISTRY_RIPENCC }, // 91.235.242.0 - 91.236.11.255 { 0x5bec0c00, 0x5bec0cff, REGISTRY_RIPENCC }, // 91.236.12.0 - 91.236.12.255 { 0x5bec0d00, 0x5bec1cff, REGISTRY_RIPENCC }, // 91.236.13.0 - 91.236.28.255 { 0x5bec1e00, 0x5bec2dff, REGISTRY_RIPENCC }, // 91.236.30.0 - 91.236.45.255 { 0x5bec2e00, 0x5bec2fff, REGISTRY_RIPENCC }, // 91.236.46.0 - 91.236.47.255 { 0x5bec3000, 0x5bec33ff, REGISTRY_RIPENCC }, // 91.236.48.0 - 91.236.51.255 { 0x5bec3400, 0x5bec34ff, REGISTRY_RIPENCC }, // 91.236.52.0 - 91.236.52.255 { 0x5bec3500, 0x5bec35ff, REGISTRY_RIPENCC }, // 91.236.53.0 - 91.236.53.255 { 0x5bec3600, 0x5bec37ff, REGISTRY_RIPENCC }, // 91.236.54.0 - 91.236.55.255 { 0x5bec3800, 0x5bec3bff, REGISTRY_RIPENCC }, // 91.236.56.0 - 91.236.59.255 { 0x5bec3c00, 0x5bec43ff, REGISTRY_RIPENCC }, // 91.236.60.0 - 91.236.67.255 { 0x5bec4400, 0x5bec49ff, REGISTRY_RIPENCC }, // 91.236.68.0 - 91.236.73.255 { 0x5bec4a00, 0x5bec4dff, REGISTRY_RIPENCC }, // 91.236.74.0 - 91.236.77.255 { 0x5bec4e00, 0x5bec4eff, REGISTRY_RIPENCC }, // 91.236.78.0 - 91.236.78.255 { 0x5bec4f00, 0x5bec4fff, REGISTRY_RIPENCC }, // 91.236.79.0 - 91.236.79.255 { 0x5bec5000, 0x5bec57ff, REGISTRY_RIPENCC }, // 91.236.80.0 - 91.236.87.255 { 0x5bec5800, 0x5bec5bff, REGISTRY_RIPENCC }, // 91.236.88.0 - 91.236.91.255 { 0x5bec5c00, 0x5bec67ff, REGISTRY_RIPENCC }, // 91.236.92.0 - 91.236.103.255 { 0x5bec6800, 0x5bec68ff, REGISTRY_RIPENCC }, // 91.236.104.0 - 91.236.104.255 { 0x5bec6900, 0x5bec72ff, REGISTRY_RIPENCC }, // 91.236.105.0 - 91.236.114.255 { 0x5bec7300, 0x5bec73ff, REGISTRY_RIPENCC }, // 91.236.115.0 - 91.236.115.255 { 0x5bec7400, 0x5bec77ff, REGISTRY_RIPENCC }, // 91.236.116.0 - 91.236.119.255 { 0x5bec7800, 0x5bec79ff, REGISTRY_RIPENCC }, // 91.236.120.0 - 91.236.121.255 { 0x5bec7a00, 0x5bec99ff, REGISTRY_RIPENCC }, // 91.236.122.0 - 91.236.153.255 { 0x5bec9a00, 0x5bec9bff, REGISTRY_RIPENCC }, // 91.236.154.0 - 91.236.155.255 { 0x5bec9c00, 0x5beca7ff, REGISTRY_RIPENCC }, // 91.236.156.0 - 91.236.167.255 { 0x5beca800, 0x5beca9ff, REGISTRY_RIPENCC }, // 91.236.168.0 - 91.236.169.255 { 0x5becaa00, 0x5becc2ff, REGISTRY_RIPENCC }, // 91.236.170.0 - 91.236.194.255 { 0x5becc300, 0x5becc7ff, REGISTRY_RIPENCC }, // 91.236.195.0 - 91.236.199.255 { 0x5becc800, 0x5beccdff, REGISTRY_RIPENCC }, // 91.236.200.0 - 91.236.205.255 { 0x5becce00, 0x5becceff, REGISTRY_RIPENCC }, // 91.236.206.0 - 91.236.206.255 { 0x5beccf00, 0x5becd4ff, REGISTRY_RIPENCC }, // 91.236.207.0 - 91.236.212.255 { 0x5becd500, 0x5becd5ff, REGISTRY_RIPENCC }, // 91.236.213.0 - 91.236.213.255 { 0x5becd600, 0x5becdbff, REGISTRY_RIPENCC }, // 91.236.214.0 - 91.236.219.255 { 0x5becdc00, 0x5becdcff, REGISTRY_RIPENCC }, // 91.236.220.0 - 91.236.220.255 { 0x5becdd00, 0x5bece5ff, REGISTRY_RIPENCC }, // 91.236.221.0 - 91.236.229.255 { 0x5bece600, 0x5bece7ff, REGISTRY_RIPENCC }, // 91.236.230.0 - 91.236.231.255 { 0x5bece800, 0x5bececff, REGISTRY_RIPENCC }, // 91.236.232.0 - 91.236.236.255 { 0x5beced00, 0x5becedff, REGISTRY_RIPENCC }, // 91.236.237.0 - 91.236.237.255 { 0x5becee00, 0x5becefff, REGISTRY_RIPENCC }, // 91.236.238.0 - 91.236.239.255 { 0x5becf000, 0x5becf3ff, REGISTRY_RIPENCC }, // 91.236.240.0 - 91.236.243.255 { 0x5becf400, 0x5bed2aff, REGISTRY_RIPENCC }, // 91.236.244.0 - 91.237.42.255 { 0x5bed2b00, 0x5bed31ff, REGISTRY_RIPENCC }, // 91.237.43.0 - 91.237.49.255 { 0x5bed3200, 0x5bed34ff, REGISTRY_RIPENCC }, // 91.237.50.0 - 91.237.52.255 { 0x5bed3500, 0x5bed35ff, REGISTRY_RIPENCC }, // 91.237.53.0 - 91.237.53.255 { 0x5bed3600, 0x5bed56ff, REGISTRY_RIPENCC }, // 91.237.54.0 - 91.237.86.255 { 0x5bed5700, 0x5bed57ff, REGISTRY_RIPENCC }, // 91.237.87.0 - 91.237.87.255 { 0x5bed5800, 0x5bed5aff, REGISTRY_RIPENCC }, // 91.237.88.0 - 91.237.90.255 { 0x5bed5b00, 0x5bed5dff, REGISTRY_RIPENCC }, // 91.237.91.0 - 91.237.93.255 { 0x5bed5e00, 0x5bed61ff, REGISTRY_RIPENCC }, // 91.237.94.0 - 91.237.97.255 { 0x5bed6200, 0x5bed63ff, REGISTRY_RIPENCC }, // 91.237.98.0 - 91.237.99.255 { 0x5bed6400, 0x5bed67ff, REGISTRY_RIPENCC }, // 91.237.100.0 - 91.237.103.255 { 0x5bed6800, 0x5bed69ff, REGISTRY_RIPENCC }, // 91.237.104.0 - 91.237.105.255 { 0x5bed6a00, 0x5bed76ff, REGISTRY_RIPENCC }, // 91.237.106.0 - 91.237.118.255 { 0x5bed7700, 0x5bed77ff, REGISTRY_RIPENCC }, // 91.237.119.0 - 91.237.119.255 { 0x5bed7800, 0x5bed80ff, REGISTRY_RIPENCC }, // 91.237.120.0 - 91.237.128.255 { 0x5bed8100, 0x5bed81ff, REGISTRY_RIPENCC }, // 91.237.129.0 - 91.237.129.255 { 0x5bed8200, 0x5bed95ff, REGISTRY_RIPENCC }, // 91.237.130.0 - 91.237.149.255 { 0x5bed9600, 0x5bed96ff, REGISTRY_RIPENCC }, // 91.237.150.0 - 91.237.150.255 { 0x5bed9700, 0x5bed98ff, REGISTRY_RIPENCC }, // 91.237.151.0 - 91.237.152.255 { 0x5bed9900, 0x5bed99ff, REGISTRY_RIPENCC }, // 91.237.153.0 - 91.237.153.255 { 0x5bed9a00, 0x5bedb0ff, REGISTRY_RIPENCC }, // 91.237.154.0 - 91.237.176.255 { 0x5bedb100, 0x5bedb1ff, REGISTRY_RIPENCC }, // 91.237.177.0 - 91.237.177.255 { 0x5bedb200, 0x5bedc0ff, REGISTRY_RIPENCC }, // 91.237.178.0 - 91.237.192.255 { 0x5bedc100, 0x5bedc3ff, REGISTRY_RIPENCC }, // 91.237.193.0 - 91.237.195.255 { 0x5bedc400, 0x5bedc5ff, REGISTRY_RIPENCC }, // 91.237.196.0 - 91.237.197.255 { 0x5bedc600, 0x5bedc6ff, REGISTRY_RIPENCC }, // 91.237.198.0 - 91.237.198.255 { 0x5bedc700, 0x5bedcfff, REGISTRY_RIPENCC }, // 91.237.199.0 - 91.237.207.255 { 0x5bedd000, 0x5bedd0ff, REGISTRY_RIPENCC }, // 91.237.208.0 - 91.237.208.255 { 0x5bedd100, 0x5bedd6ff, REGISTRY_RIPENCC }, // 91.237.209.0 - 91.237.214.255 { 0x5bedd700, 0x5bedd9ff, REGISTRY_RIPENCC }, // 91.237.215.0 - 91.237.217.255 { 0x5bedda00, 0x5bee00ff, REGISTRY_RIPENCC }, // 91.237.218.0 - 91.238.0.255 { 0x5bee0100, 0x5bee01ff, REGISTRY_RIPENCC }, // 91.238.1.0 - 91.238.1.255 { 0x5bee0200, 0x5bee03ff, REGISTRY_RIPENCC }, // 91.238.2.0 - 91.238.3.255 { 0x5bee0400, 0x5bee04ff, REGISTRY_RIPENCC }, // 91.238.4.0 - 91.238.4.255 { 0x5bee0500, 0x5bee07ff, REGISTRY_RIPENCC }, // 91.238.5.0 - 91.238.7.255 { 0x5bee0800, 0x5bee08ff, REGISTRY_RIPENCC }, // 91.238.8.0 - 91.238.8.255 { 0x5bee0900, 0x5bee11ff, REGISTRY_RIPENCC }, // 91.238.9.0 - 91.238.17.255 { 0x5bee1200, 0x5bee12ff, REGISTRY_RIPENCC }, // 91.238.18.0 - 91.238.18.255 { 0x5bee1300, 0x5bee20ff, REGISTRY_RIPENCC }, // 91.238.19.0 - 91.238.32.255 { 0x5bee2100, 0x5bee21ff, REGISTRY_RIPENCC }, // 91.238.33.0 - 91.238.33.255 { 0x5bee2200, 0x5bee25ff, REGISTRY_RIPENCC }, // 91.238.34.0 - 91.238.37.255 { 0x5bee2600, 0x5bee2bff, REGISTRY_RIPENCC }, // 91.238.38.0 - 91.238.43.255 { 0x5bee2c00, 0x5bee3dff, REGISTRY_RIPENCC }, // 91.238.44.0 - 91.238.61.255 { 0x5bee3e00, 0x5bee3fff, REGISTRY_RIPENCC }, // 91.238.62.0 - 91.238.63.255 { 0x5bee4000, 0x5bee45ff, REGISTRY_RIPENCC }, // 91.238.64.0 - 91.238.69.255 { 0x5bee4600, 0x5bee47ff, REGISTRY_RIPENCC }, // 91.238.70.0 - 91.238.71.255 { 0x5bee4800, 0x5bee51ff, REGISTRY_RIPENCC }, // 91.238.72.0 - 91.238.81.255 { 0x5bee5200, 0x5bee54ff, REGISTRY_RIPENCC }, // 91.238.82.0 - 91.238.84.255 { 0x5bee5500, 0x5bee5bff, REGISTRY_RIPENCC }, // 91.238.85.0 - 91.238.91.255 { 0x5bee5c00, 0x5bee5dff, REGISTRY_RIPENCC }, // 91.238.92.0 - 91.238.93.255 { 0x5bee5e00, 0x5bee6fff, REGISTRY_RIPENCC }, // 91.238.94.0 - 91.238.111.255 { 0x5bee7000, 0x5bee70ff, REGISTRY_RIPENCC }, // 91.238.112.0 - 91.238.112.255 { 0x5bee7100, 0x5bee71ff, REGISTRY_RIPENCC }, // 91.238.113.0 - 91.238.113.255 { 0x5bee7200, 0x5bee72ff, REGISTRY_RIPENCC }, // 91.238.114.0 - 91.238.114.255 { 0x5bee7300, 0x5bee7aff, REGISTRY_RIPENCC }, // 91.238.115.0 - 91.238.122.255 { 0x5bee7b00, 0x5bee7bff, REGISTRY_RIPENCC }, // 91.238.123.0 - 91.238.123.255 { 0x5bee7c00, 0x5beeb3ff, REGISTRY_RIPENCC }, // 91.238.124.0 - 91.238.179.255 { 0x5beeb400, 0x5beeb5ff, REGISTRY_RIPENCC }, // 91.238.180.0 - 91.238.181.255 { 0x5beeb600, 0x5beecaff, REGISTRY_RIPENCC }, // 91.238.182.0 - 91.238.202.255 { 0x5beecb00, 0x5beecbff, REGISTRY_RIPENCC }, // 91.238.203.0 - 91.238.203.255 { 0x5beecc00, 0x5beeceff, REGISTRY_RIPENCC }, // 91.238.204.0 - 91.238.206.255 { 0x5beecf00, 0x5beecfff, REGISTRY_RIPENCC }, // 91.238.207.0 - 91.238.207.255 { 0x5beed000, 0x5beed4ff, REGISTRY_RIPENCC }, // 91.238.208.0 - 91.238.212.255 { 0x5beed500, 0x5beed7ff, REGISTRY_RIPENCC }, // 91.238.213.0 - 91.238.215.255 { 0x5beed800, 0x5beed8ff, REGISTRY_RIPENCC }, // 91.238.216.0 - 91.238.216.255 { 0x5beed900, 0x5beed9ff, REGISTRY_RIPENCC }, // 91.238.217.0 - 91.238.217.255 { 0x5beeda00, 0x5beedaff, REGISTRY_RIPENCC }, // 91.238.218.0 - 91.238.218.255 { 0x5beedb00, 0x5beedbff, REGISTRY_RIPENCC }, // 91.238.219.0 - 91.238.219.255 { 0x5beedc00, 0x5beedcff, REGISTRY_RIPENCC }, // 91.238.220.0 - 91.238.220.255 { 0x5beedd00, 0x5beeddff, REGISTRY_RIPENCC }, // 91.238.221.0 - 91.238.221.255 { 0x5beede00, 0x5beeecff, REGISTRY_RIPENCC }, // 91.238.222.0 - 91.238.236.255 { 0x5beeed00, 0x5beeefff, REGISTRY_RIPENCC }, // 91.238.237.0 - 91.238.239.255 { 0x5beef000, 0x5beeffff, REGISTRY_RIPENCC }, // 91.238.240.0 - 91.238.255.255 { 0x5bef0000, 0x5bef03ff, REGISTRY_RIPENCC }, // 91.239.0.0 - 91.239.3.255 { 0x5bef0400, 0x5bef0eff, REGISTRY_RIPENCC }, // 91.239.4.0 - 91.239.14.255 { 0x5bef0f00, 0x5bef0fff, REGISTRY_RIPENCC }, // 91.239.15.0 - 91.239.15.255 { 0x5bef1000, 0x5bef16ff, REGISTRY_RIPENCC }, // 91.239.16.0 - 91.239.22.255 { 0x5bef1700, 0x5bef18ff, REGISTRY_RIPENCC }, // 91.239.23.0 - 91.239.24.255 { 0x5bef1900, 0x5bef19ff, REGISTRY_RIPENCC }, // 91.239.25.0 - 91.239.25.255 { 0x5bef1a00, 0x5bef1bff, REGISTRY_RIPENCC }, // 91.239.26.0 - 91.239.27.255 { 0x5bef1c00, 0x5bef24ff, REGISTRY_RIPENCC }, // 91.239.28.0 - 91.239.36.255 { 0x5bef2500, 0x5bef27ff, REGISTRY_RIPENCC }, // 91.239.37.0 - 91.239.39.255 { 0x5bef2800, 0x5bef35ff, REGISTRY_RIPENCC }, // 91.239.40.0 - 91.239.53.255 { 0x5bef3600, 0x5bef3bff, REGISTRY_RIPENCC }, // 91.239.54.0 - 91.239.59.255 { 0x5bef3c00, 0x5bef3dff, REGISTRY_RIPENCC }, // 91.239.60.0 - 91.239.61.255 { 0x5bef3e00, 0x5bef3eff, REGISTRY_RIPENCC }, // 91.239.62.0 - 91.239.62.255 { 0x5bef3f00, 0x5bef3fff, REGISTRY_RIPENCC }, // 91.239.63.0 - 91.239.63.255 { 0x5bef4000, 0x5bef41ff, REGISTRY_RIPENCC }, // 91.239.64.0 - 91.239.65.255 { 0x5bef4200, 0x5bef55ff, REGISTRY_RIPENCC }, // 91.239.66.0 - 91.239.85.255 { 0x5bef5600, 0x5bef56ff, REGISTRY_RIPENCC }, // 91.239.86.0 - 91.239.86.255 { 0x5bef5700, 0x5bef73ff, REGISTRY_RIPENCC }, // 91.239.87.0 - 91.239.115.255 { 0x5bef7400, 0x5bef78ff, REGISTRY_RIPENCC }, // 91.239.116.0 - 91.239.120.255 { 0x5bef7900, 0x5bef81ff, REGISTRY_RIPENCC }, // 91.239.121.0 - 91.239.129.255 { 0x5bef8200, 0x5bef82ff, REGISTRY_RIPENCC }, // 91.239.130.0 - 91.239.130.255 { 0x5bef8300, 0x5bef90ff, REGISTRY_RIPENCC }, // 91.239.131.0 - 91.239.144.255 { 0x5bef9100, 0x5bef91ff, REGISTRY_RIPENCC }, // 91.239.145.0 - 91.239.145.255 { 0x5bef9200, 0x5bef93ff, REGISTRY_RIPENCC }, // 91.239.146.0 - 91.239.147.255 { 0x5bef9400, 0x5bef95ff, REGISTRY_RIPENCC }, // 91.239.148.0 - 91.239.149.255 { 0x5bef9600, 0x5bef9cff, REGISTRY_RIPENCC }, // 91.239.150.0 - 91.239.156.255 { 0x5bef9d00, 0x5bef9dff, REGISTRY_RIPENCC }, // 91.239.157.0 - 91.239.157.255 { 0x5bef9e00, 0x5befa3ff, REGISTRY_RIPENCC }, // 91.239.158.0 - 91.239.163.255 { 0x5befa400, 0x5befa7ff, REGISTRY_RIPENCC }, // 91.239.164.0 - 91.239.167.255 { 0x5befa800, 0x5befb1ff, REGISTRY_RIPENCC }, // 91.239.168.0 - 91.239.177.255 { 0x5befb200, 0x5befb3ff, REGISTRY_RIPENCC }, // 91.239.178.0 - 91.239.179.255 { 0x5befb400, 0x5befcfff, REGISTRY_RIPENCC }, // 91.239.180.0 - 91.239.207.255 { 0x5befd000, 0x5befd5ff, REGISTRY_RIPENCC }, // 91.239.208.0 - 91.239.213.255 { 0x5befd600, 0x5befd9ff, REGISTRY_RIPENCC }, // 91.239.214.0 - 91.239.217.255 { 0x5befda00, 0x5befe3ff, REGISTRY_RIPENCC }, // 91.239.218.0 - 91.239.227.255 { 0x5befe400, 0x5befedff, REGISTRY_RIPENCC }, // 91.239.228.0 - 91.239.237.255 { 0x5befee00, 0x5befeeff, REGISTRY_RIPENCC }, // 91.239.238.0 - 91.239.238.255 { 0x5befef00, 0x5befefff, REGISTRY_RIPENCC }, // 91.239.239.0 - 91.239.239.255 { 0x5beff000, 0x5beff0ff, REGISTRY_RIPENCC }, // 91.239.240.0 - 91.239.240.255 { 0x5beff100, 0x5bf007ff, REGISTRY_RIPENCC }, // 91.239.241.0 - 91.240.7.255 { 0x5bf00800, 0x5bf00bff, REGISTRY_RIPENCC }, // 91.240.8.0 - 91.240.11.255 { 0x5bf00c00, 0x5bf013ff, REGISTRY_RIPENCC }, // 91.240.12.0 - 91.240.19.255 { 0x5bf01400, 0x5bf017ff, REGISTRY_RIPENCC }, // 91.240.20.0 - 91.240.23.255 { 0x5bf01800, 0x5bf020ff, REGISTRY_RIPENCC }, // 91.240.24.0 - 91.240.32.255 { 0x5bf02100, 0x5bf021ff, REGISTRY_RIPENCC }, // 91.240.33.0 - 91.240.33.255 { 0x5bf02200, 0x5bf02dff, REGISTRY_RIPENCC }, // 91.240.34.0 - 91.240.45.255 { 0x5bf02e00, 0x5bf02fff, REGISTRY_RIPENCC }, // 91.240.46.0 - 91.240.47.255 { 0x5bf03000, 0x5bf03fff, REGISTRY_RIPENCC }, // 91.240.48.0 - 91.240.63.255 { 0x5bf04000, 0x5bf043ff, REGISTRY_RIPENCC }, // 91.240.64.0 - 91.240.67.255 { 0x5bf04400, 0x5bf046ff, REGISTRY_RIPENCC }, // 91.240.68.0 - 91.240.70.255 { 0x5bf04700, 0x5bf047ff, REGISTRY_RIPENCC }, // 91.240.71.0 - 91.240.71.255 { 0x5bf04800, 0x5bf053ff, REGISTRY_RIPENCC }, // 91.240.72.0 - 91.240.83.255 { 0x5bf05400, 0x5bf057ff, REGISTRY_RIPENCC }, // 91.240.84.0 - 91.240.87.255 { 0x5bf05800, 0x5bf058ff, REGISTRY_RIPENCC }, // 91.240.88.0 - 91.240.88.255 { 0x5bf05900, 0x5bf059ff, REGISTRY_RIPENCC }, // 91.240.89.0 - 91.240.89.255 { 0x5bf05a00, 0x5bf05bff, REGISTRY_RIPENCC }, // 91.240.90.0 - 91.240.91.255 { 0x5bf05c00, 0x5bf05cff, REGISTRY_RIPENCC }, // 91.240.92.0 - 91.240.92.255 { 0x5bf05d00, 0x5bf069ff, REGISTRY_RIPENCC }, // 91.240.93.0 - 91.240.105.255 { 0x5bf06a00, 0x5bf06bff, REGISTRY_RIPENCC }, // 91.240.106.0 - 91.240.107.255 { 0x5bf06c00, 0x5bf073ff, REGISTRY_RIPENCC }, // 91.240.108.0 - 91.240.115.255 { 0x5bf07400, 0x5bf077ff, REGISTRY_RIPENCC }, // 91.240.116.0 - 91.240.119.255 { 0x5bf07800, 0x5bf07fff, REGISTRY_RIPENCC }, // 91.240.120.0 - 91.240.127.255 { 0x5bf08000, 0x5bf080ff, REGISTRY_RIPENCC }, // 91.240.128.0 - 91.240.128.255 { 0x5bf08100, 0x5bf099ff, REGISTRY_RIPENCC }, // 91.240.129.0 - 91.240.153.255 { 0x5bf09a00, 0x5bf09aff, REGISTRY_RIPENCC }, // 91.240.154.0 - 91.240.154.255 { 0x5bf09b00, 0x5bf09bff, REGISTRY_RIPENCC }, // 91.240.155.0 - 91.240.155.255 { 0x5bf09c00, 0x5bf09fff, REGISTRY_RIPENCC }, // 91.240.156.0 - 91.240.159.255 { 0x5bf0a000, 0x5bf0a2ff, REGISTRY_RIPENCC }, // 91.240.160.0 - 91.240.162.255 { 0x5bf0a300, 0x5bf0a3ff, REGISTRY_RIPENCC }, // 91.240.163.0 - 91.240.163.255 { 0x5bf0a400, 0x5bf0a4ff, REGISTRY_RIPENCC }, // 91.240.164.0 - 91.240.164.255 { 0x5bf0a500, 0x5bf0a5ff, REGISTRY_RIPENCC }, // 91.240.165.0 - 91.240.165.255 { 0x5bf0a600, 0x5bf0aeff, REGISTRY_RIPENCC }, // 91.240.166.0 - 91.240.174.255 { 0x5bf0af00, 0x5bf0afff, REGISTRY_RIPENCC }, // 91.240.175.0 - 91.240.175.255 { 0x5bf0b000, 0x5bf0b1ff, REGISTRY_RIPENCC }, // 91.240.176.0 - 91.240.177.255 { 0x5bf0b200, 0x5bf0b2ff, REGISTRY_RIPENCC }, // 91.240.178.0 - 91.240.178.255 { 0x5bf0b300, 0x5bf0bdff, REGISTRY_RIPENCC }, // 91.240.179.0 - 91.240.189.255 { 0x5bf0be00, 0x5bf0bfff, REGISTRY_RIPENCC }, // 91.240.190.0 - 91.240.191.255 { 0x5bf0c000, 0x5bf0c9ff, REGISTRY_RIPENCC }, // 91.240.192.0 - 91.240.201.255 { 0x5bf0ca00, 0x5bf0caff, REGISTRY_RIPENCC }, // 91.240.202.0 - 91.240.202.255 { 0x5bf0cb00, 0x5bf0d5ff, REGISTRY_RIPENCC }, // 91.240.203.0 - 91.240.213.255 { 0x5bf0d600, 0x5bf0d7ff, REGISTRY_RIPENCC }, // 91.240.214.0 - 91.240.215.255 { 0x5bf0d800, 0x5bf0e3ff, REGISTRY_RIPENCC }, // 91.240.216.0 - 91.240.227.255 { 0x5bf0e400, 0x5bf0e4ff, REGISTRY_RIPENCC }, // 91.240.228.0 - 91.240.228.255 { 0x5bf0e500, 0x5bf0e5ff, REGISTRY_RIPENCC }, // 91.240.229.0 - 91.240.229.255 { 0x5bf0e600, 0x5bf0e9ff, REGISTRY_RIPENCC }, // 91.240.230.0 - 91.240.233.255 { 0x5bf0ea00, 0x5bf0f4ff, REGISTRY_RIPENCC }, // 91.240.234.0 - 91.240.244.255 { 0x5bf0f500, 0x5bf0f5ff, REGISTRY_RIPENCC }, // 91.240.245.0 - 91.240.245.255 { 0x5bf0f600, 0x5bf0fdff, REGISTRY_RIPENCC }, // 91.240.246.0 - 91.240.253.255 { 0x5bf0fe00, 0x5bf0feff, REGISTRY_RIPENCC }, // 91.240.254.0 - 91.240.254.255 { 0x5bf0ff00, 0x5bf10dff, REGISTRY_RIPENCC }, // 91.240.255.0 - 91.241.13.255 { 0x5bf10e00, 0x5bf10fff, REGISTRY_RIPENCC }, // 91.241.14.0 - 91.241.15.255 { 0x5bf11000, 0x5bf12fff, REGISTRY_RIPENCC }, // 91.241.16.0 - 91.241.47.255 { 0x5bf13000, 0x5bf134ff, REGISTRY_RIPENCC }, // 91.241.48.0 - 91.241.52.255 { 0x5bf13500, 0x5bf135ff, REGISTRY_RIPENCC }, // 91.241.53.0 - 91.241.53.255 { 0x5bf13600, 0x5bf137ff, REGISTRY_RIPENCC }, // 91.241.54.0 - 91.241.55.255 { 0x5bf13800, 0x5bf155ff, REGISTRY_RIPENCC }, // 91.241.56.0 - 91.241.85.255 { 0x5bf15600, 0x5bf157ff, REGISTRY_RIPENCC }, // 91.241.86.0 - 91.241.87.255 { 0x5bf15800, 0x5bf15cff, REGISTRY_RIPENCC }, // 91.241.88.0 - 91.241.92.255 { 0x5bf15d00, 0x5bf15dff, REGISTRY_RIPENCC }, // 91.241.93.0 - 91.241.93.255 { 0x5bf15e00, 0x5bf1a7ff, REGISTRY_RIPENCC }, // 91.241.94.0 - 91.241.167.255 { 0x5bf1a800, 0x5bf1afff, REGISTRY_RIPENCC }, // 91.241.168.0 - 91.241.175.255 { 0x5bf1b000, 0x5bf22dff, REGISTRY_RIPENCC }, // 91.241.176.0 - 91.242.45.255 { 0x5bf22e00, 0x5bf233ff, REGISTRY_RIPENCC }, // 91.242.46.0 - 91.242.51.255 { 0x5bf23400, 0x5bf23fff, REGISTRY_RIPENCC }, // 91.242.52.0 - 91.242.63.255 { 0x5bf24000, 0x5bf287ff, REGISTRY_RIPENCC }, // 91.242.64.0 - 91.242.135.255 { 0x5bf28800, 0x5bf2afff, REGISTRY_RIPENCC }, // 91.242.136.0 - 91.242.175.255 { 0x5bf2b000, 0x5bf2bfff, REGISTRY_RIPENCC }, // 91.242.176.0 - 91.242.191.255 { 0x5bf2c000, 0x5bf2d5ff, REGISTRY_RIPENCC }, // 91.242.192.0 - 91.242.213.255 { 0x5bf2d600, 0x5bf2d7ff, REGISTRY_ARIN }, // 91.242.214.0 - 91.242.215.255 { 0x5bf2d800, 0x5bf2d8ff, REGISTRY_RIPENCC }, // 91.242.216.0 - 91.242.216.255 { 0x5bf2d900, 0x5bf2d9ff, REGISTRY_RIPENCC }, // 91.242.217.0 - 91.242.217.255 { 0x5bf2da00, 0x5bf2daff, REGISTRY_RIPENCC }, // 91.242.218.0 - 91.242.218.255 { 0x5bf2db00, 0x5bf2dbff, REGISTRY_RIPENCC }, // 91.242.219.0 - 91.242.219.255 { 0x5bf2dc00, 0x5bf2dfff, REGISTRY_RIPENCC }, // 91.242.220.0 - 91.242.223.255 { 0x5bf2e000, 0x5bf2ffff, REGISTRY_RIPENCC }, // 91.242.224.0 - 91.242.255.255 { 0x5bf30000, 0x5bf31fff, REGISTRY_RIPENCC }, // 91.243.0.0 - 91.243.31.255 { 0x5bf32000, 0x5bf33fff, REGISTRY_RIPENCC }, // 91.243.32.0 - 91.243.63.255 { 0x5bf34000, 0x5bf346ff, REGISTRY_RIPENCC }, // 91.243.64.0 - 91.243.70.255 { 0x5bf34700, 0x5bf347ff, REGISTRY_RIPENCC }, // 91.243.71.0 - 91.243.71.255 { 0x5bf34800, 0x5bf34fff, REGISTRY_RIPENCC }, // 91.243.72.0 - 91.243.79.255 { 0x5bf35000, 0x5bf35fff, REGISTRY_RIPENCC }, // 91.243.80.0 - 91.243.95.255 { 0x5bf36000, 0x5bf371ff, REGISTRY_RIPENCC }, // 91.243.96.0 - 91.243.113.255 { 0x5bf37300, 0x5bf377ff, REGISTRY_RIPENCC }, // 91.243.115.0 - 91.243.119.255 { 0x5bf37800, 0x5bf3afff, REGISTRY_RIPENCC }, // 91.243.120.0 - 91.243.175.255 { 0x5bf3b000, 0x5bf3bfff, REGISTRY_RIPENCC }, // 91.243.176.0 - 91.243.191.255 { 0x5bf3c000, 0x5bf443ff, REGISTRY_RIPENCC }, // 91.243.192.0 - 91.244.67.255 { 0x5bf44400, 0x5bf444ff, REGISTRY_RIPENCC }, // 91.244.68.0 - 91.244.68.255 { 0x5bf44500, 0x5bf45fff, REGISTRY_RIPENCC }, // 91.244.69.0 - 91.244.95.255 { 0x5bf46000, 0x5bf46fff, REGISTRY_RIPENCC }, // 91.244.96.0 - 91.244.111.255 { 0x5bf47000, 0x5bf477ff, REGISTRY_RIPENCC }, // 91.244.112.0 - 91.244.119.255 { 0x5bf47800, 0x5bf47bff, REGISTRY_RIPENCC }, // 91.244.120.0 - 91.244.123.255 { 0x5bf47c00, 0x5bf47dff, REGISTRY_RIPENCC }, // 91.244.124.0 - 91.244.125.255 { 0x5bf47e00, 0x5bf47eff, REGISTRY_RIPENCC }, // 91.244.126.0 - 91.244.126.255 { 0x5bf47f00, 0x5bf4b5ff, REGISTRY_RIPENCC }, // 91.244.127.0 - 91.244.181.255 { 0x5bf4b600, 0x5bf4b6ff, REGISTRY_RIPENCC }, // 91.244.182.0 - 91.244.182.255 { 0x5bf4b700, 0x5bf4bfff, REGISTRY_RIPENCC }, // 91.244.183.0 - 91.244.191.255 { 0x5bf4c000, 0x5bf4cfff, REGISTRY_RIPENCC }, // 91.244.192.0 - 91.244.207.255 { 0x5bf4d000, 0x5bf4dfff, REGISTRY_RIPENCC }, // 91.244.208.0 - 91.244.223.255 { 0x5bf4e000, 0x5bf4e0ff, REGISTRY_RIPENCC }, // 91.244.224.0 - 91.244.224.255 { 0x5bf4e100, 0x5bf4e3ff, REGISTRY_RIPENCC }, // 91.244.225.0 - 91.244.227.255 { 0x5bf4e400, 0x5bf4e4ff, REGISTRY_RIPENCC }, // 91.244.228.0 - 91.244.228.255 { 0x5bf4e500, 0x5bf4f5ff, REGISTRY_RIPENCC }, // 91.244.229.0 - 91.244.245.255 { 0x5bf4f600, 0x5bf4f7ff, REGISTRY_RIPENCC }, // 91.244.246.0 - 91.244.247.255 { 0x5bf4f800, 0x5bf50fff, REGISTRY_RIPENCC }, // 91.244.248.0 - 91.245.15.255 { 0x5bf51000, 0x5bf517ff, REGISTRY_RIPENCC }, // 91.245.16.0 - 91.245.23.255 { 0x5bf51800, 0x5bf557ff, REGISTRY_RIPENCC }, // 91.245.24.0 - 91.245.87.255 { 0x5bf55800, 0x5bf55fff, REGISTRY_RIPENCC }, // 91.245.88.0 - 91.245.95.255 { 0x5bf56000, 0x5bf5afff, REGISTRY_RIPENCC }, // 91.245.96.0 - 91.245.175.255 { 0x5bf5b000, 0x5bf5bfff, REGISTRY_RIPENCC }, // 91.245.176.0 - 91.245.191.255 { 0x5bf5c000, 0x5bf5c3ff, REGISTRY_RIPENCC }, // 91.245.192.0 - 91.245.195.255 { 0x5bf5c400, 0x5bf5c7ff, REGISTRY_RIPENCC }, // 91.245.196.0 - 91.245.199.255 { 0x5bf5c800, 0x5bf5dbff, REGISTRY_RIPENCC }, // 91.245.200.0 - 91.245.219.255 { 0x5bf5dc00, 0x5bf5dcff, REGISTRY_RIPENCC }, // 91.245.220.0 - 91.245.220.255 { 0x5bf5de00, 0x5bf5dfff, REGISTRY_RIPENCC }, // 91.245.222.0 - 91.245.223.255 { 0x5bf5e000, 0x5bf5ffff, REGISTRY_RIPENCC }, // 91.245.224.0 - 91.245.255.255 { 0x5bf60000, 0x5bf60cff, REGISTRY_RIPENCC }, // 91.246.0.0 - 91.246.12.255 { 0x5bf60d00, 0x5bf60dff, REGISTRY_RIPENCC }, // 91.246.13.0 - 91.246.13.255 { 0x5bf60e00, 0x5bf61dff, REGISTRY_RIPENCC }, // 91.246.14.0 - 91.246.29.255 { 0x5bf61e00, 0x5bf64bff, REGISTRY_RIPENCC }, // 91.246.30.0 - 91.246.75.255 { 0x5bf64c00, 0x5bf66fff, REGISTRY_RIPENCC }, // 91.246.76.0 - 91.246.111.255 { 0x5bf67000, 0x5bf67fff, REGISTRY_RIPENCC }, // 91.246.112.0 - 91.246.127.255 { 0x5bf68000, 0x5bf69fff, REGISTRY_RIPENCC }, // 91.246.128.0 - 91.246.159.255 { 0x5bf6a000, 0x5bf6a7ff, REGISTRY_RIPENCC }, // 91.246.160.0 - 91.246.167.255 { 0x5bf6a800, 0x5bf6abff, REGISTRY_RIPENCC }, // 91.246.168.0 - 91.246.171.255 { 0x5bf6ac00, 0x5bf6c9ff, REGISTRY_RIPENCC }, // 91.246.172.0 - 91.246.201.255 { 0x5bf6ca00, 0x5bf6caff, REGISTRY_RIPENCC }, // 91.246.202.0 - 91.246.202.255 { 0x5bf6cb00, 0x5bf6cfff, REGISTRY_RIPENCC }, // 91.246.203.0 - 91.246.207.255 { 0x5bf6d000, 0x5bf6d7ff, REGISTRY_RIPENCC }, // 91.246.208.0 - 91.246.215.255 { 0x5bf6d800, 0x5bf6d9ff, REGISTRY_RIPENCC }, // 91.246.216.0 - 91.246.217.255 { 0x5bf6da00, 0x5bf6dfff, REGISTRY_RIPENCC }, // 91.246.218.0 - 91.246.223.255 { 0x5bf6e000, 0x5bf6ffff, REGISTRY_RIPENCC }, // 91.246.224.0 - 91.246.255.255 { 0x5bf70000, 0x5bf74bff, REGISTRY_RIPENCC }, // 91.247.0.0 - 91.247.75.255 { 0x5bf74c00, 0x5bf74fff, REGISTRY_RIPENCC }, // 91.247.76.0 - 91.247.79.255 { 0x5bf75000, 0x5bf791ff, REGISTRY_RIPENCC }, // 91.247.80.0 - 91.247.145.255 { 0x5bf79200, 0x5bf792ff, REGISTRY_RIPENCC }, // 91.247.146.0 - 91.247.146.255 { 0x5bf79300, 0x5bf79fff, REGISTRY_RIPENCC }, // 91.247.147.0 - 91.247.159.255 { 0x5bf7a000, 0x5bf7bfff, REGISTRY_RIPENCC }, // 91.247.160.0 - 91.247.191.255 { 0x5bf7c000, 0x5bf7ffff, REGISTRY_RIPENCC }, // 91.247.192.0 - 91.247.255.255 { 0x5bf80000, 0x5c26cfff, REGISTRY_RIPENCC }, // 91.248.0.0 - 92.38.207.255 { 0x5c26d000, 0x5c26d3ff, REGISTRY_ARIN }, // 92.38.208.0 - 92.38.211.255 { 0x5c26d400, 0x5cc9ffff, REGISTRY_RIPENCC }, // 92.38.212.0 - 92.201.255.255 { 0x5cca0000, 0x5ccbffff, REGISTRY_APNIC }, // 92.202.0.0 - 92.203.255.255 { 0x5ccc0000, 0x5cf93fff, REGISTRY_RIPENCC }, // 92.204.0.0 - 92.249.63.255 { 0x5cf94000, 0x5cf97fff, REGISTRY_RIPENCC }, // 92.249.64.0 - 92.249.127.255 { 0x5cf98000, 0x5d5fcfff, REGISTRY_RIPENCC }, // 92.249.128.0 - 93.95.207.255 { 0x5d5fd800, 0x5d7dffff, REGISTRY_RIPENCC }, // 93.95.216.0 - 93.125.255.255 { 0x5d7e0000, 0x5d7e7fff, REGISTRY_RIPENCC }, // 93.126.0.0 - 93.126.127.255 { 0x5d7e8000, 0x5d9cffff, REGISTRY_RIPENCC }, // 93.126.128.0 - 93.156.255.255 { 0x5d9d0000, 0x5d9d0bff, REGISTRY_RIPENCC }, // 93.157.0.0 - 93.157.11.255 { 0x5d9d0c00, 0x5d9d0fff, REGISTRY_RIPENCC }, // 93.157.12.0 - 93.157.15.255 { 0x5d9d1000, 0x5d9d67ff, REGISTRY_RIPENCC }, // 93.157.16.0 - 93.157.103.255 { 0x5d9d6800, 0x5d9d77ff, REGISTRY_RIPENCC }, // 93.157.104.0 - 93.157.119.255 { 0x5d9d7800, 0x5d9dafff, REGISTRY_RIPENCC }, // 93.157.120.0 - 93.157.175.255 { 0x5d9db000, 0x5d9dbfff, REGISTRY_RIPENCC }, // 93.157.176.0 - 93.157.191.255 { 0x5d9dc000, 0x5d9dcfff, REGISTRY_RIPENCC }, // 93.157.192.0 - 93.157.207.255 { 0x5d9dd000, 0x5d9dd7ff, REGISTRY_RIPENCC }, // 93.157.208.0 - 93.157.215.255 { 0x5d9dd800, 0x5d9df7ff, REGISTRY_RIPENCC }, // 93.157.216.0 - 93.157.247.255 { 0x5d9df800, 0x5daeffff, REGISTRY_RIPENCC }, // 93.157.248.0 - 93.174.255.255 { 0x5daf0000, 0x5daf1fff, REGISTRY_RIPENCC }, // 93.175.0.0 - 93.175.31.255 { 0x5daf2000, 0x5daf3fff, REGISTRY_RIPENCC }, // 93.175.32.0 - 93.175.63.255 { 0x5daf4000, 0x5dafefff, REGISTRY_RIPENCC }, // 93.175.64.0 - 93.175.239.255 { 0x5daff000, 0x5db35fff, REGISTRY_RIPENCC }, // 93.175.240.0 - 93.179.95.255 { 0x5db36000, 0x5db367ff, REGISTRY_ARIN }, // 93.179.96.0 - 93.179.103.255 { 0x5db36800, 0x5db36fff, REGISTRY_RIPENCC }, // 93.179.104.0 - 93.179.111.255 { 0x5db37000, 0x5db377ff, REGISTRY_ARIN }, // 93.179.112.0 - 93.179.119.255 { 0x5db37800, 0x5db37bff, REGISTRY_RIPENCC }, // 93.179.120.0 - 93.179.123.255 { 0x5db37c00, 0x5db37fff, REGISTRY_ARIN }, // 93.179.124.0 - 93.179.127.255 { 0x5db38000, 0x5dbba8ff, REGISTRY_RIPENCC }, // 93.179.128.0 - 93.187.168.255 { 0x5dbba900, 0x5dbba9ff, REGISTRY_ARIN }, // 93.187.169.0 - 93.187.169.255 { 0x5dbbaa00, 0x5e1a1aff, REGISTRY_RIPENCC }, // 93.187.170.0 - 94.26.26.255 { 0x5e1a1b00, 0x5e1a1bff, REGISTRY_ARIN }, // 94.26.27.0 - 94.26.27.255 { 0x5e1a1c00, 0x5e1a1eff, REGISTRY_RIPENCC }, // 94.26.28.0 - 94.26.30.255 { 0x5e1a1f00, 0x5e1a1fff, REGISTRY_ARIN }, // 94.26.31.0 - 94.26.31.255 { 0x5e1a2000, 0x5e1a2bff, REGISTRY_RIPENCC }, // 94.26.32.0 - 94.26.43.255 { 0x5e1a2c00, 0x5e1a2cff, REGISTRY_ARIN }, // 94.26.44.0 - 94.26.44.255 { 0x5e1a2d00, 0x5e1a2dff, REGISTRY_RIPENCC }, // 94.26.45.0 - 94.26.45.255 { 0x5e1a2e00, 0x5e1a2fff, REGISTRY_ARIN }, // 94.26.46.0 - 94.26.47.255 { 0x5e1a3000, 0x5e1a42ff, REGISTRY_RIPENCC }, // 94.26.48.0 - 94.26.66.255 { 0x5e1a4300, 0x5e1a43ff, REGISTRY_ARIN }, // 94.26.67.0 - 94.26.67.255 { 0x5e1a4400, 0x5e1a48ff, REGISTRY_RIPENCC }, // 94.26.68.0 - 94.26.72.255 { 0x5e1a4900, 0x5e1a49ff, REGISTRY_ARIN }, // 94.26.73.0 - 94.26.73.255 { 0x5e1a4a00, 0x5e1a53ff, REGISTRY_RIPENCC }, // 94.26.74.0 - 94.26.83.255 { 0x5e1a5400, 0x5e1a55ff, REGISTRY_ARIN }, // 94.26.84.0 - 94.26.85.255 { 0x5e1a5600, 0x5e23ffff, REGISTRY_RIPENCC }, // 94.26.86.0 - 94.35.255.255 { 0x5e240000, 0x5e27ffff, REGISTRY_ARIN }, // 94.36.0.0 - 94.39.255.255 { 0x5e280000, 0x5e2cffff, REGISTRY_RIPENCC }, // 94.40.0.0 - 94.44.255.255 { 0x5e2d0000, 0x5e2d7fff, REGISTRY_RIPENCC }, // 94.45.0.0 - 94.45.127.255 { 0x5e2d8000, 0x5e2d9fff, REGISTRY_RIPENCC }, // 94.45.128.0 - 94.45.159.255 { 0x5e2da000, 0x5e2dbfff, REGISTRY_APNIC }, // 94.45.160.0 - 94.45.191.255 { 0x5e2dc000, 0x5e2dffff, REGISTRY_RIPENCC }, // 94.45.192.0 - 94.45.255.255 { 0x5e2e0000, 0x5e489fff, REGISTRY_RIPENCC }, // 94.46.0.0 - 94.72.159.255 { 0x5e48a000, 0x5e48a7ff, REGISTRY_ARIN }, // 94.72.160.0 - 94.72.167.255 { 0x5e48a800, 0x5e48afff, REGISTRY_RIPENCC }, // 94.72.168.0 - 94.72.175.255 { 0x5e48b000, 0x5e48b7ff, REGISTRY_ARIN }, // 94.72.176.0 - 94.72.183.255 { 0x5e48b800, 0x5e4a3fff, REGISTRY_RIPENCC }, // 94.72.184.0 - 94.74.63.255 { 0x5e4a4000, 0x5e4a7fff, REGISTRY_APNIC }, // 94.74.64.0 - 94.74.127.255 { 0x5e4a8000, 0x5e655fff, REGISTRY_RIPENCC }, // 94.74.128.0 - 94.101.95.255 { 0x5e657000, 0x5e6703ff, REGISTRY_RIPENCC }, // 94.101.112.0 - 94.103.3.255 { 0x5e670400, 0x5e6707ff, REGISTRY_ARIN }, // 94.103.4.0 - 94.103.7.255 { 0x5e670800, 0x5e8c00ff, REGISTRY_RIPENCC }, // 94.103.8.0 - 94.140.0.255 { 0x5e8c0100, 0x5e8c03ff, REGISTRY_ARIN }, // 94.140.1.0 - 94.140.3.255 { 0x5e8c0400, 0x5e8c0fff, REGISTRY_RIPENCC }, // 94.140.4.0 - 94.140.15.255 { 0x5e8c1000, 0x5e8c10ff, REGISTRY_ARIN }, // 94.140.16.0 - 94.140.16.255 { 0x5e8c1100, 0x5e8c11ff, REGISTRY_RIPENCC }, // 94.140.17.0 - 94.140.17.255 { 0x5e8c1200, 0x5e8c13ff, REGISTRY_ARIN }, // 94.140.18.0 - 94.140.19.255 { 0x5e8c1400, 0x5e9a0fff, REGISTRY_RIPENCC }, // 94.140.20.0 - 94.154.15.255 { 0x5e9a1000, 0x5e9a6fff, REGISTRY_RIPENCC }, // 94.154.16.0 - 94.154.111.255 { 0x5e9a7000, 0x5e9abfff, REGISTRY_RIPENCC }, // 94.154.112.0 - 94.154.191.255 { 0x5e9ac000, 0x5e9affff, REGISTRY_RIPENCC }, // 94.154.192.0 - 94.154.255.255 { 0x5e9b0000, 0x5e9e2fff, REGISTRY_RIPENCC }, // 94.155.0.0 - 94.158.47.255 { 0x5e9e3000, 0x5e9eafff, REGISTRY_RIPENCC }, // 94.158.48.0 - 94.158.175.255 { 0x5e9eb000, 0x5e9ebfff, REGISTRY_RIPENCC }, // 94.158.176.0 - 94.158.191.255 { 0x5e9ec000, 0x5e9eefff, REGISTRY_RIPENCC }, // 94.158.192.0 - 94.158.239.255 { 0x5e9ef000, 0x5ebecfff, REGISTRY_RIPENCC }, // 94.158.240.0 - 94.190.207.255 { 0x5ebed000, 0x5ebeefff, REGISTRY_APNIC }, // 94.190.208.0 - 94.190.239.255 { 0x5ebef000, 0x5ebeffff, REGISTRY_RIPENCC }, // 94.190.240.0 - 94.190.255.255 { 0x5ebf0000, 0x5ebf7fff, REGISTRY_APNIC }, // 94.191.0.0 - 94.191.127.255 { 0x5ebf8000, 0x5ec6ffff, REGISTRY_RIPENCC }, // 94.191.128.0 - 94.198.255.255 { 0x5ec70800, 0x5ee6ffff, REGISTRY_RIPENCC }, // 94.199.8.0 - 94.230.255.255 { 0x5ee70000, 0x5ee76fff, REGISTRY_RIPENCC }, // 94.231.0.0 - 94.231.111.255 { 0x5ee77000, 0x5ee77fff, REGISTRY_RIPENCC }, // 94.231.112.0 - 94.231.127.255 { 0x5ee78000, 0x5ee7bfff, REGISTRY_RIPENCC }, // 94.231.128.0 - 94.231.191.255 { 0x5ee7c000, 0x5ee7efff, REGISTRY_RIPENCC }, // 94.231.192.0 - 94.231.239.255 { 0x5ee7f000, 0x5ee85fff, REGISTRY_RIPENCC }, // 94.231.240.0 - 94.232.95.255 { 0x5ee86000, 0x5ee867ff, REGISTRY_RIPENCC }, // 94.232.96.0 - 94.232.103.255 { 0x5ee86800, 0x5ee87fff, REGISTRY_RIPENCC }, // 94.232.104.0 - 94.232.127.255 { 0x5ee88000, 0x5ee887ff, REGISTRY_RIPENCC }, // 94.232.128.0 - 94.232.135.255 { 0x5ee88800, 0x5ee897ff, REGISTRY_RIPENCC }, // 94.232.136.0 - 94.232.151.255 { 0x5ee89800, 0x5ee89fff, REGISTRY_RIPENCC }, // 94.232.152.0 - 94.232.159.255 { 0x5ee8a000, 0x5ee8bfff, REGISTRY_RIPENCC }, // 94.232.160.0 - 94.232.191.255 { 0x5ee8c000, 0x5ee8c7ff, REGISTRY_RIPENCC }, // 94.232.192.0 - 94.232.199.255 { 0x5ee8c800, 0x5ee8efff, REGISTRY_RIPENCC }, // 94.232.200.0 - 94.232.239.255 { 0x5ee8f000, 0x5ef3ffff, REGISTRY_RIPENCC }, // 94.232.240.0 - 94.243.255.255 { 0x5ef40000, 0x5ef4ffff, REGISTRY_RIPENCC }, // 94.244.0.0 - 94.244.255.255 { 0x5ef50000, 0x5f576fff, REGISTRY_RIPENCC }, // 94.245.0.0 - 95.87.111.255 { 0x5f577000, 0x5f5777ff, REGISTRY_APNIC }, // 95.87.112.0 - 95.87.119.255 { 0x5f577800, 0x5f8f1fff, REGISTRY_RIPENCC }, // 95.87.120.0 - 95.143.31.255 { 0x5f8f2000, 0x5f8f2fff, REGISTRY_ARIN }, // 95.143.32.0 - 95.143.47.255 { 0x5f8f3000, 0x5fa393ff, REGISTRY_RIPENCC }, // 95.143.48.0 - 95.163.147.255 { 0x5fa39400, 0x5fa397ff, REGISTRY_ARIN }, // 95.163.148.0 - 95.163.151.255 { 0x5fa39800, 0x5fa3bfff, REGISTRY_RIPENCC }, // 95.163.152.0 - 95.163.191.255 { 0x5fa3c000, 0x5fa3cfff, REGISTRY_ARIN }, // 95.163.192.0 - 95.163.207.255 { 0x5fa3d000, 0x5fa8ffff, REGISTRY_RIPENCC }, // 95.163.208.0 - 95.168.255.255 { 0x5fa90000, 0x5fa91fff, REGISTRY_ARIN }, // 95.169.0.0 - 95.169.31.255 { 0x5fa92000, 0x5fb5bbff, REGISTRY_RIPENCC }, // 95.169.32.0 - 95.181.187.255 { 0x5fb5bc00, 0x5fb5bfff, REGISTRY_ARIN }, // 95.181.188.0 - 95.181.191.255 { 0x5fb5c000, 0x5fd703ff, REGISTRY_RIPENCC }, // 95.181.192.0 - 95.215.3.255 { 0x5fd70400, 0x5fd707ff, REGISTRY_RIPENCC }, // 95.215.4.0 - 95.215.7.255 { 0x5fd70800, 0x5fd70bff, REGISTRY_RIPENCC }, // 95.215.8.0 - 95.215.11.255 { 0x5fd70c00, 0x5fd71fff, REGISTRY_RIPENCC }, // 95.215.12.0 - 95.215.31.255 { 0x5fd72000, 0x5fd723ff, REGISTRY_RIPENCC }, // 95.215.32.0 - 95.215.35.255 { 0x5fd72400, 0x5fd72bff, REGISTRY_RIPENCC }, // 95.215.36.0 - 95.215.43.255 { 0x5fd72c00, 0x5fd72fff, REGISTRY_RIPENCC }, // 95.215.44.0 - 95.215.47.255 { 0x5fd73000, 0x5fd737ff, REGISTRY_RIPENCC }, // 95.215.48.0 - 95.215.55.255 { 0x5fd73800, 0x5fd743ff, REGISTRY_RIPENCC }, // 95.215.56.0 - 95.215.67.255 { 0x5fd74400, 0x5fd74fff, REGISTRY_RIPENCC }, // 95.215.68.0 - 95.215.79.255 { 0x5fd75000, 0x5fd753ff, REGISTRY_RIPENCC }, // 95.215.80.0 - 95.215.83.255 { 0x5fd75400, 0x5fd767ff, REGISTRY_RIPENCC }, // 95.215.84.0 - 95.215.103.255 { 0x5fd76800, 0x5fd76fff, REGISTRY_RIPENCC }, // 95.215.104.0 - 95.215.111.255 { 0x5fd77000, 0x5fd77bff, REGISTRY_RIPENCC }, // 95.215.112.0 - 95.215.123.255 { 0x5fd77c00, 0x5fd783ff, REGISTRY_RIPENCC }, // 95.215.124.0 - 95.215.131.255 { 0x5fd78400, 0x5fd78bff, REGISTRY_RIPENCC }, // 95.215.132.0 - 95.215.139.255 { 0x5fd78c00, 0x5fd78fff, REGISTRY_RIPENCC }, // 95.215.140.0 - 95.215.143.255 { 0x5fd79000, 0x5fd7abff, REGISTRY_RIPENCC }, // 95.215.144.0 - 95.215.171.255 { 0x5fd7ac00, 0x5fd7acff, REGISTRY_RIPENCC }, // 95.215.172.0 - 95.215.172.255 { 0x5fd7ad00, 0x5fd7c7ff, REGISTRY_RIPENCC }, // 95.215.173.0 - 95.215.199.255 { 0x5fd7c800, 0x5fd7cfff, REGISTRY_RIPENCC }, // 95.215.200.0 - 95.215.207.255 { 0x5fd7d000, 0x5fd7f7ff, REGISTRY_RIPENCC }, // 95.215.208.0 - 95.215.247.255 { 0x5fd7f800, 0x5fd7fbff, REGISTRY_RIPENCC }, // 95.215.248.0 - 95.215.251.255 { 0x5fd7fc00, 0x5fd7ffff, REGISTRY_RIPENCC }, // 95.215.252.0 - 95.215.255.255 { 0x5fd80000, 0x5fffffff, REGISTRY_RIPENCC }, // 95.216.0.0 - 95.255.255.255 { 0x60000000, 0x60093fff, REGISTRY_ARIN }, // 96.0.0.0 - 96.9.63.255 { 0x60094000, 0x60095fff, REGISTRY_APNIC }, // 96.9.64.0 - 96.9.95.255 { 0x60096000, 0x60097fff, REGISTRY_ARIN }, // 96.9.96.0 - 96.9.127.255 { 0x60098000, 0x60099fff, REGISTRY_RIPENCC }, // 96.9.128.0 - 96.9.159.255 { 0x6009a000, 0x6009bfff, REGISTRY_APNIC }, // 96.9.160.0 - 96.9.191.255 { 0x6009c000, 0x601e3fff, REGISTRY_ARIN }, // 96.9.192.0 - 96.30.63.255 { 0x601e4000, 0x601e7fff, REGISTRY_APNIC }, // 96.30.64.0 - 96.30.127.255 { 0x601e8000, 0x607d8fff, REGISTRY_ARIN }, // 96.30.128.0 - 96.125.143.255 { 0x607d9000, 0x607d9fff, REGISTRY_RIPENCC }, // 96.125.144.0 - 96.125.159.255 { 0x607da000, 0x62609fff, REGISTRY_ARIN }, // 96.125.160.0 - 98.96.159.255 { 0x6260a000, 0x6260afff, REGISTRY_RIPENCC }, // 98.96.160.0 - 98.96.175.255 { 0x6260b000, 0x6260b7ff, REGISTRY_ARIN }, // 98.96.176.0 - 98.96.183.255 { 0x6260b800, 0x6260bfff, REGISTRY_RIPENCC }, // 98.96.184.0 - 98.96.191.255 { 0x6260c000, 0x627fffff, REGISTRY_ARIN }, // 98.96.192.0 - 98.127.255.255 { 0x62800000, 0x6280ffff, REGISTRY_RIPENCC }, // 98.128.0.0 - 98.128.255.255 { 0x62810000, 0x629eedff, REGISTRY_ARIN }, // 98.129.0.0 - 98.158.237.255 { 0x629eee00, 0x629eeeff, REGISTRY_RIPENCC }, // 98.158.238.0 - 98.158.238.255 { 0x629eef00, 0x643fffff, REGISTRY_ARIN }, // 98.158.239.0 - 100.63.255.255 { 0x64800000, 0x64ffffff, REGISTRY_ARIN }, // 100.128.0.0 - 100.255.255.255 { 0x65000000, 0x65010fff, REGISTRY_APNIC }, // 101.0.0.0 - 101.1.15.255 { 0x65012000, 0x652cffff, REGISTRY_APNIC }, // 101.1.32.0 - 101.44.255.255 { 0x652d0000, 0x652dffff, REGISTRY_ARIN }, // 101.45.0.0 - 101.45.255.255 { 0x652e0000, 0x6537ffff, REGISTRY_APNIC }, // 101.46.0.0 - 101.55.255.255 { 0x65380000, 0x653fffff, REGISTRY_RIPENCC }, // 101.56.0.0 - 101.63.255.255 { 0x65400000, 0x65655fff, REGISTRY_APNIC }, // 101.64.0.0 - 101.101.95.255 { 0x65656400, 0x65cb53ff, REGISTRY_APNIC }, // 101.101.100.0 - 101.203.83.255 { 0x65cb5400, 0x65cb55ff, REGISTRY_ARIN }, // 101.203.84.0 - 101.203.85.255 { 0x65cb5600, 0x65ffffff, REGISTRY_APNIC }, // 101.203.86.0 - 101.255.255.255 { 0x66000000, 0x661653ff, REGISTRY_AFRINIC }, // 102.0.0.0 - 102.22.83.255 { 0x66165800, 0x66173fff, REGISTRY_AFRINIC }, // 102.22.88.0 - 102.23.63.255 { 0x66175000, 0x661763ff, REGISTRY_AFRINIC }, // 102.23.80.0 - 102.23.99.255 { 0x66177000, 0x66177bff, REGISTRY_AFRINIC }, // 102.23.112.0 - 102.23.123.255 { 0x66178000, 0x66247fff, REGISTRY_AFRINIC }, // 102.23.128.0 - 102.36.127.255 { 0x66248400, 0x6624bbff, REGISTRY_AFRINIC }, // 102.36.132.0 - 102.36.187.255 { 0x6624c000, 0x6624c1ff, REGISTRY_AFRINIC }, // 102.36.192.0 - 102.36.193.255 { 0x6624c400, 0x6624e7ff, REGISTRY_AFRINIC }, // 102.36.196.0 - 102.36.231.255 { 0x6624ec00, 0x6624f3ff, REGISTRY_AFRINIC }, // 102.36.236.0 - 102.36.243.255 { 0x6624f800, 0x66404fff, REGISTRY_AFRINIC }, // 102.36.248.0 - 102.64.79.255 { 0x66405800, 0x664416ff, REGISTRY_AFRINIC }, // 102.64.88.0 - 102.68.22.255 { 0x66441800, 0x664433ff, REGISTRY_AFRINIC }, // 102.68.24.0 - 102.68.51.255 { 0x66443800, 0x664457ff, REGISTRY_AFRINIC }, // 102.68.56.0 - 102.68.87.255 { 0x66446000, 0x66447eff, REGISTRY_AFRINIC }, // 102.68.96.0 - 102.68.126.255 { 0x66448000, 0x66448bff, REGISTRY_AFRINIC }, // 102.68.128.0 - 102.68.139.255 { 0x66448d00, 0x6644b7ff, REGISTRY_AFRINIC }, // 102.68.141.0 - 102.68.183.255 { 0x6644bc00, 0x66803fff, REGISTRY_AFRINIC }, // 102.68.188.0 - 102.128.63.255 { 0x66804c00, 0x6680bbff, REGISTRY_AFRINIC }, // 102.128.76.0 - 102.128.187.255 { 0x6680c000, 0x6680ffff, REGISTRY_AFRINIC }, // 102.128.192.0 - 102.128.255.255 { 0x66812000, 0x668207ff, REGISTRY_AFRINIC }, // 102.129.32.0 - 102.130.7.255 { 0x66820c00, 0x668237ff, REGISTRY_AFRINIC }, // 102.130.12.0 - 102.130.55.255 { 0x66823c00, 0x668261ff, REGISTRY_AFRINIC }, // 102.130.60.0 - 102.130.97.255 { 0x66826400, 0x6682ffff, REGISTRY_AFRINIC }, // 102.130.100.0 - 102.130.255.255 { 0x66831000, 0x668310ff, REGISTRY_AFRINIC }, // 102.131.16.0 - 102.131.16.255 { 0x66831200, 0x668317ff, REGISTRY_AFRINIC }, // 102.131.18.0 - 102.131.23.255 { 0x66831c00, 0x668453ff, REGISTRY_AFRINIC }, // 102.131.28.0 - 102.132.83.255 { 0x66846000, 0x66864bff, REGISTRY_AFRINIC }, // 102.132.96.0 - 102.134.75.255 { 0x66865000, 0x668c67ff, REGISTRY_AFRINIC }, // 102.134.80.0 - 102.140.103.255 { 0x668c7000, 0x668c77ff, REGISTRY_AFRINIC }, // 102.140.112.0 - 102.140.119.255 { 0x668c8000, 0x668dd7ff, REGISTRY_AFRINIC }, // 102.140.128.0 - 102.141.215.255 { 0x668de000, 0x668de3ff, REGISTRY_AFRINIC }, // 102.141.224.0 - 102.141.227.255 { 0x668de800, 0x66b14bff, REGISTRY_AFRINIC }, // 102.141.232.0 - 102.177.75.255 { 0x66b15000, 0x66b157ff, REGISTRY_AFRINIC }, // 102.177.80.0 - 102.177.87.255 { 0x66b16400, 0x66b1c7ff, REGISTRY_AFRINIC }, // 102.177.100.0 - 102.177.199.255 { 0x66b20000, 0x66b5dfff, REGISTRY_AFRINIC }, // 102.178.0.0 - 102.181.223.255 { 0x66b60000, 0x66b6ffff, REGISTRY_AFRINIC }, // 102.182.0.0 - 102.182.255.255 { 0x66b80000, 0x66bfffff, REGISTRY_AFRINIC }, // 102.184.0.0 - 102.191.255.255 { 0x66d40000, 0x66d40bff, REGISTRY_AFRINIC }, // 102.212.0.0 - 102.212.11.255 { 0x66d41000, 0x66d43bff, REGISTRY_AFRINIC }, // 102.212.16.0 - 102.212.59.255 { 0x66d44000, 0x66d450ff, REGISTRY_AFRINIC }, // 102.212.64.0 - 102.212.80.255 { 0x66d45200, 0x66d477ff, REGISTRY_AFRINIC }, // 102.212.82.0 - 102.212.119.255 { 0x66d48000, 0x66d4a1ff, REGISTRY_AFRINIC }, // 102.212.128.0 - 102.212.161.255 { 0x66d4a300, 0x66d4c7ff, REGISTRY_AFRINIC }, // 102.212.163.0 - 102.212.199.255 { 0x66d4d000, 0x66d50bff, REGISTRY_AFRINIC }, // 102.212.208.0 - 102.213.11.255 { 0x66d51000, 0x66d643ff, REGISTRY_AFRINIC }, // 102.213.16.0 - 102.214.67.255 { 0x66d64800, 0x66da5fff, REGISTRY_AFRINIC }, // 102.214.72.0 - 102.218.95.255 { 0x66da6200, 0x66daa7ff, REGISTRY_AFRINIC }, // 102.218.98.0 - 102.218.167.255 { 0x66daac00, 0x66daf7ff, REGISTRY_AFRINIC }, // 102.218.172.0 - 102.218.247.255 { 0x66dafc00, 0x66db7fff, REGISTRY_AFRINIC }, // 102.218.252.0 - 102.219.127.255 { 0x66db8400, 0x66dbf3ff, REGISTRY_AFRINIC }, // 102.219.132.0 - 102.219.243.255 { 0x66dbf800, 0x66dbffff, REGISTRY_AFRINIC }, // 102.219.248.0 - 102.219.255.255 { 0x66dc0400, 0x66dc87ff, REGISTRY_AFRINIC }, // 102.220.4.0 - 102.220.135.255 { 0x66dc8c00, 0x66dcf1ff, REGISTRY_AFRINIC }, // 102.220.140.0 - 102.220.241.255 { 0x66dcf400, 0x66dd67ff, REGISTRY_AFRINIC }, // 102.220.244.0 - 102.221.103.255 { 0x66dd6c00, 0x66dd8fff, REGISTRY_AFRINIC }, // 102.221.108.0 - 102.221.143.255 { 0x66dd9400, 0x66de17ff, REGISTRY_AFRINIC }, // 102.221.148.0 - 102.222.23.255 { 0x66de1900, 0x66de19ff, REGISTRY_AFRINIC }, // 102.222.25.0 - 102.222.25.255 { 0x66de1b00, 0x66de1fff, REGISTRY_AFRINIC }, // 102.222.27.0 - 102.222.31.255 { 0x66de2400, 0x66de33ff, REGISTRY_AFRINIC }, // 102.222.36.0 - 102.222.51.255 { 0x66de3800, 0x66de3bff, REGISTRY_AFRINIC }, // 102.222.56.0 - 102.222.59.255 { 0x66de3d00, 0x66dedfff, REGISTRY_AFRINIC }, // 102.222.61.0 - 102.222.223.255 { 0x66dee400, 0x66deedff, REGISTRY_AFRINIC }, // 102.222.228.0 - 102.222.237.255 { 0x66def000, 0x66defdff, REGISTRY_AFRINIC }, // 102.222.240.0 - 102.222.253.255 { 0x66deff00, 0x66df3bff, REGISTRY_AFRINIC }, // 102.222.255.0 - 102.223.59.255 { 0x66df3e00, 0x66df6bff, REGISTRY_AFRINIC }, // 102.223.62.0 - 102.223.107.255 { 0x66df6e00, 0x66df6fff, REGISTRY_AFRINIC }, // 102.223.110.0 - 102.223.111.255 { 0x66df7200, 0x66df97ff, REGISTRY_AFRINIC }, // 102.223.114.0 - 102.223.151.255 { 0x66df9a00, 0x66dfabff, REGISTRY_AFRINIC }, // 102.223.154.0 - 102.223.171.255 { 0x66dfad00, 0x66dff3ff, REGISTRY_AFRINIC }, // 102.223.173.0 - 102.223.243.255 { 0x66dff800, 0x66dfffff, REGISTRY_AFRINIC }, // 102.223.248.0 - 102.223.255.255 { 0x66f00000, 0x66ffffff, REGISTRY_AFRINIC }, // 102.240.0.0 - 102.255.255.255 { 0x67000000, 0x6703e7ff, REGISTRY_APNIC }, // 103.0.0.0 - 103.3.231.255 { 0x6703ec00, 0x6704bfff, REGISTRY_APNIC }, // 103.3.236.0 - 103.4.191.255 { 0x6704c000, 0x6704c3ff, REGISTRY_ARIN }, // 103.4.192.0 - 103.4.195.255 { 0x6704c400, 0x6704f7ff, REGISTRY_APNIC }, // 103.4.196.0 - 103.4.247.255 { 0x6704f800, 0x6704fbff, REGISTRY_ARIN }, // 103.4.248.0 - 103.4.251.255 { 0x6704fc00, 0x670677ff, REGISTRY_APNIC }, // 103.4.252.0 - 103.6.119.255 { 0x67068000, 0x67069fff, REGISTRY_APNIC }, // 103.6.128.0 - 103.6.159.255 { 0x6706a200, 0x67072bff, REGISTRY_APNIC }, // 103.6.162.0 - 103.7.43.255 { 0x67073000, 0x670767ff, REGISTRY_APNIC }, // 103.7.48.0 - 103.7.103.255 { 0x67076c00, 0x6707cbff, REGISTRY_APNIC }, // 103.7.108.0 - 103.7.203.255 { 0x6707cc00, 0x6707cfff, REGISTRY_RIPENCC }, // 103.7.204.0 - 103.7.207.255 { 0x6707d000, 0x6708eeff, REGISTRY_APNIC }, // 103.7.208.0 - 103.8.238.255 { 0x6708ef00, 0x6708efff, REGISTRY_ARIN }, // 103.8.239.0 - 103.8.239.255 { 0x6708f000, 0x670a09ff, REGISTRY_APNIC }, // 103.8.240.0 - 103.10.9.255 { 0x670a0b00, 0x670a38ff, REGISTRY_APNIC }, // 103.10.11.0 - 103.10.56.255 { 0x670a3a00, 0x670b3fff, REGISTRY_APNIC }, // 103.10.58.0 - 103.11.63.255 { 0x670b4000, 0x670b43ff, REGISTRY_ARIN }, // 103.11.64.0 - 103.11.67.255 { 0x670b4400, 0x670c37ff, REGISTRY_APNIC }, // 103.11.68.0 - 103.12.55.255 { 0x670c3a00, 0x670cd3ff, REGISTRY_APNIC }, // 103.12.58.0 - 103.12.211.255 { 0x670cd400, 0x670cd7ff, REGISTRY_ARIN }, // 103.12.212.0 - 103.12.215.255 { 0x670cd800, 0x670d47ff, REGISTRY_APNIC }, // 103.12.216.0 - 103.13.71.255 { 0x670d4a00, 0x670dcfff, REGISTRY_APNIC }, // 103.13.74.0 - 103.13.207.255 { 0x670dd000, 0x670dd3ff, REGISTRY_RIPENCC }, // 103.13.208.0 - 103.13.211.255 { 0x670dd400, 0x670e00ff, REGISTRY_APNIC }, // 103.13.212.0 - 103.14.0.255 { 0x670e0100, 0x670e01ff, REGISTRY_RIPENCC }, // 103.14.1.0 - 103.14.1.255 { 0x670e0200, 0x670e15ff, REGISTRY_APNIC }, // 103.14.2.0 - 103.14.21.255 { 0x670e1800, 0x670e19ff, REGISTRY_APNIC }, // 103.14.24.0 - 103.14.25.255 { 0x670e1a00, 0x670e1bff, REGISTRY_ARIN }, // 103.14.26.0 - 103.14.27.255 { 0x670e1c00, 0x670e5bff, REGISTRY_APNIC }, // 103.14.28.0 - 103.14.91.255 { 0x670e5e00, 0x670e67ff, REGISTRY_APNIC }, // 103.14.94.0 - 103.14.103.255 { 0x670e6800, 0x670e6bff, REGISTRY_RIPENCC }, // 103.14.104.0 - 103.14.107.255 { 0x670e6c00, 0x670e94ff, REGISTRY_APNIC }, // 103.14.108.0 - 103.14.148.255 { 0x670e9800, 0x670ec7ff, REGISTRY_APNIC }, // 103.14.152.0 - 103.14.199.255 { 0x670ecc00, 0x670ecfff, REGISTRY_APNIC }, // 103.14.204.0 - 103.14.207.255 { 0x670ed000, 0x670ed3ff, REGISTRY_RIPENCC }, // 103.14.208.0 - 103.14.211.255 { 0x670ed400, 0x670ee5ff, REGISTRY_APNIC }, // 103.14.212.0 - 103.14.229.255 { 0x670ee700, 0x670f2bff, REGISTRY_APNIC }, // 103.14.231.0 - 103.15.43.255 { 0x670f3000, 0x670f57ff, REGISTRY_APNIC }, // 103.15.48.0 - 103.15.87.255 { 0x670f6000, 0x670f9bff, REGISTRY_APNIC }, // 103.15.96.0 - 103.15.155.255 { 0x670f9e00, 0x670febff, REGISTRY_APNIC }, // 103.15.158.0 - 103.15.235.255 { 0x670fee00, 0x671003ff, REGISTRY_APNIC }, // 103.15.238.0 - 103.16.3.255 { 0x67100600, 0x6710ffff, REGISTRY_APNIC }, // 103.16.6.0 - 103.16.255.255 { 0x67110000, 0x671103ff, REGISTRY_RIPENCC }, // 103.17.0.0 - 103.17.3.255 { 0x67110400, 0x671112ff, REGISTRY_APNIC }, // 103.17.4.0 - 103.17.18.255 { 0x67111400, 0x6711c0ff, REGISTRY_APNIC }, // 103.17.20.0 - 103.17.192.255 { 0x6711c200, 0x671353ff, REGISTRY_APNIC }, // 103.17.194.0 - 103.19.83.255 { 0x67135400, 0x671357ff, REGISTRY_ARIN }, // 103.19.84.0 - 103.19.87.255 { 0x67135800, 0x6713c7ff, REGISTRY_APNIC }, // 103.19.88.0 - 103.19.199.255 { 0x6713c800, 0x6713cbff, REGISTRY_RIPENCC }, // 103.19.200.0 - 103.19.203.255 { 0x6713cc00, 0x67145fff, REGISTRY_APNIC }, // 103.19.204.0 - 103.20.95.255 { 0x67146800, 0x671533ff, REGISTRY_APNIC }, // 103.20.104.0 - 103.21.51.255 { 0x67153400, 0x671534ff, REGISTRY_ARIN }, // 103.21.52.0 - 103.21.52.255 { 0x67153500, 0x67155fff, REGISTRY_APNIC }, // 103.21.53.0 - 103.21.95.255 { 0x67156800, 0x6715ebff, REGISTRY_APNIC }, // 103.21.104.0 - 103.21.235.255 { 0x6715ec00, 0x6715efff, REGISTRY_RIPENCC }, // 103.21.236.0 - 103.21.239.255 { 0x6715f000, 0x6716bfff, REGISTRY_APNIC }, // 103.21.240.0 - 103.22.191.255 { 0x6716c000, 0x6716c3ff, REGISTRY_RIPENCC }, // 103.22.192.0 - 103.22.195.255 { 0x6716c400, 0x6716cfff, REGISTRY_APNIC }, // 103.22.196.0 - 103.22.207.255 { 0x6716d100, 0x67173bff, REGISTRY_APNIC }, // 103.22.209.0 - 103.23.59.255 { 0x67173c00, 0x67173fff, REGISTRY_RIPENCC }, // 103.23.60.0 - 103.23.63.255 { 0x67174000, 0x671757ff, REGISTRY_APNIC }, // 103.23.64.0 - 103.23.87.255 { 0x67176000, 0x67177bff, REGISTRY_APNIC }, // 103.23.96.0 - 103.23.123.255 { 0x67177c00, 0x67177fff, REGISTRY_RIPENCC }, // 103.23.124.0 - 103.23.127.255 { 0x67178000, 0x671793ff, REGISTRY_APNIC }, // 103.23.128.0 - 103.23.147.255 { 0x67179600, 0x6717abff, REGISTRY_APNIC }, // 103.23.150.0 - 103.23.171.255 { 0x6717ae00, 0x6717f6ff, REGISTRY_APNIC }, // 103.23.174.0 - 103.23.246.255 { 0x6717f800, 0x67184dff, REGISTRY_APNIC }, // 103.23.248.0 - 103.24.77.255 { 0x67185000, 0x6718bfff, REGISTRY_APNIC }, // 103.24.80.0 - 103.24.191.255 { 0x6718c200, 0x6718e7ff, REGISTRY_APNIC }, // 103.24.194.0 - 103.24.231.255 { 0x6718e800, 0x6718ebff, REGISTRY_ARIN }, // 103.24.232.0 - 103.24.235.255 { 0x6718ec00, 0x6718efff, REGISTRY_RIPENCC }, // 103.24.236.0 - 103.24.239.255 { 0x6718f000, 0x671909ff, REGISTRY_APNIC }, // 103.24.240.0 - 103.25.9.255 { 0x67190c00, 0x67198fff, REGISTRY_APNIC }, // 103.25.12.0 - 103.25.143.255 { 0x67199000, 0x671993ff, REGISTRY_ARIN }, // 103.25.144.0 - 103.25.147.255 { 0x67199400, 0x6719e5ff, REGISTRY_APNIC }, // 103.25.148.0 - 103.25.229.255 { 0x6719e600, 0x6719e6ff, REGISTRY_ARIN }, // 103.25.230.0 - 103.25.230.255 { 0x6719e700, 0x671a17ff, REGISTRY_APNIC }, // 103.25.231.0 - 103.26.23.255 { 0x671a2000, 0x671a7bff, REGISTRY_APNIC }, // 103.26.32.0 - 103.26.123.255 { 0x671a7c00, 0x671a7fff, REGISTRY_RIPENCC }, // 103.26.124.0 - 103.26.127.255 { 0x671a8000, 0x671a8bff, REGISTRY_APNIC }, // 103.26.128.0 - 103.26.139.255 { 0x671a8c00, 0x671a8fff, REGISTRY_ARIN }, // 103.26.140.0 - 103.26.143.255 { 0x671a9000, 0x671ac7ff, REGISTRY_APNIC }, // 103.26.144.0 - 103.26.199.255 { 0x671ac800, 0x671ac8ff, REGISTRY_RIPENCC }, // 103.26.200.0 - 103.26.200.255 { 0x671ac900, 0x671b8fff, REGISTRY_APNIC }, // 103.26.201.0 - 103.27.143.255 { 0x671b9000, 0x671b93ff, REGISTRY_RIPENCC }, // 103.27.144.0 - 103.27.147.255 { 0x671b9400, 0x671c43ff, REGISTRY_APNIC }, // 103.27.148.0 - 103.28.67.255 { 0x671c4400, 0x671c47ff, REGISTRY_ARIN }, // 103.28.68.0 - 103.28.71.255 { 0x671c4800, 0x671d29ff, REGISTRY_APNIC }, // 103.28.72.0 - 103.29.41.255 { 0x671d2b00, 0x671e0bff, REGISTRY_APNIC }, // 103.29.43.0 - 103.30.11.255 { 0x671e0c00, 0x671e0fff, REGISTRY_RIPENCC }, // 103.30.12.0 - 103.30.15.255 { 0x671e1000, 0x671ed1ff, REGISTRY_APNIC }, // 103.30.16.0 - 103.30.209.255 { 0x671ed200, 0x671ed3ff, REGISTRY_RIPENCC }, // 103.30.210.0 - 103.30.211.255 { 0x671ed400, 0x672337ff, REGISTRY_APNIC }, // 103.30.212.0 - 103.35.55.255 { 0x67233800, 0x67233bff, REGISTRY_RIPENCC }, // 103.35.56.0 - 103.35.59.255 { 0x67233c00, 0x67239fff, REGISTRY_APNIC }, // 103.35.60.0 - 103.35.159.255 { 0x6723a000, 0x6723a3ff, REGISTRY_RIPENCC }, // 103.35.160.0 - 103.35.163.255 { 0x6723a400, 0x6723c7ff, REGISTRY_APNIC }, // 103.35.164.0 - 103.35.199.255 { 0x6723cc00, 0x672457ff, REGISTRY_APNIC }, // 103.35.204.0 - 103.36.87.255 { 0x67245c00, 0x672495ff, REGISTRY_APNIC }, // 103.36.92.0 - 103.36.149.255 { 0x67249800, 0x672553ff, REGISTRY_APNIC }, // 103.36.152.0 - 103.37.83.255 { 0x67255400, 0x672557ff, REGISTRY_RIPENCC }, // 103.37.84.0 - 103.37.87.255 { 0x67255800, 0x6725b3ff, REGISTRY_APNIC }, // 103.37.88.0 - 103.37.179.255 { 0x6725b400, 0x6725b7ff, REGISTRY_RIPENCC }, // 103.37.180.0 - 103.37.183.255 { 0x6725b800, 0x6725c9ff, REGISTRY_APNIC }, // 103.37.184.0 - 103.37.201.255 { 0x6725cc00, 0x672667ff, REGISTRY_APNIC }, // 103.37.204.0 - 103.38.103.255 { 0x67267000, 0x672690ff, REGISTRY_APNIC }, // 103.38.112.0 - 103.38.144.255 { 0x67269200, 0x672693ff, REGISTRY_APNIC }, // 103.38.146.0 - 103.38.147.255 { 0x67269600, 0x6726d7ff, REGISTRY_APNIC }, // 103.38.150.0 - 103.38.215.255 { 0x6726e000, 0x672727ff, REGISTRY_APNIC }, // 103.38.224.0 - 103.39.39.255 { 0x67272800, 0x672729ff, REGISTRY_RIPENCC }, // 103.39.40.0 - 103.39.41.255 { 0x67272a00, 0x672777ff, REGISTRY_APNIC }, // 103.39.42.0 - 103.39.119.255 { 0x67277a00, 0x672833ff, REGISTRY_APNIC }, // 103.39.122.0 - 103.40.51.255 { 0x67283600, 0x6728a5ff, REGISTRY_APNIC }, // 103.40.54.0 - 103.40.165.255 { 0x6728a800, 0x6728e0ff, REGISTRY_APNIC }, // 103.40.168.0 - 103.40.224.255 { 0x6728e200, 0x672907ff, REGISTRY_APNIC }, // 103.40.226.0 - 103.41.7.255 { 0x67290a00, 0x67292bff, REGISTRY_APNIC }, // 103.41.10.0 - 103.41.43.255 { 0x67292c00, 0x67292fff, REGISTRY_RIPENCC }, // 103.41.44.0 - 103.41.47.255 { 0x67293000, 0x672947ff, REGISTRY_APNIC }, // 103.41.48.0 - 103.41.71.255 { 0x67295000, 0x672a31ff, REGISTRY_APNIC }, // 103.41.80.0 - 103.42.49.255 { 0x672a3400, 0x672aefff, REGISTRY_APNIC }, // 103.42.52.0 - 103.42.239.255 { 0x672af800, 0x672b0bff, REGISTRY_APNIC }, // 103.42.248.0 - 103.43.11.255 { 0x672b1000, 0x672b37ff, REGISTRY_APNIC }, // 103.43.16.0 - 103.43.55.255 { 0x672b4000, 0x672b5dff, REGISTRY_APNIC }, // 103.43.64.0 - 103.43.93.255 { 0x672b6000, 0x672be7ff, REGISTRY_APNIC }, // 103.43.96.0 - 103.43.231.255 { 0x672be800, 0x672bebff, REGISTRY_RIPENCC }, // 103.43.232.0 - 103.43.235.255 { 0x672bec00, 0x672c13ff, REGISTRY_APNIC }, // 103.43.236.0 - 103.44.19.255 { 0x672c1800, 0x672c47ff, REGISTRY_APNIC }, // 103.44.24.0 - 103.44.71.255 { 0x672c4800, 0x672c4bff, REGISTRY_ARIN }, // 103.44.72.0 - 103.44.75.255 { 0x672c4c00, 0x672df3ff, REGISTRY_APNIC }, // 103.44.76.0 - 103.45.243.255 { 0x672df400, 0x672df7ff, REGISTRY_RIPENCC }, // 103.45.244.0 - 103.45.247.255 { 0x672df800, 0x672f33ff, REGISTRY_APNIC }, // 103.45.248.0 - 103.47.51.255 { 0x672f3400, 0x672f3bff, REGISTRY_RIPENCC }, // 103.47.52.0 - 103.47.59.255 { 0x672f3c00, 0x672f3dff, REGISTRY_APNIC }, // 103.47.60.0 - 103.47.61.255 { 0x672f3e00, 0x672f3fff, REGISTRY_ARIN }, // 103.47.62.0 - 103.47.63.255 { 0x672f4000, 0x672f9bff, REGISTRY_APNIC }, // 103.47.64.0 - 103.47.155.255 { 0x672f9c00, 0x672f9fff, REGISTRY_RIPENCC }, // 103.47.156.0 - 103.47.159.255 { 0x672fa000, 0x672fbbff, REGISTRY_APNIC }, // 103.47.160.0 - 103.47.187.255 { 0x672fc000, 0x673019ff, REGISTRY_APNIC }, // 103.47.192.0 - 103.48.25.255 { 0x67301b00, 0x67301bff, REGISTRY_APNIC }, // 103.48.27.0 - 103.48.27.255 { 0x67301e00, 0x67301fff, REGISTRY_APNIC }, // 103.48.30.0 - 103.48.31.255 { 0x67302000, 0x673023ff, REGISTRY_ARIN }, // 103.48.32.0 - 103.48.35.255 { 0x67302400, 0x673145ff, REGISTRY_APNIC }, // 103.48.36.0 - 103.49.69.255 { 0x67314800, 0x673153ff, REGISTRY_APNIC }, // 103.49.72.0 - 103.49.83.255 { 0x67315400, 0x673157ff, REGISTRY_RIPENCC }, // 103.49.84.0 - 103.49.87.255 { 0x67315800, 0x673179ff, REGISTRY_APNIC }, // 103.49.88.0 - 103.49.121.255 { 0x67317e00, 0x673197ff, REGISTRY_APNIC }, // 103.49.126.0 - 103.49.151.255 { 0x67319800, 0x67319bff, REGISTRY_ARIN }, // 103.49.152.0 - 103.49.155.255 { 0x67319c00, 0x6731cfff, REGISTRY_APNIC }, // 103.49.156.0 - 103.49.207.255 { 0x6731d000, 0x6731d3ff, REGISTRY_RIPENCC }, // 103.49.208.0 - 103.49.211.255 { 0x6731d400, 0x67321fff, REGISTRY_APNIC }, // 103.49.212.0 - 103.50.31.255 { 0x67322000, 0x673221ff, REGISTRY_ARIN }, // 103.50.32.0 - 103.50.33.255 { 0x67322200, 0x67325bff, REGISTRY_APNIC }, // 103.50.34.0 - 103.50.91.255 { 0x67325c00, 0x67325fff, REGISTRY_ARIN }, // 103.50.92.0 - 103.50.95.255 { 0x67326000, 0x67333dff, REGISTRY_APNIC }, // 103.50.96.0 - 103.51.61.255 { 0x67334000, 0x67334bff, REGISTRY_APNIC }, // 103.51.64.0 - 103.51.75.255 { 0x67334c00, 0x67334fff, REGISTRY_RIPENCC }, // 103.51.76.0 - 103.51.79.255 { 0x67335000, 0x673365ff, REGISTRY_APNIC }, // 103.51.80.0 - 103.51.101.255 { 0x67336700, 0x67337fff, REGISTRY_APNIC }, // 103.51.103.0 - 103.51.127.255 { 0x67338200, 0x6733e3ff, REGISTRY_APNIC }, // 103.51.130.0 - 103.51.227.255 { 0x6733e400, 0x6733e7ff, REGISTRY_RIPENCC }, // 103.51.228.0 - 103.51.231.255 { 0x6733e800, 0x673403ff, REGISTRY_APNIC }, // 103.51.232.0 - 103.52.3.255 { 0x67340600, 0x6734d3ff, REGISTRY_APNIC }, // 103.52.6.0 - 103.52.211.255 { 0x6734d500, 0x673503ff, REGISTRY_APNIC }, // 103.52.213.0 - 103.53.3.255 { 0x67350400, 0x673507ff, REGISTRY_RIPENCC }, // 103.53.4.0 - 103.53.7.255 { 0x67350800, 0x673551ff, REGISTRY_APNIC }, // 103.53.8.0 - 103.53.81.255 { 0x67355200, 0x673553ff, REGISTRY_RIPENCC }, // 103.53.82.0 - 103.53.83.255 { 0x67355400, 0x6735d7ff, REGISTRY_APNIC }, // 103.53.84.0 - 103.53.215.255 { 0x6735d800, 0x6735dbff, REGISTRY_RIPENCC }, // 103.53.216.0 - 103.53.219.255 { 0x6735dc00, 0x673637ff, REGISTRY_APNIC }, // 103.53.220.0 - 103.54.55.255 { 0x67363800, 0x67363bff, REGISTRY_ARIN }, // 103.54.56.0 - 103.54.59.255 { 0x67363c00, 0x67366bff, REGISTRY_APNIC }, // 103.54.60.0 - 103.54.107.255 { 0x67366e00, 0x67368eff, REGISTRY_APNIC }, // 103.54.110.0 - 103.54.142.255 { 0x67368f00, 0x67368fff, REGISTRY_ARIN }, // 103.54.143.0 - 103.54.143.255 { 0x67369000, 0x6736c7ff, REGISTRY_APNIC }, // 103.54.144.0 - 103.54.199.255 { 0x6736cc00, 0x673717ff, REGISTRY_APNIC }, // 103.54.204.0 - 103.55.23.255 { 0x67371c00, 0x673763ff, REGISTRY_APNIC }, // 103.55.28.0 - 103.55.99.255 { 0x67376400, 0x673767ff, REGISTRY_RIPENCC }, // 103.55.100.0 - 103.55.103.255 { 0x67376800, 0x67379dff, REGISTRY_APNIC }, // 103.55.104.0 - 103.55.157.255 { 0x67379f00, 0x6737e7ff, REGISTRY_APNIC }, // 103.55.159.0 - 103.55.231.255 { 0x6737e800, 0x6737ebff, REGISTRY_RIPENCC }, // 103.55.232.0 - 103.55.235.255 { 0x6737ec00, 0x6737f7ff, REGISTRY_APNIC }, // 103.55.236.0 - 103.55.247.255 { 0x67380000, 0x6738abff, REGISTRY_APNIC }, // 103.56.0.0 - 103.56.171.255 { 0x6738ac00, 0x6738acff, REGISTRY_RIPENCC }, // 103.56.172.0 - 103.56.172.255 { 0x6738ad00, 0x673927ff, REGISTRY_APNIC }, // 103.56.173.0 - 103.57.39.255 { 0x67392800, 0x67392bff, REGISTRY_RIPENCC }, // 103.57.40.0 - 103.57.43.255 { 0x67392c00, 0x673947ff, REGISTRY_APNIC }, // 103.57.44.0 - 103.57.71.255 { 0x67394800, 0x67394bff, REGISTRY_RIPENCC }, // 103.57.72.0 - 103.57.75.255 { 0x67394c00, 0x67396bff, REGISTRY_APNIC }, // 103.57.76.0 - 103.57.107.255 { 0x67396c00, 0x67396fff, REGISTRY_RIPENCC }, // 103.57.108.0 - 103.57.111.255 { 0x67397000, 0x673993ff, REGISTRY_APNIC }, // 103.57.112.0 - 103.57.147.255 { 0x67399600, 0x6739f7ff, REGISTRY_APNIC }, // 103.57.150.0 - 103.57.247.255 { 0x6739f800, 0x6739fbff, REGISTRY_RIPENCC }, // 103.57.248.0 - 103.57.251.255 { 0x6739fc00, 0x673a07ff, REGISTRY_APNIC }, // 103.57.252.0 - 103.58.7.255 { 0x673a0800, 0x673a0bff, REGISTRY_RIPENCC }, // 103.58.8.0 - 103.58.11.255 { 0x673a0c00, 0x673a27ff, REGISTRY_APNIC }, // 103.58.12.0 - 103.58.39.255 { 0x673a2900, 0x673a29ff, REGISTRY_APNIC }, // 103.58.41.0 - 103.58.41.255 { 0x673a2c00, 0x673a70ff, REGISTRY_APNIC }, // 103.58.44.0 - 103.58.112.255 { 0x673a7200, 0x673b1fff, REGISTRY_APNIC }, // 103.58.114.0 - 103.59.31.255 { 0x673b2400, 0x673b27ff, REGISTRY_APNIC }, // 103.59.36.0 - 103.59.39.255 { 0x673b2800, 0x673b2bff, REGISTRY_RIPENCC }, // 103.59.40.0 - 103.59.43.255 { 0x673b2c00, 0x673c0bff, REGISTRY_APNIC }, // 103.59.44.0 - 103.60.11.255 { 0x673c0c00, 0x673c0fff, REGISTRY_ARIN }, // 103.60.12.0 - 103.60.15.255 { 0x673c1000, 0x673c57ff, REGISTRY_APNIC }, // 103.60.16.0 - 103.60.87.255 { 0x673c6000, 0x673db7ff, REGISTRY_APNIC }, // 103.60.96.0 - 103.61.183.255 { 0x673db800, 0x673dbbff, REGISTRY_RIPENCC }, // 103.61.184.0 - 103.61.187.255 { 0x673dbc00, 0x673e27ff, REGISTRY_APNIC }, // 103.61.188.0 - 103.62.39.255 { 0x673e2800, 0x673e2bff, REGISTRY_RIPENCC }, // 103.62.40.0 - 103.62.43.255 { 0x673e2c00, 0x673f1bff, REGISTRY_APNIC }, // 103.62.44.0 - 103.63.27.255 { 0x673f1c00, 0x673f1fff, REGISTRY_RIPENCC }, // 103.63.28.0 - 103.63.31.255 { 0x673f2000, 0x674013ff, REGISTRY_APNIC }, // 103.63.32.0 - 103.64.19.255 { 0x67401800, 0x674087ff, REGISTRY_APNIC }, // 103.64.24.0 - 103.64.135.255 { 0x67408c00, 0x674177ff, REGISTRY_APNIC }, // 103.64.140.0 - 103.65.119.255 { 0x67419000, 0x6741e3ff, REGISTRY_APNIC }, // 103.65.144.0 - 103.65.227.255 { 0x6741e400, 0x6741e7ff, REGISTRY_ARIN }, // 103.65.228.0 - 103.65.231.255 { 0x6741e800, 0x674327ff, REGISTRY_APNIC }, // 103.65.232.0 - 103.67.39.255 { 0x67436000, 0x6743c7ff, REGISTRY_APNIC }, // 103.67.96.0 - 103.67.199.255 { 0x6743c800, 0x6743cbff, REGISTRY_ARIN }, // 103.67.200.0 - 103.67.203.255 { 0x6743cc00, 0x674469ff, REGISTRY_APNIC }, // 103.67.204.0 - 103.68.105.255 { 0x67446b00, 0x6744c5ff, REGISTRY_APNIC }, // 103.68.107.0 - 103.68.197.255 { 0x6744c700, 0x67452fff, REGISTRY_APNIC }, // 103.68.199.0 - 103.69.47.255 { 0x67453800, 0x67454fff, REGISTRY_APNIC }, // 103.69.56.0 - 103.69.79.255 { 0x67455800, 0x67455fff, REGISTRY_APNIC }, // 103.69.88.0 - 103.69.95.255 { 0x67456800, 0x67456cff, REGISTRY_APNIC }, // 103.69.104.0 - 103.69.108.255 { 0x67456e00, 0x674625ff, REGISTRY_APNIC }, // 103.69.110.0 - 103.70.37.255 { 0x67462600, 0x674627ff, REGISTRY_ARIN }, // 103.70.38.0 - 103.70.39.255 { 0x67462800, 0x67466fff, REGISTRY_APNIC }, // 103.70.40.0 - 103.70.111.255 { 0x67467800, 0x6746b7ff, REGISTRY_APNIC }, // 103.70.120.0 - 103.70.183.255 { 0x6746bc00, 0x67473bff, REGISTRY_APNIC }, // 103.70.188.0 - 103.71.59.255 { 0x67473c00, 0x67473cff, REGISTRY_ARIN }, // 103.71.60.0 - 103.71.60.255 { 0x67473d00, 0x67473dff, REGISTRY_RIPENCC }, // 103.71.61.0 - 103.71.61.255 { 0x67473e00, 0x67473fff, REGISTRY_ARIN }, // 103.71.62.0 - 103.71.63.255 { 0x67474000, 0x674767ff, REGISTRY_APNIC }, // 103.71.64.0 - 103.71.103.255 { 0x67477000, 0x6747cfff, REGISTRY_APNIC }, // 103.71.112.0 - 103.71.207.255 { 0x6747e000, 0x6747f3ff, REGISTRY_APNIC }, // 103.71.224.0 - 103.71.243.255 { 0x6747f800, 0x674837ff, REGISTRY_APNIC }, // 103.71.248.0 - 103.72.55.255 { 0x67484800, 0x67484bff, REGISTRY_APNIC }, // 103.72.72.0 - 103.72.75.255 { 0x67484c00, 0x67484fff, REGISTRY_ARIN }, // 103.72.76.0 - 103.72.79.255 { 0x67485000, 0x6749abff, REGISTRY_APNIC }, // 103.72.80.0 - 103.73.171.255 { 0x6749ac00, 0x6749afff, REGISTRY_RIPENCC }, // 103.73.172.0 - 103.73.175.255 { 0x6749b000, 0x674a4bff, REGISTRY_APNIC }, // 103.73.176.0 - 103.74.75.255 { 0x674a4c00, 0x674a4fff, REGISTRY_RIPENCC }, // 103.74.76.0 - 103.74.79.255 { 0x674a5000, 0x674b23ff, REGISTRY_APNIC }, // 103.74.80.0 - 103.75.35.255 { 0x674b2400, 0x674b27ff, REGISTRY_RIPENCC }, // 103.75.36.0 - 103.75.39.255 { 0x674b2800, 0x674b43ff, REGISTRY_APNIC }, // 103.75.40.0 - 103.75.67.255 { 0x674b4400, 0x674b47ff, REGISTRY_RIPENCC }, // 103.75.68.0 - 103.75.71.255 { 0x674b5800, 0x674bc3ff, REGISTRY_APNIC }, // 103.75.88.0 - 103.75.195.255 { 0x674bc400, 0x674bc7ff, REGISTRY_RIPENCC }, // 103.75.196.0 - 103.75.199.255 { 0x674bc800, 0x674c2fff, REGISTRY_APNIC }, // 103.75.200.0 - 103.76.47.255 { 0x674c3200, 0x674c33ff, REGISTRY_APNIC }, // 103.76.50.0 - 103.76.51.255 { 0x674c3400, 0x674c37ff, REGISTRY_RIPENCC }, // 103.76.52.0 - 103.76.55.255 { 0x674c3800, 0x674c53ff, REGISTRY_APNIC }, // 103.76.56.0 - 103.76.83.255 { 0x674c5400, 0x674c57ff, REGISTRY_RIPENCC }, // 103.76.84.0 - 103.76.87.255 { 0x674c5800, 0x674c5fff, REGISTRY_APNIC }, // 103.76.88.0 - 103.76.95.255 { 0x674c6000, 0x674c63ff, REGISTRY_RIPENCC }, // 103.76.96.0 - 103.76.99.255 { 0x674c6400, 0x674c67ff, REGISTRY_APNIC }, // 103.76.100.0 - 103.76.103.255 { 0x674c7000, 0x674c7fff, REGISTRY_APNIC }, // 103.76.112.0 - 103.76.127.255 { 0x674c8000, 0x674c83ff, REGISTRY_RIPENCC }, // 103.76.128.0 - 103.76.131.255 { 0x674c8400, 0x674ca5ff, REGISTRY_APNIC }, // 103.76.132.0 - 103.76.165.255 { 0x674ca600, 0x674ca7ff, REGISTRY_RIPENCC }, // 103.76.166.0 - 103.76.167.255 { 0x674ca800, 0x674cb9ff, REGISTRY_APNIC }, // 103.76.168.0 - 103.76.185.255 { 0x674cba00, 0x674cbbff, REGISTRY_ARIN }, // 103.76.186.0 - 103.76.187.255 { 0x674cbc00, 0x674cfeff, REGISTRY_APNIC }, // 103.76.188.0 - 103.76.254.255 { 0x674cff00, 0x674cffff, REGISTRY_ARIN }, // 103.76.255.0 - 103.76.255.255 { 0x674d0000, 0x674d0eff, REGISTRY_APNIC }, // 103.77.0.0 - 103.77.14.255 { 0x674d1000, 0x674d1fff, REGISTRY_APNIC }, // 103.77.16.0 - 103.77.31.255 { 0x674d2000, 0x674d23ff, REGISTRY_RIPENCC }, // 103.77.32.0 - 103.77.35.255 { 0x674d2400, 0x674dafff, REGISTRY_APNIC }, // 103.77.36.0 - 103.77.175.255 { 0x674db900, 0x674dcfff, REGISTRY_APNIC }, // 103.77.185.0 - 103.77.207.255 { 0x674dd800, 0x674defff, REGISTRY_APNIC }, // 103.77.216.0 - 103.77.239.255 { 0x674df800, 0x674dffff, REGISTRY_APNIC }, // 103.77.248.0 - 103.77.255.255 { 0x674e0800, 0x674e9fff, REGISTRY_APNIC }, // 103.78.8.0 - 103.78.159.255 { 0x674ea000, 0x674ea3ff, REGISTRY_ARIN }, // 103.78.160.0 - 103.78.163.255 { 0x674ea400, 0x674ebbff, REGISTRY_APNIC }, // 103.78.164.0 - 103.78.187.255 { 0x674ebc00, 0x674ebfff, REGISTRY_RIPENCC }, // 103.78.188.0 - 103.78.191.255 { 0x674ec000, 0x675034ff, REGISTRY_APNIC }, // 103.78.192.0 - 103.80.52.255 { 0x67503600, 0x6750dfff, REGISTRY_APNIC }, // 103.80.54.0 - 103.80.223.255 { 0x6750e800, 0x67518bff, REGISTRY_APNIC }, // 103.80.232.0 - 103.81.139.255 { 0x67518c00, 0x67518fff, REGISTRY_RIPENCC }, // 103.81.140.0 - 103.81.143.255 { 0x67519000, 0x6751ffff, REGISTRY_APNIC }, // 103.81.144.0 - 103.81.255.255 { 0x67520000, 0x675203ff, REGISTRY_RIPENCC }, // 103.82.0.0 - 103.82.3.255 { 0x67520400, 0x675311ff, REGISTRY_APNIC }, // 103.82.4.0 - 103.83.17.255 { 0x67531400, 0x67551fff, REGISTRY_APNIC }, // 103.83.20.0 - 103.85.31.255 { 0x67552000, 0x675523ff, REGISTRY_RIPENCC }, // 103.85.32.0 - 103.85.35.255 { 0x67552400, 0x675543ff, REGISTRY_APNIC }, // 103.85.36.0 - 103.85.67.255 { 0x67554c00, 0x6755e7ff, REGISTRY_APNIC }, // 103.85.76.0 - 103.85.231.255 { 0x6755e800, 0x6755ebff, REGISTRY_ARIN }, // 103.85.232.0 - 103.85.235.255 { 0x6755ec00, 0x6757e7ff, REGISTRY_APNIC }, // 103.85.236.0 - 103.87.231.255 { 0x6757e800, 0x6757ebff, REGISTRY_ARIN }, // 103.87.232.0 - 103.87.235.255 { 0x6757ec00, 0x6757fbff, REGISTRY_APNIC }, // 103.87.236.0 - 103.87.251.255 { 0x6757fc00, 0x6757fdff, REGISTRY_ARIN }, // 103.87.252.0 - 103.87.253.255 { 0x6757fe00, 0x6758e7ff, REGISTRY_APNIC }, // 103.87.254.0 - 103.88.231.255 { 0x6758e800, 0x6758ebff, REGISTRY_ARIN }, // 103.88.232.0 - 103.88.235.255 { 0x6758ec00, 0x67590bff, REGISTRY_APNIC }, // 103.88.236.0 - 103.89.11.255 { 0x67590c00, 0x67590fff, REGISTRY_ARIN }, // 103.89.12.0 - 103.89.15.255 { 0x67591000, 0x6759a6ff, REGISTRY_APNIC }, // 103.89.16.0 - 103.89.166.255 { 0x6759a800, 0x675a23ff, REGISTRY_APNIC }, // 103.89.168.0 - 103.90.35.255 { 0x675a2800, 0x675a9fff, REGISTRY_APNIC }, // 103.90.40.0 - 103.90.159.255 { 0x675aa000, 0x675aa3ff, REGISTRY_ARIN }, // 103.90.160.0 - 103.90.163.255 { 0x675aa400, 0x675d5bff, REGISTRY_APNIC }, // 103.90.164.0 - 103.93.91.255 { 0x675d5d00, 0x675f73ff, REGISTRY_APNIC }, // 103.93.93.0 - 103.95.115.255 { 0x675f7400, 0x675f77ff, REGISTRY_RIPENCC }, // 103.95.116.0 - 103.95.119.255 { 0x675f7800, 0x675fccff, REGISTRY_APNIC }, // 103.95.120.0 - 103.95.204.255 { 0x675fce00, 0x6761f9ff, REGISTRY_APNIC }, // 103.95.206.0 - 103.97.249.255 { 0x6761fb00, 0x67620bff, REGISTRY_APNIC }, // 103.97.251.0 - 103.98.11.255 { 0x67620e00, 0x67624bff, REGISTRY_APNIC }, // 103.98.14.0 - 103.98.75.255 { 0x67624e00, 0x6762d3ff, REGISTRY_APNIC }, // 103.98.78.0 - 103.98.211.255 { 0x6762d400, 0x6762d7ff, REGISTRY_ARIN }, // 103.98.212.0 - 103.98.215.255 { 0x6762d800, 0x676320ff, REGISTRY_APNIC }, // 103.98.216.0 - 103.99.32.255 { 0x67632100, 0x676322ff, REGISTRY_RIPENCC }, // 103.99.33.0 - 103.99.34.255 { 0x67632300, 0x676387ff, REGISTRY_APNIC }, // 103.99.35.0 - 103.99.135.255 { 0x67639000, 0x67653fff, REGISTRY_APNIC }, // 103.99.144.0 - 103.101.63.255 { 0x67654100, 0x676557ff, REGISTRY_APNIC }, // 103.101.65.0 - 103.101.87.255 { 0x67655800, 0x67655bff, REGISTRY_RIPENCC }, // 103.101.88.0 - 103.101.91.255 { 0x67655c00, 0x6765c7ff, REGISTRY_APNIC }, // 103.101.92.0 - 103.101.199.255 { 0x6765c800, 0x6765cbff, REGISTRY_ARIN }, // 103.101.200.0 - 103.101.203.255 { 0x6765cc00, 0x676626ff, REGISTRY_APNIC }, // 103.101.204.0 - 103.102.38.255 { 0x67662800, 0x6766fbff, REGISTRY_APNIC }, // 103.102.40.0 - 103.102.251.255 { 0x6766fc00, 0x6766ffff, REGISTRY_RIPENCC }, // 103.102.252.0 - 103.102.255.255 { 0x67670000, 0x6768a5ff, REGISTRY_APNIC }, // 103.103.0.0 - 103.104.165.255 { 0x6768a800, 0x6768f7ff, REGISTRY_APNIC }, // 103.104.168.0 - 103.104.247.255 { 0x6768f800, 0x6768fbff, REGISTRY_RIPENCC }, // 103.104.248.0 - 103.104.251.255 { 0x6768fc00, 0x6769d9ff, REGISTRY_APNIC }, // 103.104.252.0 - 103.105.217.255 { 0x6769db00, 0x6769ffff, REGISTRY_APNIC }, // 103.105.219.0 - 103.105.255.255 { 0x676a0400, 0x676a39ff, REGISTRY_APNIC }, // 103.106.4.0 - 103.106.57.255 { 0x676a3a00, 0x676a3bff, REGISTRY_ARIN }, // 103.106.58.0 - 103.106.59.255 { 0x676a3c00, 0x676ab7ff, REGISTRY_APNIC }, // 103.106.60.0 - 103.106.183.255 { 0x676ab800, 0x676abbff, REGISTRY_RIPENCC }, // 103.106.184.0 - 103.106.187.255 { 0x676abc00, 0x676cb0ff, REGISTRY_APNIC }, // 103.106.188.0 - 103.108.176.255 { 0x676cb200, 0x676cdcff, REGISTRY_APNIC }, // 103.108.178.0 - 103.108.220.255 { 0x676cde00, 0x676d43ff, REGISTRY_APNIC }, // 103.108.222.0 - 103.109.67.255 { 0x676d4800, 0x676e3bff, REGISTRY_APNIC }, // 103.109.72.0 - 103.110.59.255 { 0x676e4000, 0x67703bff, REGISTRY_APNIC }, // 103.110.64.0 - 103.112.59.255 { 0x67703c00, 0x67703cff, REGISTRY_RIPENCC }, // 103.112.60.0 - 103.112.60.255 { 0x67703d00, 0x6770cfff, REGISTRY_APNIC }, // 103.112.61.0 - 103.112.207.255 { 0x6770d400, 0x6771b3ff, REGISTRY_APNIC }, // 103.112.212.0 - 103.113.179.255 { 0x6771b600, 0x6771f6ff, REGISTRY_APNIC }, // 103.113.182.0 - 103.113.246.255 { 0x6771f800, 0x677212ff, REGISTRY_APNIC }, // 103.113.248.0 - 103.114.18.255 { 0x67721400, 0x677301ff, REGISTRY_APNIC }, // 103.114.20.0 - 103.115.1.255 { 0x67730400, 0x677353ff, REGISTRY_APNIC }, // 103.115.4.0 - 103.115.83.255 { 0x67735800, 0x67746eff, REGISTRY_APNIC }, // 103.115.88.0 - 103.116.110.255 { 0x67747000, 0x677553ff, REGISTRY_APNIC }, // 103.116.112.0 - 103.117.83.255 { 0x67755800, 0x677583ff, REGISTRY_APNIC }, // 103.117.88.0 - 103.117.131.255 { 0x67758800, 0x6777ebff, REGISTRY_APNIC }, // 103.117.136.0 - 103.119.235.255 { 0x6777ee00, 0x6779b8ff, REGISTRY_APNIC }, // 103.119.238.0 - 103.121.184.255 { 0x6779ba00, 0x677a4eff, REGISTRY_APNIC }, // 103.121.186.0 - 103.122.78.255 { 0x677a5000, 0x677ab6ff, REGISTRY_APNIC }, // 103.122.80.0 - 103.122.182.255 { 0x677ab800, 0x677b6dff, REGISTRY_APNIC }, // 103.122.184.0 - 103.123.109.255 { 0x677b6f00, 0x677d9bff, REGISTRY_APNIC }, // 103.123.111.0 - 103.125.155.255 { 0x677da000, 0x677e2fff, REGISTRY_APNIC }, // 103.125.160.0 - 103.126.47.255 { 0x677e3400, 0x677e8bff, REGISTRY_APNIC }, // 103.126.52.0 - 103.126.139.255 { 0x677e9000, 0x677ebbff, REGISTRY_APNIC }, // 103.126.144.0 - 103.126.187.255 { 0x677ec000, 0x677ef0ff, REGISTRY_APNIC }, // 103.126.192.0 - 103.126.240.255 { 0x677ef200, 0x677fd7ff, REGISTRY_APNIC }, // 103.126.242.0 - 103.127.215.255 { 0x677fe000, 0x677fffff, REGISTRY_APNIC }, // 103.127.224.0 - 103.127.255.255 { 0x67810000, 0x67810cff, REGISTRY_APNIC }, // 103.129.0.0 - 103.129.12.255 { 0x67811000, 0x678351ff, REGISTRY_APNIC }, // 103.129.16.0 - 103.131.81.255 { 0x67835300, 0x67837fff, REGISTRY_APNIC }, // 103.131.83.0 - 103.131.127.255 { 0x67838800, 0x6783ddff, REGISTRY_APNIC }, // 103.131.136.0 - 103.131.221.255 { 0x6783df00, 0x67872bff, REGISTRY_APNIC }, // 103.131.223.0 - 103.135.43.255 { 0x67872e00, 0x6788d3ff, REGISTRY_APNIC }, // 103.135.46.0 - 103.136.211.255 { 0x6788d600, 0x678938ff, REGISTRY_APNIC }, // 103.136.214.0 - 103.137.56.255 { 0x67893a00, 0x678c6dff, REGISTRY_APNIC }, // 103.137.58.0 - 103.140.109.255 { 0x678c7000, 0x678ca8ff, REGISTRY_APNIC }, // 103.140.112.0 - 103.140.168.255 { 0x678caa00, 0x678d4bff, REGISTRY_APNIC }, // 103.140.170.0 - 103.141.75.255 { 0x678d4d00, 0x678e13ff, REGISTRY_APNIC }, // 103.141.77.0 - 103.142.19.255 { 0x678e1500, 0x678e41ff, REGISTRY_APNIC }, // 103.142.21.0 - 103.142.65.255 { 0x678e4400, 0x678e95ff, REGISTRY_APNIC }, // 103.142.68.0 - 103.142.149.255 { 0x678e9a00, 0x678ff7ff, REGISTRY_APNIC }, // 103.142.154.0 - 103.143.247.255 { 0x678ffa00, 0x6790a1ff, REGISTRY_APNIC }, // 103.143.250.0 - 103.144.161.255 { 0x6790a400, 0x6790edff, REGISTRY_APNIC }, // 103.144.164.0 - 103.144.237.255 { 0x6790f000, 0x679197ff, REGISTRY_APNIC }, // 103.144.240.0 - 103.145.151.255 { 0x67919a00, 0x6791e5ff, REGISTRY_APNIC }, // 103.145.154.0 - 103.145.229.255 { 0x6791e800, 0x679205ff, REGISTRY_APNIC }, // 103.145.232.0 - 103.146.5.255 { 0x67920800, 0x679257ff, REGISTRY_APNIC }, // 103.146.8.0 - 103.146.87.255 { 0x67925a00, 0x6792cbff, REGISTRY_APNIC }, // 103.146.90.0 - 103.146.203.255 { 0x6792ce00, 0x679595ff, REGISTRY_APNIC }, // 103.146.206.0 - 103.149.149.255 { 0x67959800, 0x6795a6ff, REGISTRY_APNIC }, // 103.149.152.0 - 103.149.166.255 { 0x6795a800, 0x6795d9ff, REGISTRY_APNIC }, // 103.149.168.0 - 103.149.217.255 { 0x6795db00, 0x679609ff, REGISTRY_APNIC }, // 103.149.219.0 - 103.150.9.255 { 0x67960c00, 0x679646ff, REGISTRY_APNIC }, // 103.150.12.0 - 103.150.70.255 { 0x67964800, 0x679669ff, REGISTRY_APNIC }, // 103.150.72.0 - 103.150.105.255 { 0x67966c00, 0x679783ff, REGISTRY_APNIC }, // 103.150.108.0 - 103.151.131.255 { 0x67978600, 0x679799ff, REGISTRY_APNIC }, // 103.151.134.0 - 103.151.153.255 { 0x67979b00, 0x6797abff, REGISTRY_APNIC }, // 103.151.155.0 - 103.151.171.255 { 0x6797ae00, 0x679814ff, REGISTRY_APNIC }, // 103.151.174.0 - 103.152.20.255 { 0x67981600, 0x67987cff, REGISTRY_APNIC }, // 103.152.22.0 - 103.152.124.255 { 0x67987e00, 0x679961ff, REGISTRY_APNIC }, // 103.152.126.0 - 103.153.97.255 { 0x67996400, 0x679a83ff, REGISTRY_APNIC }, // 103.153.100.0 - 103.154.131.255 { 0x679a8600, 0x679abfff, REGISTRY_APNIC }, // 103.154.134.0 - 103.154.191.255 { 0x679ac200, 0x679b39ff, REGISTRY_APNIC }, // 103.154.194.0 - 103.155.57.255 { 0x679b3e00, 0x679b5fff, REGISTRY_APNIC }, // 103.155.62.0 - 103.155.95.255 { 0x679b6100, 0x679b7bff, REGISTRY_APNIC }, // 103.155.97.0 - 103.155.123.255 { 0x679b7d00, 0x679c17ff, REGISTRY_APNIC }, // 103.155.125.0 - 103.156.23.255 { 0x679c1a00, 0x679cdcff, REGISTRY_APNIC }, // 103.156.26.0 - 103.156.220.255 { 0x679cde00, 0x679e49ff, REGISTRY_APNIC }, // 103.156.222.0 - 103.158.73.255 { 0x679e4c00, 0x679e4fff, REGISTRY_APNIC }, // 103.158.76.0 - 103.158.79.255 { 0x679e5200, 0x679e6fff, REGISTRY_APNIC }, // 103.158.82.0 - 103.158.111.255 { 0x679e7800, 0x679e85ff, REGISTRY_APNIC }, // 103.158.120.0 - 103.158.133.255 { 0x679e8800, 0x679eb7ff, REGISTRY_APNIC }, // 103.158.136.0 - 103.158.183.255 { 0x679eba00, 0x679f55ff, REGISTRY_APNIC }, // 103.158.186.0 - 103.159.85.255 { 0x679f5800, 0x679fabff, REGISTRY_APNIC }, // 103.159.88.0 - 103.159.171.255 { 0x679fae00, 0x679fd1ff, REGISTRY_APNIC }, // 103.159.174.0 - 103.159.209.255 { 0x679fd400, 0x67a009ff, REGISTRY_APNIC }, // 103.159.212.0 - 103.160.9.255 { 0x67a00c00, 0x67a05fff, REGISTRY_APNIC }, // 103.160.12.0 - 103.160.95.255 { 0x67a06200, 0x67a0ffff, REGISTRY_APNIC }, // 103.160.98.0 - 103.160.255.255 { 0x67a10200, 0x67a155ff, REGISTRY_APNIC }, // 103.161.2.0 - 103.161.85.255 { 0x67a15800, 0x67a1f2ff, REGISTRY_APNIC }, // 103.161.88.0 - 103.161.242.255 { 0x67a1f400, 0x67a255ff, REGISTRY_APNIC }, // 103.161.244.0 - 103.162.85.255 { 0x67a25800, 0x67a2bfff, REGISTRY_APNIC }, // 103.162.88.0 - 103.162.191.255 { 0x67a2c200, 0x67a4e1ff, REGISTRY_APNIC }, // 103.162.194.0 - 103.164.225.255 { 0x67a4e400, 0x67a601ff, REGISTRY_APNIC }, // 103.164.228.0 - 103.166.1.255 { 0x67a60300, 0x67a677ff, REGISTRY_APNIC }, // 103.166.3.0 - 103.166.119.255 { 0x67a67a00, 0x67a705ff, REGISTRY_APNIC }, // 103.166.122.0 - 103.167.5.255 { 0x67a70800, 0x67a7fbff, REGISTRY_APNIC }, // 103.167.8.0 - 103.167.251.255 { 0x67a7fe00, 0x67a8a1ff, REGISTRY_APNIC }, // 103.167.254.0 - 103.168.161.255 { 0x67a8a300, 0x67a98eff, REGISTRY_APNIC }, // 103.168.163.0 - 103.169.142.255 { 0x67a99000, 0x67aad9ff, REGISTRY_APNIC }, // 103.169.144.0 - 103.170.217.255 { 0x67aadc00, 0x67ab45ff, REGISTRY_APNIC }, // 103.170.220.0 - 103.171.69.255 { 0x67ab4800, 0x67abe4ff, REGISTRY_APNIC }, // 103.171.72.0 - 103.171.228.255 { 0x67abe600, 0x67ac7bff, REGISTRY_APNIC }, // 103.171.230.0 - 103.172.123.255 { 0x67ac7e00, 0x67acb7ff, REGISTRY_APNIC }, // 103.172.126.0 - 103.172.183.255 { 0x67acba00, 0x67acbfff, REGISTRY_APNIC }, // 103.172.186.0 - 103.172.191.255 { 0x67acc200, 0x67acd9ff, REGISTRY_APNIC }, // 103.172.194.0 - 103.172.217.255 { 0x67acdc00, 0x67ad1bff, REGISTRY_APNIC }, // 103.172.220.0 - 103.173.27.255 { 0x67ad1e00, 0x67ad90ff, REGISTRY_APNIC }, // 103.173.30.0 - 103.173.144.255 { 0x67ad9200, 0x67ad9fff, REGISTRY_APNIC }, // 103.173.146.0 - 103.173.159.255 { 0x67ada200, 0x67adf5ff, REGISTRY_APNIC }, // 103.173.162.0 - 103.173.245.255 { 0x67adf800, 0x67ae85ff, REGISTRY_APNIC }, // 103.173.248.0 - 103.174.133.255 { 0x67ae8800, 0x67ae99ff, REGISTRY_APNIC }, // 103.174.136.0 - 103.174.153.255 { 0x67ae9c00, 0x67aeb9ff, REGISTRY_APNIC }, // 103.174.156.0 - 103.174.185.255 { 0x67aebc00, 0x67aef9ff, REGISTRY_APNIC }, // 103.174.188.0 - 103.174.249.255 { 0x67aefb00, 0x67af7dff, REGISTRY_APNIC }, // 103.174.251.0 - 103.175.125.255 { 0x67af7f00, 0x67b111ff, REGISTRY_APNIC }, // 103.175.127.0 - 103.177.17.255 { 0x67b11300, 0x67b14aff, REGISTRY_APNIC }, // 103.177.19.0 - 103.177.74.255 { 0x67b14c00, 0x67b209ff, REGISTRY_APNIC }, // 103.177.76.0 - 103.178.9.255 { 0x67b20c00, 0x67b235ff, REGISTRY_APNIC }, // 103.178.12.0 - 103.178.53.255 { 0x67b23800, 0x67b305ff, REGISTRY_APNIC }, // 103.178.56.0 - 103.179.5.255 { 0x67b30800, 0x67b370ff, REGISTRY_APNIC }, // 103.179.8.0 - 103.179.112.255 { 0x67b37200, 0x67b37dff, REGISTRY_APNIC }, // 103.179.114.0 - 103.179.125.255 { 0x67b38000, 0x67b3a5ff, REGISTRY_APNIC }, // 103.179.128.0 - 103.179.165.255 { 0x67b3a800, 0x67b403ff, REGISTRY_APNIC }, // 103.179.168.0 - 103.180.3.255 { 0x67b40a00, 0x67b40bff, REGISTRY_APNIC }, // 103.180.10.0 - 103.180.11.255 { 0x67b40e00, 0x67b419ff, REGISTRY_APNIC }, // 103.180.14.0 - 103.180.25.255 { 0x67b41c00, 0x67b41fff, REGISTRY_APNIC }, // 103.180.28.0 - 103.180.31.255 { 0x67b42600, 0x67b43dff, REGISTRY_APNIC }, // 103.180.38.0 - 103.180.61.255 { 0x67b44200, 0x67b443ff, REGISTRY_APNIC }, // 103.180.66.0 - 103.180.67.255 { 0x67b44800, 0x67b449ff, REGISTRY_APNIC }, // 103.180.72.0 - 103.180.73.255 { 0x67b45000, 0x67b451ff, REGISTRY_APNIC }, // 103.180.80.0 - 103.180.81.255 { 0x67b45800, 0x67b459ff, REGISTRY_APNIC }, // 103.180.88.0 - 103.180.89.255 { 0x67b45c00, 0x67b461ff, REGISTRY_APNIC }, // 103.180.92.0 - 103.180.97.255 { 0x67b46800, 0x67b4b5ff, REGISTRY_APNIC }, // 103.180.104.0 - 103.180.181.255 { 0x67b4ba00, 0x67b4e5ff, REGISTRY_APNIC }, // 103.180.186.0 - 103.180.229.255 { 0x67b4ea00, 0x67b569ff, REGISTRY_APNIC }, // 103.180.234.0 - 103.181.105.255 { 0x67b56c00, 0x67b5a9ff, REGISTRY_APNIC }, // 103.181.108.0 - 103.181.169.255 { 0x67b5ae00, 0x67b5b7ff, REGISTRY_APNIC }, // 103.181.174.0 - 103.181.183.255 { 0x67b5c200, 0x67b5c3ff, REGISTRY_APNIC }, // 103.181.194.0 - 103.181.195.255 { 0x67b5c600, 0x67b5cbff, REGISTRY_APNIC }, // 103.181.198.0 - 103.181.203.255 { 0x67b5d000, 0x67b5d1ff, REGISTRY_APNIC }, // 103.181.208.0 - 103.181.209.255 { 0x67b5d400, 0x67b5d5ff, REGISTRY_APNIC }, // 103.181.212.0 - 103.181.213.255 { 0x67b5d800, 0x67b5d9ff, REGISTRY_APNIC }, // 103.181.216.0 - 103.181.217.255 { 0x67b5de00, 0x67b601ff, REGISTRY_APNIC }, // 103.181.222.0 - 103.182.1.255 { 0x67b60a00, 0x67b617ff, REGISTRY_APNIC }, // 103.182.10.0 - 103.182.23.255 { 0x67b62800, 0x67b637ff, REGISTRY_APNIC }, // 103.182.40.0 - 103.182.55.255 { 0x67b63a00, 0x67b63bff, REGISTRY_APNIC }, // 103.182.58.0 - 103.182.59.255 { 0x67b63e00, 0x67b653ff, REGISTRY_APNIC }, // 103.182.62.0 - 103.182.83.255 { 0x67b65a00, 0x67b65bff, REGISTRY_APNIC }, // 103.182.90.0 - 103.182.91.255 { 0x67b66000, 0x67b663ff, REGISTRY_APNIC }, // 103.182.96.0 - 103.182.99.255 { 0x67b66600, 0x67b671ff, REGISTRY_APNIC }, // 103.182.102.0 - 103.182.113.255 { 0x67b67400, 0x67b72fff, REGISTRY_APNIC }, // 103.182.116.0 - 103.183.47.255 { 0x67b73400, 0x67b84fff, REGISTRY_APNIC }, // 103.183.52.0 - 103.184.79.255 { 0x67b85200, 0x67b853ff, REGISTRY_APNIC }, // 103.184.82.0 - 103.184.83.255 { 0x67b85600, 0x67b857ff, REGISTRY_APNIC }, // 103.184.86.0 - 103.184.87.255 { 0x67b85a00, 0x67b863ff, REGISTRY_APNIC }, // 103.184.90.0 - 103.184.99.255 { 0x67b86600, 0x67b86bff, REGISTRY_APNIC }, // 103.184.102.0 - 103.184.107.255 { 0x67b87000, 0x67b871ff, REGISTRY_APNIC }, // 103.184.112.0 - 103.184.113.255 { 0x67b87400, 0x67b883ff, REGISTRY_APNIC }, // 103.184.116.0 - 103.184.131.255 { 0x67b88800, 0x67b88fff, REGISTRY_APNIC }, // 103.184.136.0 - 103.184.143.255 { 0x67b89a00, 0x67b89bff, REGISTRY_APNIC }, // 103.184.154.0 - 103.184.155.255 { 0x67b89e00, 0x67b8a3ff, REGISTRY_APNIC }, // 103.184.158.0 - 103.184.163.255 { 0x67b8a600, 0x67b8b9ff, REGISTRY_APNIC }, // 103.184.166.0 - 103.184.185.255 { 0x67b8c000, 0x67b8cfff, REGISTRY_APNIC }, // 103.184.192.0 - 103.184.207.255 { 0x67b8e200, 0x67b8e3ff, REGISTRY_APNIC }, // 103.184.226.0 - 103.184.227.255 { 0x67b8ec00, 0x67b8efff, REGISTRY_APNIC }, // 103.184.236.0 - 103.184.239.255 { 0x67b8f200, 0x67b8f3ff, REGISTRY_APNIC }, // 103.184.242.0 - 103.184.243.255 { 0x67b8fc00, 0x67b8fdff, REGISTRY_APNIC }, // 103.184.252.0 - 103.184.253.255 { 0x67b90a00, 0x67b90bff, REGISTRY_APNIC }, // 103.185.10.0 - 103.185.11.255 { 0x67b91400, 0x67b91dff, REGISTRY_APNIC }, // 103.185.20.0 - 103.185.29.255 { 0x67b92400, 0x67b935ff, REGISTRY_APNIC }, // 103.185.36.0 - 103.185.53.255 { 0x67b94a00, 0x67b94bff, REGISTRY_APNIC }, // 103.185.74.0 - 103.185.75.255 { 0x67b94e00, 0x67b957ff, REGISTRY_APNIC }, // 103.185.78.0 - 103.185.87.255 { 0x67b96400, 0x67b96fff, REGISTRY_APNIC }, // 103.185.100.0 - 103.185.111.255 { 0x67b98600, 0x67b987ff, REGISTRY_APNIC }, // 103.185.134.0 - 103.185.135.255 { 0x67b99200, 0x67b993ff, REGISTRY_APNIC }, // 103.185.146.0 - 103.185.147.255 { 0x67b99e00, 0x67b9a3ff, REGISTRY_APNIC }, // 103.185.158.0 - 103.185.163.255 { 0x67b9ae00, 0x67b9b5ff, REGISTRY_APNIC }, // 103.185.174.0 - 103.185.181.255 { 0x67b9b800, 0x67b9bbff, REGISTRY_APNIC }, // 103.185.184.0 - 103.185.187.255 { 0x67b9c000, 0x67b9d1ff, REGISTRY_APNIC }, // 103.185.192.0 - 103.185.209.255 { 0x67b9d400, 0x67b9d5ff, REGISTRY_APNIC }, // 103.185.212.0 - 103.185.213.255 { 0x67b9d800, 0x67ba7dff, REGISTRY_APNIC }, // 103.185.216.0 - 103.186.125.255 { 0x67ba8000, 0x67baf3ff, REGISTRY_APNIC }, // 103.186.128.0 - 103.186.243.255 { 0x67baf600, 0x67bb0dff, REGISTRY_APNIC }, // 103.186.246.0 - 103.187.13.255 { 0x67bb1000, 0x67bb29ff, REGISTRY_APNIC }, // 103.187.16.0 - 103.187.41.255 { 0x67bb3200, 0x67bb33ff, REGISTRY_APNIC }, // 103.187.50.0 - 103.187.51.255 { 0x67bb3a00, 0x67bb4bff, REGISTRY_APNIC }, // 103.187.58.0 - 103.187.75.255 { 0x67bb4e00, 0x67bb8fff, REGISTRY_APNIC }, // 103.187.78.0 - 103.187.143.255 { 0x67bb9200, 0x67bb93ff, REGISTRY_APNIC }, // 103.187.146.0 - 103.187.147.255 { 0x67bb9600, 0x67bbabff, REGISTRY_APNIC }, // 103.187.150.0 - 103.187.171.255 { 0x67bbb200, 0x67bbb3ff, REGISTRY_APNIC }, // 103.187.178.0 - 103.187.179.255 { 0x67bbb600, 0x67bbc9ff, REGISTRY_APNIC }, // 103.187.182.0 - 103.187.201.255 { 0x67bbd200, 0x67bbf9ff, REGISTRY_APNIC }, // 103.187.210.0 - 103.187.249.255 { 0x67bc0a00, 0x67bc0dff, REGISTRY_APNIC }, // 103.188.10.0 - 103.188.13.255 { 0x67bc1200, 0x67bc17ff, REGISTRY_APNIC }, // 103.188.18.0 - 103.188.23.255 { 0x67bc2000, 0x67bc35ff, REGISTRY_APNIC }, // 103.188.32.0 - 103.188.53.255 { 0x67bc4c00, 0x67bc5fff, REGISTRY_APNIC }, // 103.188.76.0 - 103.188.95.255 { 0x67bc7200, 0x67bc73ff, REGISTRY_APNIC }, // 103.188.114.0 - 103.188.115.255 { 0x67bc7600, 0x67bc7bff, REGISTRY_APNIC }, // 103.188.118.0 - 103.188.123.255 { 0x67bc7e00, 0x67bc7fff, REGISTRY_APNIC }, // 103.188.126.0 - 103.188.127.255 { 0x67bc8600, 0x67bc89ff, REGISTRY_APNIC }, // 103.188.134.0 - 103.188.137.255 { 0x67bca200, 0x67bcb7ff, REGISTRY_APNIC }, // 103.188.162.0 - 103.188.183.255 { 0x67bcc800, 0x67bcc9ff, REGISTRY_APNIC }, // 103.188.200.0 - 103.188.201.255 { 0x67bccc00, 0x67bccdff, REGISTRY_APNIC }, // 103.188.204.0 - 103.188.205.255 { 0x67bcda00, 0x67bcddff, REGISTRY_APNIC }, // 103.188.218.0 - 103.188.221.255 { 0x67bce600, 0x67bcedff, REGISTRY_APNIC }, // 103.188.230.0 - 103.188.237.255 { 0x67bcf200, 0x67bd0bff, REGISTRY_APNIC }, // 103.188.242.0 - 103.189.11.255 { 0x67bd2800, 0x67bd29ff, REGISTRY_APNIC }, // 103.189.40.0 - 103.189.41.255 { 0x67bd3000, 0x67bd31ff, REGISTRY_APNIC }, // 103.189.48.0 - 103.189.49.255 { 0x67bd3800, 0x67bdadff, REGISTRY_APNIC }, // 103.189.56.0 - 103.189.173.255 { 0x67bdb000, 0x67be8bff, REGISTRY_APNIC }, // 103.189.176.0 - 103.190.139.255 { 0x67be9000, 0x67be91ff, REGISTRY_APNIC }, // 103.190.144.0 - 103.190.145.255 { 0x67bea600, 0x67beabff, REGISTRY_APNIC }, // 103.190.166.0 - 103.190.171.255 { 0x67beb200, 0x67beb3ff, REGISTRY_APNIC }, // 103.190.178.0 - 103.190.179.255 { 0x67bebe00, 0x67bebfff, REGISTRY_APNIC }, // 103.190.190.0 - 103.190.191.255 { 0x67bec200, 0x67bec3ff, REGISTRY_APNIC }, // 103.190.194.0 - 103.190.195.255 { 0x67bec600, 0x67becfff, REGISTRY_APNIC }, // 103.190.198.0 - 103.190.207.255 { 0x67bed400, 0x67bee9ff, REGISTRY_APNIC }, // 103.190.212.0 - 103.190.233.255 { 0x67beee00, 0x67beefff, REGISTRY_APNIC }, // 103.190.238.0 - 103.190.239.255 { 0x67bef200, 0x67bef3ff, REGISTRY_APNIC }, // 103.190.242.0 - 103.190.243.255 { 0x67befa00, 0x67befdff, REGISTRY_APNIC }, // 103.190.250.0 - 103.190.253.255 { 0x67bf0000, 0x67bf1bff, REGISTRY_APNIC }, // 103.191.0.0 - 103.191.27.255 { 0x67bf2400, 0x67bf2dff, REGISTRY_APNIC }, // 103.191.36.0 - 103.191.45.255 { 0x67bf3000, 0x67bf4dff, REGISTRY_APNIC }, // 103.191.48.0 - 103.191.77.255 { 0x67bf5400, 0x67bf5fff, REGISTRY_APNIC }, // 103.191.84.0 - 103.191.95.255 { 0x67bf6200, 0x67bfb7ff, REGISTRY_APNIC }, // 103.191.98.0 - 103.191.183.255 { 0x67bfba00, 0x67bfbbff, REGISTRY_APNIC }, // 103.191.186.0 - 103.191.187.255 { 0x67bfc400, 0x67bfcdff, REGISTRY_APNIC }, // 103.191.196.0 - 103.191.205.255 { 0x67bfd000, 0x67bfd1ff, REGISTRY_APNIC }, // 103.191.208.0 - 103.191.209.255 { 0x67bfd800, 0x67bfdbff, REGISTRY_APNIC }, // 103.191.216.0 - 103.191.219.255 { 0x67bfea00, 0x67bfebff, REGISTRY_APNIC }, // 103.191.234.0 - 103.191.235.255 { 0x67bff000, 0x67bff3ff, REGISTRY_APNIC }, // 103.191.240.0 - 103.191.243.255 { 0x67bffa00, 0x67bffbff, REGISTRY_APNIC }, // 103.191.250.0 - 103.191.251.255 { 0x67bffe00, 0x67c09fff, REGISTRY_APNIC }, // 103.191.254.0 - 103.192.159.255 { 0x67c0a000, 0x67c0a3ff, REGISTRY_RIPENCC }, // 103.192.160.0 - 103.192.163.255 { 0x67c0a400, 0x67c183ff, REGISTRY_APNIC }, // 103.192.164.0 - 103.193.131.255 { 0x67c18400, 0x67c187ff, REGISTRY_RIPENCC }, // 103.193.132.0 - 103.193.135.255 { 0x67c18800, 0x67c1efff, REGISTRY_APNIC }, // 103.193.136.0 - 103.193.239.255 { 0x67c1f400, 0x67c407ff, REGISTRY_APNIC }, // 103.193.244.0 - 103.196.7.255 { 0x67c40800, 0x67c40bff, REGISTRY_ARIN }, // 103.196.8.0 - 103.196.11.255 { 0x67c40c00, 0x67c477ff, REGISTRY_APNIC }, // 103.196.12.0 - 103.196.119.255 { 0x67c47800, 0x67c47bff, REGISTRY_RIPENCC }, // 103.196.120.0 - 103.196.123.255 { 0x67c47c00, 0x67c4b3ff, REGISTRY_APNIC }, // 103.196.124.0 - 103.196.179.255 { 0x67c4b400, 0x67c4b7ff, REGISTRY_ARIN }, // 103.196.180.0 - 103.196.183.255 { 0x67c4b800, 0x67c507ff, REGISTRY_APNIC }, // 103.196.184.0 - 103.197.7.255 { 0x67c50800, 0x67c50bff, REGISTRY_RIPENCC }, // 103.197.8.0 - 103.197.11.255 { 0x67c50c00, 0x67c593ff, REGISTRY_APNIC }, // 103.197.12.0 - 103.197.147.255 { 0x67c59400, 0x67c597ff, REGISTRY_RIPENCC }, // 103.197.148.0 - 103.197.151.255 { 0x67c59800, 0x67c603ff, REGISTRY_APNIC }, // 103.197.152.0 - 103.198.3.255 { 0x67c60800, 0x67c64fff, REGISTRY_APNIC }, // 103.198.8.0 - 103.198.79.255 { 0x67c65000, 0x67c651ff, REGISTRY_RIPENCC }, // 103.198.80.0 - 103.198.81.255 { 0x67c65200, 0x67c757ff, REGISTRY_APNIC }, // 103.198.82.0 - 103.199.87.255 { 0x67c75800, 0x67c75bff, REGISTRY_RIPENCC }, // 103.199.88.0 - 103.199.91.255 { 0x67c75c00, 0x67c7afff, REGISTRY_APNIC }, // 103.199.92.0 - 103.199.175.255 { 0x67c7b000, 0x67c7b3ff, REGISTRY_RIPENCC }, // 103.199.176.0 - 103.199.179.255 { 0x67c7b400, 0x67c7e7ff, REGISTRY_APNIC }, // 103.199.180.0 - 103.199.231.255 { 0x67c7e800, 0x67c7ebff, REGISTRY_RIPENCC }, // 103.199.232.0 - 103.199.235.255 { 0x67c7ec00, 0x67c81bff, REGISTRY_APNIC }, // 103.199.236.0 - 103.200.27.255 { 0x67c81c00, 0x67c81fff, REGISTRY_RIPENCC }, // 103.200.28.0 - 103.200.31.255 { 0x67c82000, 0x67c847ff, REGISTRY_APNIC }, // 103.200.32.0 - 103.200.71.255 { 0x67c84800, 0x67c849ff, REGISTRY_ARIN }, // 103.200.72.0 - 103.200.73.255 { 0x67c84a00, 0x67ca33ff, REGISTRY_APNIC }, // 103.200.74.0 - 103.202.51.255 { 0x67ca3400, 0x67ca37ff, REGISTRY_RIPENCC }, // 103.202.52.0 - 103.202.55.255 { 0x67ca3800, 0x67cae7ff, REGISTRY_APNIC }, // 103.202.56.0 - 103.202.231.255 { 0x67cae800, 0x67caebff, REGISTRY_RIPENCC }, // 103.202.232.0 - 103.202.235.255 { 0x67caec00, 0x67cb27ff, REGISTRY_APNIC }, // 103.202.236.0 - 103.203.39.255 { 0x67cb2800, 0x67cb2bff, REGISTRY_RIPENCC }, // 103.203.40.0 - 103.203.43.255 { 0x67cb2c00, 0x67cb53ff, REGISTRY_APNIC }, // 103.203.44.0 - 103.203.83.255 { 0x67cb5400, 0x67cb57ff, REGISTRY_RIPENCC }, // 103.203.84.0 - 103.203.87.255 { 0x67cb5800, 0x67cb93ff, REGISTRY_APNIC }, // 103.203.88.0 - 103.203.147.255 { 0x67cb9800, 0x67cbb3ff, REGISTRY_APNIC }, // 103.203.152.0 - 103.203.179.255 { 0x67cbb400, 0x67cbb7ff, REGISTRY_RIPENCC }, // 103.203.180.0 - 103.203.183.255 { 0x67cbb800, 0x67cbe7ff, REGISTRY_APNIC }, // 103.203.184.0 - 103.203.231.255 { 0x67cbf800, 0x67cc27ff, REGISTRY_APNIC }, // 103.203.248.0 - 103.204.39.255 { 0x67cc3000, 0x67cc3bff, REGISTRY_APNIC }, // 103.204.48.0 - 103.204.59.255 { 0x67cc4000, 0x67cc7bff, REGISTRY_APNIC }, // 103.204.64.0 - 103.204.123.255 { 0x67cc7c00, 0x67cc7fff, REGISTRY_RIPENCC }, // 103.204.124.0 - 103.204.127.255 { 0x67cc8000, 0x67cc83ff, REGISTRY_ARIN }, // 103.204.128.0 - 103.204.131.255 { 0x67cc8400, 0x67cccbff, REGISTRY_APNIC }, // 103.204.132.0 - 103.204.203.255 { 0x67cccc00, 0x67cccfff, REGISTRY_RIPENCC }, // 103.204.204.0 - 103.204.207.255 { 0x67ccd000, 0x67ccd3ff, REGISTRY_APNIC }, // 103.204.208.0 - 103.204.211.255 { 0x67ccd400, 0x67ccd7ff, REGISTRY_RIPENCC }, // 103.204.212.0 - 103.204.215.255 { 0x67ccd800, 0x67cd17ff, REGISTRY_APNIC }, // 103.204.216.0 - 103.205.23.255 { 0x67cd1800, 0x67cd1bff, REGISTRY_RIPENCC }, // 103.205.24.0 - 103.205.27.255 { 0x67cd1c00, 0x67cd1fff, REGISTRY_APNIC }, // 103.205.28.0 - 103.205.31.255 { 0x67cd2400, 0x67cd53ff, REGISTRY_APNIC }, // 103.205.36.0 - 103.205.83.255 { 0x67cd5400, 0x67cd57ff, REGISTRY_RIPENCC }, // 103.205.84.0 - 103.205.87.255 { 0x67cd5800, 0x67ce23ff, REGISTRY_APNIC }, // 103.205.88.0 - 103.206.35.255 { 0x67ce2400, 0x67ce27ff, REGISTRY_RIPENCC }, // 103.206.36.0 - 103.206.39.255 { 0x67ce2800, 0x67ce53ff, REGISTRY_APNIC }, // 103.206.40.0 - 103.206.83.255 { 0x67ce5400, 0x67ce57ff, REGISTRY_ARIN }, // 103.206.84.0 - 103.206.87.255 { 0x67ce5800, 0x67ce6bff, REGISTRY_APNIC }, // 103.206.88.0 - 103.206.107.255 { 0x67ce6c00, 0x67ce6fff, REGISTRY_RIPENCC }, // 103.206.108.0 - 103.206.111.255 { 0x67ce7000, 0x67ce9eff, REGISTRY_APNIC }, // 103.206.112.0 - 103.206.158.255 { 0x67cea000, 0x67cec3ff, REGISTRY_APNIC }, // 103.206.160.0 - 103.206.195.255 { 0x67cec800, 0x67cee7ff, REGISTRY_APNIC }, // 103.206.200.0 - 103.206.231.255 { 0x67cee800, 0x67ceebff, REGISTRY_RIPENCC }, // 103.206.232.0 - 103.206.235.255 { 0x67ceec00, 0x67cf2bff, REGISTRY_APNIC }, // 103.206.236.0 - 103.207.43.255 { 0x67cf2c00, 0x67cf2fff, REGISTRY_ARIN }, // 103.207.44.0 - 103.207.47.255 { 0x67cf3000, 0x67cf6fff, REGISTRY_APNIC }, // 103.207.48.0 - 103.207.111.255 { 0x67cf7400, 0x67cf97ff, REGISTRY_APNIC }, // 103.207.116.0 - 103.207.151.255 { 0x67cf9800, 0x67cf99ff, REGISTRY_RIPENCC }, // 103.207.152.0 - 103.207.153.255 { 0x67cf9a00, 0x67cf9fff, REGISTRY_APNIC }, // 103.207.154.0 - 103.207.159.255 { 0x67cfa000, 0x67cfa3ff, REGISTRY_RIPENCC }, // 103.207.160.0 - 103.207.163.255 { 0x67cfa400, 0x67d167ff, REGISTRY_APNIC }, // 103.207.164.0 - 103.209.103.255 { 0x67d16c00, 0x67d1cbff, REGISTRY_APNIC }, // 103.209.108.0 - 103.209.203.255 { 0x67d1cc00, 0x67d1cfff, REGISTRY_RIPENCC }, // 103.209.204.0 - 103.209.207.255 { 0x67d1d000, 0x67d33fff, REGISTRY_APNIC }, // 103.209.208.0 - 103.211.63.255 { 0x67d34400, 0x67d3b7ff, REGISTRY_APNIC }, // 103.211.68.0 - 103.211.183.255 { 0x67d3b800, 0x67d3b9ff, REGISTRY_RIPENCC }, // 103.211.184.0 - 103.211.185.255 { 0x67d3ba00, 0x67d3c7ff, REGISTRY_APNIC }, // 103.211.186.0 - 103.211.199.255 { 0x67d3d000, 0x67d43bff, REGISTRY_APNIC }, // 103.211.208.0 - 103.212.59.255 { 0x67d44000, 0x67d44fff, REGISTRY_APNIC }, // 103.212.64.0 - 103.212.79.255 { 0x67d45000, 0x67d452ff, REGISTRY_RIPENCC }, // 103.212.80.0 - 103.212.82.255 { 0x67d45300, 0x67d453ff, REGISTRY_LACNIC }, // 103.212.83.0 - 103.212.83.255 { 0x67d45400, 0x67d467ff, REGISTRY_APNIC }, // 103.212.84.0 - 103.212.103.255 { 0x67d46c00, 0x67d507ff, REGISTRY_APNIC }, // 103.212.108.0 - 103.213.7.255 { 0x67d51000, 0x67d5d7ff, REGISTRY_APNIC }, // 103.213.16.0 - 103.213.215.255 { 0x67d5e000, 0x67d5f7ff, REGISTRY_APNIC }, // 103.213.224.0 - 103.213.247.255 { 0x67d5f800, 0x67d5fbff, REGISTRY_RIPENCC }, // 103.213.248.0 - 103.213.251.255 { 0x67d5fc00, 0x67d62bff, REGISTRY_APNIC }, // 103.213.252.0 - 103.214.43.255 { 0x67d62c00, 0x67d62fff, REGISTRY_RIPENCC }, // 103.214.44.0 - 103.214.47.255 { 0x67d63000, 0x67d703ff, REGISTRY_APNIC }, // 103.214.48.0 - 103.215.3.255 { 0x67d70400, 0x67d707ff, REGISTRY_RIPENCC }, // 103.215.4.0 - 103.215.7.255 { 0x67d70800, 0x67d70dff, REGISTRY_APNIC }, // 103.215.8.0 - 103.215.13.255 { 0x67d70f00, 0x67d767ff, REGISTRY_APNIC }, // 103.215.15.0 - 103.215.103.255 { 0x67d76c00, 0x67d7baff, REGISTRY_APNIC }, // 103.215.108.0 - 103.215.186.255 { 0x67d7bc00, 0x67d7d7ff, REGISTRY_APNIC }, // 103.215.188.0 - 103.215.215.255 { 0x67d7d800, 0x67d7dfff, REGISTRY_RIPENCC }, // 103.215.216.0 - 103.215.223.255 { 0x67d7e000, 0x67d7ffff, REGISTRY_APNIC }, // 103.215.224.0 - 103.215.255.255 { 0x67d80000, 0x67d803ff, REGISTRY_ARIN }, // 103.216.0.0 - 103.216.3.255 { 0x67d80400, 0x67d83bff, REGISTRY_APNIC }, // 103.216.4.0 - 103.216.59.255 { 0x67d83c00, 0x67d83fff, REGISTRY_RIPENCC }, // 103.216.60.0 - 103.216.63.255 { 0x67d84000, 0x67d867ff, REGISTRY_APNIC }, // 103.216.64.0 - 103.216.103.255 { 0x67d86c00, 0x67d89bff, REGISTRY_APNIC }, // 103.216.108.0 - 103.216.155.255 { 0x67d8a000, 0x67d8b7ff, REGISTRY_APNIC }, // 103.216.160.0 - 103.216.183.255 { 0x67d8b800, 0x67d8bbff, REGISTRY_RIPENCC }, // 103.216.184.0 - 103.216.187.255 { 0x67d8bc00, 0x67d93fff, REGISTRY_APNIC }, // 103.216.188.0 - 103.217.63.255 { 0x67d94800, 0x67d967ff, REGISTRY_APNIC }, // 103.217.72.0 - 103.217.103.255 { 0x67d96800, 0x67d969ff, REGISTRY_ARIN }, // 103.217.104.0 - 103.217.105.255 { 0x67d96a00, 0x67d987ff, REGISTRY_APNIC }, // 103.217.106.0 - 103.217.135.255 { 0x67d98c00, 0x67d98fff, REGISTRY_APNIC }, // 103.217.140.0 - 103.217.143.255 { 0x67d99400, 0x67d9dfff, REGISTRY_APNIC }, // 103.217.148.0 - 103.217.223.255 { 0x67d9e400, 0x67da67ff, REGISTRY_APNIC }, // 103.217.228.0 - 103.218.103.255 { 0x67da6c00, 0x67da77ff, REGISTRY_APNIC }, // 103.218.108.0 - 103.218.119.255 { 0x67da7c00, 0x67da87ff, REGISTRY_APNIC }, // 103.218.124.0 - 103.218.135.255 { 0x67da8c00, 0x67daabff, REGISTRY_APNIC }, // 103.218.140.0 - 103.218.171.255 { 0x67dabc00, 0x67dadfff, REGISTRY_APNIC }, // 103.218.188.0 - 103.218.223.255 { 0x67dae400, 0x67db13ff, REGISTRY_APNIC }, // 103.218.228.0 - 103.219.19.255 { 0x67db1400, 0x67db17ff, REGISTRY_RIPENCC }, // 103.219.20.0 - 103.219.23.255 { 0x67db1800, 0x67db37ff, REGISTRY_APNIC }, // 103.219.24.0 - 103.219.55.255 { 0x67db3800, 0x67db3bff, REGISTRY_ARIN }, // 103.219.56.0 - 103.219.59.255 { 0x67db3c00, 0x67dba7ff, REGISTRY_APNIC }, // 103.219.60.0 - 103.219.167.255 { 0x67dba800, 0x67dbabff, REGISTRY_ARIN }, // 103.219.168.0 - 103.219.171.255 { 0x67dbac00, 0x67dbdfff, REGISTRY_APNIC }, // 103.219.172.0 - 103.219.223.255 { 0x67dbe400, 0x67dbe9ff, REGISTRY_APNIC }, // 103.219.228.0 - 103.219.233.255 { 0x67dbea00, 0x67dbebff, REGISTRY_LACNIC }, // 103.219.234.0 - 103.219.235.255 { 0x67dbec00, 0x67dbffff, REGISTRY_APNIC }, // 103.219.236.0 - 103.219.255.255 { 0x67dc0000, 0x67dc03ff, REGISTRY_RIPENCC }, // 103.220.0.0 - 103.220.3.255 { 0x67dc0400, 0x67dcd7ff, REGISTRY_APNIC }, // 103.220.4.0 - 103.220.215.255 { 0x67dcdc00, 0x67dce7ff, REGISTRY_APNIC }, // 103.220.220.0 - 103.220.231.255 { 0x67dcec00, 0x67dd3fff, REGISTRY_APNIC }, // 103.220.236.0 - 103.221.63.255 { 0x67dd4400, 0x67ddebff, REGISTRY_APNIC }, // 103.221.68.0 - 103.221.235.255 { 0x67ddf000, 0x67defbff, REGISTRY_APNIC }, // 103.221.240.0 - 103.222.251.255 { 0x67df0000, 0x67e00fff, REGISTRY_APNIC }, // 103.223.0.0 - 103.224.15.255 { 0x67e01400, 0x67e047ff, REGISTRY_APNIC }, // 103.224.20.0 - 103.224.71.255 { 0x67e05000, 0x67e05bff, REGISTRY_APNIC }, // 103.224.80.0 - 103.224.91.255 { 0x67e06000, 0x67e0a1ff, REGISTRY_APNIC }, // 103.224.96.0 - 103.224.161.255 { 0x67e0a300, 0x67e0abff, REGISTRY_APNIC }, // 103.224.163.0 - 103.224.171.255 { 0x67e0b000, 0x67e0d5ff, REGISTRY_APNIC }, // 103.224.176.0 - 103.224.213.255 { 0x67e0d800, 0x67e10fff, REGISTRY_APNIC }, // 103.224.216.0 - 103.225.15.255 { 0x67e11400, 0x67e11bff, REGISTRY_APNIC }, // 103.225.20.0 - 103.225.27.255 { 0x67e12000, 0x67e143ff, REGISTRY_APNIC }, // 103.225.32.0 - 103.225.67.255 { 0x67e14800, 0x67e14bff, REGISTRY_RIPENCC }, // 103.225.72.0 - 103.225.75.255 { 0x67e14c00, 0x67e14dff, REGISTRY_APNIC }, // 103.225.76.0 - 103.225.77.255 { 0x67e15000, 0x67e173ff, REGISTRY_APNIC }, // 103.225.80.0 - 103.225.115.255 { 0x67e17800, 0x67e17fff, REGISTRY_APNIC }, // 103.225.120.0 - 103.225.127.255 { 0x67e18000, 0x67e183ff, REGISTRY_RIPENCC }, // 103.225.128.0 - 103.225.131.255 { 0x67e18400, 0x67e1c7ff, REGISTRY_APNIC }, // 103.225.132.0 - 103.225.199.255 { 0x67e1c800, 0x67e1cbff, REGISTRY_RIPENCC }, // 103.225.200.0 - 103.225.203.255 { 0x67e1cc00, 0x67e1d7ff, REGISTRY_APNIC }, // 103.225.204.0 - 103.225.215.255 { 0x67e1dc00, 0x67e1fbff, REGISTRY_APNIC }, // 103.225.220.0 - 103.225.251.255 { 0x67e20000, 0x67e217ff, REGISTRY_APNIC }, // 103.226.0.0 - 103.226.23.255 { 0x67e21c00, 0x67e273ff, REGISTRY_APNIC }, // 103.226.28.0 - 103.226.115.255 { 0x67e27800, 0x67e2bfff, REGISTRY_APNIC }, // 103.226.120.0 - 103.226.191.255 { 0x67e2c000, 0x67e2c3ff, REGISTRY_RIPENCC }, // 103.226.192.0 - 103.226.195.255 { 0x67e2c400, 0x67e303ff, REGISTRY_APNIC }, // 103.226.196.0 - 103.227.3.255 { 0x67e30800, 0x67e317ff, REGISTRY_APNIC }, // 103.227.8.0 - 103.227.23.255 { 0x67e31c00, 0x67e353ff, REGISTRY_APNIC }, // 103.227.28.0 - 103.227.83.255 { 0x67e35400, 0x67e357ff, REGISTRY_RIPENCC }, // 103.227.84.0 - 103.227.87.255 { 0x67e35800, 0x67e35bff, REGISTRY_APNIC }, // 103.227.88.0 - 103.227.91.255 { 0x67e36000, 0x67e367ff, REGISTRY_APNIC }, // 103.227.96.0 - 103.227.103.255 { 0x67e36c00, 0x67e3b7ff, REGISTRY_APNIC }, // 103.227.108.0 - 103.227.183.255 { 0x67e3bc00, 0x67e3f7ff, REGISTRY_APNIC }, // 103.227.188.0 - 103.227.247.255 { 0x67e3fc00, 0x67e407ff, REGISTRY_APNIC }, // 103.227.252.0 - 103.228.7.255 { 0x67e40c00, 0x67e423ff, REGISTRY_APNIC }, // 103.228.12.0 - 103.228.35.255 { 0x67e42800, 0x67e447ff, REGISTRY_APNIC }, // 103.228.40.0 - 103.228.71.255 { 0x67e44c00, 0x67e453ff, REGISTRY_APNIC }, // 103.228.76.0 - 103.228.83.255 { 0x67e45400, 0x67e457ff, REGISTRY_ARIN }, // 103.228.84.0 - 103.228.87.255 { 0x67e45800, 0x67e45fff, REGISTRY_APNIC }, // 103.228.88.0 - 103.228.95.255 { 0x67e46000, 0x67e463ff, REGISTRY_ARIN }, // 103.228.96.0 - 103.228.99.255 { 0x67e46400, 0x67e47bff, REGISTRY_APNIC }, // 103.228.100.0 - 103.228.123.255 { 0x67e48000, 0x67e483ff, REGISTRY_RIPENCC }, // 103.228.128.0 - 103.228.131.255 { 0x67e48400, 0x67e51bff, REGISTRY_APNIC }, // 103.228.132.0 - 103.229.27.255 { 0x67e51c00, 0x67e51fff, REGISTRY_RIPENCC }, // 103.229.28.0 - 103.229.31.255 { 0x67e52000, 0x67e523ff, REGISTRY_APNIC }, // 103.229.32.0 - 103.229.35.255 { 0x67e52400, 0x67e527ff, REGISTRY_RIPENCC }, // 103.229.36.0 - 103.229.39.255 { 0x67e52800, 0x67e533ff, REGISTRY_APNIC }, // 103.229.40.0 - 103.229.51.255 { 0x67e53800, 0x67e54fff, REGISTRY_APNIC }, // 103.229.56.0 - 103.229.79.255 { 0x67e55000, 0x67e551ff, REGISTRY_RIPENCC }, // 103.229.80.0 - 103.229.81.255 { 0x67e55200, 0x67e557ff, REGISTRY_APNIC }, // 103.229.82.0 - 103.229.87.255 { 0x67e55c00, 0x67e56bff, REGISTRY_APNIC }, // 103.229.92.0 - 103.229.107.255 { 0x67e57000, 0x67e5a7ff, REGISTRY_APNIC }, // 103.229.112.0 - 103.229.167.255 { 0x67e5a800, 0x67e5abff, REGISTRY_RIPENCC }, // 103.229.168.0 - 103.229.171.255 { 0x67e5ac00, 0x67e5bbff, REGISTRY_APNIC }, // 103.229.172.0 - 103.229.187.255 { 0x67e5c000, 0x67e5e7ff, REGISTRY_APNIC }, // 103.229.192.0 - 103.229.231.255 { 0x67e5ec00, 0x67e5fbff, REGISTRY_APNIC }, // 103.229.236.0 - 103.229.251.255 { 0x67e60000, 0x67e603ff, REGISTRY_APNIC }, // 103.230.0.0 - 103.230.3.255 { 0x67e60400, 0x67e607ff, REGISTRY_ARIN }, // 103.230.4.0 - 103.230.7.255 { 0x67e60800, 0x67e627ff, REGISTRY_APNIC }, // 103.230.8.0 - 103.230.39.255 { 0x67e62c00, 0x67e65bff, REGISTRY_APNIC }, // 103.230.44.0 - 103.230.91.255 { 0x67e66000, 0x67e66bff, REGISTRY_APNIC }, // 103.230.96.0 - 103.230.107.255 { 0x67e67000, 0x67e67fff, REGISTRY_APNIC }, // 103.230.112.0 - 103.230.127.255 { 0x67e68400, 0x67e6afff, REGISTRY_APNIC }, // 103.230.132.0 - 103.230.175.255 { 0x67e6b400, 0x67e6f3ff, REGISTRY_APNIC }, // 103.230.180.0 - 103.230.243.255 { 0x67e6f800, 0x67e721ff, REGISTRY_APNIC }, // 103.230.248.0 - 103.231.33.255 { 0x67e72400, 0x67e767ff, REGISTRY_APNIC }, // 103.231.36.0 - 103.231.103.255 { 0x67e76800, 0x67e76bff, REGISTRY_RIPENCC }, // 103.231.104.0 - 103.231.107.255 { 0x67e76c00, 0x67e787ff, REGISTRY_APNIC }, // 103.231.108.0 - 103.231.135.255 { 0x67e78800, 0x67e78bff, REGISTRY_RIPENCC }, // 103.231.136.0 - 103.231.139.255 { 0x67e78c00, 0x67e78fff, REGISTRY_APNIC }, // 103.231.140.0 - 103.231.143.255 { 0x67e79400, 0x67e7a3ff, REGISTRY_APNIC }, // 103.231.148.0 - 103.231.163.255 { 0x67e7a800, 0x67e7ecff, REGISTRY_APNIC }, // 103.231.168.0 - 103.231.236.255 { 0x67e7ee00, 0x67e813ff, REGISTRY_APNIC }, // 103.231.238.0 - 103.232.19.255 { 0x67e81800, 0x67e8a3ff, REGISTRY_APNIC }, // 103.232.24.0 - 103.232.163.255 { 0x67e8a800, 0x67e8abff, REGISTRY_APNIC }, // 103.232.168.0 - 103.232.171.255 { 0x67e8ac00, 0x67e8afff, REGISTRY_RIPENCC }, // 103.232.172.0 - 103.232.175.255 { 0x67e8b000, 0x67e8cdff, REGISTRY_APNIC }, // 103.232.176.0 - 103.232.205.255 { 0x67e8ce00, 0x67e8cfff, REGISTRY_ARIN }, // 103.232.206.0 - 103.232.207.255 { 0x67e8d000, 0x67e9afff, REGISTRY_APNIC }, // 103.232.208.0 - 103.233.175.255 { 0x67e9b400, 0x67ea0cff, REGISTRY_APNIC }, // 103.233.180.0 - 103.234.12.255 { 0x67ea0e00, 0x67ea0fff, REGISTRY_APNIC }, // 103.234.14.0 - 103.234.15.255 { 0x67ea1400, 0x67ea1bff, REGISTRY_APNIC }, // 103.234.20.0 - 103.234.27.255 { 0x67ea2400, 0x67ea7bff, REGISTRY_APNIC }, // 103.234.36.0 - 103.234.123.255 { 0x67ea8000, 0x67ea8fff, REGISTRY_APNIC }, // 103.234.128.0 - 103.234.143.255 { 0x67ea9400, 0x67ea97ff, REGISTRY_APNIC }, // 103.234.148.0 - 103.234.151.255 { 0x67ea9c00, 0x67eabbff, REGISTRY_APNIC }, // 103.234.156.0 - 103.234.187.255 { 0x67eac000, 0x67eae7ff, REGISTRY_APNIC }, // 103.234.192.0 - 103.234.231.255 { 0x67eae800, 0x67eaebff, REGISTRY_RIPENCC }, // 103.234.232.0 - 103.234.235.255 { 0x67eaec00, 0x67eb9fff, REGISTRY_APNIC }, // 103.234.236.0 - 103.235.159.255 { 0x67eba400, 0x67ebb3ff, REGISTRY_APNIC }, // 103.235.164.0 - 103.235.179.255 { 0x67ebb800, 0x67ec67ff, REGISTRY_APNIC }, // 103.235.184.0 - 103.236.103.255 { 0x67ec6c00, 0x67ec73ff, REGISTRY_APNIC }, // 103.236.108.0 - 103.236.115.255 { 0x67ec7600, 0x67ec7fff, REGISTRY_APNIC }, // 103.236.118.0 - 103.236.127.255 { 0x67ec8400, 0x67ec8bff, REGISTRY_APNIC }, // 103.236.132.0 - 103.236.139.255 { 0x67ec9000, 0x67ecabff, REGISTRY_APNIC }, // 103.236.144.0 - 103.236.171.255 { 0x67ecb000, 0x67ecd3ff, REGISTRY_APNIC }, // 103.236.176.0 - 103.236.211.255 { 0x67ecd800, 0x67ecdfff, REGISTRY_APNIC }, // 103.236.216.0 - 103.236.223.255 { 0x67ece400, 0x67ed2bff, REGISTRY_APNIC }, // 103.236.228.0 - 103.237.43.255 { 0x67ed2c00, 0x67ed2fff, REGISTRY_RIPENCC }, // 103.237.44.0 - 103.237.47.255 { 0x67ed3400, 0x67ed51ff, REGISTRY_APNIC }, // 103.237.52.0 - 103.237.81.255 { 0x67ed5800, 0x67ed5bff, REGISTRY_APNIC }, // 103.237.88.0 - 103.237.91.255 { 0x67ed6000, 0x67ee3fff, REGISTRY_APNIC }, // 103.237.96.0 - 103.238.63.255 { 0x67ee4400, 0x67ee6fff, REGISTRY_APNIC }, // 103.238.68.0 - 103.238.111.255 { 0x67ee7400, 0x67ee97ff, REGISTRY_APNIC }, // 103.238.116.0 - 103.238.151.255 { 0x67ee9c00, 0x67eed7ff, REGISTRY_APNIC }, // 103.238.156.0 - 103.238.215.255 { 0x67eedc00, 0x67eee7ff, REGISTRY_APNIC }, // 103.238.220.0 - 103.238.231.255 { 0x67eeec00, 0x67ef03ff, REGISTRY_APNIC }, // 103.238.236.0 - 103.239.3.255 { 0x67ef0800, 0x67ef0bff, REGISTRY_APNIC }, // 103.239.8.0 - 103.239.11.255 { 0x67ef1000, 0x67ef13ff, REGISTRY_APNIC }, // 103.239.16.0 - 103.239.19.255 { 0x67ef1800, 0x67ef27ff, REGISTRY_APNIC }, // 103.239.24.0 - 103.239.39.255 { 0x67ef2c00, 0x67ef3fff, REGISTRY_APNIC }, // 103.239.44.0 - 103.239.63.255 { 0x67ef4400, 0x67ef4fff, REGISTRY_APNIC }, // 103.239.68.0 - 103.239.79.255 { 0x67ef5400, 0x67ef57ff, REGISTRY_APNIC }, // 103.239.84.0 - 103.239.87.255 { 0x67ef5c00, 0x67ef5fff, REGISTRY_APNIC }, // 103.239.92.0 - 103.239.95.255 { 0x67ef6000, 0x67ef63ff, REGISTRY_RIPENCC }, // 103.239.96.0 - 103.239.99.255 { 0x67ef6400, 0x67ef68ff, REGISTRY_APNIC }, // 103.239.100.0 - 103.239.104.255 { 0x67ef6a00, 0x67ef93ff, REGISTRY_APNIC }, // 103.239.106.0 - 103.239.147.255 { 0x67ef9800, 0x67efabff, REGISTRY_APNIC }, // 103.239.152.0 - 103.239.171.255 { 0x67efb000, 0x67efffff, REGISTRY_APNIC }, // 103.239.176.0 - 103.239.255.255 { 0x67f00800, 0x67f017ff, REGISTRY_APNIC }, // 103.240.8.0 - 103.240.23.255 { 0x67f01c00, 0x67f027ff, REGISTRY_APNIC }, // 103.240.28.0 - 103.240.39.255 { 0x67f02c00, 0x67f037ff, REGISTRY_APNIC }, // 103.240.44.0 - 103.240.55.255 { 0x67f03c00, 0x67f043ff, REGISTRY_APNIC }, // 103.240.60.0 - 103.240.67.255 { 0x67f04800, 0x67f0b3ff, REGISTRY_APNIC }, // 103.240.72.0 - 103.240.179.255 { 0x67f0b400, 0x67f0b7ff, REGISTRY_RIPENCC }, // 103.240.180.0 - 103.240.183.255 { 0x67f0b800, 0x67f0c7ff, REGISTRY_APNIC }, // 103.240.184.0 - 103.240.199.255 { 0x67f0cc00, 0x67f127ff, REGISTRY_APNIC }, // 103.240.204.0 - 103.241.39.255 { 0x67f12c00, 0x67f13fff, REGISTRY_APNIC }, // 103.241.44.0 - 103.241.63.255 { 0x67f14000, 0x67f143ff, REGISTRY_RIPENCC }, // 103.241.64.0 - 103.241.67.255 { 0x67f14400, 0x67f16bff, REGISTRY_APNIC }, // 103.241.68.0 - 103.241.107.255 { 0x67f16c00, 0x67f16fff, REGISTRY_RIPENCC }, // 103.241.108.0 - 103.241.111.255 { 0x67f17000, 0x67f1abff, REGISTRY_APNIC }, // 103.241.112.0 - 103.241.171.255 { 0x67f1b200, 0x67f1bfff, REGISTRY_APNIC }, // 103.241.178.0 - 103.241.191.255 { 0x67f1c800, 0x67f207ff, REGISTRY_APNIC }, // 103.241.200.0 - 103.242.7.255 { 0x67f20c00, 0x67f23bff, REGISTRY_APNIC }, // 103.242.12.0 - 103.242.59.255 { 0x67f23c00, 0x67f23fff, REGISTRY_RIPENCC }, // 103.242.60.0 - 103.242.63.255 { 0x67f24000, 0x67f24bff, REGISTRY_APNIC }, // 103.242.64.0 - 103.242.75.255 { 0x67f25400, 0x67f263ff, REGISTRY_APNIC }, // 103.242.84.0 - 103.242.99.255 { 0x67f26800, 0x67f2bfff, REGISTRY_APNIC }, // 103.242.104.0 - 103.242.191.255 { 0x67f2c000, 0x67f2c3ff, REGISTRY_ARIN }, // 103.242.192.0 - 103.242.195.255 { 0x67f2c400, 0x67f307ff, REGISTRY_APNIC }, // 103.242.196.0 - 103.243.7.255 { 0x67f30c00, 0x67f363ff, REGISTRY_APNIC }, // 103.243.12.0 - 103.243.99.255 { 0x67f36800, 0x67f37bff, REGISTRY_APNIC }, // 103.243.104.0 - 103.243.123.255 { 0x67f37c00, 0x67f37fff, REGISTRY_RIPENCC }, // 103.243.124.0 - 103.243.127.255 { 0x67f38000, 0x67f3a7ff, REGISTRY_APNIC }, // 103.243.128.0 - 103.243.167.255 { 0x67f3ac00, 0x67f3cbff, REGISTRY_APNIC }, // 103.243.172.0 - 103.243.203.255 { 0x67f3cc00, 0x67f3cfff, REGISTRY_RIPENCC }, // 103.243.204.0 - 103.243.207.255 { 0x67f3d000, 0x67f3e3ff, REGISTRY_APNIC }, // 103.243.208.0 - 103.243.227.255 { 0x67f3ec00, 0x67f413ff, REGISTRY_APNIC }, // 103.243.236.0 - 103.244.19.255 { 0x67f41c00, 0x67f45bff, REGISTRY_APNIC }, // 103.244.28.0 - 103.244.91.255 { 0x67f46000, 0x67f467ff, REGISTRY_APNIC }, // 103.244.96.0 - 103.244.103.255 { 0x67f46c00, 0x67f4c1ff, REGISTRY_APNIC }, // 103.244.108.0 - 103.244.193.255 { 0x67f4c400, 0x67f4d7ff, REGISTRY_APNIC }, // 103.244.196.0 - 103.244.215.255 { 0x67f4dc00, 0x67f4dfff, REGISTRY_APNIC }, // 103.244.220.0 - 103.244.223.255 { 0x67f4e400, 0x67f4ebff, REGISTRY_APNIC }, // 103.244.228.0 - 103.244.235.255 { 0x67f4ec00, 0x67f4efff, REGISTRY_RIPENCC }, // 103.244.236.0 - 103.244.239.255 { 0x67f4f000, 0x67f517ff, REGISTRY_APNIC }, // 103.244.240.0 - 103.245.23.255 { 0x67f51c00, 0x67f523ff, REGISTRY_APNIC }, // 103.245.28.0 - 103.245.35.255 { 0x67f52800, 0x67f537ff, REGISTRY_APNIC }, // 103.245.40.0 - 103.245.55.255 { 0x67f53c00, 0x67f590ff, REGISTRY_APNIC }, // 103.245.60.0 - 103.245.144.255 { 0x67f59200, 0x67f59bff, REGISTRY_APNIC }, // 103.245.146.0 - 103.245.155.255 { 0x67f5a000, 0x67f5a7ff, REGISTRY_APNIC }, // 103.245.160.0 - 103.245.167.255 { 0x67f5ac00, 0x67f5ebff, REGISTRY_APNIC }, // 103.245.172.0 - 103.245.235.255 { 0x67f5f000, 0x67f63bff, REGISTRY_APNIC }, // 103.245.240.0 - 103.246.59.255 { 0x67f64400, 0x67f647ff, REGISTRY_APNIC }, // 103.246.68.0 - 103.246.71.255 { 0x67f64c00, 0x67f668ff, REGISTRY_APNIC }, // 103.246.76.0 - 103.246.104.255 { 0x67f66a00, 0x67f68fff, REGISTRY_APNIC }, // 103.246.106.0 - 103.246.143.255 { 0x67f69000, 0x67f693ff, REGISTRY_RIPENCC }, // 103.246.144.0 - 103.246.147.255 { 0x67f69400, 0x67f6faff, REGISTRY_APNIC }, // 103.246.148.0 - 103.246.250.255 { 0x67f6fb00, 0x67f6fbff, REGISTRY_ARIN }, // 103.246.251.0 - 103.246.251.255 { 0x67f6fc00, 0x67f71bff, REGISTRY_APNIC }, // 103.246.252.0 - 103.247.27.255 { 0x67f72000, 0x67f740ff, REGISTRY_APNIC }, // 103.247.32.0 - 103.247.64.255 { 0x67f74200, 0x67f74fff, REGISTRY_APNIC }, // 103.247.66.0 - 103.247.79.255 { 0x67f75400, 0x67f7bcff, REGISTRY_APNIC }, // 103.247.84.0 - 103.247.188.255 { 0x67f7bf00, 0x67f7efff, REGISTRY_APNIC }, // 103.247.191.0 - 103.247.239.255 { 0x67f7f400, 0x67f807ff, REGISTRY_APNIC }, // 103.247.244.0 - 103.248.7.255 { 0x67f80c00, 0x67f817ff, REGISTRY_APNIC }, // 103.248.12.0 - 103.248.23.255 { 0x67f81800, 0x67f818ff, REGISTRY_RIPENCC }, // 103.248.24.0 - 103.248.24.255 { 0x67f81900, 0x67f823ff, REGISTRY_APNIC }, // 103.248.25.0 - 103.248.35.255 { 0x67f82400, 0x67f827ff, REGISTRY_RIPENCC }, // 103.248.36.0 - 103.248.39.255 { 0x67f82800, 0x67f82fff, REGISTRY_APNIC }, // 103.248.40.0 - 103.248.47.255 { 0x67f83400, 0x67f88bff, REGISTRY_APNIC }, // 103.248.52.0 - 103.248.139.255 { 0x67f89000, 0x67f8b7ff, REGISTRY_APNIC }, // 103.248.144.0 - 103.248.183.255 { 0x67f8b800, 0x67f8bbff, REGISTRY_RIPENCC }, // 103.248.184.0 - 103.248.187.255 { 0x67f8bc00, 0x67f8c8ff, REGISTRY_APNIC }, // 103.248.188.0 - 103.248.200.255 { 0x67f8ca00, 0x67f8dbff, REGISTRY_APNIC }, // 103.248.202.0 - 103.248.219.255 { 0x67f8e000, 0x67f8e3ff, REGISTRY_APNIC }, // 103.248.224.0 - 103.248.227.255 { 0x67f8e800, 0x67f8efff, REGISTRY_APNIC }, // 103.248.232.0 - 103.248.239.255 { 0x67f8f400, 0x67f8f7ff, REGISTRY_RIPENCC }, // 103.248.244.0 - 103.248.247.255 { 0x67f8f800, 0x67f96fff, REGISTRY_APNIC }, // 103.248.248.0 - 103.249.111.255 { 0x67f97800, 0x67f99bff, REGISTRY_APNIC }, // 103.249.120.0 - 103.249.155.255 { 0x67f9a000, 0x67f9c3ff, REGISTRY_APNIC }, // 103.249.160.0 - 103.249.195.255 { 0x67f9cc00, 0x67f9d7ff, REGISTRY_APNIC }, // 103.249.204.0 - 103.249.215.255 { 0x67f9dc00, 0x67f9dfff, REGISTRY_APNIC }, // 103.249.220.0 - 103.249.223.255 { 0x67f9e300, 0x67fa0bff, REGISTRY_APNIC }, // 103.249.227.0 - 103.250.11.255 { 0x67fa1000, 0x67fa4bff, REGISTRY_APNIC }, // 103.250.16.0 - 103.250.75.255 { 0x67fa5000, 0x67fa5fff, REGISTRY_APNIC }, // 103.250.80.0 - 103.250.95.255 { 0x67fa6800, 0x67fa6bff, REGISTRY_APNIC }, // 103.250.104.0 - 103.250.107.255 { 0x67fa7000, 0x67fa77ff, REGISTRY_APNIC }, // 103.250.112.0 - 103.250.119.255 { 0x67fa7c00, 0x67fa7fff, REGISTRY_APNIC }, // 103.250.124.0 - 103.250.127.255 { 0x67fa8400, 0x67facfff, REGISTRY_APNIC }, // 103.250.132.0 - 103.250.207.255 { 0x67fad400, 0x67fb07ff, REGISTRY_APNIC }, // 103.250.212.0 - 103.251.7.255 { 0x67fb0c00, 0x67fb18ff, REGISTRY_APNIC }, // 103.251.12.0 - 103.251.24.255 { 0x67fb1900, 0x67fb1bff, REGISTRY_ARIN }, // 103.251.25.0 - 103.251.27.255 { 0x67fb1c00, 0x67fb2dff, REGISTRY_APNIC }, // 103.251.28.0 - 103.251.45.255 { 0x67fb2f00, 0x67fb43ff, REGISTRY_APNIC }, // 103.251.47.0 - 103.251.67.255 { 0x67fb4800, 0x67fba3ff, REGISTRY_APNIC }, // 103.251.72.0 - 103.251.163.255 { 0x67fba400, 0x67fba7ff, REGISTRY_RIPENCC }, // 103.251.164.0 - 103.251.167.255 { 0x67fba800, 0x67fbafff, REGISTRY_APNIC }, // 103.251.168.0 - 103.251.175.255 { 0x67fbb400, 0x67fbfbff, REGISTRY_APNIC }, // 103.251.180.0 - 103.251.251.255 { 0x67fc0000, 0x67fc47ff, REGISTRY_APNIC }, // 103.252.0.0 - 103.252.71.255 { 0x67fc4c00, 0x67fc57ff, REGISTRY_APNIC }, // 103.252.76.0 - 103.252.87.255 { 0x67fc5800, 0x67fc5bff, REGISTRY_RIPENCC }, // 103.252.88.0 - 103.252.91.255 { 0x67fc6000, 0x67fc77ff, REGISTRY_APNIC }, // 103.252.96.0 - 103.252.119.255 { 0x67fc8000, 0x67fc87ff, REGISTRY_APNIC }, // 103.252.128.0 - 103.252.135.255 { 0x67fc8c00, 0x67fcb3ff, REGISTRY_APNIC }, // 103.252.140.0 - 103.252.179.255 { 0x67fcb800, 0x67fcbfff, REGISTRY_APNIC }, // 103.252.184.0 - 103.252.191.255 { 0x67fcc400, 0x67fcefff, REGISTRY_APNIC }, // 103.252.196.0 - 103.252.239.255 { 0x67fcf400, 0x67fd0fff, REGISTRY_APNIC }, // 103.252.244.0 - 103.253.15.255 { 0x67fd1800, 0x67fd5fff, REGISTRY_APNIC }, // 103.253.24.0 - 103.253.95.255 { 0x67fd6000, 0x67fd63ff, REGISTRY_ARIN }, // 103.253.96.0 - 103.253.99.255 { 0x67fd6800, 0x67fdafff, REGISTRY_APNIC }, // 103.253.104.0 - 103.253.175.255 { 0x67fdb400, 0x67fde3ff, REGISTRY_APNIC }, // 103.253.180.0 - 103.253.227.255 { 0x67fde800, 0x67fdf3ff, REGISTRY_APNIC }, // 103.253.232.0 - 103.253.243.255 { 0x67fdf800, 0x67fed3ff, REGISTRY_APNIC }, // 103.253.248.0 - 103.254.211.255 { 0x67fed800, 0x67feffff, REGISTRY_APNIC }, // 103.254.216.0 - 103.254.255.255 { 0x67ff0400, 0x67ff27ff, REGISTRY_APNIC }, // 103.255.4.0 - 103.255.39.255 { 0x67ff2c00, 0x67ff3fff, REGISTRY_APNIC }, // 103.255.44.0 - 103.255.63.255 { 0x67ff4400, 0x67ff5fff, REGISTRY_APNIC }, // 103.255.68.0 - 103.255.95.255 { 0x67ff6400, 0x67ff6bff, REGISTRY_APNIC }, // 103.255.100.0 - 103.255.107.255 { 0x67ff7000, 0x67ff83ff, REGISTRY_APNIC }, // 103.255.112.0 - 103.255.131.255 { 0x67ff8800, 0x67ff9fff, REGISTRY_APNIC }, // 103.255.136.0 - 103.255.159.255 { 0x67ffa800, 0x67ffbfff, REGISTRY_APNIC }, // 103.255.168.0 - 103.255.191.255 { 0x67ffc800, 0x67ffcbff, REGISTRY_APNIC }, // 103.255.200.0 - 103.255.203.255 { 0x67ffd400, 0x67ffdbff, REGISTRY_APNIC }, // 103.255.212.0 - 103.255.219.255 { 0x67ffe000, 0x67ffffff, REGISTRY_APNIC }, // 103.255.224.0 - 103.255.255.255 { 0x68000000, 0x68251fff, REGISTRY_ARIN }, // 104.0.0.0 - 104.37.31.255 { 0x68252000, 0x682527ff, REGISTRY_RIPENCC }, // 104.37.32.0 - 104.37.39.255 { 0x68252800, 0x6881adff, REGISTRY_ARIN }, // 104.37.40.0 - 104.129.173.255 { 0x6881ae00, 0x6881afff, REGISTRY_RIPENCC }, // 104.129.174.0 - 104.129.175.255 { 0x6881b000, 0x688fdfff, REGISTRY_ARIN }, // 104.129.176.0 - 104.143.223.255 { 0x688fe000, 0x688fffff, REGISTRY_RIPENCC }, // 104.143.224.0 - 104.143.255.255 { 0x68900000, 0x6896ffff, REGISTRY_ARIN }, // 104.144.0.0 - 104.150.255.255 { 0x68970000, 0x68977fff, REGISTRY_RIPENCC }, // 104.151.0.0 - 104.151.127.255 { 0x68978000, 0x689953ff, REGISTRY_ARIN }, // 104.151.128.0 - 104.153.83.255 { 0x68995400, 0x689957ff, REGISTRY_RIPENCC }, // 104.153.84.0 - 104.153.87.255 { 0x68995800, 0x689fffff, REGISTRY_ARIN }, // 104.153.88.0 - 104.159.255.255 { 0x68a00000, 0x68a01fff, REGISTRY_RIPENCC }, // 104.160.0.0 - 104.160.31.255 { 0x68a02000, 0x68a17fff, REGISTRY_ARIN }, // 104.160.32.0 - 104.161.127.255 { 0x68a18000, 0x68a1ffff, REGISTRY_APNIC }, // 104.161.128.0 - 104.161.255.255 { 0x68a20000, 0x68a67fff, REGISTRY_ARIN }, // 104.162.0.0 - 104.166.127.255 { 0x68a68000, 0x68a6bfff, REGISTRY_RIPENCC }, // 104.166.128.0 - 104.166.191.255 { 0x68a6c000, 0x68a6ffff, REGISTRY_ARIN }, // 104.166.192.0 - 104.166.255.255 { 0x68a70000, 0x68a71fff, REGISTRY_RIPENCC }, // 104.167.0.0 - 104.167.31.255 { 0x68a72000, 0x68c029ff, REGISTRY_ARIN }, // 104.167.32.0 - 104.192.41.255 { 0x68c02a00, 0x68c02aff, REGISTRY_RIPENCC }, // 104.192.42.0 - 104.192.42.255 { 0x68c02b00, 0x68c86fff, REGISTRY_ARIN }, // 104.192.43.0 - 104.200.111.255 { 0x68c87000, 0x68c87fff, REGISTRY_APNIC }, // 104.200.112.0 - 104.200.127.255 { 0x68c88000, 0x68cf1fff, REGISTRY_ARIN }, // 104.200.128.0 - 104.207.31.255 { 0x68cf2000, 0x68cf3fff, REGISTRY_RIPENCC }, // 104.207.32.0 - 104.207.63.255 { 0x68cf4000, 0x68de9fff, REGISTRY_ARIN }, // 104.207.64.0 - 104.222.159.255 { 0x68dea000, 0x68debfff, REGISTRY_RIPENCC }, // 104.222.160.0 - 104.222.191.255 { 0x68dec000, 0x68e1fcff, REGISTRY_ARIN }, // 104.222.192.0 - 104.225.252.255 { 0x68e1fd00, 0x68e1fdff, REGISTRY_RIPENCC }, // 104.225.253.0 - 104.225.253.255 { 0x68e1fe00, 0x68e823ff, REGISTRY_ARIN }, // 104.225.254.0 - 104.232.35.255 { 0x68e82400, 0x68e825ff, REGISTRY_RIPENCC }, // 104.232.36.0 - 104.232.37.255 { 0x68e82600, 0x68e8ffff, REGISTRY_ARIN }, // 104.232.38.0 - 104.232.255.255 { 0x68e90000, 0x68e97fff, REGISTRY_RIPENCC }, // 104.233.0.0 - 104.233.127.255 { 0x68e98000, 0x68edffff, REGISTRY_ARIN }, // 104.233.128.0 - 104.237.255.255 { 0x68ee0000, 0x68ee1fff, REGISTRY_RIPENCC }, // 104.238.0.0 - 104.238.31.255 { 0x68ee2000, 0x68eeffff, REGISTRY_ARIN }, // 104.238.32.0 - 104.238.255.255 { 0x68ef0000, 0x68ef7fff, REGISTRY_RIPENCC }, // 104.239.0.0 - 104.239.127.255 { 0x68ef8000, 0x68f3d7ff, REGISTRY_ARIN }, // 104.239.128.0 - 104.243.215.255 { 0x68f3d800, 0x68f3dbff, REGISTRY_RIPENCC }, // 104.243.216.0 - 104.243.219.255 { 0x68f3dc00, 0x68f407ff, REGISTRY_ARIN }, // 104.243.220.0 - 104.244.7.255 { 0x68f40800, 0x68f40bff, REGISTRY_RIPENCC }, // 104.244.8.0 - 104.244.11.255 { 0x68f40c00, 0x68f79fff, REGISTRY_ARIN }, // 104.244.12.0 - 104.247.159.255 { 0x68f7a000, 0x68f7bfff, REGISTRY_RIPENCC }, // 104.247.160.0 - 104.247.191.255 { 0x68f7c000, 0x68f8ffff, REGISTRY_ARIN }, // 104.247.192.0 - 104.248.255.255 { 0x68f90000, 0x68f93fff, REGISTRY_RIPENCC }, // 104.249.0.0 - 104.249.63.255 { 0x68f94000, 0x68fa1fff, REGISTRY_ARIN }, // 104.249.64.0 - 104.250.31.255 { 0x68fa2000, 0x68fa3fff, REGISTRY_APNIC }, // 104.250.32.0 - 104.250.63.255 { 0x68fa4000, 0x68fb8fff, REGISTRY_ARIN }, // 104.250.64.0 - 104.251.143.255 { 0x68fb9000, 0x68fb9fff, REGISTRY_APNIC }, // 104.251.144.0 - 104.251.159.255 { 0x68fba000, 0x68ff23ff, REGISTRY_ARIN }, // 104.251.160.0 - 104.255.35.255 { 0x68ff2400, 0x68ff27ff, REGISTRY_APNIC }, // 104.255.36.0 - 104.255.39.255 { 0x68ff2800, 0x68ff7fff, REGISTRY_ARIN }, // 104.255.40.0 - 104.255.127.255 { 0x68ff8000, 0x68ff87ff, REGISTRY_RIPENCC }, // 104.255.128.0 - 104.255.135.255 { 0x68ff8800, 0x68ffffff, REGISTRY_ARIN }, // 104.255.136.0 - 104.255.255.255 { 0x69000000, 0x69b27fff, REGISTRY_AFRINIC }, // 105.0.0.0 - 105.178.127.255 { 0x69b30000, 0x69b31fff, REGISTRY_AFRINIC }, // 105.179.0.0 - 105.179.31.255 { 0x69b40000, 0x69ffffff, REGISTRY_AFRINIC }, // 105.180.0.0 - 105.255.255.255 { 0x6a000000, 0x6a003dff, REGISTRY_APNIC }, // 106.0.0.0 - 106.0.61.255 { 0x6a003e00, 0x6a003fff, REGISTRY_ARIN }, // 106.0.62.0 - 106.0.63.255 { 0x6a004000, 0x6affffff, REGISTRY_APNIC }, // 106.0.64.0 - 106.255.255.255 { 0x6b000000, 0x6b963fff, REGISTRY_ARIN }, // 107.0.0.0 - 107.150.63.255 { 0x6b964000, 0x6b965fff, REGISTRY_RIPENCC }, // 107.150.64.0 - 107.150.95.255 { 0x6b966000, 0x6b96a1ff, REGISTRY_ARIN }, // 107.150.96.0 - 107.150.161.255 { 0x6b96a200, 0x6b96b3ff, REGISTRY_RIPENCC }, // 107.150.162.0 - 107.150.179.255 { 0x6b96b400, 0x6b98ffff, REGISTRY_ARIN }, // 107.150.180.0 - 107.152.255.255 { 0x6b990000, 0x6b99ffff, REGISTRY_APNIC }, // 107.153.0.0 - 107.153.255.255 { 0x6b9a0000, 0x6ba19fff, REGISTRY_ARIN }, // 107.154.0.0 - 107.161.159.255 { 0x6ba1a000, 0x6ba1afff, REGISTRY_RIPENCC }, // 107.161.160.0 - 107.161.175.255 { 0x6ba1b000, 0x6bb57fff, REGISTRY_ARIN }, // 107.161.176.0 - 107.181.127.255 { 0x6bb58000, 0x6bb59fff, REGISTRY_RIPENCC }, // 107.181.128.0 - 107.181.159.255 { 0x6bb5a000, 0x6bb6ffff, REGISTRY_ARIN }, // 107.181.160.0 - 107.182.255.255 { 0x6bb70000, 0x6bb7ffff, REGISTRY_RIPENCC }, // 107.183.0.0 - 107.183.255.255 { 0x6bb80000, 0x6bbf43ff, REGISTRY_ARIN }, // 107.184.0.0 - 107.191.67.255 { 0x6bbf4400, 0x6bbf44ff, REGISTRY_RIPENCC }, // 107.191.68.0 - 107.191.68.255 { 0x6bbf4500, 0x6cb33fff, REGISTRY_ARIN }, // 107.191.69.0 - 108.179.63.255 { 0x6cb34000, 0x6cb37fff, REGISTRY_RIPENCC }, // 108.179.64.0 - 108.179.127.255 { 0x6cb38000, 0x6cffffff, REGISTRY_ARIN }, // 108.179.128.0 - 108.255.255.255 { 0x6d000000, 0x6d5dffff, REGISTRY_RIPENCC }, // 109.0.0.0 - 109.93.255.255 { 0x6d5e0000, 0x6d5e9fff, REGISTRY_RIPENCC }, // 109.94.0.0 - 109.94.159.255 { 0x6d5ea000, 0x6d5eafff, REGISTRY_RIPENCC }, // 109.94.160.0 - 109.94.175.255 { 0x6d5eb000, 0x6d5ecfff, REGISTRY_RIPENCC }, // 109.94.176.0 - 109.94.207.255 { 0x6d5ed000, 0x6d5edfff, REGISTRY_RIPENCC }, // 109.94.208.0 - 109.94.223.255 { 0x6d5ee000, 0x6d5f37ff, REGISTRY_RIPENCC }, // 109.94.224.0 - 109.95.55.255 { 0x6d5f3800, 0x6d5f3bff, REGISTRY_RIPENCC }, // 109.95.56.0 - 109.95.59.255 { 0x6d5f3c00, 0x6d5f77ff, REGISTRY_RIPENCC }, // 109.95.60.0 - 109.95.119.255 { 0x6d5f7800, 0x6d5f7fff, REGISTRY_RIPENCC }, // 109.95.120.0 - 109.95.127.255 { 0x6d5f8000, 0x6d5f9fff, REGISTRY_RIPENCC }, // 109.95.128.0 - 109.95.159.255 { 0x6d5fa000, 0x6d5fa7ff, REGISTRY_RIPENCC }, // 109.95.160.0 - 109.95.167.255 { 0x6d5fa800, 0x6d5fffff, REGISTRY_RIPENCC }, // 109.95.168.0 - 109.95.255.255 { 0x6d600000, 0x6d69d7ff, REGISTRY_RIPENCC }, // 109.96.0.0 - 109.105.215.255 { 0x6d69d800, 0x6d69dfff, REGISTRY_ARIN }, // 109.105.216.0 - 109.105.223.255 { 0x6d69e000, 0x6dc3ffff, REGISTRY_RIPENCC }, // 109.105.224.0 - 109.195.255.255 { 0x6dc40000, 0x6dc40fff, REGISTRY_RIPENCC }, // 109.196.0.0 - 109.196.15.255 { 0x6dc41000, 0x6dc42fff, REGISTRY_RIPENCC }, // 109.196.16.0 - 109.196.47.255 { 0x6dc43000, 0x6dc47fff, REGISTRY_RIPENCC }, // 109.196.48.0 - 109.196.127.255 { 0x6dc48000, 0x6dc48fff, REGISTRY_RIPENCC }, // 109.196.128.0 - 109.196.143.255 { 0x6dc49000, 0x6dc49fff, REGISTRY_RIPENCC }, // 109.196.144.0 - 109.196.159.255 { 0x6dc4a000, 0x6dc4afff, REGISTRY_RIPENCC }, // 109.196.160.0 - 109.196.175.255 { 0x6dc4b000, 0x6dc5a4ff, REGISTRY_RIPENCC }, // 109.196.176.0 - 109.197.164.255 { 0x6dc5a600, 0x6dc5cfff, REGISTRY_RIPENCC }, // 109.197.166.0 - 109.197.207.255 { 0x6dc5d000, 0x6dc5d7ff, REGISTRY_RIPENCC }, // 109.197.208.0 - 109.197.215.255 { 0x6dc5d800, 0x6dc5e7ff, REGISTRY_RIPENCC }, // 109.197.216.0 - 109.197.231.255 { 0x6dc5e800, 0x6dc5efff, REGISTRY_RIPENCC }, // 109.197.232.0 - 109.197.239.255 { 0x6dc5f000, 0x6dc5ffff, REGISTRY_RIPENCC }, // 109.197.240.0 - 109.197.255.255 { 0x6dc60000, 0x6dce1fff, REGISTRY_RIPENCC }, // 109.198.0.0 - 109.206.31.255 { 0x6dce2000, 0x6dce3fff, REGISTRY_RIPENCC }, // 109.206.32.0 - 109.206.63.255 { 0x6dce4000, 0x6dce5fff, REGISTRY_RIPENCC }, // 109.206.64.0 - 109.206.95.255 { 0x6dce6000, 0x6dcedfff, REGISTRY_RIPENCC }, // 109.206.96.0 - 109.206.223.255 { 0x6dcee000, 0x6dceffff, REGISTRY_RIPENCC }, // 109.206.224.0 - 109.206.255.255 { 0x6dcf0000, 0x6dcf2fff, REGISTRY_RIPENCC }, // 109.207.0.0 - 109.207.47.255 { 0x6dcf3000, 0x6dcf4fff, REGISTRY_RIPENCC }, // 109.207.48.0 - 109.207.79.255 { 0x6dcf5000, 0x6dcf7fff, REGISTRY_RIPENCC }, // 109.207.80.0 - 109.207.127.255 { 0x6dcf8000, 0x6dcf8fff, REGISTRY_RIPENCC }, // 109.207.128.0 - 109.207.143.255 { 0x6dcf9000, 0x6dcfcfff, REGISTRY_RIPENCC }, // 109.207.144.0 - 109.207.207.255 { 0x6dcfd000, 0x6dcfdfff, REGISTRY_RIPENCC }, // 109.207.208.0 - 109.207.223.255 { 0x6dcfe000, 0x6dcfffff, REGISTRY_RIPENCC }, // 109.207.224.0 - 109.207.255.255 { 0x6dd00000, 0x6de4ffff, REGISTRY_RIPENCC }, // 109.208.0.0 - 109.228.255.255 { 0x6de50000, 0x6de5ffff, REGISTRY_RIPENCC }, // 109.229.0.0 - 109.229.255.255 { 0x6de60000, 0x6de73fff, REGISTRY_RIPENCC }, // 109.230.0.0 - 109.231.63.255 { 0x6de74000, 0x6de77fff, REGISTRY_ARIN }, // 109.231.64.0 - 109.231.127.255 { 0x6de78000, 0x6de91fff, REGISTRY_RIPENCC }, // 109.231.128.0 - 109.233.31.255 { 0x6de92000, 0x6de927ff, REGISTRY_ARIN }, // 109.233.32.0 - 109.233.39.255 { 0x6de92800, 0x6debffff, REGISTRY_RIPENCC }, // 109.233.40.0 - 109.235.255.255 { 0x6dec0000, 0x6dec0fff, REGISTRY_APNIC }, // 109.236.0.0 - 109.236.15.255 { 0x6dec1000, 0x6df3ffff, REGISTRY_RIPENCC }, // 109.236.16.0 - 109.243.255.255 { 0x6df40000, 0x6df4ffff, REGISTRY_APNIC }, // 109.244.0.0 - 109.244.255.255 { 0x6df50000, 0x6dffffff, REGISTRY_RIPENCC }, // 109.245.0.0 - 109.255.255.255 { 0x6e000000, 0x6e2c05ff, REGISTRY_APNIC }, // 110.0.0.0 - 110.44.5.255 { 0x6e2c0600, 0x6e2c06ff, REGISTRY_ARIN }, // 110.44.6.0 - 110.44.6.255 { 0x6e2c0700, 0x6e2c9fff, REGISTRY_APNIC }, // 110.44.7.0 - 110.44.159.255 { 0x6e2ca800, 0x6e5d07ff, REGISTRY_APNIC }, // 110.44.168.0 - 110.93.7.255 { 0x6e5d0800, 0x6e5d0bff, REGISTRY_RIPENCC }, // 110.93.8.0 - 110.93.11.255 { 0x6e5d0c00, 0x6eac17ff, REGISTRY_APNIC }, // 110.93.12.0 - 110.172.23.255 { 0x6eac2000, 0x6eee1fff, REGISTRY_APNIC }, // 110.172.32.0 - 110.238.31.255 { 0x6eee2000, 0x6eee3fff, REGISTRY_RIPENCC }, // 110.238.32.0 - 110.238.63.255 { 0x6eee4000, 0x6eeebfff, REGISTRY_APNIC }, // 110.238.64.0 - 110.238.191.255 { 0x6eeec000, 0x6eeedfff, REGISTRY_RIPENCC }, // 110.238.192.0 - 110.238.223.255 { 0x6eeee000, 0x6eef2fff, REGISTRY_APNIC }, // 110.238.224.0 - 110.239.47.255 { 0x6eef3000, 0x6eef3fff, REGISTRY_ARIN }, // 110.239.48.0 - 110.239.63.255 { 0x6eef4000, 0x6eef9fff, REGISTRY_APNIC }, // 110.239.64.0 - 110.239.159.255 { 0x6eefa000, 0x6eefafff, REGISTRY_ARIN }, // 110.239.160.0 - 110.239.175.255 { 0x6eefb000, 0x6eefbfff, REGISTRY_APNIC }, // 110.239.176.0 - 110.239.191.255 { 0x6eefc000, 0x6eefcfff, REGISTRY_ARIN }, // 110.239.192.0 - 110.239.207.255 { 0x6eefd000, 0x6eefdfff, REGISTRY_RIPENCC }, // 110.239.208.0 - 110.239.223.255 { 0x6eefe000, 0x711483ff, REGISTRY_APNIC }, // 110.239.224.0 - 113.20.131.255 { 0x71148800, 0x71149bff, REGISTRY_APNIC }, // 113.20.136.0 - 113.20.155.255 { 0x71149c00, 0x71149fff, REGISTRY_RIPENCC }, // 113.20.156.0 - 113.20.159.255 { 0x7114a000, 0x711e93ff, REGISTRY_APNIC }, // 113.20.160.0 - 113.30.147.255 { 0x711e9400, 0x711e9bff, REGISTRY_RIPENCC }, // 113.30.148.0 - 113.30.155.255 { 0x711e9c00, 0x711e9fff, REGISTRY_APNIC }, // 113.30.156.0 - 113.30.159.255 { 0x711ea000, 0x711ea7ff, REGISTRY_ARIN }, // 113.30.160.0 - 113.30.167.255 { 0x711ea800, 0x711eb3ff, REGISTRY_APNIC }, // 113.30.168.0 - 113.30.179.255 { 0x711eb400, 0x711eb7ff, REGISTRY_RIPENCC }, // 113.30.180.0 - 113.30.183.255 { 0x711eb800, 0x711ebbff, REGISTRY_APNIC }, // 113.30.184.0 - 113.30.187.255 { 0x711ebc00, 0x711ebfff, REGISTRY_RIPENCC }, // 113.30.188.0 - 113.30.191.255 { 0x711ec000, 0x711ec7ff, REGISTRY_RIPENCC }, // 113.30.192.0 - 113.30.199.255 { 0x711ec800, 0x711ecfff, REGISTRY_APNIC }, // 113.30.200.0 - 113.30.207.255 { 0x711ed000, 0x711ed7ff, REGISTRY_ARIN }, // 113.30.208.0 - 113.30.215.255 { 0x711ed800, 0x711edbff, REGISTRY_APNIC }, // 113.30.216.0 - 113.30.219.255 { 0x711edc00, 0x711edfff, REGISTRY_RIPENCC }, // 113.30.220.0 - 113.30.223.255 { 0x711ee000, 0x711eefff, REGISTRY_APNIC }, // 113.30.224.0 - 113.30.239.255 { 0x711ef000, 0x711effff, REGISTRY_ARIN }, // 113.30.240.0 - 113.30.255.255 { 0x711f0000, 0x7134e7ff, REGISTRY_APNIC }, // 113.31.0.0 - 113.52.231.255 { 0x7134f000, 0x71bfffff, REGISTRY_APNIC }, // 113.52.240.0 - 113.191.255.255 { 0x71c04000, 0x71caffff, REGISTRY_APNIC }, // 113.192.64.0 - 113.202.255.255 { 0x71cb0000, 0x71cbbfff, REGISTRY_RIPENCC }, // 113.203.0.0 - 113.203.191.255 { 0x71cbc000, 0x71d43fff, REGISTRY_APNIC }, // 113.203.192.0 - 113.212.63.255 { 0x71d44000, 0x71d443ff, REGISTRY_RIPENCC }, // 113.212.64.0 - 113.212.67.255 { 0x71d44400, 0x7237ffff, REGISTRY_APNIC }, // 113.212.68.0 - 114.55.255.255 { 0x72380000, 0x723bffff, REGISTRY_ARIN }, // 114.56.0.0 - 114.59.255.255 { 0x723c0000, 0x732a2dff, REGISTRY_APNIC }, // 114.60.0.0 - 115.42.45.255 { 0x732a2e00, 0x732a2fff, REGISTRY_ARIN }, // 115.42.46.0 - 115.42.47.255 { 0x732a3000, 0x7354a7ff, REGISTRY_APNIC }, // 115.42.48.0 - 115.84.167.255 { 0x7354b000, 0x737c1fff, REGISTRY_APNIC }, // 115.84.176.0 - 115.124.31.255 { 0x737c2000, 0x737c23ff, REGISTRY_RIPENCC }, // 115.124.32.0 - 115.124.35.255 { 0x737c2400, 0x73a67fff, REGISTRY_APNIC }, // 115.124.36.0 - 115.166.127.255 { 0x73a68000, 0x73a683ff, REGISTRY_RIPENCC }, // 115.166.128.0 - 115.166.131.255 { 0x73a68400, 0x73bb0fff, REGISTRY_APNIC }, // 115.166.132.0 - 115.187.15.255 { 0x73bb2000, 0x74320fff, REGISTRY_APNIC }, // 115.187.32.0 - 116.50.15.255 { 0x74321000, 0x743217ff, REGISTRY_RIPENCC }, // 116.50.16.0 - 116.50.23.255 { 0x74321800, 0x7442e7ff, REGISTRY_APNIC }, // 116.50.24.0 - 116.66.231.255 { 0x7442f000, 0x74c7c7ff, REGISTRY_APNIC }, // 116.66.240.0 - 116.199.199.255 { 0x74c7d000, 0x74c9ffff, REGISTRY_APNIC }, // 116.199.208.0 - 116.201.255.255 { 0x74ca0000, 0x74cbffff, REGISTRY_RIPENCC }, // 116.202.0.0 - 116.203.255.255 { 0x74cc0000, 0x74ccc3ff, REGISTRY_APNIC }, // 116.204.0.0 - 116.204.195.255 { 0x74ccc400, 0x74ccc7ff, REGISTRY_RIPENCC }, // 116.204.196.0 - 116.204.199.255 { 0x74ccc800, 0x74ccfbff, REGISTRY_APNIC }, // 116.204.200.0 - 116.204.251.255 { 0x74ccfc00, 0x74ccffff, REGISTRY_RIPENCC }, // 116.204.252.0 - 116.204.255.255 { 0x74cd0000, 0x74ce5bff, REGISTRY_APNIC }, // 116.205.0.0 - 116.206.91.255 { 0x74ce5c00, 0x74ce5fff, REGISTRY_RIPENCC }, // 116.206.92.0 - 116.206.95.255 { 0x74ce6000, 0x74ce63ff, REGISTRY_ARIN }, // 116.206.96.0 - 116.206.99.255 { 0x74ce6400, 0x74ce93ff, REGISTRY_APNIC }, // 116.206.100.0 - 116.206.147.255 { 0x74ce9400, 0x74ce94ff, REGISTRY_ARIN }, // 116.206.148.0 - 116.206.148.255 { 0x74ce9500, 0x74ce95ff, REGISTRY_APNIC }, // 116.206.149.0 - 116.206.149.255 { 0x74ce9600, 0x74ce96ff, REGISTRY_ARIN }, // 116.206.150.0 - 116.206.150.255 { 0x74ce9700, 0x74cea7ff, REGISTRY_APNIC }, // 116.206.151.0 - 116.206.167.255 { 0x74cea800, 0x74ceabff, REGISTRY_RIPENCC }, // 116.206.168.0 - 116.206.171.255 { 0x74ceac00, 0x74d4baff, REGISTRY_APNIC }, // 116.206.172.0 - 116.212.186.255 { 0x74d4bc00, 0x74d4bfff, REGISTRY_RIPENCC }, // 116.212.188.0 - 116.212.191.255 { 0x74d4c000, 0x7537fdff, REGISTRY_APNIC }, // 116.212.192.0 - 117.55.253.255 { 0x75380000, 0x75676fff, REGISTRY_APNIC }, // 117.56.0.0 - 117.103.111.255 { 0x75677200, 0x756775ff, REGISTRY_APNIC }, // 117.103.114.0 - 117.103.117.255 { 0x75677800, 0x761ab3ff, REGISTRY_APNIC }, // 117.103.120.0 - 118.26.179.255 { 0x761abc00, 0x7643dfff, REGISTRY_APNIC }, // 118.26.188.0 - 118.67.223.255 { 0x7643e000, 0x7643ffff, REGISTRY_RIPENCC }, // 118.67.224.0 - 118.67.255.255 { 0x76440000, 0x766bb3ff, REGISTRY_APNIC }, // 118.68.0.0 - 118.107.179.255 { 0x766bb400, 0x766bb7ff, REGISTRY_RIPENCC }, // 118.107.180.0 - 118.107.183.255 { 0x766bb800, 0x770c0fff, REGISTRY_APNIC }, // 118.107.184.0 - 119.12.15.255 { 0x770c1000, 0x770c1fff, REGISTRY_RIPENCC }, // 119.12.16.0 - 119.12.31.255 { 0x770c2000, 0x770c2fff, REGISTRY_RIPENCC }, // 119.12.32.0 - 119.12.47.255 { 0x770c3000, 0x770c4fff, REGISTRY_ARIN }, // 119.12.48.0 - 119.12.79.255 { 0x770c5000, 0x770c7fff, REGISTRY_APNIC }, // 119.12.80.0 - 119.12.127.255 { 0x770c8000, 0x770c8fff, REGISTRY_RIPENCC }, // 119.12.128.0 - 119.12.143.255 { 0x770c9000, 0x770cafff, REGISTRY_APNIC }, // 119.12.144.0 - 119.12.175.255 { 0x770cb000, 0x770ccfff, REGISTRY_RIPENCC }, // 119.12.176.0 - 119.12.207.255 { 0x770cd000, 0x770cdfff, REGISTRY_APNIC }, // 119.12.208.0 - 119.12.223.255 { 0x770ce000, 0x770cffff, REGISTRY_RIPENCC }, // 119.12.224.0 - 119.12.255.255 { 0x770d0000, 0x770dbfff, REGISTRY_APNIC }, // 119.13.0.0 - 119.13.191.255 { 0x770dc000, 0x770defff, REGISTRY_RIPENCC }, // 119.13.192.0 - 119.13.239.255 { 0x770df000, 0x770f97ff, REGISTRY_APNIC }, // 119.13.240.0 - 119.15.151.255 { 0x770f9a00, 0x770f9bff, REGISTRY_APNIC }, // 119.15.154.0 - 119.15.155.255 { 0x770fa000, 0x773f02ff, REGISTRY_APNIC }, // 119.15.160.0 - 119.63.2.255 { 0x773f1000, 0x77a0cfff, REGISTRY_APNIC }, // 119.63.16.0 - 119.160.207.255 { 0x77a0d500, 0x77a0d5ff, REGISTRY_APNIC }, // 119.160.213.0 - 119.160.213.255 { 0x77a0d800, 0x77a0dbff, REGISTRY_APNIC }, // 119.160.216.0 - 119.160.219.255 { 0x77a0de00, 0x77a0deff, REGISTRY_APNIC }, // 119.160.222.0 - 119.160.222.255 { 0x77a0e000, 0x77eb6fff, REGISTRY_APNIC }, // 119.160.224.0 - 119.235.111.255 { 0x77eb7000, 0x77eb7fff, REGISTRY_RIPENCC }, // 119.235.112.0 - 119.235.127.255 { 0x77eb8000, 0x77fc6bff, REGISTRY_APNIC }, // 119.235.128.0 - 119.252.107.255 { 0x77fc6c00, 0x77fc6fff, REGISTRY_ARIN }, // 119.252.108.0 - 119.252.111.255 { 0x77fc7000, 0x790037ff, REGISTRY_APNIC }, // 119.252.112.0 - 121.0.55.255 { 0x79004000, 0x792e47ff, REGISTRY_APNIC }, // 121.0.64.0 - 121.46.71.255 { 0x792e4c00, 0x792e7bff, REGISTRY_APNIC }, // 121.46.76.0 - 121.46.123.255 { 0x792e7c00, 0x792e7fff, REGISTRY_RIPENCC }, // 121.46.124.0 - 121.46.127.255 { 0x792e8000, 0x7932a7ff, REGISTRY_APNIC }, // 121.46.128.0 - 121.50.167.255 { 0x7932ac00, 0x795affff, REGISTRY_APNIC }, // 121.50.172.0 - 121.90.255.255 { 0x795b0000, 0x795b0fff, REGISTRY_ARIN }, // 121.91.0.0 - 121.91.15.255 { 0x795b1000, 0x795b3fff, REGISTRY_APNIC }, // 121.91.16.0 - 121.91.63.255 { 0x795b4000, 0x795b4fff, REGISTRY_ARIN }, // 121.91.64.0 - 121.91.79.255 { 0x795b5000, 0x795b57ff, REGISTRY_RIPENCC }, // 121.91.80.0 - 121.91.87.255 { 0x795b5800, 0x795bafff, REGISTRY_APNIC }, // 121.91.88.0 - 121.91.175.255 { 0x795bb000, 0x795bbfff, REGISTRY_RIPENCC }, // 121.91.176.0 - 121.91.191.255 { 0x795bc000, 0x795bcfff, REGISTRY_APNIC }, // 121.91.192.0 - 121.91.207.255 { 0x795bd000, 0x795bffff, REGISTRY_ARIN }, // 121.91.208.0 - 121.91.255.255 { 0x795c0000, 0x797f20ff, REGISTRY_APNIC }, // 121.92.0.0 - 121.127.32.255 { 0x797f2100, 0x797f21ff, REGISTRY_RIPENCC }, // 121.127.33.0 - 121.127.33.255 { 0x797f2200, 0x797f27ff, REGISTRY_APNIC }, // 121.127.34.0 - 121.127.39.255 { 0x797f2800, 0x797f2fff, REGISTRY_RIPENCC }, // 121.127.40.0 - 121.127.47.255 { 0x797f3000, 0x797f3fff, REGISTRY_RIPENCC }, // 121.127.48.0 - 121.127.63.255 { 0x797f4000, 0x79c8d7ff, REGISTRY_APNIC }, // 121.127.64.0 - 121.200.215.255 { 0x79c8e000, 0x7a3207ff, REGISTRY_APNIC }, // 121.200.224.0 - 122.50.7.255 { 0x7a321000, 0x7a6673ff, REGISTRY_APNIC }, // 122.50.16.0 - 122.102.115.255 { 0x7a667400, 0x7a6677ff, REGISTRY_RIPENCC }, // 122.102.116.0 - 122.102.119.255 { 0x7a668000, 0x7b64e2ff, REGISTRY_APNIC }, // 122.102.128.0 - 123.100.226.255 { 0x7b64e300, 0x7b64e3ff, REGISTRY_RIPENCC }, // 123.100.227.0 - 123.100.227.255 { 0x7b64e400, 0x7b64e7ff, REGISTRY_APNIC }, // 123.100.228.0 - 123.100.231.255 { 0x7b64e800, 0x7b64e8ff, REGISTRY_ARIN }, // 123.100.232.0 - 123.100.232.255 { 0x7b64e900, 0x7bfd33ff, REGISTRY_APNIC }, // 123.100.233.0 - 123.253.51.255 { 0x7bfd3800, 0x7bfd43ff, REGISTRY_APNIC }, // 123.253.56.0 - 123.253.67.255 { 0x7bfd4800, 0x7bfd73ff, REGISTRY_APNIC }, // 123.253.72.0 - 123.253.115.255 { 0x7bfd7800, 0x7bfdb3ff, REGISTRY_APNIC }, // 123.253.120.0 - 123.253.179.255 { 0x7bfdb800, 0x7bfdd3ff, REGISTRY_APNIC }, // 123.253.184.0 - 123.253.211.255 { 0x7bfdd400, 0x7bfdd5ff, REGISTRY_RIPENCC }, // 123.253.212.0 - 123.253.213.255 { 0x7bfdd600, 0x7d3e47ff, REGISTRY_APNIC }, // 123.253.214.0 - 125.62.71.255 { 0x7d3e4800, 0x7d3e4bff, REGISTRY_RIPENCC }, // 125.62.72.0 - 125.62.75.255 { 0x7d3e4c00, 0x7dfd3fff, REGISTRY_APNIC }, // 125.62.76.0 - 125.253.63.255 { 0x7dfd4000, 0x7dfd5dff, REGISTRY_ARIN }, // 125.253.64.0 - 125.253.93.255 { 0x7dfd5e00, 0x7effffff, REGISTRY_APNIC }, // 125.253.94.0 - 126.255.255.255 { 0x80000000, 0x800067ff, REGISTRY_RIPENCC }, // 128.0.0.0 - 128.0.103.255 { 0x80006800, 0x80006fff, REGISTRY_RIPENCC }, // 128.0.104.0 - 128.0.111.255 { 0x80007000, 0x80007fff, REGISTRY_RIPENCC }, // 128.0.112.0 - 128.0.127.255 { 0x80008000, 0x80008fff, REGISTRY_RIPENCC }, // 128.0.128.0 - 128.0.143.255 { 0x80009000, 0x8000ffff, REGISTRY_RIPENCC }, // 128.0.144.0 - 128.0.255.255 { 0x80010000, 0x8006ffff, REGISTRY_ARIN }, // 128.1.0.0 - 128.6.255.255 { 0x80070000, 0x8007ffff, REGISTRY_RIPENCC }, // 128.7.0.0 - 128.7.255.255 { 0x80080000, 0x800fffff, REGISTRY_ARIN }, // 128.8.0.0 - 128.15.255.255 { 0x80100000, 0x8010ffff, REGISTRY_RIPENCC }, // 128.16.0.0 - 128.16.255.255 { 0x80110000, 0x8015ffff, REGISTRY_ARIN }, // 128.17.0.0 - 128.21.255.255 { 0x80160000, 0x8016ffff, REGISTRY_APNIC }, // 128.22.0.0 - 128.22.255.255 { 0x80170000, 0x801affff, REGISTRY_ARIN }, // 128.23.0.0 - 128.26.255.255 { 0x801b0000, 0x801cffff, REGISTRY_APNIC }, // 128.27.0.0 - 128.28.255.255 { 0x801d0000, 0x8026ffff, REGISTRY_ARIN }, // 128.29.0.0 - 128.38.255.255 { 0x80270000, 0x8029ffff, REGISTRY_RIPENCC }, // 128.39.0.0 - 128.41.255.255 { 0x802a0000, 0x802cffff, REGISTRY_ARIN }, // 128.42.0.0 - 128.44.255.255 { 0x802d0000, 0x802dffff, REGISTRY_RIPENCC }, // 128.45.0.0 - 128.45.255.255 { 0x802e0000, 0x8034ffff, REGISTRY_ARIN }, // 128.46.0.0 - 128.52.255.255 { 0x80350000, 0x8035ffff, REGISTRY_APNIC }, // 128.53.0.0 - 128.53.255.255 { 0x80360000, 0x8040ffff, REGISTRY_ARIN }, // 128.54.0.0 - 128.64.255.255 { 0x80410000, 0x804fffff, REGISTRY_RIPENCC }, // 128.65.0.0 - 128.79.255.255 { 0x80500000, 0x8054ffff, REGISTRY_ARIN }, // 128.80.0.0 - 128.84.255.255 { 0x80550000, 0x8055ffff, REGISTRY_RIPENCC }, // 128.85.0.0 - 128.85.255.255 { 0x80560000, 0x8057ffff, REGISTRY_RIPENCC }, // 128.86.0.0 - 128.87.255.255 { 0x80580000, 0x805cffff, REGISTRY_ARIN }, // 128.88.0.0 - 128.92.255.255 { 0x805d0000, 0x805dffff, REGISTRY_RIPENCC }, // 128.93.0.0 - 128.93.255.255 { 0x805e0000, 0x805effff, REGISTRY_APNIC }, // 128.94.0.0 - 128.94.255.255 { 0x805f0000, 0x8061ffff, REGISTRY_ARIN }, // 128.95.0.0 - 128.97.255.255 { 0x80620000, 0x8062ffff, REGISTRY_RIPENCC }, // 128.98.0.0 - 128.98.255.255 { 0x80630000, 0x8069ffff, REGISTRY_ARIN }, // 128.99.0.0 - 128.105.255.255 { 0x806a0000, 0x806affff, REGISTRY_APNIC }, // 128.106.0.0 - 128.106.255.255 { 0x806b0000, 0x806bffff, REGISTRY_ARIN }, // 128.107.0.0 - 128.107.255.255 { 0x806c0000, 0x806cffff, REGISTRY_APNIC }, // 128.108.0.0 - 128.108.255.255 { 0x806d0000, 0x80747fff, REGISTRY_ARIN }, // 128.109.0.0 - 128.116.127.255 { 0x80748000, 0x8074ffff, REGISTRY_RIPENCC }, // 128.116.128.0 - 128.116.255.255 { 0x80750000, 0x807bffff, REGISTRY_ARIN }, // 128.117.0.0 - 128.123.255.255 { 0x807c0000, 0x807cffff, REGISTRY_RIPENCC }, // 128.124.0.0 - 128.124.255.255 { 0x807d0000, 0x807effff, REGISTRY_ARIN }, // 128.125.0.0 - 128.126.255.255 { 0x807f0000, 0x807fffff, REGISTRY_RIPENCC }, // 128.127.0.0 - 128.127.255.255 { 0x80800000, 0x8081ffff, REGISTRY_ARIN }, // 128.128.0.0 - 128.129.255.255 { 0x80820000, 0x8083ffff, REGISTRY_RIPENCC }, // 128.130.0.0 - 128.131.255.255 { 0x80840000, 0x8085ffff, REGISTRY_ARIN }, // 128.132.0.0 - 128.133.255.255 { 0x80860000, 0x8086ffff, REGISTRY_APNIC }, // 128.134.0.0 - 128.134.255.255 { 0x80870000, 0x808affff, REGISTRY_ARIN }, // 128.135.0.0 - 128.138.255.255 { 0x808b0000, 0x808bffff, REGISTRY_RIPENCC }, // 128.139.0.0 - 128.139.255.255 { 0x808c0000, 0x808cffff, REGISTRY_RIPENCC }, // 128.140.0.0 - 128.140.255.255 { 0x808d0000, 0x808effff, REGISTRY_RIPENCC }, // 128.141.0.0 - 128.142.255.255 { 0x808f0000, 0x80a7ffff, REGISTRY_ARIN }, // 128.143.0.0 - 128.167.255.255 { 0x80a80000, 0x80a8ffff, REGISTRY_RIPENCC }, // 128.168.0.0 - 128.168.255.255 { 0x80a90000, 0x80afffff, REGISTRY_ARIN }, // 128.169.0.0 - 128.175.255.255 { 0x80b00000, 0x80b0ffff, REGISTRY_RIPENCC }, // 128.176.0.0 - 128.176.255.255 { 0x80b10000, 0x80b1ffff, REGISTRY_ARIN }, // 128.177.0.0 - 128.177.255.255 { 0x80b20000, 0x80b3ffff, REGISTRY_RIPENCC }, // 128.178.0.0 - 128.179.255.255 { 0x80b40000, 0x80b7ffff, REGISTRY_ARIN }, // 128.180.0.0 - 128.183.255.255 { 0x80b80000, 0x80b9ffff, REGISTRY_APNIC }, // 128.184.0.0 - 128.185.255.255 { 0x80ba0000, 0x80c6ffff, REGISTRY_ARIN }, // 128.186.0.0 - 128.198.255.255 { 0x80c70000, 0x80c7ffff, REGISTRY_RIPENCC }, // 128.199.0.0 - 128.199.255.255 { 0x80c80000, 0x80c8ffff, REGISTRY_ARIN }, // 128.200.0.0 - 128.200.255.255 { 0x80c90000, 0x80c903ff, REGISTRY_LACNIC }, // 128.201.0.0 - 128.201.3.255 { 0x80c90400, 0x80c907ff, REGISTRY_ARIN }, // 128.201.4.0 - 128.201.7.255 { 0x80c90800, 0x80c9ffff, REGISTRY_LACNIC }, // 128.201.8.0 - 128.201.255.255 { 0x80ca0000, 0x80cbffff, REGISTRY_ARIN }, // 128.202.0.0 - 128.203.255.255 { 0x80cc0000, 0x80ccffff, REGISTRY_RIPENCC }, // 128.204.0.0 - 128.204.255.255 { 0x80cd0000, 0x80d5ffff, REGISTRY_ARIN }, // 128.205.0.0 - 128.213.255.255 { 0x80d60000, 0x80d6ffff, REGISTRY_RIPENCC }, // 128.214.0.0 - 128.214.255.255 { 0x80d70000, 0x80e7ffff, REGISTRY_ARIN }, // 128.215.0.0 - 128.231.255.255 { 0x80e80000, 0x80e8ffff, REGISTRY_RIPENCC }, // 128.232.0.0 - 128.232.255.255 { 0x80e90000, 0x80e9ffff, REGISTRY_ARIN }, // 128.233.0.0 - 128.233.255.255 { 0x80ea0000, 0x80eaffff, REGISTRY_RIPENCC }, // 128.234.0.0 - 128.234.255.255 { 0x80eb0000, 0x80efffff, REGISTRY_ARIN }, // 128.235.0.0 - 128.239.255.255 { 0x80f00000, 0x80f0ffff, REGISTRY_RIPENCC }, // 128.240.0.0 - 128.240.255.255 { 0x80f10000, 0x80f2ffff, REGISTRY_ARIN }, // 128.241.0.0 - 128.242.255.255 { 0x80f30000, 0x80f3ffff, REGISTRY_RIPENCC }, // 128.243.0.0 - 128.243.255.255 { 0x80f40000, 0x80f5ffff, REGISTRY_ARIN }, // 128.244.0.0 - 128.245.255.255 { 0x80f60000, 0x80f6ffff, REGISTRY_RIPENCC }, // 128.246.0.0 - 128.246.255.255 { 0x80f70000, 0x80f9ffff, REGISTRY_ARIN }, // 128.247.0.0 - 128.249.255.255 { 0x80fa0000, 0x80faffff, REGISTRY_APNIC }, // 128.250.0.0 - 128.250.255.255 { 0x80fb0000, 0x80ffffff, REGISTRY_ARIN }, // 128.251.0.0 - 128.255.255.255 { 0x81000000, 0x8100ffff, REGISTRY_AFRINIC }, // 129.0.0.0 - 129.0.255.255 { 0x81010000, 0x810affff, REGISTRY_ARIN }, // 129.1.0.0 - 129.10.255.255 { 0x810b0000, 0x810dffff, REGISTRY_RIPENCC }, // 129.11.0.0 - 129.13.255.255 { 0x810e0000, 0x810fffff, REGISTRY_ARIN }, // 129.14.0.0 - 129.15.255.255 { 0x81100000, 0x8110ffff, REGISTRY_RIPENCC }, // 129.16.0.0 - 129.16.255.255 { 0x81110000, 0x8111ffff, REGISTRY_ARIN }, // 129.17.0.0 - 129.17.255.255 { 0x81120000, 0x8112ffff, REGISTRY_AFRINIC }, // 129.18.0.0 - 129.18.255.255 { 0x81130000, 0x8113ffff, REGISTRY_ARIN }, // 129.19.0.0 - 129.19.255.255 { 0x81140000, 0x8114ffff, REGISTRY_RIPENCC }, // 129.20.0.0 - 129.20.255.255 { 0x81150000, 0x8119ffff, REGISTRY_ARIN }, // 129.21.0.0 - 129.25.255.255 { 0x811a0000, 0x811bffff, REGISTRY_RIPENCC }, // 129.26.0.0 - 129.27.255.255 { 0x811c0000, 0x811cffff, REGISTRY_APNIC }, // 129.28.0.0 - 129.28.255.255 { 0x811d0000, 0x811effff, REGISTRY_ARIN }, // 129.29.0.0 - 129.30.255.255 { 0x811f0000, 0x811fffff, REGISTRY_RIPENCC }, // 129.31.0.0 - 129.31.255.255 { 0x81200000, 0x812cffff, REGISTRY_ARIN }, // 129.32.0.0 - 129.44.255.255 { 0x812d0000, 0x812dffff, REGISTRY_AFRINIC }, // 129.45.0.0 - 129.45.255.255 { 0x812e0000, 0x8137ffff, REGISTRY_ARIN }, // 129.46.0.0 - 129.55.255.255 { 0x81380000, 0x8138ffff, REGISTRY_AFRINIC }, // 129.56.0.0 - 129.56.255.255 { 0x81390000, 0x813bffff, REGISTRY_ARIN }, // 129.57.0.0 - 129.59.255.255 { 0x813c0000, 0x813cffff, REGISTRY_APNIC }, // 129.60.0.0 - 129.60.255.255 { 0x813d0000, 0x8142ffff, REGISTRY_ARIN }, // 129.61.0.0 - 129.66.255.255 { 0x81430000, 0x8143ffff, REGISTRY_RIPENCC }, // 129.67.0.0 - 129.67.255.255 { 0x81440000, 0x8144ffff, REGISTRY_ARIN }, // 129.68.0.0 - 129.68.255.255 { 0x81450000, 0x8146ffff, REGISTRY_RIPENCC }, // 129.69.0.0 - 129.70.255.255 { 0x81470000, 0x8148ffff, REGISTRY_ARIN }, // 129.71.0.0 - 129.72.255.255 { 0x81490000, 0x8149ffff, REGISTRY_RIPENCC }, // 129.73.0.0 - 129.73.255.255 { 0x814a0000, 0x814dffff, REGISTRY_ARIN }, // 129.74.0.0 - 129.77.255.255 { 0x814e0000, 0x814effff, REGISTRY_APNIC }, // 129.78.0.0 - 129.78.255.255 { 0x814f0000, 0x8157ffff, REGISTRY_ARIN }, // 129.79.0.0 - 129.87.255.255 { 0x81580000, 0x8158ffff, REGISTRY_RIPENCC }, // 129.88.0.0 - 129.88.255.255 { 0x81590000, 0x8159ffff, REGISTRY_ARIN }, // 129.89.0.0 - 129.89.255.255 { 0x815a0000, 0x815affff, REGISTRY_LACNIC }, // 129.90.0.0 - 129.90.255.255 { 0x815b0000, 0x815dffff, REGISTRY_ARIN }, // 129.91.0.0 - 129.93.255.255 { 0x815e0000, 0x815effff, REGISTRY_APNIC }, // 129.94.0.0 - 129.94.255.255 { 0x815f0000, 0x815fffff, REGISTRY_ARIN }, // 129.95.0.0 - 129.95.255.255 { 0x81600000, 0x8160ffff, REGISTRY_APNIC }, // 129.96.0.0 - 129.96.255.255 { 0x81610000, 0x8165ffff, REGISTRY_ARIN }, // 129.97.0.0 - 129.101.255.255 { 0x81660000, 0x8166ffff, REGISTRY_RIPENCC }, // 129.102.0.0 - 129.102.255.255 { 0x81670000, 0x8167ffff, REGISTRY_RIPENCC }, // 129.103.0.0 - 129.103.255.255 { 0x81680000, 0x8168ffff, REGISTRY_RIPENCC }, // 129.104.0.0 - 129.104.255.255 { 0x81690000, 0x8179ffff, REGISTRY_ARIN }, // 129.105.0.0 - 129.121.255.255 { 0x817a0000, 0x817affff, REGISTRY_AFRINIC }, // 129.122.0.0 - 129.122.255.255 { 0x817b0000, 0x817cffff, REGISTRY_ARIN }, // 129.123.0.0 - 129.124.255.255 { 0x817d0000, 0x817dffff, REGISTRY_RIPENCC }, // 129.125.0.0 - 129.125.255.255 { 0x817e0000, 0x817fffff, REGISTRY_APNIC }, // 129.126.0.0 - 129.127.255.255 { 0x81800000, 0x8180ffff, REGISTRY_ARIN }, // 129.128.0.0 - 129.128.255.255 { 0x81810000, 0x8181ffff, REGISTRY_RIPENCC }, // 129.129.0.0 - 129.129.255.255 { 0x81820000, 0x8183ffff, REGISTRY_ARIN }, // 129.130.0.0 - 129.131.255.255 { 0x81840000, 0x8184ffff, REGISTRY_RIPENCC }, // 129.132.0.0 - 129.132.255.255 { 0x81850000, 0x8187ffff, REGISTRY_ARIN }, // 129.133.0.0 - 129.135.255.255 { 0x81880000, 0x8188ffff, REGISTRY_APNIC }, // 129.136.0.0 - 129.136.255.255 { 0x81890000, 0x818bffff, REGISTRY_ARIN }, // 129.137.0.0 - 129.139.255.255 { 0x818c0000, 0x818cffff, REGISTRY_AFRINIC }, // 129.140.0.0 - 129.140.255.255 { 0x818d0000, 0x818dffff, REGISTRY_ARIN }, // 129.141.0.0 - 129.141.255.255 { 0x818e0000, 0x818fffff, REGISTRY_RIPENCC }, // 129.142.0.0 - 129.143.255.255 { 0x81900000, 0x81a8ffff, REGISTRY_ARIN }, // 129.144.0.0 - 129.168.255.255 { 0x81a90000, 0x81a9ffff, REGISTRY_RIPENCC }, // 129.169.0.0 - 129.169.255.255 { 0x81aa0000, 0x81aeffff, REGISTRY_ARIN }, // 129.170.0.0 - 129.174.255.255 { 0x81af0000, 0x81afffff, REGISTRY_RIPENCC }, // 129.175.0.0 - 129.175.255.255 { 0x81b00000, 0x81b0ffff, REGISTRY_ARIN }, // 129.176.0.0 - 129.176.255.255 { 0x81b10000, 0x81b2ffff, REGISTRY_RIPENCC }, // 129.177.0.0 - 129.178.255.255 { 0x81b30000, 0x81b3ffff, REGISTRY_ARIN }, // 129.179.0.0 - 129.179.255.255 { 0x81b40000, 0x81b4ffff, REGISTRY_APNIC }, // 129.180.0.0 - 129.180.255.255 { 0x81b50000, 0x81b9ffff, REGISTRY_RIPENCC }, // 129.181.0.0 - 129.185.255.255 { 0x81ba0000, 0x81baffff, REGISTRY_ARIN }, // 129.186.0.0 - 129.186.255.255 { 0x81bb0000, 0x81bbffff, REGISTRY_RIPENCC }, // 129.187.0.0 - 129.187.255.255 { 0x81bc0000, 0x81c1ffff, REGISTRY_ARIN }, // 129.188.0.0 - 129.193.255.255 { 0x81c20000, 0x81c3ffff, REGISTRY_RIPENCC }, // 129.194.0.0 - 129.195.255.255 { 0x81c40000, 0x81c6ffff, REGISTRY_ARIN }, // 129.196.0.0 - 129.198.255.255 { 0x81c70000, 0x81c7ffff, REGISTRY_RIPENCC }, // 129.199.0.0 - 129.199.255.255 { 0x81c80000, 0x81cbffff, REGISTRY_ARIN }, // 129.200.0.0 - 129.203.255.255 { 0x81cc0000, 0x81ccffff, REGISTRY_APNIC }, // 129.204.0.0 - 129.204.255.255 { 0x81cd0000, 0x81cd4fff, REGISTRY_AFRINIC }, // 129.205.0.0 - 129.205.79.255 { 0x81cd6000, 0x81cdffff, REGISTRY_AFRINIC }, // 129.205.96.0 - 129.205.255.255 { 0x81ce0000, 0x81ceffff, REGISTRY_RIPENCC }, // 129.206.0.0 - 129.206.255.255 { 0x81cf0000, 0x81cfffff, REGISTRY_ARIN }, // 129.207.0.0 - 129.207.255.255 { 0x81d00000, 0x81d0ffff, REGISTRY_RIPENCC }, // 129.208.0.0 - 129.208.255.255 { 0x81d10000, 0x81d2ffff, REGISTRY_ARIN }, // 129.209.0.0 - 129.210.255.255 { 0x81d30000, 0x81d3ffff, REGISTRY_APNIC }, // 129.211.0.0 - 129.211.255.255 { 0x81d40000, 0x81d5ffff, REGISTRY_ARIN }, // 129.212.0.0 - 129.213.255.255 { 0x81d60000, 0x81d6ffff, REGISTRY_RIPENCC }, // 129.214.0.0 - 129.214.255.255 { 0x81d70000, 0x81d7ffff, REGISTRY_RIPENCC }, // 129.215.0.0 - 129.215.255.255 { 0x81d80000, 0x81d8ffff, REGISTRY_ARIN }, // 129.216.0.0 - 129.216.255.255 { 0x81d90000, 0x81d9ffff, REGISTRY_RIPENCC }, // 129.217.0.0 - 129.217.255.255 { 0x81da0000, 0x81e1ffff, REGISTRY_ARIN }, // 129.218.0.0 - 129.225.255.255 { 0x81e20000, 0x81e3ffff, REGISTRY_APNIC }, // 129.226.0.0 - 129.227.255.255 { 0x81e40000, 0x81e7ffff, REGISTRY_ARIN }, // 129.228.0.0 - 129.231.255.255 { 0x81e80000, 0x81e8ffff, REGISTRY_AFRINIC }, // 129.232.0.0 - 129.232.255.255 { 0x81e90000, 0x81eaffff, REGISTRY_RIPENCC }, // 129.233.0.0 - 129.234.255.255 { 0x81eb0000, 0x81efffff, REGISTRY_ARIN }, // 129.235.0.0 - 129.239.255.255 { 0x81f00000, 0x81f2ffff, REGISTRY_RIPENCC }, // 129.240.0.0 - 129.242.255.255 { 0x81f30000, 0x81f6ffff, REGISTRY_ARIN }, // 129.243.0.0 - 129.246.255.255 { 0x81f70000, 0x81f7ffff, REGISTRY_RIPENCC }, // 129.247.0.0 - 129.247.255.255 { 0x81f80000, 0x81f8ffff, REGISTRY_ARIN }, // 129.248.0.0 - 129.248.255.255 { 0x81f90000, 0x81f9ffff, REGISTRY_APNIC }, // 129.249.0.0 - 129.249.255.255 { 0x81fa0000, 0x81fdffff, REGISTRY_ARIN }, // 129.250.0.0 - 129.253.255.255 { 0x81fe0000, 0x81feffff, REGISTRY_APNIC }, // 129.254.0.0 - 129.254.255.255 { 0x81ff0000, 0x81ffffff, REGISTRY_ARIN }, // 129.255.0.0 - 129.255.255.255 { 0x82000000, 0x8200ffff, REGISTRY_RIPENCC }, // 130.0.0.0 - 130.0.255.255 { 0x82010000, 0x8217ffff, REGISTRY_ARIN }, // 130.1.0.0 - 130.23.255.255 { 0x82180000, 0x8218ffff, REGISTRY_RIPENCC }, // 130.24.0.0 - 130.24.255.255 { 0x82190000, 0x8219ffff, REGISTRY_RIPENCC }, // 130.25.0.0 - 130.25.255.255 { 0x821a0000, 0x821affff, REGISTRY_APNIC }, // 130.26.0.0 - 130.26.255.255 { 0x821b0000, 0x821bffff, REGISTRY_ARIN }, // 130.27.0.0 - 130.27.255.255 { 0x821c0000, 0x821cffff, REGISTRY_RIPENCC }, // 130.28.0.0 - 130.28.255.255 { 0x821d0000, 0x821fffff, REGISTRY_ARIN }, // 130.29.0.0 - 130.31.255.255 { 0x82200000, 0x8220ffff, REGISTRY_RIPENCC }, // 130.32.0.0 - 130.32.255.255 { 0x82210000, 0x8221ffff, REGISTRY_ARIN }, // 130.33.0.0 - 130.33.255.255 { 0x82220000, 0x8222ffff, REGISTRY_APNIC }, // 130.34.0.0 - 130.34.255.255 { 0x82230000, 0x8224ffff, REGISTRY_ARIN }, // 130.35.0.0 - 130.36.255.255 { 0x82250000, 0x8225ffff, REGISTRY_RIPENCC }, // 130.37.0.0 - 130.37.255.255 { 0x82260000, 0x822affff, REGISTRY_ARIN }, // 130.38.0.0 - 130.42.255.255 { 0x822b0000, 0x822bffff, REGISTRY_RIPENCC }, // 130.43.0.0 - 130.43.255.255 { 0x822c0000, 0x8235ffff, REGISTRY_ARIN }, // 130.44.0.0 - 130.53.255.255 { 0x82360000, 0x8236ffff, REGISTRY_APNIC }, // 130.54.0.0 - 130.54.255.255 { 0x82370000, 0x8237ffff, REGISTRY_ARIN }, // 130.55.0.0 - 130.55.255.255 { 0x82380000, 0x8238ffff, REGISTRY_APNIC }, // 130.56.0.0 - 130.56.255.255 { 0x82390000, 0x823affff, REGISTRY_ARIN }, // 130.57.0.0 - 130.58.255.255 { 0x823b0000, 0x823cffff, REGISTRY_RIPENCC }, // 130.59.0.0 - 130.60.255.255 { 0x823d0000, 0x823dffff, REGISTRY_ARIN }, // 130.61.0.0 - 130.61.255.255 { 0x823e0000, 0x823effff, REGISTRY_APNIC }, // 130.62.0.0 - 130.62.255.255 { 0x823f0000, 0x8241ffff, REGISTRY_ARIN }, // 130.63.0.0 - 130.65.255.255 { 0x82420000, 0x8243ffff, REGISTRY_RIPENCC }, // 130.66.0.0 - 130.67.255.255 { 0x82440000, 0x8244ffff, REGISTRY_ARIN }, // 130.68.0.0 - 130.68.255.255 { 0x82450000, 0x8245ffff, REGISTRY_APNIC }, // 130.69.0.0 - 130.69.255.255 { 0x82460000, 0x8248ffff, REGISTRY_ARIN }, // 130.70.0.0 - 130.72.255.255 { 0x82490000, 0x8249ffff, REGISTRY_RIPENCC }, // 130.73.0.0 - 130.73.255.255 { 0x824a0000, 0x824affff, REGISTRY_ARIN }, // 130.74.0.0 - 130.74.255.255 { 0x824b0000, 0x824bffff, REGISTRY_RIPENCC }, // 130.75.0.0 - 130.75.255.255 { 0x824c0000, 0x824dffff, REGISTRY_ARIN }, // 130.76.0.0 - 130.77.255.255 { 0x824e0000, 0x824fffff, REGISTRY_RIPENCC }, // 130.78.0.0 - 130.79.255.255 { 0x82500000, 0x8251ffff, REGISTRY_ARIN }, // 130.80.0.0 - 130.81.255.255 { 0x82520000, 0x8254ffff, REGISTRY_RIPENCC }, // 130.82.0.0 - 130.84.255.255 { 0x82550000, 0x8256ffff, REGISTRY_ARIN }, // 130.85.0.0 - 130.86.255.255 { 0x82570000, 0x8257ffff, REGISTRY_APNIC }, // 130.87.0.0 - 130.87.255.255 { 0x82580000, 0x8259ffff, REGISTRY_RIPENCC }, // 130.88.0.0 - 130.89.255.255 { 0x825a0000, 0x825bffff, REGISTRY_ARIN }, // 130.90.0.0 - 130.91.255.255 { 0x825c0000, 0x825cffff, REGISTRY_RIPENCC }, // 130.92.0.0 - 130.92.255.255 { 0x825d0000, 0x825dbfff, REGISTRY_RIPENCC }, // 130.93.0.0 - 130.93.191.255 { 0x825dc000, 0x825dffff, REGISTRY_RIPENCC }, // 130.93.192.0 - 130.93.255.255 { 0x825e0000, 0x825effff, REGISTRY_ARIN }, // 130.94.0.0 - 130.94.255.255 { 0x825f0000, 0x825fffff, REGISTRY_APNIC }, // 130.95.0.0 - 130.95.255.255 { 0x82600000, 0x8261ffff, REGISTRY_ARIN }, // 130.96.0.0 - 130.97.255.255 { 0x82620000, 0x8262ffff, REGISTRY_RIPENCC }, // 130.98.0.0 - 130.98.255.255 { 0x82630000, 0x8263ffff, REGISTRY_ARIN }, // 130.99.0.0 - 130.99.255.255 { 0x82640000, 0x8264ffff, REGISTRY_RIPENCC }, // 130.100.0.0 - 130.100.255.255 { 0x82650000, 0x8265ffff, REGISTRY_ARIN }, // 130.101.0.0 - 130.101.255.255 { 0x82660000, 0x8266ffff, REGISTRY_APNIC }, // 130.102.0.0 - 130.102.255.255 { 0x82670000, 0x8267ffff, REGISTRY_ARIN }, // 130.103.0.0 - 130.103.255.255 { 0x82680000, 0x8268ffff, REGISTRY_RIPENCC }, // 130.104.0.0 - 130.104.255.255 { 0x82690000, 0x8269ffff, REGISTRY_APNIC }, // 130.105.0.0 - 130.105.255.255 { 0x826a0000, 0x826fffff, REGISTRY_ARIN }, // 130.106.0.0 - 130.111.255.255 { 0x82700000, 0x8270ffff, REGISTRY_RIPENCC }, // 130.112.0.0 - 130.112.255.255 { 0x82710000, 0x8272ffff, REGISTRY_ARIN }, // 130.113.0.0 - 130.114.255.255 { 0x82730000, 0x8273ffff, REGISTRY_RIPENCC }, // 130.115.0.0 - 130.115.255.255 { 0x82740000, 0x8274ffff, REGISTRY_APNIC }, // 130.116.0.0 - 130.116.255.255 { 0x82750000, 0x8277ffff, REGISTRY_ARIN }, // 130.117.0.0 - 130.119.255.255 { 0x82780000, 0x8278ffff, REGISTRY_RIPENCC }, // 130.120.0.0 - 130.120.255.255 { 0x82790000, 0x827affff, REGISTRY_ARIN }, // 130.121.0.0 - 130.122.255.255 { 0x827b0000, 0x827bffff, REGISTRY_APNIC }, // 130.123.0.0 - 130.123.255.255 { 0x827c0000, 0x827cffff, REGISTRY_ARIN }, // 130.124.0.0 - 130.124.255.255 { 0x827d0000, 0x827dffff, REGISTRY_RIPENCC }, // 130.125.0.0 - 130.125.255.255 { 0x827e0000, 0x8281ffff, REGISTRY_ARIN }, // 130.126.0.0 - 130.129.255.255 { 0x82820000, 0x8282ffff, REGISTRY_APNIC }, // 130.130.0.0 - 130.130.255.255 { 0x82830000, 0x8284ffff, REGISTRY_ARIN }, // 130.131.0.0 - 130.132.255.255 { 0x82850000, 0x8285ffff, REGISTRY_RIPENCC }, // 130.133.0.0 - 130.133.255.255 { 0x82860000, 0x8287ffff, REGISTRY_ARIN }, // 130.134.0.0 - 130.135.255.255 { 0x82880000, 0x8288ffff, REGISTRY_RIPENCC }, // 130.136.0.0 - 130.136.255.255 { 0x82890000, 0x8289ffff, REGISTRY_ARIN }, // 130.137.0.0 - 130.137.255.255 { 0x828a0000, 0x8295ffff, REGISTRY_RIPENCC }, // 130.138.0.0 - 130.149.255.255 { 0x82960000, 0x8298ffff, REGISTRY_ARIN }, // 130.150.0.0 - 130.152.255.255 { 0x82990000, 0x8299ffff, REGISTRY_APNIC }, // 130.153.0.0 - 130.153.255.255 { 0x829a0000, 0x829affff, REGISTRY_ARIN }, // 130.154.0.0 - 130.154.255.255 { 0x829b0000, 0x829bffff, REGISTRY_APNIC }, // 130.155.0.0 - 130.155.255.255 { 0x829c0000, 0x829dffff, REGISTRY_ARIN }, // 130.156.0.0 - 130.157.255.255 { 0x829e0000, 0x829effff, REGISTRY_APNIC }, // 130.158.0.0 - 130.158.255.255 { 0x829f0000, 0x829fffff, REGISTRY_RIPENCC }, // 130.159.0.0 - 130.159.255.255 { 0x82a00000, 0x82a0ffff, REGISTRY_ARIN }, // 130.160.0.0 - 130.160.255.255 { 0x82a10000, 0x82a1ffff, REGISTRY_RIPENCC }, // 130.161.0.0 - 130.161.255.255 { 0x82a20000, 0x82a47fff, REGISTRY_ARIN }, // 130.162.0.0 - 130.164.127.255 { 0x82a48000, 0x82a4ffff, REGISTRY_RIPENCC }, // 130.164.128.0 - 130.164.255.255 { 0x82a50000, 0x82b3ffff, REGISTRY_ARIN }, // 130.165.0.0 - 130.179.255.255 { 0x82b40000, 0x82b4ffff, REGISTRY_RIPENCC }, // 130.180.0.0 - 130.180.255.255 { 0x82b50000, 0x82b6ffff, REGISTRY_ARIN }, // 130.181.0.0 - 130.182.255.255 { 0x82b70000, 0x82b7ffff, REGISTRY_RIPENCC }, // 130.183.0.0 - 130.183.255.255 { 0x82b80000, 0x82b8ffff, REGISTRY_ARIN }, // 130.184.0.0 - 130.184.255.255 { 0x82b90000, 0x82b9ffff, REGISTRY_RIPENCC }, // 130.185.0.0 - 130.185.255.255 { 0x82ba0000, 0x82ba1fff, REGISTRY_RIPENCC }, // 130.186.0.0 - 130.186.31.255 { 0x82ba2000, 0x82ba3fff, REGISTRY_ARIN }, // 130.186.32.0 - 130.186.63.255 { 0x82ba4000, 0x82ba7fff, REGISTRY_RIPENCC }, // 130.186.64.0 - 130.186.127.255 { 0x82ba8000, 0x82bbffff, REGISTRY_ARIN }, // 130.186.128.0 - 130.187.255.255 { 0x82bc0000, 0x82bcffff, REGISTRY_RIPENCC }, // 130.188.0.0 - 130.188.255.255 { 0x82bd0000, 0x82bdffff, REGISTRY_ARIN }, // 130.189.0.0 - 130.189.255.255 { 0x82be0000, 0x82beffff, REGISTRY_RIPENCC }, // 130.190.0.0 - 130.190.255.255 { 0x82bf0000, 0x82bfffff, REGISTRY_ARIN }, // 130.191.0.0 - 130.191.255.255 { 0x82c00000, 0x82c0ffff, REGISTRY_RIPENCC }, // 130.192.0.0 - 130.192.255.255 { 0x82c10000, 0x82c1ffff, REGISTRY_RIPENCC }, // 130.193.0.0 - 130.193.255.255 { 0x82c20000, 0x82c31fff, REGISTRY_APNIC }, // 130.194.0.0 - 130.195.31.255 { 0x82c32000, 0x82c333ff, REGISTRY_RIPENCC }, // 130.195.32.0 - 130.195.51.255 { 0x82c33400, 0x82c33bff, REGISTRY_APNIC }, // 130.195.52.0 - 130.195.59.255 { 0x82c33c00, 0x82c3bfff, REGISTRY_RIPENCC }, // 130.195.60.0 - 130.195.191.255 { 0x82c3c000, 0x82c3c7ff, REGISTRY_APNIC }, // 130.195.192.0 - 130.195.199.255 { 0x82c3c800, 0x82c3cfff, REGISTRY_RIPENCC }, // 130.195.200.0 - 130.195.207.255 { 0x82c3d000, 0x82c3ffff, REGISTRY_APNIC }, // 130.195.208.0 - 130.195.255.255 { 0x82c40000, 0x82c5ffff, REGISTRY_ARIN }, // 130.196.0.0 - 130.197.255.255 { 0x82c60000, 0x82c6ffff, REGISTRY_RIPENCC }, // 130.198.0.0 - 130.198.255.255 { 0x82c70000, 0x82cbffff, REGISTRY_ARIN }, // 130.199.0.0 - 130.203.255.255 { 0x82cc0000, 0x82ccffff, REGISTRY_RIPENCC }, // 130.204.0.0 - 130.204.255.255 { 0x82cd0000, 0x82cdffff, REGISTRY_ARIN }, // 130.205.0.0 - 130.205.255.255 { 0x82ce0000, 0x82ceffff, REGISTRY_RIPENCC }, // 130.206.0.0 - 130.206.255.255 { 0x82cf0000, 0x82cfffff, REGISTRY_ARIN }, // 130.207.0.0 - 130.207.255.255 { 0x82d00000, 0x82d1ffff, REGISTRY_RIPENCC }, // 130.208.0.0 - 130.209.255.255 { 0x82d20000, 0x82d7ffff, REGISTRY_ARIN }, // 130.210.0.0 - 130.215.255.255 { 0x82d80000, 0x82d9ffff, REGISTRY_APNIC }, // 130.216.0.0 - 130.217.255.255 { 0x82da0000, 0x82dbffff, REGISTRY_ARIN }, // 130.218.0.0 - 130.219.255.255 { 0x82dc0000, 0x82dcffff, REGISTRY_APNIC }, // 130.220.0.0 - 130.220.255.255 { 0x82dd0000, 0x82deffff, REGISTRY_ARIN }, // 130.221.0.0 - 130.222.255.255 { 0x82df0000, 0x82dfffff, REGISTRY_RIPENCC }, // 130.223.0.0 - 130.223.255.255 { 0x82e00000, 0x82e0ffff, REGISTRY_ARIN }, // 130.224.0.0 - 130.224.255.255 { 0x82e10000, 0x82e2ffff, REGISTRY_RIPENCC }, // 130.225.0.0 - 130.226.255.255 { 0x82e30000, 0x82f4ffff, REGISTRY_RIPENCC }, // 130.227.0.0 - 130.244.255.255 { 0x82f50000, 0x82f5ffff, REGISTRY_ARIN }, // 130.245.0.0 - 130.245.255.255 { 0x82f60000, 0x82f6ffff, REGISTRY_RIPENCC }, // 130.246.0.0 - 130.246.255.255 { 0x82f70000, 0x82f82fff, REGISTRY_ARIN }, // 130.247.0.0 - 130.248.47.255 { 0x82f83000, 0x82f837ff, REGISTRY_RIPENCC }, // 130.248.48.0 - 130.248.55.255 { 0x82f83800, 0x82f839ff, REGISTRY_ARIN }, // 130.248.56.0 - 130.248.57.255 { 0x82f83a00, 0x82f83fff, REGISTRY_RIPENCC }, // 130.248.58.0 - 130.248.63.255 { 0x82f84000, 0x82f843ff, REGISTRY_ARIN }, // 130.248.64.0 - 130.248.67.255 { 0x82f84400, 0x82f86bff, REGISTRY_RIPENCC }, // 130.248.68.0 - 130.248.107.255 { 0x82f86c00, 0x82f87fff, REGISTRY_APNIC }, // 130.248.108.0 - 130.248.127.255 { 0x82f88000, 0x82fae3ff, REGISTRY_ARIN }, // 130.248.128.0 - 130.250.227.255 { 0x82fae400, 0x82fae7ff, REGISTRY_LACNIC }, // 130.250.228.0 - 130.250.231.255 { 0x82fae800, 0x82faffff, REGISTRY_ARIN }, // 130.250.232.0 - 130.250.255.255 { 0x82fb0000, 0x82fbffff, REGISTRY_RIPENCC }, // 130.251.0.0 - 130.251.255.255 { 0x82fc0000, 0x82feffff, REGISTRY_ARIN }, // 130.252.0.0 - 130.254.255.255 { 0x82ff0000, 0x82ffffff, REGISTRY_RIPENCC }, // 130.255.0.0 - 130.255.255.255 { 0x83000000, 0x8300ffff, REGISTRY_LACNIC }, // 131.0.0.0 - 131.0.255.255 { 0x83010000, 0x8301ffff, REGISTRY_RIPENCC }, // 131.1.0.0 - 131.1.255.255 { 0x83020000, 0x8347ffff, REGISTRY_ARIN }, // 131.2.0.0 - 131.71.255.255 { 0x83480000, 0x8348ffff, REGISTRY_LACNIC }, // 131.72.0.0 - 131.72.255.255 { 0x83490000, 0x8360ffff, REGISTRY_ARIN }, // 131.73.0.0 - 131.96.255.255 { 0x83610000, 0x8361ffff, REGISTRY_RIPENCC }, // 131.97.0.0 - 131.97.255.255 { 0x83620000, 0x8362ffff, REGISTRY_ARIN }, // 131.98.0.0 - 131.98.255.255 { 0x83630000, 0x8363ffff, REGISTRY_RIPENCC }, // 131.99.0.0 - 131.99.255.255 { 0x83640000, 0x8364c7ff, REGISTRY_LACNIC }, // 131.100.0.0 - 131.100.199.255 { 0x8364cc00, 0x8364ffff, REGISTRY_LACNIC }, // 131.100.204.0 - 131.100.255.255 { 0x83650000, 0x8365ffff, REGISTRY_ARIN }, // 131.101.0.0 - 131.101.255.255 { 0x83660000, 0x8366ffff, REGISTRY_RIPENCC }, // 131.102.0.0 - 131.102.255.255 { 0x83670000, 0x836bffff, REGISTRY_ARIN }, // 131.103.0.0 - 131.107.255.255 { 0x836c0000, 0x836cffff, REGISTRY_LACNIC }, // 131.108.0.0 - 131.108.255.255 { 0x836d0000, 0x836effff, REGISTRY_ARIN }, // 131.109.0.0 - 131.110.255.255 { 0x836f0000, 0x836fffff, REGISTRY_RIPENCC }, // 131.111.0.0 - 131.111.255.255 { 0x83700000, 0x8371ffff, REGISTRY_APNIC }, // 131.112.0.0 - 131.113.255.255 { 0x83720000, 0x8372ffff, REGISTRY_RIPENCC }, // 131.114.0.0 - 131.114.255.255 { 0x83730000, 0x8374ffff, REGISTRY_RIPENCC }, // 131.115.0.0 - 131.116.255.255 { 0x83750000, 0x83757fff, REGISTRY_RIPENCC }, // 131.117.0.0 - 131.117.127.255 { 0x83758000, 0x8375ffff, REGISTRY_RIPENCC }, // 131.117.128.0 - 131.117.255.255 { 0x83760000, 0x837d7fff, REGISTRY_ARIN }, // 131.118.0.0 - 131.125.127.255 { 0x837d8000, 0x837dffff, REGISTRY_RIPENCC }, // 131.125.128.0 - 131.125.255.255 { 0x837e0000, 0x8380ffff, REGISTRY_ARIN }, // 131.126.0.0 - 131.128.255.255 { 0x83810000, 0x8381ffff, REGISTRY_APNIC }, // 131.129.0.0 - 131.129.255.255 { 0x83820000, 0x8382ffff, REGISTRY_RIPENCC }, // 131.130.0.0 - 131.130.255.255 { 0x83830000, 0x8392ffff, REGISTRY_ARIN }, // 131.131.0.0 - 131.146.255.255 { 0x83930000, 0x8393ffff, REGISTRY_APNIC }, // 131.147.0.0 - 131.147.255.255 { 0x83940000, 0x8397ffff, REGISTRY_ARIN }, // 131.148.0.0 - 131.151.255.255 { 0x83980000, 0x8398ffff, REGISTRY_RIPENCC }, // 131.152.0.0 - 131.152.255.255 { 0x83990000, 0x8399ffff, REGISTRY_ARIN }, // 131.153.0.0 - 131.153.255.255 { 0x839a0000, 0x839bffff, REGISTRY_RIPENCC }, // 131.154.0.0 - 131.155.255.255 { 0x839c0000, 0x839effff, REGISTRY_ARIN }, // 131.156.0.0 - 131.158.255.255 { 0x839f0000, 0x83a0ffff, REGISTRY_RIPENCC }, // 131.159.0.0 - 131.160.255.255 { 0x83a10000, 0x83a1ffff, REGISTRY_LACNIC }, // 131.161.0.0 - 131.161.255.255 { 0x83a20000, 0x83a3ffff, REGISTRY_ARIN }, // 131.162.0.0 - 131.163.255.255 { 0x83a40000, 0x83a6ffff, REGISTRY_RIPENCC }, // 131.164.0.0 - 131.166.255.255 { 0x83a70000, 0x83a8ffff, REGISTRY_ARIN }, // 131.167.0.0 - 131.168.255.255 { 0x83a90000, 0x83a9ffff, REGISTRY_RIPENCC }, // 131.169.0.0 - 131.169.255.255 { 0x83aa0000, 0x83aaffff, REGISTRY_APNIC }, // 131.170.0.0 - 131.170.255.255 { 0x83ab0000, 0x83abffff, REGISTRY_ARIN }, // 131.171.0.0 - 131.171.255.255 { 0x83ac0000, 0x83acffff, REGISTRY_APNIC }, // 131.172.0.0 - 131.172.255.255 { 0x83ad0000, 0x83b1ffff, REGISTRY_RIPENCC }, // 131.173.0.0 - 131.177.255.255 { 0x83b20000, 0x83b2ffff, REGISTRY_LACNIC }, // 131.178.0.0 - 131.178.255.255 { 0x83b30000, 0x83b3ffff, REGISTRY_ARIN }, // 131.179.0.0 - 131.179.255.255 { 0x83b40000, 0x83b4ffff, REGISTRY_RIPENCC }, // 131.180.0.0 - 131.180.255.255 { 0x83b50000, 0x83b5ffff, REGISTRY_APNIC }, // 131.181.0.0 - 131.181.255.255 { 0x83b60000, 0x83b8ffff, REGISTRY_ARIN }, // 131.182.0.0 - 131.184.255.255 { 0x83b90000, 0x83b9ffff, REGISTRY_APNIC }, // 131.185.0.0 - 131.185.255.255 { 0x83ba0000, 0x83bbffff, REGISTRY_ARIN }, // 131.186.0.0 - 131.187.255.255 { 0x83bc0000, 0x83bcffff, REGISTRY_RIPENCC }, // 131.188.0.0 - 131.188.255.255 { 0x83bd0000, 0x83c3ffff, REGISTRY_ARIN }, // 131.189.0.0 - 131.195.255.255 { 0x83c40000, 0x83c4ffff, REGISTRY_LACNIC }, // 131.196.0.0 - 131.196.255.255 { 0x83c50000, 0x83caffff, REGISTRY_ARIN }, // 131.197.0.0 - 131.202.255.255 { 0x83cb0000, 0x83cbffff, REGISTRY_APNIC }, // 131.203.0.0 - 131.203.255.255 { 0x83cc0000, 0x83ccffff, REGISTRY_ARIN }, // 131.204.0.0 - 131.204.255.255 { 0x83cd0000, 0x83cdffff, REGISTRY_RIPENCC }, // 131.205.0.0 - 131.205.255.255 { 0x83ce0000, 0x83ceffff, REGISTRY_APNIC }, // 131.206.0.0 - 131.206.255.255 { 0x83cf0000, 0x83cfffff, REGISTRY_RIPENCC }, // 131.207.0.0 - 131.207.255.255 { 0x83d00000, 0x83d2ffff, REGISTRY_ARIN }, // 131.208.0.0 - 131.210.255.255 { 0x83d30000, 0x83d3ffff, REGISTRY_RIPENCC }, // 131.211.0.0 - 131.211.255.255 { 0x83d40000, 0x83d4ffff, REGISTRY_ARIN }, // 131.212.0.0 - 131.212.255.255 { 0x83d50000, 0x83d5ffff, REGISTRY_APNIC }, // 131.213.0.0 - 131.213.255.255 { 0x83d60000, 0x83d8ffff, REGISTRY_ARIN }, // 131.214.0.0 - 131.216.255.255 { 0x83d90000, 0x83d9ffff, REGISTRY_APNIC }, // 131.217.0.0 - 131.217.255.255 { 0x83da0000, 0x83dbffff, REGISTRY_ARIN }, // 131.218.0.0 - 131.219.255.255 { 0x83dc0000, 0x83dcffff, REGISTRY_RIPENCC }, // 131.220.0.0 - 131.220.255.255 { 0x83dd0000, 0x83dd97ff, REGISTRY_LACNIC }, // 131.221.0.0 - 131.221.151.255 { 0x83dd9c00, 0x83ddffff, REGISTRY_LACNIC }, // 131.221.156.0 - 131.221.255.255 { 0x83de0000, 0x83dfffff, REGISTRY_ARIN }, // 131.222.0.0 - 131.223.255.255 { 0x83e00000, 0x83e0ffff, REGISTRY_RIPENCC }, // 131.224.0.0 - 131.224.255.255 { 0x83e10000, 0x83e23fff, REGISTRY_ARIN }, // 131.225.0.0 - 131.226.63.255 { 0x83e24000, 0x83e27fff, REGISTRY_APNIC }, // 131.226.64.0 - 131.226.127.255 { 0x83e28000, 0x83e2ffff, REGISTRY_ARIN }, // 131.226.128.0 - 131.226.255.255 { 0x83e30000, 0x83e4ffff, REGISTRY_RIPENCC }, // 131.227.0.0 - 131.228.255.255 { 0x83e50000, 0x83e6ffff, REGISTRY_ARIN }, // 131.229.0.0 - 131.230.255.255 { 0x83e70000, 0x83e7ffff, REGISTRY_RIPENCC }, // 131.231.0.0 - 131.231.255.255 { 0x83e80000, 0x83e9ffff, REGISTRY_ARIN }, // 131.232.0.0 - 131.233.255.255 { 0x83ea0000, 0x83eaffff, REGISTRY_RIPENCC }, // 131.234.0.0 - 131.234.255.255 { 0x83eb0000, 0x83ebffff, REGISTRY_ARIN }, // 131.235.0.0 - 131.235.255.255 { 0x83ec0000, 0x83ecffff, REGISTRY_APNIC }, // 131.236.0.0 - 131.236.255.255 { 0x83ed0000, 0x83edffff, REGISTRY_RIPENCC }, // 131.237.0.0 - 131.237.255.255 { 0x83ee0000, 0x83f1ffff, REGISTRY_ARIN }, // 131.238.0.0 - 131.241.255.255 { 0x83f20000, 0x83f2ffff, REGISTRY_APNIC }, // 131.242.0.0 - 131.242.255.255 { 0x83f30000, 0x83f3ffff, REGISTRY_ARIN }, // 131.243.0.0 - 131.243.255.255 { 0x83f40000, 0x83f5ffff, REGISTRY_APNIC }, // 131.244.0.0 - 131.245.255.255 { 0x83f60000, 0x83f6ffff, REGISTRY_RIPENCC }, // 131.246.0.0 - 131.246.255.255 { 0x83f70000, 0x83f7ffff, REGISTRY_ARIN }, // 131.247.0.0 - 131.247.255.255 { 0x83f80000, 0x83f8ffff, REGISTRY_APNIC }, // 131.248.0.0 - 131.248.255.255 { 0x83f90000, 0x83faffff, REGISTRY_ARIN }, // 131.249.0.0 - 131.250.255.255 { 0x83fb0000, 0x83fbffff, REGISTRY_RIPENCC }, // 131.251.0.0 - 131.251.255.255 { 0x83fc0000, 0x83fdffff, REGISTRY_ARIN }, // 131.252.0.0 - 131.253.255.255 { 0x83fe0000, 0x83feffff, REGISTRY_RIPENCC }, // 131.254.0.0 - 131.254.255.255 { 0x83ff0000, 0x83ff7fff, REGISTRY_LACNIC }, // 131.255.0.0 - 131.255.127.255 { 0x83ff8400, 0x83ffffff, REGISTRY_LACNIC }, // 131.255.132.0 - 131.255.255.255 { 0x84000000, 0x843fffff, REGISTRY_ARIN }, // 132.0.0.0 - 132.63.255.255 { 0x84400000, 0x844effff, REGISTRY_RIPENCC }, // 132.64.0.0 - 132.78.255.255 { 0x844f0000, 0x8491ffff, REGISTRY_ARIN }, // 132.79.0.0 - 132.145.255.255 { 0x84920000, 0x8492ffff, REGISTRY_RIPENCC }, // 132.146.0.0 - 132.146.255.255 { 0x84930000, 0x84933fff, REGISTRY_ARIN }, // 132.147.0.0 - 132.147.63.255 { 0x84934000, 0x84937fff, REGISTRY_APNIC }, // 132.147.64.0 - 132.147.127.255 { 0x84938000, 0x8494ffff, REGISTRY_ARIN }, // 132.147.128.0 - 132.148.255.255 { 0x84950000, 0x8496ffff, REGISTRY_RIPENCC }, // 132.149.0.0 - 132.150.255.255 { 0x84970000, 0x8498ffff, REGISTRY_ARIN }, // 132.151.0.0 - 132.152.255.255 { 0x84990000, 0x8499ffff, REGISTRY_RIPENCC }, // 132.153.0.0 - 132.153.255.255 { 0x849a0000, 0x849affff, REGISTRY_APNIC }, // 132.154.0.0 - 132.154.255.255 { 0x849b0000, 0x849bffff, REGISTRY_RIPENCC }, // 132.155.0.0 - 132.155.255.255 { 0x849c0000, 0x849cffff, REGISTRY_ARIN }, // 132.156.0.0 - 132.156.255.255 { 0x849d0000, 0x849dffff, REGISTRY_LACNIC }, // 132.157.0.0 - 132.157.255.255 { 0x849e0000, 0x84a3ffff, REGISTRY_ARIN }, // 132.158.0.0 - 132.163.255.255 { 0x84a40000, 0x84a4ffff, REGISTRY_RIPENCC }, // 132.164.0.0 - 132.164.255.255 { 0x84a50000, 0x84a9ffff, REGISTRY_RIPENCC }, // 132.165.0.0 - 132.169.255.255 { 0x84aa0000, 0x84aaffff, REGISTRY_ARIN }, // 132.170.0.0 - 132.170.255.255 { 0x84ab0000, 0x84abffff, REGISTRY_RIPENCC }, // 132.171.0.0 - 132.171.255.255 { 0x84ac0000, 0x84afffff, REGISTRY_ARIN }, // 132.172.0.0 - 132.175.255.255 { 0x84b00000, 0x84b0ffff, REGISTRY_RIPENCC }, // 132.176.0.0 - 132.176.255.255 { 0x84b10000, 0x84b2ffff, REGISTRY_ARIN }, // 132.177.0.0 - 132.178.255.255 { 0x84b30000, 0x84b3ffff, REGISTRY_APNIC }, // 132.179.0.0 - 132.179.255.255 { 0x84b40000, 0x84b4ffff, REGISTRY_RIPENCC }, // 132.180.0.0 - 132.180.255.255 { 0x84b50000, 0x84b6ffff, REGISTRY_APNIC }, // 132.181.0.0 - 132.182.255.255 { 0x84b70000, 0x84b7ffff, REGISTRY_ARIN }, // 132.183.0.0 - 132.183.255.255 { 0x84b80000, 0x84b8ffff, REGISTRY_LACNIC }, // 132.184.0.0 - 132.184.255.255 { 0x84b90000, 0x84b9ffff, REGISTRY_RIPENCC }, // 132.185.0.0 - 132.185.255.255 { 0x84ba0000, 0x84baffff, REGISTRY_RIPENCC }, // 132.186.0.0 - 132.186.255.255 { 0x84bb0000, 0x84bbffff, REGISTRY_RIPENCC }, // 132.187.0.0 - 132.187.255.255 { 0x84bc0000, 0x84beffff, REGISTRY_ARIN }, // 132.188.0.0 - 132.190.255.255 { 0x84bf0000, 0x84bfffff, REGISTRY_LACNIC }, // 132.191.0.0 - 132.191.255.255 { 0x84c00000, 0x84c2ffff, REGISTRY_ARIN }, // 132.192.0.0 - 132.194.255.255 { 0x84c30000, 0x84c4ffff, REGISTRY_RIPENCC }, // 132.195.0.0 - 132.196.255.255 { 0x84c50000, 0x84c6ffff, REGISTRY_ARIN }, // 132.197.0.0 - 132.198.255.255 { 0x84c70000, 0x84c7ffff, REGISTRY_RIPENCC }, // 132.199.0.0 - 132.199.255.255 { 0x84c80000, 0x84ddffff, REGISTRY_ARIN }, // 132.200.0.0 - 132.221.255.255 { 0x84de0000, 0x84deffff, REGISTRY_APNIC }, // 132.222.0.0 - 132.222.255.255 { 0x84df0000, 0x84e2ffff, REGISTRY_ARIN }, // 132.223.0.0 - 132.226.255.255 { 0x84e30000, 0x84e3ffff, REGISTRY_RIPENCC }, // 132.227.0.0 - 132.227.255.255 { 0x84e40000, 0x84e4ffff, REGISTRY_ARIN }, // 132.228.0.0 - 132.228.255.255 { 0x84e50000, 0x84e7ffff, REGISTRY_RIPENCC }, // 132.229.0.0 - 132.231.255.255 { 0x84e80000, 0x84e8ffff, REGISTRY_APNIC }, // 132.232.0.0 - 132.232.255.255 { 0x84e90000, 0x84e9ffff, REGISTRY_ARIN }, // 132.233.0.0 - 132.233.255.255 { 0x84ea0000, 0x84eaffff, REGISTRY_APNIC }, // 132.234.0.0 - 132.234.255.255 { 0x84eb0000, 0x84f3ffff, REGISTRY_ARIN }, // 132.235.0.0 - 132.243.255.255 { 0x84f40000, 0x84f4ffff, REGISTRY_RIPENCC }, // 132.244.0.0 - 132.244.255.255 { 0x84f50000, 0x84f6ffff, REGISTRY_ARIN }, // 132.245.0.0 - 132.246.255.255 { 0x84f70000, 0x84f8ffff, REGISTRY_LACNIC }, // 132.247.0.0 - 132.248.255.255 { 0x84f90000, 0x84faffff, REGISTRY_ARIN }, // 132.249.0.0 - 132.250.255.255 { 0x84fb0000, 0x84fbffff, REGISTRY_LACNIC }, // 132.251.0.0 - 132.251.255.255 { 0x84fc0000, 0x84fcffff, REGISTRY_RIPENCC }, // 132.252.0.0 - 132.252.255.255 { 0x84fd0000, 0x84fdffff, REGISTRY_ARIN }, // 132.253.0.0 - 132.253.255.255 { 0x84fe0000, 0x84ffffff, REGISTRY_LACNIC }, // 132.254.0.0 - 132.255.255.255 { 0x85000000, 0x85ffffff, REGISTRY_APNIC }, // 133.0.0.0 - 133.255.255.255 { 0x86000000, 0x8600ffff, REGISTRY_RIPENCC }, // 134.0.0.0 - 134.0.255.255 { 0x86010000, 0x8602ffff, REGISTRY_RIPENCC }, // 134.1.0.0 - 134.2.255.255 { 0x86030000, 0x8603ffff, REGISTRY_RIPENCC }, // 134.3.0.0 - 134.3.255.255 { 0x86040000, 0x8606ffff, REGISTRY_ARIN }, // 134.4.0.0 - 134.6.255.255 { 0x86070000, 0x8607ffff, REGISTRY_APNIC }, // 134.7.0.0 - 134.7.255.255 { 0x86080000, 0x8610ffff, REGISTRY_ARIN }, // 134.8.0.0 - 134.16.255.255 { 0x86110000, 0x8611ffff, REGISTRY_RIPENCC }, // 134.17.0.0 - 134.17.255.255 { 0x86120000, 0x8612ffff, REGISTRY_APNIC }, // 134.18.0.0 - 134.18.255.255 { 0x86130000, 0x8613ffff, REGISTRY_RIPENCC }, // 134.19.0.0 - 134.19.255.255 { 0x86140000, 0x8614ffff, REGISTRY_ARIN }, // 134.20.0.0 - 134.20.255.255 { 0x86150000, 0x8615ffff, REGISTRY_RIPENCC }, // 134.21.0.0 - 134.21.255.255 { 0x86160000, 0x8618ffff, REGISTRY_ARIN }, // 134.22.0.0 - 134.24.255.255 { 0x86190000, 0x8619ffff, REGISTRY_RIPENCC }, // 134.25.0.0 - 134.25.255.255 { 0x861a0000, 0x861affff, REGISTRY_ARIN }, // 134.26.0.0 - 134.26.255.255 { 0x861b0000, 0x861cffff, REGISTRY_RIPENCC }, // 134.27.0.0 - 134.28.255.255 { 0x861d0000, 0x861dffff, REGISTRY_ARIN }, // 134.29.0.0 - 134.29.255.255 { 0x861e0000, 0x861effff, REGISTRY_RIPENCC }, // 134.30.0.0 - 134.30.255.255 { 0x861f0000, 0x8621ffff, REGISTRY_ARIN }, // 134.31.0.0 - 134.33.255.255 { 0x86220000, 0x8625ffff, REGISTRY_RIPENCC }, // 134.34.0.0 - 134.37.255.255 { 0x86260000, 0x862adfff, REGISTRY_ARIN }, // 134.38.0.0 - 134.42.223.255 { 0x862ae000, 0x862ae3ff, REGISTRY_APNIC }, // 134.42.224.0 - 134.42.227.255 { 0x862ae400, 0x862ae7ff, REGISTRY_ARIN }, // 134.42.228.0 - 134.42.231.255 { 0x862ae800, 0x862aefff, REGISTRY_APNIC }, // 134.42.232.0 - 134.42.239.255 { 0x862af000, 0x862effff, REGISTRY_ARIN }, // 134.42.240.0 - 134.46.255.255 { 0x862f0000, 0x862fffff, REGISTRY_RIPENCC }, // 134.47.0.0 - 134.47.255.255 { 0x86300000, 0x8635ffff, REGISTRY_ARIN }, // 134.48.0.0 - 134.53.255.255 { 0x86360000, 0x8636ffff, REGISTRY_RIPENCC }, // 134.54.0.0 - 134.54.255.255 { 0x86370000, 0x8639ffff, REGISTRY_ARIN }, // 134.55.0.0 - 134.57.255.255 { 0x863a0000, 0x863dffff, REGISTRY_RIPENCC }, // 134.58.0.0 - 134.61.255.255 { 0x863e0000, 0x86413fff, REGISTRY_ARIN }, // 134.62.0.0 - 134.65.63.255 { 0x86414000, 0x86417fff, REGISTRY_APNIC }, // 134.65.64.0 - 134.65.127.255 { 0x86418000, 0x86419fff, REGISTRY_RIPENCC }, // 134.65.128.0 - 134.65.159.255 { 0x8641a000, 0x8641a3ff, REGISTRY_ARIN }, // 134.65.160.0 - 134.65.163.255 { 0x8641a400, 0x8641a7ff, REGISTRY_RIPENCC }, // 134.65.164.0 - 134.65.167.255 { 0x8641a800, 0x8641abff, REGISTRY_ARIN }, // 134.65.168.0 - 134.65.171.255 { 0x8641ac00, 0x8641acff, REGISTRY_RIPENCC }, // 134.65.172.0 - 134.65.172.255 { 0x8641ad00, 0x864affff, REGISTRY_ARIN }, // 134.65.173.0 - 134.74.255.255 { 0x864b0000, 0x864bffff, REGISTRY_APNIC }, // 134.75.0.0 - 134.75.255.255 { 0x864c0000, 0x864cffff, REGISTRY_RIPENCC }, // 134.76.0.0 - 134.76.255.255 { 0x864d0000, 0x8650ffff, REGISTRY_ARIN }, // 134.77.0.0 - 134.80.255.255 { 0x86510000, 0x8651ffff, REGISTRY_RIPENCC }, // 134.81.0.0 - 134.81.255.255 { 0x86520000, 0x8652ffff, REGISTRY_ARIN }, // 134.82.0.0 - 134.82.255.255 { 0x86530000, 0x8653ffff, REGISTRY_RIPENCC }, // 134.83.0.0 - 134.83.255.255 { 0x86540000, 0x8659ffff, REGISTRY_ARIN }, // 134.84.0.0 - 134.89.255.255 { 0x865a0000, 0x865affff, REGISTRY_RIPENCC }, // 134.90.0.0 - 134.90.255.255 { 0x865b0000, 0x86650fff, REGISTRY_RIPENCC }, // 134.91.0.0 - 134.101.15.255 { 0x86651000, 0x86653fff, REGISTRY_RIPENCC }, // 134.101.16.0 - 134.101.63.255 { 0x86654000, 0x86657fff, REGISTRY_RIPENCC }, // 134.101.64.0 - 134.101.127.255 { 0x86658000, 0x8665ffff, REGISTRY_RIPENCC }, // 134.101.128.0 - 134.101.255.255 { 0x86660000, 0x866effff, REGISTRY_RIPENCC }, // 134.102.0.0 - 134.110.255.255 { 0x866f0000, 0x8672ffff, REGISTRY_ARIN }, // 134.111.0.0 - 134.114.255.255 { 0x86730000, 0x8673ffff, REGISTRY_APNIC }, // 134.115.0.0 - 134.115.255.255 { 0x86740000, 0x8676ffff, REGISTRY_ARIN }, // 134.116.0.0 - 134.118.255.255 { 0x86770000, 0x8677ffff, REGISTRY_RIPENCC }, // 134.119.0.0 - 134.119.255.255 { 0x86780000, 0x867a7fff, REGISTRY_ARIN }, // 134.120.0.0 - 134.122.127.255 { 0x867a8000, 0x867affff, REGISTRY_APNIC }, // 134.122.128.0 - 134.122.255.255 { 0x867b0000, 0x8681ffff, REGISTRY_ARIN }, // 134.123.0.0 - 134.129.255.255 { 0x86820000, 0x8682ffff, REGISTRY_RIPENCC }, // 134.130.0.0 - 134.130.255.255 { 0x86830000, 0x8689ffff, REGISTRY_ARIN }, // 134.131.0.0 - 134.137.255.255 { 0x868a0000, 0x868affff, REGISTRY_RIPENCC }, // 134.138.0.0 - 134.138.255.255 { 0x868b0000, 0x868dffff, REGISTRY_ARIN }, // 134.139.0.0 - 134.141.255.255 { 0x868e0000, 0x868fffff, REGISTRY_RIPENCC }, // 134.142.0.0 - 134.143.255.255 { 0x86900000, 0x8690ffff, REGISTRY_APNIC }, // 134.144.0.0 - 134.144.255.255 { 0x86910000, 0x8692ffff, REGISTRY_RIPENCC }, // 134.145.0.0 - 134.146.255.255 { 0x86930000, 0x8693ffff, REGISTRY_RIPENCC }, // 134.147.0.0 - 134.147.255.255 { 0x86940000, 0x8694ffff, REGISTRY_APNIC }, // 134.148.0.0 - 134.148.255.255 { 0x86950000, 0x8696ffff, REGISTRY_ARIN }, // 134.149.0.0 - 134.150.255.255 { 0x86970000, 0x8697ffff, REGISTRY_RIPENCC }, // 134.151.0.0 - 134.151.255.255 { 0x86980000, 0x869affff, REGISTRY_ARIN }, // 134.152.0.0 - 134.154.255.255 { 0x869b0000, 0x869bffff, REGISTRY_RIPENCC }, // 134.155.0.0 - 134.155.255.255 { 0x869c0000, 0x869cffff, REGISTRY_ARIN }, // 134.156.0.0 - 134.156.255.255 { 0x869d0000, 0x869effff, REGISTRY_RIPENCC }, // 134.157.0.0 - 134.158.255.255 { 0x869f0000, 0x86a0ffff, REGISTRY_APNIC }, // 134.159.0.0 - 134.160.255.255 { 0x86a10000, 0x86a8ffff, REGISTRY_ARIN }, // 134.161.0.0 - 134.168.255.255 { 0x86a90000, 0x86a9ffff, REGISTRY_RIPENCC }, // 134.169.0.0 - 134.169.255.255 { 0x86aa0000, 0x86aaffff, REGISTRY_ARIN }, // 134.170.0.0 - 134.170.255.255 { 0x86ab0000, 0x86abffff, REGISTRY_RIPENCC }, // 134.171.0.0 - 134.171.255.255 { 0x86ac0000, 0x86aeffff, REGISTRY_ARIN }, // 134.172.0.0 - 134.174.255.255 { 0x86af0000, 0x86afffff, REGISTRY_APNIC }, // 134.175.0.0 - 134.175.255.255 { 0x86b00000, 0x86b0ffff, REGISTRY_RIPENCC }, // 134.176.0.0 - 134.176.255.255 { 0x86b10000, 0x86b1ffff, REGISTRY_ARIN }, // 134.177.0.0 - 134.177.255.255 { 0x86b20000, 0x86b2ffff, REGISTRY_APNIC }, // 134.178.0.0 - 134.178.255.255 { 0x86b30000, 0x86b3ffff, REGISTRY_ARIN }, // 134.179.0.0 - 134.179.255.255 { 0x86b40000, 0x86b4ffff, REGISTRY_APNIC }, // 134.180.0.0 - 134.180.255.255 { 0x86b50000, 0x86b6ffff, REGISTRY_ARIN }, // 134.181.0.0 - 134.182.255.255 { 0x86b70000, 0x86b8ffff, REGISTRY_RIPENCC }, // 134.183.0.0 - 134.184.255.255 { 0x86b90000, 0x86bbffff, REGISTRY_ARIN }, // 134.185.0.0 - 134.187.255.255 { 0x86bc0000, 0x86bcffff, REGISTRY_RIPENCC }, // 134.188.0.0 - 134.188.255.255 { 0x86bd0000, 0x86beffff, REGISTRY_ARIN }, // 134.189.0.0 - 134.190.255.255 { 0x86bf0000, 0x86bfffff, REGISTRY_RIPENCC }, // 134.191.0.0 - 134.191.255.255 { 0x86c00000, 0x86c3ffff, REGISTRY_ARIN }, // 134.192.0.0 - 134.195.255.255 { 0x86c40000, 0x86c4ffff, REGISTRY_APNIC }, // 134.196.0.0 - 134.196.255.255 { 0x86c50000, 0x86caffff, REGISTRY_ARIN }, // 134.197.0.0 - 134.202.255.255 { 0x86cb0000, 0x86cbffff, REGISTRY_RIPENCC }, // 134.203.0.0 - 134.203.255.255 { 0x86cc0000, 0x86cdffff, REGISTRY_ARIN }, // 134.204.0.0 - 134.205.255.255 { 0x86ce0000, 0x86ceffff, REGISTRY_RIPENCC }, // 134.206.0.0 - 134.206.255.255 { 0x86cf0000, 0x86cfffff, REGISTRY_ARIN }, // 134.207.0.0 - 134.207.255.255 { 0x86d00000, 0x86d0ffff, REGISTRY_APNIC }, // 134.208.0.0 - 134.208.255.255 { 0x86d10000, 0x86d2ffff, REGISTRY_ARIN }, // 134.209.0.0 - 134.210.255.255 { 0x86d30000, 0x86d3ffff, REGISTRY_APNIC }, // 134.211.0.0 - 134.211.255.255 { 0x86d40000, 0x86d6ffff, REGISTRY_RIPENCC }, // 134.212.0.0 - 134.214.255.255 { 0x86d70000, 0x86daffff, REGISTRY_ARIN }, // 134.215.0.0 - 134.218.255.255 { 0x86db0000, 0x86deffff, REGISTRY_RIPENCC }, // 134.219.0.0 - 134.222.255.255 { 0x86df0000, 0x86e0ffff, REGISTRY_ARIN }, // 134.223.0.0 - 134.224.255.255 { 0x86e10000, 0x86e3ffff, REGISTRY_RIPENCC }, // 134.225.0.0 - 134.227.255.255 { 0x86e40000, 0x86ebffff, REGISTRY_ARIN }, // 134.228.0.0 - 134.235.255.255 { 0x86ec0000, 0x86edffff, REGISTRY_APNIC }, // 134.236.0.0 - 134.237.255.255 { 0x86ee0000, 0x86eeffff, REGISTRY_ARIN }, // 134.238.0.0 - 134.238.255.255 { 0x86ef0000, 0x86efffff, REGISTRY_RIPENCC }, // 134.239.0.0 - 134.239.255.255 { 0x86f00000, 0x86f2dfff, REGISTRY_ARIN }, // 134.240.0.0 - 134.242.223.255 { 0x86f2e000, 0x86f2ffff, REGISTRY_APNIC }, // 134.242.224.0 - 134.242.255.255 { 0x86f30000, 0x86f4ffff, REGISTRY_ARIN }, // 134.243.0.0 - 134.244.255.255 { 0x86f50000, 0x86f7ffff, REGISTRY_RIPENCC }, // 134.245.0.0 - 134.247.255.255 { 0x86f80000, 0x86f8ffff, REGISTRY_ARIN }, // 134.248.0.0 - 134.248.255.255 { 0x86f90000, 0x86f9ffff, REGISTRY_RIPENCC }, // 134.249.0.0 - 134.249.255.255 { 0x86fa0000, 0x86feffff, REGISTRY_ARIN }, // 134.250.0.0 - 134.254.255.255 { 0x86ff0000, 0x86ffffff, REGISTRY_RIPENCC }, // 134.255.0.0 - 134.255.255.255 { 0x87000000, 0x8703ffff, REGISTRY_ARIN }, // 135.0.0.0 - 135.3.255.255 { 0x87040000, 0x8704ffff, REGISTRY_RIPENCC }, // 135.4.0.0 - 135.4.255.255 { 0x87050000, 0x8705ffff, REGISTRY_ARIN }, // 135.5.0.0 - 135.5.255.255 { 0x87060000, 0x8706ffff, REGISTRY_RIPENCC }, // 135.6.0.0 - 135.6.255.255 { 0x87070000, 0x8711ffff, REGISTRY_ARIN }, // 135.7.0.0 - 135.17.255.255 { 0x87120000, 0x8712ffff, REGISTRY_RIPENCC }, // 135.18.0.0 - 135.18.255.255 { 0x87130000, 0x875433ff, REGISTRY_ARIN }, // 135.19.0.0 - 135.84.51.255 { 0x87543400, 0x875437ff, REGISTRY_RIPENCC }, // 135.84.52.0 - 135.84.55.255 { 0x87543800, 0x875493ff, REGISTRY_ARIN }, // 135.84.56.0 - 135.84.147.255 { 0x87549400, 0x875497ff, REGISTRY_RIPENCC }, // 135.84.148.0 - 135.84.151.255 { 0x87549800, 0x8754e7ff, REGISTRY_ARIN }, // 135.84.152.0 - 135.84.231.255 { 0x8754e800, 0x8754ffff, REGISTRY_APNIC }, // 135.84.232.0 - 135.84.255.255 { 0x87550000, 0x8759ffff, REGISTRY_ARIN }, // 135.85.0.0 - 135.89.255.255 { 0x875a0000, 0x875affff, REGISTRY_RIPENCC }, // 135.90.0.0 - 135.90.255.255 { 0x875b0000, 0x8773ffff, REGISTRY_ARIN }, // 135.91.0.0 - 135.115.255.255 { 0x87740000, 0x8774ffff, REGISTRY_RIPENCC }, // 135.116.0.0 - 135.116.255.255 { 0x87750000, 0x877cffff, REGISTRY_ARIN }, // 135.117.0.0 - 135.124.255.255 { 0x877d0000, 0x877dffff, REGISTRY_RIPENCC }, // 135.125.0.0 - 135.125.255.255 { 0x877e0000, 0x8781dfff, REGISTRY_ARIN }, // 135.126.0.0 - 135.129.223.255 { 0x8781e000, 0x8781efff, REGISTRY_RIPENCC }, // 135.129.224.0 - 135.129.239.255 { 0x8781f000, 0x8781ffff, REGISTRY_ARIN }, // 135.129.240.0 - 135.129.255.255 { 0x87820000, 0x8782ffff, REGISTRY_RIPENCC }, // 135.130.0.0 - 135.130.255.255 { 0x87830000, 0x8794ffff, REGISTRY_ARIN }, // 135.131.0.0 - 135.148.255.255 { 0x87950000, 0x8795ffff, REGISTRY_APNIC }, // 135.149.0.0 - 135.149.255.255 { 0x87960000, 0x87b4ffff, REGISTRY_ARIN }, // 135.150.0.0 - 135.180.255.255 { 0x87b50000, 0x87b5ffff, REGISTRY_RIPENCC }, // 135.181.0.0 - 135.181.255.255 { 0x87b60000, 0x87c3ffff, REGISTRY_ARIN }, // 135.182.0.0 - 135.195.255.255 { 0x87c40000, 0x87c4ffff, REGISTRY_RIPENCC }, // 135.196.0.0 - 135.196.255.255 { 0x87c50000, 0x87dfffff, REGISTRY_ARIN }, // 135.197.0.0 - 135.223.255.255 { 0x87e00000, 0x87e2ffff, REGISTRY_RIPENCC }, // 135.224.0.0 - 135.226.255.255 { 0x87e30000, 0x87e4ffff, REGISTRY_ARIN }, // 135.227.0.0 - 135.228.255.255 { 0x87e50000, 0x87e6ffff, REGISTRY_RIPENCC }, // 135.229.0.0 - 135.230.255.255 { 0x87e70000, 0x87e7ffff, REGISTRY_ARIN }, // 135.231.0.0 - 135.231.255.255 { 0x87e80000, 0x87edffff, REGISTRY_RIPENCC }, // 135.232.0.0 - 135.237.255.255 { 0x87ee0000, 0x88161fff, REGISTRY_ARIN }, // 135.238.0.0 - 136.22.31.255 { 0x88162000, 0x88163fff, REGISTRY_APNIC }, // 136.22.32.0 - 136.22.63.255 { 0x88164000, 0x888effff, REGISTRY_ARIN }, // 136.22.64.0 - 136.142.255.255 { 0x888f0000, 0x888f7fff, REGISTRY_RIPENCC }, // 136.143.0.0 - 136.143.127.255 { 0x888f8000, 0x888fa7ff, REGISTRY_ARIN }, // 136.143.128.0 - 136.143.167.255 { 0x888fa800, 0x888fabff, REGISTRY_RIPENCC }, // 136.143.168.0 - 136.143.171.255 { 0x888fac00, 0x888fdfff, REGISTRY_ARIN }, // 136.143.172.0 - 136.143.223.255 { 0x888fe000, 0x888fffff, REGISTRY_APNIC }, // 136.143.224.0 - 136.143.255.255 { 0x88900000, 0x88900fff, REGISTRY_ARIN }, // 136.144.0.0 - 136.144.15.255 { 0x88901000, 0x8890ffff, REGISTRY_RIPENCC }, // 136.144.16.0 - 136.144.255.255 { 0x88910000, 0x8893ffff, REGISTRY_ARIN }, // 136.145.0.0 - 136.147.255.255 { 0x88940000, 0x8894ffff, REGISTRY_RIPENCC }, // 136.148.0.0 - 136.148.255.255 { 0x88950000, 0x8898ffff, REGISTRY_ARIN }, // 136.149.0.0 - 136.152.255.255 { 0x88990000, 0x889affff, REGISTRY_APNIC }, // 136.153.0.0 - 136.154.255.255 { 0x889b0000, 0x889cffff, REGISTRY_RIPENCC }, // 136.155.0.0 - 136.156.255.255 { 0x889d0000, 0x889dffff, REGISTRY_RIPENCC }, // 136.157.0.0 - 136.157.255.255 { 0x889e0000, 0x889effff, REGISTRY_APNIC }, // 136.158.0.0 - 136.158.255.255 { 0x889f0000, 0x88a2ffff, REGISTRY_ARIN }, // 136.159.0.0 - 136.162.255.255 { 0x88a30000, 0x88a4ffff, REGISTRY_RIPENCC }, // 136.163.0.0 - 136.164.255.255 { 0x88a50000, 0x88a8ffff, REGISTRY_ARIN }, // 136.165.0.0 - 136.168.255.255 { 0x88a90000, 0x88a9ffff, REGISTRY_RIPENCC }, // 136.169.0.0 - 136.169.255.255 { 0x88aa0000, 0x88aaffff, REGISTRY_RIPENCC }, // 136.170.0.0 - 136.170.255.255 { 0x88ab0000, 0x88abffff, REGISTRY_ARIN }, // 136.171.0.0 - 136.171.255.255 { 0x88ac0000, 0x88adffff, REGISTRY_RIPENCC }, // 136.172.0.0 - 136.173.255.255 { 0x88ae0000, 0x88b8ffff, REGISTRY_ARIN }, // 136.174.0.0 - 136.184.255.255 { 0x88b90000, 0x88bbffff, REGISTRY_APNIC }, // 136.185.0.0 - 136.187.255.255 { 0x88bc0000, 0x88c5ffff, REGISTRY_ARIN }, // 136.188.0.0 - 136.197.255.255 { 0x88c60000, 0x88c6ffff, REGISTRY_APNIC }, // 136.198.0.0 - 136.198.255.255 { 0x88c70000, 0x88c7ffff, REGISTRY_RIPENCC }, // 136.199.0.0 - 136.199.255.255 { 0x88c80000, 0x88c8ffff, REGISTRY_ARIN }, // 136.200.0.0 - 136.200.255.255 { 0x88c90000, 0x88c9ffff, REGISTRY_RIPENCC }, // 136.201.0.0 - 136.201.255.255 { 0x88ca0000, 0x88cdffff, REGISTRY_ARIN }, // 136.202.0.0 - 136.205.255.255 { 0x88ce0000, 0x88ceffff, REGISTRY_RIPENCC }, // 136.206.0.0 - 136.206.255.255 { 0x88cf0000, 0x88e0ffff, REGISTRY_ARIN }, // 136.207.0.0 - 136.224.255.255 { 0x88e10000, 0x88e1ffff, REGISTRY_RIPENCC }, // 136.225.0.0 - 136.225.255.255 { 0x88e20000, 0x88e47fff, REGISTRY_ARIN }, // 136.226.0.0 - 136.228.127.255 { 0x88e48000, 0x88e4afff, REGISTRY_APNIC }, // 136.228.128.0 - 136.228.175.255 { 0x88e4b000, 0x88e5ffff, REGISTRY_ARIN }, // 136.228.176.0 - 136.229.255.255 { 0x88e60000, 0x88e7ffff, REGISTRY_RIPENCC }, // 136.230.0.0 - 136.231.255.255 { 0x88e80000, 0x88e9ffff, REGISTRY_APNIC }, // 136.232.0.0 - 136.233.255.255 { 0x88ea0000, 0x88ef7fff, REGISTRY_ARIN }, // 136.234.0.0 - 136.239.127.255 { 0x88ef8000, 0x88efffff, REGISTRY_APNIC }, // 136.239.128.0 - 136.239.255.255 { 0x88f00000, 0x88f2ffff, REGISTRY_ARIN }, // 136.240.0.0 - 136.242.255.255 { 0x88f30000, 0x88f3ffff, REGISTRY_RIPENCC }, // 136.243.0.0 - 136.243.255.255 { 0x88f40000, 0x88feffff, REGISTRY_ARIN }, // 136.244.0.0 - 136.254.255.255 { 0x88ff0000, 0x88ffffff, REGISTRY_RIPENCC }, // 136.255.0.0 - 136.255.255.255 { 0x89000000, 0x8910ffff, REGISTRY_ARIN }, // 137.0.0.0 - 137.16.255.255 { 0x89110000, 0x8911ffff, REGISTRY_RIPENCC }, // 137.17.0.0 - 137.17.255.255 { 0x89120000, 0x89169fff, REGISTRY_ARIN }, // 137.18.0.0 - 137.22.159.255 { 0x8916a000, 0x8916bfff, REGISTRY_RIPENCC }, // 137.22.160.0 - 137.22.191.255 { 0x8916c000, 0x8920ffff, REGISTRY_ARIN }, // 137.22.192.0 - 137.32.255.255 { 0x89210000, 0x8922ffff, REGISTRY_RIPENCC }, // 137.33.0.0 - 137.34.255.255 { 0x89230000, 0x8927ffff, REGISTRY_ARIN }, // 137.35.0.0 - 137.39.255.255 { 0x89280000, 0x8928ffff, REGISTRY_APNIC }, // 137.40.0.0 - 137.40.255.255 { 0x89290000, 0x892affff, REGISTRY_ARIN }, // 137.41.0.0 - 137.42.255.255 { 0x892b0000, 0x892cffff, REGISTRY_RIPENCC }, // 137.43.0.0 - 137.44.255.255 { 0x892d0000, 0x892effff, REGISTRY_ARIN }, // 137.45.0.0 - 137.46.255.255 { 0x892f0000, 0x892fffff, REGISTRY_RIPENCC }, // 137.47.0.0 - 137.47.255.255 { 0x89300000, 0x8931ffff, REGISTRY_ARIN }, // 137.48.0.0 - 137.49.255.255 { 0x89320000, 0x8932ffff, REGISTRY_RIPENCC }, // 137.50.0.0 - 137.50.255.255 { 0x89330000, 0x8936ffff, REGISTRY_ARIN }, // 137.51.0.0 - 137.54.255.255 { 0x89370000, 0x8938ffff, REGISTRY_RIPENCC }, // 137.55.0.0 - 137.56.255.255 { 0x89390000, 0x8939ffff, REGISTRY_ARIN }, // 137.57.0.0 - 137.57.255.255 { 0x893a0000, 0x893affff, REGISTRY_RIPENCC }, // 137.58.0.0 - 137.58.255.255 { 0x893b0000, 0x893b03ff, REGISTRY_APNIC }, // 137.59.0.0 - 137.59.3.255 { 0x893b0400, 0x893b0bff, REGISTRY_RIPENCC }, // 137.59.4.0 - 137.59.11.255 { 0x893b0c00, 0x893b37ff, REGISTRY_APNIC }, // 137.59.12.0 - 137.59.55.255 { 0x893b3800, 0x893b3aff, REGISTRY_RIPENCC }, // 137.59.56.0 - 137.59.58.255 { 0x893b3b00, 0x893b3bff, REGISTRY_APNIC }, // 137.59.59.0 - 137.59.59.255 { 0x893b3c00, 0x893b3fff, REGISTRY_ARIN }, // 137.59.60.0 - 137.59.63.255 { 0x893b4000, 0x893bebff, REGISTRY_APNIC }, // 137.59.64.0 - 137.59.235.255 { 0x893bf000, 0x893bffff, REGISTRY_APNIC }, // 137.59.240.0 - 137.59.255.255 { 0x893c0000, 0x893effff, REGISTRY_RIPENCC }, // 137.60.0.0 - 137.62.255.255 { 0x893f0000, 0x8940ffff, REGISTRY_AFRINIC }, // 137.63.0.0 - 137.64.255.255 { 0x89410000, 0x8943ffff, REGISTRY_ARIN }, // 137.65.0.0 - 137.67.255.255 { 0x89440000, 0x8944ffff, REGISTRY_APNIC }, // 137.68.0.0 - 137.68.255.255 { 0x89450000, 0x8948ffff, REGISTRY_ARIN }, // 137.69.0.0 - 137.72.255.255 { 0x89490000, 0x8949ffff, REGISTRY_RIPENCC }, // 137.73.0.0 - 137.73.255.255 { 0x894a0000, 0x894affff, REGISTRY_RIPENCC }, // 137.74.0.0 - 137.74.255.255 { 0x894b0000, 0x894bffff, REGISTRY_ARIN }, // 137.75.0.0 - 137.75.255.255 { 0x894d0000, 0x8952ffff, REGISTRY_ARIN }, // 137.77.0.0 - 137.82.255.255 { 0x89530000, 0x895300ff, REGISTRY_APNIC }, // 137.83.0.0 - 137.83.0.255 { 0x89530100, 0x89530bff, REGISTRY_ARIN }, // 137.83.1.0 - 137.83.11.255 { 0x89530c00, 0x89530cff, REGISTRY_APNIC }, // 137.83.12.0 - 137.83.12.255 { 0x89530d00, 0x895bffff, REGISTRY_ARIN }, // 137.83.13.0 - 137.91.255.255 { 0x895c0000, 0x895cffff, REGISTRY_APNIC }, // 137.92.0.0 - 137.92.255.255 { 0x895d0000, 0x895dffff, REGISTRY_RIPENCC }, // 137.93.0.0 - 137.93.255.255 { 0x895e0000, 0x895fffff, REGISTRY_ARIN }, // 137.94.0.0 - 137.95.255.255 { 0x89600000, 0x8960ffff, REGISTRY_RIPENCC }, // 137.96.0.0 - 137.96.255.255 { 0x89610000, 0x8961ffff, REGISTRY_APNIC }, // 137.97.0.0 - 137.97.255.255 { 0x89620000, 0x8964ffff, REGISTRY_ARIN }, // 137.98.0.0 - 137.100.255.255 { 0x89650000, 0x8965ffff, REGISTRY_RIPENCC }, // 137.101.0.0 - 137.101.255.255 { 0x89660000, 0x8968ffff, REGISTRY_ARIN }, // 137.102.0.0 - 137.104.255.255 { 0x89690000, 0x8969ffff, REGISTRY_RIPENCC }, // 137.105.0.0 - 137.105.255.255 { 0x896a0000, 0x896bffff, REGISTRY_ARIN }, // 137.106.0.0 - 137.107.255.255 { 0x896c0000, 0x896cffff, REGISTRY_RIPENCC }, // 137.108.0.0 - 137.108.255.255 { 0x896d0000, 0x896dffff, REGISTRY_APNIC }, // 137.109.0.0 - 137.109.255.255 { 0x896e0000, 0x896effff, REGISTRY_ARIN }, // 137.110.0.0 - 137.110.255.255 { 0x896f0000, 0x896fffff, REGISTRY_APNIC }, // 137.111.0.0 - 137.111.255.255 { 0x89700000, 0x8972ffff, REGISTRY_ARIN }, // 137.112.0.0 - 137.114.255.255 { 0x89730000, 0x8973ffff, REGISTRY_AFRINIC }, // 137.115.0.0 - 137.115.255.255 { 0x89740000, 0x8977ffff, REGISTRY_ARIN }, // 137.116.0.0 - 137.119.255.255 { 0x89780000, 0x8979ffff, REGISTRY_RIPENCC }, // 137.120.0.0 - 137.121.255.255 { 0x897a0000, 0x8980ffff, REGISTRY_ARIN }, // 137.122.0.0 - 137.128.255.255 { 0x89810000, 0x8981ffff, REGISTRY_RIPENCC }, // 137.129.0.0 - 137.129.255.255 { 0x89820000, 0x8983ffff, REGISTRY_ARIN }, // 137.130.0.0 - 137.131.255.255 { 0x89840000, 0x8984ffff, REGISTRY_APNIC }, // 137.132.0.0 - 137.132.255.255 { 0x89850000, 0x8985ffff, REGISTRY_RIPENCC }, // 137.133.0.0 - 137.133.255.255 { 0x89860000, 0x8989ffff, REGISTRY_ARIN }, // 137.134.0.0 - 137.137.255.255 { 0x898a0000, 0x898affff, REGISTRY_RIPENCC }, // 137.138.0.0 - 137.138.255.255 { 0x898b0000, 0x8992ffff, REGISTRY_ARIN }, // 137.139.0.0 - 137.146.255.255 { 0x89930000, 0x8993ffff, REGISTRY_APNIC }, // 137.147.0.0 - 137.147.255.255 { 0x89940000, 0x8998ffff, REGISTRY_ARIN }, // 137.148.0.0 - 137.152.255.255 { 0x89990000, 0x899affff, REGISTRY_APNIC }, // 137.153.0.0 - 137.154.255.255 { 0x899b0000, 0x899bffff, REGISTRY_ARIN }, // 137.155.0.0 - 137.155.255.255 { 0x899c0000, 0x899cffff, REGISTRY_RIPENCC }, // 137.156.0.0 - 137.156.255.255 { 0x899d0000, 0x899dffff, REGISTRY_APNIC }, // 137.157.0.0 - 137.157.255.255 { 0x899e0000, 0x899effff, REGISTRY_AFRINIC }, // 137.158.0.0 - 137.158.255.255 { 0x899f0000, 0x89a2ffff, REGISTRY_ARIN }, // 137.159.0.0 - 137.162.255.255 { 0x89a30000, 0x89a3ffff, REGISTRY_RIPENCC }, // 137.163.0.0 - 137.163.255.255 { 0x89a40000, 0x89a5ffff, REGISTRY_ARIN }, // 137.164.0.0 - 137.165.255.255 { 0x89a60000, 0x89a6ffff, REGISTRY_APNIC }, // 137.166.0.0 - 137.166.255.255 { 0x89a70000, 0x89aaffff, REGISTRY_ARIN }, // 137.167.0.0 - 137.170.255.255 { 0x89ac0000, 0x89acffff, REGISTRY_APNIC }, // 137.172.0.0 - 137.172.255.255 { 0x89ad0000, 0x89adffff, REGISTRY_ARIN }, // 137.173.0.0 - 137.173.255.255 { 0x89ae0000, 0x89aeffff, REGISTRY_RIPENCC }, // 137.174.0.0 - 137.174.255.255 { 0x89af0000, 0x89bcffff, REGISTRY_ARIN }, // 137.175.0.0 - 137.188.255.255 { 0x89bd0000, 0x89bdffff, REGISTRY_APNIC }, // 137.189.0.0 - 137.189.255.255 { 0x89be0000, 0x89beffff, REGISTRY_ARIN }, // 137.190.0.0 - 137.190.255.255 { 0x89bf0000, 0x89bfffff, REGISTRY_RIPENCC }, // 137.191.0.0 - 137.191.255.255 { 0x89c00000, 0x89c0ffff, REGISTRY_ARIN }, // 137.192.0.0 - 137.192.255.255 { 0x89c10000, 0x89c3ffff, REGISTRY_RIPENCC }, // 137.193.0.0 - 137.195.255.255 { 0x89c40000, 0x89c4ffff, REGISTRY_AFRINIC }, // 137.196.0.0 - 137.196.255.255 { 0x89c50000, 0x89cbffff, REGISTRY_ARIN }, // 137.197.0.0 - 137.203.255.255 { 0x89cc0000, 0x89cdffff, REGISTRY_RIPENCC }, // 137.204.0.0 - 137.205.255.255 { 0x89ce0000, 0x89cfffff, REGISTRY_ARIN }, // 137.206.0.0 - 137.207.255.255 { 0x89d00000, 0x89d0ffff, REGISTRY_RIPENCC }, // 137.208.0.0 - 137.208.255.255 { 0x89d10000, 0x89d4ffff, REGISTRY_ARIN }, // 137.209.0.0 - 137.212.255.255 { 0x89d50000, 0x89d5ffff, REGISTRY_RIPENCC }, // 137.213.0.0 - 137.213.255.255 { 0x89d60000, 0x89d7ffff, REGISTRY_AFRINIC }, // 137.214.0.0 - 137.215.255.255 { 0x89d80000, 0x89d8ffff, REGISTRY_ARIN }, // 137.216.0.0 - 137.216.255.255 { 0x89d90000, 0x89daffff, REGISTRY_RIPENCC }, // 137.217.0.0 - 137.218.255.255 { 0x89db0000, 0x89dbffff, REGISTRY_APNIC }, // 137.219.0.0 - 137.219.255.255 { 0x89dc0000, 0x89dc0fff, REGISTRY_ARIN }, // 137.220.0.0 - 137.220.15.255 { 0x89dc1000, 0x89dc1fff, REGISTRY_APNIC }, // 137.220.16.0 - 137.220.31.255 { 0x89dc2000, 0x89dc3fff, REGISTRY_ARIN }, // 137.220.32.0 - 137.220.63.255 { 0x89dc4000, 0x89dc7fff, REGISTRY_RIPENCC }, // 137.220.64.0 - 137.220.127.255 { 0x89dc8000, 0x89dcffff, REGISTRY_APNIC }, // 137.220.128.0 - 137.220.255.255 { 0x89dd0000, 0x89dd17ff, REGISTRY_RIPENCC }, // 137.221.0.0 - 137.221.23.255 { 0x89dd1800, 0x89dd1fff, REGISTRY_RIPENCC }, // 137.221.24.0 - 137.221.31.255 { 0x89dd2000, 0x89dd7fff, REGISTRY_RIPENCC }, // 137.221.32.0 - 137.221.127.255 { 0x89dd8000, 0x89deffff, REGISTRY_RIPENCC }, // 137.221.128.0 - 137.222.255.255 { 0x89df0000, 0x89dfffff, REGISTRY_RIPENCC }, // 137.223.0.0 - 137.223.255.255 { 0x89e00000, 0x89e0ffff, REGISTRY_RIPENCC }, // 137.224.0.0 - 137.224.255.255 { 0x89e10000, 0x89e1ffff, REGISTRY_ARIN }, // 137.225.0.0 - 137.225.255.255 { 0x89e20000, 0x89e2ffff, REGISTRY_RIPENCC }, // 137.226.0.0 - 137.226.255.255 { 0x89e30000, 0x89f7ffff, REGISTRY_ARIN }, // 137.227.0.0 - 137.247.255.255 { 0x89f80000, 0x89f8ffff, REGISTRY_RIPENCC }, // 137.248.0.0 - 137.248.255.255 { 0x89f90000, 0x89f9ffff, REGISTRY_ARIN }, // 137.249.0.0 - 137.249.255.255 { 0x89fa0000, 0x89fbffff, REGISTRY_RIPENCC }, // 137.250.0.0 - 137.251.255.255 { 0x89fc0000, 0x89fcffff, REGISTRY_ARIN }, // 137.252.0.0 - 137.252.255.255 { 0x89fd0000, 0x89fdffff, REGISTRY_RIPENCC }, // 137.253.0.0 - 137.253.255.255 { 0x89fe0000, 0x89feffff, REGISTRY_ARIN }, // 137.254.0.0 - 137.254.255.255 { 0x89ff0000, 0x89ffffff, REGISTRY_AFRINIC }, // 137.255.0.0 - 137.255.255.255 { 0x8a000000, 0x8a00ffff, REGISTRY_LACNIC }, // 138.0.0.0 - 138.0.255.255 { 0x8a010000, 0x8a02ffff, REGISTRY_ARIN }, // 138.1.0.0 - 138.2.255.255 { 0x8a030000, 0x8a04ffff, REGISTRY_RIPENCC }, // 138.3.0.0 - 138.4.255.255 { 0x8a050000, 0x8a05ffff, REGISTRY_ARIN }, // 138.5.0.0 - 138.5.255.255 { 0x8a060000, 0x8a06ffff, REGISTRY_RIPENCC }, // 138.6.0.0 - 138.6.255.255 { 0x8a070000, 0x8a07ffff, REGISTRY_APNIC }, // 138.7.0.0 - 138.7.255.255 { 0x8a080000, 0x8a0c7fff, REGISTRY_ARIN }, // 138.8.0.0 - 138.12.127.255 { 0x8a0c8000, 0x8a0cffff, REGISTRY_RIPENCC }, // 138.12.128.0 - 138.12.255.255 { 0x8a0d0000, 0x8a0dffff, REGISTRY_ARIN }, // 138.13.0.0 - 138.13.255.255 { 0x8a0e0000, 0x8a0effff, REGISTRY_RIPENCC }, // 138.14.0.0 - 138.14.255.255 { 0x8a0f0000, 0x8a12ffff, REGISTRY_ARIN }, // 138.15.0.0 - 138.18.255.255 { 0x8a130000, 0x8a13ffff, REGISTRY_APNIC }, // 138.19.0.0 - 138.19.255.255 { 0x8a140000, 0x8a14ffff, REGISTRY_ARIN }, // 138.20.0.0 - 138.20.255.255 { 0x8a150000, 0x8a16ffff, REGISTRY_RIPENCC }, // 138.21.0.0 - 138.22.255.255 { 0x8a170000, 0x8a17ffff, REGISTRY_ARIN }, // 138.23.0.0 - 138.23.255.255 { 0x8a180000, 0x8a19ffff, REGISTRY_APNIC }, // 138.24.0.0 - 138.25.255.255 { 0x8a1a0000, 0x8a1dffff, REGISTRY_ARIN }, // 138.26.0.0 - 138.29.255.255 { 0x8a1f0000, 0x8a2017ff, REGISTRY_ARIN }, // 138.31.0.0 - 138.32.23.255 { 0x8a201800, 0x8a201bff, REGISTRY_RIPENCC }, // 138.32.24.0 - 138.32.27.255 { 0x8a201c00, 0x8a20a7ff, REGISTRY_ARIN }, // 138.32.28.0 - 138.32.167.255 { 0x8a20a800, 0x8a20abff, REGISTRY_RIPENCC }, // 138.32.168.0 - 138.32.171.255 { 0x8a20ac00, 0x8a23ffff, REGISTRY_ARIN }, // 138.32.172.0 - 138.35.255.255 { 0x8a240000, 0x8a24ffff, REGISTRY_LACNIC }, // 138.36.0.0 - 138.36.255.255 { 0x8a250000, 0x8a26ffff, REGISTRY_RIPENCC }, // 138.37.0.0 - 138.38.255.255 { 0x8a270000, 0x8a27ffff, REGISTRY_ARIN }, // 138.39.0.0 - 138.39.255.255 { 0x8a280000, 0x8a29ffff, REGISTRY_RIPENCC }, // 138.40.0.0 - 138.41.255.255 { 0x8a2a0000, 0x8a2affff, REGISTRY_ARIN }, // 138.42.0.0 - 138.42.255.255 { 0x8a2b0000, 0x8a2b1fff, REGISTRY_RIPENCC }, // 138.43.0.0 - 138.43.31.255 { 0x8a2b2000, 0x8a2b2fff, REGISTRY_APNIC }, // 138.43.32.0 - 138.43.47.255 { 0x8a2b3000, 0x8a2bbfff, REGISTRY_ARIN }, // 138.43.48.0 - 138.43.191.255 { 0x8a2bc000, 0x8a2bcfff, REGISTRY_APNIC }, // 138.43.192.0 - 138.43.207.255 { 0x8a2bd000, 0x8a2bffff, REGISTRY_ARIN }, // 138.43.208.0 - 138.43.255.255 { 0x8a2c0000, 0x8a2cffff, REGISTRY_APNIC }, // 138.44.0.0 - 138.44.255.255 { 0x8a2d0000, 0x8a2fffff, REGISTRY_ARIN }, // 138.45.0.0 - 138.47.255.255 { 0x8a300000, 0x8a30ffff, REGISTRY_RIPENCC }, // 138.48.0.0 - 138.48.255.255 { 0x8a310000, 0x8a3affff, REGISTRY_ARIN }, // 138.49.0.0 - 138.58.255.255 { 0x8a3b0000, 0x8a3bffff, REGISTRY_LACNIC }, // 138.59.0.0 - 138.59.255.255 { 0x8a3c0000, 0x8a3dffff, REGISTRY_ARIN }, // 138.60.0.0 - 138.61.255.255 { 0x8a3e0000, 0x8a3fffff, REGISTRY_RIPENCC }, // 138.62.0.0 - 138.63.255.255 { 0x8a400000, 0x8a40ffff, REGISTRY_APNIC }, // 138.64.0.0 - 138.64.255.255 { 0x8a410000, 0x8a41ffff, REGISTRY_ARIN }, // 138.65.0.0 - 138.65.255.255 { 0x8a420000, 0x8a42ffff, REGISTRY_RIPENCC }, // 138.66.0.0 - 138.66.255.255 { 0x8a430000, 0x8a46ffff, REGISTRY_ARIN }, // 138.67.0.0 - 138.70.255.255 { 0x8a480000, 0x8a4affff, REGISTRY_ARIN }, // 138.72.0.0 - 138.74.255.255 { 0x8a4b0000, 0x8a4bffff, REGISTRY_APNIC }, // 138.75.0.0 - 138.75.255.255 { 0x8a4c0000, 0x8a4cffff, REGISTRY_ARIN }, // 138.76.0.0 - 138.76.255.255 { 0x8a4d0000, 0x8a4dffff, REGISTRY_APNIC }, // 138.77.0.0 - 138.77.255.255 { 0x8a4e0000, 0x8a4effff, REGISTRY_ARIN }, // 138.78.0.0 - 138.78.255.255 { 0x8a4f0000, 0x8a50ffff, REGISTRY_APNIC }, // 138.79.0.0 - 138.80.255.255 { 0x8a510000, 0x8a51ffff, REGISTRY_RIPENCC }, // 138.81.0.0 - 138.81.255.255 { 0x8a520000, 0x8a541fff, REGISTRY_ARIN }, // 138.82.0.0 - 138.84.31.255 { 0x8a542000, 0x8a543fff, REGISTRY_LACNIC }, // 138.84.32.0 - 138.84.63.255 { 0x8a544000, 0x8a549fff, REGISTRY_APNIC }, // 138.84.64.0 - 138.84.159.255 { 0x8a54a000, 0x8a54bfff, REGISTRY_ARIN }, // 138.84.160.0 - 138.84.191.255 { 0x8a54c000, 0x8a54c7ff, REGISTRY_APNIC }, // 138.84.192.0 - 138.84.199.255 { 0x8a54c800, 0x8a5dffff, REGISTRY_ARIN }, // 138.84.200.0 - 138.93.255.255 { 0x8a5e0000, 0x8a5effff, REGISTRY_LACNIC }, // 138.94.0.0 - 138.94.255.255 { 0x8a5f0000, 0x8a5fffff, REGISTRY_ARIN }, // 138.95.0.0 - 138.95.255.255 { 0x8a600000, 0x8a60ffff, REGISTRY_RIPENCC }, // 138.96.0.0 - 138.96.255.255 { 0x8a610000, 0x8a61ffff, REGISTRY_LACNIC }, // 138.97.0.0 - 138.97.255.255 { 0x8a620000, 0x8a62ffff, REGISTRY_ARIN }, // 138.98.0.0 - 138.98.255.255 { 0x8a630000, 0x8a63ffff, REGISTRY_LACNIC }, // 138.99.0.0 - 138.99.255.255 { 0x8a640000, 0x8a64ffff, REGISTRY_RIPENCC }, // 138.100.0.0 - 138.100.255.255 { 0x8a650000, 0x8a65ffff, REGISTRY_APNIC }, // 138.101.0.0 - 138.101.255.255 { 0x8a660000, 0x8a68ffff, REGISTRY_RIPENCC }, // 138.102.0.0 - 138.104.255.255 { 0x8a690000, 0x8a69ffff, REGISTRY_RIPENCC }, // 138.105.0.0 - 138.105.255.255 { 0x8a6a0000, 0x8a6affff, REGISTRY_RIPENCC }, // 138.106.0.0 - 138.106.255.255 { 0x8a6b0000, 0x8a6bffff, REGISTRY_APNIC }, // 138.107.0.0 - 138.107.255.255 { 0x8a6c0000, 0x8a74ffff, REGISTRY_ARIN }, // 138.108.0.0 - 138.116.255.255 { 0x8a750000, 0x8a7673ff, REGISTRY_LACNIC }, // 138.117.0.0 - 138.118.115.255 { 0x8a767400, 0x8a7677ff, REGISTRY_ARIN }, // 138.118.116.0 - 138.118.119.255 { 0x8a767800, 0x8a76ffff, REGISTRY_LACNIC }, // 138.118.120.0 - 138.118.255.255 { 0x8a770000, 0x8a78ffff, REGISTRY_ARIN }, // 138.119.0.0 - 138.120.255.255 { 0x8a790000, 0x8a7affff, REGISTRY_LACNIC }, // 138.121.0.0 - 138.122.255.255 { 0x8a7b0000, 0x8a7bffff, REGISTRY_ARIN }, // 138.123.0.0 - 138.123.255.255 { 0x8a7c0000, 0x8a7c7fff, REGISTRY_RIPENCC }, // 138.124.0.0 - 138.124.127.255 { 0x8a7c8000, 0x8a7c93ff, REGISTRY_RIPENCC }, // 138.124.128.0 - 138.124.147.255 { 0x8a7c9400, 0x8a7cffff, REGISTRY_RIPENCC }, // 138.124.148.0 - 138.124.255.255 { 0x8a7d0000, 0x8a8087ff, REGISTRY_ARIN }, // 138.125.0.0 - 138.128.135.255 { 0x8a808800, 0x8a809fff, REGISTRY_RIPENCC }, // 138.128.136.0 - 138.128.159.255 { 0x8a80a000, 0x8a81ffff, REGISTRY_ARIN }, // 138.128.160.0 - 138.129.255.255 { 0x8a820000, 0x8a82ffff, REGISTRY_APNIC }, // 138.130.0.0 - 138.130.255.255 { 0x8a830000, 0x8a84ffff, REGISTRY_RIPENCC }, // 138.131.0.0 - 138.132.255.255 { 0x8a850000, 0x8a85ffff, REGISTRY_ARIN }, // 138.133.0.0 - 138.133.255.255 { 0x8a860000, 0x8a86ffff, REGISTRY_RIPENCC }, // 138.134.0.0 - 138.134.255.255 { 0x8a870000, 0x8ab8ffff, REGISTRY_ARIN }, // 138.135.0.0 - 138.184.255.255 { 0x8ab90000, 0x8abaffff, REGISTRY_LACNIC }, // 138.185.0.0 - 138.186.255.255 { 0x8abb0000, 0x8abcffff, REGISTRY_RIPENCC }, // 138.187.0.0 - 138.188.255.255 { 0x8abd0000, 0x8abdffff, REGISTRY_RIPENCC }, // 138.189.0.0 - 138.189.255.255 { 0x8abe0000, 0x8abeffff, REGISTRY_RIPENCC }, // 138.190.0.0 - 138.190.255.255 { 0x8abf0000, 0x8abfffff, REGISTRY_RIPENCC }, // 138.191.0.0 - 138.191.255.255 { 0x8ac00000, 0x8ac1ffff, REGISTRY_ARIN }, // 138.192.0.0 - 138.193.255.255 { 0x8ac20000, 0x8ac2ffff, REGISTRY_APNIC }, // 138.194.0.0 - 138.194.255.255 { 0x8ac30000, 0x8ac3ffff, REGISTRY_RIPENCC }, // 138.195.0.0 - 138.195.255.255 { 0x8ac40000, 0x8ac5ffff, REGISTRY_ARIN }, // 138.196.0.0 - 138.197.255.255 { 0x8ac60000, 0x8ac6ffff, REGISTRY_RIPENCC }, // 138.198.0.0 - 138.198.255.255 { 0x8ac70000, 0x8ac73fff, REGISTRY_RIPENCC }, // 138.199.0.0 - 138.199.63.255 { 0x8ac74000, 0x8ac75fff, REGISTRY_RIPENCC }, // 138.199.64.0 - 138.199.95.255 { 0x8ac76000, 0x8ac77fff, REGISTRY_ARIN }, // 138.199.96.0 - 138.199.127.255 { 0x8ac78000, 0x8ac9ffff, REGISTRY_RIPENCC }, // 138.199.128.0 - 138.201.255.255 { 0x8aca0000, 0x8acaffff, REGISTRY_ARIN }, // 138.202.0.0 - 138.202.255.255 { 0x8acb0000, 0x8acbffff, REGISTRY_RIPENCC }, // 138.203.0.0 - 138.203.255.255 { 0x8acc0000, 0x8accffff, REGISTRY_LACNIC }, // 138.204.0.0 - 138.204.255.255 { 0x8acd0000, 0x8aceffff, REGISTRY_RIPENCC }, // 138.205.0.0 - 138.206.255.255 { 0x8acf0000, 0x8ad2ffff, REGISTRY_ARIN }, // 138.207.0.0 - 138.210.255.255 { 0x8ad30000, 0x8ad5ffff, REGISTRY_APNIC }, // 138.211.0.0 - 138.213.255.255 { 0x8ad60000, 0x8ad6ffff, REGISTRY_ARIN }, // 138.214.0.0 - 138.214.255.255 { 0x8ad70000, 0x8ad8ffff, REGISTRY_RIPENCC }, // 138.215.0.0 - 138.216.255.255 { 0x8ad90000, 0x8ad9ffff, REGISTRY_APNIC }, // 138.217.0.0 - 138.217.255.255 { 0x8ada0000, 0x8adaffff, REGISTRY_ARIN }, // 138.218.0.0 - 138.218.255.255 { 0x8adb0000, 0x8adbffff, REGISTRY_LACNIC }, // 138.219.0.0 - 138.219.255.255 { 0x8adc0000, 0x8adcffff, REGISTRY_ARIN }, // 138.220.0.0 - 138.220.255.255 { 0x8add0000, 0x8ae4ffff, REGISTRY_RIPENCC }, // 138.221.0.0 - 138.228.255.255 { 0x8ae50000, 0x8ae6ffff, REGISTRY_ARIN }, // 138.229.0.0 - 138.230.255.255 { 0x8ae70000, 0x8ae9ffff, REGISTRY_RIPENCC }, // 138.231.0.0 - 138.233.255.255 { 0x8aea0000, 0x8aeaffff, REGISTRY_ARIN }, // 138.234.0.0 - 138.234.255.255 { 0x8aeb0000, 0x8aebffff, REGISTRY_APNIC }, // 138.235.0.0 - 138.235.255.255 { 0x8aec0000, 0x8aeeffff, REGISTRY_ARIN }, // 138.236.0.0 - 138.238.255.255 { 0x8aef0000, 0x8aefffff, REGISTRY_APNIC }, // 138.239.0.0 - 138.239.255.255 { 0x8af00000, 0x8af2ffff, REGISTRY_ARIN }, // 138.240.0.0 - 138.242.255.255 { 0x8af30000, 0x8af3ffff, REGISTRY_APNIC }, // 138.243.0.0 - 138.243.255.255 { 0x8af40000, 0x8af6ffff, REGISTRY_RIPENCC }, // 138.244.0.0 - 138.246.255.255 { 0x8af70000, 0x8af7ffff, REGISTRY_ARIN }, // 138.247.0.0 - 138.247.255.255 { 0x8af80000, 0x8af83fff, REGISTRY_RIPENCC }, // 138.248.0.0 - 138.248.63.255 { 0x8af84000, 0x8af87fff, REGISTRY_APNIC }, // 138.248.64.0 - 138.248.127.255 { 0x8af88000, 0x8afbffff, REGISTRY_RIPENCC }, // 138.248.128.0 - 138.251.255.255 { 0x8afd0000, 0x8afdffff, REGISTRY_RIPENCC }, // 138.253.0.0 - 138.253.255.255 { 0x8afe0000, 0x8afeffff, REGISTRY_ARIN }, // 138.254.0.0 - 138.254.255.255 { 0x8aff0000, 0x8affffff, REGISTRY_LACNIC }, // 138.255.0.0 - 138.255.255.255 { 0x8b000000, 0x8b00ffff, REGISTRY_APNIC }, // 139.0.0.0 - 139.0.255.255 { 0x8b010000, 0x8b04ffff, REGISTRY_RIPENCC }, // 139.1.0.0 - 139.4.255.255 { 0x8b050000, 0x8b0513ff, REGISTRY_APNIC }, // 139.5.0.0 - 139.5.19.255 { 0x8b051400, 0x8b0517ff, REGISTRY_ARIN }, // 139.5.20.0 - 139.5.23.255 { 0x8b051800, 0x8b051fff, REGISTRY_APNIC }, // 139.5.24.0 - 139.5.31.255 { 0x8b052400, 0x8b0567ff, REGISTRY_APNIC }, // 139.5.36.0 - 139.5.103.255 { 0x8b056800, 0x8b056bff, REGISTRY_RIPENCC }, // 139.5.104.0 - 139.5.107.255 { 0x8b056c00, 0x8b05cfff, REGISTRY_APNIC }, // 139.5.108.0 - 139.5.207.255 { 0x8b05d400, 0x8b05ffff, REGISTRY_APNIC }, // 139.5.212.0 - 139.5.255.255 { 0x8b060000, 0x8b08ffff, REGISTRY_RIPENCC }, // 139.6.0.0 - 139.8.255.255 { 0x8b090000, 0x8b09ffff, REGISTRY_APNIC }, // 139.9.0.0 - 139.9.255.255 { 0x8b0a0000, 0x8b0affff, REGISTRY_RIPENCC }, // 139.10.0.0 - 139.10.255.255 { 0x8b0b0000, 0x8b0fffff, REGISTRY_RIPENCC }, // 139.11.0.0 - 139.15.255.255 { 0x8b100000, 0x8b10ffff, REGISTRY_RIPENCC }, // 139.16.0.0 - 139.16.255.255 { 0x8b110000, 0x8b14ffff, REGISTRY_RIPENCC }, // 139.17.0.0 - 139.20.255.255 { 0x8b150000, 0x8b19ffff, REGISTRY_RIPENCC }, // 139.21.0.0 - 139.25.255.255 { 0x8b1a0000, 0x8b1affff, REGISTRY_AFRINIC }, // 139.26.0.0 - 139.26.255.255 { 0x8b1b0000, 0x8b1bffff, REGISTRY_RIPENCC }, // 139.27.0.0 - 139.27.255.255 { 0x8b1c0000, 0x8b1c7fff, REGISTRY_RIPENCC }, // 139.28.0.0 - 139.28.127.255 { 0x8b1c8000, 0x8b1c83ff, REGISTRY_APNIC }, // 139.28.128.0 - 139.28.131.255 { 0x8b1c8400, 0x8b1cffff, REGISTRY_RIPENCC }, // 139.28.132.0 - 139.28.255.255 { 0x8b1d0000, 0x8b1effff, REGISTRY_RIPENCC }, // 139.29.0.0 - 139.30.255.255 { 0x8b1f0000, 0x8b2bffff, REGISTRY_ARIN }, // 139.31.0.0 - 139.43.255.255 { 0x8b2c0000, 0x8b2cffff, REGISTRY_APNIC }, // 139.44.0.0 - 139.44.255.255 { 0x8b2d0000, 0x8b2dffff, REGISTRY_RIPENCC }, // 139.45.0.0 - 139.45.255.255 { 0x8b2e0000, 0x8b2effff, REGISTRY_ARIN }, // 139.46.0.0 - 139.46.255.255 { 0x8b2f0000, 0x8b2fffff, REGISTRY_RIPENCC }, // 139.47.0.0 - 139.47.255.255 { 0x8b300000, 0x8b31ffff, REGISTRY_ARIN }, // 139.48.0.0 - 139.49.255.255 { 0x8b320000, 0x8b32ffff, REGISTRY_RIPENCC }, // 139.50.0.0 - 139.50.255.255 { 0x8b330000, 0x8b34ffff, REGISTRY_ARIN }, // 139.51.0.0 - 139.52.255.255 { 0x8b350000, 0x8b35ffff, REGISTRY_AFRINIC }, // 139.53.0.0 - 139.53.255.255 { 0x8b360000, 0x8b36ffff, REGISTRY_RIPENCC }, // 139.54.0.0 - 139.54.255.255 { 0x8b370000, 0x8b39ffff, REGISTRY_ARIN }, // 139.55.0.0 - 139.57.255.255 { 0x8b3a0000, 0x8b3affff, REGISTRY_RIPENCC }, // 139.58.0.0 - 139.58.255.255 { 0x8b3b0000, 0x8b3bffff, REGISTRY_APNIC }, // 139.59.0.0 - 139.59.255.255 { 0x8b3c0000, 0x8b3effff, REGISTRY_ARIN }, // 139.60.0.0 - 139.62.255.255 { 0x8b3f0000, 0x8b3fffff, REGISTRY_RIPENCC }, // 139.63.0.0 - 139.63.255.255 { 0x8b400000, 0x8b407fff, REGISTRY_RIPENCC }, // 139.64.0.0 - 139.64.127.255 { 0x8b408000, 0x8b41ffff, REGISTRY_ARIN }, // 139.64.128.0 - 139.65.255.255 { 0x8b420000, 0x8b42ffff, REGISTRY_RIPENCC }, // 139.66.0.0 - 139.66.255.255 { 0x8b430000, 0x8b49ffff, REGISTRY_ARIN }, // 139.67.0.0 - 139.73.255.255 { 0x8b4a0000, 0x8b4bffff, REGISTRY_RIPENCC }, // 139.74.0.0 - 139.75.255.255 { 0x8b4c0000, 0x8b4effff, REGISTRY_ARIN }, // 139.76.0.0 - 139.78.255.255 { 0x8b4f0000, 0x8b4fffff, REGISTRY_RIPENCC }, // 139.79.0.0 - 139.79.255.255 { 0x8b500000, 0x8b50ffff, REGISTRY_APNIC }, // 139.80.0.0 - 139.80.255.255 { 0x8b510000, 0x8b51ffff, REGISTRY_ARIN }, // 139.81.0.0 - 139.81.255.255 { 0x8b520000, 0x8b52ffff, REGISTRY_LACNIC }, // 139.82.0.0 - 139.82.255.255 { 0x8b530000, 0x8b53ffff, REGISTRY_RIPENCC }, // 139.83.0.0 - 139.83.255.255 { 0x8b540000, 0x8b55ffff, REGISTRY_ARIN }, // 139.84.0.0 - 139.85.255.255 { 0x8b560000, 0x8b56ffff, REGISTRY_APNIC }, // 139.86.0.0 - 139.86.255.255 { 0x8b570000, 0x8b59ffff, REGISTRY_ARIN }, // 139.87.0.0 - 139.89.255.255 { 0x8b5a0000, 0x8b5cffff, REGISTRY_RIPENCC }, // 139.90.0.0 - 139.92.255.255 { 0x8b5d0000, 0x8b60ffff, REGISTRY_ARIN }, // 139.93.0.0 - 139.96.255.255 { 0x8b610000, 0x8b61ffff, REGISTRY_RIPENCC }, // 139.97.0.0 - 139.97.255.255 { 0x8b620000, 0x8b62ffff, REGISTRY_RIPENCC }, // 139.98.0.0 - 139.98.255.255 { 0x8b630000, 0x8b63ffff, REGISTRY_ARIN }, // 139.99.0.0 - 139.99.255.255 { 0x8b640000, 0x8b64ffff, REGISTRY_RIPENCC }, // 139.100.0.0 - 139.100.255.255 { 0x8b650000, 0x8b65ffff, REGISTRY_APNIC }, // 139.101.0.0 - 139.101.255.255 { 0x8b660000, 0x8b68ffff, REGISTRY_ARIN }, // 139.102.0.0 - 139.104.255.255 { 0x8b690000, 0x8b78ffff, REGISTRY_RIPENCC }, // 139.105.0.0 - 139.120.255.255 { 0x8b790000, 0x8b79ffff, REGISTRY_ARIN }, // 139.121.0.0 - 139.121.255.255 { 0x8b7a0000, 0x8b7cffff, REGISTRY_RIPENCC }, // 139.122.0.0 - 139.124.255.255 { 0x8b7d0000, 0x8b7fffff, REGISTRY_ARIN }, // 139.125.0.0 - 139.127.255.255 { 0x8b800000, 0x8b80ffff, REGISTRY_RIPENCC }, // 139.128.0.0 - 139.128.255.255 { 0x8b810000, 0x8b82ffff, REGISTRY_APNIC }, // 139.129.0.0 - 139.130.255.255 { 0x8b830000, 0x8b83ffff, REGISTRY_ARIN }, // 139.131.0.0 - 139.131.255.255 { 0x8b840000, 0x8b84ffff, REGISTRY_APNIC }, // 139.132.0.0 - 139.132.255.255 { 0x8b850000, 0x8b85ffff, REGISTRY_RIPENCC }, // 139.133.0.0 - 139.133.255.255 { 0x8b860000, 0x8b86ffff, REGISTRY_APNIC }, // 139.134.0.0 - 139.134.255.255 { 0x8b870000, 0x8b871fff, REGISTRY_ARIN }, // 139.135.0.0 - 139.135.31.255 { 0x8b872000, 0x8b87ffff, REGISTRY_APNIC }, // 139.135.32.0 - 139.135.255.255 { 0x8b880000, 0x8b8abfff, REGISTRY_ARIN }, // 139.136.0.0 - 139.138.191.255 { 0x8b8ac000, 0x8b8adfff, REGISTRY_RIPENCC }, // 139.138.192.0 - 139.138.223.255 { 0x8b8ae000, 0x8b8cffff, REGISTRY_ARIN }, // 139.138.224.0 - 139.140.255.255 { 0x8b8d0000, 0x8b8dffff, REGISTRY_RIPENCC }, // 139.141.0.0 - 139.141.255.255 { 0x8b8e0000, 0x8b8effff, REGISTRY_ARIN }, // 139.142.0.0 - 139.142.255.255 { 0x8b8f0000, 0x8b8fffff, REGISTRY_RIPENCC }, // 139.143.0.0 - 139.143.255.255 { 0x8b900000, 0x8b90ffff, REGISTRY_ARIN }, // 139.144.0.0 - 139.144.255.255 { 0x8b910000, 0x8b91ffff, REGISTRY_RIPENCC }, // 139.145.0.0 - 139.145.255.255 { 0x8b920000, 0x8b93ffff, REGISTRY_ARIN }, // 139.146.0.0 - 139.147.255.255 { 0x8b940000, 0x8b94ffff, REGISTRY_APNIC }, // 139.148.0.0 - 139.148.255.255 { 0x8b950000, 0x8b95ffff, REGISTRY_RIPENCC }, // 139.149.0.0 - 139.149.255.255 { 0x8b960000, 0x8b96ffff, REGISTRY_APNIC }, // 139.150.0.0 - 139.150.255.255 { 0x8b970000, 0x8b97ffff, REGISTRY_ARIN }, // 139.151.0.0 - 139.151.255.255 { 0x8b980000, 0x8b98ffff, REGISTRY_APNIC }, // 139.152.0.0 - 139.152.255.255 { 0x8b990000, 0x8b99ffff, REGISTRY_RIPENCC }, // 139.153.0.0 - 139.153.255.255 { 0x8b9a0000, 0x8b9bffff, REGISTRY_APNIC }, // 139.154.0.0 - 139.155.255.255 { 0x8b9c0000, 0x8b9effff, REGISTRY_RIPENCC }, // 139.156.0.0 - 139.158.255.255 { 0x8b9f0000, 0x8b9fffff, REGISTRY_APNIC }, // 139.159.0.0 - 139.159.255.255 { 0x8ba00000, 0x8ba0ffff, REGISTRY_RIPENCC }, // 139.160.0.0 - 139.160.255.255 { 0x8ba10000, 0x8ba1ffff, REGISTRY_ARIN }, // 139.161.0.0 - 139.161.255.255 { 0x8ba20000, 0x8ba2ffff, REGISTRY_RIPENCC }, // 139.162.0.0 - 139.162.255.255 { 0x8ba30000, 0x8ba3ffff, REGISTRY_APNIC }, // 139.163.0.0 - 139.163.255.255 { 0x8ba40000, 0x8ba6ffff, REGISTRY_RIPENCC }, // 139.164.0.0 - 139.166.255.255 { 0x8ba70000, 0x8ba8ffff, REGISTRY_APNIC }, // 139.167.0.0 - 139.168.255.255 { 0x8ba90000, 0x8ba9ffff, REGISTRY_ARIN }, // 139.169.0.0 - 139.169.255.255 { 0x8baa0000, 0x8baaffff, REGISTRY_APNIC }, // 139.170.0.0 - 139.170.255.255 { 0x8bab0000, 0x8badffff, REGISTRY_ARIN }, // 139.171.0.0 - 139.173.255.255 { 0x8bae0000, 0x8baeffff, REGISTRY_RIPENCC }, // 139.174.0.0 - 139.174.255.255 { 0x8baf0000, 0x8bb0ffff, REGISTRY_APNIC }, // 139.175.0.0 - 139.176.255.255 { 0x8bb10000, 0x8bb1ffff, REGISTRY_ARIN }, // 139.177.0.0 - 139.177.255.255 { 0x8bb20000, 0x8bb23fff, REGISTRY_RIPENCC }, // 139.178.0.0 - 139.178.63.255 { 0x8bb24000, 0x8bb3ffff, REGISTRY_RIPENCC }, // 139.178.64.0 - 139.179.255.255 { 0x8bb40000, 0x8bb407ff, REGISTRY_ARIN }, // 139.180.0.0 - 139.180.7.255 { 0x8bb40800, 0x8bb40fff, REGISTRY_APNIC }, // 139.180.8.0 - 139.180.15.255 { 0x8bb41000, 0x8bb43fff, REGISTRY_ARIN }, // 139.180.16.0 - 139.180.63.255 { 0x8bb44000, 0x8bb4dfff, REGISTRY_APNIC }, // 139.180.64.0 - 139.180.223.255 { 0x8bb4e000, 0x8bb6ffff, REGISTRY_ARIN }, // 139.180.224.0 - 139.182.255.255 { 0x8bb70000, 0x8bb7ffff, REGISTRY_APNIC }, // 139.183.0.0 - 139.183.255.255 { 0x8bb80000, 0x8bb8ffff, REGISTRY_RIPENCC }, // 139.184.0.0 - 139.184.255.255 { 0x8bb90000, 0x8bb9ffff, REGISTRY_ARIN }, // 139.185.0.0 - 139.185.255.255 { 0x8bba0000, 0x8bbaffff, REGISTRY_APNIC }, // 139.186.0.0 - 139.186.255.255 { 0x8bbb0000, 0x8bbbffff, REGISTRY_ARIN }, // 139.187.0.0 - 139.187.255.255 { 0x8bbc0000, 0x8bbe7fff, REGISTRY_APNIC }, // 139.188.0.0 - 139.190.127.255 { 0x8bbe8000, 0x8bbebfff, REGISTRY_RIPENCC }, // 139.190.128.0 - 139.190.191.255 { 0x8bbec000, 0x8bbeffff, REGISTRY_APNIC }, // 139.190.192.0 - 139.190.255.255 { 0x8bbf0000, 0x8bbfffff, REGISTRY_RIPENCC }, // 139.191.0.0 - 139.191.255.255 { 0x8bc00000, 0x8bddffff, REGISTRY_APNIC }, // 139.192.0.0 - 139.221.255.255 { 0x8bde0000, 0x8bdeffff, REGISTRY_RIPENCC }, // 139.222.0.0 - 139.222.255.255 { 0x8bdf0000, 0x8be0ffff, REGISTRY_APNIC }, // 139.223.0.0 - 139.224.255.255 { 0x8be10000, 0x8be1ffff, REGISTRY_ARIN }, // 139.225.0.0 - 139.225.255.255 { 0x8be20000, 0x8be4ffff, REGISTRY_APNIC }, // 139.226.0.0 - 139.228.255.255 { 0x8be50000, 0x8be5ffff, REGISTRY_ARIN }, // 139.229.0.0 - 139.229.255.255 { 0x8be60000, 0x8be6ffff, REGISTRY_APNIC }, // 139.230.0.0 - 139.230.255.255 { 0x8be70000, 0x8bfeffff, REGISTRY_ARIN }, // 139.231.0.0 - 139.254.255.255 { 0x8bff0000, 0x8c00ffff, REGISTRY_APNIC }, // 139.255.0.0 - 140.0.255.255 { 0x8c010000, 0x8c4affff, REGISTRY_ARIN }, // 140.1.0.0 - 140.74.255.255 { 0x8c4b0000, 0x8c4bffff, REGISTRY_APNIC }, // 140.75.0.0 - 140.75.255.255 { 0x8c4c0000, 0x8c4cffff, REGISTRY_ARIN }, // 140.76.0.0 - 140.76.255.255 { 0x8c4d0000, 0x8c4effff, REGISTRY_RIPENCC }, // 140.77.0.0 - 140.78.255.255 { 0x8c4f0000, 0x8c4fffff, REGISTRY_APNIC }, // 140.79.0.0 - 140.79.255.255 { 0x8c500000, 0x8c50ffff, REGISTRY_ARIN }, // 140.80.0.0 - 140.80.255.255 { 0x8c510000, 0x8c51ffff, REGISTRY_APNIC }, // 140.81.0.0 - 140.81.255.255 { 0x8c520000, 0x8c52bfff, REGISTRY_ARIN }, // 140.82.0.0 - 140.82.191.255 { 0x8c52c000, 0x8c52cfff, REGISTRY_APNIC }, // 140.82.192.0 - 140.82.207.255 { 0x8c52d000, 0x8c52ffff, REGISTRY_ARIN }, // 140.82.208.0 - 140.82.255.255 { 0x8c530000, 0x8c53ffff, REGISTRY_APNIC }, // 140.83.0.0 - 140.83.255.255 { 0x8c540000, 0x8c56ffff, REGISTRY_RIPENCC }, // 140.84.0.0 - 140.86.255.255 { 0x8c570000, 0x8c5bffff, REGISTRY_ARIN }, // 140.87.0.0 - 140.91.255.255 { 0x8c5c0000, 0x8c5cffff, REGISTRY_APNIC }, // 140.92.0.0 - 140.92.255.255 { 0x8c5d0000, 0x8c5effff, REGISTRY_RIPENCC }, // 140.93.0.0 - 140.94.255.255 { 0x8c5f0000, 0x8c5fffff, REGISTRY_ARIN }, // 140.95.0.0 - 140.95.255.255 { 0x8c600000, 0x8c60ffff, REGISTRY_APNIC }, // 140.96.0.0 - 140.96.255.255 { 0x8c610000, 0x8c61ffff, REGISTRY_RIPENCC }, // 140.97.0.0 - 140.97.255.255 { 0x8c620000, 0x8c68ffff, REGISTRY_ARIN }, // 140.98.0.0 - 140.104.255.255 { 0x8c690000, 0x8c69ffff, REGISTRY_RIPENCC }, // 140.105.0.0 - 140.105.255.255 { 0x8c6a0000, 0x8c6cffff, REGISTRY_ARIN }, // 140.106.0.0 - 140.108.255.255 { 0x8c6d0000, 0x8c8affff, REGISTRY_APNIC }, // 140.109.0.0 - 140.138.255.255 { 0x8c8b0000, 0x8c8effff, REGISTRY_ARIN }, // 140.139.0.0 - 140.142.255.255 { 0x8c8f0000, 0x8c8fffff, REGISTRY_APNIC }, // 140.143.0.0 - 140.143.255.255 { 0x8c900000, 0x8c93ffff, REGISTRY_ARIN }, // 140.144.0.0 - 140.147.255.255 { 0x8c940000, 0x8c94ffff, REGISTRY_LACNIC }, // 140.148.0.0 - 140.148.255.255 { 0x8c950000, 0x8c95ffff, REGISTRY_APNIC }, // 140.149.0.0 - 140.149.255.255 { 0x8c960000, 0x8c97ffff, REGISTRY_RIPENCC }, // 140.150.0.0 - 140.151.255.255 { 0x8c980000, 0x8c9effff, REGISTRY_ARIN }, // 140.152.0.0 - 140.158.255.255 { 0x8c9f0000, 0x8c9fffff, REGISTRY_APNIC }, // 140.159.0.0 - 140.159.255.255 { 0x8ca00000, 0x8ca3ffff, REGISTRY_ARIN }, // 140.160.0.0 - 140.163.255.255 { 0x8ca40000, 0x8ca4ffff, REGISTRY_RIPENCC }, // 140.164.0.0 - 140.164.255.255 { 0x8ca50000, 0x8ca5ffff, REGISTRY_ARIN }, // 140.165.0.0 - 140.165.255.255 { 0x8ca60000, 0x8ca6ffff, REGISTRY_RIPENCC }, // 140.166.0.0 - 140.166.255.255 { 0x8ca70000, 0x8ca7ffff, REGISTRY_ARIN }, // 140.167.0.0 - 140.167.255.255 { 0x8ca80000, 0x8ca8ffff, REGISTRY_APNIC }, // 140.168.0.0 - 140.168.255.255 { 0x8ca90000, 0x8cb2ffff, REGISTRY_ARIN }, // 140.169.0.0 - 140.178.255.255 { 0x8cb30000, 0x8cb3ffff, REGISTRY_APNIC }, // 140.179.0.0 - 140.179.255.255 { 0x8cb40000, 0x8cb4ffff, REGISTRY_ARIN }, // 140.180.0.0 - 140.180.255.255 { 0x8cb50000, 0x8cb5ffff, REGISTRY_RIPENCC }, // 140.181.0.0 - 140.181.255.255 { 0x8cb60000, 0x8cbeffff, REGISTRY_ARIN }, // 140.182.0.0 - 140.190.255.255 { 0x8cbf0000, 0x8cbfffff, REGISTRY_LACNIC }, // 140.191.0.0 - 140.191.255.255 { 0x8cc00000, 0x8cc7ffff, REGISTRY_ARIN }, // 140.192.0.0 - 140.199.255.255 { 0x8cc80000, 0x8cc8ffff, REGISTRY_APNIC }, // 140.200.0.0 - 140.200.255.255 { 0x8cc90000, 0x8ccaffff, REGISTRY_ARIN }, // 140.201.0.0 - 140.202.255.255 { 0x8ccb0000, 0x8ccbffff, REGISTRY_RIPENCC }, // 140.203.0.0 - 140.203.255.255 { 0x8ccc0000, 0x8cccffff, REGISTRY_ARIN }, // 140.204.0.0 - 140.204.255.255 { 0x8ccd0000, 0x8ccfffff, REGISTRY_APNIC }, // 140.205.0.0 - 140.207.255.255 { 0x8cd00000, 0x8cd1ffff, REGISTRY_ARIN }, // 140.208.0.0 - 140.209.255.255 { 0x8cd20000, 0x8cd2ffff, REGISTRY_APNIC }, // 140.210.0.0 - 140.210.255.255 { 0x8cd30000, 0x8cd4ffff, REGISTRY_ARIN }, // 140.211.0.0 - 140.212.255.255 { 0x8cd50000, 0x8cd5ffff, REGISTRY_APNIC }, // 140.213.0.0 - 140.213.255.255 { 0x8cd60000, 0x8cdfffff, REGISTRY_ARIN }, // 140.214.0.0 - 140.223.255.255 { 0x8ce00000, 0x8ce0ffff, REGISTRY_APNIC }, // 140.224.0.0 - 140.224.255.255 { 0x8ce10000, 0x8ce2ffff, REGISTRY_ARIN }, // 140.225.0.0 - 140.226.255.255 { 0x8ce30000, 0x8ce3ffff, REGISTRY_APNIC }, // 140.227.0.0 - 140.227.255.255 { 0x8ce40000, 0x8ce41fff, REGISTRY_ARIN }, // 140.228.0.0 - 140.228.31.255 { 0x8ce42000, 0x8ce45fff, REGISTRY_RIPENCC }, // 140.228.32.0 - 140.228.95.255 { 0x8ce46000, 0x8ce6ffff, REGISTRY_ARIN }, // 140.228.96.0 - 140.230.255.255 { 0x8ce70000, 0x8ce7ffff, REGISTRY_RIPENCC }, // 140.231.0.0 - 140.231.255.255 { 0x8ce80000, 0x8cecffff, REGISTRY_ARIN }, // 140.232.0.0 - 140.236.255.255 { 0x8ced0000, 0x8cedffff, REGISTRY_APNIC }, // 140.237.0.0 - 140.237.255.255 { 0x8cee0000, 0x8cefffff, REGISTRY_ARIN }, // 140.238.0.0 - 140.239.255.255 { 0x8cf00000, 0x8cf0ffff, REGISTRY_APNIC }, // 140.240.0.0 - 140.240.255.255 { 0x8cf10000, 0x8cf2ffff, REGISTRY_ARIN }, // 140.241.0.0 - 140.242.255.255 { 0x8cf30000, 0x8cf3ffff, REGISTRY_APNIC }, // 140.243.0.0 - 140.243.255.255 { 0x8cf40000, 0x8cf5ffff, REGISTRY_ARIN }, // 140.244.0.0 - 140.245.255.255 { 0x8cf60000, 0x8cf6ffff, REGISTRY_APNIC }, // 140.246.0.0 - 140.246.255.255 { 0x8cf70000, 0x8cf8ffff, REGISTRY_ARIN }, // 140.247.0.0 - 140.248.255.255 { 0x8cf90000, 0x8cfaffff, REGISTRY_APNIC }, // 140.249.0.0 - 140.250.255.255 { 0x8cfb0000, 0x8cfcffff, REGISTRY_ARIN }, // 140.251.0.0 - 140.252.255.255 { 0x8cfd0000, 0x8cfdffff, REGISTRY_APNIC }, // 140.253.0.0 - 140.253.255.255 { 0x8cfe0000, 0x8cfeffff, REGISTRY_ARIN }, // 140.254.0.0 - 140.254.255.255 { 0x8cff0000, 0x8cffffff, REGISTRY_APNIC }, // 140.255.0.0 - 140.255.255.255 { 0x8d000000, 0x8d00ffff, REGISTRY_RIPENCC }, // 141.0.0.0 - 141.0.255.255 { 0x8d010000, 0x8d07ffff, REGISTRY_RIPENCC }, // 141.1.0.0 - 141.7.255.255 { 0x8d080000, 0x8d08ffff, REGISTRY_RIPENCC }, // 141.8.0.0 - 141.8.255.255 { 0x8d090000, 0x8d0affff, REGISTRY_RIPENCC }, // 141.9.0.0 - 141.10.255.255 { 0x8d0b0000, 0x8d0bffff, REGISTRY_RIPENCC }, // 141.11.0.0 - 141.11.255.255 { 0x8d0c0000, 0x8d1cffff, REGISTRY_RIPENCC }, // 141.12.0.0 - 141.28.255.255 { 0x8d1d0000, 0x8d1dffff, REGISTRY_RIPENCC }, // 141.29.0.0 - 141.29.255.255 { 0x8d1e0000, 0x8d3effff, REGISTRY_RIPENCC }, // 141.30.0.0 - 141.62.255.255 { 0x8d3f0000, 0x8d3fffff, REGISTRY_RIPENCC }, // 141.63.0.0 - 141.63.255.255 { 0x8d400000, 0x8d48ffff, REGISTRY_RIPENCC }, // 141.64.0.0 - 141.72.255.255 { 0x8d490000, 0x8d49ffff, REGISTRY_RIPENCC }, // 141.73.0.0 - 141.73.255.255 { 0x8d4a0000, 0x8d55ffff, REGISTRY_RIPENCC }, // 141.74.0.0 - 141.85.255.255 { 0x8d560000, 0x8d56ffff, REGISTRY_ARIN }, // 141.86.0.0 - 141.86.255.255 { 0x8d570000, 0x8d5cffff, REGISTRY_RIPENCC }, // 141.87.0.0 - 141.92.255.255 { 0x8d5d0000, 0x8d5fffff, REGISTRY_RIPENCC }, // 141.93.0.0 - 141.95.255.255 { 0x8d600000, 0x8d60ffff, REGISTRY_RIPENCC }, // 141.96.0.0 - 141.96.255.255 { 0x8d610000, 0x8d62d7ff, REGISTRY_RIPENCC }, // 141.97.0.0 - 141.98.215.255 { 0x8d62d800, 0x8d62dbff, REGISTRY_ARIN }, // 141.98.216.0 - 141.98.219.255 { 0x8d62dc00, 0x8d62ffff, REGISTRY_RIPENCC }, // 141.98.220.0 - 141.98.255.255 { 0x8d630000, 0x8d64ffff, REGISTRY_RIPENCC }, // 141.99.0.0 - 141.100.255.255 { 0x8d650000, 0x8d65ffff, REGISTRY_RIPENCC }, // 141.101.0.0 - 141.101.255.255 { 0x8d660000, 0x8d66ffff, REGISTRY_ARIN }, // 141.102.0.0 - 141.102.255.255 { 0x8d670000, 0x8d67ffff, REGISTRY_APNIC }, // 141.103.0.0 - 141.103.255.255 { 0x8d680000, 0x8d68ffff, REGISTRY_ARIN }, // 141.104.0.0 - 141.104.255.255 { 0x8d690000, 0x8d69ffff, REGISTRY_RIPENCC }, // 141.105.0.0 - 141.105.255.255 { 0x8d6a0000, 0x8d6bffff, REGISTRY_ARIN }, // 141.106.0.0 - 141.107.255.255 { 0x8d6c0000, 0x8d6cffff, REGISTRY_RIPENCC }, // 141.108.0.0 - 141.108.255.255 { 0x8d6d0000, 0x8d70ffff, REGISTRY_ARIN }, // 141.109.0.0 - 141.112.255.255 { 0x8d710000, 0x8d71ffff, REGISTRY_RIPENCC }, // 141.113.0.0 - 141.113.255.255 { 0x8d720000, 0x8d72ffff, REGISTRY_ARIN }, // 141.114.0.0 - 141.114.255.255 { 0x8d730000, 0x8d73ffff, REGISTRY_RIPENCC }, // 141.115.0.0 - 141.115.255.255 { 0x8d740000, 0x8d77ffff, REGISTRY_ARIN }, // 141.116.0.0 - 141.119.255.255 { 0x8d780000, 0x8d78ffff, REGISTRY_APNIC }, // 141.120.0.0 - 141.120.255.255 { 0x8d790000, 0x8d7cffff, REGISTRY_ARIN }, // 141.121.0.0 - 141.124.255.255 { 0x8d7d0000, 0x8d7dffff, REGISTRY_RIPENCC }, // 141.125.0.0 - 141.125.255.255 { 0x8d7e0000, 0x8d81ffff, REGISTRY_ARIN }, // 141.126.0.0 - 141.129.255.255 { 0x8d820000, 0x8d82ffff, REGISTRY_RIPENCC }, // 141.130.0.0 - 141.130.255.255 { 0x8d830000, 0x8d83ffff, REGISTRY_ARIN }, // 141.131.0.0 - 141.131.255.255 { 0x8d840000, 0x8d84ffff, REGISTRY_APNIC }, // 141.132.0.0 - 141.132.255.255 { 0x8d850000, 0x8d85ffff, REGISTRY_ARIN }, // 141.133.0.0 - 141.133.255.255 { 0x8d860000, 0x8d88ffff, REGISTRY_RIPENCC }, // 141.134.0.0 - 141.136.255.255 { 0x8d890000, 0x8d89ffff, REGISTRY_RIPENCC }, // 141.137.0.0 - 141.137.255.255 { 0x8d8a0000, 0x8d8affff, REGISTRY_RIPENCC }, // 141.138.0.0 - 141.138.255.255 { 0x8d8b0000, 0x8d8c1fff, REGISTRY_ARIN }, // 141.139.0.0 - 141.140.31.255 { 0x8d8c2000, 0x8d8c3fff, REGISTRY_APNIC }, // 141.140.32.0 - 141.140.63.255 { 0x8d8c4000, 0x8d8effff, REGISTRY_ARIN }, // 141.140.64.0 - 141.142.255.255 { 0x8d8f0000, 0x8d94ffff, REGISTRY_RIPENCC }, // 141.143.0.0 - 141.148.255.255 { 0x8d950000, 0x8da2ffff, REGISTRY_ARIN }, // 141.149.0.0 - 141.162.255.255 { 0x8da30000, 0x8da37fff, REGISTRY_RIPENCC }, // 141.163.0.0 - 141.163.127.255 { 0x8da38000, 0x8da3ffff, REGISTRY_APNIC }, // 141.163.128.0 - 141.163.255.255 { 0x8da40000, 0x8da41fff, REGISTRY_ARIN }, // 141.164.0.0 - 141.164.31.255 { 0x8da42000, 0x8da43fff, REGISTRY_APNIC }, // 141.164.32.0 - 141.164.63.255 { 0x8da44000, 0x8da45fff, REGISTRY_ARIN }, // 141.164.64.0 - 141.164.95.255 { 0x8da46000, 0x8da46fff, REGISTRY_APNIC }, // 141.164.96.0 - 141.164.111.255 { 0x8da47000, 0x8da47fff, REGISTRY_ARIN }, // 141.164.112.0 - 141.164.127.255 { 0x8da48000, 0x8da4ffff, REGISTRY_RIPENCC }, // 141.164.128.0 - 141.164.255.255 { 0x8da50000, 0x8da7ffff, REGISTRY_ARIN }, // 141.165.0.0 - 141.167.255.255 { 0x8da80000, 0x8da8ffff, REGISTRY_APNIC }, // 141.168.0.0 - 141.168.255.255 { 0x8da90000, 0x8da9ffff, REGISTRY_RIPENCC }, // 141.169.0.0 - 141.169.255.255 { 0x8daa0000, 0x8daaffff, REGISTRY_RIPENCC }, // 141.170.0.0 - 141.170.255.255 { 0x8dab0000, 0x8dacffff, REGISTRY_RIPENCC }, // 141.171.0.0 - 141.172.255.255 { 0x8dad0000, 0x8daeffff, REGISTRY_ARIN }, // 141.173.0.0 - 141.174.255.255 { 0x8daf0000, 0x8db0ffff, REGISTRY_RIPENCC }, // 141.175.0.0 - 141.176.255.255 { 0x8db10000, 0x8db1ffff, REGISTRY_ARIN }, // 141.177.0.0 - 141.177.255.255 { 0x8db20000, 0x8db2ffff, REGISTRY_APNIC }, // 141.178.0.0 - 141.178.255.255 { 0x8db30000, 0x8db3ffff, REGISTRY_RIPENCC }, // 141.179.0.0 - 141.179.255.255 { 0x8db40000, 0x8dbfffff, REGISTRY_ARIN }, // 141.180.0.0 - 141.191.255.255 { 0x8dc00000, 0x8dc0ffff, REGISTRY_RIPENCC }, // 141.192.0.0 - 141.192.255.255 { 0x8dc10000, 0x8dc113ff, REGISTRY_ARIN }, // 141.193.0.0 - 141.193.19.255 { 0x8dc11400, 0x8dc114ff, REGISTRY_RIPENCC }, // 141.193.20.0 - 141.193.20.255 { 0x8dc11500, 0x8dc127ff, REGISTRY_ARIN }, // 141.193.21.0 - 141.193.39.255 { 0x8dc12800, 0x8dc12bff, REGISTRY_APNIC }, // 141.193.40.0 - 141.193.43.255 { 0x8dc12c00, 0x8dc139ff, REGISTRY_ARIN }, // 141.193.44.0 - 141.193.57.255 { 0x8dc13a00, 0x8dc13bff, REGISTRY_RIPENCC }, // 141.193.58.0 - 141.193.59.255 { 0x8dc13c00, 0x8dc16bff, REGISTRY_ARIN }, // 141.193.60.0 - 141.193.107.255 { 0x8dc16c00, 0x8dc16fff, REGISTRY_RIPENCC }, // 141.193.108.0 - 141.193.111.255 { 0x8dc17000, 0x8dc196ff, REGISTRY_ARIN }, // 141.193.112.0 - 141.193.150.255 { 0x8dc19700, 0x8dc197ff, REGISTRY_LACNIC }, // 141.193.151.0 - 141.193.151.255 { 0x8dc19800, 0x8dc19fff, REGISTRY_APNIC }, // 141.193.152.0 - 141.193.159.255 { 0x8dc1a000, 0x8dc1d5ff, REGISTRY_ARIN }, // 141.193.160.0 - 141.193.213.255 { 0x8dc1d600, 0x8dc1d7ff, REGISTRY_RIPENCC }, // 141.193.214.0 - 141.193.215.255 { 0x8dc1d800, 0x8dc1ffff, REGISTRY_ARIN }, // 141.193.216.0 - 141.193.255.255 { 0x8dc20000, 0x8dc2ffff, REGISTRY_RIPENCC }, // 141.194.0.0 - 141.194.255.255 { 0x8dc30000, 0x8dc307ff, REGISTRY_ARIN }, // 141.195.0.0 - 141.195.7.255 { 0x8dc30800, 0x8dc35fff, REGISTRY_RIPENCC }, // 141.195.8.0 - 141.195.95.255 { 0x8dc36000, 0x8dc37fff, REGISTRY_ARIN }, // 141.195.96.0 - 141.195.127.255 { 0x8dc38000, 0x8dc4ffff, REGISTRY_RIPENCC }, // 141.195.128.0 - 141.196.255.255 { 0x8dc50000, 0x8dc7ffff, REGISTRY_ARIN }, // 141.197.0.0 - 141.199.255.255 { 0x8dc80000, 0x8dc9ffff, REGISTRY_RIPENCC }, // 141.200.0.0 - 141.201.255.255 { 0x8dca0000, 0x8dcaffff, REGISTRY_ARIN }, // 141.202.0.0 - 141.202.255.255 { 0x8dcb0000, 0x8dcbffff, REGISTRY_RIPENCC }, // 141.203.0.0 - 141.203.255.255 { 0x8dcc0000, 0x8dcfffff, REGISTRY_ARIN }, // 141.204.0.0 - 141.207.255.255 { 0x8dd00000, 0x8dd0ffff, REGISTRY_RIPENCC }, // 141.208.0.0 - 141.208.255.255 { 0x8dd10000, 0x8ddeffff, REGISTRY_ARIN }, // 141.209.0.0 - 141.222.255.255 { 0x8ddf0000, 0x8ddfffff, REGISTRY_APNIC }, // 141.223.0.0 - 141.223.255.255 { 0x8de00000, 0x8de0bfff, REGISTRY_ARIN }, // 141.224.0.0 - 141.224.191.255 { 0x8de0c000, 0x8de0ffff, REGISTRY_RIPENCC }, // 141.224.192.0 - 141.224.255.255 { 0x8de10000, 0x8de1ffff, REGISTRY_ARIN }, // 141.225.0.0 - 141.225.255.255 { 0x8de20000, 0x8de257ff, REGISTRY_RIPENCC }, // 141.226.0.0 - 141.226.87.255 { 0x8de25800, 0x8de25fff, REGISTRY_RIPENCC }, // 141.226.88.0 - 141.226.95.255 { 0x8de26000, 0x8de277ff, REGISTRY_RIPENCC }, // 141.226.96.0 - 141.226.119.255 { 0x8de27800, 0x8de27bff, REGISTRY_RIPENCC }, // 141.226.120.0 - 141.226.123.255 { 0x8de27c00, 0x8de285ff, REGISTRY_RIPENCC }, // 141.226.124.0 - 141.226.133.255 { 0x8de28600, 0x8de286ff, REGISTRY_RIPENCC }, // 141.226.134.0 - 141.226.134.255 { 0x8de28700, 0x8de287ff, REGISTRY_RIPENCC }, // 141.226.135.0 - 141.226.135.255 { 0x8de28800, 0x8de28aff, REGISTRY_ARIN }, // 141.226.136.0 - 141.226.138.255 { 0x8de28b00, 0x8de28bff, REGISTRY_RIPENCC }, // 141.226.139.0 - 141.226.139.255 { 0x8de28c00, 0x8de28fff, REGISTRY_ARIN }, // 141.226.140.0 - 141.226.143.255 { 0x8de29000, 0x8de2bfff, REGISTRY_RIPENCC }, // 141.226.144.0 - 141.226.191.255 { 0x8de2c000, 0x8de2dfff, REGISTRY_RIPENCC }, // 141.226.192.0 - 141.226.223.255 { 0x8de2e000, 0x8de2ebff, REGISTRY_RIPENCC }, // 141.226.224.0 - 141.226.235.255 { 0x8de2ec00, 0x8de2ffff, REGISTRY_RIPENCC }, // 141.226.236.0 - 141.226.255.255 { 0x8de30000, 0x8de4ffff, REGISTRY_RIPENCC }, // 141.227.0.0 - 141.228.255.255 { 0x8de60000, 0x8decffff, REGISTRY_ARIN }, // 141.230.0.0 - 141.236.255.255 { 0x8ded0000, 0x8dedffff, REGISTRY_RIPENCC }, // 141.237.0.0 - 141.237.255.255 { 0x8dee0000, 0x8df0ffff, REGISTRY_ARIN }, // 141.238.0.0 - 141.240.255.255 { 0x8df10000, 0x8df1ffff, REGISTRY_RIPENCC }, // 141.241.0.0 - 141.241.255.255 { 0x8df20000, 0x8df2ffff, REGISTRY_ARIN }, // 141.242.0.0 - 141.242.255.255 { 0x8df30000, 0x8df3ffff, REGISTRY_APNIC }, // 141.243.0.0 - 141.243.255.255 { 0x8df40000, 0x8df5ffff, REGISTRY_RIPENCC }, // 141.244.0.0 - 141.245.255.255 { 0x8df60000, 0x8df8ffff, REGISTRY_ARIN }, // 141.246.0.0 - 141.248.255.255 { 0x8df90000, 0x8dfaffff, REGISTRY_RIPENCC }, // 141.249.0.0 - 141.250.255.255 { 0x8dfb0000, 0x8dfbffff, REGISTRY_ARIN }, // 141.251.0.0 - 141.251.255.255 { 0x8dfc0000, 0x8dfdffff, REGISTRY_RIPENCC }, // 141.252.0.0 - 141.253.255.255 { 0x8dfe0000, 0x8dfeffff, REGISTRY_ARIN }, // 141.254.0.0 - 141.254.255.255 { 0x8dff0000, 0x8dffffff, REGISTRY_RIPENCC }, // 141.255.0.0 - 141.255.255.255 { 0x8e000000, 0x8e003fff, REGISTRY_ARIN }, // 142.0.0.0 - 142.0.63.255 { 0x8e004000, 0x8e0043ff, REGISTRY_LACNIC }, // 142.0.64.0 - 142.0.67.255 { 0x8e004400, 0x8e2c0fff, REGISTRY_ARIN }, // 142.0.68.0 - 142.44.15.255 { 0x8e2c1000, 0x8e2c1fff, REGISTRY_RIPENCC }, // 142.44.16.0 - 142.44.31.255 { 0x8e2c2000, 0x8e2c3fff, REGISTRY_RIPENCC }, // 142.44.32.0 - 142.44.63.255 { 0x8e2c4000, 0x8e45ffff, REGISTRY_ARIN }, // 142.44.64.0 - 142.69.255.255 { 0x8e460000, 0x8e46ffff, REGISTRY_APNIC }, // 142.70.0.0 - 142.70.255.255 { 0x8e470000, 0x8e4fdfff, REGISTRY_ARIN }, // 142.71.0.0 - 142.79.223.255 { 0x8e4fe000, 0x8e4fffff, REGISTRY_APNIC }, // 142.79.224.0 - 142.79.255.255 { 0x8e500000, 0x8e55ffff, REGISTRY_ARIN }, // 142.80.0.0 - 142.85.255.255 { 0x8e560000, 0x8e56ffff, REGISTRY_APNIC }, // 142.86.0.0 - 142.86.255.255 { 0x8e570000, 0x8e5b07ff, REGISTRY_ARIN }, // 142.87.0.0 - 142.91.7.255 { 0x8e5b0800, 0x8e5b0fff, REGISTRY_RIPENCC }, // 142.91.8.0 - 142.91.15.255 { 0x8e5b1000, 0x8e5b77ff, REGISTRY_ARIN }, // 142.91.16.0 - 142.91.119.255 { 0x8e5b7800, 0x8e5b7fff, REGISTRY_RIPENCC }, // 142.91.120.0 - 142.91.127.255 { 0x8e5b8000, 0x8e5b97ff, REGISTRY_ARIN }, // 142.91.128.0 - 142.91.151.255 { 0x8e5b9800, 0x8e5b9fff, REGISTRY_RIPENCC }, // 142.91.152.0 - 142.91.159.255 { 0x8e5ba000, 0x8e847fff, REGISTRY_ARIN }, // 142.91.160.0 - 142.132.127.255 { 0x8e848000, 0x8e84ffff, REGISTRY_RIPENCC }, // 142.132.128.0 - 142.132.255.255 { 0x8e850000, 0x8e99ffff, REGISTRY_ARIN }, // 142.133.0.0 - 142.153.255.255 { 0x8e9a0000, 0x8e9a7fff, REGISTRY_RIPENCC }, // 142.154.0.0 - 142.154.127.255 { 0x8e9a8000, 0x8eea1fff, REGISTRY_ARIN }, // 142.154.128.0 - 142.234.31.255 { 0x8eea2000, 0x8eea27ff, REGISTRY_RIPENCC }, // 142.234.32.0 - 142.234.39.255 { 0x8eea2800, 0x8ef6ffff, REGISTRY_ARIN }, // 142.234.40.0 - 142.246.255.255 { 0x8ef70000, 0x8ef7ffff, REGISTRY_RIPENCC }, // 142.247.0.0 - 142.247.255.255 { 0x8ef80000, 0x8effffff, REGISTRY_ARIN }, // 142.248.0.0 - 142.255.255.255 { 0x8f000000, 0x8f00ffff, REGISTRY_LACNIC }, // 143.0.0.0 - 143.0.255.255 { 0x8f010000, 0x8f28ffff, REGISTRY_ARIN }, // 143.1.0.0 - 143.40.255.255 { 0x8f290000, 0x8f29ffff, REGISTRY_RIPENCC }, // 143.41.0.0 - 143.41.255.255 { 0x8f2a0000, 0x8f2c7fff, REGISTRY_ARIN }, // 143.42.0.0 - 143.44.127.255 { 0x8f2c8000, 0x8f2cffff, REGISTRY_APNIC }, // 143.44.128.0 - 143.44.255.255 { 0x8f2d0000, 0x8f2effff, REGISTRY_ARIN }, // 143.45.0.0 - 143.46.255.255 { 0x8f2f0000, 0x8f2fffff, REGISTRY_RIPENCC }, // 143.47.0.0 - 143.47.255.255 { 0x8f300000, 0x8f31ffff, REGISTRY_ARIN }, // 143.48.0.0 - 143.49.255.255 { 0x8f320000, 0x8f35ffff, REGISTRY_RIPENCC }, // 143.50.0.0 - 143.53.255.255 { 0x8f360000, 0x8f36ffff, REGISTRY_LACNIC }, // 143.54.0.0 - 143.54.255.255 { 0x8f370000, 0x8f378fff, REGISTRY_ARIN }, // 143.55.0.0 - 143.55.143.255 { 0x8f379000, 0x8f3797ff, REGISTRY_RIPENCC }, // 143.55.144.0 - 143.55.151.255 { 0x8f379800, 0x8f3a3fff, REGISTRY_ARIN }, // 143.55.152.0 - 143.58.63.255 { 0x8f3a4000, 0x8f3affff, REGISTRY_RIPENCC }, // 143.58.64.0 - 143.58.255.255 { 0x8f3b0000, 0x8f3fffff, REGISTRY_ARIN }, // 143.59.0.0 - 143.63.255.255 { 0x8f400000, 0x8f40ffff, REGISTRY_APNIC }, // 143.64.0.0 - 143.64.255.255 { 0x8f410000, 0x8f41ffff, REGISTRY_RIPENCC }, // 143.65.0.0 - 143.65.255.255 { 0x8f420000, 0x8f58ffff, REGISTRY_ARIN }, // 143.66.0.0 - 143.88.255.255 { 0x8f590000, 0x8f5affff, REGISTRY_APNIC }, // 143.89.0.0 - 143.90.255.255 { 0x8f5b0000, 0x8f5bffff, REGISTRY_ARIN }, // 143.91.0.0 - 143.91.255.255 { 0x8f5c0000, 0x8f5c7fff, REGISTRY_APNIC }, // 143.92.0.0 - 143.92.127.255 { 0x8f5c8000, 0x8f5cffff, REGISTRY_RIPENCC }, // 143.92.128.0 - 143.92.255.255 { 0x8f5d0000, 0x8f5dffff, REGISTRY_RIPENCC }, // 143.93.0.0 - 143.93.255.255 { 0x8f5e0000, 0x8f5effff, REGISTRY_APNIC }, // 143.94.0.0 - 143.94.255.255 { 0x8f5f0000, 0x8f5fffff, REGISTRY_ARIN }, // 143.95.0.0 - 143.95.255.255 { 0x8f600000, 0x8f60ffff, REGISTRY_APNIC }, // 143.96.0.0 - 143.96.255.255 { 0x8f610000, 0x8f61ffff, REGISTRY_RIPENCC }, // 143.97.0.0 - 143.97.255.255 { 0x8f620000, 0x8f62ffff, REGISTRY_ARIN }, // 143.98.0.0 - 143.98.255.255 { 0x8f630000, 0x8f63ffff, REGISTRY_RIPENCC }, // 143.99.0.0 - 143.99.255.255 { 0x8f640000, 0x8f69ffff, REGISTRY_ARIN }, // 143.100.0.0 - 143.105.255.255 { 0x8f6a0000, 0x8f6cffff, REGISTRY_LACNIC }, // 143.106.0.0 - 143.108.255.255 { 0x8f6d0000, 0x8f6e5fff, REGISTRY_ARIN }, // 143.109.0.0 - 143.110.95.255 { 0x8f6e6000, 0x8f6e7fff, REGISTRY_RIPENCC }, // 143.110.96.0 - 143.110.127.255 { 0x8f6e8000, 0x8f74ffff, REGISTRY_ARIN }, // 143.110.128.0 - 143.116.255.255 { 0x8f750000, 0x8f76ffff, REGISTRY_RIPENCC }, // 143.117.0.0 - 143.118.255.255 { 0x8f770000, 0x8f77ffff, REGISTRY_APNIC }, // 143.119.0.0 - 143.119.255.255 { 0x8f780000, 0x8f78ffff, REGISTRY_ARIN }, // 143.120.0.0 - 143.120.255.255 { 0x8f790000, 0x8f79ffff, REGISTRY_RIPENCC }, // 143.121.0.0 - 143.121.255.255 { 0x8f7a0000, 0x8f7cffff, REGISTRY_ARIN }, // 143.122.0.0 - 143.124.255.255 { 0x8f7d0000, 0x8f7dffff, REGISTRY_APNIC }, // 143.125.0.0 - 143.125.255.255 { 0x8f7e0000, 0x8f7effff, REGISTRY_RIPENCC }, // 143.126.0.0 - 143.126.255.255 { 0x8f7f0000, 0x8f7fffff, REGISTRY_ARIN }, // 143.127.0.0 - 143.127.255.255 { 0x8f800000, 0x8f80ffff, REGISTRY_AFRINIC }, // 143.128.0.0 - 143.128.255.255 { 0x8f810000, 0x8f82ffff, REGISTRY_RIPENCC }, // 143.129.0.0 - 143.130.255.255 { 0x8f830000, 0x8f83bfff, REGISTRY_ARIN }, // 143.131.0.0 - 143.131.191.255 { 0x8f83c000, 0x8f83ffff, REGISTRY_RIPENCC }, // 143.131.192.0 - 143.131.255.255 { 0x8f840000, 0x8f87ffff, REGISTRY_ARIN }, // 143.132.0.0 - 143.135.255.255 { 0x8f890000, 0x8f89ffff, REGISTRY_LACNIC }, // 143.137.0.0 - 143.137.255.255 { 0x8f8a0000, 0x8f9fffff, REGISTRY_ARIN }, // 143.138.0.0 - 143.159.255.255 { 0x8fa00000, 0x8fa0ffff, REGISTRY_AFRINIC }, // 143.160.0.0 - 143.160.255.255 { 0x8fa10000, 0x8fa1ffff, REGISTRY_RIPENCC }, // 143.161.0.0 - 143.161.255.255 { 0x8fa20000, 0x8fa2ffff, REGISTRY_ARIN }, // 143.162.0.0 - 143.162.255.255 { 0x8fa30000, 0x8fa4ffff, REGISTRY_RIPENCC }, // 143.163.0.0 - 143.164.255.255 { 0x8fa50000, 0x8fa6ffff, REGISTRY_ARIN }, // 143.165.0.0 - 143.166.255.255 { 0x8fa70000, 0x8fa7ffff, REGISTRY_RIPENCC }, // 143.167.0.0 - 143.167.255.255 { 0x8fa80000, 0x8fa8ffff, REGISTRY_ARIN }, // 143.168.0.0 - 143.168.255.255 { 0x8fa90000, 0x8fa9ffff, REGISTRY_RIPENCC }, // 143.169.0.0 - 143.169.255.255 { 0x8faa0000, 0x8faaffff, REGISTRY_ARIN }, // 143.170.0.0 - 143.170.255.255 { 0x8fac0000, 0x8fadffff, REGISTRY_ARIN }, // 143.172.0.0 - 143.173.255.255 { 0x8fae0000, 0x8faeffff, REGISTRY_APNIC }, // 143.174.0.0 - 143.174.255.255 { 0x8faf0000, 0x8fafffff, REGISTRY_ARIN }, // 143.175.0.0 - 143.175.255.255 { 0x8fb00000, 0x8fb4ffff, REGISTRY_RIPENCC }, // 143.176.0.0 - 143.180.255.255 { 0x8fb50000, 0x8fbbffff, REGISTRY_ARIN }, // 143.181.0.0 - 143.187.255.255 { 0x8fbc0000, 0x8fbdffff, REGISTRY_APNIC }, // 143.188.0.0 - 143.189.255.255 { 0x8fbe0000, 0x8fc05fff, REGISTRY_ARIN }, // 143.190.0.0 - 143.192.95.255 { 0x8fc06000, 0x8fc07fff, REGISTRY_APNIC }, // 143.192.96.0 - 143.192.127.255 { 0x8fc08000, 0x8fc3ffff, REGISTRY_ARIN }, // 143.192.128.0 - 143.195.255.255 { 0x8fc40000, 0x8fc4ffff, REGISTRY_RIPENCC }, // 143.196.0.0 - 143.196.255.255 { 0x8fc50000, 0x8fc8ffff, REGISTRY_ARIN }, // 143.197.0.0 - 143.200.255.255 { 0x8fc90000, 0x8fc9ffff, REGISTRY_APNIC }, // 143.201.0.0 - 143.201.255.255 { 0x8fca0000, 0x8fcaffff, REGISTRY_LACNIC }, // 143.202.0.0 - 143.202.255.255 { 0x8fcb0000, 0x8fccffff, REGISTRY_ARIN }, // 143.203.0.0 - 143.204.255.255 { 0x8fcd0000, 0x8fcdffff, REGISTRY_RIPENCC }, // 143.205.0.0 - 143.205.255.255 { 0x8fce0000, 0x8fcfffff, REGISTRY_ARIN }, // 143.206.0.0 - 143.207.255.255 { 0x8fd00000, 0x8fd057ff, REGISTRY_LACNIC }, // 143.208.0.0 - 143.208.87.255 { 0x8fd05c00, 0x8fd0ffff, REGISTRY_LACNIC }, // 143.208.92.0 - 143.208.255.255 { 0x8fd10000, 0x8fd1ffff, REGISTRY_ARIN }, // 143.209.0.0 - 143.209.255.255 { 0x8fd20000, 0x8fd2ffff, REGISTRY_RIPENCC }, // 143.210.0.0 - 143.210.255.255 { 0x8fd30000, 0x8fd7ffff, REGISTRY_ARIN }, // 143.211.0.0 - 143.215.255.255 { 0x8fd80000, 0x8fd8ffff, REGISTRY_APNIC }, // 143.216.0.0 - 143.216.255.255 { 0x8fd90000, 0x8fd9ffff, REGISTRY_RIPENCC }, // 143.217.0.0 - 143.217.255.255 { 0x8fdb0000, 0x8fdcffff, REGISTRY_ARIN }, // 143.219.0.0 - 143.220.255.255 { 0x8fdd0000, 0x8fddffff, REGISTRY_APNIC }, // 143.221.0.0 - 143.221.255.255 { 0x8fde0000, 0x8fdfffff, REGISTRY_ARIN }, // 143.222.0.0 - 143.223.255.255 { 0x8fe00000, 0x8fe1ffff, REGISTRY_RIPENCC }, // 143.224.0.0 - 143.225.255.255 { 0x8fe20000, 0x8fe2ffff, REGISTRY_RIPENCC }, // 143.226.0.0 - 143.226.255.255 { 0x8fe30000, 0x8fe8ffff, REGISTRY_ARIN }, // 143.227.0.0 - 143.232.255.255 { 0x8fe90000, 0x8feaffff, REGISTRY_RIPENCC }, // 143.233.0.0 - 143.234.255.255 { 0x8feb0000, 0x8fecffff, REGISTRY_ARIN }, // 143.235.0.0 - 143.236.255.255 { 0x8fed0000, 0x8fedffff, REGISTRY_RIPENCC }, // 143.237.0.0 - 143.237.255.255 { 0x8fee0000, 0x8feeffff, REGISTRY_APNIC }, // 143.238.0.0 - 143.238.255.255 { 0x8fef0000, 0x8fefffff, REGISTRY_RIPENCC }, // 143.239.0.0 - 143.239.255.255 { 0x8ff00000, 0x8ff41fff, REGISTRY_ARIN }, // 143.240.0.0 - 143.244.31.255 { 0x8ff42000, 0x8ff43fff, REGISTRY_RIPENCC }, // 143.244.32.0 - 143.244.63.255 { 0x8ff44000, 0x8ff4ffff, REGISTRY_ARIN }, // 143.244.64.0 - 143.244.255.255 { 0x8ff50000, 0x8ff5ffff, REGISTRY_RIPENCC }, // 143.245.0.0 - 143.245.255.255 { 0x8ff60000, 0x8ff7ffff, REGISTRY_ARIN }, // 143.246.0.0 - 143.247.255.255 { 0x8ff80000, 0x8ff8ffff, REGISTRY_APNIC }, // 143.248.0.0 - 143.248.255.255 { 0x8ff90000, 0x8ffbffff, REGISTRY_ARIN }, // 143.249.0.0 - 143.251.255.255 { 0x8ffc0000, 0x8ffcffff, REGISTRY_RIPENCC }, // 143.252.0.0 - 143.252.255.255 { 0x8ffd0000, 0x8ffdffff, REGISTRY_APNIC }, // 143.253.0.0 - 143.253.255.255 { 0x8ffe0000, 0x8ffeffff, REGISTRY_ARIN }, // 143.254.0.0 - 143.254.255.255 { 0x8fff0000, 0x8fffffff, REGISTRY_LACNIC }, // 143.255.0.0 - 143.255.255.255 { 0x90000000, 0x9001ffff, REGISTRY_APNIC }, // 144.0.0.0 - 144.1.255.255 { 0x90020000, 0x9002ffff, REGISTRY_RIPENCC }, // 144.2.0.0 - 144.2.255.255 { 0x90030000, 0x9003ffff, REGISTRY_ARIN }, // 144.3.0.0 - 144.3.255.255 { 0x90040000, 0x9004ffff, REGISTRY_RIPENCC }, // 144.4.0.0 - 144.4.255.255 { 0x90050000, 0x9005ffff, REGISTRY_ARIN }, // 144.5.0.0 - 144.5.255.255 { 0x90060000, 0x9007ffff, REGISTRY_APNIC }, // 144.6.0.0 - 144.7.255.255 { 0x90080000, 0x900bffff, REGISTRY_ARIN }, // 144.8.0.0 - 144.11.255.255 { 0x900c0000, 0x900cffff, REGISTRY_APNIC }, // 144.12.0.0 - 144.12.255.255 { 0x900d0000, 0x900fffff, REGISTRY_ARIN }, // 144.13.0.0 - 144.15.255.255 { 0x90100000, 0x9010ffff, REGISTRY_APNIC }, // 144.16.0.0 - 144.16.255.255 { 0x90110000, 0x9013ffff, REGISTRY_ARIN }, // 144.17.0.0 - 144.19.255.255 { 0x90140000, 0x9015ffff, REGISTRY_RIPENCC }, // 144.20.0.0 - 144.21.255.255 { 0x90160000, 0x9017ffff, REGISTRY_LACNIC }, // 144.22.0.0 - 144.23.255.255 { 0x90180000, 0x9018ffff, REGISTRY_RIPENCC }, // 144.24.0.0 - 144.24.255.255 { 0x90190000, 0x901affff, REGISTRY_ARIN }, // 144.25.0.0 - 144.26.255.255 { 0x901b0000, 0x901bffff, REGISTRY_RIPENCC }, // 144.27.0.0 - 144.27.255.255 { 0x901c0000, 0x901fffff, REGISTRY_ARIN }, // 144.28.0.0 - 144.31.255.255 { 0x90200000, 0x9020ffff, REGISTRY_RIPENCC }, // 144.32.0.0 - 144.32.255.255 { 0x90210000, 0x902445ff, REGISTRY_ARIN }, // 144.33.0.0 - 144.36.69.255 { 0x90244600, 0x902449ff, REGISTRY_APNIC }, // 144.36.70.0 - 144.36.73.255 { 0x90244a00, 0x902467ff, REGISTRY_ARIN }, // 144.36.74.0 - 144.36.103.255 { 0x90246800, 0x902468ff, REGISTRY_APNIC }, // 144.36.104.0 - 144.36.104.255 { 0x90246900, 0x90247fff, REGISTRY_ARIN }, // 144.36.105.0 - 144.36.127.255 { 0x90248000, 0x902481ff, REGISTRY_APNIC }, // 144.36.128.0 - 144.36.129.255 { 0x90248200, 0x902485ff, REGISTRY_ARIN }, // 144.36.130.0 - 144.36.133.255 { 0x90248600, 0x902487ff, REGISTRY_APNIC }, // 144.36.134.0 - 144.36.135.255 { 0x90248800, 0x90248bff, REGISTRY_ARIN }, // 144.36.136.0 - 144.36.139.255 { 0x90248c00, 0x90248dff, REGISTRY_APNIC }, // 144.36.140.0 - 144.36.141.255 { 0x90248e00, 0x90248fff, REGISTRY_ARIN }, // 144.36.142.0 - 144.36.143.255 { 0x90249000, 0x902491ff, REGISTRY_APNIC }, // 144.36.144.0 - 144.36.145.255 { 0x90249200, 0x902493ff, REGISTRY_ARIN }, // 144.36.146.0 - 144.36.147.255 { 0x90249400, 0x902495ff, REGISTRY_APNIC }, // 144.36.148.0 - 144.36.149.255 { 0x90249600, 0x9024afff, REGISTRY_ARIN }, // 144.36.150.0 - 144.36.175.255 { 0x9024b000, 0x9024b0ff, REGISTRY_APNIC }, // 144.36.176.0 - 144.36.176.255 { 0x9024b100, 0x9024b1ff, REGISTRY_ARIN }, // 144.36.177.0 - 144.36.177.255 { 0x9024b200, 0x9024b2ff, REGISTRY_APNIC }, // 144.36.178.0 - 144.36.178.255 { 0x9024b300, 0x9024b5ff, REGISTRY_ARIN }, // 144.36.179.0 - 144.36.181.255 { 0x9024b600, 0x9024b9ff, REGISTRY_APNIC }, // 144.36.182.0 - 144.36.185.255 { 0x9024ba00, 0x9024bbff, REGISTRY_ARIN }, // 144.36.186.0 - 144.36.187.255 { 0x9024bc00, 0x9024bdff, REGISTRY_APNIC }, // 144.36.188.0 - 144.36.189.255 { 0x9024be00, 0x9024cdff, REGISTRY_ARIN }, // 144.36.190.0 - 144.36.205.255 { 0x9024ce00, 0x9024cfff, REGISTRY_APNIC }, // 144.36.206.0 - 144.36.207.255 { 0x9024d000, 0x9024d1ff, REGISTRY_ARIN }, // 144.36.208.0 - 144.36.209.255 { 0x9024d200, 0x9024d3ff, REGISTRY_APNIC }, // 144.36.210.0 - 144.36.211.255 { 0x9024d400, 0x9024d5ff, REGISTRY_ARIN }, // 144.36.212.0 - 144.36.213.255 { 0x9024d600, 0x9024d9ff, REGISTRY_APNIC }, // 144.36.214.0 - 144.36.217.255 { 0x9024da00, 0x9024dbff, REGISTRY_ARIN }, // 144.36.218.0 - 144.36.219.255 { 0x9024dc00, 0x9024ecff, REGISTRY_APNIC }, // 144.36.220.0 - 144.36.236.255 { 0x9024ed00, 0x9024f3ff, REGISTRY_ARIN }, // 144.36.237.0 - 144.36.243.255 { 0x9024f400, 0x9024f5ff, REGISTRY_APNIC }, // 144.36.244.0 - 144.36.245.255 { 0x9024f600, 0x9024f7ff, REGISTRY_ARIN }, // 144.36.246.0 - 144.36.247.255 { 0x9024f800, 0x9024fbff, REGISTRY_APNIC }, // 144.36.248.0 - 144.36.251.255 { 0x9024fc00, 0x9024fdff, REGISTRY_ARIN }, // 144.36.252.0 - 144.36.253.255 { 0x9024fe00, 0x9024ffff, REGISTRY_APNIC }, // 144.36.254.0 - 144.36.255.255 { 0x90250000, 0x9028ffff, REGISTRY_ARIN }, // 144.37.0.0 - 144.40.255.255 { 0x90290000, 0x9029ffff, REGISTRY_RIPENCC }, // 144.41.0.0 - 144.41.255.255 { 0x902a0000, 0x902affff, REGISTRY_ARIN }, // 144.42.0.0 - 144.42.255.255 { 0x902b0000, 0x902cffff, REGISTRY_RIPENCC }, // 144.43.0.0 - 144.44.255.255 { 0x902d0000, 0x902fffff, REGISTRY_ARIN }, // 144.45.0.0 - 144.47.255.255 { 0x90300000, 0x903007ff, REGISTRY_APNIC }, // 144.48.0.0 - 144.48.7.255 { 0x90300800, 0x90300bff, REGISTRY_RIPENCC }, // 144.48.8.0 - 144.48.11.255 { 0x90300c00, 0x90303bff, REGISTRY_APNIC }, // 144.48.12.0 - 144.48.59.255 { 0x90303c00, 0x90303fff, REGISTRY_RIPENCC }, // 144.48.60.0 - 144.48.63.255 { 0x90304000, 0x9030bfff, REGISTRY_APNIC }, // 144.48.64.0 - 144.48.191.255 { 0x9030c000, 0x9030c3ff, REGISTRY_RIPENCC }, // 144.48.192.0 - 144.48.195.255 { 0x9030c400, 0x9030ebff, REGISTRY_APNIC }, // 144.48.196.0 - 144.48.235.255 { 0x9030ec00, 0x9030efff, REGISTRY_RIPENCC }, // 144.48.236.0 - 144.48.239.255 { 0x9030f000, 0x9030f7ff, REGISTRY_APNIC }, // 144.48.240.0 - 144.48.247.255 { 0x9030fa00, 0x9030ffff, REGISTRY_APNIC }, // 144.48.250.0 - 144.48.255.255 { 0x90310000, 0x9033ffff, REGISTRY_ARIN }, // 144.49.0.0 - 144.51.255.255 { 0x90340000, 0x9035ffff, REGISTRY_APNIC }, // 144.52.0.0 - 144.53.255.255 { 0x90360000, 0x9036ffff, REGISTRY_RIPENCC }, // 144.54.0.0 - 144.54.255.255 { 0x90370000, 0x9037ffff, REGISTRY_APNIC }, // 144.55.0.0 - 144.55.255.255 { 0x90380000, 0x9039ffff, REGISTRY_RIPENCC }, // 144.56.0.0 - 144.57.255.255 { 0x903a0000, 0x903effff, REGISTRY_ARIN }, // 144.58.0.0 - 144.62.255.255 { 0x903f0000, 0x903fffff, REGISTRY_RIPENCC }, // 144.63.0.0 - 144.63.255.255 { 0x90400000, 0x9040ffff, REGISTRY_RIPENCC }, // 144.64.0.0 - 144.64.255.255 { 0x90410000, 0x9041ffff, REGISTRY_RIPENCC }, // 144.65.0.0 - 144.65.255.255 { 0x90420000, 0x9042ffff, REGISTRY_APNIC }, // 144.66.0.0 - 144.66.255.255 { 0x90430000, 0x904bffff, REGISTRY_ARIN }, // 144.67.0.0 - 144.75.255.255 { 0x904c0000, 0x904cffff, REGISTRY_RIPENCC }, // 144.76.0.0 - 144.76.255.255 { 0x904d0000, 0x904effff, REGISTRY_ARIN }, // 144.77.0.0 - 144.78.255.255 { 0x90500000, 0x9051ffff, REGISTRY_ARIN }, // 144.80.0.0 - 144.81.255.255 { 0x90520000, 0x9052ffff, REGISTRY_RIPENCC }, // 144.82.0.0 - 144.82.255.255 { 0x90530000, 0x9053ffff, REGISTRY_ARIN }, // 144.83.0.0 - 144.83.255.255 { 0x90540000, 0x9055ffff, REGISTRY_RIPENCC }, // 144.84.0.0 - 144.85.255.255 { 0x90560000, 0x90567fff, REGISTRY_RIPENCC }, // 144.86.0.0 - 144.86.127.255 { 0x90568000, 0x9056e3ff, REGISTRY_ARIN }, // 144.86.128.0 - 144.86.227.255 { 0x9056e400, 0x9056e7ff, REGISTRY_RIPENCC }, // 144.86.228.0 - 144.86.231.255 { 0x9056e800, 0x9056ffff, REGISTRY_ARIN }, // 144.86.232.0 - 144.86.255.255 { 0x90570000, 0x9057ffff, REGISTRY_RIPENCC }, // 144.87.0.0 - 144.87.255.255 { 0x90580000, 0x90597fff, REGISTRY_ARIN }, // 144.88.0.0 - 144.89.127.255 { 0x90598000, 0x9059ffff, REGISTRY_APNIC }, // 144.89.128.0 - 144.89.255.255 { 0x905a0000, 0x905b3fff, REGISTRY_ARIN }, // 144.90.0.0 - 144.91.63.255 { 0x905b4000, 0x905b7fff, REGISTRY_RIPENCC }, // 144.91.64.0 - 144.91.127.255 { 0x905b8000, 0x905bafff, REGISTRY_APNIC }, // 144.91.128.0 - 144.91.175.255 { 0x905bb000, 0x905effff, REGISTRY_ARIN }, // 144.91.176.0 - 144.94.255.255 { 0x905f0000, 0x905fffff, REGISTRY_RIPENCC }, // 144.95.0.0 - 144.95.255.255 { 0x90600000, 0x9060ffff, REGISTRY_ARIN }, // 144.96.0.0 - 144.96.255.255 { 0x90610000, 0x9061ffff, REGISTRY_APNIC }, // 144.97.0.0 - 144.97.255.255 { 0x90620000, 0x9062ffff, REGISTRY_RIPENCC }, // 144.98.0.0 - 144.98.255.255 { 0x90630000, 0x906dffff, REGISTRY_ARIN }, // 144.99.0.0 - 144.109.255.255 { 0x906e0000, 0x906effff, REGISTRY_APNIC }, // 144.110.0.0 - 144.110.255.255 { 0x906f0000, 0x9076ffff, REGISTRY_ARIN }, // 144.111.0.0 - 144.118.255.255 { 0x90770000, 0x9077ffff, REGISTRY_RIPENCC }, // 144.119.0.0 - 144.119.255.255 { 0x90780000, 0x9078ffff, REGISTRY_APNIC }, // 144.120.0.0 - 144.120.255.255 { 0x90790000, 0x9079ffff, REGISTRY_ARIN }, // 144.121.0.0 - 144.121.255.255 { 0x907a0000, 0x907affff, REGISTRY_RIPENCC }, // 144.122.0.0 - 144.122.255.255 { 0x907b0000, 0x907bffff, REGISTRY_APNIC }, // 144.123.0.0 - 144.123.255.255 { 0x907c0000, 0x907cffff, REGISTRY_RIPENCC }, // 144.124.0.0 - 144.124.255.255 { 0x907d0000, 0x907effff, REGISTRY_ARIN }, // 144.125.0.0 - 144.126.255.255 { 0x907f0000, 0x907fffff, REGISTRY_RIPENCC }, // 144.127.0.0 - 144.127.255.255 { 0x90800000, 0x9081ffff, REGISTRY_ARIN }, // 144.128.0.0 - 144.129.255.255 { 0x90820000, 0x908cffff, REGISTRY_APNIC }, // 144.130.0.0 - 144.140.255.255 { 0x908d0000, 0x9090ffff, REGISTRY_ARIN }, // 144.141.0.0 - 144.144.255.255 { 0x90910000, 0x9091ffff, REGISTRY_RIPENCC }, // 144.145.0.0 - 144.145.255.255 { 0x90920000, 0x90a3ffff, REGISTRY_ARIN }, // 144.146.0.0 - 144.163.255.255 { 0x90a40000, 0x90a5ffff, REGISTRY_RIPENCC }, // 144.164.0.0 - 144.165.255.255 { 0x90a60000, 0x90acffff, REGISTRY_ARIN }, // 144.166.0.0 - 144.172.255.255 { 0x90ad0000, 0x90adffff, REGISTRY_RIPENCC }, // 144.173.0.0 - 144.173.255.255 { 0x90ae0000, 0x90afffff, REGISTRY_ARIN }, // 144.174.0.0 - 144.175.255.255 { 0x90b00000, 0x90b267ff, REGISTRY_RIPENCC }, // 144.176.0.0 - 144.178.103.255 { 0x90b26800, 0x90b269ff, REGISTRY_RIPENCC }, // 144.178.104.0 - 144.178.105.255 { 0x90b26a00, 0x90b275ff, REGISTRY_RIPENCC }, // 144.178.106.0 - 144.178.117.255 { 0x90b27600, 0x90b277ff, REGISTRY_RIPENCC }, // 144.178.118.0 - 144.178.119.255 { 0x90b27800, 0x90b2fbff, REGISTRY_RIPENCC }, // 144.178.120.0 - 144.178.251.255 { 0x90b2fc00, 0x90b2fdff, REGISTRY_RIPENCC }, // 144.178.252.0 - 144.178.253.255 { 0x90b2fe00, 0x90b5ffff, REGISTRY_RIPENCC }, // 144.178.254.0 - 144.181.255.255 { 0x90b60000, 0x90c0ffff, REGISTRY_ARIN }, // 144.182.0.0 - 144.192.255.255 { 0x90c10000, 0x90c1ffff, REGISTRY_RIPENCC }, // 144.193.0.0 - 144.193.255.255 { 0x90c20000, 0x90c6ffff, REGISTRY_ARIN }, // 144.194.0.0 - 144.198.255.255 { 0x90c70000, 0x90c7ffff, REGISTRY_APNIC }, // 144.199.0.0 - 144.199.255.255 { 0x90c80000, 0x90c8ffff, REGISTRY_RIPENCC }, // 144.200.0.0 - 144.200.255.255 { 0x90c90000, 0x90cbffff, REGISTRY_ARIN }, // 144.201.0.0 - 144.203.255.255 { 0x90cc0000, 0x90ccffff, REGISTRY_RIPENCC }, // 144.204.0.0 - 144.204.255.255 { 0x90cd0000, 0x90cdffff, REGISTRY_APNIC }, // 144.205.0.0 - 144.205.255.255 { 0x90ce0000, 0x90ceffff, REGISTRY_RIPENCC }, // 144.206.0.0 - 144.206.255.255 { 0x90cf0000, 0x90cfffff, REGISTRY_ARIN }, // 144.207.0.0 - 144.207.255.255 { 0x90d00000, 0x90d03fff, REGISTRY_RIPENCC }, // 144.208.0.0 - 144.208.63.255 { 0x90d04000, 0x90d07fff, REGISTRY_ARIN }, // 144.208.64.0 - 144.208.127.255 { 0x90d08000, 0x90d1ffff, REGISTRY_RIPENCC }, // 144.208.128.0 - 144.209.255.255 { 0x90d20000, 0x90d4ffff, REGISTRY_ARIN }, // 144.210.0.0 - 144.212.255.255 { 0x90d50000, 0x90d6ffff, REGISTRY_APNIC }, // 144.213.0.0 - 144.214.255.255 { 0x90d70000, 0x90d9ffff, REGISTRY_ARIN }, // 144.215.0.0 - 144.217.255.255 { 0x90da0000, 0x90daffff, REGISTRY_APNIC }, // 144.218.0.0 - 144.218.255.255 { 0x90db0000, 0x90f7ffff, REGISTRY_ARIN }, // 144.219.0.0 - 144.247.255.255 { 0x90f80000, 0x90f8ffff, REGISTRY_RIPENCC }, // 144.248.0.0 - 144.248.255.255 { 0x90f90000, 0x90feffff, REGISTRY_ARIN }, // 144.249.0.0 - 144.254.255.255 { 0x90ff0000, 0x90ffffff, REGISTRY_APNIC }, // 144.255.0.0 - 144.255.255.255 { 0x91000000, 0x910e3fff, REGISTRY_RIPENCC }, // 145.0.0.0 - 145.14.63.255 { 0x910e4000, 0x910e7fff, REGISTRY_RIPENCC }, // 145.14.64.0 - 145.14.127.255 { 0x910e8000, 0x910ebfff, REGISTRY_RIPENCC }, // 145.14.128.0 - 145.14.191.255 { 0x910ec000, 0x910ecfff, REGISTRY_RIPENCC }, // 145.14.192.0 - 145.14.207.255 { 0x910ed000, 0x91280fff, REGISTRY_RIPENCC }, // 145.14.208.0 - 145.40.15.255 { 0x91281000, 0x91281fff, REGISTRY_RIPENCC }, // 145.40.16.0 - 145.40.31.255 { 0x91282000, 0x91287fff, REGISTRY_RIPENCC }, // 145.40.32.0 - 145.40.127.255 { 0x91288000, 0x9128dfff, REGISTRY_RIPENCC }, // 145.40.128.0 - 145.40.223.255 { 0x9128e000, 0x9151ffff, REGISTRY_RIPENCC }, // 145.40.224.0 - 145.81.255.255 { 0x91520000, 0x9152ffff, REGISTRY_RIPENCC }, // 145.82.0.0 - 145.82.255.255 { 0x91530000, 0x9182ffff, REGISTRY_RIPENCC }, // 145.83.0.0 - 145.130.255.255 { 0x91830000, 0x91832fff, REGISTRY_RIPENCC }, // 145.131.0.0 - 145.131.47.255 { 0x91833000, 0x91dfffff, REGISTRY_RIPENCC }, // 145.131.48.0 - 145.223.255.255 { 0x91e00000, 0x91e01fff, REGISTRY_ARIN }, // 145.224.0.0 - 145.224.31.255 { 0x91e02000, 0x91e03fff, REGISTRY_RIPENCC }, // 145.224.32.0 - 145.224.63.255 { 0x91e04000, 0x91e07fff, REGISTRY_RIPENCC }, // 145.224.64.0 - 145.224.127.255 { 0x91e08000, 0x91e0ffff, REGISTRY_RIPENCC }, // 145.224.128.0 - 145.224.255.255 { 0x91e10000, 0x91e1ffff, REGISTRY_RIPENCC }, // 145.225.0.0 - 145.225.255.255 { 0x91e20000, 0x91e3ffff, REGISTRY_RIPENCC }, // 145.226.0.0 - 145.227.255.255 { 0x91e40000, 0x91e4ffff, REGISTRY_RIPENCC }, // 145.228.0.0 - 145.228.255.255 { 0x91e50000, 0x91e8ffff, REGISTRY_RIPENCC }, // 145.229.0.0 - 145.232.255.255 { 0x91e90000, 0x91e9ffff, REGISTRY_RIPENCC }, // 145.233.0.0 - 145.233.255.255 { 0x91ea0000, 0x91ebffff, REGISTRY_RIPENCC }, // 145.234.0.0 - 145.235.255.255 { 0x91ec0000, 0x91ecffff, REGISTRY_RIPENCC }, // 145.236.0.0 - 145.236.255.255 { 0x91ed0000, 0x91eeffff, REGISTRY_RIPENCC }, // 145.237.0.0 - 145.238.255.255 { 0x91ef0000, 0x91efffff, REGISTRY_RIPENCC }, // 145.239.0.0 - 145.239.255.255 { 0x91f00000, 0x91fcffff, REGISTRY_RIPENCC }, // 145.240.0.0 - 145.252.255.255 { 0x91fd0000, 0x9200ffff, REGISTRY_RIPENCC }, // 145.253.0.0 - 146.0.255.255 { 0x92010000, 0x9201ffff, REGISTRY_ARIN }, // 146.1.0.0 - 146.1.255.255 { 0x92020000, 0x9203ffff, REGISTRY_RIPENCC }, // 146.2.0.0 - 146.3.255.255 { 0x92040000, 0x9204ffff, REGISTRY_RIPENCC }, // 146.4.0.0 - 146.4.255.255 { 0x92050000, 0x920affff, REGISTRY_ARIN }, // 146.5.0.0 - 146.10.255.255 { 0x920b0000, 0x920bffff, REGISTRY_APNIC }, // 146.11.0.0 - 146.11.255.255 { 0x920c0000, 0x9212ffff, REGISTRY_ARIN }, // 146.12.0.0 - 146.18.255.255 { 0x92130000, 0x9213ffff, REGISTRY_RIPENCC }, // 146.19.0.0 - 146.19.255.255 { 0x92140000, 0x9214ffff, REGISTRY_ARIN }, // 146.20.0.0 - 146.20.255.255 { 0x92150000, 0x9215ffff, REGISTRY_RIPENCC }, // 146.21.0.0 - 146.21.255.255 { 0x92160000, 0x922fffff, REGISTRY_ARIN }, // 146.22.0.0 - 146.47.255.255 { 0x92300000, 0x9230ffff, REGISTRY_RIPENCC }, // 146.48.0.0 - 146.48.255.255 { 0x92310000, 0x9231ffff, REGISTRY_ARIN }, // 146.49.0.0 - 146.49.255.255 { 0x92320000, 0x9232ffff, REGISTRY_RIPENCC }, // 146.50.0.0 - 146.50.255.255 { 0x92330000, 0x9233ffff, REGISTRY_APNIC }, // 146.51.0.0 - 146.51.255.255 { 0x92340000, 0x9234ffff, REGISTRY_RIPENCC }, // 146.52.0.0 - 146.52.255.255 { 0x92350000, 0x9237ffff, REGISTRY_ARIN }, // 146.53.0.0 - 146.55.255.255 { 0x92380000, 0x9238ffff, REGISTRY_APNIC }, // 146.56.0.0 - 146.56.255.255 { 0x92390000, 0x923affff, REGISTRY_ARIN }, // 146.57.0.0 - 146.58.255.255 { 0x923b0000, 0x923bffff, REGISTRY_RIPENCC }, // 146.59.0.0 - 146.59.255.255 { 0x923c0000, 0x923cffff, REGISTRY_RIPENCC }, // 146.60.0.0 - 146.60.255.255 { 0x923d0000, 0x923dffff, REGISTRY_ARIN }, // 146.61.0.0 - 146.61.255.255 { 0x923f0000, 0x923fffff, REGISTRY_ARIN }, // 146.63.0.0 - 146.63.255.255 { 0x92400000, 0x9240ffff, REGISTRY_AFRINIC }, // 146.64.0.0 - 146.64.255.255 { 0x92410000, 0x9241ffff, REGISTRY_ARIN }, // 146.65.0.0 - 146.65.255.255 { 0x92420000, 0x9242ffff, REGISTRY_RIPENCC }, // 146.66.0.0 - 146.66.255.255 { 0x92430000, 0x9243ffff, REGISTRY_RIPENCC }, // 146.67.0.0 - 146.67.255.255 { 0x92440000, 0x9245ffff, REGISTRY_ARIN }, // 146.68.0.0 - 146.69.255.255 { 0x92460000, 0x9246ffff, REGISTRY_RIPENCC }, // 146.70.0.0 - 146.70.255.255 { 0x92470000, 0x92475dff, REGISTRY_ARIN }, // 146.71.0.0 - 146.71.93.255 { 0x92475e00, 0x92475fff, REGISTRY_RIPENCC }, // 146.71.94.0 - 146.71.95.255 { 0x92476000, 0x9247ffff, REGISTRY_ARIN }, // 146.71.96.0 - 146.71.255.255 { 0x92480000, 0x9248ffff, REGISTRY_RIPENCC }, // 146.72.0.0 - 146.72.255.255 { 0x92490000, 0x924affff, REGISTRY_ARIN }, // 146.73.0.0 - 146.74.255.255 { 0x924b0000, 0x924bffff, REGISTRY_RIPENCC }, // 146.75.0.0 - 146.75.255.255 { 0x924c0000, 0x924cffff, REGISTRY_ARIN }, // 146.76.0.0 - 146.76.255.255 { 0x924d0000, 0x924dffff, REGISTRY_RIPENCC }, // 146.77.0.0 - 146.77.255.255 { 0x924e0000, 0x924fffff, REGISTRY_ARIN }, // 146.78.0.0 - 146.79.255.255 { 0x92500000, 0x9251ffff, REGISTRY_RIPENCC }, // 146.80.0.0 - 146.81.255.255 { 0x92520000, 0x9252ffff, REGISTRY_ARIN }, // 146.82.0.0 - 146.82.255.255 { 0x92530000, 0x9253ffff, REGISTRY_LACNIC }, // 146.83.0.0 - 146.83.255.255 { 0x92540000, 0x9256ffff, REGISTRY_ARIN }, // 146.84.0.0 - 146.86.255.255 { 0x92570000, 0x9257ffff, REGISTRY_RIPENCC }, // 146.87.0.0 - 146.87.255.255 { 0x92580000, 0x92580fff, REGISTRY_ARIN }, // 146.88.0.0 - 146.88.15.255 { 0x92581000, 0x92581cff, REGISTRY_APNIC }, // 146.88.16.0 - 146.88.28.255 { 0x92581d00, 0x92581fff, REGISTRY_ARIN }, // 146.88.29.0 - 146.88.31.255 { 0x92582000, 0x92585fff, REGISTRY_APNIC }, // 146.88.32.0 - 146.88.95.255 { 0x92586000, 0x92587fff, REGISTRY_ARIN }, // 146.88.96.0 - 146.88.127.255 { 0x92588000, 0x925887ff, REGISTRY_APNIC }, // 146.88.128.0 - 146.88.135.255 { 0x92588800, 0x92588fff, REGISTRY_ARIN }, // 146.88.136.0 - 146.88.143.255 { 0x92589000, 0x925893ff, REGISTRY_APNIC }, // 146.88.144.0 - 146.88.147.255 { 0x92589400, 0x925897ff, REGISTRY_ARIN }, // 146.88.148.0 - 146.88.151.255 { 0x92589800, 0x9258afff, REGISTRY_APNIC }, // 146.88.152.0 - 146.88.175.255 { 0x9258b000, 0x9258c3ff, REGISTRY_ARIN }, // 146.88.176.0 - 146.88.195.255 { 0x9258c400, 0x9258cfff, REGISTRY_APNIC }, // 146.88.196.0 - 146.88.207.255 { 0x9258d000, 0x9258e7ff, REGISTRY_ARIN }, // 146.88.208.0 - 146.88.231.255 { 0x9258e800, 0x9258efff, REGISTRY_RIPENCC }, // 146.88.232.0 - 146.88.239.255 { 0x9258f000, 0x9259ffff, REGISTRY_ARIN }, // 146.88.240.0 - 146.89.255.255 { 0x925a0000, 0x925affff, REGISTRY_RIPENCC }, // 146.90.0.0 - 146.90.255.255 { 0x925b0000, 0x9260ffff, REGISTRY_ARIN }, // 146.91.0.0 - 146.96.255.255 { 0x92610000, 0x9261ffff, REGISTRY_RIPENCC }, // 146.97.0.0 - 146.97.255.255 { 0x92620000, 0x9262ffff, REGISTRY_ARIN }, // 146.98.0.0 - 146.98.255.255 { 0x92630000, 0x9263ffff, REGISTRY_APNIC }, // 146.99.0.0 - 146.99.255.255 { 0x92640000, 0x926cffff, REGISTRY_RIPENCC }, // 146.100.0.0 - 146.108.255.255 { 0x926d0000, 0x926dffff, REGISTRY_RIPENCC }, // 146.109.0.0 - 146.109.255.255 { 0x926e0000, 0x926effff, REGISTRY_RIPENCC }, // 146.110.0.0 - 146.110.255.255 { 0x926f0000, 0x926fffff, REGISTRY_ARIN }, // 146.111.0.0 - 146.111.255.255 { 0x92700000, 0x9270ffff, REGISTRY_RIPENCC }, // 146.112.0.0 - 146.112.255.255 { 0x92710000, 0x9273ffff, REGISTRY_ARIN }, // 146.113.0.0 - 146.115.255.255 { 0x92740000, 0x9276ffff, REGISTRY_APNIC }, // 146.116.0.0 - 146.118.255.255 { 0x92770000, 0x9277ffff, REGISTRY_RIPENCC }, // 146.119.0.0 - 146.119.255.255 { 0x92780000, 0x9278ffff, REGISTRY_RIPENCC }, // 146.120.0.0 - 146.120.255.255 { 0x92790000, 0x927bffff, REGISTRY_ARIN }, // 146.121.0.0 - 146.123.255.255 { 0x927c0000, 0x927cffff, REGISTRY_RIPENCC }, // 146.124.0.0 - 146.124.255.255 { 0x927d0000, 0x9284ffff, REGISTRY_ARIN }, // 146.125.0.0 - 146.132.255.255 { 0x92850000, 0x9285ffff, REGISTRY_RIPENCC }, // 146.133.0.0 - 146.133.255.255 { 0x92860000, 0x9286ffff, REGISTRY_LACNIC }, // 146.134.0.0 - 146.134.255.255 { 0x92870000, 0x9287ffff, REGISTRY_ARIN }, // 146.135.0.0 - 146.135.255.255 { 0x92880000, 0x9288ffff, REGISTRY_RIPENCC }, // 146.136.0.0 - 146.136.255.255 { 0x92890000, 0x928bffff, REGISTRY_ARIN }, // 146.137.0.0 - 146.139.255.255 { 0x928c0000, 0x928cffff, REGISTRY_RIPENCC }, // 146.140.0.0 - 146.140.255.255 { 0x928d0000, 0x928dffff, REGISTRY_AFRINIC }, // 146.141.0.0 - 146.141.255.255 { 0x928e0000, 0x928fffff, REGISTRY_ARIN }, // 146.142.0.0 - 146.143.255.255 { 0x92900000, 0x9290ffff, REGISTRY_APNIC }, // 146.144.0.0 - 146.144.255.255 { 0x92910000, 0x929affff, REGISTRY_ARIN }, // 146.145.0.0 - 146.154.255.255 { 0x929b0000, 0x929bffff, REGISTRY_LACNIC }, // 146.155.0.0 - 146.155.255.255 { 0x929c0000, 0x929dffff, REGISTRY_ARIN }, // 146.156.0.0 - 146.157.255.255 { 0x929e0000, 0x929effff, REGISTRY_RIPENCC }, // 146.158.0.0 - 146.158.255.255 { 0x929f0000, 0x929fffff, REGISTRY_RIPENCC }, // 146.159.0.0 - 146.159.255.255 { 0x92a00000, 0x92a0ffff, REGISTRY_APNIC }, // 146.160.0.0 - 146.160.255.255 { 0x92a10000, 0x92a2ffff, REGISTRY_RIPENCC }, // 146.161.0.0 - 146.162.255.255 { 0x92a30000, 0x92a3ffff, REGISTRY_ARIN }, // 146.163.0.0 - 146.163.255.255 { 0x92a40000, 0x92a4ffff, REGISTRY_LACNIC }, // 146.164.0.0 - 146.164.255.255 { 0x92a50000, 0x92a8ffff, REGISTRY_ARIN }, // 146.165.0.0 - 146.168.255.255 { 0x92a90000, 0x92a9ffff, REGISTRY_RIPENCC }, // 146.169.0.0 - 146.169.255.255 { 0x92aa0000, 0x92aaffff, REGISTRY_ARIN }, // 146.170.0.0 - 146.170.255.255 { 0x92ab0000, 0x92abffff, REGISTRY_APNIC }, // 146.171.0.0 - 146.171.255.255 { 0x92ac0000, 0x92adffff, REGISTRY_RIPENCC }, // 146.172.0.0 - 146.173.255.255 { 0x92ae0000, 0x92ae7fff, REGISTRY_ARIN }, // 146.174.0.0 - 146.174.127.255 { 0x92ae8000, 0x92aebfff, REGISTRY_RIPENCC }, // 146.174.128.0 - 146.174.191.255 { 0x92aec000, 0x92aeffff, REGISTRY_ARIN }, // 146.174.192.0 - 146.174.255.255 { 0x92af0000, 0x92b1ffff, REGISTRY_RIPENCC }, // 146.175.0.0 - 146.177.255.255 { 0x92b20000, 0x92b2ffff, REGISTRY_APNIC }, // 146.178.0.0 - 146.178.255.255 { 0x92b30000, 0x92b3ffff, REGISTRY_RIPENCC }, // 146.179.0.0 - 146.179.255.255 { 0x92b40000, 0x92b5ffff, REGISTRY_ARIN }, // 146.180.0.0 - 146.181.255.255 { 0x92b60000, 0x92b6ffff, REGISTRY_AFRINIC }, // 146.182.0.0 - 146.182.255.255 { 0x92b70000, 0x92b7ffff, REGISTRY_RIPENCC }, // 146.183.0.0 - 146.183.255.255 { 0x92b80000, 0x92b8ffff, REGISTRY_ARIN }, // 146.184.0.0 - 146.184.255.255 { 0x92b90000, 0x92b9ffff, REGISTRY_RIPENCC }, // 146.185.0.0 - 146.185.255.255 { 0x92ba0000, 0x92bbffff, REGISTRY_ARIN }, // 146.186.0.0 - 146.187.255.255 { 0x92bc0000, 0x92bcffff, REGISTRY_RIPENCC }, // 146.188.0.0 - 146.188.255.255 { 0x92bd0000, 0x92beffff, REGISTRY_ARIN }, // 146.189.0.0 - 146.190.255.255 { 0x92bf0000, 0x92c2ffff, REGISTRY_RIPENCC }, // 146.191.0.0 - 146.194.255.255 { 0x92c30000, 0x92c47fff, REGISTRY_APNIC }, // 146.195.0.0 - 146.196.127.255 { 0x92c48000, 0x92c4ffff, REGISTRY_AFRINIC }, // 146.196.128.0 - 146.196.255.255 { 0x92c50000, 0x92d1ffff, REGISTRY_ARIN }, // 146.197.0.0 - 146.209.255.255 { 0x92d20000, 0x92d3ffff, REGISTRY_RIPENCC }, // 146.210.0.0 - 146.211.255.255 { 0x92d40000, 0x92d4ffff, REGISTRY_RIPENCC }, // 146.212.0.0 - 146.212.255.255 { 0x92d50000, 0x92d5ffff, REGISTRY_RIPENCC }, // 146.213.0.0 - 146.213.255.255 { 0x92d60000, 0x92d7ffff, REGISTRY_ARIN }, // 146.214.0.0 - 146.215.255.255 { 0x92d80000, 0x92d8ffff, REGISTRY_RIPENCC }, // 146.216.0.0 - 146.216.255.255 { 0x92d90000, 0x92daffff, REGISTRY_ARIN }, // 146.217.0.0 - 146.218.255.255 { 0x92db0000, 0x92dcffff, REGISTRY_RIPENCC }, // 146.219.0.0 - 146.220.255.255 { 0x92dd0000, 0x92ddffff, REGISTRY_APNIC }, // 146.221.0.0 - 146.221.255.255 { 0x92de0000, 0x92dfffff, REGISTRY_ARIN }, // 146.222.0.0 - 146.223.255.255 { 0x92e00000, 0x92e0ffff, REGISTRY_RIPENCC }, // 146.224.0.0 - 146.224.255.255 { 0x92e10000, 0x92e2ffff, REGISTRY_ARIN }, // 146.225.0.0 - 146.226.255.255 { 0x92e30000, 0x92e4ffff, REGISTRY_RIPENCC }, // 146.227.0.0 - 146.228.255.255 { 0x92e50000, 0x92e5ffff, REGISTRY_ARIN }, // 146.229.0.0 - 146.229.255.255 { 0x92e60000, 0x92e8ffff, REGISTRY_AFRINIC }, // 146.230.0.0 - 146.232.255.255 { 0x92e90000, 0x92e9ffff, REGISTRY_ARIN }, // 146.233.0.0 - 146.233.255.255 { 0x92ea0000, 0x92eaffff, REGISTRY_RIPENCC }, // 146.234.0.0 - 146.234.255.255 { 0x92eb0000, 0x92f0ffff, REGISTRY_ARIN }, // 146.235.0.0 - 146.240.255.255 { 0x92f10000, 0x92f1ffff, REGISTRY_RIPENCC }, // 146.241.0.0 - 146.241.255.255 { 0x92f20000, 0x92f6ffff, REGISTRY_ARIN }, // 146.242.0.0 - 146.246.255.255 { 0x92f70000, 0x92f7ffff, REGISTRY_RIPENCC }, // 146.247.0.0 - 146.247.255.255 { 0x92f80000, 0x92f9ffff, REGISTRY_RIPENCC }, // 146.248.0.0 - 146.249.255.255 { 0x92fa0000, 0x92faffff, REGISTRY_ARIN }, // 146.250.0.0 - 146.250.255.255 { 0x92fb0000, 0x92fbffff, REGISTRY_RIPENCC }, // 146.251.0.0 - 146.251.255.255 { 0x92fc0000, 0x92fcffff, REGISTRY_ARIN }, // 146.252.0.0 - 146.252.255.255 { 0x92fd0000, 0x92ffffff, REGISTRY_RIPENCC }, // 146.253.0.0 - 146.255.255.255 { 0x93000000, 0x9305ffff, REGISTRY_ARIN }, // 147.0.0.0 - 147.5.255.255 { 0x93060000, 0x9306ffff, REGISTRY_APNIC }, // 147.6.0.0 - 147.6.255.255 { 0x93070000, 0x9307ffff, REGISTRY_RIPENCC }, // 147.7.0.0 - 147.7.255.255 { 0x93080000, 0x9308ffff, REGISTRY_APNIC }, // 147.8.0.0 - 147.8.255.255 { 0x93090000, 0x9309ffff, REGISTRY_ARIN }, // 147.9.0.0 - 147.9.255.255 { 0x930a0000, 0x930affff, REGISTRY_APNIC }, // 147.10.0.0 - 147.10.255.255 { 0x930b0000, 0x930bffff, REGISTRY_ARIN }, // 147.11.0.0 - 147.11.255.255 { 0x930c0000, 0x930effff, REGISTRY_RIPENCC }, // 147.12.0.0 - 147.14.255.255 { 0x930f0000, 0x931affff, REGISTRY_ARIN }, // 147.15.0.0 - 147.26.255.255 { 0x931b0000, 0x931dffff, REGISTRY_RIPENCC }, // 147.27.0.0 - 147.29.255.255 { 0x931e0000, 0x931effff, REGISTRY_RIPENCC }, // 147.30.0.0 - 147.30.255.255 { 0x931f0000, 0x931fffff, REGISTRY_ARIN }, // 147.31.0.0 - 147.31.255.255 { 0x93200000, 0x9321ffff, REGISTRY_RIPENCC }, // 147.32.0.0 - 147.33.255.255 { 0x93220000, 0x9328ffff, REGISTRY_ARIN }, // 147.34.0.0 - 147.40.255.255 { 0x93290000, 0x9329ffff, REGISTRY_APNIC }, // 147.41.0.0 - 147.41.255.255 { 0x932a0000, 0x932affff, REGISTRY_ARIN }, // 147.42.0.0 - 147.42.255.255 { 0x932b0000, 0x932bffff, REGISTRY_APNIC }, // 147.43.0.0 - 147.43.255.255 { 0x932c0000, 0x932dffff, REGISTRY_RIPENCC }, // 147.44.0.0 - 147.45.255.255 { 0x932e0000, 0x932fffff, REGISTRY_APNIC }, // 147.46.0.0 - 147.47.255.255 { 0x93300000, 0x9331ffff, REGISTRY_ARIN }, // 147.48.0.0 - 147.49.255.255 { 0x93320000, 0x9332ffff, REGISTRY_APNIC }, // 147.50.0.0 - 147.50.255.255 { 0x93330000, 0x9333ffff, REGISTRY_ARIN }, // 147.51.0.0 - 147.51.255.255 { 0x93340000, 0x9334ffff, REGISTRY_RIPENCC }, // 147.52.0.0 - 147.52.255.255 { 0x93350000, 0x93357fff, REGISTRY_ARIN }, // 147.53.0.0 - 147.53.127.255 { 0x93358000, 0x9336ffff, REGISTRY_RIPENCC }, // 147.53.128.0 - 147.54.255.255 { 0x93370000, 0x933bffff, REGISTRY_ARIN }, // 147.55.0.0 - 147.59.255.255 { 0x933c0000, 0x933cffff, REGISTRY_RIPENCC }, // 147.60.0.0 - 147.60.255.255 { 0x933d0000, 0x9340ffff, REGISTRY_ARIN }, // 147.61.0.0 - 147.64.255.255 { 0x93410000, 0x9341ffff, REGISTRY_LACNIC }, // 147.65.0.0 - 147.65.255.255 { 0x93420000, 0x9342ffff, REGISTRY_APNIC }, // 147.66.0.0 - 147.66.255.255 { 0x93430000, 0x9344ffff, REGISTRY_RIPENCC }, // 147.67.0.0 - 147.68.255.255 { 0x93450000, 0x9345ffff, REGISTRY_APNIC }, // 147.69.0.0 - 147.69.255.255 { 0x93460000, 0x934affff, REGISTRY_ARIN }, // 147.70.0.0 - 147.74.255.255 { 0x934b0000, 0x934bffff, REGISTRY_RIPENCC }, // 147.75.0.0 - 147.75.255.255 { 0x934c0000, 0x934cffff, REGISTRY_APNIC }, // 147.76.0.0 - 147.76.255.255 { 0x934d0000, 0x934dffff, REGISTRY_RIPENCC }, // 147.77.0.0 - 147.77.255.255 { 0x934e0000, 0x934e97ff, REGISTRY_RIPENCC }, // 147.78.0.0 - 147.78.151.255 { 0x934e9800, 0x934e9bff, REGISTRY_APNIC }, // 147.78.152.0 - 147.78.155.255 { 0x934e9c00, 0x934effff, REGISTRY_RIPENCC }, // 147.78.156.0 - 147.78.255.255 { 0x934f0000, 0x9351ffff, REGISTRY_ARIN }, // 147.79.0.0 - 147.81.255.255 { 0x93520000, 0x9352ffff, REGISTRY_RIPENCC }, // 147.82.0.0 - 147.82.255.255 { 0x93530000, 0x9354ffff, REGISTRY_RIPENCC }, // 147.83.0.0 - 147.84.255.255 { 0x93550000, 0x9355ffff, REGISTRY_ARIN }, // 147.85.0.0 - 147.85.255.255 { 0x93560000, 0x9359ffff, REGISTRY_RIPENCC }, // 147.86.0.0 - 147.89.255.255 { 0x935a0000, 0x935affff, REGISTRY_ARIN }, // 147.90.0.0 - 147.90.255.255 { 0x935b0000, 0x935bffff, REGISTRY_RIPENCC }, // 147.91.0.0 - 147.91.255.255 { 0x935c0000, 0x935c1fff, REGISTRY_ARIN }, // 147.92.0.0 - 147.92.31.255 { 0x935c2000, 0x935c2fff, REGISTRY_APNIC }, // 147.92.32.0 - 147.92.47.255 { 0x935c3000, 0x935c7fff, REGISTRY_ARIN }, // 147.92.48.0 - 147.92.127.255 { 0x935c8000, 0x935cffff, REGISTRY_APNIC }, // 147.92.128.0 - 147.92.255.255 { 0x935d0000, 0x9360ffff, REGISTRY_RIPENCC }, // 147.93.0.0 - 147.96.255.255 { 0x93610000, 0x9361ffff, REGISTRY_ARIN }, // 147.97.0.0 - 147.97.255.255 { 0x93620000, 0x9364ffff, REGISTRY_RIPENCC }, // 147.98.0.0 - 147.100.255.255 { 0x93650000, 0x9365ffff, REGISTRY_ARIN }, // 147.101.0.0 - 147.101.255.255 { 0x93660000, 0x9366ffff, REGISTRY_RIPENCC }, // 147.102.0.0 - 147.102.255.255 { 0x93670000, 0x936cffff, REGISTRY_ARIN }, // 147.103.0.0 - 147.108.255.255 { 0x936d0000, 0x936dffff, REGISTRY_APNIC }, // 147.109.0.0 - 147.109.255.255 { 0x936e0000, 0x936effff, REGISTRY_AFRINIC }, // 147.110.0.0 - 147.110.255.255 { 0x936f0000, 0x9370ffff, REGISTRY_RIPENCC }, // 147.111.0.0 - 147.112.255.255 { 0x93710000, 0x9376ffff, REGISTRY_ARIN }, // 147.113.0.0 - 147.118.255.255 { 0x93770000, 0x9377ffff, REGISTRY_RIPENCC }, // 147.119.0.0 - 147.119.255.255 { 0x93780000, 0x9379ffff, REGISTRY_ARIN }, // 147.120.0.0 - 147.121.255.255 { 0x937a0000, 0x937bffff, REGISTRY_RIPENCC }, // 147.122.0.0 - 147.123.255.255 { 0x937c0000, 0x937cffff, REGISTRY_ARIN }, // 147.124.0.0 - 147.124.255.255 { 0x937d0000, 0x937dffff, REGISTRY_RIPENCC }, // 147.125.0.0 - 147.125.255.255 { 0x937e0000, 0x937effff, REGISTRY_ARIN }, // 147.126.0.0 - 147.126.255.255 { 0x937f0000, 0x937fffff, REGISTRY_RIPENCC }, // 147.127.0.0 - 147.127.255.255 { 0x93800000, 0x9383ffff, REGISTRY_ARIN }, // 147.128.0.0 - 147.131.255.255 { 0x93840000, 0x9384ffff, REGISTRY_APNIC }, // 147.132.0.0 - 147.132.255.255 { 0x93850000, 0x93877fff, REGISTRY_ARIN }, // 147.133.0.0 - 147.135.127.255 { 0x93878000, 0x9387ffff, REGISTRY_RIPENCC }, // 147.135.128.0 - 147.135.255.255 { 0x93880000, 0x93883fff, REGISTRY_ARIN }, // 147.136.0.0 - 147.136.63.255 { 0x93884000, 0x93885fff, REGISTRY_RIPENCC }, // 147.136.64.0 - 147.136.95.255 { 0x93886000, 0x93887fff, REGISTRY_ARIN }, // 147.136.96.0 - 147.136.127.255 { 0x93888000, 0x9388bfff, REGISTRY_APNIC }, // 147.136.128.0 - 147.136.191.255 { 0x9388c000, 0x9388fbff, REGISTRY_ARIN }, // 147.136.192.0 - 147.136.251.255 { 0x9388fc00, 0x9388fdff, REGISTRY_RIPENCC }, // 147.136.252.0 - 147.136.253.255 { 0x9388fe00, 0x938dffff, REGISTRY_ARIN }, // 147.136.254.0 - 147.141.255.255 { 0x938e0000, 0x938fffff, REGISTRY_RIPENCC }, // 147.142.0.0 - 147.143.255.255 { 0x93900000, 0x9390ffff, REGISTRY_ARIN }, // 147.144.0.0 - 147.144.255.255 { 0x93910000, 0x9391ffff, REGISTRY_APNIC }, // 147.145.0.0 - 147.145.255.255 { 0x93920000, 0x9392ffff, REGISTRY_ARIN }, // 147.146.0.0 - 147.146.255.255 { 0x93930000, 0x9398ffff, REGISTRY_RIPENCC }, // 147.147.0.0 - 147.152.255.255 { 0x93990000, 0x939bffff, REGISTRY_ARIN }, // 147.153.0.0 - 147.155.255.255 { 0x939c0000, 0x939cffff, REGISTRY_RIPENCC }, // 147.156.0.0 - 147.156.255.255 { 0x939d0000, 0x939effff, REGISTRY_APNIC }, // 147.157.0.0 - 147.158.255.255 { 0x939f0000, 0x93a03fff, REGISTRY_ARIN }, // 147.159.0.0 - 147.160.63.255 { 0x93a04000, 0x93a07fff, REGISTRY_APNIC }, // 147.160.64.0 - 147.160.127.255 { 0x93a08000, 0x93a0ffff, REGISTRY_ARIN }, // 147.160.128.0 - 147.160.255.255 { 0x93a10000, 0x93a103ff, REGISTRY_RIPENCC }, // 147.161.0.0 - 147.161.3.255 { 0x93a10400, 0x93a107ff, REGISTRY_ARIN }, // 147.161.4.0 - 147.161.7.255 { 0x93a10800, 0x93a10fff, REGISTRY_RIPENCC }, // 147.161.8.0 - 147.161.15.255 { 0x93a11000, 0x93a117ff, REGISTRY_RIPENCC }, // 147.161.16.0 - 147.161.23.255 { 0x93a11800, 0x93a11fff, REGISTRY_RIPENCC }, // 147.161.24.0 - 147.161.31.255 { 0x93a12000, 0x93a13fff, REGISTRY_APNIC }, // 147.161.32.0 - 147.161.63.255 { 0x93a14000, 0x93a17fff, REGISTRY_RIPENCC }, // 147.161.64.0 - 147.161.127.255 { 0x93a18000, 0x93a3ffff, REGISTRY_RIPENCC }, // 147.161.128.0 - 147.163.255.255 { 0x93a40000, 0x93a6ffff, REGISTRY_ARIN }, // 147.164.0.0 - 147.166.255.255 { 0x93a70000, 0x93a7ffff, REGISTRY_RIPENCC }, // 147.167.0.0 - 147.167.255.255 { 0x93a80000, 0x93aaffff, REGISTRY_ARIN }, // 147.168.0.0 - 147.170.255.255 { 0x93ab0000, 0x93adffff, REGISTRY_RIPENCC }, // 147.171.0.0 - 147.173.255.255 { 0x93ae0000, 0x93aeffff, REGISTRY_ARIN }, // 147.174.0.0 - 147.174.255.255 { 0x93af0000, 0x93afffff, REGISTRY_RIPENCC }, // 147.175.0.0 - 147.175.255.255 { 0x93b00000, 0x93b0ffff, REGISTRY_APNIC }, // 147.176.0.0 - 147.176.255.255 { 0x93b10000, 0x93b3ffff, REGISTRY_ARIN }, // 147.177.0.0 - 147.179.255.255 { 0x93b40000, 0x93b5ffff, REGISTRY_RIPENCC }, // 147.180.0.0 - 147.181.255.255 { 0x93b60000, 0x93b7ffff, REGISTRY_ARIN }, // 147.182.0.0 - 147.183.255.255 { 0x93b80000, 0x93b8ffff, REGISTRY_RIPENCC }, // 147.184.0.0 - 147.184.255.255 { 0x93b90000, 0x93b969ff, REGISTRY_ARIN }, // 147.185.0.0 - 147.185.105.255 { 0x93b96a00, 0x93b96bff, REGISTRY_RIPENCC }, // 147.185.106.0 - 147.185.107.255 { 0x93b96c00, 0x93b9a1ff, REGISTRY_ARIN }, // 147.185.108.0 - 147.185.161.255 { 0x93b9a200, 0x93b9a3ff, REGISTRY_RIPENCC }, // 147.185.162.0 - 147.185.163.255 { 0x93b9a400, 0x93b9a8ff, REGISTRY_ARIN }, // 147.185.164.0 - 147.185.168.255 { 0x93b9a900, 0x93b9a9ff, REGISTRY_APNIC }, // 147.185.169.0 - 147.185.169.255 { 0x93b9aa00, 0x93b9abff, REGISTRY_ARIN }, // 147.185.170.0 - 147.185.171.255 { 0x93b9ac00, 0x93b9acff, REGISTRY_RIPENCC }, // 147.185.172.0 - 147.185.172.255 { 0x93b9ad00, 0x93b9c3ff, REGISTRY_ARIN }, // 147.185.173.0 - 147.185.195.255 { 0x93b9c400, 0x93b9c5ff, REGISTRY_RIPENCC }, // 147.185.196.0 - 147.185.197.255 { 0x93b9c600, 0x93b9cdff, REGISTRY_ARIN }, // 147.185.198.0 - 147.185.205.255 { 0x93b9ce00, 0x93b9cfff, REGISTRY_RIPENCC }, // 147.185.206.0 - 147.185.207.255 { 0x93b9d000, 0x93b9d8ff, REGISTRY_ARIN }, // 147.185.208.0 - 147.185.216.255 { 0x93b9d900, 0x93b9d9ff, REGISTRY_RIPENCC }, // 147.185.217.0 - 147.185.217.255 { 0x93b9da00, 0x93b9e1ff, REGISTRY_ARIN }, // 147.185.218.0 - 147.185.225.255 { 0x93b9e200, 0x93b9e2ff, REGISTRY_RIPENCC }, // 147.185.226.0 - 147.185.226.255 { 0x93b9e300, 0x93b9ecff, REGISTRY_ARIN }, // 147.185.227.0 - 147.185.236.255 { 0x93b9ed00, 0x93b9edff, REGISTRY_RIPENCC }, // 147.185.237.0 - 147.185.237.255 { 0x93b9ee00, 0x93b9f5ff, REGISTRY_ARIN }, // 147.185.238.0 - 147.185.245.255 { 0x93b9f600, 0x93b9f7ff, REGISTRY_RIPENCC }, // 147.185.246.0 - 147.185.247.255 { 0x93b9f800, 0x93b9f9ff, REGISTRY_ARIN }, // 147.185.248.0 - 147.185.249.255 { 0x93b9fa00, 0x93b9faff, REGISTRY_RIPENCC }, // 147.185.250.0 - 147.185.250.255 { 0x93b9fb00, 0x93b9fdff, REGISTRY_ARIN }, // 147.185.251.0 - 147.185.253.255 { 0x93b9fe00, 0x93b9ffff, REGISTRY_RIPENCC }, // 147.185.254.0 - 147.185.255.255 { 0x93ba0000, 0x93baffff, REGISTRY_RIPENCC }, // 147.186.0.0 - 147.186.255.255 { 0x93bb0000, 0x93bbffff, REGISTRY_ARIN }, // 147.187.0.0 - 147.187.255.255 { 0x93bc0000, 0x93bd97ff, REGISTRY_RIPENCC }, // 147.188.0.0 - 147.189.151.255 { 0x93bd9800, 0x93bd99ff, REGISTRY_ARIN }, // 147.189.152.0 - 147.189.153.255 { 0x93bd9a00, 0x93bd9bff, REGISTRY_RIPENCC }, // 147.189.154.0 - 147.189.155.255 { 0x93bd9c00, 0x93bd9fff, REGISTRY_RIPENCC }, // 147.189.156.0 - 147.189.159.255 { 0x93bda000, 0x93bdafff, REGISTRY_RIPENCC }, // 147.189.160.0 - 147.189.175.255 { 0x93bdb000, 0x93bdbfff, REGISTRY_RIPENCC }, // 147.189.176.0 - 147.189.191.255 { 0x93bdc000, 0x93bdd3ff, REGISTRY_RIPENCC }, // 147.189.192.0 - 147.189.211.255 { 0x93bdd400, 0x93bdd5ff, REGISTRY_ARIN }, // 147.189.212.0 - 147.189.213.255 { 0x93bdd600, 0x93bdffff, REGISTRY_RIPENCC }, // 147.189.214.0 - 147.189.255.255 { 0x93be0000, 0x93bfffff, REGISTRY_ARIN }, // 147.190.0.0 - 147.191.255.255 { 0x93c00000, 0x93c0ffff, REGISTRY_APNIC }, // 147.192.0.0 - 147.192.255.255 { 0x93c10000, 0x93c1ffff, REGISTRY_RIPENCC }, // 147.193.0.0 - 147.193.255.255 { 0x93c20000, 0x93c3ffff, REGISTRY_ARIN }, // 147.194.0.0 - 147.195.255.255 { 0x93c40000, 0x93c5ffff, REGISTRY_RIPENCC }, // 147.196.0.0 - 147.197.255.255 { 0x93c60000, 0x93c7ffff, REGISTRY_ARIN }, // 147.198.0.0 - 147.199.255.255 { 0x93c80000, 0x93c8ffff, REGISTRY_APNIC }, // 147.200.0.0 - 147.200.255.255 { 0x93c90000, 0x93c9ffff, REGISTRY_RIPENCC }, // 147.201.0.0 - 147.201.255.255 { 0x93ca0000, 0x93cbffff, REGISTRY_ARIN }, // 147.202.0.0 - 147.203.255.255 { 0x93cc0000, 0x93ccffff, REGISTRY_RIPENCC }, // 147.204.0.0 - 147.204.255.255 { 0x93cd0000, 0x93d0ffff, REGISTRY_ARIN }, // 147.205.0.0 - 147.208.255.255 { 0x93d10000, 0x93d1ffff, REGISTRY_APNIC }, // 147.209.0.0 - 147.209.255.255 { 0x93d20000, 0x93d2ffff, REGISTRY_RIPENCC }, // 147.210.0.0 - 147.210.255.255 { 0x93d30000, 0x93d4ffff, REGISTRY_APNIC }, // 147.211.0.0 - 147.212.255.255 { 0x93d50000, 0x93d7ffff, REGISTRY_RIPENCC }, // 147.213.0.0 - 147.215.255.255 { 0x93d80000, 0x93dbffff, REGISTRY_ARIN }, // 147.216.0.0 - 147.219.255.255 { 0x93dc0000, 0x93dcffff, REGISTRY_RIPENCC }, // 147.220.0.0 - 147.220.255.255 { 0x93dd0000, 0x93e3ffff, REGISTRY_ARIN }, // 147.221.0.0 - 147.227.255.255 { 0x93e40000, 0x93e4ffff, REGISTRY_RIPENCC }, // 147.228.0.0 - 147.228.255.255 { 0x93e50000, 0x93e5ffff, REGISTRY_RIPENCC }, // 147.229.0.0 - 147.229.255.255 { 0x93e60000, 0x93ea5bff, REGISTRY_RIPENCC }, // 147.230.0.0 - 147.234.91.255 { 0x93ea5c00, 0x93ea67ff, REGISTRY_RIPENCC }, // 147.234.92.0 - 147.234.103.255 { 0x93ea6800, 0x93edffff, REGISTRY_RIPENCC }, // 147.234.104.0 - 147.237.255.255 { 0x93ee0000, 0x93f2ffff, REGISTRY_ARIN }, // 147.238.0.0 - 147.242.255.255 { 0x93f30000, 0x93f3ffff, REGISTRY_RIPENCC }, // 147.243.0.0 - 147.243.255.255 { 0x93f40000, 0x93f9ffff, REGISTRY_ARIN }, // 147.244.0.0 - 147.249.255.255 { 0x93fa0000, 0x93fcffff, REGISTRY_RIPENCC }, // 147.250.0.0 - 147.252.255.255 { 0x93fd0000, 0x93ffffff, REGISTRY_ARIN }, // 147.253.0.0 - 147.255.255.255 { 0x94000000, 0x9400ffff, REGISTRY_LACNIC }, // 148.0.0.0 - 148.0.255.255 { 0x94010000, 0x9401ffff, REGISTRY_ARIN }, // 148.1.0.0 - 148.1.255.255 { 0x94020000, 0x9403ffff, REGISTRY_RIPENCC }, // 148.2.0.0 - 148.3.255.255 { 0x94040000, 0x9405ffff, REGISTRY_ARIN }, // 148.4.0.0 - 148.5.255.255 { 0x94060000, 0x9406ffff, REGISTRY_RIPENCC }, // 148.6.0.0 - 148.6.255.255 { 0x94070000, 0x9407ffff, REGISTRY_APNIC }, // 148.7.0.0 - 148.7.255.255 { 0x94080000, 0x9435ffff, REGISTRY_ARIN }, // 148.8.0.0 - 148.53.255.255 { 0x94360000, 0x9436ffff, REGISTRY_RIPENCC }, // 148.54.0.0 - 148.54.255.255 { 0x94370000, 0x9437ffff, REGISTRY_ARIN }, // 148.55.0.0 - 148.55.255.255 { 0x94380000, 0x9438ffff, REGISTRY_RIPENCC }, // 148.56.0.0 - 148.56.255.255 { 0x94390000, 0x943b38ff, REGISTRY_ARIN }, // 148.57.0.0 - 148.59.56.255 { 0x943b3900, 0x943b39ff, REGISTRY_APNIC }, // 148.59.57.0 - 148.59.57.255 { 0x943b3a00, 0x943b47ff, REGISTRY_ARIN }, // 148.59.58.0 - 148.59.71.255 { 0x943b4800, 0x943b48ff, REGISTRY_LACNIC }, // 148.59.72.0 - 148.59.72.255 { 0x943b4900, 0x943b5cff, REGISTRY_ARIN }, // 148.59.73.0 - 148.59.92.255 { 0x943b5d00, 0x943b5dff, REGISTRY_RIPENCC }, // 148.59.93.0 - 148.59.93.255 { 0x943b5e00, 0x943b5eff, REGISTRY_APNIC }, // 148.59.94.0 - 148.59.94.255 { 0x943b5f00, 0x943b72ff, REGISTRY_ARIN }, // 148.59.95.0 - 148.59.114.255 { 0x943b7300, 0x943b73ff, REGISTRY_RIPENCC }, // 148.59.115.0 - 148.59.115.255 { 0x943b7400, 0x943bffff, REGISTRY_ARIN }, // 148.59.116.0 - 148.59.255.255 { 0x943c0000, 0x943cffff, REGISTRY_RIPENCC }, // 148.60.0.0 - 148.60.255.255 { 0x943d0000, 0x943effff, REGISTRY_ARIN }, // 148.61.0.0 - 148.62.255.255 { 0x943f0000, 0x943fffff, REGISTRY_RIPENCC }, // 148.63.0.0 - 148.63.255.255 { 0x94400000, 0x944037ff, REGISTRY_ARIN }, // 148.64.0.0 - 148.64.55.255 { 0x94403800, 0x94403bff, REGISTRY_RIPENCC }, // 148.64.56.0 - 148.64.59.255 { 0x94403c00, 0x9441ffff, REGISTRY_ARIN }, // 148.64.60.0 - 148.65.255.255 { 0x94420000, 0x94421fff, REGISTRY_APNIC }, // 148.66.0.0 - 148.66.31.255 { 0x94422000, 0x94422fff, REGISTRY_ARIN }, // 148.66.32.0 - 148.66.47.255 { 0x94423000, 0x94429fff, REGISTRY_APNIC }, // 148.66.48.0 - 148.66.159.255 { 0x9442a000, 0x9442ffff, REGISTRY_ARIN }, // 148.66.160.0 - 148.66.255.255 { 0x94430000, 0x9444ffff, REGISTRY_APNIC }, // 148.67.0.0 - 148.68.255.255 { 0x94450000, 0x9445ffff, REGISTRY_RIPENCC }, // 148.69.0.0 - 148.69.255.255 { 0x94460000, 0x9446ffff, REGISTRY_APNIC }, // 148.70.0.0 - 148.70.255.255 { 0x94470000, 0x9447ffff, REGISTRY_RIPENCC }, // 148.71.0.0 - 148.71.255.255 { 0x94480000, 0x944effff, REGISTRY_ARIN }, // 148.72.0.0 - 148.78.255.255 { 0x944f0000, 0x944fffff, REGISTRY_RIPENCC }, // 148.79.0.0 - 148.79.255.255 { 0x94500000, 0x9450ffff, REGISTRY_ARIN }, // 148.80.0.0 - 148.80.255.255 { 0x94510000, 0x9451ffff, REGISTRY_RIPENCC }, // 148.81.0.0 - 148.81.255.255 { 0x94520000, 0x9453ffff, REGISTRY_RIPENCC }, // 148.82.0.0 - 148.83.255.255 { 0x94540000, 0x9457ffff, REGISTRY_ARIN }, // 148.84.0.0 - 148.87.255.255 { 0x94580000, 0x9458ffff, REGISTRY_RIPENCC }, // 148.88.0.0 - 148.88.255.255 { 0x94590000, 0x9464ffff, REGISTRY_ARIN }, // 148.89.0.0 - 148.100.255.255 { 0x94650000, 0x9467ffff, REGISTRY_LACNIC }, // 148.101.0.0 - 148.103.255.255 { 0x94680000, 0x946cffff, REGISTRY_ARIN }, // 148.104.0.0 - 148.108.255.255 { 0x946d0000, 0x946dffff, REGISTRY_APNIC }, // 148.109.0.0 - 148.109.255.255 { 0x946e0000, 0x946effff, REGISTRY_RIPENCC }, // 148.110.0.0 - 148.110.255.255 { 0x946f0000, 0x946fffff, REGISTRY_RIPENCC }, // 148.111.0.0 - 148.111.255.255 { 0x94700000, 0x9475ffff, REGISTRY_ARIN }, // 148.112.0.0 - 148.117.255.255 { 0x94760000, 0x947bffff, REGISTRY_RIPENCC }, // 148.118.0.0 - 148.123.255.255 { 0x947c0000, 0x9486ffff, REGISTRY_ARIN }, // 148.124.0.0 - 148.134.255.255 { 0x94870000, 0x9488ffff, REGISTRY_RIPENCC }, // 148.135.0.0 - 148.136.255.255 { 0x94890000, 0x9489ffff, REGISTRY_ARIN }, // 148.137.0.0 - 148.137.255.255 { 0x948a0000, 0x948cffff, REGISTRY_RIPENCC }, // 148.138.0.0 - 148.140.255.255 { 0x948d0000, 0x948effff, REGISTRY_ARIN }, // 148.141.0.0 - 148.142.255.255 { 0x948f0000, 0x948fffff, REGISTRY_RIPENCC }, // 148.143.0.0 - 148.143.255.255 { 0x94900000, 0x9490ffff, REGISTRY_ARIN }, // 148.144.0.0 - 148.144.255.255 { 0x94910000, 0x9491ffff, REGISTRY_APNIC }, // 148.145.0.0 - 148.145.255.255 { 0x94920000, 0x9493ffff, REGISTRY_ARIN }, // 148.146.0.0 - 148.147.255.255 { 0x94940000, 0x9494ffff, REGISTRY_RIPENCC }, // 148.148.0.0 - 148.148.255.255 { 0x94950000, 0x9496ffff, REGISTRY_ARIN }, // 148.149.0.0 - 148.150.255.255 { 0x94970000, 0x9497ffff, REGISTRY_RIPENCC }, // 148.151.0.0 - 148.151.255.255 { 0x94980000, 0x949fffff, REGISTRY_ARIN }, // 148.152.0.0 - 148.159.255.255 { 0x94a00000, 0x94a0ffff, REGISTRY_RIPENCC }, // 148.160.0.0 - 148.160.255.255 { 0x94a10000, 0x94a1ffff, REGISTRY_APNIC }, // 148.161.0.0 - 148.161.255.255 { 0x94a20000, 0x94a3b7ff, REGISTRY_ARIN }, // 148.162.0.0 - 148.163.183.255 { 0x94a3b800, 0x94a3bbff, REGISTRY_RIPENCC }, // 148.163.184.0 - 148.163.187.255 { 0x94a3bc00, 0x94a8ffff, REGISTRY_ARIN }, // 148.163.188.0 - 148.168.255.255 { 0x94a90000, 0x94a9ffff, REGISTRY_RIPENCC }, // 148.169.0.0 - 148.169.255.255 { 0x94aa0000, 0x94afffff, REGISTRY_ARIN }, // 148.170.0.0 - 148.175.255.255 { 0x94b00000, 0x94b0ffff, REGISTRY_RIPENCC }, // 148.176.0.0 - 148.176.255.255 { 0x94b10000, 0x94b4ffff, REGISTRY_ARIN }, // 148.177.0.0 - 148.180.255.255 { 0x94b50000, 0x94b5ffff, REGISTRY_RIPENCC }, // 148.181.0.0 - 148.181.255.255 { 0x94b60000, 0x94b6ffff, REGISTRY_APNIC }, // 148.182.0.0 - 148.182.255.255 { 0x94b70000, 0x94b8ffff, REGISTRY_ARIN }, // 148.183.0.0 - 148.184.255.255 { 0x94b90000, 0x94b9ffff, REGISTRY_RIPENCC }, // 148.185.0.0 - 148.185.255.255 { 0x94ba0000, 0x94baffff, REGISTRY_ARIN }, // 148.186.0.0 - 148.186.255.255 { 0x94bb0000, 0x94bbffff, REGISTRY_RIPENCC }, // 148.187.0.0 - 148.187.255.255 { 0x94bc0000, 0x94c2ffff, REGISTRY_ARIN }, // 148.188.0.0 - 148.194.255.255 { 0x94c30000, 0x94c3ffff, REGISTRY_APNIC }, // 148.195.0.0 - 148.195.255.255 { 0x94c40000, 0x94c6ffff, REGISTRY_RIPENCC }, // 148.196.0.0 - 148.198.255.255 { 0x94c70000, 0x94c7ffff, REGISTRY_ARIN }, // 148.199.0.0 - 148.199.255.255 { 0x94c80000, 0x94c8ffff, REGISTRY_RIPENCC }, // 148.200.0.0 - 148.200.255.255 { 0x94c90000, 0x94ddffff, REGISTRY_LACNIC }, // 148.201.0.0 - 148.221.255.255 { 0x94de0000, 0x94de07ff, REGISTRY_APNIC }, // 148.222.0.0 - 148.222.7.255 { 0x94de0800, 0x94de27ff, REGISTRY_LACNIC }, // 148.222.8.0 - 148.222.39.255 { 0x94de2800, 0x94de2bff, REGISTRY_RIPENCC }, // 148.222.40.0 - 148.222.43.255 { 0x94de2c00, 0x94de3fff, REGISTRY_LACNIC }, // 148.222.44.0 - 148.222.63.255 { 0x94de4000, 0x94de5fff, REGISTRY_APNIC }, // 148.222.64.0 - 148.222.95.255 { 0x94de6000, 0x94deefff, REGISTRY_LACNIC }, // 148.222.96.0 - 148.222.239.255 { 0x94def000, 0x94def7ff, REGISTRY_RIPENCC }, // 148.222.240.0 - 148.222.247.255 { 0x94def800, 0x94faffff, REGISTRY_LACNIC }, // 148.222.248.0 - 148.250.255.255 { 0x94fb0000, 0x94fc0fff, REGISTRY_RIPENCC }, // 148.251.0.0 - 148.252.15.255 { 0x94fc1000, 0x94fc1fff, REGISTRY_RIPENCC }, // 148.252.16.0 - 148.252.31.255 { 0x94fc2000, 0x94fd0fff, REGISTRY_RIPENCC }, // 148.252.32.0 - 148.253.15.255 { 0x94fd1000, 0x94fd1fff, REGISTRY_RIPENCC }, // 148.253.16.0 - 148.253.31.255 { 0x94fd2000, 0x94fd7fff, REGISTRY_RIPENCC }, // 148.253.32.0 - 148.253.127.255 { 0x94fd8000, 0x94fd9fff, REGISTRY_RIPENCC }, // 148.253.128.0 - 148.253.159.255 { 0x94fda000, 0x94fdffff, REGISTRY_RIPENCC }, // 148.253.160.0 - 148.253.255.255 { 0x94fe0000, 0x94feffff, REGISTRY_ARIN }, // 148.254.0.0 - 148.254.255.255 { 0x94ff0000, 0x94ffffff, REGISTRY_LACNIC }, // 148.255.0.0 - 148.255.255.255 { 0x95000000, 0x9500ffff, REGISTRY_RIPENCC }, // 149.0.0.0 - 149.0.255.255 { 0x95010000, 0x9502ffff, REGISTRY_ARIN }, // 149.1.0.0 - 149.2.255.255 { 0x95030000, 0x9503ffff, REGISTRY_RIPENCC }, // 149.3.0.0 - 149.3.255.255 { 0x95040000, 0x95130fff, REGISTRY_ARIN }, // 149.4.0.0 - 149.19.15.255 { 0x95131000, 0x95131fff, REGISTRY_APNIC }, // 149.19.16.0 - 149.19.31.255 { 0x95132000, 0x95137fff, REGISTRY_ARIN }, // 149.19.32.0 - 149.19.127.255 { 0x95138000, 0x95139bff, REGISTRY_RIPENCC }, // 149.19.128.0 - 149.19.155.255 { 0x95139c00, 0x95139fff, REGISTRY_ARIN }, // 149.19.156.0 - 149.19.159.255 { 0x9513a000, 0x9513afff, REGISTRY_LACNIC }, // 149.19.160.0 - 149.19.175.255 { 0x9513b000, 0x9513b3ff, REGISTRY_RIPENCC }, // 149.19.176.0 - 149.19.179.255 { 0x9513b400, 0x9513cdff, REGISTRY_ARIN }, // 149.19.180.0 - 149.19.205.255 { 0x9513ce00, 0x9513cfff, REGISTRY_LACNIC }, // 149.19.206.0 - 149.19.207.255 { 0x9513d000, 0x95145fff, REGISTRY_ARIN }, // 149.19.208.0 - 149.20.95.255 { 0x95146000, 0x95147fff, REGISTRY_RIPENCC }, // 149.20.96.0 - 149.20.127.255 { 0x95148000, 0x951affff, REGISTRY_ARIN }, // 149.20.128.0 - 149.26.255.255 { 0x951b0000, 0x951bffff, REGISTRY_RIPENCC }, // 149.27.0.0 - 149.27.255.255 { 0x951c0000, 0x9528ffff, REGISTRY_ARIN }, // 149.28.0.0 - 149.40.255.255 { 0x95290000, 0x9529ffff, REGISTRY_APNIC }, // 149.41.0.0 - 149.41.255.255 { 0x952a0000, 0x9530ffff, REGISTRY_ARIN }, // 149.42.0.0 - 149.48.255.255 { 0x95310000, 0x9531ffff, REGISTRY_RIPENCC }, // 149.49.0.0 - 149.49.255.255 { 0x95320000, 0x9535ffff, REGISTRY_ARIN }, // 149.50.0.0 - 149.53.255.255 { 0x95360000, 0x9536ffff, REGISTRY_APNIC }, // 149.54.0.0 - 149.54.255.255 { 0x95370000, 0x953affff, REGISTRY_ARIN }, // 149.55.0.0 - 149.58.255.255 { 0x953b0000, 0x953bffff, REGISTRY_RIPENCC }, // 149.59.0.0 - 149.59.255.255 { 0x953c0000, 0x953dffff, REGISTRY_ARIN }, // 149.60.0.0 - 149.61.255.255 { 0x953e0000, 0x953effff, REGISTRY_RIPENCC }, // 149.62.0.0 - 149.62.255.255 { 0x953f0000, 0x953fffff, REGISTRY_RIPENCC }, // 149.63.0.0 - 149.63.255.255 { 0x95400000, 0x9549ffff, REGISTRY_ARIN }, // 149.64.0.0 - 149.73.255.255 { 0x954a0000, 0x954affff, REGISTRY_RIPENCC }, // 149.74.0.0 - 149.74.255.255 { 0x954b0000, 0x9550ffff, REGISTRY_ARIN }, // 149.75.0.0 - 149.80.255.255 { 0x95510000, 0x9551ffff, REGISTRY_RIPENCC }, // 149.81.0.0 - 149.81.255.255 { 0x95520000, 0x9559ffff, REGISTRY_ARIN }, // 149.82.0.0 - 149.89.255.255 { 0x955a0000, 0x955affff, REGISTRY_RIPENCC }, // 149.90.0.0 - 149.90.255.255 { 0x955b0000, 0x956a7fff, REGISTRY_ARIN }, // 149.91.0.0 - 149.106.127.255 { 0x956a8000, 0x956abfff, REGISTRY_RIPENCC }, // 149.106.128.0 - 149.106.191.255 { 0x956ac000, 0x956adfff, REGISTRY_ARIN }, // 149.106.192.0 - 149.106.223.255 { 0x956ae000, 0x956affff, REGISTRY_RIPENCC }, // 149.106.224.0 - 149.106.255.255 { 0x956b0000, 0x956cffff, REGISTRY_ARIN }, // 149.107.0.0 - 149.108.255.255 { 0x956d0000, 0x956dffff, REGISTRY_RIPENCC }, // 149.109.0.0 - 149.109.255.255 { 0x956e0000, 0x957dffff, REGISTRY_ARIN }, // 149.110.0.0 - 149.125.255.255 { 0x957e0000, 0x957effff, REGISTRY_RIPENCC }, // 149.126.0.0 - 149.126.255.255 { 0x957f0000, 0x9580ffff, REGISTRY_ARIN }, // 149.127.0.0 - 149.128.255.255 { 0x95810000, 0x9581ffff, REGISTRY_APNIC }, // 149.129.0.0 - 149.129.255.255 { 0x95820000, 0x9583ffff, REGISTRY_ARIN }, // 149.130.0.0 - 149.131.255.255 { 0x95840000, 0x9586ffff, REGISTRY_RIPENCC }, // 149.132.0.0 - 149.134.255.255 { 0x95870000, 0x9587ffff, REGISTRY_APNIC }, // 149.135.0.0 - 149.135.255.255 { 0x95880000, 0x958affff, REGISTRY_ARIN }, // 149.136.0.0 - 149.138.255.255 { 0x958b0000, 0x958bffff, REGISTRY_RIPENCC }, // 149.139.0.0 - 149.139.255.255 { 0x958c0000, 0x958cffff, REGISTRY_RIPENCC }, // 149.140.0.0 - 149.140.255.255 { 0x958d0000, 0x958effff, REGISTRY_ARIN }, // 149.141.0.0 - 149.142.255.255 { 0x958f0000, 0x958f7fff, REGISTRY_RIPENCC }, // 149.143.0.0 - 149.143.127.255 { 0x958f8000, 0x958fffff, REGISTRY_ARIN }, // 149.143.128.0 - 149.143.255.255 { 0x95900000, 0x9590ffff, REGISTRY_APNIC }, // 149.144.0.0 - 149.144.255.255 { 0x95910000, 0x9591ffff, REGISTRY_ARIN }, // 149.145.0.0 - 149.145.255.255 { 0x95920000, 0x9592ffff, REGISTRY_RIPENCC }, // 149.146.0.0 - 149.146.255.255 { 0x95930000, 0x9593ffff, REGISTRY_RIPENCC }, // 149.147.0.0 - 149.147.255.255 { 0x95940000, 0x9594ffff, REGISTRY_RIPENCC }, // 149.148.0.0 - 149.148.255.255 { 0x95950000, 0x9598ffff, REGISTRY_ARIN }, // 149.149.0.0 - 149.152.255.255 { 0x95990000, 0x9599ffff, REGISTRY_RIPENCC }, // 149.153.0.0 - 149.153.255.255 { 0x959a0000, 0x959a3fff, REGISTRY_ARIN }, // 149.154.0.0 - 149.154.63.255 { 0x959a4000, 0x959affff, REGISTRY_RIPENCC }, // 149.154.64.0 - 149.154.255.255 { 0x959b0000, 0x959dffff, REGISTRY_RIPENCC }, // 149.155.0.0 - 149.157.255.255 { 0x959e0000, 0x95a6ffff, REGISTRY_ARIN }, // 149.158.0.0 - 149.166.255.255 { 0x95a70000, 0x95a7ffff, REGISTRY_APNIC }, // 149.167.0.0 - 149.167.255.255 { 0x95a80000, 0x95a9ffff, REGISTRY_ARIN }, // 149.168.0.0 - 149.169.255.255 { 0x95aa0000, 0x95aaffff, REGISTRY_RIPENCC }, // 149.170.0.0 - 149.170.255.255 { 0x95ab0000, 0x95abffff, REGISTRY_APNIC }, // 149.171.0.0 - 149.171.255.255 { 0x95ac0000, 0x95acffff, REGISTRY_RIPENCC }, // 149.172.0.0 - 149.172.255.255 { 0x95ad0000, 0x95afffff, REGISTRY_ARIN }, // 149.173.0.0 - 149.175.255.255 { 0x95b00000, 0x95b0ffff, REGISTRY_APNIC }, // 149.176.0.0 - 149.176.255.255 { 0x95b10000, 0x95b17fff, REGISTRY_ARIN }, // 149.177.0.0 - 149.177.127.255 { 0x95b18000, 0x95b3ffff, REGISTRY_RIPENCC }, // 149.177.128.0 - 149.179.255.255 { 0x95b40000, 0x95b47fff, REGISTRY_ARIN }, // 149.180.0.0 - 149.180.127.255 { 0x95b48000, 0x95b4ffff, REGISTRY_RIPENCC }, // 149.180.128.0 - 149.180.255.255 { 0x95b50000, 0x95b57fff, REGISTRY_ARIN }, // 149.181.0.0 - 149.181.127.255 { 0x95b58000, 0x95b9ffff, REGISTRY_RIPENCC }, // 149.181.128.0 - 149.185.255.255 { 0x95ba0000, 0x95baffff, REGISTRY_ARIN }, // 149.186.0.0 - 149.186.255.255 { 0x95bb0000, 0x95bb7fff, REGISTRY_RIPENCC }, // 149.187.0.0 - 149.187.127.255 { 0x95bb8000, 0x95bcffff, REGISTRY_ARIN }, // 149.187.128.0 - 149.188.255.255 { 0x95bd0000, 0x95bdffff, REGISTRY_RIPENCC }, // 149.189.0.0 - 149.189.255.255 { 0x95be0000, 0x95beffff, REGISTRY_ARIN }, // 149.190.0.0 - 149.190.255.255 { 0x95bf0000, 0x95c5ffff, REGISTRY_RIPENCC }, // 149.191.0.0 - 149.197.255.255 { 0x95c60000, 0x95c6ffff, REGISTRY_RIPENCC }, // 149.198.0.0 - 149.198.255.255 { 0x95c70000, 0x95c7ffff, REGISTRY_ARIN }, // 149.199.0.0 - 149.199.255.255 { 0x95c80000, 0x95c8ffff, REGISTRY_RIPENCC }, // 149.200.0.0 - 149.200.255.255 { 0x95c90000, 0x95c9ffff, REGISTRY_RIPENCC }, // 149.201.0.0 - 149.201.255.255 { 0x95ca0000, 0x95caffff, REGISTRY_RIPENCC }, // 149.202.0.0 - 149.202.255.255 { 0x95cb0000, 0x95d1ffff, REGISTRY_RIPENCC }, // 149.203.0.0 - 149.209.255.255 { 0x95d20000, 0x95d2ffff, REGISTRY_RIPENCC }, // 149.210.0.0 - 149.210.255.255 { 0x95d30000, 0x95d3ffff, REGISTRY_RIPENCC }, // 149.211.0.0 - 149.211.255.255 { 0x95d40000, 0x95d4ffff, REGISTRY_RIPENCC }, // 149.212.0.0 - 149.212.255.255 { 0x95d50000, 0x95dfffff, REGISTRY_RIPENCC }, // 149.213.0.0 - 149.223.255.255 { 0x95e00000, 0x95e0ffff, REGISTRY_RIPENCC }, // 149.224.0.0 - 149.224.255.255 { 0x95e10000, 0x95e87fff, REGISTRY_RIPENCC }, // 149.225.0.0 - 149.232.127.255 { 0x95e88000, 0x95e89fff, REGISTRY_APNIC }, // 149.232.128.0 - 149.232.159.255 { 0x95e8a000, 0x95e8afff, REGISTRY_RIPENCC }, // 149.232.160.0 - 149.232.175.255 { 0x95e8b000, 0x95e8bbff, REGISTRY_RIPENCC }, // 149.232.176.0 - 149.232.187.255 { 0x95e8bc00, 0x95e8bdff, REGISTRY_RIPENCC }, // 149.232.188.0 - 149.232.189.255 { 0x95e8be00, 0x95e8bfff, REGISTRY_RIPENCC }, // 149.232.190.0 - 149.232.191.255 { 0x95e8c000, 0x95e8f3ff, REGISTRY_RIPENCC }, // 149.232.192.0 - 149.232.243.255 { 0x95e8f400, 0x95e8fbff, REGISTRY_RIPENCC }, // 149.232.244.0 - 149.232.251.255 { 0x95e8fc00, 0x95e8ffff, REGISTRY_RIPENCC }, // 149.232.252.0 - 149.232.255.255 { 0x95e90000, 0x95e91fff, REGISTRY_RIPENCC }, // 149.233.0.0 - 149.233.31.255 { 0x95e92000, 0x95e97fff, REGISTRY_RIPENCC }, // 149.233.32.0 - 149.233.127.255 { 0x95e98000, 0x95e9ffff, REGISTRY_RIPENCC }, // 149.233.128.0 - 149.233.255.255 { 0x95ea0000, 0x95ea07ff, REGISTRY_ARIN }, // 149.234.0.0 - 149.234.7.255 { 0x95ea0800, 0x95ea7fff, REGISTRY_RIPENCC }, // 149.234.8.0 - 149.234.127.255 { 0x95ea8000, 0x95eabfff, REGISTRY_APNIC }, // 149.234.128.0 - 149.234.191.255 { 0x95eac000, 0x95eae1ff, REGISTRY_ARIN }, // 149.234.192.0 - 149.234.225.255 { 0x95eae200, 0x95eae3ff, REGISTRY_LACNIC }, // 149.234.226.0 - 149.234.227.255 { 0x95eae400, 0x95eae7ff, REGISTRY_ARIN }, // 149.234.228.0 - 149.234.231.255 { 0x95eae800, 0x95eae9ff, REGISTRY_LACNIC }, // 149.234.232.0 - 149.234.233.255 { 0x95eaea00, 0x95eaffff, REGISTRY_ARIN }, // 149.234.234.0 - 149.234.255.255 { 0x95eb0000, 0x95f0ffff, REGISTRY_RIPENCC }, // 149.235.0.0 - 149.240.255.255 { 0x95f10000, 0x95f1ffff, REGISTRY_RIPENCC }, // 149.241.0.0 - 149.241.255.255 { 0x95f20000, 0x95f5ffff, REGISTRY_RIPENCC }, // 149.242.0.0 - 149.245.255.255 { 0x95f60000, 0x95f6ffff, REGISTRY_RIPENCC }, // 149.246.0.0 - 149.246.255.255 { 0x95f70000, 0x95f7ffff, REGISTRY_RIPENCC }, // 149.247.0.0 - 149.247.255.255 { 0x95f80000, 0x95f8ffff, REGISTRY_ARIN }, // 149.248.0.0 - 149.248.255.255 { 0x95f90000, 0x95f90bff, REGISTRY_RIPENCC }, // 149.249.0.0 - 149.249.11.255 { 0x95f90c00, 0x95f91fff, REGISTRY_RIPENCC }, // 149.249.12.0 - 149.249.31.255 { 0x95f92000, 0x95f93fff, REGISTRY_RIPENCC }, // 149.249.32.0 - 149.249.63.255 { 0x95f94000, 0x95f97fff, REGISTRY_RIPENCC }, // 149.249.64.0 - 149.249.127.255 { 0x95f98000, 0x95f99fff, REGISTRY_RIPENCC }, // 149.249.128.0 - 149.249.159.255 { 0x95f9a000, 0x95f9f3ff, REGISTRY_RIPENCC }, // 149.249.160.0 - 149.249.243.255 { 0x95f9f400, 0x95f9f7ff, REGISTRY_RIPENCC }, // 149.249.244.0 - 149.249.247.255 { 0x95f9f800, 0x95f9fbff, REGISTRY_RIPENCC }, // 149.249.248.0 - 149.249.251.255 { 0x95f9fc00, 0x95fbffff, REGISTRY_RIPENCC }, // 149.249.252.0 - 149.251.255.255 { 0x95fc0000, 0x95fdffff, REGISTRY_ARIN }, // 149.252.0.0 - 149.253.255.255 { 0x95fe0000, 0x95feffff, REGISTRY_RIPENCC }, // 149.254.0.0 - 149.254.255.255 { 0x95ff0000, 0x95ffffff, REGISTRY_RIPENCC }, // 149.255.0.0 - 149.255.255.255 { 0x96000000, 0x9665ffff, REGISTRY_APNIC }, // 150.0.0.0 - 150.101.255.255 { 0x96660000, 0x9669ffff, REGISTRY_ARIN }, // 150.102.0.0 - 150.105.255.255 { 0x966a0000, 0x966affff, REGISTRY_RIPENCC }, // 150.106.0.0 - 150.106.255.255 { 0x966b0000, 0x966b7bff, REGISTRY_APNIC }, // 150.107.0.0 - 150.107.123.255 { 0x966b7c00, 0x966b7cff, REGISTRY_ARIN }, // 150.107.124.0 - 150.107.124.255 { 0x966b7d00, 0x966b7eff, REGISTRY_RIPENCC }, // 150.107.125.0 - 150.107.126.255 { 0x966b7f00, 0x966bc7ff, REGISTRY_APNIC }, // 150.107.127.0 - 150.107.199.255 { 0x966bc800, 0x966bcbff, REGISTRY_RIPENCC }, // 150.107.200.0 - 150.107.203.255 { 0x966bcc00, 0x966bffff, REGISTRY_APNIC }, // 150.107.204.0 - 150.107.255.255 { 0x966c0000, 0x966cffff, REGISTRY_ARIN }, // 150.108.0.0 - 150.108.255.255 { 0x966d0000, 0x966dffff, REGISTRY_APNIC }, // 150.109.0.0 - 150.109.255.255 { 0x966e0000, 0x966fffff, REGISTRY_ARIN }, // 150.110.0.0 - 150.111.255.255 { 0x96700000, 0x9670ffff, REGISTRY_RIPENCC }, // 150.112.0.0 - 150.112.255.255 { 0x96710000, 0x9672ffff, REGISTRY_ARIN }, // 150.113.0.0 - 150.114.255.255 { 0x96730000, 0x9675ffff, REGISTRY_APNIC }, // 150.115.0.0 - 150.117.255.255 { 0x96760000, 0x9678ffff, REGISTRY_ARIN }, // 150.118.0.0 - 150.120.255.255 { 0x96790000, 0x967affff, REGISTRY_APNIC }, // 150.121.0.0 - 150.122.255.255 { 0x967b0000, 0x967fffff, REGISTRY_ARIN }, // 150.123.0.0 - 150.127.255.255 { 0x96800000, 0x9680ffff, REGISTRY_RIPENCC }, // 150.128.0.0 - 150.128.255.255 { 0x96810000, 0x968107ff, REGISTRY_APNIC }, // 150.129.0.0 - 150.129.7.255 { 0x96810800, 0x96810bff, REGISTRY_RIPENCC }, // 150.129.8.0 - 150.129.11.255 { 0x96810c00, 0x96815bff, REGISTRY_APNIC }, // 150.129.12.0 - 150.129.91.255 { 0x96815c00, 0x96815fff, REGISTRY_RIPENCC }, // 150.129.92.0 - 150.129.95.255 { 0x96816000, 0x9681ffff, REGISTRY_APNIC }, // 150.129.96.0 - 150.129.255.255 { 0x96820000, 0x9683ffff, REGISTRY_ARIN }, // 150.130.0.0 - 150.131.255.255 { 0x96840000, 0x9684ffff, REGISTRY_RIPENCC }, // 150.132.0.0 - 150.132.255.255 { 0x96850000, 0x9689ffff, REGISTRY_ARIN }, // 150.133.0.0 - 150.137.255.255 { 0x968a0000, 0x968bffff, REGISTRY_APNIC }, // 150.138.0.0 - 150.139.255.255 { 0x968c0000, 0x968cffff, REGISTRY_RIPENCC }, // 150.140.0.0 - 150.140.255.255 { 0x968d0000, 0x9690ffff, REGISTRY_ARIN }, // 150.141.0.0 - 150.144.255.255 { 0x96910000, 0x9692ffff, REGISTRY_RIPENCC }, // 150.145.0.0 - 150.146.255.255 { 0x96930000, 0x9693ffff, REGISTRY_APNIC }, // 150.147.0.0 - 150.147.255.255 { 0x96940000, 0x9695ffff, REGISTRY_ARIN }, // 150.148.0.0 - 150.149.255.255 { 0x96960000, 0x9697ffff, REGISTRY_APNIC }, // 150.150.0.0 - 150.151.255.255 { 0x96980000, 0x969dffff, REGISTRY_ARIN }, // 150.152.0.0 - 150.157.255.255 { 0x969e0000, 0x969effff, REGISTRY_APNIC }, // 150.158.0.0 - 150.158.255.255 { 0x969f0000, 0x96a0ffff, REGISTRY_ARIN }, // 150.159.0.0 - 150.160.255.255 { 0x96a10000, 0x96a5ffff, REGISTRY_LACNIC }, // 150.161.0.0 - 150.165.255.255 { 0x96a60000, 0x96acffff, REGISTRY_ARIN }, // 150.166.0.0 - 150.172.255.255 { 0x96ad0000, 0x96adffff, REGISTRY_APNIC }, // 150.173.0.0 - 150.173.255.255 { 0x96ae0000, 0x96aeffff, REGISTRY_ARIN }, // 150.174.0.0 - 150.174.255.255 { 0x96af0000, 0x96afffff, REGISTRY_RIPENCC }, // 150.175.0.0 - 150.175.255.255 { 0x96b00000, 0x96b1ffff, REGISTRY_ARIN }, // 150.176.0.0 - 150.177.255.255 { 0x96b20000, 0x96b2ffff, REGISTRY_RIPENCC }, // 150.178.0.0 - 150.178.255.255 { 0x96b30000, 0x96b6ffff, REGISTRY_ARIN }, // 150.179.0.0 - 150.182.255.255 { 0x96b70000, 0x96b7ffff, REGISTRY_APNIC }, // 150.183.0.0 - 150.183.255.255 { 0x96b80000, 0x96b8ffff, REGISTRY_ARIN }, // 150.184.0.0 - 150.184.255.255 { 0x96b90000, 0x96bdffff, REGISTRY_LACNIC }, // 150.185.0.0 - 150.189.255.255 { 0x96be0000, 0x96beffff, REGISTRY_ARIN }, // 150.190.0.0 - 150.190.255.255 { 0x96bf0000, 0x96bfffff, REGISTRY_APNIC }, // 150.191.0.0 - 150.191.255.255 { 0x96c00000, 0x96c3cfff, REGISTRY_ARIN }, // 150.192.0.0 - 150.195.207.255 { 0x96c3d000, 0x96c3dfff, REGISTRY_APNIC }, // 150.195.208.0 - 150.195.223.255 { 0x96c3e000, 0x96c4ffff, REGISTRY_ARIN }, // 150.195.224.0 - 150.196.255.255 { 0x96c50000, 0x96c5ffff, REGISTRY_APNIC }, // 150.197.0.0 - 150.197.255.255 { 0x96c60000, 0x96caffff, REGISTRY_ARIN }, // 150.198.0.0 - 150.202.255.255 { 0x96cb0000, 0x96cbffff, REGISTRY_APNIC }, // 150.203.0.0 - 150.203.255.255 { 0x96cc0000, 0x96cdffff, REGISTRY_RIPENCC }, // 150.204.0.0 - 150.205.255.255 { 0x96ce0000, 0x96cfffff, REGISTRY_APNIC }, // 150.206.0.0 - 150.207.255.255 { 0x96d00000, 0x96d4ffff, REGISTRY_ARIN }, // 150.208.0.0 - 150.212.255.255 { 0x96d50000, 0x96d6ffff, REGISTRY_RIPENCC }, // 150.213.0.0 - 150.214.255.255 { 0x96d70000, 0x96d8ffff, REGISTRY_ARIN }, // 150.215.0.0 - 150.216.255.255 { 0x96d90000, 0x96d9ffff, REGISTRY_RIPENCC }, // 150.217.0.0 - 150.217.255.255 { 0x96da0000, 0x96deffff, REGISTRY_ARIN }, // 150.218.0.0 - 150.222.255.255 { 0x96df0000, 0x96dfffff, REGISTRY_APNIC }, // 150.223.0.0 - 150.223.255.255 { 0x96e00000, 0x96e2ffff, REGISTRY_ARIN }, // 150.224.0.0 - 150.226.255.255 { 0x96e30000, 0x96e3ffff, REGISTRY_RIPENCC }, // 150.227.0.0 - 150.227.255.255 { 0x96e40000, 0x96e4ffff, REGISTRY_ARIN }, // 150.228.0.0 - 150.228.255.255 { 0x96e50000, 0x96e5ffff, REGISTRY_APNIC }, // 150.229.0.0 - 150.229.255.255 { 0x96e60000, 0x96ebffff, REGISTRY_ARIN }, // 150.230.0.0 - 150.235.255.255 { 0x96ec0000, 0x96edffff, REGISTRY_RIPENCC }, // 150.236.0.0 - 150.237.255.255 { 0x96ee0000, 0x96f0ffff, REGISTRY_ARIN }, // 150.238.0.0 - 150.240.255.255 { 0x96f10000, 0x96f1ffff, REGISTRY_RIPENCC }, // 150.241.0.0 - 150.241.255.255 { 0x96f20000, 0x96f257ff, REGISTRY_APNIC }, // 150.242.0.0 - 150.242.87.255 { 0x96f25800, 0x96f25bff, REGISTRY_ARIN }, // 150.242.88.0 - 150.242.91.255 { 0x96f25c00, 0x96f2afff, REGISTRY_APNIC }, // 150.242.92.0 - 150.242.175.255 { 0x96f2b400, 0x96f2dbff, REGISTRY_APNIC }, // 150.242.180.0 - 150.242.219.255 { 0x96f2dc00, 0x96f2dfff, REGISTRY_ARIN }, // 150.242.220.0 - 150.242.223.255 { 0x96f2e000, 0x96f2ffff, REGISTRY_APNIC }, // 150.242.224.0 - 150.242.255.255 { 0x96f30000, 0x96f3ffff, REGISTRY_ARIN }, // 150.243.0.0 - 150.243.255.255 { 0x96f40000, 0x96f4ffff, REGISTRY_RIPENCC }, // 150.244.0.0 - 150.244.255.255 { 0x96f50000, 0x96f5ffff, REGISTRY_ARIN }, // 150.245.0.0 - 150.245.255.255 { 0x96f60000, 0x96f6ffff, REGISTRY_APNIC }, // 150.246.0.0 - 150.246.255.255 { 0x96f70000, 0x96f7ffff, REGISTRY_ARIN }, // 150.247.0.0 - 150.247.255.255 { 0x96f80000, 0x96f9ffff, REGISTRY_APNIC }, // 150.248.0.0 - 150.249.255.255 { 0x96fa0000, 0x96faffff, REGISTRY_ARIN }, // 150.250.0.0 - 150.250.255.255 { 0x96fb0000, 0x96fbffff, REGISTRY_RIPENCC }, // 150.251.0.0 - 150.251.255.255 { 0x96fc0000, 0x96fcdfff, REGISTRY_ARIN }, // 150.252.0.0 - 150.252.223.255 { 0x96fce000, 0x96fcefff, REGISTRY_RIPENCC }, // 150.252.224.0 - 150.252.239.255 { 0x96fcf000, 0x96fdffff, REGISTRY_ARIN }, // 150.252.240.0 - 150.253.255.255 { 0x96fe0000, 0x96feffff, REGISTRY_RIPENCC }, // 150.254.0.0 - 150.254.255.255 { 0x96ff0000, 0x96ffffff, REGISTRY_APNIC }, // 150.255.0.0 - 150.255.255.255 { 0x97000000, 0x9702ffff, REGISTRY_RIPENCC }, // 151.0.0.0 - 151.2.255.255 { 0x97030000, 0x975dffff, REGISTRY_RIPENCC }, // 151.3.0.0 - 151.93.255.255 { 0x975e0000, 0x975effff, REGISTRY_RIPENCC }, // 151.94.0.0 - 151.94.255.255 { 0x975f0000, 0x9762ffff, REGISTRY_RIPENCC }, // 151.95.0.0 - 151.98.255.255 { 0x97630000, 0x9763ffff, REGISTRY_RIPENCC }, // 151.99.0.0 - 151.99.255.255 { 0x97640000, 0x9764ffff, REGISTRY_RIPENCC }, // 151.100.0.0 - 151.100.255.255 { 0x97650000, 0x9769ffff, REGISTRY_ARIN }, // 151.101.0.0 - 151.105.255.255 { 0x976a0000, 0x976a3fff, REGISTRY_RIPENCC }, // 151.106.0.0 - 151.106.63.255 { 0x976a4000, 0x976a5fff, REGISTRY_RIPENCC }, // 151.106.64.0 - 151.106.95.255 { 0x976a6000, 0x976a9fff, REGISTRY_RIPENCC }, // 151.106.96.0 - 151.106.159.255 { 0x976aa000, 0x976abfff, REGISTRY_ARIN }, // 151.106.160.0 - 151.106.191.255 { 0x976ac000, 0x976aefff, REGISTRY_RIPENCC }, // 151.106.192.0 - 151.106.239.255 { 0x976af000, 0x9772ffff, REGISTRY_ARIN }, // 151.106.240.0 - 151.114.255.255 { 0x97730000, 0x9773ffff, REGISTRY_RIPENCC }, // 151.115.0.0 - 151.115.255.255 { 0x97740000, 0x9777ffff, REGISTRY_ARIN }, // 151.116.0.0 - 151.119.255.255 { 0x97780000, 0x9778ffff, REGISTRY_RIPENCC }, // 151.120.0.0 - 151.120.255.255 { 0x97790000, 0x977effff, REGISTRY_ARIN }, // 151.121.0.0 - 151.126.255.255 { 0x977f0000, 0x977fffff, REGISTRY_RIPENCC }, // 151.127.0.0 - 151.127.255.255 { 0x97800000, 0x9780ffff, REGISTRY_ARIN }, // 151.128.0.0 - 151.128.255.255 { 0x97810000, 0x9781ffff, REGISTRY_RIPENCC }, // 151.129.0.0 - 151.129.255.255 { 0x97820000, 0x9782ffff, REGISTRY_APNIC }, // 151.130.0.0 - 151.130.255.255 { 0x97830000, 0x9784ffff, REGISTRY_ARIN }, // 151.131.0.0 - 151.132.255.255 { 0x97850000, 0x9785ffff, REGISTRY_RIPENCC }, // 151.133.0.0 - 151.133.255.255 { 0x97860000, 0x9786ffff, REGISTRY_ARIN }, // 151.134.0.0 - 151.134.255.255 { 0x97870000, 0x9787ffff, REGISTRY_RIPENCC }, // 151.135.0.0 - 151.135.255.255 { 0x97880000, 0x9788ffff, REGISTRY_RIPENCC }, // 151.136.0.0 - 151.136.255.255 { 0x97890000, 0x9798ffff, REGISTRY_ARIN }, // 151.137.0.0 - 151.152.255.255 { 0x97990000, 0x9799ffff, REGISTRY_APNIC }, // 151.153.0.0 - 151.153.255.255 { 0x979a0000, 0x979bffff, REGISTRY_ARIN }, // 151.154.0.0 - 151.155.255.255 { 0x979c0000, 0x979dffff, REGISTRY_RIPENCC }, // 151.156.0.0 - 151.157.255.255 { 0x979f0000, 0x97a9ffff, REGISTRY_ARIN }, // 151.159.0.0 - 151.169.255.255 { 0x97aa0000, 0x97aaffff, REGISTRY_RIPENCC }, // 151.170.0.0 - 151.170.255.255 { 0x97ab0000, 0x97abffff, REGISTRY_ARIN }, // 151.171.0.0 - 151.171.255.255 { 0x97ad0000, 0x97adffff, REGISTRY_RIPENCC }, // 151.173.0.0 - 151.173.255.255 { 0x97ae0000, 0x97aeffff, REGISTRY_ARIN }, // 151.174.0.0 - 151.174.255.255 { 0x97af0000, 0x97b0ffff, REGISTRY_RIPENCC }, // 151.175.0.0 - 151.176.255.255 { 0x97b10000, 0x97b1ffff, REGISTRY_RIPENCC }, // 151.177.0.0 - 151.177.255.255 { 0x97b20000, 0x97b2ffff, REGISTRY_APNIC }, // 151.178.0.0 - 151.178.255.255 { 0x97b30000, 0x97b3ffff, REGISTRY_ARIN }, // 151.179.0.0 - 151.179.255.255 { 0x97b40000, 0x97b4ffff, REGISTRY_RIPENCC }, // 151.180.0.0 - 151.180.255.255 { 0x97b50000, 0x97b5ffff, REGISTRY_ARIN }, // 151.181.0.0 - 151.181.255.255 { 0x97b60000, 0x97b8ffff, REGISTRY_RIPENCC }, // 151.182.0.0 - 151.184.255.255 { 0x97b90000, 0x97b9ffff, REGISTRY_ARIN }, // 151.185.0.0 - 151.185.255.255 { 0x97ba0000, 0x97bbffff, REGISTRY_RIPENCC }, // 151.186.0.0 - 151.187.255.255 { 0x97bc0000, 0x97bcffff, REGISTRY_ARIN }, // 151.188.0.0 - 151.188.255.255 { 0x97bd0000, 0x97bdffff, REGISTRY_RIPENCC }, // 151.189.0.0 - 151.189.255.255 { 0x97be0000, 0x97bfffff, REGISTRY_ARIN }, // 151.190.0.0 - 151.191.255.255 { 0x97c00000, 0x97c0ffff, REGISTRY_APNIC }, // 151.192.0.0 - 151.192.255.255 { 0x97c10000, 0x97cdffff, REGISTRY_ARIN }, // 151.193.0.0 - 151.205.255.255 { 0x97ce0000, 0x97ceffff, REGISTRY_RIPENCC }, // 151.206.0.0 - 151.206.255.255 { 0x97cf0000, 0x97d27fff, REGISTRY_ARIN }, // 151.207.0.0 - 151.210.127.255 { 0x97d28000, 0x97d2ffff, REGISTRY_APNIC }, // 151.210.128.0 - 151.210.255.255 { 0x97d30000, 0x97d4ffff, REGISTRY_RIPENCC }, // 151.211.0.0 - 151.212.255.255 { 0x97d50000, 0x97d7ffff, REGISTRY_ARIN }, // 151.213.0.0 - 151.215.255.255 { 0x97d80000, 0x97d803ff, REGISTRY_RIPENCC }, // 151.216.0.0 - 151.216.3.255 { 0x97e00000, 0x97ffffff, REGISTRY_RIPENCC }, // 151.224.0.0 - 151.255.255.255 { 0x98000000, 0x9800ffff, REGISTRY_LACNIC }, // 152.0.0.0 - 152.0.255.255 { 0x98010000, 0x98203fff, REGISTRY_ARIN }, // 152.1.0.0 - 152.32.63.255 { 0x98204000, 0x9820ffff, REGISTRY_APNIC }, // 152.32.64.0 - 152.32.255.255 { 0x98210000, 0x9824bfff, REGISTRY_ARIN }, // 152.33.0.0 - 152.36.191.255 { 0x9824c000, 0x9824dfff, REGISTRY_APNIC }, // 152.36.192.0 - 152.36.223.255 { 0x9824e000, 0x9824ffff, REGISTRY_RIPENCC }, // 152.36.224.0 - 152.36.255.255 { 0x98250000, 0x98253fff, REGISTRY_ARIN }, // 152.37.0.0 - 152.37.63.255 { 0x98254000, 0x98257fff, REGISTRY_RIPENCC }, // 152.37.64.0 - 152.37.127.255 { 0x98258000, 0x9828ffff, REGISTRY_ARIN }, // 152.37.128.0 - 152.40.255.255 { 0x98290000, 0x98297fff, REGISTRY_RIPENCC }, // 152.41.0.0 - 152.41.127.255 { 0x98298000, 0x9833ffff, REGISTRY_ARIN }, // 152.41.128.0 - 152.51.255.255 { 0x98340000, 0x9834ffff, REGISTRY_APNIC }, // 152.52.0.0 - 152.52.255.255 { 0x98350000, 0x9835ffff, REGISTRY_RIPENCC }, // 152.53.0.0 - 152.53.255.255 { 0x98360000, 0x9837ffff, REGISTRY_ARIN }, // 152.54.0.0 - 152.55.255.255 { 0x98380000, 0x983bffff, REGISTRY_APNIC }, // 152.56.0.0 - 152.59.255.255 { 0x983c0000, 0x9840ffff, REGISTRY_ARIN }, // 152.60.0.0 - 152.64.255.255 { 0x98410000, 0x98417fff, REGISTRY_RIPENCC }, // 152.65.0.0 - 152.65.127.255 { 0x98418000, 0x9841bfff, REGISTRY_ARIN }, // 152.65.128.0 - 152.65.191.255 { 0x9841c000, 0x9841ffff, REGISTRY_APNIC }, // 152.65.192.0 - 152.65.255.255 { 0x98420000, 0x9842ffff, REGISTRY_RIPENCC }, // 152.66.0.0 - 152.66.255.255 { 0x98430000, 0x9846ffff, REGISTRY_ARIN }, // 152.67.0.0 - 152.70.255.255 { 0x98470000, 0x9847ffff, REGISTRY_RIPENCC }, // 152.71.0.0 - 152.71.255.255 { 0x98480000, 0x9848ffff, REGISTRY_ARIN }, // 152.72.0.0 - 152.72.255.255 { 0x98490000, 0x9849ffff, REGISTRY_RIPENCC }, // 152.73.0.0 - 152.73.255.255 { 0x984a0000, 0x984affff, REGISTRY_LACNIC }, // 152.74.0.0 - 152.74.255.255 { 0x984b0000, 0x984bffff, REGISTRY_ARIN }, // 152.75.0.0 - 152.75.255.255 { 0x984c0000, 0x984cffff, REGISTRY_APNIC }, // 152.76.0.0 - 152.76.255.255 { 0x984d0000, 0x984effff, REGISTRY_RIPENCC }, // 152.77.0.0 - 152.78.255.255 { 0x984f0000, 0x9850ffff, REGISTRY_ARIN }, // 152.79.0.0 - 152.80.255.255 { 0x98510000, 0x9851ffff, REGISTRY_RIPENCC }, // 152.81.0.0 - 152.81.255.255 { 0x98520000, 0x9852ffff, REGISTRY_ARIN }, // 152.82.0.0 - 152.82.255.255 { 0x98530000, 0x9853ffff, REGISTRY_APNIC }, // 152.83.0.0 - 152.83.255.255 { 0x98540000, 0x9854ffff, REGISTRY_LACNIC }, // 152.84.0.0 - 152.84.255.255 { 0x98550000, 0x9857ffff, REGISTRY_ARIN }, // 152.85.0.0 - 152.87.255.255 { 0x98580000, 0x9858ffff, REGISTRY_RIPENCC }, // 152.88.0.0 - 152.88.255.255 { 0x98590000, 0x9859ffff, REGISTRY_RIPENCC }, // 152.89.0.0 - 152.89.255.255 { 0x985a0000, 0x985affff, REGISTRY_RIPENCC }, // 152.90.0.0 - 152.90.255.255 { 0x985b0000, 0x985bffff, REGISTRY_APNIC }, // 152.91.0.0 - 152.91.255.255 { 0x985c0000, 0x985cffff, REGISTRY_LACNIC }, // 152.92.0.0 - 152.92.255.255 { 0x985d0000, 0x9860ffff, REGISTRY_RIPENCC }, // 152.93.0.0 - 152.96.255.255 { 0x98610000, 0x9861ffff, REGISTRY_ARIN }, // 152.97.0.0 - 152.97.255.255 { 0x98620000, 0x9863ffff, REGISTRY_APNIC }, // 152.98.0.0 - 152.99.255.255 { 0x98640000, 0x9864ffff, REGISTRY_ARIN }, // 152.100.0.0 - 152.100.255.255 { 0x98650000, 0x9868ffff, REGISTRY_APNIC }, // 152.101.0.0 - 152.104.255.255 { 0x98690000, 0x9869ffff, REGISTRY_RIPENCC }, // 152.105.0.0 - 152.105.255.255 { 0x986a0000, 0x9870ffff, REGISTRY_AFRINIC }, // 152.106.0.0 - 152.112.255.255 { 0x98710000, 0x9871ffff, REGISTRY_ARIN }, // 152.113.0.0 - 152.113.255.255 { 0x98720000, 0x9873ffff, REGISTRY_RIPENCC }, // 152.114.0.0 - 152.115.255.255 { 0x98740000, 0x98757fff, REGISTRY_ARIN }, // 152.116.0.0 - 152.117.127.255 { 0x98758000, 0x9876ffff, REGISTRY_APNIC }, // 152.117.128.0 - 152.118.255.255 { 0x98770000, 0x9885ffff, REGISTRY_ARIN }, // 152.119.0.0 - 152.133.255.255 { 0x98860000, 0x9886ffff, REGISTRY_RIPENCC }, // 152.134.0.0 - 152.134.255.255 { 0x98870000, 0x9887ffff, REGISTRY_ARIN }, // 152.135.0.0 - 152.135.255.255 { 0x98880000, 0x9888ffff, REGISTRY_APNIC }, // 152.136.0.0 - 152.136.255.255 { 0x98890000, 0x9889ffff, REGISTRY_ARIN }, // 152.137.0.0 - 152.137.255.255 { 0x988a0000, 0x988affff, REGISTRY_RIPENCC }, // 152.138.0.0 - 152.138.255.255 { 0x988b0000, 0x988bffff, REGISTRY_LACNIC }, // 152.139.0.0 - 152.139.255.255 { 0x988c0000, 0x988effff, REGISTRY_ARIN }, // 152.140.0.0 - 152.142.255.255 { 0x988f0000, 0x988fffff, REGISTRY_RIPENCC }, // 152.143.0.0 - 152.143.255.255 { 0x98900000, 0x9892ffff, REGISTRY_ARIN }, // 152.144.0.0 - 152.146.255.255 { 0x98930000, 0x9893ffff, REGISTRY_APNIC }, // 152.147.0.0 - 152.147.255.255 { 0x98940000, 0x9894ffff, REGISTRY_ARIN }, // 152.148.0.0 - 152.148.255.255 { 0x98950000, 0x9895ffff, REGISTRY_APNIC }, // 152.149.0.0 - 152.149.255.255 { 0x98960000, 0x9896ffff, REGISTRY_RIPENCC }, // 152.150.0.0 - 152.150.255.255 { 0x98970000, 0x9897ffff, REGISTRY_ARIN }, // 152.151.0.0 - 152.151.255.255 { 0x98980000, 0x9898ffff, REGISTRY_RIPENCC }, // 152.152.0.0 - 152.152.255.255 { 0x98990000, 0x9899ffff, REGISTRY_APNIC }, // 152.153.0.0 - 152.153.255.255 { 0x989a0000, 0x989bffff, REGISTRY_ARIN }, // 152.154.0.0 - 152.155.255.255 { 0x989c0000, 0x989cffff, REGISTRY_LACNIC }, // 152.156.0.0 - 152.156.255.255 { 0x989d0000, 0x98a4ffff, REGISTRY_ARIN }, // 152.157.0.0 - 152.164.255.255 { 0x98a50000, 0x98a5ffff, REGISTRY_APNIC }, // 152.165.0.0 - 152.165.255.255 { 0x98a60000, 0x98afffff, REGISTRY_LACNIC }, // 152.166.0.0 - 152.175.255.255 { 0x98b00000, 0x98c7ffff, REGISTRY_ARIN }, // 152.176.0.0 - 152.199.255.255 { 0x98c80000, 0x98cfffff, REGISTRY_LACNIC }, // 152.200.0.0 - 152.207.255.255 { 0x98d00000, 0x98e1ffff, REGISTRY_ARIN }, // 152.208.0.0 - 152.225.255.255 { 0x98e20000, 0x98e2ffff, REGISTRY_APNIC }, // 152.226.0.0 - 152.226.255.255 { 0x98e30000, 0x98e47fff, REGISTRY_ARIN }, // 152.227.0.0 - 152.228.127.255 { 0x98e48000, 0x98e4ffff, REGISTRY_RIPENCC }, // 152.228.128.0 - 152.228.255.255 { 0x98e50000, 0x98e5ffff, REGISTRY_ARIN }, // 152.229.0.0 - 152.229.255.255 { 0x98e60000, 0x98ffffff, REGISTRY_LACNIC }, // 152.230.0.0 - 152.255.255.255 { 0x99000000, 0x9900ffff, REGISTRY_APNIC }, // 153.0.0.0 - 153.0.255.255 { 0x99010000, 0x9901ffff, REGISTRY_RIPENCC }, // 153.1.0.0 - 153.1.255.255 { 0x99020000, 0x9902ffff, REGISTRY_ARIN }, // 153.2.0.0 - 153.2.255.255 { 0x99030000, 0x9903ffff, REGISTRY_APNIC }, // 153.3.0.0 - 153.3.255.255 { 0x99040000, 0x9904ffff, REGISTRY_ARIN }, // 153.4.0.0 - 153.4.255.255 { 0x99050000, 0x9905ffff, REGISTRY_RIPENCC }, // 153.5.0.0 - 153.5.255.255 { 0x99060000, 0x990effff, REGISTRY_ARIN }, // 153.6.0.0 - 153.14.255.255 { 0x990f0000, 0x990fffff, REGISTRY_RIPENCC }, // 153.15.0.0 - 153.15.255.255 { 0x99100000, 0x9910ffff, REGISTRY_ARIN }, // 153.16.0.0 - 153.16.255.255 { 0x99110000, 0x9911ffff, REGISTRY_RIPENCC }, // 153.17.0.0 - 153.17.255.255 { 0x99120000, 0x9912ffff, REGISTRY_ARIN }, // 153.18.0.0 - 153.18.255.255 { 0x99130000, 0x9913ffff, REGISTRY_RIPENCC }, // 153.19.0.0 - 153.19.255.255 { 0x99140000, 0x9914ffff, REGISTRY_APNIC }, // 153.20.0.0 - 153.20.255.255 { 0x99150000, 0x9921ffff, REGISTRY_ARIN }, // 153.21.0.0 - 153.33.255.255 { 0x99220000, 0x9925ffff, REGISTRY_APNIC }, // 153.34.0.0 - 153.37.255.255 { 0x99260000, 0x9957ffff, REGISTRY_ARIN }, // 153.38.0.0 - 153.87.255.255 { 0x99580000, 0x9958ffff, REGISTRY_RIPENCC }, // 153.88.0.0 - 153.88.255.255 { 0x99590000, 0x995bffff, REGISTRY_ARIN }, // 153.89.0.0 - 153.91.255.255 { 0x995c0000, 0x995c47ff, REGISTRY_RIPENCC }, // 153.92.0.0 - 153.92.71.255 { 0x995c4800, 0x995c5fff, REGISTRY_RIPENCC }, // 153.92.72.0 - 153.92.95.255 { 0x995c6000, 0x995c6fff, REGISTRY_RIPENCC }, // 153.92.96.0 - 153.92.111.255 { 0x995c7000, 0x995c7bff, REGISTRY_RIPENCC }, // 153.92.112.0 - 153.92.123.255 { 0x995c7c00, 0x995cffff, REGISTRY_RIPENCC }, // 153.92.124.0 - 153.92.255.255 { 0x995d0000, 0x995dffff, REGISTRY_RIPENCC }, // 153.93.0.0 - 153.93.255.255 { 0x995e0000, 0x995e0fff, REGISTRY_RIPENCC }, // 153.94.0.0 - 153.94.15.255 { 0x995e1000, 0x995effff, REGISTRY_RIPENCC }, // 153.94.16.0 - 153.94.255.255 { 0x995f0000, 0x9962ffff, REGISTRY_RIPENCC }, // 153.95.0.0 - 153.98.255.255 { 0x99630000, 0x9963ffff, REGISTRY_APNIC }, // 153.99.0.0 - 153.99.255.255 { 0x99640000, 0x9964ffff, REGISTRY_RIPENCC }, // 153.100.0.0 - 153.100.255.255 { 0x99650000, 0x9965ffff, REGISTRY_APNIC }, // 153.101.0.0 - 153.101.255.255 { 0x99660000, 0x996affff, REGISTRY_ARIN }, // 153.102.0.0 - 153.106.255.255 { 0x996b0000, 0x996bffff, REGISTRY_APNIC }, // 153.107.0.0 - 153.107.255.255 { 0x996c0000, 0x996effff, REGISTRY_RIPENCC }, // 153.108.0.0 - 153.110.255.255 { 0x996f0000, 0x996fffff, REGISTRY_APNIC }, // 153.111.0.0 - 153.111.255.255 { 0x99700000, 0x9970ffff, REGISTRY_RIPENCC }, // 153.112.0.0 - 153.112.255.255 { 0x99710000, 0x9975ffff, REGISTRY_ARIN }, // 153.113.0.0 - 153.117.255.255 { 0x99760000, 0x99ffffff, REGISTRY_APNIC }, // 153.118.0.0 - 153.255.255.255 { 0x9a000000, 0x9a003fff, REGISTRY_AFRINIC }, // 154.0.0.0 - 154.0.63.255 { 0x9a008000, 0x9a00ffff, REGISTRY_AFRINIC }, // 154.0.128.0 - 154.0.255.255 { 0x9a010000, 0x9a07ffff, REGISTRY_ARIN }, // 154.1.0.0 - 154.7.255.255 { 0x9a080000, 0x9a082fff, REGISTRY_RIPENCC }, // 154.8.0.0 - 154.8.47.255 { 0x9a083000, 0x9a08ffff, REGISTRY_APNIC }, // 154.8.48.0 - 154.8.255.255 { 0x9a090000, 0x9a09ffff, REGISTRY_ARIN }, // 154.9.0.0 - 154.9.255.255 { 0x9a0a0000, 0x9a0affff, REGISTRY_APNIC }, // 154.10.0.0 - 154.10.255.255 { 0x9a0b0000, 0x9a0dffff, REGISTRY_ARIN }, // 154.11.0.0 - 154.13.255.255 { 0x9a0e0000, 0x9a0fffff, REGISTRY_RIPENCC }, // 154.14.0.0 - 154.15.255.255 { 0x9a100000, 0x9a10ffff, REGISTRY_AFRINIC }, // 154.16.0.0 - 154.16.255.255 { 0x9a110000, 0x9a1fffff, REGISTRY_ARIN }, // 154.17.0.0 - 154.31.255.255 { 0x9a200000, 0x9a20ffff, REGISTRY_RIPENCC }, // 154.32.0.0 - 154.32.255.255 { 0x9a210000, 0x9a22ffff, REGISTRY_APNIC }, // 154.33.0.0 - 154.34.255.255 { 0x9a230000, 0x9a40ffff, REGISTRY_ARIN }, // 154.35.0.0 - 154.64.255.255 { 0x9a410000, 0x9a4127ff, REGISTRY_AFRINIC }, // 154.65.0.0 - 154.65.39.255 { 0x9a413400, 0x9a4253ff, REGISTRY_AFRINIC }, // 154.65.52.0 - 154.66.83.255 { 0x9a425800, 0x9a4263ff, REGISTRY_AFRINIC }, // 154.66.88.0 - 154.66.99.255 { 0x9a426800, 0x9a463fff, REGISTRY_AFRINIC }, // 154.66.104.0 - 154.70.63.255 { 0x9a465000, 0x9a469bff, REGISTRY_AFRINIC }, // 154.70.80.0 - 154.70.155.255 { 0x9a46a000, 0x9a46c3ff, REGISTRY_AFRINIC }, // 154.70.160.0 - 154.70.195.255 { 0x9a46c800, 0x9a481bff, REGISTRY_AFRINIC }, // 154.70.200.0 - 154.72.27.255 { 0x9a482000, 0x9a490bff, REGISTRY_AFRINIC }, // 154.72.32.0 - 154.73.11.255 { 0x9a491000, 0x9a494bff, REGISTRY_AFRINIC }, // 154.73.16.0 - 154.73.75.255 { 0x9a495000, 0x9a4973ff, REGISTRY_AFRINIC }, // 154.73.80.0 - 154.73.115.255 { 0x9a497800, 0x9a498fff, REGISTRY_AFRINIC }, // 154.73.120.0 - 154.73.143.255 { 0x9a499800, 0x9a49afff, REGISTRY_AFRINIC }, // 154.73.152.0 - 154.73.175.255 { 0x9a49b400, 0x9a49c7ff, REGISTRY_AFRINIC }, // 154.73.180.0 - 154.73.199.255 { 0x9a49d000, 0x9a49ebff, REGISTRY_AFRINIC }, // 154.73.208.0 - 154.73.235.255 { 0x9a49f000, 0x9a738fff, REGISTRY_AFRINIC }, // 154.73.240.0 - 154.115.143.255 { 0x9a739c00, 0x9a74ffff, REGISTRY_AFRINIC }, // 154.115.156.0 - 154.116.255.255 { 0x9a754000, 0x9a76e7ff, REGISTRY_AFRINIC }, // 154.117.64.0 - 154.118.231.255 { 0x9a76f000, 0x9a76f7ff, REGISTRY_AFRINIC }, // 154.118.240.0 - 154.118.247.255 { 0x9a76fc00, 0x9a7f5fff, REGISTRY_AFRINIC }, // 154.118.252.0 - 154.127.95.255 { 0x9a7f7000, 0x9b00ffff, REGISTRY_AFRINIC }, // 154.127.112.0 - 155.0.255.255 { 0x9b010000, 0x9b03ffff, REGISTRY_ARIN }, // 155.1.0.0 - 155.3.255.255 { 0x9b040000, 0x9b04ffff, REGISTRY_RIPENCC }, // 155.4.0.0 - 155.4.255.255 { 0x9b050000, 0x9b0affff, REGISTRY_ARIN }, // 155.5.0.0 - 155.10.255.255 { 0x9b0c0000, 0x9b0cbfff, REGISTRY_AFRINIC }, // 155.12.0.0 - 155.12.191.255 { 0x9b0ce000, 0x9b0cffff, REGISTRY_AFRINIC }, // 155.12.224.0 - 155.12.255.255 { 0x9b0d0000, 0x9b1fffff, REGISTRY_ARIN }, // 155.13.0.0 - 155.31.255.255 { 0x9b200000, 0x9b20ffff, REGISTRY_APNIC }, // 155.32.0.0 - 155.32.255.255 { 0x9b210000, 0x9b2300ff, REGISTRY_ARIN }, // 155.33.0.0 - 155.35.0.255 { 0x9b230200, 0x9b2321ff, REGISTRY_ARIN }, // 155.35.2.0 - 155.35.33.255 { 0x9b232400, 0x9b232dff, REGISTRY_ARIN }, // 155.35.36.0 - 155.35.45.255 { 0x9b233000, 0x9b23e1ff, REGISTRY_ARIN }, // 155.35.48.0 - 155.35.225.255 { 0x9b23e200, 0x9b23e2ff, REGISTRY_APNIC }, // 155.35.226.0 - 155.35.226.255 { 0x9b23e300, 0x9b23e7ff, REGISTRY_ARIN }, // 155.35.227.0 - 155.35.231.255 { 0x9b23e900, 0x9b2cffff, REGISTRY_ARIN }, // 155.35.233.0 - 155.44.255.255 { 0x9b2d0000, 0x9b2dffff, REGISTRY_RIPENCC }, // 155.45.0.0 - 155.45.255.255 { 0x9b2e0000, 0x9b35ffff, REGISTRY_ARIN }, // 155.46.0.0 - 155.53.255.255 { 0x9b360000, 0x9b38ffff, REGISTRY_RIPENCC }, // 155.54.0.0 - 155.56.255.255 { 0x9b390000, 0x9b3affff, REGISTRY_ARIN }, // 155.57.0.0 - 155.58.255.255 { 0x9b3b0000, 0x9b3cffff, REGISTRY_APNIC }, // 155.59.0.0 - 155.60.255.255 { 0x9b3d0000, 0x9b3dffff, REGISTRY_ARIN }, // 155.61.0.0 - 155.61.255.255 { 0x9b3e0000, 0x9b3effff, REGISTRY_APNIC }, // 155.62.0.0 - 155.62.255.255 { 0x9b3f0000, 0x9b41ffff, REGISTRY_ARIN }, // 155.63.0.0 - 155.65.255.255 { 0x9b420000, 0x9b42ffff, REGISTRY_RIPENCC }, // 155.66.0.0 - 155.66.255.255 { 0x9b430000, 0x9b44ffff, REGISTRY_ARIN }, // 155.67.0.0 - 155.68.255.255 { 0x9b450000, 0x9b45ffff, REGISTRY_APNIC }, // 155.69.0.0 - 155.69.255.255 { 0x9b460000, 0x9b46ffff, REGISTRY_ARIN }, // 155.70.0.0 - 155.70.255.255 { 0x9b470000, 0x9b47ffff, REGISTRY_APNIC }, // 155.71.0.0 - 155.71.255.255 { 0x9b480000, 0x9b48ffff, REGISTRY_ARIN }, // 155.72.0.0 - 155.72.255.255 { 0x9b490000, 0x9b49ffff, REGISTRY_RIPENCC }, // 155.73.0.0 - 155.73.255.255 { 0x9b4a0000, 0x9b58ffff, REGISTRY_ARIN }, // 155.74.0.0 - 155.88.255.255 { 0x9b590000, 0x9b59ffff, REGISTRY_AFRINIC }, // 155.89.0.0 - 155.89.255.255 { 0x9b5a0000, 0x9b5cffff, REGISTRY_ARIN }, // 155.90.0.0 - 155.92.255.255 { 0x9b5d0000, 0x9b5dffff, REGISTRY_AFRINIC }, // 155.93.0.0 - 155.93.255.255 { 0x9b5e0000, 0x9b68ffff, REGISTRY_ARIN }, // 155.94.0.0 - 155.104.255.255 { 0x9b690000, 0x9b69ffff, REGISTRY_RIPENCC }, // 155.105.0.0 - 155.105.255.255 { 0x9b6a0000, 0x9b82ffff, REGISTRY_ARIN }, // 155.106.0.0 - 155.130.255.255 { 0x9b830000, 0x9b8567ff, REGISTRY_RIPENCC }, // 155.131.0.0 - 155.133.103.255 { 0x9b856800, 0x9b856fff, REGISTRY_RIPENCC }, // 155.133.104.0 - 155.133.111.255 { 0x9b857000, 0x9b85ffff, REGISTRY_RIPENCC }, // 155.133.112.0 - 155.133.255.255 { 0x9b860000, 0x9b87ffff, REGISTRY_ARIN }, // 155.134.0.0 - 155.135.255.255 { 0x9b880000, 0x9b8917ff, REGISTRY_RIPENCC }, // 155.136.0.0 - 155.137.23.255 { 0x9b891800, 0x9b891fff, REGISTRY_RIPENCC }, // 155.137.24.0 - 155.137.31.255 { 0x9b892000, 0x9b893fff, REGISTRY_RIPENCC }, // 155.137.32.0 - 155.137.63.255 { 0x9b894000, 0x9b89ffff, REGISTRY_APNIC }, // 155.137.64.0 - 155.137.255.255 { 0x9b8a0000, 0x9b8a3fff, REGISTRY_ARIN }, // 155.138.0.0 - 155.138.63.255 { 0x9b8a4000, 0x9b8a7fff, REGISTRY_RIPENCC }, // 155.138.64.0 - 155.138.127.255 { 0x9b8a8000, 0x9b8bffff, REGISTRY_ARIN }, // 155.138.128.0 - 155.139.255.255 { 0x9b8c0000, 0x9b8cffff, REGISTRY_RIPENCC }, // 155.140.0.0 - 155.140.255.255 { 0x9b8d0000, 0x9b8effff, REGISTRY_ARIN }, // 155.141.0.0 - 155.142.255.255 { 0x9b8f0000, 0x9b90ffff, REGISTRY_APNIC }, // 155.143.0.0 - 155.144.255.255 { 0x9b910000, 0x9b91ffff, REGISTRY_RIPENCC }, // 155.145.0.0 - 155.145.255.255 { 0x9b920000, 0x9b9dffff, REGISTRY_ARIN }, // 155.146.0.0 - 155.157.255.255 { 0x9b9e0000, 0x9b9effff, REGISTRY_RIPENCC }, // 155.158.0.0 - 155.158.255.255 { 0x9b9f0000, 0x9b9fffff, REGISTRY_AFRINIC }, // 155.159.0.0 - 155.159.255.255 { 0x9ba00000, 0x9ba0ffff, REGISTRY_APNIC }, // 155.160.0.0 - 155.160.255.255 { 0x9ba10000, 0x9bb8ffff, REGISTRY_ARIN }, // 155.161.0.0 - 155.184.255.255 { 0x9bb90000, 0x9bb9ffff, REGISTRY_RIPENCC }, // 155.185.0.0 - 155.185.255.255 { 0x9bba0000, 0x9bbaffff, REGISTRY_ARIN }, // 155.186.0.0 - 155.186.255.255 { 0x9bbb0000, 0x9bbbffff, REGISTRY_APNIC }, // 155.187.0.0 - 155.187.255.255 { 0x9bbc0000, 0x9bbdffff, REGISTRY_ARIN }, // 155.188.0.0 - 155.189.255.255 { 0x9bbe0000, 0x9bbeffff, REGISTRY_RIPENCC }, // 155.190.0.0 - 155.190.255.255 { 0x9bbf0000, 0x9bbfffff, REGISTRY_ARIN }, // 155.191.0.0 - 155.191.255.255 { 0x9bc00000, 0x9bc0ffff, REGISTRY_RIPENCC }, // 155.192.0.0 - 155.192.255.255 { 0x9bc10000, 0x9bc1ffff, REGISTRY_RIPENCC }, // 155.193.0.0 - 155.193.255.255 { 0x9bc20000, 0x9bc3ffff, REGISTRY_ARIN }, // 155.194.0.0 - 155.195.255.255 { 0x9bc40000, 0x9bc4ffff, REGISTRY_AFRINIC }, // 155.196.0.0 - 155.196.255.255 { 0x9bc50000, 0x9bc5ffff, REGISTRY_ARIN }, // 155.197.0.0 - 155.197.255.255 { 0x9bc60000, 0x9bc6ffff, REGISTRY_RIPENCC }, // 155.198.0.0 - 155.198.255.255 { 0x9bc70000, 0x9bc9ffff, REGISTRY_ARIN }, // 155.199.0.0 - 155.201.255.255 { 0x9bca0000, 0x9bcaffff, REGISTRY_RIPENCC }, // 155.202.0.0 - 155.202.255.255 { 0x9bcb0000, 0x9bcbffff, REGISTRY_ARIN }, // 155.203.0.0 - 155.203.255.255 { 0x9bcc0000, 0x9bccffff, REGISTRY_RIPENCC }, // 155.204.0.0 - 155.204.255.255 { 0x9bcd0000, 0x9bcdffff, REGISTRY_APNIC }, // 155.205.0.0 - 155.205.255.255 { 0x9bce0000, 0x9bceffff, REGISTRY_ARIN }, // 155.206.0.0 - 155.206.255.255 { 0x9bcf0000, 0x9bcfffff, REGISTRY_RIPENCC }, // 155.207.0.0 - 155.207.255.255 { 0x9bd00000, 0x9bd0ffff, REGISTRY_ARIN }, // 155.208.0.0 - 155.208.255.255 { 0x9bd10000, 0x9bd2ffff, REGISTRY_RIPENCC }, // 155.209.0.0 - 155.210.255.255 { 0x9bd30000, 0x9bd3ffff, REGISTRY_LACNIC }, // 155.211.0.0 - 155.211.255.255 { 0x9bd40000, 0x9bdeffff, REGISTRY_ARIN }, // 155.212.0.0 - 155.222.255.255 { 0x9bdf0000, 0x9bdfffff, REGISTRY_RIPENCC }, // 155.223.0.0 - 155.223.255.255 { 0x9be00000, 0x9be2ffff, REGISTRY_ARIN }, // 155.224.0.0 - 155.226.255.255 { 0x9be30000, 0x9be4ffff, REGISTRY_RIPENCC }, // 155.227.0.0 - 155.228.255.255 { 0x9be50000, 0x9be5ffff, REGISTRY_ARIN }, // 155.229.0.0 - 155.229.255.255 { 0x9be60000, 0x9be6ffff, REGISTRY_APNIC }, // 155.230.0.0 - 155.230.255.255 { 0x9be70000, 0x9be7ffff, REGISTRY_RIPENCC }, // 155.231.0.0 - 155.231.255.255 { 0x9be80000, 0x9bf0ffff, REGISTRY_AFRINIC }, // 155.232.0.0 - 155.240.255.255 { 0x9bf10000, 0x9bf4ffff, REGISTRY_ARIN }, // 155.241.0.0 - 155.244.255.255 { 0x9bf50000, 0x9bf5ffff, REGISTRY_RIPENCC }, // 155.245.0.0 - 155.245.255.255 { 0x9bf60000, 0x9bf8ffff, REGISTRY_ARIN }, // 155.246.0.0 - 155.248.255.255 { 0x9bf90000, 0x9bfaffff, REGISTRY_RIPENCC }, // 155.249.0.0 - 155.250.255.255 { 0x9bfb0000, 0x9bfbffff, REGISTRY_AFRINIC }, // 155.251.0.0 - 155.251.255.255 { 0x9bfc0000, 0x9bfcffff, REGISTRY_ARIN }, // 155.252.0.0 - 155.252.255.255 { 0x9bfd0000, 0x9bfdffff, REGISTRY_RIPENCC }, // 155.253.0.0 - 155.253.255.255 { 0x9bfe0000, 0x9bfe1fff, REGISTRY_ARIN }, // 155.254.0.0 - 155.254.31.255 { 0x9bfe2000, 0x9bfe3fff, REGISTRY_RIPENCC }, // 155.254.32.0 - 155.254.63.255 { 0x9bfe4000, 0x9bfeffff, REGISTRY_ARIN }, // 155.254.64.0 - 155.254.255.255 { 0x9c000000, 0x9c0053ff, REGISTRY_AFRINIC }, // 156.0.0.0 - 156.0.83.255 { 0x9c005800, 0x9c00c6ff, REGISTRY_AFRINIC }, // 156.0.88.0 - 156.0.198.255 { 0x9c00c800, 0x9c00dbff, REGISTRY_AFRINIC }, // 156.0.200.0 - 156.0.219.255 { 0x9c00e000, 0x9c00efff, REGISTRY_AFRINIC }, // 156.0.224.0 - 156.0.239.255 { 0x9c00f400, 0x9c00fdff, REGISTRY_AFRINIC }, // 156.0.244.0 - 156.0.253.255 { 0x9c00ff00, 0x9c00ffff, REGISTRY_AFRINIC }, // 156.0.255.0 - 156.0.255.255 { 0x9c010000, 0x9c07ffff, REGISTRY_ARIN }, // 156.1.0.0 - 156.7.255.255 { 0x9c080000, 0x9c08ffff, REGISTRY_AFRINIC }, // 156.8.0.0 - 156.8.255.255 { 0x9c090000, 0x9c09ffff, REGISTRY_ARIN }, // 156.9.0.0 - 156.9.255.255 { 0x9c0a0000, 0x9c0affff, REGISTRY_RIPENCC }, // 156.10.0.0 - 156.10.255.255 { 0x9c0b0000, 0x9c0cffff, REGISTRY_ARIN }, // 156.11.0.0 - 156.12.255.255 { 0x9c0d0000, 0x9c0dffff, REGISTRY_APNIC }, // 156.13.0.0 - 156.13.255.255 { 0x9c0e0000, 0x9c0effff, REGISTRY_RIPENCC }, // 156.14.0.0 - 156.14.255.255 { 0x9c0f0000, 0x9c0fffff, REGISTRY_ARIN }, // 156.15.0.0 - 156.15.255.255 { 0x9c110000, 0x9c12ffff, REGISTRY_RIPENCC }, // 156.17.0.0 - 156.18.255.255 { 0x9c130000, 0x9c15ffff, REGISTRY_ARIN }, // 156.19.0.0 - 156.21.255.255 { 0x9c160000, 0x9c16ffff, REGISTRY_APNIC }, // 156.22.0.0 - 156.22.255.255 { 0x9c170000, 0x9c18ffff, REGISTRY_ARIN }, // 156.23.0.0 - 156.24.255.255 { 0x9c190000, 0x9c19ffff, REGISTRY_RIPENCC }, // 156.25.0.0 - 156.25.255.255 { 0x9c1a0000, 0x9c1bffff, REGISTRY_ARIN }, // 156.26.0.0 - 156.27.255.255 { 0x9c1c0000, 0x9c1cffff, REGISTRY_RIPENCC }, // 156.28.0.0 - 156.28.255.255 { 0x9c1d0000, 0x9c1effff, REGISTRY_ARIN }, // 156.29.0.0 - 156.30.255.255 { 0x9c1f0000, 0x9c1fffff, REGISTRY_APNIC }, // 156.31.0.0 - 156.31.255.255 { 0x9c200000, 0x9c22ffff, REGISTRY_ARIN }, // 156.32.0.0 - 156.34.255.255 { 0x9c230000, 0x9c23ffff, REGISTRY_RIPENCC }, // 156.35.0.0 - 156.35.255.255 { 0x9c240000, 0x9c25ffff, REGISTRY_ARIN }, // 156.36.0.0 - 156.37.255.255 { 0x9c260400, 0x9c26ffff, REGISTRY_AFRINIC }, // 156.38.4.0 - 156.38.255.255 { 0x9c270000, 0x9c2affff, REGISTRY_ARIN }, // 156.39.0.0 - 156.42.255.255 { 0x9c2b0000, 0x9c2bffff, REGISTRY_RIPENCC }, // 156.43.0.0 - 156.43.255.255 { 0x9c2c0000, 0x9c2fffff, REGISTRY_ARIN }, // 156.44.0.0 - 156.47.255.255 { 0x9c300000, 0x9c31ffff, REGISTRY_RIPENCC }, // 156.48.0.0 - 156.49.255.255 { 0x9c320000, 0x9c32ffff, REGISTRY_APNIC }, // 156.50.0.0 - 156.50.255.255 { 0x9c330000, 0x9c34ffff, REGISTRY_RIPENCC }, // 156.51.0.0 - 156.52.255.255 { 0x9c350000, 0x9c35ffff, REGISTRY_ARIN }, // 156.53.0.0 - 156.53.255.255 { 0x9c360000, 0x9c36ffff, REGISTRY_RIPENCC }, // 156.54.0.0 - 156.54.255.255 { 0x9c370000, 0x9c39ffff, REGISTRY_ARIN }, // 156.55.0.0 - 156.57.255.255 { 0x9c3a0000, 0x9c3affff, REGISTRY_RIPENCC }, // 156.58.0.0 - 156.58.255.255 { 0x9c3b0000, 0x9c3bffff, REGISTRY_APNIC }, // 156.59.0.0 - 156.59.255.255 { 0x9c3c0000, 0x9c3cffff, REGISTRY_ARIN }, // 156.60.0.0 - 156.60.255.255 { 0x9c3d0000, 0x9c3dffff, REGISTRY_RIPENCC }, // 156.61.0.0 - 156.61.255.255 { 0x9c3e0000, 0x9c3effff, REGISTRY_APNIC }, // 156.62.0.0 - 156.62.255.255 { 0x9c3f0000, 0x9c42ffff, REGISTRY_ARIN }, // 156.63.0.0 - 156.66.255.255 { 0x9c430000, 0x9c4307ff, REGISTRY_RIPENCC }, // 156.67.0.0 - 156.67.7.255 { 0x9c430800, 0x9c430bff, REGISTRY_RIPENCC }, // 156.67.8.0 - 156.67.11.255 { 0x9c430c00, 0x9c4337ff, REGISTRY_RIPENCC }, // 156.67.12.0 - 156.67.55.255 { 0x9c433800, 0x9c433bff, REGISTRY_RIPENCC }, // 156.67.56.0 - 156.67.59.255 { 0x9c433c00, 0x9c43c7ff, REGISTRY_RIPENCC }, // 156.67.60.0 - 156.67.199.255 { 0x9c43c800, 0x9c43cfff, REGISTRY_RIPENCC }, // 156.67.200.0 - 156.67.207.255 { 0x9c43d000, 0x9c43ffff, REGISTRY_RIPENCC }, // 156.67.208.0 - 156.67.255.255 { 0x9c440000, 0x9c44ffff, REGISTRY_ARIN }, // 156.68.0.0 - 156.68.255.255 { 0x9c450000, 0x9c45ffff, REGISTRY_APNIC }, // 156.69.0.0 - 156.69.255.255 { 0x9c460000, 0x9c52ffff, REGISTRY_ARIN }, // 156.70.0.0 - 156.82.255.255 { 0x9c530000, 0x9c53ffff, REGISTRY_RIPENCC }, // 156.83.0.0 - 156.83.255.255 { 0x9c540000, 0x9c60ffff, REGISTRY_ARIN }, // 156.84.0.0 - 156.96.255.255 { 0x9c610000, 0x9c61ffff, REGISTRY_LACNIC }, // 156.97.0.0 - 156.97.255.255 { 0x9c620000, 0x9c69ffff, REGISTRY_ARIN }, // 156.98.0.0 - 156.105.255.255 { 0x9c6a0000, 0x9c6affff, REGISTRY_RIPENCC }, // 156.106.0.0 - 156.106.255.255 { 0x9c6b0000, 0x9c71ffff, REGISTRY_ARIN }, // 156.107.0.0 - 156.113.255.255 { 0x9c720000, 0x9c74ffff, REGISTRY_RIPENCC }, // 156.114.0.0 - 156.116.255.255 { 0x9c750000, 0x9c75ffff, REGISTRY_ARIN }, // 156.117.0.0 - 156.117.255.255 { 0x9c760000, 0x9c76ffff, REGISTRY_RIPENCC }, // 156.118.0.0 - 156.118.255.255 { 0x9c770000, 0x9c84ffff, REGISTRY_ARIN }, // 156.119.0.0 - 156.132.255.255 { 0x9c850000, 0x9c85ffff, REGISTRY_RIPENCC }, // 156.133.0.0 - 156.133.255.255 { 0x9c860000, 0x9c86ffff, REGISTRY_ARIN }, // 156.134.0.0 - 156.134.255.255 { 0x9c870000, 0x9c87ffff, REGISTRY_RIPENCC }, // 156.135.0.0 - 156.135.255.255 { 0x9c880000, 0x9c921fff, REGISTRY_ARIN }, // 156.136.0.0 - 156.146.31.255 { 0x9c922000, 0x9c923fff, REGISTRY_RIPENCC }, // 156.146.32.0 - 156.146.63.255 { 0x9c924000, 0x9c92ffff, REGISTRY_ARIN }, // 156.146.64.0 - 156.146.255.255 { 0x9c930000, 0x9c93ffff, REGISTRY_APNIC }, // 156.147.0.0 - 156.147.255.255 { 0x9c940000, 0x9c94ffff, REGISTRY_RIPENCC }, // 156.148.0.0 - 156.148.255.255 { 0x9c950000, 0x9c95ffff, REGISTRY_APNIC }, // 156.149.0.0 - 156.149.255.255 { 0x9c960000, 0x9c96ffff, REGISTRY_RIPENCC }, // 156.150.0.0 - 156.150.255.255 { 0x9c970000, 0x9c9affff, REGISTRY_ARIN }, // 156.151.0.0 - 156.154.255.255 { 0x9c9b0000, 0x9cffffff, REGISTRY_AFRINIC }, // 156.155.0.0 - 156.255.255.255 { 0x9d000000, 0x9d09ffff, REGISTRY_APNIC }, // 157.0.0.0 - 157.9.255.255 { 0x9d0b0000, 0x9d0effff, REGISTRY_APNIC }, // 157.11.0.0 - 157.14.255.255 { 0x9d100000, 0x9d13ffff, REGISTRY_APNIC }, // 157.16.0.0 - 157.19.255.255 { 0x9d150000, 0x9d16ffff, REGISTRY_ARIN }, // 157.21.0.0 - 157.22.255.255 { 0x9d170000, 0x9d17ffff, REGISTRY_RIPENCC }, // 157.23.0.0 - 157.23.255.255 { 0x9d180000, 0x9d1dffff, REGISTRY_RIPENCC }, // 157.24.0.0 - 157.29.255.255 { 0x9d1e0000, 0x9d1effff, REGISTRY_ARIN }, // 157.30.0.0 - 157.30.255.255 { 0x9d1f0000, 0x9d1fffff, REGISTRY_RIPENCC }, // 157.31.0.0 - 157.31.255.255 { 0x9d200000, 0x9d33ffff, REGISTRY_APNIC }, // 157.32.0.0 - 157.51.255.255 { 0x9d340000, 0x9d3cffff, REGISTRY_ARIN }, // 157.52.0.0 - 157.60.255.255 { 0x9d3d0000, 0x9d3dffff, REGISTRY_APNIC }, // 157.61.0.0 - 157.61.255.255 { 0x9d3e0000, 0x9d3effff, REGISTRY_ARIN }, // 157.62.0.0 - 157.62.255.255 { 0x9d3f0000, 0x9d41ffff, REGISTRY_APNIC }, // 157.63.0.0 - 157.65.255.255 { 0x9d430000, 0x9d50ffff, REGISTRY_APNIC }, // 157.67.0.0 - 157.80.255.255 { 0x9d520000, 0x9d52ffff, REGISTRY_APNIC }, // 157.82.0.0 - 157.82.255.255 { 0x9d530000, 0x9d54ffff, REGISTRY_RIPENCC }, // 157.83.0.0 - 157.84.255.255 { 0x9d550000, 0x9d55ffff, REGISTRY_APNIC }, // 157.85.0.0 - 157.85.255.255 { 0x9d560000, 0x9d56ffff, REGISTRY_LACNIC }, // 157.86.0.0 - 157.86.255.255 { 0x9d570000, 0x9d57ffff, REGISTRY_ARIN }, // 157.87.0.0 - 157.87.255.255 { 0x9d580000, 0x9d58ffff, REGISTRY_RIPENCC }, // 157.88.0.0 - 157.88.255.255 { 0x9d590000, 0x9d59ffff, REGISTRY_ARIN }, // 157.89.0.0 - 157.89.255.255 { 0x9d5a0000, 0x9d5affff, REGISTRY_RIPENCC }, // 157.90.0.0 - 157.90.255.255 { 0x9d5b0000, 0x9d5bffff, REGISTRY_ARIN }, // 157.91.0.0 - 157.91.255.255 { 0x9d5c0000, 0x9d5cffff, REGISTRY_LACNIC }, // 157.92.0.0 - 157.92.255.255 { 0x9d5d0000, 0x9d5dffff, REGISTRY_ARIN }, // 157.93.0.0 - 157.93.255.255 { 0x9d5e0000, 0x9d5effff, REGISTRY_RIPENCC }, // 157.94.0.0 - 157.94.255.255 { 0x9d5f0000, 0x9d5fffff, REGISTRY_RIPENCC }, // 157.95.0.0 - 157.95.255.255 { 0x9d600000, 0x9d6007ff, REGISTRY_ARIN }, // 157.96.0.0 - 157.96.7.255 { 0x9d600800, 0x9d601bff, REGISTRY_RIPENCC }, // 157.96.8.0 - 157.96.27.255 { 0x9d601c00, 0x9d601fff, REGISTRY_ARIN }, // 157.96.28.0 - 157.96.31.255 { 0x9d602000, 0x9d602fff, REGISTRY_RIPENCC }, // 157.96.32.0 - 157.96.47.255 { 0x9d603000, 0x9d603bff, REGISTRY_ARIN }, // 157.96.48.0 - 157.96.59.255 { 0x9d603c00, 0x9d6043ff, REGISTRY_RIPENCC }, // 157.96.60.0 - 157.96.67.255 { 0x9d604400, 0x9d604bff, REGISTRY_ARIN }, // 157.96.68.0 - 157.96.75.255 { 0x9d604c00, 0x9d6053ff, REGISTRY_RIPENCC }, // 157.96.76.0 - 157.96.83.255 { 0x9d605400, 0x9d6057ff, REGISTRY_ARIN }, // 157.96.84.0 - 157.96.87.255 { 0x9d605800, 0x9d6073ff, REGISTRY_RIPENCC }, // 157.96.88.0 - 157.96.115.255 { 0x9d607400, 0x9d607bff, REGISTRY_ARIN }, // 157.96.116.0 - 157.96.123.255 { 0x9d607c00, 0x9d607fff, REGISTRY_RIPENCC }, // 157.96.124.0 - 157.96.127.255 { 0x9d608000, 0x9d6097ff, REGISTRY_ARIN }, // 157.96.128.0 - 157.96.151.255 { 0x9d609800, 0x9d609bff, REGISTRY_RIPENCC }, // 157.96.152.0 - 157.96.155.255 { 0x9d609c00, 0x9d609fff, REGISTRY_ARIN }, // 157.96.156.0 - 157.96.159.255 { 0x9d60a000, 0x9d60a7ff, REGISTRY_RIPENCC }, // 157.96.160.0 - 157.96.167.255 { 0x9d60a800, 0x9d60afff, REGISTRY_ARIN }, // 157.96.168.0 - 157.96.175.255 { 0x9d60b000, 0x9d60b3ff, REGISTRY_RIPENCC }, // 157.96.176.0 - 157.96.179.255 { 0x9d60b400, 0x9d60bfff, REGISTRY_ARIN }, // 157.96.180.0 - 157.96.191.255 { 0x9d60c000, 0x9d60f3ff, REGISTRY_RIPENCC }, // 157.96.192.0 - 157.96.243.255 { 0x9d60f400, 0x9d60f7ff, REGISTRY_ARIN }, // 157.96.244.0 - 157.96.247.255 { 0x9d60f800, 0x9d60fbff, REGISTRY_RIPENCC }, // 157.96.248.0 - 157.96.251.255 { 0x9d60fc00, 0x9d60ffff, REGISTRY_ARIN }, // 157.96.252.0 - 157.96.255.255 { 0x9d610000, 0x9d6157ff, REGISTRY_RIPENCC }, // 157.97.0.0 - 157.97.87.255 { 0x9d615800, 0x9d615fff, REGISTRY_RIPENCC }, // 157.97.88.0 - 157.97.95.255 { 0x9d616000, 0x9d6187ff, REGISTRY_RIPENCC }, // 157.97.96.0 - 157.97.135.255 { 0x9d618800, 0x9d618fff, REGISTRY_RIPENCC }, // 157.97.136.0 - 157.97.143.255 { 0x9d619000, 0x9d61ffff, REGISTRY_RIPENCC }, // 157.97.144.0 - 157.97.255.255 { 0x9d620000, 0x9d62ffff, REGISTRY_ARIN }, // 157.98.0.0 - 157.98.255.255 { 0x9d630000, 0x9d63ffff, REGISTRY_RIPENCC }, // 157.99.0.0 - 157.99.255.255 { 0x9d640000, 0x9d64ffff, REGISTRY_LACNIC }, // 157.100.0.0 - 157.100.255.255 { 0x9d650000, 0x9d76ffff, REGISTRY_APNIC }, // 157.101.0.0 - 157.118.255.255 { 0x9d770400, 0x9d7743ff, REGISTRY_APNIC }, // 157.119.4.0 - 157.119.67.255 { 0x9d774800, 0x9d77bbff, REGISTRY_APNIC }, // 157.119.72.0 - 157.119.187.255 { 0x9d77bc00, 0x9d77bfff, REGISTRY_RIPENCC }, // 157.119.188.0 - 157.119.191.255 { 0x9d77c000, 0x9d78dfff, REGISTRY_APNIC }, // 157.119.192.0 - 157.120.223.255 { 0x9d78e000, 0x9d78e7ff, REGISTRY_RIPENCC }, // 157.120.224.0 - 157.120.231.255 { 0x9d78e800, 0x9d78ebff, REGISTRY_APNIC }, // 157.120.232.0 - 157.120.235.255 { 0x9d78ec00, 0x9d78ffff, REGISTRY_RIPENCC }, // 157.120.236.0 - 157.120.255.255 { 0x9d790000, 0x9d79ffff, REGISTRY_ARIN }, // 157.121.0.0 - 157.121.255.255 { 0x9d7a0000, 0x9d7affff, REGISTRY_APNIC }, // 157.122.0.0 - 157.122.255.255 { 0x9d7b0000, 0x9d7bffff, REGISTRY_ARIN }, // 157.123.0.0 - 157.123.255.255 { 0x9d7c0000, 0x9d7dffff, REGISTRY_RIPENCC }, // 157.124.0.0 - 157.125.255.255 { 0x9d7e0000, 0x9d7fffff, REGISTRY_ARIN }, // 157.126.0.0 - 157.127.255.255 { 0x9d800000, 0x9d80ffff, REGISTRY_APNIC }, // 157.128.0.0 - 157.128.255.255 { 0x9d810000, 0x9d81ffff, REGISTRY_RIPENCC }, // 157.129.0.0 - 157.129.255.255 { 0x9d820000, 0x9d87ffff, REGISTRY_ARIN }, // 157.130.0.0 - 157.135.255.255 { 0x9d880000, 0x9d88ffff, REGISTRY_RIPENCC }, // 157.136.0.0 - 157.136.255.255 { 0x9d890000, 0x9d89ffff, REGISTRY_ARIN }, // 157.137.0.0 - 157.137.255.255 { 0x9d8a0000, 0x9d8affff, REGISTRY_RIPENCC }, // 157.138.0.0 - 157.138.255.255 { 0x9d8b0000, 0x9d8bffff, REGISTRY_ARIN }, // 157.139.0.0 - 157.139.255.255 { 0x9d8c0000, 0x9d8cffff, REGISTRY_RIPENCC }, // 157.140.0.0 - 157.140.255.255 { 0x9d8d0000, 0x9d8effff, REGISTRY_ARIN }, // 157.141.0.0 - 157.142.255.255 { 0x9d8f0000, 0x9d8f7fff, REGISTRY_RIPENCC }, // 157.143.0.0 - 157.143.127.255 { 0x9d8f8000, 0x9d90ffff, REGISTRY_RIPENCC }, // 157.143.128.0 - 157.144.255.255 { 0x9d910000, 0x9d92ffff, REGISTRY_ARIN }, // 157.145.0.0 - 157.146.255.255 { 0x9d930000, 0x9d94ffff, REGISTRY_APNIC }, // 157.147.0.0 - 157.148.255.255 { 0x9d950000, 0x9d9affff, REGISTRY_ARIN }, // 157.149.0.0 - 157.154.255.255 { 0x9d9b0000, 0x9d9cffff, REGISTRY_APNIC }, // 157.155.0.0 - 157.156.255.255 { 0x9d9d0000, 0x9d9fffff, REGISTRY_RIPENCC }, // 157.157.0.0 - 157.159.255.255 { 0x9da00000, 0x9da0ffff, REGISTRY_ARIN }, // 157.160.0.0 - 157.160.255.255 { 0x9da10000, 0x9da2ffff, REGISTRY_RIPENCC }, // 157.161.0.0 - 157.162.255.255 { 0x9da30000, 0x9da3ffff, REGISTRY_RIPENCC }, // 157.163.0.0 - 157.163.255.255 { 0x9da40000, 0x9da4ffff, REGISTRY_RIPENCC }, // 157.164.0.0 - 157.164.255.255 { 0x9da50000, 0x9da6ffff, REGISTRY_ARIN }, // 157.165.0.0 - 157.166.255.255 { 0x9da70000, 0x9da9ffff, REGISTRY_RIPENCC }, // 157.167.0.0 - 157.169.255.255 { 0x9daa0000, 0x9daaffff, REGISTRY_ARIN }, // 157.170.0.0 - 157.170.255.255 { 0x9dab0000, 0x9dadffff, REGISTRY_RIPENCC }, // 157.171.0.0 - 157.173.255.255 { 0x9dae0000, 0x9db0ffff, REGISTRY_ARIN }, // 157.174.0.0 - 157.176.255.255 { 0x9db10000, 0x9db1ffff, REGISTRY_RIPENCC }, // 157.177.0.0 - 157.177.255.255 { 0x9db20000, 0x9db2ffff, REGISTRY_ARIN }, // 157.178.0.0 - 157.178.255.255 { 0x9db30000, 0x9db3ffff, REGISTRY_APNIC }, // 157.179.0.0 - 157.179.255.255 { 0x9db40000, 0x9db4d7ff, REGISTRY_RIPENCC }, // 157.180.0.0 - 157.180.215.255 { 0x9db4d800, 0x9db4e3ff, REGISTRY_RIPENCC }, // 157.180.216.0 - 157.180.227.255 { 0x9db4e400, 0x9db5ffff, REGISTRY_RIPENCC }, // 157.180.228.0 - 157.181.255.255 { 0x9db60000, 0x9db9bfff, REGISTRY_ARIN }, // 157.182.0.0 - 157.185.191.255 { 0x9db9c000, 0x9db9ffff, REGISTRY_APNIC }, // 157.185.192.0 - 157.185.255.255 { 0x9dba0000, 0x9dbaffff, REGISTRY_RIPENCC }, // 157.186.0.0 - 157.186.255.255 { 0x9dbb0000, 0x9dbdffff, REGISTRY_ARIN }, // 157.187.0.0 - 157.189.255.255 { 0x9dbe0000, 0x9dbeffff, REGISTRY_RIPENCC }, // 157.190.0.0 - 157.190.255.255 { 0x9dbf0000, 0x9dbfffff, REGISTRY_ARIN }, // 157.191.0.0 - 157.191.255.255 { 0x9dc00000, 0x9dc0ffff, REGISTRY_APNIC }, // 157.192.0.0 - 157.192.255.255 { 0x9dc10000, 0x9dc1ffff, REGISTRY_RIPENCC }, // 157.193.0.0 - 157.193.255.255 { 0x9dc20000, 0x9dc4ffff, REGISTRY_ARIN }, // 157.194.0.0 - 157.196.255.255 { 0x9dc50000, 0x9dc5ffff, REGISTRY_APNIC }, // 157.197.0.0 - 157.197.255.255 { 0x9dc60000, 0x9dc7ffff, REGISTRY_ARIN }, // 157.198.0.0 - 157.199.255.255 { 0x9dc80000, 0x9dc8ffff, REGISTRY_RIPENCC }, // 157.200.0.0 - 157.200.255.255 { 0x9dc90000, 0x9dcaffff, REGISTRY_ARIN }, // 157.201.0.0 - 157.202.255.255 { 0x9dcb0000, 0x9dcbffff, REGISTRY_RIPENCC }, // 157.203.0.0 - 157.203.255.255 { 0x9dcc0000, 0x9dccffff, REGISTRY_ARIN }, // 157.204.0.0 - 157.204.255.255 { 0x9dcd0000, 0x9dcdffff, REGISTRY_APNIC }, // 157.205.0.0 - 157.205.255.255 { 0x9dce0000, 0x9dcf1fff, REGISTRY_ARIN }, // 157.206.0.0 - 157.207.31.255 { 0x9dcf2000, 0x9dcf23ff, REGISTRY_RIPENCC }, // 157.207.32.0 - 157.207.35.255 { 0x9dcf2400, 0x9dcf3fff, REGISTRY_ARIN }, // 157.207.36.0 - 157.207.63.255 { 0x9dcf4000, 0x9dcf43ff, REGISTRY_RIPENCC }, // 157.207.64.0 - 157.207.67.255 { 0x9dcf4400, 0x9dd2ffff, REGISTRY_ARIN }, // 157.207.68.0 - 157.210.255.255 { 0x9dd30000, 0x9dd3ffff, REGISTRY_APNIC }, // 157.211.0.0 - 157.211.255.255 { 0x9dd40000, 0x9de2ffff, REGISTRY_ARIN }, // 157.212.0.0 - 157.226.255.255 { 0x9de30000, 0x9de3ffff, REGISTRY_APNIC }, // 157.227.0.0 - 157.227.255.255 { 0x9de40000, 0x9de4ffff, REGISTRY_RIPENCC }, // 157.228.0.0 - 157.228.255.255 { 0x9de50000, 0x9de6ffff, REGISTRY_ARIN }, // 157.229.0.0 - 157.230.255.255 { 0x9de70000, 0x9de7ffff, REGISTRY_RIPENCC }, // 157.231.0.0 - 157.231.255.255 { 0x9de80000, 0x9debffff, REGISTRY_ARIN }, // 157.232.0.0 - 157.235.255.255 { 0x9dec0000, 0x9dedffff, REGISTRY_RIPENCC }, // 157.236.0.0 - 157.237.255.255 { 0x9dee0000, 0x9def7fff, REGISTRY_ARIN }, // 157.238.0.0 - 157.239.127.255 { 0x9def8000, 0x9def81ff, REGISTRY_RIPENCC }, // 157.239.128.0 - 157.239.129.255 { 0x9def8200, 0x9defbfff, REGISTRY_ARIN }, // 157.239.130.0 - 157.239.191.255 { 0x9defc000, 0x9defffff, REGISTRY_APNIC }, // 157.239.192.0 - 157.239.255.255 { 0x9df00000, 0x9df2ffff, REGISTRY_ARIN }, // 157.240.0.0 - 157.242.255.255 { 0x9df30000, 0x9df3ffff, REGISTRY_RIPENCC }, // 157.243.0.0 - 157.243.255.255 { 0x9df40000, 0x9df6ffff, REGISTRY_ARIN }, // 157.244.0.0 - 157.246.255.255 { 0x9df70000, 0x9df7ffff, REGISTRY_RIPENCC }, // 157.247.0.0 - 157.247.255.255 { 0x9df80000, 0x9df8ffff, REGISTRY_ARIN }, // 157.248.0.0 - 157.248.255.255 { 0x9df90000, 0x9df9ffff, REGISTRY_RIPENCC }, // 157.249.0.0 - 157.249.255.255 { 0x9dfa0000, 0x9dfa3fff, REGISTRY_ARIN }, // 157.250.0.0 - 157.250.63.255 { 0x9dfa4000, 0x9dfaffff, REGISTRY_APNIC }, // 157.250.64.0 - 157.250.255.255 { 0x9dfb0000, 0x9dfcffff, REGISTRY_ARIN }, // 157.251.0.0 - 157.252.255.255 { 0x9dfd0000, 0x9dfdffff, REGISTRY_LACNIC }, // 157.253.0.0 - 157.253.255.255 { 0x9dfe0000, 0x9dfeffff, REGISTRY_ARIN }, // 157.254.0.0 - 157.254.255.255 { 0x9dff0000, 0x9dffffff, REGISTRY_APNIC }, // 157.255.0.0 - 157.255.255.255 { 0x9e000000, 0x9e16ffff, REGISTRY_ARIN }, // 158.0.0.0 - 158.22.255.255 { 0x9e170000, 0x9e17ffff, REGISTRY_APNIC }, // 158.23.0.0 - 158.23.255.255 { 0x9e180000, 0x9e23ffff, REGISTRY_ARIN }, // 158.24.0.0 - 158.35.255.255 { 0x9e240000, 0x9e27ffff, REGISTRY_RIPENCC }, // 158.36.0.0 - 158.39.255.255 { 0x9e280000, 0x9e28ffff, REGISTRY_APNIC }, // 158.40.0.0 - 158.40.255.255 { 0x9e290000, 0x9e290fff, REGISTRY_RIPENCC }, // 158.41.0.0 - 158.41.15.255 { 0x9e291000, 0x9e2917ff, REGISTRY_ARIN }, // 158.41.16.0 - 158.41.23.255 { 0x9e291800, 0x9e292fff, REGISTRY_RIPENCC }, // 158.41.24.0 - 158.41.47.255 { 0x9e293000, 0x9e293fff, REGISTRY_RIPENCC }, // 158.41.48.0 - 158.41.63.255 { 0x9e294000, 0x9e297fff, REGISTRY_RIPENCC }, // 158.41.64.0 - 158.41.127.255 { 0x9e298000, 0x9e29ffff, REGISTRY_ARIN }, // 158.41.128.0 - 158.41.255.255 { 0x9e2a0000, 0x9e2bffff, REGISTRY_RIPENCC }, // 158.42.0.0 - 158.43.255.255 { 0x9e2c0000, 0x9e2dffff, REGISTRY_APNIC }, // 158.44.0.0 - 158.45.255.255 { 0x9e2e0000, 0x9e2effff, REGISTRY_RIPENCC }, // 158.46.0.0 - 158.46.255.255 { 0x9e2f0000, 0x9e2fffff, REGISTRY_RIPENCC }, // 158.47.0.0 - 158.47.255.255 { 0x9e300000, 0x9e30ffff, REGISTRY_ARIN }, // 158.48.0.0 - 158.48.255.255 { 0x9e310000, 0x9e32ffff, REGISTRY_RIPENCC }, // 158.49.0.0 - 158.50.255.255 { 0x9e330000, 0x9e35ffff, REGISTRY_ARIN }, // 158.51.0.0 - 158.53.255.255 { 0x9e360000, 0x9e36ffff, REGISTRY_APNIC }, // 158.54.0.0 - 158.54.255.255 { 0x9e370000, 0x9e39ffff, REGISTRY_ARIN }, // 158.55.0.0 - 158.57.255.255 { 0x9e3a0000, 0x9e3affff, REGISTRY_RIPENCC }, // 158.58.0.0 - 158.58.255.255 { 0x9e3b0000, 0x9e3bffff, REGISTRY_ARIN }, // 158.59.0.0 - 158.59.255.255 { 0x9e3c0000, 0x9e3cffff, REGISTRY_APNIC }, // 158.60.0.0 - 158.60.255.255 { 0x9e3d0000, 0x9e3dffff, REGISTRY_ARIN }, // 158.61.0.0 - 158.61.255.255 { 0x9e3e0000, 0x9e3e7fff, REGISTRY_APNIC }, // 158.62.0.0 - 158.62.127.255 { 0x9e3e8000, 0x9e3fffff, REGISTRY_ARIN }, // 158.62.128.0 - 158.63.255.255 { 0x9e400000, 0x9e40ffff, REGISTRY_RIPENCC }, // 158.64.0.0 - 158.64.255.255 { 0x9e410000, 0x9e41ffff, REGISTRY_ARIN }, // 158.65.0.0 - 158.65.255.255 { 0x9e420000, 0x9e43ffff, REGISTRY_RIPENCC }, // 158.66.0.0 - 158.67.255.255 { 0x9e440000, 0x9e4affff, REGISTRY_ARIN }, // 158.68.0.0 - 158.74.255.255 { 0x9e4b0000, 0x9e4bffff, REGISTRY_RIPENCC }, // 158.75.0.0 - 158.75.255.255 { 0x9e4c0000, 0x9e4effff, REGISTRY_ARIN }, // 158.76.0.0 - 158.78.255.255 { 0x9e4f0000, 0x9e4fffff, REGISTRY_APNIC }, // 158.79.0.0 - 158.79.255.255 { 0x9e500000, 0x9e58ffff, REGISTRY_ARIN }, // 158.80.0.0 - 158.88.255.255 { 0x9e590000, 0x9e59ffff, REGISTRY_APNIC }, // 158.89.0.0 - 158.89.255.255 { 0x9e5a0000, 0x9e5affff, REGISTRY_RIPENCC }, // 158.90.0.0 - 158.90.255.255 { 0x9e5b0000, 0x9e5bffff, REGISTRY_ARIN }, // 158.91.0.0 - 158.91.255.255 { 0x9e5c0000, 0x9e5cffff, REGISTRY_RIPENCC }, // 158.92.0.0 - 158.92.255.255 { 0x9e5d0000, 0x9e5dffff, REGISTRY_ARIN }, // 158.93.0.0 - 158.93.255.255 { 0x9e5e0000, 0x9e5effff, REGISTRY_RIPENCC }, // 158.94.0.0 - 158.94.255.255 { 0x9e5f0000, 0x9e60ffff, REGISTRY_ARIN }, // 158.95.0.0 - 158.96.255.255 { 0x9e610000, 0x9e61ffff, REGISTRY_LACNIC }, // 158.97.0.0 - 158.97.255.255 { 0x9e620000, 0x9e62ffff, REGISTRY_ARIN }, // 158.98.0.0 - 158.98.255.255 { 0x9e630000, 0x9e63ffff, REGISTRY_RIPENCC }, // 158.99.0.0 - 158.99.255.255 { 0x9e640000, 0x9e65ffff, REGISTRY_ARIN }, // 158.100.0.0 - 158.101.255.255 { 0x9e660000, 0x9e66ffff, REGISTRY_RIPENCC }, // 158.102.0.0 - 158.102.255.255 { 0x9e670000, 0x9e68ffff, REGISTRY_ARIN }, // 158.103.0.0 - 158.104.255.255 { 0x9e690000, 0x9e69ffff, REGISTRY_RIPENCC }, // 158.105.0.0 - 158.105.255.255 { 0x9e6a0000, 0x9e6bffff, REGISTRY_ARIN }, // 158.106.0.0 - 158.107.255.255 { 0x9e6c0000, 0x9e6cffff, REGISTRY_APNIC }, // 158.108.0.0 - 158.108.255.255 { 0x9e6d0000, 0x9e6effff, REGISTRY_RIPENCC }, // 158.109.0.0 - 158.110.255.255 { 0x9e6f0000, 0x9e6fffff, REGISTRY_ARIN }, // 158.111.0.0 - 158.111.255.255 { 0x9e700000, 0x9e70ffff, REGISTRY_RIPENCC }, // 158.112.0.0 - 158.112.255.255 { 0x9e710000, 0x9e76ffff, REGISTRY_ARIN }, // 158.113.0.0 - 158.118.255.255 { 0x9e770000, 0x9e77ffff, REGISTRY_RIPENCC }, // 158.119.0.0 - 158.119.255.255 { 0x9e780000, 0x9e782fff, REGISTRY_ARIN }, // 158.120.0.0 - 158.120.47.255 { 0x9e783000, 0x9e783fff, REGISTRY_RIPENCC }, // 158.120.48.0 - 158.120.63.255 { 0x9e784000, 0x9e7847ff, REGISTRY_ARIN }, // 158.120.64.0 - 158.120.71.255 { 0x9e784800, 0x9e7849ff, REGISTRY_RIPENCC }, // 158.120.72.0 - 158.120.73.255 { 0x9e784a00, 0x9e784eff, REGISTRY_ARIN }, // 158.120.74.0 - 158.120.78.255 { 0x9e784f00, 0x9e784fff, REGISTRY_RIPENCC }, // 158.120.79.0 - 158.120.79.255 { 0x9e785000, 0x9e7857ff, REGISTRY_APNIC }, // 158.120.80.0 - 158.120.87.255 { 0x9e785800, 0x9e785fff, REGISTRY_ARIN }, // 158.120.88.0 - 158.120.95.255 { 0x9e786000, 0x9e786fff, REGISTRY_RIPENCC }, // 158.120.96.0 - 158.120.111.255 { 0x9e787000, 0x9e78dfff, REGISTRY_ARIN }, // 158.120.112.0 - 158.120.223.255 { 0x9e78e000, 0x9e78efff, REGISTRY_APNIC }, // 158.120.224.0 - 158.120.239.255 { 0x9e78f000, 0x9e78fbff, REGISTRY_ARIN }, // 158.120.240.0 - 158.120.251.255 { 0x9e78fc00, 0x9e78fdff, REGISTRY_RIPENCC }, // 158.120.252.0 - 158.120.253.255 { 0x9e78fe00, 0x9e78feff, REGISTRY_RIPENCC }, // 158.120.254.0 - 158.120.254.255 { 0x9e78ff00, 0x9e7bffff, REGISTRY_ARIN }, // 158.120.255.0 - 158.123.255.255 { 0x9e7c0000, 0x9e7fffff, REGISTRY_RIPENCC }, // 158.124.0.0 - 158.127.255.255 { 0x9e800000, 0x9e80ffff, REGISTRY_ARIN }, // 158.128.0.0 - 158.128.255.255 { 0x9e810000, 0x9e81ffff, REGISTRY_RIPENCC }, // 158.129.0.0 - 158.129.255.255 { 0x9e820000, 0x9e82ffff, REGISTRY_ARIN }, // 158.130.0.0 - 158.130.255.255 { 0x9e830000, 0x9e83ffff, REGISTRY_RIPENCC }, // 158.131.0.0 - 158.131.255.255 { 0x9e840000, 0x9e84ffff, REGISTRY_APNIC }, // 158.132.0.0 - 158.132.255.255 { 0x9e850000, 0x9e85ffff, REGISTRY_RIPENCC }, // 158.133.0.0 - 158.133.255.255 { 0x9e860000, 0x9e8c0fff, REGISTRY_ARIN }, // 158.134.0.0 - 158.140.15.255 { 0x9e8c1000, 0x9e8c1fff, REGISTRY_RIPENCC }, // 158.140.16.0 - 158.140.31.255 { 0x9e8c2000, 0x9e8c3fff, REGISTRY_ARIN }, // 158.140.32.0 - 158.140.63.255 { 0x9e8c4000, 0x9e8c7fff, REGISTRY_RIPENCC }, // 158.140.64.0 - 158.140.127.255 { 0x9e8c8000, 0x9e8cffff, REGISTRY_APNIC }, // 158.140.128.0 - 158.140.255.255 { 0x9e8d0000, 0x9e8effff, REGISTRY_ARIN }, // 158.141.0.0 - 158.142.255.255 { 0x9e8f0000, 0x9e8fffff, REGISTRY_RIPENCC }, // 158.143.0.0 - 158.143.255.255 { 0x9e900000, 0x9e90ffff, REGISTRY_APNIC }, // 158.144.0.0 - 158.144.255.255 { 0x9e910000, 0x9e927fff, REGISTRY_ARIN }, // 158.145.0.0 - 158.146.127.255 { 0x9e928000, 0x9e928fff, REGISTRY_RIPENCC }, // 158.146.128.0 - 158.146.143.255 { 0x9e929000, 0x9e93ffff, REGISTRY_ARIN }, // 158.146.144.0 - 158.147.255.255 { 0x9e940000, 0x9e94ffff, REGISTRY_RIPENCC }, // 158.148.0.0 - 158.148.255.255 { 0x9e950000, 0x9e96ffff, REGISTRY_RIPENCC }, // 158.149.0.0 - 158.150.255.255 { 0x9e970000, 0x9e97ffff, REGISTRY_ARIN }, // 158.151.0.0 - 158.151.255.255 { 0x9e980000, 0x9e98ffff, REGISTRY_RIPENCC }, // 158.152.0.0 - 158.152.255.255 { 0x9e990000, 0x9e9bffff, REGISTRY_ARIN }, // 158.153.0.0 - 158.155.255.255 { 0x9e9c0000, 0x9e9cffff, REGISTRY_RIPENCC }, // 158.156.0.0 - 158.156.255.255 { 0x9e9d0000, 0x9e9dffff, REGISTRY_ARIN }, // 158.157.0.0 - 158.157.255.255 { 0x9e9e0000, 0x9e9effff, REGISTRY_APNIC }, // 158.158.0.0 - 158.158.255.255 { 0x9e9f0000, 0x9e9fffff, REGISTRY_ARIN }, // 158.159.0.0 - 158.159.255.255 { 0x9ea00000, 0x9ea0ffff, REGISTRY_RIPENCC }, // 158.160.0.0 - 158.160.255.255 { 0x9ea10000, 0x9ea1ffff, REGISTRY_APNIC }, // 158.161.0.0 - 158.161.255.255 { 0x9ea20000, 0x9ea2ffff, REGISTRY_RIPENCC }, // 158.162.0.0 - 158.162.255.255 { 0x9ea30000, 0x9ea5ffff, REGISTRY_ARIN }, // 158.163.0.0 - 158.165.255.255 { 0x9ea60000, 0x9ea9ffff, REGISTRY_RIPENCC }, // 158.166.0.0 - 158.169.255.255 { 0x9eaa0000, 0x9eaaffff, REGISTRY_LACNIC }, // 158.170.0.0 - 158.170.255.255 { 0x9eab0000, 0x9eabffff, REGISTRY_ARIN }, // 158.171.0.0 - 158.171.255.255 { 0x9eac0000, 0x9eb4ffff, REGISTRY_RIPENCC }, // 158.172.0.0 - 158.180.255.255 { 0x9eb50000, 0x9eb5ffff, REGISTRY_RIPENCC }, // 158.181.0.0 - 158.181.255.255 { 0x9eb60000, 0x9eb6ffff, REGISTRY_APNIC }, // 158.182.0.0 - 158.182.255.255 { 0x9eb70000, 0x9ebdffff, REGISTRY_ARIN }, // 158.183.0.0 - 158.189.255.255 { 0x9ebe0000, 0x9ec5ffff, REGISTRY_RIPENCC }, // 158.190.0.0 - 158.197.255.255 { 0x9ec60000, 0x9ed7ffff, REGISTRY_APNIC }, // 158.198.0.0 - 158.215.255.255 { 0x9ed80000, 0x9ed8ffff, REGISTRY_RIPENCC }, // 158.216.0.0 - 158.216.255.255 { 0x9ed90000, 0x9ed9ffff, REGISTRY_APNIC }, // 158.217.0.0 - 158.217.255.255 { 0x9eda0000, 0x9edaffff, REGISTRY_RIPENCC }, // 158.218.0.0 - 158.218.255.255 { 0x9edb0000, 0x9edbffff, REGISTRY_ARIN }, // 158.219.0.0 - 158.219.255.255 { 0x9edc0000, 0x9edc1fff, REGISTRY_RIPENCC }, // 158.220.0.0 - 158.220.31.255 { 0x9edc2000, 0x9edcffff, REGISTRY_RIPENCC }, // 158.220.32.0 - 158.220.255.255 { 0x9edd0000, 0x9eddffff, REGISTRY_ARIN }, // 158.221.0.0 - 158.221.255.255 { 0x9ede0000, 0x9ede0fff, REGISTRY_RIPENCC }, // 158.222.0.0 - 158.222.15.255 { 0x9ede1000, 0x9edeffff, REGISTRY_ARIN }, // 158.222.16.0 - 158.222.255.255 { 0x9edf0000, 0x9edfffff, REGISTRY_RIPENCC }, // 158.223.0.0 - 158.223.255.255 { 0x9ee00000, 0x9ee0ffff, REGISTRY_ARIN }, // 158.224.0.0 - 158.224.255.255 { 0x9ee10000, 0x9ee1ffff, REGISTRY_RIPENCC }, // 158.225.0.0 - 158.225.255.255 { 0x9ee20000, 0x9ee2ffff, REGISTRY_RIPENCC }, // 158.226.0.0 - 158.226.255.255 { 0x9ee30000, 0x9ee3ffff, REGISTRY_RIPENCC }, // 158.227.0.0 - 158.227.255.255 { 0x9ee40000, 0x9ee5ffff, REGISTRY_ARIN }, // 158.228.0.0 - 158.229.255.255 { 0x9ee60000, 0x9eeaffff, REGISTRY_RIPENCC }, // 158.230.0.0 - 158.234.255.255 { 0x9eeb0000, 0x9ef737ff, REGISTRY_ARIN }, // 158.235.0.0 - 158.247.55.255 { 0x9ef73800, 0x9ef73bff, REGISTRY_RIPENCC }, // 158.247.56.0 - 158.247.59.255 { 0x9ef73c00, 0x9ef7bfff, REGISTRY_ARIN }, // 158.247.60.0 - 158.247.191.255 { 0x9ef7c000, 0x9ef7ffff, REGISTRY_APNIC }, // 158.247.192.0 - 158.247.255.255 { 0x9ef80000, 0x9efaffff, REGISTRY_RIPENCC }, // 158.248.0.0 - 158.250.255.255 { 0x9efb0000, 0x9efbffff, REGISTRY_LACNIC }, // 158.251.0.0 - 158.251.255.255 { 0x9efc0000, 0x9efeffff, REGISTRY_ARIN }, // 158.252.0.0 - 158.254.255.255 { 0x9eff0000, 0x9f00ffff, REGISTRY_RIPENCC }, // 158.255.0.0 - 159.0.255.255 { 0x9f010000, 0x9f06ffff, REGISTRY_ARIN }, // 159.1.0.0 - 159.6.255.255 { 0x9f070000, 0x9f08ffff, REGISTRY_RIPENCC }, // 159.7.0.0 - 159.8.255.255 { 0x9f090000, 0x9f0bffff, REGISTRY_ARIN }, // 159.9.0.0 - 159.11.255.255 { 0x9f0c0000, 0x9f0cffff, REGISTRY_RIPENCC }, // 159.12.0.0 - 159.12.255.255 { 0x9f0d0000, 0x9f0d7fff, REGISTRY_ARIN }, // 159.13.0.0 - 159.13.127.255 { 0x9f0d8000, 0x9f0dffff, REGISTRY_APNIC }, // 159.13.128.0 - 159.13.255.255 { 0x9f0e0000, 0x9f0effff, REGISTRY_ARIN }, // 159.14.0.0 - 159.14.255.255 { 0x9f0f0000, 0x9f0fffff, REGISTRY_RIPENCC }, // 159.15.0.0 - 159.15.255.255 { 0x9f100000, 0x9f10ffff, REGISTRY_LACNIC }, // 159.16.0.0 - 159.16.255.255 { 0x9f110000, 0x9f13ffff, REGISTRY_ARIN }, // 159.17.0.0 - 159.19.255.255 { 0x9f140000, 0x9f147fff, REGISTRY_RIPENCC }, // 159.20.0.0 - 159.20.127.255 { 0x9f148000, 0x9f15ffff, REGISTRY_ARIN }, // 159.20.128.0 - 159.21.255.255 { 0x9f160000, 0x9f17ffff, REGISTRY_RIPENCC }, // 159.22.0.0 - 159.23.255.255 { 0x9f180000, 0x9f18ffff, REGISTRY_ARIN }, // 159.24.0.0 - 159.24.255.255 { 0x9f190000, 0x9f19ffff, REGISTRY_RIPENCC }, // 159.25.0.0 - 159.25.255.255 { 0x9f1a0000, 0x9f1affff, REGISTRY_ARIN }, // 159.26.0.0 - 159.26.255.255 { 0x9f1b0000, 0x9f1bffff, REGISTRY_APNIC }, // 159.27.0.0 - 159.27.255.255 { 0x9f1c0000, 0x9f1c3fff, REGISTRY_ARIN }, // 159.28.0.0 - 159.28.63.255 { 0x9f1c4000, 0x9f1cffff, REGISTRY_APNIC }, // 159.28.64.0 - 159.28.255.255 { 0x9f1d0000, 0x9f1fffff, REGISTRY_RIPENCC }, // 159.29.0.0 - 159.31.255.255 { 0x9f200000, 0x9f21ffff, REGISTRY_ARIN }, // 159.32.0.0 - 159.33.255.255 { 0x9f220000, 0x9f22ffff, REGISTRY_RIPENCC }, // 159.34.0.0 - 159.34.255.255 { 0x9f230000, 0x9f25ffff, REGISTRY_ARIN }, // 159.35.0.0 - 159.37.255.255 { 0x9f260000, 0x9f26ffff, REGISTRY_RIPENCC }, // 159.38.0.0 - 159.38.255.255 { 0x9f270000, 0x9f2dffff, REGISTRY_ARIN }, // 159.39.0.0 - 159.45.255.255 { 0x9f2e0000, 0x9f2effff, REGISTRY_RIPENCC }, // 159.46.0.0 - 159.46.255.255 { 0x9f2f0000, 0x9f2fffff, REGISTRY_ARIN }, // 159.47.0.0 - 159.47.255.255 { 0x9f300000, 0x9f3003ff, REGISTRY_RIPENCC }, // 159.48.0.0 - 159.48.3.255 { 0x9f300400, 0x9f300bff, REGISTRY_RIPENCC }, // 159.48.4.0 - 159.48.11.255 { 0x9f300c00, 0x9f301fff, REGISTRY_RIPENCC }, // 159.48.12.0 - 159.48.31.255 { 0x9f302000, 0x9f302fff, REGISTRY_RIPENCC }, // 159.48.32.0 - 159.48.47.255 { 0x9f303000, 0x9f3033ff, REGISTRY_RIPENCC }, // 159.48.48.0 - 159.48.51.255 { 0x9f303400, 0x9f3037ff, REGISTRY_RIPENCC }, // 159.48.52.0 - 159.48.55.255 { 0x9f303800, 0x9f303fff, REGISTRY_RIPENCC }, // 159.48.56.0 - 159.48.63.255 { 0x9f304000, 0x9f31ffff, REGISTRY_ARIN }, // 159.48.64.0 - 159.49.255.255 { 0x9f320000, 0x9f33ffff, REGISTRY_RIPENCC }, // 159.50.0.0 - 159.51.255.255 { 0x9f340000, 0x9f34ffff, REGISTRY_APNIC }, // 159.52.0.0 - 159.52.255.255 { 0x9f350000, 0x9f39ffff, REGISTRY_ARIN }, // 159.53.0.0 - 159.57.255.255 { 0x9f3a0000, 0x9f3affff, REGISTRY_RIPENCC }, // 159.58.0.0 - 159.58.255.255 { 0x9f3b0000, 0x9f3bffff, REGISTRY_ARIN }, // 159.59.0.0 - 159.59.255.255 { 0x9f3c0000, 0x9f3cffff, REGISTRY_RIPENCC }, // 159.60.0.0 - 159.60.255.255 { 0x9f3d0000, 0x9f44ffff, REGISTRY_ARIN }, // 159.61.0.0 - 159.68.255.255 { 0x9f450000, 0x9f45ffff, REGISTRY_RIPENCC }, // 159.69.0.0 - 159.69.255.255 { 0x9f460000, 0x9f47ffff, REGISTRY_ARIN }, // 159.70.0.0 - 159.71.255.255 { 0x9f480000, 0x9f48ffff, REGISTRY_RIPENCC }, // 159.72.0.0 - 159.72.255.255 { 0x9f490000, 0x9f49ffff, REGISTRY_APNIC }, // 159.73.0.0 - 159.73.255.255 { 0x9f4a0000, 0x9f4affff, REGISTRY_ARIN }, // 159.74.0.0 - 159.74.255.255 { 0x9f4b0000, 0x9f4bffff, REGISTRY_APNIC }, // 159.75.0.0 - 159.75.255.255 { 0x9f4c0000, 0x9f4fffff, REGISTRY_ARIN }, // 159.76.0.0 - 159.79.255.255 { 0x9f500000, 0x9f50ffff, REGISTRY_APNIC }, // 159.80.0.0 - 159.80.255.255 { 0x9f510000, 0x9f51ffff, REGISTRY_RIPENCC }, // 159.81.0.0 - 159.81.255.255 { 0x9f520000, 0x9f53ffff, REGISTRY_ARIN }, // 159.82.0.0 - 159.83.255.255 { 0x9f540000, 0x9f54ffff, REGISTRY_RIPENCC }, // 159.84.0.0 - 159.84.255.255 { 0x9f550000, 0x9f55ffff, REGISTRY_ARIN }, // 159.85.0.0 - 159.85.255.255 { 0x9f560000, 0x9f56ffff, REGISTRY_RIPENCC }, // 159.86.0.0 - 159.86.255.255 { 0x9f570000, 0x9f59ffff, REGISTRY_ARIN }, // 159.87.0.0 - 159.89.255.255 { 0x9f5a0000, 0x9f5affff, REGISTRY_LACNIC }, // 159.90.0.0 - 159.90.255.255 { 0x9f5b0000, 0x9f5bffff, REGISTRY_ARIN }, // 159.91.0.0 - 159.91.255.255 { 0x9f5c0000, 0x9f5dffff, REGISTRY_RIPENCC }, // 159.92.0.0 - 159.93.255.255 { 0x9f5e0000, 0x9f5effff, REGISTRY_ARIN }, // 159.94.0.0 - 159.94.255.255 { 0x9f5f0000, 0x9f5fffff, REGISTRY_RIPENCC }, // 159.95.0.0 - 159.95.255.255 { 0x9f600000, 0x9f63ffff, REGISTRY_ARIN }, // 159.96.0.0 - 159.99.255.255 { 0x9f640000, 0x9f65ffff, REGISTRY_RIPENCC }, // 159.100.0.0 - 159.101.255.255 { 0x9f660000, 0x9f66ffff, REGISTRY_ARIN }, // 159.102.0.0 - 159.102.255.255 { 0x9f670000, 0x9f68ffff, REGISTRY_RIPENCC }, // 159.103.0.0 - 159.104.255.255 { 0x9f690000, 0x9f6affff, REGISTRY_ARIN }, // 159.105.0.0 - 159.106.255.255 { 0x9f6b0000, 0x9f6bffff, REGISTRY_RIPENCC }, // 159.107.0.0 - 159.107.255.255 { 0x9f6c0000, 0x9f6cffff, REGISTRY_ARIN }, // 159.108.0.0 - 159.108.255.255 { 0x9f6d0000, 0x9f6dffff, REGISTRY_RIPENCC }, // 159.109.0.0 - 159.109.255.255 { 0x9f6e0000, 0x9f70ebff, REGISTRY_ARIN }, // 159.110.0.0 - 159.112.235.255 { 0x9f70ec00, 0x9f70edff, REGISTRY_LACNIC }, // 159.112.236.0 - 159.112.237.255 { 0x9f70ee00, 0x9f71ffff, REGISTRY_ARIN }, // 159.112.238.0 - 159.113.255.255 { 0x9f720000, 0x9f72ffff, REGISTRY_RIPENCC }, // 159.114.0.0 - 159.114.255.255 { 0x9f730000, 0x9f74ffff, REGISTRY_ARIN }, // 159.115.0.0 - 159.116.255.255 { 0x9f750000, 0x9f752fff, REGISTRY_APNIC }, // 159.117.0.0 - 159.117.47.255 { 0x9f753000, 0x9f753fff, REGISTRY_ARIN }, // 159.117.48.0 - 159.117.63.255 { 0x9f754000, 0x9f759fff, REGISTRY_APNIC }, // 159.117.64.0 - 159.117.159.255 { 0x9f75a000, 0x9f75bfff, REGISTRY_ARIN }, // 159.117.160.0 - 159.117.191.255 { 0x9f75c000, 0x9f75c7ff, REGISTRY_RIPENCC }, // 159.117.192.0 - 159.117.199.255 { 0x9f75c800, 0x9f75c9ff, REGISTRY_APNIC }, // 159.117.200.0 - 159.117.201.255 { 0x9f75ca00, 0x9f75cfff, REGISTRY_RIPENCC }, // 159.117.202.0 - 159.117.207.255 { 0x9f75d000, 0x9f75dbff, REGISTRY_ARIN }, // 159.117.208.0 - 159.117.219.255 { 0x9f75dc00, 0x9f75ffff, REGISTRY_APNIC }, // 159.117.220.0 - 159.117.255.255 { 0x9f760000, 0x9f79ffff, REGISTRY_ARIN }, // 159.118.0.0 - 159.121.255.255 { 0x9f7a0000, 0x9f7affff, REGISTRY_RIPENCC }, // 159.122.0.0 - 159.122.255.255 { 0x9f7b0000, 0x9f7fffff, REGISTRY_ARIN }, // 159.123.0.0 - 159.127.255.255 { 0x9f800000, 0x9f80ffff, REGISTRY_RIPENCC }, // 159.128.0.0 - 159.128.255.255 { 0x9f810000, 0x9f81ffff, REGISTRY_ARIN }, // 159.129.0.0 - 159.129.255.255 { 0x9f820000, 0x9f82ffff, REGISTRY_RIPENCC }, // 159.130.0.0 - 159.130.255.255 { 0x9f830000, 0x9f85ffff, REGISTRY_ARIN }, // 159.131.0.0 - 159.133.255.255 { 0x9f860000, 0x9f86ffff, REGISTRY_RIPENCC }, // 159.134.0.0 - 159.134.255.255 { 0x9f870000, 0x9f877fff, REGISTRY_ARIN }, // 159.135.0.0 - 159.135.127.255 { 0x9f878000, 0x9f879fff, REGISTRY_RIPENCC }, // 159.135.128.0 - 159.135.159.255 { 0x9f87a000, 0x9f89ffff, REGISTRY_ARIN }, // 159.135.160.0 - 159.137.255.255 { 0x9f8a0000, 0x9f8affff, REGISTRY_APNIC }, // 159.138.0.0 - 159.138.255.255 { 0x9f8b0000, 0x9f8fffff, REGISTRY_ARIN }, // 159.139.0.0 - 159.143.255.255 { 0x9f900000, 0x9f90ffff, REGISTRY_RIPENCC }, // 159.144.0.0 - 159.144.255.255 { 0x9f910000, 0x9f91ffff, REGISTRY_ARIN }, // 159.145.0.0 - 159.145.255.255 { 0x9f920000, 0x9f92ffff, REGISTRY_RIPENCC }, // 159.146.0.0 - 159.146.255.255 { 0x9f930000, 0x9f95ffff, REGISTRY_RIPENCC }, // 159.147.0.0 - 159.149.255.255 { 0x9f960000, 0x9f96ffff, REGISTRY_ARIN }, // 159.150.0.0 - 159.150.255.255 { 0x9f970000, 0x9f98ffff, REGISTRY_RIPENCC }, // 159.151.0.0 - 159.152.255.255 { 0x9f990000, 0x9f99ffff, REGISTRY_ARIN }, // 159.153.0.0 - 159.153.255.255 { 0x9f9a0000, 0x9f9affff, REGISTRY_RIPENCC }, // 159.154.0.0 - 159.154.255.255 { 0x9f9b0000, 0x9f9bffff, REGISTRY_ARIN }, // 159.155.0.0 - 159.155.255.255 { 0x9f9c0000, 0x9f9cffff, REGISTRY_RIPENCC }, // 159.156.0.0 - 159.156.255.255 { 0x9f9d0000, 0x9f9fffff, REGISTRY_ARIN }, // 159.157.0.0 - 159.159.255.255 { 0x9fa00000, 0x9fa0ffff, REGISTRY_RIPENCC }, // 159.160.0.0 - 159.160.255.255 { 0x9fa10000, 0x9fa1ffff, REGISTRY_ARIN }, // 159.161.0.0 - 159.161.255.255 { 0x9fa20000, 0x9fa2ffff, REGISTRY_RIPENCC }, // 159.162.0.0 - 159.162.255.255 { 0x9fa30000, 0x9fa6ffff, REGISTRY_ARIN }, // 159.163.0.0 - 159.166.255.255 { 0x9fa70000, 0x9fa8ffff, REGISTRY_RIPENCC }, // 159.167.0.0 - 159.168.255.255 { 0x9fa90000, 0x9fa9ffff, REGISTRY_ARIN }, // 159.169.0.0 - 159.169.255.255 { 0x9faa0000, 0x9fabffff, REGISTRY_RIPENCC }, // 159.170.0.0 - 159.171.255.255 { 0x9fac0000, 0x9facffff, REGISTRY_ARIN }, // 159.172.0.0 - 159.172.255.255 { 0x9fad0000, 0x9fadffff, REGISTRY_RIPENCC }, // 159.173.0.0 - 159.173.255.255 { 0x9fae0000, 0x9fb2ffff, REGISTRY_ARIN }, // 159.174.0.0 - 159.178.255.255 { 0x9fb30000, 0x9fb4dfff, REGISTRY_RIPENCC }, // 159.179.0.0 - 159.180.223.255 { 0x9fb4e000, 0x9fb4ffff, REGISTRY_RIPENCC }, // 159.180.224.0 - 159.180.255.255 { 0x9fb50000, 0x9fbdffff, REGISTRY_ARIN }, // 159.181.0.0 - 159.189.255.255 { 0x9fbe0000, 0x9fbeffff, REGISTRY_RIPENCC }, // 159.190.0.0 - 159.190.255.255 { 0x9fbf0000, 0x9fbfffff, REGISTRY_ARIN }, // 159.191.0.0 - 159.191.255.255 { 0x9fc00000, 0x9fc0ffff, REGISTRY_APNIC }, // 159.192.0.0 - 159.192.255.255 { 0x9fc10000, 0x9fc3ffff, REGISTRY_RIPENCC }, // 159.193.0.0 - 159.195.255.255 { 0x9fc40000, 0x9fc4ffff, REGISTRY_APNIC }, // 159.196.0.0 - 159.196.255.255 { 0x9fc50000, 0x9fc5ffff, REGISTRY_RIPENCC }, // 159.197.0.0 - 159.197.255.255 { 0x9fc60000, 0x9fc7ffff, REGISTRY_ARIN }, // 159.198.0.0 - 159.199.255.255 { 0x9fc80000, 0x9fc8ffff, REGISTRY_RIPENCC }, // 159.200.0.0 - 159.200.255.255 { 0x9fc90000, 0x9fccffff, REGISTRY_ARIN }, // 159.201.0.0 - 159.204.255.255 { 0x9fcd0000, 0x9fcdffff, REGISTRY_RIPENCC }, // 159.205.0.0 - 159.205.255.255 { 0x9fce0000, 0x9fceffff, REGISTRY_ARIN }, // 159.206.0.0 - 159.206.255.255 { 0x9fcf0000, 0x9fcfffff, REGISTRY_APNIC }, // 159.207.0.0 - 159.207.255.255 { 0x9fd00000, 0x9fd1ffff, REGISTRY_ARIN }, // 159.208.0.0 - 159.209.255.255 { 0x9fd20000, 0x9fd2ffff, REGISTRY_RIPENCC }, // 159.210.0.0 - 159.210.255.255 { 0x9fd30000, 0x9fd3ffff, REGISTRY_APNIC }, // 159.211.0.0 - 159.211.255.255 { 0x9fd40000, 0x9fd4ffff, REGISTRY_ARIN }, // 159.212.0.0 - 159.212.255.255 { 0x9fd50000, 0x9fd5ffff, REGISTRY_RIPENCC }, // 159.213.0.0 - 159.213.255.255 { 0x9fd60000, 0x9fd7ffff, REGISTRY_ARIN }, // 159.214.0.0 - 159.215.255.255 { 0x9fd80000, 0x9fd9ffff, REGISTRY_RIPENCC }, // 159.216.0.0 - 159.217.255.255 { 0x9fda0000, 0x9fdaffff, REGISTRY_ARIN }, // 159.218.0.0 - 159.218.255.255 { 0x9fdb0000, 0x9fdbffff, REGISTRY_RIPENCC }, // 159.219.0.0 - 159.219.255.255 { 0x9fdc0000, 0x9fdfffff, REGISTRY_ARIN }, // 159.220.0.0 - 159.223.255.255 { 0x9fe00000, 0x9fe0ffff, REGISTRY_RIPENCC }, // 159.224.0.0 - 159.224.255.255 { 0x9fe10000, 0x9fe1ffff, REGISTRY_ARIN }, // 159.225.0.0 - 159.225.255.255 { 0x9fe20000, 0x9fe2ffff, REGISTRY_APNIC }, // 159.226.0.0 - 159.226.255.255 { 0x9fe30000, 0x9fe3ffff, REGISTRY_ARIN }, // 159.227.0.0 - 159.227.255.255 { 0x9fe40000, 0x9fe4ffff, REGISTRY_APNIC }, // 159.228.0.0 - 159.228.255.255 { 0x9fe50000, 0x9fe7ffff, REGISTRY_ARIN }, // 159.229.0.0 - 159.231.255.255 { 0x9fe80000, 0x9fe8ffff, REGISTRY_RIPENCC }, // 159.232.0.0 - 159.232.255.255 { 0x9fe90000, 0x9febffff, REGISTRY_ARIN }, // 159.233.0.0 - 159.235.255.255 { 0x9fec0000, 0x9fedffff, REGISTRY_RIPENCC }, // 159.236.0.0 - 159.237.255.255 { 0x9fee0000, 0x9feeffff, REGISTRY_ARIN }, // 159.238.0.0 - 159.238.255.255 { 0x9fef0000, 0x9fefffff, REGISTRY_RIPENCC }, // 159.239.0.0 - 159.239.255.255 { 0x9ff00000, 0x9ff0ffff, REGISTRY_ARIN }, // 159.240.0.0 - 159.240.255.255 { 0x9ff10000, 0x9ff1ffff, REGISTRY_RIPENCC }, // 159.241.0.0 - 159.241.255.255 { 0x9ff20000, 0x9ff207ff, REGISTRY_ARIN }, // 159.242.0.0 - 159.242.7.255 { 0x9ff20800, 0x9ff20fff, REGISTRY_RIPENCC }, // 159.242.8.0 - 159.242.15.255 { 0x9ff21000, 0x9ff21fff, REGISTRY_APNIC }, // 159.242.16.0 - 159.242.31.255 { 0x9ff22000, 0x9ff23fff, REGISTRY_ARIN }, // 159.242.32.0 - 159.242.63.255 { 0x9ff24000, 0x9ff27fff, REGISTRY_RIPENCC }, // 159.242.64.0 - 159.242.127.255 { 0x9ff28000, 0x9ff2dfff, REGISTRY_ARIN }, // 159.242.128.0 - 159.242.223.255 { 0x9ff2e000, 0x9ff2efff, REGISTRY_RIPENCC }, // 159.242.224.0 - 159.242.239.255 { 0x9ff2f000, 0x9ff3ffff, REGISTRY_ARIN }, // 159.242.240.0 - 159.243.255.255 { 0x9ff40000, 0x9ff4ffff, REGISTRY_RIPENCC }, // 159.244.0.0 - 159.244.255.255 { 0x9ff50000, 0x9ff5ffff, REGISTRY_RIPENCC }, // 159.245.0.0 - 159.245.255.255 { 0x9ff60000, 0x9ff7ffff, REGISTRY_ARIN }, // 159.246.0.0 - 159.247.255.255 { 0x9ff80000, 0x9ff8ffff, REGISTRY_APNIC }, // 159.248.0.0 - 159.248.255.255 { 0x9ff90000, 0x9ffcffff, REGISTRY_ARIN }, // 159.249.0.0 - 159.252.255.255 { 0x9ffd0000, 0x9ffdffff, REGISTRY_RIPENCC }, // 159.253.0.0 - 159.253.255.255 { 0x9ffe0000, 0x9ffeffff, REGISTRY_RIPENCC }, // 159.254.0.0 - 159.254.255.255 { 0x9fff0000, 0x9fffffff, REGISTRY_RIPENCC }, // 159.255.0.0 - 159.255.255.255 { 0xa0000000, 0xa000dfff, REGISTRY_AFRINIC }, // 160.0.0.0 - 160.0.223.255 { 0xa0010000, 0xa003ffff, REGISTRY_ARIN }, // 160.1.0.0 - 160.3.255.255 { 0xa0040000, 0xa004ffff, REGISTRY_APNIC }, // 160.4.0.0 - 160.4.255.255 { 0xa0050000, 0xa006ffff, REGISTRY_RIPENCC }, // 160.5.0.0 - 160.6.255.255 { 0xa0070000, 0xa007ffff, REGISTRY_ARIN }, // 160.7.0.0 - 160.7.255.255 { 0xa0080000, 0xa009ffff, REGISTRY_RIPENCC }, // 160.8.0.0 - 160.9.255.255 { 0xa00a0000, 0xa00affff, REGISTRY_ARIN }, // 160.10.0.0 - 160.10.255.255 { 0xa00b0000, 0xa012ffff, REGISTRY_APNIC }, // 160.11.0.0 - 160.18.255.255 { 0xa0130000, 0xa0130fff, REGISTRY_ARIN }, // 160.19.0.0 - 160.19.15.255 { 0xa0131400, 0xa01317ff, REGISTRY_APNIC }, // 160.19.20.0 - 160.19.23.255 { 0xa0131800, 0xa0131fff, REGISTRY_ARIN }, // 160.19.24.0 - 160.19.31.255 { 0xa0132400, 0xa01327ff, REGISTRY_AFRINIC }, // 160.19.36.0 - 160.19.39.255 { 0xa0132c00, 0xa0132fff, REGISTRY_LACNIC }, // 160.19.44.0 - 160.19.47.255 { 0xa0133000, 0xa01337ff, REGISTRY_APNIC }, // 160.19.48.0 - 160.19.55.255 { 0xa0134000, 0xa01343ff, REGISTRY_APNIC }, // 160.19.64.0 - 160.19.67.255 { 0xa0135c00, 0xa0135fff, REGISTRY_RIPENCC }, // 160.19.92.0 - 160.19.95.255 { 0xa0136000, 0xa01367ff, REGISTRY_AFRINIC }, // 160.19.96.0 - 160.19.103.255 { 0xa0136800, 0xa0136bff, REGISTRY_ARIN }, // 160.19.104.0 - 160.19.107.255 { 0xa0137000, 0xa0138fff, REGISTRY_AFRINIC }, // 160.19.112.0 - 160.19.143.255 { 0xa0139800, 0xa0139bff, REGISTRY_AFRINIC }, // 160.19.152.0 - 160.19.155.255 { 0xa013a000, 0xa013a3ff, REGISTRY_ARIN }, // 160.19.160.0 - 160.19.163.255 { 0xa013a800, 0xa013afff, REGISTRY_LACNIC }, // 160.19.168.0 - 160.19.175.255 { 0xa013b400, 0xa013b7ff, REGISTRY_RIPENCC }, // 160.19.180.0 - 160.19.183.255 { 0xa013bc00, 0xa013bfff, REGISTRY_AFRINIC }, // 160.19.188.0 - 160.19.191.255 { 0xa013c400, 0xa013c7ff, REGISTRY_AFRINIC }, // 160.19.196.0 - 160.19.199.255 { 0xa013c800, 0xa013cbff, REGISTRY_LACNIC }, // 160.19.200.0 - 160.19.203.255 { 0xa013d000, 0xa013e3ff, REGISTRY_APNIC }, // 160.19.208.0 - 160.19.227.255 { 0xa013e800, 0xa013ebff, REGISTRY_AFRINIC }, // 160.19.232.0 - 160.19.235.255 { 0xa013f000, 0xa013ffff, REGISTRY_LACNIC }, // 160.19.240.0 - 160.19.255.255 { 0xa0140000, 0xa01403ff, REGISTRY_APNIC }, // 160.20.0.0 - 160.20.3.255 { 0xa0140800, 0xa0140fff, REGISTRY_APNIC }, // 160.20.8.0 - 160.20.15.255 { 0xa0141400, 0xa01417ff, REGISTRY_LACNIC }, // 160.20.20.0 - 160.20.23.255 { 0xa0141800, 0xa0141fff, REGISTRY_AFRINIC }, // 160.20.24.0 - 160.20.31.255 { 0xa0142000, 0xa01423ff, REGISTRY_LACNIC }, // 160.20.32.0 - 160.20.35.255 { 0xa0142800, 0xa0143fff, REGISTRY_APNIC }, // 160.20.40.0 - 160.20.63.255 { 0xa0144000, 0xa01447ff, REGISTRY_LACNIC }, // 160.20.64.0 - 160.20.71.255 { 0xa0144800, 0xa0144bff, REGISTRY_APNIC }, // 160.20.72.0 - 160.20.75.255 { 0xa0145000, 0xa0145fff, REGISTRY_LACNIC }, // 160.20.80.0 - 160.20.95.255 { 0xa0146000, 0xa01467ff, REGISTRY_RIPENCC }, // 160.20.96.0 - 160.20.103.255 { 0xa0146c00, 0xa0146fff, REGISTRY_RIPENCC }, // 160.20.108.0 - 160.20.111.255 { 0xa0147000, 0xa01473ff, REGISTRY_AFRINIC }, // 160.20.112.0 - 160.20.115.255 { 0xa0149000, 0xa0149fff, REGISTRY_RIPENCC }, // 160.20.144.0 - 160.20.159.255 { 0xa014a000, 0xa014cfff, REGISTRY_LACNIC }, // 160.20.160.0 - 160.20.207.255 { 0xa014d000, 0xa014d3ff, REGISTRY_ARIN }, // 160.20.208.0 - 160.20.211.255 { 0xa014d500, 0xa014d5ff, REGISTRY_AFRINIC }, // 160.20.213.0 - 160.20.213.255 { 0xa014d600, 0xa014d7ff, REGISTRY_RIPENCC }, // 160.20.214.0 - 160.20.215.255 { 0xa014d900, 0xa014d9ff, REGISTRY_AFRINIC }, // 160.20.217.0 - 160.20.217.255 { 0xa014da00, 0xa014dbff, REGISTRY_LACNIC }, // 160.20.218.0 - 160.20.219.255 { 0xa014dd00, 0xa014ddff, REGISTRY_AFRINIC }, // 160.20.221.0 - 160.20.221.255 { 0xa014de00, 0xa014dfff, REGISTRY_APNIC }, // 160.20.222.0 - 160.20.223.255 { 0xa014e100, 0xa014e1ff, REGISTRY_LACNIC }, // 160.20.225.0 - 160.20.225.255 { 0xa014e200, 0xa014e3ff, REGISTRY_AFRINIC }, // 160.20.226.0 - 160.20.227.255 { 0xa014e500, 0xa014e5ff, REGISTRY_RIPENCC }, // 160.20.229.0 - 160.20.229.255 { 0xa014e600, 0xa014efff, REGISTRY_ARIN }, // 160.20.230.0 - 160.20.239.255 { 0xa014f200, 0xa014f3ff, REGISTRY_LACNIC }, // 160.20.242.0 - 160.20.243.255 { 0xa014f600, 0xa014f7ff, REGISTRY_LACNIC }, // 160.20.246.0 - 160.20.247.255 { 0xa014f800, 0xa014f9ff, REGISTRY_RIPENCC }, // 160.20.248.0 - 160.20.249.255 { 0xa014fb00, 0xa014fbff, REGISTRY_ARIN }, // 160.20.251.0 - 160.20.251.255 { 0xa0150000, 0xa015ffff, REGISTRY_APNIC }, // 160.21.0.0 - 160.21.255.255 { 0xa0170000, 0xa018ffff, REGISTRY_APNIC }, // 160.23.0.0 - 160.24.255.255 { 0xa01a0000, 0xa01dffff, REGISTRY_APNIC }, // 160.26.0.0 - 160.29.255.255 { 0xa01f0000, 0xa020efff, REGISTRY_ARIN }, // 160.31.0.0 - 160.32.239.255 { 0xa020f000, 0xa020f7ff, REGISTRY_APNIC }, // 160.32.240.0 - 160.32.247.255 { 0xa020f800, 0xa025ffff, REGISTRY_ARIN }, // 160.32.248.0 - 160.37.255.255 { 0xa0260000, 0xa026ffff, REGISTRY_RIPENCC }, // 160.38.0.0 - 160.38.255.255 { 0xa0270000, 0xa027ffff, REGISTRY_ARIN }, // 160.39.0.0 - 160.39.255.255 { 0xa0280000, 0xa028ffff, REGISTRY_RIPENCC }, // 160.40.0.0 - 160.40.255.255 { 0xa0290000, 0xa02bffff, REGISTRY_ARIN }, // 160.41.0.0 - 160.43.255.255 { 0xa02c0000, 0xa02cffff, REGISTRY_RIPENCC }, // 160.44.0.0 - 160.44.255.255 { 0xa02d0000, 0xa03cffff, REGISTRY_RIPENCC }, // 160.45.0.0 - 160.60.255.255 { 0xa03d0000, 0xa03effff, REGISTRY_RIPENCC }, // 160.61.0.0 - 160.62.255.255 { 0xa03f0000, 0xa03fffff, REGISTRY_RIPENCC }, // 160.63.0.0 - 160.63.255.255 { 0xa0400000, 0xa040ffff, REGISTRY_APNIC }, // 160.64.0.0 - 160.64.255.255 { 0xa0410000, 0xa041ffff, REGISTRY_ARIN }, // 160.65.0.0 - 160.65.255.255 { 0xa0420000, 0xa044ffff, REGISTRY_RIPENCC }, // 160.66.0.0 - 160.68.255.255 { 0xa0450000, 0xa045ffff, REGISTRY_ARIN }, // 160.69.0.0 - 160.69.255.255 { 0xa0460000, 0xa047ffff, REGISTRY_RIPENCC }, // 160.70.0.0 - 160.71.255.255 { 0xa0480000, 0xa049ffff, REGISTRY_ARIN }, // 160.72.0.0 - 160.73.255.255 { 0xa04a0000, 0xa04affff, REGISTRY_APNIC }, // 160.74.0.0 - 160.74.255.255 { 0xa04b0000, 0xa04bffff, REGISTRY_RIPENCC }, // 160.75.0.0 - 160.75.255.255 { 0xa04c0000, 0xa04cffff, REGISTRY_ARIN }, // 160.76.0.0 - 160.76.255.255 { 0xa04d0000, 0xa04dffff, REGISTRY_AFRINIC }, // 160.77.0.0 - 160.77.255.255 { 0xa04e0000, 0xa04effff, REGISTRY_RIPENCC }, // 160.78.0.0 - 160.78.255.255 { 0xa04f0000, 0xa04fbfff, REGISTRY_ARIN }, // 160.79.0.0 - 160.79.191.255 { 0xa04fc000, 0xa04fffff, REGISTRY_RIPENCC }, // 160.79.192.0 - 160.79.255.255 { 0xa0500000, 0xa050ffff, REGISTRY_RIPENCC }, // 160.80.0.0 - 160.80.255.255 { 0xa0510000, 0xa054ffff, REGISTRY_ARIN }, // 160.81.0.0 - 160.84.255.255 { 0xa0550000, 0xa055ffff, REGISTRY_RIPENCC }, // 160.85.0.0 - 160.85.255.255 { 0xa0560000, 0xa056ffff, REGISTRY_APNIC }, // 160.86.0.0 - 160.86.255.255 { 0xa0570000, 0xa058ffff, REGISTRY_ARIN }, // 160.87.0.0 - 160.88.255.255 { 0xa0590000, 0xa05affff, REGISTRY_AFRINIC }, // 160.89.0.0 - 160.90.255.255 { 0xa05b0000, 0xa05bffff, REGISTRY_ARIN }, // 160.91.0.0 - 160.91.255.255 { 0xa05c0000, 0xa05cffff, REGISTRY_RIPENCC }, // 160.92.0.0 - 160.92.255.255 { 0xa05d0000, 0xa05fffff, REGISTRY_ARIN }, // 160.93.0.0 - 160.95.255.255 { 0xa0600000, 0xa060ffff, REGISTRY_APNIC }, // 160.96.0.0 - 160.96.255.255 { 0xa0610000, 0xa064ffff, REGISTRY_RIPENCC }, // 160.97.0.0 - 160.100.255.255 { 0xa0650000, 0xa066ffff, REGISTRY_ARIN }, // 160.101.0.0 - 160.102.255.255 { 0xa0670000, 0xa068ffff, REGISTRY_RIPENCC }, // 160.103.0.0 - 160.104.255.255 { 0xa0690000, 0xa069ffff, REGISTRY_AFRINIC }, // 160.105.0.0 - 160.105.255.255 { 0xa06a0000, 0xa070ffff, REGISTRY_ARIN }, // 160.106.0.0 - 160.112.255.255 { 0xa0710000, 0xa071ffff, REGISTRY_AFRINIC }, // 160.113.0.0 - 160.113.255.255 { 0xa0720000, 0xa072ffff, REGISTRY_RIPENCC }, // 160.114.0.0 - 160.114.255.255 { 0xa0730000, 0xa07767ff, REGISTRY_AFRINIC }, // 160.115.0.0 - 160.119.103.255 { 0xa0776c00, 0xa077c5ff, REGISTRY_AFRINIC }, // 160.119.108.0 - 160.119.197.255 { 0xa077c800, 0xa07cffff, REGISTRY_AFRINIC }, // 160.119.200.0 - 160.124.255.255 { 0xa07d0000, 0xa097ffff, REGISTRY_ARIN }, // 160.125.0.0 - 160.151.255.255 { 0xa0980000, 0xa098ffff, REGISTRY_AFRINIC }, // 160.152.0.0 - 160.152.255.255 { 0xa0990000, 0xa099ffff, REGISTRY_ARIN }, // 160.153.0.0 - 160.153.255.255 { 0xa09a0000, 0xa0b3ffff, REGISTRY_AFRINIC }, // 160.154.0.0 - 160.179.255.255 { 0xa0b40000, 0xa0b4ffff, REGISTRY_RIPENCC }, // 160.180.0.0 - 160.180.255.255 { 0xa0b60000, 0xa0b7ffff, REGISTRY_AFRINIC }, // 160.182.0.0 - 160.183.255.255 { 0xa0b90000, 0xa0baffff, REGISTRY_APNIC }, // 160.185.0.0 - 160.186.255.255 { 0xa0bc0000, 0xa0beffff, REGISTRY_APNIC }, // 160.188.0.0 - 160.190.255.255 { 0xa0c00000, 0xa0ca0fff, REGISTRY_APNIC }, // 160.192.0.0 - 160.202.15.255 { 0xa0ca1000, 0xa0ca1fff, REGISTRY_RIPENCC }, // 160.202.16.0 - 160.202.31.255 { 0xa0ca2000, 0xa0ca3fff, REGISTRY_APNIC }, // 160.202.32.0 - 160.202.63.255 { 0xa0ca4000, 0xa0ca83ff, REGISTRY_ARIN }, // 160.202.64.0 - 160.202.131.255 { 0xa0ca8400, 0xa0cab3ff, REGISTRY_APNIC }, // 160.202.132.0 - 160.202.179.255 { 0xa0cac000, 0xa0cacfff, REGISTRY_APNIC }, // 160.202.192.0 - 160.202.207.255 { 0xa0cad400, 0xa0ccffff, REGISTRY_APNIC }, // 160.202.212.0 - 160.204.255.255 { 0xa0cd0000, 0xa0cdffff, REGISTRY_ARIN }, // 160.205.0.0 - 160.205.255.255 { 0xa0ce0000, 0xa0ceffff, REGISTRY_APNIC }, // 160.206.0.0 - 160.206.255.255 { 0xa0cf0000, 0xa0d1ffff, REGISTRY_ARIN }, // 160.207.0.0 - 160.209.255.255 { 0xa0d20000, 0xa0d3ffff, REGISTRY_RIPENCC }, // 160.210.0.0 - 160.211.255.255 { 0xa0d40000, 0xa0d4ffff, REGISTRY_ARIN }, // 160.212.0.0 - 160.212.255.255 { 0xa0d50000, 0xa0d6ffff, REGISTRY_RIPENCC }, // 160.213.0.0 - 160.214.255.255 { 0xa0d70000, 0xa0d7ffff, REGISTRY_APNIC }, // 160.215.0.0 - 160.215.255.255 { 0xa0d80000, 0xa0d9ffff, REGISTRY_RIPENCC }, // 160.216.0.0 - 160.217.255.255 { 0xa0da0000, 0xa0daffff, REGISTRY_RIPENCC }, // 160.218.0.0 - 160.218.255.255 { 0xa0db0000, 0xa0dcffff, REGISTRY_RIPENCC }, // 160.219.0.0 - 160.220.255.255 { 0xa0dd0000, 0xa0ddffff, REGISTRY_ARIN }, // 160.221.0.0 - 160.221.255.255 { 0xa0de0000, 0xa0deffff, REGISTRY_APNIC }, // 160.222.0.0 - 160.222.255.255 { 0xa0df0000, 0xa0dfcaff, REGISTRY_ARIN }, // 160.223.0.0 - 160.223.202.255 { 0xa0dfcb00, 0xa0dfcbff, REGISTRY_LACNIC }, // 160.223.203.0 - 160.223.203.255 { 0xa0dfcc00, 0xa0dfffff, REGISTRY_ARIN }, // 160.223.204.0 - 160.223.255.255 { 0xa0e00000, 0xa0e2bbff, REGISTRY_AFRINIC }, // 160.224.0.0 - 160.226.187.255 { 0xa0e2c000, 0xa0e2ffff, REGISTRY_AFRINIC }, // 160.226.192.0 - 160.226.255.255 { 0xa0e30000, 0xa0e3ffff, REGISTRY_ARIN }, // 160.227.0.0 - 160.227.255.255 { 0xa0e40000, 0xa0e4ffff, REGISTRY_RIPENCC }, // 160.228.0.0 - 160.228.255.255 { 0xa0e50000, 0xa0e73fff, REGISTRY_ARIN }, // 160.229.0.0 - 160.231.63.255 { 0xa0e74000, 0xa0e77fff, REGISTRY_RIPENCC }, // 160.231.64.0 - 160.231.127.255 { 0xa0e78000, 0xa0e7bfff, REGISTRY_APNIC }, // 160.231.128.0 - 160.231.191.255 { 0xa0e7c000, 0xa0e8ffff, REGISTRY_ARIN }, // 160.231.192.0 - 160.232.255.255 { 0xa0e90000, 0xa0ebffff, REGISTRY_APNIC }, // 160.233.0.0 - 160.235.255.255 { 0xa0ed0000, 0xa0ee0aff, REGISTRY_APNIC }, // 160.237.0.0 - 160.238.10.255 { 0xa0ee0b00, 0xa0ee0bff, REGISTRY_AFRINIC }, // 160.238.11.0 - 160.238.11.255 { 0xa0ee0c00, 0xa0ee14ff, REGISTRY_APNIC }, // 160.238.12.0 - 160.238.20.255 { 0xa0ee1500, 0xa0ee15ff, REGISTRY_RIPENCC }, // 160.238.21.0 - 160.238.21.255 { 0xa0ee1600, 0xa0ee17ff, REGISTRY_ARIN }, // 160.238.22.0 - 160.238.23.255 { 0xa0ee1800, 0xa0ee1dff, REGISTRY_LACNIC }, // 160.238.24.0 - 160.238.29.255 { 0xa0ee1e00, 0xa0ee1eff, REGISTRY_APNIC }, // 160.238.30.0 - 160.238.30.255 { 0xa0ee1f00, 0xa0ee1fff, REGISTRY_ARIN }, // 160.238.31.0 - 160.238.31.255 { 0xa0ee2000, 0xa0ee21ff, REGISTRY_APNIC }, // 160.238.32.0 - 160.238.33.255 { 0xa0ee2400, 0xa0ee27ff, REGISTRY_RIPENCC }, // 160.238.36.0 - 160.238.39.255 { 0xa0ee2800, 0xa0ee28ff, REGISTRY_APNIC }, // 160.238.40.0 - 160.238.40.255 { 0xa0ee2900, 0xa0ee2fff, REGISTRY_ARIN }, // 160.238.41.0 - 160.238.47.255 { 0xa0ee3000, 0xa0ee32ff, REGISTRY_AFRINIC }, // 160.238.48.0 - 160.238.50.255 { 0xa0ee3300, 0xa0ee33ff, REGISTRY_APNIC }, // 160.238.51.0 - 160.238.51.255 { 0xa0ee3400, 0xa0ee37ff, REGISTRY_RIPENCC }, // 160.238.52.0 - 160.238.55.255 { 0xa0ee3800, 0xa0ee38ff, REGISTRY_APNIC }, // 160.238.56.0 - 160.238.56.255 { 0xa0ee3900, 0xa0ee39ff, REGISTRY_AFRINIC }, // 160.238.57.0 - 160.238.57.255 { 0xa0ee3c00, 0xa0ee3dff, REGISTRY_RIPENCC }, // 160.238.60.0 - 160.238.61.255 { 0xa0ee3e00, 0xa0ee3eff, REGISTRY_APNIC }, // 160.238.62.0 - 160.238.62.255 { 0xa0ee3f00, 0xa0ee3fff, REGISTRY_LACNIC }, // 160.238.63.0 - 160.238.63.255 { 0xa0ee4000, 0xa0ee43ff, REGISTRY_APNIC }, // 160.238.64.0 - 160.238.67.255 { 0xa0ee4400, 0xa0ee47ff, REGISTRY_ARIN }, // 160.238.68.0 - 160.238.71.255 { 0xa0ee4800, 0xa0ee5fff, REGISTRY_APNIC }, // 160.238.72.0 - 160.238.95.255 { 0xa0ee6000, 0xa0ee63ff, REGISTRY_RIPENCC }, // 160.238.96.0 - 160.238.99.255 { 0xa0ee6400, 0xa0ee64ff, REGISTRY_APNIC }, // 160.238.100.0 - 160.238.100.255 { 0xa0ee6500, 0xa0ee65ff, REGISTRY_AFRINIC }, // 160.238.101.0 - 160.238.101.255 { 0xa0ee6600, 0xa0ee67ff, REGISTRY_ARIN }, // 160.238.102.0 - 160.238.103.255 { 0xa0ee6800, 0xa0ee6fff, REGISTRY_LACNIC }, // 160.238.104.0 - 160.238.111.255 { 0xa0ee7000, 0xa0ee7fff, REGISTRY_RIPENCC }, // 160.238.112.0 - 160.238.127.255 { 0xa0ee8000, 0xa0ee8bff, REGISTRY_LACNIC }, // 160.238.128.0 - 160.238.139.255 { 0xa0ee9000, 0xa0eeffff, REGISTRY_LACNIC }, // 160.238.144.0 - 160.238.255.255 { 0xa0ef0000, 0xa0f1ffff, REGISTRY_APNIC }, // 160.239.0.0 - 160.241.255.255 { 0xa0f20000, 0xa0f2ffff, REGISTRY_AFRINIC }, // 160.242.0.0 - 160.242.255.255 { 0xa0f30000, 0xa0f9ffff, REGISTRY_APNIC }, // 160.243.0.0 - 160.249.255.255 { 0xa0fb0000, 0xa0fcffff, REGISTRY_APNIC }, // 160.251.0.0 - 160.252.255.255 { 0xa0fd0000, 0xa0feffff, REGISTRY_ARIN }, // 160.253.0.0 - 160.254.255.255 { 0xa1000000, 0xa100ffff, REGISTRY_LACNIC }, // 161.0.0.0 - 161.0.255.255 { 0xa1010000, 0xa101ffff, REGISTRY_ARIN }, // 161.1.0.0 - 161.1.255.255 { 0xa1020000, 0xa105ffff, REGISTRY_RIPENCC }, // 161.2.0.0 - 161.5.255.255 { 0xa1060000, 0xa107ffff, REGISTRY_ARIN }, // 161.6.0.0 - 161.7.255.255 { 0xa1080000, 0xa109ffff, REGISTRY_RIPENCC }, // 161.8.0.0 - 161.9.255.255 { 0xa10a0000, 0xa10affff, REGISTRY_LACNIC }, // 161.10.0.0 - 161.10.255.255 { 0xa10b0000, 0xa10bffff, REGISTRY_ARIN }, // 161.11.0.0 - 161.11.255.255 { 0xa10c0000, 0xa10cffff, REGISTRY_RIPENCC }, // 161.12.0.0 - 161.12.255.255 { 0xa10d0000, 0xa110ffff, REGISTRY_ARIN }, // 161.13.0.0 - 161.16.255.255 { 0xa1110000, 0xa111ffff, REGISTRY_RIPENCC }, // 161.17.0.0 - 161.17.255.255 { 0xa1120000, 0xa112ffff, REGISTRY_LACNIC }, // 161.18.0.0 - 161.18.255.255 { 0xa1130000, 0xa113ffff, REGISTRY_ARIN }, // 161.19.0.0 - 161.19.255.255 { 0xa1140000, 0xa114ffff, REGISTRY_RIPENCC }, // 161.20.0.0 - 161.20.255.255 { 0xa1150000, 0xa115ffff, REGISTRY_ARIN }, // 161.21.0.0 - 161.21.255.255 { 0xa1160000, 0xa11627ff, REGISTRY_LACNIC }, // 161.22.0.0 - 161.22.39.255 { 0xa1162800, 0xa1162fff, REGISTRY_RIPENCC }, // 161.22.40.0 - 161.22.47.255 { 0xa1163000, 0xa116ffff, REGISTRY_LACNIC }, // 161.22.48.0 - 161.22.255.255 { 0xa1170000, 0xa117ffff, REGISTRY_RIPENCC }, // 161.23.0.0 - 161.23.255.255 { 0xa1180000, 0xa119ffff, REGISTRY_LACNIC }, // 161.24.0.0 - 161.25.255.255 { 0xa11a0000, 0xa11affff, REGISTRY_ARIN }, // 161.26.0.0 - 161.26.255.255 { 0xa11b0000, 0xa11bffff, REGISTRY_RIPENCC }, // 161.27.0.0 - 161.27.255.255 { 0xa11c0000, 0xa11cffff, REGISTRY_ARIN }, // 161.28.0.0 - 161.28.255.255 { 0xa11d0000, 0xa11dffff, REGISTRY_APNIC }, // 161.29.0.0 - 161.29.255.255 { 0xa11e0000, 0xa11effff, REGISTRY_RIPENCC }, // 161.30.0.0 - 161.30.255.255 { 0xa11f0000, 0xa1203fff, REGISTRY_ARIN }, // 161.31.0.0 - 161.32.63.255 { 0xa1204000, 0xa120ffff, REGISTRY_APNIC }, // 161.32.64.0 - 161.32.255.255 { 0xa1210000, 0xa121ffff, REGISTRY_ARIN }, // 161.33.0.0 - 161.33.255.255 { 0xa1220000, 0xa122ffff, REGISTRY_APNIC }, // 161.34.0.0 - 161.34.255.255 { 0xa1230000, 0xa124ffff, REGISTRY_ARIN }, // 161.35.0.0 - 161.36.255.255 { 0xa1250000, 0xa125ffff, REGISTRY_RIPENCC }, // 161.37.0.0 - 161.37.255.255 { 0xa1260000, 0xa12607ff, REGISTRY_RIPENCC }, // 161.38.0.0 - 161.38.7.255 { 0xa1260800, 0xa12627ff, REGISTRY_ARIN }, // 161.38.8.0 - 161.38.39.255 { 0xa1262800, 0xa12629ff, REGISTRY_LACNIC }, // 161.38.40.0 - 161.38.41.255 { 0xa1262a00, 0xa1263fff, REGISTRY_ARIN }, // 161.38.42.0 - 161.38.63.255 { 0xa1264000, 0xa1267fff, REGISTRY_RIPENCC }, // 161.38.64.0 - 161.38.127.255 { 0xa1268000, 0xa126d7ff, REGISTRY_ARIN }, // 161.38.128.0 - 161.38.215.255 { 0xa126d800, 0xa126d9ff, REGISTRY_APNIC }, // 161.38.216.0 - 161.38.217.255 { 0xa126da00, 0xa128ffff, REGISTRY_ARIN }, // 161.38.218.0 - 161.40.255.255 { 0xa1290000, 0xa12affff, REGISTRY_RIPENCC }, // 161.41.0.0 - 161.42.255.255 { 0xa12b0000, 0xa12bffff, REGISTRY_APNIC }, // 161.43.0.0 - 161.43.255.255 { 0xa12c0000, 0xa12fffff, REGISTRY_ARIN }, // 161.44.0.0 - 161.47.255.255 { 0xa1300000, 0xa130ffff, REGISTRY_RIPENCC }, // 161.48.0.0 - 161.48.255.255 { 0xa1310000, 0xa131bbff, REGISTRY_APNIC }, // 161.49.0.0 - 161.49.187.255 { 0xa131bc00, 0xa131bfff, REGISTRY_ARIN }, // 161.49.188.0 - 161.49.191.255 { 0xa131c000, 0xa131e7ff, REGISTRY_APNIC }, // 161.49.192.0 - 161.49.231.255 { 0xa131e800, 0xa131ffff, REGISTRY_ARIN }, // 161.49.232.0 - 161.49.255.255 { 0xa1320000, 0xa132ffff, REGISTRY_APNIC }, // 161.50.0.0 - 161.50.255.255 { 0xa1330000, 0xa1333fff, REGISTRY_ARIN }, // 161.51.0.0 - 161.51.63.255 { 0xa1334000, 0xa1335fff, REGISTRY_RIPENCC }, // 161.51.64.0 - 161.51.95.255 { 0xa1336000, 0xa13364ff, REGISTRY_ARIN }, // 161.51.96.0 - 161.51.100.255 { 0xa1336500, 0xa13365ff, REGISTRY_RIPENCC }, // 161.51.101.0 - 161.51.101.255 { 0xa1336600, 0xa1337fff, REGISTRY_ARIN }, // 161.51.102.0 - 161.51.127.255 { 0xa1338000, 0xa133bfff, REGISTRY_RIPENCC }, // 161.51.128.0 - 161.51.191.255 { 0xa133c000, 0xa133efff, REGISTRY_ARIN }, // 161.51.192.0 - 161.51.239.255 { 0xa133f000, 0xa133f7ff, REGISTRY_RIPENCC }, // 161.51.240.0 - 161.51.247.255 { 0xa133f800, 0xa133feff, REGISTRY_ARIN }, // 161.51.248.0 - 161.51.254.255 { 0xa133ff00, 0xa134ffff, REGISTRY_RIPENCC }, // 161.51.255.0 - 161.52.255.255 { 0xa1350000, 0xa135ffff, REGISTRY_RIPENCC }, // 161.53.0.0 - 161.53.255.255 { 0xa1360000, 0xa136ffff, REGISTRY_RIPENCC }, // 161.54.0.0 - 161.54.255.255 { 0xa1370000, 0xa137ffff, REGISTRY_ARIN }, // 161.55.0.0 - 161.55.255.255 { 0xa1380000, 0xa138ffff, REGISTRY_LACNIC }, // 161.56.0.0 - 161.56.255.255 { 0xa1390000, 0xa13affff, REGISTRY_ARIN }, // 161.57.0.0 - 161.58.255.255 { 0xa13b0000, 0xa13bffff, REGISTRY_RIPENCC }, // 161.59.0.0 - 161.59.255.255 { 0xa13c0000, 0xa13dffff, REGISTRY_ARIN }, // 161.60.0.0 - 161.61.255.255 { 0xa13e0000, 0xa13effff, REGISTRY_RIPENCC }, // 161.62.0.0 - 161.62.255.255 { 0xa13f0000, 0xa13fffff, REGISTRY_ARIN }, // 161.63.0.0 - 161.63.255.255 { 0xa1400000, 0xa142ffff, REGISTRY_APNIC }, // 161.64.0.0 - 161.66.255.255 { 0xa1430000, 0xa143ffff, REGISTRY_RIPENCC }, // 161.67.0.0 - 161.67.255.255 { 0xa1440000, 0xa145ffff, REGISTRY_ARIN }, // 161.68.0.0 - 161.69.255.255 { 0xa1460000, 0xa146ffff, REGISTRY_RIPENCC }, // 161.70.0.0 - 161.70.255.255 { 0xa1470000, 0xa14affff, REGISTRY_RIPENCC }, // 161.71.0.0 - 161.74.255.255 { 0xa14b0000, 0xa14bffff, REGISTRY_APNIC }, // 161.75.0.0 - 161.75.255.255 { 0xa14c0000, 0xa14cffff, REGISTRY_RIPENCC }, // 161.76.0.0 - 161.76.255.255 { 0xa14d0000, 0xa14dffff, REGISTRY_ARIN }, // 161.77.0.0 - 161.77.255.255 { 0xa14e0000, 0xa14effff, REGISTRY_RIPENCC }, // 161.78.0.0 - 161.78.255.255 { 0xa14f0000, 0xa14fffff, REGISTRY_LACNIC }, // 161.79.0.0 - 161.79.255.255 { 0xa1500000, 0xa150ffff, REGISTRY_ARIN }, // 161.80.0.0 - 161.80.255.255 { 0xa1510000, 0xa151ffff, REGISTRY_APNIC }, // 161.81.0.0 - 161.81.255.255 { 0xa1520000, 0xa1527fff, REGISTRY_ARIN }, // 161.82.0.0 - 161.82.127.255 { 0xa1528000, 0xa152ffff, REGISTRY_APNIC }, // 161.82.128.0 - 161.82.255.255 { 0xa1530000, 0xa15cffff, REGISTRY_RIPENCC }, // 161.83.0.0 - 161.92.255.255 { 0xa15d0000, 0xa160ffff, REGISTRY_APNIC }, // 161.93.0.0 - 161.96.255.255 { 0xa1610000, 0xa1613fff, REGISTRY_ARIN }, // 161.97.0.0 - 161.97.63.255 { 0xa1614000, 0xa161bdff, REGISTRY_RIPENCC }, // 161.97.64.0 - 161.97.189.255 { 0xa161be00, 0xa167ffff, REGISTRY_ARIN }, // 161.97.190.0 - 161.103.255.255 { 0xa1680000, 0xa16affff, REGISTRY_RIPENCC }, // 161.104.0.0 - 161.106.255.255 { 0xa16b0000, 0xa16dffff, REGISTRY_ARIN }, // 161.107.0.0 - 161.109.255.255 { 0xa16e0000, 0xa170ffff, REGISTRY_RIPENCC }, // 161.110.0.0 - 161.112.255.255 { 0xa1710000, 0xa173ffff, REGISTRY_ARIN }, // 161.113.0.0 - 161.115.255.255 { 0xa1740000, 0xa174ffff, REGISTRY_RIPENCC }, // 161.116.0.0 - 161.116.255.255 { 0xa1750000, 0xa176ffff, REGISTRY_APNIC }, // 161.117.0.0 - 161.118.255.255 { 0xa1770000, 0xa177ffff, REGISTRY_ARIN }, // 161.119.0.0 - 161.119.255.255 { 0xa1780000, 0xa178ffff, REGISTRY_APNIC }, // 161.120.0.0 - 161.120.255.255 { 0xa1790000, 0xa179ffff, REGISTRY_ARIN }, // 161.121.0.0 - 161.121.255.255 { 0xa17a0000, 0xa17affff, REGISTRY_APNIC }, // 161.122.0.0 - 161.122.255.255 { 0xa17b0000, 0xa17bffff, REGISTRY_AFRINIC }, // 161.123.0.0 - 161.123.255.255 { 0xa17c0000, 0xa17dffff, REGISTRY_ARIN }, // 161.124.0.0 - 161.125.255.255 { 0xa17e0000, 0xa17effff, REGISTRY_APNIC }, // 161.126.0.0 - 161.126.255.255 { 0xa17f0000, 0xa182ffff, REGISTRY_ARIN }, // 161.127.0.0 - 161.130.255.255 { 0xa1830000, 0xa184ffff, REGISTRY_LACNIC }, // 161.131.0.0 - 161.132.255.255 { 0xa1850000, 0xa185ffff, REGISTRY_ARIN }, // 161.133.0.0 - 161.133.255.255 { 0xa1860000, 0xa186ffff, REGISTRY_RIPENCC }, // 161.134.0.0 - 161.134.255.255 { 0xa1870000, 0xa189ffff, REGISTRY_ARIN }, // 161.135.0.0 - 161.137.255.255 { 0xa18a0000, 0xa18affff, REGISTRY_LACNIC }, // 161.138.0.0 - 161.138.255.255 { 0xa18b0000, 0xa18bffff, REGISTRY_APNIC }, // 161.139.0.0 - 161.139.255.255 { 0xa18c0000, 0xa18cffff, REGISTRY_LACNIC }, // 161.140.0.0 - 161.140.255.255 { 0xa18d0000, 0xa18dffff, REGISTRY_ARIN }, // 161.141.0.0 - 161.141.255.255 { 0xa18e0000, 0xa18fffff, REGISTRY_APNIC }, // 161.142.0.0 - 161.143.255.255 { 0xa1900000, 0xa191ffff, REGISTRY_ARIN }, // 161.144.0.0 - 161.145.255.255 { 0xa1920000, 0xa192ffff, REGISTRY_APNIC }, // 161.146.0.0 - 161.146.255.255 { 0xa1930000, 0xa193ffff, REGISTRY_RIPENCC }, // 161.147.0.0 - 161.147.255.255 { 0xa1940000, 0xa194ffff, REGISTRY_LACNIC }, // 161.148.0.0 - 161.148.255.255 { 0xa1950000, 0xa197ffff, REGISTRY_ARIN }, // 161.149.0.0 - 161.151.255.255 { 0xa1980000, 0xa198ffff, REGISTRY_APNIC }, // 161.152.0.0 - 161.152.255.255 { 0xa1990000, 0xa19bffff, REGISTRY_ARIN }, // 161.153.0.0 - 161.155.255.255 { 0xa19c0000, 0xa19cffff, REGISTRY_RIPENCC }, // 161.156.0.0 - 161.156.255.255 { 0xa19d0000, 0xa19dffff, REGISTRY_ARIN }, // 161.157.0.0 - 161.157.255.255 { 0xa19e0000, 0xa19effff, REGISTRY_RIPENCC }, // 161.158.0.0 - 161.158.255.255 { 0xa19f0000, 0xa1bcffff, REGISTRY_ARIN }, // 161.159.0.0 - 161.188.255.255 { 0xa1bd0000, 0xa1bdffff, REGISTRY_APNIC }, // 161.189.0.0 - 161.189.255.255 { 0xa1be0000, 0xa1beffff, REGISTRY_LACNIC }, // 161.190.0.0 - 161.190.255.255 { 0xa1bf0000, 0xa1c3ffff, REGISTRY_ARIN }, // 161.191.0.0 - 161.195.255.255 { 0xa1c40000, 0xa1c4ffff, REGISTRY_LACNIC }, // 161.196.0.0 - 161.196.255.255 { 0xa1c50000, 0xa1c71eff, REGISTRY_ARIN }, // 161.197.0.0 - 161.199.30.255 { 0xa1c71f00, 0xa1c71fff, REGISTRY_RIPENCC }, // 161.199.31.0 - 161.199.31.255 { 0xa1c72000, 0xa1c7bfff, REGISTRY_ARIN }, // 161.199.32.0 - 161.199.191.255 { 0xa1c7c000, 0xa1c7c3ff, REGISTRY_RIPENCC }, // 161.199.192.0 - 161.199.195.255 { 0xa1c7c400, 0xa1c7ffff, REGISTRY_ARIN }, // 161.199.196.0 - 161.199.255.255 { 0xa1c80000, 0xa1c8ffff, REGISTRY_APNIC }, // 161.200.0.0 - 161.200.255.255 { 0xa1c90000, 0xa1c9ffff, REGISTRY_ARIN }, // 161.201.0.0 - 161.201.255.255 { 0xa1ca0000, 0xa1caffff, REGISTRY_RIPENCC }, // 161.202.0.0 - 161.202.255.255 { 0xa1cb0000, 0xa1ceffff, REGISTRY_ARIN }, // 161.203.0.0 - 161.206.255.255 { 0xa1cf0000, 0xa1cfffff, REGISTRY_APNIC }, // 161.207.0.0 - 161.207.255.255 { 0xa1d00000, 0xa1d3ffff, REGISTRY_ARIN }, // 161.208.0.0 - 161.211.255.255 { 0xa1d40000, 0xa1d4ffff, REGISTRY_LACNIC }, // 161.212.0.0 - 161.212.255.255 { 0xa1d50000, 0xa1d9ffff, REGISTRY_ARIN }, // 161.213.0.0 - 161.217.255.255 { 0xa1da0000, 0xa1daffff, REGISTRY_RIPENCC }, // 161.218.0.0 - 161.218.255.255 { 0xa1db0000, 0xa1e4ffff, REGISTRY_ARIN }, // 161.219.0.0 - 161.228.255.255 { 0xa1e50000, 0xa1e5ffff, REGISTRY_APNIC }, // 161.229.0.0 - 161.229.255.255 { 0xa1e60000, 0xa1e6ffff, REGISTRY_RIPENCC }, // 161.230.0.0 - 161.230.255.255 { 0xa1e70000, 0xa1e9ffff, REGISTRY_ARIN }, // 161.231.0.0 - 161.233.255.255 { 0xa1ea0000, 0xa1eaffff, REGISTRY_LACNIC }, // 161.234.0.0 - 161.234.255.255 { 0xa1eb0000, 0xa1edffff, REGISTRY_ARIN }, // 161.235.0.0 - 161.237.255.255 { 0xa1ee0000, 0xa1eeffff, REGISTRY_LACNIC }, // 161.238.0.0 - 161.238.255.255 { 0xa1ef0000, 0xa1f5ffff, REGISTRY_ARIN }, // 161.239.0.0 - 161.245.255.255 { 0xa1f60000, 0xa1f6ffff, REGISTRY_APNIC }, // 161.246.0.0 - 161.246.255.255 { 0xa1f70000, 0xa1f7ffff, REGISTRY_ARIN }, // 161.247.0.0 - 161.247.255.255 { 0xa1f90000, 0xa1faffff, REGISTRY_ARIN }, // 161.249.0.0 - 161.250.255.255 { 0xa1fb0000, 0xa1fbffff, REGISTRY_RIPENCC }, // 161.251.0.0 - 161.251.255.255 { 0xa1fc0000, 0xa1fcffff, REGISTRY_RIPENCC }, // 161.252.0.0 - 161.252.255.255 { 0xa1fd0000, 0xa1feffff, REGISTRY_ARIN }, // 161.253.0.0 - 161.254.255.255 { 0xa1ff0000, 0xa1ffffff, REGISTRY_LACNIC }, // 161.255.0.0 - 161.255.255.255 { 0xa2000000, 0xa203ffff, REGISTRY_ARIN }, // 162.0.0.0 - 162.3.255.255 { 0xa2050000, 0xa20affff, REGISTRY_ARIN }, // 162.5.0.0 - 162.10.255.255 { 0xa20b0000, 0xa20bffff, REGISTRY_RIPENCC }, // 162.11.0.0 - 162.11.255.255 { 0xa20c0000, 0xa20cc3ff, REGISTRY_ARIN }, // 162.12.0.0 - 162.12.195.255 { 0xa20cc400, 0xa20cc7ff, REGISTRY_LACNIC }, // 162.12.196.0 - 162.12.199.255 { 0xa20cc800, 0xa20ccfff, REGISTRY_RIPENCC }, // 162.12.200.0 - 162.12.207.255 { 0xa20cd000, 0xa20cd7ff, REGISTRY_APNIC }, // 162.12.208.0 - 162.12.215.255 { 0xa20cd800, 0xa20cefff, REGISTRY_ARIN }, // 162.12.216.0 - 162.12.239.255 { 0xa20cf000, 0xa20cf7ff, REGISTRY_APNIC }, // 162.12.240.0 - 162.12.247.255 { 0xa20cf800, 0xa20cffff, REGISTRY_ARIN }, // 162.12.248.0 - 162.12.255.255 { 0xa20d0000, 0xa20dffff, REGISTRY_RIPENCC }, // 162.13.0.0 - 162.13.255.255 { 0xa20e0000, 0xa20effff, REGISTRY_APNIC }, // 162.14.0.0 - 162.14.255.255 { 0xa20f0000, 0xa212ffff, REGISTRY_ARIN }, // 162.15.0.0 - 162.18.255.255 { 0xa2130000, 0xa213ffff, REGISTRY_RIPENCC }, // 162.19.0.0 - 162.19.255.255 { 0xa2140000, 0xa214ffff, REGISTRY_ARIN }, // 162.20.0.0 - 162.20.255.255 { 0xa2150000, 0xa215ffff, REGISTRY_RIPENCC }, // 162.21.0.0 - 162.21.255.255 { 0xa2160000, 0xa216ffff, REGISTRY_ARIN }, // 162.22.0.0 - 162.22.255.255 { 0xa2170000, 0xa217ffff, REGISTRY_RIPENCC }, // 162.23.0.0 - 162.23.255.255 { 0xa2180000, 0xa218ffff, REGISTRY_ARIN }, // 162.24.0.0 - 162.24.255.255 { 0xa2190000, 0xa21affff, REGISTRY_RIPENCC }, // 162.25.0.0 - 162.26.255.255 { 0xa21b0000, 0xa21b9fff, REGISTRY_ARIN }, // 162.27.0.0 - 162.27.159.255 { 0xa21ba000, 0xa21ba2ff, REGISTRY_RIPENCC }, // 162.27.160.0 - 162.27.162.255 { 0xa21ba300, 0xa2217fff, REGISTRY_ARIN }, // 162.27.163.0 - 162.33.127.255 { 0xa2218000, 0xa2219fff, REGISTRY_RIPENCC }, // 162.33.128.0 - 162.33.159.255 { 0xa221a000, 0xa221c7ff, REGISTRY_ARIN }, // 162.33.160.0 - 162.33.199.255 { 0xa221c800, 0xa221d7ff, REGISTRY_RIPENCC }, // 162.33.200.0 - 162.33.215.255 { 0xa221d800, 0xa221e3ff, REGISTRY_ARIN }, // 162.33.216.0 - 162.33.227.255 { 0xa221e400, 0xa221e5ff, REGISTRY_RIPENCC }, // 162.33.228.0 - 162.33.229.255 { 0xa221e600, 0xa225ffff, REGISTRY_ARIN }, // 162.33.230.0 - 162.37.255.255 { 0xa2260000, 0xa226ffff, REGISTRY_RIPENCC }, // 162.38.0.0 - 162.38.255.255 { 0xa2270000, 0xa22affff, REGISTRY_ARIN }, // 162.39.0.0 - 162.42.255.255 { 0xa22b0000, 0xa22b7fff, REGISTRY_APNIC }, // 162.43.0.0 - 162.43.127.255 { 0xa22b8000, 0xa22bbfff, REGISTRY_ARIN }, // 162.43.128.0 - 162.43.191.255 { 0xa22bc000, 0xa22bc3ff, REGISTRY_RIPENCC }, // 162.43.192.0 - 162.43.195.255 { 0xa22bc400, 0xa236ffff, REGISTRY_ARIN }, // 162.43.196.0 - 162.54.255.255 { 0xa2370000, 0xa237ffff, REGISTRY_RIPENCC }, // 162.55.0.0 - 162.55.255.255 { 0xa2380000, 0xa238ffff, REGISTRY_APNIC }, // 162.56.0.0 - 162.56.255.255 { 0xa2390000, 0xa23dffff, REGISTRY_ARIN }, // 162.57.0.0 - 162.61.255.255 { 0xa23e0000, 0xa23effff, REGISTRY_APNIC }, // 162.62.0.0 - 162.62.255.255 { 0xa23f0000, 0xa255ffff, REGISTRY_ARIN }, // 162.63.0.0 - 162.85.255.255 { 0xa2560000, 0xa256ffff, REGISTRY_RIPENCC }, // 162.86.0.0 - 162.86.255.255 { 0xa2570000, 0xa268ffff, REGISTRY_ARIN }, // 162.87.0.0 - 162.104.255.255 { 0xa2690000, 0xa269ffff, REGISTRY_APNIC }, // 162.105.0.0 - 162.105.255.255 { 0xa26a0000, 0xa26fffff, REGISTRY_ARIN }, // 162.106.0.0 - 162.111.255.255 { 0xa2700000, 0xa270ffff, REGISTRY_APNIC }, // 162.112.0.0 - 162.112.255.255 { 0xa2710000, 0xa27814ff, REGISTRY_ARIN }, // 162.113.0.0 - 162.120.20.255 { 0xa2781500, 0xa27815ff, REGISTRY_RIPENCC }, // 162.120.21.0 - 162.120.21.255 { 0xa2781600, 0xa27843ff, REGISTRY_ARIN }, // 162.120.22.0 - 162.120.67.255 { 0xa2784400, 0xa27847ff, REGISTRY_RIPENCC }, // 162.120.68.0 - 162.120.71.255 { 0xa2784800, 0xa279ffff, REGISTRY_ARIN }, // 162.120.72.0 - 162.121.255.255 { 0xa27a0000, 0xa27affff, REGISTRY_LACNIC }, // 162.122.0.0 - 162.122.255.255 { 0xa27b0000, 0xa284ffff, REGISTRY_ARIN }, // 162.123.0.0 - 162.132.255.255 { 0xa2850000, 0xa285ffff, REGISTRY_RIPENCC }, // 162.133.0.0 - 162.133.255.255 { 0xa2860000, 0xa28e7fff, REGISTRY_ARIN }, // 162.134.0.0 - 162.142.127.255 { 0xa28e8000, 0xa28effff, REGISTRY_RIPENCC }, // 162.142.128.0 - 162.142.255.255 { 0xa28f0000, 0xa290ffff, REGISTRY_ARIN }, // 162.143.0.0 - 162.144.255.255 { 0xa2910000, 0xa293ffff, REGISTRY_APNIC }, // 162.145.0.0 - 162.147.255.255 { 0xa2940000, 0xa2d00fff, REGISTRY_ARIN }, // 162.148.0.0 - 162.208.15.255 { 0xa2d01000, 0xa2d010ff, REGISTRY_RIPENCC }, // 162.208.16.0 - 162.208.16.255 { 0xa2d01100, 0xa2d033ff, REGISTRY_ARIN }, // 162.208.17.0 - 162.208.51.255 { 0xa2d03400, 0xa2d037ff, REGISTRY_RIPENCC }, // 162.208.52.0 - 162.208.55.255 { 0xa2d03800, 0xa2d367ff, REGISTRY_ARIN }, // 162.208.56.0 - 162.211.103.255 { 0xa2d36800, 0xa2d36bff, REGISTRY_RIPENCC }, // 162.211.104.0 - 162.211.107.255 { 0xa2d36c00, 0xa2d4a7ff, REGISTRY_ARIN }, // 162.211.108.0 - 162.212.167.255 { 0xa2d4a800, 0xa2d4afff, REGISTRY_RIPENCC }, // 162.212.168.0 - 162.212.175.255 { 0xa2d4b000, 0xa2d53fff, REGISTRY_ARIN }, // 162.212.176.0 - 162.213.63.255 { 0xa2d54000, 0xa2d543ff, REGISTRY_RIPENCC }, // 162.213.64.0 - 162.213.67.255 { 0xa2d54400, 0xa2d59fff, REGISTRY_ARIN }, // 162.213.68.0 - 162.213.159.255 { 0xa2d5a000, 0xa2d5a3ff, REGISTRY_RIPENCC }, // 162.213.160.0 - 162.213.163.255 { 0xa2d5a400, 0xa2d889ff, REGISTRY_ARIN }, // 162.213.164.0 - 162.216.137.255 { 0xa2d88a00, 0xa2d88bff, REGISTRY_RIPENCC }, // 162.216.138.0 - 162.216.139.255 { 0xa2d88c00, 0xa2d88fff, REGISTRY_APNIC }, // 162.216.140.0 - 162.216.143.255 { 0xa2d89000, 0xa2d9f7ff, REGISTRY_ARIN }, // 162.216.144.0 - 162.217.247.255 { 0xa2d9f800, 0xa2d9fbff, REGISTRY_RIPENCC }, // 162.217.248.0 - 162.217.251.255 { 0xa2d9fc00, 0xa2da37ff, REGISTRY_ARIN }, // 162.217.252.0 - 162.218.55.255 { 0xa2da3800, 0xa2da3fff, REGISTRY_RIPENCC }, // 162.218.56.0 - 162.218.63.255 { 0xa2da4000, 0xa2da57ff, REGISTRY_ARIN }, // 162.218.64.0 - 162.218.87.255 { 0xa2da5800, 0xa2da5fff, REGISTRY_RIPENCC }, // 162.218.88.0 - 162.218.95.255 { 0xa2da6000, 0xa2da9cff, REGISTRY_ARIN }, // 162.218.96.0 - 162.218.156.255 { 0xa2da9d00, 0xa2da9eff, REGISTRY_RIPENCC }, // 162.218.157.0 - 162.218.158.255 { 0xa2da9f00, 0xa2daafff, REGISTRY_ARIN }, // 162.218.159.0 - 162.218.175.255 { 0xa2dab000, 0xa2dab3ff, REGISTRY_RIPENCC }, // 162.218.176.0 - 162.218.179.255 { 0xa2dab400, 0xa2db1fff, REGISTRY_ARIN }, // 162.218.180.0 - 162.219.31.255 { 0xa2db2000, 0xa2db27ff, REGISTRY_APNIC }, // 162.219.32.0 - 162.219.39.255 { 0xa2db2800, 0xa2db4fff, REGISTRY_ARIN }, // 162.219.40.0 - 162.219.79.255 { 0xa2db5000, 0xa2db57ff, REGISTRY_APNIC }, // 162.219.80.0 - 162.219.87.255 { 0xa2db5800, 0xa2dcefff, REGISTRY_ARIN }, // 162.219.88.0 - 162.220.239.255 { 0xa2dcf000, 0xa2dcf7ff, REGISTRY_RIPENCC }, // 162.220.240.0 - 162.220.247.255 { 0xa2dcf800, 0xa2dd4bff, REGISTRY_ARIN }, // 162.220.248.0 - 162.221.75.255 { 0xa2dd4c00, 0xa2dd4fff, REGISTRY_APNIC }, // 162.221.76.0 - 162.221.79.255 { 0xa2dd5000, 0xa2de57ff, REGISTRY_ARIN }, // 162.221.80.0 - 162.222.87.255 { 0xa2de5800, 0xa2de5aff, REGISTRY_RIPENCC }, // 162.222.88.0 - 162.222.90.255 { 0xa2de5b00, 0xa2deabff, REGISTRY_ARIN }, // 162.222.91.0 - 162.222.171.255 { 0xa2deac00, 0xa2deafff, REGISTRY_APNIC }, // 162.222.172.0 - 162.222.175.255 { 0xa2deb000, 0xa2dfa7ff, REGISTRY_ARIN }, // 162.222.176.0 - 162.223.167.255 { 0xa2dfa800, 0xa2dfafff, REGISTRY_APNIC }, // 162.223.168.0 - 162.223.175.255 { 0xa2dfb000, 0xa2f433ff, REGISTRY_ARIN }, // 162.223.176.0 - 162.244.51.255 { 0xa2f43400, 0xa2f437ff, REGISTRY_RIPENCC }, // 162.244.52.0 - 162.244.55.255 { 0xa2f43800, 0xa2f57bff, REGISTRY_ARIN }, // 162.244.56.0 - 162.245.123.255 { 0xa2f57c00, 0xa2f57fff, REGISTRY_APNIC }, // 162.245.124.0 - 162.245.127.255 { 0xa2f58000, 0xa2f5cbff, REGISTRY_ARIN }, // 162.245.128.0 - 162.245.203.255 { 0xa2f5cc00, 0xa2f5cfff, REGISTRY_RIPENCC }, // 162.245.204.0 - 162.245.207.255 { 0xa2f5d000, 0xa2f6ffff, REGISTRY_ARIN }, // 162.245.208.0 - 162.246.255.255 { 0xa2f70000, 0xa2f707ff, REGISTRY_APNIC }, // 162.247.0.0 - 162.247.7.255 { 0xa2f70800, 0xa2f8c3ff, REGISTRY_ARIN }, // 162.247.8.0 - 162.248.195.255 { 0xa2f8c400, 0xa2f8c7ff, REGISTRY_RIPENCC }, // 162.248.196.0 - 162.248.199.255 { 0xa2f8c800, 0xa2f93fff, REGISTRY_ARIN }, // 162.248.200.0 - 162.249.63.255 { 0xa2f94000, 0xa2f947ff, REGISTRY_RIPENCC }, // 162.249.64.0 - 162.249.71.255 { 0xa2f94800, 0xa2f976ff, REGISTRY_ARIN }, // 162.249.72.0 - 162.249.118.255 { 0xa2f97700, 0xa2f977ff, REGISTRY_APNIC }, // 162.249.119.0 - 162.249.119.255 { 0xa2f97800, 0xa2fad7ff, REGISTRY_ARIN }, // 162.249.120.0 - 162.250.215.255 { 0xa2fad800, 0xa2fadbff, REGISTRY_RIPENCC }, // 162.250.216.0 - 162.250.219.255 { 0xa2fadc00, 0xa2fb1fff, REGISTRY_ARIN }, // 162.250.220.0 - 162.251.31.255 { 0xa2fb2000, 0xa2fb27ff, REGISTRY_RIPENCC }, // 162.251.32.0 - 162.251.39.255 { 0xa2fb2800, 0xa2fd0fff, REGISTRY_ARIN }, // 162.251.40.0 - 162.253.15.255 { 0xa2fd1000, 0xa2fd13ff, REGISTRY_APNIC }, // 162.253.16.0 - 162.253.19.255 { 0xa2fd1400, 0xa2ff2fff, REGISTRY_ARIN }, // 162.253.20.0 - 162.255.47.255 { 0xa2ff3000, 0xa2ff33ff, REGISTRY_APNIC }, // 162.255.48.0 - 162.255.51.255 { 0xa2ff3400, 0xa2ffc3ff, REGISTRY_ARIN }, // 162.255.52.0 - 162.255.195.255 { 0xa2ffc400, 0xa2ffc7ff, REGISTRY_RIPENCC }, // 162.255.196.0 - 162.255.199.255 { 0xa2ffc800, 0xa2ffffff, REGISTRY_ARIN }, // 162.255.200.0 - 162.255.255.255 { 0xa3000000, 0xa300ffff, REGISTRY_APNIC }, // 163.0.0.0 - 163.0.255.255 { 0xa3010000, 0xa301ffff, REGISTRY_RIPENCC }, // 163.1.0.0 - 163.1.255.255 { 0xa3020000, 0xa304ffff, REGISTRY_ARIN }, // 163.2.0.0 - 163.4.255.255 { 0xa3050000, 0xa305ffff, REGISTRY_RIPENCC }, // 163.5.0.0 - 163.5.255.255 { 0xa3060000, 0xa306ffff, REGISTRY_ARIN }, // 163.6.0.0 - 163.6.255.255 { 0xa3070000, 0xa308ffff, REGISTRY_APNIC }, // 163.7.0.0 - 163.8.255.255 { 0xa3090000, 0xa309ffff, REGISTRY_RIPENCC }, // 163.9.0.0 - 163.9.255.255 { 0xa30a0000, 0xa30affff, REGISTRY_LACNIC }, // 163.10.0.0 - 163.10.255.255 { 0xa30b0000, 0xa30cffff, REGISTRY_ARIN }, // 163.11.0.0 - 163.12.255.255 { 0xa30d0000, 0xa320ffff, REGISTRY_APNIC }, // 163.13.0.0 - 163.32.255.255 { 0xa3210000, 0xa321ffff, REGISTRY_ARIN }, // 163.33.0.0 - 163.33.255.255 { 0xa3220000, 0xa322ffff, REGISTRY_RIPENCC }, // 163.34.0.0 - 163.34.255.255 { 0xa3230000, 0xa329ffff, REGISTRY_ARIN }, // 163.35.0.0 - 163.41.255.255 { 0xa32a0000, 0xa32f15ff, REGISTRY_APNIC }, // 163.42.0.0 - 163.47.21.255 { 0xa32f1700, 0xa32f18ff, REGISTRY_APNIC }, // 163.47.23.0 - 163.47.24.255 { 0xa32f1d00, 0xa32f1dff, REGISTRY_APNIC }, // 163.47.29.0 - 163.47.29.255 { 0xa32f2000, 0xa32f2dff, REGISTRY_APNIC }, // 163.47.32.0 - 163.47.45.255 { 0xa32f2f00, 0xa32f4bff, REGISTRY_APNIC }, // 163.47.47.0 - 163.47.75.255 { 0xa32f4c00, 0xa32f4fff, REGISTRY_ARIN }, // 163.47.76.0 - 163.47.79.255 { 0xa32f5000, 0xa32fb3ff, REGISTRY_APNIC }, // 163.47.80.0 - 163.47.179.255 { 0xa32fb400, 0xa32fb7ff, REGISTRY_ARIN }, // 163.47.180.0 - 163.47.183.255 { 0xa32fb800, 0xa333ffff, REGISTRY_APNIC }, // 163.47.184.0 - 163.51.255.255 { 0xa3350000, 0xa335d3ff, REGISTRY_APNIC }, // 163.53.0.0 - 163.53.211.255 { 0xa335d400, 0xa335d7ff, REGISTRY_ARIN }, // 163.53.212.0 - 163.53.215.255 { 0xa335d800, 0xa33cffff, REGISTRY_APNIC }, // 163.53.216.0 - 163.60.255.255 { 0xa33e0000, 0xa3729eff, REGISTRY_RIPENCC }, // 163.62.0.0 - 163.114.158.255 { 0xa3729f00, 0xa3729fff, REGISTRY_RIPENCC }, // 163.114.159.0 - 163.114.159.255 { 0xa372a000, 0xa375ffff, REGISTRY_RIPENCC }, // 163.114.160.0 - 163.117.255.255 { 0xa3760000, 0xa376ffff, REGISTRY_ARIN }, // 163.118.0.0 - 163.118.255.255 { 0xa3770000, 0xa377ffff, REGISTRY_RIPENCC }, // 163.119.0.0 - 163.119.255.255 { 0xa3780000, 0xa3787fff, REGISTRY_ARIN }, // 163.120.0.0 - 163.120.127.255 { 0xa3788000, 0xa378ffff, REGISTRY_RIPENCC }, // 163.120.128.0 - 163.120.255.255 { 0xa3790000, 0xa379ffff, REGISTRY_AFRINIC }, // 163.121.0.0 - 163.121.255.255 { 0xa37a0000, 0xa37affff, REGISTRY_APNIC }, // 163.122.0.0 - 163.122.255.255 { 0xa37b0000, 0xa37cffff, REGISTRY_ARIN }, // 163.123.0.0 - 163.124.255.255 { 0xa37d0000, 0xa37dffff, REGISTRY_APNIC }, // 163.125.0.0 - 163.125.255.255 { 0xa37e0000, 0xa37effff, REGISTRY_ARIN }, // 163.126.0.0 - 163.126.255.255 { 0xa37f0000, 0xa37fffff, REGISTRY_APNIC }, // 163.127.0.0 - 163.127.255.255 { 0xa3810000, 0xa381ffff, REGISTRY_ARIN }, // 163.129.0.0 - 163.129.255.255 { 0xa3820000, 0xa395ffff, REGISTRY_APNIC }, // 163.130.0.0 - 163.149.255.255 { 0xa3960000, 0xa397ffff, REGISTRY_ARIN }, // 163.150.0.0 - 163.151.255.255 { 0xa3980000, 0xa398ffff, REGISTRY_APNIC }, // 163.152.0.0 - 163.152.255.255 { 0xa3990000, 0xa39bffff, REGISTRY_ARIN }, // 163.153.0.0 - 163.155.255.255 { 0xa39c0000, 0xa3a7ffff, REGISTRY_RIPENCC }, // 163.156.0.0 - 163.167.255.255 { 0xa3a80000, 0xa3a8ffff, REGISTRY_RIPENCC }, // 163.168.0.0 - 163.168.255.255 { 0xa3a90000, 0xa3afffff, REGISTRY_RIPENCC }, // 163.169.0.0 - 163.175.255.255 { 0xa3b00000, 0xa3b0ffff, REGISTRY_ARIN }, // 163.176.0.0 - 163.176.255.255 { 0xa3b10000, 0xa3b1ffff, REGISTRY_APNIC }, // 163.177.0.0 - 163.177.255.255 { 0xa3b20000, 0xa3b2ffff, REGISTRY_LACNIC }, // 163.178.0.0 - 163.178.255.255 { 0xa3b30000, 0xa3b4ffff, REGISTRY_APNIC }, // 163.179.0.0 - 163.180.255.255 { 0xa3b50000, 0xa3bcffff, REGISTRY_ARIN }, // 163.181.0.0 - 163.188.255.255 { 0xa3bd0000, 0xa3bdffff, REGISTRY_APNIC }, // 163.189.0.0 - 163.189.255.255 { 0xa3be0000, 0xa3c2ffff, REGISTRY_ARIN }, // 163.190.0.0 - 163.194.255.255 { 0xa3c30000, 0xa3cbffff, REGISTRY_AFRINIC }, // 163.195.0.0 - 163.203.255.255 { 0xa3cc0000, 0xa3ccffff, REGISTRY_APNIC }, // 163.204.0.0 - 163.204.255.255 { 0xa3cd0000, 0xa3cfffff, REGISTRY_ARIN }, // 163.205.0.0 - 163.207.255.255 { 0xa3d00000, 0xa3d7ffff, REGISTRY_APNIC }, // 163.208.0.0 - 163.215.255.255 { 0xa3d90000, 0xa3deffff, REGISTRY_APNIC }, // 163.217.0.0 - 163.222.255.255 { 0xa3e00000, 0xa3e2ffff, REGISTRY_APNIC }, // 163.224.0.0 - 163.226.255.255 { 0xa3e30100, 0xa3e301ff, REGISTRY_APNIC }, // 163.227.1.0 - 163.227.1.255 { 0xa3e31100, 0xa3e311ff, REGISTRY_APNIC }, // 163.227.17.0 - 163.227.17.255 { 0xa3e37d00, 0xa3e37dff, REGISTRY_APNIC }, // 163.227.125.0 - 163.227.125.255 { 0xa3e3dd00, 0xa3e3ddff, REGISTRY_APNIC }, // 163.227.221.0 - 163.227.221.255 { 0xa3e3e100, 0xa3e3e3ff, REGISTRY_APNIC }, // 163.227.225.0 - 163.227.227.255 { 0xa3e3e900, 0xa3e3eaff, REGISTRY_APNIC }, // 163.227.233.0 - 163.227.234.255 { 0xa3e3f100, 0xa3e3f3ff, REGISTRY_APNIC }, // 163.227.241.0 - 163.227.243.255 { 0xa3e3fe00, 0xa3e3feff, REGISTRY_APNIC }, // 163.227.254.0 - 163.227.254.255 { 0xa3e40000, 0xa3e5ffff, REGISTRY_APNIC }, // 163.228.0.0 - 163.229.255.255 { 0xa3e60000, 0xa3e7ffff, REGISTRY_ARIN }, // 163.230.0.0 - 163.231.255.255 { 0xa3e80000, 0xa3e9ffff, REGISTRY_APNIC }, // 163.232.0.0 - 163.233.255.255 { 0xa3ea0000, 0xa3eeffff, REGISTRY_ARIN }, // 163.234.0.0 - 163.238.255.255 { 0xa3ef0000, 0xa3efffff, REGISTRY_APNIC }, // 163.239.0.0 - 163.239.255.255 { 0xa3f00000, 0xa3f1ffff, REGISTRY_ARIN }, // 163.240.0.0 - 163.241.255.255 { 0xa3f20000, 0xa3f2ffff, REGISTRY_RIPENCC }, // 163.242.0.0 - 163.242.255.255 { 0xa3f30000, 0xa3f6ffff, REGISTRY_ARIN }, // 163.243.0.0 - 163.246.255.255 { 0xa3f70000, 0xa3f7ffff, REGISTRY_LACNIC }, // 163.247.0.0 - 163.247.255.255 { 0xa3f80000, 0xa3f9ffff, REGISTRY_ARIN }, // 163.248.0.0 - 163.249.255.255 { 0xa3fa0000, 0xa3faffff, REGISTRY_LACNIC }, // 163.250.0.0 - 163.250.255.255 { 0xa3fb0000, 0xa3feffff, REGISTRY_ARIN }, // 163.251.0.0 - 163.254.255.255 { 0xa3ff0000, 0xa3ffffff, REGISTRY_APNIC }, // 163.255.0.0 - 163.255.255.255 { 0xa4000000, 0xa400ffff, REGISTRY_RIPENCC }, // 164.0.0.0 - 164.0.255.255 { 0xa4010000, 0xa40fffff, REGISTRY_RIPENCC }, // 164.1.0.0 - 164.15.255.255 { 0xa4100000, 0xa423ffff, REGISTRY_RIPENCC }, // 164.16.0.0 - 164.35.255.255 { 0xa4240000, 0xa4275fff, REGISTRY_RIPENCC }, // 164.36.0.0 - 164.39.95.255 { 0xa4276000, 0xa4277fff, REGISTRY_RIPENCC }, // 164.39.96.0 - 164.39.127.255 { 0xa4278000, 0xa427ffff, REGISTRY_RIPENCC }, // 164.39.128.0 - 164.39.255.255 { 0xa4280000, 0xa428ffff, REGISTRY_RIPENCC }, // 164.40.0.0 - 164.40.255.255 { 0xa4290000, 0xa429ffff, REGISTRY_LACNIC }, // 164.41.0.0 - 164.41.255.255 { 0xa42a0000, 0xa42affff, REGISTRY_ARIN }, // 164.42.0.0 - 164.42.255.255 { 0xa42b0000, 0xa42bffff, REGISTRY_APNIC }, // 164.43.0.0 - 164.43.255.255 { 0xa42c0000, 0xa42dffff, REGISTRY_ARIN }, // 164.44.0.0 - 164.45.255.255 { 0xa42e0000, 0xa42effff, REGISTRY_APNIC }, // 164.46.0.0 - 164.46.255.255 { 0xa42f0000, 0xa42fffff, REGISTRY_ARIN }, // 164.47.0.0 - 164.47.255.255 { 0xa4300000, 0xa430ffff, REGISTRY_RIPENCC }, // 164.48.0.0 - 164.48.255.255 { 0xa4310000, 0xa433ffff, REGISTRY_ARIN }, // 164.49.0.0 - 164.51.255.255 { 0xa4340000, 0xa4347fff, REGISTRY_APNIC }, // 164.52.0.0 - 164.52.127.255 { 0xa4348000, 0xa434bfff, REGISTRY_ARIN }, // 164.52.128.0 - 164.52.191.255 { 0xa434c000, 0xa434dfff, REGISTRY_APNIC }, // 164.52.192.0 - 164.52.223.255 { 0xa434e000, 0xa434ffff, REGISTRY_ARIN }, // 164.52.224.0 - 164.52.255.255 { 0xa4350000, 0xa435ffff, REGISTRY_APNIC }, // 164.53.0.0 - 164.53.255.255 { 0xa4360000, 0xa43affff, REGISTRY_ARIN }, // 164.54.0.0 - 164.58.255.255 { 0xa43b0000, 0xa43dffff, REGISTRY_RIPENCC }, // 164.59.0.0 - 164.61.255.255 { 0xa43e0000, 0xa4445fff, REGISTRY_ARIN }, // 164.62.0.0 - 164.68.95.255 { 0xa4446000, 0xa4447fff, REGISTRY_RIPENCC }, // 164.68.96.0 - 164.68.127.255 { 0xa4448000, 0xa444ffff, REGISTRY_ARIN }, // 164.68.128.0 - 164.68.255.255 { 0xa4450000, 0xa447ffff, REGISTRY_APNIC }, // 164.69.0.0 - 164.71.255.255 { 0xa4480000, 0xa448ffff, REGISTRY_ARIN }, // 164.72.0.0 - 164.72.255.255 { 0xa4490000, 0xa449ffff, REGISTRY_LACNIC }, // 164.73.0.0 - 164.73.255.255 { 0xa44a0000, 0xa44affff, REGISTRY_ARIN }, // 164.74.0.0 - 164.74.255.255 { 0xa44b0000, 0xa44bffff, REGISTRY_APNIC }, // 164.75.0.0 - 164.75.255.255 { 0xa44c0000, 0xa44cffff, REGISTRY_ARIN }, // 164.76.0.0 - 164.76.255.255 { 0xa44d0000, 0xa44dffff, REGISTRY_LACNIC }, // 164.77.0.0 - 164.77.255.255 { 0xa44e0000, 0xa44effff, REGISTRY_APNIC }, // 164.78.0.0 - 164.78.255.255 { 0xa44f0000, 0xa44fffff, REGISTRY_ARIN }, // 164.79.0.0 - 164.79.255.255 { 0xa4500000, 0xa450ffff, REGISTRY_APNIC }, // 164.80.0.0 - 164.80.255.255 { 0xa4510000, 0xa451ffff, REGISTRY_RIPENCC }, // 164.81.0.0 - 164.81.255.255 { 0xa4520000, 0xa454ffff, REGISTRY_ARIN }, // 164.82.0.0 - 164.84.255.255 { 0xa4550000, 0xa455ffff, REGISTRY_LACNIC }, // 164.85.0.0 - 164.85.255.255 { 0xa4560000, 0xa457ffff, REGISTRY_ARIN }, // 164.86.0.0 - 164.87.255.255 { 0xa4580000, 0xa458ffff, REGISTRY_AFRINIC }, // 164.88.0.0 - 164.88.255.255 { 0xa4590000, 0xa45a3fff, REGISTRY_ARIN }, // 164.89.0.0 - 164.90.63.255 { 0xa45a4000, 0xa45a7fff, REGISTRY_APNIC }, // 164.90.64.0 - 164.90.127.255 { 0xa45a8000, 0xa45d7fff, REGISTRY_ARIN }, // 164.90.128.0 - 164.93.127.255 { 0xa45d8000, 0xa45dffff, REGISTRY_RIPENCC }, // 164.93.128.0 - 164.93.255.255 { 0xa45e0000, 0xa45fffff, REGISTRY_ARIN }, // 164.94.0.0 - 164.95.255.255 { 0xa4600000, 0xa460ffff, REGISTRY_LACNIC }, // 164.96.0.0 - 164.96.255.255 { 0xa4610000, 0xa461ffff, REGISTRY_APNIC }, // 164.97.0.0 - 164.97.255.255 { 0xa4620000, 0xa462ffff, REGISTRY_LACNIC }, // 164.98.0.0 - 164.98.255.255 { 0xa4630000, 0xa463ffff, REGISTRY_ARIN }, // 164.99.0.0 - 164.99.255.255 { 0xa4640000, 0xa464ffff, REGISTRY_APNIC }, // 164.100.0.0 - 164.100.255.255 { 0xa4650000, 0xa46bffff, REGISTRY_ARIN }, // 164.101.0.0 - 164.107.255.255 { 0xa46c0000, 0xa46cffff, REGISTRY_APNIC }, // 164.108.0.0 - 164.108.255.255 { 0xa46d0000, 0xa46fffff, REGISTRY_ARIN }, // 164.109.0.0 - 164.111.255.255 { 0xa4700000, 0xa470ffff, REGISTRY_APNIC }, // 164.112.0.0 - 164.112.255.255 { 0xa4710000, 0xa472ffff, REGISTRY_ARIN }, // 164.113.0.0 - 164.114.255.255 { 0xa4730000, 0xa473ffff, REGISTRY_APNIC }, // 164.115.0.0 - 164.115.255.255 { 0xa4740000, 0xa47bffff, REGISTRY_ARIN }, // 164.116.0.0 - 164.123.255.255 { 0xa47c0000, 0xa47dffff, REGISTRY_APNIC }, // 164.124.0.0 - 164.125.255.255 { 0xa47e0000, 0xa480ffff, REGISTRY_RIPENCC }, // 164.126.0.0 - 164.128.255.255 { 0xa4810000, 0xa489ffff, REGISTRY_RIPENCC }, // 164.129.0.0 - 164.137.255.255 { 0xa48a0000, 0xa48bffff, REGISTRY_RIPENCC }, // 164.138.0.0 - 164.139.255.255 { 0xa48c0000, 0xa48fffff, REGISTRY_RIPENCC }, // 164.140.0.0 - 164.143.255.255 { 0xa4900000, 0xa491ffff, REGISTRY_ARIN }, // 164.144.0.0 - 164.145.255.255 { 0xa4920000, 0xa497ffff, REGISTRY_AFRINIC }, // 164.146.0.0 - 164.151.255.255 { 0xa4980000, 0xa498a5ff, REGISTRY_ARIN }, // 164.152.0.0 - 164.152.165.255 { 0xa498a600, 0xa498a7ff, REGISTRY_APNIC }, // 164.152.166.0 - 164.152.167.255 { 0xa498a800, 0xa498d7ff, REGISTRY_ARIN }, // 164.152.168.0 - 164.152.215.255 { 0xa498d800, 0xa498d8ff, REGISTRY_RIPENCC }, // 164.152.216.0 - 164.152.216.255 { 0xa498d900, 0xa49917ff, REGISTRY_ARIN }, // 164.152.217.0 - 164.153.23.255 { 0xa4991800, 0xa4991bff, REGISTRY_RIPENCC }, // 164.153.24.0 - 164.153.27.255 { 0xa4991c00, 0xa4991fff, REGISTRY_APNIC }, // 164.153.28.0 - 164.153.31.255 { 0xa4992000, 0xa49983ff, REGISTRY_ARIN }, // 164.153.32.0 - 164.153.131.255 { 0xa4998400, 0xa49987ff, REGISTRY_RIPENCC }, // 164.153.132.0 - 164.153.135.255 { 0xa4998800, 0xa49affff, REGISTRY_ARIN }, // 164.153.136.0 - 164.154.255.255 { 0xa49b0000, 0xa49bffff, REGISTRY_AFRINIC }, // 164.155.0.0 - 164.155.255.255 { 0xa49c0000, 0xa49fffff, REGISTRY_ARIN }, // 164.156.0.0 - 164.159.255.255 { 0xa4a00000, 0xa4a00bff, REGISTRY_AFRINIC }, // 164.160.0.0 - 164.160.11.255 { 0xa4a01000, 0xa4a01bff, REGISTRY_AFRINIC }, // 164.160.16.0 - 164.160.27.255 { 0xa4a02000, 0xa4a037ff, REGISTRY_AFRINIC }, // 164.160.32.0 - 164.160.55.255 { 0xa4a03c00, 0xa4a05fff, REGISTRY_AFRINIC }, // 164.160.60.0 - 164.160.95.255 { 0xa4a06400, 0xa4a06fff, REGISTRY_AFRINIC }, // 164.160.100.0 - 164.160.111.255 { 0xa4a07400, 0xa4a07fff, REGISTRY_AFRINIC }, // 164.160.116.0 - 164.160.127.255 { 0xa4a08400, 0xa4a097ff, REGISTRY_AFRINIC }, // 164.160.132.0 - 164.160.151.255 { 0xa4a0b000, 0xa4a0bbff, REGISTRY_AFRINIC }, // 164.160.176.0 - 164.160.187.255 { 0xa4a0c000, 0xa4a0c7ff, REGISTRY_AFRINIC }, // 164.160.192.0 - 164.160.199.255 { 0xa4a0e000, 0xa4a0ffff, REGISTRY_AFRINIC }, // 164.160.224.0 - 164.160.255.255 { 0xa4a10000, 0xa4a2ffff, REGISTRY_APNIC }, // 164.161.0.0 - 164.162.255.255 { 0xa4a30000, 0xa4a3ffff, REGISTRY_LACNIC }, // 164.163.0.0 - 164.163.255.255 { 0xa4a40000, 0xa4a4ffff, REGISTRY_APNIC }, // 164.164.0.0 - 164.164.255.255 { 0xa4a50000, 0xa4b0ffff, REGISTRY_ARIN }, // 164.165.0.0 - 164.176.255.255 { 0xa4b10000, 0xa4b1ffff, REGISTRY_RIPENCC }, // 164.177.0.0 - 164.177.255.255 { 0xa4b20000, 0xa4d6ffff, REGISTRY_ARIN }, // 164.178.0.0 - 164.214.255.255 { 0xa4d70000, 0xa4d7ffff, REGISTRY_RIPENCC }, // 164.215.0.0 - 164.215.255.255 { 0xa4d80000, 0xa4ffffff, REGISTRY_ARIN }, // 164.216.0.0 - 164.255.255.255 { 0xa5000000, 0xa500ffff, REGISTRY_AFRINIC }, // 165.0.0.0 - 165.0.255.255 { 0xa5010000, 0xa502ffff, REGISTRY_ARIN }, // 165.1.0.0 - 165.2.255.255 { 0xa5030000, 0xa505ffff, REGISTRY_AFRINIC }, // 165.3.0.0 - 165.5.255.255 { 0xa5060000, 0xa507ffff, REGISTRY_ARIN }, // 165.6.0.0 - 165.7.255.255 { 0xa5080000, 0xa50bffff, REGISTRY_AFRINIC }, // 165.8.0.0 - 165.11.255.255 { 0xa50c0000, 0xa50cffff, REGISTRY_APNIC }, // 165.12.0.0 - 165.12.255.255 { 0xa50d0000, 0xa50dffff, REGISTRY_ARIN }, // 165.13.0.0 - 165.13.255.255 { 0xa50e0000, 0xa50fffff, REGISTRY_APNIC }, // 165.14.0.0 - 165.15.255.255 { 0xa5100000, 0xa510ffff, REGISTRY_AFRINIC }, // 165.16.0.0 - 165.16.255.255 { 0xa5130000, 0xa514ffff, REGISTRY_ARIN }, // 165.19.0.0 - 165.20.255.255 { 0xa5150000, 0xa515ffff, REGISTRY_APNIC }, // 165.21.0.0 - 165.21.255.255 { 0xa5160000, 0xa518ffff, REGISTRY_ARIN }, // 165.22.0.0 - 165.24.255.255 { 0xa5190000, 0xa519ffff, REGISTRY_AFRINIC }, // 165.25.0.0 - 165.25.255.255 { 0xa51a0000, 0xa51effff, REGISTRY_ARIN }, // 165.26.0.0 - 165.30.255.255 { 0xa51f0000, 0xa51fffff, REGISTRY_APNIC }, // 165.31.0.0 - 165.31.255.255 { 0xa5200000, 0xa529ffff, REGISTRY_ARIN }, // 165.32.0.0 - 165.41.255.255 { 0xa52a0000, 0xa52bffff, REGISTRY_APNIC }, // 165.42.0.0 - 165.43.255.255 { 0xa52c0000, 0xa530ffff, REGISTRY_ARIN }, // 165.44.0.0 - 165.48.255.255 { 0xa5310000, 0xa533ffff, REGISTRY_AFRINIC }, // 165.49.0.0 - 165.51.255.255 { 0xa5380000, 0xa53fffff, REGISTRY_AFRINIC }, // 165.56.0.0 - 165.63.255.255 { 0xa5400000, 0xa540ffff, REGISTRY_ARIN }, // 165.64.0.0 - 165.64.255.255 { 0xa5410000, 0xa541ffff, REGISTRY_RIPENCC }, // 165.65.0.0 - 165.65.255.255 { 0xa5420000, 0xa542ffff, REGISTRY_ARIN }, // 165.66.0.0 - 165.66.255.255 { 0xa5430000, 0xa543ffff, REGISTRY_APNIC }, // 165.67.0.0 - 165.67.255.255 { 0xa5440000, 0xa544ffff, REGISTRY_ARIN }, // 165.68.0.0 - 165.68.255.255 { 0xa5450000, 0xa545ffff, REGISTRY_APNIC }, // 165.69.0.0 - 165.69.255.255 { 0xa5460000, 0xa548ffff, REGISTRY_ARIN }, // 165.70.0.0 - 165.72.255.255 { 0xa5490000, 0xa5498fff, REGISTRY_AFRINIC }, // 165.73.0.0 - 165.73.143.255 { 0xa549a000, 0xa549ffff, REGISTRY_AFRINIC }, // 165.73.160.0 - 165.73.255.255 { 0xa54a0000, 0xa54bffff, REGISTRY_ARIN }, // 165.74.0.0 - 165.75.255.255 { 0xa54c0000, 0xa54cffff, REGISTRY_APNIC }, // 165.76.0.0 - 165.76.255.255 { 0xa54d0000, 0xa54dffff, REGISTRY_ARIN }, // 165.77.0.0 - 165.77.255.255 { 0xa54e0000, 0xa54effff, REGISTRY_RIPENCC }, // 165.78.0.0 - 165.78.255.255 { 0xa54f0000, 0xa553ffff, REGISTRY_ARIN }, // 165.79.0.0 - 165.83.255.255 { 0xa5540000, 0xa554cfff, REGISTRY_APNIC }, // 165.84.0.0 - 165.84.207.255 { 0xa554d000, 0xa554dfff, REGISTRY_RIPENCC }, // 165.84.208.0 - 165.84.223.255 { 0xa554e000, 0xa554e7ff, REGISTRY_ARIN }, // 165.84.224.0 - 165.84.231.255 { 0xa554e800, 0xa554ffff, REGISTRY_APNIC }, // 165.84.232.0 - 165.84.255.255 { 0xa5550000, 0xa555ffff, REGISTRY_ARIN }, // 165.85.0.0 - 165.85.255.255 { 0xa5560000, 0xa556ffff, REGISTRY_APNIC }, // 165.86.0.0 - 165.86.255.255 { 0xa5570000, 0xa559ffff, REGISTRY_ARIN }, // 165.87.0.0 - 165.89.255.255 { 0xa55a0000, 0xa55affff, REGISTRY_AFRINIC }, // 165.90.0.0 - 165.90.255.255 { 0xa55b0000, 0xa55cffff, REGISTRY_ARIN }, // 165.91.0.0 - 165.92.255.255 { 0xa55d0000, 0xa55dffff, REGISTRY_APNIC }, // 165.93.0.0 - 165.93.255.255 { 0xa55e0000, 0xa55fffff, REGISTRY_ARIN }, // 165.94.0.0 - 165.95.255.255 { 0xa5600000, 0xa560ffff, REGISTRY_APNIC }, // 165.96.0.0 - 165.96.255.255 { 0xa5610000, 0xa561ffff, REGISTRY_ARIN }, // 165.97.0.0 - 165.97.255.255 { 0xa5620000, 0xa562ffff, REGISTRY_LACNIC }, // 165.98.0.0 - 165.98.255.255 { 0xa5640000, 0xa56503ff, REGISTRY_APNIC }, // 165.100.0.0 - 165.101.3.255 { 0xa5660000, 0xa566ffff, REGISTRY_APNIC }, // 165.102.0.0 - 165.102.255.255 { 0xa5670000, 0xa56bffff, REGISTRY_ARIN }, // 165.103.0.0 - 165.107.255.255 { 0xa56c0000, 0xa56cffff, REGISTRY_APNIC }, // 165.108.0.0 - 165.108.255.255 { 0xa56d0000, 0xa571ffff, REGISTRY_ARIN }, // 165.109.0.0 - 165.113.255.255 { 0xa5720000, 0xa572ffff, REGISTRY_RIPENCC }, // 165.114.0.0 - 165.114.255.255 { 0xa5730000, 0xa575ffff, REGISTRY_ARIN }, // 165.115.0.0 - 165.117.255.255 { 0xa5760000, 0xa576ffff, REGISTRY_APNIC }, // 165.118.0.0 - 165.118.255.255 { 0xa5770000, 0xa583ffff, REGISTRY_ARIN }, // 165.119.0.0 - 165.131.255.255 { 0xa5840000, 0xa585ffff, REGISTRY_APNIC }, // 165.132.0.0 - 165.133.255.255 { 0xa5860000, 0xa58cffff, REGISTRY_ARIN }, // 165.134.0.0 - 165.140.255.255 { 0xa58d0000, 0xa58effff, REGISTRY_APNIC }, // 165.141.0.0 - 165.142.255.255 { 0xa58f0000, 0xa595ffff, REGISTRY_AFRINIC }, // 165.143.0.0 - 165.149.255.255 { 0xa5960000, 0xa599ffff, REGISTRY_ARIN }, // 165.150.0.0 - 165.153.255.255 { 0xa59a0000, 0xa59affff, REGISTRY_APNIC }, // 165.154.0.0 - 165.154.255.255 { 0xa59b0000, 0xa5a4ffff, REGISTRY_ARIN }, // 165.155.0.0 - 165.164.255.255 { 0xa5a50000, 0xa5a5ffff, REGISTRY_AFRINIC }, // 165.165.0.0 - 165.165.255.255 { 0xa5a60000, 0xa5a8ffff, REGISTRY_ARIN }, // 165.166.0.0 - 165.168.255.255 { 0xa5a90000, 0xa5a9ffff, REGISTRY_AFRINIC }, // 165.169.0.0 - 165.169.255.255 { 0xa5aa0000, 0xa5acffff, REGISTRY_ARIN }, // 165.170.0.0 - 165.172.255.255 { 0xa5ad0000, 0xa5ad3fff, REGISTRY_APNIC }, // 165.173.0.0 - 165.173.63.255 { 0xa5ad4000, 0xa5ad9fff, REGISTRY_ARIN }, // 165.173.64.0 - 165.173.159.255 { 0xa5ada000, 0xa5ada3ff, REGISTRY_APNIC }, // 165.173.160.0 - 165.173.163.255 { 0xa5ada400, 0xa5adb7ff, REGISTRY_ARIN }, // 165.173.164.0 - 165.173.183.255 { 0xa5adb800, 0xa5adb9ff, REGISTRY_APNIC }, // 165.173.184.0 - 165.173.185.255 { 0xa5adba00, 0xa5adbdff, REGISTRY_ARIN }, // 165.173.186.0 - 165.173.189.255 { 0xa5adbe00, 0xa5adbfff, REGISTRY_APNIC }, // 165.173.190.0 - 165.173.191.255 { 0xa5adc000, 0xa5b3ffff, REGISTRY_ARIN }, // 165.173.192.0 - 165.179.255.255 { 0xa5b40000, 0xa5b4ffff, REGISTRY_AFRINIC }, // 165.180.0.0 - 165.180.255.255 { 0xa5b50000, 0xa5b5ffff, REGISTRY_ARIN }, // 165.181.0.0 - 165.181.255.255 { 0xa5b60000, 0xa5b7ffff, REGISTRY_LACNIC }, // 165.182.0.0 - 165.183.255.255 { 0xa5b80000, 0xa5b9ffff, REGISTRY_ARIN }, // 165.184.0.0 - 165.185.255.255 { 0xa5ba0000, 0xa5bbffff, REGISTRY_APNIC }, // 165.186.0.0 - 165.187.255.255 { 0xa5bc0000, 0xa5beffff, REGISTRY_ARIN }, // 165.188.0.0 - 165.190.255.255 { 0xa5bf0000, 0xa5bfffff, REGISTRY_APNIC }, // 165.191.0.0 - 165.191.255.255 { 0xa5c00000, 0xa5c0ffff, REGISTRY_RIPENCC }, // 165.192.0.0 - 165.192.255.255 { 0xa5c10000, 0xa5c1ffff, REGISTRY_ARIN }, // 165.193.0.0 - 165.193.255.255 { 0xa5c20000, 0xa5c2ffff, REGISTRY_APNIC }, // 165.194.0.0 - 165.194.255.255 { 0xa5c30000, 0xa5c9ffff, REGISTRY_ARIN }, // 165.195.0.0 - 165.201.255.255 { 0xa5ca0000, 0xa5caffff, REGISTRY_APNIC }, // 165.202.0.0 - 165.202.255.255 { 0xa5cb0000, 0xa5ccffff, REGISTRY_ARIN }, // 165.203.0.0 - 165.204.255.255 { 0xa5cd0000, 0xa5cdffff, REGISTRY_APNIC }, // 165.205.0.0 - 165.205.255.255 { 0xa5ce0000, 0xa5d0ffff, REGISTRY_ARIN }, // 165.206.0.0 - 165.208.255.255 { 0xa5d10000, 0xa5d1ffff, REGISTRY_APNIC }, // 165.209.0.0 - 165.209.255.255 { 0xa5d20000, 0xa5d3ffff, REGISTRY_AFRINIC }, // 165.210.0.0 - 165.211.255.255 { 0xa5d40000, 0xa5d4ffff, REGISTRY_ARIN }, // 165.212.0.0 - 165.212.255.255 { 0xa5d50000, 0xa5d5ffff, REGISTRY_APNIC }, // 165.213.0.0 - 165.213.255.255 { 0xa5d60000, 0xa5d9ffff, REGISTRY_ARIN }, // 165.214.0.0 - 165.217.255.255 { 0xa5da0000, 0xa5daffff, REGISTRY_RIPENCC }, // 165.218.0.0 - 165.218.255.255 { 0xa5db0000, 0xa5dbffff, REGISTRY_ARIN }, // 165.219.0.0 - 165.219.255.255 { 0xa5dc0000, 0xa5dc7fff, REGISTRY_APNIC }, // 165.220.0.0 - 165.220.127.255 { 0xa5dc8000, 0xa5dcffff, REGISTRY_RIPENCC }, // 165.220.128.0 - 165.220.255.255 { 0xa5dd0000, 0xa5ddffff, REGISTRY_ARIN }, // 165.221.0.0 - 165.221.255.255 { 0xa5de0000, 0xa5deffff, REGISTRY_RIPENCC }, // 165.222.0.0 - 165.222.255.255 { 0xa5df0000, 0xa5e3ffff, REGISTRY_ARIN }, // 165.223.0.0 - 165.227.255.255 { 0xa5e40000, 0xa5e5ffff, REGISTRY_APNIC }, // 165.228.0.0 - 165.229.255.255 { 0xa5e60000, 0xa5e6ffff, REGISTRY_ARIN }, // 165.230.0.0 - 165.230.255.255 { 0xa5e70000, 0xa5e7ffff, REGISTRY_AFRINIC }, // 165.231.0.0 - 165.231.255.255 { 0xa5e80000, 0xa5e8ffff, REGISTRY_ARIN }, // 165.232.0.0 - 165.232.255.255 { 0xa5e90000, 0xa5e9ffff, REGISTRY_AFRINIC }, // 165.233.0.0 - 165.233.255.255 { 0xa5ea0000, 0xa5efffff, REGISTRY_ARIN }, // 165.234.0.0 - 165.239.255.255 { 0xa5f00000, 0xa5f4ffff, REGISTRY_APNIC }, // 165.240.0.0 - 165.244.255.255 { 0xa5f50000, 0xa5f5ffff, REGISTRY_ARIN }, // 165.245.0.0 - 165.245.255.255 { 0xa5f60000, 0xa5f6ffff, REGISTRY_APNIC }, // 165.246.0.0 - 165.246.255.255 { 0xa5f70000, 0xa5feffff, REGISTRY_ARIN }, // 165.247.0.0 - 165.254.255.255 { 0xa5ff0000, 0xa5ffffff, REGISTRY_AFRINIC }, // 165.255.0.0 - 165.255.255.255 { 0xa6000000, 0xa607ffff, REGISTRY_ARIN }, // 166.0.0.0 - 166.7.255.255 { 0xa6080000, 0xa60fffff, REGISTRY_RIPENCC }, // 166.8.0.0 - 166.15.255.255 { 0xa6100000, 0xa6317fff, REGISTRY_ARIN }, // 166.16.0.0 - 166.49.127.255 { 0xa6318000, 0xa631ffff, REGISTRY_RIPENCC }, // 166.49.128.0 - 166.49.255.255 { 0xa6320000, 0xa63fffff, REGISTRY_ARIN }, // 166.50.0.0 - 166.63.255.255 { 0xa6400000, 0xa641ffff, REGISTRY_APNIC }, // 166.64.0.0 - 166.65.255.255 { 0xa6420000, 0xa64affff, REGISTRY_ARIN }, // 166.66.0.0 - 166.74.255.255 { 0xa64b0000, 0xa64bffff, REGISTRY_LACNIC }, // 166.75.0.0 - 166.75.255.255 { 0xa64c0000, 0xa64effff, REGISTRY_ARIN }, // 166.76.0.0 - 166.78.255.255 { 0xa64f0000, 0xa64fffff, REGISTRY_APNIC }, // 166.79.0.0 - 166.79.255.255 { 0xa6500000, 0xa650ffff, REGISTRY_ARIN }, // 166.80.0.0 - 166.80.255.255 { 0xa6510000, 0xa651ffff, REGISTRY_APNIC }, // 166.81.0.0 - 166.81.255.255 { 0xa6520000, 0xa652ffff, REGISTRY_ARIN }, // 166.82.0.0 - 166.82.255.255 { 0xa6530000, 0xa653ffff, REGISTRY_APNIC }, // 166.83.0.0 - 166.83.255.255 { 0xa6540000, 0xa654ffff, REGISTRY_ARIN }, // 166.84.0.0 - 166.84.255.255 { 0xa6550000, 0xa655ffff, REGISTRY_AFRINIC }, // 166.85.0.0 - 166.85.255.255 { 0xa6560000, 0xa656ffff, REGISTRY_ARIN }, // 166.86.0.0 - 166.86.255.255 { 0xa6570000, 0xa657ffff, REGISTRY_RIPENCC }, // 166.87.0.0 - 166.87.255.255 { 0xa6580000, 0xa663ffff, REGISTRY_ARIN }, // 166.88.0.0 - 166.99.255.255 { 0xa6640000, 0xa664ffff, REGISTRY_APNIC }, // 166.100.0.0 - 166.100.255.255 { 0xa6650000, 0xa666ffff, REGISTRY_ARIN }, // 166.101.0.0 - 166.102.255.255 { 0xa6670000, 0xa668ffff, REGISTRY_APNIC }, // 166.103.0.0 - 166.104.255.255 { 0xa6690000, 0xa669ffff, REGISTRY_ARIN }, // 166.105.0.0 - 166.105.255.255 { 0xa66b0000, 0xa66bffff, REGISTRY_ARIN }, // 166.107.0.0 - 166.107.255.255 { 0xa66c0000, 0xa66c1fff, REGISTRY_RIPENCC }, // 166.108.0.0 - 166.108.31.255 { 0xa66c2000, 0xa66c7fff, REGISTRY_ARIN }, // 166.108.32.0 - 166.108.127.255 { 0xa66c8000, 0xa66cbfff, REGISTRY_RIPENCC }, // 166.108.128.0 - 166.108.191.255 { 0xa66cc000, 0xa66cffff, REGISTRY_APNIC }, // 166.108.192.0 - 166.108.255.255 { 0xa66d0000, 0xa66dffff, REGISTRY_ARIN }, // 166.109.0.0 - 166.109.255.255 { 0xa66e0000, 0xa66effff, REGISTRY_LACNIC }, // 166.110.0.0 - 166.110.255.255 { 0xa66f0000, 0xa66fffff, REGISTRY_APNIC }, // 166.111.0.0 - 166.111.255.255 { 0xa6700000, 0xa671ffff, REGISTRY_ARIN }, // 166.112.0.0 - 166.113.255.255 { 0xa6720000, 0xa672ffff, REGISTRY_LACNIC }, // 166.114.0.0 - 166.114.255.255 { 0xa6730000, 0xa675ffff, REGISTRY_ARIN }, // 166.115.0.0 - 166.117.255.255 { 0xa6760000, 0xa679ffff, REGISTRY_APNIC }, // 166.118.0.0 - 166.121.255.255 { 0xa67a0000, 0xa67cffff, REGISTRY_ARIN }, // 166.122.0.0 - 166.124.255.255 { 0xa67d0000, 0xa67dffff, REGISTRY_APNIC }, // 166.125.0.0 - 166.125.255.255 { 0xa67e0000, 0xa6ffffff, REGISTRY_ARIN }, // 166.126.0.0 - 166.255.255.255 { 0xa7000000, 0xa700ffff, REGISTRY_LACNIC }, // 167.0.0.0 - 167.0.255.255 { 0xa7010000, 0xa71bffff, REGISTRY_ARIN }, // 167.1.0.0 - 167.27.255.255 { 0xa71c0000, 0xa71cffff, REGISTRY_LACNIC }, // 167.28.0.0 - 167.28.255.255 { 0xa71d0000, 0xa71dffff, REGISTRY_ARIN }, // 167.29.0.0 - 167.29.255.255 { 0xa71e0000, 0xa71effff, REGISTRY_APNIC }, // 167.30.0.0 - 167.30.255.255 { 0xa71f0000, 0xa737ffff, REGISTRY_ARIN }, // 167.31.0.0 - 167.55.255.255 { 0xa7380000, 0xa73fffff, REGISTRY_LACNIC }, // 167.56.0.0 - 167.63.255.255 { 0xa7400000, 0xa750ffff, REGISTRY_ARIN }, // 167.64.0.0 - 167.80.255.255 { 0xa7510000, 0xa751ffff, REGISTRY_RIPENCC }, // 167.81.0.0 - 167.81.255.255 { 0xa7520000, 0xa75641ff, REGISTRY_ARIN }, // 167.82.0.0 - 167.86.65.255 { 0xa7564200, 0xa757ffff, REGISTRY_RIPENCC }, // 167.86.66.0 - 167.87.255.255 { 0xa7580000, 0xa75e17ff, REGISTRY_ARIN }, // 167.88.0.0 - 167.94.23.255 { 0xa75e1800, 0xa75e18ff, REGISTRY_RIPENCC }, // 167.94.24.0 - 167.94.24.255 { 0xa75e1900, 0xa75e6dff, REGISTRY_ARIN }, // 167.94.25.0 - 167.94.109.255 { 0xa75e6e00, 0xa75e6eff, REGISTRY_RIPENCC }, // 167.94.110.0 - 167.94.110.255 { 0xa75e6f00, 0xa75e6fff, REGISTRY_ARIN }, // 167.94.111.0 - 167.94.111.255 { 0xa75e7000, 0xa75e71ff, REGISTRY_APNIC }, // 167.94.112.0 - 167.94.113.255 { 0xa75e7200, 0xa75ea1ff, REGISTRY_ARIN }, // 167.94.114.0 - 167.94.161.255 { 0xa75ea200, 0xa75ea5ff, REGISTRY_RIPENCC }, // 167.94.162.0 - 167.94.165.255 { 0xa75ea600, 0xa75ea9ff, REGISTRY_ARIN }, // 167.94.166.0 - 167.94.169.255 { 0xa75eaa00, 0xa75eadff, REGISTRY_RIPENCC }, // 167.94.170.0 - 167.94.173.255 { 0xa75eae00, 0xa75eaeff, REGISTRY_RIPENCC }, // 167.94.174.0 - 167.94.174.255 { 0xa75eaf00, 0xa75ef5ff, REGISTRY_ARIN }, // 167.94.175.0 - 167.94.245.255 { 0xa75ef600, 0xa75ef6ff, REGISTRY_RIPENCC }, // 167.94.246.0 - 167.94.246.255 { 0xa75ef700, 0xa761ffff, REGISTRY_ARIN }, // 167.94.247.0 - 167.97.255.255 { 0xa7620000, 0xa762ffff, REGISTRY_RIPENCC }, // 167.98.0.0 - 167.98.255.255 { 0xa7630000, 0xa7647fff, REGISTRY_ARIN }, // 167.99.0.0 - 167.100.127.255 { 0xa7648000, 0xa764ffff, REGISTRY_RIPENCC }, // 167.100.128.0 - 167.100.255.255 { 0xa7650000, 0xa766ffff, REGISTRY_ARIN }, // 167.101.0.0 - 167.102.255.255 { 0xa7670000, 0xa767ffff, REGISTRY_APNIC }, // 167.103.0.0 - 167.103.255.255 { 0xa7680000, 0xa768ffff, REGISTRY_ARIN }, // 167.104.0.0 - 167.104.255.255 { 0xa7690000, 0xa769ffff, REGISTRY_APNIC }, // 167.105.0.0 - 167.105.255.255 { 0xa76a0000, 0xa76bffff, REGISTRY_ARIN }, // 167.106.0.0 - 167.107.255.255 { 0xa76c0000, 0xa76cffff, REGISTRY_LACNIC }, // 167.108.0.0 - 167.108.255.255 { 0xa76d0000, 0xa76effff, REGISTRY_ARIN }, // 167.109.0.0 - 167.110.255.255 { 0xa76f0000, 0xa76fffff, REGISTRY_RIPENCC }, // 167.111.0.0 - 167.111.255.255 { 0xa7700000, 0xa773ffff, REGISTRY_ARIN }, // 167.112.0.0 - 167.115.255.255 { 0xa7740000, 0xa774ffff, REGISTRY_LACNIC }, // 167.116.0.0 - 167.116.255.255 { 0xa7750000, 0xa77affff, REGISTRY_ARIN }, // 167.117.0.0 - 167.122.255.255 { 0xa77b0000, 0xa77bffff, REGISTRY_APNIC }, // 167.123.0.0 - 167.123.255.255 { 0xa77c0000, 0xa781ffff, REGISTRY_ARIN }, // 167.124.0.0 - 167.129.255.255 { 0xa7820000, 0xa782ffff, REGISTRY_APNIC }, // 167.130.0.0 - 167.130.255.255 { 0xa7830000, 0xa785ffff, REGISTRY_ARIN }, // 167.131.0.0 - 167.133.255.255 { 0xa7860000, 0xa786ffff, REGISTRY_LACNIC }, // 167.134.0.0 - 167.134.255.255 { 0xa7870000, 0xa78affff, REGISTRY_ARIN }, // 167.135.0.0 - 167.138.255.255 { 0xa78b0000, 0xa78bffff, REGISTRY_APNIC }, // 167.139.0.0 - 167.139.255.255 { 0xa78c0000, 0xa79cffff, REGISTRY_ARIN }, // 167.140.0.0 - 167.156.255.255 { 0xa79d0000, 0xa79dffff, REGISTRY_LACNIC }, // 167.157.0.0 - 167.157.255.255 { 0xa79e0000, 0xa79fffff, REGISTRY_ARIN }, // 167.158.0.0 - 167.159.255.255 { 0xa7a00000, 0xa7a01fff, REGISTRY_RIPENCC }, // 167.160.0.0 - 167.160.31.255 { 0xa7a02000, 0xa7a1ffff, REGISTRY_ARIN }, // 167.160.32.0 - 167.161.255.255 { 0xa7a20000, 0xa7a2ffff, REGISTRY_RIPENCC }, // 167.162.0.0 - 167.162.255.255 { 0xa7a30000, 0xa7a7ffff, REGISTRY_ARIN }, // 167.163.0.0 - 167.167.255.255 { 0xa7a80000, 0xa7a8ffff, REGISTRY_RIPENCC }, // 167.168.0.0 - 167.168.255.255 { 0xa7a90000, 0xa7a9ffff, REGISTRY_APNIC }, // 167.169.0.0 - 167.169.255.255 { 0xa7aa0000, 0xa7abffff, REGISTRY_ARIN }, // 167.170.0.0 - 167.171.255.255 { 0xa7ac0000, 0xa7acffff, REGISTRY_RIPENCC }, // 167.172.0.0 - 167.172.255.255 { 0xa7ad0000, 0xa7aeffff, REGISTRY_ARIN }, // 167.173.0.0 - 167.174.255.255 { 0xa7b00000, 0xa7b2ffff, REGISTRY_ARIN }, // 167.176.0.0 - 167.178.255.255 { 0xa7b30000, 0xa7b315ff, REGISTRY_APNIC }, // 167.179.0.0 - 167.179.21.255 { 0xa7b31600, 0xa7b316ff, REGISTRY_ARIN }, // 167.179.22.0 - 167.179.22.255 { 0xa7b31700, 0xa7b3ffff, REGISTRY_APNIC }, // 167.179.23.0 - 167.179.255.255 { 0xa7b40000, 0xa7b9ffff, REGISTRY_ARIN }, // 167.180.0.0 - 167.185.255.255 { 0xa7ba0000, 0xa7baffff, REGISTRY_RIPENCC }, // 167.186.0.0 - 167.186.255.255 { 0xa7bb0000, 0xa7bcffff, REGISTRY_ARIN }, // 167.187.0.0 - 167.188.255.255 { 0xa7bd0000, 0xa7bdffff, REGISTRY_APNIC }, // 167.189.0.0 - 167.189.255.255 { 0xa7be0000, 0xa7caffff, REGISTRY_ARIN }, // 167.190.0.0 - 167.202.255.255 { 0xa7cb0000, 0xa7cbffff, REGISTRY_RIPENCC }, // 167.203.0.0 - 167.203.255.255 { 0xa7cc0000, 0xa7ccffff, REGISTRY_ARIN }, // 167.204.0.0 - 167.204.255.255 { 0xa7cd0000, 0xa7cdffff, REGISTRY_APNIC }, // 167.205.0.0 - 167.205.255.255 { 0xa7ce0000, 0xa7cfffff, REGISTRY_ARIN }, // 167.206.0.0 - 167.207.255.255 { 0xa7d00000, 0xa7d0ffff, REGISTRY_APNIC }, // 167.208.0.0 - 167.208.255.255 { 0xa7d10000, 0xa7db2fff, REGISTRY_ARIN }, // 167.209.0.0 - 167.219.47.255 { 0xa7db3000, 0xa7db3fff, REGISTRY_APNIC }, // 167.219.48.0 - 167.219.63.255 { 0xa7db4000, 0xa7dcdfff, REGISTRY_ARIN }, // 167.219.64.0 - 167.220.223.255 { 0xa7dce000, 0xa7dcffff, REGISTRY_APNIC }, // 167.220.224.0 - 167.220.255.255 { 0xa7dd0000, 0xa7e8ffff, REGISTRY_ARIN }, // 167.221.0.0 - 167.232.255.255 { 0xa7e90000, 0xa7e9ffff, REGISTRY_RIPENCC }, // 167.233.0.0 - 167.233.255.255 { 0xa7ea0000, 0xa7ea25ff, REGISTRY_ARIN }, // 167.234.0.0 - 167.234.37.255 { 0xa7ea2600, 0xa7ea26ff, REGISTRY_RIPENCC }, // 167.234.38.0 - 167.234.38.255 { 0xa7ea2700, 0xa7eaffff, REGISTRY_ARIN }, // 167.234.39.0 - 167.234.255.255 { 0xa7eb0000, 0xa7ebffff, REGISTRY_RIPENCC }, // 167.235.0.0 - 167.235.255.255 { 0xa7ec0000, 0xa7f8ffff, REGISTRY_ARIN }, // 167.236.0.0 - 167.248.255.255 { 0xa7f90000, 0xa7faffff, REGISTRY_LACNIC }, // 167.249.0.0 - 167.250.255.255 { 0xa7fb0000, 0xa7fbffff, REGISTRY_ARIN }, // 167.251.0.0 - 167.251.255.255 { 0xa7fc0000, 0xa7fcffff, REGISTRY_LACNIC }, // 167.252.0.0 - 167.252.255.255 { 0xa7fd0000, 0xa7ffffff, REGISTRY_ARIN }, // 167.253.0.0 - 167.255.255.255 { 0xa8000000, 0xa800ffff, REGISTRY_LACNIC }, // 168.0.0.0 - 168.0.255.255 { 0xa8010000, 0xa801ffff, REGISTRY_RIPENCC }, // 168.1.0.0 - 168.1.255.255 { 0xa8020000, 0xa845ffff, REGISTRY_ARIN }, // 168.2.0.0 - 168.69.255.255 { 0xa8460000, 0xa846ffff, REGISTRY_APNIC }, // 168.70.0.0 - 168.70.255.255 { 0xa8470000, 0xa84affff, REGISTRY_ARIN }, // 168.71.0.0 - 168.74.255.255 { 0xa84b0000, 0xa84b3fff, REGISTRY_APNIC }, // 168.75.0.0 - 168.75.63.255 { 0xa84b4000, 0xa84bdfff, REGISTRY_ARIN }, // 168.75.64.0 - 168.75.223.255 { 0xa84be000, 0xa84befff, REGISTRY_RIPENCC }, // 168.75.224.0 - 168.75.239.255 { 0xa84bf000, 0xa84bffff, REGISTRY_ARIN }, // 168.75.240.0 - 168.75.255.255 { 0xa84c0000, 0xa84cffff, REGISTRY_AFRINIC }, // 168.76.0.0 - 168.76.255.255 { 0xa84d0000, 0xa84dffff, REGISTRY_LACNIC }, // 168.77.0.0 - 168.77.255.255 { 0xa84e0000, 0xa84effff, REGISTRY_APNIC }, // 168.78.0.0 - 168.78.255.255 { 0xa8500000, 0xa851ffff, REGISTRY_AFRINIC }, // 168.80.0.0 - 168.81.255.255 { 0xa8520000, 0xa852ffff, REGISTRY_ARIN }, // 168.82.0.0 - 168.82.255.255 { 0xa8530000, 0xa853ffff, REGISTRY_LACNIC }, // 168.83.0.0 - 168.83.255.255 { 0xa8540000, 0xa856bfff, REGISTRY_ARIN }, // 168.84.0.0 - 168.86.191.255 { 0xa856c000, 0xa856dfff, REGISTRY_RIPENCC }, // 168.86.192.0 - 168.86.223.255 { 0xa856e000, 0xa858ffff, REGISTRY_ARIN }, // 168.86.224.0 - 168.88.255.255 { 0xa8590000, 0xa859ffff, REGISTRY_AFRINIC }, // 168.89.0.0 - 168.89.255.255 { 0xa85a0000, 0xa85affff, REGISTRY_LACNIC }, // 168.90.0.0 - 168.90.255.255 { 0xa85b0000, 0xa85effff, REGISTRY_ARIN }, // 168.91.0.0 - 168.94.255.255 { 0xa85f0000, 0xa85fffff, REGISTRY_APNIC }, // 168.95.0.0 - 168.95.255.255 { 0xa8600000, 0xa860ffff, REGISTRY_LACNIC }, // 168.96.0.0 - 168.96.255.255 { 0xa8610000, 0xa8647fff, REGISTRY_ARIN }, // 168.97.0.0 - 168.100.127.255 { 0xa8648000, 0xa8649fff, REGISTRY_APNIC }, // 168.100.128.0 - 168.100.159.255 { 0xa864a000, 0xa864ffff, REGISTRY_ARIN }, // 168.100.160.0 - 168.100.255.255 { 0xa8650000, 0xa865ffff, REGISTRY_LACNIC }, // 168.101.0.0 - 168.101.255.255 { 0xa8660000, 0xa869ffff, REGISTRY_ARIN }, // 168.102.0.0 - 168.105.255.255 { 0xa86a0000, 0xa86affff, REGISTRY_APNIC }, // 168.106.0.0 - 168.106.255.255 { 0xa86b0000, 0xa872ffff, REGISTRY_ARIN }, // 168.107.0.0 - 168.114.255.255 { 0xa8730000, 0xa873ffff, REGISTRY_APNIC }, // 168.115.0.0 - 168.115.255.255 { 0xa8740000, 0xa876ffff, REGISTRY_ARIN }, // 168.116.0.0 - 168.118.255.255 { 0xa8770000, 0xa877ffff, REGISTRY_RIPENCC }, // 168.119.0.0 - 168.119.255.255 { 0xa8780000, 0xa878ffff, REGISTRY_APNIC }, // 168.120.0.0 - 168.120.255.255 { 0xa8790000, 0xa879ffff, REGISTRY_LACNIC }, // 168.121.0.0 - 168.121.255.255 { 0xa87a0000, 0xa87dffff, REGISTRY_ARIN }, // 168.122.0.0 - 168.125.255.255 { 0xa87e0000, 0xa87effff, REGISTRY_APNIC }, // 168.126.0.0 - 168.126.255.255 { 0xa87f0000, 0xa87fffff, REGISTRY_ARIN }, // 168.127.0.0 - 168.127.255.255 { 0xa8800000, 0xa880ffff, REGISTRY_AFRINIC }, // 168.128.0.0 - 168.128.255.255 { 0xa8810000, 0xa881ffff, REGISTRY_ARIN }, // 168.129.0.0 - 168.129.255.255 { 0xa8820000, 0xa884ffff, REGISTRY_APNIC }, // 168.130.0.0 - 168.132.255.255 { 0xa8850000, 0xa885ffff, REGISTRY_ARIN }, // 168.133.0.0 - 168.133.255.255 { 0xa8860000, 0xa886ffff, REGISTRY_APNIC }, // 168.134.0.0 - 168.134.255.255 { 0xa8870000, 0xa88affff, REGISTRY_ARIN }, // 168.135.0.0 - 168.138.255.255 { 0xa88b0000, 0xa88bffff, REGISTRY_RIPENCC }, // 168.139.0.0 - 168.139.255.255 { 0xa88c0000, 0xa88c7fff, REGISTRY_ARIN }, // 168.140.0.0 - 168.140.127.255 { 0xa88c8000, 0xa88cffff, REGISTRY_APNIC }, // 168.140.128.0 - 168.140.255.255 { 0xa88d0000, 0xa88dffff, REGISTRY_ARIN }, // 168.141.0.0 - 168.141.255.255 { 0xa88e0000, 0xa88effff, REGISTRY_AFRINIC }, // 168.142.0.0 - 168.142.255.255 { 0xa88f0000, 0xa894ffff, REGISTRY_ARIN }, // 168.143.0.0 - 168.148.255.255 { 0xa8950000, 0xa8957fff, REGISTRY_RIPENCC }, // 168.149.0.0 - 168.149.127.255 { 0xa8958000, 0xa895f7ff, REGISTRY_ARIN }, // 168.149.128.0 - 168.149.247.255 { 0xa895f800, 0xa895f9ff, REGISTRY_RIPENCC }, // 168.149.248.0 - 168.149.249.255 { 0xa895fa00, 0xa897ffff, REGISTRY_ARIN }, // 168.149.250.0 - 168.151.255.255 { 0xa8980000, 0xa89affff, REGISTRY_APNIC }, // 168.152.0.0 - 168.154.255.255 { 0xa89b0000, 0xa89bffff, REGISTRY_AFRINIC }, // 168.155.0.0 - 168.155.255.255 { 0xa89c0000, 0xa89fffff, REGISTRY_ARIN }, // 168.156.0.0 - 168.159.255.255 { 0xa8a00000, 0xa8a0ffff, REGISTRY_APNIC }, // 168.160.0.0 - 168.160.255.255 { 0xa8a10000, 0xa8a3ffff, REGISTRY_ARIN }, // 168.161.0.0 - 168.163.255.255 { 0xa8a40000, 0xa8a4ffff, REGISTRY_AFRINIC }, // 168.164.0.0 - 168.164.255.255 { 0xa8a50000, 0xa8a5ffff, REGISTRY_LACNIC }, // 168.165.0.0 - 168.165.255.255 { 0xa8a60000, 0xa8a6ffff, REGISTRY_ARIN }, // 168.166.0.0 - 168.166.255.255 { 0xa8a70000, 0xa8a7ffff, REGISTRY_AFRINIC }, // 168.167.0.0 - 168.167.255.255 { 0xa8a80000, 0xa8a87fff, REGISTRY_RIPENCC }, // 168.168.0.0 - 168.168.127.255 { 0xa8a88000, 0xa8a8ffff, REGISTRY_APNIC }, // 168.168.128.0 - 168.168.255.255 { 0xa8a90000, 0xa8abffff, REGISTRY_ARIN }, // 168.169.0.0 - 168.171.255.255 { 0xa8ac0000, 0xa8acffff, REGISTRY_AFRINIC }, // 168.172.0.0 - 168.172.255.255 { 0xa8ad0000, 0xa8afffff, REGISTRY_ARIN }, // 168.173.0.0 - 168.175.255.255 { 0xa8b00000, 0xa8b0ffff, REGISTRY_LACNIC }, // 168.176.0.0 - 168.176.255.255 { 0xa8b10000, 0xa8b4ffff, REGISTRY_ARIN }, // 168.177.0.0 - 168.180.255.255 { 0xa8b50000, 0xa8b5ffff, REGISTRY_LACNIC }, // 168.181.0.0 - 168.181.255.255 { 0xa8b60000, 0xa8b67fff, REGISTRY_ARIN }, // 168.182.0.0 - 168.182.127.255 { 0xa8b68000, 0xa8b6ffff, REGISTRY_RIPENCC }, // 168.182.128.0 - 168.182.255.255 { 0xa8b70000, 0xa8b9ffff, REGISTRY_ARIN }, // 168.183.0.0 - 168.185.255.255 { 0xa8ba0000, 0xa8baffff, REGISTRY_APNIC }, // 168.186.0.0 - 168.186.255.255 { 0xa8bb0000, 0xa8bbffff, REGISTRY_RIPENCC }, // 168.187.0.0 - 168.187.255.255 { 0xa8bc0000, 0xa8bcffff, REGISTRY_APNIC }, // 168.188.0.0 - 168.188.255.255 { 0xa8bd0000, 0xa8c1ffff, REGISTRY_ARIN }, // 168.189.0.0 - 168.193.255.255 { 0xa8c20000, 0xa8c45fff, REGISTRY_LACNIC }, // 168.194.0.0 - 168.196.95.255 { 0xa8c46400, 0xa8c5ffff, REGISTRY_LACNIC }, // 168.196.100.0 - 168.197.255.255 { 0xa8c60000, 0xa8c6ffff, REGISTRY_APNIC }, // 168.198.0.0 - 168.198.255.255 { 0xa8c70000, 0xa8c7ffff, REGISTRY_RIPENCC }, // 168.199.0.0 - 168.199.255.255 { 0xa8c80000, 0xa8ccffff, REGISTRY_ARIN }, // 168.200.0.0 - 168.204.255.255 { 0xa8cd0000, 0xa8cd47ff, REGISTRY_LACNIC }, // 168.205.0.0 - 168.205.71.255 { 0xa8cd4800, 0xa8cd4bff, REGISTRY_RIPENCC }, // 168.205.72.0 - 168.205.75.255 { 0xa8cd4c00, 0xa8cdffff, REGISTRY_LACNIC }, // 168.205.76.0 - 168.205.255.255 { 0xa8ce0000, 0xa8ceffff, REGISTRY_AFRINIC }, // 168.206.0.0 - 168.206.255.255 { 0xa8cf0000, 0xa8d0ffff, REGISTRY_ARIN }, // 168.207.0.0 - 168.208.255.255 { 0xa8d10000, 0xa8d2ffff, REGISTRY_AFRINIC }, // 168.209.0.0 - 168.210.255.255 { 0xa8d40000, 0xa8d8ffff, REGISTRY_ARIN }, // 168.212.0.0 - 168.216.255.255 { 0xa8d90000, 0xa8d9ffff, REGISTRY_APNIC }, // 168.217.0.0 - 168.217.255.255 { 0xa8da0000, 0xa8daffff, REGISTRY_ARIN }, // 168.218.0.0 - 168.218.255.255 { 0xa8db0000, 0xa8dbffff, REGISTRY_APNIC }, // 168.219.0.0 - 168.219.255.255 { 0xa8dc0000, 0xa8dc7fff, REGISTRY_ARIN }, // 168.220.0.0 - 168.220.127.255 { 0xa8dc8000, 0xa8dc9fff, REGISTRY_RIPENCC }, // 168.220.128.0 - 168.220.159.255 { 0xa8dca000, 0xa8dcdfff, REGISTRY_ARIN }, // 168.220.160.0 - 168.220.223.255 { 0xa8dce000, 0xa8dcffff, REGISTRY_APNIC }, // 168.220.224.0 - 168.220.255.255 { 0xa8dd0000, 0xa8e1ffff, REGISTRY_ARIN }, // 168.221.0.0 - 168.225.255.255 { 0xa8e20000, 0xa8e4ffff, REGISTRY_LACNIC }, // 168.226.0.0 - 168.228.255.255 { 0xa8e50000, 0xa8e6ffff, REGISTRY_ARIN }, // 168.229.0.0 - 168.230.255.255 { 0xa8e70000, 0xa8e877ff, REGISTRY_LACNIC }, // 168.231.0.0 - 168.232.119.255 { 0xa8e87c00, 0xa8e8ffff, REGISTRY_LACNIC }, // 168.232.124.0 - 168.232.255.255 { 0xa8e90000, 0xa8e9ffff, REGISTRY_ARIN }, // 168.233.0.0 - 168.233.255.255 { 0xa8ea0000, 0xa8eaffff, REGISTRY_LACNIC }, // 168.234.0.0 - 168.234.255.255 { 0xa8eb0000, 0xa8f2ffff, REGISTRY_ARIN }, // 168.235.0.0 - 168.242.255.255 { 0xa8f30000, 0xa8f3ffff, REGISTRY_LACNIC }, // 168.243.0.0 - 168.243.255.255 { 0xa8f40000, 0xa8f5bbff, REGISTRY_ARIN }, // 168.244.0.0 - 168.245.187.255 { 0xa8f5bc00, 0xa8f5bfff, REGISTRY_APNIC }, // 168.245.188.0 - 168.245.191.255 { 0xa8f5c000, 0xa8f5c3ff, REGISTRY_ARIN }, // 168.245.192.0 - 168.245.195.255 { 0xa8f5c400, 0xa8f5c5ff, REGISTRY_RIPENCC }, // 168.245.196.0 - 168.245.197.255 { 0xa8f5c600, 0xa8f7ffff, REGISTRY_ARIN }, // 168.245.198.0 - 168.247.255.255 { 0xa8f80000, 0xa8f9ffff, REGISTRY_APNIC }, // 168.248.0.0 - 168.249.255.255 { 0xa8fa0000, 0xa8fbffff, REGISTRY_ARIN }, // 168.250.0.0 - 168.251.255.255 { 0xa8fc0000, 0xa8fcffff, REGISTRY_APNIC }, // 168.252.0.0 - 168.252.255.255 { 0xa8fd0000, 0xa8fdffff, REGISTRY_AFRINIC }, // 168.253.0.0 - 168.253.255.255 { 0xa8fe0000, 0xa8feffff, REGISTRY_ARIN }, // 168.254.0.0 - 168.254.255.255 { 0xa8ff0000, 0xa8ffffff, REGISTRY_LACNIC }, // 168.255.0.0 - 168.255.255.255 { 0xa9000000, 0xa901ffff, REGISTRY_AFRINIC }, // 169.0.0.0 - 169.1.255.255 { 0xa9020000, 0xa91fffff, REGISTRY_ARIN }, // 169.2.0.0 - 169.31.255.255 { 0xa9200000, 0xa93fffff, REGISTRY_RIPENCC }, // 169.32.0.0 - 169.63.255.255 { 0xa9400000, 0xa980ffff, REGISTRY_ARIN }, // 169.64.0.0 - 169.128.255.255 { 0xa9810000, 0xa981ffff, REGISTRY_AFRINIC }, // 169.129.0.0 - 169.129.255.255 { 0xa9820000, 0xa9883fff, REGISTRY_ARIN }, // 169.130.0.0 - 169.136.63.255 { 0xa9884000, 0xa988bfff, REGISTRY_APNIC }, // 169.136.64.0 - 169.136.191.255 { 0xa988c000, 0xa989ffff, REGISTRY_ARIN }, // 169.136.192.0 - 169.137.255.255 { 0xa98a0000, 0xa98affff, REGISTRY_APNIC }, // 169.138.0.0 - 169.138.255.255 { 0xa98b0000, 0xa98bffff, REGISTRY_ARIN }, // 169.139.0.0 - 169.139.255.255 { 0xa98c0000, 0xa98cffff, REGISTRY_APNIC }, // 169.140.0.0 - 169.140.255.255 { 0xa98d0000, 0xa993ffff, REGISTRY_ARIN }, // 169.141.0.0 - 169.147.255.255 { 0xa9940000, 0xa9947fff, REGISTRY_RIPENCC }, // 169.148.0.0 - 169.148.127.255 { 0xa9948000, 0xa99483ff, REGISTRY_RIPENCC }, // 169.148.128.0 - 169.148.131.255 { 0xa9948400, 0xa99496ff, REGISTRY_APNIC }, // 169.148.132.0 - 169.148.150.255 { 0xa9949700, 0xa994bbff, REGISTRY_ARIN }, // 169.148.151.0 - 169.148.187.255 { 0xa994bc00, 0xa994bfff, REGISTRY_RIPENCC }, // 169.148.188.0 - 169.148.191.255 { 0xa994c000, 0xa994ffff, REGISTRY_ARIN }, // 169.148.192.0 - 169.148.255.255 { 0xa9950000, 0xa995ffff, REGISTRY_APNIC }, // 169.149.0.0 - 169.149.255.255 { 0xa9960000, 0xa99601ff, REGISTRY_LACNIC }, // 169.150.0.0 - 169.150.1.255 { 0xa9960200, 0xa996bfff, REGISTRY_ARIN }, // 169.150.2.0 - 169.150.191.255 { 0xa996c000, 0xa996ffff, REGISTRY_RIPENCC }, // 169.150.192.0 - 169.150.255.255 { 0xa9970000, 0xa99bdfff, REGISTRY_ARIN }, // 169.151.0.0 - 169.155.223.255 { 0xa99be000, 0xa99bffff, REGISTRY_RIPENCC }, // 169.155.224.0 - 169.155.255.255 { 0xa99c0000, 0xa99dffff, REGISTRY_ARIN }, // 169.156.0.0 - 169.157.255.255 { 0xa99e0000, 0xa99effff, REGISTRY_LACNIC }, // 169.158.0.0 - 169.158.255.255 { 0xa99f0000, 0xa99fffff, REGISTRY_AFRINIC }, // 169.159.0.0 - 169.159.255.255 { 0xa9a00000, 0xa9c8ffff, REGISTRY_ARIN }, // 169.160.0.0 - 169.200.255.255 { 0xa9c90000, 0xa9c9ffff, REGISTRY_APNIC }, // 169.201.0.0 - 169.201.255.255 { 0xa9ca0000, 0xa9caffff, REGISTRY_AFRINIC }, // 169.202.0.0 - 169.202.255.255 { 0xa9cb0000, 0xa9cfffff, REGISTRY_ARIN }, // 169.203.0.0 - 169.207.255.255 { 0xa9d00000, 0xa9dfffff, REGISTRY_APNIC }, // 169.208.0.0 - 169.223.255.255 { 0xa9e00000, 0xa9e07fff, REGISTRY_RIPENCC }, // 169.224.0.0 - 169.224.127.255 { 0xa9e08000, 0xa9eeffff, REGISTRY_ARIN }, // 169.224.128.0 - 169.238.255.255 { 0xa9ef0000, 0xa9ef2fff, REGISTRY_AFRINIC }, // 169.239.0.0 - 169.239.47.255 { 0xa9ef3c00, 0xa9ef57ff, REGISTRY_AFRINIC }, // 169.239.60.0 - 169.239.87.255 { 0xa9ef5c00, 0xa9ef8fff, REGISTRY_AFRINIC }, // 169.239.92.0 - 169.239.143.255 { 0xa9ef9400, 0xa9efabff, REGISTRY_AFRINIC }, // 169.239.148.0 - 169.239.171.255 { 0xa9efb000, 0xa9efffff, REGISTRY_AFRINIC }, // 169.239.176.0 - 169.239.255.255 { 0xa9f00000, 0xa9fdffff, REGISTRY_ARIN }, // 169.240.0.0 - 169.253.255.255 { 0xa9ff0000, 0xa9ff07ff, REGISTRY_AFRINIC }, // 169.255.0.0 - 169.255.7.255 { 0xa9ff0900, 0xa9ff09ff, REGISTRY_AFRINIC }, // 169.255.9.0 - 169.255.9.255 { 0xa9ff0c00, 0xa9ff5bff, REGISTRY_AFRINIC }, // 169.255.12.0 - 169.255.91.255 { 0xa9ff6800, 0xa9ff6bff, REGISTRY_AFRINIC }, // 169.255.104.0 - 169.255.107.255 { 0xa9ff7000, 0xa9ff8bff, REGISTRY_AFRINIC }, // 169.255.112.0 - 169.255.139.255 { 0xa9ff9000, 0xa9ffc7ff, REGISTRY_AFRINIC }, // 169.255.144.0 - 169.255.199.255 { 0xa9ffcc00, 0xa9ffd3ff, REGISTRY_AFRINIC }, // 169.255.204.0 - 169.255.211.255 { 0xa9ffd800, 0xa9ffdfff, REGISTRY_AFRINIC }, // 169.255.216.0 - 169.255.223.255 { 0xa9ffe400, 0xa9ffffff, REGISTRY_AFRINIC }, // 169.255.228.0 - 169.255.255.255 { 0xaa000000, 0xaa0003ff, REGISTRY_LACNIC }, // 170.0.0.0 - 170.0.3.255 { 0xaa000400, 0xaa0007ff, REGISTRY_ARIN }, // 170.0.4.0 - 170.0.7.255 { 0xaa000800, 0xaa00ffff, REGISTRY_LACNIC }, // 170.0.8.0 - 170.0.255.255 { 0xaa010000, 0xaa0a43ff, REGISTRY_ARIN }, // 170.1.0.0 - 170.10.67.255 { 0xaa0a4400, 0xaa0a47ff, REGISTRY_APNIC }, // 170.10.68.0 - 170.10.71.255 { 0xaa0a4800, 0xaa0a6fff, REGISTRY_ARIN }, // 170.10.72.0 - 170.10.111.255 { 0xaa0a7000, 0xaa0a7fff, REGISTRY_RIPENCC }, // 170.10.112.0 - 170.10.127.255 { 0xaa0a8000, 0xaa0df5ff, REGISTRY_ARIN }, // 170.10.128.0 - 170.13.245.255 { 0xaa0df600, 0xaa0df6ff, REGISTRY_RIPENCC }, // 170.13.246.0 - 170.13.246.255 { 0xaa0df700, 0xaa117fff, REGISTRY_ARIN }, // 170.13.247.0 - 170.17.127.255 { 0xaa118000, 0xaa11ffff, REGISTRY_RIPENCC }, // 170.17.128.0 - 170.17.255.255 { 0xaa120000, 0xaa12ffff, REGISTRY_LACNIC }, // 170.18.0.0 - 170.18.255.255 { 0xaa130000, 0xaa18ffff, REGISTRY_ARIN }, // 170.19.0.0 - 170.24.255.255 { 0xaa190000, 0xaa19ffff, REGISTRY_LACNIC }, // 170.25.0.0 - 170.25.255.255 { 0xaa1a0000, 0xaa20ffff, REGISTRY_ARIN }, // 170.26.0.0 - 170.32.255.255 { 0xaa210000, 0xaa21ffff, REGISTRY_APNIC }, // 170.33.0.0 - 170.33.255.255 { 0xaa220000, 0xaa25caff, REGISTRY_ARIN }, // 170.34.0.0 - 170.37.202.255 { 0xaa25cb00, 0xaa25ceff, REGISTRY_RIPENCC }, // 170.37.203.0 - 170.37.206.255 { 0xaa25cf00, 0xaa25ffff, REGISTRY_ARIN }, // 170.37.207.0 - 170.37.255.255 { 0xaa260000, 0xaa26ffff, REGISTRY_APNIC }, // 170.38.0.0 - 170.38.255.255 { 0xaa270000, 0xaa32ffff, REGISTRY_ARIN }, // 170.39.0.0 - 170.50.255.255 { 0xaa330000, 0xaa33ffff, REGISTRY_LACNIC }, // 170.51.0.0 - 170.51.255.255 { 0xaa340000, 0xaa3bffff, REGISTRY_ARIN }, // 170.52.0.0 - 170.59.255.255 { 0xaa3c0000, 0xaa3cffff, REGISTRY_RIPENCC }, // 170.60.0.0 - 170.60.255.255 { 0xaa3d0000, 0xaa41ffff, REGISTRY_ARIN }, // 170.61.0.0 - 170.65.255.255 { 0xaa420000, 0xaa42ffff, REGISTRY_LACNIC }, // 170.66.0.0 - 170.66.255.255 { 0xaa430000, 0xaa45ffff, REGISTRY_ARIN }, // 170.67.0.0 - 170.69.255.255 { 0xaa460000, 0xaa46ffff, REGISTRY_LACNIC }, // 170.70.0.0 - 170.70.255.255 { 0xaa470000, 0xaa4dffff, REGISTRY_ARIN }, // 170.71.0.0 - 170.77.255.255 { 0xaa4e0000, 0xaa4efbff, REGISTRY_LACNIC }, // 170.78.0.0 - 170.78.251.255 { 0xaa4f0000, 0xaa5133ff, REGISTRY_LACNIC }, // 170.79.0.0 - 170.81.51.255 { 0xaa513400, 0xaa5137ff, REGISTRY_RIPENCC }, // 170.81.52.0 - 170.81.55.255 { 0xaa513800, 0xaa517bff, REGISTRY_LACNIC }, // 170.81.56.0 - 170.81.123.255 { 0xaa517c00, 0xaa517fff, REGISTRY_ARIN }, // 170.81.124.0 - 170.81.127.255 { 0xaa518000, 0xaa54e3ff, REGISTRY_LACNIC }, // 170.81.128.0 - 170.84.227.255 { 0xaa54e400, 0xaa54e7ff, REGISTRY_RIPENCC }, // 170.84.228.0 - 170.84.231.255 { 0xaa54e800, 0xaa54fbff, REGISTRY_LACNIC }, // 170.84.232.0 - 170.84.251.255 { 0xaa54fc00, 0xaa54fdff, REGISTRY_RIPENCC }, // 170.84.252.0 - 170.84.253.255 { 0xaa54fe00, 0xaa54ffff, REGISTRY_LACNIC }, // 170.84.254.0 - 170.84.255.255 { 0xaa550000, 0xaa5effff, REGISTRY_ARIN }, // 170.85.0.0 - 170.94.255.255 { 0xaa600000, 0xaa657fff, REGISTRY_ARIN }, // 170.96.0.0 - 170.101.127.255 { 0xaa658000, 0xaa65ffff, REGISTRY_RIPENCC }, // 170.101.128.0 - 170.101.255.255 { 0xaa660000, 0xaa666fff, REGISTRY_ARIN }, // 170.102.0.0 - 170.102.111.255 { 0xaa667000, 0xaa66ffff, REGISTRY_RIPENCC }, // 170.102.112.0 - 170.102.255.255 { 0xaa670000, 0xaa69ffff, REGISTRY_ARIN }, // 170.103.0.0 - 170.105.255.255 { 0xaa6a0000, 0xaa6affff, REGISTRY_APNIC }, // 170.106.0.0 - 170.106.255.255 { 0xaa6b0000, 0xaa84ffff, REGISTRY_ARIN }, // 170.107.0.0 - 170.132.255.255 { 0xaa850000, 0xaa857fff, REGISTRY_RIPENCC }, // 170.133.0.0 - 170.133.127.255 { 0xaa858000, 0xaa95ffff, REGISTRY_ARIN }, // 170.133.128.0 - 170.149.255.255 { 0xaa960000, 0xaa96ffff, REGISTRY_LACNIC }, // 170.150.0.0 - 170.150.255.255 { 0xaa970000, 0xaa9affff, REGISTRY_ARIN }, // 170.151.0.0 - 170.154.255.255 { 0xaa9b0000, 0xaa9bffff, REGISTRY_LACNIC }, // 170.155.0.0 - 170.155.255.255 { 0xaa9c0000, 0xaa9cffff, REGISTRY_ARIN }, // 170.156.0.0 - 170.156.255.255 { 0xaa9d0000, 0xaa9dffff, REGISTRY_APNIC }, // 170.157.0.0 - 170.157.255.255 { 0xaa9e0000, 0xaaa4ffff, REGISTRY_ARIN }, // 170.158.0.0 - 170.164.255.255 { 0xaaa50000, 0xaaa5ffff, REGISTRY_APNIC }, // 170.165.0.0 - 170.165.255.255 { 0xaaa60000, 0xaaa8ffff, REGISTRY_ARIN }, // 170.166.0.0 - 170.168.255.255 { 0xaaa90000, 0xaaa9ffff, REGISTRY_LACNIC }, // 170.169.0.0 - 170.169.255.255 { 0xaaaa0000, 0xaab2ffff, REGISTRY_ARIN }, // 170.170.0.0 - 170.178.255.255 { 0xaab30000, 0xaab3ffff, REGISTRY_APNIC }, // 170.179.0.0 - 170.179.255.255 { 0xaab40000, 0xaac7f5ff, REGISTRY_ARIN }, // 170.180.0.0 - 170.199.245.255 { 0xaac7f600, 0xaac7f6ff, REGISTRY_APNIC }, // 170.199.246.0 - 170.199.246.255 { 0xaac7f700, 0xaacd3fff, REGISTRY_ARIN }, // 170.199.247.0 - 170.205.63.255 { 0xaacd4000, 0xaacd7fff, REGISTRY_RIPENCC }, // 170.205.64.0 - 170.205.127.255 { 0xaacd8000, 0xaad1ffff, REGISTRY_ARIN }, // 170.205.128.0 - 170.209.255.255 { 0xaad20000, 0xaad2ffff, REGISTRY_LACNIC }, // 170.210.0.0 - 170.210.255.255 { 0xaad30000, 0xaae6ffff, REGISTRY_ARIN }, // 170.211.0.0 - 170.230.255.255 { 0xaae70000, 0xaae7dfff, REGISTRY_LACNIC }, // 170.231.0.0 - 170.231.223.255 { 0xaae7e400, 0xaae7ffff, REGISTRY_LACNIC }, // 170.231.228.0 - 170.231.255.255 { 0xaae80000, 0xaae8ffff, REGISTRY_ARIN }, // 170.232.0.0 - 170.232.255.255 { 0xaae90000, 0xaae9ffff, REGISTRY_LACNIC }, // 170.233.0.0 - 170.233.255.255 { 0xaaea0000, 0xaaebffff, REGISTRY_ARIN }, // 170.234.0.0 - 170.235.255.255 { 0xaaec0000, 0xaaedffff, REGISTRY_RIPENCC }, // 170.236.0.0 - 170.237.255.255 { 0xaaee0000, 0xaaefffff, REGISTRY_LACNIC }, // 170.238.0.0 - 170.239.255.255 { 0xaaf00000, 0xaaf3ffff, REGISTRY_ARIN }, // 170.240.0.0 - 170.243.255.255 { 0xaaf40000, 0xaaf527ff, REGISTRY_LACNIC }, // 170.244.0.0 - 170.245.39.255 { 0xaaf52800, 0xaaf52bff, REGISTRY_RIPENCC }, // 170.245.40.0 - 170.245.43.255 { 0xaaf52c00, 0xaaf63fff, REGISTRY_LACNIC }, // 170.245.44.0 - 170.246.63.255 { 0xaaf64000, 0xaaf643ff, REGISTRY_RIPENCC }, // 170.246.64.0 - 170.246.67.255 { 0xaaf64400, 0xaaf7ffff, REGISTRY_LACNIC }, // 170.246.68.0 - 170.247.255.255 { 0xaaf80000, 0xaaf801ff, REGISTRY_APNIC }, // 170.248.0.0 - 170.248.1.255 { 0xaaf80200, 0xaaf80bff, REGISTRY_ARIN }, // 170.248.2.0 - 170.248.11.255 { 0xaaf80c00, 0xaaf80dff, REGISTRY_APNIC }, // 170.248.12.0 - 170.248.13.255 { 0xaaf80e00, 0xaaf829ff, REGISTRY_ARIN }, // 170.248.14.0 - 170.248.41.255 { 0xaaf82a00, 0xaaf82bff, REGISTRY_APNIC }, // 170.248.42.0 - 170.248.43.255 { 0xaaf82c00, 0xaaf82dff, REGISTRY_ARIN }, // 170.248.44.0 - 170.248.45.255 { 0xaaf82e00, 0xaaf82fff, REGISTRY_APNIC }, // 170.248.46.0 - 170.248.47.255 { 0xaaf83000, 0xaaf889ff, REGISTRY_ARIN }, // 170.248.48.0 - 170.248.137.255 { 0xaaf88a00, 0xaaf88bff, REGISTRY_APNIC }, // 170.248.138.0 - 170.248.139.255 { 0xaaf88c00, 0xaaf89fff, REGISTRY_ARIN }, // 170.248.140.0 - 170.248.159.255 { 0xaaf8a000, 0xaaf8abff, REGISTRY_APNIC }, // 170.248.160.0 - 170.248.171.255 { 0xaaf8ac00, 0xaaf8bdff, REGISTRY_ARIN }, // 170.248.172.0 - 170.248.189.255 { 0xaaf8be00, 0xaaf8bfff, REGISTRY_APNIC }, // 170.248.190.0 - 170.248.191.255 { 0xaaf8c000, 0xaaf93fff, REGISTRY_ARIN }, // 170.248.192.0 - 170.249.63.255 { 0xaaf94000, 0xaaf947ff, REGISTRY_APNIC }, // 170.249.64.0 - 170.249.71.255 { 0xaaf94800, 0xaaf95fff, REGISTRY_ARIN }, // 170.249.72.0 - 170.249.95.255 { 0xaaf96000, 0xaaf97fff, REGISTRY_APNIC }, // 170.249.96.0 - 170.249.127.255 { 0xaaf98000, 0xaafb09ff, REGISTRY_ARIN }, // 170.249.128.0 - 170.251.9.255 { 0xaafb0a00, 0xaafb0bff, REGISTRY_APNIC }, // 170.251.10.0 - 170.251.11.255 { 0xaafb0c00, 0xaafb13ff, REGISTRY_ARIN }, // 170.251.12.0 - 170.251.19.255 { 0xaafb1400, 0xaafb15ff, REGISTRY_APNIC }, // 170.251.20.0 - 170.251.21.255 { 0xaafb1600, 0xaafb27ff, REGISTRY_ARIN }, // 170.251.22.0 - 170.251.39.255 { 0xaafb2800, 0xaafb2fff, REGISTRY_APNIC }, // 170.251.40.0 - 170.251.47.255 { 0xaafb3000, 0xaafb3bff, REGISTRY_ARIN }, // 170.251.48.0 - 170.251.59.255 { 0xaafb3c00, 0xaafb3dff, REGISTRY_APNIC }, // 170.251.60.0 - 170.251.61.255 { 0xaafb3e00, 0xaafb59ff, REGISTRY_ARIN }, // 170.251.62.0 - 170.251.89.255 { 0xaafb5a00, 0xaafb5bff, REGISTRY_APNIC }, // 170.251.90.0 - 170.251.91.255 { 0xaafb5c00, 0xaafb6dff, REGISTRY_ARIN }, // 170.251.92.0 - 170.251.109.255 { 0xaafb6e00, 0xaafb6fff, REGISTRY_APNIC }, // 170.251.110.0 - 170.251.111.255 { 0xaafb7000, 0xaafb8dff, REGISTRY_ARIN }, // 170.251.112.0 - 170.251.141.255 { 0xaafb8e00, 0xaafb8fff, REGISTRY_APNIC }, // 170.251.142.0 - 170.251.143.255 { 0xaafb9000, 0xaafb94ff, REGISTRY_ARIN }, // 170.251.144.0 - 170.251.148.255 { 0xaafb9500, 0xaafb97ff, REGISTRY_APNIC }, // 170.251.149.0 - 170.251.151.255 { 0xaafb9800, 0xaafb99ff, REGISTRY_ARIN }, // 170.251.152.0 - 170.251.153.255 { 0xaafb9a00, 0xaafb9dff, REGISTRY_APNIC }, // 170.251.154.0 - 170.251.157.255 { 0xaafb9e00, 0xaafba9ff, REGISTRY_ARIN }, // 170.251.158.0 - 170.251.169.255 { 0xaafbaa00, 0xaafbabff, REGISTRY_APNIC }, // 170.251.170.0 - 170.251.171.255 { 0xaafbac00, 0xaafbadff, REGISTRY_ARIN }, // 170.251.172.0 - 170.251.173.255 { 0xaafbae00, 0xaafbafff, REGISTRY_APNIC }, // 170.251.174.0 - 170.251.175.255 { 0xaafbb000, 0xaafcffff, REGISTRY_ARIN }, // 170.251.176.0 - 170.252.255.255 { 0xaafd0000, 0xaafd3fff, REGISTRY_RIPENCC }, // 170.253.0.0 - 170.253.63.255 { 0xaafd4000, 0xaafdffff, REGISTRY_ARIN }, // 170.253.64.0 - 170.253.255.255 { 0xaafe0000, 0xaafeffff, REGISTRY_LACNIC }, // 170.254.0.0 - 170.254.255.255 { 0xaaff0000, 0xaaffffff, REGISTRY_RIPENCC }, // 170.255.0.0 - 170.255.255.255 { 0xab000000, 0xab0fffff, REGISTRY_APNIC }, // 171.0.0.0 - 171.15.255.255 { 0xab100000, 0xab13ffff, REGISTRY_RIPENCC }, // 171.16.0.0 - 171.19.255.255 { 0xab140000, 0xab14ffff, REGISTRY_RIPENCC }, // 171.20.0.0 - 171.20.255.255 { 0xab150000, 0xab15ffff, REGISTRY_RIPENCC }, // 171.21.0.0 - 171.21.255.255 { 0xab160000, 0xab16ffff, REGISTRY_RIPENCC }, // 171.22.0.0 - 171.22.255.255 { 0xab170000, 0xab197fff, REGISTRY_RIPENCC }, // 171.23.0.0 - 171.25.127.255 { 0xab198000, 0xab198fff, REGISTRY_RIPENCC }, // 171.25.128.0 - 171.25.143.255 { 0xab199000, 0xab19c7ff, REGISTRY_RIPENCC }, // 171.25.144.0 - 171.25.199.255 { 0xab19c800, 0xab19c9ff, REGISTRY_RIPENCC }, // 171.25.200.0 - 171.25.201.255 { 0xab19ca00, 0xab19d9ff, REGISTRY_RIPENCC }, // 171.25.202.0 - 171.25.217.255 { 0xab19da00, 0xab19dbff, REGISTRY_RIPENCC }, // 171.25.218.0 - 171.25.219.255 { 0xab19dc00, 0xab19deff, REGISTRY_RIPENCC }, // 171.25.220.0 - 171.25.222.255 { 0xab19df00, 0xab19dfff, REGISTRY_RIPENCC }, // 171.25.223.0 - 171.25.223.255 { 0xab19e000, 0xab19e0ff, REGISTRY_RIPENCC }, // 171.25.224.0 - 171.25.224.255 { 0xab19e100, 0xab19e1ff, REGISTRY_RIPENCC }, // 171.25.225.0 - 171.25.225.255 { 0xab19e200, 0xab19efff, REGISTRY_RIPENCC }, // 171.25.226.0 - 171.25.239.255 { 0xab19f000, 0xab19f0ff, REGISTRY_RIPENCC }, // 171.25.240.0 - 171.25.240.255 { 0xab19f100, 0xab1fffff, REGISTRY_RIPENCC }, // 171.25.241.0 - 171.31.255.255 { 0xab200000, 0xab20ffff, REGISTRY_RIPENCC }, // 171.32.0.0 - 171.32.255.255 { 0xab210000, 0xab213fff, REGISTRY_RIPENCC }, // 171.33.0.0 - 171.33.63.255 { 0xab214000, 0xab21ffff, REGISTRY_RIPENCC }, // 171.33.64.0 - 171.33.255.255 { 0xab220000, 0xab3fffff, REGISTRY_APNIC }, // 171.34.0.0 - 171.63.255.255 { 0xab400000, 0xab4bffff, REGISTRY_ARIN }, // 171.64.0.0 - 171.75.255.255 { 0xab4c0000, 0xab7fffff, REGISTRY_APNIC }, // 171.76.0.0 - 171.127.255.255 { 0xab800000, 0xabceffff, REGISTRY_ARIN }, // 171.128.0.0 - 171.206.255.255 { 0xabcf0000, 0xabffffff, REGISTRY_APNIC }, // 171.207.0.0 - 171.255.255.255 { 0xac000000, 0xac0fffff, REGISTRY_ARIN }, // 172.0.0.0 - 172.15.255.255 { 0xac200000, 0xac507fff, REGISTRY_ARIN }, // 172.32.0.0 - 172.80.127.255 { 0xac508000, 0xac50ffff, REGISTRY_RIPENCC }, // 172.80.128.0 - 172.80.255.255 { 0xac510000, 0xac51bfff, REGISTRY_ARIN }, // 172.81.0.0 - 172.81.191.255 { 0xac51c000, 0xac51ffff, REGISTRY_APNIC }, // 172.81.192.0 - 172.81.255.255 { 0xac520000, 0xac5350ff, REGISTRY_ARIN }, // 172.82.0.0 - 172.83.80.255 { 0xac535100, 0xac5351ff, REGISTRY_RIPENCC }, // 172.83.81.0 - 172.83.81.255 { 0xac535200, 0xac56cfff, REGISTRY_ARIN }, // 172.83.82.0 - 172.86.207.255 { 0xac56d000, 0xac56dfff, REGISTRY_APNIC }, // 172.86.208.0 - 172.86.223.255 { 0xac56e000, 0xac5d03ff, REGISTRY_ARIN }, // 172.86.224.0 - 172.93.3.255 { 0xac5d0400, 0xac5d05ff, REGISTRY_RIPENCC }, // 172.93.4.0 - 172.93.5.255 { 0xac5d0600, 0xac5e7fff, REGISTRY_ARIN }, // 172.93.6.0 - 172.94.127.255 { 0xac5e8000, 0xac5effff, REGISTRY_APNIC }, // 172.94.128.0 - 172.94.255.255 { 0xac5f0000, 0xac6757ff, REGISTRY_ARIN }, // 172.95.0.0 - 172.103.87.255 { 0xac675800, 0xac675fff, REGISTRY_RIPENCC }, // 172.103.88.0 - 172.103.95.255 { 0xac676000, 0xac79ffff, REGISTRY_ARIN }, // 172.103.96.0 - 172.121.255.255 { 0xac7a0000, 0xac7bffff, REGISTRY_APNIC }, // 172.122.0.0 - 172.123.255.255 { 0xac7c0000, 0xac7fffff, REGISTRY_ARIN }, // 172.124.0.0 - 172.127.255.255 { 0xac800000, 0xacbfffff, REGISTRY_RIPENCC }, // 172.128.0.0 - 172.191.255.255 { 0xacc00000, 0xacc7ffff, REGISTRY_APNIC }, // 172.192.0.0 - 172.199.255.255 { 0xacc80000, 0xacd7ffff, REGISTRY_RIPENCC }, // 172.200.0.0 - 172.215.255.255 { 0xacd80000, 0xacf0ffff, REGISTRY_ARIN }, // 172.216.0.0 - 172.240.255.255 { 0xacf10000, 0xacf107ff, REGISTRY_RIPENCC }, // 172.241.0.0 - 172.241.7.255 { 0xacf10800, 0xacf127ff, REGISTRY_ARIN }, // 172.241.8.0 - 172.241.39.255 { 0xacf12800, 0xacf137ff, REGISTRY_RIPENCC }, // 172.241.40.0 - 172.241.55.255 { 0xacf13800, 0xacf13fff, REGISTRY_ARIN }, // 172.241.56.0 - 172.241.63.255 { 0xacf14000, 0xacf147ff, REGISTRY_RIPENCC }, // 172.241.64.0 - 172.241.71.255 { 0xacf14800, 0xacf153ff, REGISTRY_ARIN }, // 172.241.72.0 - 172.241.83.255 { 0xacf15400, 0xacf157ff, REGISTRY_RIPENCC }, // 172.241.84.0 - 172.241.87.255 { 0xacf15800, 0xacf1d7ff, REGISTRY_ARIN }, // 172.241.88.0 - 172.241.215.255 { 0xacf1d800, 0xacf1dfff, REGISTRY_APNIC }, // 172.241.216.0 - 172.241.223.255 { 0xacf1e000, 0xacf5ffff, REGISTRY_ARIN }, // 172.241.224.0 - 172.245.255.255 { 0xacf60000, 0xacf6ffff, REGISTRY_RIPENCC }, // 172.246.0.0 - 172.246.255.255 { 0xacf70000, 0xacfeffff, REGISTRY_ARIN }, // 172.247.0.0 - 172.254.255.255 { 0xacff0000, 0xacff0fff, REGISTRY_RIPENCC }, // 172.255.0.0 - 172.255.15.255 { 0xacff1000, 0xacff5fff, REGISTRY_ARIN }, // 172.255.16.0 - 172.255.95.255 { 0xacff6000, 0xacff6fff, REGISTRY_RIPENCC }, // 172.255.96.0 - 172.255.111.255 { 0xacff7000, 0xacff87ff, REGISTRY_ARIN }, // 172.255.112.0 - 172.255.135.255 { 0xacff8800, 0xacff8fff, REGISTRY_RIPENCC }, // 172.255.136.0 - 172.255.143.255 { 0xacff9000, 0xacffbfff, REGISTRY_ARIN }, // 172.255.144.0 - 172.255.191.255 { 0xacffc000, 0xacffcfff, REGISTRY_RIPENCC }, // 172.255.192.0 - 172.255.207.255 { 0xacffd000, 0xacffdfff, REGISTRY_ARIN }, // 172.255.208.0 - 172.255.223.255 { 0xacffe000, 0xacffefff, REGISTRY_RIPENCC }, // 172.255.224.0 - 172.255.239.255 { 0xacfff000, 0xacfff7ff, REGISTRY_ARIN }, // 172.255.240.0 - 172.255.247.255 { 0xacfff800, 0xacffffff, REGISTRY_RIPENCC }, // 172.255.248.0 - 172.255.255.255 { 0xad000000, 0xadd02fff, REGISTRY_ARIN }, // 173.0.0.0 - 173.208.47.255 { 0xadd03000, 0xadd037ff, REGISTRY_RIPENCC }, // 173.208.48.0 - 173.208.55.255 { 0xadd03800, 0xadd4bfff, REGISTRY_ARIN }, // 173.208.56.0 - 173.212.191.255 { 0xadd4c000, 0xadd4ffff, REGISTRY_RIPENCC }, // 173.212.192.0 - 173.212.255.255 { 0xadd50000, 0xadd6c7ff, REGISTRY_ARIN }, // 173.213.0.0 - 173.214.199.255 { 0xadd6c800, 0xadd6cbff, REGISTRY_RIPENCC }, // 173.214.200.0 - 173.214.203.255 { 0xadd6cc00, 0xade9ffff, REGISTRY_ARIN }, // 173.214.204.0 - 173.233.255.255 { 0xadea0000, 0xadea0fff, REGISTRY_APNIC }, // 173.234.0.0 - 173.234.15.255 { 0xadea1000, 0xadea17ff, REGISTRY_RIPENCC }, // 173.234.16.0 - 173.234.23.255 { 0xadea1800, 0xadea67ff, REGISTRY_ARIN }, // 173.234.24.0 - 173.234.103.255 { 0xadea6800, 0xadea6fff, REGISTRY_APNIC }, // 173.234.104.0 - 173.234.111.255 { 0xadea7000, 0xadea7fff, REGISTRY_ARIN }, // 173.234.112.0 - 173.234.127.255 { 0xadea8000, 0xadea8fff, REGISTRY_RIPENCC }, // 173.234.128.0 - 173.234.143.255 { 0xadea9000, 0xadf22fff, REGISTRY_ARIN }, // 173.234.144.0 - 173.242.47.255 { 0xadf23000, 0xadf23fff, REGISTRY_RIPENCC }, // 173.242.48.0 - 173.242.63.255 { 0xadf24000, 0xadf31fff, REGISTRY_ARIN }, // 173.242.64.0 - 173.243.31.255 { 0xadf32000, 0xadf32fff, REGISTRY_RIPENCC }, // 173.243.32.0 - 173.243.47.255 { 0xadf33000, 0xadf48fff, REGISTRY_ARIN }, // 173.243.48.0 - 173.244.143.255 { 0xadf49000, 0xadf49fff, REGISTRY_RIPENCC }, // 173.244.144.0 - 173.244.159.255 { 0xadf4a000, 0xadf59fff, REGISTRY_ARIN }, // 173.244.160.0 - 173.245.159.255 { 0xadf5a000, 0xadf5a7ff, REGISTRY_RIPENCC }, // 173.245.160.0 - 173.245.167.255 { 0xadf5a800, 0xadf8dfff, REGISTRY_ARIN }, // 173.245.168.0 - 173.248.223.255 { 0xadf8e000, 0xadf8ffff, REGISTRY_APNIC }, // 173.248.224.0 - 173.248.255.255 { 0xadf90000, 0xadf93fff, REGISTRY_RIPENCC }, // 173.249.0.0 - 173.249.63.255 { 0xadf94000, 0xadff8fff, REGISTRY_ARIN }, // 173.249.64.0 - 173.255.143.255 { 0xadff9000, 0xadff97ff, REGISTRY_RIPENCC }, // 173.255.144.0 - 173.255.151.255 { 0xadff9800, 0xae8a8fff, REGISTRY_ARIN }, // 173.255.152.0 - 174.138.143.255 { 0xae8a9000, 0xae8a9fff, REGISTRY_APNIC }, // 174.138.144.0 - 174.138.159.255 { 0xae8aa000, 0xae8bffff, REGISTRY_ARIN }, // 174.138.160.0 - 174.139.255.255 { 0xae8c0000, 0xae8c3fff, REGISTRY_RIPENCC }, // 174.140.0.0 - 174.140.63.255 { 0xae8c4000, 0xaeffffff, REGISTRY_ARIN }, // 174.140.64.0 - 174.255.255.255 { 0xaf000000, 0xaf64a7ff, REGISTRY_APNIC }, // 175.0.0.0 - 175.100.167.255 { 0xaf64b000, 0xaf6dffff, REGISTRY_APNIC }, // 175.100.176.0 - 175.109.255.255 { 0xaf6e0000, 0xaf6e3fff, REGISTRY_RIPENCC }, // 175.110.0.0 - 175.110.63.255 { 0xaf6e4000, 0xaf6e6fff, REGISTRY_APNIC }, // 175.110.64.0 - 175.110.111.255 { 0xaf6e7000, 0xaf6effff, REGISTRY_RIPENCC }, // 175.110.112.0 - 175.110.255.255 { 0xaf6f0000, 0xaf6f5fff, REGISTRY_APNIC }, // 175.111.0.0 - 175.111.95.255 { 0xaf6f6400, 0xafb0b3ff, REGISTRY_APNIC }, // 175.111.100.0 - 175.176.179.255 { 0xafb0b800, 0xafffffff, REGISTRY_APNIC }, // 175.176.184.0 - 175.255.255.255 { 0xb0000000, 0xb0347fff, REGISTRY_RIPENCC }, // 176.0.0.0 - 176.52.127.255 { 0xb0348000, 0xb0349fff, REGISTRY_APNIC }, // 176.52.128.0 - 176.52.159.255 { 0xb034a000, 0xb05fffff, REGISTRY_RIPENCC }, // 176.52.160.0 - 176.95.255.255 { 0xb0600000, 0xb0602fff, REGISTRY_RIPENCC }, // 176.96.0.0 - 176.96.47.255 { 0xb0603000, 0xb0603fff, REGISTRY_RIPENCC }, // 176.96.48.0 - 176.96.63.255 { 0xb0604000, 0xb06057ff, REGISTRY_RIPENCC }, // 176.96.64.0 - 176.96.87.255 { 0xb0605800, 0xb06097ff, REGISTRY_RIPENCC }, // 176.96.88.0 - 176.96.151.255 { 0xb0609800, 0xb0609fff, REGISTRY_RIPENCC }, // 176.96.152.0 - 176.96.159.255 { 0xb060a000, 0xb060bfff, REGISTRY_RIPENCC }, // 176.96.160.0 - 176.96.191.255 { 0xb060c000, 0xb060dfff, REGISTRY_RIPENCC }, // 176.96.192.0 - 176.96.223.255 { 0xb060e000, 0xb060ffff, REGISTRY_RIPENCC }, // 176.96.224.0 - 176.96.255.255 { 0xb0610000, 0xb0613fff, REGISTRY_RIPENCC }, // 176.97.0.0 - 176.97.63.255 { 0xb0614000, 0xb0614fff, REGISTRY_RIPENCC }, // 176.97.64.0 - 176.97.79.255 { 0xb0615000, 0xb0618fff, REGISTRY_RIPENCC }, // 176.97.80.0 - 176.97.143.255 { 0xb0619000, 0xb0619bff, REGISTRY_RIPENCC }, // 176.97.144.0 - 176.97.155.255 { 0xb0619c00, 0xb061bfff, REGISTRY_RIPENCC }, // 176.97.156.0 - 176.97.191.255 { 0xb061c000, 0xb061dfff, REGISTRY_RIPENCC }, // 176.97.192.0 - 176.97.223.255 { 0xb061e000, 0xb061e3ff, REGISTRY_RIPENCC }, // 176.97.224.0 - 176.97.227.255 { 0xb061e400, 0xb061e7ff, REGISTRY_RIPENCC }, // 176.97.228.0 - 176.97.231.255 { 0xb061e800, 0xb0621fff, REGISTRY_RIPENCC }, // 176.97.232.0 - 176.98.31.255 { 0xb0622000, 0xb0622fff, REGISTRY_RIPENCC }, // 176.98.32.0 - 176.98.47.255 { 0xb0623000, 0xb06237ff, REGISTRY_RIPENCC }, // 176.98.48.0 - 176.98.55.255 { 0xb0623800, 0xb0623fff, REGISTRY_RIPENCC }, // 176.98.56.0 - 176.98.63.255 { 0xb0624000, 0xb0625fff, REGISTRY_RIPENCC }, // 176.98.64.0 - 176.98.95.255 { 0xb0626000, 0xb0626fff, REGISTRY_RIPENCC }, // 176.98.96.0 - 176.98.111.255 { 0xb0627000, 0xb062d3ff, REGISTRY_RIPENCC }, // 176.98.112.0 - 176.98.211.255 { 0xb062d400, 0xb062d7ff, REGISTRY_RIPENCC }, // 176.98.212.0 - 176.98.215.255 { 0xb062d800, 0xb062dbff, REGISTRY_RIPENCC }, // 176.98.216.0 - 176.98.219.255 { 0xb062dc00, 0xb062dfff, REGISTRY_RIPENCC }, // 176.98.220.0 - 176.98.223.255 { 0xb062e000, 0xb0630fff, REGISTRY_RIPENCC }, // 176.98.224.0 - 176.99.15.255 { 0xb0631000, 0xb0632fff, REGISTRY_RIPENCC }, // 176.99.16.0 - 176.99.47.255 { 0xb0633000, 0xb0641fff, REGISTRY_RIPENCC }, // 176.99.48.0 - 176.100.31.255 { 0xb0642000, 0xb06437ff, REGISTRY_RIPENCC }, // 176.100.32.0 - 176.100.55.255 { 0xb0643800, 0xb064fbff, REGISTRY_RIPENCC }, // 176.100.56.0 - 176.100.251.255 { 0xb064fc00, 0xb064ffff, REGISTRY_RIPENCC }, // 176.100.252.0 - 176.100.255.255 { 0xb0650000, 0xb065a7ff, REGISTRY_RIPENCC }, // 176.101.0.0 - 176.101.167.255 { 0xb065a800, 0xb065afff, REGISTRY_RIPENCC }, // 176.101.168.0 - 176.101.175.255 { 0xb065b000, 0xb0663fff, REGISTRY_RIPENCC }, // 176.101.176.0 - 176.102.63.255 { 0xb0664000, 0xb06647ff, REGISTRY_RIPENCC }, // 176.102.64.0 - 176.102.71.255 { 0xb0664800, 0xb06677ff, REGISTRY_RIPENCC }, // 176.102.72.0 - 176.102.119.255 { 0xb0667800, 0xb0669fff, REGISTRY_RIPENCC }, // 176.102.120.0 - 176.102.159.255 { 0xb066a000, 0xb0672fff, REGISTRY_RIPENCC }, // 176.102.160.0 - 176.103.47.255 { 0xb0673000, 0xb0673fff, REGISTRY_RIPENCC }, // 176.103.48.0 - 176.103.63.255 { 0xb0674000, 0xb0675fff, REGISTRY_RIPENCC }, // 176.103.64.0 - 176.103.95.255 { 0xb0676000, 0xb0676fff, REGISTRY_RIPENCC }, // 176.103.96.0 - 176.103.111.255 { 0xb0677000, 0xb06777ff, REGISTRY_RIPENCC }, // 176.103.112.0 - 176.103.119.255 { 0xb0677800, 0xb0677fff, REGISTRY_RIPENCC }, // 176.103.120.0 - 176.103.127.255 { 0xb0678000, 0xb067afff, REGISTRY_RIPENCC }, // 176.103.128.0 - 176.103.175.255 { 0xb067b000, 0xb067c7ff, REGISTRY_RIPENCC }, // 176.103.176.0 - 176.103.199.255 { 0xb067c800, 0xb067d9ff, REGISTRY_RIPENCC }, // 176.103.200.0 - 176.103.217.255 { 0xb067da00, 0xb067daff, REGISTRY_ARIN }, // 176.103.218.0 - 176.103.218.255 { 0xb067db00, 0xb067dbff, REGISTRY_RIPENCC }, // 176.103.219.0 - 176.103.219.255 { 0xb067dc00, 0xb067efff, REGISTRY_RIPENCC }, // 176.103.220.0 - 176.103.239.255 { 0xb067f000, 0xb067f7ff, REGISTRY_RIPENCC }, // 176.103.240.0 - 176.103.247.255 { 0xb067f800, 0xb0683fff, REGISTRY_RIPENCC }, // 176.103.248.0 - 176.104.63.255 { 0xb0684000, 0xb0685fff, REGISTRY_RIPENCC }, // 176.104.64.0 - 176.104.95.255 { 0xb0686000, 0xb068bfff, REGISTRY_RIPENCC }, // 176.104.96.0 - 176.104.191.255 { 0xb068c000, 0xb068efff, REGISTRY_RIPENCC }, // 176.104.192.0 - 176.104.239.255 { 0xb068f000, 0xb0698fff, REGISTRY_RIPENCC }, // 176.104.240.0 - 176.105.143.255 { 0xb0699000, 0xb0699fff, REGISTRY_RIPENCC }, // 176.105.144.0 - 176.105.159.255 { 0xb069a000, 0xb069dfff, REGISTRY_RIPENCC }, // 176.105.160.0 - 176.105.223.255 { 0xb069e000, 0xb069ffff, REGISTRY_RIPENCC }, // 176.105.224.0 - 176.105.255.255 { 0xb06a0000, 0xb06a2fff, REGISTRY_RIPENCC }, // 176.106.0.0 - 176.106.47.255 { 0xb06a3000, 0xb06a3fff, REGISTRY_RIPENCC }, // 176.106.48.0 - 176.106.63.255 { 0xb06a4000, 0xb06a5fff, REGISTRY_RIPENCC }, // 176.106.64.0 - 176.106.95.255 { 0xb06a6000, 0xb06a67ff, REGISTRY_RIPENCC }, // 176.106.96.0 - 176.106.103.255 { 0xb06a6800, 0xb06a6fff, REGISTRY_RIPENCC }, // 176.106.104.0 - 176.106.111.255 { 0xb06a7000, 0xb06a77ff, REGISTRY_RIPENCC }, // 176.106.112.0 - 176.106.119.255 { 0xb06a7800, 0xb06a87ff, REGISTRY_RIPENCC }, // 176.106.120.0 - 176.106.135.255 { 0xb06a8800, 0xb06a8fff, REGISTRY_RIPENCC }, // 176.106.136.0 - 176.106.143.255 { 0xb06a9000, 0xb06a9fff, REGISTRY_RIPENCC }, // 176.106.144.0 - 176.106.159.255 { 0xb06aa000, 0xb06ab7ff, REGISTRY_RIPENCC }, // 176.106.160.0 - 176.106.183.255 { 0xb06ab800, 0xb06b1fff, REGISTRY_RIPENCC }, // 176.106.184.0 - 176.107.31.255 { 0xb06b2000, 0xb06b27ff, REGISTRY_RIPENCC }, // 176.107.32.0 - 176.107.39.255 { 0xb06b2800, 0xb06b3fff, REGISTRY_RIPENCC }, // 176.107.40.0 - 176.107.63.255 { 0xb06b4000, 0xb06b4fff, REGISTRY_RIPENCC }, // 176.107.64.0 - 176.107.79.255 { 0xb06b5000, 0xb06b7fff, REGISTRY_RIPENCC }, // 176.107.80.0 - 176.107.127.255 { 0xb06b8000, 0xb06ba7ff, REGISTRY_RIPENCC }, // 176.107.128.0 - 176.107.167.255 { 0xb06ba800, 0xb06bafff, REGISTRY_RIPENCC }, // 176.107.168.0 - 176.107.175.255 { 0xb06bb000, 0xb06bbfff, REGISTRY_RIPENCC }, // 176.107.176.0 - 176.107.191.255 { 0xb06bc000, 0xb06c87ff, REGISTRY_RIPENCC }, // 176.107.192.0 - 176.108.135.255 { 0xb06c8800, 0xb06c8fff, REGISTRY_ARIN }, // 176.108.136.0 - 176.108.143.255 { 0xb06c9000, 0xb06cdfff, REGISTRY_RIPENCC }, // 176.108.144.0 - 176.108.223.255 { 0xb06ce000, 0xb06ce7ff, REGISTRY_RIPENCC }, // 176.108.224.0 - 176.108.231.255 { 0xb06ce800, 0xb06d3fff, REGISTRY_RIPENCC }, // 176.108.232.0 - 176.109.63.255 { 0xb06d4000, 0xb06d6fff, REGISTRY_RIPENCC }, // 176.109.64.0 - 176.109.111.255 { 0xb06d7000, 0xb06d87ff, REGISTRY_RIPENCC }, // 176.109.112.0 - 176.109.135.255 { 0xb06d8800, 0xb06d8fff, REGISTRY_RIPENCC }, // 176.109.136.0 - 176.109.143.255 { 0xb06d9000, 0xb06dafff, REGISTRY_RIPENCC }, // 176.109.144.0 - 176.109.175.255 { 0xb06db000, 0xb06dffff, REGISTRY_RIPENCC }, // 176.109.176.0 - 176.109.255.255 { 0xb06e0000, 0xb06e64ff, REGISTRY_RIPENCC }, // 176.110.0.0 - 176.110.100.255 { 0xb06e6500, 0xb06e65ff, REGISTRY_RIPENCC }, // 176.110.101.0 - 176.110.101.255 { 0xb06e6600, 0xb06e68ff, REGISTRY_RIPENCC }, // 176.110.102.0 - 176.110.104.255 { 0xb06e6900, 0xb06e6bff, REGISTRY_RIPENCC }, // 176.110.105.0 - 176.110.107.255 { 0xb06e6d00, 0xb06e73ff, REGISTRY_RIPENCC }, // 176.110.109.0 - 176.110.115.255 { 0xb06e7400, 0xb06e9fff, REGISTRY_RIPENCC }, // 176.110.116.0 - 176.110.159.255 { 0xb06ea000, 0xb06edfff, REGISTRY_RIPENCC }, // 176.110.160.0 - 176.110.223.255 { 0xb06ee000, 0xb06effff, REGISTRY_RIPENCC }, // 176.110.224.0 - 176.110.255.255 { 0xb06f0000, 0xb06f07ff, REGISTRY_RIPENCC }, // 176.111.0.0 - 176.111.7.255 { 0xb06f0800, 0xb06f37ff, REGISTRY_RIPENCC }, // 176.111.8.0 - 176.111.55.255 { 0xb06f3800, 0xb06f38ff, REGISTRY_RIPENCC }, // 176.111.56.0 - 176.111.56.255 { 0xb06f3900, 0xb06f67ff, REGISTRY_RIPENCC }, // 176.111.57.0 - 176.111.103.255 { 0xb06f6800, 0xb06f6fff, REGISTRY_RIPENCC }, // 176.111.104.0 - 176.111.111.255 { 0xb06f7000, 0xb06f9fff, REGISTRY_RIPENCC }, // 176.111.112.0 - 176.111.159.255 { 0xb06fa000, 0xb06fafff, REGISTRY_RIPENCC }, // 176.111.160.0 - 176.111.175.255 { 0xb06fb000, 0xb06fd7ff, REGISTRY_RIPENCC }, // 176.111.176.0 - 176.111.215.255 { 0xb06fd800, 0xb06fdfff, REGISTRY_RIPENCC }, // 176.111.216.0 - 176.111.223.255 { 0xb06fe000, 0xb0704fff, REGISTRY_RIPENCC }, // 176.111.224.0 - 176.112.79.255 { 0xb0705000, 0xb07057ff, REGISTRY_RIPENCC }, // 176.112.80.0 - 176.112.87.255 { 0xb0705800, 0xb0707fff, REGISTRY_RIPENCC }, // 176.112.88.0 - 176.112.127.255 { 0xb0708000, 0xb0709fff, REGISTRY_RIPENCC }, // 176.112.128.0 - 176.112.159.255 { 0xb070a000, 0xb07127ff, REGISTRY_RIPENCC }, // 176.112.160.0 - 176.113.39.255 { 0xb0712800, 0xb0712fff, REGISTRY_RIPENCC }, // 176.113.40.0 - 176.113.47.255 { 0xb0713000, 0xb0713fff, REGISTRY_RIPENCC }, // 176.113.48.0 - 176.113.63.255 { 0xb0714000, 0xb07167ff, REGISTRY_RIPENCC }, // 176.113.64.0 - 176.113.103.255 { 0xb0716800, 0xb071afff, REGISTRY_RIPENCC }, // 176.113.104.0 - 176.113.175.255 { 0xb071b000, 0xb071bfff, REGISTRY_RIPENCC }, // 176.113.176.0 - 176.113.191.255 { 0xb071c000, 0xb0725fff, REGISTRY_RIPENCC }, // 176.113.192.0 - 176.114.95.255 { 0xb0726000, 0xb0726fff, REGISTRY_RIPENCC }, // 176.114.96.0 - 176.114.111.255 { 0xb0727000, 0xb07357ff, REGISTRY_RIPENCC }, // 176.114.112.0 - 176.115.87.255 { 0xb0735800, 0xb0735fff, REGISTRY_RIPENCC }, // 176.115.88.0 - 176.115.95.255 { 0xb0736000, 0xb073afff, REGISTRY_RIPENCC }, // 176.115.96.0 - 176.115.175.255 { 0xb073b000, 0xb073b7ff, REGISTRY_ARIN }, // 176.115.176.0 - 176.115.183.255 { 0xb073b800, 0xb073bfff, REGISTRY_RIPENCC }, // 176.115.184.0 - 176.115.191.255 { 0xb073c000, 0xb073dfff, REGISTRY_RIPENCC }, // 176.115.192.0 - 176.115.223.255 { 0xb073e000, 0xb073efff, REGISTRY_RIPENCC }, // 176.115.224.0 - 176.115.239.255 { 0xb073f000, 0xb073ffff, REGISTRY_RIPENCC }, // 176.115.240.0 - 176.115.255.255 { 0xb0740000, 0xb0742fff, REGISTRY_RIPENCC }, // 176.116.0.0 - 176.116.47.255 { 0xb0743000, 0xb07473ff, REGISTRY_RIPENCC }, // 176.116.48.0 - 176.116.115.255 { 0xb0747400, 0xb0747eff, REGISTRY_RIPENCC }, // 176.116.116.0 - 176.116.126.255 { 0xb0747f00, 0xb0747fff, REGISTRY_APNIC }, // 176.116.127.0 - 176.116.127.255 { 0xb0748000, 0xb074dfff, REGISTRY_RIPENCC }, // 176.116.128.0 - 176.116.223.255 { 0xb074e000, 0xb074efff, REGISTRY_RIPENCC }, // 176.116.224.0 - 176.116.239.255 { 0xb074f000, 0xb07539ff, REGISTRY_RIPENCC }, // 176.116.240.0 - 176.117.57.255 { 0xb0753a00, 0xb0753bff, REGISTRY_RIPENCC }, // 176.117.58.0 - 176.117.59.255 { 0xb0753c00, 0xb075ffff, REGISTRY_RIPENCC }, // 176.117.60.0 - 176.117.255.255 { 0xb0760000, 0xb0762fff, REGISTRY_RIPENCC }, // 176.118.0.0 - 176.118.47.255 { 0xb0763000, 0xb07637ff, REGISTRY_RIPENCC }, // 176.118.48.0 - 176.118.55.255 { 0xb0763800, 0xb0763fff, REGISTRY_RIPENCC }, // 176.118.56.0 - 176.118.63.255 { 0xb0764000, 0xb0764fff, REGISTRY_RIPENCC }, // 176.118.64.0 - 176.118.79.255 { 0xb0765000, 0xb0765fff, REGISTRY_RIPENCC }, // 176.118.80.0 - 176.118.95.255 { 0xb0766000, 0xb0769fff, REGISTRY_RIPENCC }, // 176.118.96.0 - 176.118.159.255 { 0xb076a000, 0xb076ffff, REGISTRY_RIPENCC }, // 176.118.160.0 - 176.118.255.255 { 0xb0770000, 0xb0773fff, REGISTRY_RIPENCC }, // 176.119.0.0 - 176.119.63.255 { 0xb0774000, 0xb0779fff, REGISTRY_RIPENCC }, // 176.119.64.0 - 176.119.159.255 { 0xb077a000, 0xb077bfff, REGISTRY_RIPENCC }, // 176.119.160.0 - 176.119.191.255 { 0xb077c000, 0xb077e7ff, REGISTRY_RIPENCC }, // 176.119.192.0 - 176.119.231.255 { 0xb077e800, 0xb0790dff, REGISTRY_RIPENCC }, // 176.119.232.0 - 176.121.13.255 { 0xb0790f00, 0xb0791fff, REGISTRY_RIPENCC }, // 176.121.15.0 - 176.121.31.255 { 0xb0792000, 0xb0792fff, REGISTRY_RIPENCC }, // 176.121.32.0 - 176.121.47.255 { 0xb0793000, 0xb0795fff, REGISTRY_RIPENCC }, // 176.121.48.0 - 176.121.95.255 { 0xb0796000, 0xb0796fff, REGISTRY_RIPENCC }, // 176.121.96.0 - 176.121.111.255 { 0xb0797000, 0xb07a7fff, REGISTRY_RIPENCC }, // 176.121.112.0 - 176.122.127.255 { 0xb07a8000, 0xb07abfff, REGISTRY_ARIN }, // 176.122.128.0 - 176.122.191.255 { 0xb07ac000, 0xb07acfff, REGISTRY_RIPENCC }, // 176.122.192.0 - 176.122.207.255 { 0xb07ad000, 0xb07ad1ff, REGISTRY_RIPENCC }, // 176.122.208.0 - 176.122.209.255 { 0xb07ad200, 0xb07aefff, REGISTRY_RIPENCC }, // 176.122.210.0 - 176.122.239.255 { 0xb07af000, 0xb07af3ff, REGISTRY_RIPENCC }, // 176.122.240.0 - 176.122.243.255 { 0xb07af400, 0xb07b1fff, REGISTRY_RIPENCC }, // 176.122.244.0 - 176.123.31.255 { 0xb07b2000, 0xb07b2fff, REGISTRY_RIPENCC }, // 176.123.32.0 - 176.123.47.255 { 0xb07b3000, 0xb07b31ff, REGISTRY_RIPENCC }, // 176.123.48.0 - 176.123.49.255 { 0xb07b3200, 0xb07b32ff, REGISTRY_RIPENCC }, // 176.123.50.0 - 176.123.50.255 { 0xb07b3300, 0xb07b35ff, REGISTRY_RIPENCC }, // 176.123.51.0 - 176.123.53.255 { 0xb07b3600, 0xb07b37ff, REGISTRY_RIPENCC }, // 176.123.54.0 - 176.123.55.255 { 0xb07b3800, 0xb07b3eff, REGISTRY_RIPENCC }, // 176.123.56.0 - 176.123.62.255 { 0xb07b3f00, 0xb07b3fff, REGISTRY_RIPENCC }, // 176.123.63.0 - 176.123.63.255 { 0xb07b4000, 0xb07b9fff, REGISTRY_RIPENCC }, // 176.123.64.0 - 176.123.159.255 { 0xb07ba000, 0xb07ba7ff, REGISTRY_RIPENCC }, // 176.123.160.0 - 176.123.167.255 { 0xb07ba800, 0xb07bafff, REGISTRY_RIPENCC }, // 176.123.168.0 - 176.123.175.255 { 0xb07bb000, 0xb07bb3ff, REGISTRY_RIPENCC }, // 176.123.176.0 - 176.123.179.255 { 0xb07bb400, 0xb07c1fff, REGISTRY_RIPENCC }, // 176.123.180.0 - 176.124.31.255 { 0xb07c2000, 0xb07c3fff, REGISTRY_RIPENCC }, // 176.124.32.0 - 176.124.63.255 { 0xb07c4000, 0xb07c4fff, REGISTRY_RIPENCC }, // 176.124.64.0 - 176.124.79.255 { 0xb07c5000, 0xb07c5fff, REGISTRY_RIPENCC }, // 176.124.80.0 - 176.124.95.255 { 0xb07c6000, 0xb07c71ff, REGISTRY_RIPENCC }, // 176.124.96.0 - 176.124.113.255 { 0xb07c7200, 0xb07c73ff, REGISTRY_RIPENCC }, // 176.124.114.0 - 176.124.115.255 { 0xb07c7400, 0xb07c94ff, REGISTRY_RIPENCC }, // 176.124.116.0 - 176.124.148.255 { 0xb07c9500, 0xb07c95ff, REGISTRY_RIPENCC }, // 176.124.149.0 - 176.124.149.255 { 0xb07c9600, 0xb07cabff, REGISTRY_RIPENCC }, // 176.124.150.0 - 176.124.171.255 { 0xb07cac00, 0xb07cb7ff, REGISTRY_RIPENCC }, // 176.124.172.0 - 176.124.183.255 { 0xb07cb800, 0xb07cbfff, REGISTRY_RIPENCC }, // 176.124.184.0 - 176.124.191.255 { 0xb07cc000, 0xb07cdfff, REGISTRY_RIPENCC }, // 176.124.192.0 - 176.124.223.255 { 0xb07ce000, 0xb07cf8ff, REGISTRY_RIPENCC }, // 176.124.224.0 - 176.124.248.255 { 0xb07cfa00, 0xb07ddfff, REGISTRY_RIPENCC }, // 176.124.250.0 - 176.125.223.255 { 0xb07de000, 0xb07dffff, REGISTRY_RIPENCC }, // 176.125.224.0 - 176.125.255.255 { 0xb07e0000, 0xb07e37ff, REGISTRY_RIPENCC }, // 176.126.0.0 - 176.126.55.255 { 0xb07e3800, 0xb07e3bff, REGISTRY_RIPENCC }, // 176.126.56.0 - 176.126.59.255 { 0xb07e3c00, 0xb07e3fff, REGISTRY_RIPENCC }, // 176.126.60.0 - 176.126.63.255 { 0xb07e4000, 0xb07e7fff, REGISTRY_RIPENCC }, // 176.126.64.0 - 176.126.127.255 { 0xb07e8000, 0xb07ea7ff, REGISTRY_RIPENCC }, // 176.126.128.0 - 176.126.167.255 { 0xb07ea800, 0xb0ffffff, REGISTRY_RIPENCC }, // 176.126.168.0 - 176.255.255.255 { 0xb1000000, 0xb10843ff, REGISTRY_LACNIC }, // 177.0.0.0 - 177.8.67.255 { 0xb1084400, 0xb10844ff, REGISTRY_RIPENCC }, // 177.8.68.0 - 177.8.68.255 { 0xb1084500, 0xb148cbff, REGISTRY_LACNIC }, // 177.8.69.0 - 177.72.203.255 { 0xb148d000, 0xb1497fff, REGISTRY_LACNIC }, // 177.72.208.0 - 177.73.127.255 { 0xb1498800, 0xb149d7ff, REGISTRY_LACNIC }, // 177.73.136.0 - 177.73.215.255 { 0xb149dc00, 0xb15d8eff, REGISTRY_LACNIC }, // 177.73.220.0 - 177.93.142.255 { 0xb15d8f00, 0xb15d8fff, REGISTRY_RIPENCC }, // 177.93.143.0 - 177.93.143.255 { 0xb15d9000, 0xb169c3ff, REGISTRY_LACNIC }, // 177.93.144.0 - 177.105.195.255 { 0xb169d000, 0xb1807fff, REGISTRY_LACNIC }, // 177.105.208.0 - 177.128.127.255 { 0xb1808000, 0xb18083ff, REGISTRY_ARIN }, // 177.128.128.0 - 177.128.131.255 { 0xb1808400, 0xb1de3fff, REGISTRY_LACNIC }, // 177.128.132.0 - 177.222.63.255 { 0xb1de4000, 0xb1de5fff, REGISTRY_RIPENCC }, // 177.222.64.0 - 177.222.95.255 { 0xb1de6000, 0xb1ffffff, REGISTRY_LACNIC }, // 177.222.96.0 - 177.255.255.255 { 0xb2000000, 0xb235ffff, REGISTRY_RIPENCC }, // 178.0.0.0 - 178.53.255.255 { 0xb2360000, 0xb236ffff, REGISTRY_RIPENCC }, // 178.54.0.0 - 178.54.255.255 { 0xb2370000, 0xb29dffff, REGISTRY_RIPENCC }, // 178.55.0.0 - 178.157.255.255 { 0xb29e0000, 0xb29effff, REGISTRY_RIPENCC }, // 178.158.0.0 - 178.158.255.255 { 0xb29f0000, 0xb29f0fff, REGISTRY_RIPENCC }, // 178.159.0.0 - 178.159.15.255 { 0xb29f1000, 0xb29f1fff, REGISTRY_RIPENCC }, // 178.159.16.0 - 178.159.31.255 { 0xb29f2000, 0xb29f23ff, REGISTRY_RIPENCC }, // 178.159.32.0 - 178.159.35.255 { 0xb29f2400, 0xb29f25ff, REGISTRY_RIPENCC }, // 178.159.36.0 - 178.159.37.255 { 0xb29f2600, 0xb29f27ff, REGISTRY_RIPENCC }, // 178.159.38.0 - 178.159.39.255 { 0xb29f2800, 0xb29f29ff, REGISTRY_RIPENCC }, // 178.159.40.0 - 178.159.41.255 { 0xb29f2a00, 0xb29f2fff, REGISTRY_RIPENCC }, // 178.159.42.0 - 178.159.47.255 { 0xb29f3000, 0xb29f4fff, REGISTRY_RIPENCC }, // 178.159.48.0 - 178.159.79.255 { 0xb29f5000, 0xb29f6fff, REGISTRY_RIPENCC }, // 178.159.80.0 - 178.159.111.255 { 0xb29f7000, 0xb29f8fff, REGISTRY_RIPENCC }, // 178.159.112.0 - 178.159.143.255 { 0xb29f9000, 0xb29f9fff, REGISTRY_RIPENCC }, // 178.159.144.0 - 178.159.159.255 { 0xb29fa000, 0xb29fefff, REGISTRY_RIPENCC }, // 178.159.160.0 - 178.159.239.255 { 0xb29ff000, 0xb2a07fff, REGISTRY_RIPENCC }, // 178.159.240.0 - 178.160.127.255 { 0xb2a08000, 0xb2a0bfff, REGISTRY_APNIC }, // 178.160.128.0 - 178.160.191.255 { 0xb2a0c000, 0xb2d3ffff, REGISTRY_RIPENCC }, // 178.160.192.0 - 178.211.255.255 { 0xb2d40000, 0xb2d41fff, REGISTRY_RIPENCC }, // 178.212.0.0 - 178.212.31.255 { 0xb2d42000, 0xb2d427ff, REGISTRY_RIPENCC }, // 178.212.32.0 - 178.212.39.255 { 0xb2d42800, 0xb2d437ff, REGISTRY_RIPENCC }, // 178.212.40.0 - 178.212.55.255 { 0xb2d43800, 0xb2d43fff, REGISTRY_RIPENCC }, // 178.212.56.0 - 178.212.63.255 { 0xb2d44000, 0xb2d447ff, REGISTRY_RIPENCC }, // 178.212.64.0 - 178.212.71.255 { 0xb2d44800, 0xb2d44fff, REGISTRY_RIPENCC }, // 178.212.72.0 - 178.212.79.255 { 0xb2d45000, 0xb2d487ff, REGISTRY_RIPENCC }, // 178.212.80.0 - 178.212.135.255 { 0xb2d48800, 0xb2d48fff, REGISTRY_RIPENCC }, // 178.212.136.0 - 178.212.143.255 { 0xb2d49000, 0xb2d4b7ff, REGISTRY_RIPENCC }, // 178.212.144.0 - 178.212.183.255 { 0xb2d4b800, 0xb2d4bfff, REGISTRY_RIPENCC }, // 178.212.184.0 - 178.212.191.255 { 0xb2d4c000, 0xb2d4c7ff, REGISTRY_RIPENCC }, // 178.212.192.0 - 178.212.199.255 { 0xb2d4c800, 0xb2d4cfff, REGISTRY_RIPENCC }, // 178.212.200.0 - 178.212.207.255 { 0xb2d4d000, 0xb2d4dfff, REGISTRY_RIPENCC }, // 178.212.208.0 - 178.212.223.255 { 0xb2d4e000, 0xb2d4e7ff, REGISTRY_RIPENCC }, // 178.212.224.0 - 178.212.231.255 { 0xb2d4e800, 0xb2d4fdff, REGISTRY_RIPENCC }, // 178.212.232.0 - 178.212.253.255 { 0xb2d4fe00, 0xb2d4feff, REGISTRY_RIPENCC }, // 178.212.254.0 - 178.212.254.255 { 0xb2d4ff00, 0xb2d50fff, REGISTRY_RIPENCC }, // 178.212.255.0 - 178.213.15.255 { 0xb2d51000, 0xb2d517ff, REGISTRY_RIPENCC }, // 178.213.16.0 - 178.213.23.255 { 0xb2d51800, 0xb2d5afff, REGISTRY_RIPENCC }, // 178.213.24.0 - 178.213.175.255 { 0xb2d5b000, 0xb2d5b7ff, REGISTRY_RIPENCC }, // 178.213.176.0 - 178.213.183.255 { 0xb2d5b800, 0xb2d67fff, REGISTRY_RIPENCC }, // 178.213.184.0 - 178.214.127.255 { 0xb2d68000, 0xb2d69fff, REGISTRY_RIPENCC }, // 178.214.128.0 - 178.214.159.255 { 0xb2d6a000, 0xb2d6dfff, REGISTRY_RIPENCC }, // 178.214.160.0 - 178.214.223.255 { 0xb2d6e000, 0xb2d6ffff, REGISTRY_RIPENCC }, // 178.214.224.0 - 178.214.255.255 { 0xb2d70000, 0xb2d7dfff, REGISTRY_RIPENCC }, // 178.215.0.0 - 178.215.223.255 { 0xb2d7e000, 0xb2d7efff, REGISTRY_RIPENCC }, // 178.215.224.0 - 178.215.239.255 { 0xb2d7f000, 0xb2d827ff, REGISTRY_RIPENCC }, // 178.215.240.0 - 178.216.39.255 { 0xb2d82800, 0xb2d837ff, REGISTRY_RIPENCC }, // 178.216.40.0 - 178.216.55.255 { 0xb2d83800, 0xb2d847ff, REGISTRY_RIPENCC }, // 178.216.56.0 - 178.216.71.255 { 0xb2d84800, 0xb2d84fff, REGISTRY_RIPENCC }, // 178.216.72.0 - 178.216.79.255 { 0xb2d85000, 0xb2d857ff, REGISTRY_RIPENCC }, // 178.216.80.0 - 178.216.87.255 { 0xb2d85800, 0xb2d85fff, REGISTRY_RIPENCC }, // 178.216.88.0 - 178.216.95.255 { 0xb2d86000, 0xb2d8efff, REGISTRY_RIPENCC }, // 178.216.96.0 - 178.216.239.255 { 0xb2d8f000, 0xb2d8ffff, REGISTRY_RIPENCC }, // 178.216.240.0 - 178.216.255.255 { 0xb2d90000, 0xb2d927ff, REGISTRY_RIPENCC }, // 178.217.0.0 - 178.217.39.255 { 0xb2d92800, 0xb2d92fff, REGISTRY_RIPENCC }, // 178.217.40.0 - 178.217.47.255 { 0xb2d93000, 0xb2d957ff, REGISTRY_RIPENCC }, // 178.217.48.0 - 178.217.87.255 { 0xb2d95800, 0xb2d95fff, REGISTRY_RIPENCC }, // 178.217.88.0 - 178.217.95.255 { 0xb2d96000, 0xb2d97fff, REGISTRY_RIPENCC }, // 178.217.96.0 - 178.217.127.255 { 0xb2d98000, 0xb2d987ff, REGISTRY_RIPENCC }, // 178.217.128.0 - 178.217.135.255 { 0xb2d98800, 0xb2d9e7ff, REGISTRY_RIPENCC }, // 178.217.136.0 - 178.217.231.255 { 0xb2d9e800, 0xb2d9efff, REGISTRY_RIPENCC }, // 178.217.232.0 - 178.217.239.255 { 0xb2d9f000, 0xb2da7fff, REGISTRY_RIPENCC }, // 178.217.240.0 - 178.218.127.255 { 0xb2da8000, 0xb2dac7ff, REGISTRY_RIPENCC }, // 178.218.128.0 - 178.218.199.255 { 0xb2dac800, 0xb2daefff, REGISTRY_RIPENCC }, // 178.218.200.0 - 178.218.239.255 { 0xb2daf000, 0xb2db0fff, REGISTRY_RIPENCC }, // 178.218.240.0 - 178.219.15.255 { 0xb2db1000, 0xb2db2fff, REGISTRY_RIPENCC }, // 178.219.16.0 - 178.219.47.255 { 0xb2db3000, 0xb2db3fff, REGISTRY_RIPENCC }, // 178.219.48.0 - 178.219.63.255 { 0xb2db4000, 0xb2db97ff, REGISTRY_RIPENCC }, // 178.219.64.0 - 178.219.151.255 { 0xb2db9800, 0xb2db9bff, REGISTRY_RIPENCC }, // 178.219.152.0 - 178.219.155.255 { 0xb2db9c00, 0xb2dbffff, REGISTRY_RIPENCC }, // 178.219.156.0 - 178.219.255.255 { 0xb2dc0000, 0xb2ee4fff, REGISTRY_RIPENCC }, // 178.220.0.0 - 178.238.79.255 { 0xb2ee5000, 0xb2ee5fff, REGISTRY_ARIN }, // 178.238.80.0 - 178.238.95.255 { 0xb2ee6000, 0xb2ffffff, REGISTRY_RIPENCC }, // 178.238.96.0 - 178.255.255.255 { 0xb3000000, 0xb33d7fff, REGISTRY_LACNIC }, // 179.0.0.0 - 179.61.127.255 { 0xb33d8000, 0xb33dffff, REGISTRY_RIPENCC }, // 179.61.128.0 - 179.61.255.255 { 0xb33e0000, 0xb3bdd3ff, REGISTRY_LACNIC }, // 179.62.0.0 - 179.189.211.255 { 0xb3bdd400, 0xb3bdd7ff, REGISTRY_RIPENCC }, // 179.189.212.0 - 179.189.215.255 { 0xb3bdd800, 0xb3ffffff, REGISTRY_LACNIC }, // 179.189.216.0 - 179.255.255.255 { 0xb4000000, 0xb45dffff, REGISTRY_APNIC }, // 180.0.0.0 - 180.93.255.255 { 0xb45e2000, 0xb45ed7ff, REGISTRY_APNIC }, // 180.94.32.0 - 180.94.215.255 { 0xb45ed800, 0xb45edbff, REGISTRY_RIPENCC }, // 180.94.216.0 - 180.94.219.255 { 0xb45edc00, 0xb4837fff, REGISTRY_APNIC }, // 180.94.220.0 - 180.131.127.255 { 0xb4838800, 0xb49407ff, REGISTRY_APNIC }, // 180.131.136.0 - 180.148.7.255 { 0xb4940c00, 0xb49417ff, REGISTRY_APNIC }, // 180.148.12.0 - 180.148.23.255 { 0xb4941c00, 0xb494ffff, REGISTRY_APNIC }, // 180.148.28.0 - 180.148.255.255 { 0xb4950000, 0xb4951fff, REGISTRY_RIPENCC }, // 180.149.0.0 - 180.149.31.255 { 0xb4952000, 0xb49523ff, REGISTRY_APNIC }, // 180.149.32.0 - 180.149.35.255 { 0xb4952400, 0xb4952fff, REGISTRY_RIPENCC }, // 180.149.36.0 - 180.149.47.255 { 0xb4953000, 0xb495c3ff, REGISTRY_APNIC }, // 180.149.48.0 - 180.149.195.255 { 0xb495c400, 0xb495c7ff, REGISTRY_RIPENCC }, // 180.149.196.0 - 180.149.199.255 { 0xb495c800, 0xb4d69fff, REGISTRY_APNIC }, // 180.149.200.0 - 180.214.159.255 { 0xb4d6a800, 0xb4e9ffff, REGISTRY_APNIC }, // 180.214.168.0 - 180.233.255.255 { 0xb4ea0000, 0xb4eaffff, REGISTRY_RIPENCC }, // 180.234.0.0 - 180.234.255.255 { 0xb4eb0000, 0xb4eb9fff, REGISTRY_APNIC }, // 180.235.0.0 - 180.235.159.255 { 0xb4eba000, 0xb4ebbfff, REGISTRY_RIPENCC }, // 180.235.160.0 - 180.235.191.255 { 0xb4ebc000, 0xb4ffffff, REGISTRY_APNIC }, // 180.235.192.0 - 180.255.255.255 { 0xb5000000, 0xb5297fff, REGISTRY_LACNIC }, // 181.0.0.0 - 181.41.127.255 { 0xb5298000, 0xb52987ff, REGISTRY_RIPENCC }, // 181.41.128.0 - 181.41.135.255 { 0xb5298800, 0xb5298bff, REGISTRY_LACNIC }, // 181.41.136.0 - 181.41.139.255 { 0xb5298c00, 0xb5298fff, REGISTRY_ARIN }, // 181.41.140.0 - 181.41.143.255 { 0xb5299000, 0xb5299fff, REGISTRY_RIPENCC }, // 181.41.144.0 - 181.41.159.255 { 0xb529a000, 0xb529bfff, REGISTRY_LACNIC }, // 181.41.160.0 - 181.41.191.255 { 0xb529c000, 0xb529dfff, REGISTRY_RIPENCC }, // 181.41.192.0 - 181.41.223.255 { 0xb529e000, 0xb572efff, REGISTRY_LACNIC }, // 181.41.224.0 - 181.114.239.255 { 0xb572f000, 0xb572ffff, REGISTRY_RIPENCC }, // 181.114.240.0 - 181.114.255.255 { 0xb5730000, 0xb5d5ffff, REGISTRY_LACNIC }, // 181.115.0.0 - 181.213.255.255 { 0xb5d60000, 0xb5d7ffff, REGISTRY_RIPENCC }, // 181.214.0.0 - 181.215.255.255 { 0xb5d80000, 0xb5e07fff, REGISTRY_LACNIC }, // 181.216.0.0 - 181.224.127.255 { 0xb5e08000, 0xb5e09fff, REGISTRY_ARIN }, // 181.224.128.0 - 181.224.159.255 { 0xb5e0a000, 0xb5ffffff, REGISTRY_LACNIC }, // 181.224.160.0 - 181.255.255.255 { 0xb6000000, 0xb617ffff, REGISTRY_APNIC }, // 182.0.0.0 - 182.23.255.255 { 0xb6180000, 0xb61effff, REGISTRY_ARIN }, // 182.24.0.0 - 182.30.255.255 { 0xb61f0000, 0xb6a12fff, REGISTRY_APNIC }, // 182.31.0.0 - 182.161.47.255 { 0xb6a13400, 0xb6a13bff, REGISTRY_APNIC }, // 182.161.52.0 - 182.161.59.255 { 0xb6a13c00, 0xb6a13fff, REGISTRY_RIPENCC }, // 182.161.60.0 - 182.161.63.255 { 0xb6a14000, 0xb6ff23ff, REGISTRY_APNIC }, // 182.161.64.0 - 182.255.35.255 { 0xb6ff2800, 0xb7ffffff, REGISTRY_APNIC }, // 182.255.40.0 - 183.255.255.255 { 0xb8000000, 0xb815ffff, REGISTRY_ARIN }, // 184.0.0.0 - 184.21.255.255 { 0xb8160000, 0xb816ffff, REGISTRY_APNIC }, // 184.22.0.0 - 184.22.255.255 { 0xb8170000, 0xb851ffff, REGISTRY_ARIN }, // 184.23.0.0 - 184.81.255.255 { 0xb8520000, 0xb852ffff, REGISTRY_APNIC }, // 184.82.0.0 - 184.82.255.255 { 0xb8530000, 0xb8ffffff, REGISTRY_ARIN }, // 184.83.0.0 - 184.255.255.255 { 0xb9000000, 0xb9001eff, REGISTRY_RIPENCC }, // 185.0.0.0 - 185.0.30.255 { 0xb9010000, 0xb9010dff, REGISTRY_RIPENCC }, // 185.1.0.0 - 185.1.13.255 { 0xb9010f00, 0xb90114ff, REGISTRY_RIPENCC }, // 185.1.15.0 - 185.1.20.255 { 0xb9011600, 0xb901ffff, REGISTRY_RIPENCC }, // 185.1.22.0 - 185.1.255.255 { 0xb9020000, 0xb90863ff, REGISTRY_RIPENCC }, // 185.2.0.0 - 185.8.99.255 { 0xb9086400, 0xb90867ff, REGISTRY_APNIC }, // 185.8.100.0 - 185.8.103.255 { 0xb9086800, 0xb9106bff, REGISTRY_RIPENCC }, // 185.8.104.0 - 185.16.107.255 { 0xb9106c00, 0xb9106dff, REGISTRY_ARIN }, // 185.16.108.0 - 185.16.109.255 { 0xb9106e00, 0xb91367ff, REGISTRY_RIPENCC }, // 185.16.110.0 - 185.19.103.255 { 0xb9136800, 0xb9136bff, REGISTRY_APNIC }, // 185.19.104.0 - 185.19.107.255 { 0xb9136c00, 0xb91403ff, REGISTRY_RIPENCC }, // 185.19.108.0 - 185.20.3.255 { 0xb9140800, 0xb914dbff, REGISTRY_RIPENCC }, // 185.20.8.0 - 185.20.219.255 { 0xb914dc00, 0xb914dfff, REGISTRY_ARIN }, // 185.20.220.0 - 185.20.223.255 { 0xb914e000, 0xb91e47ff, REGISTRY_RIPENCC }, // 185.20.224.0 - 185.30.71.255 { 0xb91e4800, 0xb91e4bff, REGISTRY_ARIN }, // 185.30.72.0 - 185.30.75.255 { 0xb91e4c00, 0xb91fc7ff, REGISTRY_RIPENCC }, // 185.30.76.0 - 185.31.199.255 { 0xb91fcc00, 0xb923f3ff, REGISTRY_RIPENCC }, // 185.31.204.0 - 185.35.243.255 { 0xb923f400, 0xb923f7ff, REGISTRY_ARIN }, // 185.35.244.0 - 185.35.247.255 { 0xb923f800, 0xb926d1ff, REGISTRY_RIPENCC }, // 185.35.248.0 - 185.38.209.255 { 0xb926d200, 0xb926d3ff, REGISTRY_ARIN }, // 185.38.210.0 - 185.38.211.255 { 0xb926d400, 0xb92733ff, REGISTRY_RIPENCC }, // 185.38.212.0 - 185.39.51.255 { 0xb9273400, 0xb92737ff, REGISTRY_ARIN }, // 185.39.52.0 - 185.39.55.255 { 0xb9273800, 0xb93657ff, REGISTRY_RIPENCC }, // 185.39.56.0 - 185.54.87.255 { 0xb9365800, 0xb9365bff, REGISTRY_APNIC }, // 185.54.88.0 - 185.54.91.255 { 0xb9365c00, 0xb9393bff, REGISTRY_RIPENCC }, // 185.54.92.0 - 185.57.59.255 { 0xb9393c00, 0xb9393fff, REGISTRY_ARIN }, // 185.57.60.0 - 185.57.63.255 { 0xb9394000, 0xb93d8bff, REGISTRY_RIPENCC }, // 185.57.64.0 - 185.61.139.255 { 0xb93d8c00, 0xb93d8fff, REGISTRY_APNIC }, // 185.61.140.0 - 185.61.143.255 { 0xb93d9000, 0xb94a0fff, REGISTRY_RIPENCC }, // 185.61.144.0 - 185.74.15.255 { 0xb94a1000, 0xb94a13ff, REGISTRY_LACNIC }, // 185.74.16.0 - 185.74.19.255 { 0xb94a1400, 0xb94aa7ff, REGISTRY_RIPENCC }, // 185.74.20.0 - 185.74.167.255 { 0xb94aa800, 0xb94aabff, REGISTRY_ARIN }, // 185.74.168.0 - 185.74.171.255 { 0xb94aac00, 0xb94d03ff, REGISTRY_RIPENCC }, // 185.74.172.0 - 185.77.3.255 { 0xb94d0400, 0xb94d07ff, REGISTRY_ARIN }, // 185.77.4.0 - 185.77.7.255 { 0xb94d0800, 0xb94d8bff, REGISTRY_RIPENCC }, // 185.77.8.0 - 185.77.139.255 { 0xb94d8c00, 0xb94d8fff, REGISTRY_ARIN }, // 185.77.140.0 - 185.77.143.255 { 0xb94d9000, 0xb94e67ff, REGISTRY_RIPENCC }, // 185.77.144.0 - 185.78.103.255 { 0xb94e6800, 0xb94e6bff, REGISTRY_APNIC }, // 185.78.104.0 - 185.78.107.255 { 0xb94e6c00, 0xb94fa3ff, REGISTRY_RIPENCC }, // 185.78.108.0 - 185.79.163.255 { 0xb94fa400, 0xb94fa7ff, REGISTRY_ARIN }, // 185.79.164.0 - 185.79.167.255 { 0xb94fa800, 0xb95187ff, REGISTRY_RIPENCC }, // 185.79.168.0 - 185.81.135.255 { 0xb9518800, 0xb9518bff, REGISTRY_ARIN }, // 185.81.136.0 - 185.81.139.255 { 0xb9518c00, 0xb95af3ff, REGISTRY_RIPENCC }, // 185.81.140.0 - 185.90.243.255 { 0xb95af400, 0xb95af7ff, REGISTRY_ARIN }, // 185.90.244.0 - 185.90.247.255 { 0xb95af800, 0xb95b45ff, REGISTRY_RIPENCC }, // 185.90.248.0 - 185.91.69.255 { 0xb95b4600, 0xb95b46ff, REGISTRY_LACNIC }, // 185.91.70.0 - 185.91.70.255 { 0xb95b4700, 0xb95da3ff, REGISTRY_RIPENCC }, // 185.91.71.0 - 185.93.163.255 { 0xb95da400, 0xb95da7ff, REGISTRY_APNIC }, // 185.93.164.0 - 185.93.167.255 { 0xb95da800, 0xb95e1eff, REGISTRY_RIPENCC }, // 185.93.168.0 - 185.94.30.255 { 0xb95e2000, 0xb96311ff, REGISTRY_RIPENCC }, // 185.94.32.0 - 185.99.17.255 { 0xb9631200, 0xb96313ff, REGISTRY_LACNIC }, // 185.99.18.0 - 185.99.19.255 { 0xb9631400, 0xb96427ff, REGISTRY_RIPENCC }, // 185.99.20.0 - 185.100.39.255 { 0xb9642800, 0xb9642bff, REGISTRY_APNIC }, // 185.100.40.0 - 185.100.43.255 { 0xb9642c00, 0xb96906ff, REGISTRY_RIPENCC }, // 185.100.44.0 - 185.105.6.255 { 0xb9690700, 0xb96907ff, REGISTRY_ARIN }, // 185.105.7.0 - 185.105.7.255 { 0xb9690800, 0xb96fc7ff, REGISTRY_RIPENCC }, // 185.105.8.0 - 185.111.199.255 { 0xb96fc800, 0xb96fcbff, REGISTRY_ARIN }, // 185.111.200.0 - 185.111.203.255 { 0xb96fcc00, 0xb97036ff, REGISTRY_RIPENCC }, // 185.111.204.0 - 185.112.54.255 { 0xb9703700, 0xb97037ff, REGISTRY_ARIN }, // 185.112.55.0 - 185.112.55.255 { 0xb9703800, 0xb971b3ff, REGISTRY_RIPENCC }, // 185.112.56.0 - 185.113.179.255 { 0xb971b400, 0xb971b7ff, REGISTRY_ARIN }, // 185.113.180.0 - 185.113.183.255 { 0xb971b800, 0xb973a3ff, REGISTRY_RIPENCC }, // 185.113.184.0 - 185.115.163.255 { 0xb973a400, 0xb973a7ff, REGISTRY_APNIC }, // 185.115.164.0 - 185.115.167.255 { 0xb973a800, 0xb97b8fff, REGISTRY_RIPENCC }, // 185.115.168.0 - 185.123.143.255 { 0xb97b9000, 0xb97b93ff, REGISTRY_ARIN }, // 185.123.144.0 - 185.123.147.255 { 0xb97b9400, 0xb97b97ff, REGISTRY_RIPENCC }, // 185.123.148.0 - 185.123.151.255 { 0xb97b9800, 0xb97b9bff, REGISTRY_ARIN }, // 185.123.152.0 - 185.123.155.255 { 0xb97b9c00, 0xb97c37ff, REGISTRY_RIPENCC }, // 185.123.156.0 - 185.124.55.255 { 0xb97c3800, 0xb97c3fff, REGISTRY_ARIN }, // 185.124.56.0 - 185.124.63.255 { 0xb97c4000, 0xb97e2dff, REGISTRY_RIPENCC }, // 185.124.64.0 - 185.126.45.255 { 0xb97e2e00, 0xb97e2fff, REGISTRY_APNIC }, // 185.126.46.0 - 185.126.47.255 { 0xb97e3000, 0xb97e7bff, REGISTRY_RIPENCC }, // 185.126.48.0 - 185.126.123.255 { 0xb97e7c00, 0xb97e7fff, REGISTRY_APNIC }, // 185.126.124.0 - 185.126.127.255 { 0xb97e8000, 0xb97e8fff, REGISTRY_RIPENCC }, // 185.126.128.0 - 185.126.143.255 { 0xb97e9000, 0xb97e93ff, REGISTRY_APNIC }, // 185.126.144.0 - 185.126.147.255 { 0xb97e9400, 0xb9818bff, REGISTRY_RIPENCC }, // 185.126.148.0 - 185.129.139.255 { 0xb9818c00, 0xb9818fff, REGISTRY_APNIC }, // 185.129.140.0 - 185.129.143.255 { 0xb9819000, 0xb9842fff, REGISTRY_RIPENCC }, // 185.129.144.0 - 185.132.47.255 { 0xb9843000, 0xb98433ff, REGISTRY_ARIN }, // 185.132.48.0 - 185.132.51.255 { 0xb9843400, 0xb98522ff, REGISTRY_RIPENCC }, // 185.132.52.0 - 185.133.34.255 { 0xb9852300, 0xb98523ff, REGISTRY_LACNIC }, // 185.133.35.0 - 185.133.35.255 { 0xb9852400, 0xb985d3ff, REGISTRY_RIPENCC }, // 185.133.36.0 - 185.133.211.255 { 0xb985d400, 0xb985d7ff, REGISTRY_APNIC }, // 185.133.212.0 - 185.133.215.255 { 0xb985d800, 0xb98747ff, REGISTRY_RIPENCC }, // 185.133.216.0 - 185.135.71.255 { 0xb9874800, 0xb9874fff, REGISTRY_APNIC }, // 185.135.72.0 - 185.135.79.255 { 0xb9875000, 0xb98cf7ff, REGISTRY_RIPENCC }, // 185.135.80.0 - 185.140.247.255 { 0xb98cfc00, 0xb98e7fff, REGISTRY_RIPENCC }, // 185.140.252.0 - 185.142.127.255 { 0xb98e8400, 0xb9921fff, REGISTRY_RIPENCC }, // 185.142.132.0 - 185.146.31.255 { 0xb9922000, 0xb99223ff, REGISTRY_ARIN }, // 185.146.32.0 - 185.146.35.255 { 0xb9922400, 0xb992cfff, REGISTRY_RIPENCC }, // 185.146.36.0 - 185.146.207.255 { 0xb992d000, 0xb992d3ff, REGISTRY_APNIC }, // 185.146.208.0 - 185.146.211.255 { 0xb992d400, 0xb993bfff, REGISTRY_RIPENCC }, // 185.146.212.0 - 185.147.191.255 { 0xb993c000, 0xb993c3ff, REGISTRY_ARIN }, // 185.147.192.0 - 185.147.195.255 { 0xb993c400, 0xb9941fff, REGISTRY_RIPENCC }, // 185.147.196.0 - 185.148.31.255 { 0xb9942000, 0xb99423ff, REGISTRY_ARIN }, // 185.148.32.0 - 185.148.35.255 { 0xb9942400, 0xb996bcff, REGISTRY_RIPENCC }, // 185.148.36.0 - 185.150.188.255 { 0xb996bd00, 0xb996bfff, REGISTRY_ARIN }, // 185.150.189.0 - 185.150.191.255 { 0xb996c000, 0xb997b7ff, REGISTRY_RIPENCC }, // 185.150.192.0 - 185.151.183.255 { 0xb997b800, 0xb997bbff, REGISTRY_ARIN }, // 185.151.184.0 - 185.151.187.255 { 0xb997bc00, 0xb99ff3ff, REGISTRY_RIPENCC }, // 185.151.188.0 - 185.159.243.255 { 0xb99ff800, 0xb9a178ff, REGISTRY_RIPENCC }, // 185.159.248.0 - 185.161.120.255 { 0xb9a17a00, 0xb9a4f3ff, REGISTRY_RIPENCC }, // 185.161.122.0 - 185.164.243.255 { 0xb9a4f400, 0xb9a4f7ff, REGISTRY_APNIC }, // 185.164.244.0 - 185.164.247.255 { 0xb9a4f800, 0xb9a5d3ff, REGISTRY_RIPENCC }, // 185.164.248.0 - 185.165.211.255 { 0xb9a5d400, 0xb9a5d7ff, REGISTRY_ARIN }, // 185.165.212.0 - 185.165.215.255 { 0xb9a5d800, 0xb9a70bff, REGISTRY_RIPENCC }, // 185.165.216.0 - 185.167.11.255 { 0xb9a70c00, 0xb9a70fff, REGISTRY_APNIC }, // 185.167.12.0 - 185.167.15.255 { 0xb9a71000, 0xb9a73bff, REGISTRY_RIPENCC }, // 185.167.16.0 - 185.167.59.255 { 0xb9a73c00, 0xb9a73fff, REGISTRY_ARIN }, // 185.167.60.0 - 185.167.63.255 { 0xb9a74000, 0xb9a7b5ff, REGISTRY_RIPENCC }, // 185.167.64.0 - 185.167.181.255 { 0xb9a7b600, 0xb9a7b6ff, REGISTRY_ARIN }, // 185.167.182.0 - 185.167.182.255 { 0xb9a7b700, 0xb9a96bff, REGISTRY_RIPENCC }, // 185.167.183.0 - 185.169.107.255 { 0xb9a96c00, 0xb9a96fff, REGISTRY_ARIN }, // 185.169.108.0 - 185.169.111.255 { 0xb9a97000, 0xb9ab9fff, REGISTRY_RIPENCC }, // 185.169.112.0 - 185.171.159.255 { 0xb9aba400, 0xb9abcfff, REGISTRY_RIPENCC }, // 185.171.164.0 - 185.171.207.255 { 0xb9abd000, 0xb9abd3ff, REGISTRY_ARIN }, // 185.171.208.0 - 185.171.211.255 { 0xb9abd400, 0xb9acbbff, REGISTRY_RIPENCC }, // 185.171.212.0 - 185.172.187.255 { 0xb9acbc00, 0xb9acbfff, REGISTRY_ARIN }, // 185.172.188.0 - 185.172.191.255 { 0xb9acc000, 0xb9afe3ff, REGISTRY_RIPENCC }, // 185.172.192.0 - 185.175.227.255 { 0xb9afe400, 0xb9afe7ff, REGISTRY_APNIC }, // 185.175.228.0 - 185.175.231.255 { 0xb9afe800, 0xb9b02fff, REGISTRY_RIPENCC }, // 185.175.232.0 - 185.176.47.255 { 0xb9b03000, 0xb9b037ff, REGISTRY_ARIN }, // 185.176.48.0 - 185.176.55.255 { 0xb9b03800, 0xb9b28fff, REGISTRY_RIPENCC }, // 185.176.56.0 - 185.178.143.255 { 0xb9b29000, 0xb9b293ff, REGISTRY_APNIC }, // 185.178.144.0 - 185.178.147.255 { 0xb9b29400, 0xb9b3afff, REGISTRY_RIPENCC }, // 185.178.148.0 - 185.179.175.255 { 0xb9b3b400, 0xb9b40fff, REGISTRY_RIPENCC }, // 185.179.180.0 - 185.180.15.255 { 0xb9b41000, 0xb9b413ff, REGISTRY_ARIN }, // 185.180.16.0 - 185.180.19.255 { 0xb9b41400, 0xb9b827ff, REGISTRY_RIPENCC }, // 185.180.20.0 - 185.184.39.255 { 0xb9b82c00, 0xb9b91bff, REGISTRY_RIPENCC }, // 185.184.44.0 - 185.185.27.255 { 0xb9b91c00, 0xb9b91fff, REGISTRY_ARIN }, // 185.185.28.0 - 185.185.31.255 { 0xb9b92000, 0xb9ba3bff, REGISTRY_RIPENCC }, // 185.185.32.0 - 185.186.59.255 { 0xb9ba3c00, 0xb9ba3fff, REGISTRY_ARIN }, // 185.186.60.0 - 185.186.63.255 { 0xb9ba4000, 0xb9bc4bff, REGISTRY_RIPENCC }, // 185.186.64.0 - 185.188.75.255 { 0xb9bc4c00, 0xb9bc4fff, REGISTRY_ARIN }, // 185.188.76.0 - 185.188.79.255 { 0xb9bc5000, 0xb9bd9fff, REGISTRY_RIPENCC }, // 185.188.80.0 - 185.189.159.255 { 0xb9bda000, 0xb9bda3ff, REGISTRY_APNIC }, // 185.189.160.0 - 185.189.163.255 { 0xb9bda400, 0xb9bdefff, REGISTRY_RIPENCC }, // 185.189.164.0 - 185.189.239.255 { 0xb9bdf000, 0xb9bdf3ff, REGISTRY_APNIC }, // 185.189.240.0 - 185.189.243.255 { 0xb9bdf400, 0xb9bf7fff, REGISTRY_RIPENCC }, // 185.189.244.0 - 185.191.127.255 { 0xb9bf8000, 0xb9bf83ff, REGISTRY_ARIN }, // 185.191.128.0 - 185.191.131.255 { 0xb9bf8400, 0xb9c147ff, REGISTRY_RIPENCC }, // 185.191.132.0 - 185.193.71.255 { 0xb9c14800, 0xb9c14bff, REGISTRY_ARIN }, // 185.193.72.0 - 185.193.75.255 { 0xb9c14c00, 0xb9c1d3ff, REGISTRY_RIPENCC }, // 185.193.76.0 - 185.193.211.255 { 0xb9c1d400, 0xb9c1d7ff, REGISTRY_APNIC }, // 185.193.212.0 - 185.193.215.255 { 0xb9c1d800, 0xb9c273ff, REGISTRY_RIPENCC }, // 185.193.216.0 - 185.194.115.255 { 0xb9c27400, 0xb9c277ff, REGISTRY_ARIN }, // 185.194.116.0 - 185.194.119.255 { 0xb9c27800, 0xb9c2e3ff, REGISTRY_RIPENCC }, // 185.194.120.0 - 185.194.227.255 { 0xb9c2e400, 0xb9c2e7ff, REGISTRY_ARIN }, // 185.194.228.0 - 185.194.231.255 { 0xb9c2e800, 0xb9c50fff, REGISTRY_RIPENCC }, // 185.194.232.0 - 185.197.15.255 { 0xb9c51000, 0xb9c513ff, REGISTRY_ARIN }, // 185.197.16.0 - 185.197.19.255 { 0xb9c51400, 0xb9c75bff, REGISTRY_RIPENCC }, // 185.197.20.0 - 185.199.91.255 { 0xb9c75c00, 0xb9c75fff, REGISTRY_ARIN }, // 185.199.92.0 - 185.199.95.255 { 0xb9c76000, 0xb9c7efff, REGISTRY_RIPENCC }, // 185.199.96.0 - 185.199.239.255 { 0xb9c7f000, 0xb9c7f3ff, REGISTRY_ARIN }, // 185.199.240.0 - 185.199.243.255 { 0xb9c7f400, 0xb9c8ebff, REGISTRY_RIPENCC }, // 185.199.244.0 - 185.200.235.255 { 0xb9c8ec00, 0xb9c8efff, REGISTRY_ARIN }, // 185.200.236.0 - 185.200.239.255 { 0xb9c8f000, 0xb9c9e3ff, REGISTRY_RIPENCC }, // 185.200.240.0 - 185.201.227.255 { 0xb9c9e400, 0xb9c9e7ff, REGISTRY_ARIN }, // 185.201.228.0 - 185.201.231.255 { 0xb9c9e800, 0xb9ca27ff, REGISTRY_RIPENCC }, // 185.201.232.0 - 185.202.39.255 { 0xb9ca2800, 0xb9ca2bff, REGISTRY_ARIN }, // 185.202.40.0 - 185.202.43.255 { 0xb9ca2c00, 0xb9caa7ff, REGISTRY_RIPENCC }, // 185.202.44.0 - 185.202.167.255 { 0xb9caa800, 0xb9caabff, REGISTRY_ARIN }, // 185.202.168.0 - 185.202.171.255 { 0xb9caac00, 0xb9cb23ff, REGISTRY_RIPENCC }, // 185.202.172.0 - 185.203.35.255 { 0xb9cb2400, 0xb9cb27ff, REGISTRY_APNIC }, // 185.203.36.0 - 185.203.39.255 { 0xb9cb2800, 0xb9cbceff, REGISTRY_RIPENCC }, // 185.203.40.0 - 185.203.206.255 { 0xb9cbcf00, 0xb9cbcfff, REGISTRY_ARIN }, // 185.203.207.0 - 185.203.207.255 { 0xb9cbd000, 0xb9cd8bff, REGISTRY_RIPENCC }, // 185.203.208.0 - 185.205.139.255 { 0xb9cd8c00, 0xb9cd8fff, REGISTRY_APNIC }, // 185.205.140.0 - 185.205.143.255 { 0xb9cd9000, 0xb9cdb3ff, REGISTRY_RIPENCC }, // 185.205.144.0 - 185.205.179.255 { 0xb9cdb400, 0xb9cdb7ff, REGISTRY_ARIN }, // 185.205.180.0 - 185.205.183.255 { 0xb9cdb800, 0xb9cdc3ff, REGISTRY_RIPENCC }, // 185.205.184.0 - 185.205.195.255 { 0xb9cdc400, 0xb9cdc7ff, REGISTRY_ARIN }, // 185.205.196.0 - 185.205.199.255 { 0xb9cdc800, 0xb9cedbff, REGISTRY_RIPENCC }, // 185.205.200.0 - 185.206.219.255 { 0xb9cedc00, 0xb9cedfff, REGISTRY_ARIN }, // 185.206.220.0 - 185.206.223.255 { 0xb9cee000, 0xb9cf07ff, REGISTRY_RIPENCC }, // 185.206.224.0 - 185.207.7.255 { 0xb9cf0800, 0xb9cf0bff, REGISTRY_APNIC }, // 185.207.8.0 - 185.207.11.255 { 0xb9cf0c00, 0xb9cf5fff, REGISTRY_RIPENCC }, // 185.207.12.0 - 185.207.95.255 { 0xb9cf6000, 0xb9cf63ff, REGISTRY_ARIN }, // 185.207.96.0 - 185.207.99.255 { 0xb9cf6400, 0xb9d1afff, REGISTRY_RIPENCC }, // 185.207.100.0 - 185.209.175.255 { 0xb9d1b000, 0xb9d1b3ff, REGISTRY_ARIN }, // 185.209.176.0 - 185.209.179.255 { 0xb9d1b400, 0xb9d24bff, REGISTRY_RIPENCC }, // 185.209.180.0 - 185.210.75.255 { 0xb9d24c00, 0xb9d24fff, REGISTRY_ARIN }, // 185.210.76.0 - 185.210.79.255 { 0xb9d25000, 0xb9d403ff, REGISTRY_RIPENCC }, // 185.210.80.0 - 185.212.3.255 { 0xb9d40400, 0xb9d406ff, REGISTRY_ARIN }, // 185.212.4.0 - 185.212.6.255 { 0xb9d40700, 0xb9d437ff, REGISTRY_RIPENCC }, // 185.212.7.0 - 185.212.55.255 { 0xb9d43800, 0xb9d43bff, REGISTRY_ARIN }, // 185.212.56.0 - 185.212.59.255 { 0xb9d43c00, 0xb9d447ff, REGISTRY_RIPENCC }, // 185.212.60.0 - 185.212.71.255 { 0xb9d44800, 0xb9d44bff, REGISTRY_ARIN }, // 185.212.72.0 - 185.212.75.255 { 0xb9d44c00, 0xb9d477ff, REGISTRY_RIPENCC }, // 185.212.76.0 - 185.212.119.255 { 0xb9d47800, 0xb9d47bff, REGISTRY_APNIC }, // 185.212.120.0 - 185.212.123.255 { 0xb9d47c00, 0xb9d543ff, REGISTRY_RIPENCC }, // 185.212.124.0 - 185.213.67.255 { 0xb9d54400, 0xb9d547ff, REGISTRY_ARIN }, // 185.213.68.0 - 185.213.71.255 { 0xb9d54800, 0xb9d71fff, REGISTRY_RIPENCC }, // 185.213.72.0 - 185.215.31.255 { 0xb9d72000, 0xb9d723ff, REGISTRY_APNIC }, // 185.215.32.0 - 185.215.35.255 { 0xb9d72400, 0xb9d87bff, REGISTRY_RIPENCC }, // 185.215.36.0 - 185.216.123.255 { 0xb9d87c00, 0xb9d87fff, REGISTRY_ARIN }, // 185.216.124.0 - 185.216.127.255 { 0xb9d88000, 0xb9d903ff, REGISTRY_RIPENCC }, // 185.216.128.0 - 185.217.3.255 { 0xb9d90800, 0xb9dacbff, REGISTRY_RIPENCC }, // 185.217.8.0 - 185.218.203.255 { 0xb9dad000, 0xb9e03fff, REGISTRY_RIPENCC }, // 185.218.208.0 - 185.224.63.255 { 0xb9e04000, 0xb9e043ff, REGISTRY_ARIN }, // 185.224.64.0 - 185.224.67.255 { 0xb9e04400, 0xb9e3c7ff, REGISTRY_RIPENCC }, // 185.224.68.0 - 185.227.199.255 { 0xb9e3c800, 0xb9e3cbff, REGISTRY_ARIN }, // 185.227.200.0 - 185.227.203.255 { 0xb9e3cc00, 0xb9ec87ff, REGISTRY_RIPENCC }, // 185.227.204.0 - 185.236.135.255 { 0xb9ec8800, 0xb9ec8bff, REGISTRY_ARIN }, // 185.236.136.0 - 185.236.139.255 { 0xb9ec8c00, 0xb9ed63ff, REGISTRY_RIPENCC }, // 185.236.140.0 - 185.237.99.255 { 0xb9ed6600, 0xb9ee1dff, REGISTRY_RIPENCC }, // 185.237.102.0 - 185.238.29.255 { 0xb9ee1e00, 0xb9ee1eff, REGISTRY_LACNIC }, // 185.238.30.0 - 185.238.30.255 { 0xb9ee1f00, 0xb9ee1fff, REGISTRY_ARIN }, // 185.238.31.0 - 185.238.31.255 { 0xb9ee2000, 0xb9ee87ff, REGISTRY_RIPENCC }, // 185.238.32.0 - 185.238.135.255 { 0xb9ee8c00, 0xb9f01fff, REGISTRY_RIPENCC }, // 185.238.140.0 - 185.240.31.255 { 0xb9f02000, 0xb9f023ff, REGISTRY_ARIN }, // 185.240.32.0 - 185.240.35.255 { 0xb9f02400, 0xb9f225ff, REGISTRY_RIPENCC }, // 185.240.36.0 - 185.242.37.255 { 0xb9f22600, 0xb9f227ff, REGISTRY_APNIC }, // 185.242.38.0 - 185.242.39.255 { 0xb9f22800, 0xb9f99bff, REGISTRY_RIPENCC }, // 185.242.40.0 - 185.249.155.255 { 0xb9f9a000, 0xb9fbabff, REGISTRY_RIPENCC }, // 185.249.160.0 - 185.251.171.255 { 0xb9fbac00, 0xb9fbafff, REGISTRY_APNIC }, // 185.251.172.0 - 185.251.175.255 { 0xb9fbb000, 0xb9ffffff, REGISTRY_RIPENCC }, // 185.251.176.0 - 185.255.255.255 { 0xba000000, 0xbabecfff, REGISTRY_LACNIC }, // 186.0.0.0 - 186.190.207.255 { 0xbabed000, 0xbabedfff, REGISTRY_ARIN }, // 186.190.208.0 - 186.190.223.255 { 0xbabee000, 0xbb3fe7ff, REGISTRY_LACNIC }, // 186.190.224.0 - 187.63.231.255 { 0xbb3fec00, 0xbb66c3ff, REGISTRY_LACNIC }, // 187.63.236.0 - 187.102.195.255 { 0xbb66c600, 0xbbffffff, REGISTRY_LACNIC }, // 187.102.198.0 - 187.255.255.255 { 0xbc000000, 0xbc005fff, REGISTRY_RIPENCC }, // 188.0.0.0 - 188.0.95.255 { 0xbc006000, 0xbc009fff, REGISTRY_RIPENCC }, // 188.0.96.0 - 188.0.159.255 { 0xbc00a000, 0xbc00bfff, REGISTRY_RIPENCC }, // 188.0.160.0 - 188.0.191.255 { 0xbc00c000, 0xbc00ffff, REGISTRY_RIPENCC }, // 188.0.192.0 - 188.0.255.255 { 0xbc010000, 0xbc01ffff, REGISTRY_RIPENCC }, // 188.1.0.0 - 188.1.255.255 { 0xbc020000, 0xbc419fff, REGISTRY_RIPENCC }, // 188.2.0.0 - 188.65.159.255 { 0xbc41a800, 0xbc5d8fff, REGISTRY_RIPENCC }, // 188.65.168.0 - 188.93.143.255 { 0xbc5d9000, 0xbc5d97ff, REGISTRY_ARIN }, // 188.93.144.0 - 188.93.151.255 { 0xbc5d9800, 0xbc740fff, REGISTRY_RIPENCC }, // 188.93.152.0 - 188.116.15.255 { 0xbc741000, 0xbc7411ff, REGISTRY_ARIN }, // 188.116.16.0 - 188.116.17.255 { 0xbc741200, 0xbc77bfff, REGISTRY_RIPENCC }, // 188.116.18.0 - 188.119.191.255 { 0xbc77c000, 0xbc77ffff, REGISTRY_APNIC }, // 188.119.192.0 - 188.119.255.255 { 0xbc780000, 0xbc7dafff, REGISTRY_RIPENCC }, // 188.120.0.0 - 188.125.175.255 { 0xbc7db000, 0xbc7dbfff, REGISTRY_APNIC }, // 188.125.176.0 - 188.125.191.255 { 0xbc7dc000, 0xbc837fff, REGISTRY_RIPENCC }, // 188.125.192.0 - 188.131.127.255 { 0xbc838000, 0xbc83ffff, REGISTRY_APNIC }, // 188.131.128.0 - 188.131.255.255 { 0xbc840000, 0xbc877fff, REGISTRY_RIPENCC }, // 188.132.0.0 - 188.135.127.255 { 0xbc878000, 0xbc87ffff, REGISTRY_ARIN }, // 188.135.128.0 - 188.135.255.255 { 0xbc880000, 0xbcbdffff, REGISTRY_RIPENCC }, // 188.136.0.0 - 188.189.255.255 { 0xbcbe0000, 0xbcbe5fff, REGISTRY_RIPENCC }, // 188.190.0.0 - 188.190.95.255 { 0xbcbe6000, 0xbcbe7fff, REGISTRY_RIPENCC }, // 188.190.96.0 - 188.190.127.255 { 0xbcbe8000, 0xbcbf2fff, REGISTRY_RIPENCC }, // 188.190.128.0 - 188.191.47.255 { 0xbcbf3000, 0xbcbf33ff, REGISTRY_RIPENCC }, // 188.191.48.0 - 188.191.51.255 { 0xbcbf3400, 0xbcbf3bff, REGISTRY_RIPENCC }, // 188.191.52.0 - 188.191.59.255 { 0xbcbf3c00, 0xbcbf3fff, REGISTRY_RIPENCC }, // 188.191.60.0 - 188.191.63.255 { 0xbcbf4000, 0xbcbf5fff, REGISTRY_RIPENCC }, // 188.191.64.0 - 188.191.95.255 { 0xbcbf6000, 0xbcbf6fff, REGISTRY_RIPENCC }, // 188.191.96.0 - 188.191.111.255 { 0xbcbf7000, 0xbcbf87ff, REGISTRY_RIPENCC }, // 188.191.112.0 - 188.191.135.255 { 0xbcbf8800, 0xbcbf8fff, REGISTRY_RIPENCC }, // 188.191.136.0 - 188.191.143.255 { 0xbcbf9000, 0xbcbf92ff, REGISTRY_RIPENCC }, // 188.191.144.0 - 188.191.146.255 { 0xbcbf9300, 0xbcbf93ff, REGISTRY_RIPENCC }, // 188.191.147.0 - 188.191.147.255 { 0xbcbf9400, 0xbcbff7ff, REGISTRY_RIPENCC }, // 188.191.148.0 - 188.191.247.255 { 0xbcbff800, 0xbcd18fff, REGISTRY_RIPENCC }, // 188.191.248.0 - 188.209.143.255 { 0xbcd19000, 0xbcd197ff, REGISTRY_ARIN }, // 188.209.144.0 - 188.209.151.255 { 0xbcd19800, 0xbcd199ff, REGISTRY_RIPENCC }, // 188.209.152.0 - 188.209.153.255 { 0xbcd19a00, 0xbcd19aff, REGISTRY_APNIC }, // 188.209.154.0 - 188.209.154.255 { 0xbcd19b00, 0xbcd425ff, REGISTRY_RIPENCC }, // 188.209.155.0 - 188.212.37.255 { 0xbcd42600, 0xbcd426ff, REGISTRY_ARIN }, // 188.212.38.0 - 188.212.38.255 { 0xbcd42700, 0xbcd63fff, REGISTRY_RIPENCC }, // 188.212.39.0 - 188.214.63.255 { 0xbcd64000, 0xbcd64fff, REGISTRY_APNIC }, // 188.214.64.0 - 188.214.79.255 { 0xbcd65000, 0xbceeffff, REGISTRY_RIPENCC }, // 188.214.80.0 - 188.238.255.255 { 0xbcef0000, 0xbcefb7ff, REGISTRY_RIPENCC }, // 188.239.0.0 - 188.239.183.255 { 0xbcefb800, 0xbcefbbff, REGISTRY_RIPENCC }, // 188.239.184.0 - 188.239.187.255 { 0xbcefbc00, 0xbcefffff, REGISTRY_RIPENCC }, // 188.239.188.0 - 188.239.255.255 { 0xbcf00000, 0xbcf1deff, REGISTRY_RIPENCC }, // 188.240.0.0 - 188.241.222.255 { 0xbcf1df00, 0xbcf1dfff, REGISTRY_ARIN }, // 188.241.223.0 - 188.241.223.255 { 0xbcf1e000, 0xbcffffff, REGISTRY_RIPENCC }, // 188.241.224.0 - 188.255.255.255 { 0xbd000000, 0xbd01bfff, REGISTRY_LACNIC }, // 189.0.0.0 - 189.1.191.255 { 0xbd01c000, 0xbd01ffff, REGISTRY_APNIC }, // 189.1.192.0 - 189.1.255.255 { 0xbd020000, 0xbd1c3fff, REGISTRY_LACNIC }, // 189.2.0.0 - 189.28.63.255 { 0xbd1c4000, 0xbd1c5fff, REGISTRY_RIPENCC }, // 189.28.64.0 - 189.28.95.255 { 0xbd1c6000, 0xbd1c7fff, REGISTRY_APNIC }, // 189.28.96.0 - 189.28.127.255 { 0xbd1c8000, 0xbd24efff, REGISTRY_LACNIC }, // 189.28.128.0 - 189.36.239.255 { 0xbd24f400, 0xbe0945ff, REGISTRY_LACNIC }, // 189.36.244.0 - 190.9.69.255 { 0xbe094800, 0xbe0963ff, REGISTRY_LACNIC }, // 190.9.72.0 - 190.9.99.255 { 0xbe096800, 0xbe097eff, REGISTRY_LACNIC }, // 190.9.104.0 - 190.9.126.255 { 0xbe098000, 0xbe5c7fff, REGISTRY_LACNIC }, // 190.9.128.0 - 190.92.127.255 { 0xbe5c8000, 0xbe5ca7ff, REGISTRY_ARIN }, // 190.92.128.0 - 190.92.167.255 { 0xbe5ca800, 0xbe5cafff, REGISTRY_RIPENCC }, // 190.92.168.0 - 190.92.175.255 { 0xbe5cb000, 0xbe5cbfff, REGISTRY_ARIN }, // 190.92.176.0 - 190.92.191.255 { 0xbe5cc000, 0xbe5cffff, REGISTRY_APNIC }, // 190.92.192.0 - 190.92.255.255 { 0xbe5d0000, 0xbe6663ff, REGISTRY_LACNIC }, // 190.93.0.0 - 190.102.99.255 { 0xbe666400, 0xbe6667ff, REGISTRY_RIPENCC }, // 190.102.100.0 - 190.102.103.255 { 0xbe666800, 0xbe666fff, REGISTRY_ARIN }, // 190.102.104.0 - 190.102.111.255 { 0xbe667000, 0xbe6a9fff, REGISTRY_LACNIC }, // 190.102.112.0 - 190.106.159.255 { 0xbe6aa000, 0xbe6abfff, REGISTRY_RIPENCC }, // 190.106.160.0 - 190.106.191.255 { 0xbe6ac000, 0xbe7c2bff, REGISTRY_LACNIC }, // 190.106.192.0 - 190.124.43.255 { 0xbe7c2c00, 0xbe7c2fff, REGISTRY_ARIN }, // 190.124.44.0 - 190.124.47.255 { 0xbe7c3000, 0xbe9787ff, REGISTRY_LACNIC }, // 190.124.48.0 - 190.151.135.255 { 0xbe978800, 0xbe9789ff, REGISTRY_ARIN }, // 190.151.136.0 - 190.151.137.255 { 0xbe978a00, 0xbed38fff, REGISTRY_LACNIC }, // 190.151.138.0 - 190.211.143.255 { 0xbed39000, 0xbed390ff, REGISTRY_RIPENCC }, // 190.211.144.0 - 190.211.144.255 { 0xbed39100, 0xbed394ff, REGISTRY_LACNIC }, // 190.211.145.0 - 190.211.148.255 { 0xbed39500, 0xbed397ff, REGISTRY_ARIN }, // 190.211.149.0 - 190.211.151.255 { 0xbed39800, 0xbf0537ff, REGISTRY_LACNIC }, // 190.211.152.0 - 191.5.55.255 { 0xbf053800, 0xbf053bff, REGISTRY_ARIN }, // 191.5.56.0 - 191.5.59.255 { 0xbf053c00, 0xbf5fffff, REGISTRY_LACNIC }, // 191.5.60.0 - 191.95.255.255 { 0xbf600000, 0xbf60ffff, REGISTRY_RIPENCC }, // 191.96.0.0 - 191.96.255.255 { 0xbf610000, 0xbf64ffff, REGISTRY_LACNIC }, // 191.97.0.0 - 191.100.255.255 { 0xbf650000, 0xbf65ffff, REGISTRY_RIPENCC }, // 191.101.0.0 - 191.101.255.255 { 0xbf660000, 0xbfffffff, REGISTRY_LACNIC }, // 191.102.0.0 - 191.255.255.255 { 0xc0000100, 0xc00001ff, REGISTRY_ARIN }, // 192.0.1.0 - 192.0.1.255 { 0xc0000300, 0xc0051bff, REGISTRY_ARIN }, // 192.0.3.0 - 192.5.27.255 { 0xc0051c00, 0xc0051eff, REGISTRY_RIPENCC }, // 192.5.28.0 - 192.5.30.255 { 0xc0051f00, 0xc00523ff, REGISTRY_ARIN }, // 192.5.31.0 - 192.5.35.255 { 0xc0052400, 0xc00524ff, REGISTRY_RIPENCC }, // 192.5.36.0 - 192.5.36.255 { 0xc0052500, 0xc00531ff, REGISTRY_ARIN }, // 192.5.37.0 - 192.5.49.255 { 0xc0053200, 0xc00532ff, REGISTRY_RIPENCC }, // 192.5.50.0 - 192.5.50.255 { 0xc0053300, 0xc0053aff, REGISTRY_ARIN }, // 192.5.51.0 - 192.5.58.255 { 0xc0053b00, 0xc0053bff, REGISTRY_RIPENCC }, // 192.5.59.0 - 192.5.59.255 { 0xc0053c00, 0xc0053cff, REGISTRY_ARIN }, // 192.5.60.0 - 192.5.60.255 { 0xc0053d00, 0xc0053eff, REGISTRY_RIPENCC }, // 192.5.61.0 - 192.5.62.255 { 0xc0053f00, 0xc00559ff, REGISTRY_ARIN }, // 192.5.63.0 - 192.5.89.255 { 0xc0055a00, 0xc0055aff, REGISTRY_APNIC }, // 192.5.90.0 - 192.5.90.255 { 0xc0055b00, 0xc00560ff, REGISTRY_ARIN }, // 192.5.91.0 - 192.5.96.255 { 0xc0056100, 0xc00561ff, REGISTRY_RIPENCC }, // 192.5.97.0 - 192.5.97.255 { 0xc0056200, 0xc0058dff, REGISTRY_ARIN }, // 192.5.98.0 - 192.5.141.255 { 0xc0058e00, 0xc0058eff, REGISTRY_RIPENCC }, // 192.5.142.0 - 192.5.142.255 { 0xc0058f00, 0xc00590ff, REGISTRY_ARIN }, // 192.5.143.0 - 192.5.144.255 { 0xc0059100, 0xc00591ff, REGISTRY_RIPENCC }, // 192.5.145.0 - 192.5.145.255 { 0xc0059200, 0xc005a1ff, REGISTRY_ARIN }, // 192.5.146.0 - 192.5.161.255 { 0xc005a200, 0xc005a2ff, REGISTRY_RIPENCC }, // 192.5.162.0 - 192.5.162.255 { 0xc005a300, 0xc005d7ff, REGISTRY_ARIN }, // 192.5.163.0 - 192.5.215.255 { 0xc005d800, 0xc005d8ff, REGISTRY_APNIC }, // 192.5.216.0 - 192.5.216.255 { 0xc005d900, 0xc005eeff, REGISTRY_ARIN }, // 192.5.217.0 - 192.5.238.255 { 0xc005ef00, 0xc005efff, REGISTRY_RIPENCC }, // 192.5.239.0 - 192.5.239.255 { 0xc005f100, 0xc005fdff, REGISTRY_ARIN }, // 192.5.241.0 - 192.5.253.255 { 0xc005fe00, 0xc005feff, REGISTRY_RIPENCC }, // 192.5.254.0 - 192.5.254.255 { 0xc005ff00, 0xc0063fff, REGISTRY_ARIN }, // 192.5.255.0 - 192.6.63.255 { 0xc0064000, 0xc00643ff, REGISTRY_RIPENCC }, // 192.6.64.0 - 192.6.67.255 { 0xc0064400, 0xc006abff, REGISTRY_ARIN }, // 192.6.68.0 - 192.6.171.255 { 0xc006ac00, 0xc006afff, REGISTRY_RIPENCC }, // 192.6.172.0 - 192.6.175.255 { 0xc006b000, 0xc006fbff, REGISTRY_ARIN }, // 192.6.176.0 - 192.6.251.255 { 0xc006fc00, 0xc006ffff, REGISTRY_RIPENCC }, // 192.6.252.0 - 192.6.255.255 { 0xc0070000, 0xc0081fff, REGISTRY_ARIN }, // 192.7.0.0 - 192.8.31.255 { 0xc0082000, 0xc0082bff, REGISTRY_APNIC }, // 192.8.32.0 - 192.8.43.255 { 0xc0082c00, 0xc00873ff, REGISTRY_ARIN }, // 192.8.44.0 - 192.8.115.255 { 0xc0087400, 0xc00877ff, REGISTRY_APNIC }, // 192.8.116.0 - 192.8.119.255 { 0xc0087800, 0xc0089fff, REGISTRY_ARIN }, // 192.8.120.0 - 192.8.159.255 { 0xc008a000, 0xc008b0ff, REGISTRY_APNIC }, // 192.8.160.0 - 192.8.176.255 { 0xc008b100, 0xc008b2ff, REGISTRY_ARIN }, // 192.8.177.0 - 192.8.178.255 { 0xc008b300, 0xc008b4ff, REGISTRY_APNIC }, // 192.8.179.0 - 192.8.180.255 { 0xc008b500, 0xc008b5ff, REGISTRY_ARIN }, // 192.8.181.0 - 192.8.181.255 { 0xc008b600, 0xc008b6ff, REGISTRY_APNIC }, // 192.8.182.0 - 192.8.182.255 { 0xc008b700, 0xc008b7ff, REGISTRY_ARIN }, // 192.8.183.0 - 192.8.183.255 { 0xc008b800, 0xc008ffff, REGISTRY_APNIC }, // 192.8.184.0 - 192.8.255.255 { 0xc0090000, 0xc00c00ff, REGISTRY_ARIN }, // 192.9.0.0 - 192.12.0.255 { 0xc00c0100, 0xc00c01ff, REGISTRY_RIPENCC }, // 192.12.1.0 - 192.12.1.255 { 0xc00c0200, 0xc00c2eff, REGISTRY_ARIN }, // 192.12.2.0 - 192.12.46.255 { 0xc00c2f00, 0xc00c2fff, REGISTRY_RIPENCC }, // 192.12.47.0 - 192.12.47.255 { 0xc00c3000, 0xc00c35ff, REGISTRY_ARIN }, // 192.12.48.0 - 192.12.53.255 { 0xc00c3600, 0xc00c36ff, REGISTRY_RIPENCC }, // 192.12.54.0 - 192.12.54.255 { 0xc00c3700, 0xc00c47ff, REGISTRY_ARIN }, // 192.12.55.0 - 192.12.71.255 { 0xc00c4800, 0xc00c49ff, REGISTRY_RIPENCC }, // 192.12.72.0 - 192.12.73.255 { 0xc00c4a00, 0xc00c4bff, REGISTRY_ARIN }, // 192.12.74.0 - 192.12.75.255 { 0xc00c4c00, 0xc00c4cff, REGISTRY_APNIC }, // 192.12.76.0 - 192.12.76.255 { 0xc00c4d00, 0xc00c4dff, REGISTRY_RIPENCC }, // 192.12.77.0 - 192.12.77.255 { 0xc00c4e00, 0xc00c50ff, REGISTRY_ARIN }, // 192.12.78.0 - 192.12.80.255 { 0xc00c5100, 0xc00c51ff, REGISTRY_RIPENCC }, // 192.12.81.0 - 192.12.81.255 { 0xc00c5200, 0xc00c5fff, REGISTRY_ARIN }, // 192.12.82.0 - 192.12.95.255 { 0xc00c6000, 0xc00c60ff, REGISTRY_RIPENCC }, // 192.12.96.0 - 192.12.96.255 { 0xc00c6100, 0xc00c62ff, REGISTRY_ARIN }, // 192.12.97.0 - 192.12.98.255 { 0xc00c6300, 0xc00c63ff, REGISTRY_RIPENCC }, // 192.12.99.0 - 192.12.99.255 { 0xc00c6400, 0xc00c6cff, REGISTRY_ARIN }, // 192.12.100.0 - 192.12.108.255 { 0xc00c6d00, 0xc00c6dff, REGISTRY_APNIC }, // 192.12.109.0 - 192.12.109.255 { 0xc00c6e00, 0xc00c6fff, REGISTRY_AFRINIC }, // 192.12.110.0 - 192.12.111.255 { 0xc00c7000, 0xc00c73ff, REGISTRY_LACNIC }, // 192.12.112.0 - 192.12.115.255 { 0xc00c7400, 0xc00c75ff, REGISTRY_AFRINIC }, // 192.12.116.0 - 192.12.117.255 { 0xc00c7600, 0xc00c76ff, REGISTRY_LACNIC }, // 192.12.118.0 - 192.12.118.255 { 0xc00c7700, 0xc00cbfff, REGISTRY_ARIN }, // 192.12.119.0 - 192.12.191.255 { 0xc00cc000, 0xc00cc2ff, REGISTRY_RIPENCC }, // 192.12.192.0 - 192.12.194.255 { 0xc00cc300, 0xc00cd8ff, REGISTRY_ARIN }, // 192.12.195.0 - 192.12.216.255 { 0xc00cd900, 0xc00cdaff, REGISTRY_RIPENCC }, // 192.12.217.0 - 192.12.218.255 { 0xc00cdb00, 0xc00ce6ff, REGISTRY_ARIN }, // 192.12.219.0 - 192.12.230.255 { 0xc00ce700, 0xc00ce8ff, REGISTRY_RIPENCC }, // 192.12.231.0 - 192.12.232.255 { 0xc00ce900, 0xc00ceaff, REGISTRY_ARIN }, // 192.12.233.0 - 192.12.234.255 { 0xc00ceb00, 0xc00cebff, REGISTRY_RIPENCC }, // 192.12.235.0 - 192.12.235.255 { 0xc00cec00, 0xc00cf6ff, REGISTRY_ARIN }, // 192.12.236.0 - 192.12.246.255 { 0xc00cf700, 0xc00cf7ff, REGISTRY_RIPENCC }, // 192.12.247.0 - 192.12.247.255 { 0xc00cf800, 0xc00effff, REGISTRY_ARIN }, // 192.12.248.0 - 192.14.255.255 { 0xc00f0000, 0xc00fffff, REGISTRY_RIPENCC }, // 192.15.0.0 - 192.15.255.255 { 0xc0100000, 0xc0107aff, REGISTRY_ARIN }, // 192.16.0.0 - 192.16.122.255 { 0xc0107b00, 0xc01097ff, REGISTRY_RIPENCC }, // 192.16.123.0 - 192.16.151.255 { 0xc0109800, 0xc0109aff, REGISTRY_RIPENCC }, // 192.16.152.0 - 192.16.154.255 { 0xc0109b00, 0xc010a6ff, REGISTRY_RIPENCC }, // 192.16.155.0 - 192.16.166.255 { 0xc010a700, 0xc010b1ff, REGISTRY_ARIN }, // 192.16.167.0 - 192.16.177.255 { 0xc010b200, 0xc010b4ff, REGISTRY_APNIC }, // 192.16.178.0 - 192.16.180.255 { 0xc010b500, 0xc010b6ff, REGISTRY_ARIN }, // 192.16.181.0 - 192.16.182.255 { 0xc010b700, 0xc010caff, REGISTRY_RIPENCC }, // 192.16.183.0 - 192.16.202.255 { 0xc010cb00, 0xc012c2ff, REGISTRY_ARIN }, // 192.16.203.0 - 192.18.194.255 { 0xc012c300, 0xc012c3ff, REGISTRY_RIPENCC }, // 192.18.195.0 - 192.18.195.255 { 0xc012c400, 0xc019b3ff, REGISTRY_ARIN }, // 192.18.196.0 - 192.25.179.255 { 0xc019b400, 0xc019b7ff, REGISTRY_RIPENCC }, // 192.25.180.0 - 192.25.183.255 { 0xc019b800, 0xc019c7ff, REGISTRY_ARIN }, // 192.25.184.0 - 192.25.199.255 { 0xc019c800, 0xc019cbff, REGISTRY_RIPENCC }, // 192.25.200.0 - 192.25.203.255 { 0xc019cc00, 0xc019cfff, REGISTRY_ARIN }, // 192.25.204.0 - 192.25.207.255 { 0xc019d000, 0xc019d3ff, REGISTRY_RIPENCC }, // 192.25.208.0 - 192.25.211.255 { 0xc019d400, 0xc019e7ff, REGISTRY_ARIN }, // 192.25.212.0 - 192.25.231.255 { 0xc019e800, 0xc019ebff, REGISTRY_RIPENCC }, // 192.25.232.0 - 192.25.235.255 { 0xc019ec00, 0xc019f3ff, REGISTRY_ARIN }, // 192.25.236.0 - 192.25.243.255 { 0xc019f400, 0xc019f7ff, REGISTRY_RIPENCC }, // 192.25.244.0 - 192.25.247.255 { 0xc019f800, 0xc01a1bff, REGISTRY_ARIN }, // 192.25.248.0 - 192.26.27.255 { 0xc01a1c00, 0xc01a2fff, REGISTRY_RIPENCC }, // 192.26.28.0 - 192.26.47.255 { 0xc01a3000, 0xc01a5aff, REGISTRY_ARIN }, // 192.26.48.0 - 192.26.90.255 { 0xc01a5b00, 0xc01a5bff, REGISTRY_APNIC }, // 192.26.91.0 - 192.26.91.255 { 0xc01a5c00, 0xc01a5cff, REGISTRY_ARIN }, // 192.26.92.0 - 192.26.92.255 { 0xc01a5d00, 0xc01a5eff, REGISTRY_APNIC }, // 192.26.93.0 - 192.26.94.255 { 0xc01a5f00, 0xc01a5fff, REGISTRY_ARIN }, // 192.26.95.0 - 192.26.95.255 { 0xc01a6000, 0xc01a60ff, REGISTRY_APNIC }, // 192.26.96.0 - 192.26.96.255 { 0xc01a6100, 0xc01a68ff, REGISTRY_ARIN }, // 192.26.97.0 - 192.26.104.255 { 0xc01a6900, 0xc01a6dff, REGISTRY_RIPENCC }, // 192.26.105.0 - 192.26.109.255 { 0xc01a6e00, 0xc01a6eff, REGISTRY_APNIC }, // 192.26.110.0 - 192.26.110.255 { 0xc01a6f00, 0xc01a80ff, REGISTRY_RIPENCC }, // 192.26.111.0 - 192.26.128.255 { 0xc01a8100, 0xc01a84ff, REGISTRY_ARIN }, // 192.26.129.0 - 192.26.132.255 { 0xc01a8500, 0xc01a87ff, REGISTRY_RIPENCC }, // 192.26.133.0 - 192.26.135.255 { 0xc01a8800, 0xc01a99ff, REGISTRY_ARIN }, // 192.26.136.0 - 192.26.153.255 { 0xc01a9a00, 0xc01ac1ff, REGISTRY_RIPENCC }, // 192.26.154.0 - 192.26.193.255 { 0xc01ac200, 0xc01ad6ff, REGISTRY_ARIN }, // 192.26.194.0 - 192.26.214.255 { 0xc01ad800, 0xc01ae6ff, REGISTRY_APNIC }, // 192.26.216.0 - 192.26.230.255 { 0xc01ae700, 0xc01ae7ff, REGISTRY_RIPENCC }, // 192.26.231.0 - 192.26.231.255 { 0xc01ae800, 0xc01ae8ff, REGISTRY_APNIC }, // 192.26.232.0 - 192.26.232.255 { 0xc01ae900, 0xc01ae9ff, REGISTRY_ARIN }, // 192.26.233.0 - 192.26.233.255 { 0xc01aea00, 0xc01aeaff, REGISTRY_RIPENCC }, // 192.26.234.0 - 192.26.234.255 { 0xc01aeb00, 0xc01aebff, REGISTRY_ARIN }, // 192.26.235.0 - 192.26.235.255 { 0xc01aec00, 0xc01aefff, REGISTRY_RIPENCC }, // 192.26.236.0 - 192.26.239.255 { 0xc01af000, 0xc01c77ff, REGISTRY_ARIN }, // 192.26.240.0 - 192.28.119.255 { 0xc01c7800, 0xc01c7bff, REGISTRY_APNIC }, // 192.28.120.0 - 192.28.123.255 { 0xc01c7c00, 0xc01c83ff, REGISTRY_RIPENCC }, // 192.28.124.0 - 192.28.131.255 { 0xc01c8400, 0xc01f0dff, REGISTRY_ARIN }, // 192.28.132.0 - 192.31.13.255 { 0xc01f0e00, 0xc01f0eff, REGISTRY_RIPENCC }, // 192.31.14.0 - 192.31.14.255 { 0xc01f0f00, 0xc01f16ff, REGISTRY_ARIN }, // 192.31.15.0 - 192.31.22.255 { 0xc01f1700, 0xc01f17ff, REGISTRY_RIPENCC }, // 192.31.23.0 - 192.31.23.255 { 0xc01f1800, 0xc01f19ff, REGISTRY_ARIN }, // 192.31.24.0 - 192.31.25.255 { 0xc01f1a00, 0xc01f1bff, REGISTRY_RIPENCC }, // 192.31.26.0 - 192.31.27.255 { 0xc01f1c00, 0xc01f1eff, REGISTRY_ARIN }, // 192.31.28.0 - 192.31.30.255 { 0xc01f1f00, 0xc01f1fff, REGISTRY_RIPENCC }, // 192.31.31.0 - 192.31.31.255 { 0xc01f2000, 0xc01f27ff, REGISTRY_ARIN }, // 192.31.32.0 - 192.31.39.255 { 0xc01f2800, 0xc01f28ff, REGISTRY_RIPENCC }, // 192.31.40.0 - 192.31.40.255 { 0xc01f2900, 0xc01f3dff, REGISTRY_ARIN }, // 192.31.41.0 - 192.31.61.255 { 0xc01f3e00, 0xc01f3eff, REGISTRY_RIPENCC }, // 192.31.62.0 - 192.31.62.255 { 0xc01f3f00, 0xc01f65ff, REGISTRY_ARIN }, // 192.31.63.0 - 192.31.101.255 { 0xc01f6600, 0xc01f66ff, REGISTRY_RIPENCC }, // 192.31.102.0 - 192.31.102.255 { 0xc01f6700, 0xc01f73ff, REGISTRY_ARIN }, // 192.31.103.0 - 192.31.115.255 { 0xc01f7400, 0xc01f7cff, REGISTRY_APNIC }, // 192.31.116.0 - 192.31.124.255 { 0xc01f7d00, 0xc01fa5ff, REGISTRY_ARIN }, // 192.31.125.0 - 192.31.165.255 { 0xc01fa600, 0xc01fabff, REGISTRY_RIPENCC }, // 192.31.166.0 - 192.31.171.255 { 0xc01fac00, 0xc01fc3ff, REGISTRY_ARIN }, // 192.31.172.0 - 192.31.195.255 { 0xc01fc500, 0xc01fceff, REGISTRY_APNIC }, // 192.31.197.0 - 192.31.206.255 { 0xc01fcf00, 0xc01fd2ff, REGISTRY_ARIN }, // 192.31.207.0 - 192.31.210.255 { 0xc01fd300, 0xc01fd3ff, REGISTRY_RIPENCC }, // 192.31.211.0 - 192.31.211.255 { 0xc01fd400, 0xc01fe6ff, REGISTRY_ARIN }, // 192.31.212.0 - 192.31.230.255 { 0xc01fe700, 0xc01fe7ff, REGISTRY_RIPENCC }, // 192.31.231.0 - 192.31.231.255 { 0xc01fe800, 0xc01ffbff, REGISTRY_ARIN }, // 192.31.232.0 - 192.31.251.255 { 0xc01ffc00, 0xc01ffcff, REGISTRY_RIPENCC }, // 192.31.252.0 - 192.31.252.255 { 0xc01ffd00, 0xc02109ff, REGISTRY_ARIN }, // 192.31.253.0 - 192.33.9.255 { 0xc0210a00, 0xc0210aff, REGISTRY_AFRINIC }, // 192.33.10.0 - 192.33.10.255 { 0xc0210b00, 0xc0210eff, REGISTRY_ARIN }, // 192.33.11.0 - 192.33.14.255 { 0xc0210f00, 0xc02110ff, REGISTRY_RIPENCC }, // 192.33.15.0 - 192.33.16.255 { 0xc0211100, 0xc02123ff, REGISTRY_ARIN }, // 192.33.17.0 - 192.33.35.255 { 0xc0212400, 0xc02124ff, REGISTRY_RIPENCC }, // 192.33.36.0 - 192.33.36.255 { 0xc0212500, 0xc02156ff, REGISTRY_ARIN }, // 192.33.37.0 - 192.33.86.255 { 0xc0215700, 0xc0216fff, REGISTRY_RIPENCC }, // 192.33.87.0 - 192.33.111.255 { 0xc0217000, 0xc02170ff, REGISTRY_ARIN }, // 192.33.112.0 - 192.33.112.255 { 0xc0217100, 0xc02172ff, REGISTRY_RIPENCC }, // 192.33.113.0 - 192.33.114.255 { 0xc0217300, 0xc02175ff, REGISTRY_ARIN }, // 192.33.115.0 - 192.33.117.255 { 0xc0217600, 0xc0217fff, REGISTRY_RIPENCC }, // 192.33.118.0 - 192.33.127.255 { 0xc0218000, 0xc02181ff, REGISTRY_ARIN }, // 192.33.128.0 - 192.33.129.255 { 0xc0218200, 0xc02183ff, REGISTRY_RIPENCC }, // 192.33.130.0 - 192.33.131.255 { 0xc0218400, 0xc02186ff, REGISTRY_ARIN }, // 192.33.132.0 - 192.33.134.255 { 0xc0218700, 0xc02187ff, REGISTRY_APNIC }, // 192.33.135.0 - 192.33.135.255 { 0xc0218800, 0xc0218eff, REGISTRY_ARIN }, // 192.33.136.0 - 192.33.142.255 { 0xc0218f00, 0xc02191ff, REGISTRY_RIPENCC }, // 192.33.143.0 - 192.33.145.255 { 0xc0219200, 0xc02192ff, REGISTRY_ARIN }, // 192.33.146.0 - 192.33.146.255 { 0xc0219300, 0xc021a2ff, REGISTRY_RIPENCC }, // 192.33.147.0 - 192.33.162.255 { 0xc021a300, 0xc021a3ff, REGISTRY_RIPENCC }, // 192.33.163.0 - 192.33.163.255 { 0xc021a400, 0xc021a6ff, REGISTRY_RIPENCC }, // 192.33.164.0 - 192.33.166.255 { 0xc021a700, 0xc021a8ff, REGISTRY_ARIN }, // 192.33.167.0 - 192.33.168.255 { 0xc021a900, 0xc021abff, REGISTRY_RIPENCC }, // 192.33.169.0 - 192.33.171.255 { 0xc021ac00, 0xc021afff, REGISTRY_ARIN }, // 192.33.172.0 - 192.33.175.255 { 0xc021b000, 0xc021b6ff, REGISTRY_RIPENCC }, // 192.33.176.0 - 192.33.182.255 { 0xc021b700, 0xc021bfff, REGISTRY_ARIN }, // 192.33.183.0 - 192.33.191.255 { 0xc021c000, 0xc021e7ff, REGISTRY_RIPENCC }, // 192.33.192.0 - 192.33.231.255 { 0xc021e800, 0xc021e8ff, REGISTRY_ARIN }, // 192.33.232.0 - 192.33.232.255 { 0xc021e900, 0xc021efff, REGISTRY_RIPENCC }, // 192.33.233.0 - 192.33.239.255 { 0xc021f000, 0xc021fdff, REGISTRY_ARIN }, // 192.33.240.0 - 192.33.253.255 { 0xc021fe00, 0xc021feff, REGISTRY_RIPENCC }, // 192.33.254.0 - 192.33.254.255 { 0xc021ff00, 0xc02212ff, REGISTRY_ARIN }, // 192.33.255.0 - 192.34.18.255 { 0xc0221300, 0xc02213ff, REGISTRY_RIPENCC }, // 192.34.19.0 - 192.34.19.255 { 0xc0221400, 0xc02231ff, REGISTRY_ARIN }, // 192.34.20.0 - 192.34.49.255 { 0xc0223200, 0xc02232ff, REGISTRY_RIPENCC }, // 192.34.50.0 - 192.34.50.255 { 0xc0223300, 0xc0226aff, REGISTRY_ARIN }, // 192.34.51.0 - 192.34.106.255 { 0xc0226b00, 0xc0226bff, REGISTRY_RIPENCC }, // 192.34.107.0 - 192.34.107.255 { 0xc0226c00, 0xc02273ff, REGISTRY_ARIN }, // 192.34.108.0 - 192.34.115.255 { 0xc0227400, 0xc02274ff, REGISTRY_RIPENCC }, // 192.34.116.0 - 192.34.116.255 { 0xc0227500, 0xc022b2ff, REGISTRY_ARIN }, // 192.34.117.0 - 192.34.178.255 { 0xc022b300, 0xc022b3ff, REGISTRY_RIPENCC }, // 192.34.179.0 - 192.34.179.255 { 0xc022b400, 0xc022ffff, REGISTRY_ARIN }, // 192.34.180.0 - 192.34.255.255 { 0xc0230000, 0xc02313ff, REGISTRY_RIPENCC }, // 192.35.0.0 - 192.35.19.255 { 0xc0231400, 0xc0233aff, REGISTRY_ARIN }, // 192.35.20.0 - 192.35.58.255 { 0xc0233b00, 0xc0233bff, REGISTRY_APNIC }, // 192.35.59.0 - 192.35.59.255 { 0xc0233c00, 0xc0233eff, REGISTRY_ARIN }, // 192.35.60.0 - 192.35.62.255 { 0xc0233f00, 0xc02348ff, REGISTRY_RIPENCC }, // 192.35.63.0 - 192.35.72.255 { 0xc0234900, 0xc02359ff, REGISTRY_ARIN }, // 192.35.73.0 - 192.35.89.255 { 0xc0235a00, 0xc0235aff, REGISTRY_RIPENCC }, // 192.35.90.0 - 192.35.90.255 { 0xc0235b00, 0xc0235dff, REGISTRY_ARIN }, // 192.35.91.0 - 192.35.93.255 { 0xc0235e00, 0xc0235eff, REGISTRY_RIPENCC }, // 192.35.94.0 - 192.35.94.255 { 0xc0235f00, 0xc0236bff, REGISTRY_ARIN }, // 192.35.95.0 - 192.35.107.255 { 0xc0236c00, 0xc0236cff, REGISTRY_RIPENCC }, // 192.35.108.0 - 192.35.108.255 { 0xc0236d00, 0xc02381ff, REGISTRY_ARIN }, // 192.35.109.0 - 192.35.129.255 { 0xc0238200, 0xc02385ff, REGISTRY_RIPENCC }, // 192.35.130.0 - 192.35.133.255 { 0xc0238600, 0xc02389ff, REGISTRY_ARIN }, // 192.35.134.0 - 192.35.137.255 { 0xc0238a00, 0xc0238aff, REGISTRY_RIPENCC }, // 192.35.138.0 - 192.35.138.255 { 0xc0238b00, 0xc02391ff, REGISTRY_ARIN }, // 192.35.139.0 - 192.35.145.255 { 0xc0239200, 0xc02392ff, REGISTRY_RIPENCC }, // 192.35.146.0 - 192.35.146.255 { 0xc0239300, 0xc02394ff, REGISTRY_ARIN }, // 192.35.147.0 - 192.35.148.255 { 0xc0239500, 0xc02399ff, REGISTRY_RIPENCC }, // 192.35.149.0 - 192.35.153.255 { 0xc0239a00, 0xc023abff, REGISTRY_ARIN }, // 192.35.154.0 - 192.35.171.255 { 0xc023ac00, 0xc023acff, REGISTRY_RIPENCC }, // 192.35.172.0 - 192.35.172.255 { 0xc023ad00, 0xc023b6ff, REGISTRY_ARIN }, // 192.35.173.0 - 192.35.182.255 { 0xc023b700, 0xc023c0ff, REGISTRY_RIPENCC }, // 192.35.183.0 - 192.35.192.255 { 0xc023c100, 0xc023c4ff, REGISTRY_ARIN }, // 192.35.193.0 - 192.35.196.255 { 0xc023c500, 0xc023c6ff, REGISTRY_RIPENCC }, // 192.35.197.0 - 192.35.198.255 { 0xc023c700, 0xc023ccff, REGISTRY_ARIN }, // 192.35.199.0 - 192.35.204.255 { 0xc023cd00, 0xc023ceff, REGISTRY_RIPENCC }, // 192.35.205.0 - 192.35.206.255 { 0xc023cf00, 0xc023cfff, REGISTRY_RIPENCC }, // 192.35.207.0 - 192.35.207.255 { 0xc023d000, 0xc023e4ff, REGISTRY_ARIN }, // 192.35.208.0 - 192.35.228.255 { 0xc023e500, 0xc023e5ff, REGISTRY_RIPENCC }, // 192.35.229.0 - 192.35.229.255 { 0xc023e600, 0xc023efff, REGISTRY_ARIN }, // 192.35.230.0 - 192.35.239.255 { 0xc023f000, 0xc023f4ff, REGISTRY_RIPENCC }, // 192.35.240.0 - 192.35.244.255 { 0xc023f500, 0xc023f5ff, REGISTRY_ARIN }, // 192.35.245.0 - 192.35.245.255 { 0xc023f600, 0xc023f7ff, REGISTRY_RIPENCC }, // 192.35.246.0 - 192.35.247.255 { 0xc023f800, 0xc023f8ff, REGISTRY_APNIC }, // 192.35.248.0 - 192.35.248.255 { 0xc023f900, 0xc023ffff, REGISTRY_ARIN }, // 192.35.249.0 - 192.35.255.255 { 0xc0240000, 0xc025ffff, REGISTRY_RIPENCC }, // 192.36.0.0 - 192.37.255.255 { 0xc0260000, 0xc0267fff, REGISTRY_RIPENCC }, // 192.38.0.0 - 192.38.127.255 { 0xc0268000, 0xc026ffff, REGISTRY_RIPENCC }, // 192.38.128.0 - 192.38.255.255 { 0xc0270000, 0xc027ffff, REGISTRY_ARIN }, // 192.39.0.0 - 192.39.255.255 { 0xc0280000, 0xc02803ff, REGISTRY_APNIC }, // 192.40.0.0 - 192.40.3.255 { 0xc0280400, 0xc02844ff, REGISTRY_ARIN }, // 192.40.4.0 - 192.40.68.255 { 0xc0284500, 0xc02845ff, REGISTRY_RIPENCC }, // 192.40.69.0 - 192.40.69.255 { 0xc0284600, 0xc02850ff, REGISTRY_RIPENCC }, // 192.40.70.0 - 192.40.80.255 { 0xc0285100, 0xc02857ff, REGISTRY_ARIN }, // 192.40.81.0 - 192.40.87.255 { 0xc0285800, 0xc0285fff, REGISTRY_RIPENCC }, // 192.40.88.0 - 192.40.95.255 { 0xc0286000, 0xc028e3ff, REGISTRY_ARIN }, // 192.40.96.0 - 192.40.227.255 { 0xc028e400, 0xc028e4ff, REGISTRY_RIPENCC }, // 192.40.228.0 - 192.40.228.255 { 0xc028e500, 0xc02966ff, REGISTRY_ARIN }, // 192.40.229.0 - 192.41.102.255 { 0xc0296700, 0xc02988ff, REGISTRY_RIPENCC }, // 192.41.103.0 - 192.41.136.255 { 0xc0298900, 0xc0298bff, REGISTRY_ARIN }, // 192.41.137.0 - 192.41.139.255 { 0xc0298c00, 0xc02991ff, REGISTRY_RIPENCC }, // 192.41.140.0 - 192.41.145.255 { 0xc0299200, 0xc02992ff, REGISTRY_APNIC }, // 192.41.146.0 - 192.41.146.255 { 0xc0299300, 0xc02993ff, REGISTRY_RIPENCC }, // 192.41.147.0 - 192.41.147.255 { 0xc0299400, 0xc02994ff, REGISTRY_ARIN }, // 192.41.148.0 - 192.41.148.255 { 0xc0299500, 0xc029a0ff, REGISTRY_RIPENCC }, // 192.41.149.0 - 192.41.160.255 { 0xc029a100, 0xc029a9ff, REGISTRY_ARIN }, // 192.41.161.0 - 192.41.169.255 { 0xc029aa00, 0xc029aaff, REGISTRY_APNIC }, // 192.41.170.0 - 192.41.170.255 { 0xc029ab00, 0xc029b1ff, REGISTRY_ARIN }, // 192.41.171.0 - 192.41.177.255 { 0xc029b200, 0xc029c5ff, REGISTRY_APNIC }, // 192.41.178.0 - 192.41.197.255 { 0xc029c600, 0xc029caff, REGISTRY_ARIN }, // 192.41.198.0 - 192.41.202.255 { 0xc029cc00, 0xc029cdff, REGISTRY_ARIN }, // 192.41.204.0 - 192.41.205.255 { 0xc029ce00, 0xc029ceff, REGISTRY_APNIC }, // 192.41.206.0 - 192.41.206.255 { 0xc029cf00, 0xc029d1ff, REGISTRY_ARIN }, // 192.41.207.0 - 192.41.209.255 { 0xc029d200, 0xc029d2ff, REGISTRY_RIPENCC }, // 192.41.210.0 - 192.41.210.255 { 0xc029d300, 0xc029d7ff, REGISTRY_ARIN }, // 192.41.211.0 - 192.41.215.255 { 0xc029d800, 0xc029d8ff, REGISTRY_RIPENCC }, // 192.41.216.0 - 192.41.216.255 { 0xc029d900, 0xc029d9ff, REGISTRY_ARIN }, // 192.41.217.0 - 192.41.217.255 { 0xc029da00, 0xc029daff, REGISTRY_RIPENCC }, // 192.41.218.0 - 192.41.218.255 { 0xc029db00, 0xc029e2ff, REGISTRY_ARIN }, // 192.41.219.0 - 192.41.226.255 { 0xc029e300, 0xc029e3ff, REGISTRY_RIPENCC }, // 192.41.227.0 - 192.41.227.255 { 0xc029e400, 0xc02a00ff, REGISTRY_ARIN }, // 192.41.228.0 - 192.42.0.255 { 0xc02a0100, 0xc02a01ff, REGISTRY_RIPENCC }, // 192.42.1.0 - 192.42.1.255 { 0xc02a0200, 0xc02a29ff, REGISTRY_ARIN }, // 192.42.2.0 - 192.42.41.255 { 0xc02a2a00, 0xc02a2fff, REGISTRY_RIPENCC }, // 192.42.42.0 - 192.42.47.255 { 0xc02a3000, 0xc02a33ff, REGISTRY_ARIN }, // 192.42.48.0 - 192.42.51.255 { 0xc02a3400, 0xc02a34ff, REGISTRY_APNIC }, // 192.42.52.0 - 192.42.52.255 { 0xc02a3500, 0xc02a35ff, REGISTRY_RIPENCC }, // 192.42.53.0 - 192.42.53.255 { 0xc02a3600, 0xc02a3bff, REGISTRY_ARIN }, // 192.42.54.0 - 192.42.59.255 { 0xc02a3c00, 0xc02a3eff, REGISTRY_APNIC }, // 192.42.60.0 - 192.42.62.255 { 0xc02a3f00, 0xc02a40ff, REGISTRY_RIPENCC }, // 192.42.63.0 - 192.42.64.255 { 0xc02a4100, 0xc02a41ff, REGISTRY_RIPENCC }, // 192.42.65.0 - 192.42.65.255 { 0xc02a4200, 0xc02a53ff, REGISTRY_ARIN }, // 192.42.66.0 - 192.42.83.255 { 0xc02a5700, 0xc02a57ff, REGISTRY_RIPENCC }, // 192.42.87.0 - 192.42.87.255 { 0xc02a5800, 0xc02a60ff, REGISTRY_ARIN }, // 192.42.88.0 - 192.42.96.255 { 0xc02a6100, 0xc02a61ff, REGISTRY_RIPENCC }, // 192.42.97.0 - 192.42.97.255 { 0xc02a6200, 0xc02a62ff, REGISTRY_ARIN }, // 192.42.98.0 - 192.42.98.255 { 0xc02a6300, 0xc02a63ff, REGISTRY_AFRINIC }, // 192.42.99.0 - 192.42.99.255 { 0xc02a6400, 0xc02a64ff, REGISTRY_RIPENCC }, // 192.42.100.0 - 192.42.100.255 { 0xc02a6500, 0xc02a65ff, REGISTRY_ARIN }, // 192.42.101.0 - 192.42.101.255 { 0xc02a6600, 0xc02a66ff, REGISTRY_RIPENCC }, // 192.42.102.0 - 192.42.102.255 { 0xc02a6700, 0xc02a6bff, REGISTRY_APNIC }, // 192.42.103.0 - 192.42.107.255 { 0xc02a6c00, 0xc02a70ff, REGISTRY_ARIN }, // 192.42.108.0 - 192.42.112.255 { 0xc02a7100, 0xc02a84ff, REGISTRY_RIPENCC }, // 192.42.113.0 - 192.42.132.255 { 0xc02a8500, 0xc02a8eff, REGISTRY_ARIN }, // 192.42.133.0 - 192.42.142.255 { 0xc02a8f00, 0xc02a8fff, REGISTRY_RIPENCC }, // 192.42.143.0 - 192.42.143.255 { 0xc02a9000, 0xc02a96ff, REGISTRY_ARIN }, // 192.42.144.0 - 192.42.150.255 { 0xc02a9700, 0xc02a97ff, REGISTRY_APNIC }, // 192.42.151.0 - 192.42.151.255 { 0xc02a9800, 0xc02ab3ff, REGISTRY_ARIN }, // 192.42.152.0 - 192.42.179.255 { 0xc02ab400, 0xc02ac9ff, REGISTRY_RIPENCC }, // 192.42.180.0 - 192.42.201.255 { 0xc02aca00, 0xc02aecff, REGISTRY_ARIN }, // 192.42.202.0 - 192.42.236.255 { 0xc02aee00, 0xc02afcff, REGISTRY_ARIN }, // 192.42.238.0 - 192.42.252.255 { 0xc02afd00, 0xc02afdff, REGISTRY_RIPENCC }, // 192.42.253.0 - 192.42.253.255 { 0xc02afe00, 0xc02ba1ff, REGISTRY_ARIN }, // 192.42.254.0 - 192.43.161.255 { 0xc02ba200, 0xc02babff, REGISTRY_RIPENCC }, // 192.43.162.0 - 192.43.171.255 { 0xc02bac00, 0xc02badff, REGISTRY_ARIN }, // 192.43.172.0 - 192.43.173.255 { 0xc02baf00, 0xc02bb8ff, REGISTRY_ARIN }, // 192.43.175.0 - 192.43.184.255 { 0xc02bba00, 0xc02bbcff, REGISTRY_ARIN }, // 192.43.186.0 - 192.43.188.255 { 0xc02bbd00, 0xc02bbdff, REGISTRY_APNIC }, // 192.43.189.0 - 192.43.189.255 { 0xc02bbe00, 0xc02bbfff, REGISTRY_ARIN }, // 192.43.190.0 - 192.43.191.255 { 0xc02bc000, 0xc02bc4ff, REGISTRY_RIPENCC }, // 192.43.192.0 - 192.43.196.255 { 0xc02bc500, 0xc02bc5ff, REGISTRY_ARIN }, // 192.43.197.0 - 192.43.197.255 { 0xc02bc700, 0xc02bc8ff, REGISTRY_ARIN }, // 192.43.199.0 - 192.43.200.255 { 0xc02bcb00, 0xc02bceff, REGISTRY_ARIN }, // 192.43.203.0 - 192.43.206.255 { 0xc02bcf00, 0xc02bd1ff, REGISTRY_APNIC }, // 192.43.207.0 - 192.43.209.255 { 0xc02bd200, 0xc02bd2ff, REGISTRY_RIPENCC }, // 192.43.210.0 - 192.43.210.255 { 0xc02bd300, 0xc02bd3ff, REGISTRY_ARIN }, // 192.43.211.0 - 192.43.211.255 { 0xc02bd400, 0xc02bd4ff, REGISTRY_RIPENCC }, // 192.43.212.0 - 192.43.212.255 { 0xc02bd500, 0xc02be1ff, REGISTRY_ARIN }, // 192.43.213.0 - 192.43.225.255 { 0xc02be200, 0xc02be5ff, REGISTRY_APNIC }, // 192.43.226.0 - 192.43.229.255 { 0xc02be600, 0xc02be9ff, REGISTRY_ARIN }, // 192.43.230.0 - 192.43.233.255 { 0xc02bea00, 0xc02beaff, REGISTRY_RIPENCC }, // 192.43.234.0 - 192.43.234.255 { 0xc02beb00, 0xc02beeff, REGISTRY_ARIN }, // 192.43.235.0 - 192.43.238.255 { 0xc02bef00, 0xc02befff, REGISTRY_APNIC }, // 192.43.239.0 - 192.43.239.255 { 0xc02bf000, 0xc02bffff, REGISTRY_ARIN }, // 192.43.240.0 - 192.43.255.255 { 0xc02c0000, 0xc02c43ff, REGISTRY_RIPENCC }, // 192.44.0.0 - 192.44.67.255 { 0xc02c4400, 0xc02c46ff, REGISTRY_ARIN }, // 192.44.68.0 - 192.44.70.255 { 0xc02c4700, 0xc02c5aff, REGISTRY_RIPENCC }, // 192.44.71.0 - 192.44.90.255 { 0xc02c5b00, 0xc02cefff, REGISTRY_ARIN }, // 192.44.91.0 - 192.44.239.255 { 0xc02cf000, 0xc02cfbff, REGISTRY_RIPENCC }, // 192.44.240.0 - 192.44.251.255 { 0xc02cfc00, 0xc02eb7ff, REGISTRY_ARIN }, // 192.44.252.0 - 192.46.183.255 { 0xc02eb800, 0xc02ebfff, REGISTRY_RIPENCC }, // 192.46.184.0 - 192.46.191.255 { 0xc02ec000, 0xc02ec7ff, REGISTRY_ARIN }, // 192.46.192.0 - 192.46.199.255 { 0xc02ec800, 0xc02ecbff, REGISTRY_RIPENCC }, // 192.46.200.0 - 192.46.203.255 { 0xc02ecc00, 0xc02ecfff, REGISTRY_ARIN }, // 192.46.204.0 - 192.46.207.255 { 0xc02ed000, 0xc02eefff, REGISTRY_RIPENCC }, // 192.46.208.0 - 192.46.239.255 { 0xc02ef000, 0xc02effff, REGISTRY_ARIN }, // 192.46.240.0 - 192.46.255.255 { 0xc02f0000, 0xc02f1bff, REGISTRY_APNIC }, // 192.47.0.0 - 192.47.27.255 { 0xc02f1d00, 0xc02f23ff, REGISTRY_APNIC }, // 192.47.29.0 - 192.47.35.255 { 0xc02f2400, 0xc02f24ff, REGISTRY_AFRINIC }, // 192.47.36.0 - 192.47.36.255 { 0xc02f2500, 0xc02ff1ff, REGISTRY_APNIC }, // 192.47.37.0 - 192.47.241.255 { 0xc02ff200, 0xc02ff3ff, REGISTRY_ARIN }, // 192.47.242.0 - 192.47.243.255 { 0xc02ff400, 0xc02ff9ff, REGISTRY_RIPENCC }, // 192.47.244.0 - 192.47.249.255 { 0xc02ffa00, 0xc0301eff, REGISTRY_ARIN }, // 192.47.250.0 - 192.48.30.255 { 0xc0301f00, 0xc0301fff, REGISTRY_RIPENCC }, // 192.48.31.0 - 192.48.31.255 { 0xc0302000, 0xc0306aff, REGISTRY_ARIN }, // 192.48.32.0 - 192.48.106.255 { 0xc0306b00, 0xc0306bff, REGISTRY_RIPENCC }, // 192.48.107.0 - 192.48.107.255 { 0xc0306c00, 0xc0306cff, REGISTRY_ARIN }, // 192.48.108.0 - 192.48.108.255 { 0xc0306d00, 0xc0306eff, REGISTRY_APNIC }, // 192.48.109.0 - 192.48.110.255 { 0xc0306f00, 0xc03090ff, REGISTRY_ARIN }, // 192.48.111.0 - 192.48.144.255 { 0xc0309100, 0xc03091ff, REGISTRY_RIPENCC }, // 192.48.145.0 - 192.48.145.255 { 0xc0309200, 0xc030dfff, REGISTRY_ARIN }, // 192.48.146.0 - 192.48.223.255 { 0xc030e000, 0xc030e0ff, REGISTRY_RIPENCC }, // 192.48.224.0 - 192.48.224.255 { 0xc030e100, 0xc030e6ff, REGISTRY_ARIN }, // 192.48.225.0 - 192.48.230.255 { 0xc030e700, 0xc030e7ff, REGISTRY_RIPENCC }, // 192.48.231.0 - 192.48.231.255 { 0xc030e800, 0xc030f7ff, REGISTRY_ARIN }, // 192.48.232.0 - 192.48.247.255 { 0xc030f800, 0xc030f8ff, REGISTRY_APNIC }, // 192.48.248.0 - 192.48.248.255 { 0xc030f900, 0xc030fcff, REGISTRY_ARIN }, // 192.48.249.0 - 192.48.252.255 { 0xc030fd00, 0xc030fdff, REGISTRY_AFRINIC }, // 192.48.253.0 - 192.48.253.255 { 0xc030fe00, 0xc030ffff, REGISTRY_ARIN }, // 192.48.254.0 - 192.48.255.255 { 0xc0310000, 0xc031ffff, REGISTRY_RIPENCC }, // 192.49.0.0 - 192.49.255.255 { 0xc0320000, 0xc032ffff, REGISTRY_APNIC }, // 192.50.0.0 - 192.50.255.255 { 0xc0330000, 0xc0330fff, REGISTRY_RIPENCC }, // 192.51.0.0 - 192.51.15.255 { 0xc0331000, 0xc0332fff, REGISTRY_APNIC }, // 192.51.16.0 - 192.51.47.255 { 0xc0333000, 0xc03330ff, REGISTRY_ARIN }, // 192.51.48.0 - 192.51.48.255 { 0xc0333100, 0xc033abff, REGISTRY_APNIC }, // 192.51.49.0 - 192.51.171.255 { 0xc033b000, 0xc033bfff, REGISTRY_APNIC }, // 192.51.176.0 - 192.51.191.255 { 0xc033c000, 0xc033c1ff, REGISTRY_ARIN }, // 192.51.192.0 - 192.51.193.255 { 0xc033c200, 0xc033efff, REGISTRY_APNIC }, // 192.51.194.0 - 192.51.239.255 { 0xc033f000, 0xc033f0ff, REGISTRY_AFRINIC }, // 192.51.240.0 - 192.51.240.255 { 0xc033f100, 0xc033fbff, REGISTRY_APNIC }, // 192.51.241.0 - 192.51.251.255 { 0xc033fd00, 0xc033fdff, REGISTRY_APNIC }, // 192.51.253.0 - 192.51.253.255 { 0xc033ff00, 0xc033ffff, REGISTRY_APNIC }, // 192.51.255.0 - 192.51.255.255 { 0xc0340000, 0xc03432ff, REGISTRY_RIPENCC }, // 192.52.0.0 - 192.52.50.255 { 0xc0343300, 0xc03447ff, REGISTRY_ARIN }, // 192.52.51.0 - 192.52.71.255 { 0xc0344800, 0xc03449ff, REGISTRY_APNIC }, // 192.52.72.0 - 192.52.73.255 { 0xc0344a00, 0xc03476ff, REGISTRY_ARIN }, // 192.52.74.0 - 192.52.118.255 { 0xc0347700, 0xc03496ff, REGISTRY_APNIC }, // 192.52.119.0 - 192.52.150.255 { 0xc0349700, 0xc03497ff, REGISTRY_ARIN }, // 192.52.151.0 - 192.52.151.255 { 0xc0349800, 0xc03498ff, REGISTRY_RIPENCC }, // 192.52.152.0 - 192.52.152.255 { 0xc0349900, 0xc0349eff, REGISTRY_ARIN }, // 192.52.153.0 - 192.52.158.255 { 0xc0349f00, 0xc034a1ff, REGISTRY_RIPENCC }, // 192.52.159.0 - 192.52.161.255 { 0xc034a200, 0xc034aaff, REGISTRY_ARIN }, // 192.52.162.0 - 192.52.170.255 { 0xc034ab00, 0xc034b0ff, REGISTRY_APNIC }, // 192.52.171.0 - 192.52.176.255 { 0xc034b100, 0xc034b8ff, REGISTRY_ARIN }, // 192.52.177.0 - 192.52.184.255 { 0xc034ba00, 0xc034c0ff, REGISTRY_ARIN }, // 192.52.186.0 - 192.52.192.255 { 0xc034c200, 0xc034c3ff, REGISTRY_ARIN }, // 192.52.194.0 - 192.52.195.255 { 0xc034c400, 0xc034c5ff, REGISTRY_APNIC }, // 192.52.196.0 - 192.52.197.255 { 0xc034c600, 0xc034dcff, REGISTRY_ARIN }, // 192.52.198.0 - 192.52.220.255 { 0xc034dd00, 0xc034dfff, REGISTRY_RIPENCC }, // 192.52.221.0 - 192.52.223.255 { 0xc034e000, 0xc034e7ff, REGISTRY_ARIN }, // 192.52.224.0 - 192.52.231.255 { 0xc034e800, 0xc034e8ff, REGISTRY_AFRINIC }, // 192.52.232.0 - 192.52.232.255 { 0xc034e900, 0xc034fcff, REGISTRY_ARIN }, // 192.52.233.0 - 192.52.252.255 { 0xc034fd00, 0xc034feff, REGISTRY_RIPENCC }, // 192.52.253.0 - 192.52.254.255 { 0xc034ff00, 0xc0353fff, REGISTRY_ARIN }, // 192.52.255.0 - 192.53.63.255 { 0xc0354000, 0xc03547ff, REGISTRY_RIPENCC }, // 192.53.64.0 - 192.53.71.255 { 0xc0354800, 0xc03566ff, REGISTRY_ARIN }, // 192.53.72.0 - 192.53.102.255 { 0xc0356700, 0xc03568ff, REGISTRY_RIPENCC }, // 192.53.103.0 - 192.53.104.255 { 0xc0356900, 0xc0356fff, REGISTRY_ARIN }, // 192.53.105.0 - 192.53.111.255 { 0xc0357000, 0xc0357fff, REGISTRY_RIPENCC }, // 192.53.112.0 - 192.53.127.255 { 0xc0358000, 0xc03587ff, REGISTRY_ARIN }, // 192.53.128.0 - 192.53.135.255 { 0xc0358800, 0xc0358fff, REGISTRY_RIPENCC }, // 192.53.136.0 - 192.53.143.255 { 0xc0359000, 0xc0359fff, REGISTRY_ARIN }, // 192.53.144.0 - 192.53.159.255 { 0xc035a000, 0xc035afff, REGISTRY_RIPENCC }, // 192.53.160.0 - 192.53.175.255 { 0xc035b000, 0xc0361eff, REGISTRY_ARIN }, // 192.53.176.0 - 192.54.30.255 { 0xc0361f00, 0xc03634ff, REGISTRY_RIPENCC }, // 192.54.31.0 - 192.54.52.255 { 0xc0363500, 0xc03635ff, REGISTRY_ARIN }, // 192.54.53.0 - 192.54.53.255 { 0xc0363600, 0xc0363bff, REGISTRY_RIPENCC }, // 192.54.54.0 - 192.54.59.255 { 0xc0363c00, 0xc03642ff, REGISTRY_RIPENCC }, // 192.54.60.0 - 192.54.66.255 { 0xc0364300, 0xc03647ff, REGISTRY_RIPENCC }, // 192.54.67.0 - 192.54.71.255 { 0xc0364800, 0xc0364bff, REGISTRY_RIPENCC }, // 192.54.72.0 - 192.54.75.255 { 0xc0364c00, 0xc0364dff, REGISTRY_RIPENCC }, // 192.54.76.0 - 192.54.77.255 { 0xc0364e00, 0xc03650ff, REGISTRY_RIPENCC }, // 192.54.78.0 - 192.54.80.255 { 0xc0365100, 0xc03667ff, REGISTRY_ARIN }, // 192.54.81.0 - 192.54.103.255 { 0xc0366800, 0xc03668ff, REGISTRY_RIPENCC }, // 192.54.104.0 - 192.54.104.255 { 0xc0366900, 0xc0366aff, REGISTRY_APNIC }, // 192.54.105.0 - 192.54.106.255 { 0xc0366b00, 0xc03670ff, REGISTRY_ARIN }, // 192.54.107.0 - 192.54.112.255 { 0xc0367100, 0xc03671ff, REGISTRY_RIPENCC }, // 192.54.113.0 - 192.54.113.255 { 0xc0367200, 0xc03672ff, REGISTRY_ARIN }, // 192.54.114.0 - 192.54.114.255 { 0xc0367300, 0xc03678ff, REGISTRY_RIPENCC }, // 192.54.115.0 - 192.54.120.255 { 0xc0367900, 0xc03679ff, REGISTRY_ARIN }, // 192.54.121.0 - 192.54.121.255 { 0xc0367a00, 0xc0367aff, REGISTRY_RIPENCC }, // 192.54.122.0 - 192.54.122.255 { 0xc0367b00, 0xc0367cff, REGISTRY_ARIN }, // 192.54.123.0 - 192.54.124.255 { 0xc0367d00, 0xc03680ff, REGISTRY_RIPENCC }, // 192.54.125.0 - 192.54.128.255 { 0xc0368100, 0xc03681ff, REGISTRY_ARIN }, // 192.54.129.0 - 192.54.129.255 { 0xc0368200, 0xc03682ff, REGISTRY_APNIC }, // 192.54.130.0 - 192.54.130.255 { 0xc0368300, 0xc03683ff, REGISTRY_ARIN }, // 192.54.131.0 - 192.54.131.255 { 0xc0368400, 0xc03684ff, REGISTRY_RIPENCC }, // 192.54.132.0 - 192.54.132.255 { 0xc0368500, 0xc03686ff, REGISTRY_ARIN }, // 192.54.133.0 - 192.54.134.255 { 0xc0368700, 0xc03687ff, REGISTRY_APNIC }, // 192.54.135.0 - 192.54.135.255 { 0xc0368800, 0xc03688ff, REGISTRY_ARIN }, // 192.54.136.0 - 192.54.136.255 { 0xc0368a00, 0xc0368aff, REGISTRY_ARIN }, // 192.54.138.0 - 192.54.138.255 { 0xc0368b00, 0xc0368bff, REGISTRY_RIPENCC }, // 192.54.139.0 - 192.54.139.255 { 0xc0368c00, 0xc0368cff, REGISTRY_ARIN }, // 192.54.140.0 - 192.54.140.255 { 0xc0368d00, 0xc036b9ff, REGISTRY_RIPENCC }, // 192.54.141.0 - 192.54.185.255 { 0xc036ba00, 0xc036bbff, REGISTRY_RIPENCC }, // 192.54.186.0 - 192.54.187.255 { 0xc036bc00, 0xc036ddff, REGISTRY_RIPENCC }, // 192.54.188.0 - 192.54.221.255 { 0xc036de00, 0xc036e0ff, REGISTRY_ARIN }, // 192.54.222.0 - 192.54.224.255 { 0xc036e100, 0xc036e1ff, REGISTRY_RIPENCC }, // 192.54.225.0 - 192.54.225.255 { 0xc036e200, 0xc036f3ff, REGISTRY_ARIN }, // 192.54.226.0 - 192.54.243.255 { 0xc036f400, 0xc036f4ff, REGISTRY_RIPENCC }, // 192.54.244.0 - 192.54.244.255 { 0xc036f500, 0xc036f5ff, REGISTRY_RIPENCC }, // 192.54.245.0 - 192.54.245.255 { 0xc036f600, 0xc036f6ff, REGISTRY_ARIN }, // 192.54.246.0 - 192.54.246.255 { 0xc036f800, 0xc036faff, REGISTRY_ARIN }, // 192.54.248.0 - 192.54.250.255 { 0xc036fb00, 0xc036fbff, REGISTRY_APNIC }, // 192.54.251.0 - 192.54.251.255 { 0xc036fc00, 0xc036fdff, REGISTRY_ARIN }, // 192.54.252.0 - 192.54.253.255 { 0xc036fe00, 0xc036feff, REGISTRY_RIPENCC }, // 192.54.254.0 - 192.54.254.255 { 0xc036ff00, 0xc0372dff, REGISTRY_ARIN }, // 192.54.255.0 - 192.55.45.255 { 0xc0372e00, 0xc0372eff, REGISTRY_APNIC }, // 192.55.46.0 - 192.55.46.255 { 0xc0372f00, 0xc03743ff, REGISTRY_ARIN }, // 192.55.47.0 - 192.55.67.255 { 0xc0374400, 0xc03747ff, REGISTRY_APNIC }, // 192.55.68.0 - 192.55.71.255 { 0xc0374800, 0xc03753ff, REGISTRY_ARIN }, // 192.55.72.0 - 192.55.83.255 { 0xc0375400, 0xc03754ff, REGISTRY_RIPENCC }, // 192.55.84.0 - 192.55.84.255 { 0xc0375500, 0xc03758ff, REGISTRY_ARIN }, // 192.55.85.0 - 192.55.88.255 { 0xc0375900, 0xc03759ff, REGISTRY_RIPENCC }, // 192.55.89.0 - 192.55.89.255 { 0xc0375a00, 0xc03761ff, REGISTRY_ARIN }, // 192.55.90.0 - 192.55.97.255 { 0xc0376200, 0xc03763ff, REGISTRY_APNIC }, // 192.55.98.0 - 192.55.99.255 { 0xc0376400, 0xc03764ff, REGISTRY_ARIN }, // 192.55.100.0 - 192.55.100.255 { 0xc0376500, 0xc03765ff, REGISTRY_RIPENCC }, // 192.55.101.0 - 192.55.101.255 { 0xc0376600, 0xc03768ff, REGISTRY_ARIN }, // 192.55.102.0 - 192.55.104.255 { 0xc0376900, 0xc03769ff, REGISTRY_RIPENCC }, // 192.55.105.0 - 192.55.105.255 { 0xc0376a00, 0xc0376cff, REGISTRY_ARIN }, // 192.55.106.0 - 192.55.108.255 { 0xc0376d00, 0xc0376dff, REGISTRY_RIPENCC }, // 192.55.109.0 - 192.55.109.255 { 0xc0376f00, 0xc0376fff, REGISTRY_ARIN }, // 192.55.111.0 - 192.55.111.255 { 0xc0377000, 0xc03770ff, REGISTRY_APNIC }, // 192.55.112.0 - 192.55.112.255 { 0xc0377100, 0xc03772ff, REGISTRY_ARIN }, // 192.55.113.0 - 192.55.114.255 { 0xc0377300, 0xc03773ff, REGISTRY_RIPENCC }, // 192.55.115.0 - 192.55.115.255 { 0xc0377400, 0xc03775ff, REGISTRY_ARIN }, // 192.55.116.0 - 192.55.117.255 { 0xc0377600, 0xc03776ff, REGISTRY_APNIC }, // 192.55.118.0 - 192.55.118.255 { 0xc0377700, 0xc03780ff, REGISTRY_ARIN }, // 192.55.119.0 - 192.55.128.255 { 0xc0378100, 0xc03781ff, REGISTRY_RIPENCC }, // 192.55.129.0 - 192.55.129.255 { 0xc0378200, 0xc03783ff, REGISTRY_ARIN }, // 192.55.130.0 - 192.55.131.255 { 0xc0378400, 0xc03784ff, REGISTRY_RIPENCC }, // 192.55.132.0 - 192.55.132.255 { 0xc0378500, 0xc037bbff, REGISTRY_ARIN }, // 192.55.133.0 - 192.55.187.255 { 0xc037bc00, 0xc037bcff, REGISTRY_RIPENCC }, // 192.55.188.0 - 192.55.188.255 { 0xc037bd00, 0xc037bdff, REGISTRY_ARIN }, // 192.55.189.0 - 192.55.189.255 { 0xc037be00, 0xc037beff, REGISTRY_APNIC }, // 192.55.190.0 - 192.55.190.255 { 0xc037bf00, 0xc037c0ff, REGISTRY_ARIN }, // 192.55.191.0 - 192.55.192.255 { 0xc037c100, 0xc037c1ff, REGISTRY_RIPENCC }, // 192.55.193.0 - 192.55.193.255 { 0xc037c200, 0xc037c4ff, REGISTRY_ARIN }, // 192.55.194.0 - 192.55.196.255 { 0xc037c500, 0xc037c5ff, REGISTRY_RIPENCC }, // 192.55.197.0 - 192.55.197.255 { 0xc037c600, 0xc037c6ff, REGISTRY_APNIC }, // 192.55.198.0 - 192.55.198.255 { 0xc037c700, 0xc037d0ff, REGISTRY_ARIN }, // 192.55.199.0 - 192.55.208.255 { 0xc037d200, 0xc037d3ff, REGISTRY_ARIN }, // 192.55.210.0 - 192.55.211.255 { 0xc037d400, 0xc037d4ff, REGISTRY_RIPENCC }, // 192.55.212.0 - 192.55.212.255 { 0xc037d500, 0xc037daff, REGISTRY_ARIN }, // 192.55.213.0 - 192.55.218.255 { 0xc037db00, 0xc037dcff, REGISTRY_APNIC }, // 192.55.219.0 - 192.55.220.255 { 0xc037dd00, 0xc037e7ff, REGISTRY_ARIN }, // 192.55.221.0 - 192.55.231.255 { 0xc037e800, 0xc037e8ff, REGISTRY_APNIC }, // 192.55.232.0 - 192.55.232.255 { 0xc037e900, 0xc037edff, REGISTRY_ARIN }, // 192.55.233.0 - 192.55.237.255 { 0xc037ef00, 0xc037f3ff, REGISTRY_ARIN }, // 192.55.239.0 - 192.55.243.255 { 0xc037f400, 0xc037f4ff, REGISTRY_RIPENCC }, // 192.55.244.0 - 192.55.244.255 { 0xc037f500, 0xc03a08ff, REGISTRY_ARIN }, // 192.55.245.0 - 192.58.8.255 { 0xc03a0900, 0xc03a12ff, REGISTRY_APNIC }, // 192.58.9.0 - 192.58.18.255 { 0xc03a1300, 0xc03a1bff, REGISTRY_ARIN }, // 192.58.19.0 - 192.58.27.255 { 0xc03a1c00, 0xc03a23ff, REGISTRY_RIPENCC }, // 192.58.28.0 - 192.58.35.255 { 0xc03a2400, 0xc03a28ff, REGISTRY_ARIN }, // 192.58.36.0 - 192.58.40.255 { 0xc03a2900, 0xc03a59ff, REGISTRY_RIPENCC }, // 192.58.41.0 - 192.58.89.255 { 0xc03a5a00, 0xc03a60ff, REGISTRY_ARIN }, // 192.58.90.0 - 192.58.96.255 { 0xc03a6600, 0xc03a84ff, REGISTRY_ARIN }, // 192.58.102.0 - 192.58.132.255 { 0xc03a8500, 0xc03a88ff, REGISTRY_APNIC }, // 192.58.133.0 - 192.58.136.255 { 0xc03a8900, 0xc03ac4ff, REGISTRY_ARIN }, // 192.58.137.0 - 192.58.196.255 { 0xc03ac500, 0xc03ac5ff, REGISTRY_RIPENCC }, // 192.58.197.0 - 192.58.197.255 { 0xc03ac600, 0xc03ad9ff, REGISTRY_ARIN }, // 192.58.198.0 - 192.58.217.255 { 0xc03ada00, 0xc03adaff, REGISTRY_RIPENCC }, // 192.58.218.0 - 192.58.218.255 { 0xc03adb00, 0xc03ae1ff, REGISTRY_ARIN }, // 192.58.219.0 - 192.58.225.255 { 0xc03ae200, 0xc03ae5ff, REGISTRY_RIPENCC }, // 192.58.226.0 - 192.58.229.255 { 0xc03ae600, 0xc0401bff, REGISTRY_ARIN }, // 192.58.230.0 - 192.64.27.255 { 0xc0401c00, 0xc0401cff, REGISTRY_RIPENCC }, // 192.64.28.0 - 192.64.28.255 { 0xc0401d00, 0xc0402bff, REGISTRY_ARIN }, // 192.64.29.0 - 192.64.43.255 { 0xc0402c00, 0xc0402dff, REGISTRY_RIPENCC }, // 192.64.44.0 - 192.64.45.255 { 0xc0402e00, 0xc04063ff, REGISTRY_ARIN }, // 192.64.46.0 - 192.64.99.255 { 0xc0406400, 0xc04067ff, REGISTRY_RIPENCC }, // 192.64.100.0 - 192.64.103.255 { 0xc0406800, 0xc0407cff, REGISTRY_ARIN }, // 192.64.104.0 - 192.64.124.255 { 0xc0407d00, 0xc0407dff, REGISTRY_RIPENCC }, // 192.64.125.0 - 192.64.125.255 { 0xc0407e00, 0xc040c9ff, REGISTRY_ARIN }, // 192.64.126.0 - 192.64.201.255 { 0xc040ca00, 0xc040caff, REGISTRY_RIPENCC }, // 192.64.202.0 - 192.64.202.255 { 0xc040cb00, 0xc040ccff, REGISTRY_APNIC }, // 192.64.203.0 - 192.64.204.255 { 0xc040cd00, 0xc04132ff, REGISTRY_ARIN }, // 192.64.205.0 - 192.65.50.255 { 0xc0413300, 0xc04146ff, REGISTRY_RIPENCC }, // 192.65.51.0 - 192.65.70.255 { 0xc0414700, 0xc04151ff, REGISTRY_ARIN }, // 192.65.71.0 - 192.65.81.255 { 0xc0415200, 0xc0415bff, REGISTRY_APNIC }, // 192.65.82.0 - 192.65.91.255 { 0xc0415c00, 0xc0415eff, REGISTRY_RIPENCC }, // 192.65.92.0 - 192.65.94.255 { 0xc0415f00, 0xc0415fff, REGISTRY_ARIN }, // 192.65.95.0 - 192.65.95.255 { 0xc0416000, 0xc04160ff, REGISTRY_RIPENCC }, // 192.65.96.0 - 192.65.96.255 { 0xc0416100, 0xc04181ff, REGISTRY_ARIN }, // 192.65.97.0 - 192.65.129.255 { 0xc0418200, 0xc04182ff, REGISTRY_APNIC }, // 192.65.130.0 - 192.65.130.255 { 0xc0418300, 0xc04184ff, REGISTRY_RIPENCC }, // 192.65.131.0 - 192.65.132.255 { 0xc0418500, 0xc0418aff, REGISTRY_ARIN }, // 192.65.133.0 - 192.65.138.255 { 0xc0418b00, 0xc0418bff, REGISTRY_RIPENCC }, // 192.65.139.0 - 192.65.139.255 { 0xc0418c00, 0xc0418fff, REGISTRY_ARIN }, // 192.65.140.0 - 192.65.143.255 { 0xc0419000, 0xc04192ff, REGISTRY_RIPENCC }, // 192.65.144.0 - 192.65.146.255 { 0xc0419300, 0xc04197ff, REGISTRY_ARIN }, // 192.65.147.0 - 192.65.151.255 { 0xc0419800, 0xc04198ff, REGISTRY_LACNIC }, // 192.65.152.0 - 192.65.152.255 { 0xc0419900, 0xc04199ff, REGISTRY_RIPENCC }, // 192.65.153.0 - 192.65.153.255 { 0xc0419a00, 0xc041b5ff, REGISTRY_ARIN }, // 192.65.154.0 - 192.65.181.255 { 0xc041b600, 0xc041b6ff, REGISTRY_APNIC }, // 192.65.182.0 - 192.65.182.255 { 0xc041b700, 0xc041c5ff, REGISTRY_RIPENCC }, // 192.65.183.0 - 192.65.197.255 { 0xc041c600, 0xc041d8ff, REGISTRY_ARIN }, // 192.65.198.0 - 192.65.216.255 { 0xc041d900, 0xc041d9ff, REGISTRY_APNIC }, // 192.65.217.0 - 192.65.217.255 { 0xc041da00, 0xc041daff, REGISTRY_ARIN }, // 192.65.218.0 - 192.65.218.255 { 0xc041db00, 0xc041e4ff, REGISTRY_RIPENCC }, // 192.65.219.0 - 192.65.228.255 { 0xc041e500, 0xc041f7ff, REGISTRY_ARIN }, // 192.65.229.0 - 192.65.247.255 { 0xc041f900, 0xc041f9ff, REGISTRY_ARIN }, // 192.65.249.0 - 192.65.249.255 { 0xc041fa00, 0xc041faff, REGISTRY_APNIC }, // 192.65.250.0 - 192.65.250.255 { 0xc041fb00, 0xc041ffff, REGISTRY_ARIN }, // 192.65.251.0 - 192.65.255.255 { 0xc0420000, 0xc042ffff, REGISTRY_RIPENCC }, // 192.66.0.0 - 192.66.255.255 { 0xc0430000, 0xc04300ff, REGISTRY_ARIN }, // 192.67.0.0 - 192.67.0.255 { 0xc0430200, 0xc04302ff, REGISTRY_ARIN }, // 192.67.2.0 - 192.67.2.255 { 0xc0430300, 0xc04304ff, REGISTRY_RIPENCC }, // 192.67.3.0 - 192.67.4.255 { 0xc0430500, 0xc0430bff, REGISTRY_ARIN }, // 192.67.5.0 - 192.67.11.255 { 0xc0430c00, 0xc0430cff, REGISTRY_APNIC }, // 192.67.12.0 - 192.67.12.255 { 0xc0430d00, 0xc04316ff, REGISTRY_ARIN }, // 192.67.13.0 - 192.67.22.255 { 0xc0431700, 0xc04317ff, REGISTRY_LACNIC }, // 192.67.23.0 - 192.67.23.255 { 0xc0431800, 0xc04326ff, REGISTRY_ARIN }, // 192.67.24.0 - 192.67.38.255 { 0xc0432700, 0xc04327ff, REGISTRY_RIPENCC }, // 192.67.39.0 - 192.67.39.255 { 0xc0432800, 0xc0432aff, REGISTRY_ARIN }, // 192.67.40.0 - 192.67.42.255 { 0xc0432b00, 0xc0432bff, REGISTRY_RIPENCC }, // 192.67.43.0 - 192.67.43.255 { 0xc0432c00, 0xc0432eff, REGISTRY_ARIN }, // 192.67.44.0 - 192.67.46.255 { 0xc0432f00, 0xc0432fff, REGISTRY_RIPENCC }, // 192.67.47.0 - 192.67.47.255 { 0xc0433000, 0xc04331ff, REGISTRY_ARIN }, // 192.67.48.0 - 192.67.49.255 { 0xc0433200, 0xc04332ff, REGISTRY_RIPENCC }, // 192.67.50.0 - 192.67.50.255 { 0xc0433300, 0xc04333ff, REGISTRY_ARIN }, // 192.67.51.0 - 192.67.51.255 { 0xc0433400, 0xc04334ff, REGISTRY_RIPENCC }, // 192.67.52.0 - 192.67.52.255 { 0xc0433500, 0xc04336ff, REGISTRY_ARIN }, // 192.67.53.0 - 192.67.54.255 { 0xc0433700, 0xc04337ff, REGISTRY_RIPENCC }, // 192.67.55.0 - 192.67.55.255 { 0xc0433800, 0xc04339ff, REGISTRY_ARIN }, // 192.67.56.0 - 192.67.57.255 { 0xc0433a00, 0xc0433aff, REGISTRY_RIPENCC }, // 192.67.58.0 - 192.67.58.255 { 0xc0433b00, 0xc0434bff, REGISTRY_ARIN }, // 192.67.59.0 - 192.67.75.255 { 0xc0434c00, 0xc0434cff, REGISTRY_RIPENCC }, // 192.67.76.0 - 192.67.76.255 { 0xc0434d00, 0xc0434eff, REGISTRY_ARIN }, // 192.67.77.0 - 192.67.78.255 { 0xc0434f00, 0xc0434fff, REGISTRY_RIPENCC }, // 192.67.79.0 - 192.67.79.255 { 0xc0435000, 0xc04353ff, REGISTRY_ARIN }, // 192.67.80.0 - 192.67.83.255 { 0xc0435400, 0xc04354ff, REGISTRY_APNIC }, // 192.67.84.0 - 192.67.84.255 { 0xc0435600, 0xc04356ff, REGISTRY_ARIN }, // 192.67.86.0 - 192.67.86.255 { 0xc0435700, 0xc04357ff, REGISTRY_RIPENCC }, // 192.67.87.0 - 192.67.87.255 { 0xc0435800, 0xc0435dff, REGISTRY_ARIN }, // 192.67.88.0 - 192.67.93.255 { 0xc0435e00, 0xc0435eff, REGISTRY_RIPENCC }, // 192.67.94.0 - 192.67.94.255 { 0xc0435f00, 0xc04363ff, REGISTRY_ARIN }, // 192.67.95.0 - 192.67.99.255 { 0xc0436400, 0xc04368ff, REGISTRY_RIPENCC }, // 192.67.100.0 - 192.67.104.255 { 0xc0436900, 0xc04386ff, REGISTRY_ARIN }, // 192.67.105.0 - 192.67.134.255 { 0xc0438700, 0xc04387ff, REGISTRY_RIPENCC }, // 192.67.135.0 - 192.67.135.255 { 0xc0438800, 0xc043a6ff, REGISTRY_ARIN }, // 192.67.136.0 - 192.67.166.255 { 0xc043a700, 0xc043a7ff, REGISTRY_RIPENCC }, // 192.67.167.0 - 192.67.167.255 { 0xc043a900, 0xc043a9ff, REGISTRY_ARIN }, // 192.67.169.0 - 192.67.169.255 { 0xc043aa00, 0xc043aaff, REGISTRY_RIPENCC }, // 192.67.170.0 - 192.67.170.255 { 0xc043ab00, 0xc043abff, REGISTRY_APNIC }, // 192.67.171.0 - 192.67.171.255 { 0xc043ac00, 0xc043bcff, REGISTRY_ARIN }, // 192.67.172.0 - 192.67.188.255 { 0xc043bd00, 0xc043c6ff, REGISTRY_RIPENCC }, // 192.67.189.0 - 192.67.198.255 { 0xc043c700, 0xc043c7ff, REGISTRY_RIPENCC }, // 192.67.199.0 - 192.67.199.255 { 0xc043c800, 0xc043d0ff, REGISTRY_RIPENCC }, // 192.67.200.0 - 192.67.208.255 { 0xc043d100, 0xc043d8ff, REGISTRY_ARIN }, // 192.67.209.0 - 192.67.216.255 { 0xc043da00, 0xc043daff, REGISTRY_RIPENCC }, // 192.67.218.0 - 192.67.218.255 { 0xc043db00, 0xc043dbff, REGISTRY_ARIN }, // 192.67.219.0 - 192.67.219.255 { 0xc043dc00, 0xc043ddff, REGISTRY_RIPENCC }, // 192.67.220.0 - 192.67.221.255 { 0xc043de00, 0xc043deff, REGISTRY_ARIN }, // 192.67.222.0 - 192.67.222.255 { 0xc043df00, 0xc043dfff, REGISTRY_RIPENCC }, // 192.67.223.0 - 192.67.223.255 { 0xc043e000, 0xc043f7ff, REGISTRY_ARIN }, // 192.67.224.0 - 192.67.247.255 { 0xc043f800, 0xc043f8ff, REGISTRY_APNIC }, // 192.67.248.0 - 192.67.248.255 { 0xc043f900, 0xc043f9ff, REGISTRY_RIPENCC }, // 192.67.249.0 - 192.67.249.255 { 0xc043fa00, 0xc043ffff, REGISTRY_ARIN }, // 192.67.250.0 - 192.67.255.255 { 0xc0440000, 0xc04413ff, REGISTRY_RIPENCC }, // 192.68.0.0 - 192.68.19.255 { 0xc0441400, 0xc04416ff, REGISTRY_ARIN }, // 192.68.20.0 - 192.68.22.255 { 0xc0441700, 0xc04417ff, REGISTRY_RIPENCC }, // 192.68.23.0 - 192.68.23.255 { 0xc0441800, 0xc0441aff, REGISTRY_ARIN }, // 192.68.24.0 - 192.68.26.255 { 0xc0441b00, 0xc0441bff, REGISTRY_APNIC }, // 192.68.27.0 - 192.68.27.255 { 0xc0441c00, 0xc0441eff, REGISTRY_ARIN }, // 192.68.28.0 - 192.68.30.255 { 0xc0441f00, 0xc04433ff, REGISTRY_RIPENCC }, // 192.68.31.0 - 192.68.51.255 { 0xc0443400, 0xc0444bff, REGISTRY_ARIN }, // 192.68.52.0 - 192.68.75.255 { 0xc0444c00, 0xc0446bff, REGISTRY_RIPENCC }, // 192.68.76.0 - 192.68.107.255 { 0xc0446c00, 0xc0446dff, REGISTRY_ARIN }, // 192.68.108.0 - 192.68.109.255 { 0xc0447000, 0xc04483ff, REGISTRY_ARIN }, // 192.68.112.0 - 192.68.131.255 { 0xc0448400, 0xc04484ff, REGISTRY_APNIC }, // 192.68.132.0 - 192.68.132.255 { 0xc0448500, 0xc04487ff, REGISTRY_ARIN }, // 192.68.133.0 - 192.68.135.255 { 0xc0448800, 0xc04488ff, REGISTRY_RIPENCC }, // 192.68.136.0 - 192.68.136.255 { 0xc0448900, 0xc04489ff, REGISTRY_ARIN }, // 192.68.137.0 - 192.68.137.255 { 0xc0448a00, 0xc0448aff, REGISTRY_AFRINIC }, // 192.68.138.0 - 192.68.138.255 { 0xc0448c00, 0xc04496ff, REGISTRY_ARIN }, // 192.68.140.0 - 192.68.150.255 { 0xc0449700, 0xc04499ff, REGISTRY_RIPENCC }, // 192.68.151.0 - 192.68.153.255 { 0xc0449a00, 0xc044a4ff, REGISTRY_ARIN }, // 192.68.154.0 - 192.68.164.255 { 0xc044a500, 0xc044aaff, REGISTRY_RIPENCC }, // 192.68.165.0 - 192.68.170.255 { 0xc044ac00, 0xc044acff, REGISTRY_APNIC }, // 192.68.172.0 - 192.68.172.255 { 0xc044ad00, 0xc044adff, REGISTRY_ARIN }, // 192.68.173.0 - 192.68.173.255 { 0xc044ae00, 0xc044aeff, REGISTRY_RIPENCC }, // 192.68.174.0 - 192.68.174.255 { 0xc044af00, 0xc044afff, REGISTRY_ARIN }, // 192.68.175.0 - 192.68.175.255 { 0xc044b000, 0xc044b0ff, REGISTRY_RIPENCC }, // 192.68.176.0 - 192.68.176.255 { 0xc044b100, 0xc044b2ff, REGISTRY_ARIN }, // 192.68.177.0 - 192.68.178.255 { 0xc044b400, 0xc044b5ff, REGISTRY_ARIN }, // 192.68.180.0 - 192.68.181.255 { 0xc044b600, 0xc044b6ff, REGISTRY_RIPENCC }, // 192.68.182.0 - 192.68.182.255 { 0xc044b700, 0xc044b8ff, REGISTRY_ARIN }, // 192.68.183.0 - 192.68.184.255 { 0xc044b900, 0xc044b9ff, REGISTRY_LACNIC }, // 192.68.185.0 - 192.68.185.255 { 0xc044ba00, 0xc044baff, REGISTRY_RIPENCC }, // 192.68.186.0 - 192.68.186.255 { 0xc044bb00, 0xc044d0ff, REGISTRY_ARIN }, // 192.68.187.0 - 192.68.208.255 { 0xc044d100, 0xc044d1ff, REGISTRY_RIPENCC }, // 192.68.209.0 - 192.68.209.255 { 0xc044d200, 0xc044d2ff, REGISTRY_ARIN }, // 192.68.210.0 - 192.68.210.255 { 0xc044d300, 0xc044d8ff, REGISTRY_RIPENCC }, // 192.68.211.0 - 192.68.216.255 { 0xc044d900, 0xc044dcff, REGISTRY_ARIN }, // 192.68.217.0 - 192.68.220.255 { 0xc044dd00, 0xc044ddff, REGISTRY_RIPENCC }, // 192.68.221.0 - 192.68.221.255 { 0xc044de00, 0xc044dfff, REGISTRY_ARIN }, // 192.68.222.0 - 192.68.223.255 { 0xc044e000, 0xc044e0ff, REGISTRY_RIPENCC }, // 192.68.224.0 - 192.68.224.255 { 0xc044e100, 0xc044e5ff, REGISTRY_ARIN }, // 192.68.225.0 - 192.68.229.255 { 0xc044e600, 0xc044e6ff, REGISTRY_RIPENCC }, // 192.68.230.0 - 192.68.230.255 { 0xc044e700, 0xc044eaff, REGISTRY_ARIN }, // 192.68.231.0 - 192.68.234.255 { 0xc044eb00, 0xc044f9ff, REGISTRY_APNIC }, // 192.68.235.0 - 192.68.249.255 { 0xc044fa00, 0xc044fcff, REGISTRY_RIPENCC }, // 192.68.250.0 - 192.68.252.255 { 0xc044fd00, 0xc044fdff, REGISTRY_ARIN }, // 192.68.253.0 - 192.68.253.255 { 0xc044fe00, 0xc044feff, REGISTRY_RIPENCC }, // 192.68.254.0 - 192.68.254.255 { 0xc044ff00, 0xc04573ff, REGISTRY_ARIN }, // 192.68.255.0 - 192.69.115.255 { 0xc0457400, 0xc04574ff, REGISTRY_APNIC }, // 192.69.116.0 - 192.69.116.255 { 0xc0457500, 0xc045ffff, REGISTRY_ARIN }, // 192.69.117.0 - 192.69.255.255 { 0xc0460000, 0xc04677ff, REGISTRY_RIPENCC }, // 192.70.0.0 - 192.70.119.255 { 0xc0467800, 0xc04684ff, REGISTRY_ARIN }, // 192.70.120.0 - 192.70.132.255 { 0xc0468500, 0xc04686ff, REGISTRY_RIPENCC }, // 192.70.133.0 - 192.70.134.255 { 0xc0468700, 0xc04687ff, REGISTRY_APNIC }, // 192.70.135.0 - 192.70.135.255 { 0xc0468800, 0xc04688ff, REGISTRY_RIPENCC }, // 192.70.136.0 - 192.70.136.255 { 0xc0468900, 0xc0468bff, REGISTRY_ARIN }, // 192.70.137.0 - 192.70.139.255 { 0xc0468c00, 0xc0469fff, REGISTRY_RIPENCC }, // 192.70.140.0 - 192.70.159.255 { 0xc046a000, 0xc046adff, REGISTRY_ARIN }, // 192.70.160.0 - 192.70.173.255 { 0xc046ae00, 0xc046aeff, REGISTRY_APNIC }, // 192.70.174.0 - 192.70.174.255 { 0xc046af00, 0xc046b2ff, REGISTRY_ARIN }, // 192.70.175.0 - 192.70.178.255 { 0xc046b300, 0xc046b5ff, REGISTRY_APNIC }, // 192.70.179.0 - 192.70.181.255 { 0xc046b800, 0xc046bfff, REGISTRY_ARIN }, // 192.70.184.0 - 192.70.191.255 { 0xc046c000, 0xc046c7ff, REGISTRY_RIPENCC }, // 192.70.192.0 - 192.70.199.255 { 0xc046c800, 0xc046c9ff, REGISTRY_AFRINIC }, // 192.70.200.0 - 192.70.201.255 { 0xc046ca00, 0xc046d7ff, REGISTRY_ARIN }, // 192.70.202.0 - 192.70.215.255 { 0xc046d800, 0xc046d8ff, REGISTRY_APNIC }, // 192.70.216.0 - 192.70.216.255 { 0xc046d900, 0xc046daff, REGISTRY_ARIN }, // 192.70.217.0 - 192.70.218.255 { 0xc046db00, 0xc046dbff, REGISTRY_APNIC }, // 192.70.219.0 - 192.70.219.255 { 0xc046dc00, 0xc046ecff, REGISTRY_ARIN }, // 192.70.220.0 - 192.70.236.255 { 0xc046ed00, 0xc046edff, REGISTRY_AFRINIC }, // 192.70.237.0 - 192.70.237.255 { 0xc046ee00, 0xc046f1ff, REGISTRY_ARIN }, // 192.70.238.0 - 192.70.241.255 { 0xc046f200, 0xc046f2ff, REGISTRY_RIPENCC }, // 192.70.242.0 - 192.70.242.255 { 0xc046f300, 0xc046ffff, REGISTRY_ARIN }, // 192.70.243.0 - 192.70.255.255 { 0xc0470000, 0xc047ffff, REGISTRY_RIPENCC }, // 192.71.0.0 - 192.71.255.255 { 0xc0480000, 0xc04802ff, REGISTRY_ARIN }, // 192.72.0.0 - 192.72.2.255 { 0xc0480300, 0xc048fcff, REGISTRY_APNIC }, // 192.72.3.0 - 192.72.252.255 { 0xc048fd00, 0xc0490bff, REGISTRY_ARIN }, // 192.72.253.0 - 192.73.11.255 { 0xc0490c00, 0xc0490cff, REGISTRY_APNIC }, // 192.73.12.0 - 192.73.12.255 { 0xc0490d00, 0xc04912ff, REGISTRY_ARIN }, // 192.73.13.0 - 192.73.18.255 { 0xc0491300, 0xc04914ff, REGISTRY_RIPENCC }, // 192.73.19.0 - 192.73.20.255 { 0xc0491500, 0xc04916ff, REGISTRY_APNIC }, // 192.73.21.0 - 192.73.22.255 { 0xc0491700, 0xc04917ff, REGISTRY_ARIN }, // 192.73.23.0 - 192.73.23.255 { 0xc0491800, 0xc04919ff, REGISTRY_APNIC }, // 192.73.24.0 - 192.73.25.255 { 0xc0491a00, 0xc04921ff, REGISTRY_ARIN }, // 192.73.26.0 - 192.73.33.255 { 0xc0492200, 0xc0492cff, REGISTRY_RIPENCC }, // 192.73.34.0 - 192.73.44.255 { 0xc0492d00, 0xc04941ff, REGISTRY_ARIN }, // 192.73.45.0 - 192.73.65.255 { 0xc0494200, 0xc04942ff, REGISTRY_APNIC }, // 192.73.66.0 - 192.73.66.255 { 0xc0494300, 0xc049e1ff, REGISTRY_ARIN }, // 192.73.67.0 - 192.73.225.255 { 0xc049e200, 0xc049e2ff, REGISTRY_RIPENCC }, // 192.73.226.0 - 192.73.226.255 { 0xc049e300, 0xc049e4ff, REGISTRY_ARIN }, // 192.73.227.0 - 192.73.228.255 { 0xc049e500, 0xc049e5ff, REGISTRY_RIPENCC }, // 192.73.229.0 - 192.73.229.255 { 0xc049e600, 0xc04a8aff, REGISTRY_ARIN }, // 192.73.230.0 - 192.74.138.255 { 0xc04a8b00, 0xc04ad0ff, REGISTRY_APNIC }, // 192.74.139.0 - 192.74.208.255 { 0xc04ad100, 0xc04b03ff, REGISTRY_ARIN }, // 192.74.209.0 - 192.75.3.255 { 0xc04b0400, 0xc04b04ff, REGISTRY_LACNIC }, // 192.75.4.0 - 192.75.4.255 { 0xc04b0500, 0xc04b88ff, REGISTRY_ARIN }, // 192.75.5.0 - 192.75.136.255 { 0xc04b8900, 0xc04b89ff, REGISTRY_APNIC }, // 192.75.137.0 - 192.75.137.255 { 0xc04b8a00, 0xc04bebff, REGISTRY_ARIN }, // 192.75.138.0 - 192.75.235.255 { 0xc04bec00, 0xc04becff, REGISTRY_AFRINIC }, // 192.75.236.0 - 192.75.236.255 { 0xc04bed00, 0xc04c05ff, REGISTRY_ARIN }, // 192.75.237.0 - 192.76.5.255 { 0xc04c0600, 0xc04c23ff, REGISTRY_RIPENCC }, // 192.76.6.0 - 192.76.35.255 { 0xc04c2400, 0xc04c75ff, REGISTRY_ARIN }, // 192.76.36.0 - 192.76.117.255 { 0xc04c7600, 0xc04c77ff, REGISTRY_RIPENCC }, // 192.76.118.0 - 192.76.119.255 { 0xc04c7800, 0xc04c79ff, REGISTRY_ARIN }, // 192.76.120.0 - 192.76.121.255 { 0xc04c7a00, 0xc04c7aff, REGISTRY_APNIC }, // 192.76.122.0 - 192.76.122.255 { 0xc04c7b00, 0xc04c84ff, REGISTRY_RIPENCC }, // 192.76.123.0 - 192.76.132.255 { 0xc04c8500, 0xc04c85ff, REGISTRY_ARIN }, // 192.76.133.0 - 192.76.133.255 { 0xc04c8600, 0xc04c94ff, REGISTRY_RIPENCC }, // 192.76.134.0 - 192.76.148.255 { 0xc04c9500, 0xc04c96ff, REGISTRY_RIPENCC }, // 192.76.149.0 - 192.76.150.255 { 0xc04c9700, 0xc04c98ff, REGISTRY_RIPENCC }, // 192.76.151.0 - 192.76.152.255 { 0xc04c9900, 0xc04c99ff, REGISTRY_RIPENCC }, // 192.76.153.0 - 192.76.153.255 { 0xc04c9a00, 0xc04c9fff, REGISTRY_RIPENCC }, // 192.76.154.0 - 192.76.159.255 { 0xc04ca000, 0xc04ca0ff, REGISTRY_RIPENCC }, // 192.76.160.0 - 192.76.160.255 { 0xc04ca100, 0xc04ca2ff, REGISTRY_RIPENCC }, // 192.76.161.0 - 192.76.162.255 { 0xc04ca300, 0xc04ca4ff, REGISTRY_RIPENCC }, // 192.76.163.0 - 192.76.164.255 { 0xc04ca500, 0xc04caaff, REGISTRY_RIPENCC }, // 192.76.165.0 - 192.76.170.255 { 0xc04cab00, 0xc04cabff, REGISTRY_RIPENCC }, // 192.76.171.0 - 192.76.171.255 { 0xc04cac00, 0xc04cacff, REGISTRY_RIPENCC }, // 192.76.172.0 - 192.76.172.255 { 0xc04cad00, 0xc04cafff, REGISTRY_ARIN }, // 192.76.173.0 - 192.76.175.255 { 0xc04cb000, 0xc04cb0ff, REGISTRY_RIPENCC }, // 192.76.176.0 - 192.76.176.255 { 0xc04cb100, 0xc04cf0ff, REGISTRY_ARIN }, // 192.76.177.0 - 192.76.240.255 { 0xc04cf100, 0xc04cf8ff, REGISTRY_RIPENCC }, // 192.76.241.0 - 192.76.248.255 { 0xc04cf900, 0xc04cfbff, REGISTRY_ARIN }, // 192.76.249.0 - 192.76.251.255 { 0xc04cff00, 0xc04d07ff, REGISTRY_ARIN }, // 192.76.255.0 - 192.77.7.255 { 0xc04d0900, 0xc04d0aff, REGISTRY_ARIN }, // 192.77.9.0 - 192.77.10.255 { 0xc04d0b00, 0xc04d0bff, REGISTRY_RIPENCC }, // 192.77.11.0 - 192.77.11.255 { 0xc04d0c00, 0xc04d10ff, REGISTRY_ARIN }, // 192.77.12.0 - 192.77.16.255 { 0xc04d1200, 0xc04d71ff, REGISTRY_ARIN }, // 192.77.18.0 - 192.77.113.255 { 0xc04d7200, 0xc04d73ff, REGISTRY_RIPENCC }, // 192.77.114.0 - 192.77.115.255 { 0xc04d7400, 0xc04d77ff, REGISTRY_ARIN }, // 192.77.116.0 - 192.77.119.255 { 0xc04d7800, 0xc04d7bff, REGISTRY_RIPENCC }, // 192.77.120.0 - 192.77.123.255 { 0xc04d7c00, 0xc04d83ff, REGISTRY_ARIN }, // 192.77.124.0 - 192.77.131.255 { 0xc04d8400, 0xc04d8aff, REGISTRY_RIPENCC }, // 192.77.132.0 - 192.77.138.255 { 0xc04d8b00, 0xc04d8bff, REGISTRY_ARIN }, // 192.77.139.0 - 192.77.139.255 { 0xc04d8c00, 0xc04d8dff, REGISTRY_RIPENCC }, // 192.77.140.0 - 192.77.141.255 { 0xc04d8e00, 0xc04e9fff, REGISTRY_ARIN }, // 192.77.142.0 - 192.78.159.255 { 0xc04ea000, 0xc04eafff, REGISTRY_RIPENCC }, // 192.78.160.0 - 192.78.175.255 { 0xc04eb000, 0xc04ebfff, REGISTRY_ARIN }, // 192.78.176.0 - 192.78.191.255 { 0xc04ec000, 0xc04ecfff, REGISTRY_RIPENCC }, // 192.78.192.0 - 192.78.207.255 { 0xc04ed000, 0xc05013ff, REGISTRY_ARIN }, // 192.78.208.0 - 192.80.19.255 { 0xc0501400, 0xc05015ff, REGISTRY_RIPENCC }, // 192.80.20.0 - 192.80.21.255 { 0xc0501600, 0xc05017ff, REGISTRY_ARIN }, // 192.80.22.0 - 192.80.23.255 { 0xc0501800, 0xc05018ff, REGISTRY_LACNIC }, // 192.80.24.0 - 192.80.24.255 { 0xc0501900, 0xc0501eff, REGISTRY_ARIN }, // 192.80.25.0 - 192.80.30.255 { 0xc0501f00, 0xc0502aff, REGISTRY_RIPENCC }, // 192.80.31.0 - 192.80.42.255 { 0xc0502b00, 0xc0502dff, REGISTRY_ARIN }, // 192.80.43.0 - 192.80.45.255 { 0xc0502e00, 0xc0502eff, REGISTRY_RIPENCC }, // 192.80.46.0 - 192.80.46.255 { 0xc0502f00, 0xc05032ff, REGISTRY_ARIN }, // 192.80.47.0 - 192.80.50.255 { 0xc0503300, 0xc05033ff, REGISTRY_RIPENCC }, // 192.80.51.0 - 192.80.51.255 { 0xc0503400, 0xc050d0ff, REGISTRY_ARIN }, // 192.80.52.0 - 192.80.208.255 { 0xc050d100, 0xc050d1ff, REGISTRY_LACNIC }, // 192.80.209.0 - 192.80.209.255 { 0xc050d200, 0xc0513aff, REGISTRY_ARIN }, // 192.80.210.0 - 192.81.58.255 { 0xc0513b00, 0xc0513bff, REGISTRY_RIPENCC }, // 192.81.59.0 - 192.81.59.255 { 0xc0513c00, 0xc0513cff, REGISTRY_ARIN }, // 192.81.60.0 - 192.81.60.255 { 0xc0513d00, 0xc0513eff, REGISTRY_RIPENCC }, // 192.81.61.0 - 192.81.62.255 { 0xc0513f00, 0xc0516cff, REGISTRY_ARIN }, // 192.81.63.0 - 192.81.108.255 { 0xc0516d00, 0xc0516dff, REGISTRY_RIPENCC }, // 192.81.109.0 - 192.81.109.255 { 0xc0516e00, 0xc05178ff, REGISTRY_ARIN }, // 192.81.110.0 - 192.81.120.255 { 0xc0517900, 0xc05179ff, REGISTRY_RIPENCC }, // 192.81.121.0 - 192.81.121.255 { 0xc0517a00, 0xc0517aff, REGISTRY_ARIN }, // 192.81.122.0 - 192.81.122.255 { 0xc0517b00, 0xc0517bff, REGISTRY_RIPENCC }, // 192.81.123.0 - 192.81.123.255 { 0xc0517c00, 0xc0519fff, REGISTRY_ARIN }, // 192.81.124.0 - 192.81.159.255 { 0xc051a000, 0xc051a0ff, REGISTRY_RIPENCC }, // 192.81.160.0 - 192.81.160.255 { 0xc051a100, 0xc051b5ff, REGISTRY_ARIN }, // 192.81.161.0 - 192.81.181.255 { 0xc051b600, 0xc051b8ff, REGISTRY_RIPENCC }, // 192.81.182.0 - 192.81.184.255 { 0xc051b900, 0xc051c1ff, REGISTRY_ARIN }, // 192.81.185.0 - 192.81.193.255 { 0xc051c200, 0xc051c2ff, REGISTRY_RIPENCC }, // 192.81.194.0 - 192.81.194.255 { 0xc051c300, 0xc051e5ff, REGISTRY_ARIN }, // 192.81.195.0 - 192.81.229.255 { 0xc051e600, 0xc051e6ff, REGISTRY_RIPENCC }, // 192.81.230.0 - 192.81.230.255 { 0xc051e700, 0xc051e9ff, REGISTRY_ARIN }, // 192.81.231.0 - 192.81.233.255 { 0xc051ea00, 0xc051eaff, REGISTRY_RIPENCC }, // 192.81.234.0 - 192.81.234.255 { 0xc051eb00, 0xc05233ff, REGISTRY_ARIN }, // 192.81.235.0 - 192.82.51.255 { 0xc0523400, 0xc0525fff, REGISTRY_APNIC }, // 192.82.52.0 - 192.82.95.255 { 0xc0526000, 0xc05263ff, REGISTRY_ARIN }, // 192.82.96.0 - 192.82.99.255 { 0xc0526400, 0xc05264ff, REGISTRY_APNIC }, // 192.82.100.0 - 192.82.100.255 { 0xc0526500, 0xc05278ff, REGISTRY_ARIN }, // 192.82.101.0 - 192.82.120.255 { 0xc0527900, 0xc05279ff, REGISTRY_RIPENCC }, // 192.82.121.0 - 192.82.121.255 { 0xc0527a00, 0xc0527bff, REGISTRY_ARIN }, // 192.82.122.0 - 192.82.123.255 { 0xc0527c00, 0xc0527cff, REGISTRY_RIPENCC }, // 192.82.124.0 - 192.82.124.255 { 0xc0527d00, 0xc0527eff, REGISTRY_ARIN }, // 192.82.125.0 - 192.82.126.255 { 0xc0527f00, 0xc0527fff, REGISTRY_RIPENCC }, // 192.82.127.0 - 192.82.127.255 { 0xc0528000, 0xc05283ff, REGISTRY_ARIN }, // 192.82.128.0 - 192.82.131.255 { 0xc0528500, 0xc0528bff, REGISTRY_ARIN }, // 192.82.133.0 - 192.82.139.255 { 0xc0528c00, 0xc0528cff, REGISTRY_APNIC }, // 192.82.140.0 - 192.82.140.255 { 0xc0528d00, 0xc0528dff, REGISTRY_ARIN }, // 192.82.141.0 - 192.82.141.255 { 0xc0528e00, 0xc0528eff, REGISTRY_AFRINIC }, // 192.82.142.0 - 192.82.142.255 { 0xc0528f00, 0xc0528fff, REGISTRY_APNIC }, // 192.82.143.0 - 192.82.143.255 { 0xc0529000, 0xc05298ff, REGISTRY_ARIN }, // 192.82.144.0 - 192.82.152.255 { 0xc0529900, 0xc05299ff, REGISTRY_RIPENCC }, // 192.82.153.0 - 192.82.153.255 { 0xc0529a00, 0xc0529cff, REGISTRY_ARIN }, // 192.82.154.0 - 192.82.156.255 { 0xc0529d00, 0xc0529eff, REGISTRY_RIPENCC }, // 192.82.157.0 - 192.82.158.255 { 0xc0529f00, 0xc052a0ff, REGISTRY_ARIN }, // 192.82.159.0 - 192.82.160.255 { 0xc052a100, 0xc052a1ff, REGISTRY_APNIC }, // 192.82.161.0 - 192.82.161.255 { 0xc052a200, 0xc052d5ff, REGISTRY_ARIN }, // 192.82.162.0 - 192.82.213.255 { 0xc052d600, 0xc052d6ff, REGISTRY_RIPENCC }, // 192.82.214.0 - 192.82.214.255 { 0xc052d700, 0xc052dbff, REGISTRY_ARIN }, // 192.82.215.0 - 192.82.219.255 { 0xc052dc00, 0xc052ddff, REGISTRY_RIPENCC }, // 192.82.220.0 - 192.82.221.255 { 0xc052de00, 0xc052deff, REGISTRY_APNIC }, // 192.82.222.0 - 192.82.222.255 { 0xc052df00, 0xc052e5ff, REGISTRY_ARIN }, // 192.82.223.0 - 192.82.229.255 { 0xc052e700, 0xc052f0ff, REGISTRY_ARIN }, // 192.82.231.0 - 192.82.240.255 { 0xc052f100, 0xc052f1ff, REGISTRY_RIPENCC }, // 192.82.241.0 - 192.82.241.255 { 0xc052f200, 0xc052ffff, REGISTRY_ARIN }, // 192.82.242.0 - 192.82.255.255 { 0xc0530000, 0xc05364ff, REGISTRY_RIPENCC }, // 192.83.0.0 - 192.83.100.255 { 0xc0536500, 0xc05365ff, REGISTRY_ARIN }, // 192.83.101.0 - 192.83.101.255 { 0xc0536600, 0xc05366ff, REGISTRY_RIPENCC }, // 192.83.102.0 - 192.83.102.255 { 0xc0536700, 0xc05367ff, REGISTRY_ARIN }, // 192.83.103.0 - 192.83.103.255 { 0xc0536900, 0xc05375ff, REGISTRY_ARIN }, // 192.83.105.0 - 192.83.117.255 { 0xc0537600, 0xc05377ff, REGISTRY_APNIC }, // 192.83.118.0 - 192.83.119.255 { 0xc0537800, 0xc05378ff, REGISTRY_RIPENCC }, // 192.83.120.0 - 192.83.120.255 { 0xc0537900, 0xc05379ff, REGISTRY_ARIN }, // 192.83.121.0 - 192.83.121.255 { 0xc0537c00, 0xc0539cff, REGISTRY_ARIN }, // 192.83.124.0 - 192.83.156.255 { 0xc0539e00, 0xc0539fff, REGISTRY_ARIN }, // 192.83.158.0 - 192.83.159.255 { 0xc053a000, 0xc053a0ff, REGISTRY_RIPENCC }, // 192.83.160.0 - 192.83.160.255 { 0xc053a100, 0xc053a4ff, REGISTRY_ARIN }, // 192.83.161.0 - 192.83.164.255 { 0xc053a500, 0xc053a5ff, REGISTRY_RIPENCC }, // 192.83.165.0 - 192.83.165.255 { 0xc053a600, 0xc053c4ff, REGISTRY_APNIC }, // 192.83.166.0 - 192.83.196.255 { 0xc053c500, 0xc053c5ff, REGISTRY_ARIN }, // 192.83.197.0 - 192.83.197.255 { 0xc053c600, 0xc053c6ff, REGISTRY_APNIC }, // 192.83.198.0 - 192.83.198.255 { 0xc053c700, 0xc053c7ff, REGISTRY_ARIN }, // 192.83.199.0 - 192.83.199.255 { 0xc053c800, 0xc053c8ff, REGISTRY_RIPENCC }, // 192.83.200.0 - 192.83.200.255 { 0xc053c900, 0xc053c9ff, REGISTRY_ARIN }, // 192.83.201.0 - 192.83.201.255 { 0xc053ca00, 0xc053caff, REGISTRY_RIPENCC }, // 192.83.202.0 - 192.83.202.255 { 0xc053cb00, 0xc053ceff, REGISTRY_ARIN }, // 192.83.203.0 - 192.83.206.255 { 0xc053cf00, 0xc053cfff, REGISTRY_LACNIC }, // 192.83.207.0 - 192.83.207.255 { 0xc053d000, 0xc053d3ff, REGISTRY_AFRINIC }, // 192.83.208.0 - 192.83.211.255 { 0xc053d800, 0xc053d8ff, REGISTRY_RIPENCC }, // 192.83.216.0 - 192.83.216.255 { 0xc053da00, 0xc053dbff, REGISTRY_APNIC }, // 192.83.218.0 - 192.83.219.255 { 0xc053dc00, 0xc053deff, REGISTRY_ARIN }, // 192.83.220.0 - 192.83.222.255 { 0xc053df00, 0xc053dfff, REGISTRY_RIPENCC }, // 192.83.223.0 - 192.83.223.255 { 0xc053e000, 0xc053e0ff, REGISTRY_APNIC }, // 192.83.224.0 - 192.83.224.255 { 0xc053e100, 0xc053e4ff, REGISTRY_ARIN }, // 192.83.225.0 - 192.83.228.255 { 0xc053e500, 0xc053e6ff, REGISTRY_RIPENCC }, // 192.83.229.0 - 192.83.230.255 { 0xc053e700, 0xc053e7ff, REGISTRY_APNIC }, // 192.83.231.0 - 192.83.231.255 { 0xc053e800, 0xc053ecff, REGISTRY_ARIN }, // 192.83.232.0 - 192.83.236.255 { 0xc053ed00, 0xc053eeff, REGISTRY_APNIC }, // 192.83.237.0 - 192.83.238.255 { 0xc053ef00, 0xc05404ff, REGISTRY_ARIN }, // 192.83.239.0 - 192.84.4.255 { 0xc0540500, 0xc05405ff, REGISTRY_RIPENCC }, // 192.84.5.0 - 192.84.5.255 { 0xc0540600, 0xc0540bff, REGISTRY_ARIN }, // 192.84.6.0 - 192.84.11.255 { 0xc0540c00, 0xc0540cff, REGISTRY_LACNIC }, // 192.84.12.0 - 192.84.12.255 { 0xc0540d00, 0xc0540dff, REGISTRY_RIPENCC }, // 192.84.13.0 - 192.84.13.255 { 0xc0540e00, 0xc0540eff, REGISTRY_ARIN }, // 192.84.14.0 - 192.84.14.255 { 0xc0540f00, 0xc0540fff, REGISTRY_RIPENCC }, // 192.84.15.0 - 192.84.15.255 { 0xc0541000, 0xc0541aff, REGISTRY_ARIN }, // 192.84.16.0 - 192.84.26.255 { 0xc0541b00, 0xc0541bff, REGISTRY_RIPENCC }, // 192.84.27.0 - 192.84.27.255 { 0xc0541c00, 0xc0541dff, REGISTRY_ARIN }, // 192.84.28.0 - 192.84.29.255 { 0xc0541e00, 0xc0541eff, REGISTRY_RIPENCC }, // 192.84.30.0 - 192.84.30.255 { 0xc0541f00, 0xc0541fff, REGISTRY_ARIN }, // 192.84.31.0 - 192.84.31.255 { 0xc0542000, 0xc05421ff, REGISTRY_RIPENCC }, // 192.84.32.0 - 192.84.33.255 { 0xc0542200, 0xc0543dff, REGISTRY_ARIN }, // 192.84.34.0 - 192.84.61.255 { 0xc0543e00, 0xc0543eff, REGISTRY_RIPENCC }, // 192.84.62.0 - 192.84.62.255 { 0xc0543f00, 0xc05446ff, REGISTRY_ARIN }, // 192.84.63.0 - 192.84.70.255 { 0xc0544a00, 0xc0544aff, REGISTRY_ARIN }, // 192.84.74.0 - 192.84.74.255 { 0xc0544b00, 0xc05454ff, REGISTRY_RIPENCC }, // 192.84.75.0 - 192.84.84.255 { 0xc0545500, 0xc05456ff, REGISTRY_ARIN }, // 192.84.85.0 - 192.84.86.255 { 0xc0545700, 0xc05457ff, REGISTRY_RIPENCC }, // 192.84.87.0 - 192.84.87.255 { 0xc0545800, 0xc05458ff, REGISTRY_ARIN }, // 192.84.88.0 - 192.84.88.255 { 0xc0545900, 0xc05459ff, REGISTRY_APNIC }, // 192.84.89.0 - 192.84.89.255 { 0xc0545a00, 0xc05463ff, REGISTRY_RIPENCC }, // 192.84.90.0 - 192.84.99.255 { 0xc0546400, 0xc05464ff, REGISTRY_ARIN }, // 192.84.100.0 - 192.84.100.255 { 0xc0546500, 0xc0546dff, REGISTRY_RIPENCC }, // 192.84.101.0 - 192.84.109.255 { 0xc0546e00, 0xc0547eff, REGISTRY_ARIN }, // 192.84.110.0 - 192.84.126.255 { 0xc0547f00, 0xc0549cff, REGISTRY_RIPENCC }, // 192.84.127.0 - 192.84.156.255 { 0xc0549d00, 0xc054a5ff, REGISTRY_ARIN }, // 192.84.157.0 - 192.84.165.255 { 0xc054a600, 0xc054a6ff, REGISTRY_RIPENCC }, // 192.84.166.0 - 192.84.166.255 { 0xc054a700, 0xc054acff, REGISTRY_ARIN }, // 192.84.167.0 - 192.84.172.255 { 0xc054ad00, 0xc054adff, REGISTRY_RIPENCC }, // 192.84.173.0 - 192.84.173.255 { 0xc054ae00, 0xc054afff, REGISTRY_ARIN }, // 192.84.174.0 - 192.84.175.255 { 0xc054b000, 0xc054cfff, REGISTRY_RIPENCC }, // 192.84.176.0 - 192.84.207.255 { 0xc054d000, 0xc054d3ff, REGISTRY_ARIN }, // 192.84.208.0 - 192.84.211.255 { 0xc054d400, 0xc054d4ff, REGISTRY_RIPENCC }, // 192.84.212.0 - 192.84.212.255 { 0xc054d500, 0xc054daff, REGISTRY_ARIN }, // 192.84.213.0 - 192.84.218.255 { 0xc054dc00, 0xc054ddff, REGISTRY_RIPENCC }, // 192.84.220.0 - 192.84.221.255 { 0xc054de00, 0xc054e1ff, REGISTRY_ARIN }, // 192.84.222.0 - 192.84.225.255 { 0xc054e200, 0xc054e5ff, REGISTRY_RIPENCC }, // 192.84.226.0 - 192.84.229.255 { 0xc054e600, 0xc054e6ff, REGISTRY_APNIC }, // 192.84.230.0 - 192.84.230.255 { 0xc054e700, 0xc054ecff, REGISTRY_ARIN }, // 192.84.231.0 - 192.84.236.255 { 0xc054ed00, 0xc054eeff, REGISTRY_APNIC }, // 192.84.237.0 - 192.84.238.255 { 0xc054ef00, 0xc054f0ff, REGISTRY_ARIN }, // 192.84.239.0 - 192.84.240.255 { 0xc054f300, 0xc054f3ff, REGISTRY_ARIN }, // 192.84.243.0 - 192.84.243.255 { 0xc054f400, 0xc054f4ff, REGISTRY_AFRINIC }, // 192.84.244.0 - 192.84.244.255 { 0xc054f500, 0xc054f7ff, REGISTRY_RIPENCC }, // 192.84.245.0 - 192.84.247.255 { 0xc054f800, 0xc054fcff, REGISTRY_ARIN }, // 192.84.248.0 - 192.84.252.255 { 0xc054fe00, 0xc0560aff, REGISTRY_ARIN }, // 192.84.254.0 - 192.86.10.255 { 0xc0560b00, 0xc0560bff, REGISTRY_RIPENCC }, // 192.86.11.0 - 192.86.11.255 { 0xc0560d00, 0xc0560dff, REGISTRY_ARIN }, // 192.86.13.0 - 192.86.13.255 { 0xc0560e00, 0xc0560eff, REGISTRY_RIPENCC }, // 192.86.14.0 - 192.86.14.255 { 0xc0560f00, 0xc05611ff, REGISTRY_ARIN }, // 192.86.15.0 - 192.86.17.255 { 0xc0561200, 0xc05612ff, REGISTRY_RIPENCC }, // 192.86.18.0 - 192.86.18.255 { 0xc0561300, 0xc05618ff, REGISTRY_ARIN }, // 192.86.19.0 - 192.86.24.255 { 0xc0561900, 0xc05619ff, REGISTRY_RIPENCC }, // 192.86.25.0 - 192.86.25.255 { 0xc0561a00, 0xc0561aff, REGISTRY_ARIN }, // 192.86.26.0 - 192.86.26.255 { 0xc0561b00, 0xc0561bff, REGISTRY_RIPENCC }, // 192.86.27.0 - 192.86.27.255 { 0xc0561c00, 0xc05658ff, REGISTRY_ARIN }, // 192.86.28.0 - 192.86.88.255 { 0xc0565900, 0xc05659ff, REGISTRY_RIPENCC }, // 192.86.89.0 - 192.86.89.255 { 0xc0565a00, 0xc0567cff, REGISTRY_ARIN }, // 192.86.90.0 - 192.86.124.255 { 0xc0567d00, 0xc0567fff, REGISTRY_RIPENCC }, // 192.86.125.0 - 192.86.127.255 { 0xc0568000, 0xc05680ff, REGISTRY_ARIN }, // 192.86.128.0 - 192.86.128.255 { 0xc0568200, 0xc05683ff, REGISTRY_ARIN }, // 192.86.130.0 - 192.86.131.255 { 0xc0568600, 0xc05686ff, REGISTRY_RIPENCC }, // 192.86.134.0 - 192.86.134.255 { 0xc0568700, 0xc05688ff, REGISTRY_ARIN }, // 192.86.135.0 - 192.86.136.255 { 0xc0568900, 0xc0568aff, REGISTRY_RIPENCC }, // 192.86.137.0 - 192.86.138.255 { 0xc0568b00, 0xc056a2ff, REGISTRY_ARIN }, // 192.86.139.0 - 192.86.162.255 { 0xc056a300, 0xc056a3ff, REGISTRY_RIPENCC }, // 192.86.163.0 - 192.86.163.255 { 0xc056a400, 0xc056a4ff, REGISTRY_ARIN }, // 192.86.164.0 - 192.86.164.255 { 0xc056a600, 0xc056a7ff, REGISTRY_RIPENCC }, // 192.86.166.0 - 192.86.167.255 { 0xc056a800, 0xc056a8ff, REGISTRY_ARIN }, // 192.86.168.0 - 192.86.168.255 { 0xc056a900, 0xc056a9ff, REGISTRY_RIPENCC }, // 192.86.169.0 - 192.86.169.255 { 0xc056aa00, 0xc056fdff, REGISTRY_ARIN }, // 192.86.170.0 - 192.86.253.255 { 0xc056fe00, 0xc056feff, REGISTRY_RIPENCC }, // 192.86.254.0 - 192.86.254.255 { 0xc056ff00, 0xc056ffff, REGISTRY_ARIN }, // 192.86.255.0 - 192.86.255.255 { 0xc0570000, 0xc057ffff, REGISTRY_RIPENCC }, // 192.87.0.0 - 192.87.255.255 { 0xc0580000, 0xc05800ff, REGISTRY_ARIN }, // 192.88.0.0 - 192.88.0.255 { 0xc0580100, 0xc05801ff, REGISTRY_RIPENCC }, // 192.88.1.0 - 192.88.1.255 { 0xc0580200, 0xc05803ff, REGISTRY_ARIN }, // 192.88.2.0 - 192.88.3.255 { 0xc0580400, 0xc05804ff, REGISTRY_RIPENCC }, // 192.88.4.0 - 192.88.4.255 { 0xc0580500, 0xc05805ff, REGISTRY_ARIN }, // 192.88.5.0 - 192.88.5.255 { 0xc0580600, 0xc05807ff, REGISTRY_APNIC }, // 192.88.6.0 - 192.88.7.255 { 0xc0580800, 0xc05808ff, REGISTRY_ARIN }, // 192.88.8.0 - 192.88.8.255 { 0xc0580900, 0xc0580aff, REGISTRY_RIPENCC }, // 192.88.9.0 - 192.88.10.255 { 0xc0580b00, 0xc05810ff, REGISTRY_ARIN }, // 192.88.11.0 - 192.88.16.255 { 0xc0581100, 0xc05811ff, REGISTRY_RIPENCC }, // 192.88.17.0 - 192.88.17.255 { 0xc0581200, 0xc05816ff, REGISTRY_ARIN }, // 192.88.18.0 - 192.88.22.255 { 0xc0581700, 0xc05818ff, REGISTRY_RIPENCC }, // 192.88.23.0 - 192.88.24.255 { 0xc0581900, 0xc0584fff, REGISTRY_ARIN }, // 192.88.25.0 - 192.88.79.255 { 0xc0585100, 0xc05852ff, REGISTRY_ARIN }, // 192.88.81.0 - 192.88.82.255 { 0xc0585300, 0xc05854ff, REGISTRY_RIPENCC }, // 192.88.83.0 - 192.88.84.255 { 0xc0585500, 0xc05855ff, REGISTRY_APNIC }, // 192.88.85.0 - 192.88.85.255 { 0xc0585600, 0xc05856ff, REGISTRY_RIPENCC }, // 192.88.86.0 - 192.88.86.255 { 0xc0585700, 0xc05860ff, REGISTRY_ARIN }, // 192.88.87.0 - 192.88.96.255 { 0xc0586100, 0xc05862ff, REGISTRY_RIPENCC }, // 192.88.97.0 - 192.88.98.255 { 0xc0586400, 0xc05864ff, REGISTRY_ARIN }, // 192.88.100.0 - 192.88.100.255 { 0xc0586700, 0xc0586bff, REGISTRY_ARIN }, // 192.88.103.0 - 192.88.107.255 { 0xc0586c00, 0xc0586cff, REGISTRY_RIPENCC }, // 192.88.108.0 - 192.88.108.255 { 0xc0586d00, 0xc05875ff, REGISTRY_ARIN }, // 192.88.109.0 - 192.88.117.255 { 0xc0587600, 0xc05876ff, REGISTRY_RIPENCC }, // 192.88.118.0 - 192.88.118.255 { 0xc0587800, 0xc0587aff, REGISTRY_ARIN }, // 192.88.120.0 - 192.88.122.255 { 0xc0587b00, 0xc0587bff, REGISTRY_RIPENCC }, // 192.88.123.0 - 192.88.123.255 { 0xc0587c00, 0xc0587fff, REGISTRY_ARIN }, // 192.88.124.0 - 192.88.127.255 { 0xc0588000, 0xc05880ff, REGISTRY_RIPENCC }, // 192.88.128.0 - 192.88.128.255 { 0xc0588100, 0xc05881ff, REGISTRY_ARIN }, // 192.88.129.0 - 192.88.129.255 { 0xc0588200, 0xc05882ff, REGISTRY_RIPENCC }, // 192.88.130.0 - 192.88.130.255 { 0xc0588300, 0xc05884ff, REGISTRY_ARIN }, // 192.88.131.0 - 192.88.132.255 { 0xc0588500, 0xc05885ff, REGISTRY_RIPENCC }, // 192.88.133.0 - 192.88.133.255 { 0xc0588600, 0xc058baff, REGISTRY_ARIN }, // 192.88.134.0 - 192.88.186.255 { 0xc058bb00, 0xc058bbff, REGISTRY_APNIC }, // 192.88.187.0 - 192.88.187.255 { 0xc058bc00, 0xc058bdff, REGISTRY_ARIN }, // 192.88.188.0 - 192.88.189.255 { 0xc058be00, 0xc058beff, REGISTRY_APNIC }, // 192.88.190.0 - 192.88.190.255 { 0xc058bf00, 0xc058c3ff, REGISTRY_ARIN }, // 192.88.191.0 - 192.88.195.255 { 0xc058c400, 0xc058c4ff, REGISTRY_RIPENCC }, // 192.88.196.0 - 192.88.196.255 { 0xc058c500, 0xc058cbff, REGISTRY_ARIN }, // 192.88.197.0 - 192.88.203.255 { 0xc058cc00, 0xc058ccff, REGISTRY_RIPENCC }, // 192.88.204.0 - 192.88.204.255 { 0xc058cd00, 0xc058edff, REGISTRY_ARIN }, // 192.88.205.0 - 192.88.237.255 { 0xc058ee00, 0xc058efff, REGISTRY_RIPENCC }, // 192.88.238.0 - 192.88.239.255 { 0xc058f000, 0xc058f9ff, REGISTRY_ARIN }, // 192.88.240.0 - 192.88.249.255 { 0xc058fa00, 0xc058feff, REGISTRY_RIPENCC }, // 192.88.250.0 - 192.88.254.255 { 0xc058ff00, 0xc058ffff, REGISTRY_ARIN }, // 192.88.255.0 - 192.88.255.255 { 0xc0590000, 0xc059ffff, REGISTRY_RIPENCC }, // 192.89.0.0 - 192.89.255.255 { 0xc05a0000, 0xc05b8bff, REGISTRY_ARIN }, // 192.90.0.0 - 192.91.139.255 { 0xc05b8c00, 0xc05b8dff, REGISTRY_RIPENCC }, // 192.91.140.0 - 192.91.141.255 { 0xc05b8e00, 0xc05bb0ff, REGISTRY_ARIN }, // 192.91.142.0 - 192.91.176.255 { 0xc05bb100, 0xc05bb1ff, REGISTRY_RIPENCC }, // 192.91.177.0 - 192.91.177.255 { 0xc05bb200, 0xc05bb2ff, REGISTRY_ARIN }, // 192.91.178.0 - 192.91.178.255 { 0xc05bb400, 0xc05bb8ff, REGISTRY_ARIN }, // 192.91.180.0 - 192.91.184.255 { 0xc05bb900, 0xc05bb9ff, REGISTRY_APNIC }, // 192.91.185.0 - 192.91.185.255 { 0xc05bba00, 0xc05bbaff, REGISTRY_RIPENCC }, // 192.91.186.0 - 192.91.186.255 { 0xc05bbb00, 0xc05bbcff, REGISTRY_ARIN }, // 192.91.187.0 - 192.91.188.255 { 0xc05bbd00, 0xc05bbdff, REGISTRY_RIPENCC }, // 192.91.189.0 - 192.91.189.255 { 0xc05bbe00, 0xc05bbeff, REGISTRY_ARIN }, // 192.91.190.0 - 192.91.190.255 { 0xc05bbf00, 0xc05bbfff, REGISTRY_RIPENCC }, // 192.91.191.0 - 192.91.191.255 { 0xc05bc000, 0xc05bc6ff, REGISTRY_ARIN }, // 192.91.192.0 - 192.91.198.255 { 0xc05bc700, 0xc05bc7ff, REGISTRY_RIPENCC }, // 192.91.199.0 - 192.91.199.255 { 0xc05bc800, 0xc05bc8ff, REGISTRY_AFRINIC }, // 192.91.200.0 - 192.91.200.255 { 0xc05bc900, 0xc05bc9ff, REGISTRY_RIPENCC }, // 192.91.201.0 - 192.91.201.255 { 0xc05bca00, 0xc05bd2ff, REGISTRY_ARIN }, // 192.91.202.0 - 192.91.210.255 { 0xc05bd300, 0xc05bd3ff, REGISTRY_RIPENCC }, // 192.91.211.0 - 192.91.211.255 { 0xc05bd400, 0xc05bd4ff, REGISTRY_ARIN }, // 192.91.212.0 - 192.91.212.255 { 0xc05bd500, 0xc05bd5ff, REGISTRY_APNIC }, // 192.91.213.0 - 192.91.213.255 { 0xc05bd600, 0xc05be9ff, REGISTRY_RIPENCC }, // 192.91.214.0 - 192.91.233.255 { 0xc05bea00, 0xc05bebff, REGISTRY_ARIN }, // 192.91.234.0 - 192.91.235.255 { 0xc05bec00, 0xc05bf7ff, REGISTRY_RIPENCC }, // 192.91.236.0 - 192.91.247.255 { 0xc05bf800, 0xc05bfdff, REGISTRY_ARIN }, // 192.91.248.0 - 192.91.253.255 { 0xc05bfe00, 0xc05bfeff, REGISTRY_LACNIC }, // 192.91.254.0 - 192.91.254.255 { 0xc05bff00, 0xc05c0eff, REGISTRY_ARIN }, // 192.91.255.0 - 192.92.14.255 { 0xc05c1000, 0xc05c55ff, REGISTRY_ARIN }, // 192.92.16.0 - 192.92.85.255 { 0xc05c5600, 0xc05c56ff, REGISTRY_RIPENCC }, // 192.92.86.0 - 192.92.86.255 { 0xc05c5700, 0xc05c5dff, REGISTRY_ARIN }, // 192.92.87.0 - 192.92.93.255 { 0xc05c5e00, 0xc05c5eff, REGISTRY_RIPENCC }, // 192.92.94.0 - 192.92.94.255 { 0xc05c5f00, 0xc05c67ff, REGISTRY_ARIN }, // 192.92.95.0 - 192.92.103.255 { 0xc05c6800, 0xc05c6aff, REGISTRY_RIPENCC }, // 192.92.104.0 - 192.92.106.255 { 0xc05c6b00, 0xc05c6bff, REGISTRY_ARIN }, // 192.92.107.0 - 192.92.107.255 { 0xc05c6c00, 0xc05c6dff, REGISTRY_RIPENCC }, // 192.92.108.0 - 192.92.109.255 { 0xc05c6e00, 0xc05c73ff, REGISTRY_ARIN }, // 192.92.110.0 - 192.92.115.255 { 0xc05c7400, 0xc05c74ff, REGISTRY_RIPENCC }, // 192.92.116.0 - 192.92.116.255 { 0xc05c7500, 0xc05c7cff, REGISTRY_ARIN }, // 192.92.117.0 - 192.92.124.255 { 0xc05c7d00, 0xc05c8bff, REGISTRY_RIPENCC }, // 192.92.125.0 - 192.92.139.255 { 0xc05c8c00, 0xc05c8cff, REGISTRY_ARIN }, // 192.92.140.0 - 192.92.140.255 { 0xc05c8d00, 0xc05c99ff, REGISTRY_RIPENCC }, // 192.92.141.0 - 192.92.153.255 { 0xc05c9a00, 0xc05c9aff, REGISTRY_LACNIC }, // 192.92.154.0 - 192.92.154.255 { 0xc05c9b00, 0xc05c9cff, REGISTRY_RIPENCC }, // 192.92.155.0 - 192.92.156.255 { 0xc05c9d00, 0xc05cd7ff, REGISTRY_ARIN }, // 192.92.157.0 - 192.92.215.255 { 0xc05cd800, 0xc05cd8ff, REGISTRY_RIPENCC }, // 192.92.216.0 - 192.92.216.255 { 0xc05cd900, 0xc05cf7ff, REGISTRY_ARIN }, // 192.92.217.0 - 192.92.247.255 { 0xc05cf800, 0xc05cffff, REGISTRY_APNIC }, // 192.92.248.0 - 192.92.255.255 { 0xc05d0000, 0xc05dffff, REGISTRY_RIPENCC }, // 192.93.0.0 - 192.93.255.255 { 0xc05e0000, 0xc05e17ff, REGISTRY_ARIN }, // 192.94.0.0 - 192.94.23.255 { 0xc05e1800, 0xc05e18ff, REGISTRY_RIPENCC }, // 192.94.24.0 - 192.94.24.255 { 0xc05e1900, 0xc05e1bff, REGISTRY_ARIN }, // 192.94.25.0 - 192.94.27.255 { 0xc05e1c00, 0xc05e1cff, REGISTRY_RIPENCC }, // 192.94.28.0 - 192.94.28.255 { 0xc05e1d00, 0xc05e28ff, REGISTRY_ARIN }, // 192.94.29.0 - 192.94.40.255 { 0xc05e2900, 0xc05e29ff, REGISTRY_APNIC }, // 192.94.41.0 - 192.94.41.255 { 0xc05e2a00, 0xc05e38ff, REGISTRY_ARIN }, // 192.94.42.0 - 192.94.56.255 { 0xc05e3900, 0xc05e3aff, REGISTRY_RIPENCC }, // 192.94.57.0 - 192.94.58.255 { 0xc05e3b00, 0xc05e3cff, REGISTRY_ARIN }, // 192.94.59.0 - 192.94.60.255 { 0xc05e3d00, 0xc05e3dff, REGISTRY_AFRINIC }, // 192.94.61.0 - 192.94.61.255 { 0xc05e3e00, 0xc05e40ff, REGISTRY_APNIC }, // 192.94.62.0 - 192.94.64.255 { 0xc05e4100, 0xc05e42ff, REGISTRY_ARIN }, // 192.94.65.0 - 192.94.66.255 { 0xc05e4300, 0xc05e44ff, REGISTRY_RIPENCC }, // 192.94.67.0 - 192.94.68.255 { 0xc05e4500, 0xc05e4bff, REGISTRY_ARIN }, // 192.94.69.0 - 192.94.75.255 { 0xc05e4c00, 0xc05e4cff, REGISTRY_RIPENCC }, // 192.94.76.0 - 192.94.76.255 { 0xc05e4d00, 0xc05e4dff, REGISTRY_ARIN }, // 192.94.77.0 - 192.94.77.255 { 0xc05e4e00, 0xc05e4eff, REGISTRY_RIPENCC }, // 192.94.78.0 - 192.94.78.255 { 0xc05e4f00, 0xc05e6eff, REGISTRY_ARIN }, // 192.94.79.0 - 192.94.110.255 { 0xc05e6f00, 0xc05e75ff, REGISTRY_RIPENCC }, // 192.94.111.0 - 192.94.117.255 { 0xc05e7600, 0xc05e79ff, REGISTRY_ARIN }, // 192.94.118.0 - 192.94.121.255 { 0xc05e7a00, 0xc05e7aff, REGISTRY_APNIC }, // 192.94.122.0 - 192.94.122.255 { 0xc05e7b00, 0xc05e9bff, REGISTRY_ARIN }, // 192.94.123.0 - 192.94.155.255 { 0xc05e9c00, 0xc05ea3ff, REGISTRY_RIPENCC }, // 192.94.156.0 - 192.94.163.255 { 0xc05ea400, 0xc05ea8ff, REGISTRY_ARIN }, // 192.94.164.0 - 192.94.168.255 { 0xc05ea900, 0xc05ea9ff, REGISTRY_APNIC }, // 192.94.169.0 - 192.94.169.255 { 0xc05eaa00, 0xc05eabff, REGISTRY_ARIN }, // 192.94.170.0 - 192.94.171.255 { 0xc05eac00, 0xc05eacff, REGISTRY_RIPENCC }, // 192.94.172.0 - 192.94.172.255 { 0xc05ead00, 0xc05eadff, REGISTRY_ARIN }, // 192.94.173.0 - 192.94.173.255 { 0xc05eae00, 0xc05eaeff, REGISTRY_APNIC }, // 192.94.174.0 - 192.94.174.255 { 0xc05eaf00, 0xc05ec7ff, REGISTRY_RIPENCC }, // 192.94.175.0 - 192.94.199.255 { 0xc05ec900, 0xc05ecfff, REGISTRY_ARIN }, // 192.94.201.0 - 192.94.207.255 { 0xc05ed000, 0xc05ed1ff, REGISTRY_APNIC }, // 192.94.208.0 - 192.94.209.255 { 0xc05ed200, 0xc05ed2ff, REGISTRY_AFRINIC }, // 192.94.210.0 - 192.94.210.255 { 0xc05ed300, 0xc05ed3ff, REGISTRY_ARIN }, // 192.94.211.0 - 192.94.211.255 { 0xc05ed400, 0xc05ed4ff, REGISTRY_RIPENCC }, // 192.94.212.0 - 192.94.212.255 { 0xc05ed500, 0xc05edbff, REGISTRY_ARIN }, // 192.94.213.0 - 192.94.219.255 { 0xc05edd00, 0xc05eddff, REGISTRY_RIPENCC }, // 192.94.221.0 - 192.94.221.255 { 0xc05ede00, 0xc05ee1ff, REGISTRY_ARIN }, // 192.94.222.0 - 192.94.225.255 { 0xc05ee200, 0xc05ee2ff, REGISTRY_RIPENCC }, // 192.94.226.0 - 192.94.226.255 { 0xc05ee300, 0xc05ee3ff, REGISTRY_APNIC }, // 192.94.227.0 - 192.94.227.255 { 0xc05ee400, 0xc05ee8ff, REGISTRY_ARIN }, // 192.94.228.0 - 192.94.232.255 { 0xc05ee900, 0xc05ee9ff, REGISTRY_RIPENCC }, // 192.94.233.0 - 192.94.233.255 { 0xc05eea00, 0xc05eeaff, REGISTRY_ARIN }, // 192.94.234.0 - 192.94.234.255 { 0xc05eeb00, 0xc05eebff, REGISTRY_RIPENCC }, // 192.94.235.0 - 192.94.235.255 { 0xc05eec00, 0xc05eecff, REGISTRY_APNIC }, // 192.94.236.0 - 192.94.236.255 { 0xc05eed00, 0xc05eedff, REGISTRY_ARIN }, // 192.94.237.0 - 192.94.237.255 { 0xc05eef00, 0xc05eefff, REGISTRY_RIPENCC }, // 192.94.239.0 - 192.94.239.255 { 0xc05ef000, 0xc05ef1ff, REGISTRY_AFRINIC }, // 192.94.240.0 - 192.94.241.255 { 0xc05ef200, 0xc05ef2ff, REGISTRY_ARIN }, // 192.94.242.0 - 192.94.242.255 { 0xc05ef300, 0xc05ef4ff, REGISTRY_APNIC }, // 192.94.243.0 - 192.94.244.255 { 0xc05ef500, 0xc05ef5ff, REGISTRY_ARIN }, // 192.94.245.0 - 192.94.245.255 { 0xc05ef600, 0xc05ef6ff, REGISTRY_AFRINIC }, // 192.94.246.0 - 192.94.246.255 { 0xc05ef700, 0xc05f4fff, REGISTRY_ARIN }, // 192.94.247.0 - 192.95.79.255 { 0xc05f5000, 0xc05f5fff, REGISTRY_RIPENCC }, // 192.95.80.0 - 192.95.95.255 { 0xc05f6000, 0xc06000ff, REGISTRY_ARIN }, // 192.95.96.0 - 192.96.0.255 { 0xc0600100, 0xc06010ff, REGISTRY_AFRINIC }, // 192.96.1.0 - 192.96.16.255 { 0xc0601100, 0xc06012ff, REGISTRY_ARIN }, // 192.96.17.0 - 192.96.18.255 { 0xc0601300, 0xc06016ff, REGISTRY_AFRINIC }, // 192.96.19.0 - 192.96.22.255 { 0xc0601700, 0xc06017ff, REGISTRY_ARIN }, // 192.96.23.0 - 192.96.23.255 { 0xc0601800, 0xc06023ff, REGISTRY_AFRINIC }, // 192.96.24.0 - 192.96.35.255 { 0xc0602400, 0xc06024ff, REGISTRY_ARIN }, // 192.96.36.0 - 192.96.36.255 { 0xc0602500, 0xc06028ff, REGISTRY_AFRINIC }, // 192.96.37.0 - 192.96.40.255 { 0xc0602900, 0xc0602aff, REGISTRY_ARIN }, // 192.96.41.0 - 192.96.42.255 { 0xc0602b00, 0xc0602bff, REGISTRY_AFRINIC }, // 192.96.43.0 - 192.96.43.255 { 0xc0602c00, 0xc0602cff, REGISTRY_ARIN }, // 192.96.44.0 - 192.96.44.255 { 0xc0602d00, 0xc0603aff, REGISTRY_AFRINIC }, // 192.96.45.0 - 192.96.58.255 { 0xc0603b00, 0xc0603bff, REGISTRY_ARIN }, // 192.96.59.0 - 192.96.59.255 { 0xc0603c00, 0xc0603dff, REGISTRY_AFRINIC }, // 192.96.60.0 - 192.96.61.255 { 0xc0603e00, 0xc06043ff, REGISTRY_ARIN }, // 192.96.62.0 - 192.96.67.255 { 0xc0604400, 0xc06048ff, REGISTRY_AFRINIC }, // 192.96.68.0 - 192.96.72.255 { 0xc0604900, 0xc06049ff, REGISTRY_ARIN }, // 192.96.73.0 - 192.96.73.255 { 0xc0604a00, 0xc0604dff, REGISTRY_AFRINIC }, // 192.96.74.0 - 192.96.77.255 { 0xc0604e00, 0xc0604eff, REGISTRY_ARIN }, // 192.96.78.0 - 192.96.78.255 { 0xc0604f00, 0xc06066ff, REGISTRY_AFRINIC }, // 192.96.79.0 - 192.96.102.255 { 0xc0606700, 0xc06067ff, REGISTRY_ARIN }, // 192.96.103.0 - 192.96.103.255 { 0xc0606800, 0xc06086ff, REGISTRY_AFRINIC }, // 192.96.104.0 - 192.96.134.255 { 0xc0608700, 0xc06089ff, REGISTRY_ARIN }, // 192.96.135.0 - 192.96.137.255 { 0xc0608a00, 0xc0608eff, REGISTRY_AFRINIC }, // 192.96.138.0 - 192.96.142.255 { 0xc0608f00, 0xc0608fff, REGISTRY_ARIN }, // 192.96.143.0 - 192.96.143.255 { 0xc0609000, 0xc06090ff, REGISTRY_AFRINIC }, // 192.96.144.0 - 192.96.144.255 { 0xc0609100, 0xc06091ff, REGISTRY_ARIN }, // 192.96.145.0 - 192.96.145.255 { 0xc0609200, 0xc0609bff, REGISTRY_AFRINIC }, // 192.96.146.0 - 192.96.155.255 { 0xc0609c00, 0xc0609dff, REGISTRY_ARIN }, // 192.96.156.0 - 192.96.157.255 { 0xc0609e00, 0xc0609eff, REGISTRY_AFRINIC }, // 192.96.158.0 - 192.96.158.255 { 0xc0609f00, 0xc060a3ff, REGISTRY_ARIN }, // 192.96.159.0 - 192.96.163.255 { 0xc060a400, 0xc060a7ff, REGISTRY_AFRINIC }, // 192.96.164.0 - 192.96.167.255 { 0xc060a800, 0xc060b0ff, REGISTRY_ARIN }, // 192.96.168.0 - 192.96.176.255 { 0xc060b100, 0xc060bfff, REGISTRY_AFRINIC }, // 192.96.177.0 - 192.96.191.255 { 0xc060c000, 0xc060c0ff, REGISTRY_ARIN }, // 192.96.192.0 - 192.96.192.255 { 0xc060c100, 0xc060c7ff, REGISTRY_AFRINIC }, // 192.96.193.0 - 192.96.199.255 { 0xc060c800, 0xc060dfff, REGISTRY_ARIN }, // 192.96.200.0 - 192.96.223.255 { 0xc060e000, 0xc060e8ff, REGISTRY_AFRINIC }, // 192.96.224.0 - 192.96.232.255 { 0xc060e900, 0xc060e9ff, REGISTRY_ARIN }, // 192.96.233.0 - 192.96.233.255 { 0xc060ea00, 0xc060f3ff, REGISTRY_AFRINIC }, // 192.96.234.0 - 192.96.243.255 { 0xc060f400, 0xc060f4ff, REGISTRY_ARIN }, // 192.96.244.0 - 192.96.244.255 { 0xc060f500, 0xc060feff, REGISTRY_AFRINIC }, // 192.96.245.0 - 192.96.254.255 { 0xc060ff00, 0xc061ffff, REGISTRY_ARIN }, // 192.96.255.0 - 192.97.255.255 { 0xc0620000, 0xc062ffff, REGISTRY_RIPENCC }, // 192.98.0.0 - 192.98.255.255 { 0xc0630000, 0xc06400ff, REGISTRY_ARIN }, // 192.99.0.0 - 192.100.0.255 { 0xc0640100, 0xc06401ff, REGISTRY_AFRINIC }, // 192.100.1.0 - 192.100.1.255 { 0xc0640200, 0xc06402ff, REGISTRY_APNIC }, // 192.100.2.0 - 192.100.2.255 { 0xc0640300, 0xc06411ff, REGISTRY_ARIN }, // 192.100.3.0 - 192.100.17.255 { 0xc0641200, 0xc06412ff, REGISTRY_RIPENCC }, // 192.100.18.0 - 192.100.18.255 { 0xc0641300, 0xc06415ff, REGISTRY_ARIN }, // 192.100.19.0 - 192.100.21.255 { 0xc0641600, 0xc06416ff, REGISTRY_APNIC }, // 192.100.22.0 - 192.100.22.255 { 0xc0641700, 0xc06419ff, REGISTRY_RIPENCC }, // 192.100.23.0 - 192.100.25.255 { 0xc0641a00, 0xc06433ff, REGISTRY_ARIN }, // 192.100.26.0 - 192.100.51.255 { 0xc0643400, 0xc06434ff, REGISTRY_RIPENCC }, // 192.100.52.0 - 192.100.52.255 { 0xc0643500, 0xc06435ff, REGISTRY_APNIC }, // 192.100.53.0 - 192.100.53.255 { 0xc0643600, 0xc0643cff, REGISTRY_ARIN }, // 192.100.54.0 - 192.100.60.255 { 0xc0643d00, 0xc0643dff, REGISTRY_RIPENCC }, // 192.100.61.0 - 192.100.61.255 { 0xc0643e00, 0xc0643eff, REGISTRY_ARIN }, // 192.100.62.0 - 192.100.62.255 { 0xc0643f00, 0xc0643fff, REGISTRY_RIPENCC }, // 192.100.63.0 - 192.100.63.255 { 0xc0644000, 0xc06441ff, REGISTRY_ARIN }, // 192.100.64.0 - 192.100.65.255 { 0xc0644200, 0xc06442ff, REGISTRY_RIPENCC }, // 192.100.66.0 - 192.100.66.255 { 0xc0644300, 0xc0644cff, REGISTRY_ARIN }, // 192.100.67.0 - 192.100.76.255 { 0xc0644d00, 0xc0644dff, REGISTRY_APNIC }, // 192.100.77.0 - 192.100.77.255 { 0xc0644e00, 0xc0644eff, REGISTRY_RIPENCC }, // 192.100.78.0 - 192.100.78.255 { 0xc0644f00, 0xc0644fff, REGISTRY_ARIN }, // 192.100.79.0 - 192.100.79.255 { 0xc0645000, 0xc06450ff, REGISTRY_APNIC }, // 192.100.80.0 - 192.100.80.255 { 0xc0645100, 0xc0645fff, REGISTRY_ARIN }, // 192.100.81.0 - 192.100.95.255 { 0xc0646000, 0xc06463ff, REGISTRY_RIPENCC }, // 192.100.96.0 - 192.100.99.255 { 0xc0646400, 0xc06465ff, REGISTRY_ARIN }, // 192.100.100.0 - 192.100.101.255 { 0xc0646600, 0xc06485ff, REGISTRY_RIPENCC }, // 192.100.102.0 - 192.100.133.255 { 0xc0648600, 0xc06486ff, REGISTRY_ARIN }, // 192.100.134.0 - 192.100.134.255 { 0xc0648700, 0xc0648cff, REGISTRY_RIPENCC }, // 192.100.135.0 - 192.100.140.255 { 0xc0648d00, 0xc0648fff, REGISTRY_ARIN }, // 192.100.141.0 - 192.100.143.255 { 0xc0649000, 0xc06490ff, REGISTRY_RIPENCC }, // 192.100.144.0 - 192.100.144.255 { 0xc0649100, 0xc06499ff, REGISTRY_ARIN }, // 192.100.145.0 - 192.100.153.255 { 0xc0649a00, 0xc0649aff, REGISTRY_RIPENCC }, // 192.100.154.0 - 192.100.154.255 { 0xc0649b00, 0xc064feff, REGISTRY_LACNIC }, // 192.100.155.0 - 192.100.254.255 { 0xc064ff00, 0xc06500ff, REGISTRY_ARIN }, // 192.100.255.0 - 192.101.0.255 { 0xc0650100, 0xc06501ff, REGISTRY_RIPENCC }, // 192.101.1.0 - 192.101.1.255 { 0xc0650200, 0xc06503ff, REGISTRY_ARIN }, // 192.101.2.0 - 192.101.3.255 { 0xc0650400, 0xc06504ff, REGISTRY_RIPENCC }, // 192.101.4.0 - 192.101.4.255 { 0xc0650500, 0xc06507ff, REGISTRY_ARIN }, // 192.101.5.0 - 192.101.7.255 { 0xc0650800, 0xc06508ff, REGISTRY_RIPENCC }, // 192.101.8.0 - 192.101.8.255 { 0xc0650900, 0xc0650aff, REGISTRY_ARIN }, // 192.101.9.0 - 192.101.10.255 { 0xc0650b00, 0xc0650bff, REGISTRY_RIPENCC }, // 192.101.11.0 - 192.101.11.255 { 0xc0650c00, 0xc0650fff, REGISTRY_ARIN }, // 192.101.12.0 - 192.101.15.255 { 0xc0651000, 0xc06510ff, REGISTRY_APNIC }, // 192.101.16.0 - 192.101.16.255 { 0xc0651100, 0xc0651bff, REGISTRY_ARIN }, // 192.101.17.0 - 192.101.27.255 { 0xc0651c00, 0xc0651cff, REGISTRY_RIPENCC }, // 192.101.28.0 - 192.101.28.255 { 0xc0651d00, 0xc06521ff, REGISTRY_ARIN }, // 192.101.29.0 - 192.101.33.255 { 0xc0652200, 0xc06522ff, REGISTRY_RIPENCC }, // 192.101.34.0 - 192.101.34.255 { 0xc0652300, 0xc0654aff, REGISTRY_ARIN }, // 192.101.35.0 - 192.101.74.255 { 0xc0654b00, 0xc0654bff, REGISTRY_RIPENCC }, // 192.101.75.0 - 192.101.75.255 { 0xc0654c00, 0xc06550ff, REGISTRY_ARIN }, // 192.101.76.0 - 192.101.80.255 { 0xc0655100, 0xc0655aff, REGISTRY_RIPENCC }, // 192.101.81.0 - 192.101.90.255 { 0xc0655c00, 0xc0656eff, REGISTRY_ARIN }, // 192.101.92.0 - 192.101.110.255 { 0xc0656f00, 0xc06572ff, REGISTRY_RIPENCC }, // 192.101.111.0 - 192.101.114.255 { 0xc0657300, 0xc06575ff, REGISTRY_ARIN }, // 192.101.115.0 - 192.101.117.255 { 0xc0657600, 0xc06576ff, REGISTRY_RIPENCC }, // 192.101.118.0 - 192.101.118.255 { 0xc0657700, 0xc06585ff, REGISTRY_ARIN }, // 192.101.119.0 - 192.101.133.255 { 0xc0658600, 0xc06586ff, REGISTRY_APNIC }, // 192.101.134.0 - 192.101.134.255 { 0xc0658700, 0xc06588ff, REGISTRY_ARIN }, // 192.101.135.0 - 192.101.136.255 { 0xc0658900, 0xc06589ff, REGISTRY_RIPENCC }, // 192.101.137.0 - 192.101.137.255 { 0xc0658a00, 0xc0658dff, REGISTRY_ARIN }, // 192.101.138.0 - 192.101.141.255 { 0xc0658e00, 0xc0658eff, REGISTRY_AFRINIC }, // 192.101.142.0 - 192.101.142.255 { 0xc0658f00, 0xc065a0ff, REGISTRY_ARIN }, // 192.101.143.0 - 192.101.160.255 { 0xc065a100, 0xc065a8ff, REGISTRY_RIPENCC }, // 192.101.161.0 - 192.101.168.255 { 0xc065a900, 0xc065a9ff, REGISTRY_ARIN }, // 192.101.169.0 - 192.101.169.255 { 0xc065aa00, 0xc065aaff, REGISTRY_RIPENCC }, // 192.101.170.0 - 192.101.170.255 { 0xc065ab00, 0xc065afff, REGISTRY_ARIN }, // 192.101.171.0 - 192.101.175.255 { 0xc065b000, 0xc065b0ff, REGISTRY_RIPENCC }, // 192.101.176.0 - 192.101.176.255 { 0xc065b100, 0xc065b2ff, REGISTRY_ARIN }, // 192.101.177.0 - 192.101.178.255 { 0xc065b300, 0xc065b4ff, REGISTRY_RIPENCC }, // 192.101.179.0 - 192.101.180.255 { 0xc065b500, 0xc065b6ff, REGISTRY_ARIN }, // 192.101.181.0 - 192.101.182.255 { 0xc065b800, 0xc065bfff, REGISTRY_ARIN }, // 192.101.184.0 - 192.101.191.255 { 0xc065c000, 0xc065c0ff, REGISTRY_RIPENCC }, // 192.101.192.0 - 192.101.192.255 { 0xc065c100, 0xc065c4ff, REGISTRY_ARIN }, // 192.101.193.0 - 192.101.196.255 { 0xc065c500, 0xc065c6ff, REGISTRY_RIPENCC }, // 192.101.197.0 - 192.101.198.255 { 0xc065c700, 0xc065fbff, REGISTRY_ARIN }, // 192.101.199.0 - 192.101.251.255 { 0xc065fc00, 0xc065fcff, REGISTRY_RIPENCC }, // 192.101.252.0 - 192.101.252.255 { 0xc065fd00, 0xc065fdff, REGISTRY_ARIN }, // 192.101.253.0 - 192.101.253.255 { 0xc065fe00, 0xc065feff, REGISTRY_APNIC }, // 192.101.254.0 - 192.101.254.255 { 0xc065ff00, 0xc06600ff, REGISTRY_ARIN }, // 192.101.255.0 - 192.102.0.255 { 0xc0660100, 0xc06601ff, REGISTRY_RIPENCC }, // 192.102.1.0 - 192.102.1.255 { 0xc0660200, 0xc06605ff, REGISTRY_ARIN }, // 192.102.2.0 - 192.102.5.255 { 0xc0660600, 0xc06608ff, REGISTRY_RIPENCC }, // 192.102.6.0 - 192.102.8.255 { 0xc0660900, 0xc06609ff, REGISTRY_AFRINIC }, // 192.102.9.0 - 192.102.9.255 { 0xc0660a00, 0xc06610ff, REGISTRY_ARIN }, // 192.102.10.0 - 192.102.16.255 { 0xc0661100, 0xc06611ff, REGISTRY_RIPENCC }, // 192.102.17.0 - 192.102.17.255 { 0xc0661200, 0xc0663fff, REGISTRY_RIPENCC }, // 192.102.18.0 - 192.102.63.255 { 0xc0664000, 0xc06641ff, REGISTRY_RIPENCC }, // 192.102.64.0 - 192.102.65.255 { 0xc0664200, 0xc06651ff, REGISTRY_RIPENCC }, // 192.102.66.0 - 192.102.81.255 { 0xc0665200, 0xc06652ff, REGISTRY_ARIN }, // 192.102.82.0 - 192.102.82.255 { 0xc0665300, 0xc06653ff, REGISTRY_APNIC }, // 192.102.83.0 - 192.102.83.255 { 0xc0665400, 0xc06654ff, REGISTRY_LACNIC }, // 192.102.84.0 - 192.102.84.255 { 0xc0665500, 0xc06658ff, REGISTRY_ARIN }, // 192.102.85.0 - 192.102.88.255 { 0xc0665900, 0xc06659ff, REGISTRY_RIPENCC }, // 192.102.89.0 - 192.102.89.255 { 0xc0665a00, 0xc0665bff, REGISTRY_ARIN }, // 192.102.90.0 - 192.102.91.255 { 0xc0665c00, 0xc0665cff, REGISTRY_APNIC }, // 192.102.92.0 - 192.102.92.255 { 0xc0665d00, 0xc0665eff, REGISTRY_ARIN }, // 192.102.93.0 - 192.102.94.255 { 0xc0665f00, 0xc0665fff, REGISTRY_RIPENCC }, // 192.102.95.0 - 192.102.95.255 { 0xc0666000, 0xc06691ff, REGISTRY_ARIN }, // 192.102.96.0 - 192.102.145.255 { 0xc0669200, 0xc066b1ff, REGISTRY_RIPENCC }, // 192.102.146.0 - 192.102.177.255 { 0xc066b200, 0xc066cbff, REGISTRY_ARIN }, // 192.102.178.0 - 192.102.203.255 { 0xc066cc00, 0xc066cdff, REGISTRY_APNIC }, // 192.102.204.0 - 192.102.205.255 { 0xc066ce00, 0xc066d5ff, REGISTRY_ARIN }, // 192.102.206.0 - 192.102.213.255 { 0xc066d600, 0xc066d6ff, REGISTRY_RIPENCC }, // 192.102.214.0 - 192.102.214.255 { 0xc066d700, 0xc066dfff, REGISTRY_ARIN }, // 192.102.215.0 - 192.102.223.255 { 0xc066e000, 0xc066e1ff, REGISTRY_RIPENCC }, // 192.102.224.0 - 192.102.225.255 { 0xc066e200, 0xc066e2ff, REGISTRY_ARIN }, // 192.102.226.0 - 192.102.226.255 { 0xc066e300, 0xc066e5ff, REGISTRY_RIPENCC }, // 192.102.227.0 - 192.102.229.255 { 0xc066e600, 0xc066eeff, REGISTRY_ARIN }, // 192.102.230.0 - 192.102.238.255 { 0xc066ef00, 0xc066efff, REGISTRY_APNIC }, // 192.102.239.0 - 192.102.239.255 { 0xc066f000, 0xc066f9ff, REGISTRY_ARIN }, // 192.102.240.0 - 192.102.249.255 { 0xc066fa00, 0xc066fbff, REGISTRY_APNIC }, // 192.102.250.0 - 192.102.251.255 { 0xc066fc00, 0xc06701ff, REGISTRY_ARIN }, // 192.102.252.0 - 192.103.1.255 { 0xc0670200, 0xc06702ff, REGISTRY_RIPENCC }, // 192.103.2.0 - 192.103.2.255 { 0xc0670300, 0xc06706ff, REGISTRY_ARIN }, // 192.103.3.0 - 192.103.6.255 { 0xc0670700, 0xc06707ff, REGISTRY_RIPENCC }, // 192.103.7.0 - 192.103.7.255 { 0xc0670800, 0xc0670dff, REGISTRY_ARIN }, // 192.103.8.0 - 192.103.13.255 { 0xc0670e00, 0xc0670eff, REGISTRY_RIPENCC }, // 192.103.14.0 - 192.103.14.255 { 0xc0670f00, 0xc06713ff, REGISTRY_ARIN }, // 192.103.15.0 - 192.103.19.255 { 0xc0671400, 0xc06714ff, REGISTRY_RIPENCC }, // 192.103.20.0 - 192.103.20.255 { 0xc0671500, 0xc06716ff, REGISTRY_ARIN }, // 192.103.21.0 - 192.103.22.255 { 0xc0671700, 0xc06717ff, REGISTRY_RIPENCC }, // 192.103.23.0 - 192.103.23.255 { 0xc0671800, 0xc0671aff, REGISTRY_ARIN }, // 192.103.24.0 - 192.103.26.255 { 0xc0671b00, 0xc0671bff, REGISTRY_RIPENCC }, // 192.103.27.0 - 192.103.27.255 { 0xc0671c00, 0xc06728ff, REGISTRY_RIPENCC }, // 192.103.28.0 - 192.103.40.255 { 0xc0672900, 0xc06729ff, REGISTRY_ARIN }, // 192.103.41.0 - 192.103.41.255 { 0xc0672c00, 0xc0672dff, REGISTRY_ARIN }, // 192.103.44.0 - 192.103.45.255 { 0xc0672f00, 0xc06754ff, REGISTRY_ARIN }, // 192.103.47.0 - 192.103.84.255 { 0xc0675500, 0xc06774ff, REGISTRY_RIPENCC }, // 192.103.85.0 - 192.103.116.255 { 0xc0677500, 0xc06781ff, REGISTRY_ARIN }, // 192.103.117.0 - 192.103.129.255 { 0xc0678300, 0xc06783ff, REGISTRY_ARIN }, // 192.103.131.0 - 192.103.131.255 { 0xc0678500, 0xc06788ff, REGISTRY_ARIN }, // 192.103.133.0 - 192.103.136.255 { 0xc0678900, 0xc0678bff, REGISTRY_RIPENCC }, // 192.103.137.0 - 192.103.139.255 { 0xc0678c00, 0xc06792ff, REGISTRY_ARIN }, // 192.103.140.0 - 192.103.146.255 { 0xc0679300, 0xc06793ff, REGISTRY_RIPENCC }, // 192.103.147.0 - 192.103.147.255 { 0xc0679400, 0xc0680eff, REGISTRY_ARIN }, // 192.103.148.0 - 192.104.14.255 { 0xc0680f00, 0xc0680fff, REGISTRY_APNIC }, // 192.104.15.0 - 192.104.15.255 { 0xc0681000, 0xc06816ff, REGISTRY_ARIN }, // 192.104.16.0 - 192.104.22.255 { 0xc0681700, 0xc06817ff, REGISTRY_RIPENCC }, // 192.104.23.0 - 192.104.23.255 { 0xc0681800, 0xc0681bff, REGISTRY_ARIN }, // 192.104.24.0 - 192.104.27.255 { 0xc0681c00, 0xc0681dff, REGISTRY_RIPENCC }, // 192.104.28.0 - 192.104.29.255 { 0xc0681e00, 0xc06822ff, REGISTRY_ARIN }, // 192.104.30.0 - 192.104.34.255 { 0xc0682300, 0xc06825ff, REGISTRY_RIPENCC }, // 192.104.35.0 - 192.104.37.255 { 0xc0682600, 0xc06827ff, REGISTRY_ARIN }, // 192.104.38.0 - 192.104.39.255 { 0xc0682900, 0xc06829ff, REGISTRY_RIPENCC }, // 192.104.41.0 - 192.104.41.255 { 0xc0682a00, 0xc0682aff, REGISTRY_ARIN }, // 192.104.42.0 - 192.104.42.255 { 0xc0682b00, 0xc0682dff, REGISTRY_APNIC }, // 192.104.43.0 - 192.104.45.255 { 0xc0682e00, 0xc0682fff, REGISTRY_ARIN }, // 192.104.46.0 - 192.104.47.255 { 0xc0683000, 0xc06830ff, REGISTRY_RIPENCC }, // 192.104.48.0 - 192.104.48.255 { 0xc0683100, 0xc06834ff, REGISTRY_ARIN }, // 192.104.49.0 - 192.104.52.255 { 0xc0683500, 0xc06835ff, REGISTRY_RIPENCC }, // 192.104.53.0 - 192.104.53.255 { 0xc0683600, 0xc06836ff, REGISTRY_ARIN }, // 192.104.54.0 - 192.104.54.255 { 0xc0683700, 0xc0683aff, REGISTRY_RIPENCC }, // 192.104.55.0 - 192.104.58.255 { 0xc0683b00, 0xc06847ff, REGISTRY_ARIN }, // 192.104.59.0 - 192.104.71.255 { 0xc0684800, 0xc06848ff, REGISTRY_RIPENCC }, // 192.104.72.0 - 192.104.72.255 { 0xc0684900, 0xc0684cff, REGISTRY_ARIN }, // 192.104.73.0 - 192.104.76.255 { 0xc0684d00, 0xc0684dff, REGISTRY_RIPENCC }, // 192.104.77.0 - 192.104.77.255 { 0xc0684e00, 0xc0684fff, REGISTRY_ARIN }, // 192.104.78.0 - 192.104.79.255 { 0xc0685100, 0xc06851ff, REGISTRY_ARIN }, // 192.104.81.0 - 192.104.81.255 { 0xc0685200, 0xc06852ff, REGISTRY_RIPENCC }, // 192.104.82.0 - 192.104.82.255 { 0xc0685300, 0xc0688bff, REGISTRY_ARIN }, // 192.104.83.0 - 192.104.139.255 { 0xc0688c00, 0xc0688cff, REGISTRY_RIPENCC }, // 192.104.140.0 - 192.104.140.255 { 0xc0688d00, 0xc0688dff, REGISTRY_ARIN }, // 192.104.141.0 - 192.104.141.255 { 0xc0688e00, 0xc0688eff, REGISTRY_RIPENCC }, // 192.104.142.0 - 192.104.142.255 { 0xc0688f00, 0xc06892ff, REGISTRY_ARIN }, // 192.104.143.0 - 192.104.146.255 { 0xc0689300, 0xc06893ff, REGISTRY_RIPENCC }, // 192.104.147.0 - 192.104.147.255 { 0xc0689400, 0xc06899ff, REGISTRY_ARIN }, // 192.104.148.0 - 192.104.153.255 { 0xc0689a00, 0xc0689bff, REGISTRY_RIPENCC }, // 192.104.154.0 - 192.104.155.255 { 0xc0689c00, 0xc068a6ff, REGISTRY_ARIN }, // 192.104.156.0 - 192.104.166.255 { 0xc068a700, 0xc068a8ff, REGISTRY_RIPENCC }, // 192.104.167.0 - 192.104.168.255 { 0xc068a900, 0xc068abff, REGISTRY_ARIN }, // 192.104.169.0 - 192.104.171.255 { 0xc068ac00, 0xc068acff, REGISTRY_APNIC }, // 192.104.172.0 - 192.104.172.255 { 0xc068ad00, 0xc068e7ff, REGISTRY_ARIN }, // 192.104.173.0 - 192.104.231.255 { 0xc068e800, 0xc068e9ff, REGISTRY_APNIC }, // 192.104.232.0 - 192.104.233.255 { 0xc068ea00, 0xc068edff, REGISTRY_ARIN }, // 192.104.234.0 - 192.104.237.255 { 0xc068ee00, 0xc068eeff, REGISTRY_RIPENCC }, // 192.104.238.0 - 192.104.238.255 { 0xc068ef00, 0xc068f4ff, REGISTRY_ARIN }, // 192.104.239.0 - 192.104.244.255 { 0xc068f500, 0xc068f5ff, REGISTRY_RIPENCC }, // 192.104.245.0 - 192.104.245.255 { 0xc068f600, 0xc068f7ff, REGISTRY_APNIC }, // 192.104.246.0 - 192.104.247.255 { 0xc068f800, 0xc068f8ff, REGISTRY_RIPENCC }, // 192.104.248.0 - 192.104.248.255 { 0xc068f900, 0xc068faff, REGISTRY_ARIN }, // 192.104.249.0 - 192.104.250.255 { 0xc068fb00, 0xc068fbff, REGISTRY_RIPENCC }, // 192.104.251.0 - 192.104.251.255 { 0xc068fd00, 0xc06909ff, REGISTRY_ARIN }, // 192.104.253.0 - 192.105.9.255 { 0xc0690a00, 0xc0690aff, REGISTRY_APNIC }, // 192.105.10.0 - 192.105.10.255 { 0xc0690b00, 0xc0694aff, REGISTRY_ARIN }, // 192.105.11.0 - 192.105.74.255 { 0xc0694b00, 0xc0694bff, REGISTRY_RIPENCC }, // 192.105.75.0 - 192.105.75.255 { 0xc0694c00, 0xc069ffff, REGISTRY_ARIN }, // 192.105.76.0 - 192.105.255.255 { 0xc06a0000, 0xc06affff, REGISTRY_RIPENCC }, // 192.106.0.0 - 192.106.255.255 { 0xc06b0000, 0xc06b01ff, REGISTRY_ARIN }, // 192.107.0.0 - 192.107.1.255 { 0xc06b0200, 0xc06b02ff, REGISTRY_RIPENCC }, // 192.107.2.0 - 192.107.2.255 { 0xc06b0300, 0xc06b03ff, REGISTRY_ARIN }, // 192.107.3.0 - 192.107.3.255 { 0xc06b0400, 0xc06b05ff, REGISTRY_RIPENCC }, // 192.107.4.0 - 192.107.5.255 { 0xc06b0600, 0xc06b08ff, REGISTRY_ARIN }, // 192.107.6.0 - 192.107.8.255 { 0xc06b0900, 0xc06b0aff, REGISTRY_APNIC }, // 192.107.9.0 - 192.107.10.255 { 0xc06b0b00, 0xc06b0dff, REGISTRY_RIPENCC }, // 192.107.11.0 - 192.107.13.255 { 0xc06b0e00, 0xc06b32ff, REGISTRY_ARIN }, // 192.107.14.0 - 192.107.50.255 { 0xc06b3300, 0xc06b64ff, REGISTRY_RIPENCC }, // 192.107.51.0 - 192.107.100.255 { 0xc06b6500, 0xc06b65ff, REGISTRY_APNIC }, // 192.107.101.0 - 192.107.101.255 { 0xc06b6600, 0xc06b67ff, REGISTRY_ARIN }, // 192.107.102.0 - 192.107.103.255 { 0xc06b6800, 0xc06b68ff, REGISTRY_LACNIC }, // 192.107.104.0 - 192.107.104.255 { 0xc06b6900, 0xc06b6dff, REGISTRY_ARIN }, // 192.107.105.0 - 192.107.109.255 { 0xc06b6e00, 0xc06b6eff, REGISTRY_RIPENCC }, // 192.107.110.0 - 192.107.110.255 { 0xc06b6f00, 0xc06b6fff, REGISTRY_ARIN }, // 192.107.111.0 - 192.107.111.255 { 0xc06b7100, 0xc06b71ff, REGISTRY_APNIC }, // 192.107.113.0 - 192.107.113.255 { 0xc06b7200, 0xc06b72ff, REGISTRY_RIPENCC }, // 192.107.114.0 - 192.107.114.255 { 0xc06b7300, 0xc06b79ff, REGISTRY_ARIN }, // 192.107.115.0 - 192.107.121.255 { 0xc06b7a00, 0xc06b81ff, REGISTRY_RIPENCC }, // 192.107.122.0 - 192.107.129.255 { 0xc06b8200, 0xc06b83ff, REGISTRY_ARIN }, // 192.107.130.0 - 192.107.131.255 { 0xc06b8400, 0xc06b84ff, REGISTRY_RIPENCC }, // 192.107.132.0 - 192.107.132.255 { 0xc06b8500, 0xc06ba2ff, REGISTRY_ARIN }, // 192.107.133.0 - 192.107.162.255 { 0xc06ba300, 0xc06ba3ff, REGISTRY_APNIC }, // 192.107.163.0 - 192.107.163.255 { 0xc06ba400, 0xc06ba7ff, REGISTRY_ARIN }, // 192.107.164.0 - 192.107.167.255 { 0xc06ba800, 0xc06ba8ff, REGISTRY_RIPENCC }, // 192.107.168.0 - 192.107.168.255 { 0xc06ba900, 0xc06baaff, REGISTRY_ARIN }, // 192.107.169.0 - 192.107.170.255 { 0xc06bab00, 0xc06bacff, REGISTRY_APNIC }, // 192.107.171.0 - 192.107.172.255 { 0xc06bad00, 0xc06badff, REGISTRY_ARIN }, // 192.107.173.0 - 192.107.173.255 { 0xc06bae00, 0xc06baeff, REGISTRY_RIPENCC }, // 192.107.174.0 - 192.107.174.255 { 0xc06baf00, 0xc06bb0ff, REGISTRY_ARIN }, // 192.107.175.0 - 192.107.176.255 { 0xc06bb100, 0xc06bb2ff, REGISTRY_RIPENCC }, // 192.107.177.0 - 192.107.178.255 { 0xc06bb300, 0xc06bbaff, REGISTRY_ARIN }, // 192.107.179.0 - 192.107.186.255 { 0xc06bbb00, 0xc06bbbff, REGISTRY_RIPENCC }, // 192.107.187.0 - 192.107.187.255 { 0xc06bbc00, 0xc06bc7ff, REGISTRY_ARIN }, // 192.107.188.0 - 192.107.199.255 { 0xc06bc800, 0xc06be7ff, REGISTRY_RIPENCC }, // 192.107.200.0 - 192.107.231.255 { 0xc06be800, 0xc06be9ff, REGISTRY_RIPENCC }, // 192.107.232.0 - 192.107.233.255 { 0xc06bea00, 0xc06beaff, REGISTRY_ARIN }, // 192.107.234.0 - 192.107.234.255 { 0xc06beb00, 0xc06becff, REGISTRY_RIPENCC }, // 192.107.235.0 - 192.107.236.255 { 0xc06bed00, 0xc06c16ff, REGISTRY_ARIN }, // 192.107.237.0 - 192.108.22.255 { 0xc06c1700, 0xc06c31ff, REGISTRY_RIPENCC }, // 192.108.23.0 - 192.108.49.255 { 0xc06c3200, 0xc06c32ff, REGISTRY_ARIN }, // 192.108.50.0 - 192.108.50.255 { 0xc06c3300, 0xc06c5cff, REGISTRY_RIPENCC }, // 192.108.51.0 - 192.108.92.255 { 0xc06c5d00, 0xc06c62ff, REGISTRY_ARIN }, // 192.108.93.0 - 192.108.98.255 { 0xc06c6300, 0xc06c63ff, REGISTRY_APNIC }, // 192.108.99.0 - 192.108.99.255 { 0xc06c6400, 0xc06c65ff, REGISTRY_RIPENCC }, // 192.108.100.0 - 192.108.101.255 { 0xc06c6600, 0xc06c6aff, REGISTRY_ARIN }, // 192.108.102.0 - 192.108.106.255 { 0xc06c6b00, 0xc06c6cff, REGISTRY_RIPENCC }, // 192.108.107.0 - 192.108.108.255 { 0xc06c6d00, 0xc06c70ff, REGISTRY_ARIN }, // 192.108.109.0 - 192.108.112.255 { 0xc06c7200, 0xc06c79ff, REGISTRY_RIPENCC }, // 192.108.114.0 - 192.108.121.255 { 0xc06c7a00, 0xc06c7cff, REGISTRY_ARIN }, // 192.108.122.0 - 192.108.124.255 { 0xc06c7d00, 0xc06c7eff, REGISTRY_RIPENCC }, // 192.108.125.0 - 192.108.126.255 { 0xc06c7f00, 0xc06c7fff, REGISTRY_ARIN }, // 192.108.127.0 - 192.108.127.255 { 0xc06c8000, 0xc06caeff, REGISTRY_RIPENCC }, // 192.108.128.0 - 192.108.174.255 { 0xc06caf00, 0xc06cc2ff, REGISTRY_ARIN }, // 192.108.175.0 - 192.108.194.255 { 0xc06cc300, 0xc06cd6ff, REGISTRY_RIPENCC }, // 192.108.195.0 - 192.108.214.255 { 0xc06cd700, 0xc06ce5ff, REGISTRY_ARIN }, // 192.108.215.0 - 192.108.229.255 { 0xc06ce600, 0xc06ce6ff, REGISTRY_APNIC }, // 192.108.230.0 - 192.108.230.255 { 0xc06ce700, 0xc06ce9ff, REGISTRY_ARIN }, // 192.108.231.0 - 192.108.233.255 { 0xc06cea00, 0xc06ceaff, REGISTRY_RIPENCC }, // 192.108.234.0 - 192.108.234.255 { 0xc06ceb00, 0xc06cedff, REGISTRY_ARIN }, // 192.108.235.0 - 192.108.237.255 { 0xc06cee00, 0xc06ceeff, REGISTRY_RIPENCC }, // 192.108.238.0 - 192.108.238.255 { 0xc06cef00, 0xc06cffff, REGISTRY_ARIN }, // 192.108.239.0 - 192.108.255.255 { 0xc06d0000, 0xc06d0bff, REGISTRY_RIPENCC }, // 192.109.0.0 - 192.109.11.255 { 0xc06d0c00, 0xc06d0eff, REGISTRY_RIPENCC }, // 192.109.12.0 - 192.109.14.255 { 0xc06d0f00, 0xc06d0fff, REGISTRY_RIPENCC }, // 192.109.15.0 - 192.109.15.255 { 0xc06d1000, 0xc06d10ff, REGISTRY_RIPENCC }, // 192.109.16.0 - 192.109.16.255 { 0xc06d1100, 0xc06d11ff, REGISTRY_RIPENCC }, // 192.109.17.0 - 192.109.17.255 { 0xc06d1200, 0xc06d16ff, REGISTRY_RIPENCC }, // 192.109.18.0 - 192.109.22.255 { 0xc06d1700, 0xc06d17ff, REGISTRY_RIPENCC }, // 192.109.23.0 - 192.109.23.255 { 0xc06d1800, 0xc06d18ff, REGISTRY_RIPENCC }, // 192.109.24.0 - 192.109.24.255 { 0xc06d1900, 0xc06d19ff, REGISTRY_RIPENCC }, // 192.109.25.0 - 192.109.25.255 { 0xc06d1a00, 0xc06d1dff, REGISTRY_RIPENCC }, // 192.109.26.0 - 192.109.29.255 { 0xc06d1e00, 0xc06d1eff, REGISTRY_RIPENCC }, // 192.109.30.0 - 192.109.30.255 { 0xc06d1f00, 0xc06d1fff, REGISTRY_RIPENCC }, // 192.109.31.0 - 192.109.31.255 { 0xc06d2000, 0xc06d23ff, REGISTRY_RIPENCC }, // 192.109.32.0 - 192.109.35.255 { 0xc06d2400, 0xc06d24ff, REGISTRY_RIPENCC }, // 192.109.36.0 - 192.109.36.255 { 0xc06d2500, 0xc06d26ff, REGISTRY_RIPENCC }, // 192.109.37.0 - 192.109.38.255 { 0xc06d2700, 0xc06d27ff, REGISTRY_RIPENCC }, // 192.109.39.0 - 192.109.39.255 { 0xc06d2800, 0xc06d29ff, REGISTRY_RIPENCC }, // 192.109.40.0 - 192.109.41.255 { 0xc06d2a00, 0xc06d2cff, REGISTRY_RIPENCC }, // 192.109.42.0 - 192.109.44.255 { 0xc06d2d00, 0xc06d2dff, REGISTRY_ARIN }, // 192.109.45.0 - 192.109.45.255 { 0xc06d2e00, 0xc06d2eff, REGISTRY_RIPENCC }, // 192.109.46.0 - 192.109.46.255 { 0xc06d2f00, 0xc06d2fff, REGISTRY_RIPENCC }, // 192.109.47.0 - 192.109.47.255 { 0xc06d3000, 0xc06d36ff, REGISTRY_RIPENCC }, // 192.109.48.0 - 192.109.54.255 { 0xc06d3700, 0xc06d37ff, REGISTRY_RIPENCC }, // 192.109.55.0 - 192.109.55.255 { 0xc06d3800, 0xc06d38ff, REGISTRY_RIPENCC }, // 192.109.56.0 - 192.109.56.255 { 0xc06d3900, 0xc06d39ff, REGISTRY_RIPENCC }, // 192.109.57.0 - 192.109.57.255 { 0xc06d3a00, 0xc06d46ff, REGISTRY_RIPENCC }, // 192.109.58.0 - 192.109.70.255 { 0xc06d4700, 0xc06d47ff, REGISTRY_RIPENCC }, // 192.109.71.0 - 192.109.71.255 { 0xc06d4800, 0xc06d49ff, REGISTRY_RIPENCC }, // 192.109.72.0 - 192.109.73.255 { 0xc06d4a00, 0xc06d4aff, REGISTRY_RIPENCC }, // 192.109.74.0 - 192.109.74.255 { 0xc06d4b00, 0xc06d4bff, REGISTRY_ARIN }, // 192.109.75.0 - 192.109.75.255 { 0xc06d4c00, 0xc06d4cff, REGISTRY_RIPENCC }, // 192.109.76.0 - 192.109.76.255 { 0xc06d4d00, 0xc06d4fff, REGISTRY_RIPENCC }, // 192.109.77.0 - 192.109.79.255 { 0xc06d5000, 0xc06d53ff, REGISTRY_RIPENCC }, // 192.109.80.0 - 192.109.83.255 { 0xc06d5400, 0xc06d55ff, REGISTRY_RIPENCC }, // 192.109.84.0 - 192.109.85.255 { 0xc06d5600, 0xc06d5aff, REGISTRY_RIPENCC }, // 192.109.86.0 - 192.109.90.255 { 0xc06d5b00, 0xc06d5bff, REGISTRY_RIPENCC }, // 192.109.91.0 - 192.109.91.255 { 0xc06d5c00, 0xc06d5dff, REGISTRY_ARIN }, // 192.109.92.0 - 192.109.93.255 { 0xc06d5e00, 0xc06d60ff, REGISTRY_RIPENCC }, // 192.109.94.0 - 192.109.96.255 { 0xc06d6100, 0xc06d62ff, REGISTRY_RIPENCC }, // 192.109.97.0 - 192.109.98.255 { 0xc06d6300, 0xc06d63ff, REGISTRY_ARIN }, // 192.109.99.0 - 192.109.99.255 { 0xc06d6400, 0xc06d64ff, REGISTRY_RIPENCC }, // 192.109.100.0 - 192.109.100.255 { 0xc06d6500, 0xc06d66ff, REGISTRY_RIPENCC }, // 192.109.101.0 - 192.109.102.255 { 0xc06d6700, 0xc06d68ff, REGISTRY_ARIN }, // 192.109.103.0 - 192.109.104.255 { 0xc06d6900, 0xc06d6cff, REGISTRY_RIPENCC }, // 192.109.105.0 - 192.109.108.255 { 0xc06d6d00, 0xc06d6eff, REGISTRY_ARIN }, // 192.109.109.0 - 192.109.110.255 { 0xc06d6f00, 0xc06d6fff, REGISTRY_RIPENCC }, // 192.109.111.0 - 192.109.111.255 { 0xc06d7000, 0xc06d71ff, REGISTRY_RIPENCC }, // 192.109.112.0 - 192.109.113.255 { 0xc06d7200, 0xc06d74ff, REGISTRY_RIPENCC }, // 192.109.114.0 - 192.109.116.255 { 0xc06d7500, 0xc06d75ff, REGISTRY_ARIN }, // 192.109.117.0 - 192.109.117.255 { 0xc06d7600, 0xc06d76ff, REGISTRY_RIPENCC }, // 192.109.118.0 - 192.109.118.255 { 0xc06d7700, 0xc06d78ff, REGISTRY_ARIN }, // 192.109.119.0 - 192.109.120.255 { 0xc06d7900, 0xc06d7aff, REGISTRY_RIPENCC }, // 192.109.121.0 - 192.109.122.255 { 0xc06d7b00, 0xc06d7bff, REGISTRY_ARIN }, // 192.109.123.0 - 192.109.123.255 { 0xc06d7c00, 0xc06d7cff, REGISTRY_RIPENCC }, // 192.109.124.0 - 192.109.124.255 { 0xc06d7d00, 0xc06d7dff, REGISTRY_ARIN }, // 192.109.125.0 - 192.109.125.255 { 0xc06d7e00, 0xc06d7eff, REGISTRY_RIPENCC }, // 192.109.126.0 - 192.109.126.255 { 0xc06d7f00, 0xc06d7fff, REGISTRY_ARIN }, // 192.109.127.0 - 192.109.127.255 { 0xc06d8000, 0xc06d82ff, REGISTRY_RIPENCC }, // 192.109.128.0 - 192.109.130.255 { 0xc06d8300, 0xc06d83ff, REGISTRY_ARIN }, // 192.109.131.0 - 192.109.131.255 { 0xc06d8400, 0xc06d85ff, REGISTRY_RIPENCC }, // 192.109.132.0 - 192.109.133.255 { 0xc06d8600, 0xc06d87ff, REGISTRY_RIPENCC }, // 192.109.134.0 - 192.109.135.255 { 0xc06d8800, 0xc06d88ff, REGISTRY_ARIN }, // 192.109.136.0 - 192.109.136.255 { 0xc06d8900, 0xc06d89ff, REGISTRY_RIPENCC }, // 192.109.137.0 - 192.109.137.255 { 0xc06d8a00, 0xc06d8bff, REGISTRY_RIPENCC }, // 192.109.138.0 - 192.109.139.255 { 0xc06d8c00, 0xc06d94ff, REGISTRY_RIPENCC }, // 192.109.140.0 - 192.109.148.255 { 0xc06d9500, 0xc06d95ff, REGISTRY_ARIN }, // 192.109.149.0 - 192.109.149.255 { 0xc06d9600, 0xc06d9eff, REGISTRY_RIPENCC }, // 192.109.150.0 - 192.109.158.255 { 0xc06d9f00, 0xc06d9fff, REGISTRY_ARIN }, // 192.109.159.0 - 192.109.159.255 { 0xc06da000, 0xc06da4ff, REGISTRY_RIPENCC }, // 192.109.160.0 - 192.109.164.255 { 0xc06da500, 0xc06da5ff, REGISTRY_ARIN }, // 192.109.165.0 - 192.109.165.255 { 0xc06da600, 0xc06dabff, REGISTRY_RIPENCC }, // 192.109.166.0 - 192.109.171.255 { 0xc06dac00, 0xc06daeff, REGISTRY_RIPENCC }, // 192.109.172.0 - 192.109.174.255 { 0xc06daf00, 0xc06dbeff, REGISTRY_RIPENCC }, // 192.109.175.0 - 192.109.190.255 { 0xc06dbf00, 0xc06dc2ff, REGISTRY_RIPENCC }, // 192.109.191.0 - 192.109.194.255 { 0xc06dc300, 0xc06dc3ff, REGISTRY_RIPENCC }, // 192.109.195.0 - 192.109.195.255 { 0xc06dc400, 0xc06dc4ff, REGISTRY_RIPENCC }, // 192.109.196.0 - 192.109.196.255 { 0xc06dc500, 0xc06dc7ff, REGISTRY_RIPENCC }, // 192.109.197.0 - 192.109.199.255 { 0xc06dc800, 0xc06dc9ff, REGISTRY_RIPENCC }, // 192.109.200.0 - 192.109.201.255 { 0xc06dca00, 0xc06dcaff, REGISTRY_RIPENCC }, // 192.109.202.0 - 192.109.202.255 { 0xc06dcb00, 0xc06dcbff, REGISTRY_RIPENCC }, // 192.109.203.0 - 192.109.203.255 { 0xc06dcc00, 0xc06dcdff, REGISTRY_RIPENCC }, // 192.109.204.0 - 192.109.205.255 { 0xc06dcf00, 0xc06dcfff, REGISTRY_RIPENCC }, // 192.109.207.0 - 192.109.207.255 { 0xc06dd000, 0xc06dd0ff, REGISTRY_RIPENCC }, // 192.109.208.0 - 192.109.208.255 { 0xc06dd100, 0xc06dd1ff, REGISTRY_RIPENCC }, // 192.109.209.0 - 192.109.209.255 { 0xc06dd200, 0xc06dd2ff, REGISTRY_RIPENCC }, // 192.109.210.0 - 192.109.210.255 { 0xc06dd300, 0xc06dd5ff, REGISTRY_RIPENCC }, // 192.109.211.0 - 192.109.213.255 { 0xc06dd600, 0xc06dd7ff, REGISTRY_RIPENCC }, // 192.109.214.0 - 192.109.215.255 { 0xc06dd800, 0xc06dd8ff, REGISTRY_RIPENCC }, // 192.109.216.0 - 192.109.216.255 { 0xc06dd900, 0xc06dd9ff, REGISTRY_RIPENCC }, // 192.109.217.0 - 192.109.217.255 { 0xc06dda00, 0xc06ddaff, REGISTRY_RIPENCC }, // 192.109.218.0 - 192.109.218.255 { 0xc06ddb00, 0xc06ddcff, REGISTRY_RIPENCC }, // 192.109.219.0 - 192.109.220.255 { 0xc06ddd00, 0xc06ddeff, REGISTRY_RIPENCC }, // 192.109.221.0 - 192.109.222.255 { 0xc06ddf00, 0xc06de1ff, REGISTRY_RIPENCC }, // 192.109.223.0 - 192.109.225.255 { 0xc06de200, 0xc06de3ff, REGISTRY_RIPENCC }, // 192.109.226.0 - 192.109.227.255 { 0xc06de400, 0xc06de5ff, REGISTRY_RIPENCC }, // 192.109.228.0 - 192.109.229.255 { 0xc06de600, 0xc06de6ff, REGISTRY_RIPENCC }, // 192.109.230.0 - 192.109.230.255 { 0xc06de700, 0xc06de9ff, REGISTRY_RIPENCC }, // 192.109.231.0 - 192.109.233.255 { 0xc06dea00, 0xc06deaff, REGISTRY_RIPENCC }, // 192.109.234.0 - 192.109.234.255 { 0xc06deb00, 0xc06debff, REGISTRY_RIPENCC }, // 192.109.235.0 - 192.109.235.255 { 0xc06dec00, 0xc06deeff, REGISTRY_RIPENCC }, // 192.109.236.0 - 192.109.238.255 { 0xc06def00, 0xc06df1ff, REGISTRY_RIPENCC }, // 192.109.239.0 - 192.109.241.255 { 0xc06df200, 0xc06df2ff, REGISTRY_AFRINIC }, // 192.109.242.0 - 192.109.242.255 { 0xc06df300, 0xc06df5ff, REGISTRY_RIPENCC }, // 192.109.243.0 - 192.109.245.255 { 0xc06df600, 0xc06df7ff, REGISTRY_RIPENCC }, // 192.109.246.0 - 192.109.247.255 { 0xc06df800, 0xc06df8ff, REGISTRY_RIPENCC }, // 192.109.248.0 - 192.109.248.255 { 0xc06df900, 0xc06df9ff, REGISTRY_RIPENCC }, // 192.109.249.0 - 192.109.249.255 { 0xc06dfa00, 0xc06dfaff, REGISTRY_RIPENCC }, // 192.109.250.0 - 192.109.250.255 { 0xc06dfb00, 0xc06dfcff, REGISTRY_RIPENCC }, // 192.109.251.0 - 192.109.252.255 { 0xc06dfd00, 0xc06dfdff, REGISTRY_RIPENCC }, // 192.109.253.0 - 192.109.253.255 { 0xc06dfe00, 0xc06dffff, REGISTRY_RIPENCC }, // 192.109.254.0 - 192.109.255.255 { 0xc06e0000, 0xc06f1fff, REGISTRY_ARIN }, // 192.110.0.0 - 192.111.31.255 { 0xc06f2000, 0xc06f20ff, REGISTRY_APNIC }, // 192.111.32.0 - 192.111.32.255 { 0xc06f2100, 0xc06f21ff, REGISTRY_RIPENCC }, // 192.111.33.0 - 192.111.33.255 { 0xc06f2200, 0xc06f26ff, REGISTRY_ARIN }, // 192.111.34.0 - 192.111.38.255 { 0xc06f2700, 0xc06f27ff, REGISTRY_RIPENCC }, // 192.111.39.0 - 192.111.39.255 { 0xc06f2800, 0xc06f2bff, REGISTRY_ARIN }, // 192.111.40.0 - 192.111.43.255 { 0xc06f2c00, 0xc06f2cff, REGISTRY_RIPENCC }, // 192.111.44.0 - 192.111.44.255 { 0xc06f2d00, 0xc06f2eff, REGISTRY_ARIN }, // 192.111.45.0 - 192.111.46.255 { 0xc06f2f00, 0xc06f30ff, REGISTRY_RIPENCC }, // 192.111.47.0 - 192.111.48.255 { 0xc06f3100, 0xc06f57ff, REGISTRY_ARIN }, // 192.111.49.0 - 192.111.87.255 { 0xc06f5800, 0xc06f58ff, REGISTRY_RIPENCC }, // 192.111.88.0 - 192.111.88.255 { 0xc06f5900, 0xc06f63ff, REGISTRY_ARIN }, // 192.111.89.0 - 192.111.99.255 { 0xc06f6400, 0xc06f65ff, REGISTRY_RIPENCC }, // 192.111.100.0 - 192.111.101.255 { 0xc06f6600, 0xc06f66ff, REGISTRY_APNIC }, // 192.111.102.0 - 192.111.102.255 { 0xc06f6700, 0xc06f68ff, REGISTRY_RIPENCC }, // 192.111.103.0 - 192.111.104.255 { 0xc06f6900, 0xc06f69ff, REGISTRY_APNIC }, // 192.111.105.0 - 192.111.105.255 { 0xc06f6a00, 0xc06f7bff, REGISTRY_ARIN }, // 192.111.106.0 - 192.111.123.255 { 0xc06f7c00, 0xc06f7dff, REGISTRY_RIPENCC }, // 192.111.124.0 - 192.111.125.255 { 0xc06f7e00, 0xc06f7eff, REGISTRY_ARIN }, // 192.111.126.0 - 192.111.126.255 { 0xc06f7f00, 0xc06f7fff, REGISTRY_RIPENCC }, // 192.111.127.0 - 192.111.127.255 { 0xc06f8000, 0xc06fe4ff, REGISTRY_ARIN }, // 192.111.128.0 - 192.111.228.255 { 0xc06fe500, 0xc06fe6ff, REGISTRY_LACNIC }, // 192.111.229.0 - 192.111.230.255 { 0xc06fe700, 0xc06ffbff, REGISTRY_ARIN }, // 192.111.231.0 - 192.111.251.255 { 0xc06ffc00, 0xc06ffcff, REGISTRY_RIPENCC }, // 192.111.252.0 - 192.111.252.255 { 0xc06ffd00, 0xc0701dff, REGISTRY_ARIN }, // 192.111.253.0 - 192.112.29.255 { 0xc0701e00, 0xc07020ff, REGISTRY_RIPENCC }, // 192.112.30.0 - 192.112.32.255 { 0xc0702100, 0xc0702cff, REGISTRY_ARIN }, // 192.112.33.0 - 192.112.44.255 { 0xc0702d00, 0xc0702dff, REGISTRY_RIPENCC }, // 192.112.45.0 - 192.112.45.255 { 0xc0702e00, 0xc07030ff, REGISTRY_ARIN }, // 192.112.46.0 - 192.112.48.255 { 0xc0703100, 0xc07031ff, REGISTRY_RIPENCC }, // 192.112.49.0 - 192.112.49.255 { 0xc0703200, 0xc0703cff, REGISTRY_ARIN }, // 192.112.50.0 - 192.112.60.255 { 0xc0703d00, 0xc0703dff, REGISTRY_RIPENCC }, // 192.112.61.0 - 192.112.61.255 { 0xc0703e00, 0xc07045ff, REGISTRY_ARIN }, // 192.112.62.0 - 192.112.69.255 { 0xc0704600, 0xc0704fff, REGISTRY_RIPENCC }, // 192.112.70.0 - 192.112.79.255 { 0xc0705000, 0xc07061ff, REGISTRY_ARIN }, // 192.112.80.0 - 192.112.97.255 { 0xc0706200, 0xc07064ff, REGISTRY_RIPENCC }, // 192.112.98.0 - 192.112.100.255 { 0xc0706500, 0xc070cbff, REGISTRY_ARIN }, // 192.112.101.0 - 192.112.203.255 { 0xc070cc00, 0xc070ccff, REGISTRY_RIPENCC }, // 192.112.204.0 - 192.112.204.255 { 0xc070cd00, 0xc070cdff, REGISTRY_ARIN }, // 192.112.205.0 - 192.112.205.255 { 0xc070ce00, 0xc070ceff, REGISTRY_RIPENCC }, // 192.112.206.0 - 192.112.206.255 { 0xc070cf00, 0xc070cfff, REGISTRY_ARIN }, // 192.112.207.0 - 192.112.207.255 { 0xc070d000, 0xc070d0ff, REGISTRY_RIPENCC }, // 192.112.208.0 - 192.112.208.255 { 0xc070d100, 0xc070d4ff, REGISTRY_ARIN }, // 192.112.209.0 - 192.112.212.255 { 0xc070d500, 0xc070d6ff, REGISTRY_RIPENCC }, // 192.112.213.0 - 192.112.214.255 { 0xc070d700, 0xc070d7ff, REGISTRY_APNIC }, // 192.112.215.0 - 192.112.215.255 { 0xc070d800, 0xc070f2ff, REGISTRY_ARIN }, // 192.112.216.0 - 192.112.242.255 { 0xc070f300, 0xc070f3ff, REGISTRY_APNIC }, // 192.112.243.0 - 192.112.243.255 { 0xc070f400, 0xc070f6ff, REGISTRY_ARIN }, // 192.112.244.0 - 192.112.246.255 { 0xc070f700, 0xc070f7ff, REGISTRY_RIPENCC }, // 192.112.247.0 - 192.112.247.255 { 0xc070f800, 0xc070fdff, REGISTRY_ARIN }, // 192.112.248.0 - 192.112.253.255 { 0xc070fe00, 0xc070feff, REGISTRY_RIPENCC }, // 192.112.254.0 - 192.112.254.255 { 0xc070ff00, 0xc070ffff, REGISTRY_ARIN }, // 192.112.255.0 - 192.112.255.255 { 0xc0710000, 0xc071ffff, REGISTRY_RIPENCC }, // 192.113.0.0 - 192.113.255.255 { 0xc0720000, 0xc0720aff, REGISTRY_RIPENCC }, // 192.114.0.0 - 192.114.10.255 { 0xc0720b00, 0xc0720bff, REGISTRY_RIPENCC }, // 192.114.11.0 - 192.114.11.255 { 0xc0720c00, 0xc07227ff, REGISTRY_RIPENCC }, // 192.114.12.0 - 192.114.39.255 { 0xc0722800, 0xc0722fff, REGISTRY_RIPENCC }, // 192.114.40.0 - 192.114.47.255 { 0xc0723000, 0xc0723fff, REGISTRY_RIPENCC }, // 192.114.48.0 - 192.114.63.255 { 0xc0724000, 0xc07257ff, REGISTRY_RIPENCC }, // 192.114.64.0 - 192.114.87.255 { 0xc0725800, 0xc0728fff, REGISTRY_RIPENCC }, // 192.114.88.0 - 192.114.143.255 { 0xc0729000, 0xc07293ff, REGISTRY_RIPENCC }, // 192.114.144.0 - 192.114.147.255 { 0xc0729400, 0xc0729fff, REGISTRY_RIPENCC }, // 192.114.148.0 - 192.114.159.255 { 0xc072a000, 0xc072bfff, REGISTRY_RIPENCC }, // 192.114.160.0 - 192.114.191.255 { 0xc072c000, 0xc0730fff, REGISTRY_RIPENCC }, // 192.114.192.0 - 192.115.15.255 { 0xc0731000, 0xc0731fff, REGISTRY_RIPENCC }, // 192.115.16.0 - 192.115.31.255 { 0xc0732000, 0xc07337ff, REGISTRY_RIPENCC }, // 192.115.32.0 - 192.115.55.255 { 0xc0733800, 0xc0733fff, REGISTRY_RIPENCC }, // 192.115.56.0 - 192.115.63.255 { 0xc0734000, 0xc07367ff, REGISTRY_RIPENCC }, // 192.115.64.0 - 192.115.103.255 { 0xc0736800, 0xc0736bff, REGISTRY_RIPENCC }, // 192.115.104.0 - 192.115.107.255 { 0xc0736c00, 0xc0737fff, REGISTRY_RIPENCC }, // 192.115.108.0 - 192.115.127.255 { 0xc0738000, 0xc07387ff, REGISTRY_RIPENCC }, // 192.115.128.0 - 192.115.135.255 { 0xc0738800, 0xc073b7ff, REGISTRY_RIPENCC }, // 192.115.136.0 - 192.115.183.255 { 0xc073b800, 0xc073bfff, REGISTRY_RIPENCC }, // 192.115.184.0 - 192.115.191.255 { 0xc073c000, 0xc074bfff, REGISTRY_RIPENCC }, // 192.115.192.0 - 192.116.191.255 { 0xc074c000, 0xc074ffff, REGISTRY_RIPENCC }, // 192.116.192.0 - 192.116.255.255 { 0xc0750000, 0xc0755fff, REGISTRY_RIPENCC }, // 192.117.0.0 - 192.117.95.255 { 0xc0756000, 0xc075bfff, REGISTRY_RIPENCC }, // 192.117.96.0 - 192.117.191.255 { 0xc075c000, 0xc075e7ff, REGISTRY_RIPENCC }, // 192.117.192.0 - 192.117.231.255 { 0xc075e800, 0xc075efff, REGISTRY_RIPENCC }, // 192.117.232.0 - 192.117.239.255 { 0xc075f000, 0xc076ffff, REGISTRY_RIPENCC }, // 192.117.240.0 - 192.118.255.255 { 0xc0770000, 0xc0772fff, REGISTRY_ARIN }, // 192.119.0.0 - 192.119.47.255 { 0xc0773000, 0xc0773fff, REGISTRY_RIPENCC }, // 192.119.48.0 - 192.119.63.255 { 0xc0774000, 0xc078f3ff, REGISTRY_ARIN }, // 192.119.64.0 - 192.120.243.255 { 0xc078f400, 0xc078f5ff, REGISTRY_RIPENCC }, // 192.120.244.0 - 192.120.245.255 { 0xc078f600, 0xc078ffff, REGISTRY_ARIN }, // 192.120.246.0 - 192.120.255.255 { 0xc0790000, 0xc079ffff, REGISTRY_RIPENCC }, // 192.121.0.0 - 192.121.255.255 { 0xc07a0000, 0xc07a00ff, REGISTRY_ARIN }, // 192.122.0.0 - 192.122.0.255 { 0xc07a0100, 0xc07a82ff, REGISTRY_RIPENCC }, // 192.122.1.0 - 192.122.130.255 { 0xc07a8300, 0xc07a8cff, REGISTRY_APNIC }, // 192.122.131.0 - 192.122.140.255 { 0xc07a8d00, 0xc07a92ff, REGISTRY_RIPENCC }, // 192.122.141.0 - 192.122.146.255 { 0xc07a9300, 0xc07a96ff, REGISTRY_ARIN }, // 192.122.147.0 - 192.122.150.255 { 0xc07a9700, 0xc07aaaff, REGISTRY_RIPENCC }, // 192.122.151.0 - 192.122.170.255 { 0xc07aab00, 0xc07aabff, REGISTRY_APNIC }, // 192.122.171.0 - 192.122.171.255 { 0xc07aac00, 0xc07aafff, REGISTRY_ARIN }, // 192.122.172.0 - 192.122.175.255 { 0xc07ab000, 0xc07ab0ff, REGISTRY_APNIC }, // 192.122.176.0 - 192.122.176.255 { 0xc07ab100, 0xc07ab3ff, REGISTRY_ARIN }, // 192.122.177.0 - 192.122.179.255 { 0xc07ab400, 0xc07ab4ff, REGISTRY_APNIC }, // 192.122.180.0 - 192.122.180.255 { 0xc07ab500, 0xc07ad1ff, REGISTRY_ARIN }, // 192.122.181.0 - 192.122.209.255 { 0xc07ad300, 0xc07ad5ff, REGISTRY_ARIN }, // 192.122.211.0 - 192.122.213.255 { 0xc07ad600, 0xc07ad6ff, REGISTRY_RIPENCC }, // 192.122.214.0 - 192.122.214.255 { 0xc07ad700, 0xc07ad7ff, REGISTRY_ARIN }, // 192.122.215.0 - 192.122.215.255 { 0xc07ad800, 0xc07aeaff, REGISTRY_RIPENCC }, // 192.122.216.0 - 192.122.234.255 { 0xc07aeb00, 0xc07aedff, REGISTRY_ARIN }, // 192.122.235.0 - 192.122.237.255 { 0xc07aee00, 0xc07af2ff, REGISTRY_RIPENCC }, // 192.122.238.0 - 192.122.242.255 { 0xc07af300, 0xc07afcff, REGISTRY_ARIN }, // 192.122.243.0 - 192.122.252.255 { 0xc07afd00, 0xc07afdff, REGISTRY_RIPENCC }, // 192.122.253.0 - 192.122.253.255 { 0xc07afe00, 0xc07afeff, REGISTRY_RIPENCC }, // 192.122.254.0 - 192.122.254.255 { 0xc07aff00, 0xc07c09ff, REGISTRY_ARIN }, // 192.122.255.0 - 192.124.9.255 { 0xc07c0a00, 0xc07c0eff, REGISTRY_APNIC }, // 192.124.10.0 - 192.124.14.255 { 0xc07c0f00, 0xc07c17ff, REGISTRY_ARIN }, // 192.124.15.0 - 192.124.23.255 { 0xc07c1900, 0xc07c1cff, REGISTRY_RIPENCC }, // 192.124.25.0 - 192.124.28.255 { 0xc07c1d00, 0xc07c1fff, REGISTRY_ARIN }, // 192.124.29.0 - 192.124.31.255 { 0xc07c2000, 0xc07c20ff, REGISTRY_RIPENCC }, // 192.124.32.0 - 192.124.32.255 { 0xc07c2100, 0xc07c26ff, REGISTRY_ARIN }, // 192.124.33.0 - 192.124.38.255 { 0xc07c2700, 0xc07c29ff, REGISTRY_RIPENCC }, // 192.124.39.0 - 192.124.41.255 { 0xc07c2a00, 0xc07c2dff, REGISTRY_ARIN }, // 192.124.42.0 - 192.124.45.255 { 0xc07c2e00, 0xc07c2eff, REGISTRY_RIPENCC }, // 192.124.46.0 - 192.124.46.255 { 0xc07c2f00, 0xc07c6fff, REGISTRY_ARIN }, // 192.124.47.0 - 192.124.111.255 { 0xc07c7000, 0xc07c70ff, REGISTRY_RIPENCC }, // 192.124.112.0 - 192.124.112.255 { 0xc07c7100, 0xc07c72ff, REGISTRY_ARIN }, // 192.124.113.0 - 192.124.114.255 { 0xc07c7300, 0xc07c74ff, REGISTRY_RIPENCC }, // 192.124.115.0 - 192.124.116.255 { 0xc07c7500, 0xc07c75ff, REGISTRY_APNIC }, // 192.124.117.0 - 192.124.117.255 { 0xc07c7600, 0xc07c97ff, REGISTRY_ARIN }, // 192.124.118.0 - 192.124.151.255 { 0xc07c9800, 0xc07c98ff, REGISTRY_APNIC }, // 192.124.152.0 - 192.124.152.255 { 0xc07c9900, 0xc07c99ff, REGISTRY_ARIN }, // 192.124.153.0 - 192.124.153.255 { 0xc07c9a00, 0xc07c9aff, REGISTRY_APNIC }, // 192.124.154.0 - 192.124.154.255 { 0xc07c9b00, 0xc07c9bff, REGISTRY_RIPENCC }, // 192.124.155.0 - 192.124.155.255 { 0xc07c9c00, 0xc07ca9ff, REGISTRY_ARIN }, // 192.124.156.0 - 192.124.169.255 { 0xc07caa00, 0xc07cdbff, REGISTRY_RIPENCC }, // 192.124.170.0 - 192.124.219.255 { 0xc07cdc00, 0xc07ceaff, REGISTRY_ARIN }, // 192.124.220.0 - 192.124.234.255 { 0xc07ceb00, 0xc07cebff, REGISTRY_RIPENCC }, // 192.124.235.0 - 192.124.235.255 { 0xc07cec00, 0xc07cecff, REGISTRY_ARIN }, // 192.124.236.0 - 192.124.236.255 { 0xc07ced00, 0xc07cf5ff, REGISTRY_RIPENCC }, // 192.124.237.0 - 192.124.245.255 { 0xc07cf600, 0xc07cf6ff, REGISTRY_ARIN }, // 192.124.246.0 - 192.124.246.255 { 0xc07cf700, 0xc07cf8ff, REGISTRY_RIPENCC }, // 192.124.247.0 - 192.124.248.255 { 0xc07cf900, 0xc07cf9ff, REGISTRY_ARIN }, // 192.124.249.0 - 192.124.249.255 { 0xc07cfa00, 0xc07cfeff, REGISTRY_RIPENCC }, // 192.124.250.0 - 192.124.254.255 { 0xc07cff00, 0xc07cffff, REGISTRY_ARIN }, // 192.124.255.0 - 192.124.255.255 { 0xc07d0000, 0xc07dffff, REGISTRY_RIPENCC }, // 192.125.0.0 - 192.125.255.255 { 0xc07e0000, 0xc07e00ff, REGISTRY_ARIN }, // 192.126.0.0 - 192.126.0.255 { 0xc07e0100, 0xc07e40ff, REGISTRY_RIPENCC }, // 192.126.1.0 - 192.126.64.255 { 0xc07e4100, 0xc08100ff, REGISTRY_ARIN }, // 192.126.65.0 - 192.129.0.255 { 0xc0810100, 0xc08128ff, REGISTRY_RIPENCC }, // 192.129.1.0 - 192.129.40.255 { 0xc0812900, 0xc08129ff, REGISTRY_RIPENCC }, // 192.129.41.0 - 192.129.41.255 { 0xc0812a00, 0xc0813dff, REGISTRY_RIPENCC }, // 192.129.42.0 - 192.129.61.255 { 0xc0813e00, 0xc0814fff, REGISTRY_ARIN }, // 192.129.62.0 - 192.129.79.255 { 0xc0815000, 0xc08150ff, REGISTRY_RIPENCC }, // 192.129.80.0 - 192.129.80.255 { 0xc0815100, 0xc08156ff, REGISTRY_ARIN }, // 192.129.81.0 - 192.129.86.255 { 0xc0815700, 0xc08157ff, REGISTRY_RIPENCC }, // 192.129.87.0 - 192.129.87.255 { 0xc0815800, 0xc08161ff, REGISTRY_ARIN }, // 192.129.88.0 - 192.129.97.255 { 0xc0816200, 0xc08162ff, REGISTRY_RIPENCC }, // 192.129.98.0 - 192.129.98.255 { 0xc0816300, 0xc081ffff, REGISTRY_ARIN }, // 192.129.99.0 - 192.129.255.255 { 0xc0820000, 0xc082ffff, REGISTRY_RIPENCC }, // 192.130.0.0 - 192.130.255.255 { 0xc0830000, 0xc0830cff, REGISTRY_ARIN }, // 192.131.0.0 - 192.131.12.255 { 0xc0830d00, 0xc0830dff, REGISTRY_APNIC }, // 192.131.13.0 - 192.131.13.255 { 0xc0830e00, 0xc08313ff, REGISTRY_ARIN }, // 192.131.14.0 - 192.131.19.255 { 0xc0831400, 0xc08314ff, REGISTRY_RIPENCC }, // 192.131.20.0 - 192.131.20.255 { 0xc0831500, 0xc08318ff, REGISTRY_ARIN }, // 192.131.21.0 - 192.131.24.255 { 0xc0831900, 0xc0831aff, REGISTRY_RIPENCC }, // 192.131.25.0 - 192.131.26.255 { 0xc0831b00, 0xc0831eff, REGISTRY_APNIC }, // 192.131.27.0 - 192.131.30.255 { 0xc0831f00, 0xc0834eff, REGISTRY_ARIN }, // 192.131.31.0 - 192.131.78.255 { 0xc0834f00, 0xc0834fff, REGISTRY_RIPENCC }, // 192.131.79.0 - 192.131.79.255 { 0xc0835000, 0xc08358ff, REGISTRY_ARIN }, // 192.131.80.0 - 192.131.88.255 { 0xc0835900, 0xc08359ff, REGISTRY_RIPENCC }, // 192.131.89.0 - 192.131.89.255 { 0xc0835d00, 0xc0835fff, REGISTRY_ARIN }, // 192.131.93.0 - 192.131.95.255 { 0xc0836000, 0xc08360ff, REGISTRY_RIPENCC }, // 192.131.96.0 - 192.131.96.255 { 0xc0836100, 0xc0836bff, REGISTRY_ARIN }, // 192.131.97.0 - 192.131.107.255 { 0xc0836c00, 0xc0836cff, REGISTRY_RIPENCC }, // 192.131.108.0 - 192.131.108.255 { 0xc0836d00, 0xc08383ff, REGISTRY_ARIN }, // 192.131.109.0 - 192.131.131.255 { 0xc0838400, 0xc08384ff, REGISTRY_RIPENCC }, // 192.131.132.0 - 192.131.132.255 { 0xc0838500, 0xc0838dff, REGISTRY_ARIN }, // 192.131.133.0 - 192.131.141.255 { 0xc0838e00, 0xc0838eff, REGISTRY_APNIC }, // 192.131.142.0 - 192.131.142.255 { 0xc0838f00, 0xc083faff, REGISTRY_ARIN }, // 192.131.143.0 - 192.131.250.255 { 0xc083fb00, 0xc083fcff, REGISTRY_APNIC }, // 192.131.251.0 - 192.131.252.255 { 0xc083fd00, 0xc08408ff, REGISTRY_ARIN }, // 192.131.253.0 - 192.132.8.255 { 0xc0840900, 0xc0840bff, REGISTRY_RIPENCC }, // 192.132.9.0 - 192.132.11.255 { 0xc0840c00, 0xc0840eff, REGISTRY_ARIN }, // 192.132.12.0 - 192.132.14.255 { 0xc0840f00, 0xc0840fff, REGISTRY_APNIC }, // 192.132.15.0 - 192.132.15.255 { 0xc0841000, 0xc0841eff, REGISTRY_ARIN }, // 192.132.16.0 - 192.132.30.255 { 0xc0841f00, 0xc0841fff, REGISTRY_APNIC }, // 192.132.31.0 - 192.132.31.255 { 0xc0842000, 0xc08421ff, REGISTRY_ARIN }, // 192.132.32.0 - 192.132.33.255 { 0xc0842200, 0xc08422ff, REGISTRY_RIPENCC }, // 192.132.34.0 - 192.132.34.255 { 0xc0842300, 0xc08423ff, REGISTRY_LACNIC }, // 192.132.35.0 - 192.132.35.255 { 0xc0842400, 0xc08428ff, REGISTRY_ARIN }, // 192.132.36.0 - 192.132.40.255 { 0xc0842900, 0xc08429ff, REGISTRY_APNIC }, // 192.132.41.0 - 192.132.41.255 { 0xc0842a00, 0xc08434ff, REGISTRY_ARIN }, // 192.132.42.0 - 192.132.52.255 { 0xc0843500, 0xc08435ff, REGISTRY_RIPENCC }, // 192.132.53.0 - 192.132.53.255 { 0xc0843600, 0xc08436ff, REGISTRY_ARIN }, // 192.132.54.0 - 192.132.54.255 { 0xc0843700, 0xc08437ff, REGISTRY_RIPENCC }, // 192.132.55.0 - 192.132.55.255 { 0xc0843800, 0xc0845cff, REGISTRY_ARIN }, // 192.132.56.0 - 192.132.92.255 { 0xc0845e00, 0xc08462ff, REGISTRY_ARIN }, // 192.132.94.0 - 192.132.98.255 { 0xc0846300, 0xc08463ff, REGISTRY_RIPENCC }, // 192.132.99.0 - 192.132.99.255 { 0xc0846400, 0xc08465ff, REGISTRY_ARIN }, // 192.132.100.0 - 192.132.101.255 { 0xc0846700, 0xc084eeff, REGISTRY_ARIN }, // 192.132.103.0 - 192.132.238.255 { 0xc084ef00, 0xc084efff, REGISTRY_RIPENCC }, // 192.132.239.0 - 192.132.239.255 { 0xc084f000, 0xc084f3ff, REGISTRY_ARIN }, // 192.132.240.0 - 192.132.243.255 { 0xc084f400, 0xc084f5ff, REGISTRY_RIPENCC }, // 192.132.244.0 - 192.132.245.255 { 0xc084f600, 0xc084f6ff, REGISTRY_ARIN }, // 192.132.246.0 - 192.132.246.255 { 0xc084f700, 0xc084fbff, REGISTRY_APNIC }, // 192.132.247.0 - 192.132.251.255 { 0xc084fc00, 0xc084fcff, REGISTRY_RIPENCC }, // 192.132.252.0 - 192.132.252.255 { 0xc084fd00, 0xc084fdff, REGISTRY_APNIC }, // 192.132.253.0 - 192.132.253.255 { 0xc084fe00, 0xc08509ff, REGISTRY_ARIN }, // 192.132.254.0 - 192.133.9.255 { 0xc0850b00, 0xc0850dff, REGISTRY_ARIN }, // 192.133.11.0 - 192.133.13.255 { 0xc0850f00, 0xc0850fff, REGISTRY_RIPENCC }, // 192.133.15.0 - 192.133.15.255 { 0xc0851000, 0xc08514ff, REGISTRY_ARIN }, // 192.133.16.0 - 192.133.20.255 { 0xc0851600, 0xc0851bff, REGISTRY_ARIN }, // 192.133.22.0 - 192.133.27.255 { 0xc0851c00, 0xc0851cff, REGISTRY_RIPENCC }, // 192.133.28.0 - 192.133.28.255 { 0xc0851d00, 0xc0851eff, REGISTRY_ARIN }, // 192.133.29.0 - 192.133.30.255 { 0xc0851f00, 0xc0851fff, REGISTRY_APNIC }, // 192.133.31.0 - 192.133.31.255 { 0xc0852000, 0xc08520ff, REGISTRY_RIPENCC }, // 192.133.32.0 - 192.133.32.255 { 0xc0852100, 0xc08523ff, REGISTRY_ARIN }, // 192.133.33.0 - 192.133.35.255 { 0xc0852400, 0xc08524ff, REGISTRY_RIPENCC }, // 192.133.36.0 - 192.133.36.255 { 0xc0852500, 0xc08528ff, REGISTRY_ARIN }, // 192.133.37.0 - 192.133.40.255 { 0xc0852900, 0xc08529ff, REGISTRY_APNIC }, // 192.133.41.0 - 192.133.41.255 { 0xc0852a00, 0xc08534ff, REGISTRY_ARIN }, // 192.133.42.0 - 192.133.52.255 { 0xc0853500, 0xc08537ff, REGISTRY_RIPENCC }, // 192.133.53.0 - 192.133.55.255 { 0xc0853800, 0xc08539ff, REGISTRY_ARIN }, // 192.133.56.0 - 192.133.57.255 { 0xc0853a00, 0xc0853aff, REGISTRY_RIPENCC }, // 192.133.58.0 - 192.133.58.255 { 0xc0853b00, 0xc0853fff, REGISTRY_ARIN }, // 192.133.59.0 - 192.133.63.255 { 0xc0854000, 0xc08540ff, REGISTRY_RIPENCC }, // 192.133.64.0 - 192.133.64.255 { 0xc0854100, 0xc08541ff, REGISTRY_ARIN }, // 192.133.65.0 - 192.133.65.255 { 0xc0854400, 0xc0856bff, REGISTRY_ARIN }, // 192.133.68.0 - 192.133.107.255 { 0xc0856c00, 0xc0856fff, REGISTRY_RIPENCC }, // 192.133.108.0 - 192.133.111.255 { 0xc0857000, 0xc08578ff, REGISTRY_ARIN }, // 192.133.112.0 - 192.133.120.255 { 0xc0857900, 0xc08579ff, REGISTRY_RIPENCC }, // 192.133.121.0 - 192.133.121.255 { 0xc0857a00, 0xc08582ff, REGISTRY_ARIN }, // 192.133.122.0 - 192.133.130.255 { 0xc0858300, 0xc08583ff, REGISTRY_RIPENCC }, // 192.133.131.0 - 192.133.131.255 { 0xc0858400, 0xc085f3ff, REGISTRY_ARIN }, // 192.133.132.0 - 192.133.243.255 { 0xc085f400, 0xc085f4ff, REGISTRY_RIPENCC }, // 192.133.244.0 - 192.133.244.255 { 0xc085f500, 0xc085f9ff, REGISTRY_ARIN }, // 192.133.245.0 - 192.133.249.255 { 0xc085fa00, 0xc085faff, REGISTRY_AFRINIC }, // 192.133.250.0 - 192.133.250.255 { 0xc085fb00, 0xc085ffff, REGISTRY_ARIN }, // 192.133.251.0 - 192.133.255.255 { 0xc0860000, 0xc086ffff, REGISTRY_RIPENCC }, // 192.134.0.0 - 192.134.255.255 { 0xc0870000, 0xc08706ff, REGISTRY_ARIN }, // 192.135.0.0 - 192.135.6.255 { 0xc0870700, 0xc08725ff, REGISTRY_RIPENCC }, // 192.135.7.0 - 192.135.37.255 { 0xc0872600, 0xc0872dff, REGISTRY_ARIN }, // 192.135.38.0 - 192.135.45.255 { 0xc0872e00, 0xc0872eff, REGISTRY_RIPENCC }, // 192.135.46.0 - 192.135.46.255 { 0xc0872f00, 0xc08732ff, REGISTRY_ARIN }, // 192.135.47.0 - 192.135.50.255 { 0xc0873300, 0xc08735ff, REGISTRY_RIPENCC }, // 192.135.51.0 - 192.135.53.255 { 0xc0873600, 0xc0873eff, REGISTRY_ARIN }, // 192.135.54.0 - 192.135.62.255 { 0xc0873f00, 0xc0873fff, REGISTRY_RIPENCC }, // 192.135.63.0 - 192.135.63.255 { 0xc0874000, 0xc08741ff, REGISTRY_ARIN }, // 192.135.64.0 - 192.135.65.255 { 0xc0874200, 0xc08742ff, REGISTRY_RIPENCC }, // 192.135.66.0 - 192.135.66.255 { 0xc0874300, 0xc08743ff, REGISTRY_ARIN }, // 192.135.67.0 - 192.135.67.255 { 0xc0874400, 0xc08744ff, REGISTRY_RIPENCC }, // 192.135.68.0 - 192.135.68.255 { 0xc0874500, 0xc08751ff, REGISTRY_ARIN }, // 192.135.69.0 - 192.135.81.255 { 0xc0875200, 0xc08752ff, REGISTRY_RIPENCC }, // 192.135.82.0 - 192.135.82.255 { 0xc0875300, 0xc08758ff, REGISTRY_ARIN }, // 192.135.83.0 - 192.135.88.255 { 0xc0875a00, 0xc0875bff, REGISTRY_APNIC }, // 192.135.90.0 - 192.135.91.255 { 0xc0875d00, 0xc0875dff, REGISTRY_ARIN }, // 192.135.93.0 - 192.135.93.255 { 0xc0875e00, 0xc0875eff, REGISTRY_APNIC }, // 192.135.94.0 - 192.135.94.255 { 0xc0875f00, 0xc0875fff, REGISTRY_LACNIC }, // 192.135.95.0 - 192.135.95.255 { 0xc0876000, 0xc08760ff, REGISTRY_APNIC }, // 192.135.96.0 - 192.135.96.255 { 0xc0876300, 0xc08763ff, REGISTRY_APNIC }, // 192.135.99.0 - 192.135.99.255 { 0xc0876400, 0xc08764ff, REGISTRY_RIPENCC }, // 192.135.100.0 - 192.135.100.255 { 0xc0876500, 0xc08765ff, REGISTRY_APNIC }, // 192.135.101.0 - 192.135.101.255 { 0xc0876700, 0xc0876cff, REGISTRY_APNIC }, // 192.135.103.0 - 192.135.108.255 { 0xc0876d00, 0xc08780ff, REGISTRY_ARIN }, // 192.135.109.0 - 192.135.128.255 { 0xc0878100, 0xc08781ff, REGISTRY_RIPENCC }, // 192.135.129.0 - 192.135.129.255 { 0xc0878200, 0xc08784ff, REGISTRY_ARIN }, // 192.135.130.0 - 192.135.132.255 { 0xc0878500, 0xc08785ff, REGISTRY_RIPENCC }, // 192.135.133.0 - 192.135.133.255 { 0xc0878600, 0xc0878eff, REGISTRY_ARIN }, // 192.135.134.0 - 192.135.142.255 { 0xc0878f00, 0xc0878fff, REGISTRY_RIPENCC }, // 192.135.143.0 - 192.135.143.255 { 0xc0879000, 0xc08790ff, REGISTRY_ARIN }, // 192.135.144.0 - 192.135.144.255 { 0xc0879100, 0xc087a8ff, REGISTRY_RIPENCC }, // 192.135.145.0 - 192.135.168.255 { 0xc087a900, 0xc087aeff, REGISTRY_ARIN }, // 192.135.169.0 - 192.135.174.255 { 0xc087af00, 0xc087afff, REGISTRY_RIPENCC }, // 192.135.175.0 - 192.135.175.255 { 0xc087b000, 0xc087b8ff, REGISTRY_ARIN }, // 192.135.176.0 - 192.135.184.255 { 0xc087b900, 0xc087b9ff, REGISTRY_LACNIC }, // 192.135.185.0 - 192.135.185.255 { 0xc087ba00, 0xc087baff, REGISTRY_ARIN }, // 192.135.186.0 - 192.135.186.255 { 0xc087bb00, 0xc087bbff, REGISTRY_RIPENCC }, // 192.135.187.0 - 192.135.187.255 { 0xc087bc00, 0xc087ceff, REGISTRY_ARIN }, // 192.135.188.0 - 192.135.206.255 { 0xc087cf00, 0xc087d0ff, REGISTRY_APNIC }, // 192.135.207.0 - 192.135.208.255 { 0xc087d100, 0xc087d1ff, REGISTRY_ARIN }, // 192.135.209.0 - 192.135.209.255 { 0xc087d300, 0xc087daff, REGISTRY_ARIN }, // 192.135.211.0 - 192.135.218.255 { 0xc087db00, 0xc087dbff, REGISTRY_RIPENCC }, // 192.135.219.0 - 192.135.219.255 { 0xc087dc00, 0xc087ddff, REGISTRY_ARIN }, // 192.135.220.0 - 192.135.221.255 { 0xc087df00, 0xc087e0ff, REGISTRY_ARIN }, // 192.135.223.0 - 192.135.224.255 { 0xc087e100, 0xc087e1ff, REGISTRY_RIPENCC }, // 192.135.225.0 - 192.135.225.255 { 0xc087e200, 0xc087e6ff, REGISTRY_ARIN }, // 192.135.226.0 - 192.135.230.255 { 0xc087e700, 0xc087eaff, REGISTRY_RIPENCC }, // 192.135.231.0 - 192.135.234.255 { 0xc087eb00, 0xc087fcff, REGISTRY_ARIN }, // 192.135.235.0 - 192.135.252.255 { 0xc087fd00, 0xc087feff, REGISTRY_RIPENCC }, // 192.135.253.0 - 192.135.254.255 { 0xc087ff00, 0xc08806ff, REGISTRY_ARIN }, // 192.135.255.0 - 192.136.6.255 { 0xc0880700, 0xc08807ff, REGISTRY_RIPENCC }, // 192.136.7.0 - 192.136.7.255 { 0xc0880800, 0xc08808ff, REGISTRY_ARIN }, // 192.136.8.0 - 192.136.8.255 { 0xc0880900, 0xc08809ff, REGISTRY_RIPENCC }, // 192.136.9.0 - 192.136.9.255 { 0xc0880a00, 0xc08811ff, REGISTRY_ARIN }, // 192.136.10.0 - 192.136.17.255 { 0xc0881200, 0xc08813ff, REGISTRY_RIPENCC }, // 192.136.18.0 - 192.136.19.255 { 0xc0881400, 0xc08816ff, REGISTRY_ARIN }, // 192.136.20.0 - 192.136.22.255 { 0xc0881700, 0xc08817ff, REGISTRY_RIPENCC }, // 192.136.23.0 - 192.136.23.255 { 0xc0881800, 0xc0881cff, REGISTRY_ARIN }, // 192.136.24.0 - 192.136.28.255 { 0xc0881d00, 0xc0881fff, REGISTRY_RIPENCC }, // 192.136.29.0 - 192.136.31.255 { 0xc0882000, 0xc08826ff, REGISTRY_ARIN }, // 192.136.32.0 - 192.136.38.255 { 0xc0882700, 0xc08827ff, REGISTRY_APNIC }, // 192.136.39.0 - 192.136.39.255 { 0xc0882800, 0xc08829ff, REGISTRY_RIPENCC }, // 192.136.40.0 - 192.136.41.255 { 0xc0882a00, 0xc0882fff, REGISTRY_LACNIC }, // 192.136.42.0 - 192.136.47.255 { 0xc0883000, 0xc08830ff, REGISTRY_ARIN }, // 192.136.48.0 - 192.136.48.255 { 0xc0883100, 0xc08831ff, REGISTRY_RIPENCC }, // 192.136.49.0 - 192.136.49.255 { 0xc0883200, 0xc08832ff, REGISTRY_ARIN }, // 192.136.50.0 - 192.136.50.255 { 0xc0883300, 0xc08834ff, REGISTRY_RIPENCC }, // 192.136.51.0 - 192.136.52.255 { 0xc0883500, 0xc08836ff, REGISTRY_ARIN }, // 192.136.53.0 - 192.136.54.255 { 0xc0883700, 0xc08839ff, REGISTRY_AFRINIC }, // 192.136.55.0 - 192.136.57.255 { 0xc0883a00, 0xc0883aff, REGISTRY_ARIN }, // 192.136.58.0 - 192.136.58.255 { 0xc0883c00, 0xc0883cff, REGISTRY_ARIN }, // 192.136.60.0 - 192.136.60.255 { 0xc0883d00, 0xc0883dff, REGISTRY_RIPENCC }, // 192.136.61.0 - 192.136.61.255 { 0xc0883e00, 0xc08846ff, REGISTRY_ARIN }, // 192.136.62.0 - 192.136.70.255 { 0xc0884700, 0xc08866ff, REGISTRY_RIPENCC }, // 192.136.71.0 - 192.136.102.255 { 0xc0886700, 0xc0888cff, REGISTRY_ARIN }, // 192.136.103.0 - 192.136.140.255 { 0xc0889000, 0xc08899ff, REGISTRY_ARIN }, // 192.136.144.0 - 192.136.153.255 { 0xc0889a00, 0xc0889cff, REGISTRY_RIPENCC }, // 192.136.154.0 - 192.136.156.255 { 0xc0889d00, 0xc08917ff, REGISTRY_ARIN }, // 192.136.157.0 - 192.137.23.255 { 0xc0891800, 0xc0891bff, REGISTRY_RIPENCC }, // 192.137.24.0 - 192.137.27.255 { 0xc0891c00, 0xc08a00ff, REGISTRY_ARIN }, // 192.137.28.0 - 192.138.0.255 { 0xc08a0100, 0xc08a08ff, REGISTRY_RIPENCC }, // 192.138.1.0 - 192.138.8.255 { 0xc08a0900, 0xc08a55ff, REGISTRY_ARIN }, // 192.138.9.0 - 192.138.85.255 { 0xc08a5600, 0xc08a56ff, REGISTRY_RIPENCC }, // 192.138.86.0 - 192.138.86.255 { 0xc08a5700, 0xc08a63ff, REGISTRY_ARIN }, // 192.138.87.0 - 192.138.99.255 { 0xc08a6400, 0xc08a64ff, REGISTRY_APNIC }, // 192.138.100.0 - 192.138.100.255 { 0xc08a6500, 0xc08a68ff, REGISTRY_ARIN }, // 192.138.101.0 - 192.138.104.255 { 0xc08a6900, 0xc08a75ff, REGISTRY_RIPENCC }, // 192.138.105.0 - 192.138.117.255 { 0xc08a7600, 0xc08a7dff, REGISTRY_APNIC }, // 192.138.118.0 - 192.138.125.255 { 0xc08a7e00, 0xc08a9aff, REGISTRY_ARIN }, // 192.138.126.0 - 192.138.154.255 { 0xc08a9b00, 0xc08a9eff, REGISTRY_RIPENCC }, // 192.138.155.0 - 192.138.158.255 { 0xc08a9f00, 0xc08ab6ff, REGISTRY_ARIN }, // 192.138.159.0 - 192.138.182.255 { 0xc08ab700, 0xc08ab7ff, REGISTRY_RIPENCC }, // 192.138.183.0 - 192.138.183.255 { 0xc08ab800, 0xc08ab8ff, REGISTRY_ARIN }, // 192.138.184.0 - 192.138.184.255 { 0xc08ab900, 0xc08ab9ff, REGISTRY_RIPENCC }, // 192.138.185.0 - 192.138.185.255 { 0xc08aba00, 0xc08abbff, REGISTRY_ARIN }, // 192.138.186.0 - 192.138.187.255 { 0xc08abc00, 0xc08abcff, REGISTRY_APNIC }, // 192.138.188.0 - 192.138.188.255 { 0xc08abd00, 0xc08abfff, REGISTRY_ARIN }, // 192.138.189.0 - 192.138.191.255 { 0xc08ac000, 0xc08ac0ff, REGISTRY_RIPENCC }, // 192.138.192.0 - 192.138.192.255 { 0xc08ac100, 0xc08acbff, REGISTRY_ARIN }, // 192.138.193.0 - 192.138.203.255 { 0xc08acc00, 0xc08accff, REGISTRY_RIPENCC }, // 192.138.204.0 - 192.138.204.255 { 0xc08acd00, 0xc08ae3ff, REGISTRY_ARIN }, // 192.138.205.0 - 192.138.227.255 { 0xc08ae400, 0xc08ae8ff, REGISTRY_RIPENCC }, // 192.138.228.0 - 192.138.232.255 { 0xc08ae900, 0xc08af7ff, REGISTRY_ARIN }, // 192.138.233.0 - 192.138.247.255 { 0xc08af800, 0xc08af8ff, REGISTRY_RIPENCC }, // 192.138.248.0 - 192.138.248.255 { 0xc08af900, 0xc08afaff, REGISTRY_ARIN }, // 192.138.249.0 - 192.138.250.255 { 0xc08afb00, 0xc08afbff, REGISTRY_APNIC }, // 192.138.251.0 - 192.138.251.255 { 0xc08afc00, 0xc08b4dff, REGISTRY_ARIN }, // 192.138.252.0 - 192.139.77.255 { 0xc08b4e00, 0xc08b4eff, REGISTRY_RIPENCC }, // 192.139.78.0 - 192.139.78.255 { 0xc08b4f00, 0xc08c00ff, REGISTRY_ARIN }, // 192.139.79.0 - 192.140.0.255 { 0xc08c0100, 0xc08c01ff, REGISTRY_LACNIC }, // 192.140.1.0 - 192.140.1.255 { 0xc08c0200, 0xc08c03ff, REGISTRY_RIPENCC }, // 192.140.2.0 - 192.140.3.255 { 0xc08c0400, 0xc08c07ff, REGISTRY_ARIN }, // 192.140.4.0 - 192.140.7.255 { 0xc08c0800, 0xc08c7fff, REGISTRY_LACNIC }, // 192.140.8.0 - 192.140.127.255 { 0xc08c8000, 0xc08cd7ff, REGISTRY_APNIC }, // 192.140.128.0 - 192.140.215.255 { 0xc08cdc00, 0xc08cebff, REGISTRY_APNIC }, // 192.140.220.0 - 192.140.235.255 { 0xc08cf800, 0xc08cffff, REGISTRY_APNIC }, // 192.140.248.0 - 192.140.255.255 { 0xc08d0000, 0xc08dffff, REGISTRY_LACNIC }, // 192.141.0.0 - 192.141.255.255 { 0xc08e0000, 0xc08fffff, REGISTRY_AFRINIC }, // 192.142.0.0 - 192.143.255.255 { 0xc0900000, 0xc0903fff, REGISTRY_RIPENCC }, // 192.144.0.0 - 192.144.63.255 { 0xc0904000, 0xc09049ff, REGISTRY_LACNIC }, // 192.144.64.0 - 192.144.73.255 { 0xc0904a00, 0xc0904aff, REGISTRY_RIPENCC }, // 192.144.74.0 - 192.144.74.255 { 0xc0904b00, 0xc0904bff, REGISTRY_RIPENCC }, // 192.144.75.0 - 192.144.75.255 { 0xc0904c00, 0xc0904dff, REGISTRY_RIPENCC }, // 192.144.76.0 - 192.144.77.255 { 0xc0904e00, 0xc09053ff, REGISTRY_APNIC }, // 192.144.78.0 - 192.144.83.255 { 0xc0905400, 0xc09055ff, REGISTRY_LACNIC }, // 192.144.84.0 - 192.144.85.255 { 0xc0905600, 0xc0905fff, REGISTRY_APNIC }, // 192.144.86.0 - 192.144.95.255 { 0xc0906000, 0xc0907fff, REGISTRY_LACNIC }, // 192.144.96.0 - 192.144.127.255 { 0xc0908000, 0xc090ffff, REGISTRY_APNIC }, // 192.144.128.0 - 192.144.255.255 { 0xc0910000, 0xc09113ff, REGISTRY_RIPENCC }, // 192.145.0.0 - 192.145.19.255 { 0xc0911400, 0xc09117ff, REGISTRY_APNIC }, // 192.145.20.0 - 192.145.23.255 { 0xc0911800, 0xc0913fff, REGISTRY_RIPENCC }, // 192.145.24.0 - 192.145.63.255 { 0xc0914000, 0xc09143ff, REGISTRY_ARIN }, // 192.145.64.0 - 192.145.67.255 { 0xc0914400, 0xc0917fff, REGISTRY_RIPENCC }, // 192.145.68.0 - 192.145.127.255 { 0xc0918000, 0xc091a3ff, REGISTRY_AFRINIC }, // 192.145.128.0 - 192.145.163.255 { 0xc091a800, 0xc091bfff, REGISTRY_AFRINIC }, // 192.145.168.0 - 192.145.191.255 { 0xc091c000, 0xc091dfff, REGISTRY_LACNIC }, // 192.145.192.0 - 192.145.223.255 { 0xc091e000, 0xc091e3ff, REGISTRY_RIPENCC }, // 192.145.224.0 - 192.145.227.255 { 0xc091e400, 0xc091e5ff, REGISTRY_APNIC }, // 192.145.228.0 - 192.145.229.255 { 0xc091e600, 0xc091e6ff, REGISTRY_AFRINIC }, // 192.145.230.0 - 192.145.230.255 { 0xc091e700, 0xc09274ff, REGISTRY_ARIN }, // 192.145.231.0 - 192.146.116.255 { 0xc0927500, 0xc09275ff, REGISTRY_RIPENCC }, // 192.146.117.0 - 192.146.117.255 { 0xc0927600, 0xc09276ff, REGISTRY_ARIN }, // 192.146.118.0 - 192.146.118.255 { 0xc0927700, 0xc09277ff, REGISTRY_RIPENCC }, // 192.146.119.0 - 192.146.119.255 { 0xc0927800, 0xc0927aff, REGISTRY_ARIN }, // 192.146.120.0 - 192.146.122.255 { 0xc0927b00, 0xc0927eff, REGISTRY_RIPENCC }, // 192.146.123.0 - 192.146.126.255 { 0xc0927f00, 0xc09283ff, REGISTRY_ARIN }, // 192.146.127.0 - 192.146.131.255 { 0xc0928400, 0xc09284ff, REGISTRY_RIPENCC }, // 192.146.132.0 - 192.146.132.255 { 0xc0928500, 0xc09285ff, REGISTRY_APNIC }, // 192.146.133.0 - 192.146.133.255 { 0xc0928600, 0xc09289ff, REGISTRY_RIPENCC }, // 192.146.134.0 - 192.146.137.255 { 0xc0928a00, 0xc0928bff, REGISTRY_RIPENCC }, // 192.146.138.0 - 192.146.139.255 { 0xc0928c00, 0xc0928dff, REGISTRY_RIPENCC }, // 192.146.140.0 - 192.146.141.255 { 0xc0928e00, 0xc09295ff, REGISTRY_ARIN }, // 192.146.142.0 - 192.146.149.255 { 0xc0929600, 0xc09296ff, REGISTRY_APNIC }, // 192.146.150.0 - 192.146.150.255 { 0xc0929700, 0xc09297ff, REGISTRY_ARIN }, // 192.146.151.0 - 192.146.151.255 { 0xc0929800, 0xc09298ff, REGISTRY_RIPENCC }, // 192.146.152.0 - 192.146.152.255 { 0xc0929900, 0xc0929cff, REGISTRY_ARIN }, // 192.146.153.0 - 192.146.156.255 { 0xc0929d00, 0xc0929dff, REGISTRY_LACNIC }, // 192.146.157.0 - 192.146.157.255 { 0xc0929e00, 0xc092a2ff, REGISTRY_ARIN }, // 192.146.158.0 - 192.146.162.255 { 0xc092a300, 0xc092aaff, REGISTRY_RIPENCC }, // 192.146.163.0 - 192.146.170.255 { 0xc092ab00, 0xc092abff, REGISTRY_ARIN }, // 192.146.171.0 - 192.146.171.255 { 0xc092ac00, 0xc092b6ff, REGISTRY_RIPENCC }, // 192.146.172.0 - 192.146.182.255 { 0xc092b700, 0xc092b7ff, REGISTRY_ARIN }, // 192.146.183.0 - 192.146.183.255 { 0xc092b800, 0xc092b8ff, REGISTRY_APNIC }, // 192.146.184.0 - 192.146.184.255 { 0xc092b900, 0xc092b9ff, REGISTRY_RIPENCC }, // 192.146.185.0 - 192.146.185.255 { 0xc092ba00, 0xc092baff, REGISTRY_ARIN }, // 192.146.186.0 - 192.146.186.255 { 0xc092bb00, 0xc092bbff, REGISTRY_RIPENCC }, // 192.146.187.0 - 192.146.187.255 { 0xc092bc00, 0xc092bcff, REGISTRY_ARIN }, // 192.146.188.0 - 192.146.188.255 { 0xc092be00, 0xc092c0ff, REGISTRY_ARIN }, // 192.146.190.0 - 192.146.192.255 { 0xc092c100, 0xc092c1ff, REGISTRY_RIPENCC }, // 192.146.193.0 - 192.146.193.255 { 0xc092c200, 0xc092c7ff, REGISTRY_ARIN }, // 192.146.194.0 - 192.146.199.255 { 0xc092c800, 0xc092c8ff, REGISTRY_APNIC }, // 192.146.200.0 - 192.146.200.255 { 0xc092c900, 0xc092cbff, REGISTRY_ARIN }, // 192.146.201.0 - 192.146.203.255 { 0xc092cc00, 0xc092ccff, REGISTRY_RIPENCC }, // 192.146.204.0 - 192.146.204.255 { 0xc092cd00, 0xc092d9ff, REGISTRY_ARIN }, // 192.146.205.0 - 192.146.217.255 { 0xc092da00, 0xc092dbff, REGISTRY_APNIC }, // 192.146.218.0 - 192.146.219.255 { 0xc092dc00, 0xc092e2ff, REGISTRY_ARIN }, // 192.146.220.0 - 192.146.226.255 { 0xc092e300, 0xc092e4ff, REGISTRY_RIPENCC }, // 192.146.227.0 - 192.146.228.255 { 0xc092e500, 0xc092e5ff, REGISTRY_LACNIC }, // 192.146.229.0 - 192.146.229.255 { 0xc092e600, 0xc092e7ff, REGISTRY_ARIN }, // 192.146.230.0 - 192.146.231.255 { 0xc092e800, 0xc092e8ff, REGISTRY_APNIC }, // 192.146.232.0 - 192.146.232.255 { 0xc092e900, 0xc092eaff, REGISTRY_RIPENCC }, // 192.146.233.0 - 192.146.234.255 { 0xc092eb00, 0xc092ecff, REGISTRY_ARIN }, // 192.146.235.0 - 192.146.236.255 { 0xc092ed00, 0xc092edff, REGISTRY_LACNIC }, // 192.146.237.0 - 192.146.237.255 { 0xc092ee00, 0xc092efff, REGISTRY_RIPENCC }, // 192.146.238.0 - 192.146.239.255 { 0xc092f000, 0xc092f1ff, REGISTRY_ARIN }, // 192.146.240.0 - 192.146.241.255 { 0xc092f200, 0xc092f2ff, REGISTRY_RIPENCC }, // 192.146.242.0 - 192.146.242.255 { 0xc092f300, 0xc092faff, REGISTRY_ARIN }, // 192.146.243.0 - 192.146.250.255 { 0xc092fb00, 0xc092fdff, REGISTRY_APNIC }, // 192.146.251.0 - 192.146.253.255 { 0xc092fe00, 0xc09316ff, REGISTRY_ARIN }, // 192.146.254.0 - 192.147.22.255 { 0xc0931700, 0xc09317ff, REGISTRY_RIPENCC }, // 192.147.23.0 - 192.147.23.255 { 0xc0931800, 0xc09321ff, REGISTRY_ARIN }, // 192.147.24.0 - 192.147.33.255 { 0xc0932200, 0xc09322ff, REGISTRY_RIPENCC }, // 192.147.34.0 - 192.147.34.255 { 0xc0932300, 0xc09323ff, REGISTRY_ARIN }, // 192.147.35.0 - 192.147.35.255 { 0xc0932400, 0xc09324ff, REGISTRY_RIPENCC }, // 192.147.36.0 - 192.147.36.255 { 0xc0932500, 0xc09329ff, REGISTRY_ARIN }, // 192.147.37.0 - 192.147.41.255 { 0xc0932a00, 0xc0932aff, REGISTRY_RIPENCC }, // 192.147.42.0 - 192.147.42.255 { 0xc0932b00, 0xc0934bff, REGISTRY_ARIN }, // 192.147.43.0 - 192.147.75.255 { 0xc0934c00, 0xc0934fff, REGISTRY_RIPENCC }, // 192.147.76.0 - 192.147.79.255 { 0xc0935000, 0xc09371ff, REGISTRY_ARIN }, // 192.147.80.0 - 192.147.113.255 { 0xc0937300, 0xc0938cff, REGISTRY_ARIN }, // 192.147.115.0 - 192.147.140.255 { 0xc0938d00, 0xc0938dff, REGISTRY_RIPENCC }, // 192.147.141.0 - 192.147.141.255 { 0xc0938e00, 0xc09395ff, REGISTRY_ARIN }, // 192.147.142.0 - 192.147.149.255 { 0xc0939600, 0xc09396ff, REGISTRY_RIPENCC }, // 192.147.150.0 - 192.147.150.255 { 0xc0939a00, 0xc0939aff, REGISTRY_ARIN }, // 192.147.154.0 - 192.147.154.255 { 0xc0939b00, 0xc0939bff, REGISTRY_RIPENCC }, // 192.147.155.0 - 192.147.155.255 { 0xc0939c00, 0xc093d1ff, REGISTRY_ARIN }, // 192.147.156.0 - 192.147.209.255 { 0xc093d200, 0xc093d2ff, REGISTRY_LACNIC }, // 192.147.210.0 - 192.147.210.255 { 0xc093d300, 0xc093d3ff, REGISTRY_ARIN }, // 192.147.211.0 - 192.147.211.255 { 0xc093d400, 0xc093d4ff, REGISTRY_RIPENCC }, // 192.147.212.0 - 192.147.212.255 { 0xc093d500, 0xc093d6ff, REGISTRY_ARIN }, // 192.147.213.0 - 192.147.214.255 { 0xc093d700, 0xc093d9ff, REGISTRY_RIPENCC }, // 192.147.215.0 - 192.147.217.255 { 0xc093da00, 0xc093daff, REGISTRY_LACNIC }, // 192.147.218.0 - 192.147.218.255 { 0xc093db00, 0xc093dbff, REGISTRY_RIPENCC }, // 192.147.219.0 - 192.147.219.255 { 0xc093dc00, 0xc093e3ff, REGISTRY_ARIN }, // 192.147.220.0 - 192.147.227.255 { 0xc093e400, 0xc093e4ff, REGISTRY_RIPENCC }, // 192.147.228.0 - 192.147.228.255 { 0xc093e500, 0xc093eaff, REGISTRY_ARIN }, // 192.147.229.0 - 192.147.234.255 { 0xc093eb00, 0xc093ebff, REGISTRY_APNIC }, // 192.147.235.0 - 192.147.235.255 { 0xc093ec00, 0xc093f5ff, REGISTRY_ARIN }, // 192.147.236.0 - 192.147.245.255 { 0xc093f600, 0xc093f6ff, REGISTRY_APNIC }, // 192.147.246.0 - 192.147.246.255 { 0xc093f700, 0xc093f7ff, REGISTRY_RIPENCC }, // 192.147.247.0 - 192.147.247.255 { 0xc093f800, 0xc093faff, REGISTRY_ARIN }, // 192.147.248.0 - 192.147.250.255 { 0xc093fb00, 0xc093fbff, REGISTRY_RIPENCC }, // 192.147.251.0 - 192.147.251.255 { 0xc093fc00, 0xc093fcff, REGISTRY_ARIN }, // 192.147.252.0 - 192.147.252.255 { 0xc093fe00, 0xc09420ff, REGISTRY_ARIN }, // 192.147.254.0 - 192.148.32.255 { 0xc0942100, 0xc0945cff, REGISTRY_RIPENCC }, // 192.148.33.0 - 192.148.92.255 { 0xc0945d00, 0xc09466ff, REGISTRY_ARIN }, // 192.148.93.0 - 192.148.102.255 { 0xc0946700, 0xc09467ff, REGISTRY_RIPENCC }, // 192.148.103.0 - 192.148.103.255 { 0xc0946800, 0xc09473ff, REGISTRY_ARIN }, // 192.148.104.0 - 192.148.115.255 { 0xc0947400, 0xc094a5ff, REGISTRY_APNIC }, // 192.148.116.0 - 192.148.165.255 { 0xc094a600, 0xc094a6ff, REGISTRY_RIPENCC }, // 192.148.166.0 - 192.148.166.255 { 0xc094a700, 0xc094a7ff, REGISTRY_RIPENCC }, // 192.148.167.0 - 192.148.167.255 { 0xc094a800, 0xc094aeff, REGISTRY_ARIN }, // 192.148.168.0 - 192.148.174.255 { 0xc094af00, 0xc094afff, REGISTRY_LACNIC }, // 192.148.175.0 - 192.148.175.255 { 0xc094b000, 0xc094b0ff, REGISTRY_ARIN }, // 192.148.176.0 - 192.148.176.255 { 0xc094b100, 0xc094baff, REGISTRY_RIPENCC }, // 192.148.177.0 - 192.148.186.255 { 0xc094bb00, 0xc094bfff, REGISTRY_ARIN }, // 192.148.187.0 - 192.148.191.255 { 0xc094c000, 0xc094c2ff, REGISTRY_RIPENCC }, // 192.148.192.0 - 192.148.194.255 { 0xc094c300, 0xc094c5ff, REGISTRY_ARIN }, // 192.148.195.0 - 192.148.197.255 { 0xc094c600, 0xc094cfff, REGISTRY_RIPENCC }, // 192.148.198.0 - 192.148.207.255 { 0xc094d000, 0xc094d7ff, REGISTRY_RIPENCC }, // 192.148.208.0 - 192.148.215.255 { 0xc094d800, 0xc094d8ff, REGISTRY_RIPENCC }, // 192.148.216.0 - 192.148.216.255 { 0xc094d900, 0xc094dbff, REGISTRY_ARIN }, // 192.148.217.0 - 192.148.219.255 { 0xc094dc00, 0xc094dcff, REGISTRY_RIPENCC }, // 192.148.220.0 - 192.148.220.255 { 0xc094dd00, 0xc094ddff, REGISTRY_APNIC }, // 192.148.221.0 - 192.148.221.255 { 0xc094de00, 0xc094deff, REGISTRY_ARIN }, // 192.148.222.0 - 192.148.222.255 { 0xc094df00, 0xc094e6ff, REGISTRY_APNIC }, // 192.148.223.0 - 192.148.230.255 { 0xc094e700, 0xc09502ff, REGISTRY_ARIN }, // 192.148.231.0 - 192.149.2.255 { 0xc0950300, 0xc09503ff, REGISTRY_RIPENCC }, // 192.149.3.0 - 192.149.3.255 { 0xc0950400, 0xc09504ff, REGISTRY_ARIN }, // 192.149.4.0 - 192.149.4.255 { 0xc0950500, 0xc09505ff, REGISTRY_RIPENCC }, // 192.149.5.0 - 192.149.5.255 { 0xc0950600, 0xc0950eff, REGISTRY_ARIN }, // 192.149.6.0 - 192.149.14.255 { 0xc0950f00, 0xc0950fff, REGISTRY_RIPENCC }, // 192.149.15.0 - 192.149.15.255 { 0xc0951000, 0xc09512ff, REGISTRY_ARIN }, // 192.149.16.0 - 192.149.18.255 { 0xc0951300, 0xc09513ff, REGISTRY_RIPENCC }, // 192.149.19.0 - 192.149.19.255 { 0xc0951400, 0xc09514ff, REGISTRY_APNIC }, // 192.149.20.0 - 192.149.20.255 { 0xc0951500, 0xc0951aff, REGISTRY_ARIN }, // 192.149.21.0 - 192.149.26.255 { 0xc0951b00, 0xc0951bff, REGISTRY_RIPENCC }, // 192.149.27.0 - 192.149.27.255 { 0xc0951c00, 0xc0951cff, REGISTRY_ARIN }, // 192.149.28.0 - 192.149.28.255 { 0xc0951d00, 0xc09521ff, REGISTRY_RIPENCC }, // 192.149.29.0 - 192.149.33.255 { 0xc0952200, 0xc09522ff, REGISTRY_ARIN }, // 192.149.34.0 - 192.149.34.255 { 0xc0952300, 0xc09523ff, REGISTRY_RIPENCC }, // 192.149.35.0 - 192.149.35.255 { 0xc0952400, 0xc09524ff, REGISTRY_APNIC }, // 192.149.36.0 - 192.149.36.255 { 0xc0952500, 0xc09528ff, REGISTRY_ARIN }, // 192.149.37.0 - 192.149.40.255 { 0xc0952900, 0xc09529ff, REGISTRY_RIPENCC }, // 192.149.41.0 - 192.149.41.255 { 0xc0952a00, 0xc09535ff, REGISTRY_ARIN }, // 192.149.42.0 - 192.149.53.255 { 0xc0953600, 0xc09536ff, REGISTRY_APNIC }, // 192.149.54.0 - 192.149.54.255 { 0xc0953700, 0xc09538ff, REGISTRY_ARIN }, // 192.149.55.0 - 192.149.56.255 { 0xc0953900, 0xc09539ff, REGISTRY_RIPENCC }, // 192.149.57.0 - 192.149.57.255 { 0xc0953a00, 0xc0953aff, REGISTRY_ARIN }, // 192.149.58.0 - 192.149.58.255 { 0xc0953b00, 0xc0953cff, REGISTRY_RIPENCC }, // 192.149.59.0 - 192.149.60.255 { 0xc0953d00, 0xc0954cff, REGISTRY_ARIN }, // 192.149.61.0 - 192.149.76.255 { 0xc0954d00, 0xc0954fff, REGISTRY_RIPENCC }, // 192.149.77.0 - 192.149.79.255 { 0xc0955000, 0xc09561ff, REGISTRY_ARIN }, // 192.149.80.0 - 192.149.97.255 { 0xc0956200, 0xc09562ff, REGISTRY_RIPENCC }, // 192.149.98.0 - 192.149.98.255 { 0xc0956300, 0xc09563ff, REGISTRY_ARIN }, // 192.149.99.0 - 192.149.99.255 { 0xc0956400, 0xc09564ff, REGISTRY_RIPENCC }, // 192.149.100.0 - 192.149.100.255 { 0xc0956500, 0xc09565ff, REGISTRY_ARIN }, // 192.149.101.0 - 192.149.101.255 { 0xc0956600, 0xc09566ff, REGISTRY_RIPENCC }, // 192.149.102.0 - 192.149.102.255 { 0xc0956700, 0xc0956dff, REGISTRY_ARIN }, // 192.149.103.0 - 192.149.109.255 { 0xc0956e00, 0xc0956fff, REGISTRY_RIPENCC }, // 192.149.110.0 - 192.149.111.255 { 0xc0957000, 0xc09574ff, REGISTRY_ARIN }, // 192.149.112.0 - 192.149.116.255 { 0xc0957500, 0xc09579ff, REGISTRY_RIPENCC }, // 192.149.117.0 - 192.149.121.255 { 0xc0957a00, 0xc0957dff, REGISTRY_ARIN }, // 192.149.122.0 - 192.149.125.255 { 0xc0957e00, 0xc0957eff, REGISTRY_RIPENCC }, // 192.149.126.0 - 192.149.126.255 { 0xc0957f00, 0xc09594ff, REGISTRY_ARIN }, // 192.149.127.0 - 192.149.148.255 { 0xc0959600, 0xc095d0ff, REGISTRY_ARIN }, // 192.149.150.0 - 192.149.208.255 { 0xc095d100, 0xc095d1ff, REGISTRY_APNIC }, // 192.149.209.0 - 192.149.209.255 { 0xc095d200, 0xc095e2ff, REGISTRY_ARIN }, // 192.149.210.0 - 192.149.226.255 { 0xc095e300, 0xc095e3ff, REGISTRY_RIPENCC }, // 192.149.227.0 - 192.149.227.255 { 0xc095e400, 0xc095e7ff, REGISTRY_ARIN }, // 192.149.228.0 - 192.149.231.255 { 0xc095e800, 0xc095e8ff, REGISTRY_RIPENCC }, // 192.149.232.0 - 192.149.232.255 { 0xc095e900, 0xc095edff, REGISTRY_ARIN }, // 192.149.233.0 - 192.149.237.255 { 0xc095ee00, 0xc095eeff, REGISTRY_RIPENCC }, // 192.149.238.0 - 192.149.238.255 { 0xc095f000, 0xc0960fff, REGISTRY_ARIN }, // 192.149.240.0 - 192.150.15.255 { 0xc0961000, 0xc09610ff, REGISTRY_APNIC }, // 192.150.16.0 - 192.150.16.255 { 0xc0961100, 0xc09613ff, REGISTRY_ARIN }, // 192.150.17.0 - 192.150.19.255 { 0xc0961400, 0xc09614ff, REGISTRY_RIPENCC }, // 192.150.20.0 - 192.150.20.255 { 0xc0961500, 0xc09639ff, REGISTRY_ARIN }, // 192.150.21.0 - 192.150.57.255 { 0xc0963a00, 0xc09645ff, REGISTRY_RIPENCC }, // 192.150.58.0 - 192.150.69.255 { 0xc0964600, 0xc09648ff, REGISTRY_RIPENCC }, // 192.150.70.0 - 192.150.72.255 { 0xc0964900, 0xc0964aff, REGISTRY_ARIN }, // 192.150.73.0 - 192.150.74.255 { 0xc0964b00, 0xc0964cff, REGISTRY_RIPENCC }, // 192.150.75.0 - 192.150.76.255 { 0xc0964d00, 0xc0964dff, REGISTRY_ARIN }, // 192.150.77.0 - 192.150.77.255 { 0xc0964e00, 0xc09652ff, REGISTRY_RIPENCC }, // 192.150.78.0 - 192.150.82.255 { 0xc0965300, 0xc09653ff, REGISTRY_RIPENCC }, // 192.150.83.0 - 192.150.83.255 { 0xc0965400, 0xc09654ff, REGISTRY_RIPENCC }, // 192.150.84.0 - 192.150.84.255 { 0xc0965500, 0xc09658ff, REGISTRY_ARIN }, // 192.150.85.0 - 192.150.88.255 { 0xc0965900, 0xc09659ff, REGISTRY_RIPENCC }, // 192.150.89.0 - 192.150.89.255 { 0xc0965a00, 0xc0965bff, REGISTRY_ARIN }, // 192.150.90.0 - 192.150.91.255 { 0xc0965c00, 0xc0965cff, REGISTRY_RIPENCC }, // 192.150.92.0 - 192.150.92.255 { 0xc0965d00, 0xc0965dff, REGISTRY_ARIN }, // 192.150.93.0 - 192.150.93.255 { 0xc0965e00, 0xc0965eff, REGISTRY_RIPENCC }, // 192.150.94.0 - 192.150.94.255 { 0xc0965f00, 0xc0965fff, REGISTRY_ARIN }, // 192.150.95.0 - 192.150.95.255 { 0xc0966100, 0xc09667ff, REGISTRY_ARIN }, // 192.150.97.0 - 192.150.103.255 { 0xc0966800, 0xc09668ff, REGISTRY_RIPENCC }, // 192.150.104.0 - 192.150.104.255 { 0xc0966900, 0xc09669ff, REGISTRY_ARIN }, // 192.150.105.0 - 192.150.105.255 { 0xc0966a00, 0xc0966aff, REGISTRY_RIPENCC }, // 192.150.106.0 - 192.150.106.255 { 0xc0966b00, 0xc0966bff, REGISTRY_APNIC }, // 192.150.107.0 - 192.150.107.255 { 0xc0966c00, 0xc0967bff, REGISTRY_ARIN }, // 192.150.108.0 - 192.150.123.255 { 0xc0967c00, 0xc0967cff, REGISTRY_RIPENCC }, // 192.150.124.0 - 192.150.124.255 { 0xc0967d00, 0xc0967dff, REGISTRY_ARIN }, // 192.150.125.0 - 192.150.125.255 { 0xc0967e00, 0xc0967eff, REGISTRY_LACNIC }, // 192.150.126.0 - 192.150.126.255 { 0xc0967f00, 0xc09680ff, REGISTRY_ARIN }, // 192.150.127.0 - 192.150.128.255 { 0xc0968100, 0xc0968bff, REGISTRY_APNIC }, // 192.150.129.0 - 192.150.139.255 { 0xc0968c00, 0xc0968cff, REGISTRY_RIPENCC }, // 192.150.140.0 - 192.150.140.255 { 0xc0968d00, 0xc0968fff, REGISTRY_ARIN }, // 192.150.141.0 - 192.150.143.255 { 0xc0969100, 0xc09691ff, REGISTRY_ARIN }, // 192.150.145.0 - 192.150.145.255 { 0xc0969200, 0xc09692ff, REGISTRY_RIPENCC }, // 192.150.146.0 - 192.150.146.255 { 0xc0969300, 0xc096b0ff, REGISTRY_ARIN }, // 192.150.147.0 - 192.150.176.255 { 0xc096b100, 0xc096b8ff, REGISTRY_RIPENCC }, // 192.150.177.0 - 192.150.184.255 { 0xc096b900, 0xc096bbff, REGISTRY_ARIN }, // 192.150.185.0 - 192.150.187.255 { 0xc096bc00, 0xc096beff, REGISTRY_RIPENCC }, // 192.150.188.0 - 192.150.190.255 { 0xc096bf00, 0xc096bfff, REGISTRY_ARIN }, // 192.150.191.0 - 192.150.191.255 { 0xc096c000, 0xc096c6ff, REGISTRY_RIPENCC }, // 192.150.192.0 - 192.150.198.255 { 0xc096c700, 0xc096c7ff, REGISTRY_ARIN }, // 192.150.199.0 - 192.150.199.255 { 0xc096c900, 0xc096c9ff, REGISTRY_ARIN }, // 192.150.201.0 - 192.150.201.255 { 0xc096ca00, 0xc096caff, REGISTRY_APNIC }, // 192.150.202.0 - 192.150.202.255 { 0xc096cb00, 0xc096cdff, REGISTRY_RIPENCC }, // 192.150.203.0 - 192.150.205.255 { 0xc096ce00, 0xc096cfff, REGISTRY_ARIN }, // 192.150.206.0 - 192.150.207.255 { 0xc096d000, 0xc096d1ff, REGISTRY_RIPENCC }, // 192.150.208.0 - 192.150.209.255 { 0xc096d200, 0xc096d9ff, REGISTRY_ARIN }, // 192.150.210.0 - 192.150.217.255 { 0xc096da00, 0xc096dbff, REGISTRY_APNIC }, // 192.150.218.0 - 192.150.219.255 { 0xc096dd00, 0xc096deff, REGISTRY_ARIN }, // 192.150.221.0 - 192.150.222.255 { 0xc096df00, 0xc096dfff, REGISTRY_RIPENCC }, // 192.150.223.0 - 192.150.223.255 { 0xc096e000, 0xc096e2ff, REGISTRY_ARIN }, // 192.150.224.0 - 192.150.226.255 { 0xc096e300, 0xc096e9ff, REGISTRY_RIPENCC }, // 192.150.227.0 - 192.150.233.255 { 0xc096ea00, 0xc096edff, REGISTRY_APNIC }, // 192.150.234.0 - 192.150.237.255 { 0xc096ee00, 0xc096eeff, REGISTRY_RIPENCC }, // 192.150.238.0 - 192.150.238.255 { 0xc096ef00, 0xc096f5ff, REGISTRY_ARIN }, // 192.150.239.0 - 192.150.245.255 { 0xc096f600, 0xc096f6ff, REGISTRY_APNIC }, // 192.150.246.0 - 192.150.246.255 { 0xc096f700, 0xc096f7ff, REGISTRY_ARIN }, // 192.150.247.0 - 192.150.247.255 { 0xc096f800, 0xc096f8ff, REGISTRY_RIPENCC }, // 192.150.248.0 - 192.150.248.255 { 0xc096f900, 0xc096fbff, REGISTRY_APNIC }, // 192.150.249.0 - 192.150.251.255 { 0xc096fc00, 0xc096fcff, REGISTRY_RIPENCC }, // 192.150.252.0 - 192.150.252.255 { 0xc096fd00, 0xc096fdff, REGISTRY_ARIN }, // 192.150.253.0 - 192.150.253.255 { 0xc096fe00, 0xc096feff, REGISTRY_RIPENCC }, // 192.150.254.0 - 192.150.254.255 { 0xc096ff00, 0xc09780ff, REGISTRY_ARIN }, // 192.150.255.0 - 192.151.128.255 { 0xc0978200, 0xc09805ff, REGISTRY_ARIN }, // 192.151.130.0 - 192.152.5.255 { 0xc0980600, 0xc09806ff, REGISTRY_RIPENCC }, // 192.152.6.0 - 192.152.6.255 { 0xc0980700, 0xc0980dff, REGISTRY_ARIN }, // 192.152.7.0 - 192.152.13.255 { 0xc0980e00, 0xc0980eff, REGISTRY_RIPENCC }, // 192.152.14.0 - 192.152.14.255 { 0xc0980f00, 0xc09810ff, REGISTRY_ARIN }, // 192.152.15.0 - 192.152.16.255 { 0xc0981100, 0xc09811ff, REGISTRY_RIPENCC }, // 192.152.17.0 - 192.152.17.255 { 0xc0981200, 0xc09819ff, REGISTRY_ARIN }, // 192.152.18.0 - 192.152.25.255 { 0xc0981a00, 0xc0981bff, REGISTRY_RIPENCC }, // 192.152.26.0 - 192.152.27.255 { 0xc0981c00, 0xc09829ff, REGISTRY_ARIN }, // 192.152.28.0 - 192.152.41.255 { 0xc0982a00, 0xc0982aff, REGISTRY_RIPENCC }, // 192.152.42.0 - 192.152.42.255 { 0xc0982b00, 0xc0982bff, REGISTRY_ARIN }, // 192.152.43.0 - 192.152.43.255 { 0xc0982c00, 0xc0982cff, REGISTRY_RIPENCC }, // 192.152.44.0 - 192.152.44.255 { 0xc0982d00, 0xc0982eff, REGISTRY_ARIN }, // 192.152.45.0 - 192.152.46.255 { 0xc0982f00, 0xc09833ff, REGISTRY_RIPENCC }, // 192.152.47.0 - 192.152.51.255 { 0xc0983400, 0xc09835ff, REGISTRY_ARIN }, // 192.152.52.0 - 192.152.53.255 { 0xc0983600, 0xc09836ff, REGISTRY_RIPENCC }, // 192.152.54.0 - 192.152.54.255 { 0xc0983700, 0xc0983cff, REGISTRY_ARIN }, // 192.152.55.0 - 192.152.60.255 { 0xc0983d00, 0xc0983fff, REGISTRY_RIPENCC }, // 192.152.61.0 - 192.152.63.255 { 0xc0984000, 0xc09843ff, REGISTRY_ARIN }, // 192.152.64.0 - 192.152.67.255 { 0xc0984400, 0xc09844ff, REGISTRY_RIPENCC }, // 192.152.68.0 - 192.152.68.255 { 0xc0984500, 0xc09845ff, REGISTRY_APNIC }, // 192.152.69.0 - 192.152.69.255 { 0xc0984600, 0xc09851ff, REGISTRY_ARIN }, // 192.152.70.0 - 192.152.81.255 { 0xc0985200, 0xc09852ff, REGISTRY_RIPENCC }, // 192.152.82.0 - 192.152.82.255 { 0xc0985300, 0xc09855ff, REGISTRY_ARIN }, // 192.152.83.0 - 192.152.85.255 { 0xc0985800, 0xc09861ff, REGISTRY_ARIN }, // 192.152.88.0 - 192.152.97.255 { 0xc0986200, 0xc09862ff, REGISTRY_RIPENCC }, // 192.152.98.0 - 192.152.98.255 { 0xc0986300, 0xc0986eff, REGISTRY_ARIN }, // 192.152.99.0 - 192.152.110.255 { 0xc0986f00, 0xc09870ff, REGISTRY_RIPENCC }, // 192.152.111.0 - 192.152.112.255 { 0xc0987100, 0xc09876ff, REGISTRY_ARIN }, // 192.152.113.0 - 192.152.118.255 { 0xc0987700, 0xc09877ff, REGISTRY_APNIC }, // 192.152.119.0 - 192.152.119.255 { 0xc0987800, 0xc09879ff, REGISTRY_ARIN }, // 192.152.120.0 - 192.152.121.255 { 0xc0987a00, 0xc0987aff, REGISTRY_RIPENCC }, // 192.152.122.0 - 192.152.122.255 { 0xc0987b00, 0xc0987bff, REGISTRY_ARIN }, // 192.152.123.0 - 192.152.123.255 { 0xc0987c00, 0xc0987cff, REGISTRY_RIPENCC }, // 192.152.124.0 - 192.152.124.255 { 0xc0987d00, 0xc0987dff, REGISTRY_ARIN }, // 192.152.125.0 - 192.152.125.255 { 0xc0987e00, 0xc0987eff, REGISTRY_RIPENCC }, // 192.152.126.0 - 192.152.126.255 { 0xc0987f00, 0xc0988cff, REGISTRY_ARIN }, // 192.152.127.0 - 192.152.140.255 { 0xc0988d00, 0xc0988dff, REGISTRY_RIPENCC }, // 192.152.141.0 - 192.152.141.255 { 0xc0988e00, 0xc0988fff, REGISTRY_ARIN }, // 192.152.142.0 - 192.152.143.255 { 0xc0989100, 0xc09891ff, REGISTRY_ARIN }, // 192.152.145.0 - 192.152.145.255 { 0xc0989300, 0xc09896ff, REGISTRY_ARIN }, // 192.152.147.0 - 192.152.150.255 { 0xc0989700, 0xc09897ff, REGISTRY_RIPENCC }, // 192.152.151.0 - 192.152.151.255 { 0xc0989800, 0xc0989bff, REGISTRY_ARIN }, // 192.152.152.0 - 192.152.155.255 { 0xc0989c00, 0xc0989cff, REGISTRY_RIPENCC }, // 192.152.156.0 - 192.152.156.255 { 0xc0989d00, 0xc098a5ff, REGISTRY_ARIN }, // 192.152.157.0 - 192.152.165.255 { 0xc098a600, 0xc098a7ff, REGISTRY_RIPENCC }, // 192.152.166.0 - 192.152.167.255 { 0xc098a800, 0xc098adff, REGISTRY_ARIN }, // 192.152.168.0 - 192.152.173.255 { 0xc098ae00, 0xc098aeff, REGISTRY_RIPENCC }, // 192.152.174.0 - 192.152.174.255 { 0xc098af00, 0xc098b7ff, REGISTRY_ARIN }, // 192.152.175.0 - 192.152.183.255 { 0xc098b800, 0xc098bbff, REGISTRY_RIPENCC }, // 192.152.184.0 - 192.152.187.255 { 0xc098bc00, 0xc098c4ff, REGISTRY_ARIN }, // 192.152.188.0 - 192.152.196.255 { 0xc098c600, 0xc098d3ff, REGISTRY_ARIN }, // 192.152.198.0 - 192.152.211.255 { 0xc098d400, 0xc098d4ff, REGISTRY_APNIC }, // 192.152.212.0 - 192.152.212.255 { 0xc098d500, 0xc098f0ff, REGISTRY_ARIN }, // 192.152.213.0 - 192.152.240.255 { 0xc098f100, 0xc098f1ff, REGISTRY_RIPENCC }, // 192.152.241.0 - 192.152.241.255 { 0xc098f200, 0xc098f3ff, REGISTRY_ARIN }, // 192.152.242.0 - 192.152.243.255 { 0xc098f400, 0xc098f4ff, REGISTRY_RIPENCC }, // 192.152.244.0 - 192.152.244.255 { 0xc098f500, 0xc098fcff, REGISTRY_ARIN }, // 192.152.245.0 - 192.152.252.255 { 0xc098fd00, 0xc098feff, REGISTRY_RIPENCC }, // 192.152.253.0 - 192.152.254.255 { 0xc098ff00, 0xc09901ff, REGISTRY_ARIN }, // 192.152.255.0 - 192.153.1.255 { 0xc0990200, 0xc09903ff, REGISTRY_RIPENCC }, // 192.153.2.0 - 192.153.3.255 { 0xc0990400, 0xc09908ff, REGISTRY_ARIN }, // 192.153.4.0 - 192.153.8.255 { 0xc0990a00, 0xc0990bff, REGISTRY_ARIN }, // 192.153.10.0 - 192.153.11.255 { 0xc0990c00, 0xc0990cff, REGISTRY_LACNIC }, // 192.153.12.0 - 192.153.12.255 { 0xc0990d00, 0xc0990dff, REGISTRY_RIPENCC }, // 192.153.13.0 - 192.153.13.255 { 0xc0990e00, 0xc09911ff, REGISTRY_ARIN }, // 192.153.14.0 - 192.153.17.255 { 0xc0991200, 0xc09913ff, REGISTRY_RIPENCC }, // 192.153.18.0 - 192.153.19.255 { 0xc0991400, 0xc0993bff, REGISTRY_ARIN }, // 192.153.20.0 - 192.153.59.255 { 0xc0993c00, 0xc0993fff, REGISTRY_RIPENCC }, // 192.153.60.0 - 192.153.63.255 { 0xc0994000, 0xc09957ff, REGISTRY_ARIN }, // 192.153.64.0 - 192.153.87.255 { 0xc0995800, 0xc09958ff, REGISTRY_LACNIC }, // 192.153.88.0 - 192.153.88.255 { 0xc0995900, 0xc09959ff, REGISTRY_RIPENCC }, // 192.153.89.0 - 192.153.89.255 { 0xc0995a00, 0xc0995cff, REGISTRY_ARIN }, // 192.153.90.0 - 192.153.92.255 { 0xc0995d00, 0xc0995dff, REGISTRY_APNIC }, // 192.153.93.0 - 192.153.93.255 { 0xc0995e00, 0xc0995eff, REGISTRY_ARIN }, // 192.153.94.0 - 192.153.94.255 { 0xc0995f00, 0xc09972ff, REGISTRY_APNIC }, // 192.153.95.0 - 192.153.114.255 { 0xc0997300, 0xc09973ff, REGISTRY_ARIN }, // 192.153.115.0 - 192.153.115.255 { 0xc0997400, 0xc09974ff, REGISTRY_RIPENCC }, // 192.153.116.0 - 192.153.116.255 { 0xc0997500, 0xc09976ff, REGISTRY_ARIN }, // 192.153.117.0 - 192.153.118.255 { 0xc0997700, 0xc09978ff, REGISTRY_LACNIC }, // 192.153.119.0 - 192.153.120.255 { 0xc0997900, 0xc0997eff, REGISTRY_ARIN }, // 192.153.121.0 - 192.153.126.255 { 0xc0997f00, 0xc0997fff, REGISTRY_RIPENCC }, // 192.153.127.0 - 192.153.127.255 { 0xc0998000, 0xc09998ff, REGISTRY_ARIN }, // 192.153.128.0 - 192.153.152.255 { 0xc0999900, 0xc09999ff, REGISTRY_RIPENCC }, // 192.153.153.0 - 192.153.153.255 { 0xc0999a00, 0xc0999aff, REGISTRY_ARIN }, // 192.153.154.0 - 192.153.154.255 { 0xc0999b00, 0xc0999bff, REGISTRY_LACNIC }, // 192.153.155.0 - 192.153.155.255 { 0xc0999c00, 0xc0999dff, REGISTRY_ARIN }, // 192.153.156.0 - 192.153.157.255 { 0xc0999f00, 0xc099a5ff, REGISTRY_ARIN }, // 192.153.159.0 - 192.153.165.255 { 0xc099a600, 0xc099a6ff, REGISTRY_RIPENCC }, // 192.153.166.0 - 192.153.166.255 { 0xc099a700, 0xc099a7ff, REGISTRY_LACNIC }, // 192.153.167.0 - 192.153.167.255 { 0xc099a800, 0xc099a8ff, REGISTRY_RIPENCC }, // 192.153.168.0 - 192.153.168.255 { 0xc099a900, 0xc099aaff, REGISTRY_ARIN }, // 192.153.169.0 - 192.153.170.255 { 0xc099ab00, 0xc099abff, REGISTRY_RIPENCC }, // 192.153.171.0 - 192.153.171.255 { 0xc099ac00, 0xc099acff, REGISTRY_ARIN }, // 192.153.172.0 - 192.153.172.255 { 0xc099ad00, 0xc099b6ff, REGISTRY_RIPENCC }, // 192.153.173.0 - 192.153.182.255 { 0xc099b700, 0xc099bbff, REGISTRY_ARIN }, // 192.153.183.0 - 192.153.187.255 { 0xc099bc00, 0xc099bdff, REGISTRY_RIPENCC }, // 192.153.188.0 - 192.153.189.255 { 0xc099be00, 0xc099c1ff, REGISTRY_ARIN }, // 192.153.190.0 - 192.153.193.255 { 0xc099c200, 0xc099c2ff, REGISTRY_RIPENCC }, // 192.153.194.0 - 192.153.194.255 { 0xc099c300, 0xc099c3ff, REGISTRY_ARIN }, // 192.153.195.0 - 192.153.195.255 { 0xc099c600, 0xc099d4ff, REGISTRY_ARIN }, // 192.153.198.0 - 192.153.212.255 { 0xc099d500, 0xc099d5ff, REGISTRY_RIPENCC }, // 192.153.213.0 - 192.153.213.255 { 0xc099d600, 0xc099dcff, REGISTRY_ARIN }, // 192.153.214.0 - 192.153.220.255 { 0xc099dd00, 0xc099e4ff, REGISTRY_APNIC }, // 192.153.221.0 - 192.153.228.255 { 0xc099e500, 0xc099faff, REGISTRY_ARIN }, // 192.153.229.0 - 192.153.250.255 { 0xc099fb00, 0xc099fbff, REGISTRY_APNIC }, // 192.153.251.0 - 192.153.251.255 { 0xc099fc00, 0xc09a0fff, REGISTRY_ARIN }, // 192.153.252.0 - 192.154.15.255 { 0xc09a1000, 0xc09a19ff, REGISTRY_APNIC }, // 192.154.16.0 - 192.154.25.255 { 0xc09a1a00, 0xc09b00ff, REGISTRY_ARIN }, // 192.154.26.0 - 192.155.0.255 { 0xc09b0100, 0xc09b06ff, REGISTRY_RIPENCC }, // 192.155.1.0 - 192.155.6.255 { 0xc09b0700, 0xc09c83ff, REGISTRY_ARIN }, // 192.155.7.0 - 192.156.131.255 { 0xc09c8400, 0xc09c84ff, REGISTRY_RIPENCC }, // 192.156.132.0 - 192.156.132.255 { 0xc09c8500, 0xc09c8bff, REGISTRY_ARIN }, // 192.156.133.0 - 192.156.139.255 { 0xc09c8c00, 0xc09c8dff, REGISTRY_APNIC }, // 192.156.140.0 - 192.156.141.255 { 0xc09c8f00, 0xc09c97ff, REGISTRY_APNIC }, // 192.156.143.0 - 192.156.151.255 { 0xc09c9a00, 0xc09c9aff, REGISTRY_APNIC }, // 192.156.154.0 - 192.156.154.255 { 0xc09c9d00, 0xc09c9dff, REGISTRY_ARIN }, // 192.156.157.0 - 192.156.157.255 { 0xc09c9e00, 0xc09c9fff, REGISTRY_APNIC }, // 192.156.158.0 - 192.156.159.255 { 0xc09ca000, 0xc09ca1ff, REGISTRY_ARIN }, // 192.156.160.0 - 192.156.161.255 { 0xc09ca200, 0xc09ca2ff, REGISTRY_RIPENCC }, // 192.156.162.0 - 192.156.162.255 { 0xc09ca300, 0xc09ca4ff, REGISTRY_ARIN }, // 192.156.163.0 - 192.156.164.255 { 0xc09ca500, 0xc09ca5ff, REGISTRY_APNIC }, // 192.156.165.0 - 192.156.165.255 { 0xc09ca600, 0xc09ca6ff, REGISTRY_ARIN }, // 192.156.166.0 - 192.156.166.255 { 0xc09ca700, 0xc09ca7ff, REGISTRY_RIPENCC }, // 192.156.167.0 - 192.156.167.255 { 0xc09ca800, 0xc09cceff, REGISTRY_ARIN }, // 192.156.168.0 - 192.156.206.255 { 0xc09ccf00, 0xc09ccfff, REGISTRY_APNIC }, // 192.156.207.0 - 192.156.207.255 { 0xc09cd100, 0xc09cd1ff, REGISTRY_ARIN }, // 192.156.209.0 - 192.156.209.255 { 0xc09cd200, 0xc09cd2ff, REGISTRY_RIPENCC }, // 192.156.210.0 - 192.156.210.255 { 0xc09cd300, 0xc09cd4ff, REGISTRY_ARIN }, // 192.156.211.0 - 192.156.212.255 { 0xc09cd500, 0xc09cd5ff, REGISTRY_RIPENCC }, // 192.156.213.0 - 192.156.213.255 { 0xc09cd600, 0xc09cd8ff, REGISTRY_ARIN }, // 192.156.214.0 - 192.156.216.255 { 0xc09cd900, 0xc09cd9ff, REGISTRY_RIPENCC }, // 192.156.217.0 - 192.156.217.255 { 0xc09cda00, 0xc09cdbff, REGISTRY_ARIN }, // 192.156.218.0 - 192.156.219.255 { 0xc09cdc00, 0xc09cdcff, REGISTRY_APNIC }, // 192.156.220.0 - 192.156.220.255 { 0xc09cdd00, 0xc09ce0ff, REGISTRY_ARIN }, // 192.156.221.0 - 192.156.224.255 { 0xc09ce100, 0xc09ce1ff, REGISTRY_APNIC }, // 192.156.225.0 - 192.156.225.255 { 0xc09ce200, 0xc09ce2ff, REGISTRY_ARIN }, // 192.156.226.0 - 192.156.226.255 { 0xc09ce300, 0xc09ce3ff, REGISTRY_RIPENCC }, // 192.156.227.0 - 192.156.227.255 { 0xc09ce400, 0xc09ceeff, REGISTRY_ARIN }, // 192.156.228.0 - 192.156.238.255 { 0xc09cef00, 0xc09cefff, REGISTRY_RIPENCC }, // 192.156.239.0 - 192.156.239.255 { 0xc09cf000, 0xc09cf7ff, REGISTRY_ARIN }, // 192.156.240.0 - 192.156.247.255 { 0xc09cf800, 0xc09cf8ff, REGISTRY_RIPENCC }, // 192.156.248.0 - 192.156.248.255 { 0xc09cfa00, 0xc09d00ff, REGISTRY_ARIN }, // 192.156.250.0 - 192.157.0.255 { 0xc09d0100, 0xc09d03ff, REGISTRY_RIPENCC }, // 192.157.1.0 - 192.157.3.255 { 0xc09d0400, 0xc09d07ff, REGISTRY_ARIN }, // 192.157.4.0 - 192.157.7.255 { 0xc09d0800, 0xc09d11ff, REGISTRY_RIPENCC }, // 192.157.8.0 - 192.157.17.255 { 0xc09d1200, 0xc09d80ff, REGISTRY_ARIN }, // 192.157.18.0 - 192.157.128.255 { 0xc09d8100, 0xc09d81ff, REGISTRY_RIPENCC }, // 192.157.129.0 - 192.157.129.255 { 0xc09d8200, 0xc09da1ff, REGISTRY_ARIN }, // 192.157.130.0 - 192.157.161.255 { 0xc09da300, 0xc09da4ff, REGISTRY_ARIN }, // 192.157.163.0 - 192.157.164.255 { 0xc09da500, 0xc09dacff, REGISTRY_RIPENCC }, // 192.157.165.0 - 192.157.172.255 { 0xc09dad00, 0xc09dadff, REGISTRY_ARIN }, // 192.157.173.0 - 192.157.173.255 { 0xc09dae00, 0xc09daeff, REGISTRY_RIPENCC }, // 192.157.174.0 - 192.157.174.255 { 0xc09daf00, 0xc09dafff, REGISTRY_ARIN }, // 192.157.175.0 - 192.157.175.255 { 0xc09db000, 0xc09db0ff, REGISTRY_RIPENCC }, // 192.157.176.0 - 192.157.176.255 { 0xc09db100, 0xc09db8ff, REGISTRY_ARIN }, // 192.157.177.0 - 192.157.184.255 { 0xc09db900, 0xc09db9ff, REGISTRY_RIPENCC }, // 192.157.185.0 - 192.157.185.255 { 0xc09dba00, 0xc09dbaff, REGISTRY_ARIN }, // 192.157.186.0 - 192.157.186.255 { 0xc09dbb00, 0xc09dbbff, REGISTRY_RIPENCC }, // 192.157.187.0 - 192.157.187.255 { 0xc09dbc00, 0xc09dbcff, REGISTRY_ARIN }, // 192.157.188.0 - 192.157.188.255 { 0xc09dbd00, 0xc09dbdff, REGISTRY_RIPENCC }, // 192.157.189.0 - 192.157.189.255 { 0xc09dbe00, 0xc09dbeff, REGISTRY_AFRINIC }, // 192.157.190.0 - 192.157.190.255 { 0xc09dc000, 0xc09dffff, REGISTRY_RIPENCC }, // 192.157.192.0 - 192.157.255.255 { 0xc09e0000, 0xc09f09ff, REGISTRY_ARIN }, // 192.158.0.0 - 192.159.9.255 { 0xc09f0a00, 0xc09f0aff, REGISTRY_RIPENCC }, // 192.159.10.0 - 192.159.10.255 { 0xc09f0b00, 0xc09f0fff, REGISTRY_ARIN }, // 192.159.11.0 - 192.159.15.255 { 0xc09f1000, 0xc09f1eff, REGISTRY_APNIC }, // 192.159.16.0 - 192.159.30.255 { 0xc09f1f00, 0xc09f25ff, REGISTRY_ARIN }, // 192.159.31.0 - 192.159.37.255 { 0xc09f2600, 0xc09f27ff, REGISTRY_RIPENCC }, // 192.159.38.0 - 192.159.39.255 { 0xc09f2800, 0xc09f45ff, REGISTRY_ARIN }, // 192.159.40.0 - 192.159.69.255 { 0xc09f4600, 0xc09f46ff, REGISTRY_RIPENCC }, // 192.159.70.0 - 192.159.70.255 { 0xc09f4700, 0xc09f48ff, REGISTRY_ARIN }, // 192.159.71.0 - 192.159.72.255 { 0xc09f4900, 0xc09f49ff, REGISTRY_RIPENCC }, // 192.159.73.0 - 192.159.73.255 { 0xc09f4a00, 0xc09f4cff, REGISTRY_ARIN }, // 192.159.74.0 - 192.159.76.255 { 0xc09f4d00, 0xc09f4dff, REGISTRY_RIPENCC }, // 192.159.77.0 - 192.159.77.255 { 0xc09f4e00, 0xc09f53ff, REGISTRY_ARIN }, // 192.159.78.0 - 192.159.83.255 { 0xc09f5400, 0xc09f55ff, REGISTRY_RIPENCC }, // 192.159.84.0 - 192.159.85.255 { 0xc09f5600, 0xc09f59ff, REGISTRY_ARIN }, // 192.159.86.0 - 192.159.89.255 { 0xc09f5a00, 0xc09f5aff, REGISTRY_RIPENCC }, // 192.159.90.0 - 192.159.90.255 { 0xc09f5b00, 0xc09f5eff, REGISTRY_ARIN }, // 192.159.91.0 - 192.159.94.255 { 0xc09f5f00, 0xc09f5fff, REGISTRY_RIPENCC }, // 192.159.95.0 - 192.159.95.255 { 0xc09f6000, 0xc09f62ff, REGISTRY_ARIN }, // 192.159.96.0 - 192.159.98.255 { 0xc09f6300, 0xc09f67ff, REGISTRY_RIPENCC }, // 192.159.99.0 - 192.159.103.255 { 0xc09f6800, 0xc09f68ff, REGISTRY_ARIN }, // 192.159.104.0 - 192.159.104.255 { 0xc09f6900, 0xc09f69ff, REGISTRY_RIPENCC }, // 192.159.105.0 - 192.159.105.255 { 0xc09f6a00, 0xc09f6bff, REGISTRY_ARIN }, // 192.159.106.0 - 192.159.107.255 { 0xc09f6c00, 0xc09f6dff, REGISTRY_RIPENCC }, // 192.159.108.0 - 192.159.109.255 { 0xc09f6e00, 0xc09f73ff, REGISTRY_ARIN }, // 192.159.110.0 - 192.159.115.255 { 0xc09f7400, 0xc09f75ff, REGISTRY_LACNIC }, // 192.159.116.0 - 192.159.117.255 { 0xc09f7600, 0xc09f76ff, REGISTRY_RIPENCC }, // 192.159.118.0 - 192.159.118.255 { 0xc09f7700, 0xc09f78ff, REGISTRY_ARIN }, // 192.159.119.0 - 192.159.120.255 { 0xc09f7900, 0xc09f7aff, REGISTRY_RIPENCC }, // 192.159.121.0 - 192.159.122.255 { 0xc09f7b00, 0xc0a009ff, REGISTRY_ARIN }, // 192.159.123.0 - 192.160.9.255 { 0xc0a00b00, 0xc0a00eff, REGISTRY_ARIN }, // 192.160.11.0 - 192.160.14.255 { 0xc0a00f00, 0xc0a00fff, REGISTRY_RIPENCC }, // 192.160.15.0 - 192.160.15.255 { 0xc0a01000, 0xc0a010ff, REGISTRY_APNIC }, // 192.160.16.0 - 192.160.16.255 { 0xc0a01100, 0xc0a012ff, REGISTRY_ARIN }, // 192.160.17.0 - 192.160.18.255 { 0xc0a01300, 0xc0a013ff, REGISTRY_APNIC }, // 192.160.19.0 - 192.160.19.255 { 0xc0a01400, 0xc0a014ff, REGISTRY_ARIN }, // 192.160.20.0 - 192.160.20.255 { 0xc0a01500, 0xc0a017ff, REGISTRY_RIPENCC }, // 192.160.21.0 - 192.160.23.255 { 0xc0a01800, 0xc0a01aff, REGISTRY_ARIN }, // 192.160.24.0 - 192.160.26.255 { 0xc0a01b00, 0xc0a01bff, REGISTRY_RIPENCC }, // 192.160.27.0 - 192.160.27.255 { 0xc0a01c00, 0xc0a01cff, REGISTRY_ARIN }, // 192.160.28.0 - 192.160.28.255 { 0xc0a01e00, 0xc0a020ff, REGISTRY_ARIN }, // 192.160.30.0 - 192.160.32.255 { 0xc0a02100, 0xc0a021ff, REGISTRY_RIPENCC }, // 192.160.33.0 - 192.160.33.255 { 0xc0a02200, 0xc0a024ff, REGISTRY_ARIN }, // 192.160.34.0 - 192.160.36.255 { 0xc0a02500, 0xc0a025ff, REGISTRY_RIPENCC }, // 192.160.37.0 - 192.160.37.255 { 0xc0a02600, 0xc0a02cff, REGISTRY_ARIN }, // 192.160.38.0 - 192.160.44.255 { 0xc0a02d00, 0xc0a02dff, REGISTRY_LACNIC }, // 192.160.45.0 - 192.160.45.255 { 0xc0a02e00, 0xc0a031ff, REGISTRY_ARIN }, // 192.160.46.0 - 192.160.49.255 { 0xc0a03200, 0xc0a032ff, REGISTRY_LACNIC }, // 192.160.50.0 - 192.160.50.255 { 0xc0a03300, 0xc0a040ff, REGISTRY_ARIN }, // 192.160.51.0 - 192.160.64.255 { 0xc0a04100, 0xc0a041ff, REGISTRY_RIPENCC }, // 192.160.65.0 - 192.160.65.255 { 0xc0a04200, 0xc0a042ff, REGISTRY_ARIN }, // 192.160.66.0 - 192.160.66.255 { 0xc0a04300, 0xc0a043ff, REGISTRY_RIPENCC }, // 192.160.67.0 - 192.160.67.255 { 0xc0a04400, 0xc0a046ff, REGISTRY_ARIN }, // 192.160.68.0 - 192.160.70.255 { 0xc0a04700, 0xc0a047ff, REGISTRY_APNIC }, // 192.160.71.0 - 192.160.71.255 { 0xc0a04800, 0xc0a05eff, REGISTRY_ARIN }, // 192.160.72.0 - 192.160.94.255 { 0xc0a05f00, 0xc0a060ff, REGISTRY_RIPENCC }, // 192.160.95.0 - 192.160.96.255 { 0xc0a06100, 0xc0a069ff, REGISTRY_ARIN }, // 192.160.97.0 - 192.160.105.255 { 0xc0a06a00, 0xc0a06aff, REGISTRY_RIPENCC }, // 192.160.106.0 - 192.160.106.255 { 0xc0a06b00, 0xc0a06cff, REGISTRY_ARIN }, // 192.160.107.0 - 192.160.108.255 { 0xc0a06d00, 0xc0a06eff, REGISTRY_RIPENCC }, // 192.160.109.0 - 192.160.110.255 { 0xc0a06f00, 0xc0a06fff, REGISTRY_LACNIC }, // 192.160.111.0 - 192.160.111.255 { 0xc0a07000, 0xc0a07aff, REGISTRY_ARIN }, // 192.160.112.0 - 192.160.122.255 { 0xc0a07b00, 0xc0a07bff, REGISTRY_RIPENCC }, // 192.160.123.0 - 192.160.123.255 { 0xc0a07c00, 0xc0a07dff, REGISTRY_ARIN }, // 192.160.124.0 - 192.160.125.255 { 0xc0a07e00, 0xc0a07eff, REGISTRY_RIPENCC }, // 192.160.126.0 - 192.160.126.255 { 0xc0a07f00, 0xc0a07fff, REGISTRY_ARIN }, // 192.160.127.0 - 192.160.127.255 { 0xc0a08000, 0xc0a080ff, REGISTRY_LACNIC }, // 192.160.128.0 - 192.160.128.255 { 0xc0a08100, 0xc0a08dff, REGISTRY_ARIN }, // 192.160.129.0 - 192.160.141.255 { 0xc0a08e00, 0xc0a08fff, REGISTRY_RIPENCC }, // 192.160.142.0 - 192.160.143.255 { 0xc0a09000, 0xc0a097ff, REGISTRY_ARIN }, // 192.160.144.0 - 192.160.151.255 { 0xc0a09800, 0xc0a098ff, REGISTRY_RIPENCC }, // 192.160.152.0 - 192.160.152.255 { 0xc0a09900, 0xc0a09aff, REGISTRY_ARIN }, // 192.160.153.0 - 192.160.154.255 { 0xc0a09c00, 0xc0a09cff, REGISTRY_RIPENCC }, // 192.160.156.0 - 192.160.156.255 { 0xc0a09d00, 0xc0a09fff, REGISTRY_ARIN }, // 192.160.157.0 - 192.160.159.255 { 0xc0a0a000, 0xc0a0a0ff, REGISTRY_RIPENCC }, // 192.160.160.0 - 192.160.160.255 { 0xc0a0a100, 0xc0a0a1ff, REGISTRY_APNIC }, // 192.160.161.0 - 192.160.161.255 { 0xc0a0a200, 0xc0a0a8ff, REGISTRY_ARIN }, // 192.160.162.0 - 192.160.168.255 { 0xc0a0a900, 0xc0a0abff, REGISTRY_APNIC }, // 192.160.169.0 - 192.160.171.255 { 0xc0a0ac00, 0xc0a0acff, REGISTRY_RIPENCC }, // 192.160.172.0 - 192.160.172.255 { 0xc0a0ad00, 0xc0a0b0ff, REGISTRY_ARIN }, // 192.160.173.0 - 192.160.176.255 { 0xc0a0b100, 0xc0a0b3ff, REGISTRY_RIPENCC }, // 192.160.177.0 - 192.160.179.255 { 0xc0a0b400, 0xc0a0bbff, REGISTRY_ARIN }, // 192.160.180.0 - 192.160.187.255 { 0xc0a0bc00, 0xc0a0bcff, REGISTRY_LACNIC }, // 192.160.188.0 - 192.160.188.255 { 0xc0a0bd00, 0xc0a0c1ff, REGISTRY_ARIN }, // 192.160.189.0 - 192.160.193.255 { 0xc0a0c200, 0xc0a0c3ff, REGISTRY_RIPENCC }, // 192.160.194.0 - 192.160.195.255 { 0xc0a0c400, 0xc0a0ccff, REGISTRY_ARIN }, // 192.160.196.0 - 192.160.204.255 { 0xc0a0cd00, 0xc0a0cdff, REGISTRY_APNIC }, // 192.160.205.0 - 192.160.205.255 { 0xc0a0ce00, 0xc0a0dfff, REGISTRY_ARIN }, // 192.160.206.0 - 192.160.223.255 { 0xc0a0e000, 0xc0a0e1ff, REGISTRY_RIPENCC }, // 192.160.224.0 - 192.160.225.255 { 0xc0a0e300, 0xc0a0e4ff, REGISTRY_ARIN }, // 192.160.227.0 - 192.160.228.255 { 0xc0a0e600, 0xc0a0e6ff, REGISTRY_ARIN }, // 192.160.230.0 - 192.160.230.255 { 0xc0a0e700, 0xc0a0e9ff, REGISTRY_RIPENCC }, // 192.160.231.0 - 192.160.233.255 { 0xc0a0ea00, 0xc0a0f4ff, REGISTRY_ARIN }, // 192.160.234.0 - 192.160.244.255 { 0xc0a0f500, 0xc0a0f9ff, REGISTRY_RIPENCC }, // 192.160.245.0 - 192.160.249.255 { 0xc0a0fa00, 0xc0a0faff, REGISTRY_ARIN }, // 192.160.250.0 - 192.160.250.255 { 0xc0a0fb00, 0xc0a0fcff, REGISTRY_RIPENCC }, // 192.160.251.0 - 192.160.252.255 { 0xc0a0fd00, 0xc0a105ff, REGISTRY_ARIN }, // 192.160.253.0 - 192.161.5.255 { 0xc0a10600, 0xc0a107ff, REGISTRY_RIPENCC }, // 192.161.6.0 - 192.161.7.255 { 0xc0a10800, 0xc0a13fff, REGISTRY_ARIN }, // 192.161.8.0 - 192.161.63.255 { 0xc0a14000, 0xc0a141ff, REGISTRY_RIPENCC }, // 192.161.64.0 - 192.161.65.255 { 0xc0a14200, 0xc0a17fff, REGISTRY_ARIN }, // 192.161.66.0 - 192.161.127.255 { 0xc0a18000, 0xc0a181ff, REGISTRY_APNIC }, // 192.161.128.0 - 192.161.129.255 { 0xc0a18200, 0xc0a1ffff, REGISTRY_ARIN }, // 192.161.130.0 - 192.161.255.255 { 0xc0a20000, 0xc0a217ff, REGISTRY_RIPENCC }, // 192.162.0.0 - 192.162.23.255 { 0xc0a21800, 0xc0a21bff, REGISTRY_RIPENCC }, // 192.162.24.0 - 192.162.27.255 { 0xc0a21c00, 0xc0a23fff, REGISTRY_RIPENCC }, // 192.162.28.0 - 192.162.63.255 { 0xc0a24000, 0xc0a243ff, REGISTRY_RIPENCC }, // 192.162.64.0 - 192.162.67.255 { 0xc0a24400, 0xc0a263ff, REGISTRY_RIPENCC }, // 192.162.68.0 - 192.162.99.255 { 0xc0a26400, 0xc0a267ff, REGISTRY_RIPENCC }, // 192.162.100.0 - 192.162.103.255 { 0xc0a26800, 0xc0a29bff, REGISTRY_RIPENCC }, // 192.162.104.0 - 192.162.155.255 { 0xc0a29c00, 0xc0a29fff, REGISTRY_RIPENCC }, // 192.162.156.0 - 192.162.159.255 { 0xc0a2a000, 0xc0a2b7ff, REGISTRY_RIPENCC }, // 192.162.160.0 - 192.162.183.255 { 0xc0a2b800, 0xc0a2bbff, REGISTRY_RIPENCC }, // 192.162.184.0 - 192.162.187.255 { 0xc0a2bc00, 0xc0a2c3ff, REGISTRY_RIPENCC }, // 192.162.188.0 - 192.162.195.255 { 0xc0a2c400, 0xc0a2c7ff, REGISTRY_RIPENCC }, // 192.162.196.0 - 192.162.199.255 { 0xc0a2c800, 0xc0a2cbff, REGISTRY_RIPENCC }, // 192.162.200.0 - 192.162.203.255 { 0xc0a2cc00, 0xc0a2cfff, REGISTRY_RIPENCC }, // 192.162.204.0 - 192.162.207.255 { 0xc0a2d000, 0xc0a2ffff, REGISTRY_RIPENCC }, // 192.162.208.0 - 192.162.255.255 { 0xc0a30000, 0xc0a31fff, REGISTRY_ARIN }, // 192.163.0.0 - 192.163.31.255 { 0xc0a32000, 0xc0a39fff, REGISTRY_RIPENCC }, // 192.163.32.0 - 192.163.159.255 { 0xc0a3a000, 0xc0a3ffff, REGISTRY_ARIN }, // 192.163.160.0 - 192.163.255.255 { 0xc0a40000, 0xc0a425ff, REGISTRY_RIPENCC }, // 192.164.0.0 - 192.164.37.255 { 0xc0a42600, 0xc0a426ff, REGISTRY_RIPENCC }, // 192.164.38.0 - 192.164.38.255 { 0xc0a42700, 0xc0a447ff, REGISTRY_RIPENCC }, // 192.164.39.0 - 192.164.71.255 { 0xc0a44800, 0xc0a44fff, REGISTRY_RIPENCC }, // 192.164.72.0 - 192.164.79.255 { 0xc0a45000, 0xc0a49fff, REGISTRY_RIPENCC }, // 192.164.80.0 - 192.164.159.255 { 0xc0a4a000, 0xc0a4cfff, REGISTRY_RIPENCC }, // 192.164.160.0 - 192.164.207.255 { 0xc0a4d000, 0xc0a5ffff, REGISTRY_RIPENCC }, // 192.164.208.0 - 192.165.255.255 { 0xc0a60000, 0xc0a607ff, REGISTRY_RIPENCC }, // 192.166.0.0 - 192.166.7.255 { 0xc0a60800, 0xc0a60bff, REGISTRY_RIPENCC }, // 192.166.8.0 - 192.166.11.255 { 0xc0a60c00, 0xc0a61fff, REGISTRY_RIPENCC }, // 192.166.12.0 - 192.166.31.255 { 0xc0a62000, 0xc0a62fff, REGISTRY_RIPENCC }, // 192.166.32.0 - 192.166.47.255 { 0xc0a63000, 0xc0a650ff, REGISTRY_RIPENCC }, // 192.166.48.0 - 192.166.80.255 { 0xc0a65100, 0xc0a653ff, REGISTRY_RIPENCC }, // 192.166.81.0 - 192.166.83.255 { 0xc0a65400, 0xc0a65fff, REGISTRY_RIPENCC }, // 192.166.84.0 - 192.166.95.255 { 0xc0a66000, 0xc0a667ff, REGISTRY_RIPENCC }, // 192.166.96.0 - 192.166.103.255 { 0xc0a66800, 0xc0a671ff, REGISTRY_RIPENCC }, // 192.166.104.0 - 192.166.113.255 { 0xc0a67200, 0xc0a673ff, REGISTRY_RIPENCC }, // 192.166.114.0 - 192.166.115.255 { 0xc0a67400, 0xc0a698ff, REGISTRY_RIPENCC }, // 192.166.116.0 - 192.166.152.255 { 0xc0a69900, 0xc0a69dff, REGISTRY_RIPENCC }, // 192.166.153.0 - 192.166.157.255 { 0xc0a69e00, 0xc0a6cbff, REGISTRY_RIPENCC }, // 192.166.158.0 - 192.166.203.255 { 0xc0a6cc00, 0xc0a6d7ff, REGISTRY_RIPENCC }, // 192.166.204.0 - 192.166.215.255 { 0xc0a6d800, 0xc0a6dbff, REGISTRY_RIPENCC }, // 192.166.216.0 - 192.166.219.255 { 0xc0a6dc00, 0xc0a6e7ff, REGISTRY_RIPENCC }, // 192.166.220.0 - 192.166.231.255 { 0xc0a6e800, 0xc0a6efff, REGISTRY_RIPENCC }, // 192.166.232.0 - 192.166.239.255 { 0xc0a6f000, 0xc0a6fcff, REGISTRY_RIPENCC }, // 192.166.240.0 - 192.166.252.255 { 0xc0a6fd00, 0xc0a6ffff, REGISTRY_RIPENCC }, // 192.166.253.0 - 192.166.255.255 { 0xc0a70000, 0xc0a7ffff, REGISTRY_RIPENCC }, // 192.167.0.0 - 192.167.255.255 { 0xc0a90000, 0xc0a91fff, REGISTRY_ARIN }, // 192.169.0.0 - 192.169.31.255 { 0xc0a92000, 0xc0a929ff, REGISTRY_APNIC }, // 192.169.32.0 - 192.169.41.255 { 0xc0a92a00, 0xc0a95fff, REGISTRY_ARIN }, // 192.169.42.0 - 192.169.95.255 { 0xc0a96000, 0xc0a97fff, REGISTRY_RIPENCC }, // 192.169.96.0 - 192.169.127.255 { 0xc0a98000, 0xc0ab00ff, REGISTRY_ARIN }, // 192.169.128.0 - 192.171.0.255 { 0xc0ab0100, 0xc0ab05ff, REGISTRY_RIPENCC }, // 192.171.1.0 - 192.171.5.255 { 0xc0ab0600, 0xc0ab67ff, REGISTRY_ARIN }, // 192.171.6.0 - 192.171.103.255 { 0xc0ab6800, 0xc0ab6fff, REGISTRY_APNIC }, // 192.171.104.0 - 192.171.111.255 { 0xc0ab7000, 0xc0ab7fff, REGISTRY_ARIN }, // 192.171.112.0 - 192.171.127.255 { 0xc0ab8000, 0xc0abc7ff, REGISTRY_RIPENCC }, // 192.171.128.0 - 192.171.199.255 { 0xc0abc800, 0xc0ace2ff, REGISTRY_ARIN }, // 192.171.200.0 - 192.172.226.255 { 0xc0ace300, 0xc0ace7ff, REGISTRY_APNIC }, // 192.172.227.0 - 192.172.231.255 { 0xc0ace800, 0xc0ace8ff, REGISTRY_RIPENCC }, // 192.172.232.0 - 192.172.232.255 { 0xc0ace900, 0xc0ace9ff, REGISTRY_ARIN }, // 192.172.233.0 - 192.172.233.255 { 0xc0acea00, 0xc0acedff, REGISTRY_APNIC }, // 192.172.234.0 - 192.172.237.255 { 0xc0acf000, 0xc0acf0ff, REGISTRY_ARIN }, // 192.172.240.0 - 192.172.240.255 { 0xc0acf100, 0xc0acf3ff, REGISTRY_APNIC }, // 192.172.241.0 - 192.172.243.255 { 0xc0acf400, 0xc0acf4ff, REGISTRY_ARIN }, // 192.172.244.0 - 192.172.244.255 { 0xc0acf700, 0xc0acfcff, REGISTRY_ARIN }, // 192.172.247.0 - 192.172.252.255 { 0xc0acfd00, 0xc0acfdff, REGISTRY_RIPENCC }, // 192.172.253.0 - 192.172.253.255 { 0xc0acfe00, 0xc0ad00ff, REGISTRY_ARIN }, // 192.172.254.0 - 192.173.0.255 { 0xc0ad0100, 0xc0ad04ff, REGISTRY_RIPENCC }, // 192.173.1.0 - 192.173.4.255 { 0xc0ad0500, 0xc0ad0fff, REGISTRY_ARIN }, // 192.173.5.0 - 192.173.15.255 { 0xc0ad1000, 0xc0ad18ff, REGISTRY_APNIC }, // 192.173.16.0 - 192.173.24.255 { 0xc0ad1900, 0xc0ad7fff, REGISTRY_ARIN }, // 192.173.25.0 - 192.173.127.255 { 0xc0ad8000, 0xc0ad87ff, REGISTRY_RIPENCC }, // 192.173.128.0 - 192.173.135.255 { 0xc0ad8800, 0xc0ae3fff, REGISTRY_ARIN }, // 192.173.136.0 - 192.174.63.255 { 0xc0ae4000, 0xc0ae44ff, REGISTRY_RIPENCC }, // 192.174.64.0 - 192.174.68.255 { 0xc0ae4500, 0xc0ae7fff, REGISTRY_ARIN }, // 192.174.69.0 - 192.174.127.255 { 0xc0ae8000, 0xc0aeffff, REGISTRY_APNIC }, // 192.174.128.0 - 192.174.255.255 { 0xc0af0000, 0xc0af00ff, REGISTRY_ARIN }, // 192.175.0.0 - 192.175.0.255 { 0xc0af0100, 0xc0af02ff, REGISTRY_RIPENCC }, // 192.175.1.0 - 192.175.2.255 { 0xc0af0300, 0xc0af0dff, REGISTRY_ARIN }, // 192.175.3.0 - 192.175.13.255 { 0xc0af0e00, 0xc0af0fff, REGISTRY_RIPENCC }, // 192.175.14.0 - 192.175.15.255 { 0xc0af1000, 0xc0af1fff, REGISTRY_ARIN }, // 192.175.16.0 - 192.175.31.255 { 0xc0af2000, 0xc0af20ff, REGISTRY_RIPENCC }, // 192.175.32.0 - 192.175.32.255 { 0xc0af2100, 0xc0af27ff, REGISTRY_RIPENCC }, // 192.175.33.0 - 192.175.39.255 { 0xc0af2800, 0xc0af2bff, REGISTRY_RIPENCC }, // 192.175.40.0 - 192.175.43.255 { 0xc0af2c00, 0xc0af2cff, REGISTRY_RIPENCC }, // 192.175.44.0 - 192.175.44.255 { 0xc0af2d00, 0xc0af2dff, REGISTRY_RIPENCC }, // 192.175.45.0 - 192.175.45.255 { 0xc0af2e00, 0xc0af2fff, REGISTRY_RIPENCC }, // 192.175.46.0 - 192.175.47.255 { 0xc0af3000, 0xc0afffff, REGISTRY_ARIN }, // 192.175.48.0 - 192.175.255.255 { 0xc0b00000, 0xc0b0ffff, REGISTRY_RIPENCC }, // 192.176.0.0 - 192.176.255.255 { 0xc0b10000, 0xc0bb0fff, REGISTRY_ARIN }, // 192.177.0.0 - 192.187.15.255 { 0xc0bb1000, 0xc0bb17ff, REGISTRY_RIPENCC }, // 192.187.16.0 - 192.187.23.255 { 0xc0bb1800, 0xc0bb19ff, REGISTRY_RIPENCC }, // 192.187.24.0 - 192.187.25.255 { 0xc0bb1a00, 0xc0bc09ff, REGISTRY_ARIN }, // 192.187.26.0 - 192.188.9.255 { 0xc0bc0a00, 0xc0bc0aff, REGISTRY_RIPENCC }, // 192.188.10.0 - 192.188.10.255 { 0xc0bc0b00, 0xc0bc0bff, REGISTRY_LACNIC }, // 192.188.11.0 - 192.188.11.255 { 0xc0bc0c00, 0xc0bc2aff, REGISTRY_ARIN }, // 192.188.12.0 - 192.188.42.255 { 0xc0bc2b00, 0xc0bc2bff, REGISTRY_APNIC }, // 192.188.43.0 - 192.188.43.255 { 0xc0bc2c00, 0xc0bc3cff, REGISTRY_LACNIC }, // 192.188.44.0 - 192.188.60.255 { 0xc0bc3d00, 0xc0bc3eff, REGISTRY_ARIN }, // 192.188.61.0 - 192.188.62.255 { 0xc0bc3f00, 0xc0bc41ff, REGISTRY_RIPENCC }, // 192.188.63.0 - 192.188.65.255 { 0xc0bc4200, 0xc0bc44ff, REGISTRY_ARIN }, // 192.188.66.0 - 192.188.68.255 { 0xc0bc4500, 0xc0bc45ff, REGISTRY_RIPENCC }, // 192.188.69.0 - 192.188.69.255 { 0xc0bc4600, 0xc0bc46ff, REGISTRY_ARIN }, // 192.188.70.0 - 192.188.70.255 { 0xc0bc4700, 0xc0bc47ff, REGISTRY_APNIC }, // 192.188.71.0 - 192.188.71.255 { 0xc0bc4800, 0xc0bc48ff, REGISTRY_ARIN }, // 192.188.72.0 - 192.188.72.255 { 0xc0bc4900, 0xc0bc4fff, REGISTRY_APNIC }, // 192.188.73.0 - 192.188.79.255 { 0xc0bc5100, 0xc0bc51ff, REGISTRY_ARIN }, // 192.188.81.0 - 192.188.81.255 { 0xc0bc5200, 0xc0bc53ff, REGISTRY_APNIC }, // 192.188.82.0 - 192.188.83.255 { 0xc0bc5400, 0xc0bc54ff, REGISTRY_ARIN }, // 192.188.84.0 - 192.188.84.255 { 0xc0bc5800, 0xc0bc58ff, REGISTRY_ARIN }, // 192.188.88.0 - 192.188.88.255 { 0xc0bc5b00, 0xc0bc5bff, REGISTRY_ARIN }, // 192.188.91.0 - 192.188.91.255 { 0xc0bc5c00, 0xc0bc5cff, REGISTRY_APNIC }, // 192.188.92.0 - 192.188.92.255 { 0xc0bc5d00, 0xc0bc5fff, REGISTRY_ARIN }, // 192.188.93.0 - 192.188.95.255 { 0xc0bc6000, 0xc0bc60ff, REGISTRY_RIPENCC }, // 192.188.96.0 - 192.188.96.255 { 0xc0bc6100, 0xc0bc64ff, REGISTRY_ARIN }, // 192.188.97.0 - 192.188.100.255 { 0xc0bc6500, 0xc0bc65ff, REGISTRY_APNIC }, // 192.188.101.0 - 192.188.101.255 { 0xc0bc6600, 0xc0bc68ff, REGISTRY_ARIN }, // 192.188.102.0 - 192.188.104.255 { 0xc0bc6900, 0xc0bc69ff, REGISTRY_RIPENCC }, // 192.188.105.0 - 192.188.105.255 { 0xc0bc6a00, 0xc0bc6aff, REGISTRY_ARIN }, // 192.188.106.0 - 192.188.106.255 { 0xc0bc6b00, 0xc0bc6bff, REGISTRY_APNIC }, // 192.188.107.0 - 192.188.107.255 { 0xc0bc6c00, 0xc0bc72ff, REGISTRY_ARIN }, // 192.188.108.0 - 192.188.114.255 { 0xc0bc7300, 0xc0bc73ff, REGISTRY_APNIC }, // 192.188.115.0 - 192.188.115.255 { 0xc0bc7400, 0xc0bc75ff, REGISTRY_RIPENCC }, // 192.188.116.0 - 192.188.117.255 { 0xc0bc7600, 0xc0bc78ff, REGISTRY_ARIN }, // 192.188.118.0 - 192.188.120.255 { 0xc0bc7900, 0xc0bc7aff, REGISTRY_RIPENCC }, // 192.188.121.0 - 192.188.122.255 { 0xc0bc7b00, 0xc0bc7cff, REGISTRY_ARIN }, // 192.188.123.0 - 192.188.124.255 { 0xc0bc7d00, 0xc0bc7dff, REGISTRY_RIPENCC }, // 192.188.125.0 - 192.188.125.255 { 0xc0bc7e00, 0xc0bc7eff, REGISTRY_ARIN }, // 192.188.126.0 - 192.188.126.255 { 0xc0bc7f00, 0xc0bc7fff, REGISTRY_RIPENCC }, // 192.188.127.0 - 192.188.127.255 { 0xc0bc8100, 0xc0bc81ff, REGISTRY_RIPENCC }, // 192.188.129.0 - 192.188.129.255 { 0xc0bc8200, 0xc0bc83ff, REGISTRY_ARIN }, // 192.188.130.0 - 192.188.131.255 { 0xc0bc8400, 0xc0bc84ff, REGISTRY_RIPENCC }, // 192.188.132.0 - 192.188.132.255 { 0xc0bc8500, 0xc0bc87ff, REGISTRY_ARIN }, // 192.188.133.0 - 192.188.135.255 { 0xc0bc8800, 0xc0bc88ff, REGISTRY_RIPENCC }, // 192.188.136.0 - 192.188.136.255 { 0xc0bc8900, 0xc0bc90ff, REGISTRY_ARIN }, // 192.188.137.0 - 192.188.144.255 { 0xc0bc9100, 0xc0bc91ff, REGISTRY_RIPENCC }, // 192.188.145.0 - 192.188.145.255 { 0xc0bc9200, 0xc0bc96ff, REGISTRY_ARIN }, // 192.188.146.0 - 192.188.150.255 { 0xc0bc9700, 0xc0bc97ff, REGISTRY_APNIC }, // 192.188.151.0 - 192.188.151.255 { 0xc0bc9800, 0xc0bc9cff, REGISTRY_ARIN }, // 192.188.152.0 - 192.188.156.255 { 0xc0bc9d00, 0xc0bc9eff, REGISTRY_RIPENCC }, // 192.188.157.0 - 192.188.158.255 { 0xc0bc9f00, 0xc0bca3ff, REGISTRY_ARIN }, // 192.188.159.0 - 192.188.163.255 { 0xc0bca400, 0xc0bca7ff, REGISTRY_AFRINIC }, // 192.188.164.0 - 192.188.167.255 { 0xc0bca800, 0xc0bca9ff, REGISTRY_ARIN }, // 192.188.168.0 - 192.188.169.255 { 0xc0bcaa00, 0xc0bcacff, REGISTRY_APNIC }, // 192.188.170.0 - 192.188.172.255 { 0xc0bcad00, 0xc0bcadff, REGISTRY_ARIN }, // 192.188.173.0 - 192.188.173.255 { 0xc0bcae00, 0xc0bcafff, REGISTRY_APNIC }, // 192.188.174.0 - 192.188.175.255 { 0xc0bcb000, 0xc0bcb8ff, REGISTRY_ARIN }, // 192.188.176.0 - 192.188.184.255 { 0xc0bcb900, 0xc0bcbaff, REGISTRY_APNIC }, // 192.188.185.0 - 192.188.186.255 { 0xc0bcbb00, 0xc0bcbbff, REGISTRY_RIPENCC }, // 192.188.187.0 - 192.188.187.255 { 0xc0bcbc00, 0xc0bcbcff, REGISTRY_ARIN }, // 192.188.188.0 - 192.188.188.255 { 0xc0bcbd00, 0xc0bcbdff, REGISTRY_RIPENCC }, // 192.188.189.0 - 192.188.189.255 { 0xc0bcbe00, 0xc0bcc1ff, REGISTRY_ARIN }, // 192.188.190.0 - 192.188.193.255 { 0xc0bcc200, 0xc0bcc5ff, REGISTRY_LACNIC }, // 192.188.194.0 - 192.188.197.255 { 0xc0bcc600, 0xc0bce8ff, REGISTRY_ARIN }, // 192.188.198.0 - 192.188.232.255 { 0xc0bce900, 0xc0bcedff, REGISTRY_RIPENCC }, // 192.188.233.0 - 192.188.237.255 { 0xc0bcee00, 0xc0bcf0ff, REGISTRY_ARIN }, // 192.188.238.0 - 192.188.240.255 { 0xc0bcf100, 0xc0bcf1ff, REGISTRY_APNIC }, // 192.188.241.0 - 192.188.241.255 { 0xc0bcf200, 0xc0bcf7ff, REGISTRY_RIPENCC }, // 192.188.242.0 - 192.188.247.255 { 0xc0bcf800, 0xc0bcf8ff, REGISTRY_RIPENCC }, // 192.188.248.0 - 192.188.248.255 { 0xc0bcf900, 0xc0bd00ff, REGISTRY_ARIN }, // 192.188.249.0 - 192.189.0.255 { 0xc0bd0100, 0xc0bd01ff, REGISTRY_RIPENCC }, // 192.189.1.0 - 192.189.1.255 { 0xc0bd0200, 0xc0bd07ff, REGISTRY_ARIN }, // 192.189.2.0 - 192.189.7.255 { 0xc0bd0800, 0xc0bd0bff, REGISTRY_RIPENCC }, // 192.189.8.0 - 192.189.11.255 { 0xc0bd0c00, 0xc0bd0dff, REGISTRY_ARIN }, // 192.189.12.0 - 192.189.13.255 { 0xc0bd0e00, 0xc0bd0eff, REGISTRY_RIPENCC }, // 192.189.14.0 - 192.189.14.255 { 0xc0bd0f00, 0xc0bd16ff, REGISTRY_ARIN }, // 192.189.15.0 - 192.189.22.255 { 0xc0bd1700, 0xc0bd17ff, REGISTRY_RIPENCC }, // 192.189.23.0 - 192.189.23.255 { 0xc0bd1900, 0xc0bd21ff, REGISTRY_ARIN }, // 192.189.25.0 - 192.189.33.255 { 0xc0bd2200, 0xc0bd22ff, REGISTRY_APNIC }, // 192.189.34.0 - 192.189.34.255 { 0xc0bd2300, 0xc0bd28ff, REGISTRY_ARIN }, // 192.189.35.0 - 192.189.40.255 { 0xc0bd2900, 0xc0bd29ff, REGISTRY_RIPENCC }, // 192.189.41.0 - 192.189.41.255 { 0xc0bd2a00, 0xc0bd32ff, REGISTRY_ARIN }, // 192.189.42.0 - 192.189.50.255 { 0xc0bd3300, 0xc0bd34ff, REGISTRY_RIPENCC }, // 192.189.51.0 - 192.189.52.255 { 0xc0bd3500, 0xc0bd35ff, REGISTRY_ARIN }, // 192.189.53.0 - 192.189.53.255 { 0xc0bd3600, 0xc0bd36ff, REGISTRY_APNIC }, // 192.189.54.0 - 192.189.54.255 { 0xc0bd3700, 0xc0bd37ff, REGISTRY_RIPENCC }, // 192.189.55.0 - 192.189.55.255 { 0xc0bd3800, 0xc0bd41ff, REGISTRY_ARIN }, // 192.189.56.0 - 192.189.65.255 { 0xc0bd4200, 0xc0bd42ff, REGISTRY_RIPENCC }, // 192.189.66.0 - 192.189.66.255 { 0xc0bd4300, 0xc0bd44ff, REGISTRY_ARIN }, // 192.189.67.0 - 192.189.68.255 { 0xc0bd4500, 0xc0bd46ff, REGISTRY_RIPENCC }, // 192.189.69.0 - 192.189.70.255 { 0xc0bd4700, 0xc0bd48ff, REGISTRY_ARIN }, // 192.189.71.0 - 192.189.72.255 { 0xc0bd4900, 0xc0bd49ff, REGISTRY_RIPENCC }, // 192.189.73.0 - 192.189.73.255 { 0xc0bd4a00, 0xc0bd4aff, REGISTRY_ARIN }, // 192.189.74.0 - 192.189.74.255 { 0xc0bd4b00, 0xc0bd4bff, REGISTRY_AFRINIC }, // 192.189.75.0 - 192.189.75.255 { 0xc0bd4c00, 0xc0bd4cff, REGISTRY_RIPENCC }, // 192.189.76.0 - 192.189.76.255 { 0xc0bd4d00, 0xc0bd5dff, REGISTRY_ARIN }, // 192.189.77.0 - 192.189.93.255 { 0xc0bd5f00, 0xc0bd76ff, REGISTRY_ARIN }, // 192.189.95.0 - 192.189.118.255 { 0xc0bd7700, 0xc0bd77ff, REGISTRY_RIPENCC }, // 192.189.119.0 - 192.189.119.255 { 0xc0bd7800, 0xc0bd87ff, REGISTRY_ARIN }, // 192.189.120.0 - 192.189.135.255 { 0xc0bd8900, 0xc0bd8aff, REGISTRY_ARIN }, // 192.189.137.0 - 192.189.138.255 { 0xc0bd8b00, 0xc0bd8cff, REGISTRY_AFRINIC }, // 192.189.139.0 - 192.189.140.255 { 0xc0bd8d00, 0xc0bd93ff, REGISTRY_ARIN }, // 192.189.141.0 - 192.189.147.255 { 0xc0bd9400, 0xc0bd94ff, REGISTRY_APNIC }, // 192.189.148.0 - 192.189.148.255 { 0xc0bd9500, 0xc0bd96ff, REGISTRY_ARIN }, // 192.189.149.0 - 192.189.150.255 { 0xc0bd9700, 0xc0bd97ff, REGISTRY_RIPENCC }, // 192.189.151.0 - 192.189.151.255 { 0xc0bd9800, 0xc0bd99ff, REGISTRY_ARIN }, // 192.189.152.0 - 192.189.153.255 { 0xc0bd9a00, 0xc0bd9aff, REGISTRY_RIPENCC }, // 192.189.154.0 - 192.189.154.255 { 0xc0bd9b00, 0xc0bd9cff, REGISTRY_ARIN }, // 192.189.155.0 - 192.189.156.255 { 0xc0bd9d00, 0xc0bd9dff, REGISTRY_RIPENCC }, // 192.189.157.0 - 192.189.157.255 { 0xc0bd9e00, 0xc0bd9eff, REGISTRY_ARIN }, // 192.189.158.0 - 192.189.158.255 { 0xc0bd9f00, 0xc0bd9fff, REGISTRY_APNIC }, // 192.189.159.0 - 192.189.159.255 { 0xc0bda000, 0xc0bda0ff, REGISTRY_RIPENCC }, // 192.189.160.0 - 192.189.160.255 { 0xc0bda100, 0xc0bda5ff, REGISTRY_ARIN }, // 192.189.161.0 - 192.189.165.255 { 0xc0bda600, 0xc0bdaaff, REGISTRY_RIPENCC }, // 192.189.166.0 - 192.189.170.255 { 0xc0bdab00, 0xc0bdc9ff, REGISTRY_ARIN }, // 192.189.171.0 - 192.189.201.255 { 0xc0bdca00, 0xc0bdcbff, REGISTRY_RIPENCC }, // 192.189.202.0 - 192.189.203.255 { 0xc0bdcc00, 0xc0bdcfff, REGISTRY_ARIN }, // 192.189.204.0 - 192.189.207.255 { 0xc0bdd000, 0xc0bdd3ff, REGISTRY_APNIC }, // 192.189.208.0 - 192.189.211.255 { 0xc0bdd400, 0xc0bddeff, REGISTRY_ARIN }, // 192.189.212.0 - 192.189.222.255 { 0xc0bddf00, 0xc0bddfff, REGISTRY_APNIC }, // 192.189.223.0 - 192.189.223.255 { 0xc0bde000, 0xc0bde4ff, REGISTRY_ARIN }, // 192.189.224.0 - 192.189.228.255 { 0xc0bde500, 0xc0bde5ff, REGISTRY_APNIC }, // 192.189.229.0 - 192.189.229.255 { 0xc0bdea00, 0xc0bdfaff, REGISTRY_ARIN }, // 192.189.234.0 - 192.189.250.255 { 0xc0bdfb00, 0xc0bdfbff, REGISTRY_RIPENCC }, // 192.189.251.0 - 192.189.251.255 { 0xc0bdfc00, 0xc0be1dff, REGISTRY_ARIN }, // 192.189.252.0 - 192.190.29.255 { 0xc0be1e00, 0xc0be1fff, REGISTRY_LACNIC }, // 192.190.30.0 - 192.190.31.255 { 0xc0be2000, 0xc0be2bff, REGISTRY_ARIN }, // 192.190.32.0 - 192.190.43.255 { 0xc0be2c00, 0xc0be2cff, REGISTRY_RIPENCC }, // 192.190.44.0 - 192.190.44.255 { 0xc0be2d00, 0xc0be39ff, REGISTRY_ARIN }, // 192.190.45.0 - 192.190.57.255 { 0xc0be3a00, 0xc0be3bff, REGISTRY_RIPENCC }, // 192.190.58.0 - 192.190.59.255 { 0xc0be3c00, 0xc0be3cff, REGISTRY_ARIN }, // 192.190.60.0 - 192.190.60.255 { 0xc0be3d00, 0xc0be3dff, REGISTRY_APNIC }, // 192.190.61.0 - 192.190.61.255 { 0xc0be3e00, 0xc0be3fff, REGISTRY_ARIN }, // 192.190.62.0 - 192.190.63.255 { 0xc0be4000, 0xc0be40ff, REGISTRY_RIPENCC }, // 192.190.64.0 - 192.190.64.255 { 0xc0be4100, 0xc0be41ff, REGISTRY_ARIN }, // 192.190.65.0 - 192.190.65.255 { 0xc0be4200, 0xc0be42ff, REGISTRY_APNIC }, // 192.190.66.0 - 192.190.66.255 { 0xc0be4300, 0xc0be43ff, REGISTRY_RIPENCC }, // 192.190.67.0 - 192.190.67.255 { 0xc0be4400, 0xc0be44ff, REGISTRY_ARIN }, // 192.190.68.0 - 192.190.68.255 { 0xc0be4500, 0xc0be45ff, REGISTRY_RIPENCC }, // 192.190.69.0 - 192.190.69.255 { 0xc0be4600, 0xc0be5eff, REGISTRY_ARIN }, // 192.190.70.0 - 192.190.94.255 { 0xc0be5f00, 0xc0be5fff, REGISTRY_RIPENCC }, // 192.190.95.0 - 192.190.95.255 { 0xc0be6000, 0xc0be6bff, REGISTRY_ARIN }, // 192.190.96.0 - 192.190.107.255 { 0xc0be6c00, 0xc0be6cff, REGISTRY_APNIC }, // 192.190.108.0 - 192.190.108.255 { 0xc0be6d00, 0xc0be80ff, REGISTRY_ARIN }, // 192.190.109.0 - 192.190.128.255 { 0xc0be8100, 0xc0be84ff, REGISTRY_RIPENCC }, // 192.190.129.0 - 192.190.132.255 { 0xc0be8500, 0xc0bea7ff, REGISTRY_ARIN }, // 192.190.133.0 - 192.190.167.255 { 0xc0bea800, 0xc0beabff, REGISTRY_RIPENCC }, // 192.190.168.0 - 192.190.171.255 { 0xc0beac00, 0xc0beacff, REGISTRY_ARIN }, // 192.190.172.0 - 192.190.172.255 { 0xc0bead00, 0xc0beaeff, REGISTRY_RIPENCC }, // 192.190.173.0 - 192.190.174.255 { 0xc0beaf00, 0xc0beb3ff, REGISTRY_ARIN }, // 192.190.175.0 - 192.190.179.255 { 0xc0beb400, 0xc0beb4ff, REGISTRY_APNIC }, // 192.190.180.0 - 192.190.180.255 { 0xc0beb600, 0xc0beb7ff, REGISTRY_RIPENCC }, // 192.190.182.0 - 192.190.183.255 { 0xc0beb800, 0xc0bebdff, REGISTRY_ARIN }, // 192.190.184.0 - 192.190.189.255 { 0xc0bebe00, 0xc0bec1ff, REGISTRY_RIPENCC }, // 192.190.190.0 - 192.190.193.255 { 0xc0bec200, 0xc0bec8ff, REGISTRY_ARIN }, // 192.190.194.0 - 192.190.200.255 { 0xc0bec900, 0xc0becaff, REGISTRY_RIPENCC }, // 192.190.201.0 - 192.190.202.255 { 0xc0becb00, 0xc0becbff, REGISTRY_ARIN }, // 192.190.203.0 - 192.190.203.255 { 0xc0becc00, 0xc0becdff, REGISTRY_APNIC }, // 192.190.204.0 - 192.190.205.255 { 0xc0bece00, 0xc0becfff, REGISTRY_ARIN }, // 192.190.206.0 - 192.190.207.255 { 0xc0bed000, 0xc0bed7ff, REGISTRY_APNIC }, // 192.190.208.0 - 192.190.215.255 { 0xc0bed800, 0xc0bee8ff, REGISTRY_ARIN }, // 192.190.216.0 - 192.190.232.255 { 0xc0bee900, 0xc0beecff, REGISTRY_RIPENCC }, // 192.190.233.0 - 192.190.236.255 { 0xc0beed00, 0xc0beefff, REGISTRY_ARIN }, // 192.190.237.0 - 192.190.239.255 { 0xc0bef000, 0xc0bef0ff, REGISTRY_RIPENCC }, // 192.190.240.0 - 192.190.240.255 { 0xc0bef100, 0xc0bef1ff, REGISTRY_ARIN }, // 192.190.241.0 - 192.190.241.255 { 0xc0bef200, 0xc0bef2ff, REGISTRY_RIPENCC }, // 192.190.242.0 - 192.190.242.255 { 0xc0bef300, 0xc0bef6ff, REGISTRY_ARIN }, // 192.190.243.0 - 192.190.246.255 { 0xc0bef700, 0xc0bef9ff, REGISTRY_RIPENCC }, // 192.190.247.0 - 192.190.249.255 { 0xc0befa00, 0xc0bfffff, REGISTRY_ARIN }, // 192.190.250.0 - 192.191.255.255 { 0xc0c00000, 0xc0c0ffff, REGISTRY_APNIC }, // 192.192.0.0 - 192.192.255.255 { 0xc0c10000, 0xc0c1ffff, REGISTRY_ARIN }, // 192.193.0.0 - 192.193.255.255 { 0xc0c20000, 0xc0c2ffff, REGISTRY_RIPENCC }, // 192.194.0.0 - 192.194.255.255 { 0xc0c30000, 0xc0c300ff, REGISTRY_ARIN }, // 192.195.0.0 - 192.195.0.255 { 0xc0c30100, 0xc0c301ff, REGISTRY_RIPENCC }, // 192.195.1.0 - 192.195.1.255 { 0xc0c30300, 0xc0c307ff, REGISTRY_ARIN }, // 192.195.3.0 - 192.195.7.255 { 0xc0c30800, 0xc0c308ff, REGISTRY_RIPENCC }, // 192.195.8.0 - 192.195.8.255 { 0xc0c30900, 0xc0c309ff, REGISTRY_ARIN }, // 192.195.9.0 - 192.195.9.255 { 0xc0c30b00, 0xc0c30bff, REGISTRY_ARIN }, // 192.195.11.0 - 192.195.11.255 { 0xc0c30c00, 0xc0c30eff, REGISTRY_APNIC }, // 192.195.12.0 - 192.195.14.255 { 0xc0c30f00, 0xc0c321ff, REGISTRY_ARIN }, // 192.195.15.0 - 192.195.33.255 { 0xc0c32200, 0xc0c322ff, REGISTRY_APNIC }, // 192.195.34.0 - 192.195.34.255 { 0xc0c32300, 0xc0c326ff, REGISTRY_ARIN }, // 192.195.35.0 - 192.195.38.255 { 0xc0c32700, 0xc0c328ff, REGISTRY_APNIC }, // 192.195.39.0 - 192.195.40.255 { 0xc0c32900, 0xc0c329ff, REGISTRY_ARIN }, // 192.195.41.0 - 192.195.41.255 { 0xc0c32a00, 0xc0c32bff, REGISTRY_RIPENCC }, // 192.195.42.0 - 192.195.43.255 { 0xc0c32c00, 0xc0c337ff, REGISTRY_APNIC }, // 192.195.44.0 - 192.195.55.255 { 0xc0c33800, 0xc0c339ff, REGISTRY_LACNIC }, // 192.195.56.0 - 192.195.57.255 { 0xc0c33a00, 0xc0c347ff, REGISTRY_ARIN }, // 192.195.58.0 - 192.195.71.255 { 0xc0c34800, 0xc0c348ff, REGISTRY_RIPENCC }, // 192.195.72.0 - 192.195.72.255 { 0xc0c34900, 0xc0c361ff, REGISTRY_ARIN }, // 192.195.73.0 - 192.195.97.255 { 0xc0c36200, 0xc0c362ff, REGISTRY_RIPENCC }, // 192.195.98.0 - 192.195.98.255 { 0xc0c36300, 0xc0c365ff, REGISTRY_ARIN }, // 192.195.99.0 - 192.195.101.255 { 0xc0c36600, 0xc0c366ff, REGISTRY_APNIC }, // 192.195.102.0 - 192.195.102.255 { 0xc0c36700, 0xc0c368ff, REGISTRY_ARIN }, // 192.195.103.0 - 192.195.104.255 { 0xc0c36900, 0xc0c36aff, REGISTRY_RIPENCC }, // 192.195.105.0 - 192.195.106.255 { 0xc0c36b00, 0xc0c36dff, REGISTRY_ARIN }, // 192.195.107.0 - 192.195.109.255 { 0xc0c36e00, 0xc0c36eff, REGISTRY_RIPENCC }, // 192.195.110.0 - 192.195.110.255 { 0xc0c36f00, 0xc0c36fff, REGISTRY_ARIN }, // 192.195.111.0 - 192.195.111.255 { 0xc0c37100, 0xc0c373ff, REGISTRY_ARIN }, // 192.195.113.0 - 192.195.115.255 { 0xc0c37400, 0xc0c376ff, REGISTRY_RIPENCC }, // 192.195.116.0 - 192.195.118.255 { 0xc0c37700, 0xc0c385ff, REGISTRY_ARIN }, // 192.195.119.0 - 192.195.133.255 { 0xc0c38600, 0xc0c394ff, REGISTRY_RIPENCC }, // 192.195.134.0 - 192.195.148.255 { 0xc0c39500, 0xc0c397ff, REGISTRY_ARIN }, // 192.195.149.0 - 192.195.151.255 { 0xc0c39800, 0xc0c398ff, REGISTRY_APNIC }, // 192.195.152.0 - 192.195.152.255 { 0xc0c39900, 0xc0c3a9ff, REGISTRY_ARIN }, // 192.195.153.0 - 192.195.169.255 { 0xc0c3aa00, 0xc0c3aaff, REGISTRY_APNIC }, // 192.195.170.0 - 192.195.170.255 { 0xc0c3ab00, 0xc0c3b6ff, REGISTRY_ARIN }, // 192.195.171.0 - 192.195.182.255 { 0xc0c3b700, 0xc0c3b8ff, REGISTRY_RIPENCC }, // 192.195.183.0 - 192.195.184.255 { 0xc0c3b900, 0xc0c3b9ff, REGISTRY_ARIN }, // 192.195.185.0 - 192.195.185.255 { 0xc0c3bb00, 0xc0c3c2ff, REGISTRY_ARIN }, // 192.195.187.0 - 192.195.194.255 { 0xc0c3c300, 0xc0c3c3ff, REGISTRY_RIPENCC }, // 192.195.195.0 - 192.195.195.255 { 0xc0c3c400, 0xc0c3c4ff, REGISTRY_ARIN }, // 192.195.196.0 - 192.195.196.255 { 0xc0c3c500, 0xc0c3c5ff, REGISTRY_APNIC }, // 192.195.197.0 - 192.195.197.255 { 0xc0c3c600, 0xc0c3daff, REGISTRY_ARIN }, // 192.195.198.0 - 192.195.218.255 { 0xc0c3db00, 0xc0c3dbff, REGISTRY_APNIC }, // 192.195.219.0 - 192.195.219.255 { 0xc0c3dc00, 0xc0c3e8ff, REGISTRY_ARIN }, // 192.195.220.0 - 192.195.232.255 { 0xc0c3ea00, 0xc0c3ebff, REGISTRY_ARIN }, // 192.195.234.0 - 192.195.235.255 { 0xc0c3ec00, 0xc0c3ecff, REGISTRY_RIPENCC }, // 192.195.236.0 - 192.195.236.255 { 0xc0c3ed00, 0xc0c3edff, REGISTRY_LACNIC }, // 192.195.237.0 - 192.195.237.255 { 0xc0c3ee00, 0xc0c400ff, REGISTRY_ARIN }, // 192.195.238.0 - 192.196.0.255 { 0xc0c40100, 0xc0c49bff, REGISTRY_RIPENCC }, // 192.196.1.0 - 192.196.155.255 { 0xc0c49c00, 0xc0c4bfff, REGISTRY_ARIN }, // 192.196.156.0 - 192.196.191.255 { 0xc0c4c000, 0xc0c4cfff, REGISTRY_RIPENCC }, // 192.196.192.0 - 192.196.207.255 { 0xc0c4d000, 0xc0c570ff, REGISTRY_ARIN }, // 192.196.208.0 - 192.197.112.255 { 0xc0c57100, 0xc0c571ff, REGISTRY_APNIC }, // 192.197.113.0 - 192.197.113.255 { 0xc0c57200, 0xc0c607ff, REGISTRY_ARIN }, // 192.197.114.0 - 192.198.7.255 { 0xc0c60800, 0xc0c60fff, REGISTRY_LACNIC }, // 192.198.8.0 - 192.198.15.255 { 0xc0c61000, 0xc0c70fff, REGISTRY_ARIN }, // 192.198.16.0 - 192.199.15.255 { 0xc0c71000, 0xc0c71fff, REGISTRY_RIPENCC }, // 192.199.16.0 - 192.199.31.255 { 0xc0c72000, 0xc0c72fff, REGISTRY_APNIC }, // 192.199.32.0 - 192.199.47.255 { 0xc0c73000, 0xc0c83fff, REGISTRY_ARIN }, // 192.199.48.0 - 192.200.63.255 { 0xc0c84000, 0xc0c84fff, REGISTRY_APNIC }, // 192.200.64.0 - 192.200.79.255 { 0xc0c85000, 0xc0cb25ff, REGISTRY_ARIN }, // 192.200.80.0 - 192.203.37.255 { 0xc0cb2800, 0xc0cb4fff, REGISTRY_ARIN }, // 192.203.40.0 - 192.203.79.255 { 0xc0cb5000, 0xc0cb50ff, REGISTRY_RIPENCC }, // 192.203.80.0 - 192.203.80.255 { 0xc0cb6000, 0xc0cb62ff, REGISTRY_ARIN }, // 192.203.96.0 - 192.203.98.255 { 0xc0cb6300, 0xc0cb63ff, REGISTRY_APNIC }, // 192.203.99.0 - 192.203.99.255 { 0xc0cb6400, 0xc0cb6bff, REGISTRY_ARIN }, // 192.203.100.0 - 192.203.107.255 { 0xc0cb6c00, 0xc0cb6dff, REGISTRY_RIPENCC }, // 192.203.108.0 - 192.203.109.255 { 0xc0cb6e00, 0xc0cb89ff, REGISTRY_ARIN }, // 192.203.110.0 - 192.203.137.255 { 0xc0cb8a00, 0xc0cb92ff, REGISTRY_APNIC }, // 192.203.138.0 - 192.203.146.255 { 0xc0cb9300, 0xc0cb99ff, REGISTRY_ARIN }, // 192.203.147.0 - 192.203.153.255 { 0xc0cb9a00, 0xc0cb9aff, REGISTRY_APNIC }, // 192.203.154.0 - 192.203.154.255 { 0xc0cb9b00, 0xc0cb9bff, REGISTRY_ARIN }, // 192.203.155.0 - 192.203.155.255 { 0xc0cb9e00, 0xc0cb9eff, REGISTRY_LACNIC }, // 192.203.158.0 - 192.203.158.255 { 0xc0cb9f00, 0xc0cbafff, REGISTRY_ARIN }, // 192.203.159.0 - 192.203.175.255 { 0xc0cbb000, 0xc0cbb0ff, REGISTRY_APNIC }, // 192.203.176.0 - 192.203.176.255 { 0xc0cbb100, 0xc0cbb1ff, REGISTRY_LACNIC }, // 192.203.177.0 - 192.203.177.255 { 0xc0cbb200, 0xc0cbb6ff, REGISTRY_ARIN }, // 192.203.178.0 - 192.203.182.255 { 0xc0cbb700, 0xc0cbb9ff, REGISTRY_APNIC }, // 192.203.183.0 - 192.203.185.255 { 0xc0cbba00, 0xc0cbc0ff, REGISTRY_ARIN }, // 192.203.186.0 - 192.203.192.255 { 0xc0cbc200, 0xc0cbcfff, REGISTRY_ARIN }, // 192.203.194.0 - 192.203.207.255 { 0xc0cbd200, 0xc0cbd4ff, REGISTRY_ARIN }, // 192.203.210.0 - 192.203.212.255 { 0xc0cbd500, 0xc0cbd5ff, REGISTRY_APNIC }, // 192.203.213.0 - 192.203.213.255 { 0xc0cbd600, 0xc0cbd7ff, REGISTRY_ARIN }, // 192.203.214.0 - 192.203.215.255 { 0xc0cbd800, 0xc0cbd8ff, REGISTRY_APNIC }, // 192.203.216.0 - 192.203.216.255 { 0xc0cbd900, 0xc0cbe2ff, REGISTRY_ARIN }, // 192.203.217.0 - 192.203.226.255 { 0xc0cbe300, 0xc0cbe3ff, REGISTRY_RIPENCC }, // 192.203.227.0 - 192.203.227.255 { 0xc0cbe400, 0xc0cbe7ff, REGISTRY_ARIN }, // 192.203.228.0 - 192.203.231.255 { 0xc0cbe800, 0xc0cbe8ff, REGISTRY_APNIC }, // 192.203.232.0 - 192.203.232.255 { 0xc0cbe900, 0xc0cbeaff, REGISTRY_ARIN }, // 192.203.233.0 - 192.203.234.255 { 0xc0cbeb00, 0xc0cbebff, REGISTRY_APNIC }, // 192.203.235.0 - 192.203.235.255 { 0xc0cbec00, 0xc0cbf6ff, REGISTRY_ARIN }, // 192.203.236.0 - 192.203.246.255 { 0xc0cbf700, 0xc0cbf7ff, REGISTRY_APNIC }, // 192.203.247.0 - 192.203.247.255 { 0xc0cbf800, 0xc0ce4cff, REGISTRY_ARIN }, // 192.203.248.0 - 192.206.76.255 { 0xc0ce4d00, 0xc0ce51ff, REGISTRY_RIPENCC }, // 192.206.77.0 - 192.206.81.255 { 0xc0ce5200, 0xc0ce55ff, REGISTRY_ARIN }, // 192.206.82.0 - 192.206.85.255 { 0xc0ce5600, 0xc0ce56ff, REGISTRY_RIPENCC }, // 192.206.86.0 - 192.206.86.255 { 0xc0ce5700, 0xc0ce65ff, REGISTRY_ARIN }, // 192.206.87.0 - 192.206.101.255 { 0xc0ce6700, 0xc0ce6bff, REGISTRY_ARIN }, // 192.206.103.0 - 192.206.107.255 { 0xc0ce6d00, 0xc0ce74ff, REGISTRY_ARIN }, // 192.206.109.0 - 192.206.116.255 { 0xc0ce7500, 0xc0ce75ff, REGISTRY_APNIC }, // 192.206.117.0 - 192.206.117.255 { 0xc0ce7600, 0xc0ce97ff, REGISTRY_ARIN }, // 192.206.118.0 - 192.206.151.255 { 0xc0ce9800, 0xc0ce9dff, REGISTRY_APNIC }, // 192.206.152.0 - 192.206.157.255 { 0xc0ce9e00, 0xc0ceddff, REGISTRY_ARIN }, // 192.206.158.0 - 192.206.221.255 { 0xc0cede00, 0xc0cee2ff, REGISTRY_RIPENCC }, // 192.206.222.0 - 192.206.226.255 { 0xc0cee300, 0xc0cf0dff, REGISTRY_ARIN }, // 192.206.227.0 - 192.207.13.255 { 0xc0cf0e00, 0xc0cf0eff, REGISTRY_RIPENCC }, // 192.207.14.0 - 192.207.14.255 { 0xc0cf0f00, 0xc0cf1eff, REGISTRY_ARIN }, // 192.207.15.0 - 192.207.30.255 { 0xc0cf1f00, 0xc0cf1fff, REGISTRY_RIPENCC }, // 192.207.31.0 - 192.207.31.255 { 0xc0cf2000, 0xc0cf20ff, REGISTRY_ARIN }, // 192.207.32.0 - 192.207.32.255 { 0xc0cf2100, 0xc0cf21ff, REGISTRY_APNIC }, // 192.207.33.0 - 192.207.33.255 { 0xc0cf2200, 0xc0cf23ff, REGISTRY_ARIN }, // 192.207.34.0 - 192.207.35.255 { 0xc0cf2500, 0xc0cf27ff, REGISTRY_ARIN }, // 192.207.37.0 - 192.207.39.255 { 0xc0cf2800, 0xc0cf2aff, REGISTRY_LACNIC }, // 192.207.40.0 - 192.207.42.255 { 0xc0cf2b00, 0xc0cf3fff, REGISTRY_ARIN }, // 192.207.43.0 - 192.207.63.255 { 0xc0cf4000, 0xc0cf40ff, REGISTRY_APNIC }, // 192.207.64.0 - 192.207.64.255 { 0xc0cf4100, 0xc0cf44ff, REGISTRY_LACNIC }, // 192.207.65.0 - 192.207.68.255 { 0xc0cf4500, 0xc0cf5aff, REGISTRY_ARIN }, // 192.207.69.0 - 192.207.90.255 { 0xc0cf5b00, 0xc0cf5bff, REGISTRY_APNIC }, // 192.207.91.0 - 192.207.91.255 { 0xc0cf5c00, 0xc0cf5fff, REGISTRY_ARIN }, // 192.207.92.0 - 192.207.95.255 { 0xc0cf6000, 0xc0cf62ff, REGISTRY_APNIC }, // 192.207.96.0 - 192.207.98.255 { 0xc0cf6300, 0xc0cf70ff, REGISTRY_ARIN }, // 192.207.99.0 - 192.207.112.255 { 0xc0cf7100, 0xc0cf71ff, REGISTRY_APNIC }, // 192.207.113.0 - 192.207.113.255 { 0xc0cf7200, 0xc0cf76ff, REGISTRY_ARIN }, // 192.207.114.0 - 192.207.118.255 { 0xc0cf7700, 0xc0cf79ff, REGISTRY_APNIC }, // 192.207.119.0 - 192.207.121.255 { 0xc0cf7a00, 0xc0cf8cff, REGISTRY_ARIN }, // 192.207.122.0 - 192.207.140.255 { 0xc0cf8d00, 0xc0cf8eff, REGISTRY_RIPENCC }, // 192.207.141.0 - 192.207.142.255 { 0xc0cf8f00, 0xc0cf8fff, REGISTRY_APNIC }, // 192.207.143.0 - 192.207.143.255 { 0xc0cf9000, 0xc0cf91ff, REGISTRY_ARIN }, // 192.207.144.0 - 192.207.145.255 { 0xc0cf9200, 0xc0cf92ff, REGISTRY_LACNIC }, // 192.207.146.0 - 192.207.146.255 { 0xc0cf9300, 0xc0cf96ff, REGISTRY_ARIN }, // 192.207.147.0 - 192.207.150.255 { 0xc0cf9700, 0xc0cf99ff, REGISTRY_APNIC }, // 192.207.151.0 - 192.207.153.255 { 0xc0cf9c00, 0xc0cf9eff, REGISTRY_APNIC }, // 192.207.156.0 - 192.207.158.255 { 0xc0cf9f00, 0xc0cfa0ff, REGISTRY_ARIN }, // 192.207.159.0 - 192.207.160.255 { 0xc0cfa100, 0xc0cfa1ff, REGISTRY_APNIC }, // 192.207.161.0 - 192.207.161.255 { 0xc0cfa200, 0xc0cfa4ff, REGISTRY_ARIN }, // 192.207.162.0 - 192.207.164.255 { 0xc0cfa500, 0xc0cfa5ff, REGISTRY_APNIC }, // 192.207.165.0 - 192.207.165.255 { 0xc0cfa600, 0xc0cfb6ff, REGISTRY_ARIN }, // 192.207.166.0 - 192.207.182.255 { 0xc0cfb700, 0xc0cfb7ff, REGISTRY_LACNIC }, // 192.207.183.0 - 192.207.183.255 { 0xc0cfb800, 0xc0cfbaff, REGISTRY_ARIN }, // 192.207.184.0 - 192.207.186.255 { 0xc0cfbb00, 0xc0cfbbff, REGISTRY_APNIC }, // 192.207.187.0 - 192.207.187.255 { 0xc0cfbc00, 0xc0cfc1ff, REGISTRY_ARIN }, // 192.207.188.0 - 192.207.193.255 { 0xc0cfc200, 0xc0cfc3ff, REGISTRY_LACNIC }, // 192.207.194.0 - 192.207.195.255 { 0xc0cfc400, 0xc0cfc4ff, REGISTRY_RIPENCC }, // 192.207.196.0 - 192.207.196.255 { 0xc0cfc500, 0xc0cfc6ff, REGISTRY_APNIC }, // 192.207.197.0 - 192.207.198.255 { 0xc0cfc700, 0xc0cfc7ff, REGISTRY_ARIN }, // 192.207.199.0 - 192.207.199.255 { 0xc0cfc800, 0xc0cfceff, REGISTRY_LACNIC }, // 192.207.200.0 - 192.207.206.255 { 0xc0cfcf00, 0xc0cff1ff, REGISTRY_ARIN }, // 192.207.207.0 - 192.207.241.255 { 0xc0cff200, 0xc0cff2ff, REGISTRY_APNIC }, // 192.207.242.0 - 192.207.242.255 { 0xc0cff300, 0xc0cff3ff, REGISTRY_ARIN }, // 192.207.243.0 - 192.207.243.255 { 0xc0cff400, 0xc0cff4ff, REGISTRY_LACNIC }, // 192.207.244.0 - 192.207.244.255 { 0xc0cff500, 0xc0cff7ff, REGISTRY_ARIN }, // 192.207.245.0 - 192.207.247.255 { 0xc0cff800, 0xc0cff8ff, REGISTRY_APNIC }, // 192.207.248.0 - 192.207.248.255 { 0xc0cff900, 0xc0cffdff, REGISTRY_ARIN }, // 192.207.249.0 - 192.207.253.255 { 0xc0cfff00, 0xc0d2ffff, REGISTRY_ARIN }, // 192.207.255.0 - 192.210.255.255 { 0xc0d30000, 0xc0d300ff, REGISTRY_RIPENCC }, // 192.211.0.0 - 192.211.0.255 { 0xc0d30100, 0xc0d69fff, REGISTRY_ARIN }, // 192.211.1.0 - 192.214.159.255 { 0xc0d6a000, 0xc0d6dfff, REGISTRY_RIPENCC }, // 192.214.160.0 - 192.214.223.255 { 0xc0d6e000, 0xc0d9ffff, REGISTRY_ARIN }, // 192.214.224.0 - 192.217.255.255 { 0xc0da0000, 0xc0daffff, REGISTRY_APNIC }, // 192.218.0.0 - 192.218.255.255 { 0xc0db0000, 0xc0df3fff, REGISTRY_ARIN }, // 192.219.0.0 - 192.223.63.255 { 0xc0df4000, 0xc0df7fff, REGISTRY_LACNIC }, // 192.223.64.0 - 192.223.127.255 { 0xc0df8000, 0xc0e300ff, REGISTRY_ARIN }, // 192.223.128.0 - 192.227.0.255 { 0xc0e30100, 0xc0e30fff, REGISTRY_APNIC }, // 192.227.1.0 - 192.227.15.255 { 0xc0e31000, 0xc0e47fff, REGISTRY_ARIN }, // 192.227.16.0 - 192.228.127.255 { 0xc0e48000, 0xc0e4ffff, REGISTRY_APNIC }, // 192.228.128.0 - 192.228.255.255 { 0xc0e50000, 0xc0e60fff, REGISTRY_ARIN }, // 192.229.0.0 - 192.230.15.255 { 0xc0e61000, 0xc0e61fff, REGISTRY_APNIC }, // 192.230.16.0 - 192.230.31.255 { 0xc0e62000, 0xc0e70eff, REGISTRY_ARIN }, // 192.230.32.0 - 192.231.14.255 { 0xc0e71000, 0xc0e721ff, REGISTRY_ARIN }, // 192.231.16.0 - 192.231.33.255 { 0xc0e72200, 0xc0e722ff, REGISTRY_APNIC }, // 192.231.34.0 - 192.231.34.255 { 0xc0e72300, 0xc0e73aff, REGISTRY_ARIN }, // 192.231.35.0 - 192.231.58.255 { 0xc0e73b00, 0xc0e73bff, REGISTRY_APNIC }, // 192.231.59.0 - 192.231.59.255 { 0xc0e73c00, 0xc0e742ff, REGISTRY_ARIN }, // 192.231.60.0 - 192.231.66.255 { 0xc0e74300, 0xc0e743ff, REGISTRY_RIPENCC }, // 192.231.67.0 - 192.231.67.255 { 0xc0e74400, 0xc0e74cff, REGISTRY_ARIN }, // 192.231.68.0 - 192.231.76.255 { 0xc0e74e00, 0xc0e751ff, REGISTRY_ARIN }, // 192.231.78.0 - 192.231.81.255 { 0xc0e75200, 0xc0e752ff, REGISTRY_RIPENCC }, // 192.231.82.0 - 192.231.82.255 { 0xc0e75300, 0xc0e76dff, REGISTRY_ARIN }, // 192.231.83.0 - 192.231.109.255 { 0xc0e76e00, 0xc0e76eff, REGISTRY_LACNIC }, // 192.231.110.0 - 192.231.110.255 { 0xc0e76f00, 0xc0e771ff, REGISTRY_ARIN }, // 192.231.111.0 - 192.231.113.255 { 0xc0e77200, 0xc0e779ff, REGISTRY_LACNIC }, // 192.231.114.0 - 192.231.121.255 { 0xc0e77a00, 0xc0e77eff, REGISTRY_ARIN }, // 192.231.122.0 - 192.231.126.255 { 0xc0e77f00, 0xc0e77fff, REGISTRY_APNIC }, // 192.231.127.0 - 192.231.127.255 { 0xc0e78000, 0xc0e786ff, REGISTRY_ARIN }, // 192.231.128.0 - 192.231.134.255 { 0xc0e78700, 0xc0e788ff, REGISTRY_APNIC }, // 192.231.135.0 - 192.231.136.255 { 0xc0e78a00, 0xc0e78bff, REGISTRY_ARIN }, // 192.231.138.0 - 192.231.139.255 { 0xc0e78c00, 0xc0e78cff, REGISTRY_LACNIC }, // 192.231.140.0 - 192.231.140.255 { 0xc0e78d00, 0xc0e78fff, REGISTRY_ARIN }, // 192.231.141.0 - 192.231.143.255 { 0xc0e79100, 0xc0e7a5ff, REGISTRY_ARIN }, // 192.231.145.0 - 192.231.165.255 { 0xc0e7a600, 0xc0e7aaff, REGISTRY_APNIC }, // 192.231.166.0 - 192.231.170.255 { 0xc0e7ab00, 0xc0e7aeff, REGISTRY_ARIN }, // 192.231.171.0 - 192.231.174.255 { 0xc0e7af00, 0xc0e7b0ff, REGISTRY_LACNIC }, // 192.231.175.0 - 192.231.176.255 { 0xc0e7b100, 0xc0e7b6ff, REGISTRY_ARIN }, // 192.231.177.0 - 192.231.182.255 { 0xc0e7b700, 0xc0e7b7ff, REGISTRY_APNIC }, // 192.231.183.0 - 192.231.183.255 { 0xc0e7b800, 0xc0e7c0ff, REGISTRY_ARIN }, // 192.231.184.0 - 192.231.192.255 { 0xc0e7c200, 0xc0e7caff, REGISTRY_ARIN }, // 192.231.194.0 - 192.231.202.255 { 0xc0e7cb00, 0xc0e7cbff, REGISTRY_APNIC }, // 192.231.203.0 - 192.231.203.255 { 0xc0e7cc00, 0xc0e7d2ff, REGISTRY_ARIN }, // 192.231.204.0 - 192.231.210.255 { 0xc0e7d400, 0xc0e7d4ff, REGISTRY_APNIC }, // 192.231.212.0 - 192.231.212.255 { 0xc0e7d500, 0xc0e7d7ff, REGISTRY_ARIN }, // 192.231.213.0 - 192.231.215.255 { 0xc0e7d900, 0xc0e7d9ff, REGISTRY_ARIN }, // 192.231.217.0 - 192.231.217.255 { 0xc0e7db00, 0xc0e7ecff, REGISTRY_ARIN }, // 192.231.219.0 - 192.231.236.255 { 0xc0e7ed00, 0xc0e7edff, REGISTRY_AFRINIC }, // 192.231.237.0 - 192.231.237.255 { 0xc0e7ee00, 0xc0e7f7ff, REGISTRY_ARIN }, // 192.231.238.0 - 192.231.247.255 { 0xc0e7f900, 0xc0e7fdff, REGISTRY_ARIN }, // 192.231.249.0 - 192.231.253.255 { 0xc0e7fe00, 0xc0e7feff, REGISTRY_AFRINIC }, // 192.231.254.0 - 192.231.254.255 { 0xc0e7ff00, 0xc0e81fff, REGISTRY_ARIN }, // 192.231.255.0 - 192.232.31.255 { 0xc0e84000, 0xc0e87fff, REGISTRY_ARIN }, // 192.232.64.0 - 192.232.127.255 { 0xc0e88000, 0xc0e89fff, REGISTRY_APNIC }, // 192.232.128.0 - 192.232.159.255 { 0xc0e8a000, 0xc0ea39ff, REGISTRY_ARIN }, // 192.232.160.0 - 192.234.57.255 { 0xc0ea3b00, 0xc0ea65ff, REGISTRY_ARIN }, // 192.234.59.0 - 192.234.101.255 { 0xc0ea6600, 0xc0ea66ff, REGISTRY_LACNIC }, // 192.234.102.0 - 192.234.102.255 { 0xc0ea6700, 0xc0eae6ff, REGISTRY_ARIN }, // 192.234.103.0 - 192.234.230.255 { 0xc0eae800, 0xc0eaf4ff, REGISTRY_ARIN }, // 192.234.232.0 - 192.234.244.255 { 0xc0eaf500, 0xc0eaf5ff, REGISTRY_APNIC }, // 192.234.245.0 - 192.234.245.255 { 0xc0eaf600, 0xc0ee00ff, REGISTRY_ARIN }, // 192.234.246.0 - 192.238.0.255 { 0xc0ee0100, 0xc0ee0aff, REGISTRY_RIPENCC }, // 192.238.1.0 - 192.238.10.255 { 0xc0ee0b00, 0xc0f00fff, REGISTRY_ARIN }, // 192.238.11.0 - 192.240.15.255 { 0xc0f01000, 0xc0f01fff, REGISTRY_APNIC }, // 192.240.16.0 - 192.240.31.255 { 0xc0f02000, 0xc0f3ffff, REGISTRY_ARIN }, // 192.240.32.0 - 192.243.255.255 { 0xc0f40000, 0xc0f4ffff, REGISTRY_APNIC }, // 192.244.0.0 - 192.244.255.255 { 0xc0f50000, 0xc0f50aff, REGISTRY_ARIN }, // 192.245.0.0 - 192.245.10.255 { 0xc0f50c00, 0xc0f50cff, REGISTRY_ARIN }, // 192.245.12.0 - 192.245.12.255 { 0xc0f50d00, 0xc0f50eff, REGISTRY_APNIC }, // 192.245.13.0 - 192.245.14.255 { 0xc0f50f00, 0xc0f51dff, REGISTRY_ARIN }, // 192.245.15.0 - 192.245.29.255 { 0xc0f51e00, 0xc0f51eff, REGISTRY_LACNIC }, // 192.245.30.0 - 192.245.30.255 { 0xc0f51f00, 0xc0f521ff, REGISTRY_ARIN }, // 192.245.31.0 - 192.245.33.255 { 0xc0f52500, 0xc0f539ff, REGISTRY_ARIN }, // 192.245.37.0 - 192.245.57.255 { 0xc0f53a00, 0xc0f53bff, REGISTRY_APNIC }, // 192.245.58.0 - 192.245.59.255 { 0xc0f53c00, 0xc0f53cff, REGISTRY_LACNIC }, // 192.245.60.0 - 192.245.60.255 { 0xc0f53d00, 0xc0f548ff, REGISTRY_ARIN }, // 192.245.61.0 - 192.245.72.255 { 0xc0f55100, 0xc0f55dff, REGISTRY_ARIN }, // 192.245.81.0 - 192.245.93.255 { 0xc0f55f00, 0xc0f568ff, REGISTRY_ARIN }, // 192.245.95.0 - 192.245.104.255 { 0xc0f56900, 0xc0f570ff, REGISTRY_APNIC }, // 192.245.105.0 - 192.245.112.255 { 0xc0f57100, 0xc0f578ff, REGISTRY_ARIN }, // 192.245.113.0 - 192.245.120.255 { 0xc0f57900, 0xc0f579ff, REGISTRY_LACNIC }, // 192.245.121.0 - 192.245.121.255 { 0xc0f57a00, 0xc0f593ff, REGISTRY_ARIN }, // 192.245.122.0 - 192.245.147.255 { 0xc0f59400, 0xc0f594ff, REGISTRY_AFRINIC }, // 192.245.148.0 - 192.245.148.255 { 0xc0f59500, 0xc0f597ff, REGISTRY_ARIN }, // 192.245.149.0 - 192.245.151.255 { 0xc0f59800, 0xc0f598ff, REGISTRY_RIPENCC }, // 192.245.152.0 - 192.245.152.255 { 0xc0f59900, 0xc0f59aff, REGISTRY_ARIN }, // 192.245.153.0 - 192.245.154.255 { 0xc0f59c00, 0xc0f5a1ff, REGISTRY_ARIN }, // 192.245.156.0 - 192.245.161.255 { 0xc0f5a200, 0xc0f5a2ff, REGISTRY_APNIC }, // 192.245.162.0 - 192.245.162.255 { 0xc0f5a300, 0xc0f5a8ff, REGISTRY_ARIN }, // 192.245.163.0 - 192.245.168.255 { 0xc0f5a900, 0xc0f5a9ff, REGISTRY_RIPENCC }, // 192.245.169.0 - 192.245.169.255 { 0xc0f5aa00, 0xc0f5b8ff, REGISTRY_ARIN }, // 192.245.170.0 - 192.245.184.255 { 0xc0f5b900, 0xc0f5b9ff, REGISTRY_APNIC }, // 192.245.185.0 - 192.245.185.255 { 0xc0f5ba00, 0xc0f5bfff, REGISTRY_ARIN }, // 192.245.186.0 - 192.245.191.255 { 0xc0f5c000, 0xc0f5c0ff, REGISTRY_APNIC }, // 192.245.192.0 - 192.245.192.255 { 0xc0f5c100, 0xc0f5c3ff, REGISTRY_ARIN }, // 192.245.193.0 - 192.245.195.255 { 0xc0f5c400, 0xc0f5c4ff, REGISTRY_APNIC }, // 192.245.196.0 - 192.245.196.255 { 0xc0f5c500, 0xc0f5cfff, REGISTRY_ARIN }, // 192.245.197.0 - 192.245.207.255 { 0xc0f5d000, 0xc0f5d0ff, REGISTRY_APNIC }, // 192.245.208.0 - 192.245.208.255 { 0xc0f5d100, 0xc0f5d1ff, REGISTRY_ARIN }, // 192.245.209.0 - 192.245.209.255 { 0xc0f5d200, 0xc0f5d9ff, REGISTRY_APNIC }, // 192.245.210.0 - 192.245.217.255 { 0xc0f5da00, 0xc0f5daff, REGISTRY_ARIN }, // 192.245.218.0 - 192.245.218.255 { 0xc0f5dc00, 0xc0f5dcff, REGISTRY_APNIC }, // 192.245.220.0 - 192.245.220.255 { 0xc0f5dd00, 0xc0f5e0ff, REGISTRY_ARIN }, // 192.245.221.0 - 192.245.224.255 { 0xc0f5e100, 0xc0f5e1ff, REGISTRY_RIPENCC }, // 192.245.225.0 - 192.245.225.255 { 0xc0f5e200, 0xc0f5f8ff, REGISTRY_ARIN }, // 192.245.226.0 - 192.245.248.255 { 0xc0f5f900, 0xc0f5fbff, REGISTRY_APNIC }, // 192.245.249.0 - 192.245.251.255 { 0xc0f5fc00, 0xc0f700ff, REGISTRY_ARIN }, // 192.245.252.0 - 192.247.0.255 { 0xc0f70100, 0xc0f70aff, REGISTRY_RIPENCC }, // 192.247.1.0 - 192.247.10.255 { 0xc0f70b00, 0xc0f7ffff, REGISTRY_ARIN }, // 192.247.11.0 - 192.247.255.255 { 0xc0f80000, 0xc0f87fff, REGISTRY_APNIC }, // 192.248.0.0 - 192.248.127.255 { 0xc0f88000, 0xc0f8bfff, REGISTRY_RIPENCC }, // 192.248.128.0 - 192.248.191.255 { 0xc0f8c000, 0xc0f90fff, REGISTRY_ARIN }, // 192.248.192.0 - 192.249.15.255 { 0xc0f91000, 0xc0f91fff, REGISTRY_APNIC }, // 192.249.16.0 - 192.249.31.255 { 0xc0f92000, 0xc0f929ff, REGISTRY_ARIN }, // 192.249.32.0 - 192.249.41.255 { 0xc0f92a00, 0xc0f92bff, REGISTRY_APNIC }, // 192.249.42.0 - 192.249.43.255 { 0xc0f92c00, 0xc0fb26ff, REGISTRY_ARIN }, // 192.249.44.0 - 192.251.38.255 { 0xc0fb2700, 0xc0fb27ff, REGISTRY_LACNIC }, // 192.251.39.0 - 192.251.39.255 { 0xc0fb2800, 0xc0fb3cff, REGISTRY_ARIN }, // 192.251.40.0 - 192.251.60.255 { 0xc0fb3d00, 0xc0fb41ff, REGISTRY_RIPENCC }, // 192.251.61.0 - 192.251.65.255 { 0xc0fb4200, 0xc0fb93ff, REGISTRY_ARIN }, // 192.251.66.0 - 192.251.147.255 { 0xc0fb9400, 0xc0fb94ff, REGISTRY_APNIC }, // 192.251.148.0 - 192.251.148.255 { 0xc0fb9500, 0xc0fbc2ff, REGISTRY_ARIN }, // 192.251.149.0 - 192.251.194.255 { 0xc0fbc300, 0xc0fbc3ff, REGISTRY_APNIC }, // 192.251.195.0 - 192.251.195.255 { 0xc0fbc400, 0xc0fbc8ff, REGISTRY_ARIN }, // 192.251.196.0 - 192.251.200.255 { 0xc0fbca00, 0xc0fbcaff, REGISTRY_AFRINIC }, // 192.251.202.0 - 192.251.202.255 { 0xc0fbcb00, 0xc0fbcbff, REGISTRY_ARIN }, // 192.251.203.0 - 192.251.203.255 { 0xc0fbcf00, 0xc0fbcfff, REGISTRY_APNIC }, // 192.251.207.0 - 192.251.207.255 { 0xc0fbd000, 0xc0fbe1ff, REGISTRY_ARIN }, // 192.251.208.0 - 192.251.225.255 { 0xc0fbe200, 0xc0fbe2ff, REGISTRY_RIPENCC }, // 192.251.226.0 - 192.251.226.255 { 0xc0fbe600, 0xc0fbe6ff, REGISTRY_RIPENCC }, // 192.251.230.0 - 192.251.230.255 { 0xc0fbe700, 0xc0ffffff, REGISTRY_ARIN }, // 192.251.231.0 - 192.255.255.255 { 0xc1000000, 0xc1001fff, REGISTRY_RIPENCC }, // 193.0.0.0 - 193.0.31.255 { 0xc1002000, 0xc1003dff, REGISTRY_RIPENCC }, // 193.0.32.0 - 193.0.61.255 { 0xc1003e00, 0xc1003eff, REGISTRY_RIPENCC }, // 193.0.62.0 - 193.0.62.255 { 0xc1003f00, 0xc10080ff, REGISTRY_RIPENCC }, // 193.0.63.0 - 193.0.128.255 { 0xc1008100, 0xc10081ff, REGISTRY_RIPENCC }, // 193.0.129.0 - 193.0.129.255 { 0xc1008200, 0xc10091ff, REGISTRY_RIPENCC }, // 193.0.130.0 - 193.0.145.255 { 0xc1009200, 0xc10093ff, REGISTRY_RIPENCC }, // 193.0.146.0 - 193.0.147.255 { 0xc1009400, 0xc1009eff, REGISTRY_RIPENCC }, // 193.0.148.0 - 193.0.158.255 { 0xc1009f00, 0xc1009fff, REGISTRY_RIPENCC }, // 193.0.159.0 - 193.0.159.255 { 0xc100a000, 0xc100a3ff, REGISTRY_RIPENCC }, // 193.0.160.0 - 193.0.163.255 { 0xc100a400, 0xc100a5ff, REGISTRY_RIPENCC }, // 193.0.164.0 - 193.0.165.255 { 0xc100a600, 0xc100afff, REGISTRY_RIPENCC }, // 193.0.166.0 - 193.0.175.255 { 0xc100b000, 0xc100b1ff, REGISTRY_RIPENCC }, // 193.0.176.0 - 193.0.177.255 { 0xc100b200, 0xc100b3ff, REGISTRY_RIPENCC }, // 193.0.178.0 - 193.0.179.255 { 0xc100b400, 0xc100b8ff, REGISTRY_RIPENCC }, // 193.0.180.0 - 193.0.184.255 { 0xc100b900, 0xc100bcff, REGISTRY_RIPENCC }, // 193.0.185.0 - 193.0.188.255 { 0xc100bd00, 0xc100beff, REGISTRY_RIPENCC }, // 193.0.189.0 - 193.0.190.255 { 0xc100bf00, 0xc100c5ff, REGISTRY_RIPENCC }, // 193.0.191.0 - 193.0.197.255 { 0xc100c600, 0xc100c6ff, REGISTRY_RIPENCC }, // 193.0.198.0 - 193.0.198.255 { 0xc100c700, 0xc100c7ff, REGISTRY_RIPENCC }, // 193.0.199.0 - 193.0.199.255 { 0xc100c800, 0xc100cbff, REGISTRY_RIPENCC }, // 193.0.200.0 - 193.0.203.255 { 0xc100cc00, 0xc100d3ff, REGISTRY_RIPENCC }, // 193.0.204.0 - 193.0.211.255 { 0xc100d400, 0xc100d4ff, REGISTRY_RIPENCC }, // 193.0.212.0 - 193.0.212.255 { 0xc100d500, 0xc100e2ff, REGISTRY_RIPENCC }, // 193.0.213.0 - 193.0.226.255 { 0xc100e300, 0xc100e3ff, REGISTRY_RIPENCC }, // 193.0.227.0 - 193.0.227.255 { 0xc100e400, 0xc100e4ff, REGISTRY_RIPENCC }, // 193.0.228.0 - 193.0.228.255 { 0xc100e500, 0xc100e6ff, REGISTRY_RIPENCC }, // 193.0.229.0 - 193.0.230.255 { 0xc100e700, 0xc100e7ff, REGISTRY_RIPENCC }, // 193.0.231.0 - 193.0.231.255 { 0xc100ea00, 0xc100ebff, REGISTRY_RIPENCC }, // 193.0.234.0 - 193.0.235.255 { 0xc100ec00, 0xc100eeff, REGISTRY_RIPENCC }, // 193.0.236.0 - 193.0.238.255 { 0xc100ef00, 0xc100efff, REGISTRY_RIPENCC }, // 193.0.239.0 - 193.0.239.255 { 0xc100f000, 0xc100f4ff, REGISTRY_RIPENCC }, // 193.0.240.0 - 193.0.244.255 { 0xc100f500, 0xc100f6ff, REGISTRY_RIPENCC }, // 193.0.245.0 - 193.0.246.255 { 0xc100f700, 0xc100ffff, REGISTRY_RIPENCC }, // 193.0.247.0 - 193.0.255.255 { 0xc1010000, 0xc10300ff, REGISTRY_RIPENCC }, // 193.1.0.0 - 193.3.0.255 { 0xc1030100, 0xc1030fff, REGISTRY_RIPENCC }, // 193.3.1.0 - 193.3.15.255 { 0xc1031000, 0xc10326ff, REGISTRY_RIPENCC }, // 193.3.16.0 - 193.3.38.255 { 0xc1032700, 0xc10327ff, REGISTRY_RIPENCC }, // 193.3.39.0 - 193.3.39.255 { 0xc1032800, 0xc1032aff, REGISTRY_RIPENCC }, // 193.3.40.0 - 193.3.42.255 { 0xc1032b00, 0xc1032bff, REGISTRY_RIPENCC }, // 193.3.43.0 - 193.3.43.255 { 0xc1032c00, 0xc1032eff, REGISTRY_RIPENCC }, // 193.3.44.0 - 193.3.46.255 { 0xc1032f00, 0xc1032fff, REGISTRY_RIPENCC }, // 193.3.47.0 - 193.3.47.255 { 0xc1033000, 0xc10330ff, REGISTRY_RIPENCC }, // 193.3.48.0 - 193.3.48.255 { 0xc1033100, 0xc10331ff, REGISTRY_RIPENCC }, // 193.3.49.0 - 193.3.49.255 { 0xc1033200, 0xc1033bff, REGISTRY_RIPENCC }, // 193.3.50.0 - 193.3.59.255 { 0xc1033c00, 0xc1033eff, REGISTRY_RIPENCC }, // 193.3.60.0 - 193.3.62.255 { 0xc1033f00, 0xc1033fff, REGISTRY_RIPENCC }, // 193.3.63.0 - 193.3.63.255 { 0xc1034000, 0xc1037fff, REGISTRY_RIPENCC }, // 193.3.64.0 - 193.3.127.255 { 0xc1038000, 0xc10383ff, REGISTRY_RIPENCC }, // 193.3.128.0 - 193.3.131.255 { 0xc1038400, 0xc10387ff, REGISTRY_RIPENCC }, // 193.3.132.0 - 193.3.135.255 { 0xc1038800, 0xc1039cff, REGISTRY_RIPENCC }, // 193.3.136.0 - 193.3.156.255 { 0xc1039d00, 0xc1039dff, REGISTRY_RIPENCC }, // 193.3.157.0 - 193.3.157.255 { 0xc1039e00, 0xc1039eff, REGISTRY_RIPENCC }, // 193.3.158.0 - 193.3.158.255 { 0xc1039f00, 0xc1039fff, REGISTRY_RIPENCC }, // 193.3.159.0 - 193.3.159.255 { 0xc103a000, 0xc103bfff, REGISTRY_RIPENCC }, // 193.3.160.0 - 193.3.191.255 { 0xc103c000, 0xc103dfff, REGISTRY_RIPENCC }, // 193.3.192.0 - 193.3.223.255 { 0xc103e000, 0xc103e4ff, REGISTRY_RIPENCC }, // 193.3.224.0 - 193.3.228.255 { 0xc103e500, 0xc103e5ff, REGISTRY_RIPENCC }, // 193.3.229.0 - 193.3.229.255 { 0xc103e600, 0xc103e9ff, REGISTRY_RIPENCC }, // 193.3.230.0 - 193.3.233.255 { 0xc103ea00, 0xc103eeff, REGISTRY_RIPENCC }, // 193.3.234.0 - 193.3.238.255 { 0xc103ef00, 0xc103f5ff, REGISTRY_RIPENCC }, // 193.3.239.0 - 193.3.245.255 { 0xc103f600, 0xc103f7ff, REGISTRY_RIPENCC }, // 193.3.246.0 - 193.3.247.255 { 0xc103f800, 0xc103fbff, REGISTRY_RIPENCC }, // 193.3.248.0 - 193.3.251.255 { 0xc103fc00, 0xc103feff, REGISTRY_RIPENCC }, // 193.3.252.0 - 193.3.254.255 { 0xc103ff00, 0xc10439ff, REGISTRY_RIPENCC }, // 193.3.255.0 - 193.4.57.255 { 0xc1043a00, 0xc1043bff, REGISTRY_RIPENCC }, // 193.4.58.0 - 193.4.59.255 { 0xc1043c00, 0xc10501ff, REGISTRY_RIPENCC }, // 193.4.60.0 - 193.5.1.255 { 0xc1050200, 0xc10502ff, REGISTRY_RIPENCC }, // 193.5.2.0 - 193.5.2.255 { 0xc1050300, 0xc10507ff, REGISTRY_RIPENCC }, // 193.5.3.0 - 193.5.7.255 { 0xc1050800, 0xc10509ff, REGISTRY_RIPENCC }, // 193.5.8.0 - 193.5.9.255 { 0xc1050a00, 0xc10515ff, REGISTRY_RIPENCC }, // 193.5.10.0 - 193.5.21.255 { 0xc1051600, 0xc10516ff, REGISTRY_RIPENCC }, // 193.5.22.0 - 193.5.22.255 { 0xc1051700, 0xc10519ff, REGISTRY_RIPENCC }, // 193.5.23.0 - 193.5.25.255 { 0xc1051a00, 0xc1051bff, REGISTRY_RIPENCC }, // 193.5.26.0 - 193.5.27.255 { 0xc1051c00, 0xc10529ff, REGISTRY_RIPENCC }, // 193.5.28.0 - 193.5.41.255 { 0xc1052a00, 0xc1052dff, REGISTRY_RIPENCC }, // 193.5.42.0 - 193.5.45.255 { 0xc1052e00, 0xc1052fff, REGISTRY_RIPENCC }, // 193.5.46.0 - 193.5.47.255 { 0xc1053000, 0xc10533ff, REGISTRY_RIPENCC }, // 193.5.48.0 - 193.5.51.255 { 0xc1053400, 0xc10534ff, REGISTRY_RIPENCC }, // 193.5.52.0 - 193.5.52.255 { 0xc1053500, 0xc1053aff, REGISTRY_RIPENCC }, // 193.5.53.0 - 193.5.58.255 { 0xc1053b00, 0xc1053bff, REGISTRY_RIPENCC }, // 193.5.59.0 - 193.5.59.255 { 0xc1053c00, 0xc1053cff, REGISTRY_RIPENCC }, // 193.5.60.0 - 193.5.60.255 { 0xc1053d00, 0xc1053dff, REGISTRY_RIPENCC }, // 193.5.61.0 - 193.5.61.255 { 0xc1053e00, 0xc1053eff, REGISTRY_RIPENCC }, // 193.5.62.0 - 193.5.62.255 { 0xc1053f00, 0xc10543ff, REGISTRY_RIPENCC }, // 193.5.63.0 - 193.5.67.255 { 0xc1054400, 0xc10545ff, REGISTRY_RIPENCC }, // 193.5.68.0 - 193.5.69.255 { 0xc1054600, 0xc1054fff, REGISTRY_RIPENCC }, // 193.5.70.0 - 193.5.79.255 { 0xc1055000, 0xc1056fff, REGISTRY_RIPENCC }, // 193.5.80.0 - 193.5.111.255 { 0xc1057000, 0xc10573ff, REGISTRY_RIPENCC }, // 193.5.112.0 - 193.5.115.255 { 0xc1057400, 0xc10577ff, REGISTRY_RIPENCC }, // 193.5.116.0 - 193.5.119.255 { 0xc1057800, 0xc10578ff, REGISTRY_RIPENCC }, // 193.5.120.0 - 193.5.120.255 { 0xc1057900, 0xc10579ff, REGISTRY_RIPENCC }, // 193.5.121.0 - 193.5.121.255 { 0xc1057a00, 0xc1057aff, REGISTRY_RIPENCC }, // 193.5.122.0 - 193.5.122.255 { 0xc1057b00, 0xc1057cff, REGISTRY_RIPENCC }, // 193.5.123.0 - 193.5.124.255 { 0xc1057d00, 0xc1057dff, REGISTRY_RIPENCC }, // 193.5.125.0 - 193.5.125.255 { 0xc1057e00, 0xc1058fff, REGISTRY_RIPENCC }, // 193.5.126.0 - 193.5.143.255 { 0xc1059000, 0xc10597ff, REGISTRY_RIPENCC }, // 193.5.144.0 - 193.5.151.255 { 0xc1059800, 0xc1059bff, REGISTRY_RIPENCC }, // 193.5.152.0 - 193.5.155.255 { 0xc1059c00, 0xc105a7ff, REGISTRY_RIPENCC }, // 193.5.156.0 - 193.5.167.255 { 0xc105a800, 0xc105b2ff, REGISTRY_RIPENCC }, // 193.5.168.0 - 193.5.178.255 { 0xc105b300, 0xc105b3ff, REGISTRY_RIPENCC }, // 193.5.179.0 - 193.5.179.255 { 0xc105b400, 0xc105dfff, REGISTRY_RIPENCC }, // 193.5.180.0 - 193.5.223.255 { 0xc105e000, 0xc105efff, REGISTRY_RIPENCC }, // 193.5.224.0 - 193.5.239.255 { 0xc105f000, 0xc105f9ff, REGISTRY_RIPENCC }, // 193.5.240.0 - 193.5.249.255 { 0xc105fa00, 0xc105fcff, REGISTRY_RIPENCC }, // 193.5.250.0 - 193.5.252.255 { 0xc105fd00, 0xc105feff, REGISTRY_RIPENCC }, // 193.5.253.0 - 193.5.254.255 { 0xc105ff00, 0xc106ffff, REGISTRY_RIPENCC }, // 193.5.255.0 - 193.6.255.255 { 0xc1070000, 0xc1077fff, REGISTRY_RIPENCC }, // 193.7.0.0 - 193.7.127.255 { 0xc1078000, 0xc1079fff, REGISTRY_RIPENCC }, // 193.7.128.0 - 193.7.159.255 { 0xc107a000, 0xc107bfff, REGISTRY_RIPENCC }, // 193.7.160.0 - 193.7.191.255 { 0xc107c000, 0xc107dfff, REGISTRY_RIPENCC }, // 193.7.192.0 - 193.7.223.255 { 0xc107e000, 0xc10800ff, REGISTRY_RIPENCC }, // 193.7.224.0 - 193.8.0.255 { 0xc1080100, 0xc10808ff, REGISTRY_RIPENCC }, // 193.8.1.0 - 193.8.8.255 { 0xc1080900, 0xc1080bff, REGISTRY_RIPENCC }, // 193.8.9.0 - 193.8.11.255 { 0xc1080c00, 0xc1080fff, REGISTRY_RIPENCC }, // 193.8.12.0 - 193.8.15.255 { 0xc1081000, 0xc10835ff, REGISTRY_RIPENCC }, // 193.8.16.0 - 193.8.53.255 { 0xc1083600, 0xc10838ff, REGISTRY_RIPENCC }, // 193.8.54.0 - 193.8.56.255 { 0xc1083900, 0xc1083dff, REGISTRY_RIPENCC }, // 193.8.57.0 - 193.8.61.255 { 0xc1083e00, 0xc1083fff, REGISTRY_RIPENCC }, // 193.8.62.0 - 193.8.63.255 { 0xc1084000, 0xc10843ff, REGISTRY_RIPENCC }, // 193.8.64.0 - 193.8.67.255 { 0xc1084400, 0xc1084bff, REGISTRY_RIPENCC }, // 193.8.68.0 - 193.8.75.255 { 0xc1084c00, 0xc1084fff, REGISTRY_RIPENCC }, // 193.8.76.0 - 193.8.79.255 { 0xc1085000, 0xc10855ff, REGISTRY_RIPENCC }, // 193.8.80.0 - 193.8.85.255 { 0xc1085600, 0xc1085bff, REGISTRY_RIPENCC }, // 193.8.86.0 - 193.8.91.255 { 0xc1085c00, 0xc1085fff, REGISTRY_RIPENCC }, // 193.8.92.0 - 193.8.95.255 { 0xc1086000, 0xc1086fff, REGISTRY_RIPENCC }, // 193.8.96.0 - 193.8.111.255 { 0xc1087000, 0xc1087dff, REGISTRY_RIPENCC }, // 193.8.112.0 - 193.8.125.255 { 0xc1087e00, 0xc1087eff, REGISTRY_RIPENCC }, // 193.8.126.0 - 193.8.126.255 { 0xc1087f00, 0xc1087fff, REGISTRY_RIPENCC }, // 193.8.127.0 - 193.8.127.255 { 0xc1088000, 0xc10889ff, REGISTRY_RIPENCC }, // 193.8.128.0 - 193.8.137.255 { 0xc1088a00, 0xc1088aff, REGISTRY_RIPENCC }, // 193.8.138.0 - 193.8.138.255 { 0xc1088b00, 0xc108a3ff, REGISTRY_RIPENCC }, // 193.8.139.0 - 193.8.163.255 { 0xc108a400, 0xc108a4ff, REGISTRY_RIPENCC }, // 193.8.164.0 - 193.8.164.255 { 0xc108a500, 0xc108a6ff, REGISTRY_RIPENCC }, // 193.8.165.0 - 193.8.166.255 { 0xc108a700, 0xc108a9ff, REGISTRY_RIPENCC }, // 193.8.167.0 - 193.8.169.255 { 0xc108aa00, 0xc108aaff, REGISTRY_RIPENCC }, // 193.8.170.0 - 193.8.170.255 { 0xc108ab00, 0xc108adff, REGISTRY_RIPENCC }, // 193.8.171.0 - 193.8.173.255 { 0xc108ae00, 0xc108aeff, REGISTRY_RIPENCC }, // 193.8.174.0 - 193.8.174.255 { 0xc108af00, 0xc108afff, REGISTRY_RIPENCC }, // 193.8.175.0 - 193.8.175.255 { 0xc108b000, 0xc108b7ff, REGISTRY_RIPENCC }, // 193.8.176.0 - 193.8.183.255 { 0xc108b800, 0xc108bbff, REGISTRY_RIPENCC }, // 193.8.184.0 - 193.8.187.255 { 0xc108bc00, 0xc108bdff, REGISTRY_RIPENCC }, // 193.8.188.0 - 193.8.189.255 { 0xc108be00, 0xc108c0ff, REGISTRY_RIPENCC }, // 193.8.190.0 - 193.8.192.255 { 0xc108c100, 0xc108c1ff, REGISTRY_RIPENCC }, // 193.8.193.0 - 193.8.193.255 { 0xc108c200, 0xc108c3ff, REGISTRY_RIPENCC }, // 193.8.194.0 - 193.8.195.255 { 0xc108c400, 0xc108c9ff, REGISTRY_RIPENCC }, // 193.8.196.0 - 193.8.201.255 { 0xc108ca00, 0xc108caff, REGISTRY_RIPENCC }, // 193.8.202.0 - 193.8.202.255 { 0xc108cb00, 0xc108cbff, REGISTRY_ARIN }, // 193.8.203.0 - 193.8.203.255 { 0xc108cc00, 0xc108ccff, REGISTRY_RIPENCC }, // 193.8.204.0 - 193.8.204.255 { 0xc108cd00, 0xc108ddff, REGISTRY_RIPENCC }, // 193.8.205.0 - 193.8.221.255 { 0xc108de00, 0xc108dfff, REGISTRY_RIPENCC }, // 193.8.222.0 - 193.8.223.255 { 0xc108e000, 0xc108e5ff, REGISTRY_RIPENCC }, // 193.8.224.0 - 193.8.229.255 { 0xc108e600, 0xc108e6ff, REGISTRY_RIPENCC }, // 193.8.230.0 - 193.8.230.255 { 0xc108e700, 0xc108eaff, REGISTRY_RIPENCC }, // 193.8.231.0 - 193.8.234.255 { 0xc108eb00, 0xc108ebff, REGISTRY_RIPENCC }, // 193.8.235.0 - 193.8.235.255 { 0xc108ec00, 0xc108eeff, REGISTRY_RIPENCC }, // 193.8.236.0 - 193.8.238.255 { 0xc108ef00, 0xc108efff, REGISTRY_RIPENCC }, // 193.8.239.0 - 193.8.239.255 { 0xc108f000, 0xc108f4ff, REGISTRY_RIPENCC }, // 193.8.240.0 - 193.8.244.255 { 0xc108f500, 0xc108f6ff, REGISTRY_RIPENCC }, // 193.8.245.0 - 193.8.246.255 { 0xc108f700, 0xc108f7ff, REGISTRY_RIPENCC }, // 193.8.247.0 - 193.8.247.255 { 0xc108f800, 0xc108f8ff, REGISTRY_RIPENCC }, // 193.8.248.0 - 193.8.248.255 { 0xc108f900, 0xc108f9ff, REGISTRY_RIPENCC }, // 193.8.249.0 - 193.8.249.255 { 0xc108fa00, 0xc108feff, REGISTRY_RIPENCC }, // 193.8.250.0 - 193.8.254.255 { 0xc108ff00, 0xc108ffff, REGISTRY_RIPENCC }, // 193.8.255.0 - 193.8.255.255 { 0xc1090000, 0xc1090eff, REGISTRY_RIPENCC }, // 193.9.0.0 - 193.9.14.255 { 0xc1090f00, 0xc1090fff, REGISTRY_RIPENCC }, // 193.9.15.0 - 193.9.15.255 { 0xc1091000, 0xc10911ff, REGISTRY_RIPENCC }, // 193.9.16.0 - 193.9.17.255 { 0xc1091200, 0xc10912ff, REGISTRY_RIPENCC }, // 193.9.18.0 - 193.9.18.255 { 0xc1091300, 0xc10913ff, REGISTRY_RIPENCC }, // 193.9.19.0 - 193.9.19.255 { 0xc1091400, 0xc10914ff, REGISTRY_RIPENCC }, // 193.9.20.0 - 193.9.20.255 { 0xc1091500, 0xc10918ff, REGISTRY_RIPENCC }, // 193.9.21.0 - 193.9.24.255 { 0xc1091900, 0xc10919ff, REGISTRY_RIPENCC }, // 193.9.25.0 - 193.9.25.255 { 0xc1091a00, 0xc1091cff, REGISTRY_RIPENCC }, // 193.9.26.0 - 193.9.28.255 { 0xc1091d00, 0xc1093fff, REGISTRY_RIPENCC }, // 193.9.29.0 - 193.9.63.255 { 0xc1094000, 0xc1096fff, REGISTRY_RIPENCC }, // 193.9.64.0 - 193.9.111.255 { 0xc1097000, 0xc10977ff, REGISTRY_RIPENCC }, // 193.9.112.0 - 193.9.119.255 { 0xc1097800, 0xc1097bff, REGISTRY_RIPENCC }, // 193.9.120.0 - 193.9.123.255 { 0xc1097c00, 0xc1097fff, REGISTRY_RIPENCC }, // 193.9.124.0 - 193.9.127.255 { 0xc1098000, 0xc10997ff, REGISTRY_RIPENCC }, // 193.9.128.0 - 193.9.151.255 { 0xc1099800, 0xc1099eff, REGISTRY_RIPENCC }, // 193.9.152.0 - 193.9.158.255 { 0xc1099f00, 0xc109f9ff, REGISTRY_RIPENCC }, // 193.9.159.0 - 193.9.249.255 { 0xc109fa00, 0xc109fbff, REGISTRY_RIPENCC }, // 193.9.250.0 - 193.9.251.255 { 0xc109fc00, 0xc109feff, REGISTRY_RIPENCC }, // 193.9.252.0 - 193.9.254.255 { 0xc109ff00, 0xc11000ff, REGISTRY_RIPENCC }, // 193.9.255.0 - 193.16.0.255 { 0xc1100100, 0xc11001ff, REGISTRY_RIPENCC }, // 193.16.1.0 - 193.16.1.255 { 0xc1100200, 0xc11002ff, REGISTRY_RIPENCC }, // 193.16.2.0 - 193.16.2.255 { 0xc1100300, 0xc11007ff, REGISTRY_RIPENCC }, // 193.16.3.0 - 193.16.7.255 { 0xc1100800, 0xc1100fff, REGISTRY_RIPENCC }, // 193.16.8.0 - 193.16.15.255 { 0xc1101000, 0xc1101fff, REGISTRY_RIPENCC }, // 193.16.16.0 - 193.16.31.255 { 0xc1102000, 0xc1102aff, REGISTRY_RIPENCC }, // 193.16.32.0 - 193.16.42.255 { 0xc1102b00, 0xc1102eff, REGISTRY_RIPENCC }, // 193.16.43.0 - 193.16.46.255 { 0xc1102f00, 0xc1102fff, REGISTRY_RIPENCC }, // 193.16.47.0 - 193.16.47.255 { 0xc1103000, 0xc11063ff, REGISTRY_RIPENCC }, // 193.16.48.0 - 193.16.99.255 { 0xc1106400, 0xc11064ff, REGISTRY_RIPENCC }, // 193.16.100.0 - 193.16.100.255 { 0xc1106500, 0xc11069ff, REGISTRY_RIPENCC }, // 193.16.101.0 - 193.16.105.255 { 0xc1106a00, 0xc1106aff, REGISTRY_RIPENCC }, // 193.16.106.0 - 193.16.106.255 { 0xc1106b00, 0xc1106dff, REGISTRY_RIPENCC }, // 193.16.107.0 - 193.16.109.255 { 0xc1106e00, 0xc1106eff, REGISTRY_RIPENCC }, // 193.16.110.0 - 193.16.110.255 { 0xc1106f00, 0xc1108fff, REGISTRY_RIPENCC }, // 193.16.111.0 - 193.16.143.255 { 0xc1109000, 0xc11090ff, REGISTRY_RIPENCC }, // 193.16.144.0 - 193.16.144.255 { 0xc1109100, 0xc11094ff, REGISTRY_RIPENCC }, // 193.16.145.0 - 193.16.148.255 { 0xc1109500, 0xc11095ff, REGISTRY_RIPENCC }, // 193.16.149.0 - 193.16.149.255 { 0xc1109600, 0xc11096ff, REGISTRY_RIPENCC }, // 193.16.150.0 - 193.16.150.255 { 0xc1109700, 0xc11097ff, REGISTRY_RIPENCC }, // 193.16.151.0 - 193.16.151.255 { 0xc1109800, 0xc1109bff, REGISTRY_RIPENCC }, // 193.16.152.0 - 193.16.155.255 { 0xc1109c00, 0xc1109cff, REGISTRY_RIPENCC }, // 193.16.156.0 - 193.16.156.255 { 0xc1109d00, 0xc1109fff, REGISTRY_RIPENCC }, // 193.16.157.0 - 193.16.159.255 { 0xc110a000, 0xc110a7ff, REGISTRY_RIPENCC }, // 193.16.160.0 - 193.16.167.255 { 0xc110a800, 0xc110d3ff, REGISTRY_RIPENCC }, // 193.16.168.0 - 193.16.211.255 { 0xc110d400, 0xc110d7ff, REGISTRY_RIPENCC }, // 193.16.212.0 - 193.16.215.255 { 0xc110d800, 0xc110dcff, REGISTRY_RIPENCC }, // 193.16.216.0 - 193.16.220.255 { 0xc110dd00, 0xc110dfff, REGISTRY_RIPENCC }, // 193.16.221.0 - 193.16.223.255 { 0xc110e000, 0xc110e3ff, REGISTRY_RIPENCC }, // 193.16.224.0 - 193.16.227.255 { 0xc110e400, 0xc110e4ff, REGISTRY_RIPENCC }, // 193.16.228.0 - 193.16.228.255 { 0xc110e500, 0xc110e5ff, REGISTRY_RIPENCC }, // 193.16.229.0 - 193.16.229.255 { 0xc110e600, 0xc110e7ff, REGISTRY_RIPENCC }, // 193.16.230.0 - 193.16.231.255 { 0xc110e800, 0xc110ebff, REGISTRY_RIPENCC }, // 193.16.232.0 - 193.16.235.255 { 0xc110ec00, 0xc110ecff, REGISTRY_RIPENCC }, // 193.16.236.0 - 193.16.236.255 { 0xc110ed00, 0xc110eeff, REGISTRY_RIPENCC }, // 193.16.237.0 - 193.16.238.255 { 0xc110ef00, 0xc110efff, REGISTRY_RIPENCC }, // 193.16.239.0 - 193.16.239.255 { 0xc110f000, 0xc110f7ff, REGISTRY_RIPENCC }, // 193.16.240.0 - 193.16.247.255 { 0xc110f800, 0xc110feff, REGISTRY_RIPENCC }, // 193.16.248.0 - 193.16.254.255 { 0xc110ff00, 0xc11102ff, REGISTRY_RIPENCC }, // 193.16.255.0 - 193.17.2.255 { 0xc1110300, 0xc11107ff, REGISTRY_RIPENCC }, // 193.17.3.0 - 193.17.7.255 { 0xc1110800, 0xc1110eff, REGISTRY_RIPENCC }, // 193.17.8.0 - 193.17.14.255 { 0xc1110f00, 0xc1110fff, REGISTRY_RIPENCC }, // 193.17.15.0 - 193.17.15.255 { 0xc1111000, 0xc11110ff, REGISTRY_RIPENCC }, // 193.17.16.0 - 193.17.16.255 { 0xc1111100, 0xc11111ff, REGISTRY_RIPENCC }, // 193.17.17.0 - 193.17.17.255 { 0xc1111200, 0xc11113ff, REGISTRY_RIPENCC }, // 193.17.18.0 - 193.17.19.255 { 0xc1111400, 0xc11114ff, REGISTRY_RIPENCC }, // 193.17.20.0 - 193.17.20.255 { 0xc1111500, 0xc11116ff, REGISTRY_RIPENCC }, // 193.17.21.0 - 193.17.22.255 { 0xc1111700, 0xc11118ff, REGISTRY_RIPENCC }, // 193.17.23.0 - 193.17.24.255 { 0xc1111900, 0xc11119ff, REGISTRY_RIPENCC }, // 193.17.25.0 - 193.17.25.255 { 0xc1111a00, 0xc1111aff, REGISTRY_RIPENCC }, // 193.17.26.0 - 193.17.26.255 { 0xc1111b00, 0xc1111bff, REGISTRY_RIPENCC }, // 193.17.27.0 - 193.17.27.255 { 0xc1111c00, 0xc11127ff, REGISTRY_RIPENCC }, // 193.17.28.0 - 193.17.39.255 { 0xc1112900, 0xc11136ff, REGISTRY_RIPENCC }, // 193.17.41.0 - 193.17.54.255 { 0xc1113700, 0xc1113bff, REGISTRY_RIPENCC }, // 193.17.55.0 - 193.17.59.255 { 0xc1113c00, 0xc1113fff, REGISTRY_RIPENCC }, // 193.17.60.0 - 193.17.63.255 { 0xc1114000, 0xc11141ff, REGISTRY_RIPENCC }, // 193.17.64.0 - 193.17.65.255 { 0xc1114200, 0xc11145ff, REGISTRY_RIPENCC }, // 193.17.66.0 - 193.17.69.255 { 0xc1114600, 0xc11146ff, REGISTRY_RIPENCC }, // 193.17.70.0 - 193.17.70.255 { 0xc1114700, 0xc1114fff, REGISTRY_RIPENCC }, // 193.17.71.0 - 193.17.79.255 { 0xc1115000, 0xc11153ff, REGISTRY_RIPENCC }, // 193.17.80.0 - 193.17.83.255 { 0xc1115400, 0xc11155ff, REGISTRY_RIPENCC }, // 193.17.84.0 - 193.17.85.255 { 0xc1115600, 0xc1117fff, REGISTRY_RIPENCC }, // 193.17.86.0 - 193.17.127.255 { 0xc1118000, 0xc111afff, REGISTRY_RIPENCC }, // 193.17.128.0 - 193.17.175.255 { 0xc111b000, 0xc111b1ff, REGISTRY_RIPENCC }, // 193.17.176.0 - 193.17.177.255 { 0xc111b200, 0xc111b2ff, REGISTRY_RIPENCC }, // 193.17.178.0 - 193.17.178.255 { 0xc111b300, 0xc111b7ff, REGISTRY_RIPENCC }, // 193.17.179.0 - 193.17.183.255 { 0xc111b800, 0xc111bbff, REGISTRY_RIPENCC }, // 193.17.184.0 - 193.17.187.255 { 0xc111bc00, 0xc111bfff, REGISTRY_RIPENCC }, // 193.17.188.0 - 193.17.191.255 { 0xc111c000, 0xc111c0ff, REGISTRY_RIPENCC }, // 193.17.192.0 - 193.17.192.255 { 0xc111c100, 0xc111c1ff, REGISTRY_RIPENCC }, // 193.17.193.0 - 193.17.193.255 { 0xc111c200, 0xc111ccff, REGISTRY_RIPENCC }, // 193.17.194.0 - 193.17.204.255 { 0xc111cd00, 0xc111cdff, REGISTRY_RIPENCC }, // 193.17.205.0 - 193.17.205.255 { 0xc111ce00, 0xc111d4ff, REGISTRY_RIPENCC }, // 193.17.206.0 - 193.17.212.255 { 0xc111d500, 0xc111d5ff, REGISTRY_RIPENCC }, // 193.17.213.0 - 193.17.213.255 { 0xc111d600, 0xc111d6ff, REGISTRY_RIPENCC }, // 193.17.214.0 - 193.17.214.255 { 0xc111d700, 0xc111d7ff, REGISTRY_AFRINIC }, // 193.17.215.0 - 193.17.215.255 { 0xc111d800, 0xc111d9ff, REGISTRY_RIPENCC }, // 193.17.216.0 - 193.17.217.255 { 0xc111da00, 0xc111dcff, REGISTRY_RIPENCC }, // 193.17.218.0 - 193.17.220.255 { 0xc111dd00, 0xc111dfff, REGISTRY_RIPENCC }, // 193.17.221.0 - 193.17.223.255 { 0xc111e000, 0xc111e0ff, REGISTRY_RIPENCC }, // 193.17.224.0 - 193.17.224.255 { 0xc111e100, 0xc111e3ff, REGISTRY_RIPENCC }, // 193.17.225.0 - 193.17.227.255 { 0xc111e500, 0xc111e6ff, REGISTRY_RIPENCC }, // 193.17.229.0 - 193.17.230.255 { 0xc111e700, 0xc111e7ff, REGISTRY_RIPENCC }, // 193.17.231.0 - 193.17.231.255 { 0xc111e800, 0xc111fcff, REGISTRY_RIPENCC }, // 193.17.232.0 - 193.17.252.255 { 0xc111fd00, 0xc111fdff, REGISTRY_RIPENCC }, // 193.17.253.0 - 193.17.253.255 { 0xc111fe00, 0xc111feff, REGISTRY_RIPENCC }, // 193.17.254.0 - 193.17.254.255 { 0xc111ff00, 0xc1131fff, REGISTRY_RIPENCC }, // 193.17.255.0 - 193.19.31.255 { 0xc1132000, 0xc11347ff, REGISTRY_RIPENCC }, // 193.19.32.0 - 193.19.71.255 { 0xc1134800, 0xc11349ff, REGISTRY_RIPENCC }, // 193.19.72.0 - 193.19.73.255 { 0xc1134a00, 0xc1135fff, REGISTRY_RIPENCC }, // 193.19.74.0 - 193.19.95.255 { 0xc1136000, 0xc11361ff, REGISTRY_RIPENCC }, // 193.19.96.0 - 193.19.97.255 { 0xc1136400, 0xc11365ff, REGISTRY_RIPENCC }, // 193.19.100.0 - 193.19.101.255 { 0xc1136600, 0xc11369ff, REGISTRY_RIPENCC }, // 193.19.102.0 - 193.19.105.255 { 0xc1136a00, 0xc1136dff, REGISTRY_RIPENCC }, // 193.19.106.0 - 193.19.109.255 { 0xc1136e00, 0xc11377ff, REGISTRY_RIPENCC }, // 193.19.110.0 - 193.19.119.255 { 0xc1137800, 0xc11379ff, REGISTRY_RIPENCC }, // 193.19.120.0 - 193.19.121.255 { 0xc1137a00, 0xc1137fff, REGISTRY_RIPENCC }, // 193.19.122.0 - 193.19.127.255 { 0xc1138000, 0xc11383ff, REGISTRY_RIPENCC }, // 193.19.128.0 - 193.19.131.255 { 0xc1138400, 0xc11393ff, REGISTRY_RIPENCC }, // 193.19.132.0 - 193.19.147.255 { 0xc1139400, 0xc11397ff, REGISTRY_RIPENCC }, // 193.19.148.0 - 193.19.151.255 { 0xc1139800, 0xc113bbff, REGISTRY_RIPENCC }, // 193.19.152.0 - 193.19.187.255 { 0xc113bc00, 0xc113bfff, REGISTRY_RIPENCC }, // 193.19.188.0 - 193.19.191.255 { 0xc113c000, 0xc113c7ff, REGISTRY_RIPENCC }, // 193.19.192.0 - 193.19.199.255 { 0xc113c800, 0xc113cfff, REGISTRY_RIPENCC }, // 193.19.200.0 - 193.19.207.255 { 0xc113d000, 0xc113dfff, REGISTRY_RIPENCC }, // 193.19.208.0 - 193.19.223.255 { 0xc113e000, 0xc113e3ff, REGISTRY_RIPENCC }, // 193.19.224.0 - 193.19.227.255 { 0xc113e400, 0xc113e7ff, REGISTRY_RIPENCC }, // 193.19.228.0 - 193.19.231.255 { 0xc113e800, 0xc113ebff, REGISTRY_AFRINIC }, // 193.19.232.0 - 193.19.235.255 { 0xc113ec00, 0xc113f7ff, REGISTRY_RIPENCC }, // 193.19.236.0 - 193.19.247.255 { 0xc113f800, 0xc113fbff, REGISTRY_RIPENCC }, // 193.19.248.0 - 193.19.251.255 { 0xc113fc00, 0xc11600ff, REGISTRY_RIPENCC }, // 193.19.252.0 - 193.22.0.255 { 0xc1160100, 0xc11601ff, REGISTRY_RIPENCC }, // 193.22.1.0 - 193.22.1.255 { 0xc1160200, 0xc11605ff, REGISTRY_RIPENCC }, // 193.22.2.0 - 193.22.5.255 { 0xc1160600, 0xc11606ff, REGISTRY_RIPENCC }, // 193.22.6.0 - 193.22.6.255 { 0xc1160700, 0xc1160bff, REGISTRY_RIPENCC }, // 193.22.7.0 - 193.22.11.255 { 0xc1160c00, 0xc1160fff, REGISTRY_RIPENCC }, // 193.22.12.0 - 193.22.15.255 { 0xc1161000, 0xc11613ff, REGISTRY_RIPENCC }, // 193.22.16.0 - 193.22.19.255 { 0xc1161400, 0xc1161bff, REGISTRY_RIPENCC }, // 193.22.20.0 - 193.22.27.255 { 0xc1161c00, 0xc1164fff, REGISTRY_RIPENCC }, // 193.22.28.0 - 193.22.79.255 { 0xc1165000, 0xc11650ff, REGISTRY_RIPENCC }, // 193.22.80.0 - 193.22.80.255 { 0xc1165100, 0xc11655ff, REGISTRY_RIPENCC }, // 193.22.81.0 - 193.22.85.255 { 0xc1165600, 0xc11656ff, REGISTRY_RIPENCC }, // 193.22.86.0 - 193.22.86.255 { 0xc1165700, 0xc1165fff, REGISTRY_RIPENCC }, // 193.22.87.0 - 193.22.95.255 { 0xc1166000, 0xc11663ff, REGISTRY_RIPENCC }, // 193.22.96.0 - 193.22.99.255 { 0xc1166400, 0xc11667ff, REGISTRY_RIPENCC }, // 193.22.100.0 - 193.22.103.255 { 0xc1166800, 0xc1166aff, REGISTRY_RIPENCC }, // 193.22.104.0 - 193.22.106.255 { 0xc1166b00, 0xc1166bff, REGISTRY_RIPENCC }, // 193.22.107.0 - 193.22.107.255 { 0xc1166c00, 0xc1166cff, REGISTRY_RIPENCC }, // 193.22.108.0 - 193.22.108.255 { 0xc1166d00, 0xc1167fff, REGISTRY_RIPENCC }, // 193.22.109.0 - 193.22.127.255 { 0xc1168000, 0xc1168bff, REGISTRY_RIPENCC }, // 193.22.128.0 - 193.22.139.255 { 0xc1168c00, 0xc1168cff, REGISTRY_RIPENCC }, // 193.22.140.0 - 193.22.140.255 { 0xc1168d00, 0xc1168dff, REGISTRY_RIPENCC }, // 193.22.141.0 - 193.22.141.255 { 0xc1168e00, 0xc1168fff, REGISTRY_RIPENCC }, // 193.22.142.0 - 193.22.143.255 { 0xc1169000, 0xc1169fff, REGISTRY_RIPENCC }, // 193.22.144.0 - 193.22.159.255 { 0xc116a000, 0xc116a7ff, REGISTRY_RIPENCC }, // 193.22.160.0 - 193.22.167.255 { 0xc116a800, 0xc116a8ff, REGISTRY_RIPENCC }, // 193.22.168.0 - 193.22.168.255 { 0xc116a900, 0xc116a9ff, REGISTRY_RIPENCC }, // 193.22.169.0 - 193.22.169.255 { 0xc116aa00, 0xc116aaff, REGISTRY_RIPENCC }, // 193.22.170.0 - 193.22.170.255 { 0xc116ab00, 0xc116dfff, REGISTRY_RIPENCC }, // 193.22.171.0 - 193.22.223.255 { 0xc116e000, 0xc116f1ff, REGISTRY_RIPENCC }, // 193.22.224.0 - 193.22.241.255 { 0xc116f200, 0xc116f3ff, REGISTRY_RIPENCC }, // 193.22.242.0 - 193.22.243.255 { 0xc116f400, 0xc116f4ff, REGISTRY_RIPENCC }, // 193.22.244.0 - 193.22.244.255 { 0xc116f500, 0xc116f5ff, REGISTRY_RIPENCC }, // 193.22.245.0 - 193.22.245.255 { 0xc116f600, 0xc116f7ff, REGISTRY_RIPENCC }, // 193.22.246.0 - 193.22.247.255 { 0xc116f800, 0xc116feff, REGISTRY_RIPENCC }, // 193.22.248.0 - 193.22.254.255 { 0xc116ff00, 0xc11701ff, REGISTRY_RIPENCC }, // 193.22.255.0 - 193.23.1.255 { 0xc1170200, 0xc11702ff, REGISTRY_RIPENCC }, // 193.23.2.0 - 193.23.2.255 { 0xc1170300, 0xc11707ff, REGISTRY_RIPENCC }, // 193.23.3.0 - 193.23.7.255 { 0xc1170800, 0xc1170fff, REGISTRY_RIPENCC }, // 193.23.8.0 - 193.23.15.255 { 0xc1171000, 0xc1172fff, REGISTRY_RIPENCC }, // 193.23.16.0 - 193.23.47.255 { 0xc1173000, 0xc11731ff, REGISTRY_RIPENCC }, // 193.23.48.0 - 193.23.49.255 { 0xc1173200, 0xc11732ff, REGISTRY_RIPENCC }, // 193.23.50.0 - 193.23.50.255 { 0xc1173300, 0xc11733ff, REGISTRY_RIPENCC }, // 193.23.51.0 - 193.23.51.255 { 0xc1173400, 0xc11734ff, REGISTRY_RIPENCC }, // 193.23.52.0 - 193.23.52.255 { 0xc1173500, 0xc11735ff, REGISTRY_RIPENCC }, // 193.23.53.0 - 193.23.53.255 { 0xc1173600, 0xc11737ff, REGISTRY_RIPENCC }, // 193.23.54.0 - 193.23.55.255 { 0xc1173800, 0xc1173bff, REGISTRY_RIPENCC }, // 193.23.56.0 - 193.23.59.255 { 0xc1173c00, 0xc1173cff, REGISTRY_RIPENCC }, // 193.23.60.0 - 193.23.60.255 { 0xc1173d00, 0xc11771ff, REGISTRY_RIPENCC }, // 193.23.61.0 - 193.23.113.255 { 0xc1177200, 0xc11772ff, REGISTRY_RIPENCC }, // 193.23.114.0 - 193.23.114.255 { 0xc1177300, 0xc11775ff, REGISTRY_RIPENCC }, // 193.23.115.0 - 193.23.117.255 { 0xc1177600, 0xc11776ff, REGISTRY_RIPENCC }, // 193.23.118.0 - 193.23.118.255 { 0xc1177700, 0xc1177cff, REGISTRY_RIPENCC }, // 193.23.119.0 - 193.23.124.255 { 0xc1177d00, 0xc11783ff, REGISTRY_RIPENCC }, // 193.23.125.0 - 193.23.131.255 { 0xc1178400, 0xc11784ff, REGISTRY_RIPENCC }, // 193.23.132.0 - 193.23.132.255 { 0xc1178500, 0xc11785ff, REGISTRY_RIPENCC }, // 193.23.133.0 - 193.23.133.255 { 0xc1178600, 0xc11786ff, REGISTRY_RIPENCC }, // 193.23.134.0 - 193.23.134.255 { 0xc1178700, 0xc11787ff, REGISTRY_RIPENCC }, // 193.23.135.0 - 193.23.135.255 { 0xc1178800, 0xc1178cff, REGISTRY_RIPENCC }, // 193.23.136.0 - 193.23.140.255 { 0xc1178d00, 0xc1178dff, REGISTRY_RIPENCC }, // 193.23.141.0 - 193.23.141.255 { 0xc1178e00, 0xc1178fff, REGISTRY_RIPENCC }, // 193.23.142.0 - 193.23.143.255 { 0xc1179000, 0xc11793ff, REGISTRY_RIPENCC }, // 193.23.144.0 - 193.23.147.255 { 0xc1179400, 0xc1179fff, REGISTRY_RIPENCC }, // 193.23.148.0 - 193.23.159.255 { 0xc117a000, 0xc117a1ff, REGISTRY_RIPENCC }, // 193.23.160.0 - 193.23.161.255 { 0xc117a200, 0xc117a3ff, REGISTRY_RIPENCC }, // 193.23.162.0 - 193.23.163.255 { 0xc117a400, 0xc117a6ff, REGISTRY_RIPENCC }, // 193.23.164.0 - 193.23.166.255 { 0xc117a700, 0xc117acff, REGISTRY_RIPENCC }, // 193.23.167.0 - 193.23.172.255 { 0xc117ad00, 0xc117adff, REGISTRY_RIPENCC }, // 193.23.173.0 - 193.23.173.255 { 0xc117ae00, 0xc117afff, REGISTRY_RIPENCC }, // 193.23.174.0 - 193.23.175.255 { 0xc117b000, 0xc117b3ff, REGISTRY_RIPENCC }, // 193.23.176.0 - 193.23.179.255 { 0xc117b400, 0xc117dfff, REGISTRY_RIPENCC }, // 193.23.180.0 - 193.23.223.255 { 0xc117e000, 0xc117e0ff, REGISTRY_RIPENCC }, // 193.23.224.0 - 193.23.224.255 { 0xc117e100, 0xc117f1ff, REGISTRY_RIPENCC }, // 193.23.225.0 - 193.23.241.255 { 0xc117f200, 0xc117f2ff, REGISTRY_RIPENCC }, // 193.23.242.0 - 193.23.242.255 { 0xc117f300, 0xc117f4ff, REGISTRY_RIPENCC }, // 193.23.243.0 - 193.23.244.255 { 0xc117f500, 0xc117f7ff, REGISTRY_RIPENCC }, // 193.23.245.0 - 193.23.247.255 { 0xc117f800, 0xc117f8ff, REGISTRY_RIPENCC }, // 193.23.248.0 - 193.23.248.255 { 0xc117f900, 0xc117faff, REGISTRY_RIPENCC }, // 193.23.249.0 - 193.23.250.255 { 0xc117fb00, 0xc117fbff, REGISTRY_RIPENCC }, // 193.23.251.0 - 193.23.251.255 { 0xc117fc00, 0xc117fdff, REGISTRY_RIPENCC }, // 193.23.252.0 - 193.23.253.255 { 0xc117fe00, 0xc117ffff, REGISTRY_RIPENCC }, // 193.23.254.0 - 193.23.255.255 { 0xc1180000, 0xc11801ff, REGISTRY_RIPENCC }, // 193.24.0.0 - 193.24.1.255 { 0xc1180200, 0xc11802ff, REGISTRY_RIPENCC }, // 193.24.2.0 - 193.24.2.255 { 0xc1180300, 0xc11806ff, REGISTRY_RIPENCC }, // 193.24.3.0 - 193.24.6.255 { 0xc1180700, 0xc11807ff, REGISTRY_RIPENCC }, // 193.24.7.0 - 193.24.7.255 { 0xc1180800, 0xc1180bff, REGISTRY_RIPENCC }, // 193.24.8.0 - 193.24.11.255 { 0xc1180c00, 0xc1180cff, REGISTRY_RIPENCC }, // 193.24.12.0 - 193.24.12.255 { 0xc1180d00, 0xc1180dff, REGISTRY_RIPENCC }, // 193.24.13.0 - 193.24.13.255 { 0xc1180e00, 0xc1181eff, REGISTRY_RIPENCC }, // 193.24.14.0 - 193.24.30.255 { 0xc1181f00, 0xc1181fff, REGISTRY_RIPENCC }, // 193.24.31.0 - 193.24.31.255 { 0xc1182000, 0xc11823ff, REGISTRY_RIPENCC }, // 193.24.32.0 - 193.24.35.255 { 0xc1182400, 0xc11824ff, REGISTRY_RIPENCC }, // 193.24.36.0 - 193.24.36.255 { 0xc1182500, 0xc11825ff, REGISTRY_RIPENCC }, // 193.24.37.0 - 193.24.37.255 { 0xc1182600, 0xc1182fff, REGISTRY_RIPENCC }, // 193.24.38.0 - 193.24.47.255 { 0xc1183000, 0xc1185fff, REGISTRY_RIPENCC }, // 193.24.48.0 - 193.24.95.255 { 0xc1188000, 0xc118d3ff, REGISTRY_RIPENCC }, // 193.24.128.0 - 193.24.211.255 { 0xc118d400, 0xc118d7ff, REGISTRY_RIPENCC }, // 193.24.212.0 - 193.24.215.255 { 0xc118d800, 0xc118e3ff, REGISTRY_RIPENCC }, // 193.24.216.0 - 193.24.227.255 { 0xc118e400, 0xc118efff, REGISTRY_RIPENCC }, // 193.24.228.0 - 193.24.239.255 { 0xc118f000, 0xc118f7ff, REGISTRY_RIPENCC }, // 193.24.240.0 - 193.24.247.255 { 0xc118f800, 0xc118ffff, REGISTRY_RIPENCC }, // 193.24.248.0 - 193.24.255.255 { 0xc1190000, 0xc1192fff, REGISTRY_RIPENCC }, // 193.25.0.0 - 193.25.47.255 { 0xc1193000, 0xc1193fff, REGISTRY_RIPENCC }, // 193.25.48.0 - 193.25.63.255 { 0xc1194000, 0xc1195fff, REGISTRY_RIPENCC }, // 193.25.64.0 - 193.25.95.255 { 0xc1196000, 0xc11961ff, REGISTRY_RIPENCC }, // 193.25.96.0 - 193.25.97.255 { 0xc1196200, 0xc11963ff, REGISTRY_RIPENCC }, // 193.25.98.0 - 193.25.99.255 { 0xc1196400, 0xc11965ff, REGISTRY_RIPENCC }, // 193.25.100.0 - 193.25.101.255 { 0xc1196600, 0xc11969ff, REGISTRY_RIPENCC }, // 193.25.102.0 - 193.25.105.255 { 0xc1196a00, 0xc1196dff, REGISTRY_RIPENCC }, // 193.25.106.0 - 193.25.109.255 { 0xc1196e00, 0xc11971ff, REGISTRY_RIPENCC }, // 193.25.110.0 - 193.25.113.255 { 0xc1197200, 0xc11973ff, REGISTRY_RIPENCC }, // 193.25.114.0 - 193.25.115.255 { 0xc1197400, 0xc11979ff, REGISTRY_RIPENCC }, // 193.25.116.0 - 193.25.121.255 { 0xc1197a00, 0xc1197bff, REGISTRY_RIPENCC }, // 193.25.122.0 - 193.25.123.255 { 0xc1197c00, 0xc119a7ff, REGISTRY_RIPENCC }, // 193.25.124.0 - 193.25.167.255 { 0xc119a800, 0xc119a9ff, REGISTRY_RIPENCC }, // 193.25.168.0 - 193.25.169.255 { 0xc119aa00, 0xc119bbff, REGISTRY_RIPENCC }, // 193.25.170.0 - 193.25.187.255 { 0xc119bc00, 0xc119bdff, REGISTRY_RIPENCC }, // 193.25.188.0 - 193.25.189.255 { 0xc119be00, 0xc119c1ff, REGISTRY_RIPENCC }, // 193.25.190.0 - 193.25.193.255 { 0xc119c200, 0xc119c2ff, REGISTRY_RIPENCC }, // 193.25.194.0 - 193.25.194.255 { 0xc119c300, 0xc119c3ff, REGISTRY_RIPENCC }, // 193.25.195.0 - 193.25.195.255 { 0xc119c400, 0xc119c4ff, REGISTRY_RIPENCC }, // 193.25.196.0 - 193.25.196.255 { 0xc119c500, 0xc119c7ff, REGISTRY_RIPENCC }, // 193.25.197.0 - 193.25.199.255 { 0xc119c800, 0xc119cfff, REGISTRY_RIPENCC }, // 193.25.200.0 - 193.25.207.255 { 0xc119d000, 0xc119d1ff, REGISTRY_RIPENCC }, // 193.25.208.0 - 193.25.209.255 { 0xc119d200, 0xc119dbff, REGISTRY_RIPENCC }, // 193.25.210.0 - 193.25.219.255 { 0xc119dc00, 0xc119deff, REGISTRY_RIPENCC }, // 193.25.220.0 - 193.25.222.255 { 0xc119df00, 0xc119dfff, REGISTRY_RIPENCC }, // 193.25.223.0 - 193.25.223.255 { 0xc119e000, 0xc119f7ff, REGISTRY_RIPENCC }, // 193.25.224.0 - 193.25.247.255 { 0xc119f800, 0xc119fdff, REGISTRY_RIPENCC }, // 193.25.248.0 - 193.25.253.255 { 0xc119fe00, 0xc119feff, REGISTRY_RIPENCC }, // 193.25.254.0 - 193.25.254.255 { 0xc119ff00, 0xc11a00ff, REGISTRY_RIPENCC }, // 193.25.255.0 - 193.26.0.255 { 0xc11a0100, 0xc11a01ff, REGISTRY_RIPENCC }, // 193.26.1.0 - 193.26.1.255 { 0xc11a0200, 0xc11a02ff, REGISTRY_RIPENCC }, // 193.26.2.0 - 193.26.2.255 { 0xc11a0300, 0xc11a0bff, REGISTRY_RIPENCC }, // 193.26.3.0 - 193.26.11.255 { 0xc11a0c00, 0xc11a0cff, REGISTRY_RIPENCC }, // 193.26.12.0 - 193.26.12.255 { 0xc11a0d00, 0xc11a0dff, REGISTRY_RIPENCC }, // 193.26.13.0 - 193.26.13.255 { 0xc11a0e00, 0xc11a0eff, REGISTRY_RIPENCC }, // 193.26.14.0 - 193.26.14.255 { 0xc11a0f00, 0xc11a14ff, REGISTRY_RIPENCC }, // 193.26.15.0 - 193.26.20.255 { 0xc11a1500, 0xc11a16ff, REGISTRY_RIPENCC }, // 193.26.21.0 - 193.26.22.255 { 0xc11a1700, 0xc11a6fff, REGISTRY_RIPENCC }, // 193.26.23.0 - 193.26.111.255 { 0xc11a7000, 0xc11a77ff, REGISTRY_RIPENCC }, // 193.26.112.0 - 193.26.119.255 { 0xc11a7800, 0xc11a78ff, REGISTRY_RIPENCC }, // 193.26.120.0 - 193.26.120.255 { 0xc11a7900, 0xc11a7aff, REGISTRY_RIPENCC }, // 193.26.121.0 - 193.26.122.255 { 0xc11a7b00, 0xc11a7eff, REGISTRY_RIPENCC }, // 193.26.123.0 - 193.26.126.255 { 0xc11a7f00, 0xc11a7fff, REGISTRY_RIPENCC }, // 193.26.127.0 - 193.26.127.255 { 0xc11a8000, 0xc11a84ff, REGISTRY_RIPENCC }, // 193.26.128.0 - 193.26.132.255 { 0xc11a8500, 0xc11a85ff, REGISTRY_RIPENCC }, // 193.26.133.0 - 193.26.133.255 { 0xc11a8600, 0xc11a93ff, REGISTRY_RIPENCC }, // 193.26.134.0 - 193.26.147.255 { 0xc11a9400, 0xc11a9fff, REGISTRY_RIPENCC }, // 193.26.148.0 - 193.26.159.255 { 0xc11aa000, 0xc11acfff, REGISTRY_RIPENCC }, // 193.26.160.0 - 193.26.207.255 { 0xc11ad000, 0xc11ad0ff, REGISTRY_RIPENCC }, // 193.26.208.0 - 193.26.208.255 { 0xc11ad100, 0xc11ad1ff, REGISTRY_RIPENCC }, // 193.26.209.0 - 193.26.209.255 { 0xc11ad200, 0xc11ad5ff, REGISTRY_RIPENCC }, // 193.26.210.0 - 193.26.213.255 { 0xc11ad600, 0xc11ad6ff, REGISTRY_RIPENCC }, // 193.26.214.0 - 193.26.214.255 { 0xc11ad700, 0xc11ad7ff, REGISTRY_RIPENCC }, // 193.26.215.0 - 193.26.215.255 { 0xc11ad800, 0xc11adaff, REGISTRY_RIPENCC }, // 193.26.216.0 - 193.26.218.255 { 0xc11adb00, 0xc11adbff, REGISTRY_RIPENCC }, // 193.26.219.0 - 193.26.219.255 { 0xc11adc00, 0xc11adeff, REGISTRY_RIPENCC }, // 193.26.220.0 - 193.26.222.255 { 0xc11adf00, 0xc11adfff, REGISTRY_RIPENCC }, // 193.26.223.0 - 193.26.223.255 { 0xc11ae000, 0xc11b07ff, REGISTRY_RIPENCC }, // 193.26.224.0 - 193.27.7.255 { 0xc11b0800, 0xc11b0aff, REGISTRY_RIPENCC }, // 193.27.8.0 - 193.27.10.255 { 0xc11b0b00, 0xc11b0bff, REGISTRY_RIPENCC }, // 193.27.11.0 - 193.27.11.255 { 0xc11b0c00, 0xc11b11ff, REGISTRY_RIPENCC }, // 193.27.12.0 - 193.27.17.255 { 0xc11b1200, 0xc11b12ff, REGISTRY_RIPENCC }, // 193.27.18.0 - 193.27.18.255 { 0xc11b1300, 0xc11b13ff, REGISTRY_RIPENCC }, // 193.27.19.0 - 193.27.19.255 { 0xc11b1400, 0xc11b14ff, REGISTRY_RIPENCC }, // 193.27.20.0 - 193.27.20.255 { 0xc11b1500, 0xc11b15ff, REGISTRY_RIPENCC }, // 193.27.21.0 - 193.27.21.255 { 0xc11b1600, 0xc11b16ff, REGISTRY_RIPENCC }, // 193.27.22.0 - 193.27.22.255 { 0xc11b1700, 0xc11b27ff, REGISTRY_RIPENCC }, // 193.27.23.0 - 193.27.39.255 { 0xc11b2800, 0xc11b2cff, REGISTRY_RIPENCC }, // 193.27.40.0 - 193.27.44.255 { 0xc11b2d00, 0xc11b2dff, REGISTRY_RIPENCC }, // 193.27.45.0 - 193.27.45.255 { 0xc11b2e00, 0xc11b3fff, REGISTRY_RIPENCC }, // 193.27.46.0 - 193.27.63.255 { 0xc11b4000, 0xc11b41ff, REGISTRY_RIPENCC }, // 193.27.64.0 - 193.27.65.255 { 0xc11b4200, 0xc11b4bff, REGISTRY_RIPENCC }, // 193.27.66.0 - 193.27.75.255 { 0xc11b4c00, 0xc11b4dff, REGISTRY_RIPENCC }, // 193.27.76.0 - 193.27.77.255 { 0xc11b4e00, 0xc11b59ff, REGISTRY_RIPENCC }, // 193.27.78.0 - 193.27.89.255 { 0xc11b5a00, 0xc11b5bff, REGISTRY_RIPENCC }, // 193.27.90.0 - 193.27.91.255 { 0xc11b5c00, 0xc11bc1ff, REGISTRY_RIPENCC }, // 193.27.92.0 - 193.27.193.255 { 0xc11bc200, 0xc11bc3ff, REGISTRY_RIPENCC }, // 193.27.194.0 - 193.27.195.255 { 0xc11bc400, 0xc11bd3ff, REGISTRY_RIPENCC }, // 193.27.196.0 - 193.27.211.255 { 0xc11bd400, 0xc11bd5ff, REGISTRY_RIPENCC }, // 193.27.212.0 - 193.27.213.255 { 0xc11bd600, 0xc11bdfff, REGISTRY_RIPENCC }, // 193.27.214.0 - 193.27.223.255 { 0xc11be000, 0xc11be1ff, REGISTRY_RIPENCC }, // 193.27.224.0 - 193.27.225.255 { 0xc11be200, 0xc11be3ff, REGISTRY_RIPENCC }, // 193.27.226.0 - 193.27.227.255 { 0xc11be400, 0xc11be5ff, REGISTRY_RIPENCC }, // 193.27.228.0 - 193.27.229.255 { 0xc11be600, 0xc11be7ff, REGISTRY_RIPENCC }, // 193.27.230.0 - 193.27.231.255 { 0xc11be800, 0xc11bebff, REGISTRY_RIPENCC }, // 193.27.232.0 - 193.27.235.255 { 0xc11bec00, 0xc11bf5ff, REGISTRY_RIPENCC }, // 193.27.236.0 - 193.27.245.255 { 0xc11bf600, 0xc11bf9ff, REGISTRY_RIPENCC }, // 193.27.246.0 - 193.27.249.255 { 0xc11bfa00, 0xc11c00ff, REGISTRY_RIPENCC }, // 193.27.250.0 - 193.28.0.255 { 0xc11c0100, 0xc11c04ff, REGISTRY_RIPENCC }, // 193.28.1.0 - 193.28.4.255 { 0xc11c0500, 0xc11c06ff, REGISTRY_RIPENCC }, // 193.28.5.0 - 193.28.6.255 { 0xc11c0700, 0xc11c07ff, REGISTRY_RIPENCC }, // 193.28.7.0 - 193.28.7.255 { 0xc11c0800, 0xc11c0aff, REGISTRY_RIPENCC }, // 193.28.8.0 - 193.28.10.255 { 0xc11c0b00, 0xc11c0bff, REGISTRY_RIPENCC }, // 193.28.11.0 - 193.28.11.255 { 0xc11c0c00, 0xc11c0dff, REGISTRY_RIPENCC }, // 193.28.12.0 - 193.28.13.255 { 0xc11c0e00, 0xc11c0eff, REGISTRY_RIPENCC }, // 193.28.14.0 - 193.28.14.255 { 0xc11c0f00, 0xc11c23ff, REGISTRY_RIPENCC }, // 193.28.15.0 - 193.28.35.255 { 0xc11c2400, 0xc11c27ff, REGISTRY_RIPENCC }, // 193.28.36.0 - 193.28.39.255 { 0xc11c2800, 0xc11c2aff, REGISTRY_RIPENCC }, // 193.28.40.0 - 193.28.42.255 { 0xc11c2b00, 0xc11c2bff, REGISTRY_RIPENCC }, // 193.28.43.0 - 193.28.43.255 { 0xc11c2c00, 0xc11c32ff, REGISTRY_RIPENCC }, // 193.28.44.0 - 193.28.50.255 { 0xc11c3300, 0xc11c33ff, REGISTRY_RIPENCC }, // 193.28.51.0 - 193.28.51.255 { 0xc11c3400, 0xc11c35ff, REGISTRY_RIPENCC }, // 193.28.52.0 - 193.28.53.255 { 0xc11c3600, 0xc11c36ff, REGISTRY_RIPENCC }, // 193.28.54.0 - 193.28.54.255 { 0xc11c3700, 0xc11c38ff, REGISTRY_RIPENCC }, // 193.28.55.0 - 193.28.56.255 { 0xc11c3900, 0xc11c3cff, REGISTRY_RIPENCC }, // 193.28.57.0 - 193.28.60.255 { 0xc11c3d00, 0xc11c3dff, REGISTRY_RIPENCC }, // 193.28.61.0 - 193.28.61.255 { 0xc11c3e00, 0xc11c3fff, REGISTRY_RIPENCC }, // 193.28.62.0 - 193.28.63.255 { 0xc11c4000, 0xc11c54ff, REGISTRY_RIPENCC }, // 193.28.64.0 - 193.28.84.255 { 0xc11c5500, 0xc11c55ff, REGISTRY_RIPENCC }, // 193.28.85.0 - 193.28.85.255 { 0xc11c5600, 0xc11c59ff, REGISTRY_RIPENCC }, // 193.28.86.0 - 193.28.89.255 { 0xc11c5a00, 0xc11c5aff, REGISTRY_RIPENCC }, // 193.28.90.0 - 193.28.90.255 { 0xc11c5b00, 0xc11c5cff, REGISTRY_RIPENCC }, // 193.28.91.0 - 193.28.92.255 { 0xc11c5d00, 0xc11c5dff, REGISTRY_RIPENCC }, // 193.28.93.0 - 193.28.93.255 { 0xc11c5e00, 0xc11c5fff, REGISTRY_RIPENCC }, // 193.28.94.0 - 193.28.95.255 { 0xc11c6000, 0xc11c6aff, REGISTRY_RIPENCC }, // 193.28.96.0 - 193.28.106.255 { 0xc11c6b00, 0xc11c8fff, REGISTRY_RIPENCC }, // 193.28.107.0 - 193.28.143.255 { 0xc11c9000, 0xc11c90ff, REGISTRY_RIPENCC }, // 193.28.144.0 - 193.28.144.255 { 0xc11c9100, 0xc11c93ff, REGISTRY_RIPENCC }, // 193.28.145.0 - 193.28.147.255 { 0xc11c9400, 0xc11c94ff, REGISTRY_RIPENCC }, // 193.28.148.0 - 193.28.148.255 { 0xc11c9500, 0xc11c9cff, REGISTRY_RIPENCC }, // 193.28.149.0 - 193.28.156.255 { 0xc11c9d00, 0xc11c9dff, REGISTRY_RIPENCC }, // 193.28.157.0 - 193.28.157.255 { 0xc11c9e00, 0xc11cb0ff, REGISTRY_RIPENCC }, // 193.28.158.0 - 193.28.176.255 { 0xc11cb100, 0xc11cb3ff, REGISTRY_RIPENCC }, // 193.28.177.0 - 193.28.179.255 { 0xc11cb400, 0xc11cb5ff, REGISTRY_RIPENCC }, // 193.28.180.0 - 193.28.181.255 { 0xc11cb600, 0xc11cb6ff, REGISTRY_RIPENCC }, // 193.28.182.0 - 193.28.182.255 { 0xc11cb700, 0xc11cb9ff, REGISTRY_RIPENCC }, // 193.28.183.0 - 193.28.185.255 { 0xc11cbb00, 0xc11cbdff, REGISTRY_RIPENCC }, // 193.28.187.0 - 193.28.189.255 { 0xc11cbe00, 0xc11cbfff, REGISTRY_RIPENCC }, // 193.28.190.0 - 193.28.191.255 { 0xc11cc000, 0xc11cc9ff, REGISTRY_RIPENCC }, // 193.28.192.0 - 193.28.201.255 { 0xc11cca00, 0xc11ccaff, REGISTRY_RIPENCC }, // 193.28.202.0 - 193.28.202.255 { 0xc11ccb00, 0xc11cdbff, REGISTRY_RIPENCC }, // 193.28.203.0 - 193.28.219.255 { 0xc11cdc00, 0xc11cdfff, REGISTRY_RIPENCC }, // 193.28.220.0 - 193.28.223.255 { 0xc11ce000, 0xc11ce3ff, REGISTRY_RIPENCC }, // 193.28.224.0 - 193.28.227.255 { 0xc11ce400, 0xc11ce4ff, REGISTRY_RIPENCC }, // 193.28.228.0 - 193.28.228.255 { 0xc11ce500, 0xc11cecff, REGISTRY_RIPENCC }, // 193.28.229.0 - 193.28.236.255 { 0xc11ced00, 0xc11cedff, REGISTRY_RIPENCC }, // 193.28.237.0 - 193.28.237.255 { 0xc11cee00, 0xc11ceeff, REGISTRY_RIPENCC }, // 193.28.238.0 - 193.28.238.255 { 0xc11cef00, 0xc11cefff, REGISTRY_RIPENCC }, // 193.28.239.0 - 193.28.239.255 { 0xc11cf000, 0xc11cfaff, REGISTRY_RIPENCC }, // 193.28.240.0 - 193.28.250.255 { 0xc11cfb00, 0xc11cfdff, REGISTRY_RIPENCC }, // 193.28.251.0 - 193.28.253.255 { 0xc11cfe00, 0xc11cfeff, REGISTRY_RIPENCC }, // 193.28.254.0 - 193.28.254.255 { 0xc11cff00, 0xc11cffff, REGISTRY_RIPENCC }, // 193.28.255.0 - 193.28.255.255 { 0xc11d0000, 0xc11d00ff, REGISTRY_RIPENCC }, // 193.29.0.0 - 193.29.0.255 { 0xc11d0100, 0xc11d01ff, REGISTRY_RIPENCC }, // 193.29.1.0 - 193.29.1.255 { 0xc11d0200, 0xc11d03ff, REGISTRY_RIPENCC }, // 193.29.2.0 - 193.29.3.255 { 0xc11d0400, 0xc11d04ff, REGISTRY_RIPENCC }, // 193.29.4.0 - 193.29.4.255 { 0xc11d0500, 0xc11d05ff, REGISTRY_RIPENCC }, // 193.29.5.0 - 193.29.5.255 { 0xc11d0600, 0xc11d08ff, REGISTRY_RIPENCC }, // 193.29.6.0 - 193.29.8.255 { 0xc11d0900, 0xc11d09ff, REGISTRY_RIPENCC }, // 193.29.9.0 - 193.29.9.255 { 0xc11d0a00, 0xc11d0fff, REGISTRY_RIPENCC }, // 193.29.10.0 - 193.29.15.255 { 0xc11d1000, 0xc11d10ff, REGISTRY_RIPENCC }, // 193.29.16.0 - 193.29.16.255 { 0xc11d1100, 0xc11d12ff, REGISTRY_RIPENCC }, // 193.29.17.0 - 193.29.18.255 { 0xc11d1300, 0xc11d13ff, REGISTRY_RIPENCC }, // 193.29.19.0 - 193.29.19.255 { 0xc11d1400, 0xc11d15ff, REGISTRY_RIPENCC }, // 193.29.20.0 - 193.29.21.255 { 0xc11d1600, 0xc11d17ff, REGISTRY_RIPENCC }, // 193.29.22.0 - 193.29.23.255 { 0xc11d1800, 0xc11d18ff, REGISTRY_RIPENCC }, // 193.29.24.0 - 193.29.24.255 { 0xc11d1900, 0xc11d19ff, REGISTRY_RIPENCC }, // 193.29.25.0 - 193.29.25.255 { 0xc11d1a00, 0xc11d1aff, REGISTRY_RIPENCC }, // 193.29.26.0 - 193.29.26.255 { 0xc11d1b00, 0xc11d1bff, REGISTRY_RIPENCC }, // 193.29.27.0 - 193.29.27.255 { 0xc11d1c00, 0xc11d25ff, REGISTRY_RIPENCC }, // 193.29.28.0 - 193.29.37.255 { 0xc11d2600, 0xc11d27ff, REGISTRY_RIPENCC }, // 193.29.38.0 - 193.29.39.255 { 0xc11d2800, 0xc11d29ff, REGISTRY_RIPENCC }, // 193.29.40.0 - 193.29.41.255 { 0xc11d2a00, 0xc11d2aff, REGISTRY_ARIN }, // 193.29.42.0 - 193.29.42.255 { 0xc11d2b00, 0xc11d2bff, REGISTRY_RIPENCC }, // 193.29.43.0 - 193.29.43.255 { 0xc11d2c00, 0xc11d2fff, REGISTRY_RIPENCC }, // 193.29.44.0 - 193.29.47.255 { 0xc11d3000, 0xc11d34ff, REGISTRY_RIPENCC }, // 193.29.48.0 - 193.29.52.255 { 0xc11d3500, 0xc11d35ff, REGISTRY_RIPENCC }, // 193.29.53.0 - 193.29.53.255 { 0xc11d3600, 0xc11d37ff, REGISTRY_RIPENCC }, // 193.29.54.0 - 193.29.55.255 { 0xc11d3800, 0xc11d3fff, REGISTRY_RIPENCC }, // 193.29.56.0 - 193.29.63.255 { 0xc11d4000, 0xc11d5fff, REGISTRY_RIPENCC }, // 193.29.64.0 - 193.29.95.255 { 0xc11d6000, 0xc11d6fff, REGISTRY_RIPENCC }, // 193.29.96.0 - 193.29.111.255 { 0xc11d7000, 0xc11d7fff, REGISTRY_RIPENCC }, // 193.29.112.0 - 193.29.127.255 { 0xc11d8000, 0xc11d81ff, REGISTRY_RIPENCC }, // 193.29.128.0 - 193.29.129.255 { 0xc11d8200, 0xc11db0ff, REGISTRY_RIPENCC }, // 193.29.130.0 - 193.29.176.255 { 0xc11db100, 0xc11db1ff, REGISTRY_ARIN }, // 193.29.177.0 - 193.29.177.255 { 0xc11db200, 0xc11db9ff, REGISTRY_RIPENCC }, // 193.29.178.0 - 193.29.185.255 { 0xc11dba00, 0xc11dbcff, REGISTRY_RIPENCC }, // 193.29.186.0 - 193.29.188.255 { 0xc11dbd00, 0xc11dbdff, REGISTRY_ARIN }, // 193.29.189.0 - 193.29.189.255 { 0xc11dbe00, 0xc11dbfff, REGISTRY_RIPENCC }, // 193.29.190.0 - 193.29.191.255 { 0xc11dc000, 0xc11dc8ff, REGISTRY_RIPENCC }, // 193.29.192.0 - 193.29.200.255 { 0xc11dc900, 0xc11dc9ff, REGISTRY_RIPENCC }, // 193.29.201.0 - 193.29.201.255 { 0xc11dca00, 0xc11ddfff, REGISTRY_RIPENCC }, // 193.29.202.0 - 193.29.223.255 { 0xc11de000, 0xc11de3ff, REGISTRY_RIPENCC }, // 193.29.224.0 - 193.29.227.255 { 0xc11de400, 0xc11de5ff, REGISTRY_RIPENCC }, // 193.29.228.0 - 193.29.229.255 { 0xc11de600, 0xc11de7ff, REGISTRY_RIPENCC }, // 193.29.230.0 - 193.29.231.255 { 0xc11de800, 0xc11df7ff, REGISTRY_RIPENCC }, // 193.29.232.0 - 193.29.247.255 { 0xc11df800, 0xc11df9ff, REGISTRY_RIPENCC }, // 193.29.248.0 - 193.29.249.255 { 0xc11dfa00, 0xc11dfaff, REGISTRY_RIPENCC }, // 193.29.250.0 - 193.29.250.255 { 0xc11dfb00, 0xc11dfbff, REGISTRY_ARIN }, // 193.29.251.0 - 193.29.251.255 { 0xc11dfc00, 0xc11dfdff, REGISTRY_RIPENCC }, // 193.29.252.0 - 193.29.253.255 { 0xc11dfe00, 0xc11dfeff, REGISTRY_RIPENCC }, // 193.29.254.0 - 193.29.254.255 { 0xc11dff00, 0xc11e00ff, REGISTRY_RIPENCC }, // 193.29.255.0 - 193.30.0.255 { 0xc11e0100, 0xc11e02ff, REGISTRY_RIPENCC }, // 193.30.1.0 - 193.30.2.255 { 0xc11e0300, 0xc11e04ff, REGISTRY_RIPENCC }, // 193.30.3.0 - 193.30.4.255 { 0xc11e0500, 0xc11e0fff, REGISTRY_RIPENCC }, // 193.30.5.0 - 193.30.15.255 { 0xc11e1000, 0xc11e12ff, REGISTRY_RIPENCC }, // 193.30.16.0 - 193.30.18.255 { 0xc11e1300, 0xc11e13ff, REGISTRY_RIPENCC }, // 193.30.19.0 - 193.30.19.255 { 0xc11e1400, 0xc11e14ff, REGISTRY_RIPENCC }, // 193.30.20.0 - 193.30.20.255 { 0xc11e1500, 0xc11e17ff, REGISTRY_RIPENCC }, // 193.30.21.0 - 193.30.23.255 { 0xc11e1800, 0xc11e1dff, REGISTRY_RIPENCC }, // 193.30.24.0 - 193.30.29.255 { 0xc11e1e00, 0xc11e23ff, REGISTRY_RIPENCC }, // 193.30.30.0 - 193.30.35.255 { 0xc11e2400, 0xc11e27ff, REGISTRY_RIPENCC }, // 193.30.36.0 - 193.30.39.255 { 0xc11e2800, 0xc11e28ff, REGISTRY_RIPENCC }, // 193.30.40.0 - 193.30.40.255 { 0xc11e2900, 0xc11e2aff, REGISTRY_RIPENCC }, // 193.30.41.0 - 193.30.42.255 { 0xc11e2b00, 0xc11e2bff, REGISTRY_RIPENCC }, // 193.30.43.0 - 193.30.43.255 { 0xc11e2c00, 0xc11e4fff, REGISTRY_RIPENCC }, // 193.30.44.0 - 193.30.79.255 { 0xc11e5000, 0xc11e57ff, REGISTRY_RIPENCC }, // 193.30.80.0 - 193.30.87.255 { 0xc11e5800, 0xc11e58ff, REGISTRY_ARIN }, // 193.30.88.0 - 193.30.88.255 { 0xc11e5900, 0xc11e59ff, REGISTRY_RIPENCC }, // 193.30.89.0 - 193.30.89.255 { 0xc11e5a00, 0xc11e5cff, REGISTRY_RIPENCC }, // 193.30.90.0 - 193.30.92.255 { 0xc11e5d00, 0xc11e5dff, REGISTRY_RIPENCC }, // 193.30.93.0 - 193.30.93.255 { 0xc11e5e00, 0xc11e67ff, REGISTRY_RIPENCC }, // 193.30.94.0 - 193.30.103.255 { 0xc11e6800, 0xc11e6bff, REGISTRY_RIPENCC }, // 193.30.104.0 - 193.30.107.255 { 0xc11e6c00, 0xc11e6dff, REGISTRY_RIPENCC }, // 193.30.108.0 - 193.30.109.255 { 0xc11e6e00, 0xc11e70ff, REGISTRY_RIPENCC }, // 193.30.110.0 - 193.30.112.255 { 0xc11e7100, 0xc11e81ff, REGISTRY_RIPENCC }, // 193.30.113.0 - 193.30.129.255 { 0xc11e8200, 0xc11e85ff, REGISTRY_RIPENCC }, // 193.30.130.0 - 193.30.133.255 { 0xc11e8600, 0xc11e86ff, REGISTRY_RIPENCC }, // 193.30.134.0 - 193.30.134.255 { 0xc11e8700, 0xc11ea1ff, REGISTRY_RIPENCC }, // 193.30.135.0 - 193.30.161.255 { 0xc11ea200, 0xc11ea2ff, REGISTRY_RIPENCC }, // 193.30.162.0 - 193.30.162.255 { 0xc11ea300, 0xc11ea4ff, REGISTRY_RIPENCC }, // 193.30.163.0 - 193.30.164.255 { 0xc11ea500, 0xc11ea7ff, REGISTRY_RIPENCC }, // 193.30.165.0 - 193.30.167.255 { 0xc11ea800, 0xc11efdff, REGISTRY_RIPENCC }, // 193.30.168.0 - 193.30.253.255 { 0xc11efe00, 0xc11effff, REGISTRY_RIPENCC }, // 193.30.254.0 - 193.30.255.255 { 0xc11f0000, 0xc11f03ff, REGISTRY_RIPENCC }, // 193.31.0.0 - 193.31.3.255 { 0xc11f0400, 0xc11f06ff, REGISTRY_RIPENCC }, // 193.31.4.0 - 193.31.6.255 { 0xc11f0700, 0xc11f0bff, REGISTRY_RIPENCC }, // 193.31.7.0 - 193.31.11.255 { 0xc11f0c00, 0xc11f11ff, REGISTRY_RIPENCC }, // 193.31.12.0 - 193.31.17.255 { 0xc11f1200, 0xc11f13ff, REGISTRY_RIPENCC }, // 193.31.18.0 - 193.31.19.255 { 0xc11f1400, 0xc11f3cff, REGISTRY_RIPENCC }, // 193.31.20.0 - 193.31.60.255 { 0xc11f3d00, 0xc11f3dff, REGISTRY_RIPENCC }, // 193.31.61.0 - 193.31.61.255 { 0xc11f3e00, 0xc11f3eff, REGISTRY_RIPENCC }, // 193.31.62.0 - 193.31.62.255 { 0xc11f3f00, 0xc11f3fff, REGISTRY_RIPENCC }, // 193.31.63.0 - 193.31.63.255 { 0xc11f4000, 0xc11f4fff, REGISTRY_RIPENCC }, // 193.31.64.0 - 193.31.79.255 { 0xc11f5000, 0xc11f5fff, REGISTRY_RIPENCC }, // 193.31.80.0 - 193.31.95.255 { 0xc11f6000, 0xc11f7fff, REGISTRY_RIPENCC }, // 193.31.96.0 - 193.31.127.255 { 0xc11f8000, 0xc11fcfff, REGISTRY_RIPENCC }, // 193.31.128.0 - 193.31.207.255 { 0xc11fd000, 0xc11fdfff, REGISTRY_RIPENCC }, // 193.31.208.0 - 193.31.223.255 { 0xc11fe000, 0xc11ff7ff, REGISTRY_RIPENCC }, // 193.31.224.0 - 193.31.247.255 { 0xc11ff800, 0xc11ffbff, REGISTRY_RIPENCC }, // 193.31.248.0 - 193.31.251.255 { 0xc11ffc00, 0xc11ffdff, REGISTRY_RIPENCC }, // 193.31.252.0 - 193.31.253.255 { 0xc11ffe00, 0xc12002ff, REGISTRY_RIPENCC }, // 193.31.254.0 - 193.32.2.255 { 0xc1200300, 0xc12003ff, REGISTRY_RIPENCC }, // 193.32.3.0 - 193.32.3.255 { 0xc1200400, 0xc12005ff, REGISTRY_RIPENCC }, // 193.32.4.0 - 193.32.5.255 { 0xc1200600, 0xc12007ff, REGISTRY_RIPENCC }, // 193.32.6.0 - 193.32.7.255 { 0xc1200800, 0xc12008ff, REGISTRY_RIPENCC }, // 193.32.8.0 - 193.32.8.255 { 0xc1200900, 0xc12009ff, REGISTRY_ARIN }, // 193.32.9.0 - 193.32.9.255 { 0xc1200a00, 0xc1200bff, REGISTRY_RIPENCC }, // 193.32.10.0 - 193.32.11.255 { 0xc1200c00, 0xc1200fff, REGISTRY_RIPENCC }, // 193.32.12.0 - 193.32.15.255 { 0xc1201000, 0xc12010ff, REGISTRY_RIPENCC }, // 193.32.16.0 - 193.32.16.255 { 0xc1201100, 0xc12016ff, REGISTRY_RIPENCC }, // 193.32.17.0 - 193.32.22.255 { 0xc1201700, 0xc12017ff, REGISTRY_RIPENCC }, // 193.32.23.0 - 193.32.23.255 { 0xc1201800, 0xc1201bff, REGISTRY_RIPENCC }, // 193.32.24.0 - 193.32.27.255 { 0xc1201c00, 0xc1201dff, REGISTRY_RIPENCC }, // 193.32.28.0 - 193.32.29.255 { 0xc1201e00, 0xc12023ff, REGISTRY_RIPENCC }, // 193.32.30.0 - 193.32.35.255 { 0xc1202400, 0xc12024ff, REGISTRY_RIPENCC }, // 193.32.36.0 - 193.32.36.255 { 0xc1202500, 0xc12027ff, REGISTRY_RIPENCC }, // 193.32.37.0 - 193.32.39.255 { 0xc1202800, 0xc12028ff, REGISTRY_RIPENCC }, // 193.32.40.0 - 193.32.40.255 { 0xc1202900, 0xc12039ff, REGISTRY_RIPENCC }, // 193.32.41.0 - 193.32.57.255 { 0xc1203a00, 0xc1203bff, REGISTRY_RIPENCC }, // 193.32.58.0 - 193.32.59.255 { 0xc1203c00, 0xc12041ff, REGISTRY_RIPENCC }, // 193.32.60.0 - 193.32.65.255 { 0xc1204200, 0xc12047ff, REGISTRY_RIPENCC }, // 193.32.66.0 - 193.32.71.255 { 0xc1204800, 0xc12053ff, REGISTRY_RIPENCC }, // 193.32.72.0 - 193.32.83.255 { 0xc1205400, 0xc12057ff, REGISTRY_RIPENCC }, // 193.32.84.0 - 193.32.87.255 { 0xc1205800, 0xc1205bff, REGISTRY_RIPENCC }, // 193.32.88.0 - 193.32.91.255 { 0xc1205c00, 0xc12063ff, REGISTRY_RIPENCC }, // 193.32.92.0 - 193.32.99.255 { 0xc1206400, 0xc12065ff, REGISTRY_RIPENCC }, // 193.32.100.0 - 193.32.101.255 { 0xc1206600, 0xc12066ff, REGISTRY_RIPENCC }, // 193.32.102.0 - 193.32.102.255 { 0xc1206700, 0xc12067ff, REGISTRY_RIPENCC }, // 193.32.103.0 - 193.32.103.255 { 0xc1206800, 0xc12069ff, REGISTRY_RIPENCC }, // 193.32.104.0 - 193.32.105.255 { 0xc1206a00, 0xc1206dff, REGISTRY_RIPENCC }, // 193.32.106.0 - 193.32.109.255 { 0xc1206e00, 0xc1206eff, REGISTRY_RIPENCC }, // 193.32.110.0 - 193.32.110.255 { 0xc1206f00, 0xc1206fff, REGISTRY_RIPENCC }, // 193.32.111.0 - 193.32.111.255 { 0xc1207000, 0xc12075ff, REGISTRY_RIPENCC }, // 193.32.112.0 - 193.32.117.255 { 0xc1207600, 0xc1207dff, REGISTRY_RIPENCC }, // 193.32.118.0 - 193.32.125.255 { 0xc1207e00, 0xc120f9ff, REGISTRY_RIPENCC }, // 193.32.126.0 - 193.32.249.255 { 0xc120fa00, 0xc12105ff, REGISTRY_RIPENCC }, // 193.32.250.0 - 193.33.5.255 { 0xc1210600, 0xc12107ff, REGISTRY_RIPENCC }, // 193.33.6.0 - 193.33.7.255 { 0xc1210800, 0xc1211bff, REGISTRY_RIPENCC }, // 193.33.8.0 - 193.33.27.255 { 0xc1211c00, 0xc1211fff, REGISTRY_RIPENCC }, // 193.33.28.0 - 193.33.31.255 { 0xc1212000, 0xc12121ff, REGISTRY_RIPENCC }, // 193.33.32.0 - 193.33.33.255 { 0xc1212200, 0xc12123ff, REGISTRY_RIPENCC }, // 193.33.34.0 - 193.33.35.255 { 0xc1212400, 0xc12127ff, REGISTRY_RIPENCC }, // 193.33.36.0 - 193.33.39.255 { 0xc1212800, 0xc12129ff, REGISTRY_RIPENCC }, // 193.33.40.0 - 193.33.41.255 { 0xc1212a00, 0xc12131ff, REGISTRY_RIPENCC }, // 193.33.42.0 - 193.33.49.255 { 0xc1213200, 0xc12133ff, REGISTRY_RIPENCC }, // 193.33.50.0 - 193.33.51.255 { 0xc1213400, 0xc12139ff, REGISTRY_RIPENCC }, // 193.33.52.0 - 193.33.57.255 { 0xc1213a00, 0xc1213bff, REGISTRY_RIPENCC }, // 193.33.58.0 - 193.33.59.255 { 0xc1213c00, 0xc1213fff, REGISTRY_RIPENCC }, // 193.33.60.0 - 193.33.63.255 { 0xc1214000, 0xc12143ff, REGISTRY_RIPENCC }, // 193.33.64.0 - 193.33.67.255 { 0xc1214400, 0xc12155ff, REGISTRY_RIPENCC }, // 193.33.68.0 - 193.33.85.255 { 0xc1215600, 0xc12157ff, REGISTRY_RIPENCC }, // 193.33.86.0 - 193.33.87.255 { 0xc1215800, 0xc1215fff, REGISTRY_RIPENCC }, // 193.33.88.0 - 193.33.95.255 { 0xc1216000, 0xc12161ff, REGISTRY_RIPENCC }, // 193.33.96.0 - 193.33.97.255 { 0xc1216200, 0xc12167ff, REGISTRY_RIPENCC }, // 193.33.98.0 - 193.33.103.255 { 0xc1216a00, 0xc1216bff, REGISTRY_RIPENCC }, // 193.33.106.0 - 193.33.107.255 { 0xc1216c00, 0xc1216fff, REGISTRY_RIPENCC }, // 193.33.108.0 - 193.33.111.255 { 0xc1217000, 0xc12171ff, REGISTRY_RIPENCC }, // 193.33.112.0 - 193.33.113.255 { 0xc1217200, 0xc12177ff, REGISTRY_RIPENCC }, // 193.33.114.0 - 193.33.119.255 { 0xc1217800, 0xc12179ff, REGISTRY_RIPENCC }, // 193.33.120.0 - 193.33.121.255 { 0xc1217a00, 0xc1217bff, REGISTRY_RIPENCC }, // 193.33.122.0 - 193.33.123.255 { 0xc1217c00, 0xc1217dff, REGISTRY_RIPENCC }, // 193.33.124.0 - 193.33.125.255 { 0xc1217e00, 0xc12181ff, REGISTRY_RIPENCC }, // 193.33.126.0 - 193.33.129.255 { 0xc1218200, 0xc12183ff, REGISTRY_RIPENCC }, // 193.33.130.0 - 193.33.131.255 { 0xc1218400, 0xc12185ff, REGISTRY_RIPENCC }, // 193.33.132.0 - 193.33.133.255 { 0xc1218600, 0xc12189ff, REGISTRY_RIPENCC }, // 193.33.134.0 - 193.33.137.255 { 0xc1218a00, 0xc1218bff, REGISTRY_RIPENCC }, // 193.33.138.0 - 193.33.139.255 { 0xc1218c00, 0xc1218dff, REGISTRY_RIPENCC }, // 193.33.140.0 - 193.33.141.255 { 0xc1218e00, 0xc1219bff, REGISTRY_RIPENCC }, // 193.33.142.0 - 193.33.155.255 { 0xc1219c00, 0xc1219dff, REGISTRY_RIPENCC }, // 193.33.156.0 - 193.33.157.255 { 0xc1219e00, 0xc121a1ff, REGISTRY_RIPENCC }, // 193.33.158.0 - 193.33.161.255 { 0xc121a200, 0xc121a5ff, REGISTRY_RIPENCC }, // 193.33.162.0 - 193.33.165.255 { 0xc121a600, 0xc121b1ff, REGISTRY_RIPENCC }, // 193.33.166.0 - 193.33.177.255 { 0xc121b200, 0xc121b3ff, REGISTRY_RIPENCC }, // 193.33.178.0 - 193.33.179.255 { 0xc121b400, 0xc121bbff, REGISTRY_RIPENCC }, // 193.33.180.0 - 193.33.187.255 { 0xc121bc00, 0xc121bdff, REGISTRY_RIPENCC }, // 193.33.188.0 - 193.33.189.255 { 0xc121be00, 0xc121c1ff, REGISTRY_RIPENCC }, // 193.33.190.0 - 193.33.193.255 { 0xc121c200, 0xc121c3ff, REGISTRY_RIPENCC }, // 193.33.194.0 - 193.33.195.255 { 0xc121c400, 0xc121cbff, REGISTRY_RIPENCC }, // 193.33.196.0 - 193.33.203.255 { 0xc121cc00, 0xc121cdff, REGISTRY_RIPENCC }, // 193.33.204.0 - 193.33.205.255 { 0xc121ce00, 0xc121cfff, REGISTRY_RIPENCC }, // 193.33.206.0 - 193.33.207.255 { 0xc121d000, 0xc121d1ff, REGISTRY_RIPENCC }, // 193.33.208.0 - 193.33.209.255 { 0xc121d200, 0xc121f1ff, REGISTRY_RIPENCC }, // 193.33.210.0 - 193.33.241.255 { 0xc121f200, 0xc121f3ff, REGISTRY_RIPENCC }, // 193.33.242.0 - 193.33.243.255 { 0xc121f400, 0xc121fbff, REGISTRY_RIPENCC }, // 193.33.244.0 - 193.33.251.255 { 0xc121fc00, 0xc121fdff, REGISTRY_RIPENCC }, // 193.33.252.0 - 193.33.253.255 { 0xc121fe00, 0xc12207ff, REGISTRY_RIPENCC }, // 193.33.254.0 - 193.34.7.255 { 0xc1220800, 0xc1220bff, REGISTRY_RIPENCC }, // 193.34.8.0 - 193.34.11.255 { 0xc1220c00, 0xc1221fff, REGISTRY_RIPENCC }, // 193.34.12.0 - 193.34.31.255 { 0xc1222000, 0xc12223ff, REGISTRY_RIPENCC }, // 193.34.32.0 - 193.34.35.255 { 0xc1222400, 0xc1224bff, REGISTRY_RIPENCC }, // 193.34.36.0 - 193.34.75.255 { 0xc1224c00, 0xc12253ff, REGISTRY_RIPENCC }, // 193.34.76.0 - 193.34.83.255 { 0xc1225400, 0xc12267ff, REGISTRY_RIPENCC }, // 193.34.84.0 - 193.34.103.255 { 0xc1226800, 0xc1226bff, REGISTRY_RIPENCC }, // 193.34.104.0 - 193.34.107.255 { 0xc1226c00, 0xc12273ff, REGISTRY_RIPENCC }, // 193.34.108.0 - 193.34.115.255 { 0xc1227400, 0xc12277ff, REGISTRY_RIPENCC }, // 193.34.116.0 - 193.34.119.255 { 0xc1227800, 0xc1228fff, REGISTRY_RIPENCC }, // 193.34.120.0 - 193.34.143.255 { 0xc1229000, 0xc12291ff, REGISTRY_RIPENCC }, // 193.34.144.0 - 193.34.145.255 { 0xc1229200, 0xc122abff, REGISTRY_RIPENCC }, // 193.34.146.0 - 193.34.171.255 { 0xc122ac00, 0xc122adff, REGISTRY_RIPENCC }, // 193.34.172.0 - 193.34.173.255 { 0xc122ae00, 0xc122b9ff, REGISTRY_RIPENCC }, // 193.34.174.0 - 193.34.185.255 { 0xc122ba00, 0xc122bbff, REGISTRY_RIPENCC }, // 193.34.186.0 - 193.34.187.255 { 0xc122bc00, 0xc122c1ff, REGISTRY_RIPENCC }, // 193.34.188.0 - 193.34.193.255 { 0xc122c200, 0xc122c2ff, REGISTRY_RIPENCC }, // 193.34.194.0 - 193.34.194.255 { 0xc122c300, 0xc122c47f, REGISTRY_RIPENCC }, // 193.34.195.0 - 193.34.196.127 { 0xc122c500, 0xc122c77f, REGISTRY_RIPENCC }, // 193.34.197.0 - 193.34.199.127 { 0xc122c800, 0xc122c87f, REGISTRY_RIPENCC }, // 193.34.200.0 - 193.34.200.127 { 0xc122c880, 0xc122c8ff, REGISTRY_RIPENCC }, // 193.34.200.128 - 193.34.200.255 { 0xc122ca00, 0xc122cb7f, REGISTRY_RIPENCC }, // 193.34.202.0 - 193.34.203.127 { 0xc122cc00, 0xc122dfff, REGISTRY_RIPENCC }, // 193.34.204.0 - 193.34.223.255 { 0xc122e000, 0xc122e5ff, REGISTRY_RIPENCC }, // 193.34.224.0 - 193.34.229.255 { 0xc122e600, 0xc122e7ff, REGISTRY_RIPENCC }, // 193.34.230.0 - 193.34.231.255 { 0xc122e800, 0xc122f7ff, REGISTRY_RIPENCC }, // 193.34.232.0 - 193.34.247.255 { 0xc122f800, 0xc12300ff, REGISTRY_RIPENCC }, // 193.34.248.0 - 193.35.0.255 { 0xc1230100, 0xc12307ff, REGISTRY_RIPENCC }, // 193.35.1.0 - 193.35.7.255 { 0xc1230800, 0xc1230dff, REGISTRY_RIPENCC }, // 193.35.8.0 - 193.35.13.255 { 0xc1230e00, 0xc12318ff, REGISTRY_RIPENCC }, // 193.35.14.0 - 193.35.24.255 { 0xc1231900, 0xc12319ff, REGISTRY_RIPENCC }, // 193.35.25.0 - 193.35.25.255 { 0xc1231a00, 0xc1231fff, REGISTRY_RIPENCC }, // 193.35.26.0 - 193.35.31.255 { 0xc1232000, 0xc12337ff, REGISTRY_RIPENCC }, // 193.35.32.0 - 193.35.55.255 { 0xc1233800, 0xc1233bff, REGISTRY_RIPENCC }, // 193.35.56.0 - 193.35.59.255 { 0xc1233c00, 0xc1233cff, REGISTRY_RIPENCC }, // 193.35.60.0 - 193.35.60.255 { 0xc1233d00, 0xc1233dff, REGISTRY_RIPENCC }, // 193.35.61.0 - 193.35.61.255 { 0xc1233e00, 0xc1233eff, REGISTRY_RIPENCC }, // 193.35.62.0 - 193.35.62.255 { 0xc1233f00, 0xc1233fff, REGISTRY_RIPENCC }, // 193.35.63.0 - 193.35.63.255 { 0xc1234000, 0xc1234fff, REGISTRY_RIPENCC }, // 193.35.64.0 - 193.35.79.255 { 0xc1235000, 0xc1235fff, REGISTRY_RIPENCC }, // 193.35.80.0 - 193.35.95.255 { 0xc1236000, 0xc12361ff, REGISTRY_RIPENCC }, // 193.35.96.0 - 193.35.97.255 { 0xc1236200, 0xc12362ff, REGISTRY_RIPENCC }, // 193.35.98.0 - 193.35.98.255 { 0xc1236300, 0xc12364ff, REGISTRY_RIPENCC }, // 193.35.99.0 - 193.35.100.255 { 0xc1236500, 0xc12365ff, REGISTRY_RIPENCC }, // 193.35.101.0 - 193.35.101.255 { 0xc1236600, 0xc12390ff, REGISTRY_RIPENCC }, // 193.35.102.0 - 193.35.144.255 { 0xc1239100, 0xc12391ff, REGISTRY_RIPENCC }, // 193.35.145.0 - 193.35.145.255 { 0xc1239200, 0xc12393ff, REGISTRY_RIPENCC }, // 193.35.146.0 - 193.35.147.255 { 0xc1239400, 0xc1239cff, REGISTRY_RIPENCC }, // 193.35.148.0 - 193.35.156.255 { 0xc1239d00, 0xc123a1ff, REGISTRY_RIPENCC }, // 193.35.157.0 - 193.35.161.255 { 0xc123a200, 0xc123b5ff, REGISTRY_RIPENCC }, // 193.35.162.0 - 193.35.181.255 { 0xc123b600, 0xc123c5ff, REGISTRY_RIPENCC }, // 193.35.182.0 - 193.35.197.255 { 0xc123c600, 0xc123d8ff, REGISTRY_RIPENCC }, // 193.35.198.0 - 193.35.216.255 { 0xc123d900, 0xc123d9ff, REGISTRY_RIPENCC }, // 193.35.217.0 - 193.35.217.255 { 0xc123da00, 0xc123dbff, REGISTRY_RIPENCC }, // 193.35.218.0 - 193.35.219.255 { 0xc123dc00, 0xc123dfff, REGISTRY_RIPENCC }, // 193.35.220.0 - 193.35.223.255 { 0xc123e000, 0xc123e7ff, REGISTRY_RIPENCC }, // 193.35.224.0 - 193.35.231.255 { 0xc123e800, 0xc12402ff, REGISTRY_RIPENCC }, // 193.35.232.0 - 193.36.2.255 { 0xc1240300, 0xc12407ff, REGISTRY_RIPENCC }, // 193.36.3.0 - 193.36.7.255 { 0xc1240800, 0xc12420ff, REGISTRY_RIPENCC }, // 193.36.8.0 - 193.36.32.255 { 0xc1242100, 0xc12421ff, REGISTRY_RIPENCC }, // 193.36.33.0 - 193.36.33.255 { 0xc1242200, 0xc12425ff, REGISTRY_RIPENCC }, // 193.36.34.0 - 193.36.37.255 { 0xc1242600, 0xc12426ff, REGISTRY_RIPENCC }, // 193.36.38.0 - 193.36.38.255 { 0xc1242700, 0xc12429ff, REGISTRY_RIPENCC }, // 193.36.39.0 - 193.36.41.255 { 0xc1242a00, 0xc1242aff, REGISTRY_RIPENCC }, // 193.36.42.0 - 193.36.42.255 { 0xc1242b00, 0xc1242fff, REGISTRY_RIPENCC }, // 193.36.43.0 - 193.36.47.255 { 0xc1243000, 0xc1243fff, REGISTRY_RIPENCC }, // 193.36.48.0 - 193.36.63.255 { 0xc1244000, 0xc12447ff, REGISTRY_RIPENCC }, // 193.36.64.0 - 193.36.71.255 { 0xc1244800, 0xc1244aff, REGISTRY_RIPENCC }, // 193.36.72.0 - 193.36.74.255 { 0xc1244b00, 0xc1244bff, REGISTRY_RIPENCC }, // 193.36.75.0 - 193.36.75.255 { 0xc1244c00, 0xc1244cff, REGISTRY_RIPENCC }, // 193.36.76.0 - 193.36.76.255 { 0xc1244d00, 0xc12453ff, REGISTRY_RIPENCC }, // 193.36.77.0 - 193.36.83.255 { 0xc1245400, 0xc12456ff, REGISTRY_RIPENCC }, // 193.36.84.0 - 193.36.86.255 { 0xc1245700, 0xc12457ff, REGISTRY_RIPENCC }, // 193.36.87.0 - 193.36.87.255 { 0xc1245800, 0xc1246fff, REGISTRY_RIPENCC }, // 193.36.88.0 - 193.36.111.255 { 0xc1247000, 0xc12473ff, REGISTRY_APNIC }, // 193.36.112.0 - 193.36.115.255 { 0xc1247400, 0xc12484ff, REGISTRY_RIPENCC }, // 193.36.116.0 - 193.36.132.255 { 0xc1248500, 0xc12485ff, REGISTRY_RIPENCC }, // 193.36.133.0 - 193.36.133.255 { 0xc1248600, 0xc12487ff, REGISTRY_RIPENCC }, // 193.36.134.0 - 193.36.135.255 { 0xc1248800, 0xc1248fff, REGISTRY_RIPENCC }, // 193.36.136.0 - 193.36.143.255 { 0xc1249000, 0xc12497ff, REGISTRY_RIPENCC }, // 193.36.144.0 - 193.36.151.255 { 0xc1249800, 0xc124a1ff, REGISTRY_RIPENCC }, // 193.36.152.0 - 193.36.161.255 { 0xc124a200, 0xc124acff, REGISTRY_RIPENCC }, // 193.36.162.0 - 193.36.172.255 { 0xc124ad00, 0xc124adff, REGISTRY_RIPENCC }, // 193.36.173.0 - 193.36.173.255 { 0xc124ae00, 0xc124afff, REGISTRY_RIPENCC }, // 193.36.174.0 - 193.36.175.255 { 0xc124b000, 0xc124b1ff, REGISTRY_RIPENCC }, // 193.36.176.0 - 193.36.177.255 { 0xc124b200, 0xc124b5ff, REGISTRY_RIPENCC }, // 193.36.178.0 - 193.36.181.255 { 0xc124b600, 0xc124b6ff, REGISTRY_RIPENCC }, // 193.36.182.0 - 193.36.182.255 { 0xc124b700, 0xc124b7ff, REGISTRY_RIPENCC }, // 193.36.183.0 - 193.36.183.255 { 0xc124b800, 0xc124b8ff, REGISTRY_RIPENCC }, // 193.36.184.0 - 193.36.184.255 { 0xc124b900, 0xc124b9ff, REGISTRY_RIPENCC }, // 193.36.185.0 - 193.36.185.255 { 0xc124ba00, 0xc124baff, REGISTRY_RIPENCC }, // 193.36.186.0 - 193.36.186.255 { 0xc124bb00, 0xc124bbff, REGISTRY_RIPENCC }, // 193.36.187.0 - 193.36.187.255 { 0xc124bc00, 0xc124bfff, REGISTRY_RIPENCC }, // 193.36.188.0 - 193.36.191.255 { 0xc124c000, 0xc124e1ff, REGISTRY_RIPENCC }, // 193.36.192.0 - 193.36.225.255 { 0xc124e300, 0xc124e4ff, REGISTRY_RIPENCC }, // 193.36.227.0 - 193.36.228.255 { 0xc124e500, 0xc124e6ff, REGISTRY_RIPENCC }, // 193.36.229.0 - 193.36.230.255 { 0xc124e700, 0xc124efff, REGISTRY_RIPENCC }, // 193.36.231.0 - 193.36.239.255 { 0xc124f000, 0xc1251fff, REGISTRY_RIPENCC }, // 193.36.240.0 - 193.37.31.255 { 0xc1252000, 0xc12522ff, REGISTRY_RIPENCC }, // 193.37.32.0 - 193.37.34.255 { 0xc1252300, 0xc12527ff, REGISTRY_RIPENCC }, // 193.37.35.0 - 193.37.39.255 { 0xc1252800, 0xc12557ff, REGISTRY_RIPENCC }, // 193.37.40.0 - 193.37.87.255 { 0xc1255800, 0xc1256bff, REGISTRY_RIPENCC }, // 193.37.88.0 - 193.37.107.255 { 0xc1256c00, 0xc1256fff, REGISTRY_RIPENCC }, // 193.37.108.0 - 193.37.111.255 { 0xc1257000, 0xc12584ff, REGISTRY_RIPENCC }, // 193.37.112.0 - 193.37.132.255 { 0xc1258500, 0xc12586ff, REGISTRY_RIPENCC }, // 193.37.133.0 - 193.37.134.255 { 0xc1258700, 0xc1258aff, REGISTRY_RIPENCC }, // 193.37.135.0 - 193.37.138.255 { 0xc1258b00, 0xc1258bff, REGISTRY_RIPENCC }, // 193.37.139.0 - 193.37.139.255 { 0xc1258c00, 0xc12597ff, REGISTRY_RIPENCC }, // 193.37.140.0 - 193.37.151.255 { 0xc1259800, 0xc12598ff, REGISTRY_RIPENCC }, // 193.37.152.0 - 193.37.152.255 { 0xc1259900, 0xc1259aff, REGISTRY_RIPENCC }, // 193.37.153.0 - 193.37.154.255 { 0xc1259b00, 0xc1259bff, REGISTRY_RIPENCC }, // 193.37.155.0 - 193.37.155.255 { 0xc1259c00, 0xc1259dff, REGISTRY_RIPENCC }, // 193.37.156.0 - 193.37.157.255 { 0xc1259e00, 0xc1259eff, REGISTRY_RIPENCC }, // 193.37.158.0 - 193.37.158.255 { 0xc1259f00, 0xc125bfff, REGISTRY_RIPENCC }, // 193.37.159.0 - 193.37.191.255 { 0xc125c000, 0xc125e0ff, REGISTRY_RIPENCC }, // 193.37.192.0 - 193.37.224.255 { 0xc125e100, 0xc125e1ff, REGISTRY_RIPENCC }, // 193.37.225.0 - 193.37.225.255 { 0xc125e200, 0xc125e3ff, REGISTRY_RIPENCC }, // 193.37.226.0 - 193.37.227.255 { 0xc125e400, 0xc125e4ff, REGISTRY_RIPENCC }, // 193.37.228.0 - 193.37.228.255 { 0xc125e500, 0xc125ebff, REGISTRY_RIPENCC }, // 193.37.229.0 - 193.37.235.255 { 0xc125ec00, 0xc125eeff, REGISTRY_RIPENCC }, // 193.37.236.0 - 193.37.238.255 { 0xc125ef00, 0xc125efff, REGISTRY_RIPENCC }, // 193.37.239.0 - 193.37.239.255 { 0xc125f000, 0xc125f7ff, REGISTRY_RIPENCC }, // 193.37.240.0 - 193.37.247.255 { 0xc125f800, 0xc125ffff, REGISTRY_RIPENCC }, // 193.37.248.0 - 193.37.255.255 { 0xc1260000, 0xc1261fff, REGISTRY_RIPENCC }, // 193.38.0.0 - 193.38.31.255 { 0xc1262000, 0xc1262fff, REGISTRY_RIPENCC }, // 193.38.32.0 - 193.38.47.255 { 0xc1263000, 0xc12631ff, REGISTRY_RIPENCC }, // 193.38.48.0 - 193.38.49.255 { 0xc1263200, 0xc12633ff, REGISTRY_RIPENCC }, // 193.38.50.0 - 193.38.51.255 { 0xc1263400, 0xc12634ff, REGISTRY_RIPENCC }, // 193.38.52.0 - 193.38.52.255 { 0xc1263500, 0xc12637ff, REGISTRY_RIPENCC }, // 193.38.53.0 - 193.38.55.255 { 0xc1263800, 0xc1267fff, REGISTRY_RIPENCC }, // 193.38.56.0 - 193.38.127.255 { 0xc1268000, 0xc1268dff, REGISTRY_RIPENCC }, // 193.38.128.0 - 193.38.141.255 { 0xc1268e00, 0xc1268fff, REGISTRY_RIPENCC }, // 193.38.142.0 - 193.38.143.255 { 0xc1269000, 0xc1269fff, REGISTRY_RIPENCC }, // 193.38.144.0 - 193.38.159.255 { 0xc126a000, 0xc126dfff, REGISTRY_RIPENCC }, // 193.38.160.0 - 193.38.223.255 { 0xc126e000, 0xc12703ff, REGISTRY_RIPENCC }, // 193.38.224.0 - 193.39.3.255 { 0xc1270400, 0xc12705ff, REGISTRY_RIPENCC }, // 193.39.4.0 - 193.39.5.255 { 0xc1270600, 0xc12707ff, REGISTRY_RIPENCC }, // 193.39.6.0 - 193.39.7.255 { 0xc1270800, 0xc12708ff, REGISTRY_RIPENCC }, // 193.39.8.0 - 193.39.8.255 { 0xc1270900, 0xc1270aff, REGISTRY_RIPENCC }, // 193.39.9.0 - 193.39.10.255 { 0xc1270b00, 0xc1270bff, REGISTRY_RIPENCC }, // 193.39.11.0 - 193.39.11.255 { 0xc1270c00, 0xc1270fff, REGISTRY_RIPENCC }, // 193.39.12.0 - 193.39.15.255 { 0xc1271000, 0xc12742ff, REGISTRY_RIPENCC }, // 193.39.16.0 - 193.39.66.255 { 0xc1274300, 0xc12743ff, REGISTRY_RIPENCC }, // 193.39.67.0 - 193.39.67.255 { 0xc1274400, 0xc1274dff, REGISTRY_RIPENCC }, // 193.39.68.0 - 193.39.77.255 { 0xc1274e00, 0xc1274eff, REGISTRY_RIPENCC }, // 193.39.78.0 - 193.39.78.255 { 0xc1275000, 0xc12757ff, REGISTRY_RIPENCC }, // 193.39.80.0 - 193.39.87.255 { 0xc1275800, 0xc1275fff, REGISTRY_RIPENCC }, // 193.39.88.0 - 193.39.95.255 { 0xc1276000, 0xc12770ff, REGISTRY_RIPENCC }, // 193.39.96.0 - 193.39.112.255 { 0xc1277100, 0xc12772ff, REGISTRY_RIPENCC }, // 193.39.113.0 - 193.39.114.255 { 0xc1277300, 0xc12788ff, REGISTRY_RIPENCC }, // 193.39.115.0 - 193.39.136.255 { 0xc1278900, 0xc1278aff, REGISTRY_RIPENCC }, // 193.39.137.0 - 193.39.138.255 { 0xc1278b00, 0xc1278dff, REGISTRY_RIPENCC }, // 193.39.139.0 - 193.39.141.255 { 0xc1278e00, 0xc1278fff, REGISTRY_RIPENCC }, // 193.39.142.0 - 193.39.143.255 { 0xc1279000, 0xc1279fff, REGISTRY_RIPENCC }, // 193.39.144.0 - 193.39.159.255 { 0xc127a000, 0xc127abff, REGISTRY_RIPENCC }, // 193.39.160.0 - 193.39.171.255 { 0xc127ac00, 0xc127b7ff, REGISTRY_RIPENCC }, // 193.39.172.0 - 193.39.183.255 { 0xc127b800, 0xc127c7ff, REGISTRY_RIPENCC }, // 193.39.184.0 - 193.39.199.255 { 0xc127c800, 0xc127cfff, REGISTRY_RIPENCC }, // 193.39.200.0 - 193.39.207.255 { 0xc127d000, 0xc127d1ff, REGISTRY_RIPENCC }, // 193.39.208.0 - 193.39.209.255 { 0xc127d200, 0xc127d4ff, REGISTRY_RIPENCC }, // 193.39.210.0 - 193.39.212.255 { 0xc127d500, 0xc127d5ff, REGISTRY_RIPENCC }, // 193.39.213.0 - 193.39.213.255 { 0xc127d600, 0xc127d6ff, REGISTRY_RIPENCC }, // 193.39.214.0 - 193.39.214.255 { 0xc127d700, 0xc127dfff, REGISTRY_RIPENCC }, // 193.39.215.0 - 193.39.223.255 { 0xc127e000, 0xc127efff, REGISTRY_RIPENCC }, // 193.39.224.0 - 193.39.239.255 { 0xc127f000, 0xc127f6ff, REGISTRY_RIPENCC }, // 193.39.240.0 - 193.39.246.255 { 0xc127f700, 0xc127f9ff, REGISTRY_RIPENCC }, // 193.39.247.0 - 193.39.249.255 { 0xc127fa00, 0xc127faff, REGISTRY_RIPENCC }, // 193.39.250.0 - 193.39.250.255 { 0xc127fb00, 0xc127fbff, REGISTRY_RIPENCC }, // 193.39.251.0 - 193.39.251.255 { 0xc127fc00, 0xc128ffff, REGISTRY_RIPENCC }, // 193.39.252.0 - 193.40.255.255 { 0xc1290000, 0xc1291fff, REGISTRY_RIPENCC }, // 193.41.0.0 - 193.41.31.255 { 0xc1292000, 0xc12920ff, REGISTRY_RIPENCC }, // 193.41.32.0 - 193.41.32.255 { 0xc1292100, 0xc12921ff, REGISTRY_RIPENCC }, // 193.41.33.0 - 193.41.33.255 { 0xc1292200, 0xc12922ff, REGISTRY_RIPENCC }, // 193.41.34.0 - 193.41.34.255 { 0xc1292300, 0xc12925ff, REGISTRY_RIPENCC }, // 193.41.35.0 - 193.41.37.255 { 0xc1292600, 0xc12927ff, REGISTRY_RIPENCC }, // 193.41.38.0 - 193.41.39.255 { 0xc1292800, 0xc1292eff, REGISTRY_RIPENCC }, // 193.41.40.0 - 193.41.46.255 { 0xc1292f00, 0xc1292fff, REGISTRY_RIPENCC }, // 193.41.47.0 - 193.41.47.255 { 0xc1293000, 0xc12933ff, REGISTRY_RIPENCC }, // 193.41.48.0 - 193.41.51.255 { 0xc1293400, 0xc1293bff, REGISTRY_RIPENCC }, // 193.41.52.0 - 193.41.59.255 { 0xc1293c00, 0xc12943ff, REGISTRY_RIPENCC }, // 193.41.60.0 - 193.41.67.255 { 0xc1294400, 0xc12946ff, REGISTRY_RIPENCC }, // 193.41.68.0 - 193.41.70.255 { 0xc1294700, 0xc12947ff, REGISTRY_RIPENCC }, // 193.41.71.0 - 193.41.71.255 { 0xc1294800, 0xc1294bff, REGISTRY_RIPENCC }, // 193.41.72.0 - 193.41.75.255 { 0xc1294c00, 0xc12951ff, REGISTRY_RIPENCC }, // 193.41.76.0 - 193.41.81.255 { 0xc1295200, 0xc12952ff, REGISTRY_RIPENCC }, // 193.41.82.0 - 193.41.82.255 { 0xc1295300, 0xc12955ff, REGISTRY_RIPENCC }, // 193.41.83.0 - 193.41.85.255 { 0xc1295600, 0xc12957ff, REGISTRY_RIPENCC }, // 193.41.86.0 - 193.41.87.255 { 0xc1295800, 0xc1295aff, REGISTRY_RIPENCC }, // 193.41.88.0 - 193.41.90.255 { 0xc1295b00, 0xc1295cff, REGISTRY_RIPENCC }, // 193.41.91.0 - 193.41.92.255 { 0xc1295d00, 0xc12971ff, REGISTRY_RIPENCC }, // 193.41.93.0 - 193.41.113.255 { 0xc1297200, 0xc12975ff, REGISTRY_RIPENCC }, // 193.41.114.0 - 193.41.117.255 { 0xc1297600, 0xc12979ff, REGISTRY_RIPENCC }, // 193.41.118.0 - 193.41.121.255 { 0xc1297a00, 0xc1297bff, REGISTRY_RIPENCC }, // 193.41.122.0 - 193.41.123.255 { 0xc1297c00, 0xc1297fff, REGISTRY_RIPENCC }, // 193.41.124.0 - 193.41.127.255 { 0xc1298000, 0xc12980ff, REGISTRY_RIPENCC }, // 193.41.128.0 - 193.41.128.255 { 0xc1298100, 0xc12981ff, REGISTRY_RIPENCC }, // 193.41.129.0 - 193.41.129.255 { 0xc1298200, 0xc12983ff, REGISTRY_RIPENCC }, // 193.41.130.0 - 193.41.131.255 { 0xc1298400, 0xc12991ff, REGISTRY_RIPENCC }, // 193.41.132.0 - 193.41.145.255 { 0xc1299200, 0xc12993ff, REGISTRY_AFRINIC }, // 193.41.146.0 - 193.41.147.255 { 0xc1299400, 0xc12999ff, REGISTRY_RIPENCC }, // 193.41.148.0 - 193.41.153.255 { 0xc1299a00, 0xc1299bff, REGISTRY_RIPENCC }, // 193.41.154.0 - 193.41.155.255 { 0xc1299c00, 0xc1299fff, REGISTRY_RIPENCC }, // 193.41.156.0 - 193.41.159.255 { 0xc129a000, 0xc129a3ff, REGISTRY_RIPENCC }, // 193.41.160.0 - 193.41.163.255 { 0xc129a400, 0xc129bfff, REGISTRY_RIPENCC }, // 193.41.164.0 - 193.41.191.255 { 0xc129c000, 0xc129c0ff, REGISTRY_RIPENCC }, // 193.41.192.0 - 193.41.192.255 { 0xc129c100, 0xc129c6ff, REGISTRY_RIPENCC }, // 193.41.193.0 - 193.41.198.255 { 0xc129c700, 0xc129c7ff, REGISTRY_RIPENCC }, // 193.41.199.0 - 193.41.199.255 { 0xc129c800, 0xc129cbff, REGISTRY_RIPENCC }, // 193.41.200.0 - 193.41.203.255 { 0xc129cd00, 0xc129d3ff, REGISTRY_RIPENCC }, // 193.41.205.0 - 193.41.211.255 { 0xc129d400, 0xc129d5ff, REGISTRY_RIPENCC }, // 193.41.212.0 - 193.41.213.255 { 0xc129d600, 0xc129d7ff, REGISTRY_RIPENCC }, // 193.41.214.0 - 193.41.215.255 { 0xc129d800, 0xc129d9ff, REGISTRY_RIPENCC }, // 193.41.216.0 - 193.41.217.255 { 0xc129da00, 0xc129e1ff, REGISTRY_RIPENCC }, // 193.41.218.0 - 193.41.225.255 { 0xc129e200, 0xc129e2ff, REGISTRY_RIPENCC }, // 193.41.226.0 - 193.41.226.255 { 0xc129e300, 0xc129eaff, REGISTRY_RIPENCC }, // 193.41.227.0 - 193.41.234.255 { 0xc129eb00, 0xc129ebff, REGISTRY_RIPENCC }, // 193.41.235.0 - 193.41.235.255 { 0xc129ec00, 0xc129ecff, REGISTRY_RIPENCC }, // 193.41.236.0 - 193.41.236.255 { 0xc129ed00, 0xc129edff, REGISTRY_RIPENCC }, // 193.41.237.0 - 193.41.237.255 { 0xc129ef00, 0xc129ffff, REGISTRY_RIPENCC }, // 193.41.239.0 - 193.41.255.255 { 0xc12a0000, 0xc12a01ff, REGISTRY_RIPENCC }, // 193.42.0.0 - 193.42.1.255 { 0xc12a0200, 0xc12a03ff, REGISTRY_RIPENCC }, // 193.42.2.0 - 193.42.3.255 { 0xc12a0400, 0xc12a07ff, REGISTRY_RIPENCC }, // 193.42.4.0 - 193.42.7.255 { 0xc12a0800, 0xc12a0aff, REGISTRY_RIPENCC }, // 193.42.8.0 - 193.42.10.255 { 0xc12a0b00, 0xc12a0cff, REGISTRY_RIPENCC }, // 193.42.11.0 - 193.42.12.255 { 0xc12a0d00, 0xc12a0eff, REGISTRY_RIPENCC }, // 193.42.13.0 - 193.42.14.255 { 0xc12a0f00, 0xc12a3fff, REGISTRY_RIPENCC }, // 193.42.15.0 - 193.42.63.255 { 0xc12a4000, 0xc12a5fff, REGISTRY_RIPENCC }, // 193.42.64.0 - 193.42.95.255 { 0xc12a6000, 0xc12a84ff, REGISTRY_RIPENCC }, // 193.42.96.0 - 193.42.132.255 { 0xc12a8500, 0xc12a86ff, REGISTRY_RIPENCC }, // 193.42.133.0 - 193.42.134.255 { 0xc12a8700, 0xc12a89ff, REGISTRY_RIPENCC }, // 193.42.135.0 - 193.42.137.255 { 0xc12a8a00, 0xc12a94ff, REGISTRY_RIPENCC }, // 193.42.138.0 - 193.42.148.255 { 0xc12a9500, 0xc12a95ff, REGISTRY_RIPENCC }, // 193.42.149.0 - 193.42.149.255 { 0xc12a9600, 0xc12a99ff, REGISTRY_RIPENCC }, // 193.42.150.0 - 193.42.153.255 { 0xc12a9a00, 0xc12a9aff, REGISTRY_RIPENCC }, // 193.42.154.0 - 193.42.154.255 { 0xc12a9b00, 0xc12a9cff, REGISTRY_RIPENCC }, // 193.42.155.0 - 193.42.156.255 { 0xc12a9d00, 0xc12a9dff, REGISTRY_RIPENCC }, // 193.42.157.0 - 193.42.157.255 { 0xc12a9e00, 0xc12ad1ff, REGISTRY_RIPENCC }, // 193.42.158.0 - 193.42.209.255 { 0xc12ad200, 0xc12ad2ff, REGISTRY_RIPENCC }, // 193.42.210.0 - 193.42.210.255 { 0xc12ad300, 0xc12ad5ff, REGISTRY_RIPENCC }, // 193.42.211.0 - 193.42.213.255 { 0xc12ad600, 0xc12ad6ff, REGISTRY_RIPENCC }, // 193.42.214.0 - 193.42.214.255 { 0xc12ad700, 0xc12ad8ff, REGISTRY_RIPENCC }, // 193.42.215.0 - 193.42.216.255 { 0xc12ad900, 0xc12ad9ff, REGISTRY_RIPENCC }, // 193.42.217.0 - 193.42.217.255 { 0xc12ada00, 0xc12adaff, REGISTRY_RIPENCC }, // 193.42.218.0 - 193.42.218.255 { 0xc12adb00, 0xc12adbff, REGISTRY_RIPENCC }, // 193.42.219.0 - 193.42.219.255 { 0xc12adc00, 0xc12adfff, REGISTRY_RIPENCC }, // 193.42.220.0 - 193.42.223.255 { 0xc12ae000, 0xc12ae3ff, REGISTRY_RIPENCC }, // 193.42.224.0 - 193.42.227.255 { 0xc12ae400, 0xc12aefff, REGISTRY_RIPENCC }, // 193.42.228.0 - 193.42.239.255 { 0xc12af000, 0xc12af7ff, REGISTRY_RIPENCC }, // 193.42.240.0 - 193.42.247.255 { 0xc12af800, 0xc12b07ff, REGISTRY_RIPENCC }, // 193.42.248.0 - 193.43.7.255 { 0xc12b0800, 0xc12b0bff, REGISTRY_RIPENCC }, // 193.43.8.0 - 193.43.11.255 { 0xc12b0c00, 0xc12b0dff, REGISTRY_RIPENCC }, // 193.43.12.0 - 193.43.13.255 { 0xc12b0e00, 0xc12b0eff, REGISTRY_RIPENCC }, // 193.43.14.0 - 193.43.14.255 { 0xc12b0f00, 0xc12b13ff, REGISTRY_RIPENCC }, // 193.43.15.0 - 193.43.19.255 { 0xc12b1400, 0xc12b17ff, REGISTRY_RIPENCC }, // 193.43.20.0 - 193.43.23.255 { 0xc12b1800, 0xc12b1bff, REGISTRY_RIPENCC }, // 193.43.24.0 - 193.43.27.255 { 0xc12b1c00, 0xc12b1cff, REGISTRY_RIPENCC }, // 193.43.28.0 - 193.43.28.255 { 0xc12b1d00, 0xc12b1dff, REGISTRY_RIPENCC }, // 193.43.29.0 - 193.43.29.255 { 0xc12b1e00, 0xc12b21ff, REGISTRY_RIPENCC }, // 193.43.30.0 - 193.43.33.255 { 0xc12b2200, 0xc12b24ff, REGISTRY_RIPENCC }, // 193.43.34.0 - 193.43.36.255 { 0xc12b2500, 0xc12b25ff, REGISTRY_RIPENCC }, // 193.43.37.0 - 193.43.37.255 { 0xc12b2600, 0xc12b27ff, REGISTRY_RIPENCC }, // 193.43.38.0 - 193.43.39.255 { 0xc12b2800, 0xc12b2bff, REGISTRY_RIPENCC }, // 193.43.40.0 - 193.43.43.255 { 0xc12b2c00, 0xc12b3fff, REGISTRY_RIPENCC }, // 193.43.44.0 - 193.43.63.255 { 0xc12b4000, 0xc12b48ff, REGISTRY_RIPENCC }, // 193.43.64.0 - 193.43.72.255 { 0xc12b4900, 0xc12b49ff, REGISTRY_RIPENCC }, // 193.43.73.0 - 193.43.73.255 { 0xc12b4a00, 0xc12b4bff, REGISTRY_RIPENCC }, // 193.43.74.0 - 193.43.75.255 { 0xc12b4c00, 0xc12b4eff, REGISTRY_RIPENCC }, // 193.43.76.0 - 193.43.78.255 { 0xc12b4f00, 0xc12b4fff, REGISTRY_RIPENCC }, // 193.43.79.0 - 193.43.79.255 { 0xc12b5000, 0xc12b5aff, REGISTRY_RIPENCC }, // 193.43.80.0 - 193.43.90.255 { 0xc12b5b00, 0xc12b5bff, REGISTRY_RIPENCC }, // 193.43.91.0 - 193.43.91.255 { 0xc12b5c00, 0xc12b5dff, REGISTRY_RIPENCC }, // 193.43.92.0 - 193.43.93.255 { 0xc12b5e00, 0xc12b5eff, REGISTRY_RIPENCC }, // 193.43.94.0 - 193.43.94.255 { 0xc12b5f00, 0xc12b61ff, REGISTRY_RIPENCC }, // 193.43.95.0 - 193.43.97.255 { 0xc12b6200, 0xc12b64ff, REGISTRY_RIPENCC }, // 193.43.98.0 - 193.43.100.255 { 0xc12b6500, 0xc12b67ff, REGISTRY_RIPENCC }, // 193.43.101.0 - 193.43.103.255 { 0xc12b6800, 0xc12b69ff, REGISTRY_RIPENCC }, // 193.43.104.0 - 193.43.105.255 { 0xc12b6a00, 0xc12b6dff, REGISTRY_RIPENCC }, // 193.43.106.0 - 193.43.109.255 { 0xc12b6e00, 0xc12b6eff, REGISTRY_RIPENCC }, // 193.43.110.0 - 193.43.110.255 { 0xc12b6f00, 0xc12b75ff, REGISTRY_RIPENCC }, // 193.43.111.0 - 193.43.117.255 { 0xc12b7600, 0xc12b77ff, REGISTRY_RIPENCC }, // 193.43.118.0 - 193.43.119.255 { 0xc12b7800, 0xc12b7dff, REGISTRY_RIPENCC }, // 193.43.120.0 - 193.43.125.255 { 0xc12b7e00, 0xc12b7eff, REGISTRY_RIPENCC }, // 193.43.126.0 - 193.43.126.255 { 0xc12b7f00, 0xc12b85ff, REGISTRY_RIPENCC }, // 193.43.127.0 - 193.43.133.255 { 0xc12b8600, 0xc12b88ff, REGISTRY_RIPENCC }, // 193.43.134.0 - 193.43.136.255 { 0xc12b8900, 0xc12b89ff, REGISTRY_RIPENCC }, // 193.43.137.0 - 193.43.137.255 { 0xc12b8a00, 0xc12b8cff, REGISTRY_RIPENCC }, // 193.43.138.0 - 193.43.140.255 { 0xc12b8d00, 0xc12b8dff, REGISTRY_RIPENCC }, // 193.43.141.0 - 193.43.141.255 { 0xc12b8e00, 0xc12b8fff, REGISTRY_RIPENCC }, // 193.43.142.0 - 193.43.143.255 { 0xc12b9000, 0xc12b90ff, REGISTRY_RIPENCC }, // 193.43.144.0 - 193.43.144.255 { 0xc12b9100, 0xc12b93ff, REGISTRY_RIPENCC }, // 193.43.145.0 - 193.43.147.255 { 0xc12b9400, 0xc12b94ff, REGISTRY_RIPENCC }, // 193.43.148.0 - 193.43.148.255 { 0xc12b9500, 0xc12b95ff, REGISTRY_RIPENCC }, // 193.43.149.0 - 193.43.149.255 { 0xc12b9600, 0xc12b9eff, REGISTRY_RIPENCC }, // 193.43.150.0 - 193.43.158.255 { 0xc12b9f00, 0xc12b9fff, REGISTRY_RIPENCC }, // 193.43.159.0 - 193.43.159.255 { 0xc12ba000, 0xc12bcfff, REGISTRY_RIPENCC }, // 193.43.160.0 - 193.43.207.255 { 0xc12bd000, 0xc12bd1ff, REGISTRY_RIPENCC }, // 193.43.208.0 - 193.43.209.255 { 0xc12bd200, 0xc12bf9ff, REGISTRY_RIPENCC }, // 193.43.210.0 - 193.43.249.255 { 0xc12bfa00, 0xc12bfaff, REGISTRY_RIPENCC }, // 193.43.250.0 - 193.43.250.255 { 0xc12bfb00, 0xc12bffff, REGISTRY_RIPENCC }, // 193.43.251.0 - 193.43.255.255 { 0xc12c0000, 0xc12e00ff, REGISTRY_RIPENCC }, // 193.44.0.0 - 193.46.0.255 { 0xc12e0100, 0xc12e13ff, REGISTRY_RIPENCC }, // 193.46.1.0 - 193.46.19.255 { 0xc12e1400, 0xc12e27ff, REGISTRY_RIPENCC }, // 193.46.20.0 - 193.46.39.255 { 0xc12e2800, 0xc12e37ff, REGISTRY_RIPENCC }, // 193.46.40.0 - 193.46.55.255 { 0xc12e3800, 0xc12e39ff, REGISTRY_RIPENCC }, // 193.46.56.0 - 193.46.57.255 { 0xc12e3a00, 0xc12e42ff, REGISTRY_RIPENCC }, // 193.46.58.0 - 193.46.66.255 { 0xc12e4300, 0xc12e43ff, REGISTRY_RIPENCC }, // 193.46.67.0 - 193.46.67.255 { 0xc12e4400, 0xc12e48ff, REGISTRY_RIPENCC }, // 193.46.68.0 - 193.46.72.255 { 0xc12e4900, 0xc12e4aff, REGISTRY_RIPENCC }, // 193.46.73.0 - 193.46.74.255 { 0xc12e4b00, 0xc12e4dff, REGISTRY_RIPENCC }, // 193.46.75.0 - 193.46.77.255 { 0xc12e4e00, 0xc12e4fff, REGISTRY_RIPENCC }, // 193.46.78.0 - 193.46.79.255 { 0xc12e5000, 0xc12e50ff, REGISTRY_RIPENCC }, // 193.46.80.0 - 193.46.80.255 { 0xc12e5100, 0xc12e51ff, REGISTRY_RIPENCC }, // 193.46.81.0 - 193.46.81.255 { 0xc12e5200, 0xc12e52ff, REGISTRY_RIPENCC }, // 193.46.82.0 - 193.46.82.255 { 0xc12e5300, 0xc12e53ff, REGISTRY_RIPENCC }, // 193.46.83.0 - 193.46.83.255 { 0xc12e5400, 0xc12e59ff, REGISTRY_RIPENCC }, // 193.46.84.0 - 193.46.89.255 { 0xc12e5b00, 0xc12eabff, REGISTRY_RIPENCC }, // 193.46.91.0 - 193.46.171.255 { 0xc12eac00, 0xc12eb3ff, REGISTRY_RIPENCC }, // 193.46.172.0 - 193.46.179.255 { 0xc12eb400, 0xc12eb8ff, REGISTRY_RIPENCC }, // 193.46.180.0 - 193.46.184.255 { 0xc12eb900, 0xc12eb9ff, REGISTRY_RIPENCC }, // 193.46.185.0 - 193.46.185.255 { 0xc12eba00, 0xc12ebfff, REGISTRY_RIPENCC }, // 193.46.186.0 - 193.46.191.255 { 0xc12ec000, 0xc12ec8ff, REGISTRY_RIPENCC }, // 193.46.192.0 - 193.46.200.255 { 0xc12ec900, 0xc12ecbff, REGISTRY_RIPENCC }, // 193.46.201.0 - 193.46.203.255 { 0xc12ecc00, 0xc12eccff, REGISTRY_RIPENCC }, // 193.46.204.0 - 193.46.204.255 { 0xc12ecd00, 0xc12ed2ff, REGISTRY_RIPENCC }, // 193.46.205.0 - 193.46.210.255 { 0xc12ed300, 0xc12ed3ff, REGISTRY_RIPENCC }, // 193.46.211.0 - 193.46.211.255 { 0xc12ed400, 0xc12ed5ff, REGISTRY_RIPENCC }, // 193.46.212.0 - 193.46.213.255 { 0xc12ed600, 0xc12ed6ff, REGISTRY_RIPENCC }, // 193.46.214.0 - 193.46.214.255 { 0xc12ed700, 0xc12ed7ff, REGISTRY_RIPENCC }, // 193.46.215.0 - 193.46.215.255 { 0xc12ed800, 0xc12edfff, REGISTRY_RIPENCC }, // 193.46.216.0 - 193.46.223.255 { 0xc12ee000, 0xc12ee7ff, REGISTRY_RIPENCC }, // 193.46.224.0 - 193.46.231.255 { 0xc12ee800, 0xc12ee9ff, REGISTRY_RIPENCC }, // 193.46.232.0 - 193.46.233.255 { 0xc12eea00, 0xc12eefff, REGISTRY_RIPENCC }, // 193.46.234.0 - 193.46.239.255 { 0xc12ef000, 0xc12ef7ff, REGISTRY_RIPENCC }, // 193.46.240.0 - 193.46.247.255 { 0xc12ef800, 0xc12ef9ff, REGISTRY_RIPENCC }, // 193.46.248.0 - 193.46.249.255 { 0xc12efa00, 0xc12efcff, REGISTRY_RIPENCC }, // 193.46.250.0 - 193.46.252.255 { 0xc12efd00, 0xc12efdff, REGISTRY_RIPENCC }, // 193.46.253.0 - 193.46.253.255 { 0xc12efe00, 0xc12f00ff, REGISTRY_RIPENCC }, // 193.46.254.0 - 193.47.0.255 { 0xc12f0100, 0xc12f1fff, REGISTRY_RIPENCC }, // 193.47.1.0 - 193.47.31.255 { 0xc12f2000, 0xc12f2fff, REGISTRY_RIPENCC }, // 193.47.32.0 - 193.47.47.255 { 0xc12f3000, 0xc12f33ff, REGISTRY_ARIN }, // 193.47.48.0 - 193.47.51.255 { 0xc12f3400, 0xc12f46ff, REGISTRY_RIPENCC }, // 193.47.52.0 - 193.47.70.255 { 0xc12f4700, 0xc12f4aff, REGISTRY_RIPENCC }, // 193.47.71.0 - 193.47.74.255 { 0xc12f4b00, 0xc12f4bff, REGISTRY_RIPENCC }, // 193.47.75.0 - 193.47.75.255 { 0xc12f4c00, 0xc12f4eff, REGISTRY_RIPENCC }, // 193.47.76.0 - 193.47.78.255 { 0xc12f4f00, 0xc12f4fff, REGISTRY_RIPENCC }, // 193.47.79.0 - 193.47.79.255 { 0xc12f5000, 0xc12f55ff, REGISTRY_RIPENCC }, // 193.47.80.0 - 193.47.85.255 { 0xc12f5600, 0xc12f56ff, REGISTRY_RIPENCC }, // 193.47.86.0 - 193.47.86.255 { 0xc12f5700, 0xc12f94ff, REGISTRY_RIPENCC }, // 193.47.87.0 - 193.47.148.255 { 0xc12f9500, 0xc12f96ff, REGISTRY_RIPENCC }, // 193.47.149.0 - 193.47.150.255 { 0xc12f9700, 0xc12fa3ff, REGISTRY_RIPENCC }, // 193.47.151.0 - 193.47.163.255 { 0xc12fa400, 0xc12fa4ff, REGISTRY_RIPENCC }, // 193.47.164.0 - 193.47.164.255 { 0xc12fa500, 0xc12fbcff, REGISTRY_RIPENCC }, // 193.47.165.0 - 193.47.188.255 { 0xc12fbd00, 0xc12fbdff, REGISTRY_RIPENCC }, // 193.47.189.0 - 193.47.189.255 { 0xc12fbe00, 0xc12fc0ff, REGISTRY_RIPENCC }, // 193.47.190.0 - 193.47.192.255 { 0xc12fc100, 0xc12fc1ff, REGISTRY_RIPENCC }, // 193.47.193.0 - 193.47.193.255 { 0xc12fc200, 0xc12fe9ff, REGISTRY_RIPENCC }, // 193.47.194.0 - 193.47.233.255 { 0xc12fea00, 0xc12ff5ff, REGISTRY_RIPENCC }, // 193.47.234.0 - 193.47.245.255 { 0xc12ff600, 0xc12ffdff, REGISTRY_RIPENCC }, // 193.47.246.0 - 193.47.253.255 { 0xc12ffe00, 0xc12ffeff, REGISTRY_RIPENCC }, // 193.47.254.0 - 193.47.254.255 { 0xc12fff00, 0xc12fffff, REGISTRY_RIPENCC }, // 193.47.255.0 - 193.47.255.255 { 0xc1300000, 0xc134ffff, REGISTRY_RIPENCC }, // 193.48.0.0 - 193.52.255.255 { 0xc1350100, 0xc13502ff, REGISTRY_RIPENCC }, // 193.53.1.0 - 193.53.2.255 { 0xc1350300, 0xc13504ff, REGISTRY_RIPENCC }, // 193.53.3.0 - 193.53.4.255 { 0xc1350500, 0xc13505ff, REGISTRY_RIPENCC }, // 193.53.5.0 - 193.53.5.255 { 0xc1350600, 0xc13506ff, REGISTRY_RIPENCC }, // 193.53.6.0 - 193.53.6.255 { 0xc1350700, 0xc13507ff, REGISTRY_RIPENCC }, // 193.53.7.0 - 193.53.7.255 { 0xc1350800, 0xc13509ff, REGISTRY_RIPENCC }, // 193.53.8.0 - 193.53.9.255 { 0xc1350a00, 0xc1350cff, REGISTRY_RIPENCC }, // 193.53.10.0 - 193.53.12.255 { 0xc1350d00, 0xc13516ff, REGISTRY_RIPENCC }, // 193.53.13.0 - 193.53.22.255 { 0xc1351700, 0xc13517ff, REGISTRY_RIPENCC }, // 193.53.23.0 - 193.53.23.255 { 0xc1351800, 0xc13522ff, REGISTRY_RIPENCC }, // 193.53.24.0 - 193.53.34.255 { 0xc1352300, 0xc13523ff, REGISTRY_RIPENCC }, // 193.53.35.0 - 193.53.35.255 { 0xc1352400, 0xc13527ff, REGISTRY_RIPENCC }, // 193.53.36.0 - 193.53.39.255 { 0xc1352800, 0xc13528ff, REGISTRY_RIPENCC }, // 193.53.40.0 - 193.53.40.255 { 0xc1352900, 0xc13550ff, REGISTRY_RIPENCC }, // 193.53.41.0 - 193.53.80.255 { 0xc1355100, 0xc13552ff, REGISTRY_RIPENCC }, // 193.53.81.0 - 193.53.82.255 { 0xc1355300, 0xc13555ff, REGISTRY_RIPENCC }, // 193.53.83.0 - 193.53.85.255 { 0xc1355600, 0xc13557ff, REGISTRY_RIPENCC }, // 193.53.86.0 - 193.53.87.255 { 0xc1355800, 0xc13559ff, REGISTRY_RIPENCC }, // 193.53.88.0 - 193.53.89.255 { 0xc1355a00, 0xc1355bff, REGISTRY_RIPENCC }, // 193.53.90.0 - 193.53.91.255 { 0xc1355c00, 0xc1355fff, REGISTRY_RIPENCC }, // 193.53.92.0 - 193.53.95.255 { 0xc1356000, 0xc13562ff, REGISTRY_RIPENCC }, // 193.53.96.0 - 193.53.98.255 { 0xc1356300, 0xc13566ff, REGISTRY_RIPENCC }, // 193.53.99.0 - 193.53.102.255 { 0xc1356700, 0xc13569ff, REGISTRY_RIPENCC }, // 193.53.103.0 - 193.53.105.255 { 0xc1356a00, 0xc1356cff, REGISTRY_RIPENCC }, // 193.53.106.0 - 193.53.108.255 { 0xc1356d00, 0xc13570ff, REGISTRY_RIPENCC }, // 193.53.109.0 - 193.53.112.255 { 0xc1357100, 0xc1357dff, REGISTRY_RIPENCC }, // 193.53.113.0 - 193.53.125.255 { 0xc1357e00, 0xc1357fff, REGISTRY_RIPENCC }, // 193.53.126.0 - 193.53.127.255 { 0xc1358000, 0xc1359fff, REGISTRY_RIPENCC }, // 193.53.128.0 - 193.53.159.255 { 0xc135a000, 0xc135a9ff, REGISTRY_RIPENCC }, // 193.53.160.0 - 193.53.169.255 { 0xc135aa00, 0xc135f4ff, REGISTRY_RIPENCC }, // 193.53.170.0 - 193.53.244.255 { 0xc135f500, 0xc135f7ff, REGISTRY_RIPENCC }, // 193.53.245.0 - 193.53.247.255 { 0xc135f800, 0xc135f8ff, REGISTRY_RIPENCC }, // 193.53.248.0 - 193.53.248.255 { 0xc135f900, 0xc135feff, REGISTRY_RIPENCC }, // 193.53.249.0 - 193.53.254.255 { 0xc135ff00, 0xc135ffff, REGISTRY_RIPENCC }, // 193.53.255.0 - 193.53.255.255 { 0xc1360000, 0xc13803ff, REGISTRY_RIPENCC }, // 193.54.0.0 - 193.56.3.255 { 0xc1380400, 0xc13807ff, REGISTRY_RIPENCC }, // 193.56.4.0 - 193.56.7.255 { 0xc1380800, 0xc1381fff, REGISTRY_RIPENCC }, // 193.56.8.0 - 193.56.31.255 { 0xc1382000, 0xc13828ff, REGISTRY_RIPENCC }, // 193.56.32.0 - 193.56.40.255 { 0xc1382900, 0xc13829ff, REGISTRY_RIPENCC }, // 193.56.41.0 - 193.56.41.255 { 0xc1382a00, 0xc13835ff, REGISTRY_RIPENCC }, // 193.56.42.0 - 193.56.53.255 { 0xc1383600, 0xc13839ff, REGISTRY_RIPENCC }, // 193.56.54.0 - 193.56.57.255 { 0xc1383a00, 0xc1383aff, REGISTRY_RIPENCC }, // 193.56.58.0 - 193.56.58.255 { 0xc1383b00, 0xc1384fff, REGISTRY_RIPENCC }, // 193.56.59.0 - 193.56.79.255 { 0xc1385000, 0xc13867ff, REGISTRY_RIPENCC }, // 193.56.80.0 - 193.56.103.255 { 0xc1386800, 0xc13869ff, REGISTRY_RIPENCC }, // 193.56.104.0 - 193.56.105.255 { 0xc1386a00, 0xc1386aff, REGISTRY_RIPENCC }, // 193.56.106.0 - 193.56.106.255 { 0xc1386b00, 0xc1386bff, REGISTRY_RIPENCC }, // 193.56.107.0 - 193.56.107.255 { 0xc1386c00, 0xc1386fff, REGISTRY_RIPENCC }, // 193.56.108.0 - 193.56.111.255 { 0xc1387000, 0xc13871ff, REGISTRY_RIPENCC }, // 193.56.112.0 - 193.56.113.255 { 0xc1387200, 0xc13873ff, REGISTRY_RIPENCC }, // 193.56.114.0 - 193.56.115.255 { 0xc1387400, 0xc13876ff, REGISTRY_RIPENCC }, // 193.56.116.0 - 193.56.118.255 { 0xc1387700, 0xc13877ff, REGISTRY_RIPENCC }, // 193.56.119.0 - 193.56.119.255 { 0xc1387800, 0xc1387eff, REGISTRY_RIPENCC }, // 193.56.120.0 - 193.56.126.255 { 0xc1387f00, 0xc13880ff, REGISTRY_RIPENCC }, // 193.56.127.0 - 193.56.128.255 { 0xc1388100, 0xc13887ff, REGISTRY_RIPENCC }, // 193.56.129.0 - 193.56.135.255 { 0xc1388800, 0xc1388fff, REGISTRY_RIPENCC }, // 193.56.136.0 - 193.56.143.255 { 0xc1389000, 0xc13891ff, REGISTRY_RIPENCC }, // 193.56.144.0 - 193.56.145.255 { 0xc1389300, 0xc1389cff, REGISTRY_RIPENCC }, // 193.56.147.0 - 193.56.156.255 { 0xc1389d00, 0xc1389dff, REGISTRY_RIPENCC }, // 193.56.157.0 - 193.56.157.255 { 0xc1389e00, 0xc1389fff, REGISTRY_RIPENCC }, // 193.56.158.0 - 193.56.159.255 { 0xc138a000, 0xc138a1ff, REGISTRY_RIPENCC }, // 193.56.160.0 - 193.56.161.255 { 0xc138a200, 0xc138abff, REGISTRY_RIPENCC }, // 193.56.162.0 - 193.56.171.255 { 0xc138ac00, 0xc138acff, REGISTRY_RIPENCC }, // 193.56.172.0 - 193.56.172.255 { 0xc138ad00, 0xc138b7ff, REGISTRY_RIPENCC }, // 193.56.173.0 - 193.56.183.255 { 0xc138b800, 0xc138b8ff, REGISTRY_RIPENCC }, // 193.56.184.0 - 193.56.184.255 { 0xc138b900, 0xc138baff, REGISTRY_RIPENCC }, // 193.56.185.0 - 193.56.186.255 { 0xc138bb00, 0xc138bbff, REGISTRY_RIPENCC }, // 193.56.187.0 - 193.56.187.255 { 0xc138bc00, 0xc138bcff, REGISTRY_RIPENCC }, // 193.56.188.0 - 193.56.188.255 { 0xc138bd00, 0xc138bdff, REGISTRY_RIPENCC }, // 193.56.189.0 - 193.56.189.255 { 0xc138be00, 0xc138beff, REGISTRY_RIPENCC }, // 193.56.190.0 - 193.56.190.255 { 0xc138bf00, 0xc138bfff, REGISTRY_RIPENCC }, // 193.56.191.0 - 193.56.191.255 { 0xc138c000, 0xc138c0ff, REGISTRY_RIPENCC }, // 193.56.192.0 - 193.56.192.255 { 0xc138c100, 0xc138c1ff, REGISTRY_RIPENCC }, // 193.56.193.0 - 193.56.193.255 { 0xc138c200, 0xc138c9ff, REGISTRY_RIPENCC }, // 193.56.194.0 - 193.56.201.255 { 0xc138ca00, 0xc138cbff, REGISTRY_RIPENCC }, // 193.56.202.0 - 193.56.203.255 { 0xc138cc00, 0xc138d0ff, REGISTRY_RIPENCC }, // 193.56.204.0 - 193.56.208.255 { 0xc138d100, 0xc138d3ff, REGISTRY_RIPENCC }, // 193.56.209.0 - 193.56.211.255 { 0xc138d400, 0xc138d7ff, REGISTRY_RIPENCC }, // 193.56.212.0 - 193.56.215.255 { 0xc138d800, 0xc138dbff, REGISTRY_RIPENCC }, // 193.56.216.0 - 193.56.219.255 { 0xc138dc00, 0xc138e0ff, REGISTRY_RIPENCC }, // 193.56.220.0 - 193.56.224.255 { 0xc138e100, 0xc138e1ff, REGISTRY_RIPENCC }, // 193.56.225.0 - 193.56.225.255 { 0xc138e200, 0xc138e3ff, REGISTRY_RIPENCC }, // 193.56.226.0 - 193.56.227.255 { 0xc138e400, 0xc138edff, REGISTRY_RIPENCC }, // 193.56.228.0 - 193.56.237.255 { 0xc138ee00, 0xc138f0ff, REGISTRY_RIPENCC }, // 193.56.238.0 - 193.56.240.255 { 0xc138f100, 0xc138f6ff, REGISTRY_RIPENCC }, // 193.56.241.0 - 193.56.246.255 { 0xc138f700, 0xc13904ff, REGISTRY_RIPENCC }, // 193.56.247.0 - 193.57.4.255 { 0xc1390500, 0xc13906ff, REGISTRY_RIPENCC }, // 193.57.5.0 - 193.57.6.255 { 0xc1390700, 0xc13909ff, REGISTRY_RIPENCC }, // 193.57.7.0 - 193.57.9.255 { 0xc1390a00, 0xc1390dff, REGISTRY_RIPENCC }, // 193.57.10.0 - 193.57.13.255 { 0xc1390e00, 0xc13913ff, REGISTRY_RIPENCC }, // 193.57.14.0 - 193.57.19.255 { 0xc1391400, 0xc13914ff, REGISTRY_RIPENCC }, // 193.57.20.0 - 193.57.20.255 { 0xc1391500, 0xc13917ff, REGISTRY_RIPENCC }, // 193.57.21.0 - 193.57.23.255 { 0xc1391800, 0xc1391aff, REGISTRY_RIPENCC }, // 193.57.24.0 - 193.57.26.255 { 0xc1391b00, 0xc1391fff, REGISTRY_RIPENCC }, // 193.57.27.0 - 193.57.31.255 { 0xc1392000, 0xc13920ff, REGISTRY_RIPENCC }, // 193.57.32.0 - 193.57.32.255 { 0xc1392100, 0xc13921ff, REGISTRY_RIPENCC }, // 193.57.33.0 - 193.57.33.255 { 0xc1392200, 0xc13922ff, REGISTRY_RIPENCC }, // 193.57.34.0 - 193.57.34.255 { 0xc1392300, 0xc1392fff, REGISTRY_RIPENCC }, // 193.57.35.0 - 193.57.47.255 { 0xc1393000, 0xc13931ff, REGISTRY_RIPENCC }, // 193.57.48.0 - 193.57.49.255 { 0xc1393200, 0xc13937ff, REGISTRY_RIPENCC }, // 193.57.50.0 - 193.57.55.255 { 0xc1393800, 0xc13938ff, REGISTRY_RIPENCC }, // 193.57.56.0 - 193.57.56.255 { 0xc1393900, 0xc13939ff, REGISTRY_APNIC }, // 193.57.57.0 - 193.57.57.255 { 0xc1393a00, 0xc1393fff, REGISTRY_RIPENCC }, // 193.57.58.0 - 193.57.63.255 { 0xc1394000, 0xc13940ff, REGISTRY_RIPENCC }, // 193.57.64.0 - 193.57.64.255 { 0xc1394100, 0xc13941ff, REGISTRY_RIPENCC }, // 193.57.65.0 - 193.57.65.255 { 0xc1394200, 0xc13947ff, REGISTRY_RIPENCC }, // 193.57.66.0 - 193.57.71.255 { 0xc1394800, 0xc1394cff, REGISTRY_RIPENCC }, // 193.57.72.0 - 193.57.76.255 { 0xc1394d00, 0xc1394fff, REGISTRY_RIPENCC }, // 193.57.77.0 - 193.57.79.255 { 0xc1395000, 0xc13953ff, REGISTRY_RIPENCC }, // 193.57.80.0 - 193.57.83.255 { 0xc1395400, 0xc13957ff, REGISTRY_RIPENCC }, // 193.57.84.0 - 193.57.87.255 { 0xc1395800, 0xc1395aff, REGISTRY_RIPENCC }, // 193.57.88.0 - 193.57.90.255 { 0xc1395b00, 0xc1395cff, REGISTRY_RIPENCC }, // 193.57.91.0 - 193.57.92.255 { 0xc1395d00, 0xc1395fff, REGISTRY_RIPENCC }, // 193.57.93.0 - 193.57.95.255 { 0xc1396000, 0xc13961ff, REGISTRY_RIPENCC }, // 193.57.96.0 - 193.57.97.255 { 0xc1396200, 0xc13968ff, REGISTRY_RIPENCC }, // 193.57.98.0 - 193.57.104.255 { 0xc1396900, 0xc1396bff, REGISTRY_RIPENCC }, // 193.57.105.0 - 193.57.107.255 { 0xc1396c00, 0xc1396cff, REGISTRY_RIPENCC }, // 193.57.108.0 - 193.57.108.255 { 0xc1396d00, 0xc1397eff, REGISTRY_RIPENCC }, // 193.57.109.0 - 193.57.126.255 { 0xc1397f00, 0xc13983ff, REGISTRY_RIPENCC }, // 193.57.127.0 - 193.57.131.255 { 0xc1398400, 0xc13987ff, REGISTRY_RIPENCC }, // 193.57.132.0 - 193.57.135.255 { 0xc1398800, 0xc1398cff, REGISTRY_RIPENCC }, // 193.57.136.0 - 193.57.140.255 { 0xc1398d00, 0xc1398dff, REGISTRY_RIPENCC }, // 193.57.141.0 - 193.57.141.255 { 0xc1398e00, 0xc13990ff, REGISTRY_RIPENCC }, // 193.57.142.0 - 193.57.144.255 { 0xc1399100, 0xc13991ff, REGISTRY_RIPENCC }, // 193.57.145.0 - 193.57.145.255 { 0xc1399200, 0xc13997ff, REGISTRY_RIPENCC }, // 193.57.146.0 - 193.57.151.255 { 0xc1399800, 0xc1399eff, REGISTRY_RIPENCC }, // 193.57.152.0 - 193.57.158.255 { 0xc1399f00, 0xc139a8ff, REGISTRY_RIPENCC }, // 193.57.159.0 - 193.57.168.255 { 0xc139a900, 0xc139abff, REGISTRY_RIPENCC }, // 193.57.169.0 - 193.57.171.255 { 0xc139ac00, 0xc139afff, REGISTRY_RIPENCC }, // 193.57.172.0 - 193.57.175.255 { 0xc139b000, 0xc139c7ff, REGISTRY_RIPENCC }, // 193.57.176.0 - 193.57.199.255 { 0xc139c800, 0xc139c8ff, REGISTRY_RIPENCC }, // 193.57.200.0 - 193.57.200.255 { 0xc139c900, 0xc139c9ff, REGISTRY_RIPENCC }, // 193.57.201.0 - 193.57.201.255 { 0xc139ca00, 0xc139cbff, REGISTRY_RIPENCC }, // 193.57.202.0 - 193.57.203.255 { 0xc139cc00, 0xc139cdff, REGISTRY_RIPENCC }, // 193.57.204.0 - 193.57.205.255 { 0xc139ce00, 0xc139d9ff, REGISTRY_RIPENCC }, // 193.57.206.0 - 193.57.217.255 { 0xc139da00, 0xc139deff, REGISTRY_RIPENCC }, // 193.57.218.0 - 193.57.222.255 { 0xc139df00, 0xc139e0ff, REGISTRY_RIPENCC }, // 193.57.223.0 - 193.57.224.255 { 0xc139e100, 0xc139e1ff, REGISTRY_RIPENCC }, // 193.57.225.0 - 193.57.225.255 { 0xc139e200, 0xc139e7ff, REGISTRY_RIPENCC }, // 193.57.226.0 - 193.57.231.255 { 0xc139e800, 0xc139f7ff, REGISTRY_RIPENCC }, // 193.57.232.0 - 193.57.247.255 { 0xc139f800, 0xc139f8ff, REGISTRY_RIPENCC }, // 193.57.248.0 - 193.57.248.255 { 0xc139f900, 0xc13a002f, REGISTRY_RIPENCC }, // 193.57.249.0 - 193.58.0.47 { 0xc13a0038, 0xc13a06ff, REGISTRY_RIPENCC }, // 193.58.0.56 - 193.58.6.255 { 0xc13a0700, 0xc13a0fff, REGISTRY_RIPENCC }, // 193.58.7.0 - 193.58.15.255 { 0xc13a1000, 0xc13a23ff, REGISTRY_RIPENCC }, // 193.58.16.0 - 193.58.35.255 { 0xc13a2400, 0xc13a27ff, REGISTRY_RIPENCC }, // 193.58.36.0 - 193.58.39.255 { 0xc13a2800, 0xc13a29ff, REGISTRY_RIPENCC }, // 193.58.40.0 - 193.58.41.255 { 0xc13a2a00, 0xc13a2bff, REGISTRY_RIPENCC }, // 193.58.42.0 - 193.58.43.255 { 0xc13a2c00, 0xc13a57ff, REGISTRY_RIPENCC }, // 193.58.44.0 - 193.58.87.255 { 0xc13a5800, 0xc13a5bff, REGISTRY_RIPENCC }, // 193.58.88.0 - 193.58.91.255 { 0xc13a5c00, 0xc13a5fff, REGISTRY_RIPENCC }, // 193.58.92.0 - 193.58.95.255 { 0xc13a6000, 0xc13a7fff, REGISTRY_RIPENCC }, // 193.58.96.0 - 193.58.127.255 { 0xc13a8000, 0xc13a83ff, REGISTRY_RIPENCC }, // 193.58.128.0 - 193.58.131.255 { 0xc13a8400, 0xc13a87ff, REGISTRY_RIPENCC }, // 193.58.132.0 - 193.58.135.255 { 0xc13a8800, 0xc13a8fff, REGISTRY_RIPENCC }, // 193.58.136.0 - 193.58.143.255 { 0xc13a9000, 0xc13a93ff, REGISTRY_RIPENCC }, // 193.58.144.0 - 193.58.147.255 { 0xc13a9400, 0xc13a95ff, REGISTRY_RIPENCC }, // 193.58.148.0 - 193.58.149.255 { 0xc13a9600, 0xc13a9aff, REGISTRY_RIPENCC }, // 193.58.150.0 - 193.58.154.255 { 0xc13a9b00, 0xc13aa3ff, REGISTRY_RIPENCC }, // 193.58.155.0 - 193.58.163.255 { 0xc13aa400, 0xc13aabff, REGISTRY_RIPENCC }, // 193.58.164.0 - 193.58.171.255 { 0xc13aac00, 0xc13aacff, REGISTRY_RIPENCC }, // 193.58.172.0 - 193.58.172.255 { 0xc13aad00, 0xc13abfff, REGISTRY_RIPENCC }, // 193.58.173.0 - 193.58.191.255 { 0xc13ac000, 0xc13aecff, REGISTRY_RIPENCC }, // 193.58.192.0 - 193.58.236.255 { 0xc13aed00, 0xc13aedff, REGISTRY_RIPENCC }, // 193.58.237.0 - 193.58.237.255 { 0xc13aee00, 0xc13aefff, REGISTRY_RIPENCC }, // 193.58.238.0 - 193.58.239.255 { 0xc13af000, 0xc13af0ff, REGISTRY_RIPENCC }, // 193.58.240.0 - 193.58.240.255 { 0xc13af100, 0xc13af7ff, REGISTRY_RIPENCC }, // 193.58.241.0 - 193.58.247.255 { 0xc13af800, 0xc13afaff, REGISTRY_RIPENCC }, // 193.58.248.0 - 193.58.250.255 { 0xc13afb00, 0xc13afdff, REGISTRY_RIPENCC }, // 193.58.251.0 - 193.58.253.255 { 0xc13afe00, 0xc13afeff, REGISTRY_RIPENCC }, // 193.58.254.0 - 193.58.254.255 { 0xc13aff00, 0xc13affff, REGISTRY_RIPENCC }, // 193.58.255.0 - 193.58.255.255 { 0xc13b0000, 0xc1484fff, REGISTRY_RIPENCC }, // 193.59.0.0 - 193.72.79.255 { 0xc1485000, 0xc14850ff, REGISTRY_RIPENCC }, // 193.72.80.0 - 193.72.80.255 { 0xc1485100, 0xc1488fff, REGISTRY_RIPENCC }, // 193.72.81.0 - 193.72.143.255 { 0xc1489000, 0xc14893ff, REGISTRY_RIPENCC }, // 193.72.144.0 - 193.72.147.255 { 0xc1489400, 0xc148a5ff, REGISTRY_RIPENCC }, // 193.72.148.0 - 193.72.165.255 { 0xc148a600, 0xc148a6ff, REGISTRY_RIPENCC }, // 193.72.166.0 - 193.72.166.255 { 0xc148a700, 0xc148b9ff, REGISTRY_RIPENCC }, // 193.72.167.0 - 193.72.185.255 { 0xc148ba00, 0xc148baff, REGISTRY_RIPENCC }, // 193.72.186.0 - 193.72.186.255 { 0xc148bb00, 0xc148d7ff, REGISTRY_RIPENCC }, // 193.72.187.0 - 193.72.215.255 { 0xc148d800, 0xc148d8ff, REGISTRY_RIPENCC }, // 193.72.216.0 - 193.72.216.255 { 0xc148d900, 0xc14969ff, REGISTRY_RIPENCC }, // 193.72.217.0 - 193.73.105.255 { 0xc1496a00, 0xc1496bff, REGISTRY_RIPENCC }, // 193.73.106.0 - 193.73.107.255 { 0xc1496c00, 0xc14970ff, REGISTRY_RIPENCC }, // 193.73.108.0 - 193.73.112.255 { 0xc1497100, 0xc14972ff, REGISTRY_RIPENCC }, // 193.73.113.0 - 193.73.114.255 { 0xc1497300, 0xc14979ff, REGISTRY_RIPENCC }, // 193.73.115.0 - 193.73.121.255 { 0xc1497a00, 0xc1497aff, REGISTRY_RIPENCC }, // 193.73.122.0 - 193.73.122.255 { 0xc1497b00, 0xc1497cff, REGISTRY_RIPENCC }, // 193.73.123.0 - 193.73.124.255 { 0xc1497d00, 0xc1497dff, REGISTRY_RIPENCC }, // 193.73.125.0 - 193.73.125.255 { 0xc1497e00, 0xc149d2ff, REGISTRY_RIPENCC }, // 193.73.126.0 - 193.73.210.255 { 0xc149d300, 0xc149d3ff, REGISTRY_RIPENCC }, // 193.73.211.0 - 193.73.211.255 { 0xc149d400, 0xc149edff, REGISTRY_RIPENCC }, // 193.73.212.0 - 193.73.237.255 { 0xc149ee00, 0xc149eeff, REGISTRY_RIPENCC }, // 193.73.238.0 - 193.73.238.255 { 0xc149ef00, 0xc149f1ff, REGISTRY_RIPENCC }, // 193.73.239.0 - 193.73.241.255 { 0xc149f200, 0xc149f3ff, REGISTRY_RIPENCC }, // 193.73.242.0 - 193.73.243.255 { 0xc149f400, 0xc149faff, REGISTRY_RIPENCC }, // 193.73.244.0 - 193.73.250.255 { 0xc149fb00, 0xc149fbff, REGISTRY_RIPENCC }, // 193.73.251.0 - 193.73.251.255 { 0xc149fc00, 0xc151ffff, REGISTRY_RIPENCC }, // 193.73.252.0 - 193.81.255.255 { 0xc1520000, 0xc1521fff, REGISTRY_APNIC }, // 193.82.0.0 - 193.82.31.255 { 0xc1522000, 0xc1523fff, REGISTRY_RIPENCC }, // 193.82.32.0 - 193.82.63.255 { 0xc1524000, 0xc1525fff, REGISTRY_APNIC }, // 193.82.64.0 - 193.82.95.255 { 0xc1526000, 0xc1529fff, REGISTRY_RIPENCC }, // 193.82.96.0 - 193.82.159.255 { 0xc152a000, 0xc152bfff, REGISTRY_APNIC }, // 193.82.160.0 - 193.82.191.255 { 0xc152c000, 0xc152dfff, REGISTRY_RIPENCC }, // 193.82.192.0 - 193.82.223.255 { 0xc152e000, 0xc152ffff, REGISTRY_APNIC }, // 193.82.224.0 - 193.82.255.255 { 0xc1530000, 0xc153ffff, REGISTRY_RIPENCC }, // 193.83.0.0 - 193.83.255.255 { 0xc1540000, 0xc15400ff, REGISTRY_RIPENCC }, // 193.84.0.0 - 193.84.0.255 { 0xc1540100, 0xc15406ff, REGISTRY_RIPENCC }, // 193.84.1.0 - 193.84.6.255 { 0xc1540700, 0xc15407ff, REGISTRY_RIPENCC }, // 193.84.7.0 - 193.84.7.255 { 0xc1540800, 0xc15408ff, REGISTRY_RIPENCC }, // 193.84.8.0 - 193.84.8.255 { 0xc1540900, 0xc15409ff, REGISTRY_RIPENCC }, // 193.84.9.0 - 193.84.9.255 { 0xc1540b00, 0xc1540bff, REGISTRY_RIPENCC }, // 193.84.11.0 - 193.84.11.255 { 0xc1540c00, 0xc1540fff, REGISTRY_RIPENCC }, // 193.84.12.0 - 193.84.15.255 { 0xc1541000, 0xc15410ff, REGISTRY_RIPENCC }, // 193.84.16.0 - 193.84.16.255 { 0xc1541100, 0xc15412ff, REGISTRY_RIPENCC }, // 193.84.17.0 - 193.84.18.255 { 0xc1541300, 0xc15413ff, REGISTRY_RIPENCC }, // 193.84.19.0 - 193.84.19.255 { 0xc1541400, 0xc1541dff, REGISTRY_RIPENCC }, // 193.84.20.0 - 193.84.29.255 { 0xc1541e00, 0xc1541eff, REGISTRY_RIPENCC }, // 193.84.30.0 - 193.84.30.255 { 0xc1541f00, 0xc1542fff, REGISTRY_RIPENCC }, // 193.84.31.0 - 193.84.47.255 { 0xc1543000, 0xc15431ff, REGISTRY_RIPENCC }, // 193.84.48.0 - 193.84.49.255 { 0xc1543200, 0xc15432ff, REGISTRY_RIPENCC }, // 193.84.50.0 - 193.84.50.255 { 0xc1543300, 0xc15433ff, REGISTRY_RIPENCC }, // 193.84.51.0 - 193.84.51.255 { 0xc1543400, 0xc15445ff, REGISTRY_RIPENCC }, // 193.84.52.0 - 193.84.69.255 { 0xc1544600, 0xc15447ff, REGISTRY_RIPENCC }, // 193.84.70.0 - 193.84.71.255 { 0xc1544800, 0xc15449ff, REGISTRY_RIPENCC }, // 193.84.72.0 - 193.84.73.255 { 0xc1544a00, 0xc1544aff, REGISTRY_RIPENCC }, // 193.84.74.0 - 193.84.74.255 { 0xc1544b00, 0xc1544dff, REGISTRY_RIPENCC }, // 193.84.75.0 - 193.84.77.255 { 0xc1544e00, 0xc1544eff, REGISTRY_RIPENCC }, // 193.84.78.0 - 193.84.78.255 { 0xc1544f00, 0xc15454ff, REGISTRY_RIPENCC }, // 193.84.79.0 - 193.84.84.255 { 0xc1545500, 0xc15455ff, REGISTRY_RIPENCC }, // 193.84.85.0 - 193.84.85.255 { 0xc1545600, 0xc15457ff, REGISTRY_RIPENCC }, // 193.84.86.0 - 193.84.87.255 { 0xc1545800, 0xc15458ff, REGISTRY_RIPENCC }, // 193.84.88.0 - 193.84.88.255 { 0xc1545900, 0xc15459ff, REGISTRY_RIPENCC }, // 193.84.89.0 - 193.84.89.255 { 0xc1545a00, 0xc1545aff, REGISTRY_RIPENCC }, // 193.84.90.0 - 193.84.90.255 { 0xc1545b00, 0xc1545bff, REGISTRY_RIPENCC }, // 193.84.91.0 - 193.84.91.255 { 0xc1545c00, 0xc1545dff, REGISTRY_RIPENCC }, // 193.84.92.0 - 193.84.93.255 { 0xc1545e00, 0xc15463ff, REGISTRY_RIPENCC }, // 193.84.94.0 - 193.84.99.255 { 0xc1546400, 0xc15467ff, REGISTRY_RIPENCC }, // 193.84.100.0 - 193.84.103.255 { 0xc1546800, 0xc1546bff, REGISTRY_RIPENCC }, // 193.84.104.0 - 193.84.107.255 { 0xc1546c00, 0xc1546eff, REGISTRY_RIPENCC }, // 193.84.108.0 - 193.84.110.255 { 0xc1546f00, 0xc1546fff, REGISTRY_ARIN }, // 193.84.111.0 - 193.84.111.255 { 0xc1547000, 0xc15470ff, REGISTRY_RIPENCC }, // 193.84.112.0 - 193.84.112.255 { 0xc1547100, 0xc15473ff, REGISTRY_RIPENCC }, // 193.84.113.0 - 193.84.115.255 { 0xc1547400, 0xc15475ff, REGISTRY_RIPENCC }, // 193.84.116.0 - 193.84.117.255 { 0xc1547600, 0xc1547fff, REGISTRY_RIPENCC }, // 193.84.118.0 - 193.84.127.255 { 0xc1548000, 0xc15481ff, REGISTRY_RIPENCC }, // 193.84.128.0 - 193.84.129.255 { 0xc1548200, 0xc1548dff, REGISTRY_RIPENCC }, // 193.84.130.0 - 193.84.141.255 { 0xc1548e00, 0xc154b0ff, REGISTRY_RIPENCC }, // 193.84.142.0 - 193.84.176.255 { 0xc154b100, 0xc154b1ff, REGISTRY_RIPENCC }, // 193.84.177.0 - 193.84.177.255 { 0xc154b200, 0xc154b2ff, REGISTRY_RIPENCC }, // 193.84.178.0 - 193.84.178.255 { 0xc154b400, 0xc154b4ff, REGISTRY_RIPENCC }, // 193.84.180.0 - 193.84.180.255 { 0xc154b500, 0xc154baff, REGISTRY_RIPENCC }, // 193.84.181.0 - 193.84.186.255 { 0xc154bb00, 0xc154bfff, REGISTRY_RIPENCC }, // 193.84.187.0 - 193.84.191.255 { 0xc154c000, 0xc154dfff, REGISTRY_RIPENCC }, // 193.84.192.0 - 193.84.223.255 { 0xc154e000, 0xc154f4ff, REGISTRY_RIPENCC }, // 193.84.224.0 - 193.84.244.255 { 0xc154f500, 0xc154f6ff, REGISTRY_RIPENCC }, // 193.84.245.0 - 193.84.246.255 { 0xc154f700, 0xc154faff, REGISTRY_RIPENCC }, // 193.84.247.0 - 193.84.250.255 { 0xc154fb00, 0xc154fcff, REGISTRY_RIPENCC }, // 193.84.251.0 - 193.84.252.255 { 0xc154fd00, 0xc154feff, REGISTRY_RIPENCC }, // 193.84.253.0 - 193.84.254.255 { 0xc154ff00, 0xc154ffff, REGISTRY_RIPENCC }, // 193.84.255.0 - 193.84.255.255 { 0xc1550000, 0xc15cffff, REGISTRY_RIPENCC }, // 193.85.0.0 - 193.92.255.255 { 0xc15d0000, 0xc15d03ff, REGISTRY_RIPENCC }, // 193.93.0.0 - 193.93.3.255 { 0xc15d0400, 0xc15d07ff, REGISTRY_RIPENCC }, // 193.93.4.0 - 193.93.7.255 { 0xc15d0800, 0xc15d1bff, REGISTRY_RIPENCC }, // 193.93.8.0 - 193.93.27.255 { 0xc15d1c00, 0xc15d1fff, REGISTRY_RIPENCC }, // 193.93.28.0 - 193.93.31.255 { 0xc15d2000, 0xc15d33ff, REGISTRY_RIPENCC }, // 193.93.32.0 - 193.93.51.255 { 0xc15d3400, 0xc15d37ff, REGISTRY_RIPENCC }, // 193.93.52.0 - 193.93.55.255 { 0xc15d3800, 0xc15d4fff, REGISTRY_RIPENCC }, // 193.93.56.0 - 193.93.79.255 { 0xc15d5000, 0xc15d53ff, REGISTRY_RIPENCC }, // 193.93.80.0 - 193.93.83.255 { 0xc15d5400, 0xc15d5fff, REGISTRY_RIPENCC }, // 193.93.84.0 - 193.93.95.255 { 0xc15d6000, 0xc15d63ff, REGISTRY_RIPENCC }, // 193.93.96.0 - 193.93.99.255 { 0xc15d6400, 0xc15d6bff, REGISTRY_RIPENCC }, // 193.93.100.0 - 193.93.107.255 { 0xc15d6c00, 0xc15d6fff, REGISTRY_RIPENCC }, // 193.93.108.0 - 193.93.111.255 { 0xc15d7000, 0xc15d97ff, REGISTRY_RIPENCC }, // 193.93.112.0 - 193.93.151.255 { 0xc15d9800, 0xc15d9bff, REGISTRY_RIPENCC }, // 193.93.152.0 - 193.93.155.255 { 0xc15d9c00, 0xc15db3ff, REGISTRY_RIPENCC }, // 193.93.156.0 - 193.93.179.255 { 0xc15db800, 0xc15dbfff, REGISTRY_RIPENCC }, // 193.93.184.0 - 193.93.191.255 { 0xc15dc000, 0xc15dc3ff, REGISTRY_RIPENCC }, // 193.93.192.0 - 193.93.195.255 { 0xc15dc400, 0xc15de7ff, REGISTRY_RIPENCC }, // 193.93.196.0 - 193.93.231.255 { 0xc15de800, 0xc15debff, REGISTRY_RIPENCC }, // 193.93.232.0 - 193.93.235.255 { 0xc15dec00, 0xc15df7ff, REGISTRY_RIPENCC }, // 193.93.236.0 - 193.93.247.255 { 0xc15df800, 0xc15dfbff, REGISTRY_RIPENCC }, // 193.93.248.0 - 193.93.251.255 { 0xc15dfc00, 0xc15dffff, REGISTRY_RIPENCC }, // 193.93.252.0 - 193.93.255.255 { 0xc15e0000, 0xc15effff, REGISTRY_RIPENCC }, // 193.94.0.0 - 193.94.255.255 { 0xc15f0000, 0xc15f7fff, REGISTRY_AFRINIC }, // 193.95.0.0 - 193.95.127.255 { 0xc15f8000, 0xc16017ff, REGISTRY_RIPENCC }, // 193.95.128.0 - 193.96.23.255 { 0xc1601800, 0xc16018ff, REGISTRY_RIPENCC }, // 193.96.24.0 - 193.96.24.255 { 0xc1601900, 0xc1601bff, REGISTRY_RIPENCC }, // 193.96.25.0 - 193.96.27.255 { 0xc1601c00, 0xc1601cff, REGISTRY_RIPENCC }, // 193.96.28.0 - 193.96.28.255 { 0xc1601d00, 0xc1605fff, REGISTRY_RIPENCC }, // 193.96.29.0 - 193.96.95.255 { 0xc1606000, 0xc16067ff, REGISTRY_RIPENCC }, // 193.96.96.0 - 193.96.103.255 { 0xc1606800, 0xc16068ff, REGISTRY_RIPENCC }, // 193.96.104.0 - 193.96.104.255 { 0xc1606900, 0xc16069ff, REGISTRY_RIPENCC }, // 193.96.105.0 - 193.96.105.255 { 0xc1606a00, 0xc1606bff, REGISTRY_RIPENCC }, // 193.96.106.0 - 193.96.107.255 { 0xc1606c00, 0xc1606dff, REGISTRY_RIPENCC }, // 193.96.108.0 - 193.96.109.255 { 0xc1606e00, 0xc1606fff, REGISTRY_RIPENCC }, // 193.96.110.0 - 193.96.111.255 { 0xc1607000, 0xc16077ff, REGISTRY_RIPENCC }, // 193.96.112.0 - 193.96.119.255 { 0xc1607800, 0xc1607fff, REGISTRY_RIPENCC }, // 193.96.120.0 - 193.96.127.255 { 0xc1608000, 0xc1608fff, REGISTRY_RIPENCC }, // 193.96.128.0 - 193.96.143.255 { 0xc1609000, 0xc160acff, REGISTRY_RIPENCC }, // 193.96.144.0 - 193.96.172.255 { 0xc160ad00, 0xc160adff, REGISTRY_RIPENCC }, // 193.96.173.0 - 193.96.173.255 { 0xc160ae00, 0xc160e1ff, REGISTRY_RIPENCC }, // 193.96.174.0 - 193.96.225.255 { 0xc160e200, 0xc160e2ff, REGISTRY_RIPENCC }, // 193.96.226.0 - 193.96.226.255 { 0xc160e300, 0xc160e5ff, REGISTRY_RIPENCC }, // 193.96.227.0 - 193.96.229.255 { 0xc160e600, 0xc160e6ff, REGISTRY_RIPENCC }, // 193.96.230.0 - 193.96.230.255 { 0xc160e700, 0xc160e7ff, REGISTRY_RIPENCC }, // 193.96.231.0 - 193.96.231.255 { 0xc160e800, 0xc160e9ff, REGISTRY_RIPENCC }, // 193.96.232.0 - 193.96.233.255 { 0xc160ea00, 0xc160ebff, REGISTRY_RIPENCC }, // 193.96.234.0 - 193.96.235.255 { 0xc160ed00, 0xc160eeff, REGISTRY_RIPENCC }, // 193.96.237.0 - 193.96.238.255 { 0xc160ef00, 0xc160efff, REGISTRY_RIPENCC }, // 193.96.239.0 - 193.96.239.255 { 0xc160f000, 0xc160f0ff, REGISTRY_RIPENCC }, // 193.96.240.0 - 193.96.240.255 { 0xc160f100, 0xc160f2ff, REGISTRY_RIPENCC }, // 193.96.241.0 - 193.96.242.255 { 0xc160f300, 0xc160f3ff, REGISTRY_RIPENCC }, // 193.96.243.0 - 193.96.243.255 { 0xc160f400, 0xc1617fff, REGISTRY_RIPENCC }, // 193.96.244.0 - 193.97.127.255 { 0xc1618000, 0xc16181ff, REGISTRY_RIPENCC }, // 193.97.128.0 - 193.97.129.255 { 0xc1618200, 0xc16188ff, REGISTRY_RIPENCC }, // 193.97.130.0 - 193.97.136.255 { 0xc1618900, 0xc16189ff, REGISTRY_RIPENCC }, // 193.97.137.0 - 193.97.137.255 { 0xc1618a00, 0xc1618eff, REGISTRY_RIPENCC }, // 193.97.138.0 - 193.97.142.255 { 0xc1618f00, 0xc1618fff, REGISTRY_RIPENCC }, // 193.97.143.0 - 193.97.143.255 { 0xc1619000, 0xc161a7ff, REGISTRY_RIPENCC }, // 193.97.144.0 - 193.97.167.255 { 0xc161a800, 0xc161bbff, REGISTRY_RIPENCC }, // 193.97.168.0 - 193.97.187.255 { 0xc161bc00, 0xc161e4ff, REGISTRY_RIPENCC }, // 193.97.188.0 - 193.97.228.255 { 0xc161e500, 0xc161e5ff, REGISTRY_RIPENCC }, // 193.97.229.0 - 193.97.229.255 { 0xc161e600, 0xc161edff, REGISTRY_RIPENCC }, // 193.97.230.0 - 193.97.237.255 { 0xc161ee00, 0xc161eeff, REGISTRY_RIPENCC }, // 193.97.238.0 - 193.97.238.255 { 0xc161ef00, 0xc16200ff, REGISTRY_RIPENCC }, // 193.97.239.0 - 193.98.0.255 { 0xc1620100, 0xc16201ff, REGISTRY_RIPENCC }, // 193.98.1.0 - 193.98.1.255 { 0xc1620200, 0xc1620eff, REGISTRY_RIPENCC }, // 193.98.2.0 - 193.98.14.255 { 0xc1620f00, 0xc1620fff, REGISTRY_RIPENCC }, // 193.98.15.0 - 193.98.15.255 { 0xc1621000, 0xc16227ff, REGISTRY_RIPENCC }, // 193.98.16.0 - 193.98.39.255 { 0xc1622800, 0xc1622bff, REGISTRY_RIPENCC }, // 193.98.40.0 - 193.98.43.255 { 0xc1622c00, 0xc1623fff, REGISTRY_RIPENCC }, // 193.98.44.0 - 193.98.63.255 { 0xc1624000, 0xc1624fff, REGISTRY_RIPENCC }, // 193.98.64.0 - 193.98.79.255 { 0xc1625000, 0xc1626dff, REGISTRY_RIPENCC }, // 193.98.80.0 - 193.98.109.255 { 0xc1626e00, 0xc1626eff, REGISTRY_RIPENCC }, // 193.98.110.0 - 193.98.110.255 { 0xc1626f00, 0xc1626fff, REGISTRY_RIPENCC }, // 193.98.111.0 - 193.98.111.255 { 0xc1627000, 0xc16277ff, REGISTRY_RIPENCC }, // 193.98.112.0 - 193.98.119.255 { 0xc1627800, 0xc1629bff, REGISTRY_RIPENCC }, // 193.98.120.0 - 193.98.155.255 { 0xc1629c00, 0xc1629cff, REGISTRY_RIPENCC }, // 193.98.156.0 - 193.98.156.255 { 0xc1629d00, 0xc162a6ff, REGISTRY_RIPENCC }, // 193.98.157.0 - 193.98.166.255 { 0xc162a700, 0xc162a7ff, REGISTRY_RIPENCC }, // 193.98.167.0 - 193.98.167.255 { 0xc162a800, 0xc162b4ff, REGISTRY_RIPENCC }, // 193.98.168.0 - 193.98.180.255 { 0xc162b500, 0xc162b5ff, REGISTRY_RIPENCC }, // 193.98.181.0 - 193.98.181.255 { 0xc162b600, 0xc162dcff, REGISTRY_RIPENCC }, // 193.98.182.0 - 193.98.220.255 { 0xc162dd00, 0xc162ddff, REGISTRY_RIPENCC }, // 193.98.221.0 - 193.98.221.255 { 0xc162de00, 0xc162dfff, REGISTRY_RIPENCC }, // 193.98.222.0 - 193.98.223.255 { 0xc162e000, 0xc162e0ff, REGISTRY_RIPENCC }, // 193.98.224.0 - 193.98.224.255 { 0xc162e100, 0xc162e4ff, REGISTRY_RIPENCC }, // 193.98.225.0 - 193.98.228.255 { 0xc162e500, 0xc162e5ff, REGISTRY_RIPENCC }, // 193.98.229.0 - 193.98.229.255 { 0xc162e600, 0xc162eaff, REGISTRY_RIPENCC }, // 193.98.230.0 - 193.98.234.255 { 0xc162eb00, 0xc162ebff, REGISTRY_RIPENCC }, // 193.98.235.0 - 193.98.235.255 { 0xc162ec00, 0xc16347ff, REGISTRY_RIPENCC }, // 193.98.236.0 - 193.99.71.255 { 0xc1634800, 0xc1634fff, REGISTRY_RIPENCC }, // 193.99.72.0 - 193.99.79.255 { 0xc1635000, 0xc16352ff, REGISTRY_RIPENCC }, // 193.99.80.0 - 193.99.82.255 { 0xc1635300, 0xc16353ff, REGISTRY_RIPENCC }, // 193.99.83.0 - 193.99.83.255 { 0xc1635400, 0xc1635fff, REGISTRY_RIPENCC }, // 193.99.84.0 - 193.99.95.255 { 0xc1636000, 0xc1636fff, REGISTRY_RIPENCC }, // 193.99.96.0 - 193.99.111.255 { 0xc1637000, 0xc1638fff, REGISTRY_RIPENCC }, // 193.99.112.0 - 193.99.143.255 { 0xc1639000, 0xc16391ff, REGISTRY_RIPENCC }, // 193.99.144.0 - 193.99.145.255 { 0xc1639200, 0xc16398ff, REGISTRY_RIPENCC }, // 193.99.146.0 - 193.99.152.255 { 0xc1639a00, 0xc1639fff, REGISTRY_RIPENCC }, // 193.99.154.0 - 193.99.159.255 { 0xc163a000, 0xc163a7ff, REGISTRY_RIPENCC }, // 193.99.160.0 - 193.99.167.255 { 0xc163a800, 0xc163d5ff, REGISTRY_RIPENCC }, // 193.99.168.0 - 193.99.213.255 { 0xc163d600, 0xc163d7ff, REGISTRY_RIPENCC }, // 193.99.214.0 - 193.99.215.255 { 0xc163d800, 0xc163e2ff, REGISTRY_RIPENCC }, // 193.99.216.0 - 193.99.226.255 { 0xc163e300, 0xc163e3ff, REGISTRY_RIPENCC }, // 193.99.227.0 - 193.99.227.255 { 0xc163e400, 0xc163f5ff, REGISTRY_RIPENCC }, // 193.99.228.0 - 193.99.245.255 { 0xc163f600, 0xc163f6ff, REGISTRY_RIPENCC }, // 193.99.246.0 - 193.99.246.255 { 0xc163f700, 0xc163f8ff, REGISTRY_RIPENCC }, // 193.99.247.0 - 193.99.248.255 { 0xc163fa00, 0xc16400ff, REGISTRY_RIPENCC }, // 193.99.250.0 - 193.100.0.255 { 0xc1640100, 0xc16403ff, REGISTRY_RIPENCC }, // 193.100.1.0 - 193.100.3.255 { 0xc1640400, 0xc16413ff, REGISTRY_RIPENCC }, // 193.100.4.0 - 193.100.19.255 { 0xc1641400, 0xc16417ff, REGISTRY_RIPENCC }, // 193.100.20.0 - 193.100.23.255 { 0xc1641800, 0xc1641fff, REGISTRY_RIPENCC }, // 193.100.24.0 - 193.100.31.255 { 0xc1642000, 0xc1645fff, REGISTRY_RIPENCC }, // 193.100.32.0 - 193.100.95.255 { 0xc1646000, 0xc1647bff, REGISTRY_RIPENCC }, // 193.100.96.0 - 193.100.123.255 { 0xc1647c00, 0xc1647dff, REGISTRY_RIPENCC }, // 193.100.124.0 - 193.100.125.255 { 0xc1647e00, 0xc164a6ff, REGISTRY_RIPENCC }, // 193.100.126.0 - 193.100.166.255 { 0xc164a700, 0xc164a7ff, REGISTRY_RIPENCC }, // 193.100.167.0 - 193.100.167.255 { 0xc164a800, 0xc164d0ff, REGISTRY_RIPENCC }, // 193.100.168.0 - 193.100.208.255 { 0xc164d100, 0xc164d1ff, REGISTRY_RIPENCC }, // 193.100.209.0 - 193.100.209.255 { 0xc164d200, 0xc164e2ff, REGISTRY_RIPENCC }, // 193.100.210.0 - 193.100.226.255 { 0xc164e300, 0xc164e8ff, REGISTRY_RIPENCC }, // 193.100.227.0 - 193.100.232.255 { 0xc164e900, 0xc164f3ff, REGISTRY_RIPENCC }, // 193.100.233.0 - 193.100.243.255 { 0xc164f400, 0xc164fcff, REGISTRY_RIPENCC }, // 193.100.244.0 - 193.100.252.255 { 0xc164fd00, 0xc164fdff, REGISTRY_RIPENCC }, // 193.100.253.0 - 193.100.253.255 { 0xc164fe00, 0xc164feff, REGISTRY_RIPENCC }, // 193.100.254.0 - 193.100.254.255 { 0xc164ff00, 0xc16503ff, REGISTRY_RIPENCC }, // 193.100.255.0 - 193.101.3.255 { 0xc1650400, 0xc16505ff, REGISTRY_RIPENCC }, // 193.101.4.0 - 193.101.5.255 { 0xc1650600, 0xc1650aff, REGISTRY_RIPENCC }, // 193.101.6.0 - 193.101.10.255 { 0xc1650b00, 0xc1650fff, REGISTRY_RIPENCC }, // 193.101.11.0 - 193.101.15.255 { 0xc1651000, 0xc16517ff, REGISTRY_RIPENCC }, // 193.101.16.0 - 193.101.23.255 { 0xc1651800, 0xc1651fff, REGISTRY_RIPENCC }, // 193.101.24.0 - 193.101.31.255 { 0xc1652000, 0xc1652eff, REGISTRY_RIPENCC }, // 193.101.32.0 - 193.101.46.255 { 0xc1652f00, 0xc1652fff, REGISTRY_RIPENCC }, // 193.101.47.0 - 193.101.47.255 { 0xc1653000, 0xc16538ff, REGISTRY_RIPENCC }, // 193.101.48.0 - 193.101.56.255 { 0xc1653900, 0xc1653aff, REGISTRY_RIPENCC }, // 193.101.57.0 - 193.101.58.255 { 0xc1653b00, 0xc16542ff, REGISTRY_RIPENCC }, // 193.101.59.0 - 193.101.66.255 { 0xc1654300, 0xc16544ff, REGISTRY_RIPENCC }, // 193.101.67.0 - 193.101.68.255 { 0xc1654500, 0xc16577ff, REGISTRY_RIPENCC }, // 193.101.69.0 - 193.101.119.255 { 0xc1657800, 0xc16579ff, REGISTRY_RIPENCC }, // 193.101.120.0 - 193.101.121.255 { 0xc1657a00, 0xc1657fff, REGISTRY_RIPENCC }, // 193.101.122.0 - 193.101.127.255 { 0xc1658000, 0xc16583ff, REGISTRY_RIPENCC }, // 193.101.128.0 - 193.101.131.255 { 0xc1658400, 0xc1658aff, REGISTRY_RIPENCC }, // 193.101.132.0 - 193.101.138.255 { 0xc1658b00, 0xc1658bff, REGISTRY_RIPENCC }, // 193.101.139.0 - 193.101.139.255 { 0xc1658c00, 0xc1658fff, REGISTRY_RIPENCC }, // 193.101.140.0 - 193.101.143.255 { 0xc1659000, 0xc16593ff, REGISTRY_RIPENCC }, // 193.101.144.0 - 193.101.147.255 { 0xc1659400, 0xc165a1ff, REGISTRY_RIPENCC }, // 193.101.148.0 - 193.101.161.255 { 0xc165a200, 0xc165a3ff, REGISTRY_RIPENCC }, // 193.101.162.0 - 193.101.163.255 { 0xc165a400, 0xc165a6ff, REGISTRY_RIPENCC }, // 193.101.164.0 - 193.101.166.255 { 0xc165a800, 0xc165afff, REGISTRY_RIPENCC }, // 193.101.168.0 - 193.101.175.255 { 0xc165b000, 0xc165b2ff, REGISTRY_RIPENCC }, // 193.101.176.0 - 193.101.178.255 { 0xc165b300, 0xc165b3ff, REGISTRY_RIPENCC }, // 193.101.179.0 - 193.101.179.255 { 0xc165b600, 0xc165b7ff, REGISTRY_RIPENCC }, // 193.101.182.0 - 193.101.183.255 { 0xc165b800, 0xc165b8ff, REGISTRY_RIPENCC }, // 193.101.184.0 - 193.101.184.255 { 0xc165b900, 0xc165bfff, REGISTRY_RIPENCC }, // 193.101.185.0 - 193.101.191.255 { 0xc165c000, 0xc165c3ff, REGISTRY_RIPENCC }, // 193.101.192.0 - 193.101.195.255 { 0xc165c400, 0xc165dbff, REGISTRY_RIPENCC }, // 193.101.196.0 - 193.101.219.255 { 0xc165dc00, 0xc165ddff, REGISTRY_RIPENCC }, // 193.101.220.0 - 193.101.221.255 { 0xc165de00, 0xc165f9ff, REGISTRY_RIPENCC }, // 193.101.222.0 - 193.101.249.255 { 0xc165fa00, 0xc165faff, REGISTRY_RIPENCC }, // 193.101.250.0 - 193.101.250.255 { 0xc165fb00, 0xc16609ff, REGISTRY_RIPENCC }, // 193.101.251.0 - 193.102.9.255 { 0xc1660a00, 0xc1660aff, REGISTRY_RIPENCC }, // 193.102.10.0 - 193.102.10.255 { 0xc1660b00, 0xc1660bff, REGISTRY_RIPENCC }, // 193.102.11.0 - 193.102.11.255 { 0xc1660c00, 0xc1660eff, REGISTRY_RIPENCC }, // 193.102.12.0 - 193.102.14.255 { 0xc1660f00, 0xc16618ff, REGISTRY_RIPENCC }, // 193.102.15.0 - 193.102.24.255 { 0xc1661900, 0xc16619ff, REGISTRY_RIPENCC }, // 193.102.25.0 - 193.102.25.255 { 0xc1661a00, 0xc1661fff, REGISTRY_RIPENCC }, // 193.102.26.0 - 193.102.31.255 { 0xc1662000, 0xc16623ff, REGISTRY_RIPENCC }, // 193.102.32.0 - 193.102.35.255 { 0xc1662400, 0xc1662cff, REGISTRY_RIPENCC }, // 193.102.36.0 - 193.102.44.255 { 0xc1662d00, 0xc1662dff, REGISTRY_RIPENCC }, // 193.102.45.0 - 193.102.45.255 { 0xc1662e00, 0xc16639ff, REGISTRY_RIPENCC }, // 193.102.46.0 - 193.102.57.255 { 0xc1663a00, 0xc1663bff, REGISTRY_RIPENCC }, // 193.102.58.0 - 193.102.59.255 { 0xc1663c00, 0xc16647ff, REGISTRY_RIPENCC }, // 193.102.60.0 - 193.102.71.255 { 0xc1664800, 0xc16649ff, REGISTRY_RIPENCC }, // 193.102.72.0 - 193.102.73.255 { 0xc1664b00, 0xc1664bff, REGISTRY_RIPENCC }, // 193.102.75.0 - 193.102.75.255 { 0xc1664c00, 0xc1664cff, REGISTRY_RIPENCC }, // 193.102.76.0 - 193.102.76.255 { 0xc1664d00, 0xc1664fff, REGISTRY_RIPENCC }, // 193.102.77.0 - 193.102.79.255 { 0xc1665000, 0xc16657ff, REGISTRY_RIPENCC }, // 193.102.80.0 - 193.102.87.255 { 0xc1665800, 0xc1665bff, REGISTRY_RIPENCC }, // 193.102.88.0 - 193.102.91.255 { 0xc1665c00, 0xc16661ff, REGISTRY_RIPENCC }, // 193.102.92.0 - 193.102.97.255 { 0xc1666200, 0xc16662ff, REGISTRY_RIPENCC }, // 193.102.98.0 - 193.102.98.255 { 0xc1666300, 0xc1667fff, REGISTRY_RIPENCC }, // 193.102.99.0 - 193.102.127.255 { 0xc1668000, 0xc16684ff, REGISTRY_RIPENCC }, // 193.102.128.0 - 193.102.132.255 { 0xc1668500, 0xc16687ff, REGISTRY_RIPENCC }, // 193.102.133.0 - 193.102.135.255 { 0xc1668800, 0xc16688ff, REGISTRY_RIPENCC }, // 193.102.136.0 - 193.102.136.255 { 0xc1668900, 0xc1668fff, REGISTRY_RIPENCC }, // 193.102.137.0 - 193.102.143.255 { 0xc1669000, 0xc16691ff, REGISTRY_RIPENCC }, // 193.102.144.0 - 193.102.145.255 { 0xc1669200, 0xc16698ff, REGISTRY_RIPENCC }, // 193.102.146.0 - 193.102.152.255 { 0xc1669900, 0xc16699ff, REGISTRY_RIPENCC }, // 193.102.153.0 - 193.102.153.255 { 0xc1669a00, 0xc1669aff, REGISTRY_RIPENCC }, // 193.102.154.0 - 193.102.154.255 { 0xc1669b00, 0xc1669bff, REGISTRY_RIPENCC }, // 193.102.155.0 - 193.102.155.255 { 0xc1669c00, 0xc1669dff, REGISTRY_RIPENCC }, // 193.102.156.0 - 193.102.157.255 { 0xc1669e00, 0xc1669fff, REGISTRY_RIPENCC }, // 193.102.158.0 - 193.102.159.255 { 0xc166a000, 0xc166a6ff, REGISTRY_RIPENCC }, // 193.102.160.0 - 193.102.166.255 { 0xc166a700, 0xc166a7ff, REGISTRY_RIPENCC }, // 193.102.167.0 - 193.102.167.255 { 0xc166a800, 0xc166abff, REGISTRY_RIPENCC }, // 193.102.168.0 - 193.102.171.255 { 0xc166ac00, 0xc166aeff, REGISTRY_RIPENCC }, // 193.102.172.0 - 193.102.174.255 { 0xc166af00, 0xc166b2ff, REGISTRY_RIPENCC }, // 193.102.175.0 - 193.102.178.255 { 0xc166b300, 0xc166b3ff, REGISTRY_RIPENCC }, // 193.102.179.0 - 193.102.179.255 { 0xc166b400, 0xc166b7ff, REGISTRY_RIPENCC }, // 193.102.180.0 - 193.102.183.255 { 0xc166b800, 0xc166b8ff, REGISTRY_RIPENCC }, // 193.102.184.0 - 193.102.184.255 { 0xc166b900, 0xc166bcff, REGISTRY_RIPENCC }, // 193.102.185.0 - 193.102.188.255 { 0xc166bd00, 0xc166bdff, REGISTRY_RIPENCC }, // 193.102.189.0 - 193.102.189.255 { 0xc166be00, 0xc166c9ff, REGISTRY_RIPENCC }, // 193.102.190.0 - 193.102.201.255 { 0xc166ca00, 0xc166caff, REGISTRY_RIPENCC }, // 193.102.202.0 - 193.102.202.255 { 0xc166cb00, 0xc166cfff, REGISTRY_RIPENCC }, // 193.102.203.0 - 193.102.207.255 { 0xc166d100, 0xc166e2ff, REGISTRY_RIPENCC }, // 193.102.209.0 - 193.102.226.255 { 0xc166e300, 0xc166e3ff, REGISTRY_RIPENCC }, // 193.102.227.0 - 193.102.227.255 { 0xc166e400, 0xc166efff, REGISTRY_RIPENCC }, // 193.102.228.0 - 193.102.239.255 { 0xc166f000, 0xc166f3ff, REGISTRY_RIPENCC }, // 193.102.240.0 - 193.102.243.255 { 0xc166f400, 0xc16700ff, REGISTRY_RIPENCC }, // 193.102.244.0 - 193.103.0.255 { 0xc1670100, 0xc1677fff, REGISTRY_RIPENCC }, // 193.103.1.0 - 193.103.127.255 { 0xc1678000, 0xc16780ff, REGISTRY_RIPENCC }, // 193.103.128.0 - 193.103.128.255 { 0xc1678100, 0xc16781ff, REGISTRY_RIPENCC }, // 193.103.129.0 - 193.103.129.255 { 0xc1678200, 0xc16793ff, REGISTRY_RIPENCC }, // 193.103.130.0 - 193.103.147.255 { 0xc1679400, 0xc16794ff, REGISTRY_RIPENCC }, // 193.103.148.0 - 193.103.148.255 { 0xc1679500, 0xc1679eff, REGISTRY_RIPENCC }, // 193.103.149.0 - 193.103.158.255 { 0xc1679f00, 0xc167a1ff, REGISTRY_RIPENCC }, // 193.103.159.0 - 193.103.161.255 { 0xc167a200, 0xc167a3ff, REGISTRY_RIPENCC }, // 193.103.162.0 - 193.103.163.255 { 0xc167a500, 0xc167a5ff, REGISTRY_RIPENCC }, // 193.103.165.0 - 193.103.165.255 { 0xc167a600, 0xc167bfff, REGISTRY_RIPENCC }, // 193.103.166.0 - 193.103.191.255 { 0xc167c000, 0xc167cfff, REGISTRY_RIPENCC }, // 193.103.192.0 - 193.103.207.255 { 0xc167d000, 0xc167ffff, REGISTRY_RIPENCC }, // 193.103.208.0 - 193.103.255.255 { 0xc1680000, 0xc16804ff, REGISTRY_RIPENCC }, // 193.104.0.0 - 193.104.4.255 { 0xc1680500, 0xc16805ff, REGISTRY_RIPENCC }, // 193.104.5.0 - 193.104.5.255 { 0xc1680600, 0xc16806ff, REGISTRY_RIPENCC }, // 193.104.6.0 - 193.104.6.255 { 0xc1680700, 0xc16807ff, REGISTRY_RIPENCC }, // 193.104.7.0 - 193.104.7.255 { 0xc1680800, 0xc1680bff, REGISTRY_RIPENCC }, // 193.104.8.0 - 193.104.11.255 { 0xc1680c00, 0xc1680cff, REGISTRY_RIPENCC }, // 193.104.12.0 - 193.104.12.255 { 0xc1680d00, 0xc1681cff, REGISTRY_RIPENCC }, // 193.104.13.0 - 193.104.28.255 { 0xc1681d00, 0xc1681dff, REGISTRY_RIPENCC }, // 193.104.29.0 - 193.104.29.255 { 0xc1681e00, 0xc16822ff, REGISTRY_RIPENCC }, // 193.104.30.0 - 193.104.34.255 { 0xc1682300, 0xc16823ff, REGISTRY_RIPENCC }, // 193.104.35.0 - 193.104.35.255 { 0xc1682400, 0xc16828ff, REGISTRY_RIPENCC }, // 193.104.36.0 - 193.104.40.255 { 0xc1682900, 0xc16829ff, REGISTRY_RIPENCC }, // 193.104.41.0 - 193.104.41.255 { 0xc1682a00, 0xc16834ff, REGISTRY_RIPENCC }, // 193.104.42.0 - 193.104.52.255 { 0xc1683600, 0xc16837ff, REGISTRY_RIPENCC }, // 193.104.54.0 - 193.104.55.255 { 0xc1683800, 0xc16839ff, REGISTRY_RIPENCC }, // 193.104.56.0 - 193.104.57.255 { 0xc1683a00, 0xc16842ff, REGISTRY_RIPENCC }, // 193.104.58.0 - 193.104.66.255 { 0xc1684300, 0xc16843ff, REGISTRY_RIPENCC }, // 193.104.67.0 - 193.104.67.255 { 0xc1684400, 0xc1684bff, REGISTRY_RIPENCC }, // 193.104.68.0 - 193.104.75.255 { 0xc1684c00, 0xc1684cff, REGISTRY_RIPENCC }, // 193.104.76.0 - 193.104.76.255 { 0xc1684d00, 0xc1684fff, REGISTRY_RIPENCC }, // 193.104.77.0 - 193.104.79.255 { 0xc1685000, 0xc16850ff, REGISTRY_RIPENCC }, // 193.104.80.0 - 193.104.80.255 { 0xc1685100, 0xc1685cff, REGISTRY_RIPENCC }, // 193.104.81.0 - 193.104.92.255 { 0xc1685d00, 0xc1685eff, REGISTRY_RIPENCC }, // 193.104.93.0 - 193.104.94.255 { 0xc1685f00, 0xc1685fff, REGISTRY_RIPENCC }, // 193.104.95.0 - 193.104.95.255 { 0xc1686000, 0xc16860ff, REGISTRY_RIPENCC }, // 193.104.96.0 - 193.104.96.255 { 0xc1686100, 0xc16861ff, REGISTRY_RIPENCC }, // 193.104.97.0 - 193.104.97.255 { 0xc1686200, 0xc16862ff, REGISTRY_RIPENCC }, // 193.104.98.0 - 193.104.98.255 { 0xc1686300, 0xc1686dff, REGISTRY_RIPENCC }, // 193.104.99.0 - 193.104.109.255 { 0xc1686e00, 0xc1686eff, REGISTRY_RIPENCC }, // 193.104.110.0 - 193.104.110.255 { 0xc1686f00, 0xc16875ff, REGISTRY_RIPENCC }, // 193.104.111.0 - 193.104.117.255 { 0xc1687600, 0xc16876ff, REGISTRY_RIPENCC }, // 193.104.118.0 - 193.104.118.255 { 0xc1687700, 0xc16877ff, REGISTRY_RIPENCC }, // 193.104.119.0 - 193.104.119.255 { 0xc1687900, 0xc16881ff, REGISTRY_RIPENCC }, // 193.104.121.0 - 193.104.129.255 { 0xc1688200, 0xc16882ff, REGISTRY_RIPENCC }, // 193.104.130.0 - 193.104.130.255 { 0xc1688300, 0xc16886ff, REGISTRY_RIPENCC }, // 193.104.131.0 - 193.104.134.255 { 0xc1688700, 0xc16887ff, REGISTRY_RIPENCC }, // 193.104.135.0 - 193.104.135.255 { 0xc1688800, 0xc1688cff, REGISTRY_RIPENCC }, // 193.104.136.0 - 193.104.140.255 { 0xc1688d00, 0xc1688fff, REGISTRY_RIPENCC }, // 193.104.141.0 - 193.104.143.255 { 0xc1689000, 0xc16896ff, REGISTRY_RIPENCC }, // 193.104.144.0 - 193.104.150.255 { 0xc1689700, 0xc16897ff, REGISTRY_RIPENCC }, // 193.104.151.0 - 193.104.151.255 { 0xc1689800, 0xc16898ff, REGISTRY_RIPENCC }, // 193.104.152.0 - 193.104.152.255 { 0xc1689900, 0xc1689aff, REGISTRY_RIPENCC }, // 193.104.153.0 - 193.104.154.255 { 0xc1689b00, 0xc168a7ff, REGISTRY_RIPENCC }, // 193.104.155.0 - 193.104.167.255 { 0xc168a800, 0xc168a8ff, REGISTRY_RIPENCC }, // 193.104.168.0 - 193.104.168.255 { 0xc168a900, 0xc168afff, REGISTRY_RIPENCC }, // 193.104.169.0 - 193.104.175.255 { 0xc168b000, 0xc168b1ff, REGISTRY_RIPENCC }, // 193.104.176.0 - 193.104.177.255 { 0xc168b200, 0xc168b2ff, REGISTRY_RIPENCC }, // 193.104.178.0 - 193.104.178.255 { 0xc168b300, 0xc168b3ff, REGISTRY_RIPENCC }, // 193.104.179.0 - 193.104.179.255 { 0xc168b400, 0xc168b6ff, REGISTRY_RIPENCC }, // 193.104.180.0 - 193.104.182.255 { 0xc168b700, 0xc168b7ff, REGISTRY_RIPENCC }, // 193.104.183.0 - 193.104.183.255 { 0xc168b800, 0xc168bdff, REGISTRY_RIPENCC }, // 193.104.184.0 - 193.104.189.255 { 0xc168be00, 0xc168beff, REGISTRY_RIPENCC }, // 193.104.190.0 - 193.104.190.255 { 0xc168bf00, 0xc168c4ff, REGISTRY_RIPENCC }, // 193.104.191.0 - 193.104.196.255 { 0xc168c500, 0xc168c6ff, REGISTRY_RIPENCC }, // 193.104.197.0 - 193.104.198.255 { 0xc168c700, 0xc168d2ff, REGISTRY_RIPENCC }, // 193.104.199.0 - 193.104.210.255 { 0xc168d300, 0xc168d3ff, REGISTRY_RIPENCC }, // 193.104.211.0 - 193.104.211.255 { 0xc168d400, 0xc168ddff, REGISTRY_RIPENCC }, // 193.104.212.0 - 193.104.221.255 { 0xc168de00, 0xc168deff, REGISTRY_RIPENCC }, // 193.104.222.0 - 193.104.222.255 { 0xc168df00, 0xc168e4ff, REGISTRY_RIPENCC }, // 193.104.223.0 - 193.104.228.255 { 0xc168e500, 0xc168e5ff, REGISTRY_RIPENCC }, // 193.104.229.0 - 193.104.229.255 { 0xc168e600, 0xc168e8ff, REGISTRY_RIPENCC }, // 193.104.230.0 - 193.104.232.255 { 0xc168e900, 0xc168e9ff, REGISTRY_RIPENCC }, // 193.104.233.0 - 193.104.233.255 { 0xc168ea00, 0xc168faff, REGISTRY_RIPENCC }, // 193.104.234.0 - 193.104.250.255 { 0xc168fb00, 0xc168fcff, REGISTRY_RIPENCC }, // 193.104.251.0 - 193.104.252.255 { 0xc168fd00, 0xc16903ff, REGISTRY_RIPENCC }, // 193.104.253.0 - 193.105.3.255 { 0xc1690400, 0xc16904ff, REGISTRY_RIPENCC }, // 193.105.4.0 - 193.105.4.255 { 0xc1690500, 0xc1690dff, REGISTRY_RIPENCC }, // 193.105.5.0 - 193.105.13.255 { 0xc1690f00, 0xc1690fff, REGISTRY_RIPENCC }, // 193.105.15.0 - 193.105.15.255 { 0xc1691000, 0xc16914ff, REGISTRY_RIPENCC }, // 193.105.16.0 - 193.105.20.255 { 0xc1691500, 0xc16915ff, REGISTRY_ARIN }, // 193.105.21.0 - 193.105.21.255 { 0xc1691600, 0xc16918ff, REGISTRY_RIPENCC }, // 193.105.22.0 - 193.105.24.255 { 0xc1691900, 0xc16919ff, REGISTRY_RIPENCC }, // 193.105.25.0 - 193.105.25.255 { 0xc1691a00, 0xc1691bff, REGISTRY_RIPENCC }, // 193.105.26.0 - 193.105.27.255 { 0xc1691c00, 0xc1691fff, REGISTRY_RIPENCC }, // 193.105.28.0 - 193.105.31.255 { 0xc1692000, 0xc16939ff, REGISTRY_RIPENCC }, // 193.105.32.0 - 193.105.57.255 { 0xc1693a00, 0xc1693aff, REGISTRY_RIPENCC }, // 193.105.58.0 - 193.105.58.255 { 0xc1693b00, 0xc16941ff, REGISTRY_RIPENCC }, // 193.105.59.0 - 193.105.65.255 { 0xc1694200, 0xc16942ff, REGISTRY_RIPENCC }, // 193.105.66.0 - 193.105.66.255 { 0xc1694300, 0xc16946ff, REGISTRY_RIPENCC }, // 193.105.67.0 - 193.105.70.255 { 0xc1694700, 0xc16947ff, REGISTRY_RIPENCC }, // 193.105.71.0 - 193.105.71.255 { 0xc1694800, 0xc16950ff, REGISTRY_RIPENCC }, // 193.105.72.0 - 193.105.80.255 { 0xc1695100, 0xc16951ff, REGISTRY_RIPENCC }, // 193.105.81.0 - 193.105.81.255 { 0xc1695200, 0xc16952ff, REGISTRY_RIPENCC }, // 193.105.82.0 - 193.105.82.255 { 0xc1695300, 0xc16954ff, REGISTRY_RIPENCC }, // 193.105.83.0 - 193.105.84.255 { 0xc1695500, 0xc16957ff, REGISTRY_RIPENCC }, // 193.105.85.0 - 193.105.87.255 { 0xc1695800, 0xc16958ff, REGISTRY_RIPENCC }, // 193.105.88.0 - 193.105.88.255 { 0xc1695900, 0xc1695eff, REGISTRY_RIPENCC }, // 193.105.89.0 - 193.105.94.255 { 0xc1695f00, 0xc16960ff, REGISTRY_RIPENCC }, // 193.105.95.0 - 193.105.96.255 { 0xc1696100, 0xc16965ff, REGISTRY_RIPENCC }, // 193.105.97.0 - 193.105.101.255 { 0xc1696600, 0xc16966ff, REGISTRY_RIPENCC }, // 193.105.102.0 - 193.105.102.255 { 0xc1696700, 0xc16967ff, REGISTRY_RIPENCC }, // 193.105.103.0 - 193.105.103.255 { 0xc1696800, 0xc16968ff, REGISTRY_RIPENCC }, // 193.105.104.0 - 193.105.104.255 { 0xc1696900, 0xc16971ff, REGISTRY_RIPENCC }, // 193.105.105.0 - 193.105.113.255 { 0xc1697200, 0xc16972ff, REGISTRY_RIPENCC }, // 193.105.114.0 - 193.105.114.255 { 0xc1697300, 0xc16974ff, REGISTRY_RIPENCC }, // 193.105.115.0 - 193.105.116.255 { 0xc1697500, 0xc16975ff, REGISTRY_RIPENCC }, // 193.105.117.0 - 193.105.117.255 { 0xc1697600, 0xc16978ff, REGISTRY_RIPENCC }, // 193.105.118.0 - 193.105.120.255 { 0xc1697900, 0xc16979ff, REGISTRY_RIPENCC }, // 193.105.121.0 - 193.105.121.255 { 0xc1697a00, 0xc1697aff, REGISTRY_RIPENCC }, // 193.105.122.0 - 193.105.122.255 { 0xc1697b00, 0xc1697bff, REGISTRY_RIPENCC }, // 193.105.123.0 - 193.105.123.255 { 0xc1697c00, 0xc16980ff, REGISTRY_RIPENCC }, // 193.105.124.0 - 193.105.128.255 { 0xc1698100, 0xc16981ff, REGISTRY_RIPENCC }, // 193.105.129.0 - 193.105.129.255 { 0xc1698200, 0xc16982ff, REGISTRY_RIPENCC }, // 193.105.130.0 - 193.105.130.255 { 0xc1698300, 0xc16983ff, REGISTRY_RIPENCC }, // 193.105.131.0 - 193.105.131.255 { 0xc1698400, 0xc1698cff, REGISTRY_RIPENCC }, // 193.105.132.0 - 193.105.140.255 { 0xc1698d00, 0xc1698dff, REGISTRY_RIPENCC }, // 193.105.141.0 - 193.105.141.255 { 0xc1698e00, 0xc16996ff, REGISTRY_RIPENCC }, // 193.105.142.0 - 193.105.150.255 { 0xc1699700, 0xc16997ff, REGISTRY_RIPENCC }, // 193.105.151.0 - 193.105.151.255 { 0xc1699800, 0xc16999ff, REGISTRY_RIPENCC }, // 193.105.152.0 - 193.105.153.255 { 0xc1699a00, 0xc1699aff, REGISTRY_RIPENCC }, // 193.105.154.0 - 193.105.154.255 { 0xc1699b00, 0xc169a1ff, REGISTRY_RIPENCC }, // 193.105.155.0 - 193.105.161.255 { 0xc169a200, 0xc169a2ff, REGISTRY_RIPENCC }, // 193.105.162.0 - 193.105.162.255 { 0xc169a300, 0xc169a4ff, REGISTRY_RIPENCC }, // 193.105.163.0 - 193.105.164.255 { 0xc169a500, 0xc169a5ff, REGISTRY_RIPENCC }, // 193.105.165.0 - 193.105.165.255 { 0xc169a600, 0xc169a7ff, REGISTRY_RIPENCC }, // 193.105.166.0 - 193.105.167.255 { 0xc169a800, 0xc169a8ff, REGISTRY_RIPENCC }, // 193.105.168.0 - 193.105.168.255 { 0xc169a900, 0xc169abff, REGISTRY_RIPENCC }, // 193.105.169.0 - 193.105.171.255 { 0xc169ad00, 0xc169b0ff, REGISTRY_RIPENCC }, // 193.105.173.0 - 193.105.176.255 { 0xc169b100, 0xc169b1ff, REGISTRY_RIPENCC }, // 193.105.177.0 - 193.105.177.255 { 0xc169b200, 0xc169b2ff, REGISTRY_RIPENCC }, // 193.105.178.0 - 193.105.178.255 { 0xc169b300, 0xc169b3ff, REGISTRY_RIPENCC }, // 193.105.179.0 - 193.105.179.255 { 0xc169b400, 0xc169b6ff, REGISTRY_RIPENCC }, // 193.105.180.0 - 193.105.182.255 { 0xc169b700, 0xc169b8ff, REGISTRY_RIPENCC }, // 193.105.183.0 - 193.105.184.255 { 0xc169b900, 0xc169baff, REGISTRY_RIPENCC }, // 193.105.185.0 - 193.105.186.255 { 0xc169bb00, 0xc169bdff, REGISTRY_RIPENCC }, // 193.105.187.0 - 193.105.189.255 { 0xc169be00, 0xc169c7ff, REGISTRY_RIPENCC }, // 193.105.190.0 - 193.105.199.255 { 0xc169c800, 0xc169c8ff, REGISTRY_RIPENCC }, // 193.105.200.0 - 193.105.200.255 { 0xc169c900, 0xc169ceff, REGISTRY_RIPENCC }, // 193.105.201.0 - 193.105.206.255 { 0xc169cf00, 0xc169d0ff, REGISTRY_RIPENCC }, // 193.105.207.0 - 193.105.208.255 { 0xc169d100, 0xc169d4ff, REGISTRY_RIPENCC }, // 193.105.209.0 - 193.105.212.255 { 0xc169d500, 0xc169d5ff, REGISTRY_RIPENCC }, // 193.105.213.0 - 193.105.213.255 { 0xc169d600, 0xc169d8ff, REGISTRY_RIPENCC }, // 193.105.214.0 - 193.105.216.255 { 0xc169d900, 0xc169daff, REGISTRY_RIPENCC }, // 193.105.217.0 - 193.105.218.255 { 0xc169db00, 0xc169e3ff, REGISTRY_RIPENCC }, // 193.105.219.0 - 193.105.227.255 { 0xc169e400, 0xc169e4ff, REGISTRY_RIPENCC }, // 193.105.228.0 - 193.105.228.255 { 0xc169e500, 0xc169e9ff, REGISTRY_RIPENCC }, // 193.105.229.0 - 193.105.233.255 { 0xc169ea00, 0xc169eaff, REGISTRY_RIPENCC }, // 193.105.234.0 - 193.105.234.255 { 0xc169eb00, 0xc169efff, REGISTRY_RIPENCC }, // 193.105.235.0 - 193.105.239.255 { 0xc169f000, 0xc169f0ff, REGISTRY_RIPENCC }, // 193.105.240.0 - 193.105.240.255 { 0xc169f100, 0xc169f3ff, REGISTRY_RIPENCC }, // 193.105.241.0 - 193.105.243.255 { 0xc169f400, 0xc169f5ff, REGISTRY_RIPENCC }, // 193.105.244.0 - 193.105.245.255 { 0xc169f600, 0xc169f9ff, REGISTRY_RIPENCC }, // 193.105.246.0 - 193.105.249.255 { 0xc169fa00, 0xc169faff, REGISTRY_RIPENCC }, // 193.105.250.0 - 193.105.250.255 { 0xc169fb00, 0xc16a13ff, REGISTRY_RIPENCC }, // 193.105.251.0 - 193.106.19.255 { 0xc16a1400, 0xc16a17ff, REGISTRY_RIPENCC }, // 193.106.20.0 - 193.106.23.255 { 0xc16a1800, 0xc16a1fff, REGISTRY_RIPENCC }, // 193.106.24.0 - 193.106.31.255 { 0xc16a2000, 0xc16a23ff, REGISTRY_RIPENCC }, // 193.106.32.0 - 193.106.35.255 { 0xc16a2400, 0xc16a61ff, REGISTRY_RIPENCC }, // 193.106.36.0 - 193.106.97.255 { 0xc16a6200, 0xc16a63ff, REGISTRY_RIPENCC }, // 193.106.98.0 - 193.106.99.255 { 0xc16a6400, 0xc16a93ff, REGISTRY_RIPENCC }, // 193.106.100.0 - 193.106.147.255 { 0xc16a9400, 0xc16a97ff, REGISTRY_RIPENCC }, // 193.106.148.0 - 193.106.151.255 { 0xc16a9800, 0xc16aa3ff, REGISTRY_RIPENCC }, // 193.106.152.0 - 193.106.163.255 { 0xc16aa400, 0xc16aa7ff, REGISTRY_RIPENCC }, // 193.106.164.0 - 193.106.167.255 { 0xc16aa800, 0xc16abbff, REGISTRY_RIPENCC }, // 193.106.168.0 - 193.106.187.255 { 0xc16abc00, 0xc16abeff, REGISTRY_RIPENCC }, // 193.106.188.0 - 193.106.190.255 { 0xc16ac000, 0xc16ac3ff, REGISTRY_RIPENCC }, // 193.106.192.0 - 193.106.195.255 { 0xc16ac400, 0xc16ac7ff, REGISTRY_RIPENCC }, // 193.106.196.0 - 193.106.199.255 { 0xc16ac800, 0xc16ad1ff, REGISTRY_RIPENCC }, // 193.106.200.0 - 193.106.209.255 { 0xc16ad200, 0xc16ad2ff, REGISTRY_RIPENCC }, // 193.106.210.0 - 193.106.210.255 { 0xc16ad300, 0xc16aeeff, REGISTRY_RIPENCC }, // 193.106.211.0 - 193.106.238.255 { 0xc16aef00, 0xc16aefff, REGISTRY_RIPENCC }, // 193.106.239.0 - 193.106.239.255 { 0xc16af000, 0xc16b0bff, REGISTRY_RIPENCC }, // 193.106.240.0 - 193.107.11.255 { 0xc16b0c00, 0xc16b0fff, REGISTRY_RIPENCC }, // 193.107.12.0 - 193.107.15.255 { 0xc16b1000, 0xc16b13ff, REGISTRY_RIPENCC }, // 193.107.16.0 - 193.107.19.255 { 0xc16b1400, 0xc16b17ff, REGISTRY_RIPENCC }, // 193.107.20.0 - 193.107.23.255 { 0xc16b1800, 0xc16b2bff, REGISTRY_RIPENCC }, // 193.107.24.0 - 193.107.43.255 { 0xc16b3000, 0xc16b33ff, REGISTRY_RIPENCC }, // 193.107.48.0 - 193.107.51.255 { 0xc16b3400, 0xc16b3fff, REGISTRY_RIPENCC }, // 193.107.52.0 - 193.107.63.255 { 0xc16b4000, 0xc16b43ff, REGISTRY_RIPENCC }, // 193.107.64.0 - 193.107.67.255 { 0xc16b4400, 0xc16b4bff, REGISTRY_RIPENCC }, // 193.107.68.0 - 193.107.75.255 { 0xc16b4c00, 0xc16b4fff, REGISTRY_RIPENCC }, // 193.107.76.0 - 193.107.79.255 { 0xc16b5000, 0xc16b53ff, REGISTRY_RIPENCC }, // 193.107.80.0 - 193.107.83.255 { 0xc16b5400, 0xc16b57ff, REGISTRY_RIPENCC }, // 193.107.84.0 - 193.107.87.255 { 0xc16b5800, 0xc16bb7ff, REGISTRY_RIPENCC }, // 193.107.88.0 - 193.107.183.255 { 0xc16bb800, 0xc16bbbff, REGISTRY_RIPENCC }, // 193.107.184.0 - 193.107.187.255 { 0xc16bbc00, 0xc16bc3ff, REGISTRY_RIPENCC }, // 193.107.188.0 - 193.107.195.255 { 0xc16bc400, 0xc16bc7ff, REGISTRY_RIPENCC }, // 193.107.196.0 - 193.107.199.255 { 0xc16bc800, 0xc16bcfff, REGISTRY_RIPENCC }, // 193.107.200.0 - 193.107.207.255 { 0xc16bd000, 0xc16bd3ff, REGISTRY_RIPENCC }, // 193.107.208.0 - 193.107.211.255 { 0xc16bd400, 0xc16bd7ff, REGISTRY_RIPENCC }, // 193.107.212.0 - 193.107.215.255 { 0xc16bd800, 0xc16bdbff, REGISTRY_RIPENCC }, // 193.107.216.0 - 193.107.219.255 { 0xc16bdc00, 0xc16c13ff, REGISTRY_RIPENCC }, // 193.107.220.0 - 193.108.19.255 { 0xc16c1400, 0xc16c14ff, REGISTRY_RIPENCC }, // 193.108.20.0 - 193.108.20.255 { 0xc16c1500, 0xc16c16ff, REGISTRY_RIPENCC }, // 193.108.21.0 - 193.108.22.255 { 0xc16c1700, 0xc16c17ff, REGISTRY_AFRINIC }, // 193.108.23.0 - 193.108.23.255 { 0xc16c1800, 0xc16c18ff, REGISTRY_RIPENCC }, // 193.108.24.0 - 193.108.24.255 { 0xc16c1900, 0xc16c1aff, REGISTRY_RIPENCC }, // 193.108.25.0 - 193.108.26.255 { 0xc16c1b00, 0xc16c1bff, REGISTRY_RIPENCC }, // 193.108.27.0 - 193.108.27.255 { 0xc16c1c00, 0xc16c1cff, REGISTRY_AFRINIC }, // 193.108.28.0 - 193.108.28.255 { 0xc16c1d00, 0xc16c29ff, REGISTRY_RIPENCC }, // 193.108.29.0 - 193.108.41.255 { 0xc16c2a00, 0xc16c2bff, REGISTRY_RIPENCC }, // 193.108.42.0 - 193.108.43.255 { 0xc16c2c00, 0xc16c2dff, REGISTRY_RIPENCC }, // 193.108.44.0 - 193.108.45.255 { 0xc16c2e00, 0xc16c2fff, REGISTRY_RIPENCC }, // 193.108.46.0 - 193.108.47.255 { 0xc16c3000, 0xc16c37ff, REGISTRY_RIPENCC }, // 193.108.48.0 - 193.108.55.255 { 0xc16c3800, 0xc16c47ff, REGISTRY_RIPENCC }, // 193.108.56.0 - 193.108.71.255 { 0xc16c4800, 0xc16c5fff, REGISTRY_RIPENCC }, // 193.108.72.0 - 193.108.95.255 { 0xc16c6000, 0xc16c61ff, REGISTRY_RIPENCC }, // 193.108.96.0 - 193.108.97.255 { 0xc16c6200, 0xc16c65ff, REGISTRY_RIPENCC }, // 193.108.98.0 - 193.108.101.255 { 0xc16c6600, 0xc16c69ff, REGISTRY_RIPENCC }, // 193.108.102.0 - 193.108.105.255 { 0xc16c6a00, 0xc16c6fff, REGISTRY_RIPENCC }, // 193.108.106.0 - 193.108.111.255 { 0xc16c7000, 0xc16c73ff, REGISTRY_RIPENCC }, // 193.108.112.0 - 193.108.115.255 { 0xc16c7400, 0xc16c81ff, REGISTRY_RIPENCC }, // 193.108.116.0 - 193.108.129.255 { 0xc16c8200, 0xc16c83ff, REGISTRY_RIPENCC }, // 193.108.130.0 - 193.108.131.255 { 0xc16c8400, 0xc16c8fff, REGISTRY_RIPENCC }, // 193.108.132.0 - 193.108.143.255 { 0xc16c9000, 0xc16c93ff, REGISTRY_RIPENCC }, // 193.108.144.0 - 193.108.147.255 { 0xc16c9400, 0xc16cb1ff, REGISTRY_RIPENCC }, // 193.108.148.0 - 193.108.177.255 { 0xc16cb200, 0xc16cb2ff, REGISTRY_RIPENCC }, // 193.108.178.0 - 193.108.178.255 { 0xc16cb300, 0xc16cb6ff, REGISTRY_RIPENCC }, // 193.108.179.0 - 193.108.182.255 { 0xc16cb700, 0xc16cb7ff, REGISTRY_RIPENCC }, // 193.108.183.0 - 193.108.183.255 { 0xc16cb800, 0xc16cb8ff, REGISTRY_RIPENCC }, // 193.108.184.0 - 193.108.184.255 { 0xc16cb900, 0xc16cb9ff, REGISTRY_RIPENCC }, // 193.108.185.0 - 193.108.185.255 { 0xc16cba00, 0xc16cc0ff, REGISTRY_RIPENCC }, // 193.108.186.0 - 193.108.192.255 { 0xc16cc100, 0xc16cc1ff, REGISTRY_RIPENCC }, // 193.108.193.0 - 193.108.193.255 { 0xc16cc200, 0xc16cc5ff, REGISTRY_RIPENCC }, // 193.108.194.0 - 193.108.197.255 { 0xc16cc600, 0xc16cc6ff, REGISTRY_RIPENCC }, // 193.108.198.0 - 193.108.198.255 { 0xc16cc700, 0xc16cc7ff, REGISTRY_RIPENCC }, // 193.108.199.0 - 193.108.199.255 { 0xc16cc800, 0xc16cc8ff, REGISTRY_RIPENCC }, // 193.108.200.0 - 193.108.200.255 { 0xc16cc900, 0xc16ccdff, REGISTRY_RIPENCC }, // 193.108.201.0 - 193.108.205.255 { 0xc16cce00, 0xc16cd0ff, REGISTRY_RIPENCC }, // 193.108.206.0 - 193.108.208.255 { 0xc16cd100, 0xc16cd2ff, REGISTRY_RIPENCC }, // 193.108.209.0 - 193.108.210.255 { 0xc16cd300, 0xc16cd3ff, REGISTRY_RIPENCC }, // 193.108.211.0 - 193.108.211.255 { 0xc16cd400, 0xc16cd5ff, REGISTRY_RIPENCC }, // 193.108.212.0 - 193.108.213.255 { 0xc16cd600, 0xc16cd6ff, REGISTRY_AFRINIC }, // 193.108.214.0 - 193.108.214.255 { 0xc16cd700, 0xc16cd7ff, REGISTRY_RIPENCC }, // 193.108.215.0 - 193.108.215.255 { 0xc16cd800, 0xc16cdaff, REGISTRY_RIPENCC }, // 193.108.216.0 - 193.108.218.255 { 0xc16cdb00, 0xc16cdbff, REGISTRY_RIPENCC }, // 193.108.219.0 - 193.108.219.255 { 0xc16cdc00, 0xc16ce5ff, REGISTRY_RIPENCC }, // 193.108.220.0 - 193.108.229.255 { 0xc16ce600, 0xc16ce7ff, REGISTRY_RIPENCC }, // 193.108.230.0 - 193.108.231.255 { 0xc16ce800, 0xc16ce9ff, REGISTRY_RIPENCC }, // 193.108.232.0 - 193.108.233.255 { 0xc16cea00, 0xc16cebff, REGISTRY_RIPENCC }, // 193.108.234.0 - 193.108.235.255 { 0xc16cec00, 0xc16cfbff, REGISTRY_RIPENCC }, // 193.108.236.0 - 193.108.251.255 { 0xc16cfc00, 0xc16cffff, REGISTRY_AFRINIC }, // 193.108.252.0 - 193.108.255.255 { 0xc16d0000, 0xc16d0bff, REGISTRY_RIPENCC }, // 193.109.0.0 - 193.109.11.255 { 0xc16d0c00, 0xc16d0fff, REGISTRY_RIPENCC }, // 193.109.12.0 - 193.109.15.255 { 0xc16d1000, 0xc16d1fff, REGISTRY_RIPENCC }, // 193.109.16.0 - 193.109.31.255 { 0xc16d2000, 0xc16d27ff, REGISTRY_RIPENCC }, // 193.109.32.0 - 193.109.39.255 { 0xc16d2800, 0xc16d37ff, REGISTRY_RIPENCC }, // 193.109.40.0 - 193.109.55.255 { 0xc16d3800, 0xc16d39ff, REGISTRY_RIPENCC }, // 193.109.56.0 - 193.109.57.255 { 0xc16d3a00, 0xc16d3dff, REGISTRY_RIPENCC }, // 193.109.58.0 - 193.109.61.255 { 0xc16d4000, 0xc16d41ff, REGISTRY_RIPENCC }, // 193.109.64.0 - 193.109.65.255 { 0xc16d4200, 0xc16d43ff, REGISTRY_AFRINIC }, // 193.109.66.0 - 193.109.67.255 { 0xc16d4400, 0xc16d4dff, REGISTRY_RIPENCC }, // 193.109.68.0 - 193.109.77.255 { 0xc16d4e00, 0xc16d4fff, REGISTRY_RIPENCC }, // 193.109.78.0 - 193.109.79.255 { 0xc16d5000, 0xc16d50ff, REGISTRY_RIPENCC }, // 193.109.80.0 - 193.109.80.255 { 0xc16d5100, 0xc16d52ff, REGISTRY_RIPENCC }, // 193.109.81.0 - 193.109.82.255 { 0xc16d5300, 0xc16d53ff, REGISTRY_RIPENCC }, // 193.109.83.0 - 193.109.83.255 { 0xc16d5400, 0xc16d55ff, REGISTRY_RIPENCC }, // 193.109.84.0 - 193.109.85.255 { 0xc16d5600, 0xc16d5bff, REGISTRY_RIPENCC }, // 193.109.86.0 - 193.109.91.255 { 0xc16d5c00, 0xc16d5cff, REGISTRY_RIPENCC }, // 193.109.92.0 - 193.109.92.255 { 0xc16d5d00, 0xc16d5dff, REGISTRY_RIPENCC }, // 193.109.93.0 - 193.109.93.255 { 0xc16d5e00, 0xc16d5eff, REGISTRY_RIPENCC }, // 193.109.94.0 - 193.109.94.255 { 0xc16d5f00, 0xc16d63ff, REGISTRY_RIPENCC }, // 193.109.95.0 - 193.109.99.255 { 0xc16d6400, 0xc16d67ff, REGISTRY_RIPENCC }, // 193.109.100.0 - 193.109.103.255 { 0xc16d6800, 0xc16d6bff, REGISTRY_RIPENCC }, // 193.109.104.0 - 193.109.107.255 { 0xc16d6c00, 0xc16d6fff, REGISTRY_RIPENCC }, // 193.109.108.0 - 193.109.111.255 { 0xc16d7000, 0xc16d75ff, REGISTRY_RIPENCC }, // 193.109.112.0 - 193.109.117.255 { 0xc16d7600, 0xc16d76ff, REGISTRY_RIPENCC }, // 193.109.118.0 - 193.109.118.255 { 0xc16d7700, 0xc16d77ff, REGISTRY_RIPENCC }, // 193.109.119.0 - 193.109.119.255 { 0xc16d7800, 0xc16d78ff, REGISTRY_RIPENCC }, // 193.109.120.0 - 193.109.120.255 { 0xc16d7900, 0xc16d87ff, REGISTRY_RIPENCC }, // 193.109.121.0 - 193.109.135.255 { 0xc16d8800, 0xc16d89ff, REGISTRY_RIPENCC }, // 193.109.136.0 - 193.109.137.255 { 0xc16d8a00, 0xc16d9fff, REGISTRY_RIPENCC }, // 193.109.138.0 - 193.109.159.255 { 0xc16da000, 0xc16da3ff, REGISTRY_RIPENCC }, // 193.109.160.0 - 193.109.163.255 { 0xc16da400, 0xc16da7ff, REGISTRY_RIPENCC }, // 193.109.164.0 - 193.109.167.255 { 0xc16da800, 0xc16dabff, REGISTRY_RIPENCC }, // 193.109.168.0 - 193.109.171.255 { 0xc16dac00, 0xc16dbfff, REGISTRY_RIPENCC }, // 193.109.172.0 - 193.109.191.255 { 0xc16dc000, 0xc16dc7ff, REGISTRY_RIPENCC }, // 193.109.192.0 - 193.109.199.255 { 0xc16dc800, 0xc16dd0ff, REGISTRY_RIPENCC }, // 193.109.200.0 - 193.109.208.255 { 0xc16dd100, 0xc16dd1ff, REGISTRY_RIPENCC }, // 193.109.209.0 - 193.109.209.255 { 0xc16dd200, 0xc16dd4ff, REGISTRY_RIPENCC }, // 193.109.210.0 - 193.109.212.255 { 0xc16dd500, 0xc16dd5ff, REGISTRY_RIPENCC }, // 193.109.213.0 - 193.109.213.255 { 0xc16dd600, 0xc16dd8ff, REGISTRY_RIPENCC }, // 193.109.214.0 - 193.109.216.255 { 0xc16dd900, 0xc16dd9ff, REGISTRY_RIPENCC }, // 193.109.217.0 - 193.109.217.255 { 0xc16dda00, 0xc16ddaff, REGISTRY_RIPENCC }, // 193.109.218.0 - 193.109.218.255 { 0xc16ddc00, 0xc16ddcff, REGISTRY_RIPENCC }, // 193.109.220.0 - 193.109.220.255 { 0xc16ddd00, 0xc16dddff, REGISTRY_RIPENCC }, // 193.109.221.0 - 193.109.221.255 { 0xc16dde00, 0xc16ddfff, REGISTRY_RIPENCC }, // 193.109.222.0 - 193.109.223.255 { 0xc16de000, 0xc16de0ff, REGISTRY_RIPENCC }, // 193.109.224.0 - 193.109.224.255 { 0xc16de100, 0xc16de1ff, REGISTRY_RIPENCC }, // 193.109.225.0 - 193.109.225.255 { 0xc16de200, 0xc16de2ff, REGISTRY_RIPENCC }, // 193.109.226.0 - 193.109.226.255 { 0xc16de300, 0xc16de5ff, REGISTRY_RIPENCC }, // 193.109.227.0 - 193.109.229.255 { 0xc16de600, 0xc16de6ff, REGISTRY_RIPENCC }, // 193.109.230.0 - 193.109.230.255 { 0xc16de700, 0xc16dffff, REGISTRY_RIPENCC }, // 193.109.231.0 - 193.109.255.255 { 0xc16e0000, 0xc16e05ff, REGISTRY_RIPENCC }, // 193.110.0.0 - 193.110.5.255 { 0xc16e0600, 0xc16e1bff, REGISTRY_RIPENCC }, // 193.110.6.0 - 193.110.27.255 { 0xc16e1c00, 0xc16e1fff, REGISTRY_RIPENCC }, // 193.110.28.0 - 193.110.31.255 { 0xc16e2000, 0xc16e27ff, REGISTRY_RIPENCC }, // 193.110.32.0 - 193.110.39.255 { 0xc16e2800, 0xc16e2fff, REGISTRY_RIPENCC }, // 193.110.40.0 - 193.110.47.255 { 0xc16e3000, 0xc16e47ff, REGISTRY_RIPENCC }, // 193.110.48.0 - 193.110.71.255 { 0xc16e4800, 0xc16e4bff, REGISTRY_RIPENCC }, // 193.110.72.0 - 193.110.75.255 { 0xc16e4c00, 0xc16e50ff, REGISTRY_RIPENCC }, // 193.110.76.0 - 193.110.80.255 { 0xc16e5100, 0xc16e53ff, REGISTRY_RIPENCC }, // 193.110.81.0 - 193.110.83.255 { 0xc16e5400, 0xc16e5cff, REGISTRY_RIPENCC }, // 193.110.84.0 - 193.110.92.255 { 0xc16e5d00, 0xc16e5dff, REGISTRY_RIPENCC }, // 193.110.93.0 - 193.110.93.255 { 0xc16e5e00, 0xc16e67ff, REGISTRY_RIPENCC }, // 193.110.94.0 - 193.110.103.255 { 0xc16e6800, 0xc16e69ff, REGISTRY_AFRINIC }, // 193.110.104.0 - 193.110.105.255 { 0xc16e6a00, 0xc16e82ff, REGISTRY_RIPENCC }, // 193.110.106.0 - 193.110.130.255 { 0xc16e8300, 0xc16e83ff, REGISTRY_RIPENCC }, // 193.110.131.0 - 193.110.131.255 { 0xc16e8400, 0xc16e85ff, REGISTRY_RIPENCC }, // 193.110.132.0 - 193.110.133.255 { 0xc16e8600, 0xc16e88ff, REGISTRY_RIPENCC }, // 193.110.134.0 - 193.110.136.255 { 0xc16e8900, 0xc16e8bff, REGISTRY_RIPENCC }, // 193.110.137.0 - 193.110.139.255 { 0xc16e8c00, 0xc16e8dff, REGISTRY_RIPENCC }, // 193.110.140.0 - 193.110.141.255 { 0xc16e8e00, 0xc16e8eff, REGISTRY_RIPENCC }, // 193.110.142.0 - 193.110.142.255 { 0xc16e8f00, 0xc16e8fff, REGISTRY_RIPENCC }, // 193.110.143.0 - 193.110.143.255 { 0xc16e9000, 0xc16e93ff, REGISTRY_RIPENCC }, // 193.110.144.0 - 193.110.147.255 { 0xc16e9400, 0xc16e94ff, REGISTRY_RIPENCC }, // 193.110.148.0 - 193.110.148.255 { 0xc16e9500, 0xc16e9dff, REGISTRY_RIPENCC }, // 193.110.149.0 - 193.110.157.255 { 0xc16e9e00, 0xc16e9eff, REGISTRY_RIPENCC }, // 193.110.158.0 - 193.110.158.255 { 0xc16e9f00, 0xc16e9fff, REGISTRY_RIPENCC }, // 193.110.159.0 - 193.110.159.255 { 0xc16ea000, 0xc16ea1ff, REGISTRY_RIPENCC }, // 193.110.160.0 - 193.110.161.255 { 0xc16ea200, 0xc16ebbff, REGISTRY_RIPENCC }, // 193.110.162.0 - 193.110.187.255 { 0xc16ebc00, 0xc16ebdff, REGISTRY_RIPENCC }, // 193.110.188.0 - 193.110.189.255 { 0xc16ebe00, 0xc16ec7ff, REGISTRY_RIPENCC }, // 193.110.190.0 - 193.110.199.255 { 0xc16ec800, 0xc16ecbff, REGISTRY_RIPENCC }, // 193.110.200.0 - 193.110.203.255 { 0xc16ecc00, 0xc16eebff, REGISTRY_RIPENCC }, // 193.110.204.0 - 193.110.235.255 { 0xc16eec00, 0xc16eefff, REGISTRY_RIPENCC }, // 193.110.236.0 - 193.110.239.255 { 0xc16ef000, 0xc16effff, REGISTRY_RIPENCC }, // 193.110.240.0 - 193.110.255.255 { 0xc16f0000, 0xc16f01ff, REGISTRY_RIPENCC }, // 193.111.0.0 - 193.111.1.255 { 0xc16f0200, 0xc16f03ff, REGISTRY_RIPENCC }, // 193.111.2.0 - 193.111.3.255 { 0xc16f0400, 0xc16f05ff, REGISTRY_RIPENCC }, // 193.111.4.0 - 193.111.5.255 { 0xc16f0600, 0xc16f11ff, REGISTRY_RIPENCC }, // 193.111.6.0 - 193.111.17.255 { 0xc16f1200, 0xc16f13ff, REGISTRY_RIPENCC }, // 193.111.18.0 - 193.111.19.255 { 0xc16f1400, 0xc16f15ff, REGISTRY_RIPENCC }, // 193.111.20.0 - 193.111.21.255 { 0xc16f1600, 0xc16f17ff, REGISTRY_RIPENCC }, // 193.111.22.0 - 193.111.23.255 { 0xc16f1800, 0xc16f1dff, REGISTRY_RIPENCC }, // 193.111.24.0 - 193.111.29.255 { 0xc16f1e00, 0xc16f20ff, REGISTRY_RIPENCC }, // 193.111.30.0 - 193.111.32.255 { 0xc16f2100, 0xc16f23ff, REGISTRY_RIPENCC }, // 193.111.33.0 - 193.111.35.255 { 0xc16f2400, 0xc16f26ff, REGISTRY_RIPENCC }, // 193.111.36.0 - 193.111.38.255 { 0xc16f2700, 0xc16f27ff, REGISTRY_RIPENCC }, // 193.111.39.0 - 193.111.39.255 { 0xc16f2800, 0xc16f28ff, REGISTRY_RIPENCC }, // 193.111.40.0 - 193.111.40.255 { 0xc16f2900, 0xc16f2cff, REGISTRY_RIPENCC }, // 193.111.41.0 - 193.111.44.255 { 0xc16f2d00, 0xc16f2dff, REGISTRY_RIPENCC }, // 193.111.45.0 - 193.111.45.255 { 0xc16f2e00, 0xc16f2eff, REGISTRY_RIPENCC }, // 193.111.46.0 - 193.111.46.255 { 0xc16f2f00, 0xc16f37ff, REGISTRY_RIPENCC }, // 193.111.47.0 - 193.111.55.255 { 0xc16f3800, 0xc16f47ff, REGISTRY_RIPENCC }, // 193.111.56.0 - 193.111.71.255 { 0xc16f4800, 0xc16f49ff, REGISTRY_RIPENCC }, // 193.111.72.0 - 193.111.73.255 { 0xc16f4a00, 0xc16f4bff, REGISTRY_RIPENCC }, // 193.111.74.0 - 193.111.75.255 { 0xc16f4c00, 0xc16f50ff, REGISTRY_RIPENCC }, // 193.111.76.0 - 193.111.80.255 { 0xc16f5100, 0xc16f55ff, REGISTRY_RIPENCC }, // 193.111.81.0 - 193.111.85.255 { 0xc16f5600, 0xc16f56ff, REGISTRY_RIPENCC }, // 193.111.86.0 - 193.111.86.255 { 0xc16f5700, 0xc16f57ff, REGISTRY_RIPENCC }, // 193.111.87.0 - 193.111.87.255 { 0xc16f5900, 0xc16f59ff, REGISTRY_RIPENCC }, // 193.111.89.0 - 193.111.89.255 { 0xc16f5a00, 0xc16f5bff, REGISTRY_RIPENCC }, // 193.111.90.0 - 193.111.91.255 { 0xc16f5c00, 0xc16f73ff, REGISTRY_RIPENCC }, // 193.111.92.0 - 193.111.115.255 { 0xc16f7400, 0xc16f75ff, REGISTRY_RIPENCC }, // 193.111.116.0 - 193.111.117.255 { 0xc16f7600, 0xc16f7bff, REGISTRY_RIPENCC }, // 193.111.118.0 - 193.111.123.255 { 0xc16f7c00, 0xc16f7dff, REGISTRY_RIPENCC }, // 193.111.124.0 - 193.111.125.255 { 0xc16f7e00, 0xc16f87ff, REGISTRY_RIPENCC }, // 193.111.126.0 - 193.111.135.255 { 0xc16f9000, 0xc16f93ff, REGISTRY_RIPENCC }, // 193.111.144.0 - 193.111.147.255 { 0xc16f9400, 0xc16f9bff, REGISTRY_RIPENCC }, // 193.111.148.0 - 193.111.155.255 { 0xc16f9c00, 0xc16f9fff, REGISTRY_RIPENCC }, // 193.111.156.0 - 193.111.159.255 { 0xc16fa000, 0xc16fa0ff, REGISTRY_RIPENCC }, // 193.111.160.0 - 193.111.160.255 { 0xc16fa100, 0xc16fa7ff, REGISTRY_RIPENCC }, // 193.111.161.0 - 193.111.167.255 { 0xc16fa800, 0xc16fa8ff, REGISTRY_RIPENCC }, // 193.111.168.0 - 193.111.168.255 { 0xc16fa900, 0xc16fa9ff, REGISTRY_RIPENCC }, // 193.111.169.0 - 193.111.169.255 { 0xc16faa00, 0xc16fabff, REGISTRY_RIPENCC }, // 193.111.170.0 - 193.111.171.255 { 0xc16fad00, 0xc16fadff, REGISTRY_RIPENCC }, // 193.111.173.0 - 193.111.173.255 { 0xc16fae00, 0xc16fafff, REGISTRY_RIPENCC }, // 193.111.174.0 - 193.111.175.255 { 0xc16fb000, 0xc16fb3ff, REGISTRY_RIPENCC }, // 193.111.176.0 - 193.111.179.255 { 0xc16fb400, 0xc16fbbff, REGISTRY_RIPENCC }, // 193.111.180.0 - 193.111.187.255 { 0xc16fbc00, 0xc16fc3ff, REGISTRY_RIPENCC }, // 193.111.188.0 - 193.111.195.255 { 0xc16fc400, 0xc16fc5ff, REGISTRY_RIPENCC }, // 193.111.196.0 - 193.111.197.255 { 0xc16fc600, 0xc16fcfff, REGISTRY_RIPENCC }, // 193.111.198.0 - 193.111.207.255 { 0xc16fd000, 0xc16fd3ff, REGISTRY_RIPENCC }, // 193.111.208.0 - 193.111.211.255 { 0xc16fd400, 0xc16fe1ff, REGISTRY_RIPENCC }, // 193.111.212.0 - 193.111.225.255 { 0xc16fe200, 0xc16fe2ff, REGISTRY_RIPENCC }, // 193.111.226.0 - 193.111.226.255 { 0xc16fe300, 0xc16fe4ff, REGISTRY_RIPENCC }, // 193.111.227.0 - 193.111.228.255 { 0xc16fe500, 0xc16fe5ff, REGISTRY_RIPENCC }, // 193.111.229.0 - 193.111.229.255 { 0xc16fe600, 0xc16fe8ff, REGISTRY_RIPENCC }, // 193.111.230.0 - 193.111.232.255 { 0xc16fe900, 0xc16fecff, REGISTRY_RIPENCC }, // 193.111.233.0 - 193.111.236.255 { 0xc16fed00, 0xc16ff3ff, REGISTRY_RIPENCC }, // 193.111.237.0 - 193.111.243.255 { 0xc16ff400, 0xc16ffbff, REGISTRY_RIPENCC }, // 193.111.244.0 - 193.111.251.255 { 0xc16ffc00, 0xc16fffff, REGISTRY_RIPENCC }, // 193.111.252.0 - 193.111.255.255 { 0xc1700000, 0xc170ffff, REGISTRY_APNIC }, // 193.112.0.0 - 193.112.255.255 { 0xc1710000, 0xc171ffff, REGISTRY_RIPENCC }, // 193.113.0.0 - 193.113.255.255 { 0xc1720000, 0xc1729fff, REGISTRY_APNIC }, // 193.114.0.0 - 193.114.159.255 { 0xc172a000, 0xc172bfff, REGISTRY_RIPENCC }, // 193.114.160.0 - 193.114.191.255 { 0xc172c000, 0xc173bfff, REGISTRY_APNIC }, // 193.114.192.0 - 193.115.191.255 { 0xc173c000, 0xc173ffff, REGISTRY_RIPENCC }, // 193.115.192.0 - 193.115.255.255 { 0xc1740000, 0xc1747fff, REGISTRY_APNIC }, // 193.116.0.0 - 193.116.127.255 { 0xc1748000, 0xc174bfff, REGISTRY_RIPENCC }, // 193.116.128.0 - 193.116.191.255 { 0xc174c000, 0xc1751fff, REGISTRY_APNIC }, // 193.116.192.0 - 193.117.31.255 { 0xc1752000, 0xc1753fff, REGISTRY_RIPENCC }, // 193.117.32.0 - 193.117.63.255 { 0xc1754000, 0xc1757fff, REGISTRY_APNIC }, // 193.117.64.0 - 193.117.127.255 { 0xc1758000, 0xc175ffff, REGISTRY_RIPENCC }, // 193.117.128.0 - 193.117.255.255 { 0xc1760000, 0xc1761fff, REGISTRY_APNIC }, // 193.118.0.0 - 193.118.31.255 { 0xc1762000, 0xc1763fff, REGISTRY_RIPENCC }, // 193.118.32.0 - 193.118.63.255 { 0xc1764000, 0xc1765fff, REGISTRY_APNIC }, // 193.118.64.0 - 193.118.95.255 { 0xc1766000, 0xc176ffff, REGISTRY_RIPENCC }, // 193.118.96.0 - 193.118.255.255 { 0xc1770000, 0xc177ffff, REGISTRY_APNIC }, // 193.119.0.0 - 193.119.255.255 { 0xc1780000, 0xc179ffff, REGISTRY_RIPENCC }, // 193.120.0.0 - 193.121.255.255 { 0xc17a0000, 0xc17bffff, REGISTRY_ARIN }, // 193.122.0.0 - 193.123.255.255 { 0xc17c0000, 0xc1801eff, REGISTRY_RIPENCC }, // 193.124.0.0 - 193.128.30.255 { 0xc1801f00, 0xc1801fff, REGISTRY_RIPENCC }, // 193.128.31.0 - 193.128.31.255 { 0xc1802000, 0xc1804bff, REGISTRY_RIPENCC }, // 193.128.32.0 - 193.128.75.255 { 0xc1804c00, 0xc1804cff, REGISTRY_RIPENCC }, // 193.128.76.0 - 193.128.76.255 { 0xc1804d00, 0xc180bfff, REGISTRY_RIPENCC }, // 193.128.77.0 - 193.128.191.255 { 0xc180c000, 0xc180cfff, REGISTRY_RIPENCC }, // 193.128.192.0 - 193.128.207.255 { 0xc180d000, 0xc18227ff, REGISTRY_RIPENCC }, // 193.128.208.0 - 193.130.39.255 { 0xc1822800, 0xc18229ff, REGISTRY_RIPENCC }, // 193.130.40.0 - 193.130.41.255 { 0xc1822a00, 0xc182bfff, REGISTRY_RIPENCC }, // 193.130.42.0 - 193.130.191.255 { 0xc182c000, 0xc182dfff, REGISTRY_RIPENCC }, // 193.130.192.0 - 193.130.223.255 { 0xc182e000, 0xc18371ff, REGISTRY_RIPENCC }, // 193.130.224.0 - 193.131.113.255 { 0xc1837200, 0xc18373ff, REGISTRY_RIPENCC }, // 193.131.114.0 - 193.131.115.255 { 0xc1837400, 0xc18473ff, REGISTRY_RIPENCC }, // 193.131.116.0 - 193.132.115.255 { 0xc1847400, 0xc18477ff, REGISTRY_RIPENCC }, // 193.132.116.0 - 193.132.119.255 { 0xc1847800, 0xc1851bff, REGISTRY_RIPENCC }, // 193.132.120.0 - 193.133.27.255 { 0xc1851c00, 0xc1851dff, REGISTRY_RIPENCC }, // 193.133.28.0 - 193.133.29.255 { 0xc1851e00, 0xc185ffff, REGISTRY_RIPENCC }, // 193.133.30.0 - 193.133.255.255 { 0xc1860000, 0xc18603ff, REGISTRY_RIPENCC }, // 193.134.0.0 - 193.134.3.255 { 0xc1860400, 0xc18607ff, REGISTRY_RIPENCC }, // 193.134.4.0 - 193.134.7.255 { 0xc1860800, 0xc18623ff, REGISTRY_RIPENCC }, // 193.134.8.0 - 193.134.35.255 { 0xc1862400, 0xc1863fff, REGISTRY_RIPENCC }, // 193.134.36.0 - 193.134.63.255 { 0xc1864000, 0xc18657ff, REGISTRY_RIPENCC }, // 193.134.64.0 - 193.134.87.255 { 0xc1865800, 0xc1865bff, REGISTRY_RIPENCC }, // 193.134.88.0 - 193.134.91.255 { 0xc1865c00, 0xc1865cff, REGISTRY_RIPENCC }, // 193.134.92.0 - 193.134.92.255 { 0xc1865d00, 0xc1865fff, REGISTRY_RIPENCC }, // 193.134.93.0 - 193.134.95.255 { 0xc1866000, 0xc18663ff, REGISTRY_RIPENCC }, // 193.134.96.0 - 193.134.99.255 { 0xc1866400, 0xc18665ff, REGISTRY_RIPENCC }, // 193.134.100.0 - 193.134.101.255 { 0xc1866600, 0xc186cfff, REGISTRY_RIPENCC }, // 193.134.102.0 - 193.134.207.255 { 0xc186d000, 0xc186d7ff, REGISTRY_RIPENCC }, // 193.134.208.0 - 193.134.215.255 { 0xc186d800, 0xc186f7ff, REGISTRY_RIPENCC }, // 193.134.216.0 - 193.134.247.255 { 0xc186f800, 0xc186faff, REGISTRY_RIPENCC }, // 193.134.248.0 - 193.134.250.255 { 0xc186fb00, 0xc186fcff, REGISTRY_RIPENCC }, // 193.134.251.0 - 193.134.252.255 { 0xc186fd00, 0xc186fdff, REGISTRY_RIPENCC }, // 193.134.253.0 - 193.134.253.255 { 0xc186fe00, 0xc186feff, REGISTRY_RIPENCC }, // 193.134.254.0 - 193.134.254.255 { 0xc186ff00, 0xc18703ff, REGISTRY_RIPENCC }, // 193.134.255.0 - 193.135.3.255 { 0xc1870400, 0xc18707ff, REGISTRY_RIPENCC }, // 193.135.4.0 - 193.135.7.255 { 0xc1870800, 0xc18718ff, REGISTRY_RIPENCC }, // 193.135.8.0 - 193.135.24.255 { 0xc1871900, 0xc18719ff, REGISTRY_RIPENCC }, // 193.135.25.0 - 193.135.25.255 { 0xc1871a00, 0xc1871dff, REGISTRY_RIPENCC }, // 193.135.26.0 - 193.135.29.255 { 0xc1871e00, 0xc18763ff, REGISTRY_RIPENCC }, // 193.135.30.0 - 193.135.99.255 { 0xc1876400, 0xc18765ff, REGISTRY_RIPENCC }, // 193.135.100.0 - 193.135.101.255 { 0xc1876600, 0xc1876dff, REGISTRY_RIPENCC }, // 193.135.102.0 - 193.135.109.255 { 0xc1876e00, 0xc18789ff, REGISTRY_RIPENCC }, // 193.135.110.0 - 193.135.137.255 { 0xc1878a00, 0xc1878aff, REGISTRY_RIPENCC }, // 193.135.138.0 - 193.135.138.255 { 0xc1878b00, 0xc18795ff, REGISTRY_RIPENCC }, // 193.135.139.0 - 193.135.149.255 { 0xc1879600, 0xc18796ff, REGISTRY_RIPENCC }, // 193.135.150.0 - 193.135.150.255 { 0xc1879700, 0xc18797ff, REGISTRY_RIPENCC }, // 193.135.151.0 - 193.135.151.255 { 0xc1879800, 0xc18799ff, REGISTRY_RIPENCC }, // 193.135.152.0 - 193.135.153.255 { 0xc1879a00, 0xc1879bff, REGISTRY_RIPENCC }, // 193.135.154.0 - 193.135.155.255 { 0xc1879c00, 0xc1879cff, REGISTRY_RIPENCC }, // 193.135.156.0 - 193.135.156.255 { 0xc1879d00, 0xc187a1ff, REGISTRY_RIPENCC }, // 193.135.157.0 - 193.135.161.255 { 0xc187a200, 0xc187acff, REGISTRY_RIPENCC }, // 193.135.162.0 - 193.135.172.255 { 0xc187ad00, 0xc187aeff, REGISTRY_RIPENCC }, // 193.135.173.0 - 193.135.174.255 { 0xc187af00, 0xc187d5ff, REGISTRY_RIPENCC }, // 193.135.175.0 - 193.135.213.255 { 0xc187d600, 0xc187d7ff, REGISTRY_RIPENCC }, // 193.135.214.0 - 193.135.215.255 { 0xc187d800, 0xc187d9ff, REGISTRY_RIPENCC }, // 193.135.216.0 - 193.135.217.255 { 0xc187da00, 0xc187daff, REGISTRY_RIPENCC }, // 193.135.218.0 - 193.135.218.255 { 0xc187db00, 0xc187dbff, REGISTRY_RIPENCC }, // 193.135.219.0 - 193.135.219.255 { 0xc187dc00, 0xc187efff, REGISTRY_RIPENCC }, // 193.135.220.0 - 193.135.239.255 { 0xc187f000, 0xc187f7ff, REGISTRY_RIPENCC }, // 193.135.240.0 - 193.135.247.255 { 0xc187f800, 0xc187fbff, REGISTRY_RIPENCC }, // 193.135.248.0 - 193.135.251.255 { 0xc187fc00, 0xc187feff, REGISTRY_RIPENCC }, // 193.135.252.0 - 193.135.254.255 { 0xc187ff00, 0xc189ffff, REGISTRY_RIPENCC }, // 193.135.255.0 - 193.137.255.255 { 0xc18a0000, 0xc18a03ff, REGISTRY_RIPENCC }, // 193.138.0.0 - 193.138.3.255 { 0xc18a0400, 0xc18a07ff, REGISTRY_RIPENCC }, // 193.138.4.0 - 193.138.7.255 { 0xc18a0800, 0xc18a1bff, REGISTRY_RIPENCC }, // 193.138.8.0 - 193.138.27.255 { 0xc18a1c00, 0xc18a1cff, REGISTRY_RIPENCC }, // 193.138.28.0 - 193.138.28.255 { 0xc18a1d00, 0xc18a1fff, REGISTRY_RIPENCC }, // 193.138.29.0 - 193.138.31.255 { 0xc18a2000, 0xc18a3fff, REGISTRY_RIPENCC }, // 193.138.32.0 - 193.138.63.255 { 0xc18a4000, 0xc18a47ff, REGISTRY_RIPENCC }, // 193.138.64.0 - 193.138.71.255 { 0xc18a4800, 0xc18a48ff, REGISTRY_RIPENCC }, // 193.138.72.0 - 193.138.72.255 { 0xc18a4900, 0xc18a49ff, REGISTRY_RIPENCC }, // 193.138.73.0 - 193.138.73.255 { 0xc18a4a00, 0xc18a4bff, REGISTRY_RIPENCC }, // 193.138.74.0 - 193.138.75.255 { 0xc18a4c00, 0xc18a50ff, REGISTRY_RIPENCC }, // 193.138.76.0 - 193.138.80.255 { 0xc18a5100, 0xc18a51ff, REGISTRY_RIPENCC }, // 193.138.81.0 - 193.138.81.255 { 0xc18a5200, 0xc18a52ff, REGISTRY_RIPENCC }, // 193.138.82.0 - 193.138.82.255 { 0xc18a5300, 0xc18a53ff, REGISTRY_RIPENCC }, // 193.138.83.0 - 193.138.83.255 { 0xc18a5400, 0xc18a54ff, REGISTRY_RIPENCC }, // 193.138.84.0 - 193.138.84.255 { 0xc18a5500, 0xc18a55ff, REGISTRY_RIPENCC }, // 193.138.85.0 - 193.138.85.255 { 0xc18a5600, 0xc18a5fff, REGISTRY_RIPENCC }, // 193.138.86.0 - 193.138.95.255 { 0xc18a6000, 0xc18a60ff, REGISTRY_RIPENCC }, // 193.138.96.0 - 193.138.96.255 { 0xc18a6100, 0xc18a63ff, REGISTRY_RIPENCC }, // 193.138.97.0 - 193.138.99.255 { 0xc18a6400, 0xc18a64ff, REGISTRY_RIPENCC }, // 193.138.100.0 - 193.138.100.255 { 0xc18a6500, 0xc18a6eff, REGISTRY_RIPENCC }, // 193.138.101.0 - 193.138.110.255 { 0xc18a6f00, 0xc18a6fff, REGISTRY_RIPENCC }, // 193.138.111.0 - 193.138.111.255 { 0xc18a7000, 0xc18a77ff, REGISTRY_RIPENCC }, // 193.138.112.0 - 193.138.119.255 { 0xc18a7800, 0xc18a7aff, REGISTRY_RIPENCC }, // 193.138.120.0 - 193.138.122.255 { 0xc18a7b00, 0xc18a8fff, REGISTRY_RIPENCC }, // 193.138.123.0 - 193.138.143.255 { 0xc18a9000, 0xc18a93ff, REGISTRY_RIPENCC }, // 193.138.144.0 - 193.138.147.255 { 0xc18a9400, 0xc18aa7ff, REGISTRY_RIPENCC }, // 193.138.148.0 - 193.138.167.255 { 0xc18aa800, 0xc18aafff, REGISTRY_RIPENCC }, // 193.138.168.0 - 193.138.175.255 { 0xc18ab000, 0xc18afbff, REGISTRY_RIPENCC }, // 193.138.176.0 - 193.138.251.255 { 0xc18afc00, 0xc18d02ff, REGISTRY_RIPENCC }, // 193.138.252.0 - 193.141.2.255 { 0xc18d0300, 0xc18d03ff, REGISTRY_RIPENCC }, // 193.141.3.0 - 193.141.3.255 { 0xc18d0400, 0xc18d13ff, REGISTRY_RIPENCC }, // 193.141.4.0 - 193.141.19.255 { 0xc18d1400, 0xc18d14ff, REGISTRY_RIPENCC }, // 193.141.20.0 - 193.141.20.255 { 0xc18d1500, 0xc18d16ff, REGISTRY_RIPENCC }, // 193.141.21.0 - 193.141.22.255 { 0xc18d1700, 0xc18d18ff, REGISTRY_RIPENCC }, // 193.141.23.0 - 193.141.24.255 { 0xc18d1900, 0xc18d1aff, REGISTRY_RIPENCC }, // 193.141.25.0 - 193.141.26.255 { 0xc18d1b00, 0xc18d1bff, REGISTRY_RIPENCC }, // 193.141.27.0 - 193.141.27.255 { 0xc18d1c00, 0xc18d36ff, REGISTRY_RIPENCC }, // 193.141.28.0 - 193.141.54.255 { 0xc18d3700, 0xc18d37ff, REGISTRY_RIPENCC }, // 193.141.55.0 - 193.141.55.255 { 0xc18d3800, 0xc18d38ff, REGISTRY_RIPENCC }, // 193.141.56.0 - 193.141.56.255 { 0xc18d3900, 0xc18d3aff, REGISTRY_RIPENCC }, // 193.141.57.0 - 193.141.58.255 { 0xc18d3b00, 0xc18d3cff, REGISTRY_RIPENCC }, // 193.141.59.0 - 193.141.60.255 { 0xc18d3d00, 0xc18d3dff, REGISTRY_RIPENCC }, // 193.141.61.0 - 193.141.61.255 { 0xc18d3e00, 0xc18d42ff, REGISTRY_RIPENCC }, // 193.141.62.0 - 193.141.66.255 { 0xc18d4300, 0xc18d43ff, REGISTRY_RIPENCC }, // 193.141.67.0 - 193.141.67.255 { 0xc18d4400, 0xc18d5aff, REGISTRY_RIPENCC }, // 193.141.68.0 - 193.141.90.255 { 0xc18d5b00, 0xc18d5bff, REGISTRY_RIPENCC }, // 193.141.91.0 - 193.141.91.255 { 0xc18d5c00, 0xc18d5fff, REGISTRY_RIPENCC }, // 193.141.92.0 - 193.141.95.255 { 0xc18d6000, 0xc18d63ff, REGISTRY_RIPENCC }, // 193.141.96.0 - 193.141.99.255 { 0xc18d6400, 0xc18d64ff, REGISTRY_RIPENCC }, // 193.141.100.0 - 193.141.100.255 { 0xc18d6500, 0xc18d65ff, REGISTRY_RIPENCC }, // 193.141.101.0 - 193.141.101.255 { 0xc18d6600, 0xc18d67ff, REGISTRY_RIPENCC }, // 193.141.102.0 - 193.141.103.255 { 0xc18d6800, 0xc18d68ff, REGISTRY_RIPENCC }, // 193.141.104.0 - 193.141.104.255 { 0xc18d6900, 0xc18d6aff, REGISTRY_RIPENCC }, // 193.141.105.0 - 193.141.106.255 { 0xc18d6b00, 0xc18d6bff, REGISTRY_RIPENCC }, // 193.141.107.0 - 193.141.107.255 { 0xc18d6c00, 0xc18d6dff, REGISTRY_RIPENCC }, // 193.141.108.0 - 193.141.109.255 { 0xc18d6e00, 0xc18d6eff, REGISTRY_RIPENCC }, // 193.141.110.0 - 193.141.110.255 { 0xc18d6f00, 0xc18d8aff, REGISTRY_RIPENCC }, // 193.141.111.0 - 193.141.138.255 { 0xc18d8b00, 0xc18d8bff, REGISTRY_RIPENCC }, // 193.141.139.0 - 193.141.139.255 { 0xc18d8c00, 0xc18d8eff, REGISTRY_RIPENCC }, // 193.141.140.0 - 193.141.142.255 { 0xc18d8f00, 0xc18d8fff, REGISTRY_RIPENCC }, // 193.141.143.0 - 193.141.143.255 { 0xc18d9000, 0xc18dafff, REGISTRY_RIPENCC }, // 193.141.144.0 - 193.141.175.255 { 0xc18db000, 0xc18db0ff, REGISTRY_RIPENCC }, // 193.141.176.0 - 193.141.176.255 { 0xc18db100, 0xc18db3ff, REGISTRY_RIPENCC }, // 193.141.177.0 - 193.141.179.255 { 0xc18db400, 0xc18db7ff, REGISTRY_RIPENCC }, // 193.141.180.0 - 193.141.183.255 { 0xc18db800, 0xc18dbbff, REGISTRY_RIPENCC }, // 193.141.184.0 - 193.141.187.255 { 0xc18dbc00, 0xc18dbcff, REGISTRY_RIPENCC }, // 193.141.188.0 - 193.141.188.255 { 0xc18dbd00, 0xc18dbfff, REGISTRY_RIPENCC }, // 193.141.189.0 - 193.141.191.255 { 0xc18dc000, 0xc18de2ff, REGISTRY_RIPENCC }, // 193.141.192.0 - 193.141.226.255 { 0xc18de300, 0xc18dffff, REGISTRY_RIPENCC }, // 193.141.227.0 - 193.141.255.255 { 0xc18e0000, 0xc18e02ff, REGISTRY_RIPENCC }, // 193.142.0.0 - 193.142.2.255 { 0xc18e0300, 0xc18e04ff, REGISTRY_RIPENCC }, // 193.142.3.0 - 193.142.4.255 { 0xc18e0500, 0xc18e05ff, REGISTRY_RIPENCC }, // 193.142.5.0 - 193.142.5.255 { 0xc18e0600, 0xc18e06ff, REGISTRY_RIPENCC }, // 193.142.6.0 - 193.142.6.255 { 0xc18e0700, 0xc18e11ff, REGISTRY_RIPENCC }, // 193.142.7.0 - 193.142.17.255 { 0xc18e1200, 0xc18e12ff, REGISTRY_RIPENCC }, // 193.142.18.0 - 193.142.18.255 { 0xc18e1300, 0xc18e13ff, REGISTRY_RIPENCC }, // 193.142.19.0 - 193.142.19.255 { 0xc18e1400, 0xc18e16ff, REGISTRY_RIPENCC }, // 193.142.20.0 - 193.142.22.255 { 0xc18e1700, 0xc18e1aff, REGISTRY_RIPENCC }, // 193.142.23.0 - 193.142.26.255 { 0xc18e1b00, 0xc18e1dff, REGISTRY_RIPENCC }, // 193.142.27.0 - 193.142.29.255 { 0xc18e1e00, 0xc18e1fff, REGISTRY_RIPENCC }, // 193.142.30.0 - 193.142.31.255 { 0xc18e2000, 0xc18e31ff, REGISTRY_RIPENCC }, // 193.142.32.0 - 193.142.49.255 { 0xc18e3200, 0xc18e33ff, REGISTRY_RIPENCC }, // 193.142.50.0 - 193.142.51.255 { 0xc18e3400, 0xc18e34ff, REGISTRY_RIPENCC }, // 193.142.52.0 - 193.142.52.255 { 0xc18e3500, 0xc18e35ff, REGISTRY_RIPENCC }, // 193.142.53.0 - 193.142.53.255 { 0xc18e3600, 0xc18e36ff, REGISTRY_RIPENCC }, // 193.142.54.0 - 193.142.54.255 { 0xc18e3700, 0xc18e39ff, REGISTRY_RIPENCC }, // 193.142.55.0 - 193.142.57.255 { 0xc18e3a00, 0xc18e3cff, REGISTRY_RIPENCC }, // 193.142.58.0 - 193.142.60.255 { 0xc18e3d00, 0xc18e3eff, REGISTRY_RIPENCC }, // 193.142.61.0 - 193.142.62.255 { 0xc18e3f00, 0xc18e3fff, REGISTRY_RIPENCC }, // 193.142.63.0 - 193.142.63.255 { 0xc18e4000, 0xc18e63ff, REGISTRY_RIPENCC }, // 193.142.64.0 - 193.142.99.255 { 0xc18e6400, 0xc18e64ff, REGISTRY_RIPENCC }, // 193.142.100.0 - 193.142.100.255 { 0xc18e6500, 0xc18e74ff, REGISTRY_RIPENCC }, // 193.142.101.0 - 193.142.116.255 { 0xc18e7500, 0xc18e75ff, REGISTRY_RIPENCC }, // 193.142.117.0 - 193.142.117.255 { 0xc18e7600, 0xc18e7bff, REGISTRY_RIPENCC }, // 193.142.118.0 - 193.142.123.255 { 0xc18e7c00, 0xc18e7cff, REGISTRY_ARIN }, // 193.142.124.0 - 193.142.124.255 { 0xc18e7d00, 0xc18e7dff, REGISTRY_RIPENCC }, // 193.142.125.0 - 193.142.125.255 { 0xc18e7e00, 0xc18e7eff, REGISTRY_RIPENCC }, // 193.142.126.0 - 193.142.126.255 { 0xc18e7f00, 0xc18e7fff, REGISTRY_RIPENCC }, // 193.142.127.0 - 193.142.127.255 { 0xc18e8000, 0xc18e87ff, REGISTRY_RIPENCC }, // 193.142.128.0 - 193.142.135.255 { 0xc18e8800, 0xc18e8fff, REGISTRY_RIPENCC }, // 193.142.136.0 - 193.142.143.255 { 0xc18e9000, 0xc18e90ff, REGISTRY_RIPENCC }, // 193.142.144.0 - 193.142.144.255 { 0xc18e9100, 0xc18e91ff, REGISTRY_RIPENCC }, // 193.142.145.0 - 193.142.145.255 { 0xc18e9200, 0xc18e94ff, REGISTRY_RIPENCC }, // 193.142.146.0 - 193.142.148.255 { 0xc18e9500, 0xc18e97ff, REGISTRY_RIPENCC }, // 193.142.149.0 - 193.142.151.255 { 0xc18e9800, 0xc18e98ff, REGISTRY_RIPENCC }, // 193.142.152.0 - 193.142.152.255 { 0xc18e9900, 0xc18e99ff, REGISTRY_RIPENCC }, // 193.142.153.0 - 193.142.153.255 { 0xc18e9a00, 0xc18e9cff, REGISTRY_RIPENCC }, // 193.142.154.0 - 193.142.156.255 { 0xc18e9d00, 0xc18ebbff, REGISTRY_RIPENCC }, // 193.142.157.0 - 193.142.187.255 { 0xc18ebc00, 0xc18ecbff, REGISTRY_RIPENCC }, // 193.142.188.0 - 193.142.203.255 { 0xc18ecc00, 0xc18eccff, REGISTRY_RIPENCC }, // 193.142.204.0 - 193.142.204.255 { 0xc18ecd00, 0xc18ecfff, REGISTRY_RIPENCC }, // 193.142.205.0 - 193.142.207.255 { 0xc18ed000, 0xc18ed3ff, REGISTRY_RIPENCC }, // 193.142.208.0 - 193.142.211.255 { 0xc18ed500, 0xc18ed5ff, REGISTRY_RIPENCC }, // 193.142.213.0 - 193.142.213.255 { 0xc18ed600, 0xc18ed6ff, REGISTRY_RIPENCC }, // 193.142.214.0 - 193.142.214.255 { 0xc18ed700, 0xc18ed9ff, REGISTRY_RIPENCC }, // 193.142.215.0 - 193.142.217.255 { 0xc18edb00, 0xc18edcff, REGISTRY_RIPENCC }, // 193.142.219.0 - 193.142.220.255 { 0xc18edd00, 0xc18eddff, REGISTRY_RIPENCC }, // 193.142.221.0 - 193.142.221.255 { 0xc18ede00, 0xc18edeff, REGISTRY_RIPENCC }, // 193.142.222.0 - 193.142.222.255 { 0xc18edf00, 0xc18edfff, REGISTRY_RIPENCC }, // 193.142.223.0 - 193.142.223.255 { 0xc18ee000, 0xc18ee7ff, REGISTRY_RIPENCC }, // 193.142.224.0 - 193.142.231.255 { 0xc18ee800, 0xc18eeaff, REGISTRY_RIPENCC }, // 193.142.232.0 - 193.142.234.255 { 0xc18eeb00, 0xc18ef0ff, REGISTRY_RIPENCC }, // 193.142.235.0 - 193.142.240.255 { 0xc18ef100, 0xc18ef2ff, REGISTRY_RIPENCC }, // 193.142.241.0 - 193.142.242.255 { 0xc18ef300, 0xc18ef8ff, REGISTRY_RIPENCC }, // 193.142.243.0 - 193.142.248.255 { 0xc18ef900, 0xc18ef9ff, REGISTRY_RIPENCC }, // 193.142.249.0 - 193.142.249.255 { 0xc18efa00, 0xc18efcff, REGISTRY_RIPENCC }, // 193.142.250.0 - 193.142.252.255 { 0xc18efd00, 0xc18effff, REGISTRY_RIPENCC }, // 193.142.253.0 - 193.142.255.255 { 0xc18f0000, 0xc18f00ff, REGISTRY_RIPENCC }, // 193.143.0.0 - 193.143.0.255 { 0xc18f0100, 0xc18f03ff, REGISTRY_RIPENCC }, // 193.143.1.0 - 193.143.3.255 { 0xc18f0400, 0xc18f05ff, REGISTRY_RIPENCC }, // 193.143.4.0 - 193.143.5.255 { 0xc18f0600, 0xc18f07ff, REGISTRY_RIPENCC }, // 193.143.6.0 - 193.143.7.255 { 0xc18f0800, 0xc18f0fff, REGISTRY_RIPENCC }, // 193.143.8.0 - 193.143.15.255 { 0xc18f1000, 0xc18f12ff, REGISTRY_RIPENCC }, // 193.143.16.0 - 193.143.18.255 { 0xc18f1300, 0xc18f13ff, REGISTRY_RIPENCC }, // 193.143.19.0 - 193.143.19.255 { 0xc18f1400, 0xc18f1fff, REGISTRY_RIPENCC }, // 193.143.20.0 - 193.143.31.255 { 0xc18f2000, 0xc18f3fff, REGISTRY_RIPENCC }, // 193.143.32.0 - 193.143.63.255 { 0xc18f4000, 0xc18f49ff, REGISTRY_RIPENCC }, // 193.143.64.0 - 193.143.73.255 { 0xc18f4a00, 0xc18f4aff, REGISTRY_RIPENCC }, // 193.143.74.0 - 193.143.74.255 { 0xc18f4b00, 0xc18f4cff, REGISTRY_RIPENCC }, // 193.143.75.0 - 193.143.76.255 { 0xc18f4d00, 0xc18f4dff, REGISTRY_RIPENCC }, // 193.143.77.0 - 193.143.77.255 { 0xc18f4e00, 0xc18f5bff, REGISTRY_RIPENCC }, // 193.143.78.0 - 193.143.91.255 { 0xc18f5c00, 0xc18f5cff, REGISTRY_RIPENCC }, // 193.143.92.0 - 193.143.92.255 { 0xc18f5d00, 0xc18f62ff, REGISTRY_RIPENCC }, // 193.143.93.0 - 193.143.98.255 { 0xc18f6300, 0xc18f76ff, REGISTRY_RIPENCC }, // 193.143.99.0 - 193.143.118.255 { 0xc18f7700, 0xc18f77ff, REGISTRY_RIPENCC }, // 193.143.119.0 - 193.143.119.255 { 0xc18f7800, 0xc18f78ff, REGISTRY_RIPENCC }, // 193.143.120.0 - 193.143.120.255 { 0xc18f7900, 0xc18f79ff, REGISTRY_RIPENCC }, // 193.143.121.0 - 193.143.121.255 { 0xc18f7a00, 0xc18f7aff, REGISTRY_RIPENCC }, // 193.143.122.0 - 193.143.122.255 { 0xc18f7b00, 0xc18f7bff, REGISTRY_RIPENCC }, // 193.143.123.0 - 193.143.123.255 { 0xc18f7c00, 0xc18fdfff, REGISTRY_RIPENCC }, // 193.143.124.0 - 193.143.223.255 { 0xc18fe000, 0xc18fe0ff, REGISTRY_RIPENCC }, // 193.143.224.0 - 193.143.224.255 { 0xc18fe100, 0xc18fe1ff, REGISTRY_RIPENCC }, // 193.143.225.0 - 193.143.225.255 { 0xc18fe200, 0xc18fe3ff, REGISTRY_RIPENCC }, // 193.143.226.0 - 193.143.227.255 { 0xc18fe400, 0xc18fe6ff, REGISTRY_RIPENCC }, // 193.143.228.0 - 193.143.230.255 { 0xc18fe700, 0xc18fe7ff, REGISTRY_RIPENCC }, // 193.143.231.0 - 193.143.231.255 { 0xc18fe800, 0xc18ff7ff, REGISTRY_RIPENCC }, // 193.143.232.0 - 193.143.247.255 { 0xc18ff800, 0xc18ff8ff, REGISTRY_RIPENCC }, // 193.143.248.0 - 193.143.248.255 { 0xc18ff900, 0xc18ff9ff, REGISTRY_RIPENCC }, // 193.143.249.0 - 193.143.249.255 { 0xc18ffa00, 0xc18ffcff, REGISTRY_RIPENCC }, // 193.143.250.0 - 193.143.252.255 { 0xc18ffd00, 0xc18ffeff, REGISTRY_RIPENCC }, // 193.143.253.0 - 193.143.254.255 { 0xc18fff00, 0xc193ffff, REGISTRY_RIPENCC }, // 193.143.255.0 - 193.147.255.255 { 0xc1940000, 0xc19400ff, REGISTRY_RIPENCC }, // 193.148.0.0 - 193.148.0.255 { 0xc1940100, 0xc19401ff, REGISTRY_RIPENCC }, // 193.148.1.0 - 193.148.1.255 { 0xc1940200, 0xc19404ff, REGISTRY_RIPENCC }, // 193.148.2.0 - 193.148.4.255 { 0xc1940500, 0xc19405ff, REGISTRY_RIPENCC }, // 193.148.5.0 - 193.148.5.255 { 0xc1940600, 0xc19407ff, REGISTRY_RIPENCC }, // 193.148.6.0 - 193.148.7.255 { 0xc1940800, 0xc1940eff, REGISTRY_RIPENCC }, // 193.148.8.0 - 193.148.14.255 { 0xc1940f00, 0xc1940fff, REGISTRY_RIPENCC }, // 193.148.15.0 - 193.148.15.255 { 0xc1941000, 0xc19417ff, REGISTRY_RIPENCC }, // 193.148.16.0 - 193.148.23.255 { 0xc1941800, 0xc19427ff, REGISTRY_RIPENCC }, // 193.148.24.0 - 193.148.39.255 { 0xc1942800, 0xc1942bff, REGISTRY_RIPENCC }, // 193.148.40.0 - 193.148.43.255 { 0xc1942c00, 0xc1942cff, REGISTRY_RIPENCC }, // 193.148.44.0 - 193.148.44.255 { 0xc1942d00, 0xc1942dff, REGISTRY_RIPENCC }, // 193.148.45.0 - 193.148.45.255 { 0xc1942e00, 0xc1942eff, REGISTRY_RIPENCC }, // 193.148.46.0 - 193.148.46.255 { 0xc1942f00, 0xc1945fff, REGISTRY_RIPENCC }, // 193.148.47.0 - 193.148.95.255 { 0xc1946000, 0xc1949fff, REGISTRY_RIPENCC }, // 193.148.96.0 - 193.148.159.255 { 0xc194a000, 0xc194bfff, REGISTRY_RIPENCC }, // 193.148.160.0 - 193.148.191.255 { 0xc194c000, 0xc194dfff, REGISTRY_RIPENCC }, // 193.148.192.0 - 193.148.223.255 { 0xc194e000, 0xc194f5ff, REGISTRY_RIPENCC }, // 193.148.224.0 - 193.148.245.255 { 0xc194f600, 0xc194f6ff, REGISTRY_RIPENCC }, // 193.148.246.0 - 193.148.246.255 { 0xc194f700, 0xc194fdff, REGISTRY_RIPENCC }, // 193.148.247.0 - 193.148.253.255 { 0xc194fe00, 0xc194feff, REGISTRY_RIPENCC }, // 193.148.254.0 - 193.148.254.255 { 0xc194ff00, 0xc194ffff, REGISTRY_ARIN }, // 193.148.255.0 - 193.148.255.255 { 0xc1950000, 0xc19501ff, REGISTRY_RIPENCC }, // 193.149.0.0 - 193.149.1.255 { 0xc1950200, 0xc19503ff, REGISTRY_RIPENCC }, // 193.149.2.0 - 193.149.3.255 { 0xc1950400, 0xc1950fff, REGISTRY_RIPENCC }, // 193.149.4.0 - 193.149.15.255 { 0xc1951000, 0xc1953fff, REGISTRY_RIPENCC }, // 193.149.16.0 - 193.149.63.255 { 0xc1954000, 0xc1955fff, REGISTRY_RIPENCC }, // 193.149.64.0 - 193.149.95.255 { 0xc1956000, 0xc1957fff, REGISTRY_RIPENCC }, // 193.149.96.0 - 193.149.127.255 { 0xc1958000, 0xc19580ff, REGISTRY_RIPENCC }, // 193.149.128.0 - 193.149.128.255 { 0xc1958100, 0xc19582ff, REGISTRY_ARIN }, // 193.149.129.0 - 193.149.130.255 { 0xc1958300, 0xc19585ff, REGISTRY_RIPENCC }, // 193.149.131.0 - 193.149.133.255 { 0xc1958600, 0xc19588ff, REGISTRY_ARIN }, // 193.149.134.0 - 193.149.136.255 { 0xc1958900, 0xc1958aff, REGISTRY_RIPENCC }, // 193.149.137.0 - 193.149.138.255 { 0xc1958b00, 0xc1958bff, REGISTRY_ARIN }, // 193.149.139.0 - 193.149.139.255 { 0xc1958c00, 0xc1958dff, REGISTRY_RIPENCC }, // 193.149.140.0 - 193.149.141.255 { 0xc1958e00, 0xc1958eff, REGISTRY_LACNIC }, // 193.149.142.0 - 193.149.142.255 { 0xc1958f00, 0xc19590ff, REGISTRY_RIPENCC }, // 193.149.143.0 - 193.149.144.255 { 0xc1959100, 0xc19591ff, REGISTRY_ARIN }, // 193.149.145.0 - 193.149.145.255 { 0xc1959200, 0xc19593ff, REGISTRY_RIPENCC }, // 193.149.146.0 - 193.149.147.255 { 0xc1959400, 0xc19595ff, REGISTRY_ARIN }, // 193.149.148.0 - 193.149.149.255 { 0xc1959600, 0xc19596ff, REGISTRY_RIPENCC }, // 193.149.150.0 - 193.149.150.255 { 0xc1959700, 0xc19597ff, REGISTRY_APNIC }, // 193.149.151.0 - 193.149.151.255 { 0xc1959800, 0xc19598ff, REGISTRY_RIPENCC }, // 193.149.152.0 - 193.149.152.255 { 0xc1959900, 0xc19599ff, REGISTRY_APNIC }, // 193.149.153.0 - 193.149.153.255 { 0xc1959a00, 0xc1959aff, REGISTRY_RIPENCC }, // 193.149.154.0 - 193.149.154.255 { 0xc1959b00, 0xc1959cff, REGISTRY_ARIN }, // 193.149.155.0 - 193.149.156.255 { 0xc1959d00, 0xc1959dff, REGISTRY_RIPENCC }, // 193.149.157.0 - 193.149.157.255 { 0xc1959e00, 0xc1959fff, REGISTRY_APNIC }, // 193.149.158.0 - 193.149.159.255 { 0xc195a000, 0xc195a3ff, REGISTRY_RIPENCC }, // 193.149.160.0 - 193.149.163.255 { 0xc195a400, 0xc195a4ff, REGISTRY_ARIN }, // 193.149.164.0 - 193.149.164.255 { 0xc195a500, 0xc195a5ff, REGISTRY_RIPENCC }, // 193.149.165.0 - 193.149.165.255 { 0xc195a600, 0xc195a7ff, REGISTRY_APNIC }, // 193.149.166.0 - 193.149.167.255 { 0xc195a800, 0xc195aaff, REGISTRY_ARIN }, // 193.149.168.0 - 193.149.170.255 { 0xc195ab00, 0xc195acff, REGISTRY_RIPENCC }, // 193.149.171.0 - 193.149.172.255 { 0xc195ad00, 0xc195b0ff, REGISTRY_ARIN }, // 193.149.173.0 - 193.149.176.255 { 0xc195b100, 0xc195b1ff, REGISTRY_RIPENCC }, // 193.149.177.0 - 193.149.177.255 { 0xc195b200, 0xc195b3ff, REGISTRY_RIPENCC }, // 193.149.178.0 - 193.149.179.255 { 0xc195b400, 0xc195b4ff, REGISTRY_ARIN }, // 193.149.180.0 - 193.149.180.255 { 0xc195b500, 0xc195b5ff, REGISTRY_RIPENCC }, // 193.149.181.0 - 193.149.181.255 { 0xc195b600, 0xc195b7ff, REGISTRY_ARIN }, // 193.149.182.0 - 193.149.183.255 { 0xc195b800, 0xc195b8ff, REGISTRY_RIPENCC }, // 193.149.184.0 - 193.149.184.255 { 0xc195b900, 0xc195b9ff, REGISTRY_ARIN }, // 193.149.185.0 - 193.149.185.255 { 0xc195ba00, 0xc195baff, REGISTRY_RIPENCC }, // 193.149.186.0 - 193.149.186.255 { 0xc195bb00, 0xc195bbff, REGISTRY_ARIN }, // 193.149.187.0 - 193.149.187.255 { 0xc195bc00, 0xc195bcff, REGISTRY_RIPENCC }, // 193.149.188.0 - 193.149.188.255 { 0xc195bd00, 0xc195beff, REGISTRY_ARIN }, // 193.149.189.0 - 193.149.190.255 { 0xc195bf00, 0xc195bfff, REGISTRY_RIPENCC }, // 193.149.191.0 - 193.149.191.255 { 0xc195c000, 0xc195d8ff, REGISTRY_RIPENCC }, // 193.149.192.0 - 193.149.216.255 { 0xc195d900, 0xc195d9ff, REGISTRY_RIPENCC }, // 193.149.217.0 - 193.149.217.255 { 0xc195da00, 0xc195e0ff, REGISTRY_RIPENCC }, // 193.149.218.0 - 193.149.224.255 { 0xc195e100, 0xc195e1ff, REGISTRY_ARIN }, // 193.149.225.0 - 193.149.225.255 { 0xc195e200, 0xc195efff, REGISTRY_RIPENCC }, // 193.149.226.0 - 193.149.239.255 { 0xc195f000, 0xc19641ff, REGISTRY_RIPENCC }, // 193.149.240.0 - 193.150.65.255 { 0xc1964200, 0xc19642ff, REGISTRY_RIPENCC }, // 193.150.66.0 - 193.150.66.255 { 0xc1964300, 0xc19643ff, REGISTRY_RIPENCC }, // 193.150.67.0 - 193.150.67.255 { 0xc1964400, 0xc19644ff, REGISTRY_RIPENCC }, // 193.150.68.0 - 193.150.68.255 { 0xc1964500, 0xc19661ff, REGISTRY_RIPENCC }, // 193.150.69.0 - 193.150.97.255 { 0xc1966200, 0xc19663ff, REGISTRY_RIPENCC }, // 193.150.98.0 - 193.150.99.255 { 0xc1966400, 0xc1966bff, REGISTRY_RIPENCC }, // 193.150.100.0 - 193.150.107.255 { 0xc1966c00, 0xc1966fff, REGISTRY_RIPENCC }, // 193.150.108.0 - 193.150.111.255 { 0xc1967000, 0xc19677ff, REGISTRY_RIPENCC }, // 193.150.112.0 - 193.150.119.255 { 0xc1967800, 0xc19678ff, REGISTRY_ARIN }, // 193.150.120.0 - 193.150.120.255 { 0xc1967900, 0xc1967fff, REGISTRY_RIPENCC }, // 193.150.121.0 - 193.150.127.255 { 0xc1968000, 0xc19697ff, REGISTRY_RIPENCC }, // 193.150.128.0 - 193.150.151.255 { 0xc1969800, 0xc196a7ff, REGISTRY_RIPENCC }, // 193.150.152.0 - 193.150.167.255 { 0xc196a800, 0xc196a8ff, REGISTRY_ARIN }, // 193.150.168.0 - 193.150.168.255 { 0xc196a900, 0xc196a9ff, REGISTRY_RIPENCC }, // 193.150.169.0 - 193.150.169.255 { 0xc196aa00, 0xc196abff, REGISTRY_RIPENCC }, // 193.150.170.0 - 193.150.171.255 { 0xc196ac00, 0xc196bfff, REGISTRY_RIPENCC }, // 193.150.172.0 - 193.150.191.255 { 0xc196c000, 0xc196ffff, REGISTRY_RIPENCC }, // 193.150.192.0 - 193.150.255.255 { 0xc1970000, 0xc19717ff, REGISTRY_RIPENCC }, // 193.151.0.0 - 193.151.23.255 { 0xc1971800, 0xc1971bff, REGISTRY_RIPENCC }, // 193.151.24.0 - 193.151.27.255 { 0xc1971c00, 0xc1972fff, REGISTRY_RIPENCC }, // 193.151.28.0 - 193.151.47.255 { 0xc1973000, 0xc19733ff, REGISTRY_RIPENCC }, // 193.151.48.0 - 193.151.51.255 { 0xc1973400, 0xc1973bff, REGISTRY_RIPENCC }, // 193.151.52.0 - 193.151.59.255 { 0xc1973c00, 0xc19743ff, REGISTRY_RIPENCC }, // 193.151.60.0 - 193.151.67.255 { 0xc1974400, 0xc19747ff, REGISTRY_RIPENCC }, // 193.151.68.0 - 193.151.71.255 { 0xc1974800, 0xc1974bff, REGISTRY_RIPENCC }, // 193.151.72.0 - 193.151.75.255 { 0xc1974c00, 0xc1975eff, REGISTRY_RIPENCC }, // 193.151.76.0 - 193.151.94.255 { 0xc1975f00, 0xc1975fff, REGISTRY_RIPENCC }, // 193.151.95.0 - 193.151.95.255 { 0xc1976000, 0xc1977fff, REGISTRY_RIPENCC }, // 193.151.96.0 - 193.151.127.255 { 0xc1978000, 0xc197bfff, REGISTRY_RIPENCC }, // 193.151.128.0 - 193.151.191.255 { 0xc197c000, 0xc197ffff, REGISTRY_RIPENCC }, // 193.151.192.0 - 193.151.255.255 { 0xc1980000, 0xc19fffff, REGISTRY_RIPENCC }, // 193.152.0.0 - 193.159.255.255 { 0xc1a00000, 0xc1a007ff, REGISTRY_RIPENCC }, // 193.160.0.0 - 193.160.7.255 { 0xc1a00800, 0xc1a008ff, REGISTRY_RIPENCC }, // 193.160.8.0 - 193.160.8.255 { 0xc1a00900, 0xc1a009ff, REGISTRY_RIPENCC }, // 193.160.9.0 - 193.160.9.255 { 0xc1a00a00, 0xc1a00bff, REGISTRY_RIPENCC }, // 193.160.10.0 - 193.160.11.255 { 0xc1a00c00, 0xc1a00dff, REGISTRY_RIPENCC }, // 193.160.12.0 - 193.160.13.255 { 0xc1a00e00, 0xc1a013ff, REGISTRY_RIPENCC }, // 193.160.14.0 - 193.160.19.255 { 0xc1a01400, 0xc1a014ff, REGISTRY_RIPENCC }, // 193.160.20.0 - 193.160.20.255 { 0xc1a01500, 0xc1a017ff, REGISTRY_RIPENCC }, // 193.160.21.0 - 193.160.23.255 { 0xc1a01800, 0xc1a01dff, REGISTRY_RIPENCC }, // 193.160.24.0 - 193.160.29.255 { 0xc1a01e00, 0xc1a021ff, REGISTRY_RIPENCC }, // 193.160.30.0 - 193.160.33.255 { 0xc1a02200, 0xc1a03fff, REGISTRY_RIPENCC }, // 193.160.34.0 - 193.160.63.255 { 0xc1a04000, 0xc1a060ff, REGISTRY_RIPENCC }, // 193.160.64.0 - 193.160.96.255 { 0xc1a06100, 0xc1a063ff, REGISTRY_RIPENCC }, // 193.160.97.0 - 193.160.99.255 { 0xc1a06400, 0xc1a066ff, REGISTRY_RIPENCC }, // 193.160.100.0 - 193.160.102.255 { 0xc1a06700, 0xc1a070ff, REGISTRY_RIPENCC }, // 193.160.103.0 - 193.160.112.255 { 0xc1a07100, 0xc1a071ff, REGISTRY_RIPENCC }, // 193.160.113.0 - 193.160.113.255 { 0xc1a07200, 0xc1a075ff, REGISTRY_RIPENCC }, // 193.160.114.0 - 193.160.117.255 { 0xc1a07600, 0xc1a077ff, REGISTRY_RIPENCC }, // 193.160.118.0 - 193.160.119.255 { 0xc1a07800, 0xc1a07fff, REGISTRY_RIPENCC }, // 193.160.120.0 - 193.160.127.255 { 0xc1a08000, 0xc1a082ff, REGISTRY_RIPENCC }, // 193.160.128.0 - 193.160.130.255 { 0xc1a08300, 0xc1a085ff, REGISTRY_RIPENCC }, // 193.160.131.0 - 193.160.133.255 { 0xc1a08600, 0xc1a088ff, REGISTRY_RIPENCC }, // 193.160.134.0 - 193.160.136.255 { 0xc1a08900, 0xc1a08aff, REGISTRY_RIPENCC }, // 193.160.137.0 - 193.160.138.255 { 0xc1a08b00, 0xc1a093ff, REGISTRY_RIPENCC }, // 193.160.139.0 - 193.160.147.255 { 0xc1a09400, 0xc1a097ff, REGISTRY_RIPENCC }, // 193.160.148.0 - 193.160.151.255 { 0xc1a09800, 0xc1a09bff, REGISTRY_RIPENCC }, // 193.160.152.0 - 193.160.155.255 { 0xc1a09c00, 0xc1a09eff, REGISTRY_RIPENCC }, // 193.160.156.0 - 193.160.158.255 { 0xc1a09f00, 0xc1a09fff, REGISTRY_RIPENCC }, // 193.160.159.0 - 193.160.159.255 { 0xc1a0a000, 0xc1a0bbff, REGISTRY_RIPENCC }, // 193.160.160.0 - 193.160.187.255 { 0xc1a0bc00, 0xc1a0bfff, REGISTRY_RIPENCC }, // 193.160.188.0 - 193.160.191.255 { 0xc1a0c000, 0xc1a0cbff, REGISTRY_RIPENCC }, // 193.160.192.0 - 193.160.203.255 { 0xc1a0cc00, 0xc1a0cdff, REGISTRY_RIPENCC }, // 193.160.204.0 - 193.160.205.255 { 0xc1a0ce00, 0xc1a0cfff, REGISTRY_RIPENCC }, // 193.160.206.0 - 193.160.207.255 { 0xc1a0d000, 0xc1a0dfff, REGISTRY_RIPENCC }, // 193.160.208.0 - 193.160.223.255 { 0xc1a0e000, 0xc1a0e7ff, REGISTRY_RIPENCC }, // 193.160.224.0 - 193.160.231.255 { 0xc1a0e800, 0xc1a0eeff, REGISTRY_RIPENCC }, // 193.160.232.0 - 193.160.238.255 { 0xc1a0ef00, 0xc1a0efff, REGISTRY_RIPENCC }, // 193.160.239.0 - 193.160.239.255 { 0xc1a0f000, 0xc1a0f7ff, REGISTRY_RIPENCC }, // 193.160.240.0 - 193.160.247.255 { 0xc1a0f800, 0xc1a0fcff, REGISTRY_RIPENCC }, // 193.160.248.0 - 193.160.252.255 { 0xc1a0fd00, 0xc1a0feff, REGISTRY_RIPENCC }, // 193.160.253.0 - 193.160.254.255 { 0xc1a0ff00, 0xc1a100ff, REGISTRY_RIPENCC }, // 193.160.255.0 - 193.161.0.255 { 0xc1a10100, 0xc1a10bff, REGISTRY_RIPENCC }, // 193.161.1.0 - 193.161.11.255 { 0xc1a10c00, 0xc1a117ff, REGISTRY_RIPENCC }, // 193.161.12.0 - 193.161.23.255 { 0xc1a11800, 0xc1a11aff, REGISTRY_RIPENCC }, // 193.161.24.0 - 193.161.26.255 { 0xc1a11b00, 0xc1a11bff, REGISTRY_RIPENCC }, // 193.161.27.0 - 193.161.27.255 { 0xc1a11c00, 0xc1a11fff, REGISTRY_RIPENCC }, // 193.161.28.0 - 193.161.31.255 { 0xc1a12000, 0xc1a16fff, REGISTRY_RIPENCC }, // 193.161.32.0 - 193.161.111.255 { 0xc1a17000, 0xc1a177ff, REGISTRY_RIPENCC }, // 193.161.112.0 - 193.161.119.255 { 0xc1a17800, 0xc1a17fff, REGISTRY_RIPENCC }, // 193.161.120.0 - 193.161.127.255 { 0xc1a18000, 0xc1a189ff, REGISTRY_RIPENCC }, // 193.161.128.0 - 193.161.137.255 { 0xc1a18a00, 0xc1a18bff, REGISTRY_RIPENCC }, // 193.161.138.0 - 193.161.139.255 { 0xc1a18c00, 0xc1a18fff, REGISTRY_RIPENCC }, // 193.161.140.0 - 193.161.143.255 { 0xc1a19000, 0xc1a192ff, REGISTRY_RIPENCC }, // 193.161.144.0 - 193.161.146.255 { 0xc1a19300, 0xc1a197ff, REGISTRY_RIPENCC }, // 193.161.147.0 - 193.161.151.255 { 0xc1a19800, 0xc1a19bff, REGISTRY_RIPENCC }, // 193.161.152.0 - 193.161.155.255 { 0xc1a19c00, 0xc1a19dff, REGISTRY_RIPENCC }, // 193.161.156.0 - 193.161.157.255 { 0xc1a19e00, 0xc1a1c3ff, REGISTRY_RIPENCC }, // 193.161.158.0 - 193.161.195.255 { 0xc1a1c400, 0xc1a1ceff, REGISTRY_RIPENCC }, // 193.161.196.0 - 193.161.206.255 { 0xc1a1cf00, 0xc1a1d3ff, REGISTRY_RIPENCC }, // 193.161.207.0 - 193.161.211.255 { 0xc1a1d400, 0xc1a1d7ff, REGISTRY_RIPENCC }, // 193.161.212.0 - 193.161.215.255 { 0xc1a1d800, 0xc1a1dbff, REGISTRY_RIPENCC }, // 193.161.216.0 - 193.161.219.255 { 0xc1a1dc00, 0xc1a1dfff, REGISTRY_RIPENCC }, // 193.161.220.0 - 193.161.223.255 { 0xc1a1e000, 0xc1a1f4ff, REGISTRY_RIPENCC }, // 193.161.224.0 - 193.161.244.255 { 0xc1a1f500, 0xc1a1f7ff, REGISTRY_RIPENCC }, // 193.161.245.0 - 193.161.247.255 { 0xc1a1f800, 0xc1a1fdff, REGISTRY_RIPENCC }, // 193.161.248.0 - 193.161.253.255 { 0xc1a1fe00, 0xc1a200ff, REGISTRY_RIPENCC }, // 193.161.254.0 - 193.162.0.255 { 0xc1a20100, 0xc1a201ff, REGISTRY_RIPENCC }, // 193.162.1.0 - 193.162.1.255 { 0xc1a20200, 0xc1a204ff, REGISTRY_RIPENCC }, // 193.162.2.0 - 193.162.4.255 { 0xc1a20500, 0xc1a205ff, REGISTRY_RIPENCC }, // 193.162.5.0 - 193.162.5.255 { 0xc1a20600, 0xc1a207ff, REGISTRY_RIPENCC }, // 193.162.6.0 - 193.162.7.255 { 0xc1a20800, 0xc1a20cff, REGISTRY_RIPENCC }, // 193.162.8.0 - 193.162.12.255 { 0xc1a20d00, 0xc1a20fff, REGISTRY_RIPENCC }, // 193.162.13.0 - 193.162.15.255 { 0xc1a21000, 0xc1a21bff, REGISTRY_RIPENCC }, // 193.162.16.0 - 193.162.27.255 { 0xc1a21c00, 0xc1a221ff, REGISTRY_RIPENCC }, // 193.162.28.0 - 193.162.33.255 { 0xc1a22200, 0xc1a222ff, REGISTRY_RIPENCC }, // 193.162.34.0 - 193.162.34.255 { 0xc1a22300, 0xc1a22fff, REGISTRY_RIPENCC }, // 193.162.35.0 - 193.162.47.255 { 0xc1a23000, 0xc1a23fff, REGISTRY_RIPENCC }, // 193.162.48.0 - 193.162.63.255 { 0xc1a24000, 0xc1a249ff, REGISTRY_RIPENCC }, // 193.162.64.0 - 193.162.73.255 { 0xc1a24a00, 0xc1a24dff, REGISTRY_RIPENCC }, // 193.162.74.0 - 193.162.77.255 { 0xc1a24e00, 0xc1a265ff, REGISTRY_RIPENCC }, // 193.162.78.0 - 193.162.101.255 { 0xc1a26600, 0xc1a266ff, REGISTRY_RIPENCC }, // 193.162.102.0 - 193.162.102.255 { 0xc1a26700, 0xc1a26bff, REGISTRY_RIPENCC }, // 193.162.103.0 - 193.162.107.255 { 0xc1a26c00, 0xc1a27fff, REGISTRY_RIPENCC }, // 193.162.108.0 - 193.162.127.255 { 0xc1a28000, 0xc1a28cff, REGISTRY_RIPENCC }, // 193.162.128.0 - 193.162.140.255 { 0xc1a28d00, 0xc1a28eff, REGISTRY_RIPENCC }, // 193.162.141.0 - 193.162.142.255 { 0xc1a28f00, 0xc1a2a7ff, REGISTRY_RIPENCC }, // 193.162.143.0 - 193.162.167.255 { 0xc1a2a800, 0xc1a2dfff, REGISTRY_RIPENCC }, // 193.162.168.0 - 193.162.223.255 { 0xc1a2e000, 0xc1a2fbff, REGISTRY_RIPENCC }, // 193.162.224.0 - 193.162.251.255 { 0xc1a2fc00, 0xc1a2fdff, REGISTRY_RIPENCC }, // 193.162.252.0 - 193.162.253.255 { 0xc1a2fe00, 0xc1a2feff, REGISTRY_RIPENCC }, // 193.162.254.0 - 193.162.254.255 { 0xc1a2ff00, 0xc1a301ff, REGISTRY_RIPENCC }, // 193.162.255.0 - 193.163.1.255 { 0xc1a30200, 0xc1a307ff, REGISTRY_RIPENCC }, // 193.163.2.0 - 193.163.7.255 { 0xc1a30800, 0xc1a308ff, REGISTRY_RIPENCC }, // 193.163.8.0 - 193.163.8.255 { 0xc1a30900, 0xc1a31fff, REGISTRY_RIPENCC }, // 193.163.9.0 - 193.163.31.255 { 0xc1a32000, 0xc1a320ff, REGISTRY_RIPENCC }, // 193.163.32.0 - 193.163.32.255 { 0xc1a32100, 0xc1a323ff, REGISTRY_RIPENCC }, // 193.163.33.0 - 193.163.35.255 { 0xc1a32400, 0xc1a32cff, REGISTRY_RIPENCC }, // 193.163.36.0 - 193.163.44.255 { 0xc1a32d00, 0xc1a32dff, REGISTRY_RIPENCC }, // 193.163.45.0 - 193.163.45.255 { 0xc1a32e00, 0xc1a32eff, REGISTRY_RIPENCC }, // 193.163.46.0 - 193.163.46.255 { 0xc1a32f00, 0xc1a331ff, REGISTRY_RIPENCC }, // 193.163.47.0 - 193.163.49.255 { 0xc1a33200, 0xc1a333ff, REGISTRY_RIPENCC }, // 193.163.50.0 - 193.163.51.255 { 0xc1a33400, 0xc1a337ff, REGISTRY_RIPENCC }, // 193.163.52.0 - 193.163.55.255 { 0xc1a33800, 0xc1a344ff, REGISTRY_RIPENCC }, // 193.163.56.0 - 193.163.68.255 { 0xc1a34500, 0xc1a34dff, REGISTRY_RIPENCC }, // 193.163.69.0 - 193.163.77.255 { 0xc1a34e00, 0xc1a353ff, REGISTRY_RIPENCC }, // 193.163.78.0 - 193.163.83.255 { 0xc1a35400, 0xc1a35fff, REGISTRY_RIPENCC }, // 193.163.84.0 - 193.163.95.255 { 0xc1a36000, 0xc1a361ff, REGISTRY_RIPENCC }, // 193.163.96.0 - 193.163.97.255 { 0xc1a36200, 0xc1a363ff, REGISTRY_RIPENCC }, // 193.163.98.0 - 193.163.99.255 { 0xc1a36400, 0xc1a364ff, REGISTRY_RIPENCC }, // 193.163.100.0 - 193.163.100.255 { 0xc1a36500, 0xc1a365ff, REGISTRY_RIPENCC }, // 193.163.101.0 - 193.163.101.255 { 0xc1a36600, 0xc1a368ff, REGISTRY_RIPENCC }, // 193.163.102.0 - 193.163.104.255 { 0xc1a36900, 0xc1a369ff, REGISTRY_RIPENCC }, // 193.163.105.0 - 193.163.105.255 { 0xc1a36a00, 0xc1a36bff, REGISTRY_RIPENCC }, // 193.163.106.0 - 193.163.107.255 { 0xc1a36c00, 0xc1a36dff, REGISTRY_RIPENCC }, // 193.163.108.0 - 193.163.109.255 { 0xc1a36e00, 0xc1a36fff, REGISTRY_RIPENCC }, // 193.163.110.0 - 193.163.111.255 { 0xc1a37000, 0xc1a371ff, REGISTRY_RIPENCC }, // 193.163.112.0 - 193.163.113.255 { 0xc1a37200, 0xc1a373ff, REGISTRY_RIPENCC }, // 193.163.114.0 - 193.163.115.255 { 0xc1a37400, 0xc1a375ff, REGISTRY_RIPENCC }, // 193.163.116.0 - 193.163.117.255 { 0xc1a37600, 0xc1a37bff, REGISTRY_RIPENCC }, // 193.163.118.0 - 193.163.123.255 { 0xc1a37c00, 0xc1a381ff, REGISTRY_RIPENCC }, // 193.163.124.0 - 193.163.129.255 { 0xc1a38200, 0xc1a38fff, REGISTRY_RIPENCC }, // 193.163.130.0 - 193.163.143.255 { 0xc1a39000, 0xc1a39bff, REGISTRY_RIPENCC }, // 193.163.144.0 - 193.163.155.255 { 0xc1a39c00, 0xc1a39dff, REGISTRY_RIPENCC }, // 193.163.156.0 - 193.163.157.255 { 0xc1a39e00, 0xc1a3abff, REGISTRY_RIPENCC }, // 193.163.158.0 - 193.163.171.255 { 0xc1a3ac00, 0xc1a3aeff, REGISTRY_RIPENCC }, // 193.163.172.0 - 193.163.174.255 { 0xc1a3af00, 0xc1a3b3ff, REGISTRY_RIPENCC }, // 193.163.175.0 - 193.163.179.255 { 0xc1a3b400, 0xc1a3b4ff, REGISTRY_RIPENCC }, // 193.163.180.0 - 193.163.180.255 { 0xc1a3b500, 0xc1a3bbff, REGISTRY_RIPENCC }, // 193.163.181.0 - 193.163.187.255 { 0xc1a3bc00, 0xc1a3bdff, REGISTRY_RIPENCC }, // 193.163.188.0 - 193.163.189.255 { 0xc1a3be00, 0xc1a3cfff, REGISTRY_RIPENCC }, // 193.163.190.0 - 193.163.207.255 { 0xc1a3d000, 0xc1a3d7ff, REGISTRY_RIPENCC }, // 193.163.208.0 - 193.163.215.255 { 0xc1a3d800, 0xc1a3dbff, REGISTRY_RIPENCC }, // 193.163.216.0 - 193.163.219.255 { 0xc1a3dc00, 0xc1a400ff, REGISTRY_RIPENCC }, // 193.163.220.0 - 193.164.0.255 { 0xc1a40100, 0xc1a407ff, REGISTRY_RIPENCC }, // 193.164.1.0 - 193.164.7.255 { 0xc1a40800, 0xc1a409ff, REGISTRY_RIPENCC }, // 193.164.8.0 - 193.164.9.255 { 0xc1a40a00, 0xc1a40aff, REGISTRY_RIPENCC }, // 193.164.10.0 - 193.164.10.255 { 0xc1a40b00, 0xc1a40bff, REGISTRY_RIPENCC }, // 193.164.11.0 - 193.164.11.255 { 0xc1a40c00, 0xc1a40cff, REGISTRY_RIPENCC }, // 193.164.12.0 - 193.164.12.255 { 0xc1a40d00, 0xc1a40fff, REGISTRY_RIPENCC }, // 193.164.13.0 - 193.164.15.255 { 0xc1a41000, 0xc1a41fff, REGISTRY_RIPENCC }, // 193.164.16.0 - 193.164.31.255 { 0xc1a42000, 0xc1a45fff, REGISTRY_RIPENCC }, // 193.164.32.0 - 193.164.95.255 { 0xc1a46000, 0xc1a480ff, REGISTRY_RIPENCC }, // 193.164.96.0 - 193.164.128.255 { 0xc1a48100, 0xc1a482ff, REGISTRY_RIPENCC }, // 193.164.129.0 - 193.164.130.255 { 0xc1a48300, 0xc1a487ff, REGISTRY_RIPENCC }, // 193.164.131.0 - 193.164.135.255 { 0xc1a48800, 0xc1a48eff, REGISTRY_RIPENCC }, // 193.164.136.0 - 193.164.142.255 { 0xc1a48f00, 0xc1a48fff, REGISTRY_RIPENCC }, // 193.164.143.0 - 193.164.143.255 { 0xc1a49000, 0xc1a492ff, REGISTRY_RIPENCC }, // 193.164.144.0 - 193.164.146.255 { 0xc1a49300, 0xc1a493ff, REGISTRY_RIPENCC }, // 193.164.147.0 - 193.164.147.255 { 0xc1a49400, 0xc1a494ff, REGISTRY_RIPENCC }, // 193.164.148.0 - 193.164.148.255 { 0xc1a49500, 0xc1a496ff, REGISTRY_RIPENCC }, // 193.164.149.0 - 193.164.150.255 { 0xc1a49700, 0xc1a497ff, REGISTRY_RIPENCC }, // 193.164.151.0 - 193.164.151.255 { 0xc1a49800, 0xc1a498ff, REGISTRY_RIPENCC }, // 193.164.152.0 - 193.164.152.255 { 0xc1a49900, 0xc1a49fff, REGISTRY_RIPENCC }, // 193.164.153.0 - 193.164.159.255 { 0xc1a4a000, 0xc1a4c1ff, REGISTRY_RIPENCC }, // 193.164.160.0 - 193.164.193.255 { 0xc1a4c200, 0xc1a4c5ff, REGISTRY_RIPENCC }, // 193.164.194.0 - 193.164.197.255 { 0xc1a4c600, 0xc1a4c7ff, REGISTRY_RIPENCC }, // 193.164.198.0 - 193.164.199.255 { 0xc1a4c800, 0xc1a4cfff, REGISTRY_RIPENCC }, // 193.164.200.0 - 193.164.207.255 { 0xc1a4d000, 0xc1a4d1ff, REGISTRY_RIPENCC }, // 193.164.208.0 - 193.164.209.255 { 0xc1a4d200, 0xc1a4ddff, REGISTRY_RIPENCC }, // 193.164.210.0 - 193.164.221.255 { 0xc1a4de00, 0xc1a4dfff, REGISTRY_RIPENCC }, // 193.164.222.0 - 193.164.223.255 { 0xc1a4e000, 0xc1a4e85f, REGISTRY_RIPENCC }, // 193.164.224.0 - 193.164.232.95 { 0xc1a4e8a0, 0xc1a4e8df, REGISTRY_RIPENCC }, // 193.164.232.160 - 193.164.232.223 { 0xc1a4e900, 0xc1a4f7ff, REGISTRY_RIPENCC }, // 193.164.233.0 - 193.164.247.255 { 0xc1a4f800, 0xc1a4fbff, REGISTRY_RIPENCC }, // 193.164.248.0 - 193.164.251.255 { 0xc1a4fc00, 0xc1a4ffff, REGISTRY_RIPENCC }, // 193.164.252.0 - 193.164.255.255 { 0xc1a50000, 0xc1a7ffff, REGISTRY_RIPENCC }, // 193.165.0.0 - 193.167.255.255 { 0xc1a80000, 0xc1a802ff, REGISTRY_RIPENCC }, // 193.168.0.0 - 193.168.2.255 { 0xc1a80300, 0xc1a807ff, REGISTRY_RIPENCC }, // 193.168.3.0 - 193.168.7.255 { 0xc1a80800, 0xc1a82dff, REGISTRY_RIPENCC }, // 193.168.8.0 - 193.168.45.255 { 0xc1a82e00, 0xc1a831ff, REGISTRY_RIPENCC }, // 193.168.46.0 - 193.168.49.255 { 0xc1a83200, 0xc1a832ff, REGISTRY_RIPENCC }, // 193.168.50.0 - 193.168.50.255 { 0xc1a83300, 0xc1a835ff, REGISTRY_RIPENCC }, // 193.168.51.0 - 193.168.53.255 { 0xc1a83600, 0xc1a836ff, REGISTRY_RIPENCC }, // 193.168.54.0 - 193.168.54.255 { 0xc1a83700, 0xc1a839ff, REGISTRY_RIPENCC }, // 193.168.55.0 - 193.168.57.255 { 0xc1a83a00, 0xc1a83fff, REGISTRY_RIPENCC }, // 193.168.58.0 - 193.168.63.255 { 0xc1a84000, 0xc1a8ffff, REGISTRY_RIPENCC }, // 193.168.64.0 - 193.168.255.255 { 0xc1a90000, 0xc1a919ff, REGISTRY_RIPENCC }, // 193.169.0.0 - 193.169.25.255 { 0xc1a91a00, 0xc1a91bff, REGISTRY_RIPENCC }, // 193.169.26.0 - 193.169.27.255 { 0xc1a91c00, 0xc1a937ff, REGISTRY_RIPENCC }, // 193.169.28.0 - 193.169.55.255 { 0xc1a93800, 0xc1a93bff, REGISTRY_RIPENCC }, // 193.169.56.0 - 193.169.59.255 { 0xc1a93c00, 0xc1a95bff, REGISTRY_RIPENCC }, // 193.169.60.0 - 193.169.91.255 { 0xc1a95c00, 0xc1a95dff, REGISTRY_RIPENCC }, // 193.169.92.0 - 193.169.93.255 { 0xc1a95e00, 0xc1a967ff, REGISTRY_RIPENCC }, // 193.169.94.0 - 193.169.103.255 { 0xc1a96800, 0xc1a96bff, REGISTRY_RIPENCC }, // 193.169.104.0 - 193.169.107.255 { 0xc1a96c00, 0xc1a9a1ff, REGISTRY_RIPENCC }, // 193.169.108.0 - 193.169.161.255 { 0xc1a9a200, 0xc1a9a3ff, REGISTRY_RIPENCC }, // 193.169.162.0 - 193.169.163.255 { 0xc1a9a400, 0xc1a9a9ff, REGISTRY_RIPENCC }, // 193.169.164.0 - 193.169.169.255 { 0xc1a9aa00, 0xc1a9abff, REGISTRY_RIPENCC }, // 193.169.170.0 - 193.169.171.255 { 0xc1a9ac00, 0xc1a9adff, REGISTRY_RIPENCC }, // 193.169.172.0 - 193.169.173.255 { 0xc1a9ae00, 0xc1a9afff, REGISTRY_RIPENCC }, // 193.169.174.0 - 193.169.175.255 { 0xc1a9b000, 0xc1a9bfff, REGISTRY_RIPENCC }, // 193.169.176.0 - 193.169.191.255 { 0xc1a9c000, 0xc1a9c1ff, REGISTRY_RIPENCC }, // 193.169.192.0 - 193.169.193.255 { 0xc1a9c200, 0xc1a9c7ff, REGISTRY_RIPENCC }, // 193.169.194.0 - 193.169.199.255 { 0xc1a9c800, 0xc1a9c9ff, REGISTRY_RIPENCC }, // 193.169.200.0 - 193.169.201.255 { 0xc1a9ca00, 0xc1a9cdff, REGISTRY_RIPENCC }, // 193.169.202.0 - 193.169.205.255 { 0xc1a9ce00, 0xc1a9d1ff, REGISTRY_RIPENCC }, // 193.169.206.0 - 193.169.209.255 { 0xc1a9d200, 0xc1a9d3ff, REGISTRY_RIPENCC }, // 193.169.210.0 - 193.169.211.255 { 0xc1a9d400, 0xc1a9d5ff, REGISTRY_RIPENCC }, // 193.169.212.0 - 193.169.213.255 { 0xc1a9d600, 0xc1a9d9ff, REGISTRY_RIPENCC }, // 193.169.214.0 - 193.169.217.255 { 0xc1a9da00, 0xc1a9dbff, REGISTRY_RIPENCC }, // 193.169.218.0 - 193.169.219.255 { 0xc1a9dc00, 0xc1a9edff, REGISTRY_RIPENCC }, // 193.169.220.0 - 193.169.237.255 { 0xc1a9ee00, 0xc1a9efff, REGISTRY_RIPENCC }, // 193.169.238.0 - 193.169.239.255 { 0xc1a9f000, 0xc1a9f9ff, REGISTRY_RIPENCC }, // 193.169.240.0 - 193.169.249.255 { 0xc1a9fa00, 0xc1afffff, REGISTRY_RIPENCC }, // 193.169.250.0 - 193.175.255.255 { 0xc1b00000, 0xc1b000ff, REGISTRY_RIPENCC }, // 193.176.0.0 - 193.176.0.255 { 0xc1b00100, 0xc1b002ff, REGISTRY_RIPENCC }, // 193.176.1.0 - 193.176.2.255 { 0xc1b00300, 0xc1b003ff, REGISTRY_RIPENCC }, // 193.176.3.0 - 193.176.3.255 { 0xc1b00400, 0xc1b004ff, REGISTRY_RIPENCC }, // 193.176.4.0 - 193.176.4.255 { 0xc1b00500, 0xc1b00fff, REGISTRY_RIPENCC }, // 193.176.5.0 - 193.176.15.255 { 0xc1b01000, 0xc1b01fff, REGISTRY_RIPENCC }, // 193.176.16.0 - 193.176.31.255 { 0xc1b02000, 0xc1b027ff, REGISTRY_RIPENCC }, // 193.176.32.0 - 193.176.39.255 { 0xc1b02800, 0xc1b02cff, REGISTRY_RIPENCC }, // 193.176.40.0 - 193.176.44.255 { 0xc1b02d00, 0xc1b035ff, REGISTRY_RIPENCC }, // 193.176.45.0 - 193.176.53.255 { 0xc1b03600, 0xc1b037ff, REGISTRY_RIPENCC }, // 193.176.54.0 - 193.176.55.255 { 0xc1b03800, 0xc1b03dff, REGISTRY_RIPENCC }, // 193.176.56.0 - 193.176.61.255 { 0xc1b03e00, 0xc1b03eff, REGISTRY_RIPENCC }, // 193.176.62.0 - 193.176.62.255 { 0xc1b03f00, 0xc1b03fff, REGISTRY_RIPENCC }, // 193.176.63.0 - 193.176.63.255 { 0xc1b04000, 0xc1b060ff, REGISTRY_RIPENCC }, // 193.176.64.0 - 193.176.96.255 { 0xc1b06800, 0xc1b06fff, REGISTRY_RIPENCC }, // 193.176.104.0 - 193.176.111.255 { 0xc1b07000, 0xc1b081ff, REGISTRY_RIPENCC }, // 193.176.112.0 - 193.176.129.255 { 0xc1b08200, 0xc1b092ff, REGISTRY_RIPENCC }, // 193.176.130.0 - 193.176.146.255 { 0xc1b09300, 0xc1b093ff, REGISTRY_RIPENCC }, // 193.176.147.0 - 193.176.147.255 { 0xc1b09400, 0xc1b098ff, REGISTRY_RIPENCC }, // 193.176.148.0 - 193.176.152.255 { 0xc1b09900, 0xc1b09eff, REGISTRY_RIPENCC }, // 193.176.153.0 - 193.176.158.255 { 0xc1b09f00, 0xc1b0b2ff, REGISTRY_RIPENCC }, // 193.176.159.0 - 193.176.178.255 { 0xc1b0b300, 0xc1b0beff, REGISTRY_RIPENCC }, // 193.176.179.0 - 193.176.190.255 { 0xc1b0bf00, 0xc1b0d1ff, REGISTRY_RIPENCC }, // 193.176.191.0 - 193.176.209.255 { 0xc1b0d200, 0xc1b0d7ff, REGISTRY_RIPENCC }, // 193.176.210.0 - 193.176.215.255 { 0xc1b0d800, 0xc1b0dbff, REGISTRY_RIPENCC }, // 193.176.216.0 - 193.176.219.255 { 0xc1b0dc00, 0xc1b0dcff, REGISTRY_RIPENCC }, // 193.176.220.0 - 193.176.220.255 { 0xc1b0dd00, 0xc1b0e2ff, REGISTRY_RIPENCC }, // 193.176.221.0 - 193.176.226.255 { 0xc1b0e300, 0xc1b0e7ff, REGISTRY_RIPENCC }, // 193.176.227.0 - 193.176.231.255 { 0xc1b0e900, 0xc1b0e9ff, REGISTRY_RIPENCC }, // 193.176.233.0 - 193.176.233.255 { 0xc1b0ea00, 0xc1b0ecff, REGISTRY_RIPENCC }, // 193.176.234.0 - 193.176.236.255 { 0xc1b0ed00, 0xc1b0f6ff, REGISTRY_RIPENCC }, // 193.176.237.0 - 193.176.246.255 { 0xc1b0f700, 0xc1b0fbff, REGISTRY_RIPENCC }, // 193.176.247.0 - 193.176.251.255 { 0xc1b0fc00, 0xc1b0fcff, REGISTRY_RIPENCC }, // 193.176.252.0 - 193.176.252.255 { 0xc1b0fd00, 0xc1b0fdff, REGISTRY_RIPENCC }, // 193.176.253.0 - 193.176.253.255 { 0xc1b0fe00, 0xc1b0feff, REGISTRY_RIPENCC }, // 193.176.254.0 - 193.176.254.255 { 0xc1b0ff00, 0xc1b0ffff, REGISTRY_RIPENCC }, // 193.176.255.0 - 193.176.255.255 { 0xc1b10000, 0xc1b100ff, REGISTRY_RIPENCC }, // 193.177.0.0 - 193.177.0.255 { 0xc1b10100, 0xc1b17fff, REGISTRY_RIPENCC }, // 193.177.1.0 - 193.177.127.255 { 0xc1b18000, 0xc1b187ff, REGISTRY_RIPENCC }, // 193.177.128.0 - 193.177.135.255 { 0xc1b18800, 0xc1b193ff, REGISTRY_RIPENCC }, // 193.177.136.0 - 193.177.147.255 { 0xc1b19400, 0xc1b197ff, REGISTRY_RIPENCC }, // 193.177.148.0 - 193.177.151.255 { 0xc1b19800, 0xc1b1a1ff, REGISTRY_RIPENCC }, // 193.177.152.0 - 193.177.161.255 { 0xc1b1a200, 0xc1b1a2ff, REGISTRY_RIPENCC }, // 193.177.162.0 - 193.177.162.255 { 0xc1b1a300, 0xc1b1a3ff, REGISTRY_RIPENCC }, // 193.177.163.0 - 193.177.163.255 { 0xc1b1a400, 0xc1b1a5ff, REGISTRY_RIPENCC }, // 193.177.164.0 - 193.177.165.255 { 0xc1b1a600, 0xc1b1b5ff, REGISTRY_RIPENCC }, // 193.177.166.0 - 193.177.181.255 { 0xc1b1b600, 0xc1b1b6ff, REGISTRY_RIPENCC }, // 193.177.182.0 - 193.177.182.255 { 0xc1b1b700, 0xc1b1bbff, REGISTRY_RIPENCC }, // 193.177.183.0 - 193.177.187.255 { 0xc1b1bc00, 0xc1b1bfff, REGISTRY_RIPENCC }, // 193.177.188.0 - 193.177.191.255 { 0xc1b1c000, 0xc1b1cfff, REGISTRY_RIPENCC }, // 193.177.192.0 - 193.177.207.255 { 0xc1b1d000, 0xc1b1dfff, REGISTRY_RIPENCC }, // 193.177.208.0 - 193.177.223.255 { 0xc1b1e000, 0xc1b1ffff, REGISTRY_RIPENCC }, // 193.177.224.0 - 193.177.255.255 { 0xc1b20000, 0xc1b200ff, REGISTRY_RIPENCC }, // 193.178.0.0 - 193.178.0.255 { 0xc1b20100, 0xc1b21eff, REGISTRY_RIPENCC }, // 193.178.1.0 - 193.178.30.255 { 0xc1b21f00, 0xc1b21fff, REGISTRY_RIPENCC }, // 193.178.31.0 - 193.178.31.255 { 0xc1b22000, 0xc1b220ff, REGISTRY_RIPENCC }, // 193.178.32.0 - 193.178.32.255 { 0xc1b22100, 0xc1b221ff, REGISTRY_RIPENCC }, // 193.178.33.0 - 193.178.33.255 { 0xc1b22200, 0xc1b223ff, REGISTRY_RIPENCC }, // 193.178.34.0 - 193.178.35.255 { 0xc1b22400, 0xc1b227ff, REGISTRY_RIPENCC }, // 193.178.36.0 - 193.178.39.255 { 0xc1b22800, 0xc1b229ff, REGISTRY_RIPENCC }, // 193.178.40.0 - 193.178.41.255 { 0xc1b22a00, 0xc1b23bff, REGISTRY_RIPENCC }, // 193.178.42.0 - 193.178.59.255 { 0xc1b23c00, 0xc1b23fff, REGISTRY_RIPENCC }, // 193.178.60.0 - 193.178.63.255 { 0xc1b24000, 0xc1b273ff, REGISTRY_RIPENCC }, // 193.178.64.0 - 193.178.115.255 { 0xc1b27400, 0xc1b277ff, REGISTRY_RIPENCC }, // 193.178.116.0 - 193.178.119.255 { 0xc1b27800, 0xc1b280ff, REGISTRY_RIPENCC }, // 193.178.120.0 - 193.178.128.255 { 0xc1b28100, 0xc1b285ff, REGISTRY_RIPENCC }, // 193.178.129.0 - 193.178.133.255 { 0xc1b28600, 0xc1b286ff, REGISTRY_RIPENCC }, // 193.178.134.0 - 193.178.134.255 { 0xc1b28700, 0xc1b288ff, REGISTRY_RIPENCC }, // 193.178.135.0 - 193.178.136.255 { 0xc1b28900, 0xc1b289ff, REGISTRY_RIPENCC }, // 193.178.137.0 - 193.178.137.255 { 0xc1b28a00, 0xc1b28aff, REGISTRY_RIPENCC }, // 193.178.138.0 - 193.178.138.255 { 0xc1b28b00, 0xc1b28bff, REGISTRY_RIPENCC }, // 193.178.139.0 - 193.178.139.255 { 0xc1b28c00, 0xc1b28dff, REGISTRY_RIPENCC }, // 193.178.140.0 - 193.178.141.255 { 0xc1b28e00, 0xc1b28eff, REGISTRY_RIPENCC }, // 193.178.142.0 - 193.178.142.255 { 0xc1b28f00, 0xc1b2a8ff, REGISTRY_RIPENCC }, // 193.178.143.0 - 193.178.168.255 { 0xc1b2a900, 0xc1b2aaff, REGISTRY_RIPENCC }, // 193.178.169.0 - 193.178.170.255 { 0xc1b2ab00, 0xc1b2abff, REGISTRY_RIPENCC }, // 193.178.171.0 - 193.178.171.255 { 0xc1b2ac00, 0xc1b2acff, REGISTRY_RIPENCC }, // 193.178.172.0 - 193.178.172.255 { 0xc1b2ad00, 0xc1b2adff, REGISTRY_RIPENCC }, // 193.178.173.0 - 193.178.173.255 { 0xc1b2ae00, 0xc1b2aeff, REGISTRY_RIPENCC }, // 193.178.174.0 - 193.178.174.255 { 0xc1b2af00, 0xc1b2beff, REGISTRY_RIPENCC }, // 193.178.175.0 - 193.178.190.255 { 0xc1b2bf00, 0xc1b2bfff, REGISTRY_RIPENCC }, // 193.178.191.0 - 193.178.191.255 { 0xc1b2c000, 0xc1b2c3ff, REGISTRY_RIPENCC }, // 193.178.192.0 - 193.178.195.255 { 0xc1b2c400, 0xc1b2c7ff, REGISTRY_RIPENCC }, // 193.178.196.0 - 193.178.199.255 { 0xc1b2c800, 0xc1b2d1ff, REGISTRY_RIPENCC }, // 193.178.200.0 - 193.178.209.255 { 0xc1b2d200, 0xc1b2d2ff, REGISTRY_RIPENCC }, // 193.178.210.0 - 193.178.210.255 { 0xc1b2d300, 0xc1b2d3ff, REGISTRY_RIPENCC }, // 193.178.211.0 - 193.178.211.255 { 0xc1b2d400, 0xc1b2d4ff, REGISTRY_RIPENCC }, // 193.178.212.0 - 193.178.212.255 { 0xc1b2d500, 0xc1b2d6ff, REGISTRY_RIPENCC }, // 193.178.213.0 - 193.178.214.255 { 0xc1b2d700, 0xc1b2d7ff, REGISTRY_RIPENCC }, // 193.178.215.0 - 193.178.215.255 { 0xc1b2d800, 0xc1b2d9ff, REGISTRY_RIPENCC }, // 193.178.216.0 - 193.178.217.255 { 0xc1b2da00, 0xc1b2daff, REGISTRY_RIPENCC }, // 193.178.218.0 - 193.178.218.255 { 0xc1b2db00, 0xc1b2dbff, REGISTRY_RIPENCC }, // 193.178.219.0 - 193.178.219.255 { 0xc1b2dc00, 0xc1b2ddff, REGISTRY_RIPENCC }, // 193.178.220.0 - 193.178.221.255 { 0xc1b2de00, 0xc1b2dfff, REGISTRY_RIPENCC }, // 193.178.222.0 - 193.178.223.255 { 0xc1b2e000, 0xc1b2e1ff, REGISTRY_RIPENCC }, // 193.178.224.0 - 193.178.225.255 { 0xc1b2e200, 0xc1b2e5ff, REGISTRY_RIPENCC }, // 193.178.226.0 - 193.178.229.255 { 0xc1b2e600, 0xc1b2e7ff, REGISTRY_RIPENCC }, // 193.178.230.0 - 193.178.231.255 { 0xc1b2e800, 0xc1b2f3ff, REGISTRY_RIPENCC }, // 193.178.232.0 - 193.178.243.255 { 0xc1b2f400, 0xc1b2f7ff, REGISTRY_RIPENCC }, // 193.178.244.0 - 193.178.247.255 { 0xc1b2f800, 0xc1b2ffff, REGISTRY_RIPENCC }, // 193.178.248.0 - 193.178.255.255 { 0xc1b30000, 0xc1b9ffff, REGISTRY_RIPENCC }, // 193.179.0.0 - 193.185.255.255 { 0xc1ba0000, 0xc1ba00ff, REGISTRY_RIPENCC }, // 193.186.0.0 - 193.186.0.255 { 0xc1ba0100, 0xc1ba01ff, REGISTRY_RIPENCC }, // 193.186.1.0 - 193.186.1.255 { 0xc1ba0200, 0xc1ba0aff, REGISTRY_RIPENCC }, // 193.186.2.0 - 193.186.10.255 { 0xc1ba0b00, 0xc1ba0bff, REGISTRY_RIPENCC }, // 193.186.11.0 - 193.186.11.255 { 0xc1ba0c00, 0xc1ba0dff, REGISTRY_RIPENCC }, // 193.186.12.0 - 193.186.13.255 { 0xc1ba0e00, 0xc1ba0eff, REGISTRY_RIPENCC }, // 193.186.14.0 - 193.186.14.255 { 0xc1ba0f00, 0xc1ba1fff, REGISTRY_RIPENCC }, // 193.186.15.0 - 193.186.31.255 { 0xc1ba2000, 0xc1ba20ff, REGISTRY_RIPENCC }, // 193.186.32.0 - 193.186.32.255 { 0xc1ba2100, 0xc1ba47ff, REGISTRY_RIPENCC }, // 193.186.33.0 - 193.186.71.255 { 0xc1ba4800, 0xc1ba57ff, REGISTRY_RIPENCC }, // 193.186.72.0 - 193.186.87.255 { 0xc1ba5800, 0xc1ba9fff, REGISTRY_RIPENCC }, // 193.186.88.0 - 193.186.159.255 { 0xc1baa000, 0xc1baa0ff, REGISTRY_RIPENCC }, // 193.186.160.0 - 193.186.160.255 { 0xc1baa100, 0xc1babfff, REGISTRY_RIPENCC }, // 193.186.161.0 - 193.186.191.255 { 0xc1bac000, 0xc1bacfff, REGISTRY_RIPENCC }, // 193.186.192.0 - 193.186.207.255 { 0xc1bad000, 0xc1bad2ff, REGISTRY_RIPENCC }, // 193.186.208.0 - 193.186.210.255 { 0xc1bad300, 0xc1bad3ff, REGISTRY_RIPENCC }, // 193.186.211.0 - 193.186.211.255 { 0xc1bad400, 0xc1bad6ff, REGISTRY_RIPENCC }, // 193.186.212.0 - 193.186.214.255 { 0xc1bad700, 0xc1bad7ff, REGISTRY_RIPENCC }, // 193.186.215.0 - 193.186.215.255 { 0xc1bad800, 0xc1bafcff, REGISTRY_RIPENCC }, // 193.186.216.0 - 193.186.252.255 { 0xc1bafd00, 0xc1bafdff, REGISTRY_ARIN }, // 193.186.253.0 - 193.186.253.255 { 0xc1bafe00, 0xc1bb00ff, REGISTRY_RIPENCC }, // 193.186.254.0 - 193.187.0.255 { 0xc1bb0100, 0xc1bb01ff, REGISTRY_ARIN }, // 193.187.1.0 - 193.187.1.255 { 0xc1bb0200, 0xc1bb53ff, REGISTRY_RIPENCC }, // 193.187.2.0 - 193.187.83.255 { 0xc1bb5400, 0xc1bbc3ff, REGISTRY_RIPENCC }, // 193.187.84.0 - 193.187.195.255 { 0xc1bbc400, 0xc1bbfeff, REGISTRY_RIPENCC }, // 193.187.196.0 - 193.187.254.255 { 0xc1bbff00, 0xc1bbffff, REGISTRY_RIPENCC }, // 193.187.255.0 - 193.187.255.255 { 0xc1bc0000, 0xc1bc00ff, REGISTRY_RIPENCC }, // 193.188.0.0 - 193.188.0.255 { 0xc1bc0100, 0xc1bc01ff, REGISTRY_ARIN }, // 193.188.1.0 - 193.188.1.255 { 0xc1bc0200, 0xc1bc03ff, REGISTRY_RIPENCC }, // 193.188.2.0 - 193.188.3.255 { 0xc1bc0400, 0xc1bc06ff, REGISTRY_RIPENCC }, // 193.188.4.0 - 193.188.6.255 { 0xc1bc0800, 0xc1bc0bff, REGISTRY_RIPENCC }, // 193.188.8.0 - 193.188.11.255 { 0xc1bc0c00, 0xc1bc0dff, REGISTRY_RIPENCC }, // 193.188.12.0 - 193.188.13.255 { 0xc1bc0e00, 0xc1bc1fff, REGISTRY_RIPENCC }, // 193.188.14.0 - 193.188.31.255 { 0xc1bc2000, 0xc1bc3fff, REGISTRY_RIPENCC }, // 193.188.32.0 - 193.188.63.255 { 0xc1bc4000, 0xc1bc7fff, REGISTRY_RIPENCC }, // 193.188.64.0 - 193.188.127.255 { 0xc1bc8000, 0xc1bc867f, REGISTRY_RIPENCC }, // 193.188.128.0 - 193.188.134.127 { 0xc1bc8690, 0xc1bc86c7, REGISTRY_RIPENCC }, // 193.188.134.144 - 193.188.134.199 { 0xc1bc8700, 0xc1bc89ff, REGISTRY_RIPENCC }, // 193.188.135.0 - 193.188.137.255 { 0xc1bc8a00, 0xc1bc8bff, REGISTRY_RIPENCC }, // 193.188.138.0 - 193.188.139.255 { 0xc1bc8c00, 0xc1bcc2ff, REGISTRY_RIPENCC }, // 193.188.140.0 - 193.188.194.255 { 0xc1bcc300, 0xc1bcc3ff, REGISTRY_ARIN }, // 193.188.195.0 - 193.188.195.255 { 0xc1bcc400, 0xc1bcc7ff, REGISTRY_RIPENCC }, // 193.188.196.0 - 193.188.199.255 { 0xc1bcc800, 0xc1bcc8ff, REGISTRY_RIPENCC }, // 193.188.200.0 - 193.188.200.255 { 0xc1bcc900, 0xc1bcfaff, REGISTRY_RIPENCC }, // 193.188.201.0 - 193.188.250.255 { 0xc1bcfb00, 0xc1bcfcff, REGISTRY_RIPENCC }, // 193.188.251.0 - 193.188.252.255 { 0xc1bcfd00, 0xc1bcffff, REGISTRY_RIPENCC }, // 193.188.253.0 - 193.188.255.255 { 0xc1bd0000, 0xc1bd3fff, REGISTRY_AFRINIC }, // 193.189.0.0 - 193.189.63.255 { 0xc1bd4200, 0xc1bd43ff, REGISTRY_RIPENCC }, // 193.189.66.0 - 193.189.67.255 { 0xc1bd4400, 0xc1bd45ff, REGISTRY_RIPENCC }, // 193.189.68.0 - 193.189.69.255 { 0xc1bd4600, 0xc1bd49ff, REGISTRY_RIPENCC }, // 193.189.70.0 - 193.189.73.255 { 0xc1bd4a00, 0xc1bd4bff, REGISTRY_RIPENCC }, // 193.189.74.0 - 193.189.75.255 { 0xc1bd4c00, 0xc1bd51ff, REGISTRY_RIPENCC }, // 193.189.76.0 - 193.189.81.255 { 0xc1bd5200, 0xc1bd55ff, REGISTRY_RIPENCC }, // 193.189.82.0 - 193.189.85.255 { 0xc1bd5600, 0xc1bd57ff, REGISTRY_RIPENCC }, // 193.189.86.0 - 193.189.87.255 { 0xc1bd5800, 0xc1bd5bff, REGISTRY_RIPENCC }, // 193.189.88.0 - 193.189.91.255 { 0xc1bd5c00, 0xc1bd69ff, REGISTRY_RIPENCC }, // 193.189.92.0 - 193.189.105.255 { 0xc1bd6a00, 0xc1bd6bff, REGISTRY_RIPENCC }, // 193.189.106.0 - 193.189.107.255 { 0xc1bd6c00, 0xc1bd75ff, REGISTRY_RIPENCC }, // 193.189.108.0 - 193.189.117.255 { 0xc1bd7600, 0xc1bd77ff, REGISTRY_RIPENCC }, // 193.189.118.0 - 193.189.119.255 { 0xc1bd7800, 0xc1bd7fff, REGISTRY_RIPENCC }, // 193.189.120.0 - 193.189.127.255 { 0xc1bd8100, 0xc1bd88ff, REGISTRY_RIPENCC }, // 193.189.129.0 - 193.189.136.255 { 0xc1bd8900, 0xc1bd89ff, REGISTRY_RIPENCC }, // 193.189.137.0 - 193.189.137.255 { 0xc1bd8a00, 0xc1bd8bff, REGISTRY_RIPENCC }, // 193.189.138.0 - 193.189.139.255 { 0xc1bd8c00, 0xc1bd8cff, REGISTRY_RIPENCC }, // 193.189.140.0 - 193.189.140.255 { 0xc1bd8d00, 0xc1bd8eff, REGISTRY_RIPENCC }, // 193.189.141.0 - 193.189.142.255 { 0xc1bd8f00, 0xc1bd8fff, REGISTRY_RIPENCC }, // 193.189.143.0 - 193.189.143.255 { 0xc1bd9000, 0xc1bd90ff, REGISTRY_RIPENCC }, // 193.189.144.0 - 193.189.144.255 { 0xc1bd9100, 0xc1bd91ff, REGISTRY_RIPENCC }, // 193.189.145.0 - 193.189.145.255 { 0xc1bd9200, 0xc1bd9fff, REGISTRY_RIPENCC }, // 193.189.146.0 - 193.189.159.255 { 0xc1bda000, 0xc1bfffff, REGISTRY_RIPENCC }, // 193.189.160.0 - 193.191.255.255 { 0xc1c00000, 0xc1c000ff, REGISTRY_RIPENCC }, // 193.192.0.0 - 193.192.0.255 { 0xc1c00100, 0xc1c003ff, REGISTRY_RIPENCC }, // 193.192.1.0 - 193.192.3.255 { 0xc1c00400, 0xc1c00bff, REGISTRY_RIPENCC }, // 193.192.4.0 - 193.192.11.255 { 0xc1c00c80, 0xc1c00eff, REGISTRY_RIPENCC }, // 193.192.12.128 - 193.192.14.255 { 0xc1c00f00, 0xc1c00fff, REGISTRY_RIPENCC }, // 193.192.15.0 - 193.192.15.255 { 0xc1c01000, 0xc1c023ff, REGISTRY_RIPENCC }, // 193.192.16.0 - 193.192.35.255 { 0xc1c02400, 0xc1c025ff, REGISTRY_RIPENCC }, // 193.192.36.0 - 193.192.37.255 { 0xc1c02600, 0xc1c03fff, REGISTRY_RIPENCC }, // 193.192.38.0 - 193.192.63.255 { 0xc1c04000, 0xc1c1a0ff, REGISTRY_RIPENCC }, // 193.192.64.0 - 193.193.160.255 { 0xc1c1a100, 0xc1c1a1ff, REGISTRY_RIPENCC }, // 193.193.161.0 - 193.193.161.255 { 0xc1c1a200, 0xc1c1a4ff, REGISTRY_RIPENCC }, // 193.193.162.0 - 193.193.164.255 { 0xc1c1a500, 0xc1c1aaff, REGISTRY_RIPENCC }, // 193.193.165.0 - 193.193.170.255 { 0xc1c1ab00, 0xc1c1adff, REGISTRY_RIPENCC }, // 193.193.171.0 - 193.193.173.255 { 0xc1c1ae00, 0xc1c1b5ff, REGISTRY_RIPENCC }, // 193.193.174.0 - 193.193.181.255 { 0xc1c1b600, 0xc1c1b6ff, REGISTRY_RIPENCC }, // 193.193.182.0 - 193.193.182.255 { 0xc1c1b700, 0xc1c1bfff, REGISTRY_RIPENCC }, // 193.193.183.0 - 193.193.191.255 { 0xc1c1c000, 0xc1c1ffff, REGISTRY_RIPENCC }, // 193.193.192.0 - 193.193.255.255 { 0xc1c20000, 0xc1c200ff, REGISTRY_RIPENCC }, // 193.194.0.0 - 193.194.0.255 { 0xc1c20600, 0xc1c21fff, REGISTRY_RIPENCC }, // 193.194.6.0 - 193.194.31.255 { 0xc1c22000, 0xc1c25fff, REGISTRY_AFRINIC }, // 193.194.32.0 - 193.194.95.255 { 0xc1c26000, 0xc1c27fff, REGISTRY_RIPENCC }, // 193.194.96.0 - 193.194.127.255 { 0xc1c28000, 0xc1c280ff, REGISTRY_AFRINIC }, // 193.194.128.0 - 193.194.128.255 { 0xc1c28100, 0xc1c281ff, REGISTRY_RIPENCC }, // 193.194.129.0 - 193.194.129.255 { 0xc1c28200, 0xc1c283ff, REGISTRY_RIPENCC }, // 193.194.130.0 - 193.194.131.255 { 0xc1c28400, 0xc1c288ff, REGISTRY_RIPENCC }, // 193.194.132.0 - 193.194.136.255 { 0xc1c28a00, 0xc1c28dff, REGISTRY_RIPENCC }, // 193.194.138.0 - 193.194.141.255 { 0xc1c28e00, 0xc1c28fff, REGISTRY_RIPENCC }, // 193.194.142.0 - 193.194.143.255 { 0xc1c29000, 0xc1c292ff, REGISTRY_RIPENCC }, // 193.194.144.0 - 193.194.146.255 { 0xc1c29300, 0xc1c293ff, REGISTRY_RIPENCC }, // 193.194.147.0 - 193.194.147.255 { 0xc1c29400, 0xc1c295ff, REGISTRY_RIPENCC }, // 193.194.148.0 - 193.194.149.255 { 0xc1c29600, 0xc1c297ff, REGISTRY_RIPENCC }, // 193.194.150.0 - 193.194.151.255 { 0xc1c29800, 0xc1c29aff, REGISTRY_RIPENCC }, // 193.194.152.0 - 193.194.154.255 { 0xc1c29b00, 0xc1c29bff, REGISTRY_RIPENCC }, // 193.194.155.0 - 193.194.155.255 { 0xc1c29c00, 0xc1c29cff, REGISTRY_RIPENCC }, // 193.194.156.0 - 193.194.156.255 { 0xc1c29d00, 0xc1c29dff, REGISTRY_RIPENCC }, // 193.194.157.0 - 193.194.157.255 { 0xc1c29e00, 0xc1c29fff, REGISTRY_RIPENCC }, // 193.194.158.0 - 193.194.159.255 { 0xc1c2a000, 0xc1c2bfff, REGISTRY_AFRINIC }, // 193.194.160.0 - 193.194.191.255 { 0xc1c2c000, 0xc1c802ff, REGISTRY_RIPENCC }, // 193.194.192.0 - 193.200.2.255 { 0xc1c80300, 0xc1c807ff, REGISTRY_RIPENCC }, // 193.200.3.0 - 193.200.7.255 { 0xc1c80800, 0xc1c808ff, REGISTRY_RIPENCC }, // 193.200.8.0 - 193.200.8.255 { 0xc1c80900, 0xc1c80bff, REGISTRY_RIPENCC }, // 193.200.9.0 - 193.200.11.255 { 0xc1c80c00, 0xc1c80dff, REGISTRY_RIPENCC }, // 193.200.12.0 - 193.200.13.255 { 0xc1c80e00, 0xc1c80fff, REGISTRY_RIPENCC }, // 193.200.14.0 - 193.200.15.255 { 0xc1c81000, 0xc1c811ff, REGISTRY_RIPENCC }, // 193.200.16.0 - 193.200.17.255 { 0xc1c81200, 0xc1c817ff, REGISTRY_RIPENCC }, // 193.200.18.0 - 193.200.23.255 { 0xc1c81800, 0xc1c818ff, REGISTRY_RIPENCC }, // 193.200.24.0 - 193.200.24.255 { 0xc1c81900, 0xc1c819ff, REGISTRY_RIPENCC }, // 193.200.25.0 - 193.200.25.255 { 0xc1c81a00, 0xc1c81bff, REGISTRY_RIPENCC }, // 193.200.26.0 - 193.200.27.255 { 0xc1c81c00, 0xc1c82fff, REGISTRY_RIPENCC }, // 193.200.28.0 - 193.200.47.255 { 0xc1c83000, 0xc1c831ff, REGISTRY_RIPENCC }, // 193.200.48.0 - 193.200.49.255 { 0xc1c83200, 0xc1c833ff, REGISTRY_RIPENCC }, // 193.200.50.0 - 193.200.51.255 { 0xc1c83400, 0xc1c835ff, REGISTRY_RIPENCC }, // 193.200.52.0 - 193.200.53.255 { 0xc1c83600, 0xc1c837ff, REGISTRY_RIPENCC }, // 193.200.54.0 - 193.200.55.255 { 0xc1c83800, 0xc1c839ff, REGISTRY_RIPENCC }, // 193.200.56.0 - 193.200.57.255 { 0xc1c83a00, 0xc1c83bff, REGISTRY_RIPENCC }, // 193.200.58.0 - 193.200.59.255 { 0xc1c83c00, 0xc1c83fff, REGISTRY_RIPENCC }, // 193.200.60.0 - 193.200.63.255 { 0xc1c84000, 0xc1c847ff, REGISTRY_RIPENCC }, // 193.200.64.0 - 193.200.71.255 { 0xc1c84800, 0xc1c84bff, REGISTRY_RIPENCC }, // 193.200.72.0 - 193.200.75.255 { 0xc1c84c00, 0xc1c85fff, REGISTRY_RIPENCC }, // 193.200.76.0 - 193.200.95.255 { 0xc1c86000, 0xc1c861ff, REGISTRY_RIPENCC }, // 193.200.96.0 - 193.200.97.255 { 0xc1c86200, 0xc1c865ff, REGISTRY_RIPENCC }, // 193.200.98.0 - 193.200.101.255 { 0xc1c86600, 0xc1c867ff, REGISTRY_RIPENCC }, // 193.200.102.0 - 193.200.103.255 { 0xc1c86800, 0xc1c881ff, REGISTRY_RIPENCC }, // 193.200.104.0 - 193.200.129.255 { 0xc1c88200, 0xc1c882ff, REGISTRY_RIPENCC }, // 193.200.130.0 - 193.200.130.255 { 0xc1c88300, 0xc1c885ff, REGISTRY_RIPENCC }, // 193.200.131.0 - 193.200.133.255 { 0xc1c88600, 0xc1c887ff, REGISTRY_RIPENCC }, // 193.200.134.0 - 193.200.135.255 { 0xc1c88800, 0xc1c893ff, REGISTRY_RIPENCC }, // 193.200.136.0 - 193.200.147.255 { 0xc1c89400, 0xc1c895ff, REGISTRY_RIPENCC }, // 193.200.148.0 - 193.200.149.255 { 0xc1c89600, 0xc1c897ff, REGISTRY_RIPENCC }, // 193.200.150.0 - 193.200.151.255 { 0xc1c89800, 0xc1c898ff, REGISTRY_RIPENCC }, // 193.200.152.0 - 193.200.152.255 { 0xc1c89900, 0xc1c899ff, REGISTRY_RIPENCC }, // 193.200.153.0 - 193.200.153.255 { 0xc1c89a00, 0xc1c89aff, REGISTRY_RIPENCC }, // 193.200.154.0 - 193.200.154.255 { 0xc1c89b00, 0xc1c89eff, REGISTRY_RIPENCC }, // 193.200.155.0 - 193.200.158.255 { 0xc1c89f00, 0xc1c89fff, REGISTRY_RIPENCC }, // 193.200.159.0 - 193.200.159.255 { 0xc1c8a000, 0xc1c8a2ff, REGISTRY_RIPENCC }, // 193.200.160.0 - 193.200.162.255 { 0xc1c8a300, 0xc1c8a3ff, REGISTRY_RIPENCC }, // 193.200.163.0 - 193.200.163.255 { 0xc1c8a400, 0xc1c8a6ff, REGISTRY_RIPENCC }, // 193.200.164.0 - 193.200.166.255 { 0xc1c8a700, 0xc1c8a7ff, REGISTRY_RIPENCC }, // 193.200.167.0 - 193.200.167.255 { 0xc1c8a800, 0xc1c8a8ff, REGISTRY_RIPENCC }, // 193.200.168.0 - 193.200.168.255 { 0xc1c8a900, 0xc1c8a9ff, REGISTRY_RIPENCC }, // 193.200.169.0 - 193.200.169.255 { 0xc1c8aa00, 0xc1c8b4ff, REGISTRY_RIPENCC }, // 193.200.170.0 - 193.200.180.255 { 0xc1c8b500, 0xc1c8b5ff, REGISTRY_RIPENCC }, // 193.200.181.0 - 193.200.181.255 { 0xc1c8b600, 0xc1c8b9ff, REGISTRY_RIPENCC }, // 193.200.182.0 - 193.200.185.255 { 0xc1c8ba00, 0xc1c8baff, REGISTRY_RIPENCC }, // 193.200.186.0 - 193.200.186.255 { 0xc1c8bb00, 0xc1c8bdff, REGISTRY_RIPENCC }, // 193.200.187.0 - 193.200.189.255 { 0xc1c8bf00, 0xc1c8bfff, REGISTRY_RIPENCC }, // 193.200.191.0 - 193.200.191.255 { 0xc1c8c000, 0xc1c8c0ff, REGISTRY_RIPENCC }, // 193.200.192.0 - 193.200.192.255 { 0xc1c8c100, 0xc1c8c1ff, REGISTRY_RIPENCC }, // 193.200.193.0 - 193.200.193.255 { 0xc1c8c200, 0xc1c8c2ff, REGISTRY_RIPENCC }, // 193.200.194.0 - 193.200.194.255 { 0xc1c8c300, 0xc1c8c3ff, REGISTRY_RIPENCC }, // 193.200.195.0 - 193.200.195.255 { 0xc1c8c400, 0xc1c8c4ff, REGISTRY_RIPENCC }, // 193.200.196.0 - 193.200.196.255 { 0xc1c8c500, 0xc1c8c6ff, REGISTRY_RIPENCC }, // 193.200.197.0 - 193.200.198.255 { 0xc1c8c700, 0xc1c8c7ff, REGISTRY_RIPENCC }, // 193.200.199.0 - 193.200.199.255 { 0xc1c8c800, 0xc1c8cdff, REGISTRY_RIPENCC }, // 193.200.200.0 - 193.200.205.255 { 0xc1c8ce00, 0xc1c8ceff, REGISTRY_RIPENCC }, // 193.200.206.0 - 193.200.206.255 { 0xc1c8cf00, 0xc1c8d8ff, REGISTRY_RIPENCC }, // 193.200.207.0 - 193.200.216.255 { 0xc1c8d900, 0xc1c8d9ff, REGISTRY_RIPENCC }, // 193.200.217.0 - 193.200.217.255 { 0xc1c8da00, 0xc1c8dcff, REGISTRY_RIPENCC }, // 193.200.218.0 - 193.200.220.255 { 0xc1c8dd00, 0xc1c8ddff, REGISTRY_RIPENCC }, // 193.200.221.0 - 193.200.221.255 { 0xc1c8de00, 0xc1c8e4ff, REGISTRY_RIPENCC }, // 193.200.222.0 - 193.200.228.255 { 0xc1c8e500, 0xc1c8e5ff, REGISTRY_RIPENCC }, // 193.200.229.0 - 193.200.229.255 { 0xc1c8e600, 0xc1c8e8ff, REGISTRY_RIPENCC }, // 193.200.230.0 - 193.200.232.255 { 0xc1c8e900, 0xc1c8e9ff, REGISTRY_RIPENCC }, // 193.200.233.0 - 193.200.233.255 { 0xc1c8ea00, 0xc1c8edff, REGISTRY_RIPENCC }, // 193.200.234.0 - 193.200.237.255 { 0xc1c8ee00, 0xc1c8eeff, REGISTRY_RIPENCC }, // 193.200.238.0 - 193.200.238.255 { 0xc1c8ef00, 0xc1c8f0ff, REGISTRY_RIPENCC }, // 193.200.239.0 - 193.200.240.255 { 0xc1c8f100, 0xc1c8f1ff, REGISTRY_RIPENCC }, // 193.200.241.0 - 193.200.241.255 { 0xc1c8f200, 0xc1c8f2ff, REGISTRY_RIPENCC }, // 193.200.242.0 - 193.200.242.255 { 0xc1c8f300, 0xc1c8f4ff, REGISTRY_RIPENCC }, // 193.200.243.0 - 193.200.244.255 { 0xc1c8f500, 0xc1c8f5ff, REGISTRY_RIPENCC }, // 193.200.245.0 - 193.200.245.255 { 0xc1c8f600, 0xc1c8f6ff, REGISTRY_RIPENCC }, // 193.200.246.0 - 193.200.246.255 { 0xc1c8f700, 0xc1c8f9ff, REGISTRY_RIPENCC }, // 193.200.247.0 - 193.200.249.255 { 0xc1c8fa00, 0xc1c8fcff, REGISTRY_RIPENCC }, // 193.200.250.0 - 193.200.252.255 { 0xc1c8fd00, 0xc1c907ff, REGISTRY_RIPENCC }, // 193.200.253.0 - 193.201.7.255 { 0xc1c90800, 0xc1c90fff, REGISTRY_RIPENCC }, // 193.201.8.0 - 193.201.15.255 { 0xc1c91000, 0xc1c922ff, REGISTRY_RIPENCC }, // 193.201.16.0 - 193.201.34.255 { 0xc1c92300, 0xc1c923ff, REGISTRY_RIPENCC }, // 193.201.35.0 - 193.201.35.255 { 0xc1c92400, 0xc1c924ff, REGISTRY_RIPENCC }, // 193.201.36.0 - 193.201.36.255 { 0xc1c92500, 0xc1c926ff, REGISTRY_RIPENCC }, // 193.201.37.0 - 193.201.38.255 { 0xc1c92700, 0xc1c92aff, REGISTRY_RIPENCC }, // 193.201.39.0 - 193.201.42.255 { 0xc1c92b00, 0xc1c92bff, REGISTRY_RIPENCC }, // 193.201.43.0 - 193.201.43.255 { 0xc1c92c00, 0xc1c92dff, REGISTRY_RIPENCC }, // 193.201.44.0 - 193.201.45.255 { 0xc1c92e00, 0xc1c92eff, REGISTRY_RIPENCC }, // 193.201.46.0 - 193.201.46.255 { 0xc1c92f00, 0xc1c937ff, REGISTRY_RIPENCC }, // 193.201.47.0 - 193.201.55.255 { 0xc1c93800, 0xc1c93bff, REGISTRY_RIPENCC }, // 193.201.56.0 - 193.201.59.255 { 0xc1c93c00, 0xc1c947ff, REGISTRY_RIPENCC }, // 193.201.60.0 - 193.201.71.255 { 0xc1c94800, 0xc1c949ff, REGISTRY_RIPENCC }, // 193.201.72.0 - 193.201.73.255 { 0xc1c94a00, 0xc1c962ff, REGISTRY_RIPENCC }, // 193.201.74.0 - 193.201.98.255 { 0xc1c96300, 0xc1c963ff, REGISTRY_RIPENCC }, // 193.201.99.0 - 193.201.99.255 { 0xc1c96400, 0xc1c96fff, REGISTRY_RIPENCC }, // 193.201.100.0 - 193.201.111.255 { 0xc1c97200, 0xc1c973ff, REGISTRY_RIPENCC }, // 193.201.114.0 - 193.201.115.255 { 0xc1c97400, 0xc1c97dff, REGISTRY_RIPENCC }, // 193.201.116.0 - 193.201.125.255 { 0xc1c97e00, 0xc1c97fff, REGISTRY_RIPENCC }, // 193.201.126.0 - 193.201.127.255 { 0xc1c98000, 0xc1c9917f, REGISTRY_RIPENCC }, // 193.201.128.0 - 193.201.145.127 { 0xc1c99200, 0xc1c9935f, REGISTRY_RIPENCC }, // 193.201.146.0 - 193.201.147.95 { 0xc1c99380, 0xc1c993bf, REGISTRY_RIPENCC }, // 193.201.147.128 - 193.201.147.191 { 0xc1c993e0, 0xc1c994ff, REGISTRY_RIPENCC }, // 193.201.147.224 - 193.201.148.255 { 0xc1c99540, 0xc1c9957f, REGISTRY_RIPENCC }, // 193.201.149.64 - 193.201.149.127 { 0xc1c995c0, 0xc1c996bf, REGISTRY_RIPENCC }, // 193.201.149.192 - 193.201.150.191 { 0xc1c99700, 0xc1c9973f, REGISTRY_RIPENCC }, // 193.201.151.0 - 193.201.151.63 { 0xc1c997c0, 0xc1c99aff, REGISTRY_RIPENCC }, // 193.201.151.192 - 193.201.154.255 { 0xc1c99b80, 0xc1c99d7f, REGISTRY_RIPENCC }, // 193.201.155.128 - 193.201.157.127 { 0xc1c99e00, 0xc1c99eff, REGISTRY_RIPENCC }, // 193.201.158.0 - 193.201.158.255 { 0xc1c99f80, 0xc1c9a1ff, REGISTRY_RIPENCC }, // 193.201.159.128 - 193.201.161.255 { 0xc1c9a200, 0xc1c9a2ff, REGISTRY_RIPENCC }, // 193.201.162.0 - 193.201.162.255 { 0xc1c9a300, 0xc1c9b7ff, REGISTRY_RIPENCC }, // 193.201.163.0 - 193.201.183.255 { 0xc1c9b800, 0xc1c9c3ff, REGISTRY_RIPENCC }, // 193.201.184.0 - 193.201.195.255 { 0xc1c9c400, 0xc1c9c9ff, REGISTRY_RIPENCC }, // 193.201.196.0 - 193.201.201.255 { 0xc1c9ca00, 0xc1c9cbff, REGISTRY_RIPENCC }, // 193.201.202.0 - 193.201.203.255 { 0xc1c9cc00, 0xc1c9cdff, REGISTRY_RIPENCC }, // 193.201.204.0 - 193.201.205.255 { 0xc1c9ce00, 0xc1c9d3ff, REGISTRY_RIPENCC }, // 193.201.206.0 - 193.201.211.255 { 0xc1c9d400, 0xc1c9f3ff, REGISTRY_RIPENCC }, // 193.201.212.0 - 193.201.243.255 { 0xc1c9f400, 0xc1c9fbff, REGISTRY_RIPENCC }, // 193.201.244.0 - 193.201.251.255 { 0xc1c9fc00, 0xc1c9ffff, REGISTRY_RIPENCC }, // 193.201.252.0 - 193.201.255.255 { 0xc1ca0000, 0xc1ca00ff, REGISTRY_RIPENCC }, // 193.202.0.0 - 193.202.0.255 { 0xc1ca0100, 0xc1ca07ff, REGISTRY_RIPENCC }, // 193.202.1.0 - 193.202.7.255 { 0xc1ca0800, 0xc1ca10ff, REGISTRY_RIPENCC }, // 193.202.8.0 - 193.202.16.255 { 0xc1ca1100, 0xc1ca1eff, REGISTRY_RIPENCC }, // 193.202.17.0 - 193.202.30.255 { 0xc1ca1f00, 0xc1ca1fff, REGISTRY_RIPENCC }, // 193.202.31.0 - 193.202.31.255 { 0xc1ca2000, 0xc1ca27ff, REGISTRY_RIPENCC }, // 193.202.32.0 - 193.202.39.255 { 0xc1ca2800, 0xc1ca2dff, REGISTRY_RIPENCC }, // 193.202.40.0 - 193.202.45.255 { 0xc1ca2e00, 0xc1ca49ff, REGISTRY_RIPENCC }, // 193.202.46.0 - 193.202.73.255 { 0xc1ca4a00, 0xc1ca4cff, REGISTRY_RIPENCC }, // 193.202.74.0 - 193.202.76.255 { 0xc1ca4d00, 0xc1ca4fff, REGISTRY_RIPENCC }, // 193.202.77.0 - 193.202.79.255 { 0xc1ca5000, 0xc1ca5aff, REGISTRY_RIPENCC }, // 193.202.80.0 - 193.202.90.255 { 0xc1ca5b00, 0xc1ca6fff, REGISTRY_RIPENCC }, // 193.202.91.0 - 193.202.111.255 { 0xc1ca7000, 0xc1ca72ff, REGISTRY_RIPENCC }, // 193.202.112.0 - 193.202.114.255 { 0xc1ca7300, 0xc1ca79ff, REGISTRY_RIPENCC }, // 193.202.115.0 - 193.202.121.255 { 0xc1ca7a00, 0xc1ca7aff, REGISTRY_RIPENCC }, // 193.202.122.0 - 193.202.122.255 { 0xc1ca7b00, 0xc1ca7dff, REGISTRY_RIPENCC }, // 193.202.123.0 - 193.202.125.255 { 0xc1ca7e00, 0xc1ca7eff, REGISTRY_RIPENCC }, // 193.202.126.0 - 193.202.126.255 { 0xc1ca7f00, 0xc1cb01ff, REGISTRY_RIPENCC }, // 193.202.127.0 - 193.203.1.255 { 0xc1cb0200, 0xc1cb04ff, REGISTRY_RIPENCC }, // 193.203.2.0 - 193.203.4.255 { 0xc1cb0500, 0xc1cb07ff, REGISTRY_RIPENCC }, // 193.203.5.0 - 193.203.7.255 { 0xc1cb0800, 0xc1cb11ff, REGISTRY_RIPENCC }, // 193.203.8.0 - 193.203.17.255 { 0xc1cb1200, 0xc1cb15ff, REGISTRY_RIPENCC }, // 193.203.18.0 - 193.203.21.255 { 0xc1cb1600, 0xc1cb16ff, REGISTRY_RIPENCC }, // 193.203.22.0 - 193.203.22.255 { 0xc1cb1700, 0xc1cb17ff, REGISTRY_RIPENCC }, // 193.203.23.0 - 193.203.23.255 { 0xc1cb1800, 0xc1cb19ff, REGISTRY_RIPENCC }, // 193.203.24.0 - 193.203.25.255 { 0xc1cb1a00, 0xc1cb1bff, REGISTRY_RIPENCC }, // 193.203.26.0 - 193.203.27.255 { 0xc1cb1c00, 0xc1cb1fff, REGISTRY_RIPENCC }, // 193.203.28.0 - 193.203.31.255 { 0xc1cb2000, 0xc1cb23ff, REGISTRY_RIPENCC }, // 193.203.32.0 - 193.203.35.255 { 0xc1cb2400, 0xc1cb27ff, REGISTRY_RIPENCC }, // 193.203.36.0 - 193.203.39.255 { 0xc1cb2800, 0xc1cb2fff, REGISTRY_RIPENCC }, // 193.203.40.0 - 193.203.47.255 { 0xc1cb3000, 0xc1cb37ff, REGISTRY_RIPENCC }, // 193.203.48.0 - 193.203.55.255 { 0xc1cb3800, 0xc1cb3fff, REGISTRY_RIPENCC }, // 193.203.56.0 - 193.203.63.255 { 0xc1cb4000, 0xc1cb5fff, REGISTRY_RIPENCC }, // 193.203.64.0 - 193.203.95.255 { 0xc1cb6000, 0xc1cb67ff, REGISTRY_RIPENCC }, // 193.203.96.0 - 193.203.103.255 { 0xc1cb6800, 0xc1cb69ff, REGISTRY_RIPENCC }, // 193.203.104.0 - 193.203.105.255 { 0xc1cb6a00, 0xc1cb6dff, REGISTRY_RIPENCC }, // 193.203.106.0 - 193.203.109.255 { 0xc1cb6e00, 0xc1cb6fff, REGISTRY_RIPENCC }, // 193.203.110.0 - 193.203.111.255 { 0xc1cb7000, 0xc1cb7dff, REGISTRY_RIPENCC }, // 193.203.112.0 - 193.203.125.255 { 0xc1cb7e00, 0xc1cbbfff, REGISTRY_RIPENCC }, // 193.203.126.0 - 193.203.191.255 { 0xc1cbc000, 0xc1cbd5ff, REGISTRY_RIPENCC }, // 193.203.192.0 - 193.203.213.255 { 0xc1cbd600, 0xc1cbd7ff, REGISTRY_RIPENCC }, // 193.203.214.0 - 193.203.215.255 { 0xc1cbd800, 0xc1cbdfff, REGISTRY_RIPENCC }, // 193.203.216.0 - 193.203.223.255 { 0xc1cbe000, 0xc1cbe0ff, REGISTRY_RIPENCC }, // 193.203.224.0 - 193.203.224.255 { 0xc1cbe100, 0xc1cbe2ff, REGISTRY_RIPENCC }, // 193.203.225.0 - 193.203.226.255 { 0xc1cbe300, 0xc1cbe3ff, REGISTRY_RIPENCC }, // 193.203.227.0 - 193.203.227.255 { 0xc1cbe400, 0xc1cbffff, REGISTRY_RIPENCC }, // 193.203.228.0 - 193.203.255.255 { 0xc1cc0000, 0xc1d9ffff, REGISTRY_RIPENCC }, // 193.204.0.0 - 193.217.255.255 { 0xc1da0100, 0xc1da06ff, REGISTRY_RIPENCC }, // 193.218.1.0 - 193.218.6.255 { 0xc1da0700, 0xc1da07ff, REGISTRY_RIPENCC }, // 193.218.7.0 - 193.218.7.255 { 0xc1da0800, 0xc1da0fff, REGISTRY_RIPENCC }, // 193.218.8.0 - 193.218.15.255 { 0xc1da1000, 0xc1da23ff, REGISTRY_RIPENCC }, // 193.218.16.0 - 193.218.35.255 { 0xc1da2400, 0xc1da24ff, REGISTRY_RIPENCC }, // 193.218.36.0 - 193.218.36.255 { 0xc1da2500, 0xc1da28ff, REGISTRY_RIPENCC }, // 193.218.37.0 - 193.218.40.255 { 0xc1da2900, 0xc1da2aff, REGISTRY_RIPENCC }, // 193.218.41.0 - 193.218.42.255 { 0xc1da2b00, 0xc1da2bff, REGISTRY_RIPENCC }, // 193.218.43.0 - 193.218.43.255 { 0xc1da2c00, 0xc1da51ff, REGISTRY_RIPENCC }, // 193.218.44.0 - 193.218.81.255 { 0xc1da5200, 0xc1da53ff, REGISTRY_RIPENCC }, // 193.218.82.0 - 193.218.83.255 { 0xc1da5400, 0xc1da62ff, REGISTRY_RIPENCC }, // 193.218.84.0 - 193.218.98.255 { 0xc1da6300, 0xc1da63ff, REGISTRY_RIPENCC }, // 193.218.99.0 - 193.218.99.255 { 0xc1da6400, 0xc1da68ff, REGISTRY_RIPENCC }, // 193.218.100.0 - 193.218.104.255 { 0xc1da6900, 0xc1da69ff, REGISTRY_RIPENCC }, // 193.218.105.0 - 193.218.105.255 { 0xc1da6a00, 0xc1da75ff, REGISTRY_RIPENCC }, // 193.218.106.0 - 193.218.117.255 { 0xc1da7600, 0xc1da79ff, REGISTRY_RIPENCC }, // 193.218.118.0 - 193.218.121.255 { 0xc1da7a00, 0xc1da7aff, REGISTRY_RIPENCC }, // 193.218.122.0 - 193.218.122.255 { 0xc1da7b00, 0xc1da7bff, REGISTRY_RIPENCC }, // 193.218.123.0 - 193.218.123.255 { 0xc1da7c00, 0xc1da7fff, REGISTRY_RIPENCC }, // 193.218.124.0 - 193.218.127.255 { 0xc1da8000, 0xc1da83ff, REGISTRY_RIPENCC }, // 193.218.128.0 - 193.218.131.255 { 0xc1da8400, 0xc1da9bff, REGISTRY_RIPENCC }, // 193.218.132.0 - 193.218.155.255 { 0xc1da9c00, 0xc1daafff, REGISTRY_RIPENCC }, // 193.218.156.0 - 193.218.175.255 { 0xc1dab000, 0xc1dabbff, REGISTRY_RIPENCC }, // 193.218.176.0 - 193.218.187.255 { 0xc1dabc00, 0xc1dabcff, REGISTRY_RIPENCC }, // 193.218.188.0 - 193.218.188.255 { 0xc1dabd00, 0xc1dac7ff, REGISTRY_RIPENCC }, // 193.218.189.0 - 193.218.199.255 { 0xc1dac800, 0xc1dac9ff, REGISTRY_RIPENCC }, // 193.218.200.0 - 193.218.201.255 { 0xc1daca00, 0xc1dacaff, REGISTRY_RIPENCC }, // 193.218.202.0 - 193.218.202.255 { 0xc1dacb00, 0xc1daccff, REGISTRY_RIPENCC }, // 193.218.203.0 - 193.218.204.255 { 0xc1dacd00, 0xc1dacddf, REGISTRY_RIPENCC }, // 193.218.205.0 - 193.218.205.223 { 0xc1dace00, 0xc1dacf3f, REGISTRY_RIPENCC }, // 193.218.206.0 - 193.218.207.63 { 0xc1dacf50, 0xc1dacf7f, REGISTRY_RIPENCC }, // 193.218.207.80 - 193.218.207.127 { 0xc1dacf80, 0xc1dadeff, REGISTRY_RIPENCC }, // 193.218.207.128 - 193.218.222.255 { 0xc1dadf00, 0xc1daffff, REGISTRY_RIPENCC }, // 193.218.223.0 - 193.218.255.255 { 0xc1db0000, 0xc1db00ff, REGISTRY_RIPENCC }, // 193.219.0.0 - 193.219.0.255 { 0xc1db0100, 0xc1db06ff, REGISTRY_RIPENCC }, // 193.219.1.0 - 193.219.6.255 { 0xc1db0700, 0xc1db07ff, REGISTRY_RIPENCC }, // 193.219.7.0 - 193.219.7.255 { 0xc1db0800, 0xc1db1dff, REGISTRY_RIPENCC }, // 193.219.8.0 - 193.219.29.255 { 0xc1db1e00, 0xc1db1eff, REGISTRY_RIPENCC }, // 193.219.30.0 - 193.219.30.255 { 0xc1db1f00, 0xc1db1fff, REGISTRY_RIPENCC }, // 193.219.31.0 - 193.219.31.255 { 0xc1db2000, 0xc1db5fff, REGISTRY_RIPENCC }, // 193.219.32.0 - 193.219.95.255 { 0xc1db6000, 0xc1db60ff, REGISTRY_RIPENCC }, // 193.219.96.0 - 193.219.96.255 { 0xc1db6100, 0xc1db61ff, REGISTRY_RIPENCC }, // 193.219.97.0 - 193.219.97.255 { 0xc1db6200, 0xc1db62ff, REGISTRY_RIPENCC }, // 193.219.98.0 - 193.219.98.255 { 0xc1db6300, 0xc1db63ff, REGISTRY_RIPENCC }, // 193.219.99.0 - 193.219.99.255 { 0xc1db6400, 0xc1db64ff, REGISTRY_RIPENCC }, // 193.219.100.0 - 193.219.100.255 { 0xc1db6500, 0xc1db65ff, REGISTRY_RIPENCC }, // 193.219.101.0 - 193.219.101.255 { 0xc1db6600, 0xc1db6fff, REGISTRY_RIPENCC }, // 193.219.102.0 - 193.219.111.255 { 0xc1db7000, 0xc1db70ff, REGISTRY_RIPENCC }, // 193.219.112.0 - 193.219.112.255 { 0xc1db7100, 0xc1db74ff, REGISTRY_RIPENCC }, // 193.219.113.0 - 193.219.116.255 { 0xc1db7500, 0xc1db75ff, REGISTRY_RIPENCC }, // 193.219.117.0 - 193.219.117.255 { 0xc1db7600, 0xc1db78ff, REGISTRY_RIPENCC }, // 193.219.118.0 - 193.219.120.255 { 0xc1db7900, 0xc1db79ff, REGISTRY_RIPENCC }, // 193.219.121.0 - 193.219.121.255 { 0xc1db7a00, 0xc1db7fff, REGISTRY_RIPENCC }, // 193.219.122.0 - 193.219.127.255 { 0xc1db8000, 0xc1dcffff, REGISTRY_RIPENCC }, // 193.219.128.0 - 193.220.255.255 { 0xc1dd0000, 0xc1dd0fff, REGISTRY_RIPENCC }, // 193.221.0.0 - 193.221.15.255 { 0xc1dd1000, 0xc1dd53ff, REGISTRY_RIPENCC }, // 193.221.16.0 - 193.221.83.255 { 0xc1dd5400, 0xc1dd5cff, REGISTRY_RIPENCC }, // 193.221.84.0 - 193.221.92.255 { 0xc1dd5d00, 0xc1dd5fff, REGISTRY_RIPENCC }, // 193.221.93.0 - 193.221.95.255 { 0xc1dd6000, 0xc1dd71ff, REGISTRY_RIPENCC }, // 193.221.96.0 - 193.221.113.255 { 0xc1dd7200, 0xc1dd72ff, REGISTRY_RIPENCC }, // 193.221.114.0 - 193.221.114.255 { 0xc1dd7300, 0xc1dd77ff, REGISTRY_RIPENCC }, // 193.221.115.0 - 193.221.119.255 { 0xc1dd7800, 0xc1dd78ff, REGISTRY_RIPENCC }, // 193.221.120.0 - 193.221.120.255 { 0xc1dd7900, 0xc1dd7aff, REGISTRY_RIPENCC }, // 193.221.121.0 - 193.221.122.255 { 0xc1dd7b00, 0xc1dd7bff, REGISTRY_RIPENCC }, // 193.221.123.0 - 193.221.123.255 { 0xc1dd7c00, 0xc1dd7cff, REGISTRY_RIPENCC }, // 193.221.124.0 - 193.221.124.255 { 0xc1dd7d00, 0xc1dd7dff, REGISTRY_RIPENCC }, // 193.221.125.0 - 193.221.125.255 { 0xc1dd7e00, 0xc1ddbfff, REGISTRY_RIPENCC }, // 193.221.126.0 - 193.221.191.255 { 0xc1ddc000, 0xc1ddd9ff, REGISTRY_RIPENCC }, // 193.221.192.0 - 193.221.217.255 { 0xc1ddda00, 0xc1dddaff, REGISTRY_AFRINIC }, // 193.221.218.0 - 193.221.218.255 { 0xc1dddb00, 0xc1dddfff, REGISTRY_RIPENCC }, // 193.221.219.0 - 193.221.223.255 { 0xc1dde000, 0xc1de31ff, REGISTRY_RIPENCC }, // 193.221.224.0 - 193.222.49.255 { 0xc1de3200, 0xc1de32ff, REGISTRY_RIPENCC }, // 193.222.50.0 - 193.222.50.255 { 0xc1de3300, 0xc1de3bff, REGISTRY_RIPENCC }, // 193.222.51.0 - 193.222.59.255 { 0xc1de3c00, 0xc1de3cff, REGISTRY_RIPENCC }, // 193.222.60.0 - 193.222.60.255 { 0xc1de3d00, 0xc1de3dff, REGISTRY_RIPENCC }, // 193.222.61.0 - 193.222.61.255 { 0xc1de3e00, 0xc1de3eff, REGISTRY_RIPENCC }, // 193.222.62.0 - 193.222.62.255 { 0xc1de3f00, 0xc1de5fff, REGISTRY_RIPENCC }, // 193.222.63.0 - 193.222.95.255 { 0xc1de6000, 0xc1de69ff, REGISTRY_RIPENCC }, // 193.222.96.0 - 193.222.105.255 { 0xc1de6a00, 0xc1de6bff, REGISTRY_RIPENCC }, // 193.222.106.0 - 193.222.107.255 { 0xc1de6d00, 0xc1de6dff, REGISTRY_RIPENCC }, // 193.222.109.0 - 193.222.109.255 { 0xc1de6e00, 0xc1de6fff, REGISTRY_RIPENCC }, // 193.222.110.0 - 193.222.111.255 { 0xc1de7000, 0xc1de8aff, REGISTRY_RIPENCC }, // 193.222.112.0 - 193.222.138.255 { 0xc1de8b00, 0xc1de8bff, REGISTRY_RIPENCC }, // 193.222.139.0 - 193.222.139.255 { 0xc1de8c00, 0xc1de8dff, REGISTRY_RIPENCC }, // 193.222.140.0 - 193.222.141.255 { 0xc1de8e00, 0xc1de93ff, REGISTRY_RIPENCC }, // 193.222.142.0 - 193.222.147.255 { 0xc1de9400, 0xc1debbff, REGISTRY_RIPENCC }, // 193.222.148.0 - 193.222.187.255 { 0xc1debc00, 0xc1debdff, REGISTRY_RIPENCC }, // 193.222.188.0 - 193.222.189.255 { 0xc1debe00, 0xc1defaff, REGISTRY_RIPENCC }, // 193.222.190.0 - 193.222.250.255 { 0xc1defb00, 0xc1defeff, REGISTRY_RIPENCC }, // 193.222.251.0 - 193.222.254.255 { 0xc1deff00, 0xc1df3fff, REGISTRY_RIPENCC }, // 193.222.255.0 - 193.223.63.255 { 0xc1df4000, 0xc1df4bff, REGISTRY_RIPENCC }, // 193.223.64.0 - 193.223.75.255 { 0xc1df4c00, 0xc1df5fff, REGISTRY_RIPENCC }, // 193.223.76.0 - 193.223.95.255 { 0xc1df6000, 0xc1df61ff, REGISTRY_RIPENCC }, // 193.223.96.0 - 193.223.97.255 { 0xc1df6200, 0xc1df66ff, REGISTRY_RIPENCC }, // 193.223.98.0 - 193.223.102.255 { 0xc1df6700, 0xc1df6cff, REGISTRY_RIPENCC }, // 193.223.103.0 - 193.223.108.255 { 0xc1df6d00, 0xc1df6dff, REGISTRY_RIPENCC }, // 193.223.109.0 - 193.223.109.255 { 0xc1df6e00, 0xc1df6fff, REGISTRY_RIPENCC }, // 193.223.110.0 - 193.223.111.255 { 0xc1df7000, 0xc1dff7ff, REGISTRY_RIPENCC }, // 193.223.112.0 - 193.223.247.255 { 0xc1dff800, 0xc1dffdff, REGISTRY_RIPENCC }, // 193.223.248.0 - 193.223.253.255 { 0xc1dffe00, 0xc1dfffff, REGISTRY_RIPENCC }, // 193.223.254.0 - 193.223.255.255 { 0xc1e00000, 0xc1e2ffff, REGISTRY_RIPENCC }, // 193.224.0.0 - 193.226.255.255 { 0xc1e30000, 0xc1e33fff, REGISTRY_AFRINIC }, // 193.227.0.0 - 193.227.63.255 { 0xc1e34000, 0xc1e35fff, REGISTRY_RIPENCC }, // 193.227.64.0 - 193.227.95.255 { 0xc1e36000, 0xc1e362ff, REGISTRY_RIPENCC }, // 193.227.96.0 - 193.227.98.255 { 0xc1e36300, 0xc1e363ff, REGISTRY_RIPENCC }, // 193.227.99.0 - 193.227.99.255 { 0xc1e36400, 0xc1e366ff, REGISTRY_RIPENCC }, // 193.227.100.0 - 193.227.102.255 { 0xc1e36700, 0xc1e367ff, REGISTRY_RIPENCC }, // 193.227.103.0 - 193.227.103.255 { 0xc1e36800, 0xc1e36cff, REGISTRY_RIPENCC }, // 193.227.104.0 - 193.227.108.255 { 0xc1e36d00, 0xc1e36dff, REGISTRY_RIPENCC }, // 193.227.109.0 - 193.227.109.255 { 0xc1e36e00, 0xc1e370ff, REGISTRY_RIPENCC }, // 193.227.110.0 - 193.227.112.255 { 0xc1e37200, 0xc1e372ff, REGISTRY_RIPENCC }, // 193.227.114.0 - 193.227.114.255 { 0xc1e37300, 0xc1e378ff, REGISTRY_RIPENCC }, // 193.227.115.0 - 193.227.120.255 { 0xc1e37900, 0xc1e37aff, REGISTRY_RIPENCC }, // 193.227.121.0 - 193.227.122.255 { 0xc1e37b00, 0xc1e37cff, REGISTRY_RIPENCC }, // 193.227.123.0 - 193.227.124.255 { 0xc1e37d00, 0xc1e37dff, REGISTRY_RIPENCC }, // 193.227.125.0 - 193.227.125.255 { 0xc1e37e00, 0xc1e37fff, REGISTRY_RIPENCC }, // 193.227.126.0 - 193.227.127.255 { 0xc1e38000, 0xc1e380ff, REGISTRY_AFRINIC }, // 193.227.128.0 - 193.227.128.255 { 0xc1e38100, 0xc1e381ff, REGISTRY_RIPENCC }, // 193.227.129.0 - 193.227.129.255 { 0xc1e38200, 0xc1e386ff, REGISTRY_RIPENCC }, // 193.227.130.0 - 193.227.134.255 { 0xc1e38700, 0xc1e387ff, REGISTRY_RIPENCC }, // 193.227.135.0 - 193.227.135.255 { 0xc1e38800, 0xc1e39fff, REGISTRY_RIPENCC }, // 193.227.136.0 - 193.227.159.255 { 0xc1e3a000, 0xc1e3bfff, REGISTRY_RIPENCC }, // 193.227.160.0 - 193.227.191.255 { 0xc1e3c000, 0xc1e3ebff, REGISTRY_RIPENCC }, // 193.227.192.0 - 193.227.235.255 { 0xc1e3ec00, 0xc1e3edff, REGISTRY_RIPENCC }, // 193.227.236.0 - 193.227.237.255 { 0xc1e3ee00, 0xc1e3f1ff, REGISTRY_RIPENCC }, // 193.227.238.0 - 193.227.241.255 { 0xc1e3f200, 0xc1e3f3ff, REGISTRY_RIPENCC }, // 193.227.242.0 - 193.227.243.255 { 0xc1e3f400, 0xc1e400ff, REGISTRY_RIPENCC }, // 193.227.244.0 - 193.228.0.255 { 0xc1e40100, 0xc1e401ff, REGISTRY_RIPENCC }, // 193.228.1.0 - 193.228.1.255 { 0xc1e40200, 0xc1e402ff, REGISTRY_RIPENCC }, // 193.228.2.0 - 193.228.2.255 { 0xc1e40300, 0xc1e403ff, REGISTRY_RIPENCC }, // 193.228.3.0 - 193.228.3.255 { 0xc1e40400, 0xc1e409ff, REGISTRY_RIPENCC }, // 193.228.4.0 - 193.228.9.255 { 0xc1e40a00, 0xc1e40fff, REGISTRY_RIPENCC }, // 193.228.10.0 - 193.228.15.255 { 0xc1e41000, 0xc1e42fff, REGISTRY_RIPENCC }, // 193.228.16.0 - 193.228.47.255 { 0xc1e43000, 0xc1e43cff, REGISTRY_RIPENCC }, // 193.228.48.0 - 193.228.60.255 { 0xc1e43d00, 0xc1e447ff, REGISTRY_RIPENCC }, // 193.228.61.0 - 193.228.71.255 { 0xc1e44800, 0xc1e44fff, REGISTRY_RIPENCC }, // 193.228.72.0 - 193.228.79.255 { 0xc1e45000, 0xc1e459ff, REGISTRY_RIPENCC }, // 193.228.80.0 - 193.228.89.255 { 0xc1e45a00, 0xc1e45bff, REGISTRY_RIPENCC }, // 193.228.90.0 - 193.228.91.255 { 0xc1e45c00, 0xc1e464ff, REGISTRY_RIPENCC }, // 193.228.92.0 - 193.228.100.255 { 0xc1e46500, 0xc1e465ff, REGISTRY_RIPENCC }, // 193.228.101.0 - 193.228.101.255 { 0xc1e46600, 0xc1e46bff, REGISTRY_RIPENCC }, // 193.228.102.0 - 193.228.107.255 { 0xc1e46c00, 0xc1e48cff, REGISTRY_RIPENCC }, // 193.228.108.0 - 193.228.140.255 { 0xc1e48d00, 0xc1e48dff, REGISTRY_RIPENCC }, // 193.228.141.0 - 193.228.141.255 { 0xc1e48e00, 0xc1e48fff, REGISTRY_RIPENCC }, // 193.228.142.0 - 193.228.143.255 { 0xc1e49000, 0xc1e490ff, REGISTRY_RIPENCC }, // 193.228.144.0 - 193.228.144.255 { 0xc1e49100, 0xc1e491ff, REGISTRY_RIPENCC }, // 193.228.145.0 - 193.228.145.255 { 0xc1e49300, 0xc1e493ff, REGISTRY_RIPENCC }, // 193.228.147.0 - 193.228.147.255 { 0xc1e49400, 0xc1e494ff, REGISTRY_RIPENCC }, // 193.228.148.0 - 193.228.148.255 { 0xc1e49500, 0xc1e49fff, REGISTRY_RIPENCC }, // 193.228.149.0 - 193.228.159.255 { 0xc1e4a000, 0xc1e4a9ff, REGISTRY_RIPENCC }, // 193.228.160.0 - 193.228.169.255 { 0xc1e4aa00, 0xc1e4abff, REGISTRY_RIPENCC }, // 193.228.170.0 - 193.228.171.255 { 0xc1e4ac00, 0xc1e4adff, REGISTRY_RIPENCC }, // 193.228.172.0 - 193.228.173.255 { 0xc1e4ae00, 0xc1e4aeff, REGISTRY_RIPENCC }, // 193.228.174.0 - 193.228.174.255 { 0xc1e4af00, 0xc1e4afff, REGISTRY_RIPENCC }, // 193.228.175.0 - 193.228.175.255 { 0xc1e4b000, 0xc1e4b4ff, REGISTRY_RIPENCC }, // 193.228.176.0 - 193.228.180.255 { 0xc1e4b500, 0xc1e4b7ff, REGISTRY_RIPENCC }, // 193.228.181.0 - 193.228.183.255 { 0xc1e4b800, 0xc1e4b8ff, REGISTRY_RIPENCC }, // 193.228.184.0 - 193.228.184.255 { 0xc1e4b900, 0xc1e4baff, REGISTRY_RIPENCC }, // 193.228.185.0 - 193.228.186.255 { 0xc1e4bb00, 0xc1e4bbff, REGISTRY_RIPENCC }, // 193.228.187.0 - 193.228.187.255 { 0xc1e4bc00, 0xc1e4bfff, REGISTRY_RIPENCC }, // 193.228.188.0 - 193.228.191.255 { 0xc1e4c000, 0xc1e4c0ff, REGISTRY_RIPENCC }, // 193.228.192.0 - 193.228.192.255 { 0xc1e4c100, 0xc1e4c4ff, REGISTRY_RIPENCC }, // 193.228.193.0 - 193.228.196.255 { 0xc1e4c500, 0xc1e4c6ff, REGISTRY_RIPENCC }, // 193.228.197.0 - 193.228.198.255 { 0xc1e4c700, 0xc1e4c7ff, REGISTRY_RIPENCC }, // 193.228.199.0 - 193.228.199.255 { 0xc1e4c800, 0xc1e4cbff, REGISTRY_RIPENCC }, // 193.228.200.0 - 193.228.203.255 { 0xc1e4cc00, 0xc1e4ceff, REGISTRY_RIPENCC }, // 193.228.204.0 - 193.228.206.255 { 0xc1e4cf00, 0xc1e4dfff, REGISTRY_RIPENCC }, // 193.228.207.0 - 193.228.223.255 { 0xc1e4e000, 0xc1e4e2ff, REGISTRY_RIPENCC }, // 193.228.224.0 - 193.228.226.255 { 0xc1e4e300, 0xc1e4e3ff, REGISTRY_RIPENCC }, // 193.228.227.0 - 193.228.227.255 { 0xc1e4e400, 0xc1e4e7ff, REGISTRY_RIPENCC }, // 193.228.228.0 - 193.228.231.255 { 0xc1e4e800, 0xc1e4eaff, REGISTRY_RIPENCC }, // 193.228.232.0 - 193.228.234.255 { 0xc1e4eb00, 0xc1ec1fff, REGISTRY_RIPENCC }, // 193.228.235.0 - 193.236.31.255 { 0xc1ec2000, 0xc1ec5fff, REGISTRY_RIPENCC }, // 193.236.32.0 - 193.236.95.255 { 0xc1ec6000, 0xc1ec77ff, REGISTRY_RIPENCC }, // 193.236.96.0 - 193.236.119.255 { 0xc1ec7800, 0xc1ec7bff, REGISTRY_RIPENCC }, // 193.236.120.0 - 193.236.123.255 { 0xc1ec7c00, 0xc1ec7fff, REGISTRY_RIPENCC }, // 193.236.124.0 - 193.236.127.255 { 0xc1ec8000, 0xc1ec97ff, REGISTRY_RIPENCC }, // 193.236.128.0 - 193.236.151.255 { 0xc1ec9800, 0xc1ecafff, REGISTRY_RIPENCC }, // 193.236.152.0 - 193.236.175.255 { 0xc1ecb000, 0xc1ecb1ff, REGISTRY_RIPENCC }, // 193.236.176.0 - 193.236.177.255 { 0xc1ecb200, 0xc1ee03ff, REGISTRY_RIPENCC }, // 193.236.178.0 - 193.238.3.255 { 0xc1ee0400, 0xc1ee27ff, REGISTRY_RIPENCC }, // 193.238.4.0 - 193.238.39.255 { 0xc1ee2800, 0xc1ee2fff, REGISTRY_RIPENCC }, // 193.238.40.0 - 193.238.47.255 { 0xc1ee3000, 0xc1ee43ff, REGISTRY_RIPENCC }, // 193.238.48.0 - 193.238.67.255 { 0xc1ee4400, 0xc1ee47ff, REGISTRY_RIPENCC }, // 193.238.68.0 - 193.238.71.255 { 0xc1ee4800, 0xc1ee53ff, REGISTRY_RIPENCC }, // 193.238.72.0 - 193.238.83.255 { 0xc1ee5400, 0xc1ee57ff, REGISTRY_RIPENCC }, // 193.238.84.0 - 193.238.87.255 { 0xc1ee5800, 0xc1ee77ff, REGISTRY_RIPENCC }, // 193.238.88.0 - 193.238.119.255 { 0xc1ee7800, 0xc1ee7bff, REGISTRY_RIPENCC }, // 193.238.120.0 - 193.238.123.255 { 0xc1ee7c00, 0xc1ee87ff, REGISTRY_RIPENCC }, // 193.238.124.0 - 193.238.135.255 { 0xc1ee8800, 0xc1ee8bff, REGISTRY_RIPENCC }, // 193.238.136.0 - 193.238.139.255 { 0xc1ee8c00, 0xc1ee9bff, REGISTRY_RIPENCC }, // 193.238.140.0 - 193.238.155.255 { 0xc1ee9c00, 0xc1ee9fff, REGISTRY_RIPENCC }, // 193.238.156.0 - 193.238.159.255 { 0xc1eea000, 0xc1eeabff, REGISTRY_RIPENCC }, // 193.238.160.0 - 193.238.171.255 { 0xc1eeac00, 0xc1eeafff, REGISTRY_RIPENCC }, // 193.238.172.0 - 193.238.175.255 { 0xc1eeb000, 0xc1eeb7ff, REGISTRY_RIPENCC }, // 193.238.176.0 - 193.238.183.255 { 0xc1eeb800, 0xc1eebbff, REGISTRY_RIPENCC }, // 193.238.184.0 - 193.238.187.255 { 0xc1eebc00, 0xc1eebfff, REGISTRY_RIPENCC }, // 193.238.188.0 - 193.238.191.255 { 0xc1eec000, 0xc1eec3ff, REGISTRY_RIPENCC }, // 193.238.192.0 - 193.238.195.255 { 0xc1eec400, 0xc1eecbff, REGISTRY_RIPENCC }, // 193.238.196.0 - 193.238.203.255 { 0xc1eecc00, 0xc1eecfff, REGISTRY_RIPENCC }, // 193.238.204.0 - 193.238.207.255 { 0xc1eed000, 0xc1eed3ff, REGISTRY_RIPENCC }, // 193.238.208.0 - 193.238.211.255 { 0xc1eed400, 0xc1eedfff, REGISTRY_RIPENCC }, // 193.238.212.0 - 193.238.223.255 { 0xc1eee000, 0xc1eeebff, REGISTRY_RIPENCC }, // 193.238.224.0 - 193.238.235.255 { 0xc1eeec00, 0xc1eeefff, REGISTRY_RIPENCC }, // 193.238.236.0 - 193.238.239.255 { 0xc1eef000, 0xc1eef3ff, REGISTRY_RIPENCC }, // 193.238.240.0 - 193.238.243.255 { 0xc1eef400, 0xc1eef7ff, REGISTRY_RIPENCC }, // 193.238.244.0 - 193.238.247.255 { 0xc1eef800, 0xc1ef1fff, REGISTRY_RIPENCC }, // 193.238.248.0 - 193.239.31.255 { 0xc1ef2000, 0xc1ef23ff, REGISTRY_RIPENCC }, // 193.239.32.0 - 193.239.35.255 { 0xc1ef2400, 0xc1ef53ff, REGISTRY_RIPENCC }, // 193.239.36.0 - 193.239.83.255 { 0xc1ef5400, 0xc1ef57ff, REGISTRY_RIPENCC }, // 193.239.84.0 - 193.239.87.255 { 0xc1ef5800, 0xc1ef91ff, REGISTRY_RIPENCC }, // 193.239.88.0 - 193.239.145.255 { 0xc1ef9200, 0xc1ef93ff, REGISTRY_RIPENCC }, // 193.239.146.0 - 193.239.147.255 { 0xc1ef9400, 0xc1ef95ff, REGISTRY_RIPENCC }, // 193.239.148.0 - 193.239.149.255 { 0xc1ef9600, 0xc1ef97ff, REGISTRY_RIPENCC }, // 193.239.150.0 - 193.239.151.255 { 0xc1ef9800, 0xc1ef99ff, REGISTRY_RIPENCC }, // 193.239.152.0 - 193.239.153.255 { 0xc1ef9a00, 0xc1ef9bff, REGISTRY_RIPENCC }, // 193.239.154.0 - 193.239.155.255 { 0xc1ef9c00, 0xc1ef9fff, REGISTRY_RIPENCC }, // 193.239.156.0 - 193.239.159.255 { 0xc1efa000, 0xc1efa1ff, REGISTRY_RIPENCC }, // 193.239.160.0 - 193.239.161.255 { 0xc1efa200, 0xc1efa3ff, REGISTRY_RIPENCC }, // 193.239.162.0 - 193.239.163.255 { 0xc1efa400, 0xc1efa7ff, REGISTRY_RIPENCC }, // 193.239.164.0 - 193.239.167.255 { 0xc1efa800, 0xc1efafff, REGISTRY_RIPENCC }, // 193.239.168.0 - 193.239.175.255 { 0xc1efb000, 0xc1efb3ff, REGISTRY_RIPENCC }, // 193.239.176.0 - 193.239.179.255 { 0xc1efb400, 0xc1efbdff, REGISTRY_RIPENCC }, // 193.239.180.0 - 193.239.189.255 { 0xc1efbe00, 0xc1efc1ff, REGISTRY_RIPENCC }, // 193.239.190.0 - 193.239.193.255 { 0xc1efc200, 0xc1efc3ff, REGISTRY_RIPENCC }, // 193.239.194.0 - 193.239.195.255 { 0xc1efc400, 0xc1efc5ff, REGISTRY_RIPENCC }, // 193.239.196.0 - 193.239.197.255 { 0xc1efc600, 0xc1efc9ff, REGISTRY_RIPENCC }, // 193.239.198.0 - 193.239.201.255 { 0xc1efca00, 0xc1efcbff, REGISTRY_RIPENCC }, // 193.239.202.0 - 193.239.203.255 { 0xc1efcc00, 0xc1efcfff, REGISTRY_RIPENCC }, // 193.239.204.0 - 193.239.207.255 { 0xc1efd000, 0xc1efd1ff, REGISTRY_RIPENCC }, // 193.239.208.0 - 193.239.209.255 { 0xc1efd200, 0xc1efd7ff, REGISTRY_RIPENCC }, // 193.239.210.0 - 193.239.215.255 { 0xc1efd800, 0xc1efd9ff, REGISTRY_RIPENCC }, // 193.239.216.0 - 193.239.217.255 { 0xc1efda00, 0xc1efebff, REGISTRY_RIPENCC }, // 193.239.218.0 - 193.239.235.255 { 0xc1efec00, 0xc1efedff, REGISTRY_RIPENCC }, // 193.239.236.0 - 193.239.237.255 { 0xc1efee00, 0xc1eff3ff, REGISTRY_RIPENCC }, // 193.239.238.0 - 193.239.243.255 { 0xc1eff400, 0xc1eff5ff, REGISTRY_RIPENCC }, // 193.239.244.0 - 193.239.245.255 { 0xc1eff600, 0xc1efffff, REGISTRY_RIPENCC }, // 193.239.246.0 - 193.239.255.255 { 0xc1f00000, 0xc1f0ffff, REGISTRY_RIPENCC }, // 193.240.0.0 - 193.240.255.255 { 0xc1f10000, 0xc1f25fff, REGISTRY_RIPENCC }, // 193.241.0.0 - 193.242.95.255 { 0xc1f26000, 0xc1f260ff, REGISTRY_RIPENCC }, // 193.242.96.0 - 193.242.96.255 { 0xc1f26100, 0xc1f262ff, REGISTRY_RIPENCC }, // 193.242.97.0 - 193.242.98.255 { 0xc1f26300, 0xc1f263ff, REGISTRY_RIPENCC }, // 193.242.99.0 - 193.242.99.255 { 0xc1f26400, 0xc1f268ff, REGISTRY_RIPENCC }, // 193.242.100.0 - 193.242.104.255 { 0xc1f26900, 0xc1f26aff, REGISTRY_RIPENCC }, // 193.242.105.0 - 193.242.106.255 { 0xc1f26b00, 0xc1f26cff, REGISTRY_RIPENCC }, // 193.242.107.0 - 193.242.108.255 { 0xc1f26d00, 0xc1f26dff, REGISTRY_RIPENCC }, // 193.242.109.0 - 193.242.109.255 { 0xc1f26e00, 0xc1f274ff, REGISTRY_RIPENCC }, // 193.242.110.0 - 193.242.116.255 { 0xc1f27500, 0xc1f275ff, REGISTRY_RIPENCC }, // 193.242.117.0 - 193.242.117.255 { 0xc1f27600, 0xc1f276ff, REGISTRY_RIPENCC }, // 193.242.118.0 - 193.242.118.255 { 0xc1f27700, 0xc1f277ff, REGISTRY_RIPENCC }, // 193.242.119.0 - 193.242.119.255 { 0xc1f27800, 0xc1f27aff, REGISTRY_RIPENCC }, // 193.242.120.0 - 193.242.122.255 { 0xc1f27b00, 0xc1f27bff, REGISTRY_RIPENCC }, // 193.242.123.0 - 193.242.123.255 { 0xc1f27c00, 0xc1f27cff, REGISTRY_RIPENCC }, // 193.242.124.0 - 193.242.124.255 { 0xc1f27d00, 0xc1f27dff, REGISTRY_RIPENCC }, // 193.242.125.0 - 193.242.125.255 { 0xc1f27e00, 0xc1f27eff, REGISTRY_RIPENCC }, // 193.242.126.0 - 193.242.126.255 { 0xc1f27f00, 0xc1f27fff, REGISTRY_RIPENCC }, // 193.242.127.0 - 193.242.127.255 { 0xc1f28000, 0xc1f290ff, REGISTRY_RIPENCC }, // 193.242.128.0 - 193.242.144.255 { 0xc1f29100, 0xc1f297ff, REGISTRY_RIPENCC }, // 193.242.145.0 - 193.242.151.255 { 0xc1f29800, 0xc1f298ff, REGISTRY_RIPENCC }, // 193.242.152.0 - 193.242.152.255 { 0xc1f29900, 0xc1f29aff, REGISTRY_RIPENCC }, // 193.242.153.0 - 193.242.154.255 { 0xc1f29b00, 0xc1f2a3ff, REGISTRY_RIPENCC }, // 193.242.155.0 - 193.242.163.255 { 0xc1f2a400, 0xc1f2a5ff, REGISTRY_RIPENCC }, // 193.242.164.0 - 193.242.165.255 { 0xc1f2a600, 0xc1f2a6ff, REGISTRY_RIPENCC }, // 193.242.166.0 - 193.242.166.255 { 0xc1f2a800, 0xc1f2adff, REGISTRY_RIPENCC }, // 193.242.168.0 - 193.242.173.255 { 0xc1f2ae00, 0xc1f2b5ff, REGISTRY_RIPENCC }, // 193.242.174.0 - 193.242.181.255 { 0xc1f2b600, 0xc1f2d7ff, REGISTRY_RIPENCC }, // 193.242.182.0 - 193.242.215.255 { 0xc1f2d800, 0xc1f2d9ff, REGISTRY_RIPENCC }, // 193.242.216.0 - 193.242.217.255 { 0xc1f2da00, 0xc1f37fff, REGISTRY_RIPENCC }, // 193.242.218.0 - 193.243.127.255 { 0xc1f38000, 0xc1f381ff, REGISTRY_RIPENCC }, // 193.243.128.0 - 193.243.129.255 { 0xc1f38200, 0xc1f385ff, REGISTRY_RIPENCC }, // 193.243.130.0 - 193.243.133.255 { 0xc1f38600, 0xc1f387ff, REGISTRY_RIPENCC }, // 193.243.134.0 - 193.243.135.255 { 0xc1f38800, 0xc1f391ff, REGISTRY_RIPENCC }, // 193.243.136.0 - 193.243.145.255 { 0xc1f39200, 0xc1f393ff, REGISTRY_RIPENCC }, // 193.243.146.0 - 193.243.147.255 { 0xc1f39400, 0xc1f395ff, REGISTRY_RIPENCC }, // 193.243.148.0 - 193.243.149.255 { 0xc1f39600, 0xc1f397ff, REGISTRY_RIPENCC }, // 193.243.150.0 - 193.243.151.255 { 0xc1f39800, 0xc1f3a0ff, REGISTRY_RIPENCC }, // 193.243.152.0 - 193.243.160.255 { 0xc1f3a100, 0xc1f3a1ff, REGISTRY_RIPENCC }, // 193.243.161.0 - 193.243.161.255 { 0xc1f3a200, 0xc1f3a3ff, REGISTRY_RIPENCC }, // 193.243.162.0 - 193.243.163.255 { 0xc1f3a400, 0xc1f3a6ff, REGISTRY_RIPENCC }, // 193.243.164.0 - 193.243.166.255 { 0xc1f3a700, 0xc1f3abff, REGISTRY_RIPENCC }, // 193.243.167.0 - 193.243.171.255 { 0xc1f3ac00, 0xc1f3afff, REGISTRY_RIPENCC }, // 193.243.172.0 - 193.243.175.255 { 0xc1f3b000, 0xc1f3b5ff, REGISTRY_RIPENCC }, // 193.243.176.0 - 193.243.181.255 { 0xc1f3b600, 0xc1f3b6ff, REGISTRY_RIPENCC }, // 193.243.182.0 - 193.243.182.255 { 0xc1f3b740, 0xc1f3b77f, REGISTRY_RIPENCC }, // 193.243.183.64 - 193.243.183.127 { 0xc1f3b7c0, 0xc1f3b7ff, REGISTRY_RIPENCC }, // 193.243.183.192 - 193.243.183.255 { 0xc1f3b800, 0xc1f60bff, REGISTRY_RIPENCC }, // 193.243.184.0 - 193.246.11.255 { 0xc1f60c00, 0xc1f60fff, REGISTRY_RIPENCC }, // 193.246.12.0 - 193.246.15.255 { 0xc1f61000, 0xc1f617ff, REGISTRY_RIPENCC }, // 193.246.16.0 - 193.246.23.255 { 0xc1f61800, 0xc1f61fff, REGISTRY_RIPENCC }, // 193.246.24.0 - 193.246.31.255 { 0xc1f62000, 0xc1f633ff, REGISTRY_RIPENCC }, // 193.246.32.0 - 193.246.51.255 { 0xc1f63400, 0xc1f637ff, REGISTRY_RIPENCC }, // 193.246.52.0 - 193.246.55.255 { 0xc1f63800, 0xc1f63dff, REGISTRY_RIPENCC }, // 193.246.56.0 - 193.246.61.255 { 0xc1f63e00, 0xc1f661ff, REGISTRY_RIPENCC }, // 193.246.62.0 - 193.246.97.255 { 0xc1f66200, 0xc1f664ff, REGISTRY_RIPENCC }, // 193.246.98.0 - 193.246.100.255 { 0xc1f66500, 0xc1f665ff, REGISTRY_RIPENCC }, // 193.246.101.0 - 193.246.101.255 { 0xc1f66600, 0xc1f669ff, REGISTRY_RIPENCC }, // 193.246.102.0 - 193.246.105.255 { 0xc1f66a00, 0xc1f66fff, REGISTRY_RIPENCC }, // 193.246.106.0 - 193.246.111.255 { 0xc1f67000, 0xc1f677ff, REGISTRY_RIPENCC }, // 193.246.112.0 - 193.246.119.255 { 0xc1f67800, 0xc1f67aff, REGISTRY_RIPENCC }, // 193.246.120.0 - 193.246.122.255 { 0xc1f67b00, 0xc1f67bff, REGISTRY_RIPENCC }, // 193.246.123.0 - 193.246.123.255 { 0xc1f67c00, 0xc1f67eff, REGISTRY_RIPENCC }, // 193.246.124.0 - 193.246.126.255 { 0xc1f67f00, 0xc1f67fff, REGISTRY_RIPENCC }, // 193.246.127.0 - 193.246.127.255 { 0xc1f68000, 0xc1f68fff, REGISTRY_RIPENCC }, // 193.246.128.0 - 193.246.143.255 { 0xc1f69000, 0xc1f690ff, REGISTRY_RIPENCC }, // 193.246.144.0 - 193.246.144.255 { 0xc1f69100, 0xc1f691ff, REGISTRY_RIPENCC }, // 193.246.145.0 - 193.246.145.255 { 0xc1f69200, 0xc1f696ff, REGISTRY_RIPENCC }, // 193.246.146.0 - 193.246.150.255 { 0xc1f69700, 0xc1f698ff, REGISTRY_RIPENCC }, // 193.246.151.0 - 193.246.152.255 { 0xc1f69900, 0xc1f69dff, REGISTRY_RIPENCC }, // 193.246.153.0 - 193.246.157.255 { 0xc1f69e00, 0xc1f69eff, REGISTRY_RIPENCC }, // 193.246.158.0 - 193.246.158.255 { 0xc1f69f00, 0xc1f6a2ff, REGISTRY_RIPENCC }, // 193.246.159.0 - 193.246.162.255 { 0xc1f6a300, 0xc1f6a3ff, REGISTRY_RIPENCC }, // 193.246.163.0 - 193.246.163.255 { 0xc1f6a400, 0xc1f6a5ff, REGISTRY_RIPENCC }, // 193.246.164.0 - 193.246.165.255 { 0xc1f6a600, 0xc1f6a6ff, REGISTRY_RIPENCC }, // 193.246.166.0 - 193.246.166.255 { 0xc1f6a700, 0xc1f6a7ff, REGISTRY_RIPENCC }, // 193.246.167.0 - 193.246.167.255 { 0xc1f6a800, 0xc1f6abff, REGISTRY_RIPENCC }, // 193.246.168.0 - 193.246.171.255 { 0xc1f6ac00, 0xc1f6afff, REGISTRY_RIPENCC }, // 193.246.172.0 - 193.246.175.255 { 0xc1f6b000, 0xc1f6c7ff, REGISTRY_RIPENCC }, // 193.246.176.0 - 193.246.199.255 { 0xc1f6c800, 0xc1f6ceff, REGISTRY_RIPENCC }, // 193.246.200.0 - 193.246.206.255 { 0xc1f6cf00, 0xc1f6cfff, REGISTRY_RIPENCC }, // 193.246.207.0 - 193.246.207.255 { 0xc1f6d000, 0xc1f6dfff, REGISTRY_RIPENCC }, // 193.246.208.0 - 193.246.223.255 { 0xc1f6e000, 0xc1f6f1ff, REGISTRY_RIPENCC }, // 193.246.224.0 - 193.246.241.255 { 0xc1f6f200, 0xc1f6f6ff, REGISTRY_RIPENCC }, // 193.246.242.0 - 193.246.246.255 { 0xc1f6f700, 0xc1f6f7ff, REGISTRY_RIPENCC }, // 193.246.247.0 - 193.246.247.255 { 0xc1f6f800, 0xc1f6fbff, REGISTRY_RIPENCC }, // 193.246.248.0 - 193.246.251.255 { 0xc1f6fc00, 0xc1f723ff, REGISTRY_RIPENCC }, // 193.246.252.0 - 193.247.35.255 { 0xc1f72400, 0xc1f72fff, REGISTRY_RIPENCC }, // 193.247.36.0 - 193.247.47.255 { 0xc1f73000, 0xc1f73fff, REGISTRY_RIPENCC }, // 193.247.48.0 - 193.247.63.255 { 0xc1f74000, 0xc1f741ff, REGISTRY_RIPENCC }, // 193.247.64.0 - 193.247.65.255 { 0xc1f74200, 0xc1f742ff, REGISTRY_RIPENCC }, // 193.247.66.0 - 193.247.66.255 { 0xc1f74300, 0xc1f747ff, REGISTRY_RIPENCC }, // 193.247.67.0 - 193.247.71.255 { 0xc1f74800, 0xc1f748ff, REGISTRY_RIPENCC }, // 193.247.72.0 - 193.247.72.255 { 0xc1f74900, 0xc1f74bff, REGISTRY_RIPENCC }, // 193.247.73.0 - 193.247.75.255 { 0xc1f74c00, 0xc1f74cff, REGISTRY_RIPENCC }, // 193.247.76.0 - 193.247.76.255 { 0xc1f74d00, 0xc1f74dff, REGISTRY_RIPENCC }, // 193.247.77.0 - 193.247.77.255 { 0xc1f74e00, 0xc1f74fff, REGISTRY_RIPENCC }, // 193.247.78.0 - 193.247.79.255 { 0xc1f75000, 0xc1f752ff, REGISTRY_RIPENCC }, // 193.247.80.0 - 193.247.82.255 { 0xc1f75300, 0xc1f755ff, REGISTRY_RIPENCC }, // 193.247.83.0 - 193.247.85.255 { 0xc1f75600, 0xc1f756ff, REGISTRY_RIPENCC }, // 193.247.86.0 - 193.247.86.255 { 0xc1f75700, 0xc1f759ff, REGISTRY_RIPENCC }, // 193.247.87.0 - 193.247.89.255 { 0xc1f75a00, 0xc1f75cff, REGISTRY_RIPENCC }, // 193.247.90.0 - 193.247.92.255 { 0xc1f75d00, 0xc1f75dff, REGISTRY_RIPENCC }, // 193.247.93.0 - 193.247.93.255 { 0xc1f75e00, 0xc1f75eff, REGISTRY_RIPENCC }, // 193.247.94.0 - 193.247.94.255 { 0xc1f75f00, 0xc1f764ff, REGISTRY_RIPENCC }, // 193.247.95.0 - 193.247.100.255 { 0xc1f76500, 0xc1f765ff, REGISTRY_RIPENCC }, // 193.247.101.0 - 193.247.101.255 { 0xc1f76600, 0xc1f766ff, REGISTRY_RIPENCC }, // 193.247.102.0 - 193.247.102.255 { 0xc1f76700, 0xc1f76aff, REGISTRY_RIPENCC }, // 193.247.103.0 - 193.247.106.255 { 0xc1f76b00, 0xc1f77dff, REGISTRY_RIPENCC }, // 193.247.107.0 - 193.247.125.255 { 0xc1f77e00, 0xc1f77fff, REGISTRY_RIPENCC }, // 193.247.126.0 - 193.247.127.255 { 0xc1f78000, 0xc1f790ff, REGISTRY_RIPENCC }, // 193.247.128.0 - 193.247.144.255 { 0xc1f79100, 0xc1f791ff, REGISTRY_RIPENCC }, // 193.247.145.0 - 193.247.145.255 { 0xc1f79200, 0xc1f796ff, REGISTRY_RIPENCC }, // 193.247.146.0 - 193.247.150.255 { 0xc1f79700, 0xc1f797ff, REGISTRY_RIPENCC }, // 193.247.151.0 - 193.247.151.255 { 0xc1f79800, 0xc1f79fff, REGISTRY_RIPENCC }, // 193.247.152.0 - 193.247.159.255 { 0xc1f7a000, 0xc1f7a1ff, REGISTRY_RIPENCC }, // 193.247.160.0 - 193.247.161.255 { 0xc1f7a200, 0xc1f7a4ff, REGISTRY_RIPENCC }, // 193.247.162.0 - 193.247.164.255 { 0xc1f7a500, 0xc1f7b3ff, REGISTRY_RIPENCC }, // 193.247.165.0 - 193.247.179.255 { 0xc1f7b400, 0xc1f7b4ff, REGISTRY_RIPENCC }, // 193.247.180.0 - 193.247.180.255 { 0xc1f7b500, 0xc1f7b5ff, REGISTRY_RIPENCC }, // 193.247.181.0 - 193.247.181.255 { 0xc1f7b600, 0xc1f7b6ff, REGISTRY_RIPENCC }, // 193.247.182.0 - 193.247.182.255 { 0xc1f7b700, 0xc1f7b7ff, REGISTRY_RIPENCC }, // 193.247.183.0 - 193.247.183.255 { 0xc1f7b800, 0xc1f7b9ff, REGISTRY_RIPENCC }, // 193.247.184.0 - 193.247.185.255 { 0xc1f7ba00, 0xc1f7baff, REGISTRY_RIPENCC }, // 193.247.186.0 - 193.247.186.255 { 0xc1f7bb00, 0xc1f7bfff, REGISTRY_RIPENCC }, // 193.247.187.0 - 193.247.191.255 { 0xc1f7c000, 0xc1f7caff, REGISTRY_RIPENCC }, // 193.247.192.0 - 193.247.202.255 { 0xc1f7cb00, 0xc1f7cbff, REGISTRY_RIPENCC }, // 193.247.203.0 - 193.247.203.255 { 0xc1f7cc00, 0xc1f7ccff, REGISTRY_RIPENCC }, // 193.247.204.0 - 193.247.204.255 { 0xc1f7cd00, 0xc1f7d3ff, REGISTRY_RIPENCC }, // 193.247.205.0 - 193.247.211.255 { 0xc1f7d400, 0xc1f7edff, REGISTRY_RIPENCC }, // 193.247.212.0 - 193.247.237.255 { 0xc1f7ee00, 0xc1f7f3ff, REGISTRY_RIPENCC }, // 193.247.238.0 - 193.247.243.255 { 0xc1f7f400, 0xc1f7f7ff, REGISTRY_RIPENCC }, // 193.247.244.0 - 193.247.247.255 { 0xc1f7f800, 0xc1f7f9ff, REGISTRY_RIPENCC }, // 193.247.248.0 - 193.247.249.255 { 0xc1f7fa00, 0xc1f7faff, REGISTRY_RIPENCC }, // 193.247.250.0 - 193.247.250.255 { 0xc1f7fb00, 0xc1f7feff, REGISTRY_RIPENCC }, // 193.247.251.0 - 193.247.254.255 { 0xc1f7ff00, 0xc1fe00ff, REGISTRY_RIPENCC }, // 193.247.255.0 - 193.254.0.255 { 0xc1fe0100, 0xc1fe02ff, REGISTRY_RIPENCC }, // 193.254.1.0 - 193.254.2.255 { 0xc1fe0300, 0xc1fe03ff, REGISTRY_RIPENCC }, // 193.254.3.0 - 193.254.3.255 { 0xc1fe0400, 0xc1fe07ff, REGISTRY_RIPENCC }, // 193.254.4.0 - 193.254.7.255 { 0xc1fe0800, 0xc1fe11ff, REGISTRY_RIPENCC }, // 193.254.8.0 - 193.254.17.255 { 0xc1fe1200, 0xc1fe1aff, REGISTRY_RIPENCC }, // 193.254.18.0 - 193.254.26.255 { 0xc1fe1b00, 0xc1fe1cff, REGISTRY_RIPENCC }, // 193.254.27.0 - 193.254.28.255 { 0xc1fe1d00, 0xc1fe1fff, REGISTRY_RIPENCC }, // 193.254.29.0 - 193.254.31.255 { 0xc1fe2000, 0xc1feafff, REGISTRY_RIPENCC }, // 193.254.32.0 - 193.254.175.255 { 0xc1feb000, 0xc1feb7ff, REGISTRY_RIPENCC }, // 193.254.176.0 - 193.254.183.255 { 0xc1feb800, 0xc1febfff, REGISTRY_RIPENCC }, // 193.254.184.0 - 193.254.191.255 { 0xc1fec000, 0xc1fecbff, REGISTRY_RIPENCC }, // 193.254.192.0 - 193.254.203.255 { 0xc1fecc00, 0xc1fecdff, REGISTRY_RIPENCC }, // 193.254.204.0 - 193.254.205.255 { 0xc1fece00, 0xc1fed9ff, REGISTRY_RIPENCC }, // 193.254.206.0 - 193.254.217.255 { 0xc1feda00, 0xc1fedbff, REGISTRY_RIPENCC }, // 193.254.218.0 - 193.254.219.255 { 0xc1fedc00, 0xc1fee9ff, REGISTRY_RIPENCC }, // 193.254.220.0 - 193.254.233.255 { 0xc1feea00, 0xc1feebff, REGISTRY_RIPENCC }, // 193.254.234.0 - 193.254.235.255 { 0xc1feec00, 0xc1fef3ff, REGISTRY_RIPENCC }, // 193.254.236.0 - 193.254.243.255 { 0xc1fef400, 0xc1fef5ff, REGISTRY_RIPENCC }, // 193.254.244.0 - 193.254.245.255 { 0xc1fef600, 0xc1fef7ff, REGISTRY_RIPENCC }, // 193.254.246.0 - 193.254.247.255 { 0xc1fef800, 0xc1fef9ff, REGISTRY_RIPENCC }, // 193.254.248.0 - 193.254.249.255 { 0xc1fefa00, 0xc1feffff, REGISTRY_RIPENCC }, // 193.254.250.0 - 193.254.255.255 { 0xc1ff0000, 0xc1ffffff, REGISTRY_RIPENCC }, // 193.255.0.0 - 193.255.255.255 { 0xc2000000, 0xc20047ff, REGISTRY_RIPENCC }, // 194.0.0.0 - 194.0.71.255 { 0xc2004800, 0xc20053ff, REGISTRY_RIPENCC }, // 194.0.72.0 - 194.0.83.255 { 0xc2005400, 0xc20067ff, REGISTRY_RIPENCC }, // 194.0.84.0 - 194.0.103.255 { 0xc2006800, 0xc2006bff, REGISTRY_RIPENCC }, // 194.0.104.0 - 194.0.107.255 { 0xc2006c00, 0xc20073ff, REGISTRY_RIPENCC }, // 194.0.108.0 - 194.0.115.255 { 0xc2007400, 0xc20077ff, REGISTRY_RIPENCC }, // 194.0.116.0 - 194.0.119.255 { 0xc2007800, 0xc2007bff, REGISTRY_RIPENCC }, // 194.0.120.0 - 194.0.123.255 { 0xc2007c00, 0xc2007fff, REGISTRY_RIPENCC }, // 194.0.124.0 - 194.0.127.255 { 0xc2008000, 0xc20084ff, REGISTRY_RIPENCC }, // 194.0.128.0 - 194.0.132.255 { 0xc2008500, 0xc20085ff, REGISTRY_RIPENCC }, // 194.0.133.0 - 194.0.133.255 { 0xc2008600, 0xc20087ff, REGISTRY_RIPENCC }, // 194.0.134.0 - 194.0.135.255 { 0xc2008800, 0xc20088ff, REGISTRY_RIPENCC }, // 194.0.136.0 - 194.0.136.255 { 0xc2008900, 0xc2008aff, REGISTRY_RIPENCC }, // 194.0.137.0 - 194.0.138.255 { 0xc2008b00, 0xc2008bff, REGISTRY_RIPENCC }, // 194.0.139.0 - 194.0.139.255 { 0xc2008c00, 0xc2008cff, REGISTRY_RIPENCC }, // 194.0.140.0 - 194.0.140.255 { 0xc2008d00, 0xc2008dff, REGISTRY_RIPENCC }, // 194.0.141.0 - 194.0.141.255 { 0xc2008e00, 0xc20092ff, REGISTRY_RIPENCC }, // 194.0.142.0 - 194.0.146.255 { 0xc2009300, 0xc20093ff, REGISTRY_RIPENCC }, // 194.0.147.0 - 194.0.147.255 { 0xc2009400, 0xc2009eff, REGISTRY_RIPENCC }, // 194.0.148.0 - 194.0.158.255 { 0xc2009f00, 0xc2009fff, REGISTRY_RIPENCC }, // 194.0.159.0 - 194.0.159.255 { 0xc200a000, 0xc200a7ff, REGISTRY_RIPENCC }, // 194.0.160.0 - 194.0.167.255 { 0xc200a800, 0xc200a8ff, REGISTRY_RIPENCC }, // 194.0.168.0 - 194.0.168.255 { 0xc200a900, 0xc200a9ff, REGISTRY_RIPENCC }, // 194.0.169.0 - 194.0.169.255 { 0xc200aa00, 0xc200aaff, REGISTRY_RIPENCC }, // 194.0.170.0 - 194.0.170.255 { 0xc200ab00, 0xc200b0ff, REGISTRY_RIPENCC }, // 194.0.171.0 - 194.0.176.255 { 0xc200b100, 0xc200b4ff, REGISTRY_RIPENCC }, // 194.0.177.0 - 194.0.180.255 { 0xc200b500, 0xc200b9ff, REGISTRY_RIPENCC }, // 194.0.181.0 - 194.0.185.255 { 0xc200ba00, 0xc200baff, REGISTRY_RIPENCC }, // 194.0.186.0 - 194.0.186.255 { 0xc200bb00, 0xc200bbff, REGISTRY_RIPENCC }, // 194.0.187.0 - 194.0.187.255 { 0xc200bc00, 0xc200bdff, REGISTRY_RIPENCC }, // 194.0.188.0 - 194.0.189.255 { 0xc200be00, 0xc200c0ff, REGISTRY_RIPENCC }, // 194.0.190.0 - 194.0.192.255 { 0xc200c100, 0xc200c2ff, REGISTRY_RIPENCC }, // 194.0.193.0 - 194.0.194.255 { 0xc200c300, 0xc200ceff, REGISTRY_RIPENCC }, // 194.0.195.0 - 194.0.206.255 { 0xc200cf00, 0xc200cfff, REGISTRY_RIPENCC }, // 194.0.207.0 - 194.0.207.255 { 0xc200d000, 0xc200dbff, REGISTRY_RIPENCC }, // 194.0.208.0 - 194.0.219.255 { 0xc200dc00, 0xc200ddff, REGISTRY_RIPENCC }, // 194.0.220.0 - 194.0.221.255 { 0xc200de00, 0xc200deff, REGISTRY_RIPENCC }, // 194.0.222.0 - 194.0.222.255 { 0xc200df00, 0xc200dfff, REGISTRY_RIPENCC }, // 194.0.223.0 - 194.0.223.255 { 0xc200e000, 0xc200e0ff, REGISTRY_RIPENCC }, // 194.0.224.0 - 194.0.224.255 { 0xc200e100, 0xc200e1ff, REGISTRY_RIPENCC }, // 194.0.225.0 - 194.0.225.255 { 0xc200e200, 0xc200e2ff, REGISTRY_RIPENCC }, // 194.0.226.0 - 194.0.226.255 { 0xc200e300, 0xc200e4ff, REGISTRY_RIPENCC }, // 194.0.227.0 - 194.0.228.255 { 0xc200e500, 0xc200e6ff, REGISTRY_RIPENCC }, // 194.0.229.0 - 194.0.230.255 { 0xc200e700, 0xc200e7ff, REGISTRY_RIPENCC }, // 194.0.231.0 - 194.0.231.255 { 0xc200e800, 0xc200edff, REGISTRY_RIPENCC }, // 194.0.232.0 - 194.0.237.255 { 0xc200ee00, 0xc200eeff, REGISTRY_RIPENCC }, // 194.0.238.0 - 194.0.238.255 { 0xc200ef00, 0xc200f2ff, REGISTRY_RIPENCC }, // 194.0.239.0 - 194.0.242.255 { 0xc200f300, 0xc200f5ff, REGISTRY_RIPENCC }, // 194.0.243.0 - 194.0.245.255 { 0xc200f600, 0xc200f7ff, REGISTRY_RIPENCC }, // 194.0.246.0 - 194.0.247.255 { 0xc200f800, 0xc200f8ff, REGISTRY_RIPENCC }, // 194.0.248.0 - 194.0.248.255 { 0xc200f900, 0xc20190ff, REGISTRY_RIPENCC }, // 194.0.249.0 - 194.1.144.255 { 0xc2019100, 0xc20191ff, REGISTRY_RIPENCC }, // 194.1.145.0 - 194.1.145.255 { 0xc2019200, 0xc20197ff, REGISTRY_RIPENCC }, // 194.1.146.0 - 194.1.151.255 { 0xc2019800, 0xc20198ff, REGISTRY_RIPENCC }, // 194.1.152.0 - 194.1.152.255 { 0xc2019900, 0xc201b0ff, REGISTRY_RIPENCC }, // 194.1.153.0 - 194.1.176.255 { 0xc201b100, 0xc201b1ff, REGISTRY_RIPENCC }, // 194.1.177.0 - 194.1.177.255 { 0xc201b200, 0xc201b2ff, REGISTRY_RIPENCC }, // 194.1.178.0 - 194.1.178.255 { 0xc201b300, 0xc201b3ff, REGISTRY_RIPENCC }, // 194.1.179.0 - 194.1.179.255 { 0xc201b400, 0xc201b7ff, REGISTRY_RIPENCC }, // 194.1.180.0 - 194.1.183.255 { 0xc201b800, 0xc201b8ff, REGISTRY_RIPENCC }, // 194.1.184.0 - 194.1.184.255 { 0xc201b900, 0xc201b9ff, REGISTRY_RIPENCC }, // 194.1.185.0 - 194.1.185.255 { 0xc201ba00, 0xc201bbff, REGISTRY_RIPENCC }, // 194.1.186.0 - 194.1.187.255 { 0xc201bc00, 0xc201bfff, REGISTRY_RIPENCC }, // 194.1.188.0 - 194.1.191.255 { 0xc201c000, 0xc201c0ff, REGISTRY_RIPENCC }, // 194.1.192.0 - 194.1.192.255 { 0xc201c100, 0xc201c7ff, REGISTRY_RIPENCC }, // 194.1.193.0 - 194.1.199.255 { 0xc201c800, 0xc201c8ff, REGISTRY_RIPENCC }, // 194.1.200.0 - 194.1.200.255 { 0xc201c900, 0xc201cfff, REGISTRY_RIPENCC }, // 194.1.201.0 - 194.1.207.255 { 0xc201d000, 0xc201d0ff, REGISTRY_RIPENCC }, // 194.1.208.0 - 194.1.208.255 { 0xc201d100, 0xc201d9ff, REGISTRY_RIPENCC }, // 194.1.209.0 - 194.1.217.255 { 0xc201da00, 0xc201daff, REGISTRY_RIPENCC }, // 194.1.218.0 - 194.1.218.255 { 0xc201db00, 0xc201f3ff, REGISTRY_RIPENCC }, // 194.1.219.0 - 194.1.243.255 { 0xc201f400, 0xc201f4ff, REGISTRY_RIPENCC }, // 194.1.244.0 - 194.1.244.255 { 0xc201f500, 0xc201ffff, REGISTRY_RIPENCC }, // 194.1.245.0 - 194.1.255.255 { 0xc2020000, 0xc20249ff, REGISTRY_RIPENCC }, // 194.2.0.0 - 194.2.73.255 { 0xc2024a00, 0xc2024bff, REGISTRY_RIPENCC }, // 194.2.74.0 - 194.2.75.255 { 0xc2024c00, 0xc2024cff, REGISTRY_RIPENCC }, // 194.2.76.0 - 194.2.76.255 { 0xc2024d00, 0xc2024dff, REGISTRY_RIPENCC }, // 194.2.77.0 - 194.2.77.255 { 0xc2024e00, 0xc20257ff, REGISTRY_RIPENCC }, // 194.2.78.0 - 194.2.87.255 { 0xc2025800, 0xc2025fff, REGISTRY_RIPENCC }, // 194.2.88.0 - 194.2.95.255 { 0xc2026000, 0xc2029aff, REGISTRY_RIPENCC }, // 194.2.96.0 - 194.2.154.255 { 0xc2029b00, 0xc2029bff, REGISTRY_RIPENCC }, // 194.2.155.0 - 194.2.155.255 { 0xc2029c00, 0xc20387ff, REGISTRY_RIPENCC }, // 194.2.156.0 - 194.3.135.255 { 0xc2038800, 0xc20388ff, REGISTRY_RIPENCC }, // 194.3.136.0 - 194.3.136.255 { 0xc2038900, 0xc203ffff, REGISTRY_RIPENCC }, // 194.3.137.0 - 194.3.255.255 { 0xc2040000, 0xc20407ff, REGISTRY_RIPENCC }, // 194.4.0.0 - 194.4.7.255 { 0xc2040800, 0xc20409ff, REGISTRY_RIPENCC }, // 194.4.8.0 - 194.4.9.255 { 0xc2040a00, 0xc2040dff, REGISTRY_RIPENCC }, // 194.4.10.0 - 194.4.13.255 { 0xc2040e00, 0xc2040fff, REGISTRY_RIPENCC }, // 194.4.14.0 - 194.4.15.255 { 0xc2041000, 0xc20427ff, REGISTRY_RIPENCC }, // 194.4.16.0 - 194.4.39.255 { 0xc2042800, 0xc20447ff, REGISTRY_RIPENCC }, // 194.4.40.0 - 194.4.71.255 { 0xc2044800, 0xc20463ff, REGISTRY_RIPENCC }, // 194.4.72.0 - 194.4.99.255 { 0xc2046400, 0xc20467ff, REGISTRY_RIPENCC }, // 194.4.100.0 - 194.4.103.255 { 0xc2046800, 0xc2048fff, REGISTRY_RIPENCC }, // 194.4.104.0 - 194.4.143.255 { 0xc2049000, 0xc20497ff, REGISTRY_RIPENCC }, // 194.4.144.0 - 194.4.151.255 { 0xc2049800, 0xc20498ff, REGISTRY_RIPENCC }, // 194.4.152.0 - 194.4.152.255 { 0xc2049a00, 0xc204afff, REGISTRY_RIPENCC }, // 194.4.154.0 - 194.4.175.255 { 0xc204b000, 0xc204ffff, REGISTRY_RIPENCC }, // 194.4.176.0 - 194.4.255.255 { 0xc2050000, 0xc20510ff, REGISTRY_RIPENCC }, // 194.5.0.0 - 194.5.16.255 { 0xc2051100, 0xc20517ff, REGISTRY_RIPENCC }, // 194.5.17.0 - 194.5.23.255 { 0xc2051800, 0xc2051dff, REGISTRY_RIPENCC }, // 194.5.24.0 - 194.5.29.255 { 0xc2051e00, 0xc2051fff, REGISTRY_RIPENCC }, // 194.5.30.0 - 194.5.31.255 { 0xc2052000, 0xc20521ff, REGISTRY_RIPENCC }, // 194.5.32.0 - 194.5.33.255 { 0xc2052200, 0xc20527ff, REGISTRY_RIPENCC }, // 194.5.34.0 - 194.5.39.255 { 0xc2052800, 0xc20532ff, REGISTRY_RIPENCC }, // 194.5.40.0 - 194.5.50.255 { 0xc2053300, 0xc20533ff, REGISTRY_RIPENCC }, // 194.5.51.0 - 194.5.51.255 { 0xc2053400, 0xc20536ff, REGISTRY_RIPENCC }, // 194.5.52.0 - 194.5.54.255 { 0xc2053700, 0xc20537ff, REGISTRY_RIPENCC }, // 194.5.55.0 - 194.5.55.255 { 0xc2053800, 0xc2053eff, REGISTRY_RIPENCC }, // 194.5.56.0 - 194.5.62.255 { 0xc2053f00, 0xc2053fff, REGISTRY_RIPENCC }, // 194.5.63.0 - 194.5.63.255 { 0xc2054000, 0xc20547ff, REGISTRY_RIPENCC }, // 194.5.64.0 - 194.5.71.255 { 0xc2054800, 0xc20548ff, REGISTRY_RIPENCC }, // 194.5.72.0 - 194.5.72.255 { 0xc2054900, 0xc20549ff, REGISTRY_RIPENCC }, // 194.5.73.0 - 194.5.73.255 { 0xc2054a00, 0xc2054dff, REGISTRY_RIPENCC }, // 194.5.74.0 - 194.5.77.255 { 0xc2054e00, 0xc2054fff, REGISTRY_RIPENCC }, // 194.5.78.0 - 194.5.79.255 { 0xc2055000, 0xc20551ff, REGISTRY_RIPENCC }, // 194.5.80.0 - 194.5.81.255 { 0xc2055200, 0xc20556ff, REGISTRY_RIPENCC }, // 194.5.82.0 - 194.5.86.255 { 0xc2055700, 0xc20559ff, REGISTRY_RIPENCC }, // 194.5.87.0 - 194.5.89.255 { 0xc2055a00, 0xc2056bff, REGISTRY_RIPENCC }, // 194.5.90.0 - 194.5.107.255 { 0xc2056c00, 0xc2057dff, REGISTRY_RIPENCC }, // 194.5.108.0 - 194.5.125.255 { 0xc2057e00, 0xc20584ff, REGISTRY_RIPENCC }, // 194.5.126.0 - 194.5.132.255 { 0xc2058500, 0xc20586ff, REGISTRY_RIPENCC }, // 194.5.133.0 - 194.5.134.255 { 0xc2058700, 0xc20587ff, REGISTRY_RIPENCC }, // 194.5.135.0 - 194.5.135.255 { 0xc2058800, 0xc20590ff, REGISTRY_RIPENCC }, // 194.5.136.0 - 194.5.144.255 { 0xc2059100, 0xc20595ff, REGISTRY_RIPENCC }, // 194.5.145.0 - 194.5.149.255 { 0xc2059600, 0xc20597ff, REGISTRY_RIPENCC }, // 194.5.150.0 - 194.5.151.255 { 0xc2059800, 0xc205a5ff, REGISTRY_RIPENCC }, // 194.5.152.0 - 194.5.165.255 { 0xc205a600, 0xc205a7ff, REGISTRY_RIPENCC }, // 194.5.166.0 - 194.5.167.255 { 0xc205a800, 0xc205a9ff, REGISTRY_RIPENCC }, // 194.5.168.0 - 194.5.169.255 { 0xc205aa00, 0xc205aeff, REGISTRY_RIPENCC }, // 194.5.170.0 - 194.5.174.255 { 0xc205af00, 0xc205bcff, REGISTRY_RIPENCC }, // 194.5.175.0 - 194.5.188.255 { 0xc205bd00, 0xc205bfff, REGISTRY_RIPENCC }, // 194.5.189.0 - 194.5.191.255 { 0xc205c000, 0xc205c1ff, REGISTRY_RIPENCC }, // 194.5.192.0 - 194.5.193.255 { 0xc205c200, 0xc205c2ff, REGISTRY_RIPENCC }, // 194.5.194.0 - 194.5.194.255 { 0xc205c300, 0xc205c3ff, REGISTRY_RIPENCC }, // 194.5.195.0 - 194.5.195.255 { 0xc205c400, 0xc205ccff, REGISTRY_RIPENCC }, // 194.5.196.0 - 194.5.204.255 { 0xc205cd00, 0xc205e9ff, REGISTRY_RIPENCC }, // 194.5.205.0 - 194.5.233.255 { 0xc205ea00, 0xc205eaff, REGISTRY_RIPENCC }, // 194.5.234.0 - 194.5.234.255 { 0xc205eb00, 0xc205edff, REGISTRY_RIPENCC }, // 194.5.235.0 - 194.5.237.255 { 0xc205ee00, 0xc205efff, REGISTRY_RIPENCC }, // 194.5.238.0 - 194.5.239.255 { 0xc205f000, 0xc205fcff, REGISTRY_RIPENCC }, // 194.5.240.0 - 194.5.252.255 { 0xc205fd00, 0xc205fdff, REGISTRY_RIPENCC }, // 194.5.253.0 - 194.5.253.255 { 0xc205fe00, 0xc206bfff, REGISTRY_RIPENCC }, // 194.5.254.0 - 194.6.191.255 { 0xc206c000, 0xc206cbff, REGISTRY_RIPENCC }, // 194.6.192.0 - 194.6.203.255 { 0xc206cc00, 0xc206cfff, REGISTRY_RIPENCC }, // 194.6.204.0 - 194.6.207.255 { 0xc206d000, 0xc206dfff, REGISTRY_RIPENCC }, // 194.6.208.0 - 194.6.223.255 { 0xc206e100, 0xc206e9ff, REGISTRY_RIPENCC }, // 194.6.225.0 - 194.6.233.255 { 0xc206ea00, 0xc206eaff, REGISTRY_RIPENCC }, // 194.6.234.0 - 194.6.234.255 { 0xc206eb00, 0xc206edff, REGISTRY_RIPENCC }, // 194.6.235.0 - 194.6.237.255 { 0xc206ee00, 0xc206eeff, REGISTRY_RIPENCC }, // 194.6.238.0 - 194.6.238.255 { 0xc206ef00, 0xc206f6ff, REGISTRY_RIPENCC }, // 194.6.239.0 - 194.6.246.255 { 0xc206f700, 0xc206f7ff, REGISTRY_RIPENCC }, // 194.6.247.0 - 194.6.247.255 { 0xc206f800, 0xc206f9ff, REGISTRY_RIPENCC }, // 194.6.248.0 - 194.6.249.255 { 0xc206fa00, 0xc206feff, REGISTRY_RIPENCC }, // 194.6.250.0 - 194.6.254.255 { 0xc206ff00, 0xc206ffff, REGISTRY_RIPENCC }, // 194.6.255.0 - 194.6.255.255 { 0xc2070000, 0xc207ffff, REGISTRY_RIPENCC }, // 194.7.0.0 - 194.7.255.255 { 0xc2080000, 0xc20800ff, REGISTRY_RIPENCC }, // 194.8.0.0 - 194.8.0.255 { 0xc2080100, 0xc20803ff, REGISTRY_RIPENCC }, // 194.8.1.0 - 194.8.3.255 { 0xc2080400, 0xc2080bff, REGISTRY_RIPENCC }, // 194.8.4.0 - 194.8.11.255 { 0xc2080c00, 0xc2080dff, REGISTRY_RIPENCC }, // 194.8.12.0 - 194.8.13.255 { 0xc2080e00, 0xc2081bff, REGISTRY_RIPENCC }, // 194.8.14.0 - 194.8.27.255 { 0xc2081c00, 0xc2081cff, REGISTRY_RIPENCC }, // 194.8.28.0 - 194.8.28.255 { 0xc2081d00, 0xc2082fff, REGISTRY_RIPENCC }, // 194.8.29.0 - 194.8.47.255 { 0xc2083000, 0xc20830ff, REGISTRY_RIPENCC }, // 194.8.48.0 - 194.8.48.255 { 0xc2083100, 0xc2083aff, REGISTRY_RIPENCC }, // 194.8.49.0 - 194.8.58.255 { 0xc2083b00, 0xc2083bff, REGISTRY_RIPENCC }, // 194.8.59.0 - 194.8.59.255 { 0xc2083c00, 0xc20849ff, REGISTRY_RIPENCC }, // 194.8.60.0 - 194.8.73.255 { 0xc2084a00, 0xc2084bff, REGISTRY_RIPENCC }, // 194.8.74.0 - 194.8.75.255 { 0xc2084c00, 0xc20855ff, REGISTRY_RIPENCC }, // 194.8.76.0 - 194.8.85.255 { 0xc2085600, 0xc20857ff, REGISTRY_RIPENCC }, // 194.8.86.0 - 194.8.87.255 { 0xc2085800, 0xc2085fff, REGISTRY_RIPENCC }, // 194.8.88.0 - 194.8.95.255 { 0xc2086000, 0xc2087fff, REGISTRY_RIPENCC }, // 194.8.96.0 - 194.8.127.255 { 0xc2088000, 0xc20883ff, REGISTRY_RIPENCC }, // 194.8.128.0 - 194.8.131.255 { 0xc2088400, 0xc20887ff, REGISTRY_RIPENCC }, // 194.8.132.0 - 194.8.135.255 { 0xc2088800, 0xc2088bff, REGISTRY_RIPENCC }, // 194.8.136.0 - 194.8.139.255 { 0xc2088c00, 0xc2088fff, REGISTRY_RIPENCC }, // 194.8.140.0 - 194.8.143.255 { 0xc2089000, 0xc2089fff, REGISTRY_RIPENCC }, // 194.8.144.0 - 194.8.159.255 { 0xc208a000, 0xc208dfff, REGISTRY_RIPENCC }, // 194.8.160.0 - 194.8.223.255 { 0xc208e000, 0xc208edff, REGISTRY_RIPENCC }, // 194.8.224.0 - 194.8.237.255 { 0xc208ee00, 0xc208efff, REGISTRY_RIPENCC }, // 194.8.238.0 - 194.8.239.255 { 0xc208f000, 0xc208fdff, REGISTRY_RIPENCC }, // 194.8.240.0 - 194.8.253.255 { 0xc208fe00, 0xc20901ff, REGISTRY_RIPENCC }, // 194.8.254.0 - 194.9.1.255 { 0xc2090200, 0xc20905ff, REGISTRY_RIPENCC }, // 194.9.2.0 - 194.9.5.255 { 0xc2090600, 0xc20909ff, REGISTRY_RIPENCC }, // 194.9.6.0 - 194.9.9.255 { 0xc2090a00, 0xc20911ff, REGISTRY_RIPENCC }, // 194.9.10.0 - 194.9.17.255 { 0xc2091200, 0xc20913ff, REGISTRY_RIPENCC }, // 194.9.18.0 - 194.9.19.255 { 0xc2091400, 0xc20917ff, REGISTRY_RIPENCC }, // 194.9.20.0 - 194.9.23.255 { 0xc2091800, 0xc20919ff, REGISTRY_RIPENCC }, // 194.9.24.0 - 194.9.25.255 { 0xc2091a00, 0xc2091fff, REGISTRY_RIPENCC }, // 194.9.26.0 - 194.9.31.255 { 0xc2092000, 0xc20921ff, REGISTRY_RIPENCC }, // 194.9.32.0 - 194.9.33.255 { 0xc2092200, 0xc20937ff, REGISTRY_RIPENCC }, // 194.9.34.0 - 194.9.55.255 { 0xc2093800, 0xc20939ff, REGISTRY_RIPENCC }, // 194.9.56.0 - 194.9.57.255 { 0xc2093a00, 0xc2093dff, REGISTRY_RIPENCC }, // 194.9.58.0 - 194.9.61.255 { 0xc2093e00, 0xc2093fff, REGISTRY_RIPENCC }, // 194.9.62.0 - 194.9.63.255 { 0xc2094000, 0xc20941ff, REGISTRY_AFRINIC }, // 194.9.64.0 - 194.9.65.255 { 0xc2094200, 0xc2094fff, REGISTRY_RIPENCC }, // 194.9.66.0 - 194.9.79.255 { 0xc2095000, 0xc20951ff, REGISTRY_RIPENCC }, // 194.9.80.0 - 194.9.81.255 { 0xc2095200, 0xc20953ff, REGISTRY_AFRINIC }, // 194.9.82.0 - 194.9.83.255 { 0xc2095400, 0xc20955ff, REGISTRY_RIPENCC }, // 194.9.84.0 - 194.9.85.255 { 0xc2095600, 0xc20957ff, REGISTRY_RIPENCC }, // 194.9.86.0 - 194.9.87.255 { 0xc2095800, 0xc20959ff, REGISTRY_RIPENCC }, // 194.9.88.0 - 194.9.89.255 { 0xc2095a00, 0xc2095bff, REGISTRY_RIPENCC }, // 194.9.90.0 - 194.9.91.255 { 0xc2095c00, 0xc209abff, REGISTRY_RIPENCC }, // 194.9.92.0 - 194.9.171.255 { 0xc209ac00, 0xc209b5ff, REGISTRY_RIPENCC }, // 194.9.172.0 - 194.9.181.255 { 0xc209b600, 0xc209b7ff, REGISTRY_RIPENCC }, // 194.9.182.0 - 194.9.183.255 { 0xc209b800, 0xc209bfff, REGISTRY_RIPENCC }, // 194.9.184.0 - 194.9.191.255 { 0xc209c000, 0xc209cfff, REGISTRY_RIPENCC }, // 194.9.192.0 - 194.9.207.255 { 0xc209d000, 0xc209dbff, REGISTRY_RIPENCC }, // 194.9.208.0 - 194.9.219.255 { 0xc209dc00, 0xc209ddff, REGISTRY_RIPENCC }, // 194.9.220.0 - 194.9.221.255 { 0xc209de00, 0xc209deff, REGISTRY_RIPENCC }, // 194.9.222.0 - 194.9.222.255 { 0xc209df00, 0xc209ffff, REGISTRY_RIPENCC }, // 194.9.223.0 - 194.9.255.255 { 0xc20a0000, 0xc20affff, REGISTRY_RIPENCC }, // 194.10.0.0 - 194.10.255.255 { 0xc20b0000, 0xc20b0fff, REGISTRY_RIPENCC }, // 194.11.0.0 - 194.11.15.255 { 0xc20b1000, 0xc20b10ff, REGISTRY_RIPENCC }, // 194.11.16.0 - 194.11.16.255 { 0xc20b1100, 0xc20b12ff, REGISTRY_RIPENCC }, // 194.11.17.0 - 194.11.18.255 { 0xc20b1300, 0xc20b15ff, REGISTRY_RIPENCC }, // 194.11.19.0 - 194.11.21.255 { 0xc20b1600, 0xc20b18ff, REGISTRY_RIPENCC }, // 194.11.22.0 - 194.11.24.255 { 0xc20b1900, 0xc20b19ff, REGISTRY_RIPENCC }, // 194.11.25.0 - 194.11.25.255 { 0xc20b1a00, 0xc20b52ff, REGISTRY_RIPENCC }, // 194.11.26.0 - 194.11.82.255 { 0xc20b5300, 0xc20b57ff, REGISTRY_RIPENCC }, // 194.11.83.0 - 194.11.87.255 { 0xc20b5800, 0xc20b83ff, REGISTRY_RIPENCC }, // 194.11.88.0 - 194.11.131.255 { 0xc20b8400, 0xc20b84ff, REGISTRY_RIPENCC }, // 194.11.132.0 - 194.11.132.255 { 0xc20b8500, 0xc20b99ff, REGISTRY_RIPENCC }, // 194.11.133.0 - 194.11.153.255 { 0xc20b9a00, 0xc20b9bff, REGISTRY_RIPENCC }, // 194.11.154.0 - 194.11.155.255 { 0xc20b9c00, 0xc20ba3ff, REGISTRY_RIPENCC }, // 194.11.156.0 - 194.11.163.255 { 0xc20ba400, 0xc20ba7ff, REGISTRY_RIPENCC }, // 194.11.164.0 - 194.11.167.255 { 0xc20ba800, 0xc20bbbff, REGISTRY_RIPENCC }, // 194.11.168.0 - 194.11.187.255 { 0xc20bbc00, 0xc20bc7ff, REGISTRY_RIPENCC }, // 194.11.188.0 - 194.11.199.255 { 0xc20bc800, 0xc20bd5ff, REGISTRY_RIPENCC }, // 194.11.200.0 - 194.11.213.255 { 0xc20bd600, 0xc20bd8ff, REGISTRY_RIPENCC }, // 194.11.214.0 - 194.11.216.255 { 0xc20bd900, 0xc20bdbff, REGISTRY_RIPENCC }, // 194.11.217.0 - 194.11.219.255 { 0xc20bdc00, 0xc20bdcff, REGISTRY_RIPENCC }, // 194.11.220.0 - 194.11.220.255 { 0xc20bdd00, 0xc20bdfff, REGISTRY_RIPENCC }, // 194.11.221.0 - 194.11.223.255 { 0xc20be000, 0xc20be0ff, REGISTRY_RIPENCC }, // 194.11.224.0 - 194.11.224.255 { 0xc20be100, 0xc20be1ff, REGISTRY_RIPENCC }, // 194.11.225.0 - 194.11.225.255 { 0xc20be200, 0xc20be2ff, REGISTRY_RIPENCC }, // 194.11.226.0 - 194.11.226.255 { 0xc20be300, 0xc20be5ff, REGISTRY_RIPENCC }, // 194.11.227.0 - 194.11.229.255 { 0xc20be600, 0xc20be7ff, REGISTRY_RIPENCC }, // 194.11.230.0 - 194.11.231.255 { 0xc20be800, 0xc20be9ff, REGISTRY_RIPENCC }, // 194.11.232.0 - 194.11.233.255 { 0xc20bea00, 0xc20bebff, REGISTRY_RIPENCC }, // 194.11.234.0 - 194.11.235.255 { 0xc20bec00, 0xc20beeff, REGISTRY_RIPENCC }, // 194.11.236.0 - 194.11.238.255 { 0xc20bef00, 0xc20befff, REGISTRY_RIPENCC }, // 194.11.239.0 - 194.11.239.255 { 0xc20bf000, 0xc20bf2ff, REGISTRY_RIPENCC }, // 194.11.240.0 - 194.11.242.255 { 0xc20bf300, 0xc20bfbff, REGISTRY_RIPENCC }, // 194.11.243.0 - 194.11.251.255 { 0xc20bfc00, 0xc20bfeff, REGISTRY_RIPENCC }, // 194.11.252.0 - 194.11.254.255 { 0xc20bff00, 0xc20c1fff, REGISTRY_RIPENCC }, // 194.11.255.0 - 194.12.31.255 { 0xc20c2000, 0xc20c2fff, REGISTRY_RIPENCC }, // 194.12.32.0 - 194.12.47.255 { 0xc20c3000, 0xc20c3fff, REGISTRY_RIPENCC }, // 194.12.48.0 - 194.12.63.255 { 0xc20c4000, 0xc20cdfff, REGISTRY_RIPENCC }, // 194.12.64.0 - 194.12.223.255 { 0xc20ce000, 0xc20cffff, REGISTRY_RIPENCC }, // 194.12.224.0 - 194.12.255.255 { 0xc20d0000, 0xc20d00ff, REGISTRY_RIPENCC }, // 194.13.0.0 - 194.13.0.255 { 0xc20d0100, 0xc20d01ff, REGISTRY_RIPENCC }, // 194.13.1.0 - 194.13.1.255 { 0xc20d0200, 0xc20d3fff, REGISTRY_RIPENCC }, // 194.13.2.0 - 194.13.63.255 { 0xc20d4000, 0xc20d41ff, REGISTRY_RIPENCC }, // 194.13.64.0 - 194.13.65.255 { 0xc20d4200, 0xc20d42ff, REGISTRY_RIPENCC }, // 194.13.66.0 - 194.13.66.255 { 0xc20d4300, 0xc20d47ff, REGISTRY_RIPENCC }, // 194.13.67.0 - 194.13.71.255 { 0xc20d4800, 0xc20d4fff, REGISTRY_RIPENCC }, // 194.13.72.0 - 194.13.79.255 { 0xc20d5000, 0xc20d57ff, REGISTRY_RIPENCC }, // 194.13.80.0 - 194.13.87.255 { 0xc20d5800, 0xc20d6bff, REGISTRY_RIPENCC }, // 194.13.88.0 - 194.13.107.255 { 0xc20d6c00, 0xc20d6eff, REGISTRY_RIPENCC }, // 194.13.108.0 - 194.13.110.255 { 0xc20d6f00, 0xc20d7bff, REGISTRY_RIPENCC }, // 194.13.111.0 - 194.13.123.255 { 0xc20d7c00, 0xc20d7fff, REGISTRY_RIPENCC }, // 194.13.124.0 - 194.13.127.255 { 0xc20d8000, 0xc20d85ff, REGISTRY_RIPENCC }, // 194.13.128.0 - 194.13.133.255 { 0xc20d8600, 0xc20d86ff, REGISTRY_RIPENCC }, // 194.13.134.0 - 194.13.134.255 { 0xc20d8700, 0xc20d87ff, REGISTRY_RIPENCC }, // 194.13.135.0 - 194.13.135.255 { 0xc20d8800, 0xc20d8dff, REGISTRY_RIPENCC }, // 194.13.136.0 - 194.13.141.255 { 0xc20d9000, 0xc20de7ff, REGISTRY_RIPENCC }, // 194.13.144.0 - 194.13.231.255 { 0xc20de800, 0xc20dedff, REGISTRY_RIPENCC }, // 194.13.232.0 - 194.13.237.255 { 0xc20dee00, 0xc20dffff, REGISTRY_RIPENCC }, // 194.13.238.0 - 194.13.255.255 { 0xc20e0000, 0xc20effff, REGISTRY_RIPENCC }, // 194.14.0.0 - 194.14.255.255 { 0xc20f0000, 0xc20f1fff, REGISTRY_RIPENCC }, // 194.15.0.0 - 194.15.31.255 { 0xc20f2000, 0xc20f3fff, REGISTRY_RIPENCC }, // 194.15.32.0 - 194.15.63.255 { 0xc20f4000, 0xc20f4bff, REGISTRY_RIPENCC }, // 194.15.64.0 - 194.15.75.255 { 0xc20f4c00, 0xc20f73ff, REGISTRY_RIPENCC }, // 194.15.76.0 - 194.15.115.255 { 0xc20f7400, 0xc20f7cff, REGISTRY_RIPENCC }, // 194.15.116.0 - 194.15.124.255 { 0xc20f7d00, 0xc20f7dff, REGISTRY_RIPENCC }, // 194.15.125.0 - 194.15.125.255 { 0xc20f7e00, 0xc20f87ff, REGISTRY_RIPENCC }, // 194.15.126.0 - 194.15.135.255 { 0xc20f8800, 0xc20f88ff, REGISTRY_RIPENCC }, // 194.15.136.0 - 194.15.136.255 { 0xc20f8900, 0xc20f8bff, REGISTRY_RIPENCC }, // 194.15.137.0 - 194.15.139.255 { 0xc20f8c00, 0xc20f8cff, REGISTRY_RIPENCC }, // 194.15.140.0 - 194.15.140.255 { 0xc20f8d00, 0xc20f91ff, REGISTRY_RIPENCC }, // 194.15.141.0 - 194.15.145.255 { 0xc20f9200, 0xc20f92ff, REGISTRY_RIPENCC }, // 194.15.146.0 - 194.15.146.255 { 0xc20f9300, 0xc20f95ff, REGISTRY_RIPENCC }, // 194.15.147.0 - 194.15.149.255 { 0xc20f9600, 0xc20f9bff, REGISTRY_RIPENCC }, // 194.15.150.0 - 194.15.155.255 { 0xc20f9c00, 0xc20fb5ff, REGISTRY_RIPENCC }, // 194.15.156.0 - 194.15.181.255 { 0xc20fb600, 0xc20fb6ff, REGISTRY_RIPENCC }, // 194.15.182.0 - 194.15.182.255 { 0xc20fb700, 0xc20fbbff, REGISTRY_RIPENCC }, // 194.15.183.0 - 194.15.187.255 { 0xc20fbc00, 0xc20fbdff, REGISTRY_RIPENCC }, // 194.15.188.0 - 194.15.189.255 { 0xc20fbe00, 0xc20fbfff, REGISTRY_RIPENCC }, // 194.15.190.0 - 194.15.191.255 { 0xc20fc000, 0xc20fc1ff, REGISTRY_RIPENCC }, // 194.15.192.0 - 194.15.193.255 { 0xc20fc200, 0xc20fc2ff, REGISTRY_RIPENCC }, // 194.15.194.0 - 194.15.194.255 { 0xc20fc300, 0xc20fc5ff, REGISTRY_RIPENCC }, // 194.15.195.0 - 194.15.197.255 { 0xc20fc600, 0xc20fd7ff, REGISTRY_RIPENCC }, // 194.15.198.0 - 194.15.215.255 { 0xc20fd800, 0xc20fd9ff, REGISTRY_RIPENCC }, // 194.15.216.0 - 194.15.217.255 { 0xc20fda00, 0xc20fdaff, REGISTRY_RIPENCC }, // 194.15.218.0 - 194.15.218.255 { 0xc20fdb00, 0xc20fdbff, REGISTRY_RIPENCC }, // 194.15.219.0 - 194.15.219.255 { 0xc20fdc00, 0xc20fdfff, REGISTRY_RIPENCC }, // 194.15.220.0 - 194.15.223.255 { 0xc20fe000, 0xc20fe3ff, REGISTRY_RIPENCC }, // 194.15.224.0 - 194.15.227.255 { 0xc20fe400, 0xc20fe7ff, REGISTRY_RIPENCC }, // 194.15.228.0 - 194.15.231.255 { 0xc20fe800, 0xc20fe8ff, REGISTRY_RIPENCC }, // 194.15.232.0 - 194.15.232.255 { 0xc20fe900, 0xc20fe9ff, REGISTRY_RIPENCC }, // 194.15.233.0 - 194.15.233.255 { 0xc20fea00, 0xc20fecff, REGISTRY_RIPENCC }, // 194.15.234.0 - 194.15.236.255 { 0xc20fed00, 0xc20fedff, REGISTRY_RIPENCC }, // 194.15.237.0 - 194.15.237.255 { 0xc20fee00, 0xc20fefff, REGISTRY_RIPENCC }, // 194.15.238.0 - 194.15.239.255 { 0xc20ff000, 0xc20ff7ff, REGISTRY_RIPENCC }, // 194.15.240.0 - 194.15.247.255 { 0xc20ff800, 0xc20ffbff, REGISTRY_RIPENCC }, // 194.15.248.0 - 194.15.251.255 { 0xc20ffc00, 0xc20fffff, REGISTRY_RIPENCC }, // 194.15.252.0 - 194.15.255.255 { 0xc2100000, 0xc2153fff, REGISTRY_RIPENCC }, // 194.16.0.0 - 194.21.63.255 { 0xc2154000, 0xc2157fff, REGISTRY_ARIN }, // 194.21.64.0 - 194.21.127.255 { 0xc2158000, 0xc215bfff, REGISTRY_RIPENCC }, // 194.21.128.0 - 194.21.191.255 { 0xc215c000, 0xc215ffff, REGISTRY_ARIN }, // 194.21.192.0 - 194.21.255.255 { 0xc2160000, 0xc217ffff, REGISTRY_RIPENCC }, // 194.22.0.0 - 194.23.255.255 { 0xc2180000, 0xc2189fff, REGISTRY_RIPENCC }, // 194.24.0.0 - 194.24.159.255 { 0xc218a000, 0xc218a5ff, REGISTRY_RIPENCC }, // 194.24.160.0 - 194.24.165.255 { 0xc218a600, 0xc218afff, REGISTRY_RIPENCC }, // 194.24.166.0 - 194.24.175.255 { 0xc218b000, 0xc218b1ff, REGISTRY_RIPENCC }, // 194.24.176.0 - 194.24.177.255 { 0xc218b200, 0xc218bbff, REGISTRY_RIPENCC }, // 194.24.178.0 - 194.24.187.255 { 0xc218bc00, 0xc218bdff, REGISTRY_RIPENCC }, // 194.24.188.0 - 194.24.189.255 { 0xc218be00, 0xc218bfff, REGISTRY_RIPENCC }, // 194.24.190.0 - 194.24.191.255 { 0xc218c000, 0xc218dfff, REGISTRY_RIPENCC }, // 194.24.192.0 - 194.24.223.255 { 0xc218e000, 0xc218e7ff, REGISTRY_RIPENCC }, // 194.24.224.0 - 194.24.231.255 { 0xc218e800, 0xc218e9ff, REGISTRY_RIPENCC }, // 194.24.232.0 - 194.24.233.255 { 0xc218ea00, 0xc218f9ff, REGISTRY_RIPENCC }, // 194.24.234.0 - 194.24.249.255 { 0xc218fa00, 0xc218fbff, REGISTRY_RIPENCC }, // 194.24.250.0 - 194.24.251.255 { 0xc218fc00, 0xc218ffff, REGISTRY_RIPENCC }, // 194.24.252.0 - 194.24.255.255 { 0xc2190000, 0xc219ffff, REGISTRY_RIPENCC }, // 194.25.0.0 - 194.25.255.255 { 0xc21a0000, 0xc21a00ff, REGISTRY_RIPENCC }, // 194.26.0.0 - 194.26.0.255 { 0xc21a0100, 0xc21a07ff, REGISTRY_RIPENCC }, // 194.26.1.0 - 194.26.7.255 { 0xc21a0800, 0xc21a0fff, REGISTRY_RIPENCC }, // 194.26.8.0 - 194.26.15.255 { 0xc21a1000, 0xc21a15ff, REGISTRY_RIPENCC }, // 194.26.16.0 - 194.26.21.255 { 0xc21a1600, 0xc21a18ff, REGISTRY_RIPENCC }, // 194.26.22.0 - 194.26.24.255 { 0xc21a1900, 0xc21a19ff, REGISTRY_RIPENCC }, // 194.26.25.0 - 194.26.25.255 { 0xc21a1a00, 0xc21a1aff, REGISTRY_RIPENCC }, // 194.26.26.0 - 194.26.26.255 { 0xc21a1b00, 0xc21a1bff, REGISTRY_RIPENCC }, // 194.26.27.0 - 194.26.27.255 { 0xc21a1c00, 0xc21a1cff, REGISTRY_RIPENCC }, // 194.26.28.0 - 194.26.28.255 { 0xc21a1d00, 0xc21a1fff, REGISTRY_RIPENCC }, // 194.26.29.0 - 194.26.31.255 { 0xc21a2000, 0xc21a44ff, REGISTRY_RIPENCC }, // 194.26.32.0 - 194.26.68.255 { 0xc21a4500, 0xc21a47ff, REGISTRY_RIPENCC }, // 194.26.69.0 - 194.26.71.255 { 0xc21a4800, 0xc21a4bff, REGISTRY_APNIC }, // 194.26.72.0 - 194.26.75.255 { 0xc21a4c00, 0xc21a4fff, REGISTRY_RIPENCC }, // 194.26.76.0 - 194.26.79.255 { 0xc21a5000, 0xc21a63ff, REGISTRY_RIPENCC }, // 194.26.80.0 - 194.26.99.255 { 0xc21a6400, 0xc21a67ff, REGISTRY_RIPENCC }, // 194.26.100.0 - 194.26.103.255 { 0xc21a6800, 0xc21a6bff, REGISTRY_RIPENCC }, // 194.26.104.0 - 194.26.107.255 { 0xc21a6c00, 0xc21a6dff, REGISTRY_RIPENCC }, // 194.26.108.0 - 194.26.109.255 { 0xc21a6e00, 0xc21a71ff, REGISTRY_RIPENCC }, // 194.26.110.0 - 194.26.113.255 { 0xc21a7200, 0xc21a77ff, REGISTRY_RIPENCC }, // 194.26.114.0 - 194.26.119.255 { 0xc21a7800, 0xc21a7fff, REGISTRY_RIPENCC }, // 194.26.120.0 - 194.26.127.255 { 0xc21a8000, 0xc21a8fff, REGISTRY_RIPENCC }, // 194.26.128.0 - 194.26.143.255 { 0xc21a9000, 0xc21a94ff, REGISTRY_RIPENCC }, // 194.26.144.0 - 194.26.148.255 { 0xc21a9500, 0xc21a97ff, REGISTRY_RIPENCC }, // 194.26.149.0 - 194.26.151.255 { 0xc21a9800, 0xc21aa3ff, REGISTRY_RIPENCC }, // 194.26.152.0 - 194.26.163.255 { 0xc21aa400, 0xc21ab7ff, REGISTRY_RIPENCC }, // 194.26.164.0 - 194.26.183.255 { 0xc21ab800, 0xc21abbff, REGISTRY_RIPENCC }, // 194.26.184.0 - 194.26.187.255 { 0xc21abc00, 0xc21aefff, REGISTRY_RIPENCC }, // 194.26.188.0 - 194.26.239.255 { 0xc21af000, 0xc21affff, REGISTRY_RIPENCC }, // 194.26.240.0 - 194.26.255.255 { 0xc21b0000, 0xc21bffff, REGISTRY_RIPENCC }, // 194.27.0.0 - 194.27.255.255 { 0xc21c0000, 0xc21c2bff, REGISTRY_RIPENCC }, // 194.28.0.0 - 194.28.43.255 { 0xc21c2c00, 0xc21c2fff, REGISTRY_RIPENCC }, // 194.28.44.0 - 194.28.47.255 { 0xc21c3000, 0xc21c3bff, REGISTRY_RIPENCC }, // 194.28.48.0 - 194.28.59.255 { 0xc21c3c00, 0xc21c3fff, REGISTRY_RIPENCC }, // 194.28.60.0 - 194.28.63.255 { 0xc21c4000, 0xc21c5fff, REGISTRY_RIPENCC }, // 194.28.64.0 - 194.28.95.255 { 0xc21c6000, 0xc21c63ff, REGISTRY_RIPENCC }, // 194.28.96.0 - 194.28.99.255 { 0xc21c6400, 0xc21c6bff, REGISTRY_RIPENCC }, // 194.28.100.0 - 194.28.107.255 { 0xc21c6c00, 0xc21c6fff, REGISTRY_RIPENCC }, // 194.28.108.0 - 194.28.111.255 { 0xc21c7000, 0xc21c7fff, REGISTRY_RIPENCC }, // 194.28.112.0 - 194.28.127.255 { 0xc21c8000, 0xc21c81ff, REGISTRY_RIPENCC }, // 194.28.128.0 - 194.28.129.255 { 0xc21c8200, 0xc21c9bff, REGISTRY_RIPENCC }, // 194.28.130.0 - 194.28.155.255 { 0xc21c9c00, 0xc21c9fff, REGISTRY_RIPENCC }, // 194.28.156.0 - 194.28.159.255 { 0xc21ca000, 0xc21cbfff, REGISTRY_RIPENCC }, // 194.28.160.0 - 194.28.191.255 { 0xc21cc000, 0xc21cc1ff, REGISTRY_RIPENCC }, // 194.28.192.0 - 194.28.193.255 { 0xc21cc200, 0xc21cdfff, REGISTRY_RIPENCC }, // 194.28.194.0 - 194.28.223.255 { 0xc21ce000, 0xc21ce3ff, REGISTRY_RIPENCC }, // 194.28.224.0 - 194.28.227.255 { 0xc21ce400, 0xc21cffff, REGISTRY_RIPENCC }, // 194.28.228.0 - 194.28.255.255 { 0xc21d0000, 0xc21d1fff, REGISTRY_RIPENCC }, // 194.29.0.0 - 194.29.31.255 { 0xc21d2000, 0xc21d33ff, REGISTRY_RIPENCC }, // 194.29.32.0 - 194.29.51.255 { 0xc21d3400, 0xc21d37ff, REGISTRY_RIPENCC }, // 194.29.52.0 - 194.29.55.255 { 0xc21d3800, 0xc21d41ff, REGISTRY_RIPENCC }, // 194.29.56.0 - 194.29.65.255 { 0xc21d4200, 0xc21d43ff, REGISTRY_RIPENCC }, // 194.29.66.0 - 194.29.67.255 { 0xc21d4400, 0xc21d45ff, REGISTRY_RIPENCC }, // 194.29.68.0 - 194.29.69.255 { 0xc21d4600, 0xc21d46ff, REGISTRY_RIPENCC }, // 194.29.70.0 - 194.29.70.255 { 0xc21d4700, 0xc21d47ff, REGISTRY_RIPENCC }, // 194.29.71.0 - 194.29.71.255 { 0xc21d4800, 0xc21d48ff, REGISTRY_RIPENCC }, // 194.29.72.0 - 194.29.72.255 { 0xc21d4900, 0xc21d49ff, REGISTRY_RIPENCC }, // 194.29.73.0 - 194.29.73.255 { 0xc21d4a00, 0xc21d4dff, REGISTRY_RIPENCC }, // 194.29.74.0 - 194.29.77.255 { 0xc21d4e00, 0xc21d4fff, REGISTRY_RIPENCC }, // 194.29.78.0 - 194.29.79.255 { 0xc21d5000, 0xc21d60ff, REGISTRY_RIPENCC }, // 194.29.80.0 - 194.29.96.255 { 0xc21d6100, 0xc21d63ff, REGISTRY_RIPENCC }, // 194.29.97.0 - 194.29.99.255 { 0xc21d6400, 0xc21d71ff, REGISTRY_RIPENCC }, // 194.29.100.0 - 194.29.113.255 { 0xc21d7200, 0xc21d72ff, REGISTRY_RIPENCC }, // 194.29.114.0 - 194.29.114.255 { 0xc21d7300, 0xc21d75ff, REGISTRY_RIPENCC }, // 194.29.115.0 - 194.29.117.255 { 0xc21d7600, 0xc21d78ff, REGISTRY_RIPENCC }, // 194.29.118.0 - 194.29.120.255 { 0xc21d7900, 0xc21d7fff, REGISTRY_RIPENCC }, // 194.29.121.0 - 194.29.127.255 { 0xc21d8000, 0xc21db9ff, REGISTRY_RIPENCC }, // 194.29.128.0 - 194.29.185.255 { 0xc21dba00, 0xc21dbbff, REGISTRY_RIPENCC }, // 194.29.186.0 - 194.29.187.255 { 0xc21dbc00, 0xc21dbfff, REGISTRY_RIPENCC }, // 194.29.188.0 - 194.29.191.255 { 0xc21dc000, 0xc21dc7ff, REGISTRY_RIPENCC }, // 194.29.192.0 - 194.29.199.255 { 0xc21dc800, 0xc21ddfff, REGISTRY_RIPENCC }, // 194.29.200.0 - 194.29.223.255 { 0xc21de000, 0xc21e9fff, REGISTRY_RIPENCC }, // 194.29.224.0 - 194.30.159.255 { 0xc21ea000, 0xc21ea0ff, REGISTRY_RIPENCC }, // 194.30.160.0 - 194.30.160.255 { 0xc21ea100, 0xc21ea1ff, REGISTRY_RIPENCC }, // 194.30.161.0 - 194.30.161.255 { 0xc21ea200, 0xc21ea4ff, REGISTRY_RIPENCC }, // 194.30.162.0 - 194.30.164.255 { 0xc21ea500, 0xc21ea5ff, REGISTRY_RIPENCC }, // 194.30.165.0 - 194.30.165.255 { 0xc21ea600, 0xc21ea8ff, REGISTRY_RIPENCC }, // 194.30.166.0 - 194.30.168.255 { 0xc21ea900, 0xc21ea9ff, REGISTRY_RIPENCC }, // 194.30.169.0 - 194.30.169.255 { 0xc21eaa00, 0xc21eaaff, REGISTRY_RIPENCC }, // 194.30.170.0 - 194.30.170.255 { 0xc21eac00, 0xc21eacff, REGISTRY_RIPENCC }, // 194.30.172.0 - 194.30.172.255 { 0xc21ead00, 0xc21eadff, REGISTRY_RIPENCC }, // 194.30.173.0 - 194.30.173.255 { 0xc21eae00, 0xc21eafff, REGISTRY_RIPENCC }, // 194.30.174.0 - 194.30.175.255 { 0xc21eb000, 0xc21eb1ff, REGISTRY_RIPENCC }, // 194.30.176.0 - 194.30.177.255 { 0xc21eb200, 0xc21eb6ff, REGISTRY_RIPENCC }, // 194.30.178.0 - 194.30.182.255 { 0xc21eb700, 0xc21eb7ff, REGISTRY_RIPENCC }, // 194.30.183.0 - 194.30.183.255 { 0xc21eb800, 0xc21eb9ff, REGISTRY_RIPENCC }, // 194.30.184.0 - 194.30.185.255 { 0xc21eba00, 0xc21ebaff, REGISTRY_RIPENCC }, // 194.30.186.0 - 194.30.186.255 { 0xc21ebb00, 0xc21ebcff, REGISTRY_RIPENCC }, // 194.30.187.0 - 194.30.188.255 { 0xc21ebd00, 0xc21ebdff, REGISTRY_RIPENCC }, // 194.30.189.0 - 194.30.189.255 { 0xc21ebe00, 0xc21ebfff, REGISTRY_RIPENCC }, // 194.30.190.0 - 194.30.191.255 { 0xc21ec000, 0xc21effff, REGISTRY_RIPENCC }, // 194.30.192.0 - 194.30.255.255 { 0xc21f0000, 0xc21f00ff, REGISTRY_RIPENCC }, // 194.31.0.0 - 194.31.0.255 { 0xc21f0100, 0xc21f01ff, REGISTRY_RIPENCC }, // 194.31.1.0 - 194.31.1.255 { 0xc21f0200, 0xc21f03ff, REGISTRY_RIPENCC }, // 194.31.2.0 - 194.31.3.255 { 0xc21f0400, 0xc21f05ff, REGISTRY_RIPENCC }, // 194.31.4.0 - 194.31.5.255 { 0xc21f0600, 0xc21f07ff, REGISTRY_RIPENCC }, // 194.31.6.0 - 194.31.7.255 { 0xc21f0800, 0xc21f0dff, REGISTRY_RIPENCC }, // 194.31.8.0 - 194.31.13.255 { 0xc21f0e00, 0xc21f26ff, REGISTRY_RIPENCC }, // 194.31.14.0 - 194.31.38.255 { 0xc21f2700, 0xc21f27ff, REGISTRY_RIPENCC }, // 194.31.39.0 - 194.31.39.255 { 0xc21f2800, 0xc21f32ff, REGISTRY_RIPENCC }, // 194.31.40.0 - 194.31.50.255 { 0xc21f3300, 0xc21f37ff, REGISTRY_RIPENCC }, // 194.31.51.0 - 194.31.55.255 { 0xc21f3800, 0xc21f3aff, REGISTRY_RIPENCC }, // 194.31.56.0 - 194.31.58.255 { 0xc21f3b00, 0xc21f3cff, REGISTRY_RIPENCC }, // 194.31.59.0 - 194.31.60.255 { 0xc21f3d00, 0xc21f3fff, REGISTRY_RIPENCC }, // 194.31.61.0 - 194.31.63.255 { 0xc21f4000, 0xc21f40ff, REGISTRY_RIPENCC }, // 194.31.64.0 - 194.31.64.255 { 0xc21f4100, 0xc21f41ff, REGISTRY_RIPENCC }, // 194.31.65.0 - 194.31.65.255 { 0xc21f4200, 0xc21f45ff, REGISTRY_RIPENCC }, // 194.31.66.0 - 194.31.69.255 { 0xc21f4600, 0xc21f47ff, REGISTRY_RIPENCC }, // 194.31.70.0 - 194.31.71.255 { 0xc21f4800, 0xc21f4bff, REGISTRY_RIPENCC }, // 194.31.72.0 - 194.31.75.255 { 0xc21f4c00, 0xc21f4eff, REGISTRY_RIPENCC }, // 194.31.76.0 - 194.31.78.255 { 0xc21f4f00, 0xc21f4fff, REGISTRY_RIPENCC }, // 194.31.79.0 - 194.31.79.255 { 0xc21f5000, 0xc21f53ff, REGISTRY_RIPENCC }, // 194.31.80.0 - 194.31.83.255 { 0xc21f5400, 0xc21f55ff, REGISTRY_RIPENCC }, // 194.31.84.0 - 194.31.85.255 { 0xc21f5600, 0xc21f56ff, REGISTRY_RIPENCC }, // 194.31.86.0 - 194.31.86.255 { 0xc21f5700, 0xc21f5bff, REGISTRY_RIPENCC }, // 194.31.87.0 - 194.31.91.255 { 0xc21f5c00, 0xc21f5cff, REGISTRY_RIPENCC }, // 194.31.92.0 - 194.31.92.255 { 0xc21f5d00, 0xc21f5dff, REGISTRY_RIPENCC }, // 194.31.93.0 - 194.31.93.255 { 0xc21f5e00, 0xc21f5fff, REGISTRY_RIPENCC }, // 194.31.94.0 - 194.31.95.255 { 0xc21f6000, 0xc21f6fff, REGISTRY_RIPENCC }, // 194.31.96.0 - 194.31.111.255 { 0xc21f7000, 0xc21f7fff, REGISTRY_RIPENCC }, // 194.31.112.0 - 194.31.127.255 { 0xc21f8000, 0xc21fbfff, REGISTRY_RIPENCC }, // 194.31.128.0 - 194.31.191.255 { 0xc21fc000, 0xc21fc0ff, REGISTRY_RIPENCC }, // 194.31.192.0 - 194.31.192.255 { 0xc21fc100, 0xc21fc5ff, REGISTRY_RIPENCC }, // 194.31.193.0 - 194.31.197.255 { 0xc21fc600, 0xc21fc6ff, REGISTRY_RIPENCC }, // 194.31.198.0 - 194.31.198.255 { 0xc21fc700, 0xc21fc7ff, REGISTRY_RIPENCC }, // 194.31.199.0 - 194.31.199.255 { 0xc21fc800, 0xc21fcbff, REGISTRY_RIPENCC }, // 194.31.200.0 - 194.31.203.255 { 0xc21fcc00, 0xc21fcdff, REGISTRY_RIPENCC }, // 194.31.204.0 - 194.31.205.255 { 0xc21fce00, 0xc21fd3ff, REGISTRY_RIPENCC }, // 194.31.206.0 - 194.31.211.255 { 0xc21fd400, 0xc21fdcff, REGISTRY_RIPENCC }, // 194.31.212.0 - 194.31.220.255 { 0xc21fdd00, 0xc21fddff, REGISTRY_RIPENCC }, // 194.31.221.0 - 194.31.221.255 { 0xc21fde00, 0xc21fe0ff, REGISTRY_RIPENCC }, // 194.31.222.0 - 194.31.224.255 { 0xc21fe100, 0xc21fe1ff, REGISTRY_RIPENCC }, // 194.31.225.0 - 194.31.225.255 { 0xc21fe200, 0xc21fe2ff, REGISTRY_RIPENCC }, // 194.31.226.0 - 194.31.226.255 { 0xc21fe300, 0xc21febff, REGISTRY_RIPENCC }, // 194.31.227.0 - 194.31.235.255 { 0xc21fec00, 0xc21fefff, REGISTRY_RIPENCC }, // 194.31.236.0 - 194.31.239.255 { 0xc21ff000, 0xc21ff3ff, REGISTRY_RIPENCC }, // 194.31.240.0 - 194.31.243.255 { 0xc21ff400, 0xc21ff5ff, REGISTRY_RIPENCC }, // 194.31.244.0 - 194.31.245.255 { 0xc21ff600, 0xc21ff6ff, REGISTRY_RIPENCC }, // 194.31.246.0 - 194.31.246.255 { 0xc21ff700, 0xc21ff7ff, REGISTRY_RIPENCC }, // 194.31.247.0 - 194.31.247.255 { 0xc21ff800, 0xc21ff9ff, REGISTRY_RIPENCC }, // 194.31.248.0 - 194.31.249.255 { 0xc21ffa00, 0xc21ffbff, REGISTRY_RIPENCC }, // 194.31.250.0 - 194.31.251.255 { 0xc21ffc00, 0xc21ffcff, REGISTRY_RIPENCC }, // 194.31.252.0 - 194.31.252.255 { 0xc21ffd00, 0xc21ffdff, REGISTRY_RIPENCC }, // 194.31.253.0 - 194.31.253.255 { 0xc21ffe00, 0xc21ffeff, REGISTRY_RIPENCC }, // 194.31.254.0 - 194.31.254.255 { 0xc21fff00, 0xc21fffff, REGISTRY_RIPENCC }, // 194.31.255.0 - 194.31.255.255 { 0xc2200000, 0xc22043ff, REGISTRY_RIPENCC }, // 194.32.0.0 - 194.32.67.255 { 0xc2204400, 0xc22044ff, REGISTRY_RIPENCC }, // 194.32.68.0 - 194.32.68.255 { 0xc2204500, 0xc22045ff, REGISTRY_RIPENCC }, // 194.32.69.0 - 194.32.69.255 { 0xc2204600, 0xc22046ff, REGISTRY_RIPENCC }, // 194.32.70.0 - 194.32.70.255 { 0xc2204700, 0xc2204bff, REGISTRY_RIPENCC }, // 194.32.71.0 - 194.32.75.255 { 0xc2204c00, 0xc22051ff, REGISTRY_RIPENCC }, // 194.32.76.0 - 194.32.81.255 { 0xc2205200, 0xc22052ff, REGISTRY_RIPENCC }, // 194.32.82.0 - 194.32.82.255 { 0xc2205300, 0xc22053ff, REGISTRY_RIPENCC }, // 194.32.83.0 - 194.32.83.255 { 0xc2205400, 0xc22057ff, REGISTRY_RIPENCC }, // 194.32.84.0 - 194.32.87.255 { 0xc2205800, 0xc22095ff, REGISTRY_RIPENCC }, // 194.32.88.0 - 194.32.149.255 { 0xc2209600, 0xc22097ff, REGISTRY_RIPENCC }, // 194.32.150.0 - 194.32.151.255 { 0xc2209800, 0xc2209fff, REGISTRY_RIPENCC }, // 194.32.152.0 - 194.32.159.255 { 0xc220a000, 0xc220a0ff, REGISTRY_RIPENCC }, // 194.32.160.0 - 194.32.160.255 { 0xc220a100, 0xc220a1ff, REGISTRY_RIPENCC }, // 194.32.161.0 - 194.32.161.255 { 0xc220a300, 0xc220a3ff, REGISTRY_RIPENCC }, // 194.32.163.0 - 194.32.163.255 { 0xc220a400, 0xc220a4ff, REGISTRY_RIPENCC }, // 194.32.164.0 - 194.32.164.255 { 0xc220a500, 0xc220afff, REGISTRY_RIPENCC }, // 194.32.165.0 - 194.32.175.255 { 0xc220b000, 0xc220c3ff, REGISTRY_RIPENCC }, // 194.32.176.0 - 194.32.195.255 { 0xc220c400, 0xc220ceff, REGISTRY_RIPENCC }, // 194.32.196.0 - 194.32.206.255 { 0xc220cf00, 0xc220dbff, REGISTRY_RIPENCC }, // 194.32.207.0 - 194.32.219.255 { 0xc220dc00, 0xc220dcff, REGISTRY_RIPENCC }, // 194.32.220.0 - 194.32.220.255 { 0xc220dd00, 0xc220ddff, REGISTRY_RIPENCC }, // 194.32.221.0 - 194.32.221.255 { 0xc220de00, 0xc220ffff, REGISTRY_RIPENCC }, // 194.32.222.0 - 194.32.255.255 { 0xc2210000, 0xc22107ff, REGISTRY_RIPENCC }, // 194.33.0.0 - 194.33.7.255 { 0xc2210800, 0xc2210bff, REGISTRY_RIPENCC }, // 194.33.8.0 - 194.33.11.255 { 0xc2210c00, 0xc2210cff, REGISTRY_RIPENCC }, // 194.33.12.0 - 194.33.12.255 { 0xc2210d00, 0xc2210dff, REGISTRY_RIPENCC }, // 194.33.13.0 - 194.33.13.255 { 0xc2210e00, 0xc2210fff, REGISTRY_RIPENCC }, // 194.33.14.0 - 194.33.15.255 { 0xc2211000, 0xc22110ff, REGISTRY_RIPENCC }, // 194.33.16.0 - 194.33.16.255 { 0xc2211100, 0xc22113ff, REGISTRY_RIPENCC }, // 194.33.17.0 - 194.33.19.255 { 0xc2211400, 0xc22117ff, REGISTRY_RIPENCC }, // 194.33.20.0 - 194.33.23.255 { 0xc2211800, 0xc2211cff, REGISTRY_RIPENCC }, // 194.33.24.0 - 194.33.28.255 { 0xc2211d00, 0xc2211dff, REGISTRY_RIPENCC }, // 194.33.29.0 - 194.33.29.255 { 0xc2211e00, 0xc2211fff, REGISTRY_RIPENCC }, // 194.33.30.0 - 194.33.31.255 { 0xc2212000, 0xc22120ff, REGISTRY_RIPENCC }, // 194.33.32.0 - 194.33.32.255 { 0xc2212100, 0xc22121ff, REGISTRY_RIPENCC }, // 194.33.33.0 - 194.33.33.255 { 0xc2212200, 0xc22131ff, REGISTRY_RIPENCC }, // 194.33.34.0 - 194.33.49.255 { 0xc2213200, 0xc22139ff, REGISTRY_RIPENCC }, // 194.33.50.0 - 194.33.57.255 { 0xc2213a00, 0xc2213bff, REGISTRY_RIPENCC }, // 194.33.58.0 - 194.33.59.255 { 0xc2213c00, 0xc2213cff, REGISTRY_RIPENCC }, // 194.33.60.0 - 194.33.60.255 { 0xc2213d00, 0xc2213eff, REGISTRY_RIPENCC }, // 194.33.61.0 - 194.33.62.255 { 0xc2213f00, 0xc2213fff, REGISTRY_RIPENCC }, // 194.33.63.0 - 194.33.63.255 { 0xc2214000, 0xc22143ff, REGISTRY_RIPENCC }, // 194.33.64.0 - 194.33.67.255 { 0xc2214400, 0xc22157ff, REGISTRY_RIPENCC }, // 194.33.68.0 - 194.33.87.255 { 0xc2215800, 0xc2215bff, REGISTRY_RIPENCC }, // 194.33.88.0 - 194.33.91.255 { 0xc2215c00, 0xc22163ff, REGISTRY_RIPENCC }, // 194.33.92.0 - 194.33.99.255 { 0xc2216400, 0xc22167ff, REGISTRY_RIPENCC }, // 194.33.100.0 - 194.33.103.255 { 0xc2216800, 0xc22194ff, REGISTRY_RIPENCC }, // 194.33.104.0 - 194.33.148.255 { 0xc2219500, 0xc22195ff, REGISTRY_ARIN }, // 194.33.149.0 - 194.33.149.255 { 0xc2219600, 0xc2219fff, REGISTRY_RIPENCC }, // 194.33.150.0 - 194.33.159.255 { 0xc221a000, 0xc221b5ff, REGISTRY_RIPENCC }, // 194.33.160.0 - 194.33.181.255 { 0xc221b600, 0xc221b6ff, REGISTRY_ARIN }, // 194.33.182.0 - 194.33.182.255 { 0xc221b700, 0xc221b7ff, REGISTRY_RIPENCC }, // 194.33.183.0 - 194.33.183.255 { 0xc221b800, 0xc221b8ff, REGISTRY_RIPENCC }, // 194.33.184.0 - 194.33.184.255 { 0xc221b900, 0xc221beff, REGISTRY_RIPENCC }, // 194.33.185.0 - 194.33.190.255 { 0xc221bf00, 0xc221bfff, REGISTRY_RIPENCC }, // 194.33.191.0 - 194.33.191.255 { 0xc221c000, 0xc2223dff, REGISTRY_RIPENCC }, // 194.33.192.0 - 194.34.61.255 { 0xc2223e00, 0xc2223fff, REGISTRY_RIPENCC }, // 194.34.62.0 - 194.34.63.255 { 0xc2224000, 0xc2225fff, REGISTRY_RIPENCC }, // 194.34.64.0 - 194.34.95.255 { 0xc2226000, 0xc2226fff, REGISTRY_RIPENCC }, // 194.34.96.0 - 194.34.111.255 { 0xc2227000, 0xc2227fff, REGISTRY_RIPENCC }, // 194.34.112.0 - 194.34.127.255 { 0xc2228000, 0xc22289ff, REGISTRY_RIPENCC }, // 194.34.128.0 - 194.34.137.255 { 0xc2228a00, 0xc2228aff, REGISTRY_RIPENCC }, // 194.34.138.0 - 194.34.138.255 { 0xc2228b00, 0xc2228bff, REGISTRY_ARIN }, // 194.34.139.0 - 194.34.139.255 { 0xc2228c00, 0xc22297ff, REGISTRY_RIPENCC }, // 194.34.140.0 - 194.34.151.255 { 0xc2229800, 0xc222a3ff, REGISTRY_RIPENCC }, // 194.34.152.0 - 194.34.163.255 { 0xc222a400, 0xc222a7ff, REGISTRY_RIPENCC }, // 194.34.164.0 - 194.34.167.255 { 0xc222a800, 0xc222adff, REGISTRY_RIPENCC }, // 194.34.168.0 - 194.34.173.255 { 0xc222ae00, 0xc222aeff, REGISTRY_RIPENCC }, // 194.34.174.0 - 194.34.174.255 { 0xc222af00, 0xc222afff, REGISTRY_ARIN }, // 194.34.175.0 - 194.34.175.255 { 0xc222b000, 0xc222bfff, REGISTRY_RIPENCC }, // 194.34.176.0 - 194.34.191.255 { 0xc222c000, 0xc222c5ff, REGISTRY_RIPENCC }, // 194.34.192.0 - 194.34.197.255 { 0xc222c600, 0xc222c6ff, REGISTRY_RIPENCC }, // 194.34.198.0 - 194.34.198.255 { 0xc222c700, 0xc222cbff, REGISTRY_RIPENCC }, // 194.34.199.0 - 194.34.203.255 { 0xc222cc00, 0xc222dfff, REGISTRY_RIPENCC }, // 194.34.204.0 - 194.34.223.255 { 0xc222e000, 0xc2230fff, REGISTRY_RIPENCC }, // 194.34.224.0 - 194.35.15.255 { 0xc2231000, 0xc2231fff, REGISTRY_RIPENCC }, // 194.35.16.0 - 194.35.31.255 { 0xc2232000, 0xc2233fff, REGISTRY_RIPENCC }, // 194.35.32.0 - 194.35.63.255 { 0xc2234000, 0xc22348ff, REGISTRY_RIPENCC }, // 194.35.64.0 - 194.35.72.255 { 0xc2234900, 0xc22349ff, REGISTRY_RIPENCC }, // 194.35.73.0 - 194.35.73.255 { 0xc2234a00, 0xc2234aff, REGISTRY_RIPENCC }, // 194.35.74.0 - 194.35.74.255 { 0xc2234b00, 0xc2234eff, REGISTRY_RIPENCC }, // 194.35.75.0 - 194.35.78.255 { 0xc2234f00, 0xc2234fff, REGISTRY_RIPENCC }, // 194.35.79.0 - 194.35.79.255 { 0xc2235000, 0xc22351ff, REGISTRY_RIPENCC }, // 194.35.80.0 - 194.35.81.255 { 0xc2235200, 0xc22353ff, REGISTRY_RIPENCC }, // 194.35.82.0 - 194.35.83.255 { 0xc2235400, 0xc2235cff, REGISTRY_RIPENCC }, // 194.35.84.0 - 194.35.92.255 { 0xc2235d00, 0xc2235eff, REGISTRY_RIPENCC }, // 194.35.93.0 - 194.35.94.255 { 0xc2235f00, 0xc2237fff, REGISTRY_RIPENCC }, // 194.35.95.0 - 194.35.127.255 { 0xc2238000, 0xc223afff, REGISTRY_RIPENCC }, // 194.35.128.0 - 194.35.175.255 { 0xc223b000, 0xc223b6ff, REGISTRY_RIPENCC }, // 194.35.176.0 - 194.35.182.255 { 0xc223b700, 0xc223b7ff, REGISTRY_RIPENCC }, // 194.35.183.0 - 194.35.183.255 { 0xc223b800, 0xc223b9ff, REGISTRY_RIPENCC }, // 194.35.184.0 - 194.35.185.255 { 0xc223ba00, 0xc223baff, REGISTRY_RIPENCC }, // 194.35.186.0 - 194.35.186.255 { 0xc223bb00, 0xc223bdff, REGISTRY_RIPENCC }, // 194.35.187.0 - 194.35.189.255 { 0xc223be00, 0xc223beff, REGISTRY_RIPENCC }, // 194.35.190.0 - 194.35.190.255 { 0xc223bf00, 0xc223bfff, REGISTRY_ARIN }, // 194.35.191.0 - 194.35.191.255 { 0xc223c000, 0xc223dfff, REGISTRY_RIPENCC }, // 194.35.192.0 - 194.35.223.255 { 0xc223e000, 0xc223efff, REGISTRY_RIPENCC }, // 194.35.224.0 - 194.35.239.255 { 0xc223f000, 0xc223f7ff, REGISTRY_RIPENCC }, // 194.35.240.0 - 194.35.247.255 { 0xc223f800, 0xc223fbff, REGISTRY_RIPENCC }, // 194.35.248.0 - 194.35.251.255 { 0xc223fc00, 0xc223ffff, REGISTRY_RIPENCC }, // 194.35.252.0 - 194.35.255.255 { 0xc2240000, 0xc22400ff, REGISTRY_RIPENCC }, // 194.36.0.0 - 194.36.0.255 { 0xc2240100, 0xc22412ff, REGISTRY_RIPENCC }, // 194.36.1.0 - 194.36.18.255 { 0xc2241300, 0xc22413ff, REGISTRY_RIPENCC }, // 194.36.19.0 - 194.36.19.255 { 0xc2241400, 0xc22417ff, REGISTRY_RIPENCC }, // 194.36.20.0 - 194.36.23.255 { 0xc2241800, 0xc2242fff, REGISTRY_RIPENCC }, // 194.36.24.0 - 194.36.47.255 { 0xc2243000, 0xc22439ff, REGISTRY_RIPENCC }, // 194.36.48.0 - 194.36.57.255 { 0xc2243a00, 0xc22441ff, REGISTRY_RIPENCC }, // 194.36.58.0 - 194.36.65.255 { 0xc2244200, 0xc22447ff, REGISTRY_RIPENCC }, // 194.36.66.0 - 194.36.71.255 { 0xc2244800, 0xc2244bff, REGISTRY_RIPENCC }, // 194.36.72.0 - 194.36.75.255 { 0xc2244c00, 0xc2244fff, REGISTRY_RIPENCC }, // 194.36.76.0 - 194.36.79.255 { 0xc2245000, 0xc22451ff, REGISTRY_RIPENCC }, // 194.36.80.0 - 194.36.81.255 { 0xc2245200, 0xc22452ff, REGISTRY_RIPENCC }, // 194.36.82.0 - 194.36.82.255 { 0xc2245300, 0xc2245bff, REGISTRY_RIPENCC }, // 194.36.83.0 - 194.36.91.255 { 0xc2245c00, 0xc2245dff, REGISTRY_RIPENCC }, // 194.36.92.0 - 194.36.93.255 { 0xc2245e00, 0xc2246fff, REGISTRY_RIPENCC }, // 194.36.94.0 - 194.36.111.255 { 0xc2247000, 0xc22473ff, REGISTRY_RIPENCC }, // 194.36.112.0 - 194.36.115.255 { 0xc2247400, 0xc22478ff, REGISTRY_RIPENCC }, // 194.36.116.0 - 194.36.120.255 { 0xc2247900, 0xc22479ff, REGISTRY_RIPENCC }, // 194.36.121.0 - 194.36.121.255 { 0xc2247a00, 0xc2247fff, REGISTRY_RIPENCC }, // 194.36.122.0 - 194.36.127.255 { 0xc2248000, 0xc22488ff, REGISTRY_RIPENCC }, // 194.36.128.0 - 194.36.136.255 { 0xc2248900, 0xc22497ff, REGISTRY_RIPENCC }, // 194.36.137.0 - 194.36.151.255 { 0xc2249800, 0xc224a6ff, REGISTRY_RIPENCC }, // 194.36.152.0 - 194.36.166.255 { 0xc224a700, 0xc224a7ff, REGISTRY_RIPENCC }, // 194.36.167.0 - 194.36.167.255 { 0xc224a800, 0xc224a8ff, REGISTRY_RIPENCC }, // 194.36.168.0 - 194.36.168.255 { 0xc224a900, 0xc224d1ff, REGISTRY_RIPENCC }, // 194.36.169.0 - 194.36.209.255 { 0xc224d200, 0xc224dcff, REGISTRY_RIPENCC }, // 194.36.210.0 - 194.36.220.255 { 0xc224dd00, 0xc224dfff, REGISTRY_RIPENCC }, // 194.36.221.0 - 194.36.223.255 { 0xc224e000, 0xc224f1ff, REGISTRY_RIPENCC }, // 194.36.224.0 - 194.36.241.255 { 0xc224f200, 0xc224f7ff, REGISTRY_RIPENCC }, // 194.36.242.0 - 194.36.247.255 { 0xc224f800, 0xc22500ff, REGISTRY_RIPENCC }, // 194.36.248.0 - 194.37.0.255 { 0xc2250100, 0xc22501ff, REGISTRY_RIPENCC }, // 194.37.1.0 - 194.37.1.255 { 0xc2250200, 0xc2254fff, REGISTRY_RIPENCC }, // 194.37.2.0 - 194.37.79.255 { 0xc2255000, 0xc22553ff, REGISTRY_RIPENCC }, // 194.37.80.0 - 194.37.83.255 { 0xc2255400, 0xc22557ff, REGISTRY_RIPENCC }, // 194.37.84.0 - 194.37.87.255 { 0xc2255800, 0xc22567ff, REGISTRY_RIPENCC }, // 194.37.88.0 - 194.37.103.255 { 0xc2256800, 0xc225f9ff, REGISTRY_RIPENCC }, // 194.37.104.0 - 194.37.249.255 { 0xc225fa00, 0xc225fbff, REGISTRY_RIPENCC }, // 194.37.250.0 - 194.37.251.255 { 0xc225fc00, 0xc225fdff, REGISTRY_RIPENCC }, // 194.37.252.0 - 194.37.253.255 { 0xc225fe00, 0xc225feff, REGISTRY_RIPENCC }, // 194.37.254.0 - 194.37.254.255 { 0xc225ff00, 0xc225ffff, REGISTRY_RIPENCC }, // 194.37.255.0 - 194.37.255.255 { 0xc2260000, 0xc226ffff, REGISTRY_RIPENCC }, // 194.38.0.0 - 194.38.255.255 { 0xc2270000, 0xc2271bff, REGISTRY_RIPENCC }, // 194.39.0.0 - 194.39.27.255 { 0xc2271c00, 0xc2272fff, REGISTRY_RIPENCC }, // 194.39.28.0 - 194.39.47.255 { 0xc2273000, 0xc2273fff, REGISTRY_RIPENCC }, // 194.39.48.0 - 194.39.63.255 { 0xc2274000, 0xc22747ff, REGISTRY_RIPENCC }, // 194.39.64.0 - 194.39.71.255 { 0xc2274800, 0xc2274dff, REGISTRY_RIPENCC }, // 194.39.72.0 - 194.39.77.255 { 0xc2274e00, 0xc2274fff, REGISTRY_RIPENCC }, // 194.39.78.0 - 194.39.79.255 { 0xc2275000, 0xc22751ff, REGISTRY_RIPENCC }, // 194.39.80.0 - 194.39.81.255 { 0xc2275200, 0xc22753ff, REGISTRY_RIPENCC }, // 194.39.82.0 - 194.39.83.255 { 0xc2275400, 0xc22755ff, REGISTRY_RIPENCC }, // 194.39.84.0 - 194.39.85.255 { 0xc2275600, 0xc22756ff, REGISTRY_RIPENCC }, // 194.39.86.0 - 194.39.86.255 { 0xc2275700, 0xc22762ff, REGISTRY_RIPENCC }, // 194.39.87.0 - 194.39.98.255 { 0xc2276300, 0xc22763ff, REGISTRY_RIPENCC }, // 194.39.99.0 - 194.39.99.255 { 0xc2276400, 0xc22764ff, REGISTRY_RIPENCC }, // 194.39.100.0 - 194.39.100.255 { 0xc2276500, 0xc22767ff, REGISTRY_RIPENCC }, // 194.39.101.0 - 194.39.103.255 { 0xc2276800, 0xc2276bff, REGISTRY_RIPENCC }, // 194.39.104.0 - 194.39.107.255 { 0xc2276c00, 0xc2276fff, REGISTRY_RIPENCC }, // 194.39.108.0 - 194.39.111.255 { 0xc2277000, 0xc22779ff, REGISTRY_RIPENCC }, // 194.39.112.0 - 194.39.121.255 { 0xc2277a00, 0xc2277fff, REGISTRY_RIPENCC }, // 194.39.122.0 - 194.39.127.255 { 0xc2278000, 0xc2278dff, REGISTRY_RIPENCC }, // 194.39.128.0 - 194.39.141.255 { 0xc2278e00, 0xc2278eff, REGISTRY_RIPENCC }, // 194.39.142.0 - 194.39.142.255 { 0xc2278f00, 0xc2278fff, REGISTRY_RIPENCC }, // 194.39.143.0 - 194.39.143.255 { 0xc2279000, 0xc22795ff, REGISTRY_RIPENCC }, // 194.39.144.0 - 194.39.149.255 { 0xc2279600, 0xc22797ff, REGISTRY_RIPENCC }, // 194.39.150.0 - 194.39.151.255 { 0xc2279800, 0xc2279aff, REGISTRY_RIPENCC }, // 194.39.152.0 - 194.39.154.255 { 0xc2279b00, 0xc2279cff, REGISTRY_RIPENCC }, // 194.39.155.0 - 194.39.156.255 { 0xc2279d00, 0xc2279dff, REGISTRY_RIPENCC }, // 194.39.157.0 - 194.39.157.255 { 0xc2279e00, 0xc2279fff, REGISTRY_RIPENCC }, // 194.39.158.0 - 194.39.159.255 { 0xc227a000, 0xc227abff, REGISTRY_RIPENCC }, // 194.39.160.0 - 194.39.171.255 { 0xc227ac00, 0xc227adff, REGISTRY_RIPENCC }, // 194.39.172.0 - 194.39.173.255 { 0xc227ae00, 0xc227aeff, REGISTRY_RIPENCC }, // 194.39.174.0 - 194.39.174.255 { 0xc227af00, 0xc227afff, REGISTRY_RIPENCC }, // 194.39.175.0 - 194.39.175.255 { 0xc227b000, 0xc227b0ff, REGISTRY_RIPENCC }, // 194.39.176.0 - 194.39.176.255 { 0xc227b100, 0xc227b1ff, REGISTRY_RIPENCC }, // 194.39.177.0 - 194.39.177.255 { 0xc227b200, 0xc227b3ff, REGISTRY_RIPENCC }, // 194.39.178.0 - 194.39.179.255 { 0xc227b400, 0xc227baff, REGISTRY_RIPENCC }, // 194.39.180.0 - 194.39.186.255 { 0xc227bb00, 0xc227bbff, REGISTRY_RIPENCC }, // 194.39.187.0 - 194.39.187.255 { 0xc227bc00, 0xc227c3ff, REGISTRY_RIPENCC }, // 194.39.188.0 - 194.39.195.255 { 0xc227c400, 0xc227d5ff, REGISTRY_RIPENCC }, // 194.39.196.0 - 194.39.213.255 { 0xc227d600, 0xc227d6ff, REGISTRY_RIPENCC }, // 194.39.214.0 - 194.39.214.255 { 0xc227d700, 0xc227d9ff, REGISTRY_RIPENCC }, // 194.39.215.0 - 194.39.217.255 { 0xc227da00, 0xc227dfff, REGISTRY_RIPENCC }, // 194.39.218.0 - 194.39.223.255 { 0xc227e000, 0xc227efff, REGISTRY_RIPENCC }, // 194.39.224.0 - 194.39.239.255 { 0xc2280000, 0xc228ebff, REGISTRY_RIPENCC }, // 194.40.0.0 - 194.40.235.255 { 0xc228ec00, 0xc228f4ff, REGISTRY_RIPENCC }, // 194.40.236.0 - 194.40.244.255 { 0xc228f500, 0xc228f5ff, REGISTRY_RIPENCC }, // 194.40.245.0 - 194.40.245.255 { 0xc228f600, 0xc228f8ff, REGISTRY_RIPENCC }, // 194.40.246.0 - 194.40.248.255 { 0xc228f900, 0xc228f9ff, REGISTRY_RIPENCC }, // 194.40.249.0 - 194.40.249.255 { 0xc228fa00, 0xc228ffff, REGISTRY_RIPENCC }, // 194.40.250.0 - 194.40.255.255 { 0xc2290000, 0xc22900ff, REGISTRY_RIPENCC }, // 194.41.0.0 - 194.41.0.255 { 0xc2290100, 0xc22901ff, REGISTRY_RIPENCC }, // 194.41.1.0 - 194.41.1.255 { 0xc2290200, 0xc22907ff, REGISTRY_RIPENCC }, // 194.41.2.0 - 194.41.7.255 { 0xc2290800, 0xc22908ff, REGISTRY_RIPENCC }, // 194.41.8.0 - 194.41.8.255 { 0xc2290900, 0xc22909ff, REGISTRY_RIPENCC }, // 194.41.9.0 - 194.41.9.255 { 0xc2290a00, 0xc2290bff, REGISTRY_RIPENCC }, // 194.41.10.0 - 194.41.11.255 { 0xc2290c00, 0xc2291fff, REGISTRY_RIPENCC }, // 194.41.12.0 - 194.41.31.255 { 0xc2292000, 0xc22926ff, REGISTRY_RIPENCC }, // 194.41.32.0 - 194.41.38.255 { 0xc2292700, 0xc22927ff, REGISTRY_RIPENCC }, // 194.41.39.0 - 194.41.39.255 { 0xc2292800, 0xc22938ff, REGISTRY_RIPENCC }, // 194.41.40.0 - 194.41.56.255 { 0xc2293900, 0xc22939ff, REGISTRY_RIPENCC }, // 194.41.57.0 - 194.41.57.255 { 0xc2293a00, 0xc2293dff, REGISTRY_RIPENCC }, // 194.41.58.0 - 194.41.61.255 { 0xc2293e00, 0xc2296fff, REGISTRY_RIPENCC }, // 194.41.62.0 - 194.41.111.255 { 0xc2297000, 0xc2297fff, REGISTRY_RIPENCC }, // 194.41.112.0 - 194.41.127.255 { 0xc2298000, 0xc229ffff, REGISTRY_RIPENCC }, // 194.41.128.0 - 194.41.255.255 { 0xc22a0000, 0xc22a27ff, REGISTRY_RIPENCC }, // 194.42.0.0 - 194.42.39.255 { 0xc22a2800, 0xc22a2eff, REGISTRY_RIPENCC }, // 194.42.40.0 - 194.42.46.255 { 0xc22a2f80, 0xc22a3fff, REGISTRY_RIPENCC }, // 194.42.47.128 - 194.42.63.255 { 0xc22a4000, 0xc22a61ff, REGISTRY_RIPENCC }, // 194.42.64.0 - 194.42.97.255 { 0xc22a6200, 0xc22a67ff, REGISTRY_RIPENCC }, // 194.42.98.0 - 194.42.103.255 { 0xc22a6800, 0xc22a69ff, REGISTRY_RIPENCC }, // 194.42.104.0 - 194.42.105.255 { 0xc22a6a00, 0xc22a75ff, REGISTRY_RIPENCC }, // 194.42.106.0 - 194.42.117.255 { 0xc22a7600, 0xc22a77ff, REGISTRY_RIPENCC }, // 194.42.118.0 - 194.42.119.255 { 0xc22a7800, 0xc22a7fff, REGISTRY_RIPENCC }, // 194.42.120.0 - 194.42.127.255 { 0xc22a8000, 0xc22a9fff, REGISTRY_RIPENCC }, // 194.42.128.0 - 194.42.159.255 { 0xc22aa000, 0xc22aa2ff, REGISTRY_RIPENCC }, // 194.42.160.0 - 194.42.162.255 { 0xc22aa300, 0xc22aafff, REGISTRY_RIPENCC }, // 194.42.163.0 - 194.42.175.255 { 0xc22ab000, 0xc22adfff, REGISTRY_RIPENCC }, // 194.42.176.0 - 194.42.223.255 { 0xc22ae000, 0xc22d13ff, REGISTRY_RIPENCC }, // 194.42.224.0 - 194.45.19.255 { 0xc22d1400, 0xc22d14ff, REGISTRY_RIPENCC }, // 194.45.20.0 - 194.45.20.255 { 0xc22d1500, 0xc22d15ff, REGISTRY_RIPENCC }, // 194.45.21.0 - 194.45.21.255 { 0xc22d1600, 0xc22d16ff, REGISTRY_RIPENCC }, // 194.45.22.0 - 194.45.22.255 { 0xc22d1700, 0xc22d19ff, REGISTRY_RIPENCC }, // 194.45.23.0 - 194.45.25.255 { 0xc22d1a00, 0xc22d1bff, REGISTRY_RIPENCC }, // 194.45.26.0 - 194.45.27.255 { 0xc22d1c00, 0xc22d20ff, REGISTRY_RIPENCC }, // 194.45.28.0 - 194.45.32.255 { 0xc22d2100, 0xc22d21ff, REGISTRY_RIPENCC }, // 194.45.33.0 - 194.45.33.255 { 0xc22d2200, 0xc22d2dff, REGISTRY_RIPENCC }, // 194.45.34.0 - 194.45.45.255 { 0xc22d2e00, 0xc22d2eff, REGISTRY_RIPENCC }, // 194.45.46.0 - 194.45.46.255 { 0xc22d2f00, 0xc22d2fff, REGISTRY_RIPENCC }, // 194.45.47.0 - 194.45.47.255 { 0xc22d3000, 0xc22d30ff, REGISTRY_RIPENCC }, // 194.45.48.0 - 194.45.48.255 { 0xc22d3100, 0xc22d33ff, REGISTRY_RIPENCC }, // 194.45.49.0 - 194.45.51.255 { 0xc22d3400, 0xc22d38ff, REGISTRY_RIPENCC }, // 194.45.52.0 - 194.45.56.255 { 0xc22d3900, 0xc22d46ff, REGISTRY_RIPENCC }, // 194.45.57.0 - 194.45.70.255 { 0xc22d4700, 0xc22d47ff, REGISTRY_RIPENCC }, // 194.45.71.0 - 194.45.71.255 { 0xc22d4800, 0xc22d5dff, REGISTRY_RIPENCC }, // 194.45.72.0 - 194.45.93.255 { 0xc22d5e00, 0xc22d5eff, REGISTRY_RIPENCC }, // 194.45.94.0 - 194.45.94.255 { 0xc22d5f00, 0xc22d60ff, REGISTRY_RIPENCC }, // 194.45.95.0 - 194.45.96.255 { 0xc22d6100, 0xc22d61ff, REGISTRY_RIPENCC }, // 194.45.97.0 - 194.45.97.255 { 0xc22d6200, 0xc22d66ff, REGISTRY_RIPENCC }, // 194.45.98.0 - 194.45.102.255 { 0xc22d6700, 0xc22d69ff, REGISTRY_RIPENCC }, // 194.45.103.0 - 194.45.105.255 { 0xc22d6a00, 0xc22d7dff, REGISTRY_RIPENCC }, // 194.45.106.0 - 194.45.125.255 { 0xc22d7e00, 0xc22d7fff, REGISTRY_RIPENCC }, // 194.45.126.0 - 194.45.127.255 { 0xc22d8000, 0xc22d86ff, REGISTRY_RIPENCC }, // 194.45.128.0 - 194.45.134.255 { 0xc22d8700, 0xc22d87ff, REGISTRY_RIPENCC }, // 194.45.135.0 - 194.45.135.255 { 0xc22d8800, 0xc22d8dff, REGISTRY_RIPENCC }, // 194.45.136.0 - 194.45.141.255 { 0xc22d8e00, 0xc22d9aff, REGISTRY_RIPENCC }, // 194.45.142.0 - 194.45.154.255 { 0xc22d9b00, 0xc22da4ff, REGISTRY_RIPENCC }, // 194.45.155.0 - 194.45.164.255 { 0xc22da500, 0xc22da5ff, REGISTRY_RIPENCC }, // 194.45.165.0 - 194.45.165.255 { 0xc22da600, 0xc22da6ff, REGISTRY_RIPENCC }, // 194.45.166.0 - 194.45.166.255 { 0xc22da700, 0xc22da7ff, REGISTRY_RIPENCC }, // 194.45.167.0 - 194.45.167.255 { 0xc22da800, 0xc22db7ff, REGISTRY_RIPENCC }, // 194.45.168.0 - 194.45.183.255 { 0xc22db800, 0xc22db8ff, REGISTRY_RIPENCC }, // 194.45.184.0 - 194.45.184.255 { 0xc22db900, 0xc22dc7ff, REGISTRY_RIPENCC }, // 194.45.185.0 - 194.45.199.255 { 0xc22dc800, 0xc22dc8ff, REGISTRY_RIPENCC }, // 194.45.200.0 - 194.45.200.255 { 0xc22dc900, 0xc22dcfff, REGISTRY_RIPENCC }, // 194.45.201.0 - 194.45.207.255 { 0xc22dd000, 0xc22dd7ff, REGISTRY_RIPENCC }, // 194.45.208.0 - 194.45.215.255 { 0xc22dd800, 0xc22de2ff, REGISTRY_RIPENCC }, // 194.45.216.0 - 194.45.226.255 { 0xc22de300, 0xc22de3ff, REGISTRY_RIPENCC }, // 194.45.227.0 - 194.45.227.255 { 0xc22de400, 0xc22de7ff, REGISTRY_RIPENCC }, // 194.45.228.0 - 194.45.231.255 { 0xc22de800, 0xc22de8ff, REGISTRY_RIPENCC }, // 194.45.232.0 - 194.45.232.255 { 0xc22de900, 0xc22debff, REGISTRY_RIPENCC }, // 194.45.233.0 - 194.45.235.255 { 0xc22dec00, 0xc22dedff, REGISTRY_RIPENCC }, // 194.45.236.0 - 194.45.237.255 { 0xc22dee00, 0xc23000ff, REGISTRY_RIPENCC }, // 194.45.238.0 - 194.48.0.255 { 0xc2300200, 0xc23002ff, REGISTRY_RIPENCC }, // 194.48.2.0 - 194.48.2.255 { 0xc2300300, 0xc23003ff, REGISTRY_RIPENCC }, // 194.48.3.0 - 194.48.3.255 { 0xc2300400, 0xc2305bff, REGISTRY_RIPENCC }, // 194.48.4.0 - 194.48.91.255 { 0xc2305c00, 0xc2306bff, REGISTRY_RIPENCC }, // 194.48.92.0 - 194.48.107.255 { 0xc2306c00, 0xc2308bff, REGISTRY_RIPENCC }, // 194.48.108.0 - 194.48.139.255 { 0xc2308c00, 0xc23097ff, REGISTRY_RIPENCC }, // 194.48.140.0 - 194.48.151.255 { 0xc2309c00, 0xc230a3ff, REGISTRY_RIPENCC }, // 194.48.156.0 - 194.48.163.255 { 0xc230a400, 0xc230abff, REGISTRY_RIPENCC }, // 194.48.164.0 - 194.48.171.255 { 0xc230ac00, 0xc230adff, REGISTRY_RIPENCC }, // 194.48.172.0 - 194.48.173.255 { 0xc230ae00, 0xc230b7ff, REGISTRY_RIPENCC }, // 194.48.174.0 - 194.48.183.255 { 0xc230b800, 0xc230bbff, REGISTRY_RIPENCC }, // 194.48.184.0 - 194.48.187.255 { 0xc230bc00, 0xc230bdff, REGISTRY_RIPENCC }, // 194.48.188.0 - 194.48.189.255 { 0xc230be00, 0xc230beff, REGISTRY_RIPENCC }, // 194.48.190.0 - 194.48.190.255 { 0xc230bf00, 0xc230c1ff, REGISTRY_RIPENCC }, // 194.48.191.0 - 194.48.193.255 { 0xc230c200, 0xc230c5ff, REGISTRY_RIPENCC }, // 194.48.194.0 - 194.48.197.255 { 0xc230c700, 0xc230ccff, REGISTRY_RIPENCC }, // 194.48.199.0 - 194.48.204.255 { 0xc230cd00, 0xc230d2ff, REGISTRY_RIPENCC }, // 194.48.205.0 - 194.48.210.255 { 0xc230d300, 0xc230d3ff, REGISTRY_RIPENCC }, // 194.48.211.0 - 194.48.211.255 { 0xc230d400, 0xc230d8ff, REGISTRY_RIPENCC }, // 194.48.212.0 - 194.48.216.255 { 0xc230d900, 0xc230d9ff, REGISTRY_RIPENCC }, // 194.48.217.0 - 194.48.217.255 { 0xc230da00, 0xc230dbff, REGISTRY_RIPENCC }, // 194.48.218.0 - 194.48.219.255 { 0xc230dc00, 0xc230ebff, REGISTRY_RIPENCC }, // 194.48.220.0 - 194.48.235.255 { 0xc230ec00, 0xc230f1ff, REGISTRY_RIPENCC }, // 194.48.236.0 - 194.48.241.255 { 0xc230f200, 0xc230f2ff, REGISTRY_RIPENCC }, // 194.48.242.0 - 194.48.242.255 { 0xc230f300, 0xc230f3ff, REGISTRY_RIPENCC }, // 194.48.243.0 - 194.48.243.255 { 0xc230f400, 0xc230fdff, REGISTRY_RIPENCC }, // 194.48.244.0 - 194.48.253.255 { 0xc230fe00, 0xc230feff, REGISTRY_RIPENCC }, // 194.48.254.0 - 194.48.254.255 { 0xc230ff00, 0xc23106ff, REGISTRY_RIPENCC }, // 194.48.255.0 - 194.49.6.255 { 0xc2310700, 0xc23107ff, REGISTRY_RIPENCC }, // 194.49.7.0 - 194.49.7.255 { 0xc2310800, 0xc23112ff, REGISTRY_RIPENCC }, // 194.49.8.0 - 194.49.18.255 { 0xc2311300, 0xc23113ff, REGISTRY_RIPENCC }, // 194.49.19.0 - 194.49.19.255 { 0xc2311400, 0xc23114ff, REGISTRY_RIPENCC }, // 194.49.20.0 - 194.49.20.255 { 0xc2311500, 0xc23130ff, REGISTRY_RIPENCC }, // 194.49.21.0 - 194.49.48.255 { 0xc2313100, 0xc23131ff, REGISTRY_ARIN }, // 194.49.49.0 - 194.49.49.255 { 0xc2313200, 0xc23133ff, REGISTRY_RIPENCC }, // 194.49.50.0 - 194.49.51.255 { 0xc2313400, 0xc23135ff, REGISTRY_RIPENCC }, // 194.49.52.0 - 194.49.53.255 { 0xc2313600, 0xc23136ff, REGISTRY_RIPENCC }, // 194.49.54.0 - 194.49.54.255 { 0xc2313700, 0xc2313bff, REGISTRY_RIPENCC }, // 194.49.55.0 - 194.49.59.255 { 0xc2313c00, 0xc23141ff, REGISTRY_RIPENCC }, // 194.49.60.0 - 194.49.65.255 { 0xc2314200, 0xc23145ff, REGISTRY_RIPENCC }, // 194.49.66.0 - 194.49.69.255 { 0xc2314600, 0xc23146ff, REGISTRY_RIPENCC }, // 194.49.70.0 - 194.49.70.255 { 0xc2314700, 0xc23147ff, REGISTRY_RIPENCC }, // 194.49.71.0 - 194.49.71.255 { 0xc2314800, 0xc2314bff, REGISTRY_RIPENCC }, // 194.49.72.0 - 194.49.75.255 { 0xc2314c00, 0xc2314cff, REGISTRY_RIPENCC }, // 194.49.76.0 - 194.49.76.255 { 0xc2314d00, 0xc2314dff, REGISTRY_RIPENCC }, // 194.49.77.0 - 194.49.77.255 { 0xc2314e00, 0xc23154ff, REGISTRY_RIPENCC }, // 194.49.78.0 - 194.49.84.255 { 0xc2315500, 0xc23155ff, REGISTRY_RIPENCC }, // 194.49.85.0 - 194.49.85.255 { 0xc2315600, 0xc2315bff, REGISTRY_RIPENCC }, // 194.49.86.0 - 194.49.91.255 { 0xc2315c00, 0xc2315cff, REGISTRY_RIPENCC }, // 194.49.92.0 - 194.49.92.255 { 0xc2315d00, 0xc2316dff, REGISTRY_RIPENCC }, // 194.49.93.0 - 194.49.109.255 { 0xc2316e00, 0xc2316eff, REGISTRY_RIPENCC }, // 194.49.110.0 - 194.49.110.255 { 0xc2316f00, 0xc23171ff, REGISTRY_RIPENCC }, // 194.49.111.0 - 194.49.113.255 { 0xc2317200, 0xc23172ff, REGISTRY_RIPENCC }, // 194.49.114.0 - 194.49.114.255 { 0xc2317300, 0xc23174ff, REGISTRY_RIPENCC }, // 194.49.115.0 - 194.49.116.255 { 0xc2317500, 0xc231ffff, REGISTRY_RIPENCC }, // 194.49.117.0 - 194.49.255.255 { 0xc2320000, 0xc23201ff, REGISTRY_RIPENCC }, // 194.50.0.0 - 194.50.1.255 { 0xc2320200, 0xc23202ff, REGISTRY_RIPENCC }, // 194.50.2.0 - 194.50.2.255 { 0xc2320300, 0xc23205ff, REGISTRY_RIPENCC }, // 194.50.3.0 - 194.50.5.255 { 0xc2320600, 0xc23206ff, REGISTRY_RIPENCC }, // 194.50.6.0 - 194.50.6.255 { 0xc2320700, 0xc23208ff, REGISTRY_RIPENCC }, // 194.50.7.0 - 194.50.8.255 { 0xc2320900, 0xc2320bff, REGISTRY_RIPENCC }, // 194.50.9.0 - 194.50.11.255 { 0xc2320c00, 0xc23217ff, REGISTRY_RIPENCC }, // 194.50.12.0 - 194.50.23.255 { 0xc2321800, 0xc23218ff, REGISTRY_RIPENCC }, // 194.50.24.0 - 194.50.24.255 { 0xc2321900, 0xc23219ff, REGISTRY_RIPENCC }, // 194.50.25.0 - 194.50.25.255 { 0xc2321a00, 0xc23224ff, REGISTRY_RIPENCC }, // 194.50.26.0 - 194.50.36.255 { 0xc2322500, 0xc23225ff, REGISTRY_RIPENCC }, // 194.50.37.0 - 194.50.37.255 { 0xc2322600, 0xc2322dff, REGISTRY_RIPENCC }, // 194.50.38.0 - 194.50.45.255 { 0xc2322e00, 0xc2322eff, REGISTRY_RIPENCC }, // 194.50.46.0 - 194.50.46.255 { 0xc2322f00, 0xc2322fff, REGISTRY_RIPENCC }, // 194.50.47.0 - 194.50.47.255 { 0xc2323100, 0xc23233ff, REGISTRY_RIPENCC }, // 194.50.49.0 - 194.50.51.255 { 0xc2323400, 0xc23234ff, REGISTRY_RIPENCC }, // 194.50.52.0 - 194.50.52.255 { 0xc2323500, 0xc23235ff, REGISTRY_RIPENCC }, // 194.50.53.0 - 194.50.53.255 { 0xc2323600, 0xc23236ff, REGISTRY_RIPENCC }, // 194.50.54.0 - 194.50.54.255 { 0xc2323700, 0xc2323aff, REGISTRY_RIPENCC }, // 194.50.55.0 - 194.50.58.255 { 0xc2323b00, 0xc2323bff, REGISTRY_RIPENCC }, // 194.50.59.0 - 194.50.59.255 { 0xc2323c00, 0xc23247ff, REGISTRY_RIPENCC }, // 194.50.60.0 - 194.50.71.255 { 0xc2324800, 0xc2324aff, REGISTRY_RIPENCC }, // 194.50.72.0 - 194.50.74.255 { 0xc2324b00, 0xc23251ff, REGISTRY_RIPENCC }, // 194.50.75.0 - 194.50.81.255 { 0xc2325200, 0xc23252ff, REGISTRY_RIPENCC }, // 194.50.82.0 - 194.50.82.255 { 0xc2325300, 0xc2325bff, REGISTRY_RIPENCC }, // 194.50.83.0 - 194.50.91.255 { 0xc2325c00, 0xc2325cff, REGISTRY_RIPENCC }, // 194.50.92.0 - 194.50.92.255 { 0xc2325d00, 0xc2325dff, REGISTRY_RIPENCC }, // 194.50.93.0 - 194.50.93.255 { 0xc2325e00, 0xc2325eff, REGISTRY_RIPENCC }, // 194.50.94.0 - 194.50.94.255 { 0xc2325f00, 0xc23262ff, REGISTRY_RIPENCC }, // 194.50.95.0 - 194.50.98.255 { 0xc2326300, 0xc23263ff, REGISTRY_RIPENCC }, // 194.50.99.0 - 194.50.99.255 { 0xc2326400, 0xc2326eff, REGISTRY_RIPENCC }, // 194.50.100.0 - 194.50.110.255 { 0xc2326f00, 0xc2326fff, REGISTRY_RIPENCC }, // 194.50.111.0 - 194.50.111.255 { 0xc2327000, 0xc23273ff, REGISTRY_RIPENCC }, // 194.50.112.0 - 194.50.115.255 { 0xc2327400, 0xc23274ff, REGISTRY_RIPENCC }, // 194.50.116.0 - 194.50.116.255 { 0xc2327500, 0xc2327eff, REGISTRY_RIPENCC }, // 194.50.117.0 - 194.50.126.255 { 0xc2327f00, 0xc2327fff, REGISTRY_RIPENCC }, // 194.50.127.0 - 194.50.127.255 { 0xc2328000, 0xc23298ff, REGISTRY_RIPENCC }, // 194.50.128.0 - 194.50.152.255 { 0xc2329900, 0xc2329aff, REGISTRY_RIPENCC }, // 194.50.153.0 - 194.50.154.255 { 0xc2329b00, 0xc232a2ff, REGISTRY_RIPENCC }, // 194.50.155.0 - 194.50.162.255 { 0xc232a300, 0xc232a3ff, REGISTRY_RIPENCC }, // 194.50.163.0 - 194.50.163.255 { 0xc232a400, 0xc232a8ff, REGISTRY_RIPENCC }, // 194.50.164.0 - 194.50.168.255 { 0xc232aa00, 0xc232abff, REGISTRY_RIPENCC }, // 194.50.170.0 - 194.50.171.255 { 0xc232ac00, 0xc232afff, REGISTRY_RIPENCC }, // 194.50.172.0 - 194.50.175.255 { 0xc232b000, 0xc232b0ff, REGISTRY_RIPENCC }, // 194.50.176.0 - 194.50.176.255 { 0xc232b100, 0xc232b3ff, REGISTRY_RIPENCC }, // 194.50.177.0 - 194.50.179.255 { 0xc232b400, 0xc232b4ff, REGISTRY_RIPENCC }, // 194.50.180.0 - 194.50.180.255 { 0xc232b500, 0xc232b7ff, REGISTRY_RIPENCC }, // 194.50.181.0 - 194.50.183.255 { 0xc232b800, 0xc232baff, REGISTRY_RIPENCC }, // 194.50.184.0 - 194.50.186.255 { 0xc232bb00, 0xc232bbff, REGISTRY_RIPENCC }, // 194.50.187.0 - 194.50.187.255 { 0xc232bc00, 0xc232beff, REGISTRY_RIPENCC }, // 194.50.188.0 - 194.50.190.255 { 0xc232bf00, 0xc232bfff, REGISTRY_RIPENCC }, // 194.50.191.0 - 194.50.191.255 { 0xc232c000, 0xc232c9ff, REGISTRY_RIPENCC }, // 194.50.192.0 - 194.50.201.255 { 0xc232ca00, 0xc232cbff, REGISTRY_RIPENCC }, // 194.50.202.0 - 194.50.203.255 { 0xc232cc00, 0xc232ccff, REGISTRY_RIPENCC }, // 194.50.204.0 - 194.50.204.255 { 0xc232cd00, 0xc232cdff, REGISTRY_RIPENCC }, // 194.50.205.0 - 194.50.205.255 { 0xc232ce00, 0xc232cfff, REGISTRY_RIPENCC }, // 194.50.206.0 - 194.50.207.255 { 0xc232d000, 0xc232d0ff, REGISTRY_RIPENCC }, // 194.50.208.0 - 194.50.208.255 { 0xc232d100, 0xc232d1ff, REGISTRY_RIPENCC }, // 194.50.209.0 - 194.50.209.255 { 0xc232d200, 0xc232d3ff, REGISTRY_RIPENCC }, // 194.50.210.0 - 194.50.211.255 { 0xc232d400, 0xc232d5ff, REGISTRY_RIPENCC }, // 194.50.212.0 - 194.50.213.255 { 0xc232d600, 0xc232d7ff, REGISTRY_RIPENCC }, // 194.50.214.0 - 194.50.215.255 { 0xc232d800, 0xc232d8ff, REGISTRY_RIPENCC }, // 194.50.216.0 - 194.50.216.255 { 0xc232d900, 0xc232d9ff, REGISTRY_RIPENCC }, // 194.50.217.0 - 194.50.217.255 { 0xc232da00, 0xc232daff, REGISTRY_RIPENCC }, // 194.50.218.0 - 194.50.218.255 { 0xc232db00, 0xc232dbff, REGISTRY_RIPENCC }, // 194.50.219.0 - 194.50.219.255 { 0xc232dc00, 0xc232ddff, REGISTRY_RIPENCC }, // 194.50.220.0 - 194.50.221.255 { 0xc232de00, 0xc232deff, REGISTRY_RIPENCC }, // 194.50.222.0 - 194.50.222.255 { 0xc232df00, 0xc232e0ff, REGISTRY_RIPENCC }, // 194.50.223.0 - 194.50.224.255 { 0xc232e100, 0xc232e8ff, REGISTRY_RIPENCC }, // 194.50.225.0 - 194.50.232.255 { 0xc232e900, 0xc232efff, REGISTRY_RIPENCC }, // 194.50.233.0 - 194.50.239.255 { 0xc232f000, 0xc232f2ff, REGISTRY_RIPENCC }, // 194.50.240.0 - 194.50.242.255 { 0xc232f300, 0xc232f7ff, REGISTRY_RIPENCC }, // 194.50.243.0 - 194.50.247.255 { 0xc232f800, 0xc232f9ff, REGISTRY_RIPENCC }, // 194.50.248.0 - 194.50.249.255 { 0xc232fa00, 0xc232fbff, REGISTRY_RIPENCC }, // 194.50.250.0 - 194.50.251.255 { 0xc232fc00, 0xc232fcff, REGISTRY_RIPENCC }, // 194.50.252.0 - 194.50.252.255 { 0xc232fd00, 0xc232fdff, REGISTRY_RIPENCC }, // 194.50.253.0 - 194.50.253.255 { 0xc232fe00, 0xc232ffff, REGISTRY_RIPENCC }, // 194.50.254.0 - 194.50.255.255 { 0xc2330000, 0xc234ffff, REGISTRY_RIPENCC }, // 194.51.0.0 - 194.52.255.255 { 0xc2350000, 0xc23500ff, REGISTRY_RIPENCC }, // 194.53.0.0 - 194.53.0.255 { 0xc2350100, 0xc23502ff, REGISTRY_RIPENCC }, // 194.53.1.0 - 194.53.2.255 { 0xc2350300, 0xc23503ff, REGISTRY_RIPENCC }, // 194.53.3.0 - 194.53.3.255 { 0xc2350400, 0xc23507ff, REGISTRY_RIPENCC }, // 194.53.4.0 - 194.53.7.255 { 0xc2350800, 0xc2352fff, REGISTRY_RIPENCC }, // 194.53.8.0 - 194.53.47.255 { 0xc2353000, 0xc23537ff, REGISTRY_RIPENCC }, // 194.53.48.0 - 194.53.55.255 { 0xc2353800, 0xc2353cff, REGISTRY_RIPENCC }, // 194.53.56.0 - 194.53.60.255 { 0xc2353d00, 0xc2353dff, REGISTRY_RIPENCC }, // 194.53.61.0 - 194.53.61.255 { 0xc2353e00, 0xc2353fff, REGISTRY_RIPENCC }, // 194.53.62.0 - 194.53.63.255 { 0xc2354000, 0xc23547ff, REGISTRY_RIPENCC }, // 194.53.64.0 - 194.53.71.255 { 0xc2354800, 0xc23554ff, REGISTRY_RIPENCC }, // 194.53.72.0 - 194.53.84.255 { 0xc2355500, 0xc23557ff, REGISTRY_RIPENCC }, // 194.53.85.0 - 194.53.87.255 { 0xc2355800, 0xc23567ff, REGISTRY_RIPENCC }, // 194.53.88.0 - 194.53.103.255 { 0xc2356800, 0xc23570ff, REGISTRY_RIPENCC }, // 194.53.104.0 - 194.53.112.255 { 0xc2357100, 0xc23571ff, REGISTRY_RIPENCC }, // 194.53.113.0 - 194.53.113.255 { 0xc2357200, 0xc23573ff, REGISTRY_RIPENCC }, // 194.53.114.0 - 194.53.115.255 { 0xc2357400, 0xc23575ff, REGISTRY_RIPENCC }, // 194.53.116.0 - 194.53.117.255 { 0xc2357600, 0xc23578ff, REGISTRY_RIPENCC }, // 194.53.118.0 - 194.53.120.255 { 0xc2357900, 0xc23579ff, REGISTRY_RIPENCC }, // 194.53.121.0 - 194.53.121.255 { 0xc2357a00, 0xc23581ff, REGISTRY_RIPENCC }, // 194.53.122.0 - 194.53.129.255 { 0xc2358200, 0xc23586ff, REGISTRY_RIPENCC }, // 194.53.130.0 - 194.53.134.255 { 0xc2358700, 0xc2359fff, REGISTRY_RIPENCC }, // 194.53.135.0 - 194.53.159.255 { 0xc235a000, 0xc235aeff, REGISTRY_RIPENCC }, // 194.53.160.0 - 194.53.174.255 { 0xc235af00, 0xc235cfff, REGISTRY_RIPENCC }, // 194.53.175.0 - 194.53.207.255 { 0xc235d000, 0xc235d5ff, REGISTRY_RIPENCC }, // 194.53.208.0 - 194.53.213.255 { 0xc235d600, 0xc235d7ff, REGISTRY_RIPENCC }, // 194.53.214.0 - 194.53.215.255 { 0xc235d800, 0xc2361fff, REGISTRY_RIPENCC }, // 194.53.216.0 - 194.54.31.255 { 0xc2362000, 0xc2363fff, REGISTRY_RIPENCC }, // 194.54.32.0 - 194.54.63.255 { 0xc2364000, 0xc2364bff, REGISTRY_RIPENCC }, // 194.54.64.0 - 194.54.75.255 { 0xc2364c00, 0xc2364fff, REGISTRY_RIPENCC }, // 194.54.76.0 - 194.54.79.255 { 0xc2365000, 0xc2365fff, REGISTRY_RIPENCC }, // 194.54.80.0 - 194.54.95.255 { 0xc2366000, 0xc2367fff, REGISTRY_RIPENCC }, // 194.54.96.0 - 194.54.127.255 { 0xc2368000, 0xc23687ff, REGISTRY_RIPENCC }, // 194.54.128.0 - 194.54.135.255 { 0xc2368800, 0xc2368bff, REGISTRY_RIPENCC }, // 194.54.136.0 - 194.54.139.255 { 0xc2368c00, 0xc2368fff, REGISTRY_RIPENCC }, // 194.54.140.0 - 194.54.143.255 { 0xc2369000, 0xc23693ff, REGISTRY_RIPENCC }, // 194.54.144.0 - 194.54.147.255 { 0xc2369400, 0xc236bfff, REGISTRY_RIPENCC }, // 194.54.148.0 - 194.54.191.255 { 0xc236c000, 0xc23700ff, REGISTRY_RIPENCC }, // 194.54.192.0 - 194.55.0.255 { 0xc2370100, 0xc23703ff, REGISTRY_RIPENCC }, // 194.55.1.0 - 194.55.3.255 { 0xc2370400, 0xc2370fff, REGISTRY_RIPENCC }, // 194.55.4.0 - 194.55.15.255 { 0xc2371000, 0xc23727ff, REGISTRY_RIPENCC }, // 194.55.16.0 - 194.55.39.255 { 0xc2372800, 0xc23728ff, REGISTRY_RIPENCC }, // 194.55.40.0 - 194.55.40.255 { 0xc2372900, 0xc2372aff, REGISTRY_RIPENCC }, // 194.55.41.0 - 194.55.42.255 { 0xc2372b00, 0xc2372fff, REGISTRY_RIPENCC }, // 194.55.43.0 - 194.55.47.255 { 0xc2373000, 0xc2374fff, REGISTRY_RIPENCC }, // 194.55.48.0 - 194.55.79.255 { 0xc2375000, 0xc23753ff, REGISTRY_RIPENCC }, // 194.55.80.0 - 194.55.83.255 { 0xc2375400, 0xc2375bff, REGISTRY_RIPENCC }, // 194.55.84.0 - 194.55.91.255 { 0xc2375c00, 0xc23763ff, REGISTRY_RIPENCC }, // 194.55.92.0 - 194.55.99.255 { 0xc2376400, 0xc23765ff, REGISTRY_RIPENCC }, // 194.55.100.0 - 194.55.101.255 { 0xc2376600, 0xc23769ff, REGISTRY_RIPENCC }, // 194.55.102.0 - 194.55.105.255 { 0xc2376a00, 0xc2377fff, REGISTRY_RIPENCC }, // 194.55.106.0 - 194.55.127.255 { 0xc2378000, 0xc23781ff, REGISTRY_RIPENCC }, // 194.55.128.0 - 194.55.129.255 { 0xc2378200, 0xc23783ff, REGISTRY_RIPENCC }, // 194.55.130.0 - 194.55.131.255 { 0xc2378400, 0xc23785ff, REGISTRY_RIPENCC }, // 194.55.132.0 - 194.55.133.255 { 0xc2378600, 0xc23787ff, REGISTRY_RIPENCC }, // 194.55.134.0 - 194.55.135.255 { 0xc2378800, 0xc23789ff, REGISTRY_RIPENCC }, // 194.55.136.0 - 194.55.137.255 { 0xc2378a00, 0xc2378bff, REGISTRY_RIPENCC }, // 194.55.138.0 - 194.55.139.255 { 0xc2378c00, 0xc2378fff, REGISTRY_RIPENCC }, // 194.55.140.0 - 194.55.143.255 { 0xc2379000, 0xc23793ff, REGISTRY_RIPENCC }, // 194.55.144.0 - 194.55.147.255 { 0xc2379400, 0xc2379bff, REGISTRY_RIPENCC }, // 194.55.148.0 - 194.55.155.255 { 0xc2379c00, 0xc2379cff, REGISTRY_RIPENCC }, // 194.55.156.0 - 194.55.156.255 { 0xc2379d00, 0xc2379dff, REGISTRY_RIPENCC }, // 194.55.157.0 - 194.55.157.255 { 0xc2379e00, 0xc2379fff, REGISTRY_RIPENCC }, // 194.55.158.0 - 194.55.159.255 { 0xc237a000, 0xc237a1ff, REGISTRY_RIPENCC }, // 194.55.160.0 - 194.55.161.255 { 0xc237a200, 0xc237a2ff, REGISTRY_RIPENCC }, // 194.55.162.0 - 194.55.162.255 { 0xc237a300, 0xc237a8ff, REGISTRY_RIPENCC }, // 194.55.163.0 - 194.55.168.255 { 0xc237a900, 0xc237a9ff, REGISTRY_RIPENCC }, // 194.55.169.0 - 194.55.169.255 { 0xc237aa00, 0xc237abff, REGISTRY_RIPENCC }, // 194.55.170.0 - 194.55.171.255 { 0xc237ac00, 0xc237b4ff, REGISTRY_RIPENCC }, // 194.55.172.0 - 194.55.180.255 { 0xc237b500, 0xc237b6ff, REGISTRY_RIPENCC }, // 194.55.181.0 - 194.55.182.255 { 0xc237b700, 0xc237b7ff, REGISTRY_RIPENCC }, // 194.55.183.0 - 194.55.183.255 { 0xc237b800, 0xc237bdff, REGISTRY_RIPENCC }, // 194.55.184.0 - 194.55.189.255 { 0xc237be00, 0xc237dfff, REGISTRY_RIPENCC }, // 194.55.190.0 - 194.55.223.255 { 0xc237e000, 0xc237e7ff, REGISTRY_RIPENCC }, // 194.55.224.0 - 194.55.231.255 { 0xc237e800, 0xc237e9ff, REGISTRY_RIPENCC }, // 194.55.232.0 - 194.55.233.255 { 0xc237ea00, 0xc237f5ff, REGISTRY_RIPENCC }, // 194.55.234.0 - 194.55.245.255 { 0xc237f600, 0xc237f7ff, REGISTRY_RIPENCC }, // 194.55.246.0 - 194.55.247.255 { 0xc237f800, 0xc237fdff, REGISTRY_RIPENCC }, // 194.55.248.0 - 194.55.253.255 { 0xc237fe00, 0xc237feff, REGISTRY_RIPENCC }, // 194.55.254.0 - 194.55.254.255 { 0xc237ff00, 0xc237ffff, REGISTRY_RIPENCC }, // 194.55.255.0 - 194.55.255.255 { 0xc2380000, 0xc23847ff, REGISTRY_RIPENCC }, // 194.56.0.0 - 194.56.71.255 { 0xc2384800, 0xc2385fff, REGISTRY_RIPENCC }, // 194.56.72.0 - 194.56.95.255 { 0xc2386000, 0xc2388fff, REGISTRY_RIPENCC }, // 194.56.96.0 - 194.56.143.255 { 0xc2389000, 0xc23899ff, REGISTRY_RIPENCC }, // 194.56.144.0 - 194.56.153.255 { 0xc2389a00, 0xc238b3ff, REGISTRY_RIPENCC }, // 194.56.154.0 - 194.56.179.255 { 0xc238b400, 0xc238c7ff, REGISTRY_RIPENCC }, // 194.56.180.0 - 194.56.199.255 { 0xc238c800, 0xc238d3ff, REGISTRY_RIPENCC }, // 194.56.200.0 - 194.56.211.255 { 0xc238d400, 0xc238d5ff, REGISTRY_RIPENCC }, // 194.56.212.0 - 194.56.213.255 { 0xc238d600, 0xc238d7ff, REGISTRY_RIPENCC }, // 194.56.214.0 - 194.56.215.255 { 0xc238d800, 0xc238d9ff, REGISTRY_RIPENCC }, // 194.56.216.0 - 194.56.217.255 { 0xc238da00, 0xc238ddff, REGISTRY_RIPENCC }, // 194.56.218.0 - 194.56.221.255 { 0xc238de00, 0xc238e3ff, REGISTRY_RIPENCC }, // 194.56.222.0 - 194.56.227.255 { 0xc238e400, 0xc238e5ff, REGISTRY_RIPENCC }, // 194.56.228.0 - 194.56.229.255 { 0xc238e600, 0xc238e6ff, REGISTRY_RIPENCC }, // 194.56.230.0 - 194.56.230.255 { 0xc238e700, 0xc238e7ff, REGISTRY_RIPENCC }, // 194.56.231.0 - 194.56.231.255 { 0xc238e800, 0xc238e8ff, REGISTRY_RIPENCC }, // 194.56.232.0 - 194.56.232.255 { 0xc238e900, 0xc238eaff, REGISTRY_RIPENCC }, // 194.56.233.0 - 194.56.234.255 { 0xc238eb00, 0xc238f0ff, REGISTRY_RIPENCC }, // 194.56.235.0 - 194.56.240.255 { 0xc238f100, 0xc238f1ff, REGISTRY_RIPENCC }, // 194.56.241.0 - 194.56.241.255 { 0xc238f200, 0xc238f3ff, REGISTRY_RIPENCC }, // 194.56.242.0 - 194.56.243.255 { 0xc238f400, 0xc238f4ff, REGISTRY_RIPENCC }, // 194.56.244.0 - 194.56.244.255 { 0xc238f500, 0xc238f7ff, REGISTRY_RIPENCC }, // 194.56.245.0 - 194.56.247.255 { 0xc238f800, 0xc238fbff, REGISTRY_RIPENCC }, // 194.56.248.0 - 194.56.251.255 { 0xc238fc00, 0xc238fdff, REGISTRY_RIPENCC }, // 194.56.252.0 - 194.56.253.255 { 0xc238fe00, 0xc238feff, REGISTRY_RIPENCC }, // 194.56.254.0 - 194.56.254.255 { 0xc238ff00, 0xc23b01ff, REGISTRY_RIPENCC }, // 194.56.255.0 - 194.59.1.255 { 0xc23b0200, 0xc23b04ff, REGISTRY_RIPENCC }, // 194.59.2.0 - 194.59.4.255 { 0xc23b0500, 0xc23b09ff, REGISTRY_RIPENCC }, // 194.59.5.0 - 194.59.9.255 { 0xc23b0a00, 0xc23b0bff, REGISTRY_RIPENCC }, // 194.59.10.0 - 194.59.11.255 { 0xc23b0c00, 0xc23b0cff, REGISTRY_RIPENCC }, // 194.59.12.0 - 194.59.12.255 { 0xc23b0d00, 0xc23b0dff, REGISTRY_RIPENCC }, // 194.59.13.0 - 194.59.13.255 { 0xc23b0e00, 0xc23b0fff, REGISTRY_RIPENCC }, // 194.59.14.0 - 194.59.15.255 { 0xc23b1000, 0xc23b17ff, REGISTRY_RIPENCC }, // 194.59.16.0 - 194.59.23.255 { 0xc23b1800, 0xc23b21ff, REGISTRY_RIPENCC }, // 194.59.24.0 - 194.59.33.255 { 0xc23b2200, 0xc23b27ff, REGISTRY_RIPENCC }, // 194.59.34.0 - 194.59.39.255 { 0xc23b2800, 0xc23b28ff, REGISTRY_RIPENCC }, // 194.59.40.0 - 194.59.40.255 { 0xc23b2900, 0xc23b2dff, REGISTRY_RIPENCC }, // 194.59.41.0 - 194.59.45.255 { 0xc23b2e00, 0xc23b2eff, REGISTRY_RIPENCC }, // 194.59.46.0 - 194.59.46.255 { 0xc23b2f00, 0xc23b33ff, REGISTRY_RIPENCC }, // 194.59.47.0 - 194.59.51.255 { 0xc23b3400, 0xc23b37ff, REGISTRY_RIPENCC }, // 194.59.52.0 - 194.59.55.255 { 0xc23b3800, 0xc23b3aff, REGISTRY_RIPENCC }, // 194.59.56.0 - 194.59.58.255 { 0xc23b3b00, 0xc23b3bff, REGISTRY_RIPENCC }, // 194.59.59.0 - 194.59.59.255 { 0xc23b3c00, 0xc23b87ff, REGISTRY_RIPENCC }, // 194.59.60.0 - 194.59.135.255 { 0xc23b8800, 0xc23b8eff, REGISTRY_RIPENCC }, // 194.59.136.0 - 194.59.142.255 { 0xc23b8f00, 0xc23b9aff, REGISTRY_RIPENCC }, // 194.59.143.0 - 194.59.154.255 { 0xc23b9b00, 0xc23b9bff, REGISTRY_RIPENCC }, // 194.59.155.0 - 194.59.155.255 { 0xc23b9c00, 0xc23b9cff, REGISTRY_RIPENCC }, // 194.59.156.0 - 194.59.156.255 { 0xc23b9d00, 0xc23b9fff, REGISTRY_RIPENCC }, // 194.59.157.0 - 194.59.159.255 { 0xc23ba000, 0xc23ba3ff, REGISTRY_RIPENCC }, // 194.59.160.0 - 194.59.163.255 { 0xc23ba400, 0xc23ba8ff, REGISTRY_RIPENCC }, // 194.59.164.0 - 194.59.168.255 { 0xc23ba900, 0xc23ba9ff, REGISTRY_RIPENCC }, // 194.59.169.0 - 194.59.169.255 { 0xc23baa00, 0xc23bb0ff, REGISTRY_RIPENCC }, // 194.59.170.0 - 194.59.176.255 { 0xc23bb100, 0xc23bb2ff, REGISTRY_RIPENCC }, // 194.59.177.0 - 194.59.178.255 { 0xc23bb300, 0xc23bb3ff, REGISTRY_RIPENCC }, // 194.59.179.0 - 194.59.179.255 { 0xc23bb400, 0xc23bb4ff, REGISTRY_RIPENCC }, // 194.59.180.0 - 194.59.180.255 { 0xc23bb500, 0xc23bb5ff, REGISTRY_RIPENCC }, // 194.59.181.0 - 194.59.181.255 { 0xc23bb600, 0xc23bb6ff, REGISTRY_RIPENCC }, // 194.59.182.0 - 194.59.182.255 { 0xc23bb700, 0xc23bb7ff, REGISTRY_RIPENCC }, // 194.59.183.0 - 194.59.183.255 { 0xc23bb800, 0xc23bb9ff, REGISTRY_RIPENCC }, // 194.59.184.0 - 194.59.185.255 { 0xc23bba00, 0xc23bbbff, REGISTRY_RIPENCC }, // 194.59.186.0 - 194.59.187.255 { 0xc23bbc00, 0xc23bbfff, REGISTRY_RIPENCC }, // 194.59.188.0 - 194.59.191.255 { 0xc23bc000, 0xc23bd3ff, REGISTRY_RIPENCC }, // 194.59.192.0 - 194.59.211.255 { 0xc23bd400, 0xc23bd5ff, REGISTRY_RIPENCC }, // 194.59.212.0 - 194.59.213.255 { 0xc23bd600, 0xc23bdfff, REGISTRY_RIPENCC }, // 194.59.214.0 - 194.59.223.255 { 0xc23be000, 0xc23befff, REGISTRY_RIPENCC }, // 194.59.224.0 - 194.59.239.255 { 0xc23bf000, 0xc23bffff, REGISTRY_RIPENCC }, // 194.59.240.0 - 194.59.255.255 { 0xc23c0000, 0xc23c4bff, REGISTRY_RIPENCC }, // 194.60.0.0 - 194.60.75.255 { 0xc23c4c00, 0xc23c4cff, REGISTRY_RIPENCC }, // 194.60.76.0 - 194.60.76.255 { 0xc23c4d00, 0xc23c50ff, REGISTRY_RIPENCC }, // 194.60.77.0 - 194.60.80.255 { 0xc23c5100, 0xc23c51ff, REGISTRY_RIPENCC }, // 194.60.81.0 - 194.60.81.255 { 0xc23c5200, 0xc23c55ff, REGISTRY_RIPENCC }, // 194.60.82.0 - 194.60.85.255 { 0xc23c5600, 0xc23c57ff, REGISTRY_RIPENCC }, // 194.60.86.0 - 194.60.87.255 { 0xc23c5800, 0xc23c83ff, REGISTRY_RIPENCC }, // 194.60.88.0 - 194.60.131.255 { 0xc23c8400, 0xc23c87ff, REGISTRY_RIPENCC }, // 194.60.132.0 - 194.60.135.255 { 0xc23c8800, 0xc23cbfff, REGISTRY_RIPENCC }, // 194.60.136.0 - 194.60.191.255 { 0xc23cc000, 0xc23ccaff, REGISTRY_RIPENCC }, // 194.60.192.0 - 194.60.202.255 { 0xc23ccb00, 0xc23cccff, REGISTRY_RIPENCC }, // 194.60.203.0 - 194.60.204.255 { 0xc23ccd00, 0xc23ccdff, REGISTRY_RIPENCC }, // 194.60.205.0 - 194.60.205.255 { 0xc23cce00, 0xc23ccfff, REGISTRY_RIPENCC }, // 194.60.206.0 - 194.60.207.255 { 0xc23cd000, 0xc23cd7ff, REGISTRY_RIPENCC }, // 194.60.208.0 - 194.60.215.255 { 0xc23cd800, 0xc23cf9ff, REGISTRY_RIPENCC }, // 194.60.216.0 - 194.60.249.255 { 0xc23cfa00, 0xc23cfaff, REGISTRY_RIPENCC }, // 194.60.250.0 - 194.60.250.255 { 0xc23cfb00, 0xc23cffff, REGISTRY_RIPENCC }, // 194.60.251.0 - 194.60.255.255 { 0xc23d0000, 0xc23d17ff, REGISTRY_RIPENCC }, // 194.61.0.0 - 194.61.23.255 { 0xc23d1c00, 0xc23d2fff, REGISTRY_RIPENCC }, // 194.61.28.0 - 194.61.47.255 { 0xc23d3000, 0xc23d37ff, REGISTRY_RIPENCC }, // 194.61.48.0 - 194.61.55.255 { 0xc23d3800, 0xc23d38ff, REGISTRY_RIPENCC }, // 194.61.56.0 - 194.61.56.255 { 0xc23d3900, 0xc23d47ff, REGISTRY_RIPENCC }, // 194.61.57.0 - 194.61.71.255 { 0xc23d4800, 0xc23d4dff, REGISTRY_RIPENCC }, // 194.61.72.0 - 194.61.77.255 { 0xc23d4e00, 0xc23d4fff, REGISTRY_RIPENCC }, // 194.61.78.0 - 194.61.79.255 { 0xc23d5000, 0xc23d5bff, REGISTRY_RIPENCC }, // 194.61.80.0 - 194.61.91.255 { 0xc23d5c00, 0xc23d6fff, REGISTRY_RIPENCC }, // 194.61.92.0 - 194.61.111.255 { 0xc23d7000, 0xc23d79ff, REGISTRY_RIPENCC }, // 194.61.112.0 - 194.61.121.255 { 0xc23d7a00, 0xc23d7bff, REGISTRY_RIPENCC }, // 194.61.122.0 - 194.61.123.255 { 0xc23d7c00, 0xc23d8fff, REGISTRY_RIPENCC }, // 194.61.124.0 - 194.61.143.255 { 0xc23d9000, 0xc23d97ff, REGISTRY_RIPENCC }, // 194.61.144.0 - 194.61.151.255 { 0xc23d9800, 0xc23d9dff, REGISTRY_RIPENCC }, // 194.61.152.0 - 194.61.157.255 { 0xc23d9e00, 0xc23d9eff, REGISTRY_RIPENCC }, // 194.61.158.0 - 194.61.158.255 { 0xc23d9f00, 0xc23d9fff, REGISTRY_RIPENCC }, // 194.61.159.0 - 194.61.159.255 { 0xc23da000, 0xc23ddfff, REGISTRY_RIPENCC }, // 194.61.160.0 - 194.61.223.255 { 0xc23de000, 0xc23defff, REGISTRY_RIPENCC }, // 194.61.224.0 - 194.61.239.255 { 0xc23df000, 0xc23e00ff, REGISTRY_RIPENCC }, // 194.61.240.0 - 194.62.0.255 { 0xc23e0100, 0xc23e06ff, REGISTRY_RIPENCC }, // 194.62.1.0 - 194.62.6.255 { 0xc23e0800, 0xc23e09ff, REGISTRY_RIPENCC }, // 194.62.8.0 - 194.62.9.255 { 0xc23e0a00, 0xc23e0fff, REGISTRY_RIPENCC }, // 194.62.10.0 - 194.62.15.255 { 0xc23e1000, 0xc23e13ff, REGISTRY_RIPENCC }, // 194.62.16.0 - 194.62.19.255 { 0xc23e1400, 0xc23e16ff, REGISTRY_RIPENCC }, // 194.62.20.0 - 194.62.22.255 { 0xc23e1700, 0xc23e17ff, REGISTRY_RIPENCC }, // 194.62.23.0 - 194.62.23.255 { 0xc23e1800, 0xc23e1cff, REGISTRY_RIPENCC }, // 194.62.24.0 - 194.62.28.255 { 0xc23e1d00, 0xc23e1fff, REGISTRY_RIPENCC }, // 194.62.29.0 - 194.62.31.255 { 0xc23e2000, 0xc23e27ff, REGISTRY_RIPENCC }, // 194.62.32.0 - 194.62.39.255 { 0xc23e2800, 0xc23e2bff, REGISTRY_RIPENCC }, // 194.62.40.0 - 194.62.43.255 { 0xc23e2c00, 0xc23e33ff, REGISTRY_RIPENCC }, // 194.62.44.0 - 194.62.51.255 { 0xc23e3400, 0xc23e3fff, REGISTRY_RIPENCC }, // 194.62.52.0 - 194.62.63.255 { 0xc23e4000, 0xc23e41ff, REGISTRY_RIPENCC }, // 194.62.64.0 - 194.62.65.255 { 0xc23e4200, 0xc23e43ff, REGISTRY_RIPENCC }, // 194.62.66.0 - 194.62.67.255 { 0xc23e4400, 0xc23e5fff, REGISTRY_RIPENCC }, // 194.62.68.0 - 194.62.95.255 { 0xc23e6000, 0xc23e63ff, REGISTRY_RIPENCC }, // 194.62.96.0 - 194.62.99.255 { 0xc23e6400, 0xc23e65ff, REGISTRY_RIPENCC }, // 194.62.100.0 - 194.62.101.255 { 0xc23e6600, 0xc23e66ff, REGISTRY_RIPENCC }, // 194.62.102.0 - 194.62.102.255 { 0xc23e6700, 0xc23e67ff, REGISTRY_RIPENCC }, // 194.62.103.0 - 194.62.103.255 { 0xc23e6800, 0xc23e6fff, REGISTRY_RIPENCC }, // 194.62.104.0 - 194.62.111.255 { 0xc23e7000, 0xc23e79ff, REGISTRY_RIPENCC }, // 194.62.112.0 - 194.62.121.255 { 0xc23e7a00, 0xc23e7bff, REGISTRY_RIPENCC }, // 194.62.122.0 - 194.62.123.255 { 0xc23e7c00, 0xc23e7dff, REGISTRY_RIPENCC }, // 194.62.124.0 - 194.62.125.255 { 0xc23e7e00, 0xc23e8fff, REGISTRY_RIPENCC }, // 194.62.126.0 - 194.62.143.255 { 0xc23e9000, 0xc23e93ff, REGISTRY_RIPENCC }, // 194.62.144.0 - 194.62.147.255 { 0xc23e9400, 0xc23e9bff, REGISTRY_RIPENCC }, // 194.62.148.0 - 194.62.155.255 { 0xc23e9c00, 0xc23e9cff, REGISTRY_RIPENCC }, // 194.62.156.0 - 194.62.156.255 { 0xc23e9d00, 0xc23eabff, REGISTRY_RIPENCC }, // 194.62.157.0 - 194.62.171.255 { 0xc23eac00, 0xc23eadff, REGISTRY_RIPENCC }, // 194.62.172.0 - 194.62.173.255 { 0xc23eae00, 0xc23eaeff, REGISTRY_RIPENCC }, // 194.62.174.0 - 194.62.174.255 { 0xc23eaf00, 0xc23eb3ff, REGISTRY_RIPENCC }, // 194.62.175.0 - 194.62.179.255 { 0xc23eb400, 0xc23ebcff, REGISTRY_RIPENCC }, // 194.62.180.0 - 194.62.188.255 { 0xc23ebd00, 0xc23ebdff, REGISTRY_RIPENCC }, // 194.62.189.0 - 194.62.189.255 { 0xc23ebe00, 0xc23ebfff, REGISTRY_RIPENCC }, // 194.62.190.0 - 194.62.191.255 { 0xc23ec000, 0xc23ec7ff, REGISTRY_RIPENCC }, // 194.62.192.0 - 194.62.199.255 { 0xc23ec800, 0xc23ecbff, REGISTRY_RIPENCC }, // 194.62.200.0 - 194.62.203.255 { 0xc23ecc00, 0xc23ed5ff, REGISTRY_RIPENCC }, // 194.62.204.0 - 194.62.213.255 { 0xc23ed600, 0xc23ee7ff, REGISTRY_RIPENCC }, // 194.62.214.0 - 194.62.231.255 { 0xc23ee800, 0xc23ee8ff, REGISTRY_RIPENCC }, // 194.62.232.0 - 194.62.232.255 { 0xc23ee900, 0xc23ee9ff, REGISTRY_RIPENCC }, // 194.62.233.0 - 194.62.233.255 { 0xc23eea00, 0xc23eefff, REGISTRY_RIPENCC }, // 194.62.234.0 - 194.62.239.255 { 0xc23ef000, 0xc23effff, REGISTRY_RIPENCC }, // 194.62.240.0 - 194.62.255.255 { 0xc23f0000, 0xc23f8bff, REGISTRY_RIPENCC }, // 194.63.0.0 - 194.63.139.255 { 0xc23f8c00, 0xc23f93ff, REGISTRY_RIPENCC }, // 194.63.140.0 - 194.63.147.255 { 0xc23f9400, 0xc23f97ff, REGISTRY_RIPENCC }, // 194.63.148.0 - 194.63.151.255 { 0xc23f9800, 0xc23f9bff, REGISTRY_RIPENCC }, // 194.63.152.0 - 194.63.155.255 { 0xc23f9c00, 0xc23fffff, REGISTRY_RIPENCC }, // 194.63.156.0 - 194.63.255.255 { 0xc2400000, 0xc244ffff, REGISTRY_RIPENCC }, // 194.64.0.0 - 194.68.255.255 { 0xc2450000, 0xc2451fff, REGISTRY_RIPENCC }, // 194.69.0.0 - 194.69.31.255 { 0xc2452000, 0xc24523ff, REGISTRY_RIPENCC }, // 194.69.32.0 - 194.69.35.255 { 0xc2452400, 0xc24525ff, REGISTRY_RIPENCC }, // 194.69.36.0 - 194.69.37.255 { 0xc2452600, 0xc24529ff, REGISTRY_RIPENCC }, // 194.69.38.0 - 194.69.41.255 { 0xc2452a00, 0xc2452bff, REGISTRY_RIPENCC }, // 194.69.42.0 - 194.69.43.255 { 0xc2452c00, 0xc2455fff, REGISTRY_RIPENCC }, // 194.69.44.0 - 194.69.95.255 { 0xc2456000, 0xc2458fff, REGISTRY_RIPENCC }, // 194.69.96.0 - 194.69.143.255 { 0xc2459000, 0xc245b0ff, REGISTRY_RIPENCC }, // 194.69.144.0 - 194.69.176.255 { 0xc245b100, 0xc245b1ff, REGISTRY_RIPENCC }, // 194.69.177.0 - 194.69.177.255 { 0xc245b200, 0xc245b4ff, REGISTRY_RIPENCC }, // 194.69.178.0 - 194.69.180.255 { 0xc245b500, 0xc245b5ff, REGISTRY_RIPENCC }, // 194.69.181.0 - 194.69.181.255 { 0xc245b600, 0xc245b6ff, REGISTRY_RIPENCC }, // 194.69.182.0 - 194.69.182.255 { 0xc245b700, 0xc245bfff, REGISTRY_RIPENCC }, // 194.69.183.0 - 194.69.191.255 { 0xc245c000, 0xc245c1ff, REGISTRY_RIPENCC }, // 194.69.192.0 - 194.69.193.255 { 0xc245c200, 0xc245c7ff, REGISTRY_RIPENCC }, // 194.69.194.0 - 194.69.199.255 { 0xc245c800, 0xc245cbff, REGISTRY_RIPENCC }, // 194.69.200.0 - 194.69.203.255 { 0xc245cc00, 0xc245cdff, REGISTRY_RIPENCC }, // 194.69.204.0 - 194.69.205.255 { 0xc245ce00, 0xc245ceff, REGISTRY_RIPENCC }, // 194.69.206.0 - 194.69.206.255 { 0xc245cf00, 0xc245dfff, REGISTRY_RIPENCC }, // 194.69.207.0 - 194.69.223.255 { 0xc245e000, 0xc245fdff, REGISTRY_RIPENCC }, // 194.69.224.0 - 194.69.253.255 { 0xc245fe00, 0xc245feff, REGISTRY_RIPENCC }, // 194.69.254.0 - 194.69.254.255 { 0xc245ff00, 0xc24623ff, REGISTRY_RIPENCC }, // 194.69.255.0 - 194.70.35.255 { 0xc2462400, 0xc24624ff, REGISTRY_RIPENCC }, // 194.70.36.0 - 194.70.36.255 { 0xc2462500, 0xc24c01ff, REGISTRY_RIPENCC }, // 194.70.37.0 - 194.76.1.255 { 0xc24c0200, 0xc24c09ff, REGISTRY_RIPENCC }, // 194.76.2.0 - 194.76.9.255 { 0xc24c0a00, 0xc24c0dff, REGISTRY_RIPENCC }, // 194.76.10.0 - 194.76.13.255 { 0xc24c0e00, 0xc24c0eff, REGISTRY_RIPENCC }, // 194.76.14.0 - 194.76.14.255 { 0xc24c0f00, 0xc24c12ff, REGISTRY_RIPENCC }, // 194.76.15.0 - 194.76.18.255 { 0xc24c1300, 0xc24c19ff, REGISTRY_RIPENCC }, // 194.76.19.0 - 194.76.25.255 { 0xc24c1a00, 0xc24c1cff, REGISTRY_RIPENCC }, // 194.76.26.0 - 194.76.28.255 { 0xc24c1d00, 0xc24c1fff, REGISTRY_RIPENCC }, // 194.76.29.0 - 194.76.31.255 { 0xc24c2000, 0xc24c25ff, REGISTRY_RIPENCC }, // 194.76.32.0 - 194.76.37.255 { 0xc24c2600, 0xc24c28ff, REGISTRY_RIPENCC }, // 194.76.38.0 - 194.76.40.255 { 0xc24c2900, 0xc24c29ff, REGISTRY_RIPENCC }, // 194.76.41.0 - 194.76.41.255 { 0xc24c2a00, 0xc24c2bff, REGISTRY_RIPENCC }, // 194.76.42.0 - 194.76.43.255 { 0xc24c2c00, 0xc24c2cff, REGISTRY_RIPENCC }, // 194.76.44.0 - 194.76.44.255 { 0xc24c2d00, 0xc24c2dff, REGISTRY_RIPENCC }, // 194.76.45.0 - 194.76.45.255 { 0xc24c2e00, 0xc24c2fff, REGISTRY_RIPENCC }, // 194.76.46.0 - 194.76.47.255 { 0xc24c3000, 0xc24c34ff, REGISTRY_RIPENCC }, // 194.76.48.0 - 194.76.52.255 { 0xc24c3500, 0xc24c35ff, REGISTRY_RIPENCC }, // 194.76.53.0 - 194.76.53.255 { 0xc24c3600, 0xc24c39ff, REGISTRY_RIPENCC }, // 194.76.54.0 - 194.76.57.255 { 0xc24c3a00, 0xc24c3bff, REGISTRY_RIPENCC }, // 194.76.58.0 - 194.76.59.255 { 0xc24c3c00, 0xc24c67ff, REGISTRY_RIPENCC }, // 194.76.60.0 - 194.76.103.255 { 0xc24c6800, 0xc24c69ff, REGISTRY_RIPENCC }, // 194.76.104.0 - 194.76.105.255 { 0xc24c6a00, 0xc24c6bff, REGISTRY_RIPENCC }, // 194.76.106.0 - 194.76.107.255 { 0xc24c6c00, 0xc24c6dff, REGISTRY_RIPENCC }, // 194.76.108.0 - 194.76.109.255 { 0xc24c6e00, 0xc24c6fff, REGISTRY_RIPENCC }, // 194.76.110.0 - 194.76.111.255 { 0xc24c7000, 0xc24c79ff, REGISTRY_RIPENCC }, // 194.76.112.0 - 194.76.121.255 { 0xc24c7a00, 0xc24c7bff, REGISTRY_RIPENCC }, // 194.76.122.0 - 194.76.123.255 { 0xc24c7c00, 0xc24c8bff, REGISTRY_RIPENCC }, // 194.76.124.0 - 194.76.139.255 { 0xc24c8c00, 0xc24c8eff, REGISTRY_RIPENCC }, // 194.76.140.0 - 194.76.142.255 { 0xc24c8f00, 0xc24c8fff, REGISTRY_RIPENCC }, // 194.76.143.0 - 194.76.143.255 { 0xc24c9000, 0xc24c90ff, REGISTRY_RIPENCC }, // 194.76.144.0 - 194.76.144.255 { 0xc24c9100, 0xc24c93ff, REGISTRY_RIPENCC }, // 194.76.145.0 - 194.76.147.255 { 0xc24c9400, 0xc24c94ff, REGISTRY_RIPENCC }, // 194.76.148.0 - 194.76.148.255 { 0xc24c9500, 0xc24c96ff, REGISTRY_RIPENCC }, // 194.76.149.0 - 194.76.150.255 { 0xc24c9700, 0xc24c99ff, REGISTRY_RIPENCC }, // 194.76.151.0 - 194.76.153.255 { 0xc24c9a00, 0xc24c9bff, REGISTRY_RIPENCC }, // 194.76.154.0 - 194.76.155.255 { 0xc24c9c00, 0xc24ca7ff, REGISTRY_RIPENCC }, // 194.76.156.0 - 194.76.167.255 { 0xc24ca800, 0xc24ca9ff, REGISTRY_RIPENCC }, // 194.76.168.0 - 194.76.169.255 { 0xc24caa00, 0xc24cabff, REGISTRY_RIPENCC }, // 194.76.170.0 - 194.76.171.255 { 0xc24cac00, 0xc24cadff, REGISTRY_RIPENCC }, // 194.76.172.0 - 194.76.173.255 { 0xc24cae00, 0xc24cb7ff, REGISTRY_RIPENCC }, // 194.76.174.0 - 194.76.183.255 { 0xc24cb800, 0xc24cbaff, REGISTRY_RIPENCC }, // 194.76.184.0 - 194.76.186.255 { 0xc24cbb00, 0xc24cbbff, REGISTRY_RIPENCC }, // 194.76.187.0 - 194.76.187.255 { 0xc24cbc00, 0xc24cc0ff, REGISTRY_RIPENCC }, // 194.76.188.0 - 194.76.192.255 { 0xc24cc100, 0xc24cc5ff, REGISTRY_RIPENCC }, // 194.76.193.0 - 194.76.197.255 { 0xc24cc600, 0xc24ccfff, REGISTRY_RIPENCC }, // 194.76.198.0 - 194.76.207.255 { 0xc24cd000, 0xc24cd8ff, REGISTRY_RIPENCC }, // 194.76.208.0 - 194.76.216.255 { 0xc24cd900, 0xc24cdaff, REGISTRY_RIPENCC }, // 194.76.217.0 - 194.76.218.255 { 0xc24cdb00, 0xc24cdbff, REGISTRY_RIPENCC }, // 194.76.219.0 - 194.76.219.255 { 0xc24cdc00, 0xc24cddff, REGISTRY_RIPENCC }, // 194.76.220.0 - 194.76.221.255 { 0xc24cde00, 0xc24cdfff, REGISTRY_RIPENCC }, // 194.76.222.0 - 194.76.223.255 { 0xc24ce000, 0xc24ce3ff, REGISTRY_RIPENCC }, // 194.76.224.0 - 194.76.227.255 { 0xc24ce400, 0xc24ce6ff, REGISTRY_RIPENCC }, // 194.76.228.0 - 194.76.230.255 { 0xc24ce800, 0xc24cebff, REGISTRY_RIPENCC }, // 194.76.232.0 - 194.76.235.255 { 0xc24cec00, 0xc24ceeff, REGISTRY_RIPENCC }, // 194.76.236.0 - 194.76.238.255 { 0xc24cef00, 0xc24cefff, REGISTRY_RIPENCC }, // 194.76.239.0 - 194.76.239.255 { 0xc24cf000, 0xc24cf1ff, REGISTRY_RIPENCC }, // 194.76.240.0 - 194.76.241.255 { 0xc24cf200, 0xc24cf7ff, REGISTRY_RIPENCC }, // 194.76.242.0 - 194.76.247.255 { 0xc24cf800, 0xc24cfcff, REGISTRY_RIPENCC }, // 194.76.248.0 - 194.76.252.255 { 0xc24cfd00, 0xc24cfdff, REGISTRY_RIPENCC }, // 194.76.253.0 - 194.76.253.255 { 0xc24cfe00, 0xc24d28ff, REGISTRY_RIPENCC }, // 194.76.254.0 - 194.77.40.255 { 0xc24d2900, 0xc24d2aff, REGISTRY_RIPENCC }, // 194.77.41.0 - 194.77.42.255 { 0xc24d2b00, 0xc24d2dff, REGISTRY_RIPENCC }, // 194.77.43.0 - 194.77.45.255 { 0xc24d2e00, 0xc24d37ff, REGISTRY_RIPENCC }, // 194.77.46.0 - 194.77.55.255 { 0xc24d3800, 0xc24d40ff, REGISTRY_RIPENCC }, // 194.77.56.0 - 194.77.64.255 { 0xc24d4100, 0xc24d41ff, REGISTRY_RIPENCC }, // 194.77.65.0 - 194.77.65.255 { 0xc24d4200, 0xc24d55ff, REGISTRY_RIPENCC }, // 194.77.66.0 - 194.77.85.255 { 0xc24d5600, 0xc24d57ff, REGISTRY_RIPENCC }, // 194.77.86.0 - 194.77.87.255 { 0xc24d5800, 0xc24d81ff, REGISTRY_RIPENCC }, // 194.77.88.0 - 194.77.129.255 { 0xc24d8200, 0xc24d82ff, REGISTRY_RIPENCC }, // 194.77.130.0 - 194.77.130.255 { 0xc24d8300, 0xc24d84ff, REGISTRY_RIPENCC }, // 194.77.131.0 - 194.77.132.255 { 0xc24d8500, 0xc24d85ff, REGISTRY_RIPENCC }, // 194.77.133.0 - 194.77.133.255 { 0xc24d8600, 0xc24d90ff, REGISTRY_RIPENCC }, // 194.77.134.0 - 194.77.144.255 { 0xc24d9100, 0xc24d91ff, REGISTRY_RIPENCC }, // 194.77.145.0 - 194.77.145.255 { 0xc24d9200, 0xc24d94ff, REGISTRY_RIPENCC }, // 194.77.146.0 - 194.77.148.255 { 0xc24d9500, 0xc24d95ff, REGISTRY_RIPENCC }, // 194.77.149.0 - 194.77.149.255 { 0xc24d9600, 0xc24d9bff, REGISTRY_RIPENCC }, // 194.77.150.0 - 194.77.155.255 { 0xc24d9c00, 0xc24d9dff, REGISTRY_RIPENCC }, // 194.77.156.0 - 194.77.157.255 { 0xc24d9f00, 0xc24db8ff, REGISTRY_RIPENCC }, // 194.77.159.0 - 194.77.184.255 { 0xc24db900, 0xc24db9ff, REGISTRY_RIPENCC }, // 194.77.185.0 - 194.77.185.255 { 0xc24dba00, 0xc24dd9ff, REGISTRY_RIPENCC }, // 194.77.186.0 - 194.77.217.255 { 0xc24dda00, 0xc24ddaff, REGISTRY_RIPENCC }, // 194.77.218.0 - 194.77.218.255 { 0xc24ddb00, 0xc24debff, REGISTRY_RIPENCC }, // 194.77.219.0 - 194.77.235.255 { 0xc24dec00, 0xc24dffff, REGISTRY_RIPENCC }, // 194.77.236.0 - 194.77.255.255 { 0xc24e0000, 0xc24effff, REGISTRY_RIPENCC }, // 194.78.0.0 - 194.78.255.255 { 0xc24f0000, 0xc24f0fff, REGISTRY_RIPENCC }, // 194.79.0.0 - 194.79.15.255 { 0xc24f1000, 0xc24f13ff, REGISTRY_RIPENCC }, // 194.79.16.0 - 194.79.19.255 { 0xc24f1400, 0xc24f1bff, REGISTRY_RIPENCC }, // 194.79.20.0 - 194.79.27.255 { 0xc24f1c00, 0xc24f1fff, REGISTRY_RIPENCC }, // 194.79.28.0 - 194.79.31.255 { 0xc24f2000, 0xc24f23ff, REGISTRY_RIPENCC }, // 194.79.32.0 - 194.79.35.255 { 0xc24f2400, 0xc24f27ff, REGISTRY_RIPENCC }, // 194.79.36.0 - 194.79.39.255 { 0xc24f2800, 0xc24f2fff, REGISTRY_RIPENCC }, // 194.79.40.0 - 194.79.47.255 { 0xc24f3000, 0xc24f33ff, REGISTRY_RIPENCC }, // 194.79.48.0 - 194.79.51.255 { 0xc24f3400, 0xc24f37ff, REGISTRY_RIPENCC }, // 194.79.52.0 - 194.79.55.255 { 0xc24f3800, 0xc24f3bff, REGISTRY_RIPENCC }, // 194.79.56.0 - 194.79.59.255 { 0xc24f3c00, 0xc24f3fff, REGISTRY_RIPENCC }, // 194.79.60.0 - 194.79.63.255 { 0xc24f4000, 0xc24f5fff, REGISTRY_RIPENCC }, // 194.79.64.0 - 194.79.95.255 { 0xc24f6000, 0xc24f7fff, REGISTRY_AFRINIC }, // 194.79.96.0 - 194.79.127.255 { 0xc24f8000, 0xc24fdfff, REGISTRY_RIPENCC }, // 194.79.128.0 - 194.79.223.255 { 0xc24fe000, 0xc24fffff, REGISTRY_RIPENCC }, // 194.79.224.0 - 194.79.255.255 { 0xc2500000, 0xc257ffff, REGISTRY_RIPENCC }, // 194.80.0.0 - 194.87.255.255 { 0xc2580000, 0xc25805ff, REGISTRY_RIPENCC }, // 194.88.0.0 - 194.88.5.255 { 0xc2580600, 0xc25807ff, REGISTRY_RIPENCC }, // 194.88.6.0 - 194.88.7.255 { 0xc2580800, 0xc2580aff, REGISTRY_RIPENCC }, // 194.88.8.0 - 194.88.10.255 { 0xc2580c00, 0xc2580dff, REGISTRY_RIPENCC }, // 194.88.12.0 - 194.88.13.255 { 0xc2580e00, 0xc2581fff, REGISTRY_RIPENCC }, // 194.88.14.0 - 194.88.31.255 { 0xc2582000, 0xc2587fff, REGISTRY_RIPENCC }, // 194.88.32.0 - 194.88.127.255 { 0xc2588000, 0xc25883ff, REGISTRY_RIPENCC }, // 194.88.128.0 - 194.88.131.255 { 0xc2588400, 0xc25885ff, REGISTRY_RIPENCC }, // 194.88.132.0 - 194.88.133.255 { 0xc2588600, 0xc2589fff, REGISTRY_RIPENCC }, // 194.88.134.0 - 194.88.159.255 { 0xc258a000, 0xc258c1ff, REGISTRY_RIPENCC }, // 194.88.160.0 - 194.88.193.255 { 0xc258c200, 0xc258d7ff, REGISTRY_RIPENCC }, // 194.88.194.0 - 194.88.215.255 { 0xc258d800, 0xc258d9ff, REGISTRY_RIPENCC }, // 194.88.216.0 - 194.88.217.255 { 0xc258da00, 0xc258e1ff, REGISTRY_RIPENCC }, // 194.88.218.0 - 194.88.225.255 { 0xc258e200, 0xc258e3ff, REGISTRY_RIPENCC }, // 194.88.226.0 - 194.88.227.255 { 0xc258e400, 0xc258fbff, REGISTRY_RIPENCC }, // 194.88.228.0 - 194.88.251.255 { 0xc258fc00, 0xc258fdff, REGISTRY_RIPENCC }, // 194.88.252.0 - 194.88.253.255 { 0xc258fe00, 0xc258ffff, REGISTRY_RIPENCC }, // 194.88.254.0 - 194.88.255.255 { 0xc2590000, 0xc25affff, REGISTRY_RIPENCC }, // 194.89.0.0 - 194.90.255.255 { 0xc25b0000, 0xc25bffff, REGISTRY_APNIC }, // 194.91.0.0 - 194.91.255.255 { 0xc25c0000, 0xc25d48ff, REGISTRY_RIPENCC }, // 194.92.0.0 - 194.93.72.255 { 0xc25d4900, 0xc25d62ff, REGISTRY_RIPENCC }, // 194.93.73.0 - 194.93.98.255 { 0xc25d6300, 0xc25d63ff, REGISTRY_RIPENCC }, // 194.93.99.0 - 194.93.99.255 { 0xc25d6400, 0xc25d64ff, REGISTRY_RIPENCC }, // 194.93.100.0 - 194.93.100.255 { 0xc25d6500, 0xc25d66ff, REGISTRY_RIPENCC }, // 194.93.101.0 - 194.93.102.255 { 0xc25d6700, 0xc25d7aff, REGISTRY_RIPENCC }, // 194.93.103.0 - 194.93.122.255 { 0xc25d7b80, 0xc25d7fff, REGISTRY_RIPENCC }, // 194.93.123.128 - 194.93.127.255 { 0xc25d8000, 0xc262ffff, REGISTRY_RIPENCC }, // 194.93.128.0 - 194.98.255.255 { 0xc2630000, 0xc26307ff, REGISTRY_RIPENCC }, // 194.99.0.0 - 194.99.7.255 { 0xc2630800, 0xc2630bff, REGISTRY_RIPENCC }, // 194.99.8.0 - 194.99.11.255 { 0xc2630c00, 0xc2630fff, REGISTRY_RIPENCC }, // 194.99.12.0 - 194.99.15.255 { 0xc2631000, 0xc2631fff, REGISTRY_RIPENCC }, // 194.99.16.0 - 194.99.31.255 { 0xc2632000, 0xc26320ff, REGISTRY_RIPENCC }, // 194.99.32.0 - 194.99.32.255 { 0xc2632100, 0xc26321ff, REGISTRY_RIPENCC }, // 194.99.33.0 - 194.99.33.255 { 0xc2632200, 0xc26322ff, REGISTRY_RIPENCC }, // 194.99.34.0 - 194.99.34.255 { 0xc2632300, 0xc26323ff, REGISTRY_RIPENCC }, // 194.99.35.0 - 194.99.35.255 { 0xc2632400, 0xc26325ff, REGISTRY_RIPENCC }, // 194.99.36.0 - 194.99.37.255 { 0xc2632600, 0xc2632fff, REGISTRY_RIPENCC }, // 194.99.38.0 - 194.99.47.255 { 0xc2633000, 0xc26331ff, REGISTRY_RIPENCC }, // 194.99.48.0 - 194.99.49.255 { 0xc2633200, 0xc26337ff, REGISTRY_RIPENCC }, // 194.99.50.0 - 194.99.55.255 { 0xc2633800, 0xc26338ff, REGISTRY_RIPENCC }, // 194.99.56.0 - 194.99.56.255 { 0xc2633900, 0xc26343ff, REGISTRY_RIPENCC }, // 194.99.57.0 - 194.99.67.255 { 0xc2634400, 0xc26347ff, REGISTRY_RIPENCC }, // 194.99.68.0 - 194.99.71.255 { 0xc2634800, 0xc26348ff, REGISTRY_RIPENCC }, // 194.99.72.0 - 194.99.72.255 { 0xc2634900, 0xc26349ff, REGISTRY_RIPENCC }, // 194.99.73.0 - 194.99.73.255 { 0xc2634a00, 0xc2634aff, REGISTRY_RIPENCC }, // 194.99.74.0 - 194.99.74.255 { 0xc2634b00, 0xc2634dff, REGISTRY_RIPENCC }, // 194.99.75.0 - 194.99.77.255 { 0xc2634e00, 0xc26352ff, REGISTRY_RIPENCC }, // 194.99.78.0 - 194.99.82.255 { 0xc2635300, 0xc26354ff, REGISTRY_RIPENCC }, // 194.99.83.0 - 194.99.84.255 { 0xc2635500, 0xc26357ff, REGISTRY_RIPENCC }, // 194.99.85.0 - 194.99.87.255 { 0xc2635800, 0xc2635aff, REGISTRY_RIPENCC }, // 194.99.88.0 - 194.99.90.255 { 0xc2635b00, 0xc2635bff, REGISTRY_RIPENCC }, // 194.99.91.0 - 194.99.91.255 { 0xc2635c00, 0xc2635fff, REGISTRY_RIPENCC }, // 194.99.92.0 - 194.99.95.255 { 0xc2636000, 0xc26361ff, REGISTRY_RIPENCC }, // 194.99.96.0 - 194.99.97.255 { 0xc2636200, 0xc26363ff, REGISTRY_RIPENCC }, // 194.99.98.0 - 194.99.99.255 { 0xc2636400, 0xc2636bff, REGISTRY_RIPENCC }, // 194.99.100.0 - 194.99.107.255 { 0xc2636c00, 0xc2636dff, REGISTRY_RIPENCC }, // 194.99.108.0 - 194.99.109.255 { 0xc2636e00, 0xc26370ff, REGISTRY_RIPENCC }, // 194.99.110.0 - 194.99.112.255 { 0xc2637100, 0xc26371ff, REGISTRY_RIPENCC }, // 194.99.113.0 - 194.99.113.255 { 0xc2637200, 0xc26373ff, REGISTRY_RIPENCC }, // 194.99.114.0 - 194.99.115.255 { 0xc2637400, 0xc2639bff, REGISTRY_RIPENCC }, // 194.99.116.0 - 194.99.155.255 { 0xc2639c00, 0xc2639fff, REGISTRY_RIPENCC }, // 194.99.156.0 - 194.99.159.255 { 0xc263a000, 0xc263ffff, REGISTRY_RIPENCC }, // 194.99.160.0 - 194.99.255.255 { 0xc2640000, 0xc2662cff, REGISTRY_RIPENCC }, // 194.100.0.0 - 194.102.44.255 { 0xc2662d00, 0xc2662dff, REGISTRY_RIPENCC }, // 194.102.45.0 - 194.102.45.255 { 0xc2662e00, 0xc2663dff, REGISTRY_RIPENCC }, // 194.102.46.0 - 194.102.61.255 { 0xc2663e00, 0xc26640ff, REGISTRY_RIPENCC }, // 194.102.62.0 - 194.102.64.255 { 0xc2664100, 0xc26644ff, REGISTRY_RIPENCC }, // 194.102.65.0 - 194.102.68.255 { 0xc2664500, 0xc26646ff, REGISTRY_RIPENCC }, // 194.102.69.0 - 194.102.70.255 { 0xc2664700, 0xc26649ff, REGISTRY_RIPENCC }, // 194.102.71.0 - 194.102.73.255 { 0xc2664a00, 0xc2664aff, REGISTRY_RIPENCC }, // 194.102.74.0 - 194.102.74.255 { 0xc2664b00, 0xc2664cff, REGISTRY_RIPENCC }, // 194.102.75.0 - 194.102.76.255 { 0xc2664d00, 0xc2664dff, REGISTRY_RIPENCC }, // 194.102.77.0 - 194.102.77.255 { 0xc2664e00, 0xc2664fff, REGISTRY_RIPENCC }, // 194.102.78.0 - 194.102.79.255 { 0xc2665000, 0xc26651ff, REGISTRY_RIPENCC }, // 194.102.80.0 - 194.102.81.255 { 0xc2665200, 0xc26654ff, REGISTRY_RIPENCC }, // 194.102.82.0 - 194.102.84.255 { 0xc2665500, 0xc26656ff, REGISTRY_RIPENCC }, // 194.102.85.0 - 194.102.86.255 { 0xc2665700, 0xc2665cff, REGISTRY_RIPENCC }, // 194.102.87.0 - 194.102.92.255 { 0xc2665d00, 0xc2665dff, REGISTRY_RIPENCC }, // 194.102.93.0 - 194.102.93.255 { 0xc2665e00, 0xc26662ff, REGISTRY_RIPENCC }, // 194.102.94.0 - 194.102.98.255 { 0xc2666300, 0xc26667ff, REGISTRY_RIPENCC }, // 194.102.99.0 - 194.102.103.255 { 0xc2666800, 0xc2666bff, REGISTRY_RIPENCC }, // 194.102.104.0 - 194.102.107.255 { 0xc2666c00, 0xc2666cff, REGISTRY_RIPENCC }, // 194.102.108.0 - 194.102.108.255 { 0xc2666d00, 0xc26670ff, REGISTRY_RIPENCC }, // 194.102.109.0 - 194.102.112.255 { 0xc2667100, 0xc26671ff, REGISTRY_RIPENCC }, // 194.102.113.0 - 194.102.113.255 { 0xc2667200, 0xc26674ff, REGISTRY_RIPENCC }, // 194.102.114.0 - 194.102.116.255 { 0xc2667500, 0xc26676ff, REGISTRY_RIPENCC }, // 194.102.117.0 - 194.102.118.255 { 0xc2667700, 0xc2667bff, REGISTRY_RIPENCC }, // 194.102.119.0 - 194.102.123.255 { 0xc2667c00, 0xc26681ff, REGISTRY_RIPENCC }, // 194.102.124.0 - 194.102.129.255 { 0xc2668200, 0xc26682ff, REGISTRY_RIPENCC }, // 194.102.130.0 - 194.102.130.255 { 0xc2668300, 0xc26683ff, REGISTRY_RIPENCC }, // 194.102.131.0 - 194.102.131.255 { 0xc2668400, 0xc26689ff, REGISTRY_RIPENCC }, // 194.102.132.0 - 194.102.137.255 { 0xc2668a00, 0xc2668dff, REGISTRY_RIPENCC }, // 194.102.138.0 - 194.102.141.255 { 0xc2668e00, 0xc26691ff, REGISTRY_RIPENCC }, // 194.102.142.0 - 194.102.145.255 { 0xc2669200, 0xc26693ff, REGISTRY_RIPENCC }, // 194.102.146.0 - 194.102.147.255 { 0xc2669400, 0xc266a1ff, REGISTRY_RIPENCC }, // 194.102.148.0 - 194.102.161.255 { 0xc266a200, 0xc266a2ff, REGISTRY_RIPENCC }, // 194.102.162.0 - 194.102.162.255 { 0xc266a300, 0xc266bbff, REGISTRY_RIPENCC }, // 194.102.163.0 - 194.102.187.255 { 0xc266bc00, 0xc266bcff, REGISTRY_RIPENCC }, // 194.102.188.0 - 194.102.188.255 { 0xc266bd00, 0xc266bdff, REGISTRY_RIPENCC }, // 194.102.189.0 - 194.102.189.255 { 0xc266be00, 0xc266beff, REGISTRY_RIPENCC }, // 194.102.190.0 - 194.102.190.255 { 0xc266bf00, 0xc266c1ff, REGISTRY_RIPENCC }, // 194.102.191.0 - 194.102.193.255 { 0xc266c200, 0xc266c3ff, REGISTRY_RIPENCC }, // 194.102.194.0 - 194.102.195.255 { 0xc266c400, 0xc266c7ff, REGISTRY_RIPENCC }, // 194.102.196.0 - 194.102.199.255 { 0xc266c800, 0xc266c8ff, REGISTRY_RIPENCC }, // 194.102.200.0 - 194.102.200.255 { 0xc266c900, 0xc266c9ff, REGISTRY_RIPENCC }, // 194.102.201.0 - 194.102.201.255 { 0xc266ca00, 0xc266ccff, REGISTRY_RIPENCC }, // 194.102.202.0 - 194.102.204.255 { 0xc266cd00, 0xc266cfff, REGISTRY_RIPENCC }, // 194.102.205.0 - 194.102.207.255 { 0xc266d000, 0xc266d0ff, REGISTRY_RIPENCC }, // 194.102.208.0 - 194.102.208.255 { 0xc266d100, 0xc266d6ff, REGISTRY_RIPENCC }, // 194.102.209.0 - 194.102.214.255 { 0xc266d700, 0xc266d7ff, REGISTRY_RIPENCC }, // 194.102.215.0 - 194.102.215.255 { 0xc266d800, 0xc266dbff, REGISTRY_RIPENCC }, // 194.102.216.0 - 194.102.219.255 { 0xc266dc00, 0xc266ddff, REGISTRY_RIPENCC }, // 194.102.220.0 - 194.102.221.255 { 0xc266de00, 0xc266deff, REGISTRY_RIPENCC }, // 194.102.222.0 - 194.102.222.255 { 0xc266df00, 0xc266dfff, REGISTRY_RIPENCC }, // 194.102.223.0 - 194.102.223.255 { 0xc266e000, 0xc266e9ff, REGISTRY_RIPENCC }, // 194.102.224.0 - 194.102.233.255 { 0xc266ea00, 0xc266ebff, REGISTRY_RIPENCC }, // 194.102.234.0 - 194.102.235.255 { 0xc266ec00, 0xc266f2ff, REGISTRY_RIPENCC }, // 194.102.236.0 - 194.102.242.255 { 0xc266f300, 0xc266f3ff, REGISTRY_RIPENCC }, // 194.102.243.0 - 194.102.243.255 { 0xc266f400, 0xc266f7ff, REGISTRY_RIPENCC }, // 194.102.244.0 - 194.102.247.255 { 0xc266f800, 0xc266ffff, REGISTRY_RIPENCC }, // 194.102.248.0 - 194.102.255.255 { 0xc2670000, 0xc267ffff, REGISTRY_RIPENCC }, // 194.103.0.0 - 194.103.255.255 { 0xc2680000, 0xc26800ff, REGISTRY_RIPENCC }, // 194.104.0.0 - 194.104.0.255 { 0xc2680100, 0xc26817ff, REGISTRY_RIPENCC }, // 194.104.1.0 - 194.104.23.255 { 0xc2681800, 0xc26854ff, REGISTRY_RIPENCC }, // 194.104.24.0 - 194.104.84.255 { 0xc2685500, 0xc26857ff, REGISTRY_RIPENCC }, // 194.104.85.0 - 194.104.87.255 { 0xc2685800, 0xc26859ff, REGISTRY_RIPENCC }, // 194.104.88.0 - 194.104.89.255 { 0xc2685a00, 0xc2685dff, REGISTRY_RIPENCC }, // 194.104.90.0 - 194.104.93.255 { 0xc2685e00, 0xc26860ff, REGISTRY_RIPENCC }, // 194.104.94.0 - 194.104.96.255 { 0xc2686100, 0xc26863ff, REGISTRY_RIPENCC }, // 194.104.97.0 - 194.104.99.255 { 0xc2686400, 0xc26867ff, REGISTRY_RIPENCC }, // 194.104.100.0 - 194.104.103.255 { 0xc2686800, 0xc26870ff, REGISTRY_RIPENCC }, // 194.104.104.0 - 194.104.112.255 { 0xc2687100, 0xc26871ff, REGISTRY_RIPENCC }, // 194.104.113.0 - 194.104.113.255 { 0xc2687200, 0xc26877ff, REGISTRY_RIPENCC }, // 194.104.114.0 - 194.104.119.255 { 0xc2687c00, 0xc2687dff, REGISTRY_RIPENCC }, // 194.104.124.0 - 194.104.125.255 { 0xc2687e00, 0xc2687eff, REGISTRY_RIPENCC }, // 194.104.126.0 - 194.104.126.255 { 0xc2687f00, 0xc2687fff, REGISTRY_RIPENCC }, // 194.104.127.0 - 194.104.127.255 { 0xc2688000, 0xc26895ff, REGISTRY_RIPENCC }, // 194.104.128.0 - 194.104.149.255 { 0xc2689600, 0xc26897ff, REGISTRY_RIPENCC }, // 194.104.150.0 - 194.104.151.255 { 0xc2689800, 0xc2689cff, REGISTRY_RIPENCC }, // 194.104.152.0 - 194.104.156.255 { 0xc2689d00, 0xc2689dff, REGISTRY_RIPENCC }, // 194.104.157.0 - 194.104.157.255 { 0xc2689e00, 0xc2689eff, REGISTRY_RIPENCC }, // 194.104.158.0 - 194.104.158.255 { 0xc2689f00, 0xc268bbff, REGISTRY_RIPENCC }, // 194.104.159.0 - 194.104.187.255 { 0xc268bc00, 0xc268bfff, REGISTRY_RIPENCC }, // 194.104.188.0 - 194.104.191.255 { 0xc268c000, 0xc268dfff, REGISTRY_RIPENCC }, // 194.104.192.0 - 194.104.223.255 { 0xc268e000, 0xc268efff, REGISTRY_RIPENCC }, // 194.104.224.0 - 194.104.239.255 { 0xc268f000, 0xc268ffff, REGISTRY_RIPENCC }, // 194.104.240.0 - 194.104.255.255 { 0xc2690000, 0xc26900ff, REGISTRY_RIPENCC }, // 194.105.0.0 - 194.105.0.255 { 0xc2690100, 0xc26901ff, REGISTRY_RIPENCC }, // 194.105.1.0 - 194.105.1.255 { 0xc2690200, 0xc26902ff, REGISTRY_RIPENCC }, // 194.105.2.0 - 194.105.2.255 { 0xc2690300, 0xc26904ff, REGISTRY_RIPENCC }, // 194.105.3.0 - 194.105.4.255 { 0xc2690500, 0xc26905ff, REGISTRY_RIPENCC }, // 194.105.5.0 - 194.105.5.255 { 0xc2690600, 0xc26907ff, REGISTRY_RIPENCC }, // 194.105.6.0 - 194.105.7.255 { 0xc2690800, 0xc2690fff, REGISTRY_RIPENCC }, // 194.105.8.0 - 194.105.15.255 { 0xc2691000, 0xc26911ff, REGISTRY_RIPENCC }, // 194.105.16.0 - 194.105.17.255 { 0xc2691200, 0xc26912ff, REGISTRY_RIPENCC }, // 194.105.18.0 - 194.105.18.255 { 0xc2691300, 0xc26913ff, REGISTRY_RIPENCC }, // 194.105.19.0 - 194.105.19.255 { 0xc2691400, 0xc26917ff, REGISTRY_RIPENCC }, // 194.105.20.0 - 194.105.23.255 { 0xc2691800, 0xc2692fff, REGISTRY_RIPENCC }, // 194.105.24.0 - 194.105.47.255 { 0xc2693000, 0xc26937ff, REGISTRY_RIPENCC }, // 194.105.48.0 - 194.105.55.255 { 0xc2693800, 0xc26939ff, REGISTRY_RIPENCC }, // 194.105.56.0 - 194.105.57.255 { 0xc2693a00, 0xc2693cff, REGISTRY_RIPENCC }, // 194.105.58.0 - 194.105.60.255 { 0xc2693d00, 0xc2693dff, REGISTRY_RIPENCC }, // 194.105.61.0 - 194.105.61.255 { 0xc2693e00, 0xc2695fff, REGISTRY_RIPENCC }, // 194.105.62.0 - 194.105.95.255 { 0xc2696000, 0xc26967ff, REGISTRY_RIPENCC }, // 194.105.96.0 - 194.105.103.255 { 0xc2696800, 0xc2696fff, REGISTRY_RIPENCC }, // 194.105.104.0 - 194.105.111.255 { 0xc2697000, 0xc2699dff, REGISTRY_RIPENCC }, // 194.105.112.0 - 194.105.157.255 { 0xc2699e00, 0xc26abfff, REGISTRY_RIPENCC }, // 194.105.158.0 - 194.106.191.255 { 0xc26ac000, 0xc26ac3ff, REGISTRY_RIPENCC }, // 194.106.192.0 - 194.106.195.255 { 0xc26ac400, 0xc26ac6ff, REGISTRY_RIPENCC }, // 194.106.196.0 - 194.106.198.255 { 0xc26ac700, 0xc26ac9ff, REGISTRY_RIPENCC }, // 194.106.199.0 - 194.106.201.255 { 0xc26aca00, 0xc26acbff, REGISTRY_RIPENCC }, // 194.106.202.0 - 194.106.203.255 { 0xc26acc00, 0xc26acdff, REGISTRY_RIPENCC }, // 194.106.204.0 - 194.106.205.255 { 0xc26ace00, 0xc26acfff, REGISTRY_RIPENCC }, // 194.106.206.0 - 194.106.207.255 { 0xc26ad000, 0xc26adfff, REGISTRY_RIPENCC }, // 194.106.208.0 - 194.106.223.255 { 0xc26ae000, 0xc26affff, REGISTRY_RIPENCC }, // 194.106.224.0 - 194.106.255.255 { 0xc26b0000, 0xc26b33ff, REGISTRY_RIPENCC }, // 194.107.0.0 - 194.107.51.255 { 0xc26b3400, 0xc26b37ff, REGISTRY_RIPENCC }, // 194.107.52.0 - 194.107.55.255 { 0xc26b3800, 0xc26b45ff, REGISTRY_RIPENCC }, // 194.107.56.0 - 194.107.69.255 { 0xc26b4600, 0xc26b47ff, REGISTRY_ARIN }, // 194.107.70.0 - 194.107.71.255 { 0xc26b4800, 0xc26b4fff, REGISTRY_RIPENCC }, // 194.107.72.0 - 194.107.79.255 { 0xc26b5000, 0xc26b5bff, REGISTRY_RIPENCC }, // 194.107.80.0 - 194.107.91.255 { 0xc26b5c00, 0xc26b5cff, REGISTRY_RIPENCC }, // 194.107.92.0 - 194.107.92.255 { 0xc26b5d00, 0xc26b70ff, REGISTRY_RIPENCC }, // 194.107.93.0 - 194.107.112.255 { 0xc26b7100, 0xc26b71ff, REGISTRY_RIPENCC }, // 194.107.113.0 - 194.107.113.255 { 0xc26b7200, 0xc26b79ff, REGISTRY_RIPENCC }, // 194.107.114.0 - 194.107.121.255 { 0xc26b7a00, 0xc26b7aff, REGISTRY_RIPENCC }, // 194.107.122.0 - 194.107.122.255 { 0xc26b7b00, 0xc26b7cff, REGISTRY_RIPENCC }, // 194.107.123.0 - 194.107.124.255 { 0xc26b7d00, 0xc26b7eff, REGISTRY_RIPENCC }, // 194.107.125.0 - 194.107.126.255 { 0xc26b7f00, 0xc26b7fff, REGISTRY_RIPENCC }, // 194.107.127.0 - 194.107.127.255 { 0xc26b8000, 0xc26b81ff, REGISTRY_RIPENCC }, // 194.107.128.0 - 194.107.129.255 { 0xc26b8200, 0xc26b87ff, REGISTRY_RIPENCC }, // 194.107.130.0 - 194.107.135.255 { 0xc26b8800, 0xc26b8bff, REGISTRY_RIPENCC }, // 194.107.136.0 - 194.107.139.255 { 0xc26b8c00, 0xc26b9fff, REGISTRY_RIPENCC }, // 194.107.140.0 - 194.107.159.255 { 0xc26ba000, 0xc26ba5ff, REGISTRY_RIPENCC }, // 194.107.160.0 - 194.107.165.255 { 0xc26ba600, 0xc26bafff, REGISTRY_RIPENCC }, // 194.107.166.0 - 194.107.175.255 { 0xc26bb000, 0xc26bb7ff, REGISTRY_RIPENCC }, // 194.107.176.0 - 194.107.183.255 { 0xc26bb800, 0xc26bc7ff, REGISTRY_RIPENCC }, // 194.107.184.0 - 194.107.199.255 { 0xc26bc800, 0xc26bc8ff, REGISTRY_RIPENCC }, // 194.107.200.0 - 194.107.200.255 { 0xc26bc900, 0xc26bcbff, REGISTRY_RIPENCC }, // 194.107.201.0 - 194.107.203.255 { 0xc26bcc00, 0xc26bcfff, REGISTRY_RIPENCC }, // 194.107.204.0 - 194.107.207.255 { 0xc26bd000, 0xc26be4ff, REGISTRY_RIPENCC }, // 194.107.208.0 - 194.107.228.255 { 0xc26be500, 0xc26be7ff, REGISTRY_RIPENCC }, // 194.107.229.0 - 194.107.231.255 { 0xc26be800, 0xc26bf7ff, REGISTRY_RIPENCC }, // 194.107.232.0 - 194.107.247.255 { 0xc26bf800, 0xc26e05ff, REGISTRY_RIPENCC }, // 194.107.248.0 - 194.110.5.255 { 0xc26e0600, 0xc26e06ff, REGISTRY_RIPENCC }, // 194.110.6.0 - 194.110.6.255 { 0xc26e0700, 0xc26e11ff, REGISTRY_RIPENCC }, // 194.110.7.0 - 194.110.17.255 { 0xc26e1200, 0xc26e12ff, REGISTRY_RIPENCC }, // 194.110.18.0 - 194.110.18.255 { 0xc26e1300, 0xc26e16ff, REGISTRY_RIPENCC }, // 194.110.19.0 - 194.110.22.255 { 0xc26e1700, 0xc26e1aff, REGISTRY_RIPENCC }, // 194.110.23.0 - 194.110.26.255 { 0xc26e1b00, 0xc26e1eff, REGISTRY_RIPENCC }, // 194.110.27.0 - 194.110.30.255 { 0xc26e1f00, 0xc26e2fff, REGISTRY_RIPENCC }, // 194.110.31.0 - 194.110.47.255 { 0xc26e3000, 0xc26e3dff, REGISTRY_RIPENCC }, // 194.110.48.0 - 194.110.61.255 { 0xc26e3e00, 0xc26e47ff, REGISTRY_RIPENCC }, // 194.110.62.0 - 194.110.71.255 { 0xc26e4800, 0xc26e48ff, REGISTRY_RIPENCC }, // 194.110.72.0 - 194.110.72.255 { 0xc26e4900, 0xc26e49ff, REGISTRY_RIPENCC }, // 194.110.73.0 - 194.110.73.255 { 0xc26e4a00, 0xc26e4aff, REGISTRY_RIPENCC }, // 194.110.74.0 - 194.110.74.255 { 0xc26e4b00, 0xc26e4fff, REGISTRY_RIPENCC }, // 194.110.75.0 - 194.110.79.255 { 0xc26e5000, 0xc26e5fff, REGISTRY_RIPENCC }, // 194.110.80.0 - 194.110.95.255 { 0xc26e6000, 0xc26e6fff, REGISTRY_RIPENCC }, // 194.110.96.0 - 194.110.111.255 { 0xc26e7000, 0xc26e73ff, REGISTRY_RIPENCC }, // 194.110.112.0 - 194.110.115.255 { 0xc26e7400, 0xc26e74ff, REGISTRY_RIPENCC }, // 194.110.116.0 - 194.110.116.255 { 0xc26e7500, 0xc26e7dff, REGISTRY_RIPENCC }, // 194.110.117.0 - 194.110.125.255 { 0xc26e7e00, 0xc26e81ff, REGISTRY_RIPENCC }, // 194.110.126.0 - 194.110.129.255 { 0xc26e8200, 0xc26e84ff, REGISTRY_RIPENCC }, // 194.110.130.0 - 194.110.132.255 { 0xc26e8500, 0xc26e85ff, REGISTRY_RIPENCC }, // 194.110.133.0 - 194.110.133.255 { 0xc26e8600, 0xc26e87ff, REGISTRY_RIPENCC }, // 194.110.134.0 - 194.110.135.255 { 0xc26e8800, 0xc26e88ff, REGISTRY_RIPENCC }, // 194.110.136.0 - 194.110.136.255 { 0xc26e8900, 0xc26e8dff, REGISTRY_RIPENCC }, // 194.110.137.0 - 194.110.141.255 { 0xc26e8e00, 0xc26e8eff, REGISTRY_RIPENCC }, // 194.110.142.0 - 194.110.142.255 { 0xc26e8f00, 0xc26e96ff, REGISTRY_RIPENCC }, // 194.110.143.0 - 194.110.150.255 { 0xc26e9700, 0xc26e9fff, REGISTRY_RIPENCC }, // 194.110.151.0 - 194.110.159.255 { 0xc26ea000, 0xc26ea3ff, REGISTRY_RIPENCC }, // 194.110.160.0 - 194.110.163.255 { 0xc26ea400, 0xc26ea7ff, REGISTRY_RIPENCC }, // 194.110.164.0 - 194.110.167.255 { 0xc26ea800, 0xc26ebfff, REGISTRY_RIPENCC }, // 194.110.168.0 - 194.110.191.255 { 0xc26ec000, 0xc26ec0ff, REGISTRY_RIPENCC }, // 194.110.192.0 - 194.110.192.255 { 0xc26ec100, 0xc26ec1ff, REGISTRY_RIPENCC }, // 194.110.193.0 - 194.110.193.255 { 0xc26ec200, 0xc26ec3ff, REGISTRY_RIPENCC }, // 194.110.194.0 - 194.110.195.255 { 0xc26ec400, 0xc26ec4ff, REGISTRY_RIPENCC }, // 194.110.196.0 - 194.110.196.255 { 0xc26ec500, 0xc26ec7ff, REGISTRY_RIPENCC }, // 194.110.197.0 - 194.110.199.255 { 0xc26ec800, 0xc26ec8ff, REGISTRY_RIPENCC }, // 194.110.200.0 - 194.110.200.255 { 0xc26ec900, 0xc26ecaff, REGISTRY_RIPENCC }, // 194.110.201.0 - 194.110.202.255 { 0xc26ecb00, 0xc26ecbff, REGISTRY_RIPENCC }, // 194.110.203.0 - 194.110.203.255 { 0xc26ecd00, 0xc26eceff, REGISTRY_RIPENCC }, // 194.110.205.0 - 194.110.206.255 { 0xc26ecf00, 0xc26ecfff, REGISTRY_RIPENCC }, // 194.110.207.0 - 194.110.207.255 { 0xc26ed000, 0xc26ed1ff, REGISTRY_RIPENCC }, // 194.110.208.0 - 194.110.209.255 { 0xc26ed200, 0xc26ed2ff, REGISTRY_RIPENCC }, // 194.110.210.0 - 194.110.210.255 { 0xc26ed300, 0xc26eeeff, REGISTRY_RIPENCC }, // 194.110.211.0 - 194.110.238.255 { 0xc26eef00, 0xc26eefff, REGISTRY_RIPENCC }, // 194.110.239.0 - 194.110.239.255 { 0xc26ef000, 0xc26ef1ff, REGISTRY_RIPENCC }, // 194.110.240.0 - 194.110.241.255 { 0xc26ef200, 0xc26ef3ff, REGISTRY_RIPENCC }, // 194.110.242.0 - 194.110.243.255 { 0xc26ef400, 0xc26ef5ff, REGISTRY_RIPENCC }, // 194.110.244.0 - 194.110.245.255 { 0xc26ef600, 0xc26ef8ff, REGISTRY_RIPENCC }, // 194.110.246.0 - 194.110.248.255 { 0xc26ef900, 0xc26efaff, REGISTRY_RIPENCC }, // 194.110.249.0 - 194.110.250.255 { 0xc26efb00, 0xc26efbff, REGISTRY_RIPENCC }, // 194.110.251.0 - 194.110.251.255 { 0xc26efc00, 0xc26efdff, REGISTRY_RIPENCC }, // 194.110.252.0 - 194.110.253.255 { 0xc26efe00, 0xc270ffff, REGISTRY_RIPENCC }, // 194.110.254.0 - 194.112.255.255 { 0xc2710000, 0xc27117ff, REGISTRY_RIPENCC }, // 194.113.0.0 - 194.113.23.255 { 0xc2711800, 0xc27120ff, REGISTRY_RIPENCC }, // 194.113.24.0 - 194.113.32.255 { 0xc2712100, 0xc27121ff, REGISTRY_RIPENCC }, // 194.113.33.0 - 194.113.33.255 { 0xc2712200, 0xc27127ff, REGISTRY_RIPENCC }, // 194.113.34.0 - 194.113.39.255 { 0xc2712800, 0xc27129ff, REGISTRY_RIPENCC }, // 194.113.40.0 - 194.113.41.255 { 0xc2712a00, 0xc2712fff, REGISTRY_RIPENCC }, // 194.113.42.0 - 194.113.47.255 { 0xc2713000, 0xc27135ff, REGISTRY_RIPENCC }, // 194.113.48.0 - 194.113.53.255 { 0xc2713600, 0xc27137ff, REGISTRY_RIPENCC }, // 194.113.54.0 - 194.113.55.255 { 0xc2713800, 0xc27139ff, REGISTRY_RIPENCC }, // 194.113.56.0 - 194.113.57.255 { 0xc2713a00, 0xc2713aff, REGISTRY_RIPENCC }, // 194.113.58.0 - 194.113.58.255 { 0xc2713b00, 0xc2713cff, REGISTRY_RIPENCC }, // 194.113.59.0 - 194.113.60.255 { 0xc2713d00, 0xc27146ff, REGISTRY_RIPENCC }, // 194.113.61.0 - 194.113.70.255 { 0xc2714700, 0xc27147ff, REGISTRY_RIPENCC }, // 194.113.71.0 - 194.113.71.255 { 0xc2714800, 0xc2714bff, REGISTRY_RIPENCC }, // 194.113.72.0 - 194.113.75.255 { 0xc2714c00, 0xc2714fff, REGISTRY_RIPENCC }, // 194.113.76.0 - 194.113.79.255 { 0xc2715000, 0xc27151ff, REGISTRY_RIPENCC }, // 194.113.80.0 - 194.113.81.255 { 0xc2715200, 0xc27157ff, REGISTRY_RIPENCC }, // 194.113.82.0 - 194.113.87.255 { 0xc2715800, 0xc2715cff, REGISTRY_RIPENCC }, // 194.113.88.0 - 194.113.92.255 { 0xc2715d00, 0xc2715dff, REGISTRY_RIPENCC }, // 194.113.93.0 - 194.113.93.255 { 0xc2715e00, 0xc2715fff, REGISTRY_RIPENCC }, // 194.113.94.0 - 194.113.95.255 { 0xc2716000, 0xc27167ff, REGISTRY_RIPENCC }, // 194.113.96.0 - 194.113.103.255 { 0xc2716800, 0xc27172ff, REGISTRY_RIPENCC }, // 194.113.104.0 - 194.113.114.255 { 0xc2717300, 0xc27173ff, REGISTRY_RIPENCC }, // 194.113.115.0 - 194.113.115.255 { 0xc2717500, 0xc27175ff, REGISTRY_RIPENCC }, // 194.113.117.0 - 194.113.117.255 { 0xc2717600, 0xc27177ff, REGISTRY_RIPENCC }, // 194.113.118.0 - 194.113.119.255 { 0xc2717800, 0xc2718aff, REGISTRY_RIPENCC }, // 194.113.120.0 - 194.113.138.255 { 0xc2718b00, 0xc2718cff, REGISTRY_RIPENCC }, // 194.113.139.0 - 194.113.140.255 { 0xc2718d00, 0xc2718dff, REGISTRY_RIPENCC }, // 194.113.141.0 - 194.113.141.255 { 0xc2718e00, 0xc2718eff, REGISTRY_RIPENCC }, // 194.113.142.0 - 194.113.142.255 { 0xc2718f00, 0xc2718fff, REGISTRY_RIPENCC }, // 194.113.143.0 - 194.113.143.255 { 0xc2719000, 0xc27193ff, REGISTRY_RIPENCC }, // 194.113.144.0 - 194.113.147.255 { 0xc2719400, 0xc27195ff, REGISTRY_RIPENCC }, // 194.113.148.0 - 194.113.149.255 { 0xc2719600, 0xc27199ff, REGISTRY_RIPENCC }, // 194.113.150.0 - 194.113.153.255 { 0xc2719a00, 0xc2719aff, REGISTRY_RIPENCC }, // 194.113.154.0 - 194.113.154.255 { 0xc2719b00, 0xc2719fff, REGISTRY_RIPENCC }, // 194.113.155.0 - 194.113.159.255 { 0xc271a000, 0xc271a3ff, REGISTRY_RIPENCC }, // 194.113.160.0 - 194.113.163.255 { 0xc271a400, 0xc271a4ff, REGISTRY_RIPENCC }, // 194.113.164.0 - 194.113.164.255 { 0xc271a500, 0xc271a5ff, REGISTRY_RIPENCC }, // 194.113.165.0 - 194.113.165.255 { 0xc271a600, 0xc271a7ff, REGISTRY_RIPENCC }, // 194.113.166.0 - 194.113.167.255 { 0xc271a800, 0xc271a8ff, REGISTRY_RIPENCC }, // 194.113.168.0 - 194.113.168.255 { 0xc271a900, 0xc271aaff, REGISTRY_RIPENCC }, // 194.113.169.0 - 194.113.170.255 { 0xc271ab00, 0xc271abff, REGISTRY_RIPENCC }, // 194.113.171.0 - 194.113.171.255 { 0xc271ac00, 0xc271acff, REGISTRY_RIPENCC }, // 194.113.172.0 - 194.113.172.255 { 0xc271ad00, 0xc271adff, REGISTRY_RIPENCC }, // 194.113.173.0 - 194.113.173.255 { 0xc271ae00, 0xc271afff, REGISTRY_RIPENCC }, // 194.113.174.0 - 194.113.175.255 { 0xc271b000, 0xc271c1ff, REGISTRY_RIPENCC }, // 194.113.176.0 - 194.113.193.255 { 0xc271c200, 0xc271c3ff, REGISTRY_ARIN }, // 194.113.194.0 - 194.113.195.255 { 0xc271c400, 0xc271c7ff, REGISTRY_RIPENCC }, // 194.113.196.0 - 194.113.199.255 { 0xc271c800, 0xc271d0ff, REGISTRY_RIPENCC }, // 194.113.200.0 - 194.113.208.255 { 0xc271d100, 0xc271d1ff, REGISTRY_RIPENCC }, // 194.113.209.0 - 194.113.209.255 { 0xc271d200, 0xc271d3ff, REGISTRY_ARIN }, // 194.113.210.0 - 194.113.211.255 { 0xc271d400, 0xc271d9ff, REGISTRY_RIPENCC }, // 194.113.212.0 - 194.113.217.255 { 0xc271da00, 0xc271ddff, REGISTRY_RIPENCC }, // 194.113.218.0 - 194.113.221.255 { 0xc271de00, 0xc271dfff, REGISTRY_RIPENCC }, // 194.113.222.0 - 194.113.223.255 { 0xc271e000, 0xc271e1ff, REGISTRY_RIPENCC }, // 194.113.224.0 - 194.113.225.255 { 0xc271e200, 0xc271efff, REGISTRY_RIPENCC }, // 194.113.226.0 - 194.113.239.255 { 0xc271f000, 0xc271f4ff, REGISTRY_RIPENCC }, // 194.113.240.0 - 194.113.244.255 { 0xc271f500, 0xc271f5ff, REGISTRY_RIPENCC }, // 194.113.245.0 - 194.113.245.255 { 0xc271f600, 0xc271f7ff, REGISTRY_RIPENCC }, // 194.113.246.0 - 194.113.247.255 { 0xc271f800, 0xc271f9ff, REGISTRY_RIPENCC }, // 194.113.248.0 - 194.113.249.255 { 0xc271fa00, 0xc27287ff, REGISTRY_RIPENCC }, // 194.113.250.0 - 194.114.135.255 { 0xc2728800, 0xc2728bff, REGISTRY_RIPENCC }, // 194.114.136.0 - 194.114.139.255 { 0xc2728c00, 0xc27293ff, REGISTRY_RIPENCC }, // 194.114.140.0 - 194.114.147.255 { 0xc2729400, 0xc27297ff, REGISTRY_RIPENCC }, // 194.114.148.0 - 194.114.151.255 { 0xc2729800, 0xc272ffff, REGISTRY_RIPENCC }, // 194.114.152.0 - 194.114.255.255 { 0xc2730000, 0xc27300ff, REGISTRY_RIPENCC }, // 194.115.0.0 - 194.115.0.255 { 0xc2730100, 0xc27301ff, REGISTRY_RIPENCC }, // 194.115.1.0 - 194.115.1.255 { 0xc2730200, 0xc27303ff, REGISTRY_RIPENCC }, // 194.115.2.0 - 194.115.3.255 { 0xc2730400, 0xc27304ff, REGISTRY_RIPENCC }, // 194.115.4.0 - 194.115.4.255 { 0xc2730500, 0xc27319ff, REGISTRY_RIPENCC }, // 194.115.5.0 - 194.115.25.255 { 0xc2731a00, 0xc2731aff, REGISTRY_RIPENCC }, // 194.115.26.0 - 194.115.26.255 { 0xc2731b00, 0xc27333ff, REGISTRY_RIPENCC }, // 194.115.27.0 - 194.115.51.255 { 0xc2733400, 0xc27334ff, REGISTRY_RIPENCC }, // 194.115.52.0 - 194.115.52.255 { 0xc2733500, 0xc27341ff, REGISTRY_RIPENCC }, // 194.115.53.0 - 194.115.65.255 { 0xc2734200, 0xc27342ff, REGISTRY_RIPENCC }, // 194.115.66.0 - 194.115.66.255 { 0xc2734300, 0xc27357ff, REGISTRY_RIPENCC }, // 194.115.67.0 - 194.115.87.255 { 0xc2735800, 0xc2735fff, REGISTRY_RIPENCC }, // 194.115.88.0 - 194.115.95.255 { 0xc2736000, 0xc27377ff, REGISTRY_RIPENCC }, // 194.115.96.0 - 194.115.119.255 { 0xc2737800, 0xc27378ff, REGISTRY_RIPENCC }, // 194.115.120.0 - 194.115.120.255 { 0xc2737900, 0xc273a0ff, REGISTRY_RIPENCC }, // 194.115.121.0 - 194.115.160.255 { 0xc273a100, 0xc273a1ff, REGISTRY_RIPENCC }, // 194.115.161.0 - 194.115.161.255 { 0xc273a200, 0xc273a2ff, REGISTRY_RIPENCC }, // 194.115.162.0 - 194.115.162.255 { 0xc273a300, 0xc273afff, REGISTRY_RIPENCC }, // 194.115.163.0 - 194.115.175.255 { 0xc273b000, 0xc273b5ff, REGISTRY_RIPENCC }, // 194.115.176.0 - 194.115.181.255 { 0xc273b600, 0xc273b7ff, REGISTRY_RIPENCC }, // 194.115.182.0 - 194.115.183.255 { 0xc273b800, 0xc273bfff, REGISTRY_RIPENCC }, // 194.115.184.0 - 194.115.191.255 { 0xc273c000, 0xc273c3ff, REGISTRY_RIPENCC }, // 194.115.192.0 - 194.115.195.255 { 0xc273c400, 0xc273d3ff, REGISTRY_RIPENCC }, // 194.115.196.0 - 194.115.211.255 { 0xc273d400, 0xc273dfff, REGISTRY_RIPENCC }, // 194.115.212.0 - 194.115.223.255 { 0xc273e000, 0xc2747fff, REGISTRY_RIPENCC }, // 194.115.224.0 - 194.116.127.255 { 0xc2748000, 0xc27489ff, REGISTRY_RIPENCC }, // 194.116.128.0 - 194.116.137.255 { 0xc2748a00, 0xc2748bff, REGISTRY_RIPENCC }, // 194.116.138.0 - 194.116.139.255 { 0xc2748c00, 0xc27492ff, REGISTRY_RIPENCC }, // 194.116.140.0 - 194.116.146.255 { 0xc2749300, 0xc27493ff, REGISTRY_RIPENCC }, // 194.116.147.0 - 194.116.147.255 { 0xc2749400, 0xc27499ff, REGISTRY_RIPENCC }, // 194.116.148.0 - 194.116.153.255 { 0xc2749a00, 0xc2749bff, REGISTRY_RIPENCC }, // 194.116.154.0 - 194.116.155.255 { 0xc2749c00, 0xc274a1ff, REGISTRY_RIPENCC }, // 194.116.156.0 - 194.116.161.255 { 0xc274a200, 0xc274a3ff, REGISTRY_RIPENCC }, // 194.116.162.0 - 194.116.163.255 { 0xc274a400, 0xc274abff, REGISTRY_RIPENCC }, // 194.116.164.0 - 194.116.171.255 { 0xc274ac00, 0xc274adff, REGISTRY_RIPENCC }, // 194.116.172.0 - 194.116.173.255 { 0xc274ae00, 0xc274b7ff, REGISTRY_RIPENCC }, // 194.116.174.0 - 194.116.183.255 { 0xc274b800, 0xc274b9ff, REGISTRY_RIPENCC }, // 194.116.184.0 - 194.116.185.255 { 0xc274ba00, 0xc274bdff, REGISTRY_RIPENCC }, // 194.116.186.0 - 194.116.189.255 { 0xc274be00, 0xc274bfff, REGISTRY_RIPENCC }, // 194.116.190.0 - 194.116.191.255 { 0xc274c000, 0xc274c1ff, REGISTRY_RIPENCC }, // 194.116.192.0 - 194.116.193.255 { 0xc274c200, 0xc274c3ff, REGISTRY_RIPENCC }, // 194.116.194.0 - 194.116.195.255 { 0xc274c400, 0xc274cfff, REGISTRY_RIPENCC }, // 194.116.196.0 - 194.116.207.255 { 0xc274d000, 0xc274d1ff, REGISTRY_RIPENCC }, // 194.116.208.0 - 194.116.209.255 { 0xc274d200, 0xc274d5ff, REGISTRY_RIPENCC }, // 194.116.210.0 - 194.116.213.255 { 0xc274d600, 0xc274d9ff, REGISTRY_RIPENCC }, // 194.116.214.0 - 194.116.217.255 { 0xc274da00, 0xc274dbff, REGISTRY_RIPENCC }, // 194.116.218.0 - 194.116.219.255 { 0xc274dc00, 0xc274ddff, REGISTRY_RIPENCC }, // 194.116.220.0 - 194.116.221.255 { 0xc274de00, 0xc274e1ff, REGISTRY_RIPENCC }, // 194.116.222.0 - 194.116.225.255 { 0xc274e200, 0xc274e7ff, REGISTRY_RIPENCC }, // 194.116.226.0 - 194.116.231.255 { 0xc274e800, 0xc274e9ff, REGISTRY_RIPENCC }, // 194.116.232.0 - 194.116.233.255 { 0xc274ea00, 0xc274edff, REGISTRY_RIPENCC }, // 194.116.234.0 - 194.116.237.255 { 0xc274ee00, 0xc274f7ff, REGISTRY_RIPENCC }, // 194.116.238.0 - 194.116.247.255 { 0xc274f800, 0xc274fbff, REGISTRY_RIPENCC }, // 194.116.248.0 - 194.116.251.255 { 0xc274fc00, 0xc274ffff, REGISTRY_RIPENCC }, // 194.116.252.0 - 194.116.255.255 { 0xc2750000, 0xc27531ff, REGISTRY_RIPENCC }, // 194.117.0.0 - 194.117.49.255 { 0xc2753280, 0xc275347f, REGISTRY_RIPENCC }, // 194.117.50.128 - 194.117.52.127 { 0xc2753580, 0xc27536ff, REGISTRY_RIPENCC }, // 194.117.53.128 - 194.117.54.255 { 0xc2753780, 0xc27537ff, REGISTRY_RIPENCC }, // 194.117.55.128 - 194.117.55.255 { 0xc2753800, 0xc275e1ff, REGISTRY_RIPENCC }, // 194.117.56.0 - 194.117.225.255 { 0xc275e200, 0xc275edff, REGISTRY_RIPENCC }, // 194.117.226.0 - 194.117.237.255 { 0xc275ee00, 0xc275efff, REGISTRY_RIPENCC }, // 194.117.238.0 - 194.117.239.255 { 0xc275f000, 0xc275f9ff, REGISTRY_RIPENCC }, // 194.117.240.0 - 194.117.249.255 { 0xc275fa00, 0xc275fbff, REGISTRY_RIPENCC }, // 194.117.250.0 - 194.117.251.255 { 0xc275fc00, 0xc275fdff, REGISTRY_RIPENCC }, // 194.117.252.0 - 194.117.253.255 { 0xc275fe00, 0xc2780fff, REGISTRY_RIPENCC }, // 194.117.254.0 - 194.120.15.255 { 0xc2781000, 0xc27811ff, REGISTRY_RIPENCC }, // 194.120.16.0 - 194.120.17.255 { 0xc2781200, 0xc27815ff, REGISTRY_RIPENCC }, // 194.120.18.0 - 194.120.21.255 { 0xc2781600, 0xc27817ff, REGISTRY_RIPENCC }, // 194.120.22.0 - 194.120.23.255 { 0xc2781800, 0xc27827ff, REGISTRY_RIPENCC }, // 194.120.24.0 - 194.120.39.255 { 0xc2782800, 0xc27828ff, REGISTRY_RIPENCC }, // 194.120.40.0 - 194.120.40.255 { 0xc2782900, 0xc27836ff, REGISTRY_RIPENCC }, // 194.120.41.0 - 194.120.54.255 { 0xc2783700, 0xc27837ff, REGISTRY_RIPENCC }, // 194.120.55.0 - 194.120.55.255 { 0xc2783800, 0xc2784fff, REGISTRY_RIPENCC }, // 194.120.56.0 - 194.120.79.255 { 0xc2785000, 0xc27867ff, REGISTRY_RIPENCC }, // 194.120.80.0 - 194.120.103.255 { 0xc2786800, 0xc2786cff, REGISTRY_RIPENCC }, // 194.120.104.0 - 194.120.108.255 { 0xc2786d00, 0xc2786fff, REGISTRY_RIPENCC }, // 194.120.109.0 - 194.120.111.255 { 0xc2787000, 0xc27876ff, REGISTRY_RIPENCC }, // 194.120.112.0 - 194.120.118.255 { 0xc2787700, 0xc27877ff, REGISTRY_RIPENCC }, // 194.120.119.0 - 194.120.119.255 { 0xc2787800, 0xc2787dff, REGISTRY_RIPENCC }, // 194.120.120.0 - 194.120.125.255 { 0xc2787e00, 0xc2787eff, REGISTRY_RIPENCC }, // 194.120.126.0 - 194.120.126.255 { 0xc2787f00, 0xc27895ff, REGISTRY_RIPENCC }, // 194.120.127.0 - 194.120.149.255 { 0xc2789600, 0xc27896ff, REGISTRY_RIPENCC }, // 194.120.150.0 - 194.120.150.255 { 0xc2789700, 0xc278a9ff, REGISTRY_RIPENCC }, // 194.120.151.0 - 194.120.169.255 { 0xc278aa00, 0xc278aaff, REGISTRY_RIPENCC }, // 194.120.170.0 - 194.120.170.255 { 0xc278ab00, 0xc278acff, REGISTRY_RIPENCC }, // 194.120.171.0 - 194.120.172.255 { 0xc278ad00, 0xc278adff, REGISTRY_RIPENCC }, // 194.120.173.0 - 194.120.173.255 { 0xc278ae00, 0xc278b5ff, REGISTRY_RIPENCC }, // 194.120.174.0 - 194.120.181.255 { 0xc278b600, 0xc278b8ff, REGISTRY_RIPENCC }, // 194.120.182.0 - 194.120.184.255 { 0xc278b900, 0xc278bcff, REGISTRY_RIPENCC }, // 194.120.185.0 - 194.120.188.255 { 0xc278bd00, 0xc278bdff, REGISTRY_RIPENCC }, // 194.120.189.0 - 194.120.189.255 { 0xc278be00, 0xc278bfff, REGISTRY_RIPENCC }, // 194.120.190.0 - 194.120.191.255 { 0xc278c000, 0xc278dfff, REGISTRY_RIPENCC }, // 194.120.192.0 - 194.120.223.255 { 0xc278e000, 0xc278e6ff, REGISTRY_RIPENCC }, // 194.120.224.0 - 194.120.230.255 { 0xc278e700, 0xc278e7ff, REGISTRY_RIPENCC }, // 194.120.231.0 - 194.120.231.255 { 0xc278e800, 0xc278e9ff, REGISTRY_RIPENCC }, // 194.120.232.0 - 194.120.233.255 { 0xc278ea00, 0xc278eaff, REGISTRY_RIPENCC }, // 194.120.234.0 - 194.120.234.255 { 0xc278eb00, 0xc278f8ff, REGISTRY_RIPENCC }, // 194.120.235.0 - 194.120.248.255 { 0xc278f900, 0xc278f9ff, REGISTRY_RIPENCC }, // 194.120.249.0 - 194.120.249.255 { 0xc278fa00, 0xc278ffff, REGISTRY_RIPENCC }, // 194.120.250.0 - 194.120.255.255 { 0xc2790000, 0xc27900ff, REGISTRY_RIPENCC }, // 194.121.0.0 - 194.121.0.255 { 0xc2790100, 0xc27901ff, REGISTRY_RIPENCC }, // 194.121.1.0 - 194.121.1.255 { 0xc2790200, 0xc27902ff, REGISTRY_RIPENCC }, // 194.121.2.0 - 194.121.2.255 { 0xc2790300, 0xc27919ff, REGISTRY_RIPENCC }, // 194.121.3.0 - 194.121.25.255 { 0xc2791a00, 0xc2791aff, REGISTRY_RIPENCC }, // 194.121.26.0 - 194.121.26.255 { 0xc2791b00, 0xc2792dff, REGISTRY_RIPENCC }, // 194.121.27.0 - 194.121.45.255 { 0xc2792e00, 0xc2792eff, REGISTRY_RIPENCC }, // 194.121.46.0 - 194.121.46.255 { 0xc2792f00, 0xc2792fff, REGISTRY_RIPENCC }, // 194.121.47.0 - 194.121.47.255 { 0xc2793000, 0xc27932ff, REGISTRY_RIPENCC }, // 194.121.48.0 - 194.121.50.255 { 0xc2793300, 0xc27937ff, REGISTRY_RIPENCC }, // 194.121.51.0 - 194.121.55.255 { 0xc2793800, 0xc27938ff, REGISTRY_RIPENCC }, // 194.121.56.0 - 194.121.56.255 { 0xc2793900, 0xc2793dff, REGISTRY_RIPENCC }, // 194.121.57.0 - 194.121.61.255 { 0xc2793e00, 0xc2793fff, REGISTRY_RIPENCC }, // 194.121.62.0 - 194.121.63.255 { 0xc2794000, 0xc27941ff, REGISTRY_RIPENCC }, // 194.121.64.0 - 194.121.65.255 { 0xc2794200, 0xc27942ff, REGISTRY_RIPENCC }, // 194.121.66.0 - 194.121.66.255 { 0xc2794300, 0xc27959ff, REGISTRY_RIPENCC }, // 194.121.67.0 - 194.121.89.255 { 0xc2795a00, 0xc2795aff, REGISTRY_RIPENCC }, // 194.121.90.0 - 194.121.90.255 { 0xc2795b00, 0xc279abff, REGISTRY_RIPENCC }, // 194.121.91.0 - 194.121.171.255 { 0xc279ac00, 0xc279afff, REGISTRY_RIPENCC }, // 194.121.172.0 - 194.121.175.255 { 0xc279b000, 0xc279fdff, REGISTRY_RIPENCC }, // 194.121.176.0 - 194.121.253.255 { 0xc279fe00, 0xc279feff, REGISTRY_RIPENCC }, // 194.121.254.0 - 194.121.254.255 { 0xc279ff00, 0xc27bffff, REGISTRY_RIPENCC }, // 194.121.255.0 - 194.123.255.255 { 0xc27c0000, 0xc27c1fff, REGISTRY_RIPENCC }, // 194.124.0.0 - 194.124.31.255 { 0xc27c2000, 0xc27c4dff, REGISTRY_RIPENCC }, // 194.124.32.0 - 194.124.77.255 { 0xc27c4e00, 0xc27c8fff, REGISTRY_RIPENCC }, // 194.124.78.0 - 194.124.143.255 { 0xc27c9000, 0xc27c90ff, REGISTRY_RIPENCC }, // 194.124.144.0 - 194.124.144.255 { 0xc27c9100, 0xc27c9dff, REGISTRY_RIPENCC }, // 194.124.145.0 - 194.124.157.255 { 0xc27c9e00, 0xc27c9fff, REGISTRY_RIPENCC }, // 194.124.158.0 - 194.124.159.255 { 0xc27ca000, 0xc27cbbff, REGISTRY_RIPENCC }, // 194.124.160.0 - 194.124.187.255 { 0xc27cbc00, 0xc27cc8ff, REGISTRY_RIPENCC }, // 194.124.188.0 - 194.124.200.255 { 0xc27cc900, 0xc27ccbff, REGISTRY_RIPENCC }, // 194.124.201.0 - 194.124.203.255 { 0xc27ccc00, 0xc27ccfff, REGISTRY_RIPENCC }, // 194.124.204.0 - 194.124.207.255 { 0xc27cd000, 0xc27cd1ff, REGISTRY_RIPENCC }, // 194.124.208.0 - 194.124.209.255 { 0xc27cd200, 0xc27cd3ff, REGISTRY_RIPENCC }, // 194.124.210.0 - 194.124.211.255 { 0xc27cd400, 0xc27cd4ff, REGISTRY_RIPENCC }, // 194.124.212.0 - 194.124.212.255 { 0xc27cd500, 0xc27cd8ff, REGISTRY_RIPENCC }, // 194.124.213.0 - 194.124.216.255 { 0xc27cd900, 0xc27cd9ff, REGISTRY_RIPENCC }, // 194.124.217.0 - 194.124.217.255 { 0xc27cda00, 0xc27ce1ff, REGISTRY_RIPENCC }, // 194.124.218.0 - 194.124.225.255 { 0xc27ce200, 0xc27ce2ff, REGISTRY_RIPENCC }, // 194.124.226.0 - 194.124.226.255 { 0xc27ce300, 0xc27ce4ff, REGISTRY_RIPENCC }, // 194.124.227.0 - 194.124.228.255 { 0xc27ce500, 0xc27ce9ff, REGISTRY_RIPENCC }, // 194.124.229.0 - 194.124.233.255 { 0xc27cea00, 0xc27cedff, REGISTRY_RIPENCC }, // 194.124.234.0 - 194.124.237.255 { 0xc27cee00, 0xc27ceeff, REGISTRY_RIPENCC }, // 194.124.238.0 - 194.124.238.255 { 0xc27cef00, 0xc27cf0ff, REGISTRY_RIPENCC }, // 194.124.239.0 - 194.124.240.255 { 0xc27cf100, 0xc27cf3ff, REGISTRY_RIPENCC }, // 194.124.241.0 - 194.124.243.255 { 0xc27cf400, 0xc27cf5ff, REGISTRY_RIPENCC }, // 194.124.244.0 - 194.124.245.255 { 0xc27cf600, 0xc27cf6ff, REGISTRY_RIPENCC }, // 194.124.246.0 - 194.124.246.255 { 0xc27cf700, 0xc27cf8ff, REGISTRY_RIPENCC }, // 194.124.247.0 - 194.124.248.255 { 0xc27cf900, 0xc27cf9ff, REGISTRY_RIPENCC }, // 194.124.249.0 - 194.124.249.255 { 0xc27cfa00, 0xc27cfcff, REGISTRY_RIPENCC }, // 194.124.250.0 - 194.124.252.255 { 0xc27cfd00, 0xc27cfeff, REGISTRY_RIPENCC }, // 194.124.253.0 - 194.124.254.255 { 0xc27cff00, 0xc27ddfff, REGISTRY_RIPENCC }, // 194.124.255.0 - 194.125.223.255 { 0xc27de000, 0xc27de3ff, REGISTRY_RIPENCC }, // 194.125.224.0 - 194.125.227.255 { 0xc27de400, 0xc27de7ff, REGISTRY_RIPENCC }, // 194.125.228.0 - 194.125.231.255 { 0xc27de800, 0xc27df7ff, REGISTRY_RIPENCC }, // 194.125.232.0 - 194.125.247.255 { 0xc27df800, 0xc27dfbff, REGISTRY_RIPENCC }, // 194.125.248.0 - 194.125.251.255 { 0xc27dfc00, 0xc27dffff, REGISTRY_RIPENCC }, // 194.125.252.0 - 194.125.255.255 { 0xc27e0000, 0xc27e7fff, REGISTRY_RIPENCC }, // 194.126.0.0 - 194.126.127.255 { 0xc27e8000, 0xc27e80ff, REGISTRY_RIPENCC }, // 194.126.128.0 - 194.126.128.255 { 0xc27e8100, 0xc27e81ff, REGISTRY_RIPENCC }, // 194.126.129.0 - 194.126.129.255 { 0xc27e8200, 0xc27e82ff, REGISTRY_RIPENCC }, // 194.126.130.0 - 194.126.130.255 { 0xc27e8300, 0xc27e8fff, REGISTRY_RIPENCC }, // 194.126.131.0 - 194.126.143.255 { 0xc27e9000, 0xc27e97ff, REGISTRY_RIPENCC }, // 194.126.144.0 - 194.126.151.255 { 0xc27e9800, 0xc27e9bff, REGISTRY_RIPENCC }, // 194.126.152.0 - 194.126.155.255 { 0xc27e9c00, 0xc27e9fff, REGISTRY_RIPENCC }, // 194.126.156.0 - 194.126.159.255 { 0xc27ea000, 0xc27ea3ff, REGISTRY_RIPENCC }, // 194.126.160.0 - 194.126.163.255 { 0xc27ea400, 0xc27eafff, REGISTRY_RIPENCC }, // 194.126.164.0 - 194.126.175.255 { 0xc27eb000, 0xc27eb3ff, REGISTRY_RIPENCC }, // 194.126.176.0 - 194.126.179.255 { 0xc27eb400, 0xc27ebbff, REGISTRY_RIPENCC }, // 194.126.180.0 - 194.126.187.255 { 0xc27ebc00, 0xc27ebfff, REGISTRY_RIPENCC }, // 194.126.188.0 - 194.126.191.255 { 0xc27ec000, 0xc27ec1ff, REGISTRY_RIPENCC }, // 194.126.192.0 - 194.126.193.255 { 0xc27ec200, 0xc27ec2ff, REGISTRY_RIPENCC }, // 194.126.194.0 - 194.126.194.255 { 0xc27ec300, 0xc27ec9ff, REGISTRY_RIPENCC }, // 194.126.195.0 - 194.126.201.255 { 0xc27eca00, 0xc27ecbff, REGISTRY_RIPENCC }, // 194.126.202.0 - 194.126.203.255 { 0xc27ecc00, 0xc27ecdff, REGISTRY_RIPENCC }, // 194.126.204.0 - 194.126.205.255 { 0xc27ece00, 0xc27eceff, REGISTRY_RIPENCC }, // 194.126.206.0 - 194.126.206.255 { 0xc27ecf00, 0xc27ed6ff, REGISTRY_RIPENCC }, // 194.126.207.0 - 194.126.214.255 { 0xc27ed700, 0xc27ed7ff, REGISTRY_RIPENCC }, // 194.126.215.0 - 194.126.215.255 { 0xc27ed800, 0xc27edaff, REGISTRY_RIPENCC }, // 194.126.216.0 - 194.126.218.255 { 0xc27edb00, 0xc27edbff, REGISTRY_RIPENCC }, // 194.126.219.0 - 194.126.219.255 { 0xc27edc00, 0xc27ee2ff, REGISTRY_RIPENCC }, // 194.126.220.0 - 194.126.226.255 { 0xc27ee300, 0xc27ee3ff, REGISTRY_RIPENCC }, // 194.126.227.0 - 194.126.227.255 { 0xc27ee400, 0xc27ee4ff, REGISTRY_RIPENCC }, // 194.126.228.0 - 194.126.228.255 { 0xc27ee500, 0xc27ee5ff, REGISTRY_RIPENCC }, // 194.126.229.0 - 194.126.229.255 { 0xc27ee600, 0xc27ee8ff, REGISTRY_RIPENCC }, // 194.126.230.0 - 194.126.232.255 { 0xc27ee900, 0xc27ee9ff, REGISTRY_RIPENCC }, // 194.126.233.0 - 194.126.233.255 { 0xc27eea00, 0xc27eecff, REGISTRY_RIPENCC }, // 194.126.234.0 - 194.126.236.255 { 0xc27eed00, 0xc27eedff, REGISTRY_RIPENCC }, // 194.126.237.0 - 194.126.237.255 { 0xc27eee00, 0xc27eeeff, REGISTRY_RIPENCC }, // 194.126.238.0 - 194.126.238.255 { 0xc27eef00, 0xc27eefff, REGISTRY_RIPENCC }, // 194.126.239.0 - 194.126.239.255 { 0xc27ef000, 0xc27ef4ff, REGISTRY_RIPENCC }, // 194.126.240.0 - 194.126.244.255 { 0xc27ef500, 0xc27ef5ff, REGISTRY_RIPENCC }, // 194.126.245.0 - 194.126.245.255 { 0xc27ef600, 0xc27ef8ff, REGISTRY_RIPENCC }, // 194.126.246.0 - 194.126.248.255 { 0xc27ef900, 0xc27ef9ff, REGISTRY_RIPENCC }, // 194.126.249.0 - 194.126.249.255 { 0xc27efa00, 0xc27efaff, REGISTRY_RIPENCC }, // 194.126.250.0 - 194.126.250.255 { 0xc27efb00, 0xc27efbff, REGISTRY_RIPENCC }, // 194.126.251.0 - 194.126.251.255 { 0xc27efc00, 0xc27f60ff, REGISTRY_RIPENCC }, // 194.126.252.0 - 194.127.96.255 { 0xc27f6100, 0xc27f64ff, REGISTRY_RIPENCC }, // 194.127.97.0 - 194.127.100.255 { 0xc27f6500, 0xc27f67ff, REGISTRY_RIPENCC }, // 194.127.101.0 - 194.127.103.255 { 0xc27f6800, 0xc27f69ff, REGISTRY_APNIC }, // 194.127.104.0 - 194.127.105.255 { 0xc27f6a00, 0xc27f6aff, REGISTRY_RIPENCC }, // 194.127.106.0 - 194.127.106.255 { 0xc27f6b00, 0xc27f6bff, REGISTRY_RIPENCC }, // 194.127.107.0 - 194.127.107.255 { 0xc27f6c00, 0xc27f77ff, REGISTRY_RIPENCC }, // 194.127.108.0 - 194.127.119.255 { 0xc27f7800, 0xc27f80ff, REGISTRY_RIPENCC }, // 194.127.120.0 - 194.127.128.255 { 0xc27f8100, 0xc27f83ff, REGISTRY_RIPENCC }, // 194.127.129.0 - 194.127.131.255 { 0xc27f8400, 0xc27f86ff, REGISTRY_RIPENCC }, // 194.127.132.0 - 194.127.134.255 { 0xc27f8700, 0xc27f87ff, REGISTRY_RIPENCC }, // 194.127.135.0 - 194.127.135.255 { 0xc27f8800, 0xc27f88ff, REGISTRY_RIPENCC }, // 194.127.136.0 - 194.127.136.255 { 0xc27f8900, 0xc27f89ff, REGISTRY_RIPENCC }, // 194.127.137.0 - 194.127.137.255 { 0xc27f8a00, 0xc27f97ff, REGISTRY_RIPENCC }, // 194.127.138.0 - 194.127.151.255 { 0xc27f9800, 0xc27f99ff, REGISTRY_RIPENCC }, // 194.127.152.0 - 194.127.153.255 { 0xc27f9a00, 0xc27f9bff, REGISTRY_RIPENCC }, // 194.127.154.0 - 194.127.155.255 { 0xc27f9c00, 0xc27f9cff, REGISTRY_RIPENCC }, // 194.127.156.0 - 194.127.156.255 { 0xc27f9d00, 0xc27f9dff, REGISTRY_RIPENCC }, // 194.127.157.0 - 194.127.157.255 { 0xc27f9e00, 0xc27fa0ff, REGISTRY_RIPENCC }, // 194.127.158.0 - 194.127.160.255 { 0xc27fa100, 0xc27fa1ff, REGISTRY_RIPENCC }, // 194.127.161.0 - 194.127.161.255 { 0xc27fa200, 0xc27fa7ff, REGISTRY_RIPENCC }, // 194.127.162.0 - 194.127.167.255 { 0xc27fa800, 0xc27fa9ff, REGISTRY_RIPENCC }, // 194.127.168.0 - 194.127.169.255 { 0xc27faa00, 0xc27faaff, REGISTRY_RIPENCC }, // 194.127.170.0 - 194.127.170.255 { 0xc27fab00, 0xc27fabff, REGISTRY_RIPENCC }, // 194.127.171.0 - 194.127.171.255 { 0xc27fac00, 0xc27faeff, REGISTRY_RIPENCC }, // 194.127.172.0 - 194.127.174.255 { 0xc27faf00, 0xc27fb0ff, REGISTRY_RIPENCC }, // 194.127.175.0 - 194.127.176.255 { 0xc27fb100, 0xc27fb3ff, REGISTRY_RIPENCC }, // 194.127.177.0 - 194.127.179.255 { 0xc27fb400, 0xc27fb4ff, REGISTRY_RIPENCC }, // 194.127.180.0 - 194.127.180.255 { 0xc27fb500, 0xc27fb5ff, REGISTRY_RIPENCC }, // 194.127.181.0 - 194.127.181.255 { 0xc27fb600, 0xc27fb6ff, REGISTRY_RIPENCC }, // 194.127.182.0 - 194.127.182.255 { 0xc27fb700, 0xc27fb7ff, REGISTRY_RIPENCC }, // 194.127.183.0 - 194.127.183.255 { 0xc27fb800, 0xc27fbfff, REGISTRY_RIPENCC }, // 194.127.184.0 - 194.127.191.255 { 0xc27fc000, 0xc27fc2ff, REGISTRY_RIPENCC }, // 194.127.192.0 - 194.127.194.255 { 0xc27fc300, 0xc27fc3ff, REGISTRY_RIPENCC }, // 194.127.195.0 - 194.127.195.255 { 0xc27fc400, 0xc27fc4ff, REGISTRY_RIPENCC }, // 194.127.196.0 - 194.127.196.255 { 0xc27fc500, 0xc27fc5ff, REGISTRY_RIPENCC }, // 194.127.197.0 - 194.127.197.255 { 0xc27fc600, 0xc27fcaff, REGISTRY_RIPENCC }, // 194.127.198.0 - 194.127.202.255 { 0xc27fcb00, 0xc27fcdff, REGISTRY_RIPENCC }, // 194.127.203.0 - 194.127.205.255 { 0xc27fce00, 0xc27fceff, REGISTRY_RIPENCC }, // 194.127.206.0 - 194.127.206.255 { 0xc27fcf00, 0xc27fd3ff, REGISTRY_RIPENCC }, // 194.127.207.0 - 194.127.211.255 { 0xc27fd400, 0xc27fdfff, REGISTRY_RIPENCC }, // 194.127.212.0 - 194.127.223.255 { 0xc27fe000, 0xc27fe2ff, REGISTRY_RIPENCC }, // 194.127.224.0 - 194.127.226.255 { 0xc27fe300, 0xc27fe3ff, REGISTRY_RIPENCC }, // 194.127.227.0 - 194.127.227.255 { 0xc27fe400, 0xc27fe4ff, REGISTRY_RIPENCC }, // 194.127.228.0 - 194.127.228.255 { 0xc27fe600, 0xc27fe6ff, REGISTRY_RIPENCC }, // 194.127.230.0 - 194.127.230.255 { 0xc27fe700, 0xc27fe7ff, REGISTRY_RIPENCC }, // 194.127.231.0 - 194.127.231.255 { 0xc27fe800, 0xc27fe8ff, REGISTRY_RIPENCC }, // 194.127.232.0 - 194.127.232.255 { 0xc27fe900, 0xc27fe9ff, REGISTRY_RIPENCC }, // 194.127.233.0 - 194.127.233.255 { 0xc27fea00, 0xc27fedff, REGISTRY_RIPENCC }, // 194.127.234.0 - 194.127.237.255 { 0xc27fee00, 0xc27fefff, REGISTRY_RIPENCC }, // 194.127.238.0 - 194.127.239.255 { 0xc27ff000, 0xc27ff0ff, REGISTRY_RIPENCC }, // 194.127.240.0 - 194.127.240.255 { 0xc27ff100, 0xc27ff3ff, REGISTRY_RIPENCC }, // 194.127.241.0 - 194.127.243.255 { 0xc27ff400, 0xc27ffdff, REGISTRY_RIPENCC }, // 194.127.244.0 - 194.127.253.255 { 0xc27ffe00, 0xc27ffeff, REGISTRY_RIPENCC }, // 194.127.254.0 - 194.127.254.255 { 0xc27fff00, 0xc285ffff, REGISTRY_RIPENCC }, // 194.127.255.0 - 194.133.255.255 { 0xc2860000, 0xc286ffff, REGISTRY_ARIN }, // 194.134.0.0 - 194.134.255.255 { 0xc2870000, 0xc28b03ff, REGISTRY_RIPENCC }, // 194.135.0.0 - 194.139.3.255 { 0xc28b0400, 0xc28b04ff, REGISTRY_RIPENCC }, // 194.139.4.0 - 194.139.4.255 { 0xc28b0500, 0xc28b05ff, REGISTRY_RIPENCC }, // 194.139.5.0 - 194.139.5.255 { 0xc28b0600, 0xc28b07ff, REGISTRY_RIPENCC }, // 194.139.6.0 - 194.139.7.255 { 0xc28b0800, 0xc28b1dff, REGISTRY_RIPENCC }, // 194.139.8.0 - 194.139.29.255 { 0xc28b1f00, 0xc28b22ff, REGISTRY_RIPENCC }, // 194.139.31.0 - 194.139.34.255 { 0xc28b2300, 0xc28b23ff, REGISTRY_RIPENCC }, // 194.139.35.0 - 194.139.35.255 { 0xc28b2400, 0xc28cc7ff, REGISTRY_RIPENCC }, // 194.139.36.0 - 194.140.199.255 { 0xc28cc800, 0xc28ccfff, REGISTRY_APNIC }, // 194.140.200.0 - 194.140.207.255 { 0xc28cd000, 0xc28ce0ff, REGISTRY_RIPENCC }, // 194.140.208.0 - 194.140.224.255 { 0xc28ce100, 0xc28ce4ff, REGISTRY_RIPENCC }, // 194.140.225.0 - 194.140.228.255 { 0xc28ce500, 0xc28ce5ff, REGISTRY_RIPENCC }, // 194.140.229.0 - 194.140.229.255 { 0xc28ce600, 0xc28cecff, REGISTRY_RIPENCC }, // 194.140.230.0 - 194.140.236.255 { 0xc28ced00, 0xc28cedff, REGISTRY_RIPENCC }, // 194.140.237.0 - 194.140.237.255 { 0xc28cee00, 0xc28cf1ff, REGISTRY_RIPENCC }, // 194.140.238.0 - 194.140.241.255 { 0xc28cf200, 0xc28cf2ff, REGISTRY_RIPENCC }, // 194.140.242.0 - 194.140.242.255 { 0xc28cf300, 0xc28cf6ff, REGISTRY_RIPENCC }, // 194.140.243.0 - 194.140.246.255 { 0xc28cf700, 0xc28cf7ff, REGISTRY_RIPENCC }, // 194.140.247.0 - 194.140.247.255 { 0xc28cf800, 0xc28cf8ff, REGISTRY_RIPENCC }, // 194.140.248.0 - 194.140.248.255 { 0xc28cf900, 0xc28cfaff, REGISTRY_RIPENCC }, // 194.140.249.0 - 194.140.250.255 { 0xc28cfb00, 0xc28cffff, REGISTRY_RIPENCC }, // 194.140.251.0 - 194.140.255.255 { 0xc28d0000, 0xc28f7fff, REGISTRY_RIPENCC }, // 194.141.0.0 - 194.143.127.255 { 0xc28f8000, 0xc28f8dff, REGISTRY_RIPENCC }, // 194.143.128.0 - 194.143.141.255 { 0xc28f8e00, 0xc28f8fff, REGISTRY_RIPENCC }, // 194.143.142.0 - 194.143.143.255 { 0xc28f9000, 0xc28f9fff, REGISTRY_RIPENCC }, // 194.143.144.0 - 194.143.159.255 { 0xc28fa000, 0xc2911fff, REGISTRY_RIPENCC }, // 194.143.160.0 - 194.145.31.255 { 0xc2912000, 0xc2913aff, REGISTRY_RIPENCC }, // 194.145.32.0 - 194.145.58.255 { 0xc2913b00, 0xc2913eff, REGISTRY_RIPENCC }, // 194.145.59.0 - 194.145.62.255 { 0xc2913f00, 0xc2916fff, REGISTRY_RIPENCC }, // 194.145.63.0 - 194.145.111.255 { 0xc2917000, 0xc29171ff, REGISTRY_RIPENCC }, // 194.145.112.0 - 194.145.113.255 { 0xc2917200, 0xc29172ff, REGISTRY_RIPENCC }, // 194.145.114.0 - 194.145.114.255 { 0xc2917300, 0xc29174ff, REGISTRY_RIPENCC }, // 194.145.115.0 - 194.145.116.255 { 0xc2917500, 0xc29175ff, REGISTRY_RIPENCC }, // 194.145.117.0 - 194.145.117.255 { 0xc2917600, 0xc29177ff, REGISTRY_RIPENCC }, // 194.145.118.0 - 194.145.119.255 { 0xc2917800, 0xc2917cff, REGISTRY_RIPENCC }, // 194.145.120.0 - 194.145.124.255 { 0xc2917d00, 0xc2917dff, REGISTRY_RIPENCC }, // 194.145.125.0 - 194.145.125.255 { 0xc2917e00, 0xc2917eff, REGISTRY_RIPENCC }, // 194.145.126.0 - 194.145.126.255 { 0xc2917f00, 0xc2918bff, REGISTRY_RIPENCC }, // 194.145.127.0 - 194.145.139.255 { 0xc2918c00, 0xc2918dff, REGISTRY_RIPENCC }, // 194.145.140.0 - 194.145.141.255 { 0xc2918e00, 0xc2918fff, REGISTRY_RIPENCC }, // 194.145.142.0 - 194.145.143.255 { 0xc2919000, 0xc29192ff, REGISTRY_RIPENCC }, // 194.145.144.0 - 194.145.146.255 { 0xc2919400, 0xc29197ff, REGISTRY_RIPENCC }, // 194.145.148.0 - 194.145.151.255 { 0xc2919800, 0xc29198ff, REGISTRY_RIPENCC }, // 194.145.152.0 - 194.145.152.255 { 0xc2919900, 0xc2919aff, REGISTRY_RIPENCC }, // 194.145.153.0 - 194.145.154.255 { 0xc2919b00, 0xc2919bff, REGISTRY_RIPENCC }, // 194.145.155.0 - 194.145.155.255 { 0xc2919c00, 0xc291bfff, REGISTRY_RIPENCC }, // 194.145.156.0 - 194.145.191.255 { 0xc291c000, 0xc291c1ff, REGISTRY_RIPENCC }, // 194.145.192.0 - 194.145.193.255 { 0xc291c200, 0xc291c3ff, REGISTRY_RIPENCC }, // 194.145.194.0 - 194.145.195.255 { 0xc291c400, 0xc291c5ff, REGISTRY_RIPENCC }, // 194.145.196.0 - 194.145.197.255 { 0xc291c600, 0xc291cfff, REGISTRY_RIPENCC }, // 194.145.198.0 - 194.145.207.255 { 0xc291d000, 0xc291d5ff, REGISTRY_RIPENCC }, // 194.145.208.0 - 194.145.213.255 { 0xc291d600, 0xc291e3ff, REGISTRY_RIPENCC }, // 194.145.214.0 - 194.145.227.255 { 0xc291e400, 0xc291e4ff, REGISTRY_RIPENCC }, // 194.145.228.0 - 194.145.228.255 { 0xc291e500, 0xc291ecff, REGISTRY_RIPENCC }, // 194.145.229.0 - 194.145.236.255 { 0xc291ed00, 0xc291edff, REGISTRY_RIPENCC }, // 194.145.237.0 - 194.145.237.255 { 0xc291ee00, 0xc291f3ff, REGISTRY_RIPENCC }, // 194.145.238.0 - 194.145.243.255 { 0xc291f400, 0xc291fbff, REGISTRY_RIPENCC }, // 194.145.244.0 - 194.145.251.255 { 0xc291fc00, 0xc291ffff, REGISTRY_RIPENCC }, // 194.145.252.0 - 194.145.255.255 { 0xc2920000, 0xc2920fff, REGISTRY_RIPENCC }, // 194.146.0.0 - 194.146.15.255 { 0xc2921000, 0xc29216ff, REGISTRY_RIPENCC }, // 194.146.16.0 - 194.146.22.255 { 0xc2921700, 0xc2921aff, REGISTRY_RIPENCC }, // 194.146.23.0 - 194.146.26.255 { 0xc2921b00, 0xc2921bff, REGISTRY_RIPENCC }, // 194.146.27.0 - 194.146.27.255 { 0xc2921c00, 0xc29224ff, REGISTRY_RIPENCC }, // 194.146.28.0 - 194.146.36.255 { 0xc2922500, 0xc29225ff, REGISTRY_RIPENCC }, // 194.146.37.0 - 194.146.37.255 { 0xc2922600, 0xc2922dff, REGISTRY_RIPENCC }, // 194.146.38.0 - 194.146.45.255 { 0xc2922e00, 0xc2922eff, REGISTRY_RIPENCC }, // 194.146.46.0 - 194.146.46.255 { 0xc2922f00, 0xc29232ff, REGISTRY_RIPENCC }, // 194.146.47.0 - 194.146.50.255 { 0xc2923300, 0xc29233ff, REGISTRY_RIPENCC }, // 194.146.51.0 - 194.146.51.255 { 0xc2923400, 0xc29235ff, REGISTRY_RIPENCC }, // 194.146.52.0 - 194.146.53.255 { 0xc2923600, 0xc29236ff, REGISTRY_RIPENCC }, // 194.146.54.0 - 194.146.54.255 { 0xc2923700, 0xc2923dff, REGISTRY_RIPENCC }, // 194.146.55.0 - 194.146.61.255 { 0xc2923e00, 0xc2923eff, REGISTRY_RIPENCC }, // 194.146.62.0 - 194.146.62.255 { 0xc2923f00, 0xc29241ff, REGISTRY_RIPENCC }, // 194.146.63.0 - 194.146.65.255 { 0xc2924200, 0xc29245ff, REGISTRY_RIPENCC }, // 194.146.66.0 - 194.146.69.255 { 0xc2924600, 0xc29246ff, REGISTRY_RIPENCC }, // 194.146.70.0 - 194.146.70.255 { 0xc2924700, 0xc29251ff, REGISTRY_RIPENCC }, // 194.146.71.0 - 194.146.81.255 { 0xc2925200, 0xc2925dff, REGISTRY_RIPENCC }, // 194.146.82.0 - 194.146.93.255 { 0xc2925e00, 0xc29262ff, REGISTRY_RIPENCC }, // 194.146.94.0 - 194.146.98.255 { 0xc2926300, 0xc29268ff, REGISTRY_RIPENCC }, // 194.146.99.0 - 194.146.104.255 { 0xc2926900, 0xc2926eff, REGISTRY_RIPENCC }, // 194.146.105.0 - 194.146.110.255 { 0xc2926f00, 0xc2926fff, REGISTRY_RIPENCC }, // 194.146.111.0 - 194.146.111.255 { 0xc2927000, 0xc29271ff, REGISTRY_RIPENCC }, // 194.146.112.0 - 194.146.113.255 { 0xc2927200, 0xc29274ff, REGISTRY_RIPENCC }, // 194.146.114.0 - 194.146.116.255 { 0xc2927500, 0xc29279ff, REGISTRY_RIPENCC }, // 194.146.117.0 - 194.146.121.255 { 0xc2927a00, 0xc2927aff, REGISTRY_RIPENCC }, // 194.146.122.0 - 194.146.122.255 { 0xc2927c00, 0xc2927cff, REGISTRY_RIPENCC }, // 194.146.124.0 - 194.146.124.255 { 0xc2927d00, 0xc2927dff, REGISTRY_RIPENCC }, // 194.146.125.0 - 194.146.125.255 { 0xc2927e00, 0xc2927eff, REGISTRY_RIPENCC }, // 194.146.126.0 - 194.146.126.255 { 0xc2927f00, 0xc2927fff, REGISTRY_RIPENCC }, // 194.146.127.0 - 194.146.127.255 { 0xc2928000, 0xc29283ff, REGISTRY_RIPENCC }, // 194.146.128.0 - 194.146.131.255 { 0xc2928400, 0xc2929bff, REGISTRY_RIPENCC }, // 194.146.132.0 - 194.146.155.255 { 0xc2929c00, 0xc292a7ff, REGISTRY_RIPENCC }, // 194.146.156.0 - 194.146.167.255 { 0xc292a800, 0xc292abff, REGISTRY_RIPENCC }, // 194.146.168.0 - 194.146.171.255 { 0xc292ac00, 0xc292afff, REGISTRY_RIPENCC }, // 194.146.172.0 - 194.146.175.255 { 0xc292b000, 0xc292bbff, REGISTRY_RIPENCC }, // 194.146.176.0 - 194.146.187.255 { 0xc292bc00, 0xc292c3ff, REGISTRY_RIPENCC }, // 194.146.188.0 - 194.146.195.255 { 0xc292c400, 0xc292cbff, REGISTRY_RIPENCC }, // 194.146.196.0 - 194.146.203.255 { 0xc292cc00, 0xc292cfff, REGISTRY_RIPENCC }, // 194.146.204.0 - 194.146.207.255 { 0xc292d000, 0xc292dbff, REGISTRY_RIPENCC }, // 194.146.208.0 - 194.146.219.255 { 0xc292dc00, 0xc292dfff, REGISTRY_RIPENCC }, // 194.146.220.0 - 194.146.223.255 { 0xc292e000, 0xc292f7ff, REGISTRY_RIPENCC }, // 194.146.224.0 - 194.146.247.255 { 0xc292f800, 0xc292fbff, REGISTRY_RIPENCC }, // 194.146.248.0 - 194.146.251.255 { 0xc292fc00, 0xc292ffff, REGISTRY_RIPENCC }, // 194.146.252.0 - 194.146.255.255 { 0xc2930000, 0xc29311ff, REGISTRY_RIPENCC }, // 194.147.0.0 - 194.147.17.255 { 0xc2931200, 0xc29315ff, REGISTRY_RIPENCC }, // 194.147.18.0 - 194.147.21.255 { 0xc2931600, 0xc2932cff, REGISTRY_RIPENCC }, // 194.147.22.0 - 194.147.44.255 { 0xc2932d00, 0xc2932eff, REGISTRY_RIPENCC }, // 194.147.45.0 - 194.147.46.255 { 0xc2932f00, 0xc29333ff, REGISTRY_RIPENCC }, // 194.147.47.0 - 194.147.51.255 { 0xc2933400, 0xc29337ff, REGISTRY_RIPENCC }, // 194.147.52.0 - 194.147.55.255 { 0xc2933800, 0xc29341ff, REGISTRY_RIPENCC }, // 194.147.56.0 - 194.147.65.255 { 0xc2934200, 0xc29342ff, REGISTRY_RIPENCC }, // 194.147.66.0 - 194.147.66.255 { 0xc2934300, 0xc29345ff, REGISTRY_RIPENCC }, // 194.147.67.0 - 194.147.69.255 { 0xc2934600, 0xc29346ff, REGISTRY_RIPENCC }, // 194.147.70.0 - 194.147.70.255 { 0xc2934700, 0xc29347ff, REGISTRY_RIPENCC }, // 194.147.71.0 - 194.147.71.255 { 0xc2934800, 0xc29349ff, REGISTRY_RIPENCC }, // 194.147.72.0 - 194.147.73.255 { 0xc2934a00, 0xc2934bff, REGISTRY_RIPENCC }, // 194.147.74.0 - 194.147.75.255 { 0xc2934c00, 0xc2934dff, REGISTRY_RIPENCC }, // 194.147.76.0 - 194.147.77.255 { 0xc2934e00, 0xc2935fff, REGISTRY_RIPENCC }, // 194.147.78.0 - 194.147.95.255 { 0xc2936000, 0xc29360ff, REGISTRY_RIPENCC }, // 194.147.96.0 - 194.147.96.255 { 0xc2936100, 0xc29365ff, REGISTRY_RIPENCC }, // 194.147.97.0 - 194.147.101.255 { 0xc2936600, 0xc29368ff, REGISTRY_RIPENCC }, // 194.147.102.0 - 194.147.104.255 { 0xc2936900, 0xc2936fff, REGISTRY_RIPENCC }, // 194.147.105.0 - 194.147.111.255 { 0xc2937000, 0xc29371ff, REGISTRY_RIPENCC }, // 194.147.112.0 - 194.147.113.255 { 0xc2937200, 0xc29383ff, REGISTRY_RIPENCC }, // 194.147.114.0 - 194.147.131.255 { 0xc2938400, 0xc29384ff, REGISTRY_RIPENCC }, // 194.147.132.0 - 194.147.132.255 { 0xc2938500, 0xc29385ff, REGISTRY_RIPENCC }, // 194.147.133.0 - 194.147.133.255 { 0xc2938600, 0xc29387ff, REGISTRY_RIPENCC }, // 194.147.134.0 - 194.147.135.255 { 0xc2938800, 0xc2938cff, REGISTRY_RIPENCC }, // 194.147.136.0 - 194.147.140.255 { 0xc2938d00, 0xc2938dff, REGISTRY_RIPENCC }, // 194.147.141.0 - 194.147.141.255 { 0xc2938e00, 0xc2938eff, REGISTRY_RIPENCC }, // 194.147.142.0 - 194.147.142.255 { 0xc2938f00, 0xc2938fff, REGISTRY_RIPENCC }, // 194.147.143.0 - 194.147.143.255 { 0xc2939000, 0xc29396ff, REGISTRY_RIPENCC }, // 194.147.144.0 - 194.147.150.255 { 0xc2939700, 0xc29397ff, REGISTRY_RIPENCC }, // 194.147.151.0 - 194.147.151.255 { 0xc2939800, 0xc2939fff, REGISTRY_RIPENCC }, // 194.147.152.0 - 194.147.159.255 { 0xc293a000, 0xc293a3ff, REGISTRY_RIPENCC }, // 194.147.160.0 - 194.147.163.255 { 0xc293a400, 0xc293a7ff, REGISTRY_RIPENCC }, // 194.147.164.0 - 194.147.167.255 { 0xc293a800, 0xc293a9ff, REGISTRY_RIPENCC }, // 194.147.168.0 - 194.147.169.255 { 0xc293aa00, 0xc293aaff, REGISTRY_RIPENCC }, // 194.147.170.0 - 194.147.170.255 { 0xc293ab00, 0xc293abff, REGISTRY_RIPENCC }, // 194.147.171.0 - 194.147.171.255 { 0xc293ac00, 0xc293acff, REGISTRY_RIPENCC }, // 194.147.172.0 - 194.147.172.255 { 0xc293ad00, 0xc293adff, REGISTRY_RIPENCC }, // 194.147.173.0 - 194.147.173.255 { 0xc293ae00, 0xc293afff, REGISTRY_RIPENCC }, // 194.147.174.0 - 194.147.175.255 { 0xc293b000, 0xc293d2ff, REGISTRY_RIPENCC }, // 194.147.176.0 - 194.147.210.255 { 0xc293d300, 0xc293e4ff, REGISTRY_RIPENCC }, // 194.147.211.0 - 194.147.228.255 { 0xc293e500, 0xc293e5ff, REGISTRY_RIPENCC }, // 194.147.229.0 - 194.147.229.255 { 0xc293e600, 0xc293e7ff, REGISTRY_RIPENCC }, // 194.147.230.0 - 194.147.231.255 { 0xc293e800, 0xc293edff, REGISTRY_RIPENCC }, // 194.147.232.0 - 194.147.237.255 { 0xc293ee00, 0xc293efff, REGISTRY_RIPENCC }, // 194.147.238.0 - 194.147.239.255 { 0xc293f000, 0xc293f0ff, REGISTRY_RIPENCC }, // 194.147.240.0 - 194.147.240.255 { 0xc293f100, 0xc293f4ff, REGISTRY_RIPENCC }, // 194.147.241.0 - 194.147.244.255 { 0xc293f500, 0xc293f7ff, REGISTRY_RIPENCC }, // 194.147.245.0 - 194.147.247.255 { 0xc293f800, 0xc293f8ff, REGISTRY_RIPENCC }, // 194.147.248.0 - 194.147.248.255 { 0xc293f900, 0xc293f9ff, REGISTRY_RIPENCC }, // 194.147.249.0 - 194.147.249.255 { 0xc293fa00, 0xc293fdff, REGISTRY_RIPENCC }, // 194.147.250.0 - 194.147.253.255 { 0xc293fe00, 0xc293feff, REGISTRY_RIPENCC }, // 194.147.254.0 - 194.147.254.255 { 0xc293ff00, 0xc2943fff, REGISTRY_RIPENCC }, // 194.147.255.0 - 194.148.63.255 { 0xc2944000, 0xc2945fff, REGISTRY_ARIN }, // 194.148.64.0 - 194.148.95.255 { 0xc2946000, 0xc2947fff, REGISTRY_RIPENCC }, // 194.148.96.0 - 194.148.127.255 { 0xc2948000, 0xc294ffff, REGISTRY_ARIN }, // 194.148.128.0 - 194.148.255.255 { 0xc2950000, 0xc29547ff, REGISTRY_RIPENCC }, // 194.149.0.0 - 194.149.71.255 { 0xc2954800, 0xc29558ff, REGISTRY_RIPENCC }, // 194.149.72.0 - 194.149.88.255 { 0xc2955900, 0xc29559ff, REGISTRY_RIPENCC }, // 194.149.89.0 - 194.149.89.255 { 0xc2955a00, 0xc2955aff, REGISTRY_RIPENCC }, // 194.149.90.0 - 194.149.90.255 { 0xc2955b00, 0xc2955bff, REGISTRY_RIPENCC }, // 194.149.91.0 - 194.149.91.255 { 0xc2955c00, 0xc2955cff, REGISTRY_RIPENCC }, // 194.149.92.0 - 194.149.92.255 { 0xc2955d00, 0xc2955dff, REGISTRY_RIPENCC }, // 194.149.93.0 - 194.149.93.255 { 0xc2955e00, 0xc2955fff, REGISTRY_RIPENCC }, // 194.149.94.0 - 194.149.95.255 { 0xc2956000, 0xc295dfff, REGISTRY_RIPENCC }, // 194.149.96.0 - 194.149.223.255 { 0xc295e000, 0xc295e7ff, REGISTRY_RIPENCC }, // 194.149.224.0 - 194.149.231.255 { 0xc295e800, 0xc295e9ff, REGISTRY_RIPENCC }, // 194.149.232.0 - 194.149.233.255 { 0xc295ea00, 0xc295ebff, REGISTRY_RIPENCC }, // 194.149.234.0 - 194.149.235.255 { 0xc295ec00, 0xc295edff, REGISTRY_RIPENCC }, // 194.149.236.0 - 194.149.237.255 { 0xc295ee00, 0xc295f4ff, REGISTRY_RIPENCC }, // 194.149.238.0 - 194.149.244.255 { 0xc295f500, 0xc295f5ff, REGISTRY_RIPENCC }, // 194.149.245.0 - 194.149.245.255 { 0xc295f600, 0xc295ffff, REGISTRY_RIPENCC }, // 194.149.246.0 - 194.149.255.255 { 0xc2960000, 0xc2963fff, REGISTRY_RIPENCC }, // 194.150.0.0 - 194.150.63.255 { 0xc2964000, 0xc29643ff, REGISTRY_RIPENCC }, // 194.150.64.0 - 194.150.67.255 { 0xc2964400, 0xc29647ff, REGISTRY_RIPENCC }, // 194.150.68.0 - 194.150.71.255 { 0xc2964800, 0xc2964bff, REGISTRY_RIPENCC }, // 194.150.72.0 - 194.150.75.255 { 0xc2964c00, 0xc2964fff, REGISTRY_RIPENCC }, // 194.150.76.0 - 194.150.79.255 { 0xc2965000, 0xc2965bff, REGISTRY_RIPENCC }, // 194.150.80.0 - 194.150.91.255 { 0xc2965c00, 0xc2965fff, REGISTRY_RIPENCC }, // 194.150.92.0 - 194.150.95.255 { 0xc2966000, 0xc29667ff, REGISTRY_RIPENCC }, // 194.150.96.0 - 194.150.103.255 { 0xc2966800, 0xc2966fff, REGISTRY_RIPENCC }, // 194.150.104.0 - 194.150.111.255 { 0xc2967000, 0xc29673ff, REGISTRY_RIPENCC }, // 194.150.112.0 - 194.150.115.255 { 0xc2967400, 0xc29677ff, REGISTRY_RIPENCC }, // 194.150.116.0 - 194.150.119.255 { 0xc2967800, 0xc2967bff, REGISTRY_RIPENCC }, // 194.150.120.0 - 194.150.123.255 { 0xc2967c00, 0xc2967fff, REGISTRY_RIPENCC }, // 194.150.124.0 - 194.150.127.255 { 0xc2968000, 0xc296a5ff, REGISTRY_RIPENCC }, // 194.150.128.0 - 194.150.165.255 { 0xc296a600, 0xc296a7ff, REGISTRY_RIPENCC }, // 194.150.166.0 - 194.150.167.255 { 0xc296a800, 0xc296b3ff, REGISTRY_RIPENCC }, // 194.150.168.0 - 194.150.179.255 { 0xc296b400, 0xc296b5ff, REGISTRY_RIPENCC }, // 194.150.180.0 - 194.150.181.255 { 0xc296b600, 0xc296cbff, REGISTRY_RIPENCC }, // 194.150.182.0 - 194.150.203.255 { 0xc296cc00, 0xc296cfff, REGISTRY_RIPENCC }, // 194.150.204.0 - 194.150.207.255 { 0xc296d000, 0xc296d1ff, REGISTRY_RIPENCC }, // 194.150.208.0 - 194.150.209.255 { 0xc296d200, 0xc296d3ff, REGISTRY_RIPENCC }, // 194.150.210.0 - 194.150.211.255 { 0xc296d400, 0xc296d5ff, REGISTRY_RIPENCC }, // 194.150.212.0 - 194.150.213.255 { 0xc296d600, 0xc296d7ff, REGISTRY_RIPENCC }, // 194.150.214.0 - 194.150.215.255 { 0xc296d800, 0xc296e3ff, REGISTRY_RIPENCC }, // 194.150.216.0 - 194.150.227.255 { 0xc296e400, 0xc296e5ff, REGISTRY_RIPENCC }, // 194.150.228.0 - 194.150.229.255 { 0xc296e600, 0xc296e9ff, REGISTRY_RIPENCC }, // 194.150.230.0 - 194.150.233.255 { 0xc296ea00, 0xc296ebff, REGISTRY_RIPENCC }, // 194.150.234.0 - 194.150.235.255 { 0xc296ec00, 0xc296ffff, REGISTRY_RIPENCC }, // 194.150.236.0 - 194.150.255.255 { 0xc2970000, 0xc2981fff, REGISTRY_RIPENCC }, // 194.151.0.0 - 194.152.31.255 { 0xc2982000, 0xc2982bff, REGISTRY_RIPENCC }, // 194.152.32.0 - 194.152.43.255 { 0xc2982c00, 0xc2982dff, REGISTRY_RIPENCC }, // 194.152.44.0 - 194.152.45.255 { 0xc2982e00, 0xc29833ff, REGISTRY_RIPENCC }, // 194.152.46.0 - 194.152.51.255 { 0xc2983400, 0xc29834ff, REGISTRY_RIPENCC }, // 194.152.52.0 - 194.152.52.255 { 0xc2983500, 0xc29839ff, REGISTRY_RIPENCC }, // 194.152.53.0 - 194.152.57.255 { 0xc2983a00, 0xc2983bff, REGISTRY_RIPENCC }, // 194.152.58.0 - 194.152.59.255 { 0xc2983c00, 0xc2983fff, REGISTRY_RIPENCC }, // 194.152.60.0 - 194.152.63.255 { 0xc2984000, 0xc2991fff, REGISTRY_RIPENCC }, // 194.152.64.0 - 194.153.31.255 { 0xc2992000, 0xc29947ff, REGISTRY_RIPENCC }, // 194.153.32.0 - 194.153.71.255 { 0xc2994800, 0xc29949ff, REGISTRY_RIPENCC }, // 194.153.72.0 - 194.153.73.255 { 0xc2994a00, 0xc2994bff, REGISTRY_RIPENCC }, // 194.153.74.0 - 194.153.75.255 { 0xc2994c00, 0xc2994dff, REGISTRY_RIPENCC }, // 194.153.76.0 - 194.153.77.255 { 0xc2994e00, 0xc2994fff, REGISTRY_RIPENCC }, // 194.153.78.0 - 194.153.79.255 { 0xc2995000, 0xc29950ff, REGISTRY_RIPENCC }, // 194.153.80.0 - 194.153.80.255 { 0xc2995100, 0xc2995eff, REGISTRY_RIPENCC }, // 194.153.81.0 - 194.153.94.255 { 0xc2995f00, 0xc2995fff, REGISTRY_RIPENCC }, // 194.153.95.0 - 194.153.95.255 { 0xc2996000, 0xc29962ff, REGISTRY_RIPENCC }, // 194.153.96.0 - 194.153.98.255 { 0xc2996300, 0xc29963ff, REGISTRY_RIPENCC }, // 194.153.99.0 - 194.153.99.255 { 0xc2996400, 0xc29965ff, REGISTRY_RIPENCC }, // 194.153.100.0 - 194.153.101.255 { 0xc2996600, 0xc29967ff, REGISTRY_RIPENCC }, // 194.153.102.0 - 194.153.103.255 { 0xc2996800, 0xc29984ff, REGISTRY_RIPENCC }, // 194.153.104.0 - 194.153.132.255 { 0xc2998500, 0xc29987ff, REGISTRY_RIPENCC }, // 194.153.133.0 - 194.153.135.255 { 0xc2998800, 0xc29998ff, REGISTRY_RIPENCC }, // 194.153.136.0 - 194.153.152.255 { 0xc2999980, 0xc2999aff, REGISTRY_RIPENCC }, // 194.153.153.128 - 194.153.154.255 { 0xc2999b00, 0xc2999bff, REGISTRY_RIPENCC }, // 194.153.155.0 - 194.153.155.255 { 0xc2999c00, 0xc2999cff, REGISTRY_RIPENCC }, // 194.153.156.0 - 194.153.156.255 { 0xc2999d80, 0xc2999d9f, REGISTRY_RIPENCC }, // 194.153.157.128 - 194.153.157.159 { 0xc2999dc0, 0xc2999dff, REGISTRY_RIPENCC }, // 194.153.157.192 - 194.153.157.255 { 0xc2999e80, 0xc2999f7f, REGISTRY_RIPENCC }, // 194.153.158.128 - 194.153.159.127 { 0xc299a000, 0xc299aaff, REGISTRY_RIPENCC }, // 194.153.160.0 - 194.153.170.255 { 0xc299ab00, 0xc299b8ff, REGISTRY_RIPENCC }, // 194.153.171.0 - 194.153.184.255 { 0xc299b900, 0xc299b9ff, REGISTRY_RIPENCC }, // 194.153.185.0 - 194.153.185.255 { 0xc299ba00, 0xc299bfff, REGISTRY_RIPENCC }, // 194.153.186.0 - 194.153.191.255 { 0xc299c000, 0xc299d5ff, REGISTRY_RIPENCC }, // 194.153.192.0 - 194.153.213.255 { 0xc299d600, 0xc299d7ff, REGISTRY_RIPENCC }, // 194.153.214.0 - 194.153.215.255 { 0xc299d800, 0xc299d8ff, REGISTRY_RIPENCC }, // 194.153.216.0 - 194.153.216.255 { 0xc299d900, 0xc299dfff, REGISTRY_RIPENCC }, // 194.153.217.0 - 194.153.223.255 { 0xc299e000, 0xc299e7ff, REGISTRY_RIPENCC }, // 194.153.224.0 - 194.153.231.255 { 0xc299e800, 0xc299e8ff, REGISTRY_RIPENCC }, // 194.153.232.0 - 194.153.232.255 { 0xc299e900, 0xc299efff, REGISTRY_RIPENCC }, // 194.153.233.0 - 194.153.239.255 { 0xc299f000, 0xc299f0ff, REGISTRY_RIPENCC }, // 194.153.240.0 - 194.153.240.255 { 0xc299f100, 0xc299f7ff, REGISTRY_RIPENCC }, // 194.153.241.0 - 194.153.247.255 { 0xc299f800, 0xc299f8ff, REGISTRY_RIPENCC }, // 194.153.248.0 - 194.153.248.255 { 0xc299f900, 0xc29c03ff, REGISTRY_RIPENCC }, // 194.153.249.0 - 194.156.3.255 { 0xc29c0400, 0xc29c07ff, REGISTRY_RIPENCC }, // 194.156.4.0 - 194.156.7.255 { 0xc29c0800, 0xc29c17ff, REGISTRY_RIPENCC }, // 194.156.8.0 - 194.156.23.255 { 0xc29c1800, 0xc29c19ff, REGISTRY_RIPENCC }, // 194.156.24.0 - 194.156.25.255 { 0xc29c1a00, 0xc29c1fff, REGISTRY_RIPENCC }, // 194.156.26.0 - 194.156.31.255 { 0xc29c2000, 0xc29c3fff, REGISTRY_RIPENCC }, // 194.156.32.0 - 194.156.63.255 { 0xc29c4000, 0xc29c7fff, REGISTRY_RIPENCC }, // 194.156.64.0 - 194.156.127.255 { 0xc29c8000, 0xc29c83ff, REGISTRY_RIPENCC }, // 194.156.128.0 - 194.156.131.255 { 0xc29c8400, 0xc29c86ff, REGISTRY_RIPENCC }, // 194.156.132.0 - 194.156.134.255 { 0xc29c8700, 0xc29c87ff, REGISTRY_RIPENCC }, // 194.156.135.0 - 194.156.135.255 { 0xc29c8800, 0xc29c90ff, REGISTRY_RIPENCC }, // 194.156.136.0 - 194.156.144.255 { 0xc29c9100, 0xc29c94ff, REGISTRY_RIPENCC }, // 194.156.145.0 - 194.156.148.255 { 0xc29c9500, 0xc29c97ff, REGISTRY_RIPENCC }, // 194.156.149.0 - 194.156.151.255 { 0xc29c9800, 0xc29c99ff, REGISTRY_RIPENCC }, // 194.156.152.0 - 194.156.153.255 { 0xc29c9a00, 0xc29ca0ff, REGISTRY_RIPENCC }, // 194.156.154.0 - 194.156.160.255 { 0xc29ca100, 0xc29ca1ff, REGISTRY_RIPENCC }, // 194.156.161.0 - 194.156.161.255 { 0xc29ca200, 0xc29ca4ff, REGISTRY_RIPENCC }, // 194.156.162.0 - 194.156.164.255 { 0xc29ca500, 0xc29ca5ff, REGISTRY_RIPENCC }, // 194.156.165.0 - 194.156.165.255 { 0xc29ca600, 0xc29ca7ff, REGISTRY_RIPENCC }, // 194.156.166.0 - 194.156.167.255 { 0xc29ca800, 0xc29cacff, REGISTRY_RIPENCC }, // 194.156.168.0 - 194.156.172.255 { 0xc29cad00, 0xc29cadff, REGISTRY_RIPENCC }, // 194.156.173.0 - 194.156.173.255 { 0xc29cae00, 0xc29caeff, REGISTRY_RIPENCC }, // 194.156.174.0 - 194.156.174.255 { 0xc29caf00, 0xc29cafff, REGISTRY_ARIN }, // 194.156.175.0 - 194.156.175.255 { 0xc29cb000, 0xc29cb9ff, REGISTRY_RIPENCC }, // 194.156.176.0 - 194.156.185.255 { 0xc29cba00, 0xc29cbbff, REGISTRY_RIPENCC }, // 194.156.186.0 - 194.156.187.255 { 0xc29cbc00, 0xc29cbcff, REGISTRY_RIPENCC }, // 194.156.188.0 - 194.156.188.255 { 0xc29cbd00, 0xc29cbdff, REGISTRY_RIPENCC }, // 194.156.189.0 - 194.156.189.255 { 0xc29cbe00, 0xc29cc3ff, REGISTRY_RIPENCC }, // 194.156.190.0 - 194.156.195.255 { 0xc29cc400, 0xc29cc5ff, REGISTRY_RIPENCC }, // 194.156.196.0 - 194.156.197.255 { 0xc29cc600, 0xc29cc9ff, REGISTRY_RIPENCC }, // 194.156.198.0 - 194.156.201.255 { 0xc29cca00, 0xc29ccbff, REGISTRY_RIPENCC }, // 194.156.202.0 - 194.156.203.255 { 0xc29ccc00, 0xc29ccdff, REGISTRY_RIPENCC }, // 194.156.204.0 - 194.156.205.255 { 0xc29cce00, 0xc29cceff, REGISTRY_RIPENCC }, // 194.156.206.0 - 194.156.206.255 { 0xc29ccf00, 0xc29ccfff, REGISTRY_ARIN }, // 194.156.207.0 - 194.156.207.255 { 0xc29cd000, 0xc29cd3ff, REGISTRY_RIPENCC }, // 194.156.208.0 - 194.156.211.255 { 0xc29cd400, 0xc29cd7ff, REGISTRY_RIPENCC }, // 194.156.212.0 - 194.156.215.255 { 0xc29cd800, 0xc29cdfff, REGISTRY_RIPENCC }, // 194.156.216.0 - 194.156.223.255 { 0xc29ce000, 0xc29ce7ff, REGISTRY_RIPENCC }, // 194.156.224.0 - 194.156.231.255 { 0xc29ce800, 0xc29ceaff, REGISTRY_RIPENCC }, // 194.156.232.0 - 194.156.234.255 { 0xc29ceb00, 0xc29cefff, REGISTRY_RIPENCC }, // 194.156.235.0 - 194.156.239.255 { 0xc29cf000, 0xc29cf7ff, REGISTRY_RIPENCC }, // 194.156.240.0 - 194.156.247.255 { 0xc29cf800, 0xc2a4ffff, REGISTRY_RIPENCC }, // 194.156.248.0 - 194.164.255.255 { 0xc2a50000, 0xc2a503ff, REGISTRY_RIPENCC }, // 194.165.0.0 - 194.165.3.255 { 0xc2a50400, 0xc2a505ff, REGISTRY_RIPENCC }, // 194.165.4.0 - 194.165.5.255 { 0xc2a50600, 0xc2a509ff, REGISTRY_RIPENCC }, // 194.165.6.0 - 194.165.9.255 { 0xc2a50a00, 0xc2a50bff, REGISTRY_RIPENCC }, // 194.165.10.0 - 194.165.11.255 { 0xc2a50c00, 0xc2a519ff, REGISTRY_RIPENCC }, // 194.165.12.0 - 194.165.25.255 { 0xc2a51a00, 0xc2a51bff, REGISTRY_RIPENCC }, // 194.165.26.0 - 194.165.27.255 { 0xc2a51c00, 0xc2a522ff, REGISTRY_RIPENCC }, // 194.165.28.0 - 194.165.34.255 { 0xc2a52300, 0xc2a523ff, REGISTRY_RIPENCC }, // 194.165.35.0 - 194.165.35.255 { 0xc2a52400, 0xc2a525ff, REGISTRY_RIPENCC }, // 194.165.36.0 - 194.165.37.255 { 0xc2a52600, 0xc2a526ff, REGISTRY_RIPENCC }, // 194.165.38.0 - 194.165.38.255 { 0xc2a52700, 0xc2a537ff, REGISTRY_RIPENCC }, // 194.165.39.0 - 194.165.55.255 { 0xc2a53800, 0xc2a53bff, REGISTRY_RIPENCC }, // 194.165.56.0 - 194.165.59.255 { 0xc2a53c00, 0xc2a53eff, REGISTRY_RIPENCC }, // 194.165.60.0 - 194.165.62.255 { 0xc2a53f00, 0xc2a8ffff, REGISTRY_RIPENCC }, // 194.165.63.0 - 194.168.255.255 { 0xc2a90000, 0xc2a92fff, REGISTRY_RIPENCC }, // 194.169.0.0 - 194.169.47.255 { 0xc2a93000, 0xc2a933ff, REGISTRY_RIPENCC }, // 194.169.48.0 - 194.169.51.255 { 0xc2a93400, 0xc2a934ff, REGISTRY_RIPENCC }, // 194.169.52.0 - 194.169.52.255 { 0xc2a93500, 0xc2a93fff, REGISTRY_RIPENCC }, // 194.169.53.0 - 194.169.63.255 { 0xc2a94000, 0xc2a94fff, REGISTRY_RIPENCC }, // 194.169.64.0 - 194.169.79.255 { 0xc2a95000, 0xc2a95fff, REGISTRY_RIPENCC }, // 194.169.80.0 - 194.169.95.255 { 0xc2a96000, 0xc2a977ff, REGISTRY_RIPENCC }, // 194.169.96.0 - 194.169.119.255 { 0xc2a97800, 0xc2a97bff, REGISTRY_RIPENCC }, // 194.169.120.0 - 194.169.123.255 { 0xc2a97c00, 0xc2a99eff, REGISTRY_RIPENCC }, // 194.169.124.0 - 194.169.158.255 { 0xc2a99f00, 0xc2a9b6ff, REGISTRY_RIPENCC }, // 194.169.159.0 - 194.169.182.255 { 0xc2a9b700, 0xc2a9b7ff, REGISTRY_RIPENCC }, // 194.169.183.0 - 194.169.183.255 { 0xc2a9b800, 0xc2a9beff, REGISTRY_RIPENCC }, // 194.169.184.0 - 194.169.190.255 { 0xc2a9bf00, 0xc2a9c0ff, REGISTRY_RIPENCC }, // 194.169.191.0 - 194.169.192.255 { 0xc2a9c100, 0xc2a9c1ff, REGISTRY_RIPENCC }, // 194.169.193.0 - 194.169.193.255 { 0xc2a9c200, 0xc2a9c3ff, REGISTRY_RIPENCC }, // 194.169.194.0 - 194.169.195.255 { 0xc2a9c400, 0xc2a9c4ff, REGISTRY_RIPENCC }, // 194.169.196.0 - 194.169.196.255 { 0xc2a9c500, 0xc2a9c9ff, REGISTRY_RIPENCC }, // 194.169.197.0 - 194.169.201.255 { 0xc2a9cb00, 0xc2a9d4ff, REGISTRY_RIPENCC }, // 194.169.203.0 - 194.169.212.255 { 0xc2a9d500, 0xc2a9d5ff, REGISTRY_RIPENCC }, // 194.169.213.0 - 194.169.213.255 { 0xc2a9d600, 0xc2a9d8ff, REGISTRY_RIPENCC }, // 194.169.214.0 - 194.169.216.255 { 0xc2a9d900, 0xc2a9d9ff, REGISTRY_RIPENCC }, // 194.169.217.0 - 194.169.217.255 { 0xc2a9da00, 0xc2a9deff, REGISTRY_RIPENCC }, // 194.169.218.0 - 194.169.222.255 { 0xc2a9df00, 0xc2a9dfff, REGISTRY_RIPENCC }, // 194.169.223.0 - 194.169.223.255 { 0xc2a9e000, 0xc2a9e5ff, REGISTRY_RIPENCC }, // 194.169.224.0 - 194.169.229.255 { 0xc2a9e600, 0xc2a9e6ff, REGISTRY_RIPENCC }, // 194.169.230.0 - 194.169.230.255 { 0xc2a9e700, 0xc2a9ecff, REGISTRY_RIPENCC }, // 194.169.231.0 - 194.169.236.255 { 0xc2a9ed00, 0xc2a9edff, REGISTRY_RIPENCC }, // 194.169.237.0 - 194.169.237.255 { 0xc2a9ee00, 0xc2a9f1ff, REGISTRY_RIPENCC }, // 194.169.238.0 - 194.169.241.255 { 0xc2a9f200, 0xc2a9f2ff, REGISTRY_RIPENCC }, // 194.169.242.0 - 194.169.242.255 { 0xc2a9f300, 0xc2a9f3ff, REGISTRY_RIPENCC }, // 194.169.243.0 - 194.169.243.255 { 0xc2a9f400, 0xc2a9f5ff, REGISTRY_RIPENCC }, // 194.169.244.0 - 194.169.245.255 { 0xc2a9f600, 0xc2a9fcff, REGISTRY_RIPENCC }, // 194.169.246.0 - 194.169.252.255 { 0xc2a9fd00, 0xc2a9fdff, REGISTRY_RIPENCC }, // 194.169.253.0 - 194.169.253.255 { 0xc2a9fe00, 0xc2a9ffff, REGISTRY_RIPENCC }, // 194.169.254.0 - 194.169.255.255 { 0xc2aa0000, 0xc2ac39ff, REGISTRY_RIPENCC }, // 194.170.0.0 - 194.172.57.255 { 0xc2ac3a00, 0xc2ac3aff, REGISTRY_RIPENCC }, // 194.172.58.0 - 194.172.58.255 { 0xc2ac3b00, 0xc2ad2eff, REGISTRY_RIPENCC }, // 194.172.59.0 - 194.173.46.255 { 0xc2ad2f00, 0xc2ad2fff, REGISTRY_RIPENCC }, // 194.173.47.0 - 194.173.47.255 { 0xc2ad3000, 0xc2ad45ff, REGISTRY_RIPENCC }, // 194.173.48.0 - 194.173.69.255 { 0xc2ad4600, 0xc2ad46ff, REGISTRY_RIPENCC }, // 194.173.70.0 - 194.173.70.255 { 0xc2ad4700, 0xc2ada8ff, REGISTRY_RIPENCC }, // 194.173.71.0 - 194.173.168.255 { 0xc2adaa00, 0xc2ae0aff, REGISTRY_RIPENCC }, // 194.173.170.0 - 194.174.10.255 { 0xc2ae0b00, 0xc2ae0bff, REGISTRY_RIPENCC }, // 194.174.11.0 - 194.174.11.255 { 0xc2ae0c00, 0xc2ae47ff, REGISTRY_RIPENCC }, // 194.174.12.0 - 194.174.71.255 { 0xc2ae4800, 0xc2ae4fff, REGISTRY_RIPENCC }, // 194.174.72.0 - 194.174.79.255 { 0xc2ae5000, 0xc2b05fff, REGISTRY_RIPENCC }, // 194.174.80.0 - 194.176.95.255 { 0xc2b06000, 0xc2b061ff, REGISTRY_RIPENCC }, // 194.176.96.0 - 194.176.97.255 { 0xc2b06200, 0xc2b063ff, REGISTRY_RIPENCC }, // 194.176.98.0 - 194.176.99.255 { 0xc2b06400, 0xc2b069ff, REGISTRY_RIPENCC }, // 194.176.100.0 - 194.176.105.255 { 0xc2b06a00, 0xc2b06bff, REGISTRY_RIPENCC }, // 194.176.106.0 - 194.176.107.255 { 0xc2b06c00, 0xc2b074ff, REGISTRY_RIPENCC }, // 194.176.108.0 - 194.176.116.255 { 0xc2b07500, 0xc2b075ff, REGISTRY_RIPENCC }, // 194.176.117.0 - 194.176.117.255 { 0xc2b07600, 0xc2b07aff, REGISTRY_RIPENCC }, // 194.176.118.0 - 194.176.122.255 { 0xc2b07b00, 0xc2b07cff, REGISTRY_RIPENCC }, // 194.176.123.0 - 194.176.124.255 { 0xc2b07d00, 0xc2b07dff, REGISTRY_RIPENCC }, // 194.176.125.0 - 194.176.125.255 { 0xc2b07e00, 0xc2b0a1ff, REGISTRY_RIPENCC }, // 194.176.126.0 - 194.176.161.255 { 0xc2b0a200, 0xc2b0a2ff, REGISTRY_RIPENCC }, // 194.176.162.0 - 194.176.162.255 { 0xc2b0a300, 0xc2b0a3ff, REGISTRY_RIPENCC }, // 194.176.163.0 - 194.176.163.255 { 0xc2b0a400, 0xc2b0adff, REGISTRY_RIPENCC }, // 194.176.164.0 - 194.176.173.255 { 0xc2b0ae00, 0xc2b0afff, REGISTRY_RIPENCC }, // 194.176.174.0 - 194.176.175.255 { 0xc2b0b000, 0xc2b0b0ff, REGISTRY_RIPENCC }, // 194.176.176.0 - 194.176.176.255 { 0xc2b0b100, 0xc2b0b9ff, REGISTRY_RIPENCC }, // 194.176.177.0 - 194.176.185.255 { 0xc2b0ba00, 0xc2b0baff, REGISTRY_RIPENCC }, // 194.176.186.0 - 194.176.186.255 { 0xc2b0bb00, 0xc2b0bdff, REGISTRY_RIPENCC }, // 194.176.187.0 - 194.176.189.255 { 0xc2b0be00, 0xc2b0bfff, REGISTRY_RIPENCC }, // 194.176.190.0 - 194.176.191.255 { 0xc2b0c000, 0xc2b0ffff, REGISTRY_RIPENCC }, // 194.176.192.0 - 194.176.255.255 { 0xc2b10000, 0xc2b113ff, REGISTRY_RIPENCC }, // 194.177.0.0 - 194.177.19.255 { 0xc2b11400, 0xc2b117ff, REGISTRY_RIPENCC }, // 194.177.20.0 - 194.177.23.255 { 0xc2b11800, 0xc2b11fff, REGISTRY_RIPENCC }, // 194.177.24.0 - 194.177.31.255 { 0xc2b12000, 0xc2b3ffff, REGISTRY_RIPENCC }, // 194.177.32.0 - 194.179.255.255 { 0xc2b40000, 0xc2b405ff, REGISTRY_RIPENCC }, // 194.180.0.0 - 194.180.5.255 { 0xc2b40600, 0xc2b40cff, REGISTRY_RIPENCC }, // 194.180.6.0 - 194.180.12.255 { 0xc2b40d00, 0xc2b40fff, REGISTRY_RIPENCC }, // 194.180.13.0 - 194.180.15.255 { 0xc2b41000, 0xc2b410ff, REGISTRY_RIPENCC }, // 194.180.16.0 - 194.180.16.255 { 0xc2b41100, 0xc2b412ff, REGISTRY_RIPENCC }, // 194.180.17.0 - 194.180.18.255 { 0xc2b41300, 0xc2b414ff, REGISTRY_RIPENCC }, // 194.180.19.0 - 194.180.20.255 { 0xc2b41500, 0xc2b418ff, REGISTRY_RIPENCC }, // 194.180.21.0 - 194.180.24.255 { 0xc2b41900, 0xc2b41bff, REGISTRY_RIPENCC }, // 194.180.25.0 - 194.180.27.255 { 0xc2b41c00, 0xc2b41fff, REGISTRY_RIPENCC }, // 194.180.28.0 - 194.180.31.255 { 0xc2b42000, 0xc2b434ff, REGISTRY_RIPENCC }, // 194.180.32.0 - 194.180.52.255 { 0xc2b43500, 0xc2b436ff, REGISTRY_RIPENCC }, // 194.180.53.0 - 194.180.54.255 { 0xc2b43700, 0xc2b437ff, REGISTRY_RIPENCC }, // 194.180.55.0 - 194.180.55.255 { 0xc2b43800, 0xc2b43bff, REGISTRY_RIPENCC }, // 194.180.56.0 - 194.180.59.255 { 0xc2b43c00, 0xc2b43fff, REGISTRY_RIPENCC }, // 194.180.60.0 - 194.180.63.255 { 0xc2b44000, 0xc2b44fff, REGISTRY_RIPENCC }, // 194.180.64.0 - 194.180.79.255 { 0xc2b45000, 0xc2b45fff, REGISTRY_RIPENCC }, // 194.180.80.0 - 194.180.95.255 { 0xc2b46000, 0xc2b467ff, REGISTRY_RIPENCC }, // 194.180.96.0 - 194.180.103.255 { 0xc2b46800, 0xc2b46eff, REGISTRY_RIPENCC }, // 194.180.104.0 - 194.180.110.255 { 0xc2b46f00, 0xc2b471ff, REGISTRY_APNIC }, // 194.180.111.0 - 194.180.113.255 { 0xc2b47200, 0xc2b472ff, REGISTRY_RIPENCC }, // 194.180.114.0 - 194.180.114.255 { 0xc2b47300, 0xc2b477ff, REGISTRY_RIPENCC }, // 194.180.115.0 - 194.180.119.255 { 0xc2b47800, 0xc2b495ff, REGISTRY_RIPENCC }, // 194.180.120.0 - 194.180.149.255 { 0xc2b49600, 0xc2b496ff, REGISTRY_RIPENCC }, // 194.180.150.0 - 194.180.150.255 { 0xc2b49700, 0xc2b499ff, REGISTRY_RIPENCC }, // 194.180.151.0 - 194.180.153.255 { 0xc2b49a00, 0xc2b49aff, REGISTRY_RIPENCC }, // 194.180.154.0 - 194.180.154.255 { 0xc2b49b00, 0xc2b49cff, REGISTRY_RIPENCC }, // 194.180.155.0 - 194.180.156.255 { 0xc2b49d00, 0xc2b49eff, REGISTRY_RIPENCC }, // 194.180.157.0 - 194.180.158.255 { 0xc2b4a000, 0xc2b4a9ff, REGISTRY_RIPENCC }, // 194.180.160.0 - 194.180.169.255 { 0xc2b4aa00, 0xc2b4abff, REGISTRY_RIPENCC }, // 194.180.170.0 - 194.180.171.255 { 0xc2b4ac00, 0xc2b4adff, REGISTRY_RIPENCC }, // 194.180.172.0 - 194.180.173.255 { 0xc2b4ae00, 0xc2b4aeff, REGISTRY_RIPENCC }, // 194.180.174.0 - 194.180.174.255 { 0xc2b4af00, 0xc2b4afff, REGISTRY_RIPENCC }, // 194.180.175.0 - 194.180.175.255 { 0xc2b4b000, 0xc2b4bdff, REGISTRY_RIPENCC }, // 194.180.176.0 - 194.180.189.255 { 0xc2b4be00, 0xc2b4beff, REGISTRY_RIPENCC }, // 194.180.190.0 - 194.180.190.255 { 0xc2b4bf00, 0xc2b4bfff, REGISTRY_RIPENCC }, // 194.180.191.0 - 194.180.191.255 { 0xc2b4c000, 0xc2b4c4ff, REGISTRY_RIPENCC }, // 194.180.192.0 - 194.180.196.255 { 0xc2b4c500, 0xc2b4c5ff, REGISTRY_RIPENCC }, // 194.180.197.0 - 194.180.197.255 { 0xc2b4c600, 0xc2b4ccff, REGISTRY_RIPENCC }, // 194.180.198.0 - 194.180.204.255 { 0xc2b4cd00, 0xc2b4d1ff, REGISTRY_RIPENCC }, // 194.180.205.0 - 194.180.209.255 { 0xc2b4d200, 0xc2b4d7ff, REGISTRY_RIPENCC }, // 194.180.210.0 - 194.180.215.255 { 0xc2b4d800, 0xc2b4d8ff, REGISTRY_RIPENCC }, // 194.180.216.0 - 194.180.216.255 { 0xc2b4d900, 0xc2b4daff, REGISTRY_RIPENCC }, // 194.180.217.0 - 194.180.218.255 { 0xc2b4db00, 0xc2b4e1ff, REGISTRY_RIPENCC }, // 194.180.219.0 - 194.180.225.255 { 0xc2b4e298, 0xc2b4e29f, REGISTRY_RIPENCC }, // 194.180.226.152 - 194.180.226.159 { 0xc2b4e300, 0xc2b4e9ff, REGISTRY_RIPENCC }, // 194.180.227.0 - 194.180.233.255 { 0xc2b4ea00, 0xc2b4ebff, REGISTRY_RIPENCC }, // 194.180.234.0 - 194.180.235.255 { 0xc2b4ec00, 0xc2b4eeff, REGISTRY_RIPENCC }, // 194.180.236.0 - 194.180.238.255 { 0xc2b4ef00, 0xc2b4faff, REGISTRY_RIPENCC }, // 194.180.239.0 - 194.180.250.255 { 0xc2b4fb00, 0xc2b4fbff, REGISTRY_RIPENCC }, // 194.180.251.0 - 194.180.251.255 { 0xc2b4fc00, 0xc2b4ffff, REGISTRY_RIPENCC }, // 194.180.252.0 - 194.180.255.255 { 0xc2b50000, 0xc2baffff, REGISTRY_RIPENCC }, // 194.181.0.0 - 194.186.255.255 { 0xc2bb0000, 0xc2bb17ff, REGISTRY_RIPENCC }, // 194.187.0.0 - 194.187.23.255 { 0xc2bb1800, 0xc2bb1bff, REGISTRY_RIPENCC }, // 194.187.24.0 - 194.187.27.255 { 0xc2bb1c00, 0xc2bb23ff, REGISTRY_RIPENCC }, // 194.187.28.0 - 194.187.35.255 { 0xc2bb2400, 0xc2bb27ff, REGISTRY_RIPENCC }, // 194.187.36.0 - 194.187.39.255 { 0xc2bb2800, 0xc2bb57ff, REGISTRY_RIPENCC }, // 194.187.40.0 - 194.187.87.255 { 0xc2bb5800, 0xc2bb5bff, REGISTRY_RIPENCC }, // 194.187.88.0 - 194.187.91.255 { 0xc2bb5c00, 0xc2bb73ff, REGISTRY_RIPENCC }, // 194.187.92.0 - 194.187.115.255 { 0xc2bb7400, 0xc2bb7bff, REGISTRY_RIPENCC }, // 194.187.116.0 - 194.187.123.255 { 0xc2bb7c00, 0xc2bb7fff, REGISTRY_RIPENCC }, // 194.187.124.0 - 194.187.127.255 { 0xc2bb8000, 0xc2bb83ff, REGISTRY_RIPENCC }, // 194.187.128.0 - 194.187.131.255 { 0xc2bb8400, 0xc2bb87ff, REGISTRY_RIPENCC }, // 194.187.132.0 - 194.187.135.255 { 0xc2bb8800, 0xc2bb8bff, REGISTRY_RIPENCC }, // 194.187.136.0 - 194.187.139.255 { 0xc2bb8c00, 0xc2bbb3ff, REGISTRY_RIPENCC }, // 194.187.140.0 - 194.187.179.255 { 0xc2bbb400, 0xc2bbb7ff, REGISTRY_RIPENCC }, // 194.187.180.0 - 194.187.183.255 { 0xc2bbb800, 0xc2bbbbff, REGISTRY_RIPENCC }, // 194.187.184.0 - 194.187.187.255 { 0xc2bbbc00, 0xc2bbbfff, REGISTRY_RIPENCC }, // 194.187.188.0 - 194.187.191.255 { 0xc2bbc000, 0xc2bbf7ff, REGISTRY_RIPENCC }, // 194.187.192.0 - 194.187.247.255 { 0xc2bbf800, 0xc2bbfbff, REGISTRY_RIPENCC }, // 194.187.248.0 - 194.187.251.255 { 0xc2bbfc00, 0xc2bbffff, REGISTRY_RIPENCC }, // 194.187.252.0 - 194.187.255.255 { 0xc2bc0000, 0xc2c0ffff, REGISTRY_RIPENCC }, // 194.188.0.0 - 194.192.255.255 { 0xc2c10000, 0xc2c1ffff, REGISTRY_APNIC }, // 194.193.0.0 - 194.193.255.255 { 0xc2c20000, 0xc2ccbfff, REGISTRY_RIPENCC }, // 194.194.0.0 - 194.204.191.255 { 0xc2ccc000, 0xc2ccffff, REGISTRY_AFRINIC }, // 194.204.192.0 - 194.204.255.255 { 0xc2cd0000, 0xc2d4ffff, REGISTRY_RIPENCC }, // 194.205.0.0 - 194.212.255.255 { 0xc2d50000, 0xc2d502ff, REGISTRY_RIPENCC }, // 194.213.0.0 - 194.213.2.255 { 0xc2d50300, 0xc2d503ff, REGISTRY_RIPENCC }, // 194.213.3.0 - 194.213.3.255 { 0xc2d50400, 0xc2d505ff, REGISTRY_RIPENCC }, // 194.213.4.0 - 194.213.5.255 { 0xc2d50600, 0xc2d506ff, REGISTRY_RIPENCC }, // 194.213.6.0 - 194.213.6.255 { 0xc2d50700, 0xc2d507ff, REGISTRY_RIPENCC }, // 194.213.7.0 - 194.213.7.255 { 0xc2d50800, 0xc2d508ff, REGISTRY_RIPENCC }, // 194.213.8.0 - 194.213.8.255 { 0xc2d50900, 0xc2d509ff, REGISTRY_RIPENCC }, // 194.213.9.0 - 194.213.9.255 { 0xc2d50a00, 0xc2d50aff, REGISTRY_RIPENCC }, // 194.213.10.0 - 194.213.10.255 { 0xc2d50b00, 0xc2d50cff, REGISTRY_RIPENCC }, // 194.213.11.0 - 194.213.12.255 { 0xc2d50d00, 0xc2d512ff, REGISTRY_RIPENCC }, // 194.213.13.0 - 194.213.18.255 { 0xc2d51300, 0xc2d513ff, REGISTRY_RIPENCC }, // 194.213.19.0 - 194.213.19.255 { 0xc2d51400, 0xc2d514ff, REGISTRY_RIPENCC }, // 194.213.20.0 - 194.213.20.255 { 0xc2d51500, 0xc2d517ff, REGISTRY_RIPENCC }, // 194.213.21.0 - 194.213.23.255 { 0xc2d51800, 0xc2d518ff, REGISTRY_RIPENCC }, // 194.213.24.0 - 194.213.24.255 { 0xc2d51900, 0xc2d51fff, REGISTRY_RIPENCC }, // 194.213.25.0 - 194.213.31.255 { 0xc2d52000, 0xc2d55fff, REGISTRY_RIPENCC }, // 194.213.32.0 - 194.213.95.255 { 0xc2d56000, 0xc2d56bff, REGISTRY_RIPENCC }, // 194.213.96.0 - 194.213.107.255 { 0xc2d56c00, 0xc2d56dff, REGISTRY_RIPENCC }, // 194.213.108.0 - 194.213.109.255 { 0xc2d56e00, 0xc2d57dff, REGISTRY_RIPENCC }, // 194.213.110.0 - 194.213.125.255 { 0xc2d57e00, 0xc2deffff, REGISTRY_RIPENCC }, // 194.213.126.0 - 194.222.255.255 { 0xc2df0000, 0xc2df7fff, REGISTRY_APNIC }, // 194.223.0.0 - 194.223.127.255 { 0xc2df8000, 0xc2df8bff, REGISTRY_RIPENCC }, // 194.223.128.0 - 194.223.139.255 { 0xc2df8c00, 0xc2dfffff, REGISTRY_APNIC }, // 194.223.140.0 - 194.223.255.255 { 0xc2e00000, 0xc2e93fff, REGISTRY_RIPENCC }, // 194.224.0.0 - 194.233.63.255 { 0xc2e94000, 0xc2e95fff, REGISTRY_APNIC }, // 194.233.64.0 - 194.233.95.255 { 0xc2e96000, 0xc2f1ffff, REGISTRY_RIPENCC }, // 194.233.96.0 - 194.241.255.255 { 0xc2f20000, 0xc2f201ff, REGISTRY_RIPENCC }, // 194.242.0.0 - 194.242.1.255 { 0xc2f20200, 0xc2f203ff, REGISTRY_RIPENCC }, // 194.242.2.0 - 194.242.3.255 { 0xc2f20400, 0xc2f20dff, REGISTRY_RIPENCC }, // 194.242.4.0 - 194.242.13.255 { 0xc2f20e00, 0xc2f20fff, REGISTRY_RIPENCC }, // 194.242.14.0 - 194.242.15.255 { 0xc2f21000, 0xc2f215ff, REGISTRY_RIPENCC }, // 194.242.16.0 - 194.242.21.255 { 0xc2f21600, 0xc2f217ff, REGISTRY_RIPENCC }, // 194.242.22.0 - 194.242.23.255 { 0xc2f21800, 0xc2f21bff, REGISTRY_RIPENCC }, // 194.242.24.0 - 194.242.27.255 { 0xc2f21c00, 0xc2f21dff, REGISTRY_RIPENCC }, // 194.242.28.0 - 194.242.29.255 { 0xc2f21e00, 0xc2f220ff, REGISTRY_RIPENCC }, // 194.242.30.0 - 194.242.32.255 { 0xc2f22100, 0xc2f221ff, REGISTRY_RIPENCC }, // 194.242.33.0 - 194.242.33.255 { 0xc2f22200, 0xc2f225ff, REGISTRY_RIPENCC }, // 194.242.34.0 - 194.242.37.255 { 0xc2f22600, 0xc2f226ff, REGISTRY_RIPENCC }, // 194.242.38.0 - 194.242.38.255 { 0xc2f22700, 0xc2f227ff, REGISTRY_RIPENCC }, // 194.242.39.0 - 194.242.39.255 { 0xc2f22800, 0xc2f228ff, REGISTRY_RIPENCC }, // 194.242.40.0 - 194.242.40.255 { 0xc2f22900, 0xc2f22cff, REGISTRY_RIPENCC }, // 194.242.41.0 - 194.242.44.255 { 0xc2f22d00, 0xc2f22eff, REGISTRY_RIPENCC }, // 194.242.45.0 - 194.242.46.255 { 0xc2f22f00, 0xc2f22fff, REGISTRY_RIPENCC }, // 194.242.47.0 - 194.242.47.255 { 0xc2f23000, 0xc2f231ff, REGISTRY_RIPENCC }, // 194.242.48.0 - 194.242.49.255 { 0xc2f23200, 0xc2f237ff, REGISTRY_RIPENCC }, // 194.242.50.0 - 194.242.55.255 { 0xc2f23800, 0xc2f239ff, REGISTRY_RIPENCC }, // 194.242.56.0 - 194.242.57.255 { 0xc2f23a00, 0xc2f23fff, REGISTRY_RIPENCC }, // 194.242.58.0 - 194.242.63.255 { 0xc2f24000, 0xc2f263ff, REGISTRY_RIPENCC }, // 194.242.64.0 - 194.242.99.255 { 0xc2f26400, 0xc2f27fff, REGISTRY_RIPENCC }, // 194.242.100.0 - 194.242.127.255 { 0xc2f28000, 0xc2f626ff, REGISTRY_RIPENCC }, // 194.242.128.0 - 194.246.38.255 { 0xc2f62780, 0xc2f627bf, REGISTRY_RIPENCC }, // 194.246.39.128 - 194.246.39.191 { 0xc2f627e0, 0xc2f627ff, REGISTRY_RIPENCC }, // 194.246.39.224 - 194.246.39.255 { 0xc2f62800, 0xc2f62bff, REGISTRY_RIPENCC }, // 194.246.40.0 - 194.246.43.255 { 0xc2f62c00, 0xc2f64fff, REGISTRY_RIPENCC }, // 194.246.44.0 - 194.246.79.255 { 0xc2f65000, 0xc2f654ff, REGISTRY_RIPENCC }, // 194.246.80.0 - 194.246.84.255 { 0xc2f65500, 0xc2f657ff, REGISTRY_RIPENCC }, // 194.246.85.0 - 194.246.87.255 { 0xc2f65800, 0xc2f65fff, REGISTRY_RIPENCC }, // 194.246.88.0 - 194.246.95.255 { 0xc2f66000, 0xc2f663ff, REGISTRY_RIPENCC }, // 194.246.96.0 - 194.246.99.255 { 0xc2f66400, 0xc2f664ff, REGISTRY_RIPENCC }, // 194.246.100.0 - 194.246.100.255 { 0xc2f66500, 0xc2f666ff, REGISTRY_RIPENCC }, // 194.246.101.0 - 194.246.102.255 { 0xc2f66700, 0xc2f667ff, REGISTRY_RIPENCC }, // 194.246.103.0 - 194.246.103.255 { 0xc2f66800, 0xc2f713ff, REGISTRY_RIPENCC }, // 194.246.104.0 - 194.247.19.255 { 0xc2f71400, 0xc2f715ff, REGISTRY_RIPENCC }, // 194.247.20.0 - 194.247.21.255 { 0xc2f71600, 0xc2f71fff, REGISTRY_RIPENCC }, // 194.247.22.0 - 194.247.31.255 { 0xc2f72000, 0xc2f720ff, REGISTRY_RIPENCC }, // 194.247.32.0 - 194.247.32.255 { 0xc2f72100, 0xc2f723ff, REGISTRY_RIPENCC }, // 194.247.33.0 - 194.247.35.255 { 0xc2f72400, 0xc2f724ff, REGISTRY_RIPENCC }, // 194.247.36.0 - 194.247.36.255 { 0xc2f72500, 0xc2f72aff, REGISTRY_RIPENCC }, // 194.247.37.0 - 194.247.42.255 { 0xc2f72b00, 0xc2f72dff, REGISTRY_RIPENCC }, // 194.247.43.0 - 194.247.45.255 { 0xc2f72e00, 0xc2f739ff, REGISTRY_RIPENCC }, // 194.247.46.0 - 194.247.57.255 { 0xc2f73a00, 0xc2f73aff, REGISTRY_RIPENCC }, // 194.247.58.0 - 194.247.58.255 { 0xc2f73b00, 0xc2f73fff, REGISTRY_RIPENCC }, // 194.247.59.0 - 194.247.63.255 { 0xc2f74000, 0xc2f79fff, REGISTRY_RIPENCC }, // 194.247.64.0 - 194.247.159.255 { 0xc2f7a000, 0xc2f7a9ff, REGISTRY_RIPENCC }, // 194.247.160.0 - 194.247.169.255 { 0xc2f7aa00, 0xc2f7abff, REGISTRY_RIPENCC }, // 194.247.170.0 - 194.247.171.255 { 0xc2f7ac00, 0xc2f7b5ff, REGISTRY_RIPENCC }, // 194.247.172.0 - 194.247.181.255 { 0xc2f7b600, 0xc2f7b7ff, REGISTRY_RIPENCC }, // 194.247.182.0 - 194.247.183.255 { 0xc2f7b800, 0xc2f7b9ff, REGISTRY_RIPENCC }, // 194.247.184.0 - 194.247.185.255 { 0xc2f7ba00, 0xc2f7bbff, REGISTRY_RIPENCC }, // 194.247.186.0 - 194.247.187.255 { 0xc2f7bc00, 0xc2f7bfff, REGISTRY_RIPENCC }, // 194.247.188.0 - 194.247.191.255 { 0xc2f7c000, 0xc302bfff, REGISTRY_RIPENCC }, // 194.247.192.0 - 195.2.191.255 { 0xc302c000, 0xc302cbff, REGISTRY_RIPENCC }, // 195.2.192.0 - 195.2.203.255 { 0xc302cc00, 0xc302cdff, REGISTRY_RIPENCC }, // 195.2.204.0 - 195.2.205.255 { 0xc302ce00, 0xc302d3ff, REGISTRY_RIPENCC }, // 195.2.206.0 - 195.2.211.255 { 0xc302d400, 0xc302d5ff, REGISTRY_RIPENCC }, // 195.2.212.0 - 195.2.213.255 { 0xc302d600, 0xc302d9ff, REGISTRY_RIPENCC }, // 195.2.214.0 - 195.2.217.255 { 0xc302da00, 0xc302dbff, REGISTRY_RIPENCC }, // 195.2.218.0 - 195.2.219.255 { 0xc302dc00, 0xc302e9ff, REGISTRY_RIPENCC }, // 195.2.220.0 - 195.2.233.255 { 0xc302ea00, 0xc302ebff, REGISTRY_RIPENCC }, // 195.2.234.0 - 195.2.235.255 { 0xc302ec00, 0xc302efff, REGISTRY_RIPENCC }, // 195.2.236.0 - 195.2.239.255 { 0xc302f000, 0xc302f3ff, REGISTRY_RIPENCC }, // 195.2.240.0 - 195.2.243.255 { 0xc302f400, 0xc302f7ff, REGISTRY_RIPENCC }, // 195.2.244.0 - 195.2.247.255 { 0xc302f800, 0xc302f9ff, REGISTRY_RIPENCC }, // 195.2.248.0 - 195.2.249.255 { 0xc302fa00, 0xc302fbff, REGISTRY_RIPENCC }, // 195.2.250.0 - 195.2.251.255 { 0xc302fc00, 0xc302fdff, REGISTRY_ARIN }, // 195.2.252.0 - 195.2.253.255 { 0xc302fe00, 0xc302ffff, REGISTRY_RIPENCC }, // 195.2.254.0 - 195.2.255.255 { 0xc3030000, 0xc3037fff, REGISTRY_RIPENCC }, // 195.3.0.0 - 195.3.127.255 { 0xc3038000, 0xc30387ff, REGISTRY_RIPENCC }, // 195.3.128.0 - 195.3.135.255 { 0xc3038800, 0xc3038bff, REGISTRY_RIPENCC }, // 195.3.136.0 - 195.3.139.255 { 0xc3038c00, 0xc3039fff, REGISTRY_RIPENCC }, // 195.3.140.0 - 195.3.159.255 { 0xc303a400, 0xc303abff, REGISTRY_RIPENCC }, // 195.3.164.0 - 195.3.171.255 { 0xc303ac00, 0xc303afff, REGISTRY_RIPENCC }, // 195.3.172.0 - 195.3.175.255 { 0xc303b000, 0xc303e7ff, REGISTRY_RIPENCC }, // 195.3.176.0 - 195.3.231.255 { 0xc303e800, 0xc303ebff, REGISTRY_RIPENCC }, // 195.3.232.0 - 195.3.235.255 { 0xc303ec00, 0xc303f7ff, REGISTRY_RIPENCC }, // 195.3.236.0 - 195.3.247.255 { 0xc303f800, 0xc303fbff, REGISTRY_RIPENCC }, // 195.3.248.0 - 195.3.251.255 { 0xc303fc00, 0xc303ffff, REGISTRY_RIPENCC }, // 195.3.252.0 - 195.3.255.255 { 0xc3040000, 0xc30561ff, REGISTRY_RIPENCC }, // 195.4.0.0 - 195.5.97.255 { 0xc3056200, 0xc30567ff, REGISTRY_RIPENCC }, // 195.5.98.0 - 195.5.103.255 { 0xc3056a00, 0xc30571ff, REGISTRY_RIPENCC }, // 195.5.106.0 - 195.5.113.255 { 0xc3057200, 0xc30575ff, REGISTRY_RIPENCC }, // 195.5.114.0 - 195.5.117.255 { 0xc3057600, 0xc30577ff, REGISTRY_RIPENCC }, // 195.5.118.0 - 195.5.119.255 { 0xc3057800, 0xc30579ff, REGISTRY_RIPENCC }, // 195.5.120.0 - 195.5.121.255 { 0xc3057a00, 0xc3057eff, REGISTRY_RIPENCC }, // 195.5.122.0 - 195.5.126.255 { 0xc3057f00, 0xc3059fff, REGISTRY_RIPENCC }, // 195.5.127.0 - 195.5.159.255 { 0xc305a000, 0xc305a0ff, REGISTRY_RIPENCC }, // 195.5.160.0 - 195.5.160.255 { 0xc305a100, 0xc305a1ff, REGISTRY_RIPENCC }, // 195.5.161.0 - 195.5.161.255 { 0xc305a200, 0xc305a5ff, REGISTRY_RIPENCC }, // 195.5.162.0 - 195.5.165.255 { 0xc305a600, 0xc305a6ff, REGISTRY_RIPENCC }, // 195.5.166.0 - 195.5.166.255 { 0xc305a700, 0xc305a7ff, REGISTRY_RIPENCC }, // 195.5.167.0 - 195.5.167.255 { 0xc305a800, 0xc305a8ff, REGISTRY_RIPENCC }, // 195.5.168.0 - 195.5.168.255 { 0xc305a900, 0xc305a9ff, REGISTRY_RIPENCC }, // 195.5.169.0 - 195.5.169.255 { 0xc305aa00, 0xc305aaff, REGISTRY_RIPENCC }, // 195.5.170.0 - 195.5.170.255 { 0xc305ab00, 0xc305afff, REGISTRY_RIPENCC }, // 195.5.171.0 - 195.5.175.255 { 0xc305b000, 0xc305b0ff, REGISTRY_RIPENCC }, // 195.5.176.0 - 195.5.176.255 { 0xc305b100, 0xc305bcff, REGISTRY_RIPENCC }, // 195.5.177.0 - 195.5.188.255 { 0xc305bd00, 0xc305beff, REGISTRY_RIPENCC }, // 195.5.189.0 - 195.5.190.255 { 0xc305bf00, 0xc305bfff, REGISTRY_RIPENCC }, // 195.5.191.0 - 195.5.191.255 { 0xc305c000, 0xc3070fff, REGISTRY_RIPENCC }, // 195.5.192.0 - 195.7.15.255 { 0xc3071000, 0xc3071fff, REGISTRY_RIPENCC }, // 195.7.16.0 - 195.7.31.255 { 0xc3072000, 0xc3081fff, REGISTRY_RIPENCC }, // 195.7.32.0 - 195.8.31.255 { 0xc3082000, 0xc3082dff, REGISTRY_RIPENCC }, // 195.8.32.0 - 195.8.45.255 { 0xc3082e00, 0xc30831ff, REGISTRY_RIPENCC }, // 195.8.46.0 - 195.8.49.255 { 0xc3083200, 0xc3083dff, REGISTRY_RIPENCC }, // 195.8.50.0 - 195.8.61.255 { 0xc3083e00, 0xc3085fff, REGISTRY_RIPENCC }, // 195.8.62.0 - 195.8.95.255 { 0xc3086000, 0xc30865ff, REGISTRY_RIPENCC }, // 195.8.96.0 - 195.8.101.255 { 0xc3086600, 0xc30866ff, REGISTRY_RIPENCC }, // 195.8.102.0 - 195.8.102.255 { 0xc3086700, 0xc3086aff, REGISTRY_RIPENCC }, // 195.8.103.0 - 195.8.106.255 { 0xc3086b00, 0xc3086bff, REGISTRY_RIPENCC }, // 195.8.107.0 - 195.8.107.255 { 0xc3086c00, 0xc3086dff, REGISTRY_RIPENCC }, // 195.8.108.0 - 195.8.109.255 { 0xc3086e00, 0xc3086eff, REGISTRY_RIPENCC }, // 195.8.110.0 - 195.8.110.255 { 0xc3086f00, 0xc3086fff, REGISTRY_RIPENCC }, // 195.8.111.0 - 195.8.111.255 { 0xc3087000, 0xc30870ff, REGISTRY_RIPENCC }, // 195.8.112.0 - 195.8.112.255 { 0xc3087100, 0xc30871ff, REGISTRY_RIPENCC }, // 195.8.113.0 - 195.8.113.255 { 0xc3087200, 0xc30872ff, REGISTRY_RIPENCC }, // 195.8.114.0 - 195.8.114.255 { 0xc3087300, 0xc30875ff, REGISTRY_RIPENCC }, // 195.8.115.0 - 195.8.117.255 { 0xc3087600, 0xc30877ff, REGISTRY_RIPENCC }, // 195.8.118.0 - 195.8.119.255 { 0xc3087800, 0xc3087cff, REGISTRY_RIPENCC }, // 195.8.120.0 - 195.8.124.255 { 0xc3087d00, 0xc3087dff, REGISTRY_RIPENCC }, // 195.8.125.0 - 195.8.125.255 { 0xc3087e00, 0xc3087fff, REGISTRY_RIPENCC }, // 195.8.126.0 - 195.8.127.255 { 0xc3088000, 0xc308bfff, REGISTRY_RIPENCC }, // 195.8.128.0 - 195.8.191.255 { 0xc308c000, 0xc308c3ff, REGISTRY_RIPENCC }, // 195.8.192.0 - 195.8.195.255 { 0xc308c400, 0xc308c5ff, REGISTRY_RIPENCC }, // 195.8.196.0 - 195.8.197.255 { 0xc308c600, 0xc308c7ff, REGISTRY_RIPENCC }, // 195.8.198.0 - 195.8.199.255 { 0xc308c800, 0xc308c9ff, REGISTRY_RIPENCC }, // 195.8.200.0 - 195.8.201.255 { 0xc308ca00, 0xc308dfff, REGISTRY_RIPENCC }, // 195.8.202.0 - 195.8.223.255 { 0xc308e000, 0xc30abfff, REGISTRY_RIPENCC }, // 195.8.224.0 - 195.10.191.255 { 0xc30ac000, 0xc30ac2ff, REGISTRY_RIPENCC }, // 195.10.192.0 - 195.10.194.255 { 0xc30ac300, 0xc30ac3ff, REGISTRY_RIPENCC }, // 195.10.195.0 - 195.10.195.255 { 0xc30ac400, 0xc30accff, REGISTRY_RIPENCC }, // 195.10.196.0 - 195.10.204.255 { 0xc30ace00, 0xc30ad0ff, REGISTRY_RIPENCC }, // 195.10.206.0 - 195.10.208.255 { 0xc30ad100, 0xc30ad1ff, REGISTRY_RIPENCC }, // 195.10.209.0 - 195.10.209.255 { 0xc30ad200, 0xc30ad6ff, REGISTRY_RIPENCC }, // 195.10.210.0 - 195.10.214.255 { 0xc30ad700, 0xc30ad7ff, REGISTRY_RIPENCC }, // 195.10.215.0 - 195.10.215.255 { 0xc30ad800, 0xc30ad9ff, REGISTRY_RIPENCC }, // 195.10.216.0 - 195.10.217.255 { 0xc30ada00, 0xc30adbff, REGISTRY_RIPENCC }, // 195.10.218.0 - 195.10.219.255 { 0xc30adc00, 0xc30addff, REGISTRY_RIPENCC }, // 195.10.220.0 - 195.10.221.255 { 0xc30ade00, 0xc30adeff, REGISTRY_RIPENCC }, // 195.10.222.0 - 195.10.222.255 { 0xc30adf00, 0xc30adfff, REGISTRY_RIPENCC }, // 195.10.223.0 - 195.10.223.255 { 0xc30ae000, 0xc30c1fff, REGISTRY_RIPENCC }, // 195.10.224.0 - 195.12.31.255 { 0xc30c2000, 0xc30c23ff, REGISTRY_RIPENCC }, // 195.12.32.0 - 195.12.35.255 { 0xc30c2400, 0xc30c27ff, REGISTRY_RIPENCC }, // 195.12.36.0 - 195.12.39.255 { 0xc30c2800, 0xc30c2fff, REGISTRY_RIPENCC }, // 195.12.40.0 - 195.12.47.255 { 0xc30c3000, 0xc30c33ff, REGISTRY_RIPENCC }, // 195.12.48.0 - 195.12.51.255 { 0xc30c3400, 0xc30c3fff, REGISTRY_RIPENCC }, // 195.12.52.0 - 195.12.63.255 { 0xc30c4000, 0xc30d1fff, REGISTRY_RIPENCC }, // 195.12.64.0 - 195.13.31.255 { 0xc30d2000, 0xc30d257f, REGISTRY_RIPENCC }, // 195.13.32.0 - 195.13.37.127 { 0xc30d2600, 0xc30d2bff, REGISTRY_RIPENCC }, // 195.13.38.0 - 195.13.43.255 { 0xc30d2c00, 0xc30d2dff, REGISTRY_RIPENCC }, // 195.13.44.0 - 195.13.45.255 { 0xc30d2e00, 0xc30d2eff, REGISTRY_RIPENCC }, // 195.13.46.0 - 195.13.46.255 { 0xc30d2f00, 0xc30d2fff, REGISTRY_RIPENCC }, // 195.13.47.0 - 195.13.47.255 { 0xc30d3000, 0xc30d32ff, REGISTRY_RIPENCC }, // 195.13.48.0 - 195.13.50.255 { 0xc30d3300, 0xc30d33ff, REGISTRY_RIPENCC }, // 195.13.51.0 - 195.13.51.255 { 0xc30d3400, 0xc30d35ff, REGISTRY_RIPENCC }, // 195.13.52.0 - 195.13.53.255 { 0xc30d3600, 0xc30d37ff, REGISTRY_RIPENCC }, // 195.13.54.0 - 195.13.55.255 { 0xc30d3800, 0xc30d3fff, REGISTRY_RIPENCC }, // 195.13.56.0 - 195.13.63.255 { 0xc30d4000, 0xc30dffff, REGISTRY_RIPENCC }, // 195.13.64.0 - 195.13.255.255 { 0xc30e0000, 0xc30e01ff, REGISTRY_RIPENCC }, // 195.14.0.0 - 195.14.1.255 { 0xc30e0200, 0xc30e02ff, REGISTRY_RIPENCC }, // 195.14.2.0 - 195.14.2.255 { 0xc30e0300, 0xc30e06ff, REGISTRY_RIPENCC }, // 195.14.3.0 - 195.14.6.255 { 0xc30e0700, 0xc30e07ff, REGISTRY_RIPENCC }, // 195.14.7.0 - 195.14.7.255 { 0xc30e0800, 0xc30e08ff, REGISTRY_RIPENCC }, // 195.14.8.0 - 195.14.8.255 { 0xc30e0900, 0xc30e0aff, REGISTRY_RIPENCC }, // 195.14.9.0 - 195.14.10.255 { 0xc30e0b00, 0xc30e11ff, REGISTRY_RIPENCC }, // 195.14.11.0 - 195.14.17.255 { 0xc30e1200, 0xc30e12ff, REGISTRY_RIPENCC }, // 195.14.18.0 - 195.14.18.255 { 0xc30e1300, 0xc30e14ff, REGISTRY_RIPENCC }, // 195.14.19.0 - 195.14.20.255 { 0xc30e1500, 0xc30e15ff, REGISTRY_RIPENCC }, // 195.14.21.0 - 195.14.21.255 { 0xc30e1600, 0xc30e17ff, REGISTRY_RIPENCC }, // 195.14.22.0 - 195.14.23.255 { 0xc30e1800, 0xc30e18ff, REGISTRY_RIPENCC }, // 195.14.24.0 - 195.14.24.255 { 0xc30e1900, 0xc30e19ff, REGISTRY_RIPENCC }, // 195.14.25.0 - 195.14.25.255 { 0xc30e1a00, 0xc30e1cff, REGISTRY_RIPENCC }, // 195.14.26.0 - 195.14.28.255 { 0xc30e1d00, 0xc30e1fff, REGISTRY_RIPENCC }, // 195.14.29.0 - 195.14.31.255 { 0xc30e2000, 0xc30e5fff, REGISTRY_RIPENCC }, // 195.14.32.0 - 195.14.95.255 { 0xc30e6000, 0xc30e61ff, REGISTRY_RIPENCC }, // 195.14.96.0 - 195.14.97.255 { 0xc30e6200, 0xc30e65ff, REGISTRY_RIPENCC }, // 195.14.98.0 - 195.14.101.255 { 0xc30e6600, 0xc30e67ff, REGISTRY_RIPENCC }, // 195.14.102.0 - 195.14.103.255 { 0xc30e6800, 0xc30e69ff, REGISTRY_RIPENCC }, // 195.14.104.0 - 195.14.105.255 { 0xc30e6a00, 0xc30e6fff, REGISTRY_RIPENCC }, // 195.14.106.0 - 195.14.111.255 { 0xc30e7000, 0xc30e71ff, REGISTRY_RIPENCC }, // 195.14.112.0 - 195.14.113.255 { 0xc30e7200, 0xc30e75ff, REGISTRY_RIPENCC }, // 195.14.114.0 - 195.14.117.255 { 0xc30e7600, 0xc30e77ff, REGISTRY_RIPENCC }, // 195.14.118.0 - 195.14.119.255 { 0xc30e7800, 0xc30e7fff, REGISTRY_RIPENCC }, // 195.14.120.0 - 195.14.127.255 { 0xc30e8000, 0xc31043ff, REGISTRY_RIPENCC }, // 195.14.128.0 - 195.16.67.255 { 0xc3104400, 0xc31047ff, REGISTRY_RIPENCC }, // 195.16.68.0 - 195.16.71.255 { 0xc3104800, 0xc3104bff, REGISTRY_RIPENCC }, // 195.16.72.0 - 195.16.75.255 { 0xc3104c00, 0xc31057ff, REGISTRY_RIPENCC }, // 195.16.76.0 - 195.16.87.255 { 0xc3105800, 0xc3105bff, REGISTRY_RIPENCC }, // 195.16.88.0 - 195.16.91.255 { 0xc3105c00, 0xc3105fff, REGISTRY_RIPENCC }, // 195.16.92.0 - 195.16.95.255 { 0xc3106000, 0xc31203ff, REGISTRY_RIPENCC }, // 195.16.96.0 - 195.18.3.255 { 0xc3120400, 0xc31217ff, REGISTRY_RIPENCC }, // 195.18.4.0 - 195.18.23.255 { 0xc3121800, 0xc3121bff, REGISTRY_RIPENCC }, // 195.18.24.0 - 195.18.27.255 { 0xc3121c00, 0xc3121fff, REGISTRY_RIPENCC }, // 195.18.28.0 - 195.18.31.255 { 0xc3122000, 0xc313ffff, REGISTRY_RIPENCC }, // 195.18.32.0 - 195.19.255.255 { 0xc3140000, 0xc31407ff, REGISTRY_RIPENCC }, // 195.20.0.0 - 195.20.7.255 { 0xc3140800, 0xc3140bff, REGISTRY_RIPENCC }, // 195.20.8.0 - 195.20.11.255 { 0xc3140c00, 0xc3140fff, REGISTRY_RIPENCC }, // 195.20.12.0 - 195.20.15.255 { 0xc3141000, 0xc31417ff, REGISTRY_RIPENCC }, // 195.20.16.0 - 195.20.23.255 { 0xc3141800, 0xc3141fff, REGISTRY_RIPENCC }, // 195.20.24.0 - 195.20.31.255 { 0xc3142000, 0xc3145fff, REGISTRY_RIPENCC }, // 195.20.32.0 - 195.20.95.255 { 0xc3146000, 0xc31461ff, REGISTRY_RIPENCC }, // 195.20.96.0 - 195.20.97.255 { 0xc3146200, 0xc31465ff, REGISTRY_RIPENCC }, // 195.20.98.0 - 195.20.101.255 { 0xc3146600, 0xc31467ff, REGISTRY_RIPENCC }, // 195.20.102.0 - 195.20.103.255 { 0xc3146800, 0xc31469ff, REGISTRY_RIPENCC }, // 195.20.104.0 - 195.20.105.255 { 0xc3146a00, 0xc3146bff, REGISTRY_RIPENCC }, // 195.20.106.0 - 195.20.107.255 { 0xc3146c00, 0xc3146dff, REGISTRY_RIPENCC }, // 195.20.108.0 - 195.20.109.255 { 0xc3146e00, 0xc31471ff, REGISTRY_RIPENCC }, // 195.20.110.0 - 195.20.113.255 { 0xc3147400, 0xc31479ff, REGISTRY_RIPENCC }, // 195.20.116.0 - 195.20.121.255 { 0xc3147a00, 0xc3147aff, REGISTRY_RIPENCC }, // 195.20.122.0 - 195.20.122.255 { 0xc3147b00, 0xc31488ff, REGISTRY_RIPENCC }, // 195.20.123.0 - 195.20.136.255 { 0xc3148900, 0xc31489ff, REGISTRY_RIPENCC }, // 195.20.137.0 - 195.20.137.255 { 0xc3148a00, 0xc3148cff, REGISTRY_RIPENCC }, // 195.20.138.0 - 195.20.140.255 { 0xc3148d00, 0xc3148dff, REGISTRY_RIPENCC }, // 195.20.141.0 - 195.20.141.255 { 0xc3148e00, 0xc3148eff, REGISTRY_RIPENCC }, // 195.20.142.0 - 195.20.142.255 { 0xc3148f00, 0xc3148fff, REGISTRY_RIPENCC }, // 195.20.143.0 - 195.20.143.255 { 0xc3149000, 0xc3149fff, REGISTRY_RIPENCC }, // 195.20.144.0 - 195.20.159.255 { 0xc314a000, 0xc314bfff, REGISTRY_RIPENCC }, // 195.20.160.0 - 195.20.191.255 { 0xc314c000, 0xc314cfff, REGISTRY_RIPENCC }, // 195.20.192.0 - 195.20.207.255 { 0xc314d000, 0xc314d1ff, REGISTRY_RIPENCC }, // 195.20.208.0 - 195.20.209.255 { 0xc314d200, 0xc314dfff, REGISTRY_RIPENCC }, // 195.20.210.0 - 195.20.223.255 { 0xc314e000, 0xc3165fff, REGISTRY_RIPENCC }, // 195.20.224.0 - 195.22.95.255 { 0xc3166000, 0xc31673ff, REGISTRY_RIPENCC }, // 195.22.96.0 - 195.22.115.255 { 0xc3167400, 0xc31677ff, REGISTRY_RIPENCC }, // 195.22.116.0 - 195.22.119.255 { 0xc3167800, 0xc31679ff, REGISTRY_RIPENCC }, // 195.22.120.0 - 195.22.121.255 { 0xc3167a00, 0xc3167aff, REGISTRY_RIPENCC }, // 195.22.122.0 - 195.22.122.255 { 0xc3167b00, 0xc3167fff, REGISTRY_RIPENCC }, // 195.22.123.0 - 195.22.127.255 { 0xc3168000, 0xc31681ff, REGISTRY_RIPENCC }, // 195.22.128.0 - 195.22.129.255 { 0xc3168200, 0xc31685ff, REGISTRY_RIPENCC }, // 195.22.130.0 - 195.22.133.255 { 0xc3168600, 0xc31687ff, REGISTRY_RIPENCC }, // 195.22.134.0 - 195.22.135.255 { 0xc3168800, 0xc31693ff, REGISTRY_RIPENCC }, // 195.22.136.0 - 195.22.147.255 { 0xc3169400, 0xc31695ff, REGISTRY_RIPENCC }, // 195.22.148.0 - 195.22.149.255 { 0xc3169600, 0xc31697ff, REGISTRY_RIPENCC }, // 195.22.150.0 - 195.22.151.255 { 0xc3169800, 0xc31699ff, REGISTRY_RIPENCC }, // 195.22.152.0 - 195.22.153.255 { 0xc3169a00, 0xc3169bff, REGISTRY_RIPENCC }, // 195.22.154.0 - 195.22.155.255 { 0xc3169c00, 0xc3169dff, REGISTRY_RIPENCC }, // 195.22.156.0 - 195.22.157.255 { 0xc3169e00, 0xc3169fff, REGISTRY_RIPENCC }, // 195.22.158.0 - 195.22.159.255 { 0xc316a000, 0xc3183fff, REGISTRY_RIPENCC }, // 195.22.160.0 - 195.24.63.255 { 0xc3184000, 0xc3184fff, REGISTRY_RIPENCC }, // 195.24.64.0 - 195.24.79.255 { 0xc3185000, 0xc31857ff, REGISTRY_AFRINIC }, // 195.24.80.0 - 195.24.87.255 { 0xc3185800, 0xc3185fff, REGISTRY_RIPENCC }, // 195.24.88.0 - 195.24.95.255 { 0xc3186000, 0xc318bfff, REGISTRY_RIPENCC }, // 195.24.96.0 - 195.24.191.255 { 0xc318c000, 0xc318dfff, REGISTRY_AFRINIC }, // 195.24.192.0 - 195.24.223.255 { 0xc318e000, 0xc318e1ff, REGISTRY_RIPENCC }, // 195.24.224.0 - 195.24.225.255 { 0xc318e200, 0xc318e3ff, REGISTRY_RIPENCC }, // 195.24.226.0 - 195.24.227.255 { 0xc318e400, 0xc318e7ff, REGISTRY_RIPENCC }, // 195.24.228.0 - 195.24.231.255 { 0xc318e800, 0xc318e9ff, REGISTRY_RIPENCC }, // 195.24.232.0 - 195.24.233.255 { 0xc318ea00, 0xc318f3ff, REGISTRY_RIPENCC }, // 195.24.234.0 - 195.24.243.255 { 0xc318f400, 0xc318f5ff, REGISTRY_RIPENCC }, // 195.24.244.0 - 195.24.245.255 { 0xc318f600, 0xc318ffff, REGISTRY_RIPENCC }, // 195.24.246.0 - 195.24.255.255 { 0xc3190000, 0xc319ffff, REGISTRY_RIPENCC }, // 195.25.0.0 - 195.25.255.255 { 0xc31a0000, 0xc31a05ff, REGISTRY_RIPENCC }, // 195.26.0.0 - 195.26.5.255 { 0xc31a0600, 0xc31a0bff, REGISTRY_RIPENCC }, // 195.26.6.0 - 195.26.11.255 { 0xc31a0c00, 0xc31a1fff, REGISTRY_RIPENCC }, // 195.26.12.0 - 195.26.31.255 { 0xc31a2000, 0xc31a3fff, REGISTRY_RIPENCC }, // 195.26.32.0 - 195.26.63.255 { 0xc31a4000, 0xc31a43ff, REGISTRY_RIPENCC }, // 195.26.64.0 - 195.26.67.255 { 0xc31a4400, 0xc31a47ff, REGISTRY_RIPENCC }, // 195.26.68.0 - 195.26.71.255 { 0xc31a4800, 0xc31a5fff, REGISTRY_RIPENCC }, // 195.26.72.0 - 195.26.95.255 { 0xc31a6000, 0xc31bffff, REGISTRY_RIPENCC }, // 195.26.96.0 - 195.27.255.255 { 0xc31c0000, 0xc31c05ff, REGISTRY_RIPENCC }, // 195.28.0.0 - 195.28.5.255 { 0xc31c0600, 0xc31c07ff, REGISTRY_RIPENCC }, // 195.28.6.0 - 195.28.7.255 { 0xc31c0800, 0xc31c09ff, REGISTRY_RIPENCC }, // 195.28.8.0 - 195.28.9.255 { 0xc31c0a00, 0xc31c0bff, REGISTRY_RIPENCC }, // 195.28.10.0 - 195.28.11.255 { 0xc31c0c00, 0xc31c13ff, REGISTRY_RIPENCC }, // 195.28.12.0 - 195.28.19.255 { 0xc31c1400, 0xc31c15ff, REGISTRY_RIPENCC }, // 195.28.20.0 - 195.28.21.255 { 0xc31c1600, 0xc31c1fff, REGISTRY_RIPENCC }, // 195.28.22.0 - 195.28.31.255 { 0xc31c2000, 0xc31c9fff, REGISTRY_RIPENCC }, // 195.28.32.0 - 195.28.159.255 { 0xc31ca000, 0xc31ca3ff, REGISTRY_RIPENCC }, // 195.28.160.0 - 195.28.163.255 { 0xc31ca400, 0xc31ca5ff, REGISTRY_RIPENCC }, // 195.28.164.0 - 195.28.165.255 { 0xc31ca600, 0xc31ca7ff, REGISTRY_RIPENCC }, // 195.28.166.0 - 195.28.167.255 { 0xc31ca800, 0xc31ca9ff, REGISTRY_RIPENCC }, // 195.28.168.0 - 195.28.169.255 { 0xc31caa00, 0xc31cb1ff, REGISTRY_RIPENCC }, // 195.28.170.0 - 195.28.177.255 { 0xc31cb200, 0xc31cb5ff, REGISTRY_RIPENCC }, // 195.28.178.0 - 195.28.181.255 { 0xc31cb600, 0xc31cbbff, REGISTRY_RIPENCC }, // 195.28.182.0 - 195.28.187.255 { 0xc31cbc00, 0xc31cbdff, REGISTRY_RIPENCC }, // 195.28.188.0 - 195.28.189.255 { 0xc31cbe00, 0xc31cbfff, REGISTRY_RIPENCC }, // 195.28.190.0 - 195.28.191.255 { 0xc31cc000, 0xc3223fff, REGISTRY_RIPENCC }, // 195.28.192.0 - 195.34.63.255 { 0xc3224000, 0xc32241ff, REGISTRY_RIPENCC }, // 195.34.64.0 - 195.34.65.255 { 0xc3224200, 0xc32243ff, REGISTRY_RIPENCC }, // 195.34.66.0 - 195.34.67.255 { 0xc3224400, 0xc32245ff, REGISTRY_RIPENCC }, // 195.34.68.0 - 195.34.69.255 { 0xc3224600, 0xc32247ff, REGISTRY_RIPENCC }, // 195.34.70.0 - 195.34.71.255 { 0xc3224800, 0xc3224dff, REGISTRY_RIPENCC }, // 195.34.72.0 - 195.34.77.255 { 0xc3224e00, 0xc3224fff, REGISTRY_RIPENCC }, // 195.34.78.0 - 195.34.79.255 { 0xc3225000, 0xc3225fff, REGISTRY_RIPENCC }, // 195.34.80.0 - 195.34.95.255 { 0xc3226000, 0xc322bfff, REGISTRY_RIPENCC }, // 195.34.96.0 - 195.34.191.255 { 0xc322c000, 0xc322c7ff, REGISTRY_RIPENCC }, // 195.34.192.0 - 195.34.199.255 { 0xc322c800, 0xc322cbff, REGISTRY_RIPENCC }, // 195.34.200.0 - 195.34.203.255 { 0xc322cc00, 0xc322dfff, REGISTRY_RIPENCC }, // 195.34.204.0 - 195.34.223.255 { 0xc322e000, 0xc3233fff, REGISTRY_RIPENCC }, // 195.34.224.0 - 195.35.63.255 { 0xc3234000, 0xc32342ff, REGISTRY_RIPENCC }, // 195.35.64.0 - 195.35.66.255 { 0xc3234300, 0xc32343ff, REGISTRY_RIPENCC }, // 195.35.67.0 - 195.35.67.255 { 0xc3234400, 0xc32354ff, REGISTRY_RIPENCC }, // 195.35.68.0 - 195.35.84.255 { 0xc3235500, 0xc32355ff, REGISTRY_RIPENCC }, // 195.35.85.0 - 195.35.85.255 { 0xc3235600, 0xc3235fff, REGISTRY_RIPENCC }, // 195.35.86.0 - 195.35.95.255 { 0xc3236000, 0xc32362ff, REGISTRY_RIPENCC }, // 195.35.96.0 - 195.35.98.255 { 0xc3236300, 0xc32363ff, REGISTRY_RIPENCC }, // 195.35.99.0 - 195.35.99.255 { 0xc3236400, 0xc32364ff, REGISTRY_RIPENCC }, // 195.35.100.0 - 195.35.100.255 { 0xc3236500, 0xc32365ff, REGISTRY_RIPENCC }, // 195.35.101.0 - 195.35.101.255 { 0xc3236600, 0xc32366ff, REGISTRY_RIPENCC }, // 195.35.102.0 - 195.35.102.255 { 0xc3236700, 0xc32367ff, REGISTRY_RIPENCC }, // 195.35.103.0 - 195.35.103.255 { 0xc3236820, 0xc32368ff, REGISTRY_RIPENCC }, // 195.35.104.32 - 195.35.104.255 { 0xc3236900, 0xc32369ff, REGISTRY_RIPENCC }, // 195.35.105.0 - 195.35.105.255 { 0xc3236a00, 0xc3236bff, REGISTRY_RIPENCC }, // 195.35.106.0 - 195.35.107.255 { 0xc3236c00, 0xc3236cff, REGISTRY_RIPENCC }, // 195.35.108.0 - 195.35.108.255 { 0xc3236d00, 0xc3236fff, REGISTRY_RIPENCC }, // 195.35.109.0 - 195.35.111.255 { 0xc3237200, 0xc32375ff, REGISTRY_RIPENCC }, // 195.35.114.0 - 195.35.117.255 { 0xc3237600, 0xc32377ff, REGISTRY_RIPENCC }, // 195.35.118.0 - 195.35.119.255 { 0xc3237800, 0xc3237eff, REGISTRY_RIPENCC }, // 195.35.120.0 - 195.35.126.255 { 0xc3237f00, 0xc3260bff, REGISTRY_RIPENCC }, // 195.35.127.0 - 195.38.11.255 { 0xc3260c00, 0xc32612ff, REGISTRY_RIPENCC }, // 195.38.12.0 - 195.38.18.255 { 0xc3261400, 0xc32614ff, REGISTRY_RIPENCC }, // 195.38.20.0 - 195.38.20.255 { 0xc3261500, 0xc32615ff, REGISTRY_RIPENCC }, // 195.38.21.0 - 195.38.21.255 { 0xc3261600, 0xc3261bff, REGISTRY_RIPENCC }, // 195.38.22.0 - 195.38.27.255 { 0xc3261c00, 0xc3261dff, REGISTRY_RIPENCC }, // 195.38.28.0 - 195.38.29.255 { 0xc3261e00, 0xc3261fff, REGISTRY_RIPENCC }, // 195.38.30.0 - 195.38.31.255 { 0xc3262000, 0xc327bfff, REGISTRY_RIPENCC }, // 195.38.32.0 - 195.39.191.255 { 0xc327c000, 0xc327c1ff, REGISTRY_RIPENCC }, // 195.39.192.0 - 195.39.193.255 { 0xc327c200, 0xc327c3ff, REGISTRY_RIPENCC }, // 195.39.194.0 - 195.39.195.255 { 0xc327c400, 0xc327c7ff, REGISTRY_RIPENCC }, // 195.39.196.0 - 195.39.199.255 { 0xc327c800, 0xc327cdff, REGISTRY_RIPENCC }, // 195.39.200.0 - 195.39.205.255 { 0xc327ce00, 0xc327d5ff, REGISTRY_RIPENCC }, // 195.39.206.0 - 195.39.213.255 { 0xc327d600, 0xc327d7ff, REGISTRY_RIPENCC }, // 195.39.214.0 - 195.39.215.255 { 0xc327d800, 0xc327d9ff, REGISTRY_RIPENCC }, // 195.39.216.0 - 195.39.217.255 { 0xc327da00, 0xc327dbff, REGISTRY_AFRINIC }, // 195.39.218.0 - 195.39.219.255 { 0xc327dc00, 0xc327ddff, REGISTRY_RIPENCC }, // 195.39.220.0 - 195.39.221.255 { 0xc327de00, 0xc327edff, REGISTRY_RIPENCC }, // 195.39.222.0 - 195.39.237.255 { 0xc327ee00, 0xc327eeff, REGISTRY_RIPENCC }, // 195.39.238.0 - 195.39.238.255 { 0xc327ef00, 0xc327f5ff, REGISTRY_RIPENCC }, // 195.39.239.0 - 195.39.245.255 { 0xc327f600, 0xc327fdff, REGISTRY_RIPENCC }, // 195.39.246.0 - 195.39.253.255 { 0xc327fe00, 0xc327ffff, REGISTRY_RIPENCC }, // 195.39.254.0 - 195.39.255.255 { 0xc3280000, 0xc329ffff, REGISTRY_RIPENCC }, // 195.40.0.0 - 195.41.255.255 { 0xc32a0000, 0xc32a3fff, REGISTRY_RIPENCC }, // 195.42.0.0 - 195.42.63.255 { 0xc32a4000, 0xc32a5fff, REGISTRY_RIPENCC }, // 195.42.64.0 - 195.42.95.255 { 0xc32a6000, 0xc32a9dff, REGISTRY_RIPENCC }, // 195.42.96.0 - 195.42.157.255 { 0xc32a9e00, 0xc32ae5ff, REGISTRY_RIPENCC }, // 195.42.158.0 - 195.42.229.255 { 0xc32ae600, 0xc32ae7ff, REGISTRY_RIPENCC }, // 195.42.230.0 - 195.42.231.255 { 0xc32ae800, 0xc32aebff, REGISTRY_RIPENCC }, // 195.42.232.0 - 195.42.235.255 { 0xc32aec00, 0xc32aefff, REGISTRY_RIPENCC }, // 195.42.236.0 - 195.42.239.255 { 0xc32af000, 0xc32af8ff, REGISTRY_RIPENCC }, // 195.42.240.0 - 195.42.248.255 { 0xc32af900, 0xc32affff, REGISTRY_RIPENCC }, // 195.42.249.0 - 195.42.255.255 { 0xc32b0000, 0xc32b1fff, REGISTRY_AFRINIC }, // 195.43.0.0 - 195.43.31.255 { 0xc32b2000, 0xc32b23ff, REGISTRY_RIPENCC }, // 195.43.32.0 - 195.43.35.255 { 0xc32b2400, 0xc32b27ff, REGISTRY_RIPENCC }, // 195.43.36.0 - 195.43.39.255 { 0xc32b2800, 0xc32b4fff, REGISTRY_RIPENCC }, // 195.43.40.0 - 195.43.79.255 { 0xc32b5000, 0xc32b51ff, REGISTRY_RIPENCC }, // 195.43.80.0 - 195.43.81.255 { 0xc32b5200, 0xc32b5dff, REGISTRY_RIPENCC }, // 195.43.82.0 - 195.43.93.255 { 0xc32b5e00, 0xc32b80ff, REGISTRY_RIPENCC }, // 195.43.94.0 - 195.43.128.255 { 0xc32b8100, 0xc32b85ff, REGISTRY_RIPENCC }, // 195.43.129.0 - 195.43.133.255 { 0xc32b8600, 0xc32b86ff, REGISTRY_RIPENCC }, // 195.43.134.0 - 195.43.134.255 { 0xc32b8700, 0xc32b8dff, REGISTRY_RIPENCC }, // 195.43.135.0 - 195.43.141.255 { 0xc32b8e00, 0xc32b8eff, REGISTRY_RIPENCC }, // 195.43.142.0 - 195.43.142.255 { 0xc32b8f00, 0xc32b92ff, REGISTRY_RIPENCC }, // 195.43.143.0 - 195.43.146.255 { 0xc32b9300, 0xc32b93ff, REGISTRY_RIPENCC }, // 195.43.147.0 - 195.43.147.255 { 0xc32b9400, 0xc32b9eff, REGISTRY_RIPENCC }, // 195.43.148.0 - 195.43.158.255 { 0xc32b9f00, 0xc32e1fff, REGISTRY_RIPENCC }, // 195.43.159.0 - 195.46.31.255 { 0xc32e2000, 0xc32e3bff, REGISTRY_RIPENCC }, // 195.46.32.0 - 195.46.59.255 { 0xc32e3c00, 0xc32fbfff, REGISTRY_RIPENCC }, // 195.46.60.0 - 195.47.191.255 { 0xc32fc000, 0xc32fd1ff, REGISTRY_RIPENCC }, // 195.47.192.0 - 195.47.209.255 { 0xc32fd200, 0xc32fd2ff, REGISTRY_RIPENCC }, // 195.47.210.0 - 195.47.210.255 { 0xc32fd300, 0xc32fd3ff, REGISTRY_RIPENCC }, // 195.47.211.0 - 195.47.211.255 { 0xc32fd400, 0xc32fd4ff, REGISTRY_RIPENCC }, // 195.47.212.0 - 195.47.212.255 { 0xc32fd500, 0xc32fd7ff, REGISTRY_RIPENCC }, // 195.47.213.0 - 195.47.215.255 { 0xc32fd800, 0xc32fd8ff, REGISTRY_RIPENCC }, // 195.47.216.0 - 195.47.216.255 { 0xc32fd900, 0xc32fd9ff, REGISTRY_RIPENCC }, // 195.47.217.0 - 195.47.217.255 { 0xc32fda00, 0xc32fdaff, REGISTRY_RIPENCC }, // 195.47.218.0 - 195.47.218.255 { 0xc32fdb00, 0xc32fe5ff, REGISTRY_RIPENCC }, // 195.47.219.0 - 195.47.229.255 { 0xc32fe600, 0xc32fe6ff, REGISTRY_RIPENCC }, // 195.47.230.0 - 195.47.230.255 { 0xc32fe700, 0xc32feeff, REGISTRY_RIPENCC }, // 195.47.231.0 - 195.47.238.255 { 0xc32fef00, 0xc32fefff, REGISTRY_RIPENCC }, // 195.47.239.0 - 195.47.239.255 { 0xc32ff000, 0xc32ff1ff, REGISTRY_RIPENCC }, // 195.47.240.0 - 195.47.241.255 { 0xc32ff200, 0xc32ff2ff, REGISTRY_RIPENCC }, // 195.47.242.0 - 195.47.242.255 { 0xc32ff300, 0xc32ff9ff, REGISTRY_RIPENCC }, // 195.47.243.0 - 195.47.249.255 { 0xc32ffa00, 0xc32ffaff, REGISTRY_RIPENCC }, // 195.47.250.0 - 195.47.250.255 { 0xc32ffb00, 0xc32ffbff, REGISTRY_RIPENCC }, // 195.47.251.0 - 195.47.251.255 { 0xc32ffc00, 0xc32ffcff, REGISTRY_RIPENCC }, // 195.47.252.0 - 195.47.252.255 { 0xc32ffd00, 0xc32fffff, REGISTRY_RIPENCC }, // 195.47.253.0 - 195.47.255.255 { 0xc3300000, 0xc33183ff, REGISTRY_RIPENCC }, // 195.48.0.0 - 195.49.131.255 { 0xc3318400, 0xc3318fff, REGISTRY_RIPENCC }, // 195.49.132.0 - 195.49.143.255 { 0xc3319000, 0xc33193ff, REGISTRY_RIPENCC }, // 195.49.144.0 - 195.49.147.255 { 0xc3319400, 0xc331afff, REGISTRY_RIPENCC }, // 195.49.148.0 - 195.49.175.255 { 0xc331b000, 0xc331b3ff, REGISTRY_RIPENCC }, // 195.49.176.0 - 195.49.179.255 { 0xc331b400, 0xc331cfff, REGISTRY_RIPENCC }, // 195.49.180.0 - 195.49.207.255 { 0xc331d000, 0xc331d7ff, REGISTRY_RIPENCC }, // 195.49.208.0 - 195.49.215.255 { 0xc331d800, 0xc331e7ff, REGISTRY_RIPENCC }, // 195.49.216.0 - 195.49.231.255 { 0xc331e800, 0xc331efff, REGISTRY_RIPENCC }, // 195.49.232.0 - 195.49.239.255 { 0xc331f000, 0xc331ffff, REGISTRY_RIPENCC }, // 195.49.240.0 - 195.49.255.255 { 0xc3320000, 0xc3361fff, REGISTRY_RIPENCC }, // 195.50.0.0 - 195.54.31.255 { 0xc3362000, 0xc3362fff, REGISTRY_RIPENCC }, // 195.54.32.0 - 195.54.47.255 { 0xc3363000, 0xc33631ff, REGISTRY_RIPENCC }, // 195.54.48.0 - 195.54.49.255 { 0xc3363200, 0xc33635ff, REGISTRY_RIPENCC }, // 195.54.50.0 - 195.54.53.255 { 0xc3363600, 0xc33637ff, REGISTRY_RIPENCC }, // 195.54.54.0 - 195.54.55.255 { 0xc3363800, 0xc33639ff, REGISTRY_RIPENCC }, // 195.54.56.0 - 195.54.57.255 { 0xc3363a00, 0xc3363bff, REGISTRY_RIPENCC }, // 195.54.58.0 - 195.54.59.255 { 0xc3363c00, 0xc3363dff, REGISTRY_RIPENCC }, // 195.54.60.0 - 195.54.61.255 { 0xc3363e00, 0xc336a1ff, REGISTRY_RIPENCC }, // 195.54.62.0 - 195.54.161.255 { 0xc336a200, 0xc336a5ff, REGISTRY_RIPENCC }, // 195.54.162.0 - 195.54.165.255 { 0xc336a600, 0xc336a7ff, REGISTRY_RIPENCC }, // 195.54.166.0 - 195.54.167.255 { 0xc336a800, 0xc336a9ff, REGISTRY_RIPENCC }, // 195.54.168.0 - 195.54.169.255 { 0xc336aa00, 0xc336afff, REGISTRY_RIPENCC }, // 195.54.170.0 - 195.54.175.255 { 0xc336b000, 0xc336bfff, REGISTRY_RIPENCC }, // 195.54.176.0 - 195.54.191.255 { 0xc336c000, 0xc33c3fff, REGISTRY_RIPENCC }, // 195.54.192.0 - 195.60.63.255 { 0xc33c4000, 0xc33c4fff, REGISTRY_RIPENCC }, // 195.60.64.0 - 195.60.79.255 { 0xc33c5060, 0xc33c517f, REGISTRY_RIPENCC }, // 195.60.80.96 - 195.60.81.127 { 0xc33c51c0, 0xc33c52ff, REGISTRY_RIPENCC }, // 195.60.81.192 - 195.60.82.255 { 0xc33c5340, 0xc33c537f, REGISTRY_RIPENCC }, // 195.60.83.64 - 195.60.83.127 { 0xc33c53a0, 0xc33c547f, REGISTRY_RIPENCC }, // 195.60.83.160 - 195.60.84.127 { 0xc33c5500, 0xc33c557f, REGISTRY_RIPENCC }, // 195.60.85.0 - 195.60.85.127 { 0xc33c5600, 0xc33c57ff, REGISTRY_RIPENCC }, // 195.60.86.0 - 195.60.87.255 { 0xc33c5900, 0xc33c5b7f, REGISTRY_RIPENCC }, // 195.60.89.0 - 195.60.91.127 { 0xc33c5c00, 0xc33c5cbf, REGISTRY_RIPENCC }, // 195.60.92.0 - 195.60.92.191 { 0xc33c5d00, 0xc33c5d3f, REGISTRY_RIPENCC }, // 195.60.93.0 - 195.60.93.63 { 0xc33c5d80, 0xc33c5dff, REGISTRY_RIPENCC }, // 195.60.93.128 - 195.60.93.255 { 0xc33c5f00, 0xc33c5fff, REGISTRY_RIPENCC }, // 195.60.95.0 - 195.60.95.255 { 0xc33c6000, 0xc33c9fff, REGISTRY_RIPENCC }, // 195.60.96.0 - 195.60.159.255 { 0xc33ca000, 0xc33ca5ff, REGISTRY_RIPENCC }, // 195.60.160.0 - 195.60.165.255 { 0xc33ca600, 0xc33ca7ff, REGISTRY_ARIN }, // 195.60.166.0 - 195.60.167.255 { 0xc33ca800, 0xc33ca9ff, REGISTRY_RIPENCC }, // 195.60.168.0 - 195.60.169.255 { 0xc33caa00, 0xc33cadff, REGISTRY_RIPENCC }, // 195.60.170.0 - 195.60.173.255 { 0xc33cae00, 0xc33cafff, REGISTRY_RIPENCC }, // 195.60.174.0 - 195.60.175.255 { 0xc33cb000, 0xc33cb1ff, REGISTRY_RIPENCC }, // 195.60.176.0 - 195.60.177.255 { 0xc33cb200, 0xc33ccbff, REGISTRY_RIPENCC }, // 195.60.178.0 - 195.60.203.255 { 0xc33ccc00, 0xc33cd3ff, REGISTRY_RIPENCC }, // 195.60.204.0 - 195.60.211.255 { 0xc33cd400, 0xc33cebff, REGISTRY_RIPENCC }, // 195.60.212.0 - 195.60.235.255 { 0xc33cec00, 0xc33cefff, REGISTRY_RIPENCC }, // 195.60.236.0 - 195.60.239.255 { 0xc33cf000, 0xc33cffff, REGISTRY_RIPENCC }, // 195.60.240.0 - 195.60.255.255 { 0xc33d0000, 0xc33dffff, REGISTRY_RIPENCC }, // 195.61.0.0 - 195.61.255.255 { 0xc33e0000, 0xc33e13ff, REGISTRY_RIPENCC }, // 195.62.0.0 - 195.62.19.255 { 0xc33e1400, 0xc33e17ff, REGISTRY_RIPENCC }, // 195.62.20.0 - 195.62.23.255 { 0xc33e1800, 0xc33e1fff, REGISTRY_RIPENCC }, // 195.62.24.0 - 195.62.31.255 { 0xc33e2000, 0xc33e21ff, REGISTRY_RIPENCC }, // 195.62.32.0 - 195.62.33.255 { 0xc33e2200, 0xc33e2dff, REGISTRY_RIPENCC }, // 195.62.34.0 - 195.62.45.255 { 0xc33e2e00, 0xc33e2fff, REGISTRY_RIPENCC }, // 195.62.46.0 - 195.62.47.255 { 0xc33e3000, 0xc33e31ff, REGISTRY_RIPENCC }, // 195.62.48.0 - 195.62.49.255 { 0xc33e3400, 0xc33e43ff, REGISTRY_RIPENCC }, // 195.62.52.0 - 195.62.67.255 { 0xc33e4400, 0xc33e45ff, REGISTRY_RIPENCC }, // 195.62.68.0 - 195.62.69.255 { 0xc33e4600, 0xc33e55ff, REGISTRY_RIPENCC }, // 195.62.70.0 - 195.62.85.255 { 0xc33e5600, 0xc33e59ff, REGISTRY_RIPENCC }, // 195.62.86.0 - 195.62.89.255 { 0xc33e5a00, 0xc33e5fff, REGISTRY_RIPENCC }, // 195.62.90.0 - 195.62.95.255 { 0xc33e6000, 0xc34081ff, REGISTRY_RIPENCC }, // 195.62.96.0 - 195.64.129.255 { 0xc3408200, 0xc3408dff, REGISTRY_RIPENCC }, // 195.64.130.0 - 195.64.141.255 { 0xc3408e00, 0xc3408fff, REGISTRY_RIPENCC }, // 195.64.142.0 - 195.64.143.255 { 0xc3409000, 0xc34097ff, REGISTRY_RIPENCC }, // 195.64.144.0 - 195.64.151.255 { 0xc3409800, 0xc34099ff, REGISTRY_RIPENCC }, // 195.64.152.0 - 195.64.153.255 { 0xc3409a00, 0xc340a7ff, REGISTRY_RIPENCC }, // 195.64.154.0 - 195.64.167.255 { 0xc340a800, 0xc340a9ff, REGISTRY_RIPENCC }, // 195.64.168.0 - 195.64.169.255 { 0xc340aa00, 0xc340bfff, REGISTRY_RIPENCC }, // 195.64.170.0 - 195.64.191.255 { 0xc340c000, 0xc34207ff, REGISTRY_RIPENCC }, // 195.64.192.0 - 195.66.7.255 { 0xc3420800, 0xc34217ff, REGISTRY_RIPENCC }, // 195.66.8.0 - 195.66.23.255 { 0xc3421800, 0xc3423fff, REGISTRY_RIPENCC }, // 195.66.24.0 - 195.66.63.255 { 0xc3424000, 0xc34256ff, REGISTRY_RIPENCC }, // 195.66.64.0 - 195.66.86.255 { 0xc3425700, 0xc34257ff, REGISTRY_RIPENCC }, // 195.66.87.0 - 195.66.87.255 { 0xc3425800, 0xc3425cff, REGISTRY_RIPENCC }, // 195.66.88.0 - 195.66.92.255 { 0xc3425d00, 0xc3425dff, REGISTRY_RIPENCC }, // 195.66.93.0 - 195.66.93.255 { 0xc3425e00, 0xc3425fff, REGISTRY_RIPENCC }, // 195.66.94.0 - 195.66.95.255 { 0xc3426000, 0xc34260ff, REGISTRY_RIPENCC }, // 195.66.96.0 - 195.66.96.255 { 0xc3426100, 0xc34265ff, REGISTRY_RIPENCC }, // 195.66.97.0 - 195.66.101.255 { 0xc3426600, 0xc34266ff, REGISTRY_RIPENCC }, // 195.66.102.0 - 195.66.102.255 { 0xc3426700, 0xc34267ff, REGISTRY_RIPENCC }, // 195.66.103.0 - 195.66.103.255 { 0xc3426800, 0xc34268ff, REGISTRY_RIPENCC }, // 195.66.104.0 - 195.66.104.255 { 0xc3426900, 0xc34271ff, REGISTRY_RIPENCC }, // 195.66.105.0 - 195.66.113.255 { 0xc3427200, 0xc34272ff, REGISTRY_RIPENCC }, // 195.66.114.0 - 195.66.114.255 { 0xc3427300, 0xc34277ff, REGISTRY_RIPENCC }, // 195.66.115.0 - 195.66.119.255 { 0xc3427800, 0xc34278ff, REGISTRY_RIPENCC }, // 195.66.120.0 - 195.66.120.255 { 0xc3427900, 0xc34297ff, REGISTRY_RIPENCC }, // 195.66.121.0 - 195.66.151.255 { 0xc3429800, 0xc34299ff, REGISTRY_RIPENCC }, // 195.66.152.0 - 195.66.153.255 { 0xc3429a00, 0xc3429fff, REGISTRY_RIPENCC }, // 195.66.154.0 - 195.66.159.255 { 0xc342a000, 0xc344bfff, REGISTRY_RIPENCC }, // 195.66.160.0 - 195.68.191.255 { 0xc344c000, 0xc344cdff, REGISTRY_RIPENCC }, // 195.68.192.0 - 195.68.205.255 { 0xc344ce00, 0xc344cfff, REGISTRY_RIPENCC }, // 195.68.206.0 - 195.68.207.255 { 0xc344d000, 0xc344d9ff, REGISTRY_RIPENCC }, // 195.68.208.0 - 195.68.217.255 { 0xc344da00, 0xc344ddff, REGISTRY_RIPENCC }, // 195.68.218.0 - 195.68.221.255 { 0xc344de00, 0xc344dfff, REGISTRY_RIPENCC }, // 195.68.222.0 - 195.68.223.255 { 0xc344e000, 0xc344e3ff, REGISTRY_RIPENCC }, // 195.68.224.0 - 195.68.227.255 { 0xc344e400, 0xc344f7ff, REGISTRY_RIPENCC }, // 195.68.228.0 - 195.68.247.255 { 0xc344f800, 0xc344f9ff, REGISTRY_RIPENCC }, // 195.68.248.0 - 195.68.249.255 { 0xc344fa00, 0xc344fdff, REGISTRY_RIPENCC }, // 195.68.250.0 - 195.68.253.255 { 0xc344fe00, 0xc344ffff, REGISTRY_RIPENCC }, // 195.68.254.0 - 195.68.255.255 { 0xc3450000, 0xc34557ff, REGISTRY_RIPENCC }, // 195.69.0.0 - 195.69.87.255 { 0xc3455800, 0xc3455bff, REGISTRY_RIPENCC }, // 195.69.88.0 - 195.69.91.255 { 0xc3455c00, 0xc34563ff, REGISTRY_RIPENCC }, // 195.69.92.0 - 195.69.99.255 { 0xc3456400, 0xc34567ff, REGISTRY_RIPENCC }, // 195.69.100.0 - 195.69.103.255 { 0xc3456800, 0xc34587ff, REGISTRY_RIPENCC }, // 195.69.104.0 - 195.69.135.255 { 0xc3458800, 0xc3458fff, REGISTRY_RIPENCC }, // 195.69.136.0 - 195.69.143.255 { 0xc3459000, 0xc34593ff, REGISTRY_RIPENCC }, // 195.69.144.0 - 195.69.147.255 { 0xc3459400, 0xc34597ff, REGISTRY_RIPENCC }, // 195.69.148.0 - 195.69.151.255 { 0xc3459800, 0xc3459fff, REGISTRY_RIPENCC }, // 195.69.152.0 - 195.69.159.255 { 0xc345a000, 0xc345a3ff, REGISTRY_RIPENCC }, // 195.69.160.0 - 195.69.163.255 { 0xc345a400, 0xc345a7ff, REGISTRY_RIPENCC }, // 195.69.164.0 - 195.69.167.255 { 0xc345a800, 0xc345afff, REGISTRY_RIPENCC }, // 195.69.168.0 - 195.69.175.255 { 0xc345b000, 0xc345e3ff, REGISTRY_RIPENCC }, // 195.69.176.0 - 195.69.227.255 { 0xc345e400, 0xc345e7ff, REGISTRY_RIPENCC }, // 195.69.228.0 - 195.69.231.255 { 0xc345e800, 0xc345ebff, REGISTRY_RIPENCC }, // 195.69.232.0 - 195.69.235.255 { 0xc345ec00, 0xc345f3ff, REGISTRY_RIPENCC }, // 195.69.236.0 - 195.69.243.255 { 0xc345f400, 0xc345fbff, REGISTRY_RIPENCC }, // 195.69.244.0 - 195.69.251.255 { 0xc345fc00, 0xc3485fff, REGISTRY_RIPENCC }, // 195.69.252.0 - 195.72.95.255 { 0xc3486000, 0xc34873ff, REGISTRY_RIPENCC }, // 195.72.96.0 - 195.72.115.255 { 0xc3487400, 0xc34877ff, REGISTRY_RIPENCC }, // 195.72.116.0 - 195.72.119.255 { 0xc3487800, 0xc3487bff, REGISTRY_RIPENCC }, // 195.72.120.0 - 195.72.123.255 { 0xc3487c00, 0xc3487fff, REGISTRY_RIPENCC }, // 195.72.124.0 - 195.72.127.255 { 0xc3488000, 0xc3488bff, REGISTRY_RIPENCC }, // 195.72.128.0 - 195.72.139.255 { 0xc3488c00, 0xc3488fff, REGISTRY_RIPENCC }, // 195.72.140.0 - 195.72.143.255 { 0xc3489000, 0xc3489fff, REGISTRY_RIPENCC }, // 195.72.144.0 - 195.72.159.255 { 0xc348a000, 0xc34a1fff, REGISTRY_RIPENCC }, // 195.72.160.0 - 195.74.31.255 { 0xc34a2000, 0xc34a23ff, REGISTRY_RIPENCC }, // 195.74.32.0 - 195.74.35.255 { 0xc34a2400, 0xc34a27ff, REGISTRY_RIPENCC }, // 195.74.36.0 - 195.74.39.255 { 0xc34a2800, 0xc34a33ff, REGISTRY_RIPENCC }, // 195.74.40.0 - 195.74.51.255 { 0xc34a3400, 0xc34a3bff, REGISTRY_RIPENCC }, // 195.74.52.0 - 195.74.59.255 { 0xc34a3c00, 0xc34a55ff, REGISTRY_RIPENCC }, // 195.74.60.0 - 195.74.85.255 { 0xc34a5600, 0xc34a56ff, REGISTRY_RIPENCC }, // 195.74.86.0 - 195.74.86.255 { 0xc34a5700, 0xc34a57ff, REGISTRY_RIPENCC }, // 195.74.87.0 - 195.74.87.255 { 0xc34a5800, 0xc34a5aff, REGISTRY_RIPENCC }, // 195.74.88.0 - 195.74.90.255 { 0xc34a5b00, 0xc34a5cff, REGISTRY_RIPENCC }, // 195.74.91.0 - 195.74.92.255 { 0xc34a5d00, 0xc34a5dff, REGISTRY_RIPENCC }, // 195.74.93.0 - 195.74.93.255 { 0xc34a5e00, 0xc34a5fff, REGISTRY_RIPENCC }, // 195.74.94.0 - 195.74.95.255 { 0xc34a6000, 0xc34e1fff, REGISTRY_RIPENCC }, // 195.74.96.0 - 195.78.31.255 { 0xc34e2000, 0xc34e23ff, REGISTRY_RIPENCC }, // 195.78.32.0 - 195.78.35.255 { 0xc34e2400, 0xc34e25ff, REGISTRY_RIPENCC }, // 195.78.36.0 - 195.78.37.255 { 0xc34e2600, 0xc34e2fff, REGISTRY_RIPENCC }, // 195.78.38.0 - 195.78.47.255 { 0xc34e3000, 0xc34e31ff, REGISTRY_RIPENCC }, // 195.78.48.0 - 195.78.49.255 { 0xc34e3200, 0xc34e35ff, REGISTRY_RIPENCC }, // 195.78.50.0 - 195.78.53.255 { 0xc34e3600, 0xc34e39ff, REGISTRY_ARIN }, // 195.78.54.0 - 195.78.57.255 { 0xc34e3a00, 0xc34e59ff, REGISTRY_RIPENCC }, // 195.78.58.0 - 195.78.89.255 { 0xc34e5a00, 0xc34e5dff, REGISTRY_RIPENCC }, // 195.78.90.0 - 195.78.93.255 { 0xc34e5e00, 0xc34e61ff, REGISTRY_RIPENCC }, // 195.78.94.0 - 195.78.97.255 { 0xc34e6200, 0xc34e63ff, REGISTRY_RIPENCC }, // 195.78.98.0 - 195.78.99.255 { 0xc34e6400, 0xc34e6bff, REGISTRY_RIPENCC }, // 195.78.100.0 - 195.78.107.255 { 0xc34e6c00, 0xc34e6dff, REGISTRY_RIPENCC }, // 195.78.108.0 - 195.78.109.255 { 0xc34e6e00, 0xc34e75ff, REGISTRY_RIPENCC }, // 195.78.110.0 - 195.78.117.255 { 0xc34e7600, 0xc34e77ff, REGISTRY_RIPENCC }, // 195.78.118.0 - 195.78.119.255 { 0xc34e7800, 0xc34e7fff, REGISTRY_RIPENCC }, // 195.78.120.0 - 195.78.127.255 { 0xc34e8000, 0xc34edfff, REGISTRY_RIPENCC }, // 195.78.128.0 - 195.78.223.255 { 0xc34ee000, 0xc34ee3ff, REGISTRY_RIPENCC }, // 195.78.224.0 - 195.78.227.255 { 0xc34ee400, 0xc34ee7ff, REGISTRY_RIPENCC }, // 195.78.228.0 - 195.78.231.255 { 0xc34ee800, 0xc34eebff, REGISTRY_RIPENCC }, // 195.78.232.0 - 195.78.235.255 { 0xc34eec00, 0xc34eefff, REGISTRY_RIPENCC }, // 195.78.236.0 - 195.78.239.255 { 0xc34ef000, 0xc34effff, REGISTRY_RIPENCC }, // 195.78.240.0 - 195.78.255.255 { 0xc34f0000, 0xc35087ff, REGISTRY_RIPENCC }, // 195.79.0.0 - 195.80.135.255 { 0xc3508800, 0xc3508dff, REGISTRY_RIPENCC }, // 195.80.136.0 - 195.80.141.255 { 0xc3508e00, 0xc3508fff, REGISTRY_RIPENCC }, // 195.80.142.0 - 195.80.143.255 { 0xc3509000, 0xc35093ff, REGISTRY_RIPENCC }, // 195.80.144.0 - 195.80.147.255 { 0xc3509400, 0xc350dfff, REGISTRY_RIPENCC }, // 195.80.148.0 - 195.80.223.255 { 0xc350e000, 0xc350e4ff, REGISTRY_RIPENCC }, // 195.80.224.0 - 195.80.228.255 { 0xc350e500, 0xc350e7ff, REGISTRY_RIPENCC }, // 195.80.229.0 - 195.80.231.255 { 0xc350e800, 0xc350edff, REGISTRY_RIPENCC }, // 195.80.232.0 - 195.80.237.255 { 0xc350ee00, 0xc350eeff, REGISTRY_RIPENCC }, // 195.80.238.0 - 195.80.238.255 { 0xc350ef00, 0xc350ffff, REGISTRY_RIPENCC }, // 195.80.239.0 - 195.80.255.255 { 0xc3510000, 0xc3527fff, REGISTRY_RIPENCC }, // 195.81.0.0 - 195.82.127.255 { 0xc3528000, 0xc35283ff, REGISTRY_RIPENCC }, // 195.82.128.0 - 195.82.131.255 { 0xc3528400, 0xc35285ff, REGISTRY_RIPENCC }, // 195.82.132.0 - 195.82.133.255 { 0xc3528600, 0xc35289ff, REGISTRY_RIPENCC }, // 195.82.134.0 - 195.82.137.255 { 0xc3528c00, 0xc35297ff, REGISTRY_RIPENCC }, // 195.82.140.0 - 195.82.151.255 { 0xc3529800, 0xc35299ff, REGISTRY_RIPENCC }, // 195.82.152.0 - 195.82.153.255 { 0xc3529a00, 0xc3529fff, REGISTRY_RIPENCC }, // 195.82.154.0 - 195.82.159.255 { 0xc352a000, 0xc35523ff, REGISTRY_RIPENCC }, // 195.82.160.0 - 195.85.35.255 { 0xc3552400, 0xc35524ff, REGISTRY_ARIN }, // 195.85.36.0 - 195.85.36.255 { 0xc3552500, 0xc35532ff, REGISTRY_RIPENCC }, // 195.85.37.0 - 195.85.50.255 { 0xc3553300, 0xc35533ff, REGISTRY_ARIN }, // 195.85.51.0 - 195.85.51.255 { 0xc3553400, 0xc3553dff, REGISTRY_RIPENCC }, // 195.85.52.0 - 195.85.61.255 { 0xc3553e00, 0xc35541ff, REGISTRY_ARIN }, // 195.85.62.0 - 195.85.65.255 { 0xc3554200, 0xc3554aff, REGISTRY_RIPENCC }, // 195.85.66.0 - 195.85.74.255 { 0xc3554b00, 0xc3554bff, REGISTRY_ARIN }, // 195.85.75.0 - 195.85.75.255 { 0xc3554c00, 0xc3554dff, REGISTRY_RIPENCC }, // 195.85.76.0 - 195.85.77.255 { 0xc3554e00, 0xc3554fff, REGISTRY_ARIN }, // 195.85.78.0 - 195.85.79.255 { 0xc3555000, 0xc35554ff, REGISTRY_RIPENCC }, // 195.85.80.0 - 195.85.84.255 { 0xc3555500, 0xc35555ff, REGISTRY_ARIN }, // 195.85.85.0 - 195.85.85.255 { 0xc3555600, 0xc35557ff, REGISTRY_RIPENCC }, // 195.85.86.0 - 195.85.87.255 { 0xc3555800, 0xc35558ff, REGISTRY_ARIN }, // 195.85.88.0 - 195.85.88.255 { 0xc3555900, 0xc35569ff, REGISTRY_RIPENCC }, // 195.85.89.0 - 195.85.105.255 { 0xc3556a00, 0xc3556cff, REGISTRY_ARIN }, // 195.85.106.0 - 195.85.108.255 { 0xc3556d00, 0xc35570ff, REGISTRY_RIPENCC }, // 195.85.109.0 - 195.85.112.255 { 0xc3557100, 0xc35574ff, REGISTRY_ARIN }, // 195.85.113.0 - 195.85.116.255 { 0xc3557500, 0xc35575ff, REGISTRY_RIPENCC }, // 195.85.117.0 - 195.85.117.255 { 0xc3557600, 0xc3557fff, REGISTRY_ARIN }, // 195.85.118.0 - 195.85.127.255 { 0xc3558000, 0xc355bfff, REGISTRY_RIPENCC }, // 195.85.128.0 - 195.85.191.255 { 0xc355c000, 0xc355c1ff, REGISTRY_RIPENCC }, // 195.85.192.0 - 195.85.193.255 { 0xc355c200, 0xc355c2ff, REGISTRY_RIPENCC }, // 195.85.194.0 - 195.85.194.255 { 0xc355c400, 0xc355c4ff, REGISTRY_RIPENCC }, // 195.85.196.0 - 195.85.196.255 { 0xc355c500, 0xc355c5ff, REGISTRY_RIPENCC }, // 195.85.197.0 - 195.85.197.255 { 0xc355c600, 0xc355c8ff, REGISTRY_RIPENCC }, // 195.85.198.0 - 195.85.200.255 { 0xc355c900, 0xc355c9ff, REGISTRY_RIPENCC }, // 195.85.201.0 - 195.85.201.255 { 0xc355ca00, 0xc355caff, REGISTRY_RIPENCC }, // 195.85.202.0 - 195.85.202.255 { 0xc355cc00, 0xc355ccff, REGISTRY_RIPENCC }, // 195.85.204.0 - 195.85.204.255 { 0xc355cd00, 0xc355cdff, REGISTRY_RIPENCC }, // 195.85.205.0 - 195.85.205.255 { 0xc355ce00, 0xc355ceff, REGISTRY_RIPENCC }, // 195.85.206.0 - 195.85.206.255 { 0xc355cf00, 0xc355cfff, REGISTRY_RIPENCC }, // 195.85.207.0 - 195.85.207.255 { 0xc355d000, 0xc355d3ff, REGISTRY_RIPENCC }, // 195.85.208.0 - 195.85.211.255 { 0xc355d400, 0xc355d4ff, REGISTRY_RIPENCC }, // 195.85.212.0 - 195.85.212.255 { 0xc355d500, 0xc355d7ff, REGISTRY_RIPENCC }, // 195.85.213.0 - 195.85.215.255 { 0xc355d800, 0xc355d8ff, REGISTRY_RIPENCC }, // 195.85.216.0 - 195.85.216.255 { 0xc355d900, 0xc355d9ff, REGISTRY_RIPENCC }, // 195.85.217.0 - 195.85.217.255 { 0xc355da00, 0xc355daff, REGISTRY_RIPENCC }, // 195.85.218.0 - 195.85.218.255 { 0xc355db00, 0xc355deff, REGISTRY_RIPENCC }, // 195.85.219.0 - 195.85.222.255 { 0xc355df00, 0xc355dfff, REGISTRY_RIPENCC }, // 195.85.223.0 - 195.85.223.255 { 0xc355e000, 0xc355e0ff, REGISTRY_RIPENCC }, // 195.85.224.0 - 195.85.224.255 { 0xc355e100, 0xc355e3ff, REGISTRY_RIPENCC }, // 195.85.225.0 - 195.85.227.255 { 0xc355e400, 0xc355e8ff, REGISTRY_RIPENCC }, // 195.85.228.0 - 195.85.232.255 { 0xc355ea00, 0xc355edff, REGISTRY_RIPENCC }, // 195.85.234.0 - 195.85.237.255 { 0xc355ee00, 0xc355eeff, REGISTRY_RIPENCC }, // 195.85.238.0 - 195.85.238.255 { 0xc355ef00, 0xc355f3ff, REGISTRY_RIPENCC }, // 195.85.239.0 - 195.85.243.255 { 0xc355f400, 0xc355f5ff, REGISTRY_RIPENCC }, // 195.85.244.0 - 195.85.245.255 { 0xc355f600, 0xc355f7ff, REGISTRY_RIPENCC }, // 195.85.246.0 - 195.85.247.255 { 0xc355f800, 0xc355faff, REGISTRY_RIPENCC }, // 195.85.248.0 - 195.85.250.255 { 0xc355fb00, 0xc355ffff, REGISTRY_RIPENCC }, // 195.85.251.0 - 195.85.255.255 { 0xc3560000, 0xc357ffff, REGISTRY_RIPENCC }, // 195.86.0.0 - 195.87.255.255 { 0xc3580000, 0xc35803ff, REGISTRY_RIPENCC }, // 195.88.0.0 - 195.88.3.255 { 0xc3580400, 0xc35805ff, REGISTRY_RIPENCC }, // 195.88.4.0 - 195.88.5.255 { 0xc3580600, 0xc35817ff, REGISTRY_RIPENCC }, // 195.88.6.0 - 195.88.23.255 { 0xc3581800, 0xc35819ff, REGISTRY_ARIN }, // 195.88.24.0 - 195.88.25.255 { 0xc3581a00, 0xc3582bff, REGISTRY_RIPENCC }, // 195.88.26.0 - 195.88.43.255 { 0xc3582c00, 0xc3582dff, REGISTRY_RIPENCC }, // 195.88.44.0 - 195.88.45.255 { 0xc3582e00, 0xc35837ff, REGISTRY_RIPENCC }, // 195.88.46.0 - 195.88.55.255 { 0xc3583800, 0xc35839ff, REGISTRY_ARIN }, // 195.88.56.0 - 195.88.57.255 { 0xc3583a00, 0xc35851ff, REGISTRY_RIPENCC }, // 195.88.58.0 - 195.88.81.255 { 0xc3585200, 0xc35853ff, REGISTRY_RIPENCC }, // 195.88.82.0 - 195.88.83.255 { 0xc3585400, 0xc35855ff, REGISTRY_RIPENCC }, // 195.88.84.0 - 195.88.85.255 { 0xc3585600, 0xc35859ff, REGISTRY_RIPENCC }, // 195.88.86.0 - 195.88.89.255 { 0xc3585a00, 0xc35863ff, REGISTRY_RIPENCC }, // 195.88.90.0 - 195.88.99.255 { 0xc3586400, 0xc35865ff, REGISTRY_RIPENCC }, // 195.88.100.0 - 195.88.101.255 { 0xc3586600, 0xc35867ff, REGISTRY_RIPENCC }, // 195.88.102.0 - 195.88.103.255 { 0xc3586800, 0xc35869ff, REGISTRY_RIPENCC }, // 195.88.104.0 - 195.88.105.255 { 0xc3586a00, 0xc35885ff, REGISTRY_RIPENCC }, // 195.88.106.0 - 195.88.133.255 { 0xc3588600, 0xc35887ff, REGISTRY_RIPENCC }, // 195.88.134.0 - 195.88.135.255 { 0xc3588800, 0xc35891ff, REGISTRY_RIPENCC }, // 195.88.136.0 - 195.88.145.255 { 0xc3589200, 0xc35893ff, REGISTRY_RIPENCC }, // 195.88.146.0 - 195.88.147.255 { 0xc3589400, 0xc35895ff, REGISTRY_RIPENCC }, // 195.88.148.0 - 195.88.149.255 { 0xc3589600, 0xc35897ff, REGISTRY_RIPENCC }, // 195.88.150.0 - 195.88.151.255 { 0xc3589800, 0xc3589bff, REGISTRY_RIPENCC }, // 195.88.152.0 - 195.88.155.255 { 0xc3589c00, 0xc3589dff, REGISTRY_RIPENCC }, // 195.88.156.0 - 195.88.157.255 { 0xc3589e00, 0xc358a7ff, REGISTRY_RIPENCC }, // 195.88.158.0 - 195.88.167.255 { 0xc358a800, 0xc358a9ff, REGISTRY_RIPENCC }, // 195.88.168.0 - 195.88.169.255 { 0xc358aa00, 0xc358b3ff, REGISTRY_RIPENCC }, // 195.88.170.0 - 195.88.179.255 { 0xc358b400, 0xc358b5ff, REGISTRY_RIPENCC }, // 195.88.180.0 - 195.88.181.255 { 0xc358b600, 0xc358bdff, REGISTRY_RIPENCC }, // 195.88.182.0 - 195.88.189.255 { 0xc358be00, 0xc358bfff, REGISTRY_RIPENCC }, // 195.88.190.0 - 195.88.191.255 { 0xc358c000, 0xc358cbff, REGISTRY_RIPENCC }, // 195.88.192.0 - 195.88.203.255 { 0xc358cc00, 0xc358d5ff, REGISTRY_RIPENCC }, // 195.88.204.0 - 195.88.213.255 { 0xc358d600, 0xc358d9ff, REGISTRY_RIPENCC }, // 195.88.214.0 - 195.88.217.255 { 0xc358da00, 0xc358dbff, REGISTRY_ARIN }, // 195.88.218.0 - 195.88.219.255 { 0xc358dc00, 0xc358ddff, REGISTRY_RIPENCC }, // 195.88.220.0 - 195.88.221.255 { 0xc358de00, 0xc358e1ff, REGISTRY_RIPENCC }, // 195.88.222.0 - 195.88.225.255 { 0xc358e200, 0xc358e3ff, REGISTRY_RIPENCC }, // 195.88.226.0 - 195.88.227.255 { 0xc358e400, 0xc358e5ff, REGISTRY_RIPENCC }, // 195.88.228.0 - 195.88.229.255 { 0xc358e600, 0xc358e7ff, REGISTRY_RIPENCC }, // 195.88.230.0 - 195.88.231.255 { 0xc358e800, 0xc358e9ff, REGISTRY_RIPENCC }, // 195.88.232.0 - 195.88.233.255 { 0xc358ea00, 0xc358ebff, REGISTRY_RIPENCC }, // 195.88.234.0 - 195.88.235.255 { 0xc358ec00, 0xc358f5ff, REGISTRY_RIPENCC }, // 195.88.236.0 - 195.88.245.255 { 0xc358f600, 0xc358f7ff, REGISTRY_RIPENCC }, // 195.88.246.0 - 195.88.247.255 { 0xc358f800, 0xc358ffff, REGISTRY_RIPENCC }, // 195.88.248.0 - 195.88.255.255 { 0xc3590000, 0xc35a5fff, REGISTRY_RIPENCC }, // 195.89.0.0 - 195.90.95.255 { 0xc35a6000, 0xc35a61ff, REGISTRY_RIPENCC }, // 195.90.96.0 - 195.90.97.255 { 0xc35a6200, 0xc35a63ff, REGISTRY_RIPENCC }, // 195.90.98.0 - 195.90.99.255 { 0xc35a6400, 0xc35a71ff, REGISTRY_RIPENCC }, // 195.90.100.0 - 195.90.113.255 { 0xc35a7200, 0xc35a77ff, REGISTRY_RIPENCC }, // 195.90.114.0 - 195.90.119.255 { 0xc35a7800, 0xc35a79ff, REGISTRY_RIPENCC }, // 195.90.120.0 - 195.90.121.255 { 0xc35a7a00, 0xc35a7bff, REGISTRY_RIPENCC }, // 195.90.122.0 - 195.90.123.255 { 0xc35a7c00, 0xc35a7fff, REGISTRY_RIPENCC }, // 195.90.124.0 - 195.90.127.255 { 0xc35a8000, 0xc35d7fff, REGISTRY_RIPENCC }, // 195.90.128.0 - 195.93.127.255 { 0xc35d8000, 0xc35d8dff, REGISTRY_RIPENCC }, // 195.93.128.0 - 195.93.141.255 { 0xc35d8e00, 0xc35d8fff, REGISTRY_RIPENCC }, // 195.93.142.0 - 195.93.143.255 { 0xc35d9000, 0xc35d97ff, REGISTRY_RIPENCC }, // 195.93.144.0 - 195.93.151.255 { 0xc35d9800, 0xc35d99ff, REGISTRY_RIPENCC }, // 195.93.152.0 - 195.93.153.255 { 0xc35d9a00, 0xc35d9fff, REGISTRY_RIPENCC }, // 195.93.154.0 - 195.93.159.255 { 0xc35da000, 0xc35da1ff, REGISTRY_RIPENCC }, // 195.93.160.0 - 195.93.161.255 { 0xc35da200, 0xc35da7ff, REGISTRY_RIPENCC }, // 195.93.162.0 - 195.93.167.255 { 0xc35da800, 0xc35da9ff, REGISTRY_RIPENCC }, // 195.93.168.0 - 195.93.169.255 { 0xc35daa00, 0xc35dafff, REGISTRY_RIPENCC }, // 195.93.170.0 - 195.93.175.255 { 0xc35db000, 0xc35db1ff, REGISTRY_RIPENCC }, // 195.93.176.0 - 195.93.177.255 { 0xc35db200, 0xc35db5ff, REGISTRY_RIPENCC }, // 195.93.178.0 - 195.93.181.255 { 0xc35db600, 0xc35db9ff, REGISTRY_RIPENCC }, // 195.93.182.0 - 195.93.185.255 { 0xc35dba00, 0xc35dcdff, REGISTRY_RIPENCC }, // 195.93.186.0 - 195.93.205.255 { 0xc35dce00, 0xc35dd1ff, REGISTRY_RIPENCC }, // 195.93.206.0 - 195.93.209.255 { 0xc35dd200, 0xc35dd5ff, REGISTRY_RIPENCC }, // 195.93.210.0 - 195.93.213.255 { 0xc35dd600, 0xc35dd7ff, REGISTRY_RIPENCC }, // 195.93.214.0 - 195.93.215.255 { 0xc35dd800, 0xc35dd9ff, REGISTRY_RIPENCC }, // 195.93.216.0 - 195.93.217.255 { 0xc35dda00, 0xc35dddff, REGISTRY_RIPENCC }, // 195.93.218.0 - 195.93.221.255 { 0xc35dde00, 0xc35de1ff, REGISTRY_RIPENCC }, // 195.93.222.0 - 195.93.225.255 { 0xc35de200, 0xc35de3ff, REGISTRY_RIPENCC }, // 195.93.226.0 - 195.93.227.255 { 0xc35de400, 0xc35debff, REGISTRY_RIPENCC }, // 195.93.228.0 - 195.93.235.255 { 0xc35dec00, 0xc35dedff, REGISTRY_RIPENCC }, // 195.93.236.0 - 195.93.237.255 { 0xc35dee00, 0xc35df7ff, REGISTRY_RIPENCC }, // 195.93.238.0 - 195.93.247.255 { 0xc35df800, 0xc35df9ff, REGISTRY_RIPENCC }, // 195.93.248.0 - 195.93.249.255 { 0xc35dfa00, 0xc35dfbff, REGISTRY_RIPENCC }, // 195.93.250.0 - 195.93.251.255 { 0xc35dfc00, 0xc35dfdff, REGISTRY_RIPENCC }, // 195.93.252.0 - 195.93.253.255 { 0xc35dfe00, 0xc35dffff, REGISTRY_RIPENCC }, // 195.93.254.0 - 195.93.255.255 { 0xc35e0000, 0xc35f80ff, REGISTRY_RIPENCC }, // 195.94.0.0 - 195.95.128.255 { 0xc35f8100, 0xc35f81ff, REGISTRY_RIPENCC }, // 195.95.129.0 - 195.95.129.255 { 0xc35f8200, 0xc35f82ff, REGISTRY_RIPENCC }, // 195.95.130.0 - 195.95.130.255 { 0xc35f8300, 0xc35f84ff, REGISTRY_RIPENCC }, // 195.95.131.0 - 195.95.132.255 { 0xc35f8500, 0xc35f86ff, REGISTRY_RIPENCC }, // 195.95.133.0 - 195.95.134.255 { 0xc35f8700, 0xc35f91ff, REGISTRY_RIPENCC }, // 195.95.135.0 - 195.95.145.255 { 0xc35f9200, 0xc35f92ff, REGISTRY_RIPENCC }, // 195.95.146.0 - 195.95.146.255 { 0xc35f9300, 0xc35f9aff, REGISTRY_RIPENCC }, // 195.95.147.0 - 195.95.154.255 { 0xc35f9b00, 0xc35f9bff, REGISTRY_RIPENCC }, // 195.95.155.0 - 195.95.155.255 { 0xc35f9c00, 0xc35fb8ff, REGISTRY_RIPENCC }, // 195.95.156.0 - 195.95.184.255 { 0xc35fb900, 0xc35fb9ff, REGISTRY_RIPENCC }, // 195.95.185.0 - 195.95.185.255 { 0xc35fba00, 0xc35fbcff, REGISTRY_RIPENCC }, // 195.95.186.0 - 195.95.188.255 { 0xc35fbd00, 0xc35fbeff, REGISTRY_RIPENCC }, // 195.95.189.0 - 195.95.190.255 { 0xc35fbf00, 0xc35fbfff, REGISTRY_ARIN }, // 195.95.191.0 - 195.95.191.255 { 0xc35fc000, 0xc35fc7ff, REGISTRY_RIPENCC }, // 195.95.192.0 - 195.95.199.255 { 0xc35fc800, 0xc35fc9ff, REGISTRY_RIPENCC }, // 195.95.200.0 - 195.95.201.255 { 0xc35fca00, 0xc35fcbff, REGISTRY_RIPENCC }, // 195.95.202.0 - 195.95.203.255 { 0xc35fcc00, 0xc35fcdff, REGISTRY_RIPENCC }, // 195.95.204.0 - 195.95.205.255 { 0xc35fce00, 0xc35fddff, REGISTRY_RIPENCC }, // 195.95.206.0 - 195.95.221.255 { 0xc35fde00, 0xc35fdfff, REGISTRY_RIPENCC }, // 195.95.222.0 - 195.95.223.255 { 0xc35fe000, 0xc35ff9ff, REGISTRY_RIPENCC }, // 195.95.224.0 - 195.95.249.255 { 0xc35ffa00, 0xc35ffbff, REGISTRY_RIPENCC }, // 195.95.250.0 - 195.95.251.255 { 0xc35ffc00, 0xc35fffff, REGISTRY_RIPENCC }, // 195.95.252.0 - 195.95.255.255 { 0xc3600000, 0xc36e03ff, REGISTRY_RIPENCC }, // 195.96.0.0 - 195.110.3.255 { 0xc36e0400, 0xc36e0dff, REGISTRY_RIPENCC }, // 195.110.4.0 - 195.110.13.255 { 0xc36e0e00, 0xc36e0fff, REGISTRY_RIPENCC }, // 195.110.14.0 - 195.110.15.255 { 0xc36e1000, 0xc36e13ff, REGISTRY_RIPENCC }, // 195.110.16.0 - 195.110.19.255 { 0xc36e1400, 0xc36e17ff, REGISTRY_RIPENCC }, // 195.110.20.0 - 195.110.23.255 { 0xc36e1800, 0xc36e25ff, REGISTRY_RIPENCC }, // 195.110.24.0 - 195.110.37.255 { 0xc36e2600, 0xc36e27ff, REGISTRY_RIPENCC }, // 195.110.38.0 - 195.110.39.255 { 0xc36e2800, 0xc36e2dff, REGISTRY_RIPENCC }, // 195.110.40.0 - 195.110.45.255 { 0xc36e2e00, 0xc36e2fff, REGISTRY_RIPENCC }, // 195.110.46.0 - 195.110.47.255 { 0xc36e3000, 0xc36e35ff, REGISTRY_RIPENCC }, // 195.110.48.0 - 195.110.53.255 { 0xc36e3600, 0xc36e37ff, REGISTRY_RIPENCC }, // 195.110.54.0 - 195.110.55.255 { 0xc36e3800, 0xc36e3fff, REGISTRY_RIPENCC }, // 195.110.56.0 - 195.110.63.255 { 0xc36e4000, 0xc371ffff, REGISTRY_RIPENCC }, // 195.110.64.0 - 195.113.255.255 { 0xc3720000, 0xc37203ff, REGISTRY_RIPENCC }, // 195.114.0.0 - 195.114.3.255 { 0xc3720400, 0xc37205ff, REGISTRY_RIPENCC }, // 195.114.4.0 - 195.114.5.255 { 0xc3720600, 0xc37207ff, REGISTRY_RIPENCC }, // 195.114.6.0 - 195.114.7.255 { 0xc3720800, 0xc37209ff, REGISTRY_RIPENCC }, // 195.114.8.0 - 195.114.9.255 { 0xc3720a00, 0xc3720dff, REGISTRY_RIPENCC }, // 195.114.10.0 - 195.114.13.255 { 0xc3720e00, 0xc3720fff, REGISTRY_APNIC }, // 195.114.14.0 - 195.114.15.255 { 0xc3721000, 0xc37219ff, REGISTRY_RIPENCC }, // 195.114.16.0 - 195.114.25.255 { 0xc3721a00, 0xc3721bff, REGISTRY_RIPENCC }, // 195.114.26.0 - 195.114.27.255 { 0xc3721c00, 0xc3721dff, REGISTRY_RIPENCC }, // 195.114.28.0 - 195.114.29.255 { 0xc3721e00, 0xc3725fff, REGISTRY_RIPENCC }, // 195.114.30.0 - 195.114.95.255 { 0xc3726000, 0xc37265ff, REGISTRY_RIPENCC }, // 195.114.96.0 - 195.114.101.255 { 0xc3726600, 0xc37267ff, REGISTRY_RIPENCC }, // 195.114.102.0 - 195.114.103.255 { 0xc3726800, 0xc3726bff, REGISTRY_RIPENCC }, // 195.114.104.0 - 195.114.107.255 { 0xc3726c00, 0xc3726fff, REGISTRY_RIPENCC }, // 195.114.108.0 - 195.114.111.255 { 0xc3727000, 0xc37270ff, REGISTRY_RIPENCC }, // 195.114.112.0 - 195.114.112.255 { 0xc3727100, 0xc37271ff, REGISTRY_RIPENCC }, // 195.114.113.0 - 195.114.113.255 { 0xc3727200, 0xc37273ff, REGISTRY_RIPENCC }, // 195.114.114.0 - 195.114.115.255 { 0xc3727400, 0xc37277ff, REGISTRY_RIPENCC }, // 195.114.116.0 - 195.114.119.255 { 0xc3727800, 0xc3727bff, REGISTRY_RIPENCC }, // 195.114.120.0 - 195.114.123.255 { 0xc3727e00, 0xc3727fff, REGISTRY_APNIC }, // 195.114.126.0 - 195.114.127.255 { 0xc3728000, 0xc37fffff, REGISTRY_RIPENCC }, // 195.114.128.0 - 195.127.255.255 { 0xc3800000, 0xc38003ff, REGISTRY_RIPENCC }, // 195.128.0.0 - 195.128.3.255 { 0xc3800400, 0xc38007ff, REGISTRY_APNIC }, // 195.128.4.0 - 195.128.7.255 { 0xc3800800, 0xc3800bff, REGISTRY_RIPENCC }, // 195.128.8.0 - 195.128.11.255 { 0xc3800c00, 0xc3800fff, REGISTRY_RIPENCC }, // 195.128.12.0 - 195.128.15.255 { 0xc3801000, 0xc38017ff, REGISTRY_RIPENCC }, // 195.128.16.0 - 195.128.23.255 { 0xc3801800, 0xc3801bff, REGISTRY_RIPENCC }, // 195.128.24.0 - 195.128.27.255 { 0xc3801c00, 0xc3803fff, REGISTRY_RIPENCC }, // 195.128.28.0 - 195.128.63.255 { 0xc3804000, 0xc38067ff, REGISTRY_RIPENCC }, // 195.128.64.0 - 195.128.103.255 { 0xc3806800, 0xc38084ff, REGISTRY_RIPENCC }, // 195.128.104.0 - 195.128.132.255 { 0xc3808500, 0xc38085ff, REGISTRY_RIPENCC }, // 195.128.133.0 - 195.128.133.255 { 0xc3808600, 0xc3808eff, REGISTRY_RIPENCC }, // 195.128.134.0 - 195.128.142.255 { 0xc3809000, 0xc38096ff, REGISTRY_RIPENCC }, // 195.128.144.0 - 195.128.150.255 { 0xc3809700, 0xc38098ff, REGISTRY_RIPENCC }, // 195.128.151.0 - 195.128.152.255 { 0xc3809900, 0xc380a1ff, REGISTRY_RIPENCC }, // 195.128.153.0 - 195.128.161.255 { 0xc380a200, 0xc380a3ff, REGISTRY_RIPENCC }, // 195.128.162.0 - 195.128.163.255 { 0xc380a400, 0xc380adff, REGISTRY_RIPENCC }, // 195.128.164.0 - 195.128.173.255 { 0xc380ae00, 0xc380afff, REGISTRY_RIPENCC }, // 195.128.174.0 - 195.128.175.255 { 0xc380b000, 0xc380b1ff, REGISTRY_RIPENCC }, // 195.128.176.0 - 195.128.177.255 { 0xc380b200, 0xc380b3ff, REGISTRY_RIPENCC }, // 195.128.178.0 - 195.128.179.255 { 0xc380b400, 0xc380bfff, REGISTRY_RIPENCC }, // 195.128.180.0 - 195.128.191.255 { 0xc380c000, 0xc380dfff, REGISTRY_RIPENCC }, // 195.128.192.0 - 195.128.223.255 { 0xc380e000, 0xc380efff, REGISTRY_RIPENCC }, // 195.128.224.0 - 195.128.239.255 { 0xc380f000, 0xc380f1ff, REGISTRY_RIPENCC }, // 195.128.240.0 - 195.128.241.255 { 0xc380f200, 0xc380fdff, REGISTRY_RIPENCC }, // 195.128.242.0 - 195.128.253.255 { 0xc380fe00, 0xc382c0ff, REGISTRY_RIPENCC }, // 195.128.254.0 - 195.130.192.255 { 0xc382c100, 0xc382c3ff, REGISTRY_RIPENCC }, // 195.130.193.0 - 195.130.195.255 { 0xc382c400, 0xc382c4ff, REGISTRY_RIPENCC }, // 195.130.196.0 - 195.130.196.255 { 0xc382c500, 0xc382c8ff, REGISTRY_RIPENCC }, // 195.130.197.0 - 195.130.200.255 { 0xc382ca00, 0xc382caff, REGISTRY_RIPENCC }, // 195.130.202.0 - 195.130.202.255 { 0xc382cb00, 0xc382cbff, REGISTRY_RIPENCC }, // 195.130.203.0 - 195.130.203.255 { 0xc382cc00, 0xc382ccff, REGISTRY_RIPENCC }, // 195.130.204.0 - 195.130.204.255 { 0xc382cd00, 0xc382cdff, REGISTRY_RIPENCC }, // 195.130.205.0 - 195.130.205.255 { 0xc382ce00, 0xc382ceff, REGISTRY_RIPENCC }, // 195.130.206.0 - 195.130.206.255 { 0xc382cf00, 0xc382cfff, REGISTRY_RIPENCC }, // 195.130.207.0 - 195.130.207.255 { 0xc382d000, 0xc382d0ff, REGISTRY_RIPENCC }, // 195.130.208.0 - 195.130.208.255 { 0xc382d100, 0xc382d6ff, REGISTRY_RIPENCC }, // 195.130.209.0 - 195.130.214.255 { 0xc382d700, 0xc382d7ff, REGISTRY_RIPENCC }, // 195.130.215.0 - 195.130.215.255 { 0xc382d800, 0xc382dfff, REGISTRY_RIPENCC }, // 195.130.216.0 - 195.130.223.255 { 0xc382e000, 0xc385d1ff, REGISTRY_RIPENCC }, // 195.130.224.0 - 195.133.209.255 { 0xc385d200, 0xc385d3ff, REGISTRY_ARIN }, // 195.133.210.0 - 195.133.211.255 { 0xc385d400, 0xc3863fff, REGISTRY_RIPENCC }, // 195.133.212.0 - 195.134.63.255 { 0xc3864000, 0xc3867fff, REGISTRY_RIPENCC }, // 195.134.64.0 - 195.134.127.255 { 0xc3868000, 0xc387bfff, REGISTRY_RIPENCC }, // 195.134.128.0 - 195.135.191.255 { 0xc387c000, 0xc387cbff, REGISTRY_RIPENCC }, // 195.135.192.0 - 195.135.203.255 { 0xc387cc00, 0xc387cfff, REGISTRY_RIPENCC }, // 195.135.204.0 - 195.135.207.255 { 0xc387d000, 0xc387dbff, REGISTRY_RIPENCC }, // 195.135.208.0 - 195.135.219.255 { 0xc387dc00, 0xc387dfff, REGISTRY_RIPENCC }, // 195.135.220.0 - 195.135.223.255 { 0xc387e000, 0xc387e7ff, REGISTRY_RIPENCC }, // 195.135.224.0 - 195.135.231.255 { 0xc387e800, 0xc387ebff, REGISTRY_RIPENCC }, // 195.135.232.0 - 195.135.235.255 { 0xc387ec00, 0xc387f3ff, REGISTRY_RIPENCC }, // 195.135.236.0 - 195.135.243.255 { 0xc387f400, 0xc3899fff, REGISTRY_RIPENCC }, // 195.135.244.0 - 195.137.159.255 { 0xc389a000, 0xc389a3ff, REGISTRY_RIPENCC }, // 195.137.160.0 - 195.137.163.255 { 0xc389a400, 0xc389a4ff, REGISTRY_RIPENCC }, // 195.137.164.0 - 195.137.164.255 { 0xc389a500, 0xc389a7ff, REGISTRY_RIPENCC }, // 195.137.165.0 - 195.137.167.255 { 0xc389a800, 0xc389a8ff, REGISTRY_RIPENCC }, // 195.137.168.0 - 195.137.168.255 { 0xc389a900, 0xc389acff, REGISTRY_RIPENCC }, // 195.137.169.0 - 195.137.172.255 { 0xc389ad00, 0xc389adff, REGISTRY_RIPENCC }, // 195.137.173.0 - 195.137.173.255 { 0xc389ae00, 0xc389b0ff, REGISTRY_RIPENCC }, // 195.137.174.0 - 195.137.176.255 { 0xc389b100, 0xc389b1ff, REGISTRY_RIPENCC }, // 195.137.177.0 - 195.137.177.255 { 0xc389b200, 0xc389b9ff, REGISTRY_RIPENCC }, // 195.137.178.0 - 195.137.185.255 { 0xc389ba00, 0xc389baff, REGISTRY_RIPENCC }, // 195.137.186.0 - 195.137.186.255 { 0xc389bb00, 0xc389bbff, REGISTRY_RIPENCC }, // 195.137.187.0 - 195.137.187.255 { 0xc389bc00, 0xc389bcff, REGISTRY_RIPENCC }, // 195.137.188.0 - 195.137.188.255 { 0xc389bd00, 0xc389bfff, REGISTRY_RIPENCC }, // 195.137.189.0 - 195.137.191.255 { 0xc389c000, 0xc389c1ff, REGISTRY_RIPENCC }, // 195.137.192.0 - 195.137.193.255 { 0xc389c200, 0xc389cbff, REGISTRY_RIPENCC }, // 195.137.194.0 - 195.137.203.255 { 0xc389cc00, 0xc389cdff, REGISTRY_RIPENCC }, // 195.137.204.0 - 195.137.205.255 { 0xc389ce00, 0xc389d3ff, REGISTRY_RIPENCC }, // 195.137.206.0 - 195.137.211.255 { 0xc389d400, 0xc389d5ff, REGISTRY_RIPENCC }, // 195.137.212.0 - 195.137.213.255 { 0xc389d600, 0xc389dbff, REGISTRY_RIPENCC }, // 195.137.214.0 - 195.137.219.255 { 0xc389de00, 0xc389e5ff, REGISTRY_RIPENCC }, // 195.137.222.0 - 195.137.229.255 { 0xc389e800, 0xc389ffff, REGISTRY_RIPENCC }, // 195.137.232.0 - 195.137.255.255 { 0xc38a0000, 0xc38abfff, REGISTRY_RIPENCC }, // 195.138.0.0 - 195.138.191.255 { 0xc38ac000, 0xc38ac4ff, REGISTRY_RIPENCC }, // 195.138.192.0 - 195.138.196.255 { 0xc38ac600, 0xc38ad3ff, REGISTRY_RIPENCC }, // 195.138.198.0 - 195.138.211.255 { 0xc38ad400, 0xc38ad4ff, REGISTRY_RIPENCC }, // 195.138.212.0 - 195.138.212.255 { 0xc38ad500, 0xc38ad8ff, REGISTRY_RIPENCC }, // 195.138.213.0 - 195.138.216.255 { 0xc38ada00, 0xc38adbff, REGISTRY_RIPENCC }, // 195.138.218.0 - 195.138.219.255 { 0xc38adc00, 0xc38adcff, REGISTRY_RIPENCC }, // 195.138.220.0 - 195.138.220.255 { 0xc38add00, 0xc38adfff, REGISTRY_RIPENCC }, // 195.138.221.0 - 195.138.223.255 { 0xc38ae000, 0xc38bffff, REGISTRY_RIPENCC }, // 195.138.224.0 - 195.139.255.255 { 0xc38c0000, 0xc38c7fff, REGISTRY_RIPENCC }, // 195.140.0.0 - 195.140.127.255 { 0xc38c8000, 0xc38c83ff, REGISTRY_RIPENCC }, // 195.140.128.0 - 195.140.131.255 { 0xc38c8400, 0xc38c8fff, REGISTRY_RIPENCC }, // 195.140.132.0 - 195.140.143.255 { 0xc38c9000, 0xc38c93ff, REGISTRY_RIPENCC }, // 195.140.144.0 - 195.140.147.255 { 0xc38c9400, 0xc38c9bff, REGISTRY_RIPENCC }, // 195.140.148.0 - 195.140.155.255 { 0xc38c9c00, 0xc38c9fff, REGISTRY_RIPENCC }, // 195.140.156.0 - 195.140.159.255 { 0xc38ca000, 0xc38cd3ff, REGISTRY_RIPENCC }, // 195.140.160.0 - 195.140.211.255 { 0xc38cd400, 0xc38cd7ff, REGISTRY_RIPENCC }, // 195.140.212.0 - 195.140.215.255 { 0xc38cd800, 0xc38cdfff, REGISTRY_RIPENCC }, // 195.140.216.0 - 195.140.223.255 { 0xc38ce000, 0xc38ce3ff, REGISTRY_RIPENCC }, // 195.140.224.0 - 195.140.227.255 { 0xc38ce400, 0xc38cebff, REGISTRY_RIPENCC }, // 195.140.228.0 - 195.140.235.255 { 0xc38cec00, 0xc38cf3ff, REGISTRY_RIPENCC }, // 195.140.236.0 - 195.140.243.255 { 0xc38cf400, 0xc38cffff, REGISTRY_RIPENCC }, // 195.140.244.0 - 195.140.255.255 { 0xc38d0000, 0xc38e9bff, REGISTRY_RIPENCC }, // 195.141.0.0 - 195.142.155.255 { 0xc38e9c00, 0xc38e9fff, REGISTRY_APNIC }, // 195.142.156.0 - 195.142.159.255 { 0xc38ea000, 0xc38ed3ff, REGISTRY_RIPENCC }, // 195.142.160.0 - 195.142.211.255 { 0xc38ed400, 0xc38ed7ff, REGISTRY_APNIC }, // 195.142.212.0 - 195.142.215.255 { 0xc38ed800, 0xc38fffff, REGISTRY_RIPENCC }, // 195.142.216.0 - 195.143.255.255 { 0xc3900100, 0xc39015ff, REGISTRY_RIPENCC }, // 195.144.1.0 - 195.144.21.255 { 0xc3901600, 0xc39017ff, REGISTRY_RIPENCC }, // 195.144.22.0 - 195.144.23.255 { 0xc3901900, 0xc3901aff, REGISTRY_RIPENCC }, // 195.144.25.0 - 195.144.26.255 { 0xc3901b00, 0xc3901bff, REGISTRY_RIPENCC }, // 195.144.27.0 - 195.144.27.255 { 0xc3901c00, 0xc3901fff, REGISTRY_RIPENCC }, // 195.144.28.0 - 195.144.31.255 { 0xc3902000, 0xc3953fff, REGISTRY_RIPENCC }, // 195.144.32.0 - 195.149.63.255 { 0xc3954000, 0xc39542ff, REGISTRY_RIPENCC }, // 195.149.64.0 - 195.149.66.255 { 0xc3954300, 0xc39543ff, REGISTRY_RIPENCC }, // 195.149.67.0 - 195.149.67.255 { 0xc3954400, 0xc39548ff, REGISTRY_RIPENCC }, // 195.149.68.0 - 195.149.72.255 { 0xc3954900, 0xc3954aff, REGISTRY_RIPENCC }, // 195.149.73.0 - 195.149.74.255 { 0xc3954b00, 0xc39559ff, REGISTRY_RIPENCC }, // 195.149.75.0 - 195.149.89.255 { 0xc3955a00, 0xc3955aff, REGISTRY_RIPENCC }, // 195.149.90.0 - 195.149.90.255 { 0xc3955b00, 0xc3955bff, REGISTRY_RIPENCC }, // 195.149.91.0 - 195.149.91.255 { 0xc3955c00, 0xc3955dff, REGISTRY_RIPENCC }, // 195.149.92.0 - 195.149.93.255 { 0xc3955e00, 0xc3955fff, REGISTRY_RIPENCC }, // 195.149.94.0 - 195.149.95.255 { 0xc3956000, 0xc39560ff, REGISTRY_RIPENCC }, // 195.149.96.0 - 195.149.96.255 { 0xc3956100, 0xc39572ff, REGISTRY_RIPENCC }, // 195.149.97.0 - 195.149.114.255 { 0xc3957300, 0xc39573ff, REGISTRY_RIPENCC }, // 195.149.115.0 - 195.149.115.255 { 0xc3957400, 0xc39576ff, REGISTRY_RIPENCC }, // 195.149.116.0 - 195.149.118.255 { 0xc3957700, 0xc39577ff, REGISTRY_RIPENCC }, // 195.149.119.0 - 195.149.119.255 { 0xc3957800, 0xc3957eff, REGISTRY_RIPENCC }, // 195.149.120.0 - 195.149.126.255 { 0xc3957f00, 0xc395bfff, REGISTRY_RIPENCC }, // 195.149.127.0 - 195.149.191.255 { 0xc395c000, 0xc395ffff, REGISTRY_RIPENCC }, // 195.149.192.0 - 195.149.255.255 { 0xc3960000, 0xc39affff, REGISTRY_RIPENCC }, // 195.150.0.0 - 195.154.255.255 { 0xc39b0000, 0xc39b3fff, REGISTRY_ARIN }, // 195.155.0.0 - 195.155.63.255 { 0xc39b4000, 0xc39edfff, REGISTRY_RIPENCC }, // 195.155.64.0 - 195.158.223.255 { 0xc39ee000, 0xc39eedff, REGISTRY_RIPENCC }, // 195.158.224.0 - 195.158.237.255 { 0xc39eee00, 0xc39ef1ff, REGISTRY_RIPENCC }, // 195.158.238.0 - 195.158.241.255 { 0xc39ef200, 0xc39ef3ff, REGISTRY_RIPENCC }, // 195.158.242.0 - 195.158.243.255 { 0xc39ef400, 0xc39ef5ff, REGISTRY_RIPENCC }, // 195.158.244.0 - 195.158.245.255 { 0xc39ef600, 0xc39ef7ff, REGISTRY_RIPENCC }, // 195.158.246.0 - 195.158.247.255 { 0xc39ef800, 0xc39ef9ff, REGISTRY_RIPENCC }, // 195.158.248.0 - 195.158.249.255 { 0xc39efa00, 0xc39effff, REGISTRY_RIPENCC }, // 195.158.250.0 - 195.158.255.255 { 0xc39f0000, 0xc39fffff, REGISTRY_RIPENCC }, // 195.159.0.0 - 195.159.255.255 { 0xc3a00000, 0xc3a0b3ff, REGISTRY_RIPENCC }, // 195.160.0.0 - 195.160.179.255 { 0xc3a0b400, 0xc3a0b5ff, REGISTRY_RIPENCC }, // 195.160.180.0 - 195.160.181.255 { 0xc3a0b600, 0xc3a0b7ff, REGISTRY_RIPENCC }, // 195.160.182.0 - 195.160.183.255 { 0xc3a0b800, 0xc3a0bbff, REGISTRY_RIPENCC }, // 195.160.184.0 - 195.160.187.255 { 0xc3a0bc00, 0xc3a0dfff, REGISTRY_RIPENCC }, // 195.160.188.0 - 195.160.223.255 { 0xc3a0e000, 0xc3a0e3ff, REGISTRY_RIPENCC }, // 195.160.224.0 - 195.160.227.255 { 0xc3a0e400, 0xc3a0ffff, REGISTRY_RIPENCC }, // 195.160.228.0 - 195.160.255.255 { 0xc3a10000, 0xc3a1ffff, REGISTRY_RIPENCC }, // 195.161.0.0 - 195.161.255.255 { 0xc3a20000, 0xc3a205ff, REGISTRY_RIPENCC }, // 195.162.0.0 - 195.162.5.255 { 0xc3a20600, 0xc3a207ff, REGISTRY_RIPENCC }, // 195.162.6.0 - 195.162.7.255 { 0xc3a20800, 0xc3a213ff, REGISTRY_RIPENCC }, // 195.162.8.0 - 195.162.19.255 { 0xc3a21400, 0xc3a215ff, REGISTRY_RIPENCC }, // 195.162.20.0 - 195.162.21.255 { 0xc3a21600, 0xc3a21fff, REGISTRY_RIPENCC }, // 195.162.22.0 - 195.162.31.255 { 0xc3a22000, 0xc3a23fff, REGISTRY_RIPENCC }, // 195.162.32.0 - 195.162.63.255 { 0xc3a24000, 0xc3a253ff, REGISTRY_RIPENCC }, // 195.162.64.0 - 195.162.83.255 { 0xc3a25400, 0xc3a257ff, REGISTRY_RIPENCC }, // 195.162.84.0 - 195.162.87.255 { 0xc3a25800, 0xc3a25bff, REGISTRY_RIPENCC }, // 195.162.88.0 - 195.162.91.255 { 0xc3a25c00, 0xc3a6dfff, REGISTRY_RIPENCC }, // 195.162.92.0 - 195.166.223.255 { 0xc3a6e000, 0xc3a6ffff, REGISTRY_AFRINIC }, // 195.166.224.0 - 195.166.255.255 { 0xc3a70000, 0xc3a79fff, REGISTRY_RIPENCC }, // 195.167.0.0 - 195.167.159.255 { 0xc3a7a000, 0xc3a7afff, REGISTRY_ARIN }, // 195.167.160.0 - 195.167.175.255 { 0xc3a7b000, 0xc3aa9fff, REGISTRY_RIPENCC }, // 195.167.176.0 - 195.170.159.255 { 0xc3aaa000, 0xc3aaa2ff, REGISTRY_RIPENCC }, // 195.170.160.0 - 195.170.162.255 { 0xc3aaa300, 0xc3aaa3ff, REGISTRY_RIPENCC }, // 195.170.163.0 - 195.170.163.255 { 0xc3aaa400, 0xc3aaa4ff, REGISTRY_RIPENCC }, // 195.170.164.0 - 195.170.164.255 { 0xc3aaa500, 0xc3aaa7ff, REGISTRY_RIPENCC }, // 195.170.165.0 - 195.170.167.255 { 0xc3aaa800, 0xc3aaabff, REGISTRY_RIPENCC }, // 195.170.168.0 - 195.170.171.255 { 0xc3aaac00, 0xc3aaadff, REGISTRY_RIPENCC }, // 195.170.172.0 - 195.170.173.255 { 0xc3aaae00, 0xc3aab9ff, REGISTRY_RIPENCC }, // 195.170.174.0 - 195.170.185.255 { 0xc3aaba00, 0xc3aabaff, REGISTRY_RIPENCC }, // 195.170.186.0 - 195.170.186.255 { 0xc3aabb00, 0xc3aabdff, REGISTRY_RIPENCC }, // 195.170.187.0 - 195.170.189.255 { 0xc3aabe00, 0xc3aabeff, REGISTRY_RIPENCC }, // 195.170.190.0 - 195.170.190.255 { 0xc3aabf00, 0xc3aabfff, REGISTRY_RIPENCC }, // 195.170.191.0 - 195.170.191.255 { 0xc3aac000, 0xc3b13fff, REGISTRY_RIPENCC }, // 195.170.192.0 - 195.177.63.255 { 0xc3b14000, 0xc3b14bff, REGISTRY_RIPENCC }, // 195.177.64.0 - 195.177.75.255 { 0xc3b14c00, 0xc3b14fff, REGISTRY_RIPENCC }, // 195.177.76.0 - 195.177.79.255 { 0xc3b15000, 0xc3b157ff, REGISTRY_RIPENCC }, // 195.177.80.0 - 195.177.87.255 { 0xc3b15800, 0xc3b15bff, REGISTRY_RIPENCC }, // 195.177.88.0 - 195.177.91.255 { 0xc3b15c00, 0xc3b16bff, REGISTRY_RIPENCC }, // 195.177.92.0 - 195.177.107.255 { 0xc3b16c00, 0xc3b173ff, REGISTRY_RIPENCC }, // 195.177.108.0 - 195.177.115.255 { 0xc3b17400, 0xc3b17fff, REGISTRY_RIPENCC }, // 195.177.116.0 - 195.177.127.255 { 0xc3b18000, 0xc3b1bfff, REGISTRY_RIPENCC }, // 195.177.128.0 - 195.177.191.255 { 0xc3b1c000, 0xc3b1c1ff, REGISTRY_RIPENCC }, // 195.177.192.0 - 195.177.193.255 { 0xc3b1c200, 0xc3b1c3ff, REGISTRY_RIPENCC }, // 195.177.194.0 - 195.177.195.255 { 0xc3b1c400, 0xc3b1d7ff, REGISTRY_RIPENCC }, // 195.177.196.0 - 195.177.215.255 { 0xc3b1d800, 0xc3b1d9ff, REGISTRY_RIPENCC }, // 195.177.216.0 - 195.177.217.255 { 0xc3b1da00, 0xc3b1e5ff, REGISTRY_RIPENCC }, // 195.177.218.0 - 195.177.229.255 { 0xc3b1e600, 0xc3b1e9ff, REGISTRY_RIPENCC }, // 195.177.230.0 - 195.177.233.255 { 0xc3b1ea00, 0xc3b1f3ff, REGISTRY_RIPENCC }, // 195.177.234.0 - 195.177.243.255 { 0xc3b1f400, 0xc3b1f5ff, REGISTRY_RIPENCC }, // 195.177.244.0 - 195.177.245.255 { 0xc3b1f600, 0xc3b1fbff, REGISTRY_RIPENCC }, // 195.177.246.0 - 195.177.251.255 { 0xc3b1fc00, 0xc3b1fdff, REGISTRY_RIPENCC }, // 195.177.252.0 - 195.177.253.255 { 0xc3b20000, 0xc3b203ff, REGISTRY_RIPENCC }, // 195.178.0.0 - 195.178.3.255 { 0xc3b20400, 0xc3b205ff, REGISTRY_RIPENCC }, // 195.178.4.0 - 195.178.5.255 { 0xc3b20600, 0xc3b21fff, REGISTRY_RIPENCC }, // 195.178.6.0 - 195.178.31.255 { 0xc3b22000, 0xc3b25fff, REGISTRY_RIPENCC }, // 195.178.32.0 - 195.178.95.255 { 0xc3b26000, 0xc3b267ff, REGISTRY_RIPENCC }, // 195.178.96.0 - 195.178.103.255 { 0xc3b26800, 0xc3b269ff, REGISTRY_RIPENCC }, // 195.178.104.0 - 195.178.105.255 { 0xc3b26a00, 0xc3b26dff, REGISTRY_RIPENCC }, // 195.178.106.0 - 195.178.109.255 { 0xc3b26e00, 0xc3b26fff, REGISTRY_RIPENCC }, // 195.178.110.0 - 195.178.111.255 { 0xc3b27000, 0xc3b277ff, REGISTRY_RIPENCC }, // 195.178.112.0 - 195.178.119.255 { 0xc3b27800, 0xc3b279ff, REGISTRY_RIPENCC }, // 195.178.120.0 - 195.178.121.255 { 0xc3b27a00, 0xc3b27bff, REGISTRY_RIPENCC }, // 195.178.122.0 - 195.178.123.255 { 0xc3b27c00, 0xc3b5dfff, REGISTRY_RIPENCC }, // 195.178.124.0 - 195.181.223.255 { 0xc3b5e000, 0xc3b5efff, REGISTRY_APNIC }, // 195.181.224.0 - 195.181.239.255 { 0xc3b5f000, 0xc3b5ffff, REGISTRY_RIPENCC }, // 195.181.240.0 - 195.181.255.255 { 0xc3b60000, 0xc3b603ff, REGISTRY_RIPENCC }, // 195.182.0.0 - 195.182.3.255 { 0xc3b60400, 0xc3b604ff, REGISTRY_RIPENCC }, // 195.182.4.0 - 195.182.4.255 { 0xc3b60500, 0xc3b607ff, REGISTRY_RIPENCC }, // 195.182.5.0 - 195.182.7.255 { 0xc3b60800, 0xc3b608ff, REGISTRY_RIPENCC }, // 195.182.8.0 - 195.182.8.255 { 0xc3b60900, 0xc3b609ff, REGISTRY_RIPENCC }, // 195.182.9.0 - 195.182.9.255 { 0xc3b60a00, 0xc3b60aff, REGISTRY_RIPENCC }, // 195.182.10.0 - 195.182.10.255 { 0xc3b60b00, 0xc3b60cff, REGISTRY_RIPENCC }, // 195.182.11.0 - 195.182.12.255 { 0xc3b60d00, 0xc3b60dff, REGISTRY_RIPENCC }, // 195.182.13.0 - 195.182.13.255 { 0xc3b60e00, 0xc3b60eff, REGISTRY_RIPENCC }, // 195.182.14.0 - 195.182.14.255 { 0xc3b60f00, 0xc3b610ff, REGISTRY_RIPENCC }, // 195.182.15.0 - 195.182.16.255 { 0xc3b61100, 0xc3b612ff, REGISTRY_RIPENCC }, // 195.182.17.0 - 195.182.18.255 { 0xc3b61300, 0xc3b613ff, REGISTRY_RIPENCC }, // 195.182.19.0 - 195.182.19.255 { 0xc3b61400, 0xc3b617ff, REGISTRY_RIPENCC }, // 195.182.20.0 - 195.182.23.255 { 0xc3b61800, 0xc3b618ff, REGISTRY_RIPENCC }, // 195.182.24.0 - 195.182.24.255 { 0xc3b61900, 0xc3b61aff, REGISTRY_RIPENCC }, // 195.182.25.0 - 195.182.26.255 { 0xc3b61b00, 0xc3b61bff, REGISTRY_RIPENCC }, // 195.182.27.0 - 195.182.27.255 { 0xc3b61c00, 0xc3b61cff, REGISTRY_RIPENCC }, // 195.182.28.0 - 195.182.28.255 { 0xc3b61d00, 0xc3b61dff, REGISTRY_RIPENCC }, // 195.182.29.0 - 195.182.29.255 { 0xc3b61e00, 0xc3b61fff, REGISTRY_RIPENCC }, // 195.182.30.0 - 195.182.31.255 { 0xc3b62000, 0xc3b621ff, REGISTRY_RIPENCC }, // 195.182.32.0 - 195.182.33.255 { 0xc3b62200, 0xc3b624ff, REGISTRY_RIPENCC }, // 195.182.34.0 - 195.182.36.255 { 0xc3b62500, 0xc3b626ff, REGISTRY_RIPENCC }, // 195.182.37.0 - 195.182.38.255 { 0xc3b62700, 0xc3b63fff, REGISTRY_RIPENCC }, // 195.182.39.0 - 195.182.63.255 { 0xc3b64000, 0xc3b6bfff, REGISTRY_RIPENCC }, // 195.182.64.0 - 195.182.191.255 { 0xc3b6c000, 0xc3b6c5ff, REGISTRY_RIPENCC }, // 195.182.192.0 - 195.182.197.255 { 0xc3b6c600, 0xc3b6c9ff, REGISTRY_RIPENCC }, // 195.182.198.0 - 195.182.201.255 { 0xc3b6ca00, 0xc3b6cbff, REGISTRY_RIPENCC }, // 195.182.202.0 - 195.182.203.255 { 0xc3b6cc00, 0xc3b6cdff, REGISTRY_RIPENCC }, // 195.182.204.0 - 195.182.205.255 { 0xc3b6ce00, 0xc3b6dfff, REGISTRY_RIPENCC }, // 195.182.206.0 - 195.182.223.255 { 0xc3b6e000, 0xc3b83fff, REGISTRY_RIPENCC }, // 195.182.224.0 - 195.184.63.255 { 0xc3b84000, 0xc3b847ff, REGISTRY_RIPENCC }, // 195.184.64.0 - 195.184.71.255 { 0xc3b84800, 0xc3b84dff, REGISTRY_RIPENCC }, // 195.184.72.0 - 195.184.77.255 { 0xc3b84e00, 0xc3b855ff, REGISTRY_RIPENCC }, // 195.184.78.0 - 195.184.85.255 { 0xc3b85600, 0xc3b857ff, REGISTRY_RIPENCC }, // 195.184.86.0 - 195.184.87.255 { 0xc3b85800, 0xc3b859ff, REGISTRY_RIPENCC }, // 195.184.88.0 - 195.184.89.255 { 0xc3b85a00, 0xc3b85bff, REGISTRY_RIPENCC }, // 195.184.90.0 - 195.184.91.255 { 0xc3b85c00, 0xc3b85fff, REGISTRY_RIPENCC }, // 195.184.92.0 - 195.184.95.255 { 0xc3b86000, 0xc3bcffff, REGISTRY_RIPENCC }, // 195.184.96.0 - 195.188.255.255 { 0xc3bd0000, 0xc3bd0bff, REGISTRY_RIPENCC }, // 195.189.0.0 - 195.189.11.255 { 0xc3bd0c00, 0xc3bd0fff, REGISTRY_RIPENCC }, // 195.189.12.0 - 195.189.15.255 { 0xc3bd1000, 0xc3bd1bff, REGISTRY_RIPENCC }, // 195.189.16.0 - 195.189.27.255 { 0xc3bd1c00, 0xc3bd1fff, REGISTRY_RIPENCC }, // 195.189.28.0 - 195.189.31.255 { 0xc3bd2000, 0xc3bd2fff, REGISTRY_RIPENCC }, // 195.189.32.0 - 195.189.47.255 { 0xc3bd3000, 0xc3bd33ff, REGISTRY_RIPENCC }, // 195.189.48.0 - 195.189.51.255 { 0xc3bd3400, 0xc3bd3fff, REGISTRY_RIPENCC }, // 195.189.52.0 - 195.189.63.255 { 0xc3bd4000, 0xc3bd43ff, REGISTRY_RIPENCC }, // 195.189.64.0 - 195.189.67.255 { 0xc3bd4400, 0xc3bd47ff, REGISTRY_RIPENCC }, // 195.189.68.0 - 195.189.71.255 { 0xc3bd4800, 0xc3bd4bff, REGISTRY_RIPENCC }, // 195.189.72.0 - 195.189.75.255 { 0xc3bd4c00, 0xc3bd5fff, REGISTRY_RIPENCC }, // 195.189.76.0 - 195.189.95.255 { 0xc3bd6000, 0xc3bd63ff, REGISTRY_RIPENCC }, // 195.189.96.0 - 195.189.99.255 { 0xc3bd6400, 0xc3bd97ff, REGISTRY_RIPENCC }, // 195.189.100.0 - 195.189.151.255 { 0xc3bd9800, 0xc3bd99ff, REGISTRY_RIPENCC }, // 195.189.152.0 - 195.189.153.255 { 0xc3bd9a00, 0xc3bd9bff, REGISTRY_RIPENCC }, // 195.189.154.0 - 195.189.155.255 { 0xc3bd9e00, 0xc3bda3ff, REGISTRY_RIPENCC }, // 195.189.158.0 - 195.189.163.255 { 0xc3bda400, 0xc3bda5ff, REGISTRY_RIPENCC }, // 195.189.164.0 - 195.189.165.255 { 0xc3bda600, 0xc3bda7ff, REGISTRY_RIPENCC }, // 195.189.166.0 - 195.189.167.255 { 0xc3bda800, 0xc3bda9ff, REGISTRY_RIPENCC }, // 195.189.168.0 - 195.189.169.255 { 0xc3bdaa00, 0xc3bdadff, REGISTRY_RIPENCC }, // 195.189.170.0 - 195.189.173.255 { 0xc3bdae00, 0xc3bdafff, REGISTRY_RIPENCC }, // 195.189.174.0 - 195.189.175.255 { 0xc3bdb000, 0xc3bdb7ff, REGISTRY_RIPENCC }, // 195.189.176.0 - 195.189.183.255 { 0xc3bdb800, 0xc3bdb9ff, REGISTRY_RIPENCC }, // 195.189.184.0 - 195.189.185.255 { 0xc3bdba00, 0xc3bdbdff, REGISTRY_RIPENCC }, // 195.189.186.0 - 195.189.189.255 { 0xc3bdbe00, 0xc3bdbfff, REGISTRY_RIPENCC }, // 195.189.190.0 - 195.189.191.255 { 0xc3bdc000, 0xc3bdc9ff, REGISTRY_RIPENCC }, // 195.189.192.0 - 195.189.201.255 { 0xc3bdca00, 0xc3bdcbff, REGISTRY_RIPENCC }, // 195.189.202.0 - 195.189.203.255 { 0xc3bdcc00, 0xc3bdcfff, REGISTRY_RIPENCC }, // 195.189.204.0 - 195.189.207.255 { 0xc3bdd000, 0xc3bdd1ff, REGISTRY_RIPENCC }, // 195.189.208.0 - 195.189.209.255 { 0xc3bdd200, 0xc3bdf3ff, REGISTRY_RIPENCC }, // 195.189.210.0 - 195.189.243.255 { 0xc3bdf400, 0xc3bdf5ff, REGISTRY_RIPENCC }, // 195.189.244.0 - 195.189.245.255 { 0xc3bdf600, 0xc3be1fff, REGISTRY_RIPENCC }, // 195.189.246.0 - 195.190.31.255 { 0xc3be2000, 0xc3be7fff, REGISTRY_RIPENCC }, // 195.190.32.0 - 195.190.127.255 { 0xc3be8000, 0xc3be81ff, REGISTRY_RIPENCC }, // 195.190.128.0 - 195.190.129.255 { 0xc3be8200, 0xc3be82ff, REGISTRY_RIPENCC }, // 195.190.130.0 - 195.190.130.255 { 0xc3be8300, 0xc3be8aff, REGISTRY_RIPENCC }, // 195.190.131.0 - 195.190.138.255 { 0xc3be8b00, 0xc3be8bff, REGISTRY_RIPENCC }, // 195.190.139.0 - 195.190.139.255 { 0xc3be8c00, 0xc3be8fff, REGISTRY_RIPENCC }, // 195.190.140.0 - 195.190.143.255 { 0xc3be9000, 0xc3be90ff, REGISTRY_RIPENCC }, // 195.190.144.0 - 195.190.144.255 { 0xc3be9100, 0xc3be94ff, REGISTRY_RIPENCC }, // 195.190.145.0 - 195.190.148.255 { 0xc3be9500, 0xc3be96ff, REGISTRY_RIPENCC }, // 195.190.149.0 - 195.190.150.255 { 0xc3be9700, 0xc3be99ff, REGISTRY_RIPENCC }, // 195.190.151.0 - 195.190.153.255 { 0xc3be9a00, 0xc3be9aff, REGISTRY_RIPENCC }, // 195.190.154.0 - 195.190.154.255 { 0xc3be9b00, 0xc3be9cff, REGISTRY_RIPENCC }, // 195.190.155.0 - 195.190.156.255 { 0xc3be9d00, 0xc3be9dff, REGISTRY_RIPENCC }, // 195.190.157.0 - 195.190.157.255 { 0xc3be9e00, 0xc3be9fff, REGISTRY_RIPENCC }, // 195.190.158.0 - 195.190.159.255 { 0xc3bea000, 0xc3bedfff, REGISTRY_RIPENCC }, // 195.190.160.0 - 195.190.223.255 { 0xc3bee000, 0xc3bf15ff, REGISTRY_RIPENCC }, // 195.190.224.0 - 195.191.21.255 { 0xc3bf1600, 0xc3bf17ff, REGISTRY_RIPENCC }, // 195.191.22.0 - 195.191.23.255 { 0xc3bf1800, 0xc3bf2bff, REGISTRY_RIPENCC }, // 195.191.24.0 - 195.191.43.255 { 0xc3bf2c00, 0xc3bf2dff, REGISTRY_RIPENCC }, // 195.191.44.0 - 195.191.45.255 { 0xc3bf2e00, 0xc3bf2fff, REGISTRY_RIPENCC }, // 195.191.46.0 - 195.191.47.255 { 0xc3bf3000, 0xc3bf31ff, REGISTRY_RIPENCC }, // 195.191.48.0 - 195.191.49.255 { 0xc3bf3200, 0xc3bf35ff, REGISTRY_RIPENCC }, // 195.191.50.0 - 195.191.53.255 { 0xc3bf3600, 0xc3bf39ff, REGISTRY_RIPENCC }, // 195.191.54.0 - 195.191.57.255 { 0xc3bf3a00, 0xc3bf59ff, REGISTRY_RIPENCC }, // 195.191.58.0 - 195.191.89.255 { 0xc3bf5a00, 0xc3bf5bff, REGISTRY_RIPENCC }, // 195.191.90.0 - 195.191.91.255 { 0xc3bf5c00, 0xc3bf61ff, REGISTRY_RIPENCC }, // 195.191.92.0 - 195.191.97.255 { 0xc3bf6200, 0xc3bf63ff, REGISTRY_RIPENCC }, // 195.191.98.0 - 195.191.99.255 { 0xc3bf6400, 0xc3bf69ff, REGISTRY_RIPENCC }, // 195.191.100.0 - 195.191.105.255 { 0xc3bf6a00, 0xc3bf6bff, REGISTRY_RIPENCC }, // 195.191.106.0 - 195.191.107.255 { 0xc3bf6c00, 0xc3bf71ff, REGISTRY_RIPENCC }, // 195.191.108.0 - 195.191.113.255 { 0xc3bf7200, 0xc3bf73ff, REGISTRY_RIPENCC }, // 195.191.114.0 - 195.191.115.255 { 0xc3bf7400, 0xc3bf77ff, REGISTRY_RIPENCC }, // 195.191.116.0 - 195.191.119.255 { 0xc3bf7800, 0xc3bf79ff, REGISTRY_RIPENCC }, // 195.191.120.0 - 195.191.121.255 { 0xc3bf7a00, 0xc3bf7fff, REGISTRY_RIPENCC }, // 195.191.122.0 - 195.191.127.255 { 0xc3bf8000, 0xc3bf81ff, REGISTRY_RIPENCC }, // 195.191.128.0 - 195.191.129.255 { 0xc3bf8200, 0xc3bf8bff, REGISTRY_RIPENCC }, // 195.191.130.0 - 195.191.139.255 { 0xc3bf8c00, 0xc3bf8dff, REGISTRY_RIPENCC }, // 195.191.140.0 - 195.191.141.255 { 0xc3bf8e00, 0xc3bf91ff, REGISTRY_RIPENCC }, // 195.191.142.0 - 195.191.145.255 { 0xc3bf9200, 0xc3bf93ff, REGISTRY_RIPENCC }, // 195.191.146.0 - 195.191.147.255 { 0xc3bf9400, 0xc3bfa3ff, REGISTRY_RIPENCC }, // 195.191.148.0 - 195.191.163.255 { 0xc3bfa400, 0xc3bfa5ff, REGISTRY_RIPENCC }, // 195.191.164.0 - 195.191.165.255 { 0xc3bfa600, 0xc3bfabff, REGISTRY_RIPENCC }, // 195.191.166.0 - 195.191.171.255 { 0xc3bfac00, 0xc3bfadff, REGISTRY_RIPENCC }, // 195.191.172.0 - 195.191.173.255 { 0xc3bfae00, 0xc3bfafff, REGISTRY_RIPENCC }, // 195.191.174.0 - 195.191.175.255 { 0xc3bfb000, 0xc3bfb1ff, REGISTRY_RIPENCC }, // 195.191.176.0 - 195.191.177.255 { 0xc3bfb200, 0xc3bfc5ff, REGISTRY_RIPENCC }, // 195.191.178.0 - 195.191.197.255 { 0xc3bfc600, 0xc3bfc7ff, REGISTRY_RIPENCC }, // 195.191.198.0 - 195.191.199.255 { 0xc3bfc800, 0xc3bfcdff, REGISTRY_RIPENCC }, // 195.191.200.0 - 195.191.205.255 { 0xc3bfce00, 0xc3bfcfff, REGISTRY_RIPENCC }, // 195.191.206.0 - 195.191.207.255 { 0xc3bfd000, 0xc3bfd9ff, REGISTRY_RIPENCC }, // 195.191.208.0 - 195.191.217.255 { 0xc3bfda00, 0xc3bfdbff, REGISTRY_RIPENCC }, // 195.191.218.0 - 195.191.219.255 { 0xc3bfdc00, 0xc3bfe5ff, REGISTRY_RIPENCC }, // 195.191.220.0 - 195.191.229.255 { 0xc3bfe600, 0xc3bfe7ff, REGISTRY_RIPENCC }, // 195.191.230.0 - 195.191.231.255 { 0xc3bfe800, 0xc3bfffff, REGISTRY_RIPENCC }, // 195.191.232.0 - 195.191.255.255 { 0xc3c00000, 0xc3c83fff, REGISTRY_RIPENCC }, // 195.192.0.0 - 195.200.63.255 { 0xc3c84000, 0xc3c841ff, REGISTRY_RIPENCC }, // 195.200.64.0 - 195.200.65.255 { 0xc3c84200, 0xc3c843ff, REGISTRY_RIPENCC }, // 195.200.66.0 - 195.200.67.255 { 0xc3c84600, 0xc3c85bff, REGISTRY_RIPENCC }, // 195.200.70.0 - 195.200.91.255 { 0xc3c85c00, 0xc3c85dff, REGISTRY_RIPENCC }, // 195.200.92.0 - 195.200.93.255 { 0xc3c85e00, 0xc3c85fff, REGISTRY_RIPENCC }, // 195.200.94.0 - 195.200.95.255 { 0xc3c86000, 0xc3c8bfff, REGISTRY_RIPENCC }, // 195.200.96.0 - 195.200.191.255 { 0xc3c8c000, 0xc3c8d1ff, REGISTRY_RIPENCC }, // 195.200.192.0 - 195.200.209.255 { 0xc3c8d200, 0xc3c8d2ff, REGISTRY_RIPENCC }, // 195.200.210.0 - 195.200.210.255 { 0xc3c8d300, 0xc3c8d6ff, REGISTRY_RIPENCC }, // 195.200.211.0 - 195.200.214.255 { 0xc3c8d700, 0xc3c8d7ff, REGISTRY_RIPENCC }, // 195.200.215.0 - 195.200.215.255 { 0xc3c8d800, 0xc3c8daff, REGISTRY_RIPENCC }, // 195.200.216.0 - 195.200.218.255 { 0xc3c8db00, 0xc3c8dbff, REGISTRY_RIPENCC }, // 195.200.219.0 - 195.200.219.255 { 0xc3c8dc00, 0xc3c8dcff, REGISTRY_RIPENCC }, // 195.200.220.0 - 195.200.220.255 { 0xc3c8dd00, 0xc3c8ddff, REGISTRY_RIPENCC }, // 195.200.221.0 - 195.200.221.255 { 0xc3c8de00, 0xc3c8e7ff, REGISTRY_RIPENCC }, // 195.200.222.0 - 195.200.231.255 { 0xc3c8e800, 0xc3c8ebff, REGISTRY_RIPENCC }, // 195.200.232.0 - 195.200.235.255 { 0xc3c8ec00, 0xc3c8fbff, REGISTRY_RIPENCC }, // 195.200.236.0 - 195.200.251.255 { 0xc3c8fc00, 0xc3c8fdff, REGISTRY_RIPENCC }, // 195.200.252.0 - 195.200.253.255 { 0xc3c8fe00, 0xc3c8ffff, REGISTRY_RIPENCC }, // 195.200.254.0 - 195.200.255.255 { 0xc3c90000, 0xc3ca3fff, REGISTRY_RIPENCC }, // 195.201.0.0 - 195.202.63.255 { 0xc3ca4000, 0xc3ca5fff, REGISTRY_AFRINIC }, // 195.202.64.0 - 195.202.95.255 { 0xc3ca6000, 0xc3ce5fff, REGISTRY_RIPENCC }, // 195.202.96.0 - 195.206.95.255 { 0xc3ce6000, 0xc3ce67ff, REGISTRY_RIPENCC }, // 195.206.96.0 - 195.206.103.255 { 0xc3ce6800, 0xc3ce6fff, REGISTRY_RIPENCC }, // 195.206.104.0 - 195.206.111.255 { 0xc3ce7000, 0xc3ce7fff, REGISTRY_RIPENCC }, // 195.206.112.0 - 195.206.127.255 { 0xc3ce8000, 0xc3cedfff, REGISTRY_RIPENCC }, // 195.206.128.0 - 195.206.223.255 { 0xc3cee000, 0xc3cee5ff, REGISTRY_RIPENCC }, // 195.206.224.0 - 195.206.229.255 { 0xc3cee600, 0xc3cee7ff, REGISTRY_RIPENCC }, // 195.206.230.0 - 195.206.231.255 { 0xc3cee800, 0xc3cee9ff, REGISTRY_RIPENCC }, // 195.206.232.0 - 195.206.233.255 { 0xc3ceea00, 0xc3ceedff, REGISTRY_RIPENCC }, // 195.206.234.0 - 195.206.237.255 { 0xc3ceee00, 0xc3cef1ff, REGISTRY_RIPENCC }, // 195.206.238.0 - 195.206.241.255 { 0xc3cef200, 0xc3cef3ff, REGISTRY_RIPENCC }, // 195.206.242.0 - 195.206.243.255 { 0xc3cef400, 0xc3cef5ff, REGISTRY_RIPENCC }, // 195.206.244.0 - 195.206.245.255 { 0xc3cef600, 0xc3cef7ff, REGISTRY_RIPENCC }, // 195.206.246.0 - 195.206.247.255 { 0xc3cef800, 0xc3cefbff, REGISTRY_RIPENCC }, // 195.206.248.0 - 195.206.251.255 { 0xc3cefc00, 0xc3cefdff, REGISTRY_RIPENCC }, // 195.206.252.0 - 195.206.253.255 { 0xc3cefe00, 0xc3ceffff, REGISTRY_RIPENCC }, // 195.206.254.0 - 195.206.255.255 { 0xc3cf0000, 0xc3d1ffff, REGISTRY_RIPENCC }, // 195.207.0.0 - 195.209.255.255 { 0xc3d20000, 0xc3d21fff, REGISTRY_RIPENCC }, // 195.210.0.0 - 195.210.31.255 { 0xc3d22200, 0xc3d22dff, REGISTRY_RIPENCC }, // 195.210.34.0 - 195.210.45.255 { 0xc3d22e00, 0xc3d22fff, REGISTRY_RIPENCC }, // 195.210.46.0 - 195.210.47.255 { 0xc3d23000, 0xc3d239ff, REGISTRY_RIPENCC }, // 195.210.48.0 - 195.210.57.255 { 0xc3d23a00, 0xc3d23bff, REGISTRY_RIPENCC }, // 195.210.58.0 - 195.210.59.255 { 0xc3d23c00, 0xc3d23fff, REGISTRY_RIPENCC }, // 195.210.60.0 - 195.210.63.255 { 0xc3d24000, 0xc3d2ffff, REGISTRY_RIPENCC }, // 195.210.64.0 - 195.210.255.255 { 0xc3d30000, 0xc3d303ff, REGISTRY_RIPENCC }, // 195.211.0.0 - 195.211.3.255 { 0xc3d30400, 0xc3d307ff, REGISTRY_RIPENCC }, // 195.211.4.0 - 195.211.7.255 { 0xc3d30800, 0xc3d313ff, REGISTRY_RIPENCC }, // 195.211.8.0 - 195.211.19.255 { 0xc3d31400, 0xc3d317ff, REGISTRY_RIPENCC }, // 195.211.20.0 - 195.211.23.255 { 0xc3d31800, 0xc3d31bff, REGISTRY_RIPENCC }, // 195.211.24.0 - 195.211.27.255 { 0xc3d31c00, 0xc3d31fff, REGISTRY_RIPENCC }, // 195.211.28.0 - 195.211.31.255 { 0xc3d32000, 0xc3d32bff, REGISTRY_RIPENCC }, // 195.211.32.0 - 195.211.43.255 { 0xc3d32c00, 0xc3d333ff, REGISTRY_RIPENCC }, // 195.211.44.0 - 195.211.51.255 { 0xc3d33400, 0xc3d337ff, REGISTRY_RIPENCC }, // 195.211.52.0 - 195.211.55.255 { 0xc3d33800, 0xc3d33bff, REGISTRY_RIPENCC }, // 195.211.56.0 - 195.211.59.255 { 0xc3d33c00, 0xc3d34fff, REGISTRY_RIPENCC }, // 195.211.60.0 - 195.211.79.255 { 0xc3d35000, 0xc3d353ff, REGISTRY_RIPENCC }, // 195.211.80.0 - 195.211.83.255 { 0xc3d35400, 0xc3d37bff, REGISTRY_RIPENCC }, // 195.211.84.0 - 195.211.123.255 { 0xc3d38000, 0xc3d3a3ff, REGISTRY_RIPENCC }, // 195.211.128.0 - 195.211.163.255 { 0xc3d3a400, 0xc3d3abff, REGISTRY_RIPENCC }, // 195.211.164.0 - 195.211.171.255 { 0xc3d3ac00, 0xc3d3ffff, REGISTRY_RIPENCC }, // 195.211.172.0 - 195.211.255.255 { 0xc3d40000, 0xc3d6bfff, REGISTRY_RIPENCC }, // 195.212.0.0 - 195.214.191.255 { 0xc3d6c000, 0xc3d6cfff, REGISTRY_RIPENCC }, // 195.214.192.0 - 195.214.207.255 { 0xc3d6d000, 0xc3d6d7ff, REGISTRY_RIPENCC }, // 195.214.208.0 - 195.214.215.255 { 0xc3d6d800, 0xc3d6eaff, REGISTRY_RIPENCC }, // 195.214.216.0 - 195.214.234.255 { 0xc3d6eb00, 0xc3d6ebff, REGISTRY_RIPENCC }, // 195.214.235.0 - 195.214.235.255 { 0xc3d6ec00, 0xc3d6efff, REGISTRY_RIPENCC }, // 195.214.236.0 - 195.214.239.255 { 0xc3d6f000, 0xc3d6f7ff, REGISTRY_RIPENCC }, // 195.214.240.0 - 195.214.247.255 { 0xc3d6f800, 0xc3d6ffff, REGISTRY_RIPENCC }, // 195.214.248.0 - 195.214.255.255 { 0xc3d70000, 0xc3d8bfff, REGISTRY_RIPENCC }, // 195.215.0.0 - 195.216.191.255 { 0xc3d8c000, 0xc3d8c3ff, REGISTRY_RIPENCC }, // 195.216.192.0 - 195.216.195.255 { 0xc3d8c400, 0xc3d8c5ff, REGISTRY_RIPENCC }, // 195.216.196.0 - 195.216.197.255 { 0xc3d8c600, 0xc3d8c9ff, REGISTRY_RIPENCC }, // 195.216.198.0 - 195.216.201.255 { 0xc3d8ca00, 0xc3d8cbff, REGISTRY_RIPENCC }, // 195.216.202.0 - 195.216.203.255 { 0xc3d8cc00, 0xc3d8cfff, REGISTRY_RIPENCC }, // 195.216.204.0 - 195.216.207.255 { 0xc3d8d000, 0xc3d8d1ff, REGISTRY_RIPENCC }, // 195.216.208.0 - 195.216.209.255 { 0xc3d8d200, 0xc3d8daff, REGISTRY_RIPENCC }, // 195.216.210.0 - 195.216.218.255 { 0xc3d8db00, 0xc3d8dbff, REGISTRY_RIPENCC }, // 195.216.219.0 - 195.216.219.255 { 0xc3d8dc00, 0xc3d8e5ff, REGISTRY_RIPENCC }, // 195.216.220.0 - 195.216.229.255 { 0xc3d8e600, 0xc3d8e6ff, REGISTRY_RIPENCC }, // 195.216.230.0 - 195.216.230.255 { 0xc3d8e700, 0xc3d8e9ff, REGISTRY_RIPENCC }, // 195.216.231.0 - 195.216.233.255 { 0xc3d8ea00, 0xc3d8eaff, REGISTRY_RIPENCC }, // 195.216.234.0 - 195.216.234.255 { 0xc3d8eb00, 0xc3d8edff, REGISTRY_RIPENCC }, // 195.216.235.0 - 195.216.237.255 { 0xc3d8ee00, 0xc3d8eeff, REGISTRY_RIPENCC }, // 195.216.238.0 - 195.216.238.255 { 0xc3d8ef00, 0xc3d8f4ff, REGISTRY_RIPENCC }, // 195.216.239.0 - 195.216.244.255 { 0xc3d8f500, 0xc3d8f5ff, REGISTRY_RIPENCC }, // 195.216.245.0 - 195.216.245.255 { 0xc3d8f600, 0xc3d8f6ff, REGISTRY_RIPENCC }, // 195.216.246.0 - 195.216.246.255 { 0xc3d8f700, 0xc3d8f8ff, REGISTRY_RIPENCC }, // 195.216.247.0 - 195.216.248.255 { 0xc3d8f900, 0xc3d8ffff, REGISTRY_RIPENCC }, // 195.216.249.0 - 195.216.255.255 { 0xc3d90000, 0xc3de5fff, REGISTRY_RIPENCC }, // 195.217.0.0 - 195.222.95.255 { 0xc3de6000, 0xc3de7fff, REGISTRY_RIPENCC }, // 195.222.96.0 - 195.222.127.255 { 0xc3de8000, 0xc3e11fff, REGISTRY_RIPENCC }, // 195.222.128.0 - 195.225.31.255 { 0xc3e12000, 0xc3e123ff, REGISTRY_RIPENCC }, // 195.225.32.0 - 195.225.35.255 { 0xc3e12400, 0xc3e125ff, REGISTRY_RIPENCC }, // 195.225.36.0 - 195.225.37.255 { 0xc3e12600, 0xc3e13dff, REGISTRY_RIPENCC }, // 195.225.38.0 - 195.225.61.255 { 0xc3e13e00, 0xc3e143ff, REGISTRY_RIPENCC }, // 195.225.62.0 - 195.225.67.255 { 0xc3e14400, 0xc3e14fff, REGISTRY_RIPENCC }, // 195.225.68.0 - 195.225.79.255 { 0xc3e15000, 0xc3e153ff, REGISTRY_RIPENCC }, // 195.225.80.0 - 195.225.83.255 { 0xc3e15400, 0xc3e15fff, REGISTRY_RIPENCC }, // 195.225.84.0 - 195.225.95.255 { 0xc3e16000, 0xc3e16bff, REGISTRY_RIPENCC }, // 195.225.96.0 - 195.225.107.255 { 0xc3e16c00, 0xc3e183ff, REGISTRY_RIPENCC }, // 195.225.108.0 - 195.225.131.255 { 0xc3e18400, 0xc3e187ff, REGISTRY_RIPENCC }, // 195.225.132.0 - 195.225.135.255 { 0xc3e18800, 0xc3e193ff, REGISTRY_RIPENCC }, // 195.225.136.0 - 195.225.147.255 { 0xc3e19400, 0xc3e197ff, REGISTRY_RIPENCC }, // 195.225.148.0 - 195.225.151.255 { 0xc3e19800, 0xc3e1afff, REGISTRY_RIPENCC }, // 195.225.152.0 - 195.225.175.255 { 0xc3e1b000, 0xc3e1b7ff, REGISTRY_RIPENCC }, // 195.225.176.0 - 195.225.183.255 { 0xc3e1b800, 0xc3e1bfff, REGISTRY_RIPENCC }, // 195.225.184.0 - 195.225.191.255 { 0xc3e1c000, 0xc3e1c3ff, REGISTRY_RIPENCC }, // 195.225.192.0 - 195.225.195.255 { 0xc3e1c400, 0xc3e1c7ff, REGISTRY_RIPENCC }, // 195.225.196.0 - 195.225.199.255 { 0xc3e1c800, 0xc3e1cbff, REGISTRY_RIPENCC }, // 195.225.200.0 - 195.225.203.255 { 0xc3e1cc00, 0xc3e1dbff, REGISTRY_RIPENCC }, // 195.225.204.0 - 195.225.219.255 { 0xc3e1dc00, 0xc3e1e8ff, REGISTRY_RIPENCC }, // 195.225.220.0 - 195.225.232.255 { 0xc3e1e900, 0xc3e1e9ff, REGISTRY_RIPENCC }, // 195.225.233.0 - 195.225.233.255 { 0xc3e1ea00, 0xc3e1ebff, REGISTRY_RIPENCC }, // 195.225.234.0 - 195.225.235.255 { 0xc3e1ec00, 0xc3e1efff, REGISTRY_RIPENCC }, // 195.225.236.0 - 195.225.239.255 { 0xc3e1f000, 0xc3e1f3ff, REGISTRY_RIPENCC }, // 195.225.240.0 - 195.225.243.255 { 0xc3e1f400, 0xc3e1f7ff, REGISTRY_RIPENCC }, // 195.225.244.0 - 195.225.247.255 { 0xc3e1f800, 0xc3e1fbff, REGISTRY_RIPENCC }, // 195.225.248.0 - 195.225.251.255 { 0xc3e1fc00, 0xc3e1ffff, REGISTRY_RIPENCC }, // 195.225.252.0 - 195.225.255.255 { 0xc3e20000, 0xc3e2bfff, REGISTRY_RIPENCC }, // 195.226.0.0 - 195.226.191.255 { 0xc3e2c000, 0xc3e2c1ff, REGISTRY_RIPENCC }, // 195.226.192.0 - 195.226.193.255 { 0xc3e2c200, 0xc3e2c2ff, REGISTRY_RIPENCC }, // 195.226.194.0 - 195.226.194.255 { 0xc3e2c300, 0xc3e2c4ff, REGISTRY_RIPENCC }, // 195.226.195.0 - 195.226.196.255 { 0xc3e2c500, 0xc3e2c5ff, REGISTRY_RIPENCC }, // 195.226.197.0 - 195.226.197.255 { 0xc3e2c600, 0xc3e2ccff, REGISTRY_RIPENCC }, // 195.226.198.0 - 195.226.204.255 { 0xc3e2cd00, 0xc3e2cdff, REGISTRY_RIPENCC }, // 195.226.205.0 - 195.226.205.255 { 0xc3e2ce00, 0xc3e2ceff, REGISTRY_RIPENCC }, // 195.226.206.0 - 195.226.206.255 { 0xc3e2cf00, 0xc3e2cfff, REGISTRY_RIPENCC }, // 195.226.207.0 - 195.226.207.255 { 0xc3e2d000, 0xc3e2d2ff, REGISTRY_RIPENCC }, // 195.226.208.0 - 195.226.210.255 { 0xc3e2d300, 0xc3e2d3ff, REGISTRY_RIPENCC }, // 195.226.211.0 - 195.226.211.255 { 0xc3e2d400, 0xc3e2d6ff, REGISTRY_RIPENCC }, // 195.226.212.0 - 195.226.214.255 { 0xc3e2d700, 0xc3e2d8ff, REGISTRY_RIPENCC }, // 195.226.215.0 - 195.226.216.255 { 0xc3e2d900, 0xc3e2d9ff, REGISTRY_RIPENCC }, // 195.226.217.0 - 195.226.217.255 { 0xc3e2da00, 0xc3e2daff, REGISTRY_RIPENCC }, // 195.226.218.0 - 195.226.218.255 { 0xc3e2dc00, 0xc3e2dcff, REGISTRY_RIPENCC }, // 195.226.220.0 - 195.226.220.255 { 0xc3e2dd00, 0xc3e2deff, REGISTRY_RIPENCC }, // 195.226.221.0 - 195.226.222.255 { 0xc3e2df00, 0xc3e65fff, REGISTRY_RIPENCC }, // 195.226.223.0 - 195.230.95.255 { 0xc3e66000, 0xc3e660ff, REGISTRY_RIPENCC }, // 195.230.96.0 - 195.230.96.255 { 0xc3e66100, 0xc3e661ff, REGISTRY_RIPENCC }, // 195.230.97.0 - 195.230.97.255 { 0xc3e66200, 0xc3e666ff, REGISTRY_RIPENCC }, // 195.230.98.0 - 195.230.102.255 { 0xc3e66700, 0xc3e667ff, REGISTRY_RIPENCC }, // 195.230.103.0 - 195.230.103.255 { 0xc3e66800, 0xc3e668ff, REGISTRY_RIPENCC }, // 195.230.104.0 - 195.230.104.255 { 0xc3e66900, 0xc3e669ff, REGISTRY_RIPENCC }, // 195.230.105.0 - 195.230.105.255 { 0xc3e66a00, 0xc3e66aff, REGISTRY_RIPENCC }, // 195.230.106.0 - 195.230.106.255 { 0xc3e66b00, 0xc3e66cff, REGISTRY_RIPENCC }, // 195.230.107.0 - 195.230.108.255 { 0xc3e66d00, 0xc3e67aff, REGISTRY_RIPENCC }, // 195.230.109.0 - 195.230.122.255 { 0xc3e67b00, 0xc3e67cff, REGISTRY_RIPENCC }, // 195.230.123.0 - 195.230.124.255 { 0xc3e67d00, 0xc3e67eff, REGISTRY_RIPENCC }, // 195.230.125.0 - 195.230.126.255 { 0xc3e67f00, 0xc3e9ffff, REGISTRY_RIPENCC }, // 195.230.127.0 - 195.233.255.255 { 0xc3ea0000, 0xc3ea17ff, REGISTRY_RIPENCC }, // 195.234.0.0 - 195.234.23.255 { 0xc3ea1800, 0xc3ea1dff, REGISTRY_RIPENCC }, // 195.234.24.0 - 195.234.29.255 { 0xc3ea1e00, 0xc3ea30ff, REGISTRY_RIPENCC }, // 195.234.30.0 - 195.234.48.255 { 0xc3ea3100, 0xc3ea31ff, REGISTRY_RIPENCC }, // 195.234.49.0 - 195.234.49.255 { 0xc3ea3200, 0xc3ea33ff, REGISTRY_RIPENCC }, // 195.234.50.0 - 195.234.51.255 { 0xc3ea3400, 0xc3ea34ff, REGISTRY_RIPENCC }, // 195.234.52.0 - 195.234.52.255 { 0xc3ea3500, 0xc3ea3dff, REGISTRY_RIPENCC }, // 195.234.53.0 - 195.234.61.255 { 0xc3ea3e00, 0xc3ea3fff, REGISTRY_RIPENCC }, // 195.234.62.0 - 195.234.63.255 { 0xc3ea4000, 0xc3ea51ff, REGISTRY_RIPENCC }, // 195.234.64.0 - 195.234.81.255 { 0xc3ea5200, 0xc3ea53ff, REGISTRY_RIPENCC }, // 195.234.82.0 - 195.234.83.255 { 0xc3ea5400, 0xc3ea57ff, REGISTRY_RIPENCC }, // 195.234.84.0 - 195.234.87.255 { 0xc3ea5800, 0xc3ea5fff, REGISTRY_RIPENCC }, // 195.234.88.0 - 195.234.95.255 { 0xc3ea6000, 0xc3ea61ff, REGISTRY_RIPENCC }, // 195.234.96.0 - 195.234.97.255 { 0xc3ea6200, 0xc3ea63ff, REGISTRY_RIPENCC }, // 195.234.98.0 - 195.234.99.255 { 0xc3ea6400, 0xc3ea6bff, REGISTRY_RIPENCC }, // 195.234.100.0 - 195.234.107.255 { 0xc3ea6c00, 0xc3ea6fff, REGISTRY_RIPENCC }, // 195.234.108.0 - 195.234.111.255 { 0xc3ea7000, 0xc3ea77ff, REGISTRY_RIPENCC }, // 195.234.112.0 - 195.234.119.255 { 0xc3ea7800, 0xc3ea7bff, REGISTRY_AFRINIC }, // 195.234.120.0 - 195.234.123.255 { 0xc3ea7c00, 0xc3ea7fff, REGISTRY_RIPENCC }, // 195.234.124.0 - 195.234.127.255 { 0xc3ea8000, 0xc3ea81ff, REGISTRY_RIPENCC }, // 195.234.128.0 - 195.234.129.255 { 0xc3ea8200, 0xc3ea82ff, REGISTRY_RIPENCC }, // 195.234.130.0 - 195.234.130.255 { 0xc3ea8300, 0xc3ea8bff, REGISTRY_RIPENCC }, // 195.234.131.0 - 195.234.139.255 { 0xc3ea8c00, 0xc3ea8cff, REGISTRY_RIPENCC }, // 195.234.140.0 - 195.234.140.255 { 0xc3ea8d00, 0xc3ea8eff, REGISTRY_RIPENCC }, // 195.234.141.0 - 195.234.142.255 { 0xc3ea8f00, 0xc3ea8fff, REGISTRY_RIPENCC }, // 195.234.143.0 - 195.234.143.255 { 0xc3ea9000, 0xc3ea92ff, REGISTRY_RIPENCC }, // 195.234.144.0 - 195.234.146.255 { 0xc3ea9300, 0xc3ea93ff, REGISTRY_RIPENCC }, // 195.234.147.0 - 195.234.147.255 { 0xc3ea9400, 0xc3ea98ff, REGISTRY_RIPENCC }, // 195.234.148.0 - 195.234.152.255 { 0xc3ea9900, 0xc3ea9aff, REGISTRY_RIPENCC }, // 195.234.153.0 - 195.234.154.255 { 0xc3ea9b00, 0xc3ea9bff, REGISTRY_RIPENCC }, // 195.234.155.0 - 195.234.155.255 { 0xc3ea9c00, 0xc3ea9dff, REGISTRY_RIPENCC }, // 195.234.156.0 - 195.234.157.255 { 0xc3ea9e00, 0xc3ea9eff, REGISTRY_RIPENCC }, // 195.234.158.0 - 195.234.158.255 { 0xc3ea9f00, 0xc3ea9fff, REGISTRY_RIPENCC }, // 195.234.159.0 - 195.234.159.255 { 0xc3eaa000, 0xc3eaa0ff, REGISTRY_RIPENCC }, // 195.234.160.0 - 195.234.160.255 { 0xc3eaa100, 0xc3eaa1ff, REGISTRY_RIPENCC }, // 195.234.161.0 - 195.234.161.255 { 0xc3eaa200, 0xc3eaa7ff, REGISTRY_RIPENCC }, // 195.234.162.0 - 195.234.167.255 { 0xc3eaa800, 0xc3eaa8ff, REGISTRY_AFRINIC }, // 195.234.168.0 - 195.234.168.255 { 0xc3eaa900, 0xc3eaa9ff, REGISTRY_RIPENCC }, // 195.234.169.0 - 195.234.169.255 { 0xc3eaaa00, 0xc3eab2ff, REGISTRY_RIPENCC }, // 195.234.170.0 - 195.234.178.255 { 0xc3eab300, 0xc3eab3ff, REGISTRY_RIPENCC }, // 195.234.179.0 - 195.234.179.255 { 0xc3eab400, 0xc3eab4ff, REGISTRY_RIPENCC }, // 195.234.180.0 - 195.234.180.255 { 0xc3eab500, 0xc3eab5ff, REGISTRY_RIPENCC }, // 195.234.181.0 - 195.234.181.255 { 0xc3eab600, 0xc3eab8ff, REGISTRY_RIPENCC }, // 195.234.182.0 - 195.234.184.255 { 0xc3eab900, 0xc3eab9ff, REGISTRY_AFRINIC }, // 195.234.185.0 - 195.234.185.255 { 0xc3eaba00, 0xc3eabcff, REGISTRY_RIPENCC }, // 195.234.186.0 - 195.234.188.255 { 0xc3eabd00, 0xc3eabdff, REGISTRY_RIPENCC }, // 195.234.189.0 - 195.234.189.255 { 0xc3eabe00, 0xc3eabeff, REGISTRY_RIPENCC }, // 195.234.190.0 - 195.234.190.255 { 0xc3eabf00, 0xc3eabfff, REGISTRY_RIPENCC }, // 195.234.191.0 - 195.234.191.255 { 0xc3eac000, 0xc3eafbff, REGISTRY_RIPENCC }, // 195.234.192.0 - 195.234.251.255 { 0xc3eafc00, 0xc3eaffff, REGISTRY_AFRINIC }, // 195.234.252.0 - 195.234.255.255 { 0xc3eb0000, 0xc3edffff, REGISTRY_RIPENCC }, // 195.235.0.0 - 195.237.255.255 { 0xc3ee0000, 0xc3ee1fff, REGISTRY_RIPENCC }, // 195.238.0.0 - 195.238.31.255 { 0xc3ee2000, 0xc3ee3fff, REGISTRY_RIPENCC }, // 195.238.32.0 - 195.238.63.255 { 0xc3ee4000, 0xc3ee43ff, REGISTRY_RIPENCC }, // 195.238.64.0 - 195.238.67.255 { 0xc3ee4400, 0xc3ee45ff, REGISTRY_RIPENCC }, // 195.238.68.0 - 195.238.69.255 { 0xc3ee4600, 0xc3ee4dff, REGISTRY_RIPENCC }, // 195.238.70.0 - 195.238.77.255 { 0xc3ee4e00, 0xc3ee4fff, REGISTRY_RIPENCC }, // 195.238.78.0 - 195.238.79.255 { 0xc3ee5000, 0xc3ee55ff, REGISTRY_RIPENCC }, // 195.238.80.0 - 195.238.85.255 { 0xc3ee5600, 0xc3ee57ff, REGISTRY_RIPENCC }, // 195.238.86.0 - 195.238.87.255 { 0xc3ee5800, 0xc3ee5dff, REGISTRY_RIPENCC }, // 195.238.88.0 - 195.238.93.255 { 0xc3ee5e00, 0xc3ee5fff, REGISTRY_RIPENCC }, // 195.238.94.0 - 195.238.95.255 { 0xc3ee6000, 0xc3ee67ff, REGISTRY_RIPENCC }, // 195.238.96.0 - 195.238.103.255 { 0xc3ee6800, 0xc3ee6bff, REGISTRY_RIPENCC }, // 195.238.104.0 - 195.238.107.255 { 0xc3ee6c00, 0xc3ee77ff, REGISTRY_RIPENCC }, // 195.238.108.0 - 195.238.119.255 { 0xc3ee7800, 0xc3ee9fff, REGISTRY_RIPENCC }, // 195.238.120.0 - 195.238.159.255 { 0xc3eea000, 0xc3eebfff, REGISTRY_RIPENCC }, // 195.238.160.0 - 195.238.191.255 { 0xc3eec000, 0xc3eedfff, REGISTRY_RIPENCC }, // 195.238.192.0 - 195.238.223.255 { 0xc3eee000, 0xc3eee0ff, REGISTRY_RIPENCC }, // 195.238.224.0 - 195.238.224.255 { 0xc3eee200, 0xc3eee6ff, REGISTRY_RIPENCC }, // 195.238.226.0 - 195.238.230.255 { 0xc3eee700, 0xc3eee7ff, REGISTRY_RIPENCC }, // 195.238.231.0 - 195.238.231.255 { 0xc3eee800, 0xc3eeecff, REGISTRY_RIPENCC }, // 195.238.232.0 - 195.238.236.255 { 0xc3eeed00, 0xc3eeedff, REGISTRY_RIPENCC }, // 195.238.237.0 - 195.238.237.255 { 0xc3eeee00, 0xc3eeefff, REGISTRY_RIPENCC }, // 195.238.238.0 - 195.238.239.255 { 0xc3eef000, 0xc3eef0ff, REGISTRY_RIPENCC }, // 195.238.240.0 - 195.238.240.255 { 0xc3eef100, 0xc3eef1ff, REGISTRY_RIPENCC }, // 195.238.241.0 - 195.238.241.255 { 0xc3eef200, 0xc3eef3ff, REGISTRY_RIPENCC }, // 195.238.242.0 - 195.238.243.255 { 0xc3eef400, 0xc3eef6ff, REGISTRY_RIPENCC }, // 195.238.244.0 - 195.238.246.255 { 0xc3eef700, 0xc3eef8ff, REGISTRY_RIPENCC }, // 195.238.247.0 - 195.238.248.255 { 0xc3eef900, 0xc3eefbff, REGISTRY_RIPENCC }, // 195.238.249.0 - 195.238.251.255 { 0xc3eefc00, 0xc3eefcff, REGISTRY_RIPENCC }, // 195.238.252.0 - 195.238.252.255 { 0xc3eefd00, 0xc3eeffff, REGISTRY_RIPENCC }, // 195.238.253.0 - 195.238.255.255 { 0xc3ef0000, 0xc3f23fff, REGISTRY_RIPENCC }, // 195.239.0.0 - 195.242.63.255 { 0xc3f24000, 0xc3f247ff, REGISTRY_RIPENCC }, // 195.242.64.0 - 195.242.71.255 { 0xc3f24800, 0xc3f24bff, REGISTRY_RIPENCC }, // 195.242.72.0 - 195.242.75.255 { 0xc3f24c00, 0xc3f251ff, REGISTRY_RIPENCC }, // 195.242.76.0 - 195.242.81.255 { 0xc3f25200, 0xc3f253ff, REGISTRY_RIPENCC }, // 195.242.82.0 - 195.242.83.255 { 0xc3f25400, 0xc3f263ff, REGISTRY_RIPENCC }, // 195.242.84.0 - 195.242.99.255 { 0xc3f26400, 0xc3f267ff, REGISTRY_RIPENCC }, // 195.242.100.0 - 195.242.103.255 { 0xc3f26800, 0xc3f26dff, REGISTRY_RIPENCC }, // 195.242.104.0 - 195.242.109.255 { 0xc3f26e00, 0xc3f26fff, REGISTRY_RIPENCC }, // 195.242.110.0 - 195.242.111.255 { 0xc3f27000, 0xc3f275ff, REGISTRY_RIPENCC }, // 195.242.112.0 - 195.242.117.255 { 0xc3f27600, 0xc3f277ff, REGISTRY_RIPENCC }, // 195.242.118.0 - 195.242.119.255 { 0xc3f27800, 0xc3f291ff, REGISTRY_RIPENCC }, // 195.242.120.0 - 195.242.145.255 { 0xc3f29200, 0xc3f295ff, REGISTRY_RIPENCC }, // 195.242.146.0 - 195.242.149.255 { 0xc3f29600, 0xc3f2b0ff, REGISTRY_RIPENCC }, // 195.242.150.0 - 195.242.176.255 { 0xc3f2b100, 0xc3f2b2ff, REGISTRY_RIPENCC }, // 195.242.177.0 - 195.242.178.255 { 0xc3f2b300, 0xc3f2b5ff, REGISTRY_RIPENCC }, // 195.242.179.0 - 195.242.181.255 { 0xc3f2b600, 0xc3f2b6ff, REGISTRY_RIPENCC }, // 195.242.182.0 - 195.242.182.255 { 0xc3f2b700, 0xc3f2baff, REGISTRY_RIPENCC }, // 195.242.183.0 - 195.242.186.255 { 0xc3f2bb00, 0xc3f2bbff, REGISTRY_RIPENCC }, // 195.242.187.0 - 195.242.187.255 { 0xc3f2bc00, 0xc3f2cfff, REGISTRY_RIPENCC }, // 195.242.188.0 - 195.242.207.255 { 0xc3f2d000, 0xc3f2d7ff, REGISTRY_RIPENCC }, // 195.242.208.0 - 195.242.215.255 { 0xc3f2d800, 0xc3f2efff, REGISTRY_RIPENCC }, // 195.242.216.0 - 195.242.239.255 { 0xc3f2f000, 0xc3f2f3ff, REGISTRY_RIPENCC }, // 195.242.240.0 - 195.242.243.255 { 0xc3f2f400, 0xc3f2ffff, REGISTRY_RIPENCC }, // 195.242.244.0 - 195.242.255.255 { 0xc3f30000, 0xc3f3ffff, REGISTRY_RIPENCC }, // 195.243.0.0 - 195.243.255.255 { 0xc3f40000, 0xc3f401ff, REGISTRY_RIPENCC }, // 195.244.0.0 - 195.244.1.255 { 0xc3f40200, 0xc3f403ff, REGISTRY_RIPENCC }, // 195.244.2.0 - 195.244.3.255 { 0xc3f40400, 0xc3f40dff, REGISTRY_RIPENCC }, // 195.244.4.0 - 195.244.13.255 { 0xc3f40e00, 0xc3f40fff, REGISTRY_RIPENCC }, // 195.244.14.0 - 195.244.15.255 { 0xc3f41000, 0xc3f411ff, REGISTRY_RIPENCC }, // 195.244.16.0 - 195.244.17.255 { 0xc3f41200, 0xc3f413ff, REGISTRY_RIPENCC }, // 195.244.18.0 - 195.244.19.255 { 0xc3f41400, 0xc3f41fff, REGISTRY_RIPENCC }, // 195.244.20.0 - 195.244.31.255 { 0xc3f42000, 0xc3f53fff, REGISTRY_RIPENCC }, // 195.244.32.0 - 195.245.63.255 { 0xc3f54000, 0xc3f541ff, REGISTRY_RIPENCC }, // 195.245.64.0 - 195.245.65.255 { 0xc3f54200, 0xc3f543ff, REGISTRY_RIPENCC }, // 195.245.66.0 - 195.245.67.255 { 0xc3f54400, 0xc3f547ff, REGISTRY_RIPENCC }, // 195.245.68.0 - 195.245.71.255 { 0xc3f54800, 0xc3f54bff, REGISTRY_RIPENCC }, // 195.245.72.0 - 195.245.75.255 { 0xc3f54c00, 0xc3f553ff, REGISTRY_RIPENCC }, // 195.245.76.0 - 195.245.83.255 { 0xc3f55400, 0xc3f559ff, REGISTRY_RIPENCC }, // 195.245.84.0 - 195.245.89.255 { 0xc3f55a00, 0xc3f55fff, REGISTRY_RIPENCC }, // 195.245.90.0 - 195.245.95.255 { 0xc3f56000, 0xc3f563ff, REGISTRY_RIPENCC }, // 195.245.96.0 - 195.245.99.255 { 0xc3f56400, 0xc3f565ff, REGISTRY_RIPENCC }, // 195.245.100.0 - 195.245.101.255 { 0xc3f56600, 0xc3f567ff, REGISTRY_RIPENCC }, // 195.245.102.0 - 195.245.103.255 { 0xc3f56800, 0xc3f56bff, REGISTRY_RIPENCC }, // 195.245.104.0 - 195.245.107.255 { 0xc3f56c00, 0xc3f56fff, REGISTRY_RIPENCC }, // 195.245.108.0 - 195.245.111.255 { 0xc3f57000, 0xc3f57fff, REGISTRY_RIPENCC }, // 195.245.112.0 - 195.245.127.255 { 0xc3f58000, 0xc3f5bfff, REGISTRY_RIPENCC }, // 195.245.128.0 - 195.245.191.255 { 0xc3f5c000, 0xc3f5c2ff, REGISTRY_RIPENCC }, // 195.245.192.0 - 195.245.194.255 { 0xc3f5c300, 0xc3f5c3ff, REGISTRY_RIPENCC }, // 195.245.195.0 - 195.245.195.255 { 0xc3f5c400, 0xc3f5c5ff, REGISTRY_RIPENCC }, // 195.245.196.0 - 195.245.197.255 { 0xc3f5c600, 0xc3f5c6ff, REGISTRY_RIPENCC }, // 195.245.198.0 - 195.245.198.255 { 0xc3f5c700, 0xc3f5cbff, REGISTRY_RIPENCC }, // 195.245.199.0 - 195.245.203.255 { 0xc3f5cc00, 0xc3f5ccff, REGISTRY_RIPENCC }, // 195.245.204.0 - 195.245.204.255 { 0xc3f5cd00, 0xc3f5ceff, REGISTRY_RIPENCC }, // 195.245.205.0 - 195.245.206.255 { 0xc3f5cf00, 0xc3f5cfff, REGISTRY_RIPENCC }, // 195.245.207.0 - 195.245.207.255 { 0xc3f5d000, 0xc3f5daff, REGISTRY_RIPENCC }, // 195.245.208.0 - 195.245.218.255 { 0xc3f5db00, 0xc3f5dbff, REGISTRY_RIPENCC }, // 195.245.219.0 - 195.245.219.255 { 0xc3f5dc00, 0xc3f5e4ff, REGISTRY_RIPENCC }, // 195.245.220.0 - 195.245.228.255 { 0xc3f5e500, 0xc3f5e5ff, REGISTRY_RIPENCC }, // 195.245.229.0 - 195.245.229.255 { 0xc3f5e600, 0xc3f5eaff, REGISTRY_RIPENCC }, // 195.245.230.0 - 195.245.234.255 { 0xc3f5eb00, 0xc3f5ebff, REGISTRY_RIPENCC }, // 195.245.235.0 - 195.245.235.255 { 0xc3f5ec00, 0xc3f5edff, REGISTRY_RIPENCC }, // 195.245.236.0 - 195.245.237.255 { 0xc3f5ee00, 0xc3f5efff, REGISTRY_RIPENCC }, // 195.245.238.0 - 195.245.239.255 { 0xc3f5f000, 0xc3f5f0ff, REGISTRY_RIPENCC }, // 195.245.240.0 - 195.245.240.255 { 0xc3f5f100, 0xc3f5f2ff, REGISTRY_RIPENCC }, // 195.245.241.0 - 195.245.242.255 { 0xc3f5f300, 0xc3f5f5ff, REGISTRY_RIPENCC }, // 195.245.243.0 - 195.245.245.255 { 0xc3f5f600, 0xc3f5f6ff, REGISTRY_RIPENCC }, // 195.245.246.0 - 195.245.246.255 { 0xc3f5f700, 0xc3f5ffff, REGISTRY_RIPENCC }, // 195.245.247.0 - 195.245.255.255 { 0xc3f60000, 0xc3f61fff, REGISTRY_RIPENCC }, // 195.246.0.0 - 195.246.31.255 { 0xc3f62000, 0xc3f63fff, REGISTRY_AFRINIC }, // 195.246.32.0 - 195.246.63.255 { 0xc3f64000, 0xc3f65fff, REGISTRY_RIPENCC }, // 195.246.64.0 - 195.246.95.255 { 0xc3f66000, 0xc3f661ff, REGISTRY_RIPENCC }, // 195.246.96.0 - 195.246.97.255 { 0xc3f66200, 0xc3f663ff, REGISTRY_RIPENCC }, // 195.246.98.0 - 195.246.99.255 { 0xc3f66400, 0xc3f66dff, REGISTRY_RIPENCC }, // 195.246.100.0 - 195.246.109.255 { 0xc3f66e00, 0xc3f66fff, REGISTRY_RIPENCC }, // 195.246.110.0 - 195.246.111.255 { 0xc3f67000, 0xc3f673ff, REGISTRY_RIPENCC }, // 195.246.112.0 - 195.246.115.255 { 0xc3f67400, 0xc3f675ff, REGISTRY_RIPENCC }, // 195.246.116.0 - 195.246.117.255 { 0xc3f67600, 0xc3f67fff, REGISTRY_RIPENCC }, // 195.246.118.0 - 195.246.127.255 { 0xc3f68000, 0xc3f6bfff, REGISTRY_RIPENCC }, // 195.246.128.0 - 195.246.191.255 { 0xc3f6c000, 0xc3f6c4ff, REGISTRY_RIPENCC }, // 195.246.192.0 - 195.246.196.255 { 0xc3f6c500, 0xc3f6c5ff, REGISTRY_RIPENCC }, // 195.246.197.0 - 195.246.197.255 { 0xc3f6c600, 0xc3f6c7ff, REGISTRY_RIPENCC }, // 195.246.198.0 - 195.246.199.255 { 0xc3f6c800, 0xc3f6cfff, REGISTRY_RIPENCC }, // 195.246.200.0 - 195.246.207.255 { 0xc3f6d000, 0xc3f6daff, REGISTRY_RIPENCC }, // 195.246.208.0 - 195.246.218.255 { 0xc3f6db00, 0xc3f6dbff, REGISTRY_RIPENCC }, // 195.246.219.0 - 195.246.219.255 { 0xc3f6dc00, 0xc3f6f5ff, REGISTRY_RIPENCC }, // 195.246.220.0 - 195.246.245.255 { 0xc3f6f600, 0xc3f6f9ff, REGISTRY_RIPENCC }, // 195.246.246.0 - 195.246.249.255 { 0xc3f6fa00, 0xc3f6fdff, REGISTRY_RIPENCC }, // 195.246.250.0 - 195.246.253.255 { 0xc3f6fe00, 0xc3f83fff, REGISTRY_RIPENCC }, // 195.246.254.0 - 195.248.63.255 { 0xc3f84000, 0xc3f846ff, REGISTRY_RIPENCC }, // 195.248.64.0 - 195.248.70.255 { 0xc3f84700, 0xc3f847ff, REGISTRY_RIPENCC }, // 195.248.71.0 - 195.248.71.255 { 0xc3f84800, 0xc3f850ff, REGISTRY_RIPENCC }, // 195.248.72.0 - 195.248.80.255 { 0xc3f85100, 0xc3f851ff, REGISTRY_RIPENCC }, // 195.248.81.0 - 195.248.81.255 { 0xc3f85200, 0xc3f853ff, REGISTRY_RIPENCC }, // 195.248.82.0 - 195.248.83.255 { 0xc3f85400, 0xc3f854ff, REGISTRY_RIPENCC }, // 195.248.84.0 - 195.248.84.255 { 0xc3f85500, 0xc3f859ff, REGISTRY_RIPENCC }, // 195.248.85.0 - 195.248.89.255 { 0xc3f85a00, 0xc3f85aff, REGISTRY_RIPENCC }, // 195.248.90.0 - 195.248.90.255 { 0xc3f85b00, 0xc3f85fff, REGISTRY_RIPENCC }, // 195.248.91.0 - 195.248.95.255 { 0xc3f86000, 0xc3f8dfff, REGISTRY_RIPENCC }, // 195.248.96.0 - 195.248.223.255 { 0xc3f8e000, 0xc3f8efff, REGISTRY_RIPENCC }, // 195.248.224.0 - 195.248.239.255 { 0xc3f8f000, 0xc3f8f7ff, REGISTRY_RIPENCC }, // 195.248.240.0 - 195.248.247.255 { 0xc3f8f800, 0xc3f8ffff, REGISTRY_RIPENCC }, // 195.248.248.0 - 195.248.255.255 { 0xc3f90000, 0xc3fa1fff, REGISTRY_RIPENCC }, // 195.249.0.0 - 195.250.31.255 { 0xc3fa2000, 0xc3fa30ff, REGISTRY_RIPENCC }, // 195.250.32.0 - 195.250.48.255 { 0xc3fa3100, 0xc3fa31ff, REGISTRY_RIPENCC }, // 195.250.49.0 - 195.250.49.255 { 0xc3fa3200, 0xc3fa36ff, REGISTRY_RIPENCC }, // 195.250.50.0 - 195.250.54.255 { 0xc3fa3700, 0xc3fa37ff, REGISTRY_RIPENCC }, // 195.250.55.0 - 195.250.55.255 { 0xc3fa3800, 0xc3fa3eff, REGISTRY_RIPENCC }, // 195.250.56.0 - 195.250.62.255 { 0xc3fa3f00, 0xc3fbffff, REGISTRY_RIPENCC }, // 195.250.63.0 - 195.251.255.255 { 0xc3fc0000, 0xc3fc1fff, REGISTRY_RIPENCC }, // 195.252.0.0 - 195.252.31.255 { 0xc3fc2000, 0xc3fcbfff, REGISTRY_RIPENCC }, // 195.252.32.0 - 195.252.191.255 { 0xc3fcc000, 0xc3fcffff, REGISTRY_ARIN }, // 195.252.192.0 - 195.252.255.255 { 0xc3fd0000, 0xc3fe7fff, REGISTRY_RIPENCC }, // 195.253.0.0 - 195.254.127.255 { 0xc3fe8000, 0xc3fe8dff, REGISTRY_RIPENCC }, // 195.254.128.0 - 195.254.141.255 { 0xc3fe8e00, 0xc3fe8fff, REGISTRY_RIPENCC }, // 195.254.142.0 - 195.254.143.255 { 0xc3fe9000, 0xc3fe99ff, REGISTRY_RIPENCC }, // 195.254.144.0 - 195.254.153.255 { 0xc3fe9a00, 0xc3fe9bff, REGISTRY_RIPENCC }, // 195.254.154.0 - 195.254.155.255 { 0xc3fe9c00, 0xc3fea3ff, REGISTRY_RIPENCC }, // 195.254.156.0 - 195.254.163.255 { 0xc3fea400, 0xc3fea5ff, REGISTRY_RIPENCC }, // 195.254.164.0 - 195.254.165.255 { 0xc3fea600, 0xc3feb5ff, REGISTRY_RIPENCC }, // 195.254.166.0 - 195.254.181.255 { 0xc3feb600, 0xc3feb7ff, REGISTRY_RIPENCC }, // 195.254.182.0 - 195.254.183.255 { 0xc3feb800, 0xc3feb9ff, REGISTRY_RIPENCC }, // 195.254.184.0 - 195.254.185.255 { 0xc3feba00, 0xc3febbff, REGISTRY_RIPENCC }, // 195.254.186.0 - 195.254.187.255 { 0xc3febc00, 0xc3febfff, REGISTRY_RIPENCC }, // 195.254.188.0 - 195.254.191.255 { 0xc3fec000, 0xc3ffffff, REGISTRY_RIPENCC }, // 195.254.192.0 - 195.255.255.255 { 0xc4000000, 0xc40100ff, REGISTRY_AFRINIC }, // 196.0.0.0 - 196.1.0.255 { 0xc4010100, 0xc40101ff, REGISTRY_APNIC }, // 196.1.1.0 - 196.1.1.255 { 0xc4010200, 0xc40102ff, REGISTRY_ARIN }, // 196.1.2.0 - 196.1.2.255 { 0xc4010300, 0xc40103ff, REGISTRY_RIPENCC }, // 196.1.3.0 - 196.1.3.255 { 0xc4010400, 0xc40104ff, REGISTRY_AFRINIC }, // 196.1.4.0 - 196.1.4.255 { 0xc4010500, 0xc40106ff, REGISTRY_RIPENCC }, // 196.1.5.0 - 196.1.6.255 { 0xc4010700, 0xc40119ff, REGISTRY_AFRINIC }, // 196.1.7.0 - 196.1.25.255 { 0xc4011c00, 0xc40133ff, REGISTRY_AFRINIC }, // 196.1.28.0 - 196.1.51.255 { 0xc4013800, 0xc4013fff, REGISTRY_AFRINIC }, // 196.1.56.0 - 196.1.63.255 { 0xc4014000, 0xc40143ff, REGISTRY_RIPENCC }, // 196.1.64.0 - 196.1.67.255 { 0xc4014400, 0xc40144ff, REGISTRY_APNIC }, // 196.1.68.0 - 196.1.68.255 { 0xc4014500, 0xc40146ff, REGISTRY_RIPENCC }, // 196.1.69.0 - 196.1.70.255 { 0xc4014800, 0xc40149ff, REGISTRY_ARIN }, // 196.1.72.0 - 196.1.73.255 { 0xc4014a00, 0xc40167ff, REGISTRY_AFRINIC }, // 196.1.74.0 - 196.1.103.255 { 0xc4016800, 0xc4016aff, REGISTRY_APNIC }, // 196.1.104.0 - 196.1.106.255 { 0xc4016b00, 0xc4016bff, REGISTRY_ARIN }, // 196.1.107.0 - 196.1.107.255 { 0xc4016d00, 0xc4016fff, REGISTRY_APNIC }, // 196.1.109.0 - 196.1.111.255 { 0xc4017000, 0xc40170ff, REGISTRY_LACNIC }, // 196.1.112.0 - 196.1.112.255 { 0xc4017100, 0xc40172ff, REGISTRY_APNIC }, // 196.1.113.0 - 196.1.114.255 { 0xc4017300, 0xc40185ff, REGISTRY_AFRINIC }, // 196.1.115.0 - 196.1.133.255 { 0xc4018600, 0xc40186ff, REGISTRY_APNIC }, // 196.1.134.0 - 196.1.134.255 { 0xc4018700, 0xc40187ff, REGISTRY_LACNIC }, // 196.1.135.0 - 196.1.135.255 { 0xc4018800, 0xc40188ff, REGISTRY_ARIN }, // 196.1.136.0 - 196.1.136.255 { 0xc4018900, 0xc40189ff, REGISTRY_AFRINIC }, // 196.1.137.0 - 196.1.137.255 { 0xc4018a00, 0xc4018eff, REGISTRY_ARIN }, // 196.1.138.0 - 196.1.142.255 { 0xc4018f00, 0xc4019fff, REGISTRY_AFRINIC }, // 196.1.143.0 - 196.1.159.255 { 0xc401a000, 0xc401afff, REGISTRY_ARIN }, // 196.1.160.0 - 196.1.175.255 { 0xc401b000, 0xc401ffff, REGISTRY_AFRINIC }, // 196.1.176.0 - 196.1.255.255 { 0xc4020000, 0xc40201ff, REGISTRY_ARIN }, // 196.2.0.0 - 196.2.1.255 { 0xc4020200, 0xc40203ff, REGISTRY_AFRINIC }, // 196.2.2.0 - 196.2.3.255 { 0xc4020400, 0xc40207ff, REGISTRY_RIPENCC }, // 196.2.4.0 - 196.2.7.255 { 0xc4020800, 0xc402dfff, REGISTRY_AFRINIC }, // 196.2.8.0 - 196.2.223.255 { 0xc4030000, 0xc4030dff, REGISTRY_ARIN }, // 196.3.0.0 - 196.3.13.255 { 0xc4030e00, 0xc4030fff, REGISTRY_AFRINIC }, // 196.3.14.0 - 196.3.15.255 { 0xc4031000, 0xc4031fff, REGISTRY_LACNIC }, // 196.3.16.0 - 196.3.31.255 { 0xc4032000, 0xc40338ff, REGISTRY_ARIN }, // 196.3.32.0 - 196.3.56.255 { 0xc4033a00, 0xc40340ff, REGISTRY_AFRINIC }, // 196.3.58.0 - 196.3.64.255 { 0xc4034200, 0xc40347ff, REGISTRY_RIPENCC }, // 196.3.66.0 - 196.3.71.255 { 0xc4034800, 0xc40348ff, REGISTRY_APNIC }, // 196.3.72.0 - 196.3.72.255 { 0xc4034900, 0xc40349ff, REGISTRY_ARIN }, // 196.3.73.0 - 196.3.73.255 { 0xc4034a00, 0xc40359ff, REGISTRY_LACNIC }, // 196.3.74.0 - 196.3.89.255 { 0xc4035a00, 0xc4035aff, REGISTRY_AFRINIC }, // 196.3.90.0 - 196.3.90.255 { 0xc4035b00, 0xc4035bff, REGISTRY_RIPENCC }, // 196.3.91.0 - 196.3.91.255 { 0xc4035c00, 0xc4035eff, REGISTRY_AFRINIC }, // 196.3.92.0 - 196.3.94.255 { 0xc4035f00, 0xc4035fff, REGISTRY_ARIN }, // 196.3.95.0 - 196.3.95.255 { 0xc4036000, 0xc40367ff, REGISTRY_AFRINIC }, // 196.3.96.0 - 196.3.103.255 { 0xc4036800, 0xc40368ff, REGISTRY_ARIN }, // 196.3.104.0 - 196.3.104.255 { 0xc4036900, 0xc40369ff, REGISTRY_AFRINIC }, // 196.3.105.0 - 196.3.105.255 { 0xc4036a00, 0xc4036aff, REGISTRY_LACNIC }, // 196.3.106.0 - 196.3.106.255 { 0xc4036b00, 0xc40383ff, REGISTRY_AFRINIC }, // 196.3.107.0 - 196.3.131.255 { 0xc4038400, 0xc40393ff, REGISTRY_LACNIC }, // 196.3.132.0 - 196.3.147.255 { 0xc4039400, 0xc40397ff, REGISTRY_AFRINIC }, // 196.3.148.0 - 196.3.151.255 { 0xc4039800, 0xc40398ff, REGISTRY_LACNIC }, // 196.3.152.0 - 196.3.152.255 { 0xc4039900, 0xc40399ff, REGISTRY_ARIN }, // 196.3.153.0 - 196.3.153.255 { 0xc4039a00, 0xc403b7ff, REGISTRY_AFRINIC }, // 196.3.154.0 - 196.3.183.255 { 0xc403b800, 0xc403dfff, REGISTRY_ARIN }, // 196.3.184.0 - 196.3.223.255 { 0xc403e000, 0xc4042dff, REGISTRY_AFRINIC }, // 196.3.224.0 - 196.4.45.255 { 0xc4042e00, 0xc40446ff, REGISTRY_ARIN }, // 196.4.46.0 - 196.4.70.255 { 0xc4044700, 0xc40677ff, REGISTRY_AFRINIC }, // 196.4.71.0 - 196.6.119.255 { 0xc4067900, 0xc406afff, REGISTRY_AFRINIC }, // 196.6.121.0 - 196.6.175.255 { 0xc406b800, 0xc406b9ff, REGISTRY_AFRINIC }, // 196.6.184.0 - 196.6.185.255 { 0xc406bc00, 0xc406bfff, REGISTRY_AFRINIC }, // 196.6.188.0 - 196.6.191.255 { 0xc406c400, 0xc406c6ff, REGISTRY_AFRINIC }, // 196.6.196.0 - 196.6.198.255 { 0xc406c800, 0xc406e1ff, REGISTRY_AFRINIC }, // 196.6.200.0 - 196.6.225.255 { 0xc406e300, 0xc406e5ff, REGISTRY_AFRINIC }, // 196.6.227.0 - 196.6.229.255 { 0xc406e700, 0xc40a32ff, REGISTRY_AFRINIC }, // 196.6.231.0 - 196.10.50.255 { 0xc40a3400, 0xc40a37ff, REGISTRY_AFRINIC }, // 196.10.52.0 - 196.10.55.255 { 0xc40a3d00, 0xc40a63ff, REGISTRY_AFRINIC }, // 196.10.61.0 - 196.10.99.255 { 0xc40a6500, 0xc40a8bff, REGISTRY_AFRINIC }, // 196.10.101.0 - 196.10.139.255 { 0xc40a8d00, 0xc40a92ff, REGISTRY_AFRINIC }, // 196.10.141.0 - 196.10.146.255 { 0xc40a9400, 0xc40afbff, REGISTRY_AFRINIC }, // 196.10.148.0 - 196.10.251.255 { 0xc40b0000, 0xc40b4aff, REGISTRY_AFRINIC }, // 196.11.0.0 - 196.11.74.255 { 0xc40b4c00, 0xc40b95ff, REGISTRY_AFRINIC }, // 196.11.76.0 - 196.11.149.255 { 0xc40b9800, 0xc40bf9ff, REGISTRY_AFRINIC }, // 196.11.152.0 - 196.11.249.255 { 0xc40bfc00, 0xc40bffff, REGISTRY_AFRINIC }, // 196.11.252.0 - 196.11.255.255 { 0xc40c0000, 0xc40c09ff, REGISTRY_ARIN }, // 196.12.0.0 - 196.12.9.255 { 0xc40c0a00, 0xc40c1fff, REGISTRY_AFRINIC }, // 196.12.10.0 - 196.12.31.255 { 0xc40c2000, 0xc40c3fff, REGISTRY_APNIC }, // 196.12.32.0 - 196.12.63.255 { 0xc40c4000, 0xc40c7fff, REGISTRY_ARIN }, // 196.12.64.0 - 196.12.127.255 { 0xc40c8000, 0xc40c9fff, REGISTRY_AFRINIC }, // 196.12.128.0 - 196.12.159.255 { 0xc40ca000, 0xc40cbfff, REGISTRY_ARIN }, // 196.12.160.0 - 196.12.191.255 { 0xc40cc000, 0xc40d65ff, REGISTRY_AFRINIC }, // 196.12.192.0 - 196.13.101.255 { 0xc40d6700, 0xc40d69ff, REGISTRY_AFRINIC }, // 196.13.103.0 - 196.13.105.255 { 0xc40d6b00, 0xc40dc8ff, REGISTRY_AFRINIC }, // 196.13.107.0 - 196.13.200.255 { 0xc40dca00, 0xc40dcaff, REGISTRY_AFRINIC }, // 196.13.202.0 - 196.13.202.255 { 0xc40dcc00, 0xc40f0fff, REGISTRY_AFRINIC }, // 196.13.204.0 - 196.15.15.255 { 0xc40f1000, 0xc40f1fff, REGISTRY_APNIC }, // 196.15.16.0 - 196.15.31.255 { 0xc40f2000, 0xc40f3fff, REGISTRY_RIPENCC }, // 196.15.32.0 - 196.15.63.255 { 0xc40f4000, 0xc4141fff, REGISTRY_AFRINIC }, // 196.15.64.0 - 196.20.31.255 { 0xc4144000, 0xc4160bff, REGISTRY_AFRINIC }, // 196.20.64.0 - 196.22.11.255 { 0xc4161000, 0xc41affff, REGISTRY_AFRINIC }, // 196.22.16.0 - 196.26.255.255 { 0xc41b0000, 0xc41b3fff, REGISTRY_ARIN }, // 196.27.0.0 - 196.27.63.255 { 0xc41b4000, 0xc41c08ff, REGISTRY_AFRINIC }, // 196.27.64.0 - 196.28.8.255 { 0xc41c0a00, 0xc41c2fff, REGISTRY_AFRINIC }, // 196.28.10.0 - 196.28.47.255 { 0xc41c3000, 0xc41c3fff, REGISTRY_ARIN }, // 196.28.48.0 - 196.28.63.255 { 0xc41c4000, 0xc41d3fff, REGISTRY_AFRINIC }, // 196.28.64.0 - 196.29.63.255 { 0xc41d4000, 0xc41d5fff, REGISTRY_LACNIC }, // 196.29.64.0 - 196.29.95.255 { 0xc41d8000, 0xc41fffff, REGISTRY_AFRINIC }, // 196.29.128.0 - 196.31.255.255 { 0xc4200000, 0xc42007ff, REGISTRY_ARIN }, // 196.32.0.0 - 196.32.7.255 { 0xc4200800, 0xc4200fff, REGISTRY_AFRINIC }, // 196.32.8.0 - 196.32.15.255 { 0xc4202000, 0xc4205fff, REGISTRY_LACNIC }, // 196.32.32.0 - 196.32.95.255 { 0xc4206000, 0xc4207fff, REGISTRY_AFRINIC }, // 196.32.96.0 - 196.32.127.255 { 0xc4208000, 0xc4209fff, REGISTRY_ARIN }, // 196.32.128.0 - 196.32.159.255 { 0xc420a000, 0xc420c7ff, REGISTRY_AFRINIC }, // 196.32.160.0 - 196.32.199.255 { 0xc420d000, 0xc427ffff, REGISTRY_AFRINIC }, // 196.32.208.0 - 196.39.255.255 { 0xc4280000, 0xc4285fff, REGISTRY_LACNIC }, // 196.40.0.0 - 196.40.95.255 { 0xc4286000, 0xc4293fff, REGISTRY_AFRINIC }, // 196.40.96.0 - 196.41.63.255 { 0xc4294100, 0xc42941ff, REGISTRY_AFRINIC }, // 196.41.65.0 - 196.41.65.255 { 0xc4294300, 0xc42944ff, REGISTRY_AFRINIC }, // 196.41.67.0 - 196.41.68.255 { 0xc4294800, 0xc42949ff, REGISTRY_AFRINIC }, // 196.41.72.0 - 196.41.73.255 { 0xc4294b00, 0xc4294dff, REGISTRY_AFRINIC }, // 196.41.75.0 - 196.41.77.255 { 0xc4295000, 0xc42951ff, REGISTRY_AFRINIC }, // 196.41.80.0 - 196.41.81.255 { 0xc4295300, 0xc4295aff, REGISTRY_AFRINIC }, // 196.41.83.0 - 196.41.90.255 { 0xc4295e00, 0xc429ffff, REGISTRY_AFRINIC }, // 196.41.94.0 - 196.41.255.255 { 0xc42a0000, 0xc42a3fff, REGISTRY_ARIN }, // 196.42.0.0 - 196.42.63.255 { 0xc42a4000, 0xc42a7fff, REGISTRY_AFRINIC }, // 196.42.64.0 - 196.42.127.255 { 0xc42b0000, 0xc42bc0ff, REGISTRY_AFRINIC }, // 196.43.0.0 - 196.43.192.255 { 0xc42bc200, 0xc42bc5ff, REGISTRY_AFRINIC }, // 196.43.194.0 - 196.43.197.255 { 0xc42bc700, 0xc42bc7ff, REGISTRY_AFRINIC }, // 196.43.199.0 - 196.43.199.255 { 0xc42bc900, 0xc42bcbff, REGISTRY_AFRINIC }, // 196.43.201.0 - 196.43.203.255 { 0xc42bcd00, 0xc42bd7ff, REGISTRY_AFRINIC }, // 196.43.205.0 - 196.43.215.255 { 0xc42bd900, 0xc42bd9ff, REGISTRY_AFRINIC }, // 196.43.217.0 - 196.43.217.255 { 0xc42bdb00, 0xc42bddff, REGISTRY_AFRINIC }, // 196.43.219.0 - 196.43.221.255 { 0xc42bdf00, 0xc42bdfff, REGISTRY_AFRINIC }, // 196.43.223.0 - 196.43.223.255 { 0xc42be100, 0xc42bedff, REGISTRY_AFRINIC }, // 196.43.225.0 - 196.43.237.255 { 0xc42bef00, 0xc42bf9ff, REGISTRY_AFRINIC }, // 196.43.239.0 - 196.43.249.255 { 0xc42bfb00, 0xc42bfbff, REGISTRY_AFRINIC }, // 196.43.251.0 - 196.43.251.255 { 0xc42bfd00, 0xc42bfdff, REGISTRY_AFRINIC }, // 196.43.253.0 - 196.43.253.255 { 0xc42c0000, 0xc42d6fff, REGISTRY_AFRINIC }, // 196.44.0.0 - 196.45.111.255 { 0xc42d8000, 0xc42e11ff, REGISTRY_AFRINIC }, // 196.45.128.0 - 196.46.17.255 { 0xc42e1400, 0xc42e19ff, REGISTRY_AFRINIC }, // 196.46.20.0 - 196.46.25.255 { 0xc42e1b00, 0xc42e1cff, REGISTRY_AFRINIC }, // 196.46.27.0 - 196.46.28.255 { 0xc42e1e00, 0xc42e6fff, REGISTRY_AFRINIC }, // 196.46.30.0 - 196.46.111.255 { 0xc42e7400, 0xc42e97ff, REGISTRY_AFRINIC }, // 196.46.116.0 - 196.46.151.255 { 0xc42ea000, 0xc42ef7ff, REGISTRY_AFRINIC }, // 196.46.160.0 - 196.46.247.255 { 0xc42f0000, 0xc43114ff, REGISTRY_AFRINIC }, // 196.47.0.0 - 196.49.20.255 { 0xc4311600, 0xc43116ff, REGISTRY_AFRINIC }, // 196.49.22.0 - 196.49.22.255 { 0xc4311800, 0xc43118ff, REGISTRY_AFRINIC }, // 196.49.24.0 - 196.49.24.255 { 0xc4311a00, 0xc4311aff, REGISTRY_AFRINIC }, // 196.49.26.0 - 196.49.26.255 { 0xc4311c00, 0xc4311cff, REGISTRY_AFRINIC }, // 196.49.28.0 - 196.49.28.255 { 0xc4311e00, 0xc4311eff, REGISTRY_AFRINIC }, // 196.49.30.0 - 196.49.30.255 { 0xc4312000, 0xc43120ff, REGISTRY_AFRINIC }, // 196.49.32.0 - 196.49.32.255 { 0xc4312200, 0xc43122ff, REGISTRY_AFRINIC }, // 196.49.34.0 - 196.49.34.255 { 0xc4312600, 0xc43126ff, REGISTRY_AFRINIC }, // 196.49.38.0 - 196.49.38.255 { 0xc4312800, 0xc43128ff, REGISTRY_AFRINIC }, // 196.49.40.0 - 196.49.40.255 { 0xc4312a00, 0xc4312aff, REGISTRY_AFRINIC }, // 196.49.42.0 - 196.49.42.255 { 0xc4312c00, 0xc4312cff, REGISTRY_AFRINIC }, // 196.49.44.0 - 196.49.44.255 { 0xc4312e00, 0xc4312eff, REGISTRY_AFRINIC }, // 196.49.46.0 - 196.49.46.255 { 0xc4313000, 0xc43130ff, REGISTRY_AFRINIC }, // 196.49.48.0 - 196.49.48.255 { 0xc4313200, 0xc43132ff, REGISTRY_AFRINIC }, // 196.49.50.0 - 196.49.50.255 { 0xc4313400, 0xc43134ff, REGISTRY_AFRINIC }, // 196.49.52.0 - 196.49.52.255 { 0xc4313600, 0xc43136ff, REGISTRY_AFRINIC }, // 196.49.54.0 - 196.49.54.255 { 0xc4313800, 0xc43138ff, REGISTRY_AFRINIC }, // 196.49.56.0 - 196.49.56.255 { 0xc4313a00, 0xc4313aff, REGISTRY_AFRINIC }, // 196.49.58.0 - 196.49.58.255 { 0xc4313c00, 0xc4313cff, REGISTRY_AFRINIC }, // 196.49.60.0 - 196.49.60.255 { 0xc4313e00, 0xc4313eff, REGISTRY_AFRINIC }, // 196.49.62.0 - 196.49.62.255 { 0xc4314000, 0xc43140ff, REGISTRY_AFRINIC }, // 196.49.64.0 - 196.49.64.255 { 0xc4314200, 0xc43142ff, REGISTRY_AFRINIC }, // 196.49.66.0 - 196.49.66.255 { 0xc4314400, 0xc43145ff, REGISTRY_AFRINIC }, // 196.49.68.0 - 196.49.69.255 { 0xc4314800, 0xc43148ff, REGISTRY_AFRINIC }, // 196.49.72.0 - 196.49.72.255 { 0xc4314a00, 0xc4314aff, REGISTRY_AFRINIC }, // 196.49.74.0 - 196.49.74.255 { 0xc4314c00, 0xc4314dff, REGISTRY_AFRINIC }, // 196.49.76.0 - 196.49.77.255 { 0xc4315200, 0xc43152ff, REGISTRY_AFRINIC }, // 196.49.82.0 - 196.49.82.255 { 0xc4315400, 0xc43154ff, REGISTRY_AFRINIC }, // 196.49.84.0 - 196.49.84.255 { 0xc4315600, 0xc43156ff, REGISTRY_AFRINIC }, // 196.49.86.0 - 196.49.86.255 { 0xc4315800, 0xc43158ff, REGISTRY_AFRINIC }, // 196.49.88.0 - 196.49.88.255 { 0xc4315a00, 0xc4315aff, REGISTRY_AFRINIC }, // 196.49.90.0 - 196.49.90.255 { 0xc4315c00, 0xc4315cff, REGISTRY_AFRINIC }, // 196.49.92.0 - 196.49.92.255 { 0xc4315e00, 0xc4315eff, REGISTRY_AFRINIC }, // 196.49.94.0 - 196.49.94.255 { 0xc4316000, 0xc43160ff, REGISTRY_AFRINIC }, // 196.49.96.0 - 196.49.96.255 { 0xc4316200, 0xc43162ff, REGISTRY_AFRINIC }, // 196.49.98.0 - 196.49.98.255 { 0xc4316400, 0xc43164ff, REGISTRY_AFRINIC }, // 196.49.100.0 - 196.49.100.255 { 0xc4320000, 0xc43214ff, REGISTRY_AFRINIC }, // 196.50.0.0 - 196.50.20.255 { 0xc4321600, 0xc433ffff, REGISTRY_AFRINIC }, // 196.50.22.0 - 196.51.255.255 { 0xc4380000, 0xc43c00ff, REGISTRY_AFRINIC }, // 196.56.0.0 - 196.60.0.255 { 0xc43c0200, 0xc43c02ff, REGISTRY_AFRINIC }, // 196.60.2.0 - 196.60.2.255 { 0xc43c0400, 0xc43c04ff, REGISTRY_AFRINIC }, // 196.60.4.0 - 196.60.4.255 { 0xc43c0600, 0xc43c0cff, REGISTRY_AFRINIC }, // 196.60.6.0 - 196.60.12.255 { 0xc43c0e00, 0xc43c0eff, REGISTRY_AFRINIC }, // 196.60.14.0 - 196.60.14.255 { 0xc43c2400, 0xc43c24ff, REGISTRY_AFRINIC }, // 196.60.36.0 - 196.60.36.255 { 0xc43c2600, 0xc43c26ff, REGISTRY_AFRINIC }, // 196.60.38.0 - 196.60.38.255 { 0xc43c2800, 0xc43c28ff, REGISTRY_AFRINIC }, // 196.60.40.0 - 196.60.40.255 { 0xc43c2a00, 0xc43c2aff, REGISTRY_AFRINIC }, // 196.60.42.0 - 196.60.42.255 { 0xc43c2c00, 0xc43c2cff, REGISTRY_AFRINIC }, // 196.60.44.0 - 196.60.44.255 { 0xc43c2e00, 0xc43c2eff, REGISTRY_AFRINIC }, // 196.60.46.0 - 196.60.46.255 { 0xc43c3000, 0xc43c30ff, REGISTRY_AFRINIC }, // 196.60.48.0 - 196.60.48.255 { 0xc43c3200, 0xc43c32ff, REGISTRY_AFRINIC }, // 196.60.50.0 - 196.60.50.255 { 0xc43c3400, 0xc43c34ff, REGISTRY_AFRINIC }, // 196.60.52.0 - 196.60.52.255 { 0xc43c3600, 0xc43c36ff, REGISTRY_AFRINIC }, // 196.60.54.0 - 196.60.54.255 { 0xc43c3800, 0xc43c38ff, REGISTRY_AFRINIC }, // 196.60.56.0 - 196.60.56.255 { 0xc43c3a00, 0xc43c3aff, REGISTRY_AFRINIC }, // 196.60.58.0 - 196.60.58.255 { 0xc43c3d00, 0xc43c3dff, REGISTRY_AFRINIC }, // 196.60.61.0 - 196.60.61.255 { 0xc43c4000, 0xc43c40ff, REGISTRY_AFRINIC }, // 196.60.64.0 - 196.60.64.255 { 0xc43c4200, 0xc43c42ff, REGISTRY_AFRINIC }, // 196.60.66.0 - 196.60.66.255 { 0xc43c4400, 0xc43c44ff, REGISTRY_AFRINIC }, // 196.60.68.0 - 196.60.68.255 { 0xc43c4600, 0xc43c47ff, REGISTRY_AFRINIC }, // 196.60.70.0 - 196.60.71.255 { 0xc43c4a00, 0xc43c4aff, REGISTRY_AFRINIC }, // 196.60.74.0 - 196.60.74.255 { 0xc43c4c00, 0xc43c4cff, REGISTRY_AFRINIC }, // 196.60.76.0 - 196.60.76.255 { 0xc43c4e00, 0xc43c4eff, REGISTRY_AFRINIC }, // 196.60.78.0 - 196.60.78.255 { 0xc43c5000, 0xc43c50ff, REGISTRY_AFRINIC }, // 196.60.80.0 - 196.60.80.255 { 0xc43c5200, 0xc43c52ff, REGISTRY_AFRINIC }, // 196.60.82.0 - 196.60.82.255 { 0xc43c5400, 0xc43c54ff, REGISTRY_AFRINIC }, // 196.60.84.0 - 196.60.84.255 { 0xc43c5600, 0xc43c56ff, REGISTRY_AFRINIC }, // 196.60.86.0 - 196.60.86.255 { 0xc43c5800, 0xc43c5aff, REGISTRY_AFRINIC }, // 196.60.88.0 - 196.60.90.255 { 0xc43c5c00, 0xc43c5cff, REGISTRY_AFRINIC }, // 196.60.92.0 - 196.60.92.255 { 0xc43c5e00, 0xc43c5eff, REGISTRY_AFRINIC }, // 196.60.94.0 - 196.60.94.255 { 0xc43c6000, 0xc43c61ff, REGISTRY_AFRINIC }, // 196.60.96.0 - 196.60.97.255 { 0xc43c6800, 0xc43c68ff, REGISTRY_AFRINIC }, // 196.60.104.0 - 196.60.104.255 { 0xc43c6a00, 0xc43c6aff, REGISTRY_AFRINIC }, // 196.60.106.0 - 196.60.106.255 { 0xc43c6c00, 0xc43c6cff, REGISTRY_AFRINIC }, // 196.60.108.0 - 196.60.108.255 { 0xc43c6e00, 0xc43c6eff, REGISTRY_AFRINIC }, // 196.60.110.0 - 196.60.110.255 { 0xc43c7000, 0xc43c70ff, REGISTRY_AFRINIC }, // 196.60.112.0 - 196.60.112.255 { 0xc43c7200, 0xc43c72ff, REGISTRY_AFRINIC }, // 196.60.114.0 - 196.60.114.255 { 0xc43c7400, 0xc43c74ff, REGISTRY_AFRINIC }, // 196.60.116.0 - 196.60.116.255 { 0xc43c7800, 0xc43c78ff, REGISTRY_AFRINIC }, // 196.60.120.0 - 196.60.120.255 { 0xc43d0800, 0xc43dbfff, REGISTRY_AFRINIC }, // 196.61.8.0 - 196.61.191.255 { 0xc43dd000, 0xc43dffff, REGISTRY_AFRINIC }, // 196.61.208.0 - 196.61.255.255 { 0xc4400000, 0xc49fffff, REGISTRY_AFRINIC }, // 196.64.0.0 - 196.159.255.255 { 0xc4a80000, 0xc4c0bfff, REGISTRY_AFRINIC }, // 196.168.0.0 - 196.192.191.255 { 0xc4c40000, 0xc4cadfff, REGISTRY_AFRINIC }, // 196.196.0.0 - 196.202.223.255 { 0xc4cae800, 0xc4cf3fff, REGISTRY_AFRINIC }, // 196.202.232.0 - 196.207.63.255 { 0xc4cf8000, 0xc4d7ffff, REGISTRY_AFRINIC }, // 196.207.128.0 - 196.215.255.255 { 0xc4d80100, 0xc4d801ff, REGISTRY_ARIN }, // 196.216.1.0 - 196.216.1.255 { 0xc4d80200, 0xc4d8c3ff, REGISTRY_AFRINIC }, // 196.216.2.0 - 196.216.195.255 { 0xc4d8c800, 0xc4d8e7ff, REGISTRY_AFRINIC }, // 196.216.200.0 - 196.216.231.255 { 0xc4d8ea00, 0xc4dccfff, REGISTRY_AFRINIC }, // 196.216.234.0 - 196.220.207.255 { 0xc4dce000, 0xc4df0dff, REGISTRY_AFRINIC }, // 196.220.224.0 - 196.223.13.255 { 0xc4df0f00, 0xc4f5ffff, REGISTRY_AFRINIC }, // 196.223.15.0 - 196.245.255.255 { 0xc4f70000, 0xc4fa9fff, REGISTRY_AFRINIC }, // 196.247.0.0 - 196.250.159.255 { 0xc4fab000, 0xc4faf7ff, REGISTRY_AFRINIC }, // 196.250.176.0 - 196.250.247.255 { 0xc4fafc00, 0xc594dfff, REGISTRY_AFRINIC }, // 196.250.252.0 - 197.148.223.255 { 0xc5950000, 0xc5959bff, REGISTRY_AFRINIC }, // 197.149.0.0 - 197.149.155.255 { 0xc595a000, 0xc595bbff, REGISTRY_AFRINIC }, // 197.149.160.0 - 197.149.187.255 { 0xc595c000, 0xc59dc7ff, REGISTRY_AFRINIC }, // 197.149.192.0 - 197.157.199.255 { 0xc59dcc00, 0xc59ddfff, REGISTRY_AFRINIC }, // 197.157.204.0 - 197.157.223.255 { 0xc59de400, 0xc59e7fff, REGISTRY_AFRINIC }, // 197.157.228.0 - 197.158.127.255 { 0xc59ec000, 0xc59f4fff, REGISTRY_AFRINIC }, // 197.158.192.0 - 197.159.79.255 { 0xc59f5800, 0xc59f6fff, REGISTRY_AFRINIC }, // 197.159.88.0 - 197.159.111.255 { 0xc59f8000, 0xc5dcbfff, REGISTRY_AFRINIC }, // 197.159.128.0 - 197.220.191.255 { 0xc5dd0000, 0xc5e787ff, REGISTRY_AFRINIC }, // 197.221.0.0 - 197.231.135.255 { 0xc5e79000, 0xc5e7cfff, REGISTRY_AFRINIC }, // 197.231.144.0 - 197.231.207.255 { 0xc5e7d400, 0xc5fff7ff, REGISTRY_AFRINIC }, // 197.231.212.0 - 197.255.247.255 { 0xc5fffc00, 0xc5ffffff, REGISTRY_AFRINIC }, // 197.255.252.0 - 197.255.255.255 { 0xc6000000, 0xc6020fff, REGISTRY_ARIN }, // 198.0.0.0 - 198.2.15.255 { 0xc6021000, 0xc6021fff, REGISTRY_LACNIC }, // 198.2.16.0 - 198.2.31.255 { 0xc6022000, 0xc6075fff, REGISTRY_ARIN }, // 198.2.32.0 - 198.7.95.255 { 0xc6076000, 0xc6077fff, REGISTRY_RIPENCC }, // 198.7.96.0 - 198.7.127.255 { 0xc6078000, 0xc60affff, REGISTRY_ARIN }, // 198.7.128.0 - 198.10.255.255 { 0xc60b0000, 0xc60b03ff, REGISTRY_RIPENCC }, // 198.11.0.0 - 198.11.3.255 { 0xc60b0400, 0xc60c1fff, REGISTRY_ARIN }, // 198.11.4.0 - 198.12.31.255 { 0xc60c2000, 0xc60c3fff, REGISTRY_LACNIC }, // 198.12.32.0 - 198.12.63.255 { 0xc60c4000, 0xc60e0fff, REGISTRY_ARIN }, // 198.12.64.0 - 198.14.15.255 { 0xc60e1000, 0xc60e1fff, REGISTRY_RIPENCC }, // 198.14.16.0 - 198.14.31.255 { 0xc60e2000, 0xc60f0fff, REGISTRY_ARIN }, // 198.14.32.0 - 198.15.15.255 { 0xc60f2000, 0xc60f3fff, REGISTRY_APNIC }, // 198.15.32.0 - 198.15.63.255 { 0xc60f4000, 0xc61100ff, REGISTRY_ARIN }, // 198.15.64.0 - 198.17.0.255 { 0xc6110200, 0xc61106ff, REGISTRY_ARIN }, // 198.17.2.0 - 198.17.6.255 { 0xc6110800, 0xc61145ff, REGISTRY_ARIN }, // 198.17.8.0 - 198.17.69.255 { 0xc6114600, 0xc61146ff, REGISTRY_APNIC }, // 198.17.70.0 - 198.17.70.255 { 0xc6114700, 0xc6114cff, REGISTRY_ARIN }, // 198.17.71.0 - 198.17.76.255 { 0xc6114d00, 0xc6114dff, REGISTRY_RIPENCC }, // 198.17.77.0 - 198.17.77.255 { 0xc6114e00, 0xc61169ff, REGISTRY_ARIN }, // 198.17.78.0 - 198.17.105.255 { 0xc6116b00, 0xc61170ff, REGISTRY_ARIN }, // 198.17.107.0 - 198.17.112.255 { 0xc6117400, 0xc61174ff, REGISTRY_ARIN }, // 198.17.116.0 - 198.17.116.255 { 0xc6117500, 0xc61175ff, REGISTRY_RIPENCC }, // 198.17.117.0 - 198.17.117.255 { 0xc6117700, 0xc61177ff, REGISTRY_ARIN }, // 198.17.119.0 - 198.17.119.255 { 0xc6117800, 0xc61179ff, REGISTRY_LACNIC }, // 198.17.120.0 - 198.17.121.255 { 0xc6117a00, 0xc611b3ff, REGISTRY_ARIN }, // 198.17.122.0 - 198.17.179.255 { 0xc611b400, 0xc611b6ff, REGISTRY_RIPENCC }, // 198.17.180.0 - 198.17.182.255 { 0xc611b700, 0xc611e3ff, REGISTRY_ARIN }, // 198.17.183.0 - 198.17.227.255 { 0xc611e500, 0xc611e6ff, REGISTRY_ARIN }, // 198.17.229.0 - 198.17.230.255 { 0xc611e700, 0xc611e8ff, REGISTRY_LACNIC }, // 198.17.231.0 - 198.17.232.255 { 0xc611e900, 0xc611efff, REGISTRY_ARIN }, // 198.17.233.0 - 198.17.239.255 { 0xc611f200, 0xc611ffff, REGISTRY_ARIN }, // 198.17.242.0 - 198.17.255.255 { 0xc6140000, 0xc61621ff, REGISTRY_ARIN }, // 198.20.0.0 - 198.22.33.255 { 0xc6162400, 0xc61624ff, REGISTRY_ARIN }, // 198.22.36.0 - 198.22.36.255 { 0xc6162600, 0xc6162eff, REGISTRY_ARIN }, // 198.22.38.0 - 198.22.46.255 { 0xc6162f00, 0xc6162fff, REGISTRY_APNIC }, // 198.22.47.0 - 198.22.47.255 { 0xc6163300, 0xc61633ff, REGISTRY_RIPENCC }, // 198.22.51.0 - 198.22.51.255 { 0xc6163400, 0xc6163cff, REGISTRY_ARIN }, // 198.22.52.0 - 198.22.60.255 { 0xc6163d00, 0xc6163dff, REGISTRY_APNIC }, // 198.22.61.0 - 198.22.61.255 { 0xc6163e00, 0xc6165cff, REGISTRY_ARIN }, // 198.22.62.0 - 198.22.92.255 { 0xc6165d00, 0xc61661ff, REGISTRY_RIPENCC }, // 198.22.93.0 - 198.22.97.255 { 0xc6166200, 0xc616f9ff, REGISTRY_ARIN }, // 198.22.98.0 - 198.22.249.255 { 0xc616fa00, 0xc616fbff, REGISTRY_LACNIC }, // 198.22.250.0 - 198.22.251.255 { 0xc616fc00, 0xc61b03ff, REGISTRY_ARIN }, // 198.22.252.0 - 198.27.3.255 { 0xc61b0400, 0xc61b08ff, REGISTRY_APNIC }, // 198.27.4.0 - 198.27.8.255 { 0xc61b0900, 0xc6241fff, REGISTRY_ARIN }, // 198.27.9.0 - 198.36.31.255 { 0xc6242000, 0xc6242eff, REGISTRY_RIPENCC }, // 198.36.32.0 - 198.36.46.255 { 0xc6242f00, 0xc6290fff, REGISTRY_ARIN }, // 198.36.47.0 - 198.41.15.255 { 0xc6291c00, 0xc6291fff, REGISTRY_ARIN }, // 198.41.28.0 - 198.41.31.255 { 0xc6292000, 0xc6292eff, REGISTRY_LACNIC }, // 198.41.32.0 - 198.41.46.255 { 0xc6292f00, 0xc62d73ff, REGISTRY_ARIN }, // 198.41.47.0 - 198.45.115.255 { 0xc62d7400, 0xc62d77ff, REGISTRY_RIPENCC }, // 198.45.116.0 - 198.45.119.255 { 0xc62d7800, 0xc62fffff, REGISTRY_ARIN }, // 198.45.120.0 - 198.47.255.255 { 0xc6300000, 0xc63003ff, REGISTRY_APNIC }, // 198.48.0.0 - 198.48.3.255 { 0xc6300400, 0xc63101ff, REGISTRY_ARIN }, // 198.48.4.0 - 198.49.1.255 { 0xc6310300, 0xc63103ff, REGISTRY_APNIC }, // 198.49.3.0 - 198.49.3.255 { 0xc6310400, 0xc6311fff, REGISTRY_ARIN }, // 198.49.4.0 - 198.49.31.255 { 0xc6312000, 0xc63127ff, REGISTRY_APNIC }, // 198.49.32.0 - 198.49.39.255 { 0xc6312800, 0xc63156ff, REGISTRY_ARIN }, // 198.49.40.0 - 198.49.86.255 { 0xc6315700, 0xc63157ff, REGISTRY_APNIC }, // 198.49.87.0 - 198.49.87.255 { 0xc6315800, 0xc63166ff, REGISTRY_ARIN }, // 198.49.88.0 - 198.49.102.255 { 0xc6316700, 0xc63167ff, REGISTRY_RIPENCC }, // 198.49.103.0 - 198.49.103.255 { 0xc6316800, 0xc6316fff, REGISTRY_ARIN }, // 198.49.104.0 - 198.49.111.255 { 0xc6317000, 0xc63171ff, REGISTRY_APNIC }, // 198.49.112.0 - 198.49.113.255 { 0xc6317200, 0xc6317bff, REGISTRY_ARIN }, // 198.49.114.0 - 198.49.123.255 { 0xc6317c00, 0xc6317cff, REGISTRY_APNIC }, // 198.49.124.0 - 198.49.124.255 { 0xc6317d00, 0xc6317fff, REGISTRY_ARIN }, // 198.49.125.0 - 198.49.127.255 { 0xc6318000, 0xc63185ff, REGISTRY_LACNIC }, // 198.49.128.0 - 198.49.133.255 { 0xc6318600, 0xc631a3ff, REGISTRY_ARIN }, // 198.49.134.0 - 198.49.163.255 { 0xc631a400, 0xc631a4ff, REGISTRY_LACNIC }, // 198.49.164.0 - 198.49.164.255 { 0xc631a500, 0xc6320fff, REGISTRY_ARIN }, // 198.49.165.0 - 198.50.15.255 { 0xc6321000, 0xc63217ff, REGISTRY_LACNIC }, // 198.50.16.0 - 198.50.23.255 { 0xc6321800, 0xc63303ff, REGISTRY_ARIN }, // 198.50.24.0 - 198.51.3.255 { 0xc6330800, 0xc6330bff, REGISTRY_ARIN }, // 198.51.8.0 - 198.51.11.255 { 0xc6330c00, 0xc6330cff, REGISTRY_RIPENCC }, // 198.51.12.0 - 198.51.12.255 { 0xc6330d00, 0xc63346ff, REGISTRY_ARIN }, // 198.51.13.0 - 198.51.70.255 { 0xc6334700, 0xc63347ff, REGISTRY_LACNIC }, // 198.51.71.0 - 198.51.71.255 { 0xc6334800, 0xc63362ff, REGISTRY_ARIN }, // 198.51.72.0 - 198.51.98.255 { 0xc6336500, 0xc63365ff, REGISTRY_APNIC }, // 198.51.101.0 - 198.51.101.255 { 0xc6336600, 0xc6338eff, REGISTRY_ARIN }, // 198.51.102.0 - 198.51.142.255 { 0xc6338f00, 0xc63392ff, REGISTRY_RIPENCC }, // 198.51.143.0 - 198.51.146.255 { 0xc6339300, 0xc633b9ff, REGISTRY_ARIN }, // 198.51.147.0 - 198.51.185.255 { 0xc633bb00, 0xc633c2ff, REGISTRY_ARIN }, // 198.51.187.0 - 198.51.194.255 { 0xc633c300, 0xc633c4ff, REGISTRY_APNIC }, // 198.51.195.0 - 198.51.196.255 { 0xc633c500, 0xc633d1ff, REGISTRY_ARIN }, // 198.51.197.0 - 198.51.209.255 { 0xc633d200, 0xc633d3ff, REGISTRY_APNIC }, // 198.51.210.0 - 198.51.211.255 { 0xc633d400, 0xc6342bff, REGISTRY_ARIN }, // 198.51.212.0 - 198.52.43.255 { 0xc6342c00, 0xc6342fff, REGISTRY_RIPENCC }, // 198.52.44.0 - 198.52.47.255 { 0xc6343000, 0xc63600ff, REGISTRY_ARIN }, // 198.52.48.0 - 198.54.0.255 { 0xc6360100, 0xc6360aff, REGISTRY_AFRINIC }, // 198.54.1.0 - 198.54.10.255 { 0xc6360b00, 0xc6360eff, REGISTRY_ARIN }, // 198.54.11.0 - 198.54.14.255 { 0xc6360f00, 0xc6363dff, REGISTRY_AFRINIC }, // 198.54.15.0 - 198.54.61.255 { 0xc6363e00, 0xc6363fff, REGISTRY_ARIN }, // 198.54.62.0 - 198.54.63.255 { 0xc6364000, 0xc63650ff, REGISTRY_AFRINIC }, // 198.54.64.0 - 198.54.80.255 { 0xc6365100, 0xc63652ff, REGISTRY_ARIN }, // 198.54.81.0 - 198.54.82.255 { 0xc6365300, 0xc63657ff, REGISTRY_AFRINIC }, // 198.54.83.0 - 198.54.87.255 { 0xc6365800, 0xc6365aff, REGISTRY_ARIN }, // 198.54.88.0 - 198.54.90.255 { 0xc6365b00, 0xc6365bff, REGISTRY_AFRINIC }, // 198.54.91.0 - 198.54.91.255 { 0xc6365c00, 0xc63661ff, REGISTRY_ARIN }, // 198.54.92.0 - 198.54.97.255 { 0xc6366200, 0xc63663ff, REGISTRY_AFRINIC }, // 198.54.98.0 - 198.54.99.255 { 0xc6366400, 0xc6368cff, REGISTRY_ARIN }, // 198.54.100.0 - 198.54.140.255 { 0xc6368d00, 0xc63697ff, REGISTRY_AFRINIC }, // 198.54.141.0 - 198.54.151.255 { 0xc6369800, 0xc63699ff, REGISTRY_ARIN }, // 198.54.152.0 - 198.54.153.255 { 0xc6369a00, 0xc636a3ff, REGISTRY_AFRINIC }, // 198.54.154.0 - 198.54.163.255 { 0xc636a400, 0xc636a4ff, REGISTRY_ARIN }, // 198.54.164.0 - 198.54.164.255 { 0xc636a500, 0xc636a5ff, REGISTRY_AFRINIC }, // 198.54.165.0 - 198.54.165.255 { 0xc636a600, 0xc636a9ff, REGISTRY_ARIN }, // 198.54.166.0 - 198.54.169.255 { 0xc636aa00, 0xc636aaff, REGISTRY_AFRINIC }, // 198.54.170.0 - 198.54.170.255 { 0xc636ab00, 0xc636acff, REGISTRY_ARIN }, // 198.54.171.0 - 198.54.172.255 { 0xc636ad00, 0xc636b5ff, REGISTRY_AFRINIC }, // 198.54.173.0 - 198.54.181.255 { 0xc636b600, 0xc636b6ff, REGISTRY_ARIN }, // 198.54.182.0 - 198.54.182.255 { 0xc636b700, 0xc636c7ff, REGISTRY_AFRINIC }, // 198.54.183.0 - 198.54.199.255 { 0xc636c800, 0xc636c9ff, REGISTRY_ARIN }, // 198.54.200.0 - 198.54.201.255 { 0xc636ca00, 0xc636d2ff, REGISTRY_AFRINIC }, // 198.54.202.0 - 198.54.210.255 { 0xc636d300, 0xc636daff, REGISTRY_ARIN }, // 198.54.211.0 - 198.54.218.255 { 0xc636db00, 0xc636dcff, REGISTRY_AFRINIC }, // 198.54.219.0 - 198.54.220.255 { 0xc636dd00, 0xc636deff, REGISTRY_ARIN }, // 198.54.221.0 - 198.54.222.255 { 0xc636df00, 0xc636dfff, REGISTRY_AFRINIC }, // 198.54.223.0 - 198.54.223.255 { 0xc636e000, 0xc636e0ff, REGISTRY_ARIN }, // 198.54.224.0 - 198.54.224.255 { 0xc636e100, 0xc636e5ff, REGISTRY_AFRINIC }, // 198.54.225.0 - 198.54.229.255 { 0xc636e600, 0xc636e6ff, REGISTRY_ARIN }, // 198.54.230.0 - 198.54.230.255 { 0xc636e700, 0xc636e8ff, REGISTRY_AFRINIC }, // 198.54.231.0 - 198.54.232.255 { 0xc636e900, 0xc636e9ff, REGISTRY_ARIN }, // 198.54.233.0 - 198.54.233.255 { 0xc636ea00, 0xc636eaff, REGISTRY_AFRINIC }, // 198.54.234.0 - 198.54.234.255 { 0xc636eb00, 0xc636f6ff, REGISTRY_ARIN }, // 198.54.235.0 - 198.54.246.255 { 0xc636f700, 0xc636feff, REGISTRY_AFRINIC }, // 198.54.247.0 - 198.54.254.255 { 0xc636ff00, 0xc6371bff, REGISTRY_ARIN }, // 198.54.255.0 - 198.55.27.255 { 0xc6371c00, 0xc6371fff, REGISTRY_RIPENCC }, // 198.55.28.0 - 198.55.31.255 { 0xc6372000, 0xc6380fff, REGISTRY_ARIN }, // 198.55.32.0 - 198.56.15.255 { 0xc6381a00, 0xc6387fff, REGISTRY_ARIN }, // 198.56.26.0 - 198.56.127.255 { 0xc6388000, 0xc638ffff, REGISTRY_RIPENCC }, // 198.56.128.0 - 198.56.255.255 { 0xc6390000, 0xc63a07ff, REGISTRY_ARIN }, // 198.57.0.0 - 198.58.7.255 { 0xc63a0800, 0xc63a0cff, REGISTRY_LACNIC }, // 198.58.8.0 - 198.58.12.255 { 0xc63a0d00, 0xc63ba1ff, REGISTRY_ARIN }, // 198.58.13.0 - 198.59.161.255 { 0xc63ba200, 0xc63ba3ff, REGISTRY_APNIC }, // 198.59.162.0 - 198.59.163.255 { 0xc63ba400, 0xc63d00ff, REGISTRY_ARIN }, // 198.59.164.0 - 198.61.0.255 { 0xc63d0400, 0xc63d07ff, REGISTRY_ARIN }, // 198.61.4.0 - 198.61.7.255 { 0xc63d1000, 0xc63e67ff, REGISTRY_ARIN }, // 198.61.16.0 - 198.62.103.255 { 0xc63e6800, 0xc63e68ff, REGISTRY_RIPENCC }, // 198.62.104.0 - 198.62.104.255 { 0xc63e6900, 0xc649dbff, REGISTRY_ARIN }, // 198.62.105.0 - 198.73.219.255 { 0xc649dc00, 0xc649dcff, REGISTRY_APNIC }, // 198.73.220.0 - 198.73.220.255 { 0xc649dd00, 0xc64a17ff, REGISTRY_ARIN }, // 198.73.221.0 - 198.74.23.255 { 0xc64a1800, 0xc64a1bff, REGISTRY_APNIC }, // 198.74.24.0 - 198.74.27.255 { 0xc64a1c00, 0xc65957ff, REGISTRY_ARIN }, // 198.74.28.0 - 198.89.87.255 { 0xc6595800, 0xc6595fff, REGISTRY_RIPENCC }, // 198.89.88.0 - 198.89.95.255 { 0xc6596000, 0xc659e7ff, REGISTRY_ARIN }, // 198.89.96.0 - 198.89.231.255 { 0xc659e800, 0xc659efff, REGISTRY_RIPENCC }, // 198.89.232.0 - 198.89.239.255 { 0xc659f000, 0xc66125ff, REGISTRY_ARIN }, // 198.89.240.0 - 198.97.37.255 { 0xc6612600, 0xc66126ff, REGISTRY_LACNIC }, // 198.97.38.0 - 198.97.38.255 { 0xc6612700, 0xc66393ff, REGISTRY_ARIN }, // 198.97.39.0 - 198.99.147.255 { 0xc6639400, 0xc66394ff, REGISTRY_RIPENCC }, // 198.99.148.0 - 198.99.148.255 { 0xc6639500, 0xc663acff, REGISTRY_ARIN }, // 198.99.149.0 - 198.99.172.255 { 0xc663ad00, 0xc663adff, REGISTRY_APNIC }, // 198.99.173.0 - 198.99.173.255 { 0xc663ae00, 0xc663ddff, REGISTRY_ARIN }, // 198.99.174.0 - 198.99.221.255 { 0xc663de00, 0xc663deff, REGISTRY_RIPENCC }, // 198.99.222.0 - 198.99.222.255 { 0xc663df00, 0xc663e5ff, REGISTRY_ARIN }, // 198.99.223.0 - 198.99.229.255 { 0xc663e600, 0xc663e7ff, REGISTRY_RIPENCC }, // 198.99.230.0 - 198.99.231.255 { 0xc663e800, 0xc66912ff, REGISTRY_ARIN }, // 198.99.232.0 - 198.105.18.255 { 0xc6691300, 0xc66913ff, REGISTRY_APNIC }, // 198.105.19.0 - 198.105.19.255 { 0xc6691400, 0xc6695fff, REGISTRY_ARIN }, // 198.105.20.0 - 198.105.95.255 { 0xc6696000, 0xc6697fff, REGISTRY_RIPENCC }, // 198.105.96.0 - 198.105.127.255 { 0xc6698000, 0xc6854fff, REGISTRY_ARIN }, // 198.105.128.0 - 198.133.79.255 { 0xc6855000, 0xc68555ff, REGISTRY_RIPENCC }, // 198.133.80.0 - 198.133.85.255 { 0xc6855600, 0xc6858bff, REGISTRY_ARIN }, // 198.133.86.0 - 198.133.139.255 { 0xc6858c00, 0xc6858cff, REGISTRY_RIPENCC }, // 198.133.140.0 - 198.133.140.255 { 0xc6858d00, 0xc685cdff, REGISTRY_ARIN }, // 198.133.141.0 - 198.133.205.255 { 0xc685ce00, 0xc685ceff, REGISTRY_RIPENCC }, // 198.133.206.0 - 198.133.206.255 { 0xc685cf00, 0xc685e1ff, REGISTRY_ARIN }, // 198.133.207.0 - 198.133.225.255 { 0xc685e200, 0xc685e2ff, REGISTRY_RIPENCC }, // 198.133.226.0 - 198.133.226.255 { 0xc685e300, 0xc68788ff, REGISTRY_ARIN }, // 198.133.227.0 - 198.135.136.255 { 0xc6878900, 0xc6878aff, REGISTRY_RIPENCC }, // 198.135.137.0 - 198.135.138.255 { 0xc6878b00, 0xc687a6ff, REGISTRY_ARIN }, // 198.135.139.0 - 198.135.166.255 { 0xc687a700, 0xc687a7ff, REGISTRY_RIPENCC }, // 198.135.167.0 - 198.135.167.255 { 0xc687a800, 0xc68987ff, REGISTRY_ARIN }, // 198.135.168.0 - 198.137.135.255 { 0xc6898800, 0xc6898bff, REGISTRY_RIPENCC }, // 198.137.136.0 - 198.137.139.255 { 0xc6898c00, 0xc68c8cff, REGISTRY_ARIN }, // 198.137.140.0 - 198.140.140.255 { 0xc68c8d00, 0xc68c8dff, REGISTRY_RIPENCC }, // 198.140.141.0 - 198.140.141.255 { 0xc68c8e00, 0xc68dffff, REGISTRY_ARIN }, // 198.140.142.0 - 198.141.255.255 { 0xc68e0000, 0xc68effff, REGISTRY_APNIC }, // 198.142.0.0 - 198.142.255.255 { 0xc68f0000, 0xc6907fff, REGISTRY_ARIN }, // 198.143.0.0 - 198.144.127.255 { 0xc6908000, 0xc6908fff, REGISTRY_APNIC }, // 198.144.128.0 - 198.144.143.255 { 0xc6909000, 0xc6909fff, REGISTRY_ARIN }, // 198.144.144.0 - 198.144.159.255 { 0xc690a000, 0xc690afff, REGISTRY_APNIC }, // 198.144.160.0 - 198.144.175.255 { 0xc690b000, 0xc6939fff, REGISTRY_ARIN }, // 198.144.176.0 - 198.147.159.255 { 0xc693a000, 0xc693a0ff, REGISTRY_RIPENCC }, // 198.147.160.0 - 198.147.160.255 { 0xc693a100, 0xc694b0ff, REGISTRY_ARIN }, // 198.147.161.0 - 198.148.176.255 { 0xc694b100, 0xc694b2ff, REGISTRY_RIPENCC }, // 198.148.177.0 - 198.148.178.255 { 0xc694b300, 0xc694bcff, REGISTRY_ARIN }, // 198.148.179.0 - 198.148.188.255 { 0xc694bd00, 0xc694bdff, REGISTRY_APNIC }, // 198.148.189.0 - 198.148.189.255 { 0xc694be00, 0xc694bfff, REGISTRY_ARIN }, // 198.148.190.0 - 198.148.191.255 { 0xc694c000, 0xc694c5ff, REGISTRY_APNIC }, // 198.148.192.0 - 198.148.197.255 { 0xc694c600, 0xc69783ff, REGISTRY_ARIN }, // 198.148.198.0 - 198.151.131.255 { 0xc6978400, 0xc69784ff, REGISTRY_LACNIC }, // 198.151.132.0 - 198.151.132.255 { 0xc6978500, 0xc6979cff, REGISTRY_ARIN }, // 198.151.133.0 - 198.151.156.255 { 0xc6979d00, 0xc6979dff, REGISTRY_RIPENCC }, // 198.151.157.0 - 198.151.157.255 { 0xc6979e00, 0xc6a097ff, REGISTRY_ARIN }, // 198.151.158.0 - 198.160.151.255 { 0xc6a09800, 0xc6a098ff, REGISTRY_RIPENCC }, // 198.160.152.0 - 198.160.152.255 { 0xc6a09900, 0xc6a0a3ff, REGISTRY_ARIN }, // 198.160.153.0 - 198.160.163.255 { 0xc6a0a400, 0xc6a0a9ff, REGISTRY_RIPENCC }, // 198.160.164.0 - 198.160.169.255 { 0xc6a0aa00, 0xc6a152ff, REGISTRY_ARIN }, // 198.160.170.0 - 198.161.82.255 { 0xc6a15300, 0xc6a153ff, REGISTRY_LACNIC }, // 198.161.83.0 - 198.161.83.255 { 0xc6a15400, 0xc6af63ff, REGISTRY_ARIN }, // 198.161.84.0 - 198.175.99.255 { 0xc6af6400, 0xc6af67ff, REGISTRY_APNIC }, // 198.175.100.0 - 198.175.103.255 { 0xc6af6800, 0xc6b073ff, REGISTRY_ARIN }, // 198.175.104.0 - 198.176.115.255 { 0xc6b07400, 0xc6b075ff, REGISTRY_RIPENCC }, // 198.176.116.0 - 198.176.117.255 { 0xc6b07600, 0xc6b3e0ff, REGISTRY_ARIN }, // 198.176.118.0 - 198.179.224.255 { 0xc6b3e100, 0xc6b3e1ff, REGISTRY_APNIC }, // 198.179.225.0 - 198.179.225.255 { 0xc6b3e200, 0xc6b48dff, REGISTRY_ARIN }, // 198.179.226.0 - 198.180.141.255 { 0xc6b48e00, 0xc6b48eff, REGISTRY_APNIC }, // 198.180.142.0 - 198.180.142.255 { 0xc6b48f00, 0xc6b495ff, REGISTRY_ARIN }, // 198.180.143.0 - 198.180.149.255 { 0xc6b49600, 0xc6b499ff, REGISTRY_RIPENCC }, // 198.180.150.0 - 198.180.153.255 { 0xc6b49a00, 0xc6b8a0ff, REGISTRY_ARIN }, // 198.180.154.0 - 198.184.160.255 { 0xc6b8a100, 0xc6b8a1ff, REGISTRY_LACNIC }, // 198.184.161.0 - 198.184.161.255 { 0xc6b8a200, 0xc6c7ffff, REGISTRY_ARIN }, // 198.184.162.0 - 198.199.255.255 { 0xc6c80000, 0xc6c809ff, REGISTRY_APNIC }, // 198.200.0.0 - 198.200.9.255 { 0xc6c80a00, 0xc6cd0bff, REGISTRY_ARIN }, // 198.200.10.0 - 198.205.11.255 { 0xc6cd0c00, 0xc6cd0eff, REGISTRY_RIPENCC }, // 198.205.12.0 - 198.205.14.255 { 0xc6cd0f00, 0xc6cd65ff, REGISTRY_ARIN }, // 198.205.15.0 - 198.205.101.255 { 0xc6cd6600, 0xc6cd66ff, REGISTRY_RIPENCC }, // 198.205.102.0 - 198.205.102.255 { 0xc6cd6700, 0xc6cec4ff, REGISTRY_ARIN }, // 198.205.103.0 - 198.206.196.255 { 0xc6cec500, 0xc6cec5ff, REGISTRY_RIPENCC }, // 198.206.197.0 - 198.206.197.255 { 0xc6cec600, 0xc6cec7ff, REGISTRY_ARIN }, // 198.206.198.0 - 198.206.199.255 { 0xc6cec800, 0xc6cecaff, REGISTRY_RIPENCC }, // 198.206.200.0 - 198.206.202.255 { 0xc6cecb00, 0xc6d9efff, REGISTRY_ARIN }, // 198.206.203.0 - 198.217.239.255 { 0xc6d9f000, 0xc6d9f7ff, REGISTRY_RIPENCC }, // 198.217.240.0 - 198.217.247.255 { 0xc6d9f800, 0xc6d9f8ff, REGISTRY_APNIC }, // 198.217.248.0 - 198.217.248.255 { 0xc6d9f900, 0xc6f07fff, REGISTRY_ARIN }, // 198.217.249.0 - 198.240.127.255 { 0xc6f08000, 0xc6f0ffff, REGISTRY_RIPENCC }, // 198.240.128.0 - 198.240.255.255 { 0xc6f10000, 0xc6f409ff, REGISTRY_ARIN }, // 198.241.0.0 - 198.244.9.255 { 0xc6f40a00, 0xc6f40bff, REGISTRY_APNIC }, // 198.244.10.0 - 198.244.11.255 { 0xc6f40c00, 0xc6f47fff, REGISTRY_ARIN }, // 198.244.12.0 - 198.244.127.255 { 0xc6f48000, 0xc6f4ffff, REGISTRY_RIPENCC }, // 198.244.128.0 - 198.244.255.255 { 0xc6f50000, 0xc6f6deff, REGISTRY_ARIN }, // 198.245.0.0 - 198.246.222.255 { 0xc6f6df00, 0xc6f6dfff, REGISTRY_APNIC }, // 198.246.223.0 - 198.246.223.255 { 0xc6f6e000, 0xc7049dff, REGISTRY_ARIN }, // 198.246.224.0 - 199.4.157.255 { 0xc7049e00, 0xc7049eff, REGISTRY_RIPENCC }, // 199.4.158.0 - 199.4.158.255 { 0xc7049f00, 0xc705b3ff, REGISTRY_ARIN }, // 199.4.159.0 - 199.5.179.255 { 0xc705b400, 0xc705b5ff, REGISTRY_RIPENCC }, // 199.5.180.0 - 199.5.181.255 { 0xc705b600, 0xc70917ff, REGISTRY_ARIN }, // 199.5.182.0 - 199.9.23.255 { 0xc7091800, 0xc7091fff, REGISTRY_APNIC }, // 199.9.24.0 - 199.9.31.255 { 0xc7092000, 0xc70fe7ff, REGISTRY_ARIN }, // 199.9.32.0 - 199.15.231.255 { 0xc70fe800, 0xc70fefff, REGISTRY_RIPENCC }, // 199.15.232.0 - 199.15.239.255 { 0xc70ff000, 0xc715abff, REGISTRY_ARIN }, // 199.15.240.0 - 199.21.171.255 { 0xc715ac00, 0xc715afff, REGISTRY_APNIC }, // 199.21.172.0 - 199.21.175.255 { 0xc715b000, 0xc71a5fff, REGISTRY_ARIN }, // 199.21.176.0 - 199.26.95.255 { 0xc71a6000, 0xc71a67ff, REGISTRY_APNIC }, // 199.26.96.0 - 199.26.103.255 { 0xc71a6800, 0xc71ae9ff, REGISTRY_ARIN }, // 199.26.104.0 - 199.26.233.255 { 0xc71aea00, 0xc71aeaff, REGISTRY_LACNIC }, // 199.26.234.0 - 199.26.234.255 { 0xc71aeb00, 0xc72209ff, REGISTRY_ARIN }, // 199.26.235.0 - 199.34.9.255 { 0xc7220a00, 0xc7220aff, REGISTRY_APNIC }, // 199.34.10.0 - 199.34.10.255 { 0xc7220b00, 0xc72273ff, REGISTRY_ARIN }, // 199.34.11.0 - 199.34.115.255 { 0xc7227400, 0xc72277ff, REGISTRY_RIPENCC }, // 199.34.116.0 - 199.34.119.255 { 0xc7227800, 0xc72b11ff, REGISTRY_ARIN }, // 199.34.120.0 - 199.43.17.255 { 0xc72b1200, 0xc72b13ff, REGISTRY_APNIC }, // 199.43.18.0 - 199.43.19.255 { 0xc72b1400, 0xc72b2cff, REGISTRY_ARIN }, // 199.43.20.0 - 199.43.44.255 { 0xc72b2d00, 0xc72b2dff, REGISTRY_APNIC }, // 199.43.45.0 - 199.43.45.255 { 0xc72b2e00, 0xc72b3eff, REGISTRY_ARIN }, // 199.43.46.0 - 199.43.62.255 { 0xc72b3f00, 0xc72b3fff, REGISTRY_APNIC }, // 199.43.63.0 - 199.43.63.255 { 0xc72b4000, 0xc72bf5ff, REGISTRY_ARIN }, // 199.43.64.0 - 199.43.245.255 { 0xc72bf600, 0xc72bf7ff, REGISTRY_RIPENCC }, // 199.43.246.0 - 199.43.247.255 { 0xc72bf800, 0xc730dfff, REGISTRY_ARIN }, // 199.43.248.0 - 199.48.223.255 { 0xc730e000, 0xc730e0ff, REGISTRY_RIPENCC }, // 199.48.224.0 - 199.48.224.255 { 0xc730e100, 0xc730e5ff, REGISTRY_ARIN }, // 199.48.225.0 - 199.48.229.255 { 0xc730e600, 0xc730e7ff, REGISTRY_RIPENCC }, // 199.48.230.0 - 199.48.231.255 { 0xc730e800, 0xc734ffff, REGISTRY_ARIN }, // 199.48.232.0 - 199.52.255.255 { 0xc7350000, 0xc735ffff, REGISTRY_RIPENCC }, // 199.53.0.0 - 199.53.255.255 { 0xc7360000, 0xc73cd6ff, REGISTRY_ARIN }, // 199.54.0.0 - 199.60.214.255 { 0xc73cd700, 0xc73cd7ff, REGISTRY_LACNIC }, // 199.60.215.0 - 199.60.215.255 { 0xc73cd800, 0xc741bfff, REGISTRY_ARIN }, // 199.60.216.0 - 199.65.191.255 { 0xc741c000, 0xc741c7ff, REGISTRY_APNIC }, // 199.65.192.0 - 199.65.199.255 { 0xc741c800, 0xc7427fff, REGISTRY_ARIN }, // 199.65.200.0 - 199.66.127.255 { 0xc7428000, 0xc74283ff, REGISTRY_RIPENCC }, // 199.66.128.0 - 199.66.131.255 { 0xc7428400, 0xc74345ff, REGISTRY_ARIN }, // 199.66.132.0 - 199.67.69.255 { 0xc7434600, 0xc74347ff, REGISTRY_APNIC }, // 199.67.70.0 - 199.67.71.255 { 0xc7434800, 0xc7434bff, REGISTRY_RIPENCC }, // 199.67.72.0 - 199.67.75.255 { 0xc7434c00, 0xc7434fff, REGISTRY_APNIC }, // 199.67.76.0 - 199.67.79.255 { 0xc7435000, 0xc74353ff, REGISTRY_RIPENCC }, // 199.67.80.0 - 199.67.83.255 { 0xc7435400, 0xc74357ff, REGISTRY_ARIN }, // 199.67.84.0 - 199.67.87.255 { 0xc7435800, 0xc7435bff, REGISTRY_RIPENCC }, // 199.67.88.0 - 199.67.91.255 { 0xc7435c00, 0xc7435dff, REGISTRY_ARIN }, // 199.67.92.0 - 199.67.93.255 { 0xc7435e00, 0xc7435fff, REGISTRY_APNIC }, // 199.67.94.0 - 199.67.95.255 { 0xc7436000, 0xc74abbff, REGISTRY_ARIN }, // 199.67.96.0 - 199.74.187.255 { 0xc74abc00, 0xc74abfff, REGISTRY_RIPENCC }, // 199.74.188.0 - 199.74.191.255 { 0xc74ac000, 0xc75363ff, REGISTRY_ARIN }, // 199.74.192.0 - 199.83.99.255 { 0xc7536400, 0xc75365ff, REGISTRY_LACNIC }, // 199.83.100.0 - 199.83.101.255 { 0xc7536600, 0xc75366ff, REGISTRY_ARIN }, // 199.83.102.0 - 199.83.102.255 { 0xc7536700, 0xc75367ff, REGISTRY_RIPENCC }, // 199.83.103.0 - 199.83.103.255 { 0xc7536800, 0xc758cfff, REGISTRY_ARIN }, // 199.83.104.0 - 199.88.207.255 { 0xc758d000, 0xc758d7ff, REGISTRY_RIPENCC }, // 199.88.208.0 - 199.88.215.255 { 0xc758d800, 0xc75b0fff, REGISTRY_ARIN }, // 199.88.216.0 - 199.91.15.255 { 0xc75b1000, 0xc75b1fff, REGISTRY_RIPENCC }, // 199.91.16.0 - 199.91.31.255 { 0xc75b2000, 0xc76707ff, REGISTRY_ARIN }, // 199.91.32.0 - 199.103.7.255 { 0xc7670800, 0xc7670cff, REGISTRY_RIPENCC }, // 199.103.8.0 - 199.103.12.255 { 0xc7670d00, 0xc76765ff, REGISTRY_ARIN }, // 199.103.13.0 - 199.103.101.255 { 0xc7676600, 0xc76766ff, REGISTRY_LACNIC }, // 199.103.102.0 - 199.103.102.255 { 0xc7676700, 0xc7a621ff, REGISTRY_ARIN }, // 199.103.103.0 - 199.166.33.255 { 0xc7a62200, 0xc7a625ff, REGISTRY_APNIC }, // 199.166.34.0 - 199.166.37.255 { 0xc7a62600, 0xc7afdbff, REGISTRY_ARIN }, // 199.166.38.0 - 199.175.219.255 { 0xc7afdc00, 0xc7afdfff, REGISTRY_RIPENCC }, // 199.175.220.0 - 199.175.223.255 { 0xc7afe000, 0xc7b54cff, REGISTRY_ARIN }, // 199.175.224.0 - 199.181.76.255 { 0xc7b54d00, 0xc7b54dff, REGISTRY_RIPENCC }, // 199.181.77.0 - 199.181.77.255 { 0xc7b54e00, 0xc7b6e7ff, REGISTRY_ARIN }, // 199.181.78.0 - 199.182.231.255 { 0xc7b6e800, 0xc7b6efff, REGISTRY_RIPENCC }, // 199.182.232.0 - 199.182.239.255 { 0xc7b6f000, 0xc7c381ff, REGISTRY_ARIN }, // 199.182.240.0 - 199.195.129.255 { 0xc7c38200, 0xc7c383ff, REGISTRY_RIPENCC }, // 199.195.130.0 - 199.195.131.255 { 0xc7c38400, 0xc7caffff, REGISTRY_ARIN }, // 199.195.132.0 - 199.202.255.255 { 0xc7cb0000, 0xc7cbffff, REGISTRY_RIPENCC }, // 199.203.0.0 - 199.203.255.255 { 0xc7cc0000, 0xc7ccd6ff, REGISTRY_ARIN }, // 199.204.0.0 - 199.204.214.255 { 0xc7ccd700, 0xc7ccd7ff, REGISTRY_RIPENCC }, // 199.204.215.0 - 199.204.215.255 { 0xc7ccd800, 0xc7d438ff, REGISTRY_ARIN }, // 199.204.216.0 - 199.212.56.255 { 0xc7d43900, 0xc7d439ff, REGISTRY_APNIC }, // 199.212.57.0 - 199.212.57.255 { 0xc7d43a00, 0xc7e65fff, REGISTRY_ARIN }, // 199.212.58.0 - 199.230.95.255 { 0xc7e66000, 0xc7e667ff, REGISTRY_APNIC }, // 199.230.96.0 - 199.230.103.255 { 0xc7e66800, 0xc7e7eaff, REGISTRY_ARIN }, // 199.230.104.0 - 199.231.234.255 { 0xc7e7eb00, 0xc7e7ebff, REGISTRY_RIPENCC }, // 199.231.235.0 - 199.231.235.255 { 0xc7e7ec00, 0xc7f6ffff, REGISTRY_ARIN }, // 199.231.236.0 - 199.246.255.255 { 0xc7f70000, 0xc7f71fff, REGISTRY_RIPENCC }, // 199.247.0.0 - 199.247.31.255 { 0xc7f72000, 0xc7f737ff, REGISTRY_ARIN }, // 199.247.32.0 - 199.247.55.255 { 0xc7f73800, 0xc7f73fff, REGISTRY_RIPENCC }, // 199.247.56.0 - 199.247.63.255 { 0xc7f74000, 0xc7f79fff, REGISTRY_ARIN }, // 199.247.64.0 - 199.247.159.255 { 0xc7f7a000, 0xc7f7afff, REGISTRY_APNIC }, // 199.247.160.0 - 199.247.175.255 { 0xc7f7b000, 0xc7f88fff, REGISTRY_ARIN }, // 199.247.176.0 - 199.248.143.255 { 0xc7f89000, 0xc7f890ff, REGISTRY_LACNIC }, // 199.248.144.0 - 199.248.144.255 { 0xc7f89100, 0xc7fa7fff, REGISTRY_ARIN }, // 199.248.145.0 - 199.250.127.255 { 0xc7fa8000, 0xc7fa9fff, REGISTRY_RIPENCC }, // 199.250.128.0 - 199.250.159.255 { 0xc7faa000, 0xc7ff6fff, REGISTRY_ARIN }, // 199.250.160.0 - 199.255.111.255 { 0xc7ff7000, 0xc7ff73ff, REGISTRY_RIPENCC }, // 199.255.112.0 - 199.255.115.255 { 0xc7ff7400, 0xc7ffffff, REGISTRY_ARIN }, // 199.255.116.0 - 199.255.255.255 { 0xc8000000, 0xc8005dff, REGISTRY_LACNIC }, // 200.0.0.0 - 200.0.93.255 { 0xc8005e00, 0xc8005eff, REGISTRY_ARIN }, // 200.0.94.0 - 200.0.94.255 { 0xc8005f00, 0xc80088ff, REGISTRY_LACNIC }, // 200.0.95.0 - 200.0.136.255 { 0xc8008900, 0xc8008aff, REGISTRY_ARIN }, // 200.0.137.0 - 200.0.138.255 { 0xc8008b00, 0xc800d7ff, REGISTRY_LACNIC }, // 200.0.139.0 - 200.0.215.255 { 0xc800d800, 0xc800dfff, REGISTRY_ARIN }, // 200.0.216.0 - 200.0.223.255 { 0xc800e000, 0xc8019fff, REGISTRY_LACNIC }, // 200.0.224.0 - 200.1.159.255 { 0xc801a000, 0xc801a0ff, REGISTRY_ARIN }, // 200.1.160.0 - 200.1.160.255 { 0xc801a100, 0xc804ffff, REGISTRY_LACNIC }, // 200.1.161.0 - 200.4.255.255 { 0xc8050000, 0xc80508ff, REGISTRY_ARIN }, // 200.5.0.0 - 200.5.8.255 { 0xc8050900, 0xc8050aff, REGISTRY_LACNIC }, // 200.5.9.0 - 200.5.10.255 { 0xc8050b00, 0xc8050bff, REGISTRY_ARIN }, // 200.5.11.0 - 200.5.11.255 { 0xc8050c00, 0xc80951ff, REGISTRY_LACNIC }, // 200.5.12.0 - 200.9.81.255 { 0xc8095200, 0xc80953ff, REGISTRY_ARIN }, // 200.9.82.0 - 200.9.83.255 { 0xc8095400, 0xc80972ff, REGISTRY_LACNIC }, // 200.9.84.0 - 200.9.114.255 { 0xc8097300, 0xc80973ff, REGISTRY_ARIN }, // 200.9.115.0 - 200.9.115.255 { 0xc8097400, 0xc80a97ff, REGISTRY_LACNIC }, // 200.9.116.0 - 200.10.151.255 { 0xc80a9800, 0xc80a98ff, REGISTRY_ARIN }, // 200.10.152.0 - 200.10.152.255 { 0xc80a9900, 0xc80a9aff, REGISTRY_LACNIC }, // 200.10.153.0 - 200.10.154.255 { 0xc80a9b00, 0xc80a9bff, REGISTRY_ARIN }, // 200.10.155.0 - 200.10.155.255 { 0xc80a9c00, 0xc80a9fff, REGISTRY_LACNIC }, // 200.10.156.0 - 200.10.159.255 { 0xc80aa000, 0xc80aa0ff, REGISTRY_ARIN }, // 200.10.160.0 - 200.10.160.255 { 0xc80aa100, 0xc80aa4ff, REGISTRY_LACNIC }, // 200.10.161.0 - 200.10.164.255 { 0xc80aa500, 0xc80aa6ff, REGISTRY_ARIN }, // 200.10.165.0 - 200.10.166.255 { 0xc80aa700, 0xc80ca7ff, REGISTRY_LACNIC }, // 200.10.167.0 - 200.12.167.255 { 0xc80ca800, 0xc80ca8ff, REGISTRY_ARIN }, // 200.12.168.0 - 200.12.168.255 { 0xc80ca900, 0xc80cdfff, REGISTRY_LACNIC }, // 200.12.169.0 - 200.12.223.255 { 0xc80ce000, 0xc80cefff, REGISTRY_ARIN }, // 200.12.224.0 - 200.12.239.255 { 0xc80cf000, 0xc80effff, REGISTRY_LACNIC }, // 200.12.240.0 - 200.14.255.255 { 0xc80f0000, 0xc80fffff, REGISTRY_ARIN }, // 200.15.0.0 - 200.15.255.255 { 0xc8100000, 0xc81007ff, REGISTRY_LACNIC }, // 200.16.0.0 - 200.16.7.255 { 0xc8100800, 0xc8100fff, REGISTRY_AFRINIC }, // 200.16.8.0 - 200.16.15.255 { 0xc8101000, 0xc81057ff, REGISTRY_LACNIC }, // 200.16.16.0 - 200.16.87.255 { 0xc8105800, 0xc81058ff, REGISTRY_ARIN }, // 200.16.88.0 - 200.16.88.255 { 0xc8105900, 0xc81867ff, REGISTRY_LACNIC }, // 200.16.89.0 - 200.24.103.255 { 0xc8186c00, 0xc8187bff, REGISTRY_LACNIC }, // 200.24.108.0 - 200.24.123.255 { 0xc8188000, 0xc81dffff, REGISTRY_LACNIC }, // 200.24.128.0 - 200.29.255.255 { 0xc81e0000, 0xc81e3fff, REGISTRY_ARIN }, // 200.30.0.0 - 200.30.63.255 { 0xc81e4000, 0xc8211bff, REGISTRY_LACNIC }, // 200.30.64.0 - 200.33.27.255 { 0xc8211d00, 0xc831ffff, REGISTRY_LACNIC }, // 200.33.29.0 - 200.49.255.255 { 0xc8320000, 0xc8321fff, REGISTRY_ARIN }, // 200.50.0.0 - 200.50.31.255 { 0xc8322000, 0xc8323fff, REGISTRY_LACNIC }, // 200.50.32.0 - 200.50.63.255 { 0xc8324000, 0xc8325fff, REGISTRY_ARIN }, // 200.50.64.0 - 200.50.95.255 { 0xc8326000, 0xc8327fff, REGISTRY_LACNIC }, // 200.50.96.0 - 200.50.127.255 { 0xc8328000, 0xc8328fff, REGISTRY_ARIN }, // 200.50.128.0 - 200.50.143.255 { 0xc832a000, 0xc839ffff, REGISTRY_LACNIC }, // 200.50.160.0 - 200.57.255.255 { 0xc83a0000, 0xc83a3fff, REGISTRY_ARIN }, // 200.58.0.0 - 200.58.63.255 { 0xc83a4000, 0xc83dffff, REGISTRY_LACNIC }, // 200.58.64.0 - 200.61.255.255 { 0xc83e0000, 0xc83e3fff, REGISTRY_ARIN }, // 200.62.0.0 - 200.62.63.255 { 0xc83e4000, 0xc84507ff, REGISTRY_LACNIC }, // 200.62.64.0 - 200.69.7.255 { 0xc8450800, 0xc8450fff, REGISTRY_RIPENCC }, // 200.69.8.0 - 200.69.15.255 { 0xc8451000, 0xc84513ff, REGISTRY_LACNIC }, // 200.69.16.0 - 200.69.19.255 { 0xc8451400, 0xc8451bff, REGISTRY_ARIN }, // 200.69.20.0 - 200.69.27.255 { 0xc8451c00, 0xc86ee7ff, REGISTRY_LACNIC }, // 200.69.28.0 - 200.110.231.255 { 0xc86ee800, 0xc86eefff, REGISTRY_ARIN }, // 200.110.232.0 - 200.110.239.255 { 0xc86ef000, 0xc896efff, REGISTRY_LACNIC }, // 200.110.240.0 - 200.150.239.255 { 0xc8970000, 0xc8a28fff, REGISTRY_LACNIC }, // 200.151.0.0 - 200.162.143.255 { 0xc8a29000, 0xc8a29fff, REGISTRY_RIPENCC }, // 200.162.144.0 - 200.162.159.255 { 0xc8a2a000, 0xc8bd3fff, REGISTRY_LACNIC }, // 200.162.160.0 - 200.189.63.255 { 0xc8bd5000, 0xc8c2afff, REGISTRY_LACNIC }, // 200.189.80.0 - 200.194.175.255 { 0xc8c2c000, 0xc8c2efff, REGISTRY_LACNIC }, // 200.194.192.0 - 200.194.239.255 { 0xc8c2f000, 0xc8c2f7ff, REGISTRY_ARIN }, // 200.194.240.0 - 200.194.247.255 { 0xc8c2f800, 0xc8c4ffff, REGISTRY_LACNIC }, // 200.194.248.0 - 200.196.255.255 { 0xc8c50000, 0xc8c5ffff, REGISTRY_RIPENCC }, // 200.197.0.0 - 200.197.255.255 { 0xc8c60000, 0xc8db87ff, REGISTRY_LACNIC }, // 200.198.0.0 - 200.219.135.255 { 0xc8db8a00, 0xc8dfffff, REGISTRY_LACNIC }, // 200.219.138.0 - 200.223.255.255 { 0xc8e00000, 0xc8e0ffff, REGISTRY_RIPENCC }, // 200.224.0.0 - 200.224.255.255 { 0xc8e10000, 0xc8e11fff, REGISTRY_LACNIC }, // 200.225.0.0 - 200.225.31.255 { 0xc8e12000, 0xc8e12fff, REGISTRY_ARIN }, // 200.225.32.0 - 200.225.47.255 { 0xc8e13000, 0xc8e17bff, REGISTRY_LACNIC }, // 200.225.48.0 - 200.225.123.255 { 0xc8e18000, 0xc8e50fff, REGISTRY_LACNIC }, // 200.225.128.0 - 200.229.15.255 { 0xc8e51000, 0xc8e51fff, REGISTRY_ARIN }, // 200.229.16.0 - 200.229.31.255 { 0xc8e52000, 0xc8eadfff, REGISTRY_LACNIC }, // 200.229.32.0 - 200.234.223.255 { 0xc8eae000, 0xc8eaefff, REGISTRY_RIPENCC }, // 200.234.224.0 - 200.234.239.255 { 0xc8eaf000, 0xc8efffff, REGISTRY_LACNIC }, // 200.234.240.0 - 200.239.255.255 { 0xc8f00000, 0xc8f0dfff, REGISTRY_RIPENCC }, // 200.240.0.0 - 200.240.223.255 { 0xc8f0e000, 0xc92e6fff, REGISTRY_LACNIC }, // 200.240.224.0 - 201.46.111.255 { 0xc92e7000, 0xc92e71ff, REGISTRY_RIPENCC }, // 201.46.112.0 - 201.46.113.255 { 0xc92e7200, 0xc931bbff, REGISTRY_LACNIC }, // 201.46.114.0 - 201.49.187.255 { 0xc931bc00, 0xc931bfff, REGISTRY_RIPENCC }, // 201.49.188.0 - 201.49.191.255 { 0xc931c000, 0xc94d1fff, REGISTRY_LACNIC }, // 201.49.192.0 - 201.77.31.255 { 0xc94d2000, 0xc94d2fff, REGISTRY_APNIC }, // 201.77.32.0 - 201.77.47.255 { 0xc94d3000, 0xc994a7ff, REGISTRY_LACNIC }, // 201.77.48.0 - 201.148.167.255 { 0xc994a800, 0xc994abff, REGISTRY_RIPENCC }, // 201.148.168.0 - 201.148.171.255 { 0xc994ac00, 0xc9ffffff, REGISTRY_LACNIC }, // 201.148.172.0 - 201.255.255.255 { 0xca000000, 0xca0046ff, REGISTRY_APNIC }, // 202.0.0.0 - 202.0.70.255 { 0xca004800, 0xca004cff, REGISTRY_APNIC }, // 202.0.72.0 - 202.0.76.255 { 0xca004d00, 0xca004dff, REGISTRY_RIPENCC }, // 202.0.77.0 - 202.0.77.255 { 0xca004e00, 0xca0050ff, REGISTRY_APNIC }, // 202.0.78.0 - 202.0.80.255 { 0xca005400, 0xca0056ff, REGISTRY_APNIC }, // 202.0.84.0 - 202.0.86.255 { 0xca005800, 0xca0065ff, REGISTRY_APNIC }, // 202.0.88.0 - 202.0.101.255 { 0xca006700, 0xca006cff, REGISTRY_APNIC }, // 202.0.103.0 - 202.0.108.255 { 0xca006e00, 0xca0070ff, REGISTRY_APNIC }, // 202.0.110.0 - 202.0.112.255 { 0xca007300, 0xca0073ff, REGISTRY_APNIC }, // 202.0.115.0 - 202.0.115.255 { 0xca007500, 0xca0078ff, REGISTRY_APNIC }, // 202.0.117.0 - 202.0.120.255 { 0xca007a00, 0xca0097ff, REGISTRY_APNIC }, // 202.0.122.0 - 202.0.151.255 { 0xca009900, 0xca0103ff, REGISTRY_APNIC }, // 202.0.153.0 - 202.1.3.255 { 0xca010500, 0xca010fff, REGISTRY_APNIC }, // 202.1.5.0 - 202.1.15.255 { 0xca012000, 0xca01dfff, REGISTRY_APNIC }, // 202.1.32.0 - 202.1.223.255 { 0xca01e800, 0xca020fff, REGISTRY_APNIC }, // 202.1.232.0 - 202.2.15.255 { 0xca023400, 0xca0387ff, REGISTRY_APNIC }, // 202.2.52.0 - 202.3.135.255 { 0xca038900, 0xca04baff, REGISTRY_APNIC }, // 202.3.137.0 - 202.4.186.255 { 0xca04bb00, 0xca04bbff, REGISTRY_RIPENCC }, // 202.4.187.0 - 202.4.187.255 { 0xca04bc00, 0xca050fff, REGISTRY_APNIC }, // 202.4.188.0 - 202.5.15.255 { 0xca051000, 0xca051fff, REGISTRY_ARIN }, // 202.5.16.0 - 202.5.31.255 { 0xca052000, 0xca0604ff, REGISTRY_APNIC }, // 202.5.32.0 - 202.6.4.255 { 0xca060600, 0xca0640ff, REGISTRY_APNIC }, // 202.6.6.0 - 202.6.64.255 { 0xca064200, 0xca064bff, REGISTRY_APNIC }, // 202.6.66.0 - 202.6.75.255 { 0xca064d00, 0xca064eff, REGISTRY_APNIC }, // 202.6.77.0 - 202.6.78.255 { 0xca065000, 0xca0655ff, REGISTRY_APNIC }, // 202.6.80.0 - 202.6.85.255 { 0xca065700, 0xca06bfff, REGISTRY_APNIC }, // 202.6.87.0 - 202.6.191.255 { 0xca06d000, 0xca0807ff, REGISTRY_APNIC }, // 202.6.208.0 - 202.8.7.255 { 0xca080800, 0xca080bff, REGISTRY_ARIN }, // 202.8.8.0 - 202.8.11.255 { 0xca080c00, 0xca086bff, REGISTRY_APNIC }, // 202.8.12.0 - 202.8.107.255 { 0xca086c00, 0xca086fff, REGISTRY_RIPENCC }, // 202.8.108.0 - 202.8.111.255 { 0xca087000, 0xca0952ff, REGISTRY_APNIC }, // 202.8.112.0 - 202.9.82.255 { 0xca095400, 0xca0c16ff, REGISTRY_APNIC }, // 202.9.84.0 - 202.12.22.255 { 0xca0c1800, 0xca0c6dff, REGISTRY_APNIC }, // 202.12.24.0 - 202.12.109.255 { 0xca0c6f00, 0xca0c79ff, REGISTRY_APNIC }, // 202.12.111.0 - 202.12.121.255 { 0xca0c7d00, 0xca0c7dff, REGISTRY_APNIC }, // 202.12.125.0 - 202.12.125.255 { 0xca0c7f00, 0xca0e5eff, REGISTRY_APNIC }, // 202.12.127.0 - 202.14.94.255 { 0xca0e6000, 0xca0e88ff, REGISTRY_APNIC }, // 202.14.96.0 - 202.14.136.255 { 0xca0e8a00, 0xca0e8eff, REGISTRY_APNIC }, // 202.14.138.0 - 202.14.142.255 { 0xca0e9100, 0xca0ebaff, REGISTRY_APNIC }, // 202.14.145.0 - 202.14.186.255 { 0xca0ebc00, 0xca0ec7ff, REGISTRY_APNIC }, // 202.14.188.0 - 202.14.199.255 { 0xca0ecc00, 0xca0ed1ff, REGISTRY_APNIC }, // 202.14.204.0 - 202.14.209.255 { 0xca0ed500, 0xca0ed5ff, REGISTRY_APNIC }, // 202.14.213.0 - 202.14.213.255 { 0xca0ed700, 0xca0ee5ff, REGISTRY_APNIC }, // 202.14.215.0 - 202.14.229.255 { 0xca0ee700, 0xca0ee9ff, REGISTRY_APNIC }, // 202.14.231.0 - 202.14.233.255 { 0xca0eeb00, 0xca0ef2ff, REGISTRY_APNIC }, // 202.14.235.0 - 202.14.242.255 { 0xca0ef400, 0xca143fff, REGISTRY_APNIC }, // 202.14.244.0 - 202.20.63.255 { 0xca144100, 0xca1442ff, REGISTRY_APNIC }, // 202.20.65.0 - 202.20.66.255 { 0xca144400, 0xca144aff, REGISTRY_APNIC }, // 202.20.68.0 - 202.20.74.255 { 0xca144c00, 0xca146dff, REGISTRY_APNIC }, // 202.20.76.0 - 202.20.109.255 { 0xca146f00, 0xca146fff, REGISTRY_APNIC }, // 202.20.111.0 - 202.20.111.255 { 0xca147100, 0xca1475ff, REGISTRY_APNIC }, // 202.20.113.0 - 202.20.117.255 { 0xca147700, 0xca150fff, REGISTRY_APNIC }, // 202.20.119.0 - 202.21.15.255 { 0xca152000, 0xca159aff, REGISTRY_APNIC }, // 202.21.32.0 - 202.21.154.255 { 0xca159c00, 0xca15ffff, REGISTRY_APNIC }, // 202.21.156.0 - 202.21.255.255 { 0xca160800, 0xca169fff, REGISTRY_APNIC }, // 202.22.8.0 - 202.22.159.255 { 0xca16a000, 0xca16afff, REGISTRY_RIPENCC }, // 202.22.160.0 - 202.22.175.255 { 0xca16b000, 0xca1b24ff, REGISTRY_APNIC }, // 202.22.176.0 - 202.27.36.255 { 0xca1b2600, 0xca1b3bff, REGISTRY_APNIC }, // 202.27.38.0 - 202.27.59.255 { 0xca1b4000, 0xca1b43ff, REGISTRY_APNIC }, // 202.27.64.0 - 202.27.67.255 { 0xca1b4500, 0xca1b45ff, REGISTRY_APNIC }, // 202.27.69.0 - 202.27.69.255 { 0xca1b4800, 0xca1b4fff, REGISTRY_APNIC }, // 202.27.72.0 - 202.27.79.255 { 0xca1b5200, 0xca1b53ff, REGISTRY_APNIC }, // 202.27.82.0 - 202.27.83.255 { 0xca1b5500, 0xca1b5fff, REGISTRY_APNIC }, // 202.27.85.0 - 202.27.95.255 { 0xca1b6100, 0xca1b62ff, REGISTRY_APNIC }, // 202.27.97.0 - 202.27.98.255 { 0xca1b6400, 0xca1b6fff, REGISTRY_APNIC }, // 202.27.100.0 - 202.27.111.255 { 0xca1b7100, 0xca1b71ff, REGISTRY_APNIC }, // 202.27.113.0 - 202.27.113.255 { 0xca1b7300, 0xca1b75ff, REGISTRY_APNIC }, // 202.27.115.0 - 202.27.117.255 { 0xca1b7c00, 0xca1b81ff, REGISTRY_APNIC }, // 202.27.124.0 - 202.27.129.255 { 0xca1b8400, 0xca1b84ff, REGISTRY_APNIC }, // 202.27.132.0 - 202.27.132.255 { 0xca1b8600, 0xca1b89ff, REGISTRY_APNIC }, // 202.27.134.0 - 202.27.137.255 { 0xca1b8c00, 0xca1b8fff, REGISTRY_APNIC }, // 202.27.140.0 - 202.27.143.255 { 0xca1b9200, 0xca1b97ff, REGISTRY_APNIC }, // 202.27.146.0 - 202.27.151.255 { 0xca1b9c00, 0xca1ba0ff, REGISTRY_APNIC }, // 202.27.156.0 - 202.27.160.255 { 0xca1ba900, 0xca1babff, REGISTRY_APNIC }, // 202.27.169.0 - 202.27.171.255 { 0xca1bb000, 0xca1bbcff, REGISTRY_APNIC }, // 202.27.176.0 - 202.27.188.255 { 0xca1bbf00, 0xca1bccff, REGISTRY_APNIC }, // 202.27.191.0 - 202.27.204.255 { 0xca1bd100, 0xca1bdbff, REGISTRY_APNIC }, // 202.27.209.0 - 202.27.219.255 { 0xca1bdd00, 0xca1bdeff, REGISTRY_APNIC }, // 202.27.221.0 - 202.27.222.255 { 0xca1be200, 0xca1be3ff, REGISTRY_APNIC }, // 202.27.226.0 - 202.27.227.255 { 0xca1bea00, 0xca1becff, REGISTRY_APNIC }, // 202.27.234.0 - 202.27.236.255 { 0xca1bee00, 0xca1bf3ff, REGISTRY_APNIC }, // 202.27.238.0 - 202.27.243.255 { 0xca1bf600, 0xca1bf7ff, REGISTRY_APNIC }, // 202.27.246.0 - 202.27.247.255 { 0xca1bf900, 0xca1bf9ff, REGISTRY_APNIC }, // 202.27.249.0 - 202.27.249.255 { 0xca1bfa00, 0xca1bfaff, REGISTRY_ARIN }, // 202.27.250.0 - 202.27.250.255 { 0xca1bfb00, 0xca1bfcff, REGISTRY_APNIC }, // 202.27.251.0 - 202.27.252.255 { 0xca1bfe00, 0xca241bff, REGISTRY_APNIC }, // 202.27.254.0 - 202.36.27.255 { 0xca241d00, 0xca2422ff, REGISTRY_APNIC }, // 202.36.29.0 - 202.36.34.255 { 0xca242400, 0xca2429ff, REGISTRY_APNIC }, // 202.36.36.0 - 202.36.41.255 { 0xca242b00, 0xca242dff, REGISTRY_APNIC }, // 202.36.43.0 - 202.36.45.255 { 0xca242f00, 0xca2448ff, REGISTRY_APNIC }, // 202.36.47.0 - 202.36.72.255 { 0xca244b00, 0xca2451ff, REGISTRY_APNIC }, // 202.36.75.0 - 202.36.81.255 { 0xca245300, 0xca2456ff, REGISTRY_APNIC }, // 202.36.83.0 - 202.36.86.255 { 0xca245a00, 0xca245aff, REGISTRY_APNIC }, // 202.36.90.0 - 202.36.90.255 { 0xca245c00, 0xca2467ff, REGISTRY_APNIC }, // 202.36.92.0 - 202.36.103.255 { 0xca246a00, 0xca246aff, REGISTRY_APNIC }, // 202.36.106.0 - 202.36.106.255 { 0xca246c00, 0xca2471ff, REGISTRY_APNIC }, // 202.36.108.0 - 202.36.113.255 { 0xca247300, 0xca2473ff, REGISTRY_APNIC }, // 202.36.115.0 - 202.36.115.255 { 0xca247600, 0xca2476ff, REGISTRY_APNIC }, // 202.36.118.0 - 202.36.118.255 { 0xca247900, 0xca2479ff, REGISTRY_APNIC }, // 202.36.121.0 - 202.36.121.255 { 0xca247e00, 0xca2480ff, REGISTRY_APNIC }, // 202.36.126.0 - 202.36.128.255 { 0xca248200, 0xca248bff, REGISTRY_APNIC }, // 202.36.130.0 - 202.36.139.255 { 0xca248d00, 0xca2492ff, REGISTRY_APNIC }, // 202.36.141.0 - 202.36.146.255 { 0xca249500, 0xca249bff, REGISTRY_APNIC }, // 202.36.149.0 - 202.36.155.255 { 0xca249d00, 0xca249fff, REGISTRY_APNIC }, // 202.36.157.0 - 202.36.159.255 { 0xca24a200, 0xca24a3ff, REGISTRY_APNIC }, // 202.36.162.0 - 202.36.163.255 { 0xca24a800, 0xca24aaff, REGISTRY_APNIC }, // 202.36.168.0 - 202.36.170.255 { 0xca24ac00, 0xca24afff, REGISTRY_APNIC }, // 202.36.172.0 - 202.36.175.255 { 0xca24b200, 0xca24b7ff, REGISTRY_APNIC }, // 202.36.178.0 - 202.36.183.255 { 0xca24b900, 0xca24c3ff, REGISTRY_APNIC }, // 202.36.185.0 - 202.36.195.255 { 0xca24c500, 0xca24c5ff, REGISTRY_APNIC }, // 202.36.197.0 - 202.36.197.255 { 0xca24c700, 0xca24c8ff, REGISTRY_APNIC }, // 202.36.199.0 - 202.36.200.255 { 0xca24ca00, 0xca24caff, REGISTRY_APNIC }, // 202.36.202.0 - 202.36.202.255 { 0xca24cc00, 0xca24cdff, REGISTRY_APNIC }, // 202.36.204.0 - 202.36.205.255 { 0xca24d100, 0xca24d4ff, REGISTRY_APNIC }, // 202.36.209.0 - 202.36.212.255 { 0xca24d600, 0xca24e7ff, REGISTRY_APNIC }, // 202.36.214.0 - 202.36.231.255 { 0xca24e900, 0xca24e9ff, REGISTRY_APNIC }, // 202.36.233.0 - 202.36.233.255 { 0xca24eb00, 0xca24ebff, REGISTRY_APNIC }, // 202.36.235.0 - 202.36.235.255 { 0xca24ef00, 0xca24f0ff, REGISTRY_APNIC }, // 202.36.239.0 - 202.36.240.255 { 0xca24f200, 0xca250fff, REGISTRY_APNIC }, // 202.36.242.0 - 202.37.15.255 { 0xca251100, 0xca2511ff, REGISTRY_APNIC }, // 202.37.17.0 - 202.37.17.255 { 0xca251300, 0xca2515ff, REGISTRY_APNIC }, // 202.37.19.0 - 202.37.21.255 { 0xca251700, 0xca251aff, REGISTRY_APNIC }, // 202.37.23.0 - 202.37.26.255 { 0xca252000, 0xca2527ff, REGISTRY_APNIC }, // 202.37.32.0 - 202.37.39.255 { 0xca252a00, 0xca252bff, REGISTRY_APNIC }, // 202.37.42.0 - 202.37.43.255 { 0xca252d00, 0xca252dff, REGISTRY_APNIC }, // 202.37.45.0 - 202.37.45.255 { 0xca253000, 0xca2533ff, REGISTRY_APNIC }, // 202.37.48.0 - 202.37.51.255 { 0xca253600, 0xca2536ff, REGISTRY_APNIC }, // 202.37.54.0 - 202.37.54.255 { 0xca253800, 0xca2538ff, REGISTRY_APNIC }, // 202.37.56.0 - 202.37.56.255 { 0xca253a00, 0xca253aff, REGISTRY_APNIC }, // 202.37.58.0 - 202.37.58.255 { 0xca253c00, 0xca2541ff, REGISTRY_APNIC }, // 202.37.60.0 - 202.37.65.255 { 0xca254400, 0xca254eff, REGISTRY_APNIC }, // 202.37.68.0 - 202.37.78.255 { 0xca255000, 0xca2554ff, REGISTRY_APNIC }, // 202.37.80.0 - 202.37.84.255 { 0xca255600, 0xca2559ff, REGISTRY_APNIC }, // 202.37.86.0 - 202.37.89.255 { 0xca255d00, 0xca255eff, REGISTRY_APNIC }, // 202.37.93.0 - 202.37.94.255 { 0xca256000, 0xca2561ff, REGISTRY_APNIC }, // 202.37.96.0 - 202.37.97.255 { 0xca256300, 0xca2567ff, REGISTRY_APNIC }, // 202.37.99.0 - 202.37.103.255 { 0xca256a00, 0xca256fff, REGISTRY_APNIC }, // 202.37.106.0 - 202.37.111.255 { 0xca257100, 0xca2572ff, REGISTRY_APNIC }, // 202.37.113.0 - 202.37.114.255 { 0xca257400, 0xca257dff, REGISTRY_APNIC }, // 202.37.116.0 - 202.37.125.255 { 0xca257f00, 0xca257fff, REGISTRY_APNIC }, // 202.37.127.0 - 202.37.127.255 { 0xca258100, 0xca2581ff, REGISTRY_APNIC }, // 202.37.129.0 - 202.37.129.255 { 0xca258600, 0xca2586ff, REGISTRY_APNIC }, // 202.37.134.0 - 202.37.134.255 { 0xca258800, 0xca258aff, REGISTRY_APNIC }, // 202.37.136.0 - 202.37.138.255 { 0xca258c00, 0xca2597ff, REGISTRY_APNIC }, // 202.37.140.0 - 202.37.151.255 { 0xca259a00, 0xca259bff, REGISTRY_APNIC }, // 202.37.154.0 - 202.37.155.255 { 0xca25a000, 0xca25a1ff, REGISTRY_APNIC }, // 202.37.160.0 - 202.37.161.255 { 0xca25a300, 0xca25a3ff, REGISTRY_APNIC }, // 202.37.163.0 - 202.37.163.255 { 0xca25a700, 0xca25a8ff, REGISTRY_APNIC }, // 202.37.167.0 - 202.37.168.255 { 0xca25aa00, 0xca25abff, REGISTRY_APNIC }, // 202.37.170.0 - 202.37.171.255 { 0xca25b000, 0xca25b0ff, REGISTRY_APNIC }, // 202.37.176.0 - 202.37.176.255 { 0xca25b200, 0xca25b3ff, REGISTRY_APNIC }, // 202.37.178.0 - 202.37.179.255 { 0xca25b500, 0xca25b7ff, REGISTRY_APNIC }, // 202.37.181.0 - 202.37.183.255 { 0xca25b900, 0xca25b9ff, REGISTRY_APNIC }, // 202.37.185.0 - 202.37.185.255 { 0xca25bb00, 0xca25bbff, REGISTRY_APNIC }, // 202.37.187.0 - 202.37.187.255 { 0xca25c000, 0xca25c2ff, REGISTRY_APNIC }, // 202.37.192.0 - 202.37.194.255 { 0xca25c400, 0xca25c6ff, REGISTRY_APNIC }, // 202.37.196.0 - 202.37.198.255 { 0xca25c800, 0xca25d7ff, REGISTRY_APNIC }, // 202.37.200.0 - 202.37.215.255 { 0xca25dc00, 0xca25ddff, REGISTRY_APNIC }, // 202.37.220.0 - 202.37.221.255 { 0xca25df00, 0xca25e8ff, REGISTRY_APNIC }, // 202.37.223.0 - 202.37.232.255 { 0xca25ec00, 0xca25efff, REGISTRY_APNIC }, // 202.37.236.0 - 202.37.239.255 { 0xca25f200, 0xca25f7ff, REGISTRY_APNIC }, // 202.37.242.0 - 202.37.247.255 { 0xca25fa00, 0xca25fbff, REGISTRY_APNIC }, // 202.37.250.0 - 202.37.251.255 { 0xca25fd00, 0xca261fff, REGISTRY_APNIC }, // 202.37.253.0 - 202.38.31.255 { 0xca263000, 0xca280fff, REGISTRY_APNIC }, // 202.38.48.0 - 202.40.15.255 { 0xca282000, 0xca2881ff, REGISTRY_APNIC }, // 202.40.32.0 - 202.40.129.255 { 0xca288400, 0xca2892ff, REGISTRY_APNIC }, // 202.40.132.0 - 202.40.146.255 { 0xca289400, 0xca2980ff, REGISTRY_APNIC }, // 202.40.148.0 - 202.41.128.255 { 0xca298200, 0xca2c63ff, REGISTRY_APNIC }, // 202.41.130.0 - 202.44.99.255 { 0xca2c6800, 0xca2d03ff, REGISTRY_APNIC }, // 202.44.104.0 - 202.45.3.255 { 0xca2d0600, 0xca2d07ff, REGISTRY_APNIC }, // 202.45.6.0 - 202.45.7.255 { 0xca2d0a00, 0xca2d93ff, REGISTRY_APNIC }, // 202.45.10.0 - 202.45.147.255 { 0xca2d9500, 0xca2f58ff, REGISTRY_APNIC }, // 202.45.149.0 - 202.47.88.255 { 0xca2f5a00, 0xca2f85ff, REGISTRY_APNIC }, // 202.47.90.0 - 202.47.133.255 { 0xca2f8800, 0xca2f9fff, REGISTRY_APNIC }, // 202.47.136.0 - 202.47.159.255 { 0xca2fc000, 0xca3120ff, REGISTRY_APNIC }, // 202.47.192.0 - 202.49.32.255 { 0xca312200, 0xca312bff, REGISTRY_APNIC }, // 202.49.34.0 - 202.49.43.255 { 0xca313000, 0xca3132ff, REGISTRY_APNIC }, // 202.49.48.0 - 202.49.50.255 { 0xca313600, 0xca3136ff, REGISTRY_APNIC }, // 202.49.54.0 - 202.49.54.255 { 0xca313800, 0xca313bff, REGISTRY_APNIC }, // 202.49.56.0 - 202.49.59.255 { 0xca313e00, 0xca313eff, REGISTRY_APNIC }, // 202.49.62.0 - 202.49.62.255 { 0xca314000, 0xca314bff, REGISTRY_APNIC }, // 202.49.64.0 - 202.49.75.255 { 0xca314f00, 0xca3153ff, REGISTRY_APNIC }, // 202.49.79.0 - 202.49.83.255 { 0xca315800, 0xca3159ff, REGISTRY_RIPENCC }, // 202.49.88.0 - 202.49.89.255 { 0xca315b00, 0xca3167ff, REGISTRY_APNIC }, // 202.49.91.0 - 202.49.103.255 { 0xca316a00, 0xca316aff, REGISTRY_APNIC }, // 202.49.106.0 - 202.49.106.255 { 0xca317000, 0xca3171ff, REGISTRY_APNIC }, // 202.49.112.0 - 202.49.113.255 { 0xca317300, 0xca3179ff, REGISTRY_APNIC }, // 202.49.115.0 - 202.49.121.255 { 0xca317b00, 0xca317bff, REGISTRY_APNIC }, // 202.49.123.0 - 202.49.123.255 { 0xca317d00, 0xca3190ff, REGISTRY_APNIC }, // 202.49.125.0 - 202.49.144.255 { 0xca319400, 0xca3196ff, REGISTRY_APNIC }, // 202.49.148.0 - 202.49.150.255 { 0xca319800, 0xca31a5ff, REGISTRY_APNIC }, // 202.49.152.0 - 202.49.165.255 { 0xca31a800, 0xca31a9ff, REGISTRY_APNIC }, // 202.49.168.0 - 202.49.169.255 { 0xca31ab00, 0xca31b1ff, REGISTRY_APNIC }, // 202.49.171.0 - 202.49.177.255 { 0xca31b300, 0xca31bbff, REGISTRY_APNIC }, // 202.49.179.0 - 202.49.187.255 { 0xca31bd00, 0xca31beff, REGISTRY_APNIC }, // 202.49.189.0 - 202.49.190.255 { 0xca31c000, 0xca31c4ff, REGISTRY_APNIC }, // 202.49.192.0 - 202.49.196.255 { 0xca31c600, 0xca31ceff, REGISTRY_APNIC }, // 202.49.198.0 - 202.49.206.255 { 0xca31d000, 0xca31dfff, REGISTRY_APNIC }, // 202.49.208.0 - 202.49.223.255 { 0xca31e900, 0xca31e9ff, REGISTRY_APNIC }, // 202.49.233.0 - 202.49.233.255 { 0xca31f000, 0xca31f7ff, REGISTRY_APNIC }, // 202.49.240.0 - 202.49.247.255 { 0xca31f900, 0xca31f9ff, REGISTRY_APNIC }, // 202.49.249.0 - 202.49.249.255 { 0xca31fb00, 0xca322fff, REGISTRY_APNIC }, // 202.49.251.0 - 202.50.47.255 { 0xca323100, 0xca3231ff, REGISTRY_APNIC }, // 202.50.49.0 - 202.50.49.255 { 0xca323400, 0xca3238ff, REGISTRY_APNIC }, // 202.50.52.0 - 202.50.56.255 { 0xca324800, 0xca324bff, REGISTRY_APNIC }, // 202.50.72.0 - 202.50.75.255 { 0xca324e00, 0xca3256ff, REGISTRY_APNIC }, // 202.50.78.0 - 202.50.86.255 { 0xca325800, 0xca325aff, REGISTRY_APNIC }, // 202.50.88.0 - 202.50.90.255 { 0xca325f00, 0xca325fff, REGISTRY_APNIC }, // 202.50.95.0 - 202.50.95.255 { 0xca326400, 0xca3264ff, REGISTRY_APNIC }, // 202.50.100.0 - 202.50.100.255 { 0xca326600, 0xca3266ff, REGISTRY_APNIC }, // 202.50.102.0 - 202.50.102.255 { 0xca326800, 0xca326bff, REGISTRY_APNIC }, // 202.50.104.0 - 202.50.107.255 { 0xca326d00, 0xca3270ff, REGISTRY_APNIC }, // 202.50.109.0 - 202.50.112.255 { 0xca327300, 0xca3275ff, REGISTRY_APNIC }, // 202.50.115.0 - 202.50.117.255 { 0xca327700, 0xca3277ff, REGISTRY_APNIC }, // 202.50.119.0 - 202.50.119.255 { 0xca327900, 0xca327aff, REGISTRY_APNIC }, // 202.50.121.0 - 202.50.122.255 { 0xca327c00, 0xca327fff, REGISTRY_APNIC }, // 202.50.124.0 - 202.50.127.255 { 0xca328900, 0xca3289ff, REGISTRY_APNIC }, // 202.50.137.0 - 202.50.137.255 { 0xca328b00, 0xca3297ff, REGISTRY_APNIC }, // 202.50.139.0 - 202.50.151.255 { 0xca329c00, 0xca32a6ff, REGISTRY_APNIC }, // 202.50.156.0 - 202.50.166.255 { 0xca32a900, 0xca32aaff, REGISTRY_APNIC }, // 202.50.169.0 - 202.50.170.255 { 0xca32ac00, 0xca32aeff, REGISTRY_APNIC }, // 202.50.172.0 - 202.50.174.255 { 0xca32b000, 0xca32b0ff, REGISTRY_APNIC }, // 202.50.176.0 - 202.50.176.255 { 0xca32b400, 0xca32bbff, REGISTRY_APNIC }, // 202.50.180.0 - 202.50.187.255 { 0xca32c000, 0xca32dcff, REGISTRY_APNIC }, // 202.50.192.0 - 202.50.220.255 { 0xca32de00, 0xca32deff, REGISTRY_APNIC }, // 202.50.222.0 - 202.50.222.255 { 0xca32e000, 0xca32f1ff, REGISTRY_APNIC }, // 202.50.224.0 - 202.50.241.255 { 0xca32f500, 0xca32f7ff, REGISTRY_APNIC }, // 202.50.245.0 - 202.50.247.255 { 0xca32fc00, 0xca32feff, REGISTRY_APNIC }, // 202.50.252.0 - 202.50.254.255 { 0xca330000, 0xca358dff, REGISTRY_APNIC }, // 202.51.0.0 - 202.53.141.255 { 0xca358f00, 0xca3837ff, REGISTRY_APNIC }, // 202.53.143.0 - 202.56.55.255 { 0xca383900, 0xca38afff, REGISTRY_APNIC }, // 202.56.57.0 - 202.56.175.255 { 0xca38c000, 0xca3a63ff, REGISTRY_APNIC }, // 202.56.192.0 - 202.58.99.255 { 0xca3a6500, 0xca3a77ff, REGISTRY_APNIC }, // 202.58.101.0 - 202.58.119.255 { 0xca3a7c00, 0xca3ae2ff, REGISTRY_APNIC }, // 202.58.124.0 - 202.58.226.255 { 0xca3ae400, 0xca3ae5ff, REGISTRY_APNIC }, // 202.58.228.0 - 202.58.229.255 { 0xca3ae800, 0xca3c7fff, REGISTRY_APNIC }, // 202.58.232.0 - 202.60.127.255 { 0xca3c8400, 0xca3cffff, REGISTRY_APNIC }, // 202.60.132.0 - 202.60.255.255 { 0xca3d0100, 0xca3d4fff, REGISTRY_APNIC }, // 202.61.1.0 - 202.61.79.255 { 0xca3d5400, 0xca3d6bff, REGISTRY_APNIC }, // 202.61.84.0 - 202.61.107.255 { 0xca3d6d00, 0xca3d6dff, REGISTRY_APNIC }, // 202.61.109.0 - 202.61.109.255 { 0xca3d6f00, 0xca3d6fff, REGISTRY_APNIC }, // 202.61.111.0 - 202.61.111.255 { 0xca3d7200, 0xca3d75ff, REGISTRY_APNIC }, // 202.61.114.0 - 202.61.117.255 { 0xca3d7700, 0xca3dbfff, REGISTRY_APNIC }, // 202.61.119.0 - 202.61.191.255 { 0xca3dc000, 0xca3dffff, REGISTRY_RIPENCC }, // 202.61.192.0 - 202.61.255.255 { 0xca3e0600, 0xca3ef6ff, REGISTRY_APNIC }, // 202.62.6.0 - 202.62.246.255 { 0xca3ef800, 0xca42b3ff, REGISTRY_APNIC }, // 202.62.248.0 - 202.66.179.255 { 0xca42bc00, 0xca458fff, REGISTRY_APNIC }, // 202.66.188.0 - 202.69.143.255 { 0xca459000, 0xca459fff, REGISTRY_ARIN }, // 202.69.144.0 - 202.69.159.255 { 0xca45a000, 0xca4688ff, REGISTRY_APNIC }, // 202.69.160.0 - 202.70.136.255 { 0xca468a00, 0xca468aff, REGISTRY_APNIC }, // 202.70.138.0 - 202.70.138.255 { 0xca468c00, 0xca477fff, REGISTRY_APNIC }, // 202.70.140.0 - 202.71.127.255 { 0xca478000, 0xca4797ff, REGISTRY_RIPENCC }, // 202.71.128.0 - 202.71.151.255 { 0xca479800, 0xca47b1ff, REGISTRY_APNIC }, // 202.71.152.0 - 202.71.177.255 { 0xca47b300, 0xca47b3ff, REGISTRY_APNIC }, // 202.71.179.0 - 202.71.179.255 { 0xca47b600, 0xca47b7ff, REGISTRY_APNIC }, // 202.71.182.0 - 202.71.183.255 { 0xca47ba00, 0xca47baff, REGISTRY_APNIC }, // 202.71.186.0 - 202.71.186.255 { 0xca47be00, 0xca48fbff, REGISTRY_APNIC }, // 202.71.190.0 - 202.72.251.255 { 0xca490000, 0xca4906ff, REGISTRY_APNIC }, // 202.73.0.0 - 202.73.6.255 { 0xca490700, 0xca4907ff, REGISTRY_ARIN }, // 202.73.7.0 - 202.73.7.255 { 0xca490800, 0xca4a2dff, REGISTRY_APNIC }, // 202.73.8.0 - 202.74.45.255 { 0xca4a2f00, 0xca4ae7ff, REGISTRY_APNIC }, // 202.74.47.0 - 202.74.231.255 { 0xca4aec00, 0xca4d89ff, REGISTRY_APNIC }, // 202.74.236.0 - 202.77.137.255 { 0xca4d8c00, 0xca4e9fff, REGISTRY_APNIC }, // 202.77.140.0 - 202.78.159.255 { 0xca4ea000, 0xca4eafff, REGISTRY_RIPENCC }, // 202.78.160.0 - 202.78.175.255 { 0xca4eb000, 0xca4fb7ff, REGISTRY_APNIC }, // 202.78.176.0 - 202.79.183.255 { 0xca4fb800, 0xca4fbfff, REGISTRY_RIPENCC }, // 202.79.184.0 - 202.79.191.255 { 0xca4fc000, 0xca52ffff, REGISTRY_APNIC }, // 202.79.192.0 - 202.82.255.255 { 0xca530400, 0xca5416ff, REGISTRY_APNIC }, // 202.83.4.0 - 202.84.22.255 { 0xca541800, 0xca59ffff, REGISTRY_APNIC }, // 202.84.24.0 - 202.89.255.255 { 0xca5a0400, 0xca5bffff, REGISTRY_APNIC }, // 202.90.4.0 - 202.91.255.255 { 0xca5c0400, 0xca5cffff, REGISTRY_APNIC }, // 202.92.4.0 - 202.92.255.255 { 0xca5d0400, 0xca5dffff, REGISTRY_APNIC }, // 202.93.4.0 - 202.93.255.255 { 0xca5e2000, 0xca5e46ff, REGISTRY_APNIC }, // 202.94.32.0 - 202.94.70.255 { 0xca5e4800, 0xca5ffbff, REGISTRY_APNIC }, // 202.94.72.0 - 202.95.251.255 { 0xca600000, 0xca7affff, REGISTRY_APNIC }, // 202.96.0.0 - 202.122.255.255 { 0xca7b0000, 0xca7b1fff, REGISTRY_AFRINIC }, // 202.123.0.0 - 202.123.31.255 { 0xca7b2000, 0xca7cc7ff, REGISTRY_APNIC }, // 202.123.32.0 - 202.124.199.255 { 0xca7cca00, 0xca7d6eff, REGISTRY_APNIC }, // 202.124.202.0 - 202.125.110.255 { 0xca7d7000, 0xca7f9fff, REGISTRY_APNIC }, // 202.125.112.0 - 202.127.159.255 { 0xca7fa800, 0xca7fd0ff, REGISTRY_APNIC }, // 202.127.168.0 - 202.127.208.255 { 0xca7fd200, 0xca82d8ff, REGISTRY_APNIC }, // 202.127.210.0 - 202.130.216.255 { 0xca82d900, 0xca82d9ff, REGISTRY_ARIN }, // 202.130.217.0 - 202.130.217.255 { 0xca82da00, 0xca853fff, REGISTRY_APNIC }, // 202.130.218.0 - 202.133.63.255 { 0xca854800, 0xca854bff, REGISTRY_APNIC }, // 202.133.72.0 - 202.133.75.255 { 0xca855000, 0xca855bff, REGISTRY_APNIC }, // 202.133.80.0 - 202.133.91.255 { 0xca856000, 0xca8637ff, REGISTRY_APNIC }, // 202.133.96.0 - 202.134.55.255 { 0xca863a00, 0xca883fff, REGISTRY_APNIC }, // 202.134.58.0 - 202.136.63.255 { 0xca884400, 0xca8847ff, REGISTRY_APNIC }, // 202.136.68.0 - 202.136.71.255 { 0xca884c00, 0xca884fff, REGISTRY_ARIN }, // 202.136.76.0 - 202.136.79.255 { 0xca885400, 0xca885bff, REGISTRY_APNIC }, // 202.136.84.0 - 202.136.91.255 { 0xca886000, 0xca89fbff, REGISTRY_APNIC }, // 202.136.96.0 - 202.137.251.255 { 0xca8a0000, 0xca925fff, REGISTRY_APNIC }, // 202.138.0.0 - 202.146.95.255 { 0xca926000, 0xca927fff, REGISTRY_RIPENCC }, // 202.146.96.0 - 202.146.127.255 { 0xca928000, 0xca92b7ff, REGISTRY_APNIC }, // 202.146.128.0 - 202.146.183.255 { 0xca92ba00, 0xca9ef7ff, REGISTRY_APNIC }, // 202.146.186.0 - 202.158.247.255 { 0xca9efc00, 0xcaa22fff, REGISTRY_APNIC }, // 202.158.252.0 - 202.162.47.255 { 0xcaa23000, 0xcaa23fff, REGISTRY_RIPENCC }, // 202.162.48.0 - 202.162.63.255 { 0xcaa24000, 0xcaa4bfff, REGISTRY_APNIC }, // 202.162.64.0 - 202.164.191.255 { 0xcaa4c000, 0xcaa4cfff, REGISTRY_RIPENCC }, // 202.164.192.0 - 202.164.207.255 { 0xcaa4d000, 0xcaa547ff, REGISTRY_APNIC }, // 202.164.208.0 - 202.165.71.255 { 0xcaa54800, 0xcaa54fff, REGISTRY_ARIN }, // 202.165.72.0 - 202.165.79.255 { 0xcaa55000, 0xcaa893ff, REGISTRY_APNIC }, // 202.165.80.0 - 202.168.147.255 { 0xcaa89800, 0xcaaa4fff, REGISTRY_APNIC }, // 202.168.152.0 - 202.170.79.255 { 0xcaaa5000, 0xcaaa57ff, REGISTRY_RIPENCC }, // 202.170.80.0 - 202.170.87.255 { 0xcaaa5800, 0xcaaabfff, REGISTRY_APNIC }, // 202.170.88.0 - 202.170.191.255 { 0xcaaac000, 0xcaaac3ff, REGISTRY_ARIN }, // 202.170.192.0 - 202.170.195.255 { 0xcaaac400, 0xcaaac7ff, REGISTRY_RIPENCC }, // 202.170.196.0 - 202.170.199.255 { 0xcaaac800, 0xcaad03ff, REGISTRY_APNIC }, // 202.170.200.0 - 202.173.3.255 { 0xcaad0500, 0xcaad73ff, REGISTRY_APNIC }, // 202.173.5.0 - 202.173.115.255 { 0xcaad7400, 0xcaad77ff, REGISTRY_ARIN }, // 202.173.116.0 - 202.173.119.255 { 0xcaad7800, 0xcab513ff, REGISTRY_APNIC }, // 202.173.120.0 - 202.181.19.255 { 0xcab51400, 0xcab517ff, REGISTRY_RIPENCC }, // 202.181.20.0 - 202.181.23.255 { 0xcab51800, 0xcab63fff, REGISTRY_APNIC }, // 202.181.24.0 - 202.182.63.255 { 0xcab64000, 0xcab64fff, REGISTRY_ARIN }, // 202.182.64.0 - 202.182.79.255 { 0xcab65000, 0xcb0007ff, REGISTRY_APNIC }, // 202.182.80.0 - 203.0.7.255 { 0xcb000800, 0xcb0009ff, REGISTRY_RIPENCC }, // 203.0.8.0 - 203.0.9.255 { 0xcb000a00, 0xcb000dff, REGISTRY_APNIC }, // 203.0.10.0 - 203.0.13.255 { 0xcb000f00, 0xcb0023ff, REGISTRY_APNIC }, // 203.0.15.0 - 203.0.35.255 { 0xcb002600, 0xcb0061ff, REGISTRY_APNIC }, // 203.0.38.0 - 203.0.97.255 { 0xcb006300, 0xcb0065ff, REGISTRY_APNIC }, // 203.0.99.0 - 203.0.101.255 { 0xcb006700, 0xcb006fff, REGISTRY_APNIC }, // 203.0.103.0 - 203.0.111.255 { 0xcb007200, 0xcb0087ff, REGISTRY_APNIC }, // 203.0.114.0 - 203.0.135.255 { 0xcb008900, 0xcb008bff, REGISTRY_APNIC }, // 203.0.137.0 - 203.0.139.255 { 0xcb008d00, 0xcb0090ff, REGISTRY_APNIC }, // 203.0.141.0 - 203.0.144.255 { 0xcb009200, 0xcb0092ff, REGISTRY_APNIC }, // 203.0.146.0 - 203.0.146.255 { 0xcb009400, 0xcb0099ff, REGISTRY_APNIC }, // 203.0.148.0 - 203.0.153.255 { 0xcb009b00, 0xcb009fff, REGISTRY_APNIC }, // 203.0.155.0 - 203.0.159.255 { 0xcb00a800, 0xcb00ffff, REGISTRY_APNIC }, // 203.0.168.0 - 203.0.255.255 { 0xcb010300, 0xcb0110ff, REGISTRY_APNIC }, // 203.1.3.0 - 203.1.16.255 { 0xcb011200, 0xcb0147ff, REGISTRY_APNIC }, // 203.1.18.0 - 203.1.71.255 { 0xcb014c00, 0xcb014dff, REGISTRY_APNIC }, // 203.1.76.0 - 203.1.77.255 { 0xcb015000, 0xcb0158ff, REGISTRY_APNIC }, // 203.1.80.0 - 203.1.88.255 { 0xcb015a00, 0xcb015aff, REGISTRY_APNIC }, // 203.1.90.0 - 203.1.90.255 { 0xcb016000, 0xcb016cff, REGISTRY_APNIC }, // 203.1.96.0 - 203.1.108.255 { 0xcb016e00, 0xcb01feff, REGISTRY_APNIC }, // 203.1.110.0 - 203.1.254.255 { 0xcb020000, 0xcb024bff, REGISTRY_APNIC }, // 203.2.0.0 - 203.2.75.255 { 0xcb025000, 0xcb028dff, REGISTRY_APNIC }, // 203.2.80.0 - 203.2.141.255 { 0xcb029000, 0xcb0293ff, REGISTRY_APNIC }, // 203.2.144.0 - 203.2.147.255 { 0xcb029500, 0xcb0296ff, REGISTRY_APNIC }, // 203.2.149.0 - 203.2.150.255 { 0xcb029800, 0xcb02c5ff, REGISTRY_APNIC }, // 203.2.152.0 - 203.2.197.255 { 0xcb02c600, 0xcb02c6ff, REGISTRY_ARIN }, // 203.2.198.0 - 203.2.198.255 { 0xcb02c700, 0xcb02c7ff, REGISTRY_APNIC }, // 203.2.199.0 - 203.2.199.255 { 0xcb02ca00, 0xcb02cbff, REGISTRY_APNIC }, // 203.2.202.0 - 203.2.203.255 { 0xcb02d000, 0xcb02d2ff, REGISTRY_APNIC }, // 203.2.208.0 - 203.2.210.255 { 0xcb02d600, 0xcb02e0ff, REGISTRY_APNIC }, // 203.2.214.0 - 203.2.224.255 { 0xcb02e200, 0xcb0349ff, REGISTRY_APNIC }, // 203.2.226.0 - 203.3.73.255 { 0xcb034b00, 0xcb0357ff, REGISTRY_APNIC }, // 203.3.75.0 - 203.3.87.255 { 0xcb035c00, 0xcb0385ff, REGISTRY_APNIC }, // 203.3.92.0 - 203.3.133.255 { 0xcb038700, 0xcb0387ff, REGISTRY_APNIC }, // 203.3.135.0 - 203.3.135.255 { 0xcb038900, 0xcb038bff, REGISTRY_APNIC }, // 203.3.137.0 - 203.3.139.255 { 0xcb038e00, 0xcb0486ff, REGISTRY_APNIC }, // 203.3.142.0 - 203.4.134.255 { 0xcb048800, 0xcb0495ff, REGISTRY_APNIC }, // 203.4.136.0 - 203.4.149.255 { 0xcb049700, 0xcb049bff, REGISTRY_APNIC }, // 203.4.151.0 - 203.4.155.255 { 0xcb04a000, 0xcb051dff, REGISTRY_APNIC }, // 203.4.160.0 - 203.5.29.255 { 0xcb051f00, 0xcb0531ff, REGISTRY_APNIC }, // 203.5.31.0 - 203.5.49.255 { 0xcb053400, 0xcb0547ff, REGISTRY_APNIC }, // 203.5.52.0 - 203.5.71.255 { 0xcb054900, 0xcb0549ff, REGISTRY_APNIC }, // 203.5.73.0 - 203.5.73.255 { 0xcb054c00, 0xcb057dff, REGISTRY_APNIC }, // 203.5.76.0 - 203.5.125.255 { 0xcb057f00, 0xcb05a7ff, REGISTRY_APNIC }, // 203.5.127.0 - 203.5.167.255 { 0xcb05ac00, 0xcb05b7ff, REGISTRY_APNIC }, // 203.5.172.0 - 203.5.183.255 { 0xcb05b800, 0xcb05b8ff, REGISTRY_RIPENCC }, // 203.5.184.0 - 203.5.184.255 { 0xcb05b900, 0xcb05baff, REGISTRY_APNIC }, // 203.5.185.0 - 203.5.186.255 { 0xcb05bc00, 0xcb05beff, REGISTRY_APNIC }, // 203.5.188.0 - 203.5.190.255 { 0xcb05c000, 0xcb05c6ff, REGISTRY_APNIC }, // 203.5.192.0 - 203.5.198.255 { 0xcb05c800, 0xcb05d4ff, REGISTRY_APNIC }, // 203.5.200.0 - 203.5.212.255 { 0xcb05d600, 0xcb0686ff, REGISTRY_APNIC }, // 203.5.214.0 - 203.6.134.255 { 0xcb068800, 0xcb069bff, REGISTRY_APNIC }, // 203.6.136.0 - 203.6.155.255 { 0xcb069d00, 0xcb06f6ff, REGISTRY_APNIC }, // 203.6.157.0 - 203.6.246.255 { 0xcb06f800, 0xcb078fff, REGISTRY_APNIC }, // 203.6.248.0 - 203.7.143.255 { 0xcb079200, 0xcb079bff, REGISTRY_APNIC }, // 203.7.146.0 - 203.7.155.255 { 0xcb079e00, 0xcb07adff, REGISTRY_APNIC }, // 203.7.158.0 - 203.7.173.255 { 0xcb07ae00, 0xcb07afff, REGISTRY_ARIN }, // 203.7.174.0 - 203.7.175.255 { 0xcb07b000, 0xcb07c1ff, REGISTRY_APNIC }, // 203.7.176.0 - 203.7.193.255 { 0xcb07c400, 0xcb07c8ff, REGISTRY_APNIC }, // 203.7.196.0 - 203.7.200.255 { 0xcb07ca00, 0xcb07cfff, REGISTRY_APNIC }, // 203.7.202.0 - 203.7.207.255 { 0xcb07e000, 0xcb0800ff, REGISTRY_APNIC }, // 203.7.224.0 - 203.8.0.255 { 0xcb080200, 0xcb0813ff, REGISTRY_APNIC }, // 203.8.2.0 - 203.8.19.255 { 0xcb081500, 0xcb083fff, REGISTRY_APNIC }, // 203.8.21.0 - 203.8.63.255 { 0xcb084400, 0xcb0857ff, REGISTRY_APNIC }, // 203.8.68.0 - 203.8.87.255 { 0xcb085900, 0xcb085dff, REGISTRY_APNIC }, // 203.8.89.0 - 203.8.93.255 { 0xcb085f00, 0xcb0868ff, REGISTRY_APNIC }, // 203.8.95.0 - 203.8.104.255 { 0xcb086a00, 0xcb086bff, REGISTRY_APNIC }, // 203.8.106.0 - 203.8.107.255 { 0xcb086d00, 0xcb087dff, REGISTRY_APNIC }, // 203.8.109.0 - 203.8.125.255 { 0xcb087f00, 0xcb08a3ff, REGISTRY_APNIC }, // 203.8.127.0 - 203.8.163.255 { 0xcb08a500, 0xcb08adff, REGISTRY_APNIC }, // 203.8.165.0 - 203.8.173.255 { 0xcb08af00, 0xcb08c0ff, REGISTRY_APNIC }, // 203.8.175.0 - 203.8.192.255 { 0xcb08c200, 0xcb08c9ff, REGISTRY_APNIC }, // 203.8.194.0 - 203.8.201.255 { 0xcb08cb00, 0xcb08d9ff, REGISTRY_APNIC }, // 203.8.203.0 - 203.8.217.255 { 0xcb08dc00, 0xcb08deff, REGISTRY_APNIC }, // 203.8.220.0 - 203.8.222.255 { 0xcb08e000, 0xcb093bff, REGISTRY_APNIC }, // 203.8.224.0 - 203.9.59.255 { 0xcb093e00, 0xcb094fff, REGISTRY_APNIC }, // 203.9.62.0 - 203.9.79.255 { 0xcb096000, 0xcb0968ff, REGISTRY_APNIC }, // 203.9.96.0 - 203.9.104.255 { 0xcb096a00, 0xcb09c2ff, REGISTRY_APNIC }, // 203.9.106.0 - 203.9.194.255 { 0xcb09c800, 0xcb09cfff, REGISTRY_APNIC }, // 203.9.200.0 - 203.9.207.255 { 0xcb09d100, 0xcb09d1ff, REGISTRY_APNIC }, // 203.9.209.0 - 203.9.209.255 { 0xcb09da00, 0xcb09daff, REGISTRY_APNIC }, // 203.9.218.0 - 203.9.218.255 { 0xcb09dc00, 0xcb0a4fff, REGISTRY_APNIC }, // 203.9.220.0 - 203.10.79.255 { 0xcb0a5400, 0xcb0a6bff, REGISTRY_APNIC }, // 203.10.84.0 - 203.10.107.255 { 0xcb0a6e00, 0xcb0a7aff, REGISTRY_APNIC }, // 203.10.110.0 - 203.10.122.255 { 0xcb0a7c00, 0xcb0b46ff, REGISTRY_APNIC }, // 203.10.124.0 - 203.11.70.255 { 0xcb0b4800, 0xcb0b57ff, REGISTRY_APNIC }, // 203.11.72.0 - 203.11.87.255 { 0xcb0b5a00, 0xcb0b5aff, REGISTRY_APNIC }, // 203.11.90.0 - 203.11.90.255 { 0xcb0b5c00, 0xcb0b70ff, REGISTRY_APNIC }, // 203.11.92.0 - 203.11.112.255 { 0xcb0b7200, 0xcb0b77ff, REGISTRY_APNIC }, // 203.11.114.0 - 203.11.119.255 { 0xcb0b7900, 0xcb0b7aff, REGISTRY_APNIC }, // 203.11.121.0 - 203.11.122.255 { 0xcb0b7c00, 0xcb0b7eff, REGISTRY_APNIC }, // 203.11.124.0 - 203.11.126.255 { 0xcb0b8000, 0xcb0bd7ff, REGISTRY_APNIC }, // 203.11.128.0 - 203.11.215.255 { 0xcb0bd900, 0xcb0bdaff, REGISTRY_APNIC }, // 203.11.217.0 - 203.11.218.255 { 0xcb0bdc00, 0xcb0c11ff, REGISTRY_APNIC }, // 203.11.220.0 - 203.12.17.255 { 0xcb0c1300, 0xcb0c15ff, REGISTRY_APNIC }, // 203.12.19.0 - 203.12.21.255 { 0xcb0c1700, 0xcb0c24ff, REGISTRY_APNIC }, // 203.12.23.0 - 203.12.36.255 { 0xcb0c2600, 0xcb0c35ff, REGISTRY_APNIC }, // 203.12.38.0 - 203.12.53.255 { 0xcb0c3800, 0xcb0c39ff, REGISTRY_APNIC }, // 203.12.56.0 - 203.12.57.255 { 0xcb0c3c00, 0xcb0c55ff, REGISTRY_APNIC }, // 203.12.60.0 - 203.12.85.255 { 0xcb0c5700, 0xcb0c61ff, REGISTRY_APNIC }, // 203.12.87.0 - 203.12.97.255 { 0xcb0c6300, 0xcb0c6fff, REGISTRY_APNIC }, // 203.12.99.0 - 203.12.111.255 { 0xcb0c7200, 0xcb0c74ff, REGISTRY_APNIC }, // 203.12.114.0 - 203.12.116.255 { 0xcb0c7600, 0xcb0c78ff, REGISTRY_APNIC }, // 203.12.118.0 - 203.12.120.255 { 0xcb0c7a00, 0xcb0c7bff, REGISTRY_APNIC }, // 203.12.122.0 - 203.12.123.255 { 0xcb0c8000, 0xcb0c89ff, REGISTRY_APNIC }, // 203.12.128.0 - 203.12.137.255 { 0xcb0c8b00, 0xcb0cd0ff, REGISTRY_APNIC }, // 203.12.139.0 - 203.12.208.255 { 0xcb0cd300, 0xcb0cd9ff, REGISTRY_APNIC }, // 203.12.211.0 - 203.12.217.255 { 0xcb0cda00, 0xcb0cdaff, REGISTRY_RIPENCC }, // 203.12.218.0 - 203.12.218.255 { 0xcb0cdb00, 0xcb0cdfff, REGISTRY_APNIC }, // 203.12.219.0 - 203.12.223.255 { 0xcb0ce100, 0xcb0ce7ff, REGISTRY_APNIC }, // 203.12.225.0 - 203.12.231.255 { 0xcb0cea00, 0xcb0cfbff, REGISTRY_APNIC }, // 203.12.234.0 - 203.12.251.255 { 0xcb0d0000, 0xcb0d13ff, REGISTRY_APNIC }, // 203.13.0.0 - 203.13.19.255 { 0xcb0d1500, 0xcb0d18ff, REGISTRY_APNIC }, // 203.13.21.0 - 203.13.24.255 { 0xcb0d1a00, 0xcb0d1aff, REGISTRY_APNIC }, // 203.13.26.0 - 203.13.26.255 { 0xcb0d1c00, 0xcb0d1fff, REGISTRY_APNIC }, // 203.13.28.0 - 203.13.31.255 { 0xcb0d2000, 0xcb0d20ff, REGISTRY_RIPENCC }, // 203.13.32.0 - 203.13.32.255 { 0xcb0d2100, 0xcb0d21ff, REGISTRY_APNIC }, // 203.13.33.0 - 203.13.33.255 { 0xcb0d2300, 0xcb0d26ff, REGISTRY_APNIC }, // 203.13.35.0 - 203.13.38.255 { 0xcb0d2800, 0xcb0d2dff, REGISTRY_APNIC }, // 203.13.40.0 - 203.13.45.255 { 0xcb0d3800, 0xcb0d47ff, REGISTRY_APNIC }, // 203.13.56.0 - 203.13.71.255 { 0xcb0d4900, 0xcb0d5aff, REGISTRY_APNIC }, // 203.13.73.0 - 203.13.90.255 { 0xcb0d5c00, 0xcb0da6ff, REGISTRY_APNIC }, // 203.13.92.0 - 203.13.166.255 { 0xcb0da800, 0xcb0daeff, REGISTRY_APNIC }, // 203.13.168.0 - 203.13.174.255 { 0xcb0dc000, 0xcb0ddeff, REGISTRY_APNIC }, // 203.13.192.0 - 203.13.222.255 { 0xcb0de000, 0xcb0de6ff, REGISTRY_APNIC }, // 203.13.224.0 - 203.13.230.255 { 0xcb0de900, 0xcb0deaff, REGISTRY_APNIC }, // 203.13.233.0 - 203.13.234.255 { 0xcb0dec00, 0xcb0dedff, REGISTRY_APNIC }, // 203.13.236.0 - 203.13.237.255 { 0xcb0df000, 0xcb0e11ff, REGISTRY_APNIC }, // 203.13.240.0 - 203.14.17.255 { 0xcb0e1300, 0xcb0e14ff, REGISTRY_APNIC }, // 203.14.19.0 - 203.14.20.255 { 0xcb0e1600, 0xcb0e32ff, REGISTRY_APNIC }, // 203.14.22.0 - 203.14.50.255 { 0xcb0e3400, 0xcb0e36ff, REGISTRY_APNIC }, // 203.14.52.0 - 203.14.54.255 { 0xcb0e3800, 0xcb0e38ff, REGISTRY_APNIC }, // 203.14.56.0 - 203.14.56.255 { 0xcb0e3b00, 0xcb0e3eff, REGISTRY_APNIC }, // 203.14.59.0 - 203.14.62.255 { 0xcb0e4000, 0xcb0e6dff, REGISTRY_APNIC }, // 203.14.64.0 - 203.14.109.255 { 0xcb0e6f00, 0xcb0e76ff, REGISTRY_APNIC }, // 203.14.111.0 - 203.14.118.255 { 0xcb0e7800, 0xcb0ea6ff, REGISTRY_APNIC }, // 203.14.120.0 - 203.14.166.255 { 0xcb0ea800, 0xcb0ec3ff, REGISTRY_APNIC }, // 203.14.168.0 - 203.14.195.255 { 0xcb0ec500, 0xcb0ec5ff, REGISTRY_APNIC }, // 203.14.197.0 - 203.14.197.255 { 0xcb0ec700, 0xcb0ec7ff, REGISTRY_APNIC }, // 203.14.199.0 - 203.14.199.255 { 0xcb0ec900, 0xcb0ec9ff, REGISTRY_APNIC }, // 203.14.201.0 - 203.14.201.255 { 0xcb0ecb00, 0xcb0ed0ff, REGISTRY_APNIC }, // 203.14.203.0 - 203.14.208.255 { 0xcb0ed200, 0xcb0ef3ff, REGISTRY_APNIC }, // 203.14.210.0 - 203.14.243.255 { 0xcb0ef500, 0xcb0ef7ff, REGISTRY_APNIC }, // 203.14.245.0 - 203.14.247.255 { 0xcb0f0000, 0xcb0f0fff, REGISTRY_APNIC }, // 203.15.0.0 - 203.15.15.255 { 0xcb0f1400, 0xcb0f17ff, REGISTRY_APNIC }, // 203.15.20.0 - 203.15.23.255 { 0xcb0f2000, 0xcb0f41ff, REGISTRY_APNIC }, // 203.15.32.0 - 203.15.65.255 { 0xcb0f4300, 0xcb0f6bff, REGISTRY_APNIC }, // 203.15.67.0 - 203.15.107.255 { 0xcb0f6d00, 0xcb0f6dff, REGISTRY_APNIC }, // 203.15.109.0 - 203.15.109.255 { 0xcb0f6f00, 0xcb0f7fff, REGISTRY_APNIC }, // 203.15.111.0 - 203.15.127.255 { 0xcb0f8100, 0xcb0f84ff, REGISTRY_APNIC }, // 203.15.129.0 - 203.15.132.255 { 0xcb0f8600, 0xcb0f89ff, REGISTRY_APNIC }, // 203.15.134.0 - 203.15.137.255 { 0xcb0f8b00, 0xcb0f8bff, REGISTRY_APNIC }, // 203.15.139.0 - 203.15.139.255 { 0xcb0f8d00, 0xcb0f93ff, REGISTRY_APNIC }, // 203.15.141.0 - 203.15.147.255 { 0xcb0f9500, 0xcb0f97ff, REGISTRY_APNIC }, // 203.15.149.0 - 203.15.151.255 { 0xcb0f9a00, 0xcb0f9aff, REGISTRY_APNIC }, // 203.15.154.0 - 203.15.154.255 { 0xcb0f9b00, 0xcb0f9bff, REGISTRY_ARIN }, // 203.15.155.0 - 203.15.155.255 { 0xcb0f9c00, 0xcb0faeff, REGISTRY_APNIC }, // 203.15.156.0 - 203.15.174.255 { 0xcb0fb000, 0xcb0fdfff, REGISTRY_APNIC }, // 203.15.176.0 - 203.15.223.255 { 0xcb0fe100, 0xcb0ff4ff, REGISTRY_APNIC }, // 203.15.225.0 - 203.15.244.255 { 0xcb0ff600, 0xcb0ffaff, REGISTRY_APNIC }, // 203.15.246.0 - 203.15.250.255 { 0xcb0ffd00, 0xcb100aff, REGISTRY_APNIC }, // 203.15.253.0 - 203.16.10.255 { 0xcb100c00, 0xcb1022ff, REGISTRY_APNIC }, // 203.16.12.0 - 203.16.34.255 { 0xcb102400, 0xcb1024ff, REGISTRY_APNIC }, // 203.16.36.0 - 203.16.36.255 { 0xcb102600, 0xcb102fff, REGISTRY_APNIC }, // 203.16.38.0 - 203.16.47.255 { 0xcb103100, 0xcb103dff, REGISTRY_APNIC }, // 203.16.49.0 - 203.16.61.255 { 0xcb103f00, 0xcb1085ff, REGISTRY_APNIC }, // 203.16.63.0 - 203.16.133.255 { 0xcb108700, 0xcb108fff, REGISTRY_APNIC }, // 203.16.135.0 - 203.16.143.255 { 0xcb10a000, 0xcb10a8ff, REGISTRY_APNIC }, // 203.16.160.0 - 203.16.168.255 { 0xcb10aa00, 0xcb10aaff, REGISTRY_APNIC }, // 203.16.170.0 - 203.16.170.255 { 0xcb10ac00, 0xcb10adff, REGISTRY_APNIC }, // 203.16.172.0 - 203.16.173.255 { 0xcb10af00, 0xcb10bbff, REGISTRY_APNIC }, // 203.16.175.0 - 203.16.187.255 { 0xcb10c000, 0xcb10c1ff, REGISTRY_APNIC }, // 203.16.192.0 - 203.16.193.255 { 0xcb10c400, 0xcb10ecff, REGISTRY_APNIC }, // 203.16.196.0 - 203.16.236.255 { 0xcb10ee00, 0xcb10f3ff, REGISTRY_APNIC }, // 203.16.238.0 - 203.16.243.255 { 0xcb10f500, 0xcb1105ff, REGISTRY_APNIC }, // 203.16.245.0 - 203.17.5.255 { 0xcb110700, 0xcb1108ff, REGISTRY_APNIC }, // 203.17.7.0 - 203.17.8.255 { 0xcb110a00, 0xcb1112ff, REGISTRY_APNIC }, // 203.17.10.0 - 203.17.18.255 { 0xcb111400, 0xcb1125ff, REGISTRY_APNIC }, // 203.17.20.0 - 203.17.37.255 { 0xcb112700, 0xcb1134ff, REGISTRY_APNIC }, // 203.17.39.0 - 203.17.52.255 { 0xcb113600, 0xcb1138ff, REGISTRY_APNIC }, // 203.17.54.0 - 203.17.56.255 { 0xcb113a00, 0xcb115dff, REGISTRY_APNIC }, // 203.17.58.0 - 203.17.93.255 { 0xcb115f00, 0xcb1167ff, REGISTRY_APNIC }, // 203.17.95.0 - 203.17.103.255 { 0xcb117000, 0xcb1171ff, REGISTRY_APNIC }, // 203.17.112.0 - 203.17.113.255 { 0xcb117400, 0xcb117aff, REGISTRY_APNIC }, // 203.17.116.0 - 203.17.122.255 { 0xcb117b00, 0xcb117bff, REGISTRY_ARIN }, // 203.17.123.0 - 203.17.123.255 { 0xcb117c00, 0xcb117dff, REGISTRY_APNIC }, // 203.17.124.0 - 203.17.125.255 { 0xcb117e00, 0xcb117eff, REGISTRY_RIPENCC }, // 203.17.126.0 - 203.17.126.255 { 0xcb117f00, 0xcb1188ff, REGISTRY_APNIC }, // 203.17.127.0 - 203.17.136.255 { 0xcb118a00, 0xcb119aff, REGISTRY_APNIC }, // 203.17.138.0 - 203.17.154.255 { 0xcb119c00, 0xcb119fff, REGISTRY_APNIC }, // 203.17.156.0 - 203.17.159.255 { 0xcb11a200, 0xcb11b0ff, REGISTRY_APNIC }, // 203.17.162.0 - 203.17.176.255 { 0xcb11b200, 0xcb11bcff, REGISTRY_APNIC }, // 203.17.178.0 - 203.17.188.255 { 0xcb11be00, 0xcb11dfff, REGISTRY_APNIC }, // 203.17.190.0 - 203.17.223.255 { 0xcb11e100, 0xcb11e2ff, REGISTRY_APNIC }, // 203.17.225.0 - 203.17.226.255 { 0xcb11e400, 0xcb11ecff, REGISTRY_APNIC }, // 203.17.228.0 - 203.17.236.255 { 0xcb11ed00, 0xcb11edff, REGISTRY_RIPENCC }, // 203.17.237.0 - 203.17.237.255 { 0xcb11ee00, 0xcb11f6ff, REGISTRY_APNIC }, // 203.17.238.0 - 203.17.246.255 { 0xcb11f800, 0xcb1205ff, REGISTRY_APNIC }, // 203.17.248.0 - 203.18.5.255 { 0xcb120700, 0xcb1207ff, REGISTRY_APNIC }, // 203.18.7.0 - 203.18.7.255 { 0xcb120a00, 0xcb1212ff, REGISTRY_APNIC }, // 203.18.10.0 - 203.18.18.255 { 0xcb121400, 0xcb1217ff, REGISTRY_APNIC }, // 203.18.20.0 - 203.18.23.255 { 0xcb121a00, 0xcb1226ff, REGISTRY_APNIC }, // 203.18.26.0 - 203.18.38.255 { 0xcb123000, 0xcb1238ff, REGISTRY_APNIC }, // 203.18.48.0 - 203.18.56.255 { 0xcb123a00, 0xcb1251ff, REGISTRY_APNIC }, // 203.18.58.0 - 203.18.81.255 { 0xcb125700, 0xcb125eff, REGISTRY_APNIC }, // 203.18.87.0 - 203.18.94.255 { 0xcb126000, 0xcb1267ff, REGISTRY_APNIC }, // 203.18.96.0 - 203.18.103.255 { 0xcb126900, 0xcb126eff, REGISTRY_APNIC }, // 203.18.105.0 - 203.18.110.255 { 0xcb127000, 0xcb127fff, REGISTRY_APNIC }, // 203.18.112.0 - 203.18.127.255 { 0xcb128100, 0xcb128cff, REGISTRY_APNIC }, // 203.18.129.0 - 203.18.140.255 { 0xcb129000, 0xcb1290ff, REGISTRY_APNIC }, // 203.18.144.0 - 203.18.144.255 { 0xcb129200, 0xcb1294ff, REGISTRY_APNIC }, // 203.18.146.0 - 203.18.148.255 { 0xcb129700, 0xcb129bff, REGISTRY_APNIC }, // 203.18.151.0 - 203.18.155.255 { 0xcb12a000, 0xcb12a0ff, REGISTRY_APNIC }, // 203.18.160.0 - 203.18.160.255 { 0xcb12a200, 0xcb12c4ff, REGISTRY_APNIC }, // 203.18.162.0 - 203.18.196.255 { 0xcb12c600, 0xcb12d5ff, REGISTRY_APNIC }, // 203.18.198.0 - 203.18.213.255 { 0xcb12d700, 0xcb12f5ff, REGISTRY_APNIC }, // 203.18.215.0 - 203.18.245.255 { 0xcb12f700, 0xcb1304ff, REGISTRY_APNIC }, // 203.18.247.0 - 203.19.4.255 { 0xcb130600, 0xcb130dff, REGISTRY_APNIC }, // 203.19.6.0 - 203.19.13.255 { 0xcb130f00, 0xcb1338ff, REGISTRY_APNIC }, // 203.19.15.0 - 203.19.56.255 { 0xcb133a00, 0xcb133dff, REGISTRY_APNIC }, // 203.19.58.0 - 203.19.61.255 { 0xcb133f00, 0xcb1344ff, REGISTRY_APNIC }, // 203.19.63.0 - 203.19.68.255 { 0xcb134600, 0xcb1346ff, REGISTRY_APNIC }, // 203.19.70.0 - 203.19.70.255 { 0xcb134800, 0xcb1349ff, REGISTRY_APNIC }, // 203.19.72.0 - 203.19.73.255 { 0xcb134b00, 0xcb134bff, REGISTRY_APNIC }, // 203.19.75.0 - 203.19.75.255 { 0xcb134d00, 0xcb1363ff, REGISTRY_APNIC }, // 203.19.77.0 - 203.19.99.255 { 0xcb136500, 0xcb136bff, REGISTRY_APNIC }, // 203.19.101.0 - 203.19.107.255 { 0xcb136e00, 0xcb138aff, REGISTRY_APNIC }, // 203.19.110.0 - 203.19.138.255 { 0xcb138c00, 0xcb1393ff, REGISTRY_APNIC }, // 203.19.140.0 - 203.19.147.255 { 0xcb139500, 0xcb1396ff, REGISTRY_APNIC }, // 203.19.149.0 - 203.19.150.255 { 0xcb139800, 0xcb13a3ff, REGISTRY_APNIC }, // 203.19.152.0 - 203.19.163.255 { 0xcb13a600, 0xcb13a6ff, REGISTRY_APNIC }, // 203.19.166.0 - 203.19.166.255 { 0xcb13a800, 0xcb13b3ff, REGISTRY_APNIC }, // 203.19.168.0 - 203.19.179.255 { 0xcb13bc00, 0xcb13d3ff, REGISTRY_APNIC }, // 203.19.188.0 - 203.19.211.255 { 0xcb13d600, 0xcb13eaff, REGISTRY_APNIC }, // 203.19.214.0 - 203.19.234.255 { 0xcb13ec00, 0xcb13ecff, REGISTRY_APNIC }, // 203.19.236.0 - 203.19.236.255 { 0xcb13ee00, 0xcb13efff, REGISTRY_APNIC }, // 203.19.238.0 - 203.19.239.255 { 0xcb13f100, 0xcb13f9ff, REGISTRY_APNIC }, // 203.19.241.0 - 203.19.249.255 { 0xcb13fb00, 0xcb1417ff, REGISTRY_APNIC }, // 203.19.251.0 - 203.20.23.255 { 0xcb141a00, 0xcb1429ff, REGISTRY_APNIC }, // 203.20.26.0 - 203.20.41.255 { 0xcb142b00, 0xcb1439ff, REGISTRY_APNIC }, // 203.20.43.0 - 203.20.57.255 { 0xcb143b00, 0xcb1446ff, REGISTRY_APNIC }, // 203.20.59.0 - 203.20.70.255 { 0xcb144800, 0xcb1448ff, REGISTRY_APNIC }, // 203.20.72.0 - 203.20.72.255 { 0xcb144a00, 0xcb144cff, REGISTRY_APNIC }, // 203.20.74.0 - 203.20.76.255 { 0xcb144e00, 0xcb144fff, REGISTRY_APNIC }, // 203.20.78.0 - 203.20.79.255 { 0xcb145100, 0xcb146bff, REGISTRY_APNIC }, // 203.20.81.0 - 203.20.107.255 { 0xcb146e00, 0xcb147aff, REGISTRY_APNIC }, // 203.20.110.0 - 203.20.122.255 { 0xcb147d00, 0xcb1496ff, REGISTRY_APNIC }, // 203.20.125.0 - 203.20.150.255 { 0xcb149800, 0xcb14e8ff, REGISTRY_APNIC }, // 203.20.152.0 - 203.20.232.255 { 0xcb14ea00, 0xcb14f1ff, REGISTRY_APNIC }, // 203.20.234.0 - 203.20.241.255 { 0xcb14f200, 0xcb14f3ff, REGISTRY_ARIN }, // 203.20.242.0 - 203.20.243.255 { 0xcb14f400, 0xcb1502ff, REGISTRY_APNIC }, // 203.20.244.0 - 203.21.2.255 { 0xcb150400, 0xcb150aff, REGISTRY_APNIC }, // 203.21.4.0 - 203.21.10.255 { 0xcb150c00, 0xcb150cff, REGISTRY_APNIC }, // 203.21.12.0 - 203.21.12.255 { 0xcb150e00, 0xcb1512ff, REGISTRY_APNIC }, // 203.21.14.0 - 203.21.18.255 { 0xcb151400, 0xcb1522ff, REGISTRY_APNIC }, // 203.21.20.0 - 203.21.34.255 { 0xcb152500, 0xcb1525ff, REGISTRY_APNIC }, // 203.21.37.0 - 203.21.37.255 { 0xcb152700, 0xcb152eff, REGISTRY_APNIC }, // 203.21.39.0 - 203.21.46.255 { 0xcb152f00, 0xcb152fff, REGISTRY_ARIN }, // 203.21.47.0 - 203.21.47.255 { 0xcb153000, 0xcb1548ff, REGISTRY_APNIC }, // 203.21.48.0 - 203.21.72.255 { 0xcb154a00, 0xcb1555ff, REGISTRY_APNIC }, // 203.21.74.0 - 203.21.85.255 { 0xcb155700, 0xcb155bff, REGISTRY_APNIC }, // 203.21.87.0 - 203.21.91.255 { 0xcb155e00, 0xcb1567ff, REGISTRY_APNIC }, // 203.21.94.0 - 203.21.103.255 { 0xcb156800, 0xcb1568ff, REGISTRY_ARIN }, // 203.21.104.0 - 203.21.104.255 { 0xcb156900, 0xcb156aff, REGISTRY_APNIC }, // 203.21.105.0 - 203.21.106.255 { 0xcb156c00, 0xcb1579ff, REGISTRY_APNIC }, // 203.21.108.0 - 203.21.121.255 { 0xcb157c00, 0xcb1583ff, REGISTRY_APNIC }, // 203.21.124.0 - 203.21.131.255 { 0xcb158500, 0xcb158aff, REGISTRY_APNIC }, // 203.21.133.0 - 203.21.138.255 { 0xcb158c00, 0xcb158fff, REGISTRY_APNIC }, // 203.21.140.0 - 203.21.143.255 { 0xcb159100, 0xcb1591ff, REGISTRY_APNIC }, // 203.21.145.0 - 203.21.145.255 { 0xcb159600, 0xcb1641ff, REGISTRY_APNIC }, // 203.21.150.0 - 203.22.65.255 { 0xcb164300, 0xcb1644ff, REGISTRY_APNIC }, // 203.22.67.0 - 203.22.68.255 { 0xcb164600, 0xcb164aff, REGISTRY_APNIC }, // 203.22.70.0 - 203.22.74.255 { 0xcb164c00, 0xcb166bff, REGISTRY_APNIC }, // 203.22.76.0 - 203.22.107.255 { 0xcb166e00, 0xcb169fff, REGISTRY_APNIC }, // 203.22.110.0 - 203.22.159.255 { 0xcb16a100, 0xcb16a1ff, REGISTRY_APNIC }, // 203.22.161.0 - 203.22.161.255 { 0xcb16a300, 0xcb16a6ff, REGISTRY_APNIC }, // 203.22.163.0 - 203.22.166.255 { 0xcb16a800, 0xcb16abff, REGISTRY_APNIC }, // 203.22.168.0 - 203.22.171.255 { 0xcb16b000, 0xcb16baff, REGISTRY_APNIC }, // 203.22.176.0 - 203.22.186.255 { 0xcb16bc00, 0xcb16bfff, REGISTRY_APNIC }, // 203.22.188.0 - 203.22.191.255 { 0xcb16c100, 0xcb16c4ff, REGISTRY_APNIC }, // 203.22.193.0 - 203.22.196.255 { 0xcb16c800, 0xcb16d4ff, REGISTRY_APNIC }, // 203.22.200.0 - 203.22.212.255 { 0xcb16d600, 0xcb16d8ff, REGISTRY_APNIC }, // 203.22.214.0 - 203.22.216.255 { 0xcb16da00, 0xcb16deff, REGISTRY_APNIC }, // 203.22.218.0 - 203.22.222.255 { 0xcb16df00, 0xcb16dfff, REGISTRY_RIPENCC }, // 203.22.223.0 - 203.22.223.255 { 0xcb16e000, 0xcb16efff, REGISTRY_APNIC }, // 203.22.224.0 - 203.22.239.255 { 0xcb16f100, 0xcb16f8ff, REGISTRY_APNIC }, // 203.22.241.0 - 203.22.248.255 { 0xcb16fb00, 0xcb16fdff, REGISTRY_APNIC }, // 203.22.251.0 - 203.22.253.255 { 0xcb16ff00, 0xcb1700ff, REGISTRY_APNIC }, // 203.22.255.0 - 203.23.0.255 { 0xcb170200, 0xcb1702ff, REGISTRY_APNIC }, // 203.23.2.0 - 203.23.2.255 { 0xcb170400, 0xcb1705ff, REGISTRY_APNIC }, // 203.23.4.0 - 203.23.5.255 { 0xcb170700, 0xcb1716ff, REGISTRY_APNIC }, // 203.23.7.0 - 203.23.22.255 { 0xcb171d00, 0xcb1727ff, REGISTRY_APNIC }, // 203.23.29.0 - 203.23.39.255 { 0xcb172900, 0xcb1732ff, REGISTRY_APNIC }, // 203.23.41.0 - 203.23.50.255 { 0xcb173500, 0xcb1735ff, REGISTRY_APNIC }, // 203.23.53.0 - 203.23.53.255 { 0xcb173700, 0xcb1745ff, REGISTRY_APNIC }, // 203.23.55.0 - 203.23.69.255 { 0xcb174700, 0xcb1749ff, REGISTRY_APNIC }, // 203.23.71.0 - 203.23.73.255 { 0xcb174b00, 0xcb174cff, REGISTRY_APNIC }, // 203.23.75.0 - 203.23.76.255 { 0xcb174e00, 0xcb174fff, REGISTRY_APNIC }, // 203.23.78.0 - 203.23.79.255 { 0xcb175500, 0xcb175aff, REGISTRY_APNIC }, // 203.23.85.0 - 203.23.90.255 { 0xcb175c00, 0xcb1766ff, REGISTRY_APNIC }, // 203.23.92.0 - 203.23.102.255 { 0xcb176700, 0xcb1767ff, REGISTRY_RIPENCC }, // 203.23.103.0 - 203.23.103.255 { 0xcb176800, 0xcb1768ff, REGISTRY_RIPENCC }, // 203.23.104.0 - 203.23.104.255 { 0xcb176900, 0xcb1769ff, REGISTRY_APNIC }, // 203.23.105.0 - 203.23.105.255 { 0xcb176a00, 0xcb176aff, REGISTRY_RIPENCC }, // 203.23.106.0 - 203.23.106.255 { 0xcb176b00, 0xcb176bff, REGISTRY_APNIC }, // 203.23.107.0 - 203.23.107.255 { 0xcb176d00, 0xcb176dff, REGISTRY_APNIC }, // 203.23.109.0 - 203.23.109.255 { 0xcb176f00, 0xcb1770ff, REGISTRY_APNIC }, // 203.23.111.0 - 203.23.112.255 { 0xcb177200, 0xcb1774ff, REGISTRY_APNIC }, // 203.23.114.0 - 203.23.116.255 { 0xcb177600, 0xcb177bff, REGISTRY_APNIC }, // 203.23.118.0 - 203.23.123.255 { 0xcb177d00, 0xcb1783ff, REGISTRY_APNIC }, // 203.23.125.0 - 203.23.131.255 { 0xcb178800, 0xcb1788ff, REGISTRY_APNIC }, // 203.23.136.0 - 203.23.136.255 { 0xcb178a00, 0xcb17a9ff, REGISTRY_APNIC }, // 203.23.138.0 - 203.23.169.255 { 0xcb17ac00, 0xcb17adff, REGISTRY_APNIC }, // 203.23.172.0 - 203.23.173.255 { 0xcb17af00, 0xcb17b4ff, REGISTRY_APNIC }, // 203.23.175.0 - 203.23.180.255 { 0xcb17b600, 0xcb17bbff, REGISTRY_APNIC }, // 203.23.182.0 - 203.23.187.255 { 0xcb17be00, 0xcb17c0ff, REGISTRY_APNIC }, // 203.23.190.0 - 203.23.192.255 { 0xcb17c200, 0xcb17f3ff, REGISTRY_APNIC }, // 203.23.194.0 - 203.23.243.255 { 0xcb17f400, 0xcb17f4ff, REGISTRY_ARIN }, // 203.23.244.0 - 203.23.244.255 { 0xcb17f500, 0xcb17fdff, REGISTRY_APNIC }, // 203.23.245.0 - 203.23.253.255 { 0xcb17ff00, 0xcb1807ff, REGISTRY_APNIC }, // 203.23.255.0 - 203.24.7.255 { 0xcb180900, 0xcb180bff, REGISTRY_APNIC }, // 203.24.9.0 - 203.24.11.255 { 0xcb180d00, 0xcb1814ff, REGISTRY_APNIC }, // 203.24.13.0 - 203.24.20.255 { 0xcb181600, 0xcb1817ff, REGISTRY_APNIC }, // 203.24.22.0 - 203.24.23.255 { 0xcb181900, 0xcb1824ff, REGISTRY_APNIC }, // 203.24.25.0 - 203.24.36.255 { 0xcb182700, 0xcb1829ff, REGISTRY_APNIC }, // 203.24.39.0 - 203.24.41.255 { 0xcb182b00, 0xcb182dff, REGISTRY_APNIC }, // 203.24.43.0 - 203.24.45.255 { 0xcb183000, 0xcb1851ff, REGISTRY_APNIC }, // 203.24.48.0 - 203.24.81.255 { 0xcb185400, 0xcb185aff, REGISTRY_APNIC }, // 203.24.84.0 - 203.24.90.255 { 0xcb185c00, 0xcb185dff, REGISTRY_APNIC }, // 203.24.92.0 - 203.24.93.255 { 0xcb185f00, 0xcb1865ff, REGISTRY_APNIC }, // 203.24.95.0 - 203.24.101.255 { 0xcb186600, 0xcb1867ff, REGISTRY_RIPENCC }, // 203.24.102.0 - 203.24.103.255 { 0xcb186800, 0xcb186bff, REGISTRY_APNIC }, // 203.24.104.0 - 203.24.107.255 { 0xcb186c00, 0xcb186cff, REGISTRY_RIPENCC }, // 203.24.108.0 - 203.24.108.255 { 0xcb186d00, 0xcb186dff, REGISTRY_RIPENCC }, // 203.24.109.0 - 203.24.109.255 { 0xcb186e00, 0xcb1877ff, REGISTRY_APNIC }, // 203.24.110.0 - 203.24.119.255 { 0xcb187800, 0xcb1878ff, REGISTRY_ARIN }, // 203.24.120.0 - 203.24.120.255 { 0xcb187900, 0xcb187bff, REGISTRY_APNIC }, // 203.24.121.0 - 203.24.123.255 { 0xcb187c00, 0xcb187cff, REGISTRY_RIPENCC }, // 203.24.124.0 - 203.24.124.255 { 0xcb187e00, 0xcb187fff, REGISTRY_APNIC }, // 203.24.126.0 - 203.24.127.255 { 0xcb188100, 0xcb1882ff, REGISTRY_APNIC }, // 203.24.129.0 - 203.24.130.255 { 0xcb188400, 0xcb1889ff, REGISTRY_APNIC }, // 203.24.132.0 - 203.24.137.255 { 0xcb188c00, 0xcb188cff, REGISTRY_APNIC }, // 203.24.140.0 - 203.24.140.255 { 0xcb188e00, 0xcb1896ff, REGISTRY_APNIC }, // 203.24.142.0 - 203.24.150.255 { 0xcb189800, 0xcb189bff, REGISTRY_APNIC }, // 203.24.152.0 - 203.24.155.255 { 0xcb189d00, 0xcb18a7ff, REGISTRY_APNIC }, // 203.24.157.0 - 203.24.167.255 { 0xcb18aa00, 0xcb18acff, REGISTRY_APNIC }, // 203.24.170.0 - 203.24.172.255 { 0xcb18ae00, 0xcb18afff, REGISTRY_APNIC }, // 203.24.174.0 - 203.24.175.255 { 0xcb18b400, 0xcb18b7ff, REGISTRY_APNIC }, // 203.24.180.0 - 203.24.183.255 { 0xcb18ba00, 0xcb18bbff, REGISTRY_APNIC }, // 203.24.186.0 - 203.24.187.255 { 0xcb18bd00, 0xcb18bfff, REGISTRY_APNIC }, // 203.24.189.0 - 203.24.191.255 { 0xcb18c200, 0xcb18c3ff, REGISTRY_APNIC }, // 203.24.194.0 - 203.24.195.255 { 0xcb18c700, 0xcb18caff, REGISTRY_APNIC }, // 203.24.199.0 - 203.24.202.255 { 0xcb18cd00, 0xcb18d6ff, REGISTRY_APNIC }, // 203.24.205.0 - 203.24.214.255 { 0xcb18d900, 0xcb18dbff, REGISTRY_APNIC }, // 203.24.217.0 - 203.24.219.255 { 0xcb18de00, 0xcb18f0ff, REGISTRY_APNIC }, // 203.24.222.0 - 203.24.240.255 { 0xcb18f200, 0xcb18f4ff, REGISTRY_APNIC }, // 203.24.242.0 - 203.24.244.255 { 0xcb18f600, 0xcb18f6ff, REGISTRY_APNIC }, // 203.24.246.0 - 203.24.246.255 { 0xcb18f700, 0xcb18f7ff, REGISTRY_ARIN }, // 203.24.247.0 - 203.24.247.255 { 0xcb18f800, 0xcb190fff, REGISTRY_APNIC }, // 203.24.248.0 - 203.25.15.255 { 0xcb191100, 0xcb191dff, REGISTRY_APNIC }, // 203.25.17.0 - 203.25.29.255 { 0xcb191f00, 0xcb1923ff, REGISTRY_APNIC }, // 203.25.31.0 - 203.25.35.255 { 0xcb192800, 0xcb1937ff, REGISTRY_APNIC }, // 203.25.40.0 - 203.25.55.255 { 0xcb194000, 0xcb1941ff, REGISTRY_APNIC }, // 203.25.64.0 - 203.25.65.255 { 0xcb194300, 0xcb1949ff, REGISTRY_APNIC }, // 203.25.67.0 - 203.25.73.255 { 0xcb194b00, 0xcb1956ff, REGISTRY_APNIC }, // 203.25.75.0 - 203.25.86.255 { 0xcb195800, 0xcb1961ff, REGISTRY_APNIC }, // 203.25.88.0 - 203.25.97.255 { 0xcb196300, 0xcb1964ff, REGISTRY_APNIC }, // 203.25.99.0 - 203.25.100.255 { 0xcb196600, 0xcb1968ff, REGISTRY_APNIC }, // 203.25.102.0 - 203.25.104.255 { 0xcb196a00, 0xcb196fff, REGISTRY_APNIC }, // 203.25.106.0 - 203.25.111.255 { 0xcb197400, 0xcb1974ff, REGISTRY_APNIC }, // 203.25.116.0 - 203.25.116.255 { 0xcb197600, 0xcb1979ff, REGISTRY_APNIC }, // 203.25.118.0 - 203.25.121.255 { 0xcb197b00, 0xcb197bff, REGISTRY_APNIC }, // 203.25.123.0 - 203.25.123.255 { 0xcb197c00, 0xcb197cff, REGISTRY_RIPENCC }, // 203.25.124.0 - 203.25.124.255 { 0xcb197d00, 0xcb1984ff, REGISTRY_APNIC }, // 203.25.125.0 - 203.25.132.255 { 0xcb198600, 0xcb1987ff, REGISTRY_APNIC }, // 203.25.134.0 - 203.25.135.255 { 0xcb198a00, 0xcb198aff, REGISTRY_APNIC }, // 203.25.138.0 - 203.25.138.255 { 0xcb198b00, 0xcb198bff, REGISTRY_RIPENCC }, // 203.25.139.0 - 203.25.139.255 { 0xcb198c00, 0xcb1990ff, REGISTRY_APNIC }, // 203.25.140.0 - 203.25.144.255 { 0xcb199200, 0xcb1993ff, REGISTRY_APNIC }, // 203.25.146.0 - 203.25.147.255 { 0xcb199500, 0xcb1997ff, REGISTRY_APNIC }, // 203.25.149.0 - 203.25.151.255 { 0xcb199900, 0xcb199bff, REGISTRY_APNIC }, // 203.25.153.0 - 203.25.155.255 { 0xcb199e00, 0xcb199fff, REGISTRY_APNIC }, // 203.25.158.0 - 203.25.159.255 { 0xcb19a200, 0xcb19a7ff, REGISTRY_APNIC }, // 203.25.162.0 - 203.25.167.255 { 0xcb19a900, 0xcb19b0ff, REGISTRY_APNIC }, // 203.25.169.0 - 203.25.176.255 { 0xcb19b300, 0xcb19b7ff, REGISTRY_APNIC }, // 203.25.179.0 - 203.25.183.255 { 0xcb19b900, 0xcb19bbff, REGISTRY_APNIC }, // 203.25.185.0 - 203.25.187.255 { 0xcb19bd00, 0xcb19bdff, REGISTRY_APNIC }, // 203.25.189.0 - 203.25.189.255 { 0xcb19bf00, 0xcb19c4ff, REGISTRY_APNIC }, // 203.25.191.0 - 203.25.196.255 { 0xcb19c600, 0xcb19e0ff, REGISTRY_APNIC }, // 203.25.198.0 - 203.25.224.255 { 0xcb19e200, 0xcb19e3ff, REGISTRY_APNIC }, // 203.25.226.0 - 203.25.227.255 { 0xcb19e500, 0xcb19f2ff, REGISTRY_APNIC }, // 203.25.229.0 - 203.25.242.255 { 0xcb19f500, 0xcb19f5ff, REGISTRY_APNIC }, // 203.25.245.0 - 203.25.245.255 { 0xcb19f700, 0xcb19ffff, REGISTRY_APNIC }, // 203.25.247.0 - 203.25.255.255 { 0xcb1a0200, 0xcb1a02ff, REGISTRY_APNIC }, // 203.26.2.0 - 203.26.2.255 { 0xcb1a0400, 0xcb1a04ff, REGISTRY_APNIC }, // 203.26.4.0 - 203.26.4.255 { 0xcb1a0600, 0xcb1a0eff, REGISTRY_APNIC }, // 203.26.6.0 - 203.26.14.255 { 0xcb1a1000, 0xcb1a20ff, REGISTRY_APNIC }, // 203.26.16.0 - 203.26.32.255 { 0xcb1a2200, 0xcb1a22ff, REGISTRY_APNIC }, // 203.26.34.0 - 203.26.34.255 { 0xcb1a2400, 0xcb1a2bff, REGISTRY_APNIC }, // 203.26.36.0 - 203.26.43.255 { 0xcb1a2d00, 0xcb1a2dff, REGISTRY_APNIC }, // 203.26.45.0 - 203.26.45.255 { 0xcb1a3000, 0xcb1a34ff, REGISTRY_APNIC }, // 203.26.48.0 - 203.26.52.255 { 0xcb1a3500, 0xcb1a35ff, REGISTRY_ARIN }, // 203.26.53.0 - 203.26.53.255 { 0xcb1a3600, 0xcb1a39ff, REGISTRY_APNIC }, // 203.26.54.0 - 203.26.57.255 { 0xcb1a3b00, 0xcb1a3cff, REGISTRY_APNIC }, // 203.26.59.0 - 203.26.60.255 { 0xcb1a3e00, 0xcb1a3fff, REGISTRY_APNIC }, // 203.26.62.0 - 203.26.63.255 { 0xcb1a4100, 0xcb1a47ff, REGISTRY_APNIC }, // 203.26.65.0 - 203.26.71.255 { 0xcb1a4900, 0xcb1a4dff, REGISTRY_APNIC }, // 203.26.73.0 - 203.26.77.255 { 0xcb1a4f00, 0xcb1a50ff, REGISTRY_APNIC }, // 203.26.79.0 - 203.26.80.255 { 0xcb1a5100, 0xcb1a51ff, REGISTRY_RIPENCC }, // 203.26.81.0 - 203.26.81.255 { 0xcb1a5400, 0xcb1a58ff, REGISTRY_APNIC }, // 203.26.84.0 - 203.26.88.255 { 0xcb1a5a00, 0xcb1a5bff, REGISTRY_APNIC }, // 203.26.90.0 - 203.26.91.255 { 0xcb1a5d00, 0xcb1a67ff, REGISTRY_APNIC }, // 203.26.93.0 - 203.26.103.255 { 0xcb1a6900, 0xcb1a69ff, REGISTRY_APNIC }, // 203.26.105.0 - 203.26.105.255 { 0xcb1a6b00, 0xcb1a6cff, REGISTRY_APNIC }, // 203.26.107.0 - 203.26.108.255 { 0xcb1a6e00, 0xcb1a6eff, REGISTRY_APNIC }, // 203.26.110.0 - 203.26.110.255 { 0xcb1a7000, 0xcb1a7eff, REGISTRY_APNIC }, // 203.26.112.0 - 203.26.126.255 { 0xcb1a8000, 0xcb1a85ff, REGISTRY_APNIC }, // 203.26.128.0 - 203.26.133.255 { 0xcb1a8700, 0xcb1a88ff, REGISTRY_APNIC }, // 203.26.135.0 - 203.26.136.255 { 0xcb1a8a00, 0xcb1a8bff, REGISTRY_APNIC }, // 203.26.138.0 - 203.26.139.255 { 0xcb1a8e00, 0xcb1a95ff, REGISTRY_APNIC }, // 203.26.142.0 - 203.26.149.255 { 0xcb1a9a00, 0xcb1aabff, REGISTRY_APNIC }, // 203.26.154.0 - 203.26.171.255 { 0xcb1aad00, 0xcb1ab5ff, REGISTRY_APNIC }, // 203.26.173.0 - 203.26.181.255 { 0xcb1ab800, 0xcb1abeff, REGISTRY_APNIC }, // 203.26.184.0 - 203.26.190.255 { 0xcb1ac000, 0xcb1ad0ff, REGISTRY_APNIC }, // 203.26.192.0 - 203.26.208.255 { 0xcb1ad200, 0xcb1ad7ff, REGISTRY_APNIC }, // 203.26.210.0 - 203.26.215.255 { 0xcb1ad900, 0xcb1ad9ff, REGISTRY_APNIC }, // 203.26.217.0 - 203.26.217.255 { 0xcb1adb00, 0xcb1aedff, REGISTRY_APNIC }, // 203.26.219.0 - 203.26.237.255 { 0xcb1af200, 0xcb1af2ff, REGISTRY_APNIC }, // 203.26.242.0 - 203.26.242.255 { 0xcb1af400, 0xcb1af5ff, REGISTRY_APNIC }, // 203.26.244.0 - 203.26.245.255 { 0xcb1af800, 0xcb1b08ff, REGISTRY_APNIC }, // 203.26.248.0 - 203.27.8.255 { 0xcb1b0a00, 0xcb1b0cff, REGISTRY_APNIC }, // 203.27.10.0 - 203.27.12.255 { 0xcb1b0f00, 0xcb1b1cff, REGISTRY_APNIC }, // 203.27.15.0 - 203.27.28.255 { 0xcb1b1e00, 0xcb1b1fff, REGISTRY_APNIC }, // 203.27.30.0 - 203.27.31.255 { 0xcb1b2300, 0xcb1b2fff, REGISTRY_APNIC }, // 203.27.35.0 - 203.27.47.255 { 0xcb1b3100, 0xcb1b35ff, REGISTRY_APNIC }, // 203.27.49.0 - 203.27.53.255 { 0xcb1b3800, 0xcb1b38ff, REGISTRY_APNIC }, // 203.27.56.0 - 203.27.56.255 { 0xcb1b3a00, 0xcb1b3aff, REGISTRY_APNIC }, // 203.27.58.0 - 203.27.58.255 { 0xcb1b3c00, 0xcb1b3fff, REGISTRY_APNIC }, // 203.27.60.0 - 203.27.63.255 { 0xcb1b4000, 0xcb1b40ff, REGISTRY_ARIN }, // 203.27.64.0 - 203.27.64.255 { 0xcb1b4100, 0xcb1b4bff, REGISTRY_APNIC }, // 203.27.65.0 - 203.27.75.255 { 0xcb1b4d00, 0xcb1b4eff, REGISTRY_APNIC }, // 203.27.77.0 - 203.27.78.255 { 0xcb1b5000, 0xcb1b58ff, REGISTRY_APNIC }, // 203.27.80.0 - 203.27.88.255 { 0xcb1b5a00, 0xcb1b6dff, REGISTRY_APNIC }, // 203.27.90.0 - 203.27.109.255 { 0xcb1b6f00, 0xcb1b76ff, REGISTRY_APNIC }, // 203.27.111.0 - 203.27.118.255 { 0xcb1b7900, 0xcb1bcdff, REGISTRY_APNIC }, // 203.27.121.0 - 203.27.205.255 { 0xcb1bd000, 0xcb1bd8ff, REGISTRY_APNIC }, // 203.27.208.0 - 203.27.216.255 { 0xcb1bdc00, 0xcb1bdfff, REGISTRY_APNIC }, // 203.27.220.0 - 203.27.223.255 { 0xcb1be100, 0xcb1be5ff, REGISTRY_APNIC }, // 203.27.225.0 - 203.27.229.255 { 0xcb1be700, 0xcb1be7ff, REGISTRY_APNIC }, // 203.27.231.0 - 203.27.231.255 { 0xcb1be900, 0xcb1bebff, REGISTRY_APNIC }, // 203.27.233.0 - 203.27.235.255 { 0xcb1bed00, 0xcb1befff, REGISTRY_APNIC }, // 203.27.237.0 - 203.27.239.255 { 0xcb1bf100, 0xcb1bf2ff, REGISTRY_APNIC }, // 203.27.241.0 - 203.27.242.255 { 0xcb1bf400, 0xcb1bfdff, REGISTRY_APNIC }, // 203.27.244.0 - 203.27.253.255 { 0xcb1bff00, 0xcb1c07ff, REGISTRY_APNIC }, // 203.27.255.0 - 203.28.7.255 { 0xcb1c0800, 0xcb1c09ff, REGISTRY_RIPENCC }, // 203.28.8.0 - 203.28.9.255 { 0xcb1c0a00, 0xcb1c0fff, REGISTRY_APNIC }, // 203.28.10.0 - 203.28.15.255 { 0xcb1c1100, 0xcb1c12ff, REGISTRY_APNIC }, // 203.28.17.0 - 203.28.18.255 { 0xcb1c1300, 0xcb1c13ff, REGISTRY_RIPENCC }, // 203.28.19.0 - 203.28.19.255 { 0xcb1c1400, 0xcb1c16ff, REGISTRY_APNIC }, // 203.28.20.0 - 203.28.22.255 { 0xcb1c1800, 0xcb1c1eff, REGISTRY_APNIC }, // 203.28.24.0 - 203.28.30.255 { 0xcb1c2000, 0xcb1c26ff, REGISTRY_APNIC }, // 203.28.32.0 - 203.28.38.255 { 0xcb1c2900, 0xcb1c34ff, REGISTRY_APNIC }, // 203.28.41.0 - 203.28.52.255 { 0xcb1c3600, 0xcb1c38ff, REGISTRY_APNIC }, // 203.28.54.0 - 203.28.56.255 { 0xcb1c3a00, 0xcb1c3cff, REGISTRY_APNIC }, // 203.28.58.0 - 203.28.60.255 { 0xcb1c3f00, 0xcb1c56ff, REGISTRY_APNIC }, // 203.28.63.0 - 203.28.86.255 { 0xcb1c5800, 0xcb1c5aff, REGISTRY_APNIC }, // 203.28.88.0 - 203.28.90.255 { 0xcb1c5c00, 0xcb1c5fff, REGISTRY_APNIC }, // 203.28.92.0 - 203.28.95.255 { 0xcb1c6a00, 0xcb1c6bff, REGISTRY_APNIC }, // 203.28.106.0 - 203.28.107.255 { 0xcb1c7000, 0xcb1c83ff, REGISTRY_APNIC }, // 203.28.112.0 - 203.28.131.255 { 0xcb1c8500, 0xcb1c85ff, REGISTRY_APNIC }, // 203.28.133.0 - 203.28.133.255 { 0xcb1c8800, 0xcb1c89ff, REGISTRY_APNIC }, // 203.28.136.0 - 203.28.137.255 { 0xcb1c8b00, 0xcb1c8fff, REGISTRY_APNIC }, // 203.28.139.0 - 203.28.143.255 { 0xcb1c9100, 0xcb1c93ff, REGISTRY_APNIC }, // 203.28.145.0 - 203.28.147.255 { 0xcb1c9600, 0xcb1c9cff, REGISTRY_APNIC }, // 203.28.150.0 - 203.28.156.255 { 0xcb1c9f00, 0xcb1ca0ff, REGISTRY_APNIC }, // 203.28.159.0 - 203.28.160.255 { 0xcb1ca200, 0xcb1ca2ff, REGISTRY_APNIC }, // 203.28.162.0 - 203.28.162.255 { 0xcb1ca400, 0xcb1ca7ff, REGISTRY_APNIC }, // 203.28.164.0 - 203.28.167.255 { 0xcb1ca800, 0xcb1ca8ff, REGISTRY_ARIN }, // 203.28.168.0 - 203.28.168.255 { 0xcb1ca900, 0xcb1cb5ff, REGISTRY_APNIC }, // 203.28.169.0 - 203.28.181.255 { 0xcb1cb700, 0xcb1cc5ff, REGISTRY_APNIC }, // 203.28.183.0 - 203.28.197.255 { 0xcb1cc800, 0xcb1cccff, REGISTRY_APNIC }, // 203.28.200.0 - 203.28.204.255 { 0xcb1cce00, 0xcb1cdcff, REGISTRY_APNIC }, // 203.28.206.0 - 203.28.220.255 { 0xcb1cde00, 0xcb1ce8ff, REGISTRY_APNIC }, // 203.28.222.0 - 203.28.232.255 { 0xcb1cea00, 0xcb1ceaff, REGISTRY_APNIC }, // 203.28.234.0 - 203.28.234.255 { 0xcb1cec00, 0xcb1cecff, REGISTRY_APNIC }, // 203.28.236.0 - 203.28.236.255 { 0xcb1cee00, 0xcb1cf5ff, REGISTRY_APNIC }, // 203.28.238.0 - 203.28.245.255 { 0xcb1cf600, 0xcb1cf6ff, REGISTRY_ARIN }, // 203.28.246.0 - 203.28.246.255 { 0xcb1cf700, 0xcb1cf7ff, REGISTRY_APNIC }, // 203.28.247.0 - 203.28.247.255 { 0xcb1cf800, 0xcb1cf8ff, REGISTRY_ARIN }, // 203.28.248.0 - 203.28.248.255 { 0xcb1cf900, 0xcb1cfbff, REGISTRY_APNIC }, // 203.28.249.0 - 203.28.251.255 { 0xcb1cfe00, 0xcb1d03ff, REGISTRY_APNIC }, // 203.28.254.0 - 203.29.3.255 { 0xcb1d0500, 0xcb1d05ff, REGISTRY_APNIC }, // 203.29.5.0 - 203.29.5.255 { 0xcb1d0700, 0xcb1d0bff, REGISTRY_APNIC }, // 203.29.7.0 - 203.29.11.255 { 0xcb1d0d00, 0xcb1d18ff, REGISTRY_APNIC }, // 203.29.13.0 - 203.29.24.255 { 0xcb1d1a00, 0xcb1d1cff, REGISTRY_APNIC }, // 203.29.26.0 - 203.29.28.255 { 0xcb1d1e00, 0xcb1d23ff, REGISTRY_APNIC }, // 203.29.30.0 - 203.29.35.255 { 0xcb1d2900, 0xcb1d29ff, REGISTRY_APNIC }, // 203.29.41.0 - 203.29.41.255 { 0xcb1d2c00, 0xcb1d33ff, REGISTRY_APNIC }, // 203.29.44.0 - 203.29.51.255 { 0xcb1d3400, 0xcb1d35ff, REGISTRY_RIPENCC }, // 203.29.52.0 - 203.29.53.255 { 0xcb1d3600, 0xcb1d37ff, REGISTRY_RIPENCC }, // 203.29.54.0 - 203.29.55.255 { 0xcb1d3800, 0xcb1d41ff, REGISTRY_APNIC }, // 203.29.56.0 - 203.29.65.255 { 0xcb1d4300, 0xcb1d4eff, REGISTRY_APNIC }, // 203.29.67.0 - 203.29.78.255 { 0xcb1d5000, 0xcb1d65ff, REGISTRY_APNIC }, // 203.29.80.0 - 203.29.101.255 { 0xcb1d6700, 0xcb1d76ff, REGISTRY_APNIC }, // 203.29.103.0 - 203.29.118.255 { 0xcb1d7800, 0xcb1d7dff, REGISTRY_APNIC }, // 203.29.120.0 - 203.29.125.255 { 0xcb1d7f00, 0xcb1dbbff, REGISTRY_APNIC }, // 203.29.127.0 - 203.29.187.255 { 0xcb1dbd00, 0xcb1dc7ff, REGISTRY_APNIC }, // 203.29.189.0 - 203.29.199.255 { 0xcb1dcc00, 0xcb1dd2ff, REGISTRY_APNIC }, // 203.29.204.0 - 203.29.210.255 { 0xcb1dd500, 0xcb1dd7ff, REGISTRY_APNIC }, // 203.29.213.0 - 203.29.215.255 { 0xcb1dd900, 0xcb1dd9ff, REGISTRY_APNIC }, // 203.29.217.0 - 203.29.217.255 { 0xcb1ddb00, 0xcb1ddeff, REGISTRY_APNIC }, // 203.29.219.0 - 203.29.222.255 { 0xcb1de000, 0xcb1de1ff, REGISTRY_APNIC }, // 203.29.224.0 - 203.29.225.255 { 0xcb1de300, 0xcb1de3ff, REGISTRY_APNIC }, // 203.29.227.0 - 203.29.227.255 { 0xcb1de500, 0xcb1deaff, REGISTRY_APNIC }, // 203.29.229.0 - 203.29.234.255 { 0xcb1dec00, 0xcb1deeff, REGISTRY_APNIC }, // 203.29.236.0 - 203.29.238.255 { 0xcb1df000, 0xcb1df8ff, REGISTRY_APNIC }, // 203.29.240.0 - 203.29.248.255 { 0xcb1dfc00, 0xcb1e14ff, REGISTRY_APNIC }, // 203.29.252.0 - 203.30.20.255 { 0xcb1e1700, 0xcb1e23ff, REGISTRY_APNIC }, // 203.30.23.0 - 203.30.35.255 { 0xcb1e2600, 0xcb1e32ff, REGISTRY_APNIC }, // 203.30.38.0 - 203.30.50.255 { 0xcb1e3800, 0xcb1e42ff, REGISTRY_APNIC }, // 203.30.56.0 - 203.30.66.255 { 0xcb1e4400, 0xcb1e44ff, REGISTRY_APNIC }, // 203.30.68.0 - 203.30.68.255 { 0xcb1e4700, 0xcb1e47ff, REGISTRY_APNIC }, // 203.30.71.0 - 203.30.71.255 { 0xcb1e4b00, 0xcb1e4bff, REGISTRY_APNIC }, // 203.30.75.0 - 203.30.75.255 { 0xcb1e4d00, 0xcb1e67ff, REGISTRY_APNIC }, // 203.30.77.0 - 203.30.103.255 { 0xcb1e6800, 0xcb1e6bff, REGISTRY_RIPENCC }, // 203.30.104.0 - 203.30.107.255 { 0xcb1e6d00, 0xcb1e7fff, REGISTRY_APNIC }, // 203.30.109.0 - 203.30.127.255 { 0xcb1e8300, 0xcb1e85ff, REGISTRY_APNIC }, // 203.30.131.0 - 203.30.133.255 { 0xcb1e8700, 0xcb1e8aff, REGISTRY_APNIC }, // 203.30.135.0 - 203.30.138.255 { 0xcb1e8c00, 0xcb1e8eff, REGISTRY_APNIC }, // 203.30.140.0 - 203.30.142.255 { 0xcb1e8f00, 0xcb1e8fff, REGISTRY_ARIN }, // 203.30.143.0 - 203.30.143.255 { 0xcb1e9100, 0xcb1e98ff, REGISTRY_APNIC }, // 203.30.145.0 - 203.30.152.255 { 0xcb1e9b00, 0xcb1e9eff, REGISTRY_APNIC }, // 203.30.155.0 - 203.30.158.255 { 0xcb1ea100, 0xcb1ea2ff, REGISTRY_APNIC }, // 203.30.161.0 - 203.30.162.255 { 0xcb1ea400, 0xcb1ea6ff, REGISTRY_APNIC }, // 203.30.164.0 - 203.30.166.255 { 0xcb1ea800, 0xcb1ea9ff, REGISTRY_APNIC }, // 203.30.168.0 - 203.30.169.255 { 0xcb1eab00, 0xcb1eabff, REGISTRY_APNIC }, // 203.30.171.0 - 203.30.171.255 { 0xcb1ead00, 0xcb1eb6ff, REGISTRY_APNIC }, // 203.30.173.0 - 203.30.182.255 { 0xcb1eb800, 0xcb1ebbff, REGISTRY_APNIC }, // 203.30.184.0 - 203.30.187.255 { 0xcb1ebc00, 0xcb1ebfff, REGISTRY_RIPENCC }, // 203.30.188.0 - 203.30.191.255 { 0xcb1ec000, 0xcb1ec7ff, REGISTRY_APNIC }, // 203.30.192.0 - 203.30.199.255 { 0xcb1ec900, 0xcb1ed2ff, REGISTRY_APNIC }, // 203.30.201.0 - 203.30.210.255 { 0xcb1ed300, 0xcb1ed3ff, REGISTRY_ARIN }, // 203.30.211.0 - 203.30.211.255 { 0xcb1ed400, 0xcb1ed5ff, REGISTRY_APNIC }, // 203.30.212.0 - 203.30.213.255 { 0xcb1ed800, 0xcb1ed9ff, REGISTRY_APNIC }, // 203.30.216.0 - 203.30.217.255 { 0xcb1edb00, 0xcb1edcff, REGISTRY_APNIC }, // 203.30.219.0 - 203.30.220.255 { 0xcb1ede00, 0xcb1eedff, REGISTRY_APNIC }, // 203.30.222.0 - 203.30.237.255 { 0xcb1eef00, 0xcb1ef2ff, REGISTRY_APNIC }, // 203.30.239.0 - 203.30.242.255 { 0xcb1ef400, 0xcb1ef8ff, REGISTRY_APNIC }, // 203.30.244.0 - 203.30.248.255 { 0xcb1efa00, 0xcb1f05ff, REGISTRY_APNIC }, // 203.30.250.0 - 203.31.5.255 { 0xcb1f0700, 0xcb1f10ff, REGISTRY_APNIC }, // 203.31.7.0 - 203.31.16.255 { 0xcb1f1200, 0xcb1f13ff, REGISTRY_APNIC }, // 203.31.18.0 - 203.31.19.255 { 0xcb1f1600, 0xcb1f19ff, REGISTRY_APNIC }, // 203.31.22.0 - 203.31.25.255 { 0xcb1f1c00, 0xcb1f31ff, REGISTRY_APNIC }, // 203.31.28.0 - 203.31.49.255 { 0xcb1f3300, 0xcb1f43ff, REGISTRY_APNIC }, // 203.31.51.0 - 203.31.67.255 { 0xcb1f4500, 0xcb1f48ff, REGISTRY_APNIC }, // 203.31.69.0 - 203.31.72.255 { 0xcb1f4a00, 0xcb1f4bff, REGISTRY_APNIC }, // 203.31.74.0 - 203.31.75.255 { 0xcb1f4d00, 0xcb1f52ff, REGISTRY_APNIC }, // 203.31.77.0 - 203.31.82.255 { 0xcb1f5400, 0xcb1f5cff, REGISTRY_APNIC }, // 203.31.84.0 - 203.31.92.255 { 0xcb1f5e00, 0xcb1f5eff, REGISTRY_APNIC }, // 203.31.94.0 - 203.31.94.255 { 0xcb1f6000, 0xcb1f61ff, REGISTRY_APNIC }, // 203.31.96.0 - 203.31.97.255 { 0xcb1f6300, 0xcb1f65ff, REGISTRY_APNIC }, // 203.31.99.0 - 203.31.101.255 { 0xcb1f6700, 0xcb1f67ff, REGISTRY_RIPENCC }, // 203.31.103.0 - 203.31.103.255 { 0xcb1f6900, 0xcb1f6fff, REGISTRY_APNIC }, // 203.31.105.0 - 203.31.111.255 { 0xcb1f7200, 0xcb1f7cff, REGISTRY_APNIC }, // 203.31.114.0 - 203.31.124.255 { 0xcb1f7e00, 0xcb1f7eff, REGISTRY_APNIC }, // 203.31.126.0 - 203.31.126.255 { 0xcb1fa000, 0xcb1fa2ff, REGISTRY_APNIC }, // 203.31.160.0 - 203.31.162.255 { 0xcb1fa400, 0xcb1fa8ff, REGISTRY_APNIC }, // 203.31.164.0 - 203.31.168.255 { 0xcb1faa00, 0xcb1facff, REGISTRY_APNIC }, // 203.31.170.0 - 203.31.172.255 { 0xcb1fae00, 0xcb1fb1ff, REGISTRY_APNIC }, // 203.31.174.0 - 203.31.177.255 { 0xcb1fb500, 0xcb1fb9ff, REGISTRY_APNIC }, // 203.31.181.0 - 203.31.185.255 { 0xcb1fbb00, 0xcb1fbbff, REGISTRY_APNIC }, // 203.31.187.0 - 203.31.187.255 { 0xcb1fbd00, 0xcb1fc0ff, REGISTRY_APNIC }, // 203.31.189.0 - 203.31.192.255 { 0xcb1fc300, 0xcb1fc3ff, REGISTRY_APNIC }, // 203.31.195.0 - 203.31.195.255 { 0xcb1fc500, 0xcb1fcfff, REGISTRY_APNIC }, // 203.31.197.0 - 203.31.207.255 { 0xcb1fd100, 0xcb1fd1ff, REGISTRY_APNIC }, // 203.31.209.0 - 203.31.209.255 { 0xcb1fd400, 0xcb1fd6ff, REGISTRY_APNIC }, // 203.31.212.0 - 203.31.214.255 { 0xcb1fd800, 0xcb1fdcff, REGISTRY_APNIC }, // 203.31.216.0 - 203.31.220.255 { 0xcb1fdd00, 0xcb1fddff, REGISTRY_ARIN }, // 203.31.221.0 - 203.31.221.255 { 0xcb1fde00, 0xcb1fdfff, REGISTRY_APNIC }, // 203.31.222.0 - 203.31.223.255 { 0xcb1fe100, 0xcb1ff3ff, REGISTRY_APNIC }, // 203.31.225.0 - 203.31.243.255 { 0xcb1ff400, 0xcb1ff5ff, REGISTRY_ARIN }, // 203.31.244.0 - 203.31.245.255 { 0xcb1ff600, 0xcb1ff6ff, REGISTRY_APNIC }, // 203.31.246.0 - 203.31.246.255 { 0xcb1ff800, 0xcb1ff9ff, REGISTRY_APNIC }, // 203.31.248.0 - 203.31.249.255 { 0xcb1ffb00, 0xcb2024ff, REGISTRY_APNIC }, // 203.31.251.0 - 203.32.36.255 { 0xcb202600, 0xcb202dff, REGISTRY_APNIC }, // 203.32.38.0 - 203.32.45.255 { 0xcb202f00, 0xcb2032ff, REGISTRY_APNIC }, // 203.32.47.0 - 203.32.50.255 { 0xcb203400, 0xcb2034ff, REGISTRY_APNIC }, // 203.32.52.0 - 203.32.52.255 { 0xcb203600, 0xcb203eff, REGISTRY_APNIC }, // 203.32.54.0 - 203.32.62.255 { 0xcb204000, 0xcb2049ff, REGISTRY_APNIC }, // 203.32.64.0 - 203.32.73.255 { 0xcb204b00, 0xcb2055ff, REGISTRY_APNIC }, // 203.32.75.0 - 203.32.85.255 { 0xcb205900, 0xcb2059ff, REGISTRY_APNIC }, // 203.32.89.0 - 203.32.89.255 { 0xcb205b00, 0xcb2067ff, REGISTRY_APNIC }, // 203.32.91.0 - 203.32.103.255 { 0xcb206900, 0xcb206cff, REGISTRY_APNIC }, // 203.32.105.0 - 203.32.108.255 { 0xcb206e00, 0xcb206eff, REGISTRY_APNIC }, // 203.32.110.0 - 203.32.110.255 { 0xcb207400, 0xcb2075ff, REGISTRY_APNIC }, // 203.32.116.0 - 203.32.117.255 { 0xcb207700, 0xcb2077ff, REGISTRY_APNIC }, // 203.32.119.0 - 203.32.119.255 { 0xcb207800, 0xcb2079ff, REGISTRY_RIPENCC }, // 203.32.120.0 - 203.32.121.255 { 0xcb207a00, 0xcb207fff, REGISTRY_APNIC }, // 203.32.122.0 - 203.32.127.255 { 0xcb208200, 0xcb2089ff, REGISTRY_APNIC }, // 203.32.130.0 - 203.32.137.255 { 0xcb208c00, 0xcb208cff, REGISTRY_APNIC }, // 203.32.140.0 - 203.32.140.255 { 0xcb208e00, 0xcb209bff, REGISTRY_APNIC }, // 203.32.142.0 - 203.32.155.255 { 0xcb209d00, 0xcb209dff, REGISTRY_APNIC }, // 203.32.157.0 - 203.32.157.255 { 0xcb209f00, 0xcb20b2ff, REGISTRY_APNIC }, // 203.32.159.0 - 203.32.178.255 { 0xcb20b400, 0xcb20b5ff, REGISTRY_APNIC }, // 203.32.180.0 - 203.32.181.255 { 0xcb20b700, 0xcb20bbff, REGISTRY_APNIC }, // 203.32.183.0 - 203.32.187.255 { 0xcb20be00, 0xcb20c5ff, REGISTRY_APNIC }, // 203.32.190.0 - 203.32.197.255 { 0xcb20c800, 0xcb20d5ff, REGISTRY_APNIC }, // 203.32.200.0 - 203.32.213.255 { 0xcb20da00, 0xcb20ddff, REGISTRY_APNIC }, // 203.32.218.0 - 203.32.221.255 { 0xcb20df00, 0xcb20ffff, REGISTRY_APNIC }, // 203.32.223.0 - 203.32.255.255 { 0xcb210100, 0xcb2111ff, REGISTRY_APNIC }, // 203.33.1.0 - 203.33.17.255 { 0xcb211400, 0xcb211eff, REGISTRY_APNIC }, // 203.33.20.0 - 203.33.30.255 { 0xcb212000, 0xcb2124ff, REGISTRY_APNIC }, // 203.33.32.0 - 203.33.36.255 { 0xcb212600, 0xcb212cff, REGISTRY_APNIC }, // 203.33.38.0 - 203.33.44.255 { 0xcb212d00, 0xcb212dff, REGISTRY_ARIN }, // 203.33.45.0 - 203.33.45.255 { 0xcb212f00, 0xcb212fff, REGISTRY_APNIC }, // 203.33.47.0 - 203.33.47.255 { 0xcb213700, 0xcb2137ff, REGISTRY_APNIC }, // 203.33.55.0 - 203.33.55.255 { 0xcb213900, 0xcb213dff, REGISTRY_APNIC }, // 203.33.57.0 - 203.33.61.255 { 0xcb213f00, 0xcb2141ff, REGISTRY_APNIC }, // 203.33.63.0 - 203.33.65.255 { 0xcb214300, 0xcb2145ff, REGISTRY_APNIC }, // 203.33.67.0 - 203.33.69.255 { 0xcb214600, 0xcb2146ff, REGISTRY_RIPENCC }, // 203.33.70.0 - 203.33.70.255 { 0xcb214700, 0xcb214aff, REGISTRY_APNIC }, // 203.33.71.0 - 203.33.74.255 { 0xcb214c00, 0xcb215fff, REGISTRY_APNIC }, // 203.33.76.0 - 203.33.95.255 { 0xcb216400, 0xcb2167ff, REGISTRY_APNIC }, // 203.33.100.0 - 203.33.103.255 { 0xcb216a00, 0xcb216dff, REGISTRY_APNIC }, // 203.33.106.0 - 203.33.109.255 { 0xcb216f00, 0xcb2177ff, REGISTRY_APNIC }, // 203.33.111.0 - 203.33.119.255 { 0xcb217900, 0xcb217cff, REGISTRY_APNIC }, // 203.33.121.0 - 203.33.124.255 { 0xcb218000, 0xcb2186ff, REGISTRY_APNIC }, // 203.33.128.0 - 203.33.134.255 { 0xcb218800, 0xcb218eff, REGISTRY_APNIC }, // 203.33.136.0 - 203.33.142.255 { 0xcb219000, 0xcb2192ff, REGISTRY_APNIC }, // 203.33.144.0 - 203.33.146.255 { 0xcb219400, 0xcb2197ff, REGISTRY_APNIC }, // 203.33.148.0 - 203.33.151.255 { 0xcb219800, 0xcb2199ff, REGISTRY_ARIN }, // 203.33.152.0 - 203.33.153.255 { 0xcb219a00, 0xcb21a8ff, REGISTRY_APNIC }, // 203.33.154.0 - 203.33.168.255 { 0xcb21ab00, 0xcb21acff, REGISTRY_APNIC }, // 203.33.171.0 - 203.33.172.255 { 0xcb21ae00, 0xcb21b0ff, REGISTRY_APNIC }, // 203.33.174.0 - 203.33.176.255 { 0xcb21b200, 0xcb21cfff, REGISTRY_APNIC }, // 203.33.178.0 - 203.33.207.255 { 0xcb21d600, 0xcb21d7ff, REGISTRY_APNIC }, // 203.33.214.0 - 203.33.215.255 { 0xcb21d900, 0xcb21dbff, REGISTRY_APNIC }, // 203.33.217.0 - 203.33.219.255 { 0xcb21df00, 0xcb21f7ff, REGISTRY_APNIC }, // 203.33.223.0 - 203.33.247.255 { 0xcb21f900, 0xcb2206ff, REGISTRY_APNIC }, // 203.33.249.0 - 203.34.6.255 { 0xcb220800, 0xcb2209ff, REGISTRY_APNIC }, // 203.34.8.0 - 203.34.9.255 { 0xcb220b00, 0xcb220dff, REGISTRY_APNIC }, // 203.34.11.0 - 203.34.13.255 { 0xcb220f00, 0xcb220fff, REGISTRY_ARIN }, // 203.34.15.0 - 203.34.15.255 { 0xcb221000, 0xcb2212ff, REGISTRY_APNIC }, // 203.34.16.0 - 203.34.18.255 { 0xcb221500, 0xcb221bff, REGISTRY_APNIC }, // 203.34.21.0 - 203.34.27.255 { 0xcb221c00, 0xcb221cff, REGISTRY_RIPENCC }, // 203.34.28.0 - 203.34.28.255 { 0xcb221d00, 0xcb221fff, REGISTRY_APNIC }, // 203.34.29.0 - 203.34.31.255 { 0xcb222100, 0xcb2225ff, REGISTRY_APNIC }, // 203.34.33.0 - 203.34.37.255 { 0xcb222700, 0xcb2236ff, REGISTRY_APNIC }, // 203.34.39.0 - 203.34.54.255 { 0xcb223800, 0xcb223dff, REGISTRY_APNIC }, // 203.34.56.0 - 203.34.61.255 { 0xcb223f00, 0xcb2245ff, REGISTRY_APNIC }, // 203.34.63.0 - 203.34.69.255 { 0xcb224800, 0xcb2249ff, REGISTRY_APNIC }, // 203.34.72.0 - 203.34.73.255 { 0xcb224b00, 0xcb224fff, REGISTRY_APNIC }, // 203.34.75.0 - 203.34.79.255 { 0xcb225000, 0xcb2250ff, REGISTRY_RIPENCC }, // 203.34.80.0 - 203.34.80.255 { 0xcb225100, 0xcb2251ff, REGISTRY_APNIC }, // 203.34.81.0 - 203.34.81.255 { 0xcb225300, 0xcb2253ff, REGISTRY_APNIC }, // 203.34.83.0 - 203.34.83.255 { 0xcb225500, 0xcb225dff, REGISTRY_APNIC }, // 203.34.85.0 - 203.34.93.255 { 0xcb226100, 0xcb2268ff, REGISTRY_APNIC }, // 203.34.97.0 - 203.34.104.255 { 0xcb226a00, 0xcb2277ff, REGISTRY_APNIC }, // 203.34.106.0 - 203.34.119.255 { 0xcb227a00, 0xcb227cff, REGISTRY_APNIC }, // 203.34.122.0 - 203.34.124.255 { 0xcb227e00, 0xcb227fff, REGISTRY_APNIC }, // 203.34.126.0 - 203.34.127.255 { 0xcb228200, 0xcb2290ff, REGISTRY_APNIC }, // 203.34.130.0 - 203.34.144.255 { 0xcb229300, 0xcb2294ff, REGISTRY_APNIC }, // 203.34.147.0 - 203.34.148.255 { 0xcb229600, 0xcb2296ff, REGISTRY_APNIC }, // 203.34.150.0 - 203.34.150.255 { 0xcb229800, 0xcb22b5ff, REGISTRY_APNIC }, // 203.34.152.0 - 203.34.181.255 { 0xcb22b700, 0xcb22b7ff, REGISTRY_APNIC }, // 203.34.183.0 - 203.34.183.255 { 0xcb22b900, 0xcb22bbff, REGISTRY_APNIC }, // 203.34.185.0 - 203.34.187.255 { 0xcb22bd00, 0xcb22beff, REGISTRY_APNIC }, // 203.34.189.0 - 203.34.190.255 { 0xcb22c000, 0xcb22cfff, REGISTRY_APNIC }, // 203.34.192.0 - 203.34.207.255 { 0xcb22d200, 0xcb22d2ff, REGISTRY_APNIC }, // 203.34.210.0 - 203.34.210.255 { 0xcb22d400, 0xcb22ddff, REGISTRY_APNIC }, // 203.34.212.0 - 203.34.221.255 { 0xcb22df00, 0xcb22e9ff, REGISTRY_APNIC }, // 203.34.223.0 - 203.34.233.255 { 0xcb22eb00, 0xcb22edff, REGISTRY_APNIC }, // 203.34.235.0 - 203.34.237.255 { 0xcb22ef00, 0xcb22f0ff, REGISTRY_APNIC }, // 203.34.239.0 - 203.34.240.255 { 0xcb22f200, 0xcb3705ff, REGISTRY_APNIC }, // 203.34.242.0 - 203.55.5.255 { 0xcb370800, 0xcb370bff, REGISTRY_APNIC }, // 203.55.8.0 - 203.55.11.255 { 0xcb370d00, 0xcb370fff, REGISTRY_APNIC }, // 203.55.13.0 - 203.55.15.255 { 0xcb371200, 0xcb3717ff, REGISTRY_APNIC }, // 203.55.18.0 - 203.55.23.255 { 0xcb371900, 0xcb371eff, REGISTRY_APNIC }, // 203.55.25.0 - 203.55.30.255 { 0xcb372000, 0xcb372dff, REGISTRY_APNIC }, // 203.55.32.0 - 203.55.45.255 { 0xcb373000, 0xcb3733ff, REGISTRY_APNIC }, // 203.55.48.0 - 203.55.51.255 { 0xcb373500, 0xcb373dff, REGISTRY_APNIC }, // 203.55.53.0 - 203.55.61.255 { 0xcb373f00, 0xcb373fff, REGISTRY_APNIC }, // 203.55.63.0 - 203.55.63.255 { 0xcb374100, 0xcb3743ff, REGISTRY_APNIC }, // 203.55.65.0 - 203.55.67.255 { 0xcb374500, 0xcb3745ff, REGISTRY_APNIC }, // 203.55.69.0 - 203.55.69.255 { 0xcb374700, 0xcb3747ff, REGISTRY_ARIN }, // 203.55.71.0 - 203.55.71.255 { 0xcb374800, 0xcb3749ff, REGISTRY_APNIC }, // 203.55.72.0 - 203.55.73.255 { 0xcb374b00, 0xcb375dff, REGISTRY_APNIC }, // 203.55.75.0 - 203.55.93.255 { 0xcb375f00, 0xcb3762ff, REGISTRY_APNIC }, // 203.55.95.0 - 203.55.98.255 { 0xcb376400, 0xcb3768ff, REGISTRY_APNIC }, // 203.55.100.0 - 203.55.104.255 { 0xcb376a00, 0xcb376aff, REGISTRY_APNIC }, // 203.55.106.0 - 203.55.106.255 { 0xcb376b00, 0xcb376bff, REGISTRY_RIPENCC }, // 203.55.107.0 - 203.55.107.255 { 0xcb376c00, 0xcb3770ff, REGISTRY_APNIC }, // 203.55.108.0 - 203.55.112.255 { 0xcb377200, 0xcb3790ff, REGISTRY_APNIC }, // 203.55.114.0 - 203.55.144.255 { 0xcb379200, 0xcb379eff, REGISTRY_APNIC }, // 203.55.146.0 - 203.55.158.255 { 0xcb37a000, 0xcb37a0ff, REGISTRY_APNIC }, // 203.55.160.0 - 203.55.160.255 { 0xcb37a200, 0xcb37a8ff, REGISTRY_APNIC }, // 203.55.162.0 - 203.55.168.255 { 0xcb37aa00, 0xcb37bcff, REGISTRY_APNIC }, // 203.55.170.0 - 203.55.188.255 { 0xcb37bf00, 0xcb37d4ff, REGISTRY_APNIC }, // 203.55.191.0 - 203.55.212.255 { 0xcb37d600, 0xcb37deff, REGISTRY_APNIC }, // 203.55.214.0 - 203.55.222.255 { 0xcb37e000, 0xcb37f7ff, REGISTRY_APNIC }, // 203.55.224.0 - 203.55.247.255 { 0xcb37fa00, 0xcb37fcff, REGISTRY_APNIC }, // 203.55.250.0 - 203.55.252.255 { 0xcb37fe00, 0xcb37feff, REGISTRY_APNIC }, // 203.55.254.0 - 203.55.254.255 { 0xcb380000, 0xcb3807ff, REGISTRY_APNIC }, // 203.56.0.0 - 203.56.7.255 { 0xcb380c00, 0xcb3813ff, REGISTRY_APNIC }, // 203.56.12.0 - 203.56.19.255 { 0xcb381500, 0xcb3826ff, REGISTRY_APNIC }, // 203.56.21.0 - 203.56.38.255 { 0xcb382800, 0xcb383fff, REGISTRY_APNIC }, // 203.56.40.0 - 203.56.63.255 { 0xcb384400, 0xcb3847ff, REGISTRY_APNIC }, // 203.56.68.0 - 203.56.71.255 { 0xcb385000, 0xcb3866ff, REGISTRY_APNIC }, // 203.56.80.0 - 203.56.102.255 { 0xcb386c00, 0xcb386eff, REGISTRY_APNIC }, // 203.56.108.0 - 203.56.110.255 { 0xcb387000, 0xcb3873ff, REGISTRY_APNIC }, // 203.56.112.0 - 203.56.115.255 { 0xcb387600, 0xcb387bff, REGISTRY_APNIC }, // 203.56.118.0 - 203.56.123.255 { 0xcb387e00, 0xcb389fff, REGISTRY_APNIC }, // 203.56.126.0 - 203.56.159.255 { 0xcb38a100, 0xcb38a3ff, REGISTRY_APNIC }, // 203.56.161.0 - 203.56.163.255 { 0xcb38a500, 0xcb38aaff, REGISTRY_APNIC }, // 203.56.165.0 - 203.56.170.255 { 0xcb38ac00, 0xcb38adff, REGISTRY_APNIC }, // 203.56.172.0 - 203.56.173.255 { 0xcb38af00, 0xcb38c6ff, REGISTRY_APNIC }, // 203.56.175.0 - 203.56.198.255 { 0xcb38c800, 0xcb38c9ff, REGISTRY_APNIC }, // 203.56.200.0 - 203.56.201.255 { 0xcb38cc00, 0xcb38e5ff, REGISTRY_APNIC }, // 203.56.204.0 - 203.56.229.255 { 0xcb38e700, 0xcb38e9ff, REGISTRY_APNIC }, // 203.56.231.0 - 203.56.233.255 { 0xcb38eb00, 0xcb3908ff, REGISTRY_APNIC }, // 203.56.235.0 - 203.57.8.255 { 0xcb390a00, 0xcb3914ff, REGISTRY_APNIC }, // 203.57.10.0 - 203.57.20.255 { 0xcb391600, 0xcb3919ff, REGISTRY_APNIC }, // 203.57.22.0 - 203.57.25.255 { 0xcb391b00, 0xcb391fff, REGISTRY_APNIC }, // 203.57.27.0 - 203.57.31.255 { 0xcb392100, 0xcb392aff, REGISTRY_APNIC }, // 203.57.33.0 - 203.57.42.255 { 0xcb392c00, 0xcb3933ff, REGISTRY_APNIC }, // 203.57.44.0 - 203.57.51.255 { 0xcb393800, 0xcb393aff, REGISTRY_APNIC }, // 203.57.56.0 - 203.57.58.255 { 0xcb393d00, 0xcb3942ff, REGISTRY_APNIC }, // 203.57.61.0 - 203.57.66.255 { 0xcb394500, 0xcb3947ff, REGISTRY_APNIC }, // 203.57.69.0 - 203.57.71.255 { 0xcb394900, 0xcb394fff, REGISTRY_APNIC }, // 203.57.73.0 - 203.57.79.255 { 0xcb395100, 0xcb3953ff, REGISTRY_APNIC }, // 203.57.81.0 - 203.57.83.255 { 0xcb395800, 0xcb3958ff, REGISTRY_ARIN }, // 203.57.88.0 - 203.57.88.255 { 0xcb395900, 0xcb3960ff, REGISTRY_APNIC }, // 203.57.89.0 - 203.57.96.255 { 0xcb396300, 0xcb3963ff, REGISTRY_APNIC }, // 203.57.99.0 - 203.57.99.255 { 0xcb396500, 0xcb3965ff, REGISTRY_APNIC }, // 203.57.101.0 - 203.57.101.255 { 0xcb396a00, 0xcb396aff, REGISTRY_APNIC }, // 203.57.106.0 - 203.57.106.255 { 0xcb396d00, 0xcb396dff, REGISTRY_APNIC }, // 203.57.109.0 - 203.57.109.255 { 0xcb396e00, 0xcb396eff, REGISTRY_ARIN }, // 203.57.110.0 - 203.57.110.255 { 0xcb397000, 0xcb3973ff, REGISTRY_APNIC }, // 203.57.112.0 - 203.57.115.255 { 0xcb397500, 0xcb3978ff, REGISTRY_APNIC }, // 203.57.117.0 - 203.57.120.255 { 0xcb397a00, 0xcb3994ff, REGISTRY_APNIC }, // 203.57.122.0 - 203.57.148.255 { 0xcb399800, 0xcb39c1ff, REGISTRY_APNIC }, // 203.57.152.0 - 203.57.193.255 { 0xcb39c400, 0xcb39c4ff, REGISTRY_APNIC }, // 203.57.196.0 - 203.57.196.255 { 0xcb39c600, 0xcb39c6ff, REGISTRY_APNIC }, // 203.57.198.0 - 203.57.198.255 { 0xcb39c800, 0xcb39dbff, REGISTRY_APNIC }, // 203.57.200.0 - 203.57.219.255 { 0xcb39de00, 0xcb39f1ff, REGISTRY_APNIC }, // 203.57.222.0 - 203.57.241.255 { 0xcb39f300, 0xcb39f3ff, REGISTRY_APNIC }, // 203.57.243.0 - 203.57.243.255 { 0xcb39f500, 0xcb3e87ff, REGISTRY_APNIC }, // 203.57.245.0 - 203.62.135.255 { 0xcb3e8b00, 0xcb3e8bff, REGISTRY_APNIC }, // 203.62.139.0 - 203.62.139.255 { 0xcb3e8d00, 0xcb3e8fff, REGISTRY_APNIC }, // 203.62.141.0 - 203.62.143.255 { 0xcb3e9200, 0xcb3ea4ff, REGISTRY_APNIC }, // 203.62.146.0 - 203.62.164.255 { 0xcb3ea600, 0xcb3ea9ff, REGISTRY_APNIC }, // 203.62.166.0 - 203.62.169.255 { 0xcb3eab00, 0xcb3eb3ff, REGISTRY_APNIC }, // 203.62.171.0 - 203.62.179.255 { 0xcb3eb400, 0xcb3eb7ff, REGISTRY_ARIN }, // 203.62.180.0 - 203.62.183.255 { 0xcb3eb800, 0xcb3ebeff, REGISTRY_APNIC }, // 203.62.184.0 - 203.62.190.255 { 0xcb3ec000, 0xcb3ec0ff, REGISTRY_APNIC }, // 203.62.192.0 - 203.62.192.255 { 0xcb3ec200, 0xcb3ec6ff, REGISTRY_APNIC }, // 203.62.194.0 - 203.62.198.255 { 0xcb3ec800, 0xcb3ecaff, REGISTRY_APNIC }, // 203.62.200.0 - 203.62.202.255 { 0xcb3ecd00, 0xcb3eefff, REGISTRY_APNIC }, // 203.62.205.0 - 203.62.239.255 { 0xcb3ef600, 0xcb3ef6ff, REGISTRY_APNIC }, // 203.62.246.0 - 203.62.246.255 { 0xcb3ef800, 0xcb4e03ff, REGISTRY_APNIC }, // 203.62.248.0 - 203.78.3.255 { 0xcb4e0500, 0xcb4e9fff, REGISTRY_APNIC }, // 203.78.5.0 - 203.78.159.255 { 0xcb4ea000, 0xcb4ea1ff, REGISTRY_RIPENCC }, // 203.78.160.0 - 203.78.161.255 { 0xcb4ea200, 0xcb4ea2ff, REGISTRY_APNIC }, // 203.78.162.0 - 203.78.162.255 { 0xcb4ea300, 0xcb4ea4ff, REGISTRY_RIPENCC }, // 203.78.163.0 - 203.78.164.255 { 0xcb4ea500, 0xcb4ea5ff, REGISTRY_APNIC }, // 203.78.165.0 - 203.78.165.255 { 0xcb4ea600, 0xcb4eafff, REGISTRY_RIPENCC }, // 203.78.166.0 - 203.78.175.255 { 0xcb4eb000, 0xcb585fff, REGISTRY_APNIC }, // 203.78.176.0 - 203.88.95.255 { 0xcb586000, 0xcb5863ff, REGISTRY_RIPENCC }, // 203.88.96.0 - 203.88.99.255 { 0xcb586800, 0xcb58ffff, REGISTRY_APNIC }, // 203.88.104.0 - 203.88.255.255 { 0xcb590400, 0xcb5967ff, REGISTRY_APNIC }, // 203.89.4.0 - 203.89.103.255 { 0xcb596800, 0xcb596bff, REGISTRY_ARIN }, // 203.89.104.0 - 203.89.107.255 { 0xcb596c00, 0xcb60b7ff, REGISTRY_APNIC }, // 203.89.108.0 - 203.96.183.255 { 0xcb60b800, 0xcb60bbff, REGISTRY_ARIN }, // 203.96.184.0 - 203.96.187.255 { 0xcb60bc00, 0xcb623fff, REGISTRY_APNIC }, // 203.96.188.0 - 203.98.63.255 { 0xcb624000, 0xcb6240ff, REGISTRY_ARIN }, // 203.98.64.0 - 203.98.64.255 { 0xcb624100, 0xcb624dff, REGISTRY_APNIC }, // 203.98.65.0 - 203.98.77.255 { 0xcb624e00, 0xcb624eff, REGISTRY_ARIN }, // 203.98.78.0 - 203.98.78.255 { 0xcb624f00, 0xcb631fff, REGISTRY_APNIC }, // 203.98.79.0 - 203.99.31.255 { 0xcb632800, 0xcb638dff, REGISTRY_APNIC }, // 203.99.40.0 - 203.99.141.255 { 0xcb638f00, 0xcb638fff, REGISTRY_APNIC }, // 203.99.143.0 - 203.99.143.255 { 0xcb639800, 0xcb6438ff, REGISTRY_APNIC }, // 203.99.152.0 - 203.100.56.255 { 0xcb643a00, 0xcb643dff, REGISTRY_APNIC }, // 203.100.58.0 - 203.100.61.255 { 0xcb643f00, 0xcb6d33ff, REGISTRY_APNIC }, // 203.100.63.0 - 203.109.51.255 { 0xcb6d3400, 0xcb6d37ff, REGISTRY_RIPENCC }, // 203.109.52.0 - 203.109.55.255 { 0xcb6d3800, 0xcb6d3bff, REGISTRY_APNIC }, // 203.109.56.0 - 203.109.59.255 { 0xcb6d3c00, 0xcb6d3fff, REGISTRY_RIPENCC }, // 203.109.60.0 - 203.109.63.255 { 0xcb6d4000, 0xcb6ffbff, REGISTRY_APNIC }, // 203.109.64.0 - 203.111.251.255 { 0xcb700000, 0xcb72ebff, REGISTRY_APNIC }, // 203.112.0.0 - 203.114.235.255 { 0xcb72f000, 0xcb7729ff, REGISTRY_APNIC }, // 203.114.240.0 - 203.119.41.255 { 0xcb772c00, 0xcb7737ff, REGISTRY_APNIC }, // 203.119.44.0 - 203.119.55.255 { 0xcb773900, 0xcb775bff, REGISTRY_APNIC }, // 203.119.57.0 - 203.119.91.255 { 0xcb775e00, 0xcb775fff, REGISTRY_APNIC }, // 203.119.94.0 - 203.119.95.255 { 0xcb776400, 0xcb840fff, REGISTRY_APNIC }, // 203.119.100.0 - 203.132.15.255 { 0xcb841000, 0xcb841fff, REGISTRY_ARIN }, // 203.132.16.0 - 203.132.31.255 { 0xcb842000, 0xcb86f9ff, REGISTRY_APNIC }, // 203.132.32.0 - 203.134.249.255 { 0xcb86fc00, 0xcb911fff, REGISTRY_APNIC }, // 203.134.252.0 - 203.145.31.255 { 0xcb914000, 0xcb9f4fff, REGISTRY_APNIC }, // 203.145.64.0 - 203.159.79.255 { 0xcb9f5000, 0xcb9f5fff, REGISTRY_RIPENCC }, // 203.159.80.0 - 203.159.95.255 { 0xcb9f6000, 0xcba081ff, REGISTRY_APNIC }, // 203.159.96.0 - 203.160.129.255 { 0xcba08400, 0xcba089ff, REGISTRY_APNIC }, // 203.160.132.0 - 203.160.137.255 { 0xcba08c00, 0xcba11fff, REGISTRY_APNIC }, // 203.160.140.0 - 203.161.31.255 { 0xcba12000, 0xcba13fff, REGISTRY_ARIN }, // 203.161.32.0 - 203.161.63.255 { 0xcba14000, 0xcba68fff, REGISTRY_APNIC }, // 203.161.64.0 - 203.166.143.255 { 0xcba69000, 0xcba69dff, REGISTRY_RIPENCC }, // 203.166.144.0 - 203.166.157.255 { 0xcba69e00, 0xcba933ff, REGISTRY_APNIC }, // 203.166.158.0 - 203.169.51.255 { 0xcba93800, 0xcbaa18ff, REGISTRY_APNIC }, // 203.169.56.0 - 203.170.24.255 { 0xcbaa1a00, 0xcbaa59ff, REGISTRY_APNIC }, // 203.170.26.0 - 203.170.89.255 { 0xcbaa5c00, 0xcbab3fff, REGISTRY_APNIC }, // 203.170.92.0 - 203.171.63.255 { 0xcbab4000, 0xcbab5fff, REGISTRY_RIPENCC }, // 203.171.64.0 - 203.171.95.255 { 0xcbab6000, 0xcbadffff, REGISTRY_APNIC }, // 203.171.96.0 - 203.173.255.255 { 0xcbae0400, 0xcbae0fff, REGISTRY_APNIC }, // 203.174.4.0 - 203.174.15.255 { 0xcbae1800, 0xcbaf0bff, REGISTRY_APNIC }, // 203.174.24.0 - 203.175.11.255 { 0xcbaf1000, 0xcbaf5fff, REGISTRY_APNIC }, // 203.175.16.0 - 203.175.95.255 { 0xcbaf7000, 0xcbaf7bff, REGISTRY_APNIC }, // 203.175.112.0 - 203.175.123.255 { 0xcbaf8000, 0xcbbde7ff, REGISTRY_APNIC }, // 203.175.128.0 - 203.189.231.255 { 0xcbbde800, 0xcbbdefff, REGISTRY_RIPENCC }, // 203.189.232.0 - 203.189.239.255 { 0xcbbdf000, 0xcbbe37ff, REGISTRY_APNIC }, // 203.189.240.0 - 203.190.55.255 { 0xcbbe3800, 0xcbbe3fff, REGISTRY_RIPENCC }, // 203.190.56.0 - 203.190.63.255 { 0xcbbe4000, 0xcbbf85ff, REGISTRY_APNIC }, // 203.190.64.0 - 203.191.133.255 { 0xcbbf8800, 0xcbc37dff, REGISTRY_APNIC }, // 203.191.136.0 - 203.195.125.255 { 0xcbc37f00, 0xcbc9bbff, REGISTRY_APNIC }, // 203.195.127.0 - 203.201.187.255 { 0xcbc9c000, 0xcbcae9ff, REGISTRY_APNIC }, // 203.201.192.0 - 203.202.233.255 { 0xcbcaeb00, 0xcbd25bff, REGISTRY_APNIC }, // 203.202.235.0 - 203.210.91.255 { 0xcbd26000, 0xcbd997ff, REGISTRY_APNIC }, // 203.210.96.0 - 203.217.151.255 { 0xcbd99c00, 0xcbdeffff, REGISTRY_APNIC }, // 203.217.156.0 - 203.222.255.255 { 0xcbdf1000, 0xcbdf57ff, REGISTRY_APNIC }, // 203.223.16.0 - 203.223.87.255 { 0xcbdf5a00, 0xcbffffff, REGISTRY_APNIC }, // 203.223.90.0 - 203.255.255.255 { 0xcc000000, 0xcc08cbff, REGISTRY_ARIN }, // 204.0.0.0 - 204.8.203.255 { 0xcc08cc00, 0xcc08cfff, REGISTRY_AFRINIC }, // 204.8.204.0 - 204.8.207.255 { 0xcc08d000, 0xcc0affff, REGISTRY_ARIN }, // 204.8.208.0 - 204.10.255.255 { 0xcc0b0000, 0xcc0b03ff, REGISTRY_RIPENCC }, // 204.11.0.0 - 204.11.3.255 { 0xcc0b0400, 0xcc0c7fff, REGISTRY_ARIN }, // 204.11.4.0 - 204.12.127.255 { 0xcc0c8000, 0xcc0c8fff, REGISTRY_AFRINIC }, // 204.12.128.0 - 204.12.143.255 { 0xcc0c9000, 0xcc0d37ff, REGISTRY_ARIN }, // 204.12.144.0 - 204.13.55.255 { 0xcc0d3800, 0xcc0d3bff, REGISTRY_RIPENCC }, // 204.13.56.0 - 204.13.59.255 { 0xcc0d3c00, 0xcc11ffff, REGISTRY_ARIN }, // 204.13.60.0 - 204.17.255.255 { 0xcc120000, 0xcc12ffff, REGISTRY_RIPENCC }, // 204.18.0.0 - 204.18.255.255 { 0xcc130000, 0xcc1d91ff, REGISTRY_ARIN }, // 204.19.0.0 - 204.29.145.255 { 0xcc1d9200, 0xcc1d92ff, REGISTRY_RIPENCC }, // 204.29.146.0 - 204.29.146.255 { 0xcc1d9300, 0xcc301fff, REGISTRY_ARIN }, // 204.29.147.0 - 204.48.31.255 { 0xcc302000, 0xcc3021ff, REGISTRY_RIPENCC }, // 204.48.32.0 - 204.48.33.255 { 0xcc302200, 0xcc303dff, REGISTRY_ARIN }, // 204.48.34.0 - 204.48.61.255 { 0xcc303e00, 0xcc303fff, REGISTRY_APNIC }, // 204.48.62.0 - 204.48.63.255 { 0xcc304000, 0xcc34beff, REGISTRY_ARIN }, // 204.48.64.0 - 204.52.190.255 { 0xcc34bf00, 0xcc34bfff, REGISTRY_APNIC }, // 204.52.191.0 - 204.52.191.255 { 0xcc34c000, 0xcc3a87ff, REGISTRY_ARIN }, // 204.52.192.0 - 204.58.135.255 { 0xcc3a8800, 0xcc3a8bff, REGISTRY_LACNIC }, // 204.58.136.0 - 204.58.139.255 { 0xcc3a8c00, 0xcc3ed9ff, REGISTRY_ARIN }, // 204.58.140.0 - 204.62.217.255 { 0xcc3eda00, 0xcc3edaff, REGISTRY_RIPENCC }, // 204.62.218.0 - 204.62.218.255 { 0xcc3edb00, 0xcc4b8dff, REGISTRY_ARIN }, // 204.62.219.0 - 204.75.141.255 { 0xcc4b8e00, 0xcc4b8eff, REGISTRY_APNIC }, // 204.75.142.0 - 204.75.142.255 { 0xcc4b8f00, 0xcc4be4ff, REGISTRY_ARIN }, // 204.75.143.0 - 204.75.228.255 { 0xcc4be500, 0xcc4be5ff, REGISTRY_RIPENCC }, // 204.75.229.0 - 204.75.229.255 { 0xcc4be600, 0xcc508eff, REGISTRY_ARIN }, // 204.75.230.0 - 204.80.142.255 { 0xcc508f00, 0xcc508fff, REGISTRY_LACNIC }, // 204.80.143.0 - 204.80.143.255 { 0xcc509000, 0xcc5687ff, REGISTRY_ARIN }, // 204.80.144.0 - 204.86.135.255 { 0xcc568800, 0xcc5697ff, REGISTRY_APNIC }, // 204.86.136.0 - 204.86.151.255 { 0xcc569800, 0xcc57a8ff, REGISTRY_ARIN }, // 204.86.152.0 - 204.87.168.255 { 0xcc57a900, 0xcc57a9ff, REGISTRY_LACNIC }, // 204.87.169.0 - 204.87.169.255 { 0xcc57aa00, 0xcc57b2ff, REGISTRY_ARIN }, // 204.87.170.0 - 204.87.178.255 { 0xcc57b300, 0xcc57b3ff, REGISTRY_AFRINIC }, // 204.87.179.0 - 204.87.179.255 { 0xcc57b400, 0xcc57ccff, REGISTRY_ARIN }, // 204.87.180.0 - 204.87.204.255 { 0xcc57cd00, 0xcc57cdff, REGISTRY_LACNIC }, // 204.87.205.0 - 204.87.205.255 { 0xcc57ce00, 0xcc59cdff, REGISTRY_ARIN }, // 204.87.206.0 - 204.89.205.255 { 0xcc59ce00, 0xcc59ceff, REGISTRY_LACNIC }, // 204.89.206.0 - 204.89.206.255 { 0xcc59cf00, 0xcc7c67ff, REGISTRY_ARIN }, // 204.89.207.0 - 204.124.103.255 { 0xcc7c6800, 0xcc7c6bff, REGISTRY_LACNIC }, // 204.124.104.0 - 204.124.107.255 { 0xcc7c6c00, 0xcc7e0bff, REGISTRY_ARIN }, // 204.124.108.0 - 204.126.11.255 { 0xcc7e0c00, 0xcc7e0dff, REGISTRY_LACNIC }, // 204.126.12.0 - 204.126.13.255 { 0xcc7e0e00, 0xcc7e7fff, REGISTRY_ARIN }, // 204.126.14.0 - 204.126.127.255 { 0xcc7e8000, 0xcc7e81ff, REGISTRY_LACNIC }, // 204.126.128.0 - 204.126.129.255 { 0xcc7e8200, 0xcc7e8bff, REGISTRY_ARIN }, // 204.126.130.0 - 204.126.139.255 { 0xcc7e8c00, 0xcc7e8dff, REGISTRY_LACNIC }, // 204.126.140.0 - 204.126.141.255 { 0xcc7e8e00, 0xcc90ffff, REGISTRY_ARIN }, // 204.126.142.0 - 204.144.255.255 { 0xcc910000, 0xcc9100ff, REGISTRY_APNIC }, // 204.145.0.0 - 204.145.0.255 { 0xcc910100, 0xcc9101ff, REGISTRY_ARIN }, // 204.145.1.0 - 204.145.1.255 { 0xcc910200, 0xcc9107ff, REGISTRY_APNIC }, // 204.145.2.0 - 204.145.7.255 { 0xcc910800, 0xcc9160ff, REGISTRY_ARIN }, // 204.145.8.0 - 204.145.96.255 { 0xcc916100, 0xcc9161ff, REGISTRY_APNIC }, // 204.145.97.0 - 204.145.97.255 { 0xcc916200, 0xcc91c8ff, REGISTRY_ARIN }, // 204.145.98.0 - 204.145.200.255 { 0xcc91c900, 0xcc91c9ff, REGISTRY_LACNIC }, // 204.145.201.0 - 204.145.201.255 { 0xcc91ca00, 0xcc980dff, REGISTRY_ARIN }, // 204.145.202.0 - 204.152.13.255 { 0xcc980e00, 0xcc980fff, REGISTRY_AFRINIC }, // 204.152.14.0 - 204.152.15.255 { 0xcc981000, 0xcc984dff, REGISTRY_ARIN }, // 204.152.16.0 - 204.152.77.255 { 0xcc984e00, 0xcc984eff, REGISTRY_APNIC }, // 204.152.78.0 - 204.152.78.255 { 0xcc984f00, 0xcc9861ff, REGISTRY_ARIN }, // 204.152.79.0 - 204.152.97.255 { 0xcc986200, 0xcc9862ff, REGISTRY_RIPENCC }, // 204.152.98.0 - 204.152.98.255 { 0xcc986300, 0xcc98dfff, REGISTRY_ARIN }, // 204.152.99.0 - 204.152.223.255 { 0xcc98e000, 0xcc98e7ff, REGISTRY_APNIC }, // 204.152.224.0 - 204.152.231.255 { 0xcc98e800, 0xcc9917ff, REGISTRY_ARIN }, // 204.152.232.0 - 204.153.23.255 { 0xcc991800, 0xcc9919ff, REGISTRY_LACNIC }, // 204.153.24.0 - 204.153.25.255 { 0xcc991a00, 0xcc9ac7ff, REGISTRY_ARIN }, // 204.153.26.0 - 204.154.199.255 { 0xcc9ac800, 0xcc9acfff, REGISTRY_RIPENCC }, // 204.154.200.0 - 204.154.207.255 { 0xcc9ad000, 0xcc9adfff, REGISTRY_ARIN }, // 204.154.208.0 - 204.154.223.255 { 0xcc9ae000, 0xcc9ae3ff, REGISTRY_APNIC }, // 204.154.224.0 - 204.154.227.255 { 0xcc9ae400, 0xcca87fff, REGISTRY_ARIN }, // 204.154.228.0 - 204.168.127.255 { 0xcca88000, 0xcca8ffff, REGISTRY_RIPENCC }, // 204.168.128.0 - 204.168.255.255 { 0xcca90000, 0xccae63ff, REGISTRY_ARIN }, // 204.169.0.0 - 204.174.99.255 { 0xccae6400, 0xccae64ff, REGISTRY_RIPENCC }, // 204.174.100.0 - 204.174.100.255 { 0xccae6500, 0xccbb68ff, REGISTRY_ARIN }, // 204.174.101.0 - 204.187.104.255 { 0xccbb6900, 0xccbb69ff, REGISTRY_RIPENCC }, // 204.187.105.0 - 204.187.105.255 { 0xccbb6a00, 0xcce129ff, REGISTRY_ARIN }, // 204.187.106.0 - 204.225.41.255 { 0xcce12a00, 0xcce12bff, REGISTRY_LACNIC }, // 204.225.42.0 - 204.225.43.255 { 0xcce12c00, 0xcce1d9ff, REGISTRY_ARIN }, // 204.225.44.0 - 204.225.217.255 { 0xcce1da00, 0xcce1daff, REGISTRY_RIPENCC }, // 204.225.218.0 - 204.225.218.255 { 0xcce1db00, 0xcceb1fff, REGISTRY_ARIN }, // 204.225.219.0 - 204.235.31.255 { 0xcceb2000, 0xcceb2bff, REGISTRY_AFRINIC }, // 204.235.32.0 - 204.235.43.255 { 0xcceb2c00, 0xcceb67ff, REGISTRY_ARIN }, // 204.235.44.0 - 204.235.103.255 { 0xcceb6800, 0xcceb68ff, REGISTRY_RIPENCC }, // 204.235.104.0 - 204.235.104.255 { 0xcceb6900, 0xcd842fff, REGISTRY_ARIN }, // 204.235.105.0 - 205.132.47.255 { 0xcd843000, 0xcd8437ff, REGISTRY_RIPENCC }, // 205.132.48.0 - 205.132.55.255 { 0xcd843800, 0xcd848fff, REGISTRY_ARIN }, // 205.132.56.0 - 205.132.143.255 { 0xcd849000, 0xcd8497ff, REGISTRY_RIPENCC }, // 205.132.144.0 - 205.132.151.255 { 0xcd849800, 0xcd935fff, REGISTRY_ARIN }, // 205.132.152.0 - 205.147.95.255 { 0xcd936000, 0xcd936fff, REGISTRY_APNIC }, // 205.147.96.0 - 205.147.111.255 { 0xcd937000, 0xcd951fff, REGISTRY_ARIN }, // 205.147.112.0 - 205.149.31.255 { 0xcd952000, 0xcd953fff, REGISTRY_RIPENCC }, // 205.149.32.0 - 205.149.63.255 { 0xcd954000, 0xcd9f4eff, REGISTRY_ARIN }, // 205.149.64.0 - 205.159.78.255 { 0xcd9f4f00, 0xcd9f4fff, REGISTRY_AFRINIC }, // 205.159.79.0 - 205.159.79.255 { 0xcd9f5000, 0xcda6b0ff, REGISTRY_ARIN }, // 205.159.80.0 - 205.166.176.255 { 0xcda6b100, 0xcda6b1ff, REGISTRY_APNIC }, // 205.166.177.0 - 205.166.177.255 { 0xcda6b200, 0xcda6faff, REGISTRY_ARIN }, // 205.166.178.0 - 205.166.250.255 { 0xcda6fb00, 0xcda6fbff, REGISTRY_LACNIC }, // 205.166.251.0 - 205.166.251.255 { 0xcda6fc00, 0xcdb292ff, REGISTRY_ARIN }, // 205.166.252.0 - 205.178.146.255 { 0xcdb29300, 0xcdb293ff, REGISTRY_LACNIC }, // 205.178.147.0 - 205.178.147.255 { 0xcdb29400, 0xcdbd9fff, REGISTRY_ARIN }, // 205.178.148.0 - 205.189.159.255 { 0xcdbda000, 0xcdbda0ff, REGISTRY_APNIC }, // 205.189.160.0 - 205.189.160.255 { 0xcdbda100, 0xcdc8ffff, REGISTRY_ARIN }, // 205.189.161.0 - 205.200.255.255 { 0xcdc90000, 0xcdc90fff, REGISTRY_APNIC }, // 205.201.0.0 - 205.201.15.255 { 0xcdc91000, 0xcdc936ff, REGISTRY_ARIN }, // 205.201.16.0 - 205.201.54.255 { 0xcdc93700, 0xcdc937ff, REGISTRY_RIPENCC }, // 205.201.55.0 - 205.201.55.255 { 0xcdc93800, 0xcdcb49ff, REGISTRY_ARIN }, // 205.201.56.0 - 205.203.73.255 { 0xcdcb4a00, 0xcdcb4bff, REGISTRY_APNIC }, // 205.203.74.0 - 205.203.75.255 { 0xcdcb4c00, 0xcdd352ff, REGISTRY_ARIN }, // 205.203.76.0 - 205.211.82.255 { 0xcdd35300, 0xcdd353ff, REGISTRY_RIPENCC }, // 205.211.83.0 - 205.211.83.255 { 0xcdd35400, 0xcddcd7ff, REGISTRY_ARIN }, // 205.211.84.0 - 205.220.215.255 { 0xcddcd800, 0xcddcd9ff, REGISTRY_RIPENCC }, // 205.220.216.0 - 205.220.217.255 { 0xcddcda00, 0xcdee3fff, REGISTRY_ARIN }, // 205.220.218.0 - 205.238.63.255 { 0xcdee4000, 0xcdee7fff, REGISTRY_RIPENCC }, // 205.238.64.0 - 205.238.127.255 { 0xcdee8000, 0xcdfcffff, REGISTRY_ARIN }, // 205.238.128.0 - 205.252.255.255 { 0xcdfd0000, 0xcdfdffff, REGISTRY_APNIC }, // 205.253.0.0 - 205.253.255.255 { 0xcdfe0000, 0xce02ffff, REGISTRY_ARIN }, // 205.254.0.0 - 206.2.255.255 { 0xce030000, 0xce031fff, REGISTRY_APNIC }, // 206.3.0.0 - 206.3.31.255 { 0xce032000, 0xce0f7fff, REGISTRY_ARIN }, // 206.3.32.0 - 206.15.127.255 { 0xce0f8000, 0xce0f80ff, REGISTRY_LACNIC }, // 206.15.128.0 - 206.15.128.255 { 0xce0f8100, 0xce535fff, REGISTRY_ARIN }, // 206.15.129.0 - 206.83.95.255 { 0xce536000, 0xce537fff, REGISTRY_APNIC }, // 206.83.96.0 - 206.83.127.255 { 0xce538000, 0xce7c67ff, REGISTRY_ARIN }, // 206.83.128.0 - 206.124.103.255 { 0xce7c6800, 0xce7c6fff, REGISTRY_RIPENCC }, // 206.124.104.0 - 206.124.111.255 { 0xce7c7000, 0xce83bfff, REGISTRY_ARIN }, // 206.124.112.0 - 206.131.191.255 { 0xce83c000, 0xce83cfff, REGISTRY_APNIC }, // 206.131.192.0 - 206.131.207.255 { 0xce83d000, 0xcea720ff, REGISTRY_ARIN }, // 206.131.208.0 - 206.167.32.255 { 0xcea72100, 0xcea721ff, REGISTRY_RIPENCC }, // 206.167.33.0 - 206.167.33.255 { 0xcea72200, 0xcebedbff, REGISTRY_ARIN }, // 206.167.34.0 - 206.190.219.255 { 0xcebedc00, 0xcebedfff, REGISTRY_RIPENCC }, // 206.190.220.0 - 206.190.223.255 { 0xcebee000, 0xcec31fff, REGISTRY_ARIN }, // 206.190.224.0 - 206.195.31.255 { 0xcec32000, 0xcec33fff, REGISTRY_RIPENCC }, // 206.195.32.0 - 206.195.63.255 { 0xcec34000, 0xcec37fff, REGISTRY_ARIN }, // 206.195.64.0 - 206.195.127.255 { 0xcec38000, 0xcec38fff, REGISTRY_RIPENCC }, // 206.195.128.0 - 206.195.143.255 { 0xcec39000, 0xcec8ffff, REGISTRY_ARIN }, // 206.195.144.0 - 206.200.255.255 { 0xcec90000, 0xcec90fff, REGISTRY_APNIC }, // 206.201.0.0 - 206.201.15.255 { 0xcec91000, 0xcecbffff, REGISTRY_ARIN }, // 206.201.16.0 - 206.203.255.255 { 0xcecc0000, 0xcecc3fff, REGISTRY_RIPENCC }, // 206.204.0.0 - 206.204.63.255 { 0xcecc4000, 0xcecc67ff, REGISTRY_ARIN }, // 206.204.64.0 - 206.204.103.255 { 0xcecc6800, 0xcecc6bff, REGISTRY_RIPENCC }, // 206.204.104.0 - 206.204.107.255 { 0xcecc6c00, 0xcecc7fff, REGISTRY_ARIN }, // 206.204.108.0 - 206.204.127.255 { 0xcecc8000, 0xceccbfff, REGISTRY_RIPENCC }, // 206.204.128.0 - 206.204.191.255 { 0xceccc000, 0xceccf7ff, REGISTRY_ARIN }, // 206.204.192.0 - 206.204.247.255 { 0xceccf800, 0xceccf9ff, REGISTRY_LACNIC }, // 206.204.248.0 - 206.204.249.255 { 0xceccfa00, 0xced14bff, REGISTRY_ARIN }, // 206.204.250.0 - 206.209.75.255 { 0xced14c00, 0xced14fff, REGISTRY_APNIC }, // 206.209.76.0 - 206.209.79.255 { 0xced15000, 0xcedd4fff, REGISTRY_ARIN }, // 206.209.80.0 - 206.221.79.255 { 0xcedd5000, 0xcedd5fff, REGISTRY_LACNIC }, // 206.221.80.0 - 206.221.95.255 { 0xcedd6000, 0xcedf7bff, REGISTRY_ARIN }, // 206.221.96.0 - 206.223.123.255 { 0xcedf7c00, 0xcedf7cff, REGISTRY_LACNIC }, // 206.223.124.0 - 206.223.124.255 { 0xcedf7d00, 0xcedf81ff, REGISTRY_ARIN }, // 206.223.125.0 - 206.223.129.255 { 0xcedf8200, 0xcedf82ff, REGISTRY_LACNIC }, // 206.223.130.0 - 206.223.130.255 { 0xcedf8300, 0xcedf87ff, REGISTRY_ARIN }, // 206.223.131.0 - 206.223.135.255 { 0xcedf8800, 0xcedf88ff, REGISTRY_AFRINIC }, // 206.223.136.0 - 206.223.136.255 { 0xcedf8900, 0xcee01fff, REGISTRY_ARIN }, // 206.223.137.0 - 206.224.31.255 { 0xcee02000, 0xcee03fff, REGISTRY_LACNIC }, // 206.224.32.0 - 206.224.63.255 { 0xcee04000, 0xcee110ff, REGISTRY_ARIN }, // 206.224.64.0 - 206.225.16.255 { 0xcee11100, 0xcee111ff, REGISTRY_RIPENCC }, // 206.225.17.0 - 206.225.17.255 { 0xcee11200, 0xcee113ff, REGISTRY_ARIN }, // 206.225.18.0 - 206.225.19.255 { 0xcee11400, 0xcee117ff, REGISTRY_RIPENCC }, // 206.225.20.0 - 206.225.23.255 { 0xcee11800, 0xcef5bfff, REGISTRY_ARIN }, // 206.225.24.0 - 206.245.191.255 { 0xcef5c000, 0xcef5ffff, REGISTRY_RIPENCC }, // 206.245.192.0 - 206.245.255.255 { 0xcef60000, 0xcefcdfff, REGISTRY_ARIN }, // 206.246.0.0 - 206.252.223.255 { 0xcefce000, 0xcefcffff, REGISTRY_RIPENCC }, // 206.252.224.0 - 206.252.255.255 { 0xcefd0000, 0xcf413bff, REGISTRY_ARIN }, // 206.253.0.0 - 207.65.59.255 { 0xcf413c00, 0xcf413fff, REGISTRY_APNIC }, // 207.65.60.0 - 207.65.63.255 { 0xcf414000, 0xcf417fff, REGISTRY_ARIN }, // 207.65.64.0 - 207.65.127.255 { 0xcf418000, 0xcf41ffff, REGISTRY_APNIC }, // 207.65.128.0 - 207.65.255.255 { 0xcf420000, 0xcf423fff, REGISTRY_RIPENCC }, // 207.66.0.0 - 207.66.63.255 { 0xcf424000, 0xcf426fff, REGISTRY_ARIN }, // 207.66.64.0 - 207.66.111.255 { 0xcf427000, 0xcf4277ff, REGISTRY_APNIC }, // 207.66.112.0 - 207.66.119.255 { 0xcf427800, 0xcf593fff, REGISTRY_ARIN }, // 207.66.120.0 - 207.89.63.255 { 0xcf594000, 0xcf597fff, REGISTRY_RIPENCC }, // 207.89.64.0 - 207.89.127.255 { 0xcf598000, 0xcf87ffff, REGISTRY_ARIN }, // 207.89.128.0 - 207.135.255.255 { 0xcf880000, 0xcf883fff, REGISTRY_APNIC }, // 207.136.0.0 - 207.136.63.255 { 0xcf884000, 0xcf941fff, REGISTRY_ARIN }, // 207.136.64.0 - 207.148.31.255 { 0xcf942000, 0xcf942fff, REGISTRY_APNIC }, // 207.148.32.0 - 207.148.47.255 { 0xcf943000, 0xcf943fff, REGISTRY_ARIN }, // 207.148.48.0 - 207.148.63.255 { 0xcf944000, 0xcf947fff, REGISTRY_APNIC }, // 207.148.64.0 - 207.148.127.255 { 0xcf948000, 0xcf969fff, REGISTRY_ARIN }, // 207.148.128.0 - 207.150.159.255 { 0xcf96a000, 0xcf96bfff, REGISTRY_RIPENCC }, // 207.150.160.0 - 207.150.191.255 { 0xcf96c000, 0xcf9e3fff, REGISTRY_ARIN }, // 207.150.192.0 - 207.158.63.255 { 0xcf9e4000, 0xcf9e7fff, REGISTRY_APNIC }, // 207.158.64.0 - 207.158.127.255 { 0xcf9e8000, 0xcfaeafff, REGISTRY_ARIN }, // 207.158.128.0 - 207.174.175.255 { 0xcfaeb000, 0xcfaebfff, REGISTRY_APNIC }, // 207.174.176.0 - 207.174.191.255 { 0xcfaec000, 0xcfaed7ff, REGISTRY_ARIN }, // 207.174.192.0 - 207.174.215.255 { 0xcfaed800, 0xcfaedbff, REGISTRY_RIPENCC }, // 207.174.216.0 - 207.174.219.255 { 0xcfaedc00, 0xcfb23fff, REGISTRY_ARIN }, // 207.174.220.0 - 207.178.63.255 { 0xcfb24000, 0xcfb25fff, REGISTRY_RIPENCC }, // 207.178.64.0 - 207.178.95.255 { 0xcfb26000, 0xcfb4bfff, REGISTRY_ARIN }, // 207.178.96.0 - 207.180.191.255 { 0xcfb4c000, 0xcfb4ffff, REGISTRY_RIPENCC }, // 207.180.192.0 - 207.180.255.255 { 0xcfb50000, 0xcfbc7fff, REGISTRY_ARIN }, // 207.181.0.0 - 207.188.127.255 { 0xcfbc8000, 0xcfbcbfff, REGISTRY_RIPENCC }, // 207.188.128.0 - 207.188.191.255 { 0xcfbcc000, 0xcfbda7ff, REGISTRY_ARIN }, // 207.188.192.0 - 207.189.167.255 { 0xcfbda800, 0xcfbdabff, REGISTRY_APNIC }, // 207.189.168.0 - 207.189.171.255 { 0xcfbdac00, 0xcfbdb7ff, REGISTRY_ARIN }, // 207.189.172.0 - 207.189.183.255 { 0xcfbdb800, 0xcfbdbbff, REGISTRY_APNIC }, // 207.189.184.0 - 207.189.187.255 { 0xcfbdbc00, 0xcfbdbfff, REGISTRY_ARIN }, // 207.189.188.0 - 207.189.191.255 { 0xcfbdc000, 0xcfbdcfff, REGISTRY_RIPENCC }, // 207.189.192.0 - 207.189.207.255 { 0xcfbdd000, 0xcfbf9fff, REGISTRY_ARIN }, // 207.189.208.0 - 207.191.159.255 { 0xcfbfa000, 0xcfbfafff, REGISTRY_LACNIC }, // 207.191.160.0 - 207.191.175.255 { 0xcfbfb000, 0xcfd3cfff, REGISTRY_ARIN }, // 207.191.176.0 - 207.211.207.255 { 0xcfd3d000, 0xcfd3d7ff, REGISTRY_RIPENCC }, // 207.211.208.0 - 207.211.215.255 { 0xcfd3d800, 0xcfe56fff, REGISTRY_ARIN }, // 207.211.216.0 - 207.229.111.255 { 0xcfe57000, 0xcfe574ff, REGISTRY_RIPENCC }, // 207.229.112.0 - 207.229.116.255 { 0xcfe57500, 0xcfe575ff, REGISTRY_ARIN }, // 207.229.117.0 - 207.229.117.255 { 0xcfe57600, 0xcfe578ff, REGISTRY_RIPENCC }, // 207.229.118.0 - 207.229.120.255 { 0xcfe57900, 0xcfe579ff, REGISTRY_ARIN }, // 207.229.121.0 - 207.229.121.255 { 0xcfe57a00, 0xcfe57aff, REGISTRY_RIPENCC }, // 207.229.122.0 - 207.229.122.255 { 0xcfe57b00, 0xcfe57fff, REGISTRY_RIPENCC }, // 207.229.123.0 - 207.229.127.255 { 0xcfe58000, 0xcfe7ffff, REGISTRY_ARIN }, // 207.229.128.0 - 207.231.255.255 { 0xcfe80000, 0xcfe83fff, REGISTRY_RIPENCC }, // 207.232.0.0 - 207.232.63.255 { 0xcfe84000, 0xcfe97fff, REGISTRY_ARIN }, // 207.232.64.0 - 207.233.127.255 { 0xcfe98000, 0xcfe9ffff, REGISTRY_RIPENCC }, // 207.233.128.0 - 207.233.255.255 { 0xcfea0000, 0xcff4c3ff, REGISTRY_ARIN }, // 207.234.0.0 - 207.244.195.255 { 0xcff4c400, 0xcff4c7ff, REGISTRY_RIPENCC }, // 207.244.196.0 - 207.244.199.255 { 0xcff4c800, 0xcff4cfff, REGISTRY_ARIN }, // 207.244.200.0 - 207.244.207.255 { 0xcff4d000, 0xcff4d3ff, REGISTRY_RIPENCC }, // 207.244.208.0 - 207.244.211.255 { 0xcff4d400, 0xcff4d4ff, REGISTRY_RIPENCC }, // 207.244.212.0 - 207.244.212.255 { 0xcff4d500, 0xcff4d5ff, REGISTRY_ARIN }, // 207.244.213.0 - 207.244.213.255 { 0xcff4d600, 0xcff4dbff, REGISTRY_RIPENCC }, // 207.244.214.0 - 207.244.219.255 { 0xcff4dc00, 0xcff7ffff, REGISTRY_ARIN }, // 207.244.220.0 - 207.247.255.255 { 0xcff80000, 0xcff9ffff, REGISTRY_LACNIC }, // 207.248.0.0 - 207.249.255.255 { 0xcffa0000, 0xd034a1ff, REGISTRY_ARIN }, // 207.250.0.0 - 208.52.161.255 { 0xd034a200, 0xd034a3ff, REGISTRY_LACNIC }, // 208.52.162.0 - 208.52.163.255 { 0xd034a400, 0xd0357fff, REGISTRY_ARIN }, // 208.52.164.0 - 208.53.127.255 { 0xd0358000, 0xd035bfff, REGISTRY_RIPENCC }, // 208.53.128.0 - 208.53.191.255 { 0xd035c000, 0xd038cfff, REGISTRY_ARIN }, // 208.53.192.0 - 208.56.207.255 { 0xd038d000, 0xd038dfff, REGISTRY_APNIC }, // 208.56.208.0 - 208.56.223.255 { 0xd038e000, 0xd042e7ff, REGISTRY_ARIN }, // 208.56.224.0 - 208.66.231.255 { 0xd042e800, 0xd042efff, REGISTRY_APNIC }, // 208.66.232.0 - 208.66.239.255 { 0xd042f000, 0xd047d3ff, REGISTRY_ARIN }, // 208.66.240.0 - 208.71.211.255 { 0xd047d400, 0xd047d7ff, REGISTRY_APNIC }, // 208.71.212.0 - 208.71.215.255 { 0xd047d800, 0xd047dfff, REGISTRY_ARIN }, // 208.71.216.0 - 208.71.223.255 { 0xd047e000, 0xd047e7ff, REGISTRY_APNIC }, // 208.71.224.0 - 208.71.231.255 { 0xd047e800, 0xd04bdbff, REGISTRY_ARIN }, // 208.71.232.0 - 208.75.219.255 { 0xd04bdc00, 0xd04bdfff, REGISTRY_RIPENCC }, // 208.75.220.0 - 208.75.223.255 { 0xd04be000, 0xd05173ff, REGISTRY_ARIN }, // 208.75.224.0 - 208.81.115.255 { 0xd0517400, 0xd05177ff, REGISTRY_APNIC }, // 208.81.116.0 - 208.81.119.255 { 0xd0517800, 0xd05247ff, REGISTRY_ARIN }, // 208.81.120.0 - 208.82.71.255 { 0xd0524800, 0xd0524bff, REGISTRY_RIPENCC }, // 208.82.72.0 - 208.82.75.255 { 0xd0524c00, 0xd0559bff, REGISTRY_ARIN }, // 208.82.76.0 - 208.85.155.255 { 0xd0559c00, 0xd0559fff, REGISTRY_AFRINIC }, // 208.85.156.0 - 208.85.159.255 { 0xd055a000, 0xd057a5ff, REGISTRY_ARIN }, // 208.85.160.0 - 208.87.165.255 { 0xd057a600, 0xd057a7ff, REGISTRY_APNIC }, // 208.87.166.0 - 208.87.167.255 { 0xd057a800, 0xd057c7ff, REGISTRY_ARIN }, // 208.87.168.0 - 208.87.199.255 { 0xd057c800, 0xd057cfff, REGISTRY_APNIC }, // 208.87.200.0 - 208.87.207.255 { 0xd057d000, 0xd0587fff, REGISTRY_ARIN }, // 208.87.208.0 - 208.88.127.255 { 0xd0588000, 0xd05883ff, REGISTRY_RIPENCC }, // 208.88.128.0 - 208.88.131.255 { 0xd0588400, 0xd06f2fff, REGISTRY_ARIN }, // 208.88.132.0 - 208.111.47.255 { 0xd06f3000, 0xd06f37ff, REGISTRY_APNIC }, // 208.111.48.0 - 208.111.55.255 { 0xd06f3800, 0xd0a62fff, REGISTRY_ARIN }, // 208.111.56.0 - 208.166.47.255 { 0xd0a63000, 0xd0a63fff, REGISTRY_RIPENCC }, // 208.166.48.0 - 208.166.63.255 { 0xd0a64000, 0xd10cffff, REGISTRY_ARIN }, // 208.166.64.0 - 209.12.255.255 { 0xd10d0000, 0xd10dffff, REGISTRY_LACNIC }, // 209.13.0.0 - 209.13.255.255 { 0xd10e0000, 0xd10f5fff, REGISTRY_ARIN }, // 209.14.0.0 - 209.15.95.255 { 0xd10f6000, 0xd10f7fff, REGISTRY_APNIC }, // 209.15.96.0 - 209.15.127.255 { 0xd10f8000, 0xd1108bff, REGISTRY_ARIN }, // 209.15.128.0 - 209.16.139.255 { 0xd1108c00, 0xd11093ff, REGISTRY_RIPENCC }, // 209.16.140.0 - 209.16.147.255 { 0xd1109400, 0xd11097ff, REGISTRY_ARIN }, // 209.16.148.0 - 209.16.151.255 { 0xd1109800, 0xd1109fff, REGISTRY_RIPENCC }, // 209.16.152.0 - 209.16.159.255 { 0xd110a000, 0xd110afff, REGISTRY_ARIN }, // 209.16.160.0 - 209.16.175.255 { 0xd110b000, 0xd110b0ff, REGISTRY_RIPENCC }, // 209.16.176.0 - 209.16.176.255 { 0xd110b100, 0xd110b1ff, REGISTRY_RIPENCC }, // 209.16.177.0 - 209.16.177.255 { 0xd110b200, 0xd110b2ff, REGISTRY_RIPENCC }, // 209.16.178.0 - 209.16.178.255 { 0xd110b300, 0xd110bfff, REGISTRY_RIPENCC }, // 209.16.179.0 - 209.16.191.255 { 0xd110c000, 0xd1113fff, REGISTRY_ARIN }, // 209.16.192.0 - 209.17.63.255 { 0xd1114000, 0xd1115fff, REGISTRY_APNIC }, // 209.17.64.0 - 209.17.95.255 { 0xd1116000, 0xd11175ff, REGISTRY_ARIN }, // 209.17.96.0 - 209.17.117.255 { 0xd1117600, 0xd11176ff, REGISTRY_APNIC }, // 209.17.118.0 - 209.17.118.255 { 0xd1117700, 0xd1149fff, REGISTRY_ARIN }, // 209.17.119.0 - 209.20.159.255 { 0xd114a000, 0xd114bfff, REGISTRY_RIPENCC }, // 209.20.160.0 - 209.20.191.255 { 0xd114c000, 0xd12303ff, REGISTRY_ARIN }, // 209.20.192.0 - 209.35.3.255 { 0xd1230400, 0xd12305ff, REGISTRY_RIPENCC }, // 209.35.4.0 - 209.35.5.255 { 0xd1230600, 0xd1233fff, REGISTRY_ARIN }, // 209.35.6.0 - 209.35.63.255 { 0xd1234000, 0xd1235fff, REGISTRY_RIPENCC }, // 209.35.64.0 - 209.35.95.255 { 0xd1236000, 0xd12361ff, REGISTRY_APNIC }, // 209.35.96.0 - 209.35.97.255 { 0xd1236200, 0xd12362ff, REGISTRY_ARIN }, // 209.35.98.0 - 209.35.98.255 { 0xd1236300, 0xd12363ff, REGISTRY_RIPENCC }, // 209.35.99.0 - 209.35.99.255 { 0xd1236400, 0xd12370ff, REGISTRY_ARIN }, // 209.35.100.0 - 209.35.112.255 { 0xd1237100, 0xd12371ff, REGISTRY_RIPENCC }, // 209.35.113.0 - 209.35.113.255 { 0xd1237200, 0xd12373ff, REGISTRY_APNIC }, // 209.35.114.0 - 209.35.115.255 { 0xd1237400, 0xd1237fff, REGISTRY_ARIN }, // 209.35.116.0 - 209.35.127.255 { 0xd1238000, 0xd1238fff, REGISTRY_RIPENCC }, // 209.35.128.0 - 209.35.143.255 { 0xd1239000, 0xd1239bff, REGISTRY_ARIN }, // 209.35.144.0 - 209.35.155.255 { 0xd1239c00, 0xd1239dff, REGISTRY_APNIC }, // 209.35.156.0 - 209.35.157.255 { 0xd1239e00, 0xd1239eff, REGISTRY_RIPENCC }, // 209.35.158.0 - 209.35.158.255 { 0xd1239f00, 0xd1239fff, REGISTRY_ARIN }, // 209.35.159.0 - 209.35.159.255 { 0xd123a000, 0xd123afff, REGISTRY_APNIC }, // 209.35.160.0 - 209.35.175.255 { 0xd123b000, 0xd123b7ff, REGISTRY_ARIN }, // 209.35.176.0 - 209.35.183.255 { 0xd123b800, 0xd123bbff, REGISTRY_LACNIC }, // 209.35.184.0 - 209.35.187.255 { 0xd123bc00, 0xd123bdff, REGISTRY_APNIC }, // 209.35.188.0 - 209.35.189.255 { 0xd123be00, 0xd123c4ff, REGISTRY_ARIN }, // 209.35.190.0 - 209.35.196.255 { 0xd123c500, 0xd123c5ff, REGISTRY_RIPENCC }, // 209.35.197.0 - 209.35.197.255 { 0xd123c600, 0xd123dfff, REGISTRY_ARIN }, // 209.35.198.0 - 209.35.223.255 { 0xd123e000, 0xd123ffff, REGISTRY_RIPENCC }, // 209.35.224.0 - 209.35.255.255 { 0xd1240000, 0xd129ffff, REGISTRY_ARIN }, // 209.36.0.0 - 209.41.255.255 { 0xd12a0000, 0xd12a1fff, REGISTRY_RIPENCC }, // 209.42.0.0 - 209.42.31.255 { 0xd12a2000, 0xd12abfff, REGISTRY_ARIN }, // 209.42.32.0 - 209.42.191.255 { 0xd12ac000, 0xd12affff, REGISTRY_RIPENCC }, // 209.42.192.0 - 209.42.255.255 { 0xd12b0000, 0xd12cffff, REGISTRY_ARIN }, // 209.43.0.0 - 209.44.255.255 { 0xd12d0000, 0xd12d7fff, REGISTRY_LACNIC }, // 209.45.0.0 - 209.45.127.255 { 0xd12d8000, 0xd12e65ff, REGISTRY_ARIN }, // 209.45.128.0 - 209.46.101.255 { 0xd12e6600, 0xd12e67ff, REGISTRY_RIPENCC }, // 209.46.102.0 - 209.46.103.255 { 0xd12e6800, 0xd137dfff, REGISTRY_ARIN }, // 209.46.104.0 - 209.55.223.255 { 0xd137e000, 0xd137ffff, REGISTRY_RIPENCC }, // 209.55.224.0 - 209.55.255.255 { 0xd1380000, 0xd13a9fff, REGISTRY_ARIN }, // 209.56.0.0 - 209.58.159.255 { 0xd13aa000, 0xd13abfff, REGISTRY_APNIC }, // 209.58.160.0 - 209.58.191.255 { 0xd13ac000, 0xd157bbff, REGISTRY_ARIN }, // 209.58.192.0 - 209.87.187.255 { 0xd157bc00, 0xd157bfff, REGISTRY_APNIC }, // 209.87.188.0 - 209.87.191.255 { 0xd157c000, 0xd15ebfff, REGISTRY_ARIN }, // 209.87.192.0 - 209.94.191.255 { 0xd15ec000, 0xd15edfff, REGISTRY_LACNIC }, // 209.94.192.0 - 209.94.223.255 { 0xd15ee000, 0xd163dfff, REGISTRY_ARIN }, // 209.94.224.0 - 209.99.223.255 { 0xd163e000, 0xd163efff, REGISTRY_LACNIC }, // 209.99.224.0 - 209.99.239.255 { 0xd163f000, 0xd17e46ff, REGISTRY_ARIN }, // 209.99.240.0 - 209.126.70.255 { 0xd17e4700, 0xd17e47ff, REGISTRY_RIPENCC }, // 209.126.71.0 - 209.126.71.255 { 0xd17e4800, 0xd17f8bff, REGISTRY_ARIN }, // 209.126.72.0 - 209.127.139.255 { 0xd17f8c00, 0xd17f8dff, REGISTRY_LACNIC }, // 209.127.140.0 - 209.127.141.255 { 0xd17f8e00, 0xd17fc9ff, REGISTRY_ARIN }, // 209.127.142.0 - 209.127.201.255 { 0xd17fca00, 0xd17fcaff, REGISTRY_RIPENCC }, // 209.127.202.0 - 209.127.202.255 { 0xd17fcb00, 0xd17fd3ff, REGISTRY_ARIN }, // 209.127.203.0 - 209.127.211.255 { 0xd17fd400, 0xd17fd4ff, REGISTRY_LACNIC }, // 209.127.212.0 - 209.127.212.255 { 0xd17fd500, 0xd17fdbff, REGISTRY_ARIN }, // 209.127.213.0 - 209.127.219.255 { 0xd17fdc00, 0xd17fdcff, REGISTRY_RIPENCC }, // 209.127.220.0 - 209.127.220.255 { 0xd17fdd00, 0xd18cffff, REGISTRY_ARIN }, // 209.127.221.0 - 209.140.255.255 { 0xd18d0000, 0xd18d0fff, REGISTRY_APNIC }, // 209.141.0.0 - 209.141.15.255 { 0xd18d1000, 0xd1968fff, REGISTRY_ARIN }, // 209.141.16.0 - 209.150.143.255 { 0xd1969000, 0xd1969fff, REGISTRY_APNIC }, // 209.150.144.0 - 209.150.159.255 { 0xd196a000, 0xd1a27fff, REGISTRY_ARIN }, // 209.150.160.0 - 209.162.127.255 { 0xd1a28000, 0xd1a29aff, REGISTRY_RIPENCC }, // 209.162.128.0 - 209.162.154.255 { 0xd1a29b00, 0xd1a29bff, REGISTRY_RIPENCC }, // 209.162.155.0 - 209.162.155.255 { 0xd1a29c00, 0xd1a29cff, REGISTRY_RIPENCC }, // 209.162.156.0 - 209.162.156.255 { 0xd1a29d00, 0xd1a29dff, REGISTRY_RIPENCC }, // 209.162.157.0 - 209.162.157.255 { 0xd1a29e00, 0xd1a29fff, REGISTRY_RIPENCC }, // 209.162.158.0 - 209.162.159.255 { 0xd1a2a000, 0xd1ac05ff, REGISTRY_ARIN }, // 209.162.160.0 - 209.172.5.255 { 0xd1ac0600, 0xd1ac07ff, REGISTRY_LACNIC }, // 209.172.6.0 - 209.172.7.255 { 0xd1ac0800, 0xd1c67fff, REGISTRY_ARIN }, // 209.172.8.0 - 209.198.127.255 { 0xd1c68000, 0xd1c69fff, REGISTRY_RIPENCC }, // 209.198.128.0 - 209.198.159.255 { 0xd1c6a000, 0xd1c6ffff, REGISTRY_ARIN }, // 209.198.160.0 - 209.198.255.255 { 0xd1c70000, 0xd1c7ffff, REGISTRY_RIPENCC }, // 209.199.0.0 - 209.199.255.255 { 0xd1c80000, 0xd1caffff, REGISTRY_ARIN }, // 209.200.0.0 - 209.202.255.255 { 0xd1cb0000, 0xd1cb3fff, REGISTRY_AFRINIC }, // 209.203.0.0 - 209.203.63.255 { 0xd1cb4000, 0xd1cdffff, REGISTRY_ARIN }, // 209.203.64.0 - 209.205.255.255 { 0xd1ce0000, 0xd1ce1fff, REGISTRY_RIPENCC }, // 209.206.0.0 - 209.206.31.255 { 0xd1ce2000, 0xd1ce25ff, REGISTRY_ARIN }, // 209.206.32.0 - 209.206.37.255 { 0xd1ce2600, 0xd1ce27ff, REGISTRY_RIPENCC }, // 209.206.38.0 - 209.206.39.255 { 0xd1ce2800, 0xd1d45fff, REGISTRY_ARIN }, // 209.206.40.0 - 209.212.95.255 { 0xd1d46000, 0xd1d47fff, REGISTRY_AFRINIC }, // 209.212.96.0 - 209.212.127.255 { 0xd1d48000, 0xd1d4bfff, REGISTRY_ARIN }, // 209.212.128.0 - 209.212.191.255 { 0xd1d4c000, 0xd1d4dfff, REGISTRY_APNIC }, // 209.212.192.0 - 209.212.223.255 { 0xd1d4e000, 0xd1d52fff, REGISTRY_ARIN }, // 209.212.224.0 - 209.213.47.255 { 0xd1d53000, 0xd1d53fff, REGISTRY_RIPENCC }, // 209.213.48.0 - 209.213.63.255 { 0xd1d54000, 0xd1ddbfff, REGISTRY_ARIN }, // 209.213.64.0 - 209.221.191.255 { 0xd1ddc000, 0xd1dddfff, REGISTRY_RIPENCC }, // 209.221.192.0 - 209.221.223.255 { 0xd1dde000, 0xd1de4cff, REGISTRY_ARIN }, // 209.221.224.0 - 209.222.76.255 { 0xd1de4d00, 0xd1de4dff, REGISTRY_RIPENCC }, // 209.222.77.0 - 209.222.77.255 { 0xd1de4e00, 0xd1e3bfff, REGISTRY_ARIN }, // 209.222.78.0 - 209.227.191.255 { 0xd1e3c000, 0xd1e3ffff, REGISTRY_RIPENCC }, // 209.227.192.0 - 209.227.255.255 { 0xd1e40000, 0xd1ed93ff, REGISTRY_ARIN }, // 209.228.0.0 - 209.237.147.255 { 0xd1ed9400, 0xd1ed95ff, REGISTRY_RIPENCC }, // 209.237.148.0 - 209.237.149.255 { 0xd1ed9600, 0xd1fadfff, REGISTRY_ARIN }, // 209.237.150.0 - 209.250.223.255 { 0xd1fae000, 0xd1faffff, REGISTRY_RIPENCC }, // 209.250.224.0 - 209.250.255.255 { 0xd1fb0000, 0xd1fbc2ff, REGISTRY_ARIN }, // 209.251.0.0 - 209.251.194.255 { 0xd1fbc300, 0xd1fbc5ff, REGISTRY_RIPENCC }, // 209.251.195.0 - 209.251.197.255 { 0xd1fbc600, 0xd1fbfbff, REGISTRY_ARIN }, // 209.251.198.0 - 209.251.251.255 { 0xd1fbfc00, 0xd1fbfdff, REGISTRY_RIPENCC }, // 209.251.252.0 - 209.251.253.255 { 0xd1fbfe00, 0xd1ffffff, REGISTRY_ARIN }, // 209.251.254.0 - 209.255.255.255 { 0xd2000000, 0xd201e7ff, REGISTRY_APNIC }, // 210.0.0.0 - 210.1.231.255 { 0xd201ec00, 0xd2388fff, REGISTRY_APNIC }, // 210.1.236.0 - 210.56.143.255 { 0xd2389800, 0xd24f7fff, REGISTRY_APNIC }, // 210.56.152.0 - 210.79.127.255 { 0xd24fc000, 0xd2573fff, REGISTRY_APNIC }, // 210.79.192.0 - 210.87.63.255 { 0xd2578000, 0xd3ffffff, REGISTRY_APNIC }, // 210.87.128.0 - 211.255.255.255 { 0xd4000000, 0xd4007fff, REGISTRY_RIPENCC }, // 212.0.0.0 - 212.0.127.255 { 0xd4008000, 0xd4009fff, REGISTRY_AFRINIC }, // 212.0.128.0 - 212.0.159.255 { 0xd400a000, 0xd408e5ff, REGISTRY_RIPENCC }, // 212.0.160.0 - 212.8.229.255 { 0xd408e600, 0xd408e7ff, REGISTRY_APNIC }, // 212.8.230.0 - 212.8.231.255 { 0xd408e800, 0xd408f0ff, REGISTRY_RIPENCC }, // 212.8.232.0 - 212.8.240.255 { 0xd408f100, 0xd408f1ff, REGISTRY_ARIN }, // 212.8.241.0 - 212.8.241.255 { 0xd408f200, 0xd408fdff, REGISTRY_RIPENCC }, // 212.8.242.0 - 212.8.253.255 { 0xd408fe00, 0xd408ffff, REGISTRY_APNIC }, // 212.8.254.0 - 212.8.255.255 { 0xd4090000, 0xd40cdfff, REGISTRY_RIPENCC }, // 212.9.0.0 - 212.12.223.255 { 0xd40d0000, 0xd4169fff, REGISTRY_RIPENCC }, // 212.13.0.0 - 212.22.159.255 { 0xd416a000, 0xd416bfff, REGISTRY_AFRINIC }, // 212.22.160.0 - 212.22.191.255 { 0xd416c000, 0xd422bfff, REGISTRY_RIPENCC }, // 212.22.192.0 - 212.34.191.255 { 0xd422c000, 0xd422dfff, REGISTRY_APNIC }, // 212.34.192.0 - 212.34.223.255 { 0xd422e000, 0xd427bfff, REGISTRY_RIPENCC }, // 212.34.224.0 - 212.39.191.255 { 0xd427c000, 0xd427dfff, REGISTRY_RIPENCC }, // 212.39.192.0 - 212.39.223.255 { 0xd427e000, 0xd4313fff, REGISTRY_RIPENCC }, // 212.39.224.0 - 212.49.63.255 { 0xd4314000, 0xd4315fff, REGISTRY_AFRINIC }, // 212.49.64.0 - 212.49.95.255 { 0xd4316000, 0xd4347fff, REGISTRY_RIPENCC }, // 212.49.96.0 - 212.52.127.255 { 0xd4348000, 0xd4349fff, REGISTRY_AFRINIC }, // 212.52.128.0 - 212.52.159.255 { 0xd434a000, 0xd43c3fff, REGISTRY_RIPENCC }, // 212.52.160.0 - 212.60.63.255 { 0xd43c4000, 0xd43c5fff, REGISTRY_AFRINIC }, // 212.60.64.0 - 212.60.95.255 { 0xd43c6000, 0xd43fffff, REGISTRY_RIPENCC }, // 212.60.96.0 - 212.63.255.255 { 0xd4400000, 0xd4407fff, REGISTRY_APNIC }, // 212.64.0.0 - 212.64.127.255 { 0xd4408000, 0xd4458fff, REGISTRY_RIPENCC }, // 212.64.128.0 - 212.69.143.255 { 0xd4459000, 0xd4459fff, REGISTRY_ARIN }, // 212.69.144.0 - 212.69.159.255 { 0xd445a000, 0xd455bfff, REGISTRY_RIPENCC }, // 212.69.160.0 - 212.85.191.255 { 0xd455c000, 0xd455dfff, REGISTRY_AFRINIC }, // 212.85.192.0 - 212.85.223.255 { 0xd455e000, 0xd4585fff, REGISTRY_RIPENCC }, // 212.85.224.0 - 212.88.95.255 { 0xd4586000, 0xd4587fff, REGISTRY_AFRINIC }, // 212.88.96.0 - 212.88.127.255 { 0xd4588000, 0xd45c65ff, REGISTRY_RIPENCC }, // 212.88.128.0 - 212.92.101.255 { 0xd45c6600, 0xd45c67ff, REGISTRY_APNIC }, // 212.92.102.0 - 212.92.103.255 { 0xd45c6800, 0xd45fffff, REGISTRY_RIPENCC }, // 212.92.104.0 - 212.95.255.255 { 0xd4600000, 0xd4601fff, REGISTRY_AFRINIC }, // 212.96.0.0 - 212.96.31.255 { 0xd4602000, 0xd4643fff, REGISTRY_RIPENCC }, // 212.96.32.0 - 212.100.63.255 { 0xd4644000, 0xd4645fff, REGISTRY_AFRINIC }, // 212.100.64.0 - 212.100.95.255 { 0xd4646000, 0xd4679fff, REGISTRY_RIPENCC }, // 212.100.96.0 - 212.103.159.255 { 0xd467a000, 0xd467bfff, REGISTRY_AFRINIC }, // 212.103.160.0 - 212.103.191.255 { 0xd467c000, 0xd468dfff, REGISTRY_RIPENCC }, // 212.103.192.0 - 212.104.223.255 { 0xd468e000, 0xd468efff, REGISTRY_APNIC }, // 212.104.224.0 - 212.104.239.255 { 0xd468f000, 0xd4752fff, REGISTRY_RIPENCC }, // 212.104.240.0 - 212.117.47.255 { 0xd4753000, 0xd4753fff, REGISTRY_APNIC }, // 212.117.48.0 - 212.117.63.255 { 0xd4754000, 0xd47adfff, REGISTRY_RIPENCC }, // 212.117.64.0 - 212.122.223.255 { 0xd47b0000, 0xd4817fff, REGISTRY_RIPENCC }, // 212.123.0.0 - 212.129.127.255 { 0xd4818000, 0xd481ffff, REGISTRY_APNIC }, // 212.129.128.0 - 212.129.255.255 { 0xd4820000, 0xd4b2dfff, REGISTRY_RIPENCC }, // 212.130.0.0 - 212.178.223.255 { 0xd4b2e000, 0xd4b2ffff, REGISTRY_ARIN }, // 212.178.224.0 - 212.178.255.255 { 0xd4b30000, 0xd4d8ffff, REGISTRY_RIPENCC }, // 212.179.0.0 - 212.216.255.255 { 0xd4d90000, 0xd4d97fff, REGISTRY_AFRINIC }, // 212.217.0.0 - 212.217.127.255 { 0xd4d98000, 0xd4ed97ff, REGISTRY_RIPENCC }, // 212.217.128.0 - 212.237.151.255 { 0xd4ed9800, 0xd4ed9fff, REGISTRY_APNIC }, // 212.237.152.0 - 212.237.159.255 { 0xd4eda000, 0xd504ffff, REGISTRY_RIPENCC }, // 212.237.160.0 - 213.4.255.255 { 0xd5050000, 0xd5050fff, REGISTRY_RIPENCC }, // 213.5.0.0 - 213.5.15.255 { 0xd5051000, 0xd50513ff, REGISTRY_RIPENCC }, // 213.5.16.0 - 213.5.19.255 { 0xd5051400, 0xd50517ff, REGISTRY_RIPENCC }, // 213.5.20.0 - 213.5.23.255 { 0xd5051800, 0xd5051fff, REGISTRY_RIPENCC }, // 213.5.24.0 - 213.5.31.255 { 0xd5052000, 0xd5053fff, REGISTRY_RIPENCC }, // 213.5.32.0 - 213.5.63.255 { 0xd5054000, 0xd50547ff, REGISTRY_RIPENCC }, // 213.5.64.0 - 213.5.71.255 { 0xd5054800, 0xd50567ff, REGISTRY_RIPENCC }, // 213.5.72.0 - 213.5.103.255 { 0xd5056800, 0xd5056fff, REGISTRY_RIPENCC }, // 213.5.104.0 - 213.5.111.255 { 0xd5057000, 0xd5057fff, REGISTRY_RIPENCC }, // 213.5.112.0 - 213.5.127.255 { 0xd5058000, 0xd50585ff, REGISTRY_RIPENCC }, // 213.5.128.0 - 213.5.133.255 { 0xd5058700, 0xd50587ff, REGISTRY_RIPENCC }, // 213.5.135.0 - 213.5.135.255 { 0xd5058800, 0xd505b7ff, REGISTRY_RIPENCC }, // 213.5.136.0 - 213.5.183.255 { 0xd505b800, 0xd505bfff, REGISTRY_RIPENCC }, // 213.5.184.0 - 213.5.191.255 { 0xd505c000, 0xd505dfff, REGISTRY_RIPENCC }, // 213.5.192.0 - 213.5.223.255 { 0xd505e000, 0xd505e1ff, REGISTRY_RIPENCC }, // 213.5.224.0 - 213.5.225.255 { 0xd505e200, 0xd505e3ff, REGISTRY_RIPENCC }, // 213.5.226.0 - 213.5.227.255 { 0xd505e400, 0xd505efff, REGISTRY_RIPENCC }, // 213.5.228.0 - 213.5.239.255 { 0xd505f000, 0xd505ffff, REGISTRY_RIPENCC }, // 213.5.240.0 - 213.5.255.255 { 0xd5060000, 0xd511ffff, REGISTRY_RIPENCC }, // 213.6.0.0 - 213.17.255.255 { 0xd5120000, 0xd5127fff, REGISTRY_APNIC }, // 213.18.0.0 - 213.18.127.255 { 0xd5128000, 0xd5373fff, REGISTRY_RIPENCC }, // 213.18.128.0 - 213.55.63.255 { 0xd5374000, 0xd5377fff, REGISTRY_AFRINIC }, // 213.55.64.0 - 213.55.127.255 { 0xd5378000, 0xd56c07ff, REGISTRY_RIPENCC }, // 213.55.128.0 - 213.108.7.255 { 0xd56c0800, 0xd56c1cff, REGISTRY_RIPENCC }, // 213.108.8.0 - 213.108.28.255 { 0xd56c1d00, 0xd56c1dff, REGISTRY_RIPENCC }, // 213.108.29.0 - 213.108.29.255 { 0xd56c1e00, 0xd56c1eff, REGISTRY_RIPENCC }, // 213.108.30.0 - 213.108.30.255 { 0xd56c1f00, 0xd56c27ff, REGISTRY_RIPENCC }, // 213.108.31.0 - 213.108.39.255 { 0xd56c2800, 0xd56c2fff, REGISTRY_RIPENCC }, // 213.108.40.0 - 213.108.47.255 { 0xd56c3000, 0xd56c37ff, REGISTRY_RIPENCC }, // 213.108.48.0 - 213.108.55.255 { 0xd56c3800, 0xd56c5fff, REGISTRY_RIPENCC }, // 213.108.56.0 - 213.108.95.255 { 0xd56c6000, 0xd56c67ff, REGISTRY_RIPENCC }, // 213.108.96.0 - 213.108.103.255 { 0xd56c6800, 0xd56cbfff, REGISTRY_RIPENCC }, // 213.108.104.0 - 213.108.191.255 { 0xd56cc000, 0xd56cc7ff, REGISTRY_RIPENCC }, // 213.108.192.0 - 213.108.199.255 { 0xd56cc800, 0xd56cefff, REGISTRY_RIPENCC }, // 213.108.200.0 - 213.108.239.255 { 0xd56cf000, 0xd56cf7ff, REGISTRY_RIPENCC }, // 213.108.240.0 - 213.108.247.255 { 0xd56cf800, 0xd56cffff, REGISTRY_RIPENCC }, // 213.108.248.0 - 213.108.255.255 { 0xd56d0000, 0xd56d0fff, REGISTRY_RIPENCC }, // 213.109.0.0 - 213.109.15.255 { 0xd56d1000, 0xd56d1fff, REGISTRY_RIPENCC }, // 213.109.16.0 - 213.109.31.255 { 0xd56d2000, 0xd56d2fff, REGISTRY_RIPENCC }, // 213.109.32.0 - 213.109.47.255 { 0xd56d3000, 0xd56d8fff, REGISTRY_RIPENCC }, // 213.109.48.0 - 213.109.143.255 { 0xd56d9000, 0xd56ddfff, REGISTRY_RIPENCC }, // 213.109.144.0 - 213.109.223.255 { 0xd56de000, 0xd56defff, REGISTRY_RIPENCC }, // 213.109.224.0 - 213.109.239.255 { 0xd56df000, 0xd56dffff, REGISTRY_RIPENCC }, // 213.109.240.0 - 213.109.255.255 { 0xd56e0000, 0xd56fffff, REGISTRY_RIPENCC }, // 213.110.0.0 - 213.111.255.255 { 0xd5700000, 0xd5833fff, REGISTRY_RIPENCC }, // 213.112.0.0 - 213.131.63.255 { 0xd5834000, 0xd5835fff, REGISTRY_AFRINIC }, // 213.131.64.0 - 213.131.95.255 { 0xd5836000, 0xd5885fff, REGISTRY_RIPENCC }, // 213.131.96.0 - 213.136.95.255 { 0xd5886000, 0xd5887fff, REGISTRY_AFRINIC }, // 213.136.96.0 - 213.136.127.255 { 0xd5888000, 0xd5933fff, REGISTRY_RIPENCC }, // 213.136.128.0 - 213.147.63.255 { 0xd5936000, 0xd5965fff, REGISTRY_RIPENCC }, // 213.147.96.0 - 213.150.95.255 { 0xd5968000, 0xd5969fff, REGISTRY_RIPENCC }, // 213.150.128.0 - 213.150.159.255 { 0xd596a000, 0xd596dfff, REGISTRY_AFRINIC }, // 213.150.160.0 - 213.150.223.255 { 0xd596e000, 0xd5983fff, REGISTRY_RIPENCC }, // 213.150.224.0 - 213.152.63.255 { 0xd5984000, 0xd5985fff, REGISTRY_AFRINIC }, // 213.152.64.0 - 213.152.95.255 { 0xd5986000, 0xd59a1fff, REGISTRY_RIPENCC }, // 213.152.96.0 - 213.154.31.255 { 0xd59a2000, 0xd59a5fff, REGISTRY_AFRINIC }, // 213.154.32.0 - 213.154.95.255 { 0xd59a6000, 0xd59e9fff, REGISTRY_RIPENCC }, // 213.154.96.0 - 213.158.159.255 { 0xd59ea000, 0xd59ebfff, REGISTRY_AFRINIC }, // 213.158.160.0 - 213.158.191.255 { 0xd59ec000, 0xd59f0dff, REGISTRY_RIPENCC }, // 213.158.192.0 - 213.159.13.255 { 0xd59f0e00, 0xd59f0fff, REGISTRY_ARIN }, // 213.159.14.0 - 213.159.15.255 { 0xd59f1000, 0xd59f83ff, REGISTRY_RIPENCC }, // 213.159.16.0 - 213.159.131.255 { 0xd59f8400, 0xd59f87ff, REGISTRY_ARIN }, // 213.159.132.0 - 213.159.135.255 { 0xd59f8800, 0xd5a29fff, REGISTRY_RIPENCC }, // 213.159.136.0 - 213.162.159.255 { 0xd5a2a000, 0xd5a2bfff, REGISTRY_RIPENCC }, // 213.162.160.0 - 213.162.191.255 { 0xd5a2c000, 0xd5a3f5ff, REGISTRY_RIPENCC }, // 213.162.192.0 - 213.163.245.255 { 0xd5a3f600, 0xd5a3f7ff, REGISTRY_LACNIC }, // 213.163.246.0 - 213.163.247.255 { 0xd5a3f800, 0xd5a5dfff, REGISTRY_RIPENCC }, // 213.163.248.0 - 213.165.223.255 { 0xd5a5e000, 0xd5a5ffff, REGISTRY_ARIN }, // 213.165.224.0 - 213.165.255.255 { 0xd5a60000, 0xd5aa91ff, REGISTRY_RIPENCC }, // 213.166.0.0 - 213.170.145.255 { 0xd5aa9200, 0xd5aa92ff, REGISTRY_ARIN }, // 213.170.146.0 - 213.170.146.255 { 0xd5aa9300, 0xd5aa96ff, REGISTRY_RIPENCC }, // 213.170.147.0 - 213.170.150.255 { 0xd5aa9700, 0xd5aa97ff, REGISTRY_ARIN }, // 213.170.151.0 - 213.170.151.255 { 0xd5aa9800, 0xd5aa9bff, REGISTRY_RIPENCC }, // 213.170.152.0 - 213.170.155.255 { 0xd5aa9c00, 0xd5aa9fff, REGISTRY_APNIC }, // 213.170.156.0 - 213.170.159.255 { 0xd5aaa000, 0xd5ac7fff, REGISTRY_RIPENCC }, // 213.170.160.0 - 213.172.127.255 { 0xd5ac8000, 0xd5ac9fff, REGISTRY_AFRINIC }, // 213.172.128.0 - 213.172.159.255 { 0xd5aca000, 0xd5ad33ff, REGISTRY_RIPENCC }, // 213.172.160.0 - 213.173.51.255 { 0xd5ad3400, 0xd5ad37ff, REGISTRY_LACNIC }, // 213.173.52.0 - 213.173.55.255 { 0xd5ad3800, 0xd5b39fff, REGISTRY_RIPENCC }, // 213.173.56.0 - 213.179.159.255 { 0xd5b3a000, 0xd5b3bfff, REGISTRY_AFRINIC }, // 213.179.160.0 - 213.179.191.255 { 0xd5b3c000, 0xd5b5dfff, REGISTRY_RIPENCC }, // 213.179.192.0 - 213.181.223.255 { 0xd5b5e000, 0xd5b5ffff, REGISTRY_AFRINIC }, // 213.181.224.0 - 213.181.255.255 { 0xd5b60000, 0xd5c11fff, REGISTRY_RIPENCC }, // 213.182.0.0 - 213.193.31.255 { 0xd5c12000, 0xd5c13fff, REGISTRY_AFRINIC }, // 213.193.32.0 - 213.193.63.255 { 0xd5c14000, 0xd5d4bfff, REGISTRY_RIPENCC }, // 213.193.64.0 - 213.212.191.255 { 0xd5d4c000, 0xd5d4ffff, REGISTRY_AFRINIC }, // 213.212.192.0 - 213.212.255.255 { 0xd5d50000, 0xd5dbfbff, REGISTRY_RIPENCC }, // 213.213.0.0 - 213.219.251.255 { 0xd5dbfc00, 0xd5dbffff, REGISTRY_ARIN }, // 213.219.252.0 - 213.219.255.255 { 0xd5dc0000, 0xd5f6ffff, REGISTRY_RIPENCC }, // 213.220.0.0 - 213.246.255.255 { 0xd5f72000, 0xd5fa7fff, REGISTRY_RIPENCC }, // 213.247.32.0 - 213.250.127.255 { 0xd5fa8000, 0xd5fabfff, REGISTRY_APNIC }, // 213.250.128.0 - 213.250.191.255 { 0xd5fac000, 0xd5ff7fff, REGISTRY_RIPENCC }, // 213.250.192.0 - 213.255.127.255 { 0xd5ff8000, 0xd5ff9fff, REGISTRY_AFRINIC }, // 213.255.128.0 - 213.255.159.255 { 0xd5ffa000, 0xd5ffc7ff, REGISTRY_RIPENCC }, // 213.255.160.0 - 213.255.199.255 { 0xd5ffc800, 0xd5ffcbff, REGISTRY_APNIC }, // 213.255.200.0 - 213.255.203.255 { 0xd5ffcc00, 0xd5ffd0ff, REGISTRY_RIPENCC }, // 213.255.204.0 - 213.255.208.255 { 0xd5ffd100, 0xd5ffd1ff, REGISTRY_ARIN }, // 213.255.209.0 - 213.255.209.255 { 0xd5ffd200, 0xd5ffe2ff, REGISTRY_RIPENCC }, // 213.255.210.0 - 213.255.226.255 { 0xd5ffe300, 0xd5ffe3ff, REGISTRY_ARIN }, // 213.255.227.0 - 213.255.227.255 { 0xd5ffe400, 0xd5ffe7ff, REGISTRY_APNIC }, // 213.255.228.0 - 213.255.231.255 { 0xd5ffe800, 0xd5fff6ff, REGISTRY_RIPENCC }, // 213.255.232.0 - 213.255.246.255 { 0xd5fff700, 0xd5fff7ff, REGISTRY_ARIN }, // 213.255.247.0 - 213.255.247.255 { 0xd5fff800, 0xd5ffffff, REGISTRY_RIPENCC }, // 213.255.248.0 - 213.255.255.255 { 0xd6000000, 0xd807ffff, REGISTRY_ARIN }, // 214.0.0.0 - 216.7.255.255 { 0xd8080000, 0xd8081fff, REGISTRY_APNIC }, // 216.8.0.0 - 216.8.31.255 { 0xd8082000, 0xd80aefff, REGISTRY_ARIN }, // 216.8.32.0 - 216.10.239.255 { 0xd80af000, 0xd80affff, REGISTRY_APNIC }, // 216.10.240.0 - 216.10.255.255 { 0xd80b0000, 0xd81f3fff, REGISTRY_ARIN }, // 216.11.0.0 - 216.31.63.255 { 0xd81f4000, 0xd81f7fff, REGISTRY_RIPENCC }, // 216.31.64.0 - 216.31.127.255 { 0xd81f8000, 0xd82e79ff, REGISTRY_ARIN }, // 216.31.128.0 - 216.46.121.255 { 0xd82e7a00, 0xd82e7bff, REGISTRY_APNIC }, // 216.46.122.0 - 216.46.123.255 { 0xd82e7c00, 0xd82e7dff, REGISTRY_RIPENCC }, // 216.46.124.0 - 216.46.125.255 { 0xd82e7e00, 0xd830afff, REGISTRY_ARIN }, // 216.46.126.0 - 216.48.175.255 { 0xd830b000, 0xd830bfff, REGISTRY_APNIC }, // 216.48.176.0 - 216.48.191.255 { 0xd830c000, 0xd853cfff, REGISTRY_ARIN }, // 216.48.192.0 - 216.83.207.255 { 0xd853d000, 0xd853dfff, REGISTRY_RIPENCC }, // 216.83.208.0 - 216.83.223.255 { 0xd853e000, 0xd85734ff, REGISTRY_ARIN }, // 216.83.224.0 - 216.87.52.255 { 0xd8573500, 0xd85735ff, REGISTRY_RIPENCC }, // 216.87.53.0 - 216.87.53.255 { 0xd8573600, 0xd862cfff, REGISTRY_ARIN }, // 216.87.54.0 - 216.98.207.255 { 0xd862d000, 0xd862dfff, REGISTRY_LACNIC }, // 216.98.208.0 - 216.98.223.255 { 0xd862e000, 0xd863c5ff, REGISTRY_ARIN }, // 216.98.224.0 - 216.99.197.255 { 0xd863c600, 0xd863c6ff, REGISTRY_APNIC }, // 216.99.198.0 - 216.99.198.255 { 0xd863c700, 0xd863c8ff, REGISTRY_ARIN }, // 216.99.199.0 - 216.99.200.255 { 0xd863c900, 0xd863c9ff, REGISTRY_APNIC }, // 216.99.201.0 - 216.99.201.255 { 0xd863ca00, 0xd863cbff, REGISTRY_ARIN }, // 216.99.202.0 - 216.99.203.255 { 0xd863cc00, 0xd863ccff, REGISTRY_APNIC }, // 216.99.204.0 - 216.99.204.255 { 0xd863cd00, 0xd863ddff, REGISTRY_ARIN }, // 216.99.205.0 - 216.99.221.255 { 0xd863de00, 0xd863deff, REGISTRY_RIPENCC }, // 216.99.222.0 - 216.99.222.255 { 0xd863df00, 0xd86befff, REGISTRY_ARIN }, // 216.99.223.0 - 216.107.239.255 { 0xd86bf000, 0xd86bffff, REGISTRY_APNIC }, // 216.107.240.0 - 216.107.255.255 { 0xd86c0000, 0xd86cefff, REGISTRY_ARIN }, // 216.108.0.0 - 216.108.239.255 { 0xd86cf000, 0xd86cffff, REGISTRY_APNIC }, // 216.108.240.0 - 216.108.255.255 { 0xd86d0000, 0xd87482ff, REGISTRY_ARIN }, // 216.109.0.0 - 216.116.130.255 { 0xd8748300, 0xd87483ff, REGISTRY_RIPENCC }, // 216.116.131.0 - 216.116.131.255 { 0xd8748400, 0xd875ffff, REGISTRY_ARIN }, // 216.116.132.0 - 216.117.255.255 { 0xd8760000, 0xd8763fff, REGISTRY_APNIC }, // 216.118.0.0 - 216.118.63.255 { 0xd8764000, 0xd876dfff, REGISTRY_ARIN }, // 216.118.64.0 - 216.118.223.255 { 0xd876e000, 0xd876ffff, REGISTRY_APNIC }, // 216.118.224.0 - 216.118.255.255 { 0xd8770000, 0xd878b3ff, REGISTRY_ARIN }, // 216.119.0.0 - 216.120.179.255 { 0xd878b400, 0xd878b5ff, REGISTRY_RIPENCC }, // 216.120.180.0 - 216.120.181.255 { 0xd878b600, 0xd87fffff, REGISTRY_ARIN }, // 216.120.182.0 - 216.127.255.255 { 0xd8800000, 0xd8801fff, REGISTRY_RIPENCC }, // 216.128.0.0 - 216.128.31.255 { 0xd8802000, 0xd8912aff, REGISTRY_ARIN }, // 216.128.32.0 - 216.145.42.255 { 0xd8912b00, 0xd8912bff, REGISTRY_RIPENCC }, // 216.145.43.0 - 216.145.43.255 { 0xd8912c00, 0xd8935fff, REGISTRY_ARIN }, // 216.145.44.0 - 216.147.95.255 { 0xd8936000, 0xd8936fff, REGISTRY_RIPENCC }, // 216.147.96.0 - 216.147.111.255 { 0xd8937000, 0xd89617ff, REGISTRY_ARIN }, // 216.147.112.0 - 216.150.23.255 { 0xd8961800, 0xd8961bff, REGISTRY_RIPENCC }, // 216.150.24.0 - 216.150.27.255 { 0xd8961c00, 0xd897bfff, REGISTRY_ARIN }, // 216.150.28.0 - 216.151.191.255 { 0xd897c000, 0xd897cfff, REGISTRY_APNIC }, // 216.151.192.0 - 216.151.207.255 { 0xd897d000, 0xd8989fff, REGISTRY_ARIN }, // 216.151.208.0 - 216.152.159.255 { 0xd898a000, 0xd898afff, REGISTRY_LACNIC }, // 216.152.160.0 - 216.152.175.255 { 0xd898b000, 0xd8993fff, REGISTRY_ARIN }, // 216.152.176.0 - 216.153.63.255 { 0xd8994000, 0xd8997fff, REGISTRY_APNIC }, // 216.153.64.0 - 216.153.127.255 { 0xd8998000, 0xd89b3fff, REGISTRY_ARIN }, // 216.153.128.0 - 216.155.63.255 { 0xd89b4000, 0xd89b5fff, REGISTRY_LACNIC }, // 216.155.64.0 - 216.155.95.255 { 0xd89b6000, 0xd89d9cff, REGISTRY_ARIN }, // 216.155.96.0 - 216.157.156.255 { 0xd89d9d00, 0xd89d9fff, REGISTRY_APNIC }, // 216.157.157.0 - 216.157.159.255 { 0xd89da000, 0xd89e5fff, REGISTRY_ARIN }, // 216.157.160.0 - 216.158.95.255 { 0xd89e6000, 0xd89e6fff, REGISTRY_RIPENCC }, // 216.158.96.0 - 216.158.111.255 { 0xd89e7000, 0xd8aa70ff, REGISTRY_ARIN }, // 216.158.112.0 - 216.170.112.255 { 0xd8aa7100, 0xd8aa71ff, REGISTRY_RIPENCC }, // 216.170.113.0 - 216.170.113.255 { 0xd8aa7200, 0xd8aa72ff, REGISTRY_ARIN }, // 216.170.114.0 - 216.170.114.255 { 0xd8aa7300, 0xd8aa73ff, REGISTRY_RIPENCC }, // 216.170.115.0 - 216.170.115.255 { 0xd8aa7400, 0xd8ab6fff, REGISTRY_ARIN }, // 216.170.116.0 - 216.171.111.255 { 0xd8ab7000, 0xd8ab7fff, REGISTRY_APNIC }, // 216.171.112.0 - 216.171.127.255 { 0xd8ab8000, 0xd8ac3fff, REGISTRY_ARIN }, // 216.171.128.0 - 216.172.63.255 { 0xd8ac4000, 0xd8ac4fff, REGISTRY_RIPENCC }, // 216.172.64.0 - 216.172.79.255 { 0xd8ac5000, 0xd8ad3fff, REGISTRY_ARIN }, // 216.172.80.0 - 216.173.63.255 { 0xd8ad4000, 0xd8ad7fff, REGISTRY_RIPENCC }, // 216.173.64.0 - 216.173.127.255 { 0xd8ad8000, 0xd8b59dff, REGISTRY_ARIN }, // 216.173.128.0 - 216.181.157.255 { 0xd8b59e00, 0xd8b59fff, REGISTRY_RIPENCC }, // 216.181.158.0 - 216.181.159.255 { 0xd8b5a000, 0xd8b777ff, REGISTRY_ARIN }, // 216.181.160.0 - 216.183.119.255 { 0xd8b77800, 0xd8b778ff, REGISTRY_RIPENCC }, // 216.183.120.0 - 216.183.120.255 { 0xd8b77900, 0xd8b77cff, REGISTRY_ARIN }, // 216.183.121.0 - 216.183.124.255 { 0xd8b77d00, 0xd8b77dff, REGISTRY_RIPENCC }, // 216.183.125.0 - 216.183.125.255 { 0xd8b77e00, 0xd8b7cfff, REGISTRY_ARIN }, // 216.183.126.0 - 216.183.207.255 { 0xd8b7d000, 0xd8b7dfff, REGISTRY_APNIC }, // 216.183.208.0 - 216.183.223.255 { 0xd8b7e000, 0xd8c24fff, REGISTRY_ARIN }, // 216.183.224.0 - 216.194.79.255 { 0xd8c25000, 0xd8c25fff, REGISTRY_RIPENCC }, // 216.194.80.0 - 216.194.95.255 { 0xd8c26000, 0xd8c8bbff, REGISTRY_ARIN }, // 216.194.96.0 - 216.200.187.255 { 0xd8c8bc00, 0xd8c8bfff, REGISTRY_APNIC }, // 216.200.188.0 - 216.200.191.255 { 0xd8c8c000, 0xd8cb0eff, REGISTRY_ARIN }, // 216.200.192.0 - 216.203.14.255 { 0xd8cb0f00, 0xd8cb0fff, REGISTRY_RIPENCC }, // 216.203.15.0 - 216.203.15.255 { 0xd8cb1000, 0xd8cd9fff, REGISTRY_ARIN }, // 216.203.16.0 - 216.205.159.255 { 0xd8cda000, 0xd8cdbfff, REGISTRY_RIPENCC }, // 216.205.160.0 - 216.205.191.255 { 0xd8cdc000, 0xd8d57fff, REGISTRY_ARIN }, // 216.205.192.0 - 216.213.127.255 { 0xd8d58000, 0xd8d5bfff, REGISTRY_RIPENCC }, // 216.213.128.0 - 216.213.191.255 { 0xd8d5c000, 0xd8e67fff, REGISTRY_ARIN }, // 216.213.192.0 - 216.230.127.255 { 0xd8e68000, 0xd8e69fff, REGISTRY_LACNIC }, // 216.230.128.0 - 216.230.159.255 { 0xd8e6a000, 0xd8ecafff, REGISTRY_ARIN }, // 216.230.160.0 - 216.236.175.255 { 0xd8ecb000, 0xd8ecbfff, REGISTRY_AFRINIC }, // 216.236.176.0 - 216.236.191.255 { 0xd8ecc000, 0xd8f0ffff, REGISTRY_ARIN }, // 216.236.192.0 - 216.240.255.255 { 0xd8f10000, 0xd8f11fff, REGISTRY_LACNIC }, // 216.241.0.0 - 216.241.31.255 { 0xd8f12000, 0xd8f17fff, REGISTRY_ARIN }, // 216.241.32.0 - 216.241.127.255 { 0xd8f18000, 0xd8f19fff, REGISTRY_RIPENCC }, // 216.241.128.0 - 216.241.159.255 { 0xd8f1a000, 0xd8f47fff, REGISTRY_ARIN }, // 216.241.160.0 - 216.244.127.255 { 0xd8f48000, 0xd8f4ffff, REGISTRY_LACNIC }, // 216.244.128.0 - 216.244.255.255 { 0xd8f50000, 0xd8f58bff, REGISTRY_ARIN }, // 216.245.0.0 - 216.245.139.255 { 0xd8f58c00, 0xd8f58cff, REGISTRY_RIPENCC }, // 216.245.140.0 - 216.245.140.255 { 0xd8f58d00, 0xd8f6d3ff, REGISTRY_ARIN }, // 216.245.141.0 - 216.246.211.255 { 0xd8f6d400, 0xd8f6d7ff, REGISTRY_RIPENCC }, // 216.246.212.0 - 216.246.215.255 { 0xd8f6d800, 0xd8f6ffff, REGISTRY_ARIN }, // 216.246.216.0 - 216.246.255.255 { 0xd8f70000, 0xd8f73fff, REGISTRY_APNIC }, // 216.247.0.0 - 216.247.63.255 { 0xd8f74000, 0xd8f74fff, REGISTRY_ARIN }, // 216.247.64.0 - 216.247.79.255 { 0xd8f75000, 0xd8f75fff, REGISTRY_APNIC }, // 216.247.80.0 - 216.247.95.255 { 0xd8f76000, 0xd8f777ff, REGISTRY_ARIN }, // 216.247.96.0 - 216.247.119.255 { 0xd8f77800, 0xd8f7bfff, REGISTRY_RIPENCC }, // 216.247.120.0 - 216.247.191.255 { 0xd8f7c000, 0xd8f7e7ff, REGISTRY_ARIN }, // 216.247.192.0 - 216.247.231.255 { 0xd8f7e800, 0xd8f7ebff, REGISTRY_RIPENCC }, // 216.247.232.0 - 216.247.235.255 { 0xd8f7ec00, 0xd8f90fff, REGISTRY_ARIN }, // 216.247.236.0 - 216.249.15.255 { 0xd8f91000, 0xd8f913ff, REGISTRY_RIPENCC }, // 216.249.16.0 - 216.249.19.255 { 0xd8f91400, 0xd8fa07ff, REGISTRY_ARIN }, // 216.249.20.0 - 216.250.7.255 { 0xd8fa0800, 0xd8fa0fff, REGISTRY_RIPENCC }, // 216.250.8.0 - 216.250.15.255 { 0xd8fa1000, 0xd8fa5fff, REGISTRY_ARIN }, // 216.250.16.0 - 216.250.95.255 { 0xd8fa6000, 0xd8fa62ff, REGISTRY_APNIC }, // 216.250.96.0 - 216.250.98.255 { 0xd8fa6300, 0xd8fa63ff, REGISTRY_ARIN }, // 216.250.99.0 - 216.250.99.255 { 0xd8fa6400, 0xd8fa6fff, REGISTRY_APNIC }, // 216.250.100.0 - 216.250.111.255 { 0xd8fa7000, 0xd8fcafff, REGISTRY_ARIN }, // 216.250.112.0 - 216.252.175.255 { 0xd8fcb000, 0xd8fcbfff, REGISTRY_RIPENCC }, // 216.252.176.0 - 216.252.191.255 { 0xd8fcc000, 0xd8fce7ff, REGISTRY_ARIN }, // 216.252.192.0 - 216.252.231.255 { 0xd8fce800, 0xd8fcefff, REGISTRY_RIPENCC }, // 216.252.232.0 - 216.252.239.255 { 0xd8fcf000, 0xd8ffdfff, REGISTRY_ARIN }, // 216.252.240.0 - 216.255.223.255 { 0xd8ffe000, 0xd8ffefff, REGISTRY_APNIC }, // 216.255.224.0 - 216.255.239.255 { 0xd8fff000, 0xd8ffffff, REGISTRY_ARIN }, // 216.255.240.0 - 216.255.255.255 { 0xd9000000, 0xd90adfff, REGISTRY_RIPENCC }, // 217.0.0.0 - 217.10.223.255 { 0xd90ae000, 0xd90ae0ff, REGISTRY_ARIN }, // 217.10.224.0 - 217.10.224.255 { 0xd90ae100, 0xd90ae1ff, REGISTRY_RIPENCC }, // 217.10.225.0 - 217.10.225.255 { 0xd90ae200, 0xd90ae2ff, REGISTRY_APNIC }, // 217.10.226.0 - 217.10.226.255 { 0xd90ae300, 0xd90ae4ff, REGISTRY_ARIN }, // 217.10.227.0 - 217.10.228.255 { 0xd90ae500, 0xd90ae7ff, REGISTRY_APNIC }, // 217.10.229.0 - 217.10.231.255 { 0xd90ae800, 0xd90e4fff, REGISTRY_RIPENCC }, // 217.10.232.0 - 217.14.79.255 { 0xd90e5000, 0xd90e5fff, REGISTRY_AFRINIC }, // 217.14.80.0 - 217.14.95.255 { 0xd90e6000, 0xd91233ff, REGISTRY_RIPENCC }, // 217.14.96.0 - 217.18.51.255 { 0xd9123400, 0xd91237ff, REGISTRY_APNIC }, // 217.18.52.0 - 217.18.55.255 { 0xd9123800, 0xd914dfff, REGISTRY_RIPENCC }, // 217.18.56.0 - 217.20.223.255 { 0xd914e000, 0xd914efff, REGISTRY_AFRINIC }, // 217.20.224.0 - 217.20.239.255 { 0xd914f000, 0xd914f3ff, REGISTRY_ARIN }, // 217.20.240.0 - 217.20.243.255 { 0xd914f400, 0xd914fbff, REGISTRY_RIPENCC }, // 217.20.244.0 - 217.20.251.255 { 0xd9150000, 0xd9156fff, REGISTRY_RIPENCC }, // 217.21.0.0 - 217.21.111.255 { 0xd9157000, 0xd9157fff, REGISTRY_AFRINIC }, // 217.21.112.0 - 217.21.127.255 { 0xd9158000, 0xd91c17ff, REGISTRY_RIPENCC }, // 217.21.128.0 - 217.28.23.255 { 0xd91c1800, 0xd91c1fff, REGISTRY_ARIN }, // 217.28.24.0 - 217.28.31.255 { 0xd91c2000, 0xd91d7fff, REGISTRY_RIPENCC }, // 217.28.32.0 - 217.29.127.255 { 0xd91d8000, 0xd91d8fff, REGISTRY_AFRINIC }, // 217.29.128.0 - 217.29.143.255 { 0xd91d9000, 0xd91dcfff, REGISTRY_RIPENCC }, // 217.29.144.0 - 217.29.207.255 { 0xd91dd000, 0xd91ddfff, REGISTRY_AFRINIC }, // 217.29.208.0 - 217.29.223.255 { 0xd91de000, 0xd933ffff, REGISTRY_RIPENCC }, // 217.29.224.0 - 217.51.255.255 { 0xd9340000, 0xd937ffff, REGISTRY_AFRINIC }, // 217.52.0.0 - 217.55.255.255 { 0xd9380000, 0xd9405fff, REGISTRY_RIPENCC }, // 217.56.0.0 - 217.64.95.255 { 0xd9406000, 0xd9406fff, REGISTRY_AFRINIC }, // 217.64.96.0 - 217.64.111.255 { 0xd9407000, 0xd9421fff, REGISTRY_RIPENCC }, // 217.64.112.0 - 217.66.31.255 { 0xd9422000, 0xd9423fff, REGISTRY_RIPENCC }, // 217.66.32.0 - 217.66.63.255 { 0xd9424000, 0xd9477fff, REGISTRY_RIPENCC }, // 217.66.64.0 - 217.71.127.255 { 0xd9478000, 0xd9479fff, REGISTRY_RIPENCC }, // 217.71.128.0 - 217.71.159.255 { 0xd947a000, 0xd94d3fff, REGISTRY_RIPENCC }, // 217.71.160.0 - 217.77.63.255 { 0xd94d4000, 0xd94d4fff, REGISTRY_AFRINIC }, // 217.77.64.0 - 217.77.79.255 { 0xd94d5000, 0xd94ddfff, REGISTRY_RIPENCC }, // 217.77.80.0 - 217.77.223.255 { 0xd94de000, 0xd94defff, REGISTRY_RIPENCC }, // 217.77.224.0 - 217.77.239.255 { 0xd94df000, 0xd94e3fff, REGISTRY_RIPENCC }, // 217.77.240.0 - 217.78.63.255 { 0xd94e5000, 0xd974ffff, REGISTRY_RIPENCC }, // 217.78.80.0 - 217.116.255.255 { 0xd9750000, 0xd9750fff, REGISTRY_AFRINIC }, // 217.117.0.0 - 217.117.15.255 { 0xd9751000, 0xd98affff, REGISTRY_RIPENCC }, // 217.117.16.0 - 217.138.255.255 { 0xd98b0000, 0xd98bffff, REGISTRY_AFRINIC }, // 217.139.0.0 - 217.139.255.255 { 0xd98c0000, 0xd98effff, REGISTRY_RIPENCC }, // 217.140.0.0 - 217.142.255.255 { 0xd98f0000, 0xd98fffff, REGISTRY_ARIN }, // 217.143.0.0 - 217.143.255.255 { 0xd9900000, 0xd993b7ff, REGISTRY_RIPENCC }, // 217.144.0.0 - 217.147.183.255 { 0xd993b800, 0xd993bfff, REGISTRY_ARIN }, // 217.147.184.0 - 217.147.191.255 { 0xd993c000, 0xd997bfff, REGISTRY_RIPENCC }, // 217.147.192.0 - 217.151.191.255 { 0xd997c000, 0xd997dfff, REGISTRY_RIPENCC }, // 217.151.192.0 - 217.151.223.255 { 0xd997e000, 0xd99effff, REGISTRY_RIPENCC }, // 217.151.224.0 - 217.158.255.255 { 0xd99f0000, 0xd99f7fff, REGISTRY_ARIN }, // 217.159.0.0 - 217.159.127.255 { 0xd99f8000, 0xd9aa8fff, REGISTRY_RIPENCC }, // 217.159.128.0 - 217.170.143.255 { 0xd9aa9000, 0xd9aa9fff, REGISTRY_AFRINIC }, // 217.170.144.0 - 217.170.159.255 { 0xd9aaa000, 0xd9adafff, REGISTRY_RIPENCC }, // 217.170.160.0 - 217.173.175.255 { 0xd9adb000, 0xd9adbfff, REGISTRY_RIPENCC }, // 217.173.176.0 - 217.173.191.255 { 0xd9adc000, 0xd9b1ffff, REGISTRY_RIPENCC }, // 217.173.192.0 - 217.177.255.255 { 0xd9b20000, 0xd9b2ffff, REGISTRY_APNIC }, // 217.178.0.0 - 217.178.255.255 { 0xd9b30000, 0xd9b4bfff, REGISTRY_RIPENCC }, // 217.179.0.0 - 217.180.191.255 { 0xd9b4c000, 0xd9b4ffff, REGISTRY_ARIN }, // 217.180.192.0 - 217.180.255.255 { 0xd9b50000, 0xd9c283ff, REGISTRY_RIPENCC }, // 217.181.0.0 - 217.194.131.255 { 0xd9c28400, 0xd9c287ff, REGISTRY_APNIC }, // 217.194.132.0 - 217.194.135.255 { 0xd9c28800, 0xd9c28bff, REGISTRY_RIPENCC }, // 217.194.136.0 - 217.194.139.255 { 0xd9c28c00, 0xd9c28fff, REGISTRY_APNIC }, // 217.194.140.0 - 217.194.143.255 { 0xd9c29000, 0xd9c54fff, REGISTRY_RIPENCC }, // 217.194.144.0 - 217.197.79.255 { 0xd9c55000, 0xd9c55fff, REGISTRY_RIPENCC }, // 217.197.80.0 - 217.197.95.255 { 0xd9c56000, 0xd9c78fff, REGISTRY_RIPENCC }, // 217.197.96.0 - 217.199.143.255 { 0xd9c79000, 0xd9c79fff, REGISTRY_AFRINIC }, // 217.199.144.0 - 217.199.159.255 { 0xd9c7a000, 0xd9ffffff, REGISTRY_RIPENCC }, // 217.199.160.0 - 217.255.255.255 { 0xda000000, 0xda6413ff, REGISTRY_APNIC }, // 218.0.0.0 - 218.100.19.255 { 0xda641500, 0xda642dff, REGISTRY_APNIC }, // 218.100.21.0 - 218.100.45.255 { 0xda643000, 0xda6432ff, REGISTRY_APNIC }, // 218.100.48.0 - 218.100.50.255 { 0xda643400, 0xda643aff, REGISTRY_APNIC }, // 218.100.52.0 - 218.100.58.255 { 0xda643c00, 0xda6443ff, REGISTRY_APNIC }, // 218.100.60.0 - 218.100.67.255 { 0xda644500, 0xda6445ff, REGISTRY_APNIC }, // 218.100.69.0 - 218.100.69.255 { 0xda644700, 0xda644eff, REGISTRY_APNIC }, // 218.100.71.0 - 218.100.78.255 { 0xda645000, 0xda6455ff, REGISTRY_APNIC }, // 218.100.80.0 - 218.100.85.255 { 0xda645700, 0xdc9873ff, REGISTRY_APNIC }, // 218.100.87.0 - 220.152.115.255 { 0xdc987800, 0xdc9e93ff, REGISTRY_APNIC }, // 220.152.120.0 - 220.158.147.255 { 0xdc9e9800, 0xdc9ec3ff, REGISTRY_APNIC }, // 220.158.152.0 - 220.158.195.255 { 0xdc9ec400, 0xdc9ec7ff, REGISTRY_RIPENCC }, // 220.158.196.0 - 220.158.199.255 { 0xdc9ec800, 0xdf1977ff, REGISTRY_APNIC }, // 220.158.200.0 - 223.25.119.255 { 0xdf197800, 0xdf197fff, REGISTRY_RIPENCC }, // 223.25.120.0 - 223.25.127.255 { 0xdf198000, 0xdf1b6fff, REGISTRY_APNIC }, // 223.25.128.0 - 223.27.111.255 { 0xdf1b7000, 0xdf1b72ff, REGISTRY_RIPENCC }, // 223.27.112.0 - 223.27.114.255 { 0xdf1b7300, 0xdf1b73ff, REGISTRY_LACNIC }, // 223.27.115.0 - 223.27.115.255 { 0xdf1b7400, 0xdf8207ff, REGISTRY_APNIC }, // 223.27.116.0 - 223.130.7.255 { 0xdf820c00, 0xdfa4ffff, REGISTRY_APNIC }, // 223.130.12.0 - 223.164.255.255 { 0xdfa50400, 0xdfa55fff, REGISTRY_APNIC }, // 223.165.4.0 - 223.165.95.255 { 0xdfa56000, 0xdfa57fff, REGISTRY_ARIN }, // 223.165.96.0 - 223.165.127.255 { 0xdfa58000, 0xdfffffff, REGISTRY_APNIC }, // 223.165.128.0 - 223.255.255.255 }; static const s_ipv4addr_assignment dbipv4addr_assignment_iana[] = { //first , last , registry { 0x00000000, 0x00ffffff, REGISTRY_IANA }, // 0.0.0.0 - 0.255.255.255 { 0x01000000, 0x01ffffff, REGISTRY_APNIC }, // 1.0.0.0 - 1.255.255.255 { 0x02000000, 0x02ffffff, REGISTRY_RIPENCC }, // 2.0.0.0 - 2.255.255.255 { 0x03000000, 0x03ffffff, REGISTRY_ARIN }, // 3.0.0.0 - 3.255.255.255 { 0x04000000, 0x04ffffff, REGISTRY_ARIN }, // 4.0.0.0 - 4.255.255.255 { 0x05000000, 0x05ffffff, REGISTRY_RIPENCC }, // 5.0.0.0 - 5.255.255.255 { 0x06000000, 0x06ffffff, REGISTRY_ARIN }, // 6.0.0.0 - 6.255.255.255 { 0x07000000, 0x07ffffff, REGISTRY_ARIN }, // 7.0.0.0 - 7.255.255.255 { 0x08000000, 0x08ffffff, REGISTRY_ARIN }, // 8.0.0.0 - 8.255.255.255 { 0x09000000, 0x09ffffff, REGISTRY_ARIN }, // 9.0.0.0 - 9.255.255.255 { 0x0a000000, 0x0affffff, REGISTRY_IANA }, // 10.0.0.0 - 10.255.255.255 { 0x0b000000, 0x0bffffff, REGISTRY_ARIN }, // 11.0.0.0 - 11.255.255.255 { 0x0c000000, 0x0cffffff, REGISTRY_ARIN }, // 12.0.0.0 - 12.255.255.255 { 0x0d000000, 0x0dffffff, REGISTRY_ARIN }, // 13.0.0.0 - 13.255.255.255 { 0x0e000000, 0x0effffff, REGISTRY_APNIC }, // 14.0.0.0 - 14.255.255.255 { 0x0f000000, 0x0fffffff, REGISTRY_ARIN }, // 15.0.0.0 - 15.255.255.255 { 0x10000000, 0x10ffffff, REGISTRY_ARIN }, // 16.0.0.0 - 16.255.255.255 { 0x11000000, 0x11ffffff, REGISTRY_ARIN }, // 17.0.0.0 - 17.255.255.255 { 0x12000000, 0x12ffffff, REGISTRY_ARIN }, // 18.0.0.0 - 18.255.255.255 { 0x13000000, 0x13ffffff, REGISTRY_ARIN }, // 19.0.0.0 - 19.255.255.255 { 0x14000000, 0x14ffffff, REGISTRY_ARIN }, // 20.0.0.0 - 20.255.255.255 { 0x15000000, 0x15ffffff, REGISTRY_ARIN }, // 21.0.0.0 - 21.255.255.255 { 0x16000000, 0x16ffffff, REGISTRY_ARIN }, // 22.0.0.0 - 22.255.255.255 { 0x17000000, 0x17ffffff, REGISTRY_ARIN }, // 23.0.0.0 - 23.255.255.255 { 0x18000000, 0x18ffffff, REGISTRY_ARIN }, // 24.0.0.0 - 24.255.255.255 { 0x19000000, 0x19ffffff, REGISTRY_RIPENCC }, // 25.0.0.0 - 25.255.255.255 { 0x1a000000, 0x1affffff, REGISTRY_ARIN }, // 26.0.0.0 - 26.255.255.255 { 0x1b000000, 0x1bffffff, REGISTRY_APNIC }, // 27.0.0.0 - 27.255.255.255 { 0x1c000000, 0x1cffffff, REGISTRY_ARIN }, // 28.0.0.0 - 28.255.255.255 { 0x1d000000, 0x1dffffff, REGISTRY_ARIN }, // 29.0.0.0 - 29.255.255.255 { 0x1e000000, 0x1effffff, REGISTRY_ARIN }, // 30.0.0.0 - 30.255.255.255 { 0x1f000000, 0x1fffffff, REGISTRY_RIPENCC }, // 31.0.0.0 - 31.255.255.255 { 0x20000000, 0x20ffffff, REGISTRY_ARIN }, // 32.0.0.0 - 32.255.255.255 { 0x21000000, 0x21ffffff, REGISTRY_ARIN }, // 33.0.0.0 - 33.255.255.255 { 0x22000000, 0x22ffffff, REGISTRY_ARIN }, // 34.0.0.0 - 34.255.255.255 { 0x23000000, 0x23ffffff, REGISTRY_ARIN }, // 35.0.0.0 - 35.255.255.255 { 0x24000000, 0x24ffffff, REGISTRY_APNIC }, // 36.0.0.0 - 36.255.255.255 { 0x25000000, 0x25ffffff, REGISTRY_RIPENCC }, // 37.0.0.0 - 37.255.255.255 { 0x26000000, 0x26ffffff, REGISTRY_ARIN }, // 38.0.0.0 - 38.255.255.255 { 0x27000000, 0x27ffffff, REGISTRY_APNIC }, // 39.0.0.0 - 39.255.255.255 { 0x28000000, 0x28ffffff, REGISTRY_ARIN }, // 40.0.0.0 - 40.255.255.255 { 0x29000000, 0x29ffffff, REGISTRY_AFRINIC }, // 41.0.0.0 - 41.255.255.255 { 0x2a000000, 0x2affffff, REGISTRY_APNIC }, // 42.0.0.0 - 42.255.255.255 { 0x2b000000, 0x2bffffff, REGISTRY_APNIC }, // 43.0.0.0 - 43.255.255.255 { 0x2c000000, 0x2cffffff, REGISTRY_ARIN }, // 44.0.0.0 - 44.255.255.255 { 0x2d000000, 0x2dffffff, REGISTRY_ARIN }, // 45.0.0.0 - 45.255.255.255 { 0x2e000000, 0x2effffff, REGISTRY_RIPENCC }, // 46.0.0.0 - 46.255.255.255 { 0x2f000000, 0x2fffffff, REGISTRY_ARIN }, // 47.0.0.0 - 47.255.255.255 { 0x30000000, 0x30ffffff, REGISTRY_ARIN }, // 48.0.0.0 - 48.255.255.255 { 0x31000000, 0x31ffffff, REGISTRY_APNIC }, // 49.0.0.0 - 49.255.255.255 { 0x32000000, 0x32ffffff, REGISTRY_ARIN }, // 50.0.0.0 - 50.255.255.255 { 0x33000000, 0x33ffffff, REGISTRY_RIPENCC }, // 51.0.0.0 - 51.255.255.255 { 0x34000000, 0x34ffffff, REGISTRY_ARIN }, // 52.0.0.0 - 52.255.255.255 { 0x35000000, 0x35ffffff, REGISTRY_RIPENCC }, // 53.0.0.0 - 53.255.255.255 { 0x36000000, 0x36ffffff, REGISTRY_ARIN }, // 54.0.0.0 - 54.255.255.255 { 0x37000000, 0x37ffffff, REGISTRY_ARIN }, // 55.0.0.0 - 55.255.255.255 { 0x38000000, 0x38ffffff, REGISTRY_ARIN }, // 56.0.0.0 - 56.255.255.255 { 0x39000000, 0x39ffffff, REGISTRY_RIPENCC }, // 57.0.0.0 - 57.255.255.255 { 0x3a000000, 0x3affffff, REGISTRY_APNIC }, // 58.0.0.0 - 58.255.255.255 { 0x3b000000, 0x3bffffff, REGISTRY_APNIC }, // 59.0.0.0 - 59.255.255.255 { 0x3c000000, 0x3cffffff, REGISTRY_APNIC }, // 60.0.0.0 - 60.255.255.255 { 0x3d000000, 0x3dffffff, REGISTRY_APNIC }, // 61.0.0.0 - 61.255.255.255 { 0x3e000000, 0x3effffff, REGISTRY_RIPENCC }, // 62.0.0.0 - 62.255.255.255 { 0x3f000000, 0x3fffffff, REGISTRY_ARIN }, // 63.0.0.0 - 63.255.255.255 { 0x40000000, 0x40ffffff, REGISTRY_ARIN }, // 64.0.0.0 - 64.255.255.255 { 0x41000000, 0x41ffffff, REGISTRY_ARIN }, // 65.0.0.0 - 65.255.255.255 { 0x42000000, 0x42ffffff, REGISTRY_ARIN }, // 66.0.0.0 - 66.255.255.255 { 0x43000000, 0x43ffffff, REGISTRY_ARIN }, // 67.0.0.0 - 67.255.255.255 { 0x44000000, 0x44ffffff, REGISTRY_ARIN }, // 68.0.0.0 - 68.255.255.255 { 0x45000000, 0x45ffffff, REGISTRY_ARIN }, // 69.0.0.0 - 69.255.255.255 { 0x46000000, 0x46ffffff, REGISTRY_ARIN }, // 70.0.0.0 - 70.255.255.255 { 0x47000000, 0x47ffffff, REGISTRY_ARIN }, // 71.0.0.0 - 71.255.255.255 { 0x48000000, 0x48ffffff, REGISTRY_ARIN }, // 72.0.0.0 - 72.255.255.255 { 0x49000000, 0x49ffffff, REGISTRY_ARIN }, // 73.0.0.0 - 73.255.255.255 { 0x4a000000, 0x4affffff, REGISTRY_ARIN }, // 74.0.0.0 - 74.255.255.255 { 0x4b000000, 0x4bffffff, REGISTRY_ARIN }, // 75.0.0.0 - 75.255.255.255 { 0x4c000000, 0x4cffffff, REGISTRY_ARIN }, // 76.0.0.0 - 76.255.255.255 { 0x4d000000, 0x4dffffff, REGISTRY_RIPENCC }, // 77.0.0.0 - 77.255.255.255 { 0x4e000000, 0x4effffff, REGISTRY_RIPENCC }, // 78.0.0.0 - 78.255.255.255 { 0x4f000000, 0x4fffffff, REGISTRY_RIPENCC }, // 79.0.0.0 - 79.255.255.255 { 0x50000000, 0x50ffffff, REGISTRY_RIPENCC }, // 80.0.0.0 - 80.255.255.255 { 0x51000000, 0x51ffffff, REGISTRY_RIPENCC }, // 81.0.0.0 - 81.255.255.255 { 0x52000000, 0x52ffffff, REGISTRY_RIPENCC }, // 82.0.0.0 - 82.255.255.255 { 0x53000000, 0x53ffffff, REGISTRY_RIPENCC }, // 83.0.0.0 - 83.255.255.255 { 0x54000000, 0x54ffffff, REGISTRY_RIPENCC }, // 84.0.0.0 - 84.255.255.255 { 0x55000000, 0x55ffffff, REGISTRY_RIPENCC }, // 85.0.0.0 - 85.255.255.255 { 0x56000000, 0x56ffffff, REGISTRY_RIPENCC }, // 86.0.0.0 - 86.255.255.255 { 0x57000000, 0x57ffffff, REGISTRY_RIPENCC }, // 87.0.0.0 - 87.255.255.255 { 0x58000000, 0x58ffffff, REGISTRY_RIPENCC }, // 88.0.0.0 - 88.255.255.255 { 0x59000000, 0x59ffffff, REGISTRY_RIPENCC }, // 89.0.0.0 - 89.255.255.255 { 0x5a000000, 0x5affffff, REGISTRY_RIPENCC }, // 90.0.0.0 - 90.255.255.255 { 0x5b000000, 0x5bffffff, REGISTRY_RIPENCC }, // 91.0.0.0 - 91.255.255.255 { 0x5c000000, 0x5cffffff, REGISTRY_RIPENCC }, // 92.0.0.0 - 92.255.255.255 { 0x5d000000, 0x5dffffff, REGISTRY_RIPENCC }, // 93.0.0.0 - 93.255.255.255 { 0x5e000000, 0x5effffff, REGISTRY_RIPENCC }, // 94.0.0.0 - 94.255.255.255 { 0x5f000000, 0x5fffffff, REGISTRY_RIPENCC }, // 95.0.0.0 - 95.255.255.255 { 0x60000000, 0x60ffffff, REGISTRY_ARIN }, // 96.0.0.0 - 96.255.255.255 { 0x61000000, 0x61ffffff, REGISTRY_ARIN }, // 97.0.0.0 - 97.255.255.255 { 0x62000000, 0x62ffffff, REGISTRY_ARIN }, // 98.0.0.0 - 98.255.255.255 { 0x63000000, 0x63ffffff, REGISTRY_ARIN }, // 99.0.0.0 - 99.255.255.255 { 0x64000000, 0x64ffffff, REGISTRY_ARIN }, // 100.0.0.0 - 100.255.255.255 { 0x65000000, 0x65ffffff, REGISTRY_APNIC }, // 101.0.0.0 - 101.255.255.255 { 0x66000000, 0x66ffffff, REGISTRY_AFRINIC }, // 102.0.0.0 - 102.255.255.255 { 0x67000000, 0x67ffffff, REGISTRY_APNIC }, // 103.0.0.0 - 103.255.255.255 { 0x68000000, 0x68ffffff, REGISTRY_ARIN }, // 104.0.0.0 - 104.255.255.255 { 0x69000000, 0x69ffffff, REGISTRY_AFRINIC }, // 105.0.0.0 - 105.255.255.255 { 0x6a000000, 0x6affffff, REGISTRY_APNIC }, // 106.0.0.0 - 106.255.255.255 { 0x6b000000, 0x6bffffff, REGISTRY_ARIN }, // 107.0.0.0 - 107.255.255.255 { 0x6c000000, 0x6cffffff, REGISTRY_ARIN }, // 108.0.0.0 - 108.255.255.255 { 0x6d000000, 0x6dffffff, REGISTRY_RIPENCC }, // 109.0.0.0 - 109.255.255.255 { 0x6e000000, 0x6effffff, REGISTRY_APNIC }, // 110.0.0.0 - 110.255.255.255 { 0x6f000000, 0x6fffffff, REGISTRY_APNIC }, // 111.0.0.0 - 111.255.255.255 { 0x70000000, 0x70ffffff, REGISTRY_APNIC }, // 112.0.0.0 - 112.255.255.255 { 0x71000000, 0x71ffffff, REGISTRY_APNIC }, // 113.0.0.0 - 113.255.255.255 { 0x72000000, 0x72ffffff, REGISTRY_APNIC }, // 114.0.0.0 - 114.255.255.255 { 0x73000000, 0x73ffffff, REGISTRY_APNIC }, // 115.0.0.0 - 115.255.255.255 { 0x74000000, 0x74ffffff, REGISTRY_APNIC }, // 116.0.0.0 - 116.255.255.255 { 0x75000000, 0x75ffffff, REGISTRY_APNIC }, // 117.0.0.0 - 117.255.255.255 { 0x76000000, 0x76ffffff, REGISTRY_APNIC }, // 118.0.0.0 - 118.255.255.255 { 0x77000000, 0x77ffffff, REGISTRY_APNIC }, // 119.0.0.0 - 119.255.255.255 { 0x78000000, 0x78ffffff, REGISTRY_APNIC }, // 120.0.0.0 - 120.255.255.255 { 0x79000000, 0x79ffffff, REGISTRY_APNIC }, // 121.0.0.0 - 121.255.255.255 { 0x7a000000, 0x7affffff, REGISTRY_APNIC }, // 122.0.0.0 - 122.255.255.255 { 0x7b000000, 0x7bffffff, REGISTRY_APNIC }, // 123.0.0.0 - 123.255.255.255 { 0x7c000000, 0x7cffffff, REGISTRY_APNIC }, // 124.0.0.0 - 124.255.255.255 { 0x7d000000, 0x7dffffff, REGISTRY_APNIC }, // 125.0.0.0 - 125.255.255.255 { 0x7e000000, 0x7effffff, REGISTRY_APNIC }, // 126.0.0.0 - 126.255.255.255 { 0x7f000000, 0x7fffffff, REGISTRY_IANA }, // 127.0.0.0 - 127.255.255.255 { 0x80000000, 0x80ffffff, REGISTRY_ARIN }, // 128.0.0.0 - 128.255.255.255 { 0x81000000, 0x81ffffff, REGISTRY_ARIN }, // 129.0.0.0 - 129.255.255.255 { 0x82000000, 0x82ffffff, REGISTRY_ARIN }, // 130.0.0.0 - 130.255.255.255 { 0x83000000, 0x83ffffff, REGISTRY_ARIN }, // 131.0.0.0 - 131.255.255.255 { 0x84000000, 0x84ffffff, REGISTRY_ARIN }, // 132.0.0.0 - 132.255.255.255 { 0x85000000, 0x85ffffff, REGISTRY_APNIC }, // 133.0.0.0 - 133.255.255.255 { 0x86000000, 0x86ffffff, REGISTRY_ARIN }, // 134.0.0.0 - 134.255.255.255 { 0x87000000, 0x87ffffff, REGISTRY_ARIN }, // 135.0.0.0 - 135.255.255.255 { 0x88000000, 0x88ffffff, REGISTRY_ARIN }, // 136.0.0.0 - 136.255.255.255 { 0x89000000, 0x89ffffff, REGISTRY_ARIN }, // 137.0.0.0 - 137.255.255.255 { 0x8a000000, 0x8affffff, REGISTRY_ARIN }, // 138.0.0.0 - 138.255.255.255 { 0x8b000000, 0x8bffffff, REGISTRY_ARIN }, // 139.0.0.0 - 139.255.255.255 { 0x8c000000, 0x8cffffff, REGISTRY_ARIN }, // 140.0.0.0 - 140.255.255.255 { 0x8d000000, 0x8dffffff, REGISTRY_RIPENCC }, // 141.0.0.0 - 141.255.255.255 { 0x8e000000, 0x8effffff, REGISTRY_ARIN }, // 142.0.0.0 - 142.255.255.255 { 0x8f000000, 0x8fffffff, REGISTRY_ARIN }, // 143.0.0.0 - 143.255.255.255 { 0x90000000, 0x90ffffff, REGISTRY_ARIN }, // 144.0.0.0 - 144.255.255.255 { 0x91000000, 0x91ffffff, REGISTRY_RIPENCC }, // 145.0.0.0 - 145.255.255.255 { 0x92000000, 0x92ffffff, REGISTRY_ARIN }, // 146.0.0.0 - 146.255.255.255 { 0x93000000, 0x93ffffff, REGISTRY_ARIN }, // 147.0.0.0 - 147.255.255.255 { 0x94000000, 0x94ffffff, REGISTRY_ARIN }, // 148.0.0.0 - 148.255.255.255 { 0x95000000, 0x95ffffff, REGISTRY_ARIN }, // 149.0.0.0 - 149.255.255.255 { 0x96000000, 0x96ffffff, REGISTRY_APNIC }, // 150.0.0.0 - 150.255.255.255 { 0x97000000, 0x97ffffff, REGISTRY_RIPENCC }, // 151.0.0.0 - 151.255.255.255 { 0x98000000, 0x98ffffff, REGISTRY_ARIN }, // 152.0.0.0 - 152.255.255.255 { 0x99000000, 0x99ffffff, REGISTRY_APNIC }, // 153.0.0.0 - 153.255.255.255 { 0x9a000000, 0x9affffff, REGISTRY_AFRINIC }, // 154.0.0.0 - 154.255.255.255 { 0x9b000000, 0x9bffffff, REGISTRY_ARIN }, // 155.0.0.0 - 155.255.255.255 { 0x9c000000, 0x9cffffff, REGISTRY_ARIN }, // 156.0.0.0 - 156.255.255.255 { 0x9d000000, 0x9dffffff, REGISTRY_ARIN }, // 157.0.0.0 - 157.255.255.255 { 0x9e000000, 0x9effffff, REGISTRY_ARIN }, // 158.0.0.0 - 158.255.255.255 { 0x9f000000, 0x9fffffff, REGISTRY_ARIN }, // 159.0.0.0 - 159.255.255.255 { 0xa0000000, 0xa0ffffff, REGISTRY_ARIN }, // 160.0.0.0 - 160.255.255.255 { 0xa1000000, 0xa1ffffff, REGISTRY_ARIN }, // 161.0.0.0 - 161.255.255.255 { 0xa2000000, 0xa2ffffff, REGISTRY_ARIN }, // 162.0.0.0 - 162.255.255.255 { 0xa3000000, 0xa3ffffff, REGISTRY_APNIC }, // 163.0.0.0 - 163.255.255.255 { 0xa4000000, 0xa4ffffff, REGISTRY_ARIN }, // 164.0.0.0 - 164.255.255.255 { 0xa5000000, 0xa5ffffff, REGISTRY_ARIN }, // 165.0.0.0 - 165.255.255.255 { 0xa6000000, 0xa6ffffff, REGISTRY_ARIN }, // 166.0.0.0 - 166.255.255.255 { 0xa7000000, 0xa7ffffff, REGISTRY_ARIN }, // 167.0.0.0 - 167.255.255.255 { 0xa8000000, 0xa8ffffff, REGISTRY_ARIN }, // 168.0.0.0 - 168.255.255.255 { 0xa9000000, 0xa9ffffff, REGISTRY_ARIN }, // 169.0.0.0 - 169.255.255.255 { 0xaa000000, 0xaaffffff, REGISTRY_ARIN }, // 170.0.0.0 - 170.255.255.255 { 0xab000000, 0xabffffff, REGISTRY_APNIC }, // 171.0.0.0 - 171.255.255.255 { 0xac000000, 0xacffffff, REGISTRY_ARIN }, // 172.0.0.0 - 172.255.255.255 { 0xad000000, 0xadffffff, REGISTRY_ARIN }, // 173.0.0.0 - 173.255.255.255 { 0xae000000, 0xaeffffff, REGISTRY_ARIN }, // 174.0.0.0 - 174.255.255.255 { 0xaf000000, 0xafffffff, REGISTRY_APNIC }, // 175.0.0.0 - 175.255.255.255 { 0xb0000000, 0xb0ffffff, REGISTRY_RIPENCC }, // 176.0.0.0 - 176.255.255.255 { 0xb1000000, 0xb1ffffff, REGISTRY_LACNIC }, // 177.0.0.0 - 177.255.255.255 { 0xb2000000, 0xb2ffffff, REGISTRY_RIPENCC }, // 178.0.0.0 - 178.255.255.255 { 0xb3000000, 0xb3ffffff, REGISTRY_LACNIC }, // 179.0.0.0 - 179.255.255.255 { 0xb4000000, 0xb4ffffff, REGISTRY_APNIC }, // 180.0.0.0 - 180.255.255.255 { 0xb5000000, 0xb5ffffff, REGISTRY_LACNIC }, // 181.0.0.0 - 181.255.255.255 { 0xb6000000, 0xb6ffffff, REGISTRY_APNIC }, // 182.0.0.0 - 182.255.255.255 { 0xb7000000, 0xb7ffffff, REGISTRY_APNIC }, // 183.0.0.0 - 183.255.255.255 { 0xb8000000, 0xb8ffffff, REGISTRY_ARIN }, // 184.0.0.0 - 184.255.255.255 { 0xb9000000, 0xb9ffffff, REGISTRY_RIPENCC }, // 185.0.0.0 - 185.255.255.255 { 0xba000000, 0xbaffffff, REGISTRY_LACNIC }, // 186.0.0.0 - 186.255.255.255 { 0xbb000000, 0xbbffffff, REGISTRY_LACNIC }, // 187.0.0.0 - 187.255.255.255 { 0xbc000000, 0xbcffffff, REGISTRY_RIPENCC }, // 188.0.0.0 - 188.255.255.255 { 0xbd000000, 0xbdffffff, REGISTRY_LACNIC }, // 189.0.0.0 - 189.255.255.255 { 0xbe000000, 0xbeffffff, REGISTRY_LACNIC }, // 190.0.0.0 - 190.255.255.255 { 0xbf000000, 0xbfffffff, REGISTRY_LACNIC }, // 191.0.0.0 - 191.255.255.255 { 0xc0000000, 0xc0ffffff, REGISTRY_ARIN }, // 192.0.0.0 - 192.255.255.255 { 0xc1000000, 0xc1ffffff, REGISTRY_RIPENCC }, // 193.0.0.0 - 193.255.255.255 { 0xc2000000, 0xc2ffffff, REGISTRY_RIPENCC }, // 194.0.0.0 - 194.255.255.255 { 0xc3000000, 0xc3ffffff, REGISTRY_RIPENCC }, // 195.0.0.0 - 195.255.255.255 { 0xc4000000, 0xc4ffffff, REGISTRY_AFRINIC }, // 196.0.0.0 - 196.255.255.255 { 0xc5000000, 0xc5ffffff, REGISTRY_AFRINIC }, // 197.0.0.0 - 197.255.255.255 { 0xc6000000, 0xc6ffffff, REGISTRY_ARIN }, // 198.0.0.0 - 198.255.255.255 { 0xc7000000, 0xc7ffffff, REGISTRY_ARIN }, // 199.0.0.0 - 199.255.255.255 { 0xc8000000, 0xc8ffffff, REGISTRY_LACNIC }, // 200.0.0.0 - 200.255.255.255 { 0xc9000000, 0xc9ffffff, REGISTRY_LACNIC }, // 201.0.0.0 - 201.255.255.255 { 0xca000000, 0xcaffffff, REGISTRY_APNIC }, // 202.0.0.0 - 202.255.255.255 { 0xcb000000, 0xcbffffff, REGISTRY_APNIC }, // 203.0.0.0 - 203.255.255.255 { 0xcc000000, 0xccffffff, REGISTRY_ARIN }, // 204.0.0.0 - 204.255.255.255 { 0xcd000000, 0xcdffffff, REGISTRY_ARIN }, // 205.0.0.0 - 205.255.255.255 { 0xce000000, 0xceffffff, REGISTRY_ARIN }, // 206.0.0.0 - 206.255.255.255 { 0xcf000000, 0xcfffffff, REGISTRY_ARIN }, // 207.0.0.0 - 207.255.255.255 { 0xd0000000, 0xd0ffffff, REGISTRY_ARIN }, // 208.0.0.0 - 208.255.255.255 { 0xd1000000, 0xd1ffffff, REGISTRY_ARIN }, // 209.0.0.0 - 209.255.255.255 { 0xd2000000, 0xd2ffffff, REGISTRY_APNIC }, // 210.0.0.0 - 210.255.255.255 { 0xd3000000, 0xd3ffffff, REGISTRY_APNIC }, // 211.0.0.0 - 211.255.255.255 { 0xd4000000, 0xd4ffffff, REGISTRY_RIPENCC }, // 212.0.0.0 - 212.255.255.255 { 0xd5000000, 0xd5ffffff, REGISTRY_RIPENCC }, // 213.0.0.0 - 213.255.255.255 { 0xd6000000, 0xd6ffffff, REGISTRY_ARIN }, // 214.0.0.0 - 214.255.255.255 { 0xd7000000, 0xd7ffffff, REGISTRY_ARIN }, // 215.0.0.0 - 215.255.255.255 { 0xd8000000, 0xd8ffffff, REGISTRY_ARIN }, // 216.0.0.0 - 216.255.255.255 { 0xd9000000, 0xd9ffffff, REGISTRY_RIPENCC }, // 217.0.0.0 - 217.255.255.255 { 0xda000000, 0xdaffffff, REGISTRY_APNIC }, // 218.0.0.0 - 218.255.255.255 { 0xdb000000, 0xdbffffff, REGISTRY_APNIC }, // 219.0.0.0 - 219.255.255.255 { 0xdc000000, 0xdcffffff, REGISTRY_APNIC }, // 220.0.0.0 - 220.255.255.255 { 0xdd000000, 0xddffffff, REGISTRY_APNIC }, // 221.0.0.0 - 221.255.255.255 { 0xde000000, 0xdeffffff, REGISTRY_APNIC }, // 222.0.0.0 - 222.255.255.255 { 0xdf000000, 0xdfffffff, REGISTRY_APNIC }, // 223.0.0.0 - 223.255.255.255 { 0xe0000000, 0xe0ffffff, REGISTRY_IANA }, // 224.0.0.0 - 224.255.255.255 { 0xe1000000, 0xe1ffffff, REGISTRY_IANA }, // 225.0.0.0 - 225.255.255.255 { 0xe2000000, 0xe2ffffff, REGISTRY_IANA }, // 226.0.0.0 - 226.255.255.255 { 0xe3000000, 0xe3ffffff, REGISTRY_IANA }, // 227.0.0.0 - 227.255.255.255 { 0xe4000000, 0xe4ffffff, REGISTRY_IANA }, // 228.0.0.0 - 228.255.255.255 { 0xe5000000, 0xe5ffffff, REGISTRY_IANA }, // 229.0.0.0 - 229.255.255.255 { 0xe6000000, 0xe6ffffff, REGISTRY_IANA }, // 230.0.0.0 - 230.255.255.255 { 0xe7000000, 0xe7ffffff, REGISTRY_IANA }, // 231.0.0.0 - 231.255.255.255 { 0xe8000000, 0xe8ffffff, REGISTRY_IANA }, // 232.0.0.0 - 232.255.255.255 { 0xe9000000, 0xe9ffffff, REGISTRY_IANA }, // 233.0.0.0 - 233.255.255.255 { 0xea000000, 0xeaffffff, REGISTRY_IANA }, // 234.0.0.0 - 234.255.255.255 { 0xeb000000, 0xebffffff, REGISTRY_IANA }, // 235.0.0.0 - 235.255.255.255 { 0xec000000, 0xecffffff, REGISTRY_IANA }, // 236.0.0.0 - 236.255.255.255 { 0xed000000, 0xedffffff, REGISTRY_IANA }, // 237.0.0.0 - 237.255.255.255 { 0xee000000, 0xeeffffff, REGISTRY_IANA }, // 238.0.0.0 - 238.255.255.255 { 0xef000000, 0xefffffff, REGISTRY_IANA }, // 239.0.0.0 - 239.255.255.255 { 0xf0000000, 0xf0ffffff, REGISTRY_IANA }, // 240.0.0.0 - 240.255.255.255 { 0xf1000000, 0xf1ffffff, REGISTRY_IANA }, // 241.0.0.0 - 241.255.255.255 { 0xf2000000, 0xf2ffffff, REGISTRY_IANA }, // 242.0.0.0 - 242.255.255.255 { 0xf3000000, 0xf3ffffff, REGISTRY_IANA }, // 243.0.0.0 - 243.255.255.255 { 0xf4000000, 0xf4ffffff, REGISTRY_IANA }, // 244.0.0.0 - 244.255.255.255 { 0xf5000000, 0xf5ffffff, REGISTRY_IANA }, // 245.0.0.0 - 245.255.255.255 { 0xf6000000, 0xf6ffffff, REGISTRY_IANA }, // 246.0.0.0 - 246.255.255.255 { 0xf7000000, 0xf7ffffff, REGISTRY_IANA }, // 247.0.0.0 - 247.255.255.255 { 0xf8000000, 0xf8ffffff, REGISTRY_IANA }, // 248.0.0.0 - 248.255.255.255 { 0xf9000000, 0xf9ffffff, REGISTRY_IANA }, // 249.0.0.0 - 249.255.255.255 { 0xfa000000, 0xfaffffff, REGISTRY_IANA }, // 250.0.0.0 - 250.255.255.255 { 0xfb000000, 0xfbffffff, REGISTRY_IANA }, // 251.0.0.0 - 251.255.255.255 { 0xfc000000, 0xfcffffff, REGISTRY_IANA }, // 252.0.0.0 - 252.255.255.255 { 0xfd000000, 0xfdffffff, REGISTRY_IANA }, // 253.0.0.0 - 253.255.255.255 { 0xfe000000, 0xfeffffff, REGISTRY_IANA }, // 254.0.0.0 - 254.255.255.255 { 0xff000000, 0xffffffff, REGISTRY_IANA }, // 255.0.0.0 - 255.255.255.255 }; static const s_ipv4addr_info dbipv4addr_info[] = { //first , last , registry { 0x99100000, 0x991000ff, "LISP#asp-xtr" }, // 153.16.0.0 - 153.16.0.255 { 0x99100080, 0x991000ff, "LISP#asp-xtr" }, // 153.16.0.128 - 153.16.0.255 { 0x99100100, 0x991001ff, "LISP#ntt-xtr" }, // 153.16.1.0 - 153.16.1.255 { 0x99100200, 0x991002ff, "LISP#bell-ca-xtr" }, // 153.16.2.0 - 153.16.2.255 { 0x99100300, 0x991003ff, "LISP#nyu-xtr" }, // 153.16.3.0 - 153.16.3.255 { 0x99100500, 0x991005ff, "LISP#cisco-it-xtr" }, // 153.16.5.0 - 153.16.5.255 { 0x99100700, 0x991007ff, "LISP#asp-n7k-xtr" }, // 153.16.7.0 - 153.16.7.255 { 0x99100800, 0x991008ff, "LISP#ucla-xtr" }, // 153.16.8.0 - 153.16.8.255 { 0x99100900, 0x9910090f, "LISP#fabio-new-mn" }, // 153.16.9.0 - 153.16.9.15 { 0x99100910, 0x9910091f, "LISP#nmaadara-xtr" }, // 153.16.9.16 - 153.16.9.31 { 0x99100920, 0x9910092f, "LISP#gbumgard-xtr" }, // 153.16.9.32 - 153.16.9.47 { 0x99100930, 0x9910093f, "LISP#chuljin-xtr" }, // 153.16.9.48 - 153.16.9.63 { 0x99100940, 0x9910094f, "LISP#akennedy-xtr" }, // 153.16.9.64 - 153.16.9.79 { 0x99100950, 0x9910095f, "LISP#jcolin-xtr" }, // 153.16.9.80 - 153.16.9.95 { 0x99100960, 0x9910096f, "LISP#rbonnell-xtr" }, // 153.16.9.96 - 153.16.9.111 { 0x99100970, 0x9910097f, "LISP#jalberti-xtr" }, // 153.16.9.112 - 153.16.9.127 { 0x99100980, 0x9910098f, "LISP#cisco-natal2-xtr" }, // 153.16.9.128 - 153.16.9.143 { 0x99100990, 0x9910099f, "LISP#lfiegl-xtr" }, // 153.16.9.144 - 153.16.9.159 { 0x991009b0, 0x991009bf, "LISP#upc-arin-xtr" }, // 153.16.9.176 - 153.16.9.191 { 0x991009c0, 0x991009cf, "LISP#azure-xtr" }, // 153.16.9.192 - 153.16.9.207 { 0x99100a00, 0x99100aff, "LISP#vaf-xtr" }, // 153.16.10.0 - 153.16.10.255 { 0x99100b00, 0x99100bff, "LISP#icox-xtr" }, // 153.16.11.0 - 153.16.11.255 { 0x99100c00, 0x99100c3f, "LISP#srin-jcd-dc1" }, // 153.16.12.0 - 153.16.12.63 { 0x99100c40, 0x99100c7f, "LISP#srin-jcd-dc2" }, // 153.16.12.64 - 153.16.12.127 { 0x99100cf0, 0x99100cf7, "LISP#srin-jcd-dc1" }, // 153.16.12.240 - 153.16.12.247 { 0x99100cf8, 0x99100cff, "LISP#srin-jcd-dc2" }, // 153.16.12.248 - 153.16.12.255 { 0x99100d00, 0x99100d0f, "LISP#snoble-xtr" }, // 153.16.13.0 - 153.16.13.15 { 0x99100d20, 0x99100d2f, "LISP#dalvarez-xtr" }, // 153.16.13.32 - 153.16.13.47 { 0x99100d40, 0x99100d4f, "LISP#wnellis-xtr" }, // 153.16.13.64 - 153.16.13.79 { 0x99100d50, 0x99100d5f, "LISP#srin-xtr" }, // 153.16.13.80 - 153.16.13.95 { 0x99100d60, 0x99100d6f, "LISP#amit-xtr" }, // 153.16.13.96 - 153.16.13.111 { 0x99100d80, 0x99100d8f, "LISP#stevenca-xtr" }, // 153.16.13.128 - 153.16.13.143 { 0x99100d90, 0x99100d9f, "LISP#jearango-xtr" }, // 153.16.13.144 - 153.16.13.159 { 0x99100da0, 0x99100daf, "LISP#sulrich-xtr" }, // 153.16.13.160 - 153.16.13.175 { 0x99100db0, 0x99100dbf, "LISP#manishee-xtr" }, // 153.16.13.176 - 153.16.13.191 { 0x99100dc0, 0x99100dcf, "LISP#aaronm-xtr" }, // 153.16.13.192 - 153.16.13.207 { 0x99100dd0, 0x99100ddf, "LISP#samuel-xtr" }, // 153.16.13.208 - 153.16.13.223 { 0x99100de0, 0x99100def, "LISP#wwt-xtr" }, // 153.16.13.224 - 153.16.13.239 { 0x99100e00, 0x99100e3f, "LISP#c819-LTE-xtr" }, // 153.16.14.0 - 153.16.14.63 { 0x99100f00, 0x99100fff, "LISP#facebook-xtr-1" }, // 153.16.15.0 - 153.16.15.255 { 0x99101000, 0x991010ff, "LISP#isc-pxtr" }, // 153.16.16.0 - 153.16.16.255 { 0x99101100, 0x9910110f, "LISP#vl-openwrt1-xtr" }, // 153.16.17.0 - 153.16.17.15 { 0x99101110, 0x9910111f, "LISP#gregg-xtr" }, // 153.16.17.16 - 153.16.17.31 { 0x99101130, 0x9910113f, "LISP#vl-openwrt2-xtr" }, // 153.16.17.48 - 153.16.17.63 { 0x99101140, 0x9910114f, "LISP#vl-openwrt3-xtr" }, // 153.16.17.64 - 153.16.17.79 { 0x99101150, 0x9910115f, "LISP#asr1knat64-xtr" }, // 153.16.17.80 - 153.16.17.95 { 0x99101160, 0x9910116f, "LISP#zhicheng-xtr" }, // 153.16.17.96 - 153.16.17.111 { 0x99101170, 0x9910117f, "LISP#nattrav-test-arin" }, // 153.16.17.112 - 153.16.17.127 { 0x99101180, 0x9910118f, "LISP#liguori-xtr" }, // 153.16.17.128 - 153.16.17.143 { 0x99101190, 0x9910119f, "LISP#djcalif-xtr" }, // 153.16.17.144 - 153.16.17.159 { 0x991011a0, 0x991011af, "LISP#dehrle1-xtr" }, // 153.16.17.160 - 153.16.17.175 { 0x991011b0, 0x991011bf, "LISP#dehrle2-xtr" }, // 153.16.17.176 - 153.16.17.191 { 0x991011c0, 0x991011cf, "LISP#divya-xtr" }, // 153.16.17.192 - 153.16.17.207 { 0x991011d0, 0x991011df, "LISP#jhennessy-xtr" }, // 153.16.17.208 - 153.16.17.223 { 0x991011e0, 0x991011ef, "LISP#martin-xtr" }, // 153.16.17.224 - 153.16.17.239 { 0x991011f0, 0x991011ff, "LISP#comfort-xtr" }, // 153.16.17.240 - 153.16.17.255 { 0x99101200, 0x9910120f, "LISP#robert-cdw-xtr" }, // 153.16.18.0 - 153.16.18.15 { 0x99101210, 0x9910121f, "LISP#lierop-xtr" }, // 153.16.18.16 - 153.16.18.31 { 0x99101220, 0x9910122f, "LISP#cmh-xtr" }, // 153.16.18.32 - 153.16.18.47 { 0x99101240, 0x9910124f, "LISP#tosterbe-xtr" }, // 153.16.18.64 - 153.16.18.79 { 0x99101250, 0x9910125f, "LISP#kecorbin-xtr" }, // 153.16.18.80 - 153.16.18.95 { 0x99101260, 0x9910126f, "LISP#dstsyst-xtr" }, // 153.16.18.96 - 153.16.18.111 { 0x99101280, 0x9910128f, "LISP#ufrj-xtr" }, // 153.16.18.128 - 153.16.18.143 { 0x99101290, 0x9910129f, "LISP#machilde-xtr" }, // 153.16.18.144 - 153.16.18.159 { 0x991012a0, 0x991012af, "LISP#jessica-xtr" }, // 153.16.18.160 - 153.16.18.175 { 0x991012b0, 0x991012bf, "LISP#archana-xtr" }, // 153.16.18.176 - 153.16.18.191 { 0x991012c0, 0x991012cf, "LISP#jadumars-xtr" }, // 153.16.18.192 - 153.16.18.207 { 0x991012d0, 0x991012df, "LISP#gorhughe-xtr" }, // 153.16.18.208 - 153.16.18.223 { 0x99101300, 0x991013ff, "LISP#darrel-xtr" }, // 153.16.19.0 - 153.16.19.255 { 0x99101400, 0x991014ff, "LISP#scwaller-xtr" }, // 153.16.20.0 - 153.16.20.255 { 0x991015d4, 0x991015d4, "LISP#antasson-mn" }, // 153.16.21.212 - 153.16.21.212 { 0x99101700, 0x9910170f, "LISP#linh-xtr" }, // 153.16.23.0 - 153.16.23.15 { 0x99101710, 0x9910171f, "LISP#sfu-bcnet-xtr" }, // 153.16.23.16 - 153.16.23.31 { 0x99101720, 0x9910172f, "LISP#dipsingh-xtr" }, // 153.16.23.32 - 153.16.23.47 { 0x99101730, 0x9910173f, "LISP#trevlac-xtr" }, // 153.16.23.48 - 153.16.23.63 { 0x99101740, 0x9910174f, "LISP#parna-lev-xtr" }, // 153.16.23.64 - 153.16.23.79 { 0x99101750, 0x9910175f, "LISP#rob-cdw-xtr" }, // 153.16.23.80 - 153.16.23.95 { 0x99101760, 0x9910176f, "LISP#scv-xtr" }, // 153.16.23.96 - 153.16.23.111 { 0x99101770, 0x9910177f, "LISP#muabid-xtr" }, // 153.16.23.112 - 153.16.23.127 { 0x99101780, 0x9910178f, "LISP#steve-apple-xtr" }, // 153.16.23.128 - 153.16.23.143 { 0x99101790, 0x9910179f, "LISP#kleinart-xtr" }, // 153.16.23.144 - 153.16.23.159 { 0x991017a0, 0x991017af, "LISP#chanu-xtr" }, // 153.16.23.160 - 153.16.23.175 { 0x991017b0, 0x991017bf, "LISP#mhaaksma-xtr" }, // 153.16.23.176 - 153.16.23.191 { 0x991017c0, 0x991017cf, "LISP#tellis-xtr" }, // 153.16.23.192 - 153.16.23.207 { 0x991017d0, 0x991017df, "LISP#jade-xtr" }, // 153.16.23.208 - 153.16.23.223 { 0x991017e0, 0x991017ef, "LISP#neno-xtr" }, // 153.16.23.224 - 153.16.23.239 { 0x991017f0, 0x991017ff, "LISP#elsen-xtr" }, // 153.16.23.240 - 153.16.23.255 { 0x99101800, 0x991018ff, "LISP#attpoc-xtr" }, // 153.16.24.0 - 153.16.24.255 { 0x99101900, 0x9910190f, "LISP#rymcdowe-xtr" }, // 153.16.25.0 - 153.16.25.15 { 0x99101910, 0x9910191f, "LISP#miles-xtr" }, // 153.16.25.16 - 153.16.25.31 { 0x99101920, 0x9910192f, "LISP#smith-xtr" }, // 153.16.25.32 - 153.16.25.47 { 0x99101930, 0x9910193f, "LISP#epulvino-xtr" }, // 153.16.25.48 - 153.16.25.63 { 0x99101940, 0x9910194f, "LISP#crhill-xtr" }, // 153.16.25.64 - 153.16.25.79 { 0x99101950, 0x9910195f, "LISP#smadley-xtr" }, // 153.16.25.80 - 153.16.25.95 { 0x99101960, 0x9910196f, "LISP#mbirkner-xtr" }, // 153.16.25.96 - 153.16.25.111 { 0x99101970, 0x9910197f, "LISP#mikea-xtr" }, // 153.16.25.112 - 153.16.25.127 { 0x99101980, 0x9910198f, "LISP#jemannin-xtr" }, // 153.16.25.128 - 153.16.25.143 { 0x99101990, 0x9910199f, "LISP#chcoutur-xtr" }, // 153.16.25.144 - 153.16.25.159 { 0x991019a0, 0x991019af, "LISP#bluethunder-xtr" }, // 153.16.25.160 - 153.16.25.175 { 0x991019b0, 0x991019bf, "LISP#marknguy-xtr" }, // 153.16.25.176 - 153.16.25.191 { 0x991019c0, 0x991019cf, "LISP#marcairn-xtr" }, // 153.16.25.192 - 153.16.25.207 { 0x991019d0, 0x991019df, "LISP#byzek-xtr" }, // 153.16.25.208 - 153.16.25.223 { 0x991019e0, 0x991019ef, "LISP#jason-xtr" }, // 153.16.25.224 - 153.16.25.239 { 0x991019f0, 0x991019ff, "LISP#groff-xtr" }, // 153.16.25.240 - 153.16.25.255 { 0x99101a00, 0x99101a0f, "LISP#mwhitley-xtr" }, // 153.16.26.0 - 153.16.26.15 { 0x99101a10, 0x99101a1f, "LISP#dlapiper-xtr" }, // 153.16.26.16 - 153.16.26.31 { 0x99101a20, 0x99101a2f, "LISP#manhoo-xtr" }, // 153.16.26.32 - 153.16.26.47 { 0x99101a30, 0x99101a3f, "LISP#georgy-xtr" }, // 153.16.26.48 - 153.16.26.63 { 0x99101a40, 0x99101a4f, "LISP#jhippen-xtr" }, // 153.16.26.64 - 153.16.26.79 { 0x99101a50, 0x99101a5f, "LISP#cbc-xtr" }, // 153.16.26.80 - 153.16.26.95 { 0x99101a60, 0x99101a6f, "LISP#garydla-xtr" }, // 153.16.26.96 - 153.16.26.111 { 0x99101a70, 0x99101a7f, "LISP#scalan-xtr" }, // 153.16.26.112 - 153.16.26.127 { 0x99101a80, 0x99101a8f, "LISP#donkdla-xtr" }, // 153.16.26.128 - 153.16.26.143 { 0x99101a90, 0x99101a9f, "LISP#umissouri-xtr" }, // 153.16.26.144 - 153.16.26.159 { 0x99101aa0, 0x99101aaf, "LISP#ge-tsg-xtr" }, // 153.16.26.160 - 153.16.26.175 { 0x99101ab0, 0x99101abf, "LISP#manjeet-xtr" }, // 153.16.26.176 - 153.16.26.191 { 0x99101ac0, 0x99101acf, "LISP#uvahs-xtr" }, // 153.16.26.192 - 153.16.26.207 { 0x99101ad0, 0x99101adf, "LISP#zavarce-xtr" }, // 153.16.26.208 - 153.16.26.223 { 0x99101ae0, 0x99101aef, "LISP#dudek-xtr" }, // 153.16.26.224 - 153.16.26.239 { 0x99101af0, 0x99101aff, "LISP#force3a-xtr" }, // 153.16.26.240 - 153.16.26.255 { 0x99101b00, 0x99101bff, "LISP#icann-xtr" }, // 153.16.27.0 - 153.16.27.255 { 0x99101c00, 0x99101cff, "LISP#attpoc-xtr-2" }, // 153.16.28.0 - 153.16.28.255 { 0x99101d00, 0x99101d0f, "LISP#jpcaron-xtr" }, // 153.16.29.0 - 153.16.29.15 { 0x99101d10, 0x99101d1f, "LISP#jamwheat-xtr" }, // 153.16.29.16 - 153.16.29.31 { 0x99101d20, 0x99101d2f, "LISP#netorian-xtr" }, // 153.16.29.32 - 153.16.29.47 { 0x99101d30, 0x99101d3f, "LISP#pogue-xtr" }, // 153.16.29.48 - 153.16.29.63 { 0x99101d40, 0x99101d4f, "LISP#msales-xtr" }, // 153.16.29.64 - 153.16.29.79 { 0x99101d50, 0x99101d5f, "LISP#spisati-xtr-2" }, // 153.16.29.80 - 153.16.29.95 { 0x99101d60, 0x99101d6f, "LISP#lprat-xtr" }, // 153.16.29.96 - 153.16.29.111 { 0x99101d70, 0x99101d7f, "LISP#triple-xtr" }, // 153.16.29.112 - 153.16.29.127 { 0x99101d80, 0x99101d8f, "LISP#cmich-xtr" }, // 153.16.29.128 - 153.16.29.143 { 0x99101d90, 0x99101d9f, "LISP#rtajvar-xtr" }, // 153.16.29.144 - 153.16.29.159 { 0x99101db0, 0x99101dbf, "LISP#snicholas-xtr" }, // 153.16.29.176 - 153.16.29.191 { 0x99101dc0, 0x99101dcf, "LISP#nist-xtr" }, // 153.16.29.192 - 153.16.29.207 { 0x99101e00, 0x99101e0f, "LISP#google-xtr" }, // 153.16.30.0 - 153.16.30.15 { 0x99101e10, 0x99101e1f, "LISP#ineteng-xtr" }, // 153.16.30.16 - 153.16.30.31 { 0x99101e20, 0x99101e2f, "LISP#force3b-xtr" }, // 153.16.30.32 - 153.16.30.47 { 0x99101e30, 0x99101e3f, "LISP#force3-xtr" }, // 153.16.30.48 - 153.16.30.63 { 0x99101e40, 0x99101e4f, "LISP#wason-xtr" }, // 153.16.30.64 - 153.16.30.79 { 0x99101e50, 0x99101e5f, "LISP#c819-LTE-xtr" }, // 153.16.30.80 - 153.16.30.95 { 0x99101e60, 0x99101e6f, "LISP#schlutter-xtr" }, // 153.16.30.96 - 153.16.30.111 { 0x99101e70, 0x99101e7f, "LISP#bguldan-xtr" }, // 153.16.30.112 - 153.16.30.127 { 0x99101e80, 0x99101e8f, "LISP#naasief-xtr" }, // 153.16.30.128 - 153.16.30.143 { 0x99101e90, 0x99101e9f, "LISP#ciecior-xtr" }, // 153.16.30.144 - 153.16.30.159 { 0x99101ea0, 0x99101eaf, "LISP#coopergeneral-xtr" }, // 153.16.30.160 - 153.16.30.175 { 0x99101eb0, 0x99101ebf, "LISP#plixer-xtr" }, // 153.16.30.176 - 153.16.30.191 { 0x99101ec0, 0x99101ecf, "LISP#halifaxmediagroup-xtr" }, // 153.16.30.192 - 153.16.30.207 { 0x99101ed0, 0x99101edf, "LISP#ec2test-xtr" }, // 153.16.30.208 - 153.16.30.223 { 0x99101ee0, 0x99101eef, "LISP#perry-xtr" }, // 153.16.30.224 - 153.16.30.239 { 0x99101ef0, 0x99101eff, "LISP#fortinet-xtr" }, // 153.16.30.240 - 153.16.30.255 { 0x99101f10, 0x99101f1f, "LISP#chris-ge-xtr" }, // 153.16.31.16 - 153.16.31.31 { 0x99101f20, 0x99101f2f, "LISP#djustice-xtr" }, // 153.16.31.32 - 153.16.31.47 { 0x99101f30, 0x99101f3f, "LISP#apparatus-xtr" }, // 153.16.31.48 - 153.16.31.63 { 0x99101f40, 0x99101f4f, "LISP#cdw-xtr" }, // 153.16.31.64 - 153.16.31.79 { 0x99101f50, 0x99101f5f, "LISP#krunal-xtr" }, // 153.16.31.80 - 153.16.31.95 { 0x99101f60, 0x99101f6f, "LISP#gar-xtr" }, // 153.16.31.96 - 153.16.31.111 { 0x99101f70, 0x99101f7f, "LISP#jbert-xtr" }, // 153.16.31.112 - 153.16.31.127 { 0x99101f80, 0x99101f8f, "LISP#rajiva-xtr" }, // 153.16.31.128 - 153.16.31.143 { 0x99101f90, 0x99101f9f, "LISP#oneok-xtr" }, // 153.16.31.144 - 153.16.31.159 { 0x99101fa0, 0x99101faf, "LISP#sjury-xtr" }, // 153.16.31.160 - 153.16.31.175 { 0x99101fb0, 0x99101fbf, "LISP#dbuleza-xtr" }, // 153.16.31.176 - 153.16.31.191 { 0x99101fc0, 0x99101fcf, "LISP#tommille-xtr" }, // 153.16.31.192 - 153.16.31.207 { 0x99101fd0, 0x99101fdf, "LISP#uer3-xtr" }, // 153.16.31.208 - 153.16.31.223 { 0x99101fe0, 0x99101fef, "LISP#tdstelecom-xtr" }, // 153.16.31.224 - 153.16.31.239 { 0x99101ff0, 0x99101fff, "LISP#dustin-xtr" }, // 153.16.31.240 - 153.16.31.255 { 0x99102000, 0x9910200f, "LISP#thkernen-xtr" }, // 153.16.32.0 - 153.16.32.15 { 0x99102010, 0x9910201f, "LISP#jakab-xtr" }, // 153.16.32.16 - 153.16.32.31 { 0x99102020, 0x9910202f, "LISP#marc-xtr" }, // 153.16.32.32 - 153.16.32.47 { 0x99102030, 0x9910203f, "LISP#deutsche-bank-xtr" }, // 153.16.32.48 - 153.16.32.63 { 0x99102040, 0x9910204f, "LISP#gerd-cbc-xtr" }, // 153.16.32.64 - 153.16.32.79 { 0x99102050, 0x9910205f, "LISP#lbromirs-xtr" }, // 153.16.32.80 - 153.16.32.95 { 0x99102060, 0x9910206f, "LISP#dimitris-xtr" }, // 153.16.32.96 - 153.16.32.111 { 0x99102070, 0x9910207f, "LISP#65bit-xtr" }, // 153.16.32.112 - 153.16.32.127 { 0x99102080, 0x9910208f, "LISP#rolfs-xtr" }, // 153.16.32.128 - 153.16.32.143 { 0x99102090, 0x9910209f, "LISP#markus-xtr" }, // 153.16.32.144 - 153.16.32.159 { 0x991020a0, 0x991020af, "LISP#mkramoli-xtr" }, // 153.16.32.160 - 153.16.32.175 { 0x991020b0, 0x991020bf, "LISP#mironto-xtr" }, // 153.16.32.176 - 153.16.32.191 { 0x991020c0, 0x991020cf, "LISP#munich-arpt-xtr" }, // 153.16.32.192 - 153.16.32.207 { 0x991020d0, 0x991020df, "LISP#mitko-xtr" }, // 153.16.32.208 - 153.16.32.223 { 0x991020e0, 0x991020ef, "LISP#isarnet-xtr" }, // 153.16.32.224 - 153.16.32.239 { 0x991020f0, 0x991020ff, "LISP#experteach-xtr" }, // 153.16.32.240 - 153.16.32.255 { 0x99102100, 0x991021ff, "LISP#gerd-xtr" }, // 153.16.33.0 - 153.16.33.255 { 0x99102200, 0x991022ff, "LISP#luigi-xtr" }, // 153.16.34.0 - 153.16.34.255 { 0x99102300, 0x991023ff, "LISP#damien-xtr" }, // 153.16.35.0 - 153.16.35.255 { 0x99102400, 0x991024ff, "LISP#isarnet-xtr" }, // 153.16.36.0 - 153.16.36.255 { 0x99102500, 0x991025ff, "LISP#dino-xtr" }, // 153.16.37.0 - 153.16.37.255 { 0x99102600, 0x991026ff, "LISP#lip6-fr-xtr" }, // 153.16.38.0 - 153.16.38.255 { 0x99102700, 0x991027ff, "LISP#wolfgang-client-xtr" }, // 153.16.39.0 - 153.16.39.255 { 0x99102800, 0x991028ff, "LISP#simlo-xtr" }, // 153.16.40.0 - 153.16.40.255 { 0x99102900, 0x991029ff, "LISP#wolfgang-odd-xtr" }, // 153.16.41.0 - 153.16.41.255 { 0x99102a00, 0x99102aff, "LISP#wolfgang-even-xtr" }, // 153.16.42.0 - 153.16.42.255 { 0x99102b00, 0x99102b0f, "LISP#jesper-xtr" }, // 153.16.43.0 - 153.16.43.15 { 0x99102b10, 0x99102b1f, "LISP#isidor-xtr" }, // 153.16.43.16 - 153.16.43.31 { 0x99102b20, 0x99102b2f, "LISP#jobsnijders-home-xtr" }, // 153.16.43.32 - 153.16.43.47 { 0x99102b30, 0x99102b3f, "LISP#intouch-office-xtr" }, // 153.16.43.48 - 153.16.43.63 { 0x99102b40, 0x99102b7f, "LISP#intouch-dc1-xtr-1" }, // 153.16.43.64 - 153.16.43.127 { 0x99102b80, 0x99102bbf, "LISP#intouch-dc2-xtr-1" }, // 153.16.43.128 - 153.16.43.191 { 0x99102bf0, 0x99102bff, "LISP#pcharalampou-xtr" }, // 153.16.43.240 - 153.16.43.255 { 0x99102bf1, 0x99102bf1, "LISP#pcharalampou-xtr" }, // 153.16.43.241 - 153.16.43.241 { 0x99102bf2, 0x99102bf2, "LISP#pcharalampou-xtr" }, // 153.16.43.242 - 153.16.43.242 { 0x99102c00, 0x99102c0f, "LISP#tetaneutral-xtr" }, // 153.16.44.0 - 153.16.44.15 { 0x99102c10, 0x99102c1f, "LISP#korpo-tp-xtr" }, // 153.16.44.16 - 153.16.44.31 { 0x99102c20, 0x99102c2f, "LISP#mbosecki-xtr" }, // 153.16.44.32 - 153.16.44.47 { 0x99102c30, 0x99102c3f, "LISP#moreas-xtr" }, // 153.16.44.48 - 153.16.44.63 { 0x99102c40, 0x99102c4f, "LISP#planete-xtr" }, // 153.16.44.64 - 153.16.44.79 { 0x99102c50, 0x99102c5f, "LISP#giheron-xtr" }, // 153.16.44.80 - 153.16.44.95 { 0x99102c60, 0x99102c6f, "LISP#antoine-xtr" }, // 153.16.44.96 - 153.16.44.111 { 0x99102c70, 0x99102c7f, "LISP#uniroma-xtr" }, // 153.16.44.112 - 153.16.44.127 { 0x99102c80, 0x99102c8f, "LISP#jjstevens-xtr" }, // 153.16.44.128 - 153.16.44.143 { 0x99102c90, 0x99102c9f, "LISP#lukasm-xtr" }, // 153.16.44.144 - 153.16.44.159 { 0x99102ca0, 0x99102caf, "LISP#atle-xtr" }, // 153.16.44.160 - 153.16.44.175 { 0x99102cc0, 0x99102ccf, "LISP#geert-xtr" }, // 153.16.44.192 - 153.16.44.207 { 0x99102cd0, 0x99102cdf, "LISP#zilina-xtr" }, // 153.16.44.208 - 153.16.44.223 { 0x99102ce0, 0x99102cef, "LISP#chrisgray-xtr" }, // 153.16.44.224 - 153.16.44.239 { 0x99102d00, 0x99102d0f, "LISP#ch-marcel-xtr" }, // 153.16.45.0 - 153.16.45.15 { 0x99102d10, 0x99102d1f, "LISP#uaveiro-xtr" }, // 153.16.45.16 - 153.16.45.31 { 0x99102d20, 0x99102d2f, "LISP#caspary-xtr" }, // 153.16.45.32 - 153.16.45.47 { 0x99102d30, 0x99102d3f, "LISP#maxried-xtr" }, // 153.16.45.48 - 153.16.45.63 { 0x99102d40, 0x99102d4f, "LISP#yun-xtr" }, // 153.16.45.64 - 153.16.45.79 { 0x99102d50, 0x99102d5f, "LISP#tietze-xtr" }, // 153.16.45.80 - 153.16.45.95 { 0x99102d60, 0x99102d6f, "LISP#jkuhn-xtr" }, // 153.16.45.96 - 153.16.45.111 { 0x99102d70, 0x99102d7f, "LISP#a1-telekom-xtr" }, // 153.16.45.112 - 153.16.45.127 { 0x99102d80, 0x99102d8f, "LISP#renne-xtr" }, // 153.16.45.128 - 153.16.45.143 { 0x99102d90, 0x99102d9f, "LISP#mblokzij-pi-xtr" }, // 153.16.45.144 - 153.16.45.159 { 0x99102da0, 0x99102daf, "LISP#lueers-xtr" }, // 153.16.45.160 - 153.16.45.175 { 0x99102db0, 0x99102dbf, "LISP#hkoerth-xtr" }, // 153.16.45.176 - 153.16.45.191 { 0x99102dc0, 0x99102dcf, "LISP#nclark-xtr" }, // 153.16.45.192 - 153.16.45.207 { 0x99102dd0, 0x99102ddf, "LISP#teridion-xtr" }, // 153.16.45.208 - 153.16.45.223 { 0x99102de0, 0x99102def, "LISP#mgrabner-xtr" }, // 153.16.45.224 - 153.16.45.239 { 0x99102df0, 0x99102dff, "LISP#albring-xtr" }, // 153.16.45.240 - 153.16.45.255 { 0x99102e00, 0x99102eff, "LISP#mcenteme-xtr" }, // 153.16.46.0 - 153.16.46.255 { 0x99102f00, 0x99102f0f, "LISP#mblokzij-xtr" }, // 153.16.47.0 - 153.16.47.15 { 0x99102f10, 0x99102f1f, "LISP#ataf-xtr" }, // 153.16.47.16 - 153.16.47.31 { 0x99102f20, 0x99102f2f, "LISP#adittman-xtr" }, // 153.16.47.32 - 153.16.47.47 { 0x99102f30, 0x99102f3f, "LISP#runar-xtr" }, // 153.16.47.48 - 153.16.47.63 { 0x99102f40, 0x99102f4f, "LISP#iceland-xtr" }, // 153.16.47.64 - 153.16.47.79 { 0x99102f50, 0x99102f5f, "LISP#raabo-xtr" }, // 153.16.47.80 - 153.16.47.95 { 0x99102f60, 0x99102f6f, "LISP#alex-xtr" }, // 153.16.47.96 - 153.16.47.111 { 0x99102f70, 0x99102f7f, "LISP#francesco-xtr" }, // 153.16.47.112 - 153.16.47.127 { 0x99102f80, 0x99102f8f, "LISP#fraunhofer-igd-xtr" }, // 153.16.47.128 - 153.16.47.143 { 0x99102fa0, 0x99102fbf, "LISP#smirnov-xtr" }, // 153.16.47.160 - 153.16.47.191 { 0x99102fc0, 0x99102fcf, "LISP#cegal-xtr" }, // 153.16.47.192 - 153.16.47.207 { 0x99102fd0, 0x99102fdf, "LISP#gloudemans-xtr" }, // 153.16.47.208 - 153.16.47.223 { 0x99102fe0, 0x99102fef, "LISP#claes-xtr" }, // 153.16.47.224 - 153.16.47.239 { 0x99102ff0, 0x99102fff, "LISP#hu-uasu-xtr" }, // 153.16.47.240 - 153.16.47.255 { 0x99103000, 0x9910300f, "LISP#umurcia-1-xtr" }, // 153.16.48.0 - 153.16.48.15 { 0x99103010, 0x9910301f, "LISP#umurcia-2-xtr" }, // 153.16.48.16 - 153.16.48.31 { 0x99103020, 0x9910302f, "LISP#umurcia-3-xtr" }, // 153.16.48.32 - 153.16.48.47 { 0x99103030, 0x9910303f, "LISP#hauschild-xtr" }, // 153.16.48.48 - 153.16.48.63 { 0x99103040, 0x9910304f, "LISP#cat6k-demo-uk" }, // 153.16.48.64 - 153.16.48.79 { 0x99103050, 0x9910305f, "LISP#roel-xtr" }, // 153.16.48.80 - 153.16.48.95 { 0x99103060, 0x9910306f, "LISP#clemens-xtr" }, // 153.16.48.96 - 153.16.48.111 { 0x99103070, 0x9910307f, "LISP#fit-xtr" }, // 153.16.48.112 - 153.16.48.127 { 0x99103080, 0x9910308f, "LISP#level-it-xtr" }, // 153.16.48.128 - 153.16.48.143 { 0x99103090, 0x9910309f, "LISP#AVM01-xtr" }, // 153.16.48.144 - 153.16.48.159 { 0x991030a0, 0x991030af, "LISP#AVM02-xtr" }, // 153.16.48.160 - 153.16.48.175 { 0x991030b0, 0x991030bf, "LISP#AVM03-xtr" }, // 153.16.48.176 - 153.16.48.191 { 0x991030c0, 0x991030cf, "LISP#AVM04-xtr" }, // 153.16.48.192 - 153.16.48.207 { 0x991030d0, 0x991030df, "LISP#AVM05-xtr" }, // 153.16.48.208 - 153.16.48.223 { 0x991030e0, 0x991030ef, "LISP#AVM06-xtr" }, // 153.16.48.224 - 153.16.48.239 { 0x991030f0, 0x991030ff, "LISP#AVM07-xtr" }, // 153.16.48.240 - 153.16.48.255 { 0x99103100, 0x9910310f, "LISP#AVM08-xtr" }, // 153.16.49.0 - 153.16.49.15 { 0x99103110, 0x9910311f, "LISP#AVM09-xtr" }, // 153.16.49.16 - 153.16.49.31 { 0x99103120, 0x9910312f, "LISP#vz-niko-ch" }, // 153.16.49.32 - 153.16.49.47 { 0x99103130, 0x9910313f, "LISP#dipesh-xtr" }, // 153.16.49.48 - 153.16.49.63 { 0x99103140, 0x9910314f, "LISP#quenzer-xtr" }, // 153.16.49.64 - 153.16.49.79 { 0x99103150, 0x9910315f, "LISP#turnerhouse-xtr" }, // 153.16.49.80 - 153.16.49.95 { 0x99103160, 0x9910316f, "LISP#lhsystems-xtr" }, // 153.16.49.96 - 153.16.49.111 { 0x99103170, 0x9910317f, "LISP#coudron-xtr" }, // 153.16.49.112 - 153.16.49.127 { 0x99103180, 0x9910318f, "LISP#hubers-xtr" }, // 153.16.49.128 - 153.16.49.143 { 0x99103190, 0x9910319f, "LISP#woellhaf-xtr" }, // 153.16.49.144 - 153.16.49.159 { 0x991031a0, 0x991031af, "LISP#damjan-xtr" }, // 153.16.49.160 - 153.16.49.175 { 0x991031b0, 0x991031bf, "LISP#leander-xtr" }, // 153.16.49.176 - 153.16.49.191 { 0x991031c0, 0x991031cf, "LISP#nikolay-xtr" }, // 153.16.49.192 - 153.16.49.207 { 0x991031d0, 0x991031df, "LISP#moritz-xtr" }, // 153.16.49.208 - 153.16.49.223 { 0x991031e0, 0x991031ef, "LISP#skonecki-xtr" }, // 153.16.49.224 - 153.16.49.239 { 0x991031f0, 0x991031ff, "LISP#thoene-xtr" }, // 153.16.49.240 - 153.16.49.255 { 0x99103200, 0x9910320f, "LISP#lori-xtr" }, // 153.16.50.0 - 153.16.50.15 { 0x99103210, 0x9910321f, "LISP#reitz-xtr" }, // 153.16.50.16 - 153.16.50.31 { 0x99103220, 0x9910322f, "LISP#jerome-xtr" }, // 153.16.50.32 - 153.16.50.47 { 0x99103230, 0x9910323f, "LISP#netcloud-xtr" }, // 153.16.50.48 - 153.16.50.63 { 0x99103240, 0x9910324f, "LISP#dschulz-xtr" }, // 153.16.50.64 - 153.16.50.79 { 0x99103250, 0x9910325f, "LISP#atea-xtr" }, // 153.16.50.80 - 153.16.50.95 { 0x99103260, 0x9910326f, "LISP#atea2-xtr" }, // 153.16.50.96 - 153.16.50.111 { 0x99103270, 0x9910327f, "LISP#cschmidt-xtr" }, // 153.16.50.112 - 153.16.50.127 { 0x99103280, 0x9910328f, "LISP#eantc-xtr" }, // 153.16.50.128 - 153.16.50.143 { 0x99103290, 0x9910329f, "LISP#sleiweke-xtr" }, // 153.16.50.144 - 153.16.50.159 { 0x991032a0, 0x991032af, "LISP#marcel-xtr" }, // 153.16.50.160 - 153.16.50.175 { 0x991032b0, 0x991032bf, "LISP#goudswaard-xtr" }, // 153.16.50.176 - 153.16.50.191 { 0x991032c0, 0x991032cf, "LISP#axel-xtr" }, // 153.16.50.192 - 153.16.50.207 { 0x991032d0, 0x991032df, "LISP#trieb-xtr" }, // 153.16.50.208 - 153.16.50.223 { 0x991032e0, 0x991032ef, "LISP#strasser-xtr" }, // 153.16.50.224 - 153.16.50.239 { 0x991032f0, 0x991032ff, "LISP#haase-xtr" }, // 153.16.50.240 - 153.16.50.255 { 0x99103300, 0x9910330f, "LISP#hendrickx-xtr" }, // 153.16.51.0 - 153.16.51.15 { 0x99103310, 0x9910331f, "LISP#keronet-xtr" }, // 153.16.51.16 - 153.16.51.31 { 0x99103320, 0x9910332f, "LISP#sarton-xtr" }, // 153.16.51.32 - 153.16.51.47 { 0x99103330, 0x9910333f, "LISP#nattrav-test" }, // 153.16.51.48 - 153.16.51.63 { 0x99103340, 0x9910334f, "LISP#ermidoro-xtr" }, // 153.16.51.64 - 153.16.51.79 { 0x99103350, 0x9910335f, "LISP#scv-xtr" }, // 153.16.51.80 - 153.16.51.95 { 0x99103360, 0x9910336f, "LISP#rjm-xtr" }, // 153.16.51.96 - 153.16.51.111 { 0x99103370, 0x9910337f, "LISP#answanso-xtr" }, // 153.16.51.112 - 153.16.51.127 { 0x99103380, 0x9910338f, "LISP#strehhuber-xtr" }, // 153.16.51.128 - 153.16.51.143 { 0x99103390, 0x9910339f, "LISP#hintermayr-xtr" }, // 153.16.51.144 - 153.16.51.159 { 0x991033a0, 0x991033af, "LISP#gruber-xtr" }, // 153.16.51.160 - 153.16.51.175 { 0x991033b0, 0x991033bf, "LISP#boardrunner-xtr" }, // 153.16.51.176 - 153.16.51.191 { 0x991033c0, 0x991033cf, "LISP#adwin-xtr" }, // 153.16.51.192 - 153.16.51.207 { 0x991033d0, 0x991033df, "LISP#bartschnet-xtr" }, // 153.16.51.208 - 153.16.51.223 { 0x991033e0, 0x991033ef, "LISP#netgaroo-xtr" }, // 153.16.51.224 - 153.16.51.239 { 0x991033f0, 0x991033ff, "LISP#gensonline-xtr" }, // 153.16.51.240 - 153.16.51.255 { 0x99103400, 0x9910347f, "LISP#nuage-lisp-xtr" }, // 153.16.52.0 - 153.16.52.127 { 0x99103480, 0x9910348f, "LISP#kmartini-xtr" }, // 153.16.52.128 - 153.16.52.143 { 0x99103490, 0x9910349f, "LISP#hs-fulda-xtr" }, // 153.16.52.144 - 153.16.52.159 { 0x991034a0, 0x991034af, "LISP#datenschleuder-xtr" }, // 153.16.52.160 - 153.16.52.175 { 0x991034b0, 0x991034bf, "LISP#airmaxx-xtr" }, // 153.16.52.176 - 153.16.52.191 { 0x991034c0, 0x991034cf, "LISP#kewisch-xtr" }, // 153.16.52.192 - 153.16.52.207 { 0x991034d0, 0x991034df, "LISP#cybernet-xtr" }, // 153.16.52.208 - 153.16.52.223 { 0x991034e0, 0x991034ef, "LISP#krzbia-xtr" }, // 153.16.52.224 - 153.16.52.239 { 0x991034f0, 0x991034ff, "LISP#twarwick-xtr" }, // 153.16.52.240 - 153.16.52.255 { 0x99103500, 0x9910350f, "LISP#fuhge-xtr" }, // 153.16.53.0 - 153.16.53.15 { 0x99103510, 0x9910351f, "LISP#isah-xtr" }, // 153.16.53.16 - 153.16.53.31 { 0x99103520, 0x9910352f, "LISP#lovison-xtr" }, // 153.16.53.32 - 153.16.53.47 { 0x99103530, 0x9910353f, "LISP#jens-xtr" }, // 153.16.53.48 - 153.16.53.63 { 0x99103540, 0x9910354f, "LISP#naundorf-xtr" }, // 153.16.53.64 - 153.16.53.79 { 0x99103550, 0x9910355f, "LISP#leon-xtr" }, // 153.16.53.80 - 153.16.53.95 { 0x99103560, 0x9910356f, "LISP#orottler-xtr" }, // 153.16.53.96 - 153.16.53.111 { 0x99103570, 0x9910357f, "LISP#gschell-xtr" }, // 153.16.53.112 - 153.16.53.127 { 0x99103580, 0x9910358f, "LISP#x10103-xtr" }, // 153.16.53.128 - 153.16.53.143 { 0x99103590, 0x9910359f, "LISP#iname-xtr" }, // 153.16.53.144 - 153.16.53.159 { 0x991035a0, 0x991035af, "LISP#aflorio-cz-xtr" }, // 153.16.53.160 - 153.16.53.175 { 0x991035b0, 0x991035bf, "LISP#jps-networks-xtr" }, // 153.16.53.176 - 153.16.53.191 { 0x991035c0, 0x991035cf, "LISP#mamouni-xtr" }, // 153.16.53.192 - 153.16.53.207 { 0x991035d0, 0x991035df, "LISP#hakkarainen-xtr" }, // 153.16.53.208 - 153.16.53.223 { 0x991035e0, 0x991035ef, "LISP#posteo-xtr" }, // 153.16.53.224 - 153.16.53.239 { 0x991035f0, 0x991035ff, "LISP#pierson-xtr" }, // 153.16.53.240 - 153.16.53.255 { 0x99103600, 0x9910360f, "LISP#hulsmann-xtr" }, // 153.16.54.0 - 153.16.54.15 { 0x99103610, 0x9910361f, "LISP#mdavids-xtr" }, // 153.16.54.16 - 153.16.54.31 { 0x99103620, 0x9910362f, "LISP#erikbent-xtr" }, // 153.16.54.32 - 153.16.54.47 { 0x99103630, 0x9910363f, "LISP#polimi-xtr" }, // 153.16.54.48 - 153.16.54.63 { 0x99103640, 0x9910364f, "LISP#panix-xtr" }, // 153.16.54.64 - 153.16.54.79 { 0x99103650, 0x9910365f, "LISP#glindhart-xtr" }, // 153.16.54.80 - 153.16.54.95 { 0x99103660, 0x9910366f, "LISP#dimensiondata-xtr" }, // 153.16.54.96 - 153.16.54.111 { 0x99103670, 0x9910367f, "LISP#pcforce-xtr" }, // 153.16.54.112 - 153.16.54.127 { 0x99103680, 0x9910368f, "LISP#plotnicu-xtr" }, // 153.16.54.128 - 153.16.54.143 { 0x99103690, 0x9910369f, "LISP#zimperfeld-xtr" }, // 153.16.54.144 - 153.16.54.159 { 0x991036a0, 0x991036af, "LISP#aflorio-it-xtr" }, // 153.16.54.160 - 153.16.54.175 { 0x991036b0, 0x991036bf, "LISP#vanlid-xtr" }, // 153.16.54.176 - 153.16.54.191 { 0x991036c0, 0x991036cf, "LISP#kohlstedde-xtr" }, // 153.16.54.192 - 153.16.54.207 { 0x991036d0, 0x991036df, "LISP#wiegleb-xtr" }, // 153.16.54.208 - 153.16.54.223 { 0x991036e0, 0x991036ef, "LISP#dirks-xtr" }, // 153.16.54.224 - 153.16.54.239 { 0x991036f0, 0x991036ff, "LISP#cbursch-xtr" }, // 153.16.54.240 - 153.16.54.255 { 0x99103700, 0x9910370f, "LISP#vz-niko-ge" }, // 153.16.55.0 - 153.16.55.15 { 0x99103710, 0x9910371f, "LISP#vz-niko-de" }, // 153.16.55.16 - 153.16.55.31 { 0x99103720, 0x9910372f, "LISP#voos-xtr" }, // 153.16.55.32 - 153.16.55.47 { 0x99103730, 0x9910373f, "LISP#plominski-xtr" }, // 153.16.55.48 - 153.16.55.63 { 0x99103740, 0x9910374f, "LISP#eison-xtr" }, // 153.16.55.64 - 153.16.55.79 { 0x99103750, 0x9910375f, "LISP#a1-telekom2-xtr" }, // 153.16.55.80 - 153.16.55.95 { 0x99103770, 0x9910377f, "LISP#nord-west-xtr" }, // 153.16.55.112 - 153.16.55.127 { 0x99103790, 0x9910379f, "LISP#frank-xtr" }, // 153.16.55.144 - 153.16.55.159 { 0x991037b0, 0x991037bf, "LISP#uni-obuda-xtr" }, // 153.16.55.176 - 153.16.55.191 { 0x991037c0, 0x991037cf, "LISP#raiffeisen-hu-xtr" }, // 153.16.55.192 - 153.16.55.207 { 0x991037d0, 0x991037df, "LISP#dev252-xtr" }, // 153.16.55.208 - 153.16.55.223 { 0x991037e0, 0x991037ef, "LISP#smit-hague-xtr" }, // 153.16.55.224 - 153.16.55.239 { 0x991037f0, 0x991037ff, "LISP#gierschner-xtr" }, // 153.16.55.240 - 153.16.55.255 { 0x99103800, 0x9910380f, "LISP#lukasm2-xtr" }, // 153.16.56.0 - 153.16.56.15 { 0x99103810, 0x9910381f, "LISP#sacherer-xtr" }, // 153.16.56.16 - 153.16.56.31 { 0x99103820, 0x9910382f, "LISP#gunis-xtr" }, // 153.16.56.32 - 153.16.56.47 { 0x99103830, 0x9910383f, "LISP#hilger-xtr" }, // 153.16.56.48 - 153.16.56.63 { 0x99103840, 0x9910384f, "LISP#schad-xtr" }, // 153.16.56.64 - 153.16.56.79 { 0x99103850, 0x9910385f, "LISP#hagenhoff-xtr" }, // 153.16.56.80 - 153.16.56.95 { 0x99103870, 0x9910387f, "LISP#ibm-gr-xtr" }, // 153.16.56.112 - 153.16.56.127 { 0x99103890, 0x9910389f, "LISP#coldharbour-xtr" }, // 153.16.56.144 - 153.16.56.159 { 0x991038b0, 0x991038bf, "LISP#bach-xtr" }, // 153.16.56.176 - 153.16.56.191 { 0x991038c0, 0x991038cf, "LISP#jschmidle-xtr" }, // 153.16.56.192 - 153.16.56.207 { 0x991038d0, 0x991038df, "LISP#zilina2-xtr" }, // 153.16.56.208 - 153.16.56.223 { 0x991038e0, 0x991038ef, "LISP#dogscafe-xtr" }, // 153.16.56.224 - 153.16.56.239 { 0x991038f0, 0x991038ff, "LISP#mgliwka-xtr" }, // 153.16.56.240 - 153.16.56.255 { 0x99103900, 0x9910390f, "LISP#krunal-eu-xtr" }, // 153.16.57.0 - 153.16.57.15 { 0x99103910, 0x9910391f, "LISP#cstephens-xtr-1" }, // 153.16.57.16 - 153.16.57.31 { 0x99103920, 0x9910392f, "LISP#demierre-xtr" }, // 153.16.57.32 - 153.16.57.47 { 0x99103930, 0x9910393f, "LISP#somogyvari-xtr" }, // 153.16.57.48 - 153.16.57.63 { 0x99103940, 0x9910394f, "LISP#spisati-xtr" }, // 153.16.57.64 - 153.16.57.79 { 0x99103950, 0x9910395f, "LISP#tao-networks-xtr" }, // 153.16.57.80 - 153.16.57.95 { 0x99103960, 0x9910396f, "LISP#willekens-xtr" }, // 153.16.57.96 - 153.16.57.111 { 0x99103970, 0x9910397f, "LISP#jclayton-xtr" }, // 153.16.57.112 - 153.16.57.127 { 0x99103980, 0x9910398f, "LISP#niek-xtr" }, // 153.16.57.128 - 153.16.57.143 { 0x99103990, 0x9910399f, "LISP#mbar-xtr" }, // 153.16.57.144 - 153.16.57.159 { 0x991039b0, 0x991039bf, "LISP#lsd-xtr" }, // 153.16.57.176 - 153.16.57.191 { 0x991039c0, 0x991039cf, "LISP#rfurda-xtr" }, // 153.16.57.192 - 153.16.57.207 { 0x991039d0, 0x991039df, "LISP#gmaricau-xtr" }, // 153.16.57.208 - 153.16.57.223 { 0x991039f0, 0x991039ff, "LISP#dzeitler-xtr" }, // 153.16.57.240 - 153.16.57.255 { 0x99103a00, 0x99103a0f, "LISP#garndt-xtr" }, // 153.16.58.0 - 153.16.58.15 { 0x99103a10, 0x99103a1f, "LISP#jpreuss-xtr" }, // 153.16.58.16 - 153.16.58.31 { 0x99103a20, 0x99103a2f, "LISP#smondwurf-xtr" }, // 153.16.58.32 - 153.16.58.47 { 0x99103a30, 0x99103a3f, "LISP#tbonitz-xtr" }, // 153.16.58.48 - 153.16.58.63 { 0x99103a40, 0x99103a4f, "LISP#cisco-natal1-xtr" }, // 153.16.58.64 - 153.16.58.79 { 0x99103a50, 0x99103a5f, "LISP#cglasmeyer-xtr" }, // 153.16.58.80 - 153.16.58.95 { 0x99103a60, 0x99103a6f, "LISP#rengel-xtr" }, // 153.16.58.96 - 153.16.58.111 { 0x99103a70, 0x99103a7f, "LISP#hgojny-xtr" }, // 153.16.58.112 - 153.16.58.127 { 0x99103a80, 0x99103a8f, "LISP#rkohn-xtr" }, // 153.16.58.128 - 153.16.58.143 { 0x99103a90, 0x99103a9f, "LISP#jpkoegeler-xtr" }, // 153.16.58.144 - 153.16.58.159 { 0x99103ab0, 0x99103abf, "LISP#gniederwimmer-xtr" }, // 153.16.58.176 - 153.16.58.191 { 0x99103ad0, 0x99103adf, "LISP#mmikulenas-xtr" }, // 153.16.58.208 - 153.16.58.223 { 0x99103ae0, 0x99103aef, "LISP#cbretterhofer-xtr" }, // 153.16.58.224 - 153.16.58.239 { 0x99103af0, 0x99103aff, "LISP#mgoebel-xtr" }, // 153.16.58.240 - 153.16.58.255 { 0x99103b00, 0x99103b0f, "LISP#bmorcinkowski-xtr" }, // 153.16.59.0 - 153.16.59.15 { 0x99103b10, 0x99103b1f, "LISP#jbaumann-xtr" }, // 153.16.59.16 - 153.16.59.31 { 0x99103b20, 0x99103b2f, "LISP#mfey-xtr" }, // 153.16.59.32 - 153.16.59.47 { 0x99103b30, 0x99103b3f, "LISP#mmuller-xtr" }, // 153.16.59.48 - 153.16.59.63 { 0x99103b40, 0x99103b4f, "LISP#rjud-xtr" }, // 153.16.59.64 - 153.16.59.79 { 0x99103b50, 0x99103b5f, "LISP#theinz-xtr" }, // 153.16.59.80 - 153.16.59.95 { 0x99103b60, 0x99103b6f, "LISP#fzahn-xtr" }, // 153.16.59.96 - 153.16.59.111 { 0x99103b70, 0x99103b7f, "LISP#ahugi-xtr" }, // 153.16.59.112 - 153.16.59.127 { 0x99103b80, 0x99103b8f, "LISP#niekvanderven-xtr" }, // 153.16.59.128 - 153.16.59.143 { 0x99103b90, 0x99103b9f, "LISP#jdechert-xtr" }, // 153.16.59.144 - 153.16.59.159 { 0x99103bb0, 0x99103bbf, "LISP#crothlander-xtr" }, // 153.16.59.176 - 153.16.59.191 { 0x99103bd0, 0x99103bdf, "LISP#wvanlid-xtr" }, // 153.16.59.208 - 153.16.59.223 { 0x99103be0, 0x99103bef, "LISP#upc-oor-xtr" }, // 153.16.59.224 - 153.16.59.239 { 0x99103c00, 0x99103c0f, "LISP#tivano-software-xtr" }, // 153.16.60.0 - 153.16.60.15 { 0x99103c10, 0x99103c1f, "LISP#ngunther-xtr" }, // 153.16.60.16 - 153.16.60.31 { 0x99103c20, 0x99103c2f, "LISP#gthor-xtr" }, // 153.16.60.32 - 153.16.60.47 { 0x99103c30, 0x99103c3f, "LISP#wonken-xtr" }, // 153.16.60.48 - 153.16.60.63 { 0x99103c50, 0x99103c5f, "LISP#tzapala-xtr" }, // 153.16.60.80 - 153.16.60.95 { 0x99103c60, 0x99103c6f, "LISP#rmller-xtr" }, // 153.16.60.96 - 153.16.60.111 { 0x99103c80, 0x99103c8f, "LISP#feul-xtr" }, // 153.16.60.128 - 153.16.60.143 { 0x99103c90, 0x99103c9f, "LISP#asunnetci-xtr" }, // 153.16.60.144 - 153.16.60.159 { 0x99103cc0, 0x99103ccf, "LISP#dfett-xtr" }, // 153.16.60.192 - 153.16.60.207 { 0x99103cd0, 0x99103cdf, "LISP#mklingspor-xtr" }, // 153.16.60.208 - 153.16.60.223 { 0x99103ce0, 0x99103cef, "LISP#gsanjay-xtr" }, // 153.16.60.224 - 153.16.60.239 { 0x99103cf0, 0x99103cff, "LISP#tkoch-xtr" }, // 153.16.60.240 - 153.16.60.255 { 0x99103d00, 0x99103d0f, "LISP#hrenz-xtr" }, // 153.16.61.0 - 153.16.61.15 { 0x99103d10, 0x99103d1f, "LISP#blawall-xtr" }, // 153.16.61.16 - 153.16.61.31 { 0x99103d20, 0x99103d2f, "LISP#unitbv-xtr" }, // 153.16.61.32 - 153.16.61.47 { 0x99103d30, 0x99103d3f, "LISP#hketele-xtr" }, // 153.16.61.48 - 153.16.61.63 { 0x99103d40, 0x99103d4f, "LISP#rdchragner-xtr" }, // 153.16.61.64 - 153.16.61.79 { 0x99103d50, 0x99103d5f, "LISP#mamin-xtr" }, // 153.16.61.80 - 153.16.61.95 { 0x99103d70, 0x99103d7f, "LISP#twittenberg-xtr" }, // 153.16.61.112 - 153.16.61.127 { 0x99103d80, 0x99103d8f, "LISP#bwieder-xtr" }, // 153.16.61.128 - 153.16.61.143 { 0x99103d90, 0x99103d9f, "LISP#sbethge-xtr" }, // 153.16.61.144 - 153.16.61.159 { 0x99103db0, 0x99103dbf, "LISP#jdornauf-xtr" }, // 153.16.61.176 - 153.16.61.191 { 0x99103dd0, 0x99103ddf, "LISP#mmiller-xtr" }, // 153.16.61.208 - 153.16.61.223 { 0x99103de0, 0x99103def, "LISP#cfertig-xtr" }, // 153.16.61.224 - 153.16.61.239 { 0x99103df0, 0x99103dff, "LISP#jkatolla-xtr" }, // 153.16.61.240 - 153.16.61.255 { 0x99103e00, 0x99103e0f, "LISP#freenet-xtr" }, // 153.16.62.0 - 153.16.62.15 { 0x99103e10, 0x99103e1f, "LISP#nweissbach-xtr" }, // 153.16.62.16 - 153.16.62.31 { 0x99103e20, 0x99103e2f, "LISP#owas-xtr" }, // 153.16.62.32 - 153.16.62.47 { 0x99103e30, 0x99103e3f, "LISP#rspickers-xtr" }, // 153.16.62.48 - 153.16.62.63 { 0x99103e40, 0x99103e4f, "LISP#pcech-xtr" }, // 153.16.62.64 - 153.16.62.79 { 0x99103e50, 0x99103e5f, "LISP#cpalm-xtr" }, // 153.16.62.80 - 153.16.62.95 { 0x99103e60, 0x99103e6f, "LISP#asellmann-xtr" }, // 153.16.62.96 - 153.16.62.111 { 0x99103e70, 0x99103e7f, "LISP#mluckert-xtr" }, // 153.16.62.112 - 153.16.62.127 { 0x99103e80, 0x99103e8f, "LISP#tzimmermann-xtr" }, // 153.16.62.128 - 153.16.62.143 { 0x99103e90, 0x99103e9f, "LISP#dpeshev-xtr" }, // 153.16.62.144 - 153.16.62.159 { 0x99103f01, 0x99103f01, "LISP#lispmon-mn-u-1" }, // 153.16.63.1 - 153.16.63.1 { 0x99103f02, 0x99103f02, "LISP#lispmob-mn-u-2" }, // 153.16.63.2 - 153.16.63.2 { 0x99104000, 0x991040ff, "LISP#iij-xtr" }, // 153.16.64.0 - 153.16.64.255 { 0x99104100, 0x991041ff, "LISP#hughes-xtr" }, // 153.16.65.0 - 153.16.65.255 { 0x99104200, 0x9910420f, "LISP#ntt-com-xtr" }, // 153.16.66.0 - 153.16.66.15 { 0x99104210, 0x9910421f, "LISP#kddi-labs-xtr" }, // 153.16.66.16 - 153.16.66.31 { 0x99104220, 0x9910422f, "LISP#tata-xtr" }, // 153.16.66.32 - 153.16.66.47 { 0x99104230, 0x9910423f, "LISP#jiwang-xtr" }, // 153.16.66.48 - 153.16.66.63 { 0x99104240, 0x9910424f, "LISP#layim-xtr" }, // 153.16.66.64 - 153.16.66.79 { 0x99104250, 0x9910425f, "LISP#cfwong-xtr" }, // 153.16.66.80 - 153.16.66.95 { 0x99104260, 0x9910426f, "LISP#logicalis-xtr" }, // 153.16.66.96 - 153.16.66.111 { 0x99104270, 0x9910427f, "LISP#cht-xtr" }, // 153.16.66.112 - 153.16.66.127 { 0x99104280, 0x9910428f, "LISP#oasis-tech-xtr" }, // 153.16.66.128 - 153.16.66.143 { 0x99104290, 0x9910429f, "LISP#mingchow-xtr" }, // 153.16.66.144 - 153.16.66.159 { 0x991042a0, 0x991042af, "LISP#jiwang2-xtr" }, // 153.16.66.160 - 153.16.66.175 { 0x991042b0, 0x991042bf, "LISP#fnsc-xtr" }, // 153.16.66.176 - 153.16.66.191 { 0x991042c0, 0x991042cf, "LISP#matsumoto-xtr" }, // 153.16.66.192 - 153.16.66.207 { 0x991042d0, 0x991042df, "LISP#vhan-xtr" }, // 153.16.66.208 - 153.16.66.223 { 0x991042e0, 0x991042ef, "LISP#alphawest-xtr" }, // 153.16.66.224 - 153.16.66.239 { 0x991042f0, 0x991042ff, "LISP#mra4d-xtr" }, // 153.16.66.240 - 153.16.66.255 { 0x99104300, 0x991043ff, "LISP#apan-xtr" }, // 153.16.67.0 - 153.16.67.255 { 0x99104400, 0x991044ff, "LISP#wide-xtr" }, // 153.16.68.0 - 153.16.68.255 { 0x99104500, 0x991045ff, "LISP#nagoya-u-xtr" }, // 153.16.69.0 - 153.16.69.255 { 0x99104600, 0x9910460f, "LISP#yuyarin-xtr" }, // 153.16.70.0 - 153.16.70.15 { 0x99104610, 0x9910461f, "LISP#uet-vnu-xtr" }, // 153.16.70.16 - 153.16.70.31 { 0x99104620, 0x9910462f, "LISP#pccw-xtr" }, // 153.16.70.32 - 153.16.70.47 { 0x99104630, 0x9910463f, "LISP#fitac-xtr" }, // 153.16.70.48 - 153.16.70.63 { 0x99104640, 0x9910465f, "LISP#daniel-xtr-1" }, // 153.16.70.64 - 153.16.70.95 { 0x99104660, 0x9910466f, "LISP#daniel-xtr-2" }, // 153.16.70.96 - 153.16.70.111 { 0x99104670, 0x9910467f, "LISP#daniel-xtr-3" }, // 153.16.70.112 - 153.16.70.127 { 0x99104690, 0x9910469f, "LISP#pgear-xtr" }, // 153.16.70.144 - 153.16.70.159 { 0x991046a0, 0x991046af, "LISP#hongang-xtr" }, // 153.16.70.160 - 153.16.70.175 { 0x991046b0, 0x991046bf, "LISP#chaney-xtr" }, // 153.16.70.176 - 153.16.70.191 { 0x991046c0, 0x991046cf, "LISP#kozuka-xtr" }, // 153.16.70.192 - 153.16.70.207 { 0x991046d0, 0x991046df, "LISP#nattrav-test-apnic" }, // 153.16.70.208 - 153.16.70.223 { 0x991046f0, 0x991046ff, "LISP#ydpark-xtr" }, // 153.16.70.240 - 153.16.70.255 { 0x99104700, 0x9910470f, "LISP#farhadsh-xtr" }, // 153.16.71.0 - 153.16.71.15 { 0x99104710, 0x9910471f, "LISP#hawthorne-xtr" }, // 153.16.71.16 - 153.16.71.31 { 0x99104720, 0x9910472f, "LISP#hyunsoo-xtr" }, // 153.16.71.32 - 153.16.71.47 { 0x99104730, 0x9910473f, "LISP#ykenu-xtr" }, // 153.16.71.48 - 153.16.71.63 { 0x99104740, 0x9910474f, "LISP#gsik-xtr" }, // 153.16.71.64 - 153.16.71.79 { 0x99104750, 0x9910475f, "LISP#yshiin-xtr" }, // 153.16.71.80 - 153.16.71.95 { 0x99104760, 0x9910476f, "LISP#tao-networks2-xtr" }, // 153.16.71.96 - 153.16.71.111 { 0x99104770, 0x9910477f, "LISP#rdines-xtr" }, // 153.16.71.112 - 153.16.71.127 { 0x99104780, 0x9910478f, "LISP#upc-oor2-xtr" }, // 153.16.71.128 - 153.16.71.143 { 0x99104790, 0x9910479f, "LISP#ietf100-xtr" }, // 153.16.71.144 - 153.16.71.159 { 0x991047a0, 0x991047af, "LISP#sukiyaki-proj-xtr" }, // 153.16.71.160 - 153.16.71.175 { 0x991047b0, 0x991047bf, "LISP#sukiyaki2-proj-xtr" }, // 153.16.71.176 - 153.16.71.191 { 0x991047c0, 0x991047cf, "LISP#gtja-xtr" }, // 153.16.71.192 - 153.16.71.207 { 0x991047d0, 0x991047df, "LISP#hcmus-xtr" }, // 153.16.71.208 - 153.16.71.223 { 0x991047e0, 0x991047ef, "LISP#amacuz-xtr" }, // 153.16.71.224 - 153.16.71.239 { 0x991048f0, 0x991048ff, "LISP#gs9591-xtr" }, // 153.16.72.240 - 153.16.72.255 { 0x99104a00, 0x99104aff, "LISP#layim2-xtr" }, // 153.16.74.0 - 153.16.74.255 { 0x99108000, 0x9910800f, "LISP#ufba-xtr" }, // 153.16.128.0 - 153.16.128.15 }; ipv6calc-4.1.0/databases/ipv6-assignment/000077500000000000000000000000001444154247200202135ustar00rootroot00000000000000ipv6calc-4.1.0/databases/ipv6-assignment/Makefile000066400000000000000000000025431444154247200216570ustar00rootroot00000000000000# Project : ipv6calc/databases/ipv6-assignment # File : Makefile # Version : $Id: d04e4985e34b9c8a85f181592ef5add572c5fe54 $ # Copyright : 2005-2017 by Peter Bieringer # Initial copy from ../ipv4-assignment/Makefile & adaption for IPv6 by Simon Arlott # # Information: # Makefile for ipv6-assignment all: test -f dbipv6addr_assignment.h || ${MAKE} update install: echo "Nothing to do" update: echo "Generate new header file, if necessary" ../../tools/ipv6calc-registries-check-run-create.sh -6 -H -C ../../tools/ipv6calc-create-registry-list-ipv6.pl force-update: echo "Generate new header file" ../../tools/ipv6calc-registries-check-run-create.sh -u -6 -H -C ../../tools/ipv6calc-create-registry-list-ipv6.pl db: echo "Generate new db files, if necessary" ../../tools/ipv6calc-registries-check-run-create.sh -6 -B -C ../../tools/ipv6calc-create-registry-list-ipv6.pl force-db: echo "Generate new db files" ../../tools/ipv6calc-registries-check-run-create.sh -u -6 -B -C ../../tools/ipv6calc-create-registry-list-ipv6.pl updateclean: echo "Delete header file" rm -f dbipv6addr_assignment.h echo "Delete DB files" rm -f ipv6calc-external-ipv6-registry.db ipv6calc-external-ipv6-countrycode.db distclean: echo "Nothing to do" autoclean: echo "Nothing to do" clean: echo "Nothing to do" ipv6calc-4.1.0/databases/ipv6-assignment/README000066400000000000000000000001621444154247200210720ustar00rootroot00000000000000$Id: 3ece54777c1038c771dcc08d4dfc7011ced5a04c $ Use "make update" to create header file from registry data files ipv6calc-4.1.0/databases/ipv6-assignment/dbipv6addr_assignment.h000066400000000000000000001272651444154247200246560ustar00rootroot00000000000000/* * Project : ipv6calc * File : dbipv6_assignment.h * Version : $Id: 50b378572d2490dfe31f1c8d016fe2f8e75157f0 $ * Generated : 20230608-183030+0200 CEST * Data copyright: IANA ARIN RIPENCC APNIC LACNIC AFRINIC * * Information: * Additional header file for databases/lib/libipv6calc_db_wrapper_BuiltIn.c */ #include "databases/lib/libipv6calc_db_wrapper_BuiltIn.h" static const char* dbipv6addr_registry_status __attribute__ ((__unused__)) = "AFRINIC/20230608 APNIC/20230608 ARIN/20230608 IANA/20191106 LACNIC/20230607 LISP/20200318 RIPENCC/20230607"; static const time_t dbipv6addr_registry_unixtime __attribute__ ((__unused__)) = 1686241830; static const s_ipv6addr_assignment dbipv6addr_assignment[] = { //ipv6_00_31, ipv6_32_63, mask_00_31, mask_32_63, mask_length, registry { 0x20010000, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_IANA }, { 0x20010200, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_APNIC }, { 0x20010400, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_ARIN }, { 0x20010600, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_RIPENCC }, { 0x200107fa, 0x00000001, 0xffffffff, 0xffffffff, 64, REGISTRY_APNIC }, { 0x200107fa, 0x00000002, 0xffffffff, 0xffffffff, 64, REGISTRY_APNIC }, { 0x200107fa, 0x00000003, 0xffffffff, 0xffffffff, 64, REGISTRY_APNIC }, { 0x200107fa, 0x00010000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x200107fa, 0x00020000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x200107fa, 0x00030000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x200107fa, 0x00040000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x200107fa, 0x00050000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x200107fa, 0x00060000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x200107fa, 0x00070000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x200107fa, 0x00080000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x200107fa, 0x00090000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x200107fa, 0x000a0000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x200107fa, 0x000b0000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x200107fa, 0x000c0000, 0xffffffff, 0xfffe0000, 47, REGISTRY_APNIC }, { 0x200107fa, 0x000e0000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x200107fa, 0x000f0000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x200107fa, 0x00100000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x200107fa, 0x00110000, 0xffffffff, 0xffff0000, 48, REGISTRY_APNIC }, { 0x20010800, 0x00000000, 0xfffffc00, 0x00000000, 22, REGISTRY_RIPENCC }, { 0x20010c00, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_APNIC }, { 0x20010e00, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_APNIC }, { 0x20011200, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_LACNIC }, { 0x20011400, 0x00000000, 0xfffffc00, 0x00000000, 22, REGISTRY_RIPENCC }, { 0x20011800, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_ARIN }, { 0x20011a00, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_RIPENCC }, { 0x20011c00, 0x00000000, 0xfffffc00, 0x00000000, 22, REGISTRY_RIPENCC }, { 0x20012000, 0x00000000, 0xffffe000, 0x00000000, 19, REGISTRY_RIPENCC }, { 0x20014000, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_RIPENCC }, { 0x20014200, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_AFRINIC }, { 0x20014400, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_APNIC }, { 0x20014600, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_RIPENCC }, { 0x20014800, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_ARIN }, { 0x20014a00, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_RIPENCC }, { 0x20014c00, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_RIPENCC }, { 0x20015000, 0x00000000, 0xfffff000, 0x00000000, 20, REGISTRY_RIPENCC }, { 0x20018000, 0x00000000, 0xffffe000, 0x00000000, 19, REGISTRY_APNIC }, { 0x2001a000, 0x00000000, 0xfffff000, 0x00000000, 20, REGISTRY_APNIC }, { 0x2001b000, 0x00000000, 0xfffff000, 0x00000000, 20, REGISTRY_APNIC }, { 0x20020000, 0x00000000, 0xffff0000, 0x00000000, 16, REGISTRY_6TO4 }, { 0x20030000, 0x00000000, 0xffffc000, 0x00000000, 18, REGISTRY_RIPENCC }, { 0x24000000, 0x00000000, 0xfff00000, 0x00000000, 12, REGISTRY_APNIC }, { 0x26000000, 0x00000000, 0xfff00000, 0x00000000, 12, REGISTRY_ARIN }, { 0x26100000, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_ARIN }, { 0x26200000, 0x00000000, 0xfffffe00, 0x00000000, 23, REGISTRY_ARIN }, { 0x26300000, 0x00000000, 0xfff00000, 0x00000000, 12, REGISTRY_ARIN }, { 0x28000000, 0x00000000, 0xfff00000, 0x00000000, 12, REGISTRY_LACNIC }, { 0x2a000000, 0x00000000, 0xfff00000, 0x00000000, 12, REGISTRY_RIPENCC }, { 0x2a100000, 0x00000000, 0xfff00000, 0x00000000, 12, REGISTRY_RIPENCC }, { 0x2c000000, 0x00000000, 0xfff00000, 0x00000000, 12, REGISTRY_AFRINIC }, { 0x2d000000, 0x00000000, 0xff000000, 0x00000000, 8, REGISTRY_IANA }, { 0x2e000000, 0x00000000, 0xfe000000, 0x00000000, 7, REGISTRY_IANA }, { 0x30000000, 0x00000000, 0xf0000000, 0x00000000, 4, REGISTRY_IANA }, { 0x3ffe0000, 0x00000000, 0xffff0000, 0x00000000, 16, REGISTRY_IANA }, { 0x5f000000, 0x00000000, 0xff000000, 0x00000000, 8, REGISTRY_IANA }, }; static const s_ipv6addr_info dbipv6addr_info[] = { //ipv6_00_31, ipv6_32_63, mask_00_31, mask_32_63, mask_length, info { 0x261000d0, 0x11000000, 0xffffffff, 0xffff0000, 48, "LISP#asp-xtr" }, { 0x261000d0, 0x11010000, 0xffffffff, 0xffff0000, 48, "LISP#ntt-xtr" }, { 0x261000d0, 0x11020000, 0xffffffff, 0xffff0000, 48, "LISP#bell-ca-xtr" }, { 0x261000d0, 0x11030000, 0xffffffff, 0xffff0000, 48, "LISP#nyu-xtr" }, { 0x261000d0, 0x11040000, 0xffffffff, 0xffff0000, 48, "LISP#epulvino-xtr" }, { 0x261000d0, 0x11050000, 0xffffffff, 0xffff0000, 48, "LISP#asp-n7k-xtr" }, { 0x261000d0, 0x11060000, 0xffffffff, 0xffff0000, 48, "LISP#rymcdowe-xtr" }, { 0x261000d0, 0x11070000, 0xffffffff, 0xffff0000, 48, "LISP#icann-xtr" }, { 0x261000d0, 0x11080000, 0xffffffff, 0xffff0000, 48, "LISP#genworth-xtr" }, { 0x261000d0, 0x110a0000, 0xffffffff, 0xffff0000, 48, "LISP#google-xtr" }, { 0x261000d0, 0x110b0000, 0xffffffff, 0xffff0000, 48, "LISP#manhoo-xtr" }, { 0x261000d0, 0x110c0000, 0xffffffff, 0xffff0000, 48, "LISP#cisco-it-xtr" }, { 0x261000d0, 0x110d0000, 0xffffffff, 0xffff0000, 48, "LISP#miles-xtr" }, { 0x261000d0, 0x110e0000, 0xffffffff, 0xffff0000, 48, "LISP#smith-xtr" }, { 0x261000d0, 0x110f0000, 0xffffffff, 0xffff0000, 48, "LISP#mikea-xtr" }, { 0x261000d0, 0x11100000, 0xffffffff, 0xffff0000, 48, "LISP#ge-tsg-xtr" }, { 0x261000d0, 0x11110000, 0xffffffff, 0xffff0000, 48, "LISP#crhill-xtr" }, { 0x261000d0, 0x11120000, 0xffffffff, 0xffff0000, 48, "LISP#smadley-xtr" }, { 0x261000d0, 0x11130000, 0xffffffff, 0xffff0000, 48, "LISP#mbirkner-xtr" }, { 0x261000d0, 0x11140000, 0xffffffff, 0xffff0000, 48, "LISP#attpoc-xtr" }, { 0x261000d0, 0x11150000, 0xffffffff, 0xffff0000, 48, "LISP#jemannin-xtr" }, { 0x261000d0, 0x11160000, 0xffffffff, 0xffff0000, 48, "LISP#chcoutur-xtr" }, { 0x261000d0, 0x11170000, 0xffffffff, 0xffff0000, 48, "LISP#bluethunder-xtr" }, { 0x261000d0, 0x11180000, 0xffffffff, 0xffff0000, 48, "LISP#marknguy-xtr" }, { 0x261000d0, 0x11190000, 0xffffffff, 0xffff0000, 48, "LISP#marcairn-xtr" }, { 0x261000d0, 0x111a0000, 0xffffffff, 0xffff0000, 48, "LISP#jason-xtr" }, { 0x261000d0, 0x111b0000, 0xffffffff, 0xffff0000, 48, "LISP#groff-xtr" }, { 0x261000d0, 0x111d0000, 0xffffffff, 0xffff0000, 48, "LISP#mwhitley-xtr" }, { 0x261000d0, 0x111e0000, 0xffffffff, 0xffff0000, 48, "LISP#attpoc-xtr-2" }, { 0x261000d0, 0x111f0000, 0xffffffff, 0xffff0000, 48, "LISP#dlapiper-xtr" }, { 0x261000d0, 0x11200000, 0xffffffff, 0xffff0000, 48, "LISP#manjeet-xtr" }, { 0x261000d0, 0x11210000, 0xffffffff, 0xffff0000, 48, "LISP#dudek-xtr" }, { 0x261000d0, 0x11220000, 0xffffffff, 0xffff0000, 48, "LISP#georgy-xtr" }, { 0x261000d0, 0x11230000, 0xffffffff, 0xffff0000, 48, "LISP#cbc-xtr" }, { 0x261000d0, 0x11240000, 0xffffffff, 0xffff0000, 48, "LISP#jhippen-xtr" }, { 0x261000d0, 0x11250000, 0xffffffff, 0xffff0000, 48, "LISP#garydla-xtr" }, { 0x261000d0, 0x11260000, 0xffffffff, 0xffff0000, 48, "LISP#scalan-xtr" }, { 0x261000d0, 0x11270000, 0xffffffff, 0xffff0000, 48, "LISP#donkdla-xtr" }, { 0x261000d0, 0x11280000, 0xffffffff, 0xffff0000, 48, "LISP#jamwheat-xtr" }, { 0x261000d0, 0x11290000, 0xffffffff, 0xffff0000, 48, "LISP#umissouri-xtr" }, { 0x261000d0, 0x112a0000, 0xffffffff, 0xffff0000, 48, "LISP#uvahs-xtr" }, { 0x261000d0, 0x112b0000, 0xffffffff, 0xffff0000, 48, "LISP#zavarce-xtr" }, { 0x261000d0, 0x112c0000, 0xffffffff, 0xffff0000, 48, "LISP#jansen-xtr" }, { 0x261000d0, 0x112d0000, 0xffffffff, 0xffff0000, 48, "LISP#netorian-xtr" }, { 0x261000d0, 0x112e0000, 0xffffffff, 0xffff0000, 48, "LISP#chris-ge-xtr" }, { 0x261000d0, 0x112f0000, 0xffffffff, 0xffff0000, 48, "LISP#ineteng-xtr" }, { 0x261000d0, 0x11300000, 0xffffffff, 0xffff0000, 48, "LISP#force3a-xtr" }, { 0x261000d0, 0x11310000, 0xffffffff, 0xffff0000, 48, "LISP#force3b-xtr" }, { 0x261000d0, 0x11320000, 0xffffffff, 0xffff0000, 48, "LISP#force3-xtr" }, { 0x261000d0, 0x11330000, 0xffffffff, 0xffff0000, 48, "LISP#wason-xtr" }, { 0x261000d0, 0x11340000, 0xffffffff, 0xffff0000, 48, "LISP#c819-LTE-xtr" }, { 0x261000d0, 0x11350000, 0xffffffff, 0xffff0000, 48, "LISP#schlutter-xtr" }, { 0x261000d0, 0x11360000, 0xffffffff, 0xffff0000, 48, "LISP#bguldan-xtr" }, { 0x261000d0, 0x11370000, 0xffffffff, 0xffff0000, 48, "LISP#naasief-xtr" }, { 0x261000d0, 0x11380000, 0xffffffff, 0xffff0000, 48, "LISP#ciecior-xtr" }, { 0x261000d0, 0x11390000, 0xffffffff, 0xffff0000, 48, "LISP#coopergeneral-xtr" }, { 0x261000d0, 0x113a0000, 0xffffffff, 0xffff0000, 48, "LISP#plixer-xtr" }, { 0x261000d0, 0x113b0000, 0xffffffff, 0xffff0000, 48, "LISP#halifaxmediagroup-xtr" }, { 0x261000d0, 0x113c0000, 0xffffffff, 0xffff0000, 48, "LISP#ec2test-xtr" }, { 0x261000d0, 0x113d0000, 0xffffffff, 0xffff0000, 48, "LISP#perry-xtr" }, { 0x261000d0, 0x113e0000, 0xffffffff, 0xffff0000, 48, "LISP#fortinet-xtr" }, { 0x261000d0, 0x113f0000, 0xffffffff, 0xffff0000, 48, "LISP#djustice-xtr" }, { 0x261000d0, 0x11400000, 0xffffffff, 0xffff0000, 48, "LISP#apparatus-xtr" }, { 0x261000d0, 0x11410000, 0xffffffff, 0xffff0000, 48, "LISP#cdw-xtr" }, { 0x261000d0, 0x11420000, 0xffffffff, 0xffff0000, 48, "LISP#krunal-xtr" }, { 0x261000d0, 0x11430000, 0xffffffff, 0xffff0000, 48, "LISP#gar-xtr" }, { 0x261000d0, 0x11440000, 0xffffffff, 0xffff0000, 48, "LISP#jbert-xtr" }, { 0x261000d0, 0x11450000, 0xffffffff, 0xffff0000, 48, "LISP#rajiva-xtr" }, { 0x261000d0, 0x11460000, 0xffffffff, 0xffff0000, 48, "LISP#oneok-xtr" }, { 0x261000d0, 0x11470000, 0xffffffff, 0xffff0000, 48, "LISP#sjury-xtr" }, { 0x261000d0, 0x11480000, 0xffffffff, 0xffff0000, 48, "LISP#dbuleza-xtr" }, { 0x261000d0, 0x11490000, 0xffffffff, 0xffff0000, 48, "LISP#tommille-xtr" }, { 0x261000d0, 0x114a0000, 0xffffffff, 0xffff0000, 48, "LISP#uer3-xtr" }, { 0x261000d0, 0x114b0000, 0xffffffff, 0xffff0000, 48, "LISP#tdstelecom-xtr" }, { 0x261000d0, 0x114c0000, 0xffffffff, 0xffff0000, 48, "LISP#dustin-xtr" }, { 0x261000d0, 0x114d0000, 0xffffffff, 0xffff0000, 48, "LISP#jpcaron-xtr" }, { 0x261000d0, 0x114e0000, 0xffffffff, 0xffff0000, 48, "LISP#pogue-xtr" }, { 0x261000d0, 0x114f0000, 0xffffffff, 0xffff0000, 48, "LISP#msales-xtr" }, { 0x261000d0, 0x11500000, 0xffffffff, 0xffff0000, 48, "LISP#spisati-xtr-2" }, { 0x261000d0, 0x11510000, 0xffffffff, 0xffff0000, 48, "LISP#lprat-xtr" }, { 0x261000d0, 0x11520000, 0xffffffff, 0xffff0000, 48, "LISP#triple-xtr" }, { 0x261000d0, 0x11530000, 0xffffffff, 0xffff0000, 48, "LISP#cmich-xtr" }, { 0x261000d0, 0x11540000, 0xffffffff, 0xffff0000, 48, "LISP#rtajvar-xtr" }, { 0x261000d0, 0x11550000, 0xffffffff, 0xffff0000, 48, "LISP#snicholas-xtr" }, { 0x261000d0, 0x11560000, 0xffffffff, 0xffff0000, 48, "LISP#nist-xtr" }, { 0x261000d0, 0x12020000, 0xffffffff, 0xffff0000, 48, "LISP#icox-xtr" }, { 0x261000d0, 0x12030000, 0xffffffff, 0xffff0000, 48, "LISP#gregg-xtr" }, { 0x261000d0, 0x12050000, 0xffffffff, 0xffff0000, 48, "LISP#snoble-xtr" }, { 0x261000d0, 0x12060000, 0xffffffff, 0xffff0000, 48, "LISP#dalvarez-xtr" }, { 0x261000d0, 0x12070000, 0xffffffff, 0xffff0000, 48, "LISP#ucla-xtr" }, { 0x261000d0, 0x12080000, 0xffffffff, 0xffff0000, 48, "LISP#asr1knat64-xtr" }, { 0x261000d0, 0x120a0000, 0xffffffff, 0xffff0000, 48, "LISP#tosterbe-xtr" }, { 0x261000d0, 0x120b0000, 0xffffffff, 0xffff0000, 48, "LISP#srin-xtr" }, { 0x261000d0, 0x120c0000, 0xffffffff, 0xffff0000, 48, "LISP#wwt-xtr" }, { 0x261000d0, 0x120d0000, 0xffffffff, 0xffff0000, 48, "LISP#qcom-corp-xtr" }, { 0x261000d0, 0x120f0000, 0xffffffff, 0xffff0000, 48, "LISP#wally-world-xtr" }, { 0x261000d0, 0x12110000, 0xffffffff, 0xffff0000, 48, "LISP#amit-xtr" }, { 0x261000d0, 0x12120000, 0xffffffff, 0xffff0000, 48, "LISP#srin-demo-xtr" }, { 0x261000d0, 0x12130000, 0xffffffff, 0xffff0000, 48, "LISP#stevenca-xtr" }, { 0x261000d0, 0x12140000, 0xffffffff, 0xffff0000, 48, "LISP#jearango-xtr" }, { 0x261000d0, 0x12150000, 0xffffffff, 0xffff0000, 48, "LISP#sulrich-xtr" }, { 0x261000d0, 0x12160000, 0xffffffff, 0xffff0000, 48, "LISP#manishee-xtr" }, { 0x261000d0, 0x12170000, 0xffffffff, 0xffff0000, 48, "LISP#aaronm-xtr" }, { 0x261000d0, 0x12180000, 0xffffffff, 0xffff0000, 48, "LISP#samuel-xtr" }, { 0x261000d0, 0x121a0000, 0xffffffff, 0xffff0000, 48, "LISP#fabio-new-mn" }, { 0x261000d0, 0x121b0000, 0xffffffff, 0xffff0000, 48, "LISP#nmaadara-xtr" }, { 0x261000d0, 0x121c0000, 0xffffffff, 0xffff0000, 48, "LISP#liguori-xtr" }, { 0x261000d0, 0x121d0000, 0xffffffff, 0xffff0000, 48, "LISP#kecorbin-xtr" }, { 0x261000d0, 0x121e0000, 0xffffffff, 0xffff0000, 48, "LISP#dstsyst-xtr" }, { 0x261000d0, 0x12200000, 0xffffffff, 0xffff0000, 48, "LISP#ufrj-xtr" }, { 0x261000d0, 0x12210000, 0xffffffff, 0xffff0000, 48, "LISP#machilde-xtr" }, { 0x261000d0, 0x12220000, 0xffffffff, 0xffff0000, 48, "LISP#jessica-xtr" }, { 0x261000d0, 0x12230000, 0xffffffff, 0xffff0000, 48, "LISP#archana-xtr" }, { 0x261000d0, 0x12240000, 0xffffffff, 0xffff0000, 48, "LISP#jadumars-xtr" }, { 0x261000d0, 0x12250000, 0xffffffff, 0xffff0000, 48, "LISP#gorhughe-xtr" }, { 0x261000d0, 0x12260000, 0xffffffff, 0xffff0000, 48, "LISP#gbumgard-xtr" }, { 0x261000d0, 0x12270000, 0xffffffff, 0xffff0000, 48, "LISP#chuljin-xtr" }, { 0x261000d0, 0x12280000, 0xffffffff, 0xffff0000, 48, "LISP#linh-xtr" }, { 0x261000d0, 0x12290000, 0xffffffff, 0xffff0000, 48, "LISP#sfu-bcnet-xtr" }, { 0x261000d0, 0x122a0000, 0xffffffff, 0xffff0000, 48, "LISP#dipsingh-xtr" }, { 0x261000d0, 0x122b0000, 0xffffffff, 0xffff0000, 48, "LISP#trevlac-xtr" }, { 0x261000d0, 0x122c0000, 0xffffffff, 0xffff0000, 48, "LISP#robert-cdw-xtr" }, { 0x261000d0, 0x122d0000, 0xffffffff, 0xffff0000, 48, "LISP#parna-lev-xtr" }, { 0x261000d0, 0x122e0000, 0xffffffff, 0xffff0000, 48, "LISP#rob-cdw-xtr" }, { 0x261000d0, 0x122f0000, 0xffffffff, 0xffff0000, 48, "LISP#scv-xtr" }, { 0x261000d0, 0x12300000, 0xffffffff, 0xffff0000, 48, "LISP#muabid-xtr" }, { 0x261000d0, 0x12310000, 0xffffffff, 0xffff0000, 48, "LISP#steve-apple-xtr" }, { 0x261000d0, 0x12320000, 0xffffffff, 0xffff0000, 48, "LISP#kleinart-xtr" }, { 0x261000d0, 0x12330000, 0xffffffff, 0xffff0000, 48, "LISP#akennedy-xtr" }, { 0x261000d0, 0x12340000, 0xffffffff, 0xffff0000, 48, "LISP#jcolin-xtr" }, { 0x261000d0, 0x12350000, 0xffffffff, 0xffff0000, 48, "LISP#rbonnell-xtr" }, { 0x261000d0, 0x12360000, 0xffffffff, 0xffff0000, 48, "LISP#jalberti-xtr" }, { 0x261000d0, 0x12370000, 0xffffffff, 0xffff0000, 48, "LISP#cisco-natal2-xtr" }, { 0x261000d0, 0x12380000, 0xffffffff, 0xffff0000, 48, "LISP#lfiegl-xtr" }, { 0x261000d0, 0x12390000, 0xffffffff, 0xffff0000, 48, "LISP#upc-arin-xtr" }, { 0x261000d0, 0x123a0000, 0xffffffff, 0xffff0000, 48, "LISP#azure-xtr" }, { 0x261000d0, 0x13020000, 0xffffffff, 0xffff0000, 48, "LISP#wnellis-xtr" }, { 0x261000d0, 0x13030000, 0xffffffff, 0xffff0000, 48, "LISP#darrel-xtr" }, { 0x261000d0, 0x13040000, 0xffffffff, 0xffff0000, 48, "LISP#vaf-xtr" }, { 0x261000d0, 0x13050000, 0xffffffff, 0xffff0000, 48, "LISP#vl-openwrt1-xtr" }, { 0x261000d0, 0x13060000, 0xffffffff, 0xffff0000, 48, "LISP#vl-openwrt2-xtr" }, { 0x261000d0, 0x13070000, 0xffffffff, 0xffff0000, 48, "LISP#vl-openwrt3-xtr" }, { 0x261000d0, 0x13080000, 0xffffffff, 0xffff0000, 48, "LISP#zhicheng-xtr" }, { 0x261000d0, 0x13090000, 0xffffffff, 0xffff0000, 48, "LISP#nattrav-test-arin" }, { 0x261000d0, 0x130a0000, 0xffffffff, 0xffff0000, 48, "LISP#djcalif-xtr" }, { 0x261000d0, 0x130b0000, 0xffffffff, 0xffff0000, 48, "LISP#dehrle1-xtr" }, { 0x261000d0, 0x130c0000, 0xffffffff, 0xffff0000, 48, "LISP#divya-xtr" }, { 0x261000d0, 0x130d0000, 0xffffffff, 0xffff0000, 48, "LISP#jhennessy-xtr" }, { 0x261000d0, 0x130e0000, 0xffffffff, 0xffff0000, 48, "LISP#martin-xtr" }, { 0x261000d0, 0x130f0000, 0xffffffff, 0xffff0000, 48, "LISP#dehrle2-xtr" }, { 0x261000d0, 0x13100000, 0xffffffff, 0xffff0000, 48, "LISP#chanu-xtr" }, { 0x261000d0, 0x13110000, 0xffffffff, 0xffff0000, 48, "LISP#lierop-xtr" }, { 0x261000d0, 0x13120000, 0xffffffff, 0xffff0000, 48, "LISP#cmh-xtr" }, { 0x261000d0, 0x13140000, 0xffffffff, 0xffff0000, 48, "LISP#mhaaksma-xtr" }, { 0x261000d0, 0x13150000, 0xffffffff, 0xffff0000, 48, "LISP#tellis-xtr" }, { 0x261000d0, 0x13160000, 0xffffffff, 0xffff0000, 48, "LISP#jade-xtr" }, { 0x261000d0, 0x13170000, 0xffffffff, 0xffff0000, 48, "LISP#neno-xtr" }, { 0x261000d0, 0x13180000, 0xffffffff, 0xffff0000, 48, "LISP#elsen-xtr" }, { 0x261000d0, 0x132a0000, 0xffffffff, 0xffff0000, 48, "LISP#comfort-xtr" }, { 0x261000d0, 0x21000000, 0xffffffff, 0xffff0000, 48, "LISP#thkernen-xtr" }, { 0x261000d0, 0x21010000, 0xffffffff, 0xffff0000, 48, "LISP#gerd-xtr" }, { 0x261000d0, 0x21020000, 0xffffffff, 0xffff0000, 48, "LISP#luigi-xtr" }, { 0x261000d0, 0x21030000, 0xffffffff, 0xffff0000, 48, "LISP#damien-xtr" }, { 0x261000d0, 0x21040000, 0xffffffff, 0xffff0000, 48, "LISP#jakab-xtr" }, { 0x261000d0, 0x21050000, 0xffffffff, 0xffff0000, 48, "LISP#dino-xtr" }, { 0x261000d0, 0x21060000, 0xffffffff, 0xffff0000, 48, "LISP#lbromirs-xtr" }, { 0x261000d0, 0x21070000, 0xffffffff, 0xffff0000, 48, "LISP#wolfgang-client-xtr" }, { 0x261000d0, 0x21080000, 0xffffffff, 0xffff0000, 48, "LISP#simlo-xtr" }, { 0x261000d0, 0x21090000, 0xffffffff, 0xffff0000, 48, "LISP#wolfgang-odd-xtr" }, { 0x261000d0, 0x210a0000, 0xffffffff, 0xffff0000, 48, "LISP#wolfgang-even-xtr" }, { 0x261000d0, 0x210b0000, 0xffffffff, 0xffff0000, 48, "LISP#jesper-xtr" }, { 0x261000d0, 0x210c0000, 0xffffffff, 0xffff0000, 48, "LISP#isidor-xtr" }, { 0x261000d0, 0x210d0000, 0xffffffff, 0xffff0000, 48, "LISP#jobsnijders-home-xtr" }, { 0x261000d0, 0x210e0000, 0xffffffff, 0xffff0000, 48, "LISP#intouch-office-xtr" }, { 0x261000d0, 0x210f0000, 0xffffffff, 0xffff0000, 48, "LISP#intouch-dc1-xtr-1" }, { 0x261000d0, 0x21100000, 0xffffffff, 0xffff0000, 48, "LISP#intouch-dc2-xtr-1" }, { 0x261000d0, 0x21110000, 0xffffffff, 0xffff0000, 48, "LISP#lukasm-xtr" }, { 0x261000d0, 0x21120000, 0xffffffff, 0xffff0000, 48, "LISP#marc-xtr" }, { 0x261000d0, 0x21130000, 0xffffffff, 0xffff0000, 48, "LISP#deutsche-bank-xtr" }, { 0x261000d0, 0x21140000, 0xffffffff, 0xffff0000, 48, "LISP#gerd-cbc-xtr" }, { 0x261000d0, 0x21150000, 0xffffffff, 0xffff0000, 48, "LISP#65bit-xtr" }, { 0x261000d0, 0x21160000, 0xffffffff, 0xffff0000, 48, "LISP#rolfs-xtr" }, { 0x261000d0, 0x21170000, 0xffffffff, 0xffff0000, 48, "LISP#dimitris-xtr" }, { 0x261000d0, 0x21180000, 0xffffffff, 0xffff0000, 48, "LISP#markus-xtr" }, { 0x261000d0, 0x21190000, 0xffffffff, 0xffff0000, 48, "LISP#mkramoli-xtr" }, { 0x261000d0, 0x211a0000, 0xffffffff, 0xffff0000, 48, "LISP#pcharalampou-xtr" }, { 0x261000d0, 0x211c0000, 0xffffffff, 0xffff0000, 48, "LISP#mironto-xtr" }, { 0x261000d0, 0x211d0000, 0xffffffff, 0xffff0000, 48, "LISP#munich-arpt-xtr" }, { 0x261000d0, 0x211e0000, 0xffffffff, 0xffff0000, 48, "LISP#mitko-xtr" }, { 0x261000d0, 0x211f0000, 0xffffffff, 0xffff0000, 48, "LISP#isarnet-xtr" }, { 0x261000d0, 0x21200000, 0xffffffff, 0xffff0000, 48, "LISP#tetaneutral-xtr" }, { 0x261000d0, 0x21210000, 0xffffffff, 0xffff0000, 48, "LISP#lip6-fr-xtr" }, { 0x261000d0, 0x21220000, 0xffffffff, 0xffff0000, 48, "LISP#korpo-tp-xtr" }, { 0x261000d0, 0x21230000, 0xffffffff, 0xffff0000, 48, "LISP#mbosecki-xtr" }, { 0x261000d0, 0x21240000, 0xffffffff, 0xffff0000, 48, "LISP#experteach-xtr" }, { 0x261000d0, 0x21250000, 0xffffffff, 0xffff0000, 48, "LISP#globalknowledge-xtr" }, { 0x261000d0, 0x21260000, 0xffffffff, 0xffff0000, 48, "LISP#moreas-xtr" }, { 0x261000d0, 0x21270000, 0xffffffff, 0xffff0000, 48, "LISP#bayer-xtr" }, { 0x261000d0, 0x21280000, 0xffffffff, 0xffff0000, 48, "LISP#giheron-xtr" }, { 0x261000d0, 0x21290000, 0xffffffff, 0xffff0000, 48, "LISP#antoine-xtr" }, { 0x261000d0, 0x212a0000, 0xffffffff, 0xffff0000, 48, "LISP#uniroma-xtr" }, { 0x261000d0, 0x212b0000, 0xffffffff, 0xffff0000, 48, "LISP#mcenteme-xtr" }, { 0x261000d0, 0x212c0000, 0xffffffff, 0xffff0000, 48, "LISP#jjstevens-xtr" }, { 0x261000d0, 0x212d0000, 0xffffffff, 0xffff0000, 48, "LISP#planete-xtr" }, { 0x261000d0, 0x212e0000, 0xffffffff, 0xffff0000, 48, "LISP#atle-xtr" }, { 0x261000d0, 0x21300000, 0xffffffff, 0xffff0000, 48, "LISP#geert-xtr" }, { 0x261000d0, 0x21310000, 0xffffffff, 0xffff0000, 48, "LISP#zilina-xtr" }, { 0x261000d0, 0x21320000, 0xffffffff, 0xffff0000, 48, "LISP#chrisgray-xtr" }, { 0x261000d0, 0x21340000, 0xffffffff, 0xffff0000, 48, "LISP#mblokzij-xtr" }, { 0x261000d0, 0x21350000, 0xffffffff, 0xffff0000, 48, "LISP#ataf-xtr" }, { 0x261000d0, 0x21360000, 0xffffffff, 0xffff0000, 48, "LISP#adittman-xtr" }, { 0x261000d0, 0x21370000, 0xffffffff, 0xffff0000, 48, "LISP#runar-xtr" }, { 0x261000d0, 0x21380000, 0xffffffff, 0xffff0000, 48, "LISP#iceland-xtr" }, { 0x261000d0, 0x21390000, 0xffffffff, 0xffff0000, 48, "LISP#raabo-xtr" }, { 0x261000d0, 0x213a0000, 0xffffffff, 0xffff0000, 48, "LISP#alex-xtr" }, { 0x261000d0, 0x213b0000, 0xffffffff, 0xffff0000, 48, "LISP#avm-gmbh1-xtr" }, { 0x261000d0, 0x213c0000, 0xffffffff, 0xffff0000, 48, "LISP#avm-gmbh2-xtr" }, { 0x261000d0, 0x213d0000, 0xffffffff, 0xffff0000, 48, "LISP#francesco-xtr" }, { 0x261000d0, 0x213e0000, 0xffffffff, 0xffff0000, 48, "LISP#fraunhofer-igd-xtr" }, { 0x261000d0, 0x21400000, 0xffffffff, 0xffff0000, 48, "LISP#smirnov-xtr" }, { 0x261000d0, 0x21410000, 0xffffffff, 0xffff0000, 48, "LISP#cegal-xtr" }, { 0x261000d0, 0x21420000, 0xffffffff, 0xffff0000, 48, "LISP#gloudemans-xtr" }, { 0x261000d0, 0x21430000, 0xffffffff, 0xffff0000, 48, "LISP#claes-xtr" }, { 0x261000d0, 0x21440000, 0xffffffff, 0xffff0000, 48, "LISP#hu-uasu-xtr" }, { 0x261000d0, 0x21450000, 0xffffffff, 0xffff0000, 48, "LISP#umurcia-1-xtr" }, { 0x261000d0, 0x21460000, 0xffffffff, 0xffff0000, 48, "LISP#umurcia-2-xtr" }, { 0x261000d0, 0x21470000, 0xffffffff, 0xffff0000, 48, "LISP#umurcia-3-xtr" }, { 0x261000d0, 0x21490000, 0xffffffff, 0xffff0000, 48, "LISP#hauschild-xtr" }, { 0x261000d0, 0x214a0000, 0xffffffff, 0xffff0000, 48, "LISP#cat6k-demo-uk" }, { 0x261000d0, 0x214b0000, 0xffffffff, 0xffff0000, 48, "LISP#roel-xtr" }, { 0x261000d0, 0x214c0000, 0xffffffff, 0xffff0000, 48, "LISP#clemens-xtr" }, { 0x261000d0, 0x214d0000, 0xffffffff, 0xffff0000, 48, "LISP#fit-xtr" }, { 0x261000d0, 0x214e0000, 0xffffffff, 0xffff0000, 48, "LISP#level-it-xtr" }, { 0x261000d0, 0x214f0000, 0xffffffff, 0xffff0000, 48, "LISP#AVM01-xtr" }, { 0x261000d0, 0x21500000, 0xffffffff, 0xffff0000, 48, "LISP#AVM02-xtr" }, { 0x261000d0, 0x21510000, 0xffffffff, 0xffff0000, 48, "LISP#AVM03-xtr" }, { 0x261000d0, 0x21520000, 0xffffffff, 0xffff0000, 48, "LISP#AVM04-xtr" }, { 0x261000d0, 0x21530000, 0xffffffff, 0xffff0000, 48, "LISP#AVM05-xtr" }, { 0x261000d0, 0x21540000, 0xffffffff, 0xffff0000, 48, "LISP#AVM06-xtr" }, { 0x261000d0, 0x21550000, 0xffffffff, 0xffff0000, 48, "LISP#AVM07-xtr" }, { 0x261000d0, 0x21560000, 0xffffffff, 0xffff0000, 48, "LISP#AVM08-xtr" }, { 0x261000d0, 0x21570000, 0xffffffff, 0xffff0000, 48, "LISP#AVM09-xtr" }, { 0x261000d0, 0x21580000, 0xffffffff, 0xffff0000, 48, "LISP#vz-niko-ch" }, { 0x261000d0, 0x21590000, 0xffffffff, 0xffff0000, 48, "LISP#dipesh-xtr" }, { 0x261000d0, 0x215a0000, 0xffffffff, 0xffff0000, 48, "LISP#quenzer-xtr" }, { 0x261000d0, 0x215b0000, 0xffffffff, 0xffff0000, 48, "LISP#turnerhouse-xtr" }, { 0x261000d0, 0x215c0000, 0xffffffff, 0xffff0000, 48, "LISP#lhsystems-xtr" }, { 0x261000d0, 0x215d0000, 0xffffffff, 0xffff0000, 48, "LISP#coudron-xtr" }, { 0x261000d0, 0x215e0000, 0xffffffff, 0xffff0000, 48, "LISP#hubers-xtr" }, { 0x261000d0, 0x215f0000, 0xffffffff, 0xffff0000, 48, "LISP#woellhaf-xtr" }, { 0x261000d0, 0x21600000, 0xffffffff, 0xffff0000, 48, "LISP#damjan-xtr" }, { 0x261000d0, 0x21610000, 0xffffffff, 0xffff0000, 48, "LISP#leander-xtr" }, { 0x261000d0, 0x21620000, 0xffffffff, 0xffff0000, 48, "LISP#nikolay-xtr" }, { 0x261000d0, 0x21630000, 0xffffffff, 0xffff0000, 48, "LISP#moritz-xtr" }, { 0x261000d0, 0x21640000, 0xffffffff, 0xffff0000, 48, "LISP#skonecki-xtr" }, { 0x261000d0, 0x21650000, 0xffffffff, 0xffff0000, 48, "LISP#thoene-xtr" }, { 0x261000d0, 0x21660000, 0xffffffff, 0xffff0000, 48, "LISP#lori-xtr" }, { 0x261000d0, 0x21670000, 0xffffffff, 0xffff0000, 48, "LISP#reitz-xtr" }, { 0x261000d0, 0x21680000, 0xffffffff, 0xffff0000, 48, "LISP#jerome-xtr" }, { 0x261000d0, 0x21690000, 0xffffffff, 0xffff0000, 48, "LISP#netcloud-xtr" }, { 0x261000d0, 0x216a0000, 0xffffffff, 0xffff0000, 48, "LISP#dschulz-xtr" }, { 0x261000d0, 0x216b0000, 0xffffffff, 0xffff0000, 48, "LISP#atea-xtr" }, { 0x261000d0, 0x216c0000, 0xffffffff, 0xffff0000, 48, "LISP#atea2-xtr" }, { 0x261000d0, 0x216d0000, 0xffffffff, 0xffff0000, 48, "LISP#cschmidt-xtr" }, { 0x261000d0, 0x216e0000, 0xffffffff, 0xffff0000, 48, "LISP#eantc-xtr" }, { 0x261000d0, 0x216f0000, 0xffffffff, 0xffff0000, 48, "LISP#sleiweke-xtr" }, { 0x261000d0, 0x21700000, 0xffffffff, 0xffff0000, 48, "LISP#marcel-xtr" }, { 0x261000d0, 0x21710000, 0xffffffff, 0xffff0000, 48, "LISP#goudswaard-xtr" }, { 0x261000d0, 0x21720000, 0xffffffff, 0xffff0000, 48, "LISP#axel-xtr" }, { 0x261000d0, 0x21730000, 0xffffffff, 0xffff0000, 48, "LISP#trieb-xtr" }, { 0x261000d0, 0x21740000, 0xffffffff, 0xffff0000, 48, "LISP#strasser-xtr" }, { 0x261000d0, 0x21750000, 0xffffffff, 0xffff0000, 48, "LISP#haase-xtr" }, { 0x261000d0, 0x21760000, 0xffffffff, 0xffff0000, 48, "LISP#hendrickx-xtr" }, { 0x261000d0, 0x21770000, 0xffffffff, 0xffff0000, 48, "LISP#keronet-xtr" }, { 0x261000d0, 0x21780000, 0xffffffff, 0xffff0000, 48, "LISP#sarton-xtr" }, { 0x261000d0, 0x21790000, 0xffffffff, 0xffff0000, 48, "LISP#nattrav-test" }, { 0x261000d0, 0x217a0000, 0xffffffff, 0xffff0000, 48, "LISP#ermidoro-xtr" }, { 0x261000d0, 0x217b0000, 0xffffffff, 0xffff0000, 48, "LISP#scv-xtr" }, { 0x261000d0, 0x217c0000, 0xffffffff, 0xffff0000, 48, "LISP#rjm-xtr" }, { 0x261000d0, 0x217d0000, 0xffffffff, 0xffff0000, 48, "LISP#answanso-xtr" }, { 0x261000d0, 0x217e0000, 0xffffffff, 0xffff0000, 48, "LISP#strehhuber-xtr" }, { 0x261000d0, 0x217f0000, 0xffffffff, 0xffff0000, 48, "LISP#hintermayr-xtr" }, { 0x261000d0, 0x21800000, 0xffffffff, 0xffff0000, 48, "LISP#gruber-xtr" }, { 0x261000d0, 0x21810000, 0xffffffff, 0xffff0000, 48, "LISP#boardrunner-xtr" }, { 0x261000d0, 0x21820000, 0xffffffff, 0xffff0000, 48, "LISP#adwin-xtr" }, { 0x261000d0, 0x21830000, 0xffffffff, 0xffff0000, 48, "LISP#bartschnet-xtr" }, { 0x261000d0, 0x21840000, 0xffffffff, 0xffff0000, 48, "LISP#netgaroo-xtr" }, { 0x261000d0, 0x21850000, 0xffffffff, 0xffff0000, 48, "LISP#gensonline-xtr" }, { 0x261000d0, 0x21860000, 0xffffffff, 0xffff0000, 48, "LISP#nuage-lisp-xtr" }, { 0x261000d0, 0x21870000, 0xffffffff, 0xffff0000, 48, "LISP#ch-marcel-xtr" }, { 0x261000d0, 0x21880000, 0xffffffff, 0xffff0000, 48, "LISP#uaveiro-xtr" }, { 0x261000d0, 0x21890000, 0xffffffff, 0xffff0000, 48, "LISP#caspary-xtr" }, { 0x261000d0, 0x218a0000, 0xffffffff, 0xffff0000, 48, "LISP#maxried-xtr" }, { 0x261000d0, 0x218b0000, 0xffffffff, 0xffff0000, 48, "LISP#yun-xtr" }, { 0x261000d0, 0x218c0000, 0xffffffff, 0xffff0000, 48, "LISP#tietze-xtr" }, { 0x261000d0, 0x218d0000, 0xffffffff, 0xffff0000, 48, "LISP#jkuhn-xtr" }, { 0x261000d0, 0x218e0000, 0xffffffff, 0xffff0000, 48, "LISP#a1-telekom-xtr" }, { 0x261000d0, 0x218f0000, 0xffffffff, 0xffff0000, 48, "LISP#renne-xtr" }, { 0x261000d0, 0x21900000, 0xffffffff, 0xffff0000, 48, "LISP#mblokzij-pi-xtr" }, { 0x261000d0, 0x21910000, 0xffffffff, 0xffff0000, 48, "LISP#lueers-xtr" }, { 0x261000d0, 0x21920000, 0xffffffff, 0xffff0000, 48, "LISP#hkoerth-xtr" }, { 0x261000d0, 0x21930000, 0xffffffff, 0xffff0000, 48, "LISP#nclark-xtr" }, { 0x261000d0, 0x21940000, 0xffffffff, 0xffff0000, 48, "LISP#teridion-xtr" }, { 0x261000d0, 0x21950000, 0xffffffff, 0xffff0000, 48, "LISP#mgrabner-xtr" }, { 0x261000d0, 0x21960000, 0xffffffff, 0xffff0000, 48, "LISP#albring-xtr" }, { 0x261000d0, 0x21970000, 0xffffffff, 0xffff0000, 48, "LISP#kmartini-xtr" }, { 0x261000d0, 0x21980000, 0xffffffff, 0xffff0000, 48, "LISP#hs-fulda-xtr" }, { 0x261000d0, 0x21990000, 0xffffffff, 0xffff0000, 48, "LISP#datenschleuder-xtr" }, { 0x261000d0, 0x219a0000, 0xffffffff, 0xffff0000, 48, "LISP#airmaxx-xtr" }, { 0x261000d0, 0x219b0000, 0xffffffff, 0xffff0000, 48, "LISP#kewisch-xtr" }, { 0x261000d0, 0x219c0000, 0xffffffff, 0xffff0000, 48, "LISP#cybernet-xtr" }, { 0x261000d0, 0x219d0000, 0xffffffff, 0xffff0000, 48, "LISP#krzbia-xtr" }, { 0x261000d0, 0x219e0000, 0xffffffff, 0xffff0000, 48, "LISP#twarwick-xtr" }, { 0x261000d0, 0x219f0000, 0xffffffff, 0xffff0000, 48, "LISP#fuhge-xtr" }, { 0x261000d0, 0x21a00000, 0xffffffff, 0xffff0000, 48, "LISP#isah-xtr" }, { 0x261000d0, 0x21a10000, 0xffffffff, 0xffff0000, 48, "LISP#lovison-xtr" }, { 0x261000d0, 0x21a20000, 0xffffffff, 0xffff0000, 48, "LISP#jens-xtr" }, { 0x261000d0, 0x21a30000, 0xffffffff, 0xffff0000, 48, "LISP#naundorf-xtr" }, { 0x261000d0, 0x21a40000, 0xffffffff, 0xffff0000, 48, "LISP#leon-xtr" }, { 0x261000d0, 0x21a50000, 0xffffffff, 0xffff0000, 48, "LISP#orottler-xtr" }, { 0x261000d0, 0x21a60000, 0xffffffff, 0xffff0000, 48, "LISP#gschell-xtr" }, { 0x261000d0, 0x21a70000, 0xffffffff, 0xffff0000, 48, "LISP#x10103-xtr" }, { 0x261000d0, 0x21a80000, 0xffffffff, 0xffff0000, 48, "LISP#jps-networks-xtr" }, { 0x261000d0, 0x21a90000, 0xffffffff, 0xffff0000, 48, "LISP#mamouni-xtr" }, { 0x261000d0, 0x21aa0000, 0xffffffff, 0xffff0000, 48, "LISP#hakkarainen-xtr" }, { 0x261000d0, 0x21ab0000, 0xffffffff, 0xffff0000, 48, "LISP#posteo-xtr" }, { 0x261000d0, 0x21ac0000, 0xffffffff, 0xffff0000, 48, "LISP#pierson-xtr" }, { 0x261000d0, 0x21ad0000, 0xffffffff, 0xffff0000, 48, "LISP#hulsmann-xtr" }, { 0x261000d0, 0x21ae0000, 0xffffffff, 0xffff0000, 48, "LISP#mdavids-xtr" }, { 0x261000d0, 0x21af0000, 0xffffffff, 0xffff0000, 48, "LISP#erikbent-xtr" }, { 0x261000d0, 0x21b00000, 0xffffffff, 0xffff0000, 48, "LISP#CiscoConnect-xtr" }, { 0x261000d0, 0x21b10000, 0xffffffff, 0xffff0000, 48, "LISP#polimi-xtr" }, { 0x261000d0, 0x21b20000, 0xffffffff, 0xffff0000, 48, "LISP#panix-xtr" }, { 0x261000d0, 0x21b30000, 0xffffffff, 0xffff0000, 48, "LISP#glindhart-xtr" }, { 0x261000d0, 0x21b40000, 0xffffffff, 0xffff0000, 48, "LISP#dimensiondata-xtr" }, { 0x261000d0, 0x21b50000, 0xffffffff, 0xffff0000, 48, "LISP#pcforce-xtr" }, { 0x261000d0, 0x21b60000, 0xffffffff, 0xffff0000, 48, "LISP#plotnicu-xtr" }, { 0x261000d0, 0x21b70000, 0xffffffff, 0xffff0000, 48, "LISP#zimperfeld-xtr" }, { 0x261000d0, 0x21b80000, 0xffffffff, 0xffff0000, 48, "LISP#vanlid-xtr" }, { 0x261000d0, 0x21b90000, 0xffffffff, 0xffff0000, 48, "LISP#kohlstedde-xtr" }, { 0x261000d0, 0x21ba0000, 0xffffffff, 0xffff0000, 48, "LISP#wiegleb-xtr" }, { 0x261000d0, 0x21bb0000, 0xffffffff, 0xffff0000, 48, "LISP#dirks-xtr" }, { 0x261000d0, 0x21bc0000, 0xffffffff, 0xffff0000, 48, "LISP#cbursch-xtr" }, { 0x261000d0, 0x21bd0000, 0xffffffff, 0xffff0000, 48, "LISP#aflorio-cz-xtr" }, { 0x261000d0, 0x21be0000, 0xffffffff, 0xffff0000, 48, "LISP#aflorio-it-xtr" }, { 0x261000d0, 0x21bf0000, 0xffffffff, 0xffff0000, 48, "LISP#vz-niko-ge" }, { 0x261000d0, 0x21c00000, 0xffffffff, 0xffff0000, 48, "LISP#vz-niko-de" }, { 0x261000d0, 0x21c10000, 0xffffffff, 0xffff0000, 48, "LISP#voos-xtr" }, { 0x261000d0, 0x21c20000, 0xffffffff, 0xffff0000, 48, "LISP#plominski-xtr" }, { 0x261000d0, 0x21c30000, 0xffffffff, 0xffff0000, 48, "LISP#eison-xtr" }, { 0x261000d0, 0x21c40000, 0xffffffff, 0xffff0000, 48, "LISP#a1-telekom2-xtr" }, { 0x261000d0, 0x21c50000, 0xffffffff, 0xffff0000, 48, "LISP#nord-west-xtr" }, { 0x261000d0, 0x21c60000, 0xffffffff, 0xffff0000, 48, "LISP#frank-xtr" }, { 0x261000d0, 0x21c70000, 0xffffffff, 0xffff0000, 48, "LISP#uni-obuda-xtr" }, { 0x261000d0, 0x21c80000, 0xffffffff, 0xffff0000, 48, "LISP#raiffeisen-hu-xtr" }, { 0x261000d0, 0x21c90000, 0xffffffff, 0xffff0000, 48, "LISP#dev252-xtr" }, { 0x261000d0, 0x21ca0000, 0xffffffff, 0xffff0000, 48, "LISP#smit-hague-xtr" }, { 0x261000d0, 0x21cb0000, 0xffffffff, 0xffff0000, 48, "LISP#gierschner-xtr" }, { 0x261000d0, 0x21cc0000, 0xffffffff, 0xffff0000, 48, "LISP#lukasm2-xtr" }, { 0x261000d0, 0x21cd0000, 0xffffffff, 0xffff0000, 48, "LISP#sacherer-xtr" }, { 0x261000d0, 0x21ce0000, 0xffffffff, 0xffff0000, 48, "LISP#gunis-xtr" }, { 0x261000d0, 0x21cf0000, 0xffffffff, 0xffff0000, 48, "LISP#hilger-xtr" }, { 0x261000d0, 0x21d00000, 0xffffffff, 0xffff0000, 48, "LISP#schad-xtr" }, { 0x261000d0, 0x21d10000, 0xffffffff, 0xffff0000, 48, "LISP#hagenhoff-xtr" }, { 0x261000d0, 0x21d20000, 0xffffffff, 0xffff0000, 48, "LISP#ibm-gr-xtr" }, { 0x261000d0, 0x21d30000, 0xffffffff, 0xffff0000, 48, "LISP#coldharbour-xtr" }, { 0x261000d0, 0x21d40000, 0xffffffff, 0xffff0000, 48, "LISP#bach-xtr" }, { 0x261000d0, 0x21d50000, 0xffffffff, 0xffff0000, 48, "LISP#jschmidle-xtr" }, { 0x261000d0, 0x21d60000, 0xffffffff, 0xffff0000, 48, "LISP#zilina2-xtr" }, { 0x261000d0, 0x21d70000, 0xffffffff, 0xffff0000, 48, "LISP#dogscafe-xtr" }, { 0x261000d0, 0x21d80000, 0xffffffff, 0xffff0000, 48, "LISP#mgliwka-xtr" }, { 0x261000d0, 0x21d90000, 0xffffffff, 0xffff0000, 48, "LISP#krunal-eu-xtr" }, { 0x261000d0, 0x21da0000, 0xffffffff, 0xffff0000, 48, "LISP#cstephens-xtr-1" }, { 0x261000d0, 0x21db0000, 0xffffffff, 0xffff0000, 48, "LISP#demierre-xtr" }, { 0x261000d0, 0x21dc0000, 0xffffffff, 0xffff0000, 48, "LISP#somogyvari-xtr" }, { 0x261000d0, 0x21dd0000, 0xffffffff, 0xffff0000, 48, "LISP#spisati-xtr" }, { 0x261000d0, 0x21de0000, 0xffffffff, 0xffff0000, 48, "LISP#tao-networks-xtr" }, { 0x261000d0, 0x21df0000, 0xffffffff, 0xffff0000, 48, "LISP#willekens-xtr" }, { 0x261000d0, 0x21e00000, 0xffffffff, 0xffff0000, 48, "LISP#jclayton-xtr" }, { 0x261000d0, 0x21e10000, 0xffffffff, 0xffff0000, 48, "LISP#niek-xtr" }, { 0x261000d0, 0x21e20000, 0xffffffff, 0xffff0000, 48, "LISP#mbar-xtr" }, { 0x261000d0, 0x21e30000, 0xffffffff, 0xffff0000, 48, "LISP#lsd-xtr" }, { 0x261000d0, 0x21e40000, 0xffffffff, 0xffff0000, 48, "LISP#rfurda-xtr" }, { 0x261000d0, 0x21e50000, 0xffffffff, 0xffff0000, 48, "LISP#gmaricau-xtr" }, { 0x261000d0, 0x21e70000, 0xffffffff, 0xffff0000, 48, "LISP#dzeitler-xtr" }, { 0x261000d0, 0x21e80000, 0xffffffff, 0xffff0000, 48, "LISP#garndt-xtr" }, { 0x261000d0, 0x21e90000, 0xffffffff, 0xffff0000, 48, "LISP#jpreuss-xtr" }, { 0x261000d0, 0x21ea0000, 0xffffffff, 0xffff0000, 48, "LISP#smondwurf-xtr" }, { 0x261000d0, 0x21eb0000, 0xffffffff, 0xffff0000, 48, "LISP#tbonitz-xtr" }, { 0x261000d0, 0x21ec0000, 0xffffffff, 0xffff0000, 48, "LISP#cisco-natal1-xtr" }, { 0x261000d0, 0x21ed0000, 0xffffffff, 0xffff0000, 48, "LISP#cglasmeyer-xtr" }, { 0x261000d0, 0x21ee0000, 0xffffffff, 0xffff0000, 48, "LISP#rengel-xtr" }, { 0x261000d0, 0x21ef0000, 0xffffffff, 0xffff0000, 48, "LISP#hgojny-xtr" }, { 0x261000d0, 0x21f10000, 0xffffffff, 0xffff0000, 48, "LISP#rkohn-xtr" }, { 0x261000d0, 0x21f20000, 0xffffffff, 0xffff0000, 48, "LISP#jpkoegeler-xtr" }, { 0x261000d0, 0x21f30000, 0xffffffff, 0xffff0000, 48, "LISP#gniederwimmer-xtr" }, { 0x261000d0, 0x21f50000, 0xffffffff, 0xffff0000, 48, "LISP#mmikulenas-xtr" }, { 0x261000d0, 0x21f60000, 0xffffffff, 0xffff0000, 48, "LISP#cbretterhofer-xtr" }, { 0x261000d0, 0x21f70000, 0xffffffff, 0xffff0000, 48, "LISP#mgoebel-xtr" }, { 0x261000d0, 0x21f80000, 0xffffffff, 0xffff0000, 48, "LISP#bmorcinkowski-xtr" }, { 0x261000d0, 0x21f90000, 0xffffffff, 0xffff0000, 48, "LISP#jbaumann-xtr" }, { 0x261000d0, 0x21fa0000, 0xffffffff, 0xffff0000, 48, "LISP#mfey-xtr" }, { 0x261000d0, 0x21fb0000, 0xffffffff, 0xffff0000, 48, "LISP#mmuller-xtr" }, { 0x261000d0, 0x21fc0000, 0xffffffff, 0xffff0000, 48, "LISP#rjud-xtr" }, { 0x261000d0, 0x21fd0000, 0xffffffff, 0xffff0000, 48, "LISP#theinz-xtr" }, { 0x261000d0, 0x21fe0000, 0xffffffff, 0xffff0000, 48, "LISP#fzahn-xtr" }, { 0x261000d0, 0x22000000, 0xffffffff, 0xffff0000, 48, "LISP#ahugi-xtr" }, { 0x261000d0, 0x22010000, 0xffffffff, 0xffff0000, 48, "LISP#niekvanderven-xtr" }, { 0x261000d0, 0x22020000, 0xffffffff, 0xffff0000, 48, "LISP#jdechert-xtr" }, { 0x261000d0, 0x22030000, 0xffffffff, 0xffff0000, 48, "LISP#crothlander-xtr" }, { 0x261000d0, 0x22050000, 0xffffffff, 0xffff0000, 48, "LISP#wvanlid-xtr" }, { 0x261000d0, 0x22060000, 0xffffffff, 0xffff0000, 48, "LISP#upc-oor-xtr" }, { 0x261000d0, 0x22080000, 0xffffffff, 0xffff0000, 48, "LISP#tivano-software-xtr" }, { 0x261000d0, 0x22090000, 0xffffffff, 0xffff0000, 48, "LISP#ngunther-xtr" }, { 0x261000d0, 0x220a0000, 0xffffffff, 0xffff0000, 48, "LISP#gthor-xtr" }, { 0x261000d0, 0x220b0000, 0xffffffff, 0xffff0000, 48, "LISP#wonken-xtr" }, { 0x261000d0, 0x220d0000, 0xffffffff, 0xffff0000, 48, "LISP#tzapala-xtr" }, { 0x261000d0, 0x220e0000, 0xffffffff, 0xffff0000, 48, "LISP#rmller-xtr" }, { 0x261000d0, 0x22100000, 0xffffffff, 0xffff0000, 48, "LISP#feul-xtr" }, { 0x261000d0, 0x22110000, 0xffffffff, 0xffff0000, 48, "LISP#asunnetci-xtr" }, { 0x261000d0, 0x22130000, 0xffffffff, 0xffff0000, 48, "LISP#dfett-xtr" }, { 0x261000d0, 0x22140000, 0xffffffff, 0xffff0000, 48, "LISP#mklingspor-xtr" }, { 0x261000d0, 0x22150000, 0xffffffff, 0xffff0000, 48, "LISP#gsanjay-xtr" }, { 0x261000d0, 0x22160000, 0xffffffff, 0xffff0000, 48, "LISP#tkoch-xtr" }, { 0x261000d0, 0x22170000, 0xffffffff, 0xffff0000, 48, "LISP#hrenz-xtr" }, { 0x261000d0, 0x22180000, 0xffffffff, 0xffff0000, 48, "LISP#blawall-xtr" }, { 0x261000d0, 0x22190000, 0xffffffff, 0xffff0000, 48, "LISP#unitbv-xtr" }, { 0x261000d0, 0x222a0000, 0xffffffff, 0xffff0000, 48, "LISP#hketele-xtr" }, { 0x261000d0, 0x222b0000, 0xffffffff, 0xffff0000, 48, "LISP#rdchragner-xtr" }, { 0x261000d0, 0x222c0000, 0xffffffff, 0xffff0000, 48, "LISP#mamin-xtr" }, { 0x261000d0, 0x222e0000, 0xffffffff, 0xffff0000, 48, "LISP#twittenberg-xtr" }, { 0x261000d0, 0x222f0000, 0xffffffff, 0xffff0000, 48, "LISP#bwieder-xtr" }, { 0x261000d0, 0x22300000, 0xffffffff, 0xffff0000, 48, "LISP#sbethge-xtr" }, { 0x261000d0, 0x22310000, 0xffffffff, 0xffff0000, 48, "LISP#jdornauf-xtr" }, { 0x261000d0, 0x22330000, 0xffffffff, 0xffff0000, 48, "LISP#mmiller-xtr" }, { 0x261000d0, 0x22340000, 0xffffffff, 0xffff0000, 48, "LISP#cfertig-xtr" }, { 0x261000d0, 0x22350000, 0xffffffff, 0xffff0000, 48, "LISP#jkatolla-xtr" }, { 0x261000d0, 0x22360000, 0xffffffff, 0xffff0000, 48, "LISP#freenet-xtr" }, { 0x261000d0, 0x22370000, 0xffffffff, 0xffff0000, 48, "LISP#nweissbach-xtr" }, { 0x261000d0, 0x22380000, 0xffffffff, 0xffff0000, 48, "LISP#owas-xtr" }, { 0x261000d0, 0x22390000, 0xffffffff, 0xffff0000, 48, "LISP#rspickers-xtr" }, { 0x261000d0, 0x223a0000, 0xffffffff, 0xffff0000, 48, "LISP#pcech-xtr" }, { 0x261000d0, 0x223b0000, 0xffffffff, 0xffff0000, 48, "LISP#cpalm-xtr" }, { 0x261000d0, 0x223c0000, 0xffffffff, 0xffff0000, 48, "LISP#asellmann-xtr" }, { 0x261000d0, 0x223d0000, 0xffffffff, 0xffff0000, 48, "LISP#mluckert-xtr" }, { 0x261000d0, 0x223e0000, 0xffffffff, 0xffff0000, 48, "LISP#tzimmermann-xtr" }, { 0x261000d0, 0x223f0000, 0xffffffff, 0xffff0000, 48, "LISP#dpeshev-xtr" }, { 0x261000d0, 0x31000000, 0xffffffff, 0xffff0000, 48, "LISP#iij-xtr" }, { 0x261000d0, 0x32000000, 0xffffffff, 0xffff0000, 48, "LISP#hughes-xtr" }, { 0x261000d0, 0x32010000, 0xffffffff, 0xffff0000, 48, "LISP#apan-xtr" }, { 0x261000d0, 0x32020000, 0xffffffff, 0xffff0000, 48, "LISP#kddi-labs-xtr" }, { 0x261000d0, 0x32030000, 0xffffffff, 0xffff0000, 48, "LISP#ntt-com-xtr" }, { 0x261000d0, 0x32040000, 0xffffffff, 0xffff0000, 48, "LISP#tata-xtr" }, { 0x261000d0, 0x32050000, 0xffffffff, 0xffff0000, 48, "LISP#jiwang-xtr" }, { 0x261000d0, 0x32060000, 0xffffffff, 0xffff0000, 48, "LISP#layim-xtr" }, { 0x261000d0, 0x32070000, 0xffffffff, 0xffff0000, 48, "LISP#cfwong-xtr" }, { 0x261000d0, 0x32080000, 0xffffffff, 0xffff0000, 48, "LISP#logicalis-xtr" }, { 0x261000d0, 0x32090000, 0xffffffff, 0xffff0000, 48, "LISP#cht-xtr" }, { 0x261000d0, 0x320a0000, 0xffffffff, 0xffff0000, 48, "LISP#oasis-tech-xtr" }, { 0x261000d0, 0x320b0000, 0xffffffff, 0xffff0000, 48, "LISP#wide-xtr" }, { 0x261000d0, 0x320c0000, 0xffffffff, 0xffff0000, 48, "LISP#mingchow-xtr" }, { 0x261000d0, 0x320d0000, 0xffffffff, 0xffff0000, 48, "LISP#jiwang2-xtr" }, { 0x261000d0, 0x320e0000, 0xffffffff, 0xffff0000, 48, "LISP#fnsc-xtr" }, { 0x261000d0, 0x320f0000, 0xffffffff, 0xffff0000, 48, "LISP#nagoya-u-xtr" }, { 0x261000d0, 0x32100000, 0xffffffff, 0xffff0000, 48, "LISP#yuyarin-xtr" }, { 0x261000d0, 0x32110000, 0xffffffff, 0xffff0000, 48, "LISP#matsumoto-xtr" }, { 0x261000d0, 0x32120000, 0xffffffff, 0xffff0000, 48, "LISP#vhan-xtr" }, { 0x261000d0, 0x32130000, 0xffffffff, 0xffff0000, 48, "LISP#alphawest-xtr" }, { 0x261000d0, 0x32140000, 0xffffffff, 0xffff0000, 48, "LISP#mra4d-xtr" }, { 0x261000d0, 0x32150000, 0xffffffff, 0xffff0000, 48, "LISP#uet-vnu-xtr" }, { 0x261000d0, 0x32160000, 0xffffffff, 0xffff0000, 48, "LISP#pgear-xtr" }, { 0x261000d0, 0x32170000, 0xffffffff, 0xffff0000, 48, "LISP#pccw-xtr" }, { 0x261000d0, 0x32180000, 0xffffffff, 0xffff0000, 48, "LISP#fitac-xtr" }, { 0x261000d0, 0x32190000, 0xffffffff, 0xffff0000, 48, "LISP#layim2-xtr" }, { 0x261000d0, 0x321a0000, 0xffffffff, 0xffff0000, 48, "LISP#daniel-xtr-1" }, { 0x261000d0, 0x321b0000, 0xffffffff, 0xffff0000, 48, "LISP#daniel-xtr-2" }, { 0x261000d0, 0x321c0000, 0xffffffff, 0xffff0000, 48, "LISP#daniel-xtr-3" }, { 0x261000d0, 0x321e0000, 0xffffffff, 0xffff0000, 48, "LISP#hongang-xtr" }, { 0x261000d0, 0x321f0000, 0xffffffff, 0xffff0000, 48, "LISP#chaney-xtr" }, { 0x261000d0, 0x32200000, 0xffffffff, 0xffff0000, 48, "LISP#kozuka-xtr" }, { 0x261000d0, 0x32210000, 0xffffffff, 0xffff0000, 48, "LISP#nattrav-test-apnic" }, { 0x261000d0, 0x32220000, 0xffffffff, 0xffff0000, 48, "LISP#ydpark-xtr" }, { 0x261000d0, 0x32230000, 0xffffffff, 0xffff0000, 48, "LISP#farhadsh-xtr" }, { 0x261000d0, 0x32240000, 0xffffffff, 0xffff0000, 48, "LISP#hawthorne-xtr" }, { 0x261000d0, 0x32250000, 0xffffffff, 0xffff0000, 48, "LISP#hyunsoo-xtr" }, { 0x261000d0, 0x32260000, 0xffffffff, 0xffff0000, 48, "LISP#ykenu-xtr" }, { 0x261000d0, 0x32270000, 0xffffffff, 0xffff0000, 48, "LISP#gsik-xtr" }, { 0x261000d0, 0x32280000, 0xffffffff, 0xffff0000, 48, "LISP#yshiin-xtr" }, { 0x261000d0, 0x32290000, 0xffffffff, 0xffff0000, 48, "LISP#tao-networks2-xtr" }, { 0x261000d0, 0x322a0000, 0xffffffff, 0xffff0000, 48, "LISP#rdines-xtr" }, { 0x261000d0, 0x322b0000, 0xffffffff, 0xffff0000, 48, "LISP#upc-oor2-xtr" }, { 0x261000d0, 0x322c0000, 0xffffffff, 0xffff0000, 48, "LISP#ietf100-xtr" }, { 0x261000d0, 0x322d0000, 0xffffffff, 0xffff0000, 48, "LISP#sukiyaki-proj-xtr" }, { 0x261000d0, 0x322e0000, 0xffffffff, 0xffff0000, 48, "LISP#sukiyaki2-proj-xtr" }, { 0x261000d0, 0x322f0000, 0xffffffff, 0xffff0000, 48, "LISP#gtja-xtr" }, { 0x261000d0, 0x32300000, 0xffffffff, 0xffff0000, 48, "LISP#hcmus-xtr" }, { 0x261000d0, 0x32310000, 0xffffffff, 0xffff0000, 48, "LISP#amacuz-xtr" }, { 0x261000d0, 0x323f0000, 0xffffffff, 0xffff0000, 48, "LISP#gs9591-xtr" }, { 0x261000d0, 0x50000000, 0xffffffff, 0xffff0000, 48, "LISP#ufba-xtr" }, { 0x261000d0, 0xface0000, 0xffffffff, 0xffff0000, 48, "LISP#facebook-xtr-2" }, }; ipv6calc-4.1.0/databases/lib/000077500000000000000000000000001444154247200157275ustar00rootroot00000000000000ipv6calc-4.1.0/databases/lib/Makefile.in000066400000000000000000000050231444154247200177740ustar00rootroot00000000000000# Project : ipv6calc # File : databases/lib/Makefile # Version : $Id: 17833f74feab546ea2cb3d1d1f87b0626f8100b3 $ # Copyright : 2013-2020 by Peter Bieringer # # Information: # Makefile for ipv6calc database libraries # libdir = @libdir@ # Compiler and Linker Options # -D__EXTENSIONS__ is for Solaris & strtok_r DEFAULT_CFLAGS ?= -O2 -Wall @CFLAGS_EXTRA@ CFLAGS += -D__EXTENSIONS__ -fPIC LDFLAGS += @LDFLAGS@ INCLUDES= -I../../lib -I../.. @MMDB_INCLUDE_L2@ @IP2LOCATION_INCLUDE_L2@ SHARED_LIBRARY=@SHARED_LIBRARY@ ifeq ($(shell uname), Darwin) SO_NAME_FLAGS=-install_name else SO_NAME_FLAGS=-soname endif CC = @CC@ AR = ar RANLIB = @RANLIB@ OBJS = libipv6calc_db_wrapper.o \ libipv6calc_db_wrapper_MMDB.o \ libipv6calc_db_wrapper_GeoIP2.o \ libipv6calc_db_wrapper_IP2Location.o \ libipv6calc_db_wrapper_DBIP2.o \ libipv6calc_db_wrapper_External.o \ libipv6calc_db_wrapper_BuiltIn.o all: ${MAKE} libipv6calc_db_wrapper.a ${MAKE} libipv6calc_db_wrapper.so.@PACKAGE_VERSION@ .c.o: $(CC) -c $< $(DEFAULT_CFLAGS) $(CFLAGS) $(INCLUDES) $(OBJS): libipv6calc_db_wrapper.h \ libipv6calc_db_wrapper_MMDB.h \ libipv6calc_db_wrapper_GeoIP2.h \ libipv6calc_db_wrapper_IP2Location.h \ libipv6calc_db_wrapper_DBIP2.h \ libipv6calc_db_wrapper_External.h \ libipv6calc_db_wrapper_BuiltIn.h \ ../../lib/libipv6calcdebug.h \ ../ieee-oui/dbieee_oui.h \ ../ieee-oui36/dbieee_oui36.h \ ../ieee-iab/dbieee_iab.h \ ../ipv4-assignment/dbipv4addr_assignment.h \ ../ipv6-assignment/dbipv6addr_assignment.h \ ../as-assignment/dbasn_assignment.h \ ../cc-assignment/db_cc_reg_assignment.h \ ../../config.h libipv6calc_db_wrapper.a: $(OBJS) echo "Create library" $(AR) r libipv6calc_db_wrapper.a $(OBJS) $(RANLIB) libipv6calc_db_wrapper.a libipv6calc_db_wrapper.so.@PACKAGE_VERSION@: $(OBJS) ifeq ($(SHARED_LIBRARY), yes) echo "Create shared library (libipv6calc_db_wrapper.so)" $(CC) -o libipv6calc_db_wrapper.so.@PACKAGE_VERSION@ $(OBJS) $(LDFLAGS) -shared -Wl,$(SO_NAME_FLAGS),libipv6calc_db_wrapper.so.@PACKAGE_VERSION@ else echo "Nothing to do (shared library mode is not enabled)" endif distclean: ${MAKE} clean autoclean: ${MAKE} distclean clean: rm -f *.o *.a *.so *.so.* install: all ifeq ($(SHARED_LIBRARY), yes) echo "Install shared library" mkdir -p $(DESTDIR)$(libdir) install -m 755 libipv6calc_db_wrapper.so.@PACKAGE_VERSION@ $(DESTDIR)$(libdir) /sbin/ldconfig -n $(DESTDIR)$(libdir) else echo "Nothing to do (shared library mode is not enabled)" endif test: ipv6calc-4.1.0/databases/lib/libipv6calc_db_wrapper.c000066400000000000000000004037371444154247200225140ustar00rootroot00000000000000/* * Project : ipv6calc * File : databases/lib/libipv6calc_db_wrapper.c * Version : $Id: 61c922d60026bb305225f463a34d91379b19e724 $ * Copyright : 2013-2021 by Peter Bieringer * * Information: * ipv6calc database wrapper (for decoupling databases from main binary) */ #include #include #include #include #include #include #include "config.h" #include "libipv6calcdebug.h" #include "ipv6calcoptions.h" #include "libipv6calc_db_wrapper.h" #include "libipv6calc_db_wrapper_MMDB.h" #include "libipv6calc_db_wrapper_GeoIP2.h" #include "libipv6calc_db_wrapper_IP2Location.h" #include "libipv6calc_db_wrapper_DBIP2.h" #include "libipv6calc_db_wrapper_External.h" #include "libipv6calc_db_wrapper_BuiltIn.h" #include "libmac.h" #include "libipv4addr.h" #include "libipv6addr.h" #include "libipaddr.h" #include "ipv6calctypes.h" #include "libipv6calc.h" #ifdef DOMAIN // fallback for IP2Location.h < 8.0.0 where "DOMAIN" is defined // code taken from https://stackoverflow.com/questions/994593/how-to-do-an-integer-log2-in-c static int uint64_log2(uint64_t n) { #define S(k) if (n >= (UINT64_C(1) << k)) { i += k; n >>= k; } int i = -(n == 0); S(32); S(16); S(8); S(4); S(2); S(1); return i; #undef S }; #else #include #define uint64_log2 log2 #endif #ifdef SUPPORT_IP2LOCATION /* * API_VERSION is defined as a bareword in IP2Location.h, * we need this trick to stringify it. Blah. */ #define makestr(x) #x #define xmakestr(x) makestr(x) #endif #ifdef SUPPORT_GEOIP2 static int wrapper_GeoIP2_disable = 0; static int wrapper_GeoIP2_status = 0; #endif #ifdef SUPPORT_IP2LOCATION static int wrapper_IP2Location_disable = 0; static int wrapper_IP2Location_status = 0; #endif #ifdef SUPPORT_DBIP2 static int wrapper_DBIP2_disable = 0; static int wrapper_DBIP2_status = 0; #endif #ifdef SUPPORT_EXTERNAL static int wrapper_External_disable = 0; static int wrapper_External_status = 0; #endif #ifdef SUPPORT_BUILTIN static int wrapper_BuiltIn_disable = 0; static int wrapper_BuiltIn_status = 0; #endif uint32_t wrapper_features = 0; uint32_t wrapper_features_by_source[IPV6CALC_DB_SOURCE_MAX + 1]; uint32_t wrapper_features_by_source_implemented[IPV6CALC_DB_SOURCE_MAX + 1]; int wrapper_features_selector[IPV6CALC_DB_FEATURE_NUM_MAX + 1][IPV6CALC_DB_PRIO_MAX]; unsigned int wrapper_source_priority_selector[IPV6CALC_DB_SOURCE_MAX + 1]; int wrapper_source_priority_selector_by_option = -1; // -1: uninitialized, 0: initialized, > 0: touched by option /* * function initialise the main wrapper * * in : (nothing) * out: 0=ok, 1=error */ int libipv6calc_db_wrapper_init(const char *prefix_string) { int result = 0, f, p, s, j; #if defined SUPPORT_IP2LOCATION || defined SUPPORT_EXTERNAL || defined SUPPORT_BUILTIN || defined SUPPORT_GEOIP2 || defined SUPPORT_DBIP2 int r; #endif s = strlen(prefix_string); // make compiler happy (avoid unused "...") DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called"); // clear feature selector for (f = IPV6CALC_DB_FEATURE_NUM_MIN; f <= IPV6CALC_DB_FEATURE_NUM_MAX; f++) { for (p = 0; p < IPV6CALC_DB_PRIO_MAX; p++) { wrapper_features_selector[f][p] = 0; }; }; for (s = 0; s <= IPV6CALC_DB_SOURCE_MAX; s++) { wrapper_features_by_source[s] = 0; }; // initialize priority selector if (wrapper_source_priority_selector_by_option < 0) { for (s = 0; s <= IPV6CALC_DB_SOURCE_MAX; s++) { wrapper_source_priority_selector[s] = 0; }; wrapper_source_priority_selector_by_option = 0; }; // initialize priority if (wrapper_source_priority_selector_by_option == 0) { // default for (s = IPV6CALC_DB_SOURCE_MIN; s <= IPV6CALC_DB_SOURCE_MAX; s++) { wrapper_source_priority_selector[s] = s; }; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Database priorization already given by option, fill missing ones: %d", wrapper_source_priority_selector_by_option); for (j = IPV6CALC_DB_SOURCE_MIN; j <= wrapper_source_priority_selector_by_option; j++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Database priorization/defined by option entry %d: %s", j, libipv6calc_db_wrapper_get_data_source_name_by_number(wrapper_source_priority_selector[j])); }; // already touched by option, fill not mentioned ones for (j = 0; j < MAXENTRIES_ARRAY(data_sources); j++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Database priorization/test source: %s", data_sources[j].shortname); for (s = IPV6CALC_DB_SOURCE_MIN; s <= wrapper_source_priority_selector_by_option; s++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Database priorization/check: %s", libipv6calc_db_wrapper_get_data_source_name_by_number(wrapper_source_priority_selector[s])); if (wrapper_source_priority_selector[s] == data_sources[j].number) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Database priorization/source already defined: %s", data_sources[j].shortname); // already set, skip break; }; }; if (s > wrapper_source_priority_selector_by_option) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Database priorization/source missing, add: %s", data_sources[j].shortname); wrapper_source_priority_selector_by_option++; wrapper_source_priority_selector[wrapper_source_priority_selector_by_option] = data_sources[j].number; }; }; }; for (j = IPV6CALC_DB_SOURCE_MIN; j <= wrapper_source_priority_selector_by_option; j++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Database priorization/defined by option entry %d: %s", j, libipv6calc_db_wrapper_get_data_source_name_by_number(wrapper_source_priority_selector[j])); }; #ifdef SUPPORT_MMDB DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call libipv6calc_db_wrapper_MMDB_wrapper_init"); r = libipv6calc_db_wrapper_MMDB_wrapper_init(); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "MMDB_wrapper_init result: %d", r); if (r != 0) { #ifndef SUPPORT_MMDB_DYN // only non-dynamic-load results in a problem result = 1; #endif // disable support for GEOIP2 & DBIP2 #ifdef SUPPORT_GEOIP2 wrapper_GeoIP2_disable = r; #endif #ifdef SUPPORT_DBIP2 wrapper_DBIP2_disable = r; #endif }; #else // disable support for GEOIP2 & DBIP2 #ifdef SUPPORT_GEOIP2 wrapper_GeoIP2_disable = 3; #endif #ifdef SUPPORT_DBIP2 wrapper_DBIP2_disable = 3; #endif #endif #ifdef SUPPORT_GEOIP2 if (wrapper_GeoIP2_disable == 0) { // Call GeoIP2 wrapper DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call libipv6calc_db_wrapper_GeoIP2_wrapper_init"); r = libipv6calc_db_wrapper_GeoIP2_wrapper_init(); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "GeoIP2_wrapper_init result: %d wrapper_features=0x%08x", r, wrapper_features); if (r != 0) { #ifndef SUPPORT_MMDB_DYN // only non-dynamic-load results in a problem result = 1; #endif } else { wrapper_GeoIP2_status = 1; // ok }; } else if (wrapper_GeoIP2_disable == 1) { NONQUIETPRINT_WA("%sSupport for GeoIP (MaxMindDB) disabled by option", prefix_string); } else if (wrapper_GeoIP2_disable == 2) { #ifdef SUPPORT_MMDB_DYN NONQUIETPRINT_WA("%sSupport for GeoIP (MaxMindDB) disabled, no MaxMindDB library found: %s", prefix_string, mmdb_lib_file); #endif } else { #ifdef SUPPORT_MMDB_DYN NONQUIETPRINT_WA("%sSupport for GeoIP (MaxMindDB) disabled by MaxMindDB library problem: %s", prefix_string, mmdb_lib_file); #endif }; #endif // SUPPORT_GEOIP2 #ifdef SUPPORT_IP2LOCATION if (wrapper_IP2Location_disable == 0) { // Call IP2Location wrapper DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call libipv6calc_db_wrapper_IP2Location_wrapper_init"); r = libipv6calc_db_wrapper_IP2Location_wrapper_init(); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "IP2Location_wrapper_init result: %d wrapper_features=0x%08x", r, wrapper_features); if (r != 0) { #ifndef SUPPORT_IP2LOCATION_DYN // only non-dynamic-load results in a problem result = 1; #endif } else { wrapper_IP2Location_status = 1; // ok }; } else { NONQUIETPRINT_WA("%sSupport for IP2Location disabled by option", prefix_string); }; #endif // SUPPORT_IP2LOCATION #ifdef SUPPORT_DBIP2 if (wrapper_DBIP2_disable == 0) { // Call DBIP2 wrapper DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call libipv6calc_db_wrapper_DBIP2_wrapper_init"); r = libipv6calc_db_wrapper_DBIP2_wrapper_init(); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "DBIP2_wrapper_init result: %d wrapper_features=0x%08x", r, wrapper_features); if (r != 0) { #ifndef SUPPORT_MMDB_DYN // only non-dynamic-load results in a problem result = 1; #endif } else { wrapper_DBIP2_status = 1; // ok }; } else if (wrapper_DBIP2_disable == 1) { NONQUIETPRINT_WA("%sSupport for db-ip.com (MaxMindDB) disabled by option", prefix_string); } else if (wrapper_DBIP2_disable == 2) { #ifdef SUPPORT_MMDB_DYN NONQUIETPRINT_WA("%sSupport for db-ip.com (MaxMindDB) disabled, no MaxMindDB library found: %s", prefix_string, mmdb_lib_file); #endif } else { #ifdef SUPPORT_MMDB_DYN NONQUIETPRINT_WA("%sSupport for db-ip.com (MaxMindDB) disabled by MaxMindDB library problem: %s", prefix_string, mmdb_lib_file); #endif }; #endif // SUPPORT_DBIP2 #ifdef SUPPORT_EXTERNAL if (wrapper_External_disable == 0) { // Call External wrapper DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call libipv6calc_db_wrapper_External_wrapper_init"); r = libipv6calc_db_wrapper_External_wrapper_init(); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "External_wrapper_init result: %d wrapper_features=0x%08x", r, wrapper_features); if (r != 0) { result = 1; } else { wrapper_External_status = 1; // ok }; } else { NONQUIETPRINT_WA("%sSupport for External disabled by option", prefix_string); }; #endif // SUPPORT_EXTERNAL #ifdef SUPPORT_BUILTIN if (wrapper_BuiltIn_disable == 0) { // Call BuiltIn wrapper DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call libipv6calc_db_wrapper_BuiltIn_wrapper_init"); r = libipv6calc_db_wrapper_BuiltIn_wrapper_init(); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "BuiltIn_wrapper_init result: %d wrapper_features=0x%08x", r, wrapper_features); if (r != 0) { result = 1; } else { wrapper_BuiltIn_status = 1; // ok }; }; #endif // SUPPORT_BUILTIN // select source for feature by standard priority (from last to first in list) DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "select source for feature by standard priority"); // run through feature numbers for (f = IPV6CALC_DB_FEATURE_NUM_MIN; f <= IPV6CALC_DB_FEATURE_NUM_MAX; f++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "check feature f=%d", f); // run through sources int sp; for (sp = IPV6CALC_DB_SOURCE_MIN; sp <= IPV6CALC_DB_SOURCE_MAX; sp++) { s = wrapper_source_priority_selector[sp]; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "check feature by source f=%d s=%d sp=%d", f, s, sp); if ((wrapper_features_by_source[s] & (1 << f)) != 0) { // supported, run through prio array for (p = 0; p < IPV6CALC_DB_PRIO_MAX; p++) { if (wrapper_features_selector[f][p] == 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "select feature with source f=%d s=%d p=%d", f, s, p); wrapper_features_selector[f][p] = s; break; } else { #if defined SUPPORT_BUILTIN && defined SUPPORT_EXTERNAL // special handling for BuiltIn/External (no subsequent calls) if ((wrapper_BuiltIn_disable == 0) && (wrapper_External_disable == 0)) { // IPv4 -> Registry if (((1 << f) == IPV6CALC_DB_IPV4_TO_REGISTRY) && \ ( (s == IPV6CALC_DB_SOURCE_BUILTIN && (wrapper_features_selector[f][p] == IPV6CALC_DB_SOURCE_EXTERNAL)) \ || (s == IPV6CALC_DB_SOURCE_EXTERNAL && (wrapper_features_selector[f][p] == IPV6CALC_DB_SOURCE_BUILTIN)) )) { // BuiltIn & External have feature enabled and one of them is already selected for p=0 time_t db_unixtime_BuiltIn = libipv6calc_db_wrapper_BuiltIn_db_unixtime_by_feature(IPV6CALC_DB_IPV4_TO_REGISTRY); time_t db_unixtime_External = libipv6calc_db_wrapper_External_db_unixtime_by_feature(IPV6CALC_DB_IPV4_TO_REGISTRY); if ((db_unixtime_BuiltIn > 0) && (db_unixtime_External > 0)) { if (db_unixtime_BuiltIn < db_unixtime_External) { wrapper_features_selector[f][p] = IPV6CALC_DB_SOURCE_EXTERNAL; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "BuiltIn has older DB than External for IPV6CALC_DB_IPV4_TO_REGISTRY"); } else { wrapper_features_selector[f][p] = IPV6CALC_DB_SOURCE_BUILTIN; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "External has older DB than BuiltIn for IPV6CALC_DB_IPV4_TO_REGISTRY"); }; break; // no further extension of priority list }; }; // IPv6 -> Registry if (((1 << f) == IPV6CALC_DB_IPV6_TO_REGISTRY) && \ ( (s == IPV6CALC_DB_SOURCE_BUILTIN && (wrapper_features_selector[f][p] == IPV6CALC_DB_SOURCE_EXTERNAL)) \ || (s == IPV6CALC_DB_SOURCE_EXTERNAL && (wrapper_features_selector[f][p] == IPV6CALC_DB_SOURCE_BUILTIN)) )) { // BuiltIn & External have feature enabled and one of them is already selected for p=0 time_t db_unixtime_BuiltIn = libipv6calc_db_wrapper_BuiltIn_db_unixtime_by_feature(IPV6CALC_DB_IPV6_TO_REGISTRY); time_t db_unixtime_External = libipv6calc_db_wrapper_External_db_unixtime_by_feature(IPV6CALC_DB_IPV6_TO_REGISTRY); if ((db_unixtime_BuiltIn > 0) && (db_unixtime_External > 0)) { if (db_unixtime_BuiltIn < db_unixtime_External) { wrapper_features_selector[f][p] = IPV6CALC_DB_SOURCE_EXTERNAL; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "BuiltIn has older DB than External for IPV6CALC_DB_IPV6_TO_REGISTRY"); } else { wrapper_features_selector[f][p] = IPV6CALC_DB_SOURCE_BUILTIN; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "External has older DB than BuiltIn for IPV6CALC_DB_IPV6_TO_REGISTRY"); }; break; // no further extension of priority list }; }; }; #endif // SUPPORT_BUILTIN && SUPPORT_EXTERNAL }; }; }; }; }; #ifdef TEST #if defined SUPPORT_BUILTIN && defined SUPPORT_EXTERNAL // IPv4 -> Registry if ((wrapper_BuiltIn_status == 1) && (wrapper_External_status == 1)) { if (libipv6calc_db_wrapper_External_has_features(IPV6CALC_DB_IPV4_TO_REGISTRY) == 1 \ && libipv6calc_db_wrapper_BuiltIn_has_features(IPV6CALC_DB_IPV4_TO_REGISTRY) == 1) { // BuiltIn & External have feature enabled (both) time_t db_unixtime_BuiltIn = libipv6calc_db_wrapper_BuiltIn_db_unixtime_by_feature(IPV6CALC_DB_IPV4_TO_REGISTRY); time_t db_unixtime_External = libipv6calc_db_wrapper_External_db_unixtime_by_feature(IPV6CALC_DB_IPV4_TO_REGISTRY); if ((db_unixtime_BuiltIn > 0) && (db_unixtime_External > 0)) { if (db_unixtime_BuiltIn < db_unixtime_External) { wrapper_features_selector[IPV6CALC_DB_FEATURE_NUM_IPV4_TO_REGISTRY][0] = IPV6CALC_DB_SOURCE_EXTERNAL; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "BuiltIn has older DB than External for IPV6CALC_DB_IPV4_TO_REGISTRY, disable it further"); } else { wrapper_features_selector[IPV6CALC_DB_FEATURE_NUM_IPV4_TO_REGISTRY][0] = IPV6CALC_DB_SOURCE_BUILTIN; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "External has older DB than BuiltIn for IPV6CALC_DB_IPV4_TO_REGISTRY, disable it further"); }; }; }; }; #endif // SUPPORT_BUILTIN && SUPPORT_EXTERNAL #endif return(result); }; /* * function cleanup the main wrapper * * in : (nothing) * out: 0=ok, 1=error */ int libipv6calc_db_wrapper_cleanup(void) { int result = 0; #if defined SUPPORT_IP2LOCATION || defined SUPPORT_EXTERNAL || defined SUPPORT_BUILTIN || defined SUPPORT_GEOIP2 || defined SUPPORT_DBIP2 int r; #endif DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called"); #ifdef SUPPORT_GEOIP2 if (wrapper_GeoIP2_disable == 0) { // Call GeoIP2 wrapper r = libipv6calc_db_wrapper_GeoIP2_wrapper_cleanup(); if (r != 0) { result = 1; }; }; #endif #ifdef SUPPORT_IP2LOCATION if (wrapper_IP2Location_disable == 0) { // Call IP2Location wrapper r = libipv6calc_db_wrapper_IP2Location_wrapper_cleanup(); if (r != 0) { result = 1; }; }; #endif #ifdef SUPPORT_DBIP2 if (wrapper_DBIP2_disable == 0) { // Call DBIP2 wrapper r = libipv6calc_db_wrapper_DBIP2_wrapper_cleanup(); if (r != 0) { result = 1; }; }; #endif #ifdef SUPPORT_EXTERNAL if (wrapper_External_disable == 0) { // Call DBIP2 wrapper r = libipv6calc_db_wrapper_External_wrapper_cleanup(); if (r != 0) { result = 1; }; }; #endif #ifdef SUPPORT_BUILTIN if (wrapper_BuiltIn_disable == 0) { // Call BuiltIn wrapper r = libipv6calc_db_wrapper_BuiltIn_wrapper_cleanup(); if (r != 0) { result = 1; }; }; #endif return(result); }; /* function get info strings */ void libipv6calc_db_wrapper_info(char *string, const size_t size) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called"); snprintf(string, size, "%s", ""); // default empty #ifdef SUPPORT_GEOIP2 if (wrapper_GeoIP2_disable == 0) { // Call GeoIP2 wrapper libipv6calc_db_wrapper_GeoIP2_wrapper_info(string, size); }; #endif #ifdef SUPPORT_IP2LOCATION if (wrapper_IP2Location_disable == 0) { // Call IP2Location wrapper libipv6calc_db_wrapper_IP2Location_wrapper_info(string, size); }; #endif #ifdef SUPPORT_DBIP2 if (wrapper_DBIP2_disable == 0) { // Call DBIP2 wrapper libipv6calc_db_wrapper_DBIP2_wrapper_info(string, size); }; #endif #ifdef SUPPORT_EXTERNAL if (wrapper_External_disable == 0) { // Call BuiltIn wrapper libipv6calc_db_wrapper_External_wrapper_info(string, size); }; #endif #ifdef SUPPORT_BUILTIN if (wrapper_BuiltIn_disable == 0) { // Call BuiltIn wrapper libipv6calc_db_wrapper_BuiltIn_wrapper_info(string, size); }; #endif DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Result: %s", string); return; }; /* function get feature string */ void libipv6calc_db_wrapper_features(char *string, const size_t size) { int i; char tempstring[IPV6CALC_STRING_MAX]; char *separator; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called"); for (i = 0; i < MAXENTRIES_ARRAY(ipv6calc_db_features); i++) { if (wrapper_features & ipv6calc_db_features[i].number) { if (strlen(string) == 0) { separator = ""; } else { separator = " "; }; snprintf(tempstring, sizeof(tempstring), "%s%s%s", string, separator, ipv6calc_db_features[i].token); snprintf(string, size, "%s", tempstring); }; }; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Return"); return; }; /* function get capability string */ void libipv6calc_db_wrapper_capabilities(char *string, const size_t size) { #if defined SUPPORT_IP2LOCATION || defined SUPPORT_EXTERNAL || defined SUPPORT_BUILTIN || defined SUPPORT_GEOIP2 || defined SUPPORT_DBIP2 char tempstring[IPV6CALC_STRING_MAX]; #endif DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called"); snprintf(string, size, "%s", ""); // default empty #ifdef SUPPORT_GEOIP2 if (wrapper_GeoIP2_disable == 0) { #ifdef SUPPORT_MMDB_DYN snprintf(tempstring, sizeof(tempstring), "%s%sGeoIP2(dyn-load/MaxMindDB)", string, strlen(string) > 0 ? " " : ""); #else snprintf(tempstring, sizeof(tempstring), "%s%sGeoIP2(linked/MaxMindDB)", string, strlen(string) > 0 ? " " : ""); #endif // SUPPORT_MMDB_DYN snprintf(string, size, "%s", tempstring); }; #endif // SUPPORT_GEOIP2 #ifdef SUPPORT_IP2LOCATION if (wrapper_IP2Location_disable == 0) { #ifdef SUPPORT_IP2LOCATION_DYN snprintf(tempstring, sizeof(tempstring), "%s%sIP2Location(dyn-load)", string, strlen(string) > 0 ? " " : ""); #else // SUPPORT_IP2LOCATION_DYN #ifdef SUPPORT_IP2LOCATION_STATIC snprintf(tempstring, sizeof(tempstring), "%s%sIP2Location(static)", string, strlen(string) > 0 ? " " : ""); #else // SUPPORT_IP2LOCATION_STATIC snprintf(tempstring, sizeof(tempstring), "%s%sIP2Location(linked)", string, strlen(string) > 0 ? " " : ""); #endif // SUPPORT_IP2LOCATION_STATIC #endif //SUPPORT_IP2LOCATION_DYN snprintf(string, size, "%s", tempstring); }; #endif // SUPPORT_IP2LOCATION #ifdef SUPPORT_DBIP2 if (wrapper_DBIP2_disable == 0) { #ifdef SUPPORT_MMDB_DYN snprintf(tempstring, sizeof(tempstring), "%s%sDBIP2(dyn-load/MaxMindDB)", string, strlen(string) > 0 ? " " : ""); #else snprintf(tempstring, sizeof(tempstring), "%s%sDBIP2(linked/MaxMindDB)", string, strlen(string) > 0 ? " " : ""); #endif snprintf(string, size, "%s", tempstring); }; #endif #ifdef SUPPORT_EXTERNAL if (wrapper_External_disable == 0) { snprintf(tempstring, sizeof(tempstring), "%s%sExternalDatabase", string, strlen(string) > 0 ? " " : ""); snprintf(string, size, "%s", tempstring); }; #endif #ifdef SUPPORT_BUILTIN if (wrapper_BuiltIn_disable == 0) { snprintf(tempstring, sizeof(tempstring), "%s%sDB_AS_REG(BuiltIn)", string, strlen(string) > 0 ? " " : ""); snprintf(string, size, "%s", tempstring); snprintf(tempstring, sizeof(tempstring), "%s%sDB_CC_REG(BuiltIn)", string, strlen(string) > 0 ? " " : ""); snprintf(string, size, "%s", tempstring); #ifdef SUPPORT_DB_IPV4_REG snprintf(tempstring, sizeof(tempstring), "%s%sDB_IPV4_REG(BuiltIn)", string, strlen(string) > 0 ? " " : ""); snprintf(string, size, "%s", tempstring); #endif #ifdef SUPPORT_DB_IPV6_REG snprintf(tempstring, sizeof(tempstring), "%s%sDB_IPV6_REG(BuiltIn)", string, strlen(string) > 0 ? " " : ""); snprintf(string, size, "%s", tempstring); #endif #ifdef SUPPORT_DB_IEEE snprintf(tempstring, sizeof(tempstring), "%s%sDB_IEEE(BuiltIn)", string, strlen(string) > 0 ? " " : ""); snprintf(string, size, "%s", tempstring); #endif }; #endif // SUPPORT_BUILTIN DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Result: %s", string); return; }; /* function print wrapper features */ void libipv6calc_db_wrapper_print_features_verbose(const int level_verbose) { #if defined SUPPORT_IP2LOCATION || defined SUPPORT_EXTERNAL || defined SUPPORT_BUILTIN || defined SUPPORT_GEOIP2 || defined SUPPORT_DBIP2 char string[IPV6CALC_STRING_MAX] = ""; #endif #ifdef SUPPORT_MMDB #ifdef MMDB_INCLUDE_VERSION fprintf(stderr, "MaxMindDB for GeoIP2/DBIP2 support enabled, compiled with include file version: %s\n", MMDB_INCLUDE_VERSION); #else fprintf(stderr, "MaxMindDB for GeoIP2/DBIP2 support enabled\n"); #endif // MMDB_INCLUDE_VERSION #ifndef SUPPORT_MMDB_DYN fprintf(stderr, "MaxMindDB dynamic library version (on this system): %s\n\n", libipv6calc_db_wrapper_MMDB_lib_version()); #else fprintf(stderr, "MaxMindDB configured dynamic library file and detected version: %s %s\n\n", mmdb_lib_file, libipv6calc_db_wrapper_MMDB_lib_version()); #endif // SUPPORT_MMDB_DYN #endif #ifdef SUPPORT_GEOIP2 if (wrapper_GeoIP2_disable == 0) { fprintf(stderr, "GeoIP2 (MaxMindDB) support enabled\n"); libipv6calc_db_wrapper_GeoIP2_wrapper_info(string, sizeof(string)); fprintf(stderr, "%s\n\n", string); } else if (wrapper_GeoIP2_disable == 1) { fprintf(stderr, "GeoIP2 (MaxMindDB) disabled by option\n\n"); } else { fprintf(stderr, "GeoIP2 (MaxMindDB) disabled by MaxMindDB library problem\n\n"); }; #else fprintf(stderr, "GeoIP2 (MaxMindDB) support not compiled-in\n\n"); #endif #ifdef SUPPORT_IP2LOCATION if (wrapper_IP2Location_disable == 0) { #ifdef IP2LOCATION_INCLUDE_VERSION fprintf(stderr, "IP2Location support enabled, compiled with include file version: %s\n", IP2LOCATION_INCLUDE_VERSION); #endif fprintf(stderr, "IP2Location support enabled, compiled with API version: %s, dynamically linked with version: %s\n", xmakestr(API_VERSION), libipv6calc_db_wrapper_IP2Location_lib_version()); #ifndef SUPPORT_IP2LOCATION_DYN #else fprintf(stderr, "IP2Location support by dynamic library load\n"); fprintf(stderr, "IP2Location configured dynamic library file and detected version: %s %s\n", ip2location_lib_file, libipv6calc_db_wrapper_IP2Location_lib_version()); #endif libipv6calc_db_wrapper_IP2Location_wrapper_info(string, sizeof(string)); fprintf(stderr, "%s\n\n", string); } else { fprintf(stderr, "IP2Location disabled by option\n\n"); }; #else fprintf(stderr, "IP2Location support not compiled-in\n\n"); #endif #ifdef SUPPORT_DBIP2 if (wrapper_DBIP2_disable == 0) { fprintf(stderr, "DBIP2 (MaxMindDB) support enabled\n"); libipv6calc_db_wrapper_DBIP2_wrapper_info(string, sizeof(string)); fprintf(stderr, "%s\n\n", string); } else if (wrapper_DBIP2_disable == 1) { fprintf(stderr, "DBIP2 support disabled by option\n\n"); } else { fprintf(stderr, "DBIP2 (MaxMindDB) disabled by MaxMindDB library problem\n\n"); }; #else fprintf(stderr, "DBIP2 support not compiled-in\n\n"); #endif #ifdef SUPPORT_EXTERNAL if (wrapper_External_disable == 0) { libipv6calc_db_wrapper_External_wrapper_info(string, sizeof(string)); fprintf(stderr, "%s\n\n", string); } else { fprintf(stderr, "External database support disabled by option\n\n"); }; #else fprintf(stderr, "External database support not compiled-in\n\n"); #endif #ifdef SUPPORT_BUILTIN if (wrapper_BuiltIn_disable == 0) { libipv6calc_db_wrapper_BuiltIn_wrapper_info(string, sizeof(string)); fprintf(stderr, "%s\n\n", string); } else { fprintf(stderr, "BuiltIn database support disabled by option\n\n"); }; #else fprintf(stderr, "BuiltIn database support not compiled-in\n\n"); #endif libipv6calc_db_wrapper_print_db_info(level_verbose, ""); }; /* function get source name by number * in: source number * out: source name */ const char *libipv6calc_db_wrapper_get_data_source_name_by_number(const unsigned int number) { int i; for (i = 0; i < MAXENTRIES_ARRAY(data_sources); i++) { if (data_sources[i].number == number) { return(data_sources[i].name); }; }; ERRORPRINT_WA("unsupported data_source number: %d (FIX CODE)\n", number); exit(1); }; /* function get feature index by number * in: feature number * out: index */ static int libipv6calc_db_wrapper_get_feature_index_by_feature(const uint32_t feature) { int i; for (i = 0; i < MAXENTRIES_ARRAY(ipv6calc_db_features); i++) { if (ipv6calc_db_features[i].number == feature) { return(i); }; }; ERRORPRINT_WA("unsupported feature: %d (FIX CODE)\n", feature); exit(1); }; /* function print feature string help */ void libipv6calc_db_wrapper_features_help(void) { int i, s, first; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called"); for (i = 0; i < MAXENTRIES_ARRAY(ipv6calc_db_features); i++) { fprintf(stderr, "%-25s%c %s", ipv6calc_db_features[i].token, (wrapper_features & ipv6calc_db_features[i].number) ? 'x' : 'o', ipv6calc_db_features[i].explanation); first = 1; for (s = IPV6CALC_DB_SOURCE_MIN; s <= IPV6CALC_DB_SOURCE_MAX; s++) { if ((wrapper_features_by_source_implemented[s] & ipv6calc_db_features[i].number) != 0) { fprintf(stderr, "%s%s", (first == 1) ? " (provided by " : ",", libipv6calc_db_wrapper_get_data_source_name_by_number(s)); first = 0; }; }; fprintf(stderr, "%s\n", (first == 1) ? "" : ")"); }; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Return"); return; }; /* function print db info */ void libipv6calc_db_wrapper_print_db_info(const int level_verbose, const char *prefix_string) { int f, p, f_index; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called with verbose level: %d", level_verbose); fprintf(stderr, "%sDB features: 0x%08x\n\n", prefix_string, wrapper_features); #ifdef SUPPORT_GEOIP2 if (wrapper_GeoIP2_disable == 0) { // Call GeoIP2 wrapper libipv6calc_db_wrapper_GeoIP2_wrapper_print_db_info(level_verbose, prefix_string); } else if (wrapper_GeoIP2_disable == 1) { fprintf(stderr, "%sGeoIP (MaxMindDB) support available but disabled by option\n", prefix_string); } else { fprintf(stderr, "%sGeoIP (MaxMindDB) support available but disabled by MaxMindDB library problem\n", prefix_string); }; fprintf(stderr, "\n"); #endif #ifdef SUPPORT_IP2LOCATION if (wrapper_IP2Location_disable == 0) { // Call IP2Location wrapper libipv6calc_db_wrapper_IP2Location_wrapper_print_db_info(level_verbose, prefix_string); } else { fprintf(stderr, "%sIP2Location support available but disabled by option\n", prefix_string); }; fprintf(stderr, "\n"); #endif #ifdef SUPPORT_DBIP2 if (wrapper_DBIP2_disable == 0) { // Call DBIP2 wrapper libipv6calc_db_wrapper_DBIP2_wrapper_print_db_info(level_verbose, prefix_string); } else if (wrapper_DBIP2_disable == 1) { fprintf(stderr, "%sdb-ip.com (MaxMindDB) support available but disabled by option\n", prefix_string); } else { fprintf(stderr, "%sdb-ip.com (MaxMindDB) support available but disabled by MaxMindDB library problem\n", prefix_string); }; fprintf(stderr, "\n"); #endif #ifdef SUPPORT_EXTERNAL if (wrapper_External_disable == 0) { // Call External wrapper libipv6calc_db_wrapper_External_wrapper_print_db_info(level_verbose, prefix_string); } else { fprintf(stderr, "%sExternal support available but disabled by option\n", prefix_string); }; fprintf(stderr, "\n"); #endif #ifdef SUPPORT_BUILTIN if (wrapper_BuiltIn_disable == 0) { // Call BuiltIn wrapper libipv6calc_db_wrapper_BuiltIn_wrapper_print_db_info(level_verbose, prefix_string); } else { fprintf(stderr, "%sBuiltIn support available but disabled by option\n", prefix_string); }; fprintf(stderr, "\n"); #endif // summary fprintf(stderr, "%sDatabase selection or priorization ('->': subsequential calls)\n", prefix_string); fprintf(stderr, "%sDatabase priorization %s: " , prefix_string , (wrapper_source_priority_selector_by_option > 0) ? "by option" : "default" ); int sp; for (sp = IPV6CALC_DB_SOURCE_MIN; sp <= IPV6CALC_DB_SOURCE_MAX; sp++) { fprintf(stderr, "%s%s" , (sp == IPV6CALC_DB_SOURCE_MIN) ? "" : "->" , libipv6calc_db_wrapper_get_data_source_name_by_number(wrapper_source_priority_selector[sp]) ); }; fprintf(stderr, "\n"); for (f = IPV6CALC_DB_FEATURE_NUM_MIN; f <= IPV6CALC_DB_FEATURE_NUM_MAX; f++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "f=%d", f); f_index = libipv6calc_db_wrapper_get_feature_index_by_feature(1 << f); fprintf(stderr, "%s%s (%s): ", prefix_string, ipv6calc_db_features[f_index].token, ipv6calc_db_features[f_index].explanation); if (wrapper_features_selector[f][0] == 0) { fprintf(stderr, "NO-DATABASE"); } else { for (p = 0; p < IPV6CALC_DB_PRIO_MAX; p++) { if (wrapper_features_selector[f][p] != 0) { fprintf(stderr, "%s%s", (p == 0) ? "" : "->", libipv6calc_db_wrapper_get_data_source_name_by_number(wrapper_features_selector[f][p])); }; }; }; fprintf(stderr, "\n"); }; fprintf(stderr, "\n"); DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Return"); return; }; /* function query for feature set * ret=-1: unknown * 0 : not matching * 1 : ok */ int libipv6calc_db_wrapper_has_features(uint32_t features) { int result = -1; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called with feature value to test: 0x%08x", features); if ((wrapper_features & features) == features) { result = 1; } else { result = 0; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Return with result: %d", result); return(result); }; /********************************************* * Option handling * return < 0: error *********************************************/ int libipv6calc_db_wrapper_options(const int opt, const char *optarg, const struct option longopts[]) { int result = -1; int s; // initialize priority selector if (wrapper_source_priority_selector_by_option < 0) { for (s = 0; s <= IPV6CALC_DB_SOURCE_MAX; s++) { wrapper_source_priority_selector[s] = 0; }; wrapper_source_priority_selector_by_option = 0; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called with option: %08x", opt); switch(opt) { // GeoIP(legacy) EOS since 3.0.0, TODO remove in 4.0.0 case DB_EOS_geoip_disable: case DB_EOS_geoip_ipv4: case DB_EOS_geoip_ipv6: case DB_EOS_geoip_ipv4_default: case DB_EOS_geoip_ipv6_default: case DB_EOS_geoip_dir: case DB_EOS_geoip_lib: NONQUIETPRINT_WA("Support for GeoIP(legacy) removed, ignoring option: --%s", ipv6calcoption_name(opt, longopts)); result = 0; break; case 'G': NONQUIETPRINT_NA("Support for GeoIP(legacy) removed, ignoring option: -G"); result = 0; break; // db-ip.com(BerkeleyDB) EOS since 3.0.0, TODO remove in 4.0.0 case DB_EOS_dbip_disable: case DB_EOS_dbip_dir: case DB_EOS_dbip_comm_to_free_switch_min_delta_months: case DB_EOS_dbip_only_type: NONQUIETPRINT_WA("Support for db-ip.com(Berkeley-DB) removed, ignoring option: --%s", ipv6calcoption_name(opt, longopts)); result = 0; break; // IP2Location legacy options, EOS since longer, TODO remove in 4.0.0 case DB_EOS_ip2location_ipv4: case DB_EOS_ip2location_ipv6: case DB_EOS_ip2location_ipv4_default: case DB_EOS_ip2location_ipv6_default: NONQUIETPRINT_WA("Obsolete, ignoring IP2Location option: --%s", ipv6calcoption_name(opt, longopts)); result = 0; break; case 'L': NONQUIETPRINT_NA("Obsolete, ignoring IP2Location option: -L"); result = 0; break; case DB_ip2location_disable: #ifdef SUPPORT_IP2LOCATION wrapper_IP2Location_disable = 1; #endif result = 0; break; case DB_geoip2_disable: #ifdef SUPPORT_GEOIP2 wrapper_GeoIP2_disable = 1; #endif result = 0; break; case DB_dbip2_disable: #ifdef SUPPORT_DBIP2 wrapper_DBIP2_disable = 1; #endif result = 0; break; case DB_external_disable: #ifdef SUPPORT_EXTERNAL wrapper_External_disable = 1; #endif result = 0; break; case DB_builtin_disable: #ifdef SUPPORT_BUILTIN wrapper_BuiltIn_disable = 1; #endif result = 0; break; case DB_mmdb_lib: #ifdef SUPPORT_MMDB_DYN result = snprintf(mmdb_lib_file, sizeof(mmdb_lib_file), "%s", optarg); #else NONQUIETPRINT_WA("Support for MaxMindDB dyn-load not compiled-in, skipping option: --%s", ipv6calcoption_name(opt, longopts)); #endif result = 0; break; case DB_ip2location_lib: #ifdef SUPPORT_IP2LOCATION_DYN result = snprintf(ip2location_lib_file, sizeof(ip2location_lib_file), "%s", optarg); #else NONQUIETPRINT_WA("Support for IP2Location dyn-load not compiled-in, skipping option: --%s", ipv6calcoption_name(opt, longopts)); #endif result = 0; break; case DB_ip2location_dir: #ifdef SUPPORT_IP2LOCATION result = snprintf(ip2location_db_dir, sizeof(ip2location_db_dir), "%s", optarg); #else NONQUIETPRINT_WA("Support for IP2Location not compiled-in, skipping option: --%s", ipv6calcoption_name(opt, longopts)); #endif result = 0; break; case DB_geoip2_dir: #ifdef SUPPORT_GEOIP2 result = snprintf(geoip2_db_dir, sizeof(geoip2_db_dir), "%s", optarg); #else NONQUIETPRINT_WA("Support for GeoIP(MaxMindDB) not compiled-in, skipping option: --%s", ipv6calcoption_name(opt, longopts)); #endif result = 0; break; case DB_dbip2_dir: #ifdef SUPPORT_DBIP2 result = snprintf(dbip2_db_dir, sizeof(dbip2_db_dir), "%s", optarg); #else NONQUIETPRINT_WA("Support for db-ip.com(MaxMindDB) not compiled-in, skipping option: --%s", ipv6calcoption_name(opt, longopts)); #endif result = 0; break; case DB_dbip2_only_type: #ifdef SUPPORT_DBIP2 if ((atoi(optarg) >= 1) && (atoi(optarg) <= DBIP2_DB_MAX)) { dbip2_db_only_type = atoi(optarg); } else { fprintf(stderr, " Argument of option 'db-dbip2-only-type' is out of range (1-%d): %d\n", DBIP2_DB_MAX, atoi(optarg)); exit(EXIT_FAILURE); }; #else NONQUIETPRINT_WA("Support for db-ip.com(MaxMindDB) not compiled-in, skipping option: --%s", ipv6calcoption_name(opt, longopts)); #endif result = 0; break; case DB_dbip2_comm_to_free_switch_min_delta_months: #ifdef SUPPORT_DBIP2 if ((atoi(optarg) >= 0) && (atoi(optarg) <= 99999)) { dbip2_db_comm_to_free_switch_min_delta_months = atoi(optarg); } else { fprintf(stderr, " Argument of option 'db-dbip2-comm-to-free-switch-min-delta-months' is out of range (0-99999): %d\n", atoi(optarg)); exit(EXIT_FAILURE); }; #else NONQUIETPRINT_WA("Support for db-ip.com(MaxMindDB) not compiled-in, skipping option: --%s", ipv6calcoption_name(opt, longopts)); #endif result = 0; break; case DB_external_dir: #ifdef SUPPORT_EXTERNAL result = snprintf(external_db_dir, sizeof(external_db_dir), "%s", optarg); #else NONQUIETPRINT_WA("Support for external(BerkeleyDB) not compiled-in, skipping option: --%s", ipv6calcoption_name(opt, longopts)); #endif result = 0; break; case DB_ip2location_lite_to_sample_autoswitch_max_delta_months: #ifdef SUPPORT_IP2LOCATION if ((atoi(optarg) >= 0) && (atoi(optarg) <= 99999)) { ip2location_db_lite_to_sample_autoswitch_max_delta_months = atoi(optarg); } else { fprintf(stderr, " Argument of option 'db-ip2location-lite-to-sample-autoswitch-max-delta-months' is out of range (0-99999): %d\n", atoi(optarg)); exit(EXIT_FAILURE); }; #else NONQUIETPRINT_WA("Support for IP2Location not compiled-in, skipping option: --%s", ipv6calcoption_name(opt, longopts)); #endif result = 0; break; case DB_ip2location_comm_to_lite_switch_min_delta_months: #ifdef SUPPORT_IP2LOCATION if ((atoi(optarg) >= 0) && (atoi(optarg) <= 99999)) { ip2location_db_comm_to_lite_switch_min_delta_months = atoi(optarg); } else { fprintf(stderr, " Argument of option 'db-ip2location-comm-to-lite-switch-min-delta-months' is out of range (0-99999): %d\n", atoi(optarg)); exit(EXIT_FAILURE); }; #else NONQUIETPRINT_WA("Support for IP2Location not compiled-in, skipping option: --%s", ipv6calcoption_name(opt, longopts)); #endif result = 0; break; case DB_ip2location_only_type: #ifdef SUPPORT_IP2LOCATION if ((atoi(optarg) >= 1) && (atoi(optarg) <= IP2LOCATION_DB_MAX)) { ip2location_db_only_type = atoi(optarg); } else { fprintf(stderr, " Argument of option 'db-ip2location-only-type' is out of range (1-%d): %d\n", IP2LOCATION_DB_MAX, atoi(optarg)); exit(EXIT_FAILURE); }; #else NONQUIETPRINT_WA("Support for IP2Location not compiled-in, skipping option: --%s", ipv6calcoption_name(opt, longopts)); #endif result = 0; break; case DB_ip2location_allow_softlinks: #ifdef SUPPORT_IP2LOCATION ip2location_db_allow_softlinks = 1; #else NONQUIETPRINT_WA("Support for IP2Location not compiled-in, skipping option: --%s", ipv6calcoption_name(opt, longopts)); #endif result = 0; break; case DB_common_priorization: #if defined SUPPORT_EXTERNAL || defined SUPPORT_DBIP || defined SUPPORT_GEOIP || SUPPORT_IP2LOCATION || defined SUPPORT_GEOIP2 || defined SUPPORT_DBIP2 DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Parse database priorization string: %s", optarg); char tempstring[IPV6CALC_STRING_MAX]; char *token, *cptr, **ptrptr; ptrptr = &cptr; int i, j; snprintf(tempstring, sizeof(tempstring), "%s", optarg); s = IPV6CALC_DB_SOURCE_MIN; token = strtok_r(tempstring, ":", ptrptr); while (token != NULL) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Parsing of token: %s", token); for (i = 0; i < MAXENTRIES_ARRAY(data_sources); i++) { if (strcasecmp(data_sources[i].shortname, token) == 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Token found: %s (%d)", token, data_sources[i].number); break; }; }; if (i == MAXENTRIES_ARRAY(data_sources)) { ERRORPRINT_WA("Database priorization token not supported: %s", token); exit(EXIT_FAILURE); }; /* check for duplicate */ if (s > IPV6CALC_DB_SOURCE_MIN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Check for duplicate: %s", token); for (j = IPV6CALC_DB_SOURCE_MIN; j <= s; j++) { if (wrapper_source_priority_selector[j] == data_sources[i].number) { ERRORPRINT_WA("Database duplicate priorization token found: %s", token); exit(EXIT_FAILURE); }; }; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Set token on entry %d: %s", s, token); wrapper_source_priority_selector[s] = data_sources[i].number; wrapper_source_priority_selector_by_option = s; s++; /* get next token */ token = strtok_r(NULL, ":", ptrptr); }; for (j = IPV6CALC_DB_SOURCE_MIN; j <= wrapper_source_priority_selector_by_option; j++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Database priorization/defined by option entry %d: %s", j, libipv6calc_db_wrapper_get_data_source_name_by_number(wrapper_source_priority_selector[j])); }; #else NONQUIETPRINT_WA("Support for database priorization not compiled-in, skipping option: --%s", ipv6calcoption_name(opt, longopts)); s = strlen(optarg); // make compiler happy (avoid unused "...") #endif result = 0; break; }; if (result > 0) { result = 0; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Return with result: %d", result); return(result); }; /***********************************************************/ /*********** geolocation support **********************/ /***********************************************************/ void libipv6calc_db_wrapper_geolocation_record_clear(libipv6calc_db_wrapper_geolocation_record *recordp) { // clear structure snprintf(recordp->country_code , IPV6CALC_DB_SIZE_COUNTRY_CODE , "%s", ""); snprintf(recordp->country_long , IPV6CALC_DB_SIZE_COUNTRY_LONG , "%s", ""); snprintf(recordp->continent_code, IPV6CALC_DB_SIZE_CONTINENT_CODE, "%s", ""); snprintf(recordp->continent_long, IPV6CALC_DB_SIZE_CONTINENT_LONG, "%s", ""); snprintf(recordp->stateprov , IPV6CALC_DB_SIZE_STATEPROV , "%s", ""); snprintf(recordp->district , IPV6CALC_DB_SIZE_DISTRICT , "%s", ""); snprintf(recordp->city , IPV6CALC_DB_SIZE_CITY , "%s", ""); snprintf(recordp->zipcode , IPV6CALC_DB_SIZE_ZIPCODE , "%s", ""); snprintf(recordp->weatherstationcode, IPV6CALC_DB_SIZE_WEATHERSTATIONCODE, "%s", ""); snprintf(recordp->weatherstationname, IPV6CALC_DB_SIZE_WEATHERSTATIONNAME, "%s", ""); snprintf(recordp->dma_code , IPV6CALC_DB_SIZE_DMA_CODE , "%s", ""); snprintf(recordp->idd_code , IPV6CALC_DB_SIZE_IDD_CODE , "%s", ""); snprintf(recordp->area_code , IPV6CALC_DB_SIZE_AREA_CODE , "%s", ""); recordp->latitude = 0; recordp->longitude = 0; recordp->accuracy_radius = 0; recordp->elevation = IPV6CALC_DB_GEO_ELEVATION_UNKNOWN; recordp->geoname_id = IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN; recordp->continent_geoname_id = IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN; recordp->country_geoname_id = IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN; recordp->stateprov_geoname_id = IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN; recordp->district_geoname_id = IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN; recordp->asn = ASNUM_AS_UNKNOWN; // invalid/unset recordp->timezone_offset = IPV6CALC_DB_GEO_TIMEZONE_UNKNOWN; // invalid/unset (>= 24) snprintf(recordp->timezone_name , IPV6CALC_DB_SIZE_TIMEZONE_NAME, "%s", ""); snprintf(recordp->isp_name , IPV6CALC_DB_SIZE_ISP_NAME , "%s", ""); snprintf(recordp->connection_type , IPV6CALC_DB_SIZE_CONN_TYPE , "%s", ""); snprintf(recordp->organization_name, IPV6CALC_DB_SIZE_ORG_NAME , "%s", ""); snprintf(recordp->domain , IPV6CALC_DB_SIZE_DOMAIN , "%s", ""); snprintf(recordp->mobile_network_code, IPV6CALC_DB_SIZE_MOBILENETWORKCODE, "%s", ""); snprintf(recordp->mobile_country_code, IPV6CALC_DB_SIZE_MOBILECOUNTRYCODE, "%s", ""); snprintf(recordp->mobile_brand , IPV6CALC_DB_SIZE_MOBILE_BRAND , "%s", ""); snprintf(recordp->usage_type , IPV6CALC_DB_SIZE_USAGE_TYPE , "%s", ""); }; /********************************************* * Abstract functions *********************************************/ /* * get registry number by AS number */ int libipv6calc_db_wrapper_registry_num_by_as_num32(const uint32_t as_num32) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called with as_num32: %d", as_num32); #ifdef SUPPORT_BUILTIN // currently only supported by BuiltIn return(libipv6calc_db_wrapper_BuiltIn_registry_num_by_as_num32(as_num32)); #else return(ASNUM_AS_UNKNOWN); #endif }; /* * get registry number by CC index */ int libipv6calc_db_wrapper_registry_num_by_cc_index(const uint16_t cc_index) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called with cc_index: %d", cc_index); #ifdef SUPPORT_BUILTIN // currently only supported by BuiltIn return(libipv6calc_db_wrapper_BuiltIn_registry_num_by_cc_index(cc_index)); #else return(COUNTRYCODE_INDEX_UNKNOWN); #endif }; /* * get registry number by IP address */ int libipv6calc_db_wrapper_registry_num_by_ipaddr(const ipv6calc_ipaddr *ipaddrp) { ipv6calc_ipv4addr ipv4addr; ipv6calc_ipv6addr ipv6addr; if (ipaddrp->proto == IPV6CALC_PROTO_IPV4) { CONVERT_IPADDRP_IPV4ADDR(ipaddrp, ipv4addr) return(libipv6calc_db_wrapper_registry_num_by_ipv4addr(&ipv4addr)); } else if (ipaddrp->proto == IPV6CALC_PROTO_IPV6) { CONVERT_IPADDRP_IPV6ADDR(ipaddrp, ipv6addr) return(libipv6calc_db_wrapper_registry_num_by_ipv6addr(&ipv6addr)); } else { ERRORPRINT_WA("unsupported proto=%d (FIX CODE)", ipaddrp->proto); exit(EXIT_FAILURE); }; }; /* * get registry string by IP address */ int libipv6calc_db_wrapper_registry_string_by_ipaddr(const ipv6calc_ipaddr *ipaddrp, char *resultstring, const size_t resultstring_length) { ipv6calc_ipv4addr ipv4addr; ipv6calc_ipv6addr ipv6addr; if (ipaddrp->proto == IPV6CALC_PROTO_IPV4) { CONVERT_IPADDRP_IPV4ADDR(ipaddrp, ipv4addr) return(libipv6calc_db_wrapper_registry_string_by_ipv4addr(&ipv4addr, resultstring, resultstring_length)); } else if (ipaddrp->proto == IPV6CALC_PROTO_IPV6) { CONVERT_IPADDRP_IPV6ADDR(ipaddrp, ipv6addr) return(libipv6calc_db_wrapper_registry_string_by_ipv6addr(&ipv6addr, resultstring, resultstring_length)); } else { ERRORPRINT_WA("unsupported proto=%d (FIX CODE)", ipaddrp->proto); exit(EXIT_FAILURE); }; }; /* * get CountryCode in text form * in: ipaddrp, length * mod: string, data_source_ptr (if != NULL) * return: 0=ok */ int libipv6calc_db_wrapper_country_code_by_addr(char *string, const int length, const ipv6calc_ipaddr *ipaddrp, unsigned int *data_source_ptr) { unsigned int data_source = IPV6CALC_DB_SOURCE_UNKNOWN; int f = 0, p, result = -1; #if defined SUPPORT_GEOIP || defined SUPPORT_IP2LOCATION char tempstring[IPV6CALC_ADDR_STRING_MAX] = ""; #endif DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called"); if (string == NULL) { ERRORPRINT_NA("given pointer 'string' is NULL (FIX CODE)"); exit(EXIT_FAILURE); }; if (length < 3) { ERRORPRINT_NA("given 'length' < 3 (FIX CODE)"); exit(EXIT_FAILURE); }; if (ipaddrp->proto == IPV6CALC_PROTO_IPV4) { f = IPV6CALC_DB_FEATURE_NUM_IPV4_TO_CC; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Given IPv4 address: %08x", (unsigned int) ipaddrp->addr[0]); if ((ipaddrp->typeinfo1 & IPV4_ADDR_RESERVED) != 0) { // reserved IPv4 address has no country DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Given IPv4 address: %08x is reserved (skip CountryCode lookup)", (unsigned int) ipaddrp->addr[0]); goto END_libipv6calc_db_wrapper; }; } else if (ipaddrp->proto == IPV6CALC_PROTO_IPV6) { f = IPV6CALC_DB_FEATURE_NUM_IPV6_TO_CC; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Given IPv6 address prefix (0-63): %08x%08x", (unsigned int) ipaddrp->addr[0], (unsigned int) ipaddrp->addr[1]); if ((ipaddrp->typeinfo1 & IPV6_ADDR_RESERVED) != 0) { // reserved IPv4 address has no country DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Given IPv6 address prefix (0-63): %08x%08x is reserved (skip CountryCode lookup)", (unsigned int) ipaddrp->addr[0], (unsigned int) ipaddrp->addr[1]); goto END_libipv6calc_db_wrapper; }; } else { ERRORPRINT_WA("unsupported proto=%d (FIX CODE)", ipaddrp->proto); exit(EXIT_FAILURE); }; // run through priorities for (p = 0; p < IPV6CALC_DB_PRIO_MAX; p++) { #if defined SUPPORT_GEOIP || defined SUPPORT_IP2LOCATION switch(wrapper_features_selector[f][p]) { case IPV6CALC_DB_SOURCE_GEOIP: case IPV6CALC_DB_SOURCE_IP2LOCATION: // need IP address as string if (strlen(tempstring) == 0) { libipaddr_ipaddrstruct_to_string(ipaddrp, tempstring, sizeof(tempstring), 0); }; }; #endif switch(wrapper_features_selector[f][p]) { case 0: // last goto END_libipv6calc_db_wrapper; // ok break; case IPV6CALC_DB_SOURCE_GEOIP: #ifdef SUPPORT_GEOIP if (wrapper_GeoIP_status == 1) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Call now GeoIP with %s", tempstring); char *result_char_ptr = (char *) libipv6calc_db_wrapper_GeoIP_wrapper_country_code_by_addr(tempstring, ipaddrp->proto); if ((result_char_ptr != NULL) && (strlen(result_char_ptr) > 0)) { snprintf(string, length, "%s", result_char_ptr); result = 0; data_source = IPV6CALC_DB_SOURCE_GEOIP; goto END_libipv6calc_db_wrapper; // ok } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called GeoIP did not return a valid country_code"); }; }; #endif break; case IPV6CALC_DB_SOURCE_GEOIP2: #ifdef SUPPORT_GEOIP2 if (wrapper_GeoIP2_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now GEOIP2"); int ret = libipv6calc_db_wrapper_GeoIP2_wrapper_country_code_by_addr(ipaddrp, string, length); if (ret == 0) { result = 0; data_source = IPV6CALC_DB_SOURCE_GEOIP2; goto END_libipv6calc_db_wrapper; // ok } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called GeoIP (MaxMindDB) did not return a valid country_code"); }; }; #endif break; case IPV6CALC_DB_SOURCE_IP2LOCATION: #ifdef SUPPORT_IP2LOCATION if (wrapper_IP2Location_status == 1) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Call now IP2Location with %s", tempstring); int ret = libipv6calc_db_wrapper_IP2Location_wrapper_country_code_by_addr(tempstring, ipaddrp->proto, string, length); if (ret == 0) { result = 0; data_source = IPV6CALC_DB_SOURCE_IP2LOCATION; goto END_libipv6calc_db_wrapper; // ok } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called IP2Location did not return a valid country_code"); }; }; #endif break; case IPV6CALC_DB_SOURCE_DBIP: #ifdef SUPPORT_DBIP if (wrapper_DBIP_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now DBIP"); int ret = libipv6calc_db_wrapper_DBIP_wrapper_country_code_by_addr(ipaddrp, string, length); if (ret == 0) { result = 0; data_source = IPV6CALC_DB_SOURCE_DBIP; goto END_libipv6calc_db_wrapper; // ok } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called db-ip.com did not return a valid country_code"); }; }; #endif break; case IPV6CALC_DB_SOURCE_DBIP2: #ifdef SUPPORT_DBIP2 if (wrapper_DBIP2_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now DBIP2"); int ret = libipv6calc_db_wrapper_DBIP2_wrapper_country_code_by_addr(ipaddrp, string, length); if (ret == 0) { result = 0; data_source = IPV6CALC_DB_SOURCE_DBIP2; goto END_libipv6calc_db_wrapper; // ok } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called db-ip.com (MaxMindDB) did not return a valid country_code"); }; }; #endif break; case IPV6CALC_DB_SOURCE_EXTERNAL: #ifdef SUPPORT_EXTERNAL if (wrapper_External_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now External"); int ret = libipv6calc_db_wrapper_External_country_code_by_addr(ipaddrp, string, length); if (ret == 0) { result = 0; data_source = IPV6CALC_DB_SOURCE_EXTERNAL; goto END_libipv6calc_db_wrapper; // ok } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called External did not return a valid country_code"); }; }; #endif break; default: goto END_libipv6calc_db_wrapper; // dummy goto in case no db is enabled break; }; }; END_libipv6calc_db_wrapper: if (result == 0) { if (data_source_ptr != NULL) { // set data_source if pointer not NULL *data_source_ptr = data_source; }; } else { // clear string snprintf(string, length, "%s", ""); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Result: %s (data_source=%d)", string, data_source); return(result); }; /* * get CountryCode in special internal form (index) [A-Z] (26) x [0-9A-Z] (36) */ uint16_t libipv6calc_db_wrapper_cc_index_by_addr(const ipv6calc_ipaddr *ipaddrp, unsigned int *data_source_ptr) { uint16_t index = COUNTRYCODE_INDEX_UNKNOWN; char cc_text[256] = ""; uint8_t c1, c2; int r; int cache_hit = 0; static ipv6calc_ipaddr ipaddr_cache_lastused; static uint16_t cc_index_lastused; static unsigned int data_source_lastused = IPV6CALC_DB_SOURCE_UNKNOWN; static int ipaddr_cache_lastused_valid = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called: addr=%08x%08x%08x%08x proto=%d", ipaddrp->addr[0], ipaddrp->addr[1], ipaddrp->addr[2], ipaddrp->addr[3], ipaddrp->proto); if ((ipaddr_cache_lastused_valid == 1) && (ipaddr_cache_lastused.proto == ipaddrp->proto) && (ipaddr_cache_lastused.addr[0] == ipaddrp->addr[0]) && (ipaddr_cache_lastused.addr[1] == ipaddrp->addr[1]) && (ipaddr_cache_lastused.addr[2] == ipaddrp->addr[2]) && (ipaddr_cache_lastused.addr[3] == ipaddrp->addr[3]) ) { index = cc_index_lastused; // set only data_source from cache if caller request it if (data_source_ptr != NULL) { *data_source_ptr = data_source_lastused; }; cache_hit = 1; goto END_libipv6calc_db_wrapper_cached; } else { // retrieve always data_source for caching r = libipv6calc_db_wrapper_country_code_by_addr(cc_text, sizeof(cc_text), ipaddrp, &data_source_lastused); if (r != 0) { goto END_libipv6calc_db_wrapper_cached; // something wrong }; if (strlen(cc_text) == 2) { if (isalpha((int) cc_text[0]) && isalnum((int) cc_text[1])) { c1 = toupper(cc_text[0]); if (! (c1 >= 'A' && c1 <= 'Z')) { goto END_libipv6calc_db_wrapper_cached; // something wrong }; c1 -= 'A'; c2 = toupper(cc_text[1]); if (c2 >= '0' && c2 <= '9') { c2 -= '0'; } else if (c2 >= 'A' && c2 <= 'Z') { c2 -= 'A'; c2 += 10; } else { goto END_libipv6calc_db_wrapper_cached; // something wrong }; index = c1 + c2 * COUNTRYCODE_LETTER1_MAX; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "c1=%d c2=%d index=%d (0x%03x) -> test: %c%c", c1, c2, index, index, COUNTRYCODE_INDEX_TO_CHAR1(index), COUNTRYCODE_INDEX_TO_CHAR2(index)); if (index >= COUNTRYCODE_INDEX_MAX) { index = COUNTRYCODE_INDEX_UNKNOWN; // failsafe ERRORPRINT_WA("unexpected index (too high): %d", index); goto END_libipv6calc_db_wrapper_cached; // something wrong }; }; } else { ERRORPRINT_WA("returned cc_text has not 2 chars: %s (addr=%08x%08x%08x%08x)", cc_text, ipaddrp->addr[0], ipaddrp->addr[1], ipaddrp->addr[2], ipaddrp->addr[3]); goto END_libipv6calc_db_wrapper_cached; // something wrong }; // store in last used cache ipaddr_cache_lastused_valid = 1; cc_index_lastused = index; ipaddr_cache_lastused = *ipaddrp; // set only data_source from cache if caller request it if (data_source_ptr != NULL) { *data_source_ptr = data_source_lastused; }; }; END_libipv6calc_db_wrapper_cached: DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Result: addr=%08x%08x%08x%08x cc_index=%d (0x%03x) %c%c%s", ipaddrp->addr[0], ipaddrp->addr[1], ipaddrp->addr[2], ipaddrp->addr[3], index, index, COUNTRYCODE_INDEX_TO_CHAR1(index), COUNTRYCODE_INDEX_TO_CHAR2(index), (cache_hit == 1 ? " (cached)" : "")); return(index); }; /* * get country code string by index */ int libipv6calc_db_wrapper_country_code_by_cc_index(char *string, const int length, const uint16_t cc_index) { int result = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called with cc_index=%d", cc_index); if (cc_index <= COUNTRYCODE_INDEX_LETTER_MAX) { snprintf(string, length, "%c%c", COUNTRYCODE_INDEX_TO_CHAR1(cc_index), COUNTRYCODE_INDEX_TO_CHAR2(cc_index)); } else if (cc_index == COUNTRYCODE_INDEX_UNKNOWN) { snprintf(string, length, "unknown"); } else if ((cc_index >= COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MIN) && (cc_index <= COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MAX)) { snprintf(string, length, "unknown"); } else { snprintf(string, length, "unsupported"); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Return country code: %s", string); return(result); }; /* * get country code index by string */ uint16_t libipv6calc_db_wrapper_cc_index_by_country_code(const char *cc_text) { uint16_t cc_index = COUNTRYCODE_INDEX_UNKNOWN; uint8_t c1, c2; if (strlen(cc_text) == 2) { if (isalpha((int) cc_text[0]) && isalnum((int) cc_text[1])) { c1 = toupper(cc_text[0]); if (! (c1 >= 'A' && c1 <= 'Z')) { goto END_libipv6calc_db_wrapper; // something wrong }; c1 -= 'A'; c2 = toupper(cc_text[1]); if (c2 >= '0' && c2 <= '9') { c2 -= '0'; } else if (c2 >= 'A' && c2 <= 'Z') { c2 -= 'A'; c2 += 10; } else { goto END_libipv6calc_db_wrapper; // something wrong }; cc_index = c1 + c2 * COUNTRYCODE_LETTER1_MAX; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "cc_text=%s cc_index=%d (0x%03x) -> test: %c%c", cc_text, cc_index, cc_index, COUNTRYCODE_INDEX_TO_CHAR1(cc_index), COUNTRYCODE_INDEX_TO_CHAR2(cc_index)); if (cc_index >= COUNTRYCODE_INDEX_MAX) { cc_index = COUNTRYCODE_INDEX_UNKNOWN; // failsafe goto END_libipv6calc_db_wrapper; // something wrong }; }; }; END_libipv6calc_db_wrapper: return (cc_index); }; /* * get AS 32-bit number */ uint32_t libipv6calc_db_wrapper_as_num32_by_addr(const ipv6calc_ipaddr *ipaddrp, unsigned int *data_source_ptr) { uint32_t as_num32 = ASNUM_AS_UNKNOWN; // default int f = 0, p; int cache_hit = 0; static ipv6calc_ipaddr ipaddr_cache_lastused; static uint32_t as_num32_lastused; static unsigned int data_source_lastused = IPV6CALC_DB_SOURCE_UNKNOWN; static int ipaddr_cache_lastused_valid = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called: addr=%08x%08x%08x%08x proto=%d", ipaddrp->addr[0], ipaddrp->addr[1], ipaddrp->addr[2], ipaddrp->addr[3], ipaddrp->proto); if (ipaddrp->proto == IPV6CALC_PROTO_IPV4) { f = IPV6CALC_DB_FEATURE_NUM_IPV4_TO_AS; if ((ipaddrp->typeinfo1 & IPV4_ADDR_RESERVED) != 0) { // reserved IPv4 address has no AS DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Given IPv4 address: %08x is reserved (skip AS lookup)", (unsigned int) ipaddrp->addr[0]); goto END_libipv6calc_db_wrapper; }; } else if (ipaddrp->proto == IPV6CALC_PROTO_IPV6) { f = IPV6CALC_DB_FEATURE_NUM_IPV6_TO_AS; if ((ipaddrp->typeinfo1 & IPV6_ADDR_RESERVED) != 0) { // reserved IPv4 address has no AS DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Given IPv6 address prefix (0-63): %08x%08x is reserved (skip AS lookup)", (unsigned int) ipaddrp->addr[0], (unsigned int) ipaddrp->addr[1]); goto END_libipv6calc_db_wrapper; }; } else { ERRORPRINT_WA("unsupported proto=%d (FIX CODE)", ipaddrp->proto); exit(EXIT_FAILURE); }; if ((ipaddr_cache_lastused_valid == 1) && (ipaddr_cache_lastused.proto == ipaddrp->proto) && (ipaddr_cache_lastused.addr[0] == ipaddrp->addr[0]) && (ipaddr_cache_lastused.addr[1] == ipaddrp->addr[1]) && (ipaddr_cache_lastused.addr[2] == ipaddrp->addr[2]) && (ipaddr_cache_lastused.addr[3] == ipaddrp->addr[3]) ) { as_num32 = as_num32_lastused; // set only data_source from cache if caller request it if (data_source_ptr != NULL) { *data_source_ptr = data_source_lastused; }; cache_hit = 1; goto END_libipv6calc_db_wrapper; // ok }; // run through priorities for (p = 0; p < IPV6CALC_DB_PRIO_MAX; p++) { switch(wrapper_features_selector[f][p]) { case 0: // last goto END_libipv6calc_db_wrapper; // ok break; case IPV6CALC_DB_SOURCE_GEOIP: #ifdef SUPPORT_GEOIP if (wrapper_GeoIP_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now GeoIP"); as_num32 = libipv6calc_db_wrapper_GeoIP_wrapper_asn_by_addr(ipaddrp); if (as_num32 != ASNUM_AS_UNKNOWN) { data_source_lastused = IPV6CALC_DB_SOURCE_GEOIP; goto END_libipv6calc_db_wrapper; // ok } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called GeoIP did not return a valid ASN"); }; }; #endif break; case IPV6CALC_DB_SOURCE_GEOIP2: #ifdef SUPPORT_GEOIP2 if (wrapper_GeoIP2_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now GeoIP2"); as_num32 = libipv6calc_db_wrapper_GeoIP2_wrapper_asn_by_addr(ipaddrp); if (as_num32 != ASNUM_AS_UNKNOWN) { data_source_lastused = IPV6CALC_DB_SOURCE_GEOIP2; goto END_libipv6calc_db_wrapper; // ok } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called GeoIP (MaxMindDB) did not return a valid ASN"); }; }; #endif break; #if API_VERSION_NUMERIC >= 80600 case IPV6CALC_DB_SOURCE_IP2LOCATION: #ifdef SUPPORT_IP2LOCATION if (wrapper_IP2Location_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now IP2Location"); as_num32 = libipv6calc_db_wrapper_IP2Location_wrapper_asn_by_addr(ipaddrp); if (as_num32 != ASNUM_AS_UNKNOWN) { data_source_lastused = IPV6CALC_DB_SOURCE_IP2LOCATION; goto END_libipv6calc_db_wrapper; // ok } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called IP2Lcation did not return a valid ASN"); }; }; #endif break; #endif // API_VERSION_NUMERIC >= 80600 case IPV6CALC_DB_SOURCE_DBIP2: #ifdef SUPPORT_DBIP2 if (wrapper_DBIP2_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now DBIP2"); as_num32 = libipv6calc_db_wrapper_DBIP2_wrapper_asn_by_addr(ipaddrp); if (as_num32 != ASNUM_AS_UNKNOWN) { data_source_lastused = IPV6CALC_DB_SOURCE_DBIP2; goto END_libipv6calc_db_wrapper; // ok } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called db-ip.com (MaxMindDB) did not return a valid ASN"); }; }; #endif break; default: goto END_libipv6calc_db_wrapper; // dummy goto in case no db is enabled break; }; }; END_libipv6calc_db_wrapper: if (as_num32 != ASNUM_AS_UNKNOWN) { // store in last used cache ipaddr_cache_lastused_valid = 1; as_num32_lastused = as_num32; ipaddr_cache_lastused = *ipaddrp; // set only data_source from cache if caller request it if (data_source_ptr != NULL) { *data_source_ptr = data_source_lastused; }; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Result: addr=%08x%08x%08x%08x as_num32=%u (0x%08x)%s (data_source=%d)", ipaddrp->addr[0], ipaddrp->addr[1], ipaddrp->addr[2], ipaddrp->addr[3], as_num32, as_num32, (cache_hit == 1 ? " (cached)" : ""), data_source_lastused); return(as_num32); }; /* * compress AS 32-bit number to 17 bit */ uint32_t libipv6calc_db_wrapper_as_num32_comp17(const uint32_t as_num32) {; uint32_t as_num32_comp17 = 0; uint32_t as_num32_comp17_reg = 0; uint32_t as_num32_comp17_asn = 0; if (as_num32 <= 0xffff) { as_num32_comp17 = as_num32; } else { if ((as_num32 & 0x00070000) == (as_num32 & 0xfff70000)) { // 3 of 16 MSB bits active (which are at least in 2013 maped 1:1 to related registry) as_num32_comp17_reg = (as_num32 & 0x0007000) >> 3; } else { // map to unknown registry as_num32_comp17_reg = 0; }; if ((as_num32 & 0x0fff) == (as_num32 & 0xffff)) { // only 12 of 16 LSB bits active as_num32_comp17_asn = as_num32 & 0x0fff; } else { // more than 12 bits are in use, unspecified result, but keeping registry and set special flag as_num32_comp17_asn = 0x1000; }; // fill compressed value and set flag as_num32_comp17 = as_num32_comp17_reg | as_num32_comp17_asn | 0x00010000; }; return(as_num32_comp17); }; /* * Decompress AS 32-bit number from 17 bit */ uint32_t libipv6calc_db_wrapper_as_num32_decomp17(const uint32_t as_num32_comp17) {; uint32_t as_num32 = ASNUM_AS_UNKNOWN; if ((as_num32_comp17 & 0x00010000) == 0x00000000) { as_num32 = as_num32_comp17; } else { if ((as_num32_comp17 & 0xe000) == 0x0000) { as_num32 = ASNUM_AS_UNKNOWN; } else { as_num32 |= (as_num32_comp17 & 0xe000) << 3; if ((as_num32_comp17 & 0x1000) == 0x1000) { // keep only ASN registry } else { as_num32 |= (as_num32_comp17 & 0x0fff); }; }; }; return(as_num32); }; /* * get GeonameID */ uint32_t libipv6calc_db_wrapper_GeonameID_by_addr(const ipv6calc_ipaddr *ipaddrp, unsigned int *data_source_ptr, unsigned int *GeonameID_type_ptr) { uint32_t GeonameID = IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN; // default int GeonameID_type = IPV6CALC_DB_GEO_GEONAMEID_TYPE_UNKNOWN; int f = 0, p; int cache_hit = 0; static ipv6calc_ipaddr ipaddr_cache_lastused; static uint32_t GeonameID_lastused; static int GeonameID_type_lastused; static unsigned int data_source_lastused = IPV6CALC_DB_SOURCE_UNKNOWN; static int ipaddr_cache_lastused_valid = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called: addr=%08x%08x%08x%08x proto=%d", ipaddrp->addr[0], ipaddrp->addr[1], ipaddrp->addr[2], ipaddrp->addr[3], ipaddrp->proto); if (ipaddrp->proto == IPV6CALC_PROTO_IPV4) { f = IPV6CALC_DB_FEATURE_NUM_IPV4_TO_GEONAMEID; if ((ipaddrp->typeinfo1 & IPV4_ADDR_RESERVED) != 0) { // reserved IPv4 address has no GeonameID DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Given IPv4 address: %08x is reserved (skip GeonameID lookup)", (unsigned int) ipaddrp->addr[0]); goto END_libipv6calc_db_wrapper; }; } else if (ipaddrp->proto == IPV6CALC_PROTO_IPV6) { f = IPV6CALC_DB_FEATURE_NUM_IPV6_TO_AS; if ((ipaddrp->typeinfo1 & IPV6_ADDR_RESERVED) != 0) { // reserved IPv4 address has no GeonameID DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Given IPv6 address prefix (0-63): %08x%08x is reserved (skip GeonameID lookup)", (unsigned int) ipaddrp->addr[0], (unsigned int) ipaddrp->addr[1]); goto END_libipv6calc_db_wrapper; }; } else { ERRORPRINT_WA("unsupported proto=%d (FIX CODE)", ipaddrp->proto); exit(EXIT_FAILURE); }; if ((ipaddr_cache_lastused_valid == 1) && (ipaddr_cache_lastused.proto == ipaddrp->proto) && (ipaddr_cache_lastused.addr[0] == ipaddrp->addr[0]) && (ipaddr_cache_lastused.addr[1] == ipaddrp->addr[1]) && (ipaddr_cache_lastused.addr[2] == ipaddrp->addr[2]) && (ipaddr_cache_lastused.addr[3] == ipaddrp->addr[3]) ) { GeonameID = GeonameID_lastused; // set only data_source from cache if caller request it if (data_source_ptr != NULL) { *data_source_ptr = data_source_lastused; }; // set only source from cache if caller request it if (GeonameID_type_ptr != NULL) { *GeonameID_type_ptr = GeonameID_type_lastused; }; cache_hit = 1; goto END_libipv6calc_db_wrapper; // ok }; // run through priorities for (p = 0; p < IPV6CALC_DB_PRIO_MAX; p++) { switch(wrapper_features_selector[f][p]) { case 0: // last goto END_libipv6calc_db_wrapper; // ok break; case IPV6CALC_DB_SOURCE_GEOIP2: #ifdef SUPPORT_GEOIP2 if (wrapper_GeoIP2_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now GeoIP2"); GeonameID = libipv6calc_db_wrapper_GeoIP2_wrapper_GeonameID_by_addr(ipaddrp, &GeonameID_type); if (GeonameID != IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) { data_source_lastused = IPV6CALC_DB_SOURCE_GEOIP2; goto END_libipv6calc_db_wrapper; // ok } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called GeoIP (MaxMindDB) did not return a valid GeonameID"); }; }; #endif break; case IPV6CALC_DB_SOURCE_DBIP2: #ifdef SUPPORT_DBIP2 if (wrapper_DBIP2_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now DBIP2"); GeonameID = libipv6calc_db_wrapper_DBIP2_wrapper_GeonameID_by_addr(ipaddrp, &GeonameID_type); if (GeonameID != IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) { data_source_lastused = IPV6CALC_DB_SOURCE_DBIP2; goto END_libipv6calc_db_wrapper; // ok } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called db-ip.com (MaxMindDB) did not return a valid GeonameID"); }; }; #endif break; default: goto END_libipv6calc_db_wrapper; // dummy goto in case no db is enabled break; }; }; END_libipv6calc_db_wrapper: if (GeonameID != IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) { // store in last used cache ipaddr_cache_lastused_valid = 1; GeonameID_lastused = GeonameID; GeonameID_type_lastused = GeonameID_type; ipaddr_cache_lastused = *ipaddrp; // set only data_source from cache if caller request it if (data_source_ptr != NULL) { *data_source_ptr = data_source_lastused; }; if (GeonameID_type_ptr != NULL) { *GeonameID_type_ptr = GeonameID_type_lastused; }; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Result: addr=%08x%08x%08x%08x GeonameID=%u GeonameID_type=%d %s (data_source=%d)", ipaddrp->addr[0], ipaddrp->addr[1], ipaddrp->addr[2], ipaddrp->addr[3], GeonameID, GeonameID_type, (cache_hit == 1 ? " (cached)" : ""), data_source_lastused); return(GeonameID); }; /* * Get IEEE vendor string * in: macaddrp * mod: resultstring * out: 0=found, 1=not found */ int libipv6calc_db_wrapper_ieee_vendor_string_by_macaddr(char *resultstring, const size_t resultstring_length, const ipv6calc_macaddr *macaddrp) { int retval = 1; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called with mp=%p", macaddrp); // avoid -Werror=unused-parameter #ifdef SUPPORT_BUILTIN retval = libipv6calc_db_wrapper_BuiltIn_ieee_vendor_string_by_macaddr(resultstring, resultstring_length, macaddrp); #else snprintf(resultstring, resultstring_length, "(BUILTIN databases not compiled in)"); retval = 0; #endif return (retval); }; /* * Get short IEEE vendor string * in: macaddrp * mod: resultstring * out: 0=found, 1=not found */ int libipv6calc_db_wrapper_ieee_vendor_string_short_by_macaddr(char *resultstring, const size_t resultstring_length, const ipv6calc_macaddr *macaddrp) { int retval = 1; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called with mp=%p", macaddrp); // avoid -Werror=unused-parameter #ifdef SUPPORT_BUILTIN retval = libipv6calc_db_wrapper_BuiltIn_ieee_vendor_string_short_by_macaddr(resultstring, resultstring_length, macaddrp); #else snprintf(resultstring, resultstring_length, "(BUILTIN databases not compiled in)"); retval = 0; #endif return (retval); }; /******************************************** * IPv4/IPv6 -> Registry lookup ********************************************/ /* * Get reserved IPv4 address information as string * ret: NULL: not reserved, !=NULL: pointer to string */ static const char *libipv6calc_db_wrapper_reserved_string_by_ipv4addr(const ipv6calc_ipv4addr *ipv4addrp) { const char *info = NULL; uint32_t ipv4 = ipv4addr_getdword(ipv4addrp); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Given IPv4 address: %08x", (unsigned int) ipv4); // see also: https://en.wikipedia.org/wiki/Reserved_IP_addresses if ((ipv4 & 0xff000000u) == 0x00000000u) { // 0.0.0.0/8 (RFC 1122) info = "reserved(RFC1122#3.2.1.3)"; } else if ((ipv4 & 0xff000000u) == 0x0a000000u) { // 10.0.0.0/8 (RFC 1918) info = "reserved(RFC1918#3)"; } else if ((ipv4 & 0xffc00000u) == 0x64400000u) { // 100.64.0.0/10 (RFC 6598) info = "reserved(RFC6598)"; } else if ((ipv4 & 0xff000000u) == 0x7f000000u) { // 127.0.0.0/8 (RFC 1122) info = "reserved(RFC1122#3.2.1.3)"; } else if ((ipv4 & 0xffff0000u) == 0xa9fe0000u) { // 169.254.0.0/16 (RFC 1918) info = "reserved(RFC3927#1)"; } else if ((ipv4 & 0xfff00000u) == 0xac100000u) { // 172.16.0.0/12 (RFC 1918) info = "reserved(RFC1918#3)"; } else if ((ipv4 & 0xffff0000u) == 0xc0a80000u) { // 192.168.0.0/16 (RFC 1918) info = "reserved(RFC1918#3)"; } else if ((ipv4 & 0xffffff00u) == 0xc0000000u) { // 192.0.0.0/24 (RFC 5736) info = "reserved(RFC5736#1)"; } else if ((ipv4 & 0xffffff00u) == 0xc0000200u) { // 192.0.2.0/24 (RFC 3330) info = "reserved(RFC5737#1)"; } else if ((ipv4 & 0xffffff00u) == 0xc0586300u) { // 192.88.99.0/24 (RFC 3068) info = "reserved(RFC3068#2.3)"; } else if ((ipv4 & 0xfffe0000u) == 0xc6120000u) { // 198.18.0.0/15 (RFC 2544) info = "reserved(RFC2544#C.2.2)"; } else if ((ipv4 & 0xffffff00u) == 0xc6336400u) { // 198.51.100.0/24 (RFC 5737) info = "reserved(RFC5737#3)"; } else if ((ipv4 & 0xffffff00u) == 0xcb007100u) { // 203.0.113.0/24 (RFC 5737) info = "reserved(RFC5737#3)"; } else if ((ipv4 & 0xf0000000u) == 0xe0000000u) { // 224.0.0.0/4 (RFC 3171) info = "reserved(RFC3171#2)"; } else if ((ipv4 & 0xffffffffu) == 0xffffffffu) { // 255.255.255.255/32 info = "reserved(RFC919#7)"; } else if ((ipv4 & 0xf0000000u) == 0xf0000000u) { // 240.0.0.0/4 (RFC 1112) info = "reserved(RFC1112#4)"; }; if (info == NULL) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Given IPv4 address is not reserved: %08x", (unsigned int) ipv4); } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Given IPv4 address is reserved: %08x (%s)", (unsigned int) ipv4, info); }; return(info); }; /* * Get reserved IPv6 address information as string * ret: NULL: not reserved, !=NULL: pointer to string */ static const char *libipv6calc_db_wrapper_reserved_string_by_ipv6addr(const ipv6calc_ipv6addr *ipv6addrp) { const char *info = NULL; uint32_t ipv6_00_31 = ipv6addr_getdword(ipv6addrp, 0); uint32_t ipv6_32_63 = ipv6addr_getdword(ipv6addrp, 1); uint32_t ipv6_64_95 = ipv6addr_getdword(ipv6addrp, 2); uint32_t ipv6_96_127 = ipv6addr_getdword(ipv6addrp, 3); uint16_t ipv6_00_15 = ipv6addr_getword(ipv6addrp, 0); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called: addr=%08x%08x%08x%08x" , (unsigned int) ipv6_00_31 , (unsigned int) ipv6_32_63 , (unsigned int) ipv6_64_95 , (unsigned int) ipv6_96_127 ); // see also: https://en.wikipedia.org/wiki/Reserved_IP_addresses // if ((ipv6_00_31 == 0) && (ipv6_32_63 == 0) && (ipv6_64_95 == 0) && (ipv6_96_127 == 0)) { // :: (RFC 4291) info = "reserved(RFC4291#2.5.2)"; } else if ((ipv6_00_31 == 0) && (ipv6_32_63 == 0) && (ipv6_64_95 == 0) && (ipv6_96_127 == 1)) { // ::1 (RFC 4291) info = "reserved(RFC4291#2.5.3)"; } else if ((ipv6_00_31 == 0) && (ipv6_32_63 == 0) && (ipv6_64_95 == 0)) { // ::x.x.x.x (RFC 4291) info = "reserved(RFC4291#2.5.5.1)"; } else if ((ipv6_00_31 == 0) && (ipv6_32_63 == 0) && (ipv6_64_95 == 0x0000ffff)) { // ::ffff:x.x.x.x (RFC 4291) info = "reserved(RFC4291#2.5.5.2)"; } else if ((ipv6_00_31 == 0x01000000) && (ipv6_32_63 == 0)) { // 0100::0/64 (RFC 6666) info = "reserved(RFC6666)"; } else if (ipv6_00_31 == 0x20010000) { // 2001:0000::/32 (RFC 4380) info = "reserved(RFC4380#6)"; } else if ((ipv6_00_31 & 0xfffffff0) == 0x20010010) { // 2001:0010::/28 (RFC 4843) info = "reserved(RFC4843#2)"; } else if (ipv6_00_31 == 0x20010db8) { // 2001:0db8::/32 (RFC 3849) info = "reserved(RFC3849#4)"; } else if ((ipv6_00_15 & 0xffff) == 0x2002) { // 2002::/16 (RFC 3056) info = "reserved(RFC3056#2)"; } else if ((ipv6_00_15 & 0xfe00) == 0xfc00) { // fc00::/7 (RFC 4193) info = "reserved(RFC4193#3.1)"; } else if ((ipv6_00_15 & 0xffe0) == 0xfe80) { // fe80::/10 (RFC 4291) info = "reserved(RFC4291#2.5.6)"; } else if ((ipv6_00_15 & 0xffe0) == 0xfec0) { // fec0::/10 (RFC 4291) info = "reserved(RFC4291#2.5.7)"; } else if ((ipv6_00_15 & 0xff00) == 0xff00) { // ffxx::/8 (RFC 4291) info = "reserved(RFC4291#2.7)"; }; if (info == NULL) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Given IPv6 address is not reserved: %08x%08x%08x%08x", (unsigned int) ipv6_00_31, (unsigned int) ipv6_32_63, (unsigned int) ipv6_64_95, (unsigned int) ipv6_96_127); } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Given IPv6 address is reserved: %08x%08x%08x%08x (%s)", (unsigned int) ipv6_00_31, (unsigned int) ipv6_32_63, (unsigned int) ipv6_64_95, (unsigned int) ipv6_96_127, info); }; return(info); }; /* * get registry string of an IPv4 address * * in: ipv4addr = IPv4 address structure * out: *resultstring = Registry string * ret: 0: ok, 1: unknown, 2: reserved */ int libipv6calc_db_wrapper_registry_string_by_ipv4addr(const ipv6calc_ipv4addr *ipv4addrp, char *resultstring, const size_t resultstring_length) { int retval = 1; int registry; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called"); const char *info = libipv6calc_db_wrapper_reserved_string_by_ipv4addr(ipv4addrp); if (info != NULL) { // is reserved snprintf(resultstring, resultstring_length, "%s", info); retval = 2; } else { registry = libipv6calc_db_wrapper_registry_num_by_ipv4addr(ipv4addrp); snprintf(resultstring, resultstring_length, "%s", libipv6calc_registry_string_by_num(registry)); if (registry != REGISTRY_UNKNOWN) { retval = 0; } else { retval = 1; }; }; return (retval); }; /* * get registry number of an IPv4 address * * in: ipv4addr = IPv4 address structure * out: registry number */ int libipv6calc_db_wrapper_registry_num_by_ipv4addr(const ipv6calc_ipv4addr *ipv4addrp) { int retval = REGISTRY_UNKNOWN, p, f; int cache_hit = 0; static ipv6calc_ipv4addr cache_lu_ipv4addr; static uint32_t cache_lu_ipv4addr_registry_num; static int cache_lu_ipv4addr_valid = 0; #if defined SUPPORT_EXTERNAL ipv6calc_ipaddr ipaddr; #endif DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called: addr=%08x", ipv4addr_getdword(ipv4addrp)); if ((cache_lu_ipv4addr_valid == 1) && (&cache_lu_ipv4addr.in_addr.s_addr == &ipv4addrp->in_addr.s_addr) ) { retval= cache_lu_ipv4addr_registry_num; cache_hit = 1; goto END_libipv6calc_db_wrapper_cached; }; const char *info = libipv6calc_db_wrapper_reserved_string_by_ipv4addr(ipv4addrp); if (info != NULL) { retval = REGISTRY_RESERVED; goto END_libipv6calc_db_wrapper; }; f = IPV6CALC_DB_FEATURE_NUM_IPV4_TO_REGISTRY; // run through priorities for (p = 0; p < IPV6CALC_DB_PRIO_MAX; p++) { switch(wrapper_features_selector[f][p]) { case 0: // last goto END_libipv6calc_db_wrapper; // ok break; case IPV6CALC_DB_SOURCE_BUILTIN: #ifdef SUPPORT_BUILTIN if (wrapper_BuiltIn_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now BuiltIn"); retval = libipv6calc_db_wrapper_BuiltIn_registry_num_by_ipv4addr(ipv4addrp); }; #endif break; case IPV6CALC_DB_SOURCE_EXTERNAL: #ifdef SUPPORT_EXTERNAL if (wrapper_External_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now External"); CONVERT_IPV4ADDRP_IPADDR(ipv4addrp, ipaddr); retval = libipv6calc_db_wrapper_External_registry_num_by_addr(&ipaddr); }; #endif break; default: goto END_libipv6calc_db_wrapper; // dummy goto in case no db is enabled break; }; }; END_libipv6calc_db_wrapper: // store in last used cache cache_lu_ipv4addr_valid = 1; cache_lu_ipv4addr_registry_num = retval; cache_lu_ipv4addr.in_addr = ipv4addrp->in_addr; END_libipv6calc_db_wrapper_cached: DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Result: addr=%08x reg=%d%s" , ipv4addr_getdword(ipv4addrp) , retval , (cache_hit == 1 ? " (cached)" : "") ); return (retval); }; /* * get registry string of an IPv6 address * * in: ipv6addr = IPv6 address structure * out: *resultstring = Registry string * ret: 0: ok, 1: unknown, 2: reserved */ int libipv6calc_db_wrapper_registry_string_by_ipv6addr(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length) { int retval = 1; int registry; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Called"); const char *info = libipv6calc_db_wrapper_reserved_string_by_ipv6addr(ipv6addrp); if (info != NULL) { // is reserved snprintf(resultstring, resultstring_length, "%s", info); retval = 2; } else { registry = libipv6calc_db_wrapper_registry_num_by_ipv6addr(ipv6addrp); snprintf(resultstring, resultstring_length, "%s", libipv6calc_registry_string_by_num(registry)); if (registry != REGISTRY_UNKNOWN) { retval = 0; } else { retval = 1; }; }; return (retval); }; /* * get registry number of an IPv6 address * * in: ipv6addr = IPv6 address structure * out: assignment number (-1 = no result) */ int libipv6calc_db_wrapper_registry_num_by_ipv6addr(const ipv6calc_ipv6addr *ipv6addrp) { int retval = REGISTRY_UNKNOWN, p, f; int cache_hit = 0; static ipv6calc_ipv6addr cache_lu_ipv6addr; static uint32_t cache_lu_ipv6addr_registry_num; static int cache_lu_ipv6addr_valid = 0; #if defined SUPPORT_EXTERNAL ipv6calc_ipaddr ipaddr; #endif DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called: addr=%08x%08x%08x%08x", ipv6addr_getdword(ipv6addrp, 0), ipv6addr_getdword(ipv6addrp, 1), ipv6addr_getdword(ipv6addrp, 2), ipv6addr_getdword(ipv6addrp, 3)); if ((cache_lu_ipv6addr_valid == 1) #ifdef __KAME__ // FreeBSD misses s6_addr8/16/32 in non-kernel include, also union has different name in glibc (__in6_u vs. __u6_addr) :-( && (&cache_lu_ipv6addr.in6_addr.__u6_addr.__u6_addr32[0] == &ipv6addrp->in6_addr.__u6_addr.__u6_addr32[0]) && (&cache_lu_ipv6addr.in6_addr.__u6_addr.__u6_addr32[1] == &ipv6addrp->in6_addr.__u6_addr.__u6_addr32[1]) && (&cache_lu_ipv6addr.in6_addr.__u6_addr.__u6_addr32[2] == &ipv6addrp->in6_addr.__u6_addr.__u6_addr32[2]) && (&cache_lu_ipv6addr.in6_addr.__u6_addr.__u6_addr32[3] == &ipv6addrp->in6_addr.__u6_addr.__u6_addr32[3]) #else && (&cache_lu_ipv6addr.in6_addr.s6_addr32[0] == &ipv6addrp->in6_addr.s6_addr32[0]) && (&cache_lu_ipv6addr.in6_addr.s6_addr32[1] == &ipv6addrp->in6_addr.s6_addr32[1]) && (&cache_lu_ipv6addr.in6_addr.s6_addr32[2] == &ipv6addrp->in6_addr.s6_addr32[2]) && (&cache_lu_ipv6addr.in6_addr.s6_addr32[3] == &ipv6addrp->in6_addr.s6_addr32[3]) #endif ) { retval= cache_lu_ipv6addr_registry_num; cache_hit = 1; goto END_libipv6calc_db_wrapper_cached; }; const char *info = libipv6calc_db_wrapper_reserved_string_by_ipv6addr(ipv6addrp); if (info != NULL) { retval = REGISTRY_RESERVED; goto END_libipv6calc_db_wrapper; }; if (ipv6addr_getword(ipv6addrp, 0) == 0x3ffe) { // special handling of 6BONE retval = REGISTRY_6BONE; goto END_libipv6calc_db_wrapper; }; f = IPV6CALC_DB_FEATURE_NUM_IPV6_TO_REGISTRY; // run through priorities for (p = 0; p < IPV6CALC_DB_PRIO_MAX; p++) { switch(wrapper_features_selector[f][p]) { case 0: // last goto END_libipv6calc_db_wrapper; // ok break; case IPV6CALC_DB_SOURCE_BUILTIN: #ifdef SUPPORT_BUILTIN if (wrapper_BuiltIn_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now BuiltIn"); retval = libipv6calc_db_wrapper_BuiltIn_registry_num_by_ipv6addr(ipv6addrp); }; #endif break; case IPV6CALC_DB_SOURCE_EXTERNAL: #ifdef SUPPORT_EXTERNAL if (wrapper_External_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now External"); CONVERT_IPV6ADDRP_IPADDR(ipv6addrp, ipaddr); retval = libipv6calc_db_wrapper_External_registry_num_by_addr(&ipaddr); }; #endif break; default: goto END_libipv6calc_db_wrapper; // dummy goto in case no db is enabled break; }; }; END_libipv6calc_db_wrapper: // store in last used cache cache_lu_ipv6addr_valid = 1; cache_lu_ipv6addr_registry_num = retval; cache_lu_ipv6addr.in6_addr = ipv6addrp->in6_addr; END_libipv6calc_db_wrapper_cached: DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Result: addr=%08x%08x%08x%08x reg=%d%s" , ipv6addr_getdword(ipv6addrp, 0) , ipv6addr_getdword(ipv6addrp, 1) , ipv6addr_getdword(ipv6addrp, 2) , ipv6addr_getdword(ipv6addrp, 3) , retval , (cache_hit == 1 ? " (cached)" : "") ); return (retval); }; /* * get info string of an IPv4 address * * in: ipv4addr = IPv4 address structure * out: *resultstring = Registry string * ret: 0: ok */ int libipv6calc_db_wrapper_info_by_ipv4addr(const ipv6calc_ipv4addr *ipv4addrp, char *string, const size_t string_len) { int retval = 1, f, p; #if defined SUPPORT_EXTERNAL ipv6calc_ipaddr ipaddr; #endif DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called: addr=%08x", ipv4addr_getdword(ipv4addrp)); f = IPV6CALC_DB_FEATURE_NUM_IPV4_TO_INFO; // run through priorities for (p = 0; p < IPV6CALC_DB_PRIO_MAX; p++) { switch(wrapper_features_selector[f][p]) { case 0: // last goto END_libipv6calc_db_wrapper; // ok break; case IPV6CALC_DB_SOURCE_BUILTIN: #ifdef SUPPORT_BUILTIN if (wrapper_BuiltIn_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now BuiltIn"); retval = libipv6calc_db_wrapper_BuiltIn_info_by_ipv4addr(ipv4addrp, string, string_len); }; #endif break; case IPV6CALC_DB_SOURCE_EXTERNAL: #ifdef SUPPORT_EXTERNAL if (wrapper_External_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now External"); CONVERT_IPV4ADDRP_IPADDR(ipv4addrp, ipaddr); retval = libipv6calc_db_wrapper_External_info_by_ipaddr(&ipaddr, string, string_len); }; #endif break; default: snprintf(string, string_len, "unknown (databases not compiled in)"); retval = 0; goto END_libipv6calc_db_wrapper; // dummy goto in case no db is enabled break; }; }; END_libipv6calc_db_wrapper: DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Result: %s", string); return (retval); }; /* * get info string of an IPv6 address * * in: ipv6addr = IPv6 address structure * out: *resultstring = Registry string * ret: 0: ok */ int libipv6calc_db_wrapper_info_by_ipv6addr(const ipv6calc_ipv6addr *ipv6addrp, char *string, const size_t string_len) { int retval = 1, p, f; #if defined SUPPORT_EXTERNAL ipv6calc_ipaddr ipaddr; #endif DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called: addr=%08x%08x%08x%08x", ipv6addr_getdword(ipv6addrp, 0), ipv6addr_getdword(ipv6addrp, 1), ipv6addr_getdword(ipv6addrp, 2), ipv6addr_getdword(ipv6addrp, 3)); f = IPV6CALC_DB_FEATURE_NUM_IPV6_TO_INFO; // run through priorities for (p = 0; p < IPV6CALC_DB_PRIO_MAX; p++) { switch(wrapper_features_selector[f][p]) { case 0: // last goto END_libipv6calc_db_wrapper; // ok break; case IPV6CALC_DB_SOURCE_BUILTIN: #ifdef SUPPORT_BUILTIN if (wrapper_BuiltIn_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now BuiltIn"); retval = libipv6calc_db_wrapper_BuiltIn_info_by_ipv6addr(ipv6addrp, string, string_len); }; #endif break; case IPV6CALC_DB_SOURCE_EXTERNAL: #ifdef SUPPORT_EXTERNAL if (wrapper_External_status == 1) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Call now External"); CONVERT_IPV6ADDRP_IPADDR(ipv6addrp, ipaddr); retval = libipv6calc_db_wrapper_External_info_by_ipaddr(&ipaddr, string, string_len); }; #endif break; default: snprintf(string, string_len, "unknown (databases not compiled in)"); retval = 0; goto END_libipv6calc_db_wrapper; // dummy goto in case no db is enabled break; }; }; END_libipv6calc_db_wrapper: DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Result: %s", string); return (retval); }; #ifdef HAVE_BERKELEY_DB_SUPPORT /******************************************** * some generic Berkeley DB helper functions ********************************************/ /* * get value of token from Berkeley DB * in : DB pointer, token, max length of value * out: value * ret: 0=ok -1=error */ int libipv6calc_db_wrapper_bdb_get_data_by_key(DB *dbp, char *token, char *value, const size_t value_size) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called: dbp=%p token=%s", dbp, token); DBT key, data; int ret; memset(&key, 0, sizeof(key)); memset(&data, 0, sizeof(data)); key.data = token; key.size = strlen(token); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "try to get key.data=%p key.size=%d", key.data, key.size); if ((ret = dbp->get(dbp, NULL, &key, &data, 0)) != 0) { dbp->err(dbp, ret, "DB->get token=%s", token); return(-1); }; snprintf(value, (data.size + 1) >= value_size ? value_size : data.size + 1, "%s", (char *) data.data); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Return: dbp=%p token=%s value=%s", dbp, token, value); return(0); }; /* * generic fetch of a Berkeley DB row * in: data_ptr has to point to proper variable (not a pointer) */ int libipv6calc_db_wrapper_bdb_fetch_row( DB *db_ptr, // pointer to DB const uint8_t db_format, // DB format const long int row, // row number uint32_t *data_1_00_31_ptr, // data 1 (MSB in case of 64 bits) uint32_t *data_1_32_63_ptr, // data 1 (LSB in case of 64 bits) uint32_t *data_2_00_31_ptr, // data 2 (MSB in case of 64 bits) uint32_t *data_2_32_63_ptr, // data 2 (LSB in case of 64 bits) void *data_ptr // pointer to data ) { int retval = -1; const char *db_format_row[] = { "%u;%u;%[^%]", // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_DEC_32x2 "%u;%u;%u;%u;%[^%]", // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_DEC_32x4 "%x;%x;%[^%]", // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_32x2 "%x;%x;%x;%x;%[^%]", // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_32x4 "%x;%x;%d;%[^%]", // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_VALUE_32x2 "%x;%x;%x;%x;%d;%[^%]", // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_VALUE_32x4 "0x%x;0x%x;%[^%]", // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_PREF_32x2 "0x%x;0x%x;0x%x;0x%x;%[^%]", // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_PREF_32x4 }; const int db_format_values[] = { 3, // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_DEC_32x2 5, // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_DEC_32x4 3, // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_32x2 5, // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_32x4 4, // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_VALUE_32x2 6, // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_VALUE_32x4 3, // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_PREF_32x2 5, // IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_PREF_32x4 }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called db_ptr=%p, data_ptr=%p", db_ptr, data_ptr); if (MAXENTRIES_ARRAY(db_format_row) != MAXENTRIES_ARRAY(db_format_values)) { ERRORPRINT_NA("inconsistent array definition (FIX CODE)"); exit(EXIT_FAILURE); }; if (db_format >= MAXENTRIES_ARRAY(db_format_row)) { ERRORPRINT_WA("unsupported db_format (FIX CODE): %u", db_format); exit(EXIT_FAILURE); }; char datastring[IPV6CALC_STRING_MAX]; DBT key, data; db_recno_t recno = row; memset(&key, 0, sizeof(key)); memset(&data, 0, sizeof(data)); key.data = &recno; key.size = sizeof(recno); int ret, value; // DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Try to get row"); ret = db_ptr->get(db_ptr, NULL, &key, &data, 0); // DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "get executed"); if (ret != 0) { db_ptr->err(db_ptr, ret, "DB->get"); goto END_libipv6calc_db_wrapper_bdb_fetch_row; }; // DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Got row"); snprintf(datastring, (data.size + 1) >= sizeof(datastring) ? sizeof(datastring) : data.size + 1, "%s", (char *) data.data); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "start parsing database row %u: %s (size=%d) data_ptr=%p values=%u format=%s", recno, datastring, data.size, data_ptr, db_format_values[db_format], db_format_row[db_format]); if (db_format_values[db_format] == 3) { ret = sscanf(datastring, db_format_row[db_format], data_1_00_31_ptr, data_2_00_31_ptr, (char *) data_ptr); *data_1_32_63_ptr = 0; *data_2_32_63_ptr = 0; } else if (db_format_values[db_format] == 4) { ret = sscanf(datastring, db_format_row[db_format], data_1_00_31_ptr, data_2_00_31_ptr, &value, (char *) data_ptr); *data_1_32_63_ptr = 0; *data_2_32_63_ptr = 0; } else if (db_format_values[db_format] == 5) { ret = sscanf(datastring, db_format_row[db_format], data_1_00_31_ptr, data_1_32_63_ptr, data_2_00_31_ptr, data_2_32_63_ptr, (char *) data_ptr); } else if (db_format_values[db_format] == 6) { ret = sscanf(datastring, db_format_row[db_format], data_1_00_31_ptr, data_1_32_63_ptr, data_2_00_31_ptr, data_2_32_63_ptr, &value, (char *) data_ptr); } else { ERRORPRINT_WA("unsupported db_format_values (FIX CODE): %u", db_format_values[db_format]); exit(EXIT_FAILURE); }; if (ret != db_format_values[db_format]) { ERRORPRINT_WA("row parsing error, corrupted database: %s (ret=%d format=%s expectedvalues=%d)", datastring, ret, db_format_row[db_format], db_format_values[db_format]); goto END_libipv6calc_db_wrapper_bdb_fetch_row; }; if ((db_format == IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_VALUE_32x4) \ || (db_format == IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_VALUE_32x4)) { retval = value; // for Longest Match } else { retval = 0; // ok }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "database row %lu parsed: data_1_00_31=%08x data_1_32_63=%08x data_2_00_31=%08x data_2_32_63=%08x value=%s)", row, *data_1_00_31_ptr, *data_1_32_63_ptr, *data_2_00_31_ptr, *data_2_32_63_ptr, (char *) data_ptr); END_libipv6calc_db_wrapper_bdb_fetch_row: return(retval); }; #endif // HAVE_BERKELEY_DB_SUPPORT /* * generic internal/external database lookup function * return: -1 : no lookup result * >= 0: matching row */ long int libipv6calc_db_wrapper_get_entry_generic( void *db_ptr, // pointer to database in case of IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_BDB, otherwise NULL const uint8_t data_ptr_type, // type of data_ptr const uint8_t data_key_type, // key type const uint8_t data_key_format, // key format const uint8_t data_key_length, // key length const uint8_t data_search_type, // search type const uint32_t data_num_rows, // number of rows const uint32_t lookup_key_00_31, // lookup key MSB const uint32_t lookup_key_32_63, // lookup key LSB void *data_ptr, // pointer to DB data in case of IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_BDB, otherwise NULL int (*get_array_row)() // function to get array row ) { int retval = -1; uint32_t value_first_00_31 = 0, value_last_00_31 = 0; uint32_t value_first_32_63 = 0, value_last_32_63 = 0; #ifdef HAVE_BERKELEY_DB_SUPPORT DB *dbp = NULL; #endif // HAVE_BERKELEY_DB_SUPPORT DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Called with data_ptr_type=%u data_key_type=%u data_key_format=%u, data_key_length=%u data_num_rows=%u lookup_key_00_31=%08lx lookup_key_32_63=%08lx db_ptr=%p, data_ptr=%p", data_ptr_type, data_key_type, data_key_format, data_key_length, data_num_rows, (long unsigned int) lookup_key_00_31, (long unsigned int) lookup_key_32_63, db_ptr, data_ptr ); if (data_num_rows < 1) { ERRORPRINT_WA("unsupported data_key_num_rows (FIX CODE): %u", data_num_rows); exit(EXIT_FAILURE); }; if (data_num_rows > INT32_MAX) { ERRORPRINT_WA("unsupported data_key_num_rows (FIX CODE): %u", data_num_rows); exit(EXIT_FAILURE); }; /* check data_ptr_type */ switch(data_ptr_type) { case IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY: if (get_array_row == NULL) { ERRORPRINT_NA("get_array_row function is unexpected NULL (FIX CODE)"); exit(EXIT_FAILURE); }; if (data_ptr != NULL) { ERRORPRINT_NA("data_ptr is unexpected NOT NULL - not supported on IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY (FIX CODE)"); exit(EXIT_FAILURE); }; break; #ifdef HAVE_BERKELEY_DB_SUPPORT case IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_BDB: if (get_array_row != NULL) { ERRORPRINT_NA("get_array_row function is unexpected NOT NULL (FIX CODE)"); exit(EXIT_FAILURE); }; if (data_ptr == NULL) { ERRORPRINT_NA("data_ptr is unexpected NULL - not supported on IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_BDB (FIX CODE)"); exit(EXIT_FAILURE); }; // supported dbp = (DB *) db_ptr; // map db_ptr to DB ptr break; #endif // HAVE_BERKELEY_DB_SUPPORT default: ERRORPRINT_WA("unsupported data_ptr_type (FIX CODE): %u", data_ptr_type); exit(EXIT_FAILURE); break; }; /* check data_key_length */ switch(data_key_length) { case 32: case 64: // supported break; default: ERRORPRINT_WA("unsupported data_key_length (FIX CODE): %d", data_key_length); exit(EXIT_FAILURE); }; /* check data search type */ switch(data_search_type) { case IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY: case IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_SEQLONGEST: // supported break; default: ERRORPRINT_WA("unsupported data_search_type (FIX CODE): %d", data_search_type); exit(EXIT_FAILURE); }; /* check data_key_type */ switch(data_key_type) { case IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_FIRST_LAST: case IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_BASE_MASK: // supported break; default: ERRORPRINT_WA("unsupported data_key_type (FIX CODE): %u", data_key_type); exit(EXIT_FAILURE); }; long int i = -1; long int match = -1; int seqlongest = -1; long int i_min, i_max, i_old, i_old2; int search_binary_count = 0; int search_binary_count_max = (int) uint64_log2(data_num_rows) + 1; int ret = -1; i_min = 0; i_max = data_num_rows - 1; i_old = -1; i_old2 = -1; if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { // binary search in provided data i = i_max / 2; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Start binary search over entries: data_num_rows=%u", data_num_rows); } else if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_SEQLONGEST) { // sequential search in provided data i_old = i_max; i = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Start sequential search over entries: data_num_rows=%u", data_num_rows); }; while (i_old != i) { if ((i >= (int32_t) data_num_rows) || (i < 0)) { ERRORPRINT_WA("i out of range (FIX CODE): i=%ld data_num_rows=%u", i, data_num_rows); exit(EXIT_FAILURE); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Analyze entry i=%ld", i); if (data_ptr_type == IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY) { ret = get_array_row(i, &value_first_00_31, &value_first_32_63, &value_last_00_31, &value_last_32_63); if (ret < 0) { ERRORPRINT_WA("can't retrieve keys from array for row: %lu", i); exit(EXIT_FAILURE); }; #ifdef HAVE_BERKELEY_DB_SUPPORT } else if (data_ptr_type == IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_BDB) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Try to get row from Berkeley DB dbp=%p row=%ld", dbp, i + 1); ret = libipv6calc_db_wrapper_bdb_fetch_row( dbp, // pointer to DB data_key_format, // DB format (long unsigned int) i + 1, // row number (BDB starts always with 1, so add offset) &value_first_00_31, // data 1 (MSB in case of 64 bits) &value_first_32_63, // data 1 (LSB in case of 64 bits) &value_last_00_31, // data 2 (MSB in case of 64 bits) &value_last_32_63, // data 2 (LSB in case of 64 bits) data_ptr // pointer to data ); if (ret < 0) { ERRORPRINT_WA("can't retrieve keys from data for row: %ld", i); exit(EXIT_FAILURE); }; #endif // HAVE_BERKELEY_DB_SUPPORT }; if (data_key_length == 32) { if (data_key_type == IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_FIRST_LAST) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Test %08x range %08x - %08x i=%ld i_min=%ld i_max=%ld", (unsigned int) lookup_key_00_31, (unsigned int) value_first_00_31, (unsigned int) value_last_00_31, i, i_min, i_max); } else if (data_key_type == IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_BASE_MASK) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Test %08x base/mask %08x/%08x i=%ld i_min=%ld i_max=%ld", (unsigned int) lookup_key_00_31, (unsigned int) value_first_00_31, (unsigned int) value_last_00_31, i, i_min, i_max); }; } else if (data_key_length == 64) { if (data_key_type == IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_FIRST_LAST) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Test %08x:%08x range %08x:%08x - %08x:%08x i=%ld i_min=%ld i_max=%ld", (unsigned int) lookup_key_00_31, (unsigned int) lookup_key_32_63, (unsigned int) value_first_00_31, (unsigned int) value_first_32_63, (unsigned int) value_last_00_31, (unsigned int) value_last_32_63, i, i_min, i_max); } else if (data_key_type == IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_BASE_MASK) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Test %08x:%08x base/mask %08x:%08x/%08x:%08x i=%ld i_min=%ld i_max=%ld", (unsigned int) lookup_key_00_31, (unsigned int) lookup_key_32_63, (unsigned int) value_first_00_31, (unsigned int) value_first_32_63, (unsigned int) value_last_00_31, (unsigned int) value_last_32_63, i, i_min, i_max); }; }; if (data_key_length == 32) { if (data_key_type == IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_FIRST_LAST) { if (lookup_key_00_31 < value_first_00_31) { // to high in array, jump down DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "to high in array, jump down"); i_max = i; } else if (lookup_key_00_31 > value_last_00_31) { // to low in array, jump up DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "to low in array, jump up"); i_min = i; } else { // hit match = i; if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { // binary search in provided data DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "matching"); break; } else if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_SEQLONGEST) { // sequential search in provided data if (ret > seqlongest) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "matching, seqlongest old=%d new=%d", seqlongest, ret); seqlongest = ret; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "matching, keep seqlongest=%d", seqlongest); }; }; }; } else if (data_key_type == IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_BASE_MASK) { if ((lookup_key_00_31 & value_last_00_31) < value_first_00_31) { // to high in array, jump down DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "to high in array, jump down"); i_max = i; } else if ((lookup_key_00_31 & value_last_00_31) > value_first_00_31) { // to low in array, jump up DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "to low in array, jump up"); i_min = i; } else { // hit match = i; if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { // binary search in provided data break; } else if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_SEQLONGEST) { // sequential search in provided data if (ret > seqlongest) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "matching, seqlongest old=%d new=%d", seqlongest, ret); seqlongest = ret; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "matching, keep seqlongest=%d", seqlongest); }; }; }; }; } else if (data_key_length == 64) { if (data_key_type == IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_FIRST_LAST) { if (lookup_key_00_31 < value_first_00_31) { if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { /* to high in array, jump down */ DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "to high in array, jump down"); i_max = i; }; } else if (lookup_key_00_31 > value_last_00_31) { if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { // to low in array, jump up DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "to low in array, jump up"); i_min = i; }; } else if ((lookup_key_00_31 == value_first_00_31) && (lookup_key_32_63 < value_first_32_63)) { if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { /* to high in array, jump down */ DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "to high in array, jump down"); i_max = i; }; } else if ((lookup_key_00_31 == value_last_00_31) && (lookup_key_32_63 > value_last_32_63)) { if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { // to low in array, jump up DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "to low in array, jump up"); i_min = i; }; } else { // hit match = i; if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { // binary search in provided data break; } else if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_SEQLONGEST) { // sequential search in provided data if (ret > seqlongest) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "matching, seqlongest old=%d new=%d", seqlongest, ret); seqlongest = ret; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "matching, keep seqlongest=%d", seqlongest); }; }; }; } else if (data_key_type == IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_BASE_MASK) { if ((lookup_key_00_31 & value_last_00_31) < value_first_00_31) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "(lookup_key_00_31 & value_last_00_31) < value_first_00_31"); if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { /* to high in array, jump down */ DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "to high in array, jump down"); i_max = i; }; } else if ((lookup_key_00_31 & value_last_00_31) > value_first_00_31) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "(lookup_key_00_31 & value_last_00_31) > value_first_00_31"); if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { // to low in array, jump up DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "to low in array, jump up"); i_min = i; }; } else if (((lookup_key_00_31 & value_last_00_31) == value_first_00_31) && ((lookup_key_32_63 & value_last_32_63) < value_first_32_63)) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "(lookup_key_32_63 & value_last_32_63) < value_first_32_63"); if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { /* to high in array, jump down */ DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "to high in array, jump down"); i_max = i; }; } else if (((lookup_key_00_31 & value_last_00_31) == value_first_00_31) && ((lookup_key_32_63 & value_last_32_63) > value_first_32_63)) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "(lookup_key_32_63 & value_last_32_63) > value_first_32_63"); if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { // to low in array, jump up DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "to low in array, jump up"); i_min = i; }; } else { // hit match = i; if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { // binary search in provided data break; } else if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_SEQLONGEST) { // sequential search in provided data if (ret > seqlongest) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "matching, seqlongest old=%d new=%d", seqlongest, ret); seqlongest = ret; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "matching, keep seqlongest=%d", seqlongest); }; }; }; }; }; if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { // binary search in provided data i_old2 = i_old; i_old = i; i = (i_max - i_min) / 2 + i_min; search_binary_count++; // jump to last entry in special way if needed, otherwise it's not reachable if ((i == i_old) && ((i + 1) == ((int32_t) data_num_rows - 1))) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "workaround for last entry activated"); i = i_max; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "count=%d/%d i_old2=%ld i_old=%ld i_min=%ld i_max=%ld i=%ld", search_binary_count, search_binary_count_max, i_old2, i_old, i_min, i_max, i); if (i_old2 == i) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "loop in binary search detected, no match found"); break; }; if (search_binary_count > search_binary_count_max) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "limit of binary search reached, no match found"); break; }; } else if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_SEQLONGEST) { // sequential search in provided data i++; }; }; if (match != -1) { retval = match; if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Entry matched: %ld", i); if (data_ptr_type == IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY) { // currently nothing to do #ifdef HAVE_BERKELEY_DB_SUPPORT } else if (data_ptr_type == IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_BDB) { // currently nothing to do #endif // HAVE_BERKELEY_DB_SUPPORT }; } else if (data_search_type == IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_SEQLONGEST) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Finally entry matched: %ld", match); if (data_ptr_type == IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY) { // currently nothing to do #ifdef HAVE_BERKELEY_DB_SUPPORT } else if (data_ptr_type == IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_BDB) { // fetch matching row DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Try to get row from Berkeley DB dbp=%p recno=%ld", dbp, match); ret = libipv6calc_db_wrapper_bdb_fetch_row( dbp, // pointer to DB data_key_format, // DB format match + 1, // row number &value_first_00_31, // data 1 (MSB in case of 64 bits) &value_first_32_63, // data 1 (LSB in case of 64 bits) &value_last_00_31, // data 2 (MSB in case of 64 bits) &value_last_32_63, // data 2 (LSB in case of 64 bits) data_ptr // pointer to data ); if (ret < 0) { ERRORPRINT_WA("can't retrieve keys from data for row: %lu", match); exit(EXIT_FAILURE); }; #endif // HAVE_BERKELEY_DB_SUPPORT }; }; if (data_ptr != NULL) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Finished with success result (DB): match=%ld", match); }; } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "Finished with NO SUCCESS result (DB)"); }; //END_libipv6calc_db_wrapper_get_entry_generic: DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "Return: %d", retval); return(retval); }; /*********** generic function **********************/ uint16_t libipv6calc_db_cc_to_index(const char *cc_text) { uint16_t index = COUNTRYCODE_INDEX_UNKNOWN; uint8_t c1, c2; if (cc_text == NULL) { ERRORPRINT_NA("input is NULL"); goto END_libipv6calc_db_cc_to_index; // something wrong }; if (strlen(cc_text) != 2) { ERRORPRINT_WA("input is not string with length 2: %s", cc_text); goto END_libipv6calc_db_cc_to_index; // something wrong }; if ((! isalpha((int) cc_text[0])) || (! isalnum((int) cc_text[1]))) { ERRORPRINT_WA("input is not valid country code: %s", cc_text); goto END_libipv6calc_db_cc_to_index; // something wrong }; c1 = toupper(cc_text[0]); if (! (c1 >= 'A' && c1 <= 'Z')) { ERRORPRINT_WA("input char 1 is not part of a valid country code: %s", cc_text); goto END_libipv6calc_db_cc_to_index; // something wrong }; c1 -= 'A'; c2 = toupper(cc_text[1]); if (c2 >= '0' && c2 <= '9') { c2 -= '0'; } else if (c2 >= 'A' && c2 <= 'Z') { c2 -= 'A'; c2 += 10; } else { ERRORPRINT_WA("input char 2 is not part of a valid country code: %s", cc_text); goto END_libipv6calc_db_cc_to_index; // something wrong }; index = c1 + c2 * COUNTRYCODE_LETTER1_MAX; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "c1=%d c2=%d index=%d (0x%03x) -> test: %c%c", c1, c2, index, index, COUNTRYCODE_INDEX_TO_CHAR1(index), COUNTRYCODE_INDEX_TO_CHAR2(index)); if (index >= COUNTRYCODE_INDEX_MAX) { index = COUNTRYCODE_INDEX_UNKNOWN; // failsafe ERRORPRINT_WA("unexpected index (too high): %d", index); }; END_libipv6calc_db_cc_to_index: return(index); }; /***********************************************************/ /*********** filter based on database **********************/ /***********************************************************/ /*********** DB CC **********************/ /* * parse filter DB CC * * in : *filter = filter structure * ret: 0:found 1:skip 2:problem */ int libipv6calc_db_cc_filter_parse(s_ipv6calc_filter_db_cc *filter, const char *token, const int negate_flag) { int result = 1, negate = negate_flag, offset = 0; const char *filter_token = "cc="; const char *prefixdot = "db."; uint16_t cc_index; if (token == NULL) { return (result); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "input: %s", token); if (token[0] == '^') { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "found negate prefix in token: %s", token); negate = 1; offset += 1; }; if (strncmp(token + offset, prefixdot, strlen(prefixdot)) == 0) { /* prefix with dot found */ offset += strlen(prefixdot); result = 2; /* token with prefix, result into problem if not found */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "token with prefix, suffix: %s", token + offset); } else { /* prefix dot is required */ // no match goto END_ipv6calc_db_cc_filter_parse; }; if (strncmp(token + offset, filter_token, strlen(filter_token)) == 0) { /* filter token found */ offset += strlen(filter_token); result = 2; /* filter token found */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "filter token found, suffix: %s", token + offset); } else { // no match goto END_ipv6calc_db_cc_filter_parse; }; if (strcmp(token + offset, "unknown") == 0) { cc_index = COUNTRYCODE_INDEX_UNKNOWN; } else { if (strlen(token + offset) != 2) { ERRORPRINT_WA("filter token 'cc=' requires 2 char country code: %s:", token + offset); goto END_ipv6calc_db_cc_filter_parse; }; cc_index = libipv6calc_db_cc_to_index(token + offset); if (cc_index == COUNTRYCODE_INDEX_UNKNOWN) { ERRORPRINT_WA("filter token 'cc=' requires a valid country code: %s:", token + offset); goto END_ipv6calc_db_cc_filter_parse; }; }; if (negate == 1) { if (filter->cc_may_not_have_max < IPV6CALC_FILTER_DB_CC_MAX) { filter->cc_may_not_have[filter->cc_may_not_have_max] = cc_index; filter->cc_may_not_have_max++; } else { ERRORPRINT_WA("filter token 'cc=' maxmimum reached for 'may not have': %d", filter->cc_may_not_have_max); goto END_ipv6calc_db_cc_filter_parse; }; } else { if (filter->cc_must_have_max < IPV6CALC_FILTER_DB_CC_MAX) { filter->cc_must_have[filter->cc_must_have_max] = cc_index; filter->cc_must_have_max++; } else { ERRORPRINT_WA("filter token 'cc=' maxmimum reached for 'must have': %d", filter->cc_must_have_max); goto END_ipv6calc_db_cc_filter_parse; }; }; filter->active = 1; result = 0; END_ipv6calc_db_cc_filter_parse: return (result); }; /* * check filter DB CC * * in : *filter = filter structure * ret: 0:found 1:problem */ int libipv6calc_db_cc_filter_check(const s_ipv6calc_filter_db_cc *filter, const int proto) { int result = 0, r; char cc[IPV6CALC_COUNTRYCODE_STRING_MAX]; DEBUGSECTION_BEGIN(DEBUG_libipv6calc_db_wrapper) char tempstring[IPV6CALC_STRING_MAX]; char tempstring2[IPV6CALC_STRING_MAX]; int i; if (filter->cc_must_have_max > 0) { tempstring2[0] = '\0'; for (i = 0; i < filter->cc_must_have_max; i++) { libipv6calc_db_wrapper_country_code_by_cc_index(cc, sizeof(cc), filter->cc_must_have[i]); snprintf(tempstring, sizeof(tempstring), "%s%s%s", tempstring2, (i > 0) ? " " : "", cc); snprintf(tempstring2, sizeof(tempstring2), "%s", tempstring); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.cc filter 'must_have' : %s", tempstring2); } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "db.cc filter 'must_have' : --"); }; if (filter->cc_may_not_have_max > 0) { tempstring2[0] = '\0'; for (i = 0; i < filter->cc_may_not_have_max; i++) { libipv6calc_db_wrapper_country_code_by_cc_index(cc, sizeof(cc), filter->cc_may_not_have[i]); snprintf(tempstring, sizeof(tempstring), "%s%s%s", tempstring2, (i > 0) ? " " : "", cc); snprintf(tempstring2, sizeof(tempstring2), "%s", tempstring); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.cc filter 'may_not_have': %s", tempstring2); } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "db.cc filter 'may_not_have': --"); }; DEBUGSECTION_END if (proto == IPV6CALC_PROTO_IPV4) { r = libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_CC); } else if (proto == IPV6CALC_PROTO_IPV6) { r = libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV6_TO_CC); } else { ERRORPRINT_WA("unsupported proto (FIX CODE): %d", proto); result = 1; goto END_ipv6calc_db_cc_filter_check; }; if (r == 1) { // ok DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "database layer supports IPv%d->CountryCode", proto); } else { ERRORPRINT_WA("database layer don't support IPv%d->CountryCode", proto); result = 1; }; END_ipv6calc_db_cc_filter_check: return(result); }; /* * filter for CC * * in : cc_index = country code * in : *filter = filter structure * ret: 0=match 1=not match -1=neutral */ int libipv6calc_db_cc_filter(const uint16_t cc_index, const s_ipv6calc_filter_db_cc *filter) { int i, result = -1; char cc1[IPV6CALC_COUNTRYCODE_STRING_MAX], cc2[IPV6CALC_COUNTRYCODE_STRING_MAX]; libipv6calc_db_wrapper_country_code_by_cc_index(cc1, sizeof(cc1), cc_index); if (filter->cc_must_have_max > 0) { result = 1; for (i = 0; i < filter->cc_must_have_max; i++) { libipv6calc_db_wrapper_country_code_by_cc_index(cc2, sizeof(cc2), filter->cc_must_have[i]); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.cc filter: check %s against must-have: %s", cc1, cc2); if (cc_index == filter->cc_must_have[i]) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.cc filter: %s hits must-have: %s", cc1, cc2); // match MUST-HAVE result = 0; break; }; }; } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "db.cc filter: no must-have defined"); }; if (filter->cc_may_not_have_max > 0) { for (i = 0; i < filter->cc_may_not_have_max; i++) { libipv6calc_db_wrapper_country_code_by_cc_index(cc2, sizeof(cc2), filter->cc_may_not_have[i]); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.cc filter: check %s against may-not-have: %s", cc1, cc2); if (cc_index == filter->cc_may_not_have[i]) { // match MAY-NOT-HAVE DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.cc filter: %s hits may-not-have: %s", cc1, cc2); result = 1; break; }; }; } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "db.cc filter: no may-not-have defined"); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.cc filter final result: %d", result); return (result); }; /*********** DB ASN **********************/ /* * parse filter DB ASN * * in : *filter = filter structure * ret: 0:found 1:skip 2:problem */ int libipv6calc_db_asn_filter_parse(s_ipv6calc_filter_db_asn *filter, const char *token, const int negate_flag) { int result = 1, negate = negate_flag, offset = 0; const char *filter_token = "asn="; const char *prefixdot = "db."; uint32_t asn; if (token == NULL) { return (result); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "input: %s", token); if (token[0] == '^') { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "found negate prefix in token: %s", token); negate = 1; offset += 1; }; if (strncmp(token + offset, prefixdot, strlen(prefixdot)) == 0) { /* prefix with dot found */ offset += strlen(prefixdot); result = 2; /* token with prefix, result into problem if not found */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "token with prefix, suffix: %s", token + offset); } else { /* prefix dot is required */ // no match goto END_ipv6calc_db_asn_filter_parse; }; if (strncmp(token + offset, filter_token, strlen(filter_token)) == 0) { /* filter token found */ offset += strlen(filter_token); result = 2; /* filter token found */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "filter token found, suffix: %s", token + offset); } else { // no match goto END_ipv6calc_db_asn_filter_parse; }; if (strcmp(token + offset, "unknown") == 0) { asn = ASNUM_AS_UNKNOWN; } else { asn = (uint32_t) strtol(token + offset, NULL, 10); if (errno == ERANGE) { ERRORPRINT_WA("filter token 'asn=' requires a valid decimal number between 0 and %lu: %s:", (long unsigned int) 0xffffffff, token + offset); goto END_ipv6calc_db_asn_filter_parse; }; }; if (negate == 1) { if (filter->asn_may_not_have_max < IPV6CALC_FILTER_DB_ASN_MAX) { filter->asn_may_not_have[filter->asn_may_not_have_max] = asn; filter->asn_may_not_have_max++; } else { ERRORPRINT_WA("filter token 'asn=' maxmimum reached for 'may not have': %d", filter->asn_may_not_have_max); goto END_ipv6calc_db_asn_filter_parse; }; } else { if (filter->asn_must_have_max < IPV6CALC_FILTER_DB_ASN_MAX) { filter->asn_must_have[filter->asn_must_have_max] = asn; filter->asn_must_have_max++; } else { ERRORPRINT_WA("filter token 'asn=' maxmimum reached for 'must have': %d", filter->asn_must_have_max); goto END_ipv6calc_db_asn_filter_parse; }; }; filter->active = 1; result = 0; END_ipv6calc_db_asn_filter_parse: return (result); }; /* * check filter DB ASN * * in : *filter = filter structure * ret: 0:found 1:problem */ int libipv6calc_db_asn_filter_check(const s_ipv6calc_filter_db_asn *filter, const int proto) { int result = 0, r; DEBUGSECTION_BEGIN(DEBUG_libipv6calc_db_wrapper) char tempstring[IPV6CALC_STRING_MAX]; char tempstring2[IPV6CALC_STRING_MAX]; int i; if (filter->asn_must_have_max > 0) { tempstring2[0] = '\0'; for (i = 0; i < filter->asn_must_have_max; i++) { snprintf(tempstring, sizeof(tempstring), "%s%s%u", tempstring2, (i > 0) ? " " : "", filter->asn_must_have[i]); snprintf(tempstring2, sizeof(tempstring2), "%s", tempstring); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.asn filter 'must_have' : %s", tempstring2); } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "db.asn filter 'must_have' : --"); }; if (filter->asn_may_not_have_max > 0) { tempstring2[0] = '\0'; for (i = 0; i < filter->asn_may_not_have_max; i++) { snprintf(tempstring, sizeof(tempstring), "%s%s%u", tempstring2, (i > 0) ? " " : "", filter->asn_may_not_have[i]); snprintf(tempstring2, sizeof(tempstring2), "%s", tempstring); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.asn filter 'may_not_have': %s", tempstring2); } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "db.asn filter 'may_not_have': --"); }; DEBUGSECTION_END if (proto == IPV6CALC_PROTO_IPV4) { r = libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_AS); } else if (proto == IPV6CALC_PROTO_IPV6) { r = libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV6_TO_AS); } else { ERRORPRINT_WA("unsupported proto (FIX CODE): %d", proto); result = 1; goto END_ipv6calc_db_asn_filter_check; }; if (r == 1) { // ok DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "database layer supports IPv%d->ASN", proto); } else { ERRORPRINT_WA("database layer don't support IPv%d->ASN", proto); result = 1; }; END_ipv6calc_db_asn_filter_check: return(result); }; /* * filter ASN * * in : asn = ASN * in : *filter = filter structure * ret: 0=match 1=not match -1=neutral */ int libipv6calc_db_asn_filter(const uint32_t asn, const s_ipv6calc_filter_db_asn *filter) { int i, result = -1; if (filter->asn_must_have_max > 0) { result = 1; for (i = 0; i < filter->asn_must_have_max; i++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.asn filter: check %u against must-have: %u", asn, filter->asn_must_have[i]); if (asn == filter->asn_must_have[i]) { // match MUST-HAVE DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.asn filter: %u hits must-have: %u", asn, filter->asn_must_have[i]); result = 0; }; }; } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "db.asn filter: no must-have defined"); }; if (filter->asn_may_not_have_max > 0) { for (i = 0; i < filter->asn_may_not_have_max; i++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.asn filter: check %u against must-have: %u", asn, filter->asn_may_not_have[i]); if (asn == filter->asn_may_not_have[i]) { // match MAY-NOT-HAVE DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.asn filter: %u hits may-not-have: %u", asn, filter->asn_may_not_have[i]); result = 1; }; }; } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "db.asn filter: no may-not-have defined"); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.asn filter final result: %d", result); return (result); }; /*********** DB Registry **********************/ /* * parse filter DB Registry * * in : *filter = filter structure * ret: 0:found 1:skip 2:problem */ int libipv6calc_db_registry_filter_parse(s_ipv6calc_filter_db_registry *filter, const char *token, const int negate_flag) { int result = 1, negate = negate_flag, offset = 0; const char *filter_token = "reg="; const char *prefixdot = "db."; int registry = 0, i; if (token == NULL) { return (result); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "input: %s", token); if (token[0] == '^') { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "found negate prefix in token: %s", token); negate = 1; offset += 1; }; if (strncmp(token + offset, prefixdot, strlen(prefixdot)) == 0) { /* prefix with dot found */ offset += strlen(prefixdot); result = 2; /* token with prefix, result into problem if not found */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "token with prefix, suffix: %s", token + offset); } else { /* prefix dot is required */ // no match goto END_ipv6calc_db_registry_filter_parse; }; if (strncmp(token + offset, filter_token, strlen(filter_token)) == 0) { /* filter token found */ offset += strlen(filter_token); result = 2; /* filter token found */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "filter token found, suffix: %s", token + offset); } else { // no match goto END_ipv6calc_db_registry_filter_parse; }; if (strcmp(token + offset, "unknown") == 0) { registry = REGISTRY_UNKNOWN; } else { for (i = 0; i < ipv6calc_registries_entries; i++) { if (strcasecmp(token + offset, ipv6calc_registries[i].token) == 0) { registry = ipv6calc_registries[i].number; break; }; }; if (registry == 0) { ERRORPRINT_WA("filter token 'reg=' requires a valid registry token: %s:", token + offset); goto END_ipv6calc_db_registry_filter_parse; }; }; if (negate == 1) { if (filter->registry_may_not_have_max < IPV6CALC_FILTER_DB_REGISTRY_MAX) { filter->registry_may_not_have[filter->registry_may_not_have_max] = registry; filter->registry_may_not_have_max++; } else { ERRORPRINT_WA("filter token 'reg=' maxmimum reached for 'may not have': %d", filter->registry_may_not_have_max); goto END_ipv6calc_db_registry_filter_parse; }; } else { if (filter->registry_must_have_max < IPV6CALC_FILTER_DB_REGISTRY_MAX) { filter->registry_must_have[filter->registry_must_have_max] = registry; filter->registry_must_have_max++; } else { ERRORPRINT_WA("filter token 'reg=' maxmimum reached for 'must have': %d", filter->registry_must_have_max); goto END_ipv6calc_db_registry_filter_parse; }; }; filter->active = 1; result = 0; END_ipv6calc_db_registry_filter_parse: return (result); }; /* * check filter DB Registry * * in : *filter = filter structure * ret: 0:found 1:problem */ int libipv6calc_db_registry_filter_check(const s_ipv6calc_filter_db_registry *filter, const int proto) { int result = 0, r; DEBUGSECTION_BEGIN(DEBUG_libipv6calc_db_wrapper) char tempstring[IPV6CALC_STRING_MAX]; char tempstring2[IPV6CALC_STRING_MAX]; int i; if (filter->registry_must_have_max > 0) { tempstring2[0] = '\0'; for (i = 0; i < filter->registry_must_have_max; i++) { snprintf(tempstring, sizeof(tempstring), "%s%s%s", tempstring2, (i > 0) ? " " : "", libipv6calc_registry_string_by_num(filter->registry_must_have[i])); snprintf(tempstring2, sizeof(tempstring2), "%s", tempstring); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.registry filter 'must_have' : %s", tempstring2); } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "db.registry filter 'must_have' : --"); }; if (filter->registry_may_not_have_max > 0) { tempstring2[0] = '\0'; for (i = 0; i < filter->registry_may_not_have_max; i++) { snprintf(tempstring, sizeof(tempstring), "%s%s%s", tempstring2, (i > 0) ? " " : "", libipv6calc_registry_string_by_num(filter->registry_may_not_have[i])); snprintf(tempstring2, sizeof(tempstring2), "%s", tempstring); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.registry filter 'may_not_have': %s", tempstring2); } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "db.registry filter 'may_not_have': --"); }; DEBUGSECTION_END if (proto == IPV6CALC_PROTO_IPV4) { r = libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_REGISTRY); } else if (proto == IPV6CALC_PROTO_IPV6) { r = libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV6_TO_REGISTRY); } else { ERRORPRINT_WA("unsupported proto (FIX CODE): %d", proto); result = 1; goto END_ipv6calc_db_registry_filter_check; }; if (r == 1) { // ok DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "database layer supports IPv%d->Registry", proto); } else { ERRORPRINT_WA("database layer don't support IPv%d->Registry", proto); result = 1; }; END_ipv6calc_db_registry_filter_check: return(result); }; /* * filter Registry * * in : registry = Registry * in : *filter = filter structure * ret: 0=match 1=not match -1=neutral */ int libipv6calc_db_registry_filter(const uint32_t registry, const s_ipv6calc_filter_db_registry *filter) { int i, result = -1; if (filter->registry_must_have_max > 0) { result = 1; for (i = 0; i < filter->registry_must_have_max; i++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.reg filter: check %s against must-have: %s", libipv6calc_registry_string_by_num(registry), libipv6calc_registry_string_by_num(filter->registry_must_have[i])); if (registry == filter->registry_must_have[i]) { // match MUST-HAVE DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.reg filter: %s hits must-have: %s", libipv6calc_registry_string_by_num(registry), libipv6calc_registry_string_by_num(filter->registry_must_have[i])); result = 0; }; }; } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "db.registry filter: no must-have defined"); }; if (filter->registry_may_not_have_max > 0) { for (i = 0; i < filter->registry_may_not_have_max; i++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.reg filter: check %s against must-have: %s", libipv6calc_registry_string_by_num(registry), libipv6calc_registry_string_by_num(filter->registry_may_not_have[i])); if (registry == filter->registry_may_not_have[i]) { // match MAY-NOT-HAVE DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.reg filter: %s hits may-not-have: %s", libipv6calc_registry_string_by_num(registry), libipv6calc_registry_string_by_num(filter->registry_may_not_have[i])); result = 1; }; }; } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper, "db.reg filter: no may-not-have defined"); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "db.reg filter final result: %d", result); return (result); }; /* * dump database * * in : selector */ int libipv6calc_db_dump(const int source, const int selector, const s_ipv6calc_filter_master *filter_master, const uint32_t outputtype, const uint32_t formatoptions, const char *name_ipset) { int retval; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper, "called with source=%d selector=%d", source, selector); switch (source) { case IPV6CALC_DB_SOURCE_EXTERNAL: #ifdef SUPPORT_EXTERNAL switch (selector) { case IPV6CALC_PROTO_IPV4: case IPV6CALC_PROTO_IPV6: retval = libipv6calc_db_wrapper_External_dump(selector, filter_master, outputtype, formatoptions, name_ipset); break; default: ERRORPRINT_WA("selector not supported: %d", selector); return(1); break; }; #else if (formatoptions == 0) { }; // avoid -Werror=unused-parameter if (outputtype == 0) { }; // avoid -Werror=unused-parameter if (filter_master == NULL) { }; // avoid -Werror=unused-parameter if (name_ipset == NULL) { }; // avoid -Werror=unused-parameter ERRORPRINT_WA("source not compiled in: %d", source); return(1); #endif break; default: ERRORPRINT_WA("source not supported: %d (FIX CODE)", source); return(1); break; }; return(retval); }; /* * return library version numeric */ uint32_t libipv6calc_db_lib_version_numeric(void) { return(IPV6CALC_PACKAGE_VERSION_NUMERIC); }; /* * return library version as string */ const char *libipv6calc_db_lib_version_string(void) { return(IPV6CALC_PACKAGE_VERSION_STRING); }; /* * return API version numeric */ uint32_t libipv6calc_db_api_version_numeric(void) { return(IPV6CALC_API_VERSION_NUMERIC); }; /* * return API version as string */ const char *libipv6calc_db_api_version_string(void) { return(IPV6CALC_API_VERSION_STRING); }; ipv6calc-4.1.0/databases/lib/libipv6calc_db_wrapper.h000066400000000000000000000544441444154247200225160ustar00rootroot00000000000000/* * Project : ipv6calc * File : databases/lib/libipv6calc_db_wrapper.h * Version : $Id: 0dbed86cf1d322d0611f438a5505609cefb19624 $ * Copyright : 2013-2021 by Peter Bieringer * * Information: * Header file for libipv6calc_db_wrapper.c */ #ifdef HAVE_BERKELEY_DB_SUPPORT #include #endif // HAVE_BERKELEY_DB_SUPPORT #ifndef _libipv6calc_db_wrapper_h #define _libipv6calc_db_wrapper_h 1 #include "libmac.h" #include "libipv4addr.h" #include "libipv6addr.h" #include "libipaddr.h" #include "ipv6calctypes.h" #include "libipv6calc_filter.h" extern uint32_t wrapper_features; extern uint32_t wrapper_features_by_source[]; extern uint32_t wrapper_features_by_source_implemented[]; #define IPV6CALC_PROTO_IPV4 4 #define IPV6CALC_PROTO_IPV6 6 // define generic feature numbers (max: 24) #define IPV6CALC_DB_FEATURE_NUM_MIN 0 #define IPV6CALC_DB_FEATURE_NUM_AS_TO_REGISTRY 0 #define IPV6CALC_DB_FEATURE_NUM_CC_TO_REGISTRY 1 #define IPV6CALC_DB_FEATURE_NUM_IPV4_TO_REGISTRY 2 #define IPV6CALC_DB_FEATURE_NUM_IPV6_TO_REGISTRY 3 #define IPV6CALC_DB_FEATURE_NUM_IPV4_TO_AS 4 #define IPV6CALC_DB_FEATURE_NUM_IPV6_TO_AS 5 #define IPV6CALC_DB_FEATURE_NUM_IPV4_TO_CC 6 #define IPV6CALC_DB_FEATURE_NUM_IPV6_TO_CC 7 #define IPV6CALC_DB_FEATURE_NUM_IPV4_TO_COUNTRY 8 #define IPV6CALC_DB_FEATURE_NUM_IPV6_TO_COUNTRY 9 #define IPV6CALC_DB_FEATURE_NUM_IPV4_TO_CITY 10 #define IPV6CALC_DB_FEATURE_NUM_IPV6_TO_CITY 11 #define IPV6CALC_DB_FEATURE_NUM_IPV4_TO_REGION 12 #define IPV6CALC_DB_FEATURE_NUM_IPV6_TO_REGION 13 #define IPV6CALC_DB_FEATURE_NUM_IEEE_TO_INFO 14 #define IPV6CALC_DB_FEATURE_NUM_IPV4_TO_INFO 15 #define IPV6CALC_DB_FEATURE_NUM_IPV6_TO_INFO 16 #define IPV6CALC_DB_FEATURE_NUM_IPV4_TO_GEONAMEID 17 #define IPV6CALC_DB_FEATURE_NUM_IPV6_TO_GEONAMEID 18 #define IPV6CALC_DB_FEATURE_NUM_IPV4_DUMP_CC 19 #define IPV6CALC_DB_FEATURE_NUM_IPV6_DUMP_CC 20 #define IPV6CALC_DB_FEATURE_NUM_MAX IPV6CALC_DB_FEATURE_NUM_IPV6_DUMP_CC // define generic features #define IPV6CALC_DB_AS_TO_REGISTRY ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_AS_TO_REGISTRY) #define IPV6CALC_DB_CC_TO_REGISTRY ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_CC_TO_REGISTRY) #define IPV6CALC_DB_IPV4_TO_REGISTRY ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV4_TO_REGISTRY) #define IPV6CALC_DB_IPV6_TO_REGISTRY ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV6_TO_REGISTRY) #define IPV6CALC_DB_IPV4_TO_AS ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV4_TO_AS) #define IPV6CALC_DB_IPV6_TO_AS ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV6_TO_AS) #define IPV6CALC_DB_IPV4_TO_CC ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV4_TO_CC) #define IPV6CALC_DB_IPV6_TO_CC ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV6_TO_CC) #define IPV6CALC_DB_IPV4_TO_COUNTRY ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV4_TO_COUNTRY) #define IPV6CALC_DB_IPV6_TO_COUNTRY ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV6_TO_COUNTRY) #define IPV6CALC_DB_IPV4_TO_CITY ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV4_TO_CITY) #define IPV6CALC_DB_IPV6_TO_CITY ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV6_TO_CITY) #define IPV6CALC_DB_IPV4_TO_REGION ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV4_TO_REGION) #define IPV6CALC_DB_IPV6_TO_REGION ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV6_TO_REGION) #define IPV6CALC_DB_IEEE_TO_INFO ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IEEE_TO_INFO) #define IPV6CALC_DB_IPV4_TO_INFO ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV4_TO_INFO) #define IPV6CALC_DB_IPV6_TO_INFO ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV6_TO_INFO) #define IPV6CALC_DB_IPV4_TO_GEONAMEID ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV4_TO_GEONAMEID) #define IPV6CALC_DB_IPV6_TO_GEONAMEID ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV6_TO_GEONAMEID) #define IPV6CALC_DB_IPV4_DUMP_CC ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV4_DUMP_CC) #define IPV6CALC_DB_IPV6_DUMP_CC ((uint32_t) 1 << IPV6CALC_DB_FEATURE_NUM_IPV6_DUMP_CC) // define combination of generic features #define IPV6CALC_DB_IP_TO_AS (IPV6CALC_DB_IPV4_TO_AS | IPV6CALC_DB_IPV6_TO_AS ) #define IPV6CALC_DB_IP_TO_COUNTRY (IPV6CALC_DB_IPV4_TO_COUNTRY | IPV6CALC_DB_IPV6_TO_COUNTRY ) #define IPV6CALC_DB_IP_TO_CC (IPV6CALC_DB_IPV4_TO_CC | IPV6CALC_DB_IPV6_TO_CC ) #define IPV6CALC_DB_IP_TO_CITY (IPV6CALC_DB_IPV4_TO_CITY | IPV6CALC_DB_IPV6_TO_CITY ) #define IPV6CALC_DB_IP_TO_REGION (IPV6CALC_DB_IPV4_TO_REGION | IPV6CALC_DB_IPV6_TO_REGION ) #define IPV6CALC_DB_IP_TO_GEONAMEID (IPV6CALC_DB_IPV4_TO_GEONAMEID | IPV6CALC_DB_IPV6_TO_GEONAMEID) // define database specific generic features #define IPV6CALC_DB_GEOIP_IPV4 0x01000000 #define IPV6CALC_DB_GEOIP_IPV6 0x02000000 #define IPV6CALC_DB_GEOIP (IPV6CALC_DB_GEOIP_IPV4 | IPV6CALC_DB_GEOIP_IPV6) #define IPV6CALC_DB_IP2LOCATION_IPV4 0x04000000 #define IPV6CALC_DB_IP2LOCATION_IPV6 0x08000000 #define IPV6CALC_DB_DBIP_IPV4 0x10000000 #define IPV6CALC_DB_DBIP_IPV6 0x20000000 #define IPV6CALC_DB_DBIP (IPV6CALC_DB_DBIP_IPV4 | IPV6CALC_DB_DBIP_IPV6) #define IPV6CALC_DB_EXTERNAL_IPV4 0x40000000 #define IPV6CALC_DB_EXTERNAL_IPV6 0x80000000 static const s_formatoption ipv6calc_db_features[] = { { IPV6CALC_DB_GEOIP_IPV4 , "GeoIP" , "GeoIPv4 database"}, { IPV6CALC_DB_GEOIP_IPV6 , "GeoIPv6" , "GeoIPv6 database"}, { IPV6CALC_DB_IP2LOCATION_IPV4 , "IP2Location" , "IP2Location IPv4 database"}, { IPV6CALC_DB_IP2LOCATION_IPV6 , "IP2Location6" , "IP2Location IPv6 database"}, { IPV6CALC_DB_DBIP_IPV4 , "DBIPv4" , "db-ip.com IPv4 database"}, { IPV6CALC_DB_DBIP_IPV6 , "DBIPv6" , "db-ip.com IPv6 database"}, { IPV6CALC_DB_AS_TO_REGISTRY , "DB_AS_REG" , "AS-Number to Registry database"}, { IPV6CALC_DB_IPV4_TO_REGISTRY , "DB_IPV4_REG" , "IPv4 to Registry database"}, { IPV6CALC_DB_IPV6_TO_REGISTRY , "DB_IPV6_REG" , "IPv6 to Registry database"}, { IPV6CALC_DB_IPV4_TO_AS , "DB_IPV4_AS" , "IPv4 to AS database" }, { IPV6CALC_DB_IPV6_TO_AS , "DB_IPV6_AS" , "IPv6 to AS database" }, { IPV6CALC_DB_IPV4_TO_CC , "DB_IPV4_CC" , "IPv4 to CountryCode database" }, { IPV6CALC_DB_IPV6_TO_CC , "DB_IPV6_CC" , "IPv6 to CountryCode database" }, { IPV6CALC_DB_IPV4_TO_COUNTRY , "DB_IPV4_COUNTRY" , "IPv4 to Country database" }, { IPV6CALC_DB_IPV6_TO_COUNTRY , "DB_IPV6_COUNTRY" , "IPv6 to Country database" }, { IPV6CALC_DB_IPV4_TO_CITY , "DB_IPV4_CITY" , "IPv4 to City database" }, { IPV6CALC_DB_IPV6_TO_CITY , "DB_IPV6_CITY" , "IPv6 to City database" }, { IPV6CALC_DB_IPV4_TO_REGION , "DB_IPV4_REGION" , "IPv4 to Region database" }, { IPV6CALC_DB_IPV6_TO_REGION , "DB_IPV6_REGION" , "IPv6 to Region database" }, { IPV6CALC_DB_CC_TO_REGISTRY , "DB_CC_REG" , "CountryCode to Registry database" }, { IPV6CALC_DB_IEEE_TO_INFO , "DB_IEEE" , "IEEE/OUI/OUI28/OUI36 Vendor database" }, { IPV6CALC_DB_IPV4_TO_INFO , "DB_IPV4_INFO" , "IPv4 additional information" }, { IPV6CALC_DB_IPV6_TO_INFO , "DB_IPV6_INFO" , "IPv6 additional information" }, { IPV6CALC_DB_IPV4_TO_GEONAMEID , "DB_IPV4_GEONAMEID" , "IPv4 GeonameID" }, { IPV6CALC_DB_IPV6_TO_GEONAMEID , "DB_IPV6_GEONAMEID" , "IPv6 GeonameID" }, { IPV6CALC_DB_IPV4_DUMP_CC , "DB_IPV4_DUMP_CC" , "IPv4 Database Dump by CountryCode" }, { IPV6CALC_DB_IPV6_DUMP_CC , "DB_IPV6_DUMP_CC" , "IPv6 Database Dump by CountryCode" }, }; // data sources #define IPV6CALC_DB_SOURCE_UNKNOWN 0 #define IPV6CALC_DB_SOURCE_MIN 1 #define IPV6CALC_DB_SOURCE_GEOIP2 1 #define IPV6CALC_DB_SOURCE_IP2LOCATION 2 #define IPV6CALC_DB_SOURCE_DBIP2 3 #define IPV6CALC_DB_SOURCE_GEOIP 4 #define IPV6CALC_DB_SOURCE_DBIP 5 #define IPV6CALC_DB_SOURCE_EXTERNAL 6 #define IPV6CALC_DB_SOURCE_BUILTIN 7 #define IPV6CALC_DB_SOURCE_MAX 7 #define IPV6CALC_DB_PRIO_MAX IPV6CALC_DB_SOURCE_MAX typedef struct { const unsigned int number; const char *name; const char *shortname; } s_data_sources; static const s_data_sources data_sources[] = { { IPV6CALC_DB_SOURCE_GEOIP , "GeoIP" , "GeoIP" }, { IPV6CALC_DB_SOURCE_GEOIP2 , "GeoIP(MaxMindDB)" , "GeoIP2" }, { IPV6CALC_DB_SOURCE_IP2LOCATION, "IP2Location", "IP2Location" }, { IPV6CALC_DB_SOURCE_DBIP , "db-ip.com" , "DBIP" }, { IPV6CALC_DB_SOURCE_DBIP2 , "db-ip.com(MaxMindDB)", "DBIP2" }, { IPV6CALC_DB_SOURCE_EXTERNAL , "External" , "External" }, { IPV6CALC_DB_SOURCE_BUILTIN , "BuiltIn" , "BuiltIn" }, }; // database names and descriptions typedef struct { const unsigned int number; const char *filename; const char *description; const uint32_t features; } db_file_desc; typedef struct { const unsigned int number; const char *filename; const char *description; const uint32_t features; const uint32_t internal; } db_file_desc2; // abstract structure for geolocation information // string limits taken from from https://db-ip.com/db/ // and IP2Location #define IPV6CALC_DB_SIZE_COUNTRY_CODE 2+1 #define IPV6CALC_DB_SIZE_COUNTRY_LONG 80+1 #define IPV6CALC_DB_SIZE_CONTINENT_CODE 2+1 #define IPV6CALC_DB_SIZE_CONTINENT_LONG 80+1 #define IPV6CALC_DB_SIZE_STATEPROV 80+1 #define IPV6CALC_DB_SIZE_DISTRICT 80+1 #define IPV6CALC_DB_SIZE_CITY 80+1 #define IPV6CALC_DB_SIZE_ZIPCODE 20+1 #define IPV6CALC_DB_SIZE_WEATHERSTATIONCODE 20+1 #define IPV6CALC_DB_SIZE_WEATHERSTATIONNAME 80+1 #define IPV6CALC_DB_SIZE_TIMEZONE_NAME 64+1 #define IPV6CALC_DB_SIZE_ISP_NAME 128+1 #define IPV6CALC_DB_SIZE_CONN_TYPE 20+1 #define IPV6CALC_DB_SIZE_ORG_NAME 128+1 #define IPV6CALC_DB_SIZE_DOMAIN 20+1 #define IPV6CALC_DB_SIZE_DMA_CODE 8+1 #define IPV6CALC_DB_SIZE_IDD_CODE 8+1 #define IPV6CALC_DB_SIZE_AREA_CODE 8+1 #define IPV6CALC_DB_SIZE_MOBILENETWORKCODE 80+1 #define IPV6CALC_DB_SIZE_MOBILECOUNTRYCODE 8+1 #define IPV6CALC_DB_SIZE_MOBILE_BRAND 80+1 #define IPV6CALC_DB_SIZE_USAGE_TYPE 80+1 #define IPV6CALC_DB_GEO_ELEVATION_UNKNOWN -20000 #define IPV6CALC_DB_GEO_TIMEZONE_UNKNOWN 99 #define IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN 0 // range: 0..7 (for anonymization) #define IPV6CALC_DB_GEO_GEONAMEID_TYPE_UNKNOWN 0 #define IPV6CALC_DB_GEO_GEONAMEID_TYPE_CONTINENT 1 #define IPV6CALC_DB_GEO_GEONAMEID_TYPE_COUNTRY 2 #define IPV6CALC_DB_GEO_GEONAMEID_TYPE_STATEPROV 3 #define IPV6CALC_DB_GEO_GEONAMEID_TYPE_DISTRICT 4 #define IPV6CALC_DB_GEO_GEONAMEID_TYPE_CITY 5 #define IPV6CALC_DB_GEO_GEONAMEID_TYPE_FLAG_24BIT 0x10000 #define IPV6CALC_DB_GEO_GEONAMEID_TYPE_FLAG_MASK 0xf0000 typedef struct { char country_code[IPV6CALC_DB_SIZE_COUNTRY_CODE]; char country_long[IPV6CALC_DB_SIZE_COUNTRY_LONG]; char continent_code[IPV6CALC_DB_SIZE_CONTINENT_CODE]; char continent_long[IPV6CALC_DB_SIZE_CONTINENT_LONG]; char stateprov[IPV6CALC_DB_SIZE_STATEPROV]; char district[IPV6CALC_DB_SIZE_DISTRICT]; char city[IPV6CALC_DB_SIZE_CITY]; char zipcode[IPV6CALC_DB_SIZE_ZIPCODE]; char weatherstationcode[IPV6CALC_DB_SIZE_WEATHERSTATIONCODE]; char weatherstationname[IPV6CALC_DB_SIZE_WEATHERSTATIONNAME]; char dma_code[IPV6CALC_DB_SIZE_DMA_CODE]; char idd_code[IPV6CALC_DB_SIZE_IDD_CODE]; char area_code[IPV6CALC_DB_SIZE_AREA_CODE]; double latitude; double longitude; float elevation; uint16_t accuracy_radius; uint32_t geoname_id; uint32_t continent_geoname_id; uint32_t country_geoname_id; uint32_t stateprov_geoname_id; uint32_t district_geoname_id; uint32_t asn; float timezone_offset; char timezone_name[IPV6CALC_DB_SIZE_TIMEZONE_NAME]; char isp_name[IPV6CALC_DB_SIZE_ISP_NAME]; char connection_type[IPV6CALC_DB_SIZE_CONN_TYPE]; char organization_name[IPV6CALC_DB_SIZE_ORG_NAME]; char domain[IPV6CALC_DB_SIZE_DOMAIN]; char mobile_network_code[IPV6CALC_DB_SIZE_MOBILENETWORKCODE]; char mobile_country_code[IPV6CALC_DB_SIZE_MOBILECOUNTRYCODE]; char mobile_brand[IPV6CALC_DB_SIZE_MOBILE_BRAND]; char usage_type[IPV6CALC_DB_SIZE_USAGE_TYPE]; } libipv6calc_db_wrapper_geolocation_record; static const s_data_sources geonameid_types[] = { { IPV6CALC_DB_GEO_GEONAMEID_TYPE_CONTINENT , "Continent" , "Continent" }, { IPV6CALC_DB_GEO_GEONAMEID_TYPE_COUNTRY , "Country" , "Country" }, { IPV6CALC_DB_GEO_GEONAMEID_TYPE_STATEPROV , "Region" , "Region" }, { IPV6CALC_DB_GEO_GEONAMEID_TYPE_DISTRICT , "District" , "District" }, { IPV6CALC_DB_GEO_GEONAMEID_TYPE_CITY , "City" , "City" }, }; // define internal API versions #define IPV6CALC_DB_API_GEOIP 1 #define IPV6CALC_DB_API_IP2LOCATION 1 #define IPV6CALC_DB_API_DBIP 1 #define IPV6CALC_DB_API_IEEE 1 #define IPV6CALC_DB_API_REGISTRIES 1 #define IPV6CALC_DL_STATUS_OK 1 #define IPV6CALC_DL_STATUS_UNKNOWN 0 #define IPV6CALC_DL_STATUS_ERROR -1 // db-info macro #define IPV6CALC_DB_FEATURE_INFO(prefix, data_source) \ fprintf(stderr, "%s%s: features available/implemented: 0x%08x/0x%08x", \ prefix, \ libipv6calc_db_wrapper_get_data_source_name_by_number(data_source), \ wrapper_features_by_source[data_source], \ wrapper_features_by_source_implemented[data_source]); \ if (strlen(prefix) == 0) { \ int wrapper_features_by_source_bitcount = libipv6calc_bitcount_uint32_t(wrapper_features_by_source[data_source]); \ int wrapper_features_by_source_implemented_bitcount = libipv6calc_bitcount_uint32_t(wrapper_features_by_source_implemented[data_source]); \ if (wrapper_features_by_source_implemented_bitcount == 0) { \ fprintf(stderr, " (NONE)"); \ } else { \ fprintf(stderr, " (%d%%)", (wrapper_features_by_source_bitcount * 100) / wrapper_features_by_source_implemented_bitcount); \ }; \ }; \ fprintf(stderr, "\n"); // AS Number handling #define ASNUM_AS_UNKNOWN 0 #define ASNUM_AS_TRANS 23456 // special 16-bit AS number for compatibility // CountryCode handling #define COUNTRYCODE_LETTER1_MAX 26 // A-Z #define COUNTRYCODE_LETTER2_MAX 36 // 0-9A-Z #define COUNTRYCODE_INDEX_LETTER_MAX (COUNTRYCODE_LETTER1_MAX * COUNTRYCODE_LETTER2_MAX - 1) #define COUNTRYCODE_INDEX_MAX 1023 // 0x3ff #define COUNTRYCODE_INDEX_UNKNOWN 1022 // 0x3fe #define COUNTRYCODE_INDEX_LISP 1021 // 0x3fd #define COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MAX (COUNTRYCODE_INDEX_UNKNOWN - 1) #define COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MIN (COUNTRYCODE_INDEX_UNKNOWN - 16) // macros for mapping index to chars #define COUNTRYCODE_INDEX_TO_CHAR1(index) ((index % COUNTRYCODE_LETTER1_MAX) + 'A') #define COUNTRYCODE_INDEX_TO_CHAR2(index) ((index / COUNTRYCODE_LETTER1_MAX) > 9) ? ((index / COUNTRYCODE_LETTER1_MAX) - 10 + 'A') : ((index / COUNTRYCODE_LETTER1_MAX) + '0') // generic database lookup function #define IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY 1 // array #ifdef HAVE_BERKELEY_DB_SUPPORT #define IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_BDB 2 // Berkeley DB #endif // HAVE_BERKELEY_DB_SUPPORT // data storage type #define IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_FIRST_LAST 1 // key is first-last #define IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_BASE_MASK 2 // key is base/mask // data search type #define IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY 1 // binary search #define IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_SEQLONGEST 2 // sequential longest match // Berkeley DB lookup function #ifdef HAVE_BERKELEY_DB_SUPPORT #define IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_DEC_32x2 0 #define IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_DEC_32x4 1 #define IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_32x2 2 #define IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_32x4 3 #define IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_VALUE_32x2 4 #define IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_VALUE_32x4 5 #define IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_PREFIX_32x2 6 #define IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_PREFIX_32x4 7 // database info/data typedef struct { DB *db_info_ptr; DB *db_data_ptr; long int db_data_max; } s_db_info_data; #endif // HAVE_BERKELEY_DB_SUPPORT #define IPV6CALC_DB_LIB_VERSION_CHECK_EXIT(version_numeric, version_string) \ if (version_numeric != libipv6calc_db_lib_version_numeric()) { \ ERRORPRINT_WA("Database library version is not matching: has:%s required:%s", libipv6calc_db_lib_version_string(), version_string); \ exit(1); \ }; #endif // _libipv6calc_db_wrapper_h extern int libipv6calc_db_wrapper_init(const char *prefix_string); extern int libipv6calc_db_wrapper_cleanup(void); extern void libipv6calc_db_wrapper_info(char *string, const size_t size); extern void libipv6calc_db_wrapper_features(char *string, const size_t size); extern void libipv6calc_db_wrapper_capabilities(char *string, const size_t size); extern void libipv6calc_db_wrapper_features_help(void); extern void libipv6calc_db_wrapper_print_db_info(const int level_verbose, const char *prefix_string); extern void libipv6calc_db_wrapper_print_features_verbose(const int level_verbose); extern int libipv6calc_db_wrapper_has_features(uint32_t features); extern int libipv6calc_db_wrapper_options(const int opt, const char *optarg, const struct option longopts[]); extern const char *libipv6calc_db_wrapper_get_data_source_name_by_number(const unsigned int number); /* functional wrappers */ // CountryCode Text/Number extern int libipv6calc_db_wrapper_country_code_by_addr(char *string, const int length, const ipv6calc_ipaddr *ipaddrp, unsigned int *data_source_ptr); extern int libipv6calc_db_wrapper_country_code_by_cc_index(char *string, const int length, const uint16_t cc_index); extern uint16_t libipv6calc_db_wrapper_cc_index_by_country_code(const char *cc_text); extern uint16_t libipv6calc_db_wrapper_cc_index_by_addr(const ipv6calc_ipaddr *ipaddrp, unsigned int *data_source_ptr); // Autonomous System Text/Number extern uint32_t libipv6calc_db_wrapper_as_num32_by_addr(const ipv6calc_ipaddr *ipaddrp, unsigned int *data_source_ptr); extern uint32_t libipv6calc_db_wrapper_as_num32_comp17(const uint32_t as_num32); extern uint32_t libipv6calc_db_wrapper_as_num32_decomp17(const uint32_t as_num32_comp17); // GeonameID extern uint32_t libipv6calc_db_wrapper_GeonameID_by_addr(const ipv6calc_ipaddr *ipaddrp, unsigned int *data_source_ptr, unsigned int *GeonameID_type_ptr); // Registries extern int libipv6calc_db_wrapper_registry_num_by_as_num32(const uint32_t as_num32); extern int libipv6calc_db_wrapper_registry_num_by_cc_index(const uint16_t cc_index); extern int libipv6calc_db_wrapper_registry_num_by_ipaddr(const ipv6calc_ipaddr *ipaddrp); extern int libipv6calc_db_wrapper_registry_string_by_ipaddr(const ipv6calc_ipaddr *ipaddrp, char *resultstring, const size_t resultstring_length); // IEEE extern int libipv6calc_db_wrapper_ieee_vendor_string_by_macaddr(char *resultstring, const size_t resultstring_length, const ipv6calc_macaddr *macaddrp); extern int libipv6calc_db_wrapper_ieee_vendor_string_short_by_macaddr(char *resultstring, const size_t resultstring_length, const ipv6calc_macaddr *macaddrp); // IPv4 Registry extern int libipv6calc_db_wrapper_registry_string_by_ipv4addr(const ipv6calc_ipv4addr *ipv4addrp, char *resultstring, const size_t resultstring_length); extern int libipv6calc_db_wrapper_registry_num_by_ipv4addr(const ipv6calc_ipv4addr *ipv4addrp); extern int libipv6calc_db_wrapper_info_by_ipv4addr(const ipv6calc_ipv4addr *ipv4addrp, char *string, const size_t string_len); // IPv6 Registry extern int libipv6calc_db_wrapper_registry_string_by_ipv6addr(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length); extern int libipv6calc_db_wrapper_registry_num_by_ipv6addr(const ipv6calc_ipv6addr *ipv6addrp); extern int libipv6calc_db_wrapper_info_by_ipv6addr(const ipv6calc_ipv6addr *ipv6addrp, char *string, const size_t string_len); // geolocation record extern void libipv6calc_db_wrapper_geolocation_record_clear(libipv6calc_db_wrapper_geolocation_record *recordp); #ifdef HAVE_BERKELEY_DB_SUPPORT extern int libipv6calc_db_wrapper_bdb_get_data_by_key(DB *dbp, char *token, char *value, const size_t value_size); // fetch row extern int libipv6calc_db_wrapper_bdb_fetch_row( DB *db_ptr, // pointer to DB const uint8_t db_format, // DB format const long int row, // row number uint32_t *data_1_00_31_ptr, // data 1 (MSB in case of 64 bits) uint32_t *data_1_32_63_ptr, // data 1 (LSB in case of 64 bits) uint32_t *data_2_00_31_ptr, // data 2 (MSB in case of 64 bits) uint32_t *data_2_32_63_ptr, // data 2 (LSB in case of 64 bits) void *data_ptr // pointer to data ); #endif // HAVE_BERKELEY_DB_SUPPORT // generic DB lookup extern long int libipv6calc_db_wrapper_get_entry_generic( void *db_ptr, // pointer to database in case of IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_BDB, otherwise NULL const uint8_t data_ptr_type, // type of data_ptr const uint8_t data_key_type, // key type const uint8_t data_key_format, // key format const uint8_t data_key_length, // key length const uint8_t data_search_type, // search type const uint32_t data_num_rows, // number of rows const uint32_t lookup_key_00_31, // lookup key MSB const uint32_t lookup_key_32_63, // lookup key LSB void *data_ptr, // pointer to DB data in case of IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_BDB, otherwise NULL int (*get_array_row)() // function to get array row ); /* filter powered by database */ extern int libipv6calc_db_cc_filter_parse(s_ipv6calc_filter_db_cc *filter, const char *token, const int negate_flag); extern int libipv6calc_db_cc_filter_check(const s_ipv6calc_filter_db_cc *filter, const int proto); extern int libipv6calc_db_cc_filter(const uint16_t cc_index, const s_ipv6calc_filter_db_cc *filter); extern int libipv6calc_db_asn_filter_parse(s_ipv6calc_filter_db_asn *filter, const char *token, const int negate_flag); extern int libipv6calc_db_asn_filter_check(const s_ipv6calc_filter_db_asn *filter, const int proto); extern int libipv6calc_db_asn_filter(const uint32_t asn, const s_ipv6calc_filter_db_asn *filter); extern int libipv6calc_db_registry_filter_parse(s_ipv6calc_filter_db_registry *filter, const char *token, const int negate_flag); extern int libipv6calc_db_registry_filter_check(const s_ipv6calc_filter_db_registry *filter, const int proto); extern int libipv6calc_db_registry_filter(const uint32_t registry, const s_ipv6calc_filter_db_registry *filter); extern int libipv6calc_db_dump(const int source, const int selector, const s_ipv6calc_filter_master *filter_master, const uint32_t outputtype, const uint32_t formatoptions, const char *name_ipset); extern uint32_t libipv6calc_db_lib_version_numeric(void); extern const char *libipv6calc_db_lib_version_string(void); extern uint32_t libipv6calc_db_api_version_numeric(void); extern const char *libipv6calc_db_api_version_string(void); ipv6calc-4.1.0/databases/lib/libipv6calc_db_wrapper_BuiltIn.c000066400000000000000000000770331444154247200241360ustar00rootroot00000000000000/* * Project : ipv6calc * File : databases/lib/libipv6calc_db_wrapper_BuiltIn.c * Version : $Id: dfd3157323edf7dd4bdaa165125f6b012f569f9b $ * Copyright : 2013-2021 by Peter Bieringer * * Information: * ipv6calc BuiltIn database wrapper * - decoupling databases from main binary */ #include #include #include #include #include #include "config.h" #include "libipv6calcdebug.h" #include "libipv6calc_db_wrapper.h" #include "libipv6calc_db_wrapper_BuiltIn.h" #include "libieee.h" #ifdef SUPPORT_BUILTIN static int builtin_asn = 0; static int builtin_cc_reg = 0; static int builtin_ipv4 = 0; static int builtin_ipv6 = 0; static int builtin_ieee = 0; // load all built-in databases #include "../as-assignment/dbasn_assignment.h" #include "../cc-assignment/db_cc_reg_assignment.h" #ifdef SUPPORT_DB_IPV4_REG #include "../ipv4-assignment/dbipv4addr_assignment.h" #endif #ifdef SUPPORT_DB_IPV6_REG #include "../ipv6-assignment/dbipv6addr_assignment.h" #endif #ifdef SUPPORT_DB_IEEE #include "../ieee-iab/dbieee_iab.h" #include "../ieee-oui/dbieee_oui.h" #include "../ieee-oui28/dbieee_oui28.h" #include "../ieee-oui36/dbieee_oui36.h" #endif #endif /* database usage map */ #define BUILTIN_DB_MAX_BLOCKS_32 2 // 0-63 static uint32_t builtin_db_usage_map[BUILTIN_DB_MAX_BLOCKS_32]; #define BUILTIN_DB_USAGE_MAP_TAG(db) if (db < (32 * BUILTIN_DB_MAX_BLOCKS_32)) { \ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Tag usage for db: %d", db); \ builtin_db_usage_map[db / 32] |= 1 << (db % 32); \ } else { \ fprintf(stderr, "FIXME: unsupported db value (exceed limit): %d (%d)\n", db, 32 * BUILTIN_DB_MAX_BLOCKS_32 - 1); \ exit(1); \ }; char builtin_db_usage_string[IPV6CALC_STRING_MAX] = ""; /* * function initialise the BuiltIn wrapper * * in : (nothing) * out: 0=ok, 1=error */ int libipv6calc_db_wrapper_BuiltIn_wrapper_init(void) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Called"); // add features to implemented wrapper_features_by_source_implemented[IPV6CALC_DB_SOURCE_BUILTIN] |= IPV6CALC_DB_AS_TO_REGISTRY | IPV6CALC_DB_CC_TO_REGISTRY | IPV6CALC_DB_IPV4_TO_REGISTRY | IPV6CALC_DB_IPV6_TO_REGISTRY | IPV6CALC_DB_IEEE_TO_INFO | IPV6CALC_DB_IPV4_TO_INFO | IPV6CALC_DB_IPV6_TO_INFO; #ifdef SUPPORT_BUILTIN #ifdef SUPPORT_DB_AS_REG wrapper_features_by_source[IPV6CALC_DB_SOURCE_BUILTIN] |= IPV6CALC_DB_AS_TO_REGISTRY; builtin_asn = 1; #endif #ifdef SUPPORT_DB_CC_REG wrapper_features_by_source[IPV6CALC_DB_SOURCE_BUILTIN] |= IPV6CALC_DB_CC_TO_REGISTRY; builtin_cc_reg = 1; #endif #ifdef SUPPORT_DB_IPV4_REG wrapper_features_by_source[IPV6CALC_DB_SOURCE_BUILTIN] |= IPV6CALC_DB_IPV4_TO_REGISTRY | IPV6CALC_DB_IPV4_TO_INFO; builtin_ipv4 = 1; #endif #ifdef SUPPORT_DB_IPV6_REG wrapper_features_by_source[IPV6CALC_DB_SOURCE_BUILTIN] |= IPV6CALC_DB_IPV6_TO_REGISTRY | IPV6CALC_DB_IPV6_TO_INFO; builtin_ipv6 = 1; #endif #ifdef SUPPORT_DB_IEEE wrapper_features_by_source[IPV6CALC_DB_SOURCE_BUILTIN] |= IPV6CALC_DB_IEEE_TO_INFO; builtin_ieee = 1; #endif wrapper_features |= wrapper_features_by_source[IPV6CALC_DB_SOURCE_BUILTIN]; #endif DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Finished"); return 0; }; /* * function cleanup the BuiltIn wrapper * * in : (nothing) * out: 0=ok, 1=error */ int libipv6calc_db_wrapper_BuiltIn_wrapper_cleanup(void) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Called"); // currently nothing to do DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Finished"); return 0; }; /* * function info of BuiltIn wrapper * * in : ptr and size of string to be filled * out: modified string; */ void libipv6calc_db_wrapper_BuiltIn_wrapper_info(char* string, const size_t size) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Called"); #ifdef SUPPORT_BUILTIN snprintf(string, size, "BuiltIn databases available: ASN_REG=%d IPV4_REG=%d IPV6_REG=%d IEEE=%d CC_REG=%d", builtin_asn, builtin_ipv4, builtin_ipv6, builtin_ieee, builtin_cc_reg); #else snprintf(string, size, "No BuiltIn databases support compiled-in"); #endif DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Finished"); return; }; /* * function print database info of BuiltIn wrapper * * in : (void) * out: (void) */ void libipv6calc_db_wrapper_BuiltIn_wrapper_print_db_info(const int level_verbose, const char *prefix_string) { const char *prefix = "\0"; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Called with verbose: %d", level_verbose); if (prefix_string != NULL) { prefix = prefix_string; }; IPV6CALC_DB_FEATURE_INFO(prefix, IPV6CALC_DB_SOURCE_BUILTIN) #ifdef SUPPORT_BUILTIN #if defined SUPPORT_DB_IPV4_REG || defined SUPPORT_DB_IPV6_REG char tempstring[IPV6CALC_STRING_MAX]; #endif fprintf(stderr, "%sBuiltIn: info of available databases\n", prefix); #ifdef SUPPORT_DB_AS_REG if (wrapper_features_by_source[IPV6CALC_DB_SOURCE_BUILTIN] & IPV6CALC_DB_AS_TO_REGISTRY) { fprintf(stderr, "%sBuiltIn: %-5s: %s\n", prefix, "ASN", dbasn_registry_status); }; #endif #ifdef SUPPORT_DB_CC_REG if (wrapper_features_by_source[IPV6CALC_DB_SOURCE_BUILTIN] & IPV6CALC_DB_CC_TO_REGISTRY) { fprintf(stderr, "%sBuiltIn: %-5s: %s\n", prefix, "CC", db_cc_registry_status); }; #endif #ifdef SUPPORT_DB_IPV4_REG if (wrapper_features_by_source[IPV6CALC_DB_SOURCE_BUILTIN] & IPV6CALC_DB_IPV4_TO_REGISTRY) { strftime(tempstring, sizeof(tempstring), "%Y%m%d-%H%M%S UTC", gmtime(&dbipv4addr_registry_unixtime)); fprintf(stderr, "%sBuiltIn: %-5s: %s (created: %s)\n", prefix, "IPv4", dbipv4addr_registry_status, tempstring); }; #endif #ifdef SUPPORT_DB_IPV6_REG if (wrapper_features_by_source[IPV6CALC_DB_SOURCE_BUILTIN] & IPV6CALC_DB_IPV6_TO_REGISTRY) { strftime(tempstring, sizeof(tempstring), "%Y%m%d-%H%M%S UTC", gmtime(&dbipv6addr_registry_unixtime)); fprintf(stderr, "%sBuiltIn: %-5s: %s (created: %s)\n", prefix, "IPv6", dbipv6addr_registry_status, tempstring); }; #endif #ifdef SUPPORT_DB_IEEE if (wrapper_features_by_source[IPV6CALC_DB_SOURCE_BUILTIN] & IPV6CALC_DB_IEEE_TO_INFO) { fprintf(stderr, "%sBuiltIn: %-5s: %s %s %s %s\n", prefix, "IEEE", libieee_iab_status, libieee_oui_status, libieee_oui28_status, libieee_oui36_status); }; #endif #else fprintf(stderr, "%sNo BuiltIn support compiled-in\n", prefix); #endif DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Finished"); return; }; /* * wrapper: string regarding used database infos */ char *libipv6calc_db_wrapper_BuiltIn_wrapper_db_info_used(void) { int type, i; char tempstring[IPV6CALC_STRING_MAX]; #if defined SUPPORT_DB_IPV4_REG || defined SUPPORT_DB_IPV6_REG || defined SUPPORT_DB_IEEE || defined SUPPORT_DB_AS_REG || defined SUPPORT_DB_CC_REG char tempstring2[IPV6CALC_STRING_MAX]; #endif char *info; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Called"); for (i = 0; i < BUILTIN_DB_MAX_BLOCKS_32; i++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "builtin_db_usage_map[%d]=%08x", i, (unsigned int) builtin_db_usage_map[i]); }; for (type = 0; type < 32 * BUILTIN_DB_MAX_BLOCKS_32; type++) { if ((builtin_db_usage_map[type / 32] & (1 << (type % 32))) != 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "DB type used: %d", type); info = NULL; switch(type) { #ifdef SUPPORT_DB_IPV4_REG case BUILTIN_DB_IPV4_REGISTRY: snprintf(tempstring2, sizeof(tempstring2), "IPv4-REG:%s", dbipv4addr_registry_status); info = tempstring2; break; #endif #ifdef SUPPORT_DB_IPV6_REG case BUILTIN_DB_IPV6_REGISTRY: snprintf(tempstring2, sizeof(tempstring2), "IPv6-REG:%s", dbipv6addr_registry_status); info = tempstring2; break; #endif #ifdef SUPPORT_DB_IEEE case BUILTIN_DB_IAB: snprintf(tempstring2, sizeof(tempstring2), "IEEE:%s", libieee_iab_status); info = tempstring2; break; case BUILTIN_DB_OUI: snprintf(tempstring2, sizeof(tempstring2), "IEEE:%s", libieee_oui_status); info = tempstring2; break; case BUILTIN_DB_OUI28: snprintf(tempstring2, sizeof(tempstring2), "IEEE:%s", libieee_oui28_status); info = tempstring2; break; case BUILTIN_DB_OUI36: snprintf(tempstring2, sizeof(tempstring2), "IEEE:%s", libieee_oui36_status); info = tempstring2; break; #endif #ifdef SUPPORT_DB_AS_REG case BUILTIN_DB_AS_REG: snprintf(tempstring2, sizeof(tempstring2), "AS-REG:%s", dbasn_registry_status); info = tempstring2; break; #endif #ifdef SUPPORT_DB_CC_REG case BUILTIN_DB_CC_REG: snprintf(tempstring2, sizeof(tempstring2), "CC-REG:%s", db_cc_registry_status); info = tempstring2; break; #endif }; if (info == NULL) { continue; }; // NULL pointer returned if (strlen(info) == 0) { continue; }; // empty string returned DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "type=%d info=%s", type, info); if (strlen(builtin_db_usage_string) > 0) { if (strstr(builtin_db_usage_string, info) != NULL) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "type=%d info=%s (skip, already displayed)", type, info); continue; }; // string already included snprintf(tempstring, sizeof(tempstring), "%s / %s", builtin_db_usage_string, info); } else { snprintf(tempstring, sizeof(tempstring), "%s", info); }; snprintf(builtin_db_usage_string, sizeof(builtin_db_usage_string), "%s", tempstring); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "type=%d builtin_db_usage_string=%s", type, builtin_db_usage_string); }; }; return(builtin_db_usage_string); }; /********************************************* * Abstract functions * *******************************************/ /* query for available features * ret=-1: unknown * 0 : not matching * 1 : ok */ int libipv6calc_db_wrapper_BuiltIn_has_features(uint32_t features) { int result = -1; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Called with feature value to test: 0x%08x", features); if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_BUILTIN] & features) == features) { result = 1; } else { result = 0; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Return with result: %d", result); return(result); }; /* query db_unixtime by feature * ret=-1: unknown * 0 : not matching * 1 : ok */ time_t libipv6calc_db_wrapper_BuiltIn_db_unixtime_by_feature(uint32_t feature) { time_t result = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Called with feature value to get db_unixtime: 0x%08x", feature); if ((IPV6CALC_DB_IPV4_TO_REGISTRY & feature) == feature) { #ifdef SUPPORT_DB_IPV4_REG result = dbipv4addr_registry_unixtime; #endif } else if ((IPV6CALC_DB_IPV6_TO_REGISTRY & feature) == feature) { #ifdef SUPPORT_DB_IPV6_REG result = dbipv6addr_registry_unixtime; #endif }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Return for feature=0x%08x db_unixtime=%ld", feature, (long int) result); return(result); }; #ifdef SUPPORT_BUILTIN /******************************* * Wrapper functions for BuiltIn *******************************/ // get registry number by AS number int libipv6calc_db_wrapper_BuiltIn_registry_num_by_as_num32(const uint32_t as_num32) { int result = REGISTRY_UNKNOWN; int max = MAXENTRIES_ARRAY(dbasn_assignment); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Called with as_num32=%d max=%d", as_num32, max); #ifdef SUPPORT_DB_AS_REG // binary search int i, r = -1; int i_min = 0; int i_max = max; int i_old = -1; i = max / 2; while (i_old != i) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Search for as_num32=%d max=%d i=%d start=%d stop=%d", as_num32, max, i, dbasn_assignment[i].asn_start, dbasn_assignment[i].asn_stop); if (as_num32 < dbasn_assignment[i].asn_start) { // to high in array, jump down i_max = i; } else if (as_num32 > dbasn_assignment[i].asn_stop) { // to low in array, jump up i_min = i; } else { // hit r = i; break; }; i_old = i; i = (i_max - i_min) / 2 + i_min; }; if (r != -1) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Finished with success result: %d", dbasn_assignment[r].registry); result = dbasn_assignment[r].registry; BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_AS_REG); } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Finished without success"); }; #endif return(result); }; // get registry number by CC index int libipv6calc_db_wrapper_BuiltIn_registry_num_by_cc_index(const uint16_t cc_index) { int result = REGISTRY_UNKNOWN; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Called with cc_index=%d", cc_index); if (cc_index > COUNTRYCODE_INDEX_MAX) { goto END_libipv6calc_db_wrapper; } else if (cc_index > MAXENTRIES_ARRAY(cc_index_reg_assignment)) { goto END_libipv6calc_db_wrapper; } else if (cc_index == COUNTRYCODE_INDEX_UNKNOWN) { result = REGISTRY_IANA; goto END_libipv6calc_db_wrapper; } else if ((cc_index >= COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MIN) && (cc_index <= COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MAX)) { result = cc_index - COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MIN; goto END_libipv6calc_db_wrapper; }; #ifdef SUPPORT_DB_CC_REG result = cc_index_reg_assignment[cc_index].registry; BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_CC_REG); #endif END_libipv6calc_db_wrapper: DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Return registry=%s (%d) (cc_index=%d)", libipv6calc_registry_string_by_num(result), result, cc_index); return(result); }; /* * Get IEEE vendor string * in: macaddrp * mod: resultstring * out: 0=found, 1=not found */ int libipv6calc_db_wrapper_BuiltIn_ieee_vendor_string_by_macaddr(char *resultstring, const size_t resultstring_length, const ipv6calc_macaddr *macaddrp) { int retval = 1; #ifdef SUPPORT_DB_IEEE int i; uint32_t idval, subidval; #endif DEBUGPRINT_NA(DEBUG_libieee, "called"); /* catch special ones */ if ((macaddrp->addr[0] == 0xfc && macaddrp->addr[1] == 0xfc)) { /* Linux special OUI for ISDN-NET or PLIP interfaces */ snprintf(resultstring, resultstring_length, "Linux ISDN-NET/PLIP"); return (0); }; if ( (macaddrp->addr[0] & 0x01) != 0 ) { /* Multicast */ return (1); }; #ifdef SUPPORT_DB_IEEE idval = (macaddrp->addr[0] << 16) | (macaddrp->addr[1] << 8) | macaddrp->addr[2]; subidval = (macaddrp->addr[3] << 16) | (macaddrp->addr[4] << 8) | macaddrp->addr[5]; /* run through IAB list */ for (i = 0; i < MAXENTRIES_ARRAY(libieee_iab); i++) { if (libieee_iab[i].id == idval) { /* major id match */ if (libieee_iab[i].subid_begin <= subidval && libieee_iab[i].subid_end >= subidval) { snprintf(resultstring, resultstring_length, "%s", libieee_iab[i].string_owner); BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_IAB); return (0); }; }; }; /* run through OUI36 list */ for (i = 0; i < MAXENTRIES_ARRAY(libieee_oui36); i++) { if (libieee_oui36[i].id == idval) { /* major id match */ if (libieee_oui36[i].subid_begin <= subidval && libieee_oui36[i].subid_end >= subidval) { snprintf(resultstring, resultstring_length, "%s", libieee_oui36[i].string_owner); BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_OUI36); return (0); }; }; }; /* run through OUI28 list */ for (i = 0; i < MAXENTRIES_ARRAY(libieee_oui28); i++) { if (libieee_oui28[i].id == idval) { /* major id match */ if (libieee_oui28[i].subid_begin <= subidval && libieee_oui28[i].subid_end >= subidval) { snprintf(resultstring, resultstring_length, "%s", libieee_oui28[i].string_owner); BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_OUI28); return (0); }; }; }; /* run through OUI list */ for (i = 0; i < MAXENTRIES_ARRAY(libieee_oui); i++) { if (libieee_oui[i].id == idval) { /* match */ snprintf(resultstring, resultstring_length, "%s", libieee_oui[i].string_owner); BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_OUI); return (0); }; }; #else snprintf(resultstring, resultstring_length, "(IEEE databases not compiled in)"); return (0); #endif /* not found */ retval = 1; return (retval); }; /* * Get short IEEE vendor string * in: macaddrp * mod: resultstring * out: 0=found, 1=not found */ int libipv6calc_db_wrapper_BuiltIn_ieee_vendor_string_short_by_macaddr(char *resultstring, const size_t resultstring_length, const ipv6calc_macaddr *macaddrp) { int retval = 1; #ifdef SUPPORT_DB_IEEE int i; uint32_t idval, subidval; #endif DEBUGPRINT_NA(DEBUG_libieee, "called"); /* catch special ones */ if ((macaddrp->addr[0] == 0xfc && macaddrp->addr[1] == 0xfc)) { /* Linux special OUI for ISDN-NET or PLIP interfaces */ snprintf(resultstring, resultstring_length, "Linux-ISDN-NET+PLIP"); return (0); }; if ( (macaddrp->addr[0] & 0x01) != 0 ) { /* Multicast */ return (1); }; #ifdef SUPPORT_DB_IEEE idval = (macaddrp->addr[0] << 16) | (macaddrp->addr[1] << 8) | macaddrp->addr[2]; subidval = (macaddrp->addr[3] << 16) | (macaddrp->addr[4] << 8) | macaddrp->addr[5]; /* run through IAB list */ for (i = 0; i < MAXENTRIES_ARRAY(libieee_iab); i++) { if (libieee_iab[i].id == idval) { /* major id match */ if (libieee_iab[i].subid_begin <= subidval && libieee_iab[i].subid_end >= subidval) { snprintf(resultstring, resultstring_length, "%s", libieee_iab[i].shortstring_owner); BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_IAB); return (0); }; }; }; /* run through OUI36 list */ for (i = 0; i < MAXENTRIES_ARRAY(libieee_oui36); i++) { if (libieee_oui36[i].id == idval) { /* major id match */ if (libieee_oui36[i].subid_begin <= subidval && libieee_oui36[i].subid_end >= subidval) { snprintf(resultstring, resultstring_length, "%s", libieee_oui36[i].shortstring_owner); BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_OUI36); return (0); }; }; }; /* run through OUI28 list */ for (i = 0; i < MAXENTRIES_ARRAY(libieee_oui28); i++) { if (libieee_oui28[i].id == idval) { /* major id match */ if (libieee_oui28[i].subid_begin <= subidval && libieee_oui28[i].subid_end >= subidval) { snprintf(resultstring, resultstring_length, "%s", libieee_oui28[i].shortstring_owner); BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_OUI28); return (0); }; }; }; /* run through OUI list */ for (i = 0; i < MAXENTRIES_ARRAY(libieee_oui); i++) { if (libieee_oui[i].id == idval) { /* match */ snprintf(resultstring, resultstring_length, "%s", libieee_oui[i].shortstring_owner); BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_OUI); return (0); }; }; #else snprintf(resultstring, resultstring_length, "(IEEE databases not compiled in)"); return (0); #endif /* not found */ retval = 1; return (retval); }; #ifdef SUPPORT_DB_IPV4_REG /* * dbipv4addr_assignment / get row (callback function for retrieving value from array) */ int libipv6calc_db_wrapper_BuiltIn_get_row_dbipv4addr_assignment(const uint32_t row, uint32_t *key_first_00_31_ptr, uint32_t *key_first_32_63_ptr, uint32_t *key_last_00_31_ptr, uint32_t *key_last_32_63_ptr) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Called fetching row: %lu", (unsigned long int) row); if (row >= MAXENTRIES_ARRAY(dbipv4addr_assignment)) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "row out of range: %lu (maximum: %lu)", (unsigned long int) row, (unsigned long int) MAXENTRIES_ARRAY(dbipv4addr_assignment) - 1); return(1); }; *key_first_00_31_ptr = dbipv4addr_assignment[row].first; *key_last_00_31_ptr = dbipv4addr_assignment[row].last; *key_first_32_63_ptr = 0; *key_last_32_63_ptr = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Keys for row: %lu key_first_00_31_ptr=%08lx key_last_00_31_ptr=%08lxu", (unsigned long int) row, (unsigned long int) *key_first_00_31_ptr, (unsigned long int) *key_last_00_31_ptr ); return(0); }; /* * dbipv4addr_assignment_iana / get row (callback function for retrieving value from array) */ int libipv6calc_db_wrapper_BuiltIn_get_row_dbipv4addr_assignment_iana(const uint32_t row, uint32_t *key_first_00_31_ptr, uint32_t *key_first_32_63_ptr, uint32_t *key_last_00_31_ptr, uint32_t *key_last_32_63_ptr) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Called fetching row: %lu", (unsigned long int) row); if (row >= MAXENTRIES_ARRAY(dbipv4addr_assignment_iana)) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "row out of range: %lu (maximum: %lu)", (unsigned long int) row, (unsigned long int) MAXENTRIES_ARRAY(dbipv4addr_assignment_iana) - 1); return(1); }; *key_first_00_31_ptr = dbipv4addr_assignment_iana[row].first; *key_last_00_31_ptr = dbipv4addr_assignment_iana[row].last; *key_first_32_63_ptr = 0; *key_last_32_63_ptr = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Keys for row: %lu key_first_00_31_ptr=%08lx key_last_00_31_ptr=%08lxu", (unsigned long int) row, (unsigned long int) *key_first_00_31_ptr, (unsigned long int) *key_last_00_31_ptr ); return(0); }; /* * dbipv4addr_info / get row (callback function for retrieving value from array) */ int libipv6calc_db_wrapper_BuiltIn_get_row_dbipv4addr_info(const uint32_t row, uint32_t *key_first_00_31_ptr, uint32_t *key_first_32_63_ptr, uint32_t *key_last_00_31_ptr, uint32_t *key_last_32_63_ptr) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Called fetching row: %lu", (unsigned long int) row); if (row >= MAXENTRIES_ARRAY(dbipv4addr_info)) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "row out of range: %lu (maximum: %lu)", (unsigned long int) row, (unsigned long int) MAXENTRIES_ARRAY(dbipv4addr_info) - 1); return(1); }; *key_first_00_31_ptr = dbipv4addr_info[row].first; *key_last_00_31_ptr = dbipv4addr_info[row].last; *key_first_32_63_ptr = 0; *key_last_32_63_ptr = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Keys for row: %lu key_first_00_31_ptr=%08lx key_last_00_31_ptr=%08lxu", (unsigned long int) row, (unsigned long int) *key_first_00_31_ptr, (unsigned long int) *key_last_00_31_ptr ); return(0); }; #endif // SUPPORT_DB_IPV4_REG /* * get registry number of an IPv4 address * * in: ipv4addr = IPv4 address structure * out: assignment number (-1 = no result) */ int libipv6calc_db_wrapper_BuiltIn_registry_num_by_ipv4addr(const ipv6calc_ipv4addr *ipv4addrp) { uint32_t ipv4 = ipv4addr_getdword(ipv4addrp); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Given IPv4 address: %08x", (unsigned int) ipv4); int result = REGISTRY_UNKNOWN; #ifdef SUPPORT_DB_IPV4_REG int match = -1; match = libipv6calc_db_wrapper_get_entry_generic( NULL, // pointer to data IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY, // type of data_ptr IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_FIRST_LAST, // key type 0, // key format (not relevant) 32, // key length IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY, // search type MAXENTRIES_ARRAY(dbipv4addr_assignment), // number of rows ipv4, // lookup key MSB 0, // lookup key LSB NULL, // data ptr (not used in IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY) libipv6calc_db_wrapper_BuiltIn_get_row_dbipv4addr_assignment // function pointer ); if (match > -1) { result = dbipv4addr_assignment[match].registry; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Finished with success result (dbipv4addr_assignment): match=%d reg=%d", match, result); BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_IPV4_REGISTRY); }; if (result == REGISTRY_UNKNOWN) { // IANA fallback DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Nothing found in dbipv4addr_assignment, fallback now to dbipv4addr_assignment_iana"); match = libipv6calc_db_wrapper_get_entry_generic( NULL, // pointer to data IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY, // type of data_ptr IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_FIRST_LAST, // key type 0, // key format (not relevant) 32, // key length IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY, // search type MAXENTRIES_ARRAY(dbipv4addr_assignment_iana), // number of rows ipv4, // lookup key MSB 0, // lookup key LSB NULL, // data ptr (not used in IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY) libipv6calc_db_wrapper_BuiltIn_get_row_dbipv4addr_assignment_iana // function pointer ); if (match > -1) { result = dbipv4addr_assignment_iana[match].registry; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Finished with success result (dbipv4addr_assignment_iana): match=%d reg=%d", match, result); BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_IPV4_REGISTRY); } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Finished without success"); }; }; #endif // SUPPORT_DB_IPV4_REG return(result); }; /* * get info of an IPv4 address * * in: ipv4addr = IPv4 address structure * in: char* and size to fill * out: 0 = found, -1 = no result */ int libipv6calc_db_wrapper_BuiltIn_info_by_ipv4addr(const ipv6calc_ipv4addr *ipv4addrp, char *string, const size_t string_len) { uint32_t ipv4 = ipv4addr_getdword(ipv4addrp); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Given IPv4 address: %08x", (unsigned int) ipv4); int result = -1; #ifdef SUPPORT_DB_IPV4_REG int match = -1; match = libipv6calc_db_wrapper_get_entry_generic( NULL, // pointer to data IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY, // type of data_ptr IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_FIRST_LAST, // key type 0, // key format (not relevant) 32, // key length IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY, // search type MAXENTRIES_ARRAY(dbipv4addr_info), // number of rows ipv4, // lookup key MSB 0, // lookup key LSB NULL, // data ptr (not used in IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY) libipv6calc_db_wrapper_BuiltIn_get_row_dbipv4addr_info // function pointer ); if (match > -1) { snprintf(string, string_len, "%s", dbipv4addr_info[match].info); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Finished with success result (dbipv4addr_info): match=%d info=\"%s\"", match, string); BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_IPV4_REGISTRY); result = 0; }; #else // SUPPORT_DB_IPV4_REG snprintf(string, string_len, "%s", ""); #endif // SUPPORT_DB_IPV4_REG return(result); }; #ifdef SUPPORT_DB_IPV6_REG /* * dbipv6addr_assignment / get row (callback function for retrieving value from array) */ int libipv6calc_db_wrapper_BuiltIn_get_row_dbipv6addr_assignment(const uint32_t row, uint32_t *key_base_00_31_ptr, uint32_t *key_base_32_63_ptr, uint32_t *key_mask_00_31_ptr, uint32_t *key_mask_32_63_ptr) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Called fetching row: %lu", (unsigned long int) row); if (row >= MAXENTRIES_ARRAY(dbipv6addr_assignment)) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "row out of range: %lu (maximum: %lu)", (unsigned long int) row, (unsigned long int) MAXENTRIES_ARRAY(dbipv6addr_assignment) - 1); return(-1); }; *key_base_00_31_ptr = dbipv6addr_assignment[row].ipv6addr_00_31; *key_base_32_63_ptr = dbipv6addr_assignment[row].ipv6addr_32_63; *key_mask_00_31_ptr = dbipv6addr_assignment[row].ipv6mask_00_31; *key_mask_32_63_ptr = dbipv6addr_assignment[row].ipv6mask_32_63; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Keys for row: %lu key_base_00_31_ptr=%08lx key_base_32_63_ptr=%08lx key_mask_00_31_ptr=%08lxu key_mask_32_63_ptr=%08lxu seqlongest=%d", (unsigned long int) row, (unsigned long int) *key_base_00_31_ptr, (unsigned long int) *key_base_32_63_ptr, (unsigned long int) *key_mask_00_31_ptr, (unsigned long int) *key_mask_32_63_ptr, dbipv6addr_assignment[row].prefixlength ); return(dbipv6addr_assignment[row].prefixlength); }; /* * dbipv6addr_info / get row (callback function for retrieving value from array) */ int libipv6calc_db_wrapper_BuiltIn_get_row_dbipv6addr_info(const uint32_t row, uint32_t *key_base_00_31_ptr, uint32_t *key_base_32_63_ptr, uint32_t *key_mask_00_31_ptr, uint32_t *key_mask_32_63_ptr) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Called fetching row: %lu", (unsigned long int) row); if (row >= MAXENTRIES_ARRAY(dbipv6addr_info)) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "row out of range: %lu (maximum: %lu)", (unsigned long int) row, (unsigned long int) MAXENTRIES_ARRAY(dbipv6addr_info) - 1); return(-1); }; *key_base_00_31_ptr = dbipv6addr_info[row].ipv6addr_00_31; *key_base_32_63_ptr = dbipv6addr_info[row].ipv6addr_32_63; *key_mask_00_31_ptr = dbipv6addr_info[row].ipv6mask_00_31; *key_mask_32_63_ptr = dbipv6addr_info[row].ipv6mask_32_63; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Keys for row: %lu key_base_00_31_ptr=%08lx key_base_32_63_ptr=%08lx key_mask_00_31_ptr=%08lxu key_mask_32_63_ptr=%08lxu seqlongest=%d", (unsigned long int) row, (unsigned long int) *key_base_00_31_ptr, (unsigned long int) *key_base_32_63_ptr, (unsigned long int) *key_mask_00_31_ptr, (unsigned long int) *key_mask_32_63_ptr, dbipv6addr_info[row].prefixlength ); return(dbipv6addr_info[row].prefixlength); }; #endif // SUPPORT_DB_IPV6_REG /* * get registry number of an IPv6 address * * in: ipv6addr = IPv6 address structure * out: assignment number (-1 = no result) */ int libipv6calc_db_wrapper_BuiltIn_registry_num_by_ipv6addr(const ipv6calc_ipv6addr *ipv6addrp) { uint32_t ipv6_00_31 = ipv6addr_getdword(ipv6addrp, 0); uint32_t ipv6_32_63 = ipv6addr_getdword(ipv6addrp, 1); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Given ipv6 prefix: %08x%08x", (unsigned int) ipv6_00_31, (unsigned int) ipv6_32_63); if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_6BONE) != 0) { return(REGISTRY_6BONE); }; int result = REGISTRY_UNKNOWN; #ifdef SUPPORT_DB_IPV6_REG int match = -1; match = libipv6calc_db_wrapper_get_entry_generic( NULL, // pointer to data IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY, // type of data_ptr IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_BASE_MASK, // key type 0, // key format (not relevant) 64, // key length IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_SEQLONGEST, // search type MAXENTRIES_ARRAY(dbipv6addr_assignment), // number of rows ipv6_00_31, // lookup key MSB ipv6_32_63, // lookup key LSB NULL, // data ptr (not used in IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY) libipv6calc_db_wrapper_BuiltIn_get_row_dbipv6addr_assignment // function pointer ); /* result */ if ( match > -1 ) { result = dbipv6addr_assignment[match].registry; BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_IPV6_REGISTRY); }; #endif return(result); }; /* * get info of an IPv6 address * * in: ipv6addr = IPv6 address structure * in: char* and size to fill * out: 0 = found, -1 = no result */ int libipv6calc_db_wrapper_BuiltIn_info_by_ipv6addr(const ipv6calc_ipv6addr *ipv6addrp, char *string, const size_t string_len) { uint32_t ipv6_00_31 = ipv6addr_getdword(ipv6addrp, 0); uint32_t ipv6_32_63 = ipv6addr_getdword(ipv6addrp, 1); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Given ipv6 prefix: %08x%08x", (unsigned int) ipv6_00_31, (unsigned int) ipv6_32_63); int result = -1; #ifdef SUPPORT_DB_IPV6_REG int match = -1; match = libipv6calc_db_wrapper_get_entry_generic( NULL, // pointer to data IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY, // type of data_ptr IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_BASE_MASK, // key type 0, // key format (not relevant) 64, // key length IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY, // search type MAXENTRIES_ARRAY(dbipv6addr_info), // number of rows ipv6_00_31, // lookup key MSB ipv6_32_63, // lookup key LSB NULL, // data ptr (not used in IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_ARRAY) libipv6calc_db_wrapper_BuiltIn_get_row_dbipv6addr_info // function pointer ); if (match > -1) { snprintf(string, string_len, "%s", dbipv6addr_info[match].info); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_BuiltIn, "Finished with success result (dbipv6addr_info): match=%d info=\"%s\"", match, string); BUILTIN_DB_USAGE_MAP_TAG(BUILTIN_DB_IPV6_REGISTRY); result = 0; }; #else // SUPPORT_DB_IPV6_REG snprintf(string, string_len, "%s", ""); #endif // SUPPORT_DB_IPV6_REG return(result); }; #endif // SUPPORT_BUILTIN ipv6calc-4.1.0/databases/lib/libipv6calc_db_wrapper_BuiltIn.h000066400000000000000000000072311444154247200241340ustar00rootroot00000000000000/* * Project : ipv6calc * File : databases/lib/libipv6calc_db_wrapper_BuiltIn.h * Version : $Id: 2f6b58e93f2eaaca0e76c59bff83734abc71ab83 $ * Copyright : 2013-2019 by Peter Bieringer * * Information: * Header file for libipv6calc_db_wrapper_BuiltIn.c */ #include #include "ipv6calctypes.h" #include "libmac.h" #include "libipv4addr.h" #include "libipv6addr.h" #ifndef _libipv6calc_db_wrapper_BuiltIn_h #define _libipv6calc_db_wrapper_BuiltIn_h 1 // database types #define BUILTIN_DB_IPV4_REGISTRY 1 #define BUILTIN_DB_IPV6_REGISTRY 2 #define BUILTIN_DB_IAB 3 #define BUILTIN_DB_OUI 4 #define BUILTIN_DB_OUI36 5 #define BUILTIN_DB_CC_REG 6 #define BUILTIN_DB_AS_REG 7 #define BUILTIN_DB_OUI28 8 #define BUILTIN_DB_MAX (8 + 1) // features extern uint32_t wrapper_features_BuiltIn; /* ASN->Registry assignment structure */ typedef struct { const uint32_t asn_start; const uint32_t asn_stop; const uint8_t registry; } s_asn_assignment; /* CC->Registry assignment structure */ typedef struct { const char cc[3]; const uint8_t registry; } s_cc_reg_assignment; typedef struct { const uint8_t registry; } s_cc_index_reg_assignment; /* IPv4 address assignment structure */ typedef struct { const uint32_t first; const uint32_t last; const uint8_t registry; } s_ipv4addr_assignment; /* IPv4 address info structure */ typedef struct { const uint32_t first; const uint32_t last; const char* info; } s_ipv4addr_info; /* IPv6 address assignment structure */ typedef struct { const uint32_t ipv6addr_00_31; const uint32_t ipv6addr_32_63; const uint32_t ipv6mask_00_31; const uint32_t ipv6mask_32_63; const uint8_t prefixlength; /* prefix length (0-128) 8 bit*/ const uint8_t registry; } s_ipv6addr_assignment; /* IPv6 address info structure */ typedef struct { const uint32_t ipv6addr_00_31; const uint32_t ipv6addr_32_63; const uint32_t ipv6mask_00_31; const uint32_t ipv6mask_32_63; const uint8_t prefixlength; /* prefix length (0-128) 8 bit*/ const char* info; } s_ipv6addr_info; #endif extern int libipv6calc_db_wrapper_BuiltIn_wrapper_init(void); extern int libipv6calc_db_wrapper_BuiltIn_wrapper_cleanup(void); extern void libipv6calc_db_wrapper_BuiltIn_wrapper_info(char *string, const size_t size); extern void libipv6calc_db_wrapper_BuiltIn_wrapper_print_db_info(const int level_verbose, const char *prefix_string); extern char *libipv6calc_db_wrapper_BuiltIn_wrapper_db_info_used(void); extern int libipv6calc_db_wrapper_BuiltIn_has_features(uint32_t features); extern time_t libipv6calc_db_wrapper_BuiltIn_db_unixtime_by_feature(uint32_t feature); extern int libipv6calc_db_wrapper_BuiltIn_registry_num_by_as_num32(const uint32_t as_num32); extern int libipv6calc_db_wrapper_BuiltIn_registry_num_by_cc_index(const uint16_t cc_index); // IEEE extern int libipv6calc_db_wrapper_BuiltIn_ieee_vendor_string_by_macaddr(char *resultstring, const size_t resultstring_length, const ipv6calc_macaddr *macaddrp); extern int libipv6calc_db_wrapper_BuiltIn_ieee_vendor_string_short_by_macaddr(char *resultstring, const size_t resultstring_length, const ipv6calc_macaddr *macaddrp); // IPv4 Registry extern int libipv6calc_db_wrapper_BuiltIn_registry_num_by_ipv4addr(const ipv6calc_ipv4addr *ipv4addrp); extern int libipv6calc_db_wrapper_BuiltIn_info_by_ipv4addr(const ipv6calc_ipv4addr *ipv4addrp, char *string, const size_t string_len); // IPv6 Registry extern int libipv6calc_db_wrapper_BuiltIn_registry_num_by_ipv6addr(const ipv6calc_ipv6addr *ipv6addrp); extern int libipv6calc_db_wrapper_BuiltIn_info_by_ipv6addr(const ipv6calc_ipv6addr *ipv6addrp, char *string, const size_t string_len); ipv6calc-4.1.0/databases/lib/libipv6calc_db_wrapper_DBIP2.c000066400000000000000000001022371444154247200233630ustar00rootroot00000000000000/* * Project : ipv6calc * File : databases/lib/libipv6calc_db_wrapper_DBIP2.c * Version : $Id: ab735debd350836439cc62796cc3676cbc360d7e $ * Copyright : 2019-2021 by Peter Bieringer * * Information: * ipv6calc DB-IP.com database wrapper for MaxMindDB databases */ #include #include #include #include #include #include #include #include "config.h" #include "libipv6calcdebug.h" #include "libipv6calc.h" #include "libipv6calc_db_wrapper.h" #ifdef SUPPORT_DBIP2 #include "libipv6calc_db_wrapper_DBIP2.h" char dbip2_db_dir[PATH_MAX] = DBIP2_DB; static const char* wrapper_dbip2_info = "DBIP2"; /* database files */ static const db_file_desc2 libipv6calc_db_wrapper_DBIP2_db_file_desc[] = { // country (lite) { DBIP2_DB_COUNTRY_LITE , "dbip-country-lite.mmdb" , "IPv4/v6 CountryCode (FREE)" , IPV6CALC_DB_IP_TO_CC | IPV6CALC_DB_DBIP | IPV6CALC_DB_IP_TO_GEONAMEID | IPV6CALC_DB_IP_TO_COUNTRY , IPV6CALC_DB_DBIP2_INTERNAL_FREE }, // city (lite) { DBIP2_DB_CITY_LITE , "dbip-city-lite.mmdb" , "IPv4/v6 City (FREE)" , IPV6CALC_DB_IP_TO_CITY | IPV6CALC_DB_IP_TO_REGION | IPV6CALC_DB_IP_TO_CC | IPV6CALC_DB_DBIP | IPV6CALC_DB_IP_TO_GEONAMEID | IPV6CALC_DB_IP_TO_COUNTRY , IPV6CALC_DB_DBIP2_INTERNAL_FREE }, // country { DBIP2_DB_COUNTRY , "dbip-country.mmdb" , "IPv4/v6 CountryCode (COMM)" , IPV6CALC_DB_IP_TO_CC | IPV6CALC_DB_DBIP | IPV6CALC_DB_IP_TO_GEONAMEID | IPV6CALC_DB_IP_TO_COUNTRY , IPV6CALC_DB_DBIP2_INTERNAL_COMM }, // location { DBIP2_DB_LOCATION , "dbip-location.mmdb" , "IPv4/v6 Location (COMM)" , IPV6CALC_DB_IP_TO_CITY | IPV6CALC_DB_IP_TO_REGION | IPV6CALC_DB_IP_TO_CC | IPV6CALC_DB_DBIP | IPV6CALC_DB_IP_TO_COUNTRY | IPV6CALC_DB_IP_TO_GEONAMEID , IPV6CALC_DB_DBIP2_INTERNAL_COMM }, // ISP { DBIP2_DB_ISP , "dbip-isp.mmdb" , "IPv4/v6 ISP (COMM)", IPV6CALC_DB_IP_TO_CC | IPV6CALC_DB_DBIP | IPV6CALC_DB_IP_TO_AS , IPV6CALC_DB_DBIP2_INTERNAL_COMM }, // full { DBIP2_DB_LOCATION_ISP , "dbip-location-isp.mmdb" , "IPv4/v6 Location+ISP (COMM)" , IPV6CALC_DB_IP_TO_CITY | IPV6CALC_DB_IP_TO_REGION | IPV6CALC_DB_IP_TO_CC | IPV6CALC_DB_DBIP | IPV6CALC_DB_IP_TO_COUNTRY | IPV6CALC_DB_IP_TO_AS | IPV6CALC_DB_IP_TO_GEONAMEID , IPV6CALC_DB_DBIP2_INTERNAL_COMM }, }; // DB used for resolution after automatic election, which is currently done by checking for DB files and the sequence in the header file static int dbip2_db_country_v4 = 0; static int dbip2_db_country_v6 = 0; static int dbip2_db_region_city_v4 = 0; static int dbip2_db_region_city_v6 = 0; typedef struct { unsigned int num; int dbtype; int dbym; } s_ipv6calc_dbip2_db; #define DBIP2_FREE 0 #define DBIP2_COMM 1 #define DBIP2_MAX 2 static s_ipv6calc_dbip2_db dbip2_db_country_v4_best[DBIP2_MAX]; static s_ipv6calc_dbip2_db dbip2_db_country_v6_best[DBIP2_MAX]; static s_ipv6calc_dbip2_db dbip2_db_region_city_v4_best[DBIP2_MAX]; static s_ipv6calc_dbip2_db dbip2_db_region_city_v6_best[DBIP2_MAX]; static int type2index[DBIP2_DB_MAX+1]; // select FREE database if COMM is older than given months int dbip2_db_comm_to_free_switch_min_delta_months = 12; // select better database of same product (COMM/FREE) only if not older than given months int dbip2_db_better_max_delta_months = 1; // select only a specific DBIP2 db type int dbip2_db_only_type = 0; #define DBIP2_UNPACK_YM(dbym) ((dbym > 0) ? ((dbym % 12) + ((dbym / 12)) * 100) : 0) /* database usage map */ #define DBIP2_DB_MAX_BLOCKS_32 2 // 0-63 static uint32_t dbip2_db_usage_map[DBIP2_DB_MAX_BLOCKS_32]; #define DBIP2_DB_USAGE_MAP_TAG(db) if (db < (32 * DBIP2_DB_MAX_BLOCKS_32)) { \ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Tag usage for db: %d", db); \ dbip2_db_usage_map[db / 32] |= 1 << (db % 32); \ } else { \ fprintf(stderr, "FIXME: unsupported db value (exceed limit): %d (%d)\n", db, 32 * DBIP2_DB_MAX_BLOCKS_32 - 1); \ exit(1); \ }; char dbip2_db_usage_string[IPV6CALC_STRING_MAX] = ""; // local cache static MMDB_s mmdb_cache[DBIP2_DB_MAX+1]; // local prototyping static char *libipv6calc_db_wrapper_DBIP2_dbfilename(const unsigned int type); static void libipv6calc_db_wrapper_DBIP2_close(const int type); /* * function initialise the DBIP2 wrapper * * in : (nothing) * out: 0=ok, 1=error */ int libipv6calc_db_wrapper_DBIP2_wrapper_init(void) { int i, dbym, dbtype, ret, product; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Called"); DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Check for standard DBIP2 databases"); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "custom directory: %s", dbip2_db_dir); /* check available databases for resolution */ for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_DBIP2_db_file_desc); i++) { // add entry to mapping type2index[libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number] = i; // clean local cache mmdb_cache[libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number].file_size = 0; mmdb_cache[libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number].flags = 0; // add features to implemented wrapper_features_by_source_implemented[IPV6CALC_DB_SOURCE_DBIP2] |= libipv6calc_db_wrapper_DBIP2_db_file_desc[i].features; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "DBIP2 database test for availability: %s", libipv6calc_db_wrapper_DBIP2_db_file_desc[i].filename); if (libipv6calc_db_wrapper_DBIP2_db_avail(libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number) == 1) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "DBIP2 database available: %s", libipv6calc_db_wrapper_DBIP2_db_file_desc[i].description); wrapper_features_by_source[IPV6CALC_DB_SOURCE_DBIP2] |= libipv6calc_db_wrapper_DBIP2_db_file_desc[i].features; } else { // db not available continue; }; ret = libipv6calc_db_wrapper_DBIP2_open_type(libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number); if (ret != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Error opening DBIP2 by type"); continue; }; dbtype = libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number; if ((dbip2_db_only_type > 0) && (dbip2_db_only_type != dbtype)) { // not selected continue; }; if ((libipv6calc_db_wrapper_DBIP2_db_file_desc[i].internal & IPV6CALC_DB_DBIP2_INTERNAL_FREE) != 0) { product = DBIP2_FREE; } else { product = DBIP2_COMM; }; time_t db_time = mmdb_cache[dbtype].metadata.build_epoch; struct tm *db_gmtime = gmtime(&db_time); dbym = (db_gmtime->tm_year + 1900) * 12 + (db_gmtime->tm_mon + 1); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "DBIP2 type=%d dbym=%d Year/Month=%d unixtime=%lld", dbtype, dbym, DBIP2_UNPACK_YM(dbym), (long long unsigned int) mmdb_cache[dbtype].metadata.build_epoch); #define DBIP2_DB_SELECT_BETTER(best) \ if ( \ (best.num == 0) \ || ( \ (best.dbym > 0) \ && ((best.dbym - dbym) <= dbip2_db_better_max_delta_months) \ ) \ ) { \ best.num = libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number; \ best.dbym = dbym; \ best.dbtype = dbtype; \ }; // note: databases are listed in sequence "less data" before "more data" if ((libipv6calc_db_wrapper_DBIP2_db_file_desc[i].features & IPV6CALC_DB_IPV4_TO_CC) != 0) { DBIP2_DB_SELECT_BETTER(dbip2_db_country_v4_best[product]) }; if ((libipv6calc_db_wrapper_DBIP2_db_file_desc[i].features & IPV6CALC_DB_IPV6_TO_CC) != 0) { DBIP2_DB_SELECT_BETTER(dbip2_db_country_v6_best[product]) }; if ((libipv6calc_db_wrapper_DBIP2_db_file_desc[i].features & (IPV6CALC_DB_IPV4_TO_REGION | IPV6CALC_DB_IPV4_TO_CITY)) != 0) { DBIP2_DB_SELECT_BETTER(dbip2_db_region_city_v4_best[product]) }; if ((libipv6calc_db_wrapper_DBIP2_db_file_desc[i].features & (IPV6CALC_DB_IPV6_TO_REGION | IPV6CALC_DB_IPV6_TO_CITY)) != 0) { DBIP2_DB_SELECT_BETTER(dbip2_db_region_city_v6_best[product]) }; wrapper_features_by_source[IPV6CALC_DB_SOURCE_DBIP2] |= libipv6calc_db_wrapper_DBIP2_db_file_desc[i].features; }; // select free instead of comm, if comm is outdated and free available if (dbip2_db_comm_to_free_switch_min_delta_months > 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "DBIP2 database priority check (comm->free) after months: %d", dbip2_db_comm_to_free_switch_min_delta_months); #define SELECT_FREE_INSTEAD_OF_COMM(free, comm, final) \ if ((free.num > 0) && (comm.num > 0)) { \ if (free.dbym - comm.dbym > dbip2_db_comm_to_free_switch_min_delta_months) { \ final = free.num; \ }; \ }; SELECT_FREE_INSTEAD_OF_COMM(dbip2_db_country_v4_best[DBIP2_FREE], dbip2_db_country_v4_best[DBIP2_COMM], dbip2_db_country_v4) SELECT_FREE_INSTEAD_OF_COMM(dbip2_db_country_v6_best[DBIP2_FREE], dbip2_db_country_v6_best[DBIP2_COMM], dbip2_db_country_v6) SELECT_FREE_INSTEAD_OF_COMM(dbip2_db_region_city_v4_best[DBIP2_FREE], dbip2_db_region_city_v4_best[DBIP2_COMM], dbip2_db_region_city_v4) SELECT_FREE_INSTEAD_OF_COMM(dbip2_db_region_city_v6_best[DBIP2_FREE], dbip2_db_region_city_v6_best[DBIP2_COMM], dbip2_db_region_city_v6) }; #define FILL_EMPTY(product, final) \ if ((product.num > 0) && (final == 0)) { \ final = product.num; \ }; // fill empty ones with comm FILL_EMPTY(dbip2_db_country_v4_best[DBIP2_COMM], dbip2_db_country_v4) FILL_EMPTY(dbip2_db_country_v6_best[DBIP2_COMM], dbip2_db_country_v6) FILL_EMPTY(dbip2_db_region_city_v4_best[DBIP2_COMM], dbip2_db_region_city_v4) FILL_EMPTY(dbip2_db_region_city_v6_best[DBIP2_COMM], dbip2_db_region_city_v6) // fill empty ones with free FILL_EMPTY(dbip2_db_country_v4_best[DBIP2_FREE], dbip2_db_country_v4) FILL_EMPTY(dbip2_db_country_v6_best[DBIP2_FREE], dbip2_db_country_v6) FILL_EMPTY(dbip2_db_region_city_v4_best[DBIP2_FREE], dbip2_db_region_city_v4) FILL_EMPTY(dbip2_db_region_city_v6_best[DBIP2_FREE], dbip2_db_region_city_v6) /* close handles which are not necessary further on */ for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_DBIP2_db_file_desc); i++) { if (mmdb_cache[libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number].file_size > 0) { if ( (libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number == dbip2_db_country_v4_best[DBIP2_FREE].num) || (libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number == dbip2_db_country_v4_best[DBIP2_COMM].num) || (libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number == dbip2_db_country_v6_best[DBIP2_FREE].num) || (libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number == dbip2_db_country_v6_best[DBIP2_COMM].num) ) { // database is in use continue; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Close further unused DBIP2: type=%d desc='%s'", libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number, libipv6calc_db_wrapper_DBIP2_db_file_desc[i].description); libipv6calc_db_wrapper_DBIP2_close(libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number); }; }; wrapper_features |= wrapper_features_by_source[IPV6CALC_DB_SOURCE_DBIP2]; return 0; }; /* * wrapper: DBIP2_close */ static void libipv6calc_db_wrapper_DBIP2_close(const int type) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Called type=%u", type); if (mmdb_cache[type].file_size > 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Close DBIP2: type=%d desc='%s'", type, libipv6calc_db_wrapper_DBIP2_db_file_desc[type2index[type]].description); libipv6calc_db_wrapper_MMDB_close(&mmdb_cache[type]); /* cleanup cache entry */ mmdb_cache[type].file_size = 0; } else if (mmdb_cache[type].flags > 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Already closed DBIP2: type=%d desc='%s'", type, libipv6calc_db_wrapper_DBIP2_db_file_desc[type2index[type]].description); }; }; /* * function cleanup the DBIP2 wrapper * * in : (nothing) * out: 0=ok, 1=error */ int libipv6calc_db_wrapper_DBIP2_wrapper_cleanup(void) { int i; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Called"); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_DBIP2_db_file_desc); i++) { libipv6calc_db_wrapper_DBIP2_close(i); }; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Finished"); return 0; }; /* * function info of DBIP2 wrapper * * in : ptr and size of string to be filled * out: modified string; */ void libipv6calc_db_wrapper_DBIP2_wrapper_info(char* string, const size_t size) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Called"); snprintf(string, size, "DBIP2 database support: Country4=%d Country6=%d ASN4=%d ASN6=%d City4=%d City6=%d", \ (wrapper_features & IPV6CALC_DB_IPV4_TO_CC) ? 1 : 0, \ (wrapper_features & IPV6CALC_DB_IPV6_TO_CC) ? 1 : 0, \ (wrapper_features & IPV6CALC_DB_IPV4_TO_AS) ? 1 : 0, \ (wrapper_features & IPV6CALC_DB_IPV6_TO_AS) ? 1 : 0, \ (wrapper_features & IPV6CALC_DB_IPV4_TO_CITY) ? 1 : 0, \ (wrapper_features & IPV6CALC_DB_IPV6_TO_CITY) ? 1 : 0 \ ); DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Finished"); return; }; /* * function print database info of DBIP2 wrapper * * in : (void) * out: (void) */ void libipv6calc_db_wrapper_DBIP2_wrapper_print_db_info(const int level_verbose, const char *prefix_string) { int ret, i, type, count = 0; const char *prefix = "\0"; if (prefix_string != NULL) { prefix = prefix_string; }; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Called"); IPV6CALC_DB_FEATURE_INFO(prefix, IPV6CALC_DB_SOURCE_DBIP2) fprintf(stderr, "%sDBIP2: info of available databases in directory: %s\n", prefix, dbip2_db_dir); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_DBIP2_db_file_desc); i++) { type = libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number; if (libipv6calc_db_wrapper_DBIP2_db_avail(type)) { // DBIP2 returned that database is available ret = libipv6calc_db_wrapper_DBIP2_open_type(type); if (ret != MMDB_SUCCESS) { fprintf(stderr, "%sDBIP2: %-30s: [%1d] %-30s (CAN'T OPEN database information)\n", prefix, libipv6calc_db_wrapper_DBIP2_db_file_desc[i].description, type, libipv6calc_db_wrapper_DBIP2_dbfilename(type)); } else { fprintf(stderr, "%sDBIP2: %-30s: [%1d] %-30s (%s)\n", prefix, libipv6calc_db_wrapper_DBIP2_db_file_desc[i].description, type, libipv6calc_db_wrapper_DBIP2_db_file_desc[i].filename, libipv6calc_db_wrapper_DBIP2_database_info(type)); libipv6calc_db_wrapper_DBIP2_close(type); count++; }; } else { if (level_verbose == LEVEL_VERBOSE2) { fprintf(stderr, "%sDBIP2: %-30s: [%1d] %-30s (%s)\n", prefix, libipv6calc_db_wrapper_DBIP2_db_file_desc[i].description, type, libipv6calc_db_wrapper_DBIP2_dbfilename(type), strerror(errno)); }; continue; }; }; if (count == 0) { fprintf(stderr, "%sDBIP2: NO available databases found in directory: %s\n", prefix, dbip2_db_dir); } else { if (level_verbose >= LEVEL_VERBOSE2) { fprintf(stderr, "%sDBIP2: detected best databases FREE Country4=%-3d DB%-2d %6d Country6=%-3d DB%-2d %6d City4=%-3d DB%-2d %6d City6=%-3d DB%-2d %6d\n" , prefix , dbip2_db_country_v4_best[DBIP2_FREE].num , dbip2_db_country_v4_best[DBIP2_FREE].dbtype , DBIP2_UNPACK_YM(dbip2_db_country_v4_best[DBIP2_FREE].dbym) , dbip2_db_country_v6_best[DBIP2_FREE].num , dbip2_db_country_v6_best[DBIP2_FREE].dbtype , DBIP2_UNPACK_YM(dbip2_db_country_v6_best[DBIP2_FREE].dbym) , dbip2_db_region_city_v4_best[DBIP2_FREE].num , dbip2_db_region_city_v4_best[DBIP2_FREE].dbtype , DBIP2_UNPACK_YM(dbip2_db_region_city_v4_best[DBIP2_FREE].dbym) , dbip2_db_region_city_v6_best[DBIP2_FREE].num , dbip2_db_region_city_v6_best[DBIP2_FREE].dbtype , DBIP2_UNPACK_YM(dbip2_db_region_city_v6_best[DBIP2_FREE].dbym) ); fprintf(stderr, "%sDBIP2: detected best databases COMM Country4=%-3d DB%-2d %6d Country6=%-3d DB%-2d %6d City4=%-3d DB%-2d %6d City6=%-3d DB%-2d %6d\n" , prefix , dbip2_db_country_v4_best[DBIP2_COMM].num , dbip2_db_country_v4_best[DBIP2_COMM].dbtype , DBIP2_UNPACK_YM(dbip2_db_country_v4_best[DBIP2_COMM].dbym) , dbip2_db_country_v6_best[DBIP2_COMM].num , dbip2_db_country_v6_best[DBIP2_COMM].dbtype , DBIP2_UNPACK_YM(dbip2_db_country_v6_best[DBIP2_COMM].dbym) , dbip2_db_region_city_v4_best[DBIP2_COMM].num , dbip2_db_region_city_v4_best[DBIP2_COMM].dbtype , DBIP2_UNPACK_YM(dbip2_db_region_city_v4_best[DBIP2_COMM].dbym) , dbip2_db_region_city_v6_best[DBIP2_COMM].num , dbip2_db_region_city_v6_best[DBIP2_COMM].dbtype , DBIP2_UNPACK_YM(dbip2_db_region_city_v6_best[DBIP2_COMM].dbym) ); } else if (level_verbose >= LEVEL_VERBOSE) { fprintf(stderr, "%sDBIP2: detected best databases FREE Country4=%-3d Country6=%-3d City4=%-3d City6=%-3d\n" , prefix , dbip2_db_country_v4_best[DBIP2_FREE].num , dbip2_db_country_v6_best[DBIP2_FREE].num , dbip2_db_region_city_v4_best[DBIP2_FREE].num , dbip2_db_region_city_v6_best[DBIP2_FREE].num ); fprintf(stderr, "%sDBIP2: detected best databases COMM Country4=%-3d Country6=%-3d City4=%-3d City6=%-3d\n" , prefix , dbip2_db_country_v4_best[DBIP2_COMM].num , dbip2_db_country_v6_best[DBIP2_COMM].num , dbip2_db_region_city_v4_best[DBIP2_COMM].num , dbip2_db_region_city_v6_best[DBIP2_COMM].num ); }; if (level_verbose >= LEVEL_VERBOSE) { fprintf(stderr, "%sDBIP2: selected best databases normal Country4=%-3d%s Country6=%-3d%s City4=%-3d%s City6=%-3d\n" , prefix , dbip2_db_country_v4 , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , dbip2_db_country_v6 , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , dbip2_db_region_city_v4 , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , dbip2_db_region_city_v6 ); if (dbip2_db_comm_to_free_switch_min_delta_months > 0) { fprintf(stderr, "%sDBIP2: selected best databases method: COMM older than %d months are deselected in case of FREE is available\n" , prefix , dbip2_db_comm_to_free_switch_min_delta_months ); }; if (dbip2_db_better_max_delta_months > 0) { fprintf(stderr, "%sDBIP2: selected best databases method: COMM/FREE with more features are only selected in case not older than %d months of already found COMM/FREE\n" , prefix , dbip2_db_better_max_delta_months ); }; if (dbip2_db_only_type > 0) { fprintf(stderr, "%sDBIP2: selected best databases method: by applying given DB type filter: %d\n" , prefix , dbip2_db_only_type ); }; }; }; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Finished"); return; }; /* * wrapper: string regarding used database infos */ char *libipv6calc_db_wrapper_DBIP2_wrapper_db_info_used(void) { int type, i; char tempstring[IPV6CALC_STRING_MAX]; char *info; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Called"); for (i = 0; i < DBIP2_DB_MAX_BLOCKS_32; i++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "dbip2_db_usage_map[%d]=%08x", i, (unsigned int) dbip2_db_usage_map[i]); }; for (type = 0; type < 32 * DBIP2_DB_MAX_BLOCKS_32; type++) { if ((dbip2_db_usage_map[type / 32] & (1 << (type % 32))) != 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "DB type used: %d", type); info = libipv6calc_db_wrapper_DBIP2_database_info(type); if (info == NULL) { continue; }; // NULL pointer returned if (strlen(info) == 0) { continue; }; // empty string returned DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "type=%d info=%s", type, info); if (strlen(dbip2_db_usage_string) > 0) { if (strstr(dbip2_db_usage_string, info) != NULL) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "type=%d info=%s (skip, already displayed)", type, info); continue; }; // string already included snprintf(tempstring, sizeof(tempstring), "%s / %s", dbip2_db_usage_string, info); } else { snprintf(tempstring, sizeof(tempstring), "%s", info); }; snprintf(dbip2_db_usage_string, sizeof(dbip2_db_usage_string), "%s", tempstring); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "type=%d dbip2_db_usage_string=%s", type, dbip2_db_usage_string); }; }; return(dbip2_db_usage_string); }; /******************************* * Wrapper extension functions for DBIP2 *******************************/ /* * wrapper extension: DBIP2_dbfilename */ static char *libipv6calc_db_wrapper_DBIP2_dbfilename(const unsigned int type) { static char tempstring[IPV6CALC_STRING_MAX]; int entry = -1, i; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Called: %s type=%d", wrapper_dbip2_info, type); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_DBIP2_db_file_desc); i++) { if (libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number == type) { entry = i; break; }; }; if (entry < 0) { return(NULL); }; snprintf(tempstring, sizeof(tempstring), "%s/%s", dbip2_db_dir, libipv6calc_db_wrapper_DBIP2_db_file_desc[i].filename); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Finished: %s type=%d has filename=%s", wrapper_dbip2_info, type, tempstring); return(tempstring); }; /* * wrapper extension: DBIP2_dbdescription */ const char *libipv6calc_db_wrapper_DBIP2_dbdescription(const unsigned int type) { int entry = -1, i; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Called: %s type=%d", wrapper_dbip2_info, type); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_DBIP2_db_file_desc); i++) { if (libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number == type) { entry = i; break; }; }; if (entry < 0) { return("unknown"); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Finished: %s type=%d has description=%s", wrapper_dbip2_info, type, libipv6calc_db_wrapper_DBIP2_db_file_desc[i].description); return(libipv6calc_db_wrapper_DBIP2_db_file_desc[i].description); }; /* * wrapper extension: DBIP2_db_avail * ret: 1=avail 0=not-avail */ int libipv6calc_db_wrapper_DBIP2_db_avail(const unsigned int type) { char *filename; int r = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Called: %s type=%d", wrapper_dbip2_info, type); filename = libipv6calc_db_wrapper_DBIP2_dbfilename(type); if (filename == NULL) { goto END_libipv6calc_db_wrapper; }; r = (access(filename, R_OK) == 0) ? 1:0; if (r == 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Finished: %s type=%d (still unknown) (r=%d: %s)", wrapper_dbip2_info, type, r, strerror(errno)); } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Finished: %s type=%d (%s) (r=%d)", wrapper_dbip2_info, type, filename, r); }; END_libipv6calc_db_wrapper: return(r); }; /* * wrapper extension: DBIP2_open_type * input: * type (mandatory) * modified: * mmdb_cache * output: * result */ int libipv6calc_db_wrapper_DBIP2_open_type(const unsigned int type) { char *filename; int entry = -1, i; int ret; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Called: %s type=%d", wrapper_dbip2_info, type); // check for valid type for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_DBIP2_db_file_desc); i++) { if (libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number == type) { entry = i; break; }; }; if (entry < 0) { mmdb_cache[type].file_size = 0; mmdb_cache[type].flags = 0; ret = MMDB_FILE_OPEN_ERROR; goto END_libipv6calc_db_wrapper; }; if (mmdb_cache[type].file_size > 0) { // already open DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Database already opened (cached) type=%d", type); ret = MMDB_SUCCESS; goto END_libipv6calc_db_wrapper; }; // retrieve filename filename = libipv6calc_db_wrapper_DBIP2_dbfilename(type); if (filename == NULL) { mmdb_cache[type].file_size = 0; mmdb_cache[type].flags = 0; ret = MMDB_FILE_OPEN_ERROR; goto END_libipv6calc_db_wrapper; }; ret = libipv6calc_db_wrapper_MMDB_open(filename, MMDB_MODE_MMAP, &mmdb_cache[type]); if (ret != MMDB_SUCCESS) { if (ipv6calc_quiet == 0) { fprintf(stderr, "MMDB_open failed: %s (%s)\n", libipv6calc_db_wrapper_MMDB_strerror(ret), filename); if (ret == MMDB_IO_ERROR) { fprintf(stderr, "MMDB_open IO error: %s (%s)\n", strerror(errno), filename); }; }; mmdb_cache[type].file_size = 0; mmdb_cache[type].flags = 0; ret = MMDB_FILE_OPEN_ERROR; goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Database successfully opened (fill-cache), type=%d", type); END_libipv6calc_db_wrapper: return(ret); }; /******************************* * Wrapper functions for DBIP2 *******************************/ /* * wrapper: DBIP2_database_info */ char *libipv6calc_db_wrapper_DBIP2_database_info(const unsigned int type) { static char resultstring[IPV6CALC_STRING_MAX]; char datastring[IPV6CALC_STRING_MAX]; char tempstring[IPV6CALC_STRING_MAX]; MMDB_s mmdb; int ret, i, entry = -1; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Called: %s", wrapper_dbip2_info); // check for valid type for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_DBIP2_db_file_desc); i++) { if (libipv6calc_db_wrapper_DBIP2_db_file_desc[i].number == (type & 0xffff)) { entry = i; break; }; }; if (entry < 0) { ERRORPRINT_WA("Invalid type (FIX CODE): %d", type); goto END_libipv6calc_db_wrapper; }; ret = libipv6calc_db_wrapper_DBIP2_open_type(type); if (ret != MMDB_SUCCESS) { snprintf(resultstring, sizeof(resultstring), "%s", "(CAN'T OPEN database information)"); goto END_libipv6calc_db_wrapper; }; // get metadata // /* const char *meta_dump = "\n" " Database metadata\n" " Node count: %i\n" " Record size: %i bits\n" " IP version: IPv%i\n" " Binary format: %i.%i\n" " Build epoch: %llu (%s)\n" " Type: %s\n" " Languages: "; fprintf(stdout, meta_dump, */ mmdb = mmdb_cache[type]; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "meta: NodeCount=%i RecordSize=%i IpVersion=%i BinaryFormat=%i.%i BuildTime=%llu Type=%s", \ mmdb.metadata.node_count, mmdb.metadata.record_size, mmdb.metadata.ip_version, mmdb.metadata.binary_format_major_version, mmdb.metadata.binary_format_minor_version, (long long unsigned int) mmdb.metadata.build_epoch, mmdb.metadata.database_type); const time_t epoch = (const time_t)mmdb.metadata.build_epoch; char year[5]; strftime(year, sizeof(year), "%Y", gmtime(&epoch)); snprintf(resultstring, sizeof(resultstring), "%s Copyright (c) %s db-ip.com All Rights Reserved" , mmdb.metadata.database_type , year ); strftime(datastring, sizeof(datastring), "%Y%m%d-%H%M%S UTC", gmtime(&epoch)); snprintf(tempstring, sizeof(tempstring), "%s, created: %s", resultstring, datastring); snprintf(resultstring, sizeof(resultstring), "%s", tempstring); END_libipv6calc_db_wrapper: return(resultstring); }; /********************************************* * Abstract functions * *******************************************/ /* function query for feature set * ret=-1: unknown * 0 : not matching * 1 : ok */ int libipv6calc_db_wrapper_DBIP2_has_features(uint32_t features) { int result = -1; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Called with feature value to test: 0x%08x", features); if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_DBIP2] & features) == features) { result = 1; } else { result = 0; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Return with result: %d", result); return(result); }; /* country code */ int libipv6calc_db_wrapper_DBIP2_wrapper_country_code_by_addr(const ipv6calc_ipaddr *ipaddrp, char *country, const size_t country_len) { int result = MMDB_INVALID_DATA_ERROR; int DBIP2_type = 0; if (ipaddrp->proto == IPV6CALC_PROTO_IPV4) { DBIP2_type = dbip2_db_country_v4; if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_DBIP2] & IPV6CALC_DB_IPV4_TO_CC) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "No DBIP2 database supporting IPv4 country available"); goto END_libipv6calc_db_wrapper; }; } else if (ipaddrp->proto == IPV6CALC_PROTO_IPV6) { DBIP2_type = dbip2_db_country_v6; if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_DBIP2] & IPV6CALC_DB_IPV6_TO_CC) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "No DBIP2 database supporting IPv6 country available"); goto END_libipv6calc_db_wrapper; }; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Unsupported proto: %d", ipaddrp->proto); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_DBIP2_open_type(DBIP2_type); if (result != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Error opening DBIP2 by type"); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_MMDB_country_code_by_addr(ipaddrp, country, country_len, &mmdb_cache[DBIP2_type]); if (result != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "no match found"); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "result country=%s", country); DBIP2_DB_USAGE_MAP_TAG(DBIP2_type); goto END_libipv6calc_db_wrapper; // keep db open END_libipv6calc_db_wrapper: return(result); }; /* ASN */ uint32_t libipv6calc_db_wrapper_DBIP2_wrapper_asn_by_addr(const ipv6calc_ipaddr *ipaddrp) { uint32_t result = ASNUM_AS_UNKNOWN; int DBIP2_type = 0; if (ipaddrp->proto == IPV6CALC_PROTO_IPV4) { DBIP2_type = dbip2_db_country_v4; if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_DBIP2] & IPV6CALC_DB_IPV4_TO_AS) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "No DBIP2 database supporting IPv4 ASN"); goto END_libipv6calc_db_wrapper; }; } else if (ipaddrp->proto == IPV6CALC_PROTO_IPV6) { DBIP2_type = dbip2_db_country_v6; if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_DBIP2] & IPV6CALC_DB_IPV6_TO_AS) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "No DBIP2 database supporting IPv6 ASN"); goto END_libipv6calc_db_wrapper; }; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Unsupported proto: %d", ipaddrp->proto); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_DBIP2_open_type(DBIP2_type); if (result != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Error opening DBIP2 by type"); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_MMDB_asn_by_addr(ipaddrp, &mmdb_cache[DBIP2_type]); if (result == ASNUM_AS_UNKNOWN) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "no match found"); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "result ASN=%u", result); DBIP2_DB_USAGE_MAP_TAG(DBIP2_type); goto END_libipv6calc_db_wrapper; // keep db open END_libipv6calc_db_wrapper: return(result); }; /* GeonameID */ uint32_t libipv6calc_db_wrapper_DBIP2_wrapper_GeonameID_by_addr(const ipv6calc_ipaddr *ipaddrp, int *source_ptr) { uint32_t result = IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN; int DBIP2_type = 0; if (ipaddrp->proto == IPV6CALC_PROTO_IPV4) { DBIP2_type = dbip2_db_region_city_v4; if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_DBIP2] & IPV6CALC_DB_IPV4_TO_GEONAMEID) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "No DBIP2 database supporting IPv4 GeonameID"); goto END_libipv6calc_db_wrapper; }; } else if (ipaddrp->proto == IPV6CALC_PROTO_IPV6) { DBIP2_type = dbip2_db_region_city_v6; if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_DBIP2] & IPV6CALC_DB_IPV6_TO_GEONAMEID) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "No DBIP2 database supporting IPv6 GeonameID"); goto END_libipv6calc_db_wrapper; }; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Unsupported proto: %d", ipaddrp->proto); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_DBIP2_open_type(DBIP2_type); if (result != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Error opening DBIP2 by type"); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_MMDB_GeonameID_by_addr(ipaddrp, &mmdb_cache[DBIP2_type], source_ptr); if (result == IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "no match found"); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "result GeonameID=%u", result); DBIP2_DB_USAGE_MAP_TAG(DBIP2_type); goto END_libipv6calc_db_wrapper; END_libipv6calc_db_wrapper: return(result); }; /* all information */ int libipv6calc_db_wrapper_DBIP2_all_by_addr(const ipv6calc_ipaddr *ipaddrp, libipv6calc_db_wrapper_geolocation_record *recordp) { int result = -1; int DBIP2_type = 0; if (ipaddrp->proto == IPV6CALC_PROTO_IPV4) { DBIP2_type = dbip2_db_region_city_v4; if (DBIP2_type == 0) { // fallback DBIP2_type = dbip2_db_country_v4; }; } else if (ipaddrp->proto == IPV6CALC_PROTO_IPV6) { DBIP2_type = dbip2_db_region_city_v6; if (DBIP2_type == 0) { // fallback DBIP2_type = dbip2_db_country_v6; }; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Unsupported proto: %d", ipaddrp->proto); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_DBIP2_open_type(DBIP2_type); if (result != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "Error opening DBIP2 by type"); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_MMDB_all_by_addr(ipaddrp, recordp, &mmdb_cache[DBIP2_type]); if (result != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_DBIP2, "no match found"); goto END_libipv6calc_db_wrapper; }; DBIP2_DB_USAGE_MAP_TAG(DBIP2_type); END_libipv6calc_db_wrapper: return(result); }; #endif ipv6calc-4.1.0/databases/lib/libipv6calc_db_wrapper_DBIP2.h000066400000000000000000000047221444154247200233700ustar00rootroot00000000000000/* * Project : ipv6calc * File : databases/lib/libipv6calc_db_wrapper_DBIP2.h * Version : $Id: 1dc2fd06ea40b694490889eb9062073f9bb18d22 $ * Copyright : 2019-2021 by Peter Bieringer * * Information: * Header file for libipv6calc_db_wrapper_DBIP2.c */ #include "ipv6calctypes.h" #include "libipaddr.h" #ifndef _libipv6calc_db_wrapper_DBIP2_h #define _libipv6calc_db_wrapper_DBIP2_h 1 // database types #define DBIP2_DB_COUNTRY_LITE 1 #define DBIP2_DB_CITY_LITE 2 #define DBIP2_DB_COUNTRY 3 // commercial #define DBIP2_DB_LOCATION 4 // commercial #define DBIP2_DB_ISP 5 // commercial #define DBIP2_DB_LOCATION_ISP 6 // commercial #define DBIP2_DB_MAX DBIP2_DB_LOCATION_ISP #define IPV6CALC_DB_DBIP2_INTERNAL_FREE 0x00000001 #define IPV6CALC_DB_DBIP2_INTERNAL_COMM 0x00000002 // features extern uint32_t wrapper_features_DBIP2; #endif /* prototypes */ extern int libipv6calc_db_wrapper_DBIP2_wrapper_init(void); extern int libipv6calc_db_wrapper_DBIP2_wrapper_cleanup(void); extern void libipv6calc_db_wrapper_DBIP2_wrapper_info(char* string, const size_t size); extern void libipv6calc_db_wrapper_DBIP2_wrapper_print_db_info(const int level_verbose, const char *prefix_string); extern char *libipv6calc_db_wrapper_DBIP2_wrapper_db_info_used(void); extern int libipv6calc_db_wrapper_DBIP2_has_features(const uint32_t features); #ifdef SUPPORT_DBIP2 #include "libipv6calc_db_wrapper_MMDB.h" extern int libipv6calc_db_wrapper_DBIP2_wrapper_country_code_by_addr(const ipv6calc_ipaddr *ipaddrp, char *country, const size_t country_len); extern uint32_t libipv6calc_db_wrapper_DBIP2_wrapper_asn_by_addr(const ipv6calc_ipaddr *ipaddrp); extern uint32_t libipv6calc_db_wrapper_DBIP2_wrapper_GeonameID_by_addr(const ipv6calc_ipaddr *ipaddrp, int *source_ptr); extern int libipv6calc_db_wrapper_DBIP2_all_by_addr(const ipv6calc_ipaddr *ipaddrp, libipv6calc_db_wrapper_geolocation_record *recordp); extern char dbip2_db_dir[PATH_MAX]; extern int dbip2_db_comm_to_free_switch_min_delta_months; extern int dbip2_db_only_type; extern int libipv6calc_db_wrapper_DBIP2_db_avail(const unsigned int type); extern int libipv6calc_db_wrapper_DBIP2_open_type(const unsigned int type); extern const char *libipv6calc_db_wrapper_DBIP2_dbdescription(const unsigned int type); extern char *libipv6calc_db_wrapper_DBIP2_database_info(const unsigned int type); #endif ipv6calc-4.1.0/databases/lib/libipv6calc_db_wrapper_External.c000066400000000000000000001325261444154247200243510ustar00rootroot00000000000000/* * Project : ipv6calc * File : databases/lib/libipv6calc_db_wrapper_External.c * Version : $Id: 1d6ec7f1550d6741dd8ff719d24a8ae362230692 $ * Copyright : 2013-2022 by Peter Bieringer * * Information: * ipv6calc External (superseeding BuiltIn) database wrapper */ #include #include #include #include #include #include #include #include "config.h" #include "libipv6calcdebug.h" #include "libipv6calc.h" #include "librfc3056.h" #include "libipv6calc_db_wrapper.h" #ifdef SUPPORT_EXTERNAL #include #include "libipv6calc_db_wrapper_External.h" char external_db_dir[PATH_MAX] = EXTERNAL_DB; static const char* wrapper_external_info = "External"; /* database usage map */ #define EXTERNAL_DB_MAX_BLOCKS_32 2 // 0-63 static uint32_t external_db_usage_map[EXTERNAL_DB_MAX_BLOCKS_32]; #define EXTERNAL_DB_USAGE_MAP_TAG(db) if (db < (32 * EXTERNAL_DB_MAX_BLOCKS_32)) { \ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Tag usage for db: %d", db); \ external_db_usage_map[db / 32] |= 1 << (db % 32); \ } else { \ fprintf(stderr, "FIXME: unsupported db value (exceed limit): %d (%d)\n", db, 32 * EXTERNAL_DB_MAX_BLOCKS_32 - 1); \ exit(1); \ }; char external_db_usage_string[IPV6CALC_STRING_MAX] = ""; // local cache #define IPV6CALC_DBD_SUBDB_MAX 3 static DB *db_ptr_cache[MAXENTRIES_ARRAY(libipv6calc_db_wrapper_External_db_file_desc)][IPV6CALC_DBD_SUBDB_MAX]; static db_recno_t db_recno_max_cache[MAXENTRIES_ARRAY(libipv6calc_db_wrapper_External_db_file_desc)][IPV6CALC_DBD_SUBDB_MAX]; // creation time of databases time_t wrapper_db_unixtime_External[MAXENTRIES_ARRAY(libipv6calc_db_wrapper_External_db_file_desc)]; // local prototyping static char *libipv6calc_db_wrapper_External_dbfilename(unsigned int type); static char *libipv6calc_db_wrapper_External_database_info(unsigned int type); /* * function initialise the External wrapper * * in : (nothing) * out: 0=ok, 1=error */ int libipv6calc_db_wrapper_External_wrapper_init(void) { int i, j; char *result; DB *dbp; long int recno_max; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "Called"); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Check for External databases in directory: %s", external_db_dir); /* check available databases for resolution */ for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_External_db_file_desc); i++) { // clean local cache for (j = 0; j < IPV6CALC_DBD_SUBDB_MAX; j++) { db_ptr_cache[i][j] = NULL; db_recno_max_cache[i][j] = -1; }; wrapper_db_unixtime_External[i] = 0; // add features to implemented wrapper_features_by_source_implemented[IPV6CALC_DB_SOURCE_EXTERNAL] |= libipv6calc_db_wrapper_External_db_file_desc[i].features; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "External database test for availability: %s", libipv6calc_db_wrapper_External_db_file_desc[i].filename); if (libipv6calc_db_wrapper_External_db_avail(libipv6calc_db_wrapper_External_db_file_desc[i].number) != 1) { // no file found continue; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "External database available: %s type=%d", libipv6calc_db_wrapper_External_db_file_desc[i].description, libipv6calc_db_wrapper_External_db_file_desc[i].number); result = libipv6calc_db_wrapper_External_database_info(libipv6calc_db_wrapper_External_db_file_desc[i].number); if (strlen(result) == 0) { // no proper database continue; }; if (wrapper_db_unixtime_External[i] == 0) { // no proper database continue; }; // finally mark database features as available wrapper_features_by_source[IPV6CALC_DB_SOURCE_EXTERNAL] |= libipv6calc_db_wrapper_External_db_file_desc[i].features; // more sophisticated check for "data-info" if (libipv6calc_db_wrapper_External_db_file_desc[i].number == EXTERNAL_DB_IPV4_REGISTRY) { dbp = libipv6calc_db_wrapper_External_open_type(EXTERNAL_DB_IPV4_REGISTRY | 0x40000, &recno_max); if (dbp == NULL) { // disable feature wrapper_features_by_source[IPV6CALC_DB_SOURCE_EXTERNAL] &= ~IPV6CALC_DB_IPV4_TO_INFO; }; } else if (libipv6calc_db_wrapper_External_db_file_desc[i].number == EXTERNAL_DB_IPV6_REGISTRY) { dbp = libipv6calc_db_wrapper_External_open_type(EXTERNAL_DB_IPV6_REGISTRY | 0x40000, &recno_max); if (dbp == NULL) { // disable feature wrapper_features_by_source[IPV6CALC_DB_SOURCE_EXTERNAL] &= ~IPV6CALC_DB_IPV6_TO_INFO; }; }; }; wrapper_features |= wrapper_features_by_source[IPV6CALC_DB_SOURCE_EXTERNAL]; return 0; }; /* * wrapper: External_close */ static int libipv6calc_db_wrapper_External_close(DB *dbp) { int i, j; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "Called"); if (dbp != NULL) { /* cleanup cache entry */ for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_External_db_file_desc); i++) { for (j = 0; j < IPV6CALC_DBD_SUBDB_MAX; j++) { if (db_ptr_cache[i][j] == dbp) { db_ptr_cache[i][j] = NULL; db_recno_max_cache[i][j] = -1; }; }; }; dbp->close(dbp, 0); }; return(0); }; /* * function cleanup the External wrapper * * in : (nothing) * out: 0=ok, 1=error */ int libipv6calc_db_wrapper_External_wrapper_cleanup(void) { int i, j; int hit; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "Called"); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_External_db_file_desc); i++) { hit = 0; for (j = 0; j < IPV6CALC_DBD_SUBDB_MAX; j++) { if (db_ptr_cache[i][j] != NULL) { if (hit == 0) { // display debug message only once per i (type) DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Close External: type=%d desc='%s'", libipv6calc_db_wrapper_External_db_file_desc[i].number, libipv6calc_db_wrapper_External_db_file_desc[i].description); hit = 1; }; libipv6calc_db_wrapper_External_close(db_ptr_cache[i][j]); }; }; }; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "Finished"); return 0; }; /* * function info of External wrapper * * in : ptr and size of string to be filled * out: modified string; */ void libipv6calc_db_wrapper_External_wrapper_info(char* string, const size_t size) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "Called"); snprintf(string, size, "External available databases: Country4=%d Country6=%d IPV4_REG=%d IPV6_REG=%d", \ (wrapper_features & IPV6CALC_DB_IPV4_TO_CC) ? 1 : 0, \ (wrapper_features & IPV6CALC_DB_IPV6_TO_CC) ? 1 : 0, \ (wrapper_features & IPV6CALC_DB_IPV4_TO_REGISTRY) ? 1 : 0, \ (wrapper_features & IPV6CALC_DB_IPV6_TO_REGISTRY) ? 1 : 0 \ ); DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "Finished"); return; }; /* * function print database info of External wrapper * * in : (void) * out: (void) */ void libipv6calc_db_wrapper_External_wrapper_print_db_info(const int level_verbose, const char *prefix_string) { int i, type, count = 0; const char *prefix = "\0"; if (prefix_string != NULL) { prefix = prefix_string; }; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "Called"); IPV6CALC_DB_FEATURE_INFO(prefix, IPV6CALC_DB_SOURCE_EXTERNAL) fprintf(stderr, "%sExternal: info of available databases in directory: %s\n", prefix, external_db_dir); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_External_db_file_desc); i++) { type = libipv6calc_db_wrapper_External_db_file_desc[i].number; if (libipv6calc_db_wrapper_External_db_avail(type)) { fprintf(stderr, "%sExternal: %-20s: %-40s (%s)\n", prefix, libipv6calc_db_wrapper_External_db_file_desc[i].description, libipv6calc_db_wrapper_External_db_file_desc[i].filename, libipv6calc_db_wrapper_External_database_info(type)); count++; } else { if (level_verbose == LEVEL_VERBOSE2) { fprintf(stderr, "%sExternal: %-20s: %-40s (%s)\n", prefix, libipv6calc_db_wrapper_External_db_file_desc[i].description, libipv6calc_db_wrapper_External_dbfilename(type), strerror(errno)); }; continue; }; }; if (count == 0) { fprintf(stderr, "%sExternal: NO available databases found in directory: %s\n", prefix, external_db_dir); }; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "Finished"); return; }; /* * wrapper: string regarding used database infos */ char *libipv6calc_db_wrapper_External_wrapper_db_info_used(void) { int type, i; char tempstring[IPV6CALC_STRING_MAX]; char *info; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "Called"); for (i = 0; i < EXTERNAL_DB_MAX_BLOCKS_32; i++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "external_db_usage_map[%d]=%08x", i, (unsigned int) external_db_usage_map[i]); }; for (type = 0; type < 32 * EXTERNAL_DB_MAX_BLOCKS_32; type++) { if ((external_db_usage_map[type / 32] & (1 << (type % 32))) != 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "DB type used: %d", type); info = libipv6calc_db_wrapper_External_database_info(type); if (info == NULL) { continue; }; // NULL pointer returned if (strlen(info) == 0) { continue; }; // empty string returned DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "type=%d info=%s", type, info); if (strlen(external_db_usage_string) > 0) { if (strstr(external_db_usage_string, info) != NULL) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "type=%d info=%s (skip, already displayed)", type, info); continue; }; // string already included snprintf(tempstring, sizeof(tempstring), "%s / %s", external_db_usage_string, info); } else { snprintf(tempstring, sizeof(tempstring), "%s", info); }; snprintf(external_db_usage_string, sizeof(external_db_usage_string), "%s", tempstring); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "type=%d external_db_usage_string=%s", type, external_db_usage_string); }; }; return(external_db_usage_string); }; /******************************* * Wrapper extension functions for External *******************************/ /* * wrapper extension: External_dbfilename */ static char *libipv6calc_db_wrapper_External_dbfilename(unsigned int type) { static char tempstring[IPV6CALC_STRING_MAX]; int entry = -1, i; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Called: %s type=%d", wrapper_external_info, type); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_External_db_file_desc); i++) { if (libipv6calc_db_wrapper_External_db_file_desc[i].number == type) { entry = i; break; }; }; if (entry < 0) { return(NULL); }; snprintf(tempstring, sizeof(tempstring), "%s/%s", external_db_dir, libipv6calc_db_wrapper_External_db_file_desc[i].filename); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Finished: %s type=%d has filename=%s", wrapper_external_info, type, tempstring); return(tempstring); }; /* * wrapper extension: External_dbdescription */ const char *libipv6calc_db_wrapper_External_dbdescription(const unsigned int type) { int entry = -1; unsigned int i; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Called: %s type=%d", wrapper_external_info, type); for (i = 0; i < sizeof(libipv6calc_db_wrapper_External_db_file_desc) / sizeof(libipv6calc_db_wrapper_External_db_file_desc[0]); i++) { if (libipv6calc_db_wrapper_External_db_file_desc[i].number == type) { entry = i; break; }; }; if (entry < 0) { return("unknown"); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Finished: %s type=%d has description=%s", wrapper_external_info, type, libipv6calc_db_wrapper_External_db_file_desc[i].description); return(libipv6calc_db_wrapper_External_db_file_desc[i].description); }; /* * wrapper extension: External_db_avail * ret: 1=avail 0=not-avail */ int libipv6calc_db_wrapper_External_db_avail(const unsigned int type) { char *filename; int r = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Called: %s type=%d", wrapper_external_info, type); filename = libipv6calc_db_wrapper_External_dbfilename(type); if (filename == NULL) { goto END_libipv6calc_db_wrapper; }; r = (access(filename, R_OK) == 0) ? 1:0; if (r == 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Finished: %s type=%d (still unknown) (r=%d: %s)", wrapper_external_info, type, r, strerror(errno)); } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Finished: %s type=%d (%s) (r=%d)", wrapper_external_info, type, filename, r); }; END_libipv6calc_db_wrapper: return(r); }; /* * wrapper extension: External_open_type * input: * type (mandatory) * if | 0x10000 -> info is opened and ptr is not cached * if | 0x20000 -> data-iana is opened * if | 0x40000 -> data-info is opened * db_recno_max_ptr (set if not NULL) */ DB *libipv6calc_db_wrapper_External_open_type(const unsigned int type_flag, long int *db_recno_max_ptr) { DB *dbp = NULL; DBC *dbcp; DBT key, data; int type = (type_flag & 0xffff); int info_selector = ((type_flag & 0x10000) != 0) ? 1 : 0; int data_iana_selector = ((type_flag & 0x20000) != 0) ? 1 : 0; int data_info_selector = ((type_flag & 0x40000) != 0) ? 1 : 0; int subdb = 0; // data char *filename; int entry = -1, i; int ret; const char *type_text; if (info_selector != 0) { type_text = "info"; } else if (data_iana_selector != 0) { type_text = "data-iana"; subdb = 1; } else if (data_info_selector != 0) { type_text = "data-info"; subdb = 2; } else { type_text = "data"; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Called: %s type=%d (%s)", wrapper_external_info, type, type_text); // check for valid type for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_External_db_file_desc); i++) { if (libipv6calc_db_wrapper_External_db_file_desc[i].number == (type & 0xffff)) { entry = i; break; }; }; if (entry < 0) { return(NULL); }; if ((info_selector == 0) && (db_ptr_cache[entry][subdb] != NULL)) { // already open dbp = db_ptr_cache[entry][subdb]; if (db_recno_max_ptr != NULL) { *db_recno_max_ptr = db_recno_max_cache[entry][subdb]; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Database already opened (cached) dbp=%p type=%d subdb=%d recno_max: %u", dbp, type, subdb, db_recno_max_cache[entry][subdb]); goto END_libipv6calc_db_wrapper; }; // retrieve filename filename = libipv6calc_db_wrapper_External_dbfilename(type); if (filename == NULL) { return(NULL); }; if (libipv6calc_db_wrapper_External_db_avail(type) != 1) { return(NULL); }; if ((ret = db_create(&dbp, NULL, 0)) != 0) { if (ipv6calc_quiet == 0) { fprintf(stderr, "db_create: %s\n", db_strerror(ret)); }; return(NULL); }; if ((ret = dbp->open(dbp, NULL, filename, type_text, (info_selector == 0) ? DB_RECNO : DB_BTREE, DB_RDONLY, 0444)) != 0) { if ((ipv6calc_quiet == 0) && (data_info_selector == 0)) { fprintf(stderr, "db->open failed: %s (%s) subdb=%s\n", db_strerror(ret), filename, type_text); }; return(NULL); }; if (info_selector == 0) { // cache entry db_ptr_cache[entry][subdb] = dbp; // get amount of entries in database memset(&key, 0, sizeof(key)); memset(&data, 0, sizeof(data)); /* Acquire a cursor for the database. */ if ((ret = dbp->cursor(dbp, NULL, &dbcp, 0)) != 0) { dbp->err(dbp, ret, "DB->cursor"); goto END_libipv6calc_db_wrapper_close_error; }; /* Walk through the database and print out the key/data pairs. */ if ((ret = dbcp->c_get(dbcp, &key, &data, DB_LAST)) != 0) { dbp->err(dbp, ret, "DB->cursor/DB_LAST"); goto END_libipv6calc_db_wrapper_close_error; }; /* Close the cursor. */ if ((ret = dbcp->c_close(dbcp)) != 0) { dbp->err(dbp, ret, "DBcursor->close"); goto END_libipv6calc_db_wrapper_close_error; }; db_recno_max_cache[entry][subdb] = *(db_recno_t *)key.data; if (db_recno_max_cache[entry][subdb] < 2) { goto END_libipv6calc_db_wrapper_close_error; }; if (db_recno_max_ptr != NULL) { *db_recno_max_ptr = db_recno_max_cache[entry][subdb]; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Database successfully opened (fill-cache), dbp=%p type=%d subdb=%d recno_max=%u", dbp, type, subdb, db_recno_max_cache[entry][subdb]); } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Database successfully opened, dbp=%p type=%d (info)", dbp, type); }; // jump to "good end" goto END_libipv6calc_db_wrapper; END_libipv6calc_db_wrapper_close_error: DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "error opening database, close now"); libipv6calc_db_wrapper_External_close(dbp); dbp = NULL; END_libipv6calc_db_wrapper: return(dbp); }; /******************************* * Wrapper functions for External *******************************/ /* * wrapper: External_database_info */ char *libipv6calc_db_wrapper_External_database_info(const unsigned int type) { static char resultstring[IPV6CALC_STRING_MAX] = ""; // has to be static because pointer is returned char datastring[IPV6CALC_STRING_MAX]; char tempstring[IPV6CALC_STRING_MAX]; int ret, i, entry = -1; DB *dbp; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Called: %s", wrapper_external_info); // check for valid type for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_External_db_file_desc); i++) { if (libipv6calc_db_wrapper_External_db_file_desc[i].number == (type & 0xffff)) { entry = i; break; }; }; if (entry < 0) { ERRORPRINT_WA("Invalid type (FIX CODE): %d", type); goto END_libipv6calc_db_wrapper; }; dbp = libipv6calc_db_wrapper_External_open_type(type | 0x10000, NULL); if (dbp == NULL) { snprintf(resultstring, sizeof(resultstring), "%s", "(CAN'T OPEN database information)"); goto END_libipv6calc_db_wrapper; }; // get dbusage ret = libipv6calc_db_wrapper_bdb_get_data_by_key(dbp, "dbusage", datastring, sizeof(datastring)); if (ret != 0) { snprintf(resultstring, sizeof(resultstring), "%s", "can't retrieve 'dbusage', unsupported db file"); goto END_libipv6calc_db_wrapper_close; }; if (strcmp(datastring, "ipv6calc") != 0) { snprintf(resultstring, sizeof(resultstring), "%s", "dbusage!=ipv6calc, unsupported db file"); goto END_libipv6calc_db_wrapper_close; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Database dbusage string: %s", datastring); // get dbdate ret = libipv6calc_db_wrapper_bdb_get_data_by_key(dbp, "dbdate", datastring, sizeof(datastring)); if (ret != 0) { snprintf(resultstring, sizeof(resultstring), "%s", "can't retrieve 'dbdate', unsupported db file"); goto END_libipv6calc_db_wrapper_close; }; snprintf(resultstring, sizeof(resultstring), "EXTDB-%d/%s", type, datastring); // get dbcreated_unixtime ret = libipv6calc_db_wrapper_bdb_get_data_by_key(dbp, "dbcreated_unixtime", datastring, sizeof(datastring)); if (ret != 0) { snprintf(resultstring, sizeof(resultstring), "%s", "can't retrieve 'dbcreated_unixtime', unsupported db file"); goto END_libipv6calc_db_wrapper_close; }; wrapper_db_unixtime_External[entry] = atoi(datastring); if (wrapper_db_unixtime_External[entry] == 0) { snprintf(resultstring, sizeof(resultstring), "%s", "'dbcreated_unixtime' is not proper, unsupported db file"); goto END_libipv6calc_db_wrapper_close; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "wrapper_db_unixtime_External=%ld", (long int) wrapper_db_unixtime_External[entry]); strftime(datastring, sizeof(datastring), "%Y%m%d-%H%M%S UTC", gmtime(&wrapper_db_unixtime_External[entry])); snprintf(tempstring, sizeof(tempstring), "%s, created: %s", resultstring, datastring); snprintf(resultstring, sizeof(resultstring), "%s", tempstring); END_libipv6calc_db_wrapper_close: libipv6calc_db_wrapper_External_close(dbp); END_libipv6calc_db_wrapper: return(resultstring); }; /********************************************* * Abstract functions * *******************************************/ /* query for available features * ret=-1: unknown * 0 : not matching * 1 : ok */ int libipv6calc_db_wrapper_External_has_features(uint32_t features) { int result = -1; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Called with feature value to test: 0x%08x", features); if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_EXTERNAL] & features) == features) { result = 1; } else { result = 0; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Return with result: %d", result); return(result); }; /* query db_unixtime by feature * ret=-1: unknown * 0 : not matching * 1 : ok */ time_t libipv6calc_db_wrapper_External_db_unixtime_by_feature(uint32_t feature) { time_t result = 0; int i; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Called with feature value to get db_unixtime: 0x%08x", feature); // run through entries for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_External_db_file_desc); i++) { if ((libipv6calc_db_wrapper_External_db_file_desc[i].features & feature) == feature) { // found if (wrapper_db_unixtime_External[i] > result) { result = wrapper_db_unixtime_External[i]; }; }; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Return for feature=0x08x db_unixtime=%ld", (long int) result); return(result); }; /* * get registry number of an IPv4/IPv6 address * * in: ipaddr * out: assignment number (-1 = no result) */ int libipv6calc_db_wrapper_External_registry_num_by_addr(const ipv6calc_ipaddr *ipaddrp) { DB *dbp, *dbp_iana; long int recno_max; char resultstring[IPV6CALC_STRING_MAX]; int i, result; int retval = REGISTRY_UNKNOWN; int External_type; switch (ipaddrp->proto) { case IPV6CALC_PROTO_IPV4: External_type = EXTERNAL_DB_IPV4_REGISTRY; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Given IPv4 address: %08x", (unsigned int) ipaddrp->addr[0]); break; case IPV6CALC_PROTO_IPV6: External_type = EXTERNAL_DB_IPV6_REGISTRY; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Given IPv6 address prefix (0-63): %08x%08x", (unsigned int) ipaddrp->addr[0], (unsigned int) ipaddrp->addr[1]); break; default: ERRORPRINT_WA("unsupported protocol: %d (FIX CODE)", ipaddrp->proto); exit(EXIT_FAILURE); break; }; // data (standard) dbp = libipv6calc_db_wrapper_External_open_type(External_type, &recno_max); if (dbp == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "Error opening External by type"); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "database opened type=%d recno_max=%ld dbp=%p", External_type, recno_max, dbp); result = libipv6calc_db_wrapper_get_entry_generic( (void *) dbp, // pointer to database IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_BDB, // type of data_ptr (ipaddrp->proto == IPV6CALC_PROTO_IPV4) \ ? IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_FIRST_LAST \ : IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_BASE_MASK, // key type (ipaddrp->proto == IPV6CALC_PROTO_IPV4) \ ? IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_32x2 \ : IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_WITH_VALUE_32x4 , // key format (ipaddrp->proto == IPV6CALC_PROTO_IPV4) \ ? 32 \ : 64, // key length (ipaddrp->proto == IPV6CALC_PROTO_IPV4) \ ? IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY \ : IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_SEQLONGEST, // search type recno_max, // number of rows ipaddrp->addr[0], // lookup key MSB (ipaddrp->proto == IPV6CALC_PROTO_IPV4) \ ? 0 \ : ipaddrp->addr[1], // lookup key LSB resultstring, // data ptr NULL // function pointer ); if (result >= 0 ) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "found match in database type=%d", External_type); goto END_libipv6calc_db_wrapper_match; }; if (ipaddrp->proto != IPV6CALC_PROTO_IPV4) { goto END_libipv6calc_db_wrapper; }; // data-iana (fallback for IPv4 only) DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "no found match in database type=%d, fallback to IANA data now for: %08x", External_type, ipaddrp->addr[0]); dbp_iana = libipv6calc_db_wrapper_External_open_type(External_type | 0x20000, &recno_max); if (dbp == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "Error opening External by type"); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "database opened type=%d (data-iana) recno_max=%ld", External_type, recno_max); result = libipv6calc_db_wrapper_get_entry_generic( (void *) dbp_iana, // pointer to database IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_BDB, // type of data_ptr IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_FIRST_LAST, // key type IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_32x2, // key format 32, // key length IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY, // search type recno_max, // number of rows ipaddrp->addr[0], // lookup key MSB 0, // lookup key LSB resultstring, // data ptr NULL // function pointer ); libipv6calc_db_wrapper_External_close(dbp_iana); if (result >= 0 ) { goto END_libipv6calc_db_wrapper_match; }; goto END_libipv6calc_db_wrapper; END_libipv6calc_db_wrapper_match: DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "resultstring=%s", resultstring); char datastring[IPV6CALC_STRING_MAX]; snprintf(datastring, sizeof(datastring), "%s", resultstring); // copy string for strtok char *token, *cptr, **ptrptr; ptrptr = &cptr; int token_count = 0; // split result string token = strtok_r(datastring, ";", ptrptr); while (token != NULL) { token_count++; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Database entry found %d: %s", token_count, token); if (token_count == 1) { for (i = 0; i < ipv6calc_registries_entries; i++) { if (strcmp(token, ipv6calc_registries[i].tokensimple) == 0) { retval = ipv6calc_registries[i].number; break; }; }; }; /* get next token */ token = strtok_r(NULL, ";", ptrptr); }; if (token_count != 1) { ERRORPRINT_WA("data has more entries than expected, corrupt database: %d (resultstring='%s' prefix=%08x%08x)", token_count, resultstring, (unsigned int) ipaddrp->addr[0], (unsigned int) ipaddrp->addr[1]); goto END_libipv6calc_db_wrapper; }; if (retval == REGISTRY_UNKNOWN) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "did not return a record for 'registry'"); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "result registry=%d", retval); EXTERNAL_DB_USAGE_MAP_TAG(External_type); END_libipv6calc_db_wrapper: DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "retval=%d", retval); return(retval); }; /* * get country code of an IPv4/IPv6 address * * in: ipaddr * mod: country code * out: status of retrievment (0=success, -1=problem) */ int libipv6calc_db_wrapper_External_country_code_by_addr(const ipv6calc_ipaddr *ipaddrp, char *country, const size_t country_len) { DB *dbp; long int recno_max; static char resultstring[IPV6CALC_STRING_MAX]; int result; int retval = -1; int External_type; switch (ipaddrp->proto) { case IPV6CALC_PROTO_IPV4: External_type = EXTERNAL_DB_IPV4_COUNTRYCODE; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Given IPv4 address: %08x", (unsigned int) ipaddrp->addr[0]); break; case IPV6CALC_PROTO_IPV6: External_type = EXTERNAL_DB_IPV6_COUNTRYCODE; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Given IPv6 address prefix (0-63): %08x%08x", (unsigned int) ipaddrp->addr[0], (unsigned int) ipaddrp->addr[1]); break; default: ERRORPRINT_WA("unsupported protocol: %d (FIX CODE)", ipaddrp->proto); exit(EXIT_FAILURE); break; }; // data (standard) dbp = libipv6calc_db_wrapper_External_open_type(External_type, &recno_max); if (dbp == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "Error opening External by type"); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "database opened type=%d recno_max=%ld dbp=%p", External_type, recno_max, dbp); result = libipv6calc_db_wrapper_get_entry_generic( (void *) dbp, // pointer to database IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_BDB, // type of data_ptr (ipaddrp->proto == IPV6CALC_PROTO_IPV4) \ ? IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_FIRST_LAST \ : IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_BASE_MASK, // key type (ipaddrp->proto == IPV6CALC_PROTO_IPV4) \ ? IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_32x2 \ : IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_32x4 , // key format (ipaddrp->proto == IPV6CALC_PROTO_IPV4) \ ? 32 \ : 64, // key length IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY, // search type recno_max, // number of rows ipaddrp->addr[0], // lookup key MSB (ipaddrp->proto == IPV6CALC_PROTO_IPV4) \ ? 0 \ : ipaddrp->addr[1], // lookup key LSB resultstring, // data ptr NULL // function pointer ); if (result < 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "no match found"); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "resultstring=%s", resultstring); char datastring[IPV6CALC_STRING_MAX]; snprintf(datastring, sizeof(datastring), "%s", resultstring); // copy string for strtok char *token, *cptr, **ptrptr; ptrptr = &cptr; int token_count = 0; // split result string token = strtok_r(datastring, ";", ptrptr); while (token != NULL) { token_count++; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Database entry found %d: %s", token_count, token); if (token_count == 1) { /* country */ snprintf(country, country_len, "%s", token); }; /* get next token */ token = strtok_r(NULL, ";", ptrptr); }; if (token_count != 1) { ERRORPRINT_WA("data has more entries than expected, corrupt database: %d (resultstring='%s' prefix=%08x%08x)", token_count, resultstring, (unsigned int) ipaddrp->addr[0], (unsigned int) ipaddrp->addr[1]); goto END_libipv6calc_db_wrapper; }; if (strlen(country) != 2) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "did not return a record for 'CountryCode'"); goto END_libipv6calc_db_wrapper; }; retval = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "result CountryCode=%s", country); EXTERNAL_DB_USAGE_MAP_TAG(External_type); END_libipv6calc_db_wrapper: DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "retval=%d", retval); return(retval); }; /* * get info of an IPv4/IPv6 address * stored in REGISTRY db in dedicated table * * in: ipaddr * mod: string * out: 0=OK */ int libipv6calc_db_wrapper_External_info_by_ipaddr(const ipv6calc_ipaddr *ipaddrp, char *string, const size_t string_len) { DB *dbp; long int recno_max; char resultstring[IPV6CALC_STRING_MAX]; int result; int retval = -1; int External_type; switch (ipaddrp->proto) { case IPV6CALC_PROTO_IPV4: External_type = EXTERNAL_DB_IPV4_REGISTRY; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Given IPv4 address: %08x", (unsigned int) ipaddrp->addr[0]); break; case IPV6CALC_PROTO_IPV6: External_type = EXTERNAL_DB_IPV6_REGISTRY; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Given IPv6 address prefix (0-63): %08x%08x", (unsigned int) ipaddrp->addr[0], (unsigned int) ipaddrp->addr[1]); break; default: ERRORPRINT_WA("unsupported protocol: %d (FIX CODE)", ipaddrp->proto); exit(EXIT_FAILURE); break; }; // data-info dbp = libipv6calc_db_wrapper_External_open_type(External_type | 0x40000, &recno_max); if (dbp == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "Error opening External by type"); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "database opened type=%x recno_max=%ld dbp=%p", External_type | 0x40000, recno_max, dbp); result = libipv6calc_db_wrapper_get_entry_generic( (void *) dbp, // pointer to database IPV6CALC_DB_LOOKUP_DATA_PTR_TYPE_BDB, // type of data_ptr (ipaddrp->proto == IPV6CALC_PROTO_IPV4) \ ? IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_FIRST_LAST \ : IPV6CALC_DB_LOOKUP_DATA_KEY_TYPE_BASE_MASK, // key type (ipaddrp->proto == IPV6CALC_PROTO_IPV4) \ ? IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_32x2 \ : IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_32x4 , // key format (ipaddrp->proto == IPV6CALC_PROTO_IPV4) \ ? 32 \ : 64, // key length IPV6CALC_DB_LOOKUP_DATA_SEARCH_TYPE_BINARY, // search type recno_max, // number of rows ipaddrp->addr[0], // lookup key MSB (ipaddrp->proto == IPV6CALC_PROTO_IPV4) \ ? 0 \ : ipaddrp->addr[1], // lookup key LSB resultstring, // data ptr NULL // function pointer ); if (result < 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "no match found"); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "resultstring=%s", resultstring); char datastring[IPV6CALC_STRING_MAX]; snprintf(datastring, sizeof(datastring), "%s", resultstring); // copy string for strtok char *token, *cptr, **ptrptr; ptrptr = &cptr; int token_count = 0; // split result string token = strtok_r(datastring, ";", ptrptr); while (token != NULL) { token_count++; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "Database entry found %d: %s", token_count, token); if (token_count == 1) { /* info */ snprintf(string, string_len, "%s", token); }; /* get next token */ token = strtok_r(NULL, ";", ptrptr); }; if (token_count != 1) { ERRORPRINT_WA("data has more entries than expected, corrupt database: %d (resultstring='%s' prefix=%08x%08x)", token_count, resultstring, (unsigned int) ipaddrp->addr[0], (unsigned int) ipaddrp->addr[1]); goto END_libipv6calc_db_wrapper; }; if (strlen(string) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "did not return a record for 'Info'"); goto END_libipv6calc_db_wrapper; }; retval = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "result Info=%s", string); EXTERNAL_DB_USAGE_MAP_TAG(External_type); END_libipv6calc_db_wrapper: DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "retval=%d", retval); return(retval); }; /* * database dump * * in: selector * in: filter ('External' database only supports CountryCode so far) * in: formatoptions * out: 0=OK */ int libipv6calc_db_wrapper_External_dump(const int selector, const s_ipv6calc_filter_master *filter_master, const uint32_t outputtype, const uint32_t formatoptions, const char *name_ipset) { DB *dbp; long int recno_max, recno, count = 0; char resultstring[IPV6CALC_STRING_MAX]; char tempstring[IPV6CALC_STRING_MAX]; char filterstring[IPV6CALC_STRING_MAX] = ""; char conversionstring[IPV6CALC_STRING_MAX] = ""; int result; int retval = -1; char protocol; int i; uint32_t value_first_00_31, value_last_00_31; uint32_t value_first_32_63, value_last_32_63; const s_ipv6calc_filter_db_cc *filter_db_cc; int External_type, key_format; char cc2[IPV6CALC_COUNTRYCODE_STRING_MAX]; int prefixlength; uint32_t mask; uint32_t delta; ipv6calc_ipaddr ipaddr, ipaddr2; ipv6calc_ipv6addr ipv6addr; ipv6calc_ipv4addr ipv4addr; int print_ipset = 0; // general failsafe check if ((formatoptions & FORMATOPTION_print_ipset) > 0) { if (name_ipset == NULL) { ERRORPRINT_NA("Format 'print-ipset ' selected but no name provided"); return (1); }; if (strlen(name_ipset) == 0) { ERRORPRINT_NA("Format 'print-ipset ' selected but name has zero length"); return (1); }; // enable print_ipset = 1; }; // failsafe check per proto switch (selector) { case IPV6CALC_PROTO_IPV4: External_type = EXTERNAL_DB_IPV4_COUNTRYCODE; protocol = '4'; key_format = IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_32x2; if (filter_master->filter_ipv4addr.active == 0) { ERRORPRINT_NA("no IPv4 filter provided (-E ...)"); return (1); }; if (filter_master->filter_ipv4addr.filter_db_cc.active == 0) { ERRORPRINT_NA("no IPv4 Database CountryCode filter provided (-E ipv4.db.cc=)"); return (1); }; if (filter_master->filter_ipv4addr.filter_db_asn.active != 0) { ERRORPRINT_NA("IPv4 ASN filter currently not supported for database dump"); return (1); }; if (filter_master->filter_ipv4addr.filter_db_registry.active != 0) { ERRORPRINT_NA("IPv4 Registry filter currently not supported for database dump"); return (1); }; if (filter_master->filter_ipv4addr.filter_typeinfo.active != 0) { ERRORPRINT_NA("IPv4 TypeInfo filter currently not supported for database dump"); return (1); }; if (filter_master->filter_ipv4addr.filter_addr.active != 0) { ERRORPRINT_NA("IPv4 Address filter currently not supported for database dump"); return (1); }; filter_db_cc = &filter_master->filter_ipv4addr.filter_db_cc; // check for supported outputtype switch (outputtype) { case FORMAT_ipv4addr: case FORMAT_ipv6to4: case FORMAT_undefined: // supported break; default: ERRORPRINT_WA("Outputtype for IPv4 Address is not supported: 0x%08x", outputtype); return (1); break; }; // check for supported outputtype switch (outputtype) { case FORMAT_ipv6to4: snprintf(conversionstring, sizeof(conversionstring), "%s", " (output format: 6to4)"); break; }; break; case IPV6CALC_PROTO_IPV6: External_type = EXTERNAL_DB_IPV6_COUNTRYCODE; protocol = '6'; key_format = IPV6CALC_DB_LOOKUP_DATA_DBD_FORMAT_SEMICOLON_SEP_HEX_32x4; if (filter_master->filter_ipv6addr.active == 0) { ERRORPRINT_NA("no IPv6 filter provided (-E ...)"); return (1); }; if (filter_master->filter_ipv6addr.filter_db_cc.active == 0) { ERRORPRINT_NA("no IPv6 Database CountryCode filter provided (-E ipv6.db.cc=)"); return (1); }; if (filter_master->filter_ipv6addr.filter_db_asn.active != 0) { ERRORPRINT_NA("IPv6 ASN filter currently not supported for database dump"); return (1); }; if (filter_master->filter_ipv6addr.filter_db_registry.active != 0) { ERRORPRINT_NA("IPv6 Registry filter currently not supported for database dump"); return (1); }; if (filter_master->filter_ipv6addr.filter_typeinfo.active != 0) { ERRORPRINT_NA("IPv6 TypeInfo filter currently not supported for database dump"); return (1); }; if (filter_master->filter_ipv6addr.filter_typeinfo2.active != 0) { ERRORPRINT_NA("IPv6 TypeInfo filter currently not supported for database dump"); return (1); }; if (filter_master->filter_ipv6addr.filter_addr.active != 0) { ERRORPRINT_NA("IPv6 Address filter currently not supported for database dump"); return (1); }; filter_db_cc = &filter_master->filter_ipv6addr.filter_db_cc; // check for supported outputtype switch (outputtype) { case FORMAT_ipv6addr: case FORMAT_undefined: // supported break; default: ERRORPRINT_WA("Outputtype for IPv6 Address is not supported: 0x%08x", outputtype); return (1); break; }; break; default: ERRORPRINT_WA("unsupported selector: %d (FIX CODE)", selector); return (1); break; }; // check for unsupported mixed filter if ((filter_db_cc->cc_must_have_max > 0) && (filter_db_cc->cc_may_not_have_max > 0)) { ERRORPRINT_NA("mixed Database filter with 'must-have' and 'may-not-have' is senseless for database dump"); return (1); }; // create filter info string snprintf(resultstring, sizeof(resultstring), "%s", ""); // clear string if (filter_db_cc->cc_must_have_max > 0) { for (i = 0; i < filter_db_cc->cc_must_have_max; i++) { libipv6calc_db_wrapper_country_code_by_cc_index(cc2, sizeof(cc2), filter_db_cc->cc_must_have[i]); snprintf(tempstring, sizeof(tempstring), "%s %s", filterstring, cc2); snprintf(filterstring, sizeof(filterstring), "%s", tempstring); }; }; if (filter_db_cc->cc_may_not_have_max > 0) { for (i = 0; i < filter_db_cc->cc_may_not_have_max; i++) { libipv6calc_db_wrapper_country_code_by_cc_index(cc2, sizeof(cc2), filter_db_cc->cc_may_not_have[i]); snprintf(tempstring, sizeof(tempstring), "%s ^%s", filterstring, cc2); snprintf(filterstring, sizeof(filterstring), "%s", tempstring); }; }; // data-info dbp = libipv6calc_db_wrapper_External_open_type(External_type, &recno_max); if (dbp == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_External, "Error opening External by type"); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "database opened type=%x recno_max=%ld dbp=%p", External_type | 0x40000, recno_max, dbp); NONQUIETPRINT_WA("# 'External' database dump (with %lu entries) start with filter IPv%c && CountryCode(s):%s%s (suppress this line with option '-q')", recno_max, protocol, filterstring, conversionstring); // filterstring has a trailing space // print header for 'ipset' // family inet : IPv4 // family inet6: IPv6 and IPv4 converted by 6to4 if (print_ipset == 1) { // create but don't care if already existing fprintf(stdout, "create %s hash:net family %s counters -exist\n", name_ipset, (selector == IPV6CALC_PROTO_IPV6) ? "inet6" : ( (outputtype == FORMAT_ipv6to4) ? "inet6" : "inet") ); // flush ipset fprintf(stdout, "flush %s\n", name_ipset); }; for (recno = 1; recno <= recno_max; recno++) { result = libipv6calc_db_wrapper_bdb_fetch_row( dbp, // pointer to database key_format, // key format recno, // row number &value_first_00_31, // data 1 (MSB in case of 64 bits) &value_first_32_63, // data 1 (LSB in case of 64 bits) &value_last_00_31, // data 2 (MSB in case of 64 bits) &value_last_32_63, // data 2 (LSB in case of 64 bits) resultstring // data ptr ); if (result < 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "no entry found for recno=%ld", recno); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "resultstring=%s", resultstring); int16_t cc_index = libipv6calc_db_wrapper_cc_index_by_country_code(resultstring); switch (selector) { case IPV6CALC_PROTO_IPV4: // countrycode shortcut filter if (libipv6calc_db_cc_filter(cc_index, filter_db_cc) > 0) { continue; }; count++; libipaddr_clearall(&ipaddr); ipaddr.proto = IPV6CALC_PROTO_IPV4; ipaddr.addr[0] = value_first_00_31; // convert start/end into prefix length delta = value_last_00_31 - value_first_00_31; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "# IPv4 start=0x%08x end=0x%08x CC: %s", value_first_00_31, value_last_00_31, resultstring); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "entry (main ): ipv4=0x%08x delta=0x%08x", ipaddr.addr[0], delta); // backfill with smaller segments if necessary int split = 0; while (delta > 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "entry (analzye): ipv4=0x%08x delta=0x%08x split=%d", ipaddr.addr[0], delta, split); // calculate base mask from delta prefixlength = 32; mask = 0xffffffff; while (delta >= ~mask) { mask <<= 1; prefixlength--; }; mask = ~((~mask) >> 1); prefixlength++; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "entry (check ): ipv4=0x%08x delta=0x%08x split=%d mask=0x%08x prefixlength=%d", ipaddr.addr[0], delta, split, mask, prefixlength); // check whether mask is aligned while ((ipaddr.addr[0] & mask) != ipaddr.addr[0]) { // increase mask/prefixlength mask = ~((~mask) >> 1); prefixlength++; }; ipaddr.prefixlength = prefixlength; ipaddr.flag_valid = 1; ipaddr.flag_prefixuse = 1; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "entry (aligned): ipv4=0x%08x delta=0x%08x split=%d mask=0x%08x prefixlength=%d", ipaddr.addr[0], delta, split, mask, prefixlength); switch (outputtype) { case FORMAT_ipv6to4: CONVERT_IPADDR_IPV4ADDR(ipaddr, ipv4addr); retval = librfc3056_ipv4addr_to_ipv6to4addr(&ipv6addr, &ipv4addr); CONVERT_IPV6ADDR_IPADDR(ipv6addr, ipaddr2); libipaddr_ipaddrstruct_to_string(&ipaddr2, tempstring, sizeof(tempstring), formatoptions); break; default: libipaddr_ipaddrstruct_to_string(&ipaddr, tempstring, sizeof(tempstring), formatoptions); break; }; if (print_ipset == 1) { fprintf(stdout, "add %s %s\n", name_ipset, tempstring); } else { fprintf(stdout, "%s\n", tempstring); }; delta -= ~mask; if (delta == 0) { // all covered, finished break; }; delta--; ipaddr.addr[0] += ~mask + 1; split++; }; break; case IPV6CALC_PROTO_IPV6: // countrycode shortcut filter if (libipv6calc_db_cc_filter(cc_index, filter_db_cc) > 0) { continue; }; count++; libipaddr_clearall(&ipaddr); ipaddr.proto = IPV6CALC_PROTO_IPV6; ipaddr.addr[0] = value_first_00_31; ipaddr.addr[1] = value_first_32_63; // convert mask into prefix length prefixlength = libipv6calc_bitcount_uint32_t(value_last_00_31); if (prefixlength == 32) { // continue with 2nd block prefixlength += libipv6calc_bitcount_uint32_t(value_last_32_63); }; ipaddr.prefixlength = prefixlength; ipaddr.flag_valid = 1; ipaddr.flag_prefixuse = 1; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "# IPv6 prefix=%08x:%08x mask=%08x:%08x prefixlength=%d CC: %s", value_first_00_31, value_first_32_63, value_last_00_31, value_last_32_63, prefixlength, resultstring); libipaddr_ipaddrstruct_to_string(&ipaddr, tempstring, sizeof(tempstring), formatoptions); if (print_ipset == 1) { fprintf(stdout, "add %s %s\n", name_ipset, tempstring); } else { fprintf(stdout, "%s\n", tempstring); }; break; }; }; EXTERNAL_DB_USAGE_MAP_TAG(External_type); retval = 0; END_libipv6calc_db_wrapper: NONQUIETPRINT_WA("# 'External' database dump finished displaying %lu entries with filter IPv%c && CountryCode(s):%s%s (suppress this line with option '-q')", count, protocol, filterstring, conversionstring); // filterstring has a trailing space DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_External, "retval=%d", retval); return(retval); }; #endif //SUPPORT_EXTERNAL ipv6calc-4.1.0/databases/lib/libipv6calc_db_wrapper_External.h000066400000000000000000000071241444154247200243510ustar00rootroot00000000000000/* * Project : ipv6calc * File : databases/lib/libipv6calc_db_wrapper_External.h * Version : $Id: 0e4c749ebaa355f9dcc80a5e561fdb43084f6463 $ * Copyright : 2013-2021 by Peter Bieringer * * Information: * Header file for libipv6calc_db_wrapper_External.c */ #include #include "ipv6calctypes.h" #include "libipaddr.h" #ifndef _libipv6calc_db_wrapper_External_h #define _libipv6calc_db_wrapper_External_h 1 // database types #define EXTERNAL_DB_IPV4_REGISTRY 1 #define EXTERNAL_DB_IPV6_REGISTRY 2 #define EXTERNAL_DB_IPV4_COUNTRYCODE 3 #define EXTERNAL_DB_IPV6_COUNTRYCODE 4 #define EXTERNAL_DB_MAX (4 + 1) static const db_file_desc libipv6calc_db_wrapper_External_db_file_desc[] = { { EXTERNAL_DB_IPV4_REGISTRY , "ipv6calc-external-ipv4-registry.db" , "IPv4 Registry" , IPV6CALC_DB_IPV4_TO_REGISTRY | IPV6CALC_DB_EXTERNAL_IPV4 | IPV6CALC_DB_IPV4_TO_INFO }, { EXTERNAL_DB_IPV6_REGISTRY , "ipv6calc-external-ipv6-registry.db" , "IPv6 Registry" , IPV6CALC_DB_IPV6_TO_REGISTRY | IPV6CALC_DB_EXTERNAL_IPV6 | IPV6CALC_DB_IPV6_TO_INFO }, { EXTERNAL_DB_IPV4_COUNTRYCODE, "ipv6calc-external-ipv4-countrycode.db" , "IPv4 CountryCode" , IPV6CALC_DB_IPV4_TO_CC | IPV6CALC_DB_EXTERNAL_IPV4 | IPV6CALC_DB_IPV4_DUMP_CC }, { EXTERNAL_DB_IPV6_COUNTRYCODE, "ipv6calc-external-ipv6-countrycode.db" , "IPv6 CountryCode" , IPV6CALC_DB_IPV6_TO_CC | IPV6CALC_DB_EXTERNAL_IPV6 | IPV6CALC_DB_IPV6_DUMP_CC }, }; // features extern uint32_t wrapper_features_External; // creation time of databases extern time_t wrapper_db_unixtime_External[MAXENTRIES_ARRAY(libipv6calc_db_wrapper_External_db_file_desc)]; typedef struct { FILE *filehandle; uint8_t databasetype; uint8_t databasecolumn; uint8_t databaseday; uint8_t databasemonth; uint8_t databaseyear; uint32_t databasecount; uint32_t databaseaddr; uint32_t ipversion; } External; #endif extern int libipv6calc_db_wrapper_External_wrapper_init(void); extern int libipv6calc_db_wrapper_External_wrapper_cleanup(void); extern void libipv6calc_db_wrapper_External_wrapper_info(char* string, const size_t size); extern void libipv6calc_db_wrapper_External_wrapper_print_db_info(const int level_verbose, const char *prefix_string); extern char *libipv6calc_db_wrapper_External_wrapper_db_info_used(void); extern int libipv6calc_db_wrapper_External_has_features(uint32_t features); extern time_t libipv6calc_db_wrapper_External_db_unixtime_by_feature(uint32_t feature); #ifdef SUPPORT_EXTERNAL #include extern char external_db_dir[PATH_MAX]; extern int libipv6calc_db_wrapper_External_db_avail(const unsigned int type); extern DB *libipv6calc_db_wrapper_External_open_type(const unsigned int type, long int *db_recno_max_ptr); extern const char *libipv6calc_db_wrapper_External_dbdescription(const unsigned int type); // IPv4/v6 Registry Number extern int libipv6calc_db_wrapper_External_registry_num_by_addr(const ipv6calc_ipaddr *ipaddrp); // IPv4/v6 CountryCode extern int libipv6calc_db_wrapper_External_country_code_by_addr(const ipv6calc_ipaddr *ipaddrp, char *country, const size_t country_len); // IPv4/v6 Info extern int libipv6calc_db_wrapper_External_info_by_ipaddr(const ipv6calc_ipaddr *ipaddrp, char *string, const size_t string_len); // Database dump extern int libipv6calc_db_wrapper_External_dump(const int selector, const s_ipv6calc_filter_master *filter_master, const uint32_t outputtype, const uint32_t formatoptions, const char *name_ipset); #endif ipv6calc-4.1.0/databases/lib/libipv6calc_db_wrapper_GeoIP2.c000066400000000000000000001064661444154247200236200ustar00rootroot00000000000000/* * Project : ipv6calc * File : databases/lib/libipv6calc_db_wrapper_GeoIP2.c * Version : $Id: cf6ecb9284d4a82fc1056f206c90dd1f330f22dc $ * Copyright : 2019-2021 by Peter Bieringer * * Information: * ipv6calc DB-IP.com database wrapper for MaxMindDB databases */ #include #include #include #include #include #include #include #include "config.h" #include "libipv6calcdebug.h" #include "libipv6calc.h" #include "libipaddr.h" #include "libipv6calc_db_wrapper.h" #ifdef SUPPORT_GEOIP2 #include "libipv6calc_db_wrapper_GeoIP2.h" char geoip2_db_dir[PATH_MAX] = GEOIP2_DB; static const char* wrapper_geoip2_info = "GeoIP2"; /* database files */ static const db_file_desc2 libipv6calc_db_wrapper_GeoIP2_db_file_desc[] = { // country (lite) { GeoIP2_DB_COUNTRY_LITE , "GeoLite2-Country.mmdb" , "IPv4/v6 CountryCode (FREE)" , IPV6CALC_DB_IP_TO_CC | IPV6CALC_DB_IP_TO_GEONAMEID | IPV6CALC_DB_IP_TO_COUNTRY | IPV6CALC_DB_GEOIP , IPV6CALC_DB_GEOIP2_INTERNAL_FREE }, // city (lite) { GeoIP2_DB_CITY_LITE , "GeoLite2-City.mmdb" , "IPv4/v6 City (FREE)" , IPV6CALC_DB_IP_TO_CITY | IPV6CALC_DB_IP_TO_REGION | IPV6CALC_DB_IP_TO_CC | IPV6CALC_DB_GEOIP | IPV6CALC_DB_IP_TO_GEONAMEID , IPV6CALC_DB_GEOIP2_INTERNAL_FREE }, // ASN (lite) { GeoIP2_DB_ASN , "GeoLite2-ASN.mmdb" , "IPv4/v6 ASN (FREE)" , IPV6CALC_DB_IP_TO_AS | IPV6CALC_DB_GEOIP , IPV6CALC_DB_GEOIP2_INTERNAL_FREE }, // country { GeoIP2_DB_COUNTRY , "Geo2-Country.mmdb" , "IPv4/v6 CountryCode (COMM)" , IPV6CALC_DB_IP_TO_CC | IPV6CALC_DB_IP_TO_GEONAMEID | IPV6CALC_DB_IP_TO_COUNTRY | IPV6CALC_DB_GEOIP , IPV6CALC_DB_GEOIP2_INTERNAL_COMM }, // city { GeoIP2_DB_CITY , "Geo2-City.mmdb" , "IPv4/v6 City (COMM)" , IPV6CALC_DB_IP_TO_CITY | IPV6CALC_DB_IP_TO_REGION | IPV6CALC_DB_IP_TO_CC | IPV6CALC_DB_GEOIP | IPV6CALC_DB_IP_TO_GEONAMEID , IPV6CALC_DB_GEOIP2_INTERNAL_COMM }, // ISP { GeoIP2_DB_ISP , "Geo2-ISP.mmdb" , "IPv4/v6 ISP (COMM)" , IPV6CALC_DB_IP_TO_AS | IPV6CALC_DB_GEOIP , IPV6CALC_DB_GEOIP2_INTERNAL_COMM }, }; // DB used for resolution after automatic election, which is currently done by checking for DB files and the sequence in the header file static int geoip2_db_country_v4 = 0; static int geoip2_db_country_v6 = 0; static int geoip2_db_region_city_v4 = 0; static int geoip2_db_region_city_v6 = 0; static int geoip2_db_asn_v4 = 0; static int geoip2_db_asn_v6 = 0; typedef struct { unsigned int num; int dbtype; int dbym; } s_ipv6calc_geoip2_db; #define GeoIP2_FREE 0 #define GeoIP2_COMM 1 #define GeoIP2_MAX 2 static s_ipv6calc_geoip2_db geoip2_db_country_v4_best[GeoIP2_MAX]; static s_ipv6calc_geoip2_db geoip2_db_country_v6_best[GeoIP2_MAX]; static s_ipv6calc_geoip2_db geoip2_db_region_city_v4_best[GeoIP2_MAX]; static s_ipv6calc_geoip2_db geoip2_db_region_city_v6_best[GeoIP2_MAX]; static s_ipv6calc_geoip2_db geoip2_db_asn_v4_best[GeoIP2_MAX]; static s_ipv6calc_geoip2_db geoip2_db_asn_v6_best[GeoIP2_MAX]; static int type2index[GeoIP2_DB_MAX+1]; // select FREE database if COMM is older than given months int geoip2_db_comm_to_free_switch_min_delta_months = 12; // select better database of same product (COMM/FREE) only if not older than given months int geoip2_db_better_max_delta_months = 1; // select only a specific GeoIP2 db type int geoip2_db_only_type = 0; #define GeoIP2_UNPACK_YM(dbym) ((dbym > 0) ? ((dbym % 12) + ((dbym / 12)) * 100) : 0) /* database usage map */ #define GeoIP2_DB_MAX_BLOCKS_32 2 // 0-63 static uint32_t geoip2_db_usage_map[GeoIP2_DB_MAX_BLOCKS_32]; #define GeoIP2_DB_USAGE_MAP_TAG(db) if (db < (32 * GeoIP2_DB_MAX_BLOCKS_32)) { \ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Tag usage for db: %d", db); \ geoip2_db_usage_map[db / 32] |= 1 << (db % 32); \ } else { \ fprintf(stderr, "FIXME: unsupported db value (exceed limit): %d (%d)\n", db, 32 * GeoIP2_DB_MAX_BLOCKS_32 - 1); \ exit(1); \ }; char geoip2_db_usage_string[IPV6CALC_STRING_MAX] = ""; // local cache static MMDB_s mmdb_cache[GeoIP2_DB_MAX+1]; // local prototyping static char *libipv6calc_db_wrapper_GeoIP2_dbfilename(const unsigned int type); static void libipv6calc_db_wrapper_GeoIP2_close(const int type); /* * function initialise the GeoIP2 wrapper * * in : (nothing) * out: 0=ok, 1=error */ int libipv6calc_db_wrapper_GeoIP2_wrapper_init(void) { int i, dbym, dbtype, ret, product; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Called"); DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Check for standard GeoIP2 databases"); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "custom directory: %s", geoip2_db_dir); /* check available databases for resolution */ for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_GeoIP2_db_file_desc); i++) { // add entry to mapping type2index[libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number] = i; // clean local cache mmdb_cache[libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number].file_size = 0; mmdb_cache[libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number].flags = 0; // add features to implemented wrapper_features_by_source_implemented[IPV6CALC_DB_SOURCE_GEOIP2] |= libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].features; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "GeoIP2 database test for availability: %s", libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].filename); if (libipv6calc_db_wrapper_GeoIP2_db_avail(libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number) == 1) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "GeoIP2 database available: %s", libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].description); wrapper_features_by_source[IPV6CALC_DB_SOURCE_GEOIP2] |= libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].features; } else { // db not available continue; }; ret = libipv6calc_db_wrapper_GeoIP2_open_type(libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number); if (ret != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Error opening GeoIP2 by type"); continue; }; dbtype = libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number; if ((geoip2_db_only_type > 0) && (geoip2_db_only_type != dbtype)) { // not selected continue; }; if ((libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].internal & IPV6CALC_DB_GEOIP2_INTERNAL_FREE) != 0) { product = GeoIP2_FREE; } else { product = GeoIP2_COMM; }; time_t db_time = mmdb_cache[dbtype].metadata.build_epoch; struct tm *db_gmtime = gmtime(&db_time); dbym = (db_gmtime->tm_year + 1900) * 12 + (db_gmtime->tm_mon + 1); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "GEOIP2 type=%d dbym=%d Year/Month=%d unixtime=%llu", dbtype, dbym, GeoIP2_UNPACK_YM(dbym), (long long unsigned int) mmdb_cache[dbtype].metadata.build_epoch); #define GeoIP2_DB_SELECT_BETTER(best) \ if ( \ (best.num == 0) \ || ( \ (best.dbym > 0) \ && ((best.dbym - dbym) <= geoip2_db_better_max_delta_months) \ ) \ ) { \ best.num = libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number; \ best.dbym = dbym; \ best.dbtype = dbtype; \ }; // note: databases are listed in sequence "less data" before "more data" if ((libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].features & IPV6CALC_DB_IPV4_TO_CC) != 0) { GeoIP2_DB_SELECT_BETTER(geoip2_db_country_v4_best[product]) }; if ((libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].features & IPV6CALC_DB_IPV6_TO_CC) != 0) { GeoIP2_DB_SELECT_BETTER(geoip2_db_country_v6_best[product]) }; if ((libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].features & (IPV6CALC_DB_IPV4_TO_REGION | IPV6CALC_DB_IPV4_TO_CITY)) != 0) { GeoIP2_DB_SELECT_BETTER(geoip2_db_region_city_v4_best[product]) }; if ((libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].features & (IPV6CALC_DB_IPV6_TO_REGION | IPV6CALC_DB_IPV6_TO_CITY)) != 0) { GeoIP2_DB_SELECT_BETTER(geoip2_db_region_city_v6_best[product]) }; if ((libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].features & IPV6CALC_DB_IPV4_TO_AS) != 0) { GeoIP2_DB_SELECT_BETTER(geoip2_db_asn_v4_best[product]) }; if ((libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].features & IPV6CALC_DB_IPV6_TO_AS) != 0) { GeoIP2_DB_SELECT_BETTER(geoip2_db_asn_v6_best[product]) }; wrapper_features_by_source[IPV6CALC_DB_SOURCE_GEOIP2] |= libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].features; }; // select free instead of comm, if comm is outdated and free available if (geoip2_db_comm_to_free_switch_min_delta_months > 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "GeoIP2 database priority check (comm->free) after months: %d", geoip2_db_comm_to_free_switch_min_delta_months); #define SELECT_FREE_INSTEAD_OF_COMM(free, comm, final) \ if ((free.num > 0) && (comm.num > 0)) { \ if (free.dbym - comm.dbym > geoip2_db_comm_to_free_switch_min_delta_months) { \ final = free.num; \ }; \ }; SELECT_FREE_INSTEAD_OF_COMM(geoip2_db_country_v4_best[GeoIP2_FREE], geoip2_db_country_v4_best[GeoIP2_COMM], geoip2_db_country_v4) SELECT_FREE_INSTEAD_OF_COMM(geoip2_db_country_v6_best[GeoIP2_FREE], geoip2_db_country_v6_best[GeoIP2_COMM], geoip2_db_country_v6) SELECT_FREE_INSTEAD_OF_COMM(geoip2_db_region_city_v4_best[GeoIP2_FREE], geoip2_db_region_city_v4_best[GeoIP2_COMM], geoip2_db_region_city_v4) SELECT_FREE_INSTEAD_OF_COMM(geoip2_db_region_city_v6_best[GeoIP2_FREE], geoip2_db_region_city_v6_best[GeoIP2_COMM], geoip2_db_region_city_v6) SELECT_FREE_INSTEAD_OF_COMM(geoip2_db_asn_v4_best[GeoIP2_FREE], geoip2_db_asn_v4_best[GeoIP2_COMM], geoip2_db_asn_v4) SELECT_FREE_INSTEAD_OF_COMM(geoip2_db_asn_v6_best[GeoIP2_FREE], geoip2_db_asn_v6_best[GeoIP2_COMM], geoip2_db_asn_v6) }; #define FILL_EMPTY(product, final) \ if ((product.num > 0) && (final == 0)) { \ final = product.num; \ }; // fill empty ones with comm FILL_EMPTY(geoip2_db_country_v4_best[GeoIP2_COMM], geoip2_db_country_v4) FILL_EMPTY(geoip2_db_country_v6_best[GeoIP2_COMM], geoip2_db_country_v6) FILL_EMPTY(geoip2_db_region_city_v4_best[GeoIP2_COMM], geoip2_db_region_city_v4) FILL_EMPTY(geoip2_db_region_city_v6_best[GeoIP2_COMM], geoip2_db_region_city_v6) FILL_EMPTY(geoip2_db_asn_v4_best[GeoIP2_COMM], geoip2_db_asn_v4) FILL_EMPTY(geoip2_db_asn_v6_best[GeoIP2_COMM], geoip2_db_asn_v6) // fill empty ones with free FILL_EMPTY(geoip2_db_country_v4_best[GeoIP2_FREE], geoip2_db_country_v4) FILL_EMPTY(geoip2_db_country_v6_best[GeoIP2_FREE], geoip2_db_country_v6) FILL_EMPTY(geoip2_db_region_city_v4_best[GeoIP2_FREE], geoip2_db_region_city_v4) FILL_EMPTY(geoip2_db_region_city_v6_best[GeoIP2_FREE], geoip2_db_region_city_v6) FILL_EMPTY(geoip2_db_asn_v4_best[GeoIP2_FREE], geoip2_db_asn_v4) FILL_EMPTY(geoip2_db_asn_v6_best[GeoIP2_FREE], geoip2_db_asn_v6) /* close handles which are not necessary further on */ for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_GeoIP2_db_file_desc); i++) { if (mmdb_cache[libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number].file_size > 0) { if ( (libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number == geoip2_db_country_v4_best[GeoIP2_FREE].num) || (libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number == geoip2_db_country_v4_best[GeoIP2_COMM].num) || (libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number == geoip2_db_country_v6_best[GeoIP2_FREE].num) || (libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number == geoip2_db_country_v6_best[GeoIP2_COMM].num) ) { // database is in use continue; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Close further unused GeoIP2: type=%d desc='%s'", libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number, libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].description); libipv6calc_db_wrapper_GeoIP2_close(libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number); }; }; wrapper_features |= wrapper_features_by_source[IPV6CALC_DB_SOURCE_GEOIP2]; return 0; }; /* * wrapper: GeoIP2_close */ static void libipv6calc_db_wrapper_GeoIP2_close(const int type) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Called type=%u", type); if (mmdb_cache[type].file_size > 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Close GeoIP2: type=%d desc='%s'", type, libipv6calc_db_wrapper_GeoIP2_db_file_desc[type2index[type]].description); libipv6calc_db_wrapper_MMDB_close(&mmdb_cache[type]); /* cleanup cache entry */ mmdb_cache[type].file_size = 0; } else if (mmdb_cache[type].flags > 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Already closed GeoIP2: type=%d desc='%s'", type, libipv6calc_db_wrapper_GeoIP2_db_file_desc[type2index[type]].description); }; }; /* * function cleanup the GeoIP2 wrapper * * in : (nothing) * out: 0=ok, 1=error */ int libipv6calc_db_wrapper_GeoIP2_wrapper_cleanup(void) { int i; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Called"); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_GeoIP2_db_file_desc); i++) { libipv6calc_db_wrapper_GeoIP2_close(i); }; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Finished"); return 0; }; /* * function info of GeoIP2 wrapper * * in : ptr and size of string to be filled * out: modified string; */ void libipv6calc_db_wrapper_GeoIP2_wrapper_info(char* string, const size_t size) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Called"); snprintf(string, size, "GeoIP2 database support: Country4=%d Country6=%d ASN4=%d ASN6=%d City4=%d City6=%d", \ (wrapper_features & IPV6CALC_DB_IPV4_TO_CC) ? 1 : 0, \ (wrapper_features & IPV6CALC_DB_IPV6_TO_CC) ? 1 : 0, \ (wrapper_features & IPV6CALC_DB_IPV4_TO_AS) ? 1 : 0, \ (wrapper_features & IPV6CALC_DB_IPV6_TO_AS) ? 1 : 0, \ (wrapper_features & IPV6CALC_DB_IPV4_TO_CITY) ? 1 : 0, \ (wrapper_features & IPV6CALC_DB_IPV6_TO_CITY) ? 1 : 0 \ ); DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Finished"); return; }; /* * function print database info of GeoIP2 wrapper * * in : (void) * out: (void) */ void libipv6calc_db_wrapper_GeoIP2_wrapper_print_db_info(const int level_verbose, const char *prefix_string) { int ret, i, type, count = 0; const char *prefix = "\0"; if (prefix_string != NULL) { prefix = prefix_string; }; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Called"); IPV6CALC_DB_FEATURE_INFO(prefix, IPV6CALC_DB_SOURCE_GEOIP2) fprintf(stderr, "%sGeoIP2: info of available databases in directory: %s\n", prefix, geoip2_db_dir); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_GeoIP2_db_file_desc); i++) { type = libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number; if (libipv6calc_db_wrapper_GeoIP2_db_avail(type)) { // GeoIP2 returned that database is available ret = libipv6calc_db_wrapper_GeoIP2_open_type(type); if (ret != MMDB_SUCCESS) { fprintf(stderr, "%sGeoIP2: %-30s: [%1d] %-30s (CAN'T OPEN database information)\n", prefix, libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].description, type, libipv6calc_db_wrapper_GeoIP2_dbfilename(type)); } else { fprintf(stderr, "%sGeoIP2: %-30s: [%1d] %-30s (%s)\n", prefix, libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].description, type, libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].filename, libipv6calc_db_wrapper_GeoIP2_database_info(type)); libipv6calc_db_wrapper_GeoIP2_close(type); count++; }; } else { if (level_verbose == LEVEL_VERBOSE2) { fprintf(stderr, "%sGeoIP2: %-30s: [%1d] %-30s (%s)\n", prefix, libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].description, type, libipv6calc_db_wrapper_GeoIP2_dbfilename(type), strerror(errno)); }; continue; }; }; if (count == 0) { fprintf(stderr, "%sGeoIP2: NO available databases found in directory: %s\n", prefix, geoip2_db_dir); } else { if (level_verbose >= LEVEL_VERBOSE2) { fprintf(stderr, "%sGeoIP2: detected best databases FREE Country4=%-3d DB%-2d %6d Country6=%-3d DB%-2d %6d City4=%-3d DB%-2d %6d City6=%-3d DB%-2d %6d\n" , prefix , geoip2_db_country_v4_best[GeoIP2_FREE].num , geoip2_db_country_v4_best[GeoIP2_FREE].dbtype , GeoIP2_UNPACK_YM(geoip2_db_country_v4_best[GeoIP2_FREE].dbym) , geoip2_db_country_v6_best[GeoIP2_FREE].num , geoip2_db_country_v6_best[GeoIP2_FREE].dbtype , GeoIP2_UNPACK_YM(geoip2_db_country_v6_best[GeoIP2_FREE].dbym) , geoip2_db_region_city_v4_best[GeoIP2_FREE].num , geoip2_db_region_city_v4_best[GeoIP2_FREE].dbtype , GeoIP2_UNPACK_YM(geoip2_db_region_city_v4_best[GeoIP2_FREE].dbym) , geoip2_db_region_city_v6_best[GeoIP2_FREE].num , geoip2_db_region_city_v6_best[GeoIP2_FREE].dbtype , GeoIP2_UNPACK_YM(geoip2_db_region_city_v6_best[GeoIP2_FREE].dbym) ); fprintf(stderr, "%sGeoIP2: detected best databases COMM Country4=%-3d DB%-2d %6d Country6=%-3d DB%-2d %6d City4=%-3d DB%-2d %6d City6=%-3d DB%-2d %6d\n" , prefix , geoip2_db_country_v4_best[GeoIP2_COMM].num , geoip2_db_country_v4_best[GeoIP2_COMM].dbtype , GeoIP2_UNPACK_YM(geoip2_db_country_v4_best[GeoIP2_COMM].dbym) , geoip2_db_country_v6_best[GeoIP2_COMM].num , geoip2_db_country_v6_best[GeoIP2_COMM].dbtype , GeoIP2_UNPACK_YM(geoip2_db_country_v6_best[GeoIP2_COMM].dbym) , geoip2_db_region_city_v4_best[GeoIP2_COMM].num , geoip2_db_region_city_v4_best[GeoIP2_COMM].dbtype , GeoIP2_UNPACK_YM(geoip2_db_region_city_v4_best[GeoIP2_COMM].dbym) , geoip2_db_region_city_v6_best[GeoIP2_COMM].num , geoip2_db_region_city_v6_best[GeoIP2_COMM].dbtype , GeoIP2_UNPACK_YM(geoip2_db_region_city_v6_best[GeoIP2_COMM].dbym) ); } else if (level_verbose >= LEVEL_VERBOSE) { fprintf(stderr, "%sGeoIP2: detected best databases FREE Country4=%-3d Country6=%-3d City4=%-3d City6=%-3d\n" , prefix , geoip2_db_country_v4_best[GeoIP2_FREE].num , geoip2_db_country_v6_best[GeoIP2_FREE].num , geoip2_db_region_city_v4_best[GeoIP2_FREE].num , geoip2_db_region_city_v6_best[GeoIP2_FREE].num ); fprintf(stderr, "%sGeoIP2: detected best databases COMM Country4=%-3d Country6=%-3d City4=%-3d City6=%-3d\n" , prefix , geoip2_db_country_v4_best[GeoIP2_COMM].num , geoip2_db_country_v6_best[GeoIP2_COMM].num , geoip2_db_region_city_v4_best[GeoIP2_COMM].num , geoip2_db_region_city_v6_best[GeoIP2_COMM].num ); }; if (level_verbose >= LEVEL_VERBOSE) { fprintf(stderr, "%sGeoIP2: selected best databases normal Country4=%-3d%s Country6=%-3d%s City4=%-3d%s City6=%-3d\n" , prefix , geoip2_db_country_v4 , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , geoip2_db_country_v6 , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , geoip2_db_region_city_v4 , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , geoip2_db_region_city_v6 ); if (geoip2_db_comm_to_free_switch_min_delta_months > 0) { fprintf(stderr, "%sGeoIP2: selected best databases method: COMM older than %d months are deselected in case of FREE is available\n" , prefix , geoip2_db_comm_to_free_switch_min_delta_months ); }; if (geoip2_db_better_max_delta_months > 0) { fprintf(stderr, "%sGeoIP2: selected best databases method: COMM/FREE with more features are only selected in case not older than %d months of already found COMM/FREE\n" , prefix , geoip2_db_better_max_delta_months ); }; if (geoip2_db_only_type > 0) { fprintf(stderr, "%sGeoIP2: selected best databases method: by applying given DB type filter: %d\n" , prefix , geoip2_db_only_type ); }; }; }; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Finished"); return; }; /* * wrapper: string regarding used database infos */ char *libipv6calc_db_wrapper_GeoIP2_wrapper_db_info_used(void) { int type, i; char tempstring[IPV6CALC_STRING_MAX]; char *info; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Called"); for (i = 0; i < GeoIP2_DB_MAX_BLOCKS_32; i++) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "geoip2_db_usage_map[%d]=%08x", i, (unsigned int) geoip2_db_usage_map[i]); }; for (type = 0; type < 32 * GeoIP2_DB_MAX_BLOCKS_32; type++) { if ((geoip2_db_usage_map[type / 32] & (1 << (type % 32))) != 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "DB type used: %d", type); info = libipv6calc_db_wrapper_GeoIP2_database_info(type); if (info == NULL) { continue; }; // NULL pointer returned if (strlen(info) == 0) { continue; }; // empty string returned DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "type=%d info=%s", type, info); if (strlen(geoip2_db_usage_string) > 0) { if (strstr(geoip2_db_usage_string, info) != NULL) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "type=%d info=%s (skip, already displayed)", type, info); continue; }; // string already included snprintf(tempstring, sizeof(tempstring), "%s / %s", geoip2_db_usage_string, info); } else { snprintf(tempstring, sizeof(tempstring), "%s", info); }; snprintf(geoip2_db_usage_string, sizeof(geoip2_db_usage_string), "%s", tempstring); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "type=%d geoip2_db_usage_string=%s", type, geoip2_db_usage_string); }; }; return(geoip2_db_usage_string); }; /******************************* * Wrapper extension functions for GeoIP2 *******************************/ /* * wrapper extension: GeoIP2_dbfilename */ static char *libipv6calc_db_wrapper_GeoIP2_dbfilename(const unsigned int type) { static char tempstring[IPV6CALC_STRING_MAX]; int entry = -1, i; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Called: %s type=%d", wrapper_geoip2_info, type); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_GeoIP2_db_file_desc); i++) { if (libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number == type) { entry = i; break; }; }; if (entry < 0) { return(NULL); }; snprintf(tempstring, sizeof(tempstring), "%s/%s", geoip2_db_dir, libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].filename); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Finished: %s type=%d has filename=%s", wrapper_geoip2_info, type, tempstring); return(tempstring); }; /* * wrapper extension: GeoIP2_dbdescription */ const char *libipv6calc_db_wrapper_GeoIP2_dbdescription(const unsigned int type) { int entry = -1, i; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Called: %s type=%d", wrapper_geoip2_info, type); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_GeoIP2_db_file_desc); i++) { if (libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number == type) { entry = i; break; }; }; if (entry < 0) { return("unknown"); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Finished: %s type=%d has description=%s", wrapper_geoip2_info, type, libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].description); return(libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].description); }; /* * wrapper extension: GeoIP2_db_avail * ret: 1=avail 0=not-avail */ int libipv6calc_db_wrapper_GeoIP2_db_avail(const unsigned int type) { char *filename; int r = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Called: %s type=%d", wrapper_geoip2_info, type); filename = libipv6calc_db_wrapper_GeoIP2_dbfilename(type); if (filename == NULL) { goto END_libipv6calc_db_wrapper; }; r = (access(filename, R_OK) == 0) ? 1:0; if (r == 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Finished: %s type=%d (still unknown) (r=%d: %s)", wrapper_geoip2_info, type, r, strerror(errno)); } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Finished: %s type=%d (%s) (r=%d)", wrapper_geoip2_info, type, filename, r); }; END_libipv6calc_db_wrapper: return(r); }; /* * wrapper extension: GeoIP2_open_type * input: * type (mandatory) * modified: * mmdb_cache * output: * result */ int libipv6calc_db_wrapper_GeoIP2_open_type(const unsigned int type) { char *filename; int entry = -1, i; int ret; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Called: %s type=%d", wrapper_geoip2_info, type); // check for valid type for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_GeoIP2_db_file_desc); i++) { if (libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number == type) { entry = i; break; }; }; if (entry < 0) { mmdb_cache[type].file_size = 0; mmdb_cache[type].flags = 0; ret = MMDB_FILE_OPEN_ERROR; goto END_libipv6calc_db_wrapper; }; if (mmdb_cache[type].file_size > 0) { // already open DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Database already opened (cached) type=%d", type); ret = MMDB_SUCCESS; goto END_libipv6calc_db_wrapper; }; // retrieve filename filename = libipv6calc_db_wrapper_GeoIP2_dbfilename(type); if (filename == NULL) { mmdb_cache[type].file_size = 0; mmdb_cache[type].flags = 0; ret = MMDB_FILE_OPEN_ERROR; goto END_libipv6calc_db_wrapper; }; ret = libipv6calc_db_wrapper_MMDB_open(filename, MMDB_MODE_MMAP, &mmdb_cache[type]); if (ret != MMDB_SUCCESS) { if (ipv6calc_quiet == 0) { fprintf(stderr, "MMDB_open failed: %s (%s)\n", libipv6calc_db_wrapper_MMDB_strerror(ret), filename); if (ret == MMDB_IO_ERROR) { fprintf(stderr, "MMDB_open IO error: %s (%s)\n", strerror(errno), filename); }; }; mmdb_cache[type].file_size = 0; mmdb_cache[type].flags = 0; ret = MMDB_FILE_OPEN_ERROR; goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Database successfully opened (fill-cache), type=%d", type); END_libipv6calc_db_wrapper: return(ret); }; /******************************* * Wrapper functions for GeoIP2 *******************************/ /* * wrapper: GeoIP2_database_info */ char *libipv6calc_db_wrapper_GeoIP2_database_info(const unsigned int type) { static char resultstring[IPV6CALC_STRING_MAX]; char datastring[IPV6CALC_STRING_MAX]; char tempstring[IPV6CALC_STRING_MAX]; MMDB_s mmdb; int ret, i, entry = -1; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Called: %s", wrapper_geoip2_info); // check for valid type for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_GeoIP2_db_file_desc); i++) { if (libipv6calc_db_wrapper_GeoIP2_db_file_desc[i].number == (type & 0xffff)) { entry = i; break; }; }; if (entry < 0) { ERRORPRINT_WA("Invalid type (FIX CODE): %d", type); goto END_libipv6calc_db_wrapper; }; ret = libipv6calc_db_wrapper_GeoIP2_open_type(type); if (ret != MMDB_SUCCESS) { snprintf(resultstring, sizeof(resultstring), "%s", "(CAN'T OPEN database information)"); goto END_libipv6calc_db_wrapper; }; // get metadata // /* const char *meta_dump = "\n" " Database metadata\n" " Node count: %i\n" " Record size: %i bits\n" " IP version: IPv%i\n" " Binary format: %i.%i\n" " Build epoch: %llu (%s)\n" " Type: %s\n" " Languages: "; fprintf(stdout, meta_dump, */ mmdb = mmdb_cache[type]; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "meta: NodeCount=%i RecordSize=%i IpVersion=%i BinaryFormat=%i.%i BuildTime=%llu Type=%s", \ mmdb.metadata.node_count, mmdb.metadata.record_size, mmdb.metadata.ip_version, mmdb.metadata.binary_format_major_version, mmdb.metadata.binary_format_minor_version, (long long unsigned int) mmdb.metadata.build_epoch, mmdb.metadata.database_type); const time_t epoch = (const time_t)mmdb.metadata.build_epoch; char year[5]; strftime(year, sizeof(year), "%Y", gmtime(&epoch)); snprintf(resultstring, sizeof(resultstring), "%s Copyright (c) %s MaxMind All Rights Reserved" , mmdb.metadata.database_type , year ); strftime(datastring, sizeof(datastring), "%Y%m%d-%H%M%S UTC", gmtime(&epoch)); snprintf(tempstring, sizeof(tempstring), "%s, created: %s", resultstring, datastring); snprintf(resultstring, sizeof(resultstring), "%s", tempstring); END_libipv6calc_db_wrapper: return(resultstring); }; /********************************************* * Abstract functions * *******************************************/ /* function query for feature set * ret=-1: unknown * 0 : not matching * 1 : ok */ int libipv6calc_db_wrapper_GeoIP2_has_features(uint32_t features) { int result = -1; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Called with feature value to test: 0x%08x", features); if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_GEOIP2] & features) == features) { result = 1; } else { result = 0; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Return with result: %d", result); return(result); }; /* country code */ int libipv6calc_db_wrapper_GeoIP2_wrapper_country_code_by_addr(const ipv6calc_ipaddr *ipaddrp, char *country, const size_t country_len) { int result = MMDB_INVALID_DATA_ERROR; int GeoIP2_type = 0; if (ipaddrp->proto == IPV6CALC_PROTO_IPV4) { GeoIP2_type = geoip2_db_country_v4; if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_GEOIP2] & IPV6CALC_DB_IPV4_TO_CC) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "No GeoIP2 database supporting IPv4 country available"); goto END_libipv6calc_db_wrapper; }; } else if (ipaddrp->proto == IPV6CALC_PROTO_IPV6) { GeoIP2_type = geoip2_db_country_v6; if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_GEOIP2] & IPV6CALC_DB_IPV6_TO_CC) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "No GeoIP2 database supporting IPv6 country available"); goto END_libipv6calc_db_wrapper; }; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Unsupported proto: %d", ipaddrp->proto); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_GeoIP2_open_type(GeoIP2_type); if (result != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Error opening GeoIP2 by type"); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_MMDB_country_code_by_addr(ipaddrp, country, country_len, &mmdb_cache[GeoIP2_type]); if (result != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "no match found"); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "result country=%s", country); GeoIP2_DB_USAGE_MAP_TAG(GeoIP2_type); goto END_libipv6calc_db_wrapper; // keep db open END_libipv6calc_db_wrapper: return(result); }; /* ASN */ uint32_t libipv6calc_db_wrapper_GeoIP2_wrapper_asn_by_addr(const ipv6calc_ipaddr *ipaddrp) { uint32_t result = ASNUM_AS_UNKNOWN; int GEOIP2_type = 0; if (ipaddrp->proto == IPV6CALC_PROTO_IPV4) { GEOIP2_type = geoip2_db_asn_v4; if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_GEOIP2] & IPV6CALC_DB_IPV4_TO_AS) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "No GeoIP2 database supporting IPv4 ASN"); goto END_libipv6calc_db_wrapper; }; } else if (ipaddrp->proto == IPV6CALC_PROTO_IPV6) { GEOIP2_type = geoip2_db_asn_v6; if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_GEOIP2] & IPV6CALC_DB_IPV6_TO_AS) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "No GeoIP2 database supporting IPv6 ASN"); goto END_libipv6calc_db_wrapper; }; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Unsupported proto: %d", ipaddrp->proto); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_GeoIP2_open_type(GEOIP2_type); if (result != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Error opening GeoIP2 by type"); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_MMDB_asn_by_addr(ipaddrp, &mmdb_cache[GEOIP2_type]); if (result == ASNUM_AS_UNKNOWN) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "no match found"); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "result ASN=%u", result); GeoIP2_DB_USAGE_MAP_TAG(GEOIP2_type); goto END_libipv6calc_db_wrapper; END_libipv6calc_db_wrapper: return(result); }; /* GeonameID */ uint32_t libipv6calc_db_wrapper_GeoIP2_wrapper_GeonameID_by_addr(const ipv6calc_ipaddr *ipaddrp, int *source_ptr) { uint32_t result = IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN; int GEOIP2_type = 0; if (ipaddrp->proto == IPV6CALC_PROTO_IPV4) { GEOIP2_type = geoip2_db_region_city_v4; if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_GEOIP2] & IPV6CALC_DB_IPV4_TO_GEONAMEID) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "No GeoIP2 database supporting IPv4 GeonameID"); goto END_libipv6calc_db_wrapper; }; } else if (ipaddrp->proto == IPV6CALC_PROTO_IPV6) { GEOIP2_type = geoip2_db_region_city_v6; if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_GEOIP2] & IPV6CALC_DB_IPV6_TO_GEONAMEID) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "No GeoIP2 database supporting IPv6 GeonameID"); goto END_libipv6calc_db_wrapper; }; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Unsupported proto: %d", ipaddrp->proto); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_GeoIP2_open_type(GEOIP2_type); if (result != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Error opening GeoIP2 by type"); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_MMDB_GeonameID_by_addr(ipaddrp, &mmdb_cache[GEOIP2_type], source_ptr); if (result == IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "no match found"); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "result GeonameID=%u", result); GeoIP2_DB_USAGE_MAP_TAG(GEOIP2_type); goto END_libipv6calc_db_wrapper; END_libipv6calc_db_wrapper: return(result); }; /* all information */ int libipv6calc_db_wrapper_GeoIP2_all_by_addr(const ipv6calc_ipaddr *ipaddrp, libipv6calc_db_wrapper_geolocation_record *recordp) { int result = -1; int GeoIP2_type = 0; int GeoIP2_type_asn = 0; libipv6calc_db_wrapper_geolocation_record record_asn; if (ipaddrp->proto == IPV6CALC_PROTO_IPV4) { GeoIP2_type = geoip2_db_region_city_v4; GeoIP2_type_asn = geoip2_db_asn_v4; if (GeoIP2_type == 0) { // fallback GeoIP2_type = geoip2_db_country_v4; }; } else if (ipaddrp->proto == IPV6CALC_PROTO_IPV6) { GeoIP2_type = geoip2_db_region_city_v6; GeoIP2_type_asn = geoip2_db_asn_v6; if (GeoIP2_type == 0) { // fallback GeoIP2_type = geoip2_db_country_v6; }; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Unsupported proto: %d", ipaddrp->proto); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_GeoIP2_open_type(GeoIP2_type); if (result != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Error opening GeoIP2 by type"); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_MMDB_all_by_addr(ipaddrp, recordp, &mmdb_cache[GeoIP2_type]); if (result != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "no match found"); goto END_libipv6calc_db_wrapper; }; // ASN is stored in a different database if (GeoIP2_type_asn > 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "fetch ASN information from dedicated database"); result = libipv6calc_db_wrapper_GeoIP2_open_type(GeoIP2_type_asn); if (result != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "Error opening GeoIP2 by type"); goto END_libipv6calc_db_wrapper; }; result = libipv6calc_db_wrapper_MMDB_all_by_addr(ipaddrp, &record_asn, &mmdb_cache[GeoIP2_type_asn]); if (result != MMDB_SUCCESS) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_GeoIP2, "no match found"); goto END_libipv6calc_db_wrapper; }; // copy information recordp->asn = record_asn.asn; snprintf(recordp->organization_name, IPV6CALC_DB_SIZE_ORG_NAME, "%s", record_asn.organization_name); }; END_libipv6calc_db_wrapper: return(result); }; #endif ipv6calc-4.1.0/databases/lib/libipv6calc_db_wrapper_GeoIP2.h000066400000000000000000000047261444154247200236210ustar00rootroot00000000000000/* * Project : ipv6calc * File : databases/lib/libipv6calc_db_wrapper_GeoIP2.h * Version : $Id: 690f127e48eaf4d4aa7c1d5072a62bcde913cd63 $ * Copyright : 2019-2021 by Peter Bieringer * * Information: * Header file for libipv6calc_db_wrapper_GeoIP2.c */ #include "ipv6calctypes.h" #include "libipaddr.h" #ifndef _libipv6calc_db_wrapper_GeoIP2_h #define _libipv6calc_db_wrapper_GeoIP2_h 1 // database types #define GeoIP2_DB_COUNTRY_LITE 1 #define GeoIP2_DB_CITY_LITE 2 #define GeoIP2_DB_ASN 3 #define GeoIP2_DB_COUNTRY 4 // commercial #define GeoIP2_DB_CITY 5 // commercial #define GeoIP2_DB_ISP 6 // commercial #define GeoIP2_DB_MAX GeoIP2_DB_ISP #define IPV6CALC_DB_GEOIP2_INTERNAL_FREE 0x00000001 #define IPV6CALC_DB_GEOIP2_INTERNAL_COMM 0x00000002 // features extern uint32_t wrapper_features_GeoIP2; #endif /* prototypes */ extern int libipv6calc_db_wrapper_GeoIP2_wrapper_init(void); extern int libipv6calc_db_wrapper_GeoIP2_wrapper_cleanup(void); extern void libipv6calc_db_wrapper_GeoIP2_wrapper_info(char* string, const size_t size); extern void libipv6calc_db_wrapper_GeoIP2_wrapper_print_db_info(const int level_verbose, const char *prefix_string); extern char *libipv6calc_db_wrapper_GeoIP2_wrapper_db_info_used(void); extern int libipv6calc_db_wrapper_GeoIP2_has_features(const uint32_t features); #ifdef SUPPORT_GEOIP2 #include "libipv6calc_db_wrapper_MMDB.h" extern int libipv6calc_db_wrapper_GeoIP2_wrapper_country_code_by_addr(const ipv6calc_ipaddr *ipaddrp, char *country, const size_t country_len); extern uint32_t libipv6calc_db_wrapper_GeoIP2_wrapper_asn_by_addr(const ipv6calc_ipaddr *ipaddrp); extern uint32_t libipv6calc_db_wrapper_GeoIP2_wrapper_GeonameID_by_addr(const ipv6calc_ipaddr *ipaddrp, int *source_ptr); extern int libipv6calc_db_wrapper_GeoIP2_all_by_addr(const ipv6calc_ipaddr *ipaddrp, libipv6calc_db_wrapper_geolocation_record *recordp); extern char geoip2_db_dir[PATH_MAX]; extern int geoip2_db_comm_to_free_switch_min_delta_months; extern int geoip2_db_only_type; extern int libipv6calc_db_wrapper_GeoIP2_db_avail(const unsigned int type); extern int libipv6calc_db_wrapper_GeoIP2_open_type(const unsigned int type_flag); extern const char *libipv6calc_db_wrapper_GeoIP2_dbdescription(const unsigned int type); extern char *libipv6calc_db_wrapper_GeoIP2_database_info(const unsigned int type); #endif ipv6calc-4.1.0/databases/lib/libipv6calc_db_wrapper_IP2Location.c000066400000000000000000003441261444154247200246530ustar00rootroot00000000000000/* * Project : ipv6calc * File : databases/lib/libipv6calc_db_wrapper_IP2Location.c * Copyright : 2013-2023 by Peter Bieringer * * Information: * ipv6calc IP2Location database wrapper * - decoupling databases from main binary * - optional support of dynamic library loading (based on config.h) * - only supporting API >= 8.2.0 now */ #include #include #include #include #include #include #include #include "config.h" #include "libipv6calcdebug.h" #include "libipv6calc.h" #include "libipv6calc_db_wrapper.h" #ifdef SUPPORT_IP2LOCATION #include "libipv6calc_db_wrapper_IP2Location.h" char ip2location_db_dir[PATH_MAX] = IP2LOCATION_DB; /* database files */ static const db_file_desc2 libipv6calc_db_wrapper_IP2Location_db_file_desc[] = { // sequence is important for automagic selection of the best /*****************/ /**** SAMPLES ****/ /*****************/ // SAMPLES IPv4 { IP2LOCATION_IPV4_SAMPLE_DB1, "IP-COUNTRY-SAMPLE.BIN", IP2LOCATION_DB1, IPV6CALC_DB_SC_IP2LOCATION_IPV4_COUNTRY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB2, "IP-COUNTRY-ISP-SAMPLE.BIN", IP2LOCATION_DB2, IPV6CALC_DB_SC_IP2LOCATION_IPV4_COUNTRY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB3, "IP-COUNTRY-REGION-CITY-SAMPLE.BIN", IP2LOCATION_DB3, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB4, "IP-COUNTRY-REGION-CITY-ISP-SAMPLE.BIN", IP2LOCATION_DB4, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB5, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-SAMPLE.BIN", IP2LOCATION_DB5, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB6, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP-SAMPLE.BIN", IP2LOCATION_DB6, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB7, "IP-COUNTRY-REGION-CITY-ISP-DOMAIN-SAMPLE.BIN", IP2LOCATION_DB7, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB8, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP-DOMAIN-SAMPLE.BIN", IP2LOCATION_DB8, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB9, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-SAMPLE.BIN", IP2LOCATION_DB9, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB10, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-ISP-DOMAIN-SAMPLE.BIN", IP2LOCATION_DB10, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB11, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-SAMPLE.BIN", IP2LOCATION_DB11, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB12, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-SAMPLE.BIN", IP2LOCATION_DB12, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB13, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-TIMEZONE-NETSPEED-SAMPLE.BIN", IP2LOCATION_DB13, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB14, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-SAMPLE.BIN", IP2LOCATION_DB14, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB15, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-AREACODE-SAMPLE.BIN", IP2LOCATION_DB15, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB16, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-SAMPLE.BIN", IP2LOCATION_DB16, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB17, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-TIMEZONE-NETSPEED-WEATHER-SAMPLE.BIN", IP2LOCATION_DB17, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB18, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-SAMPLE.BIN", IP2LOCATION_DB18, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB19, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP-DOMAIN-MOBILE-SAMPLE.BIN", IP2LOCATION_DB19, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB20, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-SAMPLE.BIN", IP2LOCATION_DB20, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV4_SAMPLE_DB21, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-AREACODE-ELEVATION-SAMPLE.BIN", IP2LOCATION_DB21, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE | IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV4_SAMPLE_DB22, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-SAMPLE.BIN", IP2LOCATION_DB22, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE | IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV4_SAMPLE_DB23, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP-DOMAIN-MOBILE-USAGETYPE-SAMPLE.BIN", IP2LOCATION_DB23, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE | IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV4_SAMPLE_DB24, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE-SAMPLE.BIN", IP2LOCATION_DB24, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE | IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV4_SAMPLE_DB25, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE-ADDRESSTYPE-CATEGORY-SAMPLE.BIN", IP2LOCATION_DB25, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE | IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_8_4 }, { IP2LOCATION_IPV4_SAMPLE_DB26, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE-ADDRESSTYPE-CATEGORY-DISTRICT-ASN-SAMPLE.BIN", IP2LOCATION_DB26, IPV6CALC_DB_SC_IP2LOCATION_IPV4_ASN , IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE | IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_8_6 }, // SAMPLES IPv6 { IP2LOCATION_IPV6_SAMPLE_DB1, "IPV6-COUNTRY.SAMPLE.BIN", IP2LOCATION_DB1, IPV6CALC_DB_SC_IP2LOCATION_IPV6_COUNTRY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB2, "IPV6-COUNTRY-ISP.SAMPLE.BIN", IP2LOCATION_DB2, IPV6CALC_DB_SC_IP2LOCATION_IPV6_COUNTRY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB3, "IPV6-COUNTRY-REGION-CITY.SAMPLE.BIN", IP2LOCATION_DB3, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB4, "IPV6-COUNTRY-REGION-CITY-ISP.SAMPLE.BIN", IP2LOCATION_DB4, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB5, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE.SAMPLE.BIN", IP2LOCATION_DB5, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB6, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP.SAMPLE.BIN", IP2LOCATION_DB6, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB7, "IPV6-COUNTRY-REGION-CITY-ISP-DOMAIN.SAMPLE.BIN", IP2LOCATION_DB7, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB8, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP-DOMAIN.SAMPLE.BIN", IP2LOCATION_DB8, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB9, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE.SAMPLE.BIN", IP2LOCATION_DB9, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB10, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-ISP-DOMAIN.SAMPLE.BIN", IP2LOCATION_DB10, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB11, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE.SAMPLE.BIN", IP2LOCATION_DB11, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB12, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN.SAMPLE.BIN", IP2LOCATION_DB12, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB13, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-TIMEZONE-NETSPEED.SAMPLE.BIN", IP2LOCATION_DB13, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB14, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED.SAMPLE.BIN", IP2LOCATION_DB14, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB15, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-AREACODE.SAMPLE.BIN", IP2LOCATION_DB15, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB16, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE.SAMPLE.BIN", IP2LOCATION_DB16, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB17, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-TIMEZONE-NETSPEED-WEATHER.SAMPLE.BIN", IP2LOCATION_DB17, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB18, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER.SAMPLE.BIN", IP2LOCATION_DB18, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB19, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP-DOMAIN-MOBILE.SAMPLE.BIN", IP2LOCATION_DB19, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB20, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE.SAMPLE.BIN", IP2LOCATION_DB20, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE }, { IP2LOCATION_IPV6_SAMPLE_DB21, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-AREACODE-ELEVATION.SAMPLE.BIN", IP2LOCATION_DB21, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE | IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV6_SAMPLE_DB22, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION.SAMPLE.BIN", IP2LOCATION_DB22, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE | IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV6_SAMPLE_DB23, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP-DOMAIN-MOBILE-USAGETYPE.SAMPLE.BIN", IP2LOCATION_DB23, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE | IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV6_SAMPLE_DB24, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE.SAMPLE.BIN", IP2LOCATION_DB24, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE | IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV6_SAMPLE_DB25, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE-ADDRESSTYPE-CATEGORY.SAMPLE.BIN", IP2LOCATION_DB25, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE | IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_8_4 }, { IP2LOCATION_IPV6_SAMPLE_DB26, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE-ADDRESSTYPE-CATEGORY-DISTRICT-ASN.SAMPLE.BIN", IP2LOCATION_DB26, IPV6CALC_DB_SC_IP2LOCATION_IPV6_ASN , IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE | IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_8_6 }, /**************/ /**** LITE ****/ /**************/ // LITE IPv4 { IP2LOCATION_DB_IP_COUNTRY_LITE, "IP2LOCATION-LITE-DB1.BIN" , IP2LOCATION_DB1, IPV6CALC_DB_SC_IP2LOCATION_IPV4_COUNTRY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE }, { IP2LOCATION_DB_IP_COUNTRY_REG_CIT_LITE, "IP2LOCATION-LITE-DB3.BIN", IP2LOCATION_DB3, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE }, { IP2LOCATION_DB_IP_COUNTRY_REG_CIT_LL_LITE, "IP2LOCATION-LITE-DB5.BIN", IP2LOCATION_DB5, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE }, { IP2LOCATION_DB_IP_COUNTRY_REG_CIT_LL_ZIP_LITE, "IP2LOCATION-LITE-DB9.BIN", IP2LOCATION_DB9, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE }, { IP2LOCATION_DB_IP_COUNTRY_REG_CIT_LL_ZIP_TZ_LITE, "IP2LOCATION-LITE-DB11.BIN", IP2LOCATION_DB11, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE }, // LITE IPv6 (having also IPv4 included) { IP2LOCATION_DB_IPV6_COUNTRY_LITE, "IP2LOCATION-LITE-DB1.IPV6.BIN", IP2LOCATION_DB1, IPV6CALC_DB_SC_IP2LOCATION_IPV6_COUNTRY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_COUNTRY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE }, { IP2LOCATION_DB_IPV6_COUNTRY_REG_CIT_LITE, "IP2LOCATION-LITE-DB3.IPV6.BIN", IP2LOCATION_DB2, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE }, { IP2LOCATION_DB_IPV6_COUNTRY_REG_CIT_LL_LITE, "IP2LOCATION-LITE-DB5.IPV6.BIN", IP2LOCATION_DB5, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE }, { IP2LOCATION_DB_IPV6_COUNTRY_REG_CIT_LL_ZIP_LITE, "IP2LOCATION-LITE-DB9.IPV6.BIN", IP2LOCATION_DB9, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE }, { IP2LOCATION_DB_IPV6_COUNTRY_REG_CIT_LL_ZIP_TZ_LITE, "IP2LOCATION-LITE-DB11.IPV6.BIN", IP2LOCATION_DB11, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE }, /**************/ /* commercial */ /**************/ // Commercial IPv4 { IP2LOCATION_IPV4_DB1, "IP-COUNTRY.BIN", IP2LOCATION_DB1, IPV6CALC_DB_SC_IP2LOCATION_IPV4_COUNTRY, 0 }, { IP2LOCATION_IPV4_DB2, "IP-COUNTRY-ISP.BIN", IP2LOCATION_DB2, IPV6CALC_DB_SC_IP2LOCATION_IPV4_COUNTRY, 0 }, { IP2LOCATION_IPV4_DB3, "IP-COUNTRY-REGION-CITY.BIN", IP2LOCATION_DB3, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB4, "IP-COUNTRY-REGION-CITY-ISP.BIN", IP2LOCATION_DB4, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB5, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE.BIN", IP2LOCATION_DB5, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB6, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP.BIN", IP2LOCATION_DB6, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB7, "IP-COUNTRY-REGION-CITY-ISP-DOMAIN.BIN", IP2LOCATION_DB7, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB8, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP-DOMAIN.BIN", IP2LOCATION_DB8, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB9, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE.BIN", IP2LOCATION_DB9, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB10, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-ISP-DOMAIN.BIN", IP2LOCATION_DB10, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB11, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE.BIN", IP2LOCATION_DB11, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB12, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN.BIN", IP2LOCATION_DB12, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB13, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-TIMEZONE-NETSPEED.BIN", IP2LOCATION_DB13, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB14, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED.BIN", IP2LOCATION_DB14, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB15, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-AREACODE.BIN", IP2LOCATION_DB15, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB16, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE.BIN", IP2LOCATION_DB16, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB17, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-TIMEZONE-NETSPEED-WEATHER.BIN", IP2LOCATION_DB17, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB18, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER.BIN", IP2LOCATION_DB18, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB19, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP-DOMAIN-MOBILE.BIN", IP2LOCATION_DB19, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB20, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE.BIN", IP2LOCATION_DB20, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV4_DB21, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-AREACODE-ELEVATION.BIN", IP2LOCATION_DB21, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV4_DB22, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION.BIN", IP2LOCATION_DB22, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV4_DB23, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP-DOMAIN-MOBILE-USAGETYPE.BIN", IP2LOCATION_DB23, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV4_DB24, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE.BIN", IP2LOCATION_DB24, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV4_DB25, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE-ADDRESSTYPE-CATEGORY.BIN", IP2LOCATION_DB25, IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_8_4 }, { IP2LOCATION_IPV4_DB26, "IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE-ADDRESSTYPE-CATEGORY-DISTRICT-ASN.BIN", IP2LOCATION_DB26, IPV6CALC_DB_SC_IP2LOCATION_IPV4_ASN , IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_8_6 }, // Commercial IPv6 (having also IPv4 included) { IP2LOCATION_IPV6_DB1, "IPV6-COUNTRY.BIN", IP2LOCATION_DB1, IPV6CALC_DB_SC_IP2LOCATION_IPV6_COUNTRY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_COUNTRY, 0 }, { IP2LOCATION_IPV6_DB2, "IPV6-COUNTRY-ISP.BIN", IP2LOCATION_DB2, IPV6CALC_DB_SC_IP2LOCATION_IPV6_COUNTRY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_COUNTRY, 0 }, { IP2LOCATION_IPV6_DB3, "IPV6-COUNTRY-REGION-CITY.BIN", IP2LOCATION_DB3, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB4, "IPV6-COUNTRY-REGION-CITY-ISP.BIN", IP2LOCATION_DB4, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB5, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE.BIN", IP2LOCATION_DB5, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB6, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP.BIN", IP2LOCATION_DB6, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB7, "IPV6-COUNTRY-REGION-CITY-ISP-DOMAIN.BIN", IP2LOCATION_DB7, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB8, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP-DOMAIN.BIN", IP2LOCATION_DB8, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB9, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE.BIN", IP2LOCATION_DB9, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB10, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-ISP-DOMAIN.BIN", IP2LOCATION_DB10, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB11, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE.BIN", IP2LOCATION_DB11, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB12, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN.BIN", IP2LOCATION_DB12, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB13, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-TIMEZONE-NETSPEED.BIN", IP2LOCATION_DB13, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB14, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED.BIN", IP2LOCATION_DB14, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB15, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-AREACODE.BIN", IP2LOCATION_DB15, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB16, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE.BIN", IP2LOCATION_DB16, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB17, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-TIMEZONE-NETSPEED-WEATHER.BIN", IP2LOCATION_DB17, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB18, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER.BIN", IP2LOCATION_DB18, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB19, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP-DOMAIN-MOBILE.BIN", IP2LOCATION_DB19, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB20, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE.BIN", IP2LOCATION_DB20, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, 0 }, { IP2LOCATION_IPV6_DB21, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-AREACODE-ELEVATION.BIN", IP2LOCATION_DB21, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV6_DB22, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION.BIN", IP2LOCATION_DB22, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV6_DB23, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ISP-DOMAIN-MOBILE-USAGETYPE.BIN", IP2LOCATION_DB23, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV6_DB24, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE.BIN", IP2LOCATION_DB24, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 }, { IP2LOCATION_IPV6_DB25, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE-ADDRESSTYPE-CATEGORY.BIN", IP2LOCATION_DB25, IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY | IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY, IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_8_4 }, { IP2LOCATION_IPV6_DB26, "IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE-ADDRESSTYPE-CATEGORY-DISTRICT-ASN.BIN", IP2LOCATION_DB26, IPV6CALC_DB_SC_IP2LOCATION_IPV6_ASN | IPV6CALC_DB_SC_IP2LOCATION_IPV4_ASN , IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_8_6 }, /*****************/ /**** SPECIAL ****/ /*****************/ { IP2LOCATION_DB_IPV6_COUNTRY_FREE, "IPV6-COUNTRY-FREE.BIN", IP2LOCATION_DB1, IPV6CALC_DB_SC_IP2LOCATION_IPV6_COUNTRY, IPV6CALC_DB_IP2LOCATION_INTERNAL_FREE }, }; /* text representations */ static const s_type libipv6calc_db_wrapper_IP2Location_IPv6_support[] = { { IP2LOCATION_IPV6_SUPPORT_UNKNOWN, "unknown" }, { IP2LOCATION_IPV6_SUPPORT_COMPAT, "compat" }, { IP2LOCATION_IPV6_SUPPORT_FULL, "full" }, { IP2LOCATION_IPV6_SUPPORT_NOTEXISTS, "not-exists" }, }; /* IP2Location Usage Type explanation see also: http://www.ip2location.com/databases/db24-ip-country-region-city-latitude-longitude-zipcode-timezone-isp-domain-netspeed-areacode-weather-mobile-elevation-usagetype */ static const s_type2 libipv6calc_db_wrapper_IP2Location_UsageType[] = { { 0, "Commercial" , "COM" }, { 1, "Organization" , "ORG" }, { 2, "Government" , "GOV" }, { 3, "Military" , "MIL" }, { 4, "University/College/School" , "EDU" }, { 5, "Library" , "LIB" }, { 6, "Content Delivery Network" , "CDN" }, { 7, "Fixed Line ISP" , "ISP" }, { 8, "Mobile ISP" , "MOB" }, { 9, "Data Center/Web Hosting/Transit", "DCH" }, { 10, "Search Engine Spider" , "SES" }, { 11, "Reserved" , "RSV" } }; /* * API_VERSION is defined as a bareword in IP2Location.h, * we need this trick to stringify it. Blah. */ #define makestr(x) #x #define xmakestr(x) makestr(x) #define IP2LOCATION_API_VERSION xmakestr(API_VERSION) #ifdef SUPPORT_IP2LOCATION_DYN char ip2location_lib_file[PATH_MAX] = IP2LOCATION_DYN_LIB; static const char* wrapper_ip2location_info = "dyn-load"; static int wrapper_ip2location_ipv6_support = IP2LOCATION_IPV6_SUPPORT_UNKNOWN; // static int wrapper_ip2location_support = IP2LOCATION_SUPPORT_UNKNOWN; currently not used /* define status and dynamic load functions */ static int dl_status_IP2Location_open = IPV6CALC_DL_STATUS_UNKNOWN; typedef IP2Location *(*dl_IP2Location_open_t)(char *db); static union { dl_IP2Location_open_t func; void * obj; } dl_IP2Location_open; static int dl_status_IP2Location_close = IPV6CALC_DL_STATUS_UNKNOWN; typedef int (*dl_IP2Location_close_t)(IP2Location *loc); static union { dl_IP2Location_close_t func; void * obj; } dl_IP2Location_close; static int dl_status_IP2Location_get_country_short = IPV6CALC_DL_STATUS_UNKNOWN; typedef IP2LocationRecord *(*dl_IP2Location_get_country_short_t)(IP2Location *loc, char *ip); static union { dl_IP2Location_get_country_short_t func; void * obj; } dl_IP2Location_get_country_short; static int dl_status_IP2Location_get_country_long = IPV6CALC_DL_STATUS_UNKNOWN; typedef IP2LocationRecord *(*dl_IP2Location_get_country_long_t)(IP2Location *loc, char *ip); static union { dl_IP2Location_get_country_long_t func; void * obj; } dl_IP2Location_get_country_long; #if API_VERSION_NUMERIC >= 80600 static int dl_status_IP2Location_get_asn = IPV6CALC_DL_STATUS_UNKNOWN; typedef IP2LocationRecord *(*dl_IP2Location_get_asn_t)(IP2Location *loc, char *ip); static union { dl_IP2Location_get_asn_t func; void * obj; } dl_IP2Location_get_asn; #endif // API_VERSION_NUMERIC >= 80600 static int dl_status_IP2Location_get_all = IPV6CALC_DL_STATUS_UNKNOWN; typedef IP2LocationRecord *(*dl_IP2Location_get_all_t)(IP2Location *loc, char *ip); static union { dl_IP2Location_get_all_t func; void * obj; } dl_IP2Location_get_all; static int dl_status_IP2Location_free_record = IPV6CALC_DL_STATUS_UNKNOWN; typedef IP2LocationRecord *(*dl_IP2Location_free_record_t)(IP2LocationRecord *record); static union { dl_IP2Location_free_record_t func; void * obj; } dl_IP2Location_free_record; static int dl_status_IP2Location_api_version_num = IPV6CALC_DL_STATUS_UNKNOWN; typedef unsigned long int (*dl_IP2Location_api_version_num_t)(void); static union { dl_IP2Location_api_version_num_t func; void * obj; } dl_IP2Location_api_version_num; static int dl_status_IP2Location_api_version_string = IPV6CALC_DL_STATUS_UNKNOWN; typedef char *(*dl_IP2Location_api_version_string_t)(void); static union { dl_IP2Location_api_version_string_t func; void * obj; } dl_IP2Location_api_version_string; static int dl_status_IP2Location_lib_version_string = IPV6CALC_DL_STATUS_UNKNOWN; typedef char *(*dl_IP2Location_lib_version_string_t)(void); static union { dl_IP2Location_lib_version_string_t func; void * obj; } dl_IP2Location_lib_version_string; #else // SUPPORT_IP2LOCATION_DYN static const char* wrapper_ip2location_info = "built-in"; #ifdef SUPPORT_IP2LOCATION_V6 static int wrapper_ip2location_ipv6_support = IP2LOCATION_IPV6_SUPPORT_FULL; #else static int wrapper_ip2location_ipv6_support = IP2LOCATION_IPV6_SUPPORT_UNKNOWN; #endif #endif // SUPPORT_IP2LOCATION_DYN // DB used for resolution after automatic election, which is currently done by checking for DB files and the sequence in the header file static int ip2location_db_country_v4 = 0; static int ip2location_db_country_v6 = 0; static int ip2location_db_region_city_v4 = 0; static int ip2location_db_region_city_v6 = 0; static int ip2location_db_asn_v4 = 0; static int ip2location_db_asn_v6 = 0; typedef struct { unsigned int num; int dbtype; int dbym; } s_ipv6calc_ip2location_db; #define IP2L_SAMPLE 0 #define IP2L_LITE 1 #define IP2L_COMM 2 #define IP2L_MAX 3 static s_ipv6calc_ip2location_db ip2location_db_country_v4_best[IP2L_MAX]; static s_ipv6calc_ip2location_db ip2location_db_country_v6_best[IP2L_MAX]; static s_ipv6calc_ip2location_db ip2location_db_region_city_v4_best[IP2L_MAX]; static s_ipv6calc_ip2location_db ip2location_db_region_city_v6_best[IP2L_MAX]; static s_ipv6calc_ip2location_db ip2location_db_asn_v4_best[IP2L_MAX]; static s_ipv6calc_ip2location_db ip2location_db_asn_v6_best[IP2L_MAX]; static int ip2location_db_country_sample_v4_lite_autoswitch = 0; static int ip2location_db_country_sample_v6_lite_autoswitch = 0; static int ip2location_db_region_city_sample_v4_lite_autoswitch = 0; static int ip2location_db_region_city_sample_v6_lite_autoswitch = 0; static int ip2location_db_asn_sample_v4_lite_autoswitch = 0; static int ip2location_db_asn_sample_v6_lite_autoswitch = 0; // select automagically SAMPLE databases in case available and matching and not older than given months int ip2location_db_lite_to_sample_autoswitch_max_delta_months = 12; // select LITE database if COMM is older than given months int ip2location_db_comm_to_lite_switch_min_delta_months = 12; // select better database of same product (COMM/LITE/SAMPLE) only if not older than given months int ip2location_db_better_max_delta_months = 1; // select only a specific IP2Location db type int ip2location_db_only_type = 0; // allow soft links (usually skipped) int ip2location_db_allow_softlinks = 0; #define IP2L_PACK_YM(loc) (loc->database_year * 12 + (loc->database_month -1)) #define IP2L_UNPACK_YM(dbym) ((dbym > 0) ? ((dbym % 12) + 1 + ((dbym / 12) + 2000) * 100) : 0) static void *dl_IP2Location_handle = NULL; char ***libipv6calc_db_wrapper_IP2LocationDBFileName_ptr = NULL; const char **libipv6calc_db_wrapper_IP2LocationDBDescription = NULL; /* database usage map */ #define IP2LOCATION_DB_MAX_BLOCKS_32 32 // 0-1023 static uint32_t ip2location_db_usage_map[IP2LOCATION_DB_MAX_BLOCKS_32]; #define IP2LOCATION_DB_USAGE_MAP_TAG(db) if (db < (32 * IP2LOCATION_DB_MAX_BLOCKS_32)) { \ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Tag usage for db: %d", db); \ ip2location_db_usage_map[db / 32] |= 1 << (db % 32); \ } else { \ fprintf(stderr, "FIXME: unsupported db value (exceed limit): %d (%d)\n", db, 32 * IP2LOCATION_DB_MAX_BLOCKS_32 - 1); \ exit(1); \ }; char ip2location_db_usage_string[IPV6CALC_STRING_MAX] = ""; // local cache static IP2Location *db_ptr_cache[MAXENTRIES_ARRAY(libipv6calc_db_wrapper_IP2Location_db_file_desc)]; // local prototyping static char *libipv6calc_db_wrapper_IP2Location_dbfilename(const unsigned int type); static int libipv6calc_db_wrapper_IP2Location_db_compatible(const unsigned int type); /* * function initialise the IP2Location wrapper * * in : (nothing) * out: 0=ok, 1=error */ int libipv6calc_db_wrapper_IP2Location_wrapper_init(void) { int i, dbym, product, dbtype, result; IP2Location *loc; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called"); #ifdef SUPPORT_IP2LOCATION_DYN char *error; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Load library: %s", ip2location_lib_file); dlerror(); /* Clear any existing error */ dl_IP2Location_handle = dlopen(ip2location_lib_file, RTLD_NOW | RTLD_LOCAL); if (dl_IP2Location_handle == NULL) { if ((strcmp(ip2location_lib_file, IP2LOCATION_DYN_LIB) != 0) || (ipv6calc_verbose > 0)) { NONQUIETPRINT_WA("IP2Location dynamic library load failed (disable support): %s", dlerror()); }; return(1); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Loaded library successful: %s", ip2location_lib_file); /* check for IP2Location_ipv6_to_no (API < 7.0.0) */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Call dlsym: %s", "IP2Location_new_record"); dlerror(); /* Clear any existing error */ void *IP2Location_ipv6_to_no; *(void **) (&IP2Location_ipv6_to_no) = dlsym(dl_IP2Location_handle, "IP2Location_ipv6_to_no"); if ((error = dlerror()) != NULL) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Error on calling dlsym: %s (API >= 7.0.0): %s", "IP2Location_ipv6_to_no", error); } else { ERRORPRINT_NA("Called dlsym successful: (but API < 7.0.0 is no longer supported)"); return(1); }; /* check for IP2Location_get_usagetype (library < 6.0.0) */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Call dlsym: %s", "IP2Location_get_usagetype"); dlerror(); /* Clear any existing error */ void *IP2Location_get_usagetype; *(void **) (&IP2Location_get_usagetype) = dlsym(dl_IP2Location_handle, "IP2Location_get_usagetype"); if ((error = dlerror()) != NULL) { ERRORPRINT_WA("Error on calling dlsym: %s (library < 6.0.0 which is no longer supported): %s", "IP2Location_get_usagetype", error); return(1); } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called dlsym successful: %s (library >= 6.0.0)", "IP2Location_get_usagetype"); }; /* check for IP2Location_api_version_num (mandatory since ipv6calc >= 3.0.0) */ const char *dl_symbol2 = "IP2Location_api_version_num"; if (dl_status_IP2Location_api_version_num == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Call dlsym: %s", dl_symbol2); dlerror(); /* Clear any existing error */ *(void **) (&dl_IP2Location_api_version_num.obj) = dlsym(dl_IP2Location_handle, dl_symbol2); if ((error = dlerror()) != NULL) { dl_status_IP2Location_api_version_num = IPV6CALC_DL_STATUS_ERROR; } else { dl_status_IP2Location_api_version_num = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called dlsym successful: %s", dl_symbol2); }; } else if (dl_status_IP2Location_api_version_num == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already failed: %s", dl_symbol2); } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already successful: %s", dl_symbol2); }; /* check version */ if (dl_IP2Location_api_version_num.func() < 80200) { ERRORPRINT_WA("IP2Location library is no longer supported with API version: %s", "< 8.2.0"); return(1); }; #else // SUPPORT_IP2LOCATION_DYN #endif // SUPPORT_IP2LOCATION_DYN DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Check for standard IP2Location databases"); /* check available databases for resolution */ for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_IP2Location_db_file_desc); i++) { // add features to implemented wrapper_features_by_source_implemented[IPV6CALC_DB_SOURCE_IP2LOCATION] |= libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "IP2Location database test for availability: %s", libipv6calc_db_wrapper_IP2Location_db_file_desc[i].filename); result = libipv6calc_db_wrapper_IP2Location_db_avail(libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number); if ((result != 1) && (result != 3)) { // db not available continue; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "IP2Location database available: %s", libipv6calc_db_wrapper_IP2Location_db_file_desc[i].description); if (libipv6calc_db_wrapper_IP2Location_db_compatible(libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number) != 0) { // incompatible database DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "IP2Location database incompatible: %s", libipv6calc_db_wrapper_IP2Location_db_file_desc[i].description); continue; }; loc = libipv6calc_db_wrapper_IP2Location_open_type(libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number); dbym = IP2L_PACK_YM(loc); dbtype = loc->database_type; if (2000 + loc->database_year < IP2LOCATION_DB_YEAR_MIN) { // really too old DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "IP2Location database too old: %s y=%d", libipv6calc_db_wrapper_IP2Location_db_file_desc[i].description, 2000 + loc->database_year); continue; }; if ((ip2location_db_only_type > 0) && (ip2location_db_only_type != (int) libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number)) { // not selected continue; }; if ((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].internal & IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE) != 0) { product = IP2L_SAMPLE; } else if ((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].internal & IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE) != 0) { product = IP2L_LITE; } else { product = IP2L_COMM; }; #define IP2L_DB_SELECT_BETTER(best) \ if ( \ (best.num == 0) \ || ( \ (best.dbym > 0) \ && ((best.dbym - dbym) <= ip2location_db_better_max_delta_months) \ ) \ ) { \ best.num = libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number; \ best.dbym = dbym; \ best.dbtype = dbtype; \ }; // note: databases are listed in sequence "less data" before "more data" if ((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features & IPV6CALC_DB_IPV4_TO_CC) != 0) { IP2L_DB_SELECT_BETTER(ip2location_db_country_v4_best[product]) }; if ((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features & IPV6CALC_DB_IPV6_TO_CC) != 0) { IP2L_DB_SELECT_BETTER(ip2location_db_country_v6_best[product]) }; if ((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features & (IPV6CALC_DB_IPV4_TO_REGION | IPV6CALC_DB_IPV4_TO_CITY)) != 0) { IP2L_DB_SELECT_BETTER(ip2location_db_region_city_v4_best[product]) }; if ((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features & (IPV6CALC_DB_IPV6_TO_REGION | IPV6CALC_DB_IPV6_TO_CITY)) != 0) { IP2L_DB_SELECT_BETTER(ip2location_db_region_city_v6_best[product]) }; if ((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features & (IPV6CALC_DB_IPV4_TO_AS)) != 0) { IP2L_DB_SELECT_BETTER(ip2location_db_asn_v4_best[product]) }; if ((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features & (IPV6CALC_DB_IPV6_TO_AS)) != 0) { IP2L_DB_SELECT_BETTER(ip2location_db_asn_v6_best[product]) }; wrapper_features_by_source[IPV6CALC_DB_SOURCE_IP2LOCATION] |= libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features; }; // select databases for lite->sample autoswitch if (ip2location_db_lite_to_sample_autoswitch_max_delta_months > 0) { // select best sample db for autoswitch lite->sample #define SELECT_LITE_SAMPLE_AUTOSWITCH(sample, lite, autoswitch) \ if ((sample.num > 0) && (lite.num > 0)) { \ if (sample.dbtype > lite.dbtype) { \ if (lite.dbym - sample.dbym <= ip2location_db_lite_to_sample_autoswitch_max_delta_months) { \ autoswitch = sample.num; \ }; \ }; \ }; SELECT_LITE_SAMPLE_AUTOSWITCH(ip2location_db_country_v4_best[IP2L_SAMPLE], ip2location_db_country_v4_best[IP2L_LITE], ip2location_db_country_sample_v4_lite_autoswitch) SELECT_LITE_SAMPLE_AUTOSWITCH(ip2location_db_country_v6_best[IP2L_SAMPLE], ip2location_db_country_v6_best[IP2L_LITE], ip2location_db_country_sample_v6_lite_autoswitch) SELECT_LITE_SAMPLE_AUTOSWITCH(ip2location_db_region_city_v4_best[IP2L_SAMPLE], ip2location_db_region_city_v4_best[IP2L_LITE], ip2location_db_region_city_sample_v4_lite_autoswitch) SELECT_LITE_SAMPLE_AUTOSWITCH(ip2location_db_region_city_v6_best[IP2L_SAMPLE], ip2location_db_region_city_v6_best[IP2L_LITE], ip2location_db_region_city_sample_v6_lite_autoswitch) SELECT_LITE_SAMPLE_AUTOSWITCH(ip2location_db_asn_v4_best[IP2L_SAMPLE], ip2location_db_asn_v4_best[IP2L_LITE], ip2location_db_asn_sample_v4_lite_autoswitch) SELECT_LITE_SAMPLE_AUTOSWITCH(ip2location_db_asn_v6_best[IP2L_SAMPLE], ip2location_db_asn_v6_best[IP2L_LITE], ip2location_db_asn_sample_v6_lite_autoswitch) }; // select lite instead of comm, if comm is outdated and lite available if (ip2location_db_comm_to_lite_switch_min_delta_months > 0) { #define SELECT_LITE_INSTEAD_OF_COMM(lite, comm, final) \ if ((lite.num > 0) && (comm.num > 0)) { \ if (lite.dbym - comm.dbym > ip2location_db_comm_to_lite_switch_min_delta_months) { \ final = lite.num; \ }; \ }; SELECT_LITE_INSTEAD_OF_COMM(ip2location_db_country_v4_best[IP2L_LITE], ip2location_db_country_v4_best[IP2L_COMM], ip2location_db_country_v4) SELECT_LITE_INSTEAD_OF_COMM(ip2location_db_country_v6_best[IP2L_LITE], ip2location_db_country_v6_best[IP2L_COMM], ip2location_db_country_v6) SELECT_LITE_INSTEAD_OF_COMM(ip2location_db_region_city_v4_best[IP2L_LITE], ip2location_db_region_city_v4_best[IP2L_COMM], ip2location_db_region_city_v4) SELECT_LITE_INSTEAD_OF_COMM(ip2location_db_region_city_v6_best[IP2L_LITE], ip2location_db_region_city_v6_best[IP2L_COMM], ip2location_db_region_city_v6) SELECT_LITE_INSTEAD_OF_COMM(ip2location_db_asn_v4_best[IP2L_LITE], ip2location_db_asn_v4_best[IP2L_COMM], ip2location_db_asn_v4) SELECT_LITE_INSTEAD_OF_COMM(ip2location_db_asn_v6_best[IP2L_LITE], ip2location_db_asn_v6_best[IP2L_COMM], ip2location_db_asn_v6) }; #define FILL_EMPTY(product, final) \ if ((product.num > 0) && (final == 0)) { \ final = product.num; \ }; // fill empty ones with comm FILL_EMPTY(ip2location_db_country_v4_best[IP2L_COMM], ip2location_db_country_v4) FILL_EMPTY(ip2location_db_country_v6_best[IP2L_COMM], ip2location_db_country_v6) FILL_EMPTY(ip2location_db_region_city_v4_best[IP2L_COMM], ip2location_db_region_city_v4) FILL_EMPTY(ip2location_db_region_city_v6_best[IP2L_COMM], ip2location_db_region_city_v6) FILL_EMPTY(ip2location_db_asn_v4_best[IP2L_COMM], ip2location_db_asn_v4) FILL_EMPTY(ip2location_db_asn_v6_best[IP2L_COMM], ip2location_db_asn_v6) // fill empty ones with lite FILL_EMPTY(ip2location_db_country_v4_best[IP2L_LITE], ip2location_db_country_v4) FILL_EMPTY(ip2location_db_country_v6_best[IP2L_LITE], ip2location_db_country_v6) FILL_EMPTY(ip2location_db_region_city_v4_best[IP2L_LITE], ip2location_db_region_city_v4) FILL_EMPTY(ip2location_db_region_city_v6_best[IP2L_LITE], ip2location_db_region_city_v6) FILL_EMPTY(ip2location_db_asn_v4_best[IP2L_LITE], ip2location_db_asn_v4) FILL_EMPTY(ip2location_db_asn_v6_best[IP2L_LITE], ip2location_db_asn_v6) // fill empty ones with sample FILL_EMPTY(ip2location_db_country_v4_best[IP2L_SAMPLE], ip2location_db_country_v4) FILL_EMPTY(ip2location_db_country_v6_best[IP2L_SAMPLE], ip2location_db_country_v6) FILL_EMPTY(ip2location_db_region_city_v4_best[IP2L_SAMPLE], ip2location_db_region_city_v4) FILL_EMPTY(ip2location_db_region_city_v6_best[IP2L_SAMPLE], ip2location_db_region_city_v6) FILL_EMPTY(ip2location_db_asn_v4_best[IP2L_SAMPLE], ip2location_db_asn_v4) FILL_EMPTY(ip2location_db_asn_v6_best[IP2L_SAMPLE], ip2location_db_asn_v6) #ifdef SUPPORT_IP2LOCATION_DYN // nothing to set for the moment #else //IP2Location *loc; IP2LocationRecord *record; if (ip2location_db_country_v4 > 0) { loc = libipv6calc_db_wrapper_IP2Location_open_type(ip2location_db_country_v4); if (loc != NULL) { // block libraries < 6.0.0 in case compiled with >= 6.0.0 record = IP2Location_get_usagetype(loc, "127.0.0.1"); if (record != NULL) { // dummy libipv6calc_db_wrapper_IP2Location_free_record(record); }; }; }; if (ip2location_db_country_v6 > 0) { loc = libipv6calc_db_wrapper_IP2Location_open_type(ip2location_db_country_v6); if (loc != NULL) { // block libraries < 6.0.0 in case compiled with >= 6.0.0 record = IP2Location_get_usagetype(loc, "::1"); if (record != NULL) { // dummy libipv6calc_db_wrapper_IP2Location_free_record(record); }; }; }; #endif /* close handles which are not necessary further on */ for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_IP2Location_db_file_desc); i++) { if (db_ptr_cache[i] != NULL) { if ( (libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number == ip2location_db_country_v4_best[IP2L_LITE].num) || (libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number == ip2location_db_country_v4_best[IP2L_COMM].num) || (libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number == ip2location_db_country_v4_best[IP2L_SAMPLE].num) || (libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number == ip2location_db_country_v6_best[IP2L_LITE].num) || (libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number == ip2location_db_country_v6_best[IP2L_COMM].num) || (libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number == ip2location_db_country_v6_best[IP2L_SAMPLE].num) ) { // database is in use continue; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Close further unused IP2Location: type=%d desc='%s'", libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].description); libipv6calc_db_wrapper_IP2Location_close(db_ptr_cache[i]); }; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Version of linked library: %s / IPv6 support: %s / custom directory: %s", libipv6calc_db_wrapper_IP2Location_lib_version(), libipv6calc_db_wrapper_IP2Location_IPv6_support[wrapper_ip2location_ipv6_support].token, ip2location_db_dir); wrapper_features |= wrapper_features_by_source[IPV6CALC_DB_SOURCE_IP2LOCATION]; return 0; }; /* * wrapper: IP2Location_close */ int libipv6calc_db_wrapper_IP2Location_close(IP2Location *loc) { int i; int result = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called: %s", wrapper_ip2location_info); if (loc == NULL) { return(0); }; #ifdef SUPPORT_IP2LOCATION_DYN const char *dl_symbol = "IP2Location_close"; char *error; if (dl_IP2Location_handle == NULL) { fprintf(stderr, "dl_IP2Location handle not defined\n"); goto END_libipv6calc_db_wrapper; }; if (dl_status_IP2Location_close == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_IP2Location_close.obj) = dlsym(dl_IP2Location_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_IP2Location_close = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_IP2Location_close = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_IP2Location_close == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ result = (*dl_IP2Location_close.func)(loc); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); }; #else result = IP2Location_close(loc); #endif goto END_libipv6calc_db_wrapper; // dummy END_libipv6calc_db_wrapper: /* cleanup cache entry */ for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_IP2Location_db_file_desc); i++) { if (db_ptr_cache[i] == loc) { db_ptr_cache[i] = NULL; }; }; return(result); }; /* * function info of IP2Location wrapper * * in : ptr and size of string to be filled * out: modified string; */ void libipv6calc_db_wrapper_IP2Location_wrapper_info(char* string, const size_t size) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called"); #ifdef SUPPORT_IP2LOCATION snprintf(string, size, "IP2Location database support: Country4=%d Country6=%d ASN4=%d ASN6=%d City4=%d City6=%d" , (wrapper_features_by_source[IPV6CALC_DB_SOURCE_IP2LOCATION] & IPV6CALC_DB_IPV4_TO_CC) ? 1 : 0 , (wrapper_features_by_source[IPV6CALC_DB_SOURCE_IP2LOCATION] & IPV6CALC_DB_IPV6_TO_CC) ? 1 : 0 , (wrapper_features_by_source[IPV6CALC_DB_SOURCE_IP2LOCATION] & IPV6CALC_DB_IPV4_TO_AS) ? 1 : 0 , (wrapper_features_by_source[IPV6CALC_DB_SOURCE_IP2LOCATION] & IPV6CALC_DB_IPV6_TO_AS) ? 1 : 0 , (wrapper_features_by_source[IPV6CALC_DB_SOURCE_IP2LOCATION] & IPV6CALC_DB_IPV4_TO_CITY) ? 1 : 0 , (wrapper_features_by_source[IPV6CALC_DB_SOURCE_IP2LOCATION] & IPV6CALC_DB_IPV6_TO_CITY) ? 1 : 0 ); #else snprintf(string, size, "No IP2Location support built-in"); #endif DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Finished"); return; }; /* * function print database info of IP2Location wrapper * * in : (void) * out: (void) */ void libipv6calc_db_wrapper_IP2Location_wrapper_print_db_info(const int level_verbose, const char *prefix_string) { IP2Location *loc; int i, type, count = 0, r; const char *prefix = "\0"; if (prefix_string != NULL) { prefix = prefix_string; }; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called"); IPV6CALC_DB_FEATURE_INFO(prefix, IPV6CALC_DB_SOURCE_IP2LOCATION) #ifdef SUPPORT_IP2LOCATION fprintf(stderr, "%sIP2Location: info of available databases in directory: %s\n", prefix, ip2location_db_dir); fprintf(stderr, "%sIP2Location: Copyright (c) IP2Location All Rights Reserved\n", prefix); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_IP2Location_db_file_desc); i++) { type = libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number; #ifdef SUPPORT_IP2LOCATION_DYN if (dl_IP2Location_handle == NULL) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Check whether db file exists: %s", libipv6calc_db_wrapper_IP2Location_dbfilename(type)); if (access(libipv6calc_db_wrapper_IP2Location_dbfilename(type), R_OK) == 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "DB file exists: %s", libipv6calc_db_wrapper_IP2Location_dbfilename(type)); fprintf(stderr, "%sIP2Location: %-27s: %-35s (LIBRARY-NOT-LOADED)\n", prefix, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].description, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].filename); } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "DB file doesn't exist or can't open: %s (%s)", libipv6calc_db_wrapper_IP2Location_dbfilename(type), strerror(errno)); if (level_verbose == LEVEL_VERBOSE2) { fprintf(stderr, "%sIP2Location: %-29s: %-35s (%s)\n", prefix, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].description, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].filename, strerror(errno)); }; }; } else { #endif // SUPPORT_IP2LOCATION_DYN r = libipv6calc_db_wrapper_IP2Location_db_avail(type); if (r == 2) { fprintf(stderr, "%sIP2Location: %s %-43s:[%3d] %-35s (SOFTLINK IS UNSUPPORTED)\n", prefix, ((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features & (IPV6CALC_DB_IP2LOCATION_IPV6 | IPV6CALC_DB_IP2LOCATION_IPV4)) == (IPV6CALC_DB_IP2LOCATION_IPV6 | IPV6CALC_DB_IP2LOCATION_IPV4)) ? "IPvx" : (((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features & IPV6CALC_DB_IP2LOCATION_IPV6) != 0) ? "IPv6" : "IPv4"), libipv6calc_db_wrapper_IP2Location_db_file_desc[i].description, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].filename); } else if ((r == 1) || (r == 3)) { // IP2Location returned that database is available loc = libipv6calc_db_wrapper_IP2Location_open_type(type); if (loc == NULL) { fprintf(stderr, "%sIP2Location: %s %-43s:[%3d] %-35s (CAN'T OPEN)\n", prefix, ((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features & (IPV6CALC_DB_IP2LOCATION_IPV6 | IPV6CALC_DB_IP2LOCATION_IPV4)) == (IPV6CALC_DB_IP2LOCATION_IPV6 | IPV6CALC_DB_IP2LOCATION_IPV4)) ? "IPvx" : (((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features & IPV6CALC_DB_IP2LOCATION_IPV6) != 0) ? "IPv6" : "IPv4"), libipv6calc_db_wrapper_IP2Location_db_file_desc[i].description, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].filename ); } else { fprintf(stderr, "%sIP2Location: %s %-43s:[%3d] %-35s (%s%s)\n", prefix, ((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features & (IPV6CALC_DB_IP2LOCATION_IPV6 | IPV6CALC_DB_IP2LOCATION_IPV4)) == (IPV6CALC_DB_IP2LOCATION_IPV6 | IPV6CALC_DB_IP2LOCATION_IPV4)) ? "IPvx" : (((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features & IPV6CALC_DB_IP2LOCATION_IPV6) != 0) ? "IPv6" : "IPv4"), libipv6calc_db_wrapper_IP2Location_db_file_desc[i].description, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].filename, libipv6calc_db_wrapper_IP2Location_database_info(loc, level_verbose, i, 0), (r == 3) ? " SOFTLINK" : "" ); libipv6calc_db_wrapper_IP2Location_close(loc); count++; }; } else { if (level_verbose == LEVEL_VERBOSE2) { fprintf(stderr, "%sIP2Location: %s %-43s:[%3d] %-35s (%s)\n", prefix, ((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features & (IPV6CALC_DB_IP2LOCATION_IPV6 | IPV6CALC_DB_IP2LOCATION_IPV4)) == (IPV6CALC_DB_IP2LOCATION_IPV6 | IPV6CALC_DB_IP2LOCATION_IPV4)) ? "IPvx" : (((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].features & IPV6CALC_DB_IP2LOCATION_IPV6) != 0) ? "IPv6" : "IPv4"), libipv6calc_db_wrapper_IP2Location_db_file_desc[i].description, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].filename, strerror(errno) ); }; continue; }; #ifdef SUPPORT_IP2LOCATION_DYN }; #endif // SUPPORT_IP2LOCATION_DYN }; if (count == 0) { fprintf(stderr, "%sIP2Location: NO available databases found in directory: %s\n", prefix, ip2location_db_dir); } else { if (level_verbose >= LEVEL_VERBOSE2) { fprintf(stderr, "%sIP2Location: detected best databases SAMPLE Country4=%-3d DB%-2d %6d Country6=%-3d DB%-2d %6d City4=%-3d DB%-2d %6d City6=%-3d DB%-2d %6d ASN4=%-3d DB%-2d %6d ASN6=%-3d DB%-2d %6d\n" , prefix , ip2location_db_country_v4_best[IP2L_SAMPLE].num , ip2location_db_country_v4_best[IP2L_SAMPLE].dbtype , IP2L_UNPACK_YM(ip2location_db_country_v4_best[IP2L_SAMPLE].dbym) , ip2location_db_country_v6_best[IP2L_SAMPLE].num , ip2location_db_country_v6_best[IP2L_SAMPLE].dbtype , IP2L_UNPACK_YM(ip2location_db_country_v6_best[IP2L_SAMPLE].dbym) , ip2location_db_region_city_v4_best[IP2L_SAMPLE].num , ip2location_db_region_city_v4_best[IP2L_SAMPLE].dbtype , IP2L_UNPACK_YM(ip2location_db_region_city_v4_best[IP2L_SAMPLE].dbym) , ip2location_db_region_city_v6_best[IP2L_SAMPLE].num , ip2location_db_region_city_v6_best[IP2L_SAMPLE].dbtype , IP2L_UNPACK_YM(ip2location_db_region_city_v6_best[IP2L_SAMPLE].dbym) , ip2location_db_asn_v4_best[IP2L_SAMPLE].num , ip2location_db_asn_v4_best[IP2L_SAMPLE].dbtype , IP2L_UNPACK_YM(ip2location_db_asn_v4_best[IP2L_SAMPLE].dbym) , ip2location_db_asn_v6_best[IP2L_SAMPLE].num , ip2location_db_asn_v6_best[IP2L_SAMPLE].dbtype , IP2L_UNPACK_YM(ip2location_db_asn_v6_best[IP2L_SAMPLE].dbym) ); fprintf(stderr, "%sIP2Location: detected best databases LITE Country4=%-3d DB%-2d %6d Country6=%-3d DB%-2d %6d City4=%-3d DB%-2d %6d City6=%-3d DB%-2d %6d ASN4=%-3d DB%-2d %6d ASN6=%-3d DB%-2d %6d\n" , prefix , ip2location_db_country_v4_best[IP2L_LITE].num , ip2location_db_country_v4_best[IP2L_LITE].dbtype , IP2L_UNPACK_YM(ip2location_db_country_v4_best[IP2L_LITE].dbym) , ip2location_db_country_v6_best[IP2L_LITE].num , ip2location_db_country_v6_best[IP2L_LITE].dbtype , IP2L_UNPACK_YM(ip2location_db_country_v6_best[IP2L_LITE].dbym) , ip2location_db_region_city_v4_best[IP2L_LITE].num , ip2location_db_region_city_v4_best[IP2L_LITE].dbtype , IP2L_UNPACK_YM(ip2location_db_region_city_v4_best[IP2L_LITE].dbym) , ip2location_db_region_city_v6_best[IP2L_LITE].num , ip2location_db_region_city_v6_best[IP2L_LITE].dbtype , IP2L_UNPACK_YM(ip2location_db_region_city_v6_best[IP2L_LITE].dbym) , ip2location_db_asn_v4_best[IP2L_LITE].num , ip2location_db_asn_v4_best[IP2L_LITE].dbtype , IP2L_UNPACK_YM(ip2location_db_asn_v4_best[IP2L_LITE].dbym) , ip2location_db_asn_v6_best[IP2L_LITE].num , ip2location_db_asn_v6_best[IP2L_LITE].dbtype , IP2L_UNPACK_YM(ip2location_db_asn_v6_best[IP2L_LITE].dbym) ); fprintf(stderr, "%sIP2Location: detected best databases COMM Country4=%-3d DB%-2d %6d Country6=%-3d DB%-2d %6d City4=%-3d DB%-2d %6d City6=%-3d DB%-2d %6d ASN4=%-3d DB%-2d %6d ASN6=%-3d DB%-2d %6d" , prefix , ip2location_db_country_v4_best[IP2L_COMM].num , ip2location_db_country_v4_best[IP2L_COMM].dbtype , IP2L_UNPACK_YM(ip2location_db_country_v4_best[IP2L_COMM].dbym) , ip2location_db_country_v6_best[IP2L_COMM].num , ip2location_db_country_v6_best[IP2L_COMM].dbtype , IP2L_UNPACK_YM(ip2location_db_country_v6_best[IP2L_COMM].dbym) , ip2location_db_region_city_v4_best[IP2L_COMM].num , ip2location_db_region_city_v4_best[IP2L_COMM].dbtype , IP2L_UNPACK_YM(ip2location_db_region_city_v4_best[IP2L_COMM].dbym) , ip2location_db_region_city_v6_best[IP2L_COMM].num , ip2location_db_region_city_v6_best[IP2L_COMM].dbtype , IP2L_UNPACK_YM(ip2location_db_region_city_v6_best[IP2L_COMM].dbym) , ip2location_db_asn_v4_best[IP2L_COMM].num , ip2location_db_asn_v4_best[IP2L_COMM].dbtype , IP2L_UNPACK_YM(ip2location_db_asn_v4_best[IP2L_COMM].dbym) , ip2location_db_asn_v6_best[IP2L_COMM].num , ip2location_db_asn_v6_best[IP2L_COMM].dbtype , IP2L_UNPACK_YM(ip2location_db_asn_v6_best[IP2L_COMM].dbym) ); } else if (level_verbose >= LEVEL_VERBOSE) { fprintf(stderr, "%sIP2Location: detected best databases SAMPLE Country4=%-3d Country6=%-3d City4=%-3d City6=%-3d ASN4=%-3d ASN6=%-3d\n" , prefix , ip2location_db_country_v4_best[IP2L_SAMPLE].num , ip2location_db_country_v6_best[IP2L_SAMPLE].num , ip2location_db_region_city_v4_best[IP2L_SAMPLE].num , ip2location_db_region_city_v6_best[IP2L_SAMPLE].num , ip2location_db_asn_v4_best[IP2L_SAMPLE].num , ip2location_db_asn_v6_best[IP2L_SAMPLE].num ); fprintf(stderr, "%sIP2Location: detected best databases LITE Country4=%-3d Country6=%-3d City4=%-3d City6=%-3d ASN4=%-3d ASN6=%-3d\n" , prefix , ip2location_db_country_v4_best[IP2L_LITE].num , ip2location_db_country_v6_best[IP2L_LITE].num , ip2location_db_region_city_v4_best[IP2L_LITE].num , ip2location_db_region_city_v6_best[IP2L_LITE].num , ip2location_db_asn_v4_best[IP2L_LITE].num , ip2location_db_asn_v6_best[IP2L_LITE].num ); fprintf(stderr, "%sIP2Location: detected best databases COMM Country4=%-3d Country6=%-3d City4=%-3d City6=%-3d ASN4=%-3d ASN6=%-3d\n" , prefix , ip2location_db_country_v4_best[IP2L_COMM].num , ip2location_db_country_v6_best[IP2L_COMM].num , ip2location_db_region_city_v4_best[IP2L_COMM].num , ip2location_db_region_city_v6_best[IP2L_COMM].num , ip2location_db_asn_v4_best[IP2L_COMM].num , ip2location_db_asn_v6_best[IP2L_COMM].num ); }; if (level_verbose >= LEVEL_VERBOSE) { if (ip2location_db_lite_to_sample_autoswitch_max_delta_months > 0) { fprintf(stderr, "%sIP2Location: selected best databases LI->SA* Country4=%-3d%s Country6=%-3d%s City4=%-3d%s City6=%-3d%s ASN4=%-3d%s ASN6=%-3d\n" , prefix , ip2location_db_country_sample_v4_lite_autoswitch , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , ip2location_db_country_sample_v6_lite_autoswitch , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , ip2location_db_region_city_sample_v4_lite_autoswitch , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , ip2location_db_region_city_sample_v6_lite_autoswitch , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , ip2location_db_asn_sample_v4_lite_autoswitch , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , ip2location_db_asn_sample_v6_lite_autoswitch ); }; fprintf(stderr, "%sIP2Location: selected best databases normal Country4=%-3d%s Country6=%-3d%s City4=%-3d%s City6=%-3d%s ASN4=%-3d%s ASN6=%-3d\n" , prefix , ip2location_db_country_v4 , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , ip2location_db_country_v6 , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , ip2location_db_region_city_v4 , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , ip2location_db_region_city_v6 , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , ip2location_db_asn_v4 , (level_verbose >= LEVEL_VERBOSE2) ? " " : "" , ip2location_db_asn_v6 ); if (ip2location_db_lite_to_sample_autoswitch_max_delta_months > 0) { fprintf(stderr, "%sIP2Location: selected best databases method: * = autoswitch from LITE to SAMPLE enabled in case not older than %d months and having more features\n" , prefix , ip2location_db_lite_to_sample_autoswitch_max_delta_months ); }; if (ip2location_db_comm_to_lite_switch_min_delta_months > 0) { fprintf(stderr, "%sIP2Location: selected best databases method: COMM older than %d months are deselected in case of LITE is available\n" , prefix , ip2location_db_comm_to_lite_switch_min_delta_months ); }; if (ip2location_db_better_max_delta_months > 0) { fprintf(stderr, "%sIP2Location: selected best databases method: COMM/LITE/SAMPLE with more features are only selected in case not older than %d months of already found COMM/LITE/SAMPLE\n" , prefix , ip2location_db_better_max_delta_months ); }; if (ip2location_db_only_type > 0) { fprintf(stderr, "%sIP2Location: selected best databases method: by applying given DB type filter: %d\n" , prefix , ip2location_db_only_type ); }; fprintf(stderr, "%sIP2Location: selected best databases method: softlinks: %s\n" , prefix , (ip2location_db_allow_softlinks == 0) ? "skipped-by-default" : "allowed-by-option" ); }; }; #else // SUPPORT_IP2LOCATION snfprintf(stderr, string, size, "%sNo IP2Location support built-in", prefix); #endif // SUPPORT_IP2LOCATION DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Finished"); return; }; /* * wrapper: string regarding used database infos */ char *libipv6calc_db_wrapper_IP2Location_wrapper_db_info_used(void) { unsigned int db; IP2Location *loc; char tempstring[IPV6CALC_STRING_MAX]; char *info; unsigned int db_lite_used = 0; for (db = 0; db < 32 * IP2LOCATION_DB_MAX_BLOCKS_32; db++) { if ((ip2location_db_usage_map[db / 32] & (1 << (db % 32))) != 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "DB used: %d", db); loc = libipv6calc_db_wrapper_IP2Location_open_type(db); // workaround to get lite info int entry = -1, i; for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_IP2Location_db_file_desc); i++) { if (libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number == db) { entry = i; break; }; }; if (entry < 0) { // should not happen continue; }; info = libipv6calc_db_wrapper_IP2Location_database_info(loc, 0, entry, 1); if (info == NULL) { continue; }; // NULL pointer returned if (strlen(info) == 0) { continue; }; // empty string returned if (libipv6calc_db_wrapper_IP2Location_db_file_desc[i].internal & IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE) { db_lite_used = 1; }; if (strlen(ip2location_db_usage_string) > 0) { if (strstr(ip2location_db_usage_string, info) != NULL) { continue; }; // string already included snprintf(tempstring, sizeof(tempstring), "%s / %s", ip2location_db_usage_string, info); } else { snprintf(tempstring, sizeof(tempstring), "%s", info); }; snprintf(ip2location_db_usage_string, sizeof(ip2location_db_usage_string), "%s", tempstring); }; }; if (db_lite_used == 1) { snprintf(tempstring, sizeof(tempstring), "%s / This site or product includes IP2Location LITE data available from http://lite.ip2location.com", ip2location_db_usage_string); snprintf(ip2location_db_usage_string, sizeof(ip2location_db_usage_string), "%s", tempstring); }; return(ip2location_db_usage_string); }; #ifdef SUPPORT_IP2LOCATION /******************************* * Wrapper extension functions for IP2Location * because of missing support in library itself *******************************/ /* * wrapper extension: IP2Location_lib_version */ char *libipv6calc_db_wrapper_IP2Location_lib_version(void) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called: %s", wrapper_ip2location_info); static char result_IP2Location_lib_version[256]; #ifdef SUPPORT_IP2LOCATION_DYN const char *dl_symbol = "IP2Location_api_version_string"; char *error; if (dl_IP2Location_handle == NULL) { snprintf(result_IP2Location_lib_version, sizeof(result_IP2Location_lib_version), "LIBRARY-NOT-LOADED"); goto END_libipv6calc_db_wrapper; }; if (dl_status_IP2Location_api_version_string == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_IP2Location_api_version_string.obj) = dlsym(dl_IP2Location_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_IP2Location_api_version_string = IPV6CALC_DL_STATUS_ERROR; } else { dl_status_IP2Location_api_version_string = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called dlsym successful: %s", dl_symbol); }; } else if (dl_status_IP2Location_api_version_string == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already failed: %s", dl_symbol); } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already successful: %s", dl_symbol); }; const char *dl_symbol2 = "IP2Location_api_version_num"; if (dl_IP2Location_handle == NULL) { snprintf(result_IP2Location_lib_version, sizeof(result_IP2Location_lib_version), "LIBRARY-NOT-LOADED"); goto END_libipv6calc_db_wrapper; }; if (dl_status_IP2Location_api_version_num == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Call dlsym: %s", dl_symbol2); dlerror(); /* Clear any existing error */ *(void **) (&dl_IP2Location_api_version_num.obj) = dlsym(dl_IP2Location_handle, dl_symbol2); if ((error = dlerror()) != NULL) { dl_status_IP2Location_api_version_num = IPV6CALC_DL_STATUS_ERROR; } else { dl_status_IP2Location_api_version_num = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called dlsym successful: %s", dl_symbol2); }; } else if (dl_status_IP2Location_api_version_num == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already failed: %s", dl_symbol2); } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already successful: %s", dl_symbol2); }; const char *dl_symbol3 = "IP2Location_lib_version_string"; if (dl_status_IP2Location_lib_version_string == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Call dlsym: %s", dl_symbol3); dlerror(); /* Clear any existing error */ *(void **) (&dl_IP2Location_lib_version_string.obj) = dlsym(dl_IP2Location_handle, dl_symbol3); if ((error = dlerror()) != NULL) { dl_status_IP2Location_lib_version_string = IPV6CALC_DL_STATUS_ERROR; } else { dl_status_IP2Location_lib_version_string = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called dlsym successful: %s", dl_symbol3); }; } else if (dl_status_IP2Location_lib_version_string == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already failed: %s", dl_symbol3); } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already successful: %s", dl_symbol3); }; if (dl_status_IP2Location_api_version_string == IPV6CALC_DL_STATUS_OK) { // take use of new (>= 7.0.1) function if (dl_status_IP2Location_lib_version_string == IPV6CALC_DL_STATUS_OK) { // take also use of new (>= 8.0.4) function snprintf(result_IP2Location_lib_version, sizeof(result_IP2Location_lib_version), "%s API=%s Major=%d MajorMinor=%d", (*dl_IP2Location_lib_version_string.func)(), (*dl_IP2Location_api_version_string.func)(), libipv6calc_db_wrapper_IP2Location_library_version_major() , libipv6calc_db_wrapper_IP2Location_library_version_majorminor() ); } else { snprintf(result_IP2Location_lib_version, sizeof(result_IP2Location_lib_version), "API=%s Major=%d MajorMinor=%d", (*dl_IP2Location_api_version_string.func)(), libipv6calc_db_wrapper_IP2Location_library_version_major() , libipv6calc_db_wrapper_IP2Location_library_version_majorminor() ); }; } else { // fallback snprintf(result_IP2Location_lib_version, sizeof(result_IP2Location_lib_version), "API>=7.0.0 Major=%d MajorMinor=%d", libipv6calc_db_wrapper_IP2Location_library_version_major() , libipv6calc_db_wrapper_IP2Location_library_version_majorminor() ); }; #else snprintf(result_IP2Location_lib_version, sizeof(result_IP2Location_lib_version), "API=%s Major=%d MajorMinor=%d", IP2Location_api_version_string(), libipv6calc_db_wrapper_IP2Location_library_version_major() , libipv6calc_db_wrapper_IP2Location_library_version_majorminor() ); #endif #ifdef SUPPORT_IP2LOCATION_DYN END_libipv6calc_db_wrapper: #endif return(result_IP2Location_lib_version); }; /* * wrapper extension: IP2Location_dbfilename */ static char *libipv6calc_db_wrapper_IP2Location_dbfilename(const unsigned int type) { static char tempstring[IPV6CALC_STRING_MAX]; int entry = -1, i; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called: %s type=%d", wrapper_ip2location_info, type); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_IP2Location_db_file_desc); i++) { if (libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number == type) { entry = i; break; }; }; if (entry < 0) { return(NULL); }; snprintf(tempstring, sizeof(tempstring), "%s/%s", ip2location_db_dir, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].filename); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Finished: %s type=%d has filename=%s", wrapper_ip2location_info, type, tempstring); return(tempstring); }; /* * wrapper extension: IP2Location_dbdescription */ const char *libipv6calc_db_wrapper_IP2Location_dbdescription(const unsigned int type) { int entry = -1, i; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called: %s type=%d", wrapper_ip2location_info, type); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_IP2Location_db_file_desc); i++) { if (libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number == type) { entry = i; break; }; }; if (entry < 0) { return("unknown"); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Finished: %s type=%d has description=%s", wrapper_ip2location_info, type, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].description); return(libipv6calc_db_wrapper_IP2Location_db_file_desc[i].description); }; /* * wrapper extension: IP2Location_db_avail * ret: 1=avail 0=not-avail 2=softlink (in case not allowed) 3=softlink (allowed) */ int libipv6calc_db_wrapper_IP2Location_db_avail(const unsigned int type) { char *filename; int r, result = 0; IP2Location *loc; struct stat st; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called: %s type=%d", wrapper_ip2location_info, type); filename = libipv6calc_db_wrapper_IP2Location_dbfilename(type); if (filename == NULL) { goto END_libipv6calc_db_wrapper; }; if (access(filename, R_OK) != 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Finished: %s type=%d (not readable) (%s)", wrapper_ip2location_info, type, strerror(errno)); goto END_libipv6calc_db_wrapper; }; r = lstat(filename, &st); if (r != 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Finished: %s type=%d (lstat problem) (r=%d)", wrapper_ip2location_info, type, r); goto END_libipv6calc_db_wrapper; }; if (S_ISLNK(st.st_mode)) { if (ip2location_db_allow_softlinks == 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Finished: %s type=%d (unsupported softlink)", wrapper_ip2location_info, type); result = 2; goto END_libipv6calc_db_wrapper; } else { result = 3; }; }; loc = libipv6calc_db_wrapper_IP2Location_open_type(type); if (loc == NULL) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Finished: %s type=%d (can't open)", wrapper_ip2location_info, type); } else { if (result == 0) { result = 1; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Finished: %s type=%d (%s) (r=%d)", wrapper_ip2location_info, type, filename, r); }; END_libipv6calc_db_wrapper: return(result); }; /* * wrapper extension: IP2Location_open_type */ IP2Location *libipv6calc_db_wrapper_IP2Location_open_type(const unsigned int type) { IP2Location *loc; char *filename; int entry = -1, i; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called: %s type=%d", wrapper_ip2location_info, type); for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_IP2Location_db_file_desc); i++) { if (libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number == type) { entry = i; break; }; }; if (entry < 0) { return(NULL); }; if (db_ptr_cache[entry] != NULL) { // already open loc = db_ptr_cache[entry]; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Database already opened (cached) loc=%p type=%d", loc, type); goto END_libipv6calc_db_wrapper; } else { filename = libipv6calc_db_wrapper_IP2Location_dbfilename(type); if (filename == NULL) { return(NULL); }; loc = libipv6calc_db_wrapper_IP2Location_open(filename); if (loc == NULL) { goto END_libipv6calc_db_wrapper; }; db_ptr_cache[entry] = loc; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Database successfully opened (fill-cache), loc=%p type=%d", loc, type); }; END_libipv6calc_db_wrapper: return(loc); }; /******************************* * Wrapper functions for IP2Location *******************************/ /* * wrapper: IP2Location_open */ IP2Location *libipv6calc_db_wrapper_IP2Location_open(char *db) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called: %s filename=%s", wrapper_ip2location_info, db); #ifdef SUPPORT_IP2LOCATION_DYN IP2Location *loc = NULL; const char *dl_symbol = "IP2Location_open"; char *error; if (dl_IP2Location_handle == NULL) { fprintf(stderr, "dl_IP2Location handle not defined\n"); goto END_libipv6calc_db_wrapper; }; if (dl_status_IP2Location_open == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_IP2Location_open.obj) = dlsym(dl_IP2Location_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_IP2Location_open = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_IP2Location_open = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_IP2Location_open == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ loc = (*dl_IP2Location_open.func)(db); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: return(loc); #else return(IP2Location_open(db)); #endif }; /* * wrapper: IP2Location_database_info */ char *libipv6calc_db_wrapper_IP2Location_database_info(IP2Location *loc, const int level_verbose, const int entry, const int flag_copyright) { static char resultstring[IPV6CALC_STRING_MAX]; char tempstring[IPV6CALC_STRING_MAX] = ""; uint32_t entries_ipv4 = 0; uint32_t entries_ipv6 = 0; uint32_t features = libipv6calc_db_wrapper_IP2Location_db_file_desc[entry].features; uint32_t internal = libipv6calc_db_wrapper_IP2Location_db_file_desc[entry].internal; int type = libipv6calc_db_wrapper_IP2Location_db_file_desc[entry].number; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called: %s", wrapper_ip2location_info); if (loc == NULL) { snprintf(resultstring, sizeof(resultstring), "%s", "can't retrieve database information"); } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "databasetype=%u ipversion=%u", loc->database_type, loc->ip_version); if (flag_copyright != 0) { snprintf(tempstring, sizeof(tempstring), " Copyright (c) %04d IP2Location All Rights Reserved", loc->database_year + 2000 ); }; if (level_verbose == LEVEL_VERBOSE2) { // catch API 4.0.0 -> 7.0.0 extension #ifdef SUPPORT_IP2LOCATION_DYN // API >= 7.0.0 DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "databasetype=%u databasecount/ipv4databasecount=%u ipversion/ipv6databasecount=%u", loc->database_type, loc->ipv4_database_count, loc->ipv6_database_count); // compiled with API >= 7.0.0, loaded library is >= 7.0.0 if (loc->ipv4_database_count > 2) { // IPv4 entries_ipv4 = loc->ipv4_database_count; }; if (loc->ipv6_database_count > 0) { // IPv6 if (loc->ipv6_database_count > 1) { entries_ipv6 = loc->ipv6_database_count; } else if (loc->ip_version == 1) { // catch of old DB file, ipv4databasecount is reused as databasecount entries_ipv6 = loc->ipv4_database_count; entries_ipv4 = 0; }; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "compiled with API >= 7.0.0, loaded library is >= 7.0.0: entries_ipv4=%u entries_ipv6=%u", entries_ipv4, entries_ipv6); #else // SUPPORT_IP2LOCATION_DYN // API >= 7.0.0 if (loc->ipv4_database_count > 2) { // IPv4 entries_ipv4 = loc->ipv4_database_count; }; if (loc->ipv6_database_count > 0) { // catch of changed API which reuses ipversion as ipv6databasecount if (loc->ipv6_database_count > 1) { entries_ipv6 = loc->ipv6_database_count; } else if (loc->ipv6_database_count == 1) { // old behavior entries_ipv6 = loc->database_count; entries_ipv4 = 0; }; }; #endif // SUPPORT_IP2LOCATION_DYN snprintf(resultstring, sizeof(resultstring), "IP2L-DB%d %s%s%04d%02d%02d%s IPv4=%u IPv6=%u%s%s", loc->database_type, (features & (IPV6CALC_DB_IP2LOCATION_IPV6 | IPV6CALC_DB_IP2LOCATION_IPV4)) != 0 ? "IPv4 IPv6 " : ((features & IPV6CALC_DB_IP2LOCATION_IPV6) != 0 ? "IPv6 " : "IPv4 "), (internal & IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE) != 0 ? "LITE " : ((internal & IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE) != 0 ? "SAMPLE " : (internal & IPV6CALC_DB_IP2LOCATION_INTERNAL_FREE) != 0 ? "FREE " : "" ), loc->database_year + 2000, loc->database_month, loc->database_day, tempstring, entries_ipv4, entries_ipv6, (libipv6calc_db_wrapper_IP2Location_db_compatible(type) != 0) ? " INCOMPATIBLE" : "", (loc->database_year + 2000 < IP2LOCATION_DB_YEAR_MIN) ? " TOO-OLD" : "" ); } else { snprintf(resultstring, sizeof(resultstring), "IP2L-DB%d %s%s%04d%02d%02d%s%s%s", loc->database_type, (features & (IPV6CALC_DB_IP2LOCATION_IPV6 | IPV6CALC_DB_IP2LOCATION_IPV4)) != 0 ? "IPv4 IPv6 " : ((features & IPV6CALC_DB_IP2LOCATION_IPV6) != 0 ? "IPv6 " : "IPv4 "), (internal & IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE) != 0 ? "LITE " : ((internal & IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE) != 0 ? "SAMPLE " : (internal & IPV6CALC_DB_IP2LOCATION_INTERNAL_FREE) != 0 ? "FREE " : "" ), loc->database_year + 2000, loc->database_month, loc->database_day, tempstring, (libipv6calc_db_wrapper_IP2Location_db_compatible(type) != 0) ? " INCOMPATIBLE" : "", (loc->database_year + 2000 < IP2LOCATION_DB_YEAR_MIN) ? " TOO-OLD" : "" ); }; }; return(resultstring); }; /* * wrapper: IP2Location_free_record */ void libipv6calc_db_wrapper_IP2Location_free_record(IP2LocationRecord *record) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called: %s", wrapper_ip2location_info); if (record == NULL) { return; }; #ifdef SUPPORT_IP2LOCATION_DYN const char *dl_symbol = "IP2Location_free_record"; char *error; if (dl_IP2Location_handle == NULL) { fprintf(stderr, "dl_IP2Location handle not defined\n"); goto END_libipv6calc_db_wrapper; }; if (dl_status_IP2Location_free_record == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_IP2Location_free_record) = dlsym(dl_IP2Location_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_IP2Location_free_record = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_IP2Location_free_record = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_IP2Location_free_record == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ (*dl_IP2Location_free_record.func)(record); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: #else IP2Location_free_record(record); #endif return; }; /* * wrapper: IP2Location_get_country_short */ IP2LocationRecord *libipv6calc_db_wrapper_IP2Location_get_country_short(IP2Location *loc, char *ip) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called: %s ip=%s", wrapper_ip2location_info, ip); #ifdef SUPPORT_IP2LOCATION_DYN IP2LocationRecord *result_IP2Location_get_country_short = NULL; const char *dl_symbol = "IP2Location_get_country_short"; char *error; if (dl_IP2Location_handle == NULL) { fprintf(stderr, "dl_IP2Location handle not defined\n"); goto END_libipv6calc_db_wrapper; }; if (dl_status_IP2Location_get_country_long == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_IP2Location_get_country_short.obj) = dlsym(dl_IP2Location_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_IP2Location_get_country_short = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_IP2Location_get_country_short = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_IP2Location_get_country_long == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ result_IP2Location_get_country_short = (*dl_IP2Location_get_country_short.func)(loc, ip); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: return(result_IP2Location_get_country_short); #else return(IP2Location_get_country_short(loc, ip)); #endif }; /* * wrapper: IP2Location_get_country_long */ IP2LocationRecord *libipv6calc_db_wrapper_IP2Location_get_country_long(IP2Location *loc, char *ip) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called: %s ip=%s", wrapper_ip2location_info, ip); #ifdef SUPPORT_IP2LOCATION_DYN IP2LocationRecord *result_IP2Location_get_country_long = NULL; const char *dl_symbol = "IP2Location_get_country_long"; char *error; if (dl_IP2Location_handle == NULL) { fprintf(stderr, "dl_IP2Location handle not defined\n"); goto END_libipv6calc_db_wrapper; }; if (dl_status_IP2Location_get_country_long == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_IP2Location_get_country_long.obj) = dlsym(dl_IP2Location_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_IP2Location_get_country_long = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_IP2Location_get_country_long = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_IP2Location_get_country_long == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ result_IP2Location_get_country_long = (*dl_IP2Location_get_country_long.func)(loc, ip); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: return(result_IP2Location_get_country_long); #else return(IP2Location_get_country_long(loc, ip)); #endif }; #if API_VERSION_NUMERIC >= 80600 /* * wrapper: IP2Location_get_as_number */ IP2LocationRecord *libipv6calc_db_wrapper_IP2Location_get_as_number(IP2Location *loc, char *ip) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called: %s ip=%s", wrapper_ip2location_info, ip); #ifdef SUPPORT_IP2LOCATION_DYN IP2LocationRecord *result_IP2Location_get_asn = NULL; const char *dl_symbol = "IP2Location_get_asn"; char *error; if (dl_IP2Location_handle == NULL) { fprintf(stderr, "dl_IP2Location handle not defined\n"); goto END_libipv6calc_db_wrapper; }; if (dl_status_IP2Location_get_country_long == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_IP2Location_get_asn.obj) = dlsym(dl_IP2Location_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_IP2Location_get_country_short = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_IP2Location_get_asn = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_IP2Location_get_asn == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ result_IP2Location_get_asn = (*dl_IP2Location_get_asn.func)(loc, ip); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: return(result_IP2Location_get_asn); #else return(IP2Location_get_asn(loc, ip)); #endif }; #endif // API_VERSION_NUMERIC >= 80600 /* * wrapper: IP2Location_get_all */ IP2LocationRecord *libipv6calc_db_wrapper_IP2Location_get_all(IP2Location *loc, char *ip) { IP2LocationRecord *result_IP2Location_get_all = NULL; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called: %s with ip=%s", wrapper_ip2location_info, ip); if (loc == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "loc==NULL, return NULL"); return(NULL); }; #ifdef SUPPORT_IP2LOCATION_DYN const char *dl_symbol = "IP2Location_get_all"; char *error; if (dl_IP2Location_handle == NULL) { fprintf(stderr, "dl_IP2Location handle not defined\n"); goto END_libipv6calc_db_wrapper; }; if (dl_status_IP2Location_get_all == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_IP2Location_get_all.obj) = dlsym(dl_IP2Location_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_IP2Location_get_all = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_IP2Location_get_all = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_IP2Location_get_all == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ result_IP2Location_get_all = (*dl_IP2Location_get_all.func)(loc, ip); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: #else result_IP2Location_get_all = IP2Location_get_all(loc, ip); #endif DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Finished IP2Location_get_all=%p", result_IP2Location_get_all); return(result_IP2Location_get_all); }; /********************************************* * Abstract functions * *******************************************/ /* function query for feature set * ret=-1: unknown * 0 : not matching * 1 : ok */ int libipv6calc_db_wrapper_IP2Location_has_features(uint32_t features) { int result = -1; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called with feature value to test: 0x%08x", features); if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_IP2LOCATION] & features) == features) { result = 1; } else { result = 0; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Return with result: %d", result); return(result); }; /* country_code */ int libipv6calc_db_wrapper_IP2Location_wrapper_country_code_by_addr(char *addr, const int proto, char *country, const size_t country_length) { IP2Location *loc; IP2LocationRecord *record = NULL; int result = -1; unsigned int IP2Location_type = 0; char *IP2Location_result_ptr = NULL; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called with addr=%s proto=%d", addr, proto); if (proto == 4) { IP2Location_type = ip2location_db_country_v4; if ((ip2location_db_country_sample_v4_lite_autoswitch > 0) && (ip2location_db_country_v4_best[IP2L_COMM].num != IP2Location_type)) { // lite database selected, sample database available (supporting 0.0.0.0-99.255.255.255) if ((addr[1] == '.') || (addr[2] == '.')) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Overwrite IP2Location_type LITE %d with SAMPLE DB %d", IP2Location_type, ip2location_db_country_sample_v4_lite_autoswitch); IP2Location_type = ip2location_db_country_sample_v4_lite_autoswitch; }; }; } else if (proto == 6) { IP2Location_type = ip2location_db_country_v6; if ((ip2location_db_country_sample_v6_lite_autoswitch > 0) && (ip2location_db_country_v6_best[IP2L_COMM].num != IP2Location_type)) { // lite database selected, sample database available (supporting 2A04:0:0:0:0:0:0:0-2A04:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF) if (strncmp(addr, "2a04", 4) == 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Overwrite IP2Location_type LITE %d with SAMPLE DB %d", IP2Location_type, ip2location_db_country_sample_v6_lite_autoswitch); IP2Location_type = ip2location_db_country_sample_v6_lite_autoswitch; }; }; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Unsupported proto: %d", proto); goto END_libipv6calc_db_wrapper; }; if (IP2Location_type == 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "No IP2Location database selected for proto: %d", proto); goto END_libipv6calc_db_wrapper; }; loc = libipv6calc_db_wrapper_IP2Location_open_type(IP2Location_type); if (loc == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Error opening IP2Location by type"); goto END_libipv6calc_db_wrapper; }; #ifdef SUPPORT_IP2LOCATION_DYN /* TODO check // API >= 7.0.0 if (loc->ipversion > 1) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Openend IP2Location type is not supported by the dynamic loaded library: loc.ipversion=%d", loc->ipversion); goto END_libipv6calc_db_wrapper; }; */ #endif record = libipv6calc_db_wrapper_IP2Location_get_country_short(loc, addr); if (record == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "did not return a record"); goto END_libipv6calc_db_wrapper; }; IP2Location_result_ptr = record->country_short; if (IP2Location_result_ptr == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "did not contain a country_short code"); goto END_libipv6calc_db_wrapper; }; if (strlen(IP2Location_result_ptr) > 2) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "did not return a proper country_short code (length > 2): %s", IP2Location_result_ptr); goto END_libipv6calc_db_wrapper; }; if ((strcmp(IP2Location_result_ptr, "-") == 0) || (strcmp(IP2Location_result_ptr, "??") == 0)) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "don't know country_short code: %s", IP2Location_result_ptr); goto END_libipv6calc_db_wrapper; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "country_short code: %s", IP2Location_result_ptr); snprintf(country, country_length, "%s", IP2Location_result_ptr); result = 0; IP2LOCATION_DB_USAGE_MAP_TAG(IP2Location_type); END_libipv6calc_db_wrapper: if (record != NULL) { libipv6calc_db_wrapper_IP2Location_free_record(record); }; return(result); }; #if API_VERSION_NUMERIC >= 80600 /* ASN */ uint32_t libipv6calc_db_wrapper_IP2Location_wrapper_asn_by_addr(const ipv6calc_ipaddr *ipaddrp) { int retval; IP2Location *loc; IP2LocationRecord *record = NULL; uint32_t result = ASNUM_AS_UNKNOWN; char addrstring[IPV6CALC_STRING_MAX] = ""; char *IP2Location_result_ptr = NULL; unsigned int IP2Location_type = 0; long long asn; char *end; if (ipaddrp->proto == IPV6CALC_PROTO_IPV4) { IP2Location_type = ip2location_db_asn_v4; if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_IP2LOCATION] & IPV6CALC_DB_IPV4_TO_AS) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "No IP2Location database supporting IPv4 ASN"); goto END_libipv6calc_db_wrapper; }; } else if (ipaddrp->proto == IPV6CALC_PROTO_IPV6) { IP2Location_type = ip2location_db_asn_v6; if ((wrapper_features_by_source[IPV6CALC_DB_SOURCE_IP2LOCATION] & IPV6CALC_DB_IPV6_TO_AS) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "No IP2Location database supporting IPv6 ASN"); goto END_libipv6calc_db_wrapper; }; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Unsupported proto: %d", ipaddrp->proto); goto END_libipv6calc_db_wrapper; }; if (IP2Location_type == 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "No IP2Location database selected for proto: %d", ipaddrp->proto); goto END_libipv6calc_db_wrapper; }; // convert to string retval = libipaddr_ipaddrstruct_to_string(ipaddrp, addrstring, sizeof(addrstring), 0); if ( retval != 0 ) { fprintf(stderr, "Error converting address object into string\n"); result = -1; goto END_libipv6calc_db_wrapper; }; loc = libipv6calc_db_wrapper_IP2Location_open_type(IP2Location_type); if (loc == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Error opening IP2Location by type"); goto END_libipv6calc_db_wrapper; }; record = libipv6calc_db_wrapper_IP2Location_get_as_number(loc, addrstring); if (record == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "did not return a record"); goto END_libipv6calc_db_wrapper; }; IP2Location_result_ptr = record->asn; if (IP2Location_result_ptr == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "did not contain a as_number"); goto END_libipv6calc_db_wrapper; }; if (strlen(IP2Location_result_ptr) == 0) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "did not contain a as_number"); goto END_libipv6calc_db_wrapper; }; errno = 0; asn = strtoll(IP2Location_result_ptr, &end, 10); if ((errno == ERANGE) || (asn < 0) || (asn > UINT32_MAX)) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "can't convert AS number string to uint32_t as out-of-range: %s", IP2Location_result_ptr); goto END_libipv6calc_db_wrapper; }; result = (uint32_t) asn; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "ASN: %s -> %u", IP2Location_result_ptr, result); IP2LOCATION_DB_USAGE_MAP_TAG(IP2Location_type); END_libipv6calc_db_wrapper: if (record != NULL) { libipv6calc_db_wrapper_IP2Location_free_record(record); }; return(result); }; #endif // API_VERSION_NUMERIC >= 80600 /* country_name * return: record, must be free'ed after usage */ static IP2LocationRecord *libipv6calc_db_wrapper_IP2Location_wrapper_country_name_by_addr(char *addr, const int proto) { IP2Location *loc; IP2LocationRecord *record = NULL; unsigned int IP2Location_type = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called with addr=%s proto=%d", addr, proto); if (proto == 4) { IP2Location_type = ip2location_db_country_v4; if ((ip2location_db_country_sample_v4_lite_autoswitch > 0) && (ip2location_db_country_v4_best[IP2L_COMM].num != IP2Location_type)) { // lite database selected, sample database available (supporting 0.0.0.0-99.255.255.255) if ((addr[1] == '.') || (addr[2] == '.')) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Overwrite IP2Location_type LITE %d with SAMPLE DB %d", IP2Location_type, ip2location_db_country_sample_v4_lite_autoswitch); IP2Location_type = ip2location_db_country_sample_v4_lite_autoswitch; }; }; } else if (proto == 6) { IP2Location_type = ip2location_db_country_v6; if ((ip2location_db_country_sample_v6_lite_autoswitch > 0) && (ip2location_db_country_v6_best[IP2L_COMM].num != IP2Location_type)) { // lite database selected, sample database available (supporting 2A04:0:0:0:0:0:0:0-2A04:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF) if (strncmp(addr, "2a04", 4) == 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Overwrite IP2Location_type LITE %d with SAMPLE DB %d", IP2Location_type, ip2location_db_country_sample_v6_lite_autoswitch); IP2Location_type = ip2location_db_country_sample_v6_lite_autoswitch; }; }; } else { return (NULL); }; if (IP2Location_type == 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "No IP2Location database selected for proto: %d", proto); goto END_libipv6calc_db_wrapper; }; loc = libipv6calc_db_wrapper_IP2Location_open_type(IP2Location_type); if (loc == NULL) { goto END_libipv6calc_db_wrapper; }; record = libipv6calc_db_wrapper_IP2Location_get_country_short(loc, addr); // will also return country_long if (record == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "did not return a record"); goto END_libipv6calc_db_wrapper; }; IP2LOCATION_DB_USAGE_MAP_TAG(IP2Location_type); END_libipv6calc_db_wrapper: return(record); }; /* record: city * return: record, must be free'ed after usage */ static IP2LocationRecord *libipv6calc_db_wrapper_IP2Location_wrapper_record_city_by_addr(char *addr, const int proto) { IP2Location *loc; IP2LocationRecord *record = NULL; int IP2Location_type = 0; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called with addr=%s proto=%d", addr, proto); if (proto == 4) { IP2Location_type = ip2location_db_region_city_v4; if (ip2location_db_region_city_sample_v4_lite_autoswitch > 0) { // lite database selected, sample database available (supporting 2A04:0:0:0:0:0:0:0-2A04:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF) if ((addr[1] == '.') || (addr[2] == '.')) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Overwrite IP2Location_type LITE %d with SAMPLE DB %d", IP2Location_type, ip2location_db_region_city_sample_v4_lite_autoswitch); IP2Location_type = ip2location_db_region_city_sample_v4_lite_autoswitch; }; }; } else if (proto == 6) { IP2Location_type = ip2location_db_region_city_v6; if (ip2location_db_region_city_sample_v6_lite_autoswitch > 0) { // lite database selected, sample database available (supporting 2A04:0:0:0:0:0:0:0-2A04:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF) if (strncmp(addr, "2a04", 4) == 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Overwrite IP2Location_type LITE %d with SAMPLE DB %d", IP2Location_type, ip2location_db_region_city_sample_v6_lite_autoswitch); IP2Location_type = ip2location_db_region_city_sample_v6_lite_autoswitch; }; }; } else { return (NULL); }; if (IP2Location_type == 0) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "No IP2Location database selected for proto: %d", proto); goto END_libipv6calc_db_wrapper; }; loc = libipv6calc_db_wrapper_IP2Location_open_type(IP2Location_type); if (loc == NULL) { goto END_libipv6calc_db_wrapper; }; record = libipv6calc_db_wrapper_IP2Location_get_all(loc, addr); if (record == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "did not return a record"); goto END_libipv6calc_db_wrapper; }; IP2LOCATION_DB_USAGE_MAP_TAG(IP2Location_type); END_libipv6calc_db_wrapper: return(record); }; #endif /* * major IP2Location library version * * in : (nothing) * out: major IP2Location library version, currently 4, 6, 7, 8 */ int libipv6calc_db_wrapper_IP2Location_library_version_major(void) { int result = 7; // default #ifdef SUPPORT_IP2LOCATION_DYN if (dl_status_IP2Location_api_version_num == IPV6CALC_DL_STATUS_OK) { result = (*dl_IP2Location_api_version_num.func)() / (100 * 100); }; #else // SUPPORT_IP2LOCATION_DYN #ifdef API_VERSION_MAJOR result = API_VERSION_MAJOR; #else // API_VERSION_MAJOR #endif // API_VERSION_MAJOR #endif // SUPPORT_IP2LOCATION_DYN return(result); }; /* * numeric major+minor IP2Location library version * * in : (nothing) * out: major+minor IP2Location library version in numeric form major*100 + minor */ int libipv6calc_db_wrapper_IP2Location_library_version_majorminor(void) { int result = 802; // (minimum) default 8.2.x #ifdef SUPPORT_IP2LOCATION_DYN if (dl_status_IP2Location_api_version_num == IPV6CALC_DL_STATUS_OK) { result = (*dl_IP2Location_api_version_num.func)() / (100); }; #else // SUPPORT_IP2LOCATION_DYN result = IP2Location_api_version_num() / 100; #endif // SUPPORT_IP2LOCATION_DYN return(result); }; /* * database to API and library compatibility * * in : database type * out: =0:compatible !=0:not compatible */ static int libipv6calc_db_wrapper_IP2Location_db_compatible(const unsigned int type) { int result = 0; int i; for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_IP2Location_db_file_desc); i++) { if (type == libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number) { break; }; }; if (i == MAXENTRIES_ARRAY(libipv6calc_db_wrapper_IP2Location_db_file_desc)) { // not found return(1); }; if ((libipv6calc_db_wrapper_IP2Location_db_file_desc[i].internal & IPV6CALC_DB_IP2LOCATION_INTERNAL_FREE) != 0) { // blacklist old IPV6-COUNTRY-FREE.BIN in case of API >= 7.0.0 result = 1; }; if ( (libipv6calc_db_wrapper_IP2Location_db_file_desc[i].internal & IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_8_4) != 0) { #if API_VERSION_NUMERIC < 80400 result = 1; #else if (libipv6calc_db_wrapper_IP2Location_library_version_majorminor() < 804) { result = 1; }; #endif }; if ( (libipv6calc_db_wrapper_IP2Location_db_file_desc[i].internal & IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_8_6) != 0) { #if API_VERSION_NUMERIC < 80600 result = 1; #else if (libipv6calc_db_wrapper_IP2Location_library_version_majorminor() < 806) { result = 1; }; #endif }; return(result); }; /* * return UsageType description related to the from database returned token * * in : UsageType token * out: UsageType description */ extern const char *libipv6calc_db_wrapper_IP2Location_UsageType_description(char *UsageType) { int i; for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_IP2Location_UsageType); i++) { if (strcmp(UsageType, libipv6calc_db_wrapper_IP2Location_UsageType[i].tokensimple) == 0) { return(libipv6calc_db_wrapper_IP2Location_UsageType[i].token); }; }; return(NULL); }; /* all information */ int libipv6calc_db_wrapper_IP2Location_all_by_addr(const ipv6calc_ipaddr *ipaddrp, libipv6calc_db_wrapper_geolocation_record *recordp) { int result = 0, retval; char addrstring[IPV6CALC_STRING_MAX] = ""; IP2LocationRecord *record = NULL; #if API_VERSION_NUMERIC >= 80600 long long asn; char *end; #endif // API_VERSION_NUMERIC >= 80600 libipv6calc_db_wrapper_geolocation_record_clear(recordp); // convert to string retval = libipaddr_ipaddrstruct_to_string(ipaddrp, addrstring, sizeof(addrstring), 0); if ( retval != 0 ) { fprintf(stderr, "Error converting address object into string\n"); result = -1; goto END_libipv6calc_db_wrapper; }; #define TEST_IP2LOCATION_AVAILABLE(v) ((v != NULL) && (strstr(v, "unavailable") == NULL) && (strstr(v, " sample BIN ") == NULL) && (strstr(v, "INVALID") == NULL) && (strstr(v, "-") == NULL)) record = libipv6calc_db_wrapper_IP2Location_wrapper_record_city_by_addr((char*) addrstring, ipaddrp->proto); if (record != NULL) { // country, city and other details if (TEST_IP2LOCATION_AVAILABLE(record->country_long)) { snprintf(recordp->country_long, IPV6CALC_DB_SIZE_COUNTRY_LONG, "%s", record->country_long); }; if (TEST_IP2LOCATION_AVAILABLE(record->country_short)) { snprintf(recordp->country_code, IPV6CALC_DB_SIZE_COUNTRY_CODE, "%s", record->country_short); }; if (TEST_IP2LOCATION_AVAILABLE(record->region)) { snprintf(recordp->stateprov, IPV6CALC_DB_SIZE_STATEPROV, "%s", record->region); }; if (TEST_IP2LOCATION_AVAILABLE(record->city)) { snprintf(recordp->city, IPV6CALC_DB_SIZE_CITY, "%s", record->city); }; if (TEST_IP2LOCATION_AVAILABLE(record->isp)) { snprintf(recordp->isp_name, IPV6CALC_DB_SIZE_ISP_NAME, "%s", record->isp); }; if (TEST_IP2LOCATION_AVAILABLE(record->zipcode)) { snprintf(recordp->zipcode, IPV6CALC_DB_SIZE_ZIPCODE, "%s", record->zipcode); }; if (TEST_IP2LOCATION_AVAILABLE(record->timezone)) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "parse timezone: %s", record->timezone); // IP2Location supplies time zone as char int hour, minute; int result = sscanf(record->timezone, "%d:%d", &hour, &minute); if (result == 2) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "result of timezone parsing: hour=%d minute=%d", hour, minute); recordp->timezone_offset = hour + ((float) minute) / 60; }; }; if (record->latitude != 0) { recordp->latitude = record->latitude; }; if (record->longitude != 0) { recordp->longitude = record->longitude; }; if (TEST_IP2LOCATION_AVAILABLE(record->areacode)) { snprintf(recordp->area_code, IPV6CALC_DB_SIZE_AREA_CODE, "%s", record->areacode); }; if (TEST_IP2LOCATION_AVAILABLE(record->domain)) { snprintf(recordp->domain, IPV6CALC_DB_SIZE_DOMAIN, "%s", record->domain); }; if (TEST_IP2LOCATION_AVAILABLE(record->netspeed)) { snprintf(recordp->connection_type, IPV6CALC_DB_SIZE_CONN_TYPE, "%s", record->netspeed); }; if (TEST_IP2LOCATION_AVAILABLE(record->iddcode)) { snprintf(recordp->idd_code, IPV6CALC_DB_SIZE_IDD_CODE, "%s", record->iddcode); }; if (TEST_IP2LOCATION_AVAILABLE(record->weatherstationcode)) { snprintf(recordp->weatherstationcode, IPV6CALC_DB_SIZE_WEATHERSTATIONCODE, "%s", record->weatherstationcode); }; if (TEST_IP2LOCATION_AVAILABLE(record->weatherstationname)) { snprintf(recordp->weatherstationname, IPV6CALC_DB_SIZE_WEATHERSTATIONNAME, "%s", record->weatherstationname); }; if (TEST_IP2LOCATION_AVAILABLE(record->mnc)) { snprintf(recordp->mobile_network_code, IPV6CALC_DB_SIZE_MOBILENETWORKCODE, "%s", record->mnc); }; if (TEST_IP2LOCATION_AVAILABLE(record->mcc)) { snprintf(recordp->mobile_country_code, IPV6CALC_DB_SIZE_MOBILECOUNTRYCODE, "%s", record->mcc); }; if (TEST_IP2LOCATION_AVAILABLE(record->mobilebrand)) { snprintf(recordp->mobile_brand, IPV6CALC_DB_SIZE_MOBILE_BRAND, "%s", record->mobilebrand); }; if (libipv6calc_db_wrapper_IP2Location_library_version_major() > 4) { if (TEST_IP2LOCATION_AVAILABLE(record->usagetype)) { snprintf(recordp->usage_type, IPV6CALC_DB_SIZE_USAGE_TYPE, "%s", record->usagetype); // add description char *token, *cptr = NULL, **ptrptr; char tempstring[IPV6CALC_STRING_MAX] = ""; char tempstring2[IPV6CALC_STRING_MAX] = ""; ptrptr = &cptr; token = strtok_r(record->usagetype, "/", ptrptr); while (token != NULL) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "split usage_type: %s", token); const char *desc = libipv6calc_db_wrapper_IP2Location_UsageType_description(token); if (desc != NULL) { snprintf(tempstring2, sizeof(tempstring2), "%s%s%s", tempstring, strlen(tempstring) > 0 ? "," : "", desc); snprintf(tempstring, sizeof(tempstring), "%s", tempstring2); }; // get next token token = strtok_r(NULL, " ", ptrptr); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "usage_type description: %s", tempstring); if (strlen(tempstring) > 0) { snprintf(tempstring2, sizeof(tempstring2), "%s (%s)", recordp->usage_type, tempstring); snprintf(recordp->usage_type, IPV6CALC_DB_SIZE_USAGE_TYPE, "%s", tempstring2); }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "usage_type complete: %s", recordp->usage_type); }; if (record->elevation != 0) { recordp->elevation = record->elevation; }; }; #if API_VERSION_NUMERIC >= 80600 if (libipv6calc_db_wrapper_IP2Location_library_version_majorminor() >= 806) { if (TEST_IP2LOCATION_AVAILABLE(record->district)) { snprintf(recordp->district, IPV6CALC_DB_SIZE_DISTRICT, "%s", record->district); }; if (TEST_IP2LOCATION_AVAILABLE(record->asn)) { errno = 0; asn = strtoll(record->asn, &end, 10); if ((errno == ERANGE) || (asn < 0) || (asn > UINT32_MAX)) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "can't convert AS number string to uint32_t as out-of-range: %s", record->asn); } else { recordp->asn = (uint32_t) asn; }; }; if (TEST_IP2LOCATION_AVAILABLE(record->as)) { snprintf(recordp->organization_name, IPV6CALC_DB_SIZE_ORG_NAME, "%s", record->as); }; }; #endif // API_VERSION_NUMERIC >= 80600 libipv6calc_db_wrapper_IP2Location_free_record(record); result = 0; } else { // fallback for Country Code / name record = libipv6calc_db_wrapper_IP2Location_wrapper_country_name_by_addr(addrstring, ipaddrp->proto); if (record != NULL) { if (TEST_IP2LOCATION_AVAILABLE(record->country_long)) { snprintf(recordp->country_long, IPV6CALC_DB_SIZE_COUNTRY_LONG, "%s", record->country_long); }; if (TEST_IP2LOCATION_AVAILABLE(record->country_short)) { snprintf(recordp->country_code, IPV6CALC_DB_SIZE_COUNTRY_CODE, "%s", record->country_short); }; libipv6calc_db_wrapper_IP2Location_free_record(record); result = 0; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "IP2Location returned no record for address: %s", addrstring); }; }; END_libipv6calc_db_wrapper: return(result); }; #endif // SUPPORT_IP2LOCATION /* * function cleanup the IP2Location wrapper * * in : (nothing) * out: 0=ok, 1=error */ int libipv6calc_db_wrapper_IP2Location_wrapper_cleanup(void) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Called"); #ifdef SUPPORT_IP2LOCATION int i; for (i = 0; i < MAXENTRIES_ARRAY(libipv6calc_db_wrapper_IP2Location_db_file_desc); i++) { if (db_ptr_cache[i] != NULL) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Close IP2Location: type=%d desc='%s'", libipv6calc_db_wrapper_IP2Location_db_file_desc[i].number, libipv6calc_db_wrapper_IP2Location_db_file_desc[i].description); libipv6calc_db_wrapper_IP2Location_close(db_ptr_cache[i]); }; }; dl_IP2Location_handle = NULL; // disable handle #endif DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_IP2Location, "Finished"); return 0; }; ipv6calc-4.1.0/databases/lib/libipv6calc_db_wrapper_IP2Location.h000066400000000000000000000252211444154247200246500ustar00rootroot00000000000000/* * Project : ipv6calc * File : databases/lib/libipv6calc_db_wrapper_IP2Location.h * Copyright : 2013-2023 by Peter Bieringer * * Information: * Header file for libipv6calc_db_wrapper_IP2Location.c */ #include "ipv6calctypes.h" #ifndef _libipv6calc_db_wrapper_IP2Location_h #define _libipv6calc_db_wrapper_IP2Location_h 1 #ifdef SUPPORT_IP2LOCATION #include "IP2Location.h" #endif #define IP2LOCATION_IPV6_SUPPORT_UNKNOWN 0 #define IP2LOCATION_IPV6_SUPPORT_COMPAT 1 #define IP2LOCATION_IPV6_SUPPORT_FULL 2 #define IP2LOCATION_IPV6_SUPPORT_NOTEXISTS 3 // database types /*** Commercial ***/ #define IP2LOCATION_IPV4_DB1 1 #define IP2LOCATION_IPV4_DB2 2 #define IP2LOCATION_IPV4_DB3 3 #define IP2LOCATION_IPV4_DB4 4 #define IP2LOCATION_IPV4_DB5 5 #define IP2LOCATION_IPV4_DB6 6 #define IP2LOCATION_IPV4_DB7 7 #define IP2LOCATION_IPV4_DB8 8 #define IP2LOCATION_IPV4_DB9 9 #define IP2LOCATION_IPV4_DB10 10 #define IP2LOCATION_IPV4_DB11 11 #define IP2LOCATION_IPV4_DB12 12 #define IP2LOCATION_IPV4_DB13 13 #define IP2LOCATION_IPV4_DB14 14 #define IP2LOCATION_IPV4_DB15 15 #define IP2LOCATION_IPV4_DB16 16 #define IP2LOCATION_IPV4_DB17 17 #define IP2LOCATION_IPV4_DB18 18 #define IP2LOCATION_IPV4_DB19 19 #define IP2LOCATION_IPV4_DB20 20 #define IP2LOCATION_IPV4_DB21 21 #define IP2LOCATION_IPV4_DB22 22 #define IP2LOCATION_IPV4_DB23 23 #define IP2LOCATION_IPV4_DB24 24 #define IP2LOCATION_IPV4_DB25 25 #define IP2LOCATION_IPV4_DB26 26 #define IP2LOCATION_IPV6_DB1 101 #define IP2LOCATION_IPV6_DB2 102 #define IP2LOCATION_IPV6_DB3 103 #define IP2LOCATION_IPV6_DB4 104 #define IP2LOCATION_IPV6_DB5 105 #define IP2LOCATION_IPV6_DB6 106 #define IP2LOCATION_IPV6_DB7 107 #define IP2LOCATION_IPV6_DB8 108 #define IP2LOCATION_IPV6_DB9 109 #define IP2LOCATION_IPV6_DB10 110 #define IP2LOCATION_IPV6_DB11 111 #define IP2LOCATION_IPV6_DB12 112 #define IP2LOCATION_IPV6_DB13 113 #define IP2LOCATION_IPV6_DB14 114 #define IP2LOCATION_IPV6_DB15 115 #define IP2LOCATION_IPV6_DB16 116 #define IP2LOCATION_IPV6_DB17 117 #define IP2LOCATION_IPV6_DB18 118 #define IP2LOCATION_IPV6_DB19 119 #define IP2LOCATION_IPV6_DB20 120 #define IP2LOCATION_IPV6_DB21 121 #define IP2LOCATION_IPV6_DB22 122 #define IP2LOCATION_IPV6_DB23 123 #define IP2LOCATION_IPV6_DB24 124 #define IP2LOCATION_IPV6_DB25 125 #define IP2LOCATION_IPV6_DB26 126 /* SAMPLE */ #define IP2LOCATION_IPV4_SAMPLE_DB1 201 #define IP2LOCATION_IPV4_SAMPLE_DB2 202 #define IP2LOCATION_IPV4_SAMPLE_DB3 203 #define IP2LOCATION_IPV4_SAMPLE_DB4 204 #define IP2LOCATION_IPV4_SAMPLE_DB5 205 #define IP2LOCATION_IPV4_SAMPLE_DB6 206 #define IP2LOCATION_IPV4_SAMPLE_DB7 207 #define IP2LOCATION_IPV4_SAMPLE_DB8 208 #define IP2LOCATION_IPV4_SAMPLE_DB9 209 #define IP2LOCATION_IPV4_SAMPLE_DB10 210 #define IP2LOCATION_IPV4_SAMPLE_DB11 211 #define IP2LOCATION_IPV4_SAMPLE_DB12 212 #define IP2LOCATION_IPV4_SAMPLE_DB13 213 #define IP2LOCATION_IPV4_SAMPLE_DB14 214 #define IP2LOCATION_IPV4_SAMPLE_DB15 215 #define IP2LOCATION_IPV4_SAMPLE_DB16 216 #define IP2LOCATION_IPV4_SAMPLE_DB17 217 #define IP2LOCATION_IPV4_SAMPLE_DB18 218 #define IP2LOCATION_IPV4_SAMPLE_DB19 219 #define IP2LOCATION_IPV4_SAMPLE_DB20 220 #define IP2LOCATION_IPV4_SAMPLE_DB21 221 #define IP2LOCATION_IPV4_SAMPLE_DB22 222 #define IP2LOCATION_IPV4_SAMPLE_DB23 223 #define IP2LOCATION_IPV4_SAMPLE_DB24 224 #define IP2LOCATION_IPV4_SAMPLE_DB25 225 #define IP2LOCATION_IPV4_SAMPLE_DB26 226 #define IP2LOCATION_IPV6_SAMPLE_DB1 301 #define IP2LOCATION_IPV6_SAMPLE_DB2 302 #define IP2LOCATION_IPV6_SAMPLE_DB3 303 #define IP2LOCATION_IPV6_SAMPLE_DB4 304 #define IP2LOCATION_IPV6_SAMPLE_DB5 305 #define IP2LOCATION_IPV6_SAMPLE_DB6 306 #define IP2LOCATION_IPV6_SAMPLE_DB7 307 #define IP2LOCATION_IPV6_SAMPLE_DB8 308 #define IP2LOCATION_IPV6_SAMPLE_DB9 309 #define IP2LOCATION_IPV6_SAMPLE_DB10 310 #define IP2LOCATION_IPV6_SAMPLE_DB11 311 #define IP2LOCATION_IPV6_SAMPLE_DB12 312 #define IP2LOCATION_IPV6_SAMPLE_DB13 313 #define IP2LOCATION_IPV6_SAMPLE_DB14 314 #define IP2LOCATION_IPV6_SAMPLE_DB15 315 #define IP2LOCATION_IPV6_SAMPLE_DB16 316 #define IP2LOCATION_IPV6_SAMPLE_DB17 317 #define IP2LOCATION_IPV6_SAMPLE_DB18 318 #define IP2LOCATION_IPV6_SAMPLE_DB19 319 #define IP2LOCATION_IPV6_SAMPLE_DB20 320 #define IP2LOCATION_IPV6_SAMPLE_DB21 321 #define IP2LOCATION_IPV6_SAMPLE_DB22 322 #define IP2LOCATION_IPV6_SAMPLE_DB23 323 #define IP2LOCATION_IPV6_SAMPLE_DB24 324 #define IP2LOCATION_IPV6_SAMPLE_DB25 325 #define IP2LOCATION_IPV6_SAMPLE_DB26 326 /* LITE */ #define IP2LOCATION_DB_IP_COUNTRY_LITE 401 #define IP2LOCATION_DB_IPV6_COUNTRY_LITE 501 #define IP2LOCATION_DB_IP_COUNTRY_REG_CIT_LITE 403 #define IP2LOCATION_DB_IPV6_COUNTRY_REG_CIT_LITE 503 #define IP2LOCATION_DB_IP_COUNTRY_REG_CIT_LL_LITE 405 #define IP2LOCATION_DB_IPV6_COUNTRY_REG_CIT_LL_LITE 505 #define IP2LOCATION_DB_IP_COUNTRY_REG_CIT_LL_ZIP_LITE 409 #define IP2LOCATION_DB_IPV6_COUNTRY_REG_CIT_LL_ZIP_LITE 509 #define IP2LOCATION_DB_IP_COUNTRY_REG_CIT_LL_ZIP_TZ_LITE 411 #define IP2LOCATION_DB_IPV6_COUNTRY_REG_CIT_LL_ZIP_TZ_LITE 511 /* FREE (old) */ #define IP2LOCATION_DB_IPV6_COUNTRY_FREE 666 #define IP2LOCATION_DB_MAX IP2LOCATION_DB_IPV6_COUNTRY_FREE #define IP2LOCATION_DB_YEAR_MIN 2010 // older databases are ignored // shortcuts #define IPV6CALC_DB_SC_IP2LOCATION_IPV4_COUNTRY (IPV6CALC_DB_IPV4_TO_CC | IPV6CALC_DB_IPV4_TO_COUNTRY | IPV6CALC_DB_IP2LOCATION_IPV4) #define IPV6CALC_DB_SC_IP2LOCATION_IPV4_CITY (IPV6CALC_DB_IPV4_TO_CC | IPV6CALC_DB_IPV4_TO_COUNTRY | IPV6CALC_DB_IP2LOCATION_IPV4 | IPV6CALC_DB_IPV4_TO_REGION | IPV6CALC_DB_IPV4_TO_CITY) #define IPV6CALC_DB_SC_IP2LOCATION_IPV4_ASN (IPV6CALC_DB_IPV4_TO_CC | IPV6CALC_DB_IPV4_TO_COUNTRY | IPV6CALC_DB_IP2LOCATION_IPV4 | IPV6CALC_DB_IPV4_TO_REGION | IPV6CALC_DB_IPV4_TO_CITY | IPV6CALC_DB_IPV4_TO_AS) #define IPV6CALC_DB_SC_IP2LOCATION_IPV6_COUNTRY (IPV6CALC_DB_IPV6_TO_CC | IPV6CALC_DB_IPV6_TO_COUNTRY | IPV6CALC_DB_IP2LOCATION_IPV6) #define IPV6CALC_DB_SC_IP2LOCATION_IPV6_CITY (IPV6CALC_DB_IPV6_TO_CC | IPV6CALC_DB_IPV6_TO_COUNTRY | IPV6CALC_DB_IP2LOCATION_IPV6 | IPV6CALC_DB_IPV6_TO_REGION | IPV6CALC_DB_IPV6_TO_CITY) #define IPV6CALC_DB_SC_IP2LOCATION_IPV6_ASN (IPV6CALC_DB_IPV6_TO_CC | IPV6CALC_DB_IPV6_TO_COUNTRY | IPV6CALC_DB_IP2LOCATION_IPV6 | IPV6CALC_DB_IPV6_TO_REGION | IPV6CALC_DB_IPV6_TO_CITY | IPV6CALC_DB_IPV6_TO_AS) #define IP2LOCATION_DB1 "Country" #define IP2LOCATION_DB2 "Country/ISP" #define IP2LOCATION_DB3 "Country/Region/City" #define IP2LOCATION_DB4 "Country/Region/City/ISP" #define IP2LOCATION_DB5 "Country/Region/City/LongitudeLattitude" #define IP2LOCATION_DB6 "Country/Region/City/LongLatt/ISP" #define IP2LOCATION_DB7 "Co/Re/Ci/ISP/Domain" #define IP2LOCATION_DB8 "Co/Re/Ci/LattLong/ISP/Domain" #define IP2LOCATION_DB9 "Co/Re/Ci/LattLong/ZIP" #define IP2LOCATION_DB10 "Co/Re/Ci/LattLong/ZIP/ISP/Domain" #define IP2LOCATION_DB11 "Co/Re/Ci/LattLong/ZIP/TZ" #define IP2LOCATION_DB12 "Co/Re/Ci/LaLo/ZI/TZ/IS/Domain" #define IP2LOCATION_DB13 "Co/Re/Ci/LaLo/TZ/NetSpeed" #define IP2LOCATION_DB14 "Co/Re/Ci/LaLo/ZI/TZ/ISP/Do/Netspeed" #define IP2LOCATION_DB15 "Co/Re/Ci/LaLo/ZIP/TZ/Area" #define IP2LOCATION_DB16 "Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Net/Area" #define IP2LOCATION_DB17 "Co/Re/Ci/LaLo/TZ/Net/Weather" #define IP2LOCATION_DB18 "Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Ne/Ar/Weather" #define IP2LOCATION_DB19 "Co/Re/Ci/LaLo/ISP/Dom/Mobile" #define IP2LOCATION_DB20 "Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Ne/Ar/We/Mo" #define IP2LOCATION_DB21 "Co/Re/Ci/LaLo/ZI/TZ/Area/Elevation" #define IP2LOCATION_DB22 "Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Ne/Ar/We/Mo/El" #define IP2LOCATION_DB23 "Co/Re/Ci/LaLo/ISP/Dom/Mobile/Usagetype" #define IP2LOCATION_DB24 "Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Ne/Ar/We/Mo/El/Us" #define IP2LOCATION_DB25 "Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Ne/Ar/We/Mo/El/Us/Ad/Ca" #define IP2LOCATION_DB26 "Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Ne/Ar/We/Mo/El/Us/Ad/Ca/Di/AS" #define IPV6CALC_DB_IP2LOCATION_INTERNAL_SAMPLE 0x00000001 #define IPV6CALC_DB_IP2LOCATION_INTERNAL_LITE 0x00000002 #define IPV6CALC_DB_IP2LOCATION_INTERNAL_FREE 0x00000004 #define IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_6 0x00000008 #define IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_8_4 0x00000010 #define IPV6CALC_DB_IP2LOCATION_INTERNAL_LIB_VERSION_8_6 0x00000020 // features extern uint32_t wrapper_features_IP2Location; #endif /* prototypes */ extern int libipv6calc_db_wrapper_IP2Location_wrapper_init(void); extern int libipv6calc_db_wrapper_IP2Location_wrapper_cleanup(void); extern uint32_t libipv6calc_db_wrapper_IP2Location_wrapper_asn_by_addr(const ipv6calc_ipaddr *ipaddrp); extern void libipv6calc_db_wrapper_IP2Location_wrapper_info(char* string, const size_t size); extern void libipv6calc_db_wrapper_IP2Location_wrapper_print_db_info(const int level_verbose, const char *prefix_string); extern char *libipv6calc_db_wrapper_IP2Location_wrapper_db_info_used(void); extern int libipv6calc_db_wrapper_IP2Location_wrapper_country_code_by_addr(char *addr, const int proto, char *country, const size_t country_len); extern int libipv6calc_db_wrapper_IP2Location_has_features(uint32_t features); extern int libipv6calc_db_wrapper_IP2Location_library_version_major(void); extern int libipv6calc_db_wrapper_IP2Location_library_version_majorminor(void); #ifdef SUPPORT_IP2LOCATION extern char ip2location_lib_file[PATH_MAX]; extern char ip2location_db_dir[PATH_MAX]; extern int libipv6calc_db_wrapper_IP2Location_db_avail(const unsigned int type); extern char *libipv6calc_db_wrapper_IP2Location_lib_version(void); extern IP2Location *libipv6calc_db_wrapper_IP2Location_open(char *db); extern IP2Location *libipv6calc_db_wrapper_IP2Location_open_type(const unsigned int type); extern int libipv6calc_db_wrapper_IP2Location_close(IP2Location *loc); extern IP2LocationRecord *libipv6calc_db_wrapper_IP2Location_get_all(IP2Location *loc, char *ip); void libipv6calc_db_wrapper_IP2Location_free_record(IP2LocationRecord *record); extern const char *libipv6calc_db_wrapper_IP2Location_dbdescription(const unsigned int type); extern char *libipv6calc_db_wrapper_IP2Location_database_info(IP2Location *loc, const int level_verbose, const int entry, const int flag_copyright); extern const char *libipv6calc_db_wrapper_IP2Location_UsageType_description(char *UsageType); extern int ip2location_db_lite_to_sample_autoswitch_max_delta_months; extern int ip2location_db_comm_to_lite_switch_min_delta_months; extern int ip2location_db_only_type; extern int ip2location_db_allow_softlinks; extern int libipv6calc_db_wrapper_IP2Location_all_by_addr(const ipv6calc_ipaddr *ipaddrp, libipv6calc_db_wrapper_geolocation_record *recordp); #endif ipv6calc-4.1.0/databases/lib/libipv6calc_db_wrapper_MMDB.c000066400000000000000000001245601444154247200233050ustar00rootroot00000000000000/* * Project : ipv6calc * File : databases/lib/libipv6calc_db_wrapper_MMDB.c * Version : $Id: 239da87caeecd331a6074c5f9fd07dedee2023ea $ * Copyright : 2019-2021 by Peter Bieringer * * Information: * ipv6calc MaxMindDB database wrapper * - decoupling databases from main binary * - optional support of dynamic library loading (based on config.h) * - contains some generic wrapper functions */ #include #include #include #include "config.h" #include "libipv6calcdebug.h" #include "libipv6addr.h" #include "libipv6calc_db_wrapper.h" #ifdef SUPPORT_MMDB #include "libipv6calc_db_wrapper_MMDB.h" #ifdef SUPPORT_MMDB_DYN char mmdb_lib_file[PATH_MAX] = MMDB_DYN_LIB; static const char* wrapper_mmdb_info = "dyn-load"; /* define status and dynamic load functions */ static int dl_status_MMDB_open = IPV6CALC_DL_STATUS_UNKNOWN; typedef int (*dl_MMDB_open_t)(const char *filename, int flags, MMDB_s *const mmdb); static union { dl_MMDB_open_t func; void * obj; } dl_MMDB_open; static int dl_status_MMDB_close = IPV6CALC_DL_STATUS_UNKNOWN; typedef void (*dl_MMDB_close_t)(MMDB_s *const mmdb); static union { dl_MMDB_close_t func; void * obj; } dl_MMDB_close; static int dl_status_MMDB_lib_version = IPV6CALC_DL_STATUS_UNKNOWN; typedef char *(*dl_MMDB_lib_version_t)(void); static union { dl_MMDB_lib_version_t func; void * obj; } dl_MMDB_lib_version; static int dl_status_MMDB_aget_value = IPV6CALC_DL_STATUS_UNKNOWN; typedef int (*dl_MMDB_aget_value_t)(MMDB_entry_s *const start, MMDB_entry_data_s *const entry_data, const char *const *const path); static union { dl_MMDB_aget_value_t func; void * obj; } dl_MMDB_aget_value; static int dl_status_MMDB_get_entry_data_list = IPV6CALC_DL_STATUS_UNKNOWN; typedef int (*dl_MMDB_get_entry_data_list_t)(MMDB_entry_s *start, MMDB_entry_data_list_s **const entry_data_list); static union { dl_MMDB_get_entry_data_list_t func; void * obj; } dl_MMDB_get_entry_data_list; static int dl_status_MMDB_free_entry_data_list = IPV6CALC_DL_STATUS_UNKNOWN; typedef int (*dl_MMDB_free_entry_data_list_t)(MMDB_entry_data_list_s *const entry_data_list); static union { dl_MMDB_free_entry_data_list_t func; void * obj; } dl_MMDB_free_entry_data_list; static int dl_status_MMDB_dump_entry_data_list = IPV6CALC_DL_STATUS_UNKNOWN; typedef int (*dl_MMDB_dump_entry_data_list_t)(FILE *const stream, MMDB_entry_data_list_s *const entry_data_list, int indent); static union { dl_MMDB_dump_entry_data_list_t func; void * obj; } dl_MMDB_dump_entry_data_list; static int dl_status_MMDB_lookup_sockaddr = IPV6CALC_DL_STATUS_UNKNOWN; typedef MMDB_lookup_result_s (*dl_MMDB_lookup_sockaddr_t)(MMDB_s *const mmdb, const struct sockaddr *const sockaddr, int *const mmdb_error); static union { dl_MMDB_lookup_sockaddr_t func; void * obj; } dl_MMDB_lookup_sockaddr; static int dl_status_MMDB_strerror = IPV6CALC_DL_STATUS_UNKNOWN; typedef const char *(*dl_MMDB_strerror_t)(int error_code); static union { dl_MMDB_strerror_t func; void * obj; } dl_MMDB_strerror; #else // SUPPORT_MMDB_DYN static const char* wrapper_mmdb_info = "built-in"; #endif // SUPPORT_MMDB_DYN static void *dl_MMDB_handle = NULL; #define CHECK_STORE(MAXLEN, STORE, DESC) \ if (entry_data.has_data) { \ if (entry_data.type == MMDB_DATA_TYPE_UTF8_STRING) { \ int max = (entry_data.data_size + 1 > MAXLEN) ? MAXLEN : entry_data.data_size +1; \ snprintf(STORE, max , "%s", entry_data.utf8_string); \ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "%s: %s", DESC, STORE); \ } else { \ ERRORPRINT_WA("Lookup result from MaxMindDB has unexpected type for %s: %u", DESC, entry_data.type); \ }; \ } else { \ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "%s not found", DESC); \ }; #define CHECK_STORE_DOUBLE(STORE, DESC) \ if (entry_data.has_data) { \ if (entry_data.type == MMDB_DATA_TYPE_DOUBLE) { \ STORE = entry_data.double_value; \ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "%s: %lf", DESC, STORE); \ } else { \ ERRORPRINT_WA("Lookup result from MaxMindDB has unexpected type for %s: %u", DESC, entry_data.type); \ }; \ } else { \ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "%s not found", DESC); \ }; #define CHECK_STORE_UINT32(STORE, DESC) \ if (entry_data.has_data) { \ if (entry_data.type == MMDB_DATA_TYPE_UINT32) { \ STORE = entry_data.uint32; \ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "%s: %u", DESC, STORE); \ } else { \ ERRORPRINT_WA("Lookup result from MaxMindDB has unexpected type for %s: %u", DESC, entry_data.type); \ }; \ } else { \ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "%s not found", DESC); \ }; #define CHECK_STORE_UINT16(STORE, DESC) \ if (entry_data.has_data) { \ if (entry_data.type == MMDB_DATA_TYPE_UINT16) { \ STORE = entry_data.uint16; \ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "%s: %u", DESC, STORE); \ } else { \ ERRORPRINT_WA("Lookup result from MaxMindDB has unexpected type for %s: %u", DESC, entry_data.type); \ }; \ } else { \ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "%s not found", DESC); \ }; /* * function initialise the MMDB wrapper * * in : (nothing) * out: 0=ok, 1=error, 2=not found, 3=unknown */ int libipv6calc_db_wrapper_MMDB_wrapper_init(void) { int result = 3; DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called"); #ifdef SUPPORT_MMDB_DYN DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Load library: %s", mmdb_lib_file); dlerror(); /* Clear any existing error */ dl_MMDB_handle = dlopen(mmdb_lib_file, RTLD_NOW | RTLD_LOCAL); if (dl_MMDB_handle == NULL) { const char *error = dlerror(); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Load of library not successful: %s (%s)", mmdb_lib_file, error); if (strstr(error, "such file") != NULL) { result = 2; goto END_libipv6calc_db_wrapper; }; if ((strcmp(mmdb_lib_file, MMDB_DYN_LIB) != 0) || (ipv6calc_verbose > 0)) { NONQUIETPRINT_WA("MMDB dynamic library load failed by problem with specified library (disable support): %s (%s)", mmdb_lib_file, error) }; result = 1; } else { result = 0; }; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Loaded library successful: %s", mmdb_lib_file); END_libipv6calc_db_wrapper: #else // SUPPORT_MMDB_DYN // todo: library version check result = 0; #endif // SUPPORT_MMDB_DYN return(result); }; /* * function cleanup the MMDB wrapper * * in : (nothing) * out: (nothing) */ void libipv6calc_db_wrapper_MMDB_wrapper_cleanup(void) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called"); #ifdef SUPPORT_MMDB //libipv6calc_db_wrapper_MMDB_cleanup(); #endif dl_MMDB_handle = NULL; // disable handle DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "Finished"); return; }; /* * function info of MMDB wrapper * * in : ptr and size of string to be filled * out: modified string; */ void libipv6calc_db_wrapper_MMDB_wrapper_info(char* string, const size_t size) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called"); #ifdef SUPPORT_MMDB snprintf(string, size, "MMDB support active"); #else snprintf(string, size, "No MMDB support built-in"); #endif DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "Finished"); return; }; /*********************************************** * Generic wrapper functions for MMDB for alignment ***********************************************/ /* * function cleanup the MMDB wrapper * * in : (nothing) * out: (nothing) */ void libipv6calc_db_wrapper_MMDB_cleanup(void) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called"); DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "Not required for MMDB"); DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "Finished"); return; }; /*********************************************** * Wrapper functions for MMDB library * autoswitch between dynamically linked/loaded ***********************************************/ /* * wrapper: MMDB_lib_version */ const char *libipv6calc_db_wrapper_MMDB_lib_version(void) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called: %s", wrapper_mmdb_info); #ifdef SUPPORT_MMDB_DYN char *result_MMDB_lib_version = "unknown"; const char *dl_symbol = "MMDB_lib_version"; char *error; if (dl_MMDB_handle == NULL) { result_MMDB_lib_version = "LIBRARY-NOT-LOADED"; goto END_libipv6calc_db_wrapper; }; if (dl_status_MMDB_lib_version == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_MMDB_lib_version.obj) = dlsym(dl_MMDB_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_MMDB_lib_version = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_MMDB_lib_version = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_MMDB_lib_version == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ result_MMDB_lib_version = (*dl_MMDB_lib_version.func)(); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: return(result_MMDB_lib_version); #else // SUPPORT_MMDB_DYN return(MMDB_lib_version()); #endif }; /* * wrapper: MMDB_open */ int libipv6calc_db_wrapper_MMDB_open(const char *const filename, uint32_t flags, MMDB_s *const mmdb) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called: %s filename=%s", wrapper_mmdb_info, filename); #ifdef SUPPORT_MMDB_DYN int r = MMDB_FILE_OPEN_ERROR; const char *dl_symbol = "MMDB_open"; char *error; if (dl_MMDB_handle == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "dl_MMDB_handle not defined"); goto END_libipv6calc_db_wrapper; }; if (dl_status_MMDB_open == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_MMDB_open.obj) = dlsym(dl_MMDB_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_MMDB_open = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_MMDB_open = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_MMDB_open == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ r = (*dl_MMDB_open.func)(filename, flags, mmdb); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: return(r); #else return(MMDB_open(filename, flags, mmdb)); #endif }; /* * wrapper: MMDB_close */ void libipv6calc_db_wrapper_MMDB_close(MMDB_s* mmdb) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called: %s", wrapper_mmdb_info); if (mmdb == NULL) { return; }; #ifdef SUPPORT_MMDB_DYN const char *dl_symbol = "MMDB_close"; char *error; if (dl_MMDB_handle == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "dl_MMDB_handle not defined"); goto END_libipv6calc_db_wrapper; }; if (dl_status_MMDB_close == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_MMDB_close) = dlsym(dl_MMDB_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_MMDB_close = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_MMDB_close = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_MMDB_close == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ (*dl_MMDB_close.func)(mmdb); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: #else MMDB_close(mmdb); #endif return; }; /* * wrapper: MMDB_aget_value */ int libipv6calc_db_wrapper_MMDB_aget_value (MMDB_entry_s *const start, MMDB_entry_data_s *const entry_data, const char *const *const path) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called: %s", wrapper_mmdb_info); #ifdef SUPPORT_MMDB_DYN int result_MMDB_aget_value = 0; const char *dl_symbol = "MMDB_aget_value"; char *error; if (dl_MMDB_handle == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "dl_MMDB_handle not defined"); goto END_libipv6calc_db_wrapper; }; if (dl_status_MMDB_aget_value == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_MMDB_aget_value.obj) = dlsym(dl_MMDB_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_MMDB_aget_value = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_MMDB_aget_value = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_MMDB_aget_value == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ result_MMDB_aget_value = (*dl_MMDB_aget_value.func)(start, entry_data, path); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: return(result_MMDB_aget_value); #else return(MMDB_aget_value(start, entry_data, path)); #endif }; /* * wrapper: MMDB_get_entry_data_list */ int libipv6calc_db_wrapper_MMDB_get_entry_data_list (MMDB_entry_s *start, MMDB_entry_data_list_s **const entry_data_list) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called: %s", wrapper_mmdb_info); #ifdef SUPPORT_MMDB_DYN int result_MMDB_get_entry_data_list = 0; const char *dl_symbol = "MMDB_get_entry_data_list"; char *error; if (dl_MMDB_handle == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "dl_MMDB_handle not defined"); goto END_libipv6calc_db_wrapper; }; if (dl_status_MMDB_get_entry_data_list == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_MMDB_get_entry_data_list.obj) = dlsym(dl_MMDB_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_MMDB_get_entry_data_list = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_MMDB_get_entry_data_list = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_MMDB_get_entry_data_list == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ result_MMDB_get_entry_data_list = (*dl_MMDB_get_entry_data_list.func)(start, entry_data_list); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: return(result_MMDB_get_entry_data_list); #else return(MMDB_get_entry_data_list(start, entry_data_list)); #endif }; /* * wrapper: MMDB_free_entry_data_list */ void libipv6calc_db_wrapper_MMDB_free_entry_data_list(MMDB_entry_data_list_s *const entry_data_list) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called: %s", wrapper_mmdb_info); #ifdef SUPPORT_MMDB_DYN const char *dl_symbol = "MMDB_free_entry_data_list"; char *error; if (dl_MMDB_handle == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "dl_MMDB_handle not defined"); goto END_libipv6calc_db_wrapper; }; if (dl_status_MMDB_free_entry_data_list == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_MMDB_free_entry_data_list.obj) = dlsym(dl_MMDB_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_MMDB_free_entry_data_list = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_MMDB_free_entry_data_list = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_MMDB_free_entry_data_list == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ (*dl_MMDB_free_entry_data_list.func)(entry_data_list); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: return; #else MMDB_free_entry_data_list(entry_data_list); #endif }; /* * wrapper: MMDB_dump_entry_data_list */ int libipv6calc_db_wrapper_MMDB_dump_entry_data_list(FILE *const stream, MMDB_entry_data_list_s *const entry_data_list, int indent) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called: %s", wrapper_mmdb_info); #ifdef SUPPORT_MMDB_DYN const char *dl_symbol = "MMDB_dump_entry_data_list"; char *error; int result_MMDB_dump_entry_data_list = 0; if (dl_MMDB_handle == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "dl_MMDB_handle not defined"); goto END_libipv6calc_db_wrapper; }; if (dl_status_MMDB_dump_entry_data_list == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_MMDB_dump_entry_data_list.obj) = dlsym(dl_MMDB_handle, dl_symbol); if ((error = dlerror()) != NULL) { dl_status_MMDB_dump_entry_data_list = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_MMDB_dump_entry_data_list = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_MMDB_dump_entry_data_list == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ result_MMDB_dump_entry_data_list = (*dl_MMDB_dump_entry_data_list.func)(stream, entry_data_list, indent); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: return(result_MMDB_dump_entry_data_list); #else return MMDB_dump_entry_data_list(stream, entry_data_list, indent); #endif }; /* * wrapper: MMDB_lookup_sockaddr */ MMDB_lookup_result_s libipv6calc_db_wrapper_MMDB_lookup_sockaddr (MMDB_s *const mmdb, const struct sockaddr *const sockaddr, int *const mmdb_error) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called: %s", wrapper_mmdb_info); #ifdef SUPPORT_MMDB_DYN MMDB_lookup_result_s result_MMDB_lookup_sockaddr = {false, { NULL, 0}, 0}; const char *dl_symbol = "MMDB_lookup_sockaddr"; char *error; if (dl_MMDB_handle == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "dl_MMDB_handle not defined"); goto END_libipv6calc_db_wrapper; }; if (dl_status_MMDB_lookup_sockaddr == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_MMDB_lookup_sockaddr.obj) = dlsym(dl_MMDB_handle, "MMDB_lookup_sockaddr"); if ((error = dlerror()) != NULL) { dl_status_MMDB_lookup_sockaddr = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_MMDB_lookup_sockaddr = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_MMDB_lookup_sockaddr == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ result_MMDB_lookup_sockaddr = (*dl_MMDB_lookup_sockaddr.func)(mmdb, sockaddr, mmdb_error); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: return(result_MMDB_lookup_sockaddr); #else return(MMDB_lookup_sockaddr(mmdb, sockaddr, mmdb_error)); #endif }; /* * wrapper: MMDB_strerror */ const char *libipv6calc_db_wrapper_MMDB_strerror (int error_code) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called: %s", wrapper_mmdb_info); #ifdef SUPPORT_MMDB_DYN const char *result_MMDB_strerror = ""; const char *dl_symbol = "MMDB_strerror"; char *error; if (dl_MMDB_handle == NULL) { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "dl_MMDB_handle not defined"); goto END_libipv6calc_db_wrapper; }; if (dl_status_MMDB_strerror == IPV6CALC_DL_STATUS_UNKNOWN) { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Call dlsym: %s", dl_symbol); dlerror(); /* Clear any existing error */ *(void **) (&dl_MMDB_strerror.obj) = dlsym(dl_MMDB_handle, "MMDB_strerror"); if ((error = dlerror()) != NULL) { dl_status_MMDB_strerror = IPV6CALC_DL_STATUS_ERROR; fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; dl_status_MMDB_strerror = IPV6CALC_DL_STATUS_OK; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Called dlsym successful: %s", dl_symbol); } else if (dl_status_MMDB_strerror == IPV6CALC_DL_STATUS_ERROR) { /* already known issue */ DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already failed: %s", dl_symbol); goto END_libipv6calc_db_wrapper; } else { DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "Previous call of dlsym already successful: %s", dl_symbol); }; dlerror(); /* Clear any existing error */ result_MMDB_strerror = (*dl_MMDB_strerror.func)(error_code); if ((error = dlerror()) != NULL) { fprintf(stderr, "%s\n", error); goto END_libipv6calc_db_wrapper; }; END_libipv6calc_db_wrapper: return(result_MMDB_strerror); #else return(MMDB_strerror(error_code)); #endif }; /*********************************************** * Special wrapper functions for MMDB to avoid duplicate code ***********************************************/ /* Lookup By Addr * in : ipaddrp, mmdb * mod: mmdb_error * out: MMDB_lookup_result_s */ MMDB_lookup_result_s libipv6calc_db_wrapper_MMDB_wrapper_lookup_by_addr (const ipv6calc_ipaddr *ipaddrp, MMDB_s *const mmdb, int *const mmdb_error) { MMDB_lookup_result_s lookup_result; lookup_result.found_entry = false; // convert ipaddrp into sockaddr union sockaddr_u { struct sockaddr_in in; struct sockaddr_in6 in6; struct sockaddr sockaddr; } su; if (ipaddrp->proto == 4) { su.sockaddr.sa_family = AF_INET; su.in.sin_addr.s_addr = htonl(ipaddrp->addr[0]); } else if (ipaddrp->proto == 6) { su.sockaddr.sa_family = AF_INET6; #ifdef __KAME__ // FreeBSD misses s6_addr8/16/32 in non-kernel include, also union has different name in glibc (__in6_u vs. __u6_addr) :-( su.in6.sin6_addr.__u6_addr.__u6_addr32[0] = htonl(ipaddrp->addr[0]); su.in6.sin6_addr.__u6_addr.__u6_addr32[1] = htonl(ipaddrp->addr[1]); su.in6.sin6_addr.__u6_addr.__u6_addr32[2] = htonl(ipaddrp->addr[2]); su.in6.sin6_addr.__u6_addr.__u6_addr32[3] = htonl(ipaddrp->addr[3]); #else su.in6.sin6_addr.s6_addr32[0] = htonl(ipaddrp->addr[0]); su.in6.sin6_addr.s6_addr32[1] = htonl(ipaddrp->addr[1]); su.in6.sin6_addr.s6_addr32[2] = htonl(ipaddrp->addr[2]); su.in6.sin6_addr.s6_addr32[3] = htonl(ipaddrp->addr[3]); #endif } else { *mmdb_error = MMDB_INVALID_DATA_ERROR; goto END_libipv6calc_db_wrapper; }; lookup_result = libipv6calc_db_wrapper_MMDB_lookup_sockaddr(mmdb, &su.sockaddr, mmdb_error); END_libipv6calc_db_wrapper: return(lookup_result); }; /* Country Code By Addr * in : ipaddrp, country_len, country, mmdb * mod: country * out: mmdb_error */ int libipv6calc_db_wrapper_MMDB_country_code_by_addr(const ipv6calc_ipaddr *ipaddrp, char *country, const size_t country_len, MMDB_s *const mmdb) { MMDB_lookup_result_s lookup_result; MMDB_entry_data_s entry_data; int mmdb_error = MMDB_INVALID_DATA_ERROR; lookup_result = libipv6calc_db_wrapper_MMDB_wrapper_lookup_by_addr(ipaddrp, mmdb, &mmdb_error); if (mmdb_error != MMDB_SUCCESS) { goto END_libipv6calc_db_wrapper; }; // fetch CountryCode const char *lookup_path_country_code[] = { "country", "iso_code", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_country_code); if (entry_data.has_data) { if (entry_data.type == MMDB_DATA_TYPE_UTF8_STRING) { int max = (entry_data.data_size + 1 > country_len) ? country_len : entry_data.data_size +1; snprintf(country, max , "%s", entry_data.utf8_string); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "CountryCode: %s", country); } else { ERRORPRINT_WA("Lookup result from MaxMindDB has unexpected type for CountryCode: %u", entry_data.type); }; } else { // fetch CountryCode from fallback (registered_country) const char *lookup_path_registered_country_code[] = { "registered_country", "iso_code", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_registered_country_code); if (entry_data.has_data) { if (entry_data.type == MMDB_DATA_TYPE_UTF8_STRING) { int max = (entry_data.data_size + 1 > country_len) ? country_len : entry_data.data_size +1; snprintf(country, max , "%s", entry_data.utf8_string); DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "CountryCode(Registered): %s", country); } else { ERRORPRINT_WA("Lookup result from MaxMindDB has unexpected type for CountryCode(Registered): %u", entry_data.type); }; } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "CountryCode not found"); mmdb_error = MMDB_INVALID_DATA_ERROR; }; }; END_libipv6calc_db_wrapper: return(mmdb_error); }; /* ASN By Addr * in : ipaddrp, mmdb * out: asn */ uint32_t libipv6calc_db_wrapper_MMDB_asn_by_addr(const ipv6calc_ipaddr *ipaddrp, MMDB_s *const mmdb) { MMDB_lookup_result_s lookup_result; MMDB_entry_data_s entry_data; int mmdb_error = MMDB_INVALID_DATA_ERROR; uint32_t result = ASNUM_AS_UNKNOWN; lookup_result = libipv6calc_db_wrapper_MMDB_wrapper_lookup_by_addr(ipaddrp, mmdb, &mmdb_error); if (mmdb_error != MMDB_SUCCESS) { goto END_libipv6calc_db_wrapper; }; // fetch ASN if(strstr(mmdb->metadata.database_type, "ASN")) { // GeoLite2-ASN const char *lookup_path_asn[] = { "autonomous_system_number", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_asn); } else { const char *lookup_path_asn[] = { "traits", "autonomous_system_number", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_asn); }; if (entry_data.has_data) { if (entry_data.type == MMDB_DATA_TYPE_UINT32) { result = entry_data.uint32; DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "ASN: %u", result); } else { ERRORPRINT_WA("Lookup result from MaxMindDB has unexpected type for ASN: %u", entry_data.type); }; } else { DEBUGPRINT_NA(DEBUG_libipv6calc_db_wrapper_MMDB, "ASN not found"); mmdb_error = MMDB_INVALID_DATA_ERROR; }; END_libipv6calc_db_wrapper: return(result); }; /* GeonameID By Addr * in : ipaddrp, mmdb * mod: source * out: GeonameID */ uint32_t libipv6calc_db_wrapper_MMDB_GeonameID_by_addr(const ipv6calc_ipaddr *ipaddrp, MMDB_s *const mmdb, int *source_ptr) { MMDB_lookup_result_s lookup_result; MMDB_entry_data_s entry_data; int mmdb_error = MMDB_INVALID_DATA_ERROR; uint32_t result = IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN; int source = IPV6CALC_DB_GEO_GEONAMEID_TYPE_UNKNOWN; int limit_24bit = 0; if ((source_ptr != NULL) \ && ((*source_ptr & IPV6CALC_DB_GEO_GEONAMEID_TYPE_FLAG_MASK) == IPV6CALC_DB_GEO_GEONAMEID_TYPE_FLAG_24BIT)) { limit_24bit = 1; }; lookup_result = libipv6calc_db_wrapper_MMDB_wrapper_lookup_by_addr(ipaddrp, mmdb, &mmdb_error); if (mmdb_error != MMDB_SUCCESS) { goto END_libipv6calc_db_wrapper; }; // fetch GeonameID (nearest to global) // city const char *lookup_path_city_geonameid[] = { "city", "geoname_id", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_city_geonameid); CHECK_STORE_UINT32(result, "City/GeonameId") source = IPV6CALC_DB_GEO_GEONAMEID_TYPE_CITY; if ((result != IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) && ((limit_24bit == 0) || (source < 0x1000000))) { goto END_libipv6calc_db_wrapper; }; // district const char *lookup_path_district_geonameid[] = { "subdivisions", "1", "geoname_id", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_district_geonameid); CHECK_STORE_UINT32(result, "District(subdivision#1)/GeonameId") source = IPV6CALC_DB_GEO_GEONAMEID_TYPE_DISTRICT; if ((result != IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) && ((limit_24bit == 0) || (source < 0x1000000))) { goto END_libipv6calc_db_wrapper; }; // stateprov const char *lookup_path_stateprov_geonameid[] = { "subdivisions", "0", "geoname_id", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_stateprov_geonameid); CHECK_STORE_UINT32(result, "State/Prov(subdivsion#0)/GeonameId") source = IPV6CALC_DB_GEO_GEONAMEID_TYPE_STATEPROV; if ((result != IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) && ((limit_24bit == 0) || (source < 0x1000000))) { goto END_libipv6calc_db_wrapper; }; // country const char *lookup_path_country_geonameid[] = { "country", "geoname_id", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_country_geonameid); CHECK_STORE_UINT32(result, "Country/GeonameId") source = IPV6CALC_DB_GEO_GEONAMEID_TYPE_COUNTRY; if ((result != IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) && ((limit_24bit == 0) || (source < 0x1000000))) { goto END_libipv6calc_db_wrapper; }; // registered country (fallback) const char *lookup_path_registered_country_geonameid[] = { "registered_country", "geoname_id", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_registered_country_geonameid); CHECK_STORE_UINT32(result, "RegisteredCountry/GeonameId") source = IPV6CALC_DB_GEO_GEONAMEID_TYPE_COUNTRY; if ((result != IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) && ((limit_24bit == 0) || (source < 0x1000000))) { goto END_libipv6calc_db_wrapper; }; // continent const char *lookup_path_continent_geonameid[] = { "continent", "geoname_id", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_continent_geonameid); CHECK_STORE_UINT32(result, "Continent/GeonameId") source = IPV6CALC_DB_GEO_GEONAMEID_TYPE_CONTINENT; if ((result != IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) && ((limit_24bit == 0) || (source < 0x1000000))) { goto END_libipv6calc_db_wrapper; }; source = IPV6CALC_DB_GEO_GEONAMEID_TYPE_UNKNOWN; END_libipv6calc_db_wrapper: if (source_ptr != NULL) { *source_ptr = source; }; return(result); }; /* all information by addr * in : ipaddrp, recordp * mod: recordp * out: mmdb_error */ int libipv6calc_db_wrapper_MMDB_all_by_addr(const ipv6calc_ipaddr *ipaddrp, libipv6calc_db_wrapper_geolocation_record *recordp, MMDB_s *const mmdb) { MMDB_lookup_result_s lookup_result; MMDB_entry_data_s entry_data; int mmdb_error; static char resultstring[IPV6CALC_STRING_MAX]; libipv6calc_db_wrapper_geolocation_record_clear(recordp); // convert ipaddrp into sockaddr union sockaddr_u { struct sockaddr_in in; struct sockaddr_in6 in6; struct sockaddr sockaddr; } su; if (ipaddrp->proto == 4) { su.sockaddr.sa_family = AF_INET; su.in.sin_addr.s_addr = htonl(ipaddrp->addr[0]); } else if (ipaddrp->proto == 6) { su.sockaddr.sa_family = AF_INET6; #ifdef __KAME__ // FreeBSD misses s6_addr8/16/32 in non-kernel include, also union has different name in glibc (__in6_u vs. __u6_addr) :-( su.in6.sin6_addr.__u6_addr.__u6_addr32[0] = htonl(ipaddrp->addr[0]); su.in6.sin6_addr.__u6_addr.__u6_addr32[1] = htonl(ipaddrp->addr[1]); su.in6.sin6_addr.__u6_addr.__u6_addr32[2] = htonl(ipaddrp->addr[2]); su.in6.sin6_addr.__u6_addr.__u6_addr32[3] = htonl(ipaddrp->addr[3]); #else su.in6.sin6_addr.s6_addr32[0] = htonl(ipaddrp->addr[0]); su.in6.sin6_addr.s6_addr32[1] = htonl(ipaddrp->addr[1]); su.in6.sin6_addr.s6_addr32[2] = htonl(ipaddrp->addr[2]); su.in6.sin6_addr.s6_addr32[3] = htonl(ipaddrp->addr[3]); #endif } else { mmdb_error = MMDB_INVALID_DATA_ERROR; goto END_libipv6calc_db_wrapper; }; lookup_result = libipv6calc_db_wrapper_MMDB_lookup_sockaddr(mmdb, &su.sockaddr, &mmdb_error); if (mmdb_error != MMDB_SUCCESS) { ERRORPRINT_WA("Lookup results in error from MaxMindDB library: %s", libipv6calc_db_wrapper_MMDB_strerror(mmdb_error)); goto END_libipv6calc_db_wrapper; }; // dump contents for debug DEBUGSECTION_BEGIN(DEBUG_libipv6calc_db_wrapper_MMDB) MMDB_entry_data_list_s *entry_data_list = NULL; int status = libipv6calc_db_wrapper_MMDB_get_entry_data_list(&lookup_result.entry, &entry_data_list); if (status == MMDB_SUCCESS) { libipv6calc_db_wrapper_MMDB_dump_entry_data_list(stderr, entry_data_list, 2); }; libipv6calc_db_wrapper_MMDB_free_entry_data_list(entry_data_list); DEBUGSECTION_END // fetch CountryCode const char *lookup_path_country_code[] = { "country", "iso_code", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_country_code); if (!entry_data.has_data) { // fetch CountryCode (fallback) const char *lookup_path_registered_country_code[] = { "registered_country", "iso_code", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_registered_country_code); }; CHECK_STORE(IPV6CALC_DB_SIZE_COUNTRY_CODE, recordp->country_code, "CountryCode") // fetch CountryName const char *lookup_path_country_name[] = { "country", "names", "en", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_country_name); if (!entry_data.has_data) { // fetch CountryName (fallback) const char *lookup_path_registered_country_name[] = { "registered_country", "names", "en", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_registered_country_name); } CHECK_STORE(IPV6CALC_DB_SIZE_COUNTRY_LONG, recordp->country_long, "CountryName") // fetch ContinentCode const char *lookup_path_continent_code[] = { "continent", "code", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_continent_code); CHECK_STORE(IPV6CALC_DB_SIZE_CONTINENT_CODE, recordp->continent_code, "ContinentCode") // fetch ContinentName const char *lookup_path_continent_name[] = { "continent", "names", "en", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_continent_name); CHECK_STORE(IPV6CALC_DB_SIZE_CONTINENT_LONG, recordp->continent_long, "ContinentName") // fetch Location Latitude/Longitude const char *lookup_path_location_latitude[] = { "location", "latitude", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_location_latitude); CHECK_STORE_DOUBLE(recordp->latitude, "Latitude") const char *lookup_path_location_longitude[] = { "location", "longitude", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_location_longitude); CHECK_STORE_DOUBLE(recordp->longitude, "Longitude") // fetch accuracy_radius const char *lookup_path_location_radius[] = { "location", "accuracy_radius", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_location_radius); CHECK_STORE_UINT16(recordp->accuracy_radius, "Radius") // weather_code const char *lookup_path_location_weather_code[] = { "location", "weather_code", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_location_weather_code); CHECK_STORE(IPV6CALC_DB_SIZE_WEATHERSTATIONCODE, recordp->weatherstationcode, "WeatherStationCode") // fetch City const char *lookup_path_city_name[] = { "city", "names", "en", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_city_name); CHECK_STORE(IPV6CALC_DB_SIZE_CITY, recordp->city, "City") // fetch GeonameId of Continent const char *lookup_path_continent_geonameid[] = { "continent", "geoname_id", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_continent_geonameid); CHECK_STORE_UINT32(recordp->continent_geoname_id, "Continent/GeonameId") // fetch GeonameId of Country const char *lookup_path_country_geonameid[] = { "country", "geoname_id", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_country_geonameid); if (!entry_data.has_data) { // fetch GeonameId of Country (fallback) const char *lookup_path_registered_country_geonameid[] = { "registered_country", "geoname_id", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_registered_country_geonameid); }; CHECK_STORE_UINT32(recordp->country_geoname_id, "Country/GeonameId") // fetch GeonameId of City const char *lookup_path_city_geonameid[] = { "city", "geoname_id", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_city_geonameid); CHECK_STORE_UINT32(recordp->geoname_id, "City/GeonameId") // fetch postal code const char *lookup_path_zipcode[] = { "postal", "code", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_zipcode); CHECK_STORE(IPV6CALC_DB_SIZE_ZIPCODE, recordp->zipcode, "PostalCode") // time zone const char *lookup_path_timezone[] = { "location", "time_zone", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_timezone); CHECK_STORE(IPV6CALC_DB_SIZE_TIMEZONE_NAME, recordp->timezone_name, "TimeZoneName") // ISP const char *lookup_path_isp[] = { "traits", "isp", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_isp); CHECK_STORE(IPV6CALC_DB_SIZE_ISP_NAME, recordp->isp_name, "ISP") // connection type const char *lookup_path_connection_type[] = { "traits", "connection_type", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_connection_type); CHECK_STORE(IPV6CALC_DB_SIZE_CONN_TYPE, recordp->connection_type, "ConnectionType") // fetch ASN if(strstr(mmdb->metadata.database_type, "ASN")) { // GeoLite2-ASN const char *lookup_path_asn[] = { "autonomous_system_number", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_asn); } else { const char *lookup_path_asn[] = { "traits", "autonomous_system_number", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_asn); }; CHECK_STORE_UINT32(recordp->asn, "Autonomous System Number"); // organization name if(strstr(mmdb->metadata.database_type, "ASN")) { // GeoLite2-ASN const char *lookup_path_organization_name[] = { "autonomous_system_organization", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_organization_name); } else { const char *lookup_path_organization_name[] = { "traits", "autonomous_system_organization", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_organization_name); }; CHECK_STORE(IPV6CALC_DB_SIZE_ORG_NAME, recordp->organization_name, "AutonomousSystemOrganization") // fetch StateProv / District (Subdivision) - which is a list const char *lookup_path_stateprov[] = { "subdivisions", "0", "names", "en", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_stateprov); CHECK_STORE(IPV6CALC_DB_SIZE_STATEPROV, recordp->stateprov, "State/Province(subdivision#0)") const char *lookup_path_stateprov_geonameid[] = { "subdivisions", "0", "geoname_id", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_stateprov_geonameid); CHECK_STORE_UINT32(recordp->stateprov_geoname_id, "State/Prov(subdivsion#0)/GeonameId") const char *lookup_path_distinct[] = { "subdivisions", "1", "names", "en", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_distinct); CHECK_STORE(IPV6CALC_DB_SIZE_DISTRICT, recordp->district, "District(subdivsion#1)") const char *lookup_path_district_geonameid[] = { "subdivisions", "1", "geoname_id", NULL }; libipv6calc_db_wrapper_MMDB_aget_value(&lookup_result.entry, &entry_data, lookup_path_district_geonameid); CHECK_STORE_UINT32(recordp->district_geoname_id, "District(subdivision#1)/GeonameId") DEBUGPRINT_WA(DEBUG_libipv6calc_db_wrapper_MMDB, "resultstring=%s", resultstring); END_libipv6calc_db_wrapper: return(mmdb_error); }; #endif // MMDB ipv6calc-4.1.0/databases/lib/libipv6calc_db_wrapper_MMDB.h000066400000000000000000000053321444154247200233050ustar00rootroot00000000000000/* * Project : ipv6calc * File : databases/lib/libipv6calc_db_wrapper_MMDB.h * Version : $Id: 198a4ca9286bf614031cfbc7508b7f6765dd8b90 $ * Copyright : 2019-2021 by Peter Bieringer * * Information: * Header file for libipv6calc_db_wrapper_MMDB.c */ #include "ipv6calctypes.h" #ifndef _libipv6calc_db_wrapper_MMDB_h #define _libipv6calc_db_wrapper_MMDB_h 1 #ifdef SUPPORT_MMDB #include "maxminddb_config.h" /* workaround for inflexible header file (at least found on Fedora Linux for i686/x86_64) */ #ifdef MMDB_UINT128_IS_BYTE_ARRAY #if MMDB_UINT128_IS_BYTE_ARRAY == 0 #ifdef __i386__ // enforce to be 1 #define MMDB_UINT128_IS_BYTE_ARRAY 1 #endif #endif #endif // ifdef MMDB_UINT128_IS_BYTE_ARRAY #include "maxminddb.h" #endif #endif // _libipv6calc_db_wrapper_MMDB_h extern int libipv6calc_db_wrapper_MMDB_wrapper_init(void); extern void libipv6calc_db_wrapper_MMDB_wrapper_cleanup(void); extern void libipv6calc_db_wrapper_MMDB_wrapper_info(char* string, const size_t size); #ifdef SUPPORT_MMDB #ifdef SUPPORT_MMDB_DYN extern char mmdb_lib_file[PATH_MAX]; #endif extern int libipv6calc_db_wrapper_MMDB_country_code_by_addr(const ipv6calc_ipaddr *ipaddrp, char *country, const size_t country_len, MMDB_s *const mmdb); extern int libipv6calc_db_wrapper_MMDB_all_by_addr(const ipv6calc_ipaddr *ipaddrp, libipv6calc_db_wrapper_geolocation_record *recordp, MMDB_s *const mmdb); extern uint32_t libipv6calc_db_wrapper_MMDB_asn_by_addr(const ipv6calc_ipaddr *ipaddrp, MMDB_s *const mmdb); extern uint32_t libipv6calc_db_wrapper_MMDB_GeonameID_by_addr(const ipv6calc_ipaddr *ipaddrp, MMDB_s *const mmdb, int *source_ptr); extern int libipv6calc_db_wrapper_MMDB_open(const char *const filename, uint32_t flags, MMDB_s *const mmdb); extern void libipv6calc_db_wrapper_MMDB_close(MMDB_s *const mmdb); extern const char *libipv6calc_db_wrapper_MMDB_lib_version(void); extern const char *libipv6calc_db_wrapper_MMDB_strerror(int error_code); extern int libipv6calc_db_wrapper_MMDB_get_value(MMDB_entry_s *const start, MMDB_entry_data_s *const entry_data, const char *const *const path); extern int libipv6calc_db_wrapper_MMDB_get_entry_data_list(MMDB_entry_s *start, MMDB_entry_data_list_s **const entry_data_list); extern void libipv6calc_db_wrapper_MMDB_free_entry_data_list(MMDB_entry_data_list_s *const entry_data_list); extern int libipv6calc_db_wrapper_MMDB_dump_entry_data_list(FILE *const stream, MMDB_entry_data_list_s *const entry_data_list, int indent); extern MMDB_lookup_result_s libipv6calc_db_wrapper_MMDB_lookup_sockaddr(MMDB_s *const mmdb, const struct sockaddr *const sockaddr, int *const mmdb_error); #endif ipv6calc-4.1.0/databases/registries/000077500000000000000000000000001444154247200173415ustar00rootroot00000000000000ipv6calc-4.1.0/databases/registries/Makefile000066400000000000000000000030211444154247200207750ustar00rootroot00000000000000# Project : ipv6calc/databases/registries # File : Makefile # Version : $Id: 271256d9f8d47c0bdd2a47c3a4a7c8c3917f8fb7 $ # Copyright : 2002-2022 by Peter Bieringer # replaces parts of ../ipv4-assignment/Makefile # replaces parts of ../ipv6-assignment/Makefile # # Information: # Makefile for updating assignment data of registries all: ${MAKE} update install: echo "Nothing to do" download: echo "Download new version of files" ../../tools/ipv6calc-update-registries.sh update-only: echo "Create database files for IPv4" cd ../ipv4-assignment && ${MAKE} update echo "Create database files for IPv6" cd ../ipv6-assignment && ${MAKE} update echo "Create database files for ASN to Registry" cd ../as-assignment && ${MAKE} update echo "Create database files for CountryCode to Registry" cd ../cc-assignment && ${MAKE} update update: ${MAKE} download ${MAKE} update-only distclean: echo "Delete data files" if [ -d iana ]; then \ echo "Delete datafiles: iana"; \ rm -f iana/ipv6-unicast-address-assignments.xml iana/ipv4-address-space.xml iana/as-numbers.txt; \ rmdir iana; \ fi if [ -d lisp ]; then \ echo "Delete datafiles: lisp"; \ rm -f lisp/site-db; \ rmdir lisp; \ fi for d in ripencc apnic arin lacnic afrinic; do \ if [ -d $${d} ]; then \ echo "Delete datafiles: $${d}"; \ rm -f $${d}/delegated-$${d}-*; \ rmdir $${d}; \ fi; \ done autoclean: echo "Nothing to do" clean: echo "Nothing to do" ipv6calc-4.1.0/databases/registries/README000066400000000000000000000016711444154247200202260ustar00rootroot00000000000000$Id: 83c3a34c59fc42148bbfef4c667333ffd1bf393d $ IPv4/IPv6 assignment databases: http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml http://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xml ftp://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-latest ftp://ftp.arin.net/pub/stats/arin/delegated-arin-extended-latest http://ftp.apnic.net/stats/apnic/delegated-apnic-latest ftp://lacnic.net/pub/stats/lacnic/delegated-lacnic-latest ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-latest LISP http://www.lisp4.net/lisp-site/site-db AS databases: https://www.iana.org/assignments/as-numbers/as-numbers.txt Because of unknown license issues, the database files aren't included in source tarball (cleanup by "make distclean"), but will be retrieved on "make update". See e.g.: ftp://ftp.apnic.net/apnic/stats/apnic/README.TXT Use "make update" to refresh data files ipv6calc-4.1.0/databases/tools/000077500000000000000000000000001444154247200163215ustar00rootroot00000000000000ipv6calc-4.1.0/databases/tools/create_ieee_headerfile.pl000077500000000000000000000215201444154247200232630ustar00rootroot00000000000000#!/usr/bin/perl -w # # Project : ipv6calc # File : create_ieee_headerfile.pl # Copyright : 2002-2023 by Peter Bieringer # # Creates a header file out of IEEE files # # Virtual Machine prefixes from: # http://www.techrepublic.com/blog/networking/mac-address-scorecard-for-common-virtual-machine-platforms/538 use strict; use File::stat; use POSIX qw(strftime); use Getopt::Std; my $INFILE; my $OUTFILE; my $TYPE; my %opts; getopts ("cdi:o:t:l:", \%opts); if (! defined $opts{'i'}) { print "ERROR : missing input file (option -i)\n"; exit 1 }; $INFILE = $opts{'i'}; if (! defined $opts{'o'}) { print "ERROR : missing output file (option -o)\n"; exit 1 } $OUTFILE = $opts{'o'}; if (! defined $opts{'t'}) { print "ERROR : missing type (option -t)\n"; exit 1 }; $TYPE = $opts{'t'}; my $debug = $opts{'d'}; # set options according to type if ($TYPE eq "oui") { } elsif ($TYPE eq "oui36") { } elsif ($TYPE eq "oui28") { } elsif ($TYPE eq "iab") { } else { print "ERROR : unsupported type: " . $TYPE . "\n"; exit 1; }; my $flag_qemu = 0; print "Create file " . $OUTFILE . " from " . $INFILE . " of type " . $TYPE . "\n"; open(IN, "<$INFILE") || die "Cannot open infile: $INFILE"; open(OUT, ">$OUTFILE") || die "Cannot open outfile: $OUTFILE"; # Header my $now_string = localtime; print OUT qq|/* * Project : ipv6calc * File : $OUTFILE |; print OUT " * Version : \$Id"; print OUT ":\$\n"; print OUT qq| * Generated : $now_string * Data copyright: IEEE * * Information: * Additional header file for libipv6calc_db_wrapper_BuiltIn.c */ |; # print creation date my $sb = stat($INFILE); print OUT "\/\*\@unused\@\*\/ static const char* libieee_" . $TYPE . "_status __attribute__ ((__unused__)) = \"" . uc($TYPE) . "/" . strftime("%Y%m%d", localtime($sb->mtime)) . "\";\n"; # Structure print OUT qq| static const s_ieee_$TYPE libieee_${TYPE}[] = { |; # normalize sub normalize($) { my $oui = shift; $oui = uc($oui); $oui =~ s/"//ig; # replace '(' ')' '&' $oui =~ s/[\(\)\&\',]/ /ig; # remove unimportant information $oui =~ s/\bINC[\.]*\b//ig; $oui =~ s/\bLTD[\.]*\b//ig; $oui =~ s/\bLIMITED\b//ig; $oui =~ s/\bCO[\.]*\b//ig; $oui =~ s/\bCORP[\.]*\b//ig; $oui =~ s/\bCOMP[\.]\b//ig; $oui =~ s/\bGMBH\b//ig; $oui =~ s/\bCORPORATION\b//ig; $oui =~ s/\bS[\.]*A[\.]*\b//ig; $oui =~ s/\bAG\b/ELECTRONIC/ig; $oui =~ s/\bKG\b//ig; $oui =~ s/\bBV\b//ig; # Replace some text $oui =~ s/\b3 Com\b/3COM/ig; $oui =~ s/\b3Com Europe\b/3COM/ig; $oui =~ s/\bCOMMUNICATIONS\b/COMMUNICATION/ig; $oui =~ s/\bCORPOTATION\b/CORPORATION/ig; $oui =~ s/\bINTERNAIONAL\b/INTERNATIONAL/ig; # remove some unneeded text $oui =~ s/\bINTERNATIONAL\b//ig; $oui =~ s/\bTECHNOLOGY\b//ig; $oui =~ s/\bCOMPUTER\b//ig; $oui =~ s/\bSYSTEMS\b//ig; $oui =~ s/\bENTERPRISE\b//ig; $oui =~ s/\bCORPORATION\b//ig; $oui =~ s/\bELECTRONIC\b//ig; $oui =~ s/\bHF1-06\b//ig; # remove ',' '.' $oui =~ s/[,\.;]/ /ig; # remove leading and trailing spaces $oui =~ s/^\s+//ig; $oui =~ s/\s+$//ig; # convert spaces to '-' $oui =~ s/\s+/-/ig; # translate umlauts $oui =~ s/Ä/AE/g; $oui =~ s/Ö/OE/g; $oui =~ s/Ü/UE/g; $oui =~ s/ä/AE/g; $oui =~ s/ö/OE/g; $oui =~ s/ü/UE/g; $oui =~ s/ß/SS/g; # remove non-ascii chars $oui =~ s/[^[:ascii:]]//g; # remove ? (to avoid trigraphs issues) $oui =~ s/\?//g; # Some final cleanup $oui =~ s/-INT-L$//ig; $oui =~ s/-S-L$//ig; $oui =~ s/-A-S$//ig; $oui =~ s/-LLC$//ig; $oui =~ s/-S-P-A$//ig; $oui =~ s/-S-R-L$//ig; $oui =~ s/-AND$//ig; $oui =~ s/-E-V$//ig; $oui =~ s/-BHD$//ig; $oui =~ s/-SDN$//ig; $oui =~ s/-MBH$//ig; # remove trailing '+' $oui =~ s/\++$//ig; # remove trailing '-' $oui =~ s/-+$//ig; # reduce more than one '-' $oui =~ s/-+/-/ig; return($oui); }; # Data my %major_list; my $oui_major; my $oui_owner; my $oui_owner_short; my $oui_minor_begin; my $oui_minor_end; my $state = 0; my %map; my $i = 0; while () { my $line = $_; chomp $line; print "DEBUG : parse line: " . $line . "\n" if (defined $debug); if (defined $opts{'c'}) { # CSV parser if ($line !~ /^MA-(L|M|S),([0-9A-F]+),(.*)$/o && $line !~ /^(IAB),([0-9A-F]+),(.*)$/o) { print "DEBUG : skip line: " . $line . "\n" if (defined $debug); next; }; my $type = $1; my $prefix = $2; my $company_raw = $3; # extract company my $company; if ($company_raw =~ /^"([^"]+)",(.*)$/o) { $company = $1; } else { $company_raw =~ /^([^,]+),(.*)/o; $company = $1; }; $company =~ s/"//ig; # kill leading spaces $company =~ s/^ *//g; # kill trailing spaces $company =~ s/ *$//g; print "DEBUG : extract from: " . $company_raw . " -> " . $company . "\n" if (defined $debug); $map{$prefix}->{'short'} = normalize($company); $map{$prefix}->{'long'} = $company; $major_list{substr($prefix, 0, 6)} = 1; # Append information for special OUIs if ($prefix eq "080027") { # 08:00:27 $map{$prefix}->{'long'} .= " (possible VirtualBox VM)"; $map{$prefix}->{'short'} .= "-VIRTUAL"; } elsif ($prefix eq "0003FF") { # 00:03:FF $map{$prefix}->{'long'} .= " (possible Hyper-V, Virtual Server, Virtual PC VM)"; $map{$prefix}->{'short'} .= "-VIRTUAL"; } elsif ($prefix eq "001C42") { # 00:1C:42 $map{$prefix}->{'long'} .= " (possible Paralles Desktop, Workstation, Server, Virtuozzo VM)"; $map{$prefix}->{'short'} .= "-VIRTUAL"; } elsif ($prefix eq "000F4B") { # 00:0F:4B $map{$prefix}->{'long'} .= " (possible Virtual Iron VM)"; $map{$prefix}->{'short'} .= "-VIRTUAL"; } elsif ($prefix eq "00163E") { # 00:16:3E $map{$prefix}->{'long'} .= " (possible Xen VM)"; $map{$prefix}->{'short'} .= "-VIRTUAL"; } elsif ($prefix eq "525400") { # 52:54:00 $map{$prefix}->{'long'} .= " (possible QEMU VM)"; $map{$prefix}->{'short'} .= "-VIRTUAL"; $flag_qemu = 1; } elsif ( ($prefix eq "005056") || ($prefix eq "000C29") || ($prefix eq "000569") ) { # 00:50:56 # 00:0C:29 # 00:05:69 $map{$prefix}->{'long'} .= " (possible VMware VM)"; $map{$prefix}->{'short'} .= "-VIRTUAL"; }; } else { die("TXT parser no longer supported"); }; # TXT parser }; if (scalar(keys %map) > 0) { if ($TYPE eq "oui" && ($flag_qemu == 0)) { # add missing entry $map{"525400"}->{'long'} = "possible QEMU VM"; $map{"525400"}->{'short'} = "QEMU-VIRTUAL"; }; for my $prefix (sort { $a cmp $b } keys %map) { my $oui_major = "0x" . substr($prefix, 0, 6); my $oui_minor_begin = "0x" . substr($prefix, 6) . "0" x (6 - length(substr($prefix, 6))); my $oui_minor_end = "0x" . substr($prefix, 6) . "F" x (6 - length(substr($prefix, 6))); my $oui_owner = $map{$prefix}->{'long'}; my $oui_owner_short = $map{$prefix}->{'short'}; if ($TYPE eq "oui") { print OUT "\t{ " . $oui_major . ", \"" . $oui_owner . "\", \"" . $oui_owner_short . "\" },\n"; } else { print OUT "\t{ " . $oui_major . ", " . $oui_minor_begin . ", " . $oui_minor_end . ", \"" . $oui_owner . "\", \"" . $oui_owner_short . "\" },\n"; }; }; }; print OUT qq| }; |; my @missing; my %defines = ( "oui36" => "IEEE_OUI36", "oui28" => "IEEE_OUI28", "iab" => "IEEE_IAB", ); if ($TYPE eq "oui36" || $TYPE eq "iab" || $TYPE eq "oui28") { my @lines; if (defined $opts{'l'}) { # read file open my $handle, '<', $opts{'l'} || die("Can't open file: " . $opts{'l'}); chomp(@lines = <$handle>); close $handle; print "Lines of " . $opts{'l'} . ": " . $#lines . "\n"; }; my $problem = 0; print "List of major OUIs\n" if ($TYPE eq "oui36" || $TYPE eq "iab"); for my $key (sort keys %major_list) { print $key . "\n" if ($TYPE eq "oui36" || $TYPE eq "iab"); if (defined $opts{'l'}) { if (grep /0x$key/, @lines) { # ok } else { print "Missing OUI ($TYPE) 0x$key in " . $opts{'l'} . " (-> append there in array 'ieee_mapping' and retry)\n"; $problem = 1; push @missing, "0x" . $key; }; }; }; if ($problem == 1) { print "Check NOT successfully of major OUI ($TYPE) entries in " . $opts{'l'} . ": " . scalar(%major_list) . "\n"; if (scalar (@missing) > 0) { # retrieve latest my $last; my $lc = 0; my $lc_last = 0; foreach my $line (@lines) { $lc++; if ($line =~ /\s+$defines{$TYPE},\s+(0x[0-9a-f]{4})/) { $last = hex($1); $lc_last = $lc }; }; #print "last=$last\n"; print "Add following to " . $opts{'l'} . " after line " . $lc_last . "\n"; print "\t// " . uc($TYPE) . " (" . strftime("%Y-%m-%d", localtime) . ")\n"; foreach my $entry (@missing) { $last++; printf "\t{ " . $entry . ",\t" . $defines{$TYPE} . ", 0x%04x },\n", $last; }; }; exit 1; }; print "Check successfully major OUI entries in " . $opts{'l'} . ": " . scalar(%major_list) . "\n"; }; if (scalar(keys %major_list) == 0) { print "Finished with problems (list empty)\n"; exit 1; }; print "Finished successfully, entries: " . scalar(keys %map) . "\n"; ipv6calc-4.1.0/databases/tools/ipv6calc-db-info.pl000077500000000000000000000036631444154247200217140ustar00rootroot00000000000000#!/usr/bin/perl -w # # Project : ipv6calc/databases/tools # File : ipv6calc-db-info.pl # Version : $Id: df2e4fb3a94733c99c77958e80ec7c79d0eb6151 $ # Copyright : 2017-2017 by Peter Bieringer # License : GNU GPL v2 # # Information: # Perl program which retrieves information from an ipv6calc database use strict; use warnings; use IPC::Open2; use Getopt::Std; use BerkeleyDB; use POSIX qw(strftime); my $progname = $0; my $debug = 0; sub help { print qq| Usage: $progname -s -s database file -h this online help |; exit 0; }; # parse options our ($opt_h, $opt_s); getopts('s:h') || help(); if (defined $opt_h) { help(); }; if (! defined $opt_s) { print "WARN : nothing to do (no database file given -s ...)\n"; exit 1; }; ## locations my $file_h; my $file = $opt_s; print "INFO : open db file: $file\n"; ## SubDB: info my %db_h; my @db_a; my $subdb; my $db_type; $subdb = "info"; $db_type = 'BerkeleyDB::Btree'; tie %db_h, $db_type, -Filename => $file, -Subname => $subdb || die "Cannot open file $file: $! $BerkeleyDB::Error\n"; for my $key (sort keys %db_h) { print "INFO : SubDB=$subdb key=$key value=" . $db_h{$key} . "\n"; }; untie %db_h; $subdb = "data"; $db_type = 'BerkeleyDB::Recno'; tie @db_a, $db_type, -Filename => $file, -Subname => $subdb || die "Cannot open file $file: $! $BerkeleyDB::Error\n"; print "INFO : SubDB=$subdb elements=" . scalar(@db_a) . "\n"; untie @db_a; $subdb = "data-iana"; $db_type = 'BerkeleyDB::Recno'; tie @db_a, $db_type, -Filename => $file, -Subname => $subdb || die "Cannot open file $file: $! $BerkeleyDB::Error\n"; print "INFO : SubDB=$subdb elements=" . scalar(@db_a) . "\n"; untie @db_a; $subdb = "data-info"; $db_type = 'BerkeleyDB::Recno'; tie @db_a, $db_type, -Filename => $file, -Subname => $subdb || die "Cannot open file $file: $! $BerkeleyDB::Error\n"; print "INFO : SubDB=$subdb elements=" . scalar(@db_a) . "\n"; untie @db_a; ipv6calc-4.1.0/databases/tools/test_db_lookup.sh000077500000000000000000000132541444154247200217020ustar00rootroot00000000000000#!/bin/bash # # Project : ipv6calc # File : test_db_lookup.sh # Version : $Id: 9364e83dbd2eded2220b371713f97b9613c4a1b2 $ # Copyright : 2014-2021 by Peter Bieringer # # Test raw database entries against ipv6calc output (to check, whether BuiltIn databases are correctly aggregated) # # Execution only required after lookup code changes renice -n 19 -p $$ ionice -c idle -p $$ ipv6calc="../../ipv6calc/ipv6calc" test_ipv4_registry() { for registry in arin ripencc apnic afrinic lacnic; do case $registry in arin) registry_file="delegated-$registry-extended-latest" ;; *) registry_file="delegated-$registry-latest" ;; esac registry_file="../registries/$registry/$registry_file" if [ ! -f "$registry_file" ]; then echo "WARN : no registry database file: $registry_file (=> skip test)" continue fi num="`cat "$registry_file" | awk -F'|' '{ if (($3 == "ipv4") && ($2 != "*")) print $4; }' | wc -l`" echo "INFO : test registry: $registry ($registry_file) entries=$num" ipv6calc_output_expected="`echo "IPV4_REGISTRY=$registry" | tr a-z A-Z`" echo "DEBUG : expected output: $ipv6calc_output_expected" counter=0 interval=$[ $num / 100 + 1 ] if [ $interval -le 1 ]; then interval=$[ $num / 10 + 1 ] fi trigger=$interval cat "$registry_file" | awk -F'|' '{ if (($3 == "ipv4") && ($2 != "*")) print $4 " " $5; }' | while read ipv4 amount; do counter=$[ $counter + 1 ] last=$[ amount - 1 ] last_0=$[ last / 16777216 ] last=$[ last - $last_0 * 16777216 ] last_1=$[ last / 65536 ] last=$[ last - $last_1 * 65536 ] last_2=$[ last / 256 ] last_3=$[ last - $last_2 * 256 ] #echo "DEBUG : amount to add: $last_0 $last_1 $last_2 $last_3" ipv6_0="`echo "$ipv4" | awk -F. '{ print $1 }'`" ipv6_1="`echo "$ipv4" | awk -F. '{ print $2 }'`" ipv6_2="`echo "$ipv4" | awk -F. '{ print $3 }'`" ipv6_3="`echo "$ipv4" | awk -F. '{ print $4 }'`" # add ipv4 + amount - 1 to get last IPv4 address result_3=$[ $last_3 + ipv6_3 ] if [ $result_3 -gt 255 ]; then ipv6_2=$[ $ipv6_2 + 1 ] result_3=$[ $result_3 - 256 ] fi result_2=$[ $last_2 + ipv6_2 ] if [ $result_2 -gt 255 ]; then ipv6_1=$[ $ipv6_1 + 1 ] result_2=$[ $result_2 - 256 ] fi result_1=$[ $last_1 + ipv6_1 ] if [ $result_1 -gt 255 ]; then ipv6_0=$[ $ipv6_0 + 1 ] result_1=$[ $result_1 - 256 ] fi result_0=$[ $last_0 + ipv6_0 ] if [ $result_0 -gt 255 ]; then echo "ERROR : add engine overflow!" exit 1 fi ipv4_last="$result_0.$result_1.$result_2.$result_3" #echo "DEBUG : test registry=$registry ipv4=$ipv4 amount=$amount (ipv4_last=$ipv4_last) counter=$counter" for ip in $ipv4 $ipv4_last; do ipv6calc_output="`$ipv6calc -q -m -i $ip | grep "^IPV4_REGISTRY="`" if [ -z "$ipv6calc_output" ]; then echo "ERROR : ipv6calc output empty, no IPV4_REGISTRY line (registry=$registry ipv4=$ipv4)" exit 1 fi if [ "$ipv6calc_output" != "$ipv6calc_output_expected" ]; then echo "ERROR : output >$ipv6calc_output< not matching expected >$ipv6calc_output_expected< ($ip)" exit 1 fi done if [ $counter -eq $trigger ]; then percent=$[ $counter * 100 / $num ] echo "INFO : registry=$registry already tested: $counter/$num $percent% ($ipv4 - $ipv4_last)" trigger=$[ $trigger + $interval ] fi done || return 1 done || return 1 } test_asn_registry() { for registry in arin ripencc apnic afrinic lacnic; do case $registry in arin) registry_file="delegated-$registry-extended-latest" ;; *) registry_file="delegated-$registry-latest" ;; esac registry_file="../registries/$registry/$registry_file" if [ ! -f "$registry_file" ]; then echo "WARN : no registry database file: $registry_file (=> skip test)" continue fi num="`cat "$registry_file" | awk -F'|' '{ if (($3 == "asn") && ($2 != "*")) print $4; }' | wc -l`" echo "INFO : test registry: $registry ($registry_file) entries=$num" ipv6calc_output_expected="`echo "AS_NUM_REGISTRY=$registry" | tr a-z A-Z`" echo "DEBUG : expected output: $ipv6calc_output_expected" counter=0 interval=$[ $num / 100 + 1 ] if [ $interval -le 1 ]; then interval=$[ $num / 10 + 1 ] fi trigger=$interval cat "$registry_file" | awk -F'|' '{ if (($3 == "asn") && ($2 != "*")) print $4; }' | while read asn; do counter=$[ $counter + 1 ] #echo "DEBUG : test registry=$registry asn=$asn counter=$counter" ipv6calc_output="`$ipv6calc -q -m -I asn -i $asn | grep "^AS_NUM_REGISTRY="`" if [ -z "$ipv6calc_output" ]; then echo "ERROR : ipv6calc output empty, no AS_NUM_REGISTRY line (registry=$registry asn=$asn)" exit 1 fi if [ "$ipv6calc_output" != "$ipv6calc_output_expected" ]; then echo "ERROR : output >$ipv6calc_output< not matching expected >$ipv6calc_output_expected< ($asn)" #exit 1 fi if [ $counter -eq $trigger ]; then percent=$[ $counter * 100 / $num ] #echo "INFO : registry=$registry already tested: $counter/$num $percent% ($asn)" trigger=$[ $trigger + $interval ] fi done || return 1 done || return 1 } help() { echo "-a : test_asn_registry" echo "-4 : test_ipv4_registry" } if [ -z "$1" ]; then help exit 0 fi test_asn=false test_ipv4=false while getopts ":a4" opt; do case $opt in a) test_asn=true ;; 4) test_ipv4=true ;; \?|h) echo "Invalid option: -$OPTARG" >&2 help exit 0 ;; esac done shift $[ $OPTIND - 1 ] if $test_asn; then test_asn_registry || exit 1 fi if $test_ipv4; then test_ipv4_registry || exit 1 fi echo "INFO : all defined database tests successful" ipv6calc-4.1.0/doc/000077500000000000000000000000001444154247200137775ustar00rootroot00000000000000ipv6calc-4.1.0/doc/generate.sh000077500000000000000000000023641444154247200161350ustar00rootroot00000000000000#!/bin/sh # $Id: 19718dd1c7adc7391f458b78a0cd8d3894390420 $ # Requires: opensp #export SP_ENCODING=UTF-8 export SP_CHARSET_FIXED=yes if [ -z "$1" ]; then file_sgml="ipv6calc.sgml" else file_sgml="$1" fi echo "Used SGML file: $file_sgml" file_base="`basename $file_sgml .sgml`" file_html="${file_base}.html" file_dsl="./ldp.dsl" if [ ! -f "$file_dsl" ]; then echo "ERR: Missing DSL file: $file_dsl" exit 1 fi if [ ! -f $file_sgml ]; then echo "ERR: Missing SGML file, perhaps export DocBook of LyX won't work" exit 1 fi validate_sgml() { echo "INF: Validate SGML code '$file_sgml'" set -x onsgmls -s $file_sgml local result=$? set +x if [ $result -gt 0 ]; then echo "ERR: Validation results in errors!" return 1 else echo "INF: Validation was successfully" fi } create_html_singlepage() { echo "INF: Create HTML singlepage '$file_html'" set -x jade -t sgml -i html -V nochunks -d "${file_dsl}#html" $file_sgml >$file_html local retval=$? set +x if [ $retval -eq 0 ]; then if head -1 $file_html | grep -q DOCTYPE; then echo "INF: Create HTML singlepage - done" return 0 fi fi echo "ERR: Create HTML singlepage - an error occurs!" return $retval } ### Main validate_sgml || exit 1 create_html_singlepage || exit 1 ipv6calc-4.1.0/doc/ipv6calc.html000066400000000000000000004027771444154247200164150ustar00rootroot00000000000000 The ipv6calc Homepage

The ipv6calc Homepage

Peter Bieringer

pb at bieringer dot de

Revision History
Revision 11.0.02021-10-03Revised by: PB

1. General

ipv6calc is a small utility written in programming language C to manipulate (not only) IPv6 addresses and is able to do other tricky things. Intentions were convering a given IPv6 address into compressed format, convering a given IPv6 address into the same format like shown in /proc/net/if_inet6 and (because it was not difficulty) migrating the Perl program ip6_int into. Now only one utiltity is needed to do a lot.

This utility was also used in the past to extend features on network-functions-ipv6 library, used by initscripts-ipv6.

Note: this tool got also its freecode.com (former freshmeat, now also EOL) / ipv6calc page (but this is not maintained by the author)


1.1. Latest version

Latest version since last update of this page is 4.0.0


1.2. Included programs

  • “ipv6calc”: the main utility

  • “ipv6calcweb”: CGI wrapper for ipv6calc's address information output

  • “ipv6logconv”: log converter (IPv4/IPv6)

  • “ipv6loganon”: log anonymizer (IPv4/IPv6)

  • “ipv6logstats”: log statistic generator (IPv4/IPv6)

  • “mod_ipv6calc”: Apache module


1.3. Included databases

If not disabled during compiling of the tool, following databases are statically included, since version 0.95.0 internally mentioned as “BuiltIn”:

  • IEEE IAB, OUI, OUI-28, OUI-36 databases (for decoding vendor part of MAC/EUI-48/EUI-64)

  • IPv4 assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for selecting proper registry in ipv6calcweb.cgi and IPv4 anonymization)

  • IPv6 assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for selecting proper registry in ipv6calcweb.cgi and IPv6 anonymization)

  • ASN assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for IPv4/IPv6 anonymization)

  • LISP assignment database for supplying extra info


1.4. Possible external databases

If enabled during compiling the tool, following external (but local stored) databases can be used

  • GeoIP

    • IPv4 “legacy” (since 0.61.0, released 2006 until 3.0.0 released 2020)

    • IPv6 “legacy” (since 0.90.0, released 2011, req. GeoIP >= 1.4.5 until 3.0.0 released 2020)

    • GeoIP2 (native MaxMindDB file support since 2.0.0, release 2019)

  • IP2Location

    • IPv4 (since 0.60.0, released 2006)

    • IPv6 (since 0.70.0, released 2007, IP2Location LITE IPv6 Databases since 0.99.0, released 2015)

    • release 0.99.0 is tested against IP2Location >= 4.0.2

    • release >= 2.0.0 && < 3.0.0 is only working with IP2Location >= 7.0.1

    • release >= 3.0.0 is only working with IP2Location >= 8.2.0

  • DB-IP.com

    • (since 0.98.0, released 2015 until 3.0.0 released 2020) based on local Berkeley DB files generated from downloaded CSV files

    • native MaxMindDB files (support since 2.0.0, released 2019)

  • “External” (since 0.98.0, released 2015), based on local Berkeley DB files, generated from downloaded TXT/XML files (registries assignment databases). Supporting IPv4/IPv6 to Registries and IPv4/IPv6 to CountryCode. If newer, overruling the related included databases.

Since version 0.95.0 the tool can be compiled to use dynamically loading of library, means the binaries can be also used on systems where IP2Location or GeoIP libraries are not existing. On such system, the support is simply disabled then and some capabilities/features which requires the databases are disabled.

Since version 0.97.4 also fallback code for GeoIP and IP2Location is included in the source package, means that support of dynamically loading of library can be included during compilation without having related development sources on the system.

Since version 2.0.0 MaxMindDB is supported (linked or dynamically loaded)

Since version 3.0.0 GeoIP(legacy) and db-ip.com(BerkeleyDB) is remoed


2. License

The program is published under the GNU GPL version 2.


3. Copyright

(C) 2001 - 2021 by Dr. Peter Bieringer


4. Author

The author of ipv6calc is


5. Where to get sources or binaries

5.1. Latest version of sources


5.2. Releases


5.2.2. as tar.gz (signed)

Since version 0.95.0 packages are signed with new GPG key, also available here: CODE-GPG-KEY-bieringer.de-2013 @ftp.bieringer.de or CODE-GPG-KEY-bieringer.de-2013 @ftp.deepspace6.net

Key fingerprint: AAB3 8CB7 97C7 50C7 78C6 08C6 DDEB 141D F738 0F61
uid: Peter Bieringer (Code Signing Key 2013) <code@bieringer.de>

A SPEC file is included, so you can build a RPM from tar.gz using

$ rpmbuild -ta path/to/ipv6calc-$version.tar.gz

In addition, conditional build options are available (see related configure options below):

--without ip2location
--without mmdb (which disables GeoIP v2 and db-ip.com v2)
--without external
--without shared
--without mod_ipv6calc

5.2.3. as RPM

Can be searched via rpmfind / ipv6calc.


5.3. Ready to use packages for several operating systems:

5.3.1. Fedora Linux

Fedora 29 is the current developing platform, so use given hints above to create a RPM. Since Fedora 7 this package is included by default.

See also FedoraProject / Packages / ipv6calc


5.3.2. Red Hat Enterprise Linux and clones

It's tested by the developer that creation of the RPM is working fine starting with RHEL 4.

CentOS 7 and Rocky 8 are also platforms for regression tests.


5.3.3. Gentoo/Funtoo

Package is maintained, nevertheless, Funtoo is used as platform for regression tests.


5.3.4. Ubuntu

Package is maintained, more information can be found at https://packages.ubuntu.com/ipv6calc


5.3.5. Debian GNU/Linux

Package is maintained, more information can be found at http://packages.debian.org/ipv6calc


5.3.6. openSUSE

Package is maintained, more information can be found at http://download.opensuse.org/repositories/home:/uebelhacker/


6. Configuring & Compiling

6.1. Configuring

Following “ipc6calc” related configure options are currently supported (note: disabling the internal databases reduces the size of the resulting binaries/shared library a lot):

--disable-dynamic-load  Disable dynamic load of libraries (default: enabled)

--disable-db-ieee       Disable build-in IEEE database (default: enabled)
--disable-db-ipv4       Disable build-in IPv4 database (default: enabled)
--disable-db-ipv6       Disable build-in IPv6 database (default: enabled)
--disable-db-as-registry Disable built-in AS-to-Registry database (default: enabled)
--disable-db-cc-registry Disable built-in CountryCode-to-Registry database (default: enabled) 
--disable-geoip2        Disable MaxMindDB support for GeoIP (default: enabled)
--disable-dbip2         Disable MaxMindDB support for db-ip.com (default: enabled) 
--enable-mmdb           Enable MaxMindDB support (GeoIP/db-ip.com) (default: disabled) 
--enable-external       Enable external db support (default: disabled) 
--enable-ip2location    Enable IP2Location support (default: disabled)
--enable-mod_ipv6calc   Enable build of mod_ipv6calc for Apache (default: disabled) 

--with-mmdb-dynamic     Enable use of dynamic loading of MaxMindDB library (default=no)
--with-mmdb-headers=DIR MaxMindDB include files location
--with-mmdb-lib=DIR     MaxMindDB library location
--with-mmdb-dyn-lib=NAME Use specified MaxMindDB dynamic library, default: libmaxminddb.so.0 

--with-ip2location-headers=DIR      IP2Location include files location
--with-ip2location-headers-fallback IP2Location include files from internal fallback location (only usable with dynamic load option)                          
--with-ip2location-lib=FILE         IP2Location library location
--with-ip2location-static           Explicitly link IP2Location statically (default=no)
--with-ip2location-dynamic          Enable use of dynamic loading of IP2Location library (default=no)
--with-ip2location-db=DIR           Use specified IP2Location database directory, default: /usr/share/IP2Location
--with-ip2location-dyn-lib=NAME     Use specified IP2Location dynamic library, default: libIP2Location.so

--with-geoip-db=DIR             Use specified GeoIP database directory, default: /usr/share/GeoIP

--with-dbip-db=DIR      Use specified db-ip.com database directory, default: /usr/share/DBIP

--with-external-db=DIR  Use specified external database directory, default: /usr/share/ipv6calc/db 

--with-apxs=NAME        name of the apxs executable (apxs) 

--enable-shared                 Enable shared library build (default: disabled)

--enable-bundled-getopt         Enable bundled getopt library (default: autoselected)
--enable-bundled-md5            Enable bundled MD5 library (default: autoselected)

6.2. Compiling

As usual, use

$ make

and run tests afterwards using

$ make test

or at least (e.g. if external databases are not available)

$ make test-minimal

6.3. Configuring & Compiling with Presets

A shell script is included which can configure and compile with standard presets (also used during regression tests):

$ ./autogen.sh -h
Supported options:
   -?|-h|--help        : this help
   -n|--no-make        : stop before running 'make'
   -a|--all            : enable GeoIP/IP2Location/db-ip.com/External/mod_ipv6calc support
   -A|--ALL            : enable GeoIP/IP2Location/db-ip.com/External/mod_ipv6calc support with dynamic library support
   -m|--mmdb           : enable MaxMindDB support (GeoIP/db-ip.com)
   --mmdb-dyn|-M       : switch to dynamic library loading of MaxMindDB
   --disable-geoip2    : disable MaxMindDB support for GeoIP
   --disable-dbip2     : disable MaxMindDB support for db-ip.com
   -i|--ip2location    : enable IP2Location support
   --ip2location-dyn|-I: switch to dynamic library loading of IP2Location
   -e|--external       : enable external database support
   --disable-db-ieee   : disable built-in IEEE database
   --disable-db-ipv4   : disable built-in IPv4 database
   --disable-db-ipv6   : disable built-in IPv6 database
   -S                  : enable shared library mode
   --no-static-build   : skip static build
   --no-test           : skip 'make test'
   --clang             : use 'clang' instead of default (usually 'gcc')
   --m32               : compile for 32-bit
   --relax             : don't stop on compiler warnings

7. Mailling Lists

7.1. ipv6calc-announce

Reason:

sending announcements of new versions

Traffic:

very low

Postings:

only moderators are allowed to post

Information:

DeepSpace6 / maillist ipv6calc-announce


7.2. ipv6calc

Reason:

discussions

Traffic:

low

Postings:

subscribers

Information:

DeepSpace6 / maillist ipv6calc


8. Bug Reports

You can send bug reports to the author himself or subscribe to maillist “ipv6calc” and send it to the list.


9. Features of ipv6calc

9.1. Description

The main program named “ipv6calc” is able to recognize many (not only) IPv6 address formats and depending on a selectable action (not required) a selectable output format can be specified. Also it has the capability to show detailed information of an IPv4/IPv6 address or anonymize it.


9.2. List of built-in features

Option “-v” shows built-in features, depending on configuration before compiling:

$ ipv6calc -v
ipv6calc: version 3.0.0 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID

Option “-v -v” (since 0.91.0) shows built-in features and capabilities in detail, depending on configuration before compiling:

$ ipv6calc -vv
ipv6calc: version 3.0.0 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID
Capabilities: GeoIP2(linked/MaxMindDB) IP2Location(linked) DBIP2(linked/MaxMindDB) ExternalDatabase DB_AS_REG(BuiltIn) DB_CC_REG(BuiltIn) DB_IPV4_REG(BuiltIn) DB_IPV6_REG(BuiltIn) DB_IEEE(BuiltIn)
Internal main     library version: 3.0.0  API: 3.0.0  (built-in)
Internal database library version: 3.0.0  API: 3.0.0  (built-in)
Compiled: Oct 13 2020  19:38:16
MaxMindDB for GeoIP2/DBIP2 support enabled
MaxMindDB dynamic library version (on this system): 1.4.2
GeoIP2 (MaxMindDB) support enabled
GeoIP2 available databases: Country4=1 Country6=1 ASN4=1 ASN6=1 City4=1 City6=1
IP2Location support enabled, compiled with API version: 8.2.0, dynamically linked with version: API=8.2.0 Major=8
IP2Location available databases: Country4=1 Country6=1 ASN4=0 ASN6=0 City4=1 City6=1
DBIP2 (MaxMindDB) support enabled
DBIP2 available databases: Country4=1 Country6=1 ASN4=1 ASN6=1 City4=1 City6=1
External available databases: Country4=1 Country6=1 IPV4_REG=1 IPV6_REG=1
BuiltIn databases available: ASN_REG=1 IPV4_REG=1 IPV6_REG=1 IEEE=1 CC_REG=1
DB features: 0xff07ffff
GeoIP(MaxMindDB): features available/implemented: 0x03063ff0/0x03063ff0 (100%)
GeoIP2: info of available databases in directory: /usr/share/GeoIP
GeoIP2: IPv4/v6 CountryCode (FREE)    : [1] GeoLite2-Country.mmdb          (GeoLite2-Country Copyright (c) 2019 MaxMind All Rights Reserved, created: 20191217-195954 UTC)
GeoIP2: IPv4/v6 City (FREE)           : [2] GeoLite2-City.mmdb             (GeoLite2-City Copyright (c) 2019 MaxMind All Rights Reserved, created: 20191217-200126 UTC)
GeoIP2: IPv4/v6 ASN (FREE)            : [3] GeoLite2-ASN.mmdb              (GeoLite2-ASN Copyright (c) 2019 MaxMind All Rights Reserved, created: 20190122-114228 UTC)
GeoIP2: detected best databases FREE    Country4=2    Country6=2    City4=2    City6=2  
GeoIP2: detected best databases COMM    Country4=0    Country6=0    City4=0    City6=0  
GeoIP2: selected best databases normal  Country4=2    Country6=2    City4=2    City6=2  
GeoIP2: selected best databases method: COMM older than 12 months are deselected in case of FREE is available
GeoIP2: selected best databases method: COMM/FREE with more features are only selected in case not older than 1 months of already found COMM/FREE
IP2Location: features available/implemented: 0x0c003fc0/0x0c003fc0 (100%)
IP2Location: info of available databases in directory: /usr/share/IP2Location
IP2Location: Copyright (c) IP2Location All Rights Reserved
IP2Location: IPv4 Country                                    :[ 49] IP-COUNTRY-SAMPLE.BIN               (IP2L-DB1 IPv4 IPv6 SAMPLE 20201005)
IP2Location: IPv4 Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Ne/Ar/We/Mo      :[ 68] IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-SAMPLE.BIN (IP2L-DB20 IPv4 IPv6 SAMPLE 20190129)
IP2Location: IPv4 Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Ne/Ar/We/Mo/El/Us:[ 72] IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE-SAMPLE.BIN (IP2L-DB24 IPv4 IPv6 SAMPLE 20190129)
IP2Location: IPv6 Country                                    :[ 73] IPV6-COUNTRY.SAMPLE.BIN             (IP2L-DB1 IPv4 IPv6 SAMPLE 20201005)
IP2Location: IPv6 Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Ne/Ar/We/Mo      :[ 92] IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE.SAMPLE.BIN (IP2L-DB20 IPv4 IPv6 SAMPLE 20171128)
IP2Location: IPv6 Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Ne/Ar/We/Mo/El/Us:[ 96] IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEATHER-MOBILE-ELEVATION-USAGETYPE.SAMPLE.BIN (IP2L-DB24 IPv4 IPv6 SAMPLE 20171128)
IP2Location: IPvx Co/Re/Ci/LattLong/ZIP/TZ                   :[ 35] IPV6-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE.BIN (IP2L-DB11 IPv4 IPv6 20181226)
IP2Location: detected best databases SAMPLE  Country4=49   Country6=73   City4=72   City6=96 
IP2Location: detected best databases LITE    Country4=0    Country6=0    City4=0    City6=0  
IP2Location: detected best databases COMM    Country4=35   Country6=35   City4=35   City6=35 
IP2Location: selected best databases LI->SA* Country4=0    Country6=0    City4=0    City6=0  
IP2Location: selected best databases normal  Country4=35   Country6=35   City4=35   City6=35 
IP2Location: selected best databases method: * = autoswitch from LITE to SAMPLE enabled in case not older than 12 months and having more features
IP2Location: selected best databases method: COMM older than 12 months are deselected in case of LITE is available
IP2Location: selected best databases method: COMM/LITE/SAMPLE with more features are only selected in case not older than 1 months of already found COMM/LITE/SAMPLE
IP2Location: selected best databases method: softlinks: skipped-by-default
db-ip.com(MaxMindDB): features available/implemented: 0x30063ff0/0x30063ff0 (100%)
DBIP2: info of available databases in directory: /usr/share/DBIP
DBIP2: IPv4/v6 CountryCode (FREE)    : [1] dbip-country-lite.mmdb         (DBIP-Country-Lite Copyright (c) 2019 db-ip.com All Rights Reserved, created: 20190831-232938 UTC)
DBIP2: IPv4/v6 City (FREE)           : [2] dbip-city-lite.mmdb            (DBIP-City-Lite Copyright (c) 2019 db-ip.com All Rights Reserved, created: 20190831-233248 UTC)
DBIP2: IPv4/v6 Location+ISP (COMM)   : [6] dbip-location-isp.mmdb         (DBIP-Location-ISP (compat=Enterprise) Copyright (c) 2019 db-ip.com All Rights Reserved, created: 20190101-015418 UTC)
DBIP2: detected best databases FREE    Country4=2    Country6=2    City4=2    City6=2  
DBIP2: detected best databases COMM    Country4=6    Country6=6    City4=6    City6=6  
DBIP2: selected best databases normal  Country4=6    Country6=6    City4=6    City6=6  
DBIP2: selected best databases method: COMM older than 12 months are deselected in case of FREE is available
DBIP2: selected best databases method: COMM/FREE with more features are only selected in case not older than 1 months of already found COMM/FREE
External: features available/implemented: 0xc00180cc/0xc00180cc (100%)
External: info of available databases in directory: /usr/share/ipv6calc/db
External: IPv4 Registry       : ipv6calc-external-ipv4-registry.db       (EXTDB-1/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191227 LACNIC/20200903 LISP/20200318 RIPENCC/20200903, created: 20200904-061346 UTC)
External: IPv6 Registry       : ipv6calc-external-ipv6-registry.db       (EXTDB-2/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191106 LACNIC/20200903 LISP/20200318 RIPENCC/20200903, created: 20200904-063305 UTC)
External: IPv4 CountryCode    : ipv6calc-external-ipv4-countrycode.db    (EXTDB-3/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191227 LACNIC/20200903 LISP/20200318 RIPENCC/20200903, created: 20200904-061347 UTC)
External: IPv6 CountryCode    : ipv6calc-external-ipv6-countrycode.db    (EXTDB-4/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191106 LACNIC/20200903 LISP/20200318 RIPENCC/20200903, created: 20200904-063305 UTC)
BuiltIn: features available/implemented: 0x0001c00f/0x0001c00f (100%)
BuiltIn: info of available databases
BuiltIn: ASN  : IANA/20200518
BuiltIn: CC   : AFRINIC/20201012 APNIC/20201010 ARIN/20201011 LACNIC/20201009 RIPENCC/20201011
BuiltIn: IPv4 : AFRINIC/20201012 APNIC/20201010 ARIN/20201011 IANA/20191227 LACNIC/20201009 LISP/20200318 RIPENCC/20201011 (created: 20201012-064251 UTC)
BuiltIn: IPv6 : AFRINIC/20201012 APNIC/20201010 ARIN/20201011 IANA/20191106 LACNIC/20201009 LISP/20200318 RIPENCC/20201011 (created: 20201012-070210 UTC)
BuiltIn: IEEE : IAB/20201012 OUI/20201012 OUI28/20201012 OUI36/20201012
Database selection or priorization ('->': subsequential calls)
Database priorization default: GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)->GeoIP->db-ip.com->External->BuiltIn
DB_AS_REG (AS-Number to Registry database): BuiltIn
DB_CC_REG (CountryCode to Registry database): BuiltIn
DB_IPV4_REG (IPv4 to Registry database): BuiltIn
DB_IPV6_REG (IPv6 to Registry database): BuiltIn
DB_IPV4_AS (IPv4 to AS database): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB)
DB_IPV6_AS (IPv6 to AS database): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB)
DB_IPV4_CC (IPv4 to CountryCode database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)->External
DB_IPV6_CC (IPv6 to CountryCode database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)->External
DB_IPV4_COUNTRY (IPv4 to Country database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)
DB_IPV6_COUNTRY (IPv6 to Country database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)
DB_IPV4_CITY (IPv4 to City database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)
DB_IPV6_CITY (IPv6 to City database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)
DB_IPV4_REGION (IPv4 to Region database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)
DB_IPV6_REGION (IPv6 to Region database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)
DB_IEEE (IEEE/OUI/OUI28/OUI36 Vendor database): BuiltIn
DB_IPV4_INFO (IPv4 additional information): External->BuiltIn
DB_IPV6_INFO (IPv6 additional information): External->BuiltIn
DB_IPV4_GEONAMEID (IPv4 GeonameID): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB)
DB_IPV6_GEONAMEID (IPv6 GeonameID): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB)

Option “-v -h” (since 0.97.4) shows explanation of feature tokens

$ ipv6calc -v -h
ipv6calc: version 3.0.0 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID
Explanation of available(x)/possible(o) feature tokens
GeoIP                    x GeoIPv4 database (provided by GeoIP(MaxMindDB))
GeoIPv6                  x GeoIPv6 database (provided by GeoIP(MaxMindDB))
IP2Location              x IP2Location IPv4 database (provided by IP2Location)
IP2Location6             x IP2Location IPv6 database (provided by IP2Location)
DBIPv4                   x db-ip.com IPv4 database (provided by db-ip.com(MaxMindDB))
DBIPv6                   x db-ip.com IPv6 database (provided by db-ip.com(MaxMindDB))
DB_AS_REG                x AS-Number to Registry database (provided by BuiltIn)
DB_IPV4_REG              x IPv4 to Registry database (provided by External,BuiltIn)
DB_IPV6_REG              x IPv6 to Registry database (provided by External,BuiltIn)
DB_IPV4_AS               x IPv4 to AS database (provided by GeoIP(MaxMindDB),db-ip.com(MaxMindDB))
DB_IPV6_AS               x IPv6 to AS database (provided by GeoIP(MaxMindDB),db-ip.com(MaxMindDB))
DB_IPV4_CC               x IPv4 to CountryCode database (provided by GeoIP(MaxMindDB),IP2Location,db-ip.com(MaxMindDB),External)
DB_IPV6_CC               x IPv6 to CountryCode database (provided by GeoIP(MaxMindDB),IP2Location,db-ip.com(MaxMindDB),External)
DB_IPV4_COUNTRY          x IPv4 to Country database (provided by GeoIP(MaxMindDB),IP2Location,db-ip.com(MaxMindDB))
DB_IPV6_COUNTRY          x IPv6 to Country database (provided by GeoIP(MaxMindDB),IP2Location,db-ip.com(MaxMindDB))
DB_IPV4_CITY             x IPv4 to City database (provided by GeoIP(MaxMindDB),IP2Location,db-ip.com(MaxMindDB))
DB_IPV6_CITY             x IPv6 to City database (provided by GeoIP(MaxMindDB),IP2Location,db-ip.com(MaxMindDB))
DB_IPV4_REGION           x IPv4 to Region database (provided by GeoIP(MaxMindDB),IP2Location,db-ip.com(MaxMindDB))
DB_IPV6_REGION           x IPv6 to Region database (provided by GeoIP(MaxMindDB),IP2Location,db-ip.com(MaxMindDB))
DB_CC_REG                x CountryCode to Registry database (provided by BuiltIn)
DB_IEEE                  x IEEE/OUI/OUI28/OUI36 Vendor database (provided by BuiltIn)
DB_IPV4_INFO             x IPv4 additional information (provided by External,BuiltIn)
DB_IPV6_INFO             x IPv6 additional information (provided by External,BuiltIn)
DB_IPV4_GEONAMEID        x IPv4 GeonameID (provided by GeoIP(MaxMindDB),db-ip.com(MaxMindDB))
DB_IPV6_GEONAMEID        x IPv6 GeonameID (provided by GeoIP(MaxMindDB),db-ip.com(MaxMindDB))
ANON_ZEROISE             x Anonymization method 'zeroize'
ANON_ANONYMIZE           x Anonymization method 'anonymize'
ANON_KEEP-TYPE-ASN-CC    x Anonymization method 'keep-type-asn-cc'
ANON_KEEP-TYPE-GEONAMEID x Anonymization method 'keep-type-geonameid'

Note: since version 0.95.0 the internal layer for database usage was abstracted and each database “plugin” is initialized reporting then its supporting features in binary representation. This makes implementation of other external databases easier in the future. There are at least plans to create an overlay to built-in databases by publishing and use some “precompiled” newer databases replacing the need of recompilation for updated built-in databases.


9.3. Examples

9.3.1. Conversion

A simple example is the conversion of an IPv6 address to a DNS PTR query string:

$ ipv6calc --out revnibbles.arpa 2001:db8::1
No input type specified, try autodetection...found type: ipv6addr
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.

Like you see, input format was autodetected. And the given example can be extended because ipv6calc also understands netmask / prefix length values:

$ ipv6calc -q --out revnibbles.arpa 2001:db8::1/64
0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.

Also you've also learnt now that switch '-q' (quiet) suppresses informational messages. You can use this now to start a DNS PTR query using:

$ dig PTR `./ipv6calc -q --out revnibbles.arpa 2001:db8::1/64`

But ipv6calc can do many more for you! Next example shows you the extraction of the IPv4 address contained in a 6to4 IPv6 address:

$ ipv6calc -q --action conv6to4 --in ipv6 2002:c0a8:fb61::1 --out ipv4
192.168.251.97

This also works vice-versa:

$ ipv6calc -q --action conv6to4 --in ipv4 192.168.251.97 --out ipv6
2002:c0a8:fb61::

There are many more features already implemented, if you miss one, send a note.


9.3.2. Information

Depending on available databases output can vary.


9.3.2.1. Information about a simple IPv6 address:
$ ipv6calc -q -i 3ffe:ffff::210:a4ff:fe01:2345
Address type: unicast, 6bone, global-unicast, productive
Address type has SLA: 0000
Registry for address: reserved
Interface identifier: 0210:a4ff:fe01:2345
EUI-48/MAC address: 00:10:a4:01:23:45
MAC is a global unique one
MAC is an unicast one
OUI is: XIRCOM

9.3.2.2. Information about a Teredo IPv6 address:
$ ipv6calc -q -i 3ffe:831f:ce49:7601:8000:efff:af4a:86BF
Address type: unicast, 6bone, global-unicast, teredo
Country Code: IT
Registry for address: 6BONE
IPv4 address: 80.181.121.64 (TEREDO-CLIENT)
IPv4 address type: unicast, global
Autonomous System Information for [80.181.121.64]: AS3269 ASN-IBSNAZ
Country Code for [80.181.121.64]: IT 
...

9.3.2.3. Information about a LISP address
$ ipv6calc -q -i 153.16.26.80
IPv4 address: 153.16.26.80
IPv4 address type: unicast, global, lisp
...
IPv4 registry: ARIN(LISP#cbc-xtr) 
...

9.3.2.4. Machine readable output

There exists also a machine readable output (e.g. used by 'ipv6calcweb.cgi') - in addition, database related information can be displayed, if databases are located on the system and supported.

$ ipv6calc -q -i -m 2a01:238:423d:8800:85b3:9e6b:3019:8909  
IPV6=2a01:0238:423d:8800:85b3:9e6b:3019:8909
IPV6_ANON=a909:16fa:9091:a448:a909:4941:0000:0007
IPV6_TYPE=ipv6,unicast,global-unicast,productive,iid-random,iid,iid-local
IPV6_COUNTRYCODE=DE
IPV6_COUNTRYCODE_SOURCE=GeoIP(MaxMindDB)
IPV6_AS_NUM=6724
IPV6_AS_SOURCE=GeoIP(MaxMindDB)
IPV6_GEONAME_ID=2921044
IPV6_GEONAME_ID_SOURCE=GeoIP(MaxMindDB)
IPV6_GEONAME_ID_TYPE=Country
IPV6_REGISTRY=RIPENCC
SLA=8800
IID=85b3:9e6b:3019:8909
EUI64_SCOPE=local-random
IP2LOCATION_COUNTRY_SHORT=DE
IP2LOCATION_COUNTRY_LONG=Germany
IP2LOCATION_REGION=Berlin
IP2LOCATION_CITY=Berlin
IP2LOCATION_ZIPCODE=10178
IP2LOCATION_LATITUDE=52.524368
IP2LOCATION_LONGITUDE=13.410530
IP2LOCATION_TIMEZONE=+01:00
GEOIP2_CONTINENT_SHORT=EU
GEOIP2_CONTINENT_LONG=Europe
GEOIP2_COUNTRY_SHORT=DE
GEOIP2_COUNTRY_LONG=Germany
GEOIP2_LATITUDE=51.000000
GEOIP2_LONGITUDE=9.000000
GEOIP2_RADIUS=100
GEOIP2_TIMEZONE_NAME=Europe/Berlin
GEOIP2_AS_NUM=6724
GEOIP2_AS_ORGNAME=Strato AG
GEOIP2_GEONAME_ID_COUNTRY=2921044
GEOIP2_GEONAME_ID_CONTINENT=6255148
DBIP2_CONTINENT_SHORT=EU
DBIP2_CONTINENT_LONG=Europe
DBIP2_COUNTRY_SHORT=DE
DBIP2_COUNTRY_LONG=Germany
DBIP2_REGION=Berlin
DBIP2_CITY=Berlin (Charlottenburg-Wilmersdorf)
DBIP2_ZIPCODE=10587
DBIP2_LATITUDE=52.523900
DBIP2_LONGITUDE=13.321400
DBIP2_WEATHERSTATIONCODE=GMXX8538
DBIP2_TIMEZONE_NAME=Europe/Berlin
DBIP2_AS_NUM=6724
DBIP2_AS_ORGNAME=Strato AG
DBIP2_ISP=Strato Rechenzentrum
DBIP2_NETSPEED=Corporate
DBIP2_GEONAME_ID=3336294
DBIP2_GEONAME_ID_REGION=2950157
DBIP2_GEONAME_ID_COUNTRY=2921044
DBIP2_GEONAME_ID_CONTINENT=6255148
EXTERNAL_COUNTRY_SHORT=DE
IP2LOCATION_DATABASE_INFO=IP2L-DB11 IPv4 IPv6 20181226 Copyright (c) 2018 IP2Location All Rights Reserved
GEOIP2_DATABASE_INFO=GeoLite2-City Copyright (c) 2019 MaxMind All Rights Reserved, created: 20191217-200126 UTC / GeoLite2-ASN Copyright (c) 2019 MaxMind All Rights Reserved, created: 20190122-114228 UTC
DBIP2_DATABASE_INFO=DBIP-Location-ISP (compat=Enterprise) Copyright (c) 2019 db-ip.com All Rights Reserved, created: 20190101-015418 UTC
EXTERNAL_DATABASE_INFO=EXTDB-4/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191106 LACNIC/20200903 LISP/20200318 RIPENCC/20200903, created: 20200904-063305 UTC
BUILTIN_DATABASE_INFO=IPv6-REG:AFRINIC/20201012 APNIC/20201010 ARIN/20201011 IANA/20191106 LACNIC/20201009 LISP/20200318 RIPENCC/20201011
IPV6CALC_NAME=ipv6calc
IPV6CALC_VERSION=3.0.0
IPV6CALC_COPYRIGHT="(P) & (C) 2001-2020 by Peter Bieringer <pb (at) bieringer.de>"
IPV6CALC_OUTPUT_VERSION=21
IPV6CALC_SETTINGS_ANON="set=keep-type-asn-cc,mask-ipv6=56,mask-ipv4=24,mask-eui64=40,mask-mac=24,method=keep-type-asn-cc"
IPV6CALC_FEATURES="GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID"
IPV6CALC_CAPABILITIES="GeoIP2(linked/MaxMindDB) IP2Location(linked) DBIP2(linked/MaxMindDB) ExternalDatabase DB_AS_REG(BuiltIn) DB_CC_REG(BuiltIn) DB_IPV4_REG(BuiltIn) DB_IPV6_REG(BuiltIn) DB_IEEE(BuiltIn)"
Special machine readable output options (>= 0.99.0)

9.3.2.4.1. Output filter by selecting a token (>= 0.99.0)

Using option --mrst <TOKEN> (Machine Readable Select Token) can be used to display only a selected token

$ ipv6calc -q -i --mrst IPV6_TYPE 2a01:238:423d:8800:85b3:9e6b:3019:8909 
IPV6_TYPE=unicast,global-unicast,productive,iid-random,iid,iid-local

9.3.2.4.2. Output filter by matching token (>= 0.99.0)

Using option --mrmt <TOKEN> (Machine Readable Match Token) can be used to display only matching tokens

$ ipv6calc -q -i --mrmt IP2LOCATION 2a01:238:423d:8800:85b3:9e6b:3019:8909 
IP2LOCATION_COUNTRY_SHORT=DE
IP2LOCATION_COUNTRY_LONG=Germany
IP2LOCATION_REGION=Berlin
IP2LOCATION_CITY=Berlin
IP2LOCATION_ZIPCODE=10178
IP2LOCATION_LATITUDE=52.524368
IP2LOCATION_LONGITUDE=13.410530
IP2LOCATION_TIMEZONE_NAME=+01:00
IP2LOCATION_DATABASE_INFO=IP2L-DB11 IPv6 20181226 Copyright (c) 2018 IP2Location All Rights Reserved

9.3.2.4.3. Output filter by selecting a value of a token token (>= 0.99.0)

Using option --mrtvo <TOKEN> (Machine Readable Token Value Only) can be used to display only thevalue of a selected token

$ ipv6calc -q -i --mrtvo IPV6_TYPE 2a01:238:423d:8800:85b3:9e6b:3019:8909 
unicast,global-unicast,productive,iid-random,iid,iid-local

9.3.2.4.4. Output adjustment by unconditional quoting of values (>= 0.99.0)

Using option --mrqva (Machine Readable Quote Values Always) can be used to quote values always of a selected token

$ ipv6calc -q -i --mrqva --mrtvo IPV6_TYPE 2a01:238:423d:8800:85b3:9e6b:3019:8909 
"unicast,global-unicast,productive,iid-random,iid,iid-local"

9.3.2.4.5. Output adjustment by unconditional disabling quoted values (>= 0.99.0)

Using option --mrqvn (Machine Readable Quote Values Never) can be used to never quote values of a selected token

$ ipv6calc -q -i --mrqvn --mrst IPV6_AS_TEXT 2a01:238:423d:8800:85b3:9e6b:3019:8909 
IPV6_AS_TEXT=AS6724 STRATO AG

9.3.2.4.6. Output adjustment by unconditional print token in case of empty value (>= 0.99.0)

Using option --mrstpq (Machine Readable Select Token Print Always) can be used to print always token/value regardless it's contained

$ ipv6calc -q -i --mrqva --mrstpa IPV4 2a01:238:423d:8800:85b3:9e6b:3019:8909 
IPV4=""
$ ipv6calc -q -i --mrqva --mrst IPV4 2a01:238:423d:8800:85b3:9e6b:3019:8909 
(no output)

9.3.3. Filter mode

“ipv6calc” can run in filter mode to be able to extract from a huge list of IPv4/IPv6 addresses ones which are interesting or ones which are not interesting (see printout of online help below).

Filter tokens are the ones which are listed on “TYPE” lines shown in “-m -i” information mode.

Example for searching for Teredo addresses:

$ cat ip.bieringer.de-log.201310 | awk '{ print $1 }' | sort | uniq | ipv6calc -A filter -E teredo
2001:0:9d38:90d7:34f7:1a26:8599:e079

For more information see below

Note: since version 0.95.0 '-A filter' is optional if option '-E <filter expression>' is given (autoselected action).


9.3.4. Test mode

Since 0.99.2 a test mode ('-A test', autoselected in case 'test_*' options are given) is implemented for address prefix or range

For more information see below


9.4. Option style

Since version 0.40 new-style option handling was introduced, using

  • --in <inputtype>

  • --out <outputtype>

  • --action <actiontype>

and many more conversions were added. A built-in check matrix should prevent misconversions.

Up to version 0.39, only old-style options (aka “shortcut” options). They are one-in-all options, specifying input/action/output in one token. Internally this options will be converted into new-style options.


9.5. Online help

Online help always shows the currently implemented features.


9.5.1. Main online help:

External database options only appear if compiled with related support.

$ ipv6calc -h
ipv6calc: version 3.0.0 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID
(P) & (C) 2001-2020 by Peter Bieringer <pb (at) bieringer.de>
This program formats and calculates IPv6/IPv4/MAC addresses and can do many more tricky things
  [-d|--debug <debug value>] : debug value (bitwise like)
                                can also be set by IPV6CALC_DEBUG environment value
  [-v|--version [-v [-v]]]   : version information (2 optional detail levels)
  [-v|--version -h]          : explanation of feature tokens
  [-V|--verbose]             : be more verbose
  [-h|--help|-?]             : this online help

  [--disable-ip2location           ] : IP2Location support disabled
  [--db-ip2location-disable        ] : IP2Location support disabled
  [--db-ip2location-dir <directory>] : IP2Location database directory (default: /usr/share/IP2Location)
  [--db-ip2location-only-type <TYPE>]: IP2Location database only selected type (1-120)
  [--db-ip2location-allow-softlinks] : IP2Location database softlinks allowed
     by default they are ignored because it is hard to autodetect COMM/LITE/SAMPLE
  [--db-ip2location-lite-to-sample-autoswitch-max-delta-months <MONTHS>]:
     autoswitch from LITE to SAMPLE databases if possible and delta is not more than 12 months (0=disabled)
  [--db-ip2location-comm-to-lite-switch-min-delta-months <MONTHS>]:
     switch from COMM to LITE databases if possible and delta more than 12 months (0=disabled)

  [--disable-geoip2                ] : GeoIP(MaxMindDB) support disabled
  [--db-geoip2-disable             ] : GeoIP(MaxMindDB) support disabled
  [--db-geoip2-dir      <directory>] : GeoIP(MaxMindDB) database directory (default: /usr/share/GeoIP)

  [--disable-dbip2                 ] : db-ip.com(MaxMindDB) support disabled
  [--db-dbip2-disable              ] : db-ip.com(MaxMindDB) support disabled
  [--db-dbip2-dir       <directory>] : db-ip.com(MaxMindDB) database directory (default: /usr/share/DBIP)
  [--db-dbip2-only-type <TYPE>]      : db-ip.com(MaxMindDB) database only selected type (1-6)
  [--db-dbip2-comm-to-free-switch-min-delta-months <MONTHS>]:
     switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled)
  [--disable-external              ] : External support disabled
 
  [--db-external-disable           ] : External support disabled
  [--db-external-dir    <directory>] : External database directory (default: /usr/share/ipv6calc/db)
  [--disable-builtin               ] : BuiltIn support disabled
  [--db-builtin-disable            ] : BuiltIn support disabled
  
  [--db-priorization <entry1>[:...]] : Database priorization order list (overwrites default)
                                         colon separated: GeoIP GeoIP2 IP2Location DBIP DBIP2 External BuiltIn

Hint: all long options can be predefined from environment by using
  prefix: IPV6CALC_ and  conversion: '-' -> '_' and lowercase -> uppercase
  example for options with values   : --db-dbip2-dir=<DIR>  ->  environment: IPV6CALC_DB_DBIP2_DIR=<DIR>
  example for options without values: --db-dbip2-disable    ->  environment: IPV6CALC_DB_DBIP2_DISABLE=1
                                                                              on|off|0|1 is supported
  [-q|--quiet]               : be more quiet (auto-enabled in pipe mode)
  [-f|--flush]               : flush each line in pipe mode
 Usage with new style options:
  [--in|-I <input type>]   : specify input  type
                             (default: autodetect)
  [--out|-O <output type>] : specify output type
                             (sometimes: autodetect)
  [--action|-A <action>]   : specify action
                             (default: format conversion, sometimes: autodetect)
  [<format option> ...] : specify format options
  <input data> [...]    : input data
  Available input  types:  [-m] -I|--in     -?|-h|--help
  Available output types:  [-m] -O|--out    -?|-h|--help
  Available action types:  [-m] -A|--action -?|-h|--help
  Special filter action :  -E -?|-h|--help

 Other usage:
  --showinfo|-i [--machine_readable|-m] : show information about input data
  --showinfo|-i --mrqva                 : Machine Readable Quote Values Always
  --showinfo|-i --mrqvn                 : Machine Readable Quote Values Never
  --showinfo|-i --mrst <TOKEN>          : Machine Readable Select Token
  --showinfo|-i --mrstpa <TOKEN>        : Machine Readable Select Token Print Always
  --showinfo|-i --mrmt <TOKENPREFIX>    : Machine Readable Match Token Prefix
  --showinfo|-i --mrmts <TOKENSUFFIX>   : Machine Readable Match Token Suffix
  --showinfo|-i --mrtvo <TOKEN>         : Machine Readable Token Value Only
  --showinfo|-i --show-tokens           : show available tokens (aka types) on '-m'

 Usage with shortcut options: <shortcut option> [<format option> ...] <input data>
  for more information and available format options use: <shortcut option> -?|-h|--help
  -r|--addr2ip6_int (-O revnibbles.int)
  -r|--addr_to_ip6int (-O revnibbles.int)
  -a|--addr2ip6_arpa (-O revnibbles.arpa)
  -a|--addr_to_ip6arpa (-O revnibbles.arpa)
  -b|--addr_to_bitstring (-O bitstring)
     --addr2compaddr (--printcompressed)
     --addr_to_compressed (--printcompressed)
     --addr2uncompaddr (--printuncompressed)
     --addr_to_uncompressed (--printuncompressed)
     --addr_to_base85 (-I ipv6addr -O base85)
     --base85_to_addr (-I base85 -O ipv6addr)
     --mac_to_eui64 (-I mac -O eui64)
     --addr2fulluncompaddr (--printfulluncompressed)
     --addr_to_fulluncompressed (--printfulluncompressed)
     --addr2if_inet6 (-I ipv6addr -O ifinet6)
     --addr_to_ifinet6 (-I ipv6addr -O ifinet6)
     --if_inet62addr (-I ifinet6 -O ipv6addr --printcompressed)
     --ifinet6_to_compressed (-I ifinet6 -O ipv6addr --printcompressed)
     --eui64_to_privacy (-I iid_token -O iid_token -A genprivacyiid)
     --ipv4_to_6to4addr (-I ipv4 -O ipv6addr -A conv6to4)
     --addr2cc (-A addr2cc)

9.5.2. Database options

  • each internal/external database can be disabled by option

  • directory of database files can be given via related option

  • databases requiring external library the library file can be given in case of dynamic load and linking

  • for geolocation databases specific file can be selected (see --db-<PROVIDER>-only-type <TYPE>)


9.5.2.1. IP2Location

IP2location database directory can contain a bunch of files, the best ones are selected automatically (since 0.99.0). “Best” can be controlled via two options:

  • --db-ip2location-lite-to-sample-autoswitch-max-delta-months <MONTHS>: switches from LITE to SAMPLE databases in case of

    • existing SAMPLE database

    • SAMPLE database not older than default/given MONTHS than the LITE database

    • IP address is in range of SAMPLE database (IPv4: 0.0.0.0-99.255.255.255, IPv6: 2a04::/16)

    • autoswitch can be disabled by using MONTHS=0

    • reason for implementation: show maximum possible IP2Location features

  • --db-ip2location-comm-to-lite-switch-min-delta-months <MONTHS>: switches from COMMercial to LITE databases in case of

    • existing LITE database

    • COMMercial database is default/given MONTHS older than the LITE database

    • switch can be disabled by using MONTHS=0

    • reason for implementation: avoid using old COMMercial databases

  • --db-ip2location-only-type <TYPE>: only selects databases of given type

    • reason for implementation: be able to select a specific database type

  • --db-ip2location-allow-softlinks: allow softlinked IP2Location database files

    • by default, softlinked database files are skipped, because it's hard to detect whether one is COMMercial, LITE or SAMPLE

use “ipv6calc -vv” or “ipv6calc -vvv” for verification, which databases are selected finally.


9.5.3. Input-type options

$ ipv6calc --in -?
ipv6calc: version 2.1.1 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID
(P) & (C) 2001-2019 by Peter Bieringer <pb (at) bieringer.de>
 Available input types:
  auto            : automatic detection
  revnibbles.int  : dot separated nibbles reverse, ending with ip6.int.
  revnibbles.arpa : dot separated nibbles reverse, ending with ip6.arpa.
  bitstring       : bitstring labes, ending with ip6.arpa.
  ipv6addr        : IPv6 address
  ipv6literal     : IPv6 address in literal
  ipv4addr        : IPv4 address
  ipv4hex         : IPv4 in hexdecimal format
  ipv4revhex      : IPv4 in byte-reversed hexdecimal format
  mac             : MAC address (48 bits)
  eui64           : EUI-64 identifier (64 bits)
  base85          : Base-85 string
  ifinet6         : Like line in /proc/net/if_inet6
  iid+token       : Interface identifier and token
  ipv6logconv     : ipv6logconv (currently not supported)
  prefix+mac      : IPv6 prefix and a MAC address
  asn             : Autonomous System Number

9.5.4. Output-type options:

$ ipv6calc --out -?
ipv6calc: version 2.1.1 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID
(P) & (C) 2001-2019 by Peter Bieringer <pb (at) bieringer.de>
 Available output types:
  revnibbles.int  : dot separated nibbles reverse, ending with ip6.int.
  revnibbles.arpa : dot separated nibbles reverse, ending with ip6.arpa.
  bitstring       : bitstring labes, ending with ip6.arpa.
  ipv6addr        : IPv6 address
  ipv4addr        : IPv4 address
  mac             : MAC address (48 bits)
  eui64           : EUI-64 identifier (64 bits)
  base85          : Base-85 string
  ifinet6         : Like line in /proc/net/if_inet6
  iid             : Interface identifier
  iid+token       : Interface identifier and token
  addrtype        : Address type
  ouitype         : OUI (IEEE) type
  ipv6addrtype    : IPv6 address type
  any             : any type (currently not supported)
  revipv4         : reverse IPv4, ending with in-addr.arpa
  ipv4hex         : IPv4 in hexdecimal format
  octal           : IP address in escaped octal format
  hex             : IP address in hexadecimal format
  ipv6literal     : IPv6 address in literal

For examples and available format options use:

$ ipv6calc -O|--out <type> --examples

9.5.5. Action-type options:

$ ipv6calc --action -?
ipv6calc: version 3.3.0 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID DB_IPV4_DUMP_CC DB_IPV6_DUMP_CC ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID (P) & (C) 2001-2021 by Peter Bieringer <pb (at) bieringer.de>
 Available action types:
  auto             : Automatic selection of action (default)
  geneui64         : Converts a MAC address to an EUI-64 address
  conv6to4         : Converts IPv4 address <-> 6to4 IPv6 address (prefix)
  convnat64        : Converts IPv4 address <-> NAT64 IPv6 address
  ipv6tomac        : Extracts MAC of an IPv6 address (if detected)
  ipv6toeui64      : Extracts EUI64 of an IPv6 address (if detected)
  genprivacyiid    : Generates a privacy interface ID out of a given one (arg1) and a token (arg2)
  prefixmac2ipv6   : Generates an IPv6 address out of a prefix and a MAC address
  anonymize        : Anonymize IPv4/IPv6 address without loosing much information
  6rd_local_prefix : Calculate the 6rd prefix from given IPv6 prefix (& relay prefix) and IPv4
                      Options:
                       --6rd_prefix ... (required)
                       --6rd_relay_prefix ... (optional)
  6rd_extract_ipv4 : Extract from 6rd address the include IPv4 address
                      Options:
                       --6rd_prefixlength ... (required)
  filter           : Filter addresses related to filter options
  test             : Test address against given prefix or address
                      Options:
                       --test_prefix ... (optional)
                       --test_gt ... (optional)
                       --test_ge ... (optional)
                       --test_lt ... (optional)
                       --test_le ... (optional)
  addr2cc          : Converts IPv4/IPv6 address into Country Code
  dbdump           : Dump Database 

9.5.6. Special action “filter”:

Special action “filter” can be used especially in pipe mode to filter IP addresses related to their type and since 0.99.0 also related to database results (CountryCode, ASN or Registry).

$ ipv6calc --action filter -h
ipv6calc: version 2.1.1 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID
 Filter given addresses from stdin by filter expression, e.g.
  echo '2001:db8::1' | ipv6calc [-A filter] -E iid-local
  echo '2001:db8::1' | ipv6calc [-A filter] -E iid-local,global-unicast
  echo '2001:db8::1' | ipv6calc [-A filter] -E ^iid-random
 (note: since version 0.95.0 '-A filter' is autoselected if option '-E <filter expression>' is given)
 negation of filter expression with prefix: ^
  IPv6 address filter tokens:
   ipv6  unknown unicast multicast anycast loopback link-local site-local compat-v4 mapped reserved unique-local-unicast anonymized-iid anonymized-prefix 6to4 6bone global-unicast unspecified solicited-node productive 6to4-microsoft teredo orchid link-local-teredo nat64 iid-random iid iid-local iid-global iid-teredo iid-eui48 iid-eui64 iid-isatap iid-includes-ipv4
  IPv4 address filter tokens:
   ipv4  any unicast multicast anycast broadcast loopback unspecified unknown reserved zeroconf site-local anonymized anonymized-geonameid global 6to4relay lisp lisp-proxyegresstunnelrouter-anycast lisp-mapresolver-anycast
  IPv4/v6 address filter tokens based on databases:
   [^][ipv4.|ipv6.]db.cc=<CC>|unknown (Country Code [2 chars])
   [^][ipv4.|ipv6.]db.asn=<ASN>|unknown (Autonomous System Number)
   [^][ipv4.|ipv6.]db.reg=<REGISTRY>
    Registry tokens: 6BONE IANA APNIC ARIN RIPENCC LACNIC AFRINIC 6TO4 reserved unknown
  IPv4/v6 address filter tokens based on address/mask:
   [^]ipv4.addr=<IPV4-ADDRESS>[<PREFIX-LENGTH>]
   [^]ipv6.addr=<IPV6-ADDRESS>[<PREFIX-LENGTH>]
  IPv4/v6 address filter tokens based on address ranges (<=|<|>|>=):
   [^]ipv4.addr(<=|<|>|>=)<IPV4-ADDRESS>
   [^]ipv6.addr(<=|<|>|>=)<IPV6-ADDRESS>
   as alternative in case <|> creating problems also supported: =(le|lt|gt|ge)=:
   [^]ipv4.addr=(le|lt|gt|ge)=<IPV4-ADDRESS>
   [^]ipv6.addr=(le|lt|gt|ge)=<IPV6-ADDRESS>
  EUI-48/MAC address filter tokens:
    IMPLEMENTATION MISSING
  EUI-64 address filter tokens:
    IMPLEMENTATION MISSING

Example for some filter expressions:

$ cat ip.bieringer.de-log.201504 | ipv6calc -E ipv6.db.cc=DE | wc -l
5068

$ cat ip.bieringer.de-log.201504 | ipv6calc -E ipv6.db.cc=US | wc -l
305

$ cat ip.bieringer.de-log.201504 | ipv6calc -E ipv6.db.reg=ARIN | wc -l
306

$ cat ip.bieringer.de-log.201504 | ipv6calc -E iid-random | wc -l
4806

$ cat ip.bieringer.de-log.201504 | ipv6calc -E ipv6.db.cc=US,iid-random | wc -l
16

$ cat ip.bieringer.de-log.201504 | ipv6calc -A filter -E ipv6.db.cc=US,iid-random,ipv4.db.cc=US | wc -l
1842

$ cat ip.bieringer.de-log.201504 | ipv6calc -A filter -E db.asn=8767 | wc -l
2363
$ cat ip.bieringer.de-log.201504 | ipv6calc -A filter -E ipv6.db.asn=8767 | wc -l
1452
$ cat ip.bieringer.de-log.201504 | ipv6calc -A filter -E ipv4.db.asn=8767 | wc -l
911

Example for searching for addresses in a specific range (supported since 0.99.2):

$ cat ip.bieringer.de-log.201609 | awk '{ print $1 }' | sort | uniq | ipv6calc -E ipv6.addr=ge=2002::,ipv6.addr=lt=2003::
2002:2518:0:1:2:3:4:5
...
2002:d950:0:1:2:3:4:5

9.5.7. Special action “test”:

Special action “test” (since 0.99.2) can be used in command line or pipe mode (single address only) to test IP addresses related to a given prefix or range .

$ ipv6calc -A test -?
ipv6calc: version 2.1.1 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID
 Test given address(es) against supported tests:
  --test_prefix <PREFIX>       : inside a prefix
  --test_gt|--test_ge <ADDRESS>: greater(/equal) than an address
  --test_lt|--test_le <ADDRESS>: less(/equal) than an address
 Test given address(es) from stdin, e.g.
  echo '2001:db8::1' | ipv6calc [-A test] --test_prefix 2001:db8::/32
  echo '2001:db8::1' | ipv6calc [-A test] --test_prefix 2001:db9::/32
 Single address test, return code: 0=inside/matching 1=outside/not-matching 2=uncomparable
  ipv6calc [-A test] --test_prefix 2001:db8::/32 2001:db8::1
  ipv6calc [-A test] --test_prefix 2001:db9::/32 2001:db8::1
  ipv6calc [-A test] --test_ge 2001:db8:: --test_le 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff 2001:db8::1
  ipv6calc [-A test] --test_ge 2001:db9:: --test_le 2001:db9:ffff:ffff:ffff:ffff:ffff:ffff 2001:db8::1
  ipv6calc [-A test] --test_ge 2001:db9:: --test_lt 2001:dba:: 2001:db8::1
  ipv6calc [-A test] --test_ge 2001:db8:: --test_lt 2001:db9:: 2001:db8::1

Example for command line mode:

$ ipv6calc --test_ge 2001:db8:: --test_le 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff 2001:db8::1; echo $?
no input type specified, try autodetection...found type: ipv6addr
no output type specified, try autodetection...found type: ipv6addr
2001:db8::1   greater/equal than 2001:db8::  less/equal than 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff
0

Example for command line mode (quiet):

$ ipv6calc -q --test_ge 2001:db8:: --test_le 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff 2001:db8::1; echo $?
2001:db8::1   greater/equal than 2001:db8::  less/equal than 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff
0

Example for pipe mode:

$ echo -e "1.2.3.4\n1.2.4.4" | ipv6calc --test_prefix 1.2.3.0/24
1.2.3.4   inside 1.2.3.0/24
1.2.4.4   NOT inside 1.2.3.0/24

9.5.8. Special action “conv6to4”:

Special action “conv6to4” (since at least 0.99.1) can be used in command line or pipe mode to convert 6to4-IPv6 in IPv4 addresses and vice versa.

$ ipv6calc: version 3.2.1 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO ANON_ZEROISE ANON_ANONYMIZE
  Convert IPv4 to 6to4 prefix / extract IPv4 from 6to4 prefix
   ipv6calc -A conv6to4 192.0.2.1          -> 2002:c000:201::
   ipv6calc -A conv6to4 192.0.2.1/24       -> 2002:c000:200::/40
   ipv6calc -A conv6to4 192.0.2.0/24       -> 2002:c000:200::/40
   ipv6calc -A conv6to4 2002:c000:201::    -> 192.0.2.1
   ipv6calc -A conv6to4 2002:c000:201::/40 -> 192.0.2.0/24
  See '-O ipv4 -h' or '-O ipv6 -h' for optional output modifications
  Can also be used in PIPE mode to convert a list of IP addresses/networks

Example for command line mode:

$ ipv6calc -q -A conv6to4 192.0.2.1
2002:c000:201::

Example for pipe mode:

echo -e "1.2.3.4\n1.2.4.4" | ipv6calc -A conv6to4
2002:102:304::
2002:102:404::

$ echo -e "1.2.3.0/24\n1.2.4.0/24" | ipv6calc -A conv6to4
2002:102:300::/40
2002:102:400::/40

9.5.9. Special action “dbdump”:

Since version 3.3.0, action “dbdump” is provided

  • Version >= 3.3.0: database “External”, type: IPv4/IPv6 addresses, suppported filter: CountryCode

Precondition: created/updated “External” database

$ /usr/share/ipv6calc/tools/ipv6calc-db-update.sh
...

Precondition: active “database dump” support

$ ipv6calc -vv 2>&1 | grep -E '(DB_IPV4_DUMP_CC|DB_IPV6_DUMP_CC)'
ipv6calc: version 3.3.0 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID DB_IPV4_DUMP_CC DB_IPV6_DUMP_CC ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID 
DB_IPV4_DUMP_CC (IPv4 Database Dump by CountryCode): External
DB_IPV6_DUMP_CC (IPv6 Database Dump by CountryCode): External 

Precondition: recognized “External” database

$ ipv6calc -vv 2>&1 | grep -E '(External: IPv. CountryCode)'
External: IPv4 CountryCode    : ipv6calc-external-ipv4-countrycode.db    (EXTDB-3/AFRINIC/20210919 APNIC/20210917 ARIN/20210919 IANA/20210205 LACNIC/20210918 LISP/20200318 RIPENCC/20210918, created: 20210919-152957 UTC)
External: IPv6 CountryCode    : ipv6calc-external-ipv6-countrycode.db    (EXTDB-4/AFRINIC/20210919 APNIC/20210917 ARIN/20210919 IANA/20191106 LACNIC/20210918 LISP/20200318 RIPENCC/20210918, created: 20210919-155049 UTC) 

Usage Example: dump all IPv4 networks which have not “unknown” CountryCode

$ ipv6calc -A dbdump -E ^ipv4.db.cc=unknown
# 'External' database dump (with 121894 entries) start with filter IPv4 && CountryCode(s): ^unknown (suppress this line with option '-q')
1.0.0.0/24
1.0.1.0/24
...
# 'External' database dump finished displaying 121894 entries with filter IPv4 && CountryCode(s): ^unknown (suppress this line with option '-q') 

Usage Example: dump all IPv6 networks of a given CountryCode

$ ipv6calc -A dbdump -E ipv6.db.cc=VN
# 'External' database dump (with 56097 entries) start with filter IPv6 && CountryCode(s): VN (suppress this line with option '-q')
2001:7fa:6::/28
2001:dc8::/28 
...
# 'External' database dump finished displaying 344 entries with filter IPv6 && CountryCode(s): VN (suppress this line with option '-q') 

Usage Example: dump all IPv4 networks of two given CountryCodes

$ ipv6calc -A dbdump -E ipv4.db.cc=VN,ipv4.db.cc=CN
# 'External' database dump (with 121894 entries) start with filter IPv4 && CountryCode(s): VN CN (suppress this line with option '-q')
1.0.1.0/24
1.0.2.0/23 
...
# 'External' database dump finished displaying 4631 entries with filter IPv4 && CountryCode(s): VN CN (suppress this line with option '-q') 

Usage Example: dump all IPv4 networks of a given CountryCode incl. automatic conversion into 6to4 addresses

$ ipv6calc -A dbdump -E ipv4.db.cc=VN -I ipv4 -O ipv6to4
# 'External' database dump (with 121894 entries) start with filter IPv4 && CountryCode(s): VN (output format: 6to4) (suppress this line with option '-q')
2002:134::/30
2002:e00:1000::/36 
...
# 'External' database dump finished displaying 569 entries with filter IPv4 && CountryCode(s): VN (output format: 6to4) (suppress this line with option '-q') 

Usage Example: dump all IPv6to4 networks of a given CountryCode in “ipset restore” compatible format and create/update “ipset” (related “sudo” command whitelist have to be created in advance)

$ ipv6calc -A dbdump -E ipv4.db.cc=VN -I ipv4 -O ipv6to4 -q ---print-ipset Net_VN_IPv6to4 >/path/to/ipset-Net_VN_IPv6to4.txt

$ sudo ipset restore -f /path/to/ipset-Net_VN_IPv6to4.txt

$ sudo ipset list Net_VN_IPv6to4 -t
Name: Net_VN_IPv6to4
Type: hash:net
Revision: 7
Header: family inet6 hashsize 1024 maxelem 65536 bucketsize 12 initval 0x30b0bdaf
Size in memory: 41344
References: 0
Number of entries: 723 

Hint: try also helper script for 'ipset' management

$ tools/ipv6calc-create-update-ipset.sh

10. Webserver log conversion helper program "ipv6logconv"

This program parses address tokens of a given webserver logfile and converts them to special strings, useful for statistics (e.g. created by using "analog").


10.1. Supported options

$ ipv6logconv -h
ipv6logconv: version 2.1.1 CONV_REG CONV_IEEE
(P) & (C) 2002-2019 by Peter Bieringer <pb (at) bieringer.de>
This program converts IPv4/IPv6 addresses in HTTP server log files
  [-d|--debug <debug value>] : debug value (bitwise like)
                                can also be set by IPV6CALC_DEBUG environment value
  [-v|--version [-v [-v]]]   : version information (2 optional detail levels)
  [-v|--version -h]          : explanation of feature tokens
  [-V|--verbose]             : be more verbose
  [-h|--help|-?]             : this online help
 Performance options:
  [-n|--nocache]            : disable caching
  [-c|--cachelimit <value>] : set cache limit
                               default: 20
                               maximum: 200
 Output options:
  [--out <output type>] : specify output type
   addrtype       : Address type
   ouitype        : OUI (IEEE) type
   ipv6addrtype   : IPv6 address type
   any            : any type
 Takes data from stdin, proceed it to stdout

10.2. Examples

A demonstration about which kind of statistics are possible to produce is shown at http://www.ipv6.bieringer.de/ (IPv6 only).


10.3. Usage

Example:

$ echo "2002:50b5:7940:0000:0000:0000:50b5:7940 - -" | ipv6logconv -q --out any
RIPENCC.6to4.global-unicast.ipv6-addr.addrtype.ipv6calc

See more examples inside the package.


11. Webserver log anonymization helper program "ipv6loganon"

On autoconfiguration, the interface part of an IPv6 address is based on the MAC address of the network interface card (NIC). This address is used for outgoing requests, if privacy option (RFC3041 / RFC4941) is not enabled. This results in many privacy related information on web- or mail-server log files. Administrators, which won't (be allowed to) store such information over time, but still do not want to loose information about address type distribution should use 'ipv6loganon' to anonymize their log files.

Since version 0.94.0 internally also IID anonymization is possible without loosing any information for “ipv6logstats”.

Since version 0.95.0 internally also prefix anonymization is possible without loosing any information for “ipv6logstats”.


11.1. Anonymization details

11.1.1. Method “zeroize”

The anonymizer would keep as much information as possible for IPv6 address types.

Client-side IID would be anonymized by

  • EUI-48 based: serial number would be zero'ed, keeping OID

  • EUI-64 based: serial number would be zero'ed, keeping OID

  • ISATAP: client IPv4 address would be anonymized by given IPv4 mask

  • TEREDO: client IPv4 address would be anonymized by given IPv4 mask, client port would be zero'ed

  • 6to4(Microsoft): client IPv4 address would be anonymized by given IPv4 mask

  • local: whole IID would be zero'ed

Client-side SLA would be anonymized by

  • SLA would be zero'ed

Prefix would be anonymized by

  • 6to4: client IPv4 address would be anonymized by given IPv4 mask

Compat/Mapped IPv4 addresses would be anonymized by

  • IPv4 address would be anonymized by given IPv4 mask


11.1.2. Method “anonmize”

The anonymizer would keep as much information as possible for the IID of an IPv6 address.

Description from libipv6addr.h:

 * IID anonymization is done by replacing with related information (64-bit)
 * xxxx:xxxx:xxxx:xxxC  (C = 4-bit checksum)
 *
 * a9p9 4941 0000 000C  -> RFC 4941 anonymized privacy extension Interface ID
 *
 * a9p9 4291 4xxx xxxC  -> RFC 4291 anonymized EUI-48 Interface ID, xxx xxx = converted OUI
 * a9p9 4291 5xxx xxxC  -> RFC 4291 anonymized EUI-48 Interface ID, xxx xxx = converted mapped IAB/OUI-36
 * a9p9 4291 6xxx xxxC  -> RFC 4291 anonymized EUI-64 Interface ID, xxx xxx = converted OUI
 * a9p9 4291 7xxx xxxC  -> RFC 4291 anonymized EUI-64 Interface ID, xxx xxx = converted mapped IAB/OUI-36
 * a9p9 4291 8xxx xxxC  -> RFC 4291 embedded anonymized IPv4 address, xxx xxx = first 24 bit of included (anonymized) IPv4 address
 * a9p9 4291 c02d 5d1C  -> RFC 4291 Chapter 2.5.1 anonymized static Interface ID
 *
 * a9p9 5214 4xxx xxxC  -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included (anonymized) IPv4 address (local scope)
 * a9p9 5214 5xxx xxxC  -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included (anonymized) IPv4 address (global scope)
 * a9p9 5214 cxx0 000C  -> RFC 5214 anonymized ISATAP Interface ID, xx      = first  8 bit of included vendor ID (local scope)
 * a9p9 5214 dxx0 000C  -> RFC 5214 anonymized ISATAP Interface ID, xx      = first  8 bit of included vendor ID (global scope)
 * a9p9 5214 exxx xxxC  -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included extension ID (local scope)
 * a9p9 5214 fxxx xxxC  -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included extension ID (global scope)
 *
 * a9p9 4843 0000 000C  -> RFC 4843 anonymized ORCHID hash

Depending on given mask, the part of the prefix will be replaced:

 * SLA/NLA prefix part anonymization is done by replacing with pattern a909a909
 *   p = number of nibbles anonymized

11.1.3. Method “keep-type-asn-cc”

In addition to “anonymize” (of IID) this method anonymizes also the prefix of an IPv6 address or a whole IPv4 address by keeping ASN (Autonomous System Number, Country Code and Type).

Description from libipv6addr.h:

 * Prefix anonymization in case of method=kp: p=0x0f
 * a909:ccca:aaaa:aaaC  (C = 4-bit checksum)
 *                      ccc      -> 10-bit Country Code mapping [A-Z]*[A-Z0-9] (936)
 *                                   0x3FD = LISP
 *                                   0x3FE = unknown country
 *                                   0x3FF - 16 + REGISTRY_6BONE && ASN=0 = 6bone 
 *                                   0x000-0x3A7: c1= c / 36, c2 = c % 36
 *                      aaaaaaaa -> 32-bit ASN

Description from libipv4addr.h:

 *  Global IPv4 addresses are anoymized by storing country code and AS number
 *   and using prefix of experimental range (240-255.x.y.z)
 *
 *  3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 
 *  1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
 *  1 1 1 1
 * |p p p p|
 *  Prefix                
 *    0xF
 *
 * Pariy Bit (odd parity)
 *         |P|
 *
 * Mapping of Country Code
 *           |c c c c c c c c c c|
 *            10-bit Country Code mapping [A-Z]*[A-Z0-9] (936)
 *            0x3FF = unknown country
 *            0x000-0x3A7: c1= c / 36, c2 = c % 36
 *
 * Mapping of ASN <= 65535
 *                                0|a a a a a a a a a a a a a a a a|
 *                                    16-bit ASN
 *
 * Mapping of ASN >= 65536, ASN & 0xE000 == 0 (12-bit LSB is ok) 
 *                                1|r r r|0|l l l l l l l l l l l l|
 *                                           13-bit LSB of ASN
 *
 * Mapping of ASN >= 65536, ASN & 0xE000 != 0 (12-bit LSB overflow) => unspecified
 *                                1|r r r|1|0 0 0 0 0 0 0 0 0 0 0 0|
 *
 * Mapping of ASN registry for ASN >= 65536
 *                                  0 0 0 = "unknown ASN registry"
 *                                  0 1 0 = APNIC
 *                                  0 1 1 = RIPE
 *                                  1 0 0 = LACNIC
 *                                  1 0 1 = AFRINIC
 *                                  1 1 0 = ARIN
 * Mapping of LISP
 *                                1|r r r|1|1|0 0 0 0 0 0 0 0 0 0 0| 

11.1.4. Method “keep-type-geonameid”

In difference to keep-type-asn-cc this method anonymizes the prefix of an IPv6 address or a whole IPv4 address by keeping the GeonameID and Type.

Description from libipv6addr.h:

 * a909:sssg:gggg:gggC  (C = 4-bit checksum)
 *                      sss      -> 10-bit source mapping
 *                                   GeonameID source information
 *                                   0x000 = unknown
 *                                   0x001 = continent  (prio: lowest)
 *                                   0x002 = country
 *                                   0x003 = state/prov
 *                                   0x004 = district
 *                                   0x005 = city       (prio: highest)
 *                                   0x006 = (reserved)
 *                                   0x007 = LISP
 *                                   0x0r. = registry
 *                               -> 2 leftmost bit are |0 1|
 *                      gggggggg -> 32-bit GeonameID
 *                                   0x11800 = LISP

Description from libipv4addr.h:

 * IPv4 address anonymization type "keep-type-geonameid"
 *  Global IPv4 addresses are anonymized by storing GeonameID
 *   and using prefix of experimental range (240-255.x.y.z)
 *
 *  3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
 *  1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
 *  1 1 1 1
 * |p p p p|
 *  Prefix
 *    0xF
 *
 * Parity Bit (even parity)
 *         |P|
 *
 * Mapping of GeonameID source
 *           |s s s|
 *            3-bit GeonameID source information
 *            0 0 0 (0x0) = unknown
 *            0 0 1 (0x1) = continent  (prio: lowest)
 *            0 1 0 (0x2) = country
 *            0 1 1 (0x3) = state/prov
 *            1 0 0 (0x4) = district
 *            1 0 1 (0x5) = city       (prio: highest)
 *            1 1 0 (0x6) = (reserved)
 *            1 1 1 (0x7) = LISP
 *
 * Mapping of GeonameID (limited to IDs < 2^24, in worst case ID from source with lower prio is used)
 *                 |g g g g g g g g g g g g g g g g g g g g g g g g|
 *
 * Mapping of LISP registry
 *                                  0 0 0 = "unknown ASN registry"
 *                                  0 1 0 = APNIC
 *                                  0 1 1 = RIPE
 *                                  1 0 0 = LACNIC
 *                                  1 0 1 = AFRINIC
 *                                  1 1 0 = ARIN
 *                 |0 0 0 0 0 0 0 1 r r r 1 1 0 0 0 0 0 0 0 0 0 0 0|

11.2. Supported log file formats

Currently native supported log files:

  • Apache log file format, 1st token is IPv4 or IPv6 address

There are plans to support also mail server log files sometimes in the future, but because of different formats, this would be probably done by a Perl program which parses the log file and a (cached) 'ip6calc' call with action 'anonymize'.


11.3. Supported options

$ ipv6loganon -h
ipv6loganon: version 2.1.1 ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID
(P) & (C) 2007-2019 by Peter Bieringer <pb (at) bieringer.de>
This program anonymizes IPv4/IPv6 addresses in e.g. HTTP server log files
  [-d|--debug <debug value>] : debug value (bitwise like)
                                can also be set by IPV6CALC_DEBUG environment value
  [-v|--version [-v [-v]]]   : version information (2 optional detail levels)
  [-v|--version -h]          : explanation of feature tokens
  [-V|--verbose]             : be more verbose
  [-h|--help|-?]             : this online help
  [-q|--quiet]               : be more quiet
  [--disable-ip2location           ] : IP2Location support disabled
  [--db-ip2location-disable        ] : IP2Location support disabled
  [--db-ip2location-dir <directory>] : IP2Location database directory (default: /usr/share/IP2Location)
  [--db-ip2location-lib <file>     ] : IP2Location library file (default: libIP2Location.so)
  [--db-ip2location-only-type <TYPE>]: IP2Location database only selected type (1-120)
  [--db-ip2location-allow-softlinks] : IP2Location database softlinks allowed
     by default they are ignored because it is hard to autodetect COMM/LITE/SAMPLE
  [--db-ip2location-lite-to-sample-autoswitch-max-delta-months <MONTHS>]:
     autoswitch from LITE to SAMPLE databases if possible and delta is not more than 12 months (0=disabled)
  [--db-ip2location-comm-to-lite-switch-min-delta-months <MONTHS>]:
     switch from COMM to LITE databases if possible and delta more than 12 months (0=disabled)
  [--disable-geoip                 ] : GeoIP support disabled
  [--db-geoip-disable              ] : GeoIP support disabled
  [--db-geoip-dir       <directory>] : GeoIP database directory (default: /usr/share/GeoIP)
  [--db-geoip-lib       <file>     ] : GeoIP library file (default: libGeoIP.so.1)
  [--db-mmdb-lib       <file>      ] : MaxMindDB library file (default: libmaxminddb.so.0)
  [--disable-geoip2                ] : GeoIP (MaxMindDB) support disabled
  [--db-geoip2-disable             ] : GeoIP (MaxMindDB) support disabled
  [--db-geoip2-dir      <directory>] : GeoIP (MaxMindDB) database directory (default: /usr/share/GeoIP)
  [--disable-dbip2                 ] : db-ip.com (MaxMindDB) support disabled
  [--db-dbip2-disable              ] : db-ip.com (MaxMindDB) support disabled
  [--db-dbip2-dir       <directory>] : db-ip.com (MaxMindDB) database directory (default: /usr/share/DBIP)
  [--db-dbip2-only-type <TYPE>]      : db-ip.com (MaxMindDB) database only selected type (1-10)
  [--db-dbip2-comm-to-free-switch-min-delta-months <MONTHS>]:
     switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled)
  [--disable-dbip                  ] : db-ip.com support disabled
  [--db-dbip-disable               ] : db-ip.com support disabled
  [--db-dbip-dir        <directory>] : db-ip.com database directory (default: /usr/share/DBIP)
  [--db-dbip-only-type <TYPE>]       : db-ip.com database only selected type (1-10)
  [--db-dbip-comm-to-free-switch-min-delta-months <MONTHS>]:
     switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled)
  [--disable-external              ] : External support disabled
  [--db-external-disable           ] : External support disabled
  [--db-external-dir    <directory>] : External database directory (default: /usr/share/ipv6calc/db)
  [--disable-builtin               ] : BuiltIn support disabled
  [--db-builtin-disable            ] : BuiltIn support disabled
  [--db-priorization <entry1>[:...]] : Database priorization order list (overwrites default)
                                         colon separated: GeoIP GeoIP2 IP2Location DBIP DBIP2 External BuiltIn
  [-w|--write]               : write output to file instead of stdout
  [-a|--append]              : append output to file instead of stdout
  [-f|--flush]               : flush output after each line
  [-V|--verbose]             : be verbose
  [-n|--nocache]             : disable caching
  [-c|--cachelimit <value>]  : set cache limit
                               default: 20
                               maximum: 200
  Shortcut for anonymization presets:
   --anonymize-standard (default)
   --anonymize-careful
   --anonymize-paranoid
  Supported methods [--anonymize-method METHOD]:
   anonymize : reliable anonymization, keep as much type information as possible
   zeroize   : simple zeroizing according to given masks, probably loose type information
   keep-type-asn-cc: special reliable anonymization, keep type & Autonomous System Number and CountryCode
   keep-type-geonameid: special reliable anonymization, keep type & GeonameID
  Available presets (shortcut names) [--anonymize-preset|ap PRESET-NAME]:
   anonymize-standard   (as): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac=24 mask-autoadjust=yes method=anonymize
   anonymize-careful    (ac): mask-ipv6= 48 mask-ipv4=20 mask-eui64=24 mask-mac=24 mask-autoadjust=yes method=anonymize
   anonymize-paranoid   (ap): mask-ipv6= 40 mask-ipv4=16 mask-eui64= 0 mask-mac=24 mask-autoadjust=no  method=anonymize
   zeroize-standard     (zs): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac=24 mask-autoadjust=yes method=zeroize
   zeroize-careful      (zc): mask-ipv6= 48 mask-ipv4=20 mask-eui64=24 mask-mac=24 mask-autoadjust=yes method=zeroize
   zeroize-paranoid     (zp): mask-ipv6= 40 mask-ipv4=16 mask-eui64= 0 mask-mac=24 mask-autoadjust=no  method=zeroize
   keep-type-asn-cc     (kp): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac=24 mask-autoadjust=yes method=keep-type-asn-cc
   keep-type-geonameid  (kg): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac=24 mask-autoadjust=yes method=keep-type-geonameid
  Custom control:
  --mask-ipv4  <bits>     : mask IPv4 address [0-32] (even if occurs in IPv6 address)
  --mask-ipv6  <bits>     : mask IPv6 prefix [0-64] (only applied to related address types)
  --mask-eui64 <bits>     : mask EUI-64 address or IPv6 interface identifier [0-64]
  --mask-mac   <bits>     : mask MAC address [0-48]
  --mask-autoadjust yes|no: autoadjust mask to keep type/vendor information regardless of less given mask
 Takes data from stdin, outputs the processed data to stdout (default)

11.4. Usage

11.4.1. Offline anonymization

$ cat /path/to/http_log | ./ipv6loganon >/path/to/http_log_anonymized

11.4.2. On-the-fly online anonymization for Apache Webserver

Note: since 0.91.1 also a module for Apache Webserver is available (see below) supporting anonymized logging

(Supported since 0.90.0)

Adjust or add (note: more than one CustomLog directive is supported by Apache) httpd.conf like following:

CustomLog "|/usr/local/bin/ipv6loganon -a -f /var/log/httpd/access_log" combined

In case of “cronolog” is used on the system, configure like this:

  • Apache version < 2.4:

CustomLog "|/usr/bin/ipv6loganon -f |/usr/sbin/cronolog /var/log/httpd/access.log-%Y%m%d" combined 

  • Apache version >= 2.4:

CustomLog "|$/usr/bin/ipv6loganon -f |/usr/sbin/cronolog /var/log/httpd/access.log-%Y%m%d" combined 

12. External database update helper scripts

The “tools” subdirectory contains helper scripts for updating external databases.


12.1. IP2Location

$ /usr/share/ipv6calc/tools/IP2Location-update.sh -h
Usage: IP2Location-update.sh [-D <dir>] [-n] [-s]
	-D <dir>	database destination directory (optional)
	-n		no action (dry-run)
	-s		skip already successfully downloaded files

	database directory: /usr/share/IP2Location (default: /usr/share/IP2Location)

	it honors externally defined environment value: IP2LOCATION_DAT_DIR

 this script will download data from ip2location.com
  into given/set database directory

 Sample databases:
  IP2LOCATION_DAT_FILES_SAMPLE=IPv4:20 IPv6:20 IPv4:24 IPv6:24

 Lite (free) databases:
  IP2LOCATION_DAT_FILES_LITE_FREE=IPv4:1 IPv6:1
 
 With authentication (requires login/password in /home/compile/.ip2location) and a valid subscription
  IP2LOCATION_DAT_FILES_LITE=
 
 Credentials must be defined in $HOME/.ip2location by
  login=IP2LOCATION-LOGIN
  password=IP2LOCATION-PASSWORD

 In addition settings from above can be overwritten by setting related variables

12.2. GeoIP

Just note that old database format (version 1) is no longer supported for free download, ipv6calc >= 2.0.0 supports also MaxMindDB format, ipv6calc >= 3.0.0 drops legacy download capability

$ /usr/share/ipv6calc/tools/GeoIP-update.sh -h
Usage: GeoIP-update.sh [-D <dir>] [-v] [-s] [-L] [-G]
	-s		skip download
	-D <dir>	database directory (optional)
	-v		verbose
	database directory: @GEOIP2_DB@ (default: @GEOIP2_DB@)
	it honors externally defined environment value:
		prio 1: GEOIP_DAT_DIR
		prio 2: IPV6CALC_DB_GEOIP2_DIR
 adjust /etc/GeoIP.conf in advance:
   EditionIDs GeoLite2-Country GeoLite2-City GeoLite2-ASN
   (in case a valid license key exists, add key and extend EditionIDs related)
   see also https://dev.maxmind.com/geoip/geoipupdate/

12.3. DB-IP.com

Since ipv6calc >= 2.0.0 supports also MaxMindDB format, so download of CSV files and converting them into BerkeleyDB format is no longer required.

$ /usr/share/ipv6calc/tools/DBIP-update.sh -h
Usage: DBIP-update.sh [-v] [-s] [-D <dir>] [-U <url>] [-T <type>]
	-s		skip download
	-v		verbose
	-D <dir>	database directory (optional)
	-U <url>	use URL to download full database
	-T <type>	set type of via URL downloaded file
                          MMDB: country|isp|location|*location-isp*
			  CSV : isp|location|*full*
	database directory: /usr/share/DBIP (default: /usr/share/DBIP)
 it honors externally defined environment value:
	prio 1: DBIP_DAT_DIR
	prio 2: IPV6CALC_DB_DBIP2_DIR
 this script will download data from
 DB-IP.com (default: free versions) the MaxMindDB (mmdb) files DB files for ipv6calc
 "DBIP" database support
 DBIP_DAT_URL_BASE=http://download.db-ip.com/free/
 DBIP_DAT_FILES=dbip-country-lite-%Y-%m.mmdb.gz dbip-city-lite-%Y-%m.mmdb.gz
 in case -U <url> (take URL from subscription e-mail) is provided, it downloads the database
  use -T <type> in case it's not "location-isp"

12.4. External

$ /usr/share/ipv6calc/tools/ipv6calc-db-update.sh -h
Usage: ipv6calc-db-update.sh [-s] [-u] [-D <dir>]
	-s		skip download
	-u		unconditional update
	-D <dir>        database directory (optional)

	database directory: /usr/share/ipv6calc/db (default: /usr/share/ipv6calc/db)

	it honors externally defined environment value: IPV6CALC_DAT_DIR

	this script (and its helper scripts) will download data from
	registries and generate Berkeley DB files for ipv6calc
	"external" database support

13. Perl CGI wrapper program "ipv6calcweb.cgi"

Because calling C programs directly as CGI isn't really recommended (too much security troubles all the time), I wrote a small wrapper utility which calls "ipv6calc" to get information about client and server address for displaying on a web page.


13.1. Examples

A demonstration about which kind of output is possible to produce is shown at


14. Webserver log statistics helper program "ipv6logstats"

This program parses a given webserver logfile and count addresses, useful for time period statistics.

Since version 0.95.0 it has extended output, adding a date/time line and statistics by Country Code and ASN (if required databases are available).


14.1. Supported options

$ ipv6logstats -h
ipv6logstats: version 2.1.1 STAT_REG STAT_CC STAT_AS
(P) & (C) 2003-2019 by Peter Bieringer <pb (at) bieringer.de>
 Takes web server log data (or any other data which has IPv4/v6 address in first column)
   from stdin and print statistics table/list (depending on option) to stdout
  [-d|--debug <debug value>] : debug value (bitwise like)
                                can also be set by IPV6CALC_DEBUG environment value
  [-v|--version [-v [-v]]]   : version information (2 optional detail levels)
  [-v|--version -h]          : explanation of feature tokens
  [-V|--verbose]             : be more verbose
  [-h|--help|-?]             : this online help
  [-q|--quiet]               : be more quiet
  [--disable-ip2location           ] : IP2Location support disabled
  [--db-ip2location-disable        ] : IP2Location support disabled
  [--db-ip2location-dir <directory>] : IP2Location database directory (default: /usr/share/IP2Location)
  [--db-ip2location-lib <file>     ] : IP2Location library file (default: libIP2Location.so)
  [--db-ip2location-only-type <TYPE>]: IP2Location database only selected type (1-120)
  [--db-ip2location-allow-softlinks] : IP2Location database softlinks allowed
     by default they are ignored because it is hard to autodetect COMM/LITE/SAMPLE
  [--db-ip2location-lite-to-sample-autoswitch-max-delta-months <MONTHS>]:
     autoswitch from LITE to SAMPLE databases if possible and delta is not more than 12 months (0=disabled)
  [--db-ip2location-comm-to-lite-switch-min-delta-months <MONTHS>]:
     switch from COMM to LITE databases if possible and delta more than 12 months (0=disabled)
  [--disable-geoip                 ] : GeoIP support disabled
  [--db-geoip-disable              ] : GeoIP support disabled
  [--db-geoip-dir       <directory>] : GeoIP database directory (default: /usr/share/GeoIP)
  [--db-geoip-lib       <file>     ] : GeoIP library file (default: libGeoIP.so.1)
  [--db-mmdb-lib       <file>      ] : MaxMindDB library file (default: libmaxminddb.so.0)
  [--disable-geoip2                ] : GeoIP (MaxMindDB) support disabled
  [--db-geoip2-disable             ] : GeoIP (MaxMindDB) support disabled
  [--db-geoip2-dir      <directory>] : GeoIP (MaxMindDB) database directory (default: /usr/share/GeoIP)
  [--disable-dbip2                 ] : db-ip.com (MaxMindDB) support disabled
  [--db-dbip2-disable              ] : db-ip.com (MaxMindDB) support disabled
  [--db-dbip2-dir       <directory>] : db-ip.com (MaxMindDB) database directory (default: /usr/share/DBIP)
  [--db-dbip2-only-type <TYPE>]      : db-ip.com (MaxMindDB) database only selected type (1-10)
  [--db-dbip2-comm-to-free-switch-min-delta-months <MONTHS>]:
     switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled)
  [--disable-dbip                  ] : db-ip.com support disabled
  [--db-dbip-disable               ] : db-ip.com support disabled
  [--db-dbip-dir        <directory>] : db-ip.com database directory (default: /usr/share/DBIP)
  [--db-dbip-only-type <TYPE>]       : db-ip.com database only selected type (1-10)
  [--db-dbip-comm-to-free-switch-min-delta-months <MONTHS>]:
     switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled)
  [--disable-external              ] : External support disabled
  [--db-external-disable           ] : External support disabled
  [--db-external-dir    <directory>] : External database directory (default: /usr/share/ipv6calc/db)
  [--disable-builtin               ] : BuiltIn support disabled
  [--db-builtin-disable            ] : BuiltIn support disabled
  [--db-priorization <entry1>[:...]] : Database priorization order list (overwrites default)
                                         colon separated: GeoIP GeoIP2 IP2Location DBIP DBIP2 External BuiltIn
  [-u|--unknown]             : print unknown IP addresses to stderr
  [-c|--columns]             : print statistics in columns (1)
  [-N|--column-numbers]      : print column numbers
  [-n|--noheader]            : don't print header in columns mode (1)
  [-o|--onlyheader]          : print only header in columns mode (1)
  [-p|--prefix <token>]      : print token as prefix (1)
  [-s|--simple]              : disable extended statistic (CountryCode/ASN)
 (1) unsupported for CountryCode & ASN statistics

14.2. Usage

There are a README and some helper scripts available in the package how to use this program and how to generate a graph using Gnuplot.


14.2.1. Line-by-line output

The example shows output version 3.0, which

$ zcat ip.bieringer.de-log.201*.gz | ipv6logstats

Header section, since output version 3.0 (>= 0.95.0) additional lines starting with '*3*' and '*DateTime' and '*UnixTime' included

*Version             3.0
*DateTime: 2013:11:03 08:57:01+0000 GMT
*UnixTime: 1383469021
*3*DB-Info: DB features: 0x0000133f
*3*DB-Info: GeoIP: features: 0x00000330
*3*DB-Info: GeoIP: info of available databases in directory: /usr/share/GeoIP (max: 31)
*3*DB-Info: GeoIP: GeoIP Country Edition            :[ 1] /usr/share/GeoIP/GeoIP.dat               (GEO-106FREE 20130903 Build 1 Copyright (c) 2013 MaxMind Inc All Rights Reserved)
*3*DB-Info: GeoIP: GeoIP ASNum Edition              :[ 9] /usr/share/GeoIP/GeoIPASNum.dat          (GEO-117 20130902 Build 1 Copyright (c) 2013 MaxMind Inc All Rights Reserved)
*3*DB-Info: GeoIP: GeoIP Country V6 Edition         :[12] /usr/share/GeoIP/GeoIPv6.dat             (GEO-106FREE 20131001 Build 1 Copyright (c) 2013 MaxMind Inc All Rights Reserved)
*3*DB-Info: GeoIP: GeoIP Large Country Edition      :[17] /usr/share/GeoIP/GeoIP.dat               (GEO-106FREE 20130903 Build 1 Copyright (c) 2013 MaxMind Inc All Rights Reserved)
*3*DB-Info: GeoIP: GeoIP Large Country V6 Edition   :[18] /usr/share/GeoIP/GeoIPv6.dat             (GEO-106FREE 20131001 Build 1 Copyright (c) 2013 MaxMind Inc All Rights Reserved)
*3*DB-Info: GeoIP: GeoIP ASNum V6 Edition           :[21] /usr/share/GeoIP/GeoIPASNumv6.dat        (GEO-117 20130306 Build 1 Copyright (c) 2013 MaxMind Inc All Rights Reserved)
*3*DB-Info: IP2Location: features: 0x00000300
*3*DB-Info: IP2Location: info of available databases in directory: /usr/share/IP2Location
*3*DB-Info: IP2Location: IPv4 Country               : /usr/share/IP2Location/IP-COUNTRY.BIN    (IP2L-DB20 20130411 Copyright (c) 2013 IP2Location All Rights Reserved)
*3*DB-Info: IP2Location: IPv6 Country               : /usr/share/IP2Location/IPV6-COUNTRY.BIN  (IP2L-DB1 20131025 Copyright (c) 2013 IP2Location All Rights Reserved)
*3*DB-Info: BuiltIn: features: 0x0000100f
*3*DB-Info: BuiltIn: info of available databases
*3*DB-Info: BuiltIn: ASN  : IANA/20130730
*3*DB-Info: BuiltIn: CC   : AFRINIC/20130806 APNIC/20130805 ARIN/20130805 LACNIC/20130805 RIPENCC/20130805
*3*DB-Info: BuiltIn: IPv4 : AFRINIC/20131014 APNIC/20131014 ARIN/20131014 IANA/20130520 LACNIC/20131014 RIPENCC/20131014
*3*DB-Info: BuiltIn: IPv6 : AFRINIC/20131015 APNIC/20131014 ARIN/20131014 IANA/20130215 LACNIC/20131014 RIPENCC/20131014
*3*DB-Info: BuiltIn: IEEE : IAB/20131015 OUI/20131015 OUI36/20131015

Simple statistics section

ALL                  108525
IPv4                 46233
IPv6                 62292
UNKNOWN              0
IPv4/APNIC           2397
IPv4/ARIN            3525
IPv4/RIPE            40198
IPv4/LACNIC          97
IPv4/UNKNOWN         16
IPv6/6bone           0
IPv6/IANA            0
IPv6/APNIC           129
IPv6/ARIN            839
IPv6/RIPE            61074
IPv6/LACNIC          0
IPv6/RESERVED        0
IPv6/UNKNOWN         0
IPv6/6to4/IANA       0
IPv6/6to4/APNIC      0
IPv6/6to4/ARIN       16
IPv6/6to4/RIPE       51
IPv6/6to4/LACNIC     0
IPv6/6to4/RESERVED   0
IPv6/6to4/UNKNOWN    0
IPv6/Teredo/IANA     0
IPv6/Teredo/APNIC    63
IPv6/Teredo/ARIN     0
IPv6/Teredo/RIPE     90
IPv6/Teredo/LACNIC   30
IPv6/Teredo/RESERVED 0
IPv6/Teredo/UNKNOWN  0
IPv6/NAT64/IANA      0
IPv6/NAT64/APNIC     0
IPv6/NAT64/ARIN      0
IPv6/NAT64/RIPE      0
IPv6/NAT64/LACNIC    0
IPv6/NAT64/RESERVED  0
IPv6/NAT64/UNKNOWN   0
IPv6/IID/Global      1436
IPv6/IID/Random      58198
IPv6/IID/Manual      2055
IPv6/IID/ISATAP      353
IPv6/IID/Unknown     0

External database supported output since output version 3.0 (>= 0.95.0)

  • Country Code / Proto

...
*3*CC-code-proto/DE/ALL   96450
*3*CC-code-proto/DE/IPv4  36486
*3*CC-code-proto/DE/IPv6  59964 
*3*CC-code-proto-list/DE  96450 36486 59964
...

  • Proto / Country Code (“ALL” line contains: ALL IPv4 IPv6)

...
*3*CC-proto-code/ALL/DE   96450
*3*CC-proto-code/IPv4/DE  36486
*3*CC-proto-code/IPv6/DE  59964
...
*3*CC-proto-code-list/ALL  108525 46483 62042

  • Autonomous System number / Proto

...
*3*AS-num-proto/8767/ALL   6054
*3*AS-num-proto/8767/IPv4  2705
*3*AS-num-proto/8767/IPv6  3349
*3*AS-num-proto-list/8767  6054 2705 3349
...

  • Proto / Autonomous System number (“ALL” line contains: ALL IPv4 IPv6)

...
*3*AS-proto-num/ALL/8767   6054
*3*AS-proto-num/IPv4/8767  2705
*3*AS-proto-num/IPv6/8767  3349
...
*3*AS-proto-num-list/ALL  108525 46483 62042

14.2.2. Column output

Column output does not support version 3 extension, only simple statistics with a header line:

$ zcat ip.bieringer.de-log.201*.gz | ipv6logstats -q -c 
 IPv4 IPv6 UNKNOWN IPv4/APNIC IPv4/ARIN IPv4/RIPE IPv4/LACNIC IPv4/UNKNOWN IPv6/6bone IPv6/IANA IPv6/APNIC IPv6/ARIN IPv6/RIPE IPv6/LACNIC IPv6/RESERVED IPv6/UNKNOWN IPv6/6to4/IANA IPv6/6to4/APNIC IPv6/6to4/ARIN IPv6/6to4/RIPE IPv6/6to4/LACNIC IPv6/6to4/RESERVED IPv6/6to4/UNKNOWN IPv6/Teredo/IANA IPv6/Teredo/APNIC IPv6/Teredo/ARIN IPv6/Teredo/RIPE IPv6/Teredo/LACNIC IPv6/Teredo/RESERVED IPv6/Teredo/UNKNOWN IPv6/NAT64/IANA IPv6/NAT64/APNIC IPv6/NAT64/ARIN IPv6/NAT64/RIPE IPv6/NAT64/LACNIC IPv6/NAT64/RESERVED IPv6/NAT64/UNKNOWN IPv6/IID/Global IPv6/IID/Random IPv6/IID/Manual IPv6/IID/ISATAP IPv6/IID/Unknown
 46233 62292 0 2397 3525 40198 97 16 0 0 129 839 61074 0 0 0 0 0 16 51 0 0 0 0 63 0 90 30 0 0 0 0 0 0 0 0 0 1436 58198 2055 353 0

An optional prefix token can be given (“-p <prefix>”) to create e.g. in a for-loop one line per month and put month in front of statistics, also the header line can be suppressed (“-n”).

$ zcat ip.bieringer.de-log.201*.gz | ipv6logstats -q -c -n -p ALL
ALL  46233 62292 0 2397 3525 40198 97 16 0 0 129 839 61074 0 0 0 0 0 16 51 0 0 0 0 63 0 90 30 0 0 0 0 0 0 0 0 0 1436 58198 2055 353 0 

14.3. Examples

A demonstration with real data is available at http://mirrors.bieringer.de/stats/timeline.html.


15. Apache web server module “mod_ipv6calc”

This Apache web server module (since version 0.99.1, released 2015) interfaces with internal ipv6calc library to support

  • Client IP address anonymization “on-the-fly”, exported to IPV6CALC_CLIENT_IP_ANON

    • depending on the configured anonymization method 3rd party database is required

  • Country code of client IP address, exported to IPV6CALC_CLIENT_COUNTRYCODE

    • requires 3rd party database: GeoIP or IP2Location or DB-IP.com

  • Autonomous System Number (ASN) of client IP address, exported to IPV6CALC_CLIENT_ASN

    • requires 3rd party database: GeoIP

  • Registry of client IP address, exported to IPV6CALC_CLIENT_REGISTRY

    • requires internal or “external” database

  • Configured IP address anonymization method, exported to IPV6CALC_ANON_METHOD


15.1. Installation

Install compiled Apache module “mod_ipv6calc” to Apache's module directory

Install included default configuration file “ipv6calc.conf” to Apache's config directory (usually conf.d)


15.2. Configuration

Enable in “ipv6calc.conf” loading of module

LoadModule ipv6calc_module modules/mod_ipv6calc.so

Enable module itself

ipv6calcEnable                         on

Adjust configuration settings, if needed (see examples in “ipv6calc.conf”)

Review predefined log format

LogFormat "%{IPV6CALC_CLIENT_IP_ANON}e \"%{IPV6CALC_CLIENT_COUNTRYCODE}e/%{IPV6CALC_CLIENT_ASN}e/%{IPV6CALC_CLIENT_REGISTRY}e/%{IPV6CALC_ANON_METHOD}e\" %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined_anon

Enable custom log with anonymized information, using the predefined LogFormat

CustomLog logs/access_anon_log combined_anon

Restart Apache web server, check error_log for any issues


15.3. Result

The new log file contains anonymized requests like

252.176.92.172 "CN/23724/APNIC/keep-type-asn-cc" - [25/Jul/2015:13:20:25 +0200] "GET / HTTP/1.1" 200 3569 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"

a909:390a:909a:81d9:a909:4291:c02d:5d1d "CZ/43037/RIPENCC/keep-type-asn-cc" - [25/Jul/2015:12:59:00 +0200] "GET /robots.txt HTTP/1.1" 200 33 "-" "Mozilla/5.0 (compatible; SeznamBot/3.2; +http://fulltext.sblog.cz/)" 

15.4. Post-analysis in case of anonymization method “keep-type-asn-cc”

In case “keep-type-asn-cc” is configured and also working (required databases are available), related information of anonymized IP addresses can be retrieved using “ipv6calc” or “ipv6logstats”.

$ ipv6calc -q -m -i 252.176.92.172
IPV4=252.176.92.172
IPV4_TYPE=unicast,anonymized,global
IPV4_AS_NUM=23724
IPV4_COUNTRYCODE=CN
IPV4_REGISTRY=APNIC 
...

$ ipv6calc -q -m -i a909:390a:909a:81d9:a909:4291:c02d:5d1d
IPV6=a909:390a:909a:81d9:a909:4291:c02d:5d1d
IPV6_TYPE=unicast,anonymized-iid,anonymized-prefix,global-unicast,productive,iid,iid-local
IPV6_COUNTRYCODE=CZ
IPV6_AS_NUM=43037
IPV6_REGISTRY=RIPENCC
...

16. History

Major extensions/changes are listed here


16.1. 2021

  • add support for compressed IPv4 addresses like 10/8 (>= 3.1.0)

  • add support for octal representation of IPv4 addresses (>= 3.3.0)

  • add Database Dump action (>= 3.3.0)


16.2. 2020

  • drop GeoIP(legacy) support (>= 3.0.0)

  • drop db-ip.com(BerkeleyDB) support (>= 3.0.0)


16.3. 2019

  • add OUI-28 support (>= 2.2.0)

  • add action “addr2cc” (can be used as replacement for geoiplookup) (>= 2.1.0)

  • enable “geonameid” also in mod_ipv6calc (>= 2.1.0)

  • add anonymization method “keep-type-geonameid” (>= 2.1.0)

  • add support for MaxMindDB (GeoIP, db-ip.com) (>= 2.0.0)

  • drop support of IP2Location libraries < 7.0.1 (>= 2.0.0)


16.4. 2017

  • add support for LISP detection

  • add support for non-free versions DB-IP.com databases

  • finally release 1.0.0 after 16 year of development


16.5. 2016

  • implement action 'test' and extend action 'filter' with support of address ranges (>= 0.99.2)


16.6. 2015

  • Introduce mod_ipv6calc for Apache web server (>= 0.99.1)

  • Add support for DB-IP.com databases (by generated Berkeley DB files) (>= 0.98.0)

  • Add support for “External” database files (generated Berkeley DB files), superseeding (if newer) built-in IPv4/IPv6->Registry and adding IPv4/IPv6->CountryCode support (>= 0.98.0)

  • Extend filter options with support of CountryCode, ASN or Registry (>= 0.99.0)

  • Add support for IP2Location LITE databases (>= 0.99.0), add configurable IP2Location database autoselection support


16.7. 2014

  • Shared library mode supported (reduces size of binaries)


16.8. 2013

  • Prefix and IID anonymization methods

  • Support of dynamic load of GeoIP and IP2Location libraries

  • Specifying dedicated GeoIP and IP2Location database files is now replaced by specifying dedicated database directories to make especially for GeoIP use of more database files.


16.9. 2011

  • ipv6calc/ipv6calcweb.cgi: enable included GeoIP support with IPv6 (usable with GeoIP >= 1.4.5)

  • ipv6calc: extend for 6rd support (--action 6rd_local_prefix --6rd_prefix <PREFIX> --6rd_relay_prefix <RELAY_PREFIX>)

  • ipv6calc: enable stdin support for bulk transformation

  • ipv6calc: add support for NAT64 address type

  • ipv6calc: add option “forceprefix <LENGTH>” to print prefix of an address without a given prefix length

  • ipv6loganon: extend for pipe usage (e.g. in Apache log file directive) and write/append to specified file

  • General: add configure options to disable built-in databases (reduce binary size a lot, e.g. for embedded devices)


16.11. 2001

  • Start of development

ipv6calc-4.1.0/doc/ipv6calc.lyx000066400000000000000000004727071444154247200162650ustar00rootroot00000000000000#LyX 2.3 created this file. For more info see http://www.lyx.org/ \lyxformat 544 \begin_document \begin_header \save_transient_properties true \origin unavailable \textclass docbook \use_default_options false \maintain_unincluded_children false \language english \language_package default \inputencoding auto \fontencoding global \font_roman "default" "default" \font_sans "default" "default" \font_typewriter "default" "default" \font_math "auto" "auto" \font_default_family default \use_non_tex_fonts false \font_sc false \font_osf false \font_sf_scale 100 100 \font_tt_scale 100 100 \use_microtype false \use_dash_ligatures true \graphics default \default_output_format default \output_sync 0 \bibtex_command default \index_command default \paperfontsize default \spacing single \use_hyperref false \papersize default \use_geometry false \use_package amsmath 1 \use_package amssymb 1 \use_package cancel 1 \use_package esint 0 \use_package mathdots 1 \use_package mathtools 1 \use_package mhchem 1 \use_package stackrel 1 \use_package stmaryrd 1 \use_package undertilde 1 \cite_engine basic \cite_engine_type default \biblio_style plain \use_bibtopic false \use_indices false \paperorientation portrait \suppress_date false \justification true \use_refstyle 0 \use_minted 0 \index Index \shortcut idx \color #008000 \end_index \secnumdepth 3 \tocdepth 3 \paragraph_separation indent \paragraph_indentation default \is_math_indent 0 \math_numbering_side default \quotes_style english \dynamic_quotes 0 \papercolumns 1 \papersides 1 \paperpagestyle default \tracking_changes false \output_changes false \html_math_output 0 \html_css_as_file 0 \html_be_strict false \end_header \begin_body \begin_layout Title The ipv6calc Homepage \end_layout \begin_layout Standard \begin_inset ERT status collapsed \begin_layout Plain Layout PeterBieringerpb at bieringer dot de \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset ERT status collapsed \begin_layout Plain Layout \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout 11.0.1 2022-12-22 P B \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset ERT status collapsed \begin_layout Plain Layout \end_layout \end_inset \end_layout \begin_layout Section General \end_layout \begin_layout Standard ipv6calc is a small utility written in programming language C to manipulate (not only) IPv6 addresses and is able to do other tricky things. Intentions were convering a given IPv6 address into compressed format, convering a given IPv6 address into the same format like shown in \shape italic /proc/net/if_inet6 \shape default and (because it was not difficulty) migrating the Perl program \shape italic ip6_int \shape default into. Now only one utility is needed to do a lot. \end_layout \begin_layout Standard This utility was also used in the past to extend features on network-functions-i pv6 library, used by initscripts-ipv6. \end_layout \begin_layout Standard Note: this tool got also its \begin_inset CommandInset href LatexCommand href name "freecode.com (former freshmeat, now also EOL) / ipv6calc" target "http://freecode.com/projects/ipv6calc/" literal "false" \end_inset page (but this is not maintained by the author) \end_layout \begin_layout Subsection Latest version \end_layout \begin_layout Standard Latest version since last update of this page is 4.0.0 \end_layout \begin_layout Subsection Included programs \end_layout \begin_layout Itemize \begin_inset Quotes eld \end_inset ipv6calc \begin_inset Quotes erd \end_inset : the main utility \end_layout \begin_layout Itemize \begin_inset Quotes eld \end_inset ipv6calcweb \begin_inset Quotes erd \end_inset : CGI wrapper for ipv6calc's address information output \end_layout \begin_layout Itemize \begin_inset Quotes eld \end_inset ipv6logconv \begin_inset Quotes erd \end_inset : log converter (IPv4/IPv6) \end_layout \begin_layout Itemize \begin_inset Quotes eld \end_inset ipv6loganon \begin_inset Quotes erd \end_inset : log anonymizer (IPv4/IPv6) \end_layout \begin_layout Itemize \begin_inset Quotes eld \end_inset ipv6logstats \begin_inset Quotes erd \end_inset : log statistic generator (IPv4/IPv6) \end_layout \begin_layout Itemize \begin_inset Quotes eld \end_inset mod_ipv6calc \begin_inset Quotes erd \end_inset : Apache module \end_layout \begin_layout Subsection Included databases \end_layout \begin_layout Standard If not disabled during compiling of the tool, following databases are statically included, since version 0.95.0 internally mentioned as \begin_inset Quotes eld \end_inset BuiltIn \begin_inset Quotes erd \end_inset : \end_layout \begin_layout Itemize IEEE IAB, OUI, OUI-28, OUI-36 databases (for decoding vendor part of MAC/EUI-48/ EUI-64) \end_layout \begin_layout Itemize IPv4 assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for selecting proper registry in ipv6calcweb.cgi and IPv4 anonymization) \end_layout \begin_layout Itemize IPv6 assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for selecting proper registry in ipv6calcweb.cgi and IPv6 anonymization) \end_layout \begin_layout Itemize ASN assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for IPv4/IPv6 anonymization) \end_layout \begin_layout Itemize LISP assignment database for supplying extra info \end_layout \begin_layout Subsection Possible external databases \end_layout \begin_layout Standard If enabled during compiling the tool, following external (but local stored) databases can be used \end_layout \begin_layout Itemize \begin_inset CommandInset href LatexCommand href name "GeoIP" target "http://www.maxmind.com/" literal "false" \end_inset \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize IPv4 \begin_inset Quotes eld \end_inset legacy \begin_inset Quotes erd \end_inset (since 0.61.0, released 2006 until 3.0.0 released 2020) \end_layout \begin_layout Itemize IPv6 \begin_inset Quotes eld \end_inset legacy \begin_inset Quotes erd \end_inset (since 0.90.0, released 2011, req. GeoIP >= 1.4.5 until 3.0.0 released 2020) \end_layout \begin_layout Itemize GeoIP2 (native MaxMindDB file support since 2.0.0, release 2019) \end_layout \end_deeper \begin_layout Itemize \begin_inset CommandInset href LatexCommand href name "IP2Location" target "http://www.ip2location.com/" literal "false" \end_inset \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize IPv4 (since 0.60.0, released 2006) \end_layout \begin_layout Itemize IPv6 (since 0.70.0, released 2007, \begin_inset CommandInset href LatexCommand href name "IP2Location LITE IPv6 Databases" target "http://lite.ip2location.com/" literal "false" \end_inset since 0.99.0, released 2015) \end_layout \begin_layout Itemize release 0.99.0 is tested against IP2Location >= 4.0.2 \end_layout \begin_layout Itemize release >= 2.0.0 && < 3.0.0 is only working with IP2Location >= 7.0.1 \end_layout \begin_layout Itemize release >= 3.0.0 is only working with IP2Location >= 8.2.0 \end_layout \end_deeper \begin_layout Itemize \begin_inset CommandInset href LatexCommand href name "DB-IP.com" target "http://www.db-ip.com/" literal "false" \end_inset \end_layout \begin_deeper \begin_layout Itemize (since 0.98.0, released 2015 until 3.0.0 released 2020) based on local Berkeley DB files generated from downloaded CSV files \end_layout \begin_layout Itemize native MaxMindDB files (support since 2.0.0, released 2019) \end_layout \end_deeper \begin_layout Itemize \begin_inset Quotes eld \end_inset External \begin_inset Quotes erd \end_inset (since 0.98.0, released 2015), based on local Berkeley DB files, generated from downloaded TXT/XML files (registries assignment databases). Supporting IPv4/IPv6 to Registries and IPv4/IPv6 to CountryCode. If newer, overruling the related included databases. \end_layout \begin_layout Standard Since version 0.95.0 the tool can be compiled to use dynamically loading of library, means the binaries can be also used on systems where IP2Location or GeoIP libraries are not existing. On such system, the support is simply disabled then and some capabilities/featu res which requires the databases are disabled. \end_layout \begin_layout Standard Since version 0.97.4 also fallback code for GeoIP and IP2Location is included in the source package, means that support of dynamically loading of library can be included during compilation without having related development sources on the system. \end_layout \begin_layout Standard Since version 2.0.0 MaxMindDB is supported (linked or dynamically loaded) \end_layout \begin_layout Standard Since version 3.0.0 GeoIP(legacy) and db-ip.com(BerkeleyDB) is remoed \end_layout \begin_layout Section License \end_layout \begin_layout Standard The program is published under the GNU GPL version 2. \end_layout \begin_layout Section Copyright \end_layout \begin_layout Standard (C) 2001 - 2021 by Dr. Peter Bieringer \end_layout \begin_layout Section Author \end_layout \begin_layout Standard The author of ipv6calc is \end_layout \begin_layout Itemize \begin_inset CommandInset href LatexCommand href name "Dr. Peter Bieringer" target "mailto:pb@bieringer.de" literal "false" \end_inset with some minor contribution by others \end_layout \begin_layout Section Where to get sources or binaries \end_layout \begin_layout Subsection Latest version of sources \end_layout \begin_layout Itemize Via GitHub (since 2016-09-05) at \begin_inset CommandInset href LatexCommand href name "GitHub / ipv6calc" target "https://github.com/pbiering/ipv6calc" literal "false" \end_inset \end_layout \begin_layout Subsection Releases \end_layout \begin_layout Subsubsection as tar.gz or zip \end_layout \begin_layout Itemize via HTTPS at \begin_inset CommandInset href LatexCommand href name "GitHub / ipv6calc / releases" target "https://github.com/pbiering/ipv6calc/releases" literal "false" \end_inset \end_layout \begin_layout Subsubsection as tar.gz (signed) \end_layout \begin_layout Itemize from \begin_inset CommandInset href LatexCommand href name "DeepSpace6" target "http://www.deepspace6.net/" literal "false" \end_inset via FTP \begin_inset CommandInset href LatexCommand href name "DeepSpace6 / anonymous FTP" target "ftp://ftp.deepspace6.net/pub/ds6/sources/ipv6calc/" literal "false" \end_inset or HTTP \begin_inset CommandInset href LatexCommand href name "www.deepspace6.net mapped FTP" target "http://www.deepspace6.net/ftp/pub/ds6/sources/ipv6calc/" literal "false" \end_inset \end_layout \begin_layout Itemize via \begin_inset CommandInset href LatexCommand href name "ftp.bieringer.de / anonymous FTP" target "ftp://ftp.bieringer.de/pub/linux/IPv6/ipv6calc/" literal "false" \end_inset or HTTP at \begin_inset CommandInset href LatexCommand href name "www.bieringer.de mapped FTP" target "http://www.bieringer.de/ftp/pub/linux/IPv6/ipv6calc/" literal "false" \end_inset \end_layout \begin_layout Standard Since version 0.95.0 packages are signed with new GPG key, also available here: \begin_inset CommandInset href LatexCommand href name "CODE-GPG-KEY-bieringer.de-2013 @ftp.bieringer.de" target "ftp://ftp.bieringer.de/pub/linux/IPv6/ipv6calc/CODE-GPG-KEY-bieringer.de-2013" literal "false" \end_inset or \begin_inset CommandInset href LatexCommand href name "CODE-GPG-KEY-bieringer.de-2013 @ftp.deepspace6.net" target "ftp://ftp.deepspace6.net/pub/ds6/sources/ipv6calc/CODE-GPG-KEY-bieringer.de-2013" literal "false" \end_inset \end_layout \begin_layout Code Key fingerprint: AAB3 8CB7 97C7 50C7 78C6 08C6 DDEB 141D F738 0F61 \end_layout \begin_layout Code uid: Peter Bieringer (Code Signing Key 2013) \end_layout \begin_layout Standard A SPEC file is included, so you can build a RPM from tar.gz using \end_layout \begin_layout Code $ rpmbuild -ta path/to/ipv6calc-$version.tar.gz \end_layout \begin_layout Standard In addition, conditional build options are available (see related configure options below): \end_layout \begin_layout Code --without ip2location \end_layout \begin_layout Code --without mmdb (which disables GeoIP v2 and db-ip.com v2) \end_layout \begin_layout Code --without external \end_layout \begin_layout Code --without shared \end_layout \begin_layout Code --without mod_ipv6calc \end_layout \begin_layout Subsubsection as RPM \end_layout \begin_layout Standard Can be searched via \begin_inset CommandInset href LatexCommand href name "rpmfind / ipv6calc" target "http://www.rpmfind.net/linux/rpm2html/search.php?query=ipv6calc" literal "false" \end_inset . \end_layout \begin_layout Subsection Ready to use packages for several operating systems: \end_layout \begin_layout Subsubsection Fedora Linux \end_layout \begin_layout Standard Fedora 29 is the current developing platform, so use given hints above to create a RPM. Since Fedora 7 this package is included by default. \end_layout \begin_layout Standard See also \begin_inset CommandInset href LatexCommand href name "FedoraProject / Packages / ipv6calc" target "https://src.fedoraproject.org/rpms/ipv6calc" literal "false" \end_inset \end_layout \begin_layout Subsubsection Red Hat Enterprise Linux and clones \end_layout \begin_layout Standard It's tested by the developer that creation of the RPM is working fine starting with RHEL 4. \end_layout \begin_layout Itemize Major version 5 has the package included by default (but a rather old version) \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize RPMs of newer releases are available as test builds on koji, see related URL in announcements \begin_inset CommandInset href LatexCommand href name "ipv6calc-announce / list archive" target "https://lists.deepspace6.net/pipermail/ipv6calc-announce/" literal "false" \end_inset \end_layout \begin_layout Itemize *** Untested since version 2.0.0 because OS is out of support *** \end_layout \end_deeper \begin_layout Itemize Major version 6: available since September 2014 on \begin_inset CommandInset href LatexCommand href name "FedoraProject / EPEL" target "https://fedoraproject.org/wiki/EPEL" literal "false" \end_inset , see also \begin_inset CommandInset href LatexCommand href name "FedoraProject / Packages / ipv6calc" target "https://src.fedoraproject.org/rpms/ipv6calc" literal "false" \end_inset \end_layout \begin_deeper \begin_layout Itemize *** Untested since version 3.0.1 because OS is out of support *** \end_layout \end_deeper \begin_layout Itemize Major version 7: available since Decenber 2016 on \begin_inset CommandInset href LatexCommand href name "FedoraProject / EPEL" target "https://fedoraproject.org/wiki/EPEL" literal "false" \end_inset , see also \begin_inset CommandInset href LatexCommand href name "FedoraProject / Packages / ipv6calc" target "https://src.fedoraproject.org/rpms/ipv6calc" literal "false" \end_inset \end_layout \begin_layout Itemize Major version 8: available since September 2019 on \begin_inset CommandInset href LatexCommand href name "FedoraProject / EPEL" target "https://fedoraproject.org/wiki/EPEL" literal "false" \end_inset , see also \begin_inset CommandInset href LatexCommand href name "FedoraProject / Packages / ipv6calc" target "https://src.fedoraproject.org/rpms/ipv6calc" literal "false" \end_inset \end_layout \begin_layout Standard CentOS 7 and Rocky 8 are also platforms for regression tests. \end_layout \begin_layout Subsubsection Gentoo/Funtoo \end_layout \begin_layout Standard Package is maintained, nevertheless, Funtoo is used as platform for regression tests. \end_layout \begin_layout Subsubsection Ubuntu \end_layout \begin_layout Standard Package is maintained, more information can be found at \begin_inset CommandInset href LatexCommand href name "https://packages.ubuntu.com/ipv6calc" target "https://packages.ubuntu.com/ipv6calc" literal "false" \end_inset \end_layout \begin_layout Subsubsection Debian GNU/Linux \end_layout \begin_layout Standard Package is maintained, more information can be found at \begin_inset CommandInset href LatexCommand href name "http://packages.debian.org/ipv6calc" target "http://packages.debian.org/ipv6calc" literal "false" \end_inset \end_layout \begin_layout Subsubsection openSUSE \end_layout \begin_layout Standard Package is maintained, more information can be found at \begin_inset CommandInset href LatexCommand href name "http://download.opensuse.org/repositories/home:/uebelhacker/" target "http://download.opensuse.org/repositories/home:/uebelhacker/" literal "false" \end_inset \end_layout \begin_layout Subsubsection NetBSD \end_layout \begin_layout Standard See here for more: \begin_inset CommandInset href LatexCommand href name "ftp://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/net/ipv6calc/README.html" target "ftp://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/net/ipv6calc/README.html" literal "false" \end_inset \end_layout \begin_layout Subsubsection FreeBSD \end_layout \begin_layout Standard See here for more: \begin_inset CommandInset href LatexCommand href name "http://www.freshports.org/net-mgmt/ipv6calc/" target "http://www.freshports.org/net-mgmt/ipv6calc/" literal "false" \end_inset ( \begin_inset CommandInset href LatexCommand href name "http://www.freebsd.org/cgi/query-pr.cgi?pr=34441" target "http://www.freebsd.org/cgi/query-pr.cgi?pr=34441" literal "false" \end_inset ) \end_layout \begin_layout Subsubsection OpenBSD \end_layout \begin_layout Standard See here for more: \begin_inset CommandInset href LatexCommand href name "http://www.openbsd.org/cgi-bin/cvsweb/ports/net/ipv6calc/" target "http://www.openbsd.org/cgi-bin/cvsweb/ports/net/ipv6calc/" literal "false" \end_inset \end_layout \begin_layout Section Configuring & Compiling \end_layout \begin_layout Subsection Configuring \end_layout \begin_layout Standard Following \begin_inset Quotes eld \end_inset ipc6calc \begin_inset Quotes erd \end_inset related configure options are currently supported (note: disabling the internal databases reduces the size of the resulting binaries/shared library a lot): \end_layout \begin_layout Code --disable-dynamic-load Disable dynamic load of libraries (default: enabled) \end_layout \begin_layout Code \end_layout \begin_layout Code --disable-db-ieee Disable build-in IEEE database (default: enabled) \end_layout \begin_layout Code --disable-db-ipv4 Disable build-in IPv4 database (default: enabled) \end_layout \begin_layout Code --disable-db-ipv6 Disable build-in IPv6 database (default: enabled) \end_layout \begin_layout Code --disable-db-as-registry Disable built-in AS-to-Registry database (default: enabled) \end_layout \begin_layout Code --disable-db-cc-registry Disable built-in CountryCode-to-Registry database (default: enabled) \end_layout \begin_layout Code --disable-geoip2 Disable MaxMindDB support for GeoIP (default: enabled) \end_layout \begin_layout Code --disable-dbip2 Disable MaxMindDB support for db-ip.com (default: enabled) \end_layout \begin_layout Code --enable-mmdb Enable MaxMindDB support (GeoIP/db-ip.com) (default: disabled) \end_layout \begin_layout Code --enable-external Enable external db support (default: disabled) \end_layout \begin_layout Code --enable-ip2location Enable IP2Location support (default: disabled) \end_layout \begin_layout Code --enable-mod_ipv6calc Enable build of mod_ipv6calc for Apache (default: disabled) \end_layout \begin_layout Code \end_layout \begin_layout Code --with-mmdb-dynamic Enable use of dynamic loading of MaxMindDB library (default=no) \end_layout \begin_layout Code --with-mmdb-headers=DIR MaxMindDB include files location \end_layout \begin_layout Code --with-mmdb-lib=DIR MaxMindDB library location \end_layout \begin_layout Code --with-mmdb-dyn-lib=NAME Use specified MaxMindDB dynamic library, default: libmaxminddb.so.0 \end_layout \begin_layout Code \end_layout \begin_layout Code --with-ip2location-headers=DIR IP2Location include files location \end_layout \begin_layout Code --with-ip2location-headers-fallback IP2Location include files from internal fallback location (only usable with dynamic load option) \end_layout \begin_layout Code --with-ip2location-lib=FILE IP2Location library location \end_layout \begin_layout Code --with-ip2location-static Explicitly link IP2Location statically (default=no) \end_layout \begin_layout Code --with-ip2location-dynamic Enable use of dynamic loading of IP2Location library (default=no) \end_layout \begin_layout Code --with-ip2location-db=DIR Use specified IP2Location database directory , default: /usr/share/IP2Location \end_layout \begin_layout Code --with-ip2location-dyn-lib=NAME Use specified IP2Location dynamic library, default: libIP2Location.so \end_layout \begin_layout Code \end_layout \begin_layout Code --with-geoip-db=DIR Use specified GeoIP database directory, default: /usr/share/GeoIP \end_layout \begin_layout Code \end_layout \begin_layout Code --with-dbip-db=DIR Use specified db-ip.com database directory, default: /usr/share/DBIP \end_layout \begin_layout Code \end_layout \begin_layout Code --with-external-db=DIR Use specified external database directory, default: /usr/share/ipv6calc/db \end_layout \begin_layout Code \end_layout \begin_layout Code --with-apxs=NAME name of the apxs executable (apxs) \end_layout \begin_layout Code \end_layout \begin_layout Code --enable-shared Enable shared library build (default: disabled) \end_layout \begin_layout Code \end_layout \begin_layout Code --enable-bundled-getopt Enable bundled getopt library (default: autoselected) \end_layout \begin_layout Code --enable-bundled-md5 Enable bundled MD5 library (default: autoselecte d) \end_layout \begin_layout Subsection Compiling \end_layout \begin_layout Standard As usual, use \end_layout \begin_layout Code $ make \end_layout \begin_layout Standard and run tests afterwards using \end_layout \begin_layout Code $ make test \end_layout \begin_layout Standard or at least (e.g. if external databases are not available) \end_layout \begin_layout Code $ make test-minimal \end_layout \begin_layout Subsection Configuring & Compiling with Presets \end_layout \begin_layout Standard A shell script is included which can configure and compile with standard presets (also used during regression tests): \end_layout \begin_layout Code $ ./autogen.sh -h \end_layout \begin_layout Code Supported options: \end_layout \begin_layout Code -?|-h|--help : this help \end_layout \begin_layout Code -n|--no-make : stop before running 'make' \end_layout \begin_layout Code -a|--all : enable GeoIP/IP2Location/db-ip.com/External/mod_ipv6calc support \end_layout \begin_layout Code -A|--ALL : enable GeoIP/IP2Location/db-ip.com/External/mod_ipv6calc support with dynamic library support \end_layout \begin_layout Code -m|--mmdb : enable MaxMindDB support (GeoIP/db-ip.com) \end_layout \begin_layout Code --mmdb-dyn|-M : switch to dynamic library loading of MaxMindDB \end_layout \begin_layout Code --disable-geoip2 : disable MaxMindDB support for GeoIP \end_layout \begin_layout Code --disable-dbip2 : disable MaxMindDB support for db-ip.com \end_layout \begin_layout Code -i|--ip2location : enable IP2Location support \end_layout \begin_layout Code --ip2location-dyn|-I: switch to dynamic library loading of IP2Location \end_layout \begin_layout Code -e|--external : enable external database support \end_layout \begin_layout Code --disable-db-ieee : disable built-in IEEE database \end_layout \begin_layout Code --disable-db-ipv4 : disable built-in IPv4 database \end_layout \begin_layout Code --disable-db-ipv6 : disable built-in IPv6 database \end_layout \begin_layout Code -S : enable shared library mode \end_layout \begin_layout Code --no-static-build : skip static build \end_layout \begin_layout Code --no-test : skip 'make test' \end_layout \begin_layout Code --clang : use 'clang' instead of default (usually 'gcc') \end_layout \begin_layout Code --m32 : compile for 32-bit \end_layout \begin_layout Code --relax : don't stop on compiler warnings \end_layout \begin_layout Section Mailing Lists \end_layout \begin_layout Subsection ipv6calc-announce \end_layout \begin_layout Description Reason: sending announcements of new versions \end_layout \begin_layout Description Traffic: very low \end_layout \begin_layout Description Postings: only moderators are allowed to post \end_layout \begin_layout Description Information: \begin_inset CommandInset href LatexCommand href name "DeepSpace6 / maillist ipv6calc-announce" target "http://lists.deepspace6.net/listinfo/ipv6calc-announce" literal "false" \end_inset \end_layout \begin_layout Subsection ipv6calc \end_layout \begin_layout Description Reason: discussions \end_layout \begin_layout Description Traffic: low \end_layout \begin_layout Description Postings: subscribers \end_layout \begin_layout Description Information: \begin_inset CommandInset href LatexCommand href name "DeepSpace6 / maillist ipv6calc" target "http://lists.deepspace6.net/listinfo/ipv6calc" literal "false" \end_inset \end_layout \begin_layout Section Bug Reports \end_layout \begin_layout Standard You can send bug reports to the author himself or subscribe to maillist \begin_inset Quotes eld \end_inset ipv6calc \begin_inset Quotes erd \end_inset and send it to the list. \end_layout \begin_layout Section Features of ipv6calc \end_layout \begin_layout Subsection Description \end_layout \begin_layout Standard The main program named \begin_inset Quotes eld \end_inset ipv6calc \begin_inset Quotes erd \end_inset is able to recognize many (not only) IPv6 address formats and depending on a selectable action (not required) a selectable output format can be specified. Also it has the capability to show detailed information of an IPv4/IPv6 address or anonymize it. \end_layout \begin_layout Subsection List of built-in features \end_layout \begin_layout Standard Option \begin_inset Quotes eld \end_inset -v \begin_inset Quotes erd \end_inset shows built-in features, depending on configuration before compiling: \end_layout \begin_layout Code $ ipv6calc -v \end_layout \begin_layout Code ipv6calc: version 3.0.0 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-T YPE-GEONAMEID \end_layout \begin_layout Standard Option \begin_inset Quotes eld \end_inset -v -v \begin_inset Quotes erd \end_inset (since 0.91.0) shows built-in features and capabilities in detail, depending on configuration before compiling: \end_layout \begin_layout Code $ ipv6calc -vv \end_layout \begin_layout Code ipv6calc: version 3.0.0 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-T YPE-GEONAMEID \end_layout \begin_layout Code Capabilities: GeoIP2(linked/MaxMindDB) IP2Location(linked) DBIP2(linked/MaxMindD B) ExternalDatabase DB_AS_REG(BuiltIn) DB_CC_REG(BuiltIn) DB_IPV4_REG(BuiltIn) DB_IPV6_REG(BuiltIn) DB_IEEE(BuiltIn) \end_layout \begin_layout Code Internal main library version: 3.0.0 API: 3.0.0 (built-in) \end_layout \begin_layout Code Internal database library version: 3.0.0 API: 3.0.0 (built-in) \end_layout \begin_layout Code Compiled: Oct 13 2020 19:38:16 \end_layout \begin_layout Code MaxMindDB for GeoIP2/DBIP2 support enabled \end_layout \begin_layout Code MaxMindDB dynamic library version (on this system): 1.4.2 \end_layout \begin_layout Code GeoIP2 (MaxMindDB) support enabled \end_layout \begin_layout Code GeoIP2 available databases: Country4=1 Country6=1 ASN4=1 ASN6=1 City4=1 City6=1 \end_layout \begin_layout Code IP2Location support enabled, compiled with API version: 8.2.0, dynamically linked with version: API=8.2.0 Major=8 \end_layout \begin_layout Code IP2Location available databases: Country4=1 Country6=1 ASN4=0 ASN6=0 City4=1 City6=1 \end_layout \begin_layout Code DBIP2 (MaxMindDB) support enabled \end_layout \begin_layout Code DBIP2 available databases: Country4=1 Country6=1 ASN4=1 ASN6=1 City4=1 City6=1 \end_layout \begin_layout Code External available databases: Country4=1 Country6=1 IPV4_REG=1 IPV6_REG=1 \end_layout \begin_layout Code BuiltIn databases available: ASN_REG=1 IPV4_REG=1 IPV6_REG=1 IEEE=1 CC_REG=1 \end_layout \begin_layout Code DB features: 0xff07ffff \end_layout \begin_layout Code GeoIP(MaxMindDB): features available/implemented: 0x03063ff0/0x03063ff0 (100%) \end_layout \begin_layout Code GeoIP2: info of available databases in directory: /usr/share/GeoIP \end_layout \begin_layout Code GeoIP2: IPv4/v6 CountryCode (FREE) : [1] GeoLite2-Country.mmdb (GeoLite2-Country Copyright (c) 2019 MaxMind All Rights Reserved, created: 20191217-195954 UTC) \end_layout \begin_layout Code GeoIP2: IPv4/v6 City (FREE) : [2] GeoLite2-City.mmdb (GeoLite2-City Copyright (c) 2019 MaxMind All Rights Reserved, created: 20191217-200126 UTC) \end_layout \begin_layout Code GeoIP2: IPv4/v6 ASN (FREE) : [3] GeoLite2-ASN.mmdb (GeoLite2-ASN Copyright (c) 2019 MaxMind All Rights Reserved, created: 20190122-114228 UTC) \end_layout \begin_layout Code GeoIP2: detected best databases FREE Country4=2 Country6=2 City4=2 City6=2 \end_layout \begin_layout Code GeoIP2: detected best databases COMM Country4=0 Country6=0 City4=0 City6=0 \end_layout \begin_layout Code GeoIP2: selected best databases normal Country4=2 Country6=2 City4=2 City6=2 \end_layout \begin_layout Code GeoIP2: selected best databases method: COMM older than 12 months are deselected in case of FREE is available \end_layout \begin_layout Code GeoIP2: selected best databases method: COMM/FREE with more features are only selected in case not older than 1 months of already found COMM/FREE \end_layout \begin_layout Code IP2Location: features available/implemented: 0x0c003fc0/0x0c003fc0 (100%) \end_layout \begin_layout Code IP2Location: info of available databases in directory: /usr/share/IP2Location \end_layout \begin_layout Code IP2Location: Copyright (c) IP2Location All Rights Reserved \end_layout \begin_layout Code IP2Location: IPv4 Country :[ 49] IP-COUNTRY-S AMPLE.BIN (IP2L-DB1 IPv4 IPv6 SAMPLE 20201005) \end_layout \begin_layout Code IP2Location: IPv4 Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Ne/Ar/We/Mo :[ 68] IP-COUNTRY-R EGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEAT HER-MOBILE-SAMPLE.BIN (IP2L-DB20 IPv4 IPv6 SAMPLE 20190129) \end_layout \begin_layout Code IP2Location: IPv4 Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Ne/Ar/We/Mo/El/Us:[ 72] IP-COUNTRY-R EGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WEAT HER-MOBILE-ELEVATION-USAGETYPE-SAMPLE.BIN (IP2L-DB24 IPv4 IPv6 SAMPLE 20190129) \end_layout \begin_layout Code IP2Location: IPv6 Country :[ 73] IPV6-COUNTRY. SAMPLE.BIN (IP2L-DB1 IPv4 IPv6 SAMPLE 20201005) \end_layout \begin_layout Code IP2Location: IPv6 Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Ne/Ar/We/Mo :[ 92] IPV6-COUNTRY -REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WE ATHER-MOBILE.SAMPLE.BIN (IP2L-DB20 IPv4 IPv6 SAMPLE 20171128) \end_layout \begin_layout Code IP2Location: IPv6 Co/Re/Ci/LaLo/ZI/TZ/IS/Do/Ne/Ar/We/Mo/El/Us:[ 96] IPV6-COUNTRY -REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-AREACODE-WE ATHER-MOBILE-ELEVATION-USAGETYPE.SAMPLE.BIN (IP2L-DB24 IPv4 IPv6 SAMPLE 20171128) \end_layout \begin_layout Code IP2Location: IPvx Co/Re/Ci/LattLong/ZIP/TZ :[ 35] IPV6-COUNTRY -REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE.BIN (IP2L-DB11 IPv4 IPv6 20181226) \end_layout \begin_layout Code IP2Location: detected best databases SAMPLE Country4=49 Country6=73 City4=72 City6=96 \end_layout \begin_layout Code IP2Location: detected best databases LITE Country4=0 Country6=0 City4=0 City6=0 \end_layout \begin_layout Code IP2Location: detected best databases COMM Country4=35 Country6=35 City4=35 City6=35 \end_layout \begin_layout Code IP2Location: selected best databases LI->SA* Country4=0 Country6=0 City4=0 City6=0 \end_layout \begin_layout Code IP2Location: selected best databases normal Country4=35 Country6=35 City4=35 City6=35 \end_layout \begin_layout Code IP2Location: selected best databases method: * = autoswitch from LITE to SAMPLE enabled in case not older than 12 months and having more features \end_layout \begin_layout Code IP2Location: selected best databases method: COMM older than 12 months are deselected in case of LITE is available \end_layout \begin_layout Code IP2Location: selected best databases method: COMM/LITE/SAMPLE with more features are only selected in case not older than 1 months of already found COMM/LITE/SAMPLE \end_layout \begin_layout Code IP2Location: selected best databases method: softlinks: skipped-by-default \end_layout \begin_layout Code db-ip.com(MaxMindDB): features available/implemented: 0x30063ff0/0x30063ff0 (100%) \end_layout \begin_layout Code DBIP2: info of available databases in directory: /usr/share/DBIP \end_layout \begin_layout Code DBIP2: IPv4/v6 CountryCode (FREE) : [1] dbip-country-lite.mmdb (DBIP-Country-Lite Copyright (c) 2019 db-ip.com All Rights Reserved, created: 20190831-232938 UTC) \end_layout \begin_layout Code DBIP2: IPv4/v6 City (FREE) : [2] dbip-city-lite.mmdb (DBIP-City-Lite Copyright (c) 2019 db-ip.com All Rights Reserved, created: 20190831-233248 UTC) \end_layout \begin_layout Code DBIP2: IPv4/v6 Location+ISP (COMM) : [6] dbip-location-isp.mmdb (DBIP-Location-ISP (compat=Enterprise) Copyright (c) 2019 db-ip.com All Rights Reserved, created: 20190101-015418 UTC) \end_layout \begin_layout Code DBIP2: detected best databases FREE Country4=2 Country6=2 City4=2 City6=2 \end_layout \begin_layout Code DBIP2: detected best databases COMM Country4=6 Country6=6 City4=6 City6=6 \end_layout \begin_layout Code DBIP2: selected best databases normal Country4=6 Country6=6 City4=6 City6=6 \end_layout \begin_layout Code DBIP2: selected best databases method: COMM older than 12 months are deselected in case of FREE is available \end_layout \begin_layout Code DBIP2: selected best databases method: COMM/FREE with more features are only selected in case not older than 1 months of already found COMM/FREE \end_layout \begin_layout Code External: features available/implemented: 0xc00180cc/0xc00180cc (100%) \end_layout \begin_layout Code External: info of available databases in directory: /usr/share/ipv6calc/db \end_layout \begin_layout Code External: IPv4 Registry : ipv6calc-external-ipv4-registry.db (EXTDB-1/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191227 LACNIC/202 00903 LISP/20200318 RIPENCC/20200903, created: 20200904-061346 UTC) \end_layout \begin_layout Code External: IPv6 Registry : ipv6calc-external-ipv6-registry.db (EXTDB-2/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191106 LACNIC/202 00903 LISP/20200318 RIPENCC/20200903, created: 20200904-063305 UTC) \end_layout \begin_layout Code External: IPv4 CountryCode : ipv6calc-external-ipv4-countrycode.db (EXTDB-3/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191227 LACNIC/202 00903 LISP/20200318 RIPENCC/20200903, created: 20200904-061347 UTC) \end_layout \begin_layout Code External: IPv6 CountryCode : ipv6calc-external-ipv6-countrycode.db (EXTDB-4/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191106 LACNIC/202 00903 LISP/20200318 RIPENCC/20200903, created: 20200904-063305 UTC) \end_layout \begin_layout Code BuiltIn: features available/implemented: 0x0001c00f/0x0001c00f (100%) \end_layout \begin_layout Code BuiltIn: info of available databases \end_layout \begin_layout Code BuiltIn: ASN : IANA/20200518 \end_layout \begin_layout Code BuiltIn: CC : AFRINIC/20201012 APNIC/20201010 ARIN/20201011 LACNIC/20201009 RIPENCC/20201011 \end_layout \begin_layout Code BuiltIn: IPv4 : AFRINIC/20201012 APNIC/20201010 ARIN/20201011 IANA/20191227 LACNIC/20201009 LISP/20200318 RIPENCC/20201011 (created: 20201012-064251 UTC) \end_layout \begin_layout Code BuiltIn: IPv6 : AFRINIC/20201012 APNIC/20201010 ARIN/20201011 IANA/20191106 LACNIC/20201009 LISP/20200318 RIPENCC/20201011 (created: 20201012-070210 UTC) \end_layout \begin_layout Code BuiltIn: IEEE : IAB/20201012 OUI/20201012 OUI28/20201012 OUI36/20201012 \end_layout \begin_layout Code Database selection or priorization ('->': subsequential calls) \end_layout \begin_layout Code Database priorization default: GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB )->GeoIP->db-ip.com->External->BuiltIn \end_layout \begin_layout Code DB_AS_REG (AS-Number to Registry database): BuiltIn \end_layout \begin_layout Code DB_CC_REG (CountryCode to Registry database): BuiltIn \end_layout \begin_layout Code DB_IPV4_REG (IPv4 to Registry database): BuiltIn \end_layout \begin_layout Code DB_IPV6_REG (IPv6 to Registry database): BuiltIn \end_layout \begin_layout Code DB_IPV4_AS (IPv4 to AS database): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB) \end_layout \begin_layout Code DB_IPV6_AS (IPv6 to AS database): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB) \end_layout \begin_layout Code DB_IPV4_CC (IPv4 to CountryCode database): GeoIP(MaxMindDB)->IP2Location->db-ip.c om(MaxMindDB)->External \end_layout \begin_layout Code DB_IPV6_CC (IPv6 to CountryCode database): GeoIP(MaxMindDB)->IP2Location->db-ip.c om(MaxMindDB)->External \end_layout \begin_layout Code DB_IPV4_COUNTRY (IPv4 to Country database): GeoIP(MaxMindDB)->IP2Location->db-ip. com(MaxMindDB) \end_layout \begin_layout Code DB_IPV6_COUNTRY (IPv6 to Country database): GeoIP(MaxMindDB)->IP2Location->db-ip. com(MaxMindDB) \end_layout \begin_layout Code DB_IPV4_CITY (IPv4 to City database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(Ma xMindDB) \end_layout \begin_layout Code DB_IPV6_CITY (IPv6 to City database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(Ma xMindDB) \end_layout \begin_layout Code DB_IPV4_REGION (IPv4 to Region database): GeoIP(MaxMindDB)->IP2Location->db-ip.co m(MaxMindDB) \end_layout \begin_layout Code DB_IPV6_REGION (IPv6 to Region database): GeoIP(MaxMindDB)->IP2Location->db-ip.co m(MaxMindDB) \end_layout \begin_layout Code DB_IEEE (IEEE/OUI/OUI28/OUI36 Vendor database): BuiltIn \end_layout \begin_layout Code DB_IPV4_INFO (IPv4 additional information): External->BuiltIn \end_layout \begin_layout Code DB_IPV6_INFO (IPv6 additional information): External->BuiltIn \end_layout \begin_layout Code DB_IPV4_GEONAMEID (IPv4 GeonameID): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB) \end_layout \begin_layout Code DB_IPV6_GEONAMEID (IPv6 GeonameID): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB) \end_layout \begin_layout Standard Option \begin_inset Quotes eld \end_inset -v -h \begin_inset Quotes erd \end_inset (since 0.97.4) shows explanation of feature tokens \end_layout \begin_layout Code $ ipv6calc -v -h \end_layout \begin_layout Code ipv6calc: version 3.0.0 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-T YPE-GEONAMEID \end_layout \begin_layout Code Explanation of available(x)/possible(o) feature tokens \end_layout \begin_layout Code GeoIP x GeoIPv4 database (provided by GeoIP(MaxMindDB)) \end_layout \begin_layout Code GeoIPv6 x GeoIPv6 database (provided by GeoIP(MaxMindDB)) \end_layout \begin_layout Code IP2Location x IP2Location IPv4 database (provided by IP2Location) \end_layout \begin_layout Code IP2Location6 x IP2Location IPv6 database (provided by IP2Location) \end_layout \begin_layout Code DBIPv4 x db-ip.com IPv4 database (provided by db-ip.com(MaxMindD B)) \end_layout \begin_layout Code DBIPv6 x db-ip.com IPv6 database (provided by db-ip.com(MaxMindD B)) \end_layout \begin_layout Code DB_AS_REG x AS-Number to Registry database (provided by BuiltIn) \end_layout \begin_layout Code DB_IPV4_REG x IPv4 to Registry database (provided by External,Built In) \end_layout \begin_layout Code DB_IPV6_REG x IPv6 to Registry database (provided by External,Built In) \end_layout \begin_layout Code DB_IPV4_AS x IPv4 to AS database (provided by GeoIP(MaxMindDB),db- ip.com(MaxMindDB)) \end_layout \begin_layout Code DB_IPV6_AS x IPv6 to AS database (provided by GeoIP(MaxMindDB),db- ip.com(MaxMindDB)) \end_layout \begin_layout Code DB_IPV4_CC x IPv4 to CountryCode database (provided by GeoIP(MaxMi ndDB),IP2Location,db-ip.com(MaxMindDB),External) \end_layout \begin_layout Code DB_IPV6_CC x IPv6 to CountryCode database (provided by GeoIP(MaxMi ndDB),IP2Location,db-ip.com(MaxMindDB),External) \end_layout \begin_layout Code DB_IPV4_COUNTRY x IPv4 to Country database (provided by GeoIP(MaxMindDB ),IP2Location,db-ip.com(MaxMindDB)) \end_layout \begin_layout Code DB_IPV6_COUNTRY x IPv6 to Country database (provided by GeoIP(MaxMindDB ),IP2Location,db-ip.com(MaxMindDB)) \end_layout \begin_layout Code DB_IPV4_CITY x IPv4 to City database (provided by GeoIP(MaxMindDB),I P2Location,db-ip.com(MaxMindDB)) \end_layout \begin_layout Code DB_IPV6_CITY x IPv6 to City database (provided by GeoIP(MaxMindDB),I P2Location,db-ip.com(MaxMindDB)) \end_layout \begin_layout Code DB_IPV4_REGION x IPv4 to Region database (provided by GeoIP(MaxMindDB) ,IP2Location,db-ip.com(MaxMindDB)) \end_layout \begin_layout Code DB_IPV6_REGION x IPv6 to Region database (provided by GeoIP(MaxMindDB) ,IP2Location,db-ip.com(MaxMindDB)) \end_layout \begin_layout Code DB_CC_REG x CountryCode to Registry database (provided by BuiltIn) \end_layout \begin_layout Code DB_IEEE x IEEE/OUI/OUI28/OUI36 Vendor database (provided by BuiltIn) \end_layout \begin_layout Code DB_IPV4_INFO x IPv4 additional information (provided by External,Bui ltIn) \end_layout \begin_layout Code DB_IPV6_INFO x IPv6 additional information (provided by External,Bui ltIn) \end_layout \begin_layout Code DB_IPV4_GEONAMEID x IPv4 GeonameID (provided by GeoIP(MaxMindDB),db-ip.com (MaxMindDB)) \end_layout \begin_layout Code DB_IPV6_GEONAMEID x IPv6 GeonameID (provided by GeoIP(MaxMindDB),db-ip.com (MaxMindDB)) \end_layout \begin_layout Code ANON_ZEROISE x Anonymization method 'zeroize' \end_layout \begin_layout Code ANON_ANONYMIZE x Anonymization method 'anonymize' \end_layout \begin_layout Code ANON_KEEP-TYPE-ASN-CC x Anonymization method 'keep-type-asn-cc' \end_layout \begin_layout Code ANON_KEEP-TYPE-GEONAMEID x Anonymization method 'keep-type-geonameid' \end_layout \begin_layout Standard Note: since version 0.95.0 the internal layer for database usage was abstracted and each database \begin_inset Quotes eld \end_inset plugin \begin_inset Quotes erd \end_inset is initialized reporting then its supporting features in binary representation. This makes implementation of other external databases easier in the future. There are at least plans to create an overlay to built-in databases by publishing and use some \begin_inset Quotes eld \end_inset precompiled \begin_inset Quotes erd \end_inset newer databases replacing the need of recompilation for updated built-in databases. \end_layout \begin_layout Subsection Examples \end_layout \begin_layout Subsubsection Conversion \end_layout \begin_layout Standard A simple example is the conversion of an IPv6 address to a DNS PTR query string: \end_layout \begin_layout Code $ ipv6calc --out revnibbles.arpa 2001:db8::1 \end_layout \begin_layout Code No input type specified, try autodetection...found type: ipv6addr \end_layout \begin_layout Code 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. \end_layout \begin_layout Standard Like you see, input format was autodetected. And the given example can be extended because ipv6calc also understands netmask / prefix length values: \end_layout \begin_layout Code $ ipv6calc -q --out revnibbles.arpa 2001:db8::1/64 \end_layout \begin_layout Code 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. \end_layout \begin_layout Standard Also you've also learnt now that switch '-q' (quiet) suppresses informational messages. You can use this now to start a DNS PTR query using: \end_layout \begin_layout Code $ dig PTR `./ipv6calc -q --out revnibbles.arpa 2001:db8::1/64` \end_layout \begin_layout Standard But ipv6calc can do many more for you! Next example shows you the extraction of the IPv4 address contained in a 6to4 IPv6 address: \end_layout \begin_layout Code $ ipv6calc -q --action conv6to4 --in ipv6 2002:c0a8:fb61::1 --out ipv4 \end_layout \begin_layout Code 192.168.251.97 \end_layout \begin_layout Standard This also works vice-versa: \end_layout \begin_layout Code $ ipv6calc -q --action conv6to4 --in ipv4 192.168.251.97 --out ipv6 \end_layout \begin_layout Code 2002:c0a8:fb61:: \end_layout \begin_layout Standard There are many more features already implemented, if you miss one, send a note. \end_layout \begin_layout Subsubsection Information \end_layout \begin_layout Standard Depending on available databases output can vary. \end_layout \begin_layout Paragraph Information about a simple IPv6 address: \end_layout \begin_layout Code $ ipv6calc -q -i 3ffe:ffff::210:a4ff:fe01:2345 \end_layout \begin_layout Code Address type: unicast, 6bone, global-unicast, productive \end_layout \begin_layout Code Address type has SLA: 0000 \end_layout \begin_layout Code Registry for address: reserved \end_layout \begin_layout Code Interface identifier: 0210:a4ff:fe01:2345 \end_layout \begin_layout Code EUI-48/MAC address: 00:10:a4:01:23:45 \end_layout \begin_layout Code MAC is a global unique one \end_layout \begin_layout Code MAC is an unicast one \end_layout \begin_layout Code OUI is: XIRCOM \end_layout \begin_layout Paragraph Information about a Teredo IPv6 address: \end_layout \begin_layout Code $ ipv6calc -q -i 3ffe:831f:ce49:7601:8000:efff:af4a:86BF \end_layout \begin_layout Code Address type: unicast, 6bone, global-unicast, teredo \end_layout \begin_layout Code Country Code: IT \end_layout \begin_layout Code Registry for address: 6BONE \end_layout \begin_layout Code IPv4 address: 80.181.121.64 (TEREDO-CLIENT) \end_layout \begin_layout Code IPv4 address type: unicast, global \end_layout \begin_layout Code Autonomous System Information for [80.181.121.64]: AS3269 ASN-IBSNAZ \end_layout \begin_layout Code Country Code for [80.181.121.64]: IT \end_layout \begin_layout Code ... \end_layout \begin_layout Paragraph Information about a LISP address \end_layout \begin_layout Code $ ipv6calc -q -i 153.16.26.80 \end_layout \begin_layout Code IPv4 address: 153.16.26.80 \end_layout \begin_layout Code IPv4 address type: unicast, global, lisp \end_layout \begin_layout Code ... \end_layout \begin_layout Code IPv4 registry: ARIN(LISP#cbc-xtr) \end_layout \begin_layout Code ... \end_layout \begin_layout Paragraph Machine readable output \end_layout \begin_layout Standard There exists also a machine readable output (e.g. used by 'ipv6calcweb.cgi') - in addition, database related information can be displayed, if databases are located on the system and supported. \end_layout \begin_layout Code $ ipv6calc -q -i -m 2a01:238:423d:8800:85b3:9e6b:3019:8909 \end_layout \begin_layout Code IPV6=2a01:0238:423d:8800:85b3:9e6b:3019:8909 \end_layout \begin_layout Code IPV6_ANON=a909:16fa:9091:a448:a909:4941:0000:0007 \end_layout \begin_layout Code IPV6_TYPE=ipv6,unicast,global-unicast,productive,iid-random,iid,iid-local \end_layout \begin_layout Code IPV6_COUNTRYCODE=DE \end_layout \begin_layout Code IPV6_COUNTRYCODE_SOURCE=GeoIP(MaxMindDB) \end_layout \begin_layout Code IPV6_AS_NUM=6724 \end_layout \begin_layout Code IPV6_AS_SOURCE=GeoIP(MaxMindDB) \end_layout \begin_layout Code IPV6_GEONAME_ID=2921044 \end_layout \begin_layout Code IPV6_GEONAME_ID_SOURCE=GeoIP(MaxMindDB) \end_layout \begin_layout Code IPV6_GEONAME_ID_TYPE=Country \end_layout \begin_layout Code IPV6_REGISTRY=RIPENCC \end_layout \begin_layout Code SLA=8800 \end_layout \begin_layout Code IID=85b3:9e6b:3019:8909 \end_layout \begin_layout Code EUI64_SCOPE=local-random \end_layout \begin_layout Code IP2LOCATION_COUNTRY_SHORT=DE \end_layout \begin_layout Code IP2LOCATION_COUNTRY_LONG=Germany \end_layout \begin_layout Code IP2LOCATION_REGION=Berlin \end_layout \begin_layout Code IP2LOCATION_CITY=Berlin \end_layout \begin_layout Code IP2LOCATION_ZIPCODE=10178 \end_layout \begin_layout Code IP2LOCATION_LATITUDE=52.524368 \end_layout \begin_layout Code IP2LOCATION_LONGITUDE=13.410530 \end_layout \begin_layout Code IP2LOCATION_TIMEZONE=+01:00 \end_layout \begin_layout Code GEOIP2_CONTINENT_SHORT=EU \end_layout \begin_layout Code GEOIP2_CONTINENT_LONG=Europe \end_layout \begin_layout Code GEOIP2_COUNTRY_SHORT=DE \end_layout \begin_layout Code GEOIP2_COUNTRY_LONG=Germany \end_layout \begin_layout Code GEOIP2_LATITUDE=51.000000 \end_layout \begin_layout Code GEOIP2_LONGITUDE=9.000000 \end_layout \begin_layout Code GEOIP2_RADIUS=100 \end_layout \begin_layout Code GEOIP2_TIMEZONE_NAME=Europe/Berlin \end_layout \begin_layout Code GEOIP2_AS_NUM=6724 \end_layout \begin_layout Code GEOIP2_AS_ORGNAME=Strato AG \end_layout \begin_layout Code GEOIP2_GEONAME_ID_COUNTRY=2921044 \end_layout \begin_layout Code GEOIP2_GEONAME_ID_CONTINENT=6255148 \end_layout \begin_layout Code DBIP2_CONTINENT_SHORT=EU \end_layout \begin_layout Code DBIP2_CONTINENT_LONG=Europe \end_layout \begin_layout Code DBIP2_COUNTRY_SHORT=DE \end_layout \begin_layout Code DBIP2_COUNTRY_LONG=Germany \end_layout \begin_layout Code DBIP2_REGION=Berlin \end_layout \begin_layout Code DBIP2_CITY=Berlin (Charlottenburg-Wilmersdorf) \end_layout \begin_layout Code DBIP2_ZIPCODE=10587 \end_layout \begin_layout Code DBIP2_LATITUDE=52.523900 \end_layout \begin_layout Code DBIP2_LONGITUDE=13.321400 \end_layout \begin_layout Code DBIP2_WEATHERSTATIONCODE=GMXX8538 \end_layout \begin_layout Code DBIP2_TIMEZONE_NAME=Europe/Berlin \end_layout \begin_layout Code DBIP2_AS_NUM=6724 \end_layout \begin_layout Code DBIP2_AS_ORGNAME=Strato AG \end_layout \begin_layout Code DBIP2_ISP=Strato Rechenzentrum \end_layout \begin_layout Code DBIP2_NETSPEED=Corporate \end_layout \begin_layout Code DBIP2_GEONAME_ID=3336294 \end_layout \begin_layout Code DBIP2_GEONAME_ID_REGION=2950157 \end_layout \begin_layout Code DBIP2_GEONAME_ID_COUNTRY=2921044 \end_layout \begin_layout Code DBIP2_GEONAME_ID_CONTINENT=6255148 \end_layout \begin_layout Code EXTERNAL_COUNTRY_SHORT=DE \end_layout \begin_layout Code IP2LOCATION_DATABASE_INFO=IP2L-DB11 IPv4 IPv6 20181226 Copyright (c) 2018 IP2Location All Rights Reserved \end_layout \begin_layout Code GEOIP2_DATABASE_INFO=GeoLite2-City Copyright (c) 2019 MaxMind All Rights Reserved, created: 20191217-200126 UTC / GeoLite2-ASN Copyright (c) 2019 MaxMind All Rights Reserved, created: 20190122-114228 UTC \end_layout \begin_layout Code DBIP2_DATABASE_INFO=DBIP-Location-ISP (compat=Enterprise) Copyright (c) 2019 db-ip.com All Rights Reserved, created: 20190101-015418 UTC \end_layout \begin_layout Code EXTERNAL_DATABASE_INFO=EXTDB-4/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191106 LACNIC/20200903 LISP/20200318 RIPENCC/20200903, created: 20200904-063305 UTC \end_layout \begin_layout Code BUILTIN_DATABASE_INFO=IPv6-REG:AFRINIC/20201012 APNIC/20201010 ARIN/20201011 IANA/20191106 LACNIC/20201009 LISP/20200318 RIPENCC/20201011 \end_layout \begin_layout Code IPV6CALC_NAME=ipv6calc \end_layout \begin_layout Code IPV6CALC_VERSION=3.0.0 \end_layout \begin_layout Code IPV6CALC_COPYRIGHT="(P) & (C) 2001-2020 by Peter Bieringer " \end_layout \begin_layout Code IPV6CALC_OUTPUT_VERSION=21 \end_layout \begin_layout Code IPV6CALC_SETTINGS_ANON="set=keep-type-asn-cc,mask-ipv6=56,mask-ipv4=24,mask-eui6 4=40,mask-mac=24,method=keep-type-asn-cc" \end_layout \begin_layout Code IPV6CALC_FEATURES="GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-T YPE-GEONAMEID" \end_layout \begin_layout Code IPV6CALC_CAPABILITIES="GeoIP2(linked/MaxMindDB) IP2Location(linked) DBIP2(linked /MaxMindDB) ExternalDatabase DB_AS_REG(BuiltIn) DB_CC_REG(BuiltIn) DB_IPV4_REG(B uiltIn) DB_IPV6_REG(BuiltIn) DB_IEEE(BuiltIn)" \end_layout \begin_layout Paragraph* Special machine readable output options (>= 0.99.0) \end_layout \begin_layout Subparagraph Output filter by selecting a token (>= 0.99.0) \end_layout \begin_layout Standard Using option --mrst (Machine Readable Select Token) can be used to display only a selected token \end_layout \begin_layout Code $ ipv6calc -q -i --mrst IPV6_TYPE 2a01:238:423d:8800:85b3:9e6b:3019:8909 \end_layout \begin_layout Code IPV6_TYPE=unicast,global-unicast,productive,iid-random,iid,iid-local \end_layout \begin_layout Subparagraph Output filter by matching token (>= 0.99.0) \end_layout \begin_layout Standard Using option --mrmt (Machine Readable Match Token) can be used to display only matching tokens \end_layout \begin_layout Code $ ipv6calc -q -i --mrmt IP2LOCATION 2a01:238:423d:8800:85b3:9e6b:3019:8909 \end_layout \begin_layout Code IP2LOCATION_COUNTRY_SHORT=DE \end_layout \begin_layout Code IP2LOCATION_COUNTRY_LONG=Germany \end_layout \begin_layout Code IP2LOCATION_REGION=Berlin \end_layout \begin_layout Code IP2LOCATION_CITY=Berlin \end_layout \begin_layout Code IP2LOCATION_ZIPCODE=10178 \end_layout \begin_layout Code IP2LOCATION_LATITUDE=52.524368 \end_layout \begin_layout Code IP2LOCATION_LONGITUDE=13.410530 \end_layout \begin_layout Code IP2LOCATION_TIMEZONE_NAME=+01:00 \end_layout \begin_layout Code IP2LOCATION_DATABASE_INFO=IP2L-DB11 IPv6 20181226 Copyright (c) 2018 IP2Location All Rights Reserved \end_layout \begin_layout Subparagraph Output filter by selecting a value of a token token (>= 0.99.0) \end_layout \begin_layout Standard Using option --mrtvo (Machine Readable Token Value Only) can be used to display only thevalue of a selected token \end_layout \begin_layout Code $ ipv6calc -q -i --mrtvo IPV6_TYPE 2a01:238:423d:8800:85b3:9e6b:3019:8909 \end_layout \begin_layout Code unicast,global-unicast,productive,iid-random,iid,iid-local \end_layout \begin_layout Subparagraph Output adjustment by unconditional quoting of values (>= 0.99.0) \end_layout \begin_layout Standard Using option --mrqva (Machine Readable Quote Values Always) can be used to quote values always of a selected token \end_layout \begin_layout Code $ ipv6calc -q -i --mrqva --mrtvo IPV6_TYPE 2a01:238:423d:8800:85b3:9e6b:3019:890 9 \end_layout \begin_layout Code "unicast,global-unicast,productive,iid-random,iid,iid-local" \end_layout \begin_layout Subparagraph Output adjustment by unconditional disabling quoted values (>= 0.99.0) \end_layout \begin_layout Standard Using option --mrqvn (Machine Readable Quote Values Never) can be used to never quote values of a selected token \end_layout \begin_layout Code $ ipv6calc -q -i --mrqvn --mrst IPV6_AS_TEXT 2a01:238:423d:8800:85b3:9e6b:3019:8 909 \end_layout \begin_layout Code IPV6_AS_TEXT=AS6724 STRATO AG \end_layout \begin_layout Subparagraph Output adjustment by unconditional print token in case of empty value (>= 0.99.0) \end_layout \begin_layout Standard Using option --mrstpq (Machine Readable Select Token Print Always) can be used to print always token/value regardless it's contained \end_layout \begin_layout Code $ ipv6calc -q -i --mrqva --mrstpa IPV4 2a01:238:423d:8800:85b3:9e6b:3019:8909 \end_layout \begin_layout Code IPV4="" \end_layout \begin_layout Code $ ipv6calc -q -i --mrqva --mrst IPV4 2a01:238:423d:8800:85b3:9e6b:3019:8909 \end_layout \begin_layout Code (no output) \end_layout \begin_layout Subsubsection Filter mode \end_layout \begin_layout Standard \begin_inset Quotes eld \end_inset ipv6calc \begin_inset Quotes erd \end_inset can run in filter mode to be able to extract from a huge list of IPv4/IPv6 addresses ones which are interesting or ones which are not interesting (see printout of online help below). \end_layout \begin_layout Standard Filter tokens are the ones which are listed on \begin_inset Quotes eld \end_inset TYPE \begin_inset Quotes erd \end_inset lines shown in \begin_inset Quotes eld \end_inset -m -i \begin_inset Quotes erd \end_inset information mode. \end_layout \begin_layout Standard Example for searching for Teredo addresses: \end_layout \begin_layout Code $ cat ip.bieringer.de-log.201310 | awk '{ print $1 }' | sort | uniq | ipv6calc -A filter -E teredo \end_layout \begin_layout Code 2001:0:9d38:90d7:34f7:1a26:8599:e079 \end_layout \begin_layout Standard For more information see below \end_layout \begin_layout Standard Note: since version 0.95.0 '-A filter' is optional if option '-E ' is given (autoselected action). \end_layout \begin_layout Subsubsection Test mode \end_layout \begin_layout Standard Since 0.99.2 a test mode ('-A test', autoselected in case 'test_*' options are given) is implemented for address prefix or range \end_layout \begin_layout Standard For more information see below \end_layout \begin_layout Subsection Option style \end_layout \begin_layout Standard Since version 0.40 new-style option handling was introduced, using \end_layout \begin_layout Itemize --in \end_layout \begin_layout Itemize --out \end_layout \begin_layout Itemize --action \end_layout \begin_layout Standard and many more conversions were added. A built-in check matrix should prevent misconversions. \end_layout \begin_layout Standard Up to version 0.39, only old-style options (aka \begin_inset Quotes eld \end_inset shortcut \begin_inset Quotes erd \end_inset options). They are one-in-all options, specifying input/action/output in one token. Internally this options will be converted into new-style options. \end_layout \begin_layout Subsection Online help \end_layout \begin_layout Standard Online help always shows the currently implemented features. \end_layout \begin_layout Subsubsection Main online help: \end_layout \begin_layout Standard External database options only appear if compiled with related support. \end_layout \begin_layout Code $ ipv6calc -h \end_layout \begin_layout Code ipv6calc: version 3.0.0 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-T YPE-GEONAMEID \end_layout \begin_layout Code (P) & (C) 2001-2020 by Peter Bieringer \end_layout \begin_layout Code This program formats and calculates IPv6/IPv4/MAC addresses and can do many more tricky things \end_layout \begin_layout Code [-d|--debug ] : debug value (bitwise like) \end_layout \begin_layout Code can also be set by IPV6CALC_DEBUG environment value \end_layout \begin_layout Code [-v|--version [-v [-v]]] : version information (2 optional detail levels) \end_layout \begin_layout Code [-v|--version -h] : explanation of feature tokens \end_layout \begin_layout Code [-V|--verbose] : be more verbose \end_layout \begin_layout Code [-h|--help|-?] : this online help \end_layout \begin_layout Code \end_layout \begin_layout Code [--disable-ip2location ] : IP2Location support disabled \end_layout \begin_layout Code [--db-ip2location-disable ] : IP2Location support disabled \end_layout \begin_layout Code [--db-ip2location-dir ] : IP2Location database directory (default: /usr/share/IP2Location) \end_layout \begin_layout Code [--db-ip2location-only-type ]: IP2Location database only selected type (1-120) \end_layout \begin_layout Code [--db-ip2location-allow-softlinks] : IP2Location database softlinks allowed \end_layout \begin_layout Code by default they are ignored because it is hard to autodetect COMM/LITE/SAMP LE \end_layout \begin_layout Code [--db-ip2location-lite-to-sample-autoswitch-max-delta-months ]: \end_layout \begin_layout Code autoswitch from LITE to SAMPLE databases if possible and delta is not more than 12 months (0=disabled) \end_layout \begin_layout Code [--db-ip2location-comm-to-lite-switch-min-delta-months ]: \end_layout \begin_layout Code switch from COMM to LITE databases if possible and delta more than 12 months (0=disabled) \end_layout \begin_layout Code \end_layout \begin_layout Code [--disable-geoip2 ] : GeoIP(MaxMindDB) support disabled \end_layout \begin_layout Code [--db-geoip2-disable ] : GeoIP(MaxMindDB) support disabled \end_layout \begin_layout Code [--db-geoip2-dir ] : GeoIP(MaxMindDB) database directory (default: /usr/share/GeoIP) \end_layout \begin_layout Code \end_layout \begin_layout Code [--disable-dbip2 ] : db-ip.com(MaxMindDB) support disabled \end_layout \begin_layout Code [--db-dbip2-disable ] : db-ip.com(MaxMindDB) support disabled \end_layout \begin_layout Code [--db-dbip2-dir ] : db-ip.com(MaxMindDB) database directory (default: /usr/share/DBIP) \end_layout \begin_layout Code [--db-dbip2-only-type ] : db-ip.com(MaxMindDB) database only selected type (1-6) \end_layout \begin_layout Code [--db-dbip2-comm-to-free-switch-min-delta-months ]: \end_layout \begin_layout Code switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) \end_layout \begin_layout Code [--disable-external ] : External support disabled \end_layout \begin_layout Code \end_layout \begin_layout Code [--db-external-disable ] : External support disabled \end_layout \begin_layout Code [--db-external-dir ] : External database directory (default: /usr/share/ipv6calc/db) \end_layout \begin_layout Code [--disable-builtin ] : BuiltIn support disabled \end_layout \begin_layout Code [--db-builtin-disable ] : BuiltIn support disabled \end_layout \begin_layout Code \end_layout \begin_layout Code [--db-priorization [:...]] : Database priorization order list (overwrites default) \end_layout \begin_layout Code colon separated: GeoIP GeoIP2 IP2Locati on DBIP DBIP2 External BuiltIn \end_layout \begin_layout Code \end_layout \begin_layout Code Hint: all long options can be predefined from environment by using \end_layout \begin_layout Code prefix: IPV6CALC_ and conversion: '-' -> '_' and lowercase -> uppercase \end_layout \begin_layout Code example for options with values : --db-dbip2-dir= -> environment: IPV6CALC_DB_DBIP2_DIR= \end_layout \begin_layout Code example for options without values: --db-dbip2-disable -> environment: IPV6CALC_DB_DBIP2_DISABLE=1 \end_layout \begin_layout Code on|off|0|1 is supported \end_layout \begin_layout Code [-q|--quiet] : be more quiet (auto-enabled in pipe mode) \end_layout \begin_layout Code [-f|--flush] : flush each line in pipe mode \end_layout \begin_layout Code Usage with new style options: \end_layout \begin_layout Code [--in|-I ] : specify input type \end_layout \begin_layout Code (default: autodetect) \end_layout \begin_layout Code [--out|-O ] : specify output type \end_layout \begin_layout Code (sometimes: autodetect) \end_layout \begin_layout Code [--action|-A ] : specify action \end_layout \begin_layout Code (default: format conversion, sometimes: autodetect) \end_layout \begin_layout Code [ ...] : specify format options \end_layout \begin_layout Code [...] : input data \end_layout \begin_layout Code Available input types: [-m] -I|--in -?|-h|--help \end_layout \begin_layout Code Available output types: [-m] -O|--out -?|-h|--help \end_layout \begin_layout Code Available action types: [-m] -A|--action -?|-h|--help \end_layout \begin_layout Code Special filter action : -E -?|-h|--help \end_layout \begin_layout Code \end_layout \begin_layout Code Other usage: \end_layout \begin_layout Code --showinfo|-i [--machine_readable|-m] : show information about input data \end_layout \begin_layout Code --showinfo|-i --mrqva : Machine Readable Quote Values Always \end_layout \begin_layout Code --showinfo|-i --mrqvn : Machine Readable Quote Values Never \end_layout \begin_layout Code --showinfo|-i --mrst : Machine Readable Select Token \end_layout \begin_layout Code --showinfo|-i --mrstpa : Machine Readable Select Token Print Always \end_layout \begin_layout Code --showinfo|-i --mrmt : Machine Readable Match Token Prefix \end_layout \begin_layout Code --showinfo|-i --mrmts : Machine Readable Match Token Suffix \end_layout \begin_layout Code --showinfo|-i --mrtvo : Machine Readable Token Value Only \end_layout \begin_layout Code --showinfo|-i --show-tokens : show available tokens (aka types) on '-m' \end_layout \begin_layout Code \end_layout \begin_layout Code Usage with shortcut options: [ ...] \end_layout \begin_layout Code for more information and available format options use: -?|-h|--help \end_layout \begin_layout Code -r|--addr2ip6_int (-O revnibbles.int) \end_layout \begin_layout Code -r|--addr_to_ip6int (-O revnibbles.int) \end_layout \begin_layout Code -a|--addr2ip6_arpa (-O revnibbles.arpa) \end_layout \begin_layout Code -a|--addr_to_ip6arpa (-O revnibbles.arpa) \end_layout \begin_layout Code -b|--addr_to_bitstring (-O bitstring) \end_layout \begin_layout Code --addr2compaddr (--printcompressed) \end_layout \begin_layout Code --addr_to_compressed (--printcompressed) \end_layout \begin_layout Code --addr2uncompaddr (--printuncompressed) \end_layout \begin_layout Code --addr_to_uncompressed (--printuncompressed) \end_layout \begin_layout Code --addr_to_base85 (-I ipv6addr -O base85) \end_layout \begin_layout Code --base85_to_addr (-I base85 -O ipv6addr) \end_layout \begin_layout Code --mac_to_eui64 (-I mac -O eui64) \end_layout \begin_layout Code --addr2fulluncompaddr (--printfulluncompressed) \end_layout \begin_layout Code --addr_to_fulluncompressed (--printfulluncompressed) \end_layout \begin_layout Code --addr2if_inet6 (-I ipv6addr -O ifinet6) \end_layout \begin_layout Code --addr_to_ifinet6 (-I ipv6addr -O ifinet6) \end_layout \begin_layout Code --if_inet62addr (-I ifinet6 -O ipv6addr --printcompressed) \end_layout \begin_layout Code --ifinet6_to_compressed (-I ifinet6 -O ipv6addr --printcompressed) \end_layout \begin_layout Code --eui64_to_privacy (-I iid_token -O iid_token -A genprivacyiid) \end_layout \begin_layout Code --ipv4_to_6to4addr (-I ipv4 -O ipv6addr -A conv6to4) \end_layout \begin_layout Code --addr2cc (-A addr2cc) \end_layout \begin_layout Subsubsection Database options \end_layout \begin_layout Itemize each internal/external database can be disabled by option \end_layout \begin_layout Itemize directory of database files can be given via related option \end_layout \begin_layout Itemize databases requiring external library the library file can be given in case of dynamic load and linking \end_layout \begin_layout Itemize for geolocation databases specific file can be selected (see --db--onl y-type ) \end_layout \begin_layout Paragraph IP2Location \end_layout \begin_layout Standard IP2location database directory can contain a bunch of files, the best ones are selected automatically (since 0.99.0). \begin_inset Quotes eld \end_inset Best \begin_inset Quotes erd \end_inset can be controlled via two options: \end_layout \begin_layout Itemize --db-ip2location-lite-to-sample-autoswitch-max-delta-months : switches from LITE to SAMPLE databases in case of \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize existing SAMPLE database \end_layout \begin_layout Itemize SAMPLE database not older than default/given MONTHS than the LITE database \end_layout \begin_layout Itemize IP address is in range of SAMPLE database (IPv4: 0.0.0.0-99.255.255.255, IPv6: 2a04::/16) \end_layout \begin_layout Itemize autoswitch can be disabled by using MONTHS=0 \end_layout \begin_layout Itemize reason for implementation: show maximum possible IP2Location features \end_layout \end_deeper \begin_layout Itemize --db-ip2location-comm-to-lite-switch-min-delta-months : switches from COMMercial to LITE databases in case of \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize existing LITE database \end_layout \begin_layout Itemize COMMercial database is default/given MONTHS older than the LITE database \end_layout \begin_layout Itemize switch can be disabled by using MONTHS=0 \end_layout \begin_layout Itemize reason for implementation: avoid using old COMMercial databases \end_layout \end_deeper \begin_layout Itemize --db-ip2location-only-type : only selects databases of given type \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize reason for implementation: be able to select a specific database type \end_layout \end_deeper \begin_layout Itemize --db-ip2location-allow-softlinks: allow softlinked IP2Location database files \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize by default, softlinked database files are skipped, because it's hard to detect whether one is COMMercial, LITE or SAMPLE \end_layout \end_deeper \begin_layout Code \end_layout \begin_layout Standard use \begin_inset Quotes eld \end_inset ipv6calc -vv \begin_inset Quotes erd \end_inset or \begin_inset Quotes eld \end_inset ipv6calc -vvv \begin_inset Quotes erd \end_inset for verification, which databases are selected finally. \end_layout \begin_layout Subsubsection Input-type options \end_layout \begin_layout Code $ ipv6calc --in -? \end_layout \begin_layout Code ipv6calc: version 2.1.1 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-T YPE-GEONAMEID \end_layout \begin_layout Code (P) & (C) 2001-2019 by Peter Bieringer \end_layout \begin_layout Code Available input types: \end_layout \begin_layout Code auto : automatic detection \end_layout \begin_layout Code revnibbles.int : dot separated nibbles reverse, ending with ip6.int. \end_layout \begin_layout Code revnibbles.arpa : dot separated nibbles reverse, ending with ip6.arpa. \end_layout \begin_layout Code bitstring : bitstring labes, ending with ip6.arpa. \end_layout \begin_layout Code ipv6addr : IPv6 address \end_layout \begin_layout Code ipv6literal : IPv6 address in literal \end_layout \begin_layout Code ipv4addr : IPv4 address \end_layout \begin_layout Code ipv4hex : IPv4 in hexdecimal format \end_layout \begin_layout Code ipv4revhex : IPv4 in byte-reversed hexdecimal format \end_layout \begin_layout Code mac : MAC address (48 bits) \end_layout \begin_layout Code eui64 : EUI-64 identifier (64 bits) \end_layout \begin_layout Code base85 : Base-85 string \end_layout \begin_layout Code ifinet6 : Like line in /proc/net/if_inet6 \end_layout \begin_layout Code iid+token : Interface identifier and token \end_layout \begin_layout Code ipv6logconv : ipv6logconv (currently not supported) \end_layout \begin_layout Code prefix+mac : IPv6 prefix and a MAC address \end_layout \begin_layout Code asn : Autonomous System Number \end_layout \begin_layout Subsubsection Output-type options: \end_layout \begin_layout Code $ ipv6calc --out -? \end_layout \begin_layout Code ipv6calc: version 2.1.1 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-T YPE-GEONAMEID \end_layout \begin_layout Code (P) & (C) 2001-2019 by Peter Bieringer \end_layout \begin_layout Code Available output types: \end_layout \begin_layout Code revnibbles.int : dot separated nibbles reverse, ending with ip6.int. \end_layout \begin_layout Code revnibbles.arpa : dot separated nibbles reverse, ending with ip6.arpa. \end_layout \begin_layout Code bitstring : bitstring labes, ending with ip6.arpa. \end_layout \begin_layout Code ipv6addr : IPv6 address \end_layout \begin_layout Code ipv4addr : IPv4 address \end_layout \begin_layout Code mac : MAC address (48 bits) \end_layout \begin_layout Code eui64 : EUI-64 identifier (64 bits) \end_layout \begin_layout Code base85 : Base-85 string \end_layout \begin_layout Code ifinet6 : Like line in /proc/net/if_inet6 \end_layout \begin_layout Code iid : Interface identifier \end_layout \begin_layout Code iid+token : Interface identifier and token \end_layout \begin_layout Code addrtype : Address type \end_layout \begin_layout Code ouitype : OUI (IEEE) type \end_layout \begin_layout Code ipv6addrtype : IPv6 address type \end_layout \begin_layout Code any : any type (currently not supported) \end_layout \begin_layout Code revipv4 : reverse IPv4, ending with in-addr.arpa \end_layout \begin_layout Code ipv4hex : IPv4 in hexdecimal format \end_layout \begin_layout Code octal : IP address in escaped octal format \end_layout \begin_layout Code hex : IP address in hexadecimal format \end_layout \begin_layout Code ipv6literal : IPv6 address in literal \end_layout \begin_layout Code \end_layout \begin_layout Standard For examples and available format options use: \end_layout \begin_layout Code $ ipv6calc -O|--out --examples \end_layout \begin_layout Subsubsection Action-type options: \end_layout \begin_layout Code $ ipv6calc --action -? \end_layout \begin_layout Code ipv6calc: version 3.3.0 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID DB_IPV4_DUMP_CC DB_IPV6_DUMP_CC ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID (P) & (C) 2001-2021 by Peter Bieringer \end_layout \begin_layout Code Available action types: \end_layout \begin_layout Code auto : Automatic selection of action (default) \end_layout \begin_layout Code geneui64 : Converts a MAC address to an EUI-64 address \end_layout \begin_layout Code conv6to4 : Converts IPv4 address <-> 6to4 IPv6 address (prefix) \end_layout \begin_layout Code convnat64 : Converts IPv4 address <-> NAT64 IPv6 address \end_layout \begin_layout Code ipv6tomac : Extracts MAC of an IPv6 address (if detected) \end_layout \begin_layout Code ipv6toeui64 : Extracts EUI64 of an IPv6 address (if detected) \end_layout \begin_layout Code genprivacyiid : Generates a privacy interface ID out of a given one (arg1) and a token (arg2) \end_layout \begin_layout Code prefixmac2ipv6 : Generates an IPv6 address out of a prefix and a MAC address \end_layout \begin_layout Code anonymize : Anonymize IPv4/IPv6 address without loosing much informatio n \end_layout \begin_layout Code 6rd_local_prefix : Calculate the 6rd prefix from given IPv6 prefix (& relay prefix) and IPv4 \end_layout \begin_layout Code Options: \end_layout \begin_layout Code --6rd_prefix ... (required) \end_layout \begin_layout Code --6rd_relay_prefix ... (optional) \end_layout \begin_layout Code 6rd_extract_ipv4 : Extract from 6rd address the include IPv4 address \end_layout \begin_layout Code Options: \end_layout \begin_layout Code --6rd_prefixlength ... (required) \end_layout \begin_layout Code filter : Filter addresses related to filter options \end_layout \begin_layout Code test : Test address against given prefix or address \end_layout \begin_layout Code Options: \end_layout \begin_layout Code --test_prefix ... (optional) \end_layout \begin_layout Code --test_gt ... (optional) \end_layout \begin_layout Code --test_ge ... (optional) \end_layout \begin_layout Code --test_lt ... (optional) \end_layout \begin_layout Code --test_le ... (optional) \end_layout \begin_layout Code addr2cc : Converts IPv4/IPv6 address into Country Code \end_layout \begin_layout Code dbdump : Dump Database \end_layout \begin_layout Subsubsection Special action \begin_inset Quotes eld \end_inset filter \begin_inset Quotes erd \end_inset : \end_layout \begin_layout Standard Special action \begin_inset Quotes eld \end_inset filter \begin_inset Quotes erd \end_inset can be used especially in pipe mode to filter IP addresses related to their type and since 0.99.0 also related to database results (CountryCode, ASN or Registry). \end_layout \begin_layout Code $ ipv6calc --action filter -h \end_layout \begin_layout Code ipv6calc: version 2.1.1 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-T YPE-GEONAMEID \end_layout \begin_layout Code Filter given addresses from stdin by filter expression, e.g. \end_layout \begin_layout Code echo '2001:db8::1' | ipv6calc [-A filter] -E iid-local \end_layout \begin_layout Code echo '2001:db8::1' | ipv6calc [-A filter] -E iid-local,global-unicast \end_layout \begin_layout Code echo '2001:db8::1' | ipv6calc [-A filter] -E ^iid-random \end_layout \begin_layout Code (note: since version 0.95.0 '-A filter' is autoselected if option '-E ' is given) \end_layout \begin_layout Code negation of filter expression with prefix: ^ \end_layout \begin_layout Code IPv6 address filter tokens: \end_layout \begin_layout Code ipv6 unknown unicast multicast anycast loopback link-local site-local compat-v4 mapped reserved unique-local-unicast anonymized-iid anonymized-prefix 6to4 6bone global-unicast unspecified solicited-node productive 6to4-microsoft teredo orchid link-local-teredo nat64 iid-random iid iid-local iid-global iid-teredo iid-eui48 iid-eui64 iid-isatap iid-includes-ipv4 \end_layout \begin_layout Code IPv4 address filter tokens: \end_layout \begin_layout Code ipv4 any unicast multicast anycast broadcast loopback unspecified unknown reserved zeroconf site-local anonymized anonymized-geonameid global 6to4relay lisp lisp-proxyegresstunnelrouter-anycast lisp-mapresolver-anycast \end_layout \begin_layout Code IPv4/v6 address filter tokens based on databases: \end_layout \begin_layout Code [^][ipv4.|ipv6.]db.cc=|unknown (Country Code [2 chars]) \end_layout \begin_layout Code [^][ipv4.|ipv6.]db.asn=|unknown (Autonomous System Number) \end_layout \begin_layout Code [^][ipv4.|ipv6.]db.reg= \end_layout \begin_layout Code Registry tokens: 6BONE IANA APNIC ARIN RIPENCC LACNIC AFRINIC 6TO4 reserved unknown \end_layout \begin_layout Code IPv4/v6 address filter tokens based on address/mask: \end_layout \begin_layout Code [^]ipv4.addr=[] \end_layout \begin_layout Code [^]ipv6.addr=[] \end_layout \begin_layout Code IPv4/v6 address filter tokens based on address ranges (<=|<|>|>=): \end_layout \begin_layout Code [^]ipv4.addr(<=|<|>|>=) \end_layout \begin_layout Code [^]ipv6.addr(<=|<|>|>=) \end_layout \begin_layout Code as alternative in case <|> creating problems also supported: =(le|lt|gt|ge)=: \end_layout \begin_layout Code [^]ipv4.addr=(le|lt|gt|ge)= \end_layout \begin_layout Code [^]ipv6.addr=(le|lt|gt|ge)= \end_layout \begin_layout Code EUI-48/MAC address filter tokens: \end_layout \begin_layout Code IMPLEMENTATION MISSING \end_layout \begin_layout Code EUI-64 address filter tokens: \end_layout \begin_layout Code IMPLEMENTATION MISSING \end_layout \begin_layout Standard Example for some filter expressions: \end_layout \begin_layout Code $ cat ip.bieringer.de-log.201504 | ipv6calc -E ipv6.db.cc=DE | wc -l \end_layout \begin_layout Code 5068 \end_layout \begin_layout Code \end_layout \begin_layout Code $ cat ip.bieringer.de-log.201504 | ipv6calc -E ipv6.db.cc=US | wc -l \end_layout \begin_layout Code 305 \end_layout \begin_layout Code \end_layout \begin_layout Code $ cat ip.bieringer.de-log.201504 | ipv6calc -E ipv6.db.reg=ARIN | wc -l \end_layout \begin_layout Code 306 \end_layout \begin_layout Code \end_layout \begin_layout Code $ cat ip.bieringer.de-log.201504 | ipv6calc -E iid-random | wc -l \end_layout \begin_layout Code 4806 \end_layout \begin_layout Code \end_layout \begin_layout Code $ cat ip.bieringer.de-log.201504 | ipv6calc -E ipv6.db.cc=US,iid-random | wc -l \end_layout \begin_layout Code 16 \end_layout \begin_layout Code \end_layout \begin_layout Code $ cat ip.bieringer.de-log.201504 | ipv6calc -A filter -E ipv6.db.cc=US,iid-random,ipv 4.db.cc=US | wc -l \end_layout \begin_layout Code 1842 \end_layout \begin_layout Code \end_layout \begin_layout Code $ cat ip.bieringer.de-log.201504 | ipv6calc -A filter -E db.asn=8767 | wc -l \end_layout \begin_layout Code 2363 \end_layout \begin_layout Code $ cat ip.bieringer.de-log.201504 | ipv6calc -A filter -E ipv6.db.asn=8767 | wc -l \end_layout \begin_layout Code 1452 \end_layout \begin_layout Code $ cat ip.bieringer.de-log.201504 | ipv6calc -A filter -E ipv4.db.asn=8767 | wc -l \end_layout \begin_layout Code 911 \end_layout \begin_layout Standard Example for searching for addresses in a specific range (supported since 0.99.2): \end_layout \begin_layout Code $ cat ip.bieringer.de-log.201609 | awk '{ print $1 }' | sort | uniq | ipv6calc -E ipv6.addr=ge=2002::,ipv6.addr=lt=2003:: \end_layout \begin_layout Code 2002:2518:0:1:2:3:4:5 \end_layout \begin_layout Code ... \end_layout \begin_layout Code 2002:d950:0:1:2:3:4:5 \end_layout \begin_layout Subsubsection Special action \begin_inset Quotes eld \end_inset test \begin_inset Quotes erd \end_inset : \end_layout \begin_layout Standard Special action \begin_inset Quotes eld \end_inset test \begin_inset Quotes erd \end_inset (since 0.99.2) can be used in command line or pipe mode (single address only) to test IP addresses related to a given prefix or range . \end_layout \begin_layout Code $ ipv6calc -A test -? \end_layout \begin_layout Code ipv6calc: version 2.1.1 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-T YPE-GEONAMEID \end_layout \begin_layout Code Test given address(es) against supported tests: \end_layout \begin_layout Code --test_prefix : inside a prefix \end_layout \begin_layout Code --test_gt|--test_ge
: greater(/equal) than an address \end_layout \begin_layout Code --test_lt|--test_le
: less(/equal) than an address \end_layout \begin_layout Code Test given address(es) from stdin, e.g. \end_layout \begin_layout Code echo '2001:db8::1' | ipv6calc [-A test] --test_prefix 2001:db8::/32 \end_layout \begin_layout Code echo '2001:db8::1' | ipv6calc [-A test] --test_prefix 2001:db9::/32 \end_layout \begin_layout Code Single address test, return code: 0=inside/matching 1=outside/not-matching 2=uncomparable \end_layout \begin_layout Code ipv6calc [-A test] --test_prefix 2001:db8::/32 2001:db8::1 \end_layout \begin_layout Code ipv6calc [-A test] --test_prefix 2001:db9::/32 2001:db8::1 \end_layout \begin_layout Code ipv6calc [-A test] --test_ge 2001:db8:: --test_le 2001:db8:ffff:ffff:ffff:ffff :ffff:ffff 2001:db8::1 \end_layout \begin_layout Code ipv6calc [-A test] --test_ge 2001:db9:: --test_le 2001:db9:ffff:ffff:ffff:ffff :ffff:ffff 2001:db8::1 \end_layout \begin_layout Code ipv6calc [-A test] --test_ge 2001:db9:: --test_lt 2001:dba:: 2001:db8::1 \end_layout \begin_layout Code ipv6calc [-A test] --test_ge 2001:db8:: --test_lt 2001:db9:: 2001:db8::1 \end_layout \begin_layout Standard Example for command line mode: \end_layout \begin_layout Code $ ipv6calc --test_ge 2001:db8:: --test_le 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff 2001:db8::1; echo $? \end_layout \begin_layout Code no input type specified, try autodetection...found type: ipv6addr \end_layout \begin_layout Code no output type specified, try autodetection...found type: ipv6addr \end_layout \begin_layout Code 2001:db8::1 greater/equal than 2001:db8:: less/equal than 2001:db8:ffff:ffff: ffff:ffff:ffff:ffff \end_layout \begin_layout Code 0 \end_layout \begin_layout Standard Example for command line mode (quiet): \end_layout \begin_layout Code $ ipv6calc -q --test_ge 2001:db8:: --test_le 2001:db8:ffff:ffff:ffff:ffff:ffff:f fff 2001:db8::1; echo $? \end_layout \begin_layout Code 2001:db8::1 greater/equal than 2001:db8:: less/equal than 2001:db8:ffff:ffff: ffff:ffff:ffff:ffff \end_layout \begin_layout Code 0 \end_layout \begin_layout Standard Example for pipe mode: \end_layout \begin_layout Code $ echo -e "1.2.3.4 \backslash n1.2.4.4" | ipv6calc --test_prefix 1.2.3.0/24 \end_layout \begin_layout Code 1.2.3.4 inside 1.2.3.0/24 \end_layout \begin_layout Code 1.2.4.4 NOT inside 1.2.3.0/24 \end_layout \begin_layout Subsubsection Special action \begin_inset Quotes eld \end_inset conv6to4 \begin_inset Quotes erd \end_inset : \end_layout \begin_layout Standard Special action \begin_inset Quotes eld \end_inset conv6to4 \begin_inset Quotes erd \end_inset (since at least 0.99.1) can be used in command line or pipe mode to convert 6to4-IPv6 in IPv4 addresses and vice versa. \end_layout \begin_layout Code $ ipv6calc: version 3.2.1 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO ANON_ZEROISE ANON_ANONYMIZE \end_layout \begin_layout Code Convert IPv4 to 6to4 prefix / extract IPv4 from 6to4 prefix \end_layout \begin_layout Code ipv6calc -A conv6to4 192.0.2.1 -> 2002:c000:201:: \end_layout \begin_layout Code ipv6calc -A conv6to4 192.0.2.1/24 -> 2002:c000:200::/40 \end_layout \begin_layout Code ipv6calc -A conv6to4 192.0.2.0/24 -> 2002:c000:200::/40 \end_layout \begin_layout Code ipv6calc -A conv6to4 2002:c000:201:: -> 192.0.2.1 \end_layout \begin_layout Code ipv6calc -A conv6to4 2002:c000:201::/40 -> 192.0.2.0/24 \end_layout \begin_layout Code See '-O ipv4 -h' or '-O ipv6 -h' for optional output modifications \end_layout \begin_layout Code Can also be used in PIPE mode to convert a list of IP addresses/networks \end_layout \begin_layout Code \end_layout \begin_layout Standard Example for command line mode: \end_layout \begin_layout Code $ ipv6calc -q -A conv6to4 192.0.2.1 \end_layout \begin_layout Code 2002:c000:201:: \end_layout \begin_layout Code \end_layout \begin_layout Standard Example for pipe mode: \end_layout \begin_layout Code echo -e "1.2.3.4 \backslash n1.2.4.4" | ipv6calc -A conv6to4 \end_layout \begin_layout Code 2002:102:304:: \end_layout \begin_layout Code 2002:102:404:: \end_layout \begin_layout Code \end_layout \begin_layout Code $ echo -e "1.2.3.0/24 \backslash n1.2.4.0/24" | ipv6calc -A conv6to4 \end_layout \begin_layout Code 2002:102:300::/40 \end_layout \begin_layout Code 2002:102:400::/40 \end_layout \begin_layout Subsubsection Special action \begin_inset Quotes eld \end_inset dbdump \begin_inset Quotes erd \end_inset : \end_layout \begin_layout Standard Since version 3.3.0, action \begin_inset Quotes eld \end_inset dbdump \begin_inset Quotes erd \end_inset is provided \end_layout \begin_layout Itemize Version >= 3.3.0: database \begin_inset Quotes eld \end_inset External \begin_inset Quotes erd \end_inset , type: IPv4/IPv6 addresses, suppported filter: CountryCode \end_layout \begin_layout Standard Precondition: created/updated \begin_inset Quotes eld \end_inset External \begin_inset Quotes erd \end_inset database \end_layout \begin_layout Code $ /usr/share/ipv6calc/tools/ipv6calc-db-update.sh \end_layout \begin_layout Code ... \end_layout \begin_layout Standard Precondition: active \begin_inset Quotes eld \end_inset database dump \begin_inset Quotes erd \end_inset support \end_layout \begin_layout Code $ ipv6calc -vv 2>&1 | grep -E '(DB_IPV4_DUMP_CC|DB_IPV6_DUMP_CC)' \end_layout \begin_layout Code ipv6calc: version 3.3.0 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID DB_IPV4_DUMP_CC DB_IPV6_DUMP_CC ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID \end_layout \begin_layout Code DB_IPV4_DUMP_CC (IPv4 Database Dump by CountryCode): External \end_layout \begin_layout Code DB_IPV6_DUMP_CC (IPv6 Database Dump by CountryCode): External \end_layout \begin_layout Standard Precondition: recognized \begin_inset Quotes eld \end_inset External \begin_inset Quotes erd \end_inset database \end_layout \begin_layout Code $ ipv6calc -vv 2>&1 | grep -E '(External: IPv. CountryCode)' \end_layout \begin_layout Code External: IPv4 CountryCode : ipv6calc-external-ipv4-countrycode.db (EXTDB-3/AFRINIC/20210919 APNIC/20210917 ARIN/20210919 IANA/20210205 LACNIC/202 10918 LISP/20200318 RIPENCC/20210918, created: 20210919-152957 UTC) \end_layout \begin_layout Code External: IPv6 CountryCode : ipv6calc-external-ipv6-countrycode.db (EXTDB-4/AFRINIC/20210919 APNIC/20210917 ARIN/20210919 IANA/20191106 LACNIC/202 10918 LISP/20200318 RIPENCC/20210918, created: 20210919-155049 UTC) \end_layout \begin_layout Standard Usage Example: dump all IPv4 networks which have not \begin_inset Quotes eld \end_inset unknown \begin_inset Quotes erd \end_inset CountryCode \end_layout \begin_layout Code $ ipv6calc -A dbdump -E ^ipv4.db.cc=unknown \end_layout \begin_layout Code # 'External' database dump (with 121894 entries) start with filter IPv4 && CountryCode(s): ^unknown (suppress this line with option '-q') \end_layout \begin_layout Code 1.0.0.0/24 \end_layout \begin_layout Code 1.0.1.0/24 \end_layout \begin_layout Code ... \end_layout \begin_layout Code # 'External' database dump finished displaying 121894 entries with filter IPv4 && CountryCode(s): ^unknown (suppress this line with option '-q') \end_layout \begin_layout Standard Usage Example: dump all IPv6 networks of a given CountryCode \end_layout \begin_layout Code $ ipv6calc -A dbdump -E ipv6.db.cc=VN \end_layout \begin_layout Code # 'External' database dump (with 56097 entries) start with filter IPv6 && CountryCode(s): VN (suppress this line with option '-q') \end_layout \begin_layout Code 2001:7fa:6::/28 \end_layout \begin_layout Code 2001:dc8::/28 \end_layout \begin_layout Code ... \end_layout \begin_layout Code # 'External' database dump finished displaying 344 entries with filter IPv6 && CountryCode(s): VN (suppress this line with option '-q') \end_layout \begin_layout Standard Usage Example: dump all IPv4 networks of two given CountryCodes \end_layout \begin_layout Code $ ipv6calc -A dbdump -E ipv4.db.cc=VN,ipv4.db.cc=CN \end_layout \begin_layout Code # 'External' database dump (with 121894 entries) start with filter IPv4 && CountryCode(s): VN CN (suppress this line with option '-q') \end_layout \begin_layout Code 1.0.1.0/24 \end_layout \begin_layout Code 1.0.2.0/23 \end_layout \begin_layout Code ... \end_layout \begin_layout Code # 'External' database dump finished displaying 4631 entries with filter IPv4 && CountryCode(s): VN CN (suppress this line with option '-q') \end_layout \begin_layout Standard Usage Example: dump all IPv4 networks of a given CountryCode incl. automatic conversion into 6to4 addresses \end_layout \begin_layout Code $ ipv6calc -A dbdump -E ipv4.db.cc=VN -I ipv4 -O ipv6to4 \end_layout \begin_layout Code # 'External' database dump (with 121894 entries) start with filter IPv4 && CountryCode(s): VN (output format: 6to4) (suppress this line with option '-q') \end_layout \begin_layout Code 2002:134::/30 \end_layout \begin_layout Code 2002:e00:1000::/36 \end_layout \begin_layout Code ... \end_layout \begin_layout Code # 'External' database dump finished displaying 569 entries with filter IPv4 && CountryCode(s): VN (output format: 6to4) (suppress this line with option '-q') \end_layout \begin_layout Standard Usage Example: dump all IPv6to4 networks of a given CountryCode in \begin_inset Quotes eld \end_inset ipset restore \begin_inset Quotes erd \end_inset compatible format and create/update \begin_inset Quotes eld \end_inset ipset \begin_inset Quotes erd \end_inset (related \begin_inset Quotes eld \end_inset sudo \begin_inset Quotes erd \end_inset command whitelist have to be created in advance) \end_layout \begin_layout Code $ ipv6calc -A dbdump -E ipv4.db.cc=VN -I ipv4 -O ipv6to4 -q --print-ipset Net_VN_IPv6to4 >/path/to/ipset-Net_VN_IPv6to4.txt \end_layout \begin_layout Code \end_layout \begin_layout Code $ sudo ipset restore -f /path/to/ipset-Net_VN_IPv6to4.txt \end_layout \begin_layout Code \end_layout \begin_layout Code $ sudo ipset list Net_VN_IPv6to4 -t \end_layout \begin_layout Code Name: Net_VN_IPv6to4 \end_layout \begin_layout Code Type: hash:net \end_layout \begin_layout Code Revision: 7 \end_layout \begin_layout Code Header: family inet6 hashsize 1024 maxelem 65536 bucketsize 12 initval 0x30b0bda f \end_layout \begin_layout Code Size in memory: 41344 \end_layout \begin_layout Code References: 0 \end_layout \begin_layout Code Number of entries: 723 \end_layout \begin_layout Standard Hint: try also helper script for 'ipset' management \end_layout \begin_layout Code $ tools/ipv6calc-create-update-ipset.sh \end_layout \begin_layout Section Webserver log conversion helper program "ipv6logconv" \end_layout \begin_layout Standard This program parses address tokens of a given webserver logfile and converts them to special strings, useful for statistics (e.g. created by using "analog"). \end_layout \begin_layout Subsection Supported options \end_layout \begin_layout Code $ ipv6logconv -h \end_layout \begin_layout Code ipv6logconv: version 2.1.1 CONV_REG CONV_IEEE \end_layout \begin_layout Code (P) & (C) 2002-2019 by Peter Bieringer \end_layout \begin_layout Code This program converts IPv4/IPv6 addresses in HTTP server log files \end_layout \begin_layout Code [-d|--debug ] : debug value (bitwise like) \end_layout \begin_layout Code can also be set by IPV6CALC_DEBUG environment value \end_layout \begin_layout Code [-v|--version [-v [-v]]] : version information (2 optional detail levels) \end_layout \begin_layout Code [-v|--version -h] : explanation of feature tokens \end_layout \begin_layout Code [-V|--verbose] : be more verbose \end_layout \begin_layout Code [-h|--help|-?] : this online help \end_layout \begin_layout Code Performance options: \end_layout \begin_layout Code [-n|--nocache] : disable caching \end_layout \begin_layout Code [-c|--cachelimit ] : set cache limit \end_layout \begin_layout Code default: 20 \end_layout \begin_layout Code maximum: 200 \end_layout \begin_layout Code Output options: \end_layout \begin_layout Code [--out ] : specify output type \end_layout \begin_layout Code addrtype : Address type \end_layout \begin_layout Code ouitype : OUI (IEEE) type \end_layout \begin_layout Code ipv6addrtype : IPv6 address type \end_layout \begin_layout Code any : any type \end_layout \begin_layout Code Takes data from stdin, proceed it to stdout \end_layout \begin_layout Subsection Examples \end_layout \begin_layout Standard A demonstration about which kind of statistics are possible to produce is shown at \begin_inset CommandInset href LatexCommand href name "http://www.ipv6.bieringer.de/" target "http://www.ipv6.bieringer.de/" literal "false" \end_inset (IPv6 only). \end_layout \begin_layout Subsection Usage \end_layout \begin_layout Standard Example: \end_layout \begin_layout Code $ echo "2002:50b5:7940:0000:0000:0000:50b5:7940 - -" | ipv6logconv -q --out any \end_layout \begin_layout Code RIPENCC.6to4.global-unicast.ipv6-addr.addrtype.ipv6calc \end_layout \begin_layout Standard See more examples inside the package. \end_layout \begin_layout Section Webserver log anonymization helper program "ipv6loganon" \end_layout \begin_layout Standard On autoconfiguration, the interface part of an IPv6 address is based on the MAC address of the network interface card (NIC). This address is used for outgoing requests, if privacy option (RFC3041 / RFC4941) is not enabled. This results in many privacy related information on web- or mail-server log files. Administrators, which won't (be allowed to) store such information over time, but still do not want to loose information about address type distributio n should use 'ipv6loganon' to anonymize their log files. \end_layout \begin_layout Standard Since version 0.94.0 internally also IID anonymization is possible without loosing any information for \begin_inset Quotes eld \end_inset ipv6logstats \begin_inset Quotes erd \end_inset . \end_layout \begin_layout Standard Since version 0.95.0 internally also prefix anonymization is possible without loosing any information for \begin_inset Quotes eld \end_inset ipv6logstats \begin_inset Quotes erd \end_inset . \end_layout \begin_layout Subsection Anonymization details \end_layout \begin_layout Subsubsection Method \begin_inset Quotes eld \end_inset zeroize \begin_inset Quotes erd \end_inset \end_layout \begin_layout Standard The anonymizer would keep as much information as possible for IPv6 address types. \end_layout \begin_layout Standard Client-side IID would be anonymized by \end_layout \begin_layout Itemize EUI-48 based: serial number would be zero'ed, keeping OID \end_layout \begin_layout Itemize EUI-64 based: serial number would be zero'ed, keeping OID \end_layout \begin_layout Itemize ISATAP: client IPv4 address would be anonymized by given IPv4 mask \end_layout \begin_layout Itemize TEREDO: client IPv4 address would be anonymized by given IPv4 mask, client port would be zero'ed \end_layout \begin_layout Itemize 6to4(Microsoft): client IPv4 address would be anonymized by given IPv4 mask \end_layout \begin_layout Itemize local: whole IID would be zero'ed \end_layout \begin_layout Standard Client-side SLA would be anonymized by \end_layout \begin_layout Itemize SLA would be zero'ed \end_layout \begin_layout Standard Prefix would be anonymized by \end_layout \begin_layout Itemize 6to4: client IPv4 address would be anonymized by given IPv4 mask \end_layout \begin_layout Standard Compat/Mapped IPv4 addresses would be anonymized by \end_layout \begin_layout Itemize IPv4 address would be anonymized by given IPv4 mask \end_layout \begin_layout Subsubsection Method \begin_inset Quotes eld \end_inset anonmize \begin_inset Quotes erd \end_inset \end_layout \begin_layout Standard The anonymizer would keep as much information as possible for the IID of an IPv6 address. \end_layout \begin_layout Standard Description from libipv6addr.h: \end_layout \begin_layout Code * IID anonymization is done by replacing with related information (64-bit) \end_layout \begin_layout Code * xxxx:xxxx:xxxx:xxxC (C = 4-bit checksum) \end_layout \begin_layout Code * \end_layout \begin_layout Code * a9p9 4941 0000 000C -> RFC 4941 anonymized privacy extension Interface ID \end_layout \begin_layout Code * \end_layout \begin_layout Code * a9p9 4291 4xxx xxxC -> RFC 4291 anonymized EUI-48 Interface ID, xxx xxx = converted OUI \end_layout \begin_layout Code * a9p9 4291 5xxx xxxC -> RFC 4291 anonymized EUI-48 Interface ID, xxx xxx = converted mapped IAB/OUI-36 \end_layout \begin_layout Code * a9p9 4291 6xxx xxxC -> RFC 4291 anonymized EUI-64 Interface ID, xxx xxx = converted OUI \end_layout \begin_layout Code * a9p9 4291 7xxx xxxC -> RFC 4291 anonymized EUI-64 Interface ID, xxx xxx = converted mapped IAB/OUI-36 \end_layout \begin_layout Code * a9p9 4291 8xxx xxxC -> RFC 4291 embedded anonymized IPv4 address, xxx xxx = first 24 bit of included (anonymized) IPv4 address \end_layout \begin_layout Code * a9p9 4291 c02d 5d1C -> RFC 4291 Chapter 2.5.1 anonymized static Interface ID \end_layout \begin_layout Code * \end_layout \begin_layout Code * a9p9 5214 4xxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included (anonymized) IPv4 address (local scope) \end_layout \begin_layout Code * a9p9 5214 5xxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included (anonymized) IPv4 address (global scope) \end_layout \begin_layout Code * a9p9 5214 cxx0 000C -> RFC 5214 anonymized ISATAP Interface ID, xx = first 8 bit of included vendor ID (local scope) \end_layout \begin_layout Code * a9p9 5214 dxx0 000C -> RFC 5214 anonymized ISATAP Interface ID, xx = first 8 bit of included vendor ID (global scope) \end_layout \begin_layout Code * a9p9 5214 exxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included extension ID (local scope) \end_layout \begin_layout Code * a9p9 5214 fxxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included extension ID (global scope) \end_layout \begin_layout Code * \end_layout \begin_layout Code * a9p9 4843 0000 000C -> RFC 4843 anonymized ORCHID hash \end_layout \begin_layout Standard Depending on given mask, the part of the prefix will be replaced: \end_layout \begin_layout Code * SLA/NLA prefix part anonymization is done by replacing with pattern a909a909 \end_layout \begin_layout Code * p = number of nibbles anonymized \end_layout \begin_layout Subsubsection Method \begin_inset Quotes eld \end_inset keep-type-asn-cc \begin_inset Quotes erd \end_inset \end_layout \begin_layout Standard In addition to \begin_inset Quotes eld \end_inset anonymize \begin_inset Quotes erd \end_inset (of IID) this method anonymizes also the prefix of an IPv6 address or a whole IPv4 address by keeping ASN (Autonomous System Number, Country Code and Type). \end_layout \begin_layout Standard Description from libipv6addr.h: \end_layout \begin_layout Code * Prefix anonymization in case of method=kp: p=0x0f \end_layout \begin_layout Code * a909:ccca:aaaa:aaaC (C = 4-bit checksum) \end_layout \begin_layout Code * ccc -> 10-bit Country Code mapping [A-Z]*[A-Z0-9] (936) \end_layout \begin_layout Code * 0x3FD = LISP \end_layout \begin_layout Code * 0x3FE = unknown country \end_layout \begin_layout Code * 0x3FF - 16 + REGISTRY_6BONE && ASN=0 = 6bone \end_layout \begin_layout Code * 0x000-0x3A7: c1= c / 36, c2 = c % 36 \end_layout \begin_layout Code * aaaaaaaa -> 32-bit ASN \end_layout \begin_layout Standard Description from libipv4addr.h: \end_layout \begin_layout Code * Global IPv4 addresses are anoymized by storing country code and AS number \end_layout \begin_layout Code * and using prefix of experimental range (240-255.x.y.z) \end_layout \begin_layout Code * \end_layout \begin_layout Code * 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 \end_layout \begin_layout Code * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 \end_layout \begin_layout Code * 1 1 1 1 \end_layout \begin_layout Code * |p p p p| \end_layout \begin_layout Code * Prefix \end_layout \begin_layout Code * 0xF \end_layout \begin_layout Code * \end_layout \begin_layout Code * Pariy Bit (odd parity) \end_layout \begin_layout Code * |P| \end_layout \begin_layout Code * \end_layout \begin_layout Code * Mapping of Country Code \end_layout \begin_layout Code * |c c c c c c c c c c| \end_layout \begin_layout Code * 10-bit Country Code mapping [A-Z]*[A-Z0-9] (936) \end_layout \begin_layout Code * 0x3FF = unknown country \end_layout \begin_layout Code * 0x000-0x3A7: c1= c / 36, c2 = c % 36 \end_layout \begin_layout Code * \end_layout \begin_layout Code * Mapping of ASN <= 65535 \end_layout \begin_layout Code * 0|a a a a a a a a a a a a a a a a| \end_layout \begin_layout Code * 16-bit ASN \end_layout \begin_layout Code * \end_layout \begin_layout Code * Mapping of ASN >= 65536, ASN & 0xE000 == 0 (12-bit LSB is ok) \end_layout \begin_layout Code * 1|r r r|0|l l l l l l l l l l l l| \end_layout \begin_layout Code * 13-bit LSB of ASN \end_layout \begin_layout Code * \end_layout \begin_layout Code * Mapping of ASN >= 65536, ASN & 0xE000 != 0 (12-bit LSB overflow) => unspecifi ed \end_layout \begin_layout Code * 1|r r r|1|0 0 0 0 0 0 0 0 0 0 0 0| \end_layout \begin_layout Code * \end_layout \begin_layout Code * Mapping of ASN registry for ASN >= 65536 \end_layout \begin_layout Code * 0 0 0 = "unknown ASN registry" \end_layout \begin_layout Code * 0 1 0 = APNIC \end_layout \begin_layout Code * 0 1 1 = RIPE \end_layout \begin_layout Code * 1 0 0 = LACNIC \end_layout \begin_layout Code * 1 0 1 = AFRINIC \end_layout \begin_layout Code * 1 1 0 = ARIN \end_layout \begin_layout Code * Mapping of LISP \end_layout \begin_layout Code * 1|r r r|1|1|0 0 0 0 0 0 0 0 0 0 0| \end_layout \begin_layout Subsubsection Method \begin_inset Quotes eld \end_inset keep-type-geonameid \begin_inset Quotes erd \end_inset \end_layout \begin_layout Standard In difference to keep-type-asn-cc this method anonymizes the prefix of an IPv6 address or a whole IPv4 address by keeping the GeonameID and Type. \end_layout \begin_layout Standard Description from libipv6addr.h: \end_layout \begin_layout Code * a909:sssg:gggg:gggC (C = 4-bit checksum) \end_layout \begin_layout Code * sss -> 10-bit source mapping \end_layout \begin_layout Code * GeonameID source information \end_layout \begin_layout Code * 0x000 = unknown \end_layout \begin_layout Code * 0x001 = continent (prio: lowest) \end_layout \begin_layout Code * 0x002 = country \end_layout \begin_layout Code * 0x003 = state/prov \end_layout \begin_layout Code * 0x004 = district \end_layout \begin_layout Code * 0x005 = city (prio: highest) \end_layout \begin_layout Code * 0x006 = (reserved) \end_layout \begin_layout Code * 0x007 = LISP \end_layout \begin_layout Code * 0x0r. = registry \end_layout \begin_layout Code * -> 2 leftmost bit are |0 1| \end_layout \begin_layout Code * gggggggg -> 32-bit GeonameID \end_layout \begin_layout Code * 0x11800 = LISP \end_layout \begin_layout Standard Description from libipv4addr.h: \end_layout \begin_layout Code * IPv4 address anonymization type "keep-type-geonameid" \end_layout \begin_layout Code * Global IPv4 addresses are anonymized by storing GeonameID \end_layout \begin_layout Code * and using prefix of experimental range (240-255.x.y.z) \end_layout \begin_layout Code * \end_layout \begin_layout Code * 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 \end_layout \begin_layout Code * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 \end_layout \begin_layout Code * 1 1 1 1 \end_layout \begin_layout Code * |p p p p| \end_layout \begin_layout Code * Prefix \end_layout \begin_layout Code * 0xF \end_layout \begin_layout Code * \end_layout \begin_layout Code * Parity Bit (even parity) \end_layout \begin_layout Code * |P| \end_layout \begin_layout Code * \end_layout \begin_layout Code * Mapping of GeonameID source \end_layout \begin_layout Code * |s s s| \end_layout \begin_layout Code * 3-bit GeonameID source information \end_layout \begin_layout Code * 0 0 0 (0x0) = unknown \end_layout \begin_layout Code * 0 0 1 (0x1) = continent (prio: lowest) \end_layout \begin_layout Code * 0 1 0 (0x2) = country \end_layout \begin_layout Code * 0 1 1 (0x3) = state/prov \end_layout \begin_layout Code * 1 0 0 (0x4) = district \end_layout \begin_layout Code * 1 0 1 (0x5) = city (prio: highest) \end_layout \begin_layout Code * 1 1 0 (0x6) = (reserved) \end_layout \begin_layout Code * 1 1 1 (0x7) = LISP \end_layout \begin_layout Code * \end_layout \begin_layout Code * Mapping of GeonameID (limited to IDs < 2^24, in worst case ID from source with lower prio is used) \end_layout \begin_layout Code * |g g g g g g g g g g g g g g g g g g g g g g g g| \end_layout \begin_layout Code * \end_layout \begin_layout Code * Mapping of LISP registry \end_layout \begin_layout Code * 0 0 0 = "unknown ASN registry" \end_layout \begin_layout Code * 0 1 0 = APNIC \end_layout \begin_layout Code * 0 1 1 = RIPE \end_layout \begin_layout Code * 1 0 0 = LACNIC \end_layout \begin_layout Code * 1 0 1 = AFRINIC \end_layout \begin_layout Code * 1 1 0 = ARIN \end_layout \begin_layout Code * |0 0 0 0 0 0 0 1 r r r 1 1 0 0 0 0 0 0 0 0 0 0 0| \end_layout \begin_layout Subsection Supported log file formats \end_layout \begin_layout Standard Currently native supported log files: \end_layout \begin_layout Itemize Apache log file format, 1st token is IPv4 or IPv6 address \end_layout \begin_layout Standard There are plans to support also mail server log files sometimes in the future, but because of different formats, this would be probably done by a Perl program which parses the log file and a (cached) 'ip6calc' call with action 'anonymize'. \end_layout \begin_layout Subsection Supported options \end_layout \begin_layout Code $ ipv6loganon -h \end_layout \begin_layout Code ipv6loganon: version 2.1.1 ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID \end_layout \begin_layout Code (P) & (C) 2007-2019 by Peter Bieringer \end_layout \begin_layout Code This program anonymizes IPv4/IPv6 addresses in e.g. HTTP server log files \end_layout \begin_layout Code [-d|--debug ] : debug value (bitwise like) \end_layout \begin_layout Code can also be set by IPV6CALC_DEBUG environment value \end_layout \begin_layout Code [-v|--version [-v [-v]]] : version information (2 optional detail levels) \end_layout \begin_layout Code [-v|--version -h] : explanation of feature tokens \end_layout \begin_layout Code [-V|--verbose] : be more verbose \end_layout \begin_layout Code [-h|--help|-?] : this online help \end_layout \begin_layout Code [-q|--quiet] : be more quiet \end_layout \begin_layout Code [--disable-ip2location ] : IP2Location support disabled \end_layout \begin_layout Code [--db-ip2location-disable ] : IP2Location support disabled \end_layout \begin_layout Code [--db-ip2location-dir ] : IP2Location database directory (default: /usr/share/IP2Location) \end_layout \begin_layout Code [--db-ip2location-lib ] : IP2Location library file (default: libIP2Location.so) \end_layout \begin_layout Code [--db-ip2location-only-type ]: IP2Location database only selected type (1-120) \end_layout \begin_layout Code [--db-ip2location-allow-softlinks] : IP2Location database softlinks allowed \end_layout \begin_layout Code by default they are ignored because it is hard to autodetect COMM/LITE/SAMP LE \end_layout \begin_layout Code [--db-ip2location-lite-to-sample-autoswitch-max-delta-months ]: \end_layout \begin_layout Code autoswitch from LITE to SAMPLE databases if possible and delta is not more than 12 months (0=disabled) \end_layout \begin_layout Code [--db-ip2location-comm-to-lite-switch-min-delta-months ]: \end_layout \begin_layout Code switch from COMM to LITE databases if possible and delta more than 12 months (0=disabled) \end_layout \begin_layout Code [--disable-geoip ] : GeoIP support disabled \end_layout \begin_layout Code [--db-geoip-disable ] : GeoIP support disabled \end_layout \begin_layout Code [--db-geoip-dir ] : GeoIP database directory (default: /usr/share/GeoIP) \end_layout \begin_layout Code [--db-geoip-lib ] : GeoIP library file (default: libGeoIP.so.1) \end_layout \begin_layout Code [--db-mmdb-lib ] : MaxMindDB library file (default: libmaxminddb.so.0) \end_layout \begin_layout Code [--disable-geoip2 ] : GeoIP (MaxMindDB) support disabled \end_layout \begin_layout Code [--db-geoip2-disable ] : GeoIP (MaxMindDB) support disabled \end_layout \begin_layout Code [--db-geoip2-dir ] : GeoIP (MaxMindDB) database directory (default: /usr/share/GeoIP) \end_layout \begin_layout Code [--disable-dbip2 ] : db-ip.com (MaxMindDB) support disabled \end_layout \begin_layout Code [--db-dbip2-disable ] : db-ip.com (MaxMindDB) support disabled \end_layout \begin_layout Code [--db-dbip2-dir ] : db-ip.com (MaxMindDB) database directory (default: /usr/share/DBIP) \end_layout \begin_layout Code [--db-dbip2-only-type ] : db-ip.com (MaxMindDB) database only selected type (1-10) \end_layout \begin_layout Code [--db-dbip2-comm-to-free-switch-min-delta-months ]: \end_layout \begin_layout Code switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) \end_layout \begin_layout Code [--disable-dbip ] : db-ip.com support disabled \end_layout \begin_layout Code [--db-dbip-disable ] : db-ip.com support disabled \end_layout \begin_layout Code [--db-dbip-dir ] : db-ip.com database directory (default: /usr/share/DBIP) \end_layout \begin_layout Code [--db-dbip-only-type ] : db-ip.com database only selected type (1-10) \end_layout \begin_layout Code [--db-dbip-comm-to-free-switch-min-delta-months ]: \end_layout \begin_layout Code switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) \end_layout \begin_layout Code [--disable-external ] : External support disabled \end_layout \begin_layout Code [--db-external-disable ] : External support disabled \end_layout \begin_layout Code [--db-external-dir ] : External database directory (default: /usr/share/ipv6calc/db) \end_layout \begin_layout Code [--disable-builtin ] : BuiltIn support disabled \end_layout \begin_layout Code [--db-builtin-disable ] : BuiltIn support disabled \end_layout \begin_layout Code [--db-priorization [:...]] : Database priorization order list (overwrites default) \end_layout \begin_layout Code colon separated: GeoIP GeoIP2 IP2Locati on DBIP DBIP2 External BuiltIn \end_layout \begin_layout Code [-w|--write] : write output to file instead of stdout \end_layout \begin_layout Code [-a|--append] : append output to file instead of stdout \end_layout \begin_layout Code [-f|--flush] : flush output after each line \end_layout \begin_layout Code [-V|--verbose] : be verbose \end_layout \begin_layout Code [-n|--nocache] : disable caching \end_layout \begin_layout Code [-c|--cachelimit ] : set cache limit \end_layout \begin_layout Code default: 20 \end_layout \begin_layout Code maximum: 200 \end_layout \begin_layout Code Shortcut for anonymization presets: \end_layout \begin_layout Code --anonymize-standard (default) \end_layout \begin_layout Code --anonymize-careful \end_layout \begin_layout Code --anonymize-paranoid \end_layout \begin_layout Code Supported methods [--anonymize-method METHOD]: \end_layout \begin_layout Code anonymize : reliable anonymization, keep as much type information as possible \end_layout \begin_layout Code zeroize : simple zeroizing according to given masks, probably loose type information \end_layout \begin_layout Code keep-type-asn-cc: special reliable anonymization, keep type & Autonomous System Number and CountryCode \end_layout \begin_layout Code keep-type-geonameid: special reliable anonymization, keep type & GeonameID \end_layout \begin_layout Code Available presets (shortcut names) [--anonymize-preset|ap PRESET-NAME]: \end_layout \begin_layout Code anonymize-standard (as): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac= 24 mask-autoadjust=yes method=anonymize \end_layout \begin_layout Code anonymize-careful (ac): mask-ipv6= 48 mask-ipv4=20 mask-eui64=24 mask-mac= 24 mask-autoadjust=yes method=anonymize \end_layout \begin_layout Code anonymize-paranoid (ap): mask-ipv6= 40 mask-ipv4=16 mask-eui64= 0 mask-mac= 24 mask-autoadjust=no method=anonymize \end_layout \begin_layout Code zeroize-standard (zs): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac= 24 mask-autoadjust=yes method=zeroize \end_layout \begin_layout Code zeroize-careful (zc): mask-ipv6= 48 mask-ipv4=20 mask-eui64=24 mask-mac= 24 mask-autoadjust=yes method=zeroize \end_layout \begin_layout Code zeroize-paranoid (zp): mask-ipv6= 40 mask-ipv4=16 mask-eui64= 0 mask-mac= 24 mask-autoadjust=no method=zeroize \end_layout \begin_layout Code keep-type-asn-cc (kp): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac= 24 mask-autoadjust=yes method=keep-type-asn-cc \end_layout \begin_layout Code keep-type-geonameid (kg): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac= 24 mask-autoadjust=yes method=keep-type-geonameid \end_layout \begin_layout Code Custom control: \end_layout \begin_layout Code --mask-ipv4 : mask IPv4 address [0-32] (even if occurs in IPv6 address) \end_layout \begin_layout Code --mask-ipv6 : mask IPv6 prefix [0-64] (only applied to related address types) \end_layout \begin_layout Code --mask-eui64 : mask EUI-64 address or IPv6 interface identifier [0-64] \end_layout \begin_layout Code --mask-mac : mask MAC address [0-48] \end_layout \begin_layout Code --mask-autoadjust yes|no: autoadjust mask to keep type/vendor information regardless of less given mask \end_layout \begin_layout Code Takes data from stdin, outputs the processed data to stdout (default) \end_layout \begin_layout Subsection Usage \end_layout \begin_layout Subsubsection Offline anonymization \end_layout \begin_layout Code $ cat /path/to/http_log | ./ipv6loganon >/path/to/http_log_anonymized \end_layout \begin_layout Subsubsection On-the-fly online anonymization for Apache Webserver \end_layout \begin_layout Quotation Note: since 0.91.1 also a module for Apache Webserver is available (see below) supporting anonymized logging \end_layout \begin_layout Standard (Supported since 0.90.0) \end_layout \begin_layout Standard Adjust or add (note: more than one CustomLog directive is supported by Apache) httpd.conf like following: \end_layout \begin_layout Code CustomLog "|/usr/local/bin/ipv6loganon -a -f /var/log/httpd/access_log" combined \end_layout \begin_layout Standard In case of \begin_inset Quotes eld \end_inset cronolog \begin_inset Quotes erd \end_inset is used on the system, configure like this: \end_layout \begin_layout Itemize Apache version < 2.4: \end_layout \begin_layout Code CustomLog "|/usr/bin/ipv6loganon -f |/usr/sbin/cronolog /var/log/httpd/access.log -%Y%m%d" combined \end_layout \begin_layout Itemize Apache version >= 2.4: \end_layout \begin_layout Code CustomLog "|$/usr/bin/ipv6loganon -f |/usr/sbin/cronolog /var/log/httpd/access.lo g-%Y%m%d" combined \end_layout \begin_layout Section External database update helper scripts \end_layout \begin_layout Standard The \begin_inset Quotes eld \end_inset tools \begin_inset Quotes erd \end_inset subdirectory contains helper scripts for updating external databases. \end_layout \begin_layout Subsection IP2Location \end_layout \begin_layout Code $ /usr/share/ipv6calc/tools/IP2Location-update.sh -h \end_layout \begin_layout Code Usage: IP2Location-update.sh [-D ] [-n] [-s] \end_layout \begin_layout Code -D database destination directory (optional) \end_layout \begin_layout Code -n no action (dry-run) \end_layout \begin_layout Code -s skip already successfully downloaded files \end_layout \begin_layout Code \end_layout \begin_layout Code database directory: /usr/share/IP2Location (default: /usr/share/IP2Location) \end_layout \begin_layout Code \end_layout \begin_layout Code it honors externally defined environment value: IP2LOCATION_DAT_DIR \end_layout \begin_layout Code \end_layout \begin_layout Code this script will download data from ip2location.com \end_layout \begin_layout Code into given/set database directory \end_layout \begin_layout Code \end_layout \begin_layout Code Sample databases: \end_layout \begin_layout Code IP2LOCATION_DAT_FILES_SAMPLE=IPv4:20 IPv6:20 IPv4:24 IPv6:24 \end_layout \begin_layout Code \end_layout \begin_layout Code Lite (free) databases: \end_layout \begin_layout Code IP2LOCATION_DAT_FILES_LITE_FREE=IPv4:1 IPv6:1 \end_layout \begin_layout Code \end_layout \begin_layout Code With authentication (requires login/password in /home/compile/.ip2location) and a valid subscription \end_layout \begin_layout Code IP2LOCATION_DAT_FILES_LITE= \end_layout \begin_layout Code \end_layout \begin_layout Code Credentials must be defined in $HOME/.ip2location by \end_layout \begin_layout Code login=IP2LOCATION-LOGIN \end_layout \begin_layout Code password=IP2LOCATION-PASSWORD \end_layout \begin_layout Code \end_layout \begin_layout Code In addition settings from above can be overwritten by setting related variables \end_layout \begin_layout Subsection GeoIP \end_layout \begin_layout Standard Just note that old database format (version 1) is no longer supported for free download, ipv6calc >= 2.0.0 supports also MaxMindDB format, ipv6calc >= 3.0.0 drops legacy download capability \end_layout \begin_layout Code $ /usr/share/ipv6calc/tools/GeoIP-update.sh -h \end_layout \begin_layout Code Usage: GeoIP-update.sh [-D ] [-v] [-s] [-L] [-G] \end_layout \begin_layout Code -s skip download \end_layout \begin_layout Code -D database directory (optional) \end_layout \begin_layout Code -v verbose \end_layout \begin_layout Code database directory: @GEOIP2_DB@ (default: @GEOIP2_DB@) \end_layout \begin_layout Code it honors externally defined environment value: \end_layout \begin_layout Code prio 1: GEOIP_DAT_DIR \end_layout \begin_layout Code prio 2: IPV6CALC_DB_GEOIP2_DIR \end_layout \begin_layout Code adjust /etc/GeoIP.conf in advance: \end_layout \begin_layout Code EditionIDs GeoLite2-Country GeoLite2-City GeoLite2-ASN \end_layout \begin_layout Code (in case a valid license key exists, add key and extend EditionIDs related) \end_layout \begin_layout Code see also https://dev.maxmind.com/geoip/geoipupdate/ \end_layout \begin_layout Subsection DB-IP.com \end_layout \begin_layout Standard Since ipv6calc >= 2.0.0 supports also MaxMindDB format, so download of CSV files and converting them into BerkeleyDB format is no longer required. \end_layout \begin_layout Code $ /usr/share/ipv6calc/tools/DBIP-update.sh -h \end_layout \begin_layout Code Usage: DBIP-update.sh [-v] [-s] [-D ] [-U ] [-T ] \end_layout \begin_layout Code -s skip download \end_layout \begin_layout Code -v verbose \end_layout \begin_layout Code -D database directory (optional) \end_layout \begin_layout Code -U use URL to download full database \end_layout \begin_layout Code -T set type of via URL downloaded file \end_layout \begin_layout Code MMDB: country|isp|location|*location-isp* \end_layout \begin_layout Code CSV : isp|location|*full* \end_layout \begin_layout Code database directory: /usr/share/DBIP (default: /usr/share/DBIP) \end_layout \begin_layout Code it honors externally defined environment value: \end_layout \begin_layout Code prio 1: DBIP_DAT_DIR \end_layout \begin_layout Code prio 2: IPV6CALC_DB_DBIP2_DIR \end_layout \begin_layout Code this script will download data from \end_layout \begin_layout Code DB-IP.com (default: free versions) the MaxMindDB (mmdb) files DB files for ipv6calc \end_layout \begin_layout Code "DBIP" database support \end_layout \begin_layout Code DBIP_DAT_URL_BASE=http://download.db-ip.com/free/ \end_layout \begin_layout Code DBIP_DAT_FILES=dbip-country-lite-%Y-%m.mmdb.gz dbip-city-lite-%Y-%m.mmdb.gz \end_layout \begin_layout Code in case -U (take URL from subscription e-mail) is provided, it downloads the database \end_layout \begin_layout Code use -T in case it's not "location-isp" \end_layout \begin_layout Subsection External \end_layout \begin_layout Code $ /usr/share/ipv6calc/tools/ipv6calc-db-update.sh -h \end_layout \begin_layout Code Usage: ipv6calc-db-update.sh [-s] [-u] [-D ] \end_layout \begin_layout Code -s skip download \end_layout \begin_layout Code -u unconditional update \end_layout \begin_layout Code -D database directory (optional) \end_layout \begin_layout Code \end_layout \begin_layout Code database directory: /usr/share/ipv6calc/db (default: /usr/share/ipv6calc/db) \end_layout \begin_layout Code \end_layout \begin_layout Code it honors externally defined environment value: IPV6CALC_DAT_DIR \end_layout \begin_layout Code \end_layout \begin_layout Code this script (and its helper scripts) will download data from \end_layout \begin_layout Code registries and generate Berkeley DB files for ipv6calc \end_layout \begin_layout Code "external" database support \end_layout \begin_layout Section Perl CGI wrapper program "ipv6calcweb.cgi" \end_layout \begin_layout Standard Because calling C programs directly as CGI isn't really recommended (too much security troubles all the time), I wrote a small wrapper utility which calls "ipv6calc" to get information about client and server address for displaying on a web page. \end_layout \begin_layout Subsection Examples \end_layout \begin_layout Standard A demonstration about which kind of output is possible to produce is shown at \end_layout \begin_layout Itemize \begin_inset CommandInset href LatexCommand href name "http://ip.bieringer.net/" target "http://ip.bieringer.net/" literal "false" \end_inset (IPv4/IPv6) \end_layout \begin_layout Itemize \begin_inset CommandInset href LatexCommand href name "http://www.ipv6.bieringer.de/" target "http://www.ipv6.bieringer.de/" literal "false" \end_inset (IPv6 only) \end_layout \begin_layout Itemize \begin_inset CommandInset href LatexCommand href name "http://mirrors.bieringer.de/" target "http://mirrors.bieringer.de/" literal "false" \end_inset (IPv4/IPv6) \end_layout \begin_layout Section Webserver log statistics helper program "ipv6logstats" \end_layout \begin_layout Standard This program parses a given webserver logfile and count addresses, useful for time period statistics. \end_layout \begin_layout Standard Since version 0.95.0 it has extended output, adding a date/time line and statistic s by Country Code and ASN (if required databases are available). \end_layout \begin_layout Subsection Supported options \end_layout \begin_layout Code $ ipv6logstats -h \end_layout \begin_layout Code ipv6logstats: version 2.1.1 STAT_REG STAT_CC STAT_AS \end_layout \begin_layout Code (P) & (C) 2003-2019 by Peter Bieringer \end_layout \begin_layout Code Takes web server log data (or any other data which has IPv4/v6 address in first column) \end_layout \begin_layout Code from stdin and print statistics table/list (depending on option) to stdout \end_layout \begin_layout Code [-d|--debug ] : debug value (bitwise like) \end_layout \begin_layout Code can also be set by IPV6CALC_DEBUG environment value \end_layout \begin_layout Code [-v|--version [-v [-v]]] : version information (2 optional detail levels) \end_layout \begin_layout Code [-v|--version -h] : explanation of feature tokens \end_layout \begin_layout Code [-V|--verbose] : be more verbose \end_layout \begin_layout Code [-h|--help|-?] : this online help \end_layout \begin_layout Code [-q|--quiet] : be more quiet \end_layout \begin_layout Code [--disable-ip2location ] : IP2Location support disabled \end_layout \begin_layout Code [--db-ip2location-disable ] : IP2Location support disabled \end_layout \begin_layout Code [--db-ip2location-dir ] : IP2Location database directory (default: /usr/share/IP2Location) \end_layout \begin_layout Code [--db-ip2location-lib ] : IP2Location library file (default: libIP2Location.so) \end_layout \begin_layout Code [--db-ip2location-only-type ]: IP2Location database only selected type (1-120) \end_layout \begin_layout Code [--db-ip2location-allow-softlinks] : IP2Location database softlinks allowed \end_layout \begin_layout Code by default they are ignored because it is hard to autodetect COMM/LITE/SAMP LE \end_layout \begin_layout Code [--db-ip2location-lite-to-sample-autoswitch-max-delta-months ]: \end_layout \begin_layout Code autoswitch from LITE to SAMPLE databases if possible and delta is not more than 12 months (0=disabled) \end_layout \begin_layout Code [--db-ip2location-comm-to-lite-switch-min-delta-months ]: \end_layout \begin_layout Code switch from COMM to LITE databases if possible and delta more than 12 months (0=disabled) \end_layout \begin_layout Code [--disable-geoip ] : GeoIP support disabled \end_layout \begin_layout Code [--db-geoip-disable ] : GeoIP support disabled \end_layout \begin_layout Code [--db-geoip-dir ] : GeoIP database directory (default: /usr/share/GeoIP) \end_layout \begin_layout Code [--db-geoip-lib ] : GeoIP library file (default: libGeoIP.so.1) \end_layout \begin_layout Code [--db-mmdb-lib ] : MaxMindDB library file (default: libmaxminddb.so.0) \end_layout \begin_layout Code [--disable-geoip2 ] : GeoIP (MaxMindDB) support disabled \end_layout \begin_layout Code [--db-geoip2-disable ] : GeoIP (MaxMindDB) support disabled \end_layout \begin_layout Code [--db-geoip2-dir ] : GeoIP (MaxMindDB) database directory (default: /usr/share/GeoIP) \end_layout \begin_layout Code [--disable-dbip2 ] : db-ip.com (MaxMindDB) support disabled \end_layout \begin_layout Code [--db-dbip2-disable ] : db-ip.com (MaxMindDB) support disabled \end_layout \begin_layout Code [--db-dbip2-dir ] : db-ip.com (MaxMindDB) database directory (default: /usr/share/DBIP) \end_layout \begin_layout Code [--db-dbip2-only-type ] : db-ip.com (MaxMindDB) database only selected type (1-10) \end_layout \begin_layout Code [--db-dbip2-comm-to-free-switch-min-delta-months ]: \end_layout \begin_layout Code switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) \end_layout \begin_layout Code [--disable-dbip ] : db-ip.com support disabled \end_layout \begin_layout Code [--db-dbip-disable ] : db-ip.com support disabled \end_layout \begin_layout Code [--db-dbip-dir ] : db-ip.com database directory (default: /usr/share/DBIP) \end_layout \begin_layout Code [--db-dbip-only-type ] : db-ip.com database only selected type (1-10) \end_layout \begin_layout Code [--db-dbip-comm-to-free-switch-min-delta-months ]: \end_layout \begin_layout Code switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) \end_layout \begin_layout Code [--disable-external ] : External support disabled \end_layout \begin_layout Code [--db-external-disable ] : External support disabled \end_layout \begin_layout Code [--db-external-dir ] : External database directory (default: /usr/share/ipv6calc/db) \end_layout \begin_layout Code [--disable-builtin ] : BuiltIn support disabled \end_layout \begin_layout Code [--db-builtin-disable ] : BuiltIn support disabled \end_layout \begin_layout Code [--db-priorization [:...]] : Database priorization order list (overwrites default) \end_layout \begin_layout Code colon separated: GeoIP GeoIP2 IP2Locati on DBIP DBIP2 External BuiltIn \end_layout \begin_layout Code [-u|--unknown] : print unknown IP addresses to stderr \end_layout \begin_layout Code [-c|--columns] : print statistics in columns (1) \end_layout \begin_layout Code [-N|--column-numbers] : print column numbers \end_layout \begin_layout Code [-n|--noheader] : don't print header in columns mode (1) \end_layout \begin_layout Code [-o|--onlyheader] : print only header in columns mode (1) \end_layout \begin_layout Code [-p|--prefix ] : print token as prefix (1) \end_layout \begin_layout Code [-s|--simple] : disable extended statistic (CountryCode/ASN) \end_layout \begin_layout Code (1) unsupported for CountryCode & ASN statistics \end_layout \begin_layout Subsection Usage \end_layout \begin_layout Standard There are a README and some helper scripts available in the package how to use this program and how to generate a graph using Gnuplot. \end_layout \begin_layout Subsubsection Line-by-line output \end_layout \begin_layout Standard The example shows output version 3.0, which \end_layout \begin_layout Code $ zcat ip.bieringer.de-log.201*.gz | ipv6logstats \end_layout \begin_layout Standard Header section, since output version 3.0 (>= 0.95.0) additional lines starting with '*3*' and '*DateTime' and '*UnixTime' included \end_layout \begin_layout Code *Version 3.0 \end_layout \begin_layout Code *DateTime: 2013:11:03 08:57:01+0000 GMT \end_layout \begin_layout Code *UnixTime: 1383469021 \end_layout \begin_layout Code *3*DB-Info: DB features: 0x0000133f \end_layout \begin_layout Code *3*DB-Info: GeoIP: features: 0x00000330 \end_layout \begin_layout Code *3*DB-Info: GeoIP: info of available databases in directory: /usr/share/GeoIP (max: 31) \end_layout \begin_layout Code *3*DB-Info: GeoIP: GeoIP Country Edition :[ 1] /usr/share/GeoIP/GeoIP. dat (GEO-106FREE 20130903 Build 1 Copyright (c) 2013 MaxMind Inc All Rights Reserved) \end_layout \begin_layout Code *3*DB-Info: GeoIP: GeoIP ASNum Edition :[ 9] /usr/share/GeoIP/GeoIP ASNum.dat (GEO-117 20130902 Build 1 Copyright (c) 2013 MaxMind Inc All Rights Reserved) \end_layout \begin_layout Code *3*DB-Info: GeoIP: GeoIP Country V6 Edition :[12] /usr/share/GeoIP/GeoIP v6.dat (GEO-106FREE 20131001 Build 1 Copyright (c) 2013 MaxMind Inc All Rights Reserved) \end_layout \begin_layout Code *3*DB-Info: GeoIP: GeoIP Large Country Edition :[17] /usr/share/GeoIP/GeoIP. dat (GEO-106FREE 20130903 Build 1 Copyright (c) 2013 MaxMind Inc All Rights Reserved) \end_layout \begin_layout Code *3*DB-Info: GeoIP: GeoIP Large Country V6 Edition :[18] /usr/share/GeoIP/GeoIP v6.dat (GEO-106FREE 20131001 Build 1 Copyright (c) 2013 MaxMind Inc All Rights Reserved) \end_layout \begin_layout Code *3*DB-Info: GeoIP: GeoIP ASNum V6 Edition :[21] /usr/share/GeoIP/GeoIP ASNumv6.dat (GEO-117 20130306 Build 1 Copyright (c) 2013 MaxMind Inc All Rights Reserved) \end_layout \begin_layout Code *3*DB-Info: IP2Location: features: 0x00000300 \end_layout \begin_layout Code *3*DB-Info: IP2Location: info of available databases in directory: /usr/share/IP 2Location \end_layout \begin_layout Code *3*DB-Info: IP2Location: IPv4 Country : /usr/share/IP2Location/IP- COUNTRY.BIN (IP2L-DB20 20130411 Copyright (c) 2013 IP2Location All Rights Reserved) \end_layout \begin_layout Code *3*DB-Info: IP2Location: IPv6 Country : /usr/share/IP2Location/IPV 6-COUNTRY.BIN (IP2L-DB1 20131025 Copyright (c) 2013 IP2Location All Rights Reserved) \end_layout \begin_layout Code *3*DB-Info: BuiltIn: features: 0x0000100f \end_layout \begin_layout Code *3*DB-Info: BuiltIn: info of available databases \end_layout \begin_layout Code *3*DB-Info: BuiltIn: ASN : IANA/20130730 \end_layout \begin_layout Code *3*DB-Info: BuiltIn: CC : AFRINIC/20130806 APNIC/20130805 ARIN/20130805 LACNIC/20130805 RIPENCC/20130805 \end_layout \begin_layout Code *3*DB-Info: BuiltIn: IPv4 : AFRINIC/20131014 APNIC/20131014 ARIN/20131014 IANA/20130520 LACNIC/20131014 RIPENCC/20131014 \end_layout \begin_layout Code *3*DB-Info: BuiltIn: IPv6 : AFRINIC/20131015 APNIC/20131014 ARIN/20131014 IANA/20130215 LACNIC/20131014 RIPENCC/20131014 \end_layout \begin_layout Code *3*DB-Info: BuiltIn: IEEE : IAB/20131015 OUI/20131015 OUI36/20131015 \end_layout \begin_layout Standard Simple statistics section \end_layout \begin_layout Code ALL 108525 \end_layout \begin_layout Code IPv4 46233 \end_layout \begin_layout Code IPv6 62292 \end_layout \begin_layout Code UNKNOWN 0 \end_layout \begin_layout Code IPv4/APNIC 2397 \end_layout \begin_layout Code IPv4/ARIN 3525 \end_layout \begin_layout Code IPv4/RIPE 40198 \end_layout \begin_layout Code IPv4/LACNIC 97 \end_layout \begin_layout Code IPv4/UNKNOWN 16 \end_layout \begin_layout Code IPv6/6bone 0 \end_layout \begin_layout Code IPv6/IANA 0 \end_layout \begin_layout Code IPv6/APNIC 129 \end_layout \begin_layout Code IPv6/ARIN 839 \end_layout \begin_layout Code IPv6/RIPE 61074 \end_layout \begin_layout Code IPv6/LACNIC 0 \end_layout \begin_layout Code IPv6/RESERVED 0 \end_layout \begin_layout Code IPv6/UNKNOWN 0 \end_layout \begin_layout Code IPv6/6to4/IANA 0 \end_layout \begin_layout Code IPv6/6to4/APNIC 0 \end_layout \begin_layout Code IPv6/6to4/ARIN 16 \end_layout \begin_layout Code IPv6/6to4/RIPE 51 \end_layout \begin_layout Code IPv6/6to4/LACNIC 0 \end_layout \begin_layout Code IPv6/6to4/RESERVED 0 \end_layout \begin_layout Code IPv6/6to4/UNKNOWN 0 \end_layout \begin_layout Code IPv6/Teredo/IANA 0 \end_layout \begin_layout Code IPv6/Teredo/APNIC 63 \end_layout \begin_layout Code IPv6/Teredo/ARIN 0 \end_layout \begin_layout Code IPv6/Teredo/RIPE 90 \end_layout \begin_layout Code IPv6/Teredo/LACNIC 30 \end_layout \begin_layout Code IPv6/Teredo/RESERVED 0 \end_layout \begin_layout Code IPv6/Teredo/UNKNOWN 0 \end_layout \begin_layout Code IPv6/NAT64/IANA 0 \end_layout \begin_layout Code IPv6/NAT64/APNIC 0 \end_layout \begin_layout Code IPv6/NAT64/ARIN 0 \end_layout \begin_layout Code IPv6/NAT64/RIPE 0 \end_layout \begin_layout Code IPv6/NAT64/LACNIC 0 \end_layout \begin_layout Code IPv6/NAT64/RESERVED 0 \end_layout \begin_layout Code IPv6/NAT64/UNKNOWN 0 \end_layout \begin_layout Code IPv6/IID/Global 1436 \end_layout \begin_layout Code IPv6/IID/Random 58198 \end_layout \begin_layout Code IPv6/IID/Manual 2055 \end_layout \begin_layout Code IPv6/IID/ISATAP 353 \end_layout \begin_layout Code IPv6/IID/Unknown 0 \end_layout \begin_layout Standard External database supported output since output version 3.0 (>= 0.95.0) \end_layout \begin_layout Itemize Country Code / Proto \end_layout \begin_layout Code ... \end_layout \begin_layout Code *3*CC-code-proto/DE/ALL 96450 \end_layout \begin_layout Code *3*CC-code-proto/DE/IPv4 36486 \end_layout \begin_layout Code *3*CC-code-proto/DE/IPv6 59964 \end_layout \begin_layout Code *3*CC-code-proto-list/DE 96450 36486 59964 \end_layout \begin_layout Code ... \end_layout \begin_layout Itemize Proto / Country Code ( \begin_inset Quotes eld \end_inset ALL \begin_inset Quotes erd \end_inset line contains: ALL IPv4 IPv6) \end_layout \begin_layout Code ... \end_layout \begin_layout Code *3*CC-proto-code/ALL/DE 96450 \end_layout \begin_layout Code *3*CC-proto-code/IPv4/DE 36486 \end_layout \begin_layout Code *3*CC-proto-code/IPv6/DE 59964 \end_layout \begin_layout Code ... \end_layout \begin_layout Code *3*CC-proto-code-list/ALL 108525 46483 62042 \end_layout \begin_layout Itemize Autonomous System number / Proto \end_layout \begin_layout Code ... \end_layout \begin_layout Code *3*AS-num-proto/8767/ALL 6054 \end_layout \begin_layout Code *3*AS-num-proto/8767/IPv4 2705 \end_layout \begin_layout Code *3*AS-num-proto/8767/IPv6 3349 \end_layout \begin_layout Code *3*AS-num-proto-list/8767 6054 2705 3349 \end_layout \begin_layout Code ... \end_layout \begin_layout Itemize Proto / Autonomous System number ( \begin_inset Quotes eld \end_inset ALL \begin_inset Quotes erd \end_inset line contains: ALL IPv4 IPv6) \end_layout \begin_layout Code ... \end_layout \begin_layout Code *3*AS-proto-num/ALL/8767 6054 \end_layout \begin_layout Code *3*AS-proto-num/IPv4/8767 2705 \end_layout \begin_layout Code *3*AS-proto-num/IPv6/8767 3349 \end_layout \begin_layout Code ... \end_layout \begin_layout Code *3*AS-proto-num-list/ALL 108525 46483 62042 \end_layout \begin_layout Subsubsection Column output \end_layout \begin_layout Standard Column output does not support version 3 extension, only simple statistics with a header line: \end_layout \begin_layout Code $ zcat ip.bieringer.de-log.201*.gz | ipv6logstats -q -c \end_layout \begin_layout Code IPv4 IPv6 UNKNOWN IPv4/APNIC IPv4/ARIN IPv4/RIPE IPv4/LACNIC IPv4/UNKNOWN IPv6/6bone IPv6/IANA IPv6/APNIC IPv6/ARIN IPv6/RIPE IPv6/LACNIC IPv6/RESERVED IPv6/UNKNOWN IPv6/6to4/IANA IPv6/6to4/APNIC IPv6/6to4/ARIN IPv6/6to4/RIPE IPv6/6to4/LACNIC IPv6/6to4/RESERVED IPv6/6to4/UNKNOWN IPv6/Teredo/IANA IPv6/Teredo/APNIC IPv6/Teredo/ARIN IPv6/Teredo/RIPE IPv6/Teredo/LACNIC IPv6/Teredo/RESERVED IPv6/Teredo/UNKNOWN IPv6/NAT64/IANA IPv6/NAT64/APNIC IPv6/NAT64/ARIN IPv6/NAT64/RIPE IPv6/NAT64/LACNIC IPv6/NAT64/RESERVED IPv6/NAT6 4/UNKNOWN IPv6/IID/Global IPv6/IID/Random IPv6/IID/Manual IPv6/IID/ISATAP IPv6/IID/Unknown \end_layout \begin_layout Code 46233 62292 0 2397 3525 40198 97 16 0 0 129 839 61074 0 0 0 0 0 16 51 0 0 0 0 63 0 90 30 0 0 0 0 0 0 0 0 0 1436 58198 2055 353 0 \end_layout \begin_layout Standard An optional prefix token can be given ( \begin_inset Quotes eld \end_inset -p \begin_inset Quotes erd \end_inset ) to create e.g. in a for-loop one line per month and put month in front of statistics, also the header line can be suppressed ( \begin_inset Quotes eld \end_inset -n \begin_inset Quotes erd \end_inset ). \end_layout \begin_layout Code $ zcat ip.bieringer.de-log.201*.gz | ipv6logstats -q -c -n -p ALL \end_layout \begin_layout Code ALL 46233 62292 0 2397 3525 40198 97 16 0 0 129 839 61074 0 0 0 0 0 16 51 0 0 0 0 63 0 90 30 0 0 0 0 0 0 0 0 0 1436 58198 2055 353 0 \end_layout \begin_layout Subsection Examples \end_layout \begin_layout Standard A demonstration with real data is available at \begin_inset CommandInset href LatexCommand href name "http://mirrors.bieringer.de/stats/timeline.html" target "http://mirrors.bieringer.de/stats/timeline.html" literal "false" \end_inset . \end_layout \begin_layout Section Apache web server module \begin_inset Quotes eld \end_inset mod_ipv6calc \begin_inset Quotes erd \end_inset \end_layout \begin_layout Standard This Apache web server module (since version 0.99.1, released 2015) interfaces with internal ipv6calc library to support \end_layout \begin_layout Itemize Client IP address anonymization \begin_inset Quotes eld \end_inset on-the-fly \begin_inset Quotes erd \end_inset , exported to IPV6CALC_CLIENT_IP_ANON \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize depending on the configured anonymization method 3rd party database is required \end_layout \end_deeper \begin_layout Itemize Country code of client IP address, exported to IPV6CALC_CLIENT_COUNTRYCODE \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize requires 3rd party database: GeoIP or IP2Location or DB-IP.com \end_layout \end_deeper \begin_layout Itemize Autonomous System Number (ASN) of client IP address, exported to IPV6CALC_CLIENT _ASN \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize requires 3rd party database: GeoIP \end_layout \end_deeper \begin_layout Itemize Registry of client IP address, exported to IPV6CALC_CLIENT_REGISTRY \begin_inset Separator latexpar \end_inset \end_layout \begin_deeper \begin_layout Itemize requires internal or \begin_inset Quotes eld \end_inset external \begin_inset Quotes erd \end_inset database \end_layout \end_deeper \begin_layout Itemize Configured IP address anonymization method, exported to IPV6CALC_ANON_METHOD \end_layout \begin_layout Subsection Installation \end_layout \begin_layout Standard Install compiled Apache module \begin_inset Quotes eld \end_inset mod_ipv6calc \begin_inset Quotes erd \end_inset to Apache's module directory \end_layout \begin_layout Standard Install included default configuration file \begin_inset Quotes eld \end_inset ipv6calc.conf \begin_inset Quotes erd \end_inset to Apache's config directory (usually conf.d) \end_layout \begin_layout Subsection Configuration \end_layout \begin_layout Standard Enable in \begin_inset Quotes eld \end_inset ipv6calc.conf \begin_inset Quotes erd \end_inset loading of module \end_layout \begin_layout Code LoadModule ipv6calc_module modules/mod_ipv6calc.so \end_layout \begin_layout Standard Enable module itself \end_layout \begin_layout Code ipv6calcEnable on \end_layout \begin_layout Standard Adjust configuration settings, if needed (see examples in \begin_inset Quotes eld \end_inset ipv6calc.conf \begin_inset Quotes erd \end_inset ) \end_layout \begin_layout Standard Review predefined log format \end_layout \begin_layout Code LogFormat "%{IPV6CALC_CLIENT_IP_ANON}e \backslash "%{IPV6CALC_CLIENT_COUNTRYCODE}e/%{IPV6CALC_CLIENT_ASN}e/%{IPV6CALC_CLIENT_REGIS TRY}e/%{IPV6CALC_ANON_METHOD}e \backslash " %u %t \backslash "%r \backslash " %>s %b \backslash "%{Referer}i \backslash " \backslash "%{User-Agent}i \backslash "" combined_anon \end_layout \begin_layout Standard Enable custom log with anonymized information, using the predefined LogFormat \end_layout \begin_layout Code CustomLog logs/access_anon_log combined_anon \end_layout \begin_layout Standard Restart Apache web server, check error_log for any issues \end_layout \begin_layout Subsection Result \end_layout \begin_layout Standard The new log file contains anonymized requests like \end_layout \begin_layout Code 252.176.92.172 "CN/23724/APNIC/keep-type-asn-cc" - [25/Jul/2015:13:20:25 +0200] "GET / HTTP/1.1" 200 3569 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://w ww.baidu.com/search/spider.html)" \end_layout \begin_layout Code \end_layout \begin_layout Code a909:390a:909a:81d9:a909:4291:c02d:5d1d "CZ/43037/RIPENCC/keep-type-asn-cc" - [25/Jul/2015:12:59:00 +0200] "GET /robots.txt HTTP/1.1" 200 33 "-" "Mozilla/5.0 (compatible; SeznamBot/3.2; +http://fulltext.sblog.cz/)" \end_layout \begin_layout Subsection Post-analysis in case of anonymization method \begin_inset Quotes eld \end_inset keep-type-asn-cc \begin_inset Quotes erd \end_inset \end_layout \begin_layout Standard In case \begin_inset Quotes eld \end_inset keep-type-asn-cc \begin_inset Quotes erd \end_inset is configured and also working (required databases are available), related information of anonymized IP addresses can be retrieved using \begin_inset Quotes eld \end_inset ipv6calc \begin_inset Quotes erd \end_inset or \begin_inset Quotes eld \end_inset ipv6logstats \begin_inset Quotes erd \end_inset . \end_layout \begin_layout Code $ ipv6calc -q -m -i 252.176.92.172 \end_layout \begin_layout Code IPV4=252.176.92.172 \end_layout \begin_layout Code IPV4_TYPE=unicast,anonymized,global \end_layout \begin_layout Code IPV4_AS_NUM=23724 \end_layout \begin_layout Code IPV4_COUNTRYCODE=CN \end_layout \begin_layout Code IPV4_REGISTRY=APNIC \end_layout \begin_layout Code ... \end_layout \begin_layout Code \end_layout \begin_layout Code $ ipv6calc -q -m -i a909:390a:909a:81d9:a909:4291:c02d:5d1d \end_layout \begin_layout Code IPV6=a909:390a:909a:81d9:a909:4291:c02d:5d1d \end_layout \begin_layout Code IPV6_TYPE=unicast,anonymized-iid,anonymized-prefix,global-unicast,productive,iid ,iid-local \end_layout \begin_layout Code IPV6_COUNTRYCODE=CZ \end_layout \begin_layout Code IPV6_AS_NUM=43037 \end_layout \begin_layout Code IPV6_REGISTRY=RIPENCC \end_layout \begin_layout Code ... \end_layout \begin_layout Section History \end_layout \begin_layout Standard Major extensions/changes are listed here \end_layout \begin_layout Subsection 2021 \end_layout \begin_layout Itemize add support for compressed IPv4 addresses like 10/8 (>= 3.1.0) \end_layout \begin_layout Itemize add support for octal representation of IPv4 addresses (>= 3.3.0) \end_layout \begin_layout Itemize add Database Dump action (>= 3.3.0) \end_layout \begin_layout Subsection 2020 \end_layout \begin_layout Itemize drop GeoIP(legacy) support (>= 3.0.0) \end_layout \begin_layout Itemize drop db-ip.com(BerkeleyDB) support (>= 3.0.0) \end_layout \begin_layout Subsection 2019 \end_layout \begin_layout Itemize add OUI-28 support (>= 2.2.0) \end_layout \begin_layout Itemize add action \begin_inset Quotes eld \end_inset addr2cc \begin_inset Quotes erd \end_inset (can be used as replacement for geoiplookup) (>= 2.1.0) \end_layout \begin_layout Itemize enable \begin_inset Quotes eld \end_inset geonameid \begin_inset Quotes erd \end_inset also in mod_ipv6calc (>= 2.1.0) \end_layout \begin_layout Itemize add anonymization method \begin_inset Quotes eld \end_inset keep-type-geonameid \begin_inset Quotes erd \end_inset (>= 2.1.0) \end_layout \begin_layout Itemize add support for MaxMindDB (GeoIP, db-ip.com) (>= 2.0.0) \end_layout \begin_layout Itemize drop support of IP2Location libraries < 7.0.1 (>= 2.0.0) \end_layout \begin_layout Subsection 2017 \end_layout \begin_layout Itemize add support for LISP detection \end_layout \begin_layout Itemize add support for non-free versions \begin_inset CommandInset href LatexCommand href name "DB-IP.com" target "http://www.db-ip.com/" literal "false" \end_inset databases \end_layout \begin_layout Itemize finally release 1.0.0 after 16 year of development \end_layout \begin_layout Subsection 2016 \end_layout \begin_layout Itemize implement action 'test' and extend action 'filter' with support of address ranges (>= 0.99.2) \end_layout \begin_layout Subsection 2015 \end_layout \begin_layout Itemize Introduce mod_ipv6calc for Apache web server (>= 0.99.1) \end_layout \begin_layout Itemize Add support for \begin_inset CommandInset href LatexCommand href name "DB-IP.com" target "http://www.db-ip.com/" literal "false" \end_inset databases (by generated Berkeley DB files) (>= 0.98.0) \end_layout \begin_layout Itemize Add support for \begin_inset Quotes eld \end_inset External \begin_inset Quotes erd \end_inset database files (generated Berkeley DB files), superseeding (if newer) built-in IPv4/IPv6->Registry and adding IPv4/IPv6->CountryCode support (>= 0.98.0) \end_layout \begin_layout Itemize Extend filter options with support of CountryCode, ASN or Registry (>= 0.99.0) \end_layout \begin_layout Itemize Add support for \begin_inset CommandInset href LatexCommand href name "IP2Location LITE" target "http://lite.ip2location.com/" literal "false" \end_inset databases (>= 0.99.0), add configurable IP2Location database autoselection support \end_layout \begin_layout Subsection 2014 \end_layout \begin_layout Itemize Shared library mode supported (reduces size of binaries) \end_layout \begin_layout Subsection 2013 \end_layout \begin_layout Itemize Prefix and IID anonymization methods \end_layout \begin_layout Itemize Support of dynamic load of GeoIP and IP2Location libraries \end_layout \begin_layout Itemize Specifying dedicated GeoIP and IP2Location database files is now replaced by specifying dedicated database directories to make especially for GeoIP use of more database files. \end_layout \begin_layout Subsection 2011 \end_layout \begin_layout Itemize ipv6calc/ipv6calcweb.cgi: enable included GeoIP support with IPv6 (usable with GeoIP >= 1.4.5) \end_layout \begin_layout Itemize ipv6calc: extend for 6rd support (--action 6rd_local_prefix --6rd_prefix --6rd_relay_prefix ) \end_layout \begin_layout Itemize ipv6calc: enable stdin support for bulk transformation \end_layout \begin_layout Itemize ipv6calc: add support for NAT64 address type \end_layout \begin_layout Itemize ipv6calc: add option \begin_inset Quotes eld \end_inset forceprefix \begin_inset Quotes erd \end_inset to print prefix of an address without a given prefix length \end_layout \begin_layout Itemize ipv6loganon: extend for pipe usage (e.g. in Apache log file directive) and write/append to specified file \end_layout \begin_layout Itemize General: add configure options to disable built-in databases (reduce binary size a lot, e.g. for embedded devices) \end_layout \begin_layout Subsection 2002-2010 \end_layout \begin_layout Standard See \begin_inset CommandInset href LatexCommand href name "ChangeLog@GitHub" target "https://raw.githubusercontent.com/pbiering/ipv6calc/master/ChangeLog" literal "false" \end_inset for now \end_layout \begin_layout Subsection 2001 \end_layout \begin_layout Itemize Start of development \end_layout \end_body \end_document ipv6calc-4.1.0/doc/ipv6calc.sgml000066400000000000000000003376661444154247200164170ustar00rootroot00000000000000 ]>
The ipv6calc Homepage PeterBieringer
pb at bieringer dot de
11.0.1 2022-12-22 PB
General ipv6calc is a small utility written in programming language C to manipulate (not only) IPv6 addresses and is able to do other tricky things. Intentions were convering a given IPv6 address into compressed format, convering a given IPv6 address into the same format like shown in /proc/net/if_inet6 and (because it was not difficulty) migrating the Perl program ip6_int into. Now only one utility is needed to do a lot. This utility was also used in the past to extend features on network-functions-ipv6 library, used by initscripts-ipv6. Note: this tool got also its freecode.com (former freshmeat, now also EOL) / ipv6calc page (but this is not maintained by the author) Latest version Latest version since last update of this page is 4.0.0 Included programs “ipv6calc”: the main utility“ipv6calcweb”: CGI wrapper for ipv6calc's address information output“ipv6logconv”: log converter (IPv4/IPv6)“ipv6loganon”: log anonymizer (IPv4/IPv6)“ipv6logstats”: log statistic generator (IPv4/IPv6)“mod_ipv6calc”: Apache module Included databases If not disabled during compiling of the tool, following databases are statically included, since version 0.95.0 internally mentioned as “BuiltIn”: IEEE IAB, OUI, OUI-28, OUI-36 databases (for decoding vendor part of MAC/EUI-48/EUI-64)IPv4 assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for selecting proper registry in ipv6calcweb.cgi and IPv4 anonymization)IPv6 assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for selecting proper registry in ipv6calcweb.cgi and IPv6 anonymization)ASN assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for IPv4/IPv6 anonymization)LISP assignment database for supplying extra info Possible external databases If enabled during compiling the tool, following external (but local stored) databases can be used GeoIP IPv4 “legacy” (since 0.61.0, released 2006 until 3.0.0 released 2020)IPv6 “legacy” (since 0.90.0, released 2011, req. GeoIP >= 1.4.5 until 3.0.0 released 2020)GeoIP2 (native MaxMindDB file support since 2.0.0, release 2019)IP2Location IPv4 (since 0.60.0, released 2006)IPv6 (since 0.70.0, released 2007, IP2Location LITE IPv6 Databases since 0.99.0, released 2015)release 0.99.0 is tested against IP2Location >= 4.0.2release >= 2.0.0 && < 3.0.0 is only working with IP2Location >= 7.0.1release >= 3.0.0 is only working with IP2Location >= 8.2.0DB-IP.com (since 0.98.0, released 2015 until 3.0.0 released 2020) based on local Berkeley DB files generated from downloaded CSV filesnative MaxMindDB files (support since 2.0.0, released 2019)“External” (since 0.98.0, released 2015), based on local Berkeley DB files, generated from downloaded TXT/XML files (registries assignment databases). Supporting IPv4/IPv6 to Registries and IPv4/IPv6 to CountryCode. If newer, overruling the related included databases.Since version 0.95.0 the tool can be compiled to use dynamically loading of library, means the binaries can be also used on systems where IP2Location or GeoIP libraries are not existing. On such system, the support is simply disabled then and some capabilities/features which requires the databases are disabled. Since version 0.97.4 also fallback code for GeoIP and IP2Location is included in the source package, means that support of dynamically loading of library can be included during compilation without having related development sources on the system. Since version 2.0.0 MaxMindDB is supported (linked or dynamically loaded) Since version 3.0.0 GeoIP(legacy) and db-ip.com(BerkeleyDB) is remoed License The program is published under the GNU GPL version 2. Copyright (C) 2001 - 2021 by Dr. Peter Bieringer Author The author of ipv6calc is Dr. Peter Bieringer with some minor contribution by others Where to get sources or binaries Latest version of sources Via GitHub (since 2016-09-05) at GitHub / ipv6calc Releases as tar.gz or zip via HTTPS at GitHub / ipv6calc / releases as tar.gz (signed) from DeepSpace6 via FTP DeepSpace6 / anonymous FTP or HTTP www.deepspace6.net mapped FTPvia ftp.bieringer.de / anonymous FTP or HTTP at www.bieringer.de mapped FTPSince version 0.95.0 packages are signed with new GPG key, also available here: CODE-GPG-KEY-bieringer.de-2013 @ftp.bieringer.de or CODE-GPG-KEY-bieringer.de-2013 @ftp.deepspace6.net ]]>A SPEC file is included, so you can build a RPM from tar.gz using In addition, conditional build options are available (see related configure options below): as RPM Can be searched via rpmfind / ipv6calc. Ready to use packages for several operating systems: Fedora Linux Fedora 29 is the current developing platform, so use given hints above to create a RPM. Since Fedora 7 this package is included by default. See also FedoraProject / Packages / ipv6calc Red Hat Enterprise Linux and clones It's tested by the developer that creation of the RPM is working fine starting with RHEL 4. Major version 5 has the package included by default (but a rather old version) RPMs of newer releases are available as test builds on koji, see related URL in announcements ipv6calc-announce / list archive*** Untested since version 2.0.0 because OS is out of support ***Major version 6: available since September 2014 on FedoraProject / EPEL, see also FedoraProject / Packages / ipv6calc *** Untested since version 3.0.1 because OS is out of support ***Major version 7: available since Decenber 2016 on FedoraProject / EPEL, see also FedoraProject / Packages / ipv6calcMajor version 8: available since September 2019 on FedoraProject / EPEL, see also FedoraProject / Packages / ipv6calcCentOS 7 and Rocky 8 are also platforms for regression tests. Gentoo/Funtoo Package is maintained, nevertheless, Funtoo is used as platform for regression tests. Ubuntu Package is maintained, more information can be found at https://packages.ubuntu.com/ipv6calc Debian GNU/Linux Package is maintained, more information can be found at http://packages.debian.org/ipv6calc openSUSE Package is maintained, more information can be found at http://download.opensuse.org/repositories/home:/uebelhacker/ NetBSD See here for more: ftp://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/net/ipv6calc/README.html FreeBSD See here for more: http://www.freshports.org/net-mgmt/ipv6calc/ (http://www.freebsd.org/cgi/query-pr.cgi?pr=34441) OpenBSD See here for more: http://www.openbsd.org/cgi-bin/cvsweb/ports/net/ipv6calc/ Configuring & Compiling Configuring Following “ipc6calc” related configure options are currently supported (note: disabling the internal databases reduces the size of the resulting binaries/shared library a lot): Compiling As usual, use and run tests afterwards using or at least (e.g. if external databases are not available) Configuring & Compiling with Presets A shell script is included which can configure and compile with standard presets (also used during regression tests): Mailing Lists ipv6calc-announce Reason:sending announcements of new versionsTraffic:very lowPostings:only moderators are allowed to postInformation:DeepSpace6 / maillist ipv6calc-announce ipv6calc Reason:discussionsTraffic:lowPostings:subscribersInformation:DeepSpace6 / maillist ipv6calc Bug Reports You can send bug reports to the author himself or subscribe to maillist “ipv6calc” and send it to the list. Features of ipv6calc Description The main program named “ipv6calc” is able to recognize many (not only) IPv6 address formats and depending on a selectable action (not required) a selectable output format can be specified. Also it has the capability to show detailed information of an IPv4/IPv6 address or anonymize it. List of built-in features Option “-v” shows built-in features, depending on configuration before compiling: Option “-v -v” (since 0.91.0) shows built-in features and capabilities in detail, depending on configuration before compiling: SA* Country4=0 Country6=0 City4=0 City6=0 IP2Location: selected best databases normal Country4=35 Country6=35 City4=35 City6=35 IP2Location: selected best databases method: * = autoswitch from LITE to SAMPLE enabled in case not older than 12 months and having more features IP2Location: selected best databases method: COMM older than 12 months are deselected in case of LITE is available IP2Location: selected best databases method: COMM/LITE/SAMPLE with more features are only selected in case not older than 1 months of already found COMM/LITE/SAMPLE IP2Location: selected best databases method: softlinks: skipped-by-default db-ip.com(MaxMindDB): features available/implemented: 0x30063ff0/0x30063ff0 (100%) DBIP2: info of available databases in directory: /usr/share/DBIP DBIP2: IPv4/v6 CountryCode (FREE) : [1] dbip-country-lite.mmdb (DBIP-Country-Lite Copyright (c) 2019 db-ip.com All Rights Reserved, created: 20190831-232938 UTC) DBIP2: IPv4/v6 City (FREE) : [2] dbip-city-lite.mmdb (DBIP-City-Lite Copyright (c) 2019 db-ip.com All Rights Reserved, created: 20190831-233248 UTC) DBIP2: IPv4/v6 Location+ISP (COMM) : [6] dbip-location-isp.mmdb (DBIP-Location-ISP (compat=Enterprise) Copyright (c) 2019 db-ip.com All Rights Reserved, created: 20190101-015418 UTC) DBIP2: detected best databases FREE Country4=2 Country6=2 City4=2 City6=2 DBIP2: detected best databases COMM Country4=6 Country6=6 City4=6 City6=6 DBIP2: selected best databases normal Country4=6 Country6=6 City4=6 City6=6 DBIP2: selected best databases method: COMM older than 12 months are deselected in case of FREE is available DBIP2: selected best databases method: COMM/FREE with more features are only selected in case not older than 1 months of already found COMM/FREE External: features available/implemented: 0xc00180cc/0xc00180cc (100%) External: info of available databases in directory: /usr/share/ipv6calc/db External: IPv4 Registry : ipv6calc-external-ipv4-registry.db (EXTDB-1/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191227 LACNIC/20200903 LISP/20200318 RIPENCC/20200903, created: 20200904-061346 UTC) External: IPv6 Registry : ipv6calc-external-ipv6-registry.db (EXTDB-2/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191106 LACNIC/20200903 LISP/20200318 RIPENCC/20200903, created: 20200904-063305 UTC) External: IPv4 CountryCode : ipv6calc-external-ipv4-countrycode.db (EXTDB-3/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191227 LACNIC/20200903 LISP/20200318 RIPENCC/20200903, created: 20200904-061347 UTC) External: IPv6 CountryCode : ipv6calc-external-ipv6-countrycode.db (EXTDB-4/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191106 LACNIC/20200903 LISP/20200318 RIPENCC/20200903, created: 20200904-063305 UTC) BuiltIn: features available/implemented: 0x0001c00f/0x0001c00f (100%) BuiltIn: info of available databases BuiltIn: ASN : IANA/20200518 BuiltIn: CC : AFRINIC/20201012 APNIC/20201010 ARIN/20201011 LACNIC/20201009 RIPENCC/20201011 BuiltIn: IPv4 : AFRINIC/20201012 APNIC/20201010 ARIN/20201011 IANA/20191227 LACNIC/20201009 LISP/20200318 RIPENCC/20201011 (created: 20201012-064251 UTC) BuiltIn: IPv6 : AFRINIC/20201012 APNIC/20201010 ARIN/20201011 IANA/20191106 LACNIC/20201009 LISP/20200318 RIPENCC/20201011 (created: 20201012-070210 UTC) BuiltIn: IEEE : IAB/20201012 OUI/20201012 OUI28/20201012 OUI36/20201012 Database selection or priorization ('->': subsequential calls) Database priorization default: GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)->GeoIP->db-ip.com->External->BuiltIn DB_AS_REG (AS-Number to Registry database): BuiltIn DB_CC_REG (CountryCode to Registry database): BuiltIn DB_IPV4_REG (IPv4 to Registry database): BuiltIn DB_IPV6_REG (IPv6 to Registry database): BuiltIn DB_IPV4_AS (IPv4 to AS database): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB) DB_IPV6_AS (IPv6 to AS database): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB) DB_IPV4_CC (IPv4 to CountryCode database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)->External DB_IPV6_CC (IPv6 to CountryCode database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)->External DB_IPV4_COUNTRY (IPv4 to Country database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB) DB_IPV6_COUNTRY (IPv6 to Country database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB) DB_IPV4_CITY (IPv4 to City database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB) DB_IPV6_CITY (IPv6 to City database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB) DB_IPV4_REGION (IPv4 to Region database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB) DB_IPV6_REGION (IPv6 to Region database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB) DB_IEEE (IEEE/OUI/OUI28/OUI36 Vendor database): BuiltIn DB_IPV4_INFO (IPv4 additional information): External->BuiltIn DB_IPV6_INFO (IPv6 additional information): External->BuiltIn DB_IPV4_GEONAMEID (IPv4 GeonameID): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB) DB_IPV6_GEONAMEID (IPv6 GeonameID): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB) ]]>Option “-v -h” (since 0.97.4) shows explanation of feature tokens Note: since version 0.95.0 the internal layer for database usage was abstracted and each database “plugin” is initialized reporting then its supporting features in binary representation. This makes implementation of other external databases easier in the future. There are at least plans to create an overlay to built-in databases by publishing and use some “precompiled” newer databases replacing the need of recompilation for updated built-in databases. Examples Conversion A simple example is the conversion of an IPv6 address to a DNS PTR query string: Like you see, input format was autodetected. And the given example can be extended because ipv6calc also understands netmask / prefix length values: Also you've also learnt now that switch '-q' (quiet) suppresses informational messages. You can use this now to start a DNS PTR query using: But ipv6calc can do many more for you! Next example shows you the extraction of the IPv4 address contained in a 6to4 IPv6 address: This also works vice-versa: There are many more features already implemented, if you miss one, send a note. Information Depending on available databases output can vary. Information about a simple IPv6 address: Information about a Teredo IPv6 address: Information about a LISP address Machine readable output There exists also a machine readable output (e.g. used by 'ipv6calcweb.cgi') - in addition, database related information can be displayed, if databases are located on the system and supported. " IPV6CALC_OUTPUT_VERSION=21 IPV6CALC_SETTINGS_ANON="set=keep-type-asn-cc,mask-ipv6=56,mask-ipv4=24,mask-eui64=40,mask-mac=24,method=keep-type-asn-cc" IPV6CALC_FEATURES="GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID" IPV6CALC_CAPABILITIES="GeoIP2(linked/MaxMindDB) IP2Location(linked) DBIP2(linked/MaxMindDB) ExternalDatabase DB_AS_REG(BuiltIn) DB_CC_REG(BuiltIn) DB_IPV4_REG(BuiltIn) DB_IPV6_REG(BuiltIn) DB_IEEE(BuiltIn)" ]]>Special machine readable output options (>= 0.99.0) Output filter by selecting a token (>= 0.99.0) Using option --mrst <TOKEN> (Machine Readable Select Token) can be used to display only a selected token Output filter by matching token (>= 0.99.0) Using option --mrmt <TOKEN> (Machine Readable Match Token) can be used to display only matching tokens Output filter by selecting a value of a token token (>= 0.99.0) Using option --mrtvo <TOKEN> (Machine Readable Token Value Only) can be used to display only thevalue of a selected token Output adjustment by unconditional quoting of values (>= 0.99.0) Using option --mrqva (Machine Readable Quote Values Always) can be used to quote values always of a selected token Output adjustment by unconditional disabling quoted values (>= 0.99.0) Using option --mrqvn (Machine Readable Quote Values Never) can be used to never quote values of a selected token Output adjustment by unconditional print token in case of empty value (>= 0.99.0) Using option --mrstpq (Machine Readable Select Token Print Always) can be used to print always token/value regardless it's contained Filter mode “ipv6calc” can run in filter mode to be able to extract from a huge list of IPv4/IPv6 addresses ones which are interesting or ones which are not interesting (see printout of online help below). Filter tokens are the ones which are listed on “TYPE” lines shown in “-m -i” information mode. Example for searching for Teredo addresses: For more information see below Note: since version 0.95.0 '-A filter' is optional if option '-E <filter expression>' is given (autoselected action). Test mode Since 0.99.2 a test mode ('-A test', autoselected in case 'test_*' options are given) is implemented for address prefix or range For more information see below Option style Since version 0.40 new-style option handling was introduced, using --in <inputtype>--out <outputtype>--action <actiontype>and many more conversions were added. A built-in check matrix should prevent misconversions. Up to version 0.39, only old-style options (aka “shortcut” options). They are one-in-all options, specifying input/action/output in one token. Internally this options will be converted into new-style options. Online help Online help always shows the currently implemented features. Main online help: External database options only appear if compiled with related support. This program formats and calculates IPv6/IPv4/MAC addresses and can do many more tricky things [-d|--debug ] : debug value (bitwise like) can also be set by IPV6CALC_DEBUG environment value [-v|--version [-v [-v]]] : version information (2 optional detail levels) [-v|--version -h] : explanation of feature tokens [-V|--verbose] : be more verbose [-h|--help|-?] : this online help [--disable-ip2location ] : IP2Location support disabled [--db-ip2location-disable ] : IP2Location support disabled [--db-ip2location-dir ] : IP2Location database directory (default: /usr/share/IP2Location) [--db-ip2location-only-type ]: IP2Location database only selected type (1-120) [--db-ip2location-allow-softlinks] : IP2Location database softlinks allowed by default they are ignored because it is hard to autodetect COMM/LITE/SAMPLE [--db-ip2location-lite-to-sample-autoswitch-max-delta-months ]: autoswitch from LITE to SAMPLE databases if possible and delta is not more than 12 months (0=disabled) [--db-ip2location-comm-to-lite-switch-min-delta-months ]: switch from COMM to LITE databases if possible and delta more than 12 months (0=disabled) [--disable-geoip2 ] : GeoIP(MaxMindDB) support disabled [--db-geoip2-disable ] : GeoIP(MaxMindDB) support disabled [--db-geoip2-dir ] : GeoIP(MaxMindDB) database directory (default: /usr/share/GeoIP) [--disable-dbip2 ] : db-ip.com(MaxMindDB) support disabled [--db-dbip2-disable ] : db-ip.com(MaxMindDB) support disabled [--db-dbip2-dir ] : db-ip.com(MaxMindDB) database directory (default: /usr/share/DBIP) [--db-dbip2-only-type ] : db-ip.com(MaxMindDB) database only selected type (1-6) [--db-dbip2-comm-to-free-switch-min-delta-months ]: switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) [--disable-external ] : External support disabled [--db-external-disable ] : External support disabled [--db-external-dir ] : External database directory (default: /usr/share/ipv6calc/db) [--disable-builtin ] : BuiltIn support disabled [--db-builtin-disable ] : BuiltIn support disabled [--db-priorization [:...]] : Database priorization order list (overwrites default) colon separated: GeoIP GeoIP2 IP2Location DBIP DBIP2 External BuiltIn Hint: all long options can be predefined from environment by using prefix: IPV6CALC_ and conversion: '-' -> '_' and lowercase -> uppercase example for options with values : --db-dbip2-dir= -> environment: IPV6CALC_DB_DBIP2_DIR= example for options without values: --db-dbip2-disable -> environment: IPV6CALC_DB_DBIP2_DISABLE=1 on|off|0|1 is supported [-q|--quiet] : be more quiet (auto-enabled in pipe mode) [-f|--flush] : flush each line in pipe mode Usage with new style options: [--in|-I ] : specify input type (default: autodetect) [--out|-O ] : specify output type (sometimes: autodetect) [--action|-A ] : specify action (default: format conversion, sometimes: autodetect) [ ...] : specify format options [...] : input data Available input types: [-m] -I|--in -?|-h|--help Available output types: [-m] -O|--out -?|-h|--help Available action types: [-m] -A|--action -?|-h|--help Special filter action : -E -?|-h|--help Other usage: --showinfo|-i [--machine_readable|-m] : show information about input data --showinfo|-i --mrqva : Machine Readable Quote Values Always --showinfo|-i --mrqvn : Machine Readable Quote Values Never --showinfo|-i --mrst : Machine Readable Select Token --showinfo|-i --mrstpa : Machine Readable Select Token Print Always --showinfo|-i --mrmt : Machine Readable Match Token Prefix --showinfo|-i --mrmts : Machine Readable Match Token Suffix --showinfo|-i --mrtvo : Machine Readable Token Value Only --showinfo|-i --show-tokens : show available tokens (aka types) on '-m' Usage with shortcut options: [ ...] for more information and available format options use: -?|-h|--help -r|--addr2ip6_int (-O revnibbles.int) -r|--addr_to_ip6int (-O revnibbles.int) -a|--addr2ip6_arpa (-O revnibbles.arpa) -a|--addr_to_ip6arpa (-O revnibbles.arpa) -b|--addr_to_bitstring (-O bitstring) --addr2compaddr (--printcompressed) --addr_to_compressed (--printcompressed) --addr2uncompaddr (--printuncompressed) --addr_to_uncompressed (--printuncompressed) --addr_to_base85 (-I ipv6addr -O base85) --base85_to_addr (-I base85 -O ipv6addr) --mac_to_eui64 (-I mac -O eui64) --addr2fulluncompaddr (--printfulluncompressed) --addr_to_fulluncompressed (--printfulluncompressed) --addr2if_inet6 (-I ipv6addr -O ifinet6) --addr_to_ifinet6 (-I ipv6addr -O ifinet6) --if_inet62addr (-I ifinet6 -O ipv6addr --printcompressed) --ifinet6_to_compressed (-I ifinet6 -O ipv6addr --printcompressed) --eui64_to_privacy (-I iid_token -O iid_token -A genprivacyiid) --ipv4_to_6to4addr (-I ipv4 -O ipv6addr -A conv6to4) --addr2cc (-A addr2cc) ]]> Database options each internal/external database can be disabled by optiondirectory of database files can be given via related optiondatabases requiring external library the library file can be given in case of dynamic load and linkingfor geolocation databases specific file can be selected (see --db-<PROVIDER>-only-type <TYPE>) IP2Location IP2location database directory can contain a bunch of files, the best ones are selected automatically (since 0.99.0). “Best” can be controlled via two options: --db-ip2location-lite-to-sample-autoswitch-max-delta-months <MONTHS>: switches from LITE to SAMPLE databases in case of existing SAMPLE databaseSAMPLE database not older than default/given MONTHS than the LITE databaseIP address is in range of SAMPLE database (IPv4: 0.0.0.0-99.255.255.255, IPv6: 2a04::/16)autoswitch can be disabled by using MONTHS=0reason for implementation: show maximum possible IP2Location features--db-ip2location-comm-to-lite-switch-min-delta-months <MONTHS>: switches from COMMercial to LITE databases in case of existing LITE databaseCOMMercial database is default/given MONTHS older than the LITE databaseswitch can be disabled by using MONTHS=0reason for implementation: avoid using old COMMercial databases--db-ip2location-only-type <TYPE>: only selects databases of given type reason for implementation: be able to select a specific database type--db-ip2location-allow-softlinks: allow softlinked IP2Location database files by default, softlinked database files are skipped, because it's hard to detect whether one is COMMercial, LITE or SAMPLE use “ipv6calc -vv” or “ipv6calc -vvv” for verification, which databases are selected finally. Input-type options Available input types: auto : automatic detection revnibbles.int : dot separated nibbles reverse, ending with ip6.int. revnibbles.arpa : dot separated nibbles reverse, ending with ip6.arpa. bitstring : bitstring labes, ending with ip6.arpa. ipv6addr : IPv6 address ipv6literal : IPv6 address in literal ipv4addr : IPv4 address ipv4hex : IPv4 in hexdecimal format ipv4revhex : IPv4 in byte-reversed hexdecimal format mac : MAC address (48 bits) eui64 : EUI-64 identifier (64 bits) base85 : Base-85 string ifinet6 : Like line in /proc/net/if_inet6 iid+token : Interface identifier and token ipv6logconv : ipv6logconv (currently not supported) prefix+mac : IPv6 prefix and a MAC address asn : Autonomous System Number ]]> Output-type options: Available output types: revnibbles.int : dot separated nibbles reverse, ending with ip6.int. revnibbles.arpa : dot separated nibbles reverse, ending with ip6.arpa. bitstring : bitstring labes, ending with ip6.arpa. ipv6addr : IPv6 address ipv4addr : IPv4 address mac : MAC address (48 bits) eui64 : EUI-64 identifier (64 bits) base85 : Base-85 string ifinet6 : Like line in /proc/net/if_inet6 iid : Interface identifier iid+token : Interface identifier and token addrtype : Address type ouitype : OUI (IEEE) type ipv6addrtype : IPv6 address type any : any type (currently not supported) revipv4 : reverse IPv4, ending with in-addr.arpa ipv4hex : IPv4 in hexdecimal format octal : IP address in escaped octal format hex : IP address in hexadecimal format ipv6literal : IPv6 address in literal ]]>For examples and available format options use: --examples ]]> Action-type options: Available action types: auto : Automatic selection of action (default) geneui64 : Converts a MAC address to an EUI-64 address conv6to4 : Converts IPv4 address <-> 6to4 IPv6 address (prefix) convnat64 : Converts IPv4 address <-> NAT64 IPv6 address ipv6tomac : Extracts MAC of an IPv6 address (if detected) ipv6toeui64 : Extracts EUI64 of an IPv6 address (if detected) genprivacyiid : Generates a privacy interface ID out of a given one (arg1) and a token (arg2) prefixmac2ipv6 : Generates an IPv6 address out of a prefix and a MAC address anonymize : Anonymize IPv4/IPv6 address without loosing much information 6rd_local_prefix : Calculate the 6rd prefix from given IPv6 prefix (& relay prefix) and IPv4 Options: --6rd_prefix ... (required) --6rd_relay_prefix ... (optional) 6rd_extract_ipv4 : Extract from 6rd address the include IPv4 address Options: --6rd_prefixlength ... (required) filter : Filter addresses related to filter options test : Test address against given prefix or address Options: --test_prefix ... (optional) --test_gt ... (optional) --test_ge ... (optional) --test_lt ... (optional) --test_le ... (optional) addr2cc : Converts IPv4/IPv6 address into Country Code dbdump : Dump Database ]]> Special action “filter”: Special action “filter” can be used especially in pipe mode to filter IP addresses related to their type and since 0.99.0 also related to database results (CountryCode, ASN or Registry). ' is given) negation of filter expression with prefix: ^ IPv6 address filter tokens: ipv6 unknown unicast multicast anycast loopback link-local site-local compat-v4 mapped reserved unique-local-unicast anonymized-iid anonymized-prefix 6to4 6bone global-unicast unspecified solicited-node productive 6to4-microsoft teredo orchid link-local-teredo nat64 iid-random iid iid-local iid-global iid-teredo iid-eui48 iid-eui64 iid-isatap iid-includes-ipv4 IPv4 address filter tokens: ipv4 any unicast multicast anycast broadcast loopback unspecified unknown reserved zeroconf site-local anonymized anonymized-geonameid global 6to4relay lisp lisp-proxyegresstunnelrouter-anycast lisp-mapresolver-anycast IPv4/v6 address filter tokens based on databases: [^][ipv4.|ipv6.]db.cc=|unknown (Country Code [2 chars]) [^][ipv4.|ipv6.]db.asn=|unknown (Autonomous System Number) [^][ipv4.|ipv6.]db.reg= Registry tokens: 6BONE IANA APNIC ARIN RIPENCC LACNIC AFRINIC 6TO4 reserved unknown IPv4/v6 address filter tokens based on address/mask: [^]ipv4.addr=[] [^]ipv6.addr=[] IPv4/v6 address filter tokens based on address ranges (<=|<|>|>=): [^]ipv4.addr(<=|<|>|>=) [^]ipv6.addr(<=|<|>|>=) as alternative in case <|> creating problems also supported: =(le|lt|gt|ge)=: [^]ipv4.addr=(le|lt|gt|ge)= [^]ipv6.addr=(le|lt|gt|ge)= EUI-48/MAC address filter tokens: IMPLEMENTATION MISSING EUI-64 address filter tokens: IMPLEMENTATION MISSING ]]>Example for some filter expressions: Example for searching for addresses in a specific range (supported since 0.99.2): Special action “test”: Special action “test” (since 0.99.2) can be used in command line or pipe mode (single address only) to test IP addresses related to a given prefix or range . : inside a prefix --test_gt|--test_ge
: greater(/equal) than an address --test_lt|--test_le
: less(/equal) than an address Test given address(es) from stdin, e.g. echo '2001:db8::1' | ipv6calc [-A test] --test_prefix 2001:db8::/32 echo '2001:db8::1' | ipv6calc [-A test] --test_prefix 2001:db9::/32 Single address test, return code: 0=inside/matching 1=outside/not-matching 2=uncomparable ipv6calc [-A test] --test_prefix 2001:db8::/32 2001:db8::1 ipv6calc [-A test] --test_prefix 2001:db9::/32 2001:db8::1 ipv6calc [-A test] --test_ge 2001:db8:: --test_le 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff 2001:db8::1 ipv6calc [-A test] --test_ge 2001:db9:: --test_le 2001:db9:ffff:ffff:ffff:ffff:ffff:ffff 2001:db8::1 ipv6calc [-A test] --test_ge 2001:db9:: --test_lt 2001:dba:: 2001:db8::1 ipv6calc [-A test] --test_ge 2001:db8:: --test_lt 2001:db9:: 2001:db8::1 ]]>Example for command line mode: Example for command line mode (quiet): Example for pipe mode: Special action “conv6to4”: Special action “conv6to4” (since at least 0.99.1) can be used in command line or pipe mode to convert 6to4-IPv6 in IPv4 addresses and vice versa. 2002:c000:201:: ipv6calc -A conv6to4 192.0.2.1/24 -> 2002:c000:200::/40 ipv6calc -A conv6to4 192.0.2.0/24 -> 2002:c000:200::/40 ipv6calc -A conv6to4 2002:c000:201:: -> 192.0.2.1 ipv6calc -A conv6to4 2002:c000:201::/40 -> 192.0.2.0/24 See '-O ipv4 -h' or '-O ipv6 -h' for optional output modifications Can also be used in PIPE mode to convert a list of IP addresses/networks ]]>Example for command line mode: Example for pipe mode: Special action “dbdump”: Since version 3.3.0, action “dbdump” is provided Version >= 3.3.0: database “External”, type: IPv4/IPv6 addresses, suppported filter: CountryCodePrecondition: created/updated “External” database Precondition: active “database dump” support &1 | grep -E '(DB_IPV4_DUMP_CC|DB_IPV6_DUMP_CC)' ipv6calc: version 3.3.0 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID DB_IPV4_DUMP_CC DB_IPV6_DUMP_CC ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID DB_IPV4_DUMP_CC (IPv4 Database Dump by CountryCode): External DB_IPV6_DUMP_CC (IPv6 Database Dump by CountryCode): External ]]>Precondition: recognized “External” database &1 | grep -E '(External: IPv. CountryCode)' External: IPv4 CountryCode : ipv6calc-external-ipv4-countrycode.db (EXTDB-3/AFRINIC/20210919 APNIC/20210917 ARIN/20210919 IANA/20210205 LACNIC/20210918 LISP/20200318 RIPENCC/20210918, created: 20210919-152957 UTC) External: IPv6 CountryCode : ipv6calc-external-ipv6-countrycode.db (EXTDB-4/AFRINIC/20210919 APNIC/20210917 ARIN/20210919 IANA/20191106 LACNIC/20210918 LISP/20200318 RIPENCC/20210918, created: 20210919-155049 UTC) ]]>Usage Example: dump all IPv4 networks which have not “unknown” CountryCode Usage Example: dump all IPv6 networks of a given CountryCode Usage Example: dump all IPv4 networks of two given CountryCodes Usage Example: dump all IPv4 networks of a given CountryCode incl. automatic conversion into 6to4 addresses Usage Example: dump all IPv6to4 networks of a given CountryCode in “ipset restore” compatible format and create/update “ipset” (related “sudo” command whitelist have to be created in advance) /path/to/ipset-Net_VN_IPv6to4.txt $ sudo ipset restore -f /path/to/ipset-Net_VN_IPv6to4.txt $ sudo ipset list Net_VN_IPv6to4 -t Name: Net_VN_IPv6to4 Type: hash:net Revision: 7 Header: family inet6 hashsize 1024 maxelem 65536 bucketsize 12 initval 0x30b0bdaf Size in memory: 41344 References: 0 Number of entries: 723 ]]>Hint: try also helper script for 'ipset' management Webserver log conversion helper program "ipv6logconv" This program parses address tokens of a given webserver logfile and converts them to special strings, useful for statistics (e.g. created by using "analog"). Supported options This program converts IPv4/IPv6 addresses in HTTP server log files [-d|--debug ] : debug value (bitwise like) can also be set by IPV6CALC_DEBUG environment value [-v|--version [-v [-v]]] : version information (2 optional detail levels) [-v|--version -h] : explanation of feature tokens [-V|--verbose] : be more verbose [-h|--help|-?] : this online help Performance options: [-n|--nocache] : disable caching [-c|--cachelimit ] : set cache limit default: 20 maximum: 200 Output options: [--out ] : specify output type addrtype : Address type ouitype : OUI (IEEE) type ipv6addrtype : IPv6 address type any : any type Takes data from stdin, proceed it to stdout ]]> Examples A demonstration about which kind of statistics are possible to produce is shown at http://www.ipv6.bieringer.de/ (IPv6 only). Usage Example: See more examples inside the package. Webserver log anonymization helper program "ipv6loganon" On autoconfiguration, the interface part of an IPv6 address is based on the MAC address of the network interface card (NIC). This address is used for outgoing requests, if privacy option (RFC3041 / RFC4941) is not enabled. This results in many privacy related information on web- or mail-server log files. Administrators, which won't (be allowed to) store such information over time, but still do not want to loose information about address type distribution should use 'ipv6loganon' to anonymize their log files. Since version 0.94.0 internally also IID anonymization is possible without loosing any information for “ipv6logstats”. Since version 0.95.0 internally also prefix anonymization is possible without loosing any information for “ipv6logstats”. Anonymization details Method “zeroize” The anonymizer would keep as much information as possible for IPv6 address types. Client-side IID would be anonymized by EUI-48 based: serial number would be zero'ed, keeping OIDEUI-64 based: serial number would be zero'ed, keeping OIDISATAP: client IPv4 address would be anonymized by given IPv4 maskTEREDO: client IPv4 address would be anonymized by given IPv4 mask, client port would be zero'ed6to4(Microsoft): client IPv4 address would be anonymized by given IPv4 masklocal: whole IID would be zero'edClient-side SLA would be anonymized by SLA would be zero'edPrefix would be anonymized by 6to4: client IPv4 address would be anonymized by given IPv4 maskCompat/Mapped IPv4 addresses would be anonymized by IPv4 address would be anonymized by given IPv4 mask Method “anonmize” The anonymizer would keep as much information as possible for the IID of an IPv6 address. Description from libipv6addr.h: RFC 4941 anonymized privacy extension Interface ID * * a9p9 4291 4xxx xxxC -> RFC 4291 anonymized EUI-48 Interface ID, xxx xxx = converted OUI * a9p9 4291 5xxx xxxC -> RFC 4291 anonymized EUI-48 Interface ID, xxx xxx = converted mapped IAB/OUI-36 * a9p9 4291 6xxx xxxC -> RFC 4291 anonymized EUI-64 Interface ID, xxx xxx = converted OUI * a9p9 4291 7xxx xxxC -> RFC 4291 anonymized EUI-64 Interface ID, xxx xxx = converted mapped IAB/OUI-36 * a9p9 4291 8xxx xxxC -> RFC 4291 embedded anonymized IPv4 address, xxx xxx = first 24 bit of included (anonymized) IPv4 address * a9p9 4291 c02d 5d1C -> RFC 4291 Chapter 2.5.1 anonymized static Interface ID * * a9p9 5214 4xxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included (anonymized) IPv4 address (local scope) * a9p9 5214 5xxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included (anonymized) IPv4 address (global scope) * a9p9 5214 cxx0 000C -> RFC 5214 anonymized ISATAP Interface ID, xx = first 8 bit of included vendor ID (local scope) * a9p9 5214 dxx0 000C -> RFC 5214 anonymized ISATAP Interface ID, xx = first 8 bit of included vendor ID (global scope) * a9p9 5214 exxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included extension ID (local scope) * a9p9 5214 fxxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included extension ID (global scope) * * a9p9 4843 0000 000C -> RFC 4843 anonymized ORCHID hash ]]>Depending on given mask, the part of the prefix will be replaced: Method “keep-type-asn-cc” In addition to “anonymize” (of IID) this method anonymizes also the prefix of an IPv6 address or a whole IPv4 address by keeping ASN (Autonomous System Number, Country Code and Type). Description from libipv6addr.h: 10-bit Country Code mapping [A-Z]*[A-Z0-9] (936) * 0x3FD = LISP * 0x3FE = unknown country * 0x3FF - 16 + REGISTRY_6BONE && ASN=0 = 6bone * 0x000-0x3A7: c1= c / 36, c2 = c % 36 * aaaaaaaa -> 32-bit ASN ]]>Description from libipv4addr.h: = 65536, ASN & 0xE000 == 0 (12-bit LSB is ok) * 1|r r r|0|l l l l l l l l l l l l| * 13-bit LSB of ASN * * Mapping of ASN >= 65536, ASN & 0xE000 != 0 (12-bit LSB overflow) => unspecified * 1|r r r|1|0 0 0 0 0 0 0 0 0 0 0 0| * * Mapping of ASN registry for ASN >= 65536 * 0 0 0 = "unknown ASN registry" * 0 1 0 = APNIC * 0 1 1 = RIPE * 1 0 0 = LACNIC * 1 0 1 = AFRINIC * 1 1 0 = ARIN * Mapping of LISP * 1|r r r|1|1|0 0 0 0 0 0 0 0 0 0 0| ]]> Method “keep-type-geonameid” In difference to keep-type-asn-cc this method anonymizes the prefix of an IPv6 address or a whole IPv4 address by keeping the GeonameID and Type. Description from libipv6addr.h: 10-bit source mapping * GeonameID source information * 0x000 = unknown * 0x001 = continent (prio: lowest) * 0x002 = country * 0x003 = state/prov * 0x004 = district * 0x005 = city (prio: highest) * 0x006 = (reserved) * 0x007 = LISP * 0x0r. = registry * -> 2 leftmost bit are |0 1| * gggggggg -> 32-bit GeonameID * 0x11800 = LISP ]]>Description from libipv4addr.h: Supported log file formats Currently native supported log files: Apache log file format, 1st token is IPv4 or IPv6 addressThere are plans to support also mail server log files sometimes in the future, but because of different formats, this would be probably done by a Perl program which parses the log file and a (cached) 'ip6calc' call with action 'anonymize'. Supported options This program anonymizes IPv4/IPv6 addresses in e.g. HTTP server log files [-d|--debug ] : debug value (bitwise like) can also be set by IPV6CALC_DEBUG environment value [-v|--version [-v [-v]]] : version information (2 optional detail levels) [-v|--version -h] : explanation of feature tokens [-V|--verbose] : be more verbose [-h|--help|-?] : this online help [-q|--quiet] : be more quiet [--disable-ip2location ] : IP2Location support disabled [--db-ip2location-disable ] : IP2Location support disabled [--db-ip2location-dir ] : IP2Location database directory (default: /usr/share/IP2Location) [--db-ip2location-lib ] : IP2Location library file (default: libIP2Location.so) [--db-ip2location-only-type ]: IP2Location database only selected type (1-120) [--db-ip2location-allow-softlinks] : IP2Location database softlinks allowed by default they are ignored because it is hard to autodetect COMM/LITE/SAMPLE [--db-ip2location-lite-to-sample-autoswitch-max-delta-months ]: autoswitch from LITE to SAMPLE databases if possible and delta is not more than 12 months (0=disabled) [--db-ip2location-comm-to-lite-switch-min-delta-months ]: switch from COMM to LITE databases if possible and delta more than 12 months (0=disabled) [--disable-geoip ] : GeoIP support disabled [--db-geoip-disable ] : GeoIP support disabled [--db-geoip-dir ] : GeoIP database directory (default: /usr/share/GeoIP) [--db-geoip-lib ] : GeoIP library file (default: libGeoIP.so.1) [--db-mmdb-lib ] : MaxMindDB library file (default: libmaxminddb.so.0) [--disable-geoip2 ] : GeoIP (MaxMindDB) support disabled [--db-geoip2-disable ] : GeoIP (MaxMindDB) support disabled [--db-geoip2-dir ] : GeoIP (MaxMindDB) database directory (default: /usr/share/GeoIP) [--disable-dbip2 ] : db-ip.com (MaxMindDB) support disabled [--db-dbip2-disable ] : db-ip.com (MaxMindDB) support disabled [--db-dbip2-dir ] : db-ip.com (MaxMindDB) database directory (default: /usr/share/DBIP) [--db-dbip2-only-type ] : db-ip.com (MaxMindDB) database only selected type (1-10) [--db-dbip2-comm-to-free-switch-min-delta-months ]: switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) [--disable-dbip ] : db-ip.com support disabled [--db-dbip-disable ] : db-ip.com support disabled [--db-dbip-dir ] : db-ip.com database directory (default: /usr/share/DBIP) [--db-dbip-only-type ] : db-ip.com database only selected type (1-10) [--db-dbip-comm-to-free-switch-min-delta-months ]: switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) [--disable-external ] : External support disabled [--db-external-disable ] : External support disabled [--db-external-dir ] : External database directory (default: /usr/share/ipv6calc/db) [--disable-builtin ] : BuiltIn support disabled [--db-builtin-disable ] : BuiltIn support disabled [--db-priorization [:...]] : Database priorization order list (overwrites default) colon separated: GeoIP GeoIP2 IP2Location DBIP DBIP2 External BuiltIn [-w|--write] : write output to file instead of stdout [-a|--append] : append output to file instead of stdout [-f|--flush] : flush output after each line [-V|--verbose] : be verbose [-n|--nocache] : disable caching [-c|--cachelimit ] : set cache limit default: 20 maximum: 200 Shortcut for anonymization presets: --anonymize-standard (default) --anonymize-careful --anonymize-paranoid Supported methods [--anonymize-method METHOD]: anonymize : reliable anonymization, keep as much type information as possible zeroize : simple zeroizing according to given masks, probably loose type information keep-type-asn-cc: special reliable anonymization, keep type & Autonomous System Number and CountryCode keep-type-geonameid: special reliable anonymization, keep type & GeonameID Available presets (shortcut names) [--anonymize-preset|ap PRESET-NAME]: anonymize-standard (as): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac=24 mask-autoadjust=yes method=anonymize anonymize-careful (ac): mask-ipv6= 48 mask-ipv4=20 mask-eui64=24 mask-mac=24 mask-autoadjust=yes method=anonymize anonymize-paranoid (ap): mask-ipv6= 40 mask-ipv4=16 mask-eui64= 0 mask-mac=24 mask-autoadjust=no method=anonymize zeroize-standard (zs): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac=24 mask-autoadjust=yes method=zeroize zeroize-careful (zc): mask-ipv6= 48 mask-ipv4=20 mask-eui64=24 mask-mac=24 mask-autoadjust=yes method=zeroize zeroize-paranoid (zp): mask-ipv6= 40 mask-ipv4=16 mask-eui64= 0 mask-mac=24 mask-autoadjust=no method=zeroize keep-type-asn-cc (kp): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac=24 mask-autoadjust=yes method=keep-type-asn-cc keep-type-geonameid (kg): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac=24 mask-autoadjust=yes method=keep-type-geonameid Custom control: --mask-ipv4 : mask IPv4 address [0-32] (even if occurs in IPv6 address) --mask-ipv6 : mask IPv6 prefix [0-64] (only applied to related address types) --mask-eui64 : mask EUI-64 address or IPv6 interface identifier [0-64] --mask-mac : mask MAC address [0-48] --mask-autoadjust yes|no: autoadjust mask to keep type/vendor information regardless of less given mask Takes data from stdin, outputs the processed data to stdout (default) ]]> Usage Offline anonymization /path/to/http_log_anonymized ]]> On-the-fly online anonymization for Apache Webserver
Note: since 0.91.1 also a module for Apache Webserver is available (see below) supporting anonymized logging
(Supported since 0.90.0) Adjust or add (note: more than one CustomLog directive is supported by Apache) httpd.conf like following: In case of “cronolog” is used on the system, configure like this: Apache version < 2.4: Apache version >= 2.4:
External database update helper scripts The “tools” subdirectory contains helper scripts for updating external databases. IP2Location ] [-n] [-s] -D database destination directory (optional) -n no action (dry-run) -s skip already successfully downloaded files database directory: /usr/share/IP2Location (default: /usr/share/IP2Location) it honors externally defined environment value: IP2LOCATION_DAT_DIR this script will download data from ip2location.com into given/set database directory Sample databases: IP2LOCATION_DAT_FILES_SAMPLE=IPv4:20 IPv6:20 IPv4:24 IPv6:24 Lite (free) databases: IP2LOCATION_DAT_FILES_LITE_FREE=IPv4:1 IPv6:1 With authentication (requires login/password in /home/compile/.ip2location) and a valid subscription IP2LOCATION_DAT_FILES_LITE= Credentials must be defined in $HOME/.ip2location by login=IP2LOCATION-LOGIN password=IP2LOCATION-PASSWORD In addition settings from above can be overwritten by setting related variables ]]> GeoIP Just note that old database format (version 1) is no longer supported for free download, ipv6calc >= 2.0.0 supports also MaxMindDB format, ipv6calc >= 3.0.0 drops legacy download capability ] [-v] [-s] [-L] [-G] -s skip download -D database directory (optional) -v verbose database directory: @GEOIP2_DB@ (default: @GEOIP2_DB@) it honors externally defined environment value: prio 1: GEOIP_DAT_DIR prio 2: IPV6CALC_DB_GEOIP2_DIR adjust /etc/GeoIP.conf in advance: EditionIDs GeoLite2-Country GeoLite2-City GeoLite2-ASN (in case a valid license key exists, add key and extend EditionIDs related) see also https://dev.maxmind.com/geoip/geoipupdate/ ]]> DB-IP.com Since ipv6calc >= 2.0.0 supports also MaxMindDB format, so download of CSV files and converting them into BerkeleyDB format is no longer required. ] [-U ] [-T ] -s skip download -v verbose -D database directory (optional) -U use URL to download full database -T set type of via URL downloaded file MMDB: country|isp|location|*location-isp* CSV : isp|location|*full* database directory: /usr/share/DBIP (default: /usr/share/DBIP) it honors externally defined environment value: prio 1: DBIP_DAT_DIR prio 2: IPV6CALC_DB_DBIP2_DIR this script will download data from DB-IP.com (default: free versions) the MaxMindDB (mmdb) files DB files for ipv6calc "DBIP" database support DBIP_DAT_URL_BASE=http://download.db-ip.com/free/ DBIP_DAT_FILES=dbip-country-lite-%Y-%m.mmdb.gz dbip-city-lite-%Y-%m.mmdb.gz in case -U (take URL from subscription e-mail) is provided, it downloads the database use -T in case it's not "location-isp" ]]> External ] -s skip download -u unconditional update -D database directory (optional) database directory: /usr/share/ipv6calc/db (default: /usr/share/ipv6calc/db) it honors externally defined environment value: IPV6CALC_DAT_DIR this script (and its helper scripts) will download data from registries and generate Berkeley DB files for ipv6calc "external" database support ]]> Perl CGI wrapper program "ipv6calcweb.cgi" Because calling C programs directly as CGI isn't really recommended (too much security troubles all the time), I wrote a small wrapper utility which calls "ipv6calc" to get information about client and server address for displaying on a web page. Examples A demonstration about which kind of output is possible to produce is shown at http://ip.bieringer.net/ (IPv4/IPv6)http://www.ipv6.bieringer.de/ (IPv6 only)http://mirrors.bieringer.de/ (IPv4/IPv6) Webserver log statistics helper program "ipv6logstats" This program parses a given webserver logfile and count addresses, useful for time period statistics. Since version 0.95.0 it has extended output, adding a date/time line and statistics by Country Code and ASN (if required databases are available). Supported options Takes web server log data (or any other data which has IPv4/v6 address in first column) from stdin and print statistics table/list (depending on option) to stdout [-d|--debug ] : debug value (bitwise like) can also be set by IPV6CALC_DEBUG environment value [-v|--version [-v [-v]]] : version information (2 optional detail levels) [-v|--version -h] : explanation of feature tokens [-V|--verbose] : be more verbose [-h|--help|-?] : this online help [-q|--quiet] : be more quiet [--disable-ip2location ] : IP2Location support disabled [--db-ip2location-disable ] : IP2Location support disabled [--db-ip2location-dir ] : IP2Location database directory (default: /usr/share/IP2Location) [--db-ip2location-lib ] : IP2Location library file (default: libIP2Location.so) [--db-ip2location-only-type ]: IP2Location database only selected type (1-120) [--db-ip2location-allow-softlinks] : IP2Location database softlinks allowed by default they are ignored because it is hard to autodetect COMM/LITE/SAMPLE [--db-ip2location-lite-to-sample-autoswitch-max-delta-months ]: autoswitch from LITE to SAMPLE databases if possible and delta is not more than 12 months (0=disabled) [--db-ip2location-comm-to-lite-switch-min-delta-months ]: switch from COMM to LITE databases if possible and delta more than 12 months (0=disabled) [--disable-geoip ] : GeoIP support disabled [--db-geoip-disable ] : GeoIP support disabled [--db-geoip-dir ] : GeoIP database directory (default: /usr/share/GeoIP) [--db-geoip-lib ] : GeoIP library file (default: libGeoIP.so.1) [--db-mmdb-lib ] : MaxMindDB library file (default: libmaxminddb.so.0) [--disable-geoip2 ] : GeoIP (MaxMindDB) support disabled [--db-geoip2-disable ] : GeoIP (MaxMindDB) support disabled [--db-geoip2-dir ] : GeoIP (MaxMindDB) database directory (default: /usr/share/GeoIP) [--disable-dbip2 ] : db-ip.com (MaxMindDB) support disabled [--db-dbip2-disable ] : db-ip.com (MaxMindDB) support disabled [--db-dbip2-dir ] : db-ip.com (MaxMindDB) database directory (default: /usr/share/DBIP) [--db-dbip2-only-type ] : db-ip.com (MaxMindDB) database only selected type (1-10) [--db-dbip2-comm-to-free-switch-min-delta-months ]: switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) [--disable-dbip ] : db-ip.com support disabled [--db-dbip-disable ] : db-ip.com support disabled [--db-dbip-dir ] : db-ip.com database directory (default: /usr/share/DBIP) [--db-dbip-only-type ] : db-ip.com database only selected type (1-10) [--db-dbip-comm-to-free-switch-min-delta-months ]: switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) [--disable-external ] : External support disabled [--db-external-disable ] : External support disabled [--db-external-dir ] : External database directory (default: /usr/share/ipv6calc/db) [--disable-builtin ] : BuiltIn support disabled [--db-builtin-disable ] : BuiltIn support disabled [--db-priorization [:...]] : Database priorization order list (overwrites default) colon separated: GeoIP GeoIP2 IP2Location DBIP DBIP2 External BuiltIn [-u|--unknown] : print unknown IP addresses to stderr [-c|--columns] : print statistics in columns (1) [-N|--column-numbers] : print column numbers [-n|--noheader] : don't print header in columns mode (1) [-o|--onlyheader] : print only header in columns mode (1) [-p|--prefix ] : print token as prefix (1) [-s|--simple] : disable extended statistic (CountryCode/ASN) (1) unsupported for CountryCode & ASN statistics ]]> Usage There are a README and some helper scripts available in the package how to use this program and how to generate a graph using Gnuplot. Line-by-line output The example shows output version 3.0, which Header section, since output version 3.0 (>= 0.95.0) additional lines starting with '*3*' and '*DateTime' and '*UnixTime' included Simple statistics section External database supported output since output version 3.0 (>= 0.95.0) Country Code / Proto Proto / Country Code (“ALL” line contains: ALL IPv4 IPv6) Autonomous System number / Proto Proto / Autonomous System number (“ALL” line contains: ALL IPv4 IPv6) Column output Column output does not support version 3 extension, only simple statistics with a header line: An optional prefix token can be given (“-p <prefix>”) to create e.g. in a for-loop one line per month and put month in front of statistics, also the header line can be suppressed (“-n”). Examples A demonstration with real data is available at http://mirrors.bieringer.de/stats/timeline.html. Apache web server module “mod_ipv6calc” This Apache web server module (since version 0.99.1, released 2015) interfaces with internal ipv6calc library to support Client IP address anonymization “on-the-fly”, exported to IPV6CALC_CLIENT_IP_ANON depending on the configured anonymization method 3rd party database is requiredCountry code of client IP address, exported to IPV6CALC_CLIENT_COUNTRYCODE requires 3rd party database: GeoIP or IP2Location or DB-IP.comAutonomous System Number (ASN) of client IP address, exported to IPV6CALC_CLIENT_ASN requires 3rd party database: GeoIPRegistry of client IP address, exported to IPV6CALC_CLIENT_REGISTRY requires internal or “external” databaseConfigured IP address anonymization method, exported to IPV6CALC_ANON_METHOD Installation Install compiled Apache module “mod_ipv6calc” to Apache's module directory Install included default configuration file “ipv6calc.conf” to Apache's config directory (usually conf.d) Configuration Enable in “ipv6calc.conf” loading of module Enable module itself Adjust configuration settings, if needed (see examples in “ipv6calc.conf”) Review predefined log format s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined_anon ]]>Enable custom log with anonymized information, using the predefined LogFormat Restart Apache web server, check error_log for any issues Result The new log file contains anonymized requests like Post-analysis in case of anonymization method “keep-type-asn-cc” In case “keep-type-asn-cc” is configured and also working (required databases are available), related information of anonymized IP addresses can be retrieved using “ipv6calc” or “ipv6logstats”. History Major extensions/changes are listed here 2021 add support for compressed IPv4 addresses like 10/8 (>= 3.1.0)add support for octal representation of IPv4 addresses (>= 3.3.0)add Database Dump action (>= 3.3.0) 2020 drop GeoIP(legacy) support (>= 3.0.0)drop db-ip.com(BerkeleyDB) support (>= 3.0.0) 2019 add OUI-28 support (>= 2.2.0)add action “addr2cc” (can be used as replacement for geoiplookup) (>= 2.1.0)enable “geonameid” also in mod_ipv6calc (>= 2.1.0)add anonymization method “keep-type-geonameid” (>= 2.1.0)add support for MaxMindDB (GeoIP, db-ip.com) (>= 2.0.0)drop support of IP2Location libraries < 7.0.1 (>= 2.0.0) 2017 add support for LISP detectionadd support for non-free versions DB-IP.com databasesfinally release 1.0.0 after 16 year of development 2016 implement action 'test' and extend action 'filter' with support of address ranges (>= 0.99.2) 2015 Introduce mod_ipv6calc for Apache web server (>= 0.99.1)Add support for DB-IP.com databases (by generated Berkeley DB files) (>= 0.98.0)Add support for “External” database files (generated Berkeley DB files), superseeding (if newer) built-in IPv4/IPv6->Registry and adding IPv4/IPv6->CountryCode support (>= 0.98.0)Extend filter options with support of CountryCode, ASN or Registry (>= 0.99.0)Add support for IP2Location LITE databases (>= 0.99.0), add configurable IP2Location database autoselection support 2014 Shared library mode supported (reduces size of binaries) 2013 Prefix and IID anonymization methodsSupport of dynamic load of GeoIP and IP2Location librariesSpecifying dedicated GeoIP and IP2Location database files is now replaced by specifying dedicated database directories to make especially for GeoIP use of more database files. 2011 ipv6calc/ipv6calcweb.cgi: enable included GeoIP support with IPv6 (usable with GeoIP >= 1.4.5)ipv6calc: extend for 6rd support (--action 6rd_local_prefix --6rd_prefix <PREFIX> --6rd_relay_prefix <RELAY_PREFIX>)ipv6calc: enable stdin support for bulk transformationipv6calc: add support for NAT64 address typeipv6calc: add option “forceprefix <LENGTH>” to print prefix of an address without a given prefix lengthipv6loganon: extend for pipe usage (e.g. in Apache log file directive) and write/append to specified fileGeneral: add configure options to disable built-in databases (reduce binary size a lot, e.g. for embedded devices) 2002-2010 See ChangeLog@GitHub for now 2001 Start of development
ipv6calc-4.1.0/doc/ipv6calc.xml000066400000000000000000003375761444154247200162550ustar00rootroot00000000000000
The ipv6calc Homepage PeterBieringer
pb at bieringer dot de
11.0.1 2022-12-22 PB
General ipv6calc is a small utility written in programming language C to manipulate (not only) IPv6 addresses and is able to do other tricky things. Intentions were convering a given IPv6 address into compressed format, convering a given IPv6 address into the same format like shown in /proc/net/if_inet6 and (because it was not difficulty) migrating the Perl program ip6_int into. Now only one utility is needed to do a lot. This utility was also used in the past to extend features on network-functions-ipv6 library, used by initscripts-ipv6. Note: this tool got also its freecode.com (former freshmeat, now also EOL) / ipv6calc page (but this is not maintained by the author) Latest version Latest version since last update of this page is 4.0.0 Included programs “ipv6calc”: the main utility“ipv6calcweb”: CGI wrapper for ipv6calc's address information output“ipv6logconv”: log converter (IPv4/IPv6)“ipv6loganon”: log anonymizer (IPv4/IPv6)“ipv6logstats”: log statistic generator (IPv4/IPv6)“mod_ipv6calc”: Apache module Included databases If not disabled during compiling of the tool, following databases are statically included, since version 0.95.0 internally mentioned as “BuiltIn”: IEEE IAB, OUI, OUI-28, OUI-36 databases (for decoding vendor part of MAC/EUI-48/EUI-64)IPv4 assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for selecting proper registry in ipv6calcweb.cgi and IPv4 anonymization)IPv6 assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for selecting proper registry in ipv6calcweb.cgi and IPv6 anonymization)ASN assignment databases from IANA, ARIN, RIPENCC, APNIC, LACNIC, AFRINIC (for IPv4/IPv6 anonymization)LISP assignment database for supplying extra info Possible external databases If enabled during compiling the tool, following external (but local stored) databases can be used GeoIP IPv4 “legacy” (since 0.61.0, released 2006 until 3.0.0 released 2020)IPv6 “legacy” (since 0.90.0, released 2011, req. GeoIP >= 1.4.5 until 3.0.0 released 2020)GeoIP2 (native MaxMindDB file support since 2.0.0, release 2019)IP2Location IPv4 (since 0.60.0, released 2006)IPv6 (since 0.70.0, released 2007, IP2Location LITE IPv6 Databases since 0.99.0, released 2015)release 0.99.0 is tested against IP2Location >= 4.0.2release >= 2.0.0 && < 3.0.0 is only working with IP2Location >= 7.0.1release >= 3.0.0 is only working with IP2Location >= 8.2.0DB-IP.com (since 0.98.0, released 2015 until 3.0.0 released 2020) based on local Berkeley DB files generated from downloaded CSV filesnative MaxMindDB files (support since 2.0.0, released 2019)“External” (since 0.98.0, released 2015), based on local Berkeley DB files, generated from downloaded TXT/XML files (registries assignment databases). Supporting IPv4/IPv6 to Registries and IPv4/IPv6 to CountryCode. If newer, overruling the related included databases.Since version 0.95.0 the tool can be compiled to use dynamically loading of library, means the binaries can be also used on systems where IP2Location or GeoIP libraries are not existing. On such system, the support is simply disabled then and some capabilities/features which requires the databases are disabled. Since version 0.97.4 also fallback code for GeoIP and IP2Location is included in the source package, means that support of dynamically loading of library can be included during compilation without having related development sources on the system. Since version 2.0.0 MaxMindDB is supported (linked or dynamically loaded) Since version 3.0.0 GeoIP(legacy) and db-ip.com(BerkeleyDB) is remoed License The program is published under the GNU GPL version 2. Copyright (C) 2001 - 2021 by Dr. Peter Bieringer Author The author of ipv6calc is Dr. Peter Bieringer with some minor contribution by others Where to get sources or binaries Latest version of sources Via GitHub (since 2016-09-05) at GitHub / ipv6calc Releases as tar.gz or zip via HTTPS at GitHub / ipv6calc / releases as tar.gz (signed) from DeepSpace6 via FTP DeepSpace6 / anonymous FTP or HTTP www.deepspace6.net mapped FTPvia ftp.bieringer.de / anonymous FTP or HTTP at www.bieringer.de mapped FTPSince version 0.95.0 packages are signed with new GPG key, also available here: CODE-GPG-KEY-bieringer.de-2013 @ftp.bieringer.de or CODE-GPG-KEY-bieringer.de-2013 @ftp.deepspace6.net ]]>A SPEC file is included, so you can build a RPM from tar.gz using In addition, conditional build options are available (see related configure options below): as RPM Can be searched via rpmfind / ipv6calc. Ready to use packages for several operating systems: Fedora Linux Fedora 29 is the current developing platform, so use given hints above to create a RPM. Since Fedora 7 this package is included by default. See also FedoraProject / Packages / ipv6calc Red Hat Enterprise Linux and clones It's tested by the developer that creation of the RPM is working fine starting with RHEL 4. Major version 5 has the package included by default (but a rather old version) RPMs of newer releases are available as test builds on koji, see related URL in announcements ipv6calc-announce / list archive*** Untested since version 2.0.0 because OS is out of support ***Major version 6: available since September 2014 on FedoraProject / EPEL, see also FedoraProject / Packages / ipv6calc *** Untested since version 3.0.1 because OS is out of support ***Major version 7: available since Decenber 2016 on FedoraProject / EPEL, see also FedoraProject / Packages / ipv6calcMajor version 8: available since September 2019 on FedoraProject / EPEL, see also FedoraProject / Packages / ipv6calcCentOS 7 and Rocky 8 are also platforms for regression tests. Gentoo/Funtoo Package is maintained, nevertheless, Funtoo is used as platform for regression tests. Ubuntu Package is maintained, more information can be found at https://packages.ubuntu.com/ipv6calc Debian GNU/Linux Package is maintained, more information can be found at http://packages.debian.org/ipv6calc openSUSE Package is maintained, more information can be found at http://download.opensuse.org/repositories/home:/uebelhacker/ NetBSD See here for more: ftp://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/net/ipv6calc/README.html FreeBSD See here for more: http://www.freshports.org/net-mgmt/ipv6calc/ (http://www.freebsd.org/cgi/query-pr.cgi?pr=34441) OpenBSD See here for more: http://www.openbsd.org/cgi-bin/cvsweb/ports/net/ipv6calc/ Configuring & Compiling Configuring Following “ipc6calc” related configure options are currently supported (note: disabling the internal databases reduces the size of the resulting binaries/shared library a lot): Compiling As usual, use and run tests afterwards using or at least (e.g. if external databases are not available) Configuring & Compiling with Presets A shell script is included which can configure and compile with standard presets (also used during regression tests): Mailing Lists ipv6calc-announce Reason:sending announcements of new versionsTraffic:very lowPostings:only moderators are allowed to postInformation:DeepSpace6 / maillist ipv6calc-announce ipv6calc Reason:discussionsTraffic:lowPostings:subscribersInformation:DeepSpace6 / maillist ipv6calc Bug Reports You can send bug reports to the author himself or subscribe to maillist “ipv6calc” and send it to the list. Features of ipv6calc Description The main program named “ipv6calc” is able to recognize many (not only) IPv6 address formats and depending on a selectable action (not required) a selectable output format can be specified. Also it has the capability to show detailed information of an IPv4/IPv6 address or anonymize it. List of built-in features Option “-v” shows built-in features, depending on configuration before compiling: Option “-v -v” (since 0.91.0) shows built-in features and capabilities in detail, depending on configuration before compiling: SA* Country4=0 Country6=0 City4=0 City6=0 IP2Location: selected best databases normal Country4=35 Country6=35 City4=35 City6=35 IP2Location: selected best databases method: * = autoswitch from LITE to SAMPLE enabled in case not older than 12 months and having more features IP2Location: selected best databases method: COMM older than 12 months are deselected in case of LITE is available IP2Location: selected best databases method: COMM/LITE/SAMPLE with more features are only selected in case not older than 1 months of already found COMM/LITE/SAMPLE IP2Location: selected best databases method: softlinks: skipped-by-default db-ip.com(MaxMindDB): features available/implemented: 0x30063ff0/0x30063ff0 (100%) DBIP2: info of available databases in directory: /usr/share/DBIP DBIP2: IPv4/v6 CountryCode (FREE) : [1] dbip-country-lite.mmdb (DBIP-Country-Lite Copyright (c) 2019 db-ip.com All Rights Reserved, created: 20190831-232938 UTC) DBIP2: IPv4/v6 City (FREE) : [2] dbip-city-lite.mmdb (DBIP-City-Lite Copyright (c) 2019 db-ip.com All Rights Reserved, created: 20190831-233248 UTC) DBIP2: IPv4/v6 Location+ISP (COMM) : [6] dbip-location-isp.mmdb (DBIP-Location-ISP (compat=Enterprise) Copyright (c) 2019 db-ip.com All Rights Reserved, created: 20190101-015418 UTC) DBIP2: detected best databases FREE Country4=2 Country6=2 City4=2 City6=2 DBIP2: detected best databases COMM Country4=6 Country6=6 City4=6 City6=6 DBIP2: selected best databases normal Country4=6 Country6=6 City4=6 City6=6 DBIP2: selected best databases method: COMM older than 12 months are deselected in case of FREE is available DBIP2: selected best databases method: COMM/FREE with more features are only selected in case not older than 1 months of already found COMM/FREE External: features available/implemented: 0xc00180cc/0xc00180cc (100%) External: info of available databases in directory: /usr/share/ipv6calc/db External: IPv4 Registry : ipv6calc-external-ipv4-registry.db (EXTDB-1/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191227 LACNIC/20200903 LISP/20200318 RIPENCC/20200903, created: 20200904-061346 UTC) External: IPv6 Registry : ipv6calc-external-ipv6-registry.db (EXTDB-2/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191106 LACNIC/20200903 LISP/20200318 RIPENCC/20200903, created: 20200904-063305 UTC) External: IPv4 CountryCode : ipv6calc-external-ipv4-countrycode.db (EXTDB-3/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191227 LACNIC/20200903 LISP/20200318 RIPENCC/20200903, created: 20200904-061347 UTC) External: IPv6 CountryCode : ipv6calc-external-ipv6-countrycode.db (EXTDB-4/AFRINIC/20200904 APNIC/20200903 ARIN/20200903 IANA/20191106 LACNIC/20200903 LISP/20200318 RIPENCC/20200903, created: 20200904-063305 UTC) BuiltIn: features available/implemented: 0x0001c00f/0x0001c00f (100%) BuiltIn: info of available databases BuiltIn: ASN : IANA/20200518 BuiltIn: CC : AFRINIC/20201012 APNIC/20201010 ARIN/20201011 LACNIC/20201009 RIPENCC/20201011 BuiltIn: IPv4 : AFRINIC/20201012 APNIC/20201010 ARIN/20201011 IANA/20191227 LACNIC/20201009 LISP/20200318 RIPENCC/20201011 (created: 20201012-064251 UTC) BuiltIn: IPv6 : AFRINIC/20201012 APNIC/20201010 ARIN/20201011 IANA/20191106 LACNIC/20201009 LISP/20200318 RIPENCC/20201011 (created: 20201012-070210 UTC) BuiltIn: IEEE : IAB/20201012 OUI/20201012 OUI28/20201012 OUI36/20201012 Database selection or priorization ('->': subsequential calls) Database priorization default: GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)->GeoIP->db-ip.com->External->BuiltIn DB_AS_REG (AS-Number to Registry database): BuiltIn DB_CC_REG (CountryCode to Registry database): BuiltIn DB_IPV4_REG (IPv4 to Registry database): BuiltIn DB_IPV6_REG (IPv6 to Registry database): BuiltIn DB_IPV4_AS (IPv4 to AS database): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB) DB_IPV6_AS (IPv6 to AS database): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB) DB_IPV4_CC (IPv4 to CountryCode database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)->External DB_IPV6_CC (IPv6 to CountryCode database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB)->External DB_IPV4_COUNTRY (IPv4 to Country database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB) DB_IPV6_COUNTRY (IPv6 to Country database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB) DB_IPV4_CITY (IPv4 to City database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB) DB_IPV6_CITY (IPv6 to City database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB) DB_IPV4_REGION (IPv4 to Region database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB) DB_IPV6_REGION (IPv6 to Region database): GeoIP(MaxMindDB)->IP2Location->db-ip.com(MaxMindDB) DB_IEEE (IEEE/OUI/OUI28/OUI36 Vendor database): BuiltIn DB_IPV4_INFO (IPv4 additional information): External->BuiltIn DB_IPV6_INFO (IPv6 additional information): External->BuiltIn DB_IPV4_GEONAMEID (IPv4 GeonameID): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB) DB_IPV6_GEONAMEID (IPv6 GeonameID): GeoIP(MaxMindDB)->db-ip.com(MaxMindDB) ]]>Option “-v -h” (since 0.97.4) shows explanation of feature tokens Note: since version 0.95.0 the internal layer for database usage was abstracted and each database “plugin” is initialized reporting then its supporting features in binary representation. This makes implementation of other external databases easier in the future. There are at least plans to create an overlay to built-in databases by publishing and use some “precompiled” newer databases replacing the need of recompilation for updated built-in databases. Examples Conversion A simple example is the conversion of an IPv6 address to a DNS PTR query string: Like you see, input format was autodetected. And the given example can be extended because ipv6calc also understands netmask / prefix length values: Also you've also learnt now that switch '-q' (quiet) suppresses informational messages. You can use this now to start a DNS PTR query using: But ipv6calc can do many more for you! Next example shows you the extraction of the IPv4 address contained in a 6to4 IPv6 address: This also works vice-versa: There are many more features already implemented, if you miss one, send a note. Information Depending on available databases output can vary. Information about a simple IPv6 address: Information about a Teredo IPv6 address: Information about a LISP address Machine readable output There exists also a machine readable output (e.g. used by 'ipv6calcweb.cgi') - in addition, database related information can be displayed, if databases are located on the system and supported. " IPV6CALC_OUTPUT_VERSION=21 IPV6CALC_SETTINGS_ANON="set=keep-type-asn-cc,mask-ipv6=56,mask-ipv4=24,mask-eui64=40,mask-mac=24,method=keep-type-asn-cc" IPV6CALC_FEATURES="GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID" IPV6CALC_CAPABILITIES="GeoIP2(linked/MaxMindDB) IP2Location(linked) DBIP2(linked/MaxMindDB) ExternalDatabase DB_AS_REG(BuiltIn) DB_CC_REG(BuiltIn) DB_IPV4_REG(BuiltIn) DB_IPV6_REG(BuiltIn) DB_IEEE(BuiltIn)" ]]>Special machine readable output options (>= 0.99.0) Output filter by selecting a token (>= 0.99.0) Using option --mrst <TOKEN> (Machine Readable Select Token) can be used to display only a selected token Output filter by matching token (>= 0.99.0) Using option --mrmt <TOKEN> (Machine Readable Match Token) can be used to display only matching tokens Output filter by selecting a value of a token token (>= 0.99.0) Using option --mrtvo <TOKEN> (Machine Readable Token Value Only) can be used to display only thevalue of a selected token Output adjustment by unconditional quoting of values (>= 0.99.0) Using option --mrqva (Machine Readable Quote Values Always) can be used to quote values always of a selected token Output adjustment by unconditional disabling quoted values (>= 0.99.0) Using option --mrqvn (Machine Readable Quote Values Never) can be used to never quote values of a selected token Output adjustment by unconditional print token in case of empty value (>= 0.99.0) Using option --mrstpq (Machine Readable Select Token Print Always) can be used to print always token/value regardless it's contained Filter mode “ipv6calc” can run in filter mode to be able to extract from a huge list of IPv4/IPv6 addresses ones which are interesting or ones which are not interesting (see printout of online help below). Filter tokens are the ones which are listed on “TYPE” lines shown in “-m -i” information mode. Example for searching for Teredo addresses: For more information see below Note: since version 0.95.0 '-A filter' is optional if option '-E <filter expression>' is given (autoselected action). Test mode Since 0.99.2 a test mode ('-A test', autoselected in case 'test_*' options are given) is implemented for address prefix or range For more information see below Option style Since version 0.40 new-style option handling was introduced, using --in <inputtype>--out <outputtype>--action <actiontype>and many more conversions were added. A built-in check matrix should prevent misconversions. Up to version 0.39, only old-style options (aka “shortcut” options). They are one-in-all options, specifying input/action/output in one token. Internally this options will be converted into new-style options. Online help Online help always shows the currently implemented features. Main online help: External database options only appear if compiled with related support. This program formats and calculates IPv6/IPv4/MAC addresses and can do many more tricky things [-d|--debug ] : debug value (bitwise like) can also be set by IPV6CALC_DEBUG environment value [-v|--version [-v [-v]]] : version information (2 optional detail levels) [-v|--version -h] : explanation of feature tokens [-V|--verbose] : be more verbose [-h|--help|-?] : this online help [--disable-ip2location ] : IP2Location support disabled [--db-ip2location-disable ] : IP2Location support disabled [--db-ip2location-dir ] : IP2Location database directory (default: /usr/share/IP2Location) [--db-ip2location-only-type ]: IP2Location database only selected type (1-120) [--db-ip2location-allow-softlinks] : IP2Location database softlinks allowed by default they are ignored because it is hard to autodetect COMM/LITE/SAMPLE [--db-ip2location-lite-to-sample-autoswitch-max-delta-months ]: autoswitch from LITE to SAMPLE databases if possible and delta is not more than 12 months (0=disabled) [--db-ip2location-comm-to-lite-switch-min-delta-months ]: switch from COMM to LITE databases if possible and delta more than 12 months (0=disabled) [--disable-geoip2 ] : GeoIP(MaxMindDB) support disabled [--db-geoip2-disable ] : GeoIP(MaxMindDB) support disabled [--db-geoip2-dir ] : GeoIP(MaxMindDB) database directory (default: /usr/share/GeoIP) [--disable-dbip2 ] : db-ip.com(MaxMindDB) support disabled [--db-dbip2-disable ] : db-ip.com(MaxMindDB) support disabled [--db-dbip2-dir ] : db-ip.com(MaxMindDB) database directory (default: /usr/share/DBIP) [--db-dbip2-only-type ] : db-ip.com(MaxMindDB) database only selected type (1-6) [--db-dbip2-comm-to-free-switch-min-delta-months ]: switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) [--disable-external ] : External support disabled [--db-external-disable ] : External support disabled [--db-external-dir ] : External database directory (default: /usr/share/ipv6calc/db) [--disable-builtin ] : BuiltIn support disabled [--db-builtin-disable ] : BuiltIn support disabled [--db-priorization [:...]] : Database priorization order list (overwrites default) colon separated: GeoIP GeoIP2 IP2Location DBIP DBIP2 External BuiltIn Hint: all long options can be predefined from environment by using prefix: IPV6CALC_ and conversion: '-' -> '_' and lowercase -> uppercase example for options with values : --db-dbip2-dir= -> environment: IPV6CALC_DB_DBIP2_DIR= example for options without values: --db-dbip2-disable -> environment: IPV6CALC_DB_DBIP2_DISABLE=1 on|off|0|1 is supported [-q|--quiet] : be more quiet (auto-enabled in pipe mode) [-f|--flush] : flush each line in pipe mode Usage with new style options: [--in|-I ] : specify input type (default: autodetect) [--out|-O ] : specify output type (sometimes: autodetect) [--action|-A ] : specify action (default: format conversion, sometimes: autodetect) [ ...] : specify format options [...] : input data Available input types: [-m] -I|--in -?|-h|--help Available output types: [-m] -O|--out -?|-h|--help Available action types: [-m] -A|--action -?|-h|--help Special filter action : -E -?|-h|--help Other usage: --showinfo|-i [--machine_readable|-m] : show information about input data --showinfo|-i --mrqva : Machine Readable Quote Values Always --showinfo|-i --mrqvn : Machine Readable Quote Values Never --showinfo|-i --mrst : Machine Readable Select Token --showinfo|-i --mrstpa : Machine Readable Select Token Print Always --showinfo|-i --mrmt : Machine Readable Match Token Prefix --showinfo|-i --mrmts : Machine Readable Match Token Suffix --showinfo|-i --mrtvo : Machine Readable Token Value Only --showinfo|-i --show-tokens : show available tokens (aka types) on '-m' Usage with shortcut options: [ ...] for more information and available format options use: -?|-h|--help -r|--addr2ip6_int (-O revnibbles.int) -r|--addr_to_ip6int (-O revnibbles.int) -a|--addr2ip6_arpa (-O revnibbles.arpa) -a|--addr_to_ip6arpa (-O revnibbles.arpa) -b|--addr_to_bitstring (-O bitstring) --addr2compaddr (--printcompressed) --addr_to_compressed (--printcompressed) --addr2uncompaddr (--printuncompressed) --addr_to_uncompressed (--printuncompressed) --addr_to_base85 (-I ipv6addr -O base85) --base85_to_addr (-I base85 -O ipv6addr) --mac_to_eui64 (-I mac -O eui64) --addr2fulluncompaddr (--printfulluncompressed) --addr_to_fulluncompressed (--printfulluncompressed) --addr2if_inet6 (-I ipv6addr -O ifinet6) --addr_to_ifinet6 (-I ipv6addr -O ifinet6) --if_inet62addr (-I ifinet6 -O ipv6addr --printcompressed) --ifinet6_to_compressed (-I ifinet6 -O ipv6addr --printcompressed) --eui64_to_privacy (-I iid_token -O iid_token -A genprivacyiid) --ipv4_to_6to4addr (-I ipv4 -O ipv6addr -A conv6to4) --addr2cc (-A addr2cc) ]]> Database options each internal/external database can be disabled by optiondirectory of database files can be given via related optiondatabases requiring external library the library file can be given in case of dynamic load and linkingfor geolocation databases specific file can be selected (see --db-<PROVIDER>-only-type <TYPE>) IP2Location IP2location database directory can contain a bunch of files, the best ones are selected automatically (since 0.99.0). “Best” can be controlled via two options: --db-ip2location-lite-to-sample-autoswitch-max-delta-months <MONTHS>: switches from LITE to SAMPLE databases in case of existing SAMPLE databaseSAMPLE database not older than default/given MONTHS than the LITE databaseIP address is in range of SAMPLE database (IPv4: 0.0.0.0-99.255.255.255, IPv6: 2a04::/16)autoswitch can be disabled by using MONTHS=0reason for implementation: show maximum possible IP2Location features--db-ip2location-comm-to-lite-switch-min-delta-months <MONTHS>: switches from COMMercial to LITE databases in case of existing LITE databaseCOMMercial database is default/given MONTHS older than the LITE databaseswitch can be disabled by using MONTHS=0reason for implementation: avoid using old COMMercial databases--db-ip2location-only-type <TYPE>: only selects databases of given type reason for implementation: be able to select a specific database type--db-ip2location-allow-softlinks: allow softlinked IP2Location database files by default, softlinked database files are skipped, because it's hard to detect whether one is COMMercial, LITE or SAMPLE use “ipv6calc -vv” or “ipv6calc -vvv” for verification, which databases are selected finally. Input-type options Available input types: auto : automatic detection revnibbles.int : dot separated nibbles reverse, ending with ip6.int. revnibbles.arpa : dot separated nibbles reverse, ending with ip6.arpa. bitstring : bitstring labes, ending with ip6.arpa. ipv6addr : IPv6 address ipv6literal : IPv6 address in literal ipv4addr : IPv4 address ipv4hex : IPv4 in hexdecimal format ipv4revhex : IPv4 in byte-reversed hexdecimal format mac : MAC address (48 bits) eui64 : EUI-64 identifier (64 bits) base85 : Base-85 string ifinet6 : Like line in /proc/net/if_inet6 iid+token : Interface identifier and token ipv6logconv : ipv6logconv (currently not supported) prefix+mac : IPv6 prefix and a MAC address asn : Autonomous System Number ]]> Output-type options: Available output types: revnibbles.int : dot separated nibbles reverse, ending with ip6.int. revnibbles.arpa : dot separated nibbles reverse, ending with ip6.arpa. bitstring : bitstring labes, ending with ip6.arpa. ipv6addr : IPv6 address ipv4addr : IPv4 address mac : MAC address (48 bits) eui64 : EUI-64 identifier (64 bits) base85 : Base-85 string ifinet6 : Like line in /proc/net/if_inet6 iid : Interface identifier iid+token : Interface identifier and token addrtype : Address type ouitype : OUI (IEEE) type ipv6addrtype : IPv6 address type any : any type (currently not supported) revipv4 : reverse IPv4, ending with in-addr.arpa ipv4hex : IPv4 in hexdecimal format octal : IP address in escaped octal format hex : IP address in hexadecimal format ipv6literal : IPv6 address in literal ]]>For examples and available format options use: --examples ]]> Action-type options: Available action types: auto : Automatic selection of action (default) geneui64 : Converts a MAC address to an EUI-64 address conv6to4 : Converts IPv4 address <-> 6to4 IPv6 address (prefix) convnat64 : Converts IPv4 address <-> NAT64 IPv6 address ipv6tomac : Extracts MAC of an IPv6 address (if detected) ipv6toeui64 : Extracts EUI64 of an IPv6 address (if detected) genprivacyiid : Generates a privacy interface ID out of a given one (arg1) and a token (arg2) prefixmac2ipv6 : Generates an IPv6 address out of a prefix and a MAC address anonymize : Anonymize IPv4/IPv6 address without loosing much information 6rd_local_prefix : Calculate the 6rd prefix from given IPv6 prefix (& relay prefix) and IPv4 Options: --6rd_prefix ... (required) --6rd_relay_prefix ... (optional) 6rd_extract_ipv4 : Extract from 6rd address the include IPv4 address Options: --6rd_prefixlength ... (required) filter : Filter addresses related to filter options test : Test address against given prefix or address Options: --test_prefix ... (optional) --test_gt ... (optional) --test_ge ... (optional) --test_lt ... (optional) --test_le ... (optional) addr2cc : Converts IPv4/IPv6 address into Country Code dbdump : Dump Database ]]> Special action “filter”: Special action “filter” can be used especially in pipe mode to filter IP addresses related to their type and since 0.99.0 also related to database results (CountryCode, ASN or Registry). ' is given) negation of filter expression with prefix: ^ IPv6 address filter tokens: ipv6 unknown unicast multicast anycast loopback link-local site-local compat-v4 mapped reserved unique-local-unicast anonymized-iid anonymized-prefix 6to4 6bone global-unicast unspecified solicited-node productive 6to4-microsoft teredo orchid link-local-teredo nat64 iid-random iid iid-local iid-global iid-teredo iid-eui48 iid-eui64 iid-isatap iid-includes-ipv4 IPv4 address filter tokens: ipv4 any unicast multicast anycast broadcast loopback unspecified unknown reserved zeroconf site-local anonymized anonymized-geonameid global 6to4relay lisp lisp-proxyegresstunnelrouter-anycast lisp-mapresolver-anycast IPv4/v6 address filter tokens based on databases: [^][ipv4.|ipv6.]db.cc=|unknown (Country Code [2 chars]) [^][ipv4.|ipv6.]db.asn=|unknown (Autonomous System Number) [^][ipv4.|ipv6.]db.reg= Registry tokens: 6BONE IANA APNIC ARIN RIPENCC LACNIC AFRINIC 6TO4 reserved unknown IPv4/v6 address filter tokens based on address/mask: [^]ipv4.addr=[] [^]ipv6.addr=[] IPv4/v6 address filter tokens based on address ranges (<=|<|>|>=): [^]ipv4.addr(<=|<|>|>=) [^]ipv6.addr(<=|<|>|>=) as alternative in case <|> creating problems also supported: =(le|lt|gt|ge)=: [^]ipv4.addr=(le|lt|gt|ge)= [^]ipv6.addr=(le|lt|gt|ge)= EUI-48/MAC address filter tokens: IMPLEMENTATION MISSING EUI-64 address filter tokens: IMPLEMENTATION MISSING ]]>Example for some filter expressions: Example for searching for addresses in a specific range (supported since 0.99.2): Special action “test”: Special action “test” (since 0.99.2) can be used in command line or pipe mode (single address only) to test IP addresses related to a given prefix or range . : inside a prefix --test_gt|--test_ge
: greater(/equal) than an address --test_lt|--test_le
: less(/equal) than an address Test given address(es) from stdin, e.g. echo '2001:db8::1' | ipv6calc [-A test] --test_prefix 2001:db8::/32 echo '2001:db8::1' | ipv6calc [-A test] --test_prefix 2001:db9::/32 Single address test, return code: 0=inside/matching 1=outside/not-matching 2=uncomparable ipv6calc [-A test] --test_prefix 2001:db8::/32 2001:db8::1 ipv6calc [-A test] --test_prefix 2001:db9::/32 2001:db8::1 ipv6calc [-A test] --test_ge 2001:db8:: --test_le 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff 2001:db8::1 ipv6calc [-A test] --test_ge 2001:db9:: --test_le 2001:db9:ffff:ffff:ffff:ffff:ffff:ffff 2001:db8::1 ipv6calc [-A test] --test_ge 2001:db9:: --test_lt 2001:dba:: 2001:db8::1 ipv6calc [-A test] --test_ge 2001:db8:: --test_lt 2001:db9:: 2001:db8::1 ]]>Example for command line mode: Example for command line mode (quiet): Example for pipe mode: Special action “conv6to4”: Special action “conv6to4” (since at least 0.99.1) can be used in command line or pipe mode to convert 6to4-IPv6 in IPv4 addresses and vice versa. 2002:c000:201:: ipv6calc -A conv6to4 192.0.2.1/24 -> 2002:c000:200::/40 ipv6calc -A conv6to4 192.0.2.0/24 -> 2002:c000:200::/40 ipv6calc -A conv6to4 2002:c000:201:: -> 192.0.2.1 ipv6calc -A conv6to4 2002:c000:201::/40 -> 192.0.2.0/24 See '-O ipv4 -h' or '-O ipv6 -h' for optional output modifications Can also be used in PIPE mode to convert a list of IP addresses/networks ]]>Example for command line mode: Example for pipe mode: Special action “dbdump”: Since version 3.3.0, action “dbdump” is provided Version >= 3.3.0: database “External”, type: IPv4/IPv6 addresses, suppported filter: CountryCodePrecondition: created/updated “External” database Precondition: active “database dump” support &1 | grep -E '(DB_IPV4_DUMP_CC|DB_IPV6_DUMP_CC)' ipv6calc: version 3.3.0 GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID DB_IPV4_DUMP_CC DB_IPV6_DUMP_CC ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID DB_IPV4_DUMP_CC (IPv4 Database Dump by CountryCode): External DB_IPV6_DUMP_CC (IPv6 Database Dump by CountryCode): External ]]>Precondition: recognized “External” database &1 | grep -E '(External: IPv. CountryCode)' External: IPv4 CountryCode : ipv6calc-external-ipv4-countrycode.db (EXTDB-3/AFRINIC/20210919 APNIC/20210917 ARIN/20210919 IANA/20210205 LACNIC/20210918 LISP/20200318 RIPENCC/20210918, created: 20210919-152957 UTC) External: IPv6 CountryCode : ipv6calc-external-ipv6-countrycode.db (EXTDB-4/AFRINIC/20210919 APNIC/20210917 ARIN/20210919 IANA/20191106 LACNIC/20210918 LISP/20200318 RIPENCC/20210918, created: 20210919-155049 UTC) ]]>Usage Example: dump all IPv4 networks which have not “unknown” CountryCode Usage Example: dump all IPv6 networks of a given CountryCode Usage Example: dump all IPv4 networks of two given CountryCodes Usage Example: dump all IPv4 networks of a given CountryCode incl. automatic conversion into 6to4 addresses Usage Example: dump all IPv6to4 networks of a given CountryCode in “ipset restore” compatible format and create/update “ipset” (related “sudo” command whitelist have to be created in advance) /path/to/ipset-Net_VN_IPv6to4.txt $ sudo ipset restore -f /path/to/ipset-Net_VN_IPv6to4.txt $ sudo ipset list Net_VN_IPv6to4 -t Name: Net_VN_IPv6to4 Type: hash:net Revision: 7 Header: family inet6 hashsize 1024 maxelem 65536 bucketsize 12 initval 0x30b0bdaf Size in memory: 41344 References: 0 Number of entries: 723 ]]>Hint: try also helper script for 'ipset' management Webserver log conversion helper program "ipv6logconv" This program parses address tokens of a given webserver logfile and converts them to special strings, useful for statistics (e.g. created by using "analog"). Supported options This program converts IPv4/IPv6 addresses in HTTP server log files [-d|--debug ] : debug value (bitwise like) can also be set by IPV6CALC_DEBUG environment value [-v|--version [-v [-v]]] : version information (2 optional detail levels) [-v|--version -h] : explanation of feature tokens [-V|--verbose] : be more verbose [-h|--help|-?] : this online help Performance options: [-n|--nocache] : disable caching [-c|--cachelimit ] : set cache limit default: 20 maximum: 200 Output options: [--out ] : specify output type addrtype : Address type ouitype : OUI (IEEE) type ipv6addrtype : IPv6 address type any : any type Takes data from stdin, proceed it to stdout ]]> Examples A demonstration about which kind of statistics are possible to produce is shown at http://www.ipv6.bieringer.de/ (IPv6 only). Usage Example: See more examples inside the package. Webserver log anonymization helper program "ipv6loganon" On autoconfiguration, the interface part of an IPv6 address is based on the MAC address of the network interface card (NIC). This address is used for outgoing requests, if privacy option (RFC3041 / RFC4941) is not enabled. This results in many privacy related information on web- or mail-server log files. Administrators, which won't (be allowed to) store such information over time, but still do not want to loose information about address type distribution should use 'ipv6loganon' to anonymize their log files. Since version 0.94.0 internally also IID anonymization is possible without loosing any information for “ipv6logstats”. Since version 0.95.0 internally also prefix anonymization is possible without loosing any information for “ipv6logstats”. Anonymization details Method “zeroize” The anonymizer would keep as much information as possible for IPv6 address types. Client-side IID would be anonymized by EUI-48 based: serial number would be zero'ed, keeping OIDEUI-64 based: serial number would be zero'ed, keeping OIDISATAP: client IPv4 address would be anonymized by given IPv4 maskTEREDO: client IPv4 address would be anonymized by given IPv4 mask, client port would be zero'ed6to4(Microsoft): client IPv4 address would be anonymized by given IPv4 masklocal: whole IID would be zero'edClient-side SLA would be anonymized by SLA would be zero'edPrefix would be anonymized by 6to4: client IPv4 address would be anonymized by given IPv4 maskCompat/Mapped IPv4 addresses would be anonymized by IPv4 address would be anonymized by given IPv4 mask Method “anonmize” The anonymizer would keep as much information as possible for the IID of an IPv6 address. Description from libipv6addr.h: RFC 4941 anonymized privacy extension Interface ID * * a9p9 4291 4xxx xxxC -> RFC 4291 anonymized EUI-48 Interface ID, xxx xxx = converted OUI * a9p9 4291 5xxx xxxC -> RFC 4291 anonymized EUI-48 Interface ID, xxx xxx = converted mapped IAB/OUI-36 * a9p9 4291 6xxx xxxC -> RFC 4291 anonymized EUI-64 Interface ID, xxx xxx = converted OUI * a9p9 4291 7xxx xxxC -> RFC 4291 anonymized EUI-64 Interface ID, xxx xxx = converted mapped IAB/OUI-36 * a9p9 4291 8xxx xxxC -> RFC 4291 embedded anonymized IPv4 address, xxx xxx = first 24 bit of included (anonymized) IPv4 address * a9p9 4291 c02d 5d1C -> RFC 4291 Chapter 2.5.1 anonymized static Interface ID * * a9p9 5214 4xxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included (anonymized) IPv4 address (local scope) * a9p9 5214 5xxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included (anonymized) IPv4 address (global scope) * a9p9 5214 cxx0 000C -> RFC 5214 anonymized ISATAP Interface ID, xx = first 8 bit of included vendor ID (local scope) * a9p9 5214 dxx0 000C -> RFC 5214 anonymized ISATAP Interface ID, xx = first 8 bit of included vendor ID (global scope) * a9p9 5214 exxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included extension ID (local scope) * a9p9 5214 fxxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included extension ID (global scope) * * a9p9 4843 0000 000C -> RFC 4843 anonymized ORCHID hash ]]>Depending on given mask, the part of the prefix will be replaced: Method “keep-type-asn-cc” In addition to “anonymize” (of IID) this method anonymizes also the prefix of an IPv6 address or a whole IPv4 address by keeping ASN (Autonomous System Number, Country Code and Type). Description from libipv6addr.h: 10-bit Country Code mapping [A-Z]*[A-Z0-9] (936) * 0x3FD = LISP * 0x3FE = unknown country * 0x3FF - 16 + REGISTRY_6BONE && ASN=0 = 6bone * 0x000-0x3A7: c1= c / 36, c2 = c % 36 * aaaaaaaa -> 32-bit ASN ]]>Description from libipv4addr.h: = 65536, ASN & 0xE000 == 0 (12-bit LSB is ok) * 1|r r r|0|l l l l l l l l l l l l| * 13-bit LSB of ASN * * Mapping of ASN >= 65536, ASN & 0xE000 != 0 (12-bit LSB overflow) => unspecified * 1|r r r|1|0 0 0 0 0 0 0 0 0 0 0 0| * * Mapping of ASN registry for ASN >= 65536 * 0 0 0 = "unknown ASN registry" * 0 1 0 = APNIC * 0 1 1 = RIPE * 1 0 0 = LACNIC * 1 0 1 = AFRINIC * 1 1 0 = ARIN * Mapping of LISP * 1|r r r|1|1|0 0 0 0 0 0 0 0 0 0 0| ]]> Method “keep-type-geonameid” In difference to keep-type-asn-cc this method anonymizes the prefix of an IPv6 address or a whole IPv4 address by keeping the GeonameID and Type. Description from libipv6addr.h: 10-bit source mapping * GeonameID source information * 0x000 = unknown * 0x001 = continent (prio: lowest) * 0x002 = country * 0x003 = state/prov * 0x004 = district * 0x005 = city (prio: highest) * 0x006 = (reserved) * 0x007 = LISP * 0x0r. = registry * -> 2 leftmost bit are |0 1| * gggggggg -> 32-bit GeonameID * 0x11800 = LISP ]]>Description from libipv4addr.h: Supported log file formats Currently native supported log files: Apache log file format, 1st token is IPv4 or IPv6 addressThere are plans to support also mail server log files sometimes in the future, but because of different formats, this would be probably done by a Perl program which parses the log file and a (cached) 'ip6calc' call with action 'anonymize'. Supported options This program anonymizes IPv4/IPv6 addresses in e.g. HTTP server log files [-d|--debug ] : debug value (bitwise like) can also be set by IPV6CALC_DEBUG environment value [-v|--version [-v [-v]]] : version information (2 optional detail levels) [-v|--version -h] : explanation of feature tokens [-V|--verbose] : be more verbose [-h|--help|-?] : this online help [-q|--quiet] : be more quiet [--disable-ip2location ] : IP2Location support disabled [--db-ip2location-disable ] : IP2Location support disabled [--db-ip2location-dir ] : IP2Location database directory (default: /usr/share/IP2Location) [--db-ip2location-lib ] : IP2Location library file (default: libIP2Location.so) [--db-ip2location-only-type ]: IP2Location database only selected type (1-120) [--db-ip2location-allow-softlinks] : IP2Location database softlinks allowed by default they are ignored because it is hard to autodetect COMM/LITE/SAMPLE [--db-ip2location-lite-to-sample-autoswitch-max-delta-months ]: autoswitch from LITE to SAMPLE databases if possible and delta is not more than 12 months (0=disabled) [--db-ip2location-comm-to-lite-switch-min-delta-months ]: switch from COMM to LITE databases if possible and delta more than 12 months (0=disabled) [--disable-geoip ] : GeoIP support disabled [--db-geoip-disable ] : GeoIP support disabled [--db-geoip-dir ] : GeoIP database directory (default: /usr/share/GeoIP) [--db-geoip-lib ] : GeoIP library file (default: libGeoIP.so.1) [--db-mmdb-lib ] : MaxMindDB library file (default: libmaxminddb.so.0) [--disable-geoip2 ] : GeoIP (MaxMindDB) support disabled [--db-geoip2-disable ] : GeoIP (MaxMindDB) support disabled [--db-geoip2-dir ] : GeoIP (MaxMindDB) database directory (default: /usr/share/GeoIP) [--disable-dbip2 ] : db-ip.com (MaxMindDB) support disabled [--db-dbip2-disable ] : db-ip.com (MaxMindDB) support disabled [--db-dbip2-dir ] : db-ip.com (MaxMindDB) database directory (default: /usr/share/DBIP) [--db-dbip2-only-type ] : db-ip.com (MaxMindDB) database only selected type (1-10) [--db-dbip2-comm-to-free-switch-min-delta-months ]: switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) [--disable-dbip ] : db-ip.com support disabled [--db-dbip-disable ] : db-ip.com support disabled [--db-dbip-dir ] : db-ip.com database directory (default: /usr/share/DBIP) [--db-dbip-only-type ] : db-ip.com database only selected type (1-10) [--db-dbip-comm-to-free-switch-min-delta-months ]: switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) [--disable-external ] : External support disabled [--db-external-disable ] : External support disabled [--db-external-dir ] : External database directory (default: /usr/share/ipv6calc/db) [--disable-builtin ] : BuiltIn support disabled [--db-builtin-disable ] : BuiltIn support disabled [--db-priorization [:...]] : Database priorization order list (overwrites default) colon separated: GeoIP GeoIP2 IP2Location DBIP DBIP2 External BuiltIn [-w|--write] : write output to file instead of stdout [-a|--append] : append output to file instead of stdout [-f|--flush] : flush output after each line [-V|--verbose] : be verbose [-n|--nocache] : disable caching [-c|--cachelimit ] : set cache limit default: 20 maximum: 200 Shortcut for anonymization presets: --anonymize-standard (default) --anonymize-careful --anonymize-paranoid Supported methods [--anonymize-method METHOD]: anonymize : reliable anonymization, keep as much type information as possible zeroize : simple zeroizing according to given masks, probably loose type information keep-type-asn-cc: special reliable anonymization, keep type & Autonomous System Number and CountryCode keep-type-geonameid: special reliable anonymization, keep type & GeonameID Available presets (shortcut names) [--anonymize-preset|ap PRESET-NAME]: anonymize-standard (as): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac=24 mask-autoadjust=yes method=anonymize anonymize-careful (ac): mask-ipv6= 48 mask-ipv4=20 mask-eui64=24 mask-mac=24 mask-autoadjust=yes method=anonymize anonymize-paranoid (ap): mask-ipv6= 40 mask-ipv4=16 mask-eui64= 0 mask-mac=24 mask-autoadjust=no method=anonymize zeroize-standard (zs): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac=24 mask-autoadjust=yes method=zeroize zeroize-careful (zc): mask-ipv6= 48 mask-ipv4=20 mask-eui64=24 mask-mac=24 mask-autoadjust=yes method=zeroize zeroize-paranoid (zp): mask-ipv6= 40 mask-ipv4=16 mask-eui64= 0 mask-mac=24 mask-autoadjust=no method=zeroize keep-type-asn-cc (kp): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac=24 mask-autoadjust=yes method=keep-type-asn-cc keep-type-geonameid (kg): mask-ipv6= 56 mask-ipv4=24 mask-eui64=40 mask-mac=24 mask-autoadjust=yes method=keep-type-geonameid Custom control: --mask-ipv4 : mask IPv4 address [0-32] (even if occurs in IPv6 address) --mask-ipv6 : mask IPv6 prefix [0-64] (only applied to related address types) --mask-eui64 : mask EUI-64 address or IPv6 interface identifier [0-64] --mask-mac : mask MAC address [0-48] --mask-autoadjust yes|no: autoadjust mask to keep type/vendor information regardless of less given mask Takes data from stdin, outputs the processed data to stdout (default) ]]> Usage Offline anonymization /path/to/http_log_anonymized ]]> On-the-fly online anonymization for Apache Webserver
Note: since 0.91.1 also a module for Apache Webserver is available (see below) supporting anonymized logging
(Supported since 0.90.0) Adjust or add (note: more than one CustomLog directive is supported by Apache) httpd.conf like following: In case of “cronolog” is used on the system, configure like this: Apache version < 2.4: Apache version >= 2.4:
External database update helper scripts The “tools” subdirectory contains helper scripts for updating external databases. IP2Location ] [-n] [-s] -D database destination directory (optional) -n no action (dry-run) -s skip already successfully downloaded files database directory: /usr/share/IP2Location (default: /usr/share/IP2Location) it honors externally defined environment value: IP2LOCATION_DAT_DIR this script will download data from ip2location.com into given/set database directory Sample databases: IP2LOCATION_DAT_FILES_SAMPLE=IPv4:20 IPv6:20 IPv4:24 IPv6:24 Lite (free) databases: IP2LOCATION_DAT_FILES_LITE_FREE=IPv4:1 IPv6:1 With authentication (requires login/password in /home/compile/.ip2location) and a valid subscription IP2LOCATION_DAT_FILES_LITE= Credentials must be defined in $HOME/.ip2location by login=IP2LOCATION-LOGIN password=IP2LOCATION-PASSWORD In addition settings from above can be overwritten by setting related variables ]]> GeoIP Just note that old database format (version 1) is no longer supported for free download, ipv6calc >= 2.0.0 supports also MaxMindDB format, ipv6calc >= 3.0.0 drops legacy download capability ] [-v] [-s] [-L] [-G] -s skip download -D database directory (optional) -v verbose database directory: @GEOIP2_DB@ (default: @GEOIP2_DB@) it honors externally defined environment value: prio 1: GEOIP_DAT_DIR prio 2: IPV6CALC_DB_GEOIP2_DIR adjust /etc/GeoIP.conf in advance: EditionIDs GeoLite2-Country GeoLite2-City GeoLite2-ASN (in case a valid license key exists, add key and extend EditionIDs related) see also https://dev.maxmind.com/geoip/geoipupdate/ ]]> DB-IP.com Since ipv6calc >= 2.0.0 supports also MaxMindDB format, so download of CSV files and converting them into BerkeleyDB format is no longer required. ] [-U ] [-T ] -s skip download -v verbose -D database directory (optional) -U use URL to download full database -T set type of via URL downloaded file MMDB: country|isp|location|*location-isp* CSV : isp|location|*full* database directory: /usr/share/DBIP (default: /usr/share/DBIP) it honors externally defined environment value: prio 1: DBIP_DAT_DIR prio 2: IPV6CALC_DB_DBIP2_DIR this script will download data from DB-IP.com (default: free versions) the MaxMindDB (mmdb) files DB files for ipv6calc "DBIP" database support DBIP_DAT_URL_BASE=http://download.db-ip.com/free/ DBIP_DAT_FILES=dbip-country-lite-%Y-%m.mmdb.gz dbip-city-lite-%Y-%m.mmdb.gz in case -U (take URL from subscription e-mail) is provided, it downloads the database use -T in case it's not "location-isp" ]]> External ] -s skip download -u unconditional update -D database directory (optional) database directory: /usr/share/ipv6calc/db (default: /usr/share/ipv6calc/db) it honors externally defined environment value: IPV6CALC_DAT_DIR this script (and its helper scripts) will download data from registries and generate Berkeley DB files for ipv6calc "external" database support ]]> Perl CGI wrapper program "ipv6calcweb.cgi" Because calling C programs directly as CGI isn't really recommended (too much security troubles all the time), I wrote a small wrapper utility which calls "ipv6calc" to get information about client and server address for displaying on a web page. Examples A demonstration about which kind of output is possible to produce is shown at http://ip.bieringer.net/ (IPv4/IPv6)http://www.ipv6.bieringer.de/ (IPv6 only)http://mirrors.bieringer.de/ (IPv4/IPv6) Webserver log statistics helper program "ipv6logstats" This program parses a given webserver logfile and count addresses, useful for time period statistics. Since version 0.95.0 it has extended output, adding a date/time line and statistics by Country Code and ASN (if required databases are available). Supported options Takes web server log data (or any other data which has IPv4/v6 address in first column) from stdin and print statistics table/list (depending on option) to stdout [-d|--debug ] : debug value (bitwise like) can also be set by IPV6CALC_DEBUG environment value [-v|--version [-v [-v]]] : version information (2 optional detail levels) [-v|--version -h] : explanation of feature tokens [-V|--verbose] : be more verbose [-h|--help|-?] : this online help [-q|--quiet] : be more quiet [--disable-ip2location ] : IP2Location support disabled [--db-ip2location-disable ] : IP2Location support disabled [--db-ip2location-dir ] : IP2Location database directory (default: /usr/share/IP2Location) [--db-ip2location-lib ] : IP2Location library file (default: libIP2Location.so) [--db-ip2location-only-type ]: IP2Location database only selected type (1-120) [--db-ip2location-allow-softlinks] : IP2Location database softlinks allowed by default they are ignored because it is hard to autodetect COMM/LITE/SAMPLE [--db-ip2location-lite-to-sample-autoswitch-max-delta-months ]: autoswitch from LITE to SAMPLE databases if possible and delta is not more than 12 months (0=disabled) [--db-ip2location-comm-to-lite-switch-min-delta-months ]: switch from COMM to LITE databases if possible and delta more than 12 months (0=disabled) [--disable-geoip ] : GeoIP support disabled [--db-geoip-disable ] : GeoIP support disabled [--db-geoip-dir ] : GeoIP database directory (default: /usr/share/GeoIP) [--db-geoip-lib ] : GeoIP library file (default: libGeoIP.so.1) [--db-mmdb-lib ] : MaxMindDB library file (default: libmaxminddb.so.0) [--disable-geoip2 ] : GeoIP (MaxMindDB) support disabled [--db-geoip2-disable ] : GeoIP (MaxMindDB) support disabled [--db-geoip2-dir ] : GeoIP (MaxMindDB) database directory (default: /usr/share/GeoIP) [--disable-dbip2 ] : db-ip.com (MaxMindDB) support disabled [--db-dbip2-disable ] : db-ip.com (MaxMindDB) support disabled [--db-dbip2-dir ] : db-ip.com (MaxMindDB) database directory (default: /usr/share/DBIP) [--db-dbip2-only-type ] : db-ip.com (MaxMindDB) database only selected type (1-10) [--db-dbip2-comm-to-free-switch-min-delta-months ]: switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) [--disable-dbip ] : db-ip.com support disabled [--db-dbip-disable ] : db-ip.com support disabled [--db-dbip-dir ] : db-ip.com database directory (default: /usr/share/DBIP) [--db-dbip-only-type ] : db-ip.com database only selected type (1-10) [--db-dbip-comm-to-free-switch-min-delta-months ]: switch from COMM to FREE databases if possible and delta more than 12 months (0=disabled) [--disable-external ] : External support disabled [--db-external-disable ] : External support disabled [--db-external-dir ] : External database directory (default: /usr/share/ipv6calc/db) [--disable-builtin ] : BuiltIn support disabled [--db-builtin-disable ] : BuiltIn support disabled [--db-priorization [:...]] : Database priorization order list (overwrites default) colon separated: GeoIP GeoIP2 IP2Location DBIP DBIP2 External BuiltIn [-u|--unknown] : print unknown IP addresses to stderr [-c|--columns] : print statistics in columns (1) [-N|--column-numbers] : print column numbers [-n|--noheader] : don't print header in columns mode (1) [-o|--onlyheader] : print only header in columns mode (1) [-p|--prefix ] : print token as prefix (1) [-s|--simple] : disable extended statistic (CountryCode/ASN) (1) unsupported for CountryCode & ASN statistics ]]> Usage There are a README and some helper scripts available in the package how to use this program and how to generate a graph using Gnuplot. Line-by-line output The example shows output version 3.0, which Header section, since output version 3.0 (>= 0.95.0) additional lines starting with '*3*' and '*DateTime' and '*UnixTime' included Simple statistics section External database supported output since output version 3.0 (>= 0.95.0) Country Code / Proto Proto / Country Code (“ALL” line contains: ALL IPv4 IPv6) Autonomous System number / Proto Proto / Autonomous System number (“ALL” line contains: ALL IPv4 IPv6) Column output Column output does not support version 3 extension, only simple statistics with a header line: An optional prefix token can be given (“-p <prefix>”) to create e.g. in a for-loop one line per month and put month in front of statistics, also the header line can be suppressed (“-n”). Examples A demonstration with real data is available at http://mirrors.bieringer.de/stats/timeline.html. Apache web server module “mod_ipv6calc” This Apache web server module (since version 0.99.1, released 2015) interfaces with internal ipv6calc library to support Client IP address anonymization “on-the-fly”, exported to IPV6CALC_CLIENT_IP_ANON depending on the configured anonymization method 3rd party database is requiredCountry code of client IP address, exported to IPV6CALC_CLIENT_COUNTRYCODE requires 3rd party database: GeoIP or IP2Location or DB-IP.comAutonomous System Number (ASN) of client IP address, exported to IPV6CALC_CLIENT_ASN requires 3rd party database: GeoIPRegistry of client IP address, exported to IPV6CALC_CLIENT_REGISTRY requires internal or “external” databaseConfigured IP address anonymization method, exported to IPV6CALC_ANON_METHOD Installation Install compiled Apache module “mod_ipv6calc” to Apache's module directory Install included default configuration file “ipv6calc.conf” to Apache's config directory (usually conf.d) Configuration Enable in “ipv6calc.conf” loading of module Enable module itself Adjust configuration settings, if needed (see examples in “ipv6calc.conf”) Review predefined log format s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined_anon ]]>Enable custom log with anonymized information, using the predefined LogFormat Restart Apache web server, check error_log for any issues Result The new log file contains anonymized requests like Post-analysis in case of anonymization method “keep-type-asn-cc” In case “keep-type-asn-cc” is configured and also working (required databases are available), related information of anonymized IP addresses can be retrieved using “ipv6calc” or “ipv6logstats”. History Major extensions/changes are listed here 2021 add support for compressed IPv4 addresses like 10/8 (>= 3.1.0)add support for octal representation of IPv4 addresses (>= 3.3.0)add Database Dump action (>= 3.3.0) 2020 drop GeoIP(legacy) support (>= 3.0.0)drop db-ip.com(BerkeleyDB) support (>= 3.0.0) 2019 add OUI-28 support (>= 2.2.0)add action “addr2cc” (can be used as replacement for geoiplookup) (>= 2.1.0)enable “geonameid” also in mod_ipv6calc (>= 2.1.0)add anonymization method “keep-type-geonameid” (>= 2.1.0)add support for MaxMindDB (GeoIP, db-ip.com) (>= 2.0.0)drop support of IP2Location libraries < 7.0.1 (>= 2.0.0) 2017 add support for LISP detectionadd support for non-free versions DB-IP.com databasesfinally release 1.0.0 after 16 year of development 2016 implement action 'test' and extend action 'filter' with support of address ranges (>= 0.99.2) 2015 Introduce mod_ipv6calc for Apache web server (>= 0.99.1)Add support for DB-IP.com databases (by generated Berkeley DB files) (>= 0.98.0)Add support for “External” database files (generated Berkeley DB files), superseeding (if newer) built-in IPv4/IPv6->Registry and adding IPv4/IPv6->CountryCode support (>= 0.98.0)Extend filter options with support of CountryCode, ASN or Registry (>= 0.99.0)Add support for IP2Location LITE databases (>= 0.99.0), add configurable IP2Location database autoselection support 2014 Shared library mode supported (reduces size of binaries) 2013 Prefix and IID anonymization methodsSupport of dynamic load of GeoIP and IP2Location librariesSpecifying dedicated GeoIP and IP2Location database files is now replaced by specifying dedicated database directories to make especially for GeoIP use of more database files. 2011 ipv6calc/ipv6calcweb.cgi: enable included GeoIP support with IPv6 (usable with GeoIP >= 1.4.5)ipv6calc: extend for 6rd support (--action 6rd_local_prefix --6rd_prefix <PREFIX> --6rd_relay_prefix <RELAY_PREFIX>)ipv6calc: enable stdin support for bulk transformationipv6calc: add support for NAT64 address typeipv6calc: add option “forceprefix <LENGTH>” to print prefix of an address without a given prefix lengthipv6loganon: extend for pipe usage (e.g. in Apache log file directive) and write/append to specified fileGeneral: add configure options to disable built-in databases (reduce binary size a lot, e.g. for embedded devices) 2002-2010 See ChangeLog@GitHub for now 2001 Start of development
ipv6calc-4.1.0/doc/ldp.dsl000066400000000000000000000231531444154247200152660ustar00rootroot00000000000000 ]]> ]]> ]> ;; customize the print stylesheet (declare-characteristic preserve-sdata? ;; this is necessary because right now jadetex does not understand ;; symbolic entities, whereas things work well with numeric entities. "UNREGISTERED::James Clark//Characteristic::preserve-sdata?" #f) (define %generate-article-toc% ;; Should a Table of Contents be produced for Articles? #t) (define (toc-depth nd) 4) (define %generate-article-titlepage-on-separate-page% ;; Should the article title page be on a separate page? #t) (define %section-autolabel% ;; Are sections enumerated? #t) (define %footnote-ulinks% ;; Generate footnotes for ULinks? #f) (define %bop-footnotes% ;; Make "bottom-of-page" footnotes? #f) (define %body-start-indent% ;; Default indent of body text 0pi) (define %para-indent-firstpara% ;; First line start-indent for the first paragraph 0pt) (define %para-indent% ;; First line start-indent for paragraphs (other than the first) 0pt) (define %block-start-indent% ;; Extra start-indent for block-elements 0pt) (define formal-object-float ;; Do formal objects float? #t) (define %hyphenation% ;; Allow automatic hyphenation? #t) (define %admon-graphics% ;; Use graphics in admonitions? #f) (define %default-quadding% ;; Full justification. 'justify) (define (book-titlepage-verso-elements) ;;added publisher, releaseinfo to the default list (list (normalize "title") (normalize "subtitle") (normalize "corpauthor") (normalize "authorgroup") (normalize "author") (normalize "publisher") (normalize "releaseinfo") (normalize "editor") (normalize "edition") (normalize "pubdate") (normalize "copyright") (normalize "isbn") (normalize "abstract") (normalize "legalnotice") (normalize "revhistory"))) (declare-characteristic preserve-sdata? ;; this is necessary because right now jadetex does not understand ;; symbolic entities, whereas things work well with numeric entities. "UNREGISTERED::James Clark//Characteristic::preserve-sdata?" #f) (declare-flow-object-class element ;; for redhat "UNREGISTERED::James Clark//Flow Object Class::element") (define %html-pubid% ;; put the public identifier in each HTML file "-//W3C//DTD HTML 4.0 Transitional//EN") (define %generate-legalnotice-link% ;; put the legal notice in a separate file #t) (define %admon-graphics-path% ;; use graphics in admonitions, set their "../images/") (define %admon-graphics% #t) (define %funcsynopsis-decoration% ;; make funcsynopsis look pretty #t) (define %html-ext% ;; when producing HTML files, use this extension ".html") (define %generate-book-toc% ;; Should a Table of Contents be produced for books? #t) (define %generate-article-toc% ;; Should a Table of Contents be produced for articles? #t) (define %generate-part-toc% ;; Should a Table of Contents be produced for parts? #t) (define %generate-book-titlepage% ;; produce a title page for books #t) (define %generate-article-titlepage% ;; produce a title page for articles #t) (define (chunk-skip-first-element-list) ;; forces the Table of Contents on separate page '()) (define (list-element-list) ;; fixes bug in Table of Contents generation '()) (define %root-filename% ;; The filename of the root HTML document (e.g, "index"). "index") (define %shade-verbatim% ;; verbatim sections will be shaded if t(rue) #t) (define %use-id-as-filename% ;; Use ID attributes as name for component HTML files? #t) (define %graphic-extensions% ;; graphic extensions allowed '("gif" "png" "jpg" "jpeg" "tif" "tiff" "eps" "epsf" )) (define %graphic-default-extension% "gif") (define %section-autolabel% ;; For enumerated sections (1.1, 1.1.1, 1.2, etc.) #t) (define (toc-depth nd) ;; more depth (2 levels) to toc; instead of flat hierarchy 2) (element emphasis ;; make role=strong equate to bold for emphasis tag (if (equal? (attribute-string "role") "strong") (make element gi: "STRONG" (process-children)) (make element gi: "EM" (process-children)))) (define (book-titlepage-recto-elements) ;; elements on a book's titlepage (list (normalize "title") (normalize "subtitle") (normalize "graphic") (normalize "mediaobject") (normalize "corpauthor") (normalize "authorgroup") (normalize "author") (normalize "othercredit") (normalize "contrib") (normalize "edition") (normalize "releaseinfo") (normalize "publisher") (normalize "editor") (normalize "copyright") (normalize "pubdate") (normalize "revhistory") (normalize "abstract") (normalize "legalnotice"))) (define (article-titlepage-recto-elements) ;; elements on an article's titlepage (list (normalize "title") (normalize "subtitle") (normalize "authorgroup") (normalize "author") (normalize "othercredit") (normalize "releaseinfo") (normalize "copyright") (normalize "pubdate") (normalize "revhistory") (normalize "abstract") (normalize "legalnotice"))) (define (process-contrib #!optional (sosofo (process-children))) ;; print out with othercredit information; for translators, etc. (make sequence (make element gi: "SPAN" attributes: (list (list "CLASS" (gi))) (process-children)))) (define (process-othercredit #!optional (sosofo (process-children))) ;; print out othercredit information; for translators, etc. (let ((author-name (author-string)) (author-contrib (select-elements (children (current-node)) (normalize "contrib")))) (make element gi: "P" attributes: (list (list "CLASS" (gi))) (make element gi: "B" (literal author-name) (literal " - ")) (process-node-list author-contrib)))) (mode article-titlepage-recto-mode (element contrib (process-contrib)) (element othercredit (process-othercredit)) ) (mode book-titlepage-recto-mode (element contrib (process-contrib)) (element othercredit (process-othercredit)) ) (define (article-title nd) (let* ((artchild (children nd)) (artheader (select-elements artchild (normalize "artheader"))) (artinfo (select-elements artchild (normalize "articleinfo"))) (ahdr (if (node-list-empty? artheader) artinfo artheader)) (ahtitles (select-elements (children ahdr) (normalize "title"))) (artitles (select-elements artchild (normalize "title"))) (titles (if (node-list-empty? artitles) ahtitles artitles))) (if (node-list-empty? titles) "" (node-list-first titles)))) (mode subtitle-mode ;; do not print subtitle on subsequent pages (element subtitle (empty-sosofo))) ;; Redefinition of $verbatim-display$ ;; Origin: dbverb.dsl ;; Different foreground and background colors for verbatim elements ;; Author: Philippe Martin (feloy@free.fr) 2001-04-07 (define ($verbatim-display$ indent line-numbers?) (let ((verbatim-element (gi)) (content (make element gi: "PRE" attributes: (list (list "CLASS" (gi))) (if (or indent line-numbers?) ($verbatim-line-by-line$ indent line-numbers?) (process-children))))) (if %shade-verbatim% (make element gi: "TABLE" attributes: (shade-verbatim-attr-element verbatim-element) (make element gi: "TR" (make element gi: "TD" (make element gi: "FONT" attributes: (list (list "COLOR" (car (shade-verbatim-element-colors verbatim-element)))) content)))) content))) ;; ;; Customize this function ;; to change the foreground and background colors ;; of the different verbatim elements ;; Return (list "foreground color" "background color") ;; (define (shade-verbatim-element-colors element) (case element (("SYNOPSIS") (list "#000000" "#6495ED")) ;; ... ;; Add your verbatim elements here ;; ... (else (list "#000000" "#E0E0E0")))) (define (shade-verbatim-attr-element element) (list (list "BORDER" (cond ((equal? element (normalize "SCREEN")) "1") (else "0"))) (list "BGCOLOR" (car (cdr (shade-verbatim-element-colors element)))) (list "WIDTH" ($table-width$)))) ;; End of $verbatim-display$ redefinition ipv6calc-4.1.0/examples/000077500000000000000000000000001444154247200150505ustar00rootroot00000000000000ipv6calc-4.1.0/examples/analog/000077500000000000000000000000001444154247200163115ustar00rootroot00000000000000ipv6calc-4.1.0/examples/analog/analog-dist-combined.cfg000066400000000000000000000035701444154247200227570ustar00rootroot00000000000000# Example config file for analog creating some statistics # # Project : ipv6calc/ipv6logconv # File : analog-dist.cfg # Version : $Id$ # Copyright : none # Produced : 2002 by Peter Bieringer # Debug #DEBUG on #SETTINGS on # Output file is set by commandline option # Log format LOGFORMAT combined LOGFORMAT (%S %f %u [%d/%M/%Y:%h:%n:%j %j] "%j %r %j" %c %b) LOGFORMAT (%S %f %u [%d/%M/%Y:%h:%n:%j %j] "%j %r %j" %c %b "%B") # Input: stdin LOGFILE - # Special domains file DOMAINSFILE ./ipv6calc.tab DESCFILE ./analog-ipv6calc-descriptions.txt DESCRIPTIONS on # Path to images IMAGEDIR /analog/images/ LOGO none PNGIMAGES ON # Hostname #HOSTNAME "your.host.com/address type statistics" BASEURL "http://your.host.com" LINKINCLUDE pages REFLINKINCLUDE * UNCOMPRESS *.gz,*.Z "gzip -cd" # No reports for MONTHLY off DAILY off HOURLY off FILETYPE off SIZE off STATUS off SEARCHWORD off REQCHART off DIRECTORY off FULLBROWSER off BROWSUM off OSREP off REQUEST off ORGANISATION off # Report statistic GENERAL off #HOSTALIAS *.addrtype.ipv6calc $1 HOSTALIAS *.ipv6calc $1 HOSTEXCLUDE reverse-lookup-successful.addrtype DOMAIN on DOMCOLS rR DOMCHART requests DOMSORTBY requests DOMFLOOR 0r SUBDOMFLOOR 0r SUBDOMSORTBY requests SUBDOMAIN *.*.*.*.* DOMCHARTEXPAND .addrtype ORGANISATION on ORGCHART requests ORGFLOOR 0r ORGSORTBY requests ORGCOLS rR SUBORG *.*.* ORGCHARTEXPAND .addrtype ## Hosts is used for IPv6 address type display HOST on HOSTCHART requests HOSTFLOOR 0r HOSTSORTBY requests HOSTCOLS rR # exclude not IPv6 hosts #HOSTEXCLUDE not-ipv6.ipv6addrtype.ipv6calc HOSTREPEXCLUDE reverse-lookup-successful.addrtype.ipv6calc ## User is used for OUI USER on # exclude special users USERREPEXCLUDE unresolvable.ouitype.ipv6calc USERREPEXCLUDE not-ipv6.ouitype.ipv6calc # Customize output GOTOS off RUNTIME off MARKCHAR = OUTPUT html ipv6calc-4.1.0/examples/analog/analog-dist.cfg000066400000000000000000000033001444154247200211700ustar00rootroot00000000000000# Example config file for analog creating some statistics # # Project : ipv6calc/ipv6logconv # File : analog-dist.cfg # Version : $Id$ # Copyright : none # Produced : 2002 by Peter Bieringer # Debug #DEBUG on #SETTINGS on # Output file is set by commandline option # Log format LOGFORMAT combined LOGFORMAT (%S %f %u [%d/%M/%Y:%h:%n:%j %j] "%j %r %j" %c %b) LOGFORMAT (%S %f %u [%d/%M/%Y:%h:%n:%j %j] "%j %r %j" %c %b "%B") # Input: stdin LOGFILE - # Special domains file DOMAINSFILE ./ipv6calc.tab # Path to images IMAGEDIR /analog/images/ LOGO none PNGIMAGES ON DESCRIPTIONS OFF # Hostname #HOSTNAME "your.host.com/address type statistics" BASEURL "http://your.host.com" LINKINCLUDE pages REFLINKINCLUDE * UNCOMPRESS *.gz,*.Z "gzip -cd" # No reports for MONTHLY off DAILY off HOURLY off FILETYPE off SIZE off STATUS off SEARCHWORD off REQCHART off DIRECTORY off FULLBROWSER off BROWSUM off OSREP off REQUEST off ORGANISATION off # Report statistic GENERAL off DOMAIN on DOMCOLS rR #DOMCHART requests DOMCHART off DOMSORTBY requests DOMFLOOR 0r SUBDOMAIN off SUBDOMAIN *.* SUBDOMFLOOR 0r SUBDOMSORTBY requests #SUBDOMAIN *.addrtype.ipv6calc #SUBDOMAIN *.ipv6addrtype.ipv6calc #SUBDOMAIN *.ouitype.ipv6calc #DOMCHARTEXPAND addrtype.ipv6calc,ipv6addrtype.ipv6calc,ouitype.ipv6calc ORGANISATION off ORGCHART requests ORGFLOOR 0r ORGSORTBY requests ORGCOLS rR SUBORG *.addrtype.ipv6calc SUBORG *.ipv6addrtype.ipv6calc SUBORG *.ouitype.ipv6calc ORGCHARTEXPAND addrtype.ipv6calc,ipv6addrtype.ipv6calc,ouitype.ipv6calc HOST on HOSTCHART requests HOSTFLOOR 0r HOSTSORTBY requests HOSTCOLS rR # Customize output GOTOS off RUNTIME off MARKCHAR = OUTPUT html ipv6calc-4.1.0/examples/analog/analog-ipv6calc-descriptions.txt000066400000000000000000000103501444154247200245230ustar00rootroot00000000000000# Report descriptions file for analog 5.22. # # This file contains descriptions of each report. Lines starting with a # hash (#) are comments. Otherwise, each report must take EXACTLY ONE LINE. # Yearly Report This report lists the activity in each year. # Quarterly Report This report lists the activity in each quarter. # Monthly Report This report lists the activity in each month. # Weekly Report This report lists the activity in each week. # Daily Report This report lists the activity in each day. # Hourly Report This report lists the activity in each hour. # Quarter-Hour Report This report lists the activity in each quarter-hour period. # Five-Minute Report This report lists the activity in each five-minute period. # Daily Summary This report lists the total activity for each day of the week, summed over all the weeks in the report. # Hourly Summary This report lists the total activity for each hour of the day, summed over all the days in the report. # Hour of the Week Summary This report lists the total activity for each hour of the week, summed over all the weeks in the report. # Quarter-Hour Summary This report lists the total activity for each quarter-hour period of the day, summed over all the days in the report. # Five-Minute Summary This report lists the total activity for each five-minute period of the day, summed over all the days in the report. # General Summary This report contains overall statistics. # Request Report This report lists the files on the site. # Redirection Report This report lists the files that caused requests to be redirected to another file. (Usually directories with the final slash missing, or CGI scripts that forced redirections.) # Failure Report This report lists the files that caused failures, for example files not found. # File Type Report This report lists the extensions of requested files. # Directory Report This report lists the directories from which files were requested. (The figures for each directory include all of its subdirectories.) # Host Report This report lists the registries of addresses of the computers which requested files. # Host Redirection Report This report lists the computers which were redirected to another file. # Host Failure Report This report lists the computers which encountered failed requests. # Domain Report This report lists the major address type of the computers which requested files. # Referrer Report This report lists the referrers (where people followed links from, or pages which included this site's images). # Referring Site Report This report lists which servers people followed links from. # Redirected Referrer Report This report lists the referrers that caused redirected requests. # Failed Referrer Report This report lists the referrers containing broken links to the site. # Browser Report This report lists the browsers used by visitors. # Virtual Host Report This report lists the activity on each of the virtual domains at the site. # Virtual Host Redirection Report This report lists the redirected requests to each of the virtual domains. # Virtual Host Failure Report This report lists the failed requests to each of the virtual domains. # User Report This report lists the OUI of the NICs of the computers which requested files. # User Redirection Report This report lists the users who were redirected to another file. # User Failure Report This report lists the users who encountered failed requests. # Organisation Report This report lists the minor address types of the computers which requested files. # Search Query Report This report lists which queries people used in search engines to find the site. # Search Word Report This report lists which words people used in search engines to find the site. # Internal Search Query Report This report lists which queries people used on scripts within the site. # Internal Search Word Report This report lists which words people used on scripts within the site. # Browser Summary This report lists the vendors of visitors' browsers. # Operating System Report This report lists the operating systems used by visitors. # File Size Report This report lists the sizes of files. # Status Code Report This report lists the HTTP status codes of all requests. # Processing Time Report This report lists the times taken to process successful requests. ipv6calc-4.1.0/examples/analog/ipv6calc.tab000066400000000000000000000004551444154247200205140ustar00rootroot00000000000000ipv6calc 4 Conversion powered by ipv6calc ipv4-addr 1 IPv4 address ipv6-addr 1 IPv6 address reverse-lookup-successful 1 Reverse lookup successful addrtype 4 Address type ipv4-addr.addrtype 3 IPv4 address ipv6-addr.addrtype 3 IPv6 address reverse-lookup-successful.addrtype 1 Reverse lookup successful ipv6calc-4.1.0/examples/analog/run_analog.sh000077500000000000000000000032621444154247200210000ustar00rootroot00000000000000#!/bin/sh # # Simple shell script to create different types of statistics # # Example config file for analog creating some statistics # # Project : ipv6calc/ipv6logconv # File : run_analog.sh # Version : $Id: c44322eb5936454bcb71e726310fa0bb737f411b $ # Copyright : none # Produced : 2002 by Peter Bieringer umask 007 LOGFILE="../access_log" BIN_IPV6LOGCON="../../ipv6logconv/ipv6logconv" CONFIG_ANALOG="analog-dist.cfg" CONFIG_ANALOG_COMBINED="analog-dist-combined.cfg" DIR_BASE="." if [ ! -d "$DIR_BASE" ]; then echo "Missing base directory: $DIR_BASE" exit 2 fi if [ ! -r "$CONFIG_ANALOG" ]; then echo "Missing or unreadable analog config file: $CONFIG_ANALOG" exit 2 fi #set -x type="$1" case "$type" in "dedicated") ## dedicated files version # Create address type statistics echo "addrtype..." cat $LOGFILE | $BIN_IPV6LOGCON --out addrtype | analog +g$CONFIG_ANALOG +C'HOSTNAME Address_type_distribution' +O$DIR_BASE/distribution-addrtype/analog.html echo "ipv6addrtype..." # Create IPv6 address type statistics cat $LOGFILE | $BIN_IPV6LOGCON --out ipv6addrtype | analog +g$CONFIG_ANALOG +C'HOSTNAME IPv6_address_type_distribution' +O$DIR_BASE/distribution-ipv6addrtype/analog.html # Create OUI statistics echo "ouitype..." cat $LOGFILE | $BIN_IPV6LOGCON --out ouitype | analog +g$CONFIG_ANALOG +C'HOSTNAME OUI_type_distribution' +O$DIR_BASE/distribution-ouitype/analog.html ;; "combined") echo "Create statistics running 'analog'" cat $LOGFILE | $BIN_IPV6LOGCON --out any | analog +g$CONFIG_ANALOG_COMBINED +C'HOSTNAME combined' +O$DIR_BASE/distribution-combined/analog.html ;; *) echo "Usage: $0 dedicated|combined" esac ipv6calc-4.1.0/examples/apache/000077500000000000000000000000001444154247200162715ustar00rootroot00000000000000ipv6calc-4.1.0/examples/apache/ipv6loganon.conf000066400000000000000000000015401444154247200214020ustar00rootroot00000000000000### This additional Apache web server configuration enables additional logging ### with anonymized IPv4/IPv6 addresses # # $Id$ # # Place this file in /etc/httpd/conf.d/ and enable log directives you want to use ## Default log with cronolog extension ## Works with Apache 2.0/2.2/2.4 #CustomLog "|/usr/sbin/cronolog /var/log/httpd/access.log-%Y%m%d" combined ## Anonymized log ## Works with Apache 2.0/2.2/2.4 #CustomLog "|/usr/bin/ipv6loganon -f -a /var/log/httpd/access-anon_log" combined ## Anonymized log with cronolog extension #CustomLog "|/usr/bin/ipv6loganon -f |/usr/sbin/cronolog /var/log/httpd/access-anon.log-%Y%m%d" combined = 2.4> #CustomLog "|$/usr/bin/ipv6loganon -f |/usr/sbin/cronolog /var/log/httpd/access-anon.log-%Y%m%d" combined ipv6calc-4.1.0/getopt/000077500000000000000000000000001444154247200145345ustar00rootroot00000000000000ipv6calc-4.1.0/getopt/Makefile.in000066400000000000000000000007371444154247200166100ustar00rootroot00000000000000# Adapted for use with project 'ipv6calc' by Peter Bieringer # $Id: 50d015eec16c0bace7c5914e1e223c090d4d1e1a $ CC = @CC@ DEFAULT_CFLAGS ?= -O2 -Wall -g @CFLAGS_EXTRA@ all: getopt1.o getopt.o getopt1.o: getopt1.c ${CC} $(DEFAULT_CFLAGS) $(CFLAGS) -fPIC -o getopt1.o -c getopt1.c getopt.o: getopt.c ${CC} $(DEFAULT_CFLAGS) $(CFLAGS) -fPIC -o getopt.o -c getopt.c clean: rm -f *.o *.so.1 *.a distclean: ${MAKE} clean autoclean: ${MAKE} distclean ipv6calc-4.1.0/getopt/README000066400000000000000000000005571444154247200154230ustar00rootroot00000000000000$Id: 760357618b5563d0686cfd8e157c94e67432f2e9 $ getopt was added because of OpenBSD don't support this out-of-the box Credits to Vladimir Kotal for the patch Original code is located at ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/obrien/libgnugetopt-1.1.tar.gz and a local copy is at ../samplecode/getopt/ Peter Bieringer ipv6calc-4.1.0/getopt/getopt.c000066400000000000000000000727001444154247200162100ustar00rootroot00000000000000/* Getopt for GNU. NOTE: getopt is now part of the C library, so if you don't know what "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu before changing it! Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This tells Alpha OSF/1 not to define a getopt prototype in . Ditto for AIX 3.2 and . */ #ifndef _NO_PROTO #define _NO_PROTO #endif #ifdef HAVE_CONFIG_H #include #endif #if !defined (__STDC__) || !__STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ #ifndef const #define const #endif #endif #include /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. This code is part of the GNU C Library, but also included in many other GNU distributions. Compiling and linking in this code is a waste when using the GNU C library (especially if it is a shared library). Rather than having every GNU program understand `configure --with-gnu-libc' and omit the object files, it is simpler to just do this in the source for each such file. */ #define GETOPT_INTERFACE_VERSION 2 #if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2 #include #if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION #define ELIDE_CODE #endif #endif #ifndef ELIDE_CODE /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ /* Don't include stdlib.h for non-GNU C libraries because some of them contain conflicting prototypes for getopt. */ #include #include #endif /* GNU C library. */ #ifdef VMS #include #if HAVE_STRING_H - 0 #include #endif #endif #if defined (WIN32) && !defined (__CYGWIN32__) /* It's not Unix, really. See? Capital letters. */ #include #define getpid() GetCurrentProcessId() #endif #ifndef _ /* This is for other GNU distributions with internationalized messages. When compiling libc, the _ macro is predefined. */ #ifdef HAVE_LIBINTL_H # include # define _(msgid) gettext (msgid) #else # define _(msgid) (msgid) #endif #endif /* This version of `getopt' appears to the caller like standard Unix `getopt' but it behaves differently for the user, since it allows the user to intersperse the options with the other arguments. As `getopt' works, it permutes the elements of ARGV so that, when it is done, all the options precede everything else. Thus all application programs are extended to handle flexible argument order. Setting the environment variable POSIXLY_CORRECT disables permutation. Then the behavior is completely standard. GNU application programs can use a third alternative mode in which they can distinguish the relative order of options and other arguments. */ #include "getopt.h" /* For communication from `getopt' to the caller. When `getopt' finds an option that takes an argument, the argument value is returned here. Also, when `ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ char *optarg = NULL; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to `getopt'. On entry to `getopt', zero means this is the first call; initialize. When `getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, `optind' communicates from one call to the next how much of ARGV has been scanned so far. */ /* 1003.2 says this must be 1 before any call. */ int optind = 1; /* Formerly, initialization of getopt depended on optind==0, which causes problems with re-calling getopt as programs generally don't know that. */ int __getopt_initialized = 0; /* The next char to be scanned in the option-element in which the last option character we returned was found. This allows us to pick up the scan where we left off. If this is zero, or a null string, it means resume the scan by advancing to the next ARGV-element. */ static char *nextchar; /* Callers store zero here to inhibit the error message for unrecognized options. */ int opterr = 1; /* Set to an option character which was unrecognized. This must be initialized on some systems to avoid linking in the system's own getopt implementation. */ int optopt = '?'; /* Describe how to deal with options that follow non-option ARGV-elements. If the caller did not specify anything, the default is REQUIRE_ORDER if the environment variable POSIXLY_CORRECT is defined, PERMUTE otherwise. REQUIRE_ORDER means don't recognize them as options; stop option processing when the first non-option is seen. This is what Unix does. This mode of operation is selected by either setting the environment variable POSIXLY_CORRECT, or using `+' as the first character of the list of option characters. PERMUTE is the default. We permute the contents of ARGV as we scan, so that eventually all the non-options are at the end. This allows options to be given in any order, even with programs that were not written to expect this. RETURN_IN_ORDER is an option available to programs that were written to expect options and other ARGV-elements in any order and that care about the ordering of the two. We describe each non-option ARGV-element as if it were the argument of an option with character code 1. Using `-' as the first character of the list of option characters selects this mode of operation. The special argument `--' forces an end of option-scanning regardless of the value of `ordering'. In the case of RETURN_IN_ORDER, only `--' can cause `getopt' to return -1 with `optind' != ARGC. */ static enum { REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER } ordering; /* Value of POSIXLY_CORRECT environment variable. */ static char *posixly_correct; #ifdef __GNU_LIBRARY__ /* We want to avoid inclusion of string.h with non-GNU libraries because there are many ways it can cause trouble. On some systems, it contains special magic macros that don't work in GCC. */ #include #define my_index strchr #else /* Avoid depending on library functions or files whose names are inconsistent. */ char *getenv (); static char * my_index (str, chr) const char *str; int chr; { while (*str) { if (*str == chr) return (char *) str; str++; } return 0; } /* If using GCC, we can safely declare strlen this way. If not using GCC, it is ok not to declare it. */ #ifdef __GNUC__ /* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. That was relevant to code that was here before. */ #if !defined (__STDC__) || !__STDC__ /* gcc with -traditional declares the built-in strlen to return int, and has done so at least since version 2.4.5. -- rms. */ extern int strlen (const char *); #endif /* not __STDC__ */ #endif /* __GNUC__ */ #endif /* not __GNU_LIBRARY__ */ /* Handle permutation of arguments. */ /* Describe the part of ARGV that contains non-options that have been skipped. `first_nonopt' is the index in ARGV of the first of them; `last_nonopt' is the index after the last of them. */ static int first_nonopt; static int last_nonopt; #ifdef _LIBC /* Bash 2.0 gives us an environment variable containing flags indicating ARGV elements that should not be considered arguments. */ /* Defined in getopt_init.c */ extern char *__getopt_nonoption_flags; static int nonoption_flags_max_len; static int nonoption_flags_len; static int original_argc; static char *const *original_argv; extern pid_t __libc_pid; /* Make sure the environment variable bash 2.0 puts in the environment is valid for the getopt call we must make sure that the ARGV passed to getopt is that one passed to the process. */ static void __attribute__ ((unused)) store_args_and_env (int argc, char *const *argv) { /* XXX This is no good solution. We should rather copy the args so that we can compare them later. But we must not use malloc(3). */ original_argc = argc; original_argv = argv; } text_set_element (__libc_subinit, store_args_and_env); # define SWAP_FLAGS(ch1, ch2) \ if (nonoption_flags_len > 0) \ { \ char __tmp = __getopt_nonoption_flags[ch1]; \ __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ __getopt_nonoption_flags[ch2] = __tmp; \ } #else /* !_LIBC */ # define SWAP_FLAGS(ch1, ch2) #endif /* _LIBC */ /* Exchange two adjacent subsequences of ARGV. One subsequence is elements [first_nonopt,last_nonopt) which contains all the non-options that have been skipped so far. The other is elements [last_nonopt,optind), which contains all the options processed since those non-options were skipped. `first_nonopt' and `last_nonopt' are relocated so that they describe the new indices of the non-options in ARGV after they are moved. */ #if defined (__STDC__) && __STDC__ static void exchange (char **); #endif static void exchange (argv) char **argv; { int bottom = first_nonopt; int middle = last_nonopt; int top = optind; char *tem; /* Exchange the shorter segment with the far end of the longer segment. That puts the shorter segment into the right place. It leaves the longer segment in the right place overall, but it consists of two parts that need to be swapped next. */ #ifdef _LIBC /* First make sure the handling of the `__getopt_nonoption_flags' string can work normally. Our top argument must be in the range of the string. */ if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len) { /* We must extend the array. The user plays games with us and presents new arguments. */ char *new_str = malloc (top + 1); if (new_str == NULL) nonoption_flags_len = nonoption_flags_max_len = 0; else { memcpy (new_str, __getopt_nonoption_flags, nonoption_flags_max_len); memset (&new_str[nonoption_flags_max_len], '\0', top + 1 - nonoption_flags_max_len); nonoption_flags_max_len = top + 1; __getopt_nonoption_flags = new_str; } } #endif while (top > middle && middle > bottom) { if (top - middle > middle - bottom) { /* Bottom segment is the short one. */ int len = middle - bottom; register int i; /* Swap it with the top part of the top segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[top - (middle - bottom) + i]; argv[top - (middle - bottom) + i] = tem; SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); } /* Exclude the moved bottom segment from further swapping. */ top -= len; } else { /* Top segment is the short one. */ int len = top - middle; register int i; /* Swap it with the bottom part of the bottom segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[middle + i]; argv[middle + i] = tem; SWAP_FLAGS (bottom + i, middle + i); } /* Exclude the moved top segment from further swapping. */ bottom += len; } } /* Update records for the slots the non-options now occupy. */ first_nonopt += (optind - last_nonopt); last_nonopt = optind; } /* Initialize the internal data when the first call is made. */ #if defined (__STDC__) && __STDC__ static const char *_getopt_initialize (int, char *const *, const char *); #endif static const char * _getopt_initialize (argc, argv, optstring) int argc; char *const *argv; const char *optstring; { /* Start processing options with ARGV-element 1 (since ARGV-element 0 is the program name); the sequence of previously skipped non-option ARGV-elements is empty. */ first_nonopt = last_nonopt = optind; nextchar = NULL; posixly_correct = getenv ("POSIXLY_CORRECT"); /* Determine how to handle the ordering of options and nonoptions. */ if (optstring[0] == '-') { ordering = RETURN_IN_ORDER; ++optstring; } else if (optstring[0] == '+') { ordering = REQUIRE_ORDER; ++optstring; } else if (posixly_correct != NULL) ordering = REQUIRE_ORDER; else ordering = PERMUTE; #ifdef _LIBC if (posixly_correct == NULL && argc == original_argc && argv == original_argv) { if (nonoption_flags_max_len == 0) { if (__getopt_nonoption_flags == NULL || __getopt_nonoption_flags[0] == '\0') nonoption_flags_max_len = -1; else { const char *orig_str = __getopt_nonoption_flags; int len = nonoption_flags_max_len = strlen (orig_str); if (nonoption_flags_max_len < argc) nonoption_flags_max_len = argc; __getopt_nonoption_flags = (char *) malloc (nonoption_flags_max_len); if (__getopt_nonoption_flags == NULL) nonoption_flags_max_len = -1; else { memcpy (__getopt_nonoption_flags, orig_str, len); memset (&__getopt_nonoption_flags[len], '\0', nonoption_flags_max_len - len); } } } nonoption_flags_len = nonoption_flags_max_len; } else nonoption_flags_len = 0; #endif return optstring; } /* Scan elements of ARGV (whose length is ARGC) for option characters given in OPTSTRING. If an element of ARGV starts with '-', and is not exactly "-" or "--", then it is an option element. The characters of this element (aside from the initial '-') are option characters. If `getopt' is called repeatedly, it returns successively each of the option characters from each of the option elements. If `getopt' finds another option character, it returns that character, updating `optind' and `nextchar' so that the next call to `getopt' can resume the scan with the following option character or ARGV-element. If there are no more option characters, `getopt' returns -1. Then `optind' is the index in ARGV of the first ARGV-element that is not an option. (The ARGV-elements have been permuted so that those that are not options now come last.) OPTSTRING is a string containing the legitimate option characters. If an option character is seen that is not listed in OPTSTRING, return '?' after printing an error message. If you set `opterr' to zero, the error message is suppressed but we still return '?'. If a char in OPTSTRING is followed by a colon, that means it wants an arg, so the following text in the same ARGV-element, or the text of the following ARGV-element, is returned in `optarg'. Two colons mean an option that wants an optional arg; if there is text in the current ARGV-element, it is returned in `optarg', otherwise `optarg' is set to zero. If OPTSTRING starts with `-' or `+', it requests different methods of handling the non-option ARGV-elements. See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. Long-named options begin with `--' instead of `-'. Their names may be abbreviated as long as the abbreviation is unique or is an exact match for some defined option. If they have an argument, it follows the option name in the same ARGV-element, separated from the option name by a `=', or else the in next ARGV-element. When `getopt' finds a long-named option, it returns 0 if that option's `flag' field is nonzero, the value of the option's `val' field if the `flag' field is zero. The elements of ARGV aren't really const, because we permute them. But we pretend they're const in the prototype to be compatible with other systems. LONGOPTS is a vector of `struct option' terminated by an element containing a name which is zero. LONGIND returns the index in LONGOPT of the long-named option found. It is only valid when a long-named option has been found by the most recent call. If LONG_ONLY is nonzero, '-' as well as '--' can introduce long-named options. */ int _getopt_internal (argc, argv, optstring, longopts, longind, long_only) int argc; char *const *argv; const char *optstring; const struct option *longopts; int *longind; int long_only; { optarg = NULL; if (optind == 0 || !__getopt_initialized) { if (optind == 0) optind = 1; /* Don't scan ARGV[0], the program name. */ optstring = _getopt_initialize (argc, argv, optstring); __getopt_initialized = 1; } /* Test whether ARGV[optind] points to a non-option argument. Either it does not have option syntax, or there is an environment flag from the shell indicating it is not an option. The later information is only used when the used in the GNU libc. */ #ifdef _LIBC #define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ || (optind < nonoption_flags_len \ && __getopt_nonoption_flags[optind] == '1')) #else #define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') #endif if (nextchar == NULL || *nextchar == '\0') { /* Advance to the next ARGV-element. */ /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been moved back by the user (who may also have changed the arguments). */ if (last_nonopt > optind) last_nonopt = optind; if (first_nonopt > optind) first_nonopt = optind; if (ordering == PERMUTE) { /* If we have just processed some options following some non-options, exchange them so that the options come first. */ if (first_nonopt != last_nonopt && last_nonopt != optind) exchange ((char **) argv); else if (last_nonopt != optind) first_nonopt = optind; /* Skip any additional non-options and extend the range of non-options previously skipped. */ while (optind < argc && NONOPTION_P) optind++; last_nonopt = optind; } /* The special ARGV-element `--' means premature end of options. Skip it like a null option, then exchange with previous non-options as if it were an option, then skip everything else like a non-option. */ if (optind != argc && !strcmp (argv[optind], "--")) { optind++; if (first_nonopt != last_nonopt && last_nonopt != optind) exchange ((char **) argv); else if (first_nonopt == last_nonopt) first_nonopt = optind; last_nonopt = argc; optind = argc; } /* If we have done all the ARGV-elements, stop the scan and back over any non-options that we skipped and permuted. */ if (optind == argc) { /* Set the next-arg-index to point at the non-options that we previously skipped, so the caller will digest them. */ if (first_nonopt != last_nonopt) optind = first_nonopt; return -1; } /* If we have come to a non-option and did not permute it, either stop the scan or describe it to the caller and pass it by. */ if (NONOPTION_P) { if (ordering == REQUIRE_ORDER) return -1; optarg = argv[optind++]; return 1; } /* We have found another option-ARGV-element. Skip the initial punctuation. */ nextchar = (argv[optind] + 1 + (longopts != NULL && argv[optind][1] == '-')); } /* Decode the current option-ARGV-element. */ /* Check whether the ARGV-element is a long option. If long_only and the ARGV-element has the form "-f", where f is a valid short option, don't consider it an abbreviated form of a long option that starts with f. Otherwise there would be no way to give the -f short option. On the other hand, if there's a long option "fubar" and the ARGV-element is "-fu", do consider that an abbreviation of the long option, just like "--fu", and not "-f" with arg "u". This distinction seems to be the most useful approach. */ if (longopts != NULL && (argv[optind][1] == '-' || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) { char *nameend; const struct option *p; const struct option *pfound = NULL; int exact = 0; int ambig = 0; int indfound = -1; int option_index; for (nameend = nextchar; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, nextchar, nameend - nextchar)) { if ((unsigned int) (nameend - nextchar) == (unsigned int) strlen (p->name)) { /* Exact match found. */ pfound = p; indfound = option_index; exact = 1; break; } else if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else /* Second or later nonexact match found. */ ambig = 1; } if (ambig && !exact) { if (opterr) fprintf (stderr, _("%s: option `%s' is ambiguous\n"), argv[0], argv[optind]); nextchar += strlen (nextchar); optind++; optopt = 0; return '?'; } if (pfound != NULL) { option_index = indfound; optind++; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) optarg = nameend + 1; else { if (opterr) if (argv[optind - 1][1] == '-') /* --option */ fprintf (stderr, _("%s: option `--%s' doesn't allow an argument\n"), argv[0], pfound->name); else /* +option or -option */ fprintf (stderr, _("%s: option `%c%s' doesn't allow an argument\n"), argv[0], argv[optind - 1][0], pfound->name); nextchar += strlen (nextchar); optopt = pfound->val; return '?'; } } else if (pfound->has_arg == 1) { if (optind < argc) optarg = argv[optind++]; else { if (opterr) fprintf (stderr, _("%s: option `%s' requires an argument\n"), argv[0], argv[optind - 1]); nextchar += strlen (nextchar); optopt = pfound->val; return optstring[0] == ':' ? ':' : '?'; } } nextchar += strlen (nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } /* Can't find it as a long option. If this is not getopt_long_only, or the option starts with '--' or is not a valid short option, then it's an error. Otherwise interpret it as a short option. */ if (!long_only || argv[optind][1] == '-' || my_index (optstring, *nextchar) == NULL) { if (opterr) { if (argv[optind][1] == '-') /* --option */ fprintf (stderr, _("%s: unrecognized option `--%s'\n"), argv[0], nextchar); else /* +option or -option */ fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), argv[0], argv[optind][0], nextchar); } nextchar = (char *) ""; optind++; optopt = 0; return '?'; } } /* Look at and handle the next short option-character. */ { char c = *nextchar++; char *temp = my_index (optstring, c); /* Increment `optind' when we start to process its last character. */ if (*nextchar == '\0') ++optind; if (temp == NULL || c == ':') { if (opterr) { if (posixly_correct) /* 1003.2 specifies the format of this message. */ fprintf (stderr, _("%s: illegal option -- %c\n"), argv[0], c); else fprintf (stderr, _("%s: invalid option -- %c\n"), argv[0], c); } optopt = c; return '?'; } /* Convenience. Treat POSIX -W foo same as long option --foo */ if (temp[0] == 'W' && temp[1] == ';') { char *nameend; const struct option *p; const struct option *pfound = NULL; int exact = 0; int ambig = 0; int indfound = 0; int option_index; /* This is an option that requires an argument. */ if (*nextchar != '\0') { optarg = nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ optind++; } else if (optind == argc) { if (opterr) { /* 1003.2 specifies the format of this message. */ fprintf (stderr, _("%s: option requires an argument -- %c\n"), argv[0], c); } optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; return c; } else /* We already incremented `optind' once; increment it again when taking next ARGV-elt as argument. */ optarg = argv[optind++]; /* optarg is now the argument, see if it's in the table of longopts. */ for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, nextchar, nameend - nextchar)) { if ((unsigned int) (nameend - nextchar) == strlen (p->name)) { /* Exact match found. */ pfound = p; indfound = option_index; exact = 1; break; } else if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else /* Second or later nonexact match found. */ ambig = 1; } if (ambig && !exact) { if (opterr) fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"), argv[0], argv[optind]); nextchar += strlen (nextchar); optind++; return '?'; } if (pfound != NULL) { option_index = indfound; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) optarg = nameend + 1; else { if (opterr) fprintf (stderr, _("\ %s: option `-W %s' doesn't allow an argument\n"), argv[0], pfound->name); nextchar += strlen (nextchar); return '?'; } } else if (pfound->has_arg == 1) { if (optind < argc) optarg = argv[optind++]; else { if (opterr) fprintf (stderr, _("%s: option `%s' requires an argument\n"), argv[0], argv[optind - 1]); nextchar += strlen (nextchar); return optstring[0] == ':' ? ':' : '?'; } } nextchar += strlen (nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } nextchar = NULL; return 'W'; /* Let the application handle it. */ } if (temp[1] == ':') { if (temp[2] == ':') { /* This is an option that accepts an argument optionally. */ if (*nextchar != '\0') { optarg = nextchar; optind++; } else optarg = NULL; nextchar = NULL; } else { /* This is an option that requires an argument. */ if (*nextchar != '\0') { optarg = nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ optind++; } else if (optind == argc) { if (opterr) { /* 1003.2 specifies the format of this message. */ fprintf (stderr, _("%s: option requires an argument -- %c\n"), argv[0], c); } optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; } else /* We already incremented `optind' once; increment it again when taking next ARGV-elt as argument. */ optarg = argv[optind++]; nextchar = NULL; } } return c; } } int getopt (argc, argv, optstring) int argc; char *const *argv; const char *optstring; { return _getopt_internal (argc, argv, optstring, (const struct option *) 0, (int *) 0, 0); } #endif /* Not ELIDE_CODE. */ #ifdef TEST /* Compile with -DTEST to make an executable for use in testing the above definition of `getopt'. */ int main (argc, argv) int argc; char **argv; { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; c = getopt (argc, argv, "abc:d:0123456789"); if (c == -1) break; switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value `%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ ipv6calc-4.1.0/getopt/getopt.h000066400000000000000000000107161444154247200162140ustar00rootroot00000000000000/* Declarations for getopt. Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _GETOPT_H #define _GETOPT_H 1 #ifdef __cplusplus extern "C" { #endif /* For communication from `getopt' to the caller. When `getopt' finds an option that takes an argument, the argument value is returned here. Also, when `ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ extern char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to `getopt'. On entry to `getopt', zero means this is the first call; initialize. When `getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, `optind' communicates from one call to the next how much of ARGV has been scanned so far. */ extern int optind; /* Callers store zero here to inhibit the error message `getopt' prints for unrecognized options. */ extern int opterr; /* Set to an option character which was unrecognized. */ extern int optopt; /* Describe the long-named options requested by the application. The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector of `struct option' terminated by an element containing a name which is zero. The field `has_arg' is: no_argument (or 0) if the option does not take an argument, required_argument (or 1) if the option requires an argument, optional_argument (or 2) if the option takes an optional argument. If the field `flag' is not NULL, it points to a variable that is set to the value given in the field `val' when the option is found, but left unchanged if the option is not found. To have a long-named option do something other than set an `int' to a compiled-in constant, such as set a value from `optarg', set the option's `flag' field to zero and its `val' field to a nonzero value (the equivalent single-letter option character, if there is one). For long options that have a zero `flag' field, `getopt' returns the contents of the `val' field. */ struct option { #if defined (__STDC__) && __STDC__ const char *name; #else char *name; #endif /* has_arg can't be an enum because some compilers complain about type mismatches in all the code that assumes it is an int. */ int has_arg; int *flag; int val; }; /* Names for the values of the `has_arg' field of `struct option'. */ #define no_argument 0 #define required_argument 1 #define optional_argument 2 #if defined (__STDC__) && __STDC__ #ifdef __GNU_LIBRARY__ /* Many other libraries have conflicting prototypes for getopt, with differences in the consts, in stdlib.h. To avoid compilation errors, only prototype getopt for the GNU C library. */ extern int getopt (int argc, char *const *argv, const char *shortopts); #else /* not __GNU_LIBRARY__ */ extern int getopt (); #endif /* __GNU_LIBRARY__ */ extern int getopt_long (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); extern int getopt_long_only (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); /* Internal only. Users should not call this directly. */ extern int _getopt_internal (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind, int long_only); #else /* not __STDC__ */ extern int getopt (); extern int getopt_long (); extern int getopt_long_only (); extern int _getopt_internal (); #endif /* __STDC__ */ #ifdef __cplusplus } #endif #endif /* _GETOPT_H */ ipv6calc-4.1.0/getopt/getopt1.c000066400000000000000000000106461444154247200162720ustar00rootroot00000000000000/* getopt_long and getopt_long_only entry points for GNU getopt. Copyright (C) 1987,88,89,90,91,92,93,94,96,97 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H #include #endif #include "getopt.h" #if !defined (__STDC__) || !__STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ #ifndef const #define const #endif #endif #include /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. This code is part of the GNU C Library, but also included in many other GNU distributions. Compiling and linking in this code is a waste when using the GNU C library (especially if it is a shared library). Rather than having every GNU program understand `configure --with-gnu-libc' and omit the object files, it is simpler to just do this in the source for each such file. */ #define GETOPT_INTERFACE_VERSION 2 #if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2 #include #if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION #define ELIDE_CODE #endif #endif #ifndef ELIDE_CODE /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ #include #endif #ifndef NULL #define NULL 0 #endif int getopt_long (argc, argv, options, long_options, opt_index) int argc; char *const *argv; const char *options; const struct option *long_options; int *opt_index; { return _getopt_internal (argc, argv, options, long_options, opt_index, 0); } /* Like getopt_long, but '-' as well as '--' can indicate a long option. If an option that starts with '-' (not '--') doesn't match a long option, but does match a short option, it is parsed as a short option instead. */ int getopt_long_only (argc, argv, options, long_options, opt_index) int argc; char *const *argv; const char *options; const struct option *long_options; int *opt_index; { return _getopt_internal (argc, argv, options, long_options, opt_index, 1); } #endif /* Not ELIDE_CODE. */ #ifdef TEST #include int main (argc, argv) int argc; char **argv; { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; int option_index = 0; static struct option long_options[] = { {"add", 1, 0, 0}, {"append", 0, 0, 0}, {"delete", 1, 0, 0}, {"verbose", 0, 0, 0}, {"create", 0, 0, 0}, {"file", 1, 0, 0}, {0, 0, 0, 0} }; c = getopt_long (argc, argv, "abc:d:0123456789", long_options, &option_index); if (c == -1) break; switch (c) { case 0: printf ("option %s", long_options[option_index].name); if (optarg) printf (" with arg %s", optarg); printf ("\n"); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value `%s'\n", optarg); break; case 'd': printf ("option d with value `%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ ipv6calc-4.1.0/ipv6calc/000077500000000000000000000000001444154247200147415ustar00rootroot00000000000000ipv6calc-4.1.0/ipv6calc/Makefile.in000066400000000000000000000054131444154247200170110ustar00rootroot00000000000000# Project : ipv6calc # File : ipv6calc/Makefile[.in] # Version : $Id: ee2101a0fc98d2ca3af5146c8ce1540d8167ebf6 $ # Copyright : 2002-2022 by Peter Bieringer # # Information: # Makefile for ipv6calc # prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ # Compiler and Linker Options DEFAULT_CFLAGS ?= -O2 -Wall -g @CFLAGS_EXTRA@ LDFLAGS += @LDFLAGS@ INCLUDES= @MD5_INCLUDE@ @GETOPT_INCLUDE@ @MMDB_INCLUDE_L1@ @IP2LOCATION_INCLUDE_L1@ -I../ -I../lib/ -I../databases/lib/ LIBS = @IPV6CALC_LIB@ @MMDB_LIB_L1@ @IP2LOCATION_LIB_L1@ @DYNLOAD_LIB@ GETOBJS = @LIBOBJS@ CC = @CC@ LDFLAGS_EXTRA = @LDFLAGS_EXTRA@ LDFLAGS_EXTRA_STATIC = @LDFLAGS_EXTRA_STATIC@ OBJS = ipv6calc.o showinfo.o ipv6calchelp_local.o # splint SPLINT_OPT_OUTSIDE = +posixlib -nullassign -uniondef -compdef -usedef -formatconst -exportlocal -preproc #SPLINT_OPT_OUTSIDE = -uniondef +matchanyintegral --nullassign +ignoresigns -compdef -usedef -modobserver -formatconst -warnposix -exportlocal SPLINT_TODO_LATER = -unrecog -retvalint all: ipv6calc .c.o: $(CC) -c $< $(DEFAULT_CFLAGS) $(CFLAGS) $(INCLUDES) $(OBJS): ipv6calc.h ipv6calchelp_local.h showinfo.h ipv6calcoptions_local.h ../config.h ../lib/ipv6calctypes.h libipv6calc: cd ../ && ${MAKE} lib-make libipv6calc_db_wrapper: cd ../ && ${MAKE} lib-make ipv6calc: $(OBJS) libipv6calc libipv6calc_db_wrapper $(CC) -o ipv6calc $(OBJS) $(GETOBJS) $(LDFLAGS) $(LIBS) $(LDFLAGS_EXTRA) -lm static: ipv6calc $(CC) -o ipv6calc-static $(OBJS) $(GETOBJS) $(LDFLAGS) $(LIBS) $(LDFLAGS_EXTRA_STATIC) -lm -static distclean: ${MAKE} clean autoclean: ${MAKE} distclean clean: rm -f ipv6calc ipv6calc-static *.o test: ipv6calc LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_ipv6calc.sh || exit 1 LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_ipv6calc_filter.sh || exit 1 LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_ipv6calc_anonymization.sh || exit 1 LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_showinfo.sh || exit 1 test-minimal: ipv6calc LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_ipv6calc.sh || exit 1 LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_showinfo.sh minimal || exit 1 test-ldlibpath: ipv6calc LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_ipv6calc.sh || exit 1 LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_ipv6calc_filter.sh || exit 1 LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_ipv6calc_anonymization.sh || exit 1 LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_showinfo.sh || exit 1 codecheck: ${MAKE} splint splint: splint *.c ../lib/*.c -I.. -I../lib $(SPLINT_OPT_OUTSIDE) $(SPLINT_TODO_LATER) install: if [ ! -d $(DESTDIR)$(bindir) ]; then install -d -m 755 $(DESTDIR)$(bindir); fi install -m 755 ipv6calc $(DESTDIR)$(bindir) ipv6calc-4.1.0/ipv6calc/ipv6calc.c000066400000000000000000002331751444154247200166270ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6calc/ipv6calc.c * Version : $Id: c441ebb42423b19f66237c5ac1ebd7abdc2bf092 $ * Copyright : 2001-2023 by Peter Bieringer * * Information: * Central program (main) * This program print out different formats of a given IP(v4/v6)/MAC address */ #include #include #include #include #include #include "config.h" #include "ipv6calc.h" #include "libipv6calc.h" #include "libipv6calcdebug.h" #include "ipv6calctypes.h" #include "ipv6calcoptions.h" #include "ipv6calcoptions_local.h" #include "ipv6calchelp.h" #include "ipv6calchelp_local.h" #include "libipv4addr.h" #include "libipv6addr.h" #include "libmac.h" #include "libeui64.h" #include "showinfo.h" #include "librfc1884.h" #include "librfc1886.h" #include "librfc1924.h" #include "libifinet6.h" #include "librfc2874.h" #include "librfc3056.h" #include "librfc3041.h" #include "librfc5569.h" #include "librfc6052.h" #include "libeui64.h" #include "libieee.h" #include "libipv4addr.h" #include "libipv6addr.h" #include "../databases/lib/libipv6calc_db_wrapper.h" #ifdef SUPPORT_IP2LOCATION #include "IP2Location.h" /* * * API_VERSION is defined as a bareword in IP2Location.h, * * we need this trick to stringify it. Blah. * */ #define makestr(x) #x #define xmakestr(x) makestr(x) #endif #ifdef SUPPORT_GEOIP #include "GeoIP.h" #endif long int ipv6calc_debug = 0; // ipv6calc_debug usage ok /* pipe support */ int input_is_pipe = 0; #define LINEBUFFER 16384 /* anonymization default values */ s_ipv6calc_anon_set ipv6calc_anon_set; /* features */ int feature_zeroize = 1; // always supported int feature_anon = 0; // will be checked later int feature_kp = 0; // will be checked later int feature_kg = 0; // will be checked later /* showinfo machine readable filter */ char showinfo_machine_readable_filter[32] = ""; int showinfo_machine_readable_filter_used = 0; /**************************************************/ /* main */ int main(int argc, char *argv[]) { /* check compatibility */ #ifdef SHARED_LIBRARY IPV6CALC_LIB_VERSION_CHECK_EXIT(IPV6CALC_PACKAGE_VERSION_NUMERIC, IPV6CALC_PACKAGE_VERSION_STRING) IPV6CALC_DB_LIB_VERSION_CHECK_EXIT(IPV6CALC_PACKAGE_VERSION_NUMERIC, IPV6CALC_PACKAGE_VERSION_STRING) #endif // SHARED_LIBRARY char resultstring[IPV6CALC_STRING_MAX] = ""; char resultstring2[IPV6CALC_STRING_MAX] = ""; char resultstring3[IPV6CALC_STRING_MAX] = ""; char name_ipset[IPV6CALC_STRING_MAX] = ""; int retval = 1, i, j, lop, result; uint32_t command = 0; int bit_start = 0, bit_end = 0, force_prefix = 0; char *input1 = NULL, *input2 = NULL; int inputc; int inputtype_given = 0, outputtype_given = 0, action_given = 0; uint16_t cc_index; int ipv6rd_prefixlength = -1; /* new option style storage */ uint32_t inputtype = FORMAT_undefined, inputtype2 = FORMAT_undefined; uint32_t outputtype = FORMAT_undefined; uint32_t action = ACTION_undefined; /* format options storage */ uint32_t formatoptions = 0; /* used structures */ ipv6calc_ipv6addr ipv6addr, ipv6addr2, ipv6addr3, ipv6addr4; ipv6calc_ipv4addr ipv4addr, ipv4addr2; ipv6calc_macaddr macaddr; ipv6calc_eui64addr eui64addr; ipv6calc_ipaddr ipaddr; /* arrays of structures and chars for "test" action */ #define ipv6calc_arrays (IPV6CALC_TEST_LIST_MAX + 1) ipv6calc_ipv6addr ipv6addr_a[ipv6calc_arrays]; ipv6calc_ipv4addr ipv4addr_a[ipv6calc_arrays]; char *input_a[ipv6calc_arrays]; int a; int result_a[ipv6calc_arrays]; /* used simple data */ uint32_t asn; int asn_valid = 0; /* filter structure */ s_ipv6calc_filter_master filter_master; libipv6calc_filter_clear(&filter_master); /* IID statistics */ s_iid_statistics iid_statistics; int iid_random_result; /* database source */ int db_source; /* clear address structures */ ipv6addr_clearall(&ipv6addr); ipv6addr_clearall(&ipv6addr2); ipv6addr_clearall(&ipv6addr3); ipv6addr_clearall(&ipv6addr4); ipv4addr_clearall(&ipv4addr); ipv4addr_clearall(&ipv4addr2); mac_clearall(&macaddr); for (a = 0; a < ipv6calc_arrays; a++) { ipv6addr_clearall(&ipv6addr_a[a]); ipv4addr_clearall(&ipv4addr_a[a]); result_a[a] = -1; }; /* pipe mode */ char linebuffer[LINEBUFFER]; char token[LINEBUFFER]; char *charptr, *cptr, **ptrptr; ptrptr = &cptr; int linecounter = 0; int flush_mode = 0; /* options */ struct option longopts[IPV6CALC_MAXLONGOPTIONS]; char shortopts[IPV6CALC_STRING_MAX] = ""; int longopts_maxentries = 0; /* initialize debug value from environment for bootstrap debugging */ ipv6calc_debug_from_env(); // ipv6calc_debug usage ok /* add options */ ipv6calc_options_add_common_anon(shortopts, sizeof(shortopts), longopts, &longopts_maxentries); ipv6calc_options_add_common_basic(shortopts, sizeof(shortopts), longopts, &longopts_maxentries); ipv6calc_options_add(shortopts, sizeof(shortopts), longopts, &longopts_maxentries, ipv6calc_shortopts, ipv6calc_longopts, MAXENTRIES_ARRAY(ipv6calc_longopts)); /* default */ result = libipv6calc_anon_set_by_name(&ipv6calc_anon_set, ANONPRESET_DEFAULT); if (result != 0) { fprintf(stderr, "major problem, ipv6calc anonymization default preset not found: %s", ANONPRESET_DEFAULT); exit(EXIT_FAILURE); }; if (argc <= 1) { ipv6calc_printinfo(); exit(EXIT_FAILURE); }; /* Fetch the command-line arguments. */ DEBUGSECTION_BEGIN(DEBUG_ipv6calc_general) DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Start parsing options: shortopts=%s", shortopts); i = 0; while(longopts[i].name != NULL) { DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Long option: %s/%d/%08x", longopts[i].name, longopts[i].has_arg, longopts[i].val); i++; }; DEBUGSECTION_END /* initialize options from environment */ ipv6calc_common_options_from_env(longopts, &ipv6calc_anon_set); while ((i = getopt_long(argc, argv, shortopts, longopts, &lop)) != EOF) { DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Parsing option: 0x%08x (%d: %s)", i, optind, argv[optind - 1]); if ((i == '?') && (strcmp(argv[optind - 1], "-?") != 0)) { exit(EXIT_FAILURE); }; if (i == ':') { exit(EXIT_FAILURE); }; /* catch "common basic" options */ result = ipv6calcoptions_common_basic(i, optarg, longopts); if (result == 0) { // found continue; }; /* catch "common anon" options */ result = ipv6calcoptions_common_anon(i, optarg, longopts, &ipv6calc_anon_set); if (result == 0) { // found continue; }; /* specific options */ DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Parsing option locally: 0x%08x", i); switch (i) { case -1: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "end of options"); break; case 'v': if ((command & CMD_printversion_verbose) != 0) { // 3rd time '-v' command |= CMD_printversion_verbose2; } else if ((command & CMD_printversion) != 0) { // 2nd time '-v' command |= CMD_printversion_verbose; } else { command |= CMD_printversion; }; break; case 'f': flush_mode = 1; break; case 'h': case '?': command |= CMD_printhelp; DEBUGPRINT_NA(DEBUG_ipv6calc_general, "help option detected"); break; case CMD_printexamples: command = CMD_printexamples; break; /* backward compatibility/shortcut commands */ case 'r': case CMD_addr_to_ip6int: if (inputtype != FORMAT_undefined || outputtype != FORMAT_undefined) { printhelp_doublecommands(); exit(EXIT_FAILURE); }; inputtype = FORMAT_auto; outputtype = FORMAT_revnibbles_int; break; case 'a': case CMD_addr_to_ip6arpa: if (inputtype != FORMAT_undefined || outputtype != FORMAT_undefined) { printhelp_doublecommands(); exit(EXIT_FAILURE); }; inputtype = FORMAT_auto; outputtype = FORMAT_revnibbles_arpa; break; case 'b': case CMD_addr_to_bitstring: if (inputtype != FORMAT_undefined || outputtype != FORMAT_undefined) { printhelp_doublecommands(); exit(EXIT_FAILURE); }; inputtype = FORMAT_ipv6addr; outputtype = FORMAT_bitstring; outputtype_given = 1; break; case CMD_addr_to_compressed: if (inputtype != FORMAT_undefined || outputtype != FORMAT_undefined) { printhelp_doublecommands(); exit(EXIT_FAILURE); }; inputtype = FORMAT_ipv6addr; outputtype = FORMAT_ipv6addr; outputtype_given = 1; formatoptions |= FORMATOPTION_printcompressed; break; case CMD_addr_to_uncompressed: if (inputtype != FORMAT_undefined || outputtype != FORMAT_undefined) { printhelp_doublecommands(); exit(EXIT_FAILURE); }; inputtype = FORMAT_ipv6addr; outputtype = FORMAT_ipv6addr; outputtype_given = 1; formatoptions |= FORMATOPTION_printuncompressed; break; case CMD_addr_to_base85: if (inputtype != FORMAT_undefined || outputtype != FORMAT_undefined) { printhelp_doublecommands(); exit(EXIT_FAILURE); }; inputtype = FORMAT_ipv6addr; outputtype = FORMAT_base85; outputtype_given = 1; break; case CMD_base85_to_addr: if (inputtype != FORMAT_undefined || outputtype != FORMAT_undefined) { printhelp_doublecommands(); exit(EXIT_FAILURE); }; inputtype = FORMAT_base85; outputtype = FORMAT_ipv6addr; outputtype_given = 1; formatoptions |= FORMATOPTION_printuncompressed; break; case CMD_mac_to_eui64: if (inputtype != FORMAT_undefined || outputtype != FORMAT_undefined) { printhelp_doublecommands(); exit(EXIT_FAILURE); }; inputtype = FORMAT_mac; outputtype = FORMAT_eui64; outputtype_given = 1; action = ACTION_mac_to_eui64; break; case CMD_addr_to_fulluncompressed: if (inputtype != FORMAT_undefined || outputtype != FORMAT_undefined) { printhelp_doublecommands(); exit(EXIT_FAILURE); }; inputtype = FORMAT_ipv6addr; outputtype = FORMAT_ipv6addr; outputtype_given = 1; formatoptions |= FORMATOPTION_printfulluncompressed; break; case CMD_addr_to_ifinet6: if (inputtype != FORMAT_undefined || outputtype != FORMAT_undefined) { printhelp_doublecommands(); exit(EXIT_FAILURE); }; inputtype = FORMAT_ipv6addr; outputtype = FORMAT_ifinet6; outputtype_given = 1; break; case CMD_ifinet6_to_compressed: if (inputtype != FORMAT_undefined || outputtype != FORMAT_undefined) { printhelp_doublecommands(); exit(EXIT_FAILURE); }; inputtype = FORMAT_ifinet6; outputtype = FORMAT_ipv6addr; outputtype_given = 1; formatoptions |= FORMATOPTION_printcompressed; break; case CMD_ipv4_to_6to4addr: if (inputtype != FORMAT_undefined || outputtype != FORMAT_undefined) { printhelp_doublecommands(); exit(EXIT_FAILURE); }; inputtype = FORMAT_ipv4addr; outputtype = FORMAT_ipv6addr; action = ACTION_ipv4_to_6to4addr; break; case CMD_eui64_to_privacy: if (inputtype != FORMAT_undefined || outputtype != FORMAT_undefined) { printhelp_doublecommands(); exit(EXIT_FAILURE); }; inputtype = FORMAT_iid_token; outputtype = FORMAT_iid_token; action = ACTION_iid_token_to_privacy; break; case CMD_addr_to_countrycode: inputtype = FORMAT_auto; outputtype = FORMAT_auto_noresult; action = ACTION_addr_to_countrycode; action_given = 1; break; case 'i': case CMD_showinfo: command = CMD_showinfo; break; case CMD_showinfotypes: command = CMD_showinfotypes; break; case CMD_6rd_relay_prefix: retval = addr_to_ipv4addrstruct(optarg, resultstring, sizeof(resultstring), &ipv4addr2); break; case CMD_6rd_prefix: retval = addr_to_ipv6addrstruct(optarg, resultstring, sizeof(resultstring), &ipv6addr); break; case CMD_6rd_prefixlength: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "special option '6rd_prefixlength' selected"); if ((atoi(optarg) >= 1) && (atoi(optarg) <= 32)) { ipv6rd_prefixlength = atoi(optarg); } else { fprintf(stderr, " Argument of option '6rd_prefixlength' is out of range (1-32): %d\n", atoi(optarg)); exit(EXIT_FAILURE); }; break; /* test command */ case CMD_test_prefix: case CMD_test_ge: case CMD_test_gt: case CMD_test_le: case CMD_test_lt: switch (i) { case CMD_test_prefix: a = IPV6CALC_TEST_PREFIX; break; case CMD_test_gt: a = IPV6CALC_TEST_GT; break; case CMD_test_ge: a = IPV6CALC_TEST_GE; break; case CMD_test_lt: a = IPV6CALC_TEST_LT; break; case CMD_test_le: a = IPV6CALC_TEST_LE; break; }; const char *test_text = ""; for (i = 0; i < MAXENTRIES_ARRAY(ipv6calc_longopts); i++) { if (ipv6calc_longopts[i].val == i) { test_text = ipv6calc_longopts[i].name; break; }; }; // retrieve text represtation DEBUGPRINT_WA(DEBUG_ipv6calc_general, "special option '%s' selected", test_text); // autodefine action action = ACTION_test; action_given = 1; inputtype2 = libipv6calc_autodetectinput(optarg); switch (inputtype2) { case FORMAT_ipv6addr: DEBUGPRINT_WA(DEBUG_ipv6calc_general, "special option '%s' has IPv6 address: %s", test_text, optarg); retval = addr_to_ipv6addrstruct(optarg, resultstring, sizeof(resultstring), &ipv6addr_a[a]); break; case FORMAT_ipv4addr: DEBUGPRINT_WA(DEBUG_ipv6calc_general, "special option '%s' has IPv4 address: %s", test_text, optarg); retval = addr_to_ipv4addrstruct(optarg, resultstring, sizeof(resultstring), &ipv4addr_a[a]); break; default: fprintf(stderr, "unsupported input type detected for '%s': %s\n", test_text, optarg); exit(EXIT_FAILURE); }; if (retval != 0) { fprintf(stderr, " Argument of option '%s' is not a valid IPv4/6 address: %s\n", test_text, optarg); exit(EXIT_FAILURE); }; // save pointer for later input_a[a] = optarg; break; /* format options */ case 'C': case FORMATOPTION_NUM_printcompressed + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_printcompressed; break; case 'U': case FORMATOPTION_NUM_printuncompressed + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_printuncompressed; break; case 'F': case FORMATOPTION_NUM_printfulluncompressed + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_printfulluncompressed; break; case FORMATOPTION_NUM_printprefix + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_printprefix; break; case FORMATOPTION_NUM_printsuffix + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_printsuffix; break; case FORMATOPTION_NUM_maskprefix + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_maskprefix; break; case FORMATOPTION_NUM_masksuffix + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_masksuffix; break; case 'l': case FORMATOPTION_NUM_printlowercase + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_printlowercase; break; case 'u': case FORMATOPTION_NUM_printuppercase + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_printuppercase; break; case FORMATOPTION_NUM_no_prefixlength + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_no_prefixlength; break; case FORMATOPTION_NUM_forceprefix + FORMATOPTION_NUM_HEAD: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "format option 'forceprefix' selected"); if ((atoi(optarg) >= 1) && (atoi(optarg) <= 128)) { force_prefix = atoi(optarg); formatoptions |= FORMATOPTION_forceprefix; } else { fprintf(stderr, " Argument of option 'forceprefix' is out of range (1-128): %d\n", atoi(optarg)); exit(EXIT_FAILURE); }; break; case FORMATOPTION_NUM_printstart + FORMATOPTION_NUM_HEAD: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "format option 'printstart' selected"); if ((atoi(optarg) >= 1) && (atoi(optarg) <= 128)) { bit_start = atoi(optarg); formatoptions |= FORMATOPTION_printstart; } else { fprintf(stderr, " Argument of option 'printstart' is out of range (1-128): %d\n", atoi(optarg)); exit(EXIT_FAILURE); }; break; case FORMATOPTION_NUM_printend + FORMATOPTION_NUM_HEAD: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "format option 'printend' selected"); if ((atoi(optarg) >= 1) && (atoi(optarg) <= 128)) { bit_end = atoi(optarg); formatoptions |= FORMATOPTION_printend; } else { fprintf(stderr, " Argument of option 'printend' is out of range (1-128): %d\n", atoi(optarg)); exit(EXIT_FAILURE); }; break; case FORMATOPTION_NUM_mr_quote_always + FORMATOPTION_NUM_HEAD: formatoptions |= (FORMATOPTION_mr_quote_always | FORMATOPTION_machinereadable); break; case FORMATOPTION_NUM_mr_quote_never + FORMATOPTION_NUM_HEAD: formatoptions |= (FORMATOPTION_mr_quote_never | FORMATOPTION_machinereadable); break; case FORMATOPTION_NUM_mr_value_only + FORMATOPTION_NUM_HEAD: if (strlen(showinfo_machine_readable_filter) >= sizeof(showinfo_machine_readable_filter)) { fprintf(stderr, " Argument of option 'mrtvo' is too long: %s\n", optarg); exit(EXIT_FAILURE); }; snprintf(showinfo_machine_readable_filter, sizeof(showinfo_machine_readable_filter), "%s", optarg); formatoptions |= (FORMATOPTION_mr_select_token | FORMATOPTION_mr_value_only | FORMATOPTION_machinereadable); break; case FORMATOPTION_NUM_mr_select_token + FORMATOPTION_NUM_HEAD: if (strlen(showinfo_machine_readable_filter) >= sizeof(showinfo_machine_readable_filter)) { fprintf(stderr, " Argument of option 'mrst' is too long: %s\n", optarg); exit(EXIT_FAILURE); }; snprintf(showinfo_machine_readable_filter, sizeof(showinfo_machine_readable_filter), "%s", optarg); formatoptions |= (FORMATOPTION_mr_select_token | FORMATOPTION_machinereadable); break; case FORMATOPTION_NUM_mr_select_token_pa + FORMATOPTION_NUM_HEAD: if (strlen(showinfo_machine_readable_filter) >= sizeof(showinfo_machine_readable_filter)) { fprintf(stderr, " Argument of option 'mrstpa' is too long: %s\n", optarg); exit(EXIT_FAILURE); }; snprintf(showinfo_machine_readable_filter, sizeof(showinfo_machine_readable_filter), "%s", optarg); formatoptions |= (FORMATOPTION_mr_select_token | FORMATOPTION_mr_select_token_pa | FORMATOPTION_machinereadable); break; case FORMATOPTION_NUM_mr_match_token + FORMATOPTION_NUM_HEAD: if (strlen(showinfo_machine_readable_filter) >= sizeof(showinfo_machine_readable_filter)) { fprintf(stderr, " Argument of option 'mrmt' is too long: %s\n", optarg); exit(EXIT_FAILURE); }; snprintf(showinfo_machine_readable_filter, sizeof(showinfo_machine_readable_filter), "%s", optarg); formatoptions |= (FORMATOPTION_mr_match_token | FORMATOPTION_machinereadable); break; case FORMATOPTION_NUM_mr_match_token_suffix + FORMATOPTION_NUM_HEAD: if (strlen(showinfo_machine_readable_filter) >= sizeof(showinfo_machine_readable_filter)) { fprintf(stderr, " Argument of option 'mrmts' is too long: %s\n", optarg); exit(EXIT_FAILURE); }; snprintf(showinfo_machine_readable_filter, sizeof(showinfo_machine_readable_filter), "%s", optarg); formatoptions |= (FORMATOPTION_mr_match_token_suffix | FORMATOPTION_machinereadable); break; case 'm': case FORMATOPTION_NUM_machinereadable + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_machinereadable; break; case FORMATOPTION_NUM_quiet + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_quiet; break; case FORMATOPTION_NUM_printmirrored + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_printmirrored; break; case FORMATOPTION_NUM_print_iid_var + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_print_iid_var; formatoptions |= FORMATOPTION_printfulluncompressed; break; case FORMATOPTION_NUM_print_octal + FORMATOPTION_NUM_HEAD: formatoptions |= FORMATOPTION_print_octal; break; case FORMATOPTION_NUM_print_ipset + FORMATOPTION_NUM_HEAD: if (strlen(optarg) >= sizeof(name_ipset)) { fprintf(stderr, " Argument of option 'print-ipset' is too long: %s\n", optarg); exit(EXIT_FAILURE); }; snprintf(name_ipset, sizeof(name_ipset), "%s", optarg); formatoptions |= FORMATOPTION_print_ipset; break; /* new options */ case 'I': case CMD_inputtype: DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Got input string: %s", optarg); if ((strcmp(optarg, "-?") == 0) || (strcmp(optarg, "-h") == 0) || (strcmp(optarg, "--help") == 0) ) { inputtype = FORMAT_auto; command = CMD_printhelp; break; }; inputtype = ipv6calctypes_checktype(optarg); if (inputtype == FORMAT_undefined) { fprintf(stderr, " Input option is unknown: %s\n", optarg); exit(EXIT_FAILURE); }; inputtype_given = 1; break; case 'O': case CMD_outputtype: DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Got output string: %s", optarg); if ((strcmp(optarg, "-?") == 0) || (strcmp(optarg, "-h") == 0) || (strcmp(optarg, "--help") == 0) ) { outputtype = FORMAT_auto; command = CMD_printhelp; break; }; outputtype = ipv6calctypes_checktype(optarg); if (outputtype == FORMAT_undefined) { fprintf(stderr, " Output option is unknown: %s\n", optarg); exit(EXIT_FAILURE); }; outputtype_given = 1; break; case 'A': case CMD_actiontype: DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Got action string: %s", optarg); if ((strcmp(optarg, "-?") == 0) || (strcmp(optarg, "-h") == 0) || (strcmp(optarg, "--help") == 0) ) { action = ACTION_auto; command = CMD_printhelp; break; }; action = ipv6calctypes_checkaction(optarg); if (action == ACTION_undefined) { fprintf(stderr, " Action option is unknown: %s\n", optarg); exit(EXIT_FAILURE); }; action_given = 1; break; case 'E': DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Got expression string: %s", optarg); if ((strcmp(optarg, "-?") == 0) || (strcmp(optarg, "-h") == 0) || (strcmp(optarg, "--help") == 0) ) { action = ACTION_filter; command = CMD_printhelp; break; }; result = libipv6calc_filter_parse(optarg, &filter_master); if (result != 0) { exit(EXIT_FAILURE); }; if (action == ACTION_undefined) { // autodefine action action = ACTION_filter; action_given = 1; }; break; default: fprintf(stderr, "Unsupported option: %s\n", argv[optind - 1]); fprintf(stderr, "Usage: (see '%s --command -?|-h|--help' for more help)\n", PROGRAM_NAME); // ipv6calc_printhelp(longopts, ipv6calc_longopts_shortopts_map); exit(EXIT_FAILURE); }; }; argv += optind; argc -= optind; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "End of option local parsing: argc=%d", argc); if (ipv6calc_quiet != 0) { formatoptions |= FORMATOPTION_quiet; }; /* initialise database wrapper */ result = libipv6calc_db_wrapper_init(""); if (result != 0) { DEBUGPRINT_WA(DEBUG_ipv6calc_general, "db_wrapper_init failed, result=%d", result); exit(EXIT_FAILURE); }; /* check for KeepTypeAsnCC support */ if ((libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEASNCC_IPV4_REQ_DB) == 1) \ && (libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEASNCC_IPV6_REQ_DB) == 1)) { feature_kp = 1; }; /* check for KeepTypeGeonameID support */ if ((libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEGEONAMEID_IPV4_REQ_DB) == 1) \ && (libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEGEONAMEID_IPV6_REQ_DB) == 1)) { feature_kg = 1; }; /* check for standard anonymization support */ if ((libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_REGISTRY) == 1) \ && (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV6_TO_REGISTRY) == 1)) { feature_anon = 1; }; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Debug value:%08lx command:%08lx inputtype:%08lx outputtype:%08lx action:%08lx formatoptions:%08lx", (unsigned long) ipv6calc_debug, (unsigned long) command, (unsigned long) inputtype, (unsigned long) outputtype, (unsigned long) action, (unsigned long) formatoptions); // ipv6calc_debug usage ok /* do work depending on selection */ if ((command & CMD_printversion) != 0) { if ((command & CMD_printversion_verbose) != 0) { printversion_verbose(((command & CMD_printversion_verbose2) !=0) ? LEVEL_VERBOSE2 : LEVEL_VERBOSE); } else { printversion(); }; if ((command & CMD_printhelp) != 0) { printversion_help(); }; exit(EXIT_SUCCESS); }; /* print help handling */ if ((outputtype_given == 1) && (command & CMD_printhelp)) { command = CMD_printexamples; }; if (command & CMD_printhelp) { if ( (outputtype == FORMAT_undefined) && (inputtype == FORMAT_undefined) && (action == ACTION_undefined)) { DEBUGPRINT_NA(DEBUG_ipv6calc_general, "printhelp/longopts"); ipv6calc_printhelp(longopts, ipv6calc_longopts_shortopts_map); exit(EXIT_FAILURE); } else if (outputtype == FORMAT_auto) { DEBUGPRINT_NA(DEBUG_ipv6calc_general, "printhelp_outputtypes"); if (inputtype == FORMAT_undefined) { inputtype = FORMAT_auto; }; printhelp_outputtypes(inputtype, formatoptions); exit(EXIT_FAILURE); } else if ((inputtype == FORMAT_auto) && (outputtype != FORMAT_auto_noresult)) { if (outputtype == FORMAT_undefined) { DEBUGPRINT_NA(DEBUG_ipv6calc_general, "printhelp_inputtypes"); printhelp_inputtypes(formatoptions); } else { DEBUGPRINT_NA(DEBUG_ipv6calc_general, "printhelp_output_dispatcher"); printhelp_output_dispatcher(outputtype, inputtype); }; exit(EXIT_FAILURE); } else if (action == ACTION_auto) { DEBUGPRINT_NA(DEBUG_ipv6calc_general, "printhelp_actiontypes"); printhelp_actiontypes(formatoptions, ipv6calc_longopts); exit(EXIT_FAILURE); } else if (action != ACTION_undefined) { DEBUGPRINT_NA(DEBUG_ipv6calc_general, "printhelp_action_dispatcher"); printhelp_action_dispatcher(action, 0); exit(EXIT_FAILURE); }; } else if (command == CMD_printexamples) { printhelp_output_dispatcher(outputtype, inputtype); exit(EXIT_FAILURE); } else if (command == CMD_showinfotypes) { showinfo_availabletypes(); exit(EXIT_FAILURE); }; if (action == ACTION_anonymize) { /* check requirements */ if (libipv6calc_anon_supported(&ipv6calc_anon_set) == 0) { fprintf(stderr, "ipv6calc anonymization method not supported: %s\n", libipv6calc_anon_method_name(&ipv6calc_anon_set)); exit(EXIT_FAILURE); }; }; if (action == ACTION_filter) { if (libipv6calc_filter_check(&filter_master) != 0) { fprintf(stderr, "ipv6calc filter check causes a problem\n"); exit(EXIT_FAILURE); }; }; if (action == ACTION_test) { // check whether at least one test option is given result = 0; for (a = IPV6CALC_TEST_LIST_MIN; a <= IPV6CALC_TEST_LIST_MAX; a++) { if ((ipv4addr_a[a].flag_valid == 1) || (ipv6addr_a[a].flag_valid == 1)) { result = 1; }; }; if (result == 0) { fprintf(stderr, "ipv6calc action 'test' misses prefix or begin/end for testing\n"); retval = 1; goto RESULT_none; }; }; if (action == ACTION_db_dump) { if ((filter_master.filter_ipv4addr.active == 0) && (filter_master.filter_ipv6addr.active == 0)) { fprintf(stderr, "ipv6calc action 'dbdump' require a valid IPv4 or IPv6 filter (see option -E ...)\n"); retval = 1; goto RESULT_none; }; // TODO SOURCE SELECTION in case more databases support dump format db_source = IPV6CALC_DB_SOURCE_EXTERNAL; if ((filter_master.filter_ipv4addr.active == 0) && (filter_master.filter_ipv6addr.active != 0)) { retval = libipv6calc_db_dump(db_source, IPV6CALC_PROTO_IPV6, &filter_master, outputtype, formatoptions, name_ipset); } else if ((filter_master.filter_ipv4addr.active != 0) && (filter_master.filter_ipv6addr.active == 0)) { retval = libipv6calc_db_dump(db_source, IPV6CALC_PROTO_IPV4, &filter_master, outputtype, formatoptions, name_ipset); } else { fprintf(stderr, "ipv6calc action 'dbdump' is not supporting combined IPv4 and IPv6 filter\n"); retval = 1; goto RESULT_none; }; goto RESULT_none; }; if (argc > 0) { DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Got input: %s", argv[0]); } else { if (isatty (STDIN_FILENO)) { } else { input_is_pipe = 1; DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Input is a pipe"); formatoptions |= FORMATOPTION_quiet; // force quiet mode }; }; /***** input type handling *****/ DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of input type handling"); /* check length of input */ if (argc > 0) { if (input_is_pipe == 1) { fprintf(stderr, "Additional input found in pipe mode\n"); exit(EXIT_FAILURE); }; for (i = 0; i < argc; i++) { if ( argv[i] != NULL ) { if ( strlen(argv[i]) >= IPV6CALC_STRING_MAX ) { /* that's not good for size limited buffers...*/ fprintf(stderr, "Argument %d is too long\n", i + 1); exit(EXIT_FAILURE); }; }; }; }; /* loop for pipe */ if (input_is_pipe == 1) { PIPE_input: /* read line from stdin */ charptr = fgets(linebuffer, LINEBUFFER, stdin); if (charptr == NULL) { /* end of input */ exit(retval); }; linecounter++; if (linecounter == 1) { DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Ok, proceeding stdin..."); }; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Line: %d", linecounter); if (strlen(linebuffer) >= IPV6CALC_STRING_MAX) { fprintf(stderr, "Line too long: %d\n", linecounter); exit(EXIT_FAILURE); }; if (strlen(linebuffer) == 0) { fprintf(stderr, "Line empty: %d\n", linecounter); goto PIPE_input; }; /* remove trailing \n */ if (linebuffer[strlen(linebuffer) - 1] == '\n') { linebuffer[strlen(linebuffer) - 1] = '\0'; }; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "stdin got line: '%s'", linebuffer); if (linebuffer[strlen(linebuffer) - 1] == '\n') { /* remove trailing \n */ linebuffer[strlen(linebuffer) - 1] = '\0'; }; /* look for first token */ charptr = strtok_r(linebuffer, " \t\n", ptrptr); if ( charptr == NULL ) { fprintf(stderr, "Line contains no token: %d\n", linecounter); goto PIPE_input; }; if ( strlen(charptr) >= LINEBUFFER) { fprintf(stderr, "Line too strange: %d\n", linecounter); goto PIPE_input; }; snprintf(token, sizeof(token), "%s", charptr); input1 = token; inputc = 1; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Token 1: '%s'", input1); /* check for second token */ if (ptrptr && ptrptr[0] && *ptrptr[0] != '\0') { input2 = *ptrptr; inputc = 2; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Token 2: '%s'", input2); }; } else { inputc = argc; if (argc >= 1) { input1 = argv[0]; }; if (argc >= 2) { input2 = argv[1]; }; }; /* reset input type in case of action=filter and pipe mode */ if ((input_is_pipe == 1) && (action_given == 1) && ( (action == ACTION_filter) || (action == ACTION_test) || (action == ACTION_addr_to_countrycode)) ) { DEBUGPRINT_NA(DEBUG_ipv6calc_general, "reset input type for later autodetection"); inputtype = FORMAT_auto; if (action == ACTION_test) { DEBUGPRINT_NA(DEBUG_ipv6calc_general, "reset output type for later autodetection"); outputtype = FORMAT_auto; // clear flags ipv4addr.flag_valid = 0; ipv6addr.flag_valid = 0; }; }; /* autodetection */ if ((inputtype == FORMAT_undefined || inputtype == FORMAT_auto) && inputc > 0) { DEBUGPRINT_NA(DEBUG_ipv6calc_general, "call input type autodetection"); /* no input type specified or automatic selected */ if ((formatoptions & FORMATOPTION_quiet) == 0) { fprintf(stderr, "no input type specified, try autodetection..."); }; inputtype = libipv6calc_autodetectinput(input1); DEBUGPRINT_WA(DEBUG_ipv6calc_general, "call input type autodetection resulted in 0x%08x", inputtype); if ( inputtype != FORMAT_undefined ) { for (i = 0; i < ipv6calc_formatstrings_entries; i++) { if (inputtype == ipv6calc_formatstrings[i].number) { if ((formatoptions & FORMATOPTION_quiet) == 0) { fprintf(stderr, "found type: %s\n", ipv6calc_formatstrings[i].token); }; break; }; }; } else { fprintf(stderr, "no result!\n"); }; } else { DEBUGPRINT_NA(DEBUG_ipv6calc_general, "input type autodetection skipped"); }; /* auto set of output type*/ if (inputtype == FORMAT_revnibbles_int || inputtype == FORMAT_revnibbles_arpa || inputtype == FORMAT_ipv6literal) { if ((outputtype == FORMAT_undefined) && (command != CMD_showinfo)) { outputtype = FORMAT_ipv6addr; }; }; /***** automatic action handling *****/ if (action == ACTION_undefined) { if ( (inputtype == FORMAT_mac && (input_is_pipe == 0 || inputtype_given == 1)) && (outputtype == FORMAT_eui64 && outputtype_given == 1) ) { action = ACTION_mac_to_eui64; } else if ( (inputtype == FORMAT_iid_token && (input_is_pipe == 0 || inputtype_given == 1)) && (outputtype == FORMAT_iid_token && outputtype_given == 1) ) { action = ACTION_iid_token_to_privacy; } else if ( inputtype == FORMAT_prefix_mac && (input_is_pipe == 0 || inputtype_given == 1)) { action = ACTION_prefix_mac_to_ipv6; if ( outputtype == FORMAT_undefined ) { outputtype = FORMAT_ipv6addr; }; } else if ( (inputtype == FORMAT_ipv6addr && (input_is_pipe == 0 || inputtype_given == 1)) && (outputtype == FORMAT_mac && outputtype_given == 1) ) { action = ACTION_ipv6_to_mac; } else if ( (inputtype == FORMAT_ipv6addr && (input_is_pipe == 0 || inputtype_given == 1)) && (outputtype == FORMAT_eui64 && outputtype_given == 1) ) { action = ACTION_ipv6_to_eui64; }; } else if (action == ACTION_addr_to_countrycode) { outputtype = FORMAT_auto_noresult; }; if (input_is_pipe == 0 && action_given == 0) { if ( action != ACTION_undefined ) { if ((formatoptions & FORMATOPTION_quiet) == 0) { fprintf(stderr, "No action type specified, try autodetection..."); }; for (i = 0; i < ipv6calc_actionstrings_entries; i++) { if (action == ipv6calc_actionstrings[i].number) { if ((formatoptions & FORMATOPTION_quiet) == 0) { fprintf(stderr, "found type: %s\n", ipv6calc_actionstrings[i].token); }; break; }; }; }; }; /* check formatoptions for validity */ DEBUGPRINT_WA(DEBUG_ipv6calc_general, "check format option of output type: 0x%08lx (0x%08x)", (unsigned long) outputtype, formatoptions); for (i = 0; i < ipv6calc_outputformatoptionmap_entries; i++) { if (outputtype != ipv6calc_outputformatoptionmap[i][0]) { continue; }; if ( (ipv6calc_outputformatoptionmap[i][1] & (formatoptions & ~FORMATOPTION_quiet) ) == (formatoptions & ~FORMATOPTION_quiet ) ) { /* all options valid */ break; }; if ((input_is_pipe == 1) && ((formatoptions & FORMATOPTION_print_iid_var) == FORMATOPTION_print_iid_var)) { /* workaround */ continue; }; fprintf(stderr, "Unsupported format option(s):\n"); /* run through format options */ for (j = 0; j < ipv6calc_formatoptionstrings_entries; j++) { if ( (ipv6calc_formatoptionstrings[j].number & FORMATOPTION_quiet) != 0 ) { /* skip format option "quiet" on check */ continue; }; if ((((~ ipv6calc_outputformatoptionmap[i][1]) & formatoptions) & ipv6calc_formatoptionstrings[j].number) != 0) { fprintf(stderr, " %s: %s\n", ipv6calc_formatoptionstrings[j].token, ipv6calc_formatoptionstrings[j].explanation); }; }; exit(EXIT_FAILURE); }; /* proceed input depending on type */ retval = -1; /* default */ DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Process input (inputtype: 0x%08lx, count=%d)", (unsigned long) inputtype, inputc); switch (inputtype) { case FORMAT_ipv6addr: case FORMAT_ipv6literal: case FORMAT_ipv4addr: case FORMAT_ipv4hex: case FORMAT_ipv4revhex: case FORMAT_base85: case FORMAT_mac: case FORMAT_eui64: case FORMAT_ifinet6: case FORMAT_revnibbles_int: case FORMAT_revnibbles_arpa: case FORMAT_bitstring: if (inputc < 1) { printhelp_missinginputdata(); exit(EXIT_FAILURE); }; break; case FORMAT_iid: if (inputc == 2) { inputtype = FORMAT_iid_token; if (outputtype == FORMAT_undefined) { outputtype = FORMAT_iid_token; }; }; break; case FORMAT_iid_token: if (inputc < 2) { printhelp_missinginputdata(); exit(EXIT_FAILURE); }; if (outputtype == FORMAT_undefined) { outputtype = FORMAT_iid_token; }; break; case FORMAT_prefix_mac: if (inputc < 2) { printhelp_missinginputdata(); exit(EXIT_FAILURE); }; break; case FORMAT_asn: if (command != CMD_showinfo) { fprintf(stderr, " Input-type only supported for 'showinfo'\n"); exit(EXIT_FAILURE); }; break; case FORMAT_auto_noresult: default: fprintf(stderr, " Input-type isn't autodetected\n"); exit(EXIT_FAILURE); }; switch (inputtype) { case FORMAT_ipv6addr: retval = addr_to_ipv6addrstruct(input1, resultstring, sizeof(resultstring), &ipv6addr); argc--; break; case FORMAT_ipv6literal: retval = addrliteral_to_ipv6addrstruct(input1, resultstring, sizeof(resultstring), &ipv6addr); argc--; break; case FORMAT_ipv4addr: retval = addr_to_ipv4addrstruct(input1, resultstring, sizeof(resultstring), &ipv4addr); argc--; break; case FORMAT_ipv4hex: retval = addrhex_to_ipv4addrstruct(input1, resultstring, sizeof(resultstring), &ipv4addr, 0); argc--; break; case FORMAT_ipv4revhex: retval = addrhex_to_ipv4addrstruct(input1, resultstring, sizeof(resultstring), &ipv4addr, 1); argc--; break; case FORMAT_base85: retval = base85_to_ipv6addrstruct(input1, resultstring, sizeof(resultstring), &ipv6addr); argc--; break; case FORMAT_mac: retval = mac_to_macaddrstruct(input1, resultstring, sizeof(resultstring), &macaddr); argc--; break; case FORMAT_eui64: retval = libeui64_addr_to_eui64addrstruct(input1, resultstring, sizeof(resultstring), &eui64addr); argc--; break; case FORMAT_ifinet6: if (inputc < 2) { retval = libifinet6_ifinet6_to_ipv6addrstruct(input1, resultstring, sizeof(resultstring), &ipv6addr); } else { retval = libifinet6_ifinet6_withprefixlength_to_ipv6addrstruct(input1, input2, resultstring, sizeof(resultstring), &ipv6addr); }; break; case FORMAT_iid_token: /* Get first interface identifier */ retval = identifier_to_ipv6addrstruct(input1, resultstring, sizeof(resultstring), &ipv6addr); if (retval != 0) { break; }; /* Get second token */ retval = tokenlsb64_to_ipv6addrstruct(input2, resultstring, sizeof(resultstring), &ipv6addr2); break; case FORMAT_prefix_mac: /* Get first: IPv6 prefix */ retval = addr_to_ipv6addrstruct(input1, resultstring, sizeof(resultstring), &ipv6addr); if (retval != 0) { break; }; /* Get second: MAC address */ retval = mac_to_macaddrstruct(input2, resultstring, sizeof(resultstring), &macaddr); break; case FORMAT_revnibbles_int: case FORMAT_revnibbles_arpa: retval = librfc1886_nibblestring_to_ipv6addrstruct(input1, &ipv6addr, resultstring, sizeof(resultstring)); argc--; break; case FORMAT_bitstring: retval = librfc2874_bitstring_to_ipv6addrstruct(input1, &ipv6addr, resultstring, sizeof(resultstring)); argc--; break; case FORMAT_asn: retval = sscanf(input1, "%d", &asn); if (retval == 0) { retval = -1; snprintf(resultstring, sizeof(resultstring), "error parsing ASN"); } else { DEBUGPRINT_WA(DEBUG_ipv6calc_general, "ASN parsed: %d", asn); asn_valid = 1; retval = 0; }; argc--; break; case FORMAT_auto_noresult: fprintf(stderr, " Input-type isn't autodetected\n"); exit(EXIT_FAILURE); default: fprintf(stderr, " Input-type isn't implemented\n"); exit(EXIT_FAILURE); }; if (retval != 0) { if (strlen(resultstring) > 0) fprintf(stderr, "%s\n", resultstring); exit(EXIT_FAILURE); }; DEBUGPRINT_NA(DEBUG_ipv6calc_general, "End of input type handling"); /***** postprocessing input *****/ DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of postprocessing input"); if (ipv4addr.flag_valid == 1) { ipv4addr_settype(&ipv4addr, 1); /* Set typeinfo */ /* force prefix */ if ((formatoptions & (FORMATOPTION_forceprefix)) != 0) { ipv4addr.flag_prefixuse = 1; ipv4addr.prefixlength = force_prefix; }; if ((formatoptions & (FORMATOPTION_maskprefix | FORMATOPTION_masksuffix)) != 0) { if (ipv4addr.flag_prefixuse == 1) { if ((formatoptions & FORMATOPTION_maskprefix) != 0) { ipv4addrstruct_maskprefix(&ipv4addr); } else if ((formatoptions & FORMATOPTION_masksuffix) != 0) { ipv4addrstruct_masksuffix(&ipv4addr); }; } else { fprintf(stderr, " Error: mask option used without specifying a prefix length\n"); exit(EXIT_FAILURE); }; }; }; if (ipv6addr.flag_valid == 1) { ipv6addr_settype(&ipv6addr); /* Set typeinfo */ /* honor 6rd prefix length option */ if (ipv6rd_prefixlength > 0) { ipv6addr.typeinfo2 |= IPV6_ADDR_TYPE2_6RD; ipv6addr.prefix2length = ipv6rd_prefixlength; }; /* force prefix */ if ((formatoptions & (FORMATOPTION_forceprefix)) != 0) { ipv6addr.flag_prefixuse = 1; ipv6addr.prefixlength = force_prefix; }; /* mask bits */ if ((formatoptions & (FORMATOPTION_maskprefix | FORMATOPTION_masksuffix)) != 0) { if (ipv6addr.flag_prefixuse == 1) { if ((formatoptions & FORMATOPTION_maskprefix) != 0) { ipv6addrstruct_maskprefix(&ipv6addr); } else if ((formatoptions & FORMATOPTION_masksuffix) != 0) { ipv6addrstruct_masksuffix(&ipv6addr); }; } else { fprintf(stderr, " Error: mask option used without specifying a prefix length\n"); exit(EXIT_FAILURE); }; }; /* start bit */ if ((formatoptions & FORMATOPTION_printstart) != 0) { DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Set bit start to: %d", bit_start); ipv6addr.bit_start = (uint8_t) bit_start; ipv6addr.flag_startend_use = 1; } else { ipv6addr.bit_start = 1; }; /* end bit */ if ((formatoptions & FORMATOPTION_printend) != 0) { DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Set bit end to: %d", bit_end); ipv6addr.bit_end = (uint8_t) bit_end; ipv6addr.flag_startend_use = 1; } else { /* default */ ipv6addr.bit_end = 128; }; /* prefix+suffix */ if ((formatoptions & (FORMATOPTION_printprefix | FORMATOPTION_printsuffix)) != 0) { if ( ipv6addr.flag_prefixuse == 0 ) { fprintf(stderr, " Error: missing prefix length for printing prefix/suffix\n"); exit(EXIT_FAILURE); } else { if ( ipv6addr.flag_startend_use == 0 ) { /* only print[prefix|suffix] */ if ((formatoptions & FORMATOPTION_printprefix) != 0) { ipv6addr.bit_start = 1; ipv6addr.bit_end = ipv6addr.prefixlength; ipv6addr.flag_startend_use = 1; } else if ((formatoptions & FORMATOPTION_printsuffix) != 0) { ipv6addr.bit_start = ipv6addr.prefixlength + 1; ipv6addr.bit_end = 128; ipv6addr.flag_startend_use = 1; }; } else { /* mixed */ if ((formatoptions & FORMATOPTION_printprefix) != 0) { if ( ipv6addr.prefixlength < ipv6addr.bit_start ) { fprintf(stderr, " Error: prefix length '%u' lower than given start bit number '%u'\n", (unsigned int) ipv6addr.prefixlength, (unsigned int) ipv6addr.bit_start); exit(EXIT_FAILURE); } else if ( ipv6addr.prefixlength >= ipv6addr.bit_end ) { fprintf(stderr, " Error: prefix length '%u' higher than given end bit number '%u'\n", (unsigned int) ipv6addr.prefixlength, (unsigned int) ipv6addr.bit_end); exit(EXIT_FAILURE); } else { ipv6addr.bit_end = ipv6addr.prefixlength; }; } else if ((formatoptions & FORMATOPTION_printsuffix) != 0) { if ( ipv6addr.prefixlength >= ipv6addr.bit_end ) { fprintf(stderr, " Error: prefix length '%u' higher than or eqal to given end bit number '%u'\n", (unsigned int) ipv6addr.prefixlength, (unsigned int) ipv6addr.bit_end); exit(EXIT_FAILURE); } else if (ipv6addr.prefixlength >= ipv6addr.bit_start) { fprintf(stderr, " Error: prefix length '%u' higher than or equal to given start bit number '%u'\n", (unsigned int) ipv6addr.prefixlength, (unsigned int) ipv6addr.bit_start); exit(EXIT_FAILURE); } else { ipv6addr.bit_start = ipv6addr.prefixlength + 1; }; }; }; }; }; /* check start/end */ if ( ipv6addr.flag_startend_use == 1 ) { if ( ipv6addr.bit_start > ipv6addr.bit_end ) { fprintf(stderr, " Error: start bit bigger than end bit\n"); exit(EXIT_FAILURE); } else if ( ipv6addr.bit_start == ipv6addr.bit_end ) { fprintf(stderr, " Error: start bit equal to end bit\n"); exit(EXIT_FAILURE); }; }; }; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "result of 'inputtype': %d", retval); if (retval != 0) { fprintf(stderr, "%s\n", resultstring); exit(EXIT_FAILURE); }; DEBUGPRINT_NA(DEBUG_ipv6calc_general, "End of postprocessing input"); /***** action *****/ DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of action"); /***** automatic output handling *****/ if ( outputtype == FORMAT_undefined ) { if ((formatoptions & FORMATOPTION_quiet) == 0) { fprintf(stderr, "no output type specified, try autodetection..."); }; if ( (inputtype == FORMAT_ipv4addr) && ((action == ACTION_ipv4_to_6to4addr) || (action == ACTION_ipv4_to_nat64)) ) { outputtype = FORMAT_ipv6addr; } else if ( (inputtype == FORMAT_ipv6addr) && ((action == ACTION_ipv4_to_6to4addr) || (action == ACTION_ipv4_to_nat64)) ) { outputtype = FORMAT_ipv4addr; } else if ( (inputtype == FORMAT_mac) && (action == ACTION_mac_to_eui64) ) { outputtype = FORMAT_eui64; formatoptions |= FORMATOPTION_printfulluncompressed; } else if ( (inputtype == FORMAT_ipv6addr) && ( (action == ACTION_undefined) || (action == ACTION_anonymize) || (action == ACTION_test) ) ) { outputtype = FORMAT_ipv6addr; } else if ( (inputtype == FORMAT_ipv4addr) && ( (action == ACTION_anonymize) || (action == ACTION_test) ) ) { outputtype = FORMAT_ipv4addr; } else if ( ((inputtype == FORMAT_ipv4addr) || (inputtype == FORMAT_ipv4hex) || (inputtype == FORMAT_ipv4revhex)) && (action == ACTION_undefined || action == ACTION_anonymize) ) { outputtype = FORMAT_ipv4addr; } else if ( inputtype == FORMAT_mac ) { outputtype = FORMAT_mac; } else if ( inputtype == FORMAT_eui64 ) { outputtype = FORMAT_eui64; } else if ( (inputtype == FORMAT_bitstring) || (inputtype == FORMAT_base85) ) { outputtype = FORMAT_ipv6addr; } else if ( (inputtype == FORMAT_ipv4addr) && (action == ACTION_6rd_local_prefix) ) { outputtype = FORMAT_ipv6addr; } else if ( (inputtype == FORMAT_ipv6addr) && (action == ACTION_6rd_extract_ipv4) ) { outputtype = FORMAT_ipv4addr; }; if ( outputtype != FORMAT_undefined ) { for (i = 0; i < ipv6calc_formatstrings_entries; i++) { if (outputtype == ipv6calc_formatstrings[i].number) { if ((formatoptions & FORMATOPTION_quiet) == 0) { fprintf(stderr, "found type: %s\n", ipv6calc_formatstrings[i].token); }; break; }; }; } else { if ((formatoptions & FORMATOPTION_quiet) == 0) { fprintf(stderr, "no result!\n"); }; }; }; if ( (outputtype & (FORMAT_revnibbles_int | FORMAT_revnibbles_arpa)) != 0 ) { /* workaround for reverse IPv4 */ if (ipv6addr.flag_valid == 0 && ipv4addr.flag_valid == 1) { outputtype = FORMAT_revipv4; }; }; /* clear resultstring */ snprintf(resultstring, sizeof(resultstring), "%s", ""); DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Process action (action: 0x%08lx)", (unsigned long) action); switch (action) { case ACTION_mac_to_eui64: if (macaddr.flag_valid != 1) { fprintf(stderr, "No valid MAC address given!\n"); exit(EXIT_FAILURE); }; retval = create_eui64_from_mac(&ipv6addr, &macaddr); break; case ACTION_ipv4_to_6to4addr: if (inputtype == FORMAT_ipv4addr && outputtype == FORMAT_ipv6addr) { /* IPv4 -> IPv6 */ if (ipv4addr.flag_valid != 1) { fprintf(stderr, "No valid IPv4 address given!\n"); exit(EXIT_FAILURE); }; retval = librfc3056_ipv4addr_to_ipv6to4addr(&ipv6addr, &ipv4addr); } else if (inputtype == FORMAT_ipv6addr && outputtype == FORMAT_ipv4addr) { /* IPv6 -> IPv4 */ if (ipv6addr.flag_valid != 1) { fprintf(stderr, "No valid IPv6 address given!\n"); exit(EXIT_FAILURE); }; retval = librfc3056_ipv6addr_to_ipv4addr(&ipv4addr, &ipv6addr, resultstring, sizeof(resultstring)); } else { fprintf(stderr, "Unsupported 6to4 conversion!\n"); exit(EXIT_FAILURE); }; break; case ACTION_ipv4_to_nat64: if (inputtype == FORMAT_ipv4addr && outputtype == FORMAT_ipv6addr) { /* IPv4 -> IPv6 */ if (ipv4addr.flag_valid != 1) { fprintf(stderr, "No valid IPv4 address given!\n"); exit(EXIT_FAILURE); }; retval = librfc6052_ipv4addr_to_ipv6addr(&ipv6addr, &ipv4addr); } else if (inputtype == FORMAT_ipv6addr && outputtype == FORMAT_ipv4addr) { /* IPv6 -> IPv4 */ if (ipv6addr.flag_valid != 1) { fprintf(stderr, "No valid IPv6 address given!\n"); exit(EXIT_FAILURE); }; retval = librfc6052_ipv6addr_to_ipv4addr(&ipv4addr, &ipv6addr, resultstring, sizeof(resultstring)); } else { fprintf(stderr, "Unsupported NAT64 conversion!\n"); exit(EXIT_FAILURE); }; break; case ACTION_ipv6_to_eui64: if (inputtype == FORMAT_ipv6addr && outputtype == FORMAT_eui64) { /* IPv6 -> EUI64 extraction */ if (ipv6addr.flag_valid != 1) { fprintf(stderr, "No valid IPv6 address given!\n"); exit(EXIT_FAILURE); }; if ((ipv6addr.typeinfo & IPV6_NEW_ADDR_IID) == IPV6_NEW_ADDR_IID) { DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Extract EUI-64 from IPv6 address"); eui64addr.addr[0] = ipv6addr_getoctet(&ipv6addr, 8) ^ 0x02; eui64addr.addr[1] = ipv6addr_getoctet(&ipv6addr, 9); eui64addr.addr[2] = ipv6addr_getoctet(&ipv6addr, 10); eui64addr.addr[3] = ipv6addr_getoctet(&ipv6addr, 11); eui64addr.addr[4] = ipv6addr_getoctet(&ipv6addr, 12); eui64addr.addr[5] = ipv6addr_getoctet(&ipv6addr, 13); eui64addr.addr[6] = ipv6addr_getoctet(&ipv6addr, 14); eui64addr.addr[7] = ipv6addr_getoctet(&ipv6addr, 15); eui64addr.flag_valid = 1; } else { fprintf(stderr, "IPv6 address is not containing EUI64 suffix!\n"); exit(EXIT_FAILURE); }; } else { fprintf(stderr, "Unsupported EUI64 extraction!\n"); exit(EXIT_FAILURE); }; break; case ACTION_ipv6_to_mac: if (inputtype == FORMAT_ipv6addr && outputtype == FORMAT_mac) { /* IPv6 -> MAC extraction */ if (ipv6addr.flag_valid != 1) { fprintf(stderr, "No valid IPv6 address given!\n"); exit(EXIT_FAILURE); }; if ((ipv6addr.typeinfo & IPV6_NEW_ADDR_IID_EUI48) == IPV6_NEW_ADDR_IID_EUI48) { DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Extract MAC from IPv6 address"); macaddr.addr[0] = ipv6addr_getoctet(&ipv6addr, 8) ^ 0x02; macaddr.addr[1] = ipv6addr_getoctet(&ipv6addr, 9); macaddr.addr[2] = ipv6addr_getoctet(&ipv6addr, 10); macaddr.addr[3] = ipv6addr_getoctet(&ipv6addr, 13); macaddr.addr[4] = ipv6addr_getoctet(&ipv6addr, 14); macaddr.addr[5] = ipv6addr_getoctet(&ipv6addr, 15); macaddr.flag_valid = 1; } else { fprintf(stderr, "IPv6 address is not containing EUI64 suffix!\n"); exit(EXIT_FAILURE); }; } else { fprintf(stderr, "Unsupported EUI64 extraction!\n"); exit(EXIT_FAILURE); }; break; case ACTION_anonymize: if ((inputtype == FORMAT_ipv4addr || inputtype == FORMAT_ipv4hex || inputtype == FORMAT_ipv4revhex) && outputtype == FORMAT_ipv4addr) { /* anonymize IPv4 address */ if (ipv4addr.flag_valid != 1) { fprintf(stderr, "No valid IPv4 address given!\n"); exit(EXIT_FAILURE); }; libipv4addr_anonymize(&ipv4addr, ipv6calc_anon_set.mask_ipv4, ipv6calc_anon_set.method); } else if ((inputtype == FORMAT_ipv6addr || inputtype == FORMAT_bitstring || inputtype == FORMAT_revnibbles_int || inputtype == FORMAT_revnibbles_arpa || inputtype == FORMAT_base85 || inputtype == FORMAT_ipv6literal) && outputtype == FORMAT_ipv6addr) { /* anonymize IPv6 address */ if (ipv6addr.flag_valid != 1) { fprintf(stderr, "No valid IPv6 address given!\n"); exit(EXIT_FAILURE); }; libipv6addr_anonymize(&ipv6addr, &ipv6calc_anon_set); } else if (inputtype == FORMAT_mac && outputtype == FORMAT_mac) { /* anonymize MAC address */ if (macaddr.flag_valid != 1) { fprintf(stderr, "No valid MAC address given!\n"); exit(EXIT_FAILURE); }; libmacaddr_anonymize(&macaddr, &ipv6calc_anon_set); } else if (inputtype == FORMAT_eui64 && outputtype == FORMAT_eui64) { /* anonymize EUI-64 address */ if (eui64addr.flag_valid != 1) { fprintf(stderr, "No valid EUI-64 address given!\n"); exit(EXIT_FAILURE); }; libeui64_anonymize(&eui64addr, &ipv6calc_anon_set); } else { fprintf(stderr, "Unsupported anonymization!\n"); exit(EXIT_FAILURE); }; break; case ACTION_iid_token_to_privacy: if (ipv6addr.flag_valid != 1 || ipv6addr2.flag_valid != 1) { fprintf(stderr, "No valid interface identifiers given!\n"); exit(EXIT_FAILURE); }; retval = librfc3041_calc(&ipv6addr, &ipv6addr2, &ipv6addr3, &ipv6addr4); ipv6addr_copy(&ipv6addr, &ipv6addr3); ipv6addr_copy(&ipv6addr2, &ipv6addr4); break; case ACTION_prefix_mac_to_ipv6: /* check IPv6 prefix */ if ( ipv6addr.flag_valid != 1 ) { fprintf(stderr, "No valid IPv6 address given!\n"); exit(EXIT_FAILURE); }; /* check MAC */ if (macaddr.flag_valid != 1) { fprintf(stderr, "No valid MAC address given!\n"); exit(EXIT_FAILURE); }; /* check for empty IID, otherwise display warning */ for ( i = 8; i <= 15; i++ ) { if (ipv6addr.in6_addr.s6_addr[i] != 0) { fprintf(stderr, "Warning: given prefix is not 0 in 64 LSBs!\n"); break; }; }; /* convert MAC to IID */ retval = create_eui64_from_mac(&ipv6addr2, &macaddr); /* put IID into address */ for ( i = 8; i <= 15; i++ ) { ipv6addr.in6_addr.s6_addr[i] = ipv6addr2.in6_addr.s6_addr[i]; }; break; case ACTION_6rd_local_prefix: /* check formats */ if ( outputtype != FORMAT_ipv6addr ) { fprintf(stderr, "output type incompatible (no IPv6 address)!\n"); exit(EXIT_FAILURE); }; if ( inputtype != FORMAT_ipv4addr ) { fprintf(stderr, "input type incompatible (no IPv4 address)!\n"); exit(EXIT_FAILURE); }; /* check IPv6 prefix */ if ( ipv6addr.flag_valid != 1 ) { fprintf(stderr, "No valid IPv6 address given as 6rd prefix!\n"); exit(EXIT_FAILURE); }; if ( !ipv6addr.flag_prefixuse ) { fprintf(stderr, "Specified IPv6 address has no prefix length!\n"); exit(EXIT_FAILURE); }; /* check IPv4 local ip */ if ( ipv4addr.flag_valid != 1 ) { fprintf(stderr, "No valid IPv4 address given as local IP!\n"); exit(EXIT_FAILURE); }; if ( ipv4addr.flag_prefixuse ) { fprintf(stderr, "No prefix length should be specified for the local IP!\n"); exit(EXIT_FAILURE); }; /* check IPv4 relay prefix */ if ( ipv4addr2.flag_valid == 1 ) { if ( !ipv4addr2.flag_prefixuse ) { fprintf(stderr, "Specified relay prefix IPv4 address has no prefix length!\n"); exit(EXIT_FAILURE); }; }; retval = librfc5569_calc_6rd_local_prefix(&ipv6addr, &ipv4addr2, &ipv4addr, resultstring, sizeof(resultstring)); break; case ACTION_6rd_extract_ipv4: /* check formats */ if ( outputtype != FORMAT_ipv4addr ) { fprintf(stderr, "output type incompatible (no IPv4 address)!\n"); exit(EXIT_FAILURE); }; if ( inputtype != FORMAT_ipv6addr ) { fprintf(stderr, "input type incompatible (no IPv6 address)!\n"); exit(EXIT_FAILURE); }; /* check IPv6 address */ if ( ipv6addr.flag_valid != 1 ) { fprintf(stderr, "No valid IPv6 address given!\n"); exit(EXIT_FAILURE); }; /* check IPv4 relay prefix */ if (ipv6rd_prefixlength < 1) { fprintf(stderr, "No IPv6 Rapid Deployment prefix length given!\n"); exit(EXIT_FAILURE); }; retval = libipv6addr_get_included_ipv4addr(&ipv6addr, &ipv4addr, IPV6_ADDR_SELECT_IPV4_PREFIX2_LENGTH); break; case ACTION_filter: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of action: filter"); outputtype = inputtype; result = 1; /* default, skip */ if (inputtype == FORMAT_ipv4addr) { /* call filter for IPv4 addresses */ result = ipv4addr_filter(&ipv4addr, &filter_master.filter_ipv4addr); } else if (inputtype == FORMAT_ipv6addr) { /* call filter for IPv6 addresses */ result = ipv6addr_filter(&ipv6addr, &filter_master.filter_ipv6addr); } else if (inputtype == FORMAT_mac) { /* call filter for MAC addresses */ result = macaddr_filter(&macaddr, &filter_master.filter_macaddr); } else { NONQUIETPRINT_WA("Action-type 'filter' isn't currently implemented for inputtype: %s", ipv6calctypes_format_string_by_type(inputtype)); }; if (result > 0) { /* skip everything */ DEBUGPRINT_WA(DEBUG_ipv6calc_general, "filter result SKIP (%d): '%s'", result, linebuffer); } else { snprintf(resultstring, sizeof(resultstring), "%s", linebuffer); }; goto RESULT_print; break; case ACTION_test: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of action: test"); outputtype = inputtype; if ((inputtype == FORMAT_ipv4addr || inputtype == FORMAT_ipv4hex || inputtype == FORMAT_ipv4revhex) && outputtype == FORMAT_ipv4addr) { /* test IPv4 address */ if (ipv4addr.flag_valid != 1) { fprintf(stderr, "No valid IPv4 address given!\n"); exit(EXIT_FAILURE); }; } else if ((inputtype == FORMAT_ipv6addr || inputtype == FORMAT_bitstring || inputtype == FORMAT_revnibbles_int || inputtype == FORMAT_revnibbles_arpa || inputtype == FORMAT_base85 || inputtype == FORMAT_ipv6literal) && outputtype == FORMAT_ipv6addr) { /* test IPv6 address */ if (ipv6addr.flag_valid != 1) { fprintf(stderr, "No valid IPv6 address given!\n"); exit(EXIT_FAILURE); }; } else { fprintf(stderr, "Unsupported input type for 'test_prefix'!\n"); exit(EXIT_FAILURE); }; retval = 0; i = 0; if (ipv4addr.flag_valid == 1) { // IPv4 address test if (ipv4addr_a[IPV6CALC_TEST_PREFIX].flag_valid == 1) { i++; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "'test_prefix' for IPv4: %s inside %s", input1, input_a[IPV6CALC_TEST_PREFIX]); // compare with honor prefix length result = ipv4addr_compare(&ipv4addr, &ipv4addr_a[IPV6CALC_TEST_PREFIX], 1); if (result == 0) { result_a[IPV6CALC_TEST_PREFIX] = 0; } else { result_a[IPV6CALC_TEST_PREFIX] = 1; }; }; if (ipv4addr_a[IPV6CALC_TEST_GT].flag_valid == 1) { i++; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "'test_gt' for IPv4: %s with %s", input1, input_a[IPV6CALC_TEST_GT]); // compare result = ipv4addr_compare(&ipv4addr, &ipv4addr_a[IPV6CALC_TEST_GT], 0); if (result > 0) { result_a[IPV6CALC_TEST_GT] = 0; } else { result_a[IPV6CALC_TEST_GT] = 1; }; }; if (ipv4addr_a[IPV6CALC_TEST_GE].flag_valid == 1) { i++; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "'test_ge' for IPv4: %s with %s", input1, input_a[IPV6CALC_TEST_GE]); // compare result = ipv4addr_compare(&ipv4addr, &ipv4addr_a[IPV6CALC_TEST_GE], 0); if (result >= 0) { result_a[IPV6CALC_TEST_GE] = 0; } else { result_a[IPV6CALC_TEST_GE] = 1; } }; if (ipv4addr_a[IPV6CALC_TEST_LT].flag_valid == 1) { i++; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "'test_lt' for IPv4: %s with %s", input1, input_a[IPV6CALC_TEST_LT]); // compare result = ipv4addr_compare(&ipv4addr, &ipv4addr_a[IPV6CALC_TEST_LT], 0); if (result < 0) { result_a[IPV6CALC_TEST_LT] = 0; } else { result_a[IPV6CALC_TEST_LT] = 1; }; }; if ((retval == 0) && (ipv4addr_a[IPV6CALC_TEST_LE].flag_valid == 1)) { i++; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "'test_le' for IPv4: %s with %s", input1, input_a[IPV6CALC_TEST_LE]); // compare result = ipv4addr_compare(&ipv4addr, &ipv4addr_a[IPV6CALC_TEST_LE], 0); if (result <= 0) { result_a[IPV6CALC_TEST_LE] = 0; } else { result_a[IPV6CALC_TEST_LE] = 1; }; }; } else if (ipv6addr.flag_valid == 1) { // IPv6 address if (ipv6addr_a[IPV6CALC_TEST_PREFIX].flag_valid == 1) { i++; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "'test_prefix' for IPv6: %s inside %s", input1, input_a[IPV6CALC_TEST_PREFIX]); // compare with honor prefix length result = ipv6addr_compare(&ipv6addr, &ipv6addr_a[IPV6CALC_TEST_PREFIX], 1); if (result == 0) { result_a[IPV6CALC_TEST_PREFIX] = 0; } else { result_a[IPV6CALC_TEST_PREFIX] = 1; }; }; if (ipv6addr_a[IPV6CALC_TEST_GT].flag_valid == 1) { i++; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "'test_gt' for IPv6: %s with %s", input1, input_a[IPV6CALC_TEST_GT]); // compare result = ipv6addr_compare(&ipv6addr, &ipv6addr_a[IPV6CALC_TEST_GT], 0); if (result > 0) { result_a[IPV6CALC_TEST_GT] = 0; } else { result_a[IPV6CALC_TEST_GT] = 1; }; }; if (ipv6addr_a[IPV6CALC_TEST_GE].flag_valid == 1) { i++; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "'test_ge' for IPv6: %s with %s", input1, input_a[IPV6CALC_TEST_GE]); // compare result = ipv6addr_compare(&ipv6addr, &ipv6addr_a[IPV6CALC_TEST_GE], 0); if (result >= 0) { result_a[IPV6CALC_TEST_GE] = 0; } else { result_a[IPV6CALC_TEST_GE] = 1; }; }; if (ipv6addr_a[IPV6CALC_TEST_LT].flag_valid == 1) { i++; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "'test_lt' for IPv6: %s with %s", input1, input_a[IPV6CALC_TEST_LT]); // compare result = ipv6addr_compare(&ipv6addr, &ipv6addr_a[IPV6CALC_TEST_LT], 0); if (result < 0) { result_a[IPV6CALC_TEST_LT] = 0; } else { result_a[IPV6CALC_TEST_LT] = 1; }; }; if (ipv6addr_a[IPV6CALC_TEST_LE].flag_valid == 1) { i++; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "'test_le' for IPv6: %s with %s", input1, input_a[IPV6CALC_TEST_LE]); // compare result = ipv6addr_compare(&ipv6addr, &ipv6addr_a[IPV6CALC_TEST_LE], 0); if (result <= 0) { result_a[IPV6CALC_TEST_LE] = 0; } else { result_a[IPV6CALC_TEST_LE] = 1; }; }; }; if (i == 0) { retval = 2; } else { snprintf(resultstring2, sizeof(resultstring2), "%s", ""); snprintf(resultstring3, sizeof(resultstring3), "%s", ""); // combine results for (a = IPV6CALC_TEST_LIST_MIN; a <= IPV6CALC_TEST_LIST_MAX; a++) { if (result_a[a] == 1) { retval = 1; }; // create result string if (result_a[a] >= 0) { switch (a) { case IPV6CALC_TEST_PREFIX: snprintf(resultstring2, sizeof(resultstring2), "%s %s %s", resultstring3, (result_a[a] == 0) ? "inside" : "NOT inside", input_a[a]); break; case IPV6CALC_TEST_GT: snprintf(resultstring2, sizeof(resultstring2), "%s %s %s", resultstring3, (result_a[a] == 0) ? "greater than" : "NOT greater than", input_a[a]); break; case IPV6CALC_TEST_GE: snprintf(resultstring2, sizeof(resultstring2), "%s %s %s", resultstring3, (result_a[a] == 0) ? "greater/equal than" : "NOT greater/equal than", input_a[a]); break; case IPV6CALC_TEST_LT: snprintf(resultstring2, sizeof(resultstring2), "%s %s %s", resultstring3, (result_a[a] == 0) ? "less than" : "NOT less than", input_a[a]); break; case IPV6CALC_TEST_LE: snprintf(resultstring2, sizeof(resultstring2), "%s %s %s", resultstring3, (result_a[a] == 0) ? "less/equal than" : "NOT less/equal than", input_a[a]); break; }; snprintf(resultstring3, sizeof(resultstring3), "%s", resultstring2); }; }; }; DEBUGPRINT_WA(DEBUG_ipv6calc_general, "'test_*' result: %x", retval); if (input_is_pipe == 1) { if (retval == 2) { snprintf(resultstring, sizeof(resultstring), "%s uncomparable", linebuffer); } else { snprintf(resultstring, sizeof(resultstring), "%s %s", linebuffer, resultstring3); }; } else { if ((formatoptions & FORMATOPTION_quiet) == 0) { if (retval == 2) { snprintf(resultstring, sizeof(resultstring), "%s uncomparable", input1); } else { snprintf(resultstring, sizeof(resultstring), "%s %s", input1, resultstring3); }; }; }; goto RESULT_print; break; case ACTION_addr_to_countrycode: cc_index = COUNTRYCODE_INDEX_MAX; if (inputtype == FORMAT_ipv4addr || inputtype == FORMAT_ipv4hex || inputtype == FORMAT_ipv4revhex) { /* retrieve country code of IPv4 address */ if (ipv4addr.flag_valid != 1) { fprintf(stderr, "No valid IPv4 address given!\n"); exit(EXIT_FAILURE); }; if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_CC) == 1) { cc_index = libipv4addr_cc_index_by_addr(&ipv4addr, NULL); }; } else if (inputtype == FORMAT_ipv6addr || inputtype == FORMAT_bitstring || inputtype == FORMAT_revnibbles_int || inputtype == FORMAT_revnibbles_arpa || inputtype == FORMAT_base85 || inputtype == FORMAT_ipv6literal) { /* retrieve country code of IPv6 address */ if (ipv6addr.flag_valid != 1) { fprintf(stderr, "No valid IPv6 address given!\n"); exit(EXIT_FAILURE); }; if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV6_TO_CC) == 1) { cc_index = libipv6addr_cc_index_by_addr(&ipv6addr, NULL); }; } else { fprintf(stderr, "Unsupported input type for 'addr2cc' (need to be IPv4/IPv6 address)!\n"); exit(EXIT_FAILURE); }; if (cc_index == COUNTRYCODE_INDEX_UNKNOWN) { snprintf(resultstring, sizeof(resultstring), "%s%s" , "--" , ((formatoptions & FORMATOPTION_quiet) == 0) ? " (unknown)": "" ); } else if (cc_index == COUNTRYCODE_INDEX_MAX) { snprintf(resultstring, sizeof(resultstring), "%s%s" , "--" , ((formatoptions & FORMATOPTION_quiet) == 0) ? " (no-usable-database)" : "" ); } else { snprintf(resultstring, sizeof(resultstring), "%c%c", COUNTRYCODE_INDEX_TO_CHAR1(cc_index), COUNTRYCODE_INDEX_TO_CHAR2(cc_index)); }; goto RESULT_print; break; case ACTION_undefined: /* no action selected */ break; default: fprintf(stderr, " Action-type isn't implemented\n"); exit(EXIT_FAILURE); /* break; */ }; if (retval != 0) { fprintf(stderr, "Problem occurs during action: %s\n", resultstring); exit(EXIT_FAILURE); }; DEBUGPRINT_NA(DEBUG_ipv6calc_general, "End of action"); /***** output type *****/ DEBUGPRINT_WA(DEBUG_ipv6calc_general, "Process output (outputtype: 0x%08lx)", (unsigned long) outputtype); /* catch showinfo */ if (command == CMD_showinfo) { // change anonymization method depending on support if (feature_kp == 1) { result = libipv6calc_anon_set_by_name(&ipv6calc_anon_set, "keep-type-asn-cc"); if (result != 0) { // fallback result = libipv6calc_anon_set_by_name(&ipv6calc_anon_set, ANONPRESET_DEFAULT); }; }; if (ipv6addr.flag_valid == 1) { retval = showinfo_ipv6addr(&ipv6addr, formatoptions); } else if (ipv4addr.flag_valid == 1) { retval = showinfo_ipv4addr(&ipv4addr, formatoptions); } else if (macaddr.flag_valid == 1) { retval = showinfo_eui48(&macaddr, formatoptions); } else if (eui64addr.flag_valid == 1) { retval = showinfo_eui64(&eui64addr, formatoptions); } else if (asn_valid == 1) { retval = showinfo_asn(asn, formatoptions); } else { fprintf(stderr, "No valid or supported input address given!\n"); retval = 1; }; if (retval != 0) { fprintf(stderr, "Problem occurs during selection of showinfo\n"); exit(EXIT_FAILURE); }; goto RESULT_print; }; /* catch error cases in advance */ switch (outputtype) { case FORMAT_base85: case FORMAT_bitstring: case FORMAT_ifinet6: case FORMAT_ipv6addr: case FORMAT_ipv6literal: case FORMAT_revnibbles_int: case FORMAT_revnibbles_arpa: case FORMAT_iid_token: if (ipv6addr.flag_valid != 1) { fprintf(stderr, "No valid IPv6 address given%s!\n", (inputtype_given > 0) ? " (no action autoselected from specified input type)": "" ); exit(EXIT_FAILURE); }; break; case FORMAT_ipv4addr: case FORMAT_ipv4hex: case FORMAT_revipv4: case FORMAT_ipv6to4: if (ipv4addr.flag_valid != 1) { fprintf(stderr, "No valid IPv4 address given%s!\n", (inputtype_given > 0) ? " (no action autoselected from specified input type)": "" ); exit(EXIT_FAILURE); }; break; case FORMAT_mac: if (macaddr.flag_valid != 1) { fprintf(stderr, "No valid MAC address given%s!\n", (inputtype_given > 0) ? " (no action autoselected from specified input type)": "" ); exit(EXIT_FAILURE); }; break; }; /* process output */ switch (outputtype) { case -1: /* old implementation */ break; case FORMAT_base85: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_base85"); retval = ipv6addrstruct_to_base85(&ipv6addr, resultstring, sizeof(resultstring)); break; case FORMAT_bitstring: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_bitstring"); DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Call 'librfc2874_addr_to_bitstring'"); retval = librfc2874_addr_to_bitstring(&ipv6addr, resultstring, sizeof(resultstring), formatoptions); break; case FORMAT_octal: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_octal"); if (ipv4addr.flag_valid == 1) { retval = libipv4addr_to_octal(&ipv4addr, resultstring, sizeof(resultstring), formatoptions); } else if (ipv6addr.flag_valid == 1) { retval = libipv6addr_to_octal(&ipv6addr, resultstring, sizeof(resultstring), formatoptions); }; break; case FORMAT_hex: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_hex"); if (ipv4addr.flag_valid == 1) { retval = libipv4addr_to_hex(&ipv4addr, resultstring, sizeof(resultstring), formatoptions); } else if (ipv6addr.flag_valid == 1) { retval = libipv6addr_to_hex(&ipv6addr, resultstring, sizeof(resultstring), formatoptions); }; break; case FORMAT_ipv4hex: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_ipv4hex"); retval = libipv4addr_to_hex(&ipv4addr, resultstring, sizeof(resultstring), formatoptions); break; case FORMAT_revnibbles_int: case FORMAT_revnibbles_arpa: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_revnibbles_int/arpa"); switch (outputtype) { case FORMAT_revnibbles_int: retval = librfc1886_addr_to_nibblestring(&ipv6addr, resultstring, sizeof(resultstring), formatoptions, "ip6.int."); break; case FORMAT_revnibbles_arpa: retval = librfc1886_addr_to_nibblestring(&ipv6addr, resultstring, sizeof(resultstring), formatoptions, "ip6.arpa."); break; }; break; case FORMAT_revipv4: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_revipv4"); retval = libipv4addr_to_reversestring(&ipv4addr, resultstring, sizeof(resultstring), formatoptions); break; case FORMAT_ifinet6: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_ifinet6"); retval = libifinet6_ipv6addrstruct_to_ifinet6(&ipv6addr, resultstring, sizeof(resultstring)); break; case FORMAT_ipv6addr: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_ipv6addr"); if ((formatoptions & (FORMATOPTION_printuncompressed | FORMATOPTION_printfulluncompressed | FORMATOPTION_printprefix | FORMATOPTION_printsuffix)) != 0) { retval = libipv6addr_ipv6addrstruct_to_uncompaddr(&ipv6addr, resultstring, sizeof(resultstring), formatoptions); } else { retval = librfc1884_ipv6addrstruct_to_compaddr(&ipv6addr, resultstring, sizeof(resultstring), formatoptions); }; if ((formatoptions & FORMATOPTION_print_iid_var) == FORMATOPTION_print_iid_var) { iid_random_result = ipv6addr_iidrandomdetection(&ipv6addr, &iid_statistics); snprintf(resultstring2, sizeof(resultstring2), "%-40s R=%d h=%7.3f r=%7.3f db= %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d dbh= %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d da= %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d dd= %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d dda= %d", resultstring, \ iid_random_result, iid_statistics.hexdigit, iid_statistics.lls_residual, \ iid_statistics.digit_blocks[0], iid_statistics.digit_blocks[1], iid_statistics.digit_blocks[2], iid_statistics.digit_blocks[3], iid_statistics.digit_blocks[4], iid_statistics.digit_blocks[5], iid_statistics.digit_blocks[6], iid_statistics.digit_blocks[7], iid_statistics.digit_blocks[8], iid_statistics.digit_blocks[9], iid_statistics.digit_blocks[10], iid_statistics.digit_blocks[11], iid_statistics.digit_blocks[12], iid_statistics.digit_blocks[13], iid_statistics.digit_blocks[14], iid_statistics.digit_blocks[15], \ iid_statistics.digit_blocks_hexdigit[0], iid_statistics.digit_blocks_hexdigit[1], iid_statistics.digit_blocks_hexdigit[2], iid_statistics.digit_blocks_hexdigit[3], iid_statistics.digit_blocks_hexdigit[4], iid_statistics.digit_blocks_hexdigit[5], iid_statistics.digit_blocks_hexdigit[6], iid_statistics.digit_blocks_hexdigit[7], iid_statistics.digit_blocks_hexdigit[8], iid_statistics.digit_blocks_hexdigit[9], iid_statistics.digit_blocks_hexdigit[10], iid_statistics.digit_blocks_hexdigit[11], iid_statistics.digit_blocks_hexdigit[12], iid_statistics.digit_blocks_hexdigit[13], iid_statistics.digit_blocks_hexdigit[14], iid_statistics.digit_blocks_hexdigit[15], \ iid_statistics.digit_amount[0], iid_statistics.digit_amount[1], iid_statistics.digit_amount[2], iid_statistics.digit_amount[3], iid_statistics.digit_amount[4], iid_statistics.digit_amount[5], iid_statistics.digit_amount[6], iid_statistics.digit_amount[7], iid_statistics.digit_amount[8], iid_statistics.digit_amount[9], iid_statistics.digit_amount[10], iid_statistics.digit_amount[11], iid_statistics.digit_amount[12], iid_statistics.digit_amount[13], iid_statistics.digit_amount[14], iid_statistics.digit_amount[15], \ iid_statistics.digit_delta[0], iid_statistics.digit_delta[1], iid_statistics.digit_delta[2], iid_statistics.digit_delta[3], iid_statistics.digit_delta[4], iid_statistics.digit_delta[5], iid_statistics.digit_delta[6], iid_statistics.digit_delta[7], iid_statistics.digit_delta[8], iid_statistics.digit_delta[9], iid_statistics.digit_delta[10], iid_statistics.digit_delta[11], iid_statistics.digit_delta[12], iid_statistics.digit_delta[13], iid_statistics.digit_delta[14], iid_statistics.digit_delta[15], \ iid_statistics.digit_delta[16], iid_statistics.digit_delta[17], iid_statistics.digit_delta[18], iid_statistics.digit_delta[19], iid_statistics.digit_delta[20], iid_statistics.digit_delta[21], iid_statistics.digit_delta[22], iid_statistics.digit_delta[23], iid_statistics.digit_delta[24], iid_statistics.digit_delta[25], iid_statistics.digit_delta[26], iid_statistics.digit_delta[27], iid_statistics.digit_delta[28], iid_statistics.digit_delta[29], iid_statistics.digit_delta[30], \ iid_statistics.digit_delta_amount ); snprintf(resultstring, sizeof(resultstring), "%s", resultstring2); }; break; case FORMAT_ipv6literal: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_ipv6literal"); if ((formatoptions & (FORMATOPTION_printuncompressed | FORMATOPTION_printfulluncompressed)) != 0) { retval = libipv6addr_ipv6addrstruct_to_uncompaddr(&ipv6addr, resultstring, sizeof(resultstring), formatoptions | FORMATOPTION_literal); } else { retval = librfc1884_ipv6addrstruct_to_compaddr(&ipv6addr, resultstring, sizeof(resultstring), formatoptions | FORMATOPTION_literal); }; break; case FORMAT_ipv4addr: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_ipv4addr"); retval = libipv4addr_ipv4addrstruct_to_string(&ipv4addr, resultstring, sizeof(resultstring), formatoptions); break; case FORMAT_ipv6to4: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_ipv6to4"); retval = librfc3056_ipv4addr_to_ipv6to4addr(&ipv6addr, &ipv4addr); CONVERT_IPV6ADDRP_IPADDR(&ipv6addr, ipaddr); retval = libipaddr_ipaddrstruct_to_string(&ipaddr, resultstring, sizeof(resultstring), formatoptions); break; case FORMAT_eui64: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_eui64"); if (action == ACTION_mac_to_eui64) { if (ipv6addr.flag_valid != 1) { fprintf(stderr, "No valid EUI-64 identifier given!\n"); exit(EXIT_FAILURE); }; if (ipv6addr.prefixlength != 64) { fprintf(stderr, "No valid EUI-64 identifier given!\n"); exit(EXIT_FAILURE); }; formatoptions |= FORMATOPTION_printsuffix; retval = libipv6addr_ipv6addrstruct_to_uncompaddr(&ipv6addr, resultstring, sizeof(resultstring), formatoptions); } else if ((action == ACTION_anonymize) || (action == ACTION_ipv6_to_eui64)) { retval = libeui64_eui64addrstruct_to_string(&eui64addr, resultstring, sizeof(resultstring), formatoptions); } else { fprintf(stderr, "Specify proper action or input for output format: eui64\n"); exit(EXIT_FAILURE); }; break; case FORMAT_mac: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_mac"); retval = macaddrstruct_to_string(&macaddr, resultstring, sizeof(resultstring), formatoptions); break; case FORMAT_iid_token: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Start of output handling for FORMAT_iid_token"); if (ipv6addr2.flag_valid != 1) { fprintf(stderr, "No valid second IPv6 address given!\n"); exit(EXIT_FAILURE); }; /* get interface identifier */ retval = libipv6addr_ipv6addrstruct_to_uncompaddr(&ipv6addr, resultstring2, sizeof(resultstring2), formatoptions | FORMATOPTION_printsuffix); if (retval != 0) { break; }; /* get token */ retval = libipv6addr_ipv6addrstruct_to_tokenlsb64(&ipv6addr2, resultstring3, sizeof(resultstring3), formatoptions); /* cat together */ snprintf(resultstring, sizeof(resultstring), "%s %s", resultstring2, resultstring3); break; default: fprintf(stderr, " Outputtype isn't implemented: %8lx\n", (unsigned long) outputtype); exit(EXIT_FAILURE); }; DEBUGPRINT_NA(DEBUG_ipv6calc_general, "End of output handling"); RESULT_print: DEBUGPRINT_NA(DEBUG_ipv6calc_general, "Print result"); /* print result */ if (strlen(resultstring) > 0) { if ( (retval == 0) || (action == ACTION_test) ) { fprintf(stdout, "%s\n", resultstring); } else { fprintf(stderr, "%s\n", resultstring); }; }; if (input_is_pipe == 1) { if (flush_mode == 1) { fflush(stdout); }; goto PIPE_input; }; RESULT_none: libipv6calc_cleanup(); exit(retval); }; ipv6calc-4.1.0/ipv6calc/ipv6calc.h000066400000000000000000000014501444154247200166210ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6calc.h * Version : $Id: e526aa3d095c0f0960aa5ab5fd0d544a7d884921 $ * Copyright : 2001-2019 by Peter Bieringer * * Information: * Main header file */ #ifndef _ipv6calc_h_ #define _ipv6calc_h_ /* global program related definitions */ #define PROGRAM_NAME "ipv6calc" #define PROGRAM_COPYRIGHT "(P) & (C) 2001-" COPYRIGHT_YEAR " by Peter Bieringer " //#define ANONPRESET_DEFAULT "keep-type-asn-cc" #define ANONPRESET_DEFAULT "anonymize-standard" #define DEBUG_ipv6calc_general 0x00000001l #endif extern int feature_zeroize; extern int feature_anon; extern int feature_kp; extern int feature_kg; extern char showinfo_machine_readable_filter[]; extern int showinfo_machine_readable_filter_used; ipv6calc-4.1.0/ipv6calc/ipv6calchelp_local.c000066400000000000000000000123661444154247200206470ustar00rootroot00000000000000/* * Project : ipv6calc/ipv6calc * File : ipv6calchelp_local.c * Version : $Id: 377cd99a33fe7592095a5d6ab403a327578de170 $ * Copyright : 2013-2019 by Peter Bieringer * * Information: * Help library */ #include #include #include #include #include "ipv6calc.h" #include "ipv6calctypes.h" #include "ipv6calcoptions.h" #include "ipv6calchelp.h" #include "config.h" #include "../databases/lib/libipv6calc_db_wrapper.h" // Note: part of help is still located at ../lib/ipv6calchelp.c /* display info */ void printversion(void) { char resultstring[IPV6CALC_STRING_MAX] = ""; libipv6calc_db_wrapper_features(resultstring, sizeof(resultstring)); fprintf(stderr, "%s: version %s", PROGRAM_NAME, PACKAGE_VERSION); fprintf(stderr, " %s", resultstring); if (feature_zeroize == 1) { fprintf(stderr, " ANON_ZEROISE"); }; if (feature_anon == 1) { fprintf(stderr, " ANON_ANONYMIZE"); }; if (feature_kp == 1) { fprintf(stderr, " ANON_KEEP-TYPE-ASN-CC"); }; if (feature_kg == 1) { fprintf(stderr, " ANON_KEEP-TYPE-GEONAMEID"); }; fprintf(stderr, "\n"); }; void printversion_help(void) { char resultstring[IPV6CALC_STRING_MAX] = ""; libipv6calc_db_wrapper_features(resultstring, sizeof(resultstring)); fprintf(stderr, "\n"); fprintf(stderr, "Explanation of available(x)/possible(o) feature tokens\n"); libipv6calc_db_wrapper_features_help(); fprintf(stderr, "%-25s%c %s\n", "ANON_ZEROISE", (feature_zeroize == 1)? 'x' : 'o', "Anonymization method 'zeroize'"); fprintf(stderr, "%-25s%c %s\n", "ANON_ANONYMIZE", (feature_anon == 1) ? 'x' : 'o', "Anonymization method 'anonymize'"); fprintf(stderr, "%-25s%c %s\n", "ANON_KEEP-TYPE-ASN-CC", (feature_kp == 1) ? 'x' : 'o', "Anonymization method 'keep-type-asn-cc'"); fprintf(stderr, "%-25s%c %s\n", "ANON_KEEP-TYPE-GEONAMEID", (feature_kg == 1) ? 'x' : 'o', "Anonymization method 'keep-type-geonameid'"); fprintf(stderr, "\n"); }; void printversion_verbose(int level_verbose) { printversion(); fprintf(stderr, "\n"); ipv6calc_print_features_verbose(level_verbose); }; void printcopyright(void) { fprintf(stderr, "%s\n", PROGRAM_COPYRIGHT); }; void ipv6calc_printinfo(void) { printversion(); printcopyright(); fprintf(stderr, "This program formats and calculates IPv6 addresses and can do many more tricky things\n"); fprintf(stderr, "See '%s -?|-h|--help for online help\n", PROGRAM_NAME); fprintf(stderr, "See '%s -v|--version -?|-h|--help' for explanation of feature tokens\n", PROGRAM_NAME); fprintf(stderr, "See '%s -vv or -vvv for more internal version/feature information\n\n", PROGRAM_NAME); }; /* print global help */ void ipv6calc_printhelp(const struct option longopts[], const s_ipv6calc_longopts_shortopts_map longopts_shortopts_map[]) { printversion(); printcopyright(); fprintf(stderr, "\n"); fprintf(stderr, "This program formats and calculates IPv6/IPv4/MAC addresses and can do many more tricky things\n"); printhelp_common(IPV6CALC_HELP_ALL & (~(IPV6CALC_HELP_QUIET))); fprintf(stderr, " [-q|--quiet] : be more quiet (auto-enabled in pipe mode)\n"); fprintf(stderr, " [-f|--flush] : flush each line in pipe mode\n"); fprintf(stderr, "\n"); fprintf(stderr, " Usage with new style options:\n"); fprintf(stderr, " [--in|-I ] : specify input type\n"); fprintf(stderr, " (default: autodetect)\n"); fprintf(stderr, " [--out|-O ] : specify output type\n"); fprintf(stderr, " (sometimes: autodetect)\n"); fprintf(stderr, " [--action|-A ] : specify action\n"); fprintf(stderr, " (default: format conversion, sometimes: autodetect)\n"); fprintf(stderr, " [ ...] : specify format options\n"); fprintf(stderr, " [...] : input data\n"); fprintf(stderr, "\n"); fprintf(stderr, " Available input types: [-m] -I|--in -?|-h|--help\n"); fprintf(stderr, " Available output types: [-m] -O|--out -?|-h|--help\n"); fprintf(stderr, " Available action types: [-m] -A|--action -?|-h|--help\n"); fprintf(stderr, "\n"); fprintf(stderr, " Special filter action : -E -?|-h|--help\n"); fprintf(stderr, "\n"); fprintf(stderr, " Other usage:\n"); fprintf(stderr, " --showinfo|-i [--machine_readable|-m] : show information about input data\n"); fprintf(stderr, " --showinfo|-i --mrqva : Machine Readable Quote Values Always\n"); fprintf(stderr, " --showinfo|-i --mrqvn : Machine Readable Quote Values Never\n"); fprintf(stderr, " --showinfo|-i --mrst : Machine Readable Select Token\n"); fprintf(stderr, " --showinfo|-i --mrstpa : Machine Readable Select Token Print Always\n"); fprintf(stderr, " --showinfo|-i --mrmt : Machine Readable Match Token Prefix\n"); fprintf(stderr, " --showinfo|-i --mrmts : Machine Readable Match Token Suffix\n"); fprintf(stderr, " --showinfo|-i --mrtvo : Machine Readable Token Value Only\n"); fprintf(stderr, " --showinfo|-i --show-tokens : show available tokens (aka types) on '-m'\n"); printhelp_shortcut_options(longopts, longopts_shortopts_map); fprintf(stderr, "\n"); return; }; ipv6calc-4.1.0/ipv6calc/ipv6calchelp_local.h000066400000000000000000000010611444154247200206420ustar00rootroot00000000000000/* * Project : ipv6calc/ipv6calc * File : ipv6calchelp_local.h * Version : $Id: 0a226f5fdb411a7997d0dabbbc7f1fec6b6d0749 $ * Copyright : 2013-2014 by Peter Bieringer * * Information: * Header file for ipv6calchelp_local.c */ extern void printversion(void); extern void printversion_help(void); extern void printversion_verbose(int level_verbose); extern void ipv6calc_printinfo(void); extern void ipv6calc_printhelp(const struct option longopts[], const s_ipv6calc_longopts_shortopts_map longopts_shortopts_map[]); ipv6calc-4.1.0/ipv6calc/ipv6calcoptions_local.h000066400000000000000000000170371444154247200214170ustar00rootroot00000000000000/* * Project : ipv6calc/ipv6calc * File : ipv6calc/ipv6calcoptions.h * Version : $Id: 985241dc676e236ad924c33b7cdc07b188c30305 $ * Copyright : 2002-2021 by Peter Bieringer * * Information: * Header file containing options for ipv6calc */ #include #include #include "ipv6calctypes.h" #include "ipv6calccommands.h" #include "ipv6calcoptions.h" /* Options */ /* define short options */ /* * l = lower case * u = upper case * r = reverse nibble (ip6.int) * a = reverse nibble (ip6.arpa) * b = bitstring label * m = output machine readable * i = showinfo * f = flush (each line in pipe mode) * I * O * A * E expression for action=filter */ static char *ipv6calc_shortopts = "vh?rmabfiulUFCI:O:A:E:"; /* define long options */ static struct option ipv6calc_longopts[] = { {"version", 0, NULL, (int) 'v' }, /* additional help options */ {"help" , 0, NULL, (int) 'h'}, {"examples" , 0, NULL, CMD_printexamples }, {"printexamples" , 0, NULL, CMD_printexamples }, /* backward compatibility/shortcut commands */ {"addr2ip6_int" , 0, NULL, CMD_addr_to_ip6int }, {"addr_to_ip6int" , 0, NULL, CMD_addr_to_ip6int }, {"addr2ip6_arpa" , 0, NULL, CMD_addr_to_ip6arpa }, {"addr_to_ip6arpa" , 0, NULL, CMD_addr_to_ip6arpa }, {"addr_to_bitstring" , 0, NULL, CMD_addr_to_bitstring }, {"addr2compaddr" , 0, NULL, CMD_addr_to_compressed }, {"addr_to_compressed" , 0, NULL, CMD_addr_to_compressed }, {"addr2uncompaddr" , 0, NULL, CMD_addr_to_uncompressed }, {"addr_to_uncompressed" , 0, NULL, CMD_addr_to_uncompressed }, {"addr_to_base85" , 0, NULL, CMD_addr_to_base85 }, {"base85_to_addr" , 0, NULL, CMD_base85_to_addr }, {"mac_to_eui64" , 0, NULL, CMD_mac_to_eui64 }, { "addr2fulluncompaddr" , 0, NULL, CMD_addr_to_fulluncompressed }, { "addr_to_fulluncompressed", 0, NULL, CMD_addr_to_fulluncompressed }, { "addr2if_inet6" , 0, NULL, CMD_addr_to_ifinet6 }, { "addr_to_ifinet6" , 0, NULL, CMD_addr_to_ifinet6 }, { "if_inet62addr" , 0, NULL, CMD_ifinet6_to_compressed }, { "ifinet6_to_compressed" , 0, NULL, CMD_ifinet6_to_compressed }, { "eui64_to_privacy" , 0, NULL, CMD_eui64_to_privacy }, { "ipv4_to_6to4addr" , 0, NULL, CMD_ipv4_to_6to4addr }, { "addr2cc" , 0, NULL, CMD_addr_to_countrycode }, { "showinfo" , 0, NULL, CMD_showinfo }, { "show_types" , 0, NULL, CMD_showinfotypes }, { "show-tokens" , 0, NULL, CMD_showinfotypes }, /* format options */ { "maskprefix" , 0, NULL, FORMATOPTION_NUM_maskprefix + FORMATOPTION_NUM_HEAD }, { "masksuffix" , 0, NULL, FORMATOPTION_NUM_masksuffix + FORMATOPTION_NUM_HEAD }, { "uppercase" , 0, NULL, FORMATOPTION_NUM_printuppercase + FORMATOPTION_NUM_HEAD }, { "lowercase" , 0, NULL, FORMATOPTION_NUM_printlowercase + FORMATOPTION_NUM_HEAD }, { "printstart" , 1, NULL, FORMATOPTION_NUM_printstart + FORMATOPTION_NUM_HEAD }, { "printend" , 1, NULL, FORMATOPTION_NUM_printend + FORMATOPTION_NUM_HEAD }, { "forceprefix" , 1, NULL, FORMATOPTION_NUM_forceprefix + FORMATOPTION_NUM_HEAD }, { "printprefix" , 0, NULL, FORMATOPTION_NUM_printprefix + FORMATOPTION_NUM_HEAD }, { "printsuffix" , 0, NULL, FORMATOPTION_NUM_printsuffix + FORMATOPTION_NUM_HEAD }, { "printcompressed" , 0, NULL, FORMATOPTION_NUM_printcompressed + FORMATOPTION_NUM_HEAD }, { "printuncompressed" , 0, NULL, FORMATOPTION_NUM_printuncompressed + FORMATOPTION_NUM_HEAD }, { "printfulluncompressed", 0, NULL, FORMATOPTION_NUM_printfulluncompressed + FORMATOPTION_NUM_HEAD }, { "no-prefixlength" , 0, NULL, FORMATOPTION_NUM_no_prefixlength + FORMATOPTION_NUM_HEAD }, { "force-prefix" , 1, NULL, FORMATOPTION_NUM_forceprefix + FORMATOPTION_NUM_HEAD }, { "machine_readable" , 0, NULL, FORMATOPTION_NUM_machinereadable + FORMATOPTION_NUM_HEAD }, // { "quiet" , 0, NULL, FORMATOPTION_NUM_quiet + FORMATOPTION_NUM_HEAD }, strange duplicate /* machine readable format/filter */ { "mrqva" , 0, NULL, FORMATOPTION_NUM_mr_quote_always + FORMATOPTION_NUM_HEAD }, { "mrqvn" , 0, NULL, FORMATOPTION_NUM_mr_quote_never + FORMATOPTION_NUM_HEAD }, { "mrtvo" , 1, NULL, FORMATOPTION_NUM_mr_value_only + FORMATOPTION_NUM_HEAD }, { "mrst" , 1, NULL, FORMATOPTION_NUM_mr_select_token + FORMATOPTION_NUM_HEAD }, { "mrstpa" , 1, NULL, FORMATOPTION_NUM_mr_select_token_pa + FORMATOPTION_NUM_HEAD }, { "mrmt" , 1, NULL, FORMATOPTION_NUM_mr_match_token + FORMATOPTION_NUM_HEAD }, { "mrmts" , 1, NULL, FORMATOPTION_NUM_mr_match_token_suffix + FORMATOPTION_NUM_HEAD }, { "printmirrored" , 0, NULL, FORMATOPTION_NUM_printmirrored + FORMATOPTION_NUM_HEAD }, { "print-iid-var" , 0, NULL, FORMATOPTION_NUM_print_iid_var + FORMATOPTION_NUM_HEAD }, { "print-octal" , 0, NULL, FORMATOPTION_NUM_print_octal + FORMATOPTION_NUM_HEAD }, { "print-ipset" , 1, NULL, FORMATOPTION_NUM_print_ipset + FORMATOPTION_NUM_HEAD }, /* new options */ { "in" , 1, NULL, CMD_inputtype }, { "out" , 1, NULL, CMD_outputtype }, { "action" , 1, NULL, CMD_actiontype }, /* 6rd_prefix options for action */ { "6rd_relay_prefix" , 1, NULL, CMD_6rd_relay_prefix }, { "6rd_prefix" , 1, NULL, CMD_6rd_prefix }, /* 6rd_prefix options for showinfo/action */ { "6rd_prefixlength" , 1, NULL, CMD_6rd_prefixlength }, /* test_* options action */ { "test_prefix" , 1, NULL, CMD_test_prefix }, { "test_ge" , 1, NULL, CMD_test_ge }, { "test_gt" , 1, NULL, CMD_test_gt }, { "test_le" , 1, NULL, CMD_test_le }, { "test_lt" , 1, NULL, CMD_test_lt }, }; /* map between short and long options */ static s_ipv6calc_longopts_shortopts_map ipv6calc_longopts_shortopts_map[] = { { 'r', CMD_addr_to_ip6int , "-O revnibbles.int" }, { 'a', CMD_addr_to_ip6arpa , "-O revnibbles.arpa" }, { 'b', CMD_addr_to_bitstring , "-O bitstring" }, { 'i', CMD_showinfo , NULL }, { 'l', FORMATOPTION_NUM_printlowercase + FORMATOPTION_NUM_HEAD , "--printlowercase" }, { 'u', FORMATOPTION_NUM_printuppercase + FORMATOPTION_NUM_HEAD , "--printuppercase" }, { 'C', FORMATOPTION_NUM_printcompressed + FORMATOPTION_NUM_HEAD, "--printcompressed" }, { 'F', FORMATOPTION_NUM_printfulluncompressed + FORMATOPTION_NUM_HEAD, "--printfulluncompressed" }, { 'I', CMD_inputtype , NULL }, { 'O', CMD_outputtype , NULL }, { 'A', CMD_actiontype , NULL }, { 'm', FORMATOPTION_NUM_machinereadable + FORMATOPTION_NUM_HEAD, NULL }, { '\0', CMD_addr_to_compressed , "--printcompressed" }, { '\0', CMD_addr_to_uncompressed , "--printuncompressed" }, { '\0', CMD_addr_to_fulluncompressed , "--printfulluncompressed" }, { '\0', CMD_addr_to_base85 , "-I ipv6addr -O base85" }, { '\0', CMD_base85_to_addr , "-I base85 -O ipv6addr" }, { '\0', CMD_mac_to_eui64 , "-I mac -O eui64" }, { '\0', CMD_addr_to_ifinet6 , "-I ipv6addr -O ifinet6" }, { '\0', CMD_ifinet6_to_compressed , "-I ifinet6 -O ipv6addr --printcompressed"}, { '\0', CMD_ipv4_to_6to4addr , "-I ipv4 -O ipv6addr -A conv6to4"}, { '\0', CMD_eui64_to_privacy , "-I iid_token -O iid_token -A genprivacyiid"}, { '\0', CMD_addr_to_countrycode , "-A addr2cc"}, { '\0', 0, NULL } // end marker }; ipv6calc-4.1.0/ipv6calc/showinfo.c000066400000000000000000002035031444154247200167440ustar00rootroot00000000000000/* * Project : ipv6calc * File : showinfo.c * Version : $Id: 4ea7d9dcae938eb696d3f304dec21f49b0f0c33e $ * Copyright : 2001-2021 by Peter Bieringer * * Information: * Function to show information about a given IPv6 address */ #include #include #include #include #include #include "ipv6calc.h" #include "libipv6calc.h" #include "libipv6calcdebug.h" #include "ipv6calctypes.h" #include "libipv6addr.h" #include "libipv4addr.h" #include "libipv6calc.h" #include "libieee.h" #include "libmac.h" #include "libeui64.h" #include "config.h" #include "showinfo.h" #include "../databases/lib/libipv6calc_db_wrapper.h" #include "../databases/lib/libipv6calc_db_wrapper_MMDB.h" #include "../databases/lib/libipv6calc_db_wrapper_GeoIP2.h" #include "../databases/lib/libipv6calc_db_wrapper_IP2Location.h" #include "../databases/lib/libipv6calc_db_wrapper_DBIP2.h" #include "../databases/lib/libipv6calc_db_wrapper_External.h" #include "../databases/lib/libipv6calc_db_wrapper_BuiltIn.h" /* from anonymizer */ extern s_ipv6calc_anon_set ipv6calc_anon_set; /* * show available types on machine readable format */ void showinfo_availabletypes(void) { int i; fprintf(stderr, "\nAvailable tokens for machine-readable output (printed in one line):\n"); fprintf(stderr, " IPV6_TYPE=... : type of IPv6 address (commata separated)\n"); fprintf(stderr, " "); for (i = 0; i < ipv6calc_ipv6addrtypestrings_entries; i++ ) { fprintf(stderr, " %s", ipv6calc_ipv6addrtypestrings[i].token); }; fprintf(stderr, "\n"); fprintf(stderr, " IPV6=... : given IPv6 address full uncompressed\n"); fprintf(stderr, " IPV6_ANON=... : given anonymized IPv6 address full uncompressed\n"); fprintf(stderr, " IPV6_REGISTRY=... : registry token of given IPv6 address\n"); fprintf(stderr, " IPV6_PREFIXLENGTH=ddd : given prefix length\n"); fprintf(stderr, " IPV6_AS_NUM=... : AS number of (anonymized) IPv6 address\n"); fprintf(stderr, " IPV6_AS_SOURCE=... : Source of AS number of IPv6 address\n"); fprintf(stderr, " IPV6_GEONAME_ID=... : GeonameID of (anonymized) IPv6 address\n"); fprintf(stderr, " IPV6_GEONAME_ID_SOURCE=... : Source of GeonameID number of IPv6 address\n"); fprintf(stderr, " IPV6_GEONAME_ID_TYPE=... : Type of GeonameID number of IPv4 address\n"); fprintf(stderr, " IPV6_COUNTRYCODE=... : Country Code of (anonymized) IPv6 address\n"); fprintf(stderr, " IPV6_COUNTRYCODE_SOURCE=... : Source of Country Code of IPv6 address\n"); fprintf(stderr, " IPV4_TYPE=... : type of IPv4 address (commata separated)\n"); fprintf(stderr, " "); for (i = 0; i < ipv6calc_ipv4addrtypestrings_entries; i++ ) { fprintf(stderr, " %s", ipv6calc_ipv4addrtypestrings[i].token); }; fprintf(stderr, "\n"); fprintf(stderr, " IPV4=ddd.ddd.ddd.ddd : native IPv4 address\n"); fprintf(stderr, " IPV4_ANON=ddd.ddd.ddd.ddd : native anonymized IPv4 address\n"); fprintf(stderr, " IPV4_REGISTRY=... : registry token of native IPv4 address\n"); fprintf(stderr, " IPV4_PREFIXLENGTH=ddd : given prefix length of native IPv4 address\n"); fprintf(stderr, " IPV4_AS_NUM=... : AS number of (anonymized) IPv4 address\n"); fprintf(stderr, " IPV4_AS_SOURCE=... : Source of AS number of (anonymized) IPv4 address\n"); fprintf(stderr, " IPV4_COUNTRYCODE=... : Country Code of (anonymized) IPv4 address\n"); fprintf(stderr, " IPV4_COUNTRYCODE_SOURCE=... : Source of Country Code of (anonymized) IPv4 address\n"); fprintf(stderr, " IPV4_GEONAME_ID=... : GeonameID of (anonymized) IPv4 address\n"); fprintf(stderr, " IPV4_GEONAME_ID_SOURCE=... : Source of GeonameID number of IPv4 address\n"); fprintf(stderr, " IPV4_GEONAME_ID_TYPE=... : Type of GeonameID number of IPv4 address\n"); fprintf(stderr, " IPV4*[...]= : included IPv4 address in IID or SLA (e.g. ISATAP, TEREDO, NAT64, 6to4)\n"); fprintf(stderr, " IPV4_SOURCE[...]=... : source of IPv4 address\n"); fprintf(stderr, " ISATAP|TEREDO-SERVER|TEREDO-CLIENT|6TO4|LINK-LOCAL-IID\n"); fprintf(stderr, " SLA=xxxx : an included SLA\n"); fprintf(stderr, " IID=xxxx:xxxx:xxxx:xxxx : an included interface identifier\n"); fprintf(stderr, " EUI48=xx:xx:xx:xx:xx:xx : an included EUI-48 (MAC) identifier\n"); fprintf(stderr, " EUI48_SCOPE=local|global : scope of EUI-48 identifier\n"); fprintf(stderr, " EUI48_TYPE=... : type of EUI-48 identifier\n"); fprintf(stderr, " unicast|multicast|broadcast\n"); fprintf(stderr, " EUI64=xx:xx:xx:xx:xx:xx:xx:xx : an included EUI-64 identifier\n"); fprintf(stderr, " EUI64_SCOPE=local-*|global : scope of EUI-64 identifier\n"); fprintf(stderr, " OUI=\"...\" : OUI string, if available\n"); fprintf(stderr, " TEREDO_PORT_CLIENT=... : port of Teredo client (NAT outside)\n"); fprintf(stderr, " AS_NUM=... : Autonomous System Number\n"); fprintf(stderr, " AS_NUM_REGISTRY=... : Registry of AS number\n"); #if defined SUPPORT_IP2LOCATION || defined SUPPORT_GEOIP2 || defined DBIP2 fprintf(stderr, "Prefix: IP2LOCATION, GEOIP2, DBIP2\n"); fprintf(stderr, " (output can vary depending on database provider and type Free/Commercial)\n"); fprintf(stderr, " _CONTINENT_SHORT=... : Continent Code of IP address\n"); fprintf(stderr, " _CONTINENT_LONG=... : Continent Name of IP address\n"); fprintf(stderr, " _COUNTRY_LONG=... : Country of IP address\n"); fprintf(stderr, " _COUNTRY_SHORT=... : Country Code of IP address\n"); fprintf(stderr, " _COUNTRY_LONG=... : Country of IP address\n"); fprintf(stderr, " _REGION=... : Region of IP address\n"); fprintf(stderr, " _DISTRICT=... : District of IP address\n"); fprintf(stderr, " _CITY=... : City of IP address\n"); fprintf(stderr, " _ZIPCODE=... : ZIP code of IP address\n"); fprintf(stderr, " _GEONAME_ID=... : GeoName ID of IP address\n"); fprintf(stderr, " _GEONAME_ID_COUNTRY=..: GeoName ID of Country of IP address\n"); fprintf(stderr, " _GEONAME_ID_CONTINENT=: GeoName ID of Continent of IP address\n"); fprintf(stderr, " _GEONAME_ID_REGION= : GeoName ID of Region of IP address\n"); fprintf(stderr, " _GEONAME_ID_DISTRICT= : GeoName ID of District of IP address\n"); fprintf(stderr, " _AREACODE=... : Area code of IP address\n"); fprintf(stderr, " _DMACODE=... : DMA/Metro code of IP address\n"); fprintf(stderr, " _IDDCODE=... : International Direct Dialing of IP address\n"); fprintf(stderr, " _LATITUDE=... : Latitude of IP address\n"); fprintf(stderr, " _LONGITUDE=... : Longitude of IP address\n"); fprintf(stderr, " _RADIUS=... : Radius around Latitude/Longitude of IP address\n"); fprintf(stderr, " _ELEVATION=... : Elevation of location of IP address\n"); fprintf(stderr, " _TIMEZONE_NAME=... : Time Zone Name of IP address\n"); fprintf(stderr, " _TIMEZONE=... : Time zone of IP address\n"); fprintf(stderr, " _WEATHERSTATIONCODE=. : Weather Station Code of IP address\n"); fprintf(stderr, " _WEATHERSTATIONNAME=. : Weather Station Name of IP address\n"); fprintf(stderr, " _ISP=... : ISP of IP address\n"); fprintf(stderr, " _DOMAIN=... : Domain of IP address\n"); fprintf(stderr, " _AS_NUM=... : Autonomous System Number of IP address\n"); fprintf(stderr, " _AS_ORGNAME=... : Autonomous System Organization Name of IP address\n"); fprintf(stderr, " _NETSPEED=... : Net Speed of IP address\n"); fprintf(stderr, " _USAGETYPE=... : Usage type of IP address\n"); fprintf(stderr, " _MOBILEBRAND=... : Mobile Brand of IP address\n"); fprintf(stderr, " _MNC=... : Mobile Network Code of IP address\n"); fprintf(stderr, " _MCC=... : Mobile Country Code of IP address\n"); fprintf(stderr, " _DATABASE_INFO=... : Information about the used databases\n"); #endif #ifdef SUPPORT_EXTERNAL fprintf(stderr, " EXTERNAL_COUNTRY_SHORT=.. . : Country code of IP address\n"); fprintf(stderr, " EXTERNAL_DATABASE_INFO=.. . : Information about the used databases\n"); #endif #ifdef SUPPORT_BUILTIN fprintf(stderr, " BUILTIN_DATABASE_INFO=.. . : Information about the used databases\n"); #endif fprintf(stderr, " IPV6CALC_NAME=name : Name of ipv6calc\n"); fprintf(stderr, " IPV6CALC_VERSION=x.y.z : Version of ipv6calc\n"); fprintf(stderr, " IPV6CALC_COPYRIGHT=\"...\" : Copyright string\n"); fprintf(stderr, " IPV6CALC_OUTPUT_VERSION=x : Version of output format\n"); fprintf(stderr, " IPV6CALC_FEATURES=\"...\" : Feature string of ipv6calc -v\n"); fprintf(stderr, " IPV6CALC_CAPABILITIES=\"...\" : Capability string of ipv6calc -v -v\n"); fprintf(stderr, " IPV6CALC_SETTINGS_ANON=\"...\" : Anonymizer settings\n"); fprintf(stderr, "\n"); fprintf(stderr, "Notes: quoting of values can be controlled via\n"); fprintf(stderr, " --mrqva (always) --mrqvn (never)\n"); fprintf(stderr, " specific token can be selected using --mrst \n"); fprintf(stderr, " even in case of no/empty output: --mrstpa \n"); fprintf(stderr, " value of a specific token can be displayed using --mrtvo \n"); fprintf(stderr, " wildcard '.' is supported in select token\n"); fprintf(stderr, " matching tokens can be selected using --mrmt \n"); }; /* * print one information */ static void printout(const char *token, const char *value, const uint32_t formatoptions) { int quote = 0; unsigned int i; DEBUGPRINT_WA(DEBUG_showinfo, "called with token='%s' value='%s'", token, value); if (formatoptions & FORMATOPTION_mr_select_token) { if (strchr(showinfo_machine_readable_filter, '.')) { // wildcard found, execute sophisticated check if (strlen(showinfo_machine_readable_filter) != strlen(token)) return; // length not matching for (i = 0; i < strlen(token); i++) { if (showinfo_machine_readable_filter[i] == '.') { continue; // skip }; if (showinfo_machine_readable_filter[i] != token[i]) return; // not matching }; } else { // skip not matching token if (strcmp(showinfo_machine_readable_filter, token) != 0) return; }; showinfo_machine_readable_filter_used = 1; }; if (formatoptions & FORMATOPTION_mr_match_token) { // skip not matching token (begin) if (strncmp(showinfo_machine_readable_filter, token, strlen(showinfo_machine_readable_filter)) != 0) return; }; if (formatoptions & FORMATOPTION_mr_match_token_suffix) { // skip not matching token (end) if (strlen(token) < strlen(showinfo_machine_readable_filter)) return; // token longer then filter char *c = strstr(token, showinfo_machine_readable_filter); // search for filter in token if (c == NULL) return; // filter not found if (strlen(c) != strlen(showinfo_machine_readable_filter)) return; // found but not the suffix }; /* automatic quoting disabled if (strstr(value, " ") != NULL) { quote = 1; }; */ if ((formatoptions & FORMATOPTION_mr_quote_default) != 0) { quote = 1; }; if ((formatoptions & FORMATOPTION_mr_quote_always) != 0) { quote = 1; }; if ((formatoptions & FORMATOPTION_mr_quote_never) != 0) { quote = 0; }; fprintf(stdout, "%s%s%s%s%s\n" , (formatoptions & FORMATOPTION_mr_value_only) ? "" : token , (formatoptions & FORMATOPTION_mr_value_only) ? "" : "=" , (quote == 1) ? "\"" : "" , value , (quote == 1) ? "\"" : "" ); }; static void printout2(const char *token, const char *additional, const char *value, const uint32_t formatoptions) { int quote = 0; unsigned int i; DEBUGPRINT_WA(DEBUG_showinfo, "called with token='%s' additional='%s' value='%s'", token, additional, value); if (formatoptions & FORMATOPTION_mr_select_token) { // skip in case additional is not empty if ((additional != NULL) && (strlen(additional) > 0)) return; if (strchr(showinfo_machine_readable_filter, '.')) { // wildcard found, execute sophisticated check if (strlen(showinfo_machine_readable_filter) != strlen(token)) return; // length not matching for (i = 0; i < strlen(token); i++) { if (showinfo_machine_readable_filter[i] == '.') { continue; // skip }; if (showinfo_machine_readable_filter[i] != token[i]) return; // not matching }; } else { // skip not matching token if (strcmp(showinfo_machine_readable_filter, token) != 0) return; }; showinfo_machine_readable_filter_used = 1; }; if (formatoptions & FORMATOPTION_mr_match_token) { // skip in case additional is not empty if ((additional != NULL) && (strlen(additional) > 0)) return; // skip not matching token (begin) if (strncmp(showinfo_machine_readable_filter, token, strlen(showinfo_machine_readable_filter)) != 0) return; }; if (formatoptions & FORMATOPTION_mr_match_token_suffix) { // skip not matching token (end) if (strlen(token) < strlen(showinfo_machine_readable_filter)) return; // token longer then filter char *c = strstr(token, showinfo_machine_readable_filter); // search for filter in token if (c == NULL) return; // filter not found if (strlen(c) != strlen(showinfo_machine_readable_filter)) return; // found but not the suffix }; /* automatic quoting disabled if (strstr(value, " ") != NULL) { quote = 1; }; */ if ((formatoptions & FORMATOPTION_mr_quote_default) != 0) { quote = 1; }; if (formatoptions & FORMATOPTION_mr_quote_always) { quote = 1; }; if (formatoptions & FORMATOPTION_mr_quote_never) { quote = 0; }; fprintf(stdout, "%s%s%s%s%s%s\n" , (formatoptions & FORMATOPTION_mr_value_only) ? "" : token , additional , (formatoptions & FORMATOPTION_mr_value_only) ? "" : "=" , (quote == 1) ? "\"" : "" , value , (quote == 1) ? "\"" : "" ); }; static void printfooter(const uint32_t formatoptions) { char tempstring[IPV6CALC_STRING_MAX] = ""; char tempstring2[IPV6CALC_STRING_MAX] = ""; if ((formatoptions & FORMATOPTION_mr_select_token_pa) && (showinfo_machine_readable_filter_used == 0)) { printout(showinfo_machine_readable_filter, "", formatoptions); }; #if defined SUPPORT_IP2LOCATION || defined SUPPORT_EXTERNAL || defined SUPPORT_BUILTIN || defined SUPPORT_GEOIP2 || defined SUPPORT_DBIP2 char *string; #endif #ifdef SUPPORT_IP2LOCATION string = libipv6calc_db_wrapper_IP2Location_wrapper_db_info_used(); if ((string != NULL) && (strlen(string) > 0)) { if ( (formatoptions & FORMATOPTION_machinereadable) != 0 ) { printout("IP2LOCATION_DATABASE_INFO", string, formatoptions); } else { fprintf(stdout, "IP2Location database: %s\n", string); }; }; #endif #ifdef SUPPORT_GEOIP2 string = libipv6calc_db_wrapper_GeoIP2_wrapper_db_info_used(); if ((string != NULL) && (strlen(string) > 0)) { if ( (formatoptions & FORMATOPTION_machinereadable) != 0 ) { printout("GEOIP2_DATABASE_INFO", string, formatoptions); } else { fprintf(stdout, "GeoIP database:(MaxMindDB) %s\n", string); }; }; #endif #ifdef SUPPORT_DBIP2 string = libipv6calc_db_wrapper_DBIP2_wrapper_db_info_used(); if ((string != NULL) && (strlen(string) > 0)) { if ( (formatoptions & FORMATOPTION_machinereadable) != 0 ) { printout("DBIP2_DATABASE_INFO", string, formatoptions); } else { fprintf(stdout, "DB-IP.com (MaxMindDB) database: %s\n", string); }; }; #endif #ifdef SUPPORT_EXTERNAL string = libipv6calc_db_wrapper_External_wrapper_db_info_used(); if ((string != NULL) && (strlen(string) > 0)) { if ( (formatoptions & FORMATOPTION_machinereadable) != 0 ) { printout("EXTERNAL_DATABASE_INFO", string, formatoptions); } else { fprintf(stdout, "External database: %s\n", string); }; }; #endif #ifdef SUPPORT_BUILTIN string = libipv6calc_db_wrapper_BuiltIn_wrapper_db_info_used(); if ((string != NULL) && (strlen(string) > 0)) { if ( (formatoptions & FORMATOPTION_machinereadable) != 0 ) { printout("BUILTIN_DATABASE_INFO", string, formatoptions); } else { fprintf(stdout, "Built-In database: %s\n", string); }; }; #endif if ( (formatoptions & FORMATOPTION_machinereadable) != 0 ) { printout("IPV6CALC_NAME" , PROGRAM_NAME, formatoptions); printout("IPV6CALC_VERSION" , PACKAGE_VERSION, formatoptions); printout("IPV6CALC_COPYRIGHT", PROGRAM_COPYRIGHT, formatoptions | FORMATOPTION_mr_quote_default); snprintf(tempstring, sizeof(tempstring), "%d", IPV6CALC_OUTPUT_VERSION); printout("IPV6CALC_OUTPUT_VERSION", tempstring, formatoptions); libipv6calc_anon_infostring(tempstring2, sizeof(tempstring2), &ipv6calc_anon_set); printout("IPV6CALC_SETTINGS_ANON", tempstring2, formatoptions | FORMATOPTION_mr_quote_default); /* features */ tempstring[0] = '\0'; /* clear tempstring */ libipv6calc_db_wrapper_features(tempstring, sizeof(tempstring)); if (feature_zeroize == 1) { snprintf(tempstring2, sizeof(tempstring2), "%s%sANON_ZEROISE", tempstring, strlen(tempstring) > 0 ? " " : ""); snprintf(tempstring, sizeof(tempstring), "%s", tempstring2); }; if (feature_anon == 1) { snprintf(tempstring2, sizeof(tempstring2), "%s%sANON_ANONYMIZE", tempstring, strlen(tempstring) > 0 ? " " : ""); snprintf(tempstring, sizeof(tempstring), "%s", tempstring2); }; if (feature_kp == 1) { snprintf(tempstring2, sizeof(tempstring2), "%s%sANON_KEEP-TYPE-ASN-CC", tempstring, strlen(tempstring) > 0 ? " " : ""); snprintf(tempstring, sizeof(tempstring), "%s", tempstring2); }; if (feature_kg == 1) { snprintf(tempstring2, sizeof(tempstring2), "%s%sANON_KEEP-TYPE-GEONAMEID", tempstring, strlen(tempstring) > 0 ? " " : ""); snprintf(tempstring, sizeof(tempstring), "%s", tempstring2); }; printout("IPV6CALC_FEATURES", tempstring, formatoptions | FORMATOPTION_mr_quote_default); /* capabilities */ tempstring[0] = '\0'; /* clear tempstring */ libipv6calc_db_wrapper_capabilities(tempstring, sizeof(tempstring)); printout("IPV6CALC_CAPABILITIES", tempstring, formatoptions | FORMATOPTION_mr_quote_default); }; }; #if defined SUPPORT_GEOIP2 || defined SUPPORT_DBIP2 || defined SUPPORT_IP2LOCATION // with prefix static void printout3(const char *token, const char *additional, const char *value, const uint32_t formatoptions, const char *prefix) { char tokencomplete[IPV6CALC_STRING_MAX] = ""; snprintf(tokencomplete, sizeof(tokencomplete), "%s_%s", prefix, token); printout2(tokencomplete, additional, value, formatoptions); }; /* print geolocation based information */ static void print_geolocation(libipv6calc_db_wrapper_geolocation_record *record, const uint32_t formatoptions, const char *additionalstring, const char *dbprefix, const char *dbinfo) { DEBUGPRINT_NA(DEBUG_showinfo, "Called"); #define TEST_RECORD_AVAILABLE(v) ((v != NULL) && (strlen(v) > 0)) #define HUMAN_READABLE_RECORD(name, value) \ if (strlen(additionalstring) > 0) { \ fprintf(stdout, "%s reports for %s %s: %s\n", dbinfo, additionalstring, name, value); \ } else { \ fprintf(stdout, "%s reports %s: %s\n", dbinfo, name, value); \ }; #define PRINT_RECORD_STRING(var, machine, human)\ if (TEST_RECORD_AVAILABLE(var)) {\ if ( machinereadable != 0 ) {\ printout3(machine, additionalstring, var, formatoptions, dbprefix);\ } else {\ HUMAN_READABLE_RECORD(human, var)\ };\ }; #define PRINT_RECORD_NUMBER(var, machine, human, format, condition)\ if (var != condition) {\ snprintf(tempstring, sizeof(tempstring), format, var);\ if ( machinereadable != 0 ) {\ printout3(machine, additionalstring, tempstring, formatoptions, dbprefix);\ } else {\ HUMAN_READABLE_RECORD(human, tempstring)\ };\ }; char tempstring[IPV6CALC_STRING_MAX]; uint32_t machinereadable = (formatoptions & FORMATOPTION_machinereadable); PRINT_RECORD_STRING(record->continent_code , "CONTINENT_SHORT" , "Continent Code") PRINT_RECORD_STRING(record->continent_long , "CONTINENT_LONG" , "Continent Name") PRINT_RECORD_STRING(record->country_code , "COUNTRY_SHORT" , "Country Code") PRINT_RECORD_STRING(record->country_long , "COUNTRY_LONG" , "Country Name") PRINT_RECORD_STRING(record->stateprov , "REGION" , "Region") PRINT_RECORD_STRING(record->district , "DISTRICT" , "District") PRINT_RECORD_STRING(record->city , "CITY" , "City") PRINT_RECORD_STRING(record->zipcode , "ZIPCODE" , "ZIP Code") PRINT_RECORD_NUMBER(record->latitude , "LATITUDE" , "Latitude", "%lf", 0) PRINT_RECORD_NUMBER(record->longitude , "LONGITUDE" , "Longitude", "%lf", 0) PRINT_RECORD_NUMBER(record->accuracy_radius , "RADIUS" , "Accuracy Radius", "%u", 0) PRINT_RECORD_NUMBER(record->elevation , "ELEVATION" , "Elevation", "%.0f", IPV6CALC_DB_GEO_ELEVATION_UNKNOWN) PRINT_RECORD_STRING(record->weatherstationcode , "WEATHERSTATIONCODE" , "Weather Station Code") PRINT_RECORD_STRING(record->weatherstationname , "WEATHERSTATIONNAME" , "Weather Station Name") PRINT_RECORD_STRING(record->timezone_name , "TIMEZONE_NAME" , "Time Zone Name") if (fabsf(record->timezone_offset) < 24) { // convert timezone offset into human readable value DEBUGPRINT_WA(DEBUG_showinfo, "timezone offset value: %f", record->timezone_offset); snprintf(tempstring, sizeof(tempstring), "%+03d:%02d", (int) record->timezone_offset, ((int) (record->timezone_offset * 60)) % 60); PRINT_RECORD_STRING(tempstring , "TIMEZONE" , "Time Zone") }; PRINT_RECORD_NUMBER(record->asn , "AS_NUM" , "Autonomous System Number", "%u", ASNUM_AS_UNKNOWN) PRINT_RECORD_STRING(record->organization_name , "AS_ORGNAME" , "Autonomous System Organization Name") PRINT_RECORD_STRING(record->isp_name , "ISP" , "ISP Name") PRINT_RECORD_STRING(record->connection_type , "NETSPEED" , "Network Speed") PRINT_RECORD_STRING(record->usage_type , "USAGETYPE" , "Usage Type") PRINT_RECORD_STRING(record->mobile_network_code , "MNC" , "Mobile Network Code") PRINT_RECORD_STRING(record->mobile_country_code , "MCC" , "Mobile Country Code") PRINT_RECORD_STRING(record->mobile_brand , "MOBILEBRAND" , "Mobile Brand") PRINT_RECORD_NUMBER(record->geoname_id , "GEONAME_ID" , "Geoname ID of Location" , "%u", IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) PRINT_RECORD_NUMBER(record->district_geoname_id , "GEONAME_ID_DISTRICT" , "Geoname ID of Country" , "%u", IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) PRINT_RECORD_NUMBER(record->stateprov_geoname_id, "GEONAME_ID_REGION" , "Geoname ID of Region" , "%u", IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) PRINT_RECORD_NUMBER(record->country_geoname_id , "GEONAME_ID_COUNTRY" , "Geoname ID of Country" , "%u", IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) PRINT_RECORD_NUMBER(record->continent_geoname_id, "GEONAME_ID_CONTINENT", "Geoname ID of Continent", "%u", IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) }; #endif #ifdef SUPPORT_IP2LOCATION /* print IP2Location information */ static void print_ip2location(const ipv6calc_ipaddr *ipaddrp, const uint32_t formatoptions, const char *additionalstring) { libipv6calc_db_wrapper_geolocation_record record; int ret; DEBUGPRINT_NA(DEBUG_showinfo, "Called"); if (wrapper_features_by_source[IPV6CALC_DB_SOURCE_IP2LOCATION] == 0) { DEBUGPRINT_NA(DEBUG_showinfo, "IP2Location support not active"); return; }; /* get all information */ ret = libipv6calc_db_wrapper_IP2Location_all_by_addr(ipaddrp, &record); if (ret == 0) { print_geolocation(&record, formatoptions, additionalstring, "IP2LOCATION", "IP2Location"); }; }; #endif #ifdef SUPPORT_GEOIP2 /* print GeoIP2 (MaxMindDB) information */ static void print_geoip2(const ipv6calc_ipaddr *ipaddrp, const uint32_t formatoptions, const char *additionalstring) { DEBUGPRINT_NA(DEBUG_showinfo, "Called"); if (wrapper_features_by_source[IPV6CALC_DB_SOURCE_GEOIP2] == 0) { DEBUGPRINT_NA(DEBUG_showinfo, "GeoIP (MaxMindDB) support not active"); return; }; int ret; libipv6calc_db_wrapper_geolocation_record record; /* get all information */ ret = libipv6calc_db_wrapper_GeoIP2_all_by_addr(ipaddrp, &record); if (ret == 0) { print_geolocation(&record, formatoptions, additionalstring, "GEOIP2", "GeoIP (MaxMindDB)"); }; }; #endif #ifdef SUPPORT_DBIP2 /* print DBIP2 (MaxMindDB) information */ static void print_dbip2(const ipv6calc_ipaddr *ipaddrp, const uint32_t formatoptions, const char *additionalstring) { DEBUGPRINT_NA(DEBUG_showinfo, "Called"); if (wrapper_features_by_source[IPV6CALC_DB_SOURCE_DBIP2] == 0) { DEBUGPRINT_NA(DEBUG_showinfo, "DBIP2 support not active"); return; }; int ret; libipv6calc_db_wrapper_geolocation_record record; /* get all information */ ret = libipv6calc_db_wrapper_DBIP2_all_by_addr(ipaddrp, &record); if (ret == 0) { print_geolocation(&record, formatoptions, additionalstring, "DBIP2", "DB-IP.com (MaxMindDB)"); }; }; #endif #ifdef SUPPORT_EXTERNAL /* print External DB information */ static void print_external(const ipv6calc_ipaddr *ipaddrp, const uint32_t formatoptions, const char *additionalstring) { DEBUGPRINT_NA(DEBUG_showinfo, "Called"); if (wrapper_features_by_source[IPV6CALC_DB_SOURCE_EXTERNAL] == 0) { DEBUGPRINT_NA(DEBUG_showinfo, "External DB support not active"); return; }; int ret; char returnedCountry[256] = ""; uint32_t machinereadable = (formatoptions & FORMATOPTION_machinereadable); ret = libipv6calc_db_wrapper_External_country_code_by_addr(ipaddrp, returnedCountry, sizeof(returnedCountry)); if ((ret == 0) && (strlen(returnedCountry) > 0)) { DEBUGPRINT_WA(DEBUG_showinfo, "External IPv%d country database result", ipaddrp->proto); if ( machinereadable != 0 ) { printout2("EXTERNAL_COUNTRY_SHORT", additionalstring, returnedCountry, formatoptions); } else { if (strlen(additionalstring) > 0) { fprintf(stdout, "External DB country code for %s: %s\n", additionalstring, returnedCountry); } else { fprintf(stdout, "External DB country code: %s\n", returnedCountry); }; }; }; }; #endif /* print IPv4 address */ static void print_ipv4addr(const ipv6calc_ipv4addr *ipv4addrp, const uint32_t formatoptions, const char *string) { char tempstring[IPV6CALC_STRING_MAX] = "", tempstring2[IPV6CALC_STRING_MAX] = "", tempstring3[IPV6CALC_STRING_MAX] = "", helpstring[IPV6CALC_STRING_MAX] = ""; char tempipv4string[IPV6CALC_STRING_MAX] = ""; char embeddedipv4string[IPV6CALC_STRING_MAX] = ""; uint32_t machinereadable = (formatoptions & FORMATOPTION_machinereadable), as_num32 = ASNUM_AS_UNKNOWN; int retval, i, j, retval_anon = 1, r; ipv6calc_ipv4addr ipv4addr_anon, *ipv4addr_anon_ptr; uint16_t cc_index = COUNTRYCODE_INDEX_UNKNOWN; int registry; ipv6calc_ipaddr ipaddr; unsigned int data_source = IPV6CALC_DB_SOURCE_UNKNOWN; ipv4addr_anon_ptr = &ipv4addr_anon; if (ipv4addrp->flag_typeinfo == 0) { fprintf(stderr, "FATAL error, typeinfo not valid - FIX CODE of caller\n"); exit(2); }; retval = libipv4addr_ipv4addrstruct_to_string(ipv4addrp, tempipv4string, sizeof(tempipv4string), 0); if ( retval != 0 ) { fprintf(stderr, "Error converting IPv4 address: %s\n", tempipv4string); return; }; CONVERT_IPV4ADDRP_IPADDR(ipv4addrp, ipaddr); if ((formatoptions & FORMATOPTION_printembedded) != 0) { snprintf(embeddedipv4string, sizeof(embeddedipv4string), "[%s]", tempipv4string); }; ipv4addr_copy(ipv4addr_anon_ptr, ipv4addrp); /* copy structure */ if ((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED) == 0) { retval_anon = libipv4addr_anonymize(ipv4addr_anon_ptr, ipv6calc_anon_set.mask_ipv4, ipv6calc_anon_set.method); if (retval_anon == 0) { retval = libipv4addr_ipv4addrstruct_to_string(ipv4addr_anon_ptr, tempstring2, sizeof(tempstring2), 0); if ( retval != 0 ) { fprintf(stderr, "Error uncompressing IPv4 address: %s\n", tempstring2); retval = 1; retval_anon = 2; }; }; }; if (machinereadable != 0) { /* given source string */ if ((string != NULL) && (strlen(string) > 0)) { printout2("IPV4_SOURCE", embeddedipv4string, string, formatoptions); }; /* address */ printout2("IPV4", embeddedipv4string, tempipv4string, formatoptions); if ((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED) == 0) { if (retval_anon == 0 ) { /* anonymized address */ printout2("IPV4_ANON", embeddedipv4string, tempstring2, formatoptions); } else { // TODO: only show this on verbose (must be implemented) // snprintf(tempstring, sizeof(tempstring), "IPV4_ANON%s=(unsupported, too less DB features available)", embeddedipv4string); // printout(tempstring); }; }; if (ipv4addrp->flag_prefixuse == 1) { snprintf(tempstring, sizeof(tempstring), "%d", (int) ipv4addrp->prefixlength); printout2("IPV4_PREFIXLENGTH", embeddedipv4string, tempstring, formatoptions); }; j = 0; snprintf(tempstring, sizeof(tempstring), "%s", "ipv4"); for (i = 0; i < ipv6calc_ipv4addrtypestrings_entries; i++ ) { if ((ipv4addrp->typeinfo & ipv6calc_ipv4addrtypestrings[i].number) != 0) { snprintf(helpstring, sizeof(helpstring), "%s,%s", tempstring, ipv6calc_ipv4addrtypestrings[i].token); snprintf(tempstring, sizeof(tempstring), "%s", helpstring); }; }; printout2("IPV4_TYPE", embeddedipv4string, tempstring, formatoptions); } else { if ((string != NULL) && (strlen(string) > 0)) { fprintf(stdout, "IPv4 address: %s (%s)\n", tempipv4string, string); } else { fprintf(stdout, "IPv4 address: %s\n", tempipv4string); }; fprintf(stdout, "IPv4 address type: "); j = 0; for (i = 0; i < ipv6calc_ipv4addrtypestrings_entries; i++ ) { if ((ipv4addrp->typeinfo & ipv6calc_ipv4addrtypestrings[i].number) != 0) { if ( j != 0 ) { fprintf(stdout, ", "); }; fprintf(stdout, "%s", ipv6calc_ipv4addrtypestrings[i].token); j = 1; }; }; fprintf(stdout, "\n"); }; if ((ipv4addrp->typeinfo & (IPV4_ADDR_GLOBAL)) != 0) { /* get AS Information */ data_source = IPV6CALC_DB_SOURCE_UNKNOWN; as_num32 = libipv4addr_as_num32_by_addr(ipv4addrp, &data_source); if ((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED) == 0) { if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_AS) == 1) { as_num32 = libipv6calc_db_wrapper_as_num32_by_addr(&ipaddr, &data_source); }; }; if (as_num32 != ASNUM_AS_UNKNOWN) { if ( machinereadable != 0 ) { snprintf(tempstring, sizeof(tempstring), "%u", as_num32); printout2("IPV4_AS_NUM", embeddedipv4string, tempstring, formatoptions); if (data_source != IPV6CALC_DB_SOURCE_UNKNOWN) { for (i = 0; i < MAXENTRIES_ARRAY(data_sources); i++ ) { if (data_source == data_sources[i].number) { printout2("IPV4_AS_SOURCE" , embeddedipv4string, data_sources[i].name, formatoptions); break; }; }; }; } else { if (strlen(embeddedipv4string) > 0) { fprintf(stdout, "Autonomous System Number (32-bit) for %s: %d\n", embeddedipv4string, as_num32); } else { fprintf(stdout, "Autonomous System Number (32-bit): %d\n", as_num32); }; }; } else { DEBUGPRINT_NA(DEBUG_showinfo, "Skip AS print: as_num32=ASNUM_AS_UNKNOWN"); }; /* get CountryCode Information */ data_source = IPV6CALC_DB_SOURCE_UNKNOWN; cc_index = libipv4addr_cc_index_by_addr(ipv4addrp, &data_source); if (cc_index < COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MIN) { libipv6calc_db_wrapper_country_code_by_cc_index(tempstring2, sizeof(tempstring2), cc_index); if ( machinereadable != 0 ) { printout2("IPV4_COUNTRYCODE", embeddedipv4string, tempstring2, formatoptions); if (data_source != IPV6CALC_DB_SOURCE_UNKNOWN) { for (i = 0; i < MAXENTRIES_ARRAY(data_sources); i++ ) { if (data_source == data_sources[i].number) { printout2("IPV4_COUNTRYCODE_SOURCE" , embeddedipv4string, data_sources[i].name, formatoptions); break; }; }; }; } else { if (strlen(embeddedipv4string) > 0) { fprintf(stdout, "Country Code for %s: %s\n", embeddedipv4string, tempstring2); } else { fprintf(stdout, "Country Code: %s\n", tempstring2); }; }; } else { DEBUGPRINT_NA(DEBUG_showinfo, "Skip CountryCode print: cc_index>=COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MIN"); }; // get GeonameID unsigned int GeonameID_type; uint32_t GeonameID = libipv4addr_GeonameID_by_addr(ipv4addrp, &data_source, &GeonameID_type); if (GeonameID != IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) { if ( machinereadable != 0 ) { snprintf(tempstring, sizeof(tempstring), "%u", GeonameID); printout2("IPV4_GEONAME_ID", embeddedipv4string, tempstring, formatoptions); if (data_source != IPV6CALC_DB_SOURCE_UNKNOWN) { for (i = 0; i < MAXENTRIES_ARRAY(data_sources); i++ ) { if (data_source == data_sources[i].number) { printout2("IPV4_GEONAME_ID_SOURCE" , embeddedipv4string, data_sources[i].name, formatoptions); break; }; }; }; if (GeonameID_type != IPV6CALC_DB_GEO_GEONAMEID_TYPE_UNKNOWN) { for (i = 0; i < MAXENTRIES_ARRAY(geonameid_types); i++ ) { if (GeonameID_type == geonameid_types[i].number) { printout2("IPV4_GEONAME_ID_TYPE" , embeddedipv4string, geonameid_types[i].name, formatoptions); break; }; }; }; } else { if (strlen(embeddedipv4string) > 0) { fprintf(stdout, "GeonameID %s: %u\n", embeddedipv4string, GeonameID); } else { fprintf(stdout, "GeonameID: %u\n", GeonameID); }; }; }; }; DEBUGPRINT_NA(DEBUG_showinfo, "get registry"); if ((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED) != 0) { registry = libipv4addr_registry_num_by_addr(ipv4addrp); snprintf(tempstring2, sizeof(tempstring2), "%s", libipv6calc_registry_string_by_num(registry)); } else { libipv6calc_db_wrapper_registry_string_by_ipv4addr(ipv4addrp, tempstring, sizeof(tempstring)); snprintf(tempstring2, sizeof(tempstring2), "%s", tempstring); DEBUGPRINT_NA(DEBUG_showinfo, "try to get additional information"); r = libipv6calc_db_wrapper_info_by_ipv4addr(ipv4addrp, tempstring3, sizeof(tempstring3)); if (r == 0) { // info found, append to registry snprintf(tempstring, sizeof(tempstring), "%s", tempstring2); snprintf(tempstring2, sizeof(tempstring2), "%s(%s)", tempstring, tempstring3); }; }; if (machinereadable != 0) { printout2("IPV4_REGISTRY", embeddedipv4string, tempstring2, formatoptions); } else { if (strlen(embeddedipv4string) > 0) { fprintf(stdout, "IPv4 registry for %s: %s\n", embeddedipv4string, tempstring2); } else { fprintf(stdout, "IPv4 registry: %s\n", tempstring2); }; }; if (((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED) == 0) && ((ipv4addrp->typeinfo & IPV4_ADDR_GLOBAL) == IPV4_ADDR_GLOBAL) ) { #ifdef SUPPORT_IP2LOCATION /* IP2Location information */ print_ip2location(&ipaddr, formatoptions, embeddedipv4string); #endif #ifdef SUPPORT_GEOIP2 /* GeoIP (MaxMindDB) information */ print_geoip2(&ipaddr, formatoptions, embeddedipv4string); #endif #ifdef SUPPORT_DBIP2 /* db-ip.com (MaxMindDB) information */ print_dbip2(&ipaddr, formatoptions, embeddedipv4string); #endif #ifdef SUPPORT_EXTERNAL /* External DB information */ print_external(&ipaddr, formatoptions, embeddedipv4string); #endif }; return; }; /* * print ASN information */ static void print_asn(const uint32_t asn, const uint32_t formatoptions) { char helpstring[IPV6CALC_STRING_MAX]; uint32_t machinereadable = ( formatoptions & FORMATOPTION_machinereadable); int registry; snprintf(helpstring, sizeof(helpstring), "%d", asn); if ( machinereadable != 0 ) { printout("AS_NUM", helpstring, formatoptions); } else { fprintf(stdout, "Autonomous System Number: %s\n", helpstring); }; registry = libipv6calc_db_wrapper_registry_num_by_as_num32(asn); if ( machinereadable != 0 ) { printout("AS_NUM_REGISTRY", libipv6calc_registry_string_by_num(registry), formatoptions); } else { fprintf(stdout, "Registry of Autonomous System Number: %s\n", libipv6calc_registry_string_by_num(registry)); }; return; }; /* * print EUI-48/MAC information */ static void print_eui48(const ipv6calc_macaddr *macaddrp, const uint32_t formatoptions) { char helpstring[IPV6CALC_STRING_MAX]; uint32_t machinereadable = ( formatoptions & FORMATOPTION_machinereadable); int i, result; ipv6calc_ipv4addr ipv4addr; /* EUI-48/MAC address */ snprintf(helpstring, sizeof(helpstring), "%02x:%02x:%02x:%02x:%02x:%02x", (unsigned int) macaddrp->addr[0], (unsigned int) macaddrp->addr[1], (unsigned int) macaddrp->addr[2], (unsigned int) macaddrp->addr[3], (unsigned int) macaddrp->addr[4], (unsigned int) macaddrp->addr[5]); if ( machinereadable != 0 ) { printout("EUI48", helpstring, formatoptions); } else { fprintf(stdout, "EUI-48/MAC address: %s\n", helpstring); }; /* scope */ if ( (macaddrp->addr[0] & 0x02) == 0 ) { if ( machinereadable != 0 ) { printout("EUI48_SCOPE", "global", formatoptions); } else { fprintf(stdout, "MAC is a global unique one\n"); }; } else { if ( machinereadable != 0 ) { printout("EUI48_SCOPE", "local", formatoptions); } else { fprintf(stdout, "MAC is a local one\n"); }; }; /* unicast/multicast/broadcast */ if ( (macaddrp->addr[0] & 0x01) == 0 ) { if ( machinereadable != 0 ) { printout("EUI48_TYPE", "unicast", formatoptions); } else { fprintf(stdout, "MAC is an unicast one\n"); }; } else { if ( (macaddrp->addr[0] == 0xff) && (macaddrp->addr[1] == 0xff) && (macaddrp->addr[2] == 0xff) && (macaddrp->addr[3] == 0xff) && (macaddrp->addr[4] == 0xff) && (macaddrp->addr[5] == 0xff) ) { if ( machinereadable != 0 ) { printout("EUI48_TYPE", "broadcast", formatoptions); } else { fprintf(stdout, "MAC is a broadcast one\n"); }; } else { if ( machinereadable != 0 ) { printout("EUI48_TYPE", "multicast", formatoptions); } else { fprintf(stdout, "MAC is a multicast one\n"); }; }; }; /* vendor string */ result = libipv6calc_db_wrapper_ieee_vendor_string_by_macaddr(helpstring, sizeof(helpstring), macaddrp); if (result == 0) { if ( machinereadable != 0 ) { printout("OUI", helpstring, formatoptions | FORMATOPTION_mr_quote_default); } else { fprintf(stdout, "OUI is: %s\n", helpstring); }; }; /* check for Linux ISDN-NET/PLIP */ if ( (macaddrp->addr[0] == 0xfc) && (macaddrp->addr[1] == 0xfc) ) { /* copy address */ for ( i = 0; i <= 3; i++ ) { ipv4addr_setoctet(&ipv4addr, (unsigned int) i, (unsigned int) macaddrp->addr[i + 2]); }; ipv4addr_settype(&ipv4addr, 1); ipv4addr.flag_valid = 1; if ( machinereadable != 0 ) { /* no additional hint */ } else { fprintf(stdout, "Address type contains IPv4 address:\n"); }; print_ipv4addr(&ipv4addr, formatoptions | FORMATOPTION_printembedded, "ISDN-NET/PLIP"); }; return; }; /* * print EUI-64 information */ static void print_eui64(const ipv6calc_eui64addr *eui64addrp, const uint32_t formatoptions) { char tempstring[IPV6CALC_STRING_MAX], helpstring[IPV6CALC_STRING_MAX]; uint32_t machinereadable = ( formatoptions & FORMATOPTION_machinereadable); int result, i; ipv6calc_macaddr macaddr; /* EUI-64 address */ snprintf(helpstring, sizeof(helpstring), "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", (unsigned int) eui64addrp->addr[0], (unsigned int) eui64addrp->addr[1], (unsigned int) eui64addrp->addr[2], (unsigned int) eui64addrp->addr[3], (unsigned int) eui64addrp->addr[4], (unsigned int) eui64addrp->addr[5], (unsigned int) eui64addrp->addr[6], (unsigned int) eui64addrp->addr[7]); if ( machinereadable != 0 ) { printout("EUI64", helpstring, formatoptions); } else { fprintf(stdout, "EUI-64 identifier: %s\n", helpstring); }; /* scope */ if ( (eui64addrp->addr[0] & 0x02) == 0 ) { if ( machinereadable != 0 ) { printout("EUI64_SCOPE", "global", formatoptions); } else { fprintf(stdout, "EUI-64 identifier is a global unique one\n"); }; } else { if ( machinereadable != 0 ) { printout("EUI64_SCOPE", "local", formatoptions); } else { fprintf(stdout, "EUI-64 identifier is a local one\n"); }; }; /* get vendor string */ for (i = 0; i < 6; i++) { macaddr.addr[i] = eui64addrp->addr[i]; }; result = libipv6calc_db_wrapper_ieee_vendor_string_by_macaddr(helpstring, sizeof(helpstring), &macaddr); if (result == 0) { if ( machinereadable != 0 ) { printout("OUI", helpstring, formatoptions | FORMATOPTION_mr_quote_default); } else { fprintf(stdout, "OUI is: %s\n", tempstring); }; }; return; }; /* * function shows information about a given IPv6 address * * in : *ipv6addrp = pointer to IPv6 address * ret: ==0: ok, !=0: error */ int showinfo_ipv6addr(const ipv6calc_ipv6addr *ipv6addrp1, const uint32_t formatoptions) { int retval = 1, i, j, flag_prefixuse, registry, r, retval_anon = 1; char tempstring[IPV6CALC_STRING_MAX] = "", tempstring2[IPV6CALC_STRING_MAX] = "", tempstring3[IPV6CALC_STRING_MAX] = "", helpstring[IPV6CALC_STRING_MAX] = ""; char ipv6addrstring[IPV6CALC_STRING_MAX] = ""; ipv6calc_ipv6addr ipv6addr, ipv6addr_anon, *ipv6addrp, *ipv6addr_anon_ptr; ipv6calc_ipv4addr ipv4addr, ipv4addr2; ipv6calc_macaddr macaddr; ipv6calc_eui64addr eui64addr; uint16_t port; uint32_t machinereadable = ( formatoptions & FORMATOPTION_machinereadable); uint32_t payload, as_num32, cc_index; unsigned int data_source = IPV6CALC_DB_SOURCE_UNKNOWN; ipv6calc_ipaddr ipaddr; ipv6addr_anon_ptr = &ipv6addr_anon; ipv6addrp = &ipv6addr; ipv6addr_copy(ipv6addrp, ipv6addrp1); /* copy structure */ if (ipv6addrp->flag_typeinfo == 0) { fprintf(stderr, "FATAL error, typeinfo not valid - FIX CODE of caller\n"); exit(2); }; DEBUGPRINT_WA(DEBUG_showinfo, "typeinfo 0x%08x-0x%08x (from given address)", (unsigned int) ipv6addrp->typeinfo, (unsigned int) ipv6addrp->typeinfo2); for (i = 0; i < ipv6calc_ipv6addrtypestrings_entries; i++ ) { DEBUGPRINT_WA(DEBUG_showinfo, "test1: %08x : %s", (unsigned int) ipv6calc_ipv6addrtypestrings[i].number, ipv6calc_ipv6addrtypestrings[i].token); }; for (i = 0; i < ipv6calc_ipv6addr_type2_strings_entries; i++ ) { DEBUGPRINT_WA(DEBUG_showinfo, "test2: %08x : %s", (unsigned int) ipv6calc_ipv6addr_type2_strings[i].number, ipv6calc_ipv6addr_type2_strings[i].token); }; /* get full uncompressed IPv6 address */ flag_prefixuse = ipv6addrp->flag_prefixuse; ipv6addrp->flag_prefixuse = 0; retval = libipv6addr_ipv6addrstruct_to_uncompaddr(ipv6addrp, ipv6addrstring, sizeof(ipv6addrstring), FORMATOPTION_printfulluncompressed); if ( retval != 0 ) { fprintf(stderr, "Error uncompressing IPv6 address: %s\n", ipv6addrstring); retval = 1; goto END; }; ipv6addrp->flag_prefixuse = flag_prefixuse; CONVERT_IPV6ADDRP_IPADDR(ipv6addrp, ipaddr); if ((ipv6addrp->typeinfo & (IPV6_ADDR_ANONYMIZED_PREFIX | IPV6_ADDR_ANONYMIZED_IID)) == 0 ) { ipv6addr_copy(ipv6addr_anon_ptr, ipv6addrp); /* copy structure */ retval_anon = libipv6addr_anonymize(ipv6addr_anon_ptr, &ipv6calc_anon_set); if (retval_anon == 0) { retval = libipv6addr_ipv6addrstruct_to_uncompaddr(ipv6addr_anon_ptr, tempstring2, sizeof(tempstring2), FORMATOPTION_printfulluncompressed); if ( retval != 0 ) { fprintf(stderr, "Error uncompressing IPv6 address: %s\n", tempstring2); retval = 1; retval_anon = 2; }; }; }; if ( machinereadable != 0 ) { printout("IPV6", ipv6addrstring, formatoptions); if ((ipv6addrp->typeinfo & (IPV6_ADDR_ANONYMIZED_PREFIX | IPV6_ADDR_ANONYMIZED_IID | IPV6_ADDR_LOOPBACK)) == 0 ) { if (retval_anon == 0) { printout("IPV6_ANON", tempstring2, formatoptions); } else { // TODO: only show this on verbose (must be implemented) // snprintf(tempstring, sizeof(tempstring), "IPV6_ANON=(unsupported, too less DB features available)"); }; }; if (ipv6addrp->flag_prefixuse == 1) { snprintf(tempstring, sizeof(tempstring), "%d", (int) ipv6addrp->prefixlength); printout("IPV6_PREFIXLENGTH", tempstring, formatoptions); }; j = 0; snprintf(tempstring, sizeof(tempstring), "%s", "ipv6"); for (i = 0; i < ipv6calc_ipv6addrtypestrings_entries; i++ ) { if ((ipv6addrp->typeinfo & ipv6calc_ipv6addrtypestrings[i].number) != 0) { snprintf(helpstring, sizeof(helpstring), "%s,%s", tempstring, ipv6calc_ipv6addrtypestrings[i].token); snprintf(tempstring, sizeof(tempstring), "%s", helpstring); }; }; for (i = 0; i < ipv6calc_ipv6addr_type2_strings_entries; i++ ) { if ((ipv6addrp->typeinfo2 & ipv6calc_ipv6addr_type2_strings[i].number) != 0) { snprintf(helpstring, sizeof(helpstring), "%s,%s", tempstring, ipv6calc_ipv6addr_type2_strings[i].token); snprintf(tempstring, sizeof(tempstring), "%s", helpstring); }; }; printout("IPV6_TYPE", tempstring, formatoptions); } else { fprintf(stdout, "Address type: "); j = 0; for (i = 0; i < ipv6calc_ipv6addrtypestrings_entries; i++ ) { if ((ipv6addrp->typeinfo & ipv6calc_ipv6addrtypestrings[i].number) != 0) { if ( j != 0 ) { fprintf(stdout, ", "); }; fprintf(stdout, "%s", ipv6calc_ipv6addrtypestrings[i].token); j = 1; }; }; for (i = 0; i < ipv6calc_ipv6addr_type2_strings_entries; i++ ) { if ((ipv6addrp->typeinfo2 & ipv6calc_ipv6addr_type2_strings[i].number) != 0) { if ( j != 0 ) { fprintf(stdout, ", "); }; fprintf(stdout, "%s", ipv6calc_ipv6addr_type2_strings[i].token); j = 1; }; }; fprintf(stdout, "\n"); }; if (((ipv6addrp->typeinfo & (IPV6_NEW_ADDR_AGU)) != 0) \ && ((ipv6addrp->typeinfo2 & (IPV6_ADDR_TYPE2_ANONYMIZED_GEONAMEID)) == 0)) { /* CountryCode */ DEBUGPRINT_NA(DEBUG_showinfo, "get country code"); data_source = IPV6CALC_DB_SOURCE_UNKNOWN; cc_index = libipv6addr_cc_index_by_addr(ipv6addrp, &data_source); if (cc_index > COUNTRYCODE_INDEX_MAX) { if ( machinereadable != 0 ) { fprintf(stderr, "Error getting CountryCode for IPv6 address\n"); }; } else { if (cc_index < COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MIN) { libipv6calc_db_wrapper_country_code_by_cc_index(tempstring2, sizeof(tempstring2),cc_index); if ( machinereadable != 0 ) { printout("IPV6_COUNTRYCODE" , tempstring2, formatoptions); if (data_source != IPV6CALC_DB_SOURCE_UNKNOWN) { for (i = 0; i < MAXENTRIES_ARRAY(data_sources); i++ ) { if (data_source == data_sources[i].number) { printout("IPV6_COUNTRYCODE_SOURCE" , data_sources[i].name, formatoptions); break; }; }; }; } else { fprintf(stdout, "Country Code: %s\n", tempstring2); }; } else { DEBUGPRINT_NA(DEBUG_showinfo, "Skip CountryCode print: cc_index>=COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MIN"); }; }; /* AS */ DEBUGPRINT_NA(DEBUG_showinfo, "get AS number/text"); data_source = IPV6CALC_DB_SOURCE_UNKNOWN; as_num32 = libipv6addr_as_num32_by_addr(ipv6addrp, &data_source); if ((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_PREFIX) == 0) { if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV6_TO_AS) == 1) { as_num32 = libipv6calc_db_wrapper_as_num32_by_addr(&ipaddr, &data_source); }; }; if ((as_num32 == 0) && (machinereadable == 0)) { // fprintf(stderr, "Error getting AS number from IPv6 address\n"); } else { if (as_num32 != ASNUM_AS_UNKNOWN) { if ( machinereadable != 0 ) { if (as_num32 == 0) { snprintf(tempstring, sizeof(tempstring), "(unknown)"); } else { snprintf(tempstring, sizeof(tempstring), "%d", as_num32); }; printout("IPV6_AS_NUM" ,tempstring, formatoptions); if (data_source != IPV6CALC_DB_SOURCE_UNKNOWN) { for (i = 0; i < MAXENTRIES_ARRAY(data_sources); i++ ) { if (data_source == data_sources[i].number) { printout("IPV6_AS_SOURCE" , data_sources[i].name, formatoptions); break; }; }; }; } else { fprintf(stdout, "ASN for address: %d\n", as_num32); }; } else { DEBUGPRINT_NA(DEBUG_showinfo, "Skip AS print: as_num32=ASNUM_AS_UNKNOWN"); }; }; }; /* GeonameID */ if (((ipv6addrp->typeinfo & (IPV6_NEW_ADDR_AGU)) != 0) && ! (((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_PREFIX) != 0) && (((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_ANONYMIZED_GEONAMEID)) == 0))) { // get GeonameID unsigned int GeonameID_type; uint32_t GeonameID = libipv6addr_GeonameID_by_addr(ipv6addrp, &data_source, &GeonameID_type); if (GeonameID != IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) { if ( machinereadable != 0 ) { snprintf(tempstring, sizeof(tempstring), "%u", GeonameID); printout2("IPV6_GEONAME_ID", "", tempstring, formatoptions); if (data_source != IPV6CALC_DB_SOURCE_UNKNOWN) { for (i = 0; i < MAXENTRIES_ARRAY(data_sources); i++ ) { if (data_source == data_sources[i].number) { printout2("IPV6_GEONAME_ID_SOURCE" , "", data_sources[i].name, formatoptions); break; }; }; }; if (GeonameID_type != IPV6CALC_DB_GEO_GEONAMEID_TYPE_UNKNOWN) { for (i = 0; i < MAXENTRIES_ARRAY(geonameid_types); i++ ) { if (GeonameID_type == geonameid_types[i].number) { printout2("IPV6_GEONAME_ID_TYPE" , "", geonameid_types[i].name, formatoptions); break; }; }; }; } else { fprintf(stdout, "GeonameID: %u\n", GeonameID); }; }; }; /* IPv6 Registry */ DEBUGPRINT_NA(DEBUG_showinfo, "get registry"); if (((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_PREFIX) != 0) \ && ((ipv6addrp->typeinfo & IPV6_ADDR_HAS_PUBLIC_IPV4_IN_PREFIX) == 0)) { registry = libipv6addr_registry_num_by_addr(ipv6addrp); snprintf(tempstring2, sizeof(tempstring2), "%s", libipv6calc_registry_string_by_num(registry)); } else { libipv6calc_db_wrapper_registry_string_by_ipv6addr(ipv6addrp, tempstring, sizeof(tempstring)); snprintf(tempstring2, sizeof(tempstring2), "%s", tempstring); DEBUGPRINT_NA(DEBUG_showinfo, "try to get additional information"); r = libipv6calc_db_wrapper_info_by_ipv6addr(ipv6addrp, tempstring3, sizeof(tempstring3)); if (r == 0) { // info found, append to registry snprintf(tempstring, sizeof(tempstring), "%s", tempstring2); snprintf(tempstring2, sizeof(tempstring2), "%s(%s)", tempstring, tempstring3); }; }; if ( machinereadable != 0 ) { printout("IPV6_REGISTRY", tempstring2, formatoptions); } else { fprintf(stdout, "Registry for address: %s\n", tempstring2); }; /* 6to4 */ if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_6TO4) != 0) { r = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (r == 0) { retval = libipv4addr_ipv4addrstruct_to_string(&ipv4addr, helpstring, sizeof(helpstring), 0); if ( retval != 0 ) { fprintf(stderr, "Error converting IPv4 address to string\n"); retval = 1; goto END; }; if ( machinereadable != 0 ) { print_ipv4addr(&ipv4addr, formatoptions | FORMATOPTION_printembedded, "6TO4"); } else { fprintf(stdout, "Address type is 6to4 and included IPv4 address is: %s\n", helpstring); }; /* get registry string */ retval = libipv6calc_db_wrapper_registry_string_by_ipv4addr(&ipv4addr, helpstring, sizeof(helpstring)); if ( machinereadable != 0 ) { } else { fprintf(stdout, "IPv4 registry of 6to4 address: %s\n", helpstring); }; }; }; /* Teredo */ if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_TEREDO) != 0) { /* extract Teredo client IPv4 address */ r = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (r == 0) { r = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr2, IPV6_ADDR_SELECT_IPV4_TEREDO_SERVER); if (r == 0) { print_ipv4addr(&ipv4addr, formatoptions | FORMATOPTION_printembedded, "TEREDO-CLIENT"); print_ipv4addr(&ipv4addr2, formatoptions | FORMATOPTION_printembedded, "TEREDO-SERVER"); retval = libipv4addr_ipv4addrstruct_to_string(&ipv4addr2, helpstring, sizeof(helpstring), 0); if ( retval != 0 ) { fprintf(stderr, "Error converting IPv4 address to string\n"); retval = 1; goto END; }; /* extract Teredo client UDP port */ port = (uint16_t) (((uint16_t) ipv6addr_getoctet(ipv6addrp, (unsigned int) 10) << 8 | (uint16_t) ipv6addr_getoctet(ipv6addrp, (unsigned int) 11)) ^ 0xffff); if ( machinereadable != 0 ) { snprintf(tempstring, sizeof(tempstring), "%u", (unsigned int) port); printout("TEREDO_PORT_CLIENT", tempstring, formatoptions); } else { fprintf(stdout, "Address type is Teredo and included IPv4 server address is: %s and client port: %u\n", helpstring, (unsigned int) port); }; /* get registry string */ retval = libipv6calc_db_wrapper_registry_string_by_ipv4addr(&ipv4addr2, helpstring, sizeof(helpstring)); if ( machinereadable != 0 ) { } else { fprintf(stdout, "IPv4 registry of Teredo server address: %s\n", helpstring); }; }; }; }; /* 6rd */ if ((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_6RD) != 0) { DEBUGPRINT_WA(DEBUG_showinfo, "6rd found with prefix: %d", ipv6addrp->prefix2length); r = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr, IPV6_ADDR_SELECT_IPV4_PREFIX2_LENGTH); if (r == 0) { retval = libipv4addr_ipv4addrstruct_to_string(&ipv4addr, helpstring, sizeof(helpstring), 0); if ( retval != 0 ) { fprintf(stderr, "Error converting IPv4 address to string\n"); retval = 1; goto END; }; if ( machinereadable != 0 ) { print_ipv4addr(&ipv4addr, formatoptions | FORMATOPTION_printembedded, "6RD"); } else { fprintf(stdout, "Address type is IPv6 Rapid Deployment and included IPv4 address is: %s\n", helpstring); }; /* get registry string */ retval = libipv6calc_db_wrapper_registry_string_by_ipv4addr(&ipv4addr, helpstring, sizeof(helpstring)); if ( machinereadable != 0 ) { } else { fprintf(stdout, "IPv4 registry of IPv6 Rapid Deployment address: %s\n", helpstring); }; }; }; /* NAT64 */ if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_NAT64) != 0) { r = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (r == 0) { if ( machinereadable != 0 ) { } else { fprintf(stdout, "IPv4 registry for NAT64 address: %s\n", helpstring); }; print_ipv4addr(&ipv4addr, formatoptions | FORMATOPTION_printembedded, "NAT64"); }; }; /* SLA prefix included? */ if (((ipv6addrp->typeinfo & ( IPV6_ADDR_SITELOCAL | IPV6_NEW_ADDR_AGU | IPV6_ADDR_ULUA )) != 0) && ((ipv6addrp->typeinfo & (IPV6_NEW_ADDR_TEREDO | IPV6_NEW_ADDR_ORCHID | IPV6_ADDR_ANONYMIZED_PREFIX)) == 0)) { uint16_t sla = ipv6addr_getword(ipv6addrp, 3); uint16_t sla_mask = 0xffff; if ((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_6RD) != 0) { DEBUGPRINT_WA(DEBUG_showinfo, "6rd found with prefix: %d", ipv6addrp->prefix2length); // reduced SLA, mask value if ((ipv6addrp->prefix2length + 32) > 48) { // more than 48 bits used for 6RD prefix + included IPv4 address sla_mask = sla_mask >> (ipv6addrp->prefix2length - 16); }; sla &= sla_mask; }; if ( machinereadable != 0 ) { snprintf(tempstring, sizeof(tempstring), "%04x", (unsigned int) sla); printout("SLA", tempstring, formatoptions); } else { fprintf(stdout, "Address type has SLA: %04x\n", (unsigned int) sla); }; }; /* Proper solicited node link-local multicast address? */ if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_SOLICITED_NODE) != 0) { if ((ipv6addrp->typeinfo & (IPV6_ADDR_LINKLOCAL & IPV6_ADDR_MULTICAST)) != 0) { /* address is ok */ } else { if ( machinereadable != 0 ) { } else { fprintf(stdout, "Address is not a proper 'solicited-node link-local multicast' address!\n"); retval = 1; goto END; }; }; }; /* Compat or mapped */ if ((ipv6addrp->typeinfo & (IPV6_ADDR_COMPATv4 | IPV6_ADDR_MAPPED)) != 0) { r = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (r == 0) { if ( machinereadable != 0 ) { } else { fprintf(stdout, "Address type is compat/mapped and include an IPv4 address\n"); }; print_ipv4addr(&ipv4addr, formatoptions | FORMATOPTION_printembedded, "COMPAT/MAPPED"); }; }; /* Interface identifier included */ if ((((ipv6addrp->typeinfo & (IPV6_ADDR_LINKLOCAL | IPV6_ADDR_SITELOCAL | IPV6_NEW_ADDR_AGU | IPV6_ADDR_ULUA )) != 0) || ((ipv6addrp->typeinfo & (IPV6_ADDR_LOOPBACK | IPV6_NEW_ADDR_SOLICITED_NODE)) == (IPV6_ADDR_LOOPBACK | IPV6_NEW_ADDR_SOLICITED_NODE))) && ((ipv6addrp->typeinfo & (IPV6_NEW_ADDR_TEREDO | IPV6_NEW_ADDR_ORCHID)) == 0) ) { if ( machinereadable != 0 ) { snprintf(tempstring, sizeof(tempstring), "%04x:%04x:%04x:%04x", (unsigned int) ipv6addr_getword(ipv6addrp, 4), (unsigned int) ipv6addr_getword(ipv6addrp, 5), (unsigned int) ipv6addr_getword(ipv6addrp, 6), (unsigned int) ipv6addr_getword(ipv6addrp, 7)); printout("IID", tempstring, formatoptions); } else { fprintf(stdout, "Interface identifier: %04x:%04x:%04x:%04x\n", (unsigned int) ipv6addr_getword(ipv6addrp, 4), (unsigned int) ipv6addr_getword(ipv6addrp, 5), (unsigned int) ipv6addr_getword(ipv6addrp, 6), (unsigned int) ipv6addr_getword(ipv6addrp, 7)); }; if ((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_IID) == IPV6_ADDR_ANONYMIZED_IID) { if ( machinereadable != 0 ) { } else { fprintf(stdout, "Interface identifier is an anonymized one\n"); }; }; if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_IID_EUI48) == IPV6_NEW_ADDR_IID_EUI48) { /* EUI-48 */ if ((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_IID) == IPV6_ADDR_ANONYMIZED_IID) { payload = ipv6addr_get_payload_anonymized_iid(ipv6addrp, ipv6addrp->typeinfo) ^ 0x020000; if ((payload & 0x1000000) != 0) { libieee_unmap_oui_macaddr(&macaddr, payload); } else { macaddr.addr[0] = ((payload >> 16) & 0xff); macaddr.addr[1] = (payload >> 8) & 0xff; macaddr.addr[2] = (payload & 0xff); macaddr.addr[3] = 0; macaddr.addr[4] = 0; macaddr.addr[5] = 0; }; } else { macaddr.addr[0] = ipv6addr_getoctet(ipv6addrp, 8) ^ 0x02; macaddr.addr[1] = ipv6addr_getoctet(ipv6addrp, 9); macaddr.addr[2] = ipv6addr_getoctet(ipv6addrp, 10); macaddr.addr[3] = ipv6addr_getoctet(ipv6addrp, 13); macaddr.addr[4] = ipv6addr_getoctet(ipv6addrp, 14); macaddr.addr[5] = ipv6addr_getoctet(ipv6addrp, 15); }; print_eui48(&macaddr, formatoptions); } else { if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_IID_EUI64) == IPV6_NEW_ADDR_IID_EUI64) { /* EUI-64 */ if ((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_IID) == IPV6_ADDR_ANONYMIZED_IID) { payload = ipv6addr_get_payload_anonymized_iid(ipv6addrp, ipv6addrp->typeinfo) ^ 0x020000; if ((payload & 0x1000000) != 0) { libieee_unmap_oui_eui64addr(&eui64addr, payload); } else { eui64addr.addr[0] = ((payload >> 16) & 0xff); eui64addr.addr[1] = (payload >> 8) & 0xff; eui64addr.addr[2] = (payload & 0xff); eui64addr.addr[3] = 0; eui64addr.addr[4] = 0; eui64addr.addr[5] = 0; eui64addr.addr[6] = 0; eui64addr.addr[7] = 0; }; } else { eui64addr.addr[0] = ipv6addr_getoctet(ipv6addrp, 8) ^ 0x02; eui64addr.addr[1] = ipv6addr_getoctet(ipv6addrp, 9); eui64addr.addr[2] = ipv6addr_getoctet(ipv6addrp, 10); eui64addr.addr[3] = ipv6addr_getoctet(ipv6addrp, 11); eui64addr.addr[4] = ipv6addr_getoctet(ipv6addrp, 12); eui64addr.addr[5] = ipv6addr_getoctet(ipv6addrp, 13); eui64addr.addr[6] = ipv6addr_getoctet(ipv6addrp, 14); eui64addr.addr[7] = ipv6addr_getoctet(ipv6addrp, 15); }; print_eui64(&eui64addr, formatoptions); } else { if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_SOLICITED_NODE) != 0) { if ( machinereadable != 0 ) { snprintf(tempstring, sizeof(tempstring), "??:??:??:??:??:%02x:%02x:%02x", (unsigned int) ipv6addr_getoctet(ipv6addrp, 13), (unsigned int) ipv6addr_getoctet(ipv6addrp, 14), (unsigned int) ipv6addr_getoctet(ipv6addrp, 15)); printout("EUI64", tempstring, formatoptions); } else { fprintf(stdout, "Generated from the extension identifier of an EUI-48 (MAC): ...:%02x:%02x:%02x\n", (unsigned int) ipv6addr_getoctet(ipv6addrp, 13), (unsigned int) ipv6addr_getoctet(ipv6addrp, 14), (unsigned int) ipv6addr_getoctet(ipv6addrp, 15)); }; } else if ((ipv6addrp->typeinfo & (IPV6_NEW_ADDR_IID_ISATAP | IPV6_NEW_ADDR_6TO4_MICROSOFT) ) != 0) { if ((ipv6addrp->typeinfo & IPV6_ADDR_IID_32_63_HAS_IPV4) != 0) { /* IPv4 address included */ if ((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_IID) != 0) { payload = ipv6addr_get_payload_anonymized_iid(ipv6addrp, ipv6addrp->typeinfo); /* IPv4 */ ipv4addr_setoctet(&ipv4addr, 0, (payload >> 16) & 0xff); ipv4addr_setoctet(&ipv4addr, 1, (payload >> 8) & 0xff); ipv4addr_setoctet(&ipv4addr, 2, (payload ) & 0xff); ipv4addr_setoctet(&ipv4addr, 3, 0); } else { for (i = 0; i <= 3; i++) { ipv4addr_setoctet(&ipv4addr, (unsigned int) i, (unsigned int) ipv6addr_getoctet(ipv6addrp, (unsigned int) (i + 12))); }; }; ipv4addr_settype(&ipv4addr, 1); ipv4addr.flag_valid = 1; if ( (ipv6addrp->typeinfo & IPV6_NEW_ADDR_IID_ISATAP) != 0 ) { print_ipv4addr(&ipv4addr, formatoptions | FORMATOPTION_printembedded, "ISATAP"); } else { print_ipv4addr(&ipv4addr, formatoptions | FORMATOPTION_printembedded, "6to4-microsoft"); }; } else if ((ipv6addr_getoctet(ipv6addrp, 11) == 0xff) && (ipv6addr_getoctet(ipv6addrp, 12) == 0xfe)) { /* Vendor ID included */ if ( machinereadable != 0 ) { } else { fprintf(stdout, "ISATAP vendor ID: 0x%02x%02x%02x\n", ipv6addr_getoctet(ipv6addrp, 13), ipv6addr_getoctet(ipv6addrp, 14), ipv6addr_getoctet(ipv6addrp, 15)); }; } else { /* Extension ID included */ if ( machinereadable != 0 ) { } else { fprintf(stdout, "ISATAP extension ID: 0x%02x%02x%02x%02x%02x\n", ipv6addr_getoctet(ipv6addrp, 11), ipv6addr_getoctet(ipv6addrp, 12), ipv6addr_getoctet(ipv6addrp, 13), ipv6addr_getoctet(ipv6addrp, 14), ipv6addr_getoctet(ipv6addrp, 15)); }; }; } else if ((((ipv6addrp->typeinfo & IPV6_ADDR_LINKLOCAL) != 0) && (ipv6addr_getdword(ipv6addrp, 2) == 0 && ipv6addr_getword(ipv6addrp, 6) != 0))) { /* fe80:: must have 0000:0000:xxxx:yyyy where xxxx > 0 */ if ( machinereadable != 0 ) { } else { fprintf(stdout, "Address type contains IPv4 address:\n"); }; for (i = 0; i <= 3; i++) { ipv4addr_setoctet(&ipv4addr, (unsigned int) i, (unsigned int) ipv6addr_getoctet(ipv6addrp, (unsigned int) (i + 12))); }; ipv4addr_settype(&ipv4addr, 1); ipv4addr.flag_valid = 1; if ( machinereadable != 0 ) { // printout("IPV4_SOURCE=LINK-LOCAL-IID"); }; print_ipv4addr(&ipv4addr, formatoptions | FORMATOPTION_printembedded, "LINK-LOCAL-IID"); } else { if ( machinereadable != 0 ) { if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_6TO4_MICROSOFT) != 0) { printout("EUI64_SCOPE", "local-6to4-microsoft", formatoptions); } else if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_IID_RANDOM) != 0) { printout("EUI64_SCOPE", "local-random", formatoptions); } else { printout("EUI64_SCOPE", "local", formatoptions); }; } else { if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_6TO4_MICROSOFT) != 0) { fprintf(stdout, "Interface identifier contain only IPv4 address from 6to4 prefix, usually seen on Microsoft OS\n"); } else if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_IID_RANDOM) != 0) { fprintf(stdout, "Interface identifier is probably generated by privacy extension\n"); } else { fprintf(stdout, "Interface identifier is probably manual set\n"); }; }; }; }; }; }; if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_ORCHID) != 0) { /* 'extract' hash */ ipv6addr_setword(ipv6addrp, 0, 0x0000); ipv6addr_setword(ipv6addrp, 1, ipv6addr_getword(ipv6addrp, 1) & 0x000F); retval = libipv6addr_to_hex(ipv6addrp, ipv6addrstring, sizeof(ipv6addrstring), 0); if ( machinereadable != 0 ) { } else { if ((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_IID) != 0) { snprintf(tempstring, sizeof(tempstring), "n/a (previosly anonymized)"); } else { snprintf(tempstring, sizeof(tempstring), "%s", ipv6addrstring+7); }; fprintf(stdout, "ORCHID hash (100 bits): %s\n", tempstring); }; }; END: i = libipv6calc_db_wrapper_registry_num_by_ipv6addr(ipv6addrp); if ((i != REGISTRY_RESERVED) && (i != REGISTRY_6BONE)) { if (((ipv6addrp->typeinfo & IPV6_NEW_ADDR_AGU) != 0) && ((ipv6addrp->typeinfo & (IPV6_NEW_ADDR_TEREDO | IPV6_NEW_ADDR_ORCHID | IPV6_ADDR_ANONYMIZED_PREFIX)) == 0)) { if (((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_ANON_MASKED_PREFIX) != 0)\ && (ipv6addrp->prefix2length < 48)\ // prefix partially anonymized including NLAs ) { } else { #ifdef SUPPORT_IP2LOCATION /* IP2Location information */ print_ip2location(&ipaddr, formatoptions, ""); #endif #ifdef SUPPORT_GEOIP2 /* GeoIP (MaxMindDB) information */ print_geoip2(&ipaddr, formatoptions, ""); #endif #ifdef SUPPORT_DBIP2 /* db-ip.com (MaxMindDB) information */ print_dbip2(&ipaddr, formatoptions, ""); #endif #ifdef SUPPORT_EXTERNAL /* External DB information */ print_external(&ipaddr, formatoptions, ""); #endif }; // IPV6_ADDR_TYPE2_ANON_MASKED_PREFIX }; }; printfooter(formatoptions); retval = 0; return (retval); }; /* * shows information about a given IPv4 address * * in : *ipv4addrp = pointer to IPv4 address * ret: ==0: ok, !=0: error */ int showinfo_ipv4addr(const ipv6calc_ipv4addr *ipv4addrp, const uint32_t formatoptions) { int retval = 1; print_ipv4addr(ipv4addrp, formatoptions, ""); printfooter(formatoptions); retval = 0; return (retval); }; /* * shows information about a given EUI-48 identifier * * in : *macaddrp = pointer to MAC address * ret: ==0: ok, !=0: error */ int showinfo_eui48(const ipv6calc_macaddr *macaddrp, const uint32_t formatoptions) { int retval = 1; print_eui48(macaddrp, formatoptions); printfooter(formatoptions); retval = 0; return (retval); }; /* * shows information about a given EUI-64 identifier * * in : *eui64addrp = pointer to EUI-64 address * ret: ==0: ok, !=0: error */ int showinfo_eui64(const ipv6calc_eui64addr *eui64addrp, const uint32_t formatoptions) { int retval = 1; print_eui64(eui64addrp, formatoptions); printfooter(formatoptions); retval = 0; return (retval); }; /* * shows information about a given ASN * * in : asn * ret: ==0: ok, !=0: error */ int showinfo_asn(const uint32_t asn, const uint32_t formatoptions) { int retval = 1; print_asn(asn, formatoptions); printfooter(formatoptions); retval = 0; return (retval); }; ipv6calc-4.1.0/ipv6calc/showinfo.h000066400000000000000000000063761444154247200167620ustar00rootroot00000000000000/* * Project : ipv6calc * File : showinfo.h * Version : $Id: 42c539d7686b6842ade3e8ff9d298f9ef3c7ca61 $ * Copyright : 2001-2019 by Peter Bieringer * * Information: * Header file for showinfo.c */ #include "ipv6calc_inttypes.h" #include "libipv6addr.h" #include "libipv4addr.h" #include "libmac.h" #define DEBUG_showinfo 0x00000002l /* output version of machine readable format */ // 1: never defined, until 0.51 // 2: 0.60.0cvs to 0.60.1 // 3: 0.61.0cvs to 0.70.0 // 4: 0.71.0cvs to < 0.92.0 // - IP2LOCATION_DATABASE_INFO // + IP2LOCATION_DATABASE_INFO_IPV4 // + IP2LOCATION_DATABASE_INFO_IPV6 // 5: 0.92.0 to < 0.94.0 // + IPV6CALC_FEATURES (see ipv6calc -v) // 6: 0.94.0 to < 0.95.0 // TYPE renamed to IPV6_TYPE for alignment // + IPV6_ANON // + IPV4_ANON // + SETTINGS_ANON // 7: 0.95.0 to 0.97.3 // - GEOIP_DATABASE_INFO_IPV4 // - GEOIP_DATABASE_INFO_IPV6 // + GEOIP_DATABASE_INFO // - IP2LOCATION_DATABASE_INFO_IPV4 // - IP2LOCATION_INFO_IPV6 // + IP2LOCATION_DATABASE_INFO // 8: 0.97.4 // + IPV6CALC_CAPABILITIES // 9: 0.98.0 // + DBIP_COUNTRY_SHORT // + DBIP_CITY // + DBIP_DATABASE_INFO // + IPV4_COUNTRYCODE_SOURCE // + IPV6_COUNTRYCODE_SOURCE // + GEOP_AREACODE // + GEOP_DMACODE // + IP2LOCATION_AREACODE // + EXTERNAL_COUNTRY_SHORT // + EXTERNAL_DATABASE_INFO // + BUILTIN_DATABASE_INFO // 10: 0.99.0 to current // + IP2LOCATION_TIMEZONE // + IP2LOCATION_NETSPEED // + IP2LOCATION_WEATHERSTATIONNAME // + IP2LOCATION_WEATHERSTATIONCODE // + IP2LOCATION_ELEVATION // + IP2LOCATION_USAGETYPE // + IP2LOCATION_MOBILEBRAND // + IP2LOCATION_MNC // + IP2LOCATION_MCC // + IP2LOCATION_IDDCODE // 11: 0.99.2 to current // + DBIP_DISTRICT // + DBIP_ZIPCODE // + DBIP_GEONAME_ID // + DBIP_LATITUDE // + DBIP_LONGITUDE // + DBIP_TIMEZONE // + DBIP_TIMEZONE_NAME // + DBIP_NETSPEED // + DBIP_ISP // + DBIP_ORGNAME // (inbetween) // + _AS_NUM // + _AS_TEXT // + _CONTINENT_SHORT // 20: 2.0.0 to current // rename ORGNAME to AS_ORGNAME // remove AS_TEXT // + _GEONAME_ID_COUNTRY // + _GEONAME_ID_CONTINENT // + _RADIUS // + _ELEVATION // + _CONTINENT_LONG // 20: 2.1.0 to current // + _GEONAME_ID_REGION // + _GEONAME_ID_STATEPROV // + IPV4_GEONAME_ID // + IPV4_GEONAME_ID_SOURCE // + IPV4_GEONAME_ID_TYPE // + IPV6_GEONAME_ID // + IPV6_GEONAME_ID_SOURCE // + IPV6_GEONAME_ID_TYPE #define IPV6CALC_OUTPUT_VERSION 21 /* prototypes */ extern int showinfo_ipv6addr(const ipv6calc_ipv6addr *ipv6addrp, const uint32_t formatoptions); extern int showinfo_ipv4addr(const ipv6calc_ipv4addr *ipv4addrp, const uint32_t formatoptions); extern int showinfo_eui48(const ipv6calc_macaddr *macaddrp, const uint32_t formatoptions); extern int showinfo_eui64(const ipv6calc_eui64addr *eui64addrp, const uint32_t formatoptions); extern int showinfo_asn(const uint32_t asn, const uint32_t formatoptions); extern void showinfo_availabletypes(void); ipv6calc-4.1.0/ipv6calc/test_ipv6calc.sh000077500000000000000000000775761444154247200200740ustar00rootroot00000000000000#!/usr/bin/env bash # # Project : ipv6calc # File : test_ipv6calc.sh # Version : $Id: 485bbfdf0d46c580355635f75221f90cc4c5275f $ # Copyright : 2001-2023 by Peter Bieringer # # Test patterns for ipv6calc conversions verbose=false while getopts "Vh\?" opt; do case $opt in V) verbose=true ;; *) echo "$0 [-V]" echo " -V verbose" exit 1 ;; esac done if [ ! -x ./ipv6calc ]; then echo "Binary './ipv6calc' missing or not executable" exit 1 fi # Test Scenarios for autodetection "good case" source ./test_scenarios.sh testscenarios() { # Command Expected result (no space between "=" and result) cat <0wv%Yp --in ipv6 --out base85 1080:0:0:0:8:800:200c:417a =4)+k&C#VzJ4br>0wv%Yp --base85_to_addr 4)+k&C#VzJ4br>0wv%Yp =1080:0:0:0:8:800:200c:417a ## MAC to EUI-64 --mac_to_eui64 00:50:BF:06:B4:F5 =250:bfff:fe06:b4f5 --mac_to_eui64 00:0:F:6:4:5 =200:fff:fe06:405 --in mac --out eui64 00:0:F:6:4:5 =200:fff:fe06:405 --mac_to_eui64 0050BF-06B4F5 =250:bfff:fe06:b4f5 --mac_to_eui64 0050BF06B4F5 =250:bfff:fe06:b4f5 ## MAC to EUI-64 (autodetect mode, not supported in pipe mode) NOPIPETEST--out eui64 00:0:F:6:4:5 =200:fff:fe06:405 ## Interface identifier privacy conversion --eui64_to_privacy 0123:4567:89ab:cdef 0123456789abcdef =4462:bdea:8654:776d 486072ff7074945e --in iid+token --out iid+token 0123:4567:89ab:cdef 0123456789abcdef =4462:bdea:8654:776d 486072ff7074945e ## Bitstring --addr_to_bitstring 3ffe:ffff::1 =\\\\[x3ffeffff000000000000000000000001/128].ip6.arpa. --in ipv6 --out bitstring 3ffe:ffff::1 =\\\\[x3ffeffff000000000000000000000001/128].ip6.arpa. --addr_to_bitstring 3ffe:ffff::1/64 =\\\\[x3ffeffff000000000000000000000001/128].ip6.arpa. --addr_to_bitstring --printsuffix 3ffe:ffff::1/64 =\\\\[x0000000000000001/64] --addr_to_bitstring --printprefix 3ffe:ffff::1/64 =\\\\[x3ffeffff00000000/64].ip6.arpa. --addr_to_bitstring --printprefix --printstart 17 3ffe:ffff:0100:e100:0123:4567:89ab:cdef/64 =\\\\[xffff0100e100/48] --addr_to_bitstring --uppercase 3ffe:ffff::1 =\\\\[x3FFEFFFF000000000000000000000001/128].IP6.ARPA. --in bitstring --out ipv6 \\\\[x3FFEFFFF000000000000000000000001/64].IP6.ARPA. =3ffe:ffff::1/64 ## IPv4 -> IPv6 (6to4) --ipv4_to_6to4addr 11.12.13.14 =2002:b0c:d0e:: --in ipv4 --out ipv6 --action conv6to4 11.12.13.14 =2002:b0c:d0e:: --action conv6to4 192.0.2.1 =2002:c000:201:: --no-prefixlength --action conv6to4 192.0.2.1/24 =2002:c000:200:: --action conv6to4 192.0.2.1/24 =2002:c000:200::/40 ## IPv6 -> IPv4 (6to4) --in ipv6 --out ipv4 --action conv6to4 2002:102:304::1 =1.2.3.4 --action conv6to4 2002:c000:201:: =192.0.2.1 --no-prefixlength --action conv6to4 2002:c000:201::/40 =192.0.2.0 --action conv6to4 2002:c000:201::/40 =192.0.2.0/24 ## IPv4 -> IPv6 (6to4) with output format option -I ipv4 -O ipv6to4 1.2.3.4/24 =2002:102:300::/40 -I ipv4 -O ipv6to4 1.2.3.4 =2002:102:304:: ## IPv4 -> IPv6 (NAT64) --action convnat64 192.0.2.1 =64:ff9b::c000:201 ## IPv6 -> IPv4 (NAT64) --action convnat64 64:ff9b::c000:201 =192.0.2.1 ## Prefix + MAC -> IPv6 --in prefix+mac fec0:0:0:1:: 01:23:45:67:89:01 =fec0::1:323:45ff:fe67:8901 NOPIPETEST--in prefix+mac 1:2:3:4::/56 11:22:33:44:55:aa --action prefixmac2ipv6 --out ipv6addr --force-prefix 64 =1:2:3:4:1322:33ff:fe44:55aa/64 NOPIPETEST--in prefix+mac 1:2:3:4::/56 11:22:33:44:55:aa --action prefixmac2ipv6 --out ipv6addr --no-prefixlength =1:2:3:4:1322:33ff:fe44:55aa ## IPv4 -> reverse --in ipv4addr --out revipv4 1.2.3.4 =4.3.2.1.in-addr.arpa. ## Information -i fe80::1 =* -i -m ff02::1 =* # Anonymization --action anonymize fe80:0000:0000:0000:0200:5efe:192.0.2.143 =fe80::a909:5214:5c00:21 --action anonymize fe80:0000:0000:0000:0000:5e01:2345:6789 =fe80::a909:5214:e012:3451 --action anonymize fe80:0000:0000:0000:0200:5e01:2345:6789 =fe80::a909:5214:f012:345f --action anonymize fe80:0000:0000:0000:0000:5eff:fe01:2345 =fe80::a909:5214:c010:1 --action anonymize 2001:0db8:0000:0000:81c0:0f3f:c807:1455 =2001:db8:0:9:a929:4941:0:c --action anonymize 3ffe:831f:ce49:7601:8000:efff:af4a:86BF =3ffe:831f:ce49:7601:8000:ffff:af4a:86ff --action anonymize --mask-ipv4 16 3ffe:831f:ce49:7601:8000:efff:af4a:86BF =3ffe:831f:ce49:7601:8000:ffff:af4a:ffff --action anonymize 192.0.2.1 =192.0.2.0 --action anonymize --mask-ipv4 16 192.0.2.1 =192.0.0.0 --action anonymize 2001:1a:392e:a450:2cd3:75e1:6098:8104 =2001:19:a909:a909:a999:4843:0:e --action anonymize 01:23:45:67:89:ab =01:23:45:00:00:00 --action anonymize --mask-mac 48 01:23:45:67:89:ab =01:23:45:67:89:ab --action anonymize --mask-mac 47 01:23:45:67:89:ab =01:23:45:67:89:aa --action anonymize --mask-mac 44 01:23:45:67:89:ab =01:23:45:67:89:a0 --action anonymize --mask-mac 41 01:23:45:67:89:a8 =01:23:45:67:89:80 --action anonymize --mask-mac 40 01:23:45:67:89:a8 =01:23:45:67:89:00 --action anonymize --mask-mac 8 ff:23:45:67:89:a8 =ff:00:00:00:00:00 --action anonymize --mask-mac 7 ff:23:45:67:89:a8 =fe:00:00:00:00:00 --action anonymize --mask-mac 1 ff:23:45:67:89:a8 =82:00:00:00:00:00 -A anonymize --anonymize-preset zeroize-paranoid 2001:db8:2280:6901:224:21ff:fe01:2345 =2001:db8:2200:: -A anonymize --anonymize-preset zeroize-careful 2001:db8:2280:6901:224:21ff:fe01:2345 =2001:db8:2280:0:224:21ff:fe00:0 -A anonymize --anonymize-preset zeroize-standard 2001:db8:2280:6901:224:21ff:fe01:2345 =2001:db8:2280:6900:224:21ff:fe00:0 -A anonymize --anonymize-preset anonymize-paranoid 2001:db8:2280:6901:224:21ff:fe01:2345 =2001:db8:2209:a909:a969:4291:4022:4213 -A anonymize --anonymize-preset anonymize-careful 2001:db8:2280:6901:224:21ff:fe01:2345 =2001:db8:2280:a909:a949:4291:4022:4219 -A anonymize --anonymize-preset anonymize-standard 2001:db8:2280:6901:224:21ff:fe01:2345 =2001:db8:2280:6909:a929:4291:4022:4217 # RFC 5952 4.2.1 --in ipv6addr --out ipv6addr 2001:db8:0:0:0:0:2:1 =2001:db8::2:1 # RFC 5952 4.2.2 --in ipv6addr --out ipv6addr 2001:db8:0:1:1:1:1:1 =2001:db8:0:1:1:1:1:1 # RFC 5952 4.2.3 --in ipv6addr --out ipv6addr 2001:0:0:1:0:0:0:1 =2001:0:0:1::1 --in ipv6addr --out ipv6addr 2001:db8:0:0:1:0:0:1 =2001:db8::1:0:0:1 # RFC 5952 4.2.4 --in ipv6addr --out ipv6addr 2001:DB8:0:0:1:0:0:1 =2001:db8::1:0:0:1 # 6rd --action 6rd_local_prefix --6rd_prefix 2607:fedc:ff40::/43 --6rd_relay_prefix 6.230.0.0/15 6.231.32.33 =2607:fedc:ff52:210::/60 --action 6rd_local_prefix --6rd_prefix 2001:0b4f::/28 192.0.2.1 =2001:b4c:0:2010::/60 --action 6rd_local_prefix --6rd_prefix 2001:0b4f::/29 192.0.2.1 =2001:b4e:0:1008::/61 --action 6rd_local_prefix --6rd_prefix 2001:0b4f::/30 192.0.2.1 =2001:b4f:0:804::/62 --action 6rd_local_prefix --6rd_prefix 2001:0b4f::/31 192.0.2.1 =2001:b4f:8000:402::/63 --action 6rd_local_prefix --6rd_prefix 2001:0b4f::/32 192.0.2.1 =2001:b4f:c000:201::/64 -A 6rd_extract_ipv4 --6rd_prefixlength 28 2001:b4c:0:2010::/60 =192.0.2.1 # IPv6 literal --in ipv6literal fe80--1.IPV6-LITERAL.NET =fe80::1 --in ipv6literal fe80--1.IPV6-liTERal.NET =fe80::1 --in ipv6literal fe80--218-8bff-fe17-a226s4.ipv6-literal.net =fe80::218:8bff:fe17:a226%4 --out ipv6literal -u --in ipv6addr 2001:db8::1 =2001-DB8--1.IPV6-LITERAL.NET --out ipv6literal -U --in ipv6addr 2001:db8::1 =2001-db8-0-0-0-0-0-1.ipv6-literal.net --out ipv6literal -F --in ipv6addr 2001:db8::1 =2001-0db8-0000-0000-0000-0000-0000-0001.ipv6-literal.net --out ipv6literal --in ipv6addr fe80::1%0 =fe80--1s0.ipv6-literal.net --out ipv6literal -F --in ipv6addr fe80::1%0 =fe80-0000-0000-0000-0000-0000-0000-0001s0.ipv6-literal.net --out ipv6addr -U --in ipv6addr fe80::1%eth0 =fe80:0:0:0:0:0:0:1%eth0 --out ipv6addr -F --in ipv6addr fe80::1%eth0 =fe80:0000:0000:0000:0000:0000:0000:0001%eth0 # hex -O hex 0123:4567:89ab:cdef:0000:1111:2222:3333 =0123456789abcdef0000111122223333 -O hex -u 0123:4567:89ab:cdef:0000:1111:2222:3333 =0123456789ABCDEF0000111122223333 -O hex --forceprefix 32 --printsuffix 0123:4567:89ab:cdef:0000:1111:2222:3333 =89abcdef0000111122223333 -O hex --forceprefix 32 --printprefix 0123:4567:89ab:cdef:0000:1111:2222:3333 =01234567 -O hex --forceprefix 64 --printsuffix 0123:4567:89ab:cdef:0000:1111:2222:3333 =0000111122223333 -O hex --forceprefix 64 --printprefix 0123:4567:89ab:cdef:0000:1111:2222:3333 =0123456789abcdef -O hex 1.2.3.4 =01020304 -O hex --forceprefix 8 --printsuffix 1.2.3.4 =020304 -O hex --forceprefix 8 --printprefix 1.2.3.4 =01 -O hex --forceprefix 16 --printsuffix 1.2.3.4 =0304 -O hex --forceprefix 16 --printprefix 1.2.3.4 =0102 -O hex --forceprefix 24 --printsuffix 1.2.3.4 =04 -O hex --forceprefix 24 --printprefix 1.2.3.4 =010203 -O hex -u 192.168.1.1 =C0A80101 # nibble strings -O ipv6addr 1.ip6.arpa =1000::/4 -O ipv6addr 1.2.ip6.arpa =2100::/8 -O ipv6addr 1.2.3.ip6.arpa =3210::/12 -O ipv6addr 1.2.3.4.ip6.arpa =4321::/16 # Extraction NOPIPETEST--in ipv6 2001:db8::a8bb:ccff:fedd:eeff --out eui64 =aa:bb:cc:ff:fe:dd:ee:ff NOPIPETEST--in ipv6 2001:db8::a8bb:ccff:fedd:eeff --out mac =aa:bb:cc:dd:ee:ff # Countrycode NOPIPETEST-A addr2cc 3ffe:831f:ce49:7601:8000:efff:af4a:86bf =IT;DB_IPV6_CC NOPIPETEST-A addr2cc 8.8.8.8 =US;DB_IPV4_CC NOPIPETEST--addr2cc 3ffe:831f:ce49:7601:8000:efff:af4a:86bf =IT;DB_IPV6_CC NOPIPETEST--addr2cc 8.8.8.8 =US;DB_IPV4_CC # revnibble >= 3.1.0 NOPIPETEST9.b.3.2.9.7.f.1.9.a.e.5.3.8.5.f =::f583:5ea9:1f79:23b9/64 NOPIPETEST9.b.3.2.9.7.f.1.9.a.e.5.3.8.5.f --printsuffix =f583:5ea9:1f79:23b9 NOPIPETEST0.1.2.3.4.5.6.7.8.9.a.b.c.d.e.f =::fedc:ba98:7654:3210/64 NOPIPETEST0.1.2.3.4.5.6.7.8.9.a.b.c.d.e.f.0.1 =::10:fedc:ba98:7654:3210/56 NOPIPETEST0.1.2.3.4.5.6.7.8.9.a.b.c.d.e.f.a.b =::ba:fedc:ba98:7654:3210/56 NOPIPETEST0.1.2.3.4.5.6.7.8.9.a.b.c.d.e.f.a =::a:fedc:ba98:7654:3210/60 NOPIPETEST0.1.2.3.4.5.6.7.8.9.a.b.c.d.e.f.a.b.c =::cba:fedc:ba98:7654:3210/52 NOPIPETEST0.1.2.3.4.5.6.7.8.9.a.b.c.d.e.f.a.b.c.d =::dcba:fedc:ba98:7654:3210/48 NOPIPETEST0.1.2.3.4.5.6.7.8.9.a.b.c.d.e.f.a.b.c.d --printsuffix =dcba:fedc:ba98:7654:3210 NOPIPETEST0.1.2.3.4.5.6.7.8.9.a.b.c.d.e.f.a.b.c --printsuffix =cba:fedc:ba98:7654:3210 END } # Test Scenarios for autodetection "bad case" testscenarios_auto_bad() { cat </dev/null retval=$? fi if [ $retval -ne 1 ]; then echo "ERROR : something wrong in option definition" exit 1 fi echo "INFO : $test successful" test="run 'ipv6calc' version test" echo "INFO : $test" if $verbose; then ./ipv6calc -vvv retval=$? else ./ipv6calc -vvv 2>/dev/null retval=$? fi if [ $retval -ne 0 ]; then echo "Error executing 'ipv6calc -vvv'!" exit 1 fi echo "INFO : $test successful" test="run 'ipv6calc' version test in debug mode" echo "INFO : $test" if $verbose; then ./ipv6calc -vvv -d -1 retval=$? else ./ipv6calc -vvv -d -1 >/dev/null 2>&1 retval=$? fi if [ $retval -ne 0 ]; then echo "Error executing 'ipv6calc -vvv -d -1'!" exit 1 fi echo "INFO : $test successful" test="run 'ipv6calc' version help test for feature tokens" echo "INFO : $test" if $verbose; then ./ipv6calc -v -h retval=$? else ./ipv6calc -v -h 2>/dev/null retval=$? fi if [ $retval -ne 0 ]; then echo "Error executing 'ipv6calc -v -h'!" exit 1 fi echo "INFO : $test successful" test="test './ipv6calc -v'" echo "INFO : $test" output="`./ipv6calc -v 2>&1`" retval=$? if [ $retval -ne 0 ]; then echo "Error executing: ipv6calc -v: $output" exit 1 fi echo "INFO : $test successful" test="test './ipv6calc -v -v'" echo "INFO : $test" output="`./ipv6calc -v -v 2>&1`" retval=$? if [ $retval -ne 0 ]; then echo "Error executing: ipv6calc -v -v: $output" exit 1 fi echo "INFO : $test successful" test="run 'ipv6calc' function tests" echo "INFO : $test" testscenarios | sed 's/NOPIPETEST//' | while read line; do if [ -z "$line" ]; then # end continue fi # extract result command="`echo $line | awk -F= '{ print $1 }' | sed 's/ $//g'`" result="`echo $line | awk -F= '{ for (i=2; i <= NF; i++) printf "%s%s", $i, (i&1 | grep -qw "$condition"; then true else echo "NOTICE: condition not satisfied ($condition): ./ipv6calc $command" continue fi fi # get result output="`./ipv6calc -q $command`" retval=$? if [ $retval -ne 0 ]; then $verbose || echo "$info" echo "ERROR: problem executing: ./ipv6calc $command" exit 1 fi # Check result if [ "$result" != "*" ]; then if [ "$output" != "$result" ]; then $verbose || echo "$info" echo "ERROR: result '$output' doesn't match: $result" exit 1 fi fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" ## database dump test test="run 'ipv6calc' database dump for IPv4 by CountryCode" if ./ipv6calc -v 2>&1 | grep -wq DB_IPV4_DUMP_CC; then echo "INFO : $test" lines=$(./ipv6calc -q -A dbdump -E ipv4.db.cc=VN | wc -l) if [ $lines -eq 0 ]; then echo "ERROR : $test failed" exit 1 fi echo "INFO : $test successful" else echo "NOTICE: $test not executed (feature missing: DB_IPV4_DUMP)" fi test="run 'ipv6calc' database dump for IPv4 by CountryCode incl. 6to4 conversion" if ./ipv6calc -v 2>&1 | grep -wq DB_IPV4_DUMP_CC; then echo "INFO : $test" lines=$(./ipv6calc -q -A dbdump -E ipv4.db.cc=VN -O ipv6to4 --printfulluncompressed | wc -l) if [ $lines -eq 0 ]; then echo "ERROR : $test failed" exit 1 fi echo "INFO : $test successful" else echo "NOTICE: $test not executed (feature missing: DB_IPV4_DUMP)" fi test="run 'ipv6calc' database dump for IPv6 by CountryCode" if ./ipv6calc -v 2>&1 | grep -wq DB_IPV6_DUMP_CC; then echo "INFO : $test" lines=$(./ipv6calc -q -A dbdump -E ipv6.db.cc=VN | wc -l) if [ $lines -eq 0 ]; then echo "ERROR : $test failed" exit 1 fi echo "INFO : $test successful" else echo "NOTICE: $test not executed (feature missing: DB_IPV6_DUMP)" fi ## genprivacyiid test="run 'ipv6calc' action 'genprivacyiid'" echo "INFO : $test" testscenarios_genprivacyiid | while read in1 in2 out1 out2; do info="INFO : test './ipv6calc -q -A genprivacyiid $in1 $in2'" $verbose && echo "$info" result="`./ipv6calc -q -A genprivacyiid $in1 $in2`" retval=$? if [ $retval -ne 0 ]; then $verbose || echo "$info" echo "Error executing 'ipv6calc'!" exit 1 fi if [ "$result" != "$out1 $out2" ]; then $verbose || echo "$info" echo "Result is not matching!" echo "Result is : $result" echo "Result expected: $out1 $out2" exit 1 fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" test="run 'ipv6calc' input validation tests (empty input)" echo "INFO : $test" ./ipv6calc -m --in -? | while read inputformat; do if echo $inputformat | grep -q '+'; then info="INFO : test './ipv6calc -q --in $inputformat \"\" \"\"'" $verbose && echo "$info" if $verbose; then ./ipv6calc -q --in $inputformat "" "" retval=$? else ./ipv6calc -q --in $inputformat "" "" 2>/dev/null retval=$? fi else info="INFO : test './ipv6calc -q --in $inputformat \"\"'" $verbose && echo "$info" if $verbose; then ./ipv6calc -q --in $inputformat "" retval=$? else ./ipv6calc -q --in $inputformat "" 2>/dev/null retval=$? fi fi if [ $retval -ne 1 ]; then $verbose || echo "$info" echo "Error executing 'ipv6calc'!" exit 1 fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" test="run 'ipv6calc' input validation tests (too long input)" echo "INFO : $test" line="`perl -e 'print "x" x300'`" ./ipv6calc -m --in -? | while read inputformat; do if echo $inputformat | grep -q '+'; then info="INFO : test './ipv6calc -q --in $inputformat \"$line\" \"$line\"'" $verbose && echo "$info" if $verbose; then ./ipv6calc -q --in $inputformat "$line" "$line" retval=$? else ./ipv6calc -q --in $inputformat "$line" "$line" 2>/dev/null retval=$? fi else info="INFO : test './ipv6calc -q --in $inputformat \"$line\"'" $verbose && echo "$info" if $verbose; then ./ipv6calc -q --in $inputformat "$line" retval=$? else ./ipv6calc -q --in $inputformat "$line" 2>/dev/null retval=$? fi fi if [ $retval -ne 1 ]; then $verbose || echo "$info" echo "Error executing 'ipv6calc'!" exit 1 fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" test="run 'ipv6calc' input validation tests (strange input)" echo "INFO : $test" ./ipv6calc -m --in -? | while read inputformat; do case $inputformat in hex|ifinet6) line="`perl -e 'print "x" x32'`" ;; *) line="`perl -e 'print "x" x11'`" ;; esac if echo $inputformat | grep -q '+'; then info="INFO : test './ipv6calc -q --in $inputformat \"$line\" \"$line\"'" $verbose && echo "$info" if $verbose; then ./ipv6calc -q --in $inputformat "$line" "$line" retval=$? else ./ipv6calc -q --in $inputformat "$line" "$line" 2>/dev/null retval=$? fi else info="INFO : test './ipv6calc -q --in $inputformat \"$line\"'" $verbose && echo "$info" if $verbose; then ./ipv6calc -q --in $inputformat "$line" retval=$? else ./ipv6calc -q --in $inputformat "$line" 2>/dev/null retval=$? fi fi if [ $retval -ne 1 ]; then $verbose || echo "$info" echo "Error executing 'ipv6calc'!" exit 1 fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" test="run 'ipv6calc' input autodetection tests (good cases)" echo "INFO : $test" testscenarios_auto_good | while read input dummy; do info="INFO : test './ipv6calc -q \"$input\"'" $verbose && echo "$info" ./ipv6calc -q "$input" >/dev/null retval=$? if [ $retval -ne 0 ]; then $verbose || echo "$info" echo "Error executing 'ipv6calc'!" exit 1 fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" test="run 'ipv6calc' input autodetection tests (bad cases)" echo "INFO : $test" testscenarios_auto_bad | while read input dummy; do info="INFO : test './ipv6calc -q \"$input\"'" $verbose && echo "$info" if $verbose; then ./ipv6calc -q "$input" retval=$? else ./ipv6calc -q "$input" >/dev/null 2>&1 retval=$? fi if [ $retval -eq 0 ]; then $verbose || echo "$info" echo "Error executing 'ipv6calc' ($retval)!" exit 1 fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" test="run 'ipv6calc' input tests (good cases)" echo "INFO : $test" testscenarios_auto_good | while read input type; do info="INFO : test './ipv6calc --in $type -q \"$input\"'" $verbose && echo "$info" ./ipv6calc --in $type -q "$input" >/dev/null retval=$? if [ $retval -ne 0 ]; then $verbose || echo "$info" echo "Error executing 'ipv6calc'!" exit 1 fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" test="run 'ipv6calc' pipe tests (1)" echo "INFO : $test" testscenarios_pipe | while IFS="," read input arguments result; do info="INFO : test 'echo -e \"$input\" | ./ipv6calc $arguments | grep \"^$result\$\"'" $verbose && echo "$info" output=$(echo -e "$input" | ./ipv6calc $arguments | grep "^$result\$") retval=$? $verbose && echo "$output" if [ $retval -ne 0 ]; then $verbose || echo "$info" echo "Error executing 'ipv6calc' ($retval)!" exit 1 fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" test="run 'ipv6calc' pipe tests (2)" echo "INFO : $test" testscenarios | grep -v "^NOPIPETEST" | while read line; do # reuse original test cases # extract result command="`echo "$line" | awk -F= '{ print $1 }' | sed 's/ $//g'`" result="`echo "$line" | awk -F= '{ for (i=2; i <= NF; i++) printf "%s%s", $i, (i&2 stdin="`echo "$command" | awk '{ print $NF }'`" options="`echo "$command" | awk '{ for (i=1; i < NF; i++) printf "%s ", $i; }'`" case $command in *ifinet*) if echo "$stdin" | grep -q "^..$"; then stdin="`echo "$command" | awk '{ for (i=NF-1; i <= NF; i++) printf "%s ", $i; }'`" options="`echo "$command" | awk '{ for (i=1; i < NF-1; i++) printf "%s ", $i; }'`" fi ;; *eui64_to_privacy*|*iid+token*|*prefix+mac*) stdin="`echo "$command" | awk '{ for (i=NF-1; i <= NF; i++) printf "%s ", $i; }'`" options="`echo "$command" | awk '{ for (i=1; i < NF-1; i++) printf "%s ", $i; }'`" ;; esac info="INFO : test 'echo $stdin | ./ipv6calc $options | grep \"^$result\$\"'" $verbose && echo "$info" output="`echo -e $stdin | ./ipv6calc $options`" retval=$? if [ $retval -ne 0 ]; then $verbose || echo "$info" echo "Error executing 'ipv6calc' ($retval)!" exit 1 fi # Check result if [ "$result" != "*" ]; then if [ "$output" != "$result" ]; then $verbose || echo "$info" echo "Result '$output' doesn't match!" exit 1 fi fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" test="run 'ipv6calc' pipe mode input validation tests (too long input)" echo "INFO : $test" ./ipv6calc -m --in -? | while read inputformat; do if echo $inputformat | grep -q '+'; then info="INFO : test '8192*x 8192*x | ./ipv6calc -q --in $inputformat" $verbose && echo "$info" output=$(perl -e 'print "x" x8192 . " " . "y" x8192' | ./ipv6calc -q --in $inputformat 2>&1) retval=$? else info="INFO : test '8192*x | ./ipv6calc -q --in $inputformat" $verbose && echo "$info" output=$(perl -e 'print "x" x8192' | ./ipv6calc -q --in $inputformat 2>&1) retval=$? fi $verbose && echo "$output" if [ $retval -ne 0 -a $retval -ne 1 ]; then $verbose || echo "$info" echo "Error executing 'ipv6calc'!" exit 1 fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" echo "INFO : all tests were successfully done!" exit 0 ipv6calc-4.1.0/ipv6calc/test_ipv6calc_anonymization.sh000077500000000000000000000445141444154247200230350ustar00rootroot00000000000000#!/usr/bin/env bash # # Project : ipv6calc # File : test_ipv6calc_anonymization.sh # Copyright : 2013-2023 by Peter Bieringer # # Test ipv6calc anonymization verbose=false stoponerror=false while getopts "VSh\?" opt; do case $opt in V) verbose=true ;; S) stoponerror=true ;; *) echo "$0 [-V] [-S]" echo " -V verbose" echo " -S stop-on-error" exit 1 ;; esac done if [ ! -x ./ipv6calc ]; then echo "Binary './ipv6calc' missing or not executable" exit 1 fi # Test Scenarios source ./test_scenarios.sh test_list() { testscenarios_filter testscenarios_auto_good } run_anon_tests() { if ! ./ipv6calc -v 2>&1| grep -wq "ANON_ANONYMIZE"; then echo "NOTICE: 'ipv6calc' has not required support for ANON_ANONYMIZE, skip standard tests" ! $stoponerror return fi test="run 'ipv6calc' anonymization tests" echo "INFO : $test" test_list | while read input filter; do if [ -z "$input" ]; then continue fi $verbose && echo "INFO: test './ipv6calc -A anonymize' for: $input" output="`echo "$input" | ./ipv6calc -q -A anonymize`" retval=$? if [ $retval -ne 0 ]; then echo "Error executing 'ipv6calc'!" exit 1 fi $verbose && echo "INFO : anonymized: $output" type_orig="`./ipv6calc -q -i "$input" -m --mrtvo IPV._TYPE`" if [ $? -ne 0 ]; then echo "ERROR : ipv6calc result not 0: ./ipv6calc -q -i "$input" -m" exit 1 fi type_anon="`./ipv6calc -q -i "$output" -m --mrtvo IPV._TYPE`" if [ $? -ne 0 ]; then echo "ERROR : ipv6calc result not 0: ./ipv6calc -q -i "$output" -m" exit 1 fi if [ -z "$type_orig" -a -z "$type_anon" ]; then # fallback EUI* type_orig="`./ipv6calc -q -i "$input" -m --mrtvo EUI.._TYPE`" type_anon="`./ipv6calc -q -i "$output" -m --mrtvo EUI.._TYPE`" fi if [ -z "$type_orig" ]; then echo "ERROR : something went wrong retrieving EUIxx/IPVx_TYPE for $input" exit 1 fi if [ -z "$type_anon" ]; then echo "ERROR : something went wrong retrieving EUIxx/IPVx_TYPE for $output" exit 1 fi type_anon_compare="${type_anon}" type_orig_compare="${type_orig}" type_anon_compare="${type_anon_compare/anonymized-iid}" type_orig_compare="${type_orig_compare/anonymized-iid}" type_anon_compare="${type_anon_compare/anonymized-prefix}" type_orig_compare="${type_orig_compare/anonymized-prefix}" type_anon_compare="${type_anon_compare/anonymized-masked-prefix}" type_orig_compare="${type_orig_compare/anonymized-masked-prefix}" type_anon_compare="${type_anon_compare/anonymized}" type_orig_compare="${type_orig_compare/anonymized}" type_anon_compare="$(echo "$type_anon_compare" | perl -p -e 's/,+/,/g')" type_orig_compare="$(echo "$type_orig_compare" | perl -p -e 's/,+/,/g')" type_anon_compare="$(echo "$type_anon_compare" | perl -p -e 's/(^,|,$)//g')" type_orig_compare="$(echo "$type_orig_compare" | perl -p -e 's/(^,|,$)//g')" $verbose && echo "DEBUG : IPVx_TYPE orig: $type_orig_compare" $verbose && echo "DEBUG : IPVx_TYPE anon: $type_anon_compare" # Check result if [ "$type_orig_compare" != "$type_anon_compare" ]; then $verbose || echo echo "ERROR : IPVx_TYPE not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_TYPE orig: $type_orig_compare" echo "ERROR : IPVx_TYPE anon: $type_anon_compare" exit 1 else $verbose && echo "INFO : result ok!" || true fi $verbose || echo -n "." done || return 1 $verbose || echo echo "INFO : $test successful" } run_anon_options_tests() { test="run 'ipv6calc' anonymization option tests" echo "INFO : $test" testscenarios_anonymization_options | while IFS="=" read input result; do if [ -z "$input" ]; then continue fi command="./ipv6calc -q -A anonymize $input" result_real="`$command`" if [ $? -ne 0 ]; then echo "ERROR : command was not proper executed: $command" exit 1 fi if [ "$result" != "$result_real" ]; then $verbose || echo echo "ERROR : result doesn't match on command: $command" echo "ERROR : result is : $result_real" echo "ERROR : result expected: $result" exit 1 else $verbose && echo "INFO : $command -> test ok" || true fi $verbose || echo -n "." done || return 1 $verbose || echo echo "INFO : $test successful" } run_anon_options_kp_tests() { if ! ./ipv6calc -v 2>&1| grep -wq "ANON_KEEP-TYPE-ASN-CC"; then echo "NOTICE: 'ipv6calc' has not required support for Anonymization Type-ASN-CountryCode included, skip option kp tests" ! $stoponerror return fi test="run 'ipv6calc' anonymization option kp tests" echo "INFO : $test" testscenarios_anonymization_options_kp | while IFS="=" read input result; do if [ -z "$input" ]; then continue fi command="./ipv6calc -q -A anonymize $input" output="`$command`" if [ $? -ne 0 ]; then echo "ERROR : command was not proper executed: $command" exit 1 fi if [ "$result" != "$output" ]; then $verbose || echo echo "ERROR : result doesn't match on command: $command" echo "ERROR : result is : $output" echo "ERROR : result expected: $result" exit 1 fi $verbose || echo -n "." done || return 1 $verbose || echo echo "INFO : $test successful" test="run 'ipv6calc' anonymization option kp TYPE/ASN/CC tests" echo "INFO : $test" testscenarios_kp | ./ipv6calc -q -E ipv4,ipv6 | while read input result; do if [ -z "$input" ]; then continue fi $verbose && echo "INFO : run test with: $input" output=$(./ipv6calc -q -A anonymize --anonymize-preset kp $input) if [ $? -ne 0 -o -z "$output" ]; then echo "ERROR : no proper result for input: $input" exit 1 fi type_orig="`./ipv6calc -m -i -q "$input" --mrtvo IPV._TYPE`" type_anon="`./ipv6calc -m -i -q "$output" --mrtvo IPV._TYPE`" if [ -z "$type_orig" ]; then echo "ERROR : something went wrong retrieving IPVx_TYPE for $input" exit 1 fi if [ -z "$type_anon" ]; then echo "ERROR : something went wrong retrieving IPVx_TYPE for $output" exit 1 fi type_anon_compare="${type_anon}" type_orig_compare="${type_orig}" #echo "DEBUG : IPVx_TYPE orig not reduced: $type_orig_compare" #echo "DEBUG : IPVx_TYPE anon not reduced: $type_anon_compare" type_anon_compare="$(echo "$type_anon_compare" | perl -p -e 's/(anonymized-prefix|anonymized-iid|anonymized-masked-prefix|anonymized)//g')" type_orig_compare="$(echo "$type_orig_compare" | perl -p -e 's/(anonymized-prefix|anonymized-iid|anonymized-masked-prefix|anonymized)//g')" type_anon_compare="$(echo "$type_anon_compare" | perl -p -e 's/,+/,/g')" type_orig_compare="$(echo "$type_orig_compare" | perl -p -e 's/,+/,/g')" type_anon_compare="$(echo "$type_anon_compare" | perl -p -e 's/(^,|,$)//g')" type_orig_compare="$(echo "$type_orig_compare" | perl -p -e 's/(^,|,$)//g')" if [ -z "$type_orig_compare" ]; then $verbose || echo echo "ERROR : something went wrong reducing IPVx_TYPE for $input" exit 1 fi if [ -z "$type_anon_compare" ]; then $verbose || echo echo "ERROR : something went wrong reducing IPVx_TYPE for $output" exit 1 fi $verbose && echo "DEBUG : IPVx orig: $input" $verbose && echo "DEBUG : IPVx anon: $output" $verbose && echo "DEBUG : IPVx_TYPE orig: $type_orig_compare" $verbose && echo "DEBUG : IPVx_TYPE anon: $type_anon_compare" # Check result if [ "$type_orig_compare" != "$type_anon_compare" ]; then $verbose || echo echo "ERROR : IPVx_TYPE not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_TYPE orig: $type_orig_compare" echo "ERROR : IPVx_TYPE anon: $type_anon_compare" exit 1 else $verbose && echo "Result ok!" || true fi # Country Code (optional) cc_orig="`./ipv6calc -m -i -q "$input" --mrtvo IPV._COUNTRYCODE`" cc_anon="`./ipv6calc -m -i -q "$output" --mrtvo IPV._COUNTRYCODE`" $verbose && echo "DEBUG : IPVx orig: $input" $verbose && echo "DEBUG : IPVx anon: $output" $verbose && echo "DEBUG : IPVx_COUNTRYCODE orig: $cc_orig" $verbose && echo "DEBUG : IPVx_COUNTRYCODE anon: $cc_anon" if [ -z "$cc_orig" -a -z "$cc_anon" ]; then # everything is ok, both have no CC true elif [ -z "$cc_orig" -a -n "$cc_anon" ]; then $verbose || echo echo "ERROR : IPVx_COUNTRYCODE not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_COUNTRYCODE orig: $cc_orig" echo "ERROR : IPVx_COUNTRYCODE anon: $cc_anon" echo "ERROR : something went wrong, anon has country code while orig hasn't" exit 1 elif [ -n "$cc_orig" -a -z "$cc_anon" ]; then $verbose || echo echo "ERROR : IPVx_COUNTRYCODE not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_COUNTRYCODE orig: $cc_orig" echo "ERROR : IPVx_COUNTRYCODE anon: $cc_anon" echo "ERROR : something went wrong, orig has country code while anon hasn't" exit 1 else # Check result if [ "$cc_orig" != "$cc_anon" ]; then $verbose || echo echo "ERROR : IPVx_COUNTRYCODE not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_COUNTRYCODE orig: $cc_orig" echo "ERROR : IPVx_COUNTRYCODE anon: $cc_anon" exit 1 else $verbose && echo "Result ok!" || true fi fi $verbose || echo -n "+" # ASN (optional) if echo "${type_orig//,/ }" | grep -Eqw "(lisp|ipv4|iid-includes-ipv4)"; then # skip ASN on IPv4+LISP or IID includes IPv4 continue fi asn_orig="`./ipv6calc -m -i -q "$input" --mrtvo IPV._AS_NUM`" asn_anon="`./ipv6calc -m -i -q "$output" --mrtvo IPV._AS_NUM`" $verbose && echo "DEBUG : IPVx orig: $input" $verbose && echo "DEBUG : IPVx anon: $output" $verbose && echo "DEBUG : IPVx_AS_NUM orig: $asn_orig" $verbose && echo "DEBUG : IPVx_AS_NUM anon: $asn_anon" if [ -z "$asn_orig" -a -z "$asn_anon" ]; then # everything is ok, both have no AS_NUM true elif [ -z "$asn_orig" -a -n "$asn_anon" ]; then $verbose || echo echo "ERROR : IPVx_AS_NUM not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_AS_NUM orig: $asn_orig" echo "ERROR : IPVx_AS_NUM anon: $asn_anon" echo "ERROR : something went wrong, anon has AS_NUM code while orig hasn't" exit 1 elif [ -n "$asn_orig" -a -z "$asn_anon" ]; then $verbose || echo echo "ERROR : IPVx_AS_NUM not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_AS_NUM orig: $asn_orig" echo "ERROR : IPVx_AS_NUM anon: $asn_anon" echo "ERROR : something went wrong, orig has AS_NUM while anon hasn't" exit 1 else # Check result if [ "$asn_orig" != "$asn_anon" ]; then $verbose || echo echo "ERROR : IPVx_AS_NUM not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_AS_NUM orig: $asn_orig" echo "ERROR : IPVx_AS_NUM anon: $asn_anon" exit 1 else $verbose && echo "Result ok!" || true fi fi $verbose || echo -n "." done || return 1 $verbose || echo echo "INFO : $test successful" } run_anon_options_kg_tests() { if ! ./ipv6calc -v 2>&1| grep -wq "ANON_KEEP-TYPE-GEONAMEID"; then echo "NOTICE: 'ipv6calc' has not required support for Anonymization Type-GeonameID included, skip option kg tests" ! $stoponerror return fi test="run 'ipv6calc' anonymization option kg TYPE/GEONAMEID tests" echo "INFO : $test" testscenarios_kp | ./ipv6calc -q -E ipv4,ipv6 | while read input result; do if [ -z "$input" ]; then continue fi $verbose && echo "INFO : run test with: $input" output=$(./ipv6calc -q -A anonymize --anonymize-preset kg $input) if [ $? -ne 0 -o -z "$output" ]; then echo "ERROR : no proper result for input: $input" exit 1 fi type_orig="`./ipv6calc -m -i -q "$input" --mrtvo IPV._TYPE`" type_anon="`./ipv6calc -m -i -q "$output" --mrtvo IPV._TYPE`" if [ -z "$type_orig" ]; then echo "ERROR : something went wrong retrieving IPVx_TYPE for $input" exit 1 fi if [ -z "$type_anon" ]; then echo "ERROR : something went wrong retrieving IPVx_TYPE for $output" exit 1 fi type_anon_compare="${type_anon}" type_orig_compare="${type_orig}" #echo "DEBUG : IPVx_TYPE orig not reduced: $type_orig_compare" #echo "DEBUG : IPVx_TYPE anon not reduced: $type_anon_compare" type_anon_compare="$(echo "$type_anon_compare" | perl -p -e 's/(anonymized-geonameid|anonymized-prefix|anonymized-iid|anonymized-masked-prefix|anonymized)//g')" type_orig_compare="$(echo "$type_orig_compare" | perl -p -e 's/(anonymized-geonameid|anonymized-prefix|anonymized-iid|anonymized-masked-prefix|anonymized)//g')" type_anon_compare="$(echo "$type_anon_compare" | perl -p -e 's/,+/,/g')" type_orig_compare="$(echo "$type_orig_compare" | perl -p -e 's/,+/,/g')" type_anon_compare="$(echo "$type_anon_compare" | perl -p -e 's/(^,|,$)//g')" type_orig_compare="$(echo "$type_orig_compare" | perl -p -e 's/(^,|,$)//g')" if [ -z "$type_orig_compare" ]; then $verbose || echo echo "ERROR : something went wrong reducing IPVx_TYPE for $input" exit 1 fi if [ -z "$type_anon_compare" ]; then $verbose || echo echo "ERROR : something went wrong reducing IPVx_TYPE for $output" exit 1 fi $verbose && echo "DEBUG : IPVx orig: $input" $verbose && echo "DEBUG : IPVx anon: $output" $verbose && echo "DEBUG : IPVx_TYPE orig: $type_orig_compare" $verbose && echo "DEBUG : IPVx_TYPE anon: $type_anon_compare" # Check result if [ "$type_orig_compare" != "$type_anon_compare" ]; then $verbose || echo echo "ERROR : IPVx_TYPE not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_TYPE orig: $type_orig_compare" echo "ERROR : IPVx_TYPE anon: $type_anon_compare" exit 1 else $verbose && echo "Result ok!" || true fi # Registry (only in case of LISP) reg_orig="`./ipv6calc -m -i -q "$input" --mrtvo IPV._REGISTRY`" if echo "$reg_orig" | grep -q LISP; then reg_orig=${reg_orig/(*} # cut lisp details reg_anon="`./ipv6calc -m -i -q "$output" --mrtvo IPV._REGISTRY`" if [ -z "$reg_orig" ]; then $verbose || echo echo "ERROR : something went wrong retrieving IPVx_REGISTRY for $input" exit 1 fi if [ -z "$reg_anon" ]; then $verbose || echo echo "ERROR : something went wrong retrieving IPVx_REGISTRY for $output" exit 1 fi $verbose && echo "DEBUG : IPVx orig: $input" $verbose && echo "DEBUG : IPVx anon: $output" $verbose && echo "DEBUG : IPVx_REGISTRY orig: $reg_orig" $verbose && echo "DEBUG : IPVx_REGISTRY anon: $reg_anon" if [ -z "$reg_orig" -a -z "$reg_anon" ]; then # everything is ok, both have no registry true elif [ -z "$reg_orig" -a -n "$reg_anon" ]; then $verbose || echo echo "ERROR : something went wrong, anon has registry while orig hasn't" exit 1 elif [ -n "$reg_orig" -a -z "$reg_anon" ]; then $verbose || echo echo "ERROR : something went wrong, orig has registry while anon hasn't" exit 1 else # Check result if [ "$reg_orig" != "$reg_anon" ]; then $verbose || echo echo "ERROR : IPVx_REGISTRY not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_REGISTRY orig: $reg_orig" echo "ERROR : IPVx_REGISTRY anon: $reg_anon" exit 1 else $verbose && echo "Result ok!" || true fi fi else # GeonameID gi_orig="`./ipv6calc -m -i -q "$input" --mrtvo IPV._GEONAME_ID`" gi_anon="`./ipv6calc -m -i -q "$output" --mrtvo IPV._GEONAME_ID`" $verbose && echo "DEBUG : IPVx orig: $input" $verbose && echo "DEBUG : IPVx anon: $output" $verbose && echo "DEBUG : IPVx_GEONAME_ID orig: $gi_orig" $verbose && echo "DEBUG : IPVx_GEONAME_ID anon: $gi_anon" if [ -z "$gi_orig" -a -z "$gi_anon" ]; then # everything is ok, both have no CC true elif [ -z "$gi_orig" -a -n "$gi_anon" ]; then $verbose || echo echo "ERROR : IPVx_GEONAME_ID not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_GEONAME_ID orig: $gi_orig" echo "ERROR : IPVx_GEONAME_ID anon: $gi_anon" echo "ERROR : something went wrong, anon has GeonameID while orig hasn't" exit 1 elif [ -n "$gi_orig" -a -z "$gi_anon" ]; then $verbose || echo echo "ERROR : IPVx_GEONAME_ID not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_GEONAME_ID orig: $gi_orig" echo "ERROR : IPVx_GEONAME_ID anon: $gi_anon" echo "ERROR : something went wrong, orig has GeonameID while anon hasn't" exit 1 else # Check result if [ "$gi_orig" != "$gi_anon" ]; then $verbose || echo echo "ERROR : IPVx_GEONAME_ID not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_GEONAME_ID orig: $gi_orig" echo "ERROR : IPVx_GEONAME_ID anon: $gi_anon" exit 1 else $verbose && echo "Result ok!" || true fi fi $verbose || echo -n "+" # GeonameID Type gi_type_orig="`./ipv6calc -m -i -q "$input" --mrtvo IPV._GEONAME_ID_TYPE`" gi_type_anon="`./ipv6calc -m -i -q "$output" --mrtvo IPV._GEONAME_ID_TYPE`" $verbose && echo "DEBUG : IPVx orig: $input" $verbose && echo "DEBUG : IPVx anon: $output" $verbose && echo "DEBUG : IPVx_GEONAME_ID_TYPE orig: $gi_type_orig" $verbose && echo "DEBUG : IPVx_GEONAME_ID_TYPE anon: $gi_type_anon" if [ -z "$gi_type_orig" -a -z "$gi_type_anon" ]; then # everything is ok, both have no CC true elif [ -z "$gi_type_orig" -a -n "$gi_type_anon" ]; then $verbose || echo echo "ERROR : IPVx_GEONAME_ID_TYPE not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_GEONAME_ID_TYPE orig: $gi_type_orig" echo "ERROR : IPVx_GEONAME_ID_TYPE anon: $gi_type_anon" echo "ERROR : something went wrong, anon has GeonameID while orig hasn't" exit 1 elif [ -n "$gi_type_orig" -a -z "$gi_type_anon" ]; then $verbose || echo echo "ERROR : IPVx_GEONAME_ID_TYPE not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_GEONAME_ID_TYPE orig: $gi_type_orig" echo "ERROR : IPVx_GEONAME_ID_TYPE anon: $gi_type_anon" echo "ERROR : something went wrong, orig has GeonameID while anon hasn't" exit 1 else # Check result if [ "$gi_type_orig" != "$gi_type_anon" ]; then $verbose || echo echo "ERROR : IPVx_GEONAME_ID_TYPE not equal for: $input (anonymized: $output)" echo "ERROR : IPVx_GEONAME_ID_TYPE orig: $gi_type_orig" echo "ERROR : IPVx_GEONAME_ID_TYPE anon: $gi_type_anon" exit 1 else $verbose && echo "Result ok!" || true fi fi fi $verbose || echo -n "." done || return 1 $verbose || echo echo "INFO : $test successful" } run_anon_options_tests || exit 1 run_anon_options_kp_tests || exit 1 run_anon_options_kg_tests || exit 1 run_anon_tests || exit 1 echo "INFO : all anonymization tests successful!" ipv6calc-4.1.0/ipv6calc/test_ipv6calc_filter.sh000077500000000000000000000066421444154247200214230ustar00rootroot00000000000000#!/usr/bin/env bash # # Project : ipv6calc # File : test_ipv6calc_filter.sh # Version : $Id: 797ef57c919f3d300d826134132b0614619b0079 $ # Copyright : 2012-2021 by Peter Bieringer # License : GPLv2 # # Test patterns for ipv6calc filter & test_prefix verbose=false while getopts "Vh\?" opt; do case $opt in V) verbose=true ;; *) echo "$0 [-V]" echo " -V verbose" exit 1 ;; esac done if [ ! -x ./ipv6calc ]; then echo "Binary './ipv6calc' missing or not executable" exit 1 fi # Test Scenarios for autodetection "good case" source ./test_scenarios.sh test="run 'ipv6calc' filter tests..." echo "INFO : $test" testscenarios_filter | while read input filter_feature; do if [ -z "$input" -o -z "$filter_feature" ]; then # end continue fi filter=${filter_feature/\#*/} feature=${filter_feature/*\#/} [ "$feature" = "$filter_feature" ] && feature="" if [ -n "$feature" ]; then if ! ./ipv6calc -v 2>&1 | grep -qw "$feature"; then echo "NOTICE: skip './ipv6calc -A filter -E $filter' for: $input (missing feature: $feature)" continue fi fi $verbose && echo "INFO : test './ipv6calc -A filter -E $filter' for: $input" output="`echo "$input" | ./ipv6calc -A filter -E $filter`" retval=$? if [ $retval -ne 0 ]; then echo "Error executing 'ipv6calc'!" exit 1 fi # Check result if [ -n "$output" ]; then if [ "$output" != "$input" ]; then echo "ERROR : result '$output' doesn't match '$input'!" exit 1 else $verbose && echo "INFO : result ok!" || true fi else echo "Result empty: echo $input | ./ipv6calc -A filter -E $filter" exit 1 fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" # subsequent filter echo -e "1.2.3.4\n2001:db8::1" | ./ipv6calc -E iid-local >/dev/null if [ $? -ne 0 ]; then echo "ERROR : something is going wrong filtering sequence of IPv4->IPv6" exit 1 fi echo -e "2001:db8::1\n1.2.3.4" | ./ipv6calc -E iid-local >/dev/null if [ $? -ne 0 ]; then echo "ERROR : something is going wrong filtering sequence of IPv6->IPv4" exit 1 fi test="run 'ipv6calc' test_prefix tests..." echo "INFO : $test" # Pipe mode only echo -e "1.2.3.4" | ./ipv6calc -q --test_prefix 1.2.3.0/24 if [ $? -ne 0 ]; then echo "ERROR : something is going wrong with IPv4 test_prefix" exit 1 fi echo -e "1.2.3.4" | ./ipv6calc -q --test_prefix 1.2.4.0/24 if [ $? -ne 1 ]; then echo "ERROR : something is going wrong with IPv4 test_prefix" exit 1 fi echo -e "2001:db8::1" | ./ipv6calc -q --test_prefix 2001:db8::/32 if [ $? -ne 0 ]; then echo "ERROR : something is going wrong with IPv6 test_prefix" exit 1 fi echo -e "2001:db8::1" | ./ipv6calc -q --test_prefix 2001:db9::/32 if [ $? -ne 1 ]; then echo "ERROR : something is going wrong with IPv6 test_prefix" exit 1 fi echo -e "1.2.3.4" | ./ipv6calc -q --test_prefix 2001:db8::/32 if [ $? -ne 2 ]; then echo "ERROR : something is going wrong with IPv4 test_prefix" exit 1 fi echo -e "2001:db8::1" | ./ipv6calc -q --test_prefix 1.2.3.0/24 if [ $? -ne 2 ]; then echo "ERROR : something is going wrong with IPv6 test_prefix" exit 1 fi testscenario_action_test | while IFS="|" read result options comment; do ./ipv6calc -q $options rc=$? if [ $rc -ne $result ]; then echo "ERROR : something is going wrong with: $options (rc=$rc but should $result)" exit 1 fi done echo "INFO : $test successful" echo "INFO : all ipv6calc filter tests successful" exit 0 ipv6calc-4.1.0/ipv6calc/test_privacyiid_detection.sh000077500000000000000000000203601444154247200225410ustar00rootroot00000000000000#!/bin/bash # # Project : ipv6calc # File : test_privacyiid_detection.sh # Version : $Id: e5700f4ba2bc513a656e992b0f6d8d4bb23fef6b $ # Copyright : 2012-2012 by Peter Bieringer # # Test script for detection of a privacy IID if [ ! -x ./ipv6calc ]; then echo "Binary './ipv6calc' missing or not executable" exit 1 fi max=1000000 i=0 iid="0224:21ff:fe00:0001" token="0123456789abcdef" generate() { echo "INFO : generate IPv6 addresses with privacy IID: $max" >&2 while [ $i -lt $max ]; do iidtoken_new="`./ipv6calc -q -F -A genprivacyiid $iid $token`" if [ -z "$iidtoken_new" ]; then exit 1 fi iid="${iidtoken_new/ *}" token="${iidtoken_new/* }" #echo "$iid $token" ipv6="2001:0db8:0000:0000:$iid" echo "$ipv6" i=$[ $i + 1 ] done } analyze-hexvar() { f="$1" limit_low="$2" limit_high="$3" if [ -z "$limit_low" ]; then echo "ERROR : missing limit_low (arg2)" return 1 fi if [ -z "$limit_high" ]; then echo "ERROR : missing limit_high (arg3)" return 1 fi echo "INFO : analyze file (hex digit variance): $f" >&2 # hexvariance cat $f | ./ipv6calc --print-iid-var | awk -v limit_high=$limit_high -v limit_low=$limit_low '{ h = $4; if (h >= limit_low && h <= limit_high) { if (h > max || max == 0) { max = h; }; if (h < min || min == 0) { min = h; }; print $1 " " h " min=" min " max=" max; }; }' } analyze-digitblock() { f="$1" limit_low="$2" limit_high="$3" size="$4" if [ -z "$limit_low" ]; then echo "ERROR : missing limit_low (arg2)" return 1 fi if [ -z "$limit_high" ]; then echo "ERROR : missing limit_high (arg3)" return 1 fi if [ -z "$size" ]; then echo "ERROR : missing size (arg4)" return 1 fi echo "INFO : analyze file (digit blocks): $f" >&2 cat $f | ./ipv6calc --print-iid-var | awk -v limit_high=$limit_high -v limit_low=$limit_low -v size=$size '{ h = $8; split(h, db, ","); f = db[size]; if (f >= limit_low && f <= limit_high) { if (init != 1) { min = f; max = f; init = 1; }; if (f > max) { max = f; }; if (f < min) { min = f; }; print $1 " " h " " size " f:" f " min=" min " max=" max; }; }' } analyze-digitamount() { f="$1" limit_low="$2" limit_high="$3" digit="$4" if [ -z "$limit_low" ]; then echo "ERROR : missing limit_low (arg2)" return 1 fi if [ -z "$limit_high" ]; then echo "ERROR : missing limit_high (arg3)" return 1 fi if [ -z "$digit" ]; then echo "ERROR : missing digit (arg4)" return 1 fi echo "INFO : analyze file (digit amount): $f" >&2 cat $f | ./ipv6calc --print-iid-var | awk -v limit_high=$limit_high -v limit_low=$limit_low -v digit=$digit '{ h = $10; split(h, db, ","); if (digit == "-1") { # all flag = 1; for (i = 1; i <= 16; i++) { f = db[i]; if (f >= limit_low && f <= limit_high) { if (init != 1) { min = f; max = f; init = 1; }; if (f > max) { max = f; }; if (f < min) { min = f; }; } else { flag = 0; }; }; if (flag == 1) { print $1 " " h " " size " f:" f " min=" min " max=" max; }; } else { f = db[digit]; if (f >= limit_low && f <= limit_high) { if (init != 1) { min = f; max = f; init = 1; }; if (f > max) { max = f; }; if (f < min) { min = f; }; print $1 " " h " " size " f:" f " min=" min " max=" max; }; }; }' } analyze-digitdelta() { f="$1" limit_low="$2" limit_high="$3" digit="$4" if [ -z "$limit_low" ]; then echo "ERROR : missing limit_low (arg2)" return 1 fi if [ -z "$limit_high" ]; then echo "ERROR : missing limit_high (arg3)" return 1 fi if [ -z "$digit" ]; then echo "ERROR : missing digit (arg4)" return 1 fi echo "INFO : analyze file (digit delta): $f limit_low=$limit_low limit_high=$limit_high digit=$digit" >&2 cat $f | ./ipv6calc --print-iid-var | awk -v limit_high=$limit_high -v limit_low=$limit_low -v digit=$digit '{ h = $12; split(h, db, ","); if (digit == "-1" || digit == "-2") { # all flag = 1; for (i = 1; i <= 31; i++) { f = db[i]; if (f >= limit_low && f <= limit_high) { if (init != 1) { min = f; max = f; init = 1; }; if (f > max) { max = f; }; if (f < min) { min = f; }; if (digit == "-2") { flag = 0; }; } else { if (digit == "-1") { flag = 0; }; }; }; if ((digit == "-1" && flag == 1) || (digit == "-2" && flag == 0)) { print $1 " " h " " size " f:" f " min=" min " max=" max; }; } else { f = db[digit]; if (f >= limit_low && f <= limit_high) { if (init != 1) { min = f; max = f; init = 1; }; if (f > max) { max = f; }; if (f < min) { min = f; }; print $1 " " h " " size " f:" f " min=" min " max=" max; }; }; }' } analyze() { for f in $*; do # hexvariance echo "INFO : analyze file (hex digit variance): $f" >&2 cat $f | ./ipv6calc --print-iid-var | awk '{ h = $4; if (init != 1) { min = h; max = h; init = 1; }; if (h > max) { max = h; }; if (h < min) { min = h; }; print $1 " " h " min=" min " max=" max; }' | tail -1 # linear_least_square echo echo "INFO : analyze file (linear least square fit): $f" cat $f | ./ipv6calc --print-iid-var | awk '{ h = $6; if (init != 1) { min = h; max = h; init = 1; }; if (h > max) { max = h; }; if (h < min) { min = h; }; print $1 " " h " min=" min " max=" max; }' | tail -1 # digit blocks echo echo "INFO : analyze file (digit blocks): $f" cat $f | ./ipv6calc --print-iid-var | awk '{ h = $8; split(h, db, ","); for (i = 1; i <= 16; i++) { if (init[i] != 1) { min[i] = h; max[i] = h; init[i] = 1; }; if (db[i] > max[i]) { max[i] = db[i]; }; if (db[i] < min[i]) { min[i] = db[i]; }; if (db[i] > 0) { count[i]++; }; }; printf "%s ", $1; for (i = 1; i <= 16; i++) { printf "%d:%d/%d (%d) ", i, min[i], max[i], count[i]; }; printf "\n"; }' | tail -1 # digit amount echo echo "INFO : analyze file (digit amount): $f" cat $f | ./ipv6calc --print-iid-var | awk '{ h = $10; split(h, db, ","); for (i = 1; i <= 16; i++) { if (init[i] != 1) { min[i] = h; max[i] = h; init[i] = 1; }; if (db[i] > max[i]) { max[i] = db[i]; }; if (db[i] < min[i]) { min[i] = db[i]; }; if (max[i] > maxall || maxall == 0) { maxall = max[i]; }; if (db[i] > 0) { count[i]++; }; }; printf "%s ", $1; for (i = 1; i <= 16; i++) { printf "%d:%d/%d (%d) ", i-1, min[i], max[i], count[i]; }; printf "[maxall:%d]\n", maxall; }' | tail -1 # digit delta echo echo "INFO : analyze file (digit delta): $f" cat $f | ./ipv6calc --print-iid-var | awk '{ h = $12; split(h, db, ","); for (i = 1; i <= 31; i++) { if (init[i] != 1) { min[i] = h; max[i] = h; init[i] = 1; }; if (db[i] > max[i]) { max[i] = db[i]; }; if (db[i] < min[i]) { min[i] = db[i]; }; if (max[i] > maxall || maxall == 0) { maxall = max[i]; }; if (db[i] > 0) { count[i]++; }; }; printf "%s ", $1; for (i = 1; i <= 31; i++) { printf "%d:%d/%d (%d) ", i-1, min[i], max[i], count[i]; }; printf "[maxall:%d] ", maxall; #printf "Digit-Delta-Min: "; for (i = 1; i <= 31; i++) { printf "%2d", min[i]; if (i < 31) { printf ","; }; }; printf "|"; #printf "Digit-Delta-Max: "; for (i = 1; i <= 31; i++) { printf "%2d", max[i]; if (i < 31) { printf ","; }; }; printf "\n"; }' | tail -1 # digitdeltaamount echo echo "INFO : analyze file (digit delta amount): $f" >&2 cat $f | ./ipv6calc --print-iid-var | awk '{ h = $14; if (init != 1) { min = h; max = h; init = 1; }; if (h > max) { max = h; }; if (h < min) { min = h; }; print $1 " " h " min=" min " max=" max; }' | tail -1 done } case $1 in generate) generate exit 0 ;; analyze) analyze $2 $3 exit 0 ;; analyze-hexvar) analyze-hexvar $2 $3 $4 exit 0 ;; analyze-digitblock) analyze-digitblock $2 $3 $4 $5 exit 0 ;; analyze-digitamount) analyze-digitamount $2 $3 $4 $5 exit 0 ;; analyze-digitdelta) analyze-digitdelta $2 $3 $4 $5 exit 0 ;; *) echo "Usage: `basename $0` generate|analyze " exit 1 ;; esac ipv6calc-4.1.0/ipv6calc/test_scenarios.sh000077500000000000000000000636361444154247200203430ustar00rootroot00000000000000#!/usr/bin/env bash # # Project : ipv6calc # File : test_scenarios.sh # Copyright : 2001-2023 by Peter Bieringer # License : GPLv2 # # Test patterns for ipv6calc (functions only) # Test Scenarios for autodetection "good case" testscenarios_auto_good() { cat <0wv%Yp base85 # RFC 5952 2.x 2001:db8:0:0:1:0:0:1 ipv6addr 2001:0db8:0:0:1:0:0:1 ipv6addr 2001:db8::1:0:0:1 ipv6addr 2001:db8::0:1:0:0:1 ipv6addr 2001:0db8::1:0:0:1 ipv6addr 2001:db8:0:0:1::1 ipv6addr 2001:db8:0000:0:1::1 ipv6addr 2001:DB8:0:0:1::1 ipv6addr 2001:db8:aaaa:bbbb:cccc:dddd:eeee:0001 ipv6addr 2001:db8:aaaa:bbbb:cccc:dddd:eeee:001 ipv6addr 2001:db8:aaaa:bbbb:cccc:dddd:eeee:01 ipv6addr 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 ipv6addr 2001:db8:aaaa:bbbb:cccc:dddd::1 ipv6addr 2001:db8:aaaa:bbbb:cccc:dddd:0:1 ipv6addr 2001:db8:0:0:0::1 ipv6addr 2001:db8:0:0::1 ipv6addr 2001:db8:0::1 ipv6addr 2001:db8::1 ipv6addr 2001:db8::aaaa:0:0:1 ipv6addr 2001:db8:0:0:aaaa::1 ipv6addr 2001:db8:aaaa:bbbb:cccc:dddd:eeee:aaaa ipv6addr 2001:db8:aaaa:bbbb:cccc:dddd:eeee:AAAA ipv6addr 2001:db8:aaaa:bbbb:cccc:dddd:eeee:AaAa ipv6addr 64:ff9b::192.0.2.33 ipv6addr fe80::1%eth0 ipv6addr fe80--1.IPV6-LITERAL.NET ipv6literal 2001-db8-0-0-0-0-0-1.ipv6-literal.net ipv6literal 2001-0db8-0000-0000-0000-0000-0000-0001.ipv6-literal.net ipv6literal 2001-db8--1.ipv6-literal.net ipv6literal fe80--218-8bff-fe17-a226s4.ipv6-literal.net ipv6literal END } # Test Scenarios for reserved IPv4 addresses (RFC 5735) https://en.wikipedia.org/wiki/Reserved_IP_addresses testscenarios_ipv4_reserved() { cat < # # Test patterns for ipv6calc showinfo verbose=false grepopt="-q" while getopts "Vh\?" opt; do case $opt in V) verbose=true grepopt="" ;; *) echo "$0 [-V]" echo " -V verbose" exit 1 ;; esac done source ./test_scenarios.sh getexamples() { cat </dev/null retval=$? fi if [ $retval -ne 0 ]; then $verbose || echo echo "ERROR : $comment: $address" ./ipv6calc -q -i -m $address exit 1 fi $verbose && echo || true $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" # Test reserved IPv4 addresses test="test IPv4 reserved" echo "INFO : $test" testscenarios_ipv4_reserved | while read address rfc rest; do $verbose && echo "INFO : test $rfc: $address" case $rfc in RFC*) if ! ./ipv6calc -q -i -m $address | grep ^IPV4_REGISTRY | grep $grepopt "$rfc"; then $verbose || echo echo "ERROR: unexpected result for $address (should: $rfc)" ./ipv6calc -q -i -m $address | grep ^IPV4_REGISTRY exit 1 fi ;; noRFC) if ./ipv6calc -q -i -m $address | grep ^IPV4_REGISTRY | grep $grepopt "RFC"; then $verbose || echo echo "ERROR: unexpected result for $address (should not contain RFC token)" ./ipv6calc -q -i -m $address | grep ^IPV4_REGISTRY exit 1 fi ;; esac $verbose && echo || true $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" # Test reserved IPv6 addresses test="test IPv6 reserved" echo "INFO : $test" testscenarios_ipv6_reserved | while read address rfc rest; do $verbose && echo "INFO : test $rfc: $address" case $rfc in RFC*) if ! ./ipv6calc -q -i -m $address | grep ^IPV6_REGISTRY | grep $grepopt "$rfc"; then $verbose || echo echo "ERROR: unexpected result (should: $rfc)" ./ipv6calc -q -i -m $address | grep ^IPV6_REGISTRY exit 1 fi ;; noRFC) if ./ipv6calc -q -i -m $address | grep ^IPV6_REGISTRY | grep $grepopt "RFC"; then $verbose || echo echo "ERROR: unexpected result (should not contain RFC token)" ./ipv6calc -q -i -m $address | grep ^IPV6_REGISTRY exit 1 fi ;; esac $verbose && echo || true $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" # Test showinfo output ipv6calc_has_db_ieee=false if ./ipv6calc -v 2>&1 | grep -qw DB_IEEE; then ipv6calc_has_db_ieee=true fi ipv6calc_has_db_ipv4=false if ./ipv6calc -v 2>&1 | grep -qw DB_IPV4_REG; then ipv6calc_has_db_ipv4=true fi ipv6calc_has_db_ipv6=false if ./ipv6calc -v 2>&1 | grep -qw DB_IPV6_REG; then ipv6calc_has_db_ipv6=true fi test="test showinfo" echo "INFO : $test" testscenarios_showinfo | while read address output_options; do # separate options from output output=${output_options/\|*/} options=${output_options/*\|/} [ "$options" = "$output" ] && options="" if echo "$output" | grep -q "^OUI="; then if ! $ipv6calc_has_db_ieee; then $verbose || echo echo "NOTICE: test $address for $output SKIPPED (no DB_IEEE compiled in)" continue fi fi if echo "$output" | grep -q "^IPV4_REGISTRY="; then if ! $ipv6calc_has_db_ipv4; then $verbose || echo echo "NOTICE: test: $address for $output SKIPPED (no DB_IPV4_REG compiled in)" continue fi fi if echo "$output" | grep -q "^IPV6_REGISTRY="; then if ! $ipv6calc_has_db_ipv6; then $verbose || echo echo "NOTICE: test: $address for $output SKIPPED (no DB_IPV6_REG compiled in)" continue fi fi output_escaped="${output//./\\.}" output_escaped="${output_escaped//[/\\[}" output_escaped="${output_escaped//]/\\]}" $verbose && echo "INFO: test: $address for $output ($options) (escaped: $output_escaped)" if ! ./ipv6calc $options -q -i -m $address | grep $grepopt "^$output_escaped$"; then $verbose || echo echo "ERROR: unexpected result for $address ($output_escaped)" ./ipv6calc $options -q -i -m $address exit 1 fi $verbose && echo || true $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" if [ "$1" = "minimal" ]; then echo "NOTICE: GeoIP/IP2Location/DBIP tests skipped (option 'minimal' used)" exit 0 fi test="run GeoIP tests" if ./ipv6calc -q -v 2>&1 | grep -qw GeoIP; then echo "INFO : $test" getexamples_GeoIP | while read address; do $verbose && echo "INFO : run GeoIP showinfo on: $address" if ./ipv6calc -q -i -m $address | grep $grepopt ^GEOIP; then true else if echo "$address" | grep -q ":"; then if ./ipv6calc -q -v 2>&1 | grep -v -q "GeoIPv6"; then $verbose || echo echo "Expected result (missing GEOIP) because of missing IPv6 support in GeoIP)" true else $verbose || echo echo "Unexpected result (missing GEOIP): ./ipv6calc -q -i -m $address" ./ipv6calc -q -i -m $address exit 1 fi else $verbose || echo echo "Unexpected result (missing GEOIP): ./ipv6calc -q -i -m $address" ./ipv6calc -q -i -m $address exit 1 fi fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" test="run GeoIP showinfo tests" echo "INFO : $test" testscenarios_showinfo_geoip | while read address output requirement; do if echo "$output" | grep -q "^OUI="; then if ! $ipv6calc_has_db_ieee; then $verbose && echo "Test: $address for $output SKIPPED (no DB_IEEE compiled in)" continue fi fi if [ -n "$requirement" ]; then if ./ipv6calc -v 2>&1 | grep -q -w "$requirement"; then true else $verbose && echo "Test: $address for $output SKIPPED (no $requirement compiled in)" continue fi fi $verbose && echo "Test: $address for $output" output_escaped="${output//./\\.}" output_escaped="${output_escaped//[/\\[}" output_escaped="${output_escaped//]/\\]}" output_escaped="${output_escaped/GEOIP/GEOIP2?}" if ! ./ipv6calc -q -i -m $address | grep -E $grepopt "^$output_escaped$"; then $verbose || echo echo "ERROR: unexpected result for $address ($output_escaped)" ./ipv6calc -q -i -m $address exit 1 fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" else echo "NOTICE: $test SKIPPED" fi test="run IP2Location tests" if ./ipv6calc -q -v 2>&1 | grep -qw IP2Location; then echo "INFO : $test" getexamples_IP2Location | while read address; do $verbose && echo "Run IP2Location IPv4 showinfo on: $address" if ./ipv6calc -q -i -m $address | grep -Ev '=This (record|parameter) ' | grep $grepopt ^IP2LOCATION; then true else $verbose || echo echo "Unexpected result (missing IP2LOCATION): ./ipv6calc -q -i -m $address" ./ipv6calc -q -i -m $address exit 1 fi $verbose && echo $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" test="run IP2Location showinfo tests" echo "INFO : $test" testscenarios_showinfo_ip2location | while read address output; do if echo "$output" | grep -q "^OUI="; then if ! $ipv6calc_has_db_ieee; then $verbose && echo "Test: $address for $output SKIPPED (no DB_IEEE compiled in)" continue fi fi $verbose && echo "Test: $address for $output" output_escaped="${output//./\\.}" output_escaped="${output_escaped//[/\\[}" output_escaped="${output_escaped//]/\\]}" if ! ./ipv6calc -q -i -m $address | grep $grepopt "^$output_escaped$"; then echo "ERROR: unexpected result for address $address ($output_escaped)" ./ipv6calc -q -i -m $address exit 1 fi $verbose && echo $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" if ./ipv6calc -q -v 2>&1 | grep -qw IP2Location6; then test="run IP2Location IPv6 tests" echo "INFO : $test" getexamples_IP2Location6 | while read address; do $verbose && echo "Run IP2Location IPv6 showinfo on: $address" if ./ipv6calc -q -i -m $address | grep -Ev '=This (record|parameter) ' | grep $grepopt ^IP2LOCATION; then true else echo "Unexpected result (missing IP2LOCATION): ./ipv6calc -q -i -m $address" ./ipv6calc -q -i -m $address exit 1 fi $verbose && echo $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" test="run IP2Location IPv6 showinfo tests" echo "INFO : $test" testscenarios_showinfo_ip2location6 | while read address output; do if echo "$output" | grep -q "^OUI="; then if ! $ipv6calc_has_db_ieee; then echo "Test: $address for $output SKIPPED (no DB_IEEE compiled in)" continue fi fi $verbose && echo "Test: $address for $output" output_escaped="${output//./\\.}" output_escaped="${output_escaped//[/\\[}" output_escaped="${output_escaped//]/\\]}" if ! ./ipv6calc -q -i -m $address | grep $grepopt "^$output_escaped$"; then $verbose || echo echo "ERROR: unexpected result for $address ($output_escaped)" ./ipv6calc -q -i -m $address exit 1 fi $verbose && echo $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" fi else echo "NOTICE: $test SKIPPED" fi test="run db-ip.com IPv4 tests" if ./ipv6calc -q -v 2>&1 | grep -qw DBIPv4; then echo "INFO : $test" getexamples_DBIPv4 | while read address; do $verbose && echo "Run DBIP showinfo on: $address" if ./ipv6calc -q -i -m $address | grep -Ev '=This (record|parameter) ' | grep $grepopt ^DBIP; then true else $verbose || echo echo "Unexpected result (missing DBIP): ./ipv6calc -q -i -m $address" ./ipv6calc -q -i -m $address exit 1 fi $verbose && echo $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" test="run db-ip.com IPv4 showinfo tests" echo "INFO : $test" testscenarios_showinfo_DBIPv4 | while read address output; do if echo "$output" | grep -q "^OUI="; then if ! $ipv6calc_has_db_ieee; then $verbose && echo "Test: $address for $output SKIPPED (no DB_IEEE compiled in)" continue fi fi $verbose && echo "Test: $address for $output" output_escaped="${output//./\\.}" output_escaped="${output_escaped//[/\\[}" output_escaped="${output_escaped//]/\\]}" output_escaped="${output_escaped/DBIP/DBIP2?}" if ! ./ipv6calc -q -i -m $address | grep -E $grepopt "^$output_escaped$"; then echo "ERROR: unexpected result ($output_escaped)" ./ipv6calc -q -i -m $address exit 1 fi $verbose && echo $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" else echo "NOTICE: $test SKIPPED" fi test="run db-ip.com IPv6 tests" if ./ipv6calc -q -v 2>&1 | grep -qw DBIPv6; then echo "INFO : $test" getexamples_DBIPv6 | while read address; do $verbose && echo "Run IP2Location showinfo on: $address" if ./ipv6calc -q -i -m $address | grep -Ev '=This (record|parameter) ' | grep $grepopt ^DBIP; then true else $verbose || echo echo "Unexpected result (missing DBIP): ./ipv6calc -q -i -m $address" ./ipv6calc -q -i -m $address exit 1 fi $verbose && echo $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" test="run db-ip.com IPv6 showinfo tests" echo "INFO : $test" testscenarios_showinfo_DBIPv6 | while read address output; do if echo "$output" | grep -q "^OUI="; then if ! $ipv6calc_has_db_ieee; then echo "Test: $address for $output SKIPPED (no DB_IEEE compiled in)" continue fi fi $verbose && echo "Test: $address for $output" output_escaped="${output//./\\.}" output_escaped="${output_escaped//[/\\[}" output_escaped="${output_escaped//]/\\]}" output_escaped="${output_escaped/DBIP/DBIP2?}" if ! ./ipv6calc -q -i -m $address | grep -E $grepopt "^$output_escaped$"; then $verbose || echo echo "ERROR: unexpected result ($output_escaped)" ./ipv6calc -q -i -m $address exit 1 fi $verbose && echo $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" else echo "NOTICE: $test SKIPPED" fi test="run special anon tests" if ./ipv6calc -v 2>&1 | grep -qw "ANON_KEEP-TYPE-ASN-CC"; then echo "INFO : $test" testscenarios_showinfo_anonymized_info | while IFS=";" read input options token result; do $verbose && echo -n "INFO : test: $options $input for $result: " output="`./ipv6calc -q $options -m -i $input`" case $token in key-word|key-no-word) key="${result/=*/}" word="${result/*=/}" ;; esac case $token in match) if echo "$output" | grep -q "^$result$"; then $verbose && echo "OK" else echo " ERROR" echo "$output" exit 1 fi ;; key-word) if echo "$output" | grep "^$key=" | grep $grepopt -w "$word"; then $verbose && echo " OK" else exit 1 fi ;; key-no-word) if ! echo "$output" | grep "^$key=" | grep $grepopt -w "$word"; then $verbose && echo " OK" else exit 1 fi ;; esac $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" else echo "NOTICE: $test SKIPPED" fi ipv6calc-4.1.0/ipv6calcweb/000077500000000000000000000000001444154247200154375ustar00rootroot00000000000000ipv6calc-4.1.0/ipv6calcweb/Makefile.in000066400000000000000000000034021444154247200175030ustar00rootroot00000000000000# Project : ipv6calc/ipv6calcweb # File : Makefile # Version : $Id: d6003db21f5b7a224abe64cc453e59fae6fd7f9f $ # Copyright : 2002-2022 by Peter Bieringer # # Information: # Makefile for ipv6calcweb # all: ipv6calcweb ipv6calcweb: ipv6calcweb.cgi.in ./create_ipv6calcweb-cgi.sh update: install: distclean: ${MAKE} clean autoclean: ${MAKE} distclean clean: rm -f ipv6calcweb.cgi test: ${MAKE} ipv6calcweb # Test script (no sleeps and no Anti-DoS) LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ HTTP_IPV6CALCWEB_DEBUG="0x5000" ./ipv6calcweb.cgi >/dev/null # Pseudo random selected LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_ipv6calcweb.sh 2001:200:1:ea::1 || exit 1 # www.hp.com LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_ipv6calcweb.sh 15.200.30.23 || exit 1 # Pseudo random LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_ipv6calcweb.sh 3ffe:831f:ce49:7601:8000:efff:af4a:86BF || exit 1 # RFC LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_ipv6calcweb.sh :: || exit 1 # Form mode LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_ipv6calcweb_form.sh || exit 1 test-minimal: ${MAKE} test test-ldlibpath: ${MAKE} ipv6calcweb # Pseudo random selected LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_ipv6calcweb.sh 2001:200:1:ea::1 || exit 1 # www.hp.com LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_ipv6calcweb.sh 15.200.30.23 || exit 1 # Pseudo random LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_ipv6calcweb.sh 3ffe:831f:ce49:7601:8000:efff:af4a:86BF || exit 1 # RFC LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_ipv6calcweb.sh :: || exit 1 # Form mode LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_ipv6calcweb_form.sh || exit 1 ipv6calc-4.1.0/ipv6calcweb/README000066400000000000000000000010441444154247200163160ustar00rootroot00000000000000SELinux issues -------------- In case of SELinux is enabled and geolocation databases are stored in /var potentially the access is blocked. -> see SELinux policy extension (including instructions) ipv6calcweb-databases-in-var.te EXAMPLE SITES ------------- Known sites using this wrapper script [last check on]: http://www.ipv6.bieringer.de/ [2019-01-30] http://ip.bieringer.de/ [2019-01-30] http://www.nazgul.eu/cgi-bin/lookup.cgi [2019-01-30] Please report additional URLs, if you find one $Id: a2f631d1856881d26cf4e52677e783c3c522a51b $ ipv6calc-4.1.0/ipv6calcweb/USAGE000066400000000000000000000004321444154247200162250ustar00rootroot00000000000000$Id: 5d07e4869a5e65ea990f39c2e6db01b38937b9c0 $ File: ipv6calcweb/ipv6calcweb.cgi 1) Enable SSI on your web server 2) Copy file to /cgi-bin directory 3) Adjust file settings 4) Include the CGI script like in a SHTML page. ipv6calc-4.1.0/ipv6calcweb/create_ipv6calcweb-cgi.sh000077500000000000000000000024551444154247200222740ustar00rootroot00000000000000#!/usr/bin/env bash # # Project : ipv6calc/ipv6calcweb # File : create_ipv6calcweb.sh # Version : $Id: f7bdd653f79d4ba635443d30bb3e946642f3689b $ # Copyright : 2013-2021 by Peter Bieringer # # Information: # create ipv6calcweb.cgi from ipv6calcweb.cgi.in # # check if [ ! -f ../config.h ]; then echo "ERROR : missing header file: ../config.h" exit 1 fi # get placeholders v="`cat ../config.h | grep -w PACKAGE_VERSION | awk '{ print $3 }' | sed 's/"//g'`" c="`cat ../config.h | grep -w COPYRIGHT_YEAR | awk '{ print $3 }' | sed 's/"//g'`" if [ -z "$v" ]; then echo "ERROR : can't retrieve version from config.h" exit 1 fi if [ -z "$c" ]; then echo "ERROR : can't retrieve copyright year from config.h" exit 1 fi cp ipv6calcweb.cgi.in ipv6calcweb.cgi || exit 1 # replace placeholders perl -pi -e "s/\@PACKAGE_VERSION\@/$v/" ipv6calcweb.cgi || exit 1 perl -pi -e "s/\@COPYRIGHT_YEAR\@/$c/" ipv6calcweb.cgi || exit 1 case "$OSTYPE" in freebsd*|openbsd*) # *BSD has somehow issue with -T, so remove it perl -pi -e "s/perl -w -T/perl -w/" ipv6calcweb.cgi || exit 1 ;; esac if [ ! -x ipv6calcweb.cgi ]; then chmod u+x ipv6calcweb.cgi fi if [ -f ipv6calcweb.cgi ]; then touch -r ipv6calcweb.cgi.in ipv6calcweb.cgi fi echo "INFO : successfully created: ipv6calcweb.cgi" ipv6calc-4.1.0/ipv6calcweb/fix-cgi-in.sh000077500000000000000000000003461444154247200177330ustar00rootroot00000000000000#!/bin/bash perl -pi -e 's/^(my \$program_version).*$/\1 = "\@PACKAGE_VERSION\@";/' ipv6calcweb.cgi.in perl -pi -e 's/^(my \$program_copyright).*$/\1 = "(P) & (C) 2002-\@COPYRIGHT_YEAR\@ by Peter Bieringer";/' ipv6calcweb.cgi.in ipv6calc-4.1.0/ipv6calcweb/ipv6calcweb-databases-in-var.te000066400000000000000000000007731444154247200233240ustar00rootroot00000000000000# Activate SELinux extension for ipv6calcweb.cgi # # checkmodule -M -m -o ipv6calcweb-database-in-var.mod ipv6calcweb-database-in-var.te # semodule_package -o ipv6calcweb-database-in-var.pp -m ipv6calcweb-database-in-var.mod # semodule -i ipv6calcweb-database-in-var.pp module ipv6calcweb-database-in-var 1.0; require { type var_t; type httpd_sys_script_t; class file { getattr read open }; } #============= httpd_sys_script_t ============== allow httpd_sys_script_t var_t:file { getattr read open }; ipv6calc-4.1.0/ipv6calcweb/ipv6calcweb.cgi.in000077500000000000000000002427731444154247200207570ustar00rootroot00000000000000#!/usr/bin/perl -w -T # # Project : ipv6calc/ip6calcweb # File : ipv6calcweb.cgi # Version : $Id: 1dcada8d6d0cdf3280d11aa2af8d78ce164aec78 $ # Copyright : 2002-2021 by Peter Bieringer # License : GPL, but copyright always has to be displayed in output # # Simple Perl web interface and security wrapper # It's too dangerous to call the binary 'ipv6calc' directly... # # Note: potentially SELinux will block access to databases and block also maximum process check # # Todo: more functions by query string... ### Uses environment variables: ## Created by http server before invoking CGI: # REMOTE_ADDR : remote client address # REMOTE_HOST : remote client name (DNS resolved) # HTTP_USER_AGENT: user agent string # SERVER_ADDR : local server address # SERVER_NAME : local server name (by http server config) # SERVER_PROTOCOL: check for INCLUDED (called by SSI) # HTTP_X_FORWARDED_FOR: added by passing proxies (if not disabled on proxy) # HTTP_VIA : added by passing proxies (if not disabled on proxy) # QUERY_STRING : for language setting # Currently supported: # Always: # "lang=$lang" with $lang in @supported_languages # "format=$format" with $format in @supported_formats # Mode=mixed/form # "input=$input" # "token=$token" ## program controls by httpd's setenv # HTTP_IPV6CALCWEB_MODE : info (default), form (display a form for user input), mixed (both) # HTTP_IPV6CALCWEB_INFO_SERVER : 0 (default), 1 (show information about server) # HTTP_IPV6CALCWEB_DEBUG : 0 (default) # HTTP_IPV6CALCWEB_BIN_IPV6CALC : path to ipv6calc binary (optional) # HTTP_IPV6CALCWEB_LIB_IPV6CALC : path to ipv6calc library (optional) # HTTP_IPV6CALCWEB_DEBUG_IPV6CALC : debug value for ipv6calc binary (optional) # # HTTP_IPV6CALCWEB_DB_MMDB_LIB : MaxMindDB library name (optional in dyn-load support) # HTTP_IPV6CALCWEB_DB_IP2LOCATION_DIR : IP2Location database directory (optional) # HTTP_IPV6CALCWEB_DB_IP2LOCATION_LIB : IP2Location library name (optional in dyn-load support) # HTTP_IPV6CALCWEB_DB_GEOIP_DIR : GeoIP/GeoIP2 database directory (optional) # HTTP_IPV6CALCWEB_DB_DBIP_DIR : db-ip.com database directory (optional) # HTTP_IPV6CALCWEB_DB_EXTERNAL_DIR : external database directory (optional) # HTTP_IPV6CALCWEB_OUTPUT_FORMAT : html (default if SERVER_PROTOCOL=INCLUDED), htmlfull (default), text, textkeyvalue # HTTP_IPV6CALCWEB_OUTPUT_FORMAT_HTML_DB: sequential (default), subcolumns # # HTTP_IPV6CALCWEB_ANTIDOS_LOAD1 : System load 1 limit to trigger DoS protection (default below) # HTTP_IPV6CALCWEB_ANTIDOS_LOAD5 : System load 5 limit to trigger DoS protection (default below) # HTTP_IPV6CALCWEB_ANTIDOS_LOAD15 : System load 15 limit to trigger DoS protection (default below) # HTTP_IPV6CALCWEB_ANTIDOS_PROCMAX : Max CGI processes to trigger DoS protection (default 0), keep 0 in case of SELinux is active to avoid many entries in audit log # # HTTP_IPV6CALCWEB_DB_GEOIP2 : 1 (enable, default), 0 (disable) # HTTP_IPV6CALCWEB_DB_DBIP2 : 1 (enable, default), 0 (disable) # HTTP_IPV6CALCWEB_DB_IP2LOCATION : 1 (enable, default), 0 (disable) # HTTP_IPV6CALCWEB_DB_EXTERNAL : 1 (enable) , 1 (disable, default) # # HTTP_IPV6CALCWEB_USERNAME_GEONAMESORG: user name for geonames.org API (default: "demo") ## special output format "textkeyvalue" # INFO__OUTPUTVERSION="1" : current output format version # (more to be documented) ## general use strict; use URI::Escape; use HTML::Entities; use POSIX; use warnings; ## Defines # Program information my $program_name = "ipv6calcweb.cgi"; my $program_copyright = "(P) & (C) 2002-@COPYRIGHT_YEAR@ by Peter Bieringer"; my $program_version = "@PACKAGE_VERSION@"; # required output version of ipv6calc (introduced in 0.60.0) my $program_required_ipv6calc_output_version = 2; ## Prototyping sub logging($$); ## defaults for Anti-DoS (generic) (load/proc is normalized by number of CPU cores below) my $load1_max = 2; my $load5_max = 1.5; my $load15_max = 1; my $proc_max = 0; my $proc_pattern = "ipv6calcweb"; ## defines for Anti-DoS (form or mixed mode only) my $tokenhash; my $tokenhash_verify; my $tokentime; my $tokenhash_found = 0; my $tokentime_found = 0; my $salt; my $time_range_valid = 300; # seconds my $time_range_min = 5; # seconds my $mask_remote_address = 0; # disabled (0), enabled (1) my $returncode = 0; my $error; my $error_flag = 0; ## defines for layout my $mode_db_entries_in_subcolumns = 0; my $db_columns = 0; my $font_size_1 = "85%"; my $font_size_2 = "70%"; ## database enabled toggles and defaults my %db_enabled; $db_enabled{'GEOIP2'} = 1; $db_enabled{'IP2LOCATION'} = 1; $db_enabled{'DBIP2'} = 1; $db_enabled{'EXTERNAL'} = 0; ## Debug value my $debug = 0; #$debug |= 0x02; #$debug |= 0x10; #$debug = 0xffff; #$debug = 0x01; # debug | 0x0001: print ipv6calc command # debug | 0x0002: print result of find_file to stderr # debug | 0x0004: print result of find_dir to stderr # debug | 0x0008: print environment handling to stderr # debug | 0x0010: print raw ipv6calc output to stderr # debug | 0x0020: db info parser # debug | 0x0040: print form input/token to stderr # debug | 0x0080: print environment to stderr # debug | 0x0100: print Anti-DoS token infos to stderr # debug | 0x1000: skip Anti-DoS sleeps # debug | 0x2000: print lat/long URL infos to stderr # debug | 0x4000: skip system health checks (load) # debug | 0x8000: print feature token hash if ( defined $ENV{'HTTP_IPV6CALCWEB_DEBUG'} ) { if ($ENV{'HTTP_IPV6CALCWEB_DEBUG'} =~ /^[0-9]+$/) { $debug = $ENV{'HTTP_IPV6CALCWEB_DEBUG'}; } elsif ($ENV{'HTTP_IPV6CALCWEB_DEBUG'} =~ /^0x[0-9a-f]+$/oi) { $debug = hex($ENV{'HTTP_IPV6CALCWEB_DEBUG'}); }; }; ## debug output if ($debug & 0x80) { foreach my $key (sort keys %ENV) { logging("DEBUG", "ENV: " . $key . "=" . $ENV{$key}); }; } ## Program mode my $mode = "info"; # default if ( defined $ENV{'HTTP_IPV6CALCWEB_MODE'} ) { if ($ENV{'HTTP_IPV6CALCWEB_MODE'} eq "form") { $mode = "form"; } elsif ($ENV{'HTTP_IPV6CALCWEB_MODE'} eq "mixed") { $mode = "mixed"; }; }; if ($mode eq "form" || $mode eq "mixed") { use Digest::SHA1; use Digest::MD5; }; # List of default location of files (first existing one would be choosen) my @list_bin_ipv6calc = ( "../ipv6calc/ipv6calc", "/usr/bin/ipv6calc", "/bin/ipv6calc", ); my @list_bin_ps = ( "/usr/bin/ps", "/bin/ps", ); my @list_database_ip2location_dir = ( "/var/local/share/IP2Location", "/usr/share/IP2Location", ); my @list_database_geoip_dir = ( "/var/local/share/GeoIP", "/usr/share/GeoIP", ); my @list_database_dbip_dir = ( "/var/local/share/DBIP", "/usr/share/DBIP", ); my @list_database_external_dir = ( "/var/local/share/ipv6calc/db", "/usr/share/ipv6calc/db", ); sub find_file(@) { foreach my $file (@_) { if (-e $file) { logging("DEBUG", "find_file selected: $file") if ($debug & 0x02); return ($file); }; }; return undef; }; sub find_dir(@) { foreach my $dir (@_) { if (-d $dir) { logging("DEBUG", "find_dir selected: $dir") if ($debug & 0x04); return ($dir); }; }; return undef; }; # URLs my %urls = ( "IP2LOCATION" => "https://www.ip2location.com", "GEOIP2" => "https://www.maxmind.com", "DBIP2" => "https://www.db-ip.com", "GEONAMES" => "https://www.geonames.org", "IPV6CALC" => "https://www.deepspace6.net/projects/ipv6calc.html", ); # Base URL for RFCs my $url_rfc = "https://tools.ietf.org/html/"; # Base URL for LISP my $url_lisp = "https://lisp4.net.cba.upc.edu/lisp-site/"; # Base URL for GeoName service my $username_geonamesorg = "demo"; my $url_geoname_by_id = "https://secure.geonames.org/get?geonameId=#GEONAME_ID#&username=#USERNAME#"; my $api_used_geonamesorg = 0; # Base URL for Location Service my $url_openstreetmap_by_lat_lon = "https://www.openstreetmap.org/?mlat=#LATITUDE#&mlon=#LONGITUDE#&zoom=5"; # Base URL for Weather Station Service my $url_weather_com_by_station = "https://weather.com/weather/tenday/l/#WEATHERSTATIONCODE#:1:GM"; # Whois server urls my %url_whoisservers = ( 'RIPENCC' => { 'ipv4' => "https://www.ripe.net/perl/whois?searchtext=", 'ipv6' => "https://www.ripe.net/perl/whois?searchtext=", }, 'ARIN' => { 'ipv4' => "https://whois.arin.net/rest/ip/", 'ipv6' => "https://whois.arin.net/rest/ip/", }, 'APNIC' => { 'ipv4' => "https://wq.apnic.net/static/search.html?query=", 'ipv6' => "https://wq.apnic.net/static/search.html?query=", }, 'LACNIC' => { 'ipv4' => "https://lacnic.net/cgi-bin/lacnic/whois?query=", 'ipv6' => "https://lacnic.net/cgi-bin/lacnic/whois?query=", }, 'AFRINIC' => { # currently only supporting POST, e.g. curl --data "key=" "https://www.afrinic.net/whois-web/public/?" 'ipv4' => "https://www.afrinic.net/whois-web/public/?key=", 'ipv6' => "https://www.afrinic.net/whois-web/public/?key=", }, 'IANA' => { 'ipv4' => "", 'ipv6' => "", }, 'unknown' => { 'ipv4' => "", 'ipv6' => "", } ); #my $lang_default = "de"; my $lang_default = "en"; my $lang = $lang_default; ## Output format: text, html, htmlfull #my $outputformat = "text"; #my $outputformat = "html"; my $outputformat = "htmlfull"; # switched to "html", if called by SSI ## Output format for databases: sequential, subcolumns my $outputformat_html_db = "sequential"; # default ## Output type # full = with description # simple = without description my $outputtype = "full"; #my $outputtype = "simple"; ## Output format "textkeyvalue" version my $outputversion_textkeyvalue = "1"; ## Select output # skip server = 1 my $skip_server = 1; if ( defined $ENV{'HTTP_IPV6CALCWEB_INFO_SERVER'} ) { if ($ENV{'HTTP_IPV6CALCWEB_INFO_SERVER'} eq "1") { $skip_server = 0; }; }; ## Text # Language my @supported_languages = ( "de", "en"); # Format my @supported_formats = ( "text", "html", "textkeyvalue"); # Tokens to be formatted using my @format_tt = ( "EUI48", "EUI64", "IPV6", "IPV4", "SLA", "IID", "IPV4_6TO4", "IPV4_ANON", "IPV6_ANON", "HTTP_X_FORWARDED_FOR" ); my %text_geodb = ( 'IP2LOCATION' => 'IP2Location', 'GEOIP2' => 'GeoIP(MaxMindDB)', 'DBIP2' => 'db-ip.com(MaxMindDB)' ); my %text_extra = ( '_REGISTRY' => { 'de' => "Verweis auf REGISTRY", 'en' => "link to REGISTRY", }, '_GEONAME_ID' => { 'de' => "Verweis auf geonames.org", 'en' => "link to geonames.org", }, '_GEONAME_ID_COUNTRY' => { 'de' => "Verweis auf geonames.org", 'en' => "link to geonames.org", }, '_GEONAME_ID_CONTINENT' => { 'de' => "Verweis auf geonames.org", 'en' => "link to geonames.org", }, '_GEONAME_ID_REGION' => { 'de' => "Verweis auf geonames.org", 'en' => "link to geonames.org", }, '_GEONAME_ID_DISTRICT' => { 'de' => "Verweis auf geonames.org", 'en' => "link to geonames.org", }, '_LATITUDE' => { 'de' => "Verweis auf openstreetmap.org", 'en' => "link to openstreetmap.org", }, '_LONGITUDE' => { 'de' => "Verweis auf openstreetmap.org", 'en' => "link to openstreetmap.org", }, '_WEATHERSTATIONCODE' => { 'de' => "Verweis auf weather.com", 'en' => "link to weather.com", } ); my %text = ( 'EUI48' => { 'de' => "EUI-48 Identifizierungsnummer (MAC Adresse)", 'en' => "EUI-48 identifier (MAC address)", }, 'EUI48_SCOPE' => { 'de' => "EUI-48 Art", 'en' => "EUI-48 scope", }, 'EUI48_TYPE' => { 'de' => "EUI-48 Adresstyp", 'en' => "EUI-48 address type", }, 'EUI64' => { 'de' => "EUI-64 Identifizierungsnummer", 'en' => "EUI-64 identifier", }, 'EUI64_SCOPE' => { 'de' => "EUI-64 Art", 'en' => "EUI-64 scope", }, 'IPV6' => { 'de' => "IPv6 Adresse", 'en' => "IPv6 address", }, 'IPV6_ANON' => { 'de' => "Anonymisierte IPv6 Adresse", 'en' => "Anonymized IPv6 address", }, 'IPV6_COUNTRYCODE' => { 'de' => "Ländercode der IPv6 Adresse", 'en' => "Country Code of IPv6 address", }, 'IPV6_COUNTRYCODE_SOURCE' => { 'de' => "Quelle des Ländercode der IPv6 Adresse", 'en' => "Source of Country Code of IPv6 address", }, 'IPV6_AS_NUM' => { 'de' => "Autonomous System Nummer der IPv6 Adresse", 'en' => "Autonomous System Number of IPv6 address", }, 'IPV6_AS_TEXT' => { 'de' => "Autonomous System der IPv6 Adresse", 'en' => "Autonomous System of IPv6 address", }, 'IPV6_AS_SOURCE' => { 'de' => "Quelle der Autonomous System der IPv6 Adresse", 'en' => "Source of Autonomous System of IPv6 address", }, 'IPV6_AS_NUM_SOURCE' => { 'de' => "Quelle der Autonomous System Nummer der IPv6 Adresse", 'en' => "Source of Autonomous System Number of IPv6 address", }, 'IPV4' => { 'de' => "IPv4 Adresse", 'en' => "IPv4 address", }, 'IPV4_ANON' => { 'de' => "Anonymisierte IPv4 Adresse", 'en' => "Anonymized IPv4 address", }, 'IPV4_REGISTRY' => { 'de' => "Registry der IPv4 Adresse", 'en' => "Registry of IPv4 address", }, 'IPV6_REGISTRY' => { 'de' => "Registry der IPv6 Adresse", 'en' => "Registry of IPv6 address", }, 'IPV4_SOURCE' => { 'de' => "Quelle der IPv4 Adresse", 'en' => "Source of IPv4 address", }, 'IPV4_COUNTRYCODE' => { 'de' => "Ländercode der IPv4 Adresse", 'en' => "Country Code of IPv4 address", }, 'IPV4_COUNTRYCODE_SOURCE' => { 'de' => "Quelle des Ländercode der IPv4 Adresse", 'en' => "Source of Country Code of IPv4 address", }, 'IPV4_AS_NUM' => { 'de' => "Autonomous System Nummer der IPv4 Adresse", 'en' => "Autonomous System Number of IPv4 address", }, 'IPV4_AS_TEXT' => { 'de' => "Autonomous System der IPv4 Adresse", 'en' => "Autonomous System of IPv4 address", }, 'IPV4_AS_SOURCE' => { 'de' => "Quelle der Autonomous System der IPv4 Adresse", 'en' => "Source of Autonomous System of IPv4 address", }, 'TEREDO_PORT_CLIENT' => { 'de' => "UDP-Port des Teredo Clients (nach NAT)", 'en' => "UDP port of Teredo client (outside NAT)", }, 'TEREDO_IPV4_SERVER' => { 'de' => "IPv4-Adresse des Teredo Servers", 'en' => "IPv4 address of Teredo Server", }, 'OUI' => { 'de' => "Hersteller-Identifizierung der Netzwerkarte", 'en' => "Vendor identification of network interface card", }, 'INPUT' => { 'de' => "Ihre Eingabe", 'en' => "Your input", }, 'REMOTE' => { 'de' => "Ihr Client", 'en' => "Your client", }, 'SERVER' => { 'de' => "Dieser Server", 'en' => "This server", }, 'SLA' => { 'de' => "Subnetz ID", 'en' => "Subnet ID", }, 'IIDSCOPE' => { 'de' => "Art der Interface-Identifierungsnummer", 'en' => "Scope of interface identifier", }, 'IID' => { 'de' => "Interface-Identifierungsnummer", 'en' => "Interface identifier", }, 'TYPE' => { 'de' => "Adresstyp", 'en' => "Address type", }, 'IPV6_TYPE' => { 'de' => "IPv6 Adresstyp", 'en' => "IPv6 Address type", }, 'IPV4_TYPE' => { 'de' => "IPv4 Adresstyp", 'en' => "IPv4 Address type", }, 'NAME' => { 'de' => "Reverse DNS Aufloesung", 'en' => "Reverse DNS resolution", }, 'RESULT' => { 'de' => "Ergebnis", 'en' => "Result", }, 'IPV6_PREFIXLENGTH' => { 'de' => "IPv6 Praefixlaenge", 'en' => "IPv6 prefix length", }, 'IPV4_PREFIXLENGTH' => { 'de' => "IPv4 Praefixlaenge", 'en' => "IPv4 prefix length", }, 'title' => { 'de' => "Adresstyp Information", 'en' => "Addresstype information", }, 'nodata' => { 'de' => "Keine Daten verfuegbar", 'en' => "No data availabe", }, 'generated' => { 'de' => "Generiert durch", 'en' => "Generated by", }, 'at' => { 'de' => "um", 'en' => "at", }, 'powered' => { 'de' => "Unterstuetzt durch", 'en' => "Powered by", }, 'credits' => { 'de' => "Danksagung an", 'en' => "Credits to", }, 'entries' => { 'de' => "Eintraege", 'en' => "entries", }, 'database' => { 'de' => "Datenbank", 'en' => "database", }, 'version' => { 'de' => "Version", 'en' => "version", }, 'clear' => { 'de' => "loeschen", 'en' => "clear", }, 'cancel' => { 'de' => "abbrechen", 'en' => "cancel", }, 'Address' => { 'de' => "Adresse", 'en' => "Address", }, 'send' => { 'de' => "absenden", 'en' => "send", }, 'HTTP_USER_AGENT' => { 'de' => "Browseridentifikation", 'en' => "User agent identification", }, 'HTTP_X_FORWARDED_FOR' => { 'de' => "Client hinter Proxy", 'en' => "Client behind proxy", }, 'HTTP_VIA' => { 'de' => "Passierender Proxy", 'en' => "Passing proxy", }, 'PROXY' => { 'de' => "Passierender Proxy", 'en' => "Passing proxy", }, 'PROXY_INFO' => { 'de' => "Proxy Information", 'en' => "Proxy Information", }, 'EXTERNAL_COUNTRY_SHORT' => { 'de' => "External DB Laenderkennung", 'en' => "External DB country code", }, 'EXTERNAL_DATABASE_INFO' => { 'de' => "External Datenbank-Information", 'en' => "External database information", }, 'BUILTIN_DATABASE_INFO' => { 'de' => "Eingebaute Datenbank-Information", 'en' => "BuiltIn database information", }, 'SETTINGS_ANON' => { 'de' => "Einstellungen der Anonymisierung", 'en' => "Anoymizer settings", }, '_COUNTRY_SHORT' => { 'de' => "Laenderkennung", 'en' => "Country Code", }, '_COUNTRY_LONG' => { 'de' => "Land", 'en' => "Country", }, '_CONTINENT_LONG' => { 'de' => "Kontinent", 'en' => "Continent", }, '_CONTINENT_SHORT' => { 'de' => "Kontinentkennung", 'en' => "Continent Code", }, '_REGION' => { 'de' => "Region", 'en' => "Region", }, '_RADIUS' => { 'de' => "Radius", 'en' => "Radius", }, '_DISTRICT' => { 'de' => "Bezirk", 'en' => "District", }, '_CITY' => { 'de' => "Stadt", 'en' => "City", }, '_ISP' => { 'de' => "Internet Service Provider", 'en' => "Internet Service Provider", }, '_LATITUDE' => { 'de' => "IP2Location Breitengrad", 'en' => "Latitude", }, '_LONGITUDE' => { 'de' => "Laengengrad", 'en' => "Longitude", }, '_DOMAIN' => { 'de' => "Domain", 'en' => "Domain", }, '_ZIPCODE' => { 'de' => "Postleitzahl", 'en' => "ZIP code", }, '_GEONAME_ID' => { 'de' => "GeoName ID des Ortes", 'en' => "GeoName ID of Location", }, '_GEONAME_ID_COUNTRY' => { 'de' => "GeoName ID des Landes", 'en' => "GeoName ID of Country", }, '_GEONAME_ID_CONTINENT' => { 'de' => "GeoName ID des Kontinents", 'en' => "GeoName ID of Continent", }, '_GEONAME_ID_REGION' => { 'de' => "GeoName ID der Region", 'en' => "GeoName ID of Region", }, '_GEONAME_ID_DISTRICT' => { 'de' => "GeoName ID des Bezirks", 'en' => "GeoName ID of District", }, 'IPV6_GEONAME_ID' => { 'de' => "GeoName ID des Ortes der IPv6 Adresse", 'en' => "GeoName ID of Location of IPv6 Address", }, 'IPV4_GEONAME_ID' => { 'de' => "GeoName ID des Ortes der IPv4 Adresse", 'en' => "GeoName ID of Location of IPv4 Address", }, 'IPV6_GEONAME_ID_TYPE' => { 'de' => "Typ der GeoName ID der IPv6 Adresse", 'en' => "Type of GeoName ID of IPv6 Address", }, 'IPV4_GEONAME_ID_TYPE' => { 'de' => "Typ der GeoName ID der IPv4 Adresse", 'en' => "Type of GeoName ID of IPv4 Address", }, 'IPV6_GEONAME_ID_SOURCE' => { 'de' => "Quelle der GeoName ID der IPv6 Adresse", 'en' => "Source of GeoName ID of IPv6 Address", }, 'IPV4_GEONAME_ID_SOURCE' => { 'de' => "Quelle der GeoName ID der IPv4 Adresse", 'en' => "Source of GeoName ID of IPv4 Address", }, '_ORGNAME' => { 'de' => "Autonomous System Organisation", 'en' => "Autonomous System Organization", }, '_AS_ORGNAME' => { 'de' => "Autonomous System Organisation", 'en' => "Autonomous System Organization", }, '_AS_NUM' => { 'de' => "Autonomous System Nummer", 'en' => "Autonomous System Number", }, '_AS_TEXT' => { 'de' => "Autonomous System", 'en' => "Autonomous System", }, '_CONTINENTCODE' => { 'de' => "Kontinent-Code", 'en' => "Continent Code", }, '_AREACODE' => { 'de' => "Area-Code", 'en' => "Area Code", }, '_DMACODE' => { 'de' => "DMA-Code", 'en' => "DMA Code", }, '_TIMEZONE' => { 'de' => "Zeitzone", 'en' => "Time Zone", }, '_TIMEZONE_NAME' => { 'de' => "Zeitzonen Name", 'en' => "Time Zone Name", }, '_NETSPEED' => { 'de' => "Netzgeschwindigkeit", 'en' => "Net Speed", }, '_WEATHERSTATIONNAME' => { 'de' => "Name der Wetterstation", 'en' => "Weather Station Name", }, '_WEATHERSTATIONCODE' => { 'de' => "Code der Wetterstation", 'en' => "Weather Station Code", }, '_IDDCODE' => { 'de' => "Landesvorwahl", 'en' => "Internation Direct Dialing", }, '_ELEVATION' => { 'de' => "Hoehe ueber Meeresspiegel [m]", 'en' => "High above Sealevel [m]", }, '_USAGETYPE' => { 'de' => "Art der Benutzung", 'en' => "Usage Type Classification", }, '_MOBILEBRAND' => { 'de' => "Mobile Brand", 'en' => "Mobile Brand", }, '_MNC' => { 'de' => "Mobile Network Code", 'en' => "Mobile Network Code", }, '_MCC' => { 'de' => "Mobile Country Code", 'en' => "Mobile Country Code", }, ); # Location of binary my $bin_ipv6calc; if (defined $ENV{'HTTP_IPV6CALCWEB_BIN_IPV6CALC'}) { if ($ENV{'HTTP_IPV6CALCWEB_BIN_IPV6CALC'} =~ /^([[:alnum:]\.\-\/]+)$/o) { $bin_ipv6calc = $1; } else { logging("ERROR", "HTTP_IPV6CALCWEB_BIN_IPV6CALC found, but not containing proper chars"); &print_error(); }; } else { $bin_ipv6calc = find_file(@list_bin_ipv6calc); }; # Location of library my $lib_ipv6calc; if (defined $ENV{'HTTP_IPV6CALCWEB_LIB_IPV6CALC'}) { if ($ENV{'HTTP_IPV6CALCWEB_LIB_IPV6CALC'} =~ /^([[:alnum:]\.\-\/]+)$/o) { $lib_ipv6calc = $1; } else { logging("ERROR", "HTTP_IPV6CALCWEB_LIB_IPV6CALC found, but not containing proper chars"); &print_error(); }; }; my $bin_ps; $bin_ps = find_file(@list_bin_ps); my $options_ipv6calc = "-m -i -q"; ## add optional ipv6calc options if (defined $ENV{'HTTP_IPV6CALCWEB_DEBUG_IPV6CALC'}) { if ($ENV{'HTTP_IPV6CALCWEB_DEBUG_IPV6CALC'} =~ /^(0x[[:digit:]abcdef]+|-?[[:digit:]]+)$/oi) { $options_ipv6calc .= " -d " . $1; } else { logging("ERROR", "HTTP_IPV6CALCWEB_DEBUG_IPV6CALC found, but not containing proper value: " . $ENV{'HTTP_IPV6CALCWEB_DEBUG_IPV6CALC'}); &print_error(); }; }; ## simple DoS protection if (defined $ENV{'HTTP_IPV6CALCWEB_ANTIDOS_LOAD1'}) { if ($ENV{'HTTP_IPV6CALCWEB_ANTIDOS_LOAD1'} =~ /^(-?[[:digit:].]+)$/o) { $load1_max = $1; # overwrite default from above } else { logging("ERROR", "HTTP_IPV6CALCWEB_ANTIDOS_LOAD1 found, but not containing proper number"); &print_error(); }; }; if (defined $ENV{'HTTP_IPV6CALCWEB_ANTIDOS_LOAD5'}) { if ($ENV{'HTTP_IPV6CALCWEB_ANTIDOS_LOAD5'} =~ /^(-?[[:digit:].]+)$/o) { $load5_max = $1; # overwrite default from above } else { logging("ERROR", "HTTP_IPV6CALCWEB_ANTIDOS_LOAD5 found, but not containing proper number"); &print_error(); }; }; if (defined $ENV{'HTTP_IPV6CALCWEB_ANTIDOS_LOAD15'}) { if ($ENV{'HTTP_IPV6CALCWEB_ANTIDOS_LOAD15'} =~ /^(-?[[:digit:].]+)$/o) { $load15_max = $1; # overwrite default from above } else { logging("ERROR", "HTTP_IPV6CALCWEB_ANTIDOS_LOAD15 found, but not containing proper number"); &print_error(); }; }; if (defined $ENV{'HTTP_IPV6CALCWEB_ANTIDOS_PROCMAX'}) { if ($ENV{'HTTP_IPV6CALCWEB_ANTIDOS_PROCMAX'} =~ /^(-?[[:digit:]]+)$/o) { $proc_max = $1; # overwrite default from above } else { logging("ERROR", "HTTP_IPV6CALCWEB_ANTIDOS_PROCMAX found, but not containing proper number"); &print_error(); }; }; ## external APIs if (defined $ENV{'HTTP_IPV6CALCWEB_USERNAME_GEONAMESORG'}) { if ($ENV{'HTTP_IPV6CALCWEB_USERNAME_GEONAMESORG'} =~ /^([[:alnum:]\.\-]+)$/o) { $username_geonamesorg = $1; # overwrite default from above } else { logging("ERROR", "HTTP_IPV6CALCWEB_USERNAME_GEONAMESORG found, but not containing proper chars"); &print_error(); }; }; ## Database toggles for my $db (sort keys %db_enabled) { my $db_env = "HTTP_IPV6CALCWEB_DB_" . $db; if (defined $ENV{$db_env}) { if ($ENV{$db_env} =~ /^(0|no|disabled|off)$/) { $db_enabled{$db} = 0; } elsif ($ENV{$db_env} =~ /^(1|yes|enabled|on)$/) { $db_enabled{$db} = 1; } else { logging("ERROR", "$db_env found, but not containing proper value (0|1)"); &print_error(); }; }; }; ## Location of database and library files # MaxMindDB my $database_mmdb_lib; if (defined $ENV{'HTTP_IPV6CALCWEB_DB_MMDB_LIB'}) { if ($ENV{'HTTP_IPV6CALCWEB_DB_MMDB_LIB'} =~ /^([[:alnum:]\.\-\/]+)$/) { $database_mmdb_lib = $1; } else { logging("ERROR", "HTTP_IPV6CALCWEB_DB_MMDB_LIB found, but not containing proper chars"); &print_error(); }; }; # IP2Location my $options_ipv6calc_ip2location = ""; my %db_info_ip2location; my $database_ip2location_dir; my $database_ip2location_lib; if (defined $ENV{'HTTP_IPV6CALCWEB_DB_IP2LOCATION_DIR'}) { if ($ENV{'HTTP_IPV6CALCWEB_DB_IP2LOCATION_DIR'} =~ /^([[:alnum:]\.\-\/]+)$/) { $database_ip2location_dir = $1; } else { logging("ERROR", "HTTP_IPV6CALCWEB_DB_IP2LOCATION_DIR found, but not containing proper chars"); &print_error(); }; } else { $database_ip2location_dir = find_dir(@list_database_ip2location_dir); }; if (defined $ENV{'HTTP_IPV6CALCWEB_DB_IP2LOCATION_LIB'}) { if ($ENV{'HTTP_IPV6CALCWEB_DB_IP2LOCATION_LIB'} =~ /^([[:alnum:]\.\-\/]+)$/) { $database_ip2location_lib = $1; } else { logging("ERROR", "HTTP_IPV6CALCWEB_DB_IP2LOCATION_LIB found, but not containing proper chars"); &print_error(); }; }; # GeoIP/GeoIP2 my $options_ipv6calc_geoip = ""; my $options_ipv6calc_geoip2 = ""; my %db_info_geoip; my %db_info_geoip2; my $info_geoip_string; my $info_geoip2_string; my $database_geoip_dir; my $database_geoip2_dir; my $database_geoip_lib; if (defined $ENV{'HTTP_IPV6CALCWEB_DB_GEOIP_DIR'}) { if ($ENV{'HTTP_IPV6CALCWEB_DB_GEOIP_DIR'} =~ /^([[:alnum:]\.\-\/]+)$/) { $database_geoip_dir = $1; $database_geoip2_dir = $1; } else { logging("ERROR", "HTTP_IPV6CALCWEB_DB_GEOIP_DIR found, but not containing proper chars"); &print_error(); }; } else { $database_geoip_dir = find_dir(@list_database_geoip_dir); }; # db-ip.com my $options_ipv6calc_dbip = ""; my $options_ipv6calc_dbip2 = ""; my %db_info_dbip; my %db_info_dbip2; my $database_dbip_dir; my $database_dbip2_dir; my $info_dbip_string; my $info_dbip2_string; if (defined $ENV{'HTTP_IPV6CALCWEB_DB_DBIP_DIR'}) { if ($ENV{'HTTP_IPV6CALCWEB_DB_DBIP_DIR'} =~ /^([[:alnum:]\.\-\/]+)$/) { $database_dbip_dir = $1; $database_dbip2_dir = $1; } else { logging("ERROR", "HTTP_IPV6CALCWEB_DB_DBIP_DIR found, but not containing proper chars"); &print_error(); }; } else { $database_dbip_dir = find_dir(@list_database_dbip_dir); }; # External DB my $options_ipv6calc_external = ""; my %db_info_external; my $database_external_dir; my $info_external_string; if (defined $ENV{'HTTP_IPV6CALCWEB_DB_EXTERNAL_DIR'}) { if ($ENV{'HTTP_IPV6CALCWEB_DB_EXTERNAL_DIR'} =~ /^([[:alnum:]\.\-\/]+)$/) { $database_external_dir = $1; } else { logging("ERROR", "HTTP_IPV6CALCWEB_DB_EXTERNAL_DIR found, but not containing proper chars"); &print_error(); }; } else { $database_external_dir = find_dir(@list_database_external_dir); }; # BuiltIn DB my $options_ipv6calc_builtin = ""; my %db_info_builtin; my $database_builtin_dir; my $info_builtin_string; ## external database ipv6calc option handling # MaxMindDB if (defined $database_mmdb_lib) { $options_ipv6calc_geoip2 .= " --db-mmdb-lib $database_mmdb_lib"; $options_ipv6calc_dbip2 .= " --db-mmdb-lib $database_mmdb_lib"; }; # IP2Location if (defined $database_ip2location_dir) { $options_ipv6calc_ip2location .= " --db-ip2location-dir $database_ip2location_dir"; }; if (defined $database_ip2location_lib) { $options_ipv6calc_ip2location .= " --db-ip2location-lib $database_ip2location_lib"; }; # GeoIP if (defined $database_geoip_dir) { $options_ipv6calc_geoip .= " --db-geoip-dir $database_geoip_dir"; }; if (defined $database_geoip_lib) { $options_ipv6calc_geoip .= " --db-geoip-lib $database_geoip_lib"; }; # GeoIP2 if (defined $database_geoip2_dir) { $options_ipv6calc_geoip2 .= " --db-geoip2-dir $database_geoip2_dir"; }; # DBIP if (defined $database_dbip_dir) { $options_ipv6calc_dbip .= " --db-dbip-dir $database_dbip_dir"; }; # DBIP2 if (defined $database_dbip2_dir) { $options_ipv6calc_dbip2 .= " --db-dbip2-dir $database_dbip2_dir"; }; # External DB if (defined $database_external_dir) { $options_ipv6calc_external .= " --db-external-dir $database_external_dir"; }; ###### Normally nothing to change here ## Cleanup environment # Please report, if more cleanup is needed on other systems # Hardwire path to well known if ( defined $ENV{'PATH'} ) { $ENV{'PATH'}="/bin:/usr/bin:/usr/local/bin"; }; # Clear shell environment if ( defined $ENV{'BASH_ENV'} ) { $ENV{'BASH_ENV'}=""; }; ## Fallbacks if (! defined $outputformat) { $outputformat = "text" }; if (! defined $outputtype) { $outputtype = "simple" }; if (! defined $lang_default) { $lang_default = "en"}; if (! defined $lang) { $lang = $lang_default}; ## Variables my $addr_remote; my $name_remote; my $user_agent; my $x_forwarded_for; my $via; my $addr_server; my $name_server; my @proxy_addresses; my @proxy_infos; my (%infoh_remote, @sort_remote); my (%infoh_server, @sort_server); my (%infoh_proxy, @sort_proxy); my (%infoh_input, @sort_input); my (%infoh_localhost4, @sort_localhost4); my $length_max_key = 0; my $length_max_description = 0; my $query_string; my $script_name; my $uri = ""; my $error_insert_input = 0; my $maxenvlength = 256; my $input; my $input_default; my $token; my %key_db_tokens; # default values my $ipv6calc_version = ""; my $ipv6calc_copyright = "(P) & (C) by Peter Bieringer"; my $ipv6calc_name = "ipv6calc"; my $ipv6calc_features = ""; my %ipv6calc_feature_hash; my $ipv6calc_capabilities = ""; my %ipv6calc_capability_hash; my $ipv6calc_settings = ""; my %ipv6calc_settings_hash; my $chr_quote = ""; # default ############### Functions ## Logging sub logging($$) { if (defined $_[0] && defined $_[1]) { printf STDERR "%s %-6s: %s\n", $program_name, $_[0], $_[1]; }; }; ## Split by " / " sub split_store($$) { my $p_hash = $_[0]; printf STDERR "DEBUG : need to split: %s\n", $_[1] if ($debug & 0x20); for my $entry (split / \/ /, $_[1]) { printf STDERR "DEBUG : split part: %s\n", $entry if ($debug & 0x20); $$p_hash{$entry} = 1; }; }; ## Error message sub print_error ($) { my $message = shift; if (defined $message) { printf STDERR $message . "\n"; }; goto("OUTPUT_BEGIN_ERROR"); }; ## Print conditional html sub print_tagoutput ($) { my $text = shift; if ( defined $text ) { if ($outputformat =~ /^html/o) { print $text; }; }; }; sub print_textonly ($) { my $text = shift; if ( defined $text ) { if ($outputformat =~ /^text/o) { print $text; }; }; }; ## Print one table part sub print_infohash ($$$;$) { my $phash = $_[0]; my $parray = $_[1]; my $colormode = $_[2]; my $counter = $_[3]; my %key_values_db_tokens; if (! defined $phash) { return; }; my ($flag_tt, $flag_whoisurl, $whois_registry, $whois_type); my $last_key_embedded = ""; my $count_key_embedded = 0; if ( ! defined \$phash ) { &print_tagoutput ( " \n" ); &print_tagoutput ( " " ); print $text{'nodata'}->{$lang}; &print_textonly ("\n"); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); return; }; for my $key (@$parray) { if ($key eq "IP2LOCATION_DATABASE_INFO") { split_store(\%db_info_ip2location, $$phash{$key}); # skipped, will be shown in footer next; }; if ($key eq "IP2LOCATION_DATABASE_INFO_IPV4") { split_store(\%db_info_ip2location, $$phash{$key}); # skipped, will be shown in footer next; }; if ($key eq "IP2LOCATION_DATABASE_INFO_IPV6") { split_store(\%db_info_ip2location, $$phash{$key}); # skipped, will be shown in footer next; }; if ($key eq "GEOIP2_DATABASE_INFO") { $info_geoip2_string = $$phash{$key}; # strip non-ascii chars $info_geoip2_string =~ s/[\200-\377]//g; split_store(\%db_info_geoip2, $info_geoip2_string); # skipped, will be shown in footer next; }; if ($key eq "DBIP2_DATABASE_INFO") { $info_dbip2_string = $$phash{$key}; # strip non-ascii chars $info_dbip2_string =~ s/[\200-\377]//g; split_store(\%db_info_dbip2, $info_dbip2_string); # skipped, will be shown in footer next; }; if ($key eq "EXTERNAL_DATABASE_INFO") { $info_external_string = $$phash{$key}; # strip non-ascii chars $info_external_string =~ s/[\200-\377]//g; split_store(\%db_info_external, $info_external_string); # skipped, will be shown in footer next; }; if ($key eq "BUILTIN_DATABASE_INFO") { $info_builtin_string = $$phash{$key}; # strip non-ascii chars $info_builtin_string =~ s/[\200-\377]//g; split_store(\%db_info_builtin, $info_builtin_string); # skipped, will be shown in footer next; }; # catch internal keys if ( $key =~ /^IPV6CALC_/ ) { # skipped, will be shown in footer next; }; $flag_tt = 0; $flag_whoisurl = 0; # extract lookup key $key =~ /^([^[]+)(\[[^]]*\])?$/; my $key_lookup = $1; my $key_embedded = ""; my $embedded_changed = 0; if (defined $2) { $key_embedded = $2; if ($last_key_embedded eq "") { $last_key_embedded = $key_embedded; $count_key_embedded++; $embedded_changed = 1; } elsif ( $last_key_embedded ne $key_embedded) { $last_key_embedded = $key_embedded; $count_key_embedded++; $embedded_changed = 1; }; if (($outputformat eq "html") || ($outputformat eq "htmlfull")) { if ($embedded_changed == 1) { if ($count_key_embedded & 1) { &print_tagoutput ( " \n" ); } else { &print_tagoutput ( " \n" ); }; my $entry = "Embedded IPv4 address " . $key_embedded; $entry =~ s/[\[\]]//g; &print_tagoutput ( " " . $entry . "\n" ); &print_tagoutput ( " \n"); }; }; } else { $count_key_embedded = 0; $last_key_embedded = ""; }; if (grep(/^$key_lookup$/, @format_tt)) { $flag_tt = 1; }; if ($mode_db_entries_in_subcolumns == 1) { # suppress db based keys, store them in hash for later printout $key =~ /^([A-Z0-9]+)_(.*)$/o; if (grep(/^$1/i, keys %key_db_tokens)) { my $dbprovider = $1; my $subkey = $2; $key_db_tokens{$dbprovider}++; # check for embedded information $subkey =~ /^([^[]+)(\[[^]]*\])?$/; my $subkey_stripped = $1; my $embedded = $2; if (! defined $embedded) { $embedded = "default"; }; $key_values_db_tokens{$embedded}->{$subkey_stripped} = $dbprovider; next; }; }; # print key if ($count_key_embedded > 0) { if ($count_key_embedded & 1) { &print_tagoutput ( " \n" ); } else { &print_tagoutput ( " \n" ); }; } else { &print_tagoutput ( " \n" ); }; &print_tagoutput ( " " ); &print_tagoutput ( "" ) if ($count_key_embedded > 0); print uc($colormode) . "__" if ($outputformat eq "textkeyvalue"); # reduce duplicate information my $key_print = $key; $key_print =~ s/^($colormode)_//i if ($outputformat eq "textkeyvalue"); if ((($outputformat eq "html") || ($outputformat eq "htmlfull")) && ($key_embedded ne "")) { $key_print =~ /^([^[]+)(\[[^]]*\])?$/; $key_print = $1; }; # print url where available if ((($outputformat eq "html") || ($outputformat eq "htmlfull")) && ($key =~ /^([A-Z0-9]+)_(.+)$/o)) { if (defined $urls{$1}) { # add URL &print_tagoutput("" . $key_print . ""); } else { &print_tagoutput($key_print); }; } else { print $key_print; }; &print_textonly (' ' x ($length_max_key - length($key)) ) if ($outputformat ne "textkeyvalue"); &print_textonly (" | ") if ($outputformat ne "textkeyvalue"); &print_textonly ("[" . $counter . "]") if (($outputformat eq "textkeyvalue") && (defined $counter)); &print_textonly ("=") if ($outputformat eq "textkeyvalue"); &print_tagoutput ( "" ) if ($count_key_embedded > 0); &print_tagoutput ( "\n" ); # registry detection if ($key_lookup eq "IPV4" || $key_lookup eq "IPV4_REGISTRY") { if ( defined $$phash{'IPV4_REGISTRY' . $key_embedded} ) { $whois_registry = $$phash{'IPV4_REGISTRY' . $key_embedded}; $whois_type = "ipv4"; $flag_whoisurl = 1; } else { # Temporary workaround $whois_registry = 'unknown'; $whois_type = "ipv4"; $flag_whoisurl = 1; }; } elsif ($key_lookup eq "IPV6" || $key_lookup eq "IPV6_REGISTRY") { if ( defined $$phash{'IPV6_REGISTRY' . $key_embedded} ) { $whois_registry = $$phash{'IPV6_REGISTRY' . $key_embedded}; $whois_type = "ipv6"; $flag_whoisurl = 1; }; }; # print description if ($outputtype ne "simple") { &print_tagoutput ( " " ); &print_tagoutput ( "" ) if ($count_key_embedded > 0); if (defined $text{$key_lookup}->{$lang}) { print $text{$key_lookup}->{$lang}; &print_textonly (' ' x ($length_max_description - length($text{$key_lookup}->{$lang})) ); my $key_lookup_extra; if ($key_lookup =~ /^(IPV4|IPV6)(_REGISTRY)?$/o) { $key_lookup_extra = "_REGISTRY" if ($flag_whoisurl == 1); } elsif ($key_lookup =~ /^([^_]+)(_.+)$/o) { $key_lookup_extra = $2; }; if (defined $key_lookup_extra) { if (defined $text_extra{$key_lookup_extra}->{$lang}) { my $text = $text_extra{$key_lookup_extra}->{$lang}; $text =~ s/REGISTRY/$whois_registry/g if ($flag_whoisurl == 1); $text =~ s/reserved\(([^)]+)\)/IETF/g if ($flag_whoisurl == 1); &print_tagoutput("
(" . $text . ")"); }; }; } elsif ($key_lookup =~ /^(IP2LOCATION|GEOIP2|DBIP2)(_.+)$/o) { # fallback my $key_lookup_without_db = $2; if (defined $text{$key_lookup_without_db}->{$lang}) { print $text_geodb{$1} . " " . $text{$key_lookup_without_db}->{$lang}; &print_textonly (' ' x ($length_max_description - length($text{$key_lookup_without_db}->{$lang}) - length($text_geodb{$1}) - 1) ); } else { &print_textonly (' ' x ($length_max_description) ); }; # print information about link if (defined $text_extra{$key_lookup_without_db}->{$lang}) { &print_tagoutput("(" . $text_extra{$key_lookup_without_db}->{$lang} . ")") }; } else { &print_textonly (' ' x ($length_max_description) ); }; &print_textonly (" | "); &print_tagoutput ( "
" ) if ($count_key_embedded > 0); &print_tagoutput ( "\n" ); }; my $color = ""; if (defined $colormode) { # set color if ($key eq "EUI64_SCOPE" && $$phash{$key} eq "local-random") { $color = "lime"; } elsif ($key eq "EUI64_SCOPE" && $$phash{$key} eq "local") { $color = "cyan"; } elsif ($key eq "EUI48_SCOPE") { if ($$phash{$key} eq "global") { $color = "yellow"; }; } elsif ($key eq "IID" && defined $$phash{"EUI64_SCOPE"} && $$phash{"EUI64_SCOPE"} eq "local") { $color = "cyan"; } elsif ($key eq "IID" && defined $$phash{"EUI64_SCOPE"} && $$phash{"EUI64_SCOPE"} eq "local-random") { $color = "lime"; } elsif ($key eq "EUI64" && defined $$phash{"OUI"}) { $color = "yellow"; } elsif ($key eq "EUI48" && defined $$phash{"OUI"}) { $color = "yellow"; } elsif ($key eq "OUI") { $color = "yellow"; } else { }; }; # set background color if ($color ne "") { &print_tagoutput ( " " ); } else { &print_tagoutput ( " " ); }; if ($flag_tt) { &print_tagoutput ( "" ); }; my ($info, $rfc, $section, $url, $url2); if ( $flag_whoisurl == 1 ) { if ( $whois_registry =~ /^(.*)\(LISP(#.*)\)$/o ) { ($whois_registry, $section) = ($1, $2); if ($key_lookup =~ /^IPV(4|6)_REGISTRY/o) { $info = "LISP" . $section; $url2 = $url_lisp . $section; }; } elsif ( $whois_registry =~ /^reserved\((.*)\)$/o ) { ($rfc, $section) = split /#/, $1; $url = $url_rfc . lc($rfc); if (defined $section) { $url .= "#section-" . $section; }; }; if ( defined $url_whoisservers{$whois_registry}->{$whois_type} ) { if ( $url_whoisservers{$whois_registry}->{$whois_type} ne "" ) { if ($key_lookup =~ /^IPV(4|6)_REGISTRY/o) { my $ip; if ($whois_type eq "ipv4") { $ip = $$phash{'IPV4' . $key_embedded}; } elsif ($whois_type eq "ipv6") { $ip = $$phash{'IPV6' . $key_embedded}; }; if (defined $ip) { $url = $url_whoisservers{$whois_registry}->{$whois_type} . $ip; } else { # something strange happend $flag_whoisurl = 0; }; } else { $url = $url_whoisservers{$whois_registry}->{$whois_type} . $$phash{$key}; }; } else { $flag_whoisurl = 0; }; } else { if ($debug & 0x08) { logging("NOTICE", "whoisserver is not defined"); }; $flag_whoisurl = 0; }; }; if ($key =~ /GEONAME_ID/o && $key_lookup !~ /_(SOURCE|TYPE)$/o) { $url = $url_geoname_by_id; $url =~ s/#GEONAME_ID#/$$phash{$key}/g; $url =~ s/#USERNAME#/$username_geonamesorg/g; $api_used_geonamesorg = 1; } elsif ($key =~ /(LATITUDE|LONGITUDE)/o) { my $combined_key; my $combined_valid = 0; $url = $url_openstreetmap_by_lat_lon; if ($key =~ /LATITUDE/o) { $url =~ s/#LATITUDE#/$$phash{$key}/g; $combined_valid++; $combined_key = $key; $combined_key =~ s/LATITUDE/LONGITUDE/o; if(defined $$phash{$combined_key}) { $url =~ s/#LONGITUDE#/$$phash{$combined_key}/g; $combined_valid++; }; } elsif ($key =~ /LONGITUDE/o) { $url =~ s/#LONGITUDE#/$$phash{$key}/g; $combined_valid++; $combined_key = $key; $combined_key =~ s/LONGITUDE/LATITUDE/o; if(defined $$phash{$combined_key}) { $url =~ s/#LATITUDE#/$$phash{$combined_key}/g; $combined_valid++; }; }; if ($combined_valid != 2) { $url = undef; }; } elsif ($key_lookup =~ /WEATHERSTATIONCODE/o) { $url = $url_weather_com_by_station; $url =~ s/#WEATHERSTATIONCODE#/$$phash{$key}/g; }; &print_tagoutput ( "" ) if ($count_key_embedded > 0); if (defined $url && defined $url2) { &print_tagoutput ( "" ); print $whois_registry; &print_tagoutput ( "" ); print "("; &print_tagoutput ( "" ); print $info; &print_tagoutput ( "" ); print ")"; } elsif (defined $url) { &print_tagoutput ( "" ); print $chr_quote . $$phash{$key} . $chr_quote; &print_tagoutput ( "" ); } else { print $chr_quote . $$phash{$key} . $chr_quote; }; &print_tagoutput ( "" ) if ($count_key_embedded > 0); if ($flag_tt) { &print_tagoutput ( "" ); }; &print_tagoutput ( "\n" ); &print_tagoutput ( " \n" ); &print_textonly ("\n"); }; if ($mode_db_entries_in_subcolumns != 1) { # nothing more to do return; }; ## database subcolumns mode # print header my ($r, $g, $b); my $shift; # loop through all embedded for my $embedded (keys %key_values_db_tokens) { my $entry = " for $embedded"; $entry =~ s/[\[\]]//g; if ($embedded eq "default") { $entry = ""; }; ($r, $g, $b) = (240, 240, 255); &print_tagoutput ( " \n" ); &print_tagoutput ( " Information from databases$entry\n" ); for my $key (sort keys %key_db_tokens) { &print_tagoutput (" "); if (defined $urls{$key}) { # add URL &print_tagoutput("" . $key . ""); } else { &print_tagoutput($key); }; if (defined $text_geodb{$key}) { &print_tagoutput("
" . $text_geodb{$key} . ""); }; &print_tagoutput("\n"); $shift = $r; $r = $g; $g = $b; $b = $shift; }; &print_tagoutput ( " \n" ); for my $key_lookup (sort keys %{$key_values_db_tokens{$embedded}}) { &print_tagoutput ( " \n" ); &print_tagoutput ( " $key_lookup\n" ); my $key; if ($embedded eq "default") { $key = $key_lookup; } else { $key = $key_lookup . $embedded; }; # print description if ($outputtype ne "simple") { &print_tagoutput ( " " ); if (defined $text{"_" . $key_lookup}->{$lang}) { print $text{"_" . $key_lookup}->{$lang}; if (defined $text_extra{"_" . $key_lookup}->{$lang}) { &print_tagoutput("
(" . $text_extra{"_" . $key_lookup}->{$lang} . ")") }; } elsif ($key_lookup =~ /^(IP2LOCATION|GEOIP2|DBIP2)$/o) { # fallback my $key_lookup_without_db = $2; if (defined $text{$key_lookup_without_db}->{$lang}) { print $1 . " " . $text{$key_lookup_without_db}->{$lang}; }; }; &print_tagoutput ( "\n" ); }; # print value ($r, $g, $b) = (240, 240, 255); for my $db (sort keys %key_db_tokens) { &print_tagoutput ( " " ); my $key_result = $db . "_" . $key; if (defined $$phash{$key_result}) { my $flag = 0; my $url; if ($key_lookup =~ /GEONAME_ID/o && $key_lookup !~ /_(SOURCE|TYPE)$/o) { $url = $url_geoname_by_id; $url =~ s/#GEONAME_ID#/$$phash{$key_result}/g; $url =~ s/#USERNAME#/$username_geonamesorg/g; $api_used_geonamesorg = 1; &print_tagoutput ( "" ); $flag = 1; } elsif ($key =~ /(LATITUDE|LONGITUDE)/o) { printf STDERR "DEBUG : found combination key master: %s\n", $key if ($debug & 0x2000); my $combined_key; my $combined_valid = 0; $url = $url_openstreetmap_by_lat_lon; if ($key_lookup =~ /LATITUDE/o) { $url =~ s/#LATITUDE#/$$phash{$key_result}/g; $combined_valid++; $combined_key = $key_result; $combined_key =~ s/LATITUDE/LONGITUDE/o; printf STDERR "DEBUG : search for combination key slave: %s\n", $combined_key if ($debug & 0x2000); if(defined $$phash{$combined_key}) { $url =~ s/#LONGITUDE#/$$phash{$combined_key}/g; $combined_valid++; }; } elsif ($key_lookup =~ /LONGITUDE/o) { $url =~ s/#LONGITUDE#/$$phash{$key_result}/g; $combined_valid++; $combined_key = $key_result; $combined_key =~ s/LONGITUDE/LATITUDE/o; if(defined $$phash{$combined_key}) { $url =~ s/#LATITUDE#/$$phash{$combined_key}/g; $combined_valid++; }; }; if ($combined_valid == 2) { &print_tagoutput ( "" ); $flag = 1; # workaround to close a tag below }; } elsif ($key_lookup =~ /WEATHERSTATIONCODE/o) { $url = $url_weather_com_by_station; $url =~ s/#WEATHERSTATIONCODE#/$$phash{$key_result}/g; &print_tagoutput ( "" ); $flag = 1; }; print $$phash{$key_result}; if ( $flag == 1 ) { &print_tagoutput ( "" ); }; } else { print "-"; }; &print_tagoutput ( "\n" ); $shift = $r; $r = $g; $g = $b; $b = $shift; }; &print_tagoutput ( " \n" ); &print_textonly ("\n"); }; }; }; ############### Anti-DoS functions sub salt_generate() { my $salt = ""; my $result; my $f; logging("DEBUG", "salt_generate/start") if ($debug & 0x0100); # first try to use system UUID if (-f "/etc/sysconfig/hw-uuid") { logging("DEBUG", "hardware uuid file found") if ($debug & 0x0100); $result = open(INPUT, "/etc/sysconfig/hw-uuid"); if (defined $result) { $salt = ; close(INPUT); chomp($salt); if (length($salt) > 0) { logging("DEBUG", "hardware uuid found: $salt") if ($debug & 0x0100); } else { logging("DEBUG", "hardware uuid found but contents is empty") if ($debug & 0x0100) }; } else { logging("NOTICE", "hardware uuid file exists, but can't open"); }; }; # local data if (length($salt) == 0) { if (defined $ENV{'HOSTNAME'}) { $salt = $ENV{'HOSTNAME'}; } elsif (defined $ENV{'SERVER_NAME'}) { $salt = $ENV{'SERVER_NAME'}; } else { $salt = "unknown-hosts"; }; for $f ("/etc/passwd", "/etc/hosts", "/etc/resolv.conf") { if (-f "$f") { if (length($salt) > 0) { $salt .= "-"; }; $salt .= sprintf("%x", (stat("$f"))[9]); }; }; logging("DEBUG", "local generated: $salt") if ($debug & 0x0100); }; logging("DEBUG", "salt_generate/salt: $salt") if ($debug & 0x0100); return($salt); } sub token_generate($$$) { my $remote = $_[2] || "127.0.0.1"; logging("DEBUG", "token_generate/salt : $_[0]") if ($debug & 0x0100); logging("DEBUG", "token_generate/time : $_[1]") if ($debug & 0x0100); logging("DEBUG", "token_generate/remote: $remote") if ($debug & 0x0100); if ($mask_remote_address == 1) { # mask remote information if ($_[2] =~ /^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)[0-9]{1,3}$/) { # IPv4 address, blank last 8 bits $remote = $1; } elsif ($_[2] =~ /^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)[0-9]{1,3}$/) { # IPv4 address, blank last 8 bits $remote = $1; }; if ($remote ne $_[2]) { logging("DEBUG", "token_generate/remote masked to: $remote") if ($debug & 0x0100); }; }; my $token = $_[0] . "#" . $_[1] . "#" . $remote; logging("DEBUG", "token: $token") if ($debug & 0x0100); my $token_sha1 = Digest::SHA1::sha1_hex($token); my $token_md5 = Digest::MD5::md5_hex($token); chomp $token_sha1; chomp $token_md5; logging("DEBUG", "token/md5 : $token_md5") if ($debug & 0x0100); logging("DEBUG", "token/sha1: $token_sha1") if ($debug & 0x0100); return($token_md5 . $token_sha1); }; #################### ############### Main #################### # Parse query string first if ( defined $ENV{'QUERY_STRING'} ) { # split query string foreach my $query_stringlet (split /[\?\&]/, $ENV{'QUERY_STRING'}) { if ($query_stringlet !~ /^([[:alnum:]]+)=([[:alnum:].\-:%+]+)$/ ) { logging("ERROR", "generic problem with data in query_stringlet"); &print_error(); next; }; my ($name, $value) = ($1, $2); if ($name eq "lang") { for my $langtest (@supported_languages) { if ($value eq $langtest) { $lang = $langtest; last; }; }; } elsif ($name eq "format") { for my $formattest (@supported_formats) { if ($value eq $formattest) { $outputformat = $formattest; last; }; }; } elsif ($name eq "input") { if (length($value) > $maxenvlength) { logging("ERROR", "problem with data in query_stringlet (input too long)"); &print_error(); next; }; $input = uri_unescape($value); $input =~ s/^[+\s]+//g; # remove leading whitespaces (Firefox codes space as '+') $input =~ s/[+\s]+$//g; # remove trailing whitespaces (Firefox codes space as '+') if ($input !~ /^([[:alnum:]\/\.\:-]+)$/) { logging("ERROR", "problem with data in query_stringlet (input has unexpected chars)"); &print_error(); }; logging("DEBUG", "QUERY_STRING contains: input=" . $input) if ($debug & 0x40); } elsif ($name eq "tokenhash") { if (length($value) > $maxenvlength) { logging("ERROR", "problem with data in query_stringlet (tokenhash too long)"); &print_error(); next; }; if (length($value) > 32 + 40) { logging("ERROR", "problem with tokenhash: " . length($value) . " chars, more than 72 chars"); &print_error(); next; }; if ($value !~ /^[[:xdigit:]]+$/) { logging("ERROR", "problem with data in query_stringlet (tokenhash has unexpected chars)"); &print_error(); next; }; $tokenhash = $value; $tokenhash_found = 1; logging("DEBUG", "QUERY_STRING contains: tokenhash=" . $tokenhash) if ($debug & 0x40); } elsif ($name eq "tokentime") { if (length($value) > $maxenvlength) { logging("ERROR", "problem with data in query_stringlet (tokentime too long)"); &print_error(); next; }; if (length($value) != 10) { logging("ERROR", "problem with tokentime: " . length($value) . " chars, not 10 chars"); &print_error(); next; }; if ($value !~ /^[[:digit:]]+$/) { logging("ERROR", "problem with data in query_stringlet (tokentime has unexpected chars)"); &print_error(); next; }; $tokentime = $value; $tokentime_found = 1; logging("DEBUG", "QUERY_STRING contains: tokentime=" . $tokentime) if ($debug & 0x40); }; }; }; ## check system health if (($debug & 0x4000) == 0) { # retrieve amount of CPU cores my $cpu_cores = 1; if (-r "/proc/cpuinfo") { open my $h, "/proc/cpuinfo"; if ($h) { my @info = <$h>; close $h; my $cpu_count = scalar(grep /^processor/, @info); if ($cpu_count > 1) { $cpu_cores = $cpu_count; }; #logging("DEBUG", "System has CPU cores: $cpu_cores"); }; }; # check system load if (-r "/proc/loadavg") { open my $h, "/proc/loadavg"; if ($h) { my @info = <$h>; close $h; my ($load1, $load5, $load15, $other) = (split / /, $info[0]); my $overload = 0; # normalized my ($load1_norm, $load5_norm, $load15_norm) = ($load1, $load5, $load15); $load1_norm = $load1 / $cpu_cores; $load5_norm = $load5 / $cpu_cores; $load15_norm = $load15 / $cpu_cores; if ($load15_norm > $load15_max) { $overload = 15; } elsif ($load5_norm > $load5_max) { $overload = 5; } elsif ($load1_norm > $load1_max) { $overload = 1; }; if ($overload > 0) { logging("WARN", "System overloaded by load$overload load=$load1/$load5/$load15 load_norm=$load1_norm/$load5_norm/$load15_norm limit=$load1_max/$load5_max/$load15_max cpus=$cpu_cores"); $error = "System overloaded, please retry in $overload minutes - sorry"; $error_flag = 1; # no automatic redirect &print_error(); }; }; }; my $proc_count = 0; my @proc_list; if ($proc_max != 0) { if ((defined $bin_ps) && (-x $bin_ps)) { my @proc_table = `$bin_ps -eo args`; @proc_list = grep /perl .*( |\/)$proc_pattern/, @proc_table; $proc_count = scalar(@proc_list); logging("DEBUG", "System has 'perl $proc_pattern' running in parallel: procs=$proc_count") if ($debug & 0x0100); }; if ($proc_count > 0) { # check amount of processes my $proc_count_norm = $proc_count / $cpu_cores; if ($proc_count_norm > $proc_max) { logging("WARN", "System has too much 'perl $proc_pattern' running in parallel: procs=$proc_count procs_norm=$proc_count_norm limit=$proc_max"); $error = "System overloaded, please retry in 1 minute - sorry"; $error_flag = 1; # no automatic redirect &print_error(); }; }; }; }; ## Get variables if ( defined $ENV{'REMOTE_ADDR'} ) { logging("DEBUG", "found environment: REMOTE_ADDR") if ($debug & 0x80); $ENV{'REMOTE_ADDR'} =~ /^([[:xdigit:]\.\:]+)$/o; if ( ! defined $1 || (length($1) > $maxenvlength)) { logging("ERROR", "problem with data (REMOTE_ADDR)"); &print_error(); }; # validity checks if (length($ENV{'REMOTE_ADDR'}) < 2 || length($ENV{'REMOTE_ADDR'}) > 69) { logging("ERROR", "problem with REMOTE_ADDR: below 2 or more than 69 chars"); &print_error(); }; $addr_remote = $1; logging("DEBUG", "environment: REMOTE_ADDR=$1") if ($debug & 0x80); } else { $addr_remote = "127.0.0.1"; }; # verify token if ($tokenhash_found == 1 && $tokentime_found == 1) { logging("DEBUG", "verify tokens now") if ($debug & 0x100); $salt = salt_generate(); $tokenhash_verify = token_generate($salt, $tokentime, $addr_remote); if ($tokenhash_verify ne $tokenhash) { logging("ERROR", "tokenhash invalid"); &print_error(); }; logging("DEBUG", "tokenhash valid") if ($debug & 0x100); if ($tokentime > time()) { logging("ERROR", "tokentime in the future (totally strange!)"); &print_error(); }; my $delta = time() - $tokentime; if ($delta > $time_range_valid) { logging("ERROR", "tokentime expired"); $error = "session expired"; $error_insert_input = 1; &print_error(); }; if ($delta < $time_range_min) { logging("NOTICE", "tokentime usage too early, sleep seconds: " . ($time_range_min - $delta)); sleep ($time_range_min - ($delta % 5)) if (! ($debug & 0x1000)); } elsif (($delta % $time_range_min) < $time_range_min) { logging("NOTICE", "tokentime (re)usage not aligned to $time_range_min seconds, sleep seconds: " . ($time_range_min - ($delta % $time_range_min))); sleep ($time_range_min - ($delta % $time_range_min)) if (! ($debug & 0x1000)); } else { logging("DEBUG", "tokentime in range") if ($debug & 0x100); }; } elsif ($tokenhash_found == 0 && $tokentime_found == 0) { if ((defined $input) && ($mode eq "form" || $mode eq "mixed")) { logging("NOTICE", "form/mixed mode, input given, but tokenhash/tokentime missing, use value as default and sleep seconds: 5"); sleep (5) if (! ($debug & 0x1000)); $input_default = 1; # take this input as default }; } else { logging("ERROR", "strange error occurs (tokentime/tokenhash only partially found)"); &print_error(); } if ($mode eq "form" || $mode eq "mixed") { # generate new token $salt = salt_generate(); # generate token $tokentime = time(); $tokenhash = token_generate($salt, $tokentime, $addr_remote); logging("DEBUG", "TOKENHASH=$tokenhash TOKENTIME=$tokentime REMOTE_ADDR=$addr_remote") if ($debug & 0x0100); }; if ( defined $ENV{'REMOTE_HOST'} ) { $ENV{'REMOTE_HOST'} =~ /^([[:alnum:]\.\-_]*)$/; if ( ! defined $1 || (length($1) > $maxenvlength)) { logging("ERROR", "problem with data (REMOTE_HOST)"); &print_error(); }; $name_remote = $1; }; if ( defined $ENV{'HTTP_USER_AGENT'} ) { $ENV{'HTTP_USER_AGENT'} =~ /^([[:alnum:]\[\]\/\(\)\\\.\-+\;\: ]*)$/; if ( ! defined $1 || (length($1) > $maxenvlength)) { # not a problem, skip it } else { $user_agent = $1; }; }; if ( defined $ENV{'HTTP_X_FORWARDED_FOR'} ) { $ENV{'HTTP_X_FORWARDED_FOR'} =~ /^([[:alnum:]\[\]\/\(\)\\\.\-+\,\: ]*)$/; if ( ! defined $1 || (length($1) > $maxenvlength)) { # not a problem, skip it } else { $x_forwarded_for = $1; }; }; if ( defined $ENV{'HTTP_VIA'} ) { $ENV{'HTTP_VIA'} =~ /^([[:alnum:]\[\]\/\(\)\\\.\-+\;\,\: ]*)$/; if ( ! defined $1 || (length($1) > $maxenvlength)) { # not a problem, skip it } else { $via = $1; }; }; if ( defined $ENV{'SERVER_ADDR'} ) { $ENV{'SERVER_ADDR'} =~ /^([[:xdigit:]\.\:]*)$/; if ( ! defined $1 || (length($1) > $maxenvlength)) { logging("ERROR", "problem with data (SERVER_ADDR)"); &print_error(); }; $addr_server = $1; }; if ( defined $ENV{'SERVER_NAME'} ) { $ENV{'SERVER_NAME'} =~ /^([[:alnum:]\[\]\.\-\:_]*)$/; if ( ! defined $1 || (length($1) > $maxenvlength)) { logging("ERROR", "problem with data (SERVER_NAME)"); &print_error(); }; $name_server = $1; }; if ( defined $ENV{'SCRIPT_NAME'} ) { $ENV{'SCRIPT_NAME'} =~ /^([[:alnum:]\?\%\&=\.\-\:_\/]*)$/; if ( ! defined $1 || (length($1) > $maxenvlength)) { logging("ERROR", "problem with data (SCRIPT_NAME)"); &print_error(); }; $script_name = $1; } else { $script_name = ""; }; ## Check caller and select output format and mode if ( defined $ENV{'SERVER_PROTOCOL'} ) { if ( $ENV{'SERVER_PROTOCOL'} eq "INCLUDED" ) { $mode = "info"; # force info mode if ( $outputformat eq "htmlfull" ) { # Switch back to included html $outputformat = "html"; }; }; }; if ( defined $ENV{'HTTP_IPV6CALCWEB_OUTPUT_FORMAT'} ) { if ($ENV{'HTTP_IPV6CALCWEB_OUTPUT_FORMAT'} =~ /^(text|html|htmlfull|textkeyvalue)$/o) { $outputformat = $ENV{'HTTP_IPV6CALCWEB_OUTPUT_FORMAT'}; }; }; if ( defined $ENV{'HTTP_IPV6CALCWEB_OUTPUT_FORMAT_HTML_DB'} ) { if ($ENV{'HTTP_IPV6CALCWEB_OUTPUT_FORMAT_HTML_DB'} =~ /^(sequential|subcolumns)$/o) { $outputformat_html_db = $ENV{'HTTP_IPV6CALCWEB_OUTPUT_FORMAT_HTML_DB'}; }; }; if ($outputformat_html_db eq "subcolumns") { $mode_db_entries_in_subcolumns = 1; }; if ($outputformat eq "textkeyvalue") { $outputtype = "simple"; $chr_quote = "\""; }; if (($outputformat ne "html") && ($outputformat ne "htmlfull")) { # no html format, disable subcolumn mode $mode_db_entries_in_subcolumns = 0; }; ## Check for binary ipv6calc exists and is executable if (! defined $bin_ipv6calc) { logging("ERROR", "'bin_ipv6calc' not defined"); &print_error(); }; if (length($bin_ipv6calc) == 0) { logging("ERROR", "'bin_ipv6calc' is empty"); &print_error(); }; if (! -f $bin_ipv6calc ) { logging("ERROR", "$bin_ipv6calc (bin_ipv6calc) does not exist as file"); &print_error(); }; if (! -x $bin_ipv6calc ) { logging("ERROR", "$bin_ipv6calc (bin_ipv6calc) not executable"); &print_error(); }; ## Check for library path exists if (defined $lib_ipv6calc) { if (! -d $lib_ipv6calc) { logging("ERROR", "$lib_ipv6calc (lib_ipv6calc) not a directory"); }; if (! -r $lib_ipv6calc) { logging("ERROR", "$lib_ipv6calc (lib_ipv6calc) not readable"); }; }; ## Get and fill information sub ipv6calc_exec($$$$) { # Anti-DoS sleep 100-200 ms my $sleep = 0.1 * (1 + rand(1)); select(undef, undef, undef, $sleep) if (! ($debug & 0x1000)); my $addr = $_[0]; my $debug_tag = $_[1]; my $p_hash = $_[2]; my $p_array = $_[3]; my $option_preload = ""; if (! defined $addr) { logging("ERROR", "no input for ipv6calc (strange)"); return 1; }; if (defined $lib_ipv6calc) { $option_preload = "LD_LIBRARY_PATH=$lib_ipv6calc"; }; logging("DEBUG", "execute: $option_preload $bin_ipv6calc $options_ipv6calc $addr") if ($debug & 0x1); my @info = `$option_preload $bin_ipv6calc $options_ipv6calc $addr`; if ( $? != 0 ) { logging("ERROR", "ipv6calc did not proper return ($addr)"); return 1; }; logging("DEBUG", $debug_tag) if ($debug & 0x10); for my $line (@info) { chomp($line); logging("DEBUG", $line) if ($debug & 0x10); my ( $key, $content ) = split /=/, $line, 2; if ( (! defined $key) || (! defined $content) ) { logging("ERROR", "ipv6calc output parsing problem ($addr)"); return 1; }; chomp $content; if ( $key =~ /^IP2LOCATION_/ ) { #$flag_ip2location_used = 1; if ( $content =~ /^This (parameter|record) is unavailable/o || length($content) == 0 || $content eq "-" || $content eq "??") { # $content = "n/a"; next; }; }; # remove quotes around contents $content =~ s/^\"//; $content =~ s/\"$//; # catch internal keys if ( $key =~ /^IPV6CALC_/ ) { if ( $key eq "IPV6CALC_COPYRIGHT" ) { $ipv6calc_copyright = $content; }; if ( $key eq "IPV6CALC_VERSION" ) { $ipv6calc_version = $content; }; if ( $key eq "IPV6CALC_NAME" ) { $ipv6calc_name = $content; }; if ( $key eq "IPV6CALC_FEATURES" ) { $ipv6calc_features = $content; foreach my $feature (split / /, $ipv6calc_features) { $ipv6calc_feature_hash{$feature} = 1; }; }; if ( $key eq "IPV6CALC_CAPABILITIES" ) { $ipv6calc_capabilities = $content; foreach my $capability (split / /, $ipv6calc_capabilities) { # remove brackets $capability =~ s/\([^)]*\)//g; $ipv6calc_capability_hash{$capability} = 1; }; }; if ( $key =~ /^IPV6CALC_SETTINGS_(.*)$/ ) { if (! defined $ipv6calc_settings_hash{$1}) { if (length($ipv6calc_settings) > 0) { $ipv6calc_settings .= " "; }; my $t = $1; $ipv6calc_settings_hash{$t} = $content; $ipv6calc_settings .= $t . ":" . $content; }; }; }; $$p_hash{$key} = $content; push @$p_array, $key; }; return 0; }; my $result; ## check HTTP_X_FORWARDED_FOR if (defined $x_forwarded_for) { my $addr_remote_temp = $addr_remote; # save exit proxy address my $x_forwarded_for_entries = 0; foreach my $address (split /, /, $x_forwarded_for) { if ($address !~ /^([[:xdigit:]\.\:]+)$/) { # silently skip next; }; if ($x_forwarded_for_entries == 0) { # first found entry is real client $addr_remote = $address; } else { # next proxy push @proxy_addresses, $address; }; $x_forwarded_for_entries++; }; if ($x_forwarded_for_entries > 0) { # addr_remote is exit proxy push @proxy_addresses, $addr_remote_temp; }; }; ## check HTTP_VIA if (defined $via) { foreach my $entry (split /,/, $via) { $entry =~ s/^ +//o; # remove leading spaces $entry =~ s/ +$//o; # remove trailing spaces push @proxy_infos, $entry; }; }; ## check proxy information if (scalar(@proxy_addresses) != scalar(@proxy_infos)) { # amount not matching, don't show information undef @proxy_infos; }; ## check features $result = ipv6calc_exec("127.0.0.1", "***feature***", \%infoh_localhost4, \@sort_localhost4); if ($debug & 0x8000) { foreach my $key (sort keys %ipv6calc_feature_hash) { logging("DEBUG", "feature " . $key . "=" . $ipv6calc_feature_hash{$key}); }; foreach my $key (sort keys %ipv6calc_capability_hash) { logging("DEBUG", "capability " . $key . "=" . $ipv6calc_capability_hash{$key}); }; }; if ($result != 0) { &print_error(); }; # add options depending of available capabilities (fallback: features) if (length($ipv6calc_capabilities) > 0) { if (defined $ipv6calc_capability_hash{"GeoIP2"} && ($ipv6calc_capability_hash{"GeoIP2"} == 1)) { if ($db_enabled{"GEOIP2"} == 0) { $options_ipv6calc .= " --db-geoip2-disable"; } else { $options_ipv6calc .= $options_ipv6calc_geoip2; $db_columns++ if ($mode_db_entries_in_subcolumns == 1); $key_db_tokens{"GEOIP2"} = 0; }; }; if (defined $ipv6calc_capability_hash{"IP2Location"} && ($ipv6calc_capability_hash{"IP2Location"} == 1)) { if ($db_enabled{"IP2LOCATION"} == 0) { $options_ipv6calc .= " --db-ip2location-disable"; } else { $options_ipv6calc .= $options_ipv6calc_ip2location; $db_columns++ if ($mode_db_entries_in_subcolumns == 1); $key_db_tokens{"IP2LOCATION"} = 0; }; }; if (defined $ipv6calc_capability_hash{"DBIP2"} && ($ipv6calc_capability_hash{"DBIP2"} == 1)) { if ($db_enabled{"DBIP2"} == 0) { $options_ipv6calc .= " --db-dbip2-disable"; } else { $options_ipv6calc .= $options_ipv6calc_dbip2; $db_columns++ if ($mode_db_entries_in_subcolumns == 1); $key_db_tokens{"DBIP2"} = 0; }; }; if (defined $ipv6calc_capability_hash{"External"} && ($ipv6calc_capability_hash{"External"} == 1)) { if ($db_enabled{"EXTERNAL"} == 0) { $options_ipv6calc .= " --db-external-disable"; } else { $options_ipv6calc .= $options_ipv6calc_external; $db_columns++ if ($mode_db_entries_in_subcolumns == 1); $key_db_tokens{"EXTERNAL"} = 0; }; }; } else { # fallback for ipv6calc < 0.97.4 if (defined $ipv6calc_feature_hash{"IP2Location"} && ($ipv6calc_feature_hash{"IP2Location"} == "1")) { if ($db_enabled{"IP2LOCATION"} == 0) { $options_ipv6calc .= " --db-ip2location-disable"; } else { $options_ipv6calc .= $options_ipv6calc_ip2location; $db_columns++ if ($mode_db_entries_in_subcolumns == 1); $key_db_tokens{"IP2LOCATION"} = 0; }; }; }; if ($db_columns == 0) { # no databases, disable subcolumn mode $mode_db_entries_in_subcolumns = 0; } elsif ($db_columns > 0) { # one column is always available $db_columns--; }; ## remote if ( defined $addr_remote ) { $result = ipv6calc_exec($addr_remote, "***remote***", \%infoh_remote, \@sort_remote); if ($result != 0) { &print_error(); }; if (defined $name_remote) { if ($name_remote ne $addr_remote) { $infoh_remote{'NAME'} = $name_remote; push @sort_remote, 'NAME'; }; }; if (defined $user_agent) { $infoh_remote{'HTTP_USER_AGENT'} = $user_agent; push @sort_remote, 'HTTP_USER_AGENT'; }; # add x-forward-for information to client if not handled otherwise if ((defined $x_forwarded_for) && (scalar(@proxy_addresses) == 0)) { $infoh_remote{'HTTP_X_FORWARDED_FOR'} = $x_forwarded_for; push @sort_remote, 'HTTP_X_FORWARDED_FOR'; }; # add via information to client if not handled otherwise if ((defined $via) && (scalar(@proxy_infos) == 0)) { $infoh_remote{'HTTP_VIA'} = $via; push @sort_remote, 'HTTP_VIA'; }; }; ## server if ((defined $addr_server) && ($skip_server == 0)) { $result = ipv6calc_exec($addr_server, "***server***", \%infoh_server, \@sort_server); if ($result != 0) { &print_error(); }; if (defined $name_server) { if ($name_server ne $addr_server) { $infoh_server{'NAME'} = $name_server; push @sort_server, 'NAME'; }; }; }; ## input if ((defined $input) && ($mode eq "form" || $mode eq "mixed") && ($tokenhash_found == 1 && $tokentime_found == 1)) { $result = ipv6calc_exec($input, "***input***", \%infoh_input, \@sort_input); if ($result != 0) { $infoh_input{'RESULT'} = "(unrecognized input)"; push @sort_input, 'RESULT'; }; }; ## Print content if ($debug & 0x01) { print STDERR "REMOTE\n"; for my $key (keys %infoh_remote) { print STDERR " ". $key . "=" . $infoh_remote{$key} . "\n"; }; print STDERR "SERVER\n"; for my $key (keys %infoh_server) { print STDERR " " . $key . "=" . $infoh_server{$key} . "\n"; }; print STDERR "INPUT\n"; for my $key (keys %infoh_input) { print STDERR " " . $key . "=" . $infoh_input{$key} . "\n"; }; }; ## Calculate max lengths # geodb my $length_max_key_geodb = 0; my $length_max_desc_geodb = 0; for my $key (keys %text_geodb) { if (length($key) > $length_max_key_geodb) { $length_max_key_geodb = length($key); }; if (length($text_geodb{$key}) > $length_max_desc_geodb) { $length_max_desc_geodb = length($text_geodb{$key}); }; }; # subkeys my $length_max_key_sub = 0; my $length_max_desc_sub = 0; for my $key (keys %text) { next if ($key !~ /^_/o); if (length($key) > $length_max_key_sub) { $length_max_key_sub = length($key); }; if (length($text{$key}->{$lang}) > $length_max_desc_sub) { $length_max_desc_sub = length($text{$key}->{$lang}); }; }; # others for my $key (keys %text) { next if ($key =~ /^_/o); if (length($key) > $length_max_key) { $length_max_key = length($key); }; if (length($text{$key}->{$lang}) > $length_max_description) { $length_max_description = length($text{$key}->{$lang}); }; }; # combine if ($length_max_key_sub + $length_max_key_geodb > $length_max_key) { $length_max_key = $length_max_key_sub + $length_max_key_geodb; }; if ($length_max_desc_sub + $length_max_desc_geodb + 1 > $length_max_description) { $length_max_description = $length_max_desc_sub + $length_max_desc_geodb + 1; }; goto("OUTPUT_BEGIN"); OUTPUT_BEGIN_ERROR: if (!defined $error) { $error = "$program_name: unexpected problem occurs"; $error_flag = 1; } else { $error = "$program_name: " . $error; }; $returncode = 1; # delay error output by sleeping 3-6 seconds select(undef, undef, undef, 3 * (1 + rand(1))) if (! ($debug & 0x1000)); OUTPUT_BEGIN: ## Print output # ## HTML header &print_tagoutput ("Content-type: text/html\n\n"); &print_textonly ("Content-type: text/plain\n\n"); if ($outputformat eq "htmlfull") { &print_tagoutput ( "\n" ); &print_tagoutput ( "\n" ); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); &print_tagoutput ( " " ); print $text{'title'}->{$lang}; &print_tagoutput ( "\n" ); # automatic redirect on errors if (defined $error && defined $ENV{'SCRIPT_NAME'} && $error_flag == 0) { if ($error_insert_input == 1) { $uri .= "input=" . uri_escape($input); }; if (defined $lang) { if (length($uri) > 0) { $uri .= "&"; }; $uri .= "lang=$lang"; }; if (length($uri) > 0) { $uri = "?" . $uri; }; &print_tagoutput ( " \n" ); }; &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); }; if (defined $error) { print $error . "\n"; if ($outputformat eq "htmlfull") { if (defined $error && defined $ENV{'SCRIPT_NAME'} && $error_flag == 0) { print " (redirected soon back)\n"; } else { print " (hit 'back' in browser)\n"; }; }; goto("OUTPUT_END"); }; &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); for (my $i = 0; $i < $db_columns + 1; $i++) { &print_tagoutput ( " \n" ); }; &print_tagoutput ( " \n" ); if ($mode eq "form" || $mode eq "mixed") { # sleep 500-1000 ms select(undef, undef, undef, 0.5 * (1 + rand(1))) if (! ($debug & 0x1000)); # Input &print_textonly ("\n"); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); # same line &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); if (defined $input && !defined $input_default) { &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); # same line &print_tagoutput ( " \n" ); &print_infohash (\%infoh_input, \@sort_input, 'form'); }; }; if ($mode eq "info" || $mode eq "mixed") { &print_textonly("INFO__OUTPUTVERSION=\"" . $outputversion_textkeyvalue . "\"\n") if ($outputformat eq "textkeyvalue"); # Client &print_textonly ("\n") if ($outputformat ne "textkeyvalue"); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); # same line &print_tagoutput ( " \n" ); &print_infohash (\%infoh_remote, \@sort_remote, 'client'); # Proxy if (scalar(@proxy_addresses) > 0) { &print_textonly ("\n"); &print_textonly("PROXY__COUNT=\"" . scalar(@proxy_addresses) . "\"\n") if ($outputformat eq "textkeyvalue"); }; my $proxy_count = 0; for my $address (@proxy_addresses) { $proxy_count++; undef %infoh_proxy; undef @sort_proxy; $result = ipv6calc_exec($address, "***proxy***", \%infoh_proxy, \@sort_proxy); if ($result != 0) { # silently skip next; } else { # add information from "via" header if (defined $proxy_infos[$proxy_count - 1]) { $infoh_proxy{'PROXY_INFO'} = $proxy_infos[$proxy_count - 1]; splice @sort_proxy, 0, 0, 'PROXY_INFO'; }; &print_textonly ("\n") if ($outputformat ne "textkeyvalue"); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); # same line &print_tagoutput ( " \n" ); &print_infohash (\%infoh_proxy, \@sort_proxy, 'proxy', $proxy_count); }; }; if ((defined $addr_server) && ($skip_server == 0)) { # Server &print_textonly ("\n") if ($outputformat ne "textkeyvalue"); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); # same line &print_tagoutput ( " \n" ); &print_infohash (\%infoh_server, \@sort_server, 'server'); }; }; ## create uri sub create_uri($) { my $string = $_[0]; $string =~ s#(https?://[^ ]+)#$1#g; return($string); }; # Footer &print_textonly ("\n"); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); &print_tagoutput ( "
" ); &print_tagoutput ( "Enter your IPv4/IPv6/MAC/EUI-64 " . $text{'Address'}->{$lang}); &print_tagoutput ( "
\n" ); &print_tagoutput ( "

\n" ); &print_tagoutput ( "

\n" ); if (!defined $input) { $input = "::1"; $input_default = 1; }; &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); &print_tagoutput ( " \n" ); &print_tagoutput ( " {$lang} . "\"> {$lang} . "\">\n" ); &print_tagoutput ( "
\n" ); &print_tagoutput ( "
\n" ); &print_tagoutput ( " \n" ); &print_tagoutput ( " {$lang} . "\">\n" ); &print_tagoutput ( "
\n" ); &print_textonly ("\n"); &print_tagoutput ( "
" ); print $text{'INPUT'}->{$lang} . " " . $input; &print_textonly ("\n"); &print_tagoutput ( "
" ); print $text{'REMOTE'}->{$lang} if ($outputformat ne "textkeyvalue"); &print_textonly ("\n"); &print_tagoutput ( "
" ); print $text{'PROXY'}->{$lang} . " #" . $proxy_count if ($outputformat ne "textkeyvalue"); &print_textonly ("\n"); &print_tagoutput ( "
" ); print $text{'SERVER'}->{$lang} if ($outputformat ne "textkeyvalue"); &print_textonly ("\n"); &print_tagoutput ( "
\n" ); my $datetime = POSIX::strftime("%Y-%m-%d %H:%M:%S", gmtime) . " UTC"; if ($outputformat =~ /^html/o) { print " " . $text{'generated'}->{$lang} . " " . encode_entities($program_name) . " " . encode_entities($program_version) . ", " . encode_entities($program_copyright) . " " . $text{'at'}->{$lang} . " " . $datetime . "\n"; print "
\n"; print " " . $text{'powered'}->{$lang} . " " . encode_entities($ipv6calc_name) . " " . encode_entities($ipv6calc_version) . ", " . encode_entities($ipv6calc_copyright); if (length($ipv6calc_features) > 0) { print " (features: " . $ipv6calc_features . ")"; }; if (length($ipv6calc_capabilities) > 0) { print " (capabilities: " . $ipv6calc_capabilities . ")"; }; if (length($ipv6calc_settings) > 0) { print " (settings: " . $ipv6calc_settings . ")"; }; print "\n"; if (scalar(keys %db_info_ip2location) > 0) { print "
\n"; print " " . $text{'powered'}->{$lang} . " IP2Location " . $text{'database'}->{$lang} . " " . create_uri(encode_entities(join(" / ", sort keys %db_info_ip2location))). "\n"; }; if (scalar(keys %db_info_geoip2) > 0) { print "
\n"; print " " . $text{'powered'}->{$lang} . " MaxMind " . $text{'database'}->{$lang} . " " . encode_entities(join(" / ", sort keys %db_info_geoip2)) . "\n"; }; if (scalar(keys %db_info_dbip2) > 0) { print "
\n"; print " " . $text{'powered'}->{$lang} . " db-ip.com " . $text{'database'}->{$lang} . " " . encode_entities(join(" / ", sort keys %db_info_dbip2)) . "\n"; }; if (scalar(keys %db_info_external) > 0) { print "
\n"; print " " . $text{'powered'}->{$lang} . " External " . $text{'database'}->{$lang} . " " . encode_entities(join(" / ", sort keys %db_info_external)) . "\n"; }; if (scalar(keys %db_info_builtin) > 0) { print "
\n"; print " " . $text{'powered'}->{$lang} . " BuiltIn " . $text{'database'}->{$lang} . " " . encode_entities(join(" / ", sort keys %db_info_builtin)) . "\n"; }; if ($api_used_geonamesorg > 0) { print "
\n"; print " " . $text{'credits'}->{$lang} . " GeoNames\n"; }; } else { # text output print "INFO__GENERATED=" if ($outputformat eq "textkeyvalue"); print $chr_quote . $text{'generated'}->{$lang} . " " . $program_name . " " . $program_version . ", " . $program_copyright . " " . $text{'at'}->{$lang} . " " . $datetime . $chr_quote . "\n"; print "INFO__POWEREDBY=" if ($outputformat eq "textkeyvalue"); print $chr_quote . $text{'powered'}->{$lang} . " " . $ipv6calc_name . " " . $ipv6calc_version . ", " . $ipv6calc_copyright . " (" . $urls{'IPV6CALC'} . ")"; if (length($ipv6calc_features) > 0) { print " (features: " . $ipv6calc_features . ")"; }; if (length($ipv6calc_capabilities) > 0) { print " (capabilities: " . $ipv6calc_capabilities . ")"; }; if (length($ipv6calc_settings) > 0) { print " (settings: " . $ipv6calc_settings . ")"; }; print $chr_quote . "\n"; if (scalar(keys %db_info_ip2location) > 0) { print "INFO__POWEREDBY_IP2LOCATION=" if ($outputformat eq "textkeyvalue"); print $chr_quote . $text{'powered'}->{$lang} . " " . $text{'database'}->{$lang} . " " . join(" / ", sort keys %db_info_ip2location) . " (" . $urls{'IP2LOCATION'} . ")" . $chr_quote . "\n"; }; if (scalar(keys %db_info_geoip2) > 0) { print "INFO__POWEREDBY_GEOIP2=" if ($outputformat eq "textkeyvalue"); print $chr_quote . $text{'powered'}->{$lang} . " " . $text{'database'}->{$lang} . " " . join(" / ", sort keys %db_info_geoip2) . " (" . $urls{'GEOIP2'} . ")" . $chr_quote . "\n"; }; if (scalar(keys %db_info_dbip2) > 0) { print "INFO__POWEREDBY_DBIP2=" if ($outputformat eq "textkeyvalue"); print $chr_quote . $text{'powered'}->{$lang} . " " . $text{'database'}->{$lang} . " " . join(" / ", sort keys %db_info_dbip2) . " (" . $urls{'DBIP2'} . ")" . $chr_quote . "\n"; }; if (scalar(keys %db_info_external) > 0) { print "INFO__POWEREDBY_EXTERNAL=" if ($outputformat eq "textkeyvalue"); print $chr_quote . $text{'powered'}->{$lang} . " " . $text{'database'}->{$lang} . " " . join(" / ", sort keys %db_info_external) . $chr_quote . "\n"; }; if (scalar(keys %db_info_builtin) > 0) { print "INFO__POWEREDBY_BUILTIN=" if ($outputformat eq "textkeyvalue"); print $chr_quote . $text{'powered'}->{$lang} . " " . $text{'database'}->{$lang} . " " . join(" / ", sort keys %db_info_builtin) . $chr_quote . "\n"; }; if ($api_used_geonamesorg > 0) { print "INFO__CREDITS_GEONAMESORG=" if ($outputformat eq "textkeyvalue"); print $chr_quote . $text{'credits'}->{$lang} . " GeoNames (" . $urls{'GEONAMES'} . ")" . $chr_quote . "\n"; }; }; &print_tagoutput ( "
\n" ); OUTPUT_END: if ($outputformat eq "htmlfull") { &print_tagoutput ( " \n" ); &print_tagoutput ( "\n" ); }; exit ($returncode); ipv6calc-4.1.0/ipv6calcweb/ipv6calcweb.conf000066400000000000000000000073601444154247200205210ustar00rootroot00000000000000## Access control Order Deny,Allow # Allow from localhost Allow from 127.0.0.1 Allow from ::1 # Allow from all (enable this once you want to serve this as a public service #Allow from all # Final default Deny from all ## unset all possible headers related to supported environment variables to avoid unexpected preset via extra headers in request RequestHeader unset IPV6CALCWEB-MODE RequestHeader unset IPV6CALCWEB-INFO-SERVER RequestHeader unset IPV6CALCWEB-DEBUG RequestHeader unset IPV6CALCWEB-BIN-IPV6CALC RequestHeader unset IPV6CALCWEB-LIB-IPV6CALC RequestHeader unset IPV6CALCWEB-DEBUG-IPV6CALC RequestHeader unset IPV6CALCWEB-DB-MMDB-LIB RequestHeader unset IPV6CALCWEB-DB-IP2LOCATION-DIR RequestHeader unset IPV6CALCWEB-DB-IP2LOCATION-LIB RequestHeader unset IPV6CALCWEB-DB-GEOIP-DIR RequestHeader unset IPV6CALCWEB-DB-GEOIP-LIB RequestHeader unset IPV6CALCWEB-DB-DBIP-DIR RequestHeader unset IPV6CALCWEB-DB-EXTERNAL-DIR RequestHeader unset IPV6CALCWEB-OUTPUT-FORMAT RequestHeader unset IPV6CALCWEB-OUTPUT-FORMAT-HTML-DB RequestHeader unset IPV6CALCWEB-ANTIDOS-LOAD1 RequestHeader unset IPV6CALCWEB-ANTIDOS-LOAD5 RequestHeader unset IPV6CALCWEB-ANTIDOS-LOAD15 RequestHeader unset IPV6CALCWEB-ANTIDOS-PROCMAX RequestHeader unset IPV6CALCWEB-DB-GEOIP RequestHeader unset IPV6CALCWEB-DB-GEOIP2 RequestHeader unset IPV6CALCWEB-DB-DBIP RequestHeader unset IPV6CALCWEB-DB-DBIP2 RequestHeader unset IPV6CALCWEB-DB-IP2LOCATION RequestHeader unset IPV6CALCWEB-DB-EXTERNAL RequestHeader unset IPV6CALCWEB-USERNAME-GEONAMESORG ## mode of CGI: info (default), form (display a form for user input), mixed (both) SetEnv HTTP_IPV6CALCWEB_MODE info ## server information included: 0 (default), 1 (show information about server) SetEnv HTTP_IPV6CALCWEB_INFO_SERVER 0 ## debug to error log, check ipv6calcweb.cgi debug section for more SetEnv HTTP_IPV6CALCWEB_DEBUG 0 ## debug ipv6calc call to error log, check ipv6calc debug options for more # SetEnv HTTP_IPV6CALCWEB_DEBUG_IPV6CALC -1 ## default output format: html (default if SERVER_PROTOCOL=INCLUDED, aka called by ServerSideIncludes), htmlfull (default), text, textkeyvalue #SetEnv HTTP_IPV6CALCWEB_OUTPUT_FORMAT textkeyvalue ## switch HTML output format from sequential listing to subcolumns # SetEnv HTTP_IPV6CALCWEB_OUTPUT_FORMAT_HTML_DB subcolumns ## path to ipv6calc binary (optional) # SetEnv HTTP_IPV6CALCWEB_BIN_IPV6CALC /usr/local/bin/ipv6calc-beta ## path to ipv6calc library (optional) # SetEnv HTTP_IPV6CALCWEB_LIB_IPV6CALC /usr/local/lib64 ## IP2Location database directory (optional) # SetEnv HTTP_IPV6CALCWEB_DB_IP2LOCATION_DIR /var/local/share/IP2Location ## IP2Location library file (optional in dyn-load support) # SetEnv HTTP_IPV6CALCWEB_DB_IP2LOCATION_LIB libIP2Location.so ## GeoIP database directory (optional) # SetEnv HTTP_IPV6CALCWEB_DB_GEOIP_DIR /var/local/share/GeoIP ## GeoIP library file (optional on dyn-load support) # SetEnv HTTP_IPV6CALCWEB_DB_GEOIP_LIB libGeoIP.so.1 ## DBIP database directory (optional) # SetEnv HTTP_IPV6CALCWEB_DB_DBIP_DIR /var/local/share/DBIP/ ## External database directory (optional) # SetEnv HTTP_IPV6CALCWEB_DB_EXTERNAL_DIR /var/local/share/ipv6calc/db/ ## username for link to geonames.org API (see https://www.geonames.org/export/web-services.html) # SetEnv HTTP_IPV6CALCWEB_USERNAME_GEONAMESORG demo ## General DB usage 1 (enable), 0 (disable) # SetEnv HTTP_IPV6CALCWEB_DB_GEOIP 0 # (default, legacy) # SetEnv HTTP_IPV6CALCWEB_DB_GEOIP2 1 # (default) # SetEnv HTTP_IPV6CALCWEB_DB_DBIP 0 # (default, legacy) # SetEnv HTTP_IPV6CALCWEB_DB_DBIP2 1 # (default) # SetEnv HTTP_IPV6CALCWEB_DB_IP2LOCATION 1 # (default) # SetEnv HTTP_IPV6CALCWEB_DB_EXTERNAL 0 # (default) ipv6calc-4.1.0/ipv6calcweb/test_ipv6calcweb.sh000077500000000000000000000132411444154247200212430ustar00rootroot00000000000000#!/usr/bin/env bash # # Project : ipv6calc/ipv6calcweb # File : test_ipv6calcweb.sh # Version : $Id: 625359ea7ba0db6df614426bf9e5aecf9ed82b1e $ # Copyright : 2012-2021 by Peter Bieringer # # Information: # Test script for ipv6calcweb # verbose=false opt_debug=false while getopts "Vf:d" opt; do case $opt in f) opt_format="$OPTARG" ;; d) opt_debug=true ;; V) verbose=true ;; *) echo "$0 [-V] [-d] [-f ]" echo " -d debug" echo " -V verbose" echo " -f format option" exit 1 ;; esac done shift $[ $OPTIND - 1 ] if [ -z "$1" ]; then echo "Need IPv4/v6 address as argument #1" exit 1 fi if [ ! -f ipv6calcweb.cgi ]; then make || exit 1 fi if [ "$OSTYPE" = "linux-gnu" ]; then # Linux has no issues -T (but FreeBSD) perlopt=" -T" fi ## check for empty stderr export HTTP_IPV6CALCWEB_DEBUG="0x5000" # no sleeps and no Anti-DoS set -x stderr=$(HTTP_IPV6CALCWEB_OUTPUT_FORMAT=html HTTP_IPV6CALCWEB_OUTPUT_FORMAT_HTML_DB=subcolumns REMOTE_ADDR=50.60.70.80 perl -w $perlopt ipv6calcweb.cgi 2>&1 >/dev/null) set +x if [ -n "$stderr" ]; then echo "ERROR : stderr not empty: $stderr" exit 1 fi set -x stderr=$(HTTP_IPV6CALCWEB_OUTPUT_FORMAT=html HTTP_IPV6CALCWEB_OUTPUT_FORMAT_HTML_DB=sequential REMOTE_ADDR=50.60.70.80 perl -w $perlopt ipv6calcweb.cgi 2>&1 >/dev/null) set +x if [ -n "$stderr" ]; then echo "ERROR : stderr not empty: $stderr" exit 1 fi set -x stderr=$(HTTP_IPV6CALCWEB_OUTPUT_FORMAT=text REMOTE_ADDR=50.60.70.80 perl -w $perlopt ipv6calcweb.cgi 2>&1 >/dev/null) set +x if [ -n "$stderr" ]; then echo "ERROR : stderr not empty: $stderr" exit 1 fi ## very basic output format tests test="run 'ipv6calcweb.cgi' very basic output format tests" echo "INFO : $test" for format in textkeyvalue text html htmlfull; do if [ -n "$opt_format" -a "$opt_format" != "$format" ]; then echo "NOTICE: skip format: $format" continue fi export HTTP_IPV6CALCWEB_DEBUG="0x5000" # no sleeps and no Anti-DoS $verbose && echo "INFO : test format: $format" $verbose && echo "DEBUG : execute: HTTP_IPV6CALCWEB_DEBUG=$HTTP_IPV6CALCWEB_DEBUG HTTP_IPV6CALCWEB_OUTPUT_FORMAT=\"$format\" perl -w $perlopt ipv6calcweb.cgi" if $opt_debug; then HTTP_IPV6CALCWEB_OUTPUT_FORMAT="$format" perl -w $perlopt ipv6calcweb.cgi rc=$? else if $verbose; then HTTP_IPV6CALCWEB_OUTPUT_FORMAT="$format" perl -w $perlopt ipv6calcweb.cgi >/dev/null rc=$? else HTTP_IPV6CALCWEB_OUTPUT_FORMAT="$format" perl -w $perlopt ipv6calcweb.cgi >/dev/null 2>/dev/null rc=$? fi fi if [ $rc -ne 0 ];then echo "ERROR : output format reports an error: $format" if ! $opt_debug; then HTTP_IPV6CALCWEB_OUTPUT_FORMAT="$format" perl -w $perlopt ipv6calcweb.cgi fi exit 1 fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" ## more sophisticated checks REMOTE_ADDR="$1" REMOTE_HOST="client.domain.example" HTTP_USER_AGENT="test_ipv6calcweb" SERVER_ADDR="192.0.2.1" SERVER_NAME="server.domain.example" QUERY_STRING="$2" HTTP_IPV6CALCWEB_DEBUG="0x5000" # no sleeps and no Anti-DoS HTTP_IPV6CALCWEB_INFO_SERVER="1" HTTP_X_FORWARDED_FOR="5.6.7.8, 9.10.11.12" HTTP_VIA="1.0 fred, 1.1 nowhere.com" export REMOTE_ADDR REMOTE_HOST HTTP_USER_AGENT SERVER_ADDR SERVER_NAME QUERY_STRING HTTP_IPV6CALCWEB_DEBUG HTTP_IPV6CALCWEB_INFO_SERVER HTTP_X_FORWARDED_FOR HTTP_VIA test="run 'ipv6calcweb.cgi' sophisticated tests" echo "INFO : $test" for format in textkeyvalue text html htmlfull; do if [ -n "$opt_format" -a "$opt_format" != "$format" ]; then echo "NOTICE: skip format: $format" continue fi HTTP_IPV6CALCWEB_OUTPUT_FORMAT="$format" export HTTP_IPV6CALCWEB_OUTPUT_FORMAT if $verbose; then OUTPUT="`perl -w $perlopt ipv6calcweb.cgi`" result=$? else OUTPUT="`perl -w $perlopt ipv6calcweb.cgi 2>&1`" result=$? fi if $opt_debug; then echo "$OUTPUT" fi if [ $result -ne 0 ];then echo "ERROR : output format reports an error: $format" if ! $opt_debug; then echo "$OUTPUT" fi exit 1 fi $verbose || echo -n "." done || exit 1 $verbose || echo echo "INFO : $test successful" ## test Anti-DoS implementation if [ -r /proc/loadavg ]; then test="run 'ipv6calcweb.cgi' Anti-DoS tests" echo "INFO : $test" for e in 1 5 15 p; do unset HTTP_IPV6CALCWEB_ANTIDOS_LOAD1 unset HTTP_IPV6CALCWEB_ANTIDOS_LOAD5 unset HTTP_IPV6CALCWEB_ANTIDOS_LOAD15 unset HTTP_IPV6CALCWEB_ANTIDOS_PROCMAX case $e in 1) export HTTP_IPV6CALCWEB_ANTIDOS_LOAD1=-1 ;; 5) export HTTP_IPV6CALCWEB_ANTIDOS_LOAD5=-1 ;; 15) export HTTP_IPV6CALCWEB_ANTIDOS_LOAD15=-1 ;; p) export HTTP_IPV6CALCWEB_ANTIDOS_PROCMAX=-1 ;; esac export HTTP_IPV6CALCWEB_DEBUG="0x1000" # no sleeps export HTTP_IPV6CALCWEB_OUTPUT_FORMAT="text" echo "INFO : Anti-DoS test: $e" output=$(perl -w $perlopt ipv6calcweb.cgi) rc=$? if [ $rc -ne 1 ];then echo "ERROR : Anti-DoS test reports unexpected error: rc=$rc" echo "$output" exit 1 fi if echo "$output" | grep -q "System overloaded"; then true else echo "ERROR : Anti-DoS test output not expected" echo "$output" | head -5 exit 1 fi done || exit 1 $verbose || echo echo "INFO : $test successful" else echo "NOTICE: AntiDDoS test skipped, /proc/loadavg missing" fi #if [ $result -ne 0 ]; then # echo "TEST FAILED (exit code != 0)" # HTTP_IPV6CALCWEB_DEBUG="0xffff" # export HTTP_IPV6CALCWEB_DEBUG # ./ipv6calcweb.cgi # exit 1 #else # # check output # if echo "$OUTPUT" | grep -Eq "(ERROR|problem)"; then # echo "TEST FAILED (ERROR|problem) occurs" # HTTP_IPV6CALCWEB_DEBUG="0xffff" # export HTTP_IPV6CALCWEB_DEBUG # ./ipv6calcweb.cgi # exit 1 # fi # if echo "$OUTPUT" | grep -Eq "(reserved)"; then # $verbose || echo "$OUTPUT" # fi #fi ipv6calc-4.1.0/ipv6calcweb/test_ipv6calcweb_form.sh000077500000000000000000000055251444154247200222740ustar00rootroot00000000000000#!/usr/bin/env bash # # Project : ipv6calc/ipv6calcweb # File : test_ipv6calcweb_form.sh # Version : $Id: d3e0b4815fe4240d39e0c31b7020a3e7fedc39a9 $ # Copyright : 2012-2021 by Peter Bieringer # # Information: # Test script for form mode of ipv6calcweb # verbose=false while getopts "Vh\?" opt; do case $opt in V) verbose=true ;; *) echo "$0 [-V]" echo " -V verbose" exit 1 ;; esac done # Test Scenarios for autodetection "good case" source ../ipv6calc/test_scenarios.sh if [ ! -f ipv6calcweb.cgi ]; then echo "ERROR : run make" exit 1 fi if [ "$OSTYPE" = "linux-gnu" ]; then # Linux has no issues -T (but FreeBSD) perlopt=" -T" fi REMOTE_ADDR="127.0.0.1" REMOTE_HOST="client.domain.example" HTTP_USER_AGENT="test_ipv6calcweb" SERVER_ADDR="192.0.2.1" SERVER_NAME="server.domain.example" HTTP_IPV6CALCWEB_MODE="form" HTTP_IPV6CALCWEB_DEBUG="0x5000" # no sleeps and no Anti-DoS export REMOTE_ADDR REMOTE_HOST HTTP_USER_AGENT SERVER_ADDR SERVER_NAME QUERY_STRING HTTP_IPV6CALCWEB_MODE HTTP_IPV6CALCWEB_DEBUG # extract tokenhash & tokentime OUTPUT="`perl -w $perlopt ipv6calcweb.cgi`" result=$? if [ $result -ne 0 ]; then echo "TEST FAILED" exit 1 else # check output if echo "$OUTPUT" | grep -Eq "(ERROR|problem)"; then echo "TEST FAILED" exit 1 fi fi tokenhash="`echo "$OUTPUT" | grep 'name="tokenhash"' | sed 's/.* name="tokenhash" value="\([0-9a-f]*\)" .*/\1/'`" tokentime="`echo "$OUTPUT" | grep 'name="tokentime"' | sed 's/.* name="tokentime" value="\([0-9]*\)" .*/\1/'`" if [ ${#tokenhash} -ne 72 ]; then echo "TEST FAILED (tokenhash extraction)" echo "$OUTPUT" exit 1 fi if [ ${#tokentime} -ne 10 ]; then echo "TEST FAILED (tokentime extraction)" echo "$OUTPUT" exit 1 fi $verbose && echo "DEBUG: extracted tokenhash: $tokenhash" $verbose && echo "DEBUG: extracted tokentime: $tokentime" test="run 'ipv6calcweb.cgi' good tests" echo "INFO : $test" testscenarios_auto_good | grep -v "^#" | grep -Evw "(bitstring|base85)" | grep -v "%" | while read input type; do input_escaped="$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "$input")" QUERY_STRING="input=$input_escaped&tokenhash=$tokenhash&tokentime=$tokentime" $verbose && echo "Test: $input ($input_escaped) ($type)" $verbose && echo "QUERY_STRING=$QUERY_STRING" export REMOTE_ADDR REMOTE_HOST HTTP_USER_AGENT SERVER_ADDR SERVER_NAME QUERY_STRING HTTP_IPV6CALCWEB_MODE if $verbose; then OUTPUT="`perl -w $perlopt ipv6calcweb.cgi`" result=$? else OUTPUT=$(perl -w $perlopt ipv6calcweb.cgi 2>/dev/null) result=$? fi $verbose && echo "Result: $result" if [ $result -ne 0 ]; then echo "TEST FAILED" exit 1 else # check output if echo "$OUTPUT" | grep -Eq "(ERROR|problem)"; then echo "TEST FAILED" exit 1 fi fi $verbose || echo -n "." done || exit $? $verbose || echo echo "INFO : $test successful" ipv6calc-4.1.0/ipv6loganon/000077500000000000000000000000001444154247200154745ustar00rootroot00000000000000ipv6calc-4.1.0/ipv6loganon/Makefile.in000066400000000000000000000043131444154247200175420ustar00rootroot00000000000000# Project : ipv6calc/ipv6loganon # File : Makefile # Version : $Id: 0738ee32d572b1d79b4d86840c4967fe40d70038 $ # Copyright : 2002-2022 by Peter Bieringer # # Information: # Makefile for ipv6loganon # prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ # Compiler and Linker Options # -D__EXTENSIONS__ is for Solaris & strtok_r DEFAULT_CFLAGS ?= -O2 -Wall -g @CFLAGS_EXTRA@ CFLAGS += -D__EXTENSIONS__ LDFLAGS += @LDFLAGS@ INCLUDES= $(COPTS) @MD5_INCLUDE@ @GETOPT_INCLUDE@ @IP2LOCATION_INCLUDE_L1@ @MMDB_INCLUDE_L1@ -I../ -I../lib/ LIBS = @IPV6CALC_LIB@ @IP2LOCATION_LIB_L1@ @MMDB_LIB_L1@ @DYNLOAD_LIB@ GETOBJS = @LIBOBJS@ CC = @CC@ LDFLAGS_EXTRA = @LDFLAGS_EXTRA@ LDFLAGS_EXTRA_STATIC = @LDFLAGS_EXTRA_STATIC@ OBJS = ipv6loganon.o ipv6loganonhelp.o # splint SPLINT_OPT_OUTSIDE = -uniondef +matchanyintegral --nullassign +ignoresigns -compdef -usedef -modobserver -formatconst -warnposix -exportlocal SPLINT_TODO_LATER = -unrecog -retvalint all: ipv6loganon .c.o: $(CC) -c $< $(DEFAULT_CFLAGS) $(CFLAGS) $(INCLUDES) $(OBJS): ipv6loganonoptions.h ipv6loganonhelp.h ipv6loganon.h ../config.h ../lib/ipv6calccommands.h libipv6calc: cd ../ && ${MAKE} lib-make libipv6calc_db_wrapper: cd ../ && ${MAKE} lib-make ipv6loganon: $(OBJS) libipv6calc libipv6calc_db_wrapper $(CC) -o ipv6loganon $(OBJS) $(GETOBJS) $(LDFLAGS) $(LIBS) $(LDFLAGS_EXTRA) -lm static: ipv6loganon $(CC) -o ipv6loganon-static $(OBJS) $(GETOBJS) $(LDFLAGS) $(LIBS) $(LDFLAGS_EXTRA_STATIC) -lm -static distclean: ${MAKE} clean autoclean: ${MAKE} distclean clean: rm -f ipv6loganon ipv6loganon-static *.o test: ipv6loganon LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_ipv6loganon.sh LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_ipv6loganon.sh bulk test-minimal: ${MAKE} test test-ldlibpath: ipv6loganon LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_ipv6loganon.sh LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_ipv6loganon.sh bulk codecheck: ${MAKE} splint splint: splint *.c ../lib/*.c -I.. -I../lib $(SPLINT_OPT_OUTSIDE) $(SPLINT_TODO_LATER) install: mkdir -p $(DESTDIR)$(bindir) install -m 755 ipv6loganon $(DESTDIR)$(bindir) ipv6calc-4.1.0/ipv6loganon/README000066400000000000000000000055151444154247200163620ustar00rootroot00000000000000$Id: 47c0025f5952d76099a36c512804fbd4f0c183a9 $ ipv6loganon is a HTTP server log file anonymizer It expect a log line on stdin with an IPv4/IPv6 address as first token. This token would be anonymized according to given/default options. The anonymizer would keep as much information as possible for IPv6 address types. Client-side IID would be anonymized by - EUI-48 based: serial number would be zero'ed, keeping OID - EUI-64 based: serial number would be zero'ed, keeping OID - ISATAP: client IPv4 address would be anonymized by given IPv4 mask - TEREDO: client IPv4 address would be anonymized by given IPv4 mask client port would be zero'ed - 6to4(Microsoft): client IPv4 address would be anonymized by given IPv4 mask - local: whole IID would be zero'ed Client-side SLA would be anonymized by - SLA would be zero'ed Prefix would be anonymized by - 6to4: client IPv4 address would be anonymized by given IPv4 mask Compat/Mapped IPv4 addresses would be anonymized by - IPv4 address would be anonymized by given IPv4 mask Afterwards, the modified address and the trailing line would be printed to stdout. Example: Original lines (stdin): 207.46.98.53 - - [01/Jan/2007:00:01:15 +0100] "GET /Linux+IPv6-HOWTO/x1112.html HTTP/1.0" 200 6162 "-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)" 253 6334 2002:52b6:6b01:1:216:17ff:fe01:2345 - - [10/Jan/2007:15:04:28 +0100] "GET /favicon.ico HTTP/1.1" 200 4710 "http://www.bieringer.de/linux/IPv6/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.9) Gecko/20061219 Fedora/1.5.0.9-1.fc6 Firefox/1.5.0.9 pango-text" 413 5005 Modified lines (stdout): 207.46.98.0 - - [01/Jan/2007:00:01:15 +0100] "GET /Linux+IPv6-HOWTO/x1112.html HTTP/1.0" 200 6162 "-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)" 253 6334 2002:52b6:6b00:0:216:17ff:fe00:0 - - [10/Jan/2007:15:04:28 +0100] "GET /favicon.ico HTTP/1.1" 200 4710 "http://www.bieringer.de/linux/IPv6/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.9) Gecko/20061219 Fedora/1.5.0.9-1.fc6 Firefox/1.5.0.9 pango-text" 413 5005 Since version 0.90.0 also inline usage in Apache webserver is supported like: httpd.conf: # Default log CustomLog "/var/log/httpd/access_log" combined # Anonymized log (in addition, more than one directive is supported) CustomLog "|/usr/local/bin/ipv6loganon -a -f /var/log/httpd/access_log" combined in conjunction with cronolog: # Default log CustomLog "|/usr/sbin/cronolog /var/log/httpd/access.log-%Y%m%d" combined # Chained piped log (works with Apache 2.0/2.2) CustomLog "|/usr/bin/ipv6loganon -f |/usr/sbin/cronolog /var/log/httpd/access.log-%Y%m%d" combined # Chained piped log (works with Apache >= 2.4, see https://httpd.apache.org/docs/2.4/logs.html#piped) CustomLog "|$/usr/bin/ipv6loganon -f |/usr/sbin/cronolog /var/log/httpd/access.log-%Y%m%d" combined See also example file in ../examples/apache/ ipv6calc-4.1.0/ipv6loganon/ipv6loganon.c000066400000000000000000000370251444154247200201110ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6loganon.c * Version : $Id: e63ca446249fe7b23a02ed913d83c0ec41a042e2 $ * Copyright : 2007-2021 by Peter Bieringer * * Information: * Dedicated program for logfile anonymization */ #include #include #include #include #include #include "ipv6loganon.h" #include "libipv6calcdebug.h" #include "libipv6calc.h" #include "ipv6calccommands.h" #include "ipv6calctypes.h" #include "ipv6loganonoptions.h" #include "ipv6calchelp.h" #include "ipv6loganonhelp.h" #include "ipv6calcoptions.h" #include "libipv4addr.h" #include "libipv6addr.h" #include "libmac.h" #include "libeui64.h" #include "librfc1884.h" #include "librfc1886.h" #include "librfc1924.h" #include "libifinet6.h" #include "librfc2874.h" #include "librfc3056.h" #include "libeui64.h" #include "libieee.h" #include "../databases/lib/libipv6calc_db_wrapper.h" #define LINEBUFFER 16384 long int ipv6calc_debug = 0; // ipv6calc_debug usage ok int flag_nocache = 0; /* anonymization default values */ s_ipv6calc_anon_set ipv6calc_anon_set; int mask_ipv4; int mask_ipv6; int mask_iid; int mask_mac; /* features */ int feature_zeroize = 1; // always supported int feature_anon = 0; // will be checked later int feature_kp = 0; // will be checked later int feature_kg = 0; // will be checked later /* prototypes */ static int anonymizetoken(char *result, const size_t resultstring_length, const char *token); static void lineparser(); /* LRU cache */ #define CACHE_LRU_SIZE 200 static int cache_lru_max = 0; static int cache_lru_last = 0; int cache_lru_limit = 20; /* optimum */ static char cache_lru_key_token[CACHE_LRU_SIZE][IPV6CALC_STRING_MAX]; static char cache_lru_value[CACHE_LRU_SIZE][IPV6CALC_STRING_MAX]; static long int cache_lru_statistics[CACHE_LRU_SIZE]; char file_out[IPV6CALC_STRING_MAX] = ""; int file_out_flag = 0; int file_out_flush = 0; char file_out_mode[IPV6CALC_STRING_MAX] = ""; FILE *FILE_OUT; void printversion_verbose(const int level) { printversion(); fprintf(stderr, "\n"); ipv6calc_print_features_verbose(level); }; /**************************************************/ /* main */ int main(int argc,char *argv[]) { /* check compatibility */ #ifdef SHARED_LIBRARY IPV6CALC_LIB_VERSION_CHECK_EXIT(IPV6CALC_PACKAGE_VERSION_NUMERIC, IPV6CALC_PACKAGE_VERSION_STRING) IPV6CALC_DB_LIB_VERSION_CHECK_EXIT(IPV6CALC_PACKAGE_VERSION_NUMERIC, IPV6CALC_PACKAGE_VERSION_STRING) #endif // SHARED_LIBRARY int i, lop, result; uint32_t command = 0; /* options */ struct option longopts[IPV6CALC_MAXLONGOPTIONS]; char shortopts[IPV6CALC_STRING_MAX] = ""; int longopts_maxentries = 0; ipv6calc_quiet = 1; //default for ipv6loganon /* initialize debug value from environment for bootstrap debugging */ ipv6calc_debug_from_env(); // ipv6calc_debug usage ok /* add options */ ipv6calc_options_add_common_anon(shortopts, sizeof(shortopts), longopts, &longopts_maxentries); ipv6calc_options_add_common_basic(shortopts, sizeof(shortopts), longopts, &longopts_maxentries); ipv6calc_options_add(shortopts, sizeof(shortopts), longopts, &longopts_maxentries, ipv6loganon_shortopts, ipv6loganon_longopts, MAXENTRIES_ARRAY(ipv6loganon_longopts)); /* default */ result = libipv6calc_anon_set_by_name(&ipv6calc_anon_set, "anonymize-standard"); if (result != 0) { fprintf(stderr, "major problem, ipv6calc anonymization default preset not found: anonymize-standard\n"); exit(EXIT_FAILURE); }; /* initialize options from environment */ ipv6calc_common_options_from_env(longopts, &ipv6calc_anon_set); /* Fetch the command-line arguments. */ while ((i = getopt_long(argc, argv, shortopts, longopts, &lop)) != EOF) { DEBUGPRINT_WA(DEBUG_ipv6loganon_general, "Parsing option: 0x%08x (%d: %s)", i, optind, argv[optind - 1]); if ((i == '?') && (strcmp(argv[optind - 1], "-?") != 0)) { exit(EXIT_FAILURE); }; /* catch common options */ result = ipv6calcoptions_common_basic(i, optarg, longopts); if (result == 0) { // found continue; }; /* catch "common anon" options */ result = ipv6calcoptions_common_anon(i, optarg, longopts, &ipv6calc_anon_set); if (result == 0) { // found continue; }; switch (i) { case -1: break; case 'v': if ((command & CMD_printversion_verbose) != 0) { // 3rd time '-v' command |= CMD_printversion_verbose2; } else if ((command & CMD_printversion) != 0) { // 2nd time '-v' command |= CMD_printversion_verbose; } else { command |= CMD_printversion; }; break; case 'h': case '?': command |= CMD_printhelp; break; case 'f': file_out_flush = 1; break; case 'w': case 'a': if (strlen(optarg) < sizeof(file_out)) { snprintf(file_out, sizeof(file_out), "%s", optarg); file_out_flag = 1; } else { fprintf(stderr, " Output file too long: %s\n", optarg); exit(EXIT_FAILURE); }; switch (i) { case 'w': snprintf(file_out_mode, sizeof(file_out_mode), "%s", "w"); break; case 'a': snprintf(file_out_mode, sizeof(file_out_mode), "%s", "a"); break; }; break; case 'c': cache_lru_limit = atoi(optarg); if (cache_lru_limit > CACHE_LRU_SIZE) { cache_lru_limit = CACHE_LRU_SIZE; fprintf(stderr, " Cache limit too big, built-in limit: %d\n", cache_lru_limit); }; if (cache_lru_limit < 1) { cache_lru_limit = 1; fprintf(stderr, " Cache limit too small, take minimum: %d\n", cache_lru_limit); }; break; case 'n': flag_nocache = 1; break; default: ipv6loganon_printinfo(); exit(EXIT_FAILURE); break; }; }; argv += optind; argc -= optind; /* initialise database wrapper */ result = libipv6calc_db_wrapper_init(""); if (result != 0) { exit(EXIT_FAILURE); }; /* check for KeepTypeAsnCC support */ if ((libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEASNCC_IPV4_REQ_DB) == 1) \ && (libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEASNCC_IPV6_REQ_DB) == 1)) { feature_kp = 1; }; /* check for KeepTypeGeonameID support */ if ((libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEGEONAMEID_IPV4_REQ_DB) == 1) \ && (libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEGEONAMEID_IPV6_REQ_DB) == 1)) { feature_kg = 1; }; /* check for standard anonymization support */ if ((libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_REGISTRY) == 1) \ && (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV6_TO_REGISTRY) == 1)) { feature_anon = 1; }; /* do work depending on selection */ DEBUGPRINT_WA(DEBUG_ipv6loganon_general, "command=0x%08x", command); if ((command & CMD_printversion) != 0) { if ((command & CMD_printversion_verbose) != 0) { printversion_verbose(((command & CMD_printversion_verbose2) !=0) ? LEVEL_VERBOSE2 : LEVEL_VERBOSE); } else { printversion(); }; if ((command & CMD_printhelp) != 0) { printversion_help(); }; exit(EXIT_SUCCESS); }; if ((command & CMD_printhelp) != 0) { ipv6loganon_printhelp(); exit(EXIT_FAILURE); }; /* check requirements */ if (libipv6calc_anon_supported(&ipv6calc_anon_set) == 0) { fprintf(stderr, "ipv6calc anonymization method not supported\n"); exit(EXIT_FAILURE); }; if (file_out_flag == 1) { DEBUGPRINT_WA(DEBUG_ipv6loganon_general, "Output file specified: %s", file_out); FILE_OUT = fopen(file_out, file_out_mode); if (! FILE_OUT) { fprintf(stderr, "Can't open Output file: %s\n", file_out); exit(EXIT_FAILURE); } else { DEBUGPRINT_WA(DEBUG_ipv6loganon_general, "Output file opened successfully in %s mode: %s", (strcmp(file_out_mode, "a") == 0) ? "append" : "write", file_out); file_out_flag = 2; }; }; lineparser(); if (file_out_flag == 2) { DEBUGPRINT_WA(DEBUG_ipv6loganon_general, "Output file is closed now: %s", file_out); fflush(FILE_OUT); fclose(FILE_OUT); } else { fflush(stdout); }; libipv6calc_cleanup(); exit(EXIT_SUCCESS); }; /* * Line parser */ static void lineparser(void) { char linebuffer[LINEBUFFER]; char token[LINEBUFFER]; char resultstring[LINEBUFFER]; char *charptr, *cptr, **ptrptr; int linecounter = 0, retval, i; ptrptr = &cptr; if (ipv6calc_quiet == 0) { fprintf(stderr, "Expecting log lines on stdin\n"); }; while (1 == 1) { /* read line from stdin */ charptr = fgets(linebuffer, LINEBUFFER, stdin); if (charptr == NULL) { /* end of input */ break; }; linecounter++; if (linecounter == 1) { if (ipv6calc_quiet == 0) { fprintf(stderr, "Ok, proceeding stdin...\n"); }; }; DEBUGPRINT_WA(DEBUG_ipv6loganon_general, "Line number: %d", linecounter); if (strlen(linebuffer) >= LINEBUFFER) { fprintf(stderr, "Line too long: %d\n", linecounter); continue; }; if (strlen(linebuffer) == 0) { fprintf(stderr, "Line empty: %d\n", linecounter); continue; }; DEBUGPRINT_WA(DEBUG_ipv6loganon_general, "Got line: '%s'", linebuffer); /* look for first token */ charptr = strtok_r(linebuffer, " \t\n", ptrptr); if ( charptr == NULL ) { fprintf(stderr, "Line contains no token: %d\n", linecounter); continue; }; if ( strlen(charptr) >= LINEBUFFER) { fprintf(stderr, "Line too strange: %d\n", linecounter); continue; }; snprintf(token, sizeof(token), "%s", charptr); DEBUGPRINT_WA(DEBUG_ipv6loganon_general, "Token 1: '%s'", token); /* call anonymizer now */ retval = anonymizetoken(resultstring, sizeof(resultstring), charptr); if (retval != 0) { continue; }; /* print result and rest of line, if available */ if (*ptrptr[0] != '\0') { if (file_out_flag == 2) { fprintf(FILE_OUT, "%s %s", resultstring, *ptrptr); } else { printf("%s %s", resultstring, *ptrptr); }; } else { if (file_out_flag == 2) { fprintf(FILE_OUT, "%s\n", resultstring); } else { printf("%s\n", resultstring); }; }; if (file_out_flush == 1) { if (file_out_flag == 2) { fflush(FILE_OUT); } else { fflush(stdout); }; }; }; if (ipv6calc_quiet == 0) { fprintf(stderr, "...finished\n"); if (flag_nocache == 0) { fprintf(stderr, "Cache statistics:\n"); for (i = 0; i < cache_lru_limit; i++) { fprintf(stderr, "Cache distance: %3d hits: %8ld\n", i, cache_lru_statistics[i]); }; }; }; return; }; /* * Anonymize token */ static int anonymizetoken(char *resultstring, const size_t resultstring_length, const char *token) { uint32_t inputtype = FORMAT_undefined; int retval = 1, i; /* used structures */ ipv6calc_ipv6addr ipv6addr; ipv6calc_ipv4addr ipv4addr; ipv6calc_macaddr macaddr; ipv6calc_eui64addr eui64addr; DEBUGPRINT_WA(DEBUG_ipv6loganon_general, "Token: '%s'", token); /* clear resultstring */ resultstring[0] = '\0'; if (strlen(token) == 0) { return (1); }; /* use cache ? */ if (flag_nocache == 0 && cache_lru_max > 0) { /* check last seen one first */ DEBUGPRINT_WA(DEBUG_ipv6loganon_cache, "LRU cache: look for key=%s", token); if (strcmp(cache_lru_key_token[cache_lru_last - 1], token) == 0) { snprintf(resultstring, resultstring_length, "%s", cache_lru_value[cache_lru_last - 1]); cache_lru_statistics[0]++; DEBUGPRINT_WA(DEBUG_ipv6loganon_cache, "LRU cache: hit last line=%d key_token=%s value=%s", cache_lru_last - 1, token, resultstring); return (0); }; /* run backwards to first entry */ if (cache_lru_last > 1) { for (i = cache_lru_last - 1; i > 0; i--) { if (strcmp(cache_lru_key_token[i - 1], token) == 0) { snprintf(resultstring, resultstring_length, "%s", cache_lru_value[i - 1]); cache_lru_statistics[cache_lru_last - i]++; DEBUGPRINT_WA(DEBUG_ipv6loganon_cache, "LRU cache: hit line=%d key_token=%s value=%s", i - 1, token, resultstring); return (0); }; }; }; /* round robin */ if (cache_lru_last < cache_lru_max) { for (i = cache_lru_max; i > cache_lru_last; i--) { if (strcmp(cache_lru_key_token[i - 1], token) == 0) { snprintf(resultstring, resultstring_length, "%s", cache_lru_value[i - 1]); cache_lru_statistics[cache_lru_max - i + cache_lru_last]++; DEBUGPRINT_WA(DEBUG_ipv6loganon_cache, "LRU cache: hit line=%d key_token=%s value=%s", i - 1, token, resultstring); return (0); }; }; }; }; /* set addresses to invalid */ ipv6addr.flag_valid = 0; ipv4addr.flag_valid = 0; /* autodetection */ inputtype = libipv6calc_autodetectinput(token); DEBUGSECTION_BEGIN(DEBUG_ipv6loganon_general) if (inputtype != FORMAT_undefined) { for (i = 0; i < ipv6calc_formatstrings_entries; i++) { if (inputtype == ipv6calc_formatstrings[i].number) { DEBUGPRINT_WA(DEBUG_ipv6loganon_general, "Found type: %s", ipv6calc_formatstrings[i].token); }; break; }; } else { DEBUGPRINT_NA(DEBUG_ipv6loganon_general, "Input type unknown"); return (1); }; DEBUGSECTION_END /* proceed input depending on type */ switch (inputtype) { case FORMAT_ipv6addr: retval = addr_to_ipv6addrstruct(token, resultstring, resultstring_length, &ipv6addr); break; case FORMAT_ipv4addr: retval = addr_to_ipv4addrstruct(token, resultstring, resultstring_length, &ipv4addr); break; case FORMAT_eui64: retval = libeui64_addr_to_eui64addrstruct(token, resultstring, resultstring_length, &eui64addr); break; case FORMAT_macaddr: retval = addr_to_macaddrstruct(token, resultstring, resultstring_length, &macaddr); break; }; if (retval != 0) { fprintf(stderr, "Can't parse string: %s (%s)\n", token, resultstring); return 1; }; DEBUGPRINT_WA(DEBUG_ipv6loganon_general, "Token: '%s'", token); /***** postprocessing input *****/ DEBUGPRINT_NA(DEBUG_ipv6loganon_general, "Start of postprocessing input"); if (ipv6addr.flag_valid == 1) { /* anonymize IPv6 address according to settings */ libipv6addr_anonymize(&ipv6addr, &ipv6calc_anon_set); /* convert IPv6 address structure to string */ ipv6addrstruct_to_compaddr(&ipv6addr, resultstring, resultstring_length); } else if (ipv4addr.flag_valid == 1) { /* anonymize IPv4 address according to settings */ libipv4addr_anonymize(&ipv4addr, ipv6calc_anon_set.mask_ipv4, ipv6calc_anon_set.method); /* convert IPv4 address structure to string */ libipv4addr_ipv4addrstruct_to_string(&ipv4addr, resultstring, resultstring_length, 0); } else if (eui64addr.flag_valid == 1) { /* anonymize EUI-64C address according to settings */ libeui64_anonymize(&eui64addr, &ipv6calc_anon_set); /* convert EUI-64 address structure to string */ libeui64_eui64addrstruct_to_string(&eui64addr, resultstring, resultstring_length, 0); } else if (macaddr.flag_valid == 1) { /* anonymize MAC address according to settings */ libmacaddr_anonymize(&macaddr, &ipv6calc_anon_set); /* convert MAC address structure to string */ libmacaddr_macaddrstruct_to_string(&macaddr, resultstring, resultstring_length, 0); } else { /* probably reverse DNS resolving lookup string, do not touch */ snprintf(resultstring, resultstring_length, "%s", token); return (0); }; /* use cache ? */ if (flag_nocache == 0) { /* calculate pointer */ if (cache_lru_max < cache_lru_limit) { cache_lru_last++; cache_lru_max++; } else { if (cache_lru_last == cache_lru_limit) { cache_lru_last = 1; } else { cache_lru_last++; }; }; /* store key and value */ snprintf(cache_lru_key_token[cache_lru_last - 1], IPV6CALC_STRING_MAX, "%s", token); snprintf(cache_lru_value[cache_lru_last - 1], IPV6CALC_STRING_MAX, "%s", resultstring); DEBUGPRINT_WA(DEBUG_ipv6loganon_cache, "LRU cache: fill line=%d key_token=%s value=%s", cache_lru_last - 1, cache_lru_key_token[cache_lru_last - 1], cache_lru_value[cache_lru_last - 1]); }; return (0); }; ipv6calc-4.1.0/ipv6loganon/ipv6loganon.h000066400000000000000000000014331444154247200201100ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6loganon.h * Version : $Id: f4f8949bcb27bf9aab87d5831d4d57cfd27a1ee3 $ * Copyright : 2007-2019 by Peter Bieringer * License : GNU GPL v2 * * Information: * Main header file */ /* global program related definitions */ #define PROGRAM_NAME "ipv6loganon" #define PROGRAM_COPYRIGHT "(P) & (C) 2007-" COPYRIGHT_YEAR " by Peter Bieringer " /* LRU cache maximum size */ #define CACHE_LRU_SIZE 200 #define DEBUG_ipv6loganon_general 0x00000001l #define DEBUG_ipv6loganon_cache 0x00000004l /* prototyping */ extern int cache_lru_limit; extern int mask_ipv4; extern int mask_iid; extern int feature_zeroize; extern int feature_anon; extern int feature_kp; extern int feature_kg; ipv6calc-4.1.0/ipv6loganon/ipv6loganonhelp.c000066400000000000000000000057041444154247200207610ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6loganonhelp.c * Version : $Id: 95ab2a12447e173dc57c2668c6860d4fad27d087 $ * Copyright : 2007-2019 by Peter Bieringer * License : GNU GPL v2 * * Information: * Help library */ #include #include #include #include "ipv6loganon.h" #include "ipv6calctypes.h" #include "ipv6calccommands.h" #include "ipv6calchelp.h" #include "config.h" /* display info */ void printversion(void) { fprintf(stderr, "%s: version %s", PROGRAM_NAME, PACKAGE_VERSION); if (feature_zeroize == 1) { fprintf(stderr, " ANON_ZEROISE"); }; if (feature_anon == 1) { fprintf(stderr, " ANON_ANONYMIZE"); }; if (feature_kp == 1) { fprintf(stderr, " ANON_KEEP-TYPE-ASN-CC"); }; if (feature_kg == 1) { fprintf(stderr, " ANON_KEEP-TYPE-GEONAMEID"); }; fprintf(stderr, "\n"); }; void printversion_help(void) { fprintf(stderr, "\n"); fprintf(stderr, "Explanation of available(x)/possible(o) feature tokens\n"); fprintf(stderr, "%-25s%c %s\n", "ANON_ZEROISE", (feature_zeroize == 1)? 'x' : 'o', "Anonymization method 'zeroize'"); fprintf(stderr, "%-25s%c %s\n", "ANON_ANONYMIZE", (feature_anon == 1) ? 'x' : 'o', "Anonymization method 'anonymize'"); fprintf(stderr, "%-25s%c %s\n", "ANON_KEEP-TYPE-ASN-CC", (feature_kp == 1) ? 'x' : 'o', "Anonymization method 'keep-type-asn-cc'"); fprintf(stderr, "%-25s%c %s\n", "ANON_KEEP-TYPE-GEONAMEID", (feature_kg == 1) ? 'x' : 'o', "Anonymization method 'keep-type-geonameid'"); fprintf(stderr, "\n"); }; void printcopyright(void) { fprintf(stderr, "%s\n", PROGRAM_COPYRIGHT); }; void ipv6loganon_printinfo(void) { printversion(); printcopyright(); fprintf(stderr, "This program anonymizes IPv4/IPv6 addresses in HTTP server log files\n"); fprintf(stderr, "See '%s -?|-h|--help for online help\n", PROGRAM_NAME); }; /* print global help */ void ipv6loganon_printhelp(void) { printversion(); printcopyright(); fprintf(stderr, "\n"); fprintf(stderr, "This program anonymizes IPv4/IPv6 addresses in e.g. HTTP server log files\n"); printhelp_common(IPV6CALC_HELP_ALL); fprintf(stderr, " [-w|--write] : write output to file instead of stdout\n"); fprintf(stderr, " [-a|--append] : append output to file instead of stdout\n"); fprintf(stderr, " [-f|--flush] : flush output after each line\n"); fprintf(stderr, " [-V|--verbose] : be verbose\n"); fprintf(stderr, " [-n|--nocache] : disable caching\n"); fprintf(stderr, " [-c|--cachelimit ] : set cache limit\n"); fprintf(stderr, " default: %d\n", cache_lru_limit); fprintf(stderr, " maximum: %d\n", CACHE_LRU_SIZE); printhelp_action_dispatcher(ACTION_anonymize, 1); fprintf(stderr, "\n"); fprintf(stderr, " Takes data from stdin, outputs the processed data to stdout (default)\n"); fprintf(stderr, "\n"); fprintf(stderr, "\n"); return; }; ipv6calc-4.1.0/ipv6loganon/ipv6loganonhelp.h000066400000000000000000000006621444154247200207640ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6loganonhelp.h * Version : $Id: c2d605bf90a3a032553872c3918a3d6bd1a38ed1 $ * Copyright : 2007-2014 by Peter Bieringer * License : GNU GPL v2 * * Information: * Header file for ipv6loganonhelp.c */ extern void printversion(void); extern void printversion_help(void); extern void ipv6loganon_printinfo(void); extern void ipv6loganon_printhelp(void); ipv6calc-4.1.0/ipv6loganon/ipv6loganonoptions.h000066400000000000000000000016751444154247200215340ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6loganonoptions.h * Version : $Id: e0c9c7bb718671f28748aed60b1449e5b5490d72 $ * Copyright : 2007-2013 by Peter Bieringer * * Information: * Header file containing options for ipvloganon.c */ #include #include "ipv6calctypes.h" #ifndef _ipv6loganonoptions_h_ #define _ipv6loganonoptions_h_ /* Options */ /* define short options */ static char *ipv6loganon_shortopts = "vh?nc:w:a:f"; /* define long options */ static struct option ipv6loganon_longopts[] = { {"version", 0, NULL, (int) 'v' }, /* help options */ {"help" , 0, NULL, (int) 'h'}, /* special options */ {"nocache" , no_argument , 0, (int) 'n'}, {"flush" , no_argument , 0, (int) 'f'}, {"cachelimit", required_argument, 0, (int) 'c'}, {"write" , required_argument, 0, (int) 'w'}, {"append" , required_argument, 0, (int) 'a'}, }; #endif ipv6calc-4.1.0/ipv6loganon/test_ipv6loganon.sh000077500000000000000000000371131444154247200213410ustar00rootroot00000000000000#!/usr/bin/env bash # # Project : ipv6calc # File : test_ipv6loganon.sh # Version : $Id: 426ce12dc1ef1ced25ca3700575909fc7040c9a7 $ # Copyright : 2007-2021 by Peter Bieringer # # Test program for "ipv6loganon" verbose=false while getopts "Vh\?" opt; do case $opt in V) verbose=true ;; *) echo "$0 [-V]" echo " -V verbose" exit 1 ;; esac done if [ ! -x ./ipv6loganon ]; then echo "Binary './ipv6loganon' missing or not executable" exit 1 fi # Test proper option definitions echo "Test proper option definition" ./ipv6loganon -h >/dev/null if [ $? -ne 1 ]; then echo "ERROR : something wrong in option definition" exit 1 fi echo "Run 'ipv6loganon' version help test for feature tokens..." ./ipv6loganon -v -h retval=$? if [ $retval -ne 0 ]; then echo "Error executing 'ipv6loganon -v -h'!" exit 1 fi echo source ../ipv6calc/test_scenarios.sh testscenarios_standard() { # Address cat <&2 if [ "$1" != "bulk" ]; then test="run 'ipv6loganon' standard tests" echo "INFO : $test" testscenarios_standard | grep -v "^#" | while read line; do # extract result input="`echo $line | awk -F= '{ print $1 }' | sed 's/ *$//g'`" result="`echo $line | awk -F= '{ print $2 }'`" if [ -z "$result" -o -z "$input" ]; then echo "Something is wrong in line '$line'" exit 1 fi $verbose && echo "IN : $input" $verbose && echo "CHECK : $result" # get result output="`echo "$input" | ./ipv6loganon -q`" retval=$? $verbose && echo "OUT : $output" if [ $retval -ne 0 ]; then echo "Error executing 'ipv6loganon'!" $verbose || echo "IN : $input" $verbose || echo "CHECK : $result" $verbose || echo "OUT : $output" exit 1 fi # Check result if [ "$result" != "*" ]; then if [ "$output" != "$result" ]; then $verbose || echo "IN : $input" $verbose || echo "CHECK : $result" $verbose || echo "OUT : $output" echo "RESULT : fail" exit 1 fi fi $verbose && echo "RESULT : ok" $verbose && echo $verbose || echo -n "." done retval=$? $verbose || echo echo "INFO : $test successful" if [ $retval -eq 0 ]; then # special tests test="run 'ipv6loganon' special tests" echo "INFO : $test" testscenarios_special | grep -v "^#" | while read line; do # extract result input="`echo $line | awk -F= '{ print $1 }' | sed 's/ *$//g'`" options="`echo $line | awk -F= '{ print $2 }'`" result="`echo $line | awk -F= '{ print $3 }'`" if [ -z "$result" -o -z "$input" -o -z "$options" ]; then echo "Something is wrong in line '$line'" exit 1 fi $verbose && echo "IN : $input" $verbose && echo "OPTIONS: $options" $verbose && echo "CHECK : $result" # get result output="`echo "$input" | ./ipv6loganon -q $options`" retval=$? $verbose && echo "OUT : $output" if [ $retval -ne 0 ]; then echo "Error executing 'ipv6loganon'!" $verbose || echo "IN : $input" $verbose || echo "CHECK : $result" $verbose || echo "OUT : $output" exit 1 fi # Check result if [ "$result" != "*" ]; then if [ "$output" != "$result" ]; then $verbose || echo "IN : $input" $verbose || echo "CHECK : $result" $verbose || echo "OUT : $output" echo "RESULT : fail" exit 1 fi fi $verbose && echo "RESULT : ok" $verbose && echo $verbose || echo -n "." done retval=$? $verbose || echo echo "INFO : $test successful" fi echo else shift echo "Test with cache" testscenarios_cache | grep -v "^#" | ./ipv6loganon -V retval=$? if [ $retval -ne 0 ]; then echo "Error executing 'ipv6loganon'!" >&2 exit 1 fi echo "Test without cache" testscenarios_cache | grep -v "^#" | ./ipv6loganon -n retval=$? if [ $retval -ne 0 ]; then echo "Error executing 'ipv6loganon'!" >&2 exit 1 fi echo fi if [ $retval -ne 0 ]; then echo "ERROR : function tests failed" exit 1 fi run_loganon_reliability_tests() { if [ ! -x ../ipv6logstats/ipv6logstats ]; then echo "ERROR : missing binary: ../ipv6logstats/ipv6logstats (check build process)" return 1 fi if [ ! -x ../ipv6logconv/ipv6logconv ]; then echo "ERROR : missing binary: ../ipv6logconv/ipv6logconv (check build process)" return 1 fi if ! ../ipv6logstats/ipv6logstats -v | grep -qw STAT_REG; then echo "NOTICE: ipv6logstats misses basic database, skip tests" return 0 fi if ! ../ipv6logconv/ipv6logconv -v | grep -qw CONV_REG; then echo "NOTICE: ipv6logconv misses basic database, skip tests" return 0 fi local options="$*" if [ "$options" == "--anonymize-preset kp" ]; then list="`testscenarios_kp | ../ipv6calc/ipv6calc -E ipv4,ipv6`" else list="`testscenarios_standard | awk '{ print $1 }'`" fi if [ -z "$list" ]; then echo "ERROR : list empty in run_loganon_reliability_tests" return 1 fi list="$list `testscenarios_special | awk '{ print $1 }'`" sortlist="`echo "$list" | sort -u`" echo "INFO : run ipv6loganon/ipv6logstats reliability tests with options: $options" >&2 for entry in $sortlist; do echo "DEBUG : test: $entry" nonanonymized="`echo "$entry" | ../ipv6logstats/ipv6logstats -q | grep -v "Time:"`" anonymized="`echo "$entry" | ./ipv6loganon -q $options | ../ipv6logstats/ipv6logstats -q | grep -v "Time:"`" if [ -z "$nonanonymized" ]; then echo "ERROR : result empty: nonanonymized" return 1 fi if [ -z "$anonymized" ]; then echo "ERROR : result empty: anonymized" return 1 fi entry_anon="`echo "$entry" | ./ipv6loganon -q $options`" if [ "$nonanonymized" != "$anonymized" ]; then echo "ERROR : result not equal: $entry_anon" export anonymized export nonanonymized diff -u <(echo "$nonanonymized") <(echo "$anonymized") echo "ERROR : result not equal between anonymized and non-anonymized ipv6logstats: $entry <-> $entry_anon (options: $options)" return 1 fi done echo "INFO : run ipv6loganon/ipv6logconv reliability tests with options: $options" >&2 for entry in $sortlist; do echo "DEBUG : test: $entry" nonanonymized="`echo "$entry" | ../ipv6logconv/ipv6logconv -q --out any | grep -v "Time:"`" anonymized="`echo "$entry" | ./ipv6loganon -q $options | ../ipv6logconv/ipv6logconv -q --out any | grep -v "Time:"`" if [ -z "$nonanonymized" ]; then echo "ERROR : result empty: nonanonymized" return 1 fi if [ -z "$anonymized" ]; then echo "ERROR : result empty: anonymized" return 1 fi entry_anon="`echo "$entry" | ./ipv6loganon -q $options`" if [ "$nonanonymized" != "$anonymized" ]; then echo "ERROR : result not equal: $entry_anon" export anonymized export nonanonymized diff -u <(echo "$nonanonymized") <(echo "$anonymized") echo "ERROR : result not equal between anonymized and non-anonymized ipv6logconv: $entry_anon" return 1 fi done } run_loganon_options_tests() { test="run 'ipv6loganon' anonymization option tests" echo "INFO : $test" testscenarios_anonymization_options | while read line; do if [ -z "$line" ]; then continue fi options="`echo $line | awk '{ for ( i = 1; i < NF; i++) printf "%s ", $i }'`" input_result="`echo $line | awk '{ print $NF }'`" $verbose && echo "DEBUG : options=$options" $verbose && echo "DEBUG : input_result=$input_result" input=${input_result/=*/} result=${input_result/*=/} command="echo $input | ./ipv6loganon -q $options" result_real="`echo $input | ./ipv6loganon -q $options`" if [ $? -ne 0 ]; then echo "ERROR : command was not proper executed: $command" exit 1 fi if [ "$result" != "$result_real" ]; then $verbose || echo echo "ERROR : result doesn't match on command: $command" echo "ERROR : result is : $result_real" echo "ERROR : result expected: $result" exit 1 else $verbose && echo "INFO : $command -> test ok" fi $verbose || echo -n "." done || return 1 $verbose || echo echo "INFO : $test successful" } run_loganon_options_kp_tests() { if ! ./ipv6loganon -vv 2>&1 | grep -q "Country4=1 Country6=1 ASN4=1 ASN6=1"; then echo "NOTICE 'ipv6calc' has not required support for Country/ASN included, skip option kp tests..." return 0 fi echo "Run 'ipv6loganon' anonymization option kp tests..." testscenarios_anonymization_options_kp | while read line; do if [ -z "$line" ]; then continue fi options="`echo $line | awk '{ for ( i = 1; i < NF; i++) printf "%s ", $i }'`" input_result="`echo $line | awk '{ print $NF }'`" echo "DEBUG : options=$options" echo "DEBUG : input_result=$input_result" input=${input_result/=*/} result=${input_result/*=/} command="echo $input | ./ipv6loganon -q $options" result_real="`echo $input | ./ipv6loganon -q $options`" if [ $? -ne 0 ]; then echo "ERROR : command was not proper executed: $command" exit 1 fi if [ "$result" != "$result_real" ]; then $verbose || echo echo "ERROR : result doesn't match on command: $command" echo "ERROR : result is : $result_real" echo "ERROR : result expected: $result" exit 1 else echo "INFO : $command -> test ok" fi done || return 1 run_loganon_reliability_tests "--anonymize-preset kp" if [ $? -ne 0 ]; then return 1 fi echo "INFO : test scenario with huge amount of addresses..." testscenario_hugelist ipv4 | ./ipv6loganon --anonymize-preset kp >/dev/null if [ $? -ne 0 ]; then echo "ERROR : exit code <> 0" exit 1 fi echo "INFO : test scenario with huge amount of addresses: OK" } #### Main run_loganon_reliability_tests if [ $? -ne 0 ]; then echo "ERROR : run_loganon_reliability_tests failed" exit 1 fi echo "INFO : run 'ipv6loganon' option tests..." >&2 # Test Scenarios source ../ipv6calc/test_scenarios.sh run_loganon_options_tests if [ $? -ne 0 ]; then echo "ERROR : run_loganon_options_tests failed" exit 1 fi run_loganon_options_kp_tests if [ $? -ne 0 ]; then echo "ERROR : run_loganon_options_kp_tests failed" exit 1 fi echo "All tests were successfully done!" >&2 exit 0 ipv6calc-4.1.0/ipv6logconv/000077500000000000000000000000001444154247200155065ustar00rootroot00000000000000ipv6calc-4.1.0/ipv6logconv/Makefile.in000066400000000000000000000040361444154247200175560ustar00rootroot00000000000000# Project : ipv6calc/ipv6logconv # File : ipv6logconv/Makefile[.in] # Version : $Id: 62b74ee978aa49619c716634ff9ae8e1205b1d13 $ # Copyright : 2002-2022 by Peter Bieringer # # Information: # Makefile for ipv6logconv # prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ # Compiler and Linker Options # -D__EXTENSIONS__ is for Solaris & strtok_r DEFAULT_CFLAGS ?= -O2 -Wall -g @CFLAGS_EXTRA@ CFLAGS += -D__EXTENSIONS__ LDFLAGS += @LDFLAGS@ INCLUDES= @MD5_INCLUDE@ @GETOPT_INCLUDE@ @IP2LOCATION_INCLUDE_L1@ @MMDB_INCLUDE_L1@ -I../ -I../lib/ -I../databases/lib/ LIBS = @IPV6CALC_LIB@ @IP2LOCATION_LIB_L1@ @MMDB_LIB_L1@ @DYNLOAD_LIB@ GETOBJS = @LIBOBJS@ CC = @CC@ LDFLAGS_EXTRA = @LDFLAGS_EXTRA@ LDFLAGS_EXTRA_STATIC = @LDFLAGS_EXTRA_STATIC@ OBJS = ipv6logconv.o ipv6logconvhelp.o # splint SPLINT_OPT_OUTSIDE = -uniondef +matchanyintegral --nullassign +ignoresigns -compdef -usedef -modobserver -formatconst -warnposix -exportlocal SPLINT_TODO_LATER = -unrecog -retvalint all: ipv6logconv .c.o: $(CC) -c $< $(DEFAULT_CFLAGS) $(CFLAGS) $(INCLUDES) $(OBJS): ipv6logconvoptions.h ipv6logconvhelp.h ipv6logconv.h libipv6calc: cd ../ && ${MAKE} lib-make libipv6calc_db_wrapper: cd ../ && ${MAKE} lib-make ipv6logconv: $(OBJS) libipv6calc libipv6calc_db_wrapper $(CC) -o ipv6logconv $(OBJS) $(GETOBJS) $(LDFLAGS) $(LIBS) $(LDFLAGS_EXTRA) -lm static: ipv6logconv $(CC) -o ipv6logconv-static $(OBJS) $(GETOBJS) $(LDFLAGS) $(LIBS) $(LDFLAGS_EXTRA_STATIC) -lm -static distclean: ${MAKE} clean autoclean: ${MAKE} distclean clean: rm -f ipv6logconv ipv6logconv-static *.o test: ipv6logconv LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_ipv6logconv.sh test-minimal: ${MAKE} test test-ldlibpath: ipv6logconv LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_ipv6logconv.sh codecheck: ${MAKE} splint splint: splint *.c ../lib/*.c -I.. -I../lib $(SPLINT_OPT_OUTSIDE) $(SPLINT_TODO_LATER) install: mkdir -p $(DESTDIR)$(bindir) install -m 755 ipv6logconv $(DESTDIR)$(bindir) ipv6calc-4.1.0/ipv6logconv/ipv6logconv.c000066400000000000000000000564621444154247200201430ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6logconv.c * Version : $Id: 1c0dd0452e5812570f95fb49f39af9ff056fda20 $ * Copyright : 2002-2021 by Peter Bieringer * * Information: * Dedicated program for logfile conversions */ #include #include #include #include #include #include "ipv6logconv.h" #include "libipv6calcdebug.h" #include "libipv6calc.h" #include "ipv6calccommands.h" #include "ipv6calctypes.h" #include "ipv6logconvoptions.h" #include "ipv6calchelp.h" #include "ipv6logconvhelp.h" #include "ipv6calcoptions.h" #include "libipv4addr.h" #include "libipv6addr.h" #include "libmac.h" #include "librfc1884.h" #include "librfc1886.h" #include "librfc1924.h" #include "libifinet6.h" #include "librfc2874.h" #include "librfc3056.h" #include "libeui64.h" #include "libieee.h" #include "../databases/lib/libipv6calc_db_wrapper.h" #define LINEBUFFER 16384 long int ipv6calc_debug = 0; // ipv6calc_debug usage ok int flag_nocache = 0; /* supported output types: * ipv6addr * ipv4addr * addrtype : IPv4 | IPv6 */ /* prototypes */ static int converttoken(char *result, const size_t resultstring_length, const char *token, const long int outputtype, const int flag_skipunknown); static void lineparser(const long int outputtype); /* LRU cache */ #define CACHE_LRU_SIZE 200 int cache_lru_limit; static int cache_lru_max = 0; static int cache_lru_last = 0; static char cache_lru_key_token[CACHE_LRU_SIZE][IPV6CALC_STRING_MAX]; static long int cache_lru_key_outputtype[CACHE_LRU_SIZE]; static char cache_lru_value[CACHE_LRU_SIZE][IPV6CALC_STRING_MAX]; static long int cache_lru_statistics[CACHE_LRU_SIZE]; int feature_reg = 0; int feature_ieee = 0; /**************************************************/ /* main */ int main(int argc,char *argv[]) { /* check compatibility */ #ifdef SHARED_LIBRARY IPV6CALC_LIB_VERSION_CHECK_EXIT(IPV6CALC_PACKAGE_VERSION_NUMERIC, IPV6CALC_PACKAGE_VERSION_STRING) IPV6CALC_DB_LIB_VERSION_CHECK_EXIT(IPV6CALC_PACKAGE_VERSION_NUMERIC, IPV6CALC_PACKAGE_VERSION_STRING) #endif // SHARED_LIBRARY int i, lop, result; unsigned long int command = 0; cache_lru_limit = 20; /* optimum */ /* new option style storage */ uint32_t inputtype = FORMAT_undefined, outputtype = FORMAT_undefined; /* convert storage */ long int action = -1; /* options */ struct option longopts[IPV6CALC_MAXLONGOPTIONS]; char shortopts[IPV6CALC_STRING_MAX] = ""; int longopts_maxentries = 0; /* check for UID */ if (getuid() == 0) { printversion(); fprintf(stderr, " DON'T RUN THIS PROGRAM AS root USER!\n"); fprintf(stderr, " This program uses insecure C string handling functions and is not full audited\n"); fprintf(stderr, " therefore parsing insecure and unchecked input like logfiles isn't a good choice\n"); exit(EXIT_FAILURE); }; /* initialize debug value from environment for bootstrap debugging */ ipv6calc_debug_from_env(); // ipv6calc_debug usage ok /* add options */ ipv6calc_options_add_common_basic(shortopts, sizeof(shortopts), longopts, &longopts_maxentries); ipv6calc_options_add(shortopts, sizeof(shortopts), longopts, &longopts_maxentries, ipv6logconv_shortopts, ipv6logconv_longopts, MAXENTRIES_ARRAY(ipv6logconv_longopts)); if (argc <= 1) { ipv6logconv_printinfo(); exit(EXIT_FAILURE); }; /* initialize options from environment */ ipv6calc_common_options_from_env(longopts, NULL); /* Fetch the command-line arguments. */ while ((i = getopt_long(argc, argv, shortopts, longopts, &lop)) != EOF) { DEBUGPRINT_WA(DEBUG_ipv6logconv_general, "Parsing option: 0x%08x (%d: %s)", i, optind, argv[optind - 1]); if ((i == '?') && (strcmp(argv[optind - 1], "-?") != 0)) { exit(EXIT_FAILURE); }; /* catch common options */ result = ipv6calcoptions_common_basic(i, optarg, longopts); if (result == 0) { // found continue; }; switch (i) { case -1: break; case 'v': command |= CMD_printversion; break; case 'h': case '?': command |= CMD_printhelp; break; case 'c': cache_lru_limit = atoi(optarg); if (cache_lru_limit > CACHE_LRU_SIZE) { cache_lru_limit = CACHE_LRU_SIZE; fprintf(stderr, " Cache limit too big, built-in limit: %d\n", cache_lru_limit); }; if (cache_lru_limit < 1) { cache_lru_limit = 1; fprintf(stderr, " Cache limit too small, take minimum: %d\n", cache_lru_limit); }; break; case 'n': flag_nocache = 1; break; case CMD_outputtype: DEBUGPRINT_WA(DEBUG_ipv6logconv_general, "Got output string: %s", optarg); if ( (strcmp(optarg, "-?") == 0) || (strcmp(optarg, "-h") == 0) || (strcmp(optarg, "--help") == 0) ) { command = CMD_printexamples; break; }; outputtype = ipv6calctypes_checktype(optarg); if (outputtype == FORMAT_undefined) { fprintf(stderr, " Output option is unknown: %s\n", optarg); exit(EXIT_FAILURE); }; break; case CMD_printexamples: command = CMD_printexamples; break; default: fprintf(stderr, "Usage: (see '%s --command -?|-h|--help' for more help)\n", PROGRAM_NAME); ipv6logconv_printhelp(); break; }; }; argv += optind; argc -= optind; /* initialise database wrapper */ result = libipv6calc_db_wrapper_init(""); if (result != 0) { exit(EXIT_FAILURE); }; /* check for basic database support */ if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_REGISTRY | IPV6CALC_DB_IPV6_TO_REGISTRY | IPV6CALC_DB_CC_TO_REGISTRY) == 1) { feature_reg = 1; }; if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IEEE_TO_INFO) == 1) { feature_ieee = 1; }; /* do work depending on selection */ if ((command & CMD_printversion) != 0) { printversion(); if ((command & CMD_printhelp) != 0) { printversion_help(); }; exit(EXIT_SUCCESS); }; /* print help handling */ if (command & CMD_printhelp) { ipv6logconv_printhelp(); exit(EXIT_FAILURE); } else if (command == CMD_printexamples) { printhelp_output_dispatcher(outputtype, inputtype); exit(EXIT_FAILURE); }; DEBUGPRINT_WA(DEBUG_ipv6logconv_general, "Debug value:%lx command:%lx inputtype:%lx outputtype:%lx action:%lx", (unsigned long) ipv6calc_debug, command, (unsigned long) inputtype, (unsigned long) outputtype, (unsigned long) action); // ipv6calc_debug usage ok if ((outputtype == FORMAT_any) && ((feature_reg == 0) || (feature_ieee == 0))) { fprintf(stderr, "Basic databases are missing for conversion and outputtype 'any'\n"); exit(EXIT_FAILURE); } else if ((outputtype == FORMAT_ouitype) && (feature_ieee == 0)) { fprintf(stderr, "Basic databases are missing for conversion and outputtype 'ouitype'\n"); exit(EXIT_FAILURE); } else if ((outputtype == FORMAT_addrtype) && (feature_reg == 0)) { fprintf(stderr, "Basic databases are missing for conversion and outputtype 'addrtype'\n"); exit(EXIT_FAILURE); }; /* call lineparser */ lineparser(outputtype); libipv6calc_cleanup(); exit(EXIT_SUCCESS); }; /* * Line parser */ static void lineparser(const long int outputtype) { char linebuffer[LINEBUFFER]; char token[LINEBUFFER]; char resultstring[LINEBUFFER]; char *charptr, *cptr, **ptrptr; int linecounter = 0, retval, i; ptrptr = &cptr; if (ipv6calc_quiet == 0) { fprintf(stderr, "Expecting log lines on stdin\n"); }; while (1 == 1) { /* read line from stdin */ charptr = fgets(linebuffer, LINEBUFFER, stdin); if (charptr == NULL) { /* end of input */ break; }; linecounter++; if (linecounter == 1) { if (ipv6calc_quiet == 0) { fprintf(stderr, "Ok, proceeding stdin...\n"); }; }; DEBUGPRINT_WA(DEBUG_ipv6logconv_processing, "Line counter: %d", linecounter); if (strlen(linebuffer) >= LINEBUFFER) { fprintf(stderr, "Line too long: %d\n", linecounter); continue; }; if (strlen(linebuffer) == 0) { fprintf(stderr, "Line empty: %d\n", linecounter); continue; }; DEBUGPRINT_WA(DEBUG_ipv6logconv_processing, "Got line: '%s'", linebuffer); /* look for first token */ charptr = strtok_r(linebuffer, " \t\n", ptrptr); if ( charptr == NULL ) { fprintf(stderr, "Line contains no token: %d\n", linecounter); continue; }; if ( strlen(charptr) >= LINEBUFFER) { fprintf(stderr, "Line too strange: %d\n", linecounter); continue; }; snprintf(token, sizeof(token), "%s", charptr); DEBUGPRINT_WA(DEBUG_ipv6logconv_processing, "Token 1: '%s'", token); /* call converter now */ if ( outputtype == FORMAT_any ) { retval = converttoken(resultstring, sizeof(resultstring), charptr, FORMAT_addrtype, 0); } else { retval = converttoken(resultstring, sizeof(resultstring), charptr, outputtype, 1); }; if (retval != 0) { continue; }; /* print result */ printf("%s", resultstring); if (outputtype == FORMAT_any) { DEBUGPRINT_NA(DEBUG_ipv6logconv_processing, "Format is 'any', so look for next tokens"); /* look for next token */ charptr = strtok_r(NULL, " \t\n", ptrptr); if ( charptr == NULL ) { fprintf(stderr, "Line contains no 2nd token: %d\n", linecounter); goto END_line; }; if ( strlen(charptr) >= LINEBUFFER) { fprintf(stderr, "Line too strange: %d\n", linecounter); goto END_line; }; DEBUGPRINT_WA(DEBUG_ipv6logconv_processing, "Token 2: '%s'", charptr); /* retval = converttoken(resultstring, token, FORMAT_addrtype, 0); printf(" %s", resultstring); */ /* skip this token */ printf(" %s", charptr); /* look for next token */ charptr = strtok_r(NULL, " \t\n", ptrptr); if ( charptr == NULL ) { fprintf(stderr, "Line contains no 3rd token: %d\n", linecounter); continue; }; if ( strlen(charptr) >= LINEBUFFER) { fprintf(stderr, "Line too strange: %d\n", linecounter); continue; }; DEBUGPRINT_WA(DEBUG_ipv6logconv_processing, "Token 3: '%s'", charptr); retval = converttoken(resultstring, sizeof(resultstring), token, FORMAT_ouitype, 0); /* print result */ printf(" %s", resultstring); }; END_line: if ((*ptrptr != NULL) && (strlen(*ptrptr) > 0)) { printf(" %s", *ptrptr); } else {; printf("\n"); }; }; if (ipv6calc_quiet == 0) { fprintf(stderr, "...finished\n"); if (flag_nocache == 0) { fprintf(stderr, "Cache statistics:\n"); for (i = 0; i < cache_lru_limit; i++) { fprintf(stderr, "Cache distance: %3d hits: %8ld\n", i, cache_lru_statistics[i]); }; }; }; return; }; /* * Convert token */ static int converttoken(char *resultstring, const size_t resultstring_length, const char *token, const long int outputtype, const int flag_skipunknown) { uint32_t inputtype = FORMAT_undefined; int retval = 1, i, registry; uint32_t typeinfo_test; char tempstring[IPV6CALC_STRING_MAX]; ipv6calc_macaddr macaddr; /* used structures */ ipv6calc_ipv6addr ipv6addr; ipv6calc_ipv4addr ipv4addr; DEBUGPRINT_WA(DEBUG_ipv6logconv_processing, "Token: '%s'", token); /* clear resultstring */ resultstring[0] = '\0'; if (strlen(token) == 0) { return (1); }; /* use cache ? */ if (flag_nocache == 0 && cache_lru_max > 0) { /* check last seen one first */ DEBUGPRINT_WA(DEBUG_ipv6logconv_processing, "LRU cache: look for key=%s", token); if (cache_lru_key_outputtype[cache_lru_last - 1] == outputtype) { if (strcmp(cache_lru_key_token[cache_lru_last - 1], token) == 0) { snprintf(resultstring, resultstring_length, "%s", cache_lru_value[cache_lru_last - 1]); cache_lru_statistics[0]++; DEBUGPRINT_WA(DEBUG_ipv6logconv_processing, "LRU cache: hit last line=%d key_token=%s key_outputtype=%lx value=%s", cache_lru_last - 1, token, outputtype, resultstring); return (0); }; } else { /* run backwards to first entry */ if (cache_lru_last > 1) { for (i = cache_lru_last - 1; i > 0; i--) { if (cache_lru_key_outputtype[i - 1] == outputtype) { if (strcmp(cache_lru_key_token[i - 1], token) == 0) { snprintf(resultstring, resultstring_length, "%s", cache_lru_value[i - 1]); cache_lru_statistics[cache_lru_last - i]++; DEBUGPRINT_WA(DEBUG_ipv6logconv_processing, "LRU cache: hit line=%d key_token=%s key_outputtype=%lx value=%s", i - 1, token, outputtype, resultstring); return (0); }; }; }; }; /* round robin */ if (cache_lru_last < cache_lru_max) { for (i = cache_lru_max; i > cache_lru_last; i--) { if (cache_lru_key_outputtype[i - 1] == outputtype) { if (strcmp(cache_lru_key_token[i - 1], token) == 0) { snprintf(resultstring, resultstring_length, "%s", cache_lru_value[i - 1]); cache_lru_statistics[cache_lru_max - i + cache_lru_last]++; DEBUGPRINT_WA(DEBUG_ipv6logconv_processing, "LRU cache: hit line=%d key_token=%s key_outputtype=%lx value=%s", i - 1, token, outputtype, resultstring); return (0); }; }; }; }; }; }; /* set addresses to invalid */ ipv6addr.flag_valid = 0; ipv4addr.flag_valid = 0; /* autodetection */ inputtype = libipv6calc_autodetectinput(token); DEBUGSECTION_BEGIN(DEBUG_ipv6logconv_processing) if (inputtype != FORMAT_undefined) { for (i = 0; i < ipv6calc_formatstrings_entries; i++) { if (inputtype == ipv6calc_formatstrings[i].number) { DEBUGPRINT_WA(DEBUG_ipv6logconv_processing, "Found type: %s", ipv6calc_formatstrings[i].token); }; break; }; } else { DEBUGPRINT_NA(DEBUG_ipv6logconv_processing, "Input type unknown"); return (1); }; DEBUGSECTION_END /* proceed input depending on type */ switch (inputtype) { case FORMAT_ipv6addr: retval = addr_to_ipv6addrstruct(token, resultstring, sizeof(resultstring), &ipv6addr); break; case FORMAT_ipv4addr: retval = addr_to_ipv4addrstruct(token, resultstring, sizeof(resultstring), &ipv4addr); break; }; DEBUGPRINT_WA(DEBUG_ipv6logconv_processing, "Token: '%s'", token); /***** postprocessing input *****/ DEBUGPRINT_NA(DEBUG_ipv6logconv_processing, "Start of postprocessing input"); switch (outputtype) { case FORMAT_addrtype: if (ipv6addr.flag_valid == 1) { DEBUGPRINT_NA(DEBUG_ipv6logconv_processing, "is IPv6 address"); snprintf(resultstring, resultstring_length, "ipv6-addr.addrtype.ipv6calc"); /* set type */ ipv6addr_settype(&ipv6addr); /* scope of IPv6 address */ /* init retval */ for (i = 0; i < ipv6calc_ipv6addrtypestrings_entries; i++) { if ( ipv6calc_ipv6addrtypestrings[i].number == IPV6_ADDR_ANY ) { retval = i; break; }; }; typeinfo_test = ipv6addr.typeinfo & (IPV6_NEW_ADDR_AGU | IPV6_ADDR_LINKLOCAL | IPV6_ADDR_SITELOCAL | IPV6_ADDR_MAPPED | IPV6_ADDR_COMPATv4 | IPV6_ADDR_ULUA); if ( typeinfo_test != 0 ) { /* get string */ for (i = 0; i < ipv6calc_ipv6addrtypestrings_entries; i++) { if ( (typeinfo_test & ipv6calc_ipv6addrtypestrings[i].number) != 0 ) { retval = i; break; }; }; }; snprintf(tempstring, sizeof(tempstring), "%s.%s", ipv6calc_ipv6addrtypestrings[retval].token, resultstring); snprintf(resultstring, resultstring_length,"%s", tempstring); /* type of global IPv6 address */ /* init retval */ for (i = 0; i < ipv6calc_ipv6addrtypestrings_entries; i++) { if ( ipv6calc_ipv6addrtypestrings[i].number == IPV6_ADDR_ANY ) { retval = i; break; }; }; typeinfo_test = ipv6addr.typeinfo & (IPV6_NEW_ADDR_6TO4 | IPV6_NEW_ADDR_6BONE | IPV6_NEW_ADDR_PRODUCTIVE); if ( typeinfo_test != 0 ) { if ((ipv6addr.typeinfo & IPV6_NEW_ADDR_TEREDO) != 0) { snprintf(tempstring, sizeof(tempstring), "teredo.%s", resultstring); snprintf(resultstring, resultstring_length, "%s", tempstring); } else { /* get string */ for (i = 0; i < ipv6calc_ipv6addrtypestrings_entries; i++) { if ( (typeinfo_test & ipv6calc_ipv6addrtypestrings[i].number) != 0 ) { retval = i; break; }; }; snprintf(tempstring, sizeof(tempstring), "%s.%s", ipv6calc_ipv6addrtypestrings[retval].token, resultstring); snprintf(resultstring, resultstring_length, "%s", tempstring); }; }; /* registry of IPv6 address */ if ( ( (ipv6addr.typeinfo & (IPV6_NEW_ADDR_6BONE | IPV6_NEW_ADDR_PRODUCTIVE) ) != 0) && ( (ipv6addr.typeinfo & (IPV6_NEW_ADDR_TEREDO)) == 0)) { registry = libipv6addr_registry_num_by_addr(&ipv6addr); snprintf(tempstring, sizeof(tempstring), "%s.%s", libipv6calc_registry_string_by_num(registry), resultstring); snprintf(resultstring, resultstring_length, "%s", tempstring); } else if ( (ipv6addr.typeinfo & (IPV6_NEW_ADDR_6TO4 | IPV6_ADDR_MAPPED | IPV6_ADDR_COMPATv4 | IPV6_NEW_ADDR_TEREDO)) != 0 ) { DEBUGPRINT_NA(DEBUG_ipv6logconv_processing, "IPv6 has IPv4 included"); /* fill IPv4 address */ if ( (ipv6addr.typeinfo & (IPV6_ADDR_MAPPED | IPV6_ADDR_COMPATv4)) != 0 ) { for (i = 0; i <= 3; i++) { ipv4addr_setoctet(&ipv4addr, i, ipv6addr_getoctet(&ipv6addr, i + 12)); }; } else if ( (ipv6addr.typeinfo & IPV6_NEW_ADDR_6TO4) != 0 ) { for (i = 0; i <= 3; i++) { ipv4addr_setoctet(&ipv4addr, i, ipv6addr_getoctet(&ipv6addr, i + 2)); }; } else if ( (ipv6addr.typeinfo & IPV6_NEW_ADDR_TEREDO) != 0 ) { for (i = 0; i <= 3; i++) { ipv4addr_setoctet(&ipv4addr, i, ipv6addr_getoctet(&ipv6addr, i + 12) ^ 0xff); }; } else { /* normally never happen */ fprintf(stderr, "%s/%s: Error occurs at IPv6->IPv4 address extraction!\n", __FILE__, __func__); exit(EXIT_FAILURE); }; ipv4addr_settype(&ipv4addr, 1); /* Set typeinfo */ /* IPv4 registry */ registry = libipv4addr_registry_num_by_addr(&ipv4addr); snprintf(tempstring, sizeof(tempstring), "%s.%s", libipv6calc_registry_string_by_num(registry), resultstring); snprintf(resultstring, resultstring_length, "%s", tempstring); }; } else if (ipv4addr.flag_valid == 1) { snprintf(resultstring, resultstring_length, "ipv4-addr.addrtype.ipv6calc"); /* IPv4 registry */ registry = libipv4addr_registry_num_by_addr(&ipv4addr); snprintf(tempstring, sizeof(tempstring), "%s.%s", libipv6calc_registry_string_by_num(registry), resultstring); snprintf(resultstring, resultstring_length, "%s", tempstring); } else { snprintf(resultstring, resultstring_length, "reverse-lookup-successful.addrtype.ipv6calc"); }; break; case FORMAT_ouitype: if (ipv6addr.flag_valid != 1) { if (flag_skipunknown != 0) { return (1); } else { snprintf(resultstring, resultstring_length, "not-ipv6.ouitype.ipv6calc"); return (0); }; }; ipv6addr_settype(&ipv6addr); /* check whether address has an OUI ID */ if ( (( ipv6addr.typeinfo & (IPV6_ADDR_LINKLOCAL | IPV6_ADDR_SITELOCAL | IPV6_NEW_ADDR_AGU | IPV6_NEW_ADDR_6BONE | IPV6_NEW_ADDR_6TO4 | IPV6_ADDR_ULUA)) == 0) && ((ipv6addr.typeinfo & (IPV6_NEW_ADDR_TEREDO)) == 0) ) { if (flag_skipunknown != 0) { return (1); } else { snprintf(resultstring, resultstring_length, "unresolvable.ouitype.ipv6calc"); return (0); }; }; if ((ipv6addr_getoctet(&ipv6addr, 8) & 0x02) != 0) { macaddr.addr[0] = ipv6addr_getoctet(&ipv6addr, 8) ^0x02; macaddr.addr[1] = ipv6addr_getoctet(&ipv6addr, 9); macaddr.addr[2] = ipv6addr_getoctet(&ipv6addr, 10); macaddr.addr[3] = ipv6addr_getoctet(&ipv6addr, 13); macaddr.addr[4] = ipv6addr_getoctet(&ipv6addr, 14); macaddr.addr[5] = ipv6addr_getoctet(&ipv6addr, 15); retval = libipv6calc_db_wrapper_ieee_vendor_string_short_by_macaddr(resultstring, sizeof(resultstring), &macaddr); if (retval != 0) { if (flag_skipunknown != 0) { return (1); } else { snprintf(resultstring, resultstring_length, "unresolvable.ouitype.ipv6calc"); return (0); }; }; if (strlen(resultstring) == 0) { snprintf(resultstring, resultstring_length, "unknown.ouitype.ipv6calc"); } else { snprintf(tempstring, sizeof(tempstring), "%s.ouitype.ipv6calc", resultstring); snprintf(resultstring, resultstring_length, "%s", tempstring); }; } else { if ( (ipv6addr.typeinfo & IPV6_NEW_ADDR_6TO4_MICROSOFT) != 0 ) { snprintf(resultstring, resultstring_length, "6to4-microsoft.ouitype.ipv6calc"); } else if ( (ipv6addr.typeinfo & IPV6_NEW_ADDR_IID_ISATAP) != 0 ) { snprintf(resultstring, resultstring_length, "ISATAP.ouitype.ipv6calc"); } else if ( (ipv6addr.typeinfo & IPV6_NEW_ADDR_IID_RANDOM) != 0 ) { snprintf(resultstring, resultstring_length, "local-scope-random.ouitype.ipv6calc"); } else if ( (ipv6addr.typeinfo & IPV6_NEW_ADDR_TEREDO) != 0 ) { snprintf(resultstring, resultstring_length, "local-scope-teredo.ouitype.ipv6calc"); } else { snprintf(resultstring, resultstring_length, "local-scope.ouitype.ipv6calc"); }; }; break; case FORMAT_ipv6addrtype: if (ipv6addr.flag_valid != 1) { if (flag_skipunknown != 0) { return (1); } else { snprintf(resultstring, resultstring_length, "not-ipv6.ipv6addrtype.ipv6calc"); return (0); }; }; ipv6addr_settype(&ipv6addr); if ( (ipv6addr.typeinfo & IPV6_ADDR_LINKLOCAL) != 0 ) { snprintf(resultstring, resultstring_length, "link-local.ipv6addrtype.ipv6calc"); } else if ( (ipv6addr.typeinfo & IPV6_ADDR_SITELOCAL) != 0 ) { snprintf(resultstring, resultstring_length, "site-local.ipv6addrtype.ipv6calc"); } else if ( (ipv6addr.typeinfo & IPV6_ADDR_ULUA) != 0 ) { snprintf(resultstring, resultstring_length, "unique-local.ipv6addrtype.ipv6calc"); } else if ( (ipv6addr.typeinfo & IPV6_NEW_ADDR_TEREDO) != 0 ) { if ( (ipv6addr.typeinfo & IPV6_NEW_ADDR_6BONE) != 0 ) { snprintf(resultstring, resultstring_length, "teredo.6bone-global.ipv6addrtype.ipv6calc"); } else { snprintf(resultstring, resultstring_length, "teredo.unknown-global.ipv6addrtype.ipv6calc"); }; } else if ( (ipv6addr.typeinfo & IPV6_NEW_ADDR_6BONE) != 0 ) { snprintf(resultstring, resultstring_length, "6bone-global.ipv6addrtype.ipv6calc"); } else if ( (ipv6addr.typeinfo & IPV6_NEW_ADDR_6TO4) != 0 ) { snprintf(resultstring, resultstring_length, "6to4-global.ipv6addrtype.ipv6calc"); } else if ( (ipv6addr.typeinfo & IPV6_NEW_ADDR_PRODUCTIVE) != 0 ) { snprintf(resultstring, resultstring_length, "productive-global.ipv6addrtype.ipv6calc"); } else if ( (ipv6addr.typeinfo & IPV6_ADDR_MAPPED) != 0 ) { snprintf(resultstring, resultstring_length, "mapped-ipv4.ipv6addrtype.ipv6calc"); } else if ( (ipv6addr.typeinfo & IPV6_ADDR_COMPATv4) != 0 ) { snprintf(resultstring, resultstring_length, "compat-ipv4.ipv6addrtype.ipv6calc"); } else { snprintf(resultstring, resultstring_length, "unknown-ipv6.ipv6addrtype.ipv6calc"); }; break; default: fprintf(stderr, " Outputtype isn't implemented\n"); return (1); }; /* use cache ? */ if (flag_nocache == 0) { /* calculate pointer */ if (cache_lru_max < cache_lru_limit) { cache_lru_last++; cache_lru_max++; } else { if (cache_lru_last == cache_lru_limit) { cache_lru_last = 1; } else { cache_lru_last++; }; }; /* store key and value */ snprintf(cache_lru_key_token[cache_lru_last - 1], IPV6CALC_STRING_MAX - 1, "%s", token); cache_lru_key_outputtype[cache_lru_last - 1] = outputtype; snprintf(cache_lru_value[cache_lru_last - 1], IPV6CALC_STRING_MAX - 1, "%s", resultstring); DEBUGPRINT_WA(DEBUG_ipv6logconv_processing, "LRU cache: fill line=%d key_token=%s key_outputtype=%lx value=%s", cache_lru_last - 1, cache_lru_key_token[cache_lru_last - 1], cache_lru_key_outputtype[cache_lru_last - 1], cache_lru_value[cache_lru_last - 1]); }; return (0); }; ipv6calc-4.1.0/ipv6logconv/ipv6logconv.h000066400000000000000000000012531444154247200201340ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6logconv.h * Version : $Id: 9699e2c949f5cf34c17fa0e8d414f087167781dd $ * Copyright : 2002-2020 by Peter Bieringer * License : GNU GPL v2 * * Information: * Main header file */ /* global program related definitions */ #define PROGRAM_NAME "ipv6logconv" #define PROGRAM_COPYRIGHT "(P) & (C) 2002-" COPYRIGHT_YEAR " by Peter Bieringer " /* LRU cache maximum size */ #define CACHE_LRU_SIZE 200 #define DEBUG_ipv6logconv_general 0x00000001l #define DEBUG_ipv6logconv_processing 0x00000002l extern int cache_lru_limit; extern int feature_reg; extern int feature_ieee; ipv6calc-4.1.0/ipv6logconv/ipv6logconvhelp.c000066400000000000000000000055211444154247200210020ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6logconvhelp.c * Version : $Id: 19ece2b813c395919e5d0e540532f739a921c7cc $ * Copyright : 2002-2014 by Peter Bieringer * License : GNU GPL v2 * * Information: * Help library */ #include #include #include #include "ipv6logconv.h" #include "ipv6calctypes.h" #include "ipv6calccommands.h" #include "ipv6calchelp.h" #include "config.h" /* display info */ void printversion(void) { fprintf(stderr, "%s: version %s", PROGRAM_NAME, PACKAGE_VERSION); if (feature_reg == 1) { fprintf(stderr, " CONV_REG"); }; if (feature_ieee == 1) { fprintf(stderr, " CONV_IEEE"); }; fprintf(stderr, "\n"); }; void printversion_help(void) { fprintf(stderr, "\n"); fprintf(stderr, "Explanation of available(x)/possible(o) feature tokens\n"); fprintf(stderr, "%-22s%c %s\n", "CONV_REG", (feature_reg == 1)? 'x' : 'o', "Conversion of IPv4/IPv6 address to Registry tokens"); fprintf(stderr, "%-22s%c %s\n", "CONV_IEEE", (feature_ieee == 1) ? 'x' : 'o', "Conversion of included MAC/EUI-64 adress to IEEE (vendor) name"); fprintf(stderr, "\n"); }; void printcopyright(void) { fprintf(stderr, "%s\n", PROGRAM_COPYRIGHT); }; void ipv6logconv_printinfo(void) { printversion(); printcopyright(); fprintf(stderr, "This program converts IPv4/IPv6 addresses in HTTP server log files\n"); fprintf(stderr, "See '%s -?|-h|--help for online help\n", PROGRAM_NAME); }; /* print global help */ void ipv6logconv_printhelp(void) { printversion(); printcopyright(); fprintf(stderr, "\n"); fprintf(stderr, "This program converts IPv4/IPv6 addresses in HTTP server log files\n"); printhelp_common(IPV6CALC_HELP_BASIC); fprintf(stderr, " Performance options:\n"); fprintf(stderr, " [-n|--nocache] : disable caching\n"); fprintf(stderr, " [-c|--cachelimit ] : set cache limit\n"); fprintf(stderr, " default: %d\n", cache_lru_limit); fprintf(stderr, " maximum: %d\n", CACHE_LRU_SIZE); fprintf(stderr, " Output options:\n"); fprintf(stderr, " [--out ] : specify output type\n"); fprintf(stderr, " addrtype : Address type%s\n", (feature_reg == 0) ? " (NOT-SUPPORTED)" : ""); fprintf(stderr, " ouitype : OUI (IEEE) type%s\n", (feature_ieee == 0) ? " (NOT-SUPPORTED)" : ""); fprintf(stderr, " ipv6addrtype : IPv6 address type\n"); fprintf(stderr, " any : any type%s\n", ((feature_reg == 0) || (feature_ieee == 0)) ? " (NOT-SUPPORTED)" : ""); fprintf(stderr, "\n"); if ((feature_reg == 0) || (feature_ieee == 0)) { fprintf(stderr, " NOT-SUPPORTED means either database missing or support not compiled-in\n"); }; fprintf(stderr, "\n"); fprintf(stderr, " Takes data from stdin, proceed it to stdout\n"); fprintf(stderr, "\n"); return; }; ipv6calc-4.1.0/ipv6logconv/ipv6logconvhelp.h000066400000000000000000000006621444154247200210100ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6logconvhelp.h * Version : $Id: 4cb64f97e09c3a124629f7b1bbf61cf52732bb83 $ * Copyright : 2002-2014 by Peter Bieringer * License : GNU GPL v2 * * Information: * Header file for ipv6logconvhelp.c */ extern void printversion(void); extern void printversion_help(void); extern void ipv6logconv_printinfo(void); extern void ipv6logconv_printhelp(void); ipv6calc-4.1.0/ipv6logconv/ipv6logconvoptions.h000066400000000000000000000016661444154247200215600ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6logconvoptions.h * Version : $Id: 1c5b331c3db83c58e71f86efc8b742381e407e28 $ * Copyright : 2002-2007 by Peter Bieringer * * Information: * Header file containing options for ipvlogconv.c */ #include #include "ipv6calctypes.h" #ifndef _ipv6logconvoptions_h_ #define _ipv6logconvoptions_h_ /* Options */ /* define short options */ static char *ipv6logconv_shortopts = "vfh?nc:"; /* define long options */ static struct option ipv6logconv_longopts[] = { {"version", 0, NULL, (int) 'v' }, {"flush" , 0, NULL, (int) 'f' }, /* help options */ {"help" , 0, NULL, (int) 'h'}, {"examples" , 0, 0, CMD_printexamples }, {"printexamples", 0, 0, CMD_printexamples }, /* cache options */ {"nocache", 0, 0, (int) 'n'}, {"cachelimit", 0, 0, (int) 'c'}, /* options */ { "out" , 1, 0, CMD_outputtype }, }; #endif ipv6calc-4.1.0/ipv6logconv/test_ipv6logconv.sh000077500000000000000000000073351444154247200213700ustar00rootroot00000000000000#!/usr/bin/env bash # # Project : ipv6calc # File : test_ipv6logconv.sh # Version : $Id: 714a225a3a138ff655b772d43861e58dcedb64fa $ # Copyright : 2002-2021 by Peter Bieringer # # Test program for "ipv6logconv" if [ ! -x ./ipv6logconv ]; then echo "Binary './ipv6logconv' missing or not executable" exit 1 fi # Test proper option definitions echo "Test proper option definition" ./ipv6logconv -h >/dev/null if [ $? -ne 1 ]; then echo "ERROR : something wrong in option definition" exit 1 fi echo "Run 'ipv6logconv' version help test for feature tokens..." ./ipv6logconv -v -h retval=$? if [ $retval -ne 0 ]; then echo "Error executing 'ipv6logconv -v -h'!" exit 1 fi echo source ../ipv6calc/test_scenarios.sh testscenarios() { # Address cat <&2 if ./ipv6logconv -v | grep -w "CONV_REG" | grep -w "CONV_IEEE"; then true else echo "NOTICE : ipv6logconv tests skipped, at least one required database feature is missing" exit 0 fi if [ "$1" != "bulk" ]; then testscenarios | grep -v "^#" | while read line; do echo echo "INPUT: $line" echo "$line" | ./ipv6logconv --out any -q $* retval=$? if [ $retval -ne 0 ]; then echo "Error executing 'ipv6logconv'!" >&2 exit 1 fi done || exit 1 echo else shift echo "Test with cache" testscenarios_cache | grep -v "^#" | ./ipv6logconv --out any -q $* retval=$? if [ $retval -ne 0 ]; then echo "Error executing 'ipv6logconv'!" >&2 exit 1 fi echo "Test without cache" testscenarios_cache | grep -v "^#" | ./ipv6logconv --out any -q -n $* retval=$? if [ $retval -ne 0 ]; then echo "Error executing 'ipv6logconv'!" >&2 exit 1 fi echo fi echo "INFO : test scenario with huge amount of addresses..." testscenario_hugelist ipv4 | awk '{ print $1 " token2 token3" }' | ./ipv6logconv -q --out any -q >/dev/null if [ $? -ne 0 ]; then echo "ERROR : exit code <> 0" exit 1 fi echo "INFO : test scenario with huge amount of addresses: OK" if [ $? -eq 0 ]; then echo "All tests were successfully done!" >&2 fi ipv6calc-4.1.0/ipv6logstats/000077500000000000000000000000001444154247200156775ustar00rootroot00000000000000ipv6calc-4.1.0/ipv6logstats/Makefile.in000066400000000000000000000040601444154247200177440ustar00rootroot00000000000000# Project : ipv6calc/ipv6logstats # File : Makefile # Version : $Id: 388d5431008bd4bd661ac53e5e706bed7e95b049 $ # Copyright : 2003-2022 by Peter Bieringer # # Information: # Makefile for ipv6logstats # prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ # Compiler and Linker Options # -D__EXTENSIONS__ is for Solaris & strtok_r DEFAULT_CFLAGS ?= -O2 -Wall -g @CFLAGS_EXTRA@ CFLAGS += -D__EXTENSIONS__ LDFLAGS += @LDFLAGS@ INCLUDES= $(COPTS) @MD5_INCLUDE@ @GETOPT_INCLUDE@ @MMDB_INCLUDE_L1@ @IP2LOCATION_INCLUDE_L1@ -I../ -I../lib/ -I../databases/lib/ LIBS = @IPV6CALC_LIB@ @MMDB_LIB_L1@ @IP2LOCATION_LIB_L1@ @DYNLOAD_LIB@ GETOBJS = @LIBOBJS@ CC = @CC@ LDFLAGS_EXTRA = @LDFLAGS_EXTRA@ LDFLAGS_EXTRA_STATIC = @LDFLAGS_EXTRA_STATIC@ OBJS = ipv6logstats.o ipv6logstatshelp.o # splint SPLINT_OPT_OUTSIDE = -uniondef +matchanyintegral --nullassign +ignoresigns -compdef -usedef -modobserver -formatconst -warnposix -exportlocal SPLINT_TODO_LATER = -unrecog all: ipv6logstats .c.o: $(CC) -c $< $(DEFAULT_CFLAGS) $(CFLAGS) $(INCLUDES) libipv6calc.a: cd ../ && ${MAKE} lib-make libipv6calc_db_wrapper.a: cd ../ && ${MAKE} lib-make $(OBJS): ipv6logstatsoptions.h ipv6logstatshelp.h ipv6logstats.h ipv6logstats: $(OBJS) libipv6calc.a libipv6calc_db_wrapper.a $(CC) -o ipv6logstats $(OBJS) $(GETOBJS) $(LDFLAGS) $(LIBS) $(LDFLAGS_EXTRA) -lm static: ipv6logstats $(CC) -o ipv6logstats-static $(OBJS) $(GETOBJS) $(LDFLAGS) $(LIBS) $(LDFLAGS_EXTRA_STATIC) -lm -static distclean: ${MAKE} clean autoclean: ${MAKE} distclean clean: rm -f ipv6logstats ipv6logstats-static *.o test: ipv6logstats LD_LIBRARY_PATH=@LD_LIBRARY_PATH@ ./test_ipv6logstats.sh test-minimal: ${MAKE} test test-ldlibpath: ipv6logstats LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_ipv6logstats.sh codecheck: ${MAKE} splint splint: splint *.c ../lib/*.c -I.. -I../lib $(SPLINT_OPT_OUTSIDE) $(SPLINT_TODO_LATER) install: mkdir -p $(DESTDIR)$(bindir) install -m 755 ipv6logstats $(DESTDIR)$(bindir) ipv6calc-4.1.0/ipv6logstats/README000066400000000000000000000036511444154247200165640ustar00rootroot00000000000000$Id: 47921b7fb034a1c809ccb5f65f75d62ab73e17a8 $ Output format ============= Statistics in rows ------------------ *Version $MAJOR.$MINOR Statistics in columns --------------------- Last column contains output version number (since 4.0) prepended with '#' Changes ------- Output format version 4.0 extended with: - stat by rows: - new rows for AfriNIC - stat by columns: - new columns for AfriNIC - version number on end of line Output format version 3.0 extended with: - Database information *3*DB-Info: ... - one line per CountryCode and proto *3*CC-code-proto/$CC/ALL $ALL[$CC] *3*CC-code-proto/$CC/IPv4 $IPv4[$CC] *3*CC-code-proto/$CC/IPv6 $IPv6[$CC] - list per CountryCode *3*CC-code-proto-list/$CC $ALL[$CC] $IPv4[$CC] $IPv6[$CC] - one line per proto and CountryCode *3*CC-proto-code/ALL/$CC $ALL[$CC] *3*CC-proto-code/IPv4/$CC $IPv4[$CC] *3*CC-proto-code/IPv6/$CC $IPv6[$CC] - list per proto (summary) *3*CC-proto-code-list/ALL sum($ALL[$CC]) sum($IPv4[$CC]) sum($IPv6[$CC]) - one line per AS and proto: *3*ASN-num-proto/$AS/ALL $ALL[$AS] *3*ASN-num-proto/$AS/IPv4 $IPv4[$AS] *3*ASN-num-proto/$AS/IPv6 $IPv6[$AS] - list per AS *3*ASN-num-proto-list/$AS $ALL[$AS] $IPv4[$AS] $IPv6[$AS] - one line per proto and AS *3*ASN-proto-num/ALL/$AS $ALL[$AS] *3*ASN-proto-num/IPv4/$AS $IPv4[$AS] *3*ASN-proto-num/IPv6/$AS $IPv6[$AS] - list per proto (summary) *3*ASN-proto-num-list/ALL sum($ALL[$AS]) sum($IPv4[$AS]) sum($IPv6[$AS]) => "grep" your favorite lines, "*" can be matched with '^\*3\*' NOTE: country code "--" (unknown) is mapped to "00", there are also other special ones defined in GeoIP like A1, A2 and O1 (see GeoIP source code) NOTE: ASN "0" is "unknown" Output format in future versions will be introduced with *$MAJOR* External software: Gnuplot: Homepage: http://www.gnuplot.info/ Gnuplot is normally contained by Linux distribution GRI: Homepage: http://gri.sourceforge.net/ ipv6calc-4.1.0/ipv6logstats/collect_ipv6logstats.pl000077500000000000000000000041251444154247200224130ustar00rootroot00000000000000#!/usr/bin/perl -w # # Project : ipv6calc/logstats # File : collect_ipv6logstats.pl # Version : $Id: b3aee82cbef75d2c78c3feb9cd606c0e8bff7d28 $ # Copyright : 2003 by Peter Bieringer # # Collect ipv6logstats data my $dir = "./examples-data"; my $file_pattern = "^data-[0-9]{6}.txt\$"; my %data; my @token_list = ("ALL", "IPv4", "IPv6"); ## Functions ## sub read_file($) { my $token; if ( ! -r $_[0] ) { die "Cannot read: " . $_[0]; }; open(FILE, $_[0]) || die "Cannot open file: " . $_[0]; print STDERR "INFO: Read content of file: " . $_[0] . "\n"; while () { chomp $_; my ($t, $v) = split / +/, $_; #print STDERR "DEBUG: found token: " . $t . "(" . $v . ")\n"; if ($t =~ /^\*/) { # special token/value pair if ($t eq "*Token") { $token = $v; next; }; } else { if (! defined $token) { die "Missing '*Token' in data file"; }; # values $data{$token}->{$t} = $v; }; }; close FILE; }; sub print_all_data() { # Print header print "#HEADER "; foreach my $token (sort keys %data) { foreach my $t (sort keys %{$data{$token}} ) { print $t . " "; }; print "\n"; last; }; # Print data foreach my $token (sort keys %data) { print $token . " "; foreach my $t (sort keys %{$data{$token}} ) { print $data{$token}->{$t} . " "; }; print "\n"; }; }; sub print_selected_data() { if (1 == 0) { # Print header print "#HEADER "; foreach my $token (sort keys %data) { foreach my $t (@token_list) { print $t . " "; }; print "\n"; last; }; }; # Print data foreach my $token (sort keys %data) { print $token . " "; foreach my $t (@token_list) { print $data{$token}->{$t} . " "; }; print "\n"; }; }; ## Main if ( ! -d $dir ) { die "Missing data directory: $dir"; }; opendir(DIR, $dir) || die "Cannot read directory: $dir"; my @files = grep { /$file_pattern/ } readdir(DIR); closedir DIR; print STDERR "INFO: number of files matching pattern '$file_pattern' found: " . $#files . "\n"; foreach my $file (@files) { read_file($dir . "/" . $file); }; print_selected_data(); ipv6calc-4.1.0/ipv6logstats/example_gnuplot.cmd000066400000000000000000000052461444154247200215760ustar00rootroot00000000000000# Project : ipv6calc/logstats # File : example_gnuplot.cmd # Version : $Id$ # Copyright : 2003-2014 by Peter Bieringer # # Command file for gnuplot # Usage: gnuplot example_gnuplot.cmd # # This scripts expect data in file "data" by default # # Don't forget to adjust file names # set output "..." : for output file # plot '...' : for input data file # # Tested with gnuplut versions # 4.6.3 # 4.0.0 set terminal png small set output "result.png" set title "Webserver access statistics" set xlabel "Date" set timefmt "%Y%m" set yrange [ 1 : ] set logscale y set xdata time set ylabel "Requests" set format x "%m/%Y" set grid set key left plot 'data' using 1:4 t 'IPv6' with linespoints, 'data' using 1:($2) t 'ALL' with linespoints reset set terminal png small set output "result-percent.png" set title "Webserver access statistics (relative)" set xlabel "Date" set timefmt "%Y%m" set yrange [ 0.01 : 100 ] set logscale y set xdata time set ylabel "Requests (Percent)" set format x "%m/%Y" set grid set key left plot 'data' using 1:($4 / $2 * 100) t 'IPv6' with linespoints, 'data' using 1:($3 / $2 * 100 ) t 'IPv4' with linespoints reset set terminal png small set output "result-iid.png" set title "Webserver access IPv6 IID statistics" set xlabel "Date" set timefmt "%Y%m" set yrange [ 0 : ] set xdata time set ylabel "IPv6 Requests" set format x "%m/%Y" set style fill solid set grid set key left plot \ 'data' using 1:($47 + $46 + $45 + $48) t 'IPv6 IID-manual' smooth sbezier with filledcurves x1, \ 'data' using 1:($46 + $45 + $48) t 'IPv6 IID-random' smooth sbezier with filledcurves x1, \ 'data' using 1:($45 + $48) t 'IPv6 IID-global' smooth sbezier with filledcurves x1, \ 'data' using 1:($48) t 'IPv6 IID-ISATAP' smooth sbezier with filledcurves x1 reset set terminal png small set output "result-ipv6-registries.png" set title "Webserver access IPv6 registries" set xlabel "Date" set timefmt "%Y%m" set yrange [ 0 : ] set xdata time set ylabel "IPv6 Requests" set format x "%m/%Y" set style fill solid set grid set key left plot \ 'data' using 1:($18 + $17 + $16 + $15 + $14 + $13 + $12) t 'AFRINIC' smooth sbezier with filledcurves x1, \ 'data' using 1:($17 + $16 + $15 + $14 + $13 + $12) t 'LACNIC' smooth sbezier with filledcurves x1, \ 'data' using 1:($16 + $15 + $14 + $13 + $12) t 'RIPE' smooth sbezier with filledcurves x1, \ 'data' using 1:($15 + $14 + $13 + $12) t 'ARIN' smooth sbezier with filledcurves x1, \ 'data' using 1:($14 + $13 + $12) t 'APNIC' smooth sbezier with filledcurves x1, \ 'data' using 1:($13 + $12) t 'IANA' smooth sbezier with filledcurves x1, \ 'data' using 1:($12) t '6bone' smooth sbezier with filledcurves x1 reset ipv6calc-4.1.0/ipv6logstats/example_ipv6logstats.sh000077500000000000000000000024001444154247200224120ustar00rootroot00000000000000#!/bin/sh # # Project : ipv6calc/logstats # File : example_ipv6logstats.sh # Version : $Id: 7babf149c6679c1e7c18a73d27123787061ae4d7 $ # Copyright : 2003-2014 by Peter Bieringer # # Example program for "ipv6logstats" # Print header line #./ipv6logstats -o -p "Date" # Find logfiles (here name in format hostname-log.%Y%m(.token)(.gz|bz2) dir="$1" bin="./ipv6logstats" if [ -z "$dir" ]; then dir="." fi if [ -n "$2" ]; then bin="$2" if [ ! -x "$bin" ]; then echo "Error: cannot execute: $bin" exit 1 fi fi cat_file() { for f in $*; do echo "Proceed file: $f" >&2 if echo "$f" | grep -q "\.gz$"; then zcat "$f" elif echo "$f" | grep -q "\.bz2$"; then bzcat "$f" else cat "$f" fi done } echo "Analyze Year/Month of files" >&2 find $dir -name '*-log.*' -type f | while read file; do #echo "Analyze Year/Month of file: $file" >&2 # Extract %Y%m yearmonth="`basename "$file" | sed 's/.*\.\([0-9]\{6\}\)\..*/\1/'`" if [ ${#yearmonth} -eq 6 ]; then echo $yearmonth fi done | sort -u | while read yearmonth; do # don't count mon and check_http (from Nagios) cat_file `find $dir -name "*-log.$yearmonth*" -type f` | grep -Ev "(mon.d/http.monitor|check_http)" | $bin -c -q -n -p "$yearmonth" || exit 1 done ipv6calc-4.1.0/ipv6logstats/examples-data/000077500000000000000000000000001444154247200204245ustar00rootroot00000000000000ipv6calc-4.1.0/ipv6logstats/examples-data/data-200301.txt000066400000000000000000000011541444154247200226220ustar00rootroot00000000000000*Version 1.1 *Token 200301 ALL 2641 IPv4 2585 IPv6 56 UNKNOWN 0 IPv4/APNIC 11 IPv4/ARIN 168 IPv4/RIPE 2394 IPv4/LACNIC 0 IPv4/UNKNOWN 12 IPv6/6bone 4 IPv6/IANA 0 IPv6/APNIC 0 IPv6/ARIN 0 IPv6/RIPE 0 IPv6/LACNIC 0 IPv6/RESERVED 0 IPv6/UNKNOWN 0 IPv6/6to4/IANA 0 IPv6/6to4/APNIC 0 IPv6/6to4/ARIN 0 IPv6/6to4/RIPE 52 IPv6/6to4/LACNIC 0 IPv6/6to4/RESERVED 0 IPv6/6to4/UNKNOWN 0 ipv6calc-4.1.0/ipv6logstats/examples-data/data-200302.txt000066400000000000000000000011541444154247200226230ustar00rootroot00000000000000*Version 1.1 *Token 200302 ALL 9194 IPv4 9163 IPv6 31 UNKNOWN 0 IPv4/APNIC 39 IPv4/ARIN 858 IPv4/RIPE 8240 IPv4/LACNIC 7 IPv4/UNKNOWN 19 IPv6/6bone 0 IPv6/IANA 0 IPv6/APNIC 0 IPv6/ARIN 6 IPv6/RIPE 5 IPv6/LACNIC 0 IPv6/RESERVED 0 IPv6/UNKNOWN 0 IPv6/6to4/IANA 0 IPv6/6to4/APNIC 0 IPv6/6to4/ARIN 0 IPv6/6to4/RIPE 20 IPv6/6to4/LACNIC 0 IPv6/6to4/RESERVED 0 IPv6/6to4/UNKNOWN 0 ipv6calc-4.1.0/ipv6logstats/examples-data/data-200303.txt000066400000000000000000000011621444154247200226230ustar00rootroot00000000000000*Version 1.1 *Token 200303 ALL 12345 IPv4 12334 IPv6 11 UNKNOWN 0 IPv4/APNIC 211 IPv4/ARIN 1691 IPv4/RIPE 10240 IPv4/LACNIC 63 IPv4/UNKNOWN 129 IPv6/6bone 3 IPv6/IANA 0 IPv6/APNIC 3 IPv6/ARIN 0 IPv6/RIPE 5 IPv6/LACNIC 0 IPv6/RESERVED 0 IPv6/UNKNOWN 0 IPv6/6to4/IANA 0 IPv6/6to4/APNIC 0 IPv6/6to4/ARIN 0 IPv6/6to4/RIPE 0 IPv6/6to4/LACNIC 0 IPv6/6to4/RESERVED 0 IPv6/6to4/UNKNOWN 0 ipv6calc-4.1.0/ipv6logstats/examples-data/data-200304.txt000066400000000000000000000011601444154247200226220ustar00rootroot00000000000000*Version 1.1 *Token 200304 ALL 11485 IPv4 11475 IPv6 10 UNKNOWN 0 IPv4/APNIC 285 IPv4/ARIN 1517 IPv4/RIPE 9515 IPv4/LACNIC 86 IPv4/UNKNOWN 72 IPv6/6bone 0 IPv6/IANA 0 IPv6/APNIC 0 IPv6/ARIN 2 IPv6/RIPE 6 IPv6/LACNIC 0 IPv6/RESERVED 0 IPv6/UNKNOWN 0 IPv6/6to4/IANA 0 IPv6/6to4/APNIC 0 IPv6/6to4/ARIN 0 IPv6/6to4/RIPE 2 IPv6/6to4/LACNIC 0 IPv6/6to4/RESERVED 0 IPv6/6to4/UNKNOWN 0 ipv6calc-4.1.0/ipv6logstats/examples-data/data-200305.txt000066400000000000000000000011631444154247200226260ustar00rootroot00000000000000*Version 1.1 *Token 200305 ALL 16390 IPv4 16370 IPv6 20 UNKNOWN 0 IPv4/APNIC 414 IPv4/ARIN 4621 IPv4/RIPE 11086 IPv4/LACNIC 80 IPv4/UNKNOWN 169 IPv6/6bone 0 IPv6/IANA 0 IPv6/APNIC 0 IPv6/ARIN 4 IPv6/RIPE 1 IPv6/LACNIC 0 IPv6/RESERVED 0 IPv6/UNKNOWN 0 IPv6/6to4/IANA 0 IPv6/6to4/APNIC 0 IPv6/6to4/ARIN 0 IPv6/6to4/RIPE 15 IPv6/6to4/LACNIC 0 IPv6/6to4/RESERVED 0 IPv6/6to4/UNKNOWN 0 ipv6calc-4.1.0/ipv6logstats/examples-data/data-200306.txt000066400000000000000000000012011444154247200226200ustar00rootroot00000000000000*Version 1.1 *Token 200306 ALL 30375 IPv4 28887 IPv6 1488 UNKNOWN 0 IPv4/APNIC 1193 IPv4/ARIN 10614 IPv4/RIPE 16104 IPv4/LACNIC 166 IPv4/UNKNOWN 810 IPv6/6bone 228 IPv6/IANA 0 IPv6/APNIC 10 IPv6/ARIN 43 IPv6/RIPE 744 IPv6/LACNIC 0 IPv6/RESERVED 3 IPv6/UNKNOWN 0 IPv6/6to4/IANA 0 IPv6/6to4/APNIC 6 IPv6/6to4/ARIN 110 IPv6/6to4/RIPE 344 IPv6/6to4/LACNIC 0 IPv6/6to4/RESERVED 0 IPv6/6to4/UNKNOWN 0 ipv6calc-4.1.0/ipv6logstats/examples-data/data-simple.txt000066400000000000000000000002101444154247200233560ustar00rootroot00000000000000200301 2641 2585 56 200302 9194 9163 31 200303 12345 12334 11 200304 11485 11475 10 200305 16390 16370 20 200306 30375 28887 1488 ipv6calc-4.1.0/ipv6logstats/examples-gri/000077500000000000000000000000001444154247200202745ustar00rootroot00000000000000ipv6calc-4.1.0/ipv6logstats/examples-gri/data-simple.gri000066400000000000000000000007341444154247200232030ustar00rootroot00000000000000set color black set x name "Year/Month" set y name "Requests" #set y type log #set y axis 1 1000000 draw title "Requests over Time" # Open file open examples-data/data-simple.txt # Read data (x=date, y=all) read columns x y set color red draw curve filled to 0 y draw label for last curve "IPv4+IPv6" # Draw axes set color black draw axes rewind # Read data (x=date, y=IPv6) read columns x * * y set color blue draw curve filled to 0 y draw label for last curve "IPv6" ipv6calc-4.1.0/ipv6logstats/ipv6logstats.c000066400000000000000000000651341444154247200205210ustar00rootroot00000000000000/* * Project : ipv6calc/ipv6logstats * File : ipv6logstats.c * Version : $Id: 65e89a4b30f28413246245000c6d4a2a0dad97f8 $ * Copyright : 2003-2021 by Peter Bieringer * * Information: * Dedicated program for logfile statistics */ #include #include #include #include #include #include #include "config.h" #include "ipv6logstats.h" #include "libipv6calcdebug.h" #include "libipv6calc.h" #include "ipv6calccommands.h" #include "ipv6calctypes.h" #include "ipv6calcoptions.h" #include "ipv6logstatsoptions.h" #include "ipv6calchelp.h" #include "ipv6logstatshelp.h" #include "libipv4addr.h" #include "libipv6addr.h" #include "libifinet6.h" #include "../databases/lib/libipv6calc_db_wrapper.h" #include "../databases/lib/libipv6calc_db_wrapper_GeoIP2.h" #include "../databases/lib/libipv6calc_db_wrapper_IP2Location.h" #include "../databases/lib/libipv6calc_db_wrapper_DBIP2.h" #include "../databases/lib/libipv6calc_db_wrapper_External.h" #include "../databases/lib/libipv6calc_db_wrapper_BuiltIn.h" #define LINEBUFFER 16384 long int ipv6calc_debug = 0; // ipv6calc_debug usage ok static int opt_unknown = 0; static int opt_simple = 0; static int opt_column_numbers = 0; static int opt_noheader = 0; static int opt_onlyheader = 0; static int opt_printdirection = 0; /* rows */ static char opt_token[IPV6CALC_STRING_MAX] = ""; char file_out[IPV6CALC_STRING_MAX] = ""; int file_out_flag = 0; FILE *FILE_OUT; int feature_cc = 0; int feature_as = 0; int feature_reg = 0; static stat_entries ipv6logstats_statentries[] = { { STATS_ALL , 0, "ALL" }, { STATS_IPV4 , 0, "IPv4" }, { STATS_IPV6 , 0, "IPv6" }, { STATS_UNKNOWN , 0, "UNKNOWN" }, { STATS_IPV4_APNIC , 0, "IPv4/APNIC" }, { STATS_IPV4_ARIN , 0, "IPv4/ARIN" }, { STATS_IPV4_RIPENCC , 0, "IPv4/RIPE" }, { STATS_IPV4_LACNIC , 0, "IPv4/LACNIC" }, { STATS_IPV4_AFRINIC , 0, "IPv4/AFRINIC" }, { STATS_IPV4_UNKNOWN , 0, "IPv4/UNKNOWN" }, { STATS_IPV6_6BONE , 0, "IPv6/6bone" }, { STATS_IPV6_IANA , 0, "IPv6/IANA" }, { STATS_IPV6_APNIC , 0, "IPv6/APNIC" }, { STATS_IPV6_ARIN , 0, "IPv6/ARIN" }, { STATS_IPV6_RIPENCC , 0, "IPv6/RIPE" }, { STATS_IPV6_LACNIC , 0, "IPv6/LACNIC" }, { STATS_IPV6_AFRINIC , 0, "IPv6/AFRINIC" }, { STATS_IPV6_RESERVED , 0, "IPv6/RESERVED" }, { STATS_IPV6_UNKNOWN , 0, "IPv6/UNKNOWN" }, { STATS_IPV6_6TO4_BASE + REGISTRY_IANA , 0, "IPv6/6to4/IANA" }, { STATS_IPV6_6TO4_BASE + REGISTRY_APNIC , 0, "IPv6/6to4/APNIC" }, { STATS_IPV6_6TO4_BASE + REGISTRY_ARIN , 0, "IPv6/6to4/ARIN" }, { STATS_IPV6_6TO4_BASE + REGISTRY_RIPENCC , 0, "IPv6/6to4/RIPE" }, { STATS_IPV6_6TO4_BASE + REGISTRY_LACNIC , 0, "IPv6/6to4/LACNIC" }, { STATS_IPV6_6TO4_BASE + REGISTRY_AFRINIC , 0, "IPv6/6to4/AFRINIC" }, { STATS_IPV6_6TO4_BASE + REGISTRY_RESERVED, 0, "IPv6/6to4/RESERVED" }, { STATS_IPV6_6TO4_BASE + REGISTRY_UNKNOWN , 0, "IPv6/6to4/UNKNOWN" }, { STATS_IPV6_TEREDO_BASE + REGISTRY_IANA , 0, "IPv6/Teredo/IANA" }, { STATS_IPV6_TEREDO_BASE + REGISTRY_APNIC , 0, "IPv6/Teredo/APNIC" }, { STATS_IPV6_TEREDO_BASE + REGISTRY_ARIN , 0, "IPv6/Teredo/ARIN" }, { STATS_IPV6_TEREDO_BASE + REGISTRY_RIPENCC , 0, "IPv6/Teredo/RIPE" }, { STATS_IPV6_TEREDO_BASE + REGISTRY_LACNIC , 0, "IPv6/Teredo/LACNIC" }, { STATS_IPV6_TEREDO_BASE + REGISTRY_AFRINIC , 0, "IPv6/Teredo/AFRINIC" }, { STATS_IPV6_TEREDO_BASE + REGISTRY_RESERVED, 0, "IPv6/Teredo/RESERVED" }, { STATS_IPV6_TEREDO_BASE + REGISTRY_UNKNOWN , 0, "IPv6/Teredo/UNKNOWN" }, { STATS_IPV6_NAT64_BASE + REGISTRY_IANA , 0, "IPv6/NAT64/IANA" }, { STATS_IPV6_NAT64_BASE + REGISTRY_APNIC , 0, "IPv6/NAT64/APNIC" }, { STATS_IPV6_NAT64_BASE + REGISTRY_ARIN , 0, "IPv6/NAT64/ARIN" }, { STATS_IPV6_NAT64_BASE + REGISTRY_RIPENCC , 0, "IPv6/NAT64/RIPE" }, { STATS_IPV6_NAT64_BASE + REGISTRY_LACNIC , 0, "IPv6/NAT64/LACNIC" }, { STATS_IPV6_NAT64_BASE + REGISTRY_AFRINIC , 0, "IPv6/NAT64/AFRINIC" }, { STATS_IPV6_NAT64_BASE + REGISTRY_RESERVED, 0, "IPv6/NAT64/RESERVED" }, { STATS_IPV6_NAT64_BASE + REGISTRY_UNKNOWN , 0, "IPv6/NAT64/UNKNOWN" }, { STATS_IPV6_IID_GLOBAL, 0, "IPv6/IID/Global" }, { STATS_IPV6_IID_RANDOM, 0, "IPv6/IID/Random" }, { STATS_IPV6_IID_MANUAL, 0, "IPv6/IID/Manual" }, { STATS_IPV6_IID_ISATAP, 0, "IPv6/IID/ISATAP" }, { STATS_IPV6_IID_MANUAL, 0, "IPv6/IID/Unknown" }, }; /* stat by Country Code */ static long unsigned int counter_country[COUNTRYCODE_INDEX_MAX]; static long unsigned int counter_country_ipv4[COUNTRYCODE_INDEX_MAX]; static long unsigned int counter_country_ipv6[COUNTRYCODE_INDEX_MAX]; static long unsigned int counter_country_A46, counter_country_IPV4, counter_country_IPV6; /* stat by ASN (only 16-bit ASN supported, 32-bit ASNs are mapped to 23456 "AS_TRANS" */ #define ASNUM_MAX 65536 static long unsigned int counter_asn[ASNUM_MAX]; static long unsigned int counter_asn_ipv4[ASNUM_MAX]; static long unsigned int counter_asn_ipv6[ASNUM_MAX]; /* prototypes */ static void lineparser(void); /**************************************************/ /* main */ int main(int argc,char *argv[]) { /* check compatibility */ #ifdef SHARED_LIBRARY IPV6CALC_LIB_VERSION_CHECK_EXIT(IPV6CALC_PACKAGE_VERSION_NUMERIC, IPV6CALC_PACKAGE_VERSION_STRING) IPV6CALC_DB_LIB_VERSION_CHECK_EXIT(IPV6CALC_PACKAGE_VERSION_NUMERIC, IPV6CALC_PACKAGE_VERSION_STRING) #endif // SHARED_LIBRARY int i, lop, result; unsigned long int command = 0; /* options */ struct option longopts[IPV6CALC_MAXLONGOPTIONS]; char shortopts[IPV6CALC_STRING_MAX] = ""; int longopts_maxentries = 0; /* check for UID */ if (getuid() == 0) { printversion(); fprintf(stderr, " DON'T RUN THIS PROGRAM AS root USER!\n"); fprintf(stderr, " This program uses insecure C string handling functions and is not full audited\n"); fprintf(stderr, " therefore parsing insecure and unchecked input like logfiles isn't a good choice\n"); exit(EXIT_FAILURE); }; /* initialize debug value from environment for bootstrap debugging */ ipv6calc_debug_from_env(); // ipv6calc_debug usage ok /* add options */ ipv6calc_options_add_common_basic(shortopts, sizeof(shortopts), longopts, &longopts_maxentries); ipv6calc_options_add(shortopts, sizeof(shortopts), longopts, &longopts_maxentries, ipv6logstats_shortopts, ipv6logstats_longopts, MAXENTRIES_ARRAY(ipv6logstats_longopts)); /* initialize options from environment */ ipv6calc_common_options_from_env(longopts, NULL); /* Fetch the command-line arguments. */ while ((i = getopt_long(argc, argv, shortopts, longopts, &lop)) != EOF) { DEBUGPRINT_WA(DEBUG_ipv6logstats_general, "Parsing option: 0x%08x (%d: %s)", i, optind, argv[optind - 1]); if ((i == '?') && (strcmp(argv[optind - 1], "-?") != 0)) { exit(EXIT_FAILURE); }; /* catch common options */ result = ipv6calcoptions_common_basic(i, optarg, longopts); if (result == 0) { // found continue; }; switch (i) { case -1: break; case 'v': if ((command & CMD_printversion_verbose) != 0) { // third time '-v' command |= CMD_printversion_verbose2; } else if ((command & CMD_printversion) != 0) { // second time '-v' command |= CMD_printversion_verbose; } else { command |= CMD_printversion; }; break; case 'h': case '?': command |= CMD_printhelp; break; case 'p': DEBUGPRINT_WA(DEBUG_ipv6logstats_general, "Given prefix token: %s (%d)", optarg, (int) strlen(optarg)); if (strlen(optarg) < sizeof(opt_token)) { snprintf(opt_token, sizeof(opt_token), "%s", optarg); } else { fprintf(stderr, " Prefix token too long: %s\n", optarg); exit(EXIT_FAILURE); }; break; case 'u': opt_unknown = 1; break; case 's': opt_simple = 1; break; case 'N': opt_column_numbers = 1; break; case 'n': opt_noheader = 1; opt_printdirection = 1; break; case 'o': opt_onlyheader = 1; opt_printdirection = 1; break; case 'c': opt_printdirection = 1; opt_simple = 1; // force simple mode in addition break; case 'w': if (strlen(optarg) < sizeof(file_out)) { snprintf(file_out, sizeof(file_out), "%s", optarg); file_out_flag = 1; } else { fprintf(stderr, " Output file name too long: %s\n", optarg); exit(EXIT_FAILURE); }; break; default: fprintf(stderr, "Usage: (see '%s --command -?|-h|--help' for more help)\n", PROGRAM_NAME); break; }; }; argv += optind; argc -= optind; /* initialise database wrapper */ result = libipv6calc_db_wrapper_init("*3*DB-Info: "); if (result != 0) { exit(EXIT_FAILURE); }; /* check for basic database support */ if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_REGISTRY| IPV6CALC_DB_IPV6_TO_REGISTRY | IPV6CALC_DB_CC_TO_REGISTRY) == 1) { feature_reg = 1; }; if (opt_simple != 1) { /* check for Country Code support */ if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_CC | IPV6CALC_DB_IPV6_TO_CC) == 1) { feature_cc = 1; }; /* check for ASN support */ if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_AS | IPV6CALC_DB_IPV6_TO_AS) == 1) { feature_as = 1; }; }; /* do work depending on selection */ if ((command & CMD_printversion) != 0) { if ((command & CMD_printversion_verbose) != 0) { printversion_verbose(((command & CMD_printversion_verbose2) !=0) ? LEVEL_VERBOSE2 : LEVEL_VERBOSE); } else { printversion(); }; if ((command & CMD_printhelp) != 0) { printversion_help(); }; exit(EXIT_SUCCESS); }; if (command & CMD_printhelp) { ipv6logstats_printhelp(); exit(EXIT_FAILURE); }; if (feature_reg == 0) { fprintf(stderr, "Basic databases are missing for creating statistic\n"); exit(EXIT_FAILURE); }; /* call lineparser */ lineparser(); libipv6calc_cleanup(); exit(EXIT_SUCCESS); }; /* * Statistics structure handling */ static void stat_inc(int number) { int i; for (i = 0; i < MAXENTRIES_ARRAY(ipv6logstats_statentries); i++) { if (number == ipv6logstats_statentries[i].number) { ipv6logstats_statentries[i].counter++; break; }; }; }; /* * Country code statistics */ static void stat_inc_country_code(uint16_t country_code, const int proto) { int index = COUNTRYCODE_INDEX_UNKNOWN; if (country_code < COUNTRYCODE_INDEX_MAX) { index = country_code; } else { fprintf(stderr, "%s/%s: unexpected index (too high): %d\n", __FILE__, __func__, index); exit(1); }; DEBUGPRINT_WA(DEBUG_ipv6logstats_general, "Increment CountryCode index: %d (%d)", index, country_code); counter_country[index]++; counter_country_A46++; if (proto == 4) { counter_country_ipv4[index]++; counter_country_IPV4++; } else if (proto == 6) { counter_country_ipv6[index]++; counter_country_IPV6++; } else { fprintf(stderr, "%s/%s: unexpected unsupported proto: %d\n", __FILE__, __func__, proto); exit(1); }; }; /* * AS Number statistics */ static void stat_inc_asnum(const uint32_t as_num32, const int proto) { unsigned int index = ASNUM_AS_UNKNOWN; if (as_num32 < ASNUM_MAX) { // everything is fine index = as_num32; } else { // map to AS_TRANS for now index = ASNUM_AS_TRANS; }; DEBUGPRINT_WA(DEBUG_ipv6logstats_general, "Increment ASN index: %d (%d)", index, as_num32); counter_asn[index]++; if (proto == 4) { counter_asn_ipv4[index]++; } else if (proto == 6) { counter_asn_ipv6[index]++; }; }; /* * Line parser */ static void lineparser(void) { char linebuffer[LINEBUFFER]; char token[LINEBUFFER]; char resultstring[LINEBUFFER]; char *charptr, *cptr, **ptrptr; int linecounter = 0, retval, i, r; uint32_t inputtype = FORMAT_undefined; ipv6calc_ipv6addr ipv6addr; ipv6calc_ipv4addr ipv4addr; int registry, stat_registry_base; time_t timer; struct tm* tm_info; int index; uint16_t cc_index = COUNTRYCODE_INDEX_UNKNOWN; uint32_t as_num32 = ASNUM_AS_UNKNOWN; long unsigned int c_all, c_ipv4, c_ipv6; int column_offset = 1; // clear counters for (i = 0; i < COUNTRYCODE_INDEX_MAX; i++) { counter_country[i] = 0; counter_country_ipv4[i] = 0; counter_country_ipv6[i] = 0; }; ptrptr = &cptr; if (opt_onlyheader == 0) { if (ipv6calc_quiet == 0) { fprintf(stderr, "Expecting log lines on stdin\n"); }; }; while (opt_onlyheader == 0) { /* read line from stdin */ charptr = fgets(linebuffer, LINEBUFFER, stdin); if (charptr == NULL) { /* end of input */ break; }; linecounter++; stat_registry_base = 0; if (linecounter == 1) { if (ipv6calc_quiet == 0) { fprintf(stderr, "Ok, proceeding stdin...\n"); }; }; DEBUGPRINT_WA(DEBUG_ipv6logstats_processing, "Line counter: %d", linecounter); if (strlen(linebuffer) >= LINEBUFFER) { fprintf(stderr, "Line too long: %d\n", linecounter); continue; }; /* remove trailing \n */ if (linebuffer[strlen(linebuffer) - 1] == '\n') { linebuffer[strlen(linebuffer) - 1] = '\0'; }; if (strlen(linebuffer) == 0) { fprintf(stderr, "Line empty: %d\n", linecounter); continue; }; DEBUGPRINT_WA(DEBUG_ipv6logstats_processing, "Got line: '%s'", linebuffer); /* look for first token (should be IP address) */ charptr = strtok_r(linebuffer, " \t\n", ptrptr); if ( charptr == NULL ) { fprintf(stderr, "Line contains no token: %d\n", linecounter); continue; }; if ( strlen(charptr) >= LINEBUFFER) { fprintf(stderr, "Line too strange: %d\n", linecounter); continue; }; snprintf(token, sizeof(token), "%s", charptr); DEBUGPRINT_WA(DEBUG_ipv6logstats_processing, "Token 1: '%s'", token); stat_inc(STATS_ALL); /* get input type now */ inputtype = libipv6calc_autodetectinput(token); /* check for proper type */ if ((inputtype != FORMAT_ipv4addr) && (inputtype != FORMAT_ipv6addr)) { /* fprintf(stderr, "Token 1 (address) is not an IP address in line: %d\n", linecounter); */ stat_inc(STATS_UNKNOWN); continue; }; /* fill related structure */ switch (inputtype) { case FORMAT_ipv6addr: retval = addr_to_ipv6addrstruct(token, resultstring, sizeof(resultstring), &ipv6addr); break; case FORMAT_ipv4addr: retval = addr_to_ipv4addrstruct(token, resultstring, sizeof(resultstring), &ipv4addr); break; default: retval = 0; break; }; if (retval != 0 ) { fprintf(stderr, "Problem during address parsing on line %d (skipped): %s\n", linecounter, resultstring); continue; }; /* catch compat/mapped */ switch (inputtype) { case FORMAT_ipv6addr: if ((ipv6addr.typeinfo & (IPV6_ADDR_COMPATv4 | IPV6_ADDR_MAPPED)) != 0) { /* extract IPv4 address */ r = libipv6addr_get_included_ipv4addr(&ipv6addr, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (r != 0) { continue; }; // remap inputtype = FORMAT_ipv4addr; // create text represenation r = libipv4addr_ipv4addrstruct_to_string(&ipv4addr, token, sizeof(token), 0); }; break; default: // nothing to do break; }; /* get information and fill statistics */ switch (inputtype) { case FORMAT_ipv6addr: /* is IPv6 address */ stat_inc(STATS_IPV6); if ((ipv6addr.typeinfo & IPV6_ADDR_HAS_PUBLIC_IPV4) != 0) { /* has public IPv4 address included */ // get IPv4 address (in case of Teredo the client IP) r = libipv6addr_get_included_ipv4addr(&ipv6addr, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (r != 0) { continue; }; if (opt_simple != 1) { cc_index = libipv4addr_cc_index_by_addr(&ipv4addr, NULL); as_num32 = libipv4addr_as_num32_by_addr(&ipv4addr, NULL); if (feature_cc == 1) { stat_inc_country_code(cc_index, 4); }; if (feature_as == 1) { stat_inc_asnum(as_num32, 4); }; }; registry = libipv4addr_registry_num_by_addr(&ipv4addr); if ((ipv6addr.typeinfo & IPV6_NEW_ADDR_6TO4) != 0) { stat_registry_base = STATS_IPV6_6TO4_BASE; } else if ((ipv6addr.typeinfo & IPV6_NEW_ADDR_TEREDO) != 0) { stat_registry_base = STATS_IPV6_TEREDO_BASE; } else if ((ipv6addr.typeinfo & IPV6_NEW_ADDR_NAT64) != 0) { stat_registry_base = STATS_IPV6_NAT64_BASE; }; if (stat_registry_base > 0) { switch (registry) { case REGISTRY_IANA: stat_inc(stat_registry_base + REGISTRY_IANA); break; case REGISTRY_APNIC: stat_inc(stat_registry_base + REGISTRY_APNIC); break; case REGISTRY_ARIN: stat_inc(stat_registry_base + REGISTRY_ARIN); break; case REGISTRY_RIPENCC: stat_inc(stat_registry_base + REGISTRY_RIPENCC); break; case REGISTRY_LACNIC: stat_inc(stat_registry_base + REGISTRY_LACNIC); break; case REGISTRY_AFRINIC: stat_inc(stat_registry_base + REGISTRY_AFRINIC); break; case REGISTRY_RESERVED: stat_inc(stat_registry_base + REGISTRY_RESERVED); break; default: stat_inc(stat_registry_base + REGISTRY_UNKNOWN); if (opt_unknown == 1) { fprintf(stderr, "Unknown address: %s\n", token); }; break; }; } else { if (opt_unknown == 1) { fprintf(stderr, "Unknown address: %s\n", token); }; }; } else { if (opt_simple != 1) { cc_index = libipv6addr_cc_index_by_addr(&ipv6addr, NULL); as_num32 = libipv6addr_as_num32_by_addr(&ipv6addr, NULL); if (feature_cc == 1) { /* country code */ stat_inc_country_code(cc_index, 6); }; if (feature_as == 1) { /* asnum */ stat_inc_asnum(as_num32, 6); }; }; registry = libipv6addr_registry_num_by_addr(&ipv6addr); switch (registry) { case REGISTRY_6BONE: stat_inc(STATS_IPV6_6BONE); break; case REGISTRY_IANA: stat_inc(STATS_IPV6_IANA); break; case REGISTRY_APNIC: stat_inc(STATS_IPV6_APNIC); break; case REGISTRY_ARIN: stat_inc(STATS_IPV6_ARIN); break; case REGISTRY_RIPENCC: stat_inc(STATS_IPV6_RIPENCC); break; case REGISTRY_LACNIC: stat_inc(STATS_IPV6_LACNIC); break; case REGISTRY_AFRINIC: stat_inc(STATS_IPV6_AFRINIC); break; case REGISTRY_RESERVED: stat_inc(STATS_IPV6_RESERVED); break; default: stat_inc(STATS_IPV6_UNKNOWN); if (opt_unknown == 1) { fprintf(stderr, "Unknown address: %s\n", token); }; break; }; if ((ipv6addr.typeinfo & IPV6_NEW_ADDR_IID) == IPV6_NEW_ADDR_IID) { if ((ipv6addr.typeinfo & IPV6_NEW_ADDR_IID_RANDOM) != 0) { stat_inc(STATS_IPV6_IID_RANDOM); } else if ((ipv6addr.typeinfo & IPV6_NEW_ADDR_IID_ISATAP) != 0) { stat_inc(STATS_IPV6_IID_ISATAP); } else if ((ipv6addr.typeinfo & IPV6_NEW_ADDR_IID_LOCAL) != 0) { stat_inc(STATS_IPV6_IID_MANUAL); } else if ((ipv6addr.typeinfo & IPV6_NEW_ADDR_IID_GLOBAL) != 0) { stat_inc(STATS_IPV6_IID_GLOBAL); } else { stat_inc(STATS_IPV6_IID_UNKNOWN); }; }; }; break; case FORMAT_ipv4addr: /* is IPv4 address */ stat_inc(STATS_IPV4); if (opt_simple != 1) { cc_index = libipv4addr_cc_index_by_addr(&ipv4addr, NULL); as_num32 = libipv4addr_as_num32_by_addr(&ipv4addr, NULL); stat_inc_country_code(cc_index, 4); stat_inc_asnum(as_num32, 4); }; registry = libipv4addr_registry_num_by_addr(&ipv4addr); switch (registry) { case REGISTRY_IANA: stat_inc(STATS_IPV4_IANA); break; case REGISTRY_APNIC: stat_inc(STATS_IPV4_APNIC); break; case REGISTRY_ARIN: stat_inc(STATS_IPV4_ARIN); break; case REGISTRY_RIPENCC: stat_inc(STATS_IPV4_RIPENCC); break; case REGISTRY_LACNIC: stat_inc(STATS_IPV4_LACNIC); break; case REGISTRY_AFRINIC: stat_inc(STATS_IPV4_AFRINIC); break; case REGISTRY_RESERVED: stat_inc(STATS_IPV4_RESERVED); break; default: stat_inc(STATS_IPV4_UNKNOWN); if (opt_unknown == 1) { fprintf(stderr, "Unknown address: %s\n", token); }; break; }; break; }; }; if (opt_onlyheader == 0) { if (ipv6calc_quiet == 0) { fprintf(stderr, "...finished\n"); }; }; /* print result */ if (opt_printdirection == 0) { /* print in rows */ /* print version number */ printf("%-20s %d.%d\n", "*Version", STATS_VERSION_MAJOR, STATS_VERSION_MINOR); time(&timer); tm_info = gmtime(&timer); strftime(resultstring, sizeof(resultstring), "%Y:%m:%d %H:%M:%S%z %Z", tm_info); printf("*DateTime: %s\n", resultstring); printf("*UnixTime: %ju\n", (uintmax_t) timer); libipv6calc_db_wrapper_print_db_info(0, "*3*DB-Info: "); /* print version number */ if (strlen(opt_token) > 0) { printf("%-20s %s\n", "*Token", opt_token); }; for (i = 0; i < MAXENTRIES_ARRAY(ipv6logstats_statentries); i++) { printf("%-20s %lu\n", ipv6logstats_statentries[i].token, ipv6logstats_statentries[i].counter); }; if (feature_cc == 1) { /* country_code / proto */ for (index = 0; index < COUNTRYCODE_INDEX_MAX; index++) { if (counter_country[index] > 0) { DEBUGPRINT_WA(DEBUG_ipv6logstats_summary, "CC-Index: %d", index); libipv6calc_db_wrapper_country_code_by_cc_index(resultstring, sizeof(resultstring), index); printf("*3*CC-code-proto/%s/ALL %lu\n", resultstring, counter_country[index]); printf("*3*CC-code-proto/%s/IPv4 %lu\n", resultstring, counter_country_ipv4[index]); printf("*3*CC-code-proto/%s/IPv6 %lu\n", resultstring, counter_country_ipv6[index]); printf("*3*CC-code-proto-list/%s %lu %lu %lu\n", resultstring, counter_country[index], counter_country_ipv4[index], counter_country_ipv6[index]); }; }; /* proto / country_code */ c_all = 0; c_ipv4 = 0; c_ipv6 = 0; for (index = 0; index < COUNTRYCODE_INDEX_MAX; index++) { if (counter_country[index] > 0) { libipv6calc_db_wrapper_country_code_by_cc_index(resultstring, sizeof(resultstring), index); printf("*3*CC-proto-code/ALL/%s %lu\n", resultstring, counter_country[index]); c_all += counter_country[index]; }; }; for (index = 0; index < COUNTRYCODE_INDEX_MAX; index++) { if (counter_country_ipv4[index] > 0) { libipv6calc_db_wrapper_country_code_by_cc_index(resultstring, sizeof(resultstring), index); printf("*3*CC-proto-code/IPv4/%s %lu\n", resultstring, counter_country_ipv4[index]); c_ipv4 += counter_country_ipv4[index]; }; }; for (index = 0; index < COUNTRYCODE_INDEX_MAX; index++) { if (counter_country_ipv6[index] > 0) { libipv6calc_db_wrapper_country_code_by_cc_index(resultstring, sizeof(resultstring), index); printf("*3*CC-proto-code/IPv6/%s %lu\n", resultstring, counter_country_ipv6[index]); c_ipv6 += counter_country_ipv6[index]; }; }; if ((c_all + c_ipv4 + c_ipv6) > 0) { printf("*3*CC-proto-code-list/ALL %lu %lu %lu\n", c_all, c_ipv4, c_ipv6); }; }; if (feature_as == 1) { /* ASN number / proto */ for (index = 0; index < ASNUM_MAX; index++) { if (counter_asn[index] > 0) { printf("*3*AS-num-proto/%d/ALL %lu\n", index, counter_asn[index]); printf("*3*AS-num-proto/%d/IPv4 %lu\n", index, counter_asn_ipv4[index]); printf("*3*AS-num-proto/%d/IPv6 %lu\n", index, counter_asn_ipv6[index]); printf("*3*AS-num-proto-list/%d %lu %lu %lu\n", index, counter_asn[index], counter_asn_ipv4[index], counter_asn_ipv6[index]); }; }; /* ASN proto / number */ c_all = 0; c_ipv4 = 0; c_ipv6 = 0; for (index = 0; index < ASNUM_MAX; index++) { if (counter_asn[index] > 0) { printf("*3*AS-proto-num/ALL/%d %lu\n", index, counter_asn[index]); c_all += counter_asn[index]; }; }; for (index = 0; index < ASNUM_MAX; index++) { if (counter_asn_ipv4[index] > 0) { printf("*3*AS-proto-num/IPv4/%d %lu\n", index, counter_asn_ipv4[index]); c_ipv4 += counter_asn_ipv4[index]; }; }; for (index = 0; index < ASNUM_MAX; index++) { if (counter_asn_ipv6[index] > 0) { printf("*3*AS-proto-num/IPv6/%d %lu\n", index, counter_asn_ipv6[index]); c_ipv6 += counter_asn_ipv6[index]; }; }; if ((c_all + c_ipv4 + c_ipv6) > 0) { printf("*3*AS-proto-num-list/ALL %lu %lu %lu\n", c_all, c_ipv4, c_ipv6); }; }; } else { /* print in columns */ if (opt_noheader == 0) { if (strlen(opt_token) > 0) { column_offset++; if (opt_onlyheader == 0) { if (opt_column_numbers == 1) { printf("Token(1) "); } else { printf("Token "); } } else { printf("%s ", opt_token); }; }; for (i = 0; i < MAXENTRIES_ARRAY(ipv6logstats_statentries); i++) { if (i > 0) { printf(" "); }; if (opt_column_numbers == 1) { printf("%s(%d)", ipv6logstats_statentries[i].token, i + column_offset); } else { printf("%s", ipv6logstats_statentries[i].token); }; }; printf(" #Version(%d.%d)\n", STATS_VERSION_MAJOR, STATS_VERSION_MINOR); }; if (opt_onlyheader == 0) { if (strlen(opt_token) > 0) { printf("%s ", opt_token); }; for (i = 0; i < MAXENTRIES_ARRAY(ipv6logstats_statentries); i++) { if (i > 0) { printf(" "); }; printf("%lu", ipv6logstats_statentries[i].counter); }; printf(" #%d.%d\n", STATS_VERSION_MAJOR, STATS_VERSION_MINOR); }; }; if (opt_printdirection == 0) { /* print used database only in row mode */ #if defined SUPPORT_IP2LOCATION || defined SUPPORT_GEOIP || defined SUPPORT_GEOIP2 || defined SUPPORT_DBIP || defined SUPPORT_DBIP2 || defined SUPPORT_EXTERNAL || defined SUPPORT_BUILTIN char *string; #endif #ifdef SUPPORT_IP2LOCATION string = libipv6calc_db_wrapper_IP2Location_wrapper_db_info_used(); if ((string != NULL) && (strlen(string) > 0)) { printf("*3*DB-Used: %s\n", string); }; #endif #ifdef SUPPORT_GEOIP string = libipv6calc_db_wrapper_GeoIP_wrapper_db_info_used(); if ((string != NULL) && (strlen(string) > 0)) { printf("*3*DB-Used: %s\n", string); }; #endif #ifdef SUPPORT_GEOIP2 string = libipv6calc_db_wrapper_GeoIP2_wrapper_db_info_used(); if ((string != NULL) && (strlen(string) > 0)) { printf("*3*DB-Used: %s\n", string); }; #endif #ifdef SUPPORT_DBIP string = libipv6calc_db_wrapper_DBIP_wrapper_db_info_used(); if ((string != NULL) && (strlen(string) > 0)) { printf("*3*DB-Used: %s\n", string); }; #endif #ifdef SUPPORT_DBIP2 string = libipv6calc_db_wrapper_DBIP2_wrapper_db_info_used(); if ((string != NULL) && (strlen(string) > 0)) { printf("*3*DB-Used: %s\n", string); }; #endif #ifdef SUPPORT_EXTERNAL string = libipv6calc_db_wrapper_External_wrapper_db_info_used(); if ((string != NULL) && (strlen(string) > 0)) { printf("*3*DB-Used: %s\n", string); }; #endif #ifdef SUPPORT_BUILTIN string = libipv6calc_db_wrapper_BuiltIn_wrapper_db_info_used(); if ((string != NULL) && (strlen(string) > 0)) { printf("*3*DB-Used: %s\n", string); }; #endif }; return; }; ipv6calc-4.1.0/ipv6logstats/ipv6logstats.h000066400000000000000000000033551444154247200205230ustar00rootroot00000000000000/* * Project : ipv6calc/ipv6logstats * File : ipv6logstats.h * Version : $Id: 892cd0cea68edf2308105c4e9de9f146e893363b $ * Copyright : 2003-2014 by Peter Bieringer * * Information: * Main header file */ /* global program related definitions */ #define PROGRAM_NAME "ipv6logstats" #define PROGRAM_COPYRIGHT "(P) & (C) 2003-" COPYRIGHT_YEAR " by Peter Bieringer " #define STATS_VERSION_MAJOR 4 #define STATS_VERSION_MINOR 0 #define STATS_ALL 0x00 #define STATS_IPV4 0x01 #define STATS_IPV6 0x02 #define STATS_UNKNOWN 0x03 #define STATS_IPV4_IANA 0x12 #define STATS_IPV4_APNIC 0x13 #define STATS_IPV4_ARIN 0x14 #define STATS_IPV4_RIPENCC 0x15 #define STATS_IPV4_LACNIC 0x16 #define STATS_IPV4_AFRINIC 0x17 #define STATS_IPV4_RESERVED 0x1e #define STATS_IPV4_UNKNOWN 0x1f #define STATS_IPV6_6BONE 0x21 #define STATS_IPV6_IANA 0x22 #define STATS_IPV6_APNIC 0x23 #define STATS_IPV6_ARIN 0x24 #define STATS_IPV6_RIPENCC 0x25 #define STATS_IPV6_LACNIC 0x26 #define STATS_IPV6_AFRINIC 0x27 #define STATS_IPV6_RESERVED 0x2e #define STATS_IPV6_UNKNOWN 0x2f #define STATS_IPV6_6TO4_BASE 0x30 #define STATS_IPV6_TEREDO_BASE 0x40 #define STATS_IPV6_NAT64_BASE 0x50 #define STATS_IPV6_IID_GLOBAL 0x100 #define STATS_IPV6_IID_MANUAL 0x101 #define STATS_IPV6_IID_RANDOM 0x102 #define STATS_IPV6_IID_ISATAP 0x103 #define STATS_IPV6_IID_UNKNOWN 0x10f #define DEBUG_ipv6logstats_general 0x00000001l #define DEBUG_ipv6logstats_summary 0x00000002l #define DEBUG_ipv6logstats_processing 0x00000004l /* labels statistic numbers */ typedef struct { const int number; long unsigned int counter; const char *token; } stat_entries; extern int feature_cc; extern int feature_as; extern int feature_reg; ipv6calc-4.1.0/ipv6logstats/ipv6logstatshelp.c000066400000000000000000000055501444154247200213660ustar00rootroot00000000000000/* * Project : ipv6calc/ipv6logstats * File : ipv6logstatshelp.c * Version : $Id: 628937beacecdad066d2aae53e9fbf83e65e0fbc $ * Copyright : 2003-2014 by Peter Bieringer * * Information: * Help library */ #include #include #include #include "ipv6logstats.h" #include "ipv6calctypes.h" #include "ipv6calccommands.h" #include "ipv6calchelp.h" #include "config.h" #include "../databases/lib/libipv6calc_db_wrapper.h" /* display info */ void printversion(void) { fprintf(stderr, "%s: version %s", PROGRAM_NAME, PACKAGE_VERSION); if (feature_reg == 1) { fprintf(stderr, " STAT_REG"); }; if (feature_cc == 1) { fprintf(stderr, " STAT_CC"); }; if (feature_as == 1) { fprintf(stderr, " STAT_AS"); }; fprintf(stderr, "\n"); }; void printversion_help(void) { fprintf(stderr, "\n"); fprintf(stderr, "Explanation of available(x)/possible(o) feature tokens\n"); fprintf(stderr, "%-22s%c %s\n", "STAT_REG", (feature_reg == 1)? 'x' : 'o', "Statistics by Registry"); fprintf(stderr, "%-22s%c %s\n", "STAT_CC", (feature_cc == 1) ? 'x' : 'o', "Statistics by CountryCode"); fprintf(stderr, "%-22s%c %s\n", "STAT_AS", (feature_as == 1) ? 'x' : 'o', "Statistics by Autonomous System Number"); fprintf(stderr, "\n"); }; void printversion_verbose(int level_verbose) { printversion(); fprintf(stderr, "\n"); ipv6calc_print_features_verbose(level_verbose); }; void printcopyright(void) { fprintf(stderr, "%s\n", PROGRAM_COPYRIGHT); }; void ipv6logstats_printinfo(void) { printversion(); printcopyright(); fprintf(stderr, "This program creates a statistics of client IPv4/IPv6 addresses from HTTP server log files\n"); fprintf(stderr, "See '%s -?|-h|--help for online help\n", PROGRAM_NAME); }; /* print global help */ void ipv6logstats_printhelp(void) { printversion(); printcopyright(); fprintf(stderr, "\n"); fprintf(stderr, " Takes web server log data (or any other data which has IPv4/v6 address in first column)\n"); fprintf(stderr, " from stdin and print statistics table/list (depending on option) to stdout\n"); printhelp_common(IPV6CALC_HELP_ALL); fprintf(stderr, " [-u|--unknown] : print unknown IP addresses to stderr\n"); fprintf(stderr, " [-c|--columns] : print statistics in columns (1)\n"); fprintf(stderr, " [-N|--column-numbers] : print column numbers\n"); fprintf(stderr, " [-n|--noheader] : don't print header in columns mode (1)\n"); fprintf(stderr, " [-o|--onlyheader] : print only header in columns mode (1)\n"); fprintf(stderr, " [-p|--prefix ] : print token as prefix (1)\n"); fprintf(stderr, " [-s|--simple] : disable extended statistic (CountryCode/ASN)\n"); fprintf(stderr, "\n"); fprintf(stderr, " (1) unsupported for CountryCode & ASN statistics\n"); fprintf(stderr, "\n"); return; }; ipv6calc-4.1.0/ipv6logstats/ipv6logstatshelp.h000066400000000000000000000007351444154247200213730ustar00rootroot00000000000000/* * Project : ipv6calc/ipv6logstats * File : ipv6logstatshelp.h * Version : $Id: e5208b2371848221be0dc17c6b06f70e8d70bedd $ * Copyright : 2003-2014 by Peter Bieringer * * Information: * Header file for ipv6logstatshelp.c */ extern void printversion(void); extern void printversion_help(void); extern void printversion_verbose(int level_verbose); extern void ipv6logstats_printinfo(void); extern void ipv6logstats_printhelp(void); ipv6calc-4.1.0/ipv6logstats/ipv6logstatsoptions.h000066400000000000000000000017131444154247200221330ustar00rootroot00000000000000/* * Project : ipv6calc/ipv6logstats * File : ipv6logstatsoptions.h * Version : $Id: 859516c86d4ead62c90c0040fc9e805e23893edd $ * Copyright : 2003-2014 by Peter Bieringer * * Information: * Header file containing options for ipvlogstats.c */ #include #include "ipv6calctypes.h" #ifndef _ipv6logstatsoptions_h_ #define _ipv6logstatsoptions_h_ /* Options */ /* define short options */ static char *ipv6logstats_shortopts = "vh?uNosncp:w:"; /* define long options */ static struct option ipv6logstats_longopts[] = { {"version", 0, 0, (int) 'v'}, /* help options */ {"help", 0, 0, (int) 'h'}, /* normal options */ {"unknown" , 0, 0, (int) 'u'}, {"columns" , 0, 0, (int) 'c'}, {"prefix" , 1, 0, (int) 'p'}, {"noheader" , 0, 0, (int) 'n'}, {"onlyheader" , 0, 0, (int) 'o'}, {"simple" , 0, 0, (int) 's'}, {"write" , 1, 0, (int) 'O'}, {"column-numbers", 1, 0, (int) 'N'}, }; #endif ipv6calc-4.1.0/ipv6logstats/test_ipv6logstats.sh000077500000000000000000000156431444154247200217530ustar00rootroot00000000000000#!/usr/bin/env bash # # Project : ipv6calc/logstats # File : test_ipv6logstats.sh # Version : $Id: bc2394cd3034c057c5c43423464e8e05eafa47df $ # Copyright : 2003-2021 by Peter Bieringer # # Test program for "ipv6logstats" verbose=false while getopts "Vh\?" opt; do case $opt in V) verbose=true ;; *) echo "$0 [-V]" echo " -V verbose" exit 1 ;; esac done if [ ! -x ./ipv6logstats ]; then echo "Binary './ipv6logstats' missing or not executable" exit 1 fi # Test proper option definitions echo "Test proper option definition" ./ipv6logstats -h >/dev/null if [ $? -ne 1 ]; then echo "ERROR : something wrong in option definition" exit 1 fi echo "Run 'ipv6logstat' version help test for feature tokens..." ./ipv6logstats -v -h retval=$? if [ $retval -ne 0 ]; then echo "Error executing 'ipv6logstats -v -h'!" exit 1 fi echo source ../ipv6calc/test_scenarios.sh testscenarios() { # Requests cat </dev/null retval=$? fi if [ $retval -ne 0 ]; then echo "Error executing 'ipv6logstats'!" exit 1 fi echo ## check basic support if ./ipv6logstats -v 2>&1| grep -qw "STAT_REG"; then true else echo "NOTICE: SKIP ipv6logstats tests because of missing feature STAT_REG" exit 0 fi ## main ## echo "Run 'ipv6logstats' function tests..." #testscenarios test="run 'ipv6logstats' test #1" echo "INFO : $test" if $verbose; then testscenarios | ./ipv6logstats -q retval=$? else testscenarios | ./ipv6logstats -q >/dev/null 2>&1 retval=$? fi if [ $retval -ne 0 ]; then echo "Error executing 'ipv6logstats'!" exit 1 fi echo "INFO : $test successful" #testscenarios (columns) test="run 'ipv6logstats' columns" echo "INFO : $test" if $verbose; then testscenarios | ./ipv6logstats -q -c retval=$? else testscenarios | ./ipv6logstats -q -c 2>/dev/null retval=$? fi if [ $retval -ne 0 ]; then echo "Error executing 'ipv6logstats'!" exit 1 fi echo "INFO : $test successful" #testscenarios version 3 test="run 'ipv6logstats' test #3" echo "INFO : $test" if ./ipv6logstats -v 2>&1 | grep -qw "STAT_CC"; then if $verbose; then testscenarios | ./ipv6logstats -q | grep -q '\*3\*CC-proto-code-list/ALL' retval=$? else testscenarios | ./ipv6logstats -q 2>/dev/null | grep -q '\*3\*CC-proto-code-list/ALL' retval=$? fi if [ $retval -ne 0 ]; then echo "Error executing 'ipv6logstats' (version 3 test)" exit 1 fi echo "INFO : $test successful" else echo "Skip 'ipv6logstats' version 3 test (missing STAT_CC support)" fi # testscenarios matching feature_cc=false if ./ipv6logstats -v 2>&1 | grep -qw "STAT_CC"; then feature_cc=true fi feature_as=false if ./ipv6logstats -v 2>&1 | grep -qw "STAT_AS"; then feature_as=true fi test="run 'ipv6logstats' match test" echo "INFO : $test" testscenarios_match | while read ip match; do $verbose && echo -n "INFO : test $ip for match $match: " if echo "$match" | grep -q "^AS"; then if ! $feature_as; then echo "SKIPPED (missing support)" continue fi fi if echo "$match" | grep -q "^CC"; then if ! $feature_cc; then echo "SKIPPED (missing support)" continue fi fi if $verbose; then echo "$ip" | ./ipv6logstats -q | grep -q "$match[^_[:alnum:]]*1" result=$? else echo "$ip" | ./ipv6logstats -q 2>/dev/null | grep -q "$match[^_[:alnum:]]*1" result=$? fi if [ $result -ne 0 ]; then echo "ERROR: unexpected result calling echo $ip | ./ipv6logstats -q | grep -q '$match[^_[:alnum:]]*1':" echo "$ip" | ./ipv6logstats -q | grep -v "DB-Info" exit 1 fi done || exit 1 echo "INFO : $test successful" echo "INFO : test scenario with huge amount of addresses..." if $verbose; then testscenario_hugelist ipv4 | ./ipv6logstats -q >/dev/null result=$? else testscenario_hugelist ipv4 | ./ipv6logstats -q >/dev/null 2>/dev/null result=$? fi if [ $result -ne 0 ]; then echo "ERROR : exit code != 0" exit 1 fi echo "INFO : test scenario with huge amount of addresses: OK" echo "All tests were successfully done!" ipv6calc-4.1.0/lib/000077500000000000000000000000001444154247200140005ustar00rootroot00000000000000ipv6calc-4.1.0/lib/Makefile.in000066400000000000000000000054531444154247200160540ustar00rootroot00000000000000# Project : ipv6calc # File : lib/Makefile # Version : $Id: 6b0031c76e681a0f7ea3eb90373698ba962f8cee $ # Copyright : 2002-2020 by Peter Bieringer # # Information: # Makefile for ipv6calc libraries # libdir = @libdir@ # Compiler and Linker Options # -D__EXTENSIONS__ is for Solaris & strtok_r DEFAULT_CFLAGS ?= -O2 -Wall CFLAGS += -D__EXTENSIONS__ -fPIC LDFLAGS += @LDFLAGS@ INCLUDES= -I. -I../ -I../databases/lib/ @GETOPT_INCLUDE@ @MD5_INCLUDE@ @MMDB_INCLUDE_L1@ @IP2LOCATION_INCLUDE_L1@ ifeq ($(shell uname), Darwin) SO_NAME_FLAGS=-install_name else SO_NAME_FLAGS=-soname endif SHARED_LIBRARY=@SHARED_LIBRARY@ CC = @CC@ AR = ar RANLIB = @RANLIB@ OBJS = libipv6calc.o \ libipv6addr.o \ libipv4addr.o \ libipaddr.o \ libieee.o \ libeui64.o \ libmac.o \ librfc1884.o \ librfc1886.o \ librfc1924.o \ librfc2874.o \ librfc3041.o \ librfc3056.o \ librfc5569.o \ librfc6052.o \ libifinet6.o \ ipv6calchelp.o \ ipv6calcoptions.o \ ipv6calctypes.o all: ${MAKE} libipv6calc.a ${MAKE} libipv6calc.so.@PACKAGE_VERSION@ .c.o: $(CC) -c $< $(DEFAULT_CFLAGS) $(CFLAGS) $(INCLUDES) $(OBJS): libipv6calcdebug.h \ libipv6calc.h \ libipv6calc_filter.h \ libipv6addr.h \ libipv4addr.h \ libipaddr.h \ libieee.h \ libeui64.h \ libmac.h \ librfc1884.h \ librfc1886.h \ librfc1924.h \ librfc2874.h \ librfc3041.h \ librfc3056.h \ librfc5569.h \ librfc6052.h \ libifinet6.h \ ipv6calchelp.h \ ipv6calctypes.h \ ipv6calcoptions.h \ ipv6calcoptions_common.h \ ipv6calccommands.h \ ipv6calc_inttypes.h \ libipv6calc.a: $(OBJS) cd ../ && ${MAKE} db-ieee-oui-make cd ../ && ${MAKE} db-ipv4-assignment-make cd ../ && ${MAKE} db-ipv6-assignment-make echo "Create library (.a)" $(AR) r libipv6calc.a $(OBJS) $(RANLIB) libipv6calc.a libipv6calc.so.@PACKAGE_VERSION@: $(OBJS) ifeq ($(SHARED_LIBRARY), yes) cd ../ && ${MAKE} db-ieee-oui-make cd ../ && ${MAKE} db-ipv4-assignment-make cd ../ && ${MAKE} db-ipv6-assignment-make echo "Creates shared library (libipv6calc.so)" $(CC) -o libipv6calc.so.@PACKAGE_VERSION@ $(OBJS) $(LDFLAGS) -shared -Wl,$(SO_NAME_FLAGS),libipv6calc.so.@PACKAGE_VERSION@ else echo "Nothing to do (shared library mode is not enabled)" endif distclean: ${MAKE} clean autoclean: ${MAKE} distclean clean: rm -f *.o *.a *.so *.so.* install: all ifeq ($(SHARED_LIBRARY), yes) echo "Install shared library" mkdir -p $(DESTDIR)$(libdir) install -m 755 libipv6calc.so.@PACKAGE_VERSION@ $(DESTDIR)$(libdir) /sbin/ldconfig -n $(DESTDIR)$(libdir) else echo "Nothing to do (shared library mode is not enabled)" endif test: ipv6calc-4.1.0/lib/ipv6calc_inttypes.h000066400000000000000000000016141444154247200176210ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6calc_inttypes.h * Version : $Id: 1e1de3c96fcbbfff597a3fad0b40436ba6cfa683 $ * Copyright : 2002-2021 by Peter Bieringer * * Information: * Common header file to define inttypes like uint8_t and other basics */ #ifndef _ipv6calc_inttypes_h #define _ipv6calc_inttypes_h 1 #if defined(__linux__) /* Linux/glibc has no inttypes.h */ #include #else /* Should catch all *BSD, others, too */ #include #include #endif /* max string length */ #define IPV6CALC_STRING_MAX 1024 #define IPV6CALC_ADDR_STRING_MAX 256 #define IPV6CALC_SCOPEID_STRING_MAX 64 #define IPV6CALC_COUNTRYCODE_STRING_MAX 16 #include #ifndef PATH_MAX #define PATH_MAX 1024 // fallback #warning "system include files missing definition of PATH_MAX -> use fallback" #endif #endif // _ipv6calc_inttypes_h ipv6calc-4.1.0/lib/ipv6calccommands.h000066400000000000000000000100371444154247200174030ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6calccommands.h * Version : $Id: 1c13437c8bbbe2f721df70a077ccd32f38a406b6 $ * Copyright : 2002-2019 by Peter Bieringer * License : GPLv2 * * Information: * Header file containing commands for ipv6calc */ #ifndef _ipv6calccommands_h_ #define _ipv6calccommands_h_ /* verbose levels */ #define LEVEL_VERBOSE 0x1 #define LEVEL_VERBOSE2 0x2 /* command values */ #define CMD_printhelp 0x0000001 #define CMD_printversion 0x0000002 #define CMD_printversion_verbose 0x0000020 #define CMD_printversion_verbose2 0x0000040 #define CMD_printexamples 0x0000004 #define CMD_printoldoptions 0x0000008 // EOL 2014-04-02 /* new style options */ #define CMD_inputtype 0x0200000 #define CMD_outputtype 0x0400000 #define CMD_actiontype 0x0800000 /* shortcut commands */ #define CMD_shortcut_start 0x0001010 #define CMD_addr_to_ip6int 0x0001010 #define CMD_addr_to_compressed 0x0001020 #define CMD_addr_to_uncompressed 0x0001030 #define CMD_addr_to_fulluncompressed 0x0001040 #define CMD_addr_to_ifinet6 0x0001050 #define CMD_addr_to_base85 0x0001060 #define CMD_addr_to_ip6arpa 0x0001070 #define CMD_addr_to_bitstring 0x0001080 #define CMD_ipv4_to_6to4addr 0x0001090 #define CMD_base85_to_addr 0x00010a0 #define CMD_mac_to_eui64 0x00010b0 #define CMD_eui64_to_privacy 0x00010c0 #define CMD_ifinet6_to_compressed 0x00010d0 #define CMD_addr_to_countrycode 0x00010e0 #define CMD_shortcut_end 0x00010e0 #define CMD_showinfo 0x0010010 #define CMD_showinfotypes 0x0010020 /* database options (old), EOS since 3.0.0 */ #define DB_EOS_ip2location_ipv4 0x0020010 #define DB_EOS_ip2location_ipv6 0x0020020 #define DB_EOS_ip2location_ipv4_default 0x0020030 #define DB_EOS_ip2location_ipv6_default 0x0020040 // EOS since 3.0.0 #define DB_EOS_geoip_disable 0x0021000 #define DB_EOS_geoip_ipv4 0x0021010 #define DB_EOS_geoip_ipv6 0x0021020 #define DB_EOS_geoip_ipv4_default 0x0021030 #define DB_EOS_geoip_ipv6_default 0x0021040 #define DB_EOS_geoip_dir 0x0021050 #define DB_EOS_geoip_lib 0x0021060 /* database options (new) */ #define DB_ip2location_disable 0x0020000 #define DB_ip2location_dir 0x0020050 #define DB_ip2location_lib 0x0020060 #define DB_ip2location_lite_to_sample_autoswitch_max_delta_months 0x0020100 #define DB_ip2location_comm_to_lite_switch_min_delta_months 0x0020110 #define DB_ip2location_only_type 0x0020120 #define DB_ip2location_allow_softlinks 0x0020130 // EOS since 3.0.0 #define DB_EOS_dbip_disable 0x0022000 #define DB_EOS_dbip_dir 0x0022050 #define DB_EOS_dbip_comm_to_free_switch_min_delta_months 0x0022110 #define DB_EOS_dbip_only_type 0x0022120 #define DB_external_disable 0x0023000 #define DB_external_dir 0x0023050 #define DB_builtin_disable 0x0024000 #define DB_mmdb_disable 0x0025000 #define DB_mmdb_lib 0x0025060 #define DB_geoip2_disable 0x0026000 #define DB_geoip2_dir 0x0026050 #define DB_dbip2_disable 0x0027000 #define DB_dbip2_dir 0x0027050 #define DB_dbip2_comm_to_free_switch_min_delta_months 0x0027110 #define DB_dbip2_only_type 0x0027120 #define DB_common_priorization 0x002fff0 /* address anonymizer options */ #define CMD_ANON_PRESET_STANDARD 0x0030010 #define CMD_ANON_PRESET_CAREFUL 0x0030020 #define CMD_ANON_PRESET_PARANOID 0x0030030 #define CMD_ANON_METHOD_OPTION 0x00300e0 #define CMD_ANON_PRESET_OPTION 0x00300f0 #define CMD_ANON_MASK_IPV4 0x0030100 #define CMD_ANON_MASK_IPV6 0x0030110 #define CMD_ANON_MASK_EUI64 0x0030120 #define CMD_ANON_MASK_MAC 0x0030130 #define CMD_ANON_MASK_AUTOADJUST 0x0030180 #define CMD_ANON_MASK_IID 0x0030190 // deprecated /* 6rd options */ #define CMD_6rd_prefix 0x0040010 #define CMD_6rd_relay_prefix 0x0040020 #define CMD_6rd_prefixlength 0x0040030 /* address test options */ #define CMD_test_prefix 0x0050010 // prefix #define CMD_test_gt 0x0050020 // greater than #define CMD_test_ge 0x0050030 // greater equal #define CMD_test_lt 0x0050040 // less than #define CMD_test_le 0x0050050 // less equal /* no operations (dummy) */ #define OPTION_NOOP 0xfffffff #endif ipv6calc-4.1.0/lib/ipv6calchelp.c000066400000000000000000001126211444154247200165270ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6calchelp.c * Copyright : 2002-2023 by Peter Bieringer * * Information: * Help library */ #include #include #include #include "libipv6calc.h" #include "libipv6calcdebug.h" #include "ipv6calctypes.h" #include "ipv6calcoptions.h" #include "ipv6calchelp.h" #include "config.h" #include "libieee.h" #include "libipv6calc_db_wrapper.h" #include "libipv6calc_db_wrapper_GeoIP2.h" #include "libipv6calc_db_wrapper_IP2Location.h" #include "libipv6calc_db_wrapper_DBIP2.h" #include "libipv6calc_db_wrapper_BuiltIn.h" #include "libipv6calc_db_wrapper_External.h" /* to be defined in each application */ extern void printversion(void); extern void printcopyright(void); /* format option arguments */ void printhelp_print(void) { fprintf(stderr, " --printprefix : print only prefix of IPv6 address\n"); fprintf(stderr, " --printsuffix : print only suffix of IPv6 address\n"); }; void printhelp_mask(void) { fprintf(stderr, " --maskprefix : mask IPv6 address with prefix length (clears suffix bits)\n"); fprintf(stderr, " --masksuffix : mask IPv6 address with suffix length (clears prefix bits)\n"); }; void printhelp_case(void) { fprintf(stderr, " --uppercase|-u : print chars of IPv6 address in upper case\n"); fprintf(stderr, " --lowercase|-l : print chars of IPv6 address in lower case [default]\n"); }; void printhelp_printstartend(void) { fprintf(stderr, " --printstart <1-128> : print part of IPv6 address start from given number\n"); fprintf(stderr, " --printend <1-128> : print part of IPv6 address end at given number\n"); }; void printhelp_doublecommands(void) { printversion(); printcopyright(); fprintf(stderr, " Only one command may be specified!\n"); }; void printhelp_missinginputdata(void) { printversion(); printcopyright(); fprintf(stderr, " Missing or too few input data given!\n"); }; /* list of input types */ void printhelp_inputtypes(const uint32_t formatoptions) { int i, j; size_t maxlen = 0; char printformatstring[20]; if ((formatoptions & FORMATOPTION_machinereadable) == 0) { printversion(); printcopyright(); }; /* look for longest type definition */ for (j = 0; j < ipv6calc_formatstrings_entries; j++) { if (strlen(ipv6calc_formatstrings[j].token) > maxlen) { maxlen = strlen(ipv6calc_formatstrings[j].token); }; }; if (maxlen > 999) { fprintf(stderr, " Something going wrong with array 'ipv6calc_formatstrings'!\n"); exit(EXIT_FAILURE); }; if ((formatoptions & FORMATOPTION_machinereadable) == 0) { snprintf(printformatstring, sizeof(printformatstring), " %%-%ds : %%s\n", (int) maxlen); } else { snprintf(printformatstring, sizeof(printformatstring), "%%-%ds\n", (int) maxlen); } DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Format string: %s", printformatstring); if ((formatoptions & FORMATOPTION_machinereadable) == 0) fprintf(stderr, "\n Available input types:\n"); /* run through matrix */ for (i = 0; i < ipv6calc_formatmatrix_entries; i++) { DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Row %d: %08x - %08x", i, (unsigned int) ipv6calc_formatmatrix[i][0], (unsigned int) ipv6calc_formatmatrix[i][1]); if (ipv6calc_formatmatrix[i][1] != 0) { /* available for input, look for name now */ for (j = 0; j < ipv6calc_formatstrings_entries; j++) { DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Format-Row %d: %08x - %s - %s", j, (unsigned int) ipv6calc_formatstrings[j].number, ipv6calc_formatstrings[j].token, ipv6calc_formatstrings[j].explanation); if (ipv6calc_formatstrings[j].number == ipv6calc_formatmatrix[i][0]) { if ((formatoptions & FORMATOPTION_machinereadable) == 0) { fprintf(stderr, printformatstring, ipv6calc_formatstrings[j].token, ipv6calc_formatstrings[j].explanation); } else { fprintf(stdout, printformatstring, ipv6calc_formatstrings[j].token); }; }; }; }; }; if ((formatoptions & FORMATOPTION_machinereadable) == 0) fprintf(stderr, "\n"); }; /* list of output types */ void printhelp_outputtypes(const uint32_t inputtype, const uint32_t formatoptions) { int i, j; size_t maxlen = 0; char printformatstring[20]; if ((formatoptions & FORMATOPTION_machinereadable) == 0) { printversion(); printcopyright(); }; /* look for longest type definition */ for (j = 0; j < ipv6calc_formatstrings_entries; j++) { if (strlen(ipv6calc_formatstrings[j].token) > maxlen) { maxlen = strlen(ipv6calc_formatstrings[j].token); }; }; if (maxlen > 999) { fprintf(stderr, " Something going wrong with array 'ipv6calc_formatstrings'!\n"); exit(EXIT_FAILURE); }; if ((formatoptions & FORMATOPTION_machinereadable) == 0) { snprintf(printformatstring, sizeof(printformatstring), " %%-%ds : %%s\n", (int) maxlen); } else { snprintf(printformatstring, sizeof(printformatstring), "%%-%ds\n", (int) maxlen); }; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Format string: %s", printformatstring); if ((formatoptions & FORMATOPTION_machinereadable) == 0) { if ( (inputtype & ~ (FORMAT_auto | FORMAT_any) ) != 0 ) { fprintf(stderr, "\n Available output types filtered by input type:\n"); } else { fprintf(stderr, "\n Available output types:\n"); }; }; /* run through matrix */ for (j = 0; j < ipv6calc_formatstrings_entries; j++) { DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Format-Row %d: %08x - %s - %s", j, (unsigned int) ipv6calc_formatstrings[j].number, ipv6calc_formatstrings[j].token, ipv6calc_formatstrings[j].explanation); for (i = 0; i < ipv6calc_formatmatrix_entries; i++) { if ( (inputtype & ~ (FORMAT_auto | FORMAT_any) ) != 0 ) { if (ipv6calc_formatmatrix[i][0] != inputtype) { /* skip */ continue; }; }; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Row %d: %08x - %08x", i, (unsigned int) ipv6calc_formatmatrix[i][0], (unsigned int) ipv6calc_formatmatrix[i][1]); if ((ipv6calc_formatmatrix[i][1] & ipv6calc_formatstrings[j].number) != 0) { /* available for output, look for name now */ if (strlen(ipv6calc_formatstrings[j].explanation) > 0) { fprintf(stderr, printformatstring, ipv6calc_formatstrings[j].token, ipv6calc_formatstrings[j].explanation); } else { fprintf(stdout, printformatstring, ipv6calc_formatstrings[j].token, "(empty)"); }; break; }; }; }; if ((formatoptions & FORMATOPTION_machinereadable) == 0) { fprintf(stderr, "\n For examples and available format options use:\n"); fprintf(stderr, " -O|--out --examples\n"); fprintf(stderr, "\n"); }; }; /* list of action types */ void printhelp_actiontypes(const uint32_t formatoptions, const struct option longopts[]) { int i, j, o, test, has_options; size_t maxlen = 0; char printformatstring[20], printformatstring2[20], printformatstring3[20]; if ((formatoptions & FORMATOPTION_machinereadable) == 0) { printversion(); printcopyright(); }; /* look for longest type definition */ for (j = 0; j < ipv6calc_actionstrings_entries; j++) { if (strlen(ipv6calc_actionstrings[j].token) > maxlen) { maxlen = strlen(ipv6calc_actionstrings[j].token); }; }; if (maxlen > 999) { fprintf(stderr, " Something going wrong with array 'ipv6calc_actionstrings'!\n"); exit (EXIT_FAILURE); }; if ((formatoptions & FORMATOPTION_machinereadable) == 0) { snprintf(printformatstring, sizeof(printformatstring), " %%-%ds : %%s\n", (int) maxlen); } else { snprintf(printformatstring, sizeof(printformatstring), "%%-%ds\n", (int) maxlen); }; snprintf(printformatstring2, sizeof(printformatstring2), " %%-%ds%%s\n", (int) maxlen + 4); snprintf(printformatstring3, sizeof(printformatstring3), " %%-%ds--%%s", (int) maxlen + 5); DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Action string: %s", printformatstring); if ((formatoptions & FORMATOPTION_machinereadable) == 0) fprintf(stderr, "\n Available action types:\n"); for (j = 0; j < ipv6calc_actionstrings_entries; j++) { DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Action-Row %d: %08x - %s - %s", j, (unsigned int) ipv6calc_actionstrings[j].number, ipv6calc_actionstrings[j].token, ipv6calc_actionstrings[j].explanation); if ((formatoptions & FORMATOPTION_machinereadable) == 0) { fprintf(stderr, printformatstring, ipv6calc_actionstrings[j].token, ipv6calc_actionstrings[j].explanation); test = 2; has_options = 0; while (test != 0) { if (test == 1) { fprintf(stderr, printformatstring2, "", "Options:"); }; /* search for defined options */ for (i = 0; i < ipv6calc_actionoptionmap_entries; i++) { DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Option %d", i) if (ipv6calc_actionstrings[j].number == ipv6calc_actionoptionmap[i][0]) { if (ipv6calc_actionoptionmap[i][1] == 0) { /* no options supported */ break; }; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Option value: %08x", (unsigned int) ipv6calc_actionoptionmap[i][1]); /* run through options */ o = 0; while(longopts[o].name != NULL) { if ((ipv6calc_actionoptionmap[i][1] == (uint32_t) longopts[o].val)) { has_options = 1; if (test == 1) { fprintf(stderr, printformatstring3, "", longopts[o].name); if (longopts[o].has_arg > 0) { fprintf(stderr, " ..."); }; if (ipv6calc_actionoptionmap[i][2] > 0) { fprintf(stderr, " (optional)"); } else { fprintf(stderr, " (required)"); }; fprintf(stderr, "\n"); }; }; o++; }; }; }; if (has_options == 0) { break; }; test--; }; } else { fprintf(stdout, printformatstring, ipv6calc_actionstrings[j].token); }; }; if ((formatoptions & FORMATOPTION_machinereadable) == 0) fprintf(stderr, "\n"); }; /* print global common help */ void printhelp_common(const uint32_t help_features) { fprintf(stderr, "\n"); fprintf(stderr, " [-d|--debug ] : debug value (bitwise like)\n"); fprintf(stderr, " can also be set by IPV6CALC_DEBUG environment value\n"); fprintf(stderr, " [-v|--version [-v [-v]]] : version information (2 optional detail levels)\n"); fprintf(stderr, " [-v|--version -h] : explanation of feature tokens\n"); fprintf(stderr, " [-V|--verbose] : be more verbose\n"); fprintf(stderr, " [-h|--help|-?] : this online help\n"); if ((help_features & IPV6CALC_HELP_QUIET) != 0) { fprintf(stderr, " [-q|--quiet] : be more quiet\n"); }; if ((help_features & IPV6CALC_HELP_IP2LOCATION) != 0) { #ifdef SUPPORT_IP2LOCATION fprintf(stderr, "\n"); fprintf(stderr, " [--disable-ip2location ] : IP2Location support disabled\n"); fprintf(stderr, " [--db-ip2location-disable ] : IP2Location support disabled\n"); fprintf(stderr, " [--db-ip2location-dir ] : IP2Location database directory (default: %s)\n", ip2location_db_dir); #ifdef SUPPORT_IP2LOCATION_DYN fprintf(stderr, " [--db-ip2location-lib ] : IP2Location library file (default: %s)\n", ip2location_lib_file); #endif fprintf(stderr, " [--db-ip2location-only-type ]: IP2Location database only selected type (1-%d)\n", IP2LOCATION_DB_MAX); fprintf(stderr, " [--db-ip2location-allow-softlinks] : IP2Location database softlinks allowed\n"); fprintf(stderr, " by default they are ignored because it is hard to autodetect COMM/LITE/SAMPLE\n"); fprintf(stderr, " [--db-ip2location-lite-to-sample-autoswitch-max-delta-months ]:\n"); fprintf(stderr, " autoswitch from LITE to SAMPLE databases if possible and delta is not more than %d months (0=disabled)\n", ip2location_db_lite_to_sample_autoswitch_max_delta_months); fprintf(stderr, " [--db-ip2location-comm-to-lite-switch-min-delta-months ]:\n"); fprintf(stderr, " switch from COMM to LITE databases if possible and delta more than %d months (0=disabled)\n", ip2location_db_comm_to_lite_switch_min_delta_months); #endif }; if ((help_features & IPV6CALC_HELP_GEOIP) != 0) { #ifdef SUPPORT_GEOIP fprintf(stderr, "\n"); fprintf(stderr, " [--disable-geoip ] : GeoIP support disabled\n"); fprintf(stderr, " [--db-geoip-disable ] : GeoIP support disabled\n"); fprintf(stderr, " [--db-geoip-dir ] : GeoIP database directory (default: %s)\n", geoip_db_dir); #ifdef SUPPORT_GEOIP_DYN fprintf(stderr, " [--db-geoip-lib ] : GeoIP library file (default: %s)\n", geoip_lib_file); #endif #endif }; if ((help_features & IPV6CALC_HELP_MMDB) != 0) { #ifdef SUPPORT_MMDB_DYN fprintf(stderr, "\n"); fprintf(stderr, " [--db-mmdb-lib ] : MaxMindDB library file (default: %s)\n", mmdb_lib_file); #endif #ifdef SUPPORT_GEOIP2 fprintf(stderr, "\n"); fprintf(stderr, " [--disable-geoip2 ] : GeoIP(MaxMindDB) support disabled\n"); fprintf(stderr, " [--db-geoip2-disable ] : GeoIP(MaxMindDB) support disabled\n"); fprintf(stderr, " [--db-geoip2-dir ] : GeoIP(MaxMindDB) database directory (default: %s)\n", geoip2_db_dir); #endif #ifdef SUPPORT_DBIP2 fprintf(stderr, "\n"); fprintf(stderr, " [--disable-dbip2 ] : db-ip.com(MaxMindDB) support disabled\n"); fprintf(stderr, " [--db-dbip2-disable ] : db-ip.com(MaxMindDB) support disabled\n"); fprintf(stderr, " [--db-dbip2-dir ] : db-ip.com(MaxMindDB) database directory (default: %s)\n", dbip2_db_dir); fprintf(stderr, " [--db-dbip2-only-type ] : db-ip.com(MaxMindDB) database only selected type (1-%d)\n", DBIP2_DB_MAX); fprintf(stderr, " [--db-dbip2-comm-to-free-switch-min-delta-months ]:\n"); fprintf(stderr, " switch from COMM to FREE databases if possible and delta more than %d months (0=disabled)\n", dbip2_db_comm_to_free_switch_min_delta_months); #endif }; if ((help_features & IPV6CALC_HELP_EXTERNAL) != 0) { #ifdef SUPPORT_EXTERNAL fprintf(stderr, "\n"); fprintf(stderr, " [--disable-external ] : External support disabled\n"); fprintf(stderr, " [--db-external-disable ] : External support disabled\n"); fprintf(stderr, " [--db-external-dir ] : External database directory (default: %s)\n", external_db_dir); #endif }; if ((help_features & IPV6CALC_HELP_BUILTIN) != 0) { #ifdef SUPPORT_BUILTIN fprintf(stderr, "\n"); fprintf(stderr, " [--disable-builtin ] : BuiltIn support disabled\n"); fprintf(stderr, " [--db-builtin-disable ] : BuiltIn support disabled\n"); #endif #if defined SUPPORT_EXTERNAL || defined SUPPORT_DBIP2 || defined SUPPORT_GEOIP2 || SUPPORT_IP2LOCATION fprintf(stderr, "\n"); fprintf(stderr, " [--db-priorization [:...]] : Database priorization order list (overwrites default)\n"); fprintf(stderr, " colon separated:"); int i; for (i = 0; i < MAXENTRIES_ARRAY(data_sources); i++) { fprintf(stderr, " %s", data_sources[i].shortname); }; fprintf(stderr, "\n"); #endif }; fprintf(stderr, "\n"); fprintf(stderr, " Hint: all long options can be predefined from environment by using\n"); fprintf(stderr, " prefix: IPV6CALC_ and conversion: '-' -> '_' and lowercase -> uppercase\n"); fprintf(stderr, " example for options with values : --db-dbip2-dir= -> environment: IPV6CALC_DB_DBIP2_DIR=\n"); fprintf(stderr, " example for options without values: --db-dbip2-disable -> environment: IPV6CALC_DB_DBIP2_DISABLE=1\n"); fprintf(stderr, " on|off|0|1 is supported\n"); fprintf(stderr, "\n"); return; }; void printhelp_shortcut_options(const struct option longopts[], const s_ipv6calc_longopts_shortopts_map longopts_shortopts_map[]) { int i = 0; int j; char c; const char *info; fprintf(stderr, "\n"); fprintf(stderr, " Usage with shortcut options: [ ...] \n"); fprintf(stderr, " for more information and available format options use: -?|-h|--help\n"); fprintf(stderr, "\n"); while(longopts[i].name != NULL) { if (longopts[i].val >= CMD_shortcut_start && longopts[i].val <= CMD_shortcut_end) { c = '\0'; info = NULL; if (longopts_shortopts_map != NULL) { DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Search in longopts_shortopts_map for %08x", longopts[i].val); j = 0; while (longopts_shortopts_map[j].val > 0) { DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Check against longopts_shortopts_map entry %d:%08x", j, longopts_shortopts_map[j].val); if (longopts[i].val == longopts_shortopts_map[j].val) { c = longopts_shortopts_map[j].c; info = longopts_shortopts_map[j].info; break; }; j++; }; }; if (c != '\0') { fprintf(stderr, " -%c|--%s", c, longopts[i].name); } else { fprintf(stderr, " --%s", longopts[i].name); }; if (info != NULL) { fprintf(stderr, " (%s)", info); }; fprintf(stderr, "\n"); }; i++; }; fprintf(stderr, "\n"); return; }; /* print help for output type examples */ static void printhelp_output_base85(void) { fprintf(stderr, " Print a given IPv6 address in base85 format (RFC 1924), e.g.\n"); fprintf(stderr, " 1080:0:0:0:8:800:200c:417a -> 4)+k&C#VzJ4br>0wv%%Yp\n"); }; static void printhelp_output_bitstring(void) { fprintf(stderr, " Print a given IPv6 address as a bitstring label for use with DNS, e.g.\n"); fprintf(stderr, " 3ffe:ffff::1 -> \\[x3ffeffff000000000000000000000001/128].ip6.arpa.\n"); fprintf(stderr, " 3ffe:ffff::1/64 -> \\[x3ffeffff000000000000000000000001/64].ip6.arpa.\n"); fprintf(stderr, " --printsuffix 3ffe:ffff::1/64 -> \\[x0000000000000001/64]\n"); fprintf(stderr, " --printprefix 3ffe:ffff::1/64 -> \\[x3ffeffff00000000/64]\n"); }; static void printhelp_output_ipv6addr(void) { fprintf(stderr, " Print a given IPv6 address depending on format options:\n"); fprintf(stderr, " Uncompressed, e.g.\n"); fprintf(stderr, " 3ffe:ffff:100:f101::1 -> 3ffe:ffff:100:f101:0:0:0:1\n"); fprintf(stderr, " 3ffe:ffff:100:f101::1/64 -> 3ffe:ffff:100:f101:0:0:0:1/64\n"); fprintf(stderr, " Full uncompressed, e.g.\n"); fprintf(stderr, " 3ffe:ffff:100:f101::1 -> 3ffe:ffff:0100:f101:0000:0000:0000:0001\n"); fprintf(stderr, " Compressed, e.g.\n"); fprintf(stderr, " 3ffe:ffff:0100:f101:0000:0000:0000:0001 -> 3ffe:ffff:100:f101::1\n"); }; static void printhelp_output_ipv6literal(void) { fprintf(stderr, " Print a given IPv6 address in literal format depending on format options:\n"); fprintf(stderr, " Uncompressed, e.g.\n"); fprintf(stderr, " 2001:db8::1 -> 2001-db8-0-0-0-0-0-1.ipv6-literal.net\n"); fprintf(stderr, " Full uncompressed, e.g.\n"); fprintf(stderr, " 2001:db8::1 -> 2001-0db8-0000-0000-0000-0000-0000-0001.ipv6-literal.net\n"); fprintf(stderr, " Compressed (default), e.g.\n"); fprintf(stderr, " 2001:db8::1 -> 2001-db8--1.ipv6-literal.net\n"); fprintf(stderr, " With Scope ID, e.g.\n"); fprintf(stderr, " fe80::1%%0 -> fe80--1s0.ipv6-literal.net\n"); }; static void printhelp_output_hex(void) { fprintf(stderr, " Print a given IPv4/v6 address in hex format depending on format options:\n"); fprintf(stderr, " without any format option, e.g.\n"); fprintf(stderr, " 0123:4567:89ab:cdef:0000:1111:2222:3333 -> 0123456789abcdef0000111122223333\n"); fprintf(stderr, " 1.2.3.4 -> 01020304\n"); }; static void printhelp_output_eui64(void) { fprintf(stderr, " Print a generated EUI-64 identifier, e.g.:\n"); fprintf(stderr, " 00:50:BF:06:B4:F5 -> 0250:bfff:fe06:b4f5\n"); }; static void printhelp_output_iid_token(void) { fprintf(stderr, " Print generated interface identifier and token, e.g.:\n"); fprintf(stderr, " -> 4462:bdea:8654:776d 486072ff7074945e\n"); }; static void printhelp_output_revnibble_int(void) { fprintf(stderr, " Print a given IPv6 address in dot separated reverse nibble format for use with DNS, e.g.\n"); fprintf(stderr, " 3ffe:ffff:100:f101::1\n -> 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.1.f.0.0.1.0.0.0.4.0.e.f.f.3.ip6.int.\n"); fprintf(stderr, " 3ffe:ffff:100:f101::1/64\n -> 1.0.1.f.0.0.1.0.0.0.4.0.e.f.f.3.ip6.int.\n"); }; static void printhelp_output_revnibble_arpa(void) { fprintf(stderr, " Print a given IPv6 address in dot separated reverse nibble format for use with DNS, e.g.\n"); fprintf(stderr, " 3ffe:ffff:100:f101::1\n -> 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.1.f.0.0.1.0.0.0.4.0.e.f.f.3.ip6.arpa.\n"); fprintf(stderr, " 3ffe:ffff:100:f101::1/64\n -> 1.0.1.f.0.0.1.0.0.0.4.0.e.f.f.3.ip6.arpa.\n"); }; static void printhelp_input_revnibbles(void) { fprintf(stderr, " Print reverse nibble format (used in DNS) as IPv6 address, e.g.\n"); fprintf(stderr, " 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.\n -> 2001:db8::1/128\n"); fprintf(stderr, " 8.b.d.0.1.0.0.2.ip6.arpa.\n -> 2001:db8::/32\n"); fprintf(stderr, " 8.b.d.0.1.0.0.2.ip6.arpa. --printprefix\n -> 2001:db8\n"); fprintf(stderr, " 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0\n -> ::1/64\n"); fprintf(stderr, " 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 --printsuffix\n -> 0:0:0:1\n"); }; static void printhelp_output_ifinet6void(void) { fprintf(stderr, " Print a given IPv6 address to same format shown in Linux /proc/net/if_inet6:\n"); fprintf(stderr, " 3ffe:ffff:100:f101::1 -> 3ffeffff0100f1010000000000000001 00\n"); fprintf(stderr, " 3ffe:ffff:100:f101::1/64 -> 3ffeffff0100f1010000000000000001 00 40\n"); }; static void printhelp_output_ipv4addr(void) { fprintf(stderr, " Print an IPv4 address, depending on format options:\n"); fprintf(stderr, " Uncompressed, e.g.\n"); fprintf(stderr, " 1.2.0.0 -> 1.2.0.0\n"); fprintf(stderr, " 1.2.0. -> 1.2.0.0\n"); fprintf(stderr, " 1.2 -> 1.2.0.0\n"); fprintf(stderr, " Compressed, e.g.\n"); fprintf(stderr, " 1.2.0.0 -> 1.2\n"); fprintf(stderr, " Octal, e.g.\n"); fprintf(stderr, " 192.0.2.1 -> 0300.0000.0002.0001\n"); }; static void printhelp_output_revipv4(void) { fprintf(stderr, " Print an IPv4 address in reverse format for PTR/DNS\n"); fprintf(stderr, " 1.2.3.4 -> 4.3.2.1.in-addr.arpa\n"); }; static void printhelp_output_addrtype(void) { fprintf(stderr, " Print type of a given IPv4/IPv6 address:\n"); fprintf(stderr, " IPv4 address -> ipv4-addr.addrtype.ipv6calc\n"); fprintf(stderr, " IPv6 address -> ipv6-addr.addrtype.ipv6calc\n"); }; static void printhelp_output_ipv6addrtype(void) { fprintf(stderr, " Print type of a given IPv6 address:\n"); fprintf(stderr, " 3ffe::/16 -> 6bone-global.ipv6addrtype.ipv6calc\n"); fprintf(stderr, " 2002::/16 -> 6to4-global.ipv6addrtype.ipv6calc\n"); fprintf(stderr, " 2001::/16 -> productive-global.ipv6addrtype.ipv6calc\n"); fprintf(stderr, " fe80::/10 -> link-local.ipv6addrtype.ipv6calc\n"); fprintf(stderr, " fec0::/10 -> site-local.ipv6addrtype.ipv6calc\n"); fprintf(stderr, " ::ffff:0:0:0:0/96 -> mapped-ipv4.ipv6addrtype.ipv6calc\n"); fprintf(stderr, " ::0:0:0:0/96 -> compat-ipv4.ipv6addrtype.ipv6calc\n"); }; static void printhelp_output_ouitype(void) { fprintf(stderr, " Print OUI name of a given IPv6 address:\n"); fprintf(stderr, " IID local scope -> local-scoppe.ouitype.ipv6calc\n"); fprintf(stderr, " IID global scope -> vendorname.ouitype.ipv6calc\n"); }; static void printhelp_output_octal(void) { fprintf(stderr, " Print octal representation of a given IP address:\n"); fprintf(stderr, " (useful for djbdns/tinydns)\n"); fprintf(stderr, " 3ffe:ffff::1 -> \\077\\0376\\0377\\0377\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\00\\01\n"); fprintf(stderr, " --printfulluncompressed 3ffe:ffff::1 -> \\0077\\0376\\0377\\0377\\0000\\0000\\0000\\0000\\0000\\0000\\0000\\0000\\0000\\0000\\0000\\0001\n"); fprintf(stderr, " 192.0.2.1 -> \\0300\\00\\02\\01\n"); fprintf(stderr, " --printfulluncompressed 192.0.2.1 -> \\0300\\0000\\0002\\0001\n"); }; void printhelp_output_dispatcher(const uint32_t outputtype, const uint32_t inputtype) { int i, j; printversion(); fprintf(stderr, "\n"); switch (outputtype) { case FORMAT_base85: printhelp_output_base85(); break; case FORMAT_bitstring: printhelp_output_bitstring(); break; case FORMAT_ipv6addr: printhelp_output_ipv6addr(); break; case FORMAT_ipv6literal: printhelp_output_ipv6literal(); break; case FORMAT_eui64: printhelp_output_eui64(); break; case FORMAT_revnibbles_int: printhelp_output_revnibble_int(); break; case FORMAT_revnibbles_arpa: printhelp_output_revnibble_arpa(); break; case FORMAT_ifinet6: printhelp_output_ifinet6void(); break; case FORMAT_iid_token: printhelp_output_iid_token(); break; case FORMAT_ipv4addr: printhelp_output_ipv4addr(); break; case FORMAT_addrtype: printhelp_output_addrtype(); break; case FORMAT_ipv6addrtype: printhelp_output_ipv6addrtype(); break; case FORMAT_ouitype: printhelp_output_ouitype(); break; case FORMAT_revipv4: printhelp_output_revipv4(); break; case FORMAT_octal: printhelp_output_octal(); break; case FORMAT_hex: printhelp_output_hex(); break; default: switch (inputtype) { case FORMAT_revnibbles_int: case FORMAT_revnibbles_arpa: printhelp_input_revnibbles(); break; default: fprintf(stderr, " Examples currently missing... (output type)!\n"); break; }; break; }; /* looking for outtype */ for (i = 0; i < ipv6calc_outputformatoptionmap_entries; i++) { if (outputtype == ipv6calc_outputformatoptionmap[i][0]) { if (ipv6calc_outputformatoptionmap[i][1] == 0) { fprintf(stderr, " No format options supported\n"); break; }; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Format value: %08x", (unsigned int) ipv6calc_outputformatoptionmap[i][1]); fprintf(stderr, "\n"); fprintf(stderr, " Available format options:\n"); /* run through format options */ for (j = 0; j < ipv6calc_formatoptionstrings_entries; j++) { if ((ipv6calc_outputformatoptionmap[i][1] & ipv6calc_formatoptionstrings[j].number) != 0) { fprintf(stderr, " %s: %s\n", ipv6calc_formatoptionstrings[j].token, ipv6calc_formatoptionstrings[j].explanation); }; }; break; }; }; fprintf(stderr, "\n"); }; /* help regarding action command */ /* in: embedded = 1 : do not show version and command */ void printhelp_action_dispatcher(const uint32_t action, const int embedded) { int i, j; char method_name[32]; if (embedded != 1) { printversion(); }; fprintf(stderr, "\n"); switch (action) { case ACTION_mac_to_eui64: fprintf(stderr, " help still missing - sorry.\n"); break; case ACTION_ipv4_to_6to4addr: fprintf(stderr, " Convert IPv4 to 6to4 prefix / extract IPv4 from 6to4 prefix\n"); fprintf(stderr, " ipv6calc -A conv6to4 192.0.2.1 -> 2002:c000:201::\n"); fprintf(stderr, " ipv6calc -A conv6to4 192.0.2.1/24 -> 2002:c000:200::/40\n"); fprintf(stderr, " ipv6calc -A conv6to4 192.0.2.0/24 -> 2002:c000:200::/40\n"); fprintf(stderr, " ipv6calc -A conv6to4 2002:c000:201:: -> 192.0.2.1\n"); fprintf(stderr, " ipv6calc -A conv6to4 2002:c000:201::/40 -> 192.0.2.0/24\n"); fprintf(stderr, "\n"); fprintf(stderr, " See '-O ipv4 -h' or '-O ipv6 -h' for optional output modifications\n"); fprintf(stderr, " Can also be used in PIPE mode to convert a list of IP addresses/networks\n"); break; case ACTION_ipv4_to_nat64: fprintf(stderr, " Convert IPv4 to NAT64 address / extract IPv4 from NAT64 address\n"); fprintf(stderr, " ipv6calc -A convnat64 192.0.2.1\n"); fprintf(stderr, " 64:ff9b::c000:201\n"); fprintf(stderr, " ipv6calc -A convnat64 64:ff9b::c000:201\n"); fprintf(stderr, " 192.0.2.1\n"); break; case ACTION_anonymize: if (embedded != 1) { fprintf(stderr, " Anonymize given address according to preset or custom values, e.g.\n"); fprintf(stderr, " ipv6calc -A anonymize 2001:db8:2280:6901:224:21ff:fe01:2345 --anonymize-preset zeroize-standard\n"); fprintf(stderr, " 2001:db8:2280:6900:224:21ff:fe00:0\n"); fprintf(stderr, " ipv6calc -A anonymize 2001:db8:2280:6901:224:21ff:fe01:2345 --anonymize-preset anonymize-standard\n"); fprintf(stderr, " 2001:db8:2280:6909:a929:4291:4022:4217\n"); fprintf(stderr, "\n"); }; fprintf(stderr, " Shortcut for anonymization presets:\n"); fprintf(stderr, " --anonymize-standard (default)\n"); fprintf(stderr, " --anonymize-careful\n"); fprintf(stderr, " --anonymize-paranoid\n"); fprintf(stderr, "\n"); fprintf(stderr, " Supported methods [--anonymize-method METHOD]:\n"); for (i = 0; i < ipv6calc_anon_methods_entries; i++) { fprintf(stderr, " %-10s: %s\n", ipv6calc_anon_methods[i].name, ipv6calc_anon_methods[i].description); }; fprintf(stderr, "\n"); fprintf(stderr, " Available presets (shortcut names) [--anonymize-preset|ap PRESET-NAME]:\n"); for (i = 0; i < ipv6calc_anon_set_list_entries; i++) { snprintf(method_name, sizeof(method_name), "%s", "unknown"); // default for (j = 0; j < ipv6calc_anon_methods_entries; j++) { if (ipv6calc_anon_methods[j].method == ipv6calc_anon_set_list[i].method) { snprintf(method_name, sizeof(method_name), "%s", ipv6calc_anon_methods[j].name); break; }; }; fprintf(stderr, " %-20s (%2s): mask-ipv6=%3d mask-ipv4=%2d mask-eui64=%2d mask-mac=%2d mask-autoadjust=%-3s method=%s\n", ipv6calc_anon_set_list[i].name, ipv6calc_anon_set_list[i].name_short, ipv6calc_anon_set_list[i].mask_ipv6, ipv6calc_anon_set_list[i].mask_ipv4, ipv6calc_anon_set_list[i].mask_eui64, ipv6calc_anon_set_list[i].mask_mac, (ipv6calc_anon_set_list[i].mask_autoadjust == 1) ? "yes" : "no", method_name); }; fprintf(stderr, "\n"); fprintf(stderr, " Custom control:\n"); fprintf(stderr, " --mask-ipv4 : mask IPv4 address [0-32] (even if occurs in IPv6 address)\n"); fprintf(stderr, " --mask-ipv6 : mask IPv6 prefix [0-64] (only applied to related address types)\n"); fprintf(stderr, " --mask-eui64 : mask EUI-64 address or IPv6 interface identifier [0-64]\n"); fprintf(stderr, " --mask-mac : mask MAC address [0-48]\n"); fprintf(stderr, " --mask-autoadjust yes|no: autoadjust mask to keep type/vendor information regardless of less given mask\n"); break; case ACTION_iid_token_to_privacy: fprintf(stderr, " help still missing - sorry.\n"); break; case ACTION_prefix_mac_to_ipv6: fprintf(stderr, " help still missing - sorry.\n"); break; case ACTION_6rd_local_prefix: fprintf(stderr, " help still missing - sorry.\n"); break; case ACTION_filter: fprintf(stderr, " Filter given addresses from stdin by filter expression, e.g.\n"); fprintf(stderr, " echo '2001:db8::1' | ipv6calc [-A filter] -E iid-local\n"); fprintf(stderr, " echo '2001:db8::1' | ipv6calc [-A filter] -E iid-local,global-unicast\n"); fprintf(stderr, " echo '2001:db8::1' | ipv6calc [-A filter] -E ^iid-random\n"); fprintf(stderr, "\n"); fprintf(stderr, " (note: since version 0.95.0 '-A filter' is autoselected if option '-E ' is given)\n"); fprintf(stderr, "\n"); fprintf(stderr, " negation of filter expression with prefix: ^\n"); fprintf(stderr, "\n"); fprintf(stderr, " IPv6 address filter tokens:\n"); fprintf(stderr, " ipv6 "); for (i = 0; i < ipv6calc_ipv6addrtypestrings_entries; i++ ) { fprintf(stderr, " %s", ipv6calc_ipv6addrtypestrings[i].token); }; fprintf(stderr, "\n"); fprintf(stderr, "\n"); fprintf(stderr, " IPv4 address filter tokens:\n"); fprintf(stderr, " ipv4 "); for (i = 0; i < ipv6calc_ipv4addrtypestrings_entries; i++ ) { fprintf(stderr, " %s", ipv6calc_ipv4addrtypestrings[i].token); }; fprintf(stderr, "\n"); fprintf(stderr, "\n"); fprintf(stderr, " IPv4/v6 address filter tokens based on databases:\n"); fprintf(stderr, " [^][ipv4.|ipv6.]db.cc=|unknown (Country Code [2 chars])\n"); fprintf(stderr, " [^][ipv4.|ipv6.]db.asn=|unknown (Autonomous System Number)\n"); fprintf(stderr, " [^][ipv4.|ipv6.]db.reg=\n"); fprintf(stderr, " Registry tokens:"); for (i = 0; i < ipv6calc_registries_entries; i++ ) { fprintf(stderr, " %s", ipv6calc_registries[i].token); }; fprintf(stderr, "\n"); fprintf(stderr, "\n"); fprintf(stderr, " IPv4/v6 address filter tokens based on address/mask:\n"); fprintf(stderr, " [^]ipv4.addr=[]\n"); fprintf(stderr, " [^]ipv6.addr=[]\n"); fprintf(stderr, "\n"); fprintf(stderr, " IPv4/v6 address filter tokens based on address ranges (<=|<|>|>=):\n"); fprintf(stderr, " [^]ipv4.addr(<=|<|>|>=)\n"); fprintf(stderr, " [^]ipv6.addr(<=|<|>|>=)\n"); fprintf(stderr, "\n"); fprintf(stderr, " as alternative in case <|> creating problems also supported: =(le|lt|gt|ge)=:\n"); fprintf(stderr, " [^]ipv4.addr=(le|lt|gt|ge)=\n"); fprintf(stderr, " [^]ipv6.addr=(le|lt|gt|ge)=\n"); fprintf(stderr, "\n"); fprintf(stderr, " EUI-48/MAC address filter tokens:\n"); fprintf(stderr, " "); fprintf(stderr, " IMPLEMENTATION MISSING"); fprintf(stderr, "\n"); fprintf(stderr, "\n"); fprintf(stderr, " EUI-64 address filter tokens:\n"); fprintf(stderr, " "); fprintf(stderr, " IMPLEMENTATION MISSING"); fprintf(stderr, "\n"); break; case ACTION_test: fprintf(stderr, " Test given address(es) against supported tests:\n"); fprintf(stderr, " --test_prefix : inside a prefix\n"); fprintf(stderr, " --test_gt|--test_ge
: greater(/equal) than an address\n"); fprintf(stderr, " --test_lt|--test_le
: less(/equal) than an address\n"); fprintf(stderr, "\n"); fprintf(stderr, " Test given address(es) from stdin, e.g.\n"); fprintf(stderr, " echo '2001:db8::1' | ipv6calc [-A test] --test_prefix 2001:db8::/32\n"); fprintf(stderr, " echo '2001:db8::1' | ipv6calc [-A test] --test_prefix 2001:db9::/32\n"); fprintf(stderr, "\n"); fprintf(stderr, " Single address test, return code: 0=inside/matching 1=outside/not-matching 2=uncomparable\n"); fprintf(stderr, " ipv6calc [-A test] --test_prefix 2001:db8::/32 2001:db8::1\n"); fprintf(stderr, " ipv6calc [-A test] --test_prefix 2001:db9::/32 2001:db8::1\n"); fprintf(stderr, " ipv6calc [-A test] --test_ge 2001:db8:: --test_le 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff 2001:db8::1\n"); fprintf(stderr, " ipv6calc [-A test] --test_ge 2001:db9:: --test_le 2001:db9:ffff:ffff:ffff:ffff:ffff:ffff 2001:db8::1\n"); fprintf(stderr, " ipv6calc [-A test] --test_ge 2001:db9:: --test_lt 2001:dba:: 2001:db8::1\n"); fprintf(stderr, " ipv6calc [-A test] --test_ge 2001:db8:: --test_lt 2001:db9:: 2001:db8::1\n"); fprintf(stderr, "\n"); break; case ACTION_addr_to_countrycode: fprintf(stderr, " Convert given IPv4/IPv6 address to country code\n"); fprintf(stderr, " --addr2cc|-A addr2cc
\n"); fprintf(stderr, "\n"); fprintf(stderr, " Examples:\n"); fprintf(stderr, " ipv6calc -A addr2cc 50.60.70.80\n"); fprintf(stderr, " US\n"); fprintf(stderr, "\n"); fprintf(stderr, " Example for address which has no country code:\n"); fprintf(stderr, " (reason is only displayed in non-quiet mode)\n"); fprintf(stderr, " ipv6calc -A addr2cc 2001:db8::1\n"); fprintf(stderr, " -- (unknown)\n"); fprintf(stderr, "\n"); fprintf(stderr, " Example in case no related database is available:\n"); fprintf(stderr, " (reason is only displayed in non-quiet mode)\n"); fprintf(stderr, " ipv6calc -A addr2cc 50.60.70.80\n"); fprintf(stderr, " -- (no-usable-database)\n"); fprintf(stderr, "\n"); break; case ACTION_db_dump: fprintf(stderr, " Dump (supported) databases depending on selector\n"); fprintf(stderr, " ipv6calc -A dbdump -E [--print-ipset ]\n"); fprintf(stderr, "\n"); fprintf(stderr, " See '-O ipv4 -h' or '-O ipv6 -h' for optional output modifications\n"); fprintf(stderr, " See '-E -h' for available filter\n"); fprintf(stderr, " Use '-q --print-ipset ' to generate 'ipset restore' compatible format\n"); fprintf(stderr, " Supported and autoselected database: External (only so far)\n"); break; }; }; /*************************** * verbose feature information * *************************/ /* display features in verbose mode */ void ipv6calc_print_features_verbose(const int level_verbose) { char string[IPV6CALC_STRING_MAX] = ""; libipv6calc_db_wrapper_capabilities(string, sizeof(string)); fprintf(stderr, "Capabilities: %s\n\n", string); fprintf(stderr, "Internal main library version: %s API: %s (%s)\n" , libipv6calc_lib_version_string() , libipv6calc_api_version_string() #ifdef SHARED_LIBRARY , "shared" #else // SHARED_LIBRARY , "built-in" #endif // SHARED_LIBRARY ); fprintf(stderr, "Internal database library version: %s API: %s (%s)\n\n" , libipv6calc_db_lib_version_string() , libipv6calc_db_api_version_string() #ifdef SHARED_LIBRARY , "shared" #else // SHARED_LIBRARY , "built-in" #endif // SHARED_LIBRARY ); #if defined ENABLE_BUNDLED_MD5 || defined ENABLE_BUNDLED_GETOPT fprintf(stderr, "Bundled with:"); #ifdef ENABLE_BUNDLED_MD5 fprintf(stderr, " MD5"); #endif #ifdef ENABLE_BUNDLED_GETOPT fprintf(stderr, " GETOPT"); #endif fprintf(stderr, "\n\n"); #endif #if defined ENABLE_OPENSSL_EVP_MD5 fprintf(stderr, "Linked MD5 implementation: OpenSSL EVP MD5\n\n"); #endif #if defined ENABLE_OPENSSL_MD5 fprintf(stderr, "Linked MD5 implementation: OpenSSL legacy MD5\n\n"); #endif fprintf(stderr, "Compiled: %s %s\n\n", __DATE__, __TIME__); libipv6calc_db_wrapper_print_features_verbose(level_verbose); }; ipv6calc-4.1.0/lib/ipv6calchelp.h000066400000000000000000000034571444154247200165420ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6calchelp.h * Version : $Id: 6ac3fcaae609ac192676422e31069b771d15f859 $ * Copyright : 2002-2019 by Peter Bieringer * * Information: * Header file for ipv6calchelp.c */ #include "ipv6calc_inttypes.h" #include "ipv6calcoptions.h" #ifndef _ipv6calchelp_h #define _ipv6calchelp_h 1 #define IPV6CALC_HELP_GEOIP 0x0010 #define IPV6CALC_HELP_IP2LOCATION 0x0020 #define IPV6CALC_HELP_DBIP 0x0040 #define IPV6CALC_HELP_EXTERNAL 0x0080 #define IPV6CALC_HELP_BUILTIN 0x0100 #define IPV6CALC_HELP_MMDB 0x0200 #define IPV6CALC_HELP_ALL 0xffff #define IPV6CALC_HELP_BASIC 0x0000 #define IPV6CALC_HELP_QUIET 0x0001 #endif /* defined in each main program */ extern void printhelp_info(void); extern void printhelp_copyright(void); extern void printhelp_version(void); /* defined in ipv6calchelp.c */ /* extern void printhelp_print(void); */ /* extern void printhelp_mask(void); */ /* extern void printhelp_case(void); */ /* extern void printhelp_printstartend(void); */ extern void printhelp_doublecommands(void); extern void printhelp_missinginputdata(void); extern void printhelp_inputtypes(const uint32_t formatoptions); extern void printhelp_outputtypes(const uint32_t inputtype, const uint32_t formatoptions); extern void printhelp_actiontypes(const uint32_t formatoptions, const struct option longopts[]); extern void printhelp_common(const uint32_t help_features); extern void printhelp_shortcut_options(const struct option longopts[], const s_ipv6calc_longopts_shortopts_map longopts_shortopts_map[]); extern void printhelp_output_dispatcher(const uint32_t outputtype, const uint32_t inputtype); extern void printhelp_action_dispatcher(const uint32_t action, const int embedded); extern void ipv6calc_print_features_verbose(const int level_vebose); ipv6calc-4.1.0/lib/ipv6calcoptions.c000066400000000000000000000412711444154247200172740ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6calcoptions.c * Version : $Id: 5bdb1c99653c66beede3e9d5d4e50d835a1ebe7c $ * Copyright : 2013-2019 by Peter Bieringer * * Information: * supporting common options */ #include #include #include #include "config.h" #include "libipv6calc.h" #include "libipv6calcdebug.h" #include "ipv6calcoptions.h" #include "ipv6calcoptions_common.h" #include "libipv6calc_db_wrapper.h" extern long int ipv6calc_debug; // ipv6calc_debug usage ok int ipv6calc_quiet = 0; int ipv6calc_verbose = 0; /* parse value */ static long int parse_dec_hex_val(const char *string) { long int value; if ((strlen(string) > 2) && ((strncmp(string, "0x", 2) == 0) || (strncmp(string, "0X", 2)) == 0)) { // convert hex if (sscanf(string + 2, "%lx", &value) == 0) { ipv6calc_debug = 0; // ipv6calc_debug usage ok ERRORPRINT_WA("can't parse value for debug option: %s", string); }; } else { // convert dec if (sscanf(string, "%ld", &value) == 0) { ipv6calc_debug = 0; // ipv6calc_debug usage ok ERRORPRINT_WA("can't parse value for debug option: %s", string); }; }; return(value); }; /* bootstrap debug option from environment */ void ipv6calc_debug_from_env(void) { char *ipv6calc_debug_env; long int ipv6calc_debug_val; ipv6calc_debug_env = getenv("IPV6CALC_DEBUG"); if (ipv6calc_debug_env != NULL) { ERRORPRINT_WA("IPV6CALC_DEBUG found in environment: %s", ipv6calc_debug_env); ipv6calc_debug_val = parse_dec_hex_val(ipv6calc_debug_env); if (ipv6calc_debug_val != 0) { ipv6calc_debug = ipv6calc_debug_val; // ipv6calc_debug usage ok ERRORPRINT_WA("IPV6CALC_DEBUG proper parsed: %08lx", ipv6calc_debug); // ipv6calc_debug usage ok }; }; }; /* * add given options * hard exit code in case of troubles: 2 */ void ipv6calc_options_add(char *shortopts_p, const int shortopts_maxlen, struct option longopts[], int *maxentries_p, const char *shortopts_custom, const struct option longopts_custom[], const int longopts_custom_entries) { int i, l; unsigned int j, k; char tempstring[IPV6CALC_STRING_MAX]; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Called: longopts_custom_entries=%d shortopts=%s", longopts_custom_entries, shortopts_p); if (*maxentries_p + longopts_custom_entries >= (IPV6CALC_MAXLONGOPTIONS - 1)) { fprintf(stderr, "FATAL error, can't add options - FIX CODE by increasing IPV6CALC_MAXLONGOPTIONS\n"); exit(2); }; for (i = 0; i < longopts_custom_entries; i++) { /* check for duplicates */ for (l = 0; l < *maxentries_p; l++) { if (strcmp(longopts[l].name, longopts_custom[i].name) == 0) { fprintf(stderr, "FATAL error, can't add options - DUPLICATE NAME FOUND: l=%d/%s i=%d/%s\n", l, longopts[l].name, i, longopts_custom[i].name); exit(2); }; }; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Add long option on position %d/%d: %s", *maxentries_p, i, longopts_custom[i].name); longopts[*maxentries_p] = longopts_custom[i]; (*maxentries_p)++; }; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Add short options: %s", shortopts_custom); /* check for duplicates */ if (strlen(shortopts_p) > 0) { DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Already given short options: %s", shortopts_p); for (j = 0; j < strlen(shortopts_p); j++) { for (k = 0; k < strlen(shortopts_custom); k++) { if (shortopts_custom[k] == ':') { continue; }; if (shortopts_p[j] == shortopts_custom[k]) { fprintf(stderr, "FATAL error, can't add short options - DUPLICATE CHAR FOUND: %c\n", shortopts_p[j]); exit(2); }; }; }; } else { DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "Already given short options: (empty)"); }; snprintf(tempstring, sizeof(tempstring), "%s%s", shortopts_p, shortopts_custom); snprintf(shortopts_p, shortopts_maxlen, "%s", tempstring); DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Resulting short options: %s", shortopts_p); // end of options longopts[*maxentries_p].name = NULL; longopts[*maxentries_p].has_arg = 0; longopts[*maxentries_p].flag = NULL; longopts[*maxentries_p].val = 0; /* TODO: implement strlen checks */ DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "Return"); return; }; /* * add given options "common basic" */ void ipv6calc_options_add_common_basic(char *shortopts_p, const int shortopts_maxlen, struct option longopts[], int *maxentries_p) { DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "Called"); ipv6calc_options_add(shortopts_p, shortopts_maxlen, longopts, maxentries_p, ipv6calc_shortopts_common, ipv6calc_longopts_common, MAXENTRIES_ARRAY(ipv6calc_longopts_common)); #ifdef SUPPORT_MMDB DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "SUPPORT_MMDB"); ipv6calc_options_add(shortopts_p, shortopts_maxlen, longopts, maxentries_p, ipv6calc_shortopts_mmdb, ipv6calc_longopts_mmdb, MAXENTRIES_ARRAY(ipv6calc_longopts_mmdb)); #endif #ifdef SUPPORT_IP2LOCATION DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "SUPPORT_IP2LOCATION"); ipv6calc_options_add(shortopts_p, shortopts_maxlen, longopts, maxentries_p, ipv6calc_shortopts_ip2location, ipv6calc_longopts_ip2location, MAXENTRIES_ARRAY(ipv6calc_longopts_ip2location)); #endif #ifdef SUPPORT_GEOIP2 DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "SUPPORT_GEOIP2"); ipv6calc_options_add(shortopts_p, shortopts_maxlen, longopts, maxentries_p, ipv6calc_shortopts_geoip2, ipv6calc_longopts_geoip2, MAXENTRIES_ARRAY(ipv6calc_longopts_geoip2)); #endif #ifdef SUPPORT_DBIP2 DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "SUPPORT_DBIP2"); ipv6calc_options_add(shortopts_p, shortopts_maxlen, longopts, maxentries_p, ipv6calc_shortopts_dbip2, ipv6calc_longopts_dbip2, MAXENTRIES_ARRAY(ipv6calc_longopts_dbip2)); #endif #ifdef SUPPORT_EXTERNAL DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "SUPPORT_EXTERNAL"); ipv6calc_options_add(shortopts_p, shortopts_maxlen, longopts, maxentries_p, ipv6calc_shortopts_external, ipv6calc_longopts_external, MAXENTRIES_ARRAY(ipv6calc_longopts_external)); #endif #ifdef SUPPORT_BUILTIN DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "SUPPORT_BUILTIN"); ipv6calc_options_add(shortopts_p, shortopts_maxlen, longopts, maxentries_p, ipv6calc_shortopts_builtin, ipv6calc_longopts_builtin, MAXENTRIES_ARRAY(ipv6calc_longopts_builtin)); #endif #if defined SUPPORT_EXTERNAL || SUPPORT_IP2LOCATION || defined SUPPORT_DBIP2 || defined SUPPORT_GEOIP2 DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "DB_COMMON"); ipv6calc_options_add(shortopts_p, shortopts_maxlen, longopts, maxentries_p, ipv6calc_shortopts_db_common, ipv6calc_longopts_db_common, MAXENTRIES_ARRAY(ipv6calc_longopts_db_common)); #endif DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "Finished"); }; /* * add given options "common anon" */ void ipv6calc_options_add_common_anon(char *shortopts_p, const int shortopts_maxlen, struct option longopts[], int *maxentries_p) { DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "Called"); ipv6calc_options_add(shortopts_p, shortopts_maxlen, longopts, maxentries_p, ipv6calc_shortopts_common_anon, ipv6calc_longopts_common_anon, MAXENTRIES_ARRAY(ipv6calc_longopts_common_anon)); DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "Finished"); }; /* * call option handler "common basic" * return: 0: option found */ int ipv6calcoptions_common_basic(const int opt, const char *optarg, const struct option longopts[]) { int result = -1; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Called opt=0x%08x", opt); /* general options */ switch(opt) { case OPTION_NOOP: DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "Found dummy option, skip"); result = 0; break; case 'd': DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Found debug option with value: %s", optarg); ipv6calc_debug = parse_dec_hex_val(optarg); ERRORPRINT_WA("given debug value: %lx", ipv6calc_debug); result = 0; break; case 'q': DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "Found quiet option"); ipv6calc_quiet = 1; result = 0; break; case 'V': DEBUGPRINT_NA(DEBUG_ipv6calcoptions, "Found verbose option"); ipv6calc_verbose++; ipv6calc_quiet = 0; result = 0; break; default: /* jump to other parsers */ DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Call sub-parser for opt=0x%08x", opt); result = libipv6calc_db_wrapper_options(opt, optarg, longopts); }; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Return with result: %d", result); return(result); }; /* * call option handler "common anon" * return: 0: option found */ int ipv6calcoptions_common_anon(const int opt, const char *optarg, const struct option longopts[], s_ipv6calc_anon_set *ipv6calc_anon_set_p) { int result = -1, i; int mask_ipv4; int mask_ipv6; int mask_eui64; int mask_mac; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Called opt=0x%08x", opt); if (sizeof (*longopts) == 0) { }; // make compiler happy (avoid unused "...") /* general options */ switch(opt) { case CMD_ANON_MASK_AUTOADJUST: if (strcmp(optarg, "yes") == 0) { i = 1; } else if (strcmp(optarg, "no") == 0) { i = 0; } else { fprintf(stderr, " unsupported value for option 'mask-autoadjust', only yes|no is supported\n"); exit(EXIT_FAILURE); }; if (ipv6calc_anon_set_p->mask_autoadjust != i) { ipv6calc_anon_set_p->mask_autoadjust = i; snprintf(ipv6calc_anon_set_p->name, sizeof(ipv6calc_anon_set_p->name), "%s", "custom"); }; result = 0; break; case CMD_ANON_MASK_IID: case CMD_ANON_MASK_EUI64: if (opt == CMD_ANON_MASK_IID) { fprintf(stderr, " option 'mask-iid' is deprecated, please use 'mask-eui64'\n"); }; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Found option: mask-eui=%s", optarg); mask_eui64 = atoi(optarg); if (mask_eui64 < 0 || mask_eui64 > 64) { fprintf(stderr, " value for option 'mask-eui64' out-of-range [0-64]\n"); exit(EXIT_FAILURE); }; if (ipv6calc_anon_set_p->mask_eui64 != mask_eui64) { ipv6calc_anon_set_p->mask_eui64 = mask_eui64; snprintf(ipv6calc_anon_set_p->name, sizeof(ipv6calc_anon_set_p->name), "%s", "custom"); }; result = 0; break; case CMD_ANON_MASK_IPV4: DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Found option: mask-ipv4=%s", optarg); mask_ipv4 = atoi(optarg); if (mask_ipv4 < 0 || mask_ipv4 > 32) { fprintf(stderr, " value for option 'mask-ipv4' out-of-range [0-32]\n"); exit(EXIT_FAILURE); }; if (ipv6calc_anon_set_p->mask_ipv4 != mask_ipv4) { ipv6calc_anon_set_p->mask_ipv4 = mask_ipv4; snprintf(ipv6calc_anon_set_p->name, sizeof(ipv6calc_anon_set_p->name), "%s", "custom"); }; result = 0; break; case CMD_ANON_MASK_IPV6: DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Found option: mask-ipv6=%s", optarg); mask_ipv6 = atoi(optarg); if (mask_ipv6 < 0 || mask_ipv6 > 64) { fprintf(stderr, " value for option 'mask-ipv6' out-of-range [0-64]\n"); exit(EXIT_FAILURE); }; if (ipv6calc_anon_set_p->mask_ipv6 != mask_ipv6) { ipv6calc_anon_set_p->mask_ipv6 = mask_ipv6; snprintf(ipv6calc_anon_set_p->name, sizeof(ipv6calc_anon_set_p->name), "%s", "custom"); }; result = 0; break; case CMD_ANON_MASK_MAC: mask_mac = atoi(optarg); if (mask_mac < 0 || mask_mac > 48) { fprintf(stderr, " value for option 'mask-mac' out-of-range [0-48]\n"); exit(EXIT_FAILURE); }; if (ipv6calc_anon_set_p->mask_mac != mask_mac) { ipv6calc_anon_set_p->mask_mac = mask_mac; snprintf(ipv6calc_anon_set_p->name, sizeof(ipv6calc_anon_set_p->name), "%s", "custom"); }; result = 0; break; case CMD_ANON_PRESET_STANDARD: result = libipv6calc_anon_set_by_name(ipv6calc_anon_set_p, "as"); if (result != 0) { fprintf(stderr, "ipv6calc anonymization preset not found: anonymize-standard\n"); exit(EXIT_FAILURE); }; break; case CMD_ANON_PRESET_CAREFUL: result = libipv6calc_anon_set_by_name(ipv6calc_anon_set_p, "ac"); if (result != 0) { fprintf(stderr, "ipv6calc anonymization preset not found: anonymize-careful\n"); exit(EXIT_FAILURE); }; result = 0; break; case CMD_ANON_PRESET_PARANOID: result = libipv6calc_anon_set_by_name(ipv6calc_anon_set_p, "ap"); if (result != 0) { fprintf(stderr, "ipv6calc anonymization preset not found: anonymize-paranoid\n"); exit(EXIT_FAILURE); }; result = 0; break; case CMD_ANON_PRESET_OPTION: result = libipv6calc_anon_set_by_name(ipv6calc_anon_set_p, optarg); if (result != 0) { fprintf(stderr, "ipv6calc anonymization preset not found: %s\n", optarg); exit(EXIT_FAILURE); }; result = 0; break; case CMD_ANON_METHOD_OPTION: for (i = 0; i < ipv6calc_anon_methods_entries; i++) { if (strcmp(ipv6calc_anon_methods[i].name, optarg) == 0) { ipv6calc_anon_set_p->method = ipv6calc_anon_methods[i].method; snprintf(ipv6calc_anon_set_p->name, sizeof(ipv6calc_anon_set_p->name), "%s", "custom"); break; }; }; if (i == ipv6calc_anon_methods_entries) { fprintf(stderr, "anonymization method not supported: %s\n", optarg); exit(EXIT_FAILURE); }; result = 0; break; }; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Return with result: %d", result); return(result); }; /* get option name for an option * in : opt * ret: char* to string */ const char *ipv6calcoption_name(const int opt, const struct option longopts[]) { int i = 0; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Called opt=%d", opt); while (longopts[i].name != NULL) { if (opt == longopts[i].val) { return(longopts[i].name); }; i++; }; return("UNKNOWN"); }; /* get common options from environment */ void ipv6calc_common_options_from_env(const struct option longopts[], s_ipv6calc_anon_set *ipv6calc_anon_set_p) { int i, result; unsigned int s; char tempstring[IPV6CALC_STRING_MAX]; char *environment_value; i = 0; while(longopts[i].name != NULL) { // convert long option name to environment name snprintf(tempstring, sizeof(tempstring), "IPV6CALC_%s", longopts[i].name); for (s = 0; s < strlen(tempstring); s++) { switch(tempstring[s]) { case '-': tempstring[s] = '_'; break; default: tempstring[s] = toupper(tempstring[s]); break; }; }; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "Long option: %s/%d/%08x env=%s", longopts[i].name, longopts[i].has_arg, longopts[i].val, tempstring); environment_value = getenv(tempstring); if (environment_value != NULL) { DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "found in environment: %s=%s (%08x)", tempstring, environment_value, longopts[i].val); if (longopts[i].has_arg == 0) { if ( (strcasecmp(environment_value, "no") == 0) || (strcasecmp(environment_value, "off") == 0) || (strcasecmp(environment_value, "0") == 0) ) { goto NEXT_in_environment; // skip }; if ( (strcasecmp(environment_value, "yes") != 0) && (strcasecmp(environment_value, "on") != 0) && (strcasecmp(environment_value, "1") != 0) ) { fprintf(stderr, "value for environment can only be yes|on|1 or no|off|0: %s=%s\n", tempstring, environment_value); exit(EXIT_FAILURE); }; }; result = ipv6calcoptions_common_basic(longopts[i].val, environment_value, longopts); if (result == 0) { // found goto NEXT_in_environment; }; if (ipv6calc_anon_set_p != NULL) { result = ipv6calcoptions_common_anon(longopts[i].val, environment_value, longopts, ipv6calc_anon_set_p); if (result == 0) { // found goto NEXT_in_environment; }; }; }; NEXT_in_environment: i++; }; }; /* * set a particular (common) option by name/value * in : longopts, name, value, ipv6calc_anon_set_p * out: 0: found/set <>0: not found */ int ipv6calc_set_option(const struct option longopts[], const char *name, const char *value, s_ipv6calc_anon_set *ipv6calc_anon_set_p) { int i, result = -1; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "called with option: %s=%s", name, value); i = 0; while(longopts[i].name != NULL) { DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "check option: %s/%d/%08x", longopts[i].name, longopts[i].has_arg, longopts[i].val); if (strcmp(name, longopts[i].name) != 0) { // no match goto NEXT_option; }; DEBUGPRINT_WA(DEBUG_ipv6calcoptions, "found option: %s=%s (%08x)", longopts[i].name, value, longopts[i].val); if ((longopts[i].has_arg == 0) && (value != NULL)) { // check value of toggle if ( (strcasecmp(value, "no") == 0) || (strcasecmp(value, "off") == 0) || (strcasecmp(value, "0") == 0) ) { // skip break; }; if ( (strcasecmp(value, "yes") != 0) && (strcasecmp(value, "on") != 0) && (strcasecmp(value, "1") != 0) ) { fprintf(stderr, "value for option can only be yes|on|1 or no|off|0: %s=%s\n", longopts[i].name, value); exit(EXIT_FAILURE); }; }; result = ipv6calcoptions_common_basic(longopts[i].val, value, longopts); if (result == 0) { // found break; }; if (ipv6calc_anon_set_p != NULL) { result = ipv6calcoptions_common_anon(longopts[i].val, value, longopts, ipv6calc_anon_set_p); if (result == 0) { // found break; }; }; NEXT_option: i++; }; return(result); }; ipv6calc-4.1.0/lib/ipv6calcoptions.h000066400000000000000000000034221444154247200172750ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6calcoptions.h * Version : $Id: e7ebcee1bbc43b1111157ec4b3c84162faacf7dc $ * Copyright : 2002-2015 by Peter Bieringer * * Information: * Header file containing options */ #include #include #ifndef _ipv6calcoptions_h_ #define _ipv6calcoptions_h_ #include "ipv6calctypes.h" #include "ipv6calccommands.h" #define IPV6CALC_MAXLONGOPTIONS 128 /* map between longopts and shortopts */ typedef struct { const char c; const int val; const char *info; } s_ipv6calc_longopts_shortopts_map; #endif extern int ipv6calc_quiet; extern void ipv6calc_debug_from_env(void); extern void ipv6calc_common_options_from_env(const struct option longopts[], s_ipv6calc_anon_set *ipv6calc_anon_set_p); extern int ipv6calc_set_option(const struct option longopts[], const char *name, const char *value, s_ipv6calc_anon_set *ipv6calc_anon_set_p); extern const char *ipv6calcoption_name(const int opt, const struct option longopts_p[]); extern int ipv6calcoptions_common_basic(const int opt, const char *optarg, const struct option longopts[]); extern int ipv6calcoptions_common_anon(const int opt, const char *optarg, const struct option longopts[], s_ipv6calc_anon_set *ipv6calc_anon_set_p); extern void ipv6calc_options_add(char *shortopts_p, const int shortopts_maxlen, struct option longopts[], int *maxentries_p, const char *shortopts_custom, const struct option longopts_custom[], const int longopts_custom_entries); extern void ipv6calc_options_add_common_anon(char *shortopts_p, const int shortopts_maxlen, struct option longopts[], int *maxentries_p); extern void ipv6calc_options_add_common_basic(char *shortopts_p, const int shortopts_maxlen, struct option longopts[], int *maxentries_p); ipv6calc-4.1.0/lib/ipv6calcoptions_common.h000066400000000000000000000161551444154247200206540ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6calcoptions.h * Version : $Id: 147da5a50902b61a09f58504ba5347b94ae318af $ * Copyright : 2013-2020 by Peter Bieringer * * Information: * Header file containing options */ #include #include /* Options */ /* define short options * d = debug value */ /* define common short options */ static char *ipv6calc_shortopts_common = "d:qV"; /* define common long options */ static struct option ipv6calc_longopts_common[] = { {"debug" , 1, NULL, (int) 'd' }, {"quiet" , 0, NULL, (int) 'q' }, {"verbose", 0, NULL, (int) 'V' }, /* dummy catch if support is not compiled in */ #ifndef SUPPORT_IP2LOCATION {"disable-ip2location" , 0, NULL, OPTION_NOOP }, {"db-ip2location-disable" , 0, NULL, OPTION_NOOP }, #endif /* GeoIP(legacy) database options (EOS since 3.0.0, TODO remove 4.0.0) */ {"db-geoip" , 1, NULL, DB_EOS_geoip_ipv4 }, {"db-geoip-ipv4" , 1, NULL, DB_EOS_geoip_ipv4 }, {"db-geoip-ipv6" , 1, NULL, DB_EOS_geoip_ipv6 }, {"db-geoip-default" , 0, NULL, (int) 'G' }, {"db-geoip-ipv4-default" , 0, NULL, DB_EOS_geoip_ipv4_default }, {"db-geoip-ipv6-default" , 0, NULL, DB_EOS_geoip_ipv6_default }, {"disable-geoip" , 0, NULL, DB_EOS_geoip_disable }, {"db-geoip-disable" , 0, NULL, DB_EOS_geoip_disable }, {"db-geoip-dir" , 1, NULL, DB_EOS_geoip_dir }, {"db-geoip-lib" , 1, NULL, DB_EOS_geoip_lib }, #ifndef SUPPORT_GEOIP2 {"disable-geoip2" , 0, NULL, OPTION_NOOP }, {"db-geoip2-disable" , 0, NULL, OPTION_NOOP }, #endif /* db-ip.com(BerkeleyDB) database options (EOS since 3.0.0, TODO remove 4.0.0) */ {"disable-dbip" , 0, NULL, DB_EOS_dbip_disable }, {"db-dbip-disable" , 0, NULL, DB_EOS_dbip_disable }, {"db-dbip-dir" , 1, NULL, DB_EOS_dbip_dir }, {"db-dbip-comm-to-free-switch-min-delta-months", 1, NULL, DB_EOS_dbip_comm_to_free_switch_min_delta_months }, {"db-dbip-only-type", 1, NULL, DB_EOS_dbip_only_type }, #ifndef SUPPORT_DBIP2 {"disable-dbip2" , 0, NULL, OPTION_NOOP }, {"db-dbip2-disable" , 0, NULL, OPTION_NOOP }, #endif #ifndef SUPPORT_EXTERNAL {"disable-external" , 0, NULL, OPTION_NOOP }, {"db-external-disable" , 0, NULL, OPTION_NOOP }, #endif #ifndef SUPPORT_BUILTIN {"disable-builtin" , 0, NULL, OPTION_NOOP }, {"db-builtin-disable" , 0, NULL, OPTION_NOOP }, #endif }; #ifdef SUPPORT_IP2LOCATION static char *ipv6calc_shortopts_ip2location = "L"; static struct option ipv6calc_longopts_ip2location[] = { /* database options (EOS since 3.0.0, TODO remove in 4.0.0) */ {"db-ip2location-ipv4" , 1, NULL, DB_EOS_ip2location_ipv4 }, {"db-ip2location-ipv6" , 1, NULL, DB_EOS_ip2location_ipv6 }, {"db-ip2location-default" , 0, NULL, (int) 'L' }, {"db-ip2location-ipv4-default" , 0, NULL, DB_EOS_geoip_ipv4_default }, {"db-ip2location-ipv6-default" , 0, NULL, DB_EOS_geoip_ipv6_default }, /* database options (new) */ {"disable-ip2location" , 0, NULL, DB_ip2location_disable }, {"db-ip2location-disable" , 0, NULL, DB_ip2location_disable }, {"db-ip2location-dir" , 1, NULL, DB_ip2location_dir }, /* database selection control */ {"db-ip2location-lite-to-sample-autoswitch-max-delta-months", 1, NULL, DB_ip2location_lite_to_sample_autoswitch_max_delta_months }, {"db-ip2location-comm-to-lite-switch-min-delta-months", 1, NULL, DB_ip2location_comm_to_lite_switch_min_delta_months }, {"db-ip2location-only-type", 1, NULL, DB_ip2location_only_type }, {"db-ip2location-allow-softlinks", 0, NULL, DB_ip2location_allow_softlinks }, #ifdef SUPPORT_IP2LOCATION_DYN {"db-ip2location-lib" , 1, NULL, DB_ip2location_lib }, #endif // SUPPORT_IP2LOCATION_DYN }; #endif // SUPPORT_IP2LOCATION #ifdef SUPPORT_GEOIP2 static char *ipv6calc_shortopts_geoip2 = ""; static struct option ipv6calc_longopts_geoip2[] = { {"disable-geoip2" , 0, NULL, DB_geoip2_disable }, {"db-geoip2-disable" , 0, NULL, DB_geoip2_disable }, {"db-geoip2-dir" , 1, NULL, DB_geoip2_dir }, }; #endif // SUPPORT_GEOIP2 #ifdef SUPPORT_MMDB static char *ipv6calc_shortopts_mmdb = "M"; static struct option ipv6calc_longopts_mmdb[] = { /* database options */ {"disable-mmdb" , 0, NULL, DB_mmdb_disable }, {"db-mmdb-disable" , 0, NULL, DB_mmdb_disable }, #ifdef SUPPORT_MMDB_DYN {"db-mmdb-lib" , 1, NULL, DB_mmdb_lib }, #endif // SUPPORT_MMDB_DYN }; #endif // SUPPORT_MMDB #ifdef SUPPORT_DBIP2 static char *ipv6calc_shortopts_dbip2 = ""; static struct option ipv6calc_longopts_dbip2[] = { {"disable-dbip2" , 0, NULL, DB_dbip2_disable }, {"db-dbip2-disable" , 0, NULL, DB_dbip2_disable }, {"db-dbip2-dir" , 1, NULL, DB_dbip2_dir }, {"db-dbip2-comm-to-free-switch-min-delta-months", 1, NULL, DB_dbip2_comm_to_free_switch_min_delta_months }, {"db-dbip2-only-type", 1, NULL, DB_dbip2_only_type }, }; #endif // SUPPORT_DBIP2 #ifdef SUPPORT_EXTERNAL static char *ipv6calc_shortopts_external = ""; static struct option ipv6calc_longopts_external[] = { {"disable-external" , 0, NULL, DB_external_disable }, {"db-external-disable" , 0, NULL, DB_external_disable }, {"db-external-dir" , 1, NULL, DB_external_dir }, }; #endif // SUPPORT_EXTERNAL #ifdef SUPPORT_BUILTIN static char *ipv6calc_shortopts_builtin = ""; static struct option ipv6calc_longopts_builtin[] = { {"disable-builtin" , 0, NULL, DB_builtin_disable }, {"db-builtin-disable" , 0, NULL, DB_builtin_disable }, }; #endif // SUPPORT_BUILTIN #if defined SUPPORT_EXTERNAL || defined SUPPORT_DBIP || defined SUPPORT_GEOIP || SUPPORT_IP2LOCATION || defined SUPPORT_MMDB || defined SUPPORT_GEOIP2 || defined SUPPORT_DBIP2 static char *ipv6calc_shortopts_db_common = ""; static struct option ipv6calc_longopts_db_common[] = { {"db-priorization" , 1, NULL, DB_common_priorization }, }; #endif /* define common anonymization short options */ static char *ipv6calc_shortopts_common_anon = ""; /* define common anonymization long options */ static struct option ipv6calc_longopts_common_anon[] = { { "anonymize-standard" , 0, NULL, CMD_ANON_PRESET_STANDARD }, { "anonymize-careful" , 0, NULL, CMD_ANON_PRESET_CAREFUL }, { "anonymize-paranoid" , 0, NULL, CMD_ANON_PRESET_PARANOID }, { "anonymize-preset" , 1, NULL, CMD_ANON_PRESET_OPTION }, { "ap" , 1, NULL, CMD_ANON_PRESET_OPTION }, { "anonymize-method" , 1, NULL, CMD_ANON_METHOD_OPTION }, { "mask-ipv4" , 1, NULL, CMD_ANON_MASK_IPV4 }, { "mask-ipv6" , 1, NULL, CMD_ANON_MASK_IPV6 }, { "mask-iid" , 1, NULL, CMD_ANON_MASK_IID }, { "mask-eui64" , 1, NULL, CMD_ANON_MASK_EUI64 }, { "mask-mac" , 1, NULL, CMD_ANON_MASK_MAC }, { "mask-autoadjust" , 1, NULL, CMD_ANON_MASK_AUTOADJUST }, }; ipv6calc-4.1.0/lib/ipv6calctypes.c000066400000000000000000000356431444154247200167530ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6calctypes.c * Version : $Id: 3bcd3f920aa86e7abfd4d974998835530f123c7b $ * Copyright : 2002-2021 by Peter Bieringer * * Information: * Format and type handling */ #include #include #include "libipv6calc.h" #include "libipv6calcdebug.h" #include "ipv6calctypes.h" /* text representations */ const s_format ipv6calc_formatstrings[] = { { FORMAT_auto , "auto" , "automatic detection", "" }, { FORMAT_revnibbles_int , "revnibbles.int" , "dot separated nibbles reverse, ending with ip6.int.", "" }, { FORMAT_revnibbles_arpa, "revnibbles.arpa", "dot separated nibbles reverse, ending with ip6.arpa.", "" }, { FORMAT_bitstring , "bitstring" , "bitstring labes, ending with ip6.arpa.", "" }, { FORMAT_ipv6addr , "ipv6addr" , "IPv6 address", "ipv6" }, { FORMAT_ipv4addr , "ipv4addr" , "IPv4 address", "ipv4" }, { FORMAT_mac , "mac" , "MAC address (48 bits)", "eui48" }, { FORMAT_eui64 , "eui64" , "EUI-64 identifier (64 bits)", "" }, { FORMAT_base85 , "base85" , "Base-85 string", "" }, { FORMAT_ifinet6 , "ifinet6" , "Like line in /proc/net/if_inet6", "" }, { FORMAT_iid , "iid" , "Interface identifier", "" }, { FORMAT_iid_token , "iid+token" , "Interface identifier and token", "" }, { FORMAT_addrtype , "addrtype" , "Address type", "" }, { FORMAT_ouitype , "ouitype" , "OUI (IEEE) type", "" }, { FORMAT_ipv6addrtype , "ipv6addrtype" , "IPv6 address type", "" }, { FORMAT_ipv6logconv , "ipv6logconv" , "ipv6logconv (currently not supported)", "" }, { FORMAT_any , "any" , "any type (currently not supported)", "" }, { FORMAT_revipv4 , "revipv4" , "reverse IPv4, ending with in-addr.arpa", "" }, { FORMAT_ipv4hex , "ipv4hex" , "IPv4 in hexadecimal format", "" }, { FORMAT_ipv4revhex , "ipv4revhex" , "IPv4 in byte-reversed hexadecimal format", "" }, { FORMAT_octal , "octal" , "IP address in escaped octal format", "" }, { FORMAT_hex , "hex" , "IP address in hexadecimal format", "" }, { FORMAT_ipv6literal , "ipv6literal" , "IPv6 address in literal", "" }, { FORMAT_ipv6rd , "ipv6rd" , "IPv6 Rapid Deployment address", "" }, { FORMAT_ipv6to4 , "ipv6to4" , "IPv6 address based on 6to4 converted IPv4 address", "" }, { FORMAT_prefix_mac , "prefix+mac" , "IPv6 prefix and a MAC address", "" }, { FORMAT_asn , "asn" , "Autonomous System Number", "" }, }; const int ipv6calc_formatstrings_entries = MAXENTRIES_ARRAY(ipv6calc_formatstrings); const s_formatoption ipv6calc_formatoptionstrings[] = { { FORMATOPTION_printlowercase , "--lowercase|-l" , "Print output in lower case" }, { FORMATOPTION_printuppercase , "--uppercase|-u" , "Print output in upper case" }, { FORMATOPTION_printprefix , "--printprefix" , "Print only prefix" }, { FORMATOPTION_printsuffix , "--printsuffix" , "Print only suffix" }, { FORMATOPTION_maskprefix , "--maskprefix" , "Mask prefix bits (suffix set to 0)" }, { FORMATOPTION_masksuffix , "--masksuffix" , "Mask suffix bits (prefix set to 0)" }, { FORMATOPTION_printstart , "--printstart " , "Printing starts at bit " }, { FORMATOPTION_printend , "--printend " , "Printing ends at bit " }, { FORMATOPTION_printcompressed , "--printcompressed|-C" , "Print in compressed format" }, { FORMATOPTION_printuncompressed , "--printuncompressed|-U" , "Print in uncompressed format" }, { FORMATOPTION_printfulluncompressed , "--printfulluncompressed|-F" , "Print in full uncompressed format" }, { FORMATOPTION_machinereadable , "--machinereadable|-m" , "Print output machine readable" }, { FORMATOPTION_quiet , "--quiet|-q" , "Be more quiet" }, { FORMATOPTION_printmirrored , "--printmirrored" , "Print output mirrored" }, { FORMATOPTION_forceprefix , "--forceprefix ", "Force prefix to " }, { FORMATOPTION_print_iid_var , "--print-iid-var" , "IPv6 address IID variance"}, { FORMATOPTION_no_prefixlength , "--no-prefixlength" , "Don't print prefix length if given on input"}, { FORMATOPTION_print_octal , "--print-octal" , "Print IPv4 address in dot-separated octal notation"}, }; const int ipv6calc_formatoptionstrings_entries = MAXENTRIES_ARRAY(ipv6calc_formatoptionstrings); const s_action ipv6calc_actionstrings[] = { { ACTION_auto , "auto" , "Automatic selection of action (default)", "" }, { ACTION_mac_to_eui64 , "geneui64" , "Converts a MAC address to an EUI-64 address", "" }, { ACTION_ipv4_to_6to4addr , "conv6to4" , "Converts IPv4 address <-> 6to4 IPv6 address (prefix)", "" }, { ACTION_ipv4_to_nat64 , "convnat64" , "Converts IPv4 address <-> NAT64 IPv6 address", "" }, { ACTION_ipv6_to_mac , "ipv6tomac" , "Extracts MAC of an IPv6 address (if detected)", "" }, { ACTION_ipv6_to_eui64 , "ipv6toeui64" , "Extracts EUI64 of an IPv6 address (if detected)", "" }, { ACTION_iid_token_to_privacy , "genprivacyiid" , "Generates a privacy interface ID out of a given one (arg1) and a token (arg2)", "" }, { ACTION_prefix_mac_to_ipv6 , "prefixmac2ipv6" , "Generates an IPv6 address out of a prefix and a MAC address", "" }, { ACTION_anonymize , "anonymize" , "Anonymize IPv4/IPv6 address without loosing much information", "" }, { ACTION_6rd_local_prefix , "6rd_local_prefix", "Calculate the 6rd prefix from given IPv6 prefix (& relay prefix) and IPv4", "" }, { ACTION_6rd_extract_ipv4 , "6rd_extract_ipv4", "Extract from 6rd address the include IPv4 address", "" }, { ACTION_filter , "filter" , "Filter addresses related to filter options", "" }, { ACTION_test , "test" , "Test address against given prefix or address", "" }, { ACTION_addr_to_countrycode , "addr2cc" , "Converts IPv4/IPv6 address into Country Code", "" }, { ACTION_db_dump , "dbdump" , "Dump Database", "" }, }; const int ipv6calc_actionstrings_entries = MAXENTRIES_ARRAY(ipv6calc_actionstrings); /* Format conversion matrix */ const uint32_t ipv6calc_formatmatrix[][2] = { { FORMAT_auto , 0x5ff }, { FORMAT_revnibbles_int , 0x5ff }, { FORMAT_revnibbles_arpa, 0x5ff }, { FORMAT_bitstring , 0x5ff }, { FORMAT_ipv6addr , FORMAT_revnibbles_int | FORMAT_revnibbles_arpa | FORMAT_bitstring | FORMAT_ipv6addr | FORMAT_base85 | FORMAT_ifinet6 | FORMAT_octal | FORMAT_ipv6literal | FORMAT_hex }, { FORMAT_ipv6literal , FORMAT_revnibbles_int | FORMAT_revnibbles_arpa | FORMAT_bitstring | FORMAT_ipv6addr | FORMAT_base85 | FORMAT_ifinet6 | FORMAT_octal | FORMAT_ipv6literal }, { FORMAT_ipv4addr , FORMAT_ipv4addr | FORMAT_ipv6addr | FORMAT_revipv4 | FORMAT_ipv4hex | FORMAT_hex | FORMAT_ipv6to4 }, { FORMAT_ipv4hex , FORMAT_ipv4addr | FORMAT_ipv6addr | FORMAT_revipv4 | FORMAT_ipv4hex | FORMAT_hex | FORMAT_ipv6to4 }, { FORMAT_ipv4revhex , FORMAT_ipv4addr | FORMAT_ipv6addr | FORMAT_revipv4 | FORMAT_ipv4hex | FORMAT_ipv6to4 }, { FORMAT_mac , FORMAT_eui64 }, { FORMAT_eui64 , FORMAT_eui64 }, { FORMAT_base85 , FORMAT_base85 | FORMAT_ipv6addr | FORMAT_revnibbles_int | FORMAT_revnibbles_arpa | FORMAT_bitstring | FORMAT_ifinet6 }, { FORMAT_ifinet6 , FORMAT_base85 | FORMAT_ipv6addr | FORMAT_revnibbles_int | FORMAT_revnibbles_arpa | FORMAT_bitstring | FORMAT_ifinet6 }, { FORMAT_iid_token , FORMAT_iid_token }, { FORMAT_ipv6logconv , FORMAT_ipv6addrtype | FORMAT_addrtype | FORMAT_ouitype | FORMAT_any }, { FORMAT_prefix_mac , FORMAT_revnibbles_int | FORMAT_revnibbles_arpa | FORMAT_bitstring | FORMAT_ipv6addr | FORMAT_base85 | FORMAT_ifinet6 }, { FORMAT_asn , FORMAT_auto_noresult }, }; const int ipv6calc_formatmatrix_entries = MAXENTRIES_ARRAY(ipv6calc_formatmatrix); /* Possible format option map */ const uint32_t ipv6calc_outputformatoptionmap[][2] = { { FORMAT_revnibbles_int , FORMATOPTION_printlowercase | FORMATOPTION_printuppercase | FORMATOPTION_printprefix | FORMATOPTION_printsuffix | FORMATOPTION_maskprefix | FORMATOPTION_masksuffix | FORMATOPTION_printstart | FORMATOPTION_printend | FORMATOPTION_printmirrored }, { FORMAT_revnibbles_arpa, FORMATOPTION_printlowercase | FORMATOPTION_printuppercase | FORMATOPTION_printprefix | FORMATOPTION_printsuffix | FORMATOPTION_maskprefix | FORMATOPTION_masksuffix | FORMATOPTION_printstart | FORMATOPTION_printend | FORMATOPTION_printmirrored }, { FORMAT_revipv4, FORMATOPTION_printlowercase | FORMATOPTION_printuppercase | FORMATOPTION_printmirrored }, { FORMAT_bitstring , FORMATOPTION_printlowercase | FORMATOPTION_printuppercase | FORMATOPTION_printprefix | FORMATOPTION_printsuffix | FORMATOPTION_maskprefix | FORMATOPTION_masksuffix | FORMATOPTION_printstart | FORMATOPTION_printend }, { FORMAT_ipv6addr , FORMATOPTION_machinereadable | FORMATOPTION_printlowercase | FORMATOPTION_printuppercase | FORMATOPTION_printprefix | FORMATOPTION_printsuffix | FORMATOPTION_maskprefix | FORMATOPTION_masksuffix | FORMATOPTION_printcompressed | FORMATOPTION_printuncompressed | FORMATOPTION_printfulluncompressed | FORMATOPTION_forceprefix | FORMATOPTION_print_iid_var | FORMATOPTION_no_prefixlength}, { FORMAT_mac , FORMATOPTION_printlowercase | FORMATOPTION_printuppercase }, { FORMAT_eui64 , FORMATOPTION_printlowercase | FORMATOPTION_printuppercase }, { FORMAT_base85 , 0 }, { FORMAT_ifinet6 , 0 }, { FORMAT_ipv4addr , FORMATOPTION_machinereadable | FORMATOPTION_no_prefixlength | FORMATOPTION_forceprefix | FORMATOPTION_maskprefix | FORMATOPTION_masksuffix | FORMATOPTION_printcompressed | FORMATOPTION_printuncompressed | FORMATOPTION_printfulluncompressed | FORMATOPTION_print_octal }, { FORMAT_iid_token , FORMATOPTION_printlowercase | FORMATOPTION_printuppercase }, { FORMAT_octal , FORMATOPTION_printfulluncompressed }, { FORMAT_ipv6literal , FORMATOPTION_machinereadable | FORMATOPTION_printlowercase | FORMATOPTION_printuppercase | FORMATOPTION_printcompressed | FORMATOPTION_printuncompressed | FORMATOPTION_printfulluncompressed }, { FORMAT_hex , FORMATOPTION_printuppercase | FORMATOPTION_printprefix | FORMATOPTION_printsuffix | FORMATOPTION_forceprefix }, { FORMAT_prefix_mac , FORMATOPTION_printlowercase | FORMATOPTION_printuppercase } }; const int ipv6calc_outputformatoptionmap_entries = MAXENTRIES_ARRAY(ipv6calc_outputformatoptionmap); /* Possible action option map (required) */ const uint32_t ipv6calc_actionoptionmap[][3] = { // action, command, 0=required, 1=optional { ACTION_auto , 0 , 0}, { ACTION_mac_to_eui64 , 0 , 0}, { ACTION_ipv4_to_6to4addr , 0 , 0}, { ACTION_ipv4_to_nat64 , 0 , 0}, { ACTION_ipv6_to_mac , 0 , 0}, { ACTION_ipv6_to_eui64 , 0 , 0}, { ACTION_iid_token_to_privacy , 0 , 0}, { ACTION_prefix_mac_to_ipv6 , 0 , 0}, { ACTION_anonymize , 0 , 0}, { ACTION_addr_to_countrycode , 0 , 0}, { ACTION_6rd_local_prefix , CMD_6rd_prefix, 0}, { ACTION_6rd_local_prefix , CMD_6rd_relay_prefix, 1 }, { ACTION_6rd_extract_ipv4 , CMD_6rd_prefixlength, 0}, { ACTION_test , CMD_test_prefix, 1}, { ACTION_test , CMD_test_gt, 1}, { ACTION_test , CMD_test_ge, 1}, { ACTION_test , CMD_test_lt, 1}, { ACTION_test , CMD_test_le, 1}, }; const int ipv6calc_actionoptionmap_entries = MAXENTRIES_ARRAY(ipv6calc_actionoptionmap); /* * check given type string * in : format string * ret: format type */ uint32_t ipv6calctypes_checktype(const char *string) { int i; uint32_t number = FORMAT_undefined; char tokenlist[100]; char *token, *cptr, **ptrptr; ptrptr = &cptr; DEBUGPRINT_WA(DEBUG_libipv6calctypes, "Got string: %s", string); for (i = 0; i < MAXENTRIES_ARRAY(ipv6calc_formatstrings); i++) { DEBUGPRINT_WA(DEBUG_libipv6calctypes, "Compare against: %s", ipv6calc_formatstrings[i].token); /* check main token */ if (strcmp(string, ipv6calc_formatstrings[i].token) == 0) { number = ipv6calc_formatstrings[i].number; break; }; if (strlen(ipv6calc_formatstrings[i].aliases) == 0) { /* no aliases defined */ continue; }; DEBUGPRINT_WA(DEBUG_libipv6calctypes, "Compare against aliases in string: %s", ipv6calc_formatstrings[i].aliases); snprintf(tokenlist, sizeof(tokenlist), "%s", ipv6calc_formatstrings[i].aliases); token = strtok_r(tokenlist, " ", ptrptr); while (token != NULL) { DEBUGPRINT_WA(DEBUG_libipv6calctypes, "Compare against alias token: %s", token); /* compare alias */ if (strcmp(string, token) == 0) { number = ipv6calc_formatstrings[i].number; break; }; /* get next token */ token = strtok_r(NULL, " ", ptrptr); }; }; if ( number == FORMAT_undefined ) { DEBUGPRINT_NA(DEBUG_libipv6calctypes, "Found no proper string"); } else { DEBUGPRINT_WA(DEBUG_libipv6calctypes, "Found format number: %08x", (unsigned int) number); }; return(number); }; /* * check given type string * in : action string * ret: action type */ uint32_t ipv6calctypes_checkaction(const char *string) { int i; uint32_t number = ACTION_undefined; char tokenlist[100]; char *token, *cptr, **ptrptr; ptrptr = &cptr; DEBUGPRINT_WA(DEBUG_libipv6calctypes, "Got string: %s", string); for (i = 0; i < MAXENTRIES_ARRAY(ipv6calc_actionstrings); i++) { DEBUGPRINT_WA(DEBUG_libipv6calctypes, "Compare against: %s", ipv6calc_actionstrings[i].token); /* check main token */ if (strcmp(string, ipv6calc_actionstrings[i].token) == 0) { number = ipv6calc_actionstrings[i].number; break; }; if (strlen(ipv6calc_actionstrings[i].aliases) == 0) { /* no aliases defined */ continue; }; DEBUGPRINT_WA(DEBUG_libipv6calctypes, "Compare against aliases in string: %s", ipv6calc_actionstrings[i].aliases); snprintf(tokenlist, sizeof(tokenlist), "%s", ipv6calc_formatstrings[i].aliases); token = strtok_r(tokenlist, " ", ptrptr); while (token != NULL) { DEBUGPRINT_WA(DEBUG_libipv6calctypes, "Compare against alias token: %s", token); /* compare alias */ if (strcmp(string, token) == 0) { number = ipv6calc_actionstrings[i].number; break; }; /* get next token */ token = strtok_r(NULL, " ", ptrptr); }; }; if ( number == FORMAT_undefined ) { DEBUGPRINT_NA(DEBUG_libipv6calctypes, "Found no proper string"); } else { DEBUGPRINT_WA(DEBUG_libipv6calctypes, "Found action number: %08x", (unsigned int) number); }; return(number); }; /* * return format string * in : format type * ret: format string */ const char *ipv6calctypes_format_string_by_type(const uint32_t format_type) { int i; const char *format_string = NULL; DEBUGPRINT_WA(DEBUG_libipv6calctypes, "Got type: %08x", format_type); for (i = 0; i < MAXENTRIES_ARRAY(ipv6calc_formatstrings); i++) { if (ipv6calc_formatstrings[i].number == format_type) { format_string = ipv6calc_formatstrings[i].token; break; }; }; return(format_string); }; ipv6calc-4.1.0/lib/ipv6calctypes.h000066400000000000000000000312011444154247200167420ustar00rootroot00000000000000/* * Project : ipv6calc * File : ipv6calctypes.h * Version : $Id: d39c7abdfc91ac6e26a7d5b4ab6277a718989838 $ * Copyright : 2002-2021 by Peter Bieringer * License : GPLv2 * * Information: * Header file for ipv6calctypes.c */ #include "ipv6calc_inttypes.h" #include "ipv6calccommands.h" #include /* defines */ #ifndef _ipv6calctypes_h_ #define _ipv6calctypes_h_ /* text representations for defines */ typedef struct { const int number; const char *token; } s_type; typedef struct { const int number; const char *token; const char *tokensimple; } s_type2; /* * Format handling matrix for new address option style */ /* Format number definitions, each possible format has one number */ #define FORMAT_NUM_HEAD 0x200 #define FORMAT_NUM_auto 0 #define FORMAT_NUM_revnibbles_int 1 #define FORMAT_NUM_revnibbles_arpa 2 #define FORMAT_NUM_bitstring 3 #define FORMAT_NUM_ipv6addr 4 #define FORMAT_NUM_ipv4addr 5 #define FORMAT_NUM_mac 6 #define FORMAT_NUM_eui64 7 #define FORMAT_NUM_base85 8 #define FORMAT_NUM_ifinet6 9 #define FORMAT_NUM_iid 10 #define FORMAT_NUM_iid_token 11 #define FORMAT_NUM_addrtype 12 #define FORMAT_NUM_ouitype 13 #define FORMAT_NUM_ipv6addrtype 14 #define FORMAT_NUM_ipv6logconv 15 #define FORMAT_NUM_any 16 #define FORMAT_NUM_prefix_mac 17 #define FORMAT_NUM_revipv4 18 #define FORMAT_NUM_ipv4hex 19 #define FORMAT_NUM_ipv4revhex 20 #define FORMAT_NUM_octal 21 #define FORMAT_NUM_hex 22 #define FORMAT_NUM_ipv6literal 23 #define FORMAT_NUM_ipv6rd 24 #define FORMAT_NUM_ipv6to4 25 #define FORMAT_NUM_asn 29 #define FORMAT_NUM_auto_noresult 30 #define FORMAT_NUM_undefined 31 #define FORMAT_auto (uint32_t) 0x00000u #define FORMAT_revnibbles_int (uint32_t) (1 << FORMAT_NUM_revnibbles_int) #define FORMAT_revnibbles_arpa (uint32_t) (1 << FORMAT_NUM_revnibbles_arpa) #define FORMAT_bitstring (uint32_t) (1 << FORMAT_NUM_bitstring) #define FORMAT_ipv6addr (uint32_t) (1 << FORMAT_NUM_ipv6addr) #define FORMAT_ipv4addr (uint32_t) (1 << FORMAT_NUM_ipv4addr) #define FORMAT_mac (uint32_t) (1 << FORMAT_NUM_mac) #define FORMAT_macaddr (uint32_t) (1 << FORMAT_NUM_mac) // compatible syntax #define FORMAT_eui64 (uint32_t) (1 << FORMAT_NUM_eui64) #define FORMAT_base85 (uint32_t) (1 << FORMAT_NUM_base85) #define FORMAT_ifinet6 (uint32_t) (1 << FORMAT_NUM_ifinet6) #define FORMAT_iid (uint32_t) (1 << FORMAT_NUM_iid) #define FORMAT_iid_token (uint32_t) (1 << FORMAT_NUM_iid_token) #define FORMAT_addrtype (uint32_t) (1 << FORMAT_NUM_addrtype) #define FORMAT_ouitype (uint32_t) (1 << FORMAT_NUM_ouitype) #define FORMAT_ipv6addrtype (uint32_t) (1 << FORMAT_NUM_ipv6addrtype) #define FORMAT_ipv6logconv (uint32_t) (1 << FORMAT_NUM_ipv6logconv) #define FORMAT_any (uint32_t) (1 << FORMAT_NUM_any) #define FORMAT_prefix_mac (uint32_t) (1 << FORMAT_NUM_prefix_mac) #define FORMAT_revipv4 (uint32_t) (1 << FORMAT_NUM_revipv4) #define FORMAT_ipv4hex (uint32_t) (1 << FORMAT_NUM_ipv4hex) #define FORMAT_ipv4revhex (uint32_t) (1 << FORMAT_NUM_ipv4revhex) #define FORMAT_octal (uint32_t) (1 << FORMAT_NUM_octal) #define FORMAT_hex (uint32_t) (1 << FORMAT_NUM_hex) #define FORMAT_ipv6literal (uint32_t) (1 << FORMAT_NUM_ipv6literal) #define FORMAT_ipv6rd (uint32_t) (1 << FORMAT_NUM_ipv6rd) #define FORMAT_ipv6to4 (uint32_t) (1 << FORMAT_NUM_ipv6to4) #define FORMAT_asn (uint32_t) (1 << FORMAT_NUM_asn) #define FORMAT_auto_noresult (uint32_t) (1 << FORMAT_NUM_auto_noresult) #define FORMAT_undefined (uint32_t) (1 << FORMAT_NUM_undefined) /* Primary label of format number, keeping also an explanation */ typedef struct { const uint32_t number; const char *token; const char *explanation; const char *aliases; } s_format; /* Format options */ #define FORMATOPTION_NUM_HEAD 0x300 // offset #define FORMATOPTION_NUM_printlowercase 1 // 00000002 #define FORMATOPTION_NUM_printuppercase 2 // 00000004 #define FORMATOPTION_NUM_printprefix 3 // 00000008 #define FORMATOPTION_NUM_printsuffix 4 // 00000010 #define FORMATOPTION_NUM_maskprefix 5 // 00000020 #define FORMATOPTION_NUM_masksuffix 6 // 00000040 #define FORMATOPTION_NUM_printstart 7 // 00000080 #define FORMATOPTION_NUM_printend 8 // 00000100 #define FORMATOPTION_NUM_printcompressed 9 // 00000200 #define FORMATOPTION_NUM_printuncompressed 10 // 00000400 #define FORMATOPTION_NUM_printfulluncompressed 11 // 00000800 #define FORMATOPTION_NUM_machinereadable 12 // 00001000 #define FORMATOPTION_NUM_quiet 13 // 00002000 #define FORMATOPTION_NUM_printmirrored 14 // 00004000 #define FORMATOPTION_NUM_forceprefix 15 // 00008000 #define FORMATOPTION_NUM_literal 16 // 00010000 #define FORMATOPTION_NUM_print_iid_var 17 // 00020000 #define FORMATOPTION_NUM_no_prefixlength 18 // 00040000 #define FORMATOPTION_NUM_mr_quote_always 19 // 00080000 #define FORMATOPTION_NUM_mr_quote_never 20 // 00100000 #define FORMATOPTION_NUM_mr_value_only 21 // 00200000 #define FORMATOPTION_NUM_mr_select_token 22 // 00400000 #define FORMATOPTION_NUM_mr_select_token_pa 23 // 00800000 #define FORMATOPTION_NUM_mr_match_token 24 // 01000000 #define FORMATOPTION_NUM_mr_quote_default 25 // 02000000 flag for controlling old quote behavior < 0.99.0 #define FORMATOPTION_NUM_mr_match_token_suffix 26 // 04000000 #define FORMATOPTION_NUM_print_ipset 29 // 'ipset' restore format #define FORMATOPTION_NUM_print_octal 30 // octal with separator #define FORMATOPTION_NUM_printembedded 31 // special #define FORMATOPTION_printlowercase (uint32_t) (1 << FORMATOPTION_NUM_printlowercase) #define FORMATOPTION_printuppercase (uint32_t) (1 << FORMATOPTION_NUM_printuppercase) #define FORMATOPTION_printprefix (uint32_t) (1 << FORMATOPTION_NUM_printprefix) #define FORMATOPTION_printsuffix (uint32_t) (1 << FORMATOPTION_NUM_printsuffix) #define FORMATOPTION_maskprefix (uint32_t) (1 << FORMATOPTION_NUM_maskprefix) #define FORMATOPTION_masksuffix (uint32_t) (1 << FORMATOPTION_NUM_masksuffix) #define FORMATOPTION_printstart (uint32_t) (1 << FORMATOPTION_NUM_printstart) #define FORMATOPTION_printend (uint32_t) (1 << FORMATOPTION_NUM_printend) #define FORMATOPTION_printcompressed (uint32_t) (1 << FORMATOPTION_NUM_printcompressed) #define FORMATOPTION_printuncompressed (uint32_t) (1 << FORMATOPTION_NUM_printuncompressed) #define FORMATOPTION_printfulluncompressed (uint32_t) (1 << FORMATOPTION_NUM_printfulluncompressed) #define FORMATOPTION_machinereadable (uint32_t) (1 << FORMATOPTION_NUM_machinereadable) #define FORMATOPTION_quiet (uint32_t) (1 << FORMATOPTION_NUM_quiet) #define FORMATOPTION_printmirrored (uint32_t) (1 << FORMATOPTION_NUM_printmirrored) #define FORMATOPTION_forceprefix (uint32_t) (1 << FORMATOPTION_NUM_forceprefix) #define FORMATOPTION_literal (uint32_t) (1 << FORMATOPTION_NUM_literal) #define FORMATOPTION_print_iid_var (uint32_t) (1 << FORMATOPTION_NUM_print_iid_var) #define FORMATOPTION_no_prefixlength (uint32_t) (1 << FORMATOPTION_NUM_no_prefixlength) #define FORMATOPTION_mr_quote_always (uint32_t) (1 << FORMATOPTION_NUM_mr_quote_always) #define FORMATOPTION_mr_quote_never (uint32_t) (1 << FORMATOPTION_NUM_mr_quote_never) #define FORMATOPTION_mr_value_only (uint32_t) (1 << FORMATOPTION_NUM_mr_value_only) #define FORMATOPTION_mr_select_token (uint32_t) (1 << FORMATOPTION_NUM_mr_select_token) #define FORMATOPTION_mr_select_token_pa (uint32_t) (1 << FORMATOPTION_NUM_mr_select_token_pa) #define FORMATOPTION_mr_match_token (uint32_t) (1 << FORMATOPTION_NUM_mr_match_token) #define FORMATOPTION_mr_quote_default (uint32_t) (1 << FORMATOPTION_NUM_mr_quote_default) // flag for controlling old quote behavior < 0.99.0 #define FORMATOPTION_mr_match_token_suffix (uint32_t) (1 << FORMATOPTION_NUM_mr_match_token_suffix) #define FORMATOPTION_print_ipset (uint32_t) (1 << FORMATOPTION_NUM_print_ipset) #define FORMATOPTION_print_octal (uint32_t) (1 << FORMATOPTION_NUM_print_octal) #define FORMATOPTION_printembedded (uint32_t) (1 << FORMATOPTION_NUM_printembedded) typedef struct { const uint32_t number; const char *token; const char *explanation; } s_formatoption; /* Actions */ #define ACTION_NUM_auto 0 #define ACTION_NUM_mac_to_eui64 1 #define ACTION_NUM_ipv4_to_6to4addr 2 #define ACTION_NUM_iid_token_to_privacy 3 #define ACTION_NUM_prefix_mac_to_ipv6 4 #define ACTION_NUM_anonymize 5 #define ACTION_NUM_6rd_local_prefix 6 #define ACTION_NUM_6rd_extract_ipv4 7 #define ACTION_NUM_ipv4_to_nat64 8 #define ACTION_NUM_ipv6_to_mac 9 #define ACTION_NUM_ipv6_to_eui64 10 #define ACTION_NUM_filter 15 #define ACTION_NUM_test 16 #define ACTION_NUM_addr_to_countrycode 17 #define ACTION_NUM_db_dump 18 #define ACTION_NUM_undefined 31 #define ACTION_auto (uint32_t) 0x0 #define ACTION_mac_to_eui64 (uint32_t) (1 << ACTION_NUM_mac_to_eui64) #define ACTION_ipv4_to_6to4addr (uint32_t) (1 << ACTION_NUM_ipv4_to_6to4addr) #define ACTION_iid_token_to_privacy (uint32_t) (1 << ACTION_NUM_iid_token_to_privacy) #define ACTION_prefix_mac_to_ipv6 (uint32_t) (1 << ACTION_NUM_prefix_mac_to_ipv6) #define ACTION_anonymize (uint32_t) (1 << ACTION_NUM_anonymize) #define ACTION_6rd_local_prefix (uint32_t) (1 << ACTION_NUM_6rd_local_prefix) #define ACTION_6rd_extract_ipv4 (uint32_t) (1 << ACTION_NUM_6rd_extract_ipv4) #define ACTION_ipv4_to_nat64 (uint32_t) (1 << ACTION_NUM_ipv4_to_nat64) #define ACTION_ipv6_to_mac (uint32_t) (1 << ACTION_NUM_ipv6_to_mac) #define ACTION_ipv6_to_eui64 (uint32_t) (1 << ACTION_NUM_ipv6_to_eui64) #define ACTION_filter (uint32_t) (1 << ACTION_NUM_filter) #define ACTION_test (uint32_t) (1 << ACTION_NUM_test) #define ACTION_addr_to_countrycode (uint32_t) (1 << ACTION_NUM_addr_to_countrycode) #define ACTION_db_dump (uint32_t) (1 << ACTION_NUM_db_dump) #define ACTION_undefined (uint32_t) (1 << ACTION_NUM_undefined) #define ANON_METHOD_ANONYMIZE 1 #define ANON_METHOD_ZEROIZE 2 #define ANON_METHOD_KEEPTYPEASNCC 3 #define ANON_METHOD_KEEPTYPEGEONAMEID 4 typedef struct { const uint32_t number; const char *token; const char *explanation; const char *aliases; } s_action; /* anonymization set */ typedef struct { char name[32]; char name_short[3]; int mask_ipv4; int mask_ipv6; int mask_eui64; int mask_mac; int mask_autoadjust; int method; // 1=anonymize, 2=zeroize, 3=keep type asn countrycode } s_ipv6calc_anon_set; /* anonymization methods */ typedef struct { const char name[32]; const int method; const char description[128]; } s_ipv6calc_anon_methods; /**** filter structures ****/ #define IPV6CALC_FILTER_DB_CC_MAX 16 #define IPV6CALC_FILTER_DB_ASN_MAX 16 #define IPV6CALC_FILTER_DB_REGISTRY_MAX 8 #define IPV6CALC_FILTER_IPV4ADDR 16 #define IPV6CALC_FILTER_IPV6ADDR 16 /* DB CC (CountryCode) filter structure */ typedef struct { int active; int cc_must_have_max; int cc_may_not_have_max; uint16_t cc_must_have[IPV6CALC_FILTER_DB_CC_MAX]; uint16_t cc_may_not_have[IPV6CALC_FILTER_DB_CC_MAX]; } s_ipv6calc_filter_db_cc; /* DB ASN (Autonomous System Number) filter structure */ typedef struct { int active; int asn_must_have_max; int asn_may_not_have_max; uint32_t asn_must_have[IPV6CALC_FILTER_DB_ASN_MAX]; uint32_t asn_may_not_have[IPV6CALC_FILTER_DB_ASN_MAX]; } s_ipv6calc_filter_db_asn; /* DB Registry filter structure */ typedef struct { int active; int registry_must_have_max; int registry_may_not_have_max; uint32_t registry_must_have[IPV6CALC_FILTER_DB_REGISTRY_MAX]; uint32_t registry_may_not_have[IPV6CALC_FILTER_DB_REGISTRY_MAX]; } s_ipv6calc_filter_db_registry; /* typeinfo filter structure */ typedef struct { int active; uint32_t typeinfo_must_have; uint32_t typeinfo_may_not_have; } s_ipv6calc_filter_typeinfo; #define IPV6CALC_TEST_NONE 0 #define IPV6CALC_TEST_PREFIX 1 #define IPV6CALC_TEST_GT 2 #define IPV6CALC_TEST_GE 3 #define IPV6CALC_TEST_LT 4 #define IPV6CALC_TEST_LE 5 #define IPV6CALC_TEST_LIST_MIN IPV6CALC_TEST_PREFIX #define IPV6CALC_TEST_LIST_MAX IPV6CALC_TEST_LE #endif // _ipv6calctypes_h_ /* references */ extern const s_format ipv6calc_formatstrings[]; extern const int ipv6calc_formatstrings_entries; extern const s_formatoption ipv6calc_formatoptionstrings[]; extern const int ipv6calc_formatoptionstrings_entries; extern const s_action ipv6calc_actionstrings[]; extern const int ipv6calc_actionstrings_entries; extern const uint32_t ipv6calc_formatmatrix[][2]; extern const int ipv6calc_formatmatrix_entries; extern const uint32_t ipv6calc_outputformatoptionmap[][2]; extern const int ipv6calc_outputformatoptionmap_entries; extern const uint32_t ipv6calc_actionoptionmap[][3]; extern const int ipv6calc_actionoptionmap_entries; /* prototypes */ extern uint32_t ipv6calctypes_checktype(const char *string); extern uint32_t ipv6calctypes_checkaction(const char *string); extern const char *ipv6calctypes_format_string_by_type(const uint32_t format_type); ipv6calc-4.1.0/lib/libeui64.c000066400000000000000000000223241444154247200155720ustar00rootroot00000000000000/* * Project : ipv6calc * File : libeui64.c * Version : $Id: fe0536bb99d61fec67b019cd0bc993f1678be147 $ * Copyright : 2001-2019 by Peter Bieringer * * Information: * Function library EUI-64 identifier handling */ #include #include #include #include "libeui64.h" #include "libieee.h" #include "libipv6calc.h" #include "libipv6calcdebug.h" #include "libipv6addr.h" static char ChSet[] = "0123456789abcdefABCDEF:- "; /* function MAC address to EUI format * * in : macaddrp * out: ipv6addrp * ret: ==0: ok, !=0: error */ int create_eui64_from_mac(ipv6calc_ipv6addr *ipv6addrp, ipv6calc_macaddr *macaddrp) { int retval = 1; DEBUGPRINT_NA(DEBUG_libeui64, "called"); /* clear IPv6 structure */ ipv6addr_clear(ipv6addrp); /* create EUI-64 from MAC-48 */ ipv6addrp->in6_addr.s6_addr[ 8] = macaddrp->addr[0] ^ 0x02; ipv6addrp->in6_addr.s6_addr[ 9] = macaddrp->addr[1]; ipv6addrp->in6_addr.s6_addr[10] = macaddrp->addr[2]; ipv6addrp->in6_addr.s6_addr[11] = 0xff; ipv6addrp->in6_addr.s6_addr[12] = 0xfe; ipv6addrp->in6_addr.s6_addr[13] = macaddrp->addr[3]; ipv6addrp->in6_addr.s6_addr[14] = macaddrp->addr[4]; ipv6addrp->in6_addr.s6_addr[15] = macaddrp->addr[5]; ipv6addrp->prefixlength = 64; ipv6addrp->flag_prefixuse = 0; ipv6addrp->flag_valid = 1; retval = 0; return (retval); }; /* * stores the EUI-64 structure in a string * * in: eui64addr_p = EUI-64 address structure ptr * out: *resultstring = EUI-64 address string * ret: ==0: ok, !=0: error */ int libeui64_eui64addrstruct_to_string(const ipv6calc_eui64addr *eui64addr_p, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { char tempstring[IPV6CALC_STRING_MAX]; /* address */ snprintf(tempstring, sizeof(tempstring), "%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", \ (unsigned int) eui64addr_p->addr[0], \ (unsigned int) eui64addr_p->addr[1], \ (unsigned int) eui64addr_p->addr[2], \ (unsigned int) eui64addr_p->addr[3], \ (unsigned int) eui64addr_p->addr[4], \ (unsigned int) eui64addr_p->addr[5], \ (unsigned int) eui64addr_p->addr[6], \ (unsigned int) eui64addr_p->addr[7]); if ( (formatoptions & FORMATOPTION_machinereadable) != 0 ) { snprintf(resultstring, resultstring_length, "EUI64=%s", tempstring); } else { snprintf(resultstring, resultstring_length, "%s", tempstring); }; return(0); }; /* function 48-bit EUI-64 address to eui64addr_structure * * in : *addrstring = EUI-64 address * out: *resultstring = result * ret: ==0: ok, !=0: error */ int libeui64_addr_to_eui64addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_eui64addr *eui64addrp) { int retval = 1, result, i, ccolons = 0, cdashes = 0, cspaces = 0; size_t cnt; int temp[8]; DEBUGPRINT_NA(DEBUG_libeui64, "called"); /* check length */ if ( ( strlen(addrstring) < 15 ) || ( strlen(addrstring) > 23 ) ) { snprintf(resultstring, resultstring_length, "Error in given 64-bit EUI-64 address, has not 15 to 23 chars!"); retval = 1; return (retval); }; /* check for hex chars and ":"/"-"/" " only content */ cnt = strspn(addrstring, ChSet); if ( cnt < strlen(addrstring) ) { snprintf(resultstring, resultstring_length, "Error in given EUI-64 address, '%s' has illegal char on position %d (%c)!", addrstring, (int) cnt+1, addrstring[cnt]); retval = 1; return (retval); }; /* count ":" or "-" or " " must be 7 x "-" */ for (i = 0; i < (int) strlen(addrstring); i++) { if (addrstring[i] == ':') { ccolons++; } else if (addrstring[i] == '-') { cdashes++; } else if (addrstring[i] == ' ') { cspaces++; }; }; if ( ! ( (ccolons == 7 && cdashes == 0 && cspaces == 0) || (ccolons == 0 && cdashes == 7 && cspaces == 0) || (ccolons == 0 && cdashes == 0 && cspaces == 7) || (ccolons == 0 && cdashes == 0 && cspaces == 0 && strlen(addrstring) == 16)) ) { snprintf(resultstring, resultstring_length, "Error in given EUI-64 address, '%s' is not valid (number of colons/dashes/spaces is not 7)!", addrstring); retval = 1; return (retval); }; /* scan address into array */ if ( ccolons == 7 ) { result = sscanf(addrstring, "%x:%x:%x:%x:%x:%x:%x:%x", &temp[0], &temp[1], &temp[2], &temp[3], &temp[4], &temp[5], &temp[6], &temp[7]); } else if ( cdashes == 7 ) { result = sscanf(addrstring, "%x-%x-%x-%x-%x-%x-%x-%x", &temp[0], &temp[1], &temp[2], &temp[3], &temp[4], &temp[5], &temp[6], &temp[7]); } else if ( cspaces == 7 ) { result = sscanf(addrstring, "%x %x %x %x %x %x %x %x", &temp[0], &temp[1], &temp[2], &temp[3], &temp[4], &temp[5], &temp[6], &temp[7]); } else if ( cdashes == 0 ) { result = sscanf(addrstring, "%2x%2x%2x%2x%2x%2x%2x%2x", &temp[0], &temp[1], &temp[2], &temp[3], &temp[4], &temp[5], &temp[6], &temp[7]); } else { snprintf(resultstring, resultstring_length, "Error in given EUI-64 address, unexpected failure on scanning '%s'!", addrstring); retval = 1; return (retval); }; if ( result != 8 ) { snprintf(resultstring, resultstring_length, "Error in given EUI-64 address, splitting of '%s' return %d items instead of 8!", addrstring, result); retval = 1; return (retval); }; /* check address words range */ for ( i = 0; i <= 7; i++ ) { if ( ( temp[i] < 0x0 ) || ( temp[i] > 0xff ) ) { snprintf(resultstring, resultstring_length, "Error in given EUI-64 address, '%s' is not valid on position %d!", addrstring, i); retval = 1; return (retval); }; }; /* copy address */ for ( i = 0; i <= 7; i++ ) { eui64addrp->addr[i] = (uint8_t) temp[i]; }; eui64addrp->flag_valid = 1; retval = 0; return (retval); }; /* * clear EUI-64 addr * * mod: *addrstring = EUI-64 address */ void libeui64_clear(ipv6calc_eui64addr *eui64addrp) { int i; DEBUGPRINT_NA(DEBUG_libeui64, "called"); for ( i = 0; i <= 7; i++ ) { eui64addrp->addr[i] = 0; }; return; }; /* * clear EUI64 addr_structure * * mod: *addrstring = EUI64 address */ void libeui64_clearall(ipv6calc_eui64addr *eui64addrp) { libeui64_clear(eui64addrp); DEBUGPRINT_NA(DEBUG_libeui64, "called"); /* Clear valid flag */ eui64addrp->flag_valid = 0; return; }; /* * anonymize EUI-64 addr * * mod: *addrstring = EUI-64 address */ void libeui64_anonymize(ipv6calc_eui64addr *eui64addrp, const s_ipv6calc_anon_set *ipv6calc_anon_set_p) { int mask = 0, i, j; uint8_t bit_ul = 0; DEBUGPRINT_WA(DEBUG_libeui64, "called: EUI-64=%08x%08x method=%d", EUI64_00_31(eui64addrp->addr), EUI64_32_63(eui64addrp->addr), ipv6calc_anon_set_p->method); // if (ipv6calc_anon_set_p->method == ANON_METHOD_ZEROIZE) { TODO: different implementations if (ipv6calc_anon_set_p->mask_autoadjust == 1) { DEBUGPRINT_NA(DEBUG_libeui64, "mask-autoadjust is set, autoselect proper mask"); if ((eui64addrp->addr[0] & 0x2) == 0) { // global address if ((eui64addrp->addr[3] == 0xff) && (eui64addrp->addr[4] == 0xfe)) { // expanded EUI-48 mask = 40; // 24 + 16 bits DEBUGPRINT_WA(DEBUG_libeui64, "EUI-64 is an expanded EUI-48, change mask: %d", mask); } else { mask = 24; }; if (libieee_check_oui36_iab(EUI64_00_23(eui64addrp->addr)) == 1) { // OUI-36/IAB mask += 12; // increase by 12 bits DEBUGPRINT_WA(DEBUG_libeui64, "EUI-64 contains OUI-36/IAB, change mask: %d", mask); } else if (libieee_check_oui28(EUI64_00_23(eui64addrp->addr)) == 1) { // OUI-28 mask += 4; // increase by 4 bits DEBUGPRINT_WA(DEBUG_libeui64, "EUI-64 contains OUI-28, change mask: %d", mask); }; DEBUGPRINT_WA(DEBUG_libeui64, "EUI-64 is a global one, source of mask: automagic: %d", mask); } else { // local address, honor mask_eui64 mask = ipv6calc_anon_set_p->mask_eui64; DEBUGPRINT_WA(DEBUG_libeui64, "EUI-64 is a local one, source of mask: mask-iid option: %d", mask); }; if (ipv6calc_anon_set_p->mask_eui64 > mask) { mask = ipv6calc_anon_set_p->mask_eui64; DEBUGPRINT_WA(DEBUG_libeui64, "specified mask is higher than autoselected one, change to specified: %d", mask); }; } else { DEBUGPRINT_WA(DEBUG_libeui64, "mask-autoadjust is not set, use always given mask: %d", mask); mask = ipv6calc_anon_set_p->mask_eui64; }; // save universal/local bit bit_ul = eui64addrp->addr[0] & 0x02; DEBUGPRINT_WA(DEBUG_libeui64, "zeroize EUI-64 with masked bits: %d (u/l=%s)", mask, (bit_ul == 2) ? "local" : "universal"); if (mask == 64) { // nothing to do } else if (mask > 0) { j = mask >> 3; for (i = 7; i >= 0; i--) { DEBUGPRINT_WA(DEBUG_libeui64, "zeroize EUI-64: mask=%02d i=%d j=%d", mask, i, j); if (j < i) { DEBUGPRINT_WA(DEBUG_libeui64, "zeroize EUI-64: byte %d", i); eui64addrp->addr[i] = 0x00; } else if (j == i) { DEBUGPRINT_WA(DEBUG_libeui64, "zeroize EUI-64: mask byte %d with %02x (offset: %d)", i, (0xff00 >> (mask % 0x8)) & 0xff, (mask % 0x8)); eui64addrp->addr[i] &= (0xff00 >> (mask % 0x8)) & 0xff; } else { DEBUGPRINT_NA(DEBUG_libeui64, "zeroize EUI-64: finished"); break; }; }; } else { libeui64_clear(eui64addrp); }; // restore universal/local bit eui64addrp->addr[0] = (eui64addrp->addr[0] & 0xfd) | bit_ul; // }; DEBUGPRINT_WA(DEBUG_libeui64, "anonymization finished, return: %08x%08x", EUI64_00_31(eui64addrp->addr), EUI64_32_63(eui64addrp->addr)); return; }; ipv6calc-4.1.0/lib/libeui64.h000066400000000000000000000027231444154247200156000ustar00rootroot00000000000000/* * Project : ipv6calc * File : libeui64.h * Version : $Id: 72841596a626de9b2cf984751a2655584f2deb8e $ * Copyright : 2001-2013 by Peter Bieringer * * Information: * Header file for libeu64.c */ #include "libipv6addr.h" #include "libmac.h" #ifndef _libeui64_h #define _libeui64_h typedef struct { uint8_t addr[8]; /* EUI-64 address in 8x 8 bit */ int flag_valid; /* address structure filled */ } ipv6calc_eui64addr; #define EUI64_00_23(x) ((x[0] << 16) | (x[1] << 8) | x[2]) #define EUI64_24_47(x) ((x[3] << 16) | (x[4] << 8) | x[5]) #define EUI64_48_63(x) ( (x[6] << 8) | x[7]) #define EUI64_00_31(x) ((x[0] << 24) | (x[1] << 16) | (x[2] << 8) | x[3]) #define EUI64_32_63(x) ((x[4] << 24) | (x[5] << 16) | (x[6] << 8) | x[7]) #endif /* prototypes */ extern int create_eui64_from_mac(ipv6calc_ipv6addr *ipv6addrp, ipv6calc_macaddr *macaddrp); extern int libeui64_addr_to_eui64addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_eui64addr *eui64addrp); extern void libeui64_clear(ipv6calc_eui64addr *eui64addrp); extern void libeui64_clearall(ipv6calc_eui64addr *eui64addrp); extern void libeui64_anonymize(ipv6calc_eui64addr *eui64addrp, const s_ipv6calc_anon_set *ipv6calc_anon_set_p); extern int libeui64_eui64addrstruct_to_string(const ipv6calc_eui64addr *eui64addr_p, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions); ipv6calc-4.1.0/lib/libieee.c000066400000000000000000000436201444154247200155470ustar00rootroot00000000000000/* * Project : ipv6calc * File : libieee.c * Version : $Id: 0d1212734228f7aeb3dbc7b8e1d4f47215f0fb63 $ * Copyright : 2002-2022 by Peter Bieringer * * Information: * Function library for IEEE information */ #include #include #include "config.h" #include "libipv6calc.h" #include "libipv6calcdebug.h" #include "libieee.h" #include "libmac.h" #include "libeui64.h" #include "libipv6calc_db_wrapper.h" // internal map for IAB / OUI-28 / OUI-36 lists // mapping value used for pack/unpack - do not change per entry, max 0xfff static const s_ieee_mapping ieee_mapping[] = { // IAB { 0x0050C2, IEEE_IAB, 0x1 }, { 0x40D855, IEEE_IAB, 0x2 }, // OUI36 { 0x001BC5, IEEE_OUI36, 0x9 }, { 0x70B3D5, IEEE_OUI36, 0xa }, { 0x001BC5, IEEE_OUI36, 0xb }, { 0x70B3D5, IEEE_OUI36, 0xc }, { 0x8C1F64, IEEE_OUI36, 0xd }, // OUI28 (2019-10-08) { 0x0055DA, IEEE_OUI28, 0x0010 }, { 0x006967, IEEE_OUI28, 0x0011 }, { 0x04714B, IEEE_OUI28, 0x0012 }, { 0x04C3E6, IEEE_OUI28, 0x0013 }, { 0x04D16E, IEEE_OUI28, 0x0014 }, { 0x08ED02, IEEE_OUI28, 0x0015 }, { 0x0C73EB, IEEE_OUI28, 0x0016 }, { 0x0CEFAF, IEEE_OUI28, 0x0017 }, { 0x0CFE5D, IEEE_OUI28, 0x0018 }, { 0x100723, IEEE_OUI28, 0x0019 }, { 0x10DCB6, IEEE_OUI28, 0x001a }, { 0x141FBA, IEEE_OUI28, 0x001b }, { 0x144FD7, IEEE_OUI28, 0x001c }, { 0x189BA5, IEEE_OUI28, 0x001d }, { 0x1C21D1, IEEE_OUI28, 0x001e }, { 0x1C8259, IEEE_OUI28, 0x001f }, { 0x1C8774, IEEE_OUI28, 0x0020 }, { 0x1C8776, IEEE_OUI28, 0x0021 }, { 0x1C8779, IEEE_OUI28, 0x0022 }, { 0x1C8879, IEEE_OUI28, 0x0023 }, { 0x1CA0D3, IEEE_OUI28, 0x0024 }, { 0x1CC0E1, IEEE_OUI28, 0x0025 }, { 0x1CCAE3, IEEE_OUI28, 0x0026 }, { 0x1CFD08, IEEE_OUI28, 0x0027 }, { 0x208593, IEEE_OUI28, 0x0028 }, { 0x241510, IEEE_OUI28, 0x0029 }, { 0x244E7B, IEEE_OUI28, 0x002a }, { 0x282C02, IEEE_OUI28, 0x002b }, { 0x283638, IEEE_OUI28, 0x002c }, { 0x28F537, IEEE_OUI28, 0x002d }, { 0x28FD80, IEEE_OUI28, 0x002e }, { 0x2C16BD, IEEE_OUI28, 0x002f }, { 0x2C265F, IEEE_OUI28, 0x0030 }, { 0x2C279E, IEEE_OUI28, 0x0031 }, { 0x2C4835, IEEE_OUI28, 0x0032 }, { 0x2C6A6F, IEEE_OUI28, 0x0033 }, { 0x2CD141, IEEE_OUI28, 0x0034 }, { 0x3009F9, IEEE_OUI28, 0x0035 }, { 0x300A60, IEEE_OUI28, 0x0036 }, { 0x301F9A, IEEE_OUI28, 0x0037 }, { 0x34008A, IEEE_OUI28, 0x0038 }, { 0x34049E, IEEE_OUI28, 0x0039 }, { 0x34298F, IEEE_OUI28, 0x003a }, { 0x34D0B8, IEEE_OUI28, 0x003b }, { 0x34E1D1, IEEE_OUI28, 0x003c }, { 0x383A21, IEEE_OUI28, 0x003d }, { 0x3873EA, IEEE_OUI28, 0x003e }, { 0x38B19E, IEEE_OUI28, 0x003f }, { 0x38B8EB, IEEE_OUI28, 0x0040 }, { 0x38FDFE, IEEE_OUI28, 0x0041 }, { 0x3C24F0, IEEE_OUI28, 0x0042 }, { 0x3C39E7, IEEE_OUI28, 0x0043 }, { 0x3C427E, IEEE_OUI28, 0x0044 }, { 0x3C6A2C, IEEE_OUI28, 0x0045 }, { 0x401175, IEEE_OUI28, 0x0046 }, { 0x4048FD, IEEE_OUI28, 0x0047 }, { 0x40A36B, IEEE_OUI28, 0x0048 }, { 0x40ED98, IEEE_OUI28, 0x0049 }, { 0x40F385, IEEE_OUI28, 0x004a }, { 0x440377, IEEE_OUI28, 0x004b }, { 0x44D5F2, IEEE_OUI28, 0x004c }, { 0x480BB2, IEEE_OUI28, 0x004d }, { 0x4865EE, IEEE_OUI28, 0x004e }, { 0x4C4BF9, IEEE_OUI28, 0x004f }, { 0x4C65A8, IEEE_OUI28, 0x0050 }, { 0x4C917A, IEEE_OUI28, 0x0051 }, { 0x4CBC98, IEEE_OUI28, 0x0052 }, { 0x4CE173, IEEE_OUI28, 0x0053 }, { 0x500B91, IEEE_OUI28, 0x0054 }, { 0x506255, IEEE_OUI28, 0x0055 }, { 0x50A4D0, IEEE_OUI28, 0x0056 }, { 0x50FF99, IEEE_OUI28, 0x0057 }, { 0x549A11, IEEE_OUI28, 0x0058 }, { 0x54A493, IEEE_OUI28, 0x0059 }, { 0x58E876, IEEE_OUI28, 0x005a }, { 0x58FCDB, IEEE_OUI28, 0x005b }, { 0x5CF286, IEEE_OUI28, 0x005c }, { 0x6095CE, IEEE_OUI28, 0x005d }, { 0x60D7E3, IEEE_OUI28, 0x005e }, { 0x643139, IEEE_OUI28, 0x005f }, { 0x64FB81, IEEE_OUI28, 0x0060 }, { 0x6891D0, IEEE_OUI28, 0x0061 }, { 0x6C5C3D, IEEE_OUI28, 0x0062 }, { 0x6CDFFB, IEEE_OUI28, 0x0063 }, { 0x70886B, IEEE_OUI28, 0x0064 }, { 0x70F8E7, IEEE_OUI28, 0x0065 }, { 0x7419F8, IEEE_OUI28, 0x0066 }, { 0x741AE0, IEEE_OUI28, 0x0067 }, { 0x745BC5, IEEE_OUI28, 0x0068 }, { 0x74E14A, IEEE_OUI28, 0x0069 }, { 0x74F8DB, IEEE_OUI28, 0x006a }, { 0x78C2C0, IEEE_OUI28, 0x006b }, { 0x78CA83, IEEE_OUI28, 0x006c }, { 0x78D800, IEEE_OUI28, 0x006d }, { 0x7C477C, IEEE_OUI28, 0x006e }, { 0x7C70BC, IEEE_OUI28, 0x006f }, { 0x7CBACC, IEEE_OUI28, 0x0070 }, { 0x7CBC84, IEEE_OUI28, 0x0071 }, { 0x7CCBE2, IEEE_OUI28, 0x0072 }, { 0x800A80, IEEE_OUI28, 0x0073 }, { 0x807B85, IEEE_OUI28, 0x0074 }, { 0x80E4DA, IEEE_OUI28, 0x0075 }, { 0x8439BE, IEEE_OUI28, 0x0076 }, { 0x8489EC, IEEE_OUI28, 0x0077 }, { 0x848BCD, IEEE_OUI28, 0x0078 }, { 0x84E0F4, IEEE_OUI28, 0x0079 }, { 0x885D90, IEEE_OUI28, 0x007a }, { 0x885FE8, IEEE_OUI28, 0x007b }, { 0x88A9A7, IEEE_OUI28, 0x007c }, { 0x8C147D, IEEE_OUI28, 0x007d }, { 0x8C192D, IEEE_OUI28, 0x007e }, { 0x8C1CDA, IEEE_OUI28, 0x007f }, { 0x8C593C, IEEE_OUI28, 0x0080 }, { 0x8CC8F4, IEEE_OUI28, 0x0081 }, { 0x904E91, IEEE_OUI28, 0x0082 }, { 0x90C682, IEEE_OUI28, 0x0083 }, { 0x9802D8, IEEE_OUI28, 0x0084 }, { 0x980637, IEEE_OUI28, 0x0085 }, { 0x986D35, IEEE_OUI28, 0x0086 }, { 0x98AAFC, IEEE_OUI28, 0x0087 }, { 0x98F9C7, IEEE_OUI28, 0x0088 }, { 0x9C431E, IEEE_OUI28, 0x0089 }, { 0x9C69B4, IEEE_OUI28, 0x008a }, { 0x9CF6DD, IEEE_OUI28, 0x008b }, { 0xA019B2, IEEE_OUI28, 0x008c }, { 0xA0224E, IEEE_OUI28, 0x008d }, { 0xA02833, IEEE_OUI28, 0x008e }, { 0xA03E6B, IEEE_OUI28, 0x008f }, { 0xA0BB3E, IEEE_OUI28, 0x0090 }, { 0xA0C5F2, IEEE_OUI28, 0x0091 }, { 0xA41163, IEEE_OUI28, 0x0092 }, { 0xA43BFA, IEEE_OUI28, 0x0093 }, { 0xA44F29, IEEE_OUI28, 0x0094 }, { 0xA4580F, IEEE_OUI28, 0x0095 }, { 0xA4DA22, IEEE_OUI28, 0x0096 }, { 0xA4ED43, IEEE_OUI28, 0x0097 }, { 0xA83FA1, IEEE_OUI28, 0x0098 }, { 0xAC1DDF, IEEE_OUI28, 0x0099 }, { 0xAC64DD, IEEE_OUI28, 0x009a }, { 0xB01F81, IEEE_OUI28, 0x009b }, { 0xB0C5CA, IEEE_OUI28, 0x009c }, { 0xB0FD0B, IEEE_OUI28, 0x009d }, { 0xB437D1, IEEE_OUI28, 0x009e }, { 0xB44BD6, IEEE_OUI28, 0x009f }, { 0xB4A2EB, IEEE_OUI28, 0x00a0 }, { 0xB8D812, IEEE_OUI28, 0x00a1 }, { 0xBC3400, IEEE_OUI28, 0x00a2 }, { 0xBC6641, IEEE_OUI28, 0x00a3 }, { 0xBC9740, IEEE_OUI28, 0x00a4 }, { 0xC08359, IEEE_OUI28, 0x00a5 }, { 0xC0D391, IEEE_OUI28, 0x00a6 }, { 0xC47C8D, IEEE_OUI28, 0x00a7 }, { 0xC4954D, IEEE_OUI28, 0x00a8 }, { 0xC4FFBC, IEEE_OUI28, 0x00a9 }, { 0xC82C2B, IEEE_OUI28, 0x00aa }, { 0xC86314, IEEE_OUI28, 0x00ab }, { 0xC88ED1, IEEE_OUI28, 0x00ac }, { 0xCC1BE0, IEEE_OUI28, 0x00ad }, { 0xCC2237, IEEE_OUI28, 0x00ae }, { 0xCCD31E, IEEE_OUI28, 0x00af }, { 0xCCD39D, IEEE_OUI28, 0x00b0 }, { 0xD02212, IEEE_OUI28, 0x00b1 }, { 0xD05F64, IEEE_OUI28, 0x00b2 }, { 0xD07650, IEEE_OUI28, 0x00b3 }, { 0xD0C857, IEEE_OUI28, 0x00b4 }, { 0xD0D94F, IEEE_OUI28, 0x00b5 }, { 0xD425CC, IEEE_OUI28, 0x00b6 }, { 0xD47C44, IEEE_OUI28, 0x00b7 }, { 0xD8860B, IEEE_OUI28, 0x00b8 }, { 0xDC4427, IEEE_OUI28, 0x00b9 }, { 0xDCE533, IEEE_OUI28, 0x00ba }, { 0xE05A9F, IEEE_OUI28, 0x00bb }, { 0xE0B6F5, IEEE_OUI28, 0x00bc }, { 0xE41E0A, IEEE_OUI28, 0x00bd }, { 0xE44CC7, IEEE_OUI28, 0x00be }, { 0xE4956E, IEEE_OUI28, 0x00bf }, { 0xE81863, IEEE_OUI28, 0x00c0 }, { 0xEC9F0D, IEEE_OUI28, 0x00c1 }, { 0xF023B9, IEEE_OUI28, 0x00c2 }, { 0xF041C8, IEEE_OUI28, 0x00c3 }, { 0xF0ACD7, IEEE_OUI28, 0x00c4 }, { 0xF40E11, IEEE_OUI28, 0x00c5 }, { 0xF80278, IEEE_OUI28, 0x00c6 }, { 0xF81D78, IEEE_OUI28, 0x00c7 }, { 0xF88A3C, IEEE_OUI28, 0x00c8 }, { 0xF8B568, IEEE_OUI28, 0x00c9 }, { 0xFCA47A, IEEE_OUI28, 0x00ca }, { 0xFCD2B6, IEEE_OUI28, 0x00cb }, { 0x14AE85, IEEE_OUI28, 0x00cc }, { 0x200A0D, IEEE_OUI28, 0x00cd }, { 0x28B77C, IEEE_OUI28, 0x00ce }, { 0x304950, IEEE_OUI28, 0x00cd }, { 0x38F7CD, IEEE_OUI28, 0x00ce }, { 0x3CFAD3, IEEE_OUI28, 0x00cf }, { 0x402C76, IEEE_OUI28, 0x00d0 }, { 0x4C93A6, IEEE_OUI28, 0x00d1 }, { 0x50DE19, IEEE_OUI28, 0x00d2 }, { 0x5C857E, IEEE_OUI28, 0x00d3 }, { 0x646266, IEEE_OUI28, 0x00d4 }, { 0x706979, IEEE_OUI28, 0x00d5 }, { 0x90E2FC, IEEE_OUI28, 0x00d6 }, { 0x9405BB, IEEE_OUI28, 0x00d7 }, { 0x94CC04, IEEE_OUI28, 0x00d8 }, { 0x94FBA7, IEEE_OUI28, 0x00d9 }, { 0xB0B353, IEEE_OUI28, 0x00da }, { 0xC09BF4, IEEE_OUI28, 0x00db }, { 0xCCC261, IEEE_OUI28, 0x00dc }, { 0xD01411, IEEE_OUI28, 0x00de }, { 0xE8B470, IEEE_OUI28, 0x00df }, { 0xF0D7AF, IEEE_OUI28, 0x00e0 }, { 0xF469D5, IEEE_OUI28, 0x00e1 }, { 0xF490CB, IEEE_OUI28, 0x00e2 }, { 0x18FDCB, IEEE_OUI28, 0x00e3 }, { 0x98FC84, IEEE_OUI28, 0x00e4 }, { 0xC0619A, IEEE_OUI28, 0x00e5 }, { 0x58208A, IEEE_OUI28, 0x00e5 }, { 0x5895D8, IEEE_OUI28, 0x00e6 }, { 0x687912, IEEE_OUI28, 0x00e7 }, { 0x8411C2, IEEE_OUI28, 0x00e8 }, { 0x8C476E, IEEE_OUI28, 0x00e9 }, { 0x8CAE49, IEEE_OUI28, 0x00ea }, { 0xCC4F5C, IEEE_OUI28, 0x00eb }, { 0xDC4A9E, IEEE_OUI28, 0x00ec }, { 0xFCCD2F, IEEE_OUI28, 0x00ed }, // OUI28 (2020-11-07) { 0xA0024A, IEEE_OUI28, 0x00ee }, { 0xA453EE, IEEE_OUI28, 0x00ef }, // OUI28 (2021-01-13) { 0x041119, IEEE_OUI28, 0x00f0 }, { 0x245DFC, IEEE_OUI28, 0x00f1 }, { 0x446FD8, IEEE_OUI28, 0x00f2 }, { 0x78D4F1, IEEE_OUI28, 0x00f3 }, { 0x982782, IEEE_OUI28, 0x00f4 }, { 0xE86CC7, IEEE_OUI28, 0x00f5 }, // OUI28 (2021-05-16) { 0x0C5CB5, IEEE_OUI28, 0x00f6 }, { 0x1874E2, IEEE_OUI28, 0x00f7 }, { 0x1CA0EF, IEEE_OUI28, 0x00f8 }, { 0x20CE2A, IEEE_OUI28, 0x00f9 }, { 0x44A92C, IEEE_OUI28, 0x00fa }, { 0x601592, IEEE_OUI28, 0x00fb }, { 0x781305, IEEE_OUI28, 0x00fc }, { 0x88C9B3, IEEE_OUI28, 0x00fd }, { 0xA85B36, IEEE_OUI28, 0x00fe }, { 0xC0FBF9, IEEE_OUI28, 0x00ff }, { 0xC8F5D6, IEEE_OUI28, 0x0100 }, { 0xD09FD9, IEEE_OUI28, 0x0101 }, { 0xE87829, IEEE_OUI28, 0x0102 }, { 0xF02A2B, IEEE_OUI28, 0x0103 }, // OUI28 (2021-07-12) { 0x283613, IEEE_OUI28, 0x0104 }, { 0x38A8CD, IEEE_OUI28, 0x0105 }, { 0x584849, IEEE_OUI28, 0x0106 }, { 0x6433B5, IEEE_OUI28, 0x0107 }, { 0x785EE8, IEEE_OUI28, 0x0108 }, // OUI28 (2021-09-19) { 0x1CAE3E, IEEE_OUI28, 0x0109 }, { 0x787264, IEEE_OUI28, 0x010a }, { 0x7C8334, IEEE_OUI28, 0x010b }, { 0x986EE8, IEEE_OUI28, 0x010c }, { 0x9880BB, IEEE_OUI28, 0x010d }, { 0xF4700C, IEEE_OUI28, 0x010e }, { 0xF4A454, IEEE_OUI28, 0x010f }, // OUI28 (2021-10-19) { 0x08F80D, IEEE_OUI28, 0x0110 }, { 0x1845B3, IEEE_OUI28, 0x0111 }, { 0x94C9B7, IEEE_OUI28, 0x0112 }, // OUI28 (2022-01-25) { 0x04EEE8, IEEE_OUI28, 0x0113 }, { 0x0826AE, IEEE_OUI28, 0x0114 }, { 0x0C8629, IEEE_OUI28, 0x0115 }, { 0x1054D2, IEEE_OUI28, 0x0116 }, { 0x18D793, IEEE_OUI28, 0x0117 }, { 0x3043D7, IEEE_OUI28, 0x0118 }, { 0x50A030, IEEE_OUI28, 0x0119 }, { 0x6C9308, IEEE_OUI28, 0x011a }, { 0x988FE0, IEEE_OUI28, 0x011b }, { 0xDC3643, IEEE_OUI28, 0x011c }, // OUI28 (2022-07-30) { 0x0C7FED, IEEE_OUI28, 0x011d }, { 0x18A59C, IEEE_OUI28, 0x011e }, { 0x18C3F4, IEEE_OUI28, 0x011f }, { 0x1C5974, IEEE_OUI28, 0x0120 }, { 0x2C691D, IEEE_OUI28, 0x0121 }, { 0x303D51, IEEE_OUI28, 0x0122 }, { 0x381F26, IEEE_OUI28, 0x0123 }, { 0x5847CA, IEEE_OUI28, 0x0124 }, { 0x6C1524, IEEE_OUI28, 0x0125 }, { 0x7050E7, IEEE_OUI28, 0x0126 }, { 0x8002F4, IEEE_OUI28, 0x0127 }, { 0x883CC5, IEEE_OUI28, 0x0128 }, { 0x8C5109, IEEE_OUI28, 0x0129 }, { 0xC48372, IEEE_OUI28, 0x012a }, { 0xC49894, IEEE_OUI28, 0x012b }, { 0xC4A10E, IEEE_OUI28, 0x012c }, { 0xD09686, IEEE_OUI28, 0x012d }, { 0xD42000, IEEE_OUI28, 0x012e }, { 0xD4BABA, IEEE_OUI28, 0x012f }, { 0xFC6179, IEEE_OUI28, 0x0130 }, // OUI28 (2022-12-04) { 0x0CCC47, IEEE_OUI28, 0x0131 }, { 0x4C74A7, IEEE_OUI28, 0x0132 }, { 0x705A6F, IEEE_OUI28, 0x0133 }, { 0x7C45F9, IEEE_OUI28, 0x0134 }, { 0x84B386, IEEE_OUI28, 0x0135 }, { 0x8C5DB2, IEEE_OUI28, 0x0136 }, { 0xC0EAC3, IEEE_OUI28, 0x0137 }, { 0xC4A559, IEEE_OUI28, 0x0138 }, { 0xD46137, IEEE_OUI28, 0x0139 }, { 0xE0382D, IEEE_OUI28, 0x013a }, { 0xF0221D, IEEE_OUI28, 0x013b }, // OUI28 (2023-06-08) { 0x50482C, IEEE_OUI28, 0x013c }, { 0x54083B, IEEE_OUI28, 0x013d }, { 0x5491AF, IEEE_OUI28, 0x013e }, { 0x58C41E, IEEE_OUI28, 0x013f }, { 0x5C6AEC, IEEE_OUI28, 0x0140 }, { 0x68DA73, IEEE_OUI28, 0x0141 }, { 0x6C2ADF, IEEE_OUI28, 0x0142 }, { 0x700692, IEEE_OUI28, 0x0143 }, { 0x88A6EF, IEEE_OUI28, 0x0144 }, { 0x90F421, IEEE_OUI28, 0x0145 }, { 0xB0FF72, IEEE_OUI28, 0x0146 }, { 0xB44D43, IEEE_OUI28, 0x0147 }, { 0xBC3198, IEEE_OUI28, 0x0148 }, { 0xC86BBC, IEEE_OUI28, 0x0149 }, { 0xD015BB, IEEE_OUI28, 0x014a }, { 0xD016F0, IEEE_OUI28, 0x014b }, { 0xD09395, IEEE_OUI28, 0x014c }, { 0xE03C1C, IEEE_OUI28, 0x014d }, }; /* * check for OUI-36/IAB * in: bits_00_23 * out: 0=not OUI-36/IAB, 1=is OUI-36/IAB */ int libieee_check_oui36_iab(const uint32_t bits_00_23) { int r = 0, i; DEBUGPRINT_WA(DEBUG_libieee, "called with bits_00_23=%06x", bits_00_23); /* run through map */ for (i = 0; i < MAXENTRIES_ARRAY(ieee_mapping); i++) { DEBUGPRINT_WA(DEBUG_libieee, "check against: %06x", ieee_mapping[i].bits_00_23); if (ieee_mapping[i].bits_00_23 == bits_00_23) { if ((ieee_mapping[i].type == IEEE_IAB) || (ieee_mapping[i].type == IEEE_OUI36)) { DEBUGPRINT_WA(DEBUG_libieee, "found entry in map: %06x", bits_00_23); r = 1; break; }; }; }; return(r); }; /* * check for OUI-28 * in: bits_00_23 * out: 0=not OUI-28, 1=is OUI-28 */ int libieee_check_oui28(const uint32_t bits_00_23) { int r = 0, i; DEBUGPRINT_WA(DEBUG_libieee, "called with bits_00_23=%06x", bits_00_23); /* run through map */ for (i = 0; i < MAXENTRIES_ARRAY(ieee_mapping); i++) { DEBUGPRINT_WA(DEBUG_libieee, "check against: %06x", ieee_mapping[i].bits_00_23); if (ieee_mapping[i].bits_00_23 == bits_00_23) { if (ieee_mapping[i].type == IEEE_OUI28) { DEBUGPRINT_WA(DEBUG_libieee, "found entry in map: %06x", bits_00_23); r = 1; break; }; }; }; return(r); }; /* * map OUI-36/IAB and OUI-28 * in: bits_00_23, bits_24_36 * out: mapping value (0x1nnnnnn) */ uint32_t libieee_map_oui28_oui36_iab(const uint32_t bits_00_23, const uint32_t bits_24_36) { int i; uint32_t map_value = bits_00_23; // default is OUI-24 DEBUGPRINT_WA(DEBUG_libieee, "called with bits_00_23=%06x bits_24_36=%03x", bits_00_23, bits_24_36); /* run through map */ for (i = 0; i < MAXENTRIES_ARRAY(ieee_mapping); i++) { DEBUGPRINT_WA(DEBUG_libieee, "check against: %06x", ieee_mapping[i].bits_00_23); if (ieee_mapping[i].bits_00_23 == bits_00_23) { if ((ieee_mapping[i].type == IEEE_IAB) || (ieee_mapping[i].type == IEEE_OUI36)) { // hit, set flag (0x1mmmvvv), mapping number (mmm) and 12 bit vendor code (vvv) map_value = 0x1000000 | (ieee_mapping[i].mapping << 12) | bits_24_36; DEBUGPRINT_WA(DEBUG_libieee, "found entry in map (OUI-36/IAB): %06x -> %08x", bits_00_23, map_value); break; } else if (ieee_mapping[i].type == IEEE_OUI28) { // hit, set flag (0x1mmmv00), mapping number (mmm) and 4 bit vendor code (v) map_value = 0x1000000 | (ieee_mapping[i].mapping << 12) | (bits_24_36 & 0xf00); DEBUGPRINT_WA(DEBUG_libieee, "found entry in map (OUI-28): %06x -> %08x", bits_00_23, map_value); break; }; }; }; return (map_value); }; /* * unmap OUI-36/IAB and OUI-28 * in : mapping value * out: bits_00_23, bits_24_36 */ int libieee_unmap_oui28_oui36_iab(const uint32_t map_value, uint32_t *bits_00_23_p, uint32_t *bits_24_36_p) { int i; uint32_t map_index = (map_value & 0xfff000) >> 12; *bits_00_23_p = 0; *bits_24_36_p = 0; DEBUGPRINT_WA(DEBUG_libieee, "called with map_value=%08x", map_value); /* run through map */ for (i = 0; i < MAXENTRIES_ARRAY(ieee_mapping); i++) { if (ieee_mapping[i].mapping == map_index) { DEBUGPRINT_WA(DEBUG_libieee, "found entry in map: %06x", map_index); *bits_00_23_p = ieee_mapping[i].bits_00_23; *bits_24_36_p = map_value & 0xfff; DEBUGPRINT_WA(DEBUG_libieee, "mapped to bits_00_23=%06x bits_24_36=%03x", *bits_00_23_p, *bits_24_36_p); return (0); }; }; fprintf(stderr, "%s/%s: missing entry in map: %06x\n", __FILE__, __func__, map_index); return (1); }; /* * map IAB/OUI-36/OUI-28 * in: macaddrp * out: OUI (0x0......) or mapped IAB/OUI-36/OUI-28 (0x1mmm...) * mmm = map index */ uint32_t libieee_map_oui_macaddr(const ipv6calc_macaddr *macaddrp) { uint32_t oui, ven; oui = (macaddrp->addr[0] << 16) | (macaddrp->addr[1] << 8) | macaddrp->addr[2]; ven = (macaddrp->addr[3] << 4) | (macaddrp->addr[4] >> 4); // 12 bits DEBUGPRINT_WA(DEBUG_libieee, "called with OUI/VEN: %06x %03x", oui, ven); return (libieee_map_oui28_oui36_iab(oui, ven)); }; /* * map IAB/OUI-36/OUI-28 * in: eui64addrp * out: OUI (0x0......) or mapped IAB/OUI-36/OUI-28 (0x1mmm...) * mmm = map index */ uint32_t libieee_map_oui_eui64addr(const ipv6calc_eui64addr *eui64addrp) { uint32_t oui, ven; oui = (eui64addrp->addr[0] << 16) | (eui64addrp->addr[1] << 8) | eui64addrp->addr[2]; ven = (eui64addrp->addr[3] << 4) | (eui64addrp->addr[4] >> 4); DEBUGPRINT_WA(DEBUG_libieee, "called with OUI/VEN: %06x %03x", oui, ven); return (libieee_map_oui28_oui36_iab(oui, ven)); }; /* * unmap IAB/OUI-36/OUI-28 * in : OUI (0x0......) or mapped IAB/OUI-36/OUI-28 (0x1mmm...) * mmm = map index * mod: macaddrp (last bits zeroized) * out: result */ int libieee_unmap_oui_macaddr(ipv6calc_macaddr *macaddrp, uint32_t map_value) { uint32_t bits_00_23, bits_24_36; mac_clearall(macaddrp); DEBUGPRINT_NA(DEBUG_libieee, "called"); libieee_unmap_oui28_oui36_iab(map_value, &bits_00_23, &bits_24_36); macaddrp->addr[0] = (bits_00_23 & 0xff0000) >> 16; macaddrp->addr[1] = (bits_00_23 & 0x00ff00) >> 8; macaddrp->addr[2] = (bits_00_23 & 0x0000ff); macaddrp->addr[3] = (bits_24_36 & 0x000ff0) >> 4; macaddrp->addr[4] = (bits_24_36 & 0x00000f) << 4; macaddrp->flag_valid = 1; return (0); }; /* * unmap IAB/OUI-36/OUI-28 * in : OUI (0x0......) or mapped IAB/OUI-36/OUI-28 (0x1mmm...) * mmm = map index * mod: eui64addrp (last bits zeroized) * out: result */ int libieee_unmap_oui_eui64addr(ipv6calc_eui64addr *eui64addrp, uint32_t map_value) { uint32_t bits_00_23, bits_24_36; libeui64_clearall(eui64addrp); DEBUGPRINT_NA(DEBUG_libieee, "called"); libieee_unmap_oui28_oui36_iab(map_value, &bits_00_23, &bits_24_36); eui64addrp->addr[0] = (bits_00_23 & 0xff0000) >> 16; eui64addrp->addr[1] = (bits_00_23 & 0x00ff00) >> 8; eui64addrp->addr[2] = (bits_00_23 & 0x0000ff); eui64addrp->addr[3] = (bits_24_36 & 0x000ff0) >> 4; eui64addrp->addr[4] = (bits_24_36 & 0x00000f) << 4; eui64addrp->flag_valid = 1; return (0); }; ipv6calc-4.1.0/lib/libieee.h000066400000000000000000000031361444154247200155520ustar00rootroot00000000000000/* * Project : ipv6calc * File : libieee.h * Version : $Id: 1404140aeec98c34b99f0f365c6b153d0a9c4ba0 $ * Copyright : 2002-2021 by Peter Bieringer * * Information: * Header file for libieee.c */ #include "ipv6calc_inttypes.h" #include "libmac.h" #include "libeui64.h" #ifndef _libieee_h #define _libieee_h /* Structure */ typedef struct { const uint32_t id; const char *string_owner; const char *shortstring_owner; } s_ieee_oui; typedef struct { const uint32_t id; const uint32_t subid_begin; const uint32_t subid_end; const char *string_owner; const char *shortstring_owner; } s_ieee_oui28; typedef struct { const uint32_t id; const uint32_t subid_begin; const uint32_t subid_end; const char *string_owner; const char *shortstring_owner; } s_ieee_oui36; typedef struct { const uint32_t id; const uint32_t subid_begin; const uint32_t subid_end; const char *string_owner; const char *shortstring_owner; } s_ieee_iab; typedef struct { const uint32_t bits_00_23; const uint8_t type; const uint32_t mapping; } s_ieee_mapping; #define IEEE_IAB 0x1 #define IEEE_OUI36 0x2 #define IEEE_OUI28 0x3 #endif extern uint32_t libieee_map_oui_macaddr(const ipv6calc_macaddr *macaddrp); extern uint32_t libieee_map_oui_eui64addr(const ipv6calc_eui64addr *eui64addrp); extern int libieee_unmap_oui_macaddr(ipv6calc_macaddr *macaddrp, uint32_t map_value); extern int libieee_unmap_oui_eui64addr(ipv6calc_eui64addr *eui64addrp, uint32_t map_value); extern int libieee_check_oui36_iab(const uint32_t bits_00_23); extern int libieee_check_oui28(const uint32_t bits_00_23); ipv6calc-4.1.0/lib/libifinet6.c000066400000000000000000000112661444154247200162050ustar00rootroot00000000000000/* * Project : ipv6calc * File : libifinet6.c * Version : $Id: bcc62b44d5a02661398cd7141ed50d1529d2284b $ * Copyright : 2001-2017 by Peter Bieringer * * Information: * Function to convert an address string like shown in * Linux /proc/net/if_inet6 to IPv6 address structure * * some hints taken from ifconfig.c (net-tools) */ #include #include #include #include "libipv6calc.h" #include "libipv6calcdebug.h" #include "libifinet6.h" /* * function formats a given Linux /proc/net/if_inet6 format to normal one * * in : *addrstring = IPv6 address * out: *resultstring = result * ret: ==0: ok, !=0: error */ int libifinet6_ifinet6_to_ipv6addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv6addr *ipv6addrp) { int retval = 1; char tempstring[IPV6CALC_STRING_MAX]; char addr6p[8][5]; DEBUGPRINT_WA(DEBUG_libifinet6, "Got input '%s'", addrstring); /* simple test */ if ( strlen(addrstring) != 32 ) { snprintf(resultstring, resultstring_length, "Error in given hex string, has not 32 chars!"); retval = 1; return (retval); }; /* scan address into array */ retval = sscanf(addrstring, "%4s%4s%4s%4s%4s%4s%4s%4s\n", addr6p[0], addr6p[1], addr6p[2], addr6p[3], addr6p[4], addr6p[5], addr6p[6], addr6p[7]); if ( retval != 8 ) { snprintf(resultstring, resultstring_length, "Error splitting string %s, got only %d items!", addrstring, retval); retval = 1; return (retval); }; /* print out into temp string */ snprintf(tempstring, sizeof(tempstring), "%s:%s:%s:%s:%s:%s:%s:%s", addr6p[0], addr6p[1], addr6p[2], addr6p[3], addr6p[4], addr6p[5], addr6p[6], addr6p[7]); DEBUGPRINT_WA(DEBUG_libifinet6, "Filled: %s", tempstring); /* fill structure */ retval = addr_to_ipv6addrstruct(tempstring, resultstring, resultstring_length, ipv6addrp); return (retval); }; /* * function formats a given /proc/net/if_inet6 format to normal one with prefixlength * * in : *addrstring = IPv6 address * out: *resultstring = result * ret: ==0: ok, !=0: error */ int libifinet6_ifinet6_withprefixlength_to_ipv6addrstruct(const char *addrstring, const char *prefixlengthstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv6addr *ipv6addrp) { int retval = 1, result, tempint; char tempstring[IPV6CALC_STRING_MAX]; uint8_t prefixlength = 0; DEBUGPRINT_WA(DEBUG_libifinet6, "Got input addressstring: '%s', prefixlengthstring: '%s'", addrstring, prefixlengthstring); /* simple test on prefix length string*/ if ( strlen(prefixlengthstring) != 2 ) { snprintf(resultstring, resultstring_length, "Given prefixlength hex string '%s' has not 2 chars!", prefixlengthstring); retval = 1; return (retval); }; /* scan prefix length */ result = sscanf(prefixlengthstring, "%2x\n", &tempint); if ( result != 1 ) { snprintf(resultstring, resultstring_length, "error splitting string %s, got only %d items!", prefixlengthstring, result); retval = 1; return (retval); }; if ( (tempint < 0) || (tempint > 128) ) { snprintf(resultstring, resultstring_length, "decimal prefixlength '%d' out of range!", tempint); retval = 1; return (retval); }; prefixlength = (uint8_t) tempint; /* convert plain address */ result = libifinet6_ifinet6_to_ipv6addrstruct(addrstring, tempstring, sizeof(tempstring), ipv6addrp); if ( result != 0 ) { snprintf(resultstring, resultstring_length, "%s", tempstring); retval = 1; return (retval); }; /* set prefix length */ ipv6addrp->prefixlength = (uint8_t) prefixlength; ipv6addrp->flag_prefixuse = 1; DEBUGPRINT_WA(DEBUG_libifinet6, "Print: '%s'", resultstring); retval = 0; return (retval); }; /* * function formats a given IPv6 address to Linux /proc/net/if_inet6 format * * in : *addrstring = IPv6 address * out: *resultstring = result * ret: ==0: ok, !=0: error */ int libifinet6_ipv6addrstruct_to_ifinet6(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length) { int retval = 1; char tempstring[IPV6CALC_STRING_MAX]; /* print out array */ snprintf(tempstring, sizeof(tempstring), "%08x%08x%08x%08x %02x", (unsigned int) ipv6addr_getdword(ipv6addrp, 0), (unsigned int) ipv6addr_getdword(ipv6addrp, 1), (unsigned int) ipv6addr_getdword(ipv6addrp, 2), (unsigned int) ipv6addr_getdword(ipv6addrp, 3), (unsigned int) ipv6addrp->typeinfo & IPV6_ADDR_SCOPE_MASK); if ( (*ipv6addrp).flag_prefixuse == 1 ) { snprintf(resultstring, resultstring_length, "%s %02x", tempstring, (unsigned int) ipv6addrp->prefixlength); } else { snprintf(resultstring, resultstring_length, "%s", tempstring); }; DEBUGPRINT_WA(DEBUG_libifinet6, "print out: %s", resultstring); retval = 0; return (retval); }; ipv6calc-4.1.0/lib/libifinet6.h000066400000000000000000000014301444154247200162020ustar00rootroot00000000000000/* * Project : ipv6calc * File : libifinet6.h * Version : $Id: 00b7b95f1a6c90835db181557b65e3edf63a9c4e $ * Copyright : 2002-2014 by Peter Bieringer * * Information: * Header file for libifinet6.c */ #include "libipv6addr.h" /* prototypes */ extern int libifinet6_ifinet6_to_ipv6addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv6addr *ipv6addrp); extern int libifinet6_ifinet6_withprefixlength_to_ipv6addrstruct(const char *addrstring, const char *prefixlengthstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv6addr *ipv6addrp); extern int libifinet6_ipv6addrstruct_to_ifinet6(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length); ipv6calc-4.1.0/lib/libipaddr.c000066400000000000000000000056701444154247200161060ustar00rootroot00000000000000/* * Project : ipv6calc * File : libipaddr.c * Version : $Id: 1f2029f3bffb64ecc38cef6881702578e8ad8532 $ * Copyright : 2014-2021 by Peter Bieringer * * Information: * Function library for generic IPv4/6 address handling */ #include #include #include #include "config.h" #include "libipaddr.h" #include "libipv6addr.h" #include "libipv4addr.h" #include "ipv6calctypes.h" #include "libipv6calc.h" #include "libipv6calcdebug.h" #include "librfc1884.h" /* * stores the ipaddr structure in an IPv4/6 string * * in: ipaddr = IPv4/6 address structure * out: *resultstring = IPv4/6 address (modified) * ret: ==0: ok, !=0: error */ int libipaddr_ipaddrstruct_to_string(const ipv6calc_ipaddr *ipaddrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { int retval = 1; ipv6calc_ipv4addr ipv4addr; ipv6calc_ipv6addr ipv6addr; switch (ipaddrp->proto) { case IPV6CALC_PROTO_IPV4: ipv4addr_clearall(&ipv4addr); ipv4addr_setdword(&ipv4addr, ipaddrp->addr[0]); ipv4addr.prefixlength = ipaddrp->prefixlength; ipv4addr.flag_valid = ipaddrp->flag_valid; ipv4addr.flag_prefixuse = ipaddrp->flag_prefixuse; libipv4addr_ipv4addrstruct_to_string(&ipv4addr, resultstring, resultstring_length, formatoptions); break; case IPV6CALC_PROTO_IPV6: ipv6addr_clearall(&ipv6addr); ipv6addr_setdword(&ipv6addr, 0, ipaddrp->addr[0]); ipv6addr_setdword(&ipv6addr, 1, ipaddrp->addr[1]); ipv6addr_setdword(&ipv6addr, 2, ipaddrp->addr[2]); ipv6addr_setdword(&ipv6addr, 3, ipaddrp->addr[3]); ipv6addr.prefixlength = ipaddrp->prefixlength; ipv6addr.flag_valid = ipaddrp->flag_valid; ipv6addr.flag_prefixuse = ipaddrp->flag_prefixuse; if ((formatoptions & (FORMATOPTION_printuncompressed | FORMATOPTION_printfulluncompressed)) != 0) { libipv6addr_ipv6addrstruct_to_uncompaddr(&ipv6addr, resultstring, resultstring_length, formatoptions); } else { librfc1884_ipv6addrstruct_to_compaddr(&ipv6addr, resultstring, resultstring_length, formatoptions); }; break; default: ERRORPRINT_WA("unsupported proto=%d (FIX CODE)", ipaddrp->proto); exit(EXIT_FAILURE); break; }; DEBUGPRINT_WA(DEBUG_libipaddr, "result string: %s", resultstring); retval = 0; return (retval); }; /* * function clears the IPv6 structure * * mod: ipaddrp = pointer to IP address structure */ extern void libipaddr_clearall(ipv6calc_ipaddr *ipaddrp) { /* Clear IP address */ ipaddrp->addr[0] = 0; ipaddrp->addr[1] = 0; ipaddrp->addr[2] = 0; ipaddrp->addr[3] = 0; /* Clear IP address scope */ ipaddrp->scope = 0; /* Clear proto */ ipaddrp->proto = 0; /* Clear valid flag */ ipaddrp->flag_valid = 0; /* Clear prefix */ ipaddrp->prefixlength = 0; ipaddrp->flag_prefixuse = 0; /* Clear typeinfo */ ipaddrp->typeinfo1 = 0; ipaddrp->typeinfo2 = 0; return; }; ipv6calc-4.1.0/lib/libipaddr.h000066400000000000000000000122411444154247200161030ustar00rootroot00000000000000/* * Project : ipv6calc * File : libipaddr.h * Version : $Id: 83420c0758b5f3157f75a57cf2b269e8bbb0058e $ * Copyright : 2014-2021 by Peter Bieringer * * Information: * Header file for libipaddr.c */ #ifndef _libipaddr_h #define _libipaddr_h 1 #include "ipv6calc_inttypes.h" #include "libipv4addr.h" #include "libipv6addr.h" /************** * Defines * ************/ /* IPv4/6 address storage structure */ typedef struct { uint32_t addr[4]; /* 4x 32-bit, IPv4: only addr[0] used, addr[1-3]=0 */ uint32_t scope; /* address typeinfo/scope */ uint8_t proto; /* protocol */ uint8_t flag_valid; /* address structure filled */ uint8_t prefixlength; /* prefix length (0-128) 8 bit*/ int flag_prefixuse; /* =1 prefix length in use */ uint32_t typeinfo1; /* typeinfo 1 */ uint32_t typeinfo2; /* typeinfo 2 */ } ipv6calc_ipaddr; /************** * Macros * ************/ /* ipv4addr ptr -> ipaddr */ #define CONVERT_IPV4ADDRP_IPADDR(ipv4addrp, ipaddr) \ libipaddr_clearall(&ipaddr); \ ipaddr.typeinfo1 = (*ipv4addrp).typeinfo; \ ipaddr.typeinfo2 = (*ipv4addrp).typeinfo2; \ ipaddr.prefixlength = (*ipv4addrp).prefixlength; \ ipaddr.flag_prefixuse = (*ipv4addrp).flag_prefixuse; \ ipaddr.addr[0] = ipv4addr_getdword(ipv4addrp); \ ipaddr.addr[1] = 0; \ ipaddr.addr[2] = 0; \ ipaddr.addr[3] = 0; \ ipaddr.flag_valid = 1; \ ipaddr.proto = IPV6CALC_PROTO_IPV4; /* ipv4addr ptr -> ipaddr ptr */ #define CONVERT_IPV4ADDRP_IPADDRP(ipv4addrp, ipaddrp) \ libipaddr_clearall(ipaddrp); \ ipaddrp->typeinfo1 = ipv4addrp->typeinfo; \ ipaddrp->typeinfo2 = ipv4addrp->typeinfo2; \ ipaddrp->prefixlength = ipv4addrp->prefixlength; \ ipaddrp->flag_prefixuse = ipv4addrp->flag_prefixuse; \ ipaddrp->addr[0] = ipv4addr_getdword(ipv4addrp); \ ipaddrp->addr[1] = 0; \ ipaddrp->addr[2] = 0; \ ipaddrp->addr[3] = 0; \ ipaddrp->flag_valid = 1; \ ipaddrp->proto = IPV6CALC_PROTO_IPV4; /* ipv6addr ptr -> ipaddr */ #define CONVERT_IPV6ADDRP_IPADDR(ipv6addrp, ipaddr) \ libipaddr_clearall(&ipaddr); \ ipaddr.typeinfo1 = (*ipv6addrp).typeinfo; \ ipaddr.typeinfo2 = (*ipv6addrp).typeinfo2; \ ipaddr.prefixlength = (*ipv6addrp).prefixlength; \ ipaddr.flag_prefixuse = (*ipv6addrp).flag_prefixuse; \ ipaddr.addr[0] = ipv6addr_getdword(ipv6addrp, 0); \ ipaddr.addr[1] = ipv6addr_getdword(ipv6addrp, 1); \ ipaddr.addr[2] = ipv6addr_getdword(ipv6addrp, 2); \ ipaddr.addr[3] = ipv6addr_getdword(ipv6addrp, 3); \ ipaddr.flag_valid = 1; \ ipaddr.proto = IPV6CALC_PROTO_IPV6; /* ipv6addr ptr -> ipaddr ptr */ #define CONVERT_IPV6ADDRP_IPADDRP(ipv6addrp, ipaddrp) \ libipaddr_clearall(ipaddrp); \ ipaddrp->typeinfo1 = ipv6addrp->typeinfo; \ ipaddrp->typeinfo2 = ipv6addrp->typeinfo2; \ ipaddrp->prefixlength = ipv6addrp->prefixlength; \ ipaddrp->flag_prefixuse = ipv6addrp->flag_prefixuse; \ ipaddrp->addr[0] = ipv6addr_getdword(ipv6addrp, 0); \ ipaddrp->addr[1] = ipv6addr_getdword(ipv6addrp, 1); \ ipaddrp->addr[2] = ipv6addr_getdword(ipv6addrp, 2); \ ipaddrp->addr[3] = ipv6addr_getdword(ipv6addrp, 3); \ ipaddrp->flag_valid = 1; \ ipaddrp->proto = IPV6CALC_PROTO_IPV6; /* ipv6addr -> ipaddr */ #define CONVERT_IPV6ADDR_IPADDR(ipv6addr, ipaddr) \ libipaddr_clearall(&ipaddr); \ ipaddr.typeinfo1 = ipv6addr.typeinfo; \ ipaddr.typeinfo2 = ipv6addr.typeinfo2; \ ipaddr.prefixlength = ipv6addr.prefixlength; \ ipaddr.flag_prefixuse = ipv6addr.flag_prefixuse; \ ipaddr.addr[0] = ipv6addr_getdword(&ipv6addr, 0); \ ipaddr.addr[1] = ipv6addr_getdword(&ipv6addr, 1); \ ipaddr.addr[2] = ipv6addr_getdword(&ipv6addr, 2); \ ipaddr.addr[3] = ipv6addr_getdword(&ipv6addr, 3); \ ipaddr.flag_valid = 1; \ ipaddr.proto = IPV6CALC_PROTO_IPV6; /* ipaddr ptr -> ipv4addr */ #define CONVERT_IPADDRP_IPV4ADDR(ipaddrp, ipv4addr) \ ipv4addr_clearall(&ipv4addr); \ ipv4addr_setdword(&ipv4addr, ipaddrp->addr[0]); \ ipv4addr.typeinfo = ipaddrp->typeinfo1; \ ipv4addr.typeinfo2 = ipaddrp->typeinfo2; \ ipv4addr.prefixlength = ipaddrp->prefixlength; \ ipv4addr.flag_prefixuse = ipaddrp->flag_prefixuse; \ ipv4addr.flag_valid = 1; /* ipaddr -> ipv4addr */ #define CONVERT_IPADDR_IPV4ADDR(ipaddr, ipv4addr) \ ipv4addr_clearall(&ipv4addr); \ ipv4addr_setdword(&ipv4addr, ipaddr.addr[0]); \ ipv4addr.typeinfo = ipaddr.typeinfo1; \ ipv4addr.typeinfo2 = ipaddr.typeinfo2; \ ipv4addr.prefixlength = ipaddr.prefixlength; \ ipv4addr.flag_prefixuse = ipaddr.flag_prefixuse; \ ipv4addr.flag_valid = 1; /* ipaddr ptr -> ipv6addr */ #define CONVERT_IPADDRP_IPV6ADDR(ipaddrp, ipv6addr) \ ipv6addr_clearall(&ipv6addr); \ ipv6addr_setdword(&ipv6addr, 0, ipaddrp->addr[0]); \ ipv6addr_setdword(&ipv6addr, 1, ipaddrp->addr[1]); \ ipv6addr_setdword(&ipv6addr, 2, ipaddrp->addr[2]); \ ipv6addr_setdword(&ipv6addr, 3, ipaddrp->addr[3]); \ ipv6addr.typeinfo = ipaddrp->typeinfo1; \ ipv6addr.typeinfo2 = ipaddrp->typeinfo2; \ ipv6addr.prefixlength = ipaddrp->prefixlength; \ ipv6addr.flag_prefixuse = ipaddrp->flag_prefixuse; \ ipv6addr.flag_valid = 1; #endif extern int libipaddr_ipaddrstruct_to_string(const ipv6calc_ipaddr *ipaddrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions); extern void libipaddr_clearall(ipv6calc_ipaddr *ipaddrp); ipv6calc-4.1.0/lib/libipv4addr.c000066400000000000000000001666331444154247200163670ustar00rootroot00000000000000/* * Project : ipv6calc/lib * File : libipv4addr.c * Version : $Id: 95ff361371668cdc094acac0b1e9c2f46f77625d $ * Copyright : 2002-2021 by Peter Bieringer except the parts taken from kernel source * License : GNU GPL v2 * * Information: * Function library for IPv4 address handling */ #include #include #include #include #include #include "config.h" #include "libipv4addr.h" #include "ipv6calctypes.h" #include "libipv6calc.h" #include "libipv6calcdebug.h" #include "libipv6calc_db_wrapper.h" /* regex cache */ #define LIBIPV4ADDR_REGEX_CACHE_MAX 8 #define LIBIPV4ADDR_REGEX_IPV4_OCTAL 0 static regex_t libipv4addr_regex_cache_entry[LIBIPV4ADDR_REGEX_CACHE_MAX]; static int libipv4addr_regex_cache_valid[LIBIPV4ADDR_REGEX_CACHE_MAX]; /* text representation */ const s_type ipv6calc_ipv4addrtypestrings[] = { { IPV4_ADDR_ANY , "any" }, { IPV4_ADDR_UNICAST , "unicast" }, { IPV4_ADDR_MULTICAST , "multicast" }, { IPV4_ADDR_ANYCAST , "anycast" }, { IPV4_ADDR_BROADCAST , "broadcast" }, { IPV4_ADDR_LOOPBACK , "loopback" }, { IPV4_ADDR_UNSPECIFIED , "unspecified" }, { IPV4_ADDR_UNKNOWN , "unknown" }, { IPV4_ADDR_RESERVED , "reserved" }, { IPV4_ADDR_ZEROCONF , "zeroconf" }, { IPV4_ADDR_SITELOCAL , "site-local" }, { IPV4_ADDR_ANONYMIZED , "anonymized" }, { IPV4_ADDR_ANONYMIZED_GEONAMEID, "anonymized-geonameid" }, { IPV4_ADDR_GLOBAL , "global" }, { IPV4_ADDR_6TO4RELAY , "6to4relay" }, { IPV4_ADDR_LISP , "lisp" }, { IPV4_ADDR_LISP_PETR , "lisp-proxyegresstunnelrouter-anycast" }, { IPV4_ADDR_LISP_MAP_RESOLVER , "lisp-mapresolver-anycast" }, }; const int ipv6calc_ipv4addrtypestrings_entries = MAXENTRIES_ARRAY(ipv6calc_ipv4addrtypestrings); /* * function returns an octet of an IPv4 address * * in: ipv4addrp = pointer to IPv4 address structure * in: numoctet = number of octet (0 = MSB, 3 = LSB) * additional: calls exit on out of range */ uint8_t ipv4addr_getoctet(const ipv6calc_ipv4addr *ipv4addrp, const unsigned int numoctet) { uint8_t retval; if ( numoctet > 3 ) { ERRORPRINT_WA("given octet number '%u' is out of range!\n", numoctet); exit(EXIT_FAILURE); }; retval = (uint8_t) ( (ipv4addrp->in_addr.s_addr >> ( numoctet << 3)) & 0xff ); return (retval); }; /* * function returns a word of an IPv4 address * * in: ipv6addrp = pointer to IPv4 address structure * in: numword = number of word (0 = MSB, 1 = LSB) * additional: calls exit on out of range */ uint16_t ipv4addr_getword(const ipv6calc_ipv4addr *ipv4addrp, const unsigned int numword) { uint16_t retval; if ( numword > 1 ) { ERRORPRINT_WA("given word number '%u' is out of range!", numword); exit(EXIT_FAILURE); }; retval = (uint16_t) ( (ipv4addr_getoctet(ipv4addrp, (numword << 1)) << 8 ) | ipv4addr_getoctet(ipv4addrp, (numword << 1) + 1) ); return (retval); }; /* * function returns a dword of an IPv4 address * * in: ipv4addrp = pointer to IPv4 address structure * additional: calls exit on out of range */ uint32_t ipv4addr_getdword(const ipv6calc_ipv4addr *ipv4addrp) { uint32_t retval; retval = (uint32_t) ( (ipv4addr_getword(ipv4addrp, 0) << 16) | ipv4addr_getword(ipv4addrp, 1) ); return (retval); }; /* * function sets an octet of an IPv4 address * * mod: ipv4addrp = pointer to IPv4 address structure * in: numoctet = number of word (0 = MSB, 3 = LSB) * in: value = value to set * additional: calls exit on out of range */ void ipv4addr_setoctet(ipv6calc_ipv4addr *ipv4addrp, const unsigned int numoctet, const uint8_t value) { if ( numoctet > 3 ) { ERRORPRINT_WA("given octet number '%u' is out of range!", numoctet); exit(EXIT_FAILURE); }; ipv4addrp->in_addr.s_addr &= ~ (0xff << (numoctet << 3) ); ipv4addrp->in_addr.s_addr |= (value & 0xff) << (numoctet << 3); return; }; /* * function sets a word of an IPv4 address * * mod: ipv4addrp = pointer to IPv4 address structure * in: numword = number of word (0 = MSB, 1 = LSB) * in: value = value to set * additional: calls exit on out of range */ void ipv4addr_setword(ipv6calc_ipv4addr *ipv4addrp, const unsigned int numword, const uint16_t value) { unsigned int n; unsigned int v; if ( numword > 1 ) { ERRORPRINT_WA("given word number '%u' is out of range!", numword); exit(EXIT_FAILURE); }; n = numword << 1; v = (value & 0xff00) >> 8; DEBUGPRINT_WA(DEBUG_libipv4addr, "set octet %u: %02x (%u %04x)", n, v, numword, value); ipv4addr_setoctet(ipv4addrp, n, v); n = (numword << 1) + 1; v = value & 0xff; DEBUGPRINT_WA(DEBUG_libipv4addr, "set octet %u: %02x (%u %04x)", n, v, numword, value); ipv4addr_setoctet(ipv4addrp, n, v); return; }; /* * function sets a dword of an IPv4 address * * mod: ipv4addrp = pointer to IPv4 address structure * in: value = value to set * additional: calls exit on out of range */ void ipv4addr_setdword(ipv6calc_ipv4addr *ipv4addrp, const uint32_t value) { unsigned int n; unsigned int v; if ( value > 0xffffffffu ) { ERRORPRINT_WA("given value '%x' is out of range!", value); exit(EXIT_FAILURE); }; n = 0; v = (value & 0xffff0000u) >> 16; DEBUGPRINT_WA(DEBUG_libipv4addr, "set word %u: %04x (%08x)", n, v, value); ipv4addr_setword(ipv4addrp, n, v); n = 1; v = value & 0xffffu; DEBUGPRINT_WA(DEBUG_libipv4addr, "set word %u: %04x (%08x)", n, v, value); ipv4addr_setword(ipv4addrp, n, v); return; }; /* * function clears the IPv4 structure * * mod: ipv4addrp = pointer to IPv4 address structure */ void ipv4addr_clear(ipv6calc_ipv4addr *ipv4addrp) { ipv4addrp->in_addr.s_addr = 0; /* Clear valid flag */ ipv4addrp->flag_valid = 0; /* Clear test mode */ ipv4addrp->test_mode = 0; return; }; /* * function clears the IPv4 structure * * mod: ipv4addrp = pointer to IPv4 address structure */ void ipv4addr_clearall(ipv6calc_ipv4addr *ipv4addrp) { ipv4addr_clear(ipv4addrp); (*ipv4addrp).prefixlength = 0; (*ipv4addrp).flag_prefixuse = 0; return; }; /* * function copies the IPv4 structure * * in: ipv4addrp_src = pointer to IPv4 address structure * mod: ipv4addrp_dst = pointer to IPv4 address structure */ void ipv4addr_copy(ipv6calc_ipv4addr *ipv4addrp_dst, const ipv6calc_ipv4addr *ipv4addrp_src) { *(ipv4addrp_dst) = *(ipv4addrp_src); return; }; /* * function compares the IPv4 structure * * in: ipv4addrp1 = pointer to IPv4 address structure * in: ipv4addrp2 = pointer to IPv4 address structure * in: compare_flags: * 0=less than/equal/greater than * 1=honor prefix length of addr2 * returns: 0: addr2 equal with addr1, 1: addr1 > addr2, -1: addr1 < addr2 (compare_flags == 0) * returns: 0: addr1 equal with addr2 or covered by addr2/prefix (compare_flags == 1) */ int ipv4addr_compare(const ipv6calc_ipv4addr *ipv4addrp1, const ipv6calc_ipv4addr *ipv4addrp2, const uint16_t compare_flags) { uint32_t ipv4addr1 = ipv4addr_getdword(ipv4addrp1); uint32_t ipv4addr2 = ipv4addr_getdword(ipv4addrp2); DEBUGPRINT_WA(DEBUG_libipv4addr, "compare addr1 with addr2 0x%08x/%d 0x%08x/%d (compare flags: %08x)", ipv4addr1, ipv4addrp1->prefixlength, ipv4addr2, ipv4addrp2->prefixlength, compare_flags); if (compare_flags == 1) { // honors prefix of addr2 if (ipv4addrp2->flag_prefixuse == 1) { /* mask addr2 with prefix length of addr1 */ ipv4addr1 &= (0xffffffffu << ((unsigned int) 32 - ipv4addrp2->prefixlength)); /* mask addr1 with prefix length of addr1 */ ipv4addr2 &= (0xffffffffu << ((unsigned int) 32 - ipv4addrp2->prefixlength)); }; DEBUGPRINT_WA(DEBUG_libipv4addr, "compare addr1 with addr2 0x%08x 0x%08x (after masking with prefix length of addr2)", ipv4addr1, ipv4addr2); if (ipv4addr1 != ipv4addr2) { return(1); }; } else if (compare_flags == 0) { if (ipv4addr1 > ipv4addr2) { return(1); } else if (ipv4addr1 < ipv4addr2) { return(-1); } else { }; }; return(0); }; /* * Set type of an IPv4 address * * in: ipv4addrp = pointer to IPv4 address structure * flag_reset = 1: redetect type */ void ipv4addr_settype(ipv6calc_ipv4addr *ipv4addrp, int flag_reset) { uint32_t typeinfo = 0, typeinfo2 = 0; if (flag_reset == 1) { ipv4addrp->flag_typeinfo = 0; }; if (ipv4addrp->flag_typeinfo == 0) { //typeinfo = ipv4addr_gettype(ipv4addrp, &typeinfo2); typeinfo = ipv4addr_gettype(ipv4addrp); ipv4addrp->typeinfo = typeinfo; ipv4addrp->typeinfo2 = typeinfo2; ipv4addrp->flag_typeinfo = 1; }; return; }; /* * function gets type of an IPv4 address */ uint32_t ipv4addr_gettype(const ipv6calc_ipv4addr *ipv4addrp) { uint32_t type = 0, c, p; uint32_t ipv4 = ipv4addr_getdword(ipv4addrp); int i; DEBUGPRINT_WA(DEBUG_libipv4addr, "Got IPv4 address: 0x%08x", ipv4); /* check for anonymized IPv4 address */ if ((ipv4 & 0xf0000000u) == 0xf0000000u) { DEBUGPRINT_NA(DEBUG_libipv4addr, "Check for anonymized IPv4 address"); // count payload bits c = 0; p = 0x00000001; for (i = 0; i < 27; i++) { if ((ipv4 & p) != 0) { c++; }; p <<= 1; }; DEBUGPRINT_WA(DEBUG_libipv4addr, "Check for anonymized address, parity count c=%d", c); if (((c & 0x1) ^ 0x1) == ((ipv4 >> 27) & 0x1)) { // odd parity: check country code (limited value) p = (ipv4 >> 17) & 0x3ff; if ((p <= COUNTRYCODE_INDEX_LETTER_MAX) || (p == COUNTRYCODE_INDEX_UNKNOWN) || ((p >= COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MIN) && (p <= COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MAX))) { DEBUGPRINT_NA(DEBUG_libipv4addr, "Address is an anonymized one (KeepType/ASN/CountryCode)"); type = IPV4_ADDR_ANONYMIZED | IPV4_ADDR_UNICAST| IPV4_ADDR_GLOBAL; if ((ipv4 & 0x11fff) == 0x11800) { DEBUGPRINT_NA(DEBUG_libipv4addr, "Address is a LISP unicast one"); type |= IPV4_ADDR_LISP; }; goto END_ipv4addr_gettype; }; } else if (((c & 0x1) ^ 0x0) == ((ipv4 >> 27) & 0x1)) { //even parity: check GeonameID source p = (ipv4 >> 24) & 0x7; if (p == 0x7) { DEBUGPRINT_NA(DEBUG_libipv4addr, "Address is potentially an anonymized one (KeepType/GeonameID: LISP)"); if ((ipv4 & 0x11fff) == 0x11800) { // 11 bit LISP information still not encoded DEBUGPRINT_NA(DEBUG_libipv4addr, "Address is a LISP unicast one"); type = IPV4_ADDR_ANONYMIZED | IPV4_ADDR_UNICAST| IPV4_ADDR_GLOBAL | IPV4_ADDR_ANONYMIZED_GEONAMEID | IPV4_ADDR_LISP; goto END_ipv4addr_gettype; }; }; if (((p > IPV6CALC_DB_GEO_GEONAMEID_TYPE_UNKNOWN) \ && p <= IPV6CALC_DB_GEO_GEONAMEID_TYPE_CITY)) { DEBUGPRINT_NA(DEBUG_libipv4addr, "Address is an anonymized one (KeepGeonameID)"); type = IPV4_ADDR_ANONYMIZED | IPV4_ADDR_UNICAST| IPV4_ADDR_GLOBAL | IPV4_ADDR_ANONYMIZED_GEONAMEID; goto END_ipv4addr_gettype; }; } else { DEBUGPRINT_NA(DEBUG_libipv4addr, "Address is not a detected anonymized one"); }; }; if (ipv4 == 0x00000000u) { type = IPV4_ADDR_UNSPECIFIED; } else if ((ipv4 & 0xff000000u) == 0x0a000000u) { // 10.0.0.0/8 (RFC 1918) type = IPV4_ADDR_UNICAST | IPV4_ADDR_SITELOCAL; } else if ((ipv4 & 0xffc00000u) == 0x64400000u) { // 100.64.0.0/10 (RFC 6598) type = IPV4_ADDR_UNICAST | IPV4_ADDR_RESERVED; } else if ((ipv4 & 0xff000000u) == 0x7f000000u) { // 127.0.0.0/8 (RFC 1122) type = IPV4_ADDR_LOOPBACK; } else if ((ipv4 & 0xffff0000u) == 0xa9fe0000u) { // 169.254.0.0/16 (RFC 1918) type = IPV4_ADDR_UNICAST | IPV4_ADDR_ZEROCONF | IPV4_ADDR_SITELOCAL; } else if ((ipv4 & 0xfff00000u) == 0xac100000u) { // 172.16.0.0/12 (RFC 1918) type = IPV4_ADDR_UNICAST | IPV4_ADDR_SITELOCAL; } else if ((ipv4 & 0xffff0000u) == 0xc0a80000u) { // 192.168.0.0/16 (RFC 1918) type = IPV4_ADDR_UNICAST | IPV4_ADDR_SITELOCAL; } else if ((ipv4 & 0xffffff00u) == 0xc0000000u) { // 192.0.0.0/24 (RFC 5736) type = IPV4_ADDR_UNICAST | IPV4_ADDR_RESERVED; } else if ((ipv4 & 0xffffff00u) == 0xc0000200u) { // 192.0.2.0/24 (RFC 3330) type = IPV4_ADDR_UNICAST | IPV4_ADDR_RESERVED; } else if ((ipv4 & 0xffffff00u) == 0xc0586300u) { // 192.88.99.0/24 (RFC 3068) type = IPV4_ADDR_ANYCAST | IPV4_ADDR_6TO4RELAY; } else if ((ipv4 & 0xfffe0000u) == 0xc6120000u) { // 198.18.0.0/15 (RFC 2544) type = IPV4_ADDR_UNICAST | IPV4_ADDR_RESERVED; } else if ((ipv4 & 0xffffff00u) == 0xc6336400u) { // 198.51.100.0/24 (RFC 5737) type = IPV4_ADDR_UNICAST | IPV4_ADDR_RESERVED; } else if ((ipv4 & 0xffffff00u) == 0xcb007100u) { // 203.0.113.0/24 (RFC 5737) type = IPV4_ADDR_UNICAST | IPV4_ADDR_RESERVED; } else if ((ipv4 & 0xffff0000u) == 0x99100000u) { // 153.16.0.0/16 (RFC6830) type = IPV4_ADDR_UNICAST | IPV4_ADDR_GLOBAL | IPV4_ADDR_LISP; } else if ((ipv4 & 0xffffff00u) == 0xc169b700u) { // 193.105.183.0/24 (RFC6830) type = IPV4_ADDR_ANYCAST | IPV4_ADDR_GLOBAL | IPV4_ADDR_LISP | IPV4_ADDR_LISP_PETR; } else if ((ipv4 & 0xffffff00u) == 0x5bdcc900u) { // 91.220.201.0/24 (RFC6830) type = IPV4_ADDR_ANYCAST | IPV4_ADDR_GLOBAL | IPV4_ADDR_LISP | IPV4_ADDR_LISP_MAP_RESOLVER; } else if ((ipv4 & 0xf0000000u) == 0xe0000000u) { // 224.0.0.0/4 (RFC 3171) type = IPV4_ADDR_MULTICAST; } else if ((ipv4 & 0xffffffffu) == 0xffffffffu) { // 255.255.255.255/32 type = IPV4_ADDR_BROADCAST; } else if ((ipv4 & 0xff000000u) == 0x00000000u) { // 0.0.0.0/8 type = IPV4_ADDR_RESERVED; } else if ((ipv4 & 0xf0000000u) == 0xf0000000u) { // 240.0.0.0/4 (RFC 1112) type = IPV4_ADDR_RESERVED; } else { type = IPV4_ADDR_UNICAST | IPV4_ADDR_GLOBAL; }; DEBUGPRINT_WA(DEBUG_libipv4addr, "return typeinfo: 0x%08x", type); END_ipv4addr_gettype: return(type); }; /* * function stores an IPv4 address string into a structure * * in : *addrstring = IPv4 address * out: *resultstring = error message * out: ipv4addrp = changed IPv4 address structure * ret: ==0: ok, !=0: error */ int addr_to_ipv4addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv4addr *ipv4addrp) { int in_prefix_len = 0, digit = 0; unsigned int compat[5], i; uint32_t typeinfo; const char *p; int revalue; if (resultstring_length > 0) resultstring[0] = '\0'; /* clear result string */ DEBUGPRINT_WA(DEBUG_libipv4addr, "Got input '%s'", addrstring); if (*addrstring == '\0') { snprintf(resultstring, resultstring_length, "Error in given dot notated IPv4 address: empty string!"); return (1); } memset(compat, 0, sizeof(compat)); // catch octal notation if (libipv4addr_regex_cache_valid[LIBIPV4ADDR_REGEX_IPV4_OCTAL] == 0) { // compile and store in cache revalue = regcomp(&libipv4addr_regex_cache_entry[LIBIPV4ADDR_REGEX_IPV4_OCTAL], "^0[0-7]{3}\\.0[0-7]{3}\\.0[0-7]{3}\\.0[0-7]{3}(/[0-9]{1,2})?$", REG_EXTENDED); if (revalue != 0) { fprintf(stderr, "FATAL - regular expression compilation issue"); exit(1); }; libipv4addr_regex_cache_valid[LIBIPV4ADDR_REGEX_IPV4_OCTAL] = 1; }; if (regexec(&libipv4addr_regex_cache_entry[LIBIPV4ADDR_REGEX_IPV4_OCTAL], addrstring, 0 , NULL, 0) == 0) { if (sscanf(addrstring, "0%3o.0%3o.0%3o.0%3o/%2d", &compat[0], &compat[1], &compat[2], &compat[3], &compat[4]) == 5) { // IPv4 address in octal format separated by . with prefix length in_prefix_len = 1; goto END_addr_to_ipv4addrstruct; } else if (sscanf(addrstring, "0%3o.0%3o.0%3o.0%3o", &compat[0], &compat[1], &compat[2], &compat[3]) == 4) { // IPv4 address in octal format separated by . goto END_addr_to_ipv4addrstruct; }; }; // standard but potentially shortened notation for (p = addrstring, i = 0; *p && i < (in_prefix_len ? 5 : 4); p++) { if (*p >= '0' && *p <= '9') { digit = 1; if (in_prefix_len && p[0] == '0' && p[1] && compat[i] == 0) { snprintf(resultstring, resultstring_length, "Error in given IPv4 address, '%s' is not valid (CIDR prefix length cannot start with zero)!", addrstring); return (1); } compat[i] = compat[i] * 10 + (*p - '0'); if (compat[i] > (in_prefix_len ? 32 : 255)) { snprintf(resultstring, resultstring_length, "Error in given IPv4 address, '%s' is not valid (%d on position %d)!", addrstring, compat[i], (int)(p - addrstring + 1)); return (1); } } else if (*p == '.' && !in_prefix_len && digit) { digit = 0; i++; } else if (*p == '/' && !in_prefix_len && p != addrstring) { digit = 0; in_prefix_len = 1; i = 4; } else { snprintf(resultstring, resultstring_length, "Error in given IPv4 address, '%s' is not valid (illegal char at %d)!", addrstring, (int)(p - addrstring + 1)); return (1); } } if (p[-1] == '/') { snprintf(resultstring, resultstring_length, "Error in given IPv4 address, '%s' is not valid (illegal char at %d)!", addrstring, (int)(p - addrstring)); return (1); } if (i >= (in_prefix_len ? 5 : 4)) { snprintf(resultstring, resultstring_length, "Error in given IPv4 address, '%s' is not valid (more than 3 dots)!", addrstring); return (1); } /* do not allow '1.2', but allow '1.2/12' */ if (!in_prefix_len && i < 3) { snprintf(resultstring, resultstring_length, "Error in given IPv4 address, '%s' is not valid (missing %d dots)!", addrstring, 3-i); return (1); } if (!in_prefix_len && p[-1] == '.') { snprintf(resultstring, resultstring_length, "Error in given IPv4 address, '%s' is not valid (missing last octet)!", addrstring); return (1); } END_addr_to_ipv4addrstruct: ipv4addr_clearall(ipv4addrp); if (in_prefix_len) { ipv4addrp->flag_prefixuse = 1; if (compat[4] > 32) { snprintf(resultstring, resultstring_length, "Error in given IPv4 address, '%s' is not valid (prefix length is out-of-range 0..32)!", addrstring); return (1); }; ipv4addrp->prefixlength = (uint8_t) compat[4]; DEBUGPRINT_WA(DEBUG_libipv4addr, "prefix length %u", (unsigned int) ipv4addrp->prefixlength); DEBUGPRINT_WA(DEBUG_libipv4addr, "flag_prefixuse %d", ipv4addrp->flag_prefixuse); } for ( i = 0; i <= 3; i++ ) { DEBUGPRINT_WA(DEBUG_libipv4addr, "Octett %d = %d", i, compat[i]); if (compat[i] > 255) { snprintf(resultstring, resultstring_length, "Error in given IPv4 address, '%s' is not valid (decimal value %d on position %d)!", addrstring, compat[i], i+1); return (1); }; ipv4addr_setoctet(ipv4addrp, i, compat[i]); }; DEBUGPRINT_WA(DEBUG_libipv4addr, "In structure %03u %03u %03u %03u", (unsigned int) ipv4addr_getoctet(ipv4addrp, 0), (unsigned int) ipv4addr_getoctet(ipv4addrp, 1), (unsigned int) ipv4addr_getoctet(ipv4addrp, 2), (unsigned int) ipv4addr_getoctet(ipv4addrp, 3)); DEBUGPRINT_WA(DEBUG_libipv4addr, "In structure %8x", (unsigned int) ipv4addr_getdword(ipv4addrp)); typeinfo = ipv4addr_gettype(ipv4addrp); DEBUGPRINT_WA(DEBUG_libipv4addr, "Got typeinfo: 0x%08x", typeinfo); ipv4addrp->typeinfo = typeinfo; ipv4addrp->flag_valid = 1; return (0); }; /* * function stores an IPv4 hexadecimal string into a structure * * in : *addrstring = IPv4 address in hex format * out: *resultstring = error message * out: ipv4addrp = changed IPv4 address structure * ret: ==0: ok, !=0: error */ int addrhex_to_ipv4addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv4addr *ipv4addrp, const int flag_reverse) { int retval = 1, result, i; char *addronlystring, *cp; int expecteditems = 0; int compat[4]; char tempstring[IPV6CALC_STRING_MAX], *cptr, **ptrptr; uint32_t typeinfo; ptrptr = &cptr; resultstring[0] = '\0'; /* clear result string */ DEBUGPRINT_WA(DEBUG_libipv4addr, "Got input '%s'", addrstring); if ((strlen(addrstring) < 7) || (strlen(addrstring) > 11)) { /* min: ffffffff */ /* max: ffffffff/32 */ snprintf(resultstring, resultstring_length, "Error in given hex notated IPv4 address, has not 7 to 11 chars!"); return (1); }; if (strlen(addrstring) >= sizeof(tempstring)) { ERRORPRINT_WA("Input too long: %s", addrstring); return (1); }; snprintf(tempstring, sizeof(tempstring), "%s", addrstring); ipv4addr_clearall(ipv4addrp); /* save prefix length first, if available */ addronlystring = strtok_r(tempstring, "/", ptrptr); cp = strtok_r(NULL, "/", ptrptr); if ( cp != NULL ) { i = atoi(cp); if (i < 0 || i > 32 ) { snprintf(resultstring, resultstring_length, "Error in given hex notated IPv4 address, illegal prefix length: '%s'", cp); retval = 1; return (retval); }; ipv4addrp->flag_prefixuse = 1; ipv4addrp->prefixlength = (uint8_t) i; DEBUGPRINT_WA(DEBUG_libipv4addr, "prefix length %u", (unsigned int) ipv4addrp->prefixlength); DEBUGPRINT_WA(DEBUG_libipv4addr, "flag_prefixuse %d", ipv4addrp->flag_prefixuse); }; /* check length 3 */ if ((flag_reverse == 0 && (strlen(addronlystring) < 7 || strlen(addronlystring) > 8)) || (flag_reverse != 0 && strlen(addronlystring) != 8)) { snprintf(resultstring, resultstring_length, "Error in given hex notated IPv4 address, '%s' is not valid (not proper length)!", addronlystring); retval = 1; return (retval); }; /* clear variables */ for ( i = 0; i <= 3; i++ ) { compat[i] = 0; }; expecteditems = 4; if (flag_reverse != 0) { result = sscanf(addronlystring, "%2x%2x%2x%2x", &compat[3], &compat[2], &compat[1], &compat[0]); } else { if (strlen(addronlystring) == 7) { result = sscanf(addronlystring, "%1x%2x%2x%2x", &compat[0], &compat[1], &compat[2], &compat[3]); } else { result = sscanf(addronlystring, "%2x%2x%2x%2x", &compat[0], &compat[1], &compat[2], &compat[3]); }; }; for ( i = 0; i <= 3; i++ ) { if ( ( compat[i] < 0 ) || ( compat[i] > 255 ) ) { snprintf(resultstring, resultstring_length, "Error in given hex notated IPv4 address, '%s' is not valid (decimal value %d on position %d)!", addronlystring, compat[i], i+1); retval = 1; return (retval); }; }; DEBUGPRINT_WA(DEBUG_libipv4addr, "reading into array, got items: %d", result); if ( result != expecteditems ) { snprintf(resultstring, resultstring_length, "Error in given hex notated IPv4 address, splitting '%s' returns %d items instead of %d!", addronlystring, result, expecteditems); retval = 1; return (retval); }; /* copy into structure */ for ( i = 0; i <= 3; i++ ) { DEBUGPRINT_WA(DEBUG_libipv4addr, "Octett %d = %d", i, compat[i]); ipv4addr_setoctet(ipv4addrp, (unsigned int) i, (unsigned int) compat[i]); }; DEBUGPRINT_WA(DEBUG_libipv4addr, "In structure %03u %03u %03u %03u", (unsigned int) ipv4addr_getoctet(ipv4addrp, 0), (unsigned int) ipv4addr_getoctet(ipv4addrp, 1), (unsigned int) ipv4addr_getoctet(ipv4addrp, 2), (unsigned int) ipv4addr_getoctet(ipv4addrp, 3)); DEBUGPRINT_WA(DEBUG_libipv4addr, "In structure %8x", (unsigned int) ipv4addr_getdword(ipv4addrp)); typeinfo = ipv4addr_gettype(ipv4addrp); DEBUGPRINT_WA(DEBUG_libipv4addr, "Got typeinfo: 0x%08x", typeinfo); ipv4addrp->typeinfo = typeinfo; ipv4addrp->flag_valid = 1; retval = 0; return (retval); }; /* * stores the ipv4addr structure in a string * * in: ipv4addr = IPv4 address structure * out: *resultstring = IPv4 address string * ret: ==0: ok, !=0: error */ int libipv4addr_ipv4addrstruct_to_string(const ipv6calc_ipv4addr *ipv4addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { char tempstring[IPV6CALC_STRING_MAX]; if ((formatoptions & FORMATOPTION_machinereadable) != 0) { snprintf(resultstring, resultstring_length, "IPV4=%u.%u.%u.%u", (unsigned int) ipv4addr_getoctet(ipv4addrp, 0), (unsigned int) ipv4addr_getoctet(ipv4addrp, 1), (unsigned int) ipv4addr_getoctet(ipv4addrp, 2), (unsigned int) ipv4addr_getoctet(ipv4addrp, 3)); } else if ((formatoptions & FORMATOPTION_print_octal) != 0) { snprintf(tempstring, sizeof(tempstring), "0%03o.0%03o.0%03o.0%03o", (unsigned int) ipv4addr_getoctet(ipv4addrp, 0), (unsigned int) ipv4addr_getoctet(ipv4addrp, 1), (unsigned int) ipv4addr_getoctet(ipv4addrp, 2), (unsigned int) ipv4addr_getoctet(ipv4addrp, 3)); if ((ipv4addrp->flag_prefixuse == 1) && ((formatoptions & FORMATOPTION_no_prefixlength) == 0)) { snprintf(resultstring, resultstring_length, "%s/%d", tempstring, ipv4addrp->prefixlength); } else { snprintf(resultstring, resultstring_length, "%s", tempstring); }; } else { int oct_to_print = 4; if ((formatoptions & FORMATOPTION_printcompressed) != 0) { for (; oct_to_print > 1; oct_to_print--) if (ipv4addr_getoctet(ipv4addrp, oct_to_print-1) != 0) break; } switch (oct_to_print) { case 4: snprintf(tempstring, sizeof(tempstring), "%u.%u.%u.%u", (unsigned int) ipv4addr_getoctet(ipv4addrp, 0), (unsigned int) ipv4addr_getoctet(ipv4addrp, 1), (unsigned int) ipv4addr_getoctet(ipv4addrp, 2), (unsigned int) ipv4addr_getoctet(ipv4addrp, 3)); break; case 3: snprintf(tempstring, sizeof(tempstring), "%u.%u.%u", (unsigned int) ipv4addr_getoctet(ipv4addrp, 0), (unsigned int) ipv4addr_getoctet(ipv4addrp, 1), (unsigned int) ipv4addr_getoctet(ipv4addrp, 2)); break; case 2: snprintf(tempstring, sizeof(tempstring), "%u.%u", (unsigned int) ipv4addr_getoctet(ipv4addrp, 0), (unsigned int) ipv4addr_getoctet(ipv4addrp, 1)); break; case 1: snprintf(tempstring, sizeof(tempstring), "%u", (unsigned int) ipv4addr_getoctet(ipv4addrp, 0)); break; default: /* should not happen here */ fprintf(stderr, "%s/%s: 'oct_to_print' has an unexpected illegal value!\n", __FILE__, __func__); exit(EXIT_FAILURE); } if ((ipv4addrp->flag_prefixuse == 1) && ((formatoptions & FORMATOPTION_no_prefixlength) == 0)) { snprintf(resultstring, resultstring_length, "%s/%d", tempstring, ipv4addrp->prefixlength); } else { snprintf(resultstring, resultstring_length, "%s", tempstring); }; }; return(0); }; /* * converts IPv4addr_structure to a reverse decimal format string * * in : *ipv4addrp = IPv4 address structure * out: *resultstring = result * ret: ==0: ok, !=0: error */ int libipv4addr_to_reversestring(const ipv6calc_ipv4addr *ipv4addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { int retval = 1; uint8_t octet; int bit_start, bit_end, nbit; char tempstring[IPV6CALC_STRING_MAX]; unsigned int noctet; if ( ((formatoptions & (FORMATOPTION_printprefix | FORMATOPTION_printsuffix | FORMATOPTION_printstart | FORMATOPTION_printend)) == 0 ) && ((*ipv4addrp).flag_prefixuse != 0) ) { bit_start = 1; bit_end = (int) (*ipv4addrp).prefixlength; } else { bit_start = 1; bit_end = 32; }; DEBUGPRINT_WA(DEBUG_libipv4addr, "start bit %d end bit %d", bit_start, bit_end); /* print out nibble format */ /* 31 is lowest bit, 0 is highest bit */ resultstring[0] = '\0'; for (nbit = bit_end - 1; nbit >= bit_start - 1; nbit = nbit - 8) { /* calculate octet (8 bit) */ noctet = ( ((unsigned int) nbit) & 0x78) >> 3; /* extract octet */ octet = ipv4addr_getoctet(ipv4addrp, noctet); DEBUGPRINT_WA(DEBUG_libipv4addr, "bit: %d = noctet: %u, value: %x", nbit, noctet, (unsigned int) octet); snprintf(tempstring, sizeof(tempstring), "%s%u", resultstring, (unsigned int) octet); snprintf(resultstring, resultstring_length, "%s.", tempstring); }; if (bit_start == 1) { snprintf(tempstring, sizeof(tempstring), "%sin-addr.arpa.", resultstring); }; snprintf(resultstring, resultstring_length, "%s", tempstring); if ( (formatoptions & FORMATOPTION_printuppercase) != 0 ) { string_to_upcase(resultstring); }; if ( (formatoptions & FORMATOPTION_printmirrored) != 0 ) { string_to_reverse_dotted(resultstring, resultstring_length); }; DEBUGPRINT_WA(DEBUG_libipv4addr, "Print out: %s", resultstring); retval = 0; return (retval); }; /* * function prints an IPv4 address in native octal format * * in: ipv4addr = IPv4 address structure * in: formatoptions * out: *resultstring = IPv4 address (modified) * ret: ==0: ok, !=0: error */ int libipv4addr_to_octal(const ipv6calc_ipv4addr *ipv4addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { int retval = 1; char tempstring[IPV6CALC_STRING_MAX]; if ( (formatoptions & FORMATOPTION_printfulluncompressed) != 0 ) { snprintf(tempstring, sizeof(tempstring), "\\0%03o\\0%03o\\0%03o\\0%03o", (unsigned int) ipv4addr_getoctet(ipv4addrp, 0), \ (unsigned int) ipv4addr_getoctet(ipv4addrp, 1), \ (unsigned int) ipv4addr_getoctet(ipv4addrp, 2), \ (unsigned int) ipv4addr_getoctet(ipv4addrp, 3) \ ); } else { snprintf(tempstring, sizeof(tempstring), "\\0%o\\0%o\\0%o\\0%o", (unsigned int) ipv4addr_getoctet(ipv4addrp, 0), \ (unsigned int) ipv4addr_getoctet(ipv4addrp, 1), \ (unsigned int) ipv4addr_getoctet(ipv4addrp, 2), \ (unsigned int) ipv4addr_getoctet(ipv4addrp, 3) \ ); }; snprintf(resultstring, resultstring_length, "%s", tempstring); retval = 0; return (retval); }; /* * mask prefix bits (set suffix bits to 0) * * in: structure via reference * out: modified structure */ void ipv4addrstruct_maskprefix(ipv6calc_ipv4addr *ipv4addrp) { unsigned int nbit, nword; uint16_t mask, newword; int i; DEBUGPRINT_NA(DEBUG_libipv4addr, "called"); if (ipv4addrp->flag_prefixuse != 1) { /* hmm, no prefix specified. skip */ return; }; for (i = 31; i >= 0; i--) { nbit = (unsigned int) i; if (nbit >= (unsigned int) ipv4addrp->prefixlength) { /* set bit to zero */ /* calculate word (16 bit) - matches with addr4p[]*/ nword = (nbit & 0x70) >> 4; /* calculate mask */ mask = ((uint16_t) 0x8000u) >> (( ((uint16_t) nbit) & ((uint16_t) 0x0fu))); newword = ipv4addr_getword(ipv4addrp, nword) & (~ mask ); DEBUGPRINT_WA(DEBUG_libipv4addr, "bit: %u = nword: %u, mask: %04x, word: %04x newword: %04x", nbit, nword, (unsigned int) mask, (unsigned int) ipv4addr_getword(ipv4addrp, nword), (unsigned int) newword); ipv4addr_setword(ipv4addrp, nword, (unsigned int) newword); }; }; }; /* * mask suffix bits (set prefix bits to 0) * * in: structure via reference * out: modified structure */ void ipv4addrstruct_masksuffix(ipv6calc_ipv4addr *ipv4addrp) { unsigned int nbit, nword; uint16_t mask, newword; int i; DEBUGPRINT_NA(DEBUG_libipv4addr, "called"); if (ipv4addrp->flag_prefixuse != 1) { /* hmm, no prefix specified. skip */ return; }; for (i = 31; i >= 0; i--) { nbit = (unsigned int) i; if (nbit < (unsigned int) ipv4addrp->prefixlength) { /* set bit to zero */ /* calculate word (16 bit) - matches with addr4p[]*/ nword = (nbit & 0x70) >> 4; /* calculate mask */ mask = ((uint32_t) 0x8000u) >> (((uint32_t) nbit) & ((uint32_t) 0x0fu )); newword = ipv4addr_getword(ipv4addrp, nword) & (~ mask ); DEBUGPRINT_WA(DEBUG_libipv4addr, "%u = nword: %u, mask: %04x, word: %04x newword: %04x", nbit, nword, (unsigned int) mask, (unsigned int) ipv4addr_getword(ipv4addrp, nword), (unsigned int) newword); ipv4addr_setword(ipv4addrp, nword, (unsigned int) newword); }; }; }; /* * function prints an IPv4 address in native hex format * * in: ipv4addr = IPv4 address structure * formatoptions * out: *resultstring = IPv4 address (modified) * ret: ==0: ok, !=0: error */ int libipv4addr_to_hex(const ipv6calc_ipv4addr *ipv4addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { DEBUGPRINT_WA(DEBUG_libipv4addr, "called, formatoptions=0x%08x", formatoptions); int retval = 1; int i; unsigned int s; char tempstring[IPV6CALC_STRING_MAX]; snprintf(tempstring, sizeof(tempstring), "%02x%02x%02x%02x", (unsigned int) ipv4addr_getoctet(ipv4addrp, 0), \ (unsigned int) ipv4addr_getoctet(ipv4addrp, 1), \ (unsigned int) ipv4addr_getoctet(ipv4addrp, 2), \ (unsigned int) ipv4addr_getoctet(ipv4addrp, 3) \ ); snprintf(resultstring, resultstring_length, "%s", tempstring); if ((formatoptions & FORMATOPTION_printprefix) && (ipv4addrp->flag_prefixuse == 1)) { // shorten string resultstring[ipv4addrp->prefixlength / 4] = '\0'; } else if ((formatoptions & FORMATOPTION_printsuffix) && (ipv4addrp->flag_prefixuse == 1)) { // move string for (i = 0; i < 8 - (ipv4addrp->prefixlength / 4); i++) { resultstring[i] = resultstring[i + (ipv4addrp->prefixlength / 4)]; }; resultstring[8 - (ipv4addrp->prefixlength / 4)] = '\0'; }; if (formatoptions & FORMATOPTION_printuppercase) { for (s = 0; s < strlen(resultstring); s++) { resultstring[s] = toupper(resultstring[s]); }; }; retval = 0; return (retval); }; /* * anonymize IPv4 address * * in : *ipv4addrp = IPv4 address structure * mask = number of bits of mask * method = 2:zeroize 1:map to CountryCode and AS * ret: 0:anonymization ok * 1:anonymization method not supported */ int libipv4addr_anonymize(ipv6calc_ipv4addr *ipv4addrp, unsigned int mask, const int method) { DEBUGPRINT_WA(DEBUG_libipv4addr, "called, method=%d mask=%d type=0x%08x", method, mask, ipv4addrp->typeinfo); /* anonymize IPv4 address according to settings */ uint32_t as_num32, as_num32_comp17, as_num32_decomp17, ipv4addr_anon, p; uint16_t cc_index, c; ipv6calc_ipaddr ipaddr; int i; ipv4addr_settype(ipv4addrp, 0); // set typeinfo if not already done if ((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED) != 0) { DEBUGPRINT_NA(DEBUG_libipv4addr, "skip already anonymized address"); } else if ((ipv4addrp->typeinfo & IPV4_ADDR_BROADCAST) != 0) { DEBUGPRINT_NA(DEBUG_libipv4addr, "skip anonymize (broadcast address)"); } else if (((method != ANON_METHOD_KEEPTYPEASNCC) && (method != ANON_METHOD_KEEPTYPEGEONAMEID)) || ((ipv4addrp->typeinfo & (IPV4_ADDR_UNICAST | IPV4_ADDR_GLOBAL)) != (IPV4_ADDR_UNICAST | IPV4_ADDR_GLOBAL))) { // not ANON_METHOD_KEEPTYPEASNCC/ANON_METHOD_KEEPTYPEGEONAMEID or not a global address if (((ipv4addrp->typeinfo & IPV4_ADDR_ANYCAST) != 0) && ((ipv4addrp->typeinfo & IPV4_ADDR_LISP) != 0)) { if (mask < 24) { mask = 24; // keeping address type }; DEBUGPRINT_WA(DEBUG_libipv6addr, "Mask adjusted to: %d", mask); }; DEBUGPRINT_NA(DEBUG_libipv4addr, "anonymize by masking"); if (mask == 0) { /* clear IPv4 address: 0.0.0.0 */ ipv4addr_clear(ipv4addrp); ipv4addrp->flag_valid = 1; } else if (mask == 32) { /* nothing to do */ } else if (mask < 1 || mask > 31) { /* should not happen here */ fprintf(stderr, "%s/%s: 'mask' has an unexpected illegal value!\n", __FILE__, __func__); exit(EXIT_FAILURE); } else { /* quick mode */ if (mask == 24) { ipv4addr_setoctet(ipv4addrp, 3, 0u); } else if (mask == 16) { ipv4addr_setword(ipv4addrp, 1, 0u); } else if (mask == 8) { ipv4addr_setword(ipv4addrp, 1, 0u); ipv4addr_setoctet(ipv4addrp, 1, 0u); } else { /* mask IPv4 address */ ipv4addr_setdword(ipv4addrp, ipv4addr_getdword(ipv4addrp) & (0xffffffffu << ((unsigned int) 32 - mask))); }; }; } else if (method == ANON_METHOD_KEEPTYPEASNCC) { /* check for required database support */ if (libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEASNCC_IPV4_REQ_DB) == 0) { DEBUGPRINT_NA(DEBUG_libipv4addr, "anonymization method not supported, db_wrapper reports too less features"); return(1); }; DEBUGPRINT_NA(DEBUG_libipv4addr, "anonymize by keep Type/ASN/CountryCode information"); CONVERT_IPV4ADDRP_IPADDR(ipv4addrp, ipaddr); if (((ipv4addrp->typeinfo & IPV4_ADDR_UNICAST) != 0) && ((ipv4addrp->typeinfo & IPV4_ADDR_LISP) != 0)) { as_num32_comp17 = 0x11800; as_num32_comp17 |= (libipv6calc_db_wrapper_registry_num_by_ipv4addr(ipv4addrp) & 0x7) << 13; as_num32_comp17 |= 0x000; // TODO: map LISP information into 11 LSB } else { // get AS number as_num32 = libipv6calc_db_wrapper_as_num32_by_addr(&ipaddr, NULL); DEBUGPRINT_WA(DEBUG_libipv4addr, "result of AS number retrievement: 0x%08x (%d)", as_num32, as_num32); as_num32_comp17 = libipv6calc_db_wrapper_as_num32_comp17(as_num32); DEBUGPRINT_WA(DEBUG_libipv4addr, "result of AS number compression: 0x%05x", as_num32_comp17); as_num32_decomp17 = libipv6calc_db_wrapper_as_num32_decomp17(as_num32_comp17); DEBUGPRINT_WA(DEBUG_libipv4addr, "result of AS number decompression: 0x%08x (%d)", as_num32_decomp17, as_num32_decomp17); }; // get countrycode cc_index = libipv6calc_db_wrapper_cc_index_by_addr(&ipaddr, NULL); if (cc_index == COUNTRYCODE_INDEX_UNKNOWN) { // on unknown country, map registry value cc_index = COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MIN + libipv6calc_db_wrapper_registry_num_by_ipv4addr(ipv4addrp); }; DEBUGPRINT_WA(DEBUG_libipv4addr, "result of CountryCode index retrievement: 0x%03x (%d)", cc_index, cc_index); // 0-3 ( 4 bits) : prefix 0xf0 // 4 ( 1 bit ) : parity bit (odd parity) // 5-14 (10 bits) : country code index // 15 ( 1 bits) : ASN flag // 16-31 (16 bits) : ASN16 or packed ASN32 // ipv4addr_anon = 0xf0000000 | ((cc_index << 17) & 0x07fe0000 ) | (as_num32_comp17 & 0x0001ffff); // create parity bits c = 0; p = 0x00000001; for (i = 0; i < 27; i++) { if ((ipv4addr_anon & p) != 0) { c++; }; p <<= 1; }; ipv4addr_anon |= ((c & 0x1) ^ 0x1) << 27; DEBUGPRINT_WA(DEBUG_libipv4addr, "result anonymized (Type/ASN/CC) IPv4 address: 0x%08x, bitcounts=%d", ipv4addr_anon, c); ipv4addr_setdword(ipv4addrp, ipv4addr_anon); } else { unsigned int GeonameID_type = IPV6CALC_DB_GEO_GEONAMEID_TYPE_UNKNOWN; uint32_t GeonameID = IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN; /* check for required database support */ if (libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEGEONAMEID_IPV4_REQ_DB) == 0) { DEBUGPRINT_NA(DEBUG_libipv4addr, "anonymization method not supported, db_wrapper reports too less features"); return(1); }; DEBUGPRINT_NA(DEBUG_libipv4addr, "anonymize by keep GeonameID information"); CONVERT_IPV4ADDRP_IPADDR(ipv4addrp, ipaddr); if (((ipv4addrp->typeinfo & IPV4_ADDR_UNICAST) != 0) && ((ipv4addrp->typeinfo & IPV4_ADDR_LISP) != 0)) { GeonameID_type = 0x7; GeonameID = 0x11800; GeonameID |= (libipv6calc_db_wrapper_registry_num_by_ipv4addr(ipv4addrp) & 0x7) << 13; GeonameID |= 0x000; // TODO: map LISP information into 11 LSB } else { // get GeonameID GeonameID_type |= IPV6CALC_DB_GEO_GEONAMEID_TYPE_FLAG_24BIT; GeonameID = libipv6calc_db_wrapper_GeonameID_by_addr(&ipaddr, NULL, &GeonameID_type); DEBUGPRINT_WA(DEBUG_libipv4addr, "result of GeonameID retrievement: %d (0x%08x) (source: %d)", GeonameID, GeonameID, GeonameID_type); if (GeonameID > 0xffffff) { ERRORPRINT_WA("result of GeonameID retrievement: %d (source: %d) above 24-bit limit (fix code)", GeonameID, GeonameID_type); }; }; // 0-3 ( 4 bits) : prefix 0xf0 // 4 ( 1 bit ) : parity bit (even parity) // 5-7 ( 3 bits) : GeoNameID source - or 0x7 in case of LISP // 8-31 (24 bits) : GeonameID (limited to 24 bit) - or Registry in case of LISP ipv4addr_anon = 0xf0000000 | ((GeonameID_type << 24) & 0x07000000 ) | (GeonameID & 0x00ffffff); // create parity bits c = 0; p = 0x00000001; for (i = 0; i < 27; i++) { if ((ipv4addr_anon & p) != 0) { c++; }; p <<= 1; }; ipv4addr_anon |= ((c & 0x1) ^ 0x0) << 27; DEBUGPRINT_WA(DEBUG_libipv4addr, "result anonymized (Type/GeonameID) IPv4 address: 0x%08x, bitcounts=%d", ipv4addr_anon, c); ipv4addr_setdword(ipv4addrp, ipv4addr_anon); }; DEBUGPRINT_NA(DEBUG_libipv4addr, "return"); return(0); }; /* * get AS number of anonymized IPv4 address * * in : *ipv4addrp = IPv4 address structure * ret: AS number 16-bit */ uint32_t ipv4addr_anonymized_get_as_num32(const ipv6calc_ipv4addr *ipv4addrp) { if ((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED) == 0) { return(ASNUM_AS_UNKNOWN); } else if ((ipv4addrp->typeinfo & IPV4_ADDR_LISP) != 0) { // anonymized LISP can't save AS number return(ASNUM_AS_UNKNOWN); } else if ((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED_GEONAMEID) != 0) { // GeonameID can't save AS number return(ASNUM_AS_UNKNOWN); }; return(libipv6calc_db_wrapper_as_num32_decomp17(ipv4addr_getdword(ipv4addrp) & 0x1ffff)); }; /* * get CountryCode index of anonymized IPv4 address * * in : *ipv4addrp = IPv4 address structure * ret: CountryCode index */ uint16_t ipv4addr_anonymized_get_cc_index(const ipv6calc_ipv4addr *ipv4addrp) { if ((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED) == 0) { return(COUNTRYCODE_INDEX_UNKNOWN); } else if ((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED_GEONAMEID) != 0) { // GeonameID can't save CountryCode return(COUNTRYCODE_INDEX_UNKNOWN); }; return((ipv4addr_getword(ipv4addrp, 0) & 0x7fe) >>1); }; /* * clear filter IPv4 address * * in : *filter = filter structure */ void ipv4addr_filter_clear(s_ipv6calc_filter_ipv4addr *filter) { filter->active = 0; filter->filter_typeinfo.active = 0; filter->filter_typeinfo.typeinfo_must_have = 0; filter->filter_typeinfo.typeinfo_may_not_have = 0; libipv6calc_filter_clear_db_cc(&filter->filter_db_cc); libipv6calc_filter_clear_db_asn(&filter->filter_db_asn); libipv6calc_filter_clear_db_registry(&filter->filter_db_registry); filter->filter_addr.active = 0; filter->filter_addr.addr_must_have_max = 0; filter->filter_addr.addr_may_not_have_max = 0; return; }; /* * parse filter IPv4 address * * in : *filter = filter structure * ret: 0:found 1:skip 2:problem */ int ipv4addr_filter_parse(s_ipv6calc_filter_ipv4addr *filter, const char *token) { int i, result = 1, negate = 0, offset = 0, r; const char *prefix = "ipv4"; const char *prefixdot = "ipv4."; const char *prefixdbdot = "db."; const char *prefixaddreq = "addr="; const char *prefixaddreq_le = "addr<="; const char *prefixaddreq_lt = "addr<"; const char *prefixaddreq_ge = "addr>="; const char *prefixaddreq_gt = "addr>"; const char *prefixaddreq_le2 = "addr=le="; const char *prefixaddreq_lt2 = "addr=lt="; const char *prefixaddreq_ge2 = "addr=ge="; const char *prefixaddreq_gt2 = "addr=gt="; ipv6calc_ipv4addr ipv4addr; char resultstring[IPV6CALC_STRING_MAX]; int db = 0; int addr_test_method = IPV6CALC_TEST_NONE; if (token == NULL) { return (result); }; DEBUGPRINT_WA(DEBUG_libipv4addr, "input: %s", token); if (token[0] == '^') { DEBUGPRINT_WA(DEBUG_libipv4addr, "found negate prefix in token: %s", token); negate = 1; offset += 1; }; // typeinfo if (strcmp(token + offset, prefix) == 0) { /* any */ if (negate == 1) { filter->filter_typeinfo.typeinfo_may_not_have = ~IPV4_ADDR_ANY; } else { filter->filter_typeinfo.typeinfo_must_have = IPV4_ADDR_ANY; }; filter->filter_typeinfo.active = 1; filter->active = 1; result = 0; goto END_ipv4addr_filter_parse; } else if (strncmp(token + offset, prefixdot, strlen(prefixdot)) == 0) { /* prefix with dot found */ offset += strlen(prefixdot); result = 2; /* token with prefix, result into problem if not found */ DEBUGPRINT_WA(DEBUG_libipv4addr, "token with prefix, suffix: %s", token + offset); }; if (strncmp(token + offset, prefixaddreq_le, strlen(prefixaddreq_le)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv4addr, "found 'addr<=' prefix in token: %s", token); offset += strlen(prefixaddreq_le); addr_test_method = IPV6CALC_TEST_LE; } else if (strncmp(token + offset, prefixaddreq_lt, strlen(prefixaddreq_lt)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv4addr, "found 'addr<' prefix in token: %s", token); offset += strlen(prefixaddreq_lt); addr_test_method = IPV6CALC_TEST_LT; } else if (strncmp(token + offset, prefixaddreq_ge, strlen(prefixaddreq_ge)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv4addr, "found 'addr>=' prefix in token: %s", token); offset += strlen(prefixaddreq_ge); addr_test_method = IPV6CALC_TEST_GE; } else if (strncmp(token + offset, prefixaddreq_gt, strlen(prefixaddreq_gt)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv4addr, "found 'addr>' prefix in token: %s", token); offset += strlen(prefixaddreq_gt); addr_test_method = IPV6CALC_TEST_GT; } else if (strncmp(token + offset, prefixaddreq_le2, strlen(prefixaddreq_le2)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv4addr, "found 'addr=le=' prefix in token: %s", token); offset += strlen(prefixaddreq_le2); addr_test_method = IPV6CALC_TEST_LE; } else if (strncmp(token + offset, prefixaddreq_lt2, strlen(prefixaddreq_lt2)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv4addr, "found 'addr=lt=' prefix in token: %s", token); offset += strlen(prefixaddreq_lt2); addr_test_method = IPV6CALC_TEST_LT; } else if (strncmp(token + offset, prefixaddreq_ge2, strlen(prefixaddreq_ge2)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv4addr, "found 'addr=ge=' prefix in token: %s", token); offset += strlen(prefixaddreq_ge2); addr_test_method = IPV6CALC_TEST_GE; } else if (strncmp(token + offset, prefixaddreq_gt2, strlen(prefixaddreq_gt2)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv4addr, "found 'addr=gt=' prefix in token: %s", token); offset += strlen(prefixaddreq_gt2); addr_test_method = IPV6CALC_TEST_GT; } else if (strncmp(token + offset, prefixaddreq, strlen(prefixaddreq)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv4addr, "found 'addr=' prefix in token: %s", token); offset += strlen(prefixaddreq); addr_test_method = IPV6CALC_TEST_PREFIX; } else if (strncmp(token + offset, prefixdbdot, strlen(prefixdbdot)) == 0) { /* prefixdb with dot found */ DEBUGPRINT_WA(DEBUG_libipv4addr, "found 'db.' prefix in token: %s", token); db = 1; } else if (strstr(token, ".") != NULL) { /* other prefix */ DEBUGPRINT_WA(DEBUG_libipv4addr, "prefix did not match: %s", token + offset); return(1); }; if ((db == 0) && (addr_test_method == IPV6CALC_TEST_NONE)) { // typeinfo token for (i = 0; i < MAXENTRIES_ARRAY(ipv6calc_ipv4addrtypestrings); i++ ) { DEBUGPRINT_WA(DEBUG_libipv4addr, "check token against: %s", ipv6calc_ipv4addrtypestrings[i].token); if (strcmp(ipv6calc_ipv4addrtypestrings[i].token, token + offset) == 0) { DEBUGPRINT_WA(DEBUG_libipv4addr, "token match: %s", ipv6calc_ipv4addrtypestrings[i].token); if (negate == 1) { filter->filter_typeinfo.typeinfo_may_not_have |= ipv6calc_ipv4addrtypestrings[i].number; } else { filter->filter_typeinfo.typeinfo_must_have |= ipv6calc_ipv4addrtypestrings[i].number; }; filter->filter_typeinfo.active = 1; filter->active = 1; result = 0; break; }; }; }; if (db == 1) { // DB CC filter r = libipv6calc_db_cc_filter_parse(&filter->filter_db_cc, token + offset, negate); if (r == 0) { result = 0; filter->active = 1; }; // DB ASN filter r = libipv6calc_db_asn_filter_parse(&filter->filter_db_asn, token + offset, negate); if (r == 0) { result = 0; filter->active = 1; }; // DB Registry filter r = libipv6calc_db_registry_filter_parse(&filter->filter_db_registry, token + offset, negate); if (r == 0) { result = 0; filter->active = 1; }; }; if (addr_test_method != IPV6CALC_TEST_NONE) { DEBUGPRINT_WA(DEBUG_libipv4addr, "try to parse IPv4 address: %s", token + offset); r = addr_to_ipv4addrstruct(token + offset, resultstring, sizeof(resultstring), &ipv4addr); if (r == 0) { DEBUGPRINT_WA(DEBUG_libipv4addr, "successfully parsed IPv4 address: %s", token + offset); // store address test method ipv4addr.test_mode = addr_test_method; if (negate == 1) { if (filter->filter_addr.addr_may_not_have_max < IPV6CALC_FILTER_IPV4ADDR) { ipv4addr_copy(&filter->filter_addr.ipv4addr_may_not_have[filter->filter_addr.addr_may_not_have_max], &ipv4addr); filter->filter_addr.addr_may_not_have_max++; filter->filter_addr.active = 1; filter->active = 1; result = 0; } else { ERRORPRINT_WA("filter token 'addr=' maxmimum reached for 'may not have': %d", filter->filter_addr.addr_may_not_have_max); }; } else { if (filter->filter_addr.addr_must_have_max < IPV6CALC_FILTER_IPV4ADDR) { ipv4addr_copy(&filter->filter_addr.ipv4addr_must_have[filter->filter_addr.addr_must_have_max], &ipv4addr); filter->filter_addr.addr_must_have_max++; filter->filter_addr.active = 1; filter->active = 1; result = 0; } else { ERRORPRINT_WA("filter token 'addr=' maxmimum reached for 'must have': %d", filter->filter_addr.addr_must_have_max); }; }; }; }; if (result != 0) { DEBUGPRINT_WA(DEBUG_libipv4addr, "token not supported: %s",token); return (result); }; END_ipv4addr_filter_parse: return (result); }; /* * check filter IPv4 * * in : *filter = filter structure * ret: 0:ok 1:problem */ int ipv4addr_filter_check(const s_ipv6calc_filter_ipv4addr *filter) { int result = 0, r, i; char resultstring[IPV6CALC_STRING_MAX]; DEBUGPRINT_WA(DEBUG_libipv4addr, "ipv4 filter general active : %d", filter->active); DEBUGPRINT_WA(DEBUG_libipv4addr, "ipv4 filter 'typeinfo' active : %d", filter->filter_typeinfo.active); if (filter->filter_typeinfo.active > 0) { DEBUGPRINT_WA(DEBUG_libipv4addr, "ipv4 filter 'typeinfo/must_have' : 0x%08x", filter->filter_typeinfo.typeinfo_must_have); DEBUGPRINT_WA(DEBUG_libipv4addr, "ipv4 filter 'typeinfo/may_not_have': 0x%08x", filter->filter_typeinfo.typeinfo_may_not_have); }; DEBUGPRINT_WA(DEBUG_libipv4addr, "ipv4 filter 'addr' active : %d", filter->filter_addr.active); if (filter->filter_addr.active > 0) { if (filter->filter_addr.addr_must_have_max > 0) { for (i = 0; i < filter->filter_addr.addr_must_have_max; i++) { libipv4addr_ipv4addrstruct_to_string(&filter->filter_addr.ipv4addr_must_have[i], resultstring, sizeof(resultstring), 0); DEBUGPRINT_WA(DEBUG_libipv4addr, "ipv4 filter 'addr/must_have' : %s", resultstring); }; }; if (filter->filter_addr.addr_may_not_have_max > 0) { for (i = 0; i < filter->filter_addr.addr_may_not_have_max; i++) { libipv4addr_ipv4addrstruct_to_string(&filter->filter_addr.ipv4addr_may_not_have[i], resultstring, sizeof(resultstring), 0); DEBUGPRINT_WA(DEBUG_libipv4addr, "ipv4 filter 'addr/may_not_have' : %s", resultstring); }; }; }; DEBUGPRINT_WA(DEBUG_libipv4addr, "ipv4 filter 'db.cc' active : %d", filter->filter_db_cc.active); if (filter->filter_db_cc.active > 0) { r = libipv6calc_db_cc_filter_check(&filter->filter_db_cc, IPV6CALC_PROTO_IPV4); if (r > 0) { result = 1; }; }; DEBUGPRINT_WA(DEBUG_libipv4addr, "ipv4 filter 'db.asn' active : %d", filter->filter_db_asn.active); if (filter->filter_db_asn.active > 0) { r = libipv6calc_db_asn_filter_check(&filter->filter_db_asn, IPV6CALC_PROTO_IPV4); if (r > 0) { result = 1; }; }; DEBUGPRINT_WA(DEBUG_libipv4addr, "ipv4 filter 'db.registry' active : %d", filter->filter_db_registry.active); if (filter->filter_db_registry.active > 0) { r = libipv6calc_db_registry_filter_check(&filter->filter_db_registry, IPV6CALC_PROTO_IPV4); if (r > 0) { result = 1; }; }; //END_ipv4addr_filter_check: return (result); }; /* * filter IPv4 address * * in : *ipv4addrp = IPv4 address structure * in : *filter = filter structure * ret: 0=match 1=not match */ int ipv4addr_filter(const ipv6calc_ipv4addr *ipv4addrp, const s_ipv6calc_filter_ipv4addr *filter) { int result = 0, r, i, t; if (filter->active == 0) { DEBUGPRINT_NA(DEBUG_libipv4addr, "no filter active (SKIP)"); return (1); }; DEBUGPRINT_NA(DEBUG_libipv4addr, "start"); if (filter->filter_typeinfo.active > 0) { if (ipv4addrp->flag_typeinfo == 0) { fprintf(stderr, "FATAL error, typeinfo not valid - FIX CODE of caller\n"); exit(2); }; DEBUGPRINT_WA(DEBUG_libipv4addr, "compare typeinfo against must_have: 0x%08x/0x%08x", ipv4addrp->typeinfo, filter->filter_typeinfo.typeinfo_must_have); if ((ipv4addrp->typeinfo & filter->filter_typeinfo.typeinfo_must_have) != filter->filter_typeinfo.typeinfo_must_have) { /* no match */ result = 1; } else { if ((ipv4addrp->typeinfo & filter->filter_typeinfo.typeinfo_may_not_have) != 0) { result = 1; }; }; }; if (filter->filter_addr.active > 0) { if (filter->filter_addr.addr_must_have_max > 0) { DEBUGPRINT_NA(DEBUG_libipv4addr, "compare against ipv4addr/must_have"); r = 1; for (i = 0; i < filter->filter_addr.addr_must_have_max; i++) { t = ipv4addr_compare(ipv4addrp, &filter->filter_addr.ipv4addr_must_have[i], (filter->filter_addr.ipv4addr_must_have[i].test_mode == IPV6CALC_TEST_PREFIX) ? 1 : 0); switch (filter->filter_addr.ipv4addr_must_have[i].test_mode) { case IPV6CALC_TEST_PREFIX: if (t != 0) { r = 0; }; break; case IPV6CALC_TEST_LE: if (t > 0) { r = 0; }; break; case IPV6CALC_TEST_LT: if (t >= 0) { r = 0; }; break; case IPV6CALC_TEST_GE: if (t < 0) { r = 0; }; break; case IPV6CALC_TEST_GT: if (t <= 0) { r = 0; }; break; default: ERRORPRINT_WA("unsupported test mode (FIX CODE): %d", filter->filter_addr.ipv4addr_must_have[i].test_mode); break; }; }; if (r == 0) { /* no match */ result = 1; }; }; if (filter->filter_addr.addr_may_not_have_max > 0) { DEBUGPRINT_NA(DEBUG_libipv4addr, "compare against ipv4addr/may_not_have"); r = 0; for (i = 0; i < filter->filter_addr.addr_may_not_have_max; i++) { t = ipv4addr_compare(ipv4addrp, &filter->filter_addr.ipv4addr_may_not_have[i], (filter->filter_addr.ipv4addr_may_not_have[i].test_mode == IPV6CALC_TEST_PREFIX) ? 1 : 0); switch (filter->filter_addr.ipv4addr_may_not_have[i].test_mode) { case IPV6CALC_TEST_PREFIX: if (t == 0) { r = 1; }; break; case IPV6CALC_TEST_LE: if (t <= 0) { r = 1; }; break; case IPV6CALC_TEST_LT: if (t < 0) { r = 1; }; break; case IPV6CALC_TEST_GE: if (t >= 0) { r = 1; }; break; case IPV6CALC_TEST_GT: if (t > 0) { r = 1; }; break; default: ERRORPRINT_WA("unsupported test mode (FIX CODE): %d", filter->filter_addr.ipv4addr_may_not_have[i].test_mode); break; }; }; if (r == 1) { /* match may_not_have*/ result = 1; }; }; }; if (filter->filter_db_cc.active > 0) { uint16_t cc_index = libipv4addr_cc_index_by_addr(ipv4addrp, NULL); if (libipv6calc_db_cc_filter(cc_index, &filter->filter_db_cc) > 0) { /* no match */ result = 1; }; }; if (filter->filter_db_asn.active > 0) { uint32_t asn = libipv4addr_as_num32_by_addr(ipv4addrp, NULL); if (filter->filter_db_asn.active > 0) { if (libipv6calc_db_asn_filter(asn, &filter->filter_db_asn) > 0) { /* no match */ result = 1; }; }; }; if (filter->filter_db_registry.active > 0) { int registry = libipv4addr_registry_num_by_addr(ipv4addrp); if (filter->filter_db_registry.active > 0) { if (libipv6calc_db_registry_filter(registry, &filter->filter_db_registry) > 0) { /* no match */ result = 1; }; }; }; return (result); }; /* * country code index of IPv4 address * * in : *ipv4addrp = IPv4 address structure * out: country code index */ uint16_t libipv4addr_cc_index_by_addr(const ipv6calc_ipv4addr *ipv4addrp, unsigned int *data_source_ptr) { uint16_t cc_index = COUNTRYCODE_INDEX_UNKNOWN; ipv6calc_ipaddr ipaddr; DEBUGPRINT_NA(DEBUG_libipv4addr, "start"); if ((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED) != 0) { cc_index = ipv4addr_anonymized_get_cc_index(ipv4addrp); } else if ((ipv4addrp->typeinfo & IPV4_ADDR_RESERVED) != 0) { cc_index = COUNTRYCODE_INDEX_UNKNOWN; } else if ((ipv4addrp->typeinfo & IPV4_ADDR_GLOBAL) == 0) { cc_index = COUNTRYCODE_INDEX_UNKNOWN; } else { if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_CC) == 1) { CONVERT_IPV4ADDRP_IPADDR(ipv4addrp, ipaddr); cc_index = libipv6calc_db_wrapper_cc_index_by_addr(&ipaddr, data_source_ptr); }; }; DEBUGPRINT_WA(DEBUG_libipv4addr, "cc_index=%d (0x%03x)", cc_index, cc_index); return(cc_index); }; /* * 32-bit AS number of IPv4 address * * in : *ipv4addrp = IPv4 address structure * out: 32-bit AS number */ uint32_t libipv4addr_as_num32_by_addr(const ipv6calc_ipv4addr *ipv4addrp, unsigned int *data_source_ptr) { uint32_t as_num32 = ASNUM_AS_UNKNOWN; ipv6calc_ipaddr ipaddr; DEBUGPRINT_WA(DEBUG_libipv4addr, "typeinfo=%08x", ipv4addrp->typeinfo); if ((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED) != 0) { as_num32 = ipv4addr_anonymized_get_as_num32(ipv4addrp); } else { if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_AS) == 1) { CONVERT_IPV4ADDRP_IPADDR(ipv4addrp, ipaddr); as_num32 = libipv6calc_db_wrapper_as_num32_by_addr(&ipaddr, data_source_ptr); }; }; DEBUGPRINT_WA(DEBUG_libipv4addr, "as_num32=%d (0x%08x)", as_num32, as_num32); return(as_num32); }; /* * registry number of IPv4 address * * in : *ipv4addrp = IPv4 address structure * out: registry number */ int libipv4addr_registry_num_by_addr(const ipv6calc_ipv4addr *ipv4addrp) { int registry = REGISTRY_UNKNOWN; uint32_t as_num32; uint16_t cc_index; if ((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED) != 0) { if( (ipv4addrp->typeinfo & IPV4_ADDR_LISP) != 0) { DEBUGPRINT_NA(DEBUG_libipv4addr, "IPv4 is anonymized LISP, extract registry from anonymized data"); // extract registry uint32_t ipv4addr = ipv4addr_getdword(ipv4addrp); registry = (ipv4addr >> 13) & 0x7; } else if( (ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED_GEONAMEID) != 0) { // GeonameID can't save Registry (exception: LISP) } else { DEBUGPRINT_NA(DEBUG_libipv4addr, "IPv4 is anonymized, extract registry from anonymized data"); // ASN -> Registry // CC -> Registry /* retrieve registry via AS number from anonymized address (simple) */ as_num32 = libipv4addr_as_num32_by_addr(ipv4addrp, NULL); if (as_num32 != ASNUM_AS_UNKNOWN) { registry = libipv6calc_db_wrapper_registry_num_by_as_num32(as_num32); }; if ((as_num32 == ASNUM_AS_UNKNOWN) || (registry == REGISTRY_ARIN)) { /* retrieve registry via cc_index from anonymized address (simple, fallback) */ cc_index = libipv4addr_cc_index_by_addr(ipv4addrp, NULL); registry = libipv6calc_db_wrapper_registry_num_by_cc_index(cc_index); }; }; } else { if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_REGISTRY) == 1) { DEBUGPRINT_NA(DEBUG_libipv4addr, "Get registry from IPV6CALC_DB_IPV4_TO_REGISTRY"); registry = libipv6calc_db_wrapper_registry_num_by_ipv4addr(ipv4addrp); } else { DEBUGPRINT_NA(DEBUG_libipv4addr, "No support available for IPV6CALC_DB_IPV4_TO_REGISTRY"); }; }; DEBUGPRINT_WA(DEBUG_libipv4addr, "registry=%d (0x%x)", registry, registry); return(registry); }; /* * GeonameID of IPv4 address * * in : *ipv4addrp = IPv4 address structure * mod: GeonameID_type_ptr * out: GeonameID */ uint32_t libipv4addr_GeonameID_by_addr(const ipv6calc_ipv4addr *ipv4addrp, unsigned int *data_source_ptr, unsigned int *GeonameID_type_ptr) { uint32_t GeonameID = IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN; unsigned int GeonameID_type = IPV6CALC_DB_GEO_GEONAMEID_TYPE_UNKNOWN; unsigned int data_source = IPV6CALC_DB_SOURCE_UNKNOWN; ipv6calc_ipaddr ipaddr; uint32_t ipv4 = ipv4addr_getdword(ipv4addrp); if ((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED) != 0) { if (((ipv4addrp->typeinfo & IPV4_ADDR_ANONYMIZED_GEONAMEID) != 0) \ && ((ipv4addrp->typeinfo & IPV4_ADDR_LISP) == 0)) { // GeonameID included GeonameID = ipv4 & 0x00ffffff; // 24 bit LSB GeonameID_type = (ipv4 & 0x07000000) >> 24; DEBUGPRINT_WA(DEBUG_libipv4addr, "result of anonymized IPv4 GeonameID retrievement: %d (0x%08x) (source: %02x) (ipv4=%08x)", GeonameID, GeonameID, GeonameID_type, ipv4); }; } else { if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_GEONAMEID) == 1) { // get GeonameID CONVERT_IPV4ADDRP_IPADDR(ipv4addrp, ipaddr); GeonameID = libipv6calc_db_wrapper_GeonameID_by_addr(&ipaddr, &data_source, &GeonameID_type); DEBUGPRINT_WA(DEBUG_libipv4addr, "result of GeonameID retrievement: %d (0x%08x) (source: %02x)", GeonameID, GeonameID, GeonameID_type); } else { DEBUGPRINT_NA(DEBUG_libipv4addr, "No support available for IPV6CALC_DB_IPV4_TO_GEONAMEID"); }; }; DEBUGPRINT_WA(DEBUG_libipv4addr, "GeonameID=%d (0x%x)", GeonameID, GeonameID); if (data_source_ptr != NULL) { *data_source_ptr = data_source; }; if (GeonameID_type_ptr != NULL) { *GeonameID_type_ptr = GeonameID_type; }; return(GeonameID); }; /* cleanup */ void libipv4addr_cleanup() { DEBUGPRINT_NA(DEBUG_libipv4addr, "called"); int i; for (i = 0; i < LIBIPV4ADDR_REGEX_CACHE_MAX; i++) { if (libipv4addr_regex_cache_valid[i]) { DEBUGPRINT_WA(DEBUG_libipv4addr, "free regex cache entry: %d", i); regfree(&libipv4addr_regex_cache_entry[i]); }; }; }; ipv6calc-4.1.0/lib/libipv4addr.h000066400000000000000000000226041444154247200163610ustar00rootroot00000000000000/* * Project : ipv6calc/lib * File : libipv4addr.h * Version : $Id: d3f1fd65720c93d0b06468cc44256bacc21fc4b8 $ * Copyright : 2002-2021 by Peter Bieringer except the parts taken from kernel source * License : GNU GPL v2 * * Information: * Header file for libipv4addr.c */ #ifndef _libipv4addr_h #define _libipv4addr_h 1 #include #include "ipv6calctypes.h" /* typedefs */ /* IPv4 address structure */ typedef struct { struct in_addr in_addr; /* in_addr structure */ uint8_t prefixlength; /* prefix length (0-32) 8 bit */ int flag_prefixuse; /* =1: prefix length in use (CIDR notation) */ uint32_t typeinfo; /* address typeinfo/scope */ uint32_t typeinfo2; /* address typeinfo/scope #2 */ int8_t flag_typeinfo; /* =1: valid typeinfo */ int8_t flag_valid; /* address structure filled */ uint8_t test_mode; /* test mode */ } ipv6calc_ipv4addr; /* IPv4 Address filter structure */ typedef struct { int active; int addr_must_have_max; int addr_may_not_have_max; ipv6calc_ipv4addr ipv4addr_must_have[IPV6CALC_FILTER_IPV4ADDR]; ipv6calc_ipv4addr ipv4addr_may_not_have[IPV6CALC_FILTER_IPV4ADDR]; } s_ipv6calc_filter_addr_ipv4; /* IPv4 filter structure */ typedef struct { int active; s_ipv6calc_filter_typeinfo filter_typeinfo; s_ipv6calc_filter_db_cc filter_db_cc; // Country Code filter s_ipv6calc_filter_db_asn filter_db_asn; // Autonomous System Number filter s_ipv6calc_filter_db_registry filter_db_registry; // Registry filter s_ipv6calc_filter_addr_ipv4 filter_addr; // IPv4 Address filter /* others may come next */ } s_ipv6calc_filter_ipv4addr; /* * IPv4 address type definitions */ #define IPV4_ADDR_ANY (uint32_t) 0x00000000U #define IPV4_ADDR_UNICAST (uint32_t) 0x00000001U #define IPV4_ADDR_MULTICAST (uint32_t) 0x00000002U #define IPV4_ADDR_ANYCAST (uint32_t) 0x00000004U #define IPV4_ADDR_BROADCAST (uint32_t) 0x00000008U #define IPV4_ADDR_LOOPBACK (uint32_t) 0x00000010U #define IPV4_ADDR_UNSPECIFIED (uint32_t) 0x00000020U #define IPV4_ADDR_ANONYMIZED_GEONAMEID (uint32_t) 0x00000080U #define IPV4_ADDR_ANONYMIZED (uint32_t) 0x00000100U #define IPV4_ADDR_GLOBAL (uint32_t) 0x00000200U #define IPV4_ADDR_UNKNOWN (uint32_t) 0x00000400U #define IPV4_ADDR_RESERVED (uint32_t) 0x00000800U #define IPV4_ADDR_ZEROCONF (uint32_t) 0x00001000U #define IPV4_ADDR_SITELOCAL (uint32_t) 0x00002000U #define IPV4_ADDR_6TO4RELAY (uint32_t) 0x01000000U #define IPV4_ADDR_LISP (uint32_t) 0x00010000U /* IPv6 LISP (RFC6830) */ #define IPV4_ADDR_LISP_PETR (uint32_t) 0x00020000U /* IPv6 LISP Proxy Egress Tunnel Routers (PETRY) Anycast */ #define IPV4_ADDR_LISP_MAP_RESOLVER (uint32_t) 0x00040000U /* IPv6 LISP Map Resolver Anycast */ /* text representations -> libipv4addr.c */ /* IPv4 address anonymization type "keep-type-asn-cc" * Global IPv4 addresses are anonymized by storing country code and AS number * and using prefix of experimental range (240-255.x.y.z) * * 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 * 1 1 1 1 * |p p p p| * Prefix * 0xF * * Parity Bit (odd parity) * |P| * * Mapping of Country Code * |c c c c c c c c c c| * 10-bit Country Code mapping [A-Z]*[A-Z0-9] (936) * 0x3FF = unknown country * 0x000-0x3A7: c1= c / 36, c2 = c % 36 * * Mapping of ASN <= 65535 * 0|a a a a a a a a a a a a a a a a| * 16-bit ASN * * Mapping of ASN >= 65536, ASN & 0xE000 == 0 (12-bit LSB is ok) * 1|r r r|0|l l l l l l l l l l l l| * 13-bit LSB of ASN * * Mapping of ASN >= 65536, ASN & 0xE000 != 0 (12-bit LSB overflow) => unspecified * 1|r r r|1|0 0 0 0 0 0 0 0 0 0 0 0| * * Mapping of ASN registry for ASN >= 65536 * 0 0 0 = "unknown ASN registry" * 0 1 0 = APNIC * 0 1 1 = RIPE * 1 0 0 = LACNIC * 1 0 1 = AFRINIC * 1 1 0 = ARIN * * Mapping of LISP * 1|r r r|1|1|0 0 0 0 0 0 0 0 0 0 0| */ /* IPv4 address anonymization type "keep-type-geonameid" * Global IPv4 addresses are anonymized by storing GeonameID * and using prefix of experimental range (240-255.x.y.z) * * 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 * 1 1 1 1 * |p p p p| * Prefix * 0xF * * Parity Bit (even parity) * |P| * * Mapping of GeonameID source * |s s s| * 3-bit GeonameID source information * 0 0 0 (0x0) = unknown * 0 0 1 (0x1) = continent (prio: lowest) * 0 1 0 (0x2) = country * 0 1 1 (0x3) = state/prov * 1 0 0 (0x4) = district * 1 0 1 (0x5) = city (prio: highest) * 1 1 0 (0x6) = (reserved) * 1 1 1 (0x7) = LISP * * Mapping of GeonameID (limited to IDs < 2^24, in worst case ID from source with lower prio is used) * |g g g g g g g g g g g g g g g g g g g g g g g g| * * Mapping of LISP registry * 0 0 0 = "unknown ASN registry" * 0 1 0 = APNIC * 0 1 1 = RIPE * 1 0 0 = LACNIC * 1 0 1 = AFRINIC * 1 1 0 = ARIN * |0 0 0 0 0 0 0 1 r r r 1 1 0 0 0 0 0 0 0 0 0 0 0| */ // Prefix anonymization on method=kp #define ANON_METHOD_KEEPTYPEASNCC_IPV4_REQ_DB (IPV6CALC_DB_IPV4_TO_CC | IPV6CALC_DB_IPV4_TO_AS) // Prefix anonymization on method=kg #define ANON_METHOD_KEEPTYPEGEONAMEID_IPV4_REQ_DB (IPV6CALC_DB_IPV4_TO_GEONAMEID) #endif /* references */ extern const s_type ipv6calc_ipv4addrtypestrings[]; extern const int ipv6calc_ipv4addrtypestrings_entries; /* prototypes */ extern uint8_t ipv4addr_getoctet(const ipv6calc_ipv4addr *ipv4addrp, const unsigned int numoctet); extern uint16_t ipv4addr_getword(const ipv6calc_ipv4addr *ipv4addrp, const unsigned int numword); extern uint32_t ipv4addr_getdword(const ipv6calc_ipv4addr *ipv4addrp); extern void ipv4addr_setoctet(ipv6calc_ipv4addr *ipv4addrp, const unsigned int numoctet, const uint8_t value); extern void ipv4addr_setword(ipv6calc_ipv4addr *ipv4addrp, const unsigned int numword, const uint16_t value); extern void ipv4addr_setdword(ipv6calc_ipv4addr *ipv4addrp, const uint32_t value); extern void ipv4addr_clear(ipv6calc_ipv4addr *ipv4addrp); extern void ipv4addr_clearall(ipv6calc_ipv4addr *ipv4addrp); extern void ipv4addr_copy(ipv6calc_ipv4addr *ipv4addrp_dst, const ipv6calc_ipv4addr *ipv4addrp_src); extern int ipv4addr_compare(const ipv6calc_ipv4addr *ipv4addrp1, const ipv6calc_ipv4addr *ipv4addrp2, const uint16_t compare_flags); extern uint32_t ipv4addr_gettype(const ipv6calc_ipv4addr *ipv4addrp); extern void ipv4addr_settype(ipv6calc_ipv4addr *ipv4addrp, int flag_reset); extern int addr_to_ipv4addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv4addr *ipv4addrp); extern int addrhex_to_ipv4addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv4addr *ipv4addrp, const int flag_reverse); extern int libipv4addr_ipv4addrstruct_to_string(const ipv6calc_ipv4addr *ipv4addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions); extern int libipv4addr_to_reversestring(const ipv6calc_ipv4addr *ipv4addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions); extern int libipv4addr_to_octal(const ipv6calc_ipv4addr *ipv4addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions); extern int libipv4addr_to_hex(const ipv6calc_ipv4addr *ipv4addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions); void ipv4addrstruct_maskprefix(ipv6calc_ipv4addr *ipv4addrp); void ipv4addrstruct_masksuffix(ipv6calc_ipv4addr *ipv4addrp); extern int libipv4addr_anonymize(ipv6calc_ipv4addr *ipv4addrp, const unsigned int mask, const int method); extern uint32_t ipv4addr_anonymized_get_as_num32(const ipv6calc_ipv4addr *ipv4addrp); extern uint16_t ipv4addr_anonymized_get_cc_index(const ipv6calc_ipv4addr *ipv4addrp); extern int ipv4addr_filter(const ipv6calc_ipv4addr *ipv4addrp, const s_ipv6calc_filter_ipv4addr *filter); extern int ipv4addr_filter_parse(s_ipv6calc_filter_ipv4addr *filter, const char *token); extern int ipv4addr_filter_check(const s_ipv6calc_filter_ipv4addr *filter); extern void ipv4addr_filter_clear(s_ipv6calc_filter_ipv4addr *filter); extern uint16_t libipv4addr_cc_index_by_addr(const ipv6calc_ipv4addr *ipv4addrp, unsigned int *data_source_ptr); extern uint32_t libipv4addr_as_num32_by_addr(const ipv6calc_ipv4addr *ipv4addrp, unsigned int *data_source_ptr); extern uint32_t libipv4addr_GeonameID_by_addr(const ipv6calc_ipv4addr *ipv4addrp, unsigned int *data_source_ptr, unsigned int *GeonameID_type_ptr); extern int libipv4addr_registry_num_by_addr(const ipv6calc_ipv4addr *ipv4addrp); extern void libipv4addr_cleanup(); ipv6calc-4.1.0/lib/libipv6addr.c000066400000000000000000004103551444154247200163620ustar00rootroot00000000000000/* * Project : ipv6calc * File : libipv6addr.c * Version : $Id: e0e79e6fe0827314bc8dcb9860a0bb8cc6121e44 $ * Copyright : 2001-2021 by Peter Bieringer except the parts taken from kernel source * License : GNU GPL v2 * * Information: * Function library for IPv6 address handling */ #include #include #include #include #include #include "config.h" #include "libipv6addr.h" #include "librfc1884.h" #include "librfc3041.h" #include "libipv6addr.h" #include "libipv4addr.h" #include "ipv6calctypes.h" #include "libipv6calc.h" #include "libipv6calcdebug.h" #include "libieee.h" #include "libeui64.h" #include "libipv6calc_db_wrapper.h" /* text representations */ const s_type ipv6calc_ipv6addrtypestrings[] = { { IPV6_ADDR_ANY , "unknown" }, { IPV6_ADDR_UNICAST , "unicast" }, { IPV6_ADDR_MULTICAST , "multicast" }, { IPV6_ADDR_ANYCAST , "anycast" }, { IPV6_ADDR_LOOPBACK , "loopback" }, { IPV6_ADDR_LINKLOCAL , "link-local" }, { IPV6_ADDR_SITELOCAL , "site-local" }, { IPV6_ADDR_COMPATv4 , "compat-v4" }, { IPV6_ADDR_MAPPED , "mapped" }, { IPV6_ADDR_RESERVED , "reserved" }, { IPV6_ADDR_ULUA , "unique-local-unicast" }, { IPV6_ADDR_ANONYMIZED_IID , "anonymized-iid" }, { IPV6_ADDR_ANONYMIZED_PREFIX , "anonymized-prefix" }, { IPV6_NEW_ADDR_6TO4 , "6to4" }, { IPV6_NEW_ADDR_6BONE , "6bone" }, { IPV6_NEW_ADDR_AGU , "global-unicast" }, { IPV6_NEW_ADDR_UNSPECIFIED , "unspecified" }, { IPV6_NEW_ADDR_SOLICITED_NODE , "solicited-node" }, { IPV6_NEW_ADDR_PRODUCTIVE , "productive" }, { IPV6_NEW_ADDR_6TO4_MICROSOFT , "6to4-microsoft" }, { IPV6_NEW_ADDR_TEREDO , "teredo" }, { IPV6_NEW_ADDR_ORCHID , "orchid" }, { IPV6_NEW_ADDR_LINKLOCAL_TEREDO, "link-local-teredo" }, { IPV6_NEW_ADDR_NAT64 , "nat64" }, { IPV6_NEW_ADDR_IID_RANDOM , "iid-random" }, { IPV6_NEW_ADDR_IID , "iid" }, { IPV6_NEW_ADDR_IID_LOCAL , "iid-local" }, { IPV6_NEW_ADDR_IID_GLOBAL , "iid-global" }, { IPV6_NEW_ADDR_IID_TEREDO , "iid-teredo" }, { IPV6_NEW_ADDR_IID_EUI48 , "iid-eui48" }, { IPV6_NEW_ADDR_IID_EUI64 , "iid-eui64" }, { IPV6_NEW_ADDR_IID_ISATAP , "iid-isatap" }, { IPV6_ADDR_IID_32_63_HAS_IPV4 , "iid-includes-ipv4" } }; const int ipv6calc_ipv6addrtypestrings_entries = MAXENTRIES_ARRAY(ipv6calc_ipv6addrtypestrings); const s_type ipv6calc_ipv6addr_type2_strings[] = { { IPV6_ADDR_TYPE2_6RD , "6rd" }, { IPV6_ADDR_TYPE2_LISP , "lisp" }, { IPV6_ADDR_TYPE2_LISP_PETR , "lisp-proxyegresstunnelrouter-anycast" }, { IPV6_ADDR_TYPE2_LISP_MAP_RESOLVER , "lisp-mapresolver-anycast" }, { IPV6_ADDR_TYPE2_ANON_MASKED_PREFIX , "anonymized-masked-prefix" }, { IPV6_ADDR_TYPE2_ANONYMIZED_GEONAMEID , "anonymized-geonameid" }, }; const int ipv6calc_ipv6addr_type2_strings_entries = MAXENTRIES_ARRAY(ipv6calc_ipv6addr_type2_strings); /* IID random limits */ // this filter values detects 999.744 from 1.000.000 generated random (using privacy extension) IIDs (256 are not detected) static const s_iid_statistics s_iid_statistics_ok_min = { 0.249, // fits to 100% of 1 million tested 6.275, // fits to 100% of 1 million tested { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // fit to 100% of 1 million tested { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // fit to 100% of 1 million tested { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // default { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // default 6 // fit to 1 million }; static const s_iid_statistics s_iid_statistics_ok_max = { 2.5, // fits to 1 million - 90 tested (100%: 4.016) 26.042, // fits to 100% of 1 million tested { 16, 6, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // fit to 1 million - 3 tested { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}, // TODO { 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}, // fit to 1 million - 38 tested { 3, 4, 3, 3, 4, 5, 4, 5, 5, 5, 6, 6, 6, 7, 7, 6, 6, 7, 6, 6, 6, 5, 5, 5, 4, 4, 4, 4, 4, 3, 2}, // fit to 1 million 15 // fit to 1 million }; /* * function returns an octet of an IPv6 address * * in: ipv6addrp = pointer to IPv6 address structure * in: numoctet = number of octet (0 = MSB, 15 = LSB) * additional: calls exit on out of range */ uint8_t ipv6addr_getoctet(const ipv6calc_ipv6addr *ipv6addrp, const unsigned int numoctet) { uint8_t retval; if ( numoctet > 15 ) { ERRORPRINT_WA("given octet number '%u' is out of range!", numoctet); exit(EXIT_FAILURE); }; retval = ipv6addrp->in6_addr.s6_addr[numoctet]; return (retval); }; /* * function returns a word of an IPv6 address * * in: ipv6addrp = pointer to IPv6 address structure * in: numword = number of word (0 = MSB, 7 = LSB) * additional: calls exit on out of range */ uint16_t ipv6addr_getword(const ipv6calc_ipv6addr *ipv6addrp, const unsigned int numword) { uint16_t retval; if ( numword > 7 ) { ERRORPRINT_WA("given word number '%u' is out of range!", numword); exit(EXIT_FAILURE); }; retval = ( ipv6addrp->in6_addr.s6_addr[numword * 2] << 8 ) \ | ( ipv6addrp->in6_addr.s6_addr[numword * 2 + 1] ); return (retval); }; /* * function returns a dword of an IPv6 address * * in: ipv6addrp = pointer to IPv6 address structure * in: numdword = number of word (0 = MSB, 3 = LSB) * additional: calls exit on out of range */ uint32_t ipv6addr_getdword(const ipv6calc_ipv6addr *ipv6addrp, const unsigned int numdword) { uint32_t retval; if ( numdword > 3 ) { ERRORPRINT_WA("given dword number '%u' is out of range!", numdword); exit(EXIT_FAILURE); }; retval = ( ipv6addrp->in6_addr.s6_addr[numdword * 4] << 24 ) \ | ( ipv6addrp->in6_addr.s6_addr[numdword * 4 + 1] << 16 ) \ | ( ipv6addrp->in6_addr.s6_addr[numdword * 4 + 2] << 8 ) \ | ( ipv6addrp->in6_addr.s6_addr[numdword * 4 + 3] ); return (retval); }; /* * function sets an octet of an IPv6 address * * mod: ipv6addrp = pointer to IPv6 address structure * in: numoctet = number of word (0 = MSB, 15 = LSB) * in: value = value to set * additional: calls exit on out of range */ void ipv6addr_setoctet(ipv6calc_ipv6addr *ipv6addrp, const unsigned int numoctet, const unsigned int value) { if ( numoctet > 15 ) { ERRORPRINT_WA("given octet number '%u' is out of range!", numoctet); exit(EXIT_FAILURE); }; if ( value > 0x0000000ff ) { ERRORPRINT_WA("given value '%x' is out of range!", value); exit(EXIT_FAILURE); }; ipv6addrp->in6_addr.s6_addr[numoctet] = (uint8_t) value; return; }; /* * function sets a word of an IPv6 address * * mod: ipv6addrp = pointer to IPv6 address structure * in: numword = number of word (0 = MSB, 7 = LSB) * in: value = value to set * additional: calls exit on out of range */ void ipv6addr_setword(ipv6calc_ipv6addr *ipv6addrp, const unsigned int numword, const unsigned int value) { if ( numword > 7 ) { ERRORPRINT_WA("given word number '%u' is out of range!", numword); exit(EXIT_FAILURE); }; if ( value > 0x0000ffffu ) { ERRORPRINT_WA("given value '%x' is out of range!", value); exit(EXIT_FAILURE); }; ipv6addrp->in6_addr.s6_addr[numword * 2 ] = (uint8_t) ( ( value & 0x0000ff00 ) >> 8 ); ipv6addrp->in6_addr.s6_addr[numword * 2 + 1] = (uint8_t) ( ( value & 0x000000ff ) ); return; }; /* * function sets a dword of an IPv6 address * * mod: ipv6addrp = pointer to IPv6 address structure * in: numdword = number of word (0 = MSB, 3 = LSB) * in: value = value to set * additional: calls exit on out of range */ void ipv6addr_setdword(ipv6calc_ipv6addr *ipv6addrp, const unsigned int numdword, const unsigned int value) { if ( numdword > 3 ) { ERRORPRINT_WA("given dword number '%u' is out of range!", numdword); exit(EXIT_FAILURE); }; if ( value > 0xffffffffu ) { ERRORPRINT_WA("given value '%x' is out of range!", value); exit(EXIT_FAILURE); }; ipv6addrp->in6_addr.s6_addr[numdword * 4 ] = (uint8_t) ( ( value & 0xff000000 ) >> 24 ); ipv6addrp->in6_addr.s6_addr[numdword * 4 + 1] = (uint8_t) ( ( value & 0x00ff0000 ) >> 16 ); ipv6addrp->in6_addr.s6_addr[numdword * 4 + 2] = (uint8_t) ( ( value & 0x0000ff00 ) >> 8 ); ipv6addrp->in6_addr.s6_addr[numdword * 4 + 3] = (uint8_t) ( ( value & 0x000000ff ) ); return; }; /* * function clears the IPv6 structure * * mod: ipv6addrp = pointer to IPv6 address structure */ void ipv6addr_clear(ipv6calc_ipv6addr *ipv6addrp) { int i; for (i = 0; i < MAXENTRIES_ARRAY(ipv6addrp->in6_addr.s6_addr); i++) { ipv6addrp->in6_addr.s6_addr[i] = 0; }; /* Clear IPv6 address scope */ ipv6addrp->typeinfo = 0; ipv6addrp->typeinfo2 = 0; ipv6addrp->flag_typeinfo = 0; /* Clear valid flag */ ipv6addrp->flag_valid = 0; /* Clear test mode */ ipv6addrp->test_mode = 0; return; }; /* * function clears the IPv6 structure * * mod: ipv6addrp = pointer to IPv6 address structure */ void ipv6addr_clearall(ipv6calc_ipv6addr *ipv6addrp) { ipv6addr_clear(ipv6addrp); /* Clear other field */ ipv6addrp->bit_start = 1; ipv6addrp->bit_end = 128; ipv6addrp->flag_startend_use = 0; ipv6addrp->flag_prefixuse = 0; ipv6addrp->prefixlength = 0; ipv6addrp->prefix2length = 0; ipv6addrp->flag_valid = 0; ipv6addrp->flag_scopeid = 0; return; }; /* * function copies the IPv6 structure * * in: ipv6addrp = pointer to IPv6 address structure * mod: ipv6addrp2 = pointer to IPv6 address structure */ void ipv6addr_copy(ipv6calc_ipv6addr *ipv6addrp_dst, const ipv6calc_ipv6addr *ipv6addrp_src) { *(ipv6addrp_dst) = *(ipv6addrp_src); return; }; /* * function compares the IPv6 structure * * in: ipv6addrp1 = pointer to IPv6 address structure * in: ipv6addrp2 = pointer to IPv6 address structure * in: compare_flags: * 0=less than/equal/greater than * 1=honor prefix length on addr2 * * returns: 0: addr1 equal with addr2, 1: addr1 > addr2, -1: addr1 < addr2 (compare_flags == 0) * returns: 0: addr1 equal with addr2 or covered by addr2/prefix (compare_flags == 1) */ int ipv6addr_compare(const ipv6calc_ipv6addr *ipv6addrp1, const ipv6calc_ipv6addr *ipv6addrp2, const uint16_t compare_flags) { int i; uint32_t mask; DEBUGPRINT_WA(DEBUG_libipv6addr, "compare addr1 with addr2 (compare flags: %08x)", compare_flags); if (compare_flags == 1) { for (i = 0; i < 4; i++) { if ((ipv6addrp2->flag_prefixuse == 0) || ((ipv6addrp2->flag_prefixuse == 1) && (ipv6addrp2->prefixlength >= (i + 1) * 32))) { DEBUGPRINT_WA(DEBUG_libipv6addr, "compare dword %i (prefixuse=%d): %08x <-> %08x", i, ipv6addrp2->flag_prefixuse, ipv6addr_getdword(ipv6addrp2, i), ipv6addr_getdword(ipv6addrp1, i)); /* compare 32 bits */ if (ipv6addr_getdword(ipv6addrp2, i) != ipv6addr_getdword(ipv6addrp1, i)) { return(1); }; } else if (ipv6addrp2->flag_prefixuse == 1) { mask = ~(0xffffffffu >> (ipv6addrp2->prefixlength - i * 32)); DEBUGPRINT_WA(DEBUG_libipv6addr, "compare dword %i with mask 0x%08x: %08x <-> %08x", i, mask, (ipv6addr_getdword(ipv6addrp2, i) & mask), (ipv6addr_getdword(ipv6addrp1, i) & mask)); if ((ipv6addr_getdword(ipv6addrp2, i) & mask) != (ipv6addr_getdword(ipv6addrp1, i) & mask)) { return(1); } else { return(0); }; }; }; } else if (compare_flags == 0) { for (i = 0; i < 4; i++) { if (ipv6addr_getdword(ipv6addrp1, i) > ipv6addr_getdword(ipv6addrp2, i)) { return(1); } else if (ipv6addr_getdword(ipv6addrp1, i) < ipv6addr_getdword(ipv6addrp2, i)) { return(-1); }; }; }; return(0); }; /* * create/verify checksum for anonymized qword * * in: ipv6addrp = pointer to IPv6 address structure * in: flag = ANON_CHECKSUM_FLAG_CREATE|ANON_CHECKSUM_FLAG_VERIFY * in: qword = qword (64-bit selection) * out: ANON_CHECKSUM_FLAG_CREATE: 4-bit checksum ANON_CHECKSUM_FLAG_VERIFY: 0:ok/1:not-ok * * using same calculation as for ISAN: ISO 7064, MOD 17,16 * http://www.pruefziffernberechnung.de/I/ISAN.shtml */ uint32_t ipv6addr_checksum_anonymized_qword(const ipv6calc_ipv6addr *ipv6addrp, const int flag, const int qword) { uint32_t dword[2]; uint32_t checksum = 0; int i, n, index, i_max = 16; unsigned int s; uint32_t a, b, c = 0; DEBUGPRINT_NA(DEBUG_libipv6addr, "Called"); dword[0] = ipv6addr_getdword(ipv6addrp, (qword << 1)); // 00-31 (8 nibbles) dword[1] = ipv6addr_getdword(ipv6addrp, (qword << 1) + 1); // 32-63 (8 nibbles, only 7 nibbles are used for calculation) if (flag == ANON_CHECKSUM_FLAG_CREATE) { i_max = 15; }; for (i = 1; i <= i_max; i++) { index = (i - 1) / 8; // 0-1 n = (i - 1) % 8; // 0-7 s = (7 - n) * 4; if (i == 1) { a = 16; // init } else { a = c * 2; }; b = (a % 17) + ((dword[index] & (0xf << s)) >> s); c = b % 16; // DEBUGPRINT_WA(DEBUG_libipv6addr, "checksum calculation of qword: %08x %08x i=%02d a=%02d b=%02d c=%02d", (unsigned int) dword[0], (unsigned int) dword[1], i, a, b, c); }; if (flag == ANON_CHECKSUM_FLAG_VERIFY) { // return code depending on result if (c == 1) { DEBUGPRINT_NA(DEBUG_libipv6addr, "checksum verification OK"); return(0); }; DEBUGPRINT_NA(DEBUG_libipv6addr, "checksum verification FAILED"); return(1); }; /* find checksum xdigit */ a = c * 2; for (checksum = 0; checksum <= 0xf; checksum++) { if ( (((a % 17) + checksum) % 16) == 1) { break; }; }; DEBUGPRINT_WA(DEBUG_libipv6addr, "checksum of 64 bits: %08x %08x = %x", (unsigned int) dword[0], (unsigned int) dword[1], checksum); return(checksum); }; /* * set checksum for anonymized prefix * * mod: ipv6addrp = pointer to IPv6 address structure */ void ipv6addr_set_checksum_anonymized_prefix(ipv6calc_ipv6addr *ipv6addrp) { uint32_t checksum = ipv6addr_checksum_anonymized_qword(ipv6addrp, ANON_CHECKSUM_FLAG_CREATE, 0); /* checksum is stored in rightmost nibble */ ipv6addr_setoctet(ipv6addrp, 7, (ipv6addr_getoctet(ipv6addrp, 7) & 0xf0) | checksum); }; /* * verify checksum for anonymized prefix * * in: ipv6addrp = pointer to IPv6 address structure * out: 0=ok 1=not ok */ int ipv6addr_verify_checksum_anonymized_prefix(const ipv6calc_ipv6addr *ipv6addrp) { return (ipv6addr_checksum_anonymized_qword(ipv6addrp, ANON_CHECKSUM_FLAG_VERIFY, 0)); }; /* * set checksum for anonymized IID * * mod: ipv6addrp = pointer to IPv6 address structure */ void ipv6addr_set_checksum_anonymized_iid(ipv6calc_ipv6addr *ipv6addrp) { uint32_t checksum = ipv6addr_checksum_anonymized_qword(ipv6addrp, ANON_CHECKSUM_FLAG_CREATE, 1); /* checksum is stored in rightmost nibble */ ipv6addr_setoctet(ipv6addrp, 15, (ipv6addr_getoctet(ipv6addrp, 15) & 0xf0) | checksum); }; /* * verify checksum for anonymized IID * * in: ipv6addrp = pointer to IPv6 address structure * out: 0=ok 1=not ok */ int ipv6addr_verify_checksum_anonymized_iid(const ipv6calc_ipv6addr *ipv6addrp) { return (ipv6addr_checksum_anonymized_qword(ipv6addrp, ANON_CHECKSUM_FLAG_VERIFY, 1)); }; /* * fuzzy detection of IID is random generated (e.g. by privacy extension) * * in: ipv6addrp = pointer to IPv6 address structure * out: 0=probably random generated (e.g. by privacy extension), 1=manual set, -1=global, 2=unknown */ int ipv6addr_iidrandomdetection(const ipv6calc_ipv6addr *ipv6addrp, s_iid_statistics *iid_statisticsp) { uint32_t iid[2]; iid[0] = ipv6addr_getdword(ipv6addrp, 2); // 00-31 iid[1] = ipv6addr_getdword(ipv6addrp, 3); // 32-63 int result = 2; float m, e; int iid_digit[16]; // digit of IID int b, i, c, v; // debug DEBUGPRINT_WA(DEBUG_libipv6addr_iidrandomdetection, "given IID: %08x%08x",(unsigned int) iid[0], (unsigned int) iid[1]); // blacklists if ((iid[0] & 0x02000000u) == 0x02000000u) { DEBUGPRINT_NA(DEBUG_libipv6addr_iidrandomdetection, "universal/local bit set to: universal (no further random detection)"); result = -1; goto END_ipv6addr_iidrandomdetection; }; if (((iid[0] & 0x000000ffu) == 0x000000ffu) && ((iid[1] & 0xff000000u) == 0xfe000000u)) { DEBUGPRINT_NA(DEBUG_libipv6addr_iidrandomdetection, "expanded EUI-48 (no further random detection)"); result = -1; goto END_ipv6addr_iidrandomdetection; }; // clear structure iid_statisticsp->hexdigit = 0; iid_statisticsp->lls_residual = 0; for (c = 0; c < 16; c++) { iid_statisticsp->digit_blocks[c] = 0; iid_statisticsp->digit_blocks_hexdigit[c] = 0; iid_statisticsp->digit_amount[c] = 0; }; for (c = 0; c < 31; c++) { iid_statisticsp->digit_delta[c] = 0; }; iid_statisticsp->digit_delta_amount = 0; /* create statistics */ for (b = 0; b < 16; b++) { v = (iid[b/8] & (0xf << ((7 - (b % 8)) * 4))) >> ((7 - (b % 8)) * 4); iid_digit[b] = v; DEBUGPRINT_WA(DEBUG_libipv6addr_iidrandomdetection, "analyze nibble %2d: %x", b, v); iid_statisticsp->digit_amount[v]++; }; if ( (ipv6calc_debug & DEBUG_libipv6addr_iidrandomdetection) != 0 ) { // ipv6calc_debug usage ok DEBUGPRINT_NA(DEBUG_libipv6addr, "distribution"); fprintf(stderr, "%s/%s: hex distribution: digit ", __FILE__, __func__); for (b = 0; b < 16; b++) { fprintf(stderr, "|%2x", b); }; fprintf(stderr, "|\n"); fprintf(stderr, "%s/%s: hex distribution: count ", __FILE__, __func__); for (b = 0; b < 16; b++) { fprintf(stderr, "|%2d", iid_statisticsp->digit_amount[b]); }; fprintf(stderr, "|\n"); }; /* calculate variances */ v = 0; /* calculate variance over hexdigits */ c = 0; float variance = 0.0; for (b = 0; b < 16; b++) { if (iid_statisticsp->digit_amount[b] == 0) { continue; }; c++; e = iid_statisticsp->digit_amount[b]; m = 1.0; /* compensate universal/local bit = 0 by shifting average */ if ((b & 0x02) == 0x02) { m -= 0.0625; } else { m += 0.0625; }; DEBUGPRINT_WA(DEBUG_libipv6addr_iidrandomdetection, "hexdigit %x: amount=%.0f exp.avg.=%.4f", b, e, m); e = e - m; /* substract related average */ e = e * e; /* square */ variance += e; }; variance = sqrt(variance / c); DEBUGPRINT_WA(DEBUG_libipv6addr_iidrandomdetection, "variance for hexdigits: %0.5f", variance); iid_statisticsp->hexdigit = variance; /* calculate linear least square fit to detect sequences */ float xm = 0, ym = 0, x2 = 0, xy = 0, a0, a1, r, r2 = 0; for (b = 0; b < 16; b++) { DEBUGPRINT_WA(DEBUG_libipv6addr_iidrandomdetection, "linear least square calc: x=%0.5f y=%0.5f", (float) b, (float) iid_digit[b]); xm += (float) b; ym += (float) iid_digit[b]; xy += (float) b * (float) iid_digit[b]; x2 += (float) b * (float) b; }; xm /= 16.0; ym /= 16.0; DEBUGPRINT_WA(DEBUG_libipv6addr_iidrandomdetection, "linear least square calc: xm=%0.5f ym=%0.5f", xm, ym); DEBUGPRINT_WA(DEBUG_libipv6addr_iidrandomdetection, "linear least square calc: x2=%0.5f xy=%0.5f", x2, xy); a1 = (xy - 16 * xm * ym) / (x2 - 16 * xm * xm); a0 = ym - a1 * xm; for (b = 0; b < 16; b++) { r = a0 + a1 * (float) b - (float) iid_digit[b]; r2 += r * r; }; r = sqrt(r2); DEBUGPRINT_WA(DEBUG_libipv6addr_iidrandomdetection, "linear least square result: a0=%0.5f a1=%0.5f r=%05f", a0, a1, r); iid_statisticsp->lls_residual = r; /* check for repeating digits (digit blocks) */ c = 0; i = iid_digit[0]; for (b = 1; b < 16; b++) { if (i == iid_digit[b]) { c++; } else { if (c > 0) { iid_statisticsp->digit_blocks_hexdigit[i]++; }; iid_statisticsp->digit_blocks[c]++; i = iid_digit[b]; c = 0; }; }; iid_statisticsp->digit_blocks[c]++; /* analyze delta of neighbor digits (digit delta) */ for (b = 1; b < 16; b++) { v = iid_digit[b] - iid_digit[b-1] + 15; if (iid_statisticsp->digit_delta[v] == 0) { // count, how many different digit deltas found iid_statisticsp->digit_delta_amount++; }; iid_statisticsp->digit_delta[v]++; }; if ( (ipv6calc_debug & DEBUG_libipv6addr_iidrandomdetection) != 0 ) { // ipv6calc_debug usage ok fprintf(stderr, "%s/%s: digit blocks: ", __FILE__, __func__); for (c = 0; c < 16; c++) { fprintf(stderr, "%d:%d ", c+1, iid_statisticsp->digit_blocks[c]); }; fprintf(stderr, "\n"); fprintf(stderr, "%s/%s: hex distribution in blocks: digit ", __FILE__, __func__); for (b = 0; b < 16; b++) { fprintf(stderr, "|%2x", b); }; fprintf(stderr, "|\n"); fprintf(stderr, "%s/%s: hex distribution in blocks: count ", __FILE__, __func__); for (b = 0; b < 16; b++) { fprintf(stderr, "|%2d", iid_statisticsp->digit_blocks_hexdigit[b]); }; fprintf(stderr, "|\n"); }; /* check against limits */ if (iid_statisticsp->hexdigit < s_iid_statistics_ok_min.hexdigit || iid_statisticsp->hexdigit > s_iid_statistics_ok_max.hexdigit) { DEBUGPRINT_WA(DEBUG_libipv6addr_iidrandomdetection, "min/max hexdigit variance limit reached: %f min=%f max=%f", iid_statisticsp->hexdigit, s_iid_statistics_ok_min.hexdigit, s_iid_statistics_ok_max.hexdigit); result = 1; goto END_ipv6addr_iidrandomdetection; } else if (iid_statisticsp->lls_residual < s_iid_statistics_ok_min.lls_residual || iid_statisticsp->lls_residual > s_iid_statistics_ok_max.lls_residual) { DEBUGPRINT_NA(DEBUG_libipv6addr_iidrandomdetection, "min/max lls_residual limit reached"); result = 1; goto END_ipv6addr_iidrandomdetection; } else if (iid_statisticsp->digit_delta_amount < s_iid_statistics_ok_min.digit_delta_amount || iid_statisticsp->digit_delta_amount > s_iid_statistics_ok_max.digit_delta_amount) { DEBUGPRINT_NA(DEBUG_libipv6addr_iidrandomdetection, "min/max digit_delta_amount reached"); result = 1; goto END_ipv6addr_iidrandomdetection; } else { for (c = 0; c < 16; c++) { // digit blocks if (iid_statisticsp->digit_blocks[c] < s_iid_statistics_ok_min.digit_blocks[c] || iid_statisticsp->digit_blocks[c] > s_iid_statistics_ok_max.digit_blocks[c]) { DEBUGPRINT_NA(DEBUG_libipv6addr_iidrandomdetection, "min/max digit_blocks reached"); result = 1; goto END_ipv6addr_iidrandomdetection; }; // digit blocks hexdigits if (iid_statisticsp->digit_blocks_hexdigit[c] < s_iid_statistics_ok_min.digit_blocks_hexdigit[c] || iid_statisticsp->digit_blocks_hexdigit[c] > s_iid_statistics_ok_max.digit_blocks_hexdigit[c]) { DEBUGPRINT_NA(DEBUG_libipv6addr_iidrandomdetection, "min/max digit_blocks_hexdigit reached"); result = 1; goto END_ipv6addr_iidrandomdetection; }; // digit amount if (iid_statisticsp->digit_amount[c] < s_iid_statistics_ok_min.digit_amount[c] || iid_statisticsp->digit_amount[c] > s_iid_statistics_ok_max.digit_amount[c]) { DEBUGPRINT_NA(DEBUG_libipv6addr_iidrandomdetection, "min/max digit_amount reached"); result = 1; goto END_ipv6addr_iidrandomdetection; }; }; for (c = 0; c < 31; c++) { // digit delta if (iid_statisticsp->digit_delta[c] < s_iid_statistics_ok_min.digit_delta[c] || iid_statisticsp->digit_delta[c] > s_iid_statistics_ok_max.digit_delta[c]) { DEBUGPRINT_NA(DEBUG_libipv6addr_iidrandomdetection, "min/max digit_delta reached"); result = 1; goto END_ipv6addr_iidrandomdetection; }; }; }; result = 0; END_ipv6addr_iidrandomdetection: DEBUGPRINT_WA(DEBUG_libipv6addr_iidrandomdetection, "result=%d", result); return (result); }; /* * Set type of an IPv6 address * * with credits to kernel and USAGI developer team * basic code was taken from "kernel/net/ipv6/addrconf.c" * * in : ipv6addrp = pointer to IPv6 address structure * mod: typeinfo, typeinfo2, prefix2length */ void ipv6addr_settype(ipv6calc_ipv6addr *ipv6addrp) { uint32_t type = 0, r, type2 = 0; uint32_t st, st1, st2, st3; s_iid_statistics variances; int p; uint32_t mask_0_15, mask_16_31; uint32_t as_num32, cc_index, geonameid, geonameid_type; int r1, r2, f; ipv6calc_ipv4addr ipv4addr; ipv6calc_ipv6addr ipv6addr; st = ipv6addr_getdword(ipv6addrp, 0); /* 32 MSB */ st1 = ipv6addr_getdword(ipv6addrp, 1); st2 = ipv6addr_getdword(ipv6addrp, 2); st3 = ipv6addr_getdword(ipv6addrp, 3); /* 32 LSB */ DEBUGPRINT_NA(DEBUG_libipv6addr, "Called"); /* unspecified address */ if ( (st == 0) && (st1 == 0) && (st2 == 0) && (st3 == 0) ) { type |= IPV6_NEW_ADDR_UNSPECIFIED; goto END_ipv6addr_gettype; }; /* address space information */ if ((st & 0xFE000000u) == 0xFC000000u) { /* FC00::/7 -> Unique Local IPv6 Unicast Address */ type |= IPV6_ADDR_ULUA; }; if (st == 0x261000d0) { /* 2610:00d0::/32 -> LISP (RFC 6830) */ type2 |= IPV6_ADDR_TYPE2_LISP; }; if ((st == 0x2001067c) && ((st1 & 0xffff0000u) == 0x01980000u)) { /* 2001:67c:198::/48 -> LISP PETR (RFC 6830) */ type2 |= IPV6_ADDR_TYPE2_LISP | IPV6_ADDR_TYPE2_LISP_PETR; type |= IPV6_ADDR_ANYCAST; }; if ((st == 0x2001067c) && ((st1 & 0xffff0000u) == 0x00280000u)) { /* 2001:67c:28::/48 -> LISP Map Resolver (RFC 6830) */ type2 |= IPV6_ADDR_TYPE2_LISP | IPV6_ADDR_TYPE2_LISP_MAP_RESOLVER; type |= IPV6_ADDR_ANYCAST; }; if (st == 0x20010db8) { /* 2001:db8::/32 -> prefix for documentation (RFC 3849) */ type |= IPV6_ADDR_RESERVED; }; if (UNPACK_XMS(st, ANON_PREFIX_TOKEN_XOR, ANON_PREFIX_TOKEN_MASK, ANON_PREFIX_TOKEN_SHIFT) == ANON_PREFIX_TOKEN_VALUE) { // anonymized prefix ? DEBUGPRINT_WA(DEBUG_libipv6addr, " probably anonymized prefix found: %04x:%04x:%04x:%04x", U32_MSB16(st), U32_LSB16(st), U32_MSB16(st1), U32_LSB16(st1)); /* verify now checksum */ if (ipv6addr_verify_checksum_anonymized_prefix(ipv6addrp) == 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "checksum ok - anonymized prefix found"); /* extract flag */ uint32_t flags; f = ipv6addr_get_payload_anonymized_prefix(ipv6addrp, ANON_PREFIX_PAYLOAD_FLAGS, &flags); if (f != 0) { ERRORPRINT_NA("'flags' payload can't be retrieved, FIX CODE"); exit(EXIT_FAILURE); }; if (flags == 0x0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "found anonymized IPv6 address with method: kp"); // anon method=kp type |= IPV6_NEW_ADDR_AGU | IPV6_ADDR_UNICAST | IPV6_ADDR_ANONYMIZED_PREFIX; r1 = ipv6addr_get_payload_anonymized_prefix(ipv6addrp, ANON_PREFIX_PAYLOAD_CCINDEX, &cc_index); r2 = ipv6addr_get_payload_anonymized_prefix(ipv6addrp, ANON_PREFIX_PAYLOAD_ASN32, &as_num32); if ((r1 == 0) && (r2 == 0) && (cc_index == COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MIN + REGISTRY_6BONE)) { type |= IPV6_NEW_ADDR_6BONE; } else if ((r1 == 0) && (r2 == 0) && (cc_index == COUNTRYCODE_INDEX_LISP)) { type |= IPV6_NEW_ADDR_PRODUCTIVE; type2 |= IPV6_ADDR_TYPE2_LISP; } else { type |= IPV6_NEW_ADDR_PRODUCTIVE; }; } else if (flags == 0x1) { DEBUGPRINT_NA(DEBUG_libipv6addr, "found anonymized IPv6 address with method: kg"); // anon method=kg type |= IPV6_NEW_ADDR_AGU | IPV6_ADDR_UNICAST | IPV6_ADDR_ANONYMIZED_PREFIX; type2 |= IPV6_ADDR_TYPE2_ANONYMIZED_GEONAMEID; r1 = ipv6addr_get_payload_anonymized_prefix(ipv6addrp, ANON_PREFIX_PAYLOAD_GEONAMEID, &geonameid); r2 = ipv6addr_get_payload_anonymized_prefix(ipv6addrp, ANON_PREFIX_PAYLOAD_GEONAMEID_TYPE, &geonameid_type); if ((r1 == 0) && (r2 == 0) && (((geonameid_type & 0xf) == 0) && ((geonameid_type & 0xf0) >> 4) == REGISTRY_6BONE)) { type |= IPV6_NEW_ADDR_6BONE; DEBUGPRINT_NA(DEBUG_libipv6addr, "found anonymized 6bone IPv6 address with method: kg"); } else if ((r1 == 0) && (r2 == 0) && (geonameid == 0x11800) && ((geonameid_type & 0xf)== 7)) { DEBUGPRINT_NA(DEBUG_libipv6addr, "found anonymized LISP IPv6 address with method: kg"); type |= IPV6_NEW_ADDR_PRODUCTIVE; type2 |= IPV6_ADDR_TYPE2_LISP; } else { type |= IPV6_NEW_ADDR_PRODUCTIVE; }; } else { }; } else { DEBUGPRINT_NA(DEBUG_libipv6addr, "checksum NOT ok - no anonymized prefix found"); }; }; /* address space information */ if ((st & 0xE0000000u) == 0x20000000u) { /* 2000::/3 -> global unicast */ type |= IPV6_NEW_ADDR_AGU; }; /* address space information */ if ((st & 0xFFFF0000u) == 0x3FFE0000u) { /* 3ffe::/16 -> experimental 6bone */ type |= IPV6_NEW_ADDR_6BONE; }; if ((st & 0xFFFF0000u) == 0x20020000u) { /* 2002::/16 -> 6to4 tunneling */ type |= IPV6_NEW_ADDR_6TO4; if ( (ipv6addr_getword(ipv6addrp, 3) == 0) && (ipv6addr_getword(ipv6addrp, 4) == 0) && (ipv6addr_getword(ipv6addrp, 5) == 0) && (ipv6addr_getword(ipv6addrp, 6) == ipv6addr_getword(ipv6addrp, 1)) && (ipv6addr_getword(ipv6addrp, 7) == ipv6addr_getword(ipv6addrp, 2)) ) { /* 2002::: -> usually Microsoft does this */ type |= IPV6_NEW_ADDR_6TO4_MICROSOFT; type |= IPV6_ADDR_IID_32_63_HAS_IPV4; }; }; if (st == (uint32_t) 0x3FFE831Fu || st == (uint32_t) 0x20010000u) { /* 3ffe:831f::/32 -> Teredo (6bone, older draft) */ /* 2001:0000::/32 -> Teredo (RFC 4380) */ type |= IPV6_NEW_ADDR_TEREDO; if (ipv6addr_getword(ipv6addrp, 5) == 0xffffu) { // port=0, done by anonymization type |= IPV6_ADDR_ANONYMIZED_IID; }; }; if (((st & 0xFFFFFFF0u) == 0x20010010u) || ((st & 0xFFFFFFF0u) == 0x20010020u)) { /* 2001:0010::/28 -> ORCHID (RFC 4843) */ /* 2001:0020::/28 -> ORCHIDv2 (RFC 7343) */ type |= IPV6_NEW_ADDR_ORCHID; /* ORCHID has no IID, only a 100 bit encoded hash */ /* check for anonymized hash */ if ((st2 & ANON_TOKEN_MASK_00_31) == (ANON_TOKEN_VALUE_00_31 & ANON_TOKEN_MASK_00_31)) { DEBUGPRINT_NA(DEBUG_libipv6addr, "probably anonymized ORCHID found"); /* verify now checksum */ if (ipv6addr_verify_checksum_anonymized_iid(ipv6addrp) == 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "checksum ok - anonymized ORCHID found"); type |= IPV6_ADDR_ANONYMIZED_IID; } else { DEBUGPRINT_NA(DEBUG_libipv6addr, "checksum NOT ok - no anonymized ORCHID found"); }; }; goto END_ipv6addr_gettype; }; if ((st == 0x0064ff9bu) && (st1 == 0) && (st2 == 0)) { /* 64:ff9b::/96 -> NAT64 (RFC 6052) */ type |= IPV6_NEW_ADDR_NAT64; }; if (((type & (IPV6_NEW_ADDR_6BONE | IPV6_NEW_ADDR_6TO4)) == 0) && ((st & 0xE0000000u) == 0x20000000u)) { /* 2000::/3 -> productive IPv6 address space */ /* except 3ffe::/16 (6BONE) and 2002::/16 (6TO4) */ type |= IPV6_NEW_ADDR_PRODUCTIVE; }; if ((st2 == (uint32_t) 0x00000001u) && (st3 & 0xFF000000u) == 0xFF000000u) { /* ..:0000:0001:ffxx:xxxx solicited node suffix */ type |= IPV6_NEW_ADDR_SOLICITED_NODE; }; if (((st2 & 0xFDFFFF00u) == (uint32_t) 0x00005E00u) && ((type & IPV6_NEW_ADDR_TEREDO) == 0)) { /* ISATAP (RFC 4214/5214), but not if TEREDO */ /* ..:0x00:5EFE:xx.xx.xx.xx ISATAP IID with private IPv4 address */ /* ..:0x00:5EFE:xx.xx.xx.xx ISATAP IID with public IPv4 address */ /* ..:0x00:5EFF:FExx:xxxx ISATAP IID with vendor ID */ /* ..:0x00:5Exx:xxxx:xxxx ISATAP IID with extension ID */ /* x & 0x2 == 0x2:global, x & 0x02 == 0:local */ type |= IPV6_NEW_ADDR_IID_ISATAP; if ((st2 & 0x02000000u) == 0x02000000u) { type |= IPV6_NEW_ADDR_IID_GLOBAL; } else { type |= IPV6_NEW_ADDR_IID_LOCAL; }; if ((st2 & 0x000000ffu) == 0x000000feu) { type |= IPV6_ADDR_IID_32_63_HAS_IPV4; }; }; /* multicast */ if ((st & 0xFF000000u) == 0xFF000000u) { type |= IPV6_ADDR_MULTICAST; switch((st & 0x00FF0000u)) { case (0x00010000u): type |= IPV6_ADDR_LOOPBACK; break; case (0x00020000u): type |= IPV6_ADDR_LINKLOCAL; break; case (0x00050000u): type |= IPV6_ADDR_SITELOCAL; break; }; goto END_ipv6addr_gettype; }; /* special */ if ((st | st1) == 0) { if (st2 == 0) { if (st3 == 0) { type |= IPV6_ADDR_ANY; goto END_ipv6addr_gettype; }; if (st3 == (uint32_t) 0x00000001u) { type |= IPV6_ADDR_LOOPBACK | IPV6_ADDR_UNICAST; goto END_ipv6addr_gettype; }; type |= IPV6_ADDR_COMPATv4 | IPV6_ADDR_UNICAST; } if (st2 == (uint32_t) 0x0000ffffu) type |= IPV6_ADDR_MAPPED; }; // check for included anonymized IPv4 address if ((type & (IPV6_ADDR_COMPATv4| IPV6_ADDR_MAPPED | IPV6_NEW_ADDR_NAT64 | IPV6_NEW_ADDR_6TO4)) != 0) { ipv6addr_copy(&ipv6addr, ipv6addrp); ipv6addr.typeinfo = type; // store what we already have r = libipv6addr_get_included_ipv4addr(&ipv6addr, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (r == 0) { if ((ipv4addr.typeinfo & IPV4_ADDR_ANONYMIZED) != 0) { if ((type & IPV6_ADDR_HAS_PUBLIC_IPV4_IN_PREFIX) != 0) { type |= IPV6_ADDR_ANONYMIZED_PREFIX; }; if ((type & IPV6_ADDR_HAS_PUBLIC_IPV4_IN_IID) != 0) { type |= IPV6_ADDR_ANONYMIZED_IID; }; }; if ((ipv4addr.typeinfo & IPV4_ADDR_ANONYMIZED_GEONAMEID) != 0) { type2 |= IPV6_ADDR_TYPE2_ANONYMIZED_GEONAMEID; }; }; } else if ((type & (IPV6_NEW_ADDR_TEREDO)) != 0) { // check client IP ipv6addr_copy(&ipv6addr, ipv6addrp); ipv6addr.typeinfo = type; // store what we already have r = libipv6addr_get_included_ipv4addr(&ipv6addr, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (r == 0) { if ((ipv4addr.typeinfo & IPV4_ADDR_ANONYMIZED) != 0) { type |= IPV6_ADDR_ANONYMIZED_IID; }; if ((ipv4addr.typeinfo & IPV4_ADDR_ANONYMIZED_GEONAMEID) != 0) { type2 |= IPV6_ADDR_TYPE2_ANONYMIZED_GEONAMEID; }; }; // check server IP ipv6addr_copy(&ipv6addr, ipv6addrp); ipv6addr.typeinfo = type; // store what we already have r = libipv6addr_get_included_ipv4addr(&ipv6addr, &ipv4addr, IPV6_ADDR_SELECT_IPV4_TEREDO_SERVER); if (r == 0) { if ((ipv4addr.typeinfo & IPV4_ADDR_ANONYMIZED) != 0) { type |= IPV6_ADDR_ANONYMIZED_PREFIX; }; }; }; /* Consider all addresses with the first three bits different of 000 and 111 as unicasts. also link-local,site-local,ULULA except LISP anycast */ if ((((st & 0xE0000000u) != 0x00000000u) && ((st & 0xE0000000u) != 0xE0000000u)) || ((st & 0xFC000000u) == 0xFC000000u)) { if ((type2 & (IPV6_ADDR_TYPE2_LISP_PETR | IPV6_ADDR_TYPE2_LISP_MAP_RESOLVER)) == 0) { type |= IPV6_ADDR_UNICAST; }; if ((type & IPV6_NEW_ADDR_TEREDO) != 0) { /* teredo has no IID */ goto END_ipv6addr_gettype; }; type |= IPV6_NEW_ADDR_IID; if ((st & 0xFFC00000u) == 0xFE800000u) { type |= IPV6_ADDR_LINKLOCAL; if ( ((st2 == 0x80005445u) && (st3 ==0x5245444fu)) \ || ((st2 == 0x0000FFFFu) && (st3 ==0xFFFFFFFDu)) \ ) { /* fe80::8000:5445:5245:444F : LSB string: "TEREDO" */ /* fe80::ffff:ffff:fffd */ type |= IPV6_NEW_ADDR_LINKLOCAL_TEREDO | IPV6_NEW_ADDR_IID_TEREDO; }; } else if ((st & 0xFFC00000u) == 0xFEC00000u) { type |= IPV6_ADDR_SITELOCAL; }; if ((type & IPV6_NEW_ADDR_IID) != 0) { /* check IID */ if ((st2 & 0x02000000u) == 0x02000000u) { type |= IPV6_NEW_ADDR_IID_GLOBAL; if ((type & IPV6_NEW_ADDR_IID_ISATAP) != 0) { /* ISATAP is handled above */ } else { if (((st2 & (uint32_t) 0x000000FFu) == (uint32_t) 0x000000FFu) && ((st3 & (uint32_t) 0xFE000000u) == (uint32_t) 0xFE000000u)) { type |= IPV6_NEW_ADDR_IID_EUI48; } else { type |= IPV6_NEW_ADDR_IID_EUI64; }; }; } else { if ((type & IPV6_NEW_ADDR_IID_ISATAP) != 0) { /* ISATAP is handled above */ } else if (((st2 & (uint32_t) 0x000000FFu) == (uint32_t) 0x000000FFu) && ((st3 & (uint32_t) 0xFE000000u) == (uint32_t) 0xFE000000u)) { /* EUI-48 local scope based */ type |= IPV6_NEW_ADDR_IID_EUI48 | IPV6_NEW_ADDR_IID_LOCAL; }; DEBUGPRINT_WA(DEBUG_libipv6addr, "check for anonymized IID: %04x:%04x:%04x:%04x", U32_MSB16(st2), U32_LSB16(st2), U32_MSB16(st3), U32_LSB16(st3)); /* check for anonymized IID */ if ((st2 & ANON_TOKEN_MASK_00_31) == (ANON_TOKEN_VALUE_00_31 & ANON_TOKEN_MASK_00_31)) { DEBUGPRINT_NA(DEBUG_libipv6addr, "perhaps anonymized IID found (ANON token match)"); /* verify now checksum */ if (ipv6addr_verify_checksum_anonymized_iid(ipv6addrp) == 0) { p = UNPACK_XMS(st2, 0, ANON_IID_PREFIX_NIBBLES_MASK, ANON_IID_PREFIX_NIBBLES_SHIFT); DEBUGPRINT_WA(DEBUG_libipv6addr, "checksum ok - probably anonymized IID found, p=%d", p); if (p == 0) { // no additional check } else if (p == 0xf) { if ((type & IPV6_ADDR_ANONYMIZED_PREFIX) == 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "no anonymized prefix found, but p=f -> no anonymized IID"); goto END_ANON_IID; }; } else { // check anonymized nibbles in prefix DEBUGPRINT_WA(DEBUG_libipv6addr, "check now for %d anonymized nibbles in prefix: %04x:%04x:%04x:%04x", p, U32_MSB16(st), U32_LSB16(st), U32_MSB16(st1), U32_LSB16(st1)); if (p >= 8) { mask_0_15 = 0xffffffff >> ((16 - p) * 4); mask_16_31 = 0xffffffff; } else { mask_0_15 = 0x0; mask_16_31 = 0xffffffff >> ((8 - p) * 4); }; // check 1st 32-bit block if ((st & mask_0_15) != ((ANON_TOKEN_VALUE_00_31 | (ANON_TOKEN_VALUE_00_31 >> 16)) & mask_0_15)) { DEBUGPRINT_WA(DEBUG_libipv6addr, "anonymized parts of prefix doesn't match amount of given nibbles: 0-15=%08x mask=%08x", st, mask_0_15); goto END_ANON_IID; }; // check 2nd 32-bit block if ((st1 & mask_16_31) != ((ANON_TOKEN_VALUE_00_31 | (ANON_TOKEN_VALUE_00_31 >> 16)) & mask_16_31)) { DEBUGPRINT_WA(DEBUG_libipv6addr, "anonymized parts of prefix doesn't match amount of given nibbles: 16-31=%08x mask=%08x", st1, mask_16_31); goto END_ANON_IID; }; type2 |= IPV6_ADDR_TYPE2_ANON_MASKED_PREFIX; ipv6addrp->prefix2length = 64 - 4 * p; DEBUGPRINT_WA(DEBUG_libipv6addr, "anonymized masked prefix verified, usable prefix length is %u", ipv6addrp->prefix2length); }; if (((st2 & ANON_IID_RANDOM_MASK_00_31) == ANON_IID_RANDOM_VALUE_00_31) && ((st3 & ANON_IID_RANDOM_MASK_32_63) == ANON_IID_RANDOM_VALUE_32_63)) { type |= IPV6_NEW_ADDR_IID_RANDOM | IPV6_ADDR_ANONYMIZED_IID | IPV6_NEW_ADDR_IID_LOCAL; goto END_ipv6addr_gettype; } else if (((st2 & ANON_IID_STATIC_MASK_00_31) == ANON_IID_STATIC_VALUE_00_31) && ((st3 & ANON_IID_STATIC_MASK_32_63) == ANON_IID_STATIC_VALUE_32_63)) { type |= IPV6_NEW_ADDR_IID_LOCAL | IPV6_ADDR_ANONYMIZED_IID; goto END_ipv6addr_gettype; } else if (((st2 & ANON_IID_EUI48_MASK_00_31) == ANON_IID_EUI48_VALUE_00_31) && ((st3 & ANON_IID_EUI48_MASK_32_63) == ANON_IID_EUI48_VALUE_32_63)) { type |= IPV6_NEW_ADDR_IID_EUI48 | IPV6_ADDR_ANONYMIZED_IID; /* retrieve inverted local/global bit */ if ( (st3 & ANON_IID_EUIxx_SCOPE_MASK) == ANON_IID_EUIxx_SCOPE_GLOBAL) { type |= IPV6_NEW_ADDR_IID_GLOBAL; } else { type |= IPV6_NEW_ADDR_IID_LOCAL; }; goto END_ipv6addr_gettype; } else if (((st2 & ANON_IID_EUI64_MASK_00_31) == ANON_IID_EUI64_VALUE_00_31) && ((st3 & ANON_IID_EUI64_MASK_32_63) == ANON_IID_EUI64_VALUE_32_63)) { type |= IPV6_NEW_ADDR_IID_EUI64 | IPV6_ADDR_ANONYMIZED_IID; /* retrieve local/global bit */ if ( (st3 & ANON_IID_EUIxx_SCOPE_MASK) == ANON_IID_EUIxx_SCOPE_GLOBAL) { type |= IPV6_NEW_ADDR_IID_GLOBAL; } else { type |= IPV6_NEW_ADDR_IID_LOCAL; }; goto END_ipv6addr_gettype; } else if (((st2 & ANON_IID_IPV4_MASK_00_31) == ANON_IID_IPV4_VALUE_00_31) && ((st3 & ANON_IID_IPV4_MASK_32_63) == ANON_IID_IPV4_VALUE_32_63)) { type |= IPV6_ADDR_IID_32_63_HAS_IPV4 | IPV6_ADDR_ANONYMIZED_IID; if ((type & IPV6_NEW_ADDR_6TO4) != 0) { // anonymized 6to4 microsoft address type |= IPV6_NEW_ADDR_6TO4_MICROSOFT | IPV6_NEW_ADDR_IID_LOCAL; }; goto END_ipv6addr_gettype; } else if (((st2 & ANON_IID_ISATAP_MASK_00_31) == ANON_IID_ISATAP_VALUE_00_31)) { type |= IPV6_NEW_ADDR_IID_ISATAP | IPV6_ADDR_ANONYMIZED_IID; if ((st3 & ANON_IID_ISATAP_TYPE_MASK_32_63) == ANON_IID_ISATAP_TYPE_IPV4_VALUE_32_63) { type |= IPV6_ADDR_IID_32_63_HAS_IPV4; }; if (((st3 & ANON_IID_ISATAP_SCOPE_MASK) == ANON_IID_ISATAP_SCOPE_GLOBAL)) { type |= IPV6_NEW_ADDR_IID_GLOBAL; } else { type |= IPV6_NEW_ADDR_IID_LOCAL; }; goto END_ipv6addr_gettype; }; if ((ipv6calc_debug & DEBUG_libipv6addr_anonymization_unknown_break) != 0) { // ipv6calc_debug usage ok DEBUGPRINT_WA(DEBUG_libipv6addr_anonymization_unknown_break, "unhandled probably anonymized IID found, STOP because of debug level: %08x %08x", st2, st3); exit(1); } else { DEBUGPRINT_NA(DEBUG_libipv6addr, "unhandled probably anonymized IID found (this can really happen), proceed further on"); };; } else { DEBUGPRINT_NA(DEBUG_libipv6addr, "checksum WRONG - no anonymized IID found, proceed further on"); }; }; END_ANON_IID: type |= IPV6_NEW_ADDR_IID_LOCAL; if ((type & (IPV6_ADDR_IID_32_63_HAS_IPV4 | IPV6_NEW_ADDR_LINKLOCAL_TEREDO | IPV6_NEW_ADDR_IID_ISATAP | IPV6_NEW_ADDR_TEREDO | IPV6_NEW_ADDR_SOLICITED_NODE)) == 0) { DEBUGPRINT_WA(DEBUG_libipv6addr, "call IID random detection, typeinfo=%08x", type); /* fuzzy detection of random IID (e.g. privacy extension) */ r = ipv6addr_iidrandomdetection(ipv6addrp, &variances); if (r == 0) { type |= IPV6_NEW_ADDR_IID_RANDOM; } else if (r == 2) { type |= IPV6_NEW_ADDR_IID_RANDOM | IPV6_ADDR_ANONYMIZED_IID; } else if (r == 3) { type |= IPV6_NEW_ADDR_IID_LOCAL | IPV6_ADDR_ANONYMIZED_IID; }; }; }; }; } else { type |= IPV6_ADDR_RESERVED; }; END_ipv6addr_gettype: ipv6addrp->typeinfo = type; ipv6addrp->typeinfo2 = type2; ipv6addrp->flag_typeinfo = 1; }; /* * function stores an IPv6 literal address string into a structure * * in : *addrstring = IPv6 address * out: *resultstring = error message * out: ipv6addrp = changed IPv6 address structure * ret: ==0: ok, !=0: error */ int addrliteral_to_ipv6addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv6addr *ipv6addrp) { int retval = 1; unsigned int s; char tempstring[IPV6CALC_STRING_MAX], tempstring2[IPV6CALC_STRING_MAX], *cptr; const char *literalstring = ".ipv6-literal.net"; resultstring[0] = '\0'; /* clear result string */ DEBUGPRINT_WA(DEBUG_libipv6addr, "Got input '%s'", addrstring); /* lowercase string */ for (s = 0; s <= strlen(addrstring); s++) { /* including trailing \0 */ tempstring2[s] = tolower(addrstring[s]); } /* search for literal string */ cptr = strstr(tempstring2, literalstring); DEBUGPRINT_WA(DEBUG_libipv6addr, "String lengths addrstring=%d strstr=%d literal=%d", (unsigned int) strlen(addrstring), (unsigned int) strlen(cptr), (unsigned int) strlen(literalstring)); if (cptr == NULL) { snprintf(resultstring, resultstring_length, "Error in given IPv6 literal address, has no 'ipv6-literal.net' included!"); return (1); }; if (strlen(cptr) != strlen(literalstring)) { snprintf(resultstring, resultstring_length, "Error in given IPv6 literal address, ends not with 'ipv6-literal.net'!"); return (1); }; /* copy without literal */ snprintf(tempstring, strlen(addrstring) - strlen(literalstring) + 1, "%s", addrstring); DEBUGPRINT_WA(DEBUG_libipv6addr, "String without literal suffix: %s", tempstring); /* replace - with : */ for (s = 0; s < strlen(tempstring); s++) { if (tempstring[s] == '-') { tempstring[s] = ':'; } else if (tempstring[s] == 's') { tempstring[s] = '%'; }; }; DEBUGPRINT_WA(DEBUG_libipv6addr, "String converted to non-literal format: %s", tempstring); /* call normal IPv6 parsing function */ retval = addr_to_ipv6addrstruct(tempstring, resultstring, resultstring_length, ipv6addrp); return (retval); }; /* * function stores an IPv6 address string into a structure * * in : *addrstring = IPv6 address * out: *resultstring = error message * out: ipv6addrp = changed IPv6 address structure * ret: ==0: ok, !=0: error */ int addr_to_ipv6addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv6addr *ipv6addrp) { int retval = 1, result, i, cpoints = 0, ccolons = 0, cxdigits = 0; char *addronlystring, *cp, tempstring[IPV6CALC_STRING_MAX], tempstring2[IPV6CALC_STRING_MAX], *cptr, **ptrptr; int expecteditems = 0; int temp[8]; unsigned int compat[4]; ptrptr = &cptr; resultstring[0] = '\0'; /* clear result string */ DEBUGPRINT_WA(DEBUG_libipv6addr, "Got input '%s' (resultstring_length=%u)", addrstring, (unsigned int) resultstring_length); if (strlen(addrstring) < 2) { fprintf(stderr, "Error in given IPv6 address, has less than 2 chars!\n"); return (1); }; if (strlen(addrstring) >= sizeof(tempstring)) { fprintf(stderr, "Error in given IPv6 address, has too much chars: %s\n", addrstring); return (1); }; ipv6addr_clearall(ipv6addrp); snprintf(tempstring, sizeof(tempstring), "%s", addrstring); /* save prefix length first, if available */ DEBUGPRINT_WA(DEBUG_libipv6addr, "Call strtok_r, searching for / in %s", tempstring); addronlystring = strtok_r(tempstring, "/", ptrptr); if ( addronlystring == NULL ) { fprintf(stderr, "Strange input (extracting prefix length): %s\n", addrstring); return (1); }; DEBUGPRINT_WA(DEBUG_libipv6addr, "Got address only string: %s", addronlystring); cp = strtok_r (NULL, "/", ptrptr); if ( cp != NULL ) { i = atoi(cp); if (i < 0 || i > 128 ) { snprintf(resultstring, resultstring_length, "Illegal prefix length: '%s'", cp); retval = 1; return (retval); }; ipv6addrp->flag_prefixuse = 1; ipv6addrp->prefixlength = (uint8_t) i; DEBUGPRINT_WA(DEBUG_libipv6addr, "prefix length %u", (unsigned int) ipv6addrp->prefixlength); DEBUGPRINT_WA(DEBUG_libipv6addr, "flag_prefixuse %d", ipv6addrp->flag_prefixuse); }; snprintf(tempstring2, sizeof(tempstring2), "%s", addronlystring); /* save scope ID, if available */ DEBUGPRINT_WA(DEBUG_libipv6addr, "Call strtok_r, searching for %% in %s", tempstring2); addronlystring = strtok_r(tempstring2, "%%", ptrptr); if ( addronlystring == NULL ) { fprintf(stderr, "Strange input (extracting scope ID): %s\n", addrstring); return (1); }; DEBUGPRINT_WA(DEBUG_libipv6addr, "Got address only string: %s", addronlystring); cp = strtok_r (NULL, "%", ptrptr); if ( cp != NULL ) { ipv6addrp->flag_scopeid = 1; snprintf(ipv6addrp->scopeid, sizeof(ipv6addrp->scopeid), "%s", cp); DEBUGPRINT_WA(DEBUG_libipv6addr, "scope ID : %s", ipv6addrp->scopeid); DEBUGPRINT_WA(DEBUG_libipv6addr, "flag_scopeid: %d", ipv6addrp->flag_scopeid); }; if ((strlen(addronlystring) < 2) || (strlen(addronlystring) > 45)) { /* min: :: */ /* max: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128 */ /* max: ffff:ffff:ffff:ffff:ffff:ffff:123.123.123.123 */ snprintf(resultstring, resultstring_length, "Error in given IPv6 address, has not 2 to 45 chars!"); return (1); }; /* uncompress string, if necessary */ if (strstr(addronlystring, "::") != NULL) { result = compaddr_to_uncompaddr(addronlystring, tempstring, sizeof(tempstring)); DEBUGPRINT_WA(DEBUG_libipv6addr, "Result of uncompressed string: '%s'", tempstring); if ( result != 0 ) { snprintf(resultstring, resultstring_length, "%s", tempstring); retval = 1; return (retval); }; } else { DEBUGPRINT_WA(DEBUG_libipv6addr, "Copy string: '%s'", addronlystring); snprintf(tempstring, sizeof(tempstring), "%s", addronlystring); }; DEBUGPRINT_WA(DEBUG_libipv6addr, "Check string: '%s'", tempstring); /* count ":", "." and xdigits */ for (i = 0; i < (int) strlen(tempstring); i++) { if (tempstring[i] == ':') { ccolons++; }; if (tempstring[i] == '.') { cpoints++; }; if (isxdigit(tempstring[i])) { cxdigits++; }; }; /* check amount of ":", must be 6 (compat) or 7 (other) */ if ( ! ( ( ( ccolons == 7 ) && ( cpoints == 0 ) ) || ( ( ccolons == 6 ) && ( cpoints == 3 ) ) ) ) { if (strstr(addronlystring, "::")) { snprintf(resultstring, resultstring_length, "Error in given address expanded to '%s' is not valid!", tempstring); } else { snprintf(resultstring, resultstring_length, "Error in given address '%s' is not valid!", addrstring); }; retval = 1; return (retval); }; /* amount of ":" + "." + xdigits must be length */ if (ccolons + cpoints + cxdigits != (int) strlen(tempstring)) { snprintf(resultstring, resultstring_length, "Error in given address '%s' is not valid!", tempstring); retval = 1; return (retval); }; /* clear variables */ for ( i = 0; i <= 3; i++ ) { compat[i] = 0; }; ipv6addr_clear(ipv6addrp); if ( ccolons == 6 ) { /* compatv4/mapped format */ expecteditems = 10; result = sscanf(tempstring, "%x:%x:%x:%x:%x:%x:%u.%u.%u.%u", &temp[0], &temp[1], &temp[2], &temp[3], &temp[4], &temp[5], &compat[0], &compat[1], &compat[2], &compat[3]); /* check compat */ for ( i = 0; i <= 3; i++ ) { if ( compat[i] > 255 ) { snprintf(resultstring, resultstring_length, "Error in given compatv4/mapped IPv6 address, '%s' is not valid on position %d!", addrstring, i); retval = 1; return (retval); }; }; temp[6] = (int) (( compat[0] << 8 ) | compat[1]); temp[7] = (int) (( compat[2] << 8 ) | compat[3]); } else { /* normal format */ expecteditems = 8; result = sscanf(tempstring, "%x:%x:%x:%x:%x:%x:%x:%x", &temp[0], &temp[1], &temp[2], &temp[3], &temp[4], &temp[5], &temp[6], &temp[7]); }; DEBUGPRINT_WA(DEBUG_libipv6addr, "reading into array, got items: %d", result); if ( result != expecteditems ) { snprintf(resultstring, resultstring_length, "Error in given IPv6 address, splitting of '%s' returns %d items instead of %d!", addronlystring, result, expecteditems); retval = 1; return (retval); }; /* check address words range */ for ( i = 0; i <= 7; i++ ) { if ( (temp[i] < 0) || (temp[i] > 0xffff) ) { snprintf(resultstring, resultstring_length, "Error in given IPv6 address, '%s' is not valid on position %d!", addronlystring, i); retval = 1; return (retval); }; }; /* copy into structure */ for ( i = 0; i <= 7; i++ ) { DEBUGPRINT_WA(DEBUG_libipv6addr, "Push word %u: %04x", (unsigned int) i, (unsigned int) temp[i]); ipv6addr_setword(ipv6addrp, (unsigned int) i, (unsigned int) temp[i]); }; DEBUGPRINT_WA(DEBUG_libipv6addr, "In structure %08x %08x %08x %08x", (unsigned int) ipv6addr_getdword(ipv6addrp, 0), (unsigned int) ipv6addr_getdword(ipv6addrp, 1), (unsigned int) ipv6addr_getdword(ipv6addrp, 2), (unsigned int) ipv6addr_getdword(ipv6addrp, 3)); DEBUGPRINT_WA(DEBUG_libipv6addr, "In structure %04x %04x %04x %04x %04x %04x %04x %04x", (unsigned int) ipv6addr_getword(ipv6addrp, 0), (unsigned int) ipv6addr_getword(ipv6addrp, 1), (unsigned int) ipv6addr_getword(ipv6addrp, 2), (unsigned int) ipv6addr_getword(ipv6addrp, 3), (unsigned int) ipv6addr_getword(ipv6addrp, 4), (unsigned int) ipv6addr_getword(ipv6addrp, 5), (unsigned int) ipv6addr_getword(ipv6addrp, 6), (unsigned int) ipv6addr_getword(ipv6addrp, 7)); ipv6addr_settype(ipv6addrp); DEBUGPRINT_WA(DEBUG_libipv6addr, "flag_prefixuse %d", ipv6addrp->flag_prefixuse); ipv6addrp->flag_valid = 1; retval = 0; return (retval); }; /* * stores the ipv6addr structure in an uncompressed IPv6 format string * * in: ipv6addr = IPv6 address structure * out: *resultstring = IPv6 address (modified) * ret: ==0: ok, !=0: error */ static int ipv6addrstruct_to_uncompaddr(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { int retval = 1; unsigned int s; char tempstring[IPV6CALC_STRING_MAX], temp2string[IPV6CALC_STRING_MAX]; /* print array */ if ( ((ipv6addrp->typeinfo & (IPV6_ADDR_COMPATv4 | IPV6_ADDR_MAPPED | IPV6_ADDR_IID_32_63_HAS_IPV4)) != 0) && ((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_IID) == 0)) { if ( (formatoptions & FORMATOPTION_printfulluncompressed) != 0 ) { snprintf(tempstring, sizeof(tempstring), "%04x:%04x:%04x:%04x:%04x:%04x:%u.%u.%u.%u", \ (unsigned int) ipv6addr_getword(ipv6addrp, 0), \ (unsigned int) ipv6addr_getword(ipv6addrp, 1), \ (unsigned int) ipv6addr_getword(ipv6addrp, 2), \ (unsigned int) ipv6addr_getword(ipv6addrp, 3), \ (unsigned int) ipv6addr_getword(ipv6addrp, 4), \ (unsigned int) ipv6addr_getword(ipv6addrp, 5), \ (unsigned int) ipv6addrp->in6_addr.s6_addr[12], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[13], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[14], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[15] \ ); } else { snprintf(tempstring, sizeof(tempstring), "%x:%x:%x:%x:%x:%x:%u.%u.%u.%u", \ (unsigned int) ipv6addr_getword(ipv6addrp, 0), \ (unsigned int) ipv6addr_getword(ipv6addrp, 1), \ (unsigned int) ipv6addr_getword(ipv6addrp, 2), \ (unsigned int) ipv6addr_getword(ipv6addrp, 3), \ (unsigned int) ipv6addr_getword(ipv6addrp, 4), \ (unsigned int) ipv6addr_getword(ipv6addrp, 5), \ (unsigned int) ipv6addrp->in6_addr.s6_addr[12], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[13], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[14], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[15] \ ); }; } else { if ( (formatoptions & FORMATOPTION_printfulluncompressed) != 0 ) { snprintf(tempstring, sizeof(tempstring), "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x", \ (unsigned int) ipv6addr_getword(ipv6addrp, 0), \ (unsigned int) ipv6addr_getword(ipv6addrp, 1), \ (unsigned int) ipv6addr_getword(ipv6addrp, 2), \ (unsigned int) ipv6addr_getword(ipv6addrp, 3), \ (unsigned int) ipv6addr_getword(ipv6addrp, 4), \ (unsigned int) ipv6addr_getword(ipv6addrp, 5), \ (unsigned int) ipv6addr_getword(ipv6addrp, 6), \ (unsigned int) ipv6addr_getword(ipv6addrp, 7) \ ); } else { snprintf(tempstring, sizeof(tempstring), "%x:%x:%x:%x:%x:%x:%x:%x", \ (unsigned int) ipv6addr_getword(ipv6addrp, 0), \ (unsigned int) ipv6addr_getword(ipv6addrp, 1), \ (unsigned int) ipv6addr_getword(ipv6addrp, 2), \ (unsigned int) ipv6addr_getword(ipv6addrp, 3), \ (unsigned int) ipv6addr_getword(ipv6addrp, 4), \ (unsigned int) ipv6addr_getword(ipv6addrp, 5), \ (unsigned int) ipv6addr_getword(ipv6addrp, 6), \ (unsigned int) ipv6addr_getword(ipv6addrp, 7) \ ); }; }; if ((ipv6addrp->flag_prefixuse == 1) && ((formatoptions & (FORMATOPTION_literal | FORMATOPTION_no_prefixlength)) == 0)) { /* append prefix length */ snprintf(resultstring, resultstring_length, "%s/%u", tempstring, (unsigned int) ipv6addrp->prefixlength); } else { if ((formatoptions & FORMATOPTION_literal) != 0) { /* replace : by - */ for (s = 0; s < strlen(tempstring); s++) { if (tempstring[s] == ':') { tempstring[s] = '-'; }; }; if (ipv6addrp->flag_scopeid) { snprintf(resultstring, resultstring_length, "%ss%s.ipv6-literal.net", tempstring, ipv6addrp->scopeid); } else { snprintf(resultstring, resultstring_length, "%s.ipv6-literal.net", tempstring); } } else { if (ipv6addrp->flag_scopeid) { snprintf(resultstring, resultstring_length, "%s%%%s", tempstring, ipv6addrp->scopeid); } else { snprintf(resultstring, resultstring_length, "%s", tempstring); }; }; }; if ( (formatoptions & FORMATOPTION_machinereadable) != 0 ) { snprintf(temp2string, sizeof(temp2string), "IPV6=%s", resultstring); snprintf(resultstring, resultstring_length, "%s", temp2string); }; retval = 0; return (retval); }; /* * stores the prefix of an ipv6addr structure in an uncompressed IPv6 format string * * in: ipv6addr = IPv6 address structure, formatoptions * out: *resultstring = IPv6 address (modified) * ret: ==0: ok, !=0: error */ static int ipv6addrstruct_to_uncompaddrprefix(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { int retval = 1; unsigned int max, i; char tempstring1[IPV6CALC_STRING_MAX], tempstring2[IPV6CALC_STRING_MAX]; DEBUGPRINT_NA(DEBUG_libipv6addr, "called"); /* test for misuse */ if ( ((ipv6addrp->typeinfo & (IPV6_ADDR_COMPATv4 | IPV6_ADDR_MAPPED)) != 0 ) && (ipv6addrp->prefixlength > 96) ) { snprintf(resultstring, resultstring_length, "Error, cannot print prefix of a compatv4/mapped address with prefix length bigger than 96!"); retval = 1; return (retval); }; if ( ipv6addrp->prefixlength == 0 ) { snprintf(resultstring, resultstring_length, "Error, cannot print prefix of an address with prefix length 0!"); retval = 1; return (retval); }; max = ( (unsigned int) ipv6addrp->prefixlength - 1 ) / 16u; i = 0; tempstring1[0] = '\0'; while (i <= max ) { if ( i < max ) { if ( (formatoptions & FORMATOPTION_printfulluncompressed) != 0 ) { snprintf(tempstring2, sizeof(tempstring2), "%s%04x:", tempstring1, (unsigned int) ipv6addr_getword(ipv6addrp, i)); } else { snprintf(tempstring2, sizeof(tempstring2), "%s%x:", tempstring1, (unsigned int) ipv6addr_getword(ipv6addrp, i)); }; } else { if ( (formatoptions & FORMATOPTION_printfulluncompressed) != 0 ) { snprintf(tempstring2, sizeof(tempstring2), "%s%04x", tempstring1, (unsigned int) ipv6addr_getword(ipv6addrp, i)); } else { snprintf(tempstring2, sizeof(tempstring2), "%s%x", tempstring1, (unsigned int) ipv6addr_getword(ipv6addrp, i)); }; }; i++; snprintf(tempstring1, sizeof(tempstring1), "%s", tempstring2); }; if ((ipv6addrp->flag_prefixuse == 1) && ((formatoptions & (FORMATOPTION_no_prefixlength | FORMATOPTION_printprefix)) == 0)) { /* append prefix length */ snprintf(resultstring, resultstring_length, "%s/%u", tempstring1, (unsigned int) ipv6addrp->prefixlength); } else { snprintf(resultstring, resultstring_length, "%s", tempstring1); }; DEBUGPRINT_WA(DEBUG_libipv6addr, "result string: %s", resultstring); retval = 0; return (retval); }; /* * function stores the suffix of an ipv6addr structure in an uncompressed IPv6 format string * * in: ipv6addr = IPv6 address structure * out: *resultstring = IPv6 address (modified) * ret: ==0: ok, !=0: error */ static int ipv6addrstruct_to_uncompaddrsuffix(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { int retval = 1; unsigned int max, i; char tempstring1[IPV6CALC_STRING_MAX], tempstring2[IPV6CALC_STRING_MAX]; DEBUGPRINT_NA(DEBUG_libipv6addr, "called"); /* test for misuse */ if ( ( (ipv6addrp->typeinfo & (IPV6_ADDR_COMPATv4 | IPV6_ADDR_MAPPED)) != 0) && ( ipv6addrp->prefixlength > 96 ) ) { snprintf(resultstring, resultstring_length, "Error, cannot print suffix of a compatv4/mapped address with prefix length bigger than 96!"); retval = 1; return (retval); }; if ( ipv6addrp->prefixlength == 128 ) { snprintf(resultstring, resultstring_length, "Error, cannot print suffix of an address with prefix length 128!"); retval = 1; return (retval); }; max = 7; i = (unsigned int) ipv6addrp->prefixlength / 16u; tempstring1[0] = '\0'; while (i <= max ) { if ( ( ( ipv6addrp->typeinfo & (IPV6_ADDR_COMPATv4 | IPV6_ADDR_MAPPED)) != 0 ) && ( i == 6 ) ) { snprintf(tempstring2, sizeof(tempstring2), "%s%u.%u.%u.%u", tempstring1, \ (unsigned int) ipv6addrp->in6_addr.s6_addr[12], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[13], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[14], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[15] \ ); i = max; } else if ( i < max ) { if ( (formatoptions & FORMATOPTION_printfulluncompressed) != 0 ) { snprintf(tempstring2, sizeof(tempstring2), "%s%04x:", tempstring1, (unsigned int) ipv6addr_getword(ipv6addrp, i)); } else { snprintf(tempstring2, sizeof(tempstring2), "%s%x:", tempstring1, (unsigned int) ipv6addr_getword(ipv6addrp, i)); }; } else { if ( (formatoptions & FORMATOPTION_printfulluncompressed) != 0 ) { snprintf(tempstring2, sizeof(tempstring2), "%s%04x", tempstring1, (unsigned int) ipv6addr_getword(ipv6addrp, i)); } else { snprintf(tempstring2, sizeof(tempstring2), "%s%x", tempstring1, (unsigned int) ipv6addr_getword(ipv6addrp, i)); }; }; i++; snprintf(tempstring1, sizeof(tempstring1), "%s", tempstring2); }; snprintf(resultstring, resultstring_length, "%s", tempstring1); DEBUGPRINT_WA(DEBUG_libipv6addr, "result string: %s", resultstring); retval = 0; return (retval); }; int libipv6addr_ipv6addrstruct_to_uncompaddr(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { int retval = 1; DEBUGPRINT_WA(DEBUG_libipv6addr, "get format option: %08x", (unsigned int) formatoptions); if ( (formatoptions & FORMATOPTION_printprefix) != 0 ) { retval = ipv6addrstruct_to_uncompaddrprefix(ipv6addrp, resultstring, resultstring_length, formatoptions); } else if ( (formatoptions & FORMATOPTION_printsuffix) != 0 ) { retval = ipv6addrstruct_to_uncompaddrsuffix(ipv6addrp, resultstring, resultstring_length, formatoptions); } else { retval = ipv6addrstruct_to_uncompaddr(ipv6addrp, resultstring, resultstring_length, formatoptions); }; if (retval == 0) { /* don't modify case on error messages */ if ( (formatoptions & FORMATOPTION_printlowercase) != 0 ) { /* nothing to do */ } else if ( (formatoptions & FORMATOPTION_printuppercase) != 0 ) { string_to_upcase(resultstring); }; }; DEBUGPRINT_WA(DEBUG_libipv6addr, "result string: %s", resultstring); retval = 0; return (retval); }; /* * mask prefix bits (set suffix bits to 0) * * in: structure via reference * out: modified structure */ void ipv6addrstruct_maskprefix(ipv6calc_ipv6addr *ipv6addrp) { unsigned int nbit, nword; uint16_t mask, newword; int i; DEBUGPRINT_NA(DEBUG_libipv6addr, "called"); if (ipv6addrp->flag_prefixuse != 1) { /* hmm, no prefix specified. skip */ return; }; for (i = 127; i >= 0; i--) { nbit = (unsigned int) i; if (nbit >= (unsigned int) ipv6addrp->prefixlength) { /* set bit to zero */ /* calculate word (16 bit) - matches with addr6p[]*/ nword = (nbit & 0x70) >> 4; /* calculate mask */ mask = ((uint16_t) 0x8000u) >> (( ((uint16_t) nbit) & ((uint16_t) 0x0fu))); newword = ipv6addr_getword(ipv6addrp, nword) & (~ mask ); DEBUGPRINT_WA(DEBUG_libipv6addr, "bit: %u = nword: %u, mask: %04x, word: %04x newword: %04x", nbit, nword, (unsigned int) mask, (unsigned int) ipv6addr_getword(ipv6addrp, nword), (unsigned int) newword); ipv6addr_setword(ipv6addrp, nword, (unsigned int) newword); }; }; }; /* * mask suffix bits (set prefix bits to 0) * * in: structure via reference * out: modified structure */ void ipv6addrstruct_masksuffix(ipv6calc_ipv6addr *ipv6addrp) { unsigned int nbit, nword; uint16_t mask, newword; int i; DEBUGPRINT_NA(DEBUG_libipv6addr, "called"); if (ipv6addrp->flag_prefixuse != 1) { /* hmm, no prefix specified. skip */ return; }; for (i = 127; i >= 0; i--) { nbit = (unsigned int) i; if (nbit < (unsigned int) ipv6addrp->prefixlength) { /* set bit to zero */ /* calculate word (16 bit) - matches with addr6p[]*/ nword = (nbit & 0x70) >> 4; /* calculate mask */ mask = ((uint32_t) 0x8000u) >> (((uint32_t) nbit) & ((uint32_t) 0x0fu )); newword = ipv6addr_getword(ipv6addrp, nword) & (~ mask ); DEBUGPRINT_WA(DEBUG_libipv6addr, "%u = nword: %u, mask: %04x, word: %04x newword: %04x", nbit, nword, (unsigned int) mask, (unsigned int) ipv6addr_getword(ipv6addrp, nword), (unsigned int) newword); ipv6addr_setword(ipv6addrp, nword, (unsigned int) newword); }; }; }; /* * function stores a 16 char token into a structure * * in : *addrstring = 16 char token * out: *resultstring = error message * out: ipv6addr = IPv6 address structure * ret: ==0: ok, !=0: error */ int tokenlsb64_to_ipv6addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv6addr *ipv6addrp) { int retval = 1, result; int temp[4]; char tempstring[IPV6CALC_STRING_MAX]; resultstring[0] = '\0'; /* clear result string */ DEBUGPRINT_WA(DEBUG_libipv6addr, "got input '%s'", addrstring); if ( strlen(addrstring) != 16 ) { snprintf(resultstring, resultstring_length, "Error in given token '%s' is not valid (length != 16)!", addrstring); retval = 1; return (retval); }; /* scan address into array */ result = sscanf(addrstring, "%04x%04x%04x%04x", &temp[0], &temp[1], &temp[2], &temp[3]); if ( result != 4 ) { snprintf(resultstring, resultstring_length, "Error splitting address '%s', got %d items instead of 4!", addrstring, result); retval = 1; return (retval); }; /* set prefix */ snprintf(tempstring, sizeof(tempstring), "0:0:0:0:%04x:%04x:%04x:%04x", \ (unsigned int) temp[0] ,\ (unsigned int) temp[1], \ (unsigned int) temp[2], \ (unsigned int) temp[3] \ ); /* store into structure */ retval = addr_to_ipv6addrstruct(tempstring, resultstring, sizeof(resultstring), ipv6addrp); return (retval); }; /* * function stores an interface identifier into a structure * * in : *addrstring = interface identifier * out: *resultstring = error message * out: ipv6addr = IPv6 address structure * ret: ==0: ok, !=0: error */ int identifier_to_ipv6addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv6addr *ipv6addrp) { int retval = 1, i, ccolons = 0; char tempstring[IPV6CALC_STRING_MAX]; resultstring[0] = '\0'; /* clear result string */ DEBUGPRINT_WA(DEBUG_libipv6addr, "Got input '%s'", addrstring); if ((strlen(addrstring) < 2) || (strlen(addrstring) > 19)) { /* min: :: */ /* max: ffff:ffff:ffff:ffff */ snprintf(resultstring, resultstring_length, "Error in given identifier identifier, has not 2 to 19 chars!"); retval = 1; return (retval); }; /* count ":", must be 2 to 3 */ for (i = 0; i < (int) strlen(addrstring); i++) { if (addrstring[i] == ':') { ccolons++; }; }; if ((ccolons < 2) || (ccolons > 3)) { snprintf(resultstring, resultstring_length, "Error in given identifier '%s' is not valid!", addrstring); retval = 1; return (retval); }; /* set prefix */ snprintf(tempstring, sizeof(tempstring), "0:0:0:0:%s", addrstring); /* store into structure */ retval = addr_to_ipv6addrstruct(tempstring, resultstring, sizeof(resultstring), ipv6addrp); DEBUGPRINT_WA(DEBUG_libipv6addr, "result string '%s'", resultstring); return (retval); }; /* * function stores the ipv6addr structure in an uncompressed IPv6 format string * * in: ipv6addr = IPv6 address structure * out: *resultstring = IPv6 address (modified) * ret: ==0: ok, !=0: error */ int libipv6addr_ipv6addrstruct_to_tokenlsb64(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, uint32_t formatoptions) { int retval = 1; /* print array */ snprintf(resultstring, resultstring_length, "%04x%04x%04x%04x", \ (unsigned int) ipv6addr_getword(ipv6addrp, 4), \ (unsigned int) ipv6addr_getword(ipv6addrp, 5), \ (unsigned int) ipv6addr_getword(ipv6addrp, 6), \ (unsigned int) ipv6addr_getword(ipv6addrp, 7) \ ); if ( (formatoptions & FORMATOPTION_printlowercase) != 0 ) { /* nothing to do */ } else if ( (formatoptions & FORMATOPTION_printuppercase) != 0 ) { string_to_upcase(resultstring); }; DEBUGPRINT_WA(DEBUG_libipv6addr, "result string '%s'", resultstring); retval = 0; return (retval); }; /* * function prints an IPv6 address in native octal format * * in: ipv6addr = IPv6 address structure * formatoptions * out: *resultstring = IPv6 address (modified) * ret: ==0: ok, !=0: error */ int libipv6addr_to_octal(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { int retval = 1; char tempstring[IPV6CALC_STRING_MAX]; if ( (formatoptions & FORMATOPTION_printfulluncompressed) != 0 ) { snprintf(tempstring, sizeof(tempstring), "\\0%03o\\0%03o\\0%03o\\0%03o\\0%03o\\0%03o\\0%03o\\0%03o\\0%03o\\0%03o\\0%03o\\0%03o\\0%03o\\0%03o\\0%03o\\0%03o", (unsigned int) ipv6addrp->in6_addr.s6_addr[0], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[1], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[2], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[3], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[4], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[5], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[6], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[7], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[8], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[9], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[10], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[11], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[12], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[13], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[14], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[15] \ ); } else { snprintf(tempstring, sizeof(tempstring), "\\0%o\\0%o\\0%o\\0%o\\0%o\\0%o\\0%o\\0%o\\0%o\\0%o\\0%o\\0%o\\0%o\\0%o\\0%o\\0%o", (unsigned int) ipv6addrp->in6_addr.s6_addr[0], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[1], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[2], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[3], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[4], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[5], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[6], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[7], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[8], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[9], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[10], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[11], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[12], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[13], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[14], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[15] \ ); }; snprintf(resultstring, resultstring_length, "%s", tempstring); retval = 0; return (retval); }; /* * function prints an IPv6 address in native hex format * * in: ipv6addr = IPv6 address structure * formatoptions * out: *resultstring = IPv6 address (modified) * ret: ==0: ok, !=0: error */ int libipv6addr_to_hex(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { int retval = 1; int i; unsigned int s; char tempstring[IPV6CALC_STRING_MAX]; snprintf(tempstring, sizeof(tempstring), "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", (unsigned int) ipv6addrp->in6_addr.s6_addr[0], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[1], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[2], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[3], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[4], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[5], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[6], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[7], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[8], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[9], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[10], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[11], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[12], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[13], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[14], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[15] \ ); snprintf(resultstring, resultstring_length, "%s", tempstring); if ((formatoptions & FORMATOPTION_printprefix) && (ipv6addrp->flag_prefixuse == 1)) { // shorten string resultstring[ipv6addrp->prefixlength / 4] = '\0'; } else if ((formatoptions & FORMATOPTION_printsuffix) && (ipv6addrp->flag_prefixuse == 1)) { // move string for (i = 0; i < 32 - (ipv6addrp->prefixlength / 4); i++) { resultstring[i] = resultstring[i + (ipv6addrp->prefixlength / 4)]; }; resultstring[32 - (ipv6addrp->prefixlength / 4)] = '\0'; }; if (formatoptions & FORMATOPTION_printuppercase) { for (s = 0; s < strlen(resultstring); s++) { resultstring[s] = toupper(resultstring[s]); }; }; retval = 0; return (retval); }; /* * retrieve payload of anonymized prefix * * in: ipv6addrp = pointer to IPv6 address structure * payload_selector: payload which should be retrieved * result_ptr = pointer to a 32-bit result * out: 0 = OK, !=0: not ok */ int ipv6addr_get_payload_anonymized_prefix(const ipv6calc_ipv6addr *ipv6addrp, const int payload_selector, uint32_t *result_ptr) { uint32_t prefix[2], flags; prefix[0] = ipv6addr_getdword(ipv6addrp, 0); prefix[1] = ipv6addr_getdword(ipv6addrp, 1); // retrieve flags flags = UNPACK_XMS(prefix[ANON_PREFIX_FLAGS_DWORD], ANON_PREFIX_FLAGS_XOR, ANON_PREFIX_FLAGS_MASK, ANON_PREFIX_FLAGS_SHIFT); DEBUGPRINT_WA(DEBUG_libipv6addr, "Get payload %d from %08x%08x (flags=%x)", payload_selector, prefix[0], prefix[1], flags); if (payload_selector == ANON_PREFIX_PAYLOAD_FLAGS) { *result_ptr = flags; } else { if ((flags != 0) && (flags != 1)) { // currently only flags=0| is supported return(1); }; if (payload_selector == ANON_PREFIX_PAYLOAD_CCINDEX) { *result_ptr = UNPACK_XMS(prefix[ANON_PREFIX_CCINDEX_DWORD], ANON_PREFIX_CCINDEX_XOR, ANON_PREFIX_CCINDEX_MASK, ANON_PREFIX_CCINDEX_SHIFT); } else if (payload_selector == ANON_PREFIX_PAYLOAD_ASN32) { *result_ptr = (UNPACK_XMS(prefix[ANON_PREFIX_ASN32_MSB_DWORD], ANON_PREFIX_ASN32_MSB_XOR, ANON_PREFIX_ASN32_MSB_MASK, ANON_PREFIX_ASN32_MSB_SHIFT) << ANON_PREFIX_ASN32_LSB_AMOUNT)| (UNPACK_XMS(prefix[ANON_PREFIX_ASN32_LSB_DWORD], ANON_PREFIX_ASN32_LSB_XOR, ANON_PREFIX_ASN32_LSB_MASK, ANON_PREFIX_ASN32_LSB_SHIFT)); } else if (payload_selector == ANON_PREFIX_PAYLOAD_GEONAMEID) { *result_ptr = (UNPACK_XMS(prefix[ANON_PREFIX_GEONAMEID_MSB_DWORD], ANON_PREFIX_GEONAMEID_MSB_XOR, ANON_PREFIX_GEONAMEID_MSB_MASK, ANON_PREFIX_GEONAMEID_MSB_SHIFT) << ANON_PREFIX_GEONAMEID_LSB_AMOUNT)| (UNPACK_XMS(prefix[ANON_PREFIX_GEONAMEID_LSB_DWORD], ANON_PREFIX_GEONAMEID_LSB_XOR, ANON_PREFIX_GEONAMEID_LSB_MASK, ANON_PREFIX_GEONAMEID_LSB_SHIFT)); } else if (payload_selector == ANON_PREFIX_PAYLOAD_GEONAMEID_TYPE) { *result_ptr = UNPACK_XMS(prefix[ANON_PREFIX_GEONAMEID_TYPE_DWORD], ANON_PREFIX_GEONAMEID_TYPE_XOR, ANON_PREFIX_GEONAMEID_TYPE_MASK, ANON_PREFIX_GEONAMEID_TYPE_SHIFT); } else { ERRORPRINT_WA("payload_selector out of range, FIX CODE: %d", payload_selector); exit(EXIT_FAILURE); }; }; DEBUGPRINT_WA(DEBUG_libipv6addr, "Extracted payload %d from %08x%08x: %08x", payload_selector, prefix[0], prefix[1], *result_ptr); return(0); }; /* * retrieve payload of anonymized IID * * in: ipv6addrp = pointer to IPv6 address structure * out: payload (max. 32 bit) */ uint32_t ipv6addr_get_payload_anonymized_iid(const ipv6calc_ipv6addr *ipv6addrp, const uint32_t typeinfo) { uint32_t iid[2]; uint32_t payload = 0; iid[0] = ipv6addr_getdword(ipv6addrp, 2); iid[1] = ipv6addr_getdword(ipv6addrp, 3); DEBUGPRINT_WA(DEBUG_libipv6addr, "typeinfo=%08x iid[0]=%08x iid[1]=%08x", typeinfo, iid[0], iid[1]); if ((typeinfo & IPV6_NEW_ADDR_IID_EUI48) != 0) { payload = (iid[1] >> ANON_IID_EUI48_PAYLOAD_SHIFT) & ((2 << ANON_IID_EUI48_PAYLOAD_LENGTH) - 1); } else if ((typeinfo & IPV6_NEW_ADDR_IID_EUI64) != 0) { payload = (iid[1] >> ANON_IID_EUI64_PAYLOAD_SHIFT) & ((2 << ANON_IID_EUI64_PAYLOAD_LENGTH) - 1); } else if ((typeinfo & (IPV6_NEW_ADDR_IID_ISATAP|IPV6_ADDR_IID_32_63_HAS_IPV4)) != 0) { payload = (iid[1] >> ANON_IID_ISATAP_PAYLOAD_SHIFT) & ((2 << ANON_IID_ISATAP_PAYLOAD_LENGTH) - 1); } else if ((typeinfo & IPV6_ADDR_IID_32_63_HAS_IPV4) != 0) { payload = (iid[1] >> ANON_IID_IPV4_PAYLOAD_SHIFT) & ((2 << ANON_IID_IPV4_PAYLOAD_LENGTH) - 1); }; DEBUGPRINT_WA(DEBUG_libipv6addr, "payload=%08x", payload); return(payload); }; /* * anonymize IPv6 address * * in : *ipv6addrp = IPv6 address structure * *ipv6calc_anon_set = anonymization set structure * ret: 0:anonymization ok * 1:anonymization method not supported */ int libipv6addr_anonymize(ipv6calc_ipv6addr *ipv6addrp, const s_ipv6calc_anon_set *ipv6calc_anon_set) { /* anonymize IPv4 address according to settings */ uint32_t iid[2]; char tempstring[IPV6CALC_STRING_MAX]; char helpstring[IPV6CALC_STRING_MAX]; int i, r; int calculate_checksum = 0; int calculate_checksum_prefix = 0; int zeroize_prefix = 0; int zeroize_iid = 0; int anonymized_prefix_nibbles = 0; ipv6calc_macaddr macaddr; ipv6calc_eui64addr eui64addr; ipv6calc_ipv4addr ipv4addr; ipv6calc_ipaddr ipaddr; uint32_t map_value; uint16_t cc_index, flags = 0; uint32_t as_num32, ipv6_prefix[2]; int mask_eui64 = ipv6calc_anon_set->mask_eui64; // int mask_mac = ipv6calc_anon_set->mask_mac; // currently not used int mask_ipv6 = ipv6calc_anon_set->mask_ipv6; int mask_ipv4 = ipv6calc_anon_set->mask_ipv4; int method = ipv6calc_anon_set->method; uint8_t bit_ul = 0; DEBUGPRINT_WA(DEBUG_libipv6addr, "Called: addr=%08x %08x %08x %08x", ipv6addr_getdword(ipv6addrp, 0), ipv6addr_getdword(ipv6addrp, 1), ipv6addr_getdword(ipv6addrp, 2), ipv6addr_getdword(ipv6addrp, 3)); ipv6addr_settype(ipv6addrp); if (method == ANON_METHOD_ZEROIZE) { zeroize_prefix = 1; }; if ( (ipv6calc_debug & DEBUG_libipv6addr) != 0 ) { // ipv6calc_debug usage ok libipv6calc_anon_infostring(tempstring, sizeof(tempstring), ipv6calc_anon_set); DEBUGPRINT_WA(DEBUG_libipv6addr, "Anonymize IPv6 address flags: %s", tempstring); }; if ((ipv6addrp->typeinfo & (IPV6_ADDR_ANONYMIZED_IID | IPV6_ADDR_ANONYMIZED_PREFIX)) != 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "Already anonymized IPv6 address - skip"); return(0); }; if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_6TO4) != 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "Embedded IPv4 address, anonymize and store back"); ipv4addr_clearall(&ipv4addr); /* extract IPv4 address */ for (i = 0; i <= 3; i++) { ipv4addr_setoctet(&ipv4addr, (unsigned int) i, (unsigned int) ipv6addr_getoctet(ipv6addrp, (unsigned int) 2 + i)); }; ipv4addr_settype(&ipv4addr, 1); /* Set typeinfo */ ipv4addr.flag_valid = 1; libipv4addr_anonymize(&ipv4addr, mask_ipv4, method); /* store back */ for (i = 0; i <= 3; i++) { ipv6addr_setoctet(ipv6addrp, (unsigned int) 2 + i, (unsigned int) ipv4addr_getoctet(&ipv4addr, (unsigned int) i)); }; }; if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_TEREDO) != 0) { /* extract Teredo client IPv4 address */ ipv4addr_clearall(&ipv4addr); for (i = 0; i <= 3; i++) { ipv4addr_setoctet(&ipv4addr, (unsigned int) i, (unsigned int) ipv6addr_getoctet(ipv6addrp, (unsigned int) 12 + i) ^ 0xff); }; ipv4addr_settype(&ipv4addr, 1); ipv4addr.flag_valid = 1; libipv4addr_anonymize(&ipv4addr, mask_ipv4, method); /* store back */ for (i = 0; i <= 3; i++) { ipv6addr_setoctet(ipv6addrp, (unsigned int) 12 + i, (unsigned int) ipv4addr_getoctet(&ipv4addr, (unsigned int) i) ^ 0xff); }; /* clear client port */ ipv6addr_setword(ipv6addrp, 5, 0 ^ 0xffff); }; if ((ipv6addrp->typeinfo & (IPV6_ADDR_MAPPED | IPV6_ADDR_COMPATv4 | IPV6_NEW_ADDR_NAT64)) != 0) { /* extract IPv4 address */ ipv4addr_clearall(&ipv4addr); for (i = 0; i <= 3; i++) { ipv4addr_setoctet(&ipv4addr, (unsigned int) i, (unsigned int) ipv6addr_getoctet(ipv6addrp, (unsigned int) 12 + i)); }; ipv4addr_settype(&ipv4addr, 1); ipv4addr.flag_valid = 1; libipv4addr_anonymize(&ipv4addr, mask_ipv4, method); /* store back */ for (i = 0; i <= 3; i++) { ipv6addr_setoctet(ipv6addrp, (unsigned int) 12 + i, (unsigned int) ipv4addr_getoctet(&ipv4addr, (unsigned int) i)); }; }; /* prefix handling */ if ( ((ipv6addrp->typeinfo & (IPV6_ADDR_SITELOCAL | IPV6_ADDR_ULUA | IPV6_NEW_ADDR_AGU)) != 0) && ((ipv6addrp->typeinfo & (IPV6_NEW_ADDR_TEREDO | IPV6_NEW_ADDR_ORCHID)) == 0) ) { /* prefix included */ DEBUGPRINT_WA(DEBUG_libipv6addr, "Prefix: pref=%08x %08x", ipv6addr_getdword(ipv6addrp, 0), ipv6addr_getdword(ipv6addrp, 1)); if (((ipv6addrp->typeinfo & IPV6_NEW_ADDR_AGU) != 0) && ((ipv6addrp->typeinfo & (IPV6_NEW_ADDR_6TO4)) == 0) \ && ((method == ANON_METHOD_KEEPTYPEASNCC) || (method == ANON_METHOD_KEEPTYPEGEONAMEID))) { uint32_t GeonameID_type = IPV6CALC_DB_GEO_GEONAMEID_TYPE_UNKNOWN; uint32_t GeonameID = IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN; // check whether IPv6 address is anycast if (((ipv6addrp->typeinfo & IPV6_ADDR_ANYCAST) != 0) && ((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_LISP) != 0)) { DEBUGPRINT_NA(DEBUG_libipv6addr, "IPv6 is LISP anycast, skip prefix anonymization"); goto InterfaceIdentifier; }; // check whether IPv6 address is reserved r = libipv6calc_db_wrapper_registry_string_by_ipv6addr(ipv6addrp, helpstring, sizeof(helpstring)); if (r == 2) { DEBUGPRINT_NA(DEBUG_libipv6addr, "IPv6 registry of prefix contains reserved, skip anonymization"); goto InterfaceIdentifier; }; if (method == ANON_METHOD_KEEPTYPEASNCC) { if (libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEASNCC_IPV6_REQ_DB) == 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "anonymization method not supported, db_wrapper reports too less features"); return(1); }; // switch to prefix anonymization if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_6BONE) != 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "IPv6 is 6bone unicast, special prefix anonymization"); cc_index = COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MIN + REGISTRY_6BONE; CONVERT_IPV6ADDRP_IPADDR(ipv6addrp, ipaddr); as_num32 = libipv6calc_db_wrapper_as_num32_by_addr(&ipaddr, NULL); } else if ((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_LISP) != 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "IPv6 is LISP unicast, special prefix anonymization"); cc_index = COUNTRYCODE_INDEX_LISP; CONVERT_IPV6ADDRP_IPADDR(ipv6addrp, ipaddr); as_num32 = libipv6calc_db_wrapper_as_num32_by_addr(&ipaddr, NULL); } else { CONVERT_IPV6ADDRP_IPADDR(ipv6addrp, ipaddr); cc_index = libipv6calc_db_wrapper_cc_index_by_addr(&ipaddr, NULL); as_num32 = libipv6calc_db_wrapper_as_num32_by_addr(&ipaddr, NULL); if (cc_index == COUNTRYCODE_INDEX_UNKNOWN) { // on unknown country, map registry value cc_index = COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MIN + libipv6calc_db_wrapper_registry_num_by_ipv6addr(ipv6addrp); }; }; DEBUGPRINT_WA(DEBUG_libipv6addr, "cc_index=%d (0x%03x) as_num32=%d (0x%08x)", cc_index, cc_index, as_num32, as_num32); } else if (method == ANON_METHOD_KEEPTYPEGEONAMEID) { if (libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEGEONAMEID_IPV6_REQ_DB) == 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "anonymization method not supported, db_wrapper reports too less features"); return(1); }; CONVERT_IPV6ADDRP_IPADDR(ipv6addrp, ipaddr); if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_6BONE) != 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "IPv6 is 6bone unicast, special prefix anonymization"); GeonameID_type = 0x0; GeonameID_type |= REGISTRY_6BONE << 4; } else if (((ipv6addrp->typeinfo & IPV6_ADDR_UNICAST) != 0) && ((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_LISP) != 0)) { DEBUGPRINT_NA(DEBUG_libipv6addr, "IPv6 is LISP unicast, special prefix anonymization"); GeonameID_type = 0x7; GeonameID = 0x11800; GeonameID_type |= (libipv6calc_db_wrapper_registry_num_by_ipv6addr(ipv6addrp) & 0x7) << 4; GeonameID |= 0x000; // TODO: map LISP information into 11 LSB } else { // get GeonameID GeonameID = libipv6calc_db_wrapper_GeonameID_by_addr(&ipaddr, NULL, &GeonameID_type); // get registry int registry = libipv6addr_registry_num_by_addr(ipv6addrp); DEBUGPRINT_WA(DEBUG_libipv6addr, "result of GeonameID retrievement: %d (0x%08x) (source: %d) (registry: %d)", GeonameID, GeonameID, GeonameID_type, registry); if (registry > 0) { // store registry GeonameID_type |= registry << 4; }; }; }; ipv6_prefix[0] = 0; ipv6_prefix[1] = 0; // store prefix ipv6_prefix[ANON_PREFIX_TOKEN_DWORD] |= PACK_XMS(ANON_PREFIX_TOKEN_VALUE, ANON_PREFIX_TOKEN_XOR, ANON_PREFIX_TOKEN_MASK, ANON_PREFIX_TOKEN_SHIFT); if (method == ANON_METHOD_KEEPTYPEASNCC) { flags = 0x0; // store cc_index ipv6_prefix[ANON_PREFIX_CCINDEX_DWORD] |= PACK_XMS(cc_index, ANON_PREFIX_CCINDEX_XOR, ANON_PREFIX_CCINDEX_MASK, ANON_PREFIX_CCINDEX_SHIFT); // store as_num32 ipv6_prefix[ANON_PREFIX_ASN32_MSB_DWORD] |= PACK_XMS(as_num32 >> ANON_PREFIX_ASN32_LSB_AMOUNT, ANON_PREFIX_ASN32_MSB_XOR, ANON_PREFIX_ASN32_MSB_MASK, ANON_PREFIX_ASN32_MSB_SHIFT); ipv6_prefix[ANON_PREFIX_ASN32_LSB_DWORD] |= PACK_XMS(as_num32 & ANON_PREFIX_ASN32_LSB_MASK, ANON_PREFIX_ASN32_LSB_XOR, ANON_PREFIX_ASN32_LSB_MASK, ANON_PREFIX_ASN32_LSB_SHIFT); } else if (method == ANON_METHOD_KEEPTYPEGEONAMEID) { flags = 0x1; // store type ipv6_prefix[ANON_PREFIX_GEONAMEID_TYPE_DWORD] |= PACK_XMS(GeonameID_type, ANON_PREFIX_GEONAMEID_TYPE_XOR, ANON_PREFIX_GEONAMEID_TYPE_MASK, ANON_PREFIX_GEONAMEID_TYPE_SHIFT); // store GeonameID ipv6_prefix[ANON_PREFIX_GEONAMEID_MSB_DWORD] |= PACK_XMS(GeonameID >> ANON_PREFIX_GEONAMEID_LSB_AMOUNT, ANON_PREFIX_GEONAMEID_MSB_XOR, ANON_PREFIX_GEONAMEID_MSB_MASK, ANON_PREFIX_GEONAMEID_MSB_SHIFT); ipv6_prefix[ANON_PREFIX_GEONAMEID_LSB_DWORD] |= PACK_XMS(GeonameID & ANON_PREFIX_GEONAMEID_LSB_MASK, ANON_PREFIX_GEONAMEID_LSB_XOR, ANON_PREFIX_GEONAMEID_LSB_MASK, ANON_PREFIX_GEONAMEID_LSB_SHIFT); }; // store flags ipv6_prefix[ANON_PREFIX_FLAGS_DWORD] |= PACK_XMS(flags, ANON_PREFIX_FLAGS_XOR, ANON_PREFIX_FLAGS_MASK, ANON_PREFIX_FLAGS_SHIFT); DEBUGPRINT_WA(DEBUG_libipv6addr, "anonmized prefix for method=%d: %08x%08x", method, ipv6_prefix[0], ipv6_prefix[1]); anonymized_prefix_nibbles = 0; ipv6addr_setdword(ipv6addrp, 0, ipv6_prefix[0]); ipv6addr_setdword(ipv6addrp, 1, ipv6_prefix[1]); calculate_checksum_prefix = 1; } else if (mask_ipv6 == 64) { /* nothing to do */ } else if (mask_ipv6 < 16 || mask_ipv6 > 64) { /* should not happen here */ fprintf(stderr, "%s/%s: 'mask_ipv6' has an unexpected illegal value: %d\n", __FILE__, __func__, mask_ipv6); exit(EXIT_FAILURE); } else { if (((ipv6addrp->typeinfo & IPV6_ADDR_ANYCAST) != 0) && ((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_LISP) != 0)) { if (mask_ipv6 < 48) { mask_ipv6 = 48; // keeping address type }; DEBUGPRINT_WA(DEBUG_libipv6addr, "Mask adjusted to: %d", mask_ipv6); }; DEBUGPRINT_WA(DEBUG_libipv6addr, "Mask prefix with mask: %d", mask_ipv6); if (mask_ipv6 < 64 && mask_ipv6 > 32) { if (zeroize_prefix != 0) { ipv6addr_setdword(ipv6addrp, 1, ipv6addr_getdword(ipv6addrp, 1) & (0xffffffffu << ((unsigned int) 64 - mask_ipv6))); } else { ipv6addr_setdword(ipv6addrp, 1, (ipv6addr_getdword(ipv6addrp, 1) & (0xffffffffu << ((unsigned int) 64 - mask_ipv6))) | ((ANON_TOKEN_VALUE_00_31 | (ANON_TOKEN_VALUE_00_31 >> 16)) & ((0xffffffffu >> ((unsigned int) mask_ipv6 - 32))))); anonymized_prefix_nibbles = (64 - mask_ipv6) / 4; }; } else if (mask_ipv6 == 32) { if (zeroize_prefix != 0) { ipv6addr_setdword(ipv6addrp, 1, 0u); } else { ipv6addr_setdword(ipv6addrp, 1, ANON_TOKEN_VALUE_00_31 | (ANON_TOKEN_VALUE_00_31 >> 16)); anonymized_prefix_nibbles = 8; }; } else if (mask_ipv6 < 32 && mask_ipv6 >= 16) { if (zeroize_prefix != 0) { ipv6addr_setdword(ipv6addrp, 1, 0u); ipv6addr_setdword(ipv6addrp, 0, ipv6addr_getdword(ipv6addrp, 0) & (0xffffffffu << ((unsigned int) 32 - mask_ipv6))); } else { ipv6addr_setdword(ipv6addrp, 1, ANON_TOKEN_VALUE_00_31 | (ANON_TOKEN_VALUE_00_31 >> 16)); ipv6addr_setdword(ipv6addrp, 0, (ipv6addr_getdword(ipv6addrp, 0) & (0xffffffffu << ((unsigned int) 32 - mask_ipv6))) | ((ANON_TOKEN_VALUE_00_31 | (ANON_TOKEN_VALUE_00_31 >> 16)) & ((0xffffffffu >> ((unsigned int) mask_ipv6))))); anonymized_prefix_nibbles = (64 - mask_ipv6) / 4; }; }; }; /* restore prefix in special cases */ if ( ((ipv6addrp->typeinfo & IPV6_ADDR_SITELOCAL) != 0) && (mask_ipv6 < 10) ) { ipv6addr_setword(ipv6addrp, 0, ipv6addr_getword(ipv6addrp, 1) | 0xfec0u); } else if ( ((ipv6addrp->typeinfo & IPV6_ADDR_ULUA) != 0) && (mask_ipv6 < 7) ) { ipv6addr_setoctet(ipv6addrp, 0, ipv6addr_getoctet(ipv6addrp, 0) | 0xfdu); }; DEBUGPRINT_WA(DEBUG_libipv6addr, "Prefix: pref=%08x %08x (anonymized)", ipv6addr_getdword(ipv6addrp, 0), ipv6addr_getdword(ipv6addrp, 1)); }; InterfaceIdentifier: /* interface identifier handling */ if ( ( ((ipv6addrp->typeinfo & (IPV6_ADDR_LINKLOCAL | IPV6_ADDR_SITELOCAL | IPV6_NEW_ADDR_AGU | IPV6_ADDR_ULUA )) != 0) || ((ipv6addrp->typeinfo & (IPV6_ADDR_LOOPBACK | IPV6_NEW_ADDR_SOLICITED_NODE)) == (IPV6_ADDR_LOOPBACK | IPV6_NEW_ADDR_SOLICITED_NODE)) ) && ((ipv6addrp->typeinfo & (IPV6_NEW_ADDR_TEREDO | IPV6_NEW_ADDR_ORCHID)) == 0) ) { /* Interface identifier included */ if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_IID_EUI48) != 0) { /* EUI-48 */ DEBUGPRINT_NA(DEBUG_libipv6addr, "EUI-48 identifier found"); if (method == ANON_METHOD_ZEROIZE) { zeroize_iid = 1; } else { /* set anon interface ID, include shifted OUI bytes */ DEBUGPRINT_WA(DEBUG_libipv6addr, "Anonymize IPv6 address: OUI=%02x:%02x:%02x", ipv6addr_getoctet(ipv6addrp, 8) & 0xfc, ipv6addr_getoctet(ipv6addrp, 9), ipv6addr_getoctet(ipv6addrp, 10)); mac_clearall(&macaddr); macaddr.addr[0] = ipv6addr_getoctet(ipv6addrp, 8) ^ 0x2; macaddr.addr[1] = ipv6addr_getoctet(ipv6addrp, 9); macaddr.addr[2] = ipv6addr_getoctet(ipv6addrp, 10); macaddr.addr[3] = ipv6addr_getoctet(ipv6addrp, 13); macaddr.addr[4] = ipv6addr_getoctet(ipv6addrp, 14); macaddr.addr[5] = ipv6addr_getoctet(ipv6addrp, 15); macaddr.flag_valid = 1; map_value = libieee_map_oui_macaddr(&macaddr) ^ 0x00020000; iid[0] = ANON_TOKEN_VALUE_00_31 | ANON_IID_EUI48_VALUE_00_31; iid[1] = ANON_IID_EUI48_VALUE_32_63 | ((map_value & 0x1ffffff) << ANON_IID_EUI48_PAYLOAD_SHIFT); ipv6addr_setdword(ipv6addrp, 2, iid[0]); ipv6addr_setdword(ipv6addrp, 3, iid[1]); calculate_checksum = 1; }; } else { if ( (ipv6addrp->typeinfo & IPV6_NEW_ADDR_IID_RANDOM) != 0 ) { if (method == ANON_METHOD_ZEROIZE) { /* mask ID according to mask_eui64 */ zeroize_iid = 1; } else { /* replace IID with special value */ iid[0] = ANON_TOKEN_VALUE_00_31 | ANON_IID_RANDOM_VALUE_00_31; iid[1] = ANON_IID_RANDOM_VALUE_32_63; ipv6addr_setdword(ipv6addrp, 2, iid[0]); ipv6addr_setdword(ipv6addrp, 3, iid[1]); calculate_checksum = 1; }; } else if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_IID_EUI64) == IPV6_NEW_ADDR_IID_EUI64) { /* Check for global EUI-64 */ if (method == ANON_METHOD_ZEROIZE) { /* mask ID according to mask_eui64 */ zeroize_iid = 1; } else { libeui64_clearall(&eui64addr); eui64addr.addr[0] = ipv6addr_getoctet(ipv6addrp, 8) ^ 0x2; eui64addr.addr[1] = ipv6addr_getoctet(ipv6addrp, 9); eui64addr.addr[2] = ipv6addr_getoctet(ipv6addrp, 10); eui64addr.addr[3] = ipv6addr_getoctet(ipv6addrp, 11); eui64addr.addr[4] = ipv6addr_getoctet(ipv6addrp, 12); eui64addr.addr[5] = ipv6addr_getoctet(ipv6addrp, 13); eui64addr.addr[6] = ipv6addr_getoctet(ipv6addrp, 14); eui64addr.addr[7] = ipv6addr_getoctet(ipv6addrp, 15); eui64addr.flag_valid = 1; map_value = libieee_map_oui_eui64addr(&eui64addr) ^ 0x00020000; iid[0] = ANON_TOKEN_VALUE_00_31 | ANON_IID_EUI64_VALUE_00_31; iid[1] = ANON_IID_EUI64_VALUE_32_63 | ((map_value & 0x1ffffff) << ANON_IID_EUI64_PAYLOAD_SHIFT); ipv6addr_setdword(ipv6addrp, 2, iid[0]); ipv6addr_setdword(ipv6addrp, 3, iid[1]); calculate_checksum = 1; }; } else { if ( (ipv6addrp->typeinfo & IPV6_NEW_ADDR_SOLICITED_NODE) != 0 ) { /* zero'ise unique ID */ ipv6addr_setoctet(ipv6addrp, 13, 0x0u); ipv6addr_setoctet(ipv6addrp, 14, 0x0u); ipv6addr_setoctet(ipv6addrp, 15, 0x0u); } else if ( (ipv6addrp->typeinfo & IPV6_NEW_ADDR_IID_ISATAP) != 0 ) { /* ISATAP address */ if ( (ipv6addrp->typeinfo & IPV6_ADDR_IID_32_63_HAS_IPV4) != 0 ) { /* IPv4 address included */ for (i = 0; i <= 3; i++) { ipv4addr_setoctet(&ipv4addr, (unsigned int) i, (unsigned int) ipv6addr_getoctet(ipv6addrp, (unsigned int) (i + 12))); }; libipv4addr_anonymize(&ipv4addr, mask_ipv4, method); DEBUGPRINT_WA(DEBUG_libipv6addr, "ISATAP includes IPv4 address: IPv4=%d.%d.%d.%d, anonymized: %d.%d.%d.%d", ipv6addr_getoctet(ipv6addrp, 12), ipv6addr_getoctet(ipv6addrp, 13), ipv6addr_getoctet(ipv6addrp, 14), ipv6addr_getoctet(ipv6addrp, 15), ipv4addr_getoctet(&ipv4addr, 0), ipv4addr_getoctet(&ipv4addr, 1), ipv4addr_getoctet(&ipv4addr, 2), ipv4addr_getoctet(&ipv4addr, 3)); /* store back */ for (i = 0; i <= 3; i++) { ipv6addr_setoctet(ipv6addrp, (unsigned int) 12 + i, (unsigned int) ipv4addr_getoctet(&ipv4addr, (unsigned int) i)); }; if (method == ANON_METHOD_ZEROIZE) { // nothing to do, IPv4 address already anonymized } else { iid[0] = ANON_TOKEN_VALUE_00_31 | ANON_IID_ISATAP_VALUE_00_31; iid[1] = (ipv6addr_getoctet(ipv6addrp, 12) << (ANON_IID_ISATAP_PAYLOAD_SHIFT + 16)) | (ipv6addr_getoctet(ipv6addrp, 13) << (ANON_IID_ISATAP_PAYLOAD_SHIFT + 8)) | (ipv6addr_getoctet(ipv6addrp, 14) << (ANON_IID_ISATAP_PAYLOAD_SHIFT)); iid[1] |= ANON_IID_ISATAP_TYPE_IPV4_VALUE_32_63; calculate_checksum = 1; }; } else if ((ipv6addr_getoctet(ipv6addrp, 11) == 0xff) && (ipv6addr_getoctet(ipv6addrp, 12) == 0xfe)) { /* vendor ID included */ if (method == ANON_METHOD_ZEROIZE) { /* zero'ise unique ID */ /* TODO: honor mask_eui64 */ ipv6addr_setoctet(ipv6addrp, 13, 0x0u); ipv6addr_setoctet(ipv6addrp, 14, 0x0u); ipv6addr_setoctet(ipv6addrp, 15, 0x0u); } else { iid[0] = ANON_TOKEN_VALUE_00_31 | ANON_IID_ISATAP_VALUE_00_31; iid[1] = (ipv6addr_getoctet(ipv6addrp, 13) << (ANON_IID_ISATAP_PAYLOAD_SHIFT + 16)); iid[1] |= ANON_IID_ISATAP_TYPE_VENDOR_VALUE_32_63; calculate_checksum = 1; }; } else { /* extension ID included */ if (method == ANON_METHOD_ZEROIZE) { /* mask ID according to mask_eui64 */ zeroize_iid = 1; } else { iid[0] = ANON_TOKEN_VALUE_00_31 | ANON_IID_ISATAP_VALUE_00_31; iid[1] = (ipv6addr_getoctet(ipv6addrp, 11) << (ANON_IID_ISATAP_PAYLOAD_SHIFT + 16)) | (ipv6addr_getoctet(ipv6addrp, 12) << (ANON_IID_ISATAP_PAYLOAD_SHIFT + 8)) | (ipv6addr_getoctet(ipv6addrp, 13) << (ANON_IID_ISATAP_PAYLOAD_SHIFT)); iid[1] |= ANON_IID_ISATAP_TYPE_EXTID_VALUE_32_63; calculate_checksum = 1; }; }; if (calculate_checksum == 1) { /* store local/global bit */ DEBUGPRINT_NA(DEBUG_libipv6addr, "ISATAP: store local/global bit"); if ( (ipv6addrp->typeinfo & IPV6_NEW_ADDR_IID_GLOBAL) != 0 ) { DEBUGPRINT_NA(DEBUG_libipv6addr, "ISATAP: store global bit"); iid[1] |= ANON_IID_ISATAP_SCOPE_GLOBAL; } else if ( (ipv6addrp->typeinfo & IPV6_NEW_ADDR_IID_LOCAL) != 0 ) { DEBUGPRINT_NA(DEBUG_libipv6addr, "ISATAP: store local bit"); iid[1] |= ANON_IID_ISATAP_SCOPE_LOCAL; }; ipv6addr_setdword(ipv6addrp, 2, iid[0]); ipv6addr_setdword(ipv6addrp, 3, iid[1]); }; } else if ( ( ( (ipv6addrp->typeinfo & IPV6_ADDR_LINKLOCAL) != 0) && (ipv6addr_getdword(ipv6addrp, 2) == 0 && ipv6addr_getword(ipv6addrp, 6) != 0)) ) { /* fe80:: must have 0000:0000:xxxx:yyyy where xxxx > 0 */ for (i = 0; i <= 3; i++) { ipv4addr_setoctet(&ipv4addr, (unsigned int) i, (unsigned int) ipv6addr_getoctet(ipv6addrp, (unsigned int) (i + 12))); }; libipv4addr_anonymize(&ipv4addr, mask_ipv4, method); /* store back */ for (i = 0; i <= 3; i++) { ipv6addr_setoctet(ipv6addrp, (unsigned int) 12 + i, (unsigned int) ipv4addr_getoctet(&ipv4addr, (unsigned int) i)); }; } else { if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_6TO4_MICROSOFT) != 0) { /* extract IPv4 address */ for (i = 0; i <= 3; i++) { ipv4addr_setoctet(&ipv4addr, (unsigned int) i, (unsigned int) ipv6addr_getoctet(ipv6addrp, (unsigned int) (i + 12))); }; libipv4addr_anonymize(&ipv4addr, mask_ipv4, method); if (method == ANON_METHOD_ZEROIZE) { /* store back */ for (i = 0; i <= 3; i++) { ipv6addr_setoctet(ipv6addrp, (unsigned int) 12 + i, (unsigned int) ipv4addr_getoctet(&ipv4addr, (unsigned int) i)); }; } else { iid[0] = ANON_TOKEN_VALUE_00_31 | ANON_IID_IPV4_VALUE_00_31; iid[1] = ANON_IID_IPV4_VALUE_32_63 | (ipv4addr_getoctet(&ipv4addr, 0) << (ANON_IID_IPV4_PAYLOAD_SHIFT + 16)) | (ipv4addr_getoctet(&ipv4addr, 1) << (ANON_IID_IPV4_PAYLOAD_SHIFT + 8)) | (ipv4addr_getoctet(&ipv4addr, 2) << (ANON_IID_IPV4_PAYLOAD_SHIFT)); ipv6addr_setdword(ipv6addrp, 2, iid[0]); ipv6addr_setdword(ipv6addrp, 3, iid[1]); calculate_checksum = 1; }; } else { /* Identifier has local scope */ if (method == ANON_METHOD_ZEROIZE) { /* mask ID according to mask_eui64 */ zeroize_iid = 1; } else { iid[0] = ANON_TOKEN_VALUE_00_31 | ANON_IID_STATIC_VALUE_00_31; iid[1] = ANON_IID_STATIC_VALUE_32_63; ipv6addr_setdword(ipv6addrp, 2, iid[0]); ipv6addr_setdword(ipv6addrp, 3, iid[1]); calculate_checksum = 1; }; }; }; }; }; }; /* ORCHID hash */ if ( (ipv6addrp->typeinfo & IPV6_NEW_ADDR_ORCHID) != 0 ) { DEBUGPRINT_NA(DEBUG_libipv6addr, "ORCHID address found"); if (method == ANON_METHOD_ZEROIZE) { /* mask 100 LSBs */ ipv6addr_setword(ipv6addrp, 7, 0x0u); ipv6addr_setword(ipv6addrp, 6, 0x0u); ipv6addr_setword(ipv6addrp, 5, 0x0u); ipv6addr_setword(ipv6addrp, 4, 0x0u); } else { iid[0] = ANON_TOKEN_VALUE_00_31 | ANON_ORCHID_VALUE_00_31; iid[1] = ANON_ORCHID_VALUE_32_63; ipv6addr_setdword(ipv6addrp, 2, iid[0]); ipv6addr_setdword(ipv6addrp, 3, iid[1]); calculate_checksum = 1; }; if (zeroize_prefix != 0) { ipv6addr_setword(ipv6addrp, 3, 0x0u); ipv6addr_setword(ipv6addrp, 2, 0x0u); ipv6addr_setword(ipv6addrp, 1, ipv6addr_getword(ipv6addrp, 1) & 0xFFF0); } else { ipv6addr_setdword(ipv6addrp, 1, (ANON_TOKEN_VALUE_00_31 | (ANON_TOKEN_VALUE_00_31 >> 16))); ipv6addr_setword(ipv6addrp, 1, (ipv6addr_getword(ipv6addrp, 1) & 0xFFF0) | ((ANON_TOKEN_VALUE_00_31 >> 16) & 0xF)); anonymized_prefix_nibbles = (64 - 28) / 4; }; }; /* switch prefix anonymization if IID is not anonymizied in reliable way */ if (calculate_checksum == 0) { zeroize_prefix = 1; } else { ipv6addrp->typeinfo |= IPV6_ADDR_ANONYMIZED_IID; }; if (zeroize_iid == 1) { DEBUGPRINT_WA(DEBUG_libipv6addr, "Zeroize IID with mask: %d", mask_eui64); libeui64_clearall(&eui64addr); eui64addr.addr[0] = ipv6addr_getoctet(ipv6addrp, 8) ^ 0x2; eui64addr.addr[1] = ipv6addr_getoctet(ipv6addrp, 9); eui64addr.addr[2] = ipv6addr_getoctet(ipv6addrp, 10); eui64addr.addr[3] = ipv6addr_getoctet(ipv6addrp, 11); eui64addr.addr[4] = ipv6addr_getoctet(ipv6addrp, 12); eui64addr.addr[5] = ipv6addr_getoctet(ipv6addrp, 13); eui64addr.addr[6] = ipv6addr_getoctet(ipv6addrp, 14); eui64addr.addr[7] = ipv6addr_getoctet(ipv6addrp, 15); eui64addr.flag_valid = 1; bit_ul = eui64addr.addr[0] & 0x02; libeui64_anonymize(&eui64addr, ipv6calc_anon_set); // covers also EUI-48 if ((mask_eui64 < 7) && (ipv6calc_anon_set->mask_autoadjust == 0) && (bit_ul == 0x0)) { DEBUGPRINT_WA(DEBUG_libipv6addr, "mask_eui64 < 7 AND EUI-64 was %s AND mask_autoadjust not set, do not invert universal/local bit for IID (for backwards compatibility reason", (bit_ul == 2) ? "local" : "universal"); eui64addr.addr[0] |= 0x02; // will be inverted and therefore cleared next }; ipv6addr_setoctet(ipv6addrp, 8, eui64addr.addr[0] ^ 0x2); ipv6addr_setoctet(ipv6addrp, 9, eui64addr.addr[1]); ipv6addr_setoctet(ipv6addrp, 10, eui64addr.addr[2]); ipv6addr_setoctet(ipv6addrp, 11, eui64addr.addr[3]); ipv6addr_setoctet(ipv6addrp, 12, eui64addr.addr[4]); ipv6addr_setoctet(ipv6addrp, 13, eui64addr.addr[5]); ipv6addr_setoctet(ipv6addrp, 14, eui64addr.addr[6]); ipv6addr_setoctet(ipv6addrp, 15, eui64addr.addr[7]); }; // checksumming if (calculate_checksum == 1) { if (anonymized_prefix_nibbles > 0) { /* fill amount of nibbles into IID lead token */ DEBUGPRINT_WA(DEBUG_libipv6addr, "Store amount of anonymized nibbles to IID lead token: %d", anonymized_prefix_nibbles); ipv6addr_setoctet(ipv6addrp, 9, ipv6addr_getoctet(ipv6addrp, 9) | (anonymized_prefix_nibbles << 4)); }; ipv6addr_set_checksum_anonymized_iid(ipv6addrp); }; if (calculate_checksum_prefix == 1) { ipv6addr_set_checksum_anonymized_prefix(ipv6addrp); ipv6addrp->typeinfo |= IPV6_ADDR_ANONYMIZED_PREFIX; }; DEBUGPRINT_WA(DEBUG_libipv6addr, "Result: addr=%08x %08x %08x %08x (anonymized)", ipv6addr_getdword(ipv6addrp, 0), ipv6addr_getdword(ipv6addrp, 1), ipv6addr_getdword(ipv6addrp, 2), ipv6addr_getdword(ipv6addrp, 3)); return(0); }; /* * clear filter IPv6 address * * in : *filter = filter structure */ void ipv6addr_filter_clear(s_ipv6calc_filter_ipv6addr *filter) { filter->active = 0; filter->filter_typeinfo.active = 0; filter->filter_typeinfo.typeinfo_must_have = 0; filter->filter_typeinfo.typeinfo_may_not_have = 0; filter->filter_typeinfo2.typeinfo_must_have = 0; filter->filter_typeinfo2.typeinfo_may_not_have = 0; libipv6calc_filter_clear_db_cc(&filter->filter_db_cc); libipv6calc_filter_clear_db_asn(&filter->filter_db_asn); libipv6calc_filter_clear_db_registry(&filter->filter_db_registry); filter->filter_addr.active = 0; filter->filter_addr.addr_must_have_max = 0; filter->filter_addr.addr_may_not_have_max = 0; return; }; /* * parse filter IPv6 * * in : *filter = filter structure * ret: 0:found 1:skip 2:problem */ int ipv6addr_filter_parse(s_ipv6calc_filter_ipv6addr *filter, const char *token) { int i, result = 1, negate = 0, offset = 0, r; const char *prefix = "ipv6"; const char *prefixdot = "ipv6."; const char *prefixdbdot = "db."; const char *prefixaddreq = "addr="; const char *prefixaddreq_le = "addr<="; const char *prefixaddreq_lt = "addr<"; const char *prefixaddreq_ge = "addr>="; const char *prefixaddreq_gt = "addr>"; const char *prefixaddreq_le2 = "addr=le="; const char *prefixaddreq_lt2 = "addr=lt="; const char *prefixaddreq_ge2 = "addr=ge="; const char *prefixaddreq_gt2 = "addr=gt="; ipv6calc_ipv6addr ipv6addr; char resultstring[IPV6CALC_STRING_MAX]; int db = 0; int addr_test_method = IPV6CALC_TEST_NONE; if (token == NULL) { return (result); }; DEBUGPRINT_WA(DEBUG_libipv6addr, "input: %s", token); if (token[0] == '^') { DEBUGPRINT_WA(DEBUG_libipv6addr, "found negate prefix in token: %s", token); negate = 1; offset += 1; }; // typeinfo if (strcmp(token + offset, prefix) == 0) { /* any */ if (negate == 1) { filter->filter_typeinfo.typeinfo_may_not_have = ~IPV6_ADDR_ANY; } else { filter->filter_typeinfo.typeinfo_must_have = IPV6_ADDR_ANY; }; filter->filter_typeinfo.active = 1; filter->active = 1; result = 0; goto END_ipv6addr_filter_parse; } else if (strncmp(token + offset, prefixdot, strlen(prefixdot)) == 0) { /* prefix with dot found */ offset += strlen(prefixdot); result = 2; /* token with prefix, result into problem if not found */ DEBUGPRINT_WA(DEBUG_libipv6addr, "token with prefix, suffix: %s", token + offset); }; if (strncmp(token + offset, prefixaddreq_le, strlen(prefixaddreq_le)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv6addr, "found 'addr<=' prefix in token: %s", token); offset += strlen(prefixaddreq_le); addr_test_method = IPV6CALC_TEST_LE; } else if (strncmp(token + offset, prefixaddreq_lt, strlen(prefixaddreq_lt)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv6addr, "found 'addr<' prefix in token: %s", token); offset += strlen(prefixaddreq_lt); addr_test_method = IPV6CALC_TEST_LT; } else if (strncmp(token + offset, prefixaddreq_ge, strlen(prefixaddreq_ge)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv6addr, "found 'addr>=' prefix in token: %s", token); offset += strlen(prefixaddreq_ge); addr_test_method = IPV6CALC_TEST_GE; } else if (strncmp(token + offset, prefixaddreq_gt, strlen(prefixaddreq_gt)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv6addr, "found 'addr>' prefix in token: %s", token); offset += strlen(prefixaddreq_gt); addr_test_method = IPV6CALC_TEST_GT; } else if (strncmp(token + offset, prefixaddreq_le2, strlen(prefixaddreq_le2)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv6addr, "found 'addr=le=' prefix in token: %s", token); offset += strlen(prefixaddreq_le2); addr_test_method = IPV6CALC_TEST_LE; } else if (strncmp(token + offset, prefixaddreq_lt2, strlen(prefixaddreq_lt2)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv6addr, "found 'addr=lt=' prefix in token: %s", token); offset += strlen(prefixaddreq_lt2); addr_test_method = IPV6CALC_TEST_LT; } else if (strncmp(token + offset, prefixaddreq_ge2, strlen(prefixaddreq_ge2)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv6addr, "found 'addr=ge=' prefix in token: %s", token); offset += strlen(prefixaddreq_ge2); addr_test_method = IPV6CALC_TEST_GE; } else if (strncmp(token + offset, prefixaddreq_gt2, strlen(prefixaddreq_gt2)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv6addr, "found 'addr=gt=' prefix in token: %s", token); offset += strlen(prefixaddreq_gt2); addr_test_method = IPV6CALC_TEST_GT; } else if (strncmp(token + offset, prefixaddreq, strlen(prefixaddreq)) == 0) { /* prefixaddr with = found */ DEBUGPRINT_WA(DEBUG_libipv6addr, "found 'addr=' prefix in token: %s", token); offset += strlen(prefixaddreq); addr_test_method = IPV6CALC_TEST_PREFIX; } else if (strncmp(token + offset, prefixdbdot, strlen(prefixdbdot)) == 0) { /* prefixdb with dot found */ DEBUGPRINT_WA(DEBUG_libipv6addr, "found 'db.' prefix in token: %s", token); db = 1; } else if (strstr(token, ".") != NULL) { /* other prefix */ DEBUGPRINT_WA(DEBUG_libipv6addr, "prefix did not match: %s", token + offset); return(1); }; if ((db == 0) && (addr_test_method == IPV6CALC_TEST_NONE)) { // typeinfo token for (i = 0; i < MAXENTRIES_ARRAY(ipv6calc_ipv6addrtypestrings); i++ ) { DEBUGPRINT_WA(DEBUG_libipv6addr, "check token against: %s", ipv6calc_ipv6addrtypestrings[i].token); if (strcmp(ipv6calc_ipv6addrtypestrings[i].token, token + offset) == 0) { DEBUGPRINT_WA(DEBUG_libipv6addr, "token match: %s", ipv6calc_ipv6addrtypestrings[i].token); if (negate == 1) { filter->filter_typeinfo.typeinfo_may_not_have |= ipv6calc_ipv6addrtypestrings[i].number; } else { filter->filter_typeinfo.typeinfo_must_have |= ipv6calc_ipv6addrtypestrings[i].number; }; filter->filter_typeinfo.active = 1; filter->active = 1; result = 0; break; }; }; // typeinfo2 token for (i = 0; i < MAXENTRIES_ARRAY(ipv6calc_ipv6addr_type2_strings); i++ ) { DEBUGPRINT_WA(DEBUG_libipv6addr, "check token against: %s", ipv6calc_ipv6addr_type2_strings[i].token); if (strcmp(ipv6calc_ipv6addr_type2_strings[i].token, token + offset) == 0) { DEBUGPRINT_WA(DEBUG_libipv6addr, "token match: %s", ipv6calc_ipv6addr_type2_strings[i].token); if (negate == 1) { filter->filter_typeinfo2.typeinfo_may_not_have |= ipv6calc_ipv6addr_type2_strings[i].number; } else { filter->filter_typeinfo2.typeinfo_must_have |= ipv6calc_ipv6addr_type2_strings[i].number; }; filter->filter_typeinfo2.active = 1; filter->active = 1; result = 0; break; }; }; }; if (db == 1) { // DB CC filter r = libipv6calc_db_cc_filter_parse(&filter->filter_db_cc, token + offset, negate); if (r == 0) { result = 0; filter->active = 1; }; // DB ASN filter r = libipv6calc_db_asn_filter_parse(&filter->filter_db_asn, token + offset, negate); if (r == 0) { result = 0; filter->active = 1; }; // DB registry filter r = libipv6calc_db_registry_filter_parse(&filter->filter_db_registry, token + offset, negate); if (r == 0) { result = 0; filter->active = 1; }; }; if (addr_test_method != IPV6CALC_TEST_NONE) { DEBUGPRINT_WA(DEBUG_libipv6addr, "try to parse IPv6 address: %s", token + offset); r = addr_to_ipv6addrstruct(token + offset, resultstring, sizeof(resultstring), &ipv6addr); if (r == 0) { DEBUGPRINT_WA(DEBUG_libipv6addr, "successfully parsed IPv6 address: %s", token + offset); // store address test method in 'flag_startend_use' ipv6addr.test_mode = addr_test_method; if (negate == 1) { if (filter->filter_addr.addr_may_not_have_max < IPV6CALC_FILTER_IPV6ADDR) { ipv6addr_copy(&filter->filter_addr.ipv6addr_may_not_have[filter->filter_addr.addr_may_not_have_max], &ipv6addr); filter->filter_addr.addr_may_not_have_max++; filter->filter_addr.active = 1; filter->active = 1; result = 0; } else { ERRORPRINT_WA("filter token 'addr=' maxmimum reached for 'may not have': %d", filter->filter_addr.addr_may_not_have_max); }; } else { if (filter->filter_addr.addr_must_have_max < IPV6CALC_FILTER_IPV6ADDR) { ipv6addr_copy(&filter->filter_addr.ipv6addr_must_have[filter->filter_addr.addr_must_have_max], &ipv6addr); filter->filter_addr.addr_must_have_max++; filter->filter_addr.active = 1; filter->active = 1; result = 0; } else { ERRORPRINT_WA("filter token 'addr=' maxmimum reached for 'must have': %d", filter->filter_addr.addr_must_have_max); }; }; }; }; if (result != 0) { DEBUGPRINT_WA(DEBUG_libipv6addr, "token not supported: %s", token); return (result); }; END_ipv6addr_filter_parse: return (result); }; /* * check filter IPv6 * * in : *filter = filter structure * ret: 0:ok 1:problem */ int ipv6addr_filter_check(const s_ipv6calc_filter_ipv6addr *filter) { int result = 0, r, i; char resultstring[IPV6CALC_STRING_MAX]; DEBUGPRINT_WA(DEBUG_libipv6addr, "ipv6 filter general active : %d", filter->active); DEBUGPRINT_WA(DEBUG_libipv6addr, "ipv6 filter 'typeinfo' active : %d", filter->filter_typeinfo.active); if (filter->filter_typeinfo.active > 0) { DEBUGPRINT_WA(DEBUG_libipv6addr, "ipv6 filter 'typeinfo/must_have' : 0x%08x", filter->filter_typeinfo.typeinfo_must_have); DEBUGPRINT_WA(DEBUG_libipv6addr, "ipv6 filter 'typeinfo/may_not_have' : 0x%08x", filter->filter_typeinfo.typeinfo_may_not_have); }; DEBUGPRINT_WA(DEBUG_libipv6addr, "ipv6 filter 'typeinfo2' active : %d", filter->filter_typeinfo2.active); if (filter->filter_typeinfo2.active > 0) { DEBUGPRINT_WA(DEBUG_libipv6addr, "ipv6 filter 'typeinfo2/must_have' : 0x%08x", filter->filter_typeinfo2.typeinfo_must_have); DEBUGPRINT_WA(DEBUG_libipv6addr, "ipv6 filter 'typeinfo2/may_not_have': 0x%08x", filter->filter_typeinfo2.typeinfo_may_not_have); }; DEBUGPRINT_WA(DEBUG_libipv6addr, "ipv6 filter 'addr' active : %d", filter->filter_addr.active); if (filter->filter_addr.active > 0) { if (filter->filter_addr.addr_must_have_max > 0) { for (i = 0; i < filter->filter_addr.addr_must_have_max; i++) { ipv6addrstruct_to_compaddr(&filter->filter_addr.ipv6addr_must_have[i], resultstring, sizeof(resultstring)); DEBUGPRINT_WA(DEBUG_libipv6addr, "ipv6 filter 'addr/must_have' : %s", resultstring); }; }; if (filter->filter_addr.addr_may_not_have_max > 0) { for (i = 0; i < filter->filter_addr.addr_may_not_have_max; i++) { ipv6addrstruct_to_compaddr(&filter->filter_addr.ipv6addr_may_not_have[i], resultstring, sizeof(resultstring)); DEBUGPRINT_WA(DEBUG_libipv6addr, "ipv6 filter 'addr/may_not_have' : %s", resultstring); }; }; }; DEBUGPRINT_WA(DEBUG_libipv6addr, "ipv6 filter 'db.cc' active : %d", filter->filter_db_cc.active); if (filter->filter_db_cc.active > 0) { r = libipv6calc_db_cc_filter_check(&filter->filter_db_cc, IPV6CALC_PROTO_IPV6); if (r > 0) { result = 1; }; }; DEBUGPRINT_WA(DEBUG_libipv6addr, "ipv6 filter 'db.asn' active : %d", filter->filter_db_asn.active); if (filter->filter_db_asn.active > 0) { r = libipv6calc_db_asn_filter_check(&filter->filter_db_asn, IPV6CALC_PROTO_IPV6); if (r > 0) { result = 1; }; }; DEBUGPRINT_WA(DEBUG_libipv6addr, "ipv6 filter 'db.registry' active : %d", filter->filter_db_registry.active); if (filter->filter_db_registry.active > 0) { r = libipv6calc_db_registry_filter_check(&filter->filter_db_registry, IPV6CALC_PROTO_IPV6); if (r > 0) { result = 1; }; }; //END_ipv6addr_filter_check: return (result); }; /* * filter IPv6 address * * in : *ipv6addrp = IPv6 address structure * in : *filter = filter structure * ret: 0=match 1=not match */ int ipv6addr_filter(const ipv6calc_ipv6addr *ipv6addrp, const s_ipv6calc_filter_ipv6addr *filter) { int result = 0, r, i, t; if (filter->active == 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "No filter active (SKIP)"); return (1); }; DEBUGPRINT_NA(DEBUG_libipv6addr, "start"); if ((filter->filter_typeinfo.active > 0) || (filter->filter_typeinfo2.active > 0)) { if (ipv6addrp->flag_typeinfo == 0) { fprintf(stderr, "FATAL error, typeinfo not valid - FIX CODE of caller\n"); exit(2); }; }; if (filter->filter_typeinfo.active > 0) { DEBUGPRINT_WA(DEBUG_libipv6addr, "compare typeinfo against must_have: 0x%08x/0x%08x", ipv6addrp->typeinfo, filter->filter_typeinfo.typeinfo_must_have); if ((ipv6addrp->typeinfo & filter->filter_typeinfo.typeinfo_must_have) != filter->filter_typeinfo.typeinfo_must_have) { /* no match */ result = 1; } else { if ((ipv6addrp->typeinfo & filter->filter_typeinfo.typeinfo_may_not_have) != 0) { /* no match */ result = 1; }; }; }; if (filter->filter_typeinfo2.active > 0) { DEBUGPRINT_WA(DEBUG_libipv6addr, "compare typeinfo2 against must_have: 0x%08x/0x%08x", ipv6addrp->typeinfo2, filter->filter_typeinfo2.typeinfo_must_have); if ((ipv6addrp->typeinfo2 & filter->filter_typeinfo2.typeinfo_must_have) != filter->filter_typeinfo2.typeinfo_must_have) { /* no match */ result = 1; } else { if ((ipv6addrp->typeinfo & filter->filter_typeinfo2.typeinfo_may_not_have) != 0) { /* no match */ result = 1; }; }; }; if (filter->filter_addr.active > 0) { if (filter->filter_addr.addr_must_have_max > 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "compare against ipv6addr/must_have"); r = 1; for (i = 0; i < filter->filter_addr.addr_must_have_max; i++) { DEBUGPRINT_WA(DEBUG_libipv6addr, "compare against ipv6addr/must_have filter number: %d", i); t = ipv6addr_compare(ipv6addrp, &filter->filter_addr.ipv6addr_must_have[i], (filter->filter_addr.ipv6addr_must_have[i].test_mode == IPV6CALC_TEST_PREFIX) ? 1 : 0); switch (filter->filter_addr.ipv6addr_must_have[i].test_mode) { case IPV6CALC_TEST_PREFIX: if (t != 0) { r = 0; }; break; case IPV6CALC_TEST_LE: if (t > 0) { r = 0; }; break; case IPV6CALC_TEST_LT: if (t >= 0) { r = 0; }; break; case IPV6CALC_TEST_GE: if (t < 0) { r = 0; }; break; case IPV6CALC_TEST_GT: if (t <= 0) { r = 0; }; break; default: ERRORPRINT_WA("unsupported test mode (FIX CODE): %d", filter->filter_addr.ipv6addr_must_have[i].test_mode); break; }; DEBUGPRINT_WA(DEBUG_libipv6addr, "compare against ipv6addr/must_have result filter number: %d r=%d", i, r); }; if (r == 0) { /* no match */ result = 1; }; DEBUGPRINT_WA(DEBUG_libipv6addr, "compare against ipv6addr/must_have result: r=%d result=%d", r, result); }; if (filter->filter_addr.addr_may_not_have_max > 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "compare against ipv6addr/may_not_have"); r = 0; for (i = 0; i < filter->filter_addr.addr_may_not_have_max; i++) { DEBUGPRINT_WA(DEBUG_libipv6addr, "compare against ipv6addr/may_not_have filter number: %d", i); t = ipv6addr_compare(ipv6addrp, &filter->filter_addr.ipv6addr_may_not_have[i], (filter->filter_addr.ipv6addr_may_not_have[i].test_mode == IPV6CALC_TEST_PREFIX) ? 1 : 0); switch (filter->filter_addr.ipv6addr_may_not_have[i].test_mode) { case IPV6CALC_TEST_PREFIX: if (t == 0) { r = 1; }; break; case IPV6CALC_TEST_LE: if (t <= 0) { r = 1; }; break; case IPV6CALC_TEST_LT: if (t < 0) { r = 1; }; break; case IPV6CALC_TEST_GE: if (t >= 0) { r = 1; }; break; case IPV6CALC_TEST_GT: if (t > 0) { r = 1; }; break; default: ERRORPRINT_WA("unsupported test mode (FIX CODE): %d", filter->filter_addr.ipv6addr_must_have[i].test_mode); break; }; DEBUGPRINT_WA(DEBUG_libipv6addr, "compare against ipv6addr/may_not_have result filter number: %d r=%d", i, r); }; if (r == 1) { /* match may_not_have*/ result = 1; }; }; }; if (filter->filter_db_cc.active > 0) { uint16_t cc_index = libipv6addr_cc_index_by_addr(ipv6addrp, NULL); if (libipv6calc_db_cc_filter(cc_index, &filter->filter_db_cc) > 0) { /* no match */ result = 1; }; }; if (filter->filter_db_asn.active > 0) { uint32_t asn = libipv6addr_as_num32_by_addr(ipv6addrp, NULL); if (libipv6calc_db_asn_filter(asn, &filter->filter_db_asn) > 0) { /* no match */ result = 1; }; }; if (filter->filter_db_registry.active > 0) { int registry = libipv6addr_registry_num_by_addr(ipv6addrp); if (libipv6calc_db_registry_filter(registry, &filter->filter_db_registry) > 0) { /* no match */ result = 1; }; }; return (result); }; /* get included IPv4 address from an IPv6 address */ /* in: IPv6 address pointer (ro) * selector: in case of Teredo (otherwise ignored): * IPV6_ADDR_SELECT_IPV4_DEFAULT (TEREDO_CLIENT) * IPV6_ADDR_SELECT_IPV4_TEREDO_SERVER * IPV6_ADDR_SELECT_IPV4_PREFIX2_LENGTH * mod: IPv4 address pointer (rw) * ret: 0=ok, !=0: no IPv4 adress included */ int libipv6addr_get_included_ipv4addr(const ipv6calc_ipv6addr *ipv6addrp, ipv6calc_ipv4addr *ipv4addrp, const int selector) { int result = -1; uint32_t typeinfo, typeinfo2; int begin = -1, shift = 0; int i; uint8_t xor = 0; typeinfo = ipv6addrp->typeinfo; typeinfo2 = ipv6addrp->typeinfo2; DEBUGPRINT_WA(DEBUG_libipv6addr, "Called with IPv6 address having typeinfo: 0x%08x-0x%08x", typeinfo, typeinfo2); if (selector == IPV6_ADDR_SELECT_IPV4_PREFIX2_LENGTH) { begin = ipv6addrp->prefix2length / 8; shift = ipv6addrp->prefix2length % 8; } else { if ((typeinfo & (IPV6_ADDR_COMPATv4 | IPV6_ADDR_MAPPED | IPV6_NEW_ADDR_NAT64)) != 0) { begin = 12; } else if ((typeinfo & IPV6_NEW_ADDR_TEREDO) != 0) { if (selector == IPV6_ADDR_SELECT_IPV4_DEFAULT) { // Teredo client begin = 12; xor = 0xff; } else if (selector == IPV6_ADDR_SELECT_IPV4_TEREDO_SERVER) { // Teredo server begin = 4; } else { fprintf(stderr, "libipv6addr_get_included_ipv4addr FAILED (unsupported value of selector: %d - FIX CALLING CODE)", selector); exit(1); }; } else if ((typeinfo & IPV6_NEW_ADDR_6TO4) != 0) { begin = 2; }; }; if (begin > 0) { if (shift > 0) { DEBUGPRINT_WA(DEBUG_libipv6addr, "IPv6 address contains IPv4 address in octets %d-%d and shift %d", begin, begin+3, shift); } else { DEBUGPRINT_WA(DEBUG_libipv6addr, "IPv6 address contains IPv4 address in octets %d-%d", begin, begin+3); }; ipv4addr_clearall(ipv4addrp); if (shift > 0) { for (i = 0; i <= 4; i++) { int ipv6_p = ipv6addr_getoctet(ipv6addrp, i + begin); DEBUGPRINT_WA(DEBUG_libipv6addr, "IPv6[%d]=%02x", i + begin, ipv6_p); ipv6_p <<= shift; if (ipv6_p > 0xff) { if (i > 0) { // update higher octet ipv4addr_setoctet(ipv4addrp , (unsigned int) i - 1 , (unsigned int) (ipv4addr_getoctet(ipv4addrp, i - 1) | (ipv6_p >> 8)) ); }; }; if (i <= 3) { ipv4addr_setoctet(ipv4addrp , (unsigned int) i , (unsigned int) (ipv6_p & 0xff) ); }; }; } else { for (i = 0; i <= 3; i++) { ipv4addr_setoctet(ipv4addrp , (unsigned int) i , (unsigned int) ipv6addr_getoctet(ipv6addrp, (unsigned int) (i + begin)) ^ xor ); }; }; ipv4addr_settype(ipv4addrp, 1); ipv4addrp->flag_valid = 1; result = 0; }; if (result == -1) { // fprintf(stderr, "libipv6addr_get_included_ipv4addr FAILED (this should not happen)"); }; DEBUGPRINT_WA(DEBUG_libipv6addr, "Return with result: %d", result); return(result); }; /* * country code index of IPv6 address * * in : *ipv6addrp = IPv6 address structure * out: country code index */ uint16_t libipv6addr_cc_index_by_addr(const ipv6calc_ipv6addr *ipv6addrp, unsigned int *data_source_ptr) { uint32_t cc_index = COUNTRYCODE_INDEX_UNKNOWN; ipv6calc_ipv4addr ipv4addr; ipv6calc_ipv6addr ipv6addr; ipv6calc_ipaddr ipaddr; int retval; DEBUGPRINT_NA(DEBUG_libipv6addr, "start"); if ((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_PREFIX) != 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "anonymized prefix handling"); if ((ipv6addrp->typeinfo & IPV6_ADDR_HAS_PUBLIC_IPV4_IN_PREFIX) == 0) { if ((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_LISP) != 0) { // no country code included cc_index = COUNTRYCODE_INDEX_LISP; } else { /* retrieve CountryCodeIndex from anonymization value */ retval = ipv6addr_get_payload_anonymized_prefix(ipv6addrp, ANON_PREFIX_PAYLOAD_CCINDEX, &cc_index); if (retval != 0) { fprintf(stderr, "Error getting CountryCode index from anonymized IPv6 address\n"); goto END_libipv6addr_cc_index_by_addr; }; }; } else { if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_6TO4) != 0) { retval = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (retval != 0) { fprintf(stderr, "Error getting included IPv4 address from anonymized IPv6 address\n"); goto END_libipv6addr_cc_index_by_addr; }; cc_index = libipv4addr_cc_index_by_addr(&ipv4addr, NULL); }; }; } else if (((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_IID) != 0) && ((ipv6addrp->typeinfo & IPV6_ADDR_HAS_PUBLIC_IPV4_IN_IID) != 0)) { retval = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (retval != 0) { fprintf(stderr, "Error getting included IPv4 address from anonymized IPv6 address\n"); goto END_libipv6addr_cc_index_by_addr; }; cc_index = libipv4addr_cc_index_by_addr(&ipv4addr, data_source_ptr); } else { if ((ipv6addrp->typeinfo & IPV6_ADDR_HAS_PUBLIC_IPV4_IN_IID) != 0) { if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_CC) == 1) { /* retrieve CountryCodeIndex from IPv4 address inside */ retval = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (retval != 0) { fprintf(stderr, "Error getting included IPv4 address from IPv6 address\n"); goto END_libipv6addr_cc_index_by_addr; }; cc_index = libipv4addr_cc_index_by_addr(&ipv4addr, data_source_ptr); } else { DEBUGPRINT_NA(DEBUG_libipv6addr, "DB feature missing: DB_IPV4_TO_CC"); }; } else if ((ipv6addrp->typeinfo & IPV6_ADDR_HAS_PUBLIC_IPV4_IN_PREFIX) != 0) { if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_CC) == 1) { retval = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (retval != 0) { fprintf(stderr, "Error getting included IPv4 address from IPv6 address\n"); goto END_libipv6addr_cc_index_by_addr; }; cc_index = libipv4addr_cc_index_by_addr(&ipv4addr, data_source_ptr); } else { DEBUGPRINT_NA(DEBUG_libipv6addr, "DB feature missing: DB_IPV4_TO_CC"); }; } else if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_6BONE) != 0) { cc_index = COUNTRYCODE_INDEX_UNKNOWN_REGISTRY_MAP_MIN + REGISTRY_6BONE; } else if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_ORCHID) != 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "ORCHID has no country"); goto END_libipv6addr_cc_index_by_addr; } else if ((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_LISP) != 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "LISP has no country"); goto END_libipv6addr_cc_index_by_addr; } else if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV6_TO_CC) == 1) { if ((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_ANON_MASKED_PREFIX) != 0) { if (ipv6addrp->prefix2length < 48) { DEBUGPRINT_WA(DEBUG_libipv6addr, "anonymized prefix prefix length to low for detecting country: %u", ipv6addrp->prefix2length); goto END_libipv6addr_cc_index_by_addr; }; ipv6addr = *ipv6addrp; ipv6addr.flag_prefixuse = 1; ipv6addr.prefixlength = ipv6addrp->prefix2length; ipv6addrstruct_maskprefix(&ipv6addr); DEBUGPRINT_WA(DEBUG_libipv6addr, "anonymized prefix found, apply prefix length %u", ipv6addr.prefixlength); CONVERT_IPV6ADDRP_IPADDR(&ipv6addr, ipaddr); } else { CONVERT_IPV6ADDRP_IPADDR(ipv6addrp, ipaddr); }; cc_index = libipv6calc_db_wrapper_cc_index_by_addr(&ipaddr, data_source_ptr); } else { DEBUGPRINT_NA(DEBUG_libipv6addr, "DB feature missing: DB_IPV6_TO_CC"); }; }; END_libipv6addr_cc_index_by_addr: DEBUGPRINT_WA(DEBUG_libipv6addr, "cc_index=%d (0x%03x)", cc_index, cc_index); return(cc_index); }; /* * 32-bit AS number of IPv6 address * * in : *ipv6addrp = IPv6 address structure * out: 32-bit AS number */ uint32_t libipv6addr_as_num32_by_addr(const ipv6calc_ipv6addr *ipv6addrp, unsigned int *data_source_ptr) { uint32_t as_num32 = ASNUM_AS_UNKNOWN; ipv6calc_ipv4addr ipv4addr; ipv6calc_ipv6addr ipv6addr; ipv6calc_ipaddr ipaddr; uint32_t payload; int retval; DEBUGPRINT_NA(DEBUG_libipv6addr, "start"); if ((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_PREFIX) != 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "IPv6 address has anonymized prefix"); if ((ipv6addrp->typeinfo & IPV6_ADDR_HAS_PUBLIC_IPV4_IN_PREFIX) == 0) { if ((ipv6addrp->typeinfo & IPV6_ADDR_IID_32_63_HAS_IPV4) != 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "retrieve ASN from anonymized IPv4 in IID"); payload = ipv6addr_get_payload_anonymized_iid(ipv6addrp, ipv6addrp->typeinfo); /* IPv4 */ ipv4addr_clearall(&ipv4addr); ipv4addr_setoctet(&ipv4addr, 0, (payload >> 16) & 0xff); ipv4addr_setoctet(&ipv4addr, 1, (payload >> 8) & 0xff); ipv4addr_setoctet(&ipv4addr, 2, (payload ) & 0xff); ipv4addr_setoctet(&ipv4addr, 3, 0); ipv4addr_settype(&ipv4addr, 1); // set type ipv4addr.flag_valid = 1; as_num32 = libipv4addr_as_num32_by_addr(&ipv4addr, data_source_ptr); } else { /* retrieve ASN from anonymization value */ DEBUGPRINT_NA(DEBUG_libipv6addr, "retrieve ASN from anonymized prefix"); retval = ipv6addr_get_payload_anonymized_prefix(ipv6addrp, ANON_PREFIX_PAYLOAD_ASN32, &as_num32); if (retval != 0) { fprintf(stderr, "Error getting ASN32 from anonymized IPv6 address\n"); goto END_libipv6addr_as_num32_by_addr; }; }; } else { if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_6TO4) != 0) { /* retrieve ASN from included IPv4 address */ DEBUGPRINT_NA(DEBUG_libipv6addr, "retrieve ASN from included IPv4 address (6to4)"); retval = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (retval != 0) { fprintf(stderr, "Error getting included IPv4 address from anonymized IPv6 address\n"); goto END_libipv6addr_as_num32_by_addr; }; as_num32 = libipv4addr_as_num32_by_addr(&ipv4addr, data_source_ptr); }; }; } else if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_6BONE) != 0) { as_num32 = ASNUM_AS_UNKNOWN; goto END_libipv6addr_as_num32_by_addr; } else { if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV6_TO_AS) == 1) { if ((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_ANON_MASKED_PREFIX) != 0) { if (ipv6addrp->prefix2length < 48) { goto END_libipv6addr_as_num32_by_addr; }; ipv6addr = *ipv6addrp; ipv6addr.flag_prefixuse = 1; ipv6addr.prefixlength = ipv6addrp->prefix2length; ipv6addrstruct_maskprefix(&ipv6addr); DEBUGPRINT_WA(DEBUG_libipv6addr, "anonymized prefix found, apply prefix length %u", ipv6addr.prefixlength); CONVERT_IPV6ADDRP_IPADDR(&ipv6addr, ipaddr); } else { CONVERT_IPV6ADDRP_IPADDR(ipv6addrp, ipaddr); }; as_num32 = libipv6calc_db_wrapper_as_num32_by_addr(&ipaddr, data_source_ptr); } else { DEBUGPRINT_NA(DEBUG_libipv6addr, "DB feature missing: DB_IPV6_TO_AS"); }; }; END_libipv6addr_as_num32_by_addr: DEBUGPRINT_WA(DEBUG_libipv6addr, "as_num32=%d (0x%08x)", as_num32, as_num32); return(as_num32); }; /* * registry number of IPv6 address * * in : *ipv6addrp = IPv6 address structure * out: registry number */ int libipv6addr_registry_num_by_addr(const ipv6calc_ipv6addr *ipv6addrp) { int registry = REGISTRY_UNKNOWN; uint16_t cc_index; uint32_t as_num32; uint32_t geonameid_type; ipv6calc_ipv6addr ipv6addr; if (((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_PREFIX) != 0) \ && ((ipv6addrp->typeinfo & IPV6_ADDR_HAS_PUBLIC_IPV4_IN_PREFIX) == 0)) { if ((ipv6addrp->typeinfo2 & (IPV6_ADDR_TYPE2_ANONYMIZED_GEONAMEID)) == 0) { /* retrieve registry via cc_index from anonymized address (simple) */ cc_index = libipv6addr_cc_index_by_addr(ipv6addrp, NULL); if (cc_index == COUNTRYCODE_INDEX_LISP) { as_num32 = libipv6addr_as_num32_by_addr(ipv6addrp, NULL); registry = libipv6calc_db_wrapper_registry_num_by_as_num32(as_num32); } else { registry = libipv6calc_db_wrapper_registry_num_by_cc_index(cc_index); }; } else { if (ipv6addr_get_payload_anonymized_prefix(ipv6addrp, ANON_PREFIX_PAYLOAD_GEONAMEID_TYPE, &geonameid_type) == 0) { DEBUGPRINT_WA(DEBUG_libipv6addr, "geonameid_type/registry=%d (0x%03x)", geonameid_type, geonameid_type); if ((geonameid_type & 0x300) == 0x000) { registry = (geonameid_type & 0x0f0) >> 4; }; }; }; } else { if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV6_TO_REGISTRY) == 1) { if ((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_ANON_MASKED_PREFIX) != 0) { if (ipv6addrp->prefix2length < 12) { goto END_libipv6addr_registry_by_addr; }; ipv6addr = *ipv6addrp; ipv6addr.flag_prefixuse = 1; ipv6addr.prefixlength = ipv6addrp->prefix2length; ipv6addrstruct_maskprefix(&ipv6addr); registry = libipv6calc_db_wrapper_registry_num_by_ipv6addr(&ipv6addr); } else { registry = libipv6calc_db_wrapper_registry_num_by_ipv6addr(ipv6addrp); }; }; }; END_libipv6addr_registry_by_addr: DEBUGPRINT_WA(DEBUG_libipv6addr, "registry=%d (0x%x)", registry, registry); return(registry); }; /* * GeonameID of IPv6 address * * in : *ipv6addrp = IPv6 address structure * mod: GeonameID_type_ptr * out: GeonameID */ uint32_t libipv6addr_GeonameID_by_addr(const ipv6calc_ipv6addr *ipv6addrp, unsigned int *data_source_ptr, unsigned int *GeonameID_type_ptr) { uint32_t GeonameID = IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN; uint32_t GeonameID_type = IPV6CALC_DB_GEO_GEONAMEID_TYPE_UNKNOWN; unsigned int data_source = IPV6CALC_DB_SOURCE_UNKNOWN; ipv6calc_ipaddr ipaddr; ipv6calc_ipv4addr ipv4addr; int retval; if ((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_PREFIX) != 0) { if (((ipv6addrp->typeinfo & IPV6_ADDR_HAS_PUBLIC_IPV4_IN_IID) != 0) || ((ipv6addrp->typeinfo & IPV6_ADDR_HAS_PUBLIC_IPV4_IN_PREFIX) != 0)) { retval = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (retval != 0) { fprintf(stderr, "Error getting included IPv4 address from IPv6 address\n"); goto END_libipv6addr_GeonameID_by_addr; }; GeonameID = libipv4addr_GeonameID_by_addr(&ipv4addr, NULL, &GeonameID_type); } else if (((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_ANONYMIZED_GEONAMEID) != 0) \ && ((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_LISP) == 0)) { // GeonameID included int r1 = ipv6addr_get_payload_anonymized_prefix(ipv6addrp, ANON_PREFIX_PAYLOAD_GEONAMEID, &GeonameID); int r2 = ipv6addr_get_payload_anonymized_prefix(ipv6addrp, ANON_PREFIX_PAYLOAD_GEONAMEID_TYPE, &GeonameID_type); GeonameID_type &= 0x00f; DEBUGPRINT_WA(DEBUG_libipv6addr, "result of anonymized IPv6 GeonameID retrievement: %d (0x%08x) (source: %02x)", GeonameID, GeonameID, GeonameID_type); if ((r1 == 0) && (r2 == 0)) { // dummy }; }; } else if (((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_IID) != 0) && ((ipv6addrp->typeinfo & IPV6_ADDR_HAS_PUBLIC_IPV4_IN_IID) != 0)) { retval = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (retval != 0) { fprintf(stderr, "Error getting included IPv4 address from anonymized IPv6 address\n"); goto END_libipv6addr_GeonameID_by_addr; }; GeonameID = libipv4addr_GeonameID_by_addr(&ipv4addr, NULL, &GeonameID_type); } else { if ((ipv6addrp->typeinfo & IPV6_ADDR_HAS_PUBLIC_IPV4_IN_IID) != 0) { if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_GEONAMEID) == 1) { /* retrieve GeonameID from IPv4 address inside */ retval = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (retval != 0) { fprintf(stderr, "Error getting included IPv4 address from IPv6 address\n"); goto END_libipv6addr_GeonameID_by_addr; }; GeonameID = libipv4addr_GeonameID_by_addr(&ipv4addr, NULL, &GeonameID_type); } else { DEBUGPRINT_NA(DEBUG_libipv6addr, "DB feature missing: DB_IPV4_TO_GEONAMEID"); }; } else if ((ipv6addrp->typeinfo & IPV6_ADDR_HAS_PUBLIC_IPV4_IN_PREFIX) != 0) { if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_GEONAMEID) == 1) { retval = libipv6addr_get_included_ipv4addr(ipv6addrp, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (retval != 0) { fprintf(stderr, "Error getting included IPv4 address from IPv6 address\n"); goto END_libipv6addr_GeonameID_by_addr; }; GeonameID = libipv4addr_GeonameID_by_addr(&ipv4addr, NULL, &GeonameID_type); } else { DEBUGPRINT_NA(DEBUG_libipv6addr, "DB feature missing: DB_IPV4_TO_GEONAMEID"); }; } else if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_6BONE) != 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "6bone has no GeonameID"); goto END_libipv6addr_GeonameID_by_addr; } else if ((ipv6addrp->typeinfo & IPV6_NEW_ADDR_ORCHID) != 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "ORCHID has no GeonameID"); goto END_libipv6addr_GeonameID_by_addr; } else if ((ipv6addrp->typeinfo2 & IPV6_ADDR_TYPE2_LISP) != 0) { DEBUGPRINT_NA(DEBUG_libipv6addr, "LISP has no country"); goto END_libipv6addr_GeonameID_by_addr; } else if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV6_TO_GEONAMEID) == 1) { // get GeonameID CONVERT_IPV6ADDRP_IPADDR(ipv6addrp, ipaddr); GeonameID = libipv6calc_db_wrapper_GeonameID_by_addr(&ipaddr, &data_source, &GeonameID_type); DEBUGPRINT_WA(DEBUG_libipv6addr, "result of GeonameID retrievement: %d (0x%08x) (source: %02x)", GeonameID, GeonameID, GeonameID_type); } else { DEBUGPRINT_NA(DEBUG_libipv6addr, "No support available for IPV6CALC_DB_IPV6_TO_GEONAMEID"); }; }; DEBUGPRINT_WA(DEBUG_libipv6addr, "GeonameID=%d (0x%x)", GeonameID, GeonameID); if (data_source_ptr != NULL) { *data_source_ptr = data_source; }; if (GeonameID_type_ptr != NULL) { *GeonameID_type_ptr = GeonameID_type; }; END_libipv6addr_GeonameID_by_addr: return(GeonameID); }; ipv6calc-4.1.0/lib/libipv6addr.h000066400000000000000000000457031444154247200163700ustar00rootroot00000000000000/* * Project : ipv6calc * File : libipv6addr.h * Version : $Id: dc01157e5ec8acc3a0b5d0a0a13a07b995dfc602 $ * Copyright : 2001-2021 by Peter Bieringer except the parts taken from kernel source * License : GNU GPL v2 * * Information: * Header file for libipv6addr.c */ #ifndef _libipv6addr_h #define _libipv6addr_h 1 #include #include #include "ipv6calctypes.h" #include "libipv4addr.h" //#include "ipv6calc_typedefs.h" /* typedefs & defines */ /* IPv6 anonymization */ /* * IID anonymization is done by replacing with related information (64-bit) * xxxx:xxxx:xxxx:xxxC (C = 4-bit checksum) * * a9p9 4941 0000 000C -> RFC 4941 anonymized privacy extension Interface ID * * a9p9 4291 4xxx xxxC -> RFC 4291 anonymized EUI-48 Interface ID, xxx xxx = converted OUI * a9p9 4291 5xxx xxxC -> RFC 4291 anonymized EUI-48 Interface ID, xxx xxx = converted mapped IAB/OUI-36/OUI-28 * a9p9 4291 6xxx xxxC -> RFC 4291 anonymized EUI-64 Interface ID, xxx xxx = converted OUI * a9p9 4291 7xxx xxxC -> RFC 4291 anonymized EUI-64 Interface ID, xxx xxx = converted mapped IAB/OUI-36/OUI-28 * a9p9 4291 8xxx xxxC -> RFC 4291 embedded anonymized IPv4 address, xxx xxx = first 24 bit of included (anonymized) IPv4 address * a9p9 4291 c02d 5d1C -> RFC 4291 Chapter 2.5.1 anonymized static Interface ID * * a9p9 5214 4xxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included (anonymized) IPv4 address (local scope) * a9p9 5214 5xxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included (anonymized) IPv4 address (global scope) * a9p9 5214 cxx0 000C -> RFC 5214 anonymized ISATAP Interface ID, xx = first 8 bit of included vendor ID (local scope) * a9p9 5214 dxx0 000C -> RFC 5214 anonymized ISATAP Interface ID, xx = first 8 bit of included vendor ID (global scope) * a9p9 5214 exxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included extension ID (local scope) * a9p9 5214 fxxx xxxC -> RFC 5214 anonymized ISATAP Interface ID, xxx xxx = first 24 bit of included extension ID (global scope) * * a9p9 4843 0000 000C -> RFC 4843 anonymized ORCHID hash * * SLA/NLA prefix part anonymization is done by replacing with pattern a909a909 * p = number of nibbles anonymized in prefix * 0 : no nibble of prefix is anonymized * f : Prefix anonymization with method=kp|kg * * Prefix anonymization, but skipped for * - LISP anycast * in case of method=kp: p=0x0f * a909:ccca:aaaa:aaaC (C = 4-bit checksum) * ccc -> 10-bit Country Code mapping [A-Z]*[A-Z0-9] (936) * 0x3FD = LISP * 0x3FE = unknown country * 0x3FF - 16 + REGISTRY_6BONE && ASN=0 = 6bone * 0x000-0x3A7: c1= c / 36, c2 = c % 36 * -> 2 leftmost bit are |0 0| * aaaaaaaa -> 32-bit ASN * * in case of method=kg: p=0x0f * a909:sssg:gggg:gggC (C = 4-bit checksum) * sss -> 10-bit source mapping * GeonameID source information * 0x000 = unknown * 0x001 = continent (prio: lowest) * 0x002 = country * 0x003 = state/prov * 0x004 = district * 0x005 = city (prio: highest) * 0x006 = (reserved) * 0x007 = LISP * 0x0r. = registry * -> 2 leftmost bit are |0 1| * gggggggg -> 32-bit GeonameID * 0x11800 = LISP */ #define ANON_TOKEN_VALUE_00_31 (uint32_t) 0xa9090000u #define ANON_TOKEN_MASK_00_31 (uint32_t) 0xff0f0000u #define ANON_IID_PREFIX_NIBBLES_MASK (uint32_t) 0x0000000fu #define ANON_IID_PREFIX_NIBBLES_SHIFT 20 #define ANON_CHECKSUM_MASK_32_63 (uint32_t) 0x0000000fu #define ANON_IID_RANDOM_VALUE_00_31 (uint32_t) 0x00004941u #define ANON_IID_RANDOM_MASK_00_31 (uint32_t) 0x0000ffffu #define ANON_IID_RANDOM_VALUE_32_63 (uint32_t) 0x00000000u #define ANON_IID_RANDOM_MASK_32_63 (uint32_t) 0xfffffff0u #define ANON_IID_STATIC_VALUE_00_31 (uint32_t) 0x00004291u #define ANON_IID_STATIC_MASK_00_31 (uint32_t) 0x0000ffffu #define ANON_IID_STATIC_VALUE_32_63 (uint32_t) 0xc02d5d10u #define ANON_IID_STATIC_MASK_32_63 (uint32_t) 0xfffffff0u #define ANON_ORCHID_VALUE_00_31 (uint32_t) 0x00004843u #define ANON_ORCHID_STATIC_MASK_00_31 (uint32_t) 0x0000ffffu #define ANON_ORCHID_VALUE_32_63 (uint32_t) 0x00000000u #define ANON_ORCHID_STATIC_MASK_32_63 (uint32_t) 0xfffffff0u #define ANON_IID_EUI48_VALUE_00_31 (uint32_t) 0x00004291u #define ANON_IID_EUI48_MASK_00_31 (uint32_t) 0x0000ffffu #define ANON_IID_EUI48_VALUE_32_63 (uint32_t) 0x40000000u #define ANON_IID_EUI48_MASK_32_63 (uint32_t) 0xe0000000u #define ANON_IID_EUI48_PAYLOAD_32_63 (uint32_t) 0x1ffffff0u #define ANON_IID_EUI48_PAYLOAD_SHIFT 4 #define ANON_IID_EUI48_PAYLOAD_LENGTH 24 #define ANON_IID_EUI64_VALUE_00_31 (uint32_t) 0x00004291u #define ANON_IID_EUI64_MASK_00_31 (uint32_t) 0x0000ffffu #define ANON_IID_EUI64_VALUE_32_63 (uint32_t) 0x60000000u #define ANON_IID_EUI64_MASK_32_63 (uint32_t) 0xe0000000u #define ANON_IID_EUI64_PAYLOAD_32_63 (uint32_t) 0x1ffffff0u #define ANON_IID_EUI64_PAYLOAD_SHIFT 4 #define ANON_IID_EUI64_PAYLOAD_LENGTH 24 #define ANON_IID_IPV4_VALUE_00_31 (uint32_t) 0x00004291u #define ANON_IID_IPV4_MASK_00_31 (uint32_t) 0x0000ffffu #define ANON_IID_IPV4_VALUE_32_63 (uint32_t) 0x80000000u #define ANON_IID_IPV4_MASK_32_63 (uint32_t) 0xf0000000u #define ANON_IID_IPV4_PAYLOAD_32_63 (uint32_t) 0x0ffffff0u #define ANON_IID_IPV4_PAYLOAD_SHIFT 4 #define ANON_IID_IPV4_PAYLOAD_LENGTH 24 #define ANON_IID_EUIxx_SCOPE_MASK (uint32_t) 0x00200000u #define ANON_IID_EUIxx_SCOPE_GLOBAL (uint32_t) 0x00200000u #define ANON_IID_EUIxx_SCOPE_LOCAL (uint32_t) 0x00000000u #define ANON_IID_ISATAP_VALUE_00_31 (uint32_t) 0x00005214u #define ANON_IID_ISATAP_MASK_00_31 (uint32_t) 0x0000ffffu #define ANON_IID_ISATAP_PAYLOAD_SHIFT 4 #define ANON_IID_ISATAP_PAYLOAD_LENGTH 24 #define ANON_IID_ISATAP_SCOPE_MASK (uint32_t) 0x10000000u #define ANON_IID_ISATAP_SCOPE_LOCAL (uint32_t) 0x00000000u #define ANON_IID_ISATAP_SCOPE_GLOBAL (uint32_t) 0x10000000u #define ANON_IID_ISATAP_TYPE_MASK_32_63 (uint32_t) 0xe0000000u #define ANON_IID_ISATAP_TYPE_IPV4_VALUE_32_63 (uint32_t) 0x40000000u #define ANON_IID_ISATAP_TYPE_IPV4_PAYLOAD_32_63 (uint32_t) 0x0ffffff0u #define ANON_IID_ISATAP_TYPE_VENDOR_VALUE_32_63 (uint32_t) 0xc0000000u #define ANON_IID_ISATAP_TYPE_VENDOR_PAYLOAD_32_63 (uint32_t) 0x0ff00000u #define ANON_IID_ISATAP_TYPE_EXTID_VALUE_32_63 (uint32_t) 0xe0000000u #define ANON_IID_ISATAP_TYPE_EXTID_PAYLOAD_32_63 (uint32_t) 0x0ffffff0u #define ANON_CHECKSUM_FLAG_CREATE 1 #define ANON_CHECKSUM_FLAG_VERIFY 2 // Prefix anonymization on method=kp #define ANON_METHOD_KEEPTYPEASNCC_IPV6_REQ_DB (IPV6CALC_DB_IPV6_TO_CC | IPV6CALC_DB_IPV6_TO_AS) // Prefix anonymization on method=kg #define ANON_METHOD_KEEPTYPEGEONAMEID_IPV6_REQ_DB (IPV6CALC_DB_IPV6_TO_GEONAMEID) #define ANON_PREFIX_CCINDEX_DWORD 0 #define ANON_PREFIX_CCINDEX_SHIFT 4 #define ANON_PREFIX_CCINDEX_MASK 0x3ff #define ANON_PREFIX_CCINDEX_XOR 0x0 #define ANON_PREFIX_GEONAMEID_TYPE_DWORD 0 #define ANON_PREFIX_GEONAMEID_TYPE_SHIFT 4 #define ANON_PREFIX_GEONAMEID_TYPE_MASK 0x3ff #define ANON_PREFIX_GEONAMEID_TYPE_XOR 0x0 #define ANON_PREFIX_ASN32_MSB_DWORD 0 #define ANON_PREFIX_ASN32_MSB_SHIFT 0 #define ANON_PREFIX_ASN32_MSB_AMOUNT 4 #define ANON_PREFIX_ASN32_MSB_MASK ((1 << ANON_PREFIX_ASN32_MSB_AMOUNT) - 1) #define ANON_PREFIX_ASN32_MSB_XOR 0x0000000a #define ANON_PREFIX_ASN32_LSB_DWORD 1 #define ANON_PREFIX_ASN32_LSB_SHIFT 4 #define ANON_PREFIX_ASN32_LSB_AMOUNT 28 #define ANON_PREFIX_ASN32_LSB_MASK ((1 << ANON_PREFIX_ASN32_LSB_AMOUNT) - 1) #define ANON_PREFIX_ASN32_LSB_XOR 0x09090000 #define ANON_PREFIX_GEONAMEID_MSB_DWORD 0 #define ANON_PREFIX_GEONAMEID_MSB_SHIFT 0 #define ANON_PREFIX_GEONAMEID_MSB_AMOUNT 4 #define ANON_PREFIX_GEONAMEID_MSB_MASK ((1 << ANON_PREFIX_GEONAMEID_MSB_AMOUNT) - 1) #define ANON_PREFIX_GEONAMEID_MSB_XOR 0x0000000a #define ANON_PREFIX_GEONAMEID_LSB_DWORD 1 #define ANON_PREFIX_GEONAMEID_LSB_SHIFT 4 #define ANON_PREFIX_GEONAMEID_LSB_AMOUNT 28 #define ANON_PREFIX_GEONAMEID_LSB_MASK ((1 << ANON_PREFIX_GEONAMEID_LSB_AMOUNT) - 1) #define ANON_PREFIX_GEONAMEID_LSB_XOR 0x09090000 #define ANON_PREFIX_FLAGS_DWORD 0 #define ANON_PREFIX_FLAGS_SHIFT 14 #define ANON_PREFIX_FLAGS_MASK 0x3 #define ANON_PREFIX_FLAGS_XOR 0x0 #define ANON_PREFIX_TOKEN_DWORD 0 #define ANON_PREFIX_TOKEN_SHIFT 16 #define ANON_PREFIX_TOKEN_MASK 0xffff #define ANON_PREFIX_TOKEN_XOR 0x0 #define ANON_PREFIX_TOKEN_VALUE 0xa909 // fix // Payload selector #define ANON_PREFIX_PAYLOAD_FLAGS 0 #define ANON_PREFIX_PAYLOAD_CCINDEX 1 #define ANON_PREFIX_PAYLOAD_ASN32 2 #define ANON_PREFIX_PAYLOAD_GEONAMEID 3 #define ANON_PREFIX_PAYLOAD_GEONAMEID_TYPE 4 /* IPv6 address storage structure */ typedef struct { struct in6_addr in6_addr; /* in6_addr structure */ uint8_t prefixlength; /* prefix length (0-128) 8 bit */ int flag_prefixuse; /* =1: prefix length in use */ uint32_t typeinfo; /* address typeinfo/scope */ uint32_t typeinfo2; /* address typeinfo2 */ int8_t flag_typeinfo; /* =1: typeinfo valid */ uint8_t bit_start; /* start of bit */ uint8_t bit_end; /* end of bit */ int8_t flag_startend_use; /* =1: start or end of bit in use */ int8_t flag_valid; /* address structure filled */ char scopeid[IPV6CALC_SCOPEID_STRING_MAX]; /* scope ID value */ int8_t flag_scopeid; /* =1: scope ID value (above) set */ uint8_t prefix2length; /* prefix 2 length (0-128) 8 bit (usage depends on typeinfo/typeinfo2)*/ uint8_t test_mode; /* address test mode */ } ipv6calc_ipv6addr; /* IPv6 Address filter structure */ typedef struct { int active; int addr_must_have_max; int addr_may_not_have_max; ipv6calc_ipv6addr ipv6addr_must_have[IPV6CALC_FILTER_IPV6ADDR]; ipv6calc_ipv6addr ipv6addr_may_not_have[IPV6CALC_FILTER_IPV6ADDR]; } s_ipv6calc_filter_addr_ipv6; /* IPv6 filter structure */ typedef struct { int active; s_ipv6calc_filter_typeinfo filter_typeinfo; s_ipv6calc_filter_typeinfo filter_typeinfo2; s_ipv6calc_filter_db_cc filter_db_cc; // Country Code filter s_ipv6calc_filter_db_asn filter_db_asn; // Autonomous System Number filter s_ipv6calc_filter_db_registry filter_db_registry; // Registry filter s_ipv6calc_filter_addr_ipv6 filter_addr; // IPv6 Address filter /* others may come next */ } s_ipv6calc_filter_ipv6addr; /* IID statistics */ typedef struct { float hexdigit; float lls_residual; // lls: linear least square int digit_blocks[16]; // block length of same digit int digit_blocks_hexdigit[16];// hex digits used in blocks of same digit int digit_amount[16]; // amount of digits int digit_delta[31]; // delta of digits int digit_delta_amount; // amount of delta of digits } s_iid_statistics; /* IPv6 address type definitions * with credits to kernel and USAGI developer team * basic information was taken from "kernel/include/net/ipv6.h" */ /* * Addr type * * type - unicast | multicast | anycast * scope - local | site | global * v4 - compat * v4mapped * any * loopback */ #define IPV6_ADDR_ANY (uint32_t) 0x00000000U #define IPV6_ADDR_UNICAST (uint32_t) 0x00000001U #define IPV6_ADDR_MULTICAST (uint32_t) 0x00000002U #define IPV6_ADDR_ANYCAST (uint32_t) 0x00000004U #define IPV6_ADDR_ANONYMIZED_PREFIX (uint32_t) 0x00000008U /* anonymized IPv6 address (prefix) */ #define IPV6_ADDR_LOOPBACK (uint32_t) 0x00000010U #define IPV6_ADDR_LINKLOCAL (uint32_t) 0x00000020U #define IPV6_ADDR_SITELOCAL (uint32_t) 0x00000040U #define IPV6_ADDR_COMPATv4 (uint32_t) 0x00000080U #define IPV6_ADDR_SCOPE_MASK (uint32_t) 0x000000f0U #define IPV6_NEW_ADDR_IID_TEREDO (uint32_t) 0x00000100U /* RFC xxxx */ #define IPV6_NEW_ADDR_IID_ISATAP (uint32_t) 0x00000200U /* RFC 5214 (ex 4214) */ #define IPV6_NEW_ADDR_IID_EUI48 (uint32_t) 0x00000400U #define IPV6_NEW_ADDR_IID_EUI64 (uint32_t) 0x00000800U #define IPV6_ADDR_MAPPED (uint32_t) 0x00001000U #define IPV6_ADDR_RESERVED (uint32_t) 0x00002000U /* reserved address space */ #define IPV6_ADDR_ULUA (uint32_t) 0x00004000U /* Unique Local Unicast Address */ #define IPV6_ADDR_ANONYMIZED_IID (uint32_t) 0x00008000U /* anonymized IPv6 address (IID) */ #define IPV6_NEW_ADDR_6TO4 (uint32_t) 0x00010000U #define IPV6_NEW_ADDR_6BONE (uint32_t) 0x00020000U #define IPV6_NEW_ADDR_AGU (uint32_t) 0x00040000U #define IPV6_NEW_ADDR_UNSPECIFIED (uint32_t) 0x00080000U #define IPV6_NEW_ADDR_SOLICITED_NODE (uint32_t) 0x00100000U #define IPV6_ADDR_IID_32_63_HAS_IPV4 (uint32_t) 0x00200000U #define IPV6_NEW_ADDR_PRODUCTIVE (uint32_t) 0x00400000U #define IPV6_NEW_ADDR_6TO4_MICROSOFT (uint32_t) 0x00800000U #define IPV6_NEW_ADDR_TEREDO (uint32_t) 0x01000000U #define IPV6_NEW_ADDR_ORCHID (uint32_t) 0x02000000U /* RFC 4843 */ #define IPV6_NEW_ADDR_LINKLOCAL_TEREDO (uint32_t) 0x04000000U #define IPV6_NEW_ADDR_NAT64 (uint32_t) 0x08000000U /* RFC 6052 */ #define IPV6_NEW_ADDR_IID_RANDOM (uint32_t) 0x10000000U /* possible RFC 4941 (ex 3041) */ #define IPV6_NEW_ADDR_IID (uint32_t) 0x20000000U /* IPv6 address with IID inside */ #define IPV6_NEW_ADDR_IID_LOCAL (uint32_t) 0x40000000U /* IPv6 address with local generated IID */ #define IPV6_NEW_ADDR_IID_GLOBAL (uint32_t) 0x80000000U /* IPv6 address with global IID */ #define IPV6_ADDR_HAS_PUBLIC_IPV4_IN_PREFIX (IPV6_NEW_ADDR_6TO4 | IPV6_NEW_ADDR_TEREDO) #define IPV6_ADDR_HAS_PUBLIC_IPV4_IN_IID (IPV6_NEW_ADDR_NAT64 | IPV6_NEW_ADDR_TEREDO | IPV6_ADDR_COMPATv4 | IPV6_ADDR_MAPPED | IPV6_NEW_ADDR_6TO4_MICROSOFT) #define IPV6_ADDR_HAS_PUBLIC_IPV4 (IPV6_ADDR_HAS_PUBLIC_IPV4_IN_IID | IPV6_ADDR_HAS_PUBLIC_IPV4_IN_PREFIX) #define IPV6_ADDR_GLOBAL (IPV6_NEW_ADDR_PRODUCTIVE) // typeinfo2 #define IPV6_ADDR_TYPE2_6RD (uint32_t) 0x00000001U /* IPv6 Rapid Deployment address (RFC5569), not autodetectable (triggered by --6rd_prefixlength) */ #define IPV6_ADDR_TYPE2_LISP (uint32_t) 0x00010000U /* IPv6 LISP (RFC6830) */ #define IPV6_ADDR_TYPE2_LISP_PETR (uint32_t) 0x00020000U /* IPv6 LISP Proxy Egress Tunnel Routers (PETRY) Anycast */ #define IPV6_ADDR_TYPE2_LISP_MAP_RESOLVER (uint32_t) 0x00040000U /* IPv6 LISP Map Resolver Anycast */ #define IPV6_ADDR_TYPE2_ANON_MASKED_PREFIX (uint32_t) 0x00080000U /* IPv6 partially masked prefix */ #define IPV6_ADDR_TYPE2_ANONYMIZED_GEONAMEID (uint32_t) 0x00100000U /* IPv6 prefix anonymized contains GeonameID */ // IPv4 address extractor selector #define IPV6_ADDR_SELECT_IPV4_DEFAULT 0 #define IPV6_ADDR_SELECT_IPV4_TEREDO_SERVER 1 #define IPV6_ADDR_SELECT_IPV4_PREFIX2_LENGTH 2 /* text representations -> libipv6addr.c */ #endif /* references */ extern const s_type ipv6calc_ipv6addrtypestrings[]; extern const int ipv6calc_ipv6addrtypestrings_entries; extern const s_type ipv6calc_ipv6addr_type2_strings[]; extern const int ipv6calc_ipv6addr_type2_strings_entries; /* prototypes */ extern uint8_t ipv6addr_getoctet(const ipv6calc_ipv6addr *ipv6addrp, const unsigned int numoctet); extern uint16_t ipv6addr_getword(const ipv6calc_ipv6addr *ipv6addrp, const unsigned int numword); extern uint32_t ipv6addr_getdword(const ipv6calc_ipv6addr *ipv6addrp, const unsigned int numdword); extern void ipv6addr_setoctet(ipv6calc_ipv6addr *ipv6addrp, const unsigned int numoctet, unsigned int value); extern void ipv6addr_setword(ipv6calc_ipv6addr *ipv6addrp, const unsigned int numword, unsigned int value); extern void ipv6addr_setdword(ipv6calc_ipv6addr *ipv6addrp, const unsigned int numdword, unsigned int value); extern void ipv6addr_clear(ipv6calc_ipv6addr *ipv6addrp); extern void ipv6addr_clearall(ipv6calc_ipv6addr *ipv6addrp); extern void ipv6addr_copy(ipv6calc_ipv6addr *ipv6addrp_dst, const ipv6calc_ipv6addr *ipv6addrp_src); extern int ipv6addr_compare(const ipv6calc_ipv6addr *ipv6addrp1, const ipv6calc_ipv6addr *ipv6addrp2, const uint16_t compare_flags); extern void ipv6addr_settype(ipv6calc_ipv6addr *ipv6addrp); extern int addr_to_ipv6addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv6addr *ipv6addrp); extern int addrliteral_to_ipv6addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv6addr *ipv6addrp); extern int libipv6addr_ipv6addrstruct_to_uncompaddr(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions); extern int libipv6addr_to_octal(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions); extern int libipv6addr_to_hex(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions); extern void ipv6addrstruct_maskprefix(ipv6calc_ipv6addr *ipv6addrp); extern void ipv6addrstruct_masksuffix(ipv6calc_ipv6addr *ipv6addrp); extern int identifier_to_ipv6addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv6addr *ipv6addrp); extern int tokenlsb64_to_ipv6addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv6addr *ipv6addrp); extern int libipv6addr_ipv6addrstruct_to_tokenlsb64(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions); extern int libipv6addr_anonymize(ipv6calc_ipv6addr *ipv6addrp, const s_ipv6calc_anon_set *ipv6calc_anon_set); extern uint32_t ipv6addr_get_payload_anonymized_iid(const ipv6calc_ipv6addr *ipv6addrp, const uint32_t typeinfo); extern int ipv6addr_get_payload_anonymized_prefix(const ipv6calc_ipv6addr *ipv6addrp, const int payload_selector, uint32_t *result_ptr); extern int ipv6addr_iidrandomdetection(const ipv6calc_ipv6addr *ipv6addrp, s_iid_statistics *variancesp); extern int ipv6addr_filter(const ipv6calc_ipv6addr *ipv6addrp, const s_ipv6calc_filter_ipv6addr *filter); extern int ipv6addr_filter_parse(s_ipv6calc_filter_ipv6addr *filter, const char *token); extern int ipv6addr_filter_check(const s_ipv6calc_filter_ipv6addr *filter); extern void ipv6addr_filter_clear(s_ipv6calc_filter_ipv6addr *filter); extern int libipv6addr_get_included_ipv4addr(const ipv6calc_ipv6addr *ipv6addrp, ipv6calc_ipv4addr *ipv4addrp, const int selector); extern uint16_t libipv6addr_cc_index_by_addr(const ipv6calc_ipv6addr *ipv6addrp, unsigned int *data_source_ptr); extern uint32_t libipv6addr_as_num32_by_addr(const ipv6calc_ipv6addr *ipv6addrp, unsigned int *data_source_ptr); extern uint32_t libipv6addr_GeonameID_by_addr(const ipv6calc_ipv6addr *ipv6addrp, unsigned int *data_source_ptr, unsigned int *GeonameID_type_ptr); extern int libipv6addr_registry_num_by_addr(const ipv6calc_ipv6addr *ipv6addrp); ipv6calc-4.1.0/lib/libipv6calc.c000066400000000000000000000571431444154247200163540ustar00rootroot00000000000000/* * Project : ipv6calc/lib * File : libipv6calc.c * Version : $Id: 99db2abebf1a88fc28da7a9882f6f60ea4646320 $ * Copyright : 2001-2021 by Peter Bieringer * * Information: * Function library for some tools */ #include #include #include #include #include "config.h" #include "ipv6calctypes.h" #include "libipv6calc.h" #include "libipv6calcdebug.h" #include "libipv6calc_filter.h" #include "librfc1924.h" #include "librfc2874.h" #include "librfc1886.h" #include "libipv6calc_db_wrapper.h" /* text representations */ const s_ipv6calc_anon_set ipv6calc_anon_set_list[] = { // name short ip4 ip6 iid mac keep-oui method { "anonymize-standard" , "as" , 24, 56, 40, 24, 1 , ANON_METHOD_ANONYMIZE }, { "anonymize-careful" , "ac" , 20, 48, 24, 24, 1 , ANON_METHOD_ANONYMIZE }, { "anonymize-paranoid" , "ap" , 16, 40, 0, 24, 0 , ANON_METHOD_ANONYMIZE }, { "zeroize-standard" , "zs" , 24, 56, 40, 24, 1 , ANON_METHOD_ZEROIZE }, { "zeroize-careful" , "zc" , 20, 48, 24, 24, 1 , ANON_METHOD_ZEROIZE }, { "zeroize-paranoid" , "zp" , 16, 40, 0, 24, 0 , ANON_METHOD_ZEROIZE }, { "keep-type-asn-cc" , "kp" , 24, 56, 40, 24, 1 , ANON_METHOD_KEEPTYPEASNCC }, { "keep-type-geonameid" , "kg" , 24, 56, 40, 24, 1 , ANON_METHOD_KEEPTYPEGEONAMEID } }; const int ipv6calc_anon_set_list_entries = MAXENTRIES_ARRAY(ipv6calc_anon_set_list); const s_ipv6calc_anon_methods ipv6calc_anon_methods[] = { { "anonymize" , 1, "reliable anonymization, keep as much type information as possible" }, { "zeroize" , 2, "simple zeroizing according to given masks, probably loose type information" }, { "keep-type-asn-cc" , 3, "special reliable anonymization, keep type & Autonomous System Number and CountryCode" }, { "keep-type-geonameid", 4, "special reliable anonymization, keep type & GeonameID" } }; const int ipv6calc_anon_methods_entries = MAXENTRIES_ARRAY(ipv6calc_anon_methods); const s_type2 ipv6calc_registries[] = { { REGISTRY_6BONE , "6BONE" , "REGISTRY_6BONE" }, { REGISTRY_IANA , "IANA" , "REGISTRY_IANA" }, { REGISTRY_APNIC , "APNIC" , "REGISTRY_APNIC" }, { REGISTRY_ARIN , "ARIN" , "REGISTRY_ARIN" }, { REGISTRY_RIPENCC , "RIPENCC" , "REGISTRY_RIPENCC" }, { REGISTRY_LACNIC , "LACNIC" , "REGISTRY_LACNIC" }, { REGISTRY_AFRINIC , "AFRINIC" , "REGISTRY_AFRINIC" }, { REGISTRY_6TO4 , "6TO4" , "REGISTRY_6TO4" }, { REGISTRY_RESERVED , "reserved" , "REGISTRY_RESERVED"}, { REGISTRY_UNKNOWN , "unknown" , "REGISTRY_UNKNOWN" } }; const int ipv6calc_registries_entries = MAXENTRIES_ARRAY(ipv6calc_registries); /* * function converts chars in a string to upcase * in : pointer to a string */ void string_to_upcase(char *string) { int i; if (strlen(string) > 0) { for (i = 0; i < (int) strlen(string); i++) { string[i] = toupper(string[i]); }; }; return; }; /* * function converts chars in a string to lowcase * in : pointer to a string */ void string_to_lowcase(char *string) { int i; if (strlen(string) > 0) { for (i = 0; i < (int) strlen(string); i++) { string[i] = tolower(string[i]); }; }; return; }; /* * reverse string * in : pointer to a string */ void string_to_reverse(char *string) { int i; char helpchar; size_t length; length = strlen(string); if (length < 2) { /* nothing to do */ return; }; for (i = 0; i < ( (int) (length >> 1)); i++) { helpchar = string[i]; string[i] = string[length - i - 1]; string[length - i - 1] = helpchar; }; return; }; /* * dotted-reverse string * in : pointer to a string */ void string_to_reverse_dotted(char *string, const size_t string_length) { char resultstring[IPV6CALC_STRING_MAX], tempstring[IPV6CALC_STRING_MAX]; char *token, *cptr, **ptrptr; int flag_first = 1; ptrptr = &cptr; /* clear result string */ snprintf(resultstring, sizeof(resultstring), "%s", ""); /* check for starting dot */ if ( string[0] == '.' ) { snprintf(tempstring, sizeof(tempstring), "%s.", resultstring); snprintf(resultstring, sizeof(resultstring), "%s", tempstring); }; token = strtok_r(string, ".", ptrptr); while (token != NULL) { if (flag_first == 1) { snprintf(tempstring, sizeof(tempstring), "%s%s", token, resultstring); flag_first = 0; } else { snprintf(tempstring, sizeof(tempstring), "%s.%s", token, resultstring); }; snprintf(resultstring, sizeof(resultstring), "%s", tempstring); token = strtok_r(NULL, ".", ptrptr); }; if ( string[strlen(string) - 1] == '.' ) { snprintf(tempstring, sizeof(tempstring), ".%s", resultstring); snprintf(resultstring, sizeof(resultstring), "%s", tempstring); }; snprintf(string, string_length, ".%s", resultstring); return; }; /* * function converts chars in a string to upcase * in : pointer to a string * ret: format number */ uint32_t libipv6calc_autodetectinput(const char *string) { uint32_t type = FORMAT_auto_noresult; int i, j = 0, result; unsigned int numdots = 0, numcolons = 0, numdigits = 0, numxdigits = 0, numdashes = 0, numspaces = 0, numslashes = 0, numalnums = 0, numchar_s = 0, numpercents = 0, numcolonsdouble = 0, xdigitlen_max = 0, xdigitlen_min = 0, xdl; char resultstring[IPV6CALC_STRING_MAX]; size_t length; ipv6calc_ipv4addr ipv4addr; length = strlen(string); if (length == 0) { /* input is empty */ goto END_libipv6calc_autodetectinput; }; ipv4addr_clearall(&ipv4addr); if (addr_to_ipv4addrstruct(string, NULL, 0, &ipv4addr) == 0) { type = FORMAT_ipv4addr; goto END_libipv6calc_autodetectinput; } xdl = 0; for (i = 0; i < (int) length; i++) { if (string[i] == '.') { numdots++; }; if (string[i] == ':') { numcolons++; if (i < (int) length + 1) { /* check for double colons */ if (string[i+1] == ':') { numcolonsdouble++; numcolons++; i++; }; }; }; if (string[i] == '-') { numdashes++; }; if (string[i] == '/') { numslashes++; }; if (string[i] == ' ') { numspaces++; }; if (string[i] == '%') { numpercents++; }; if (string[i] == 's') { numchar_s++; }; if (isdigit((int) string[i])) { numdigits++; }; if (isxdigit((int) string[i])) { numxdigits++; xdl++; } else { if (xdigitlen_max == 0 && xdigitlen_min == 0) { // init xdigitlen_max = xdl; xdigitlen_min = xdl; }; if (xdl > xdigitlen_max) { xdigitlen_max = xdl; }; if (xdl < xdigitlen_min) { xdigitlen_min = xdl; }; xdl = 0; }; if (isalnum((int) string[i])) { numalnums++; }; }; DEBUGPRINT_NA(DEBUG_libipv6calc, "Autodetection source:"); DEBUGPRINT_WA(DEBUG_libipv6calc, " numdots :%d", numdots); DEBUGPRINT_WA(DEBUG_libipv6calc, " numcolons :%d", numcolons); DEBUGPRINT_WA(DEBUG_libipv6calc, " numcolonsdouble:%d", numcolonsdouble); DEBUGPRINT_WA(DEBUG_libipv6calc, " numdashes :%d", numdashes); DEBUGPRINT_WA(DEBUG_libipv6calc, " numspaces :%d", numspaces); DEBUGPRINT_WA(DEBUG_libipv6calc, " numslashes :%d", numslashes); DEBUGPRINT_WA(DEBUG_libipv6calc, " numdigits :%d", numdigits); DEBUGPRINT_WA(DEBUG_libipv6calc, " numxdigits :%d", numxdigits); DEBUGPRINT_WA(DEBUG_libipv6calc, " numalnums :%d", numalnums); DEBUGPRINT_WA(DEBUG_libipv6calc, " numpercents :%d", numpercents); DEBUGPRINT_WA(DEBUG_libipv6calc, " numchar_s :%d", numchar_s); DEBUGPRINT_WA(DEBUG_libipv6calc, " xdigit len max :%d", xdigitlen_max); DEBUGPRINT_WA(DEBUG_libipv6calc, " xdigit len min :%d", xdigitlen_min); DEBUGPRINT_WA(DEBUG_libipv6calc, " length :%d", (int) length); if ( length == 20 && numdots == 0 && numcolons == 0 ) { /* probably a base85 one */ DEBUGPRINT_NA(DEBUG_libipv6calc, " check FORMAT_base85"); result = librfc1924_formatcheck(string, resultstring, sizeof(resultstring)); if ( result == 0 ) { /* ok: base85 */ type = FORMAT_base85; goto END_libipv6calc_autodetectinput; } else DEBUGPRINT_WA(DEBUG_libipv6calc, " check FORMAT_base85 not successful, result: %s", resultstring); }; if ( strncmp(string, "\\[", 2) == 0 ) { /* check for Bitstring label: \[x..../dd] */ DEBUGPRINT_NA(DEBUG_libipv6calc, " check FORMAT_bitstring"); result = librfc2874_formatcheck(string, resultstring, strlen(resultstring)); if ( result == 0 ) { /* ok: bitstring label */ type = FORMAT_bitstring; goto END_libipv6calc_autodetectinput; } else DEBUGPRINT_WA(DEBUG_libipv6calc, " check FORMAT_bitstring not successful, result: %s", resultstring); }; if (length == 32 && numxdigits == 32 && numdots == 0 && numcolons == 0) { /* ifinet6 xxxx..xxxx */ type = FORMAT_ifinet6; goto END_libipv6calc_autodetectinput; }; if (((length == 8 && numxdigits == 8) || (length == 7 && numxdigits == 7)) && numdots == 0 && numcolons == 0) { /* IPv4 hexadecimal: xxxxxxxx or xxxxxxx */ type = FORMAT_ipv4hex; goto END_libipv6calc_autodetectinput; }; if ((length >= 11 && length <= 17 && numxdigits >= 6 && numxdigits <= 12 && numdots == 0 && ( (numcolons == 5 && numdashes == 0 && numspaces == 0) || (numcolons == 0 && numdashes == 5 && numspaces == 0) || (numcolons == 0 && numdashes == 0 && numspaces == 5)) ) || (length == 13 && numcolons == 0 && numdashes == 1 && numspaces == 0 && numxdigits == 12) || (length == 12 && numcolons == 0 && numdashes == 0 && numspaces == 0 && numxdigits == 12) || (length == 14 && numdots == 2 && numxdigits ==12 && xdigitlen_min == 4 && xdigitlen_max == 4) ) { /* MAC 00:00:00:00:00:00 or 00-00-00-00-00-00 or "xx xx xx xx xx xx" or "xxxxxx-xxxxxx" or xxxxxxxxxxxx or xxxx.xxxx.xxxx */ if (length == 14 && numdots == 2 && numxdigits ==12 && xdigitlen_min == 4 && xdigitlen_max == 4) { // xxxx.xxxx.xxxx type = FORMAT_mac; DEBUGPRINT_NA(DEBUG_libipv6calc, "Autodetection found type: mac"); goto END_libipv6calc_autodetectinput; }; DEBUGPRINT_NA(DEBUG_libipv6calc, " check FORMAT_mac"); /* Check whether minimum 1 xdigit is between colons, dashes, spaces */ if (numcolons == 0 && numdashes == 1 && numspaces == 0 && numxdigits == 12) { /* Check xxxxxx-xxxxxx */ j = 0; for (i = 0; i < (int) length; i++) { if (isxdigit((int) string[i])) { j++; if ( j > 6 ) { /* more than 6 xdigits */ j = -1; break; }; continue; } else if (string[i] == '-' ) { if ( j == 0 ) { /* dash follow dash */ j = -1; break; }; j = 0; continue; }; /* normally not reached */ j = -1; break; }; } else if (numcolons == 0 && numdashes == 0 && numspaces == 0 && numxdigits == 12) { /* nothing more to check */ } else { j = 0; for (i = 0; i < (int) length; i++) { if (isxdigit((int) string[i])) { j++; if ( j > 2 ) { /* more than 2 xdigits */ j = -1; break; }; continue; } else if (string[i] == ':' || string[i] == '-' || string[i] == ' ') { if ( j == 0 ) { /* colon/dash/space follows colon/dash/space */ j = -1; break; }; j = 0; continue; }; /* normally not reached */ j = -1; break; }; }; /* end of if */ if ( j != -1 ) { type = FORMAT_mac; DEBUGPRINT_NA(DEBUG_libipv6calc, "Autodetection found type: mac"); goto END_libipv6calc_autodetectinput; }; }; if ((length >= 15 && length <= 23 && numxdigits >= 8 && numxdigits <= 16 && numdots == 0 && ( (numcolons == 7 && numdashes == 0 && numspaces == 0) || (numcolons == 0 && numdashes == 7 && numspaces == 0) || (numcolons == 0 && numdashes == 0 && numspaces == 7))) || (length == 16 && numcolons == 0 && numdashes == 0 && numspaces == 0 && numxdigits == 16)) { /* EUI-64 00:00:00:00:00:00:00:00 or 00-00-00-00-00-00-00-00 or "xx xx xx xx xx xx xx xx" or xxxxxxxxxxxxxxxx */ DEBUGPRINT_NA(DEBUG_libipv6calc, " check FORMAT_eui64"); if (numcolons == 0 && numdashes == 0 && numspaces == 0 && numxdigits == 16) { /* nothing more to check */ } else { j = 0; for (i = 0; i < (int) length; i++) { if (isxdigit((int) string[i])) { j++; if ( j > 2 ) { /* more than 2 xdigits */ j = -1; break; }; continue; } else if (string[i] == ':' || string[i] == '-' || string[i] == ' ') { if ( j == 0 ) { /* colon/dash/space follows colon/dash/space */ j = -1; break; }; j = 0; continue; }; /* normally not reached */ j = -1; break; }; }; /* end of if */ if ( j != -1 ) { type = FORMAT_eui64; DEBUGPRINT_NA(DEBUG_libipv6calc, "Autodetection found type: eui64"); goto END_libipv6calc_autodetectinput; }; }; if (numcolons == 0 && numdots > 0 && numslashes == 0 && numspaces == 0 && (numalnums + numdots) == length) { /* check for reverse nibble string */ DEBUGPRINT_NA(DEBUG_libipv6calc, " check FORMAT_revnibbels_arpa"); result = librfc1886_formatcheck(string, resultstring, sizeof(resultstring)); if ( result == 0 ) { /* ok: reverse nibble string */ type = FORMAT_revnibbles_arpa; goto END_libipv6calc_autodetectinput; } else DEBUGPRINT_WA(DEBUG_libipv6calc, " check FORMAT_revnibbels_arpa not successful, result: %s", resultstring); }; if ((numcolons == 3) && (numcolonsdouble == 0) && numdots == 0 && numslashes == 0 && numpercents == 0 && ((numcolons + numxdigits) == length)) { /* IID */ type = FORMAT_iid; goto END_libipv6calc_autodetectinput; }; if (numcolons != 0 && numdots <= 3 && numslashes <= 1 && ((numpercents == 0 && (numdots + numcolons + numxdigits + numslashes) == length) || (numpercents == 1 && (numdots + numcolons + numxdigits + numslashes + numpercents) <= length))) { /* hopefully an IPv6 address */ /* fe80::1 */ /* fe80::1%eth0 */ type = FORMAT_ipv6addr; goto END_libipv6calc_autodetectinput; }; if (numcolons == 0 && numdots == 2 && numslashes == 0 && numdashes >= 3 && ((numchar_s == 0 && (numdashes + numdots + numxdigits + 10) == length) || (numchar_s == 1 && (numdashes + numdots + numxdigits + numchar_s + 10) <= length))) { /* hopefully an IPv6 literal address (e.g. 2001-DB8--1.IPV6-LITERAL.NET) IPV6-LITERAL.NET has 10 chars which are not xdigit */ /* also supported with scope: fe80--218-8bff-fe17-a226s4.ipv6-literal.net */ type = FORMAT_ipv6literal; goto END_libipv6calc_autodetectinput; }; END_libipv6calc_autodetectinput: if (type != FORMAT_auto_noresult) { DEBUGPRINT_WA(DEBUG_libipv6calc, "Autodetection found type: 0x%08x", (unsigned int) type); } else { DEBUGPRINT_NA(DEBUG_libipv6calc, "Autodetection not successful"); }; return (type); }; /* * clear filter master structure * * in : *filter = filter structure */ void libipv6calc_filter_clear(s_ipv6calc_filter_master *filter_master) { ipv4addr_filter_clear(&filter_master->filter_ipv4addr); ipv6addr_filter_clear(&filter_master->filter_ipv6addr); macaddr_filter_clear(&filter_master->filter_macaddr); return; }; /* * clear filter sub structure db_cc * * in : *filter = filter structure */ void libipv6calc_filter_clear_db_cc(s_ipv6calc_filter_db_cc *filter_db_cc) { int i; filter_db_cc->active = 0; filter_db_cc->cc_must_have_max = 0; filter_db_cc->cc_may_not_have_max = 0; for (i = 0; i < IPV6CALC_FILTER_DB_CC_MAX; i++) { filter_db_cc->cc_must_have[i] = 0; filter_db_cc->cc_may_not_have[i] = 0; }; return; }; /* * clear filter sub structure db_asn * * in : *filter = filter structure */ void libipv6calc_filter_clear_db_asn(s_ipv6calc_filter_db_asn *filter_db_asn) { int i; filter_db_asn->active = 0; filter_db_asn->asn_must_have_max = 0; filter_db_asn->asn_may_not_have_max = 0; for (i = 0; i < IPV6CALC_FILTER_DB_ASN_MAX; i++) { filter_db_asn->asn_must_have[i] = 0; filter_db_asn->asn_may_not_have[i] = 0; }; return; }; /* * clear filter sub structure db_registry * * in : *filter = filter structure */ void libipv6calc_filter_clear_db_registry(s_ipv6calc_filter_db_registry *filter_db_registry) { int i; filter_db_registry->active = 0; filter_db_registry->registry_must_have_max = 0; filter_db_registry->registry_may_not_have_max = 0; for (i = 0; i < IPV6CALC_FILTER_DB_REGISTRY_MAX; i++) { filter_db_registry->registry_must_have[i] = 0; filter_db_registry->registry_may_not_have[i] = 0; }; return; }; /* * function parses ipv6calc filter expression * * in : pointer to a string * mod: master filter structure * ret: success */ int libipv6calc_filter_parse(const char *expression, s_ipv6calc_filter_master *filter_master) { char tempstring[IPV6CALC_STRING_MAX] = ""; char *charptr, *cptr, **ptrptr; ptrptr = &cptr; int r, token_used, result = 0; DEBUGPRINT_WA(DEBUG_libipv6calc, "called with: %s", expression); snprintf(tempstring, sizeof(tempstring), "%s", expression); /* split expression */ charptr = strtok_r(tempstring, ",", ptrptr); while (charptr != NULL) { token_used = 0; r = ipv4addr_filter_parse(&filter_master->filter_ipv4addr, charptr); if (r == 0) { token_used = 1; } else if (r == 2) { result = 1; ERRORPRINT_WA("Unrecognized filter token (ipv4.xxx): %s", charptr); }; r = ipv6addr_filter_parse(&filter_master->filter_ipv6addr, charptr); if (r == 0) { token_used = 1; } else if (r == 2) { result = 1; ERRORPRINT_WA("Unrecognized filter token (ipv6.xxx): %s", charptr); }; // r += macaddr_filter_parse(&filter_macaddr, charptr); // missing implementation /* overall check */ if ((token_used == 0) && (result != 1)) { result = 1; ERRORPRINT_WA("Unrecognized filter token (general): %s", charptr); }; charptr = strtok_r(NULL, ",", ptrptr); }; return (result); }; /* * function checks ipv6calc filter expression * * in: master filter structure * ret: success */ int libipv6calc_filter_check(s_ipv6calc_filter_master *filter_master) { int result = 0, r; DEBUGPRINT_NA(DEBUG_libipv6calc, "called"); r = ipv4addr_filter_check(&filter_master->filter_ipv4addr); if (r > 0) { result = 1; }; r = ipv6addr_filter_check(&filter_master->filter_ipv6addr); if (r > 0) { result = 1; }; if (result == 1) { ERRORPRINT_NA("filter check failed"); }; return (result); }; /* * return proper anonymization set by name * * in : *name = name of anonymization set * *ipv6calc_anon_set = pointer to anonymization set to be filled * return: 1=not found, 0=success */ int libipv6calc_anon_set_by_name(s_ipv6calc_anon_set *ipv6calc_anon_set, const char *name) { int i; if (strlen(name) == 0) { fprintf(stderr, "Name of anonymization set is empty\n"); return 1; }; DEBUGPRINT_WA(DEBUG_libipv6calc, "search for anonymization set with name: %s", name); for (i = 0; i < MAXENTRIES_ARRAY(ipv6calc_anon_set_list); i++) { DEBUGPRINT_WA(DEBUG_libipv6calc, "compare name: %s ? %s", name, ipv6calc_anon_set_list[i].name); if ((strcmp(name, ipv6calc_anon_set_list[i].name) == 0) || (strcmp(name, ipv6calc_anon_set_list[i].name_short) == 0)) { DEBUGPRINT_WA(DEBUG_libipv6calc, "hit name: %s = %s", name, ipv6calc_anon_set_list[i].name); memcpy(ipv6calc_anon_set, &ipv6calc_anon_set_list[i], sizeof(s_ipv6calc_anon_set)); return 0; }; }; return 1; }; /* * get name of anonymization settings * * in : s_ipv6calc_anon_set = anonymization set * return: char * */ const char *libipv6calc_anon_method_name(const s_ipv6calc_anon_set *ipv6calc_anon_set) { int i; for (i = 0; i < MAXENTRIES_ARRAY(ipv6calc_anon_methods); i++) { if (ipv6calc_anon_methods[i].method == ipv6calc_anon_set->method) { return(ipv6calc_anon_methods[i].name); break; }; }; return(NULL); }; /* * create string of anonymization settings * * in : *string = string to be filled * s_ipv6calc_anon_set = anonymization set * return: void */ void libipv6calc_anon_infostring(char *string, const int stringlength, const s_ipv6calc_anon_set *ipv6calc_anon_set) { const char *method_name = libipv6calc_anon_method_name(ipv6calc_anon_set); snprintf(string, stringlength, "set=%s,mask-ipv6=%d,mask-ipv4=%d,mask-eui64=%d,mask-mac=%d,method=%s", ipv6calc_anon_set->name, ipv6calc_anon_set->mask_ipv6, ipv6calc_anon_set->mask_ipv4, ipv6calc_anon_set->mask_eui64, ipv6calc_anon_set->mask_mac, (method_name == NULL ? "unknown" : method_name)); return; }; /* * check whether anonymization method is supported * * in : s_ipv6calc_anon_set = anonymization set * return: * 2: special check succeeded * 1: no special checks needed * 0: not supported */ int libipv6calc_anon_supported(const s_ipv6calc_anon_set *ipv6calc_anon_set) { /* check requirements */ if (ipv6calc_anon_set->method == ANON_METHOD_KEEPTYPEASNCC) { // check for support if (libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEASNCC_IPV4_REQ_DB | ANON_METHOD_KEEPTYPEASNCC_IPV6_REQ_DB) == 1) { return(2); } else { if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_CC) != 1) { fprintf(stderr, "ipv6calc anonymization method not supported, missing included/available database: IPv4->CountryCode\n"); }; if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV6_TO_CC) != 1) { fprintf(stderr, "ipv6calc anonymization method not supported, missing included/available database: IPv6->CountryCode\n"); }; if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_AS) != 1) { fprintf(stderr, "ipv6calc anonymization method not supported, missing included/available database: IPv4->AutonomousSystemNumber\n"); }; if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV6_TO_AS) != 1) { fprintf(stderr, "ipv6calc anonymization method not supported, missing included/available database: IPv6->AutonomousSystemNumber\n"); }; return(0); }; } else if (ipv6calc_anon_set->method == ANON_METHOD_KEEPTYPEGEONAMEID) { // check for support if (libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEGEONAMEID_IPV4_REQ_DB | ANON_METHOD_KEEPTYPEGEONAMEID_IPV6_REQ_DB) == 1) { return(2); } else { if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV4_TO_GEONAMEID) != 1) { fprintf(stderr, "ipv6calc anonymization method not supported, missing included/available database: IPv4->GeonameID\n"); }; if (libipv6calc_db_wrapper_has_features(IPV6CALC_DB_IPV6_TO_GEONAMEID) != 1) { fprintf(stderr, "ipv6calc anonymization method not supported, missing included/available database: IPv6->GeonameID\n"); }; return(0); }; } else { return(1); }; }; /* * return pointer to registry name by number */ const char *libipv6calc_registry_string_by_num(const int registry) { int j = -1, i; DEBUGPRINT_WA(DEBUG_libipv6calc, "Called with registry=%d", registry); for (i = 0; i < MAXENTRIES_ARRAY(ipv6calc_registries); i++ ) { if (ipv6calc_registries[i].number == registry) { j = i; break; }; }; if (j == -1) { fprintf(stderr, "ERROR - undefined registry number: %d (this should not happen)\n", registry); exit(1); }; return(ipv6calc_registries[j].token); }; /* * bit counter */ int libipv6calc_bitcount_uint32_t(const uint32_t value) { int i, count = 0; uint32_t mask = 0x1; for (i = 0; i < 32; i++) { if (value & mask) { count++; }; mask = mask << 1; }; return(count); }; /* * cleanup */ void libipv6calc_cleanup() { DEBUGPRINT_NA(DEBUG_libipv6calc, "called"); libipv4addr_cleanup(); libipv6calc_db_wrapper_cleanup(); }; /* * return library version numeric */ uint32_t libipv6calc_lib_version_numeric(void) { return(IPV6CALC_PACKAGE_VERSION_NUMERIC); }; /* * return library version as string */ const char *libipv6calc_lib_version_string(void) { return(IPV6CALC_PACKAGE_VERSION_STRING); }; /* * return API version numeric */ uint32_t libipv6calc_api_version_numeric(void) { return(IPV6CALC_API_VERSION_NUMERIC); }; /* * return API version as string */ const char *libipv6calc_api_version_string(void) { return(IPV6CALC_API_VERSION_STRING); }; ipv6calc-4.1.0/lib/libipv6calc.h000066400000000000000000000065601444154247200163560ustar00rootroot00000000000000/* * Project : ipv6calc * File : libipv6calc.h * Version : $Id: 1b35045c66c8642bf8ba04c9c4b7477c1823260d $ * Copyright : 2001-2021 by Peter Bieringer * * Information: * Header file for libipv6calc.c */ #ifndef _libipv6calc_h #define _libipv6calc_h 1 #include "ipv6calctypes.h" /* Registries (main registries must below 8 for anonymization mapping) */ #define REGISTRY_APNIC 0x02 #define REGISTRY_RIPENCC 0x03 #define REGISTRY_LACNIC 0x04 #define REGISTRY_AFRINIC 0x05 #define REGISTRY_ARIN 0x06 #define REGISTRY_6BONE 0x08 #define REGISTRY_IANA 0x09 #define REGISTRY_6TO4 0x0c #define REGISTRY_RESERVED 0x0e #define REGISTRY_UNKNOWN 0x0f /* some generic defines */ #define IPV6CALC_PROTO_IPV4 4 #define IPV6CALC_PROTO_IPV6 6 /* some generic macros */ // pack value using xor/mask/shift #define PACK_XMS(v, x, m, s) ((((v) ^ (x)) & (m)) << (s)) // unpack value using xor/mask/shift #define UNPACK_XMS(p, x, m, s) ((((p) >> (s)) ^ (x)) & (m)) // return 16-bit MSB from 32-bit #define U32_MSB16(v) ((v >> 16) & 0xffff) // return 16-bit LSB from 32-bit #define U32_LSB16(v) (v & 0xffff) // max entries of a const array #define MAXENTRIES_ARRAY(a) (signed long) (sizeof(a) / sizeof(a[0])) /* non-quiet print with args */ #define NONQUIETPRINT_WA(t, ...) if (ipv6calc_quiet == 0) { fprintf(stderr, t "\n", __VA_ARGS__); }; /* non-quiet print no args */ #define NONQUIETPRINT_NA(t) if (ipv6calc_quiet == 0) { fprintf(stderr, t "\n"); }; #define IPV6CALC_LIB_VERSION_CHECK_EXIT(version_numeric, version_string) \ if (version_numeric != libipv6calc_lib_version_numeric()) { \ ERRORPRINT_WA("Library version is not matching: has:%s required:%s", libipv6calc_lib_version_string(), version_string); \ exit(1); \ }; #endif // _libipv6calc_h /* references */ extern const s_ipv6calc_anon_set ipv6calc_anon_set_list[]; extern const int ipv6calc_anon_set_list_entries; extern const s_ipv6calc_anon_methods ipv6calc_anon_methods[]; extern const int ipv6calc_anon_methods_entries; extern const s_type2 ipv6calc_registries[]; extern const int ipv6calc_registries_entries; /* prototypes */ extern int ipv6calc_quiet; extern int ipv6calc_verbose; extern void string_to_upcase(char *string); extern void string_to_lowcase(char *string); extern void string_to_reverse(char *string); extern void string_to_reverse_dotted(char *string, const size_t string_length); extern uint32_t libipv6calc_autodetectinput(const char *string); extern int libipv6calc_anon_set_by_name(s_ipv6calc_anon_set *ipv6calc_anon_set, const char* name); extern void libipv6calc_anon_infostring(char* string, const int stringlength, const s_ipv6calc_anon_set *ipv6calc_anon_set); extern const char *libipv6calc_anon_method_name(const s_ipv6calc_anon_set *ipv6calc_anon_set); extern int libipv6calc_anon_supported(const s_ipv6calc_anon_set *ipv6calc_anon_set); extern const char *libipv6calc_registry_string_by_num(const int registry); extern int libipv6calc_bitcount_uint32_t(const uint32_t value); extern void libipv6calc_cleanup(); extern uint32_t libipv6calc_lib_version_numeric(void); extern const char *libipv6calc_lib_version_string(void); extern uint32_t libipv6calc_api_version_numeric(void); extern const char *libipv6calc_api_version_string(void); ipv6calc-4.1.0/lib/libipv6calc_filter.h000066400000000000000000000022731444154247200177200ustar00rootroot00000000000000/* * Project : ipv6calc * File : libipv6calc_filter.h * Version : $Id: 44f59eee2379301631110a5b2973b3cca4133b1f $ * Copyright : 2021-2021 by Peter Bieringer * License : GPLv2 * * Information: * Header file for libipv6calc filter implementation */ #ifndef _libipv6calc_filter_h_ #define _libipv6calc_filter_h_ #include "libipv4addr.h" #include "libipv6addr.h" #include "libmac.h" /* master filter structure */ typedef struct { s_ipv6calc_filter_ipv4addr filter_ipv4addr; s_ipv6calc_filter_ipv6addr filter_ipv6addr; s_ipv6calc_filter_macaddr filter_macaddr; } s_ipv6calc_filter_master; #endif // _ipv6calc_typedefs_h_ extern int libipv6calc_filter_parse(const char *expression, s_ipv6calc_filter_master *filter_master); extern int libipv6calc_filter_check(s_ipv6calc_filter_master *filter_master); extern void libipv6calc_filter_clear(s_ipv6calc_filter_master *filter_master); extern void libipv6calc_filter_clear_db_cc(s_ipv6calc_filter_db_cc *filter_db_cc); extern void libipv6calc_filter_clear_db_asn(s_ipv6calc_filter_db_asn *filter_db_asn); extern void libipv6calc_filter_clear_db_registry(s_ipv6calc_filter_db_registry *filter_db_registry); ipv6calc-4.1.0/lib/libipv6calcdebug.h000066400000000000000000000057071444154247200173670ustar00rootroot00000000000000/* * Project : ipv6calc/lib * File : libipv6calcdebug.h * Version : $Id: 4c54d967102db09a097060935324ecc97cffa5af $ * Copyright : 2002-2019 by Peter Bieringer * * Information: * Debug information */ #ifndef _libipv6calcdebug_h_ #define _libipv6calcdebug_h_ #define DEBUG_ipv6calc_ALL -1 //reserved for debug levels of dedicated binary 0x00000001l //reserved for debug levels of dedicated binary 0x00000002l //reserved for debug levels of dedicated binary 0x00000004l #define DEBUG_ipv6calcoptions 0x00000008l #define DEBUG_libipv6calc 0x00000010l #define DEBUG_libipv6addr 0x00000020l #define DEBUG_libipv4addr 0x00000040l #define DEBUG_libipv6calctypes 0x00000080l #define DEBUG_librfc3041 0x00000100l #define DEBUG_librfc1884 0x00000200l #define DEBUG_librfc2874 0x00000400l #define DEBUG_librfc1886 0x00000800l #define DEBUG_librfc3056 0x00001000l #define DEBUG_libifinet6 0x00002000l #define DEBUG_libieee 0x00004000l #define DEBUG_libeui64 0x00008000l #define DEBUG_libmac 0x00010000l #define DEBUG_libipaddr 0x00020000l #define DEBUG_libipv6calc_db_wrapper 0x00100000l #define DEBUG_libipv6calc_db_wrapper_GeoIP 0x00200000l #define DEBUG_libipv6calc_db_wrapper_GeoIP2 0x00200000l #define DEBUG_libipv6calc_db_wrapper_IP2Location 0x00400000l #define DEBUG_libipv6calc_db_wrapper_GeoIP_verbose 0x00800000l #define DEBUG_libipv6addr_iidrandomdetection 0x01000000l #define DEBUG_libipv6addr_anonymization_unknown_break 0x02000000l #define DEBUG_libipv6calc_db_wrapper_DBIP 0x10000000l #define DEBUG_libipv6calc_db_wrapper_DBIP2 0x10000000l #define DEBUG_libipv6calc_db_wrapper_External 0x20000000l #define DEBUG_libipv6calc_db_wrapper_BuiltIn 0x40000000l #define DEBUG_libipv6calc_db_wrapper_MMDB 0x80000000l /* debug print with args */ #define DEBUGPRINT_WA(d, t, ...) \ if ((ipv6calc_debug & (d)) != 0) { \ if (ipv6calc_debug == DEBUG_ipv6calc_ALL) { \ fprintf(stderr, "%s/%s:%d[0x%08lx]: " t "\n", __FILE__, __func__, __LINE__, d, __VA_ARGS__); \ } else { \ fprintf(stderr, "%s/%s:%d: " t "\n", __FILE__, __func__, __LINE__, __VA_ARGS__); \ }; \ }; /* debug print no args */ #define DEBUGPRINT_NA(d, t) \ if ((ipv6calc_debug & (d)) != 0) { \ if (ipv6calc_debug == DEBUG_ipv6calc_ALL) { \ fprintf(stderr, "%s/%s:%d[0x%08lx]: " t "\n", __FILE__, __func__, __LINE__, d); \ } else { \ fprintf(stderr, "%s/%s:%d: " t "\n", __FILE__, __func__, __LINE__); \ }; \ }; /* error print with args */ #define ERRORPRINT_WA(t, ...) \ fprintf(stderr, "%s/%s:%d: " t "\n", __FILE__, __func__, __LINE__, __VA_ARGS__); /* error print no args */ #define ERRORPRINT_NA(t) \ fprintf(stderr, "%s/%s:%d: " t "\n", __FILE__, __func__, __LINE__); /* begin/end of debug section */ #define DEBUGSECTION_BEGIN(d) if ((ipv6calc_debug & (d)) != 0) { #define DEBUGSECTION_ELSE } else { #define DEBUGSECTION_END }; #endif /* global debug value */ extern long int ipv6calc_debug; ipv6calc-4.1.0/lib/libmac.c000066400000000000000000000223271444154247200154010ustar00rootroot00000000000000/* * Project : ipv6calc * File : libmac.c * Version : $Id: 1919e345cb70cb21c1e324e12563dec527b03fd2 $ * Copyright : 2001-2019 by Peter Bieringer * * Information: * Function library MAC address handling */ #include #include #include #include "libipv6calc.h" #include "libmac.h" #include "libieee.h" #include "ipv6calctypes.h" #include "libipv6calc.h" #include "libipv6calcdebug.h" static char ChSet[] = "0123456789abcdefABCDEF:- ."; /* function 48-bit MAC address to MACaddr_structure * * in : *addrstring = MAC address * out: *resultstring = result * ret: ==0: ok, !=0: error */ int mac_to_macaddrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_macaddr *macaddrp) { int retval = 1, result, i, ccolons = 0, cdashes = 0, cspaces = 0, cdots = 0; size_t cnt; int temp[6]; /* check length */ if ( ( strlen(addrstring) < 11 ) || ( strlen(addrstring) > 17 ) ) { snprintf(resultstring, resultstring_length, "Error in given 48-bit MAC address, has not 11 to 17 chars!"); retval = 1; return (retval); }; /* check for hex chars and ":"/"-"/" " only content */ cnt = strspn(addrstring, ChSet); if ( cnt < strlen(addrstring) ) { snprintf(resultstring, resultstring_length, "Illegal character in given MAC address '%s' on position %d (%c)!", addrstring, (int) cnt+1, addrstring[cnt]); retval = 1; return (retval); }; /* count ":" or "-" or " " or " " must be 5 or 1 x "-" */ for (i = 0; i < (int) strlen(addrstring); i++) { if (addrstring[i] == ':') { ccolons++; } else if (addrstring[i] == '-') { cdashes++; } else if (addrstring[i] == ' ') { cspaces++; } else if (addrstring[i] == '.') { cdots++; }; }; if ( ! ( (ccolons == 5 && cdashes == 0 && cspaces == 0 && cdots == 0) || (ccolons == 0 && cdashes == 5 && cspaces == 0 && cdots == 0) || (ccolons == 0 && cdashes == 0 && cspaces == 5 && cdots == 0) || (ccolons == 0 && cdashes == 0 && cspaces == 0 && cdots == 2) || (ccolons == 0 && cdashes == 1 && cspaces == 0 && strlen(addrstring) == 13 && cdots == 0) || (ccolons == 0 && cdashes == 0 && cspaces == 0 && strlen(addrstring) == 12 && cdots == 0)) ) { snprintf(resultstring, resultstring_length, "Error in given MAC address, '%s' is not valid (number of colons/dashes/spaces is not 5 or number of dashes is not 1)!", addrstring); retval = 1; return (retval); }; /* scan address into array */ if ( ccolons == 5 ) { result = sscanf(addrstring, "%x:%x:%x:%x:%x:%x", &temp[0], &temp[1], &temp[2], &temp[3], &temp[4], &temp[5]); } else if ( cdashes == 5 ) { result = sscanf(addrstring, "%x-%x-%x-%x-%x-%x", &temp[0], &temp[1], &temp[2], &temp[3], &temp[4], &temp[5]); } else if ( cdashes == 1 ) { result = sscanf(addrstring, "%2x%2x%2x-%2x%2x%2x", &temp[0], &temp[1], &temp[2], &temp[3], &temp[4], &temp[5]); } else if ( cspaces == 5 ) { result = sscanf(addrstring, "%x %x %x %x %x %x", &temp[0], &temp[1], &temp[2], &temp[3], &temp[4], &temp[5]); } else if ( cdots == 2 ) { result = sscanf(addrstring, "%2x%2x.%2x%2x.%2x%2x", &temp[0], &temp[1], &temp[2], &temp[3], &temp[4], &temp[5]); } else if ( cdashes == 0 ) { result = sscanf(addrstring, "%2x%2x%2x%2x%2x%2x", &temp[0], &temp[1], &temp[2], &temp[3], &temp[4], &temp[5]); } else { snprintf(resultstring, resultstring_length, "Error in given MAC address, unexpected failure on scanning '%s'!", addrstring); retval = 1; return (retval); }; if ( result != 6 ) { snprintf(resultstring, resultstring_length, "Error in given MAC address, splitting of '%s' returns %d items instead of 6!", addrstring, result); retval = 1; return (retval); }; /* check address words range */ for ( i = 0; i <= 5; i++ ) { if ( ( temp[i] < 0x0 ) || ( temp[i] > 0xff ) ) { snprintf(resultstring, resultstring_length, "Error in given MAC address, '%s' is not valid on position %d!", addrstring, i); retval = 1; return (retval); }; }; /* copy address */ for ( i = 0; i <= 5; i++ ) { macaddrp->addr[i] = (uint8_t) temp[i]; }; macaddrp->flag_valid = 1; retval = 0; return (retval); }; /* compatible name */ int addr_to_macaddrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_macaddr *macaddrp) { return (mac_to_macaddrstruct(addrstring, resultstring, resultstring_length, macaddrp)); }; /* * clear MACaddr * * mod: *addrstring = MAC address */ void mac_clear(ipv6calc_macaddr *macaddrp) { int i; for ( i = 0; i <= 5; i++ ) { macaddrp->addr[i] = 0; }; return; }; /* * clear MACaddr_structure * * mod: *addrstring = MAC address */ void mac_clearall(ipv6calc_macaddr *macaddrp) { mac_clear(macaddrp); /* Clear valid flag */ macaddrp->flag_valid = 0; return; }; /* * stores the macaddr structure in a string * * in: macaddr = MAC address structure * out: *resultstring = MAC address string * ret: ==0: ok, !=0: error */ int macaddrstruct_to_string(const ipv6calc_macaddr *macaddrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { char tempstring[IPV6CALC_STRING_MAX]; /* address */ snprintf(tempstring, sizeof(tempstring), "%02x:%02x:%02x:%02x:%02x:%02x", (unsigned int) macaddrp->addr[0], (unsigned int) macaddrp->addr[1], (unsigned int) macaddrp->addr[2], (unsigned int) macaddrp->addr[3], (unsigned int) macaddrp->addr[4], (unsigned int) macaddrp->addr[5]); if ( (formatoptions & FORMATOPTION_machinereadable) != 0 ) { snprintf(resultstring, resultstring_length, "MAC=%s", tempstring); } else { snprintf(resultstring, resultstring_length, "%s", tempstring); }; return(0); }; /* compatible name */ int libmacaddr_macaddrstruct_to_string(const ipv6calc_macaddr *macaddrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { return (macaddrstruct_to_string(macaddrp, resultstring, resultstring_length, formatoptions)); }; /* * clear filter MAC address * * in : *filter = filter structure */ void macaddr_filter_clear(s_ipv6calc_filter_macaddr *filter) { filter->active = 0; filter->typeinfo_must_have = 0; return; }; /* * filter MAC address * * in : *macaddrp = MAC address structure * in : *filter = filter structure * ret: 0=match 1=not match */ int macaddr_filter(const ipv6calc_macaddr *macaddrp, const s_ipv6calc_filter_macaddr *filter) { // still missing implementation if (sizeof(filter) == 0) { }; // make compiler happy (avoid unused "...") if (sizeof(macaddrp) == 0) { }; // make compiler happy (avoid unused "...") return 1; }; /* * anonymize MAC address * * in : *macaddrp = MAC address structure * mask = number of bits of mask * ret: */ void libmacaddr_anonymize(ipv6calc_macaddr *macaddrp, const s_ipv6calc_anon_set *ipv6calc_anon_set_p) { int mask = 0, i, j; uint8_t bit_ul = 0; /* anonymize MAC address according to settings */ DEBUGPRINT_WA(DEBUG_libmac, "called: EUI-48=%06x%06x method=%d", EUI48_00_23(macaddrp->addr), EUI48_24_47(macaddrp->addr), ipv6calc_anon_set_p->method); if (ipv6calc_anon_set_p->mask_autoadjust == 1) { DEBUGPRINT_NA(DEBUG_libmac, "mask-autoadjust is set, autoselect proper mask"); if ((macaddrp->addr[0] & 0x2) == 0) { // global address mask = 24; if (libieee_check_oui36_iab(EUI48_00_23(macaddrp->addr)) == 1) { // OUI-36/IAB mask += 12; // increase by 12 bits DEBUGPRINT_WA(DEBUG_libmac, "EUI-48 contains OUI-36/IAB, change mask: %d", mask); } else if (libieee_check_oui28(EUI48_00_23(macaddrp->addr)) == 1) { // OUI-28 mask += 4; // increase by 4 bits DEBUGPRINT_WA(DEBUG_libmac, "EUI-48 contains OUI-28, change mask: %d", mask); }; DEBUGPRINT_WA(DEBUG_libmac, "EUI-48 is a global one, source of mask: automagic: %d", mask); } else { // local address, honor mask_mac mask = ipv6calc_anon_set_p->mask_mac; DEBUGPRINT_WA(DEBUG_libmac, "EUI-48 is a local one, source of mask: mask-iid option: %d", mask); }; if (ipv6calc_anon_set_p->mask_mac > mask) { mask = ipv6calc_anon_set_p->mask_mac; DEBUGPRINT_WA(DEBUG_libmac, "specified mask is higher than autoselected one, change to specified: %d", mask); }; } else { DEBUGPRINT_WA(DEBUG_libmac, "mask-autoadjust is not set, use always mask: %d", mask); mask = ipv6calc_anon_set_p->mask_mac; }; DEBUGPRINT_WA(DEBUG_libmac, "zeroize EUI-48 with masked bits: %d", mask); // save universal/local bit bit_ul = macaddrp->addr[0] & 0x02; if (mask == 48) { // nothing to do } else if (mask > 0) { j = mask >> 3; for (i = 5; i >= 0; i--) { DEBUGPRINT_WA(DEBUG_libmac, "zeroize EUI-48: mask=%02d i=%d j=%d", mask, i, j); if (j < i) { DEBUGPRINT_WA(DEBUG_libmac, "zeroize EUI-48: byte %d", i); macaddrp->addr[i] = 0x00; } else if (j == i) { DEBUGPRINT_WA(DEBUG_libmac, "zeroize EUI-48: mask byte %d with %02x (offset: %d)", i, (0xff00 >> (mask % 0x8)) & 0xff, (mask % 0x8)); macaddrp->addr[i] &= (0xff00 >> (mask % 0x8)) & 0xff; } else { DEBUGPRINT_NA(DEBUG_libmac, "zeroize EUI-48: finished"); break; }; }; } else { mac_clear(macaddrp); }; // restore universal/local bit macaddrp->addr[0] = (macaddrp->addr[0] & 0xfd) | bit_ul; DEBUGPRINT_WA(DEBUG_libmac, "anonymization finished, return: %06x%06x", EUI48_00_23(macaddrp->addr), EUI48_24_47(macaddrp->addr)); return; }; ipv6calc-4.1.0/lib/libmac.h000066400000000000000000000032411444154247200154000ustar00rootroot00000000000000/* * Project : ipv6calc * File : libmac.h * Version : $Id: 860f35647868bb753a510b3c596e5bec9943fb84 $ * Copyright : 2001-2014 by Peter Bieringer * * Information: * Header file for libmac.c */ #ifndef _libmac_h #define _libmac_h 1 #include "libipv6calc.h" /* typedefs */ typedef struct { uint8_t addr[6]; /* MAC address in 6x 8 bit */ int flag_valid; /* address structure filled */ } ipv6calc_macaddr; typedef struct { int active; uint32_t typeinfo_must_have; /* others coming next */ } s_ipv6calc_filter_macaddr; #define EUI48_00_23(x) ((x[0] << 16) | (x[1] << 8) | x[2]) #define EUI48_24_47(x) ((x[3] << 16) | (x[4] << 8) | x[5]) #endif /* prototypes */ extern int mac_to_macaddrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_macaddr *macaddrp); extern int addr_to_macaddrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_macaddr *macaddrp); // compatible name extern int macaddrstruct_to_string(const ipv6calc_macaddr *macaddrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions); extern int libmacaddr_macaddrstruct_to_string(const ipv6calc_macaddr *macaddrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions); // compatible name extern void mac_clearall(ipv6calc_macaddr *macaddrp); extern int macaddr_filter(const ipv6calc_macaddr *macaddrp, const s_ipv6calc_filter_macaddr *filter); extern void macaddr_filter_clear(s_ipv6calc_filter_macaddr *filter); extern void libmacaddr_anonymize(ipv6calc_macaddr *macaddrp, const s_ipv6calc_anon_set *ipv6calc_anon_set_p); ipv6calc-4.1.0/lib/librfc1884.c000066400000000000000000000244051444154247200157370ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc1884.c * Version : $Id: ffb431b91732fb947c3da6fa6a6a5de0bfecfe07 $ * Copyright : 2001-2021 by Peter Bieringer * * Information: * Function library for conversions defined in RFC 1884 and later (RFC 4291, RFC 5952) */ #include #include #include #include "libipv6calcdebug.h" #include "libipv6addr.h" #include "libipv6calc.h" #include "librfc1884.h" #include "ipv6calctypes.h" /* * function decompress a given IPv6 address (reverse RFC 1884) * * in : *addrstring = IPv6 address * out: *resultstring = result * ret: ==0: ok, !=0: error * * Based on code in from 'ircd' */ int compaddr_to_uncompaddr(const char *addrstring, char *resultstring, const size_t resultstring_length) { int retval = 1, cnt; char *cp, *op, *strp; char tempstring[IPV6CALC_STRING_MAX]; DEBUGPRINT_WA(DEBUG_librfc1884, "got input: %s", addrstring); snprintf(tempstring, sizeof(tempstring), "%s", addrstring); strp = strstr(tempstring, "::"); if (strp) { DEBUGPRINT_NA(DEBUG_librfc1884, "found '::' in IPv6 address"); /* check for additional "::" occurrence - not allowed! */ if (strstr(strp+1, "::")) { snprintf(resultstring, resultstring_length, "%s", "More than 1 block of 2 colons in address is not allowed!"); retval = 1; return (retval); }; cnt = 0; cp = tempstring; op = resultstring; while (*cp != '\0') { if (*cp == ':') cnt += 1; if (*cp++ == '.') { cnt += 1; break; }; }; cp = tempstring; while (*cp != '\0') { *op++ = *cp++; if (*(cp-1) == ':' && *cp == ':') { DEBUGPRINT_WA(DEBUG_librfc1884, "cnt: %d", cnt); if ((cp-1) == tempstring) { DEBUGPRINT_WA(DEBUG_librfc1884, "fill one '0:' (%d)", cnt); op--; *op++ = '0'; *op++ = ':'; }; if (cnt < 8) { DEBUGPRINT_WA(DEBUG_librfc1884, "fill one '0:' (%d)", cnt); *op++ = '0'; } else if (cnt == 8) { DEBUGPRINT_WA(DEBUG_librfc1884, "replace ':' by '0' (%d)", cnt); op--; }; while (cnt++ < 7) { DEBUGPRINT_WA(DEBUG_librfc1884, "fill one ':0' (%d)", cnt); *op++ = ':'; *op++ = '0'; }; }; }; if (*(op-1)==':') *op++ = '0'; *op = '\0'; DEBUGPRINT_WA(DEBUG_librfc1884, "result: %s", resultstring); } else { snprintf(resultstring, resultstring_length, "%s", addrstring); DEBUGPRINT_NA(DEBUG_librfc1884, "address is not in compressed format"); }; retval = 0; return (retval); }; /* * function IPv6addrstruct to compressed format (RFC 1884) * * compress the biggest '0' block, leading has precedence * * in : *addrstring = IPv6 address * out: *resultstring = result * ret: ==0: ok, !=0: error */ int ipv6addrstruct_to_compaddr(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length) { int retval = -1; uint32_t formatoptions = FORMATOPTION_printlowercase; /* old style compatibility */ retval = librfc1884_ipv6addrstruct_to_compaddr(ipv6addrp, resultstring, resultstring_length, formatoptions); return (retval); }; int librfc1884_ipv6addrstruct_to_compaddr(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { char tempstring[IPV6CALC_STRING_MAX], temp2string[IPV6CALC_STRING_MAX]; int retval = 1; int zstart = -1, zend = -1, tstart = -1, tend = -1, i, w_max = 7; unsigned int s; DEBUGPRINT_WA(DEBUG_librfc1884, "typeinfo of IPv6 address: %08x", (unsigned int) ipv6addrp->typeinfo); if ( (ipv6addrp->typeinfo & IPV6_ADDR_COMPATv4) != 0 ) { /* compatv4 address */ DEBUGPRINT_NA(DEBUG_librfc1884, "IPV6_ADDR_COMPATv4 type - fast conversion"); snprintf(tempstring, sizeof(tempstring), "::%u.%u.%u.%u", (unsigned int) ipv6addrp->in6_addr.s6_addr[12], (unsigned int) ipv6addrp->in6_addr.s6_addr[13], (unsigned int) ipv6addrp->in6_addr.s6_addr[14], (unsigned int) ipv6addrp->in6_addr.s6_addr[15]); retval = 0; } else if ( (ipv6addrp->typeinfo & IPV6_ADDR_MAPPED) != 0 ) { /* mapped address */ DEBUGPRINT_NA(DEBUG_librfc1884, "IPV6_ADDR_MAPPED type - fast conversion"); snprintf(tempstring, sizeof(tempstring), "::%x:%u.%u.%u.%u", (unsigned int) ipv6addr_getword(ipv6addrp, 5), (unsigned int) ipv6addrp->in6_addr.s6_addr[12], (unsigned int) ipv6addrp->in6_addr.s6_addr[13], (unsigned int) ipv6addrp->in6_addr.s6_addr[14], (unsigned int) ipv6addrp->in6_addr.s6_addr[15]); retval = 0; } else if ( (ipv6addr_getdword(ipv6addrp, 0) == 0) && (ipv6addr_getdword(ipv6addrp, 1) == 0) && (ipv6addr_getdword(ipv6addrp, 2) == 0) && (ipv6addr_getdword(ipv6addrp, 3) == 0) ) { /* unspecified address */ DEBUGPRINT_NA(DEBUG_librfc1884, "unspecified address - fast conversion"); snprintf(tempstring, sizeof(tempstring), "::"); retval = 0; } else if ( (ipv6addr_getdword(ipv6addrp, 0) == 0) && (ipv6addr_getdword(ipv6addrp, 1) == 0) && (ipv6addr_getdword(ipv6addrp, 2) == 0) && (ipv6addr_getdword(ipv6addrp, 3) == 1) ) { /* loopback address */ DEBUGPRINT_NA(DEBUG_librfc1884, "loopback - fast conversion"); snprintf(tempstring, sizeof(tempstring), "::1"); retval = 0; } else { /* normal address */ if ( ((ipv6addrp->typeinfo & IPV6_ADDR_IID_32_63_HAS_IPV4) != 0) && ((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_IID) == 0)) { w_max = 5; }; DEBUGPRINT_NA(DEBUG_librfc1884, "normal address, detect '0' blocks now"); for ( i = 0; i <= w_max; i++ ) { if ( ipv6addr_getword(ipv6addrp, (unsigned int) i) == 0 ) { /* found a '0' */ DEBUGPRINT_WA(DEBUG_librfc1884, "Found '0' in word '%d'", i); if ( tstart == -1 ) { /* possible starting '0' block */ DEBUGPRINT_WA(DEBUG_librfc1884, "Found a possible '0' starting block at '%d'", i); tstart = i; }; } else { /* end of a '0' block */ DEBUGPRINT_WA(DEBUG_librfc1884, "Found non '0' in word '%d'", i); if ( tstart != -1 ) { tend = i - 1; if ( ( tend - tstart ) >= 1 ) { /* ok, more than one 16-bit block with '0' */ DEBUGPRINT_WA(DEBUG_librfc1884, "Found '0' blocks from '%d' to '%d' with length '%d'", tstart, tend, tend - tstart + 1); if ( zstart < 0 ) { /* no other block before, init */ zstart = tstart; zend = tend; DEBUGPRINT_WA(DEBUG_librfc1884, "First found '0' block from '%d' to '%d' with length '%d'", zstart, zend, zend - zstart + 1); } else if ( ( zend - zstart ) < ( tend - tstart ) ) { /* ok, bigger block found */ zstart = tstart; zend = tend; DEBUGPRINT_WA(DEBUG_librfc1884, "Found bigger '0' block from '%d' to '%d' with length '%d'", zstart, zend, zend - zstart + 1); } else { DEBUGPRINT_NA(DEBUG_librfc1884, "This '0' block is not bigger than the last one - skip"); }; }; tstart = -1; tend = -1; }; }; }; /* cleanup */ if ( tstart >= 0 ) { tend = w_max; /* trailing '0' block */ if ( ( tend - tstart ) > 0 ) { /* ok, a block with 2 or more '0' */ if ( zstart < 0 ) { /* no other block before, init */ zstart = tstart; zend = tend; } else if ( ( zend - zstart ) < ( tend - tstart ) ) { /* ok, bigger block found */ zstart = tstart; zend = tend; }; }; }; if ( zstart != -1 ) { DEBUGPRINT_WA(DEBUG_librfc1884, "biggest '0' block is from word '%d' to '%d'", zstart, zend); } else { DEBUGPRINT_NA(DEBUG_librfc1884, "no '0' block found"); }; /* create string */ tempstring[0] = '\0'; for ( i = 0; i <= w_max; i++ ) { if ( i == zstart ) { DEBUGPRINT_WA(DEBUG_librfc1884, "start of '0' at '%d'", i); snprintf(temp2string, sizeof(temp2string), "%s:", tempstring); } else if ( i == 0 ) { DEBUGPRINT_WA(DEBUG_librfc1884, "normal start value at '%d' (%x)", i, (unsigned int) ipv6addr_getword(ipv6addrp, (unsigned int) i)); snprintf(temp2string, sizeof(temp2string), "%x", (unsigned int) ipv6addr_getword(ipv6addrp, (unsigned int) i)); } else if ( ( i > zend ) || ( i < zstart ) ) { snprintf(temp2string, sizeof(temp2string), "%s:%x", tempstring, (unsigned int) ipv6addr_getword(ipv6addrp, (unsigned int) i)); } else if ( ( i == 7 ) && ( zend == i )) { snprintf(temp2string, sizeof(temp2string), "%s:", tempstring); }; snprintf(tempstring, sizeof(tempstring), "%s", temp2string); }; if ( ((ipv6addrp->typeinfo & IPV6_ADDR_IID_32_63_HAS_IPV4) != 0) && ((ipv6addrp->typeinfo & IPV6_ADDR_ANONYMIZED_IID) == 0)) { /* append IPv4 address */ snprintf(temp2string, sizeof(temp2string), "%s:%u.%u.%u.%u", \ tempstring, \ (unsigned int) ipv6addrp->in6_addr.s6_addr[12], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[13], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[14], \ (unsigned int) ipv6addrp->in6_addr.s6_addr[15] \ ); snprintf(tempstring, sizeof(tempstring), "%s", temp2string); }; DEBUGPRINT_WA(DEBUG_librfc1884, "new method: '%s'", tempstring); retval = 0; }; if ( ( retval == 0 ) && ( ipv6addrp->flag_prefixuse == 1 ) && ((formatoptions & (FORMATOPTION_literal|FORMATOPTION_no_prefixlength)) == 0) ) { snprintf(resultstring, resultstring_length, "%s/%u", tempstring, (unsigned int) ipv6addrp->prefixlength); } else { if ((formatoptions & FORMATOPTION_literal) != 0) { /* replace : by - */ for (s = 0; s < strlen(tempstring); s++) { if (tempstring[s] == ':') { tempstring[s] = '-'; }; }; if (ipv6addrp->flag_scopeid) { snprintf(resultstring, resultstring_length, "%ss%s.ipv6-literal.net", tempstring, ipv6addrp->scopeid); } else { snprintf(resultstring, resultstring_length, "%s.ipv6-literal.net", tempstring); }; } else { if (ipv6addrp->flag_scopeid) { snprintf(resultstring, resultstring_length, "%s%%%s", tempstring, ipv6addrp->scopeid); } else { snprintf(resultstring, resultstring_length, "%s", tempstring); }; }; }; if ( (formatoptions & FORMATOPTION_printlowercase) != 0 ) { /* nothing to do */ } else if ( (formatoptions & FORMATOPTION_printuppercase) != 0 ) { string_to_upcase(resultstring); }; if ( (formatoptions & FORMATOPTION_machinereadable) != 0 ) { snprintf(temp2string, sizeof(temp2string), "IPV6=%s", resultstring); snprintf(resultstring, resultstring_length, "%s", temp2string); }; DEBUGPRINT_WA(DEBUG_librfc1884, "Result: '%s'", resultstring); return (retval); }; ipv6calc-4.1.0/lib/librfc1884.h000066400000000000000000000013231444154247200157360ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc1884.h * Version : $Id: baed1a3e9fa2c3c484df4ede0635f1ca0d012b97 $ * Copyright : 2001-2014 by Peter Bieringer * * Information: * Header file for librfc1884.c */ #include "libipv6addr.h" /* prototypes */ extern int compaddr_to_uncompaddr(const char *addrstring, char *resultstring, const size_t resultstring_length); extern int librfc1884_ipv6addrstruct_to_compaddr(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions); extern int ipv6addrstruct_to_compaddr(const ipv6calc_ipv6addr *ipv6addr, char *resultstring, const size_t resultstring_length); /* going obsolete */ ipv6calc-4.1.0/lib/librfc1886.c000066400000000000000000000304711444154247200157410ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc1886.c * Version : $Id: 4f186565385f82991d93dd6dee130de55acf1004 $ * Copyright : 2002-2021 by Peter Bieringer * * Information: * RFC 1886 conform reverse nibble format string * * Function to format a given address to reverse nibble-by-nibble ip6.int|arpa format * * Intention from the Perl program "ip6_int" written by Keith Owens * some hints taken from ifconfig.c (net-tools) * * Credits to: * Keith Owens * net-tools authors */ #include #include #include #include #include "libipv6calcdebug.h" #include "ipv6calctypes.h" #include "libipv6addr.h" #include "libipv6calc.h" #include "librfc1886.h" /* * converts IPv6addr_structure to a reverse nibble format string * * in : *ipv6addrp = IPv6 address structure * out: *resultstring = result * ret: ==0: ok, !=0: error */ int librfc1886_addr_to_nibblestring(ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions, const char *domain) { int retval = 1; unsigned int nibble; int bit_start, bit_end, nbit; char tempstring[IPV6CALC_STRING_MAX]; unsigned int nnibble, noctet; DEBUGPRINT_WA(DEBUG_librfc1886, "flag_prefixuse %d", (*ipv6addrp).flag_prefixuse); /* 20100909: take care of prefix length before printing the nibbles, but break old behavior */ /* 20140331: mask prefix only in case of no printsuffix,printstart,printend */ if ((*ipv6addrp).flag_prefixuse != 0 && ((formatoptions & (FORMATOPTION_printsuffix | FORMATOPTION_printstart | FORMATOPTION_printend)) == 0)) { ipv6addrstruct_maskprefix(ipv6addrp); }; if ( ((formatoptions & (FORMATOPTION_printprefix | FORMATOPTION_printsuffix | FORMATOPTION_printstart | FORMATOPTION_printend)) == 0 ) && ((*ipv6addrp).flag_prefixuse != 0) ) { /* simulate old behavior */ bit_start = 1; bit_end = (int) (*ipv6addrp).prefixlength; DEBUGPRINT_NA(DEBUG_librfc1886, "simulate old behavior"); } else if ( (*ipv6addrp).flag_startend_use != 0 ) { /* check start and end */ if ( (((*ipv6addrp).bit_start - 1) & 0x03) != 0 ) { snprintf(resultstring, resultstring_length, "Start bit number '%u' is not supported because of non-unique representation (value-1 must be dividable by 4)", (unsigned int) (*ipv6addrp).bit_start); retval = 1; return (retval); }; if ( ((*ipv6addrp).bit_end & 0x03) != 0 ) { snprintf(resultstring, resultstring_length, "End bit number '%u' is not supported because of non-unique representation (value must be dividable by 4)", (unsigned int) (*ipv6addrp).bit_end); retval = 1; return (retval); }; bit_start = (int) (*ipv6addrp).bit_start; bit_end = (int) (*ipv6addrp).bit_end; } else { bit_start = 1; bit_end = 128; }; DEBUGPRINT_WA(DEBUG_librfc1886, "start bit %d end bit %d", bit_start, bit_end); /* print out nibble format */ /* 127 is lowest bit, 0 is highest bit */ resultstring[0] = '\0'; for (nbit = bit_end - 1; nbit >= bit_start - 1; nbit = nbit - 4) { /* calculate octet (8 bit) */ noctet = ( ((unsigned int) nbit) & 0x78) >> 3; /* calculate nibble */ nnibble = ( ((unsigned int) nbit) & 0x04) >> 2; /* extract nibble */ nibble = ( (*ipv6addrp).in6_addr.s6_addr[noctet] & ( 0xf << (unsigned int) (4 * (1 - nnibble)) ) ) >> (unsigned int) ( 4 * (1 - nnibble)); DEBUGPRINT_WA(DEBUG_librfc1886, "bit: %d = noctet: %u, nnibble: %u, octet: %02x, value: %x", nbit, noctet, nnibble, (unsigned int) (*ipv6addrp).in6_addr.s6_addr[noctet], nibble); snprintf(tempstring, sizeof(tempstring), "%s%x", resultstring, nibble); if ((nbit < bit_start) && (bit_start != 1)) { /* don't print trailing "." on middle part end */ snprintf(resultstring, resultstring_length, "%s", tempstring); } else { snprintf(resultstring, resultstring_length, "%s.", tempstring); }; }; if (bit_start == 1) { snprintf(tempstring, sizeof(tempstring), "%s%s", resultstring, domain); }; snprintf(resultstring, resultstring_length, "%s", tempstring); if ( (formatoptions & FORMATOPTION_printuppercase) != 0 ) { string_to_upcase(resultstring); }; if ( (formatoptions & FORMATOPTION_printmirrored) != 0 ) { string_to_reverse_dotted(resultstring, resultstring_length); }; DEBUGPRINT_WA(DEBUG_librfc1886, "Print out: %s", resultstring); retval = 0; return (retval); }; /* * function a reverse nibble format string into IPv6addr_structure * * in : inputstring * mod: *ipv6addrp = IPv6 address structure * ret: ==0: ok, !=0: error */ int librfc1886_nibblestring_to_ipv6addrstruct(const char *inputstring, ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length) { int retval = 1; char tempstring[IPV6CALC_STRING_MAX], *token, *cptr, **ptrptr; int flag_tld = 0, flag_nld = 0, tokencounter = 0; int n, offset; unsigned int noctet, nibblecounter = 0; uint32_t xdigit; if ((strlen(inputstring) < 4) || (strlen(inputstring) > 73)) { /* min: .int */ /* max: f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.ip6.arpa. */ snprintf(resultstring, resultstring_length, "Error in given nibble string, has not 4 to 73 chars!"); return (1); }; ptrptr = &cptr; /* clear output structure */ ipv6addr_clearall(ipv6addrp); /* reverse copy of string */ snprintf(tempstring, sizeof(tempstring), "%s", inputstring); string_to_lowcase(tempstring); /* check string */ retval = librfc1886_formatcheck(tempstring, resultstring, resultstring_length); if (retval != 0) { return (1); }; string_to_reverse(tempstring); DEBUGPRINT_WA(DEBUG_librfc1886, "reverse copied string: %s", tempstring); /* run through nibbles */ token = strtok_r(tempstring, ".", ptrptr); while(token != NULL) { if (strcmp(token, "apra") == 0) { if (flag_tld == 0) { flag_tld = 1; goto NEXT_token_nibblestring_to_ipv6addrstruct; } else { snprintf(resultstring, resultstring_length, "Top level domain 'arpa' is in wrong place"); return (1); }; }; if (strcmp(token, "tni") == 0) { if (flag_tld == 0) { flag_tld = 1; goto NEXT_token_nibblestring_to_ipv6addrstruct; } else { snprintf(resultstring, resultstring_length, "Top level domain 'int' is in wrong place"); return (1); }; }; if (tokencounter == 1 && flag_tld == 1 && flag_nld == 0) { if (strcmp(token, "6pi") == 0) { flag_nld = 1; goto NEXT_token_nibblestring_to_ipv6addrstruct; } else { snprintf(resultstring, resultstring_length, "Next level domain 'ip6' is in wrong place or missing"); return (1); }; }; /* now proceed nibbles */ if (strlen(token) > 1) { string_to_reverse(token); snprintf(resultstring, resultstring_length, "Nibble '%s' on dot position %d (from right side) is longer than one char", token, tokencounter + 1); return (1); }; if (! isxdigit((int) token[0])) { snprintf(resultstring, resultstring_length, "Nibble '%s' on dot position %d (from right side) is not a valid hexdigit", token, tokencounter + 1); return (1); }; retval = sscanf(token, "%x", &xdigit); if (retval != 1) { snprintf(resultstring, resultstring_length, "Nibble '%s' on dot position %d (from right side) cannot be parsed", token, tokencounter + 1); return (1); }; if (xdigit > 0xf) { snprintf(resultstring, resultstring_length, "Nibble '%s' on dot position %d (from right side) is out of range", token, tokencounter + 1); return (1); }; noctet = nibblecounter >> 1; /* divided by 2 */ if (noctet > 15) { snprintf(resultstring, resultstring_length, "Too many nibbles"); return (1); }; if ( (nibblecounter & 0x01) != 0 ) { /* most significant bits */ (*ipv6addrp).in6_addr.s6_addr[noctet] = ((*ipv6addrp).in6_addr.s6_addr[noctet] & 0xf0) | xdigit; } else { /* least significant bits */ (*ipv6addrp).in6_addr.s6_addr[noctet] = ((*ipv6addrp).in6_addr.s6_addr[noctet] & 0x0f) | ((uint8_t) xdigit << 4); }; nibblecounter++; NEXT_token_nibblestring_to_ipv6addrstruct: token = strtok_r(NULL, ".", ptrptr); tokencounter++; }; ipv6addrp->flag_valid = 1; if ((flag_tld == 1) && (flag_nld == 1)) { // started with TLD and NLD, so from top ipv6addrp->flag_prefixuse = 1; ipv6addrp->prefixlength = (uint8_t) nibblecounter << 2; } else { ipv6addrp->flag_prefixuse = 1; ipv6addrp->prefixlength = 128 - ((uint8_t) nibblecounter << 2); // shift now to the right if (nibblecounter < 32) { // shift byte with offset to the right offset = 16 - (nibblecounter >> 1); if ( (nibblecounter & 0x01) != 0 ) { offset--; }; for (n = 15; n >= 15 - (int) (nibblecounter >> 1); n--) { (*ipv6addrp).in6_addr.s6_addr[n] = (*ipv6addrp).in6_addr.s6_addr[n - offset]; }; // clear prefix for (n = 0; n < offset; n++) { (*ipv6addrp).in6_addr.s6_addr[n] = 0; }; if ( (nibblecounter & 0x01) != 0 ) { // shift additional one nibble right for (n = 15; n >= 15 - (int) (nibblecounter >> 1); n--) { // save rightmost nibble xdigit = (*ipv6addrp).in6_addr.s6_addr[n] & 0xf; // shift by one nibble right (*ipv6addrp).in6_addr.s6_addr[n] = (*ipv6addrp).in6_addr.s6_addr[n] >> 4; if (n < 15) { // implant saved rightmost nibble on leftmost (*ipv6addrp).in6_addr.s6_addr[n + 1] |= xdigit << 4; }; }; }; }; }; retval = 0; return (retval); }; /* * checks for proper format of a nibble string * suffix has to be ip6.int or ip6.arpa * * in : string * ret: ==0: ok, !=0: error */ int librfc1886_formatcheck(const char *string, char *infostring, const size_t infostring_length) { int nibblecounter = 0, flag_tld = 0, flag_nld = 0, tokencounter = 0; char tempstring[IPV6CALC_STRING_MAX], *token, *cptr, **ptrptr; ptrptr = &cptr; infostring[0] = '\0'; /* clear string */ if (strlen(string) >= sizeof(tempstring)) { fprintf(stderr, "Input too long: %s\n", string); return (1); }; snprintf(tempstring, sizeof(tempstring), "%s", string); DEBUGPRINT_WA(DEBUG_librfc1886, "check %s", tempstring); string_to_reverse(tempstring); /* run through nibbles */ token = strtok_r(tempstring, ".", ptrptr); while(token != NULL) { DEBUGPRINT_WA(DEBUG_librfc1886, "check token: %s (tld: %d, nld: %d, tokencounter: %d)", token, flag_tld, flag_nld, tokencounter + 1); if (strcmp(token, "apra") == 0) { /* arpa (reverse) */ DEBUGPRINT_NA(DEBUG_librfc1886, "found: arpa"); if (flag_tld == 0 && tokencounter == 0) { DEBUGPRINT_NA(DEBUG_librfc1886, "found TLD: arpa"); flag_tld = 1; goto NEXT_librfc1886_formatcheck; } else { snprintf(infostring, infostring_length, "Top level domain 'arpa' is in wrong place"); return (1); }; }; if (strcmp(token, "tni") == 0) { /* int (reverse) */ DEBUGPRINT_NA(DEBUG_librfc1886, "found: int"); if (flag_tld == 0 && tokencounter == 0) { DEBUGPRINT_NA(DEBUG_librfc1886, "found TLD: int"); flag_tld = 1; goto NEXT_librfc1886_formatcheck; } else { snprintf(infostring, infostring_length, "Top level domain 'int' is in wrong place"); return (1); }; }; if (strcmp(token, "6pi") == 0) { /* ip6 (reverse) */ DEBUGPRINT_NA(DEBUG_librfc1886, "found: ip6"); if (tokencounter == 1 && flag_tld == 1 && flag_nld == 0) { DEBUGPRINT_NA(DEBUG_librfc1886, "found NLD: ip6"); flag_nld = 1; goto NEXT_librfc1886_formatcheck; } else { snprintf(infostring, infostring_length, "Next level domain 'ip6' is in wrong place or missing"); return (1); }; }; if ((flag_tld != 1) && (flag_nld != 1) && (strlen(string) < 7)) { snprintf(infostring, infostring_length, "Nibble string misses suffix ip6.int or ip6.arpa or is less than 7 chars long"); return (1); }; /* now proceed nibbles */ if (strlen(token) > 1) { string_to_reverse(token); snprintf(infostring, infostring_length, "Nibble '%s' on dot position %d (from right side) is longer than one char", token, tokencounter + 1); return (1); }; if (! isxdigit((int) token[0])) { snprintf(infostring, infostring_length, "Nibble '%s' on dot position %d (from right side) is not a valid hexdigit", token, tokencounter + 1); return (1); }; nibblecounter++; if (nibblecounter > 32) { snprintf(infostring, infostring_length, "Too many nibbles (more than 32)"); return (1); }; NEXT_librfc1886_formatcheck: token = strtok_r(NULL, ".", ptrptr); tokencounter++; }; DEBUGPRINT_WA(DEBUG_librfc1886, "check %s is ok", string); return (0); }; ipv6calc-4.1.0/lib/librfc1886.h000066400000000000000000000013401444154247200157370ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc1886.h * Version : $Id: 23af2e1ae2bdea37487a3986b65abebdc60b067a $ * Copyright : 2001-2014 by Peter Bieringer * * Information: * Header file for librfc1886.c */ #include "libipv6addr.h" /* prototypes */ extern int librfc1886_addr_to_nibblestring(ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions, const char *domain); extern int librfc1886_nibblestring_to_ipv6addrstruct(const char *inputstring, ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length); extern int librfc1886_formatcheck(const char *string, char *infostring, const size_t infostring_length); ipv6calc-4.1.0/lib/librfc1924.c000066400000000000000000000120501444154247200157230ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc1924.c * Version : $Id: 59164909b77cf84bff5ada31fbd203724e233af5 $ * Copyright : 2001-2019 by Peter Bieringer * and 2006 by Niko Tyni * * Information: * Function library for conversions defined in RFC 1924 * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; version 2 dated June, 1991. */ #include #include #include #include "libipv6calc.h" #include "libipv6addr.h" #include "librfc1924.h" /* * Base 85 (RFC 1924) encodings of IPv6 addresses */ static char librfc1924_charset[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '!', '#', '$', '%', '&', '(', ')', '*', '+', '-', ';', '<', '=', '>', '?', '@', '^', '_', '`', '{', '|', '}', '~', '\0' }; /* * to minimize work, we convert between base 85 and * base 65536 (2**16), as that's the biggest power of 2 * we can use and still stay within word size (32 bits) * * the conversions are done with the elemental 'long division' * algorithm, just with digits in strange bases */ void pk85(uint16_t *words, char *ret) { uint16_t buf[8]; /* working space */ uint32_t accu; int i,j; /* initialize the buffer */ for (i = 0; i < 8; i++) { buf[i] = words[i]; } /* do the division digit by digit */ for (i = 0; i < 20; i++) { accu = 0; for (j = 0; j < 8; j++) { accu = (accu << 16) + buf[j]; if (accu >= 85) { buf[j] = accu / 85; /* quotient */ accu = accu % 85; /* remainder */ } else { buf[j] = 0; } } /* reverse, as the least significant digit comes out first */ ret[19 - i] = librfc1924_charset[accu]; } ret[20] = '\0'; return; } void unpk85(char *b, uint16_t *ret) { uint32_t buf[20]; /* working space */ uint32_t accu; int i, j; /* initialize the buffer */ for (i = 0; i < 20; i++) { /* find the offset in the character table */ buf[i] = strchr(librfc1924_charset, b[i]) - librfc1924_charset; } /* do the division digit by digit */ for (i = 0; i < 8; i++) { accu = 0; for (j = 0; j < 20; j++) { accu = accu * 85 + buf[j]; if ((accu & 0xffff0000) != 0) { /* >= 2**16 */ buf[j] = accu >> 16; /* quotient */ accu = accu & 0xffff; /* remainder */ } else { buf[j] = 0; } } /* reverse, as the least significant digit comes out first */ ret[7 - i] = accu; } return; } /* * IPv6addr_structure to base85 format * * in : *addrstring = IPv6 address * out: *resultstring = result * ret: ==0: ok, !=0: error */ int ipv6addrstruct_to_base85(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length) { int retval = 1, i; uint16_t words[8]; char ret[21]; for (i=0; i < 8; i++) { words[i] = ipv6addr_getword(ipv6addrp, (unsigned int) i) ; }; /* convert */ pk85(words, ret); snprintf(resultstring, resultstring_length, "%s", ret); retval = 0; return (retval); }; /* function base85 format to IPv6addr_structure * * in : *addrstring = IPv6 address * out: *resultstring = result * ret: ==0: ok, !=0: error */ int base85_to_ipv6addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv6addr *ipv6addrp) { int retval = 1, i; char tempstring[IPV6CALC_STRING_MAX]; uint16_t result[8]; retval = librfc1924_formatcheck(addrstring, resultstring, resultstring_length); if (retval != 0) { /* format check fails */ return (1); }; if (strlen(addrstring) >= sizeof(tempstring)) { fprintf(stderr, "Input too long: %s\n", addrstring); return (1); }; snprintf(tempstring, sizeof(tempstring), "%s", addrstring); unpk85(tempstring, result); /* Clear IPv6 address structure */ ipv6addr_clear(ipv6addrp); /* fill IPv6 address structure */ for (i = 0; i < 8; i++) { ipv6addr_setword(ipv6addrp, (unsigned int) i, (unsigned int) result[i]); }; ipv6addr_settype(ipv6addrp); /* Set typeinfo */ ipv6addrp->flag_valid = 1; retval = 0; return (retval); }; /* * checks for proper format of a base85 string * * in : string * ret: ==0: ok, !=0: error */ int librfc1924_formatcheck(const char *string, char *infostring, const size_t infostring_length) { size_t length, cnt; /* clear result string */ infostring[0] = '\0'; length = strlen(string); /* check length */ if ( length != 20 ) { snprintf(infostring, infostring_length, "Error in given base85 formatted address, has not 20 chars!"); return (1); }; /* check for base85 chars only content */ cnt = strspn(string, librfc1924_charset); if ( cnt != 20 ) { snprintf(infostring, infostring_length, "Error in given base85 formatted address, illegal char on position %d (%c)!", (int) cnt + 1, string[cnt]); return (1); }; return (0); }; ipv6calc-4.1.0/lib/librfc1924.h000066400000000000000000000012331444154247200157310ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc1924.h * Version : $Id: e960f94c695627dc8f7448cdc1d32f6d99f4ada8 $ * Copyright : 2001-2014 by Peter Bieringer * * Information: * Header file for librfc1924.c */ #include "libipv6addr.h" /* prototypes */ extern int ipv6addrstruct_to_base85(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length); extern int base85_to_ipv6addrstruct(const char *addrstring, char *resultstring, const size_t resultstring_length, ipv6calc_ipv6addr *ipv6addrp); extern int librfc1924_formatcheck(const char *string, char *infostring, const size_t infostring_length); ipv6calc-4.1.0/lib/librfc2874.c000066400000000000000000000255741444154247200157470ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc2874.c * Version : $Id: 74d119dd98f9cd9df1cf7993edafa0c8fb106238 $ * Copyright : 2002-2014 by Peter Bieringer * * Information: * RFC 2874 conform addresses (A6/DNAME) bitstring labels */ #include #include #include #include #include "libipv6addr.h" #include "libipv6calc.h" #include "libipv6calcdebug.h" #include "librfc2874.h" #include "ipv6calctypes.h" /* * converts IPv6addr_structure to a bitstring label * * in : *ipv6addrp = IPv6 address structure * out: *resultstring = result * ret: ==0: ok, !=0: error */ int librfc2874_addr_to_bitstring(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions) { int retval = 1; unsigned int nibble; unsigned int noctet, nbit, nnibble, prefixlength, bit_start, bit_end; char tempstring[IPV6CALC_STRING_MAX]; if ( (*ipv6addrp).flag_startend_use != 0 ) { /* check start and end */ if ( (((*ipv6addrp).bit_start - 1) & 0x03) != 0 ) { snprintf(resultstring, resultstring_length, "Start bit number '%u' not dividable by 4 aren't supported because of non unique representation", (unsigned int) (*ipv6addrp).bit_start); retval = 1; return (retval); }; if ( ((*ipv6addrp).bit_end & 0x03 ) != 0 ) { snprintf(resultstring, resultstring_length, "End bit number '%u' not dividable by 4 aren't supported because of non unique representation", (unsigned int) (*ipv6addrp).bit_end); retval = 1; return (retval); }; bit_start = (unsigned int) (*ipv6addrp).bit_start; bit_end = (unsigned int) (*ipv6addrp).bit_end; } else { bit_start = 1; bit_end = 128; }; DEBUGPRINT_WA(DEBUG_librfc2874, "print from start bit to end bit: %u - %u", bit_start, bit_end); /* print out hex string format */ /* 127 is lowest bit, 0 is highest bit */ resultstring[0] = '\0'; for (nbit = bit_start - 1; nbit <= bit_end - 1; nbit = nbit + 4) { /* calculate octet (8 bit) */ noctet = (nbit & 0x78) >> 3; /* calculate nibble */ nnibble = (nbit & 0x04) >> 2; /* extract nibble */ nibble = ( (*ipv6addrp).in6_addr.s6_addr[noctet] & ( 0xf << (unsigned int) (4 * (1 - nnibble)) ) ) >> (unsigned int) ( 4 * (1 - nnibble)); DEBUGPRINT_WA(DEBUG_librfc2874, "bit: %u= noctet: %u, nnibble: %u, octet: %02x, value: %x", nbit, noctet, nnibble, (unsigned int) (*ipv6addrp).in6_addr.s6_addr[noctet], nibble); snprintf(tempstring, sizeof(tempstring), "%s%x", resultstring, nibble); snprintf(resultstring, resultstring_length, "%s", tempstring); DEBUGPRINT_WA(DEBUG_librfc2874, "Result after step %u (temp): %s", nbit, tempstring); DEBUGPRINT_WA(DEBUG_librfc2874, "Result after step %u (resu): %s", nbit, resultstring); }; /* add begin and end of label */ if ( (*ipv6addrp).flag_startend_use != 0 ) { prefixlength = bit_end - bit_start + 1; } else { prefixlength = 128; }; DEBUGPRINT_WA(DEBUG_librfc2874, "Result after expanding: %s", tempstring); if ( bit_start != 1 ) { snprintf(tempstring, sizeof(tempstring), "%s/%u]", resultstring, prefixlength); } else { snprintf(tempstring, sizeof(tempstring), "%s/%u].ip6.arpa.", resultstring, prefixlength); }; if ( (formatoptions & FORMATOPTION_printuppercase) != 0 ) { string_to_upcase(tempstring); }; snprintf(resultstring, resultstring_length, "\\[x%s", tempstring); DEBUGPRINT_WA(DEBUG_librfc2874, "Final result: %s", resultstring); retval = 0; return (retval); }; /* * converts a bitstring label into IPv6addr_structure * * in : inputstring * mod: *ipv6addrp = IPv6 address structure * ret: ==0: ok, !=0: error */ int librfc2874_bitstring_to_ipv6addrstruct(const char *inputstring, ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length) { int retval = 1; char tempstring[IPV6CALC_STRING_MAX], tempstring2[IPV6CALC_STRING_MAX]; unsigned int nibblecounter = 0; unsigned int noctet, startprefixlength, endprefixlength, index = 0, length, prefixlength; int xdigit; /* clear output structure */ ipv6addr_clearall(ipv6addrp); /* reverse copy of string */ snprintf(tempstring, sizeof(tempstring), "%s", inputstring); string_to_lowcase(tempstring); DEBUGPRINT_WA(DEBUG_librfc2874, "get string: %s", tempstring); length = (unsigned int) strlen(tempstring); /* check content */ retval = librfc2874_formatcheck(tempstring, resultstring, resultstring_length); if (retval != 0) { return (1); } DEBUGPRINT_WA(DEBUG_librfc2874, "format is ok: %s", tempstring); index = 3; /* start value */ while(isxdigit((int) tempstring[index])) { snprintf(tempstring2, sizeof(tempstring2), "%c", tempstring[index]); DEBUGPRINT_WA(DEBUG_librfc2874, "parse nibble: %s", tempstring2); /* now proceed nibbles */ retval = sscanf(tempstring2, "%x", &xdigit); if (retval != 1) { snprintf(resultstring, resultstring_length, "Error in given bitstring label, nibble '%s' at position %u cannot be parsed", tempstring2, index + 1); return (1); }; if (xdigit > 0xf) { snprintf(resultstring, resultstring_length, "Error in given bitstring label, nibble '%s' at dot position %u is out of range", tempstring2, index + 1); return (1); }; noctet = nibblecounter >> 1; /* divided by 2 */ if (noctet > 15) { snprintf(resultstring, resultstring_length, "Error in given bitstring label, too many nibbles"); return (1); }; if ( (nibblecounter & 0x01) != 0 ) { /* most significant bits */ (*ipv6addrp).in6_addr.s6_addr[noctet] = ((*ipv6addrp).in6_addr.s6_addr[noctet] & 0xf0) | xdigit; } else { /* least significant bits */ (*ipv6addrp).in6_addr.s6_addr[noctet] = ((*ipv6addrp).in6_addr.s6_addr[noctet] & 0x0f) | ((uint8_t) xdigit << 4); }; nibblecounter++; index++; if (index > length) { break; }; }; if (index > length) { snprintf(resultstring, resultstring_length, "Error in given bitstring label, unexpected end of string"); return (1); }; if (tempstring[index] == ']') { /* bitstring label closed */ ipv6addrp->flag_prefixuse = 1; ipv6addrp->prefixlength = (uint8_t) nibblecounter << 2; DEBUGPRINT_WA(DEBUG_librfc2874, "implicit prefix length: %d", ipv6addrp->prefixlength); goto END_bitstring_to_ipv6addrstruct; }; index++; if (index > length) { snprintf(resultstring, resultstring_length, "Error in given bitstring label, unexpected end of string"); return (1); }; /* proceed prefix length */ if (tempstring[index] == '/') { snprintf(resultstring, resultstring_length, "Error in given bitstring label, char '%c' not expected on position %u", tempstring[index], index + 1); return (1); }; index++; if (index > length) { snprintf(resultstring, resultstring_length, "Error in given bitstring address, unexpected end of string"); return (1); }; startprefixlength = index; endprefixlength = 0; while(isdigit((int) tempstring[index])) { index++; endprefixlength = index; if (index > length) { break; }; }; if (tempstring[index] == ']') { /* bitstring label closed */ if (endprefixlength == 0) { snprintf(resultstring, resultstring_length, "Invalid prefix length"); return (1); }; DEBUGPRINT_WA(DEBUG_librfc2874, "prefix length start=%d end=%d", startprefixlength, endprefixlength); snprintf(tempstring2, endprefixlength - startprefixlength + 2, "%s", tempstring + startprefixlength - 1); DEBUGPRINT_WA(DEBUG_librfc2874, "parse prefix length: %s", tempstring2); /* now proceed nibbles */ retval = sscanf(tempstring2, "%u", &prefixlength); if ( /*prefixlength < 0 || */ prefixlength > 128) { snprintf(resultstring, resultstring_length, "Error in given bitstring label, given prefix length '%u' is out of range", prefixlength); return (1); }; ipv6addrp->flag_prefixuse = 1; ipv6addrp->prefixlength = (uint8_t) prefixlength; DEBUGPRINT_WA(DEBUG_librfc2874, "explicit prefix length: %d", ipv6addrp->prefixlength); goto END_bitstring_to_ipv6addrstruct; }; snprintf(resultstring, resultstring_length, "Error in given bitstring label, char '%c' not expected on position %u", tempstring[index], index + 1); return (1); END_bitstring_to_ipv6addrstruct: ipv6addrp->flag_valid = 1; retval = 0; return (retval); }; /* * checks for proper format of a bitstring label * * in : string * ret: ==0: ok, !=0: error */ int librfc2874_formatcheck(const char *string, char *infostring, const size_t infostring_length) { unsigned int length, index = 0; unsigned int nibblecounter = 0, digitcounter = 0; infostring[0] = '\0'; /* clear string */ length = (unsigned int) strlen(string); /* check length */ if (length < 5) { snprintf(infostring, infostring_length, "Error in given bitstring label, has less than 5 chars!"); return (1); }; /* check start */ if (string[index] != '\\') { snprintf(infostring, infostring_length, "Error in given bitstring label, char '%c' not expected on position %u", string[index], index + 1); return (1); }; index++; if (string[index] != '[') { snprintf(infostring, infostring_length, "Error in given bitstring label, char '%c' not expected on position %u", string[index], index + 1); return (1); }; index++; if ( (char) tolower(string[index]) != 'x') { snprintf(infostring, infostring_length, "Error in given bitstring label, char '%c' not expected on position %u", string[index], index + 1); return (1); }; index++; /* check nibble string */ while(isxdigit((int) string[index])) { nibblecounter++; if (nibblecounter > 32) { snprintf(infostring, infostring_length, "Error in given bitstring label, more than 32 nibbles on position %u", index + 1); return (1); }; index++; if (index > length) { break; }; }; if (index >= length) { snprintf(infostring, infostring_length, "Error in given bitstring label, unexpected end of string (missing '/' or ']')"); return (1); }; if (string[index] == ']') { /* bitstring label closed */ return (0); }; /* proceed prefix length */ if (string[index] != '/') { snprintf(infostring, infostring_length, "Error in given bitstring label, char '%c' not expected on position %u", string[index], index + 1); return (1); }; index++; if (index >= length) { snprintf(infostring, infostring_length, "Error in given bitstring label, unexpected end of string (missing prefix length)"); return (1); }; /* check digit string */ while(isdigit((int) string[index])) { digitcounter++; if (digitcounter > 3) { snprintf(infostring, infostring_length, "Error in given bitstring label, more than 3 digits on position %u", index + 1); return (1); }; index++; if (index > length) { break; }; }; if (index >= length) { snprintf(infostring, infostring_length, "Error in given bitstring label, unexpected end of string (missing ']')"); return (1); }; if (string[index] == ']') { /* bitstring label closed */ return (0); }; snprintf(infostring, infostring_length, "Error in given bitstring label, char '%c' not expected on position %u", string[index], index + 1); return (1); }; ipv6calc-4.1.0/lib/librfc2874.h000066400000000000000000000013551444154247200157430ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc2874.h * Version : $Id: 1dd5589528908d8cf8fcdf1693bc25b5009f890e $ * Copyright : 2001-2014 by Peter Bieringer * * Information: * Header file for librfc2874.c */ #include "ipv6calc_inttypes.h" #include "libipv6addr.h" /* prototypes */ extern int librfc2874_addr_to_bitstring(const ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length, const uint32_t formatoptions); extern int librfc2874_bitstring_to_ipv6addrstruct(const char *inputstring, ipv6calc_ipv6addr *ipv6addrp, char *resultstring, const size_t resultstring_length); extern int librfc2874_formatcheck(const char *string, char *infostring, const size_t infostring_length); ipv6calc-4.1.0/lib/librfc3041.c000066400000000000000000000100421444154247200157120ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc3041.c * Version : $Id: 0315b321e4a91b7ddd3ab56652792a1d5b24fa31 $ * Copyright : 2001-2021 by Peter Bieringer * * Information: * Function library for host identifier privacy extension defined in RFC 3041 / RFC 4941 * * Credits to YOSHIFUJI Hideaki * for hints and sample code in Perl: * % perl -e '@a=(0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef); foreach (@a){ print pack("C",$_); } foreach (@a){ print pack("C",$_); }' | md5sum * 4662bdea8654776d486072ff7074945e */ #include #include #include #include "config.h" #ifdef ENABLE_BUNDLED_MD5 #include "../md5/md5.h" #else #ifdef ENABLE_OPENSSL_EVP_MD5 #include #else #include #endif #endif #include "libipv6calc.h" #include "libipv6calcdebug.h" #include "librfc3041.h" #include "libipv6addr.h" /* function * * in : *addrstring = IPv6 address * out: *resultstring = result * ret: ==0: ok, !=0: error */ int librfc3041_calc(ipv6calc_ipv6addr *identifier, ipv6calc_ipv6addr *token, ipv6calc_ipv6addr *newidentifier, ipv6calc_ipv6addr *newtoken) { int retval = 1; unsigned int i; char tempstring[IPV6CALC_STRING_MAX], tempstring2[IPV6CALC_STRING_MAX]; DEBUGPRINT_WA(DEBUG_librfc3041, "Got identifier '%08x-%08x' and token '%08x-%08x'", (unsigned int) ipv6addr_getdword(identifier, 2), (unsigned int) ipv6addr_getdword(identifier, 3), (unsigned int) ipv6addr_getdword(token, 2), (unsigned int) ipv6addr_getdword(token, 3)); #ifdef ENABLE_OPENSSL_EVP_MD5 #ifdef HAVE_EVP_MD_CTX_NEW unsigned int digest_len; // will be set by EVP_DigestFinal_ex unsigned char digest[EVP_MAX_MD_SIZE]; EVP_MD_CTX *md5hash = EVP_MD_CTX_new(); EVP_DigestInit_ex(md5hash, EVP_md5(), NULL); EVP_DigestUpdate(md5hash, &identifier->in6_addr.s6_addr[8], 8); EVP_DigestUpdate(md5hash, &token->in6_addr.s6_addr[8], 8); EVP_DigestFinal_ex(md5hash, digest, &digest_len); EVP_MD_CTX_free(md5hash); #else // HAVE_EVP_MD_CTX_NEW #ifdef HAVE_EVP_MD_CTX_INIT unsigned int digest_len; // will be set by EVP_DigestFinal_ex unsigned char digest[EVP_MAX_MD_SIZE]; EVP_MD_CTX md5hash; EVP_MD_CTX_init(&md5hash); EVP_DigestInit_ex(&md5hash, EVP_md5(), NULL); EVP_DigestUpdate(&md5hash, &identifier->in6_addr.s6_addr[8], 8); EVP_DigestUpdate(&md5hash, &token->in6_addr.s6_addr[8], 8); EVP_DigestFinal_ex(&md5hash, digest, &digest_len); #else // HAVE_EVP_MD_CTX_INIT #error No supported OpenSSL EVP MD5 method defined #endif // HAVE_EVP_MD_CTX_INIT #endif // HAVE_EVP_MD_CTX_NEW #else // ENABLE_OPENSSL_EVP_MD5 #ifdef ENABLE_OPENSSL_MD5 unsigned int digest_len = MD5_DIGEST_LENGTH; unsigned char digest[MD5_DIGEST_LENGTH]; MD5_CTX md5hash; MD5_Init(&md5hash); MD5_Update(&md5hash, &identifier->in6_addr.s6_addr[8], 8); MD5_Update(&md5hash, &token->in6_addr.s6_addr[8], 8); MD5_Final(digest, &md5hash); #else // ENABLE_OPENSSL_MD5 // fallback to bundled MD5 unsigned int digest_len = MD5_DIGEST_LENGTH; unsigned char digest[MD5_DIGEST_LENGTH]; struct md5_ctx md5hash; md5_init_ctx(&md5hash); md5_process_bytes(&identifier->in6_addr.s6_addr[8], 8, &md5hash); md5_process_bytes(&token->in6_addr.s6_addr[8], 8, &md5hash); md5_finish_ctx(&md5hash, digest); #endif // ENABLE_OPENSSL_MD5 #endif // ENABLE_OPENSSL_EVP_MD5 tempstring[0] = '\0'; for (i = 0; i < digest_len; i++) { snprintf(tempstring2, sizeof(tempstring2), "%s%02x", tempstring, (int) digest[i]); snprintf(tempstring, sizeof(tempstring), "%s", tempstring2); }; DEBUGPRINT_WA(DEBUG_librfc3041, "MD5 hash '%s'", tempstring); ipv6addr_clear(newidentifier); ipv6addr_clear(newtoken); for (i = 0; i < 8; i++) { /* copy into */ newidentifier->in6_addr.s6_addr[i + 8] = (uint8_t) digest[i]; newtoken->in6_addr.s6_addr[i + 8] = (uint8_t) digest[i + 8]; }; newidentifier->flag_valid = 1; newidentifier->prefixlength = 64; newtoken->flag_valid = 1; /* clear universal/local bit */ ipv6addr_setoctet(newidentifier, 8, ipv6addr_getoctet(newidentifier, 8) & 0xfd); retval = 0; return (retval); }; ipv6calc-4.1.0/lib/librfc3041.h000066400000000000000000000011221444154247200157160ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc3041.h * Version : $Id: 8f101eebd13c61d4b33219211aa61dfb83cf89d0 $ * Copyright : 2001-2012 by Peter Bieringer * * Information: * Header file for librfc3041.c (RFC 3041 / RFC 4941) */ #include "libipv6addr.h" /* defines */ #ifndef MD5_DIGEST_LENGTH #define MD5_DIGEST_LENGTH 16 #endif #ifndef _librfc3041_h #define _librfc3041_h #endif /* prototypes */ extern int librfc3041_calc(ipv6calc_ipv6addr *identifier, ipv6calc_ipv6addr *token, ipv6calc_ipv6addr *newidentifier, ipv6calc_ipv6addr *newtoken); ipv6calc-4.1.0/lib/librfc3056.c000066400000000000000000000047431444154247200157330ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc3056.c * Version : $Id: 1f24e583c3a9a568abd3ac222936515e4e628188 $ * Copyright : 2001-2021 by Peter Bieringer * * Information: * Function library for conversions defined in RFC 3056 */ #include #include #include #include "libipv6calcdebug.h" #include "libipv6calc.h" #include "librfc3056.h" /* * function converts an IPv4 address to an IPv6to4 one (RFC 3056) * * in : *ipv4addrp = IPv4 address * out: *ipv6addrp = IPv6 address * ret: ==0: ok, !=0: error */ int librfc3056_ipv4addr_to_ipv6to4addr(ipv6calc_ipv6addr *ipv6addrp, const ipv6calc_ipv4addr *ipv4addrp) { int retval = 1; unsigned int i; /* clear IPv6 structure */ ipv6addr_clear(ipv6addrp); /* set prefix */ ipv6addr_setword(ipv6addrp, 0, 0x2002); /* set IPv4 address */ for (i = 0; i <=3; i++) { ipv6addr_setoctet(ipv6addrp, i + 2, (unsigned int) ipv4addr_getoctet(ipv4addrp, i)); }; ipv6addrp->flag_prefixuse = ipv4addrp->flag_prefixuse; if ((ipv4addrp->flag_prefixuse == 1) && (ipv4addrp->prefixlength < 32)) { ipv6addrp->prefixlength = 48 - 32 + ipv4addrp->prefixlength; ipv6addrstruct_maskprefix(ipv6addrp); } else { ipv6addrp->prefixlength = 48; }; ipv6addrp->flag_valid = 1; ipv6addr_settype(ipv6addrp); /* Set typeinfo */ retval = 0; return (retval); }; /* * function converts an IPv6 address to an IPv4 one (reverse RFC 3056) * * in : *ipv6addrp = IPv6 address * out: *ipv4addrp = IPv4 address * ret: ==0: ok, !=0: error */ int librfc3056_ipv6addr_to_ipv4addr(ipv6calc_ipv4addr *ipv4addrp, const ipv6calc_ipv6addr *ipv6addrp, char* resultstring, const size_t resultstring_length) { int retval = 1; unsigned int i; /* check scope */ if ( (ipv6addrp->typeinfo & IPV6_NEW_ADDR_6TO4) == 0 ) { snprintf(resultstring, resultstring_length, "IPv6 address is not a 6to4 one!"); return(retval); }; /* clear IPv4 structure */ ipv4addr_clear(ipv4addrp); /* set IPv4 address */ for (i = 0; i < 4; i++) { ipv4addr_setoctet(ipv4addrp, i, (unsigned int) ipv6addr_getoctet(ipv6addrp, i + 2)); }; ipv4addrp->flag_prefixuse = ipv6addrp->flag_prefixuse; if ((ipv6addrp->flag_prefixuse == 1) && (ipv6addrp->prefixlength < 48)) { ipv4addrp->prefixlength = 32 - 48 + ipv6addrp->prefixlength; ipv4addrstruct_maskprefix(ipv4addrp); } else { ipv4addrp->prefixlength = 32; }; ipv4addrp->flag_valid = 1; ipv4addr_settype(ipv4addrp, 1); /* Set typeinfo */ retval = 0; return (retval); }; ipv6calc-4.1.0/lib/librfc3056.h000066400000000000000000000011021444154247200157220ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc3056.h * Version : $Id: c52b182df314365f10befd2f3fd4ece7430fcd59 $ * Copyright : 2002-2014 by Peter Bieringer * * Information: * Header file for librfc3056.c */ #include "libipv6addr.h" #include "libipv4addr.h" /* prototypes */ int librfc3056_ipv4addr_to_ipv6to4addr(ipv6calc_ipv6addr *ipv6addrp, const ipv6calc_ipv4addr *ipv4addrp); int librfc3056_ipv6addr_to_ipv4addr(ipv6calc_ipv4addr *ipv4addrp, const ipv6calc_ipv6addr *ipv6addrp, char* resultstring, const size_t resultstring_length); ipv6calc-4.1.0/lib/librfc5569.c000066400000000000000000000035771444154247200157520ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc5569.c * Version : $Id: 921acd4a4e44c6e0c59ed7da7960a566e23a8582 $ * Copyright : 2011 by Raphal Assnat * Extensions: 2014-2015 by Peter Bieringer * * * Information: * Function library for conversions defined in RFC 5569 */ #include #include "libipv4addr.h" #include "libipv6addr.h" #include "librfc5569.h" static void ipv6addr_to_bytes(const ipv6calc_ipv6addr *ipv6addrp, uint8_t bytes[16]) { int i; for (i=0; i<16; i++) { bytes[i] = ipv6addr_getoctet(ipv6addrp, i); }; }; static void ipv6addr_from_bytes(ipv6calc_ipv6addr *ipv6addrp, uint8_t bytes[16]) { int i; for (i=0; i<16; i++) { ipv6addr_setoctet(ipv6addrp, i, bytes[i]); }; }; int librfc5569_calc_6rd_local_prefix(ipv6calc_ipv6addr *sixrd_prefix, const ipv6calc_ipv4addr *sixrd_relay_prefix, const ipv6calc_ipv4addr *local_ip, char *resultstring, const size_t resultstring_length) { uint32_t local_ip_bits, j; uint8_t tmpaddr[16]; int i; int local_prefix_len; ipv6addrstruct_maskprefix(sixrd_prefix); if (sixrd_relay_prefix->flag_valid == 1) { local_prefix_len = sixrd_prefix->prefixlength + 32 - sixrd_relay_prefix->prefixlength; } else { local_prefix_len = sixrd_prefix->prefixlength + 32; }; if (local_prefix_len > 64) { snprintf(resultstring, resultstring_length, "Length of local prefix > 64: %d", local_prefix_len); return (1); } local_ip_bits = ipv4addr_getdword(local_ip); if (sixrd_relay_prefix->flag_valid == 1) { local_ip_bits <<= sixrd_relay_prefix->prefixlength; }; ipv6addr_to_bytes(sixrd_prefix, tmpaddr); for (j=0x80000000,i=sixrd_prefix->prefixlength; i>=1) { if (local_ip_bits & j) { tmpaddr[i>>3] |= 0x80 >> (i&0x7); }; }; ipv6addr_from_bytes(sixrd_prefix, tmpaddr); sixrd_prefix->prefixlength = local_prefix_len; return (0); }; ipv6calc-4.1.0/lib/librfc5569.h000066400000000000000000000010611444154247200157410ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc5569.h * Version : $Id: 184cece92773918edcb7852e1b4ec95541298751 $ * Copyright : 2011 by Raphal Assnat * Extensions: 2014-2014 by Peter Bieringer * * Information: * Header file for librfc5569.c */ #include "libipv6addr.h" #include "libipv4addr.h" int librfc5569_calc_6rd_local_prefix(ipv6calc_ipv6addr *sixrd_prefix, const ipv6calc_ipv4addr *relay_prefix, const ipv6calc_ipv4addr *local_ip, char *resultstring, const size_t resultstring_length); ipv6calc-4.1.0/lib/librfc6052.c000066400000000000000000000041211444154247200157200ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc6052.c * Version : $Id: 1a1796f184d1f088b285724d19c178d10b452e35 $ * Copyright : 2015-2019 by Peter Bieringer * * Information: * Function library for conversions defined in RFC 6052 */ #include #include #include #include "libipv6calcdebug.h" #include "libipv6calc.h" #include "librfc6052.h" /* * function converts an IPv4 address to an NAT64 IPv6 address (RFC 6052 / 2.1) * * in : *ipv4addrp = IPv4 address * out: *ipv6addrp = IPv6 address * ret: ==0: ok, !=0: error */ int librfc6052_ipv4addr_to_ipv6addr(ipv6calc_ipv6addr *ipv6addrp, const ipv6calc_ipv4addr *ipv4addrp) { int retval = 1; unsigned int i; /* clear IPv6 structure */ ipv6addr_clear(ipv6addrp); /* set prefix */ ipv6addr_setdword(ipv6addrp, 0, 0x0064ff9b); /* set IPv4 address */ for (i = 0; i <=3; i++) { ipv6addr_setoctet(ipv6addrp, i + 12, (unsigned int) ipv4addr_getoctet(ipv4addrp, i)); }; ipv6addrp->prefixlength = 96; ipv6addrp->flag_prefixuse = 0; ipv6addrp->flag_valid = 1; ipv6addr_settype(ipv6addrp); /* Set typeinfo */ retval = 0; return (retval); }; /* * function extracts from a NAT64 address the IPv4 address (reverse RFC 6052 / 2.1) * * in : *ipv6addrp = IPv6 address * out: *ipv4addrp = IPv4 address * ret: ==0: ok, !=0: error */ int librfc6052_ipv6addr_to_ipv4addr(ipv6calc_ipv4addr *ipv4addrp, const ipv6calc_ipv6addr *ipv6addrp, char* resultstring, const size_t resultstring_length) { int retval = 1; unsigned int i; /* check scope */ if ( (ipv6addrp->typeinfo & IPV6_NEW_ADDR_NAT64) == 0 ) { snprintf(resultstring, resultstring_length, "IPv6 address is not a NAT64 one!"); return(retval); }; /* clear IPv4 structure */ ipv4addr_clear(ipv4addrp); /* set IPv4 address */ for (i = 0; i < 4; i++) { ipv4addr_setoctet(ipv4addrp, i, (unsigned int) ipv6addr_getoctet(ipv6addrp, i + 12)); }; ipv4addrp->prefixlength = 32; ipv4addrp->flag_prefixuse = 0; ipv4addrp->flag_valid = 1; ipv4addr_settype(ipv4addrp, 1); /* Set typeinfo */ retval = 0; return (retval); }; ipv6calc-4.1.0/lib/librfc6052.h000066400000000000000000000010771444154247200157340ustar00rootroot00000000000000/* * Project : ipv6calc * File : librfc6052.h * Version : $Id: 3b859b4f64198617c8f1342a6cdb39ef9212eb96 $ * Copyright : 2015-2015 by Peter Bieringer * * Information: * Header file for librfc6052.c */ #include "libipv6addr.h" #include "libipv4addr.h" /* prototypes */ int librfc6052_ipv4addr_to_ipv6addr(ipv6calc_ipv6addr *ipv6addrp, const ipv6calc_ipv4addr *ipv4addrp); int librfc6052_ipv6addr_to_ipv4addr(ipv6calc_ipv4addr *ipv4addrp, const ipv6calc_ipv6addr *ipv6addrp, char* resultstring, const size_t resultstring_length); ipv6calc-4.1.0/man/000077500000000000000000000000001444154247200140055ustar00rootroot00000000000000ipv6calc-4.1.0/man/Makefile.in000066400000000000000000000007771444154247200160650ustar00rootroot00000000000000# Project : ipv6calc # File : Makefile # Version : $Id: 5edb24925fd619747a1ef496a3a0517716b69c2a $ # Copyright : 2003-2019 by Peter Bieringer # # Information: # Makefile for man pages # prefix = @prefix@ datarootdir = @datarootdir@ mandir = @mandir@ all: man man: distclean: ${MAKE} clean autoclean: ${MAKE} distclean clean: test: install: mkdir -p $(DESTDIR)$(mandir)/man8 for f in *.8; do \ install -m 644 $$f $(DESTDIR)$(mandir)/man8; \ done ipv6calc-4.1.0/man/ipv6calc.8000066400000000000000000000106241444154247200156100ustar00rootroot00000000000000.TH "ipv6calc" "8" "2.0.0" "Peter Bieringer " "system administration" .SH "NAME" ipv6calc \- format, calculate, show information, filter IPv6/IPv4/MAC addresses .SH "SYNOPSIS" ipv6calc [\fIOPTIONS\fP] [\fB\fR] .SH "DESCRIPTION" .PP This program formats and calculates IPv6/IPv4/MAC addresses and can do many more tricky things, e.g. includes a pipe filter capability. .SH "OPTIONS" If no data is presented as command\-line arguments, data is read from standard input. .LP General options: .TP \fB[\-d|\-\-debug \fIDEBUGVALUE\fR\fB]\fR debug value (bitwise like) can also be set by IPV6CALC_DEBUG environment value .TP \fB[\-v|\-\-version [\-v [\-v]]]\fR version information (2 optional detail levels) .TP \fB[\-v|\-\-version \-h]\fR explanation of feature tokens .TP \fB[\-V|\-\-verbose]\fR be more verbose .TP \fB[\-h|\-\-help|\-?]\fR this online help .LP External database options (depending on compiled\-in suppport): .TP \fB[\-\-db\-ip2location\-disable]\fR IP2Location support disabled .TP \fB[\-\-db\-ip2location\-dir\fR \fIDIRECTORY\fR\fB]\fR IP2Location database directory (default: /usr/share/IP2Location) .TP \fB[\-\-db\-geoip\-disable]\fR GeoIP support disabled .TP \fB[\-\-db\-geoip\-dir\fR \fIDIRECTORY\fR\fB]\fR GeoIP database directory (default: /usr/share/GeoIP) .LP Special options: .TP \fB[\-q|\-\-quiet]\fR be more quiet (auto\-enabled in pipe mode) .TP \fB[\-f|\-\-flush]\fR flush each line in pipe mode .LP Usage with new style options: .TP \fB[\-\-in|\-I\fR \fIINPUT\-TYPE\fR\fB]\fR specify input type (default: autodetect) .TP \fB[\-\-out|\-O\fR \fIOUTPUT\-TYPE\fR\fB]\fR specify output type (sometimes: autodetect) .TP \fB[\-\-action|\-A\fR \fIACTION\fR\fB]\fR specify action (default: format conversion, sometimes: autodetect) .TP \fB[ ...]\fR specify format options .TP \fB [...]\fR input data .RS .TP Available input types: \fB[\-m] \-I|\-\-in \-?|\-h|\-\-help\fR .TP Available output types: \fB[\-m] \-O|\-\-out \-?|\-h|\-\-help\fR .TP Available action types: \fB[\-m] \-A|\-\-action \-?|\-h|\-\-help\fR .RE .LP Other usage: .TP \fB\-\-showinfo|\-i [\-\-machine_readable|\-m]\fR show information about input data .TP \fB\-\-showinfo|\-i \-\-show_types\fR show available types on '\-m' .LP Usage with shortcut options: [ ...] .sp For more information and available format options use: \-?|\-h|\-\-help .PP \fB\-r|\-\-addr2ip6_int\fR (\-O revnibbles.int) .PP \fB\-r|\-\-addr_to_ip6int\fR (\-O revnibbles.int) .PP \fB\-a|\-\-addr2ip6_arpa\fR (\-O revnibbles.arpa) .PP \fB\-a|\-\-addr_to_ip6arpa\fR (\-O revnibbles.arpa) .PP \fB\-b|\-\-addr_to_bitstring\fR (\-O bitstring) .PP \fB \-\-addr2compaddr\fR (\-\-printcompressed) .PP \fB \-\-addr_to_compressed\fR (\-\-printcompressed) .PP \fB \-\-addr2uncompaddr\fR (\-\-printuncompressed) .PP \fB \-\-addr_to_uncompressed\fR (\-\-printuncompressed) .PP \fB \-\-addr_to_base85\fR (\-I ipv6addr \-O base85) .PP \fB \-\-base85_to_addr\fR (\-I base85 \-O ipv6addr) .PP \fB \-\-mac_to_eui64\fR (\-I mac \-O eui64) .PP \fB \-\-addr2fulluncompaddr\fR (\-\-printfulluncompressed) .PP \fB \-\-addr_to_fulluncompressed\fR (\-\-printfulluncompressed) .PP \fB \-\-addr2if_inet6\fR (\-I ipv6addr \-O ifinet6) .PP \fB \-\-addr_to_ifinet6\fR (\-I ipv6addr \-O ifinet6) .PP \fB \-\-if_inet62addr\fR (\-I ifinet6 \-O ipv6addr \-\-printcompressed) .PP \fB \-\-ifinet6_to_compressed\fR (\-I ifinet6 \-O ipv6addr \-\-printcompressed) .PP \fB \-\-eui64_to_privacy\fR (\-I iid_token \-O iid_token \-A genprivacyiid) .PP \fB \-\-ipv4_to_6to4addr\fR (\-I ipv4 \-O ipv6addr \-A conv6to4) .LP See inline help or documentation for more. .SH "REPORTING BUGS" Report bugs via GitHub: .UR https://github.com/pbiering/ipv6calc/issues https://github.com/pbiering/ipv6calc/issues .UE .PP Homepage: .UR http://www.deepspace6.net/projects/ipv6calc.html http://www.deepspace6.net/projects/ipv6calc.html .UE .SH "EXAMPLES" To run this program the standard way type: .LP ipv6calc \-\-showinfo \-i \-m ::1 .PP ipv6calc \-\-showinfo \-m 127.0.0.1 .PP ipv6calc \-\-showinfo \-\-show_types .PP ipv6calc \-\-ipv4_to_6to4addr 127.0.0.1 .PP ipv6calc \-\-addr_to_uncompressed ::1 .LP Usage of filters in pipe mode: .RS cat | ipv6calc \-E ipv6.db.cc=US,iid\-random .RE .SH "COPYRIGHT" GPLv2 .SH "AUTHORS" Peter Bieringer ipv6calc-4.1.0/man/ipv6loganon.8000066400000000000000000000152721444154247200163470ustar00rootroot00000000000000.TH "ipv6loganon" "8" "2.0.0" "Peter Bieringer " "system tools" .SH "NAME" ipv6loganon \- HTTP server log file anonymizer .SH "SYNOPSIS" cat /var/log/httpd/access_log | \fBipv6loganon\fR [\fIOPTIONS\fR] .SH "DESCRIPTION" This program anonymizes IPv4/IPv6 addresses in HTTP server log files Takes data from stdin, processes it to stdout. Depending on the anonymization method, address parts (prefix/interface identifier) are 1. simply \fBzeroized\fR by given masks. .PP 2. \fBanonymized\fR by zeroizing only required bits (partially depending on specified masks). .PP 3. anonymized by trying to keep for IPv4 and IPv6 addresses (\fBkeep\-type\-asn\-cc\fR) When zeroing only required bits (mode 2) the possibilities are .TP IID: .RS .TP EUI\-48/64: serial number would be zero'ed, keeping OID ISATAP: client IPv4 address would be anonymized by given IPv4 mask TEREDO: client IPv4 address would be anonymized by given IPv4 mask, client port would be zero'ed .TP 6to4(Microsoft): client IPv4 address would be anonymized by given IPv4 mask .TP local: whole IID would be zero'ed (except if privacy extension was detected, then replaced by a special token) .RE .TP Prefix: IPv6 addresses including IPv4 address of client will be anonymized by the given IPv4 mask .PP When anonymizing with keep (mode 3) the relevant fields are: \fBtype\fR of address, Autonomous System Number (\fBASN\fR), and Country Code (\fBCC\fR) .PP This method requires an IPv4/IPv6 to Country Code and ASN resolution, provided by GeoIP .PP Big advantage: ipv6logstats(8) result should be the same as with raw data .PP Anonymized IPv4 addresses are from experimental range \fB240.0.0.0/8\fR .PP Anonymized IPv6 addresses are using (currently hijacked) prefix \fBa909::/16\fR .PP Anonymized IPv6 IID is starting with \fBa9x9\fR (x = anonymized nibbles of SLA) .SH "OPTIONS" .LP General options: .TP \fB[\-d|\-\-debug \fIDEBUGVALUE\fR\fB]\fR debug value (bitwise like) can also be set by IPV6CALC_DEBUG environment value .TP \fB[\-v|\-\-version [\-v [\-v]]]\fR version information (2 optional detail levels) .TP \fB[\-v|\-\-version \-h]\fR explanation of feature tokens .TP \fB[\-V|\-\-verbose]\fR be more verbose .TP \fB[\-h|\-\-help|\-?]\fR this online help .LP External database options (depending on compiled\-in suppport): .TP \fB[\-\-db\-ip2location\-disable]\fR IP2Location support disabled .TP \fB[\-\-db\-ip2location\-dir\fR \fIDIRECTORY\fR\fB]\fR IP2Location database directory (default: /usr/share/IP2Location) .TP \fB[\-\-db\-geoip\-disable]\fR GeoIP support disabled .TP \fB[\-\-db\-geoip\-dir\fR \fIDIRECTORY\fR\fB]\fR GeoIP database directory (default: /usr/share/GeoIP) .LP Input/output options: .TP \fB[\-w|\-\-write]\fR write output to file instead of stdout .TP \fB[\-a|\-\-append]\fR append output to file instead of stdout .TP \fB[\-f|\-\-flush]\fR flush output after each line .TP \fB[\-V|\-\-verbose]\fR be verbose .PP Performance options: .TP \fB[\-n|\-\-nocache]\fR disable caching .TP \fB[\-c|\-\-cachelimit \fIVALUE\fR\fB]\fR set cache limit. Default: \fB20\fR, maximum: \fB200\fR. .LP Processing options: .LP Shortcut for anonymization presets: .RS .IP \fB\-\-anonymize\-standard\fR (default) .IP \fB\-\-anonymize\-careful\fR .IP \fB\-\-anonymize\-paranoid\fR .RE .LP Supported methods \fB[\-\-anonymize\-method \fIMETHOD\fR\fB]\fR: .TP \fBanonymize\fR reliable anonymization, keep as much type information as possible .TP \fBzeroize\fR simple zeroizing according to given masks, probably loose type information .TP \fBkeep\-type\-asn\-cc\fR special reliable anonymization, keep type & Autonomous System Number and CountryCode. LP Available presets (shortcut names) [\-\-anonymize\-preset \fIPRESET\-NAME\fR]: .TP \fBanonymize\-standard\fR (\fBas\fR): mask\-ipv6= 56 mask\-ipv4=24 mask\-eui64=40 mask\-mac=24 mask\-autoadjust=yes method=anonymize .TP \fBanonymize\-careful\fR (\fBac\fR): mask\-ipv6= 48 mask\-ipv4=20 mask\-eui64=24 mask\-mac=24 mask\-autoadjust=yes method=anonymize .TP \fBanonymize\-paranoid\fR (\fBap\fR): mask\-ipv6= 40 mask\-ipv4=16 mask\-eui64= 0 mask\-mac=24 mask\-autoadjust=no method=anonymize .TP \fBzeroize\-standard\fR (\fBzs\fR): mask\-ipv6= 56 mask\-ipv4=24 mask\-eui64=40 mask\-mac=24 mask\-autoadjust=yes method=zeroize .TP \fBzeroize\-careful\fR (\fBzc\fR): mask\-ipv6= 48 mask\-ipv4=20 mask\-eui64=24 mask\-mac=24 mask\-autoadjust=yes method=zeroize .TP \fBzeroize\-paranoid\fR (\fBzp\fR): mask\-ipv6= 40 mask\-ipv4=16 mask\-eui64= 0 mask\-mac=24 mask\-autoadjust=no method=zeroize .TP \fBkeep\-type\-asn\-cc\fR (\fBkp\fR): mask\-ipv6= 56 mask\-ipv4=24 mask\-eui64=40 mask\-mac=24 mask\-autoadjust=yes method=keep\-type\-asn\-cc .LP Custom control: .TP \fB\-\-mask\-ipv4\fR \fIBITS\fR mask IPv4 address [0\-32] (even if occurs in IPv6 address) .TP \fB\-\-mask\-ipv6\fR \fIBITS\fR mask IPv6 prefix [0\-64] (only applied to related address types) .TP \fB\-\-mask\-eui64\fR \fIBITS\fR mask EUI\-64 address or IPv6 interface identifier [0\-64] .TP \fB\-\-mask\-mac\fR \fIBITS\fR mask MAC address [0\-48] .TP \fB\-\-mask\-autoadjust yes|no\fR autoadjust mask to keep type/vendor information regardless of less given mask .SH "EXAMPLES" Original lines (stdin): .PP 207.46.98.53 \- \- [01/Jan/2007:00:01:15 +0100] "GET /Linux+IPv6\-HOWTO/x1112.html HTTP/1.0" 200 6162 "\-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)" 253 6334 2002:52b6:6b01:1:216:17ff:fe01:2345 \- \- [10/Jan/2007:15:04:28 +0100] "GET /favicon.ico HTTP/1.1" 200 4710 "http://www.bieringer.de/linux/IPv6/" "Mozilla/5.0 (X11; U; Linux i686; en\-US; rv:1.8.0.9) Gecko/20061219 Fedora/1.5.0.9\-1.fc6 Firefox/1.5.0.9 pango\-text" 413 5005 .PP Modified lines (stdout): .PP 207.46.98.0 \- \- [01/Jan/2007:00:01:15 +0100] "GET /Linux+IPv6\-HOWTO/x1112.html HTTP/1.0" 200 6162 "\-" "msnbot/1.0 (+http://search.msn.com/msnbot.htm)" 253 6334 2002:52b6:6b00:0:216:17ff:fe00:0 \- \- [10/Jan/2007:15:04:28 +0100] "GET /favicon.ico HTTP/1.1" 200 4710 "http://www.bieringer.de/linux/IPv6/" "Mozilla/5.0 (X11; U; Linux i686; en\-US; rv:1.8.0.9) Gecko/20061219 Fedora/1.5.0.9\-1.fc6 Firefox/1.5.0.9 pango\-text" 413 5005 .LP Anonymization method: keep\-type\-asn\-cc .PP echo "1.2.3.4" | ./ipv6loganon \-\-anonymize\-preset keep\-type\-asn\-cc 246.24.59.65 .PP echo "2001:a60:1400:1201:221:70ff:fe01:2345" | ./ipv6loganon \-\-anonymize\-preset keep\-type\-asn\-cc a909:16fa:9092:23ff:a909:4291:4022:1708 .SH "SEE ALSO" ipv6calc(8), ipv6logstat(8) .SH "REPORTING BUGS" Report bugs via GitHub: .UR https://github.com/pbiering/ipv6calc/issues https://github.com/pbiering/ipv6calc/issues .UE .PP Homepage: .UR http://www.deepspace6.net/projects/ipv6calc.html http://www.deepspace6.net/projects/ipv6calc.html .UE .SH "LICENSE" GPLv2 .SH "AUTHORS" Peter Bieringer ipv6calc-4.1.0/man/ipv6logconv.8000066400000000000000000000030721444154247200163540ustar00rootroot00000000000000.TH "ipv6logconv" "8" "2.0.0" "Peter Bieringer " "system tools" .SH "NAME" ipv6logconv \- HTTP server log file converter for statistics .SH "SYNOPSIS" cat /var/log/httpd/access_log | \fBipv6logconv\fR [\fIOPTIONS\fR] .SH "DESCRIPTION" This program converts IPv4/IPv6 addresses in HTTP server log files The converted output can be used to create statistics with analog Takes data from stdin, proceed it to stdout .SH "OPTIONS" .LP General options: .TP \fB[\-d|\-\-debug \fIDEBUGVALUE\fR\fB]\fR debug value (bitwise like) can also be set by IPV6CALC_DEBUG environment value .TP \fB[\-v|\-\-version [\-v [\-v]]]\fR version information (2 optional detail levels) .TP \fB[\-v|\-\-version \-h]\fR explanation of feature tokens .TP \fB[\-V|\-\-verbose]\fR be more verbose .TP \fB[\-h|\-\-help|\-?]\fR this online help .LP Performance options: .TP \fB[\-n|\-\-nocache]\fR disable caching .TP \fB[\-c|\-\-cachelimit \fIVALUE\fR\fB]\fR set cache limit; default: \fB20\fR, maximum: \fB200\fR. .LP Output options: .TP \fB[\-\-out \fIOUTPUTTYPE\fR\fB]\fR Specify output type: .RS .TP \fBaddrtype\fR Address type .TP \fBouitype\fR OUI (IEEE) type .TP \fBipv6addrtype\fR IPv6 address type .TP \fBany\fR any type .RE .SH "SEE ALSO" ipv6calc(8) .SH "REPORTING BUGS" Report bugs via GitHub: .UR https://github.com/pbiering/ipv6calc/issues https://github.com/pbiering/ipv6calc/issues .UE .PP Homepage: .UR http://www.deepspace6.net/projects/ipv6calc.html http://www.deepspace6.net/projects/ipv6calc.html .UE .SH "LICENSE" GPLv2 .SH "AUTHORS" Peter Bieringer ipv6calc-4.1.0/man/ipv6logstats.8000066400000000000000000000075351444154247200165550ustar00rootroot00000000000000.TH "ipv6logstats" "8" "2.0.0" "Peter Bieringer " "system tools" .SH "Name" ipv6logstats \- Takes http log data from stdin and print a statistics table on output .SH "SYNOPSIS" cat /var/log/httpd/access_log | \fBipv6logstats\fR [\fIOPTIONS\fR] .SH "SYNTAX" ipv6logstats [logfile] .SH "DESCRIPTION" Takes web server log data (or any other data which has IPv4/v6 address in first column) from stdin and print statistics table/list (depending on option) to stdout .SH "OPTIONS" .LP General options: .TP \fB[\-d|\-\-debug \fIDEBUGVALUE\fR\fB]\fR debug value (bitwise like) can also be set by IPV6CALC_DEBUG environment value .TP \fB[\-v|\-\-version [\-v [\-v]]]\fR version information (2 optional detail levels) .TP \fB[\-v|\-\-version \-h]\fR explanation of feature tokens .TP \fB[\-V|\-\-verbose]\fR be more verbose .TP \fB[\-h|\-\-help|\-?]\fR this online help .TP \fB[\-q|\-\-quiet]\fR be more quiet .LP External database options (depending on compiled\-in suppport): .TP \fB[\-\-db\-ip2location\-disable]\fR IP2Location support disabled .TP \fB[\-\-db\-ip2location\-dir\fR \fIDIRECTORY\fR\fB]\fR IP2Location database directory (default: /usr/share/IP2Location) .TP \fB[\-\-db\-geoip\-disable]\fR GeoIP support disabled .TP \fB[\-\-db\-geoip\-dir\fR \fIDIRECTORY\fR\fB]\fR GeoIP database directory (default: /usr/share/GeoIP) .LP Special options: .TP \fB[\-u|\-\-unknown]\fR print unknown IP addresses to stderr .TP \fB[\-c|\-\-columns]\fR print statistics in columns (1) .TP \fB[\-N|\-\-column\-numbers]\fR print column numbers .TP \fB[\-n|\-\-noheader]\fR don't print header in columns mode (1) .TP \fB[\-o|\-\-onlyheader]\fR print only header in columns mode (1) .TP \fB[\-p|\-\-prefix\fR \fITOKEN\fR\fB]\fR print token as prefix (1) .TP \fB[\-s|\-\-simple]\fR disable extended statistic (CountryCode/ASN) .BR (1) unsupported for CountryCode & ASN statistics .SH "EXAMPLES" .LP Column mode: .LP echo "2001:a60:1400:1201:221:70ff:fe01:2345" | ./ipv6logstats \-c \-q .nf ALL IPv4 IPv6 UNKNOWN IPv4/APNIC IPv4/ARIN IPv4/RIPE IPv4/LACNIC IPv4/AFRINIC IPv4/UNKNOWN IPv6/6bone IPv6/IANA IPv6/APNIC IPv6/ARIN IPv6/RIPE IPv6/LACNIC IPv6/AFRINIC IPv6/RESERVED IPv6/UNKNOWN IPv6/6to4/IANA IPv6/6to4/APNIC IPv6/6to4/ARIN IPv6/6to4/RIPE IPv6/6to4/LACNIC IPv6/6to4/AFRINIC IPv6/6to4/RESERVED IPv6/6to4/UNKNOWN IPv6/Teredo/IANA IPv6/Teredo/APNIC IPv6/Teredo/ARIN IPv6/Teredo/RIPE IPv6/Teredo/LACNIC IPv6/Teredo/AFRINIC IPv6/Teredo/RESERVED IPv6/Teredo/UNKNOWN IPv6/NAT64/IANA IPv6/NAT64/APNIC IPv6/NAT64/ARIN IPv6/NAT64/RIPE IPv6/NAT64/LACNIC IPv6/NAT64/AFRINIC IPv6/NAT64/RESERVED IPv6/NAT64/UNKNOWN IPv6/IID/Global IPv6/IID/Random IPv6/IID/Manual IPv6/IID/ISATAP IPv6/IID/Unknown #Version(4.0) 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 #4.0 .LP Row mode: .nf echo "2001:a60:1400:1201:221:70ff:fe01:2345" | ./ipv6logstats \-q *Version 4.0 *DateTime: 2014:07:23 19:59:56+0000 GMT *UnixTime: 1406145596 ALL 1 IPv4 0 IPv6 1 IPv6/RIPE 1 IPv6/IID/Global 1 *3*CC\-code\-proto/DE/ALL 1 *3*CC\-code\-proto/DE/IPv4 0 *3*CC\-code\-proto/DE/IPv6 1 *3*CC\-code\-proto\-list/DE 1 0 1 *3*CC\-proto\-code/ALL/DE 1 *3*CC\-proto\-code/IPv6/DE 1 *3*CC\-proto\-code\-list/ALL 1 0 1 *3*AS\-num\-proto/8767/ALL 1 *3*AS\-num\-proto/8767/IPv4 0 *3*AS\-num\-proto/8767/IPv6 1 *3*AS\-num\-proto\-list/8767 1 0 1 *3*AS\-proto\-num/ALL/8767 1 *3*AS\-proto\-num/IPv6/8767 1 *3*AS\-proto\-num\-list/ALL 1 0 1 .fi .SH "SEE ALSO" ipv6calc(8) .SH "REPORTING BUGS" Report bugs via GitHub: .UR https://github.com/pbiering/ipv6calc/issues https://github.com/pbiering/ipv6calc/issues .UE .PP Homepage: .UR http://www.deepspace6.net/projects/ipv6calc.html http://www.deepspace6.net/projects/ipv6calc.html .UE .SH "COPYRIGHT" GPLv2 .SH "AUTHORS" Peter Bieringer ipv6calc-4.1.0/md5/000077500000000000000000000000001444154247200137175ustar00rootroot00000000000000ipv6calc-4.1.0/md5/Makefile.in000066400000000000000000000005761444154247200157740ustar00rootroot00000000000000# Adapted for use with project 'ipv6calc' by Peter Bieringer # $Id: 0f8344ef895af9ba7c41330d6e6653599a63c58f $ CC = @CC@ DEFAULT_CFLAGS ?= -O2 -Wall -g @CFLAGS_EXTRA@ all: md5.o md5.o: md5.c ${CC} $(DEFAULT_CFLAGS) $(CFLAGS) $(INCLUDES) -I.. -fPIC -o md5.o -c md5.c clean: rm -f *.o *.so.1 *.a distclean: ${MAKE} clean autoclean: ${MAKE} distclean ipv6calc-4.1.0/md5/README000066400000000000000000000004471444154247200146040ustar00rootroot00000000000000$Id: 6f0ef27cb9c1057d26f8f0920aa46efc7991eed6 $ md5 was added because of replace the use of OpenSSL library for calculation (license issue) Original code is located at ftp://alpha.gnu.org/gnu/coreutils/coreutils-5.1.3.tar.gz and a local copy is at ../samplecode/coreutils/ Peter Bieringer ipv6calc-4.1.0/md5/md5.c000066400000000000000000000301171444154247200145520ustar00rootroot00000000000000/* md5.c - Functions to compute MD5 message digest of files or memory blocks according to the definition of MD5 in RFC 1321 from April 1992. Copyright (C) 1995, 1996, 2001, 2003 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Ulrich Drepper , 1995. */ /* for ipv6calc, not needed code was removed */ #include "config.h" #include "md5.h" #include #include #include #ifdef _LIBC # include # if __BYTE_ORDER == __BIG_ENDIAN # define WORDS_BIGENDIAN 1 # endif /* We need to keep the namespace clean so define the MD5 function protected using leading __ . */ # define md5_init_ctx __md5_init_ctx # define md5_process_block __md5_process_block # define md5_process_bytes __md5_process_bytes # define md5_finish_ctx __md5_finish_ctx # define md5_read_ctx __md5_read_ctx # define md5_stream __md5_stream # define md5_buffer __md5_buffer #endif #ifdef WORDS_BIGENDIAN # define SWAP(n) \ (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24)) #else # define SWAP(n) (n) #endif #define BLOCKSIZE 4096 /* Ensure that BLOCKSIZE is a multiple of 64. */ #if BLOCKSIZE % 64 != 0 /* FIXME-someday (soon?): use #error instead of this kludge. */ "invalid BLOCKSIZE" #endif /* This array contains the bytes used to pad the buffer to the next 64-byte boundary. (RFC 1321, 3.1: Step 1) */ static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ }; /* Initialize structure containing state of computation. (RFC 1321, 3.3: Step 3) */ void md5_init_ctx (struct md5_ctx *ctx) { ctx->A = 0x67452301; ctx->B = 0xefcdab89; ctx->C = 0x98badcfe; ctx->D = 0x10325476; ctx->total[0] = ctx->total[1] = 0; ctx->buflen = 0; } /* Put result from CTX in first 16 bytes following RESBUF. The result must be in little endian byte order. IMPORTANT: On some systems it is required that RESBUF is correctly aligned for a 32 bits value. */ #pragma GCC diagnostic ignored "-Wstrict-aliasing" void * md5_read_ctx (const struct md5_ctx *ctx, void *resbuf) { ((md5_uint32 *) resbuf)[0] = SWAP (ctx->A); ((md5_uint32 *) resbuf)[1] = SWAP (ctx->B); ((md5_uint32 *) resbuf)[2] = SWAP (ctx->C); ((md5_uint32 *) resbuf)[3] = SWAP (ctx->D); return resbuf; } /* Process the remaining bytes in the internal buffer and the usual prolog according to the standard and write the result to RESBUF. IMPORTANT: On some systems it is required that RESBUF is correctly aligned for a 32 bits value. */ void * md5_finish_ctx (struct md5_ctx *ctx, void *resbuf) { /* Take yet unprocessed bytes into account. */ md5_uint32 bytes = ctx->buflen; size_t pad; /* Now count remaining bytes. */ ctx->total[0] += bytes; if (ctx->total[0] < bytes) ++ctx->total[1]; pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes; memcpy (&ctx->buffer[bytes], fillbuf, pad); /* Put the 64-bit file length in *bits* at the end of the buffer. */ *(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3); *(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29)); /* Process last bytes. */ md5_process_block (ctx->buffer, bytes + pad + 8, ctx); return md5_read_ctx (ctx, resbuf); } /* Compute MD5 message digest for LEN bytes beginning at BUFFER. The result is always in little endian byte order, so that a byte-wise output yields to the wanted ASCII representation of the message digest. */ void * md5_buffer (const char *buffer, size_t len, void *resblock) { struct md5_ctx ctx; /* Initialize the computation context. */ md5_init_ctx (&ctx); /* Process whole buffer but last len % 64 bytes. */ md5_process_bytes (buffer, len, &ctx); /* Put result in desired memory area. */ return md5_finish_ctx (&ctx, resblock); } void md5_process_bytes (const void *buffer, size_t len, struct md5_ctx *ctx) { /* When we already have some bits in our internal buffer concatenate both inputs first. */ if (ctx->buflen != 0) { size_t left_over = ctx->buflen; size_t add = 128 - left_over > len ? len : 128 - left_over; memcpy (&ctx->buffer[left_over], buffer, add); ctx->buflen += add; if (ctx->buflen > 64) { md5_process_block (ctx->buffer, ctx->buflen & ~63, ctx); ctx->buflen &= 63; /* The regions in the following copy operation cannot overlap. */ memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63], ctx->buflen); } buffer = (const char *) buffer + add; len -= add; } /* Process available complete blocks. */ if (len >= 64) { #if !_STRING_ARCH_unaligned /* To check alignment gcc has an appropriate operator. Other compilers don't. */ # if __GNUC__ >= 2 # define UNALIGNED_P(p) (((md5_uintptr) p) % __alignof__ (md5_uint32) != 0) # else # define UNALIGNED_P(p) (((md5_uintptr) p) % sizeof (md5_uint32) != 0) # endif if (UNALIGNED_P (buffer)) while (len > 64) { md5_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx); buffer = (const char *) buffer + 64; len -= 64; } else #endif { md5_process_block (buffer, len & ~63, ctx); buffer = (const char *) buffer + (len & ~63); len &= 63; } } /* Move remaining bytes in internal buffer. */ if (len > 0) { size_t left_over = ctx->buflen; memcpy (&ctx->buffer[left_over], buffer, len); left_over += len; if (left_over >= 64) { md5_process_block (ctx->buffer, 64, ctx); left_over -= 64; memcpy (ctx->buffer, &ctx->buffer[64], left_over); } ctx->buflen = left_over; } } /* These are the four functions used in the four steps of the MD5 algorithm and defined in the RFC 1321. The first function is a little bit optimized (as found in Colin Plumbs public domain implementation). */ /* #define FF(b, c, d) ((b & c) | (~b & d)) */ #define FF(b, c, d) (d ^ (b & (c ^ d))) #define FG(b, c, d) FF (d, b, c) #define FH(b, c, d) (b ^ c ^ d) #define FI(b, c, d) (c ^ (b | ~d)) /* Process LEN bytes of BUFFER, accumulating context into CTX. It is assumed that LEN % 64 == 0. */ void md5_process_block (const void *buffer, size_t len, struct md5_ctx *ctx) { md5_uint32 correct_words[16]; const md5_uint32 *words = buffer; size_t nwords = len / sizeof (md5_uint32); const md5_uint32 *endp = words + nwords; md5_uint32 A = ctx->A; md5_uint32 B = ctx->B; md5_uint32 C = ctx->C; md5_uint32 D = ctx->D; /* First increment the byte count. RFC 1321 specifies the possible length of the file up to 2^64 bits. Here we only compute the number of bytes. Do a double word increment. */ ctx->total[0] += len; if (ctx->total[0] < len) ++ctx->total[1]; /* Process all bytes in the buffer with 64 bytes in each round of the loop. */ while (words < endp) { md5_uint32 *cwp = correct_words; md5_uint32 A_save = A; md5_uint32 B_save = B; md5_uint32 C_save = C; md5_uint32 D_save = D; /* First round: using the given function, the context and a constant the next context is computed. Because the algorithms processing unit is a 32-bit word and it is determined to work on words in little endian byte order we perhaps have to change the byte order before the computation. To reduce the work for the next steps we store the swapped words in the array CORRECT_WORDS. */ #define OP(a, b, c, d, s, T) \ do \ { \ a += FF (b, c, d) + (*cwp++ = SWAP (*words)) + T; \ ++words; \ a = rol (a, s); \ a += b; \ } \ while (0) /* Before we start, one word to the strange constants. They are defined in RFC 1321 as T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64, or perl -e 'foreach(1..64){printf "0x%08x\n", int (4294967296 * abs (sin $_))}' */ /* Round 1. */ OP (A, B, C, D, 7, 0xd76aa478); OP (D, A, B, C, 12, 0xe8c7b756); OP (C, D, A, B, 17, 0x242070db); OP (B, C, D, A, 22, 0xc1bdceee); OP (A, B, C, D, 7, 0xf57c0faf); OP (D, A, B, C, 12, 0x4787c62a); OP (C, D, A, B, 17, 0xa8304613); OP (B, C, D, A, 22, 0xfd469501); OP (A, B, C, D, 7, 0x698098d8); OP (D, A, B, C, 12, 0x8b44f7af); OP (C, D, A, B, 17, 0xffff5bb1); OP (B, C, D, A, 22, 0x895cd7be); OP (A, B, C, D, 7, 0x6b901122); OP (D, A, B, C, 12, 0xfd987193); OP (C, D, A, B, 17, 0xa679438e); OP (B, C, D, A, 22, 0x49b40821); /* For the second to fourth round we have the possibly swapped words in CORRECT_WORDS. Redefine the macro to take an additional first argument specifying the function to use. */ #undef OP #define OP(f, a, b, c, d, k, s, T) \ do \ { \ a += f (b, c, d) + correct_words[k] + T; \ a = rol (a, s); \ a += b; \ } \ while (0) /* Round 2. */ OP (FG, A, B, C, D, 1, 5, 0xf61e2562); OP (FG, D, A, B, C, 6, 9, 0xc040b340); OP (FG, C, D, A, B, 11, 14, 0x265e5a51); OP (FG, B, C, D, A, 0, 20, 0xe9b6c7aa); OP (FG, A, B, C, D, 5, 5, 0xd62f105d); OP (FG, D, A, B, C, 10, 9, 0x02441453); OP (FG, C, D, A, B, 15, 14, 0xd8a1e681); OP (FG, B, C, D, A, 4, 20, 0xe7d3fbc8); OP (FG, A, B, C, D, 9, 5, 0x21e1cde6); OP (FG, D, A, B, C, 14, 9, 0xc33707d6); OP (FG, C, D, A, B, 3, 14, 0xf4d50d87); OP (FG, B, C, D, A, 8, 20, 0x455a14ed); OP (FG, A, B, C, D, 13, 5, 0xa9e3e905); OP (FG, D, A, B, C, 2, 9, 0xfcefa3f8); OP (FG, C, D, A, B, 7, 14, 0x676f02d9); OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a); /* Round 3. */ OP (FH, A, B, C, D, 5, 4, 0xfffa3942); OP (FH, D, A, B, C, 8, 11, 0x8771f681); OP (FH, C, D, A, B, 11, 16, 0x6d9d6122); OP (FH, B, C, D, A, 14, 23, 0xfde5380c); OP (FH, A, B, C, D, 1, 4, 0xa4beea44); OP (FH, D, A, B, C, 4, 11, 0x4bdecfa9); OP (FH, C, D, A, B, 7, 16, 0xf6bb4b60); OP (FH, B, C, D, A, 10, 23, 0xbebfbc70); OP (FH, A, B, C, D, 13, 4, 0x289b7ec6); OP (FH, D, A, B, C, 0, 11, 0xeaa127fa); OP (FH, C, D, A, B, 3, 16, 0xd4ef3085); OP (FH, B, C, D, A, 6, 23, 0x04881d05); OP (FH, A, B, C, D, 9, 4, 0xd9d4d039); OP (FH, D, A, B, C, 12, 11, 0xe6db99e5); OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8); OP (FH, B, C, D, A, 2, 23, 0xc4ac5665); /* Round 4. */ OP (FI, A, B, C, D, 0, 6, 0xf4292244); OP (FI, D, A, B, C, 7, 10, 0x432aff97); OP (FI, C, D, A, B, 14, 15, 0xab9423a7); OP (FI, B, C, D, A, 5, 21, 0xfc93a039); OP (FI, A, B, C, D, 12, 6, 0x655b59c3); OP (FI, D, A, B, C, 3, 10, 0x8f0ccc92); OP (FI, C, D, A, B, 10, 15, 0xffeff47d); OP (FI, B, C, D, A, 1, 21, 0x85845dd1); OP (FI, A, B, C, D, 8, 6, 0x6fa87e4f); OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0); OP (FI, C, D, A, B, 6, 15, 0xa3014314); OP (FI, B, C, D, A, 13, 21, 0x4e0811a1); OP (FI, A, B, C, D, 4, 6, 0xf7537e82); OP (FI, D, A, B, C, 11, 10, 0xbd3af235); OP (FI, C, D, A, B, 2, 15, 0x2ad7d2bb); OP (FI, B, C, D, A, 9, 21, 0xeb86d391); /* Add the starting values of the context. */ A += A_save; B += B_save; C += C_save; D += D_save; } /* Put checksum in context given as argument. */ ctx->A = A; ctx->B = B; ctx->C = C; ctx->D = D; } ipv6calc-4.1.0/md5/md5.h000066400000000000000000000106151444154247200145600ustar00rootroot00000000000000/* md5.h - Declaration of functions and data types used for MD5 sum computing library functions. Copyright (C) 1995, 1996, 1999, 2000, 2003 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _MD5_H #define _MD5_H 1 #include #include /* The following contortions are an attempt to use the C preprocessor to determine an unsigned integral type that is 32 bits wide. An alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but doing that would require that the configure script compile and *run* the resulting executable. Locally running cross-compiled executables is usually not possible. */ #ifdef _LIBC # include typedef uint32_t md5_uint32; typedef uintptr_t md5_uintptr; #else # define UINT_MAX_32_BITS 4294967295U # if UINT_MAX == UINT_MAX_32_BITS typedef unsigned int md5_uint32; # else # if USHRT_MAX == UINT_MAX_32_BITS typedef unsigned short md5_uint32; # else # if ULONG_MAX == UINT_MAX_32_BITS typedef unsigned long md5_uint32; # else /* The following line is intended to evoke an error. Using #error is not portable enough. */ "Cannot determine unsigned 32-bit data type." # endif # endif # endif /* We have to make a guess about the integer type equivalent in size to pointers which should always be correct. */ typedef unsigned long int md5_uintptr; #endif /* Structure to save state of computation between the single steps. */ struct md5_ctx { md5_uint32 A; md5_uint32 B; md5_uint32 C; md5_uint32 D; md5_uint32 total[2]; md5_uint32 buflen; char buffer[128]; }; /* * The following three functions are build up the low level used in * the functions `md5_stream' and `md5_buffer'. */ /* Initialize structure containing state of computation. (RFC 1321, 3.3: Step 3) */ extern void md5_init_ctx (struct md5_ctx *ctx); /* Starting with the result of former calls of this function (or the initialization function update the context for the next LEN bytes starting at BUFFER. It is necessary that LEN is a multiple of 64!!! */ extern void md5_process_block (const void *buffer, size_t len, struct md5_ctx *ctx); /* Starting with the result of former calls of this function (or the initialization function update the context for the next LEN bytes starting at BUFFER. It is NOT required that LEN is a multiple of 64. */ extern void md5_process_bytes (const void *buffer, size_t len, struct md5_ctx *ctx); /* Process the remaining bytes in the buffer and put result from CTX in first 16 bytes following RESBUF. The result is always in little endian byte order, so that a byte-wise output yields to the wanted ASCII representation of the message digest. IMPORTANT: On some systems it is required that RESBUF be correctly aligned for a 32 bits value. */ extern void *md5_finish_ctx (struct md5_ctx *ctx, void *resbuf); /* Put result from CTX in first 16 bytes following RESBUF. The result is always in little endian byte order, so that a byte-wise output yields to the wanted ASCII representation of the message digest. IMPORTANT: On some systems it is required that RESBUF is correctly aligned for a 32 bits value. */ extern void *md5_read_ctx (const struct md5_ctx *ctx, void *resbuf); /* Compute MD5 message digest for LEN bytes beginning at BUFFER. The result is always in little endian byte order, so that a byte-wise output yields to the wanted ASCII representation of the message digest. */ extern void *md5_buffer (const char *buffer, size_t len, void *resblock); #define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) ) #endif ipv6calc-4.1.0/mod_ipv6calc/000077500000000000000000000000001444154247200156005ustar00rootroot00000000000000ipv6calc-4.1.0/mod_ipv6calc/Makefile.in000066400000000000000000000050631444154247200176510ustar00rootroot00000000000000# Project : ipv6calc # File : mod_ipv6calc/Makefile[.in] # Version : $Id: 2bc39df667e28702cef82e6db7bcf633f466d3b1 $ # Copyright : 2015-2020 by Peter Bieringer # # Information: # Makefile for mod_ipv6calc # LIBEXECDIR = @HTTPD_LIBEXECDIR@ SYSCONFDIR = @HTTPD_SYSCONFDIR@ APXS = @APXS@ # Compiler and Linker Options DEFAULT_CFLAGS ?= -O2 -Wall -g @CFLAGS_EXTRA@ INCLUDES= @MD5_INCLUDE@ @GETOPT_INCLUDE@ @MMDB_INCLUDE_L1@ @IP2LOCATION_INCLUDE_L1@ -I../ -I../lib/ -I../databases/lib/ LIBS = @IPV6CALC_LIB@ @IP2LOCATION_LIB_L1@ @MMDB_LIB_L1@ -lm GETOBJS = @LIBOBJS@ LDFLAGS_EXTRA = @LDFLAGS_EXTRA_MOD_IPV6CALC@ # splint SPLINT_OPT_OUTSIDE = -warnposix -nullassign -uniondef -compdef -usedef -formatconst -exportlocal #SPLINT_OPT_OUTSIDE = -uniondef +matchanyintegral --nullassign +ignoresigns -compdef -usedef -modobserver -formatconst -warnposix -exportlocal SPLINT_TODO_LATER = -unrecog -retvalint all: mod_ipv6calc libipv6calc: cd ../ && ${MAKE} lib-make libipv6calc_db_wrapper: cd ../ && ${MAKE} lib-make mod_ipv6calc.la: mod_ipv6calc.slo $(SH_LINK) -rpath $(libexecdir) -module -avoid-version mod_ipv6calc.lo shared = mod_ipv6calc.la mod_ipv6calc: mod_ipv6calc.c ../lib/libipv6calc.h ../config.h libipv6calc libipv6calc_db_wrapper if test -z "$(APXS)"; then echo "no APXS found, can't build module"; exit 1; fi $(APXS) $(LIBS) $(INCLUDES) -c mod_ipv6calc.c $(LDFLAGS_EXTRA) static: distclean: ${MAKE} clean autoclean: ${MAKE} distclean clean: rm -f mod_ipv6calc.o mod_ipv6calc.lo mod_ipv6calc.slo mod_ipv6calc.la .libs/* test: mod_ipv6calc LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_mod_ipv6calc.sh -K LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_mod_ipv6calc.sh -W LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_mod_ipv6calc.sh -W -P LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_mod_ipv6calc.sh -W -E LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):@LD_LIBRARY_PATH_BASIC@ ./test_mod_ipv6calc.sh -W -P -E test-minimal: mod_ipv6calc test-ldlibpath: mod_ipv6calc codecheck: ${MAKE} splint splint: splint *.c -I.. -I../lib $(SPLINT_OPT_OUTSIDE) $(SPLINT_TODO_LATER) $(DESTDIR)$(LIBEXECDIR): mkdir -p $@ $(DESTDIR)$(SYSCONFDIR): mkdir -p $@ install: mod_ipv6calc $(DESTDIR)$(LIBEXECDIR) $(DESTDIR)$(SYSCONFDIR) if test -z "$(APXS)"; then echo "no APXS found, can't install module"; exit 1; fi $(APXS) -i -S LIBEXECDIR=$(DESTDIR)$(LIBEXECDIR) -n 'mod_ipv6calc' mod_ipv6calc.la install -m 644 ipv6calc.conf $(DESTDIR)$(SYSCONFDIR) ipv6calc-4.1.0/mod_ipv6calc/README.mod_ipv6calc000066400000000000000000000136531444154247200210350ustar00rootroot00000000000000# ipv6calc's module for Apache web server - developed since 2015 - tested on Apache versions - 2.2 (EL6) - 2.4 (EL7, EL8, EL9, Fedora 30-37) ## Features Depending on module options and available "offline" databases following environment variables are set - IPV6CALC_CLIENT_COUNTRYCODE - country code of IP address - provided by - GeoIP - IP2Location - db-ip.com - IPV6CALC_CLIENT_ASN - ASN of IP address - provided by - GeoIP - db-ip.com - IPV6CALC_CLIENT_REGISTRY - Registry of IP address - provided by - ipv6calc's "built-in" or "external" database - IPV6CALC_CLIENT_GEONAMEID - GeonameID of IP address - provided by - GeoIP - db-ip.com - IPV6CALC_CLIENT_IP_ANON - anonymized IP address - IPV6CALC_ANON_METHOD - used anonymization method ## Installation - copy compiled module to Apache module directory Fedora/Enterprise Linux # cp .libs/mod_ipv6calc.so /etc/httpd/modules/ - copy default configuration to Apache configuration directory Fedora/Enterprise Linux # cp ipv6calc.conf /etc/httpd/conf.d/ - review config /etc/httpd/conf.d/ipv6calc.conf ## Configuration - see examples in `ipv6calc.conf` ## Activation - restart Apache ## Verification ### Startup log See summary after Apache startup in log (e.g. /var/log/httpd/error_log) for default/configured parameters, e.g. ``` [Tue Aug 02 05:51:41.909367 2022] [ipv6calc:notice] [pid ...:tid ...] module is active by default [Tue Aug 02 05:51:41.909414 2022] [ipv6calc:notice] [pid ...:tid ...] internal main library version: 4.0.1 API: 4.0.0 (shared) [Tue Aug 02 05:51:41.909424 2022] [ipv6calc:notice] [pid ...:tid ...] internal database library version: 4.0.1 API: 4.0.0 (shared) [Tue Aug 02 05:51:41.910225 2022] [ipv6calc:notice] [pid ...:tid ...] configured module actions: anonymize=ON countrycode=ON asn=ON registry=ON geonameid=ON [Tue Aug 02 05:51:41.910233 2022] [ipv6calc:notice] [pid ...:tid ...] default module debug level: 0x00000000 (0) [Tue Aug 02 05:51:41.910237 2022] [ipv6calc:notice] [pid ...:tid ...] module cache: ON (default) limit=20 (default/minimum) statistics_interval=0 (default) [Tue Aug 02 05:51:41.934758 2022] [ipv6calc:notice] [pid ...:tid ...] features: GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID [Tue Aug 02 05:51:41.934810 2022] [ipv6calc:notice] [pid ...:tid ...] capabilities: GeoIP2(dyn-load/MaxMindDB) IP2Location(dyn-load) DBIP2(dyn-load/MaxMindDB) DB_AS_REG(BuiltIn) DB_CC_REG(BuiltIn) DB_IPV4_REG(BuiltIn) DB_IPV6_REG(BuiltIn) DB_IEEE(BuiltIn) [Tue Aug 02 05:51:41.934819 2022] [ipv6calc:notice] [pid ...:tid ...] supported anonymization methods: ANON_ZEROISE ANON_ANONYMIZE ANON_KEEP-TYPE-ASN-CC ANON_KEEP-TYPE-GEONAMEID [Tue Aug 02 05:51:41.934827 2022] [ipv6calc:notice] [pid ...:tid ...] configured anonymization method: keep-type-asn-cc [Tue Aug 02 05:51:42.289411 2022] [ipv6calc:notice] [pid ...:tid ...] module is active by default [Tue Aug 02 05:51:42.289498 2022] [ipv6calc:notice] [pid ...:tid ...] internal main library version: 4.0.1 API: 4.0.0 (shared) [Tue Aug 02 05:51:42.289515 2022] [ipv6calc:notice] [pid ...:tid ...] internal database library version: 4.0.1 API: 4.0.0 (shared) [Tue Aug 02 05:51:42.289529 2022] [ipv6calc:notice] [pid ...:tid ...] configured module actions: anonymize=ON countrycode=ON asn=ON registry=ON geonameid=ON [Tue Aug 02 05:51:42.289536 2022] [ipv6calc:notice] [pid ...:tid ...] default module debug level: 0x00000000 (0) [Tue Aug 02 05:51:42.289548 2022] [ipv6calc:notice] [pid ...:tid ...] module cache: ON (default) limit=20 (default/minimum) statistics_interval=0 (default) [Tue Aug 02 05:51:42.293067 2022] [ipv6calc:notice] [pid ...:tid ...] features: GeoIP GeoIPv6 IP2Location IP2Location6 DBIPv4 DBIPv6 DB_AS_REG DB_IPV4_REG DB_IPV6_REG DB_IPV4_AS DB_IPV6_AS DB_IPV4_CC DB_IPV6_CC DB_IPV4_COUNTRY DB_IPV6_COUNTRY DB_IPV4_CITY DB_IPV6_CITY DB_IPV4_REGION DB_IPV6_REGION DB_CC_REG DB_IEEE DB_IPV4_INFO DB_IPV6_INFO DB_IPV4_GEONAMEID DB_IPV6_GEONAMEID [Tue Aug 02 05:51:42.293165 2022] [ipv6calc:notice] [pid ...:tid ...] capabilities: GeoIP2(dyn-load/MaxMindDB) IP2Location(dyn-load) DBIP2(dyn-load/MaxMindDB) DB_AS_REG(BuiltIn) DB_CC_REG(BuiltIn) DB_IPV4_REG(BuiltIn) DB_IPV6_REG(BuiltIn) DB_IEEE(BuiltIn) [Tue Aug 02 05:51:42.293176 2022] [ipv6calc:notice] [pid ...:tid ...] supported anonymization methods: ANON_ZEROISE ANON_ANONYMIZE ANON ``` ### Access log ### Anonymized log file according to example LogFormat looks then like: ``` a909:16fa:9092:23ff:a909:4941::7 "DE" - [30/May/2015:18:14:59 +0200] "GET / HTTP/1.1" 403 4609 "-" "curl/7.40.0" a909:16fa:9092:23ff:a909:4941::7 "DE" - [30/May/2015:18:15:01 +0200] "GET / HTTP/1.1" 403 4609 "-" "curl/7.40.0" 127.0.0.0 "-" - [30/May/2015:18:15:02 +0200] "HEAD / HTTP/1.0" 403 - "-" "-" ``` ### Log file with anonymized IP address and enriched with geolocation information looks then like: ``` LogFormat "%{IPV6CALC_CLIENT_IP_ANON}e %{IPV6CALC_ANON_METHOD}e %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{local}p \"%{Host}i\" \"%{X-Forwarded-For}i\" \"%{IPV6CALC_CLIENT_COUNTRYCODE}e/%{IPV6CALC_CLIENT_ASN}e/%{IPV6CALC_CLIENT_REGISTRY}e/%{IPV6CALC_CLIENT_GEONAMEID}e\""` ``` ``` 245.216.31.139 - - [31/Jul/2022:23:52:17 +0200] "GET / HTTP/1.1" 200 4514 "http://ip.bieringer.net/" "Mozilla/5.0 (compatible; DuckDuckGo-Favicons-Bot/1.0; +http://duckduckgo.com)" 80 "ip.bieringer.net" "-" "US/8075/ARIN/4788822" ``` ## Troubleshooting ### Database access/status `ipv6calc -vv` shows proper database setup while Apache has issues => check/adjust SELinux (temporary set to permissive) ### Module debugging use `ipv6calcDebuglevel` to enable built-in debug information (take care on heavy loaded webservers, can create huge amount of lines) ipv6calc-4.1.0/mod_ipv6calc/ipv6calc.cgi000077500000000000000000000012431444154247200177760ustar00rootroot00000000000000#!/usr/bin/perl -w -T # # Project : ipv6calc/mod_ipv6calc # File : ipv6calc.cgi # Version : $Id: f33067600678714c6812091a7232451b9bd7b87d $ # Copyright : 2019-2019 by Peter Bieringer # # Simple Perl web interface to demonstrate capabilities of mod_ipv6calc ## general use strict; use POSIX; use warnings; my @envs = ( 'REMOTE_ADDR', 'IPV6CALC_CLIENT_IP_ANON', 'IPV6CALC_CLIENT_COUNTRYCODE', 'IPV6CALC_CLIENT_ASN', 'IPV6CALC_CLIENT_REGISTRY', 'IPV6CALC_ANON_METHOD' ); ## Print output print("Content-type: text/plain\n\n"); for my $env (@envs) { if ( defined $ENV{$env} ) { print("$env=" . $ENV{$env} . "\n"); }; }; exit(0); ipv6calc-4.1.0/mod_ipv6calc/ipv6calc.conf000066400000000000000000000116161444154247200201630ustar00rootroot00000000000000# Project : ipv6calc/mod_ipv6calc # File : ipv6calc.conf # Version : $Id$ ## Information # Depending on module options and available databases following environment variables are set # IPV6CALC_CLIENT_IP_ANON anonymized IP address # IPV6CALC_CLIENT_COUNTRYCODE country code of IP address # IPV6CALC_CLIENT_ASN ASN of IP address # IPV6CALC_CLIENT_REGISTRY Registry of IP address # IPV6CALC_CLIENT_GEONAMEID GeonameID of IP address # IPV6CALC_ANON_METHOD used anonymization method ## Activation # following steps are necessary to activate all the features, see also below # 1. enable loading of module # 2. enable module itself # 3. enable (additional) custom log directive # optional for testing/demonstration # 4. extend ACL to ipv6calc.cgi # 5. copy ipv6calc.cgi to /var/www/cgi-bin ## enable this config option to activate the module (step 1) #LoadModule ipv6calc_module modules/mod_ipv6calc.so #### module options ## enable module (step 2) #ipv6calcEnable on ## activate by default (can be controlled by environment 'ipv6calcActive' or 'ipv6calcPassive' using SetEnv/SetEnvIf) # depending on final selection (active or passive) following tokens will be found in environment variables # -PbD- : Passive by Default # -PbE- : Passive by Environment ipv6calcDefaultActive on ## do not activate fallbacks or stop (don't start Apache) if this module has an issue #ipv6calcNoFallback on ## set module debug level (bitwise, see also source code), understands hex and decimal # debug all #ipv6calcDebuglevel -1 # IPV6CALC_DEBUG_CACHE_LOOKUP #ipv6calcDebuglevel 0x0010 # IPV6CALC_DEBUG_CACHE_ENTRIES #ipv6calcDebuglevel 0x0020 # IPV6CALC_DEBUG_CACHE_ENTRIES #ipv6calcDebuglevel 0x0040 # IPV6CALC_DEBUG_CACHE_STORE #ipv6calcDebuglevel 0x0080 # IPV6CALC_DEBUG_SHOW_DB_INFO #ipv6calcDebuglevel 0x0100 # IPV6CALC_DEBUG_SHOW_CLIENT_IP #ipv6calcDebuglevel 0x1000 # # IPV6CALC_DEBUG_SHOW_ENVIRONMENT #ipv6calcDebuglevel 0x2000 ## disable internal cache (default: ON) #ipv6calcCache off ## change cache limit (min,default/max see source code) #ipv6calcCacheLimit 40 ## log cache statistics after amount of requests #ipv6calcCacheStatisticsInterval 1000 ### module actions ## set IPV6CALC_CLIENT_IP_ANON ipv6calcActionAnonymize on ## set IPV6CALC_CLIENT_COUNTRYCODE ipv6calcActionCountrycode on ## set IPV6CALC_CLIENT_ASN ipv6calcActionAsn on ## set IPV6CALC_CLIENT_REGISTRY ipv6calcActionRegistry on ## set IPV6CALC_CLIENT_GEONAMEID ipv6calcActionGeonameid on #### options forwarded into ipv6calc libraries ## debugging #ipv6calcOption debug 0x8 ## general database configuration #ipv6calcOption db-external-disable yes #ipv6calcOption db-ip2location-disable yes #ipv6calcOption db-geoip2-disable yes #ipv6calcOption db-dbip2-disable yes ## database path configuration (see also ipv6calc -h|-vv) #ipv6calcOption db-external-dir /usr/share/ipv6calc/db #ipv6calcOption db-ip2location-dir /usr/share/IP2Location #ipv6calcOption db-geoip2-dir /usr/share/GeoIP #ipv6calcOption db-dbip2-dir /usr/share/DBIP ### anonymization settings, see also ### ipv6calc -A anonymize -h ## anonymization method: keep-type-asn-cc (requires ASN & CountryCode database) ipv6calcOption anonymize-preset keep-type-asn-cc ## anonymization method: zeroize (optional with custom values) #ipv6calcOption anonymize-method zeroize #ipv6calcOption mask-ipv4 16 #ipv6calcOption mask-ipv6 32 #ipv6calcOption mask-eui64 16 #ipv6calcOption mask-mac 16 #ipv6calcOption mask-autoadjust yes ## anonymization method: anonymize (optional with custom values) #ipv6calcOption anonymize-method anonymize #ipv6calcOption mask-ipv4 16 #ipv6calcOption mask-ipv6 32 #ipv6calcOption mask-eui64 16 #ipv6calcOption mask-mac 16 #ipv6calcOption mask-autoadjust yes #### log with anonymized client IP (instead of %a/%h) and country code/ASN/Registry/AnonymizationMethod/GeonameID (instead of %l) LogFormat "%{IPV6CALC_CLIENT_IP_ANON}e \"%{IPV6CALC_CLIENT_COUNTRYCODE}e/%{IPV6CALC_CLIENT_ASN}e/%{IPV6CALC_CLIENT_REGISTRY}e/%{IPV6CALC_ANON_METHOD}e/%{IPV6CALC_CLIENT_GEONAMEID}e\" %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined_anon ## enable this config option to get an extra access log (step 3) #CustomLog logs/access_anon_log combined_anon ## Access control Order Deny,Allow # Allow from localhost Allow from 127.0.0.1 Allow from ::1 # Allow from all (enable this once you want to serve this as a public service #Allow from all # Final default Deny from all ipv6calc-4.1.0/mod_ipv6calc/mod_ipv6calc.c000066400000000000000000001447511444154247200203260ustar00rootroot00000000000000/* * Project : ipv6calc/mod_ipv6calc * File : mod_ipv6calc.c * Version : $Id: 674ebcc6ca8c28e57028086a149c591329175681 $ * Copyright : 2015-2021 by Peter Bieringer * * Information: * ipv6calc Apache module * * Currently supporting: * - client IP address anonymization by setting environment IPV6CALC_CLIENT_IP_ANON * - client IP address country code retrievement by setting environment IPV6CALC_CLIENT_COUNTRYCODE * - client IP address ASN retrievement by setting environment IPV6CALC_CLIENT_ASN * - client IP address registry retrievement by setting environment IPV6CALC_CLIENT_REGISTRY * - client IP address GeonameID retrievement by setting environment IPV6CALC_CLIENT_GEONAMEID * - anonymization method by setting IPV6CALC_ANON_METHOD * * mode_ipv6calc behavior can be controlled by config, e.g. * ipv6calcDefaultActive on * ipv6calcActionAnonymize on * ipv6calcActionCountrycode on * ipv6calcActionAsn on * ipv6calcActionRegistry on * ipv6calcCache off (default: on) * ipv6calcCacheLimit >= IPV6CALC_CACHE_LRI_LIMIT_MIN * ipv6calcCacheStatisticsInterval 0:disable * ipv6calcDebuglevel >0 (see defines below) * * ipv6calc behavior can be controlled by config, e.g * ipv6calcOption debug 0x8 * ipv6calcOption anonymize-preset keep-type-asn-cc|keep-type-geonameid * ipv6calcOption disable-external yes * ipv6calcOption disable-ip2location yes * ipv6calcOption mask-ipv4 16 * ipv6calcOption mask-ipv6 32 * * see also * ipv6calc -h * ipv6calc -A anonymize -h */ // Apache/APR related includes #include #include #include #include #include #include // ipv6calc related includes #undef PACKAGE_BUGREPORT #undef PACKAGE_NAME #undef PACKAGE_STRING #undef PACKAGE_TARNAME #undef PACKAGE_URL #undef PACKAGE_VERSION #include "config.h" #include "libipv6calc.h" #include "ipv6calcoptions.h" #include "libipaddr.h" #include "libipv6calc_db_wrapper.h" #include "libipv6calcdebug.h" /* features */ int feature_zeroize = 1; // always supported int feature_anon = 1; // always supported int feature_kp = 0; // will be checked later int feature_kg = 0; // will be checked later /*************************** * Module copyright ***************************/ /* global program related definitions */ #define PROGRAM_NAME "mod_ipv6calc" #define PROGRAM_COPYRIGHT "(P) & (C) 2015-" COPYRIGHT_YEAR " by Peter Bieringer " /*************************** * Module environment controls ***************************/ #define ENV_ipv6calcActive "ipv6calcActive" #define ENV_ipv6calcPassive "ipv6calcPassive" /*************************** * Module debugging ***************************/ #define IPV6CALC_DEBUG_MAP_DEBUG_TO_NOTICE 0x0001 #define IPV6CALC_DEBUG_CACHE_LOOKUP 0x0010 #define IPV6CALC_DEBUG_CACHE_ENTRIES 0x0020 #define IPV6CALC_DEBUG_CACHE_STORE 0x0040 #define IPV6CALC_DEBUG_RETRIEVE_DATA 0x0080 #define IPV6CALC_DEBUG_SHOW_DB_INFO 0x0100 #define IPV6CALC_DEBUG_SHOW_CLIENT_IP 0x1000 #define IPV6CALC_DEBUG_SHOW_ENVIRONMENT 0x2000 /*************************** * ipv6calc library debugging and option handling ***************************/ long int ipv6calc_debug = 0; // ipv6calc_debug usage (possible set via option) /* options (only used via the option parser) */ struct option longopts[IPV6CALC_MAXLONGOPTIONS]; char shortopts[IPV6CALC_STRING_MAX] = ""; int longopts_maxentries = 0; /*************************** * Prototyping ***************************/ static const char *set_ipv6calc_enable(cmd_parms *cmd, void *dummy, int arg); static const char *set_ipv6calc_default_active(cmd_parms *cmd, void *dummy, int arg); static const char *set_ipv6calc_no_fallback(cmd_parms *cmd, void *dummy, int arg); static const char *set_ipv6calc_cache(cmd_parms *cmd, void *dummy, int arg); static const char *set_ipv6calc_cache_limit(cmd_parms *cmd, void *dummy, const char *value, int arg); static const char *set_ipv6calc_cache_statistics_interval(cmd_parms *cmd, void *dummy, const char *value, int arg); static const char *set_ipv6calc_debuglevel(cmd_parms *cmd, void *dummy, const char *value, int arg); static const char *set_ipv6calc_action_anonymize(cmd_parms *cmd, void *dummy, int arg); static const char *set_ipv6calc_action_countrycode(cmd_parms *cmd, void *dummy, int arg); static const char *set_ipv6calc_action_asn(cmd_parms *cmd, void *dummy, int arg); static const char *set_ipv6calc_action_registry(cmd_parms *cmd, void *dummy, int arg); static const char *set_ipv6calc_action_geonameid(cmd_parms *cmd, void *dummy, int arg); static const char *set_ipv6calc_option(cmd_parms *cmd, void *dummy, const char *name, const char *value, int arg); /*************************** * Cache (Last Recently Inserted) ***************************/ #define IPV6CALC_CACHE_LRI_SIZE 200 #define IPV6CALC_CACHE_LRI_LIMIT_MIN 20 static long int ipv6calc_cache_lri_checked[2] = {0, 0}; static int ipv6calc_cache_lri_max[2] = {0, 0}; static int ipv6calc_cache_lri_last[2] = {0, 0 }; static long int ipv6calc_cache_lri_statistics[2][IPV6CALC_CACHE_LRI_SIZE]; static char ipv6calc_cache_lri_value_anon[2][IPV6CALC_CACHE_LRI_SIZE][APRMAXHOSTLEN]; static char ipv6calc_cache_lri_value_cc[2][IPV6CALC_CACHE_LRI_SIZE][APRMAXHOSTLEN]; static char ipv6calc_cache_lri_value_asn[2][IPV6CALC_CACHE_LRI_SIZE][APRMAXHOSTLEN]; static char ipv6calc_cache_lri_value_registry[2][IPV6CALC_CACHE_LRI_SIZE][APRMAXHOSTLEN]; static char ipv6calc_cache_lri_value_geonameid[2][IPV6CALC_CACHE_LRI_SIZE][APRMAXHOSTLEN]; static struct in_addr ipv6calc_cache_lri_ipv4_token[IPV6CALC_CACHE_LRI_SIZE]; #if APR_HAVE_IPV6 static struct in6_addr ipv6calc_cache_lri_ipv6_token[IPV6CALC_CACHE_LRI_SIZE]; #endif /*************************** * Static values ***************************/ static const char *anon_method_name = "-"; /*************************** * Definitions ***************************/ /* define module name */ module AP_MODULE_DECLARE_DATA ipv6calc_module; /* define config structure */ typedef struct { int enabled; int default_active; int no_fallback; int cache; int cache_limit; unsigned long int cache_statistics_interval; uint32_t debuglevel; int action_anonymize; int action_countrycode; int action_asn; int action_registry; int action_geonameid; int anon_set_default; s_ipv6calc_anon_set ipv6calc_anon_set; } ipv6calc_server_config; /* module options forwarded to ipv6calc during init */ typedef struct { char name[IPV6CALC_STRING_MAX]; char value[IPV6CALC_STRING_MAX]; } ipv6calc_option; #define mod_ipv6calc_options_max IPV6CALC_MAXLONGOPTIONS ipv6calc_option ipv6calc_option_list[mod_ipv6calc_options_max]; int ipv6calc_option_list_entries = 0; #define mod_ipv6calc_pi_IPV4 0 #define mod_ipv6calc_pi_IPV6 1 /* * Config options (ipv6calc_cmds) */ static const command_rec ipv6calc_cmds[] = { AP_INIT_FLAG("ipv6calcEnable", set_ipv6calc_enable, NULL, OR_FILEINFO, "Turn on mod_ipv6calc"), AP_INIT_FLAG("ipv6calcDefaultActive", set_ipv6calc_default_active, NULL, OR_FILEINFO, "mod_ipv6calc active by default (on/off can be controlled by environment)"), AP_INIT_FLAG("ipv6calcNoFallback", set_ipv6calc_no_fallback, NULL, OR_FILEINFO, "Do not fallback in case of issues with mod_ipv6calc"), AP_INIT_FLAG("ipv6calcCache", set_ipv6calc_cache, NULL, OR_FILEINFO, "Turn off mod_ipv6calc cache"), AP_INIT_TAKE1("ipv6calcCacheLimit", (const char *(*)()) set_ipv6calc_cache_limit, NULL, OR_FILEINFO, "mod_ipv6calc cache limit: "), AP_INIT_TAKE1("ipv6calcCacheStatisticsInterval", (const char *(*)()) set_ipv6calc_cache_statistics_interval, NULL, OR_FILEINFO, "mod_ipv6calc cache statistics interval: (0=disabled)"), AP_INIT_TAKE1("ipv6calcDebuglevel", (const char *(*)()) set_ipv6calc_debuglevel, NULL, OR_FILEINFO, "Debug level of module (binary or'ed): "), AP_INIT_FLAG("ipv6calcActionAnonymize", set_ipv6calc_action_anonymize, NULL, OR_FILEINFO, "Store anonymized IP address in IPV6CALC_CLIENT_IP_ANON"), AP_INIT_FLAG("ipv6calcActionCountrycode", set_ipv6calc_action_countrycode, NULL, OR_FILEINFO, "Store Country Code of IP address in IPV6CALC_CLIENT_COUNTRYCODE"), AP_INIT_FLAG("ipv6calcActionAsn", set_ipv6calc_action_asn, NULL, OR_FILEINFO, "Store ASN of IP address in IPV6CALC_CLIENT_ASN"), AP_INIT_FLAG("ipv6calcActionRegistry", set_ipv6calc_action_registry, NULL, OR_FILEINFO, "Store Registry of IP address in IPV6CALC_CLIENT_REGISTRY"), AP_INIT_FLAG("ipv6calcActionGeonameid", set_ipv6calc_action_geonameid, NULL, OR_FILEINFO, "Store GeonameID of IP address in IPV6CALC_CLIENT_GEONAMEID"), AP_INIT_TAKE2("ipv6calcOption", (const char *(*)()) set_ipv6calc_option, NULL, OR_FILEINFO, "Define ipv6calc option: "), {NULL} }; /*************************** * Support functions ***************************/ static int ipv6calc_support_init(server_rec *s) { int i, result; static int ipv6calc_options_added = 0; ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(s->module_config, &ipv6calc_module); int mod_ipv6calc_APLOG_DEBUG = (config->debuglevel & IPV6CALC_DEBUG_MAP_DEBUG_TO_NOTICE) ? APLOG_NOTICE : APLOG_DEBUG; // check enabled if (config->enabled == 0) { ap_log_error(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, s , "module is NOT enabled (check for 'ipv6calcEnable on')" ); return 0; }; ap_log_error(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, s , "start ipv6calc initialization" ); /* add options */ if (ipv6calc_options_added == 0) { ipv6calc_options_add_common_anon(shortopts, sizeof(shortopts), longopts, &longopts_maxentries); ipv6calc_options_add_common_basic(shortopts, sizeof(shortopts), longopts, &longopts_maxentries); ipv6calc_options_added = 1; }; ipv6calc_quiet = 1; // be quiet by default /* initialize ipv6calc options from list retrieved via APR config parser */ ap_log_error(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, s , "apply ipv6calc options" ); if (ipv6calc_option_list_entries > 0) { for (i = 0; i < ipv6calc_option_list_entries; i++) { result = ipv6calc_set_option(longopts, ipv6calc_option_list[i].name, ipv6calc_option_list[i].value, &config->ipv6calc_anon_set); if (result == 0) { ap_log_error(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, s , "ipv6calc option %s: %s=%s" , "successfully set" , ipv6calc_option_list[i].name , ipv6calc_option_list[i].value ); } else { ap_log_error(APLOG_MARK, APLOG_WARNING, 0, s , "ipv6calc option %s: %s=%s" , "NOT UNDERSTOOD" , ipv6calc_option_list[i].name , ipv6calc_option_list[i].value ); }; if ((result == 0) && ( (strcmp(ipv6calc_option_list[i].name, "anonymize-preset") == 0) || (strcmp(ipv6calc_option_list[i].name, "anonymize-method") == 0) ) ) { config->anon_set_default = 0; }; }; }; ap_log_error(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, s , "start ipv6calc database wrapper initialization" ); result = libipv6calc_db_wrapper_init(""); if (result != 0) { config->enabled = 0; if (config->no_fallback) { ap_log_error(APLOG_MARK, APLOG_ERR, 0, s , "database wrapper initialization failed (NO-FALLBACK activated, STOP NOW): %d" , result ); return(1); } else { ap_log_error(APLOG_MARK, APLOG_WARNING, 0, s , "database wrapper initialization failed (disable module now): %d" , result ); return(0); }; } else { ap_log_error(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, s , "ipv6calc database wrapper initialization finished" ); }; /* check for KeepTypeAsnCC support */ if ((libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEASNCC_IPV4_REQ_DB) == 1) \ && (libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEASNCC_IPV6_REQ_DB) == 1)) { feature_kp = 1; }; /* check for KeepTypeAsnCC support */ if ((libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEGEONAMEID_IPV4_REQ_DB) == 1) \ && (libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEGEONAMEID_IPV6_REQ_DB) == 1)) { feature_kg = 1; }; return(0); }; /*************************** * Hooks functions ***************************/ /* * ipv6calc_cleanup */ static apr_status_t ipv6calc_cleanup(void *cfgdata) { // cleanup ipv6calc database wrapper libipv6calc_cleanup(); return APR_SUCCESS; }; /* * ipv6calc_post_config */ static int ipv6calc_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s) { char string[IPV6CALC_STRING_MAX] = ""; int result; ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(s->module_config, &ipv6calc_module); int mod_ipv6calc_APLOG_DEBUG = (config->debuglevel & IPV6CALC_DEBUG_MAP_DEBUG_TO_NOTICE) ? APLOG_NOTICE : APLOG_DEBUG; // check enabled if (config->enabled == 0) { ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "module is NOT enabled (check for 'ipv6calcEnable on')" ); return 0; }; // check active if (config->default_active == 0) { ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "module is NOT active by default" ); } else { ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "module is active by default" ); }; #ifdef SHARED_LIBRARY IPV6CALC_LIB_VERSION_CHECK_EXIT(IPV6CALC_PACKAGE_VERSION_NUMERIC, IPV6CALC_PACKAGE_VERSION_STRING) IPV6CALC_DB_LIB_VERSION_CHECK_EXIT(IPV6CALC_PACKAGE_VERSION_NUMERIC, IPV6CALC_PACKAGE_VERSION_STRING) #endif // SHARED_LIBRARY ap_log_error(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, s , "ipv6calc_post_config" ); ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "internal main library version: %s API: %s (%s)" , libipv6calc_lib_version_string() , libipv6calc_api_version_string() #ifdef SHARED_LIBRARY , "shared" #else // SHARED_LIBRARY , "built-in" #endif // SHARED_LIBRARY ); ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "internal database library version: %s API: %s (%s)" , libipv6calc_db_lib_version_string() , libipv6calc_db_api_version_string() #ifdef SHARED_LIBRARY , "shared" #else // SHARED_LIBRARY , "built-in" #endif // SHARED_LIBRARY ); ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "%s module actions: anonymize=%s countrycode=%s asn=%s registry=%s geonameid=%s" , ((config->action_anonymize + config->action_countrycode) == 0) ? "default" : "configured" , (config->action_anonymize > 0) ? "ON" : "OFF" , (config->action_countrycode > 0) ? "ON" : "OFF" , (config->action_asn > 0) ? "ON" : "OFF" , (config->action_registry > 0) ? "ON" : "OFF" , (config->action_geonameid > 0) ? "ON" : "OFF" ); ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "%s module debug level: 0x%08x (%d)" , (config->debuglevel == 0) ? "default" : "configured" , config->debuglevel , config->debuglevel ); if (config->cache == 0) { ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "module cache: OFF (configured)" ); } else { ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "module cache: ON (default) limit=%d (%s) statistics_interval=%lu (%s)" , config->cache_limit , (config->cache_limit == IPV6CALC_CACHE_LRI_LIMIT_MIN) ? "default/minimum" : "configured" , config->cache_statistics_interval , (config->cache_statistics_interval == 0) ? "default" : "configured" ); }; result = ipv6calc_support_init(s); if (result != 0) { return(1); }; string[0] = '\0'; libipv6calc_db_wrapper_features(string, sizeof(string)); ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "features: %s" , string ); string[0] = '\0'; libipv6calc_db_wrapper_capabilities(string, sizeof(string)); ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "capabilities: %s" , string ); if (config->debuglevel && IPV6CALC_DEBUG_SHOW_DB_INFO) { libipv6calc_db_wrapper_print_db_info(0, ""); }; ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "supported anonymization methods:%s%s%s%s" , (feature_zeroize == 1) ? " ANON_ZEROISE" : "" , (feature_anon == 1) ? " ANON_ANONYMIZE" : "" , (feature_kp == 1) ? " ANON_KEEP-TYPE-ASN-CC" : "" , (feature_kg == 1) ? " ANON_KEEP-TYPE-GEONAMEID" : "" ); if (config->ipv6calc_anon_set.method != ANON_METHOD_KEEPTYPEASNCC) { ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "%s anonymization method: %s mask_ipv4=%d mask_ipv6=%d mask_eui64=%d mask_mac=%d mask_autoadjust=%s" , (config->anon_set_default == 1) ? "default" : "configured" , libipv6calc_anon_method_name(&config->ipv6calc_anon_set) , config->ipv6calc_anon_set.mask_ipv4 , config->ipv6calc_anon_set.mask_ipv6 , config->ipv6calc_anon_set.mask_eui64 , config->ipv6calc_anon_set.mask_mac , (config->ipv6calc_anon_set.mask_autoadjust > 0) ? "yes" : "no" ); } else { ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "%s anonymization method: %s%s%s" , (config->anon_set_default == 1) ? "default" : "configured" , libipv6calc_anon_method_name(&config->ipv6calc_anon_set) , ((feature_kp == 0) && (config->ipv6calc_anon_set.method == ANON_METHOD_KEEPTYPEASNCC)) ? " NOT-SUPPORTED" : "" , ((feature_kg == 0) && (config->ipv6calc_anon_set.method == ANON_METHOD_KEEPTYPEGEONAMEID)) ? " NOT-SUPPORTED" : "" ); if ((feature_kp == 0) && (feature_kg == 0)) { if (config->no_fallback) { ap_log_error(APLOG_MARK, APLOG_ERR, 0, s , "%s anonymization method: %s NOT-SUPPORTED, NO-FALLBACK activated - STOP NOW" , (config->anon_set_default == 1) ? "default" : "configured" , libipv6calc_anon_method_name(&config->ipv6calc_anon_set) ); return(1); }; // fallback libipv6calc_anon_set_by_name(&config->ipv6calc_anon_set, "as"); // anonymize standard ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s , "fallback anonymization method: %s mask_ipv4=%d mask_ipv6=%d mask_eui64=%d mask_mac=%d mask_autoadjust=%s" , libipv6calc_anon_method_name(&config->ipv6calc_anon_set) , config->ipv6calc_anon_set.mask_ipv4 , config->ipv6calc_anon_set.mask_ipv6 , config->ipv6calc_anon_set.mask_eui64 , config->ipv6calc_anon_set.mask_mac , (config->ipv6calc_anon_set.mask_autoadjust > 0) ? "yes" : "no" ); }; }; anon_method_name = libipv6calc_anon_method_name(&config->ipv6calc_anon_set); return(0); }; /* * ipv6calc_child_init */ static void ipv6calc_child_init(apr_pool_t *p, server_rec *s) { apr_pool_cleanup_register(p, NULL, ipv6calc_cleanup, ipv6calc_cleanup); ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(s->module_config, &ipv6calc_module); int mod_ipv6calc_APLOG_DEBUG = (config->debuglevel & IPV6CALC_DEBUG_MAP_DEBUG_TO_NOTICE) ? APLOG_NOTICE : APLOG_DEBUG; // check enabled if (config->enabled == 0) { ap_log_error(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, s , "module is NOT enabled (check for 'ipv6calcEnable on')" ); return; }; ap_log_error(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, s , "ipv6calc_child_init" ); ipv6calc_support_init(s); /* check for KeepTypeAsnCC support */ if ((libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEASNCC_IPV4_REQ_DB) == 1) \ && (libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEASNCC_IPV6_REQ_DB) == 1)) { feature_kp = 1; }; /* check for KeepTypeAsnCC support */ if ((libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEGEONAMEID_IPV4_REQ_DB) == 1) \ && (libipv6calc_db_wrapper_has_features(ANON_METHOD_KEEPTYPEGEONAMEID_IPV6_REQ_DB) == 1)) { feature_kg = 1; }; if (config->ipv6calc_anon_set.method == ANON_METHOD_KEEPTYPEASNCC) { if (feature_kp == 0) { // fallback libipv6calc_anon_set_by_name(&config->ipv6calc_anon_set, "as"); // anonymize standard }; }; if (config->ipv6calc_anon_set.method == ANON_METHOD_KEEPTYPEGEONAMEID) { if (feature_kg == 0) { // fallback libipv6calc_anon_set_by_name(&config->ipv6calc_anon_set, "as"); // anonymize standard }; }; return; }; /* * ipv6calc_post_read_request (ACTION CODE) */ static int ipv6calc_post_read_request(request_rec *r) { int i, hit; int pi; // proto index (0:IPv4, 1:IPv6 int p_mapped; // proto mapped (IPv6 in IPv4) int mod_ipv6calc_APLOG_DEBUG = APLOG_DEBUG; // Apache/APR related includes apr_sockaddr_t *client_addr_p; // structure defined in apr_network_io.h ipv6calc_server_config* config; // ipv6calc related ipv6calc_ipaddr ipaddr; ipv6calc_ipv4addr ipv4addr; #if APR_HAVE_IPV6 ipv6calc_ipv6addr ipv6addr; #endif // workflow related char client_addr_string_anonymized[APRMAXHOSTLEN]; char cc[APRMAXHOSTLEN]; char asn[APRMAXHOSTLEN]; char registry[APRMAXHOSTLEN]; char geonameid[APRMAXHOSTLEN]; unsigned int data_source; int result; // *** workflow // get config config = (ipv6calc_server_config*) ap_get_module_config(r->server->module_config, &ipv6calc_module); // check enabled if (config->enabled == 0) { return OK; }; if (config->debuglevel & IPV6CALC_DEBUG_MAP_DEBUG_TO_NOTICE) { mod_ipv6calc_APLOG_DEBUG = APLOG_NOTICE; }; if (config->debuglevel & IPV6CALC_DEBUG_SHOW_ENVIRONMENT) { const apr_array_header_t *fields; int i; apr_table_entry_t *e = 0; fields = apr_table_elts(r->subprocess_env); e = (apr_table_entry_t *) fields->elts; for(i = 0; i < fields->nelts; i++) { ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r, "environment %s: %s", e[i].key, e[i].val); } }; if (config->default_active == 0) { ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r, "configuration 'ipv6calcDefaultActive off', check for environment '%s'", ENV_ipv6calcActive); if (! apr_table_get(r->subprocess_env, ENV_ipv6calcActive)) { ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r, "configuration 'ipv6calcDefaultActive off', NOT found in environment '%s' (return '-PbD-')", ENV_ipv6calcActive); // pdb <-> Passive by Default apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_COUNTRYCODE", "-PbD-"); apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_ASN", "-PbD-"); apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_REGISTRY", "-PbD-"); apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_GEONAMEID", "-PbD-"); apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_IP_ANON", "-PbD-"); apr_table_set(r->subprocess_env, "IPV6CALC_ANON_METHOD", "-PbD-"); return OK; } else { ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r, "configuration 'ipv6calcDefaultActive off', found in environment '%s'", ENV_ipv6calcActive); }; } else { ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r, "configuration 'ipv6calcDefaultActive on', check for environment '%s'", ENV_ipv6calcPassive); if (apr_table_get(r->subprocess_env, ENV_ipv6calcPassive)) { ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r, "configuration 'ipv6calcDefaultActive on', found in environment '%s' (return '-PbE')", ENV_ipv6calcPassive); // pdb <-> Passive by Environment apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_COUNTRYCODE", "-PbE-"); apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_ASN", "-PbE-"); apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_REGISTRY", "-PbE-"); apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_GEONAMEID", "-PbE-"); apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_IP_ANON", "-PbE-"); apr_table_set(r->subprocess_env, "IPV6CALC_ANON_METHOD", "-PbE-"); return OK; } else { ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r, "configuration 'ipv6calcDefaultActive on', NOT found in environment '%s'", ENV_ipv6calcPassive); }; }; // get client address (aka REMOTE_IP) #if (((AP_SERVER_MAJORVERSION_NUMBER == 2) && (AP_SERVER_MINORVERSION_NUMBER >= 4)) || (AP_SERVER_MAJORVERSION_NUMBER > 2)) client_addr_p = r->connection->client_addr; #else client_addr_p = r->connection->remote_addr; #endif ap_log_rerror(APLOG_MARK, (config->debuglevel & IPV6CALC_DEBUG_SHOW_CLIENT_IP) ? APLOG_NOTICE : mod_ipv6calc_APLOG_DEBUG, 0, r , "client IP address: %s family: %d" #if (((AP_SERVER_MAJORVERSION_NUMBER == 2) && (AP_SERVER_MINORVERSION_NUMBER >= 4)) || (AP_SERVER_MAJORVERSION_NUMBER > 2)) , r->connection->client_ip #else , r->connection->remote_ip #endif , client_addr_p->family ); // convert address into ipv6calc structure libipaddr_clearall(&ipaddr); /* store address */ if (client_addr_p->family == APR_INET) { // IPv4 pi = mod_ipv6calc_pi_IPV4; p_mapped = 0; #if APR_HAVE_IPV6 } else if (client_addr_p->family == APR_INET6) { // IPv6 pi = mod_ipv6calc_pi_IPV6; // check for compat/mapped if ( client_addr_p->sa.sin6.sin6_addr.s6_addr32[0] == 0 && client_addr_p->sa.sin6.sin6_addr.s6_addr32[1] == 0 && client_addr_p->sa.sin6.sin6_addr.s6_addr32[2] == 0xffff0000 ) { pi = mod_ipv6calc_pi_IPV4; p_mapped = 1; } else { p_mapped = 0; }; #endif } else { // unsupported family, do nothing return OK; }; /* cache lookup */ if (config->cache == 1) { hit = -1; #if APR_HAVE_IPV6 #define IPV6CALC_COMPARE(entry) \ ( pi == mod_ipv6calc_pi_IPV4 \ && ( \ (p_mapped == 0 && ipv6calc_cache_lri_ipv4_token[entry].s_addr == client_addr_p->sa.sin.sin_addr.s_addr) \ || (p_mapped == 1 && ipv6calc_cache_lri_ipv4_token[entry].s_addr == client_addr_p->sa.sin6.sin6_addr.s6_addr32[3]) \ ) \ ) \ || ( pi == mod_ipv6calc_pi_IPV6 \ && ipv6calc_cache_lri_ipv6_token[entry].s6_addr32[3] == client_addr_p->sa.sin6.sin6_addr.s6_addr32[3] \ && ipv6calc_cache_lri_ipv6_token[entry].s6_addr32[2] == client_addr_p->sa.sin6.sin6_addr.s6_addr32[2] \ && ipv6calc_cache_lri_ipv6_token[entry].s6_addr32[1] == client_addr_p->sa.sin6.sin6_addr.s6_addr32[1] \ && ipv6calc_cache_lri_ipv6_token[entry].s6_addr32[0] == client_addr_p->sa.sin6.sin6_addr.s6_addr32[0] \ ) #else #define IPV6CALC_COMPARE(entry) \ ( pi == mod_ipv6calc_pi_IPV4 \ && ipv6calc_cache_lri_ipv4_token[entry].s_addr == client_addr_p->sa.sin.sin_addr.s_addr \ ) #endif if (ipv6calc_cache_lri_max[pi] > 0) { ipv6calc_cache_lri_checked[pi]++; if (config->debuglevel & IPV6CALC_DEBUG_CACHE_LOOKUP) { if (pi == mod_ipv6calc_pi_IPV4) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "IPv4 address to lookup in cache: %08x" , (p_mapped == 0) ? client_addr_p->sa.sin.sin_addr.s_addr : client_addr_p->sa.sin6.sin6_addr.s6_addr32[3] ); } else if (pi == mod_ipv6calc_pi_IPV6) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "IPv6 address to lookup in cache: %08x %08x %08x %08x" , client_addr_p->sa.sin6.sin6_addr.s6_addr32[0] , client_addr_p->sa.sin6.sin6_addr.s6_addr32[1] , client_addr_p->sa.sin6.sin6_addr.s6_addr32[2] , client_addr_p->sa.sin6.sin6_addr.s6_addr32[3] ); }; }; if (config->debuglevel & IPV6CALC_DEBUG_CACHE_ENTRIES) { for (i = 0; i < ipv6calc_cache_lri_max[pi]; i++) { if (pi == mod_ipv6calc_pi_IPV4) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "IPv4 address in cache %3d: %08x" , i , ipv6calc_cache_lri_ipv4_token[i].s_addr ); } else if (pi == mod_ipv6calc_pi_IPV6) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "IPv6 address in cache %3d: %08x %08x %08x %08x" , i , ipv6calc_cache_lri_ipv6_token[i].s6_addr32[0] , ipv6calc_cache_lri_ipv6_token[i].s6_addr32[1] , ipv6calc_cache_lri_ipv6_token[i].s6_addr32[2] , ipv6calc_cache_lri_ipv6_token[i].s6_addr32[3] ); }; }; }; if (config->debuglevel & IPV6CALC_DEBUG_CACHE_LOOKUP) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "check for IPv%s address in cache on last inserted entry: %d" , (pi == 0) ? "4" : "6" , ipv6calc_cache_lri_last[pi] - 1 ); }; /* check last seen one first */ if (IPV6CALC_COMPARE(ipv6calc_cache_lri_last[pi] - 1)) { ipv6calc_cache_lri_statistics[pi][0]++; hit = ipv6calc_cache_lri_last[pi] - 1; }; /* run backwards to first entry */ if ((hit < 0) && (ipv6calc_cache_lri_last[pi] > 1)) { if (config->debuglevel & IPV6CALC_DEBUG_CACHE_LOOKUP) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "check for IPv%s address in cache backwards to first entry" , (pi == 0) ? "4" : "6" ); }; for (i = ipv6calc_cache_lri_last[pi] - 1; i > 0; i--) { if (IPV6CALC_COMPARE(i - 1)) { ipv6calc_cache_lri_statistics[pi][ipv6calc_cache_lri_last[pi] - i]++; hit = i - 1; break; }; }; }; /* round robin */ if ((hit < 0) && (ipv6calc_cache_lri_last[pi] < ipv6calc_cache_lri_max[pi])) { if (config->debuglevel & IPV6CALC_DEBUG_CACHE_LOOKUP) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "check for IPv%s address in cache round robin from last entry" , (pi == 0) ? "4" : "6" ); }; for (i = ipv6calc_cache_lri_max[pi]; i > ipv6calc_cache_lri_last[pi]; i--) { if (IPV6CALC_COMPARE(i - 1)) { ipv6calc_cache_lri_statistics[pi][ipv6calc_cache_lri_max[pi] - i + ipv6calc_cache_lri_last[pi]]++; hit = i - 1; break; }; }; }; if (hit >= 0) { ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r , "retrieve data of IPv%s address from cache position: %d" , (pi == 0) ? "4" : "6" , hit ); if (config->action_countrycode == 1) { ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r , "client IP country code (from cache): %s" , ipv6calc_cache_lri_value_cc[pi][hit] ); apr_table_set(r->subprocess_env , "IPV6CALC_CLIENT_COUNTRYCODE" , ipv6calc_cache_lri_value_cc[pi][hit] ); }; if (config->action_asn == 1) { ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r , "client IP ASN (from cache): %s" , ipv6calc_cache_lri_value_asn[pi][hit] ); apr_table_set(r->subprocess_env , "IPV6CALC_CLIENT_ASN" , ipv6calc_cache_lri_value_asn[pi][hit] ); }; if (config->action_registry == 1) { ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r , "client IP Registry (from cache): %s" , ipv6calc_cache_lri_value_registry[pi][hit] ); apr_table_set(r->subprocess_env , "IPV6CALC_CLIENT_REGISTRY" , ipv6calc_cache_lri_value_registry[pi][hit] ); }; if (config->action_geonameid == 1) { ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r , "client IP GeonameID (from cache): %s" , ipv6calc_cache_lri_value_geonameid[pi][hit] ); apr_table_set(r->subprocess_env , "IPV6CALC_CLIENT_GEONAMEID" , ipv6calc_cache_lri_value_geonameid[pi][hit] ); }; if (config->action_anonymize == 1) { ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r , "client IP address anonymized (from cache): %s" , ipv6calc_cache_lri_value_anon[pi][hit] ); apr_table_set(r->subprocess_env , "IPV6CALC_CLIENT_IP_ANON" , ipv6calc_cache_lri_value_anon[pi][hit] ); apr_table_set(r->subprocess_env, "IPV6CALC_ANON_METHOD", anon_method_name); }; return OK; }; // print cache statistics if ( config->cache_statistics_interval > 0 && ((ipv6calc_cache_lri_checked[pi] % config->cache_statistics_interval) == 0) ) { for (i = 0; i < config->cache_limit; i++) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "cache hit statistics for IPv%s: distance %3d: %lu / %lu (%2lu%%)" , (pi == 0) ? "4" : "6" , i , ipv6calc_cache_lri_statistics[pi][i] , ipv6calc_cache_lri_checked[pi] , (ipv6calc_cache_lri_statistics[pi][i] * 100) / ipv6calc_cache_lri_checked[pi] ); }; }; }; }; /* post cache lookup */ if (pi == mod_ipv6calc_pi_IPV4) { // IPv4 ipv4addr_clearall(&ipv4addr); if (p_mapped == 0) { ipv4addr.in_addr = client_addr_p->sa.sin.sin_addr; } else { ipv4addr.in_addr.s_addr = client_addr_p->sa.sin6.sin6_addr.s6_addr32[3]; }; ipv4addr_settype(&ipv4addr, 1); ipv4addr.flag_valid = 1; CONVERT_IPV4ADDRP_IPADDR(&ipv4addr, ipaddr); #if APR_HAVE_IPV6 } else if (pi == mod_ipv6calc_pi_IPV6) { // IPv6 ipv6addr_clearall(&ipv6addr); ipv6addr.in6_addr = client_addr_p->sa.sin6.sin6_addr; ipv6addr_settype(&ipv6addr); ipv6addr.flag_valid = 1; CONVERT_IPV6ADDRP_IPADDR(&ipv6addr, ipaddr); #endif }; /* store address in cache */ if (config->cache == 1) { if (ipv6calc_cache_lri_max[pi] < config->cache_limit) { ipv6calc_cache_lri_last[pi]++; ipv6calc_cache_lri_max[pi]++; } else { if (ipv6calc_cache_lri_last[pi] == config->cache_limit) { ipv6calc_cache_lri_last[pi] = 1; } else { ipv6calc_cache_lri_last[pi]++; }; }; if (config->debuglevel & IPV6CALC_DEBUG_CACHE_STORE) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "store IPv%s address in cache on position: %d" , (pi == 0) ? "4" : "6" , ipv6calc_cache_lri_last[pi] - 1 ); }; if (pi == mod_ipv6calc_pi_IPV4) { // store token if (p_mapped == 0) { ipv6calc_cache_lri_ipv4_token[ipv6calc_cache_lri_last[pi] - 1] = client_addr_p->sa.sin.sin_addr; } else { ipv6calc_cache_lri_ipv4_token[ipv6calc_cache_lri_last[pi] - 1].s_addr = client_addr_p->sa.sin6.sin6_addr.s6_addr32[3]; }; #if APR_HAVE_IPV6 } else if (pi == mod_ipv6calc_pi_IPV6) { // store token ipv6calc_cache_lri_ipv6_token[ipv6calc_cache_lri_last[pi] - 1] = client_addr_p->sa.sin6.sin6_addr; #endif }; }; // retrieve data int result_cc = -1; int result_registry = -1; const char *data_source_string = "-"; uint32_t asn_num = 0; uint32_t result_geonameid = 0; if ( (config->action_countrycode == 1) || (config->action_asn == 1) || (config->action_registry == 1) || (config->action_geonameid == 1) ) { int retrieve_cc = 0; int retrieve_asn = 0; int retrieve_registry = 0; int retrieve_geonameid = 0; if ((pi == mod_ipv6calc_pi_IPV6) && (ipv6addr.typeinfo & IPV6_ADDR_HAS_PUBLIC_IPV4)) { // extract IPv4 address and retrieve country code of that particular address result = libipv6addr_get_included_ipv4addr(&ipv6addr, &ipv4addr, IPV6_ADDR_SELECT_IPV4_DEFAULT); if (result == 0) { if (ipv4addr.typeinfo & IPV4_ADDR_GLOBAL) { CONVERT_IPV4ADDRP_IPADDR(&ipv4addr, ipaddr); // retrieve country code only for global addresses retrieve_cc = 1; // retrieve ASN only for global addresses retrieve_asn = 1; }; retrieve_registry = 1; retrieve_geonameid = 1; }; } else if ( ((pi == mod_ipv6calc_pi_IPV4) && (ipv4addr.typeinfo & IPV4_ADDR_GLOBAL)) || ((pi == mod_ipv6calc_pi_IPV6) && (ipv6addr.typeinfo & IPV6_ADDR_GLOBAL)) ) { // retrieve only global addresses retrieve_cc = 1; retrieve_asn = 1; retrieve_geonameid = 1; retrieve_registry = 1; } else { retrieve_registry = 1; }; if (config->debuglevel & IPV6CALC_DEBUG_RETRIEVE_DATA) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "potential data retrieve_cc=%d retrieve_asn=%d retrieve_registry=%d retrieve_geonameid=%d" , retrieve_cc , retrieve_asn , retrieve_registry , retrieve_geonameid ); }; // set country code of IP in environment if (config->action_countrycode == 1) { if (retrieve_cc != 0) { result_cc = libipv6calc_db_wrapper_country_code_by_addr(cc, sizeof(cc), &ipaddr, &data_source); if ((result_cc == 0) && (strlen(cc) > 0)) { data_source_string = libipv6calc_db_wrapper_get_data_source_name_by_number(data_source); } else { snprintf(cc, sizeof(cc), "%s", "-"); }; ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r , "client IP address country code: %s (%s)" , cc , data_source_string ); } else { snprintf(cc, sizeof(cc), "%s", "-"); }; apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_COUNTRYCODE", cc); if (config->cache == 1) { // store value snprintf(ipv6calc_cache_lri_value_cc[pi][ipv6calc_cache_lri_last[pi] - 1] , sizeof(ipv6calc_cache_lri_value_cc[pi][ipv6calc_cache_lri_last[pi] - 1]) , "%s", cc); if (config->debuglevel & IPV6CALC_DEBUG_CACHE_STORE) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "store CountryCode of IPv%s address in cache on position: %d" , (pi == 0) ? "4" : "6" , ipv6calc_cache_lri_last[pi] - 1 ); }; }; }; // set ASN of IP in environment if (config->action_asn == 1) { if (retrieve_asn != 0) { asn_num = libipv6calc_db_wrapper_as_num32_by_addr(&ipaddr, NULL); snprintf(asn, sizeof(asn), "%u", asn_num); ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r , "client IP address ASN: %s" , asn ); } else { snprintf(asn, sizeof(asn), "-"); }; apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_ASN", asn); if (config->cache == 1) { // store value snprintf(ipv6calc_cache_lri_value_asn[pi][ipv6calc_cache_lri_last[pi] - 1] , sizeof(ipv6calc_cache_lri_value_asn[pi][ipv6calc_cache_lri_last[pi] - 1]) , "%s", asn); if (config->debuglevel & IPV6CALC_DEBUG_CACHE_STORE) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "store ASN of IPv%s address in cache on position: %d" , (pi == 0) ? "4" : "6" , ipv6calc_cache_lri_last[pi] - 1 ); }; }; }; // set Registry of IP in environment if (config->action_registry == 1) { if (retrieve_registry != 0) { result_registry = libipv6calc_db_wrapper_registry_string_by_ipaddr(&ipaddr, registry, sizeof(registry)); if (((result_registry == 0) || (result_registry == 2)) && (strlen(registry) > 0)) { // everything ok } else { snprintf(registry, sizeof(registry), "%s", "-"); }; ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r , "client IP address registry: %s" , registry ); } else { snprintf(registry, sizeof(registry), "%s", "-"); }; apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_REGISTRY", registry); if (config->cache == 1) { // store value snprintf(ipv6calc_cache_lri_value_registry[pi][ipv6calc_cache_lri_last[pi] - 1] , sizeof(ipv6calc_cache_lri_value_registry[pi][ipv6calc_cache_lri_last[pi] - 1]) , "%s", registry); if (config->debuglevel & IPV6CALC_DEBUG_CACHE_STORE) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "store Registry of IPv%s address in cache on position: %d" , (pi == 0) ? "4" : "6" , ipv6calc_cache_lri_last[pi] - 1 ); }; }; }; // set GeonameID of IP in environment if (config->action_geonameid == 1) { if (retrieve_geonameid != 0) { result_geonameid = libipv6calc_db_wrapper_GeonameID_by_addr(&ipaddr, NULL, NULL); if (result_registry == IPV6CALC_DB_GEO_GEONAMEID_UNKNOWN) { snprintf(geonameid, sizeof(geonameid), "%u", result_geonameid); } else { snprintf(geonameid, sizeof(geonameid), "%s", "-"); }; ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r , "client IP address GeonameID: %s" , geonameid ); } else { snprintf(geonameid, sizeof(geonameid), "%s", "-"); }; apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_GEONAMEID", geonameid); if (config->cache == 1) { // store value snprintf(ipv6calc_cache_lri_value_geonameid[pi][ipv6calc_cache_lri_last[pi] - 1] , sizeof(ipv6calc_cache_lri_value_geonameid[pi][ipv6calc_cache_lri_last[pi] - 1]) , "%s", geonameid); if (config->debuglevel & IPV6CALC_DEBUG_CACHE_STORE) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "store GeonameID of IPv%s address in cache on position: %d" , (pi == 0) ? "4" : "6" , ipv6calc_cache_lri_last[pi] - 1 ); }; }; }; }; // set special value if not enabled if (config->action_countrycode == 0) { apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_COUNTRYCODE", "disabled"); }; if (config->action_asn == 0) { apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_ASN", "disabled"); }; if (config->action_registry == 0) { apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_REGISTRY", "disabled"); }; if (config->action_geonameid == 0) { apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_GEONAMEID", "disabled"); }; // set anonymized IP address in environment if (config->action_anonymize == 1) { if (pi == mod_ipv6calc_pi_IPV4) { libipv4addr_anonymize(&ipv4addr, config->ipv6calc_anon_set.mask_ipv4, config->ipv6calc_anon_set.method); CONVERT_IPV4ADDRP_IPADDR(&ipv4addr, ipaddr); #if APR_HAVE_IPV6 } else if (pi == mod_ipv6calc_pi_IPV6) { if ((ipv6addr.typeinfo & IPV6_ADDR_MAPPED) == IPV6_ADDR_MAPPED) { libipv4addr_anonymize(&ipv4addr, config->ipv6calc_anon_set.mask_ipv4, config->ipv6calc_anon_set.method); CONVERT_IPV4ADDRP_IPADDR(&ipv4addr, ipaddr); } else { libipv6addr_anonymize(&ipv6addr, &config->ipv6calc_anon_set); CONVERT_IPV6ADDRP_IPADDR(&ipv6addr, ipaddr); }; #endif }; // get address string result = libipaddr_ipaddrstruct_to_string(&ipaddr, client_addr_string_anonymized, sizeof(client_addr_string_anonymized), 0); char *result_anon_p; if (result == 0) { ap_log_rerror(APLOG_MARK, mod_ipv6calc_APLOG_DEBUG, 0, r , "client IP address anonymized: %s" , client_addr_string_anonymized ); apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_IP_ANON", client_addr_string_anonymized); result_anon_p = client_addr_string_anonymized; apr_table_set(r->subprocess_env, "IPV6CALC_ANON_METHOD", anon_method_name); } else { #if (((AP_SERVER_MAJORVERSION_NUMBER == 2) && (AP_SERVER_MINORVERSION_NUMBER >= 4)) || (AP_SERVER_MAJORVERSION_NUMBER > 2)) apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_IP_ANON", r->connection->client_ip); result_anon_p = r->connection->client_ip; #else apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_IP_ANON", r->connection->remote_ip); result_anon_p = r->connection->remote_ip; #endif }; if (config->cache == 1) { // store value snprintf(ipv6calc_cache_lri_value_anon[pi][ipv6calc_cache_lri_last[pi] - 1], sizeof(ipv6calc_cache_lri_value_anon[pi][ipv6calc_cache_lri_last[pi] - 1]), "%s", result_anon_p); if (config->debuglevel & IPV6CALC_DEBUG_CACHE_STORE) { ap_log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r , "store anonymized IPv%s address in cache on position: %d" , (pi == 0) ? "4" : "6" , ipv6calc_cache_lri_last[pi] - 1 ); }; }; } else { apr_table_set(r->subprocess_env, "IPV6CALC_CLIENT_IP_ANON", "disabled"); apr_table_set(r->subprocess_env, "IPV6CALC_ANON_METHOD", "disabled"); }; return OK; }; /*************************** * Module config option handlers ***************************/ /* * set_ipv6calc_enable */ static const char *set_ipv6calc_enable(cmd_parms *cmd, void *dummy, int arg) { ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(cmd->server->module_config, &ipv6calc_module); if (!config) { return NULL; }; config->enabled = arg; return NULL; }; /* * set_ipv6calc_default_active */ static const char *set_ipv6calc_default_active(cmd_parms *cmd, void *dummy, int arg) { ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(cmd->server->module_config, &ipv6calc_module); if (!config) { return NULL; }; config->default_active = arg; return NULL; }; /* * set_ipv6calc_no_fallback */ static const char *set_ipv6calc_no_fallback(cmd_parms *cmd, void *dummy, int arg) { ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(cmd->server->module_config, &ipv6calc_module); if (!config) { return NULL; }; config->no_fallback = arg; return NULL; }; /* * set_ipv6calc_cache */ static const char *set_ipv6calc_cache(cmd_parms *cmd, void *dummy, int arg) { ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(cmd->server->module_config, &ipv6calc_module); if (!config) { return NULL; }; config->cache = arg; return NULL; }; /* * set_ipv6calc_cache_limit */ static const char *set_ipv6calc_cache_limit(cmd_parms *cmd, void *dummy, const char *value, int arg) { ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(cmd->server->module_config, &ipv6calc_module); if (!config) { return NULL; }; if (atoi(value) < IPV6CALC_CACHE_LRI_LIMIT_MIN) { ap_log_error(APLOG_MARK, APLOG_WARNING, 0, cmd->server , "given cache limit below minimum (%d), skip: %s" , IPV6CALC_CACHE_LRI_LIMIT_MIN , value ); return NULL; }; if (atoi(value) > IPV6CALC_CACHE_LRI_SIZE) { ap_log_error(APLOG_MARK, APLOG_WARNING, 0, cmd->server , "given cache limit below maximum (%d), skip: %s" , IPV6CALC_CACHE_LRI_SIZE , value ); return NULL; }; ap_log_error(APLOG_MARK, APLOG_INFO, 0, cmd->server , "set cache limit: %s" , value ); config->cache_limit = atoi(value); return NULL; }; /* * set_ipv6calc_cache_statistics_interval */ static const char *set_ipv6calc_cache_statistics_interval(cmd_parms *cmd, void *dummy, const char *value, int arg) { ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(cmd->server->module_config, &ipv6calc_module); if (!config) { return NULL; }; if (atoi(value) < 0) { ap_log_error(APLOG_MARK, APLOG_WARNING, 0, cmd->server , "given cache statistics interval below minimum (%d), skip: %s" , 0 , value ); return NULL; }; ap_log_error(APLOG_MARK, APLOG_INFO, 0, cmd->server , "set cache statistics interval: %s" , value ); config->cache_statistics_interval = atoi(value); return NULL; }; /* * set_ipv6calc_debuglevel */ static const char *set_ipv6calc_debuglevel(cmd_parms *cmd, void *dummy, const char *value, int arg) { ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(cmd->server->module_config, &ipv6calc_module); if (!config) { return NULL; }; long int debuglevel = strtol(value, NULL, 0); if (debuglevel < -1 || debuglevel > 0xffff) { ap_log_error(APLOG_MARK, APLOG_WARNING, 0, cmd->server , "given debug level is out-of-range (-1|0-65535), skip: %s" , value ); } else { if (debuglevel == -1) { debuglevel = 0xffff; }; ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, cmd->server , "set module debug level: %s" , value ); }; config->debuglevel = (int) debuglevel; return NULL; }; /* * set_ipv6calc_countrycode */ static const char *set_ipv6calc_action_countrycode(cmd_parms *cmd, void *dummy, int arg) { ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(cmd->server->module_config, &ipv6calc_module); if (!config) { return NULL; }; config->action_countrycode = arg; return NULL; }; /* * set_ipv6calc_asn */ static const char *set_ipv6calc_action_asn(cmd_parms *cmd, void *dummy, int arg) { ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(cmd->server->module_config, &ipv6calc_module); if (!config) { return NULL; }; config->action_asn = arg; return NULL; }; /* * set_ipv6calc_registry */ static const char *set_ipv6calc_action_registry(cmd_parms *cmd, void *dummy, int arg) { ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(cmd->server->module_config, &ipv6calc_module); if (!config) { return NULL; }; config->action_registry = arg; return NULL; }; /* * set_ipv6calc_geonameid */ static const char *set_ipv6calc_action_geonameid(cmd_parms *cmd, void *dummy, int arg) { ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(cmd->server->module_config, &ipv6calc_module); if (!config) { return NULL; }; config->action_geonameid = arg; return NULL; }; /* * set_ipv6calc_anonymize */ static const char *set_ipv6calc_action_anonymize(cmd_parms *cmd, void *dummy, int arg) { ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(cmd->server->module_config, &ipv6calc_module); if (!config) { return NULL; }; config->action_anonymize = arg; return NULL; }; /* * set_ipv6calc_option * set generic ipv6calc option */ static const char *set_ipv6calc_option(cmd_parms *cmd, void *dummy, const char *name, const char *value, int arg) { ipv6calc_server_config *config = (ipv6calc_server_config*) ap_get_module_config(cmd->server->module_config, &ipv6calc_module); if (!config) { return NULL; }; ap_log_error(APLOG_MARK, APLOG_INFO, 0, cmd->server , "store ipv6calc config option for module initialization: %s=%s" , name , value ); if (ipv6calc_option_list_entries < mod_ipv6calc_options_max) { snprintf(ipv6calc_option_list[ipv6calc_option_list_entries].name, sizeof(ipv6calc_option_list[0].name), "%s", name); snprintf(ipv6calc_option_list[ipv6calc_option_list_entries].value, sizeof(ipv6calc_option_list[0].value), "%s", value); ipv6calc_option_list_entries++; } else { return "Too many ipv6calc options (limit reached)"; }; return NULL; }; /* * ipv6calc_create_svr_conf */ static void *ipv6calc_create_svr_conf(apr_pool_t* pool, server_rec* svr) { ipv6calc_server_config* svr_cfg = apr_pcalloc(pool, sizeof(ipv6calc_server_config)); svr_cfg->enabled = 0; svr_cfg->default_active = 1; svr_cfg->no_fallback = 0; // cache settings svr_cfg->cache = 1; // default: on svr_cfg->cache_limit = IPV6CALC_CACHE_LRI_LIMIT_MIN; /* optimum ?? */ svr_cfg->cache_statistics_interval = 0; // disabled svr_cfg->debuglevel = 0; svr_cfg->action_anonymize = 0; svr_cfg->action_countrycode = 0; svr_cfg->action_asn = 0; svr_cfg->action_registry = 0; svr_cfg->action_geonameid = 0; libipv6calc_anon_set_by_name(&svr_cfg->ipv6calc_anon_set, "as"); // anonymize standard svr_cfg->anon_set_default = 1; return svr_cfg ; } /* * ipv6calc_register_hooks */ static void ipv6calc_register_hooks(apr_pool_t *p) { ap_hook_post_config(ipv6calc_post_config, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_child_init(ipv6calc_child_init, NULL, NULL, APR_HOOK_MIDDLE); ap_hook_fixups(ipv6calc_post_read_request, NULL, NULL, APR_HOOK_MIDDLE); }; /* * mod_ipv6calc API hooks */ #if (((AP_SERVER_MAJORVERSION_NUMBER == 2) && (AP_SERVER_MINORVERSION_NUMBER >= 4)) || (AP_SERVER_MAJORVERSION_NUMBER > 2)) AP_DECLARE_MODULE(ipv6calc) = { #else module AP_MODULE_DECLARE_DATA ipv6calc_module = { #endif STANDARD20_MODULE_STUFF, NULL, /* create per-dir config structures */ NULL, /* merge per-dir config structures */ ipv6calc_create_svr_conf, /* create per-server config structures */ NULL, /* merge per-server config structures */ ipv6calc_cmds, /* table of config file commands */ ipv6calc_register_hooks /* register hooks */ }; /* * ipv6calc copyright (to satisfy dynamic library load) */ void printcopyright(void) { fprintf(stderr, "%s\n", PROGRAM_COPYRIGHT); }; /* * ipv6calc version (to satisfy dynamic library load) */ void printversion(void) { char resultstring[IPV6CALC_STRING_MAX] = ""; libipv6calc_db_wrapper_features(resultstring, sizeof(resultstring)); fprintf(stderr, "%s: version %s", PROGRAM_NAME, PACKAGE_VERSION); fprintf(stderr, " %s", resultstring); if (feature_zeroize == 1) { fprintf(stderr, " ANON_ZEROISE"); }; if (feature_anon == 1) { fprintf(stderr, " ANON_ANONYMIZE"); }; if (feature_kp == 1) { fprintf(stderr, " ANON_KEEP-TYPE-ASN-CC"); }; fprintf(stderr, "\n"); }; ipv6calc-4.1.0/mod_ipv6calc/test_mod_ipv6calc.sh000077500000000000000000000267511444154247200215570ustar00rootroot00000000000000#!/usr/bin/env bash # # Project : ipv6calc # File : test_mod_ipv6calc.sh # Version : $Id: 8df55b24aa8e28b4a7ecc5fe13179fae8cc998bd $ # Copyright : 2015-2022 by Peter Bieringer # # Test patterns for ipv6calc conversions for BIN_PS in /bin/ps /usr/bin/ps; do if [ -x "$BIN_PS" ]; then break fi done create_apache_root_and_start() { echo "INFO : create temporary base directory" dir_base=$(mktemp -d /tmp/mod_ipv6calc.XXXXX) if [ -z "$dir_base" ]; then echo "ERROR : can't create temporary directory" return 1 fi echo "INFO : temporary base directory created: $dir_base" for dir in $dir_base/conf $dir_base/var $dir_base/modules $dir_base/logs $dir_base/conf.d $dir_base/conf.modules.d; do echo "INFO : create directory: $dir" mkdir $dir if [ $? -ne 0 ]; then echo "ERROR : can't create directory: $dir" return 1 fi echo "INFO : directory created: $dir" done for file in /etc/httpd/conf/httpd.conf /etc/httpd/conf/magic; do echo "INFO : copy file: $file -> $dir_base/conf" cp -p $file $dir_base/conf/ if [ $? -ne 0 ]; then echo "ERROR : can't copy file: $file" return 1 fi echo "INFO : file copied: $file -> $dir_base/conf" done echo "INFO : define listen port 8080 in $dir_base/conf/httpd.conf" perl -pi -e 's/^Listen.*/Listen 8080/g' $dir_base/conf/httpd.conf if [ $? -ne 0 ]; then echo "ERROR : can't define listen port: $dir_base/conf/httpd.conf" return 1 fi echo "INFO : change log level to debug $dir_base/conf/httpd.conf" perl -pi -e 's/^LogLevel .*/LogLevel debug/g' $dir_base/conf/httpd.conf if [ $? -ne 0 ]; then echo "ERROR : can't define LogLevel: $dir_base/conf/httpd.conf" return 1 fi echo "INFO : specify pid file in $dir_base/conf/httpd.conf" echo "PidFile $dir_base/var/httpd.pid" >>$dir_base/conf/httpd.conf if [ $? -ne 0 ]; then echo "ERROR : can't specify pid file: $dir_base/conf/httpd.conf" return 1 fi perl -pi -e 's/^ServerRoot.*$//g' $dir_base/conf/httpd.conf for file in 00-base.conf 00-mpm.conf 00-systemd.conf; do [ -e /etc/httpd/conf.modules.d/$file ] || continue cp /etc/httpd/conf.modules.d/$file $dir_base/conf.modules.d/ done # disable auth modules perl -pi -e 's/^LoadModule authn.*$//g' $dir_base/conf.modules.d/00-base.conf perl -pi -e 's/^LoadModule auth_digest_module.*$//g' $dir_base/conf.modules.d/00-base.conf cp /etc/httpd/modules/* $dir_base/modules/ # copy mod_ipv6calc cp .libs/mod_ipv6calc.so $dir_base/modules/ cp ipv6calc.conf $dir_base/conf.d/ ## adjust ipv6calc.conf settings # load module perl -pi -e 's/#(LoadModule.*)/$1/g' $dir_base/conf.d/ipv6calc.conf # enable module perl -pi -e 's/#(ipv6calcEnable).*/$1 on/g' $dir_base/conf.d/ipv6calc.conf # enable anonymized access logging perl -pi -e 's/#(CustomLog.*)/$1/g' $dir_base/conf.d/ipv6calc.conf if [ "$debug_module" = "1" ]; then # enable module debugging perl -pi -e 's/#(ipv6calcDebuglevel.*-1)/$1/g' $dir_base/conf.d/ipv6calc.conf fi if [ "$debug_library" = "1" ]; then # enable library debugging perl -pi -e 's/#(ipv6calcOption\s+debug).*/$1 -1/g' $dir_base/conf.d/ipv6calc.conf fi ## disable databases by option [ "$disable_geoip2" = "1" ] && perl -pi -e 's/#(ipv6calcOption\s+db-geoip2-disable\s+yes)$/$1/g' $dir_base/conf.d/ipv6calc.conf [ "$disable_ip2location" = "1" ] && perl -pi -e 's/#(ipv6calcOption\s+db-ip2location-disable\s+yes)$/$1/g' $dir_base/conf.d/ipv6calc.conf [ "$disable_dbip2" = "1" ] && perl -pi -e 's/#(ipv6calcOption\s+db-dbip2-disable\s+yes)$/$1/g' $dir_base/conf.d/ipv6calc.conf [ "$disable_external" = "1" ] && perl -pi -e 's/#(ipv6calcOption\s+db-external-disable\s+yes)$/$1/g' $dir_base/conf.d/ipv6calc.conf [ "$action_asn" = "0" ] && perl -pi -e 's/(ipv6calcActionAsn\s+).*$/$1 off/g' $dir_base/conf.d/ipv6calc.conf [ "$action_cc" = "0" ] && perl -pi -e 's/(ipv6calcActionCountrycode\s+).*$/$1 off/g' $dir_base/conf.d/ipv6calc.conf [ "$action_reg" = "0" ] && perl -pi -e 's/(ipv6calcActionRegistry\s+).*$/$1 off/g' $dir_base/conf.d/ipv6calc.conf [ "$action_gid" = "0" ] && perl -pi -e 's/(ipv6calcActionGeonameid\s+).*$/$1 off/g' $dir_base/conf.d/ipv6calc.conf [ "$action_anon" = "0" ] && perl -pi -e 's/(ipv6calcActionAnonymize\s+).*$/$1 off/g' $dir_base/conf.d/ipv6calc.conf [ "$config_passive" = "1" ] && perl -pi -e 's/(ipv6calcDefaultActive\s+).*$/$1 off/g' $dir_base/conf.d/ipv6calc.conf [ "$config_passive" != "1" -a "$config_environment" = "1" ] && echo "SetEnv ipv6calcPassive" >>$dir_base/conf.d/ipv6calc.conf [ "$config_passive" = "1" -a "$config_environment" = "1" ] && echo "SetEnv ipv6calcActive" >>$dir_base/conf.d/ipv6calc.conf echo "INFO : start httpd with ServerRoot $dir_base" /usr/sbin/httpd -X -e info -d $dir_base & if [ $? -eq 0 ]; then httpd_pid=$! echo "INFO : httpd started in background with pid=$httpd_pid" sleep 1 if $BIN_PS -p $httpd_pid --no-headers >/dev/null 2>&1; then echo "INFO : httpd started in background (wait 10 seconds for pid file now)" else echo "ERROR : httpd did not start in background (pid missing: $httpd_pid)" return 1 fi fi limit=10 i=0 while [ ! -f $dir_base/var/httpd.pid ]; do i=$[ $i + 1 ] if [ $i -gt 10 ]; then break fi sleep 1 done pid="$(cat "$dir_base/var/httpd.pid")" if [ -z "$pid" ]; then echo "ERROR : httpd PID file empty: $dir_base/var/httpd.pid" return 1 fi if ! $BIN_PS -p $pid --no-headers >/dev/null 2>&1; then echo "ERROR : httpd started with PID but no longer running: $pid" return 1 fi echo "INFO : httpd started with PID: $pid" if [ -f $dir_base/logs/error_log ]; then grep ipv6calc $dir_base/logs/error_log lines_error_log=$(cat "$dir_base/logs/error_log" | wc -l) fi if [ "$debug_lsof" = "1" ]; then echo "INFO : list of open files of pid: $pid" lsof -p $pid fi if [ "$debug_config" = "1" ]; then echo "INFO : list effective module config" grep -v "^\s*#" $dir_base/conf.d/ipv6calc.conf | grep -v "^\s*$" fi echo "NOTICE: base directory is : $dir_base" echo "NOTICE: ipv6calc module config: $dir_base/conf.d/ipv6calc.conf" echo "NOTICE: error log : $dir_base/logs/error_log" echo "NOTICE: access log : $dir_base/logs/access_log" echo "NOTICE: anonymized access log : $dir_base/logs/access_anon_log" } stop_apache() { if [ -z "$pid" -a -n "$dir_base" -a -f "$dir_base/var/httpd.pid" ]; then pid="$(cat "$dir_base/var/httpd.pid")" fi if [ -n "$pid" ]; then echo "NOTICE: kill started httpd with PID: $pid" kill $pid sleep 1 if $BIN_PS -p $pid --no-headers; then echo "WARN : process still running (kill now with -9)" kill -9 $pid fi else if ! $BIN_PS u -C httpd --no-headers | grep "/tmp/mod_ipv6calc"; then # nothing to do echo "INFO : no related httpd process found to kill" return 0 fi if [ ! -x /usr/bin/killall ]; then echo "ERROR : no httpd PID given, but no 'killall' available (provided by RPM: psmisc)" echo "ERROR : you have to kill process manually" else echo "WARN : no httpd PID given, use killall" /usr/bin/killall httpd fi sleep 1 if $BIN_PS u -C httpd --no-headers | grep "/tmp/mod_ipv6calc"; then echo "WARN : process still running (kill now with -9)" /usr/bin/killall -9 httpd fi fi } exec_request() { dst="$1" if [ -n "$repeat" ]; then max=$[ $repeat + 1 ] else max=1 fi count=0 while [ $count -lt $max ]; do echo "NOTICE: test: $1" # curl-7.29.0-19.el7.x86_64 is broken, -g required curl -g -s "http://$1:8080/" >/dev/null if [ $? -ne 0 ]; then echo "ERROR : curl request to $1:8080 failed" return 1 fi echo "INFO : access log entry" tail -1 $dir_base/logs/access_log if [ -f "$dir_base/logs/access_anon_log" -a -s "$dir_base/logs/access_anon_log" ]; then echo "INFO : anonymized access log entry" log_anon=$(tail -1 $dir_base/logs/access_anon_log) echo "$log_anon" if [ "$config_passive" = "1" -a "$config_environment" != "1" ]; then if echo "$log_anon" | grep -q "PbD"; then echo "INFO : anonymized access log entry is containing 'PdD' (OK)" else echo "ERROR : anonymized access log entry is not containing 'PdD'" return 1 fi elif [ "$config_passive" != "1" -a "$config_environment" = "1" ]; then if echo "$log_anon" | grep -q "PbE"; then echo "INFO : anonymized access log entry is containing 'PbE' (OK)" else echo "ERROR : anonymized access log entry is not containing 'PbE'" return 1 fi fi else echo "ERROR : anonymized access log missing or empty" return 1 fi echo "INFO : error log entry" tail -n +$[ $lines_error_log + 1 ] "$dir_base/logs/error_log" | grep "ipv6calc" # update number of lines lines_error_log=$(cat "$dir_base/logs/error_log" | wc -l) count=$[ $count + 1 ] done || return 1 return 0 } run_test_requests() { echo "NOTICE: run test requests" if [ -n "$address" ]; then if echo "$address" | grep -q ":"; then # IPv6 exec_request "[$address]" else # IPv4 exec_request "$address" fi else for ipv4 in $(/sbin/ip -o addr show |grep -w inet | grep -w global | grep -vw deprecated | awk '{ print $4 }' | awk -F/ '{ print $1 }'); do exec_request "$ipv4" || return 1 done # retrieve local IPv6 address for ipv6 in $(/sbin/ip -o addr show |grep -w inet6 | grep -w global | grep -vw deprecated | awk '{ print $4 }' | awk -F/ '{ print $1 }'); do exec_request "[$ipv6]" || return 1 done fi sleep 2 return 0 } #### Help help() { cat <] [-S|-K|-W] -S start -K stop (kill) -W run workflow -m enable debug module -l enable debug library -f list open files after start -c show effective module config options -g disable GeoIP -G disable GeoIP(MaxMindDB) -i disable IP2Location -d disable db-ip.com -D disable db-ip.com(MaxMindDB) -e disable external databases -A disable action ASN -C disable action CountryCode -R disable action Registry -I disable action GeonameID -N disable action Anonymization -P disable 'ipv6calcDefaultActive' -E keep 'ipv6calcDefaultActive', but set environment -b disable autoretrievement of local IP, use given one instead -r repeat (1x) END } #### Options while getopts "EPIDGrACRNca:fSKWb:mlgideh\?" opt; do case $opt in b) if [ -d "$OPTARG" ]; then dir_base=$OPTARG else echo "ERROR : given base directory doesn't exist: $dir_base" fi ;; m) debug_module=1 ;; l) debug_library=1 ;; f) debug_lsof=1 ;; c) debug_config=1 ;; g) echo "NOTICE: support removed for GeoIP(legacy): $opt" ;; G) disable_geoip2=1 ;; i) disable_ip2location=1 ;; d) echo "NOTICE: support removed for db-ip.com(BerkeleyDB): $opt" ;; D) disable_dbip2=1 ;; e) disable_external=1 ;; S) action="start" ;; K) action="kill" ;; a) address="$OPTARG" ;; W) action="workflow" ;; A) action_asn="0" ;; C) action_cc="0" ;; R) action_reg="0" ;; I) action_gid="0" ;; N) action_anon="0" ;; P) config_passive="1" ;; E) config_environment="1" ;; r) repeat=1 ;; h|\?) help exit 1 ;; *) echo "ERROR : unrecognized option: $opt" ;; esac done case $action in workflow) create_apache_root_and_start || exit 1 run_test_requests || exit 1 stop_apache || exit 1 ;; kill) stop_apache || exit 1 ;; start) create_apache_root_and_start || exit 1 ;; *) help exit 1 ;; esac ipv6calc-4.1.0/samplecode/000077500000000000000000000000001444154247200153465ustar00rootroot00000000000000ipv6calc-4.1.0/samplecode/addrconf.c000066400000000000000000001343261444154247200173030ustar00rootroot00000000000000/* $USAGI: addrconf.c,v 1.13 2001/01/18 18:42:25 yoshfuji Exp $ */ /* * IPv6 Address [auto]configuration * Linux INET6 implementation * * Authors: * Pedro Roque * * $**: addrconf.c,v 1.48.2.2 1999/12/14 10:32:53 davem Exp $ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ /* * Changes: * * Janos Farkas : delete timer on ifdown * * Andi Kleen : kill double kfree on module * unload. */ #include #include #include #include #include #include #include #include #ifdef CONFIG_IPV6_NODEINFO #include #endif #include #include #include #include #include #ifdef CONFIG_SYSCTL #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include /* Set to 3 to get tracing... */ #ifdef CONFIG_IPV6_ACONF_DEBUG #define ACONF_DEBUG 3 #else #define ACONF_DEBUG 2 #endif #if ACONF_DEBUG >= 3 #define ADBG(x) printk x #else #define ADBG(x) #endif /* /proc/net/snmp6, /proc/net/dev_snmp6/ things */ #ifdef CONFIG_PROC_FS extern struct proc_dir_entry *proc_net_devsnmp6; extern int afinet6_read_devsnmp(char *buffer, char **start, off_t offset, int length, int *eof, void *data); #endif #if HZ == 100 #define timeticks(_h) (_h) #else #define timeticks(_h) ((unsigned long)(((unsigned long long)(_h))*100/HZ)) #endif #ifdef CONFIG_SYSCTL static void addrconf_sysctl_register(struct inet6_dev *idev, struct ipv6_devconf *p); static void addrconf_sysctl_unregister(struct ipv6_devconf *p); #endif /* * Configured unicast address list */ static struct inet6_ifaddr *inet6_addr_lst[IN6_ADDR_HSIZE]; /* * AF_INET6 device list */ static struct inet6_dev *inet6_dev_lst[IN6_ADDR_HSIZE]; static atomic_t addr_list_lock = ATOMIC_INIT(0); void addrconf_verify(unsigned long); static struct timer_list addr_chk_timer = { NULL, NULL, 0, 0, addrconf_verify }; /* These locks protect only against address deletions, but not against address adds or status updates. It is OK. The only race is when address is selected, which becomes invalid immediately after selection. It is harmless, because this address could be already invalid several usecs ago. Its important, that: 1. The result of inet6_add_addr() is used only inside lock or from bh_atomic context. 2. inet6_get_lladdr() is used only from bh protected context. 3. The result of ipv6_chk_addr() is not used outside of bh protected context. */ static __inline__ void addrconf_lock(void) { atomic_inc(&addr_list_lock); synchronize_bh(); } static __inline__ void addrconf_unlock(void) { atomic_dec(&addr_list_lock); } static int addrconf_ifdown(struct device *dev, int how); static void addrconf_dad_start(struct inet6_ifaddr *ifp); static void addrconf_dad_timer(unsigned long data); static void addrconf_dad_completed(struct inet6_ifaddr *ifp); static void addrconf_rs_timer(unsigned long data); static void ipv6_ifa_notify(int event, struct inet6_ifaddr *ifa); struct ipv6_devconf ipv6_devconf = { 0, /* forwarding */ IPV6_DEFAULT_HOPLIMIT, /* hop limit */ IPV6_MIN_MTU, /* mtu */ 1, /* accept RAs */ 1, /* accept redirects */ 1, /* autoconfiguration */ 1, /* dad transmits */ MAX_RTR_SOLICITATIONS, /* router solicits */ RTR_SOLICITATION_INTERVAL, /* rtr solicit interval */ MAX_RTR_SOLICITATION_DELAY, /* rtr solicit delay */ #ifdef CONFIG_IPV6_NODEINFO 1, /* accept NIs */ #endif }; static struct ipv6_devconf ipv6_devconf_dflt = { 0, /* forwarding */ IPV6_DEFAULT_HOPLIMIT, /* hop limit */ IPV6_MIN_MTU, /* mtu */ 1, /* accept RAs */ 1, /* accept redirects */ 1, /* autoconfiguration */ 1, /* dad transmits */ MAX_RTR_SOLICITATIONS, /* router solicits */ RTR_SOLICITATION_INTERVAL, /* rtr solicit interval */ MAX_RTR_SOLICITATION_DELAY, /* rtr solicit delay */ #ifdef CONFIG_IPV6_NODEINFO 1, /* accept NIs */ #endif }; /* * from ip6_fib.c */ static __inline__ int inet6_addr_diff(void *token1, void *token2) { __u32 *a1 = token1; __u32 *a2 = token2; int addrlen = 4; int i; addrlen >>= 2; for (i = 0; i < addrlen; i++) { __u32 xb; xb = a1[i] ^ a2[i]; if (xb) { int j = 31; xb = ntohl(xb); while (test_bit(j, &xb) == 0) j--; return (i * 32 + 31 - j); } } return addrlen<<5; } int ipv6_addr_type(struct in6_addr *addr) { u32 st; st = addr->s6_addr32[0]; /* Consider all addresses with the first three bits different of 000 and 111 as unicasts. */ if ((st & __constant_htonl(0xE0000000)) != __constant_htonl(0x00000000) && (st & __constant_htonl(0xE0000000)) != __constant_htonl(0xE0000000)) return IPV6_ADDR_UNICAST; if ((st & __constant_htonl(0xFF000000)) == __constant_htonl(0xFF000000)) { int type = IPV6_ADDR_MULTICAST; switch((st & __constant_htonl(0x00FF0000))) { case __constant_htonl(0x00010000): type |= IPV6_ADDR_LOOPBACK; break; case __constant_htonl(0x00020000): type |= IPV6_ADDR_LINKLOCAL; break; case __constant_htonl(0x00050000): type |= IPV6_ADDR_SITELOCAL; break; }; return type; } if ((st & __constant_htonl(0xFFC00000)) == __constant_htonl(0xFE800000)) return (IPV6_ADDR_LINKLOCAL | IPV6_ADDR_UNICAST); if ((st & __constant_htonl(0xFFC00000)) == __constant_htonl(0xFEC00000)) return (IPV6_ADDR_SITELOCAL | IPV6_ADDR_UNICAST); if ((addr->s6_addr32[0] | addr->s6_addr32[1]) == 0) { if (addr->s6_addr32[2] == 0) { if (addr->in6_u.u6_addr32[3] == 0) return IPV6_ADDR_ANY; if (addr->s6_addr32[3] == __constant_htonl(0x00000001)) return (IPV6_ADDR_LOOPBACK | IPV6_ADDR_UNICAST); return (IPV6_ADDR_COMPATv4 | IPV6_ADDR_UNICAST); } if (addr->s6_addr32[2] == __constant_htonl(0x0000ffff)) return IPV6_ADDR_MAPPED; } return IPV6_ADDR_RESERVED; } static struct inet6_dev * ipv6_add_dev(struct device *dev) { struct inet6_dev *ndev, **bptr, *iter; int hash; if (dev->mtu < IPV6_MIN_MTU) return NULL; ndev = kmalloc(sizeof(struct inet6_dev), GFP_KERNEL); if (ndev) { char name[64]; memset(ndev, 0, sizeof(struct inet6_dev)); ndev->dev = dev; memcpy(&ndev->cnf, &ipv6_devconf_dflt, sizeof(ndev->cnf)); ndev->cnf.mtu6 = dev->mtu; ndev->cnf.sysctl = NULL; ndev->nd_parms = neigh_parms_alloc(dev, &nd_tbl); if (ndev->nd_parms == NULL) { kfree(ndev); return NULL; } ipv6_statistics.Ip6LastChange = timeticks(jiffies); ndev->stats.ipv6.Ip6LastChange = timeticks(jiffies); #ifdef CONFIG_PROC_FS sprintf(name, "%d", dev->ifindex); ndev->stats.proc_dir_entry = create_proc_entry(name, 0, proc_net_devsnmp6); if (!ndev->stats.proc_dir_entry) printk(KERN_WARNING "addrconf_notify(): cannot create /proc/net/dev_snmp6/%s\n",name); ndev->stats.proc_dir_entry->read_proc = afinet6_read_devsnmp; ndev->stats.proc_dir_entry->data = ndev; #endif #ifdef CONFIG_SYSCTL neigh_sysctl_register(dev, ndev->nd_parms, NET_IPV6, NET_IPV6_NEIGH, "ipv6"); addrconf_sysctl_register(ndev, &ndev->cnf); #endif hash = ipv6_devindex_hash(dev->ifindex); bptr = &inet6_dev_lst[hash]; iter = *bptr; for (; iter; iter = iter->next) bptr = &iter->next; *bptr = ndev; } return ndev; } static struct inet6_dev * ipv6_find_idev(struct device *dev) { struct inet6_dev *idev; if ((idev = ipv6_get_idev(dev)) == NULL) { idev = ipv6_add_dev(dev); if (idev == NULL) return NULL; } return idev; } static void addrconf_forward_change(struct inet6_dev *idev) { int i; if (idev) return; for (i = 0; i < IN6_ADDR_HSIZE; i++) { for (idev = inet6_dev_lst[i]; idev; idev = idev->next) idev->cnf.forwarding = ipv6_devconf.forwarding; } } struct inet6_dev * ipv6_get_idev(struct device *dev) { struct inet6_dev *idev; int hash; hash = ipv6_devindex_hash(dev->ifindex); for (idev = inet6_dev_lst[hash]; idev; idev = idev->next) { if (idev->dev == dev) return idev; } return NULL; } static struct inet6_ifaddr * ipv6_add_addr(struct inet6_dev *idev, struct in6_addr *addr, int scope) { struct inet6_ifaddr *ifa; int hash; ifa = kmalloc(sizeof(struct inet6_ifaddr), GFP_ATOMIC); if (ifa == NULL) { ADBG(("ipv6_add_addr: malloc failed\n")); return NULL; } memset(ifa, 0, sizeof(struct inet6_ifaddr)); memcpy(&ifa->addr, addr, sizeof(struct in6_addr)); init_timer(&ifa->timer); ifa->timer.data = (unsigned long) ifa; ifa->scope = scope; ifa->idev = idev; /* Add to list. */ hash = ipv6_addr_hash(addr); ifa->lst_next = inet6_addr_lst[hash]; inet6_addr_lst[hash] = ifa; /* Add to inet6_dev unicast addr list. */ ifa->if_next = idev->addr_list; idev->addr_list = ifa; return ifa; } static void ipv6_del_addr(struct inet6_ifaddr *ifp) { struct inet6_ifaddr *iter, **back; int hash; if (atomic_read(&addr_list_lock)) { ifp->flags |= ADDR_INVALID; ipv6_ifa_notify(RTM_DELADDR, ifp); return; } hash = ipv6_addr_hash(&ifp->addr); iter = inet6_addr_lst[hash]; back = &inet6_addr_lst[hash]; for (; iter; iter = iter->lst_next) { if (iter == ifp) { *back = ifp->lst_next; synchronize_bh(); ifp->lst_next = NULL; break; } back = &(iter->lst_next); } iter = ifp->idev->addr_list; back = &ifp->idev->addr_list; for (; iter; iter = iter->if_next) { if (iter == ifp) { *back = ifp->if_next; synchronize_bh(); ifp->if_next = NULL; break; } back = &(iter->if_next); } ipv6_ifa_notify(RTM_DELADDR, ifp); kfree(ifp); } /* * Choose an apropriate source address * should do: * i) get an address with an apropriate scope * ii) see if there is a specific route for the destination and use * an address of the attached interface * iii) don't use deprecated addresses */ int ipv6_get_saddr(struct dst_entry *dst, struct in6_addr *daddr, struct in6_addr *saddr) { int scope; struct inet6_ifaddr *ifp = NULL; struct inet6_ifaddr *match = NULL; struct device *dev = NULL; struct rt6_info *rt; int deprecated = 1; int matchlen = 0; int err; int i; rt = (struct rt6_info *) dst; if (rt) dev = rt->rt6i_dev; addrconf_lock(); scope = ipv6_addr_scope(daddr); if (rt && (rt->rt6i_flags & RTF_ALLONLINK)) { /* * route for the "all destinations on link" rule * when no routers are present */ scope = IFA_LINK; } /* * known dev * search dev and walk through dev addresses */ if (dev) { struct inet6_dev *idev; int hash; if (dev->flags & IFF_LOOPBACK) scope = IFA_HOST; hash = ipv6_devindex_hash(dev->ifindex); for (idev = inet6_dev_lst[hash]; idev; idev=idev->next) { if (idev->dev == dev) { for (ifp=idev->addr_list; ifp; ifp=ifp->if_next) { if (ifp->scope == scope) { int newlen = inet6_addr_diff(daddr, &ifp->addr); if (newlen < matchlen) continue; if (!(ifp->flags & (ADDR_STATUS|DAD_STATUS))) { match = ifp; matchlen = newlen; deprecated = 0; continue; } if(!deprecated) continue; if (!(ifp->flags & (ADDR_INVALID|DAD_STATUS))) { match = ifp; matchlen = newlen; continue; } } } break; } } } if (match != NULL && !deprecated) goto out; if (scope == IFA_LINK) goto out; /* * dev == NULL or search failed for specified dev */ for (i=0; i < IN6_ADDR_HSIZE; i++) { for (ifp=inet6_addr_lst[i]; ifp; ifp=ifp->lst_next) { if (ifp->scope == scope) { int newlen = inet6_addr_diff(daddr, &ifp->addr); if (newlen < matchlen) continue; if (!(ifp->flags & (ADDR_STATUS|DAD_STATUS))) { match = ifp; matchlen = newlen; deprecated = 0; continue; } if (!deprecated) continue; if (!(ifp->flags & (ADDR_INVALID|DAD_STATUS))) { match = ifp; matchlen = newlen; continue; } } } } out: if (ifp == NULL) ifp = match; err = -ENETUNREACH; if (ifp) { memcpy(saddr, &ifp->addr, sizeof(struct in6_addr)); err = 0; } addrconf_unlock(); return err; } struct inet6_ifaddr * ipv6_get_lladdr(struct device *dev) { struct inet6_ifaddr *ifp = NULL; struct inet6_dev *idev; if ((idev = ipv6_get_idev(dev)) != NULL) { addrconf_lock(); for (ifp=idev->addr_list; ifp; ifp=ifp->if_next) { if (ifp->scope == IFA_LINK) break; } addrconf_unlock(); } return ifp; } /* * Retrieve the ifaddr struct from an v6 address * Called from ipv6_rcv to check if the address belongs * to the host. */ struct inet6_ifaddr * ipv6_chk_addr(struct in6_addr *addr, struct device *dev, int nd) { struct inet6_ifaddr * ifp; u8 hash; unsigned flags = 0; if (!nd) flags |= DAD_STATUS|ADDR_INVALID; addrconf_lock(); hash = ipv6_addr_hash(addr); for(ifp = inet6_addr_lst[hash]; ifp; ifp=ifp->lst_next) { if (ipv6_addr_cmp(&ifp->addr, addr) == 0 && !(ifp->flags&flags)) { if (dev == NULL || ifp->idev->dev == dev || !(ifp->scope&(IFA_LINK|IFA_HOST))) break; } } addrconf_unlock(); return ifp; } void addrconf_dad_failure(struct inet6_ifaddr *ifp) { printk(KERN_INFO "%s: duplicate address detected!\n", ifp->idev->dev->name); del_timer(&ifp->timer); ipv6_del_addr(ifp); } /* Join to solicited addr multicast group. */ static void addrconf_join_solict(struct device *dev, struct in6_addr *addr) { struct in6_addr maddr; if (dev->flags&(IFF_LOOPBACK|IFF_NOARP)) return; #ifndef CONFIG_IPV6_NO_PB addrconf_addr_solict_mult_old(addr, &maddr); ipv6_dev_mc_inc(dev, &maddr); #endif #ifdef CONFIG_IPV6_EUI64 addrconf_addr_solict_mult_new(addr, &maddr); ipv6_dev_mc_inc(dev, &maddr); #endif } static void addrconf_leave_solict(struct device *dev, struct in6_addr *addr) { struct in6_addr maddr; if (dev->flags&(IFF_LOOPBACK|IFF_NOARP)) return; #ifndef CONFIG_IPV6_NO_PB addrconf_addr_solict_mult_old(addr, &maddr); ipv6_dev_mc_dec(dev, &maddr); #endif #ifdef CONFIG_IPV6_EUI64 addrconf_addr_solict_mult_new(addr, &maddr); ipv6_dev_mc_dec(dev, &maddr); #endif } #ifdef CONFIG_IPV6_EUI64 static int ipv6_generate_eui64(u8 *eui, struct device *dev) { switch (dev->type) { case ARPHRD_ETHER: if (dev->addr_len != ETH_ALEN) return -1; memcpy(eui, dev->dev_addr, 3); memcpy(eui + 5, dev->dev_addr+3, 3); eui[3] = 0xFF; eui[4] = 0xFE; eui[0] ^= 2; return 0; } return -1; } static int ipv6_inherit_eui64(u8 *eui, struct inet6_dev *idev) { int err = -1; struct inet6_ifaddr *ifp; for (ifp=idev->addr_list; ifp; ifp=ifp->if_next) { if (ifp->scope == IFA_LINK && !(ifp->flags&(ADDR_STATUS|DAD_STATUS))) { memcpy(eui, ifp->addr.s6_addr+8, 8); err = 0; break; } } return err; } #endif /* * Add prefix route. */ static void addrconf_prefix_route(struct in6_addr *pfx, int plen, struct device *dev, unsigned long expires, unsigned flags) { struct in6_rtmsg rtmsg; memset(&rtmsg, 0, sizeof(rtmsg)); memcpy(&rtmsg.rtmsg_dst, pfx, sizeof(struct in6_addr)); rtmsg.rtmsg_dst_len = plen; rtmsg.rtmsg_metric = IP6_RT_PRIO_ADDRCONF; rtmsg.rtmsg_ifindex = dev->ifindex; rtmsg.rtmsg_info = expires; rtmsg.rtmsg_flags = RTF_UP|flags; rtmsg.rtmsg_type = RTMSG_NEWROUTE; /* Prevent useless cloning on PtP SIT. This thing is done here expecting that the whole class of non-broadcast devices need not cloning. */ if (dev->type == ARPHRD_SIT && (dev->flags&IFF_POINTOPOINT)) rtmsg.rtmsg_flags |= RTF_NONEXTHOP; ip6_route_add(&rtmsg); } /* Create "default" multicast route to the interface */ static void addrconf_add_mroute(struct device *dev) { struct in6_rtmsg rtmsg; memset(&rtmsg, 0, sizeof(rtmsg)); ipv6_addr_set(&rtmsg.rtmsg_dst, __constant_htonl(0xFF000000), 0, 0, 0); rtmsg.rtmsg_dst_len = 8; rtmsg.rtmsg_metric = IP6_RT_PRIO_ADDRCONF; rtmsg.rtmsg_ifindex = dev->ifindex; rtmsg.rtmsg_flags = RTF_UP|RTF_ADDRCONF; rtmsg.rtmsg_type = RTMSG_NEWROUTE; ip6_route_add(&rtmsg); } static void sit_route_add(struct device *dev) { struct in6_rtmsg rtmsg; memset(&rtmsg, 0, sizeof(rtmsg)); rtmsg.rtmsg_type = RTMSG_NEWROUTE; rtmsg.rtmsg_metric = IP6_RT_PRIO_ADDRCONF; /* prefix length - 96 bytes "::d.d.d.d" */ rtmsg.rtmsg_dst_len = 96; rtmsg.rtmsg_flags = RTF_UP|RTF_NONEXTHOP; rtmsg.rtmsg_ifindex = dev->ifindex; ip6_route_add(&rtmsg); } static void addrconf_add_lroute(struct device *dev) { struct in6_addr addr; ipv6_addr_set(&addr, __constant_htonl(0xFE800000), 0, 0, 0); addrconf_prefix_route(&addr, 10, dev, 0, RTF_ADDRCONF); } static struct inet6_dev *addrconf_add_dev(struct device *dev) { struct inet6_dev *idev; if ((idev = ipv6_find_idev(dev)) == NULL) return NULL; /* Add default multicast route */ addrconf_add_mroute(dev); /* Add link local route */ addrconf_add_lroute(dev); return idev; } void addrconf_prefix_rcv(struct device *dev, u8 *opt, int len) { struct prefix_info *pinfo; struct rt6_info *rt; __u32 valid_lft; __u32 prefered_lft; int addr_type; unsigned long rt_expires; struct inet6_dev *in6_dev = ipv6_get_idev(dev); if (in6_dev == NULL) { printk(KERN_DEBUG "addrconf: device %s not configured\n", dev->name); return; } pinfo = (struct prefix_info *) opt; if (len < sizeof(struct prefix_info)) { ADBG(("addrconf: prefix option too short\n")); return; } /* * Validation checks ([ADDRCONF], page 19) */ addr_type = ipv6_addr_type(&pinfo->prefix); if (addr_type & (IPV6_ADDR_MULTICAST|IPV6_ADDR_LINKLOCAL)) return; valid_lft = ntohl(pinfo->valid); prefered_lft = ntohl(pinfo->prefered); if (prefered_lft > valid_lft) { printk(KERN_WARNING "addrconf: prefix option has invalid lifetime\n"); return; } /* * Two things going on here: * 1) Add routes for on-link prefixes * 2) Configure prefixes with the auto flag set */ /* Avoid arithemtic overflow. Really, we could save rt_expires in seconds, likely valid_lft, but it would require division in fib gc, that it not good. */ if (valid_lft >= 0x7FFFFFFF/HZ) rt_expires = 0; else rt_expires = jiffies + valid_lft * HZ; rt = rt6_lookup(&pinfo->prefix, NULL, dev->ifindex, 1); if (rt && ((rt->rt6i_flags & (RTF_GATEWAY | RTF_DEFAULT)) == 0)) { if (rt->rt6i_flags&RTF_EXPIRES) { if (pinfo->onlink == 0 || valid_lft == 0) { ip6_del_rt(rt); } else { rt->rt6i_expires = rt_expires; } } } else if (pinfo->onlink && valid_lft) { addrconf_prefix_route(&pinfo->prefix, pinfo->prefix_len, dev, rt_expires, RTF_ADDRCONF|RTF_EXPIRES); } if (rt) dst_release(&rt->u.dst); /* Try to figure out our local address for this prefix */ if (pinfo->autoconf && in6_dev->cnf.autoconf) { struct inet6_ifaddr * ifp; struct in6_addr addr; int newif = 0; int plen; plen = pinfo->prefix_len >> 3; #ifdef CONFIG_IPV6_EUI64 if (pinfo->prefix_len == 64) { memcpy(&addr, &pinfo->prefix, 8); if (ipv6_generate_eui64(addr.s6_addr + 8, dev) && ipv6_inherit_eui64(addr.s6_addr + 8, in6_dev)) return; goto ok; } #endif #ifndef CONFIG_IPV6_NO_PB if (pinfo->prefix_len == ((sizeof(struct in6_addr) - dev->addr_len)<<3)) { memcpy(&addr, &pinfo->prefix, plen); memcpy(addr.s6_addr + plen, dev->dev_addr, dev->addr_len); goto ok; } #endif printk(KERN_DEBUG "IPv6 addrconf: prefix with wrong length %d\n", pinfo->prefix_len); return; ok: ifp = ipv6_chk_addr(&addr, dev, 1); if ((ifp == NULL || (ifp->flags&ADDR_INVALID)) && valid_lft) { if (ifp == NULL) ifp = ipv6_add_addr(in6_dev, &addr, addr_type & IPV6_ADDR_SCOPE_MASK); if (ifp == NULL) return; ifp->prefix_len = pinfo->prefix_len; addrconf_dad_start(ifp); newif = 1; } if (ifp && valid_lft == 0) { ipv6_del_addr(ifp); ifp = NULL; } if (ifp) { int event = 0; #ifdef CONFIG_IPV6_ACONF_MIN_VALID_LFT #define TWO_HOURS 7200 if (newif) goto lft_ok; if (valid_lft > TWO_HOURS || valid_lft > ifp->valid_lft) { goto lft_ok; } else if (ifp->valid_lft <= TWO_HOURS && valid_lft <= ifp->valid_lft) { ; } else { valid_lft = TWO_HOURS; if (valid_lft < prefered_lft) prefered_lft = valid_lft; goto lft_ok; } goto skip_lft; lft_ok: #endif ifp->valid_lft = valid_lft; ifp->prefered_lft = prefered_lft; ifp->tstamp = jiffies; if (ifp->flags & ADDR_INVALID) event = RTM_NEWADDR; ifp->flags &= ~(ADDR_DEPRECATED|ADDR_INVALID); ipv6_ifa_notify(event, ifp); #ifdef CONFIG_IPV6_ACONF_MIN_VALID_LFT skip_lft: #endif } } } /* * Set destination address. * Special case for SIT interfaces where we create a new "virtual" * device. */ int addrconf_set_dstaddr(void *arg) { struct in6_ifreq ireq; struct device *dev; int err = -EINVAL; rtnl_lock(); err = -EFAULT; if (copy_from_user(&ireq, arg, sizeof(struct in6_ifreq))) goto err_exit; dev = dev_get_by_index(ireq.ifr6_ifindex); err = -ENODEV; if (dev == NULL) goto err_exit; if (dev->type == ARPHRD_SIT) { struct ifreq ifr; mm_segment_t oldfs; struct ip_tunnel_parm p; err = -EADDRNOTAVAIL; if (!(ipv6_addr_type(&ireq.ifr6_addr) & IPV6_ADDR_COMPATv4)) goto err_exit; memset(&p, 0, sizeof(p)); p.iph.daddr = ireq.ifr6_addr.s6_addr32[3]; p.iph.saddr = 0; p.iph.version = 4; p.iph.ihl = 5; p.iph.protocol = IPPROTO_IPV6; p.iph.ttl = 64; ifr.ifr_ifru.ifru_data = (void*)&p; oldfs = get_fs(); set_fs(KERNEL_DS); err = dev->do_ioctl(dev, &ifr, SIOCADDTUNNEL); set_fs(oldfs); if (err == 0) { err = -ENOBUFS; if ((dev = dev_get(p.name)) == NULL) goto err_exit; err = dev_open(dev); } } err_exit: rtnl_unlock(); return err; } /* * Manual configuration of address on an interface */ static int inet6_addr_add(int ifindex, struct in6_addr *pfx, int plen) { struct inet6_ifaddr *ifp; struct inet6_dev *idev; struct device *dev; int scope; if ((dev = dev_get_by_index(ifindex)) == NULL) return -ENODEV; if (!(dev->flags&IFF_UP)) return -ENETDOWN; if ((idev = addrconf_add_dev(dev)) == NULL) return -ENOBUFS; scope = ipv6_addr_scope(pfx); addrconf_lock(); if ((ifp = ipv6_add_addr(idev, pfx, scope)) != NULL) { ifp->prefix_len = plen; ifp->flags |= ADDR_PERMANENT; addrconf_dad_start(ifp); addrconf_unlock(); return 0; } addrconf_unlock(); return -ENOBUFS; } static int inet6_addr_del(int ifindex, struct in6_addr *pfx, int plen) { struct inet6_ifaddr *ifp; struct inet6_dev *idev; struct device *dev; if ((dev = dev_get_by_index(ifindex)) == NULL) return -ENODEV; if ((idev = ipv6_get_idev(dev)) == NULL) return -ENXIO; start_bh_atomic(); for (ifp = idev->addr_list; ifp; ifp=ifp->if_next) { if (ifp->prefix_len == plen && (!memcmp(pfx, &ifp->addr, sizeof(struct in6_addr)))) { ipv6_del_addr(ifp); end_bh_atomic(); /* If the last address is deleted administratively, disable IPv6 on this interface. */ if (idev->addr_list == NULL) addrconf_ifdown(idev->dev, 1); return 0; } } end_bh_atomic(); return -EADDRNOTAVAIL; } int addrconf_add_ifaddr(void *arg) { struct in6_ifreq ireq; int err; if (!capable(CAP_NET_ADMIN)) return -EPERM; if (copy_from_user(&ireq, arg, sizeof(struct in6_ifreq))) return -EFAULT; rtnl_lock(); err = inet6_addr_add(ireq.ifr6_ifindex, &ireq.ifr6_addr, ireq.ifr6_prefixlen); rtnl_unlock(); return err; } int addrconf_del_ifaddr(void *arg) { struct in6_ifreq ireq; int err; if (!capable(CAP_NET_ADMIN)) return -EPERM; if (copy_from_user(&ireq, arg, sizeof(struct in6_ifreq))) return -EFAULT; rtnl_lock(); err = inet6_addr_del(ireq.ifr6_ifindex, &ireq.ifr6_addr, ireq.ifr6_prefixlen); rtnl_unlock(); return err; } static void sit_add_v4_addrs(struct inet6_dev *idev) { struct inet6_ifaddr * ifp; struct in6_addr addr; struct device *dev; int scope; memset(&addr, 0, sizeof(struct in6_addr)); memcpy(&addr.s6_addr32[3], idev->dev->dev_addr, 4); if (idev->dev->flags&IFF_POINTOPOINT) { addr.s6_addr32[0] = __constant_htonl(0xfe800000); scope = IFA_LINK; } else { scope = IPV6_ADDR_COMPATv4; } if (addr.s6_addr32[3]) { addrconf_lock(); ifp = ipv6_add_addr(idev, &addr, scope); if (ifp) { ifp->flags |= ADDR_PERMANENT; ifp->prefix_len = 128; ipv6_ifa_notify(RTM_NEWADDR, ifp); } addrconf_unlock(); return; } for (dev = dev_base; dev != NULL; dev = dev->next) { if (dev->ip_ptr && (dev->flags & IFF_UP)) { struct in_device * in_dev = dev->ip_ptr; struct in_ifaddr * ifa; int flag = scope; for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) { addr.s6_addr32[3] = ifa->ifa_local; if (ifa->ifa_scope == RT_SCOPE_LINK) continue; if (ifa->ifa_scope >= RT_SCOPE_HOST) { if (idev->dev->flags&IFF_POINTOPOINT) continue; flag |= IFA_HOST; } addrconf_lock(); ifp = ipv6_add_addr(idev, &addr, flag); if (ifp) { if (idev->dev->flags&IFF_POINTOPOINT) ifp->prefix_len = 10; else ifp->prefix_len = 96; ifp->flags |= ADDR_PERMANENT; ipv6_ifa_notify(RTM_NEWADDR, ifp); } addrconf_unlock(); } } } } static void init_loopback(struct device *dev) { struct in6_addr addr; struct inet6_dev *idev; struct inet6_ifaddr * ifp; /* ::1 */ memset(&addr, 0, sizeof(struct in6_addr)); addr.s6_addr[15] = 1; if ((idev = ipv6_find_idev(dev)) == NULL) { printk(KERN_DEBUG "init loopback: add_dev failed\n"); return; } ipv6_mc_up(idev); addrconf_lock(); ifp = ipv6_add_addr(idev, &addr, IFA_HOST); if (ifp) { ifp->flags |= ADDR_PERMANENT; ifp->prefix_len = 128; ipv6_ifa_notify(RTM_NEWADDR, ifp); } addrconf_unlock(); } static void addrconf_add_linklocal(struct inet6_dev *idev, struct in6_addr *addr) { struct inet6_ifaddr * ifp; addrconf_lock(); ifp = ipv6_add_addr(idev, addr, IFA_LINK); if (ifp) { ifp->flags = ADDR_PERMANENT; ifp->prefix_len = 10; addrconf_dad_start(ifp); } addrconf_unlock(); } static void addrconf_dev_config(struct device *dev) { struct in6_addr addr; struct inet6_dev * idev; if (dev->type != ARPHRD_ETHER) { /* Alas, we support only Ethernet autoconfiguration. */ return; } idev = addrconf_add_dev(dev); if (idev == NULL) return; ipv6_mc_up(idev); #ifdef CONFIG_IPV6_EUI64 memset(&addr, 0, sizeof(struct in6_addr)); addr.s6_addr[0] = 0xFE; addr.s6_addr[1] = 0x80; if (ipv6_generate_eui64(addr.s6_addr + 8, dev) == 0) addrconf_add_linklocal(idev, &addr); #endif #ifndef CONFIG_IPV6_NO_PB memset(&addr, 0, sizeof(struct in6_addr)); addr.s6_addr[0] = 0xFE; addr.s6_addr[1] = 0x80; memcpy(addr.s6_addr + (sizeof(struct in6_addr) - dev->addr_len), dev->dev_addr, dev->addr_len); addrconf_add_linklocal(idev, &addr); #endif } static void addrconf_sit_config(struct device *dev) { struct inet6_dev *idev; /* * Configure the tunnel with one of our IPv4 * addresses... we should configure all of * our v4 addrs in the tunnel */ if ((idev = ipv6_find_idev(dev)) == NULL) { printk(KERN_DEBUG "init sit: add_dev failed\n"); return; } ipv6_mc_up(idev); sit_add_v4_addrs(idev); if (dev->flags&IFF_POINTOPOINT) { addrconf_add_mroute(dev); addrconf_add_lroute(dev); } else sit_route_add(dev); } int addrconf_notify(struct notifier_block *this, unsigned long event, void * data) { struct device *dev; dev = (struct device *) data; switch(event) { case NETDEV_UP: { struct inet6_dev *idev = ipv6_get_idev(dev); switch(dev->type) { case ARPHRD_SIT: /* XXX idev = no katachini */ addrconf_sit_config(dev); break; case ARPHRD_LOOPBACK: /* XXX idev = no katachini */ init_loopback(dev); break; default: /* XXX idev = no katachini */ addrconf_dev_config(dev); break; }; if (idev) idev->stats.ipv6.Ip6LastChange = timeticks(jiffies); #ifdef CONFIG_IPV6_NODEINFO icmpv6_ni_join_nigroup_dev(dev); #endif #ifdef CONFIG_IPV6_NETLINK rt6_sndmsg(RTMSG_NEWDEVICE, NULL, NULL, NULL, dev, 0, 0, 0, 0); #endif break; } case NETDEV_CHANGEMTU: if (dev->mtu >= IPV6_MIN_MTU) { struct inet6_dev *idev; if ((idev = ipv6_get_idev(dev)) == NULL) break; idev->cnf.mtu6 = dev->mtu; rt6_mtu_change(dev, dev->mtu); break; } /* MTU falled under IPV6_MIN_MTU. Stop IPv6 on this interface. */ case NETDEV_DOWN: case NETDEV_UNREGISTER: /* * Remove all addresses from this interface. */ if (addrconf_ifdown(dev, event != NETDEV_DOWN) == 0) { struct inet6_dev *idev = ipv6_get_idev(dev); if (idev) idev->stats.ipv6.Ip6LastChange = timeticks(jiffies); #ifdef CONFIG_IPV6_NETLINK rt6_sndmsg(RTMSG_DELDEVICE, NULL, NULL, NULL, dev, 0, 0, 0, 0); #endif } break; case NETDEV_CHANGE: break; }; return NOTIFY_OK; } static int addrconf_ifdown(struct device *dev, int how) { struct inet6_dev *idev, **bidev; struct inet6_ifaddr *ifa, **bifa; int i, hash; rt6_ifdown(dev); neigh_ifdown(&nd_tbl, dev); idev = ipv6_get_idev(dev); if (idev == NULL) return -ENODEV; start_bh_atomic(); /* Discard address list */ idev->addr_list = NULL; /* * Clean addresses hash table */ for (i=0; i<16; i++) { bifa = &inet6_addr_lst[i]; while ((ifa = *bifa) != NULL) { if (ifa->idev == idev) { *bifa = ifa->lst_next; del_timer(&ifa->timer); ipv6_ifa_notify(RTM_DELADDR, ifa); kfree(ifa); continue; } bifa = &ifa->lst_next; } } /* Discard multicast list */ if (how == 1) ipv6_mc_destroy_dev(idev); else ipv6_mc_down(idev); /* Delete device from device hash table (if unregistered) */ if (how == 1) { char name[64]; hash = ipv6_devindex_hash(dev->ifindex); for (bidev = &inet6_dev_lst[hash]; (idev=*bidev) != NULL; bidev = &idev->next) { if (idev->dev == dev) { *bidev = idev->next; neigh_parms_release(&nd_tbl, idev->nd_parms); #ifdef CONFIG_PROC_FS sprintf(name, "%d", dev->ifindex); remove_proc_entry(name, proc_net_devsnmp6); #endif #ifdef CONFIG_SYSCTL addrconf_sysctl_unregister(&idev->cnf); #endif ipv6_statistics.Ip6LastChange = timeticks(jiffies); kfree(idev); break; } } } end_bh_atomic(); return 0; } static void addrconf_rs_timer(unsigned long data) { struct inet6_ifaddr *ifp; ifp = (struct inet6_ifaddr *) data; if (ifp->idev->cnf.forwarding) return; if (ifp->idev->if_flags & IF_RA_RCVD) { /* * Announcement received after solicitation * was sent */ return; } if (ifp->probes++ < ifp->idev->cnf.rtr_solicits) { struct in6_addr all_routers; ipv6_addr_all_routers(&all_routers); ndisc_send_rs(ifp->idev->dev, &ifp->addr, &all_routers); ifp->timer.function = addrconf_rs_timer; ifp->timer.expires = (jiffies + ifp->idev->cnf.rtr_solicit_interval); add_timer(&ifp->timer); } else { struct in6_rtmsg rtmsg; if (ifp->idev->if_flags & IF_RA_RCVD) { printk(KERN_DEBUG "%s: no IPv6 routers present\n", ifp->idev->dev->name); } memset(&rtmsg, 0, sizeof(struct in6_rtmsg)); rtmsg.rtmsg_type = RTMSG_NEWROUTE; rtmsg.rtmsg_metric = IP6_RT_PRIO_ADDRCONF; rtmsg.rtmsg_flags = (RTF_ALLONLINK | RTF_ADDRCONF | RTF_DEFAULT | RTF_UP); rtmsg.rtmsg_ifindex = ifp->idev->dev->ifindex; ip6_route_add(&rtmsg); } } /* * Duplicate Address Detection */ static void addrconf_dad_start(struct inet6_ifaddr *ifp) { struct device *dev; unsigned long rand_num; dev = ifp->idev->dev; addrconf_join_solict(dev, &ifp->addr); if (ifp->prefix_len != 128 && (ifp->flags&ADDR_PERMANENT)) addrconf_prefix_route(&ifp->addr, ifp->prefix_len, dev, 0, RTF_ADDRCONF); if (dev->flags&(IFF_NOARP|IFF_LOOPBACK)) { start_bh_atomic(); ifp->flags &= ~DAD_INCOMPLETE; addrconf_dad_completed(ifp); end_bh_atomic(); return; } net_srandom(ifp->addr.s6_addr32[3]); ifp->probes = ifp->idev->cnf.dad_transmits; ifp->flags |= DAD_INCOMPLETE; rand_num = net_random() % ifp->idev->cnf.rtr_solicit_delay; ifp->timer.function = addrconf_dad_timer; ifp->timer.expires = jiffies + rand_num; add_timer(&ifp->timer); } static void addrconf_dad_timer(unsigned long data) { struct inet6_ifaddr *ifp; struct in6_addr unspec; struct in6_addr mcaddr; ifp = (struct inet6_ifaddr *) data; if (ifp->probes == 0) { /* * DAD was successful */ ifp->flags &= ~DAD_INCOMPLETE; addrconf_dad_completed(ifp); return; } ifp->probes--; /* send a neighbour solicitation for our addr */ memset(&unspec, 0, sizeof(unspec)); #ifdef CONFIG_IPV6_EUI64 addrconf_addr_solict_mult_new(&ifp->addr, &mcaddr); ndisc_send_ns(ifp->idev->dev, NULL, &ifp->addr, &mcaddr, &unspec, 1); #endif #ifndef CONFIG_IPV6_NO_PB addrconf_addr_solict_mult_old(&ifp->addr, &mcaddr); ndisc_send_ns(ifp->idev->dev, NULL, &ifp->addr, &mcaddr, &unspec, 1); #endif ifp->timer.expires = jiffies + ifp->idev->nd_parms->retrans_time; add_timer(&ifp->timer); } static void addrconf_dad_completed(struct inet6_ifaddr *ifp) { struct device * dev = ifp->idev->dev; /* * Configure the address for reception. Now it is valid. */ ipv6_ifa_notify(RTM_NEWADDR, ifp); /* If added prefix is link local and forwarding is off, start sending router solicitations. */ if (ifp->idev->cnf.forwarding == 0 && (dev->flags&IFF_LOOPBACK) == 0 && (ipv6_addr_type(&ifp->addr) & IPV6_ADDR_LINKLOCAL)) { struct in6_addr all_routers; ipv6_addr_all_routers(&all_routers); /* * If a host as already performed a random delay * [...] as part of DAD [...] there is no need * to delay again before sending the first RS */ ndisc_send_rs(ifp->idev->dev, &ifp->addr, &all_routers); ifp->probes = 1; ifp->timer.function = addrconf_rs_timer; ifp->timer.expires = (jiffies + ifp->idev->cnf.rtr_solicit_interval); ifp->idev->if_flags |= IF_RS_SENT; add_timer(&ifp->timer); } } #ifdef CONFIG_PROC_FS static int iface_proc_info(char *buffer, char **start, off_t offset, int length, int dummy) { struct inet6_ifaddr *ifp; int i; int len = 0; off_t pos=0; off_t begin=0; addrconf_lock(); for (i=0; i < IN6_ADDR_HSIZE; i++) { for (ifp=inet6_addr_lst[i]; ifp; ifp=ifp->lst_next) { int j; for (j=0; j<16; j++) { sprintf(buffer + len, "%02x", ifp->addr.s6_addr[j]); len += 2; } len += sprintf(buffer + len, " %02x %02x %02x %02x %8s\n", ifp->idev->dev->ifindex, ifp->prefix_len, ifp->scope, ifp->flags, ifp->idev->dev->name); pos=begin+len; if(posoffset+length) goto done; } } done: addrconf_unlock(); *start=buffer+(offset-begin); len-=(offset-begin); if(len>length) len=length; if(len<0) len=0; return len; } struct proc_dir_entry iface_proc_entry = { 0, 8, "if_inet6", S_IFREG | S_IRUGO, 1, 0, 0, 0, NULL, &iface_proc_info }; #endif /* CONFIG_PROC_FS */ /* * Periodic address status verification */ void addrconf_verify(unsigned long foo) { struct inet6_ifaddr *ifp; unsigned long now = jiffies; int i; if (atomic_read(&addr_list_lock)) { addr_chk_timer.expires = jiffies + 1*HZ; add_timer(&addr_chk_timer); return; } for (i=0; i < IN6_ADDR_HSIZE; i++) { for (ifp=inet6_addr_lst[i]; ifp;) { if (ifp->flags & ADDR_INVALID) { struct inet6_ifaddr *bp = ifp; ifp= ifp->lst_next; ipv6_del_addr(bp); continue; } if (!(ifp->flags & ADDR_PERMANENT)) { struct inet6_ifaddr *bp; unsigned long age; age = (now - ifp->tstamp) / HZ; bp = ifp; ifp= ifp->lst_next; if (age > bp->valid_lft) ipv6_del_addr(bp); else if (age > bp->prefered_lft) { bp->flags |= ADDR_DEPRECATED; ipv6_ifa_notify(0, bp); } continue; } ifp = ifp->lst_next; } } addr_chk_timer.expires = jiffies + ADDR_CHECK_FREQUENCY; add_timer(&addr_chk_timer); } #ifdef CONFIG_RTNETLINK static int inet6_rtm_deladdr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) { struct rtattr **rta = arg; struct ifaddrmsg *ifm = NLMSG_DATA(nlh); struct in6_addr *pfx; pfx = NULL; if (rta[IFA_ADDRESS-1]) { if (RTA_PAYLOAD(rta[IFA_ADDRESS-1]) < sizeof(*pfx)) return -EINVAL; pfx = RTA_DATA(rta[IFA_ADDRESS-1]); } if (rta[IFA_LOCAL-1]) { if (pfx && memcmp(pfx, RTA_DATA(rta[IFA_LOCAL-1]), sizeof(*pfx))) return -EINVAL; pfx = RTA_DATA(rta[IFA_LOCAL-1]); } if (pfx == NULL) return -EINVAL; return inet6_addr_del(ifm->ifa_index, pfx, ifm->ifa_prefixlen); } static int inet6_rtm_newaddr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) { struct rtattr **rta = arg; struct ifaddrmsg *ifm = NLMSG_DATA(nlh); struct in6_addr *pfx; pfx = NULL; if (rta[IFA_ADDRESS-1]) { if (RTA_PAYLOAD(rta[IFA_ADDRESS-1]) < sizeof(*pfx)) return -EINVAL; pfx = RTA_DATA(rta[IFA_ADDRESS-1]); } if (rta[IFA_LOCAL-1]) { if (pfx && memcmp(pfx, RTA_DATA(rta[IFA_LOCAL-1]), sizeof(*pfx))) return -EINVAL; pfx = RTA_DATA(rta[IFA_LOCAL-1]); } if (pfx == NULL) return -EINVAL; return inet6_addr_add(ifm->ifa_index, pfx, ifm->ifa_prefixlen); } static int inet6_fill_ifaddr(struct sk_buff *skb, struct inet6_ifaddr *ifa, u32 pid, u32 seq, int event) { struct ifaddrmsg *ifm; struct nlmsghdr *nlh; struct ifa_cacheinfo ci; unsigned char *b = skb->tail; nlh = NLMSG_PUT(skb, pid, seq, event, sizeof(*ifm)); ifm = NLMSG_DATA(nlh); ifm->ifa_family = AF_INET6; ifm->ifa_prefixlen = ifa->prefix_len; ifm->ifa_flags = ifa->flags & ~ADDR_INVALID; ifm->ifa_scope = RT_SCOPE_UNIVERSE; if (ifa->scope&IFA_HOST) ifm->ifa_scope = RT_SCOPE_HOST; else if (ifa->scope&IFA_LINK) ifm->ifa_scope = RT_SCOPE_LINK; else if (ifa->scope&IFA_SITE) ifm->ifa_scope = RT_SCOPE_SITE; ifm->ifa_index = ifa->idev->dev->ifindex; RTA_PUT(skb, IFA_ADDRESS, 16, &ifa->addr); if (!(ifa->flags&IFA_F_PERMANENT)) { ci.ifa_prefered = ifa->prefered_lft; ci.ifa_valid = ifa->valid_lft; if (ci.ifa_prefered != 0xFFFFFFFF) { long tval = (jiffies - ifa->tstamp)/HZ; ci.ifa_prefered -= tval; if (ci.ifa_valid != 0xFFFFFFFF) ci.ifa_valid -= tval; } RTA_PUT(skb, IFA_CACHEINFO, sizeof(ci), &ci); } nlh->nlmsg_len = skb->tail - b; return skb->len; nlmsg_failure: rtattr_failure: skb_trim(skb, b - skb->data); return -1; } static int inet6_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb) { int idx, ip_idx; int s_idx, s_ip_idx; struct inet6_ifaddr *ifa; s_idx = cb->args[0]; s_ip_idx = ip_idx = cb->args[1]; for (idx=0; idx < IN6_ADDR_HSIZE; idx++) { if (idx < s_idx) continue; if (idx > s_idx) s_ip_idx = 0; start_bh_atomic(); for (ifa=inet6_addr_lst[idx], ip_idx = 0; ifa; ifa = ifa->lst_next, ip_idx++) { if (ip_idx < s_ip_idx) continue; if (inet6_fill_ifaddr(skb, ifa, NETLINK_CB(cb->skb).pid, cb->nlh->nlmsg_seq, RTM_NEWADDR) <= 0) { end_bh_atomic(); goto done; } } end_bh_atomic(); } done: cb->args[0] = idx; cb->args[1] = ip_idx; return skb->len; } static void inet6_ifa_notify(int event, struct inet6_ifaddr *ifa) { struct sk_buff *skb; int size = NLMSG_SPACE(sizeof(struct ifaddrmsg)+128); skb = alloc_skb(size, GFP_ATOMIC); if (!skb) { netlink_set_err(rtnl, 0, RTMGRP_IPV6_IFADDR, ENOBUFS); return; } if (inet6_fill_ifaddr(skb, ifa, 0, 0, event) < 0) { kfree_skb(skb); netlink_set_err(rtnl, 0, RTMGRP_IPV6_IFADDR, EINVAL); return; } NETLINK_CB(skb).dst_groups = RTMGRP_IPV6_IFADDR; netlink_broadcast(rtnl, skb, 0, RTMGRP_IPV6_IFADDR, GFP_ATOMIC); } static struct rtnetlink_link inet6_rtnetlink_table[RTM_MAX-RTM_BASE+1] = { { NULL, NULL, }, { NULL, NULL, }, { NULL, NULL, }, { NULL, NULL, }, { inet6_rtm_newaddr, NULL, }, { inet6_rtm_deladdr, NULL, }, { NULL, inet6_dump_ifaddr, }, { NULL, NULL, }, { inet6_rtm_newroute, NULL, }, { inet6_rtm_delroute, NULL, }, { inet6_rtm_getroute, inet6_dump_fib, }, { NULL, NULL, }, }; #endif static void ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp) { #ifdef CONFIG_RTNETLINK inet6_ifa_notify(event ? : RTM_NEWADDR, ifp); #endif switch (event) { case RTM_NEWADDR: ip6_rt_addr_add(&ifp->addr, ifp->idev->dev); break; case RTM_DELADDR: start_bh_atomic(); addrconf_leave_solict(ifp->idev->dev, &ifp->addr); if (ipv6_chk_addr(&ifp->addr, ifp->idev->dev, 0) == NULL) ip6_rt_addr_del(&ifp->addr, ifp->idev->dev); end_bh_atomic(); break; } } #ifdef CONFIG_SYSCTL static int addrconf_sysctl_forward(ctl_table *ctl, int write, struct file * filp, void *buffer, size_t *lenp) { int *valp = ctl->data; int val = *valp; int ret; ret = proc_dointvec(ctl, write, filp, buffer, lenp); if (write && *valp != val && valp != &ipv6_devconf_dflt.forwarding) { struct inet6_dev *idev = NULL; if (valp != &ipv6_devconf.forwarding) { struct device *dev = dev_get_by_index(ctl->ctl_name); if (dev) idev = ipv6_get_idev(dev); if (idev == NULL) return ret; } else ipv6_devconf_dflt.forwarding = ipv6_devconf.forwarding; addrconf_forward_change(idev); #ifndef CONFIG_IPV6_EN_DFLT if (*valp) { printk(KERN_DEBUG "Purge default routes(0)\n"); start_bh_atomic(); rt6_purge_dflt_routers(0); end_bh_atomic(); } #else printk(KERN_DEBUG "IPv6 forwarding is enabled, But not purge default routes\n"); #endif } return ret; } static struct addrconf_sysctl_table { struct ctl_table_header *sysctl_header; #ifdef CONFIG_IPV6_NODEINFO ctl_table addrconf_vars[12]; #else ctl_table addrconf_vars[11]; #endif ctl_table addrconf_dev[2]; ctl_table addrconf_conf_dir[2]; ctl_table addrconf_proto_dir[2]; ctl_table addrconf_root_dir[2]; } addrconf_sysctl = { NULL, {{NET_IPV6_FORWARDING, "forwarding", &ipv6_devconf.forwarding, sizeof(int), 0644, NULL, &addrconf_sysctl_forward}, {NET_IPV6_HOP_LIMIT, "hop_limit", &ipv6_devconf.hop_limit, sizeof(int), 0644, NULL, &proc_dointvec}, {NET_IPV6_MTU, "mtu", &ipv6_devconf.mtu6, sizeof(int), 0644, NULL, &proc_dointvec}, {NET_IPV6_ACCEPT_RA, "accept_ra", &ipv6_devconf.accept_ra, sizeof(int), 0644, NULL, &proc_dointvec}, {NET_IPV6_ACCEPT_REDIRECTS, "accept_redirects", &ipv6_devconf.accept_redirects, sizeof(int), 0644, NULL, &proc_dointvec}, {NET_IPV6_AUTOCONF, "autoconf", &ipv6_devconf.autoconf, sizeof(int), 0644, NULL, &proc_dointvec}, {NET_IPV6_DAD_TRANSMITS, "dad_transmits", &ipv6_devconf.dad_transmits, sizeof(int), 0644, NULL, &proc_dointvec}, {NET_IPV6_RTR_SOLICITS, "router_solicitations", &ipv6_devconf.rtr_solicits, sizeof(int), 0644, NULL, &proc_dointvec}, {NET_IPV6_RTR_SOLICIT_INTERVAL, "router_solicitation_interval", &ipv6_devconf.rtr_solicit_interval, sizeof(int), 0644, NULL, &proc_dointvec_jiffies}, {NET_IPV6_RTR_SOLICIT_DELAY, "router_solicitation_delay", &ipv6_devconf.rtr_solicit_delay, sizeof(int), 0644, NULL, &proc_dointvec_jiffies}, #ifdef CONFIG_IPV6_NODEINFO {NET_IPV6_ACCEPT_NI, "accept_ni", &ipv6_devconf.accept_ni, sizeof(int), 0644, NULL, &proc_dointvec}, #endif {0}}, {{NET_PROTO_CONF_ALL, "all", NULL, 0, 0555, addrconf_sysctl.addrconf_vars},{0}}, {{NET_IPV6_CONF, "conf", NULL, 0, 0555, addrconf_sysctl.addrconf_dev},{0}}, {{NET_IPV6, "ipv6", NULL, 0, 0555, addrconf_sysctl.addrconf_conf_dir},{0}}, {{CTL_NET, "net", NULL, 0, 0555, addrconf_sysctl.addrconf_proto_dir},{0}} }; static void addrconf_sysctl_register(struct inet6_dev *idev, struct ipv6_devconf *p) { int i; struct device *dev = idev ? idev->dev : NULL; struct addrconf_sysctl_table *t; t = kmalloc(sizeof(*t), GFP_KERNEL); if (t == NULL) return; memcpy(t, &addrconf_sysctl, sizeof(*t)); for (i=0; iaddrconf_vars)/sizeof(t->addrconf_vars[0])-1; i++) { t->addrconf_vars[i].data += (char*)p - (char*)&ipv6_devconf; t->addrconf_vars[i].de = NULL; } if (dev) { t->addrconf_dev[0].procname = dev->name; t->addrconf_dev[0].ctl_name = dev->ifindex; } else { t->addrconf_dev[0].procname = "default"; t->addrconf_dev[0].ctl_name = NET_PROTO_CONF_DEFAULT; } t->addrconf_dev[0].child = t->addrconf_vars; t->addrconf_dev[0].de = NULL; t->addrconf_conf_dir[0].child = t->addrconf_dev; t->addrconf_conf_dir[0].de = NULL; t->addrconf_proto_dir[0].child = t->addrconf_conf_dir; t->addrconf_proto_dir[0].de = NULL; t->addrconf_root_dir[0].child = t->addrconf_proto_dir; t->addrconf_root_dir[0].de = NULL; t->sysctl_header = register_sysctl_table(t->addrconf_root_dir, 0); if (t->sysctl_header == NULL) kfree(t); else p->sysctl = t; } static void addrconf_sysctl_unregister(struct ipv6_devconf *p) { if (p->sysctl) { struct addrconf_sysctl_table *t = p->sysctl; p->sysctl = NULL; unregister_sysctl_table(t->sysctl_header); kfree(t); } } #endif /* * Init / cleanup code */ __initfunc(void addrconf_init(void)) { #ifdef MODULE struct device *dev; /* This takes sense only during module load. */ for (dev = dev_base; dev; dev = dev->next) { if (!(dev->flags&IFF_UP)) continue; switch (dev->type) { case ARPHRD_LOOPBACK: init_loopback(dev); break; case ARPHRD_ETHER: addrconf_dev_config(dev); break; default: /* Ignore all other */ } } #endif #ifdef CONFIG_PROC_FS proc_net_register(&iface_proc_entry); #endif addr_chk_timer.expires = jiffies + ADDR_CHECK_FREQUENCY; add_timer(&addr_chk_timer); #ifdef CONFIG_RTNETLINK rtnetlink_links[PF_INET6] = inet6_rtnetlink_table; #endif #ifdef CONFIG_SYSCTL addrconf_sysctl.sysctl_header = register_sysctl_table(addrconf_sysctl.addrconf_root_dir, 0); addrconf_sysctl_register(NULL, &ipv6_devconf_dflt); #endif } #ifdef MODULE void addrconf_cleanup(void) { struct inet6_dev *idev; struct inet6_ifaddr *ifa; int i; #ifdef CONFIG_RTNETLINK rtnetlink_links[PF_INET6] = NULL; #endif #ifdef CONFIG_SYSCTL addrconf_sysctl_unregister(&ipv6_devconf_dflt); addrconf_sysctl_unregister(&ipv6_devconf); #endif del_timer(&addr_chk_timer); /* * clean dev list. */ for (i=0; i < IN6_ADDR_HSIZE; i++) { struct inet6_dev *next; for (idev = inet6_dev_lst[i]; idev; idev = next) { next = idev->next; addrconf_ifdown(idev->dev, 1); } } start_bh_atomic(); /* * clean addr_list */ for (i=0; i < IN6_ADDR_HSIZE; i++) { for (ifa=inet6_addr_lst[i]; ifa; ) { struct inet6_ifaddr *bifa; bifa = ifa; ifa = ifa->lst_next; printk(KERN_DEBUG "bug: IPv6 address leakage detected: ifa=%p\n", bifa); /* Do not free it; something is wrong. Now we can investigate it with debugger. */ } } end_bh_atomic(); #ifdef CONFIG_PROC_FS proc_net_unregister(iface_proc_entry.low_ino); #endif } #endif /* MODULE */ ipv6calc-4.1.0/samplecode/coreutils/000077500000000000000000000000001444154247200173575ustar00rootroot00000000000000ipv6calc-4.1.0/samplecode/coreutils/md5.c000066400000000000000000000332671444154247200202230ustar00rootroot00000000000000/* md5.c - Functions to compute MD5 message digest of files or memory blocks according to the definition of MD5 in RFC 1321 from April 1992. Copyright (C) 1995, 1996, 2001, 2003 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Ulrich Drepper , 1995. */ #ifdef HAVE_CONFIG_H # include #endif #include "md5.h" #include #include #include #include "unlocked-io.h" #ifdef _LIBC # include # if __BYTE_ORDER == __BIG_ENDIAN # define WORDS_BIGENDIAN 1 # endif /* We need to keep the namespace clean so define the MD5 function protected using leading __ . */ # define md5_init_ctx __md5_init_ctx # define md5_process_block __md5_process_block # define md5_process_bytes __md5_process_bytes # define md5_finish_ctx __md5_finish_ctx # define md5_read_ctx __md5_read_ctx # define md5_stream __md5_stream # define md5_buffer __md5_buffer #endif #ifdef WORDS_BIGENDIAN # define SWAP(n) \ (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24)) #else # define SWAP(n) (n) #endif #define BLOCKSIZE 4096 /* Ensure that BLOCKSIZE is a multiple of 64. */ #if BLOCKSIZE % 64 != 0 /* FIXME-someday (soon?): use #error instead of this kludge. */ "invalid BLOCKSIZE" #endif /* This array contains the bytes used to pad the buffer to the next 64-byte boundary. (RFC 1321, 3.1: Step 1) */ static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ }; /* Initialize structure containing state of computation. (RFC 1321, 3.3: Step 3) */ void md5_init_ctx (struct md5_ctx *ctx) { ctx->A = 0x67452301; ctx->B = 0xefcdab89; ctx->C = 0x98badcfe; ctx->D = 0x10325476; ctx->total[0] = ctx->total[1] = 0; ctx->buflen = 0; } /* Put result from CTX in first 16 bytes following RESBUF. The result must be in little endian byte order. IMPORTANT: On some systems it is required that RESBUF is correctly aligned for a 32 bits value. */ void * md5_read_ctx (const struct md5_ctx *ctx, void *resbuf) { ((md5_uint32 *) resbuf)[0] = SWAP (ctx->A); ((md5_uint32 *) resbuf)[1] = SWAP (ctx->B); ((md5_uint32 *) resbuf)[2] = SWAP (ctx->C); ((md5_uint32 *) resbuf)[3] = SWAP (ctx->D); return resbuf; } /* Process the remaining bytes in the internal buffer and the usual prolog according to the standard and write the result to RESBUF. IMPORTANT: On some systems it is required that RESBUF is correctly aligned for a 32 bits value. */ void * md5_finish_ctx (struct md5_ctx *ctx, void *resbuf) { /* Take yet unprocessed bytes into account. */ md5_uint32 bytes = ctx->buflen; size_t pad; /* Now count remaining bytes. */ ctx->total[0] += bytes; if (ctx->total[0] < bytes) ++ctx->total[1]; pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes; memcpy (&ctx->buffer[bytes], fillbuf, pad); /* Put the 64-bit file length in *bits* at the end of the buffer. */ *(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3); *(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29)); /* Process last bytes. */ md5_process_block (ctx->buffer, bytes + pad + 8, ctx); return md5_read_ctx (ctx, resbuf); } /* Compute MD5 message digest for bytes read from STREAM. The resulting message digest number will be written into the 16 bytes beginning at RESBLOCK. */ int md5_stream (FILE *stream, void *resblock) { struct md5_ctx ctx; char buffer[BLOCKSIZE + 72]; size_t sum; /* Initialize the computation context. */ md5_init_ctx (&ctx); /* Iterate over full file contents. */ while (1) { /* We read the file in blocks of BLOCKSIZE bytes. One call of the computation function processes the whole buffer so that with the next round of the loop another block can be read. */ size_t n; sum = 0; /* Read block. Take care for partial reads. */ while (1) { n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream); sum += n; if (sum == BLOCKSIZE) break; if (n == 0) { /* Check for the error flag IFF N == 0, so that we don't exit the loop after a partial read due to e.g., EAGAIN or EWOULDBLOCK. */ if (ferror (stream)) return 1; goto process_partial_block; } /* We've read at least one byte, so ignore errors. But always check for EOF, since feof may be true even though N > 0. Otherwise, we could end up calling fread after EOF. */ if (feof (stream)) goto process_partial_block; } /* Process buffer with BLOCKSIZE bytes. Note that BLOCKSIZE % 64 == 0 */ md5_process_block (buffer, BLOCKSIZE, &ctx); } process_partial_block:; /* Process any remaining bytes. */ if (sum > 0) md5_process_bytes (buffer, sum, &ctx); /* Construct result in desired memory. */ md5_finish_ctx (&ctx, resblock); return 0; } /* Compute MD5 message digest for LEN bytes beginning at BUFFER. The result is always in little endian byte order, so that a byte-wise output yields to the wanted ASCII representation of the message digest. */ void * md5_buffer (const char *buffer, size_t len, void *resblock) { struct md5_ctx ctx; /* Initialize the computation context. */ md5_init_ctx (&ctx); /* Process whole buffer but last len % 64 bytes. */ md5_process_bytes (buffer, len, &ctx); /* Put result in desired memory area. */ return md5_finish_ctx (&ctx, resblock); } void md5_process_bytes (const void *buffer, size_t len, struct md5_ctx *ctx) { /* When we already have some bits in our internal buffer concatenate both inputs first. */ if (ctx->buflen != 0) { size_t left_over = ctx->buflen; size_t add = 128 - left_over > len ? len : 128 - left_over; memcpy (&ctx->buffer[left_over], buffer, add); ctx->buflen += add; if (ctx->buflen > 64) { md5_process_block (ctx->buffer, ctx->buflen & ~63, ctx); ctx->buflen &= 63; /* The regions in the following copy operation cannot overlap. */ memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63], ctx->buflen); } buffer = (const char *) buffer + add; len -= add; } /* Process available complete blocks. */ if (len >= 64) { #if !_STRING_ARCH_unaligned /* To check alignment gcc has an appropriate operator. Other compilers don't. */ # if __GNUC__ >= 2 # define UNALIGNED_P(p) (((md5_uintptr) p) % __alignof__ (md5_uint32) != 0) # else # define UNALIGNED_P(p) (((md5_uintptr) p) % sizeof (md5_uint32) != 0) # endif if (UNALIGNED_P (buffer)) while (len > 64) { md5_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx); buffer = (const char *) buffer + 64; len -= 64; } else #endif { md5_process_block (buffer, len & ~63, ctx); buffer = (const char *) buffer + (len & ~63); len &= 63; } } /* Move remaining bytes in internal buffer. */ if (len > 0) { size_t left_over = ctx->buflen; memcpy (&ctx->buffer[left_over], buffer, len); left_over += len; if (left_over >= 64) { md5_process_block (ctx->buffer, 64, ctx); left_over -= 64; memcpy (ctx->buffer, &ctx->buffer[64], left_over); } ctx->buflen = left_over; } } /* These are the four functions used in the four steps of the MD5 algorithm and defined in the RFC 1321. The first function is a little bit optimized (as found in Colin Plumbs public domain implementation). */ /* #define FF(b, c, d) ((b & c) | (~b & d)) */ #define FF(b, c, d) (d ^ (b & (c ^ d))) #define FG(b, c, d) FF (d, b, c) #define FH(b, c, d) (b ^ c ^ d) #define FI(b, c, d) (c ^ (b | ~d)) /* Process LEN bytes of BUFFER, accumulating context into CTX. It is assumed that LEN % 64 == 0. */ void md5_process_block (const void *buffer, size_t len, struct md5_ctx *ctx) { md5_uint32 correct_words[16]; const md5_uint32 *words = buffer; size_t nwords = len / sizeof (md5_uint32); const md5_uint32 *endp = words + nwords; md5_uint32 A = ctx->A; md5_uint32 B = ctx->B; md5_uint32 C = ctx->C; md5_uint32 D = ctx->D; /* First increment the byte count. RFC 1321 specifies the possible length of the file up to 2^64 bits. Here we only compute the number of bytes. Do a double word increment. */ ctx->total[0] += len; if (ctx->total[0] < len) ++ctx->total[1]; /* Process all bytes in the buffer with 64 bytes in each round of the loop. */ while (words < endp) { md5_uint32 *cwp = correct_words; md5_uint32 A_save = A; md5_uint32 B_save = B; md5_uint32 C_save = C; md5_uint32 D_save = D; /* First round: using the given function, the context and a constant the next context is computed. Because the algorithms processing unit is a 32-bit word and it is determined to work on words in little endian byte order we perhaps have to change the byte order before the computation. To reduce the work for the next steps we store the swapped words in the array CORRECT_WORDS. */ #define OP(a, b, c, d, s, T) \ do \ { \ a += FF (b, c, d) + (*cwp++ = SWAP (*words)) + T; \ ++words; \ a = rol (a, s); \ a += b; \ } \ while (0) /* Before we start, one word to the strange constants. They are defined in RFC 1321 as T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64, or perl -e 'foreach(1..64){printf "0x%08x\n", int (4294967296 * abs (sin $_))}' */ /* Round 1. */ OP (A, B, C, D, 7, 0xd76aa478); OP (D, A, B, C, 12, 0xe8c7b756); OP (C, D, A, B, 17, 0x242070db); OP (B, C, D, A, 22, 0xc1bdceee); OP (A, B, C, D, 7, 0xf57c0faf); OP (D, A, B, C, 12, 0x4787c62a); OP (C, D, A, B, 17, 0xa8304613); OP (B, C, D, A, 22, 0xfd469501); OP (A, B, C, D, 7, 0x698098d8); OP (D, A, B, C, 12, 0x8b44f7af); OP (C, D, A, B, 17, 0xffff5bb1); OP (B, C, D, A, 22, 0x895cd7be); OP (A, B, C, D, 7, 0x6b901122); OP (D, A, B, C, 12, 0xfd987193); OP (C, D, A, B, 17, 0xa679438e); OP (B, C, D, A, 22, 0x49b40821); /* For the second to fourth round we have the possibly swapped words in CORRECT_WORDS. Redefine the macro to take an additional first argument specifying the function to use. */ #undef OP #define OP(f, a, b, c, d, k, s, T) \ do \ { \ a += f (b, c, d) + correct_words[k] + T; \ a = rol (a, s); \ a += b; \ } \ while (0) /* Round 2. */ OP (FG, A, B, C, D, 1, 5, 0xf61e2562); OP (FG, D, A, B, C, 6, 9, 0xc040b340); OP (FG, C, D, A, B, 11, 14, 0x265e5a51); OP (FG, B, C, D, A, 0, 20, 0xe9b6c7aa); OP (FG, A, B, C, D, 5, 5, 0xd62f105d); OP (FG, D, A, B, C, 10, 9, 0x02441453); OP (FG, C, D, A, B, 15, 14, 0xd8a1e681); OP (FG, B, C, D, A, 4, 20, 0xe7d3fbc8); OP (FG, A, B, C, D, 9, 5, 0x21e1cde6); OP (FG, D, A, B, C, 14, 9, 0xc33707d6); OP (FG, C, D, A, B, 3, 14, 0xf4d50d87); OP (FG, B, C, D, A, 8, 20, 0x455a14ed); OP (FG, A, B, C, D, 13, 5, 0xa9e3e905); OP (FG, D, A, B, C, 2, 9, 0xfcefa3f8); OP (FG, C, D, A, B, 7, 14, 0x676f02d9); OP (FG, B, C, D, A, 12, 20, 0x8d2a4c8a); /* Round 3. */ OP (FH, A, B, C, D, 5, 4, 0xfffa3942); OP (FH, D, A, B, C, 8, 11, 0x8771f681); OP (FH, C, D, A, B, 11, 16, 0x6d9d6122); OP (FH, B, C, D, A, 14, 23, 0xfde5380c); OP (FH, A, B, C, D, 1, 4, 0xa4beea44); OP (FH, D, A, B, C, 4, 11, 0x4bdecfa9); OP (FH, C, D, A, B, 7, 16, 0xf6bb4b60); OP (FH, B, C, D, A, 10, 23, 0xbebfbc70); OP (FH, A, B, C, D, 13, 4, 0x289b7ec6); OP (FH, D, A, B, C, 0, 11, 0xeaa127fa); OP (FH, C, D, A, B, 3, 16, 0xd4ef3085); OP (FH, B, C, D, A, 6, 23, 0x04881d05); OP (FH, A, B, C, D, 9, 4, 0xd9d4d039); OP (FH, D, A, B, C, 12, 11, 0xe6db99e5); OP (FH, C, D, A, B, 15, 16, 0x1fa27cf8); OP (FH, B, C, D, A, 2, 23, 0xc4ac5665); /* Round 4. */ OP (FI, A, B, C, D, 0, 6, 0xf4292244); OP (FI, D, A, B, C, 7, 10, 0x432aff97); OP (FI, C, D, A, B, 14, 15, 0xab9423a7); OP (FI, B, C, D, A, 5, 21, 0xfc93a039); OP (FI, A, B, C, D, 12, 6, 0x655b59c3); OP (FI, D, A, B, C, 3, 10, 0x8f0ccc92); OP (FI, C, D, A, B, 10, 15, 0xffeff47d); OP (FI, B, C, D, A, 1, 21, 0x85845dd1); OP (FI, A, B, C, D, 8, 6, 0x6fa87e4f); OP (FI, D, A, B, C, 15, 10, 0xfe2ce6e0); OP (FI, C, D, A, B, 6, 15, 0xa3014314); OP (FI, B, C, D, A, 13, 21, 0x4e0811a1); OP (FI, A, B, C, D, 4, 6, 0xf7537e82); OP (FI, D, A, B, C, 11, 10, 0xbd3af235); OP (FI, C, D, A, B, 2, 15, 0x2ad7d2bb); OP (FI, B, C, D, A, 9, 21, 0xeb86d391); /* Add the starting values of the context. */ A += A_save; B += B_save; C += C_save; D += D_save; } /* Put checksum in context given as argument. */ ctx->A = A; ctx->B = B; ctx->C = C; ctx->D = D; } ipv6calc-4.1.0/samplecode/coreutils/md5.h000066400000000000000000000111461444154247200202200ustar00rootroot00000000000000/* md5.h - Declaration of functions and data types used for MD5 sum computing library functions. Copyright (C) 1995, 1996, 1999, 2000, 2003 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _MD5_H #define _MD5_H 1 #include #include /* The following contortions are an attempt to use the C preprocessor to determine an unsigned integral type that is 32 bits wide. An alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but doing that would require that the configure script compile and *run* the resulting executable. Locally running cross-compiled executables is usually not possible. */ #ifdef _LIBC # include typedef uint32_t md5_uint32; typedef uintptr_t md5_uintptr; #else # define UINT_MAX_32_BITS 4294967295U # if UINT_MAX == UINT_MAX_32_BITS typedef unsigned int md5_uint32; # else # if USHRT_MAX == UINT_MAX_32_BITS typedef unsigned short md5_uint32; # else # if ULONG_MAX == UINT_MAX_32_BITS typedef unsigned long md5_uint32; # else /* The following line is intended to evoke an error. Using #error is not portable enough. */ "Cannot determine unsigned 32-bit data type." # endif # endif # endif /* We have to make a guess about the integer type equivalent in size to pointers which should always be correct. */ typedef unsigned long int md5_uintptr; #endif /* Structure to save state of computation between the single steps. */ struct md5_ctx { md5_uint32 A; md5_uint32 B; md5_uint32 C; md5_uint32 D; md5_uint32 total[2]; md5_uint32 buflen; char buffer[128]; }; /* * The following three functions are build up the low level used in * the functions `md5_stream' and `md5_buffer'. */ /* Initialize structure containing state of computation. (RFC 1321, 3.3: Step 3) */ extern void md5_init_ctx (struct md5_ctx *ctx); /* Starting with the result of former calls of this function (or the initialization function update the context for the next LEN bytes starting at BUFFER. It is necessary that LEN is a multiple of 64!!! */ extern void md5_process_block (const void *buffer, size_t len, struct md5_ctx *ctx); /* Starting with the result of former calls of this function (or the initialization function update the context for the next LEN bytes starting at BUFFER. It is NOT required that LEN is a multiple of 64. */ extern void md5_process_bytes (const void *buffer, size_t len, struct md5_ctx *ctx); /* Process the remaining bytes in the buffer and put result from CTX in first 16 bytes following RESBUF. The result is always in little endian byte order, so that a byte-wise output yields to the wanted ASCII representation of the message digest. IMPORTANT: On some systems it is required that RESBUF be correctly aligned for a 32 bits value. */ extern void *md5_finish_ctx (struct md5_ctx *ctx, void *resbuf); /* Put result from CTX in first 16 bytes following RESBUF. The result is always in little endian byte order, so that a byte-wise output yields to the wanted ASCII representation of the message digest. IMPORTANT: On some systems it is required that RESBUF is correctly aligned for a 32 bits value. */ extern void *md5_read_ctx (const struct md5_ctx *ctx, void *resbuf); /* Compute MD5 message digest for bytes read from STREAM. The resulting message digest number will be written into the 16 bytes beginning at RESBLOCK. */ extern int md5_stream (FILE *stream, void *resblock); /* Compute MD5 message digest for LEN bytes beginning at BUFFER. The result is always in little endian byte order, so that a byte-wise output yields to the wanted ASCII representation of the message digest. */ extern void *md5_buffer (const char *buffer, size_t len, void *resblock); #define rol(x,n) ( ((x) << (n)) | ((x) >> (32-(n))) ) #endif ipv6calc-4.1.0/samplecode/getopt/000077500000000000000000000000001444154247200166505ustar00rootroot00000000000000ipv6calc-4.1.0/samplecode/getopt/URL000066400000000000000000000001721444154247200172350ustar00rootroot00000000000000This original code is located at: ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/obrien/libgnugetopt-1.1.tar.gz ipv6calc-4.1.0/samplecode/getopt/libgnugetopt-1.1.tar.gz000066400000000000000000000261351444154247200230060ustar00rootroot00000000000000cQ-7\WƶW1!RٵyB%ˣiVe<YNN{ό$ې+CYٳg$y:>E6*V绯GWJuזm}J=^,xye}+oe36E+UosW ~I / N\n?^]k+-kjJ ~x^(qdSUţeVјi'2{ieI{[>sWwI4Yu0J5%goM76U3*9 op&(a٘ˇ?bϔ{|5xJ^w,=WBw/K"Q,N Y^18nPKd=x$xlNl`c]̵VG٠=P/q8KFFcxgS_hiQ(Hl8?); 0+qqqV{bZsCԙVeyEsn¸511ʳ<2X&3DXy|6.MAfxp LTW:96v|Ѝtj .1솆7nWWi \A0[- /a+pwM# r8e,/4l:N `0NFwǯN{npk}᩾'y7Bkz{~{st^-vxwdoP=9|{pRHk&0A\$[}nExEB *~)pVJuUTӫtg'@E3.ixf?m|4{|$ V_F 8p3㤨(v_+>W-\AuV9x>D H~F%k'8Rޣ@iFT""' K,#TQqgb['OF_$໊]su}Ft Mdtu$lYSR`?&E\`lk'Z$<~T?8?=<8>(K=*y*TS>_pUi|V.6$XgqLoBg%f32rg|sTCpw][6Y5^,TmWrIf ,.:[}G1"B%U83Ikdvٵk(t`mQewfƉطq6[ ,0e4k-3-32!_Ј=rN^,-y_;'|@+m5oz\.wQ=u=]z{$a >V$SSu"JcvNb ])E26)ѿK#utDcj4q׵\?dNe!)|-?0 La/%n"81uQ8`؟R%҇/#$CL}PuKWqjAw{+xx}L"Ks#9-jl7.IMP~AF,$gDCtl?g"acC[%N8gଳX3^^mFGL۔ƒhH!q i-S!+ӚΓ$XGbN g08CksݤfY0)ǹ$07\ "(\#"J[|iٝQgwe%&.6F:%WlӖ3T5jnS,ǣ8TdஹGJW$Ě Jǐ =皺_$4bPMFf M< ?wu(9b:x;!2$wAsg12dvj%y7)78RA Ĝ,ѵ6 #1\ZkZ~,4tBQg{{#5g};)f2Powߜ+%$IsRڬn $g8:XO5P'_,"Ш0< b)6r I~v8 'vUŕ8ɴX!NaRx-cUC\.ƜjݳI׺X6Z-8YP(RM0/|‚ U"d9y+-A Dd[C {:Ϋ)P "&;N&ކUsu&|;E+ؒ#[ kuL :,'"XRŲ*ǡlD$Pi\9z$"RSoמ 0l2V09u/&J9h۷<%o]!jVۮ`'u?mLZYS֮yQfM/r]ww=PgqAٕCd߮k?ҵzɑ!hv^Sy6&m\u.z"1 ϱ'/XN ~^moOW|u+asx]䶔@K@Jr`F0\Ô<:33U1zP,%st@ns (˛#:rĻKH8gEvQ-"]~{1ǿ vo͋kqB({T'm{iLoe˲U"V!b}]7º, $E?T+?sX2}j]XK:3WVYU ꌜG%f!b&l'E mM!*ƐR]GZmT:b/Vvbĉ! cba"Nd1y5K8\ԼbQ(IG#.%a8Z;QfCSJfϕz8ɬ-'2WVT@w} D硹plFrzmr< ֓I3p cإ~4TDw2>9&İ{~^ylFݺǦC#F#!t?e<3|14oS)Zߗtm XB冕l,~~Jx8Dž'G+KkS{5f+G!A2ߢj*r}w"!sT{i?,?;>ջlqW G@6+ڝ{-,cwr$f6\%]'|#By-;|6zCMo~ܠbd$rw"`zՓrK<$K-\Y+)|U`]HXۻ߶$+hZ iפE\R4>6HhIDHT#~;ϝ].%`ryfU1P65t[/'̇n"5zDv_x8쑺]>8qt^l. X/gy$wr>utnp:qncЌ /a' |L]rDn0D,9C G7TU1 ,uFdĀ1Oo ab0(PzI.!ie1NKt(6b9[NٿbiQ[@0T U6 @P:1$THeqyxfa؝zVbڨ[tX$\; _]h."זRM6*,$Hx:t;ޯ v@Q[菚үyϽaֹ`s= T]aHM&0Պ0Y8B_Tfxa񏁖Q.Y@#r-g`(Xb $_%KOE,1ɗ@>N I^>xw?ׇ8~ eid$^Tfw<^Ȼ|C=~1s4%L z$߭dXfup%t$<[$s<]Z8ڪ(Uq(Kgo"*@]{ܘՈX_D e6z :'*EYC1G5dʉX>VeZy<\H-b_& 'Q/ H=1^En͐{eWŐ-JӒUh_3q'~,](~<+m6=[ǣw# 2RdZB b@ҍ\,"nտwhzvVpE>bVv+*:$ }=<\ӊ(x brz(6 !Ah$mcmb c6fX}e q^ٜ"*OA6=VYݑC;$E ҕ8[<# ! %%`Č1;=:0"xڵSN '`Fyُ4C\ViNrsak&&0´;G"G'˜ǒ0l 6esOɡ*! m#)SA9¥X ,=bDDA>!;Bw[OfkŜZEhq4KS&ϡMuHq)au{0<@FʀTr#v<DGi"ua y5QϸUc>G'>&:uke&w ]tWL4t+J-}0lQKޅp5"FNe%.9O %2[ ]ӪďtŅt>&H9T5QlpV1ynu^O[m Cu)_]$)1 u'r]]6K9 C@!'zTʋ甂ocZ4'jP\IlRQH*]7[KE9^+l A@.289(OJ@6"Sp u3k "/j0 q~R wtv>]槞¿C" +L7i7 >Ey t6H؅µPHlp^aj Hօ9peE&. 8sD&g xXr>ڥ~UWD 3)%N64)l 8 %qYzK&(g3#1Tд95U*zuQYU,iƠ ;_S, Pʩ3K |V"U18ç,x<2'r:vwk8ȎC(G-`d ƶp}SXTE+&M>l)0,ɝhil#zudݨa[B#Ue*opWqEx^'眒nB1O`SlJE3bxxcnHaX Rk}QJ{prO<fR]l~J+]4\@3vXDr,( jSY>nĽqĻvJJr9D ~.0J_N$|[ĥDuƉ-^؞ri1xn 4R .3{=쟆k^Ⱥ\ W3u3,8cd KYOpbLhv9Uq:}4Gi*_[(@?y2l#dOݨȬXEYOFC95lU: V8e@!Tvb-YIȲֺaJ^d]c. _<Ί@B{w0^ 4򩹫*Yo?~6) g-7sJm c?+D"Y@8`3q?n[up 2#mdn#: WIg& 餜p{v~Gm7[2XK[(Jxx@ӱtTL~L# $,1NlӠocy p; 5۹O@b}On;a`׌'iCT~󽰸Հ~2Rx @I0>`C\1Y[e^d5A2=:Z[m dVۮʫIaTM=o`)ըoՇn{L1bWoadGjKr7ݣ:csԝF5uKERCz6Tu%qƙanćl3=+/3e4QjjfqpyÐy$oCF0*Lmi2J}Q*qQGMg\!3b(1 hZ[ *B#Q-}W2?gdz `'p6lh !H m<1 s$ɫFv"6gkliYf*"5d !$NIB5jd$/=|W{,QH+r S/6i600 G!%~nzj0wjCb HMcQG;,XCI>gC;ll zdFDJ?H;ngf=d;$ ^$_~gX&HlS)%!^.2[r+7&Xd778װ(uN$]Î0۰f硅$m$Yˍ߮B&Íov͍Z|8 ,6Yhe6ld5nhhH ^U4v5$3ʾ8_Z#xQ="qK2)9b?Q!=F`گ ˤ}f᫓#Cx$ znV/gVL3I/NZTnXm,<`qnR{Z^D^9sH>c\ɓ'r31܇4ǟ5E_}E1!c< c")*N&bg'x<3hiDRCI 5M7\1ɾ"#rCL_KC ޯE8~|Rnr lI]Ɛa^@~w{}~Rӂ9lK81V7Vg YĂA1VpFU o0#S (ͨii]a<'衷d3[JsL]ξV~|,Ħ!tQoc OŖ#upQ*o#/k)Sm݀/,V'Wߟ_OѲzm>7݇߻w{Мw\""2ȝ4|`ey%%gmNyI.p:WwZ-< I\A>e S10nz Xi I{<|jxw{ѡwX1] Ȼ崗Z_N]-ipv6calc-4.1.0/samplecode/ip6_int000077500000000000000000000066271444154247200166570ustar00rootroot00000000000000#!/usr/bin/perl -w # # Convert valid IPv6 address to ip6.int PTR value. Convert valid # IPv4 address to in-addr.arpa PTR value. Anything not valid is # simply printed as is. Handles :: notation and embedded IPv4 # addresses. If the address is followed by /n, the PTR is # truncated to n bits. # # Examples: # nslookup -type=any `ip6_int 3ffe::203.34.97.6` looks up # 6.0.1.6.2.2.b.c.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.f.f.3.ip6.int # nslookup -type=any `ip6_int fe80::b432:e6ff/10` looks up # 2.e.f.ip6.int # nslookup -type=any `ip6_int ::127.0.0.1` looks up # 1.0.0.0.0.0.f.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.int # nslookup -type=any `ip6_int 127.0.0.1` looks up # 1.0.0.127.in-addr.arpa # nslookup -type=any `ip6_int 127.0.0.1/8` looks up # 127.in-addr.arpa # # Copyright 1997 Keith Owens . GPL. # require 5; use strict; use integer; my $v6; if ($#ARGV >= 0 && ($v6 = ($ARGV[0] =~ m;^([0-9a-fA-f:]+)(?::(\d+\.\d+\.\d+\.\d+))?(?:/(\d+))?$;)) || $ARGV[0] =~ m;^(\d+\.\d+\.\d+\.\d+)(?:/(\d+))?$;) { my $valid = 1; if ($v6) { my (@chunk) = split(/:/, $1, 99); my $mask = $3; if ($2) { my (@v4) = split(/\./, $2); $valid = ($v4[0] <= 255 && $v4[1] <= 255 && $v4[2] <= 255 && $v4[3] <= 255); if ($valid) { push(@chunk, sprintf("%x%02x", $v4[0], $v4[1])); push(@chunk, sprintf("%x%02x", $v4[2], $v4[3])); } } my $pattern = ""; if ($valid) { foreach (@chunk) { $pattern .= /^$/ ? 'b' : 'c'; } if ($pattern =~ /^bbc+$/) { @chunk = (0, 0, @chunk[2..$#chunk]); @chunk = (0, @chunk) while ($#chunk < 7); } elsif ($pattern =~ /^c+bb$/) { @chunk = (@chunk[0..$#chunk-2], 0, 0); push(@chunk, 0) while ($#chunk < 7); } elsif ($pattern =~ /^c+bc+$/) { my @left; push(@left, shift(@chunk)) while ($chunk[0] ne ""); shift(@chunk); push(@left, 0); push(@left, 0) while (($#left + $#chunk) < 6); @chunk = (@left, @chunk); } $valid = $#chunk == 7; } my $ip6int = "ip6.int"; my $i; if ($valid) { foreach (@chunk) { $i = hex($_); if ($i > 65535) { $valid = 0; } else { $ip6int = sprintf("%x.%x.%x.%x.", ($i) & 0xf, ($i >> 4) & 0xf, ($i >> 8) & 0xf, ($i >> 12) & 0xf) . $ip6int; } } } if ($valid && defined($mask)) { $valid = ($mask =~ /^\d+$/ && $mask <= 128); if ($valid) { $ip6int = substr($ip6int, int((128-$mask)/4)*2); if ($mask &= 3) { $i = hex(substr($ip6int, 0, 1)); $i >>= (4-$mask); substr($ip6int, 0, 1) = sprintf("%x", $i); } } } $ARGV[0] = $ip6int if ($valid); } else { # v4 my (@v4) = split(/\./, $1); my $mask = $2; $valid = ($v4[0] <= 255 && $v4[1] <= 255 && $v4[2] <= 255 && $v4[3] <= 255); my $v4 = hex(sprintf("%02X%02X%02X%02X", @v4)); if ($valid && defined($mask)) { $valid = ($mask =~ /^\d+$/ && $mask <= 32); if ($valid) { $v4 = $v4 & ((~0) << (32-$mask)); $v4[0] = ($v4 >> 24) & 255; $v4[1] = ($v4 >> 16) & 255; $v4[2] = ($v4 >> 8) & 255; $v4[3] = $v4 & 255; } } else { $mask = 32; } if ($valid) { my $i = 4 - int(($mask+7) / 8); pop(@v4) while ($i--); $ARGV[0] = join('.', reverse(@v4)); $ARGV[0] .= '.' if ($ARGV[0] ne ""); $ARGV[0] .= 'in-addr.arpa'; } } } print "@ARGV\n"; ipv6calc-4.1.0/samplecode/ipv6.h000066400000000000000000000211741444154247200164100ustar00rootroot00000000000000/* $USAGI: ipv6.h,v 1.4 2001/01/11 13:25:42 kunitake Exp $ */ /* * Linux INET6 implementation * * Authors: * Pedro Roque * * $**: ipv6.h,v 1.16 1999/04/22 10:07:27 davem Exp $ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ #ifndef _NET_IPV6_H #define _NET_IPV6_H #include #include #include #include #define SIN6_LEN_RFC2133 24 /* * NextHeader field of IPv6 header */ #define NEXTHDR_HOP 0 /* Hop-by-hop option header. */ #define NEXTHDR_TCP 6 /* TCP segment. */ #define NEXTHDR_UDP 17 /* UDP message. */ #define NEXTHDR_IPV6 41 /* IPv6 in IPv6 */ #define NEXTHDR_ROUTING 43 /* Routing header. */ #define NEXTHDR_FRAGMENT 44 /* Fragmentation/reassembly header. */ #define NEXTHDR_ESP 50 /* Encapsulating security payload. */ #define NEXTHDR_AUTH 51 /* Authentication header. */ #define NEXTHDR_ICMP 58 /* ICMP for IPv6. */ #define NEXTHDR_NONE 59 /* No next header */ #define NEXTHDR_DEST 60 /* Destination options header. */ #define NEXTHDR_MAX 255 #define IPV6_DEFAULT_HOPLIMIT 64 #define IPV6_DEFAULT_MCASTHOPS 1 /* * Addr type * * type - unicast | multicast | anycast * scope - local | site | global * v4 - compat * v4mapped * any * loopback */ #define IPV6_ADDR_ANY 0x0000U #define IPV6_ADDR_UNICAST 0x0001U #define IPV6_ADDR_MULTICAST 0x0002U #define IPV6_ADDR_ANYCAST 0x0004U #define IPV6_ADDR_LOOPBACK 0x0010U #define IPV6_ADDR_LINKLOCAL 0x0020U #define IPV6_ADDR_SITELOCAL 0x0040U #define IPV6_ADDR_COMPATv4 0x0080U #define IPV6_ADDR_SCOPE_MASK 0x00f0U #define IPV6_ADDR_MAPPED 0x1000U #define IPV6_ADDR_RESERVED 0x2000U /* reserved address space */ /* * fragmentation header */ struct frag_hdr { unsigned char nexthdr; unsigned char reserved; unsigned short frag_off; __u32 identification; }; #ifdef __KERNEL__ #include extern struct ipv6_mib ipv6_statistics; #define IP6_INC_STATS(idev,field) ({if (idev) \ idev->stats.ipv6.field++; \ ipv6_statistics.field++;}) #define IP6_INC_STATS_BH(idev,field) IP6_INC_STATS(idev,field) #define IP6_INC_STATS_USER(idev,field) IP6_INC_STATS(idev,field) extern struct icmpv6_mib icmpv6_statistics; #define ICMP6_INC_STATS(idev,field) ({if (idev) \ idev->stats.icmpv6.field++; \ icmpv6_statistics.field++;}) #define ICMP6_INC_STATS_BH(idev,field) ICMP6_INC_STATS(idev,field) #define ICMP6_INC_STATS_USER(idev,field) ICMP6_INC_STATS(idev,field) extern struct udp_mib udp_stats_in6; #define UDP6_INC_STATS(field) (udp_stats_in6.field++) #define UDP6_INC_STATS_BH(field) (udp_stats_in6.field++) #define UDP6_INC_STATS_USER(field) (udp_stats_in6.field++) struct ip6_ra_chain { struct ip6_ra_chain *next; struct sock *sk; int sel; void (*destructor)(struct sock *); }; extern struct ip6_ra_chain *ip6_ra_chain; /* This structure is prepared by protocol, when parsing ancillary data and passed to IPv6. */ struct ipv6_txoptions { /* Length of this structure */ int tot_len; /* length of extension headers */ __u16 opt_flen; /* after fragment hdr */ __u16 opt_nflen; /* before fragment hdr */ struct ipv6_opt_hdr *hopopt; struct ipv6_opt_hdr *dst0opt; struct ipv6_rt_hdr *srcrt; /* Routing Header */ struct ipv6_opt_hdr *auth; struct ipv6_opt_hdr *dst1opt; /* Option buffer, as read by IPV6_PKTOPTIONS, starts here. */ }; struct ip6_flowlabel { struct ip6_flowlabel *next; u32 label; struct in6_addr dst; struct ipv6_txoptions *opt; atomic_t users; u32 linger; u8 share; u32 owner; unsigned long lastuse; unsigned long expires; }; #define IPV6_FLOWINFO_MASK __constant_htonl(0x0FFFFFFF) #define IPV6_FLOWLABEL_MASK __constant_htonl(0x000FFFFF) struct ipv6_fl_socklist { struct ipv6_fl_socklist *next; struct ip6_flowlabel *fl; }; extern struct ip6_flowlabel *fl6_sock_lookup(struct sock *sk, u32 label); extern struct ipv6_txoptions *fl6_merge_options(struct ipv6_txoptions * opt_space, struct ip6_flowlabel * fl, struct ipv6_txoptions * fopt); extern void fl6_free_socklist(struct sock *sk); extern int ipv6_flowlabel_opt(struct sock *sk, char *optval, int optlen); extern void ip6_flowlabel_init(void); extern void ip6_flowlabel_cleanup(void); extern __inline__ void fl6_sock_release(struct ip6_flowlabel *fl) { if (fl) atomic_dec(&fl->users); } extern int ip6_ra_control(struct sock *sk, int sel, void (*destructor)(struct sock *)); extern int ip6_call_ra_chain(struct sk_buff *skb, int sel); extern u8 * ipv6_reassembly(struct sk_buff **skb, u8 *nhptr); extern u8 * ipv6_parse_hopopts(struct sk_buff *skb, u8 *nhptr); extern u8 * ipv6_parse_exthdrs(struct sk_buff **skb, u8 *nhptr); extern struct ipv6_txoptions * ipv6_dup_options(struct sock *sk, struct ipv6_txoptions *opt); #define IPV6_FRAG_TIMEOUT (60*HZ) /* 60 seconds */ /* * Function prototype for build_xmit */ typedef int (*inet_getfrag_t) (const void *data, struct in6_addr *addr, char *, unsigned int, unsigned int); extern int ipv6_addr_type(struct in6_addr *addr); extern __inline__ int ipv6_addr_scope(struct in6_addr *addr) { return ipv6_addr_type(addr) & IPV6_ADDR_SCOPE_MASK; } extern __inline__ int ipv6_addr_cmp(struct in6_addr *a1, struct in6_addr *a2) { return memcmp((void *) a1, (void *) a2, sizeof(struct in6_addr)); } extern __inline__ void ipv6_addr_copy(struct in6_addr *a1, struct in6_addr *a2) { memcpy((void *) a1, (void *) a2, sizeof(struct in6_addr)); } #ifndef __HAVE_ARCH_ADDR_SET extern __inline__ void ipv6_addr_set(struct in6_addr *addr, __u32 w1, __u32 w2, __u32 w3, __u32 w4) { addr->s6_addr32[0] = w1; addr->s6_addr32[1] = w2; addr->s6_addr32[2] = w3; addr->s6_addr32[3] = w4; } #endif extern __inline__ int ipv6_addr_any(struct in6_addr *a) { return ((a->s6_addr32[0] | a->s6_addr32[1] | a->s6_addr32[2] | a->s6_addr32[3] ) == 0); } /* * Prototypes exported by ipv6 */ /* * rcv function (called from netdevice level) */ extern int ipv6_rcv(struct sk_buff *skb, struct device *dev, struct packet_type *pt); /* * upper-layer output functions */ extern int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl, struct ipv6_txoptions *opt); extern int ip6_nd_hdr(struct sock *sk, struct sk_buff *skb, struct device *dev, struct in6_addr *saddr, struct in6_addr *daddr, int proto, int len); extern int ip6_build_xmit(struct sock *sk, inet_getfrag_t getfrag, const void *data, struct flowi *fl, unsigned length, struct ipv6_txoptions *opt, int hlimit, int flags); /* * skb processing functions */ extern int ip6_output(struct sk_buff *skb); extern int ip6_forward(struct sk_buff *skb); extern int ip6_input(struct sk_buff *skb); extern int ip6_mc_input(struct sk_buff *skb); /* * Extension header (options) processing */ extern u8 * ipv6_build_nfrag_opts(struct sk_buff *skb, u8 *prev_hdr, struct ipv6_txoptions *opt, struct in6_addr *daddr, u32 jumbolen); extern u8 * ipv6_build_frag_opts(struct sk_buff *skb, u8 *prev_hdr, struct ipv6_txoptions *opt); extern void ipv6_push_nfrag_opts(struct sk_buff *skb, struct ipv6_txoptions *opt, u8 *proto, struct in6_addr **daddr_p); extern void ipv6_push_frag_opts(struct sk_buff *skb, struct ipv6_txoptions *opt, u8 *proto); extern u8 * ipv6_skip_exthdr(struct ipv6_opt_hdr *hdr, u8 *nexthdrp, int len); extern struct ipv6_txoptions * ipv6_invert_rthdr(struct sock *sk, struct ipv6_rt_hdr *hdr); /* * socket options (ipv6_sockglue.c) */ extern int ipv6_setsockopt(struct sock *sk, int level, int optname, char *optval, int optlen); extern int ipv6_getsockopt(struct sock *sk, int level, int optname, char *optval, int *optlen); extern void ipv6_packet_init(void); extern void ipv6_netdev_notif_init(void); extern void ipv6_packet_cleanup(void); extern void ipv6_netdev_notif_cleanup(void); extern int ipv6_recv_error(struct sock *sk, struct msghdr *msg, int len); extern void ipv6_icmp_error(struct sock *sk, struct sk_buff *skb, int err, u16 port, u32 info, u8 *payload); extern void ipv6_local_error(struct sock *sk, int err, struct flowi *fl, u32 info); #endif /* __KERNEL__ */ #endif /* _NET_IPV6_H */ ipv6calc-4.1.0/tools/000077500000000000000000000000001444154247200143725ustar00rootroot00000000000000ipv6calc-4.1.0/tools/DBIP-update.sh.in000077500000000000000000000146011444154247200173360ustar00rootroot00000000000000#!/bin/bash # # Simple shell script to update db-ip.com database files # # Project : ipv6calc/DBIP # File : DBIP-update.sh # Version : $Id: 6376bdd3db3def008cb0b86390d1658990665f88 $ # Copyright : 2014-2021 by Peter Bieringer # License : GNU GPL version 2 DBIP_DAT_DIR_DEFAULT="@DBIP2_DB@" [ -z "$DBIP_DAT_DIR" -a -n "$IPV6CALC_DB_DBIP2_DIR" ] && DBIP_DAT_DIR="$IPV6CALC_DB_DBIP2_DIR" [ -z "$DBIP_DAT_DIR" ] && DBIP_DAT_DIR="$DBIP_DAT_DIR_DEFAULT" DBIP_DAT_URL_BASE="http://download.db-ip.com/free/" DBIP_DAT_FILES="dbip-country-lite-%Y-%m.mmdb.gz dbip-city-lite-%Y-%m.mmdb.gz" help() { cat <] [-C ] [-U ] [-T ] -s skip download -c skip decompress -v verbose -D database directory (optional) -C cleanup files older than given days (optional) -U use URL to download full database -T set type of via URL downloaded file MMDB: country|isp|location|*location-isp* CSV : isp|location|*full* database directory: $DBIP_DAT_DIR (default: $DBIP_DAT_DIR_DEFAULT) it honors externally defined environment value: prio 1: DBIP_DAT_DIR prio 2: IPV6CALC_DB_DBIP2_DIR this script will download data from DB-IP.com (default: free versions) the MaxMindDB (mmdb) files DB files for ipv6calc "DBIP" database support DBIP_DAT_URL_BASE=$DBIP_DAT_URL_BASE DBIP_DAT_FILES=$DBIP_DAT_FILES in case -U (take URL from subscription e-mail) is provided, it downloads the database use -T in case it's not "location-isp" END } skip_download=false skip_decompress=false verbose=false while getopts "vT:D:C:U:sch\?" opt; do case $opt in v) verbose=true ;; s) skip_download=true ;; c) skip_decompress=true ;; C) DBIP_DAT_CLEANUP_DAYS="$OPTARG" ;; D) DBIP_DAT_DIR="$OPTARG" ;; U) DBIP_URL="$OPTARG" ;; T) DBIP_TYPE="$OPTARG" ;; *) help exit 1 ;; esac done if [ -n "$DBIP_URL" ]; then case $DBIP_URL in *.csv) urldbtype=${DBIP_TYPE:-full} DBIP_DAT_FILES="dbip-$urldbtype-%Y-%m.csv.gz" ;; *.mmdb) urldbtype=${DBIP_TYPE:-location-isp} DBIP_DAT_FILES="dbip-$urldbtype-%Y-%m.mmdb.gz" ;; *) echo "ERROR : given URL has unsupported filename suffix" exit 1 ;; esac fi if [ ! -t 0 ] || $verbose; then options_generate="-q" options_wget="-q" fi if [ ! -d "$DBIP_DAT_DIR" ]; then echo "ERROR : missing directory: $DBIP_DAT_DIR" exit 1 fi if [ ! -w "$DBIP_DAT_DIR" ]; then echo "ERROR : missing write permissions on directory: $DBIP_DAT_DIR" exit 1 fi # Download files download_result=true if ! $skip_download; then for file in $DBIP_DAT_FILES; do # convert tokens year=$(date +%Y) month=$(date +%m) file=${file//%Y/$year} file=${file//%m/$month} file_dest="$DBIP_DAT_DIR/`basename "$file"`" if [ -z "$DBIP_URL" ]; then echo "INFO : try to download file: $file ($file_dest)" wget $options_wget -O "$file_dest" "$DBIP_DAT_URL_BASE$file" if [ $? -ne 0 ]; then echo "ERROR : download of file not successful: $file ($file_dest)" download_result=false continue fi else echo "INFO : try to download file: $DBIP_URL ($file_dest)" wget $options_wget -O "$file_dest" "$DBIP_URL" if [ $? -ne 0 ]; then echo "ERROR : download of file not successful: $DBIP_URL ($file_dest)" download_result=false continue fi fi echo "INFO : download of file successful: $DBIP_URL ($file_dest)" done fi # create db/decompress mmdb files from downloaded files $skip_decompress && download_result=false error=0 if $download_result; then for file in $DBIP_DAT_FILES; do # convert tokens year=$(date +%Y) month=$(date +%m) file_input=${file//%Y/$year} file_input=${file_input//%m/$month} file_input="$DBIP_DAT_DIR/`basename "$file_input"`" case $file in *.mmdb.gz) if [ -e "$file_input" ]; then echo "INFO : decompress: $file_input)" gunzip "$file_input" if [ $? -ne 0 ] ;then echo "ERROR : decompress failed: $file_input" error=1 continue fi fi file_input=${file_input/.gz} if [ ! -e "$file_input" ]; then echo "ERROR : decompressed file missing: $file_input)" error=1 continue fi file_softlink="${file/-%Y}" file_softlink="${file_softlink/-%m}" file_softlink="${file_softlink/.gz}" file_softlink="$DBIP_DAT_DIR/`basename "${file_softlink}"`" echo "NOTICE: mmdb file requires only softlink: $file_softlink -> `basename "$file_input"`" if [ -e "$file_softlink" ]; then if [ ! -L "$file_softlink" ]; then echo "ERROR : file exists but is not a softlink: $file_softlink" continue fi echo "NOTICE: remove existing softlink: $file_softlink" rm -f "$file_softlink" fi ln -sf "`basename "$file_input"`" "$file_softlink" ;; *) echo "WARN : unsupported file: $file (SKIP)" ;; esac done fi if [ -n "$DBIP_DAT_CLEANUP_DAYS" ]; then # lookup softlinks declare -A DBIP_DAT_SOFTLINKS declare -A DBIP_DAT_SOFTLINKS_DEST DBIP_DAT_SOFTLINKS=$(find $DBIP_DAT_DIR -type l -name 'dbip-*.mmdb' -o -name 'dbip-*.csv') for key in ${DBIP_DAT_SOFTLINKS[@]}; do $verbose && echo "DEBUG : check softlink : $key" dest=$(readlink "$key") if [ -n "$dest" ]; then $verbose && echo "DEBUG : softlink resolved: $key -> $dest" DBIP_DAT_SOFTLINKS_DEST[$dest]=$key else $verbose && echo "DEBUG : softlink broken : $key" fi done # lookup files and check whether they are target of a softlink declare -A DBIP_DAT_FILES DBIP_DAT_FILES=$(find $DBIP_DAT_DIR -type f -mtime +$DBIP_DAT_CLEANUP_DAYS -name 'dbip-*-????-??.mmdb' -o -name 'dbip-*-????-??.csv') for file in ${DBIP_DAT_FILES[@]}; do basefile=$(basename "$file") $verbose && echo "DEBUG : check file : $file ($basefile)" if [ -n "${DBIP_DAT_SOFTLINKS_DEST[$file]}" ];then $verbose && echo "DEBUG : target of softlink1: $file <- ${DBIP_DAT_SOFTLINKS_DEST[$file]}" DBIP_DAT_FILES[$file]=2 elif [ -n "${DBIP_DAT_SOFTLINKS_DEST[$basefile]}" ];then $verbose && echo "DEBUG : target of softlink2: $file <- ${DBIP_DAT_SOFTLINKS_DEST[$basefile]}" DBIP_DAT_FILES[$file]=3 else $verbose && echo "DEBUG : no softlink target : $file" DBIP_DAT_FILES[$file]=1 fi done # delete unused files for file in ${DBIP_DAT_FILES[@]}; do if [ "${DBIP_DAT_FILES[$file]}" = "1" ]; then echo "INFO : delete unused file : $file" rm -f "$file" fi done fi exit $error ipv6calc-4.1.0/tools/GeoIP-update.sh.in000077500000000000000000000044601444154247200175650ustar00rootroot00000000000000#!/bin/bash # # Simple shell script to update GeoIP database files # # Project : ipv6calc/GeoIP # File : GeoIP-update.sh # Version : $Id: 3a140243e56962310c377ade0a91273e308ab836 $ # Copyright : 2012-2021 by Peter Bieringer # License : GNU GPL version 2 GEOIP_DAT_DIR_DEFAULT="@GEOIP2_DB@" [ -z "$GEOIP_DAT_DIR" -a -n "$IPV6CALC_DB_GEOIP2_DIR" ] && GEOIP_DAT_DIR="$IPV6CALC_DB_GEOIP2_DIR" [ -z "$GEOIP_DAT_DIR" ] && GEOIP_DAT_DIR="$GEOIP_DAT_DIR_DEFAULT" help() { cat <] [-v] [-L] [-G] -D database directory (optional) -v verbose database directory: $GEOIP_DAT_DIR (default: $GEOIP_DAT_DIR_DEFAULT) it honors externally defined environment value: prio 1: GEOIP_DAT_DIR prio 2: IPV6CALC_DB_GEOIP2_DIR adjust /etc/GeoIP.conf in advance: EditionIDs GeoLite2-Country GeoLite2-City GeoLite2-ASN (in case a valid license key exists, add key and extend EditionIDs related) see also https://dev.maxmind.com/geoip/geoipupdate/ END } verbose= while getopts "sGLD:vh\?" opt; do case $opt in s) # for backward compatibility ;; D) GEOIP_DAT_DIR=$OPTARG ;; v) verbose=-v ;; L) echo "ERROR : legacy mode is no longer supported" exit 1 ;; G) echo "NOTICE: 'geoipupdate' is default since legacy is no longer supported (dedicated option '-G' can be removed now)" ;; *) help exit 1 ;; esac done geoipupdate=true # now default, legacy is no longer working if [ ! -d "$GEOIP_DAT_DIR" ]; then echo "ERROR : missing directory: $GEOIP_DAT_DIR" exit 1 fi if [ ! -w "$GEOIP_DAT_DIR" ]; then echo "ERROR : missing write permissions on directory: $GEOIP_DAT_DIR" exit 1 fi if [ ! -t 0 ]; then options_wget="-q" fi if ! $geoipupdate; then echo "ERROR : legacy mode is no longer supported (and this part of code should not be reached anymore...)" exit 1 else geoipupdate_bin=$(which geoipupdate) if [ -z "$geoipupdate_bin" ]; then echo "ERROR : missing binary 'geoipupdate' not found, can't continue" exit 1 fi [ -n "$verbose" ] && echo "INFO : call now: geoipupdate -v -d $GEOIP_DAT_DIR" geoipupdate $verbose -d $GEOIP_DAT_DIR if [ $? -ne 0 ]; then echo "ERROR : 'geoipupdate' stopped with error" exit 1 fi echo "INFO : 'geoipupdate' was successful" fi # end of using geoipupdate ipv6calc-4.1.0/tools/IP2Location-update.sh.in000077500000000000000000000226431444154247200207100ustar00rootroot00000000000000#!/bin/bash # # Simple shell script to update IP2Location database files # # For updating non-sample files, credentials are or token is required: # provided by file $HOME/.ip2location # credential-based authentication: # login=EMAIL # password=PASSWORD # token-based authentication: # token=TOKEN # # Project : ipv6calc/IP2Location # File : IP2Location-update.sh # Version : $Id: 741b40ba04c0d4d5a32b0fe54da891b528e9434e $ # Copyright : 2012-2023 by Peter Bieringer # License : GNU GPL version 2 # 20150416: remove softlink support, no longer needed # 20210528: add support for 'token' IP2LOCATION_CONFIG=${IP2LOCATION_CONFIG:-"$HOME/.ip2location"} IP2LOCATION_DAT_DIR_DEFAULT="@IP2LOCATION_DB@" [ -z "$IP2LOCATION_DAT_DIR" -a -n "$IPV6CALC_DB_IP2LOCATION_DIR" ] && IP2LOCATION_DAT_DIR="$IPV6CALC_DB_IP2LOCATION_DIR" [ -z "$IP2LOCATION_DAT_DIR" ] && IP2LOCATION_DAT_DIR="$IP2LOCATION_DAT_DIR_DEFAULT" IP2LOCATION_DAT_URL_BASE="https://www.ip2location.com/download?login=@LOGIN@&password=@PASSWORD@&token=@TOKEN@" IP2LOCATION_DAT_URL_BASE_SAMPLE="https://www.ip2location.com/downloads" IP2LOCATION_DAT_URL_BASE_LITE_FREE="https://download.ip2location.com/lite" # Format: Proto:DB-Number # free downloads IP2LOCATION_DAT_FILES_LITE_FREE=${IP2LOCATION_DAT_FILES_LITE_FREE:-"IPv4:1 IPv6:1"} # (free) subscription is required for LITE DB-Number > 1 IP2LOCATION_DAT_FILES_LITE=${IP2LOCATION_DAT_FILES_LITE:-"IPv4:11 IPv6:11"} # list of normal (purchased subscription required) IP2LOCATION_DAT_FILES="${IP2LOCATION_DAT_FILES}" # list of recommended SAMPLE IP2LOCATION_DAT_FILES_SAMPLE=${IP2LOCATION_DAT_FILES_SAMPLE:-"IPv4:20 IPv6:20 IPv4:24 IPv6:24"} help() { cat <] [-n] [-s] [-t] [-v] -D database destination directory (optional) -n no action (dry-run) -s skip already successfully downloaded files -t enforce use of 'token' instead of using 'login' & 'password' -v verbose -S download only sample file given by selector IPv4: or IPv6: database directory: $IP2LOCATION_DAT_DIR (default: $IP2LOCATION_DAT_DIR_DEFAULT) it honors externally defined environment value: prio 1: IP2LOCATION_DAT_DIR prio 2: IPV6CALC_DB_IP2LOCATION_DIR this script will download data from ip2location.com into given/set database directory Sample databases: IP2LOCATION_DAT_FILES_SAMPLE="$IP2LOCATION_DAT_FILES_SAMPLE" Lite (free) databases: IP2LOCATION_DAT_FILES_LITE_FREE="$IP2LOCATION_DAT_FILES_LITE_FREE" With authentication (requires login/password or token in $IP2LOCATION_CONFIG) and a valid subscription IP2LOCATION_DAT_FILES_LITE="$IP2LOCATION_DAT_FILES_LITE" IP2LOCATION_DAT_FILES="$IP2LOCATION_DAT_FILES" Credentials or token must be defined in \$HOME/.ip2location by login=IP2LOCATION-LOGIN ${login:+found: ${login:0:2}...} password=IP2LOCATION-PASSWORD ${password:+found: ${password:0:2}...} token=IP2LOCATION-TOKEN ${token:+found: ${token:0:2}...} In addition settings from above can be overwritten by setting related variables END } # source credentials (must provide login= and password= or token=) authenticated=false has_token=false has_credentials=false verbose=false if [ -f "$IP2LOCATION_CONFIG" ]; then source "$IP2LOCATION_CONFIG" || exit 1 if [ -n "${token}" ]; then has_token=true authenticated=true echo "INFO : found token in: $IP2LOCATION_CONFIG (for authenticated downloads)" fi if [ -n "${login}" -a -n "${password}" ]; then has_credentials=true authenticated=true echo "INFO : found credentials in: $IP2LOCATION_CONFIG (for authenticated downloads)" fi if ! $authenticated; then echo "NOTICE: missing credentials/token in: $IP2LOCATION_CONFIG (skip authenticated downloads)" fi fi # option parsing while getopts "vfsntS:D:h\?" opt; do case $opt in D) IP2LOCATION_DAT_DIR=$OPTARG ;; n) NO_ACTION=1 ;; s) SKIP_OK=1 ;; S) # clear defaults IP2LOCATION_DAT_FILES_LITE="" IP2LOCATION_DAT_FILES="" IP2LOCATION_DAT_FILES_LITE_FREE="" # use option IP2LOCATION_DAT_FILES_SAMPLE="$OPTARG" ;; t) has_credentials=false ;; v) verbose=true ;; *) help exit 1 ;; esac done # directory check if [ ! -d "$IP2LOCATION_DAT_DIR" ]; then echo "ERROR : missing directory: $IP2LOCATION_DAT_DIR (check option -D or set IP2LOCATION_DAT_DIR)" exit 1 fi if [ ! -w "$IP2LOCATION_DAT_DIR" ]; then echo "ERROR : missing write permissions on directory: $IP2LOCATION_DAT_DIR" exit 1 fi # required binary check if ! which unzip >/dev/null 2>&1; then echo "ERROR : missing binary: unzip" exit 1 fi if ! $authenticated; then echo "NOTICE: IP2Location credentials/token not found, clear IP2LOCATION_DAT_FILES" IP2LOCATION_DAT_FILES="" echo "NOTICE: IP2Location credentials/token not found, clear IP2LOCATION_DAT_FILES_LITE" IP2LOCATION_DAT_FILES_LITE="" fi if $has_credentials; then # replace placeholders IP2LOCATION_DAT_URL_BASE=${IP2LOCATION_DAT_URL_BASE//@LOGIN@/$login} IP2LOCATION_DAT_URL_BASE=${IP2LOCATION_DAT_URL_BASE//@PASSWORD@/$password} # clear token parameter IP2LOCATION_DAT_URL_BASE=${IP2LOCATION_DAT_URL_BASE//@TOKEN@/} fi if $has_token; then # replace placeholders IP2LOCATION_DAT_URL_BASE=${IP2LOCATION_DAT_URL_BASE//@TOKEN@/$token} # clear credential parameters IP2LOCATION_DAT_URL_BASE=${IP2LOCATION_DAT_URL_BASE//@LOGIN@/} IP2LOCATION_DAT_URL_BASE=${IP2LOCATION_DAT_URL_BASE//@PASSWORD@/} fi # Download and unpack non-sample files for list in IP2LOCATION_DAT_FILES_LITE IP2LOCATION_DAT_FILES IP2LOCATION_DAT_FILES_LITE_FREE IP2LOCATION_DAT_FILES_SAMPLE; do if [ -z "${!list}" ]; then echo "NOTICE: empty list, skip: $list" continue fi $verbose && echo "INFO : download list $list: ${!list}" url_base="$IP2LOCATION_DAT_URL_BASE" case $list in *_LITE|*_LITE_FREE) code_suffix="LITEBIN" file_prefix="IP2LOCATION-LITE" case $list in *_LITE_FREE) url_base="$IP2LOCATION_DAT_URL_BASE_LITE_FREE" ;; esac ;; *_SAMPLE) url_base="$IP2LOCATION_DAT_URL_BASE_SAMPLE" ;; *) code_suffix="BIN" file_prefix="IP2LOCATION" ;; esac file_dest="$IP2LOCATION_DAT_DIR/$file" if [ "${!list}" = "skip" ]; then echo "NOTICE: skip list (by keyword 'skip'): $list" continue fi for item in ${!list}; do proto=${item/:*} number=${item/*:} case $list in *_SAMPLE) case $proto in IPv4) protoitem="" ;; IPv6) protoitem="6" ;; *) echo "ERROR : unsupported 'proto' in item: $item" exit 1 ;; esac file="sample${protoitem}.bin.db${number}.zip" ;; *) case $proto in IPv4) code="DB${number}${code_suffix}" file="${file_prefix}-DB${number}.BIN.ZIP" ;; IPv6) code="DB${number}${code_suffix}IPV6" file="${file_prefix}-DB${number}.IPV6.BIN.ZIP" ;; *) echo "ERROR : unsupported 'proto' in item: $item" exit 1 ;; esac ;; esac case $list in *_SAMPLE|*_LITE_FREE) url="$url_base/$file" ;; *) url="$url_base&productcode=$code" ;; esac file_dest="$IP2LOCATION_DAT_DIR/$file" if [ "$NO_ACTION" = "1" ]; then if $has_credentials; then echo "NOTICE: download skipped by option: ${url/password=*&/password=**PASS**&} ($file_dest)" continue fi if $has_token; then echo "NOTICE: download skipped by option: ${url/token=*&/token=**TOK**&} ($file_dest)" continue fi fi if [ "$SKIP_OK" = "1" ]; then if file "$file_dest" | grep -q "Zip archive data"; then echo "NOTICE: download skipped by option because file already existing and is a ZIP file: $code ($file_dest)" file_unzip=$(unzip -l "$file_dest" '*.BIN' | grep "\.BIN$" | awk '{ print $NF }' | head -1) if [ -n "$file_unzip" ]; then if [ ! -f "$IP2LOCATION_DAT_DIR/$file_unzip" ]; then unzip -o -d "$IP2LOCATION_DAT_DIR" "$file_dest" '*.BIN' if [ $? -ne 0 ]; then echo "ERROR : unzip of file not successful: $file_dest" continue else echo "INFO : unzip of file successful: $file_dest" fi else echo "INFO : skip unzip because unzipped file already existing: $code ($file_dest)" fi fi continue fi fi if $has_credentials; then $verbose && echo "INFO : try to download URL: ${url/password=*&/password=**PASS**&} ($file_dest)" fi if $has_token; then $verbose && echo "INFO : try to download URL: ${url/token=*&/token=**TOK**&} ($file_dest)" fi wget -q -O "$file_dest" "$url" result=$? if [ $result -ne 0 ]; then echo "ERROR : download of file not successful: $file_dest ($!)" continue fi $verbose && echo "INFO : download of file successful: $file_dest" if [ ! -s "$file_dest" ]; then echo "ERROR : downloaded file has ZERO size: $file_dest" continue fi if ! file "$file_dest" | grep -q "Zip archive data"; then if file "$file_dest" | grep -q "ASCII text"; then echo "ERROR : downloaded file is not a ZIP archive: $file_dest ($(head -1 "$file_dest"))" else echo "ERROR : downloaded file is not a ZIP archive: $file_dest" fi continue fi unzip -o -d "$IP2LOCATION_DAT_DIR" "$file_dest" '*.BIN' if [ $? -ne 0 ]; then echo "ERROR : unzip of file not successful: $file_dest" continue fi $verbose && echo "INFO : unzip of file successful: $file_dest (remove downloaded file now)" rm -f "$file_dest" echo "NOTICE: download/unzip successful: $item" done done # Adjust permissions if [ "$NO_ACTION" != "1" ]; then chmod 644 $IP2LOCATION_DAT_DIR/*.BIN fi ipv6calc-4.1.0/tools/Makefile.in000066400000000000000000000026331444154247200164430ustar00rootroot00000000000000# Project : ipv6calc/ipv6calc # File : Makefile[.in] # Version : $Id: 6f48bd774d6279dab7e3cc71037cc1ecca8d007c $ # Copyright : 2006-2015 by Peter Bieringer # # Information: # Makefile for various tools # prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ # Compiler and Linker Options DEFAULT_CFLAGS ?= -O2 -Wall -g INCLUDES= -I../getopt/ -I../ -I../lib/ GETOBJS = ../getopt/getopt.o ../getopt/getopt1.o CC = @CC@ OBJS = registry-assignment-to-list.o # splint SPLINT_OPT_OUTSIDE = -warnposix -nullassign -uniondef -compdef -usedef -formatconst -exportlocal #SPLINT_OPT_OUTSIDE = -uniondef +matchanyintegral --nullassign +ignoresigns -compdef -usedef -modobserver -formatconst -warnposix -exportlocal SPLINT_TODO_LATER = -unrecog -retvalint all: .c.o: $(CC) -c $< $(DEFAULT_CFLAGS) $(CFLAGS) $(INCLUDES) $(OBJS): ../config.h libipv6calc.a: cd ../ && ${MAKE} lib-make distclean: ${MAKE} clean for f in *.sh; do if [ -f $$f.in ]; then rm -f $$f; fi; done autoclean: ${MAKE} distclean clean: rm -f *.o test: splint: splint *.c ../lib/*.c -I.. -I../lib $(SPLINT_OPT_OUTSIDE) $(SPLINT_TODO_LATER) install: if [ ! -d $(DESTDIR)$(datadir)/ipv6calc/tools ]; then install -d -m 755 $(DESTDIR)$(datadir)/ipv6calc/tools; fi for f in *.sh *.pl; do install -m 755 $$f $(DESTDIR)$(datadir)/ipv6calc/tools; done ipv6calc-4.1.0/tools/ipv6calc-create-registry-list-ipv4.pl000077500000000000000000000503421444154247200234050ustar00rootroot00000000000000#!/usr/bin/perl -w # # Project : ipv6calc/databases/ipv4-assignment # File : create-registry-list.pl # Version : $Id: 199691a583d2789a29444ece4aa0b30c59f8cc5f $ # Copyright : 2002-2017 by Peter Bieringer # License : GNU GPL v2 # # Information: # Perl program which creates IPv4 address assignment header # Requires: # XML::Simple use strict; use warnings; use IPC::Open2; use XML::Simple; use Getopt::Std; use BerkeleyDB; use POSIX qw(strftime); my $progname = $0; my $debug = 0; #$debug |= 0x01; #$debug |= 0x02; #$debug |= 0x04; # assignments_iana #$debug |= 0x08; # assignments_iana #$debug |= 0x10; # assignments gap closing #$debug |= 0x100; # assignments LISP #$debug |= 0x1000; # TLD store sub help { print qq| Usage: $progname [-S ] [-D ] [-H] [-B [-A]] [-d ] -S source directory -D destination directory -H create header file(s) -B create Berkeley DB file(s) -A atomic operation (generate .new and move on success) -d debug level -h this online help |; exit 0; }; # parse options our ($opt_h, $opt_S, $opt_D, $opt_B, $opt_H, $opt_A, $opt_d); getopts('d:hS:D:BHA') || help(); if (defined $opt_h) { help(); }; if (defined $opt_d) { $debug = $opt_d; }; unless (defined $opt_H || defined $opt_B) { print "WARN : nothing to do (missing -H|-B)\n"; exit 1; }; ## locations my $file_dst_h; my $dir_src; my $dir_dst; my $global_file; my $lisp_file; my @files; ## source file handling if (defined $opt_S) { $dir_src = $opt_S; $dir_src .= "/" if ($dir_src !~ /\/$/o); $global_file = $dir_src . "ipv4-address-space.xml"; $lisp_file = $dir_src . "site-db"; @files = ( $dir_src . "delegated-arin-extended-latest", $dir_src . "delegated-ripencc-latest", $dir_src . "delegated-apnic-latest", $dir_src . "delegated-lacnic-latest", $dir_src . "delegated-afrinic-latest" ); } else { # default $dir_src = "../registries/"; $global_file = $dir_src . "iana/ipv4-address-space.xml"; $lisp_file = $dir_src . "lisp/site-db"; @files = ( $dir_src . "arin/delegated-arin-extended-latest", $dir_src . "ripencc/delegated-ripencc-latest", $dir_src . "apnic/delegated-apnic-latest", $dir_src . "lacnic/delegated-lacnic-latest", $dir_src . "afrinic/delegated-afrinic-latest" ); }; ## destination file handling if (defined $opt_D) { $dir_dst = $opt_D; } else { # default $dir_dst = "."; }; $file_dst_h = $dir_dst . "/dbipv4addr_assignment.h"; my $file_dst_db_reg = $dir_dst . "/ipv6calc-external-ipv4-registry.db"; my $file_dst_db_cc = $dir_dst . "/ipv6calc-external-ipv4-countrycode.db"; my $file_dst_db_reg_orig; my $file_dst_db_cc_orig; print "INFO : destination file for header: " . $file_dst_h . "\n" if (defined $opt_H); print "INFO : destination file for DB (Registry): " . $file_dst_db_reg . "\n" if (defined $opt_B); print "INFO : destination file for DB (CountryCode): " . $file_dst_db_cc . "\n" if (defined $opt_B); my %assignments; my %assignments_iana; my %assignments_info; my %ip_countrycode; my %date_created; # convert a dotted IPv4 address into 32-bit decimal sub ipv4_to_dec { my $ipv4 = shift || die "Missing IPv4 address"; my ($t1, $t2, $t3, $t4) = split /\./, $ipv4; my $dec = $t4 + 256 * ( $t3 + 256 * ( $t2 + 256 * $t1 )); return ($dec); }; # convert a 32-bit decimal to dotted IPv4 address sub dec_to_ipv4 { my $dec = shift; my $t1 = ($dec & 0xff000000) >> 24; my $t2 = ($dec & 0x00ff0000) >> 16; my $t3 = ($dec & 0x0000ff00) >> 8; my $t4 = ($dec & 0x000000ff); my $ipv4 = sprintf "%d.%d.%d.%d", $t1, $t2, $t3, $t4; return ($ipv4); }; # find start of ipv4 in %assignments_iana sub find_start_iana { my $ipv4 = shift || die "Missing IPv4 address"; for my $key (keys %assignments_iana) { if ($ipv4 < $key) { next; } elsif ($ipv4 >= ($key + $assignments_iana{$key}->{'distance'})) { next; } else { # match return ($key); }; }; return (undef); }; ## global IANA assignment, last resort fallback sub proceed_global { my $ipv4; my $length; my ($start, $distance); # Proceed first global IANA file print "INFO : proceed file (XML): " . $global_file . "\n"; my $xs = XML::Simple->new(); my $xd = $xs->XMLin($global_file) || die "Cannot open/parse file: $global_file"; for my $e1 ($xd->{'updated'}) { $e1 =~ s/-//go; $date_created{'IANA'} = $e1; print "DEBUG : found create date: " . $e1 . "\n"; last; }; for my $e1 ($xd->{'record'}) { for my $e2 (@$e1) { print $$e2{'prefix'} . ":" . $$e2{'designation'} . ":" . $$e2{'status'} . "\n" if ($debug); my ($block, $prefixlength) = split /\//, $$e2{'prefix'}; if ($block =~ /^[0-9]+$/) { $start = &ipv4_to_dec(int($block) . ".0.0.0"); } else { die "Currently unsupported block, fix code: " . $block; }; $distance = 2**(32 - int($prefixlength)); printf "data : start=%08x distance=%08x from prefx=%s\n", $start, $distance, $$e2{'prefix'} if ($debug & 0x04); my $reg; if (uc($$e2{'status'}) eq "RESERVED") { $reg = "IANA"; } else { $reg = uc($$e2{'designation'}); $reg =~ s/RIPE NCC/RIPENCC/g; $reg =~ s/(IANA) .*/$1/g; $reg =~ s/.* (RIPENCC)/$1/g; if ( ($reg ne "ARIN") && ($reg ne "APNIC") && ($reg ne "RIPENCC") && ($reg ne "IANA") && ($reg ne "LACNIC") && ($reg ne "AFRINIC")) { # fallback to whois entry if (defined $$e2{'whois'}) { $$e2{'whois'} =~ /^whois\.([a-z]+)\..*/; $reg = uc($1); if (! defined $reg) { die "Can't extract registry from whois entry: " . $$e2{'whois'}; }; if ($reg eq "RIPE") { $reg = "RIPENCC"; }; if ( ($reg ne "ARIN") && ($reg ne "APNIC") && ($reg ne "RIPENCC") && ($reg ne "IANA") && ($reg ne "LACNIC") && ($reg ne "AFRINIC")) { die "Unsupported registry extracted from whois entry: " . $reg; }; } else { print "Missing whois entry for: " . &dec_to_ipv4($start) . " (fallback to ARIN)\n"; $reg = "ARIN"; }; }; }; printf "store : reg=%-10s start=%08x distance=%08x\n", $reg, $start, $distance if ($debug & 0x08); $assignments_iana{$start}->{'registry'} = $reg; $assignments_iana{$start}->{'distance'} = $distance; }; }; }; ## LISP sub proceed_lisp { # 1: map-server # 2: site - site name # 3: instance # 4: eid - eid prefix # 5: registered - yes or no # 6: who - ip addr of who last registered, blank & -- mean none # 7: proxy - yes or no (or blank) # 8: ttl - in what ever format the map-server reports it # 9: nrloc - how many rlocs in field 10 # 10: rlocs - seperated by ';' and with (up|down) # 11: timestamp - when data was collected, in UTC # # Example: # cisco-sjc-mr-ms-1|akennedy-xtr|0|153.16.9.64/28|no||no||0||2017.0223.0600 # cisco-sjc-mr-ms-1|akennedy-xtr|0|2610:d0:1233::/48|no||no||0||2017.0223.0600 my $ipv4; my $length; my ($start, $distance); print "INFO : proceed LISP data file (TXT): " . $lisp_file . "\n"; open(my $FILE, "<", $lisp_file) || die "Cannot open file: $lisp_file"; my ($map, $site, $instance, $eid, $registered, $who, $proxy, $ttl, $nrloc, $rloc, $timestamp); my $reg = "LISP"; my $line; my $line_number = 0; while (<$FILE>) { $line = $_; $line_number++; chomp $line; printf "LISP read : $line\n" if ($debug & 0x100); ($map, $site, $instance, $eid, $registered, $who, $proxy, $ttl, $nrloc, $rloc, $timestamp) = split /\|/, $line; if ($line_number == 1) { $timestamp =~ /^([0-9]{4})\.([0-9]{4})/o; $date_created{$reg} = $1 . $2; }; if ($eid !~ /^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\/([0-9]{1,2})$/o) { # not IPv4 next; }; printf "LISP process: $line\n" if ($debug & 0x100); printf "LISP convert: IPv4=$1 mask=$2\n" if ($debug & 0x100); # convert IPv4 address to decimal my $start_reg = &ipv4_to_dec($1); my $distance_reg = 2 ** (32 - $2); printf "LISP check : IPv4=$1 mask=$2\n" if ($debug & 0x100); if ( (($start_reg & 0xffff0000) != 0x99100000) ) { # not in assigned LISP space printf "LISP skip : IPv4=$start_reg mask=$distance_reg\n" if ($debug & 0x100); next; }; printf "LISP store : reg=%-10s start=%08x distance=%08x\n", $reg, $start_reg, $distance_reg if ($debug & 0x100); $assignments_info{$start_reg}->{'distance'} = $distance_reg; $assignments_info{$start_reg}->{'registry'} = $reg; $assignments_info{$start_reg}->{'info'} = "LISP#" . $site; }; close($FILE); }; &proceed_global(); ## proceed files of each registry foreach my $file (@files) { print "INFO : proceed file: " . $file . "\n"; open(my $FILE, "<", $file) || die "Cannot open file: $file"; my $line; my $flag_proceeded; my $flag_found_date = 0; my $start_reg = -1; my $start_tld = -1; my $distance_reg; my $distance_tld; my $cc_store = undef; my ($reg, $cc, $token, $ipv4, $numbers, $date, $status, $other); while (<$FILE>) { $line = $_; chomp $line; # catch date line if ($line =~ /^2(\.[0-9])?\|([^\|]+)\|.*\|([0-9]{8})\|[^\|]*$/o) { $date_created{uc($2)} = $3; print "DEBUG : found create date: " . $3 . "\n"; $flag_found_date = 1; next; }; # skip not proper lines if ( ! ( $line =~ /\|ipv4\|/o ) ) { next; }; if ( $line =~ /\|\*\|/o ) { next; }; #print $line . "\n"; ($reg, $cc, $token, $ipv4, $numbers, $date, $status, $other) = split /\|/, $line; if ( $token ne "ipv4" ) { next; }; $reg = uc($reg); $reg =~ s/\wRIPE\w/RIPENCC/g; $cc = uc($cc); if ( $reg ne "ARIN" && $reg ne "APNIC" && $reg ne "RIPENCC" && $reg ne "IANA" && $reg ne "LACNIC" && $reg ne "AFRINIC") { print "Unsupported registry: " . $reg . "\n"; next; }; if ($reg eq "ARIN" ) { } elsif ($reg eq "APNIC" ) { } elsif ($reg eq "RIPENCC" ) { } elsif ($reg eq "IANA" ) { } elsif ($reg eq "LACNIC" ) { } elsif ($reg eq "AFRINIC" ) { } else { die "Unsupported registry: " . $reg; }; # convert IPv4 address to decimal my $ipv4_dec = &ipv4_to_dec($ipv4); printf "data : reg=%-10s ipv4 =%08x numbers=%08x\n", $reg, $ipv4_dec, $numbers if ($debug & 0x01); if ($start_reg == -1) { # set start & distance $start_reg = $ipv4_dec; $distance_reg = $numbers; printf "init : reg=%-10s start=%08x distance=%08x\n", $reg, $start_reg, $distance_reg if ($debug & 0x01); } elsif (($start_reg + $distance_reg) == $ipv4_dec) { # extend distance $distance_reg += $numbers; printf "extend: reg=%-10s start=%08x distance=%08x\n", $reg, $start_reg, $distance_reg if ($debug & 0x01); } else { printf "store : reg=%-10s start=%08x distance=%08x\n", $reg, $start_reg, $distance_reg if ($debug & 0x02); $assignments{$start_reg}->{'distance'} = $distance_reg; $assignments{$start_reg}->{'registry'} = $reg; # set new start $start_reg = $ipv4_dec; $distance_reg = $numbers; printf "init : reg=%-10s start=%08x distance=%08x\n", $reg, $start_reg, $distance_reg if ($debug & 0x01); }; ## IP -> TLD (CountryCode) if ($cc !~ /^[A-Z][A-Z]$/o) { # no valid TLD if ($start_tld != -1) { $ip_countrycode{$start_tld}->{'distance'} = $distance_tld; $ip_countrycode{$start_tld}->{'cc'} = $cc_store; printf "store : tld=%-10s start=%08x distance=%08x\n", $cc_store, $start_tld, $distance_tld if ($debug & 0x1000); }; $cc_store = undef; $start_tld = -1; next; }; printf "data : tld=%-10s ipv4 =%08x numbers=%08x\n", $cc, $ipv4_dec, $numbers if ($debug & 0x01); if ($start_tld == -1) { # set start & distance $start_tld = $ipv4_dec; $distance_tld = $numbers; $cc_store = $cc; printf "init : tld=%-10s start=%08x distance=%08x\n", $cc, $start_tld, $distance_tld if ($debug & 0x01); } elsif ((($start_tld + $distance_tld) == $ipv4_dec) && ($cc_store eq $cc)) { # extend distance $distance_tld += $numbers; printf "extend: tld=%-10s start=%08x distance=%08x\n", $cc, $start_tld, $distance_tld if ($debug & 0x01); } else { $ip_countrycode{$start_tld}->{'distance'} = $distance_tld; $ip_countrycode{$start_tld}->{'cc'} = $cc_store; printf "store : tld=%-10s start=%08x distance=%08x\n", $cc, $start_tld, $distance_tld if ($debug & 0x1000); # set new start $start_tld = $ipv4_dec; $distance_tld = $numbers; $cc_store = $cc; printf "init : tld=%-10s start=%08x distance=%08x\n", $cc, $start_tld, $distance_tld if ($debug & 0x01); }; }; close($FILE); if ($start_reg != -1) { # store last found entry $assignments{$start_reg}->{'distance'} = $distance_reg; $assignments{$start_reg}->{'registry'} = $reg; printf "store : reg=%-10s start=%08x distance=%08x\n", $reg, $start_reg, $distance_reg if ($debug & 0x02); }; if ($start_tld != -1) { # store last found entry $ip_countrycode{$start_tld}->{'distance'} = $distance_tld; $ip_countrycode{$start_tld}->{'cc'} = $cc; printf "store : tld=%-10s start=%08x distance=%08x\n", $cc, $start_tld, $distance_tld if ($debug & 0x02); }; if ($flag_found_date != 1) { die("no date line found, unsupported file format"); }; }; &proceed_lisp(); my $now_string = strftime "%Y%m%d-%H%M%S%z %Z", localtime; my $string = ""; for my $reg (sort keys %date_created) { if (length($string) > 0) { $string .= " "; }; $string .= $reg . "/" . $date_created{$reg}; }; ## Create header file IP->Registry if (defined $opt_H) { print "INFO : create outfile now: " . $file_dst_h . "\n"; open(my $OUT, ">", $file_dst_h) || die "Cannot open outfile: $file_dst_h"; # Header print $OUT qq|/* * Project : ipv6calc * File : dbipv4_assignment.h |; print $OUT " * Version : \$I"; print $OUT "d:\$\n"; print $OUT qq| * Generated : $now_string * Data copyright: RIPE NCC, APNIC, ARIN, LACNIC, AFRINIC, LISP * * Information: * Additional header file for databases/lib/libipv6calc_db_wrapper_BuiltIn.c */ #include "databases/lib/libipv6calc_db_wrapper_BuiltIn.h" |; # print creation dates print $OUT "static const char* dbipv4addr_registry_status __attribute__ ((__unused__)) = \"$string\";\n"; print $OUT "static const time_t dbipv4addr_registry_unixtime __attribute__ ((__unused__)) = " . time . ";\n"; # Main data structure print $OUT qq| static const s_ipv4addr_assignment dbipv4addr_assignment[] = { |; printf $OUT "\t//first , last , registry \n"; foreach my $ipv4 (sort { $a <=> $b } keys %assignments) { my $distance = $assignments{$ipv4}->{'distance'}; my $registry = $assignments{$ipv4}->{'registry'}; printf $OUT "\t{ 0x%08x, 0x%08x, REGISTRY_%-10s }, // %-15s - %s\n", $ipv4, ($ipv4 + $distance - 1), $registry, &dec_to_ipv4($ipv4), &dec_to_ipv4($ipv4 + $distance - 1); }; print $OUT qq|}; |; ## IANA assignment print $OUT qq| static const s_ipv4addr_assignment dbipv4addr_assignment_iana[] = { |; printf $OUT "\t//first , last , registry \n"; foreach my $ipv4 (sort { $a <=> $b } keys %assignments_iana) { my $distance = $assignments_iana{$ipv4}->{'distance'}; my $registry = $assignments_iana{$ipv4}->{'registry'}; printf $OUT "\t{ 0x%08x, 0x%08x, REGISTRY_%-10s }, // %-15s - %s\n", $ipv4, ($ipv4 + $distance - 1), $registry, &dec_to_ipv4($ipv4), &dec_to_ipv4($ipv4 + $distance - 1); }; print $OUT "};\n"; ## INFO table print $OUT qq| static const s_ipv4addr_info dbipv4addr_info[] = { |; printf $OUT "\t//first , last , registry \n"; foreach my $ipv4 (sort { $a <=> $b } keys %assignments_info) { next if (! defined $assignments_info{$ipv4}->{'info'}); my $distance = $assignments_info{$ipv4}->{'distance'}; my $info = $assignments_info{$ipv4}->{'info'}; printf $OUT "\t{ 0x%08x, 0x%08x, %-30s }, // %-15s - %s\n", $ipv4, ($ipv4 + $distance - 1), "\"" . $info . "\"", &dec_to_ipv4($ipv4), &dec_to_ipv4($ipv4 + $distance - 1); }; print $OUT "};\n"; ## END print "INFO : finished creation of header file: " . $file_dst_h . "\n"; }; ## Create DB file if (defined $opt_B) { ## IPv4->Registry print "INFO : start creation of DB file IPv4->Registry: " . $file_dst_db_reg . "\n"; # external database my $type = "2024"; # External IPv4->Registry my $date = $string; if (defined $opt_A) { $file_dst_db_reg_orig = $file_dst_db_reg; $file_dst_db_reg .= ".new"; } else { if (-f $file_dst_db_reg) { unlink($file_dst_db_reg) || die "Can't delete old file: $file_dst_db_reg"; }; }; print "INFO : create db from input: IPv4=$file_dst_db_reg\n"; ## SubDB: info my %h_ipv4_info; tie %h_ipv4_info, 'BerkeleyDB::Btree', -Filename => $file_dst_db_reg, -Subname => 'info', -Flags => DB_CREATE, -Mode => 0644 || die "Cannot open file $file_dst_db_reg: $! $BerkeleyDB::Error\n"; $h_ipv4_info{'dbusage'} = "ipv6calc"; $h_ipv4_info{'dbformat'} = "1"; # ';' separated values $h_ipv4_info{'dbdate'} = $date; $h_ipv4_info{'dbtype'} = $type; $h_ipv4_info{'dbcreated'} = $now_string; $h_ipv4_info{'dbcreated_unixtime'} = time + 1; untie %h_ipv4_info; ## SubDB: data my @a_ipv4; tie @a_ipv4, 'BerkeleyDB::Recno', -Filename => $file_dst_db_reg, -Subname => 'data', -Flags => DB_CREATE || die "Cannot open file $file_dst_db_reg: $! $BerkeleyDB::Error\n"; foreach my $ipv4 (sort { $a <=> $b } keys %assignments) { my $distance = $assignments{$ipv4}->{'distance'}; my $registry = $assignments{$ipv4}->{'registry'}; push @a_ipv4, sprintf("%08x;%08x;%s",$ipv4, ($ipv4 + $distance - 1), "REGISTRY_" . $registry); }; untie @a_ipv4; ## SubDB: data-iana my @a_ipv4_iana; tie @a_ipv4_iana, 'BerkeleyDB::Recno', -Filename => $file_dst_db_reg, -Subname => 'data-iana', -Flags => DB_CREATE || die "Cannot open file $file_dst_db_reg: $! $BerkeleyDB::Error\n"; foreach my $ipv4 (sort { $a <=> $b } keys %assignments_iana) { my $distance = $assignments_iana{$ipv4}->{'distance'}; my $registry = $assignments_iana{$ipv4}->{'registry'}; push @a_ipv4_iana, sprintf("%08x;%08x;%s", $ipv4, ($ipv4 + $distance - 1), "REGISTRY_" . $registry); }; untie @a_ipv4_iana; ## SubDB: data-info my @a_ipv4_info; tie @a_ipv4_info, 'BerkeleyDB::Recno', -Filename => $file_dst_db_reg, -Subname => 'data-info', -Flags => DB_CREATE || die "Cannot open file $file_dst_db_reg: $! $BerkeleyDB::Error\n"; foreach my $ipv4 (sort { $a <=> $b } keys %assignments_info) { my $distance = $assignments_info{$ipv4}->{'distance'}; my $info = $assignments_info{$ipv4}->{'info'}; push @a_ipv4_info, sprintf("%08x;%08x;%s", $ipv4, ($ipv4 + $distance - 1), $info); }; untie @a_ipv4_info; print "INFO : db created from input IPv4->Registry: $file_dst_db_reg\n"; if (defined $opt_A) { rename $file_dst_db_reg, $file_dst_db_reg_orig; if ($? != 0) { print "ERROR : can't rename file to: $file_dst_db_reg_orig ($!) - delete: $file_dst_db_reg\n"; unlink $file_dst_db_reg; } else { print "INFO : successful rename file to: $file_dst_db_reg_orig\n"; }; }; #### IPv4->CountryCode print "INFO : start creation of DB file: IPv4->CountryCode: " . $file_dst_db_cc . "\n"; # external database $type = "2034"; # External IPv4->CountryCode $date = $string; $now_string = strftime "%Y%m%d-%H%M%S%z", gmtime; my $info = "dbusage=ipv6calc;dbformat=1;dbdate=$date;dbtype=" . $type . ";dbproto=4;dbcreated=$now_string"; if (defined $opt_A) { $file_dst_db_cc_orig = $file_dst_db_cc; $file_dst_db_cc .= ".new"; } else { if (-f $file_dst_db_cc) { unlink($file_dst_db_cc) || die "Can't delete old file: $file_dst_db_cc"; }; }; print "INFO : create db from input: IPv4=$file_dst_db_cc\n"; my %h_info; tie %h_info, 'BerkeleyDB::Btree', -Filename => $file_dst_db_cc, -Subname => 'info', -Flags => DB_CREATE, -Mode => 0644 || die "Cannot open file $file_dst_db_cc: $! $BerkeleyDB::Error\n"; $h_info{'dbusage'} = "ipv6calc"; $h_info{'dbformat'} = "1"; # ';' separated values $h_info{'dbdate'} = $date; $h_info{'dbtype'} = $type; $h_info{'dbcreated'} = $now_string; $h_info{'dbcreated_unixtime'} = time + 1; untie %h_info; my @a; tie @a, 'BerkeleyDB::Recno', -Filename => $file_dst_db_cc, -Subname => 'data', -Flags => DB_CREATE || die "Cannot open file $file_dst_db_cc: $! $BerkeleyDB::Error\n"; foreach my $ipv4 (sort { $a <=> $b } keys %ip_countrycode) { my $distance = $ip_countrycode{$ipv4}->{'distance'}; my $cc = $ip_countrycode{$ipv4}->{'cc'}; push @a, sprintf("%08x;%08x;%s", $ipv4, ($ipv4 + $distance - 1), $cc); }; untie @a; print "INFO : DB file created from input IPv4->CountryCode: " . $file_dst_db_cc . "\n"; if (defined $opt_A) { rename $file_dst_db_cc, $file_dst_db_cc_orig; if ($? != 0) { print "ERROR : can't rename file to: $file_dst_db_cc_orig ($!) - delete: $file_dst_db_cc\n"; unlink $file_dst_db_cc; } else { print "INFO : successful rename file to: $file_dst_db_cc_orig\n"; }; }; }; ipv6calc-4.1.0/tools/ipv6calc-create-registry-list-ipv6.pl000077500000000000000000000472711444154247200234160ustar00rootroot00000000000000#!/usr/bin/perl -w # # Project : ipv6calc/databases/ipv6-assignment # File : create-registry-list.pl # Version : $Id: 242ab2649b50e9a9bd3088b1b556c18ef311e67c $ # Copyright : 2005 by Simon Arlott (initial implementation of global file only) # 2005-2017 by Peter Bieringer (further extensions) # License : GNU GPL v2 # # Information: # Perl program which creates IPv6 address assignment header # Uses code from ipv4-assignment use strict; use warnings; use Net::IP; use Math::BigInt; use XML::Simple; use Getopt::Std; use BerkeleyDB; use POSIX qw(strftime); my $progname = $0; my $debug = 0; # Debugging # $debug |= 0x0010; # 0x0010: proceed registry files # 0x0020: proceed global file # 0x0100: subnet mask generation #$debug |= 0x0040; # fill data #$debug |= 0x0200; # parse lines #$debug |= 0x0400; # store registry #$debug |= 0x100; # assignments LISP #$debug |= 0x4000; # store countrycode #$debug |= 0x0080; # skip optimizer sub help { print qq| Usage: $progname [-S ] [-D ] [-H] [-B [-A]] [-d ] -S source directory -D destination directory -H create header file(s) -B create Berkeley DB file(s) -A atomic operation (generate .new and move on success) -d debug level -h this online help |; exit 0; }; ## parse options our ($opt_h, $opt_S, $opt_D, $opt_B, $opt_H, $opt_A, $opt_d); getopts('d:hS:D:BHA') || help(); if (defined $opt_h) { help(); }; if (defined $opt_d) { $debug = $opt_d; }; unless (defined $opt_H || defined $opt_B) { print "WARN : nothing to do (missing -H|-B)\n"; exit 1; }; ## locations my $file_dst_h; my $dir_src; my $dir_dst; my $global_file; my $lisp_file; my @files; ## source file handling if (defined $opt_S) { $dir_src = $opt_S; $dir_src .= "/" if ($dir_src !~ /\/$/o); $global_file = $dir_src . "ipv6-unicast-address-assignments.xml"; $lisp_file = $dir_src . "site-db"; @files = ( $dir_src . "delegated-arin-extended-latest", $dir_src . "delegated-ripencc-latest", $dir_src . "delegated-apnic-latest", $dir_src . "delegated-lacnic-latest", $dir_src . "delegated-afrinic-latest" ); } else { # default $dir_src = "../registries/"; $global_file = $dir_src . "iana/ipv6-unicast-address-assignments.xml"; $lisp_file = $dir_src . "lisp/site-db"; @files = ( $dir_src . "arin/delegated-arin-extended-latest", $dir_src . "ripencc/delegated-ripencc-latest", $dir_src . "apnic/delegated-apnic-latest", $dir_src . "lacnic/delegated-lacnic-latest", $dir_src . "afrinic/delegated-afrinic-latest" ); }; ## destination file handling if (defined $opt_D) { $dir_dst = $opt_D; } else { # default $dir_dst = "."; }; $file_dst_h = $dir_dst . "/dbipv6addr_assignment.h"; my $file_dst_db_reg = $dir_dst . "/ipv6calc-external-ipv6-registry.db"; my $file_dst_db_cc = $dir_dst . "/ipv6calc-external-ipv6-countrycode.db"; my $file_dst_db_reg_orig; my $file_dst_db_cc_orig; print "INFO : destination file for header: " . $file_dst_h . "\n" if (defined $opt_H); print "INFO : destination file for DB (Registry): " . $file_dst_db_reg . "\n" if (defined $opt_B); print "INFO : destination file for DB (CountryCode): " . $file_dst_db_cc . "\n" if (defined $opt_B); ## Read data my (@arin, @apnic, @ripencc, @iana, @lacnic, @afrinic, @reserved, @s6to4, @s6bone); my @cc_array; my @info_array; my %date_created; # Generate subnet powers my %subnet_masks; print "DEBUG : generate subnet masks\n"; for (my $i = 0; $i <= 64; $i++) { my $mask; $mask = Math::BigInt->new("0xffffffffffffffff"); $mask->blsft(64 - $i); #$mask->bnot(); my $ip_ipv6_int = $mask->copy(); $ip_ipv6_int->brsft(32); $ip_ipv6_int->band("0xffffffff"); $subnet_masks{$i}->{'mask_00_31'} = sprintf("%08x", $ip_ipv6_int); $ip_ipv6_int = $mask->copy(); $ip_ipv6_int->band("0xffffffff"); $subnet_masks{$i}->{'mask_32_63'} = sprintf("%08x", $ip_ipv6_int); printf "Prefix length %3d: ", $i if ($debug & 0x100); printf " mask_00_31=" . $subnet_masks{$i}->{'mask_00_31'} . " mask_32_63=" . $subnet_masks{$i}->{'mask_32_63'} . "\n" if ($debug & 0x100); }; # Fill global assignment (IPv6 should be more hierarchical than IPv4) sub proceed_global { # Proceed first global IANA file print "INFO : proceed file (XML): " . $global_file . "\n"; my $xs = XML::Simple->new(); my $xd = $xs->XMLin($global_file) || die "Cannot open/parse file: $global_file"; for my $e1 ($xd->{'updated'}) { $e1 =~ s/-//go; $date_created{'IANA'} = $e1; print "DEBUG : found create date: " . $e1 . "\n"; last; }; for my $e1 ($xd->{'record'}) { for my $e2 (@$e1) { #print $$e2{'prefix'} . ":" . $$e2{'description'} . "\n"; my $ipv6 = $$e2{'prefix'}; my $reg = $$e2{'description'}; # Check for > /32 my ($addr, $length) = split /\//, $ipv6; if ($length > 32) { die "Currently unsupported prefix length (>32): $ipv6"; }; print "reg=" . $reg . " addr=$ipv6\n" if ($debug & 0x20); $reg = uc($reg); $reg =~ s/RIPE NCC/RIPENCC/g; #print $$e2{'prefix'} . ":" . $reg . "\n"; if ($reg eq "ARIN" ) { push @arin, $ipv6; } elsif ($reg eq "APNIC" ) { push @apnic, $ipv6; } elsif ($reg eq "RIPENCC" ) { push @ripencc, $ipv6; } elsif ($reg eq "IANA" ) { push @iana, $ipv6; } elsif ($reg eq "LACNIC" ) { push @lacnic, $ipv6; } elsif ($reg eq "AFRINIC" ) { push @afrinic, $ipv6; } elsif ($reg eq "RESERVED" ) { push @reserved, $ipv6; } elsif ($reg eq "6TO4" ) { push @s6to4, $ipv6; } elsif ($reg eq "6BONE" ) { push @s6bone, $ipv6; } else { die "Unsupported registry: " . $reg . "\n"; }; }; }; }; ## LISP sub proceed_lisp { # 1: map-server # 2: site - site name # 3: instance # 4: eid - eid prefix # 5: registered - yes or no # 6: who - ip addr of who last registered, blank & -- mean none # 7: proxy - yes or no (or blank) # 8: ttl - in what ever format the map-server reports it # 9: nrloc - how many rlocs in field 10 # 10: rlocs - separated by ';' and with (up|down) # 11: timestamp - when data was collected, in UTC # # Example: # cisco-sjc-mr-ms-1|akennedy-xtr|0|153.16.9.64/28|no||no||0||2017.0223.0600 # cisco-sjc-mr-ms-1|akennedy-xtr|0|2610:d0:1233::/48|no||no||0||2017.0223.0600 my $ipv6; my $length; my ($start, $distance); print "INFO : proceed LISP data file (TXT): " . $lisp_file . "\n"; open(my $FILE, "<", $lisp_file) || die "Cannot open file: $lisp_file"; my ($map, $site, $instance, $eid, $registered, $who, $proxy, $ttl, $nrloc, $rloc, $timestamp); my $reg = "LISP"; my $line; my $line_number = 0; my $ipv6_check = "2610:d0::/32"; # assigned for LISP my $ip_ipv6_check = new Net::IP($ipv6_check) || die "Can't create IPv6 object from ipv6=$ipv6_check"; while (<$FILE>) { $line = $_; $line_number++; chomp $line; printf "LISP read : $line\n" if ($debug & 0x100); ($map, $site, $instance, $eid, $registered, $who, $proxy, $ttl, $nrloc, $rloc, $timestamp) = split /\|/, $line; if ($line_number == 1) { $timestamp =~ /^([0-9]{4})\.([0-9]{4})/o; $date_created{$reg} = $1 . $2; }; if ($eid !~ /^([0-9a-f:]+)\/([0-9]{1,3})$/o) { # not IPv6 printf "LISP skip !6: $line\n" if ($debug & 0x100); next; }; my $ipv6 = $1; my $prefixlen = $2; if ($prefixlen > 64) { # only prefix length <= 64 is supported by lookup table printf "LISP skip PL: $line\n" if ($debug & 0x100); next; }; printf "LISP process: $line\n" if ($debug & 0x100); printf "LISP convert: IPv6=$ipv6/$prefixlen\n" if ($debug & 0x100); # convert IPv6 address my $ip_ipv6 = new Net::IP($ipv6 . "/". $prefixlen) || die "Can't create IPv6 object from ipv6=$ipv6"; my $test = $ip_ipv6->overlaps($ip_ipv6_check); if ($test != $Net::IP::IP_A_IN_B_OVERLAP) { printf "LISP skip (!L): $line\n" if ($debug & 0x100); next; }; printf "LISP store : ipv6=%s info=%s\n", $ip_ipv6->ip() . "/" . $prefixlen, $site if ($debug & 0x100); push @info_array, $ip_ipv6->ip() . "/" . $prefixlen . "/" . "LISP#" . $site; }; close($FILE); }; ## Main &proceed_lisp(); &proceed_global(); foreach my $file (@files) { if ($debug & 0x100) { print "NOTICE: skip registry files\n"; next; }; print "INFO : proceed file: " . $file . "\n"; my $counter = 0; open(my $FILE, "<", $file) || die "Cannot open file: $file"; my $line; my %cache; my $flag_found_date = 0; my $version; while (<$FILE>) { $line = $_; chomp $line; $counter++; # catch date line if ($line =~ /^2(\.[0-9])?\|([^\|]+)\|.*\|([0-9]{8})\|[^\|]*$/o) { $date_created{uc($2)} = $3; print "DEBUG : found create date: " . $3 . "\n"; $flag_found_date = 1; next; }; # skip not proper lines if ( ! ( $line =~ /\|ipv6\|/o ) ) { next; }; if ( $line =~ /\|\*\|/o ) { next; }; print $line . "\n" if ($debug & 0x0200); my ($reg, $cc, $token, $ipv6, $prefixlen, $date, $status, $other) = split /\|/o, $line; if ( $token ne "ipv6" ) { next; }; $reg = uc($reg); $reg =~ s/\wRIPE\w/RIPENCC/og; $cc = uc($cc); # get registry array my $parray; if ($reg eq "ARIN" ) { $parray = \@arin; } elsif ($reg eq "APNIC" ) { $parray = \@apnic; } elsif ($reg eq "RIPENCC" ) { $parray = \@ripencc; } elsif ($reg eq "IANA" ) { $parray = \@iana; } elsif ($reg eq "LACNIC" ) { $parray = \@lacnic; } elsif ($reg eq "AFRINIC" ) { $parray = \@afrinic; } else { die "Unsupported registry: " . $reg; }; my $ip_ipv6 = new Net::IP($ipv6) || die "Can't create IPv6 object from ipv6=$ipv6"; # store in CountryCode array if ($cc =~ /^[A-Z][A-Z]$/o) { # Push into array print "store: cc=" . $cc . " ipv6=" . $ip_ipv6->ip() . "/" . $prefixlen . "\n" if ($debug & 0x4000); push @cc_array, $ip_ipv6->ip() . "/" . $prefixlen . "/" . $cc; }; ## Check registry assignment print "check: reg=" . $reg . " ipv6=" . $ipv6 . "/" . $prefixlen . "\n" if ($debug & 0x10); goto("Label_finished") if ($debug & 0x80); # Check for already included in range: my $flag = 0; my $ip_ipv6_check; my $test; Label_restart: for (my $i = 0; $i < scalar(@$parray); $i++) { my $ipv6_check = $$parray[$i]; print "check: check against ipv6=" . $ipv6_check if ($debug & 0x10); if (defined $cache{$ipv6_check}) { $ip_ipv6_check = $cache{$ipv6_check}; } else { $ip_ipv6_check = new Net::IP($ipv6_check) || die "Can't create IPv6 object from ipv6=$ipv6_check"; $cache{$ipv6_check} = $ip_ipv6_check; }; $test = $ip_ipv6->overlaps($ip_ipv6_check); if ($test == $Net::IP::IP_IDENTICAL) { print " IDENTICAL\n" if ($debug & 0x10); $flag = 1; last; } elsif ($test == $Net::IP::IP_A_IN_B_OVERLAP) { print " INCLUDED\n" if ($debug & 0x10); $flag = 1; last; } elsif ($test == $Net::IP::IP_B_IN_A_OVERLAP) { # check value is included in ipv6 range print " REMOVE\n" if ($debug & 0x10); goto("Label_restart"); } else { print " NO MATCH\n" if ($debug & 0x10); }; }; if ($flag == 1) { next; }; Label_finished: # Check for > /64 if ($prefixlen > 64) { die "Currently unsupported prefix length (>64): $ipv6/$prefixlen"; }; $ip_ipv6 = new Net::IP($ipv6); print "store: reg=" . $reg . " ipv6=" . $ip_ipv6->ip() . "/" . $prefixlen . "\n" if ($debug & 0x0400); # Push into array push @$parray, $ip_ipv6->ip() . "/" . $prefixlen; }; close($FILE); if ($flag_found_date != 1) { die("no date line found, unsupported file format"); }; }; # Create hash my %data; my %data_cc; my %data_info; sub fill_data { my $parray = shift || die "missing array pointer"; my $reg = shift || die "missing registry"; my $pdata = shift || die "missing hash pointer"; if ($reg eq "CC") { print "INFO : fill data for CountryCode assignment\n"; } elsif ($reg eq "INFO") { print "INFO : fill data for Info assignment\n"; } else { print "INFO : fill data for registry: $reg\n"; }; foreach my $entry (sort @$parray) { my ($ipv6, $length, $data); if ($reg eq "CC" || $reg eq "INFO") { ($ipv6, $length, $data) = split /\//o, $entry; } else { ($ipv6, $length) = split /\//o, $entry; $data = $reg; }; print " raw=$entry ipv6=$ipv6 length=$length data=$data" if ($debug & 0x40); my $ip_ipv6 = new Net::IP($ipv6 . "/" . $length); my $ip_ipv6_int = $ip_ipv6->intip(); my $ip_ipv6_int_32_63 = $ip_ipv6_int->copy(); # MSB 00-31 $ip_ipv6_int->brsft(96); my $ipv6_hex_00_31 = sprintf("%08x", $ip_ipv6_int); # MSB 32-63 $ip_ipv6_int_32_63->brsft(64); $ip_ipv6_int_32_63->band("0xffffffff"); my $ipv6_hex_32_63 = sprintf("%08x", $ip_ipv6_int_32_63); $$pdata{$ipv6}->{'ipv6_00_31'} = $ipv6_hex_00_31; $$pdata{$ipv6}->{'ipv6_32_63'} = $ipv6_hex_32_63; my $mask_00_31 = $subnet_masks{$ip_ipv6->prefixlen()}->{'mask_00_31'}; my $mask_32_63 = $subnet_masks{$ip_ipv6->prefixlen()}->{'mask_32_63'}; $$pdata{$ipv6}->{'mask_00_31'} = $mask_00_31; $$pdata{$ipv6}->{'mask_32_63'} = $mask_32_63; $$pdata{$ipv6}->{'mask_length'} = $length; $$pdata{$ipv6}->{'reg'} = $data; print " ipv6_hex_00_31=$ipv6_hex_00_31 ipv6_hex_32_63=$ipv6_hex_32_63 mask_00_31=$mask_00_31 mask_00_31=$mask_32_63 data=$data\n" if ($debug & 0x40); }; }; &fill_data(\@apnic , "APNIC" , \%data); &fill_data(\@ripencc, "RIPENCC", \%data); &fill_data(\@arin , "ARIN" , \%data); &fill_data(\@lacnic , "LACNIC" , \%data); &fill_data(\@afrinic, "AFRINIC", \%data); &fill_data(\@iana , "IANA" , \%data); &fill_data(\@s6to4 , "6TO4" , \%data); &fill_data(\@s6bone , "6BONE" , \%data); &fill_data(\@cc_array, "CC" , \%data_cc); &fill_data(\@info_array, "INFO" , \%data_info); my $now_string = strftime "%Y%m%d-%H%M%S%z %Z", localtime; my $string = ""; for my $reg (sort keys %date_created) { if (length($string) > 0) { $string .= " "; }; $string .= $reg . "/" . $date_created{$reg}; }; ## Create header file if (defined $opt_H) { print "INFO : create header file now: " . $file_dst_h . "\n"; open(my $OUT, ">", $file_dst_h) || die "Cannot open outfile: $file_dst_h"; # Header print $OUT qq|/* * Project : ipv6calc * File : dbipv6_assignment.h |; print $OUT " * Version : \$I"; print $OUT "d:\$\n"; print $OUT qq| * Generated : $now_string * Data copyright: IANA ARIN RIPENCC APNIC LACNIC AFRINIC * * Information: * Additional header file for databases/lib/libipv6calc_db_wrapper_BuiltIn.c */ #include "databases/lib/libipv6calc_db_wrapper_BuiltIn.h" |; # print creation dates print $OUT "static const char* dbipv6addr_registry_status __attribute__ ((__unused__)) = \"$string\";\n"; print $OUT "static const time_t dbipv6addr_registry_unixtime __attribute__ ((__unused__)) = " . time . ";\n"; # Main data structure print $OUT qq| static const s_ipv6addr_assignment dbipv6addr_assignment[] = { |; printf $OUT "\t//%-10s, %-10s, %-10s, %-10s, %-s, %-10s\n", "ipv6_00_31", "ipv6_32_63", "mask_00_31", "mask_32_63", "mask_length", "registry"; foreach my $ipv6 (sort keys %data) { printf $OUT "\t{ 0x%s, 0x%s, 0x%s, 0x%s, %3d, REGISTRY_%-10s },\n", $data{$ipv6}->{'ipv6_00_31'}, $data{$ipv6}->{'ipv6_32_63'}, $data{$ipv6}->{'mask_00_31'}, $data{$ipv6}->{'mask_32_63'}, $data{$ipv6}->{'mask_length'}, $data{$ipv6}->{'reg'}; }; print $OUT "};\n"; # data-info structure print $OUT qq| static const s_ipv6addr_info dbipv6addr_info[] = { |; printf $OUT "\t//%-10s, %-10s, %-10s, %-10s, %-s, %-10s\n", "ipv6_00_31", "ipv6_32_63", "mask_00_31", "mask_32_63", "mask_length", "info"; foreach my $ipv6 (sort keys %data_info) { printf $OUT "\t{ 0x%s, 0x%s, 0x%s, 0x%s, %3d, \"%s\" },\n", $data_info{$ipv6}->{'ipv6_00_31'}, $data_info{$ipv6}->{'ipv6_32_63'}, $data_info{$ipv6}->{'mask_00_31'}, $data_info{$ipv6}->{'mask_32_63'}, $data_info{$ipv6}->{'mask_length'}, $data_info{$ipv6}->{'reg'}; }; print $OUT "};\n"; close($OUT); print "INFO : header file created from input: " . $file_dst_h . "\n"; }; ## Create DB file if (defined $opt_B) { #### IPv6->Registry print "INFO : start creation of DB file IPv6->Registry: " . $file_dst_db_reg . "\n"; # external database my $type = "2026"; # External IPv6->Registry my $date = $string; my $info = "dbusage=ipv6calc;dbformat=1;dbdate=$date;dbtype=" . $type . ";dbproto=6;dbcreated=$now_string"; if (defined $opt_A) { $file_dst_db_reg_orig = $file_dst_db_reg; $file_dst_db_reg .= ".new"; } else { if (-f $file_dst_db_reg) { unlink($file_dst_db_reg) || die "Can't delete old file: $file_dst_db_reg"; }; }; print "INFO : create db from input: IPv6=$file_dst_db_reg\n"; my %h_info; tie %h_info, 'BerkeleyDB::Btree', -Filename => $file_dst_db_reg, -Subname => 'info', -Flags => DB_CREATE, -Mode => 0644 || die "Cannot open file $file_dst_db_reg: $! $BerkeleyDB::Error\n"; $h_info{'dbusage'} = "ipv6calc"; $h_info{'dbformat'} = "1"; # ';' separated values $h_info{'dbdate'} = $date; $h_info{'dbtype'} = $type; $h_info{'dbcreated'} = $now_string; $h_info{'dbcreated_unixtime'} = time + 1; untie %h_info; my @a; ## SubDB: data tie @a, 'BerkeleyDB::Recno', -Filename => $file_dst_db_reg, -Subname => 'data', -Flags => DB_CREATE || die "Cannot open file $file_dst_db_reg: $! $BerkeleyDB::Error\n"; foreach my $ipv6 (sort keys %data) { push @a, sprintf("%s;%s;%s;%s;%d;REGISTRY_%s", $data{$ipv6}->{'ipv6_00_31'}, $data{$ipv6}->{'ipv6_32_63'}, $data{$ipv6}->{'mask_00_31'}, $data{$ipv6}->{'mask_32_63'}, $data{$ipv6}->{'mask_length'}, $data{$ipv6}->{'reg'}); }; untie @a; ## SubDB: data-info tie @a, 'BerkeleyDB::Recno', -Filename => $file_dst_db_reg, -Subname => 'data-info', -Flags => DB_CREATE || die "Cannot open file $file_dst_db_reg: $! $BerkeleyDB::Error\n"; foreach my $ipv6 (sort keys %data_info) { push @a, sprintf("%s;%s;%s;%s;%s", $data_info{$ipv6}->{'ipv6_00_31'}, $data_info{$ipv6}->{'ipv6_32_63'}, $data_info{$ipv6}->{'mask_00_31'}, $data_info{$ipv6}->{'mask_32_63'}, $data_info{$ipv6}->{'reg'}); }; untie @a; print "INFO : DB created from input IPv6->Registry: " . $file_dst_db_reg . "\n"; if (defined $opt_A) { rename $file_dst_db_reg, $file_dst_db_reg_orig; if ($? != 0) { print "ERROR : can't rename file to: $file_dst_db_reg_orig ($!) - delete: $file_dst_db_reg\n"; unlink $file_dst_db_reg; } else { print "INFO : successful rename file to: $file_dst_db_reg_orig\n"; }; }; #### IPv6->CountryCode print "INFO : start creation of DB file IPv6->CountryCode: " . $file_dst_db_cc . "\n"; # external database $type = "2036"; # External IPv6->CountryCode $date = $string; $info = "dbusage=ipv6calc;dbformat=1;dbdate=$date;dbtype=" . $type . ";dbproto=6;dbcreated=$now_string"; if (defined $opt_A) { $file_dst_db_cc_orig = $file_dst_db_cc; $file_dst_db_cc .= ".new"; } else { if (-f $file_dst_db_cc) { unlink($file_dst_db_cc) || die "Can't delete old file: $file_dst_db_cc"; }; }; tie %h_info, 'BerkeleyDB::Btree', -Filename => $file_dst_db_cc, -Subname => 'info', -Flags => DB_CREATE, -Mode => 0644 || die "Cannot open file $file_dst_db_cc: $! $BerkeleyDB::Error\n"; $h_info{'dbusage'} = "ipv6calc"; $h_info{'dbformat'} = "1"; # ';' separated values $h_info{'dbdate'} = $date; $h_info{'dbtype'} = $type; $h_info{'dbcreated'} = $now_string; $h_info{'dbcreated_unixtime'} = time + 1; untie %h_info; ## SubDB: data tie @a, 'BerkeleyDB::Recno', -Filename => $file_dst_db_cc, -Subname => 'data', -Flags => DB_CREATE || die "Cannot open file $file_dst_db_cc: $! $BerkeleyDB::Error\n"; foreach my $ipv6 (sort keys %data_cc) { push @a, sprintf("%s;%s;%s;%s;%s", $data_cc{$ipv6}->{'ipv6_00_31'}, $data_cc{$ipv6}->{'ipv6_32_63'}, $data_cc{$ipv6}->{'mask_00_31'}, $data_cc{$ipv6}->{'mask_32_63'}, $data_cc{$ipv6}->{'reg'}); }; untie @a; print "INFO : DB file created from input IPv6->CountryCode: " . $file_dst_db_cc . "\n"; if (defined $opt_A) { rename $file_dst_db_cc, $file_dst_db_cc_orig; if ($? != 0) { print "ERROR : can't rename file to: $file_dst_db_cc_orig ($!) - delete: $file_dst_db_cc\n"; unlink $file_dst_db_cc; } else { print "INFO : successful rename file to: $file_dst_db_cc_orig\n"; }; }; }; ipv6calc-4.1.0/tools/ipv6calc-create-update-ipset.sh000077500000000000000000000352341444154247200223120ustar00rootroot00000000000000#!/bin/bash # # Project : ipv6calc # File : ipv6calc-create-update-ipset.sh # Version : $Id: 50de45dfc1e6e24c4449a4fb0146bf8271bea374 $ # Copyright : 2021-2021 by Peter Bieringer # # Information: # Shell script to manage country code based "ipset" lists # # requires sudo support for 'iplist' like # # /etc/sudoers.d/99-ipv6calc # poweruser ALL=NOPASSWD:/usr/sbin/ipset # poweruser ALL=NOPASSWD:/usr/bin/firewall-cmd # # Usage in combination with firewalld # Note: ipset counters are not supported by ipset generation through firewalld # See also: https://firewalld.org/documentation/man-pages/firewalld.ipset.html # firewall-cmd --permanent --zone=block --add-source=ipset:Net_VN_IPv4 # firewall-cmd --permanent --zone=block --add-source=ipset:Net_VN_IPv6 # firewall-cmd --permanent --zone=block --add-source=ipset:Net_VN_IPv6to4 # firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source ipset='Net_VN_IPv4' port port='8080' protocol='tcp' drop" # firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv6' source ipset='Net_VN_IPv6' port port='8080' protocol='tcp' drop" # firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv6' source ipset='Net_VN_IPv6to4' port port='8080' protocol='tcp' drop" # # Usage example in combination with iptables/ip6tables (to become reboot-safe take use of 'ipset-service') # iptables -I INPUT -m set --match-set Net_VN_IPv4 src -j DROP # ip6tables -I INPUT -m set --match-set Net_VN_IPv6 src -j DROP # ip6tables -I INPUT -m set --match-set Net_VN_IPv6to4 src -j DROP # iptables -I INPUT -m set --match-set Net_VN_IPv4 src -p tcp --dport 8080 -j DROP # ip6tables -I INPUT -m set --match-set Net_VN_IPv6 src -p tcp --dport 8080 -j DROP # ip6tables -I INPUT -m set --match-set Net_VN_IPv6to4 src -p tcp --dport 8080 -j DROP # # 20210929/bie: initial version # 20211001/bie: add support for firewalld # 20211003/bie: further improvements prefix="Net" help() { cat < [-P ] [-L ] [-F [-p]] [-n] [-d] [-q] [-t] -h|? -C Country Code (CC) for database filter -F control 'ipset' via 'firewalld' -p control 'firewalld' permanent configuration (reboot-safe) -n no dry-run -P prefix for 'ipset' SETNAME (optional, default: $prefix) -L > selected list (IPv4|IPv6|IPv6to4) (optional, default: ALL) -q more quiet (default if called by cron) -d debug -t trace -h|? this online help honors environment IPV6CALC_BIN 'ipv6calc' binary 'ipset' SETNAME will be named: ${prefix}_CC_(IPv4|IPv6|IPv6to4) END } ## defines declare -A summary summary_important=false summary_hint="ipset" ## default dryrun=true debug=false trace=false firewalld=false firewalld_permanent="" if [ -t 0 ]; then quiet=false else quiet=true fi ## parse options while getopts "\?hdnqtFpC:P:L:" opt; do case $opt in P) prefix="$OPTARG" ;; C) countrycode="$OPTARG" ;; L) listselected="$OPTARG" ;; F) firewalld=true summary_hint="firewalld" ;; p) if ! $firewalld; then echo "NOTICE: -p selected but -F not given" exit 1 else firewalld_permanent=1 summary_hint="firewalld/permanent" fi ;; d) debug=true ;; n) dryrun=false ;; q) quiet=true ;; t) trace=true ;; \?|h) help exit 1 ;; *) echo "Invalid option: -$OPTARG" >&2 exit 0 ;; esac done if ! $quiet; then $debug && echo "DEBUG : debug mode enabled" $dryrun && echo "NOTICE: dryrun mode enabled" $trace && echo "DEBUG : trace mode enabled" fi ## failsafe checks # mandatory options if [ -z "$countrycode" ]; then echo "ERROR : mandatory option missing: '-C '" exit 1 fi # ipv6calc binary if [ -n "${IPV6CALC_BIN}" ]; then if [ ! -e "${IPV6CALC_BIN}" ]; then echo "ERROR : provided IPV6CALC_BIN is not existing: $IPV6CALC_BIN" exit 1 fi if [ ! -x "${IPV6CALC_BIN}" ]; then echo "ERROR : provided IPV6CALC_BIN is not executable: $IPV6CALC_BIN" exit 1 fi ipv6calc="$IPV6CALC_BIN" $quiet || echo "INFO : provided via IPV6CALC_BIN: $ipv6calc" else ipv6calc="$(which 'ipv6calc' 2>/dev/null)" if [ -z "$ipv6calc" ]; then echo "ERROR : no 'ipv6calc' binary found via system PATH" exit 1 fi $quiet || echo "INFO : found in system PATH: $ipv6calc" fi ## get features ipv6calc_features=$($ipv6calc -v 2>&1) declare -A ipv6calc_support if [[ $ipv6calc_features =~ DB_IPV4_DUMP_CC ]]; then $quiet || echo "INFO : $ipv6calc supports DB_IPV4_DUMP_CC" ipv6calc_support[IPv4]=1 ipv6calc_support[IPv6to4]=1 fi if [[ $ipv6calc_features =~ DB_IPV6_DUMP_CC ]]; then $quiet || echo "INFO : $ipv6calc supports DB_IPV6_DUMP_CC" ipv6calc_support[IPv6]=1 fi if [ ${#ipv6calc_support[@]} -eq 0 ]; then echo "ERROR : no DB_IPV*_DUMP_CC support found in: $ipv6calc" exit 1 fi ## functions # check ipset ipset_check() { local setname="$1" if $firewalld; then $debug && echo "DEBUG : called: ipset info $setname (firewalld)" >&2 sudo firewall-cmd ${firewalld_permanent:+--permanent }--info-ipset=$setname >/dev/null 2>&1 rc=$? else $debug && echo "DEBUG : called: ipset info $setname" >&2 sudo ipset list -t $setname >/dev/null 2>&1 rc=$? fi $debug && echo "DEBUG : ipset info $setname (rc=$rc)" >&2 return $rc } # list entries of an ipset ipset_list_entries() { local setname="$1" if $firewalld; then $debug && echo "DEBUG : called: ipset_list_entries $setname (firewalld)" >&2 sudo firewall-cmd ${firewalld_permanent:+--permanent }--ipset=$setname --get-entries else $debug && echo "DEBUG : called: ipset_list_entries $setname" >&2 # note: ipset will always print header, this is currently not deselectable sudo ipset list $setname -o xml 2>/dev/null | while read line; do $trace && echo "DEBUG : ipset_list_entries: $line (TEST)" >&2 if [[ $line =~ \\([0-9a-f:./]+)\<\/elem\> ]]; then $trace && echo "DEBUG : ipset_list_entries: $line (MATCH)" >&2 echo "${BASH_REMATCH[1]}" fi done fi } # update entries of an ipset (native) # rc: 0=ok 1=nothingtodo 4=dryrun 3=error 2=fatal ipset_update_entries() { # create command list commandlist=$( # create set if $ipset_new; then echo "create $setname hash:net family $family counters" fi # add missing ones for entry in ${!list_entries[@]}; do if [ "${list_entries[$entry]}" -eq 3 ]; then $trace && echo "list_entry (add): $entry" >&2 echo "add $setname $entry" fi done # delete no longer in list existing ones for entry in ${!ipset_entries[@]}; do if [ "${ipset_entries[$entry]}" -eq 2 ]; then $trace && echo "list_entry (del): $entry" >&2 echo "del $setname $entry" fi done ) if [ -z "$commandlist" ]; then $quiet || echo "NOTICE: nothing todo for $list and $setname" return 1 fi if $dryrun; then if $trace; then echo "NOTICE: dry-run selected " echo "$commandlist" echo "NOTICE: dry-run selected (use -n for no-dryrun execution)" fi return 4 else # create temporary file commandfile=$(mktemp /tmp/ipset-$list-$setname.XXXXX) if [ -z "$commandfile" ]; then echo "ERROR : can't create temporary command file" return 2 fi echo "$commandlist" >$commandfile sudo ipset - <$commandfile >/dev/null rc=$? if [ $rc -ne 0 ]; then echo "ERROR : can't execute commands from commandfile via sudo: $commandfile ($setname)" return 3 fi if $debug; then echo " NOTICE : keep command file: $commandfile" else [ -e "$commandfile" ] && rm -f "$commandfile" fi fi return 0 } # update entries of an ipset (firewalld) # rc: 0=ok 1=nothingtodo 4=dryrun 3=error 2=fatal ipset_update_entries_firewalld() { local add_entries_file=$(mktemp /tmp/ipset-firewalld-add-$list-$setname.XXXXX) if [ -z "$add_entries_file" ]; then echo "ERROR : can't create temporary file containing entries to add" return 2 fi # add missing ones for entry in ${!list_entries[@]}; do if [ "${list_entries[$entry]}" -eq 3 ]; then $trace && echo "list_entry (add): $entry" >&2 echo "$entry" >>$add_entries_file fi done local del_entries_file=$(mktemp /tmp/ipset-firewalld-remove-$list-$setname.XXXXX) if [ -z "$del_entries_file" ]; then echo "ERROR : can't create temporary file containing entries to remove" return 2 fi # delete no longer in list existing ones for entry in ${!ipset_entries[@]}; do if [ "${ipset_entries[$entry]}" -eq 2 ]; then $trace && echo "list_entry (del): $entry" >&2 echo "$entry" >$del_entries_file fi done if [ ! -s $add_entries_file -a ! -s $del_entries_file ]; then $quiet || echo "NOTICE: nothing todo for $list and $setname" return 1 fi # create command list commandlist=$( if $ipset_new; then # new ipset is always permanent echo "firewall-cmd --permanent --new-ipset=$setname --type=hash:net --option=family=$family" echo "firewall-cmd --reload" fi if [ -s $add_entries_file ]; then echo "firewall-cmd ${firewalld_permanent:+--permanent }--ipset=$setname --add-entries-from-file=$add_entries_file" fi if [ -s $del_entries_file ]; then echo "firewall-cmd ${firewalld_permanent:+--permanent }--ipset=$setname --remove-entries-from-file=$del_entries_file" fi if [ -n "$firewalld_permanent" ]; then echo "firewall-cmd --reload" fi ) if $dryrun; then if $debug; then echo "NOTICE: dry-run selected " echo "$commandlist" echo "NOTICE: dry-run selected (use -n for no-dryrun execution)" fi return 4 else echo "$commandlist" | while read line; do if $debug; then echo "DEBUG : execute via sudo: $line" sudo $line rc=$? else sudo $line >/dev/null rc=$? fi if $debug; then echo "DEBUG : executed via sudo: $line (rc=$rc)" fi [ $rc -ne 0 ] && exit 3 done if [ $rc -eq 3 ]; then echo "ERROR : can't execute commands from commandlist via sudo: ($setname)" return 3 fi if $debug; then echo "NOTICE: keep add/remove entries files: $add_entries_file $del_entries_file" else [ -e "$add_entries_file" ] && rm -f "$add_entries_file" [ -e "$del_entries_file" ] && rm -f "$del_entries_file" fi fi return 0 } ## main work require_no_dryrun=false result=0 for list in ${!ipv6calc_support[@]}; do if [ -n "$listselected" -a "$list" != "$listselected" ]; then $quiet || echo "INFO : skip not selected list for country code: $list ($countrycode)" summary[$list]="SKIPPED" continue fi $quiet || echo "INFO : process list for country code: $list ($countrycode)" case $list in IPv4) ipv6calc_options="-A dbdump -E ipv4.db.cc=$countrycode" family="inet" ;; IPv6to4) ipv6calc_options="-A dbdump -E ipv4.db.cc=$countrycode -O ipv6to4" family="inet6" ;; IPv6) ipv6calc_options="-A dbdump -E ipv6.db.cc=$countrycode" family="inet6" ;; *) echo "ERROR : unsupported list: $list (FIX-CODE)" exit 1 ;; esac unset list_entries unset list_entries_array declare -A list_entries declare -a list_entries_array list_entries_array=( $($ipv6calc -q $ipv6calc_options) ) rc=$? if [ $rc -ne 0 ]; then echo "ERROR : execution not successful: $ipv6calc -q $ipv6calc_options (rc=$?)" exit 1 fi $debug && echo "DEBUG : execution result in entries (array): $ipv6calc -q $ipv6calc_options (${#list_entries_array[@]})" if [ ${#list_entries_array[@]} -eq 0 ]; then echo "NOTICE: execution returns 0 entries: $ipv6calc -q $ipv6calc_options (skip)" continue fi # convert entries with default value to hash for entry in ${list_entries_array[@]}; do list_entries[$entry]=0 done $quiet || echo "INFO : execution result in entries: $ipv6calc -q $ipv6calc_options (${#list_entries[@]})" # retrieve 'iplist' setname="${prefix}_${countrycode}_${list}" unset ipset_entries unset ipset_entries_array declare -A ipset_entries declare -a ipset_entries_array ipset_new=false # check whether list exits at all ipset_check $setname rc=$? if [ $rc -ne 0 ]; then $quiet || echo "NOTICE: ipset is not existing (will be created later): $setname (rc=$?)" ipset_new=true else $quiet || echo "NOTICE: ipset is already existing (will be updated): $setname" # retrieve list ipset_entries_array=( $(ipset_list_entries $setname) ) rc=$? if [ $rc -ne 0 ]; then echo "ERROR : execution not successful: ipset_list_entries $setname (rc=$?)" exit 1 fi $debug && echo "DEBUG : execution result in entries (array): ipset_list_entries $setname (${#ipset_entries_array[@]})" # convert entries to hash with default value for entry in ${ipset_entries_array[@]}; do ipset_entries[$entry]=0 done $quiet || echo "INFO : execution result in entries: ipset_list_entries $setname (${#ipset_entries[@]})" fi ## Match code declare -A statistics statistics[Found]=0 statistics[Delete]=0 statistics[Add]=0 for entry in ${!ipset_entries[@]}; do if [ -n "${list_entries[$entry]}" ]; then # iplist entry exists already in countrycode list, mark with 9 ipset_entries[$entry]=9 list_entries[$entry]=9 statistics[Found]=$[ ${statistics[Found]} + 1 ] fi done for entry in ${!ipset_entries[@]}; do if [ "${ipset_entries[$entry]}" -eq 0 ]; then # ipset entry not found in countrycode list, mark with 2 -> delete ipset_entries[$entry]=2 statistics[Delete]=$[ ${statistics[Delete]} + 1 ] fi done for entry in ${!list_entries[@]}; do $trace && echo "list_entry: $entry" if [ "${list_entries[$entry]}" -eq 0 ]; then # list entry not found in ipset list, mark with 3 -> add list_entries[$entry]=3 statistics[Add]=$[ ${statistics[Add]} + 1 ] fi done # print statistics if ! $quiet; then echo -n "INFO : match statistics for $list:" for entry in ${!statistics[@]}; do echo -n " $entry=${statistics[$entry]}" done echo fi # create/update if $firewalld; then ipset_update_entries_firewalld rc=$? else ipset_update_entries rc=$? fi if [ $rc -eq 2 ]; then summary[$list]="FATAL" summary_important=true [ $result -eq 0 ] && result=1 break elif [ $rc -eq 1 ]; then summary[$list]="NOOP" elif [ $rc -eq 0 ]; then summary[$list]="SUCCESS(add=${statistics[Add]}/del=${statistics[Delete]})" summary_important=true elif [ $rc -eq 3 ]; then summary[$list]="ERROR" summary_important=true [ $result -eq 0 ] && result=1 elif [ $rc -eq 4 ]; then summary[$list]="DRYRUN" require_no_dryrun=true summary_important=true fi done if ! $quiet || $summary_important; then echo -n "NOTICE: summary for $countrycode ($summary_hint):" for entry in ${!summary[@]}; do echo -n " $entry=${summary[$entry]}" done if $require_no_dryrun; then echo -n " (pending actions require no-dryrun [-n])" fi if [ ! -n "$firewalld_permanent" ]; then echo -n " (firewalld permanent change requires -p)" fi echo fi exit $result ipv6calc-4.1.0/tools/ipv6calc-db-update.sh.in000077500000000000000000000115011444154247200207060ustar00rootroot00000000000000#!/bin/bash # # Simple shell script to update ipv6calc (external) database files # # Project : ipv6calc/databases # File : ipv6calc-db-update.sh # Version : $Id: 42447d62a4d347239305193087a5f962f982d911 $ # Copyright : 2015-2021 by Peter Bieringer # License : GNU GPL version 2 IPV6CALC_DAT_DIR_DEFAULT="@EXTERNAL_DB@" [ -z "$IPV6CALC_DAT_DIR" -a -n "$IPV6CALC_DB_EXTERNAL_DIR" ] && IPV6CALC_DAT_DIR="$IPV6CALC_DB_EXTERNAL_DIR" [ -z "$IPV6CALC_DAT_DIR" ] && IPV6CALC_DAT_DIR="$IPV6CALC_DAT_DIR_DEFAULT" IPV6CALC_UPDATE_LIST="./ipv6calc-update-registries.sh /usr/share/ipv6calc/tools/ipv6calc-update-registries.sh" IPV6CALC_CHECK_LIST="./ipv6calc-registries-check-run-create.sh /usr/share/ipv6calc/tools/ipv6calc-registries-check-run-create.sh" IPV6CALC_CREATE_IPV4_LIST="./ipv6calc-create-registry-list-ipv4.pl /usr/share/ipv6calc/tools/ipv6calc-create-registry-list-ipv4.pl" IPV6CALC_CREATE_IPV6_LIST="./ipv6calc-create-registry-list-ipv6.pl /usr/share/ipv6calc/tools/ipv6calc-create-registry-list-ipv6.pl" help() { cat <] -s skip download -u unconditional update -D database directory (optional) database directory: $IPV6CALC_DAT_DIR (default: $IPV6CALC_DAT_DIR_DEFAULT) it honors externally defined environment values: prio 1: IPV6CALC_DAT_DIR prio 2: IPV6CALC_DB_EXTERNAL_DIR this script (and its helper scripts) will download data from registries and generate Berkeley DB files for ipv6calc "external" database support END } skip_download=false update=false while getopts "D:ush\?" opt; do case $opt in s) skip_download=true ;; u) update=true ;; D) IPV6CALC_DAT_DIR="$OPTARG" ;; h|\?) help exit 0 ;; *) help exit 1 ;; esac done ## update registries for entry in $IPV6CALC_UPDATE_LIST; do if [ -e "$entry" -a -x "$entry" ]; then update_registries="$entry" break fi done if [ -z "$update_registries" ]; then echo "ERROR : no ipv6calc registry updater found from list: $IPV6CALC_UPDATE_LIST" exit 1 else echo "INFO : selected ipv6calc registries updater: $update_registries" fi ## check registries for entry in $IPV6CALC_CHECK_LIST; do if [ -e "$entry" -a -x "$entry" ]; then check_registries="$entry" break fi done if [ -z "$check_registries" ]; then echo "ERROR : no ipv6calc registry check found from list: $IPV6CALC_CHECK_LIST" exit 1 else echo "INFO : selected ipv6calc registries check: $check_registries" fi ## check create list for IPv4 for entry in $IPV6CALC_CREATE_IPV4_LIST; do if [ -e "$entry" -a -x "$entry" ]; then create_ipv4="$entry" break fi done if [ -z "$create_ipv4" ]; then echo "ERROR : no ipv6calc registries list creation for IPv4 found from list: $IPV6CALC_CREATE_IPV4_LIST" exit 1 else echo "INFO : selected ipv6calc registries list creation: $create_ipv4" fi ## check create list for IPv6 for entry in $IPV6CALC_CREATE_IPV6_LIST; do if [ -e "$entry" -a -x "$entry" ]; then create_ipv6="$entry" break fi done if [ -z "$create_ipv6" ]; then echo "ERROR : no ipv6calc registries list creation for IPv6 found from list: $IPV6CALC_CREATE_IPV6_LIST" exit 1 else echo "INFO : selected ipv6calc registries list creation: $create_ipv6" fi ## data directory if [ ! -d "$IPV6CALC_DAT_DIR" ]; then echo "ERROR : missing directory: $IPV6CALC_DAT_DIR" exit 1 fi if [ ! -w "$IPV6CALC_DAT_DIR" ]; then echo "ERROR : missing write permissions on directory: $IPV6CALC_DAT_DIR" exit 1 fi # db subdirectory if [ ! -e "$IPV6CALC_DAT_DIR" ]; then echo "NOTICE: missing db subdirectory (try to create now): $IPV6CALC_DAT_DIR" mkdir $IPV6CALC_DAT_DIR if [ $? -ne 0 ]; then echo "ERROR : can't create db subdirectory: $IPV6CALC_DAT_DIR ($!)" exit 1 fi elif [ ! -d "$IPV6CALC_DAT_DIR" ]; then echo "ERROR : existing, but not a directory: $IPV6CALC_DAT_DIR" exit 1 elif [ ! -w "$IPV6CALC_DAT_DIR" ]; then echo "ERROR : existing, but not a writable directory: $IPV6CALC_DAT_DIR" exit 1 fi ## update files from registries if ! $skip_download; then echo "INFO : updating files from registries now and store to: $IPV6CALC_DAT_DIR" $update_registries -D $IPV6CALC_DAT_DIR if [ $? -ne 0 ]; then echo "ERROR : update of files from registries resulted in a failure" exit 1 fi echo "INFO : update of files from registries finished in directory: $IPV6CALC_DAT_DIR" else echo "NOTICE: download of files from registries skipped by option" fi ## check files from registries $update && options="$options -u" for proto in 4 6; do echo "INFO : call now check registries files for proto: IPv${proto} srcdir=$IPV6CALC_DAT_DIR dstdir=$IPV6CALC_DAT_DIR" create_var="create_ipv${proto}" $check_registries -B -${proto} -C "${!create_var}" -S "$IPV6CALC_DAT_DIR" -D "$IPV6CALC_DAT_DIR" $options rc=$? if [ $rc -ne 0 ]; then echo "ERROR : problem occurs" exit 1 fi done exit 0 ipv6calc-4.1.0/tools/ipv6calc-registries-check-run-create.sh000077500000000000000000000063441444154247200237430ustar00rootroot00000000000000#!/bin/sh # # Project : ipv6calc/databases/ipv4-assignment # File : ipv6calc-registries-check-run-create.sh # Version : $Id: 02610d77c387e5220f70c6f36482872a2e9c5035 $ # Copyright : 2002-2021 by Peter Bieringer flag_update=false help() { cat < [-u] [-S ] [-D ] -S destination directory -D source directory -u unconditional update -d debug level END } while getopts "d:uS:D:HB46C:h\?" opt; do case $opt in u) flag_update=true ;; H) option="$opt" ;; B) option="$opt" ;; 4) proto="$opt" file_iana="ipv4-address-space.xml" ;; 6) proto="$opt" file_iana="ipv6-unicast-address-assignments.xml" ;; C) command=$OPTARG ;; S) src_dir=$OPTARG ;; D) dst_dir=$OPTARG ;; d) debug=$OPTARG ;; *) help exit 1 ;; esac done if [ -z "$command" ]; then echo "ERROR : option missing: -C " exit 1 fi case $option in H) file="dbipv${proto}addr_assignment.h" ;; B) file="ipv6calc-external-ipv${proto}-registry.db" file2="ipv6calc-external-ipv${proto}-countrycode.db" ;; esac if [ ! -x "$command" ]; then echo "ERROR : not found or not executable: $command" exit 1 fi if [ -n "$src_dir" ]; then search_dir="$src_dir/" if [ ! -d "$src_dir" ]; then echo "ERROR : source directory missing: $src_dir" exit 1 fi else search_dir="../registries/" if [ ! -d "$search_dir" ]; then echo "ERROR : default search directory missing: $search_dir" exit 1 fi fi dst_dir=${dst_dir:-.} if [ ! -d "$dst_dir" ]; then echo "ERROR : destination directory missing: $dst_dir" exit 1 fi file="$dst_dir/$file" file2="$dst_dir/$file2" echo "INFO : reference file: $file" echo "INFO : search directory: $search_dir" if [ -f "$file" ]; then IANA=`find $search_dir -type f -name "$file_iana" -newer "$file" | wc -l` ARIN=`find $search_dir -type f -name 'delegated-arin*' -newer "$file" | wc -l` APNIC=`find $search_dir -type f -name 'delegated-apnic*' -newer "$file" | wc -l` RIPENCC=`find $search_dir -type f -name 'delegated-ripencc*' -newer "$file" | wc -l` LACNIC=`find $search_dir -type f -name 'delegated-lacnic*' -newer "$file" | wc -l` AFRINIC=`find $search_dir -type f -name 'delegated-afrinic*' -newer "$file" | wc -l` LISP=`find $search_dir -type f -name 'site-db*' -newer "$file" | wc -l` echo "INFO : found newer than $file files: IANA=$IANA ARIN=$ARIN APNIC=$APNIC RIPENCC=$RIPENCC LACNIC=$LACNIC AFRINIC=$AFRINIC LISP=$LISP" if [ $IANA -gt 0 -o $ARIN -gt 0 -o $APNIC -gt 0 -o $RIPENCC -gt 0 -o $LACNIC -gt 0 -o $AFRINIC -gt 0 -o $LISP -gt 0 ]; then flag_update=true elif [ -n "$file2" -a -f "$file2" ]; then # 2nd file given if [ "$file" -nt "$file2" ]; then echo "INFO : found newer than $file: $file2" flag_update=true fi fi else flag_update=true fi [ -n "$src_dir" ] && options="$options -S $src_dir" [ -n "$dst_dir" ] && options="$options -D $dst_dir" [ -n "$debug" ] && options="$options -d $debug" options="$options -$option -A" if $flag_update; then echo "INFO : call now create program with options: $options" nice -n 19 $command $options else echo "NOTICE: nothing to do for proto IPv$proto" fi ipv6calc-4.1.0/tools/ipv6calc-update-registries.sh000077500000000000000000000072021444154247200220770ustar00rootroot00000000000000#!/bin/sh # # Project : ipv6calc/databases/registries # File : ipv6calc-update-registries.sh # Version : $Id: d3b4802661ebfb4ea239c0c381cb5350dc02adf4 $ # Copyright : 2002-2021 by Peter Bieringer # replaces ../ipv4-assignment/update-ipv4-assignment.sh # replaces ../ipv6-assignment/update-ipv6-assignment.sh # # Information: # Shell script to update registry data #set -x get_urls() { cat <] [-h|?] [-d] [-q] -D destination directory (default: internal sub-directories) -d dry-run/debug -q more quiet (default if called by cron) -R download only given registry: $(get_urls | awk '{ printf $1 " " }') -h|? this online help END } ## default dir_dst="" dry_run=false if [ -t 0 ]; then quiet=false else quiet=true fi ## parse options while getopts "\?hdqR:D:" opt; do case $opt in D) if [ -d "$OPTARG" ]; then dir_dst="$OPTARG" else echo "ERROR : given destination directory doesn't exist: $OPTARG" exit 1 fi ;; R) registry="$OPTARG" ;; d) dry_run=true ;; q) quiet=true ;; \?|h) help exit 1 ;; *) echo "Invalid option: -$OPTARG" >&2 exit 0 ;; esac done $quiet && wget_options="--no-verbose" if [ -z "$dir_dst" ]; then echo "INFO : download new version of files to defined sub-directories" else echo "INFO : download new version of files to: $dir_dst" fi get_urls | while read subdir url filename format flag; do if [ -n "$registry" -a "$registry" != "$subdir" ]; then echo "NOTICE: registry option specified, skip: $subdir" continue fi if [ -z "$dir_dst" ]; then echo "DEBUG : check for sub-directory: $subdir" if [ ! -d "$subdir" ]; then mkdir "$subdir" || exit 1 fi pushd "$subdir" || exit 1 else echo "DEBUG : change to download directory: $dir_dst" pushd "$dir_dst" >/dev/null || exit 1 fi if [ "$flag" = "out" ]; then $dry_run || wget $wget_options $url$filename -O $filename retval=$? else $dry_run || wget $wget_options $url$filename --timestamping --retr-symlinks retval=$? fi popd >/dev/null if [ $retval -ne 0 ]; then echo "ERROR : can't download: $filename ($url)" exit 1 else echo "INFO : successfully downloaded: $filename ($url)" fi if [ -z "$dir_dst" ]; then pushd "$subdir" >/dev/null || exit 1 else pushd "$dir_dst" >/dev/null || exit 1 fi case $format in 'txt'|'csv') # nothing to do ;; 'xml') # fix buggy encoding mod_time=$(stat -c %Y "$filename") perl -pi -e "s/^(.*encoding=')ASCII('.*)$/\1US-ASCII\2/" $filename || exit 1 touch -d "@$mod_time" "$filename" ;; 'bz2') # decompress mod_time=$(stat -c %Y "$filename") bzip2 -f -d -k $filename || exit 1 touch -d "@$mod_time" "$filename" ;; *) echo "ERROR: unsupported format: $format - fix code" exit 1 ;; esac popd >/dev/null done